Submitted By: Jim Gifford (jim at cross-lfs dot org)
Date: 08-28-2013
Initial Package Version: 4.8.1
Origin: Upstream
Upstream Status: Applied
Description: This is a branch update for gcc-4.8.1, and should be
             rechecked periodically.

This patch was made from Revision # 202050.

diff -Naur gcc-4.8.1.orig/fixincludes/fixincl.x gcc-4.8.1/fixincludes/fixincl.x
--- gcc-4.8.1.orig/fixincludes/fixincl.x	2013-01-15 22:07:20.000000000 -0600
+++ gcc-4.8.1/fixincludes/fixincl.x	2013-05-31 06:43:36.437119000 -0500
@@ -2,11 +2,11 @@
  * 
  * DO NOT EDIT THIS FILE   (fixincl.x)
  * 
- * It has been AutoGen-ed  Saturday December 29, 2012 at 09:17:09 AM BRST
+ * It has been AutoGen-ed  Thursday May 16, 2013 at 03:34:25 PM MEST
  * From the definitions    inclhack.def
  * and the template file   fixincl
  */
-/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Dec 29 09:17:10 BRST 2012
+/* DO NOT SVN-MERGE THIS FILE, EITHER Thu May 16 15:34:25 MEST 2013
  *
  * You must regenerate it.  Use the ./genfixes script.
  *
@@ -6663,7 +6663,7 @@
  */
 static const char* apzSolaris_Pow_Int_OverloadPatch[] = {
     "format",
-    "#ifndef __GXX_EXPERIMENTAL_CXX0X__\n\
+    "#if __cplusplus < 201103L\n\
 %0\n\
 #endif",
     (char*)NULL };
diff -Naur gcc-4.8.1.orig/fixincludes/inclhack.def gcc-4.8.1/fixincludes/inclhack.def
--- gcc-4.8.1.orig/fixincludes/inclhack.def	2013-01-15 22:07:20.000000000 -0600
+++ gcc-4.8.1/fixincludes/inclhack.def	2013-05-31 06:43:36.437119000 -0500
@@ -3447,7 +3447,7 @@
 
 
 /*
- *  The pow overloads with int were removed in C++ 2011.
+ *  The pow overloads with int were removed in C++ 2011 DR 550.
  */
 fix = {
     hackname  = solaris_pow_int_overload;
@@ -3456,7 +3456,7 @@
     select    = "^[ \t]*inline [a-z ]* pow\\([^()]*, int [^()]*\\)"
 		" *\\{[^{}]*\n[^{}]*\\}";
     c_fix     = format;
-    c_fix_arg = "#ifndef __GXX_EXPERIMENTAL_CXX0X__\n%0\n#endif";
+    c_fix_arg = "#if __cplusplus < 201103L\n%0\n#endif";
 
     test_text =
     "	inline long double pow(long double __X, int __Y) { return\n"
diff -Naur gcc-4.8.1.orig/fixincludes/tests/base/iso/math_iso.h gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h
--- gcc-4.8.1.orig/fixincludes/tests/base/iso/math_iso.h	2011-08-10 03:43:38.000000000 -0500
+++ gcc-4.8.1/fixincludes/tests/base/iso/math_iso.h	2013-05-31 06:43:36.437119000 -0500
@@ -10,7 +10,7 @@
 
 
 #if defined( SOLARIS_POW_INT_OVERLOAD_CHECK )
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
+#if __cplusplus < 201103L
 	inline long double pow(long double __X, int __Y) { return
 		__powl(__X, (long double) (__Y)); }
 #endif
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/ada-tree.h gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/ada-tree.h	2013-02-25 13:08:51.000000000 -0600
+++ gcc-4.8.1/gcc/ada/gcc-interface/ada-tree.h	2013-06-13 02:51:32.352026000 -0500
@@ -360,10 +360,6 @@
    constant CONSTRUCTOR.  */
 #define DECL_CONST_ADDRESS_P(NODE) DECL_LANG_FLAG_0 (CONST_DECL_CHECK (NODE))
 
-/* Nonzero in a PARM_DECL if it is always used by double reference, i.e. a
-   pair of INDIRECT_REFs is needed to access the object.  */
-#define DECL_BY_DOUBLE_REF_P(NODE) DECL_LANG_FLAG_0 (PARM_DECL_CHECK (NODE))
-
 /* Nonzero in a FIELD_DECL if it is declared as aliased.  */
 #define DECL_ALIASED_P(NODE) DECL_LANG_FLAG_0 (FIELD_DECL_CHECK (NODE))
 
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/decl.c gcc-4.8.1/gcc/ada/gcc-interface/decl.c
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/decl.c	2013-05-07 03:03:15.000000000 -0500
+++ gcc-4.8.1/gcc/ada/gcc-interface/decl.c	2013-06-13 02:51:32.352026000 -0500
@@ -1019,7 +1019,7 @@
 			save_gnu_tree (gnat_entity, gnu_decl, true);
 			saved = true;
 			annotate_object (gnat_entity, gnu_type, NULL_TREE,
-					 false, false);
+					 false);
 			/* This assertion will fail if the renamed object
 			   isn't aligned enough as to make it possible to
 			   honor the alignment set on the renaming.  */
@@ -1605,7 +1605,7 @@
 	   type of the object and not on the object directly, and makes it
 	   possible to support all confirming representation clauses.  */
 	annotate_object (gnat_entity, TREE_TYPE (gnu_decl), gnu_object_size,
-			 used_by_ref, false);
+			 used_by_ref);
       }
       break;
 
@@ -5595,7 +5595,7 @@
   /* The parameter can be indirectly modified if its address is taken.  */
   bool ro_param = in_param && !Address_Taken (gnat_param);
   bool by_return = false, by_component_ptr = false;
-  bool by_ref = false, by_double_ref = false;
+  bool by_ref = false;
   tree gnu_param;
 
   /* Copy-return is used only for the first parameter of a valued procedure.
@@ -5720,19 +5720,6 @@
 	gnu_param_type
 	  = build_qualified_type (gnu_param_type, TYPE_QUAL_RESTRICT);
       by_ref = true;
-
-      /* In some ABIs, e.g. SPARC 32-bit, fat pointer types are themselves
-	 passed by reference.  Pass them by explicit reference, this will
-	 generate more debuggable code at -O0.  */
-      if (TYPE_IS_FAT_POINTER_P (gnu_param_type)
-	  && targetm.calls.pass_by_reference (pack_cumulative_args (NULL),
-					      TYPE_MODE (gnu_param_type),
-					      gnu_param_type,
-					      true))
-	{
-	   gnu_param_type = build_reference_type (gnu_param_type);
-	   by_double_ref = true;
-	}
     }
 
   /* Pass In Out or Out parameters using copy-in copy-out mechanism.  */
@@ -5775,7 +5762,6 @@
   gnu_param = create_param_decl (gnu_param_name, gnu_param_type,
 				 ro_param || by_ref || by_component_ptr);
   DECL_BY_REF_P (gnu_param) = by_ref;
-  DECL_BY_DOUBLE_REF_P (gnu_param) = by_double_ref;
   DECL_BY_COMPONENT_PTR_P (gnu_param) = by_component_ptr;
   DECL_BY_DESCRIPTOR_P (gnu_param) = (mech == By_Descriptor ||
                                       mech == By_Short_Descriptor);
@@ -7427,18 +7413,13 @@
 /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception)
    and GNU_TYPE, its corresponding GCC type, set Esize and Alignment to the
    size and alignment used by Gigi.  Prefer SIZE over TYPE_SIZE if non-null.
-   BY_REF is true if the object is used by reference and BY_DOUBLE_REF is
-   true if the object is used by double reference.  */
+   BY_REF is true if the object is used by reference.  */
 
 void
-annotate_object (Entity_Id gnat_entity, tree gnu_type, tree size, bool by_ref,
-		 bool by_double_ref)
+annotate_object (Entity_Id gnat_entity, tree gnu_type, tree size, bool by_ref)
 {
   if (by_ref)
     {
-      if (by_double_ref)
-	gnu_type = TREE_TYPE (gnu_type);
-
       if (TYPE_IS_FAT_POINTER_P (gnu_type))
 	gnu_type = TYPE_UNCONSTRAINED_ARRAY (gnu_type);
       else
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/gigi.h gcc-4.8.1/gcc/ada/gcc-interface/gigi.h
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/gigi.h	2013-02-06 07:19:20.000000000 -0600
+++ gcc-4.8.1/gcc/ada/gcc-interface/gigi.h	2013-06-13 02:51:32.352026000 -0500
@@ -177,10 +177,9 @@
 /* Given GNAT_ENTITY, an object (constant, variable, parameter, exception)
    and GNU_TYPE, its corresponding GCC type, set Esize and Alignment to the
    size and alignment used by Gigi.  Prefer SIZE over TYPE_SIZE if non-null.
-   BY_REF is true if the object is used by reference and BY_DOUBLE_REF is
-   true if the object is used by double reference.  */
+   BY_REF is true if the object is used by reference.  */
 extern void annotate_object (Entity_Id gnat_entity, tree gnu_type, tree size,
-			     bool by_ref, bool by_double_ref);
+			     bool by_ref);
 
 /* Return the variant part of RECORD_TYPE, if any.  Otherwise return NULL.  */
 extern tree get_variant_part (tree record_type);
@@ -930,11 +929,10 @@
 
 /* Convert GNU_EXPR, a pointer to a VMS descriptor, to GNU_TYPE, a regular
    pointer or fat pointer type.  GNU_EXPR_ALT_TYPE is the alternate (32-bit)
-   pointer type of GNU_EXPR.  BY_REF is true if the result is to be used by
-   reference.  GNAT_SUBPROG is the subprogram to which the VMS descriptor is
-   passed.  */
+   pointer type of GNU_EXPR.  GNAT_SUBPROG is the subprogram to which the
+   descriptor is passed.  */
 extern tree convert_vms_descriptor (tree gnu_type, tree gnu_expr,
-				    tree gnu_expr_alt_type, bool by_ref,
+				    tree gnu_expr_alt_type,
 				    Entity_Id gnat_subprog);
 
 /* Indicate that we need to take the address of T and that it therefore
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/trans.c gcc-4.8.1/gcc/ada/gcc-interface/trans.c
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/trans.c	2013-05-26 05:04:50.000000000 -0500
+++ gcc-4.8.1/gcc/ada/gcc-interface/trans.c	2013-08-13 10:59:03.399464000 -0500
@@ -1075,19 +1075,6 @@
     {
       const bool read_only = DECL_POINTS_TO_READONLY_P (gnu_result);
 
-      /* First do the first dereference if needed.  */
-      if (TREE_CODE (gnu_result) == PARM_DECL
-	  && DECL_BY_DOUBLE_REF_P (gnu_result))
-	{
-	  gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_result);
-	  if (TREE_CODE (gnu_result) == INDIRECT_REF)
-	    TREE_THIS_NOTRAP (gnu_result) = 1;
-
-	  /* The first reference, in case of a double reference, always points
-	     to read-only, see gnat_to_gnu_param for the rationale.  */
-	  TREE_READONLY (gnu_result) = 1;
-	}
-
       /* If it's a PARM_DECL to foreign convention subprogram, convert it.  */
       if (TREE_CODE (gnu_result) == PARM_DECL
 	  && DECL_BY_COMPONENT_PTR_P (gnu_result))
@@ -2280,7 +2267,10 @@
   if (TREE_CODE (val) != INTEGER_CST)
     return true;
 
-  return tree_int_cst_equal (val, min_or_max_val) == 1;
+  if (max)
+    return tree_int_cst_lt (val, min_or_max_val) == 0;
+  else
+    return tree_int_cst_lt (min_or_max_val, val) == 0;
 }
 
 /* Return true if VAL (of type TYPE) can equal the minimum value of TYPE.
@@ -3251,7 +3241,6 @@
 	    = convert_vms_descriptor (TREE_TYPE (gnu_subprog_param),
 				      gnu_stub_param,
 				      DECL_PARM_ALT_TYPE (gnu_stub_param),
-				      DECL_BY_DOUBLE_REF_P (gnu_subprog_param),
 				      gnat_subprog);
 	}
       else
@@ -3546,8 +3535,7 @@
       bool is_var_decl = (TREE_CODE (gnu_param) == VAR_DECL);
 
       annotate_object (gnat_param, TREE_TYPE (gnu_param), NULL_TREE,
-		       DECL_BY_REF_P (gnu_param),
-		       !is_var_decl && DECL_BY_DOUBLE_REF_P (gnu_param));
+		       DECL_BY_REF_P (gnu_param));
 
       if (is_var_decl)
 	save_gnu_tree (gnat_param, NULL_TREE, false);
@@ -4009,12 +3997,6 @@
 	  /* The symmetry of the paths to the type of an entity is broken here
 	     since arguments don't know that they will be passed by ref.  */
 	  gnu_formal_type = TREE_TYPE (gnu_formal);
-
-	  if (DECL_BY_DOUBLE_REF_P (gnu_formal))
-	    gnu_actual
-	      = build_unary_op (ADDR_EXPR, TREE_TYPE (gnu_formal_type),
-				gnu_actual);
-
 	  gnu_actual = build_unary_op (ADDR_EXPR, gnu_formal_type, gnu_actual);
 	}
       else if (is_true_formal_parm && DECL_BY_COMPONENT_PTR_P (gnu_formal))
diff -Naur gcc-4.8.1.orig/gcc/ada/gcc-interface/utils.c gcc-4.8.1/gcc/ada/gcc-interface/utils.c
--- gcc-4.8.1.orig/gcc/ada/gcc-interface/utils.c	2013-02-06 07:19:20.000000000 -0600
+++ gcc-4.8.1/gcc/ada/gcc-interface/utils.c	2013-06-13 02:51:32.352026000 -0500
@@ -4073,33 +4073,25 @@
 
 /* Convert GNU_EXPR, a pointer to a VMS descriptor, to GNU_TYPE, a regular
    pointer or fat pointer type.  GNU_EXPR_ALT_TYPE is the alternate (32-bit)
-   pointer type of GNU_EXPR.  BY_REF is true if the result is to be used by
-   reference.  GNAT_SUBPROG is the subprogram to which the VMS descriptor is
-   passed.  */
+   pointer type of GNU_EXPR.  GNAT_SUBPROG is the subprogram to which the
+   descriptor is passed.  */
 
 tree
 convert_vms_descriptor (tree gnu_type, tree gnu_expr, tree gnu_expr_alt_type,
-			bool by_ref, Entity_Id gnat_subprog)
+			Entity_Id gnat_subprog)
 {
   tree desc_type = TREE_TYPE (TREE_TYPE (gnu_expr));
   tree desc = build1 (INDIRECT_REF, desc_type, gnu_expr);
   tree mbo = TYPE_FIELDS (desc_type);
   const char *mbostr = IDENTIFIER_POINTER (DECL_NAME (mbo));
   tree mbmo = DECL_CHAIN (DECL_CHAIN (DECL_CHAIN (mbo)));
-  tree real_type, is64bit, gnu_expr32, gnu_expr64;
-
-  if (by_ref)
-    real_type = TREE_TYPE (gnu_type);
-  else
-    real_type = gnu_type;
+  tree is64bit, gnu_expr32, gnu_expr64;
 
   /* If the field name is not MBO, it must be 32-bit and no alternate.
      Otherwise primary must be 64-bit and alternate 32-bit.  */
   if (strcmp (mbostr, "MBO") != 0)
     {
-      tree ret = convert_vms_descriptor32 (real_type, gnu_expr, gnat_subprog);
-      if (by_ref)
-	ret = build_unary_op (ADDR_EXPR, gnu_type, ret);
+      tree ret = convert_vms_descriptor32 (gnu_type, gnu_expr, gnat_subprog);
       return ret;
     }
 
@@ -4116,14 +4108,9 @@
 					integer_minus_one_node));
 
   /* Build the 2 possible end results.  */
-  gnu_expr64 = convert_vms_descriptor64 (real_type, gnu_expr, gnat_subprog);
-  if (by_ref)
-    gnu_expr64 =  build_unary_op (ADDR_EXPR, gnu_type, gnu_expr64);
+  gnu_expr64 = convert_vms_descriptor64 (gnu_type, gnu_expr, gnat_subprog);
   gnu_expr = fold_convert (gnu_expr_alt_type, gnu_expr);
-  gnu_expr32 = convert_vms_descriptor32 (real_type, gnu_expr, gnat_subprog);
-  if (by_ref)
-    gnu_expr32 =  build_unary_op (ADDR_EXPR, gnu_type, gnu_expr32);
-
+  gnu_expr32 = convert_vms_descriptor32 (gnu_type, gnu_expr, gnat_subprog);
   return build3 (COND_EXPR, gnu_type, is64bit, gnu_expr64, gnu_expr32);
 }
 
diff -Naur gcc-4.8.1.orig/gcc/ada/targparm.ads gcc-4.8.1/gcc/ada/targparm.ads
--- gcc-4.8.1.orig/gcc/ada/targparm.ads	2013-02-06 04:35:52.000000000 -0600
+++ gcc-4.8.1/gcc/ada/targparm.ads	2013-06-13 02:51:32.352026000 -0500
@@ -436,7 +436,7 @@
    --  the source program may not contain explicit 64-bit shifts. In addition,
    --  the code generated for packed arrays will avoid the use of long shifts.
 
-   Support_Nondefault_SSO_On_Target : Boolean := False;
+   Support_Nondefault_SSO_On_Target : Boolean := True;
    --  If True, the back end supports the non-default Scalar_Storage_Order
    --  (i.e. allows non-confirming Scalar_Storage_Order attribute definition
    --  clauses).
diff -Naur gcc-4.8.1.orig/gcc/asan.c gcc-4.8.1/gcc/asan.c
--- gcc-4.8.1.orig/gcc/asan.c	2013-02-28 15:23:23.000000000 -0600
+++ gcc-4.8.1/gcc/asan.c	2013-08-13 12:02:13.543712000 -0500
@@ -1675,7 +1675,7 @@
    access to the last byte of the argument; it uses the result of the
    call to deduce the offset of that last byte.
 
-   Upon completion, iff the call has actullay been instrumented, this
+   Upon completion, iff the call has actually been instrumented, this
    function returns TRUE and *ITER points to the statement logically
    following the built-in strlen function call *ITER was initially
    pointing to.  Otherwise, the function returns FALSE and *ITER
@@ -1706,10 +1706,10 @@
   /* Instrument the access to the first byte of str_arg.  i.e:
 
      _1 = str_arg; instrument (_1); */
+  tree cptr_type = build_pointer_type (char_type_node);
   gimple str_arg_ssa =
     gimple_build_assign_with_ops (NOP_EXPR,
-				  make_ssa_name (build_pointer_type
-						 (char_type_node), NULL),
+				  make_ssa_name (cptr_type, NULL),
 				  str_arg, NULL);
   gimple_set_location (str_arg_ssa, loc);
   gimple_stmt_iterator gsi = *iter;
@@ -1728,8 +1728,7 @@
      pointer_plus expr: (_1 + len).  */
   gimple stmt =
     gimple_build_assign_with_ops (POINTER_PLUS_EXPR,
-				  make_ssa_name (TREE_TYPE (str_arg),
-						 NULL),
+				  make_ssa_name (cptr_type, NULL),
 				  gimple_assign_lhs (str_arg_ssa),
 				  len);
   gimple_set_location (stmt, loc);
diff -Naur gcc-4.8.1.orig/gcc/c-family/c-ada-spec.c gcc-4.8.1/gcc/c-family/c-ada-spec.c
--- gcc-4.8.1.orig/gcc/c-family/c-ada-spec.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/c-family/c-ada-spec.c	2013-08-09 05:53:01.541722000 -0500
@@ -2900,7 +2900,7 @@
       pp_string (buffer, "  -- ");
       dump_sloc (buffer, t);
 
-      if (is_abstract)
+      if (is_abstract || !DECL_ASSEMBLER_NAME (t))
 	return 1;
 
       newline_and_indent (buffer, spc);
diff -Naur gcc-4.8.1.orig/gcc/collect2.c gcc-4.8.1/gcc/collect2.c
--- gcc-4.8.1.orig/gcc/collect2.c	2013-02-06 20:53:13.000000000 -0600
+++ gcc-4.8.1/gcc/collect2.c	2013-06-20 12:12:17.412846000 -0500
@@ -366,8 +366,8 @@
 
 /* Delete tempfiles and exit function.  */
 
-void
-collect_exit (int status)
+static void
+collect_atexit (void)
 {
   if (c_file != 0 && c_file[0])
     maybe_unlink (c_file);
@@ -395,13 +395,8 @@
       maybe_unlink (lderrout);
     }
 
-  if (status != 0 && output_file != 0 && output_file[0])
-    maybe_unlink (output_file);
-
   if (response_file)
     maybe_unlink (response_file);
-
-  exit (status);
 }
 
 
@@ -970,6 +965,9 @@
   signal (SIGCHLD, SIG_DFL);
 #endif
 
+  if (atexit (collect_atexit) != 0)
+    fatal_error ("atexit failed");
+
   /* Unlock the stdio streams.  */
   unlock_std_streams ();
 
@@ -1110,55 +1108,55 @@
   if (ld_file_name == 0)
 #endif
 #ifdef REAL_LD_FILE_NAME
-  ld_file_name = find_a_file (&path, REAL_LD_FILE_NAME);
+  ld_file_name = find_a_file (&path, REAL_LD_FILE_NAME, X_OK);
   if (ld_file_name == 0)
 #endif
   /* Search the (target-specific) compiler dirs for ld'.  */
-  ld_file_name = find_a_file (&cpath, real_ld_suffix);
+  ld_file_name = find_a_file (&cpath, real_ld_suffix, X_OK);
   /* Likewise for `collect-ld'.  */
   if (ld_file_name == 0)
     {
-      ld_file_name = find_a_file (&cpath, collect_ld_suffix);
+      ld_file_name = find_a_file (&cpath, collect_ld_suffix, X_OK);
       use_collect_ld = ld_file_name != 0;
     }
   /* Search the compiler directories for `ld'.  We have protection against
      recursive calls in find_a_file.  */
   if (ld_file_name == 0)
-    ld_file_name = find_a_file (&cpath, ld_suffixes[selected_linker]);
+    ld_file_name = find_a_file (&cpath, ld_suffixes[selected_linker], X_OK);
   /* Search the ordinary system bin directories
      for `ld' (if native linking) or `TARGET-ld' (if cross).  */
   if (ld_file_name == 0)
-    ld_file_name = find_a_file (&path, full_ld_suffixes[selected_linker]);
+    ld_file_name = find_a_file (&path, full_ld_suffixes[selected_linker], X_OK);
 
 #ifdef REAL_NM_FILE_NAME
-  nm_file_name = find_a_file (&path, REAL_NM_FILE_NAME);
+  nm_file_name = find_a_file (&path, REAL_NM_FILE_NAME, X_OK);
   if (nm_file_name == 0)
 #endif
-  nm_file_name = find_a_file (&cpath, gnm_suffix);
+  nm_file_name = find_a_file (&cpath, gnm_suffix, X_OK);
   if (nm_file_name == 0)
-    nm_file_name = find_a_file (&path, full_gnm_suffix);
+    nm_file_name = find_a_file (&path, full_gnm_suffix, X_OK);
   if (nm_file_name == 0)
-    nm_file_name = find_a_file (&cpath, nm_suffix);
+    nm_file_name = find_a_file (&cpath, nm_suffix, X_OK);
   if (nm_file_name == 0)
-    nm_file_name = find_a_file (&path, full_nm_suffix);
+    nm_file_name = find_a_file (&path, full_nm_suffix, X_OK);
 
 #ifdef LDD_SUFFIX
-  ldd_file_name = find_a_file (&cpath, ldd_suffix);
+  ldd_file_name = find_a_file (&cpath, ldd_suffix, X_OK);
   if (ldd_file_name == 0)
-    ldd_file_name = find_a_file (&path, full_ldd_suffix);
+    ldd_file_name = find_a_file (&path, full_ldd_suffix, X_OK);
 #endif
 
 #ifdef REAL_STRIP_FILE_NAME
-  strip_file_name = find_a_file (&path, REAL_STRIP_FILE_NAME);
+  strip_file_name = find_a_file (&path, REAL_STRIP_FILE_NAME, X_OK);
   if (strip_file_name == 0)
 #endif
-  strip_file_name = find_a_file (&cpath, gstrip_suffix);
+  strip_file_name = find_a_file (&cpath, gstrip_suffix, X_OK);
   if (strip_file_name == 0)
-    strip_file_name = find_a_file (&path, full_gstrip_suffix);
+    strip_file_name = find_a_file (&path, full_gstrip_suffix, X_OK);
   if (strip_file_name == 0)
-    strip_file_name = find_a_file (&cpath, strip_suffix);
+    strip_file_name = find_a_file (&cpath, strip_suffix, X_OK);
   if (strip_file_name == 0)
-    strip_file_name = find_a_file (&path, full_strip_suffix);
+    strip_file_name = find_a_file (&path, full_strip_suffix, X_OK);
 
   /* Determine the full path name of the C compiler to use.  */
   c_file_name = getenv ("COLLECT_GCC");
@@ -1171,12 +1169,12 @@
 #endif
     }
 
-  p = find_a_file (&cpath, c_file_name);
+  p = find_a_file (&cpath, c_file_name, X_OK);
 
   /* Here it should be safe to use the system search path since we should have
      already qualified the name of the compiler when it is needed.  */
   if (p == 0)
-    p = find_a_file (&path, c_file_name);
+    p = find_a_file (&path, c_file_name, X_OK);
 
   if (p)
     c_file_name = p;
@@ -1813,7 +1811,7 @@
 	  error ("%s terminated with signal %d [%s]%s",
 		 prog, sig, strsignal(sig),
 		 WCOREDUMP(status) ? ", core dumped" : "");
-	  collect_exit (FATAL_EXIT_CODE);
+	  exit (FATAL_EXIT_CODE);
 	}
 
       if (WIFEXITED (status))
@@ -1829,7 +1827,7 @@
   if (ret != 0)
     {
       error ("%s returned %d exit status", prog, ret);
-      collect_exit (ret);
+      exit (ret);
     }
 
   if (response_file)
diff -Naur gcc-4.8.1.orig/gcc/collect2.h gcc-4.8.1/gcc/collect2.h
--- gcc-4.8.1.orig/gcc/collect2.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/collect2.h	2013-06-20 12:12:17.412846000 -0500
@@ -25,8 +25,6 @@
 extern struct pex_obj *collect_execute (const char *, char **, const char *,
 					const char *, int flags);
 
-extern void collect_exit (int) ATTRIBUTE_NORETURN;
-
 extern int collect_wait (const char *, struct pex_obj *);
 
 extern void dump_ld_file (const char *, FILE *);
diff -Naur gcc-4.8.1.orig/gcc/common/config/s390/s390-common.c gcc-4.8.1/gcc/common/config/s390/s390-common.c
--- gcc-4.8.1.orig/gcc/common/config/s390/s390-common.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/common/config/s390/s390-common.c	2013-08-02 10:41:10.548493000 -0500
@@ -42,7 +42,7 @@
     /* z196 */   PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT
                  | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196,
     /* zEC12 */  PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT
-                 | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12
+                 | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12 | PF_TX
   };
 
 /* Change optimizations to be performed, depending on the
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-builtins.c gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-builtins.c	2013-02-28 11:19:33.000000000 -0600
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-builtins.c	2013-07-17 04:06:21.894684000 -0500
@@ -1154,6 +1154,7 @@
       return aarch64_simd_expand_args (target, icode, 1, exp,
 				       SIMD_ARG_COPY_TO_REG, SIMD_ARG_STOP);
 
+    case AARCH64_SIMD_STORE1:
     case AARCH64_SIMD_STORESTRUCT:
       return aarch64_simd_expand_args (target, icode, 0, exp,
 				       SIMD_ARG_COPY_TO_REG,
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.c gcc-4.8.1/gcc/config/aarch64/aarch64.c
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64.c	2013-05-02 12:00:00.000000000 -0500
+++ gcc-4.8.1/gcc/config/aarch64/aarch64.c	2013-06-03 10:33:09.355099000 -0500
@@ -3373,7 +3373,7 @@
 	  output_operand_lossage ("invalid operand for '%%%c'", code);
 	  return;
 	}
-      asm_fprintf (f, "0x%x", UINTVAL (x));
+      asm_fprintf (f, "0x%wx", UINTVAL (x));
       break;
 
     case 'w':
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-linux.h gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-linux.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-linux.h	2013-08-13 08:22:18.234270000 -0500
@@ -23,6 +23,8 @@
 
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64.so.1"
 
+#define CPP_SPEC "%{pthread:-D_REENTRANT}"
+
 #define LINUX_TARGET_LINK_SPEC  "%{h*}		\
    %{static:-Bstatic}				\
    %{shared:-shared}				\
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64.md gcc-4.8.1/gcc/config/aarch64/aarch64.md
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64.md	2013-04-25 12:00:44.000000000 -0500
+++ gcc-4.8.1/gcc/config/aarch64/aarch64.md	2013-06-07 06:00:38.802083000 -0500
@@ -834,7 +834,8 @@
    movi\\t%d0, %1"
   [(set_attr "v8type" "move,move,move,alu,load1,store1,adr,adr,fmov,fmov,fmov,fmov")
    (set_attr "mode" "DI")
-   (set_attr "fp" "*,*,*,*,*,*,*,*,yes,yes,yes,yes")]
+   (set_attr "fp" "*,*,*,*,*,*,*,*,yes,yes,yes,*")
+   (set_attr "simd" "*,*,*,*,*,*,*,*,*,*,*,yes")]
 )
 
 (define_insn "insv_imm<mode>"
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd-builtins.def gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd-builtins.def	2013-02-22 10:39:45.000000000 -0600
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd-builtins.def	2013-07-17 04:06:21.894684000 -0500
@@ -256,3 +256,10 @@
   BUILTIN_VALL (BINOP, uzp2)
   BUILTIN_VALL (BINOP, trn1)
   BUILTIN_VALL (BINOP, trn2)
+
+  /* Implemented by aarch64_ld1<VALL:mode>.  */
+  BUILTIN_VALL (LOAD1, ld1)
+
+  /* Implemented by aarch64_st1<VALL:mode>.  */
+  BUILTIN_VALL (STORE1, st1)
+
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd.md gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md
--- gcc-4.8.1.orig/gcc/config/aarch64/aarch64-simd.md	2013-04-11 09:14:56.000000000 -0500
+++ gcc-4.8.1/gcc/config/aarch64/aarch64-simd.md	2013-07-17 04:06:21.894684000 -0500
@@ -3457,6 +3457,17 @@
   DONE;
 })
 
+(define_expand "aarch64_ld1<VALL:mode>"
+ [(match_operand:VALL 0 "register_operand")
+  (match_operand:DI 1 "register_operand")]
+  "TARGET_SIMD"
+{
+  enum machine_mode mode = <VALL:MODE>mode;
+  rtx mem = gen_rtx_MEM (mode, operands[1]);
+  emit_move_insn (operands[0], mem);
+  DONE;
+})
+
 (define_expand "aarch64_ld<VSTRUCT:nregs><VQ:mode>"
  [(match_operand:VSTRUCT 0 "register_operand" "=w")
   (match_operand:DI 1 "register_operand" "r")
@@ -3673,6 +3684,17 @@
   DONE;
 })
 
+(define_expand "aarch64_st1<VALL:mode>"
+ [(match_operand:DI 0 "register_operand")
+  (match_operand:VALL 1 "register_operand")]
+  "TARGET_SIMD"
+{
+  enum machine_mode mode = <VALL:MODE>mode;
+  rtx mem = gen_rtx_MEM (mode, operands[0]);
+  emit_move_insn (mem, operands[1]);
+  DONE;
+})
+
 ;; Expander for builtins to insert vector registers into large
 ;; opaque integer modes.
 
diff -Naur gcc-4.8.1.orig/gcc/config/aarch64/arm_neon.h gcc-4.8.1/gcc/config/aarch64/arm_neon.h
--- gcc-4.8.1.orig/gcc/config/aarch64/arm_neon.h	2013-04-24 10:47:21.000000000 -0500
+++ gcc-4.8.1/gcc/config/aarch64/arm_neon.h	2013-07-17 04:06:21.894684000 -0500
@@ -8518,28 +8518,6 @@
   return result;
 }
 
-__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
-vld1_f32 (const float32_t * a)
-{
-  float32x2_t result;
-  __asm__ ("ld1 {%0.2s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const float32x2_t *_a = (float32x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
-vld1_f64 (const float64_t * a)
-{
-  float64x1_t result;
-  __asm__ ("ld1 {%0.1d}, %1"
-	   : "=w"(result)
-	   : "Utv"(*a)
-	   : /* No clobbers */);
-  return result;
-}
-
 #define vld1_lane_f32(a, b, c)                                          \
   __extension__                                                         \
     ({                                                                  \
@@ -8696,116 +8674,6 @@
        result;                                                          \
      })
 
-__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
-vld1_p8 (const poly8_t * a)
-{
-  poly8x8_t result;
-  __asm__ ("ld1 {%0.8b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly8x8_t *_a = (poly8x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
-vld1_p16 (const poly16_t * a)
-{
-  poly16x4_t result;
-  __asm__ ("ld1 {%0.4h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly16x4_t *_a = (poly16x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-vld1_s8 (const int8_t * a)
-{
-  int8x8_t result;
-  __asm__ ("ld1 {%0.8b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int8x8_t *_a = (int8x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-vld1_s16 (const int16_t * a)
-{
-  int16x4_t result;
-  __asm__ ("ld1 {%0.4h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int16x4_t *_a = (int16x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-vld1_s32 (const int32_t * a)
-{
-  int32x2_t result;
-  __asm__ ("ld1 {%0.2s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int32x2_t *_a = (int32x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
-vld1_s64 (const int64_t * a)
-{
-  int64x1_t result;
-  __asm__ ("ld1 {%0.1d}, %1"
-	   : "=w"(result)
-	   : "Utv"(*a)
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-vld1_u8 (const uint8_t * a)
-{
-  uint8x8_t result;
-  __asm__ ("ld1 {%0.8b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint8x8_t *_a = (uint8x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-vld1_u16 (const uint16_t * a)
-{
-  uint16x4_t result;
-  __asm__ ("ld1 {%0.4h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint16x4_t *_a = (uint16x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-vld1_u32 (const uint32_t * a)
-{
-  uint32x2_t result;
-  __asm__ ("ld1 {%0.2s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint32x2_t *_a = (uint32x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
-vld1_u64 (const uint64_t * a)
-{
-  uint64x1_t result;
-  __asm__ ("ld1 {%0.1d}, %1"
-	   : "=w"(result)
-	   : "Utv"(*a)
-	   : /* No clobbers */);
-  return result;
-}
-
 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vld1q_dup_f32 (const float32_t * a)
 {
@@ -8938,28 +8806,6 @@
   return result;
 }
 
-__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
-vld1q_f32 (const float32_t * a)
-{
-  float32x4_t result;
-  __asm__ ("ld1 {%0.4s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const float32x4_t *_a = (float32x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
-vld1q_f64 (const float64_t * a)
-{
-  float64x2_t result;
-  __asm__ ("ld1 {%0.2d}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const float64x2_t *_a = (float64x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
 #define vld1q_lane_f32(a, b, c)                                         \
   __extension__                                                         \
     ({                                                                  \
@@ -9116,116 +8962,6 @@
        result;                                                          \
      })
 
-__extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
-vld1q_p8 (const poly8_t * a)
-{
-  poly8x16_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly8x16_t *_a = (poly8x16_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
-vld1q_p16 (const poly16_t * a)
-{
-  poly16x8_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const poly16x8_t *_a = (poly16x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
-vld1q_s8 (const int8_t * a)
-{
-  int8x16_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int8x16_t *_a = (int8x16_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
-vld1q_s16 (const int16_t * a)
-{
-  int16x8_t result;
-  __asm__ ("ld1 {%0.8h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int16x8_t *_a = (int16x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
-vld1q_s32 (const int32_t * a)
-{
-  int32x4_t result;
-  __asm__ ("ld1 {%0.4s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int32x4_t *_a = (int32x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
-vld1q_s64 (const int64_t * a)
-{
-  int64x2_t result;
-  __asm__ ("ld1 {%0.2d}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const int64x2_t *_a = (int64x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
-vld1q_u8 (const uint8_t * a)
-{
-  uint8x16_t result;
-  __asm__ ("ld1 {%0.16b}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint8x16_t *_a = (uint8x16_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
-vld1q_u16 (const uint16_t * a)
-{
-  uint16x8_t result;
-  __asm__ ("ld1 {%0.8h}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint16x8_t *_a = (uint16x8_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
-vld1q_u32 (const uint32_t * a)
-{
-  uint32x4_t result;
-  __asm__ ("ld1 {%0.4s}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint32x4_t *_a = (uint32x4_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
-__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
-vld1q_u64 (const uint64_t * a)
-{
-  uint64x2_t result;
-  __asm__ ("ld1 {%0.2d}, %1"
-	   : "=w"(result)
-	   : "Utv"(({const uint64x2_t *_a = (uint64x2_t *) a; *_a;}))
-	   : /* No clobbers */);
-  return result;
-}
-
 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmaxnm_f32 (float32x2_t a, float32x2_t b)
 {
@@ -16285,24 +16021,6 @@
        result;                                                          \
      })
 
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_f32 (float32_t * a, float32x2_t b)
-{
-  __asm__ ("st1 {%1.2s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_f64 (float64_t * a, float64x1_t b)
-{
-  __asm__ ("st1 {%1.1d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
 #define vst1_lane_f32(a, b, c)                                          \
   __extension__                                                         \
     ({                                                                  \
@@ -16435,113 +16153,6 @@
                 : "memory");                                            \
      })
 
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_p8 (poly8_t * a, poly8x8_t b)
-{
-  __asm__ ("st1 {%1.8b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_p16 (poly16_t * a, poly16x4_t b)
-{
-  __asm__ ("st1 {%1.4h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s8 (int8_t * a, int8x8_t b)
-{
-  __asm__ ("st1 {%1.8b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s16 (int16_t * a, int16x4_t b)
-{
-  __asm__ ("st1 {%1.4h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s32 (int32_t * a, int32x2_t b)
-{
-  __asm__ ("st1 {%1.2s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_s64 (int64_t * a, int64x1_t b)
-{
-  __asm__ ("st1 {%1.1d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u8 (uint8_t * a, uint8x8_t b)
-{
-  __asm__ ("st1 {%1.8b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u16 (uint16_t * a, uint16x4_t b)
-{
-  __asm__ ("st1 {%1.4h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u32 (uint32_t * a, uint32x2_t b)
-{
-  __asm__ ("st1 {%1.2s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1_u64 (uint64_t * a, uint64x1_t b)
-{
-  __asm__ ("st1 {%1.1d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_f32 (float32_t * a, float32x4_t b)
-{
-  __asm__ ("st1 {%1.4s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_f64 (float64_t * a, float64x2_t b)
-{
-  __asm__ ("st1 {%1.2d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
 
 #define vst1q_lane_f32(a, b, c)                                         \
   __extension__                                                         \
@@ -16675,96 +16286,6 @@
                 : "memory");                                            \
      })
 
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_p8 (poly8_t * a, poly8x16_t b)
-{
-  __asm__ ("st1 {%1.16b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_p16 (poly16_t * a, poly16x8_t b)
-{
-  __asm__ ("st1 {%1.8h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s8 (int8_t * a, int8x16_t b)
-{
-  __asm__ ("st1 {%1.16b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s16 (int16_t * a, int16x8_t b)
-{
-  __asm__ ("st1 {%1.8h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s32 (int32_t * a, int32x4_t b)
-{
-  __asm__ ("st1 {%1.4s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_s64 (int64_t * a, int64x2_t b)
-{
-  __asm__ ("st1 {%1.2d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u8 (uint8_t * a, uint8x16_t b)
-{
-  __asm__ ("st1 {%1.16b},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u16 (uint16_t * a, uint16x8_t b)
-{
-  __asm__ ("st1 {%1.8h},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u32 (uint32_t * a, uint32x4_t b)
-{
-  __asm__ ("st1 {%1.4s},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
-__extension__ static __inline void __attribute__ ((__always_inline__))
-vst1q_u64 (uint64_t * a, uint64x2_t b)
-{
-  __asm__ ("st1 {%1.2d},[%0]"
-           :
-           : "r"(a), "w"(b)
-           : "memory");
-}
-
 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
 vsubhn_high_s16 (int8x8_t a, int16x8_t b, int16x8_t c)
 {
@@ -20537,6 +20058,165 @@
   return (uint64x1_t) __builtin_aarch64_dup_lanedi ((int64x2_t) a, b);
 }
 
+/* vld1 */
+
+__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
+vld1_f32 (const float32_t *a)
+{
+  return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) a);
+}
+
+__extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
+vld1_f64 (const float64_t *a)
+{
+  return *a;
+}
+
+__extension__ static __inline poly8x8_t __attribute__ ((__always_inline__))
+vld1_p8 (const poly8_t *a)
+{
+  return (poly8x8_t)
+    __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline poly16x4_t __attribute__ ((__always_inline__))
+vld1_p16 (const poly16_t *a)
+{
+  return (poly16x4_t)
+    __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
+vld1_s8 (const int8_t *a)
+{
+  return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
+vld1_s16 (const int16_t *a)
+{
+  return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
+vld1_s32 (const int32_t *a)
+{
+  return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
+vld1_s64 (const int64_t *a)
+{
+  return *a;
+}
+
+__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
+vld1_u8 (const uint8_t *a)
+{
+  return (uint8x8_t)
+    __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
+vld1_u16 (const uint16_t *a)
+{
+  return (uint16x4_t)
+    __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
+vld1_u32 (const uint32_t *a)
+{
+  return (uint32x2_t)
+    __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
+vld1_u64 (const uint64_t *a)
+{
+  return *a;
+}
+
+/* vld1q */
+
+__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
+vld1q_f32 (const float32_t *a)
+{
+  return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) a);
+}
+
+__extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
+vld1q_f64 (const float64_t *a)
+{
+  return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) a);
+}
+
+__extension__ static __inline poly8x16_t __attribute__ ((__always_inline__))
+vld1q_p8 (const poly8_t *a)
+{
+  return (poly8x16_t)
+    __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline poly16x8_t __attribute__ ((__always_inline__))
+vld1q_p16 (const poly16_t *a)
+{
+  return (poly16x8_t)
+    __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int8x16_t __attribute__ ((__always_inline__))
+vld1q_s8 (const int8_t *a)
+{
+  return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
+vld1q_s16 (const int16_t *a)
+{
+  return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
+vld1q_s32 (const int32_t *a)
+{
+  return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline int64x2_t __attribute__ ((__always_inline__))
+vld1q_s64 (const int64_t *a)
+{
+  return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
+}
+
+__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
+vld1q_u8 (const uint8_t *a)
+{
+  return (uint8x16_t)
+    __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
+}
+
+__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
+vld1q_u16 (const uint16_t *a)
+{
+  return (uint16x8_t)
+    __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) a);
+}
+
+__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
+vld1q_u32 (const uint32_t *a)
+{
+  return (uint32x4_t)
+    __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) a);
+}
+
+__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
+vld1q_u64 (const uint64_t *a)
+{
+  return (uint64x2_t)
+    __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) a);
+}
+
 /* vldn */
 
 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__))
@@ -24307,6 +23987,165 @@
   return (uint64x1_t) __builtin_aarch64_usri_ndi (__a, __b, __c);
 }
 
+/* vst1 */
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_f32 (float32_t *a, float32x2_t b)
+{
+  __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_f64 (float64_t *a, float64x1_t b)
+{
+  *a = b;
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_p8 (poly8_t *a, poly8x8_t b)
+{
+  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
+			     (int8x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_p16 (poly16_t *a, poly16x4_t b)
+{
+  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x4_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s8 (int8_t *a, int8x8_t b)
+{
+  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s16 (int16_t *a, int16x4_t b)
+{
+  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s32 (int32_t *a, int32x2_t b)
+{
+  __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_s64 (int64_t *a, int64x1_t b)
+{
+  *a = b;
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u8 (uint8_t *a, uint8x8_t b)
+{
+  __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) a,
+			     (int8x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u16 (uint16_t *a, uint16x4_t b)
+{
+  __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x4_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u32 (uint32_t *a, uint32x2_t b)
+{
+  __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) a,
+			     (int32x2_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1_u64 (uint64_t *a, uint64x1_t b)
+{
+  *a = b;
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_f32 (float32_t *a, float32x4_t b)
+{
+  __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_f64 (float64_t *a, float64x2_t b)
+{
+  __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) a, b);
+}
+
+/* vst1q */
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_p8 (poly8_t *a, poly8x16_t b)
+{
+  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
+			      (int8x16_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_p16 (poly16_t *a, poly16x8_t b)
+{
+  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s8 (int8_t *a, int8x16_t b)
+{
+  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s16 (int16_t *a, int16x8_t b)
+{
+  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s32 (int32_t *a, int32x4_t b)
+{
+  __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_s64 (int64_t *a, int64x2_t b)
+{
+  __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a, b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u8 (uint8_t *a, uint8x16_t b)
+{
+  __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) a,
+			      (int8x16_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u16 (uint16_t *a, uint16x8_t b)
+{
+  __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) a,
+			     (int16x8_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u32 (uint32_t *a, uint32x4_t b)
+{
+  __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) a,
+			     (int32x4_t) b);
+}
+
+__extension__ static __inline void __attribute__ ((__always_inline__))
+vst1q_u64 (uint64_t *a, uint64x2_t b)
+{
+  __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) a,
+			     (int64x2_t) b);
+}
+
 /* vstn */
 
 __extension__ static __inline void
diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.c gcc-4.8.1/gcc/config/alpha/alpha.c
--- gcc-4.8.1.orig/gcc/config/alpha/alpha.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/alpha/alpha.c	2013-06-10 13:36:16.739030000 -0500
@@ -2700,12 +2700,12 @@
       break;
 
     case GE:  case GT:  case GEU:  case GTU:
-      /* These must be swapped.  */
-      if (op1 != CONST0_RTX (cmp_mode))
-	{
-	  code = swap_condition (code);
-	  tem = op0, op0 = op1, op1 = tem;
-	}
+      /* These normally need swapping, but for integer zero we have
+	 special patterns that recognize swapped operands.  */
+      if (cmp_mode == DImode && op1 == const0_rtx)
+	break;
+      code = swap_condition (code);
+      tem = op0, op0 = op1, op1 = tem;
       break;
 
     default:
@@ -3067,12 +3067,9 @@
   operands[1] = op1;
   out = gen_reg_rtx (DImode);
 
-  /* What's actually returned is -1,0,1, not a proper boolean value,
-     so use an EXPR_LIST as with a generic libcall instead of a 
-     comparison type expression.  */
-  note = gen_rtx_EXPR_LIST (VOIDmode, op1, NULL_RTX);
-  note = gen_rtx_EXPR_LIST (VOIDmode, op0, note);
-  note = gen_rtx_EXPR_LIST (VOIDmode, func, note);
+  /* What's actually returned is -1,0,1, not a proper boolean value.  */
+  note = gen_rtx_fmt_ee (cmp_code, VOIDmode, op0, op1);
+  note = gen_rtx_UNSPEC (DImode, gen_rtvec (1, note), UNSPEC_XFLT_COMPARE);
   alpha_emit_xfloating_libcall (func, out, operands, 2, note);
 
   return out;
diff -Naur gcc-4.8.1.orig/gcc/config/alpha/alpha.md gcc-4.8.1/gcc/config/alpha/alpha.md
--- gcc-4.8.1.orig/gcc/config/alpha/alpha.md	2013-02-01 10:34:28.000000000 -0600
+++ gcc-4.8.1/gcc/config/alpha/alpha.md	2013-06-07 01:26:42.097053000 -0500
@@ -23,6 +23,7 @@
 ;; Uses of UNSPEC in this file:
 
 (define_c_enum "unspec" [
+  UNSPEC_XFLT_COMPARE
   UNSPEC_ARG_HOME
   UNSPEC_LDGP1
   UNSPEC_INSXH
diff -Naur gcc-4.8.1.orig/gcc/config/arm/arm.c gcc-4.8.1/gcc/config/arm/arm.c
--- gcc-4.8.1.orig/gcc/config/arm/arm.c	2013-05-24 10:15:44.000000000 -0500
+++ gcc-4.8.1/gcc/config/arm/arm.c	2013-08-21 10:57:02.753791000 -0500
@@ -4459,7 +4459,9 @@
     if (((pcum->aapcs_vfp_regs_free >> regno) & mask) == mask)
       {
 	pcum->aapcs_vfp_reg_alloc = mask << regno;
-	if (mode == BLKmode || (mode == TImode && !TARGET_NEON))
+	if (mode == BLKmode
+	    || (mode == TImode && ! TARGET_NEON)
+	    || ! arm_hard_regno_mode_ok (FIRST_VFP_REGNUM + regno, mode))
 	  {
 	    int i;
 	    int rcount = pcum->aapcs_vfp_rcount;
@@ -7094,7 +7096,7 @@
 thumb1_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
 {
   enum machine_mode mode = GET_MODE (x);
-  int total;
+  int total, words;
 
   switch (code)
     {
@@ -7102,6 +7104,8 @@
     case ASHIFTRT:
     case LSHIFTRT:
     case ROTATERT:
+      return (mode == SImode) ? COSTS_N_INSNS (1) : COSTS_N_INSNS (2);
+
     case PLUS:
     case MINUS:
     case COMPARE:
@@ -7125,7 +7129,10 @@
       return COSTS_N_INSNS (1) + 16;
 
     case SET:
-      return (COSTS_N_INSNS (1)
+      /* A SET doesn't have a mode, so let's look at the SET_DEST to get
+	 the mode.  */
+      words = ARM_NUM_INTS (GET_MODE_SIZE (GET_MODE (SET_DEST (x))));
+      return (COSTS_N_INSNS (words)
 	      + 4 * ((MEM_P (SET_SRC (x)))
 		     + MEM_P (SET_DEST (x))));
 
@@ -7822,6 +7829,7 @@
 thumb1_size_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
 {
   enum machine_mode mode = GET_MODE (x);
+  int words;
 
   switch (code)
     {
@@ -7829,8 +7837,19 @@
     case ASHIFTRT:
     case LSHIFTRT:
     case ROTATERT:
+      return (mode == SImode) ? COSTS_N_INSNS (1) : COSTS_N_INSNS (2);
+
     case PLUS:
     case MINUS:
+      /* Thumb-1 needs two instructions to fulfill shiftadd/shiftsub0/shiftsub1
+	 defined by RTL expansion, especially for the expansion of
+	 multiplication.  */
+      if ((GET_CODE (XEXP (x, 0)) == MULT
+	   && power_of_two_operand (XEXP (XEXP (x,0),1), SImode))
+	  || (GET_CODE (XEXP (x, 1)) == MULT
+	      && power_of_two_operand (XEXP (XEXP (x, 1), 1), SImode)))
+	return COSTS_N_INSNS (2);
+      /* On purpose fall through for normal RTX.  */
     case COMPARE:
     case NEG:
     case NOT:
@@ -7847,7 +7866,10 @@
       return COSTS_N_INSNS (1);
 
     case SET:
-      return (COSTS_N_INSNS (1)
+      /* A SET doesn't have a mode, so let's look at the SET_DEST to get
+	 the mode.  */
+      words = ARM_NUM_INTS (GET_MODE_SIZE (GET_MODE (SET_DEST (x))));
+      return (COSTS_N_INSNS (words)
               + 4 * ((MEM_P (SET_SRC (x)))
                      + MEM_P (SET_DEST (x))));
 
diff -Naur gcc-4.8.1.orig/gcc/config/arm/neon.md gcc-4.8.1/gcc/config/arm/neon.md
--- gcc-4.8.1.orig/gcc/config/arm/neon.md	2013-04-04 09:34:01.000000000 -0500
+++ gcc-4.8.1/gcc/config/arm/neon.md	2013-08-09 01:59:01.329587000 -0500
@@ -244,7 +244,7 @@
   [(set (match_operand:VDQX 0 "neon_struct_or_register_operand")
 	(unspec:VDQX [(match_operand:VDQX 1 "neon_struct_or_register_operand")]
 		     UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
 {
   /* This pattern is not permitted to fail during expansion: if both arguments
      are non-registers (e.g. memory := constant, which can be created by the
@@ -258,7 +258,7 @@
   [(set (match_operand:VDX 0 "neon_struct_operand"	       "=Um")
 	(unspec:VDX [(match_operand:VDX 1 "s_register_operand" " w")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vst1.<V_sz_elem>\t{%P1}, %A0"
   [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")])
 
@@ -266,7 +266,7 @@
   [(set (match_operand:VDX 0 "s_register_operand"		"=w")
 	(unspec:VDX [(match_operand:VDX 1 "neon_struct_operand" " Um")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vld1.<V_sz_elem>\t{%P0}, %A1"
   [(set_attr "neon_type" "neon_vld1_1_2_regs")])
 
@@ -274,7 +274,7 @@
   [(set (match_operand:VQX 0 "neon_struct_operand"	       "=Um")
 	(unspec:VQX [(match_operand:VQX 1 "s_register_operand" " w")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vst1.<V_sz_elem>\t{%q1}, %A0"
   [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")])
 
@@ -282,7 +282,7 @@
   [(set (match_operand:VQX 0 "s_register_operand"	         "=w")
 	(unspec:VQX [(match_operand:VQX 1 "neon_struct_operand" " Um")]
 		    UNSPEC_MISALIGNED_ACCESS))]
-  "TARGET_NEON && !BYTES_BIG_ENDIAN"
+  "TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access"
   "vld1.<V_sz_elem>\t{%q0}, %A1"
   [(set_attr "neon_type" "neon_vld1_1_2_regs")])
 
@@ -1732,6 +1732,7 @@
 			     ? 3 : 1;
   rtx magic_rtx = GEN_INT (magic_word);
   int inverse = 0;
+  int use_zero_form = 0;
   int swap_bsl_operands = 0;
   rtx mask = gen_reg_rtx (<V_cmp_result>mode);
   rtx tmp = gen_reg_rtx (<V_cmp_result>mode);
@@ -1742,12 +1743,16 @@
   switch (GET_CODE (operands[3]))
     {
     case GE:
+    case GT:
     case LE:
+    case LT:
     case EQ:
-      if (!REG_P (operands[5])
-	  && (operands[5] != CONST0_RTX (<MODE>mode)))
-	operands[5] = force_reg (<MODE>mode, operands[5]);
-      break;
+      if (operands[5] == CONST0_RTX (<MODE>mode))
+	{
+	  use_zero_form = 1;
+	  break;
+	}
+      /* Fall through.  */
     default:
       if (!REG_P (operands[5]))
 	operands[5] = force_reg (<MODE>mode, operands[5]);
@@ -1798,7 +1803,26 @@
 	 a GT b -> a GT b
 	 a LE b -> b GE a
 	 a LT b -> b GT a
-	 a EQ b -> a EQ b  */
+	 a EQ b -> a EQ b
+	 Note that there also exist direct comparison against 0 forms,
+	 so catch those as a special case.  */
+      if (use_zero_form)
+	{
+	  inverse = 0;
+	  switch (GET_CODE (operands[3]))
+	    {
+	    case LT:
+	      base_comparison = gen_neon_vclt<mode>;
+	      break;
+	    case LE:
+	      base_comparison = gen_neon_vcle<mode>;
+	      break;
+	    default:
+	      /* Do nothing, other zero form cases already have the correct
+		 base_comparison.  */
+	      break;
+	    }
+	}
 
       if (!inverse)
 	emit_insn (base_comparison (mask, operands[4], operands[5], magic_rtx));
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.c gcc-4.8.1/gcc/config/avr/avr.c
--- gcc-4.8.1.orig/gcc/config/avr/avr.c	2013-03-12 06:42:26.000000000 -0500
+++ gcc-4.8.1/gcc/config/avr/avr.c	2013-07-19 06:15:26.382992000 -0500
@@ -584,7 +584,12 @@
     {
       tree args = TYPE_ARG_TYPES (TREE_TYPE (decl));
       tree ret = TREE_TYPE (TREE_TYPE (decl));
-      const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
+      const char *name;
+
+      name = DECL_ASSEMBLER_NAME_SET_P (decl)
+        /* Remove the leading '*' added in set_user_assembler_name.  */
+        ? 1 + IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
+        : IDENTIFIER_POINTER (DECL_NAME (decl));
 
       /* Silently ignore 'signal' if 'interrupt' is present.  AVR-LibC startet
          using this when it switched from SIGNAL and INTERRUPT to ISR.  */
@@ -1112,7 +1117,7 @@
               leaf function and thus X has already been saved.  */
 
           int irq_state = -1;
-          HOST_WIDE_INT size_cfa = size;
+          HOST_WIDE_INT size_cfa = size, neg_size;
           rtx fp_plus_insns, fp, my_fp;
 
           gcc_assert (frame_pointer_needed
@@ -1151,6 +1156,7 @@
             }
 
           size = trunc_int_for_mode (size, GET_MODE (my_fp));
+          neg_size = trunc_int_for_mode (-size, GET_MODE (my_fp));
 
           /************  Method 1: Adjust frame pointer  ************/
 
@@ -1171,7 +1177,8 @@
             }
 
           insn = emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp),
-                                                       my_fp, -size));
+                                                       my_fp, neg_size));
+
           if (frame_pointer_needed)
             {
               RTX_FRAME_RELATED_P (insn) = 1;
@@ -6225,11 +6232,14 @@
    the subtrahend in the original insn, provided it is a compile time constant.
    In all other cases, SIGN is 0.
 
-   Return "".  */
+   If OUT_LABEL is true, print the final 0: label which is needed for
+   saturated addition / subtraction.  The only case where OUT_LABEL = false
+   is useful is for saturated addition / subtraction performed during
+   fixed-point rounding, cf. `avr_out_round'.  */
 
 static void
 avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
-                enum rtx_code code_sat = UNKNOWN, int sign = 0)
+                enum rtx_code code_sat, int sign, bool out_label)
 {
   /* MODE of the operation.  */
   enum machine_mode mode = GET_MODE (xop[0]);
@@ -6668,7 +6678,8 @@
                      "mov %r0+5,%0", xop, plen, 4);
     }
 
-  avr_asm_len ("0:", op, plen, 0);
+  if (out_label)
+    avr_asm_len ("0:", op, plen, 0);
 }
 
 
@@ -6706,8 +6717,8 @@
 
 /* Prepare operands of addition/subtraction to be used with avr_out_plus_1.
 
-   INSN is a single_set insn with a binary operation as SET_SRC that is
-   one of:  PLUS, SS_PLUS, US_PLUS, MINUS, SS_MINUS, US_MINUS.
+   INSN is a single_set insn or an insn pattern with a binary operation as
+   SET_SRC that is one of: PLUS, SS_PLUS, US_PLUS, MINUS, SS_MINUS, US_MINUS.
 
    XOP are the operands of INSN.  In the case of 64-bit operations with
    constant XOP[] has just one element:  The summand/subtrahend in XOP[0].
@@ -6722,19 +6733,22 @@
 
    PLEN and PCC default to NULL.
 
+   OUT_LABEL defaults to TRUE.  For a description, see AVR_OUT_PLUS_1.
+
    Return ""  */
 
 const char*
-avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc)
+avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label)
 {
   int cc_plus, cc_minus, cc_dummy;
   int len_plus, len_minus;
   rtx op[4];
-  rtx xdest = SET_DEST (single_set (insn));
+  rtx xpattern = INSN_P (insn) ? single_set (insn) : insn;
+  rtx xdest = SET_DEST (xpattern);
   enum machine_mode mode = GET_MODE (xdest);
   enum machine_mode imode = int_mode_for_mode (mode);
   int n_bytes = GET_MODE_SIZE (mode);
-  enum rtx_code code_sat = GET_CODE (SET_SRC (single_set (insn)));
+  enum rtx_code code_sat = GET_CODE (SET_SRC (xpattern));
   enum rtx_code code
     = (PLUS == code_sat || SS_PLUS == code_sat || US_PLUS == code_sat
        ? PLUS : MINUS);
@@ -6749,7 +6763,7 @@
 
   if (n_bytes <= 4 && REG_P (xop[2]))
     {
-      avr_out_plus_1 (xop, plen, code, pcc, code_sat);
+      avr_out_plus_1 (xop, plen, code, pcc, code_sat, 0, out_label);
       return "";
     }
 
@@ -6776,7 +6790,8 @@
   /* Saturations and 64-bit operations don't have a clobber operand.
      For the other cases, the caller will provide a proper XOP[3].  */
 
-  op[3] = PARALLEL == GET_CODE (PATTERN (insn)) ? xop[3] : NULL_RTX;
+  xpattern = INSN_P (insn) ? PATTERN (insn) : insn;
+  op[3] = PARALLEL == GET_CODE (xpattern) ? xop[3] : NULL_RTX;
 
   /* Saturation will need the sign of the original operand.  */
 
@@ -6791,8 +6806,8 @@
 
   /* Work out the shortest sequence.  */
 
-  avr_out_plus_1 (op, &len_minus, MINUS, &cc_plus, code_sat, sign);
-  avr_out_plus_1 (op, &len_plus, PLUS, &cc_minus, code_sat, sign);
+  avr_out_plus_1 (op, &len_minus, MINUS, &cc_plus, code_sat, sign, out_label);
+  avr_out_plus_1 (op, &len_plus, PLUS, &cc_minus, code_sat, sign, out_label);
 
   if (plen)
     {
@@ -6800,9 +6815,9 @@
       *pcc  = (len_minus <= len_plus) ? cc_minus : cc_plus;
     }
   else if (len_minus <= len_plus)
-    avr_out_plus_1 (op, NULL, MINUS, pcc, code_sat, sign);
+    avr_out_plus_1 (op, NULL, MINUS, pcc, code_sat, sign, out_label);
   else
-    avr_out_plus_1 (op, NULL, PLUS, pcc, code_sat, sign);
+    avr_out_plus_1 (op, NULL, PLUS, pcc, code_sat, sign, out_label);
 
   return "";
 }
@@ -6816,13 +6831,15 @@
    and return "".  If PLEN == NULL, print assembler instructions to perform the
    operation; otherwise, set *PLEN to the length of the instruction sequence
    (in words) printed with PLEN == NULL.  XOP[3] is either an 8-bit clobber
-   register or SCRATCH if no clobber register is needed for the operation.  */
+   register or SCRATCH if no clobber register is needed for the operation.
+   INSN is an INSN_P or a pattern of an insn.  */
 
 const char*
 avr_out_bitop (rtx insn, rtx *xop, int *plen)
 {
   /* CODE and MODE of the operation.  */
-  enum rtx_code code = GET_CODE (SET_SRC (single_set (insn)));
+  rtx xpattern = INSN_P (insn) ? single_set (insn) : insn;
+  enum rtx_code code = GET_CODE (SET_SRC (xpattern));
   enum machine_mode mode = GET_MODE (xop[0]);
 
   /* Number of bytes to operate on.  */
@@ -7325,6 +7342,67 @@
 }
 
 
+/* Output fixed-point rounding.  XOP[0] = XOP[1] is the operand to round.
+   XOP[2] is the rounding point, a CONST_INT.  The function prints the
+   instruction sequence if PLEN = NULL and computes the length in words
+   of the sequence if PLEN != NULL.  Most of this function deals with
+   preparing operands for calls to `avr_out_plus' and `avr_out_bitop'.  */
+
+const char*
+avr_out_round (rtx insn ATTRIBUTE_UNUSED, rtx *xop, int *plen)
+{
+  enum machine_mode mode = GET_MODE (xop[0]);
+  enum machine_mode imode = int_mode_for_mode (mode);
+  // The smallest fractional bit not cleared by the rounding is 2^(-RP).
+  int fbit = (int) GET_MODE_FBIT (mode);
+  double_int i_add = double_int_zero.set_bit (fbit-1 - INTVAL (xop[2]));
+  // Lengths of PLUS and AND parts.
+  int len_add = 0, *plen_add = plen ? &len_add : NULL;
+  int len_and = 0, *plen_and = plen ? &len_and : NULL;
+
+  // Add-Saturate  1/2 * 2^(-RP).  Don't print the label "0:" when printing
+  // the saturated addition so that we can emit the "rjmp 1f" before the
+  // "0:" below.
+
+  rtx xadd = const_fixed_from_double_int (i_add, mode);
+  rtx xpattern, xsrc, op[4];
+
+  xsrc = SIGNED_FIXED_POINT_MODE_P (mode)
+    ? gen_rtx_SS_PLUS (mode, xop[1], xadd)
+    : gen_rtx_US_PLUS (mode, xop[1], xadd);
+  xpattern = gen_rtx_SET (VOIDmode, xop[0], xsrc);
+
+  op[0] = xop[0];
+  op[1] = xop[1];
+  op[2] = xadd;
+  avr_out_plus (xpattern, op, plen_add, NULL, false /* Don't print "0:" */);
+
+  avr_asm_len ("rjmp 1f" CR_TAB
+               "0:", NULL, plen_add, 1);
+
+  // Keep  all bits from RP and higher:   ... 2^(-RP)
+  // Clear all bits from RP+1 and lower:              2^(-RP-1) ...
+  // Rounding point                           ^^^^^^^
+  // Added above                                      ^^^^^^^^^
+  rtx xreg = simplify_gen_subreg (imode, xop[0], mode, 0);
+  rtx xmask = immed_double_int_const (-i_add - i_add, imode);
+
+  xpattern = gen_rtx_SET (VOIDmode, xreg, gen_rtx_AND (imode, xreg, xmask));
+
+  op[0] = xreg;
+  op[1] = xreg;
+  op[2] = xmask;
+  op[3] = gen_rtx_SCRATCH (QImode);
+  avr_out_bitop (xpattern, op, plen_and);
+  avr_asm_len ("1:", NULL, plen, 0);
+
+  if (plen)
+    *plen = len_add + len_and;
+
+  return "";
+}
+
+
 /* Create RTL split patterns for byte sized rotate expressions.  This
   produces a series of move instructions and considers overlap situations.
   Overlapping non-HImode operands need a scratch register.  */
@@ -7533,6 +7611,7 @@
 
     case ADJUST_LEN_SFRACT: avr_out_fract (insn, op, true, &len); break;
     case ADJUST_LEN_UFRACT: avr_out_fract (insn, op, false, &len); break;
+    case ADJUST_LEN_ROUND: avr_out_round (insn, op, &len); break;
 
     case ADJUST_LEN_TSTHI: avr_out_tsthi (insn, op, &len); break;
     case ADJUST_LEN_TSTPSI: avr_out_tstpsi (insn, op, &len); break;
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-fixed.md gcc-4.8.1/gcc/config/avr/avr-fixed.md
--- gcc-4.8.1.orig/gcc/config/avr/avr-fixed.md	2013-02-08 04:13:37.000000000 -0600
+++ gcc-4.8.1/gcc/config/avr/avr-fixed.md	2013-07-19 06:15:26.382992000 -0500
@@ -447,49 +447,18 @@
 ;; "roundqq3_const"  "rounduqq3_const"
 ;; "roundhq3_const"  "rounduhq3_const"  "roundha3_const"  "rounduha3_const"
 ;; "roundsq3_const"  "roundusq3_const"  "roundsa3_const"  "roundusa3_const"
-(define_expand "round<mode>3_const"
-  [(parallel [(match_operand:ALL124QA 0 "register_operand" "")
-              (match_operand:ALL124QA 1 "register_operand" "")
-              (match_operand:HI 2 "const_int_operand" "")])]
+(define_insn "round<mode>3_const"
+  [(set (match_operand:ALL124QA 0 "register_operand"                  "=d")
+        (unspec:ALL124QA [(match_operand:ALL124QA 1 "register_operand" "0")
+                          (match_operand:HI 2 "const_int_operand"      "n")
+                          (const_int 0)]
+                         UNSPEC_ROUND))]
   ""
   {
-    // The rounding point RP is $2.  The smallest fractional
-    // bit that is not cleared by the rounding is 2^(-RP).
-
-    enum machine_mode imode = int_mode_for_mode (<MODE>mode);
-    int fbit = (int) GET_MODE_FBIT (<MODE>mode);
-
-    // Add-Saturate  1/2 * 2^(-RP)
-
-    double_int i_add = double_int_zero.set_bit (fbit-1 - INTVAL (operands[2]));
-    rtx x_add = const_fixed_from_double_int (i_add, <MODE>mode);
-
-    if (SIGNED_FIXED_POINT_MODE_P (<MODE>mode))
-      emit_move_insn (operands[0],
-                      gen_rtx_SS_PLUS (<MODE>mode, operands[1], x_add));
-    else
-      emit_move_insn (operands[0],
-                      gen_rtx_US_PLUS (<MODE>mode, operands[1], x_add));
-
-    // Keep  all bits from RP and higher:   ... 2^(-RP)
-    // Clear all bits from RP+1 and lower:              2^(-RP-1) ...
-    // Rounding point                           ^^^^^^^
-    // Added above                                      ^^^^^^^^^
-
-    rtx xreg = simplify_gen_subreg (imode, operands[0], <MODE>mode, 0);
-    rtx xmask = immed_double_int_const (-i_add - i_add, imode);
-
-    if (SImode == imode)
-      emit_insn (gen_andsi3 (xreg, xreg, xmask));
-    else if (HImode == imode)
-      emit_insn (gen_andhi3 (xreg, xreg, xmask));
-    else if (QImode == imode)
-      emit_insn (gen_andqi3 (xreg, xreg, xmask));
-    else
-      gcc_unreachable();
-
-    DONE;
-  })
+    return avr_out_round (insn, operands);
+  }
+  [(set_attr "cc" "clobber")
+   (set_attr "adjust_len" "round")])
 
 
 ;; "*roundqq3.libgcc"  "*rounduqq3.libgcc"
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-mcus.def gcc-4.8.1/gcc/config/avr/avr-mcus.def
--- gcc-4.8.1.orig/gcc/config/avr/avr-mcus.def	2013-02-28 03:03:09.000000000 -0600
+++ gcc-4.8.1/gcc/config/avr/avr-mcus.def	2013-07-10 07:36:36.732157000 -0500
@@ -168,7 +168,6 @@
 AVR_MCU ("atmega169a",           ARCH_AVR5, "__AVR_ATmega169A__",        0, 0, 0x0100, 1, "m169a")
 AVR_MCU ("atmega169p",           ARCH_AVR5, "__AVR_ATmega169P__",        0, 0, 0x0100, 1, "m169p")
 AVR_MCU ("atmega169pa",          ARCH_AVR5, "__AVR_ATmega169PA__",       0, 0, 0x0100, 1, "m169pa")
-AVR_MCU ("atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0, 0x0100, 1, "m16hva")
 AVR_MCU ("atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0, 0x0100, 1, "m16hvb")
 AVR_MCU ("atmega16hvbrevb",      ARCH_AVR5, "__AVR_ATmega16HVBREVB__",   0, 0, 0x0100, 1, "m16hvbrevb")
 AVR_MCU ("atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0, 0x0100, 1, "m16m1")
@@ -176,7 +175,6 @@
 AVR_MCU ("atmega26hvg",          ARCH_AVR5, "__AVR_ATmega26HVG__",       0, 0, 0x0100, 1, "m26hvg")
 AVR_MCU ("atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0, 0x0060, 1, "m32a")
 AVR_MCU ("atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0, 0x0060, 1, "m32")
-AVR_MCU ("atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0, 0x0060, 1, "m32a")
 AVR_MCU ("atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0, 0x0060, 1, "m323")
 AVR_MCU ("atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0, 0x0100, 1, "m324a")
 AVR_MCU ("atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0, 0x0100, 1, "m324p")
@@ -222,7 +220,6 @@
 AVR_MCU ("atmega6490",           ARCH_AVR5, "__AVR_ATmega6490__",        0, 0, 0x0100, 1, "m6490")
 AVR_MCU ("atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0, 0x0100, 1, "m16hva")
 AVR_MCU ("atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0, 0x0100, 1, "m16hva2")
-AVR_MCU ("atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0, 0x0100, 1, "m16hvb")
 AVR_MCU ("atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0, 0x0100, 1, "m32hvb")
 AVR_MCU ("atmega6490a",          ARCH_AVR5, "__AVR_ATmega6490A__",       0, 0, 0x0100, 1, "m6490a")
 AVR_MCU ("atmega6490p",          ARCH_AVR5, "__AVR_ATmega6490P__",       0, 0, 0x0100, 1, "m6490p")
@@ -231,23 +228,13 @@
 AVR_MCU ("atmega64hve",          ARCH_AVR5, "__AVR_ATmega64HVE__",       0, 0, 0x0100, 1, "m64hve")
 AVR_MCU ("atmega64rfa2",         ARCH_AVR5, "__AVR_ATmega64RFA2__",      0, 0, 0x0200, 1, "m64rfa2")
 AVR_MCU ("atmega64rfr2",         ARCH_AVR5, "__AVR_ATmega64RFR2__",      0, 0, 0x0200, 1, "m64rfr2")
-AVR_MCU ("atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0, 0x0100, 1, "m32hvb")
 AVR_MCU ("atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   0, 0, 0x0100, 1, "m32hvbrevb")
-AVR_MCU ("atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0, 0x0100, 1, "m16hva2")
 AVR_MCU ("atmega48hvf",          ARCH_AVR5, "__AVR_ATmega48HVF__",       0, 0, 0x0100, 1, "m48hvf")
 AVR_MCU ("at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0, 0x0100, 1, "can32")
 AVR_MCU ("at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0, 0x0100, 1, "can64")
 AVR_MCU ("at90pwm161",           ARCH_AVR5, "__AVR_AT90PWM161__",        0, 0, 0x0100, 1, "90pwm161")
 AVR_MCU ("at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0, 0x0100, 1, "90pwm216")
 AVR_MCU ("at90pwm316",           ARCH_AVR5, "__AVR_AT90PWM316__",        0, 0, 0x0100, 1, "90pwm316")
-AVR_MCU ("atmega32c1",           ARCH_AVR5, "__AVR_ATmega32C1__",        0, 0, 0x0100, 1, "m32c1")
-AVR_MCU ("atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0, 0x0100, 1, "m64c1")
-AVR_MCU ("atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0, 0x0100, 1, "m16m1")
-AVR_MCU ("atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0, 0x0100, 1, "m32m1")
-AVR_MCU ("atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0, 0x0100, 1, "m64m1")
-AVR_MCU ("atmega16u4",           ARCH_AVR5, "__AVR_ATmega16U4__",        0, 0, 0x0100, 1, "m16u4")
-AVR_MCU ("atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0, 0x0100, 1, "m32u4")
-AVR_MCU ("atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0, 0x0100, 1, "m32u6")
 AVR_MCU ("at90scr100",           ARCH_AVR5, "__AVR_AT90SCR100__",        0, 0, 0x0100, 1, "90scr100")
 AVR_MCU ("at90usb646",           ARCH_AVR5, "__AVR_AT90USB646__",        0, 0, 0x0100, 1, "usb646")
 AVR_MCU ("at90usb647",           ARCH_AVR5, "__AVR_AT90USB647__",        0, 0, 0x0100, 1, "usb647")
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.md gcc-4.8.1/gcc/config/avr/avr.md
--- gcc-4.8.1.orig/gcc/config/avr/avr.md	2013-02-08 04:13:37.000000000 -0600
+++ gcc-4.8.1/gcc/config/avr/avr.md	2013-07-19 06:15:26.382992000 -0500
@@ -140,7 +140,7 @@
   "out_bitop, plus, addto_sp,
    tsthi, tstpsi, tstsi, compare, compare64, call,
    mov8, mov16, mov24, mov32, reload_in16, reload_in24, reload_in32,
-   ufract, sfract,
+   ufract, sfract, round,
    xload, lpm, movmem,
    ashlqi, ashrqi, lshrqi,
    ashlhi, ashrhi, lshrhi,
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr.opt gcc-4.8.1/gcc/config/avr/avr.opt
--- gcc-4.8.1.orig/gcc/config/avr/avr.opt	2013-03-12 06:42:26.000000000 -0500
+++ gcc-4.8.1/gcc/config/avr/avr.opt	2013-07-10 06:20:18.855155000 -0500
@@ -77,4 +77,4 @@
 
 Waddr-space-convert
 Warning C Report Var(avr_warn_addr_space_convert) Init(0)
-Warn if the address space of an address is change.
+Warn if the address space of an address is changed.
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-protos.h gcc-4.8.1/gcc/config/avr/avr-protos.h
--- gcc-4.8.1.orig/gcc/config/avr/avr-protos.h	2013-01-14 09:08:45.000000000 -0600
+++ gcc-4.8.1/gcc/config/avr/avr-protos.h	2013-07-19 06:15:26.382992000 -0500
@@ -86,7 +86,8 @@
 extern void avr_output_addr_vec_elt (FILE *stream, int value);
 extern const char *avr_out_sbxx_branch (rtx insn, rtx operands[]);
 extern const char* avr_out_bitop (rtx, rtx*, int*);
-extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL);
+extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL, bool =true);
+extern const char* avr_out_round (rtx, rtx*, int* =NULL);
 extern const char* avr_out_addto_sp (rtx*, int*);
 extern const char* avr_out_xload (rtx, rtx*, int*);
 extern const char* avr_out_movmem (rtx, rtx*, int*);
diff -Naur gcc-4.8.1.orig/gcc/config/avr/avr-tables.opt gcc-4.8.1/gcc/config/avr/avr-tables.opt
--- gcc-4.8.1.orig/gcc/config/avr/avr-tables.opt	2013-02-28 03:03:09.000000000 -0600
+++ gcc-4.8.1/gcc/config/avr/avr-tables.opt	2013-07-10 07:36:36.732157000 -0500
@@ -330,479 +330,440 @@
 Enum(avr_mcu) String(atmega169pa) Value(101)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva) Value(102)
+Enum(avr_mcu) String(atmega16hvb) Value(102)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hvb) Value(103)
+Enum(avr_mcu) String(atmega16hvbrevb) Value(103)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hvbrevb) Value(104)
+Enum(avr_mcu) String(atmega16m1) Value(104)
 
 EnumValue
-Enum(avr_mcu) String(atmega16m1) Value(105)
+Enum(avr_mcu) String(atmega16u4) Value(105)
 
 EnumValue
-Enum(avr_mcu) String(atmega16u4) Value(106)
+Enum(avr_mcu) String(atmega26hvg) Value(106)
 
 EnumValue
-Enum(avr_mcu) String(atmega26hvg) Value(107)
+Enum(avr_mcu) String(atmega32a) Value(107)
 
 EnumValue
-Enum(avr_mcu) String(atmega32a) Value(108)
+Enum(avr_mcu) String(atmega32) Value(108)
 
 EnumValue
-Enum(avr_mcu) String(atmega32) Value(109)
+Enum(avr_mcu) String(atmega323) Value(109)
 
 EnumValue
-Enum(avr_mcu) String(atmega32a) Value(110)
+Enum(avr_mcu) String(atmega324a) Value(110)
 
 EnumValue
-Enum(avr_mcu) String(atmega323) Value(111)
+Enum(avr_mcu) String(atmega324p) Value(111)
 
 EnumValue
-Enum(avr_mcu) String(atmega324a) Value(112)
+Enum(avr_mcu) String(atmega324pa) Value(112)
 
 EnumValue
-Enum(avr_mcu) String(atmega324p) Value(113)
+Enum(avr_mcu) String(atmega325) Value(113)
 
 EnumValue
-Enum(avr_mcu) String(atmega324pa) Value(114)
+Enum(avr_mcu) String(atmega325a) Value(114)
 
 EnumValue
-Enum(avr_mcu) String(atmega325) Value(115)
+Enum(avr_mcu) String(atmega325p) Value(115)
 
 EnumValue
-Enum(avr_mcu) String(atmega325a) Value(116)
+Enum(avr_mcu) String(atmega3250) Value(116)
 
 EnumValue
-Enum(avr_mcu) String(atmega325p) Value(117)
+Enum(avr_mcu) String(atmega3250a) Value(117)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250) Value(118)
+Enum(avr_mcu) String(atmega3250p) Value(118)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250a) Value(119)
+Enum(avr_mcu) String(atmega3250pa) Value(119)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250p) Value(120)
+Enum(avr_mcu) String(atmega328) Value(120)
 
 EnumValue
-Enum(avr_mcu) String(atmega3250pa) Value(121)
+Enum(avr_mcu) String(atmega328p) Value(121)
 
 EnumValue
-Enum(avr_mcu) String(atmega328) Value(122)
+Enum(avr_mcu) String(atmega329) Value(122)
 
 EnumValue
-Enum(avr_mcu) String(atmega328p) Value(123)
+Enum(avr_mcu) String(atmega329a) Value(123)
 
 EnumValue
-Enum(avr_mcu) String(atmega329) Value(124)
+Enum(avr_mcu) String(atmega329p) Value(124)
 
 EnumValue
-Enum(avr_mcu) String(atmega329a) Value(125)
+Enum(avr_mcu) String(atmega329pa) Value(125)
 
 EnumValue
-Enum(avr_mcu) String(atmega329p) Value(126)
+Enum(avr_mcu) String(atmega3290) Value(126)
 
 EnumValue
-Enum(avr_mcu) String(atmega329pa) Value(127)
+Enum(avr_mcu) String(atmega3290a) Value(127)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290) Value(128)
+Enum(avr_mcu) String(atmega3290p) Value(128)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290a) Value(129)
+Enum(avr_mcu) String(atmega3290pa) Value(129)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290p) Value(130)
+Enum(avr_mcu) String(atmega32c1) Value(130)
 
 EnumValue
-Enum(avr_mcu) String(atmega3290pa) Value(131)
+Enum(avr_mcu) String(atmega32m1) Value(131)
 
 EnumValue
-Enum(avr_mcu) String(atmega32c1) Value(132)
+Enum(avr_mcu) String(atmega32u4) Value(132)
 
 EnumValue
-Enum(avr_mcu) String(atmega32m1) Value(133)
+Enum(avr_mcu) String(atmega32u6) Value(133)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u4) Value(134)
+Enum(avr_mcu) String(atmega406) Value(134)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u6) Value(135)
+Enum(avr_mcu) String(atmega64) Value(135)
 
 EnumValue
-Enum(avr_mcu) String(atmega406) Value(136)
+Enum(avr_mcu) String(atmega64a) Value(136)
 
 EnumValue
-Enum(avr_mcu) String(atmega64) Value(137)
+Enum(avr_mcu) String(atmega640) Value(137)
 
 EnumValue
-Enum(avr_mcu) String(atmega64a) Value(138)
+Enum(avr_mcu) String(atmega644) Value(138)
 
 EnumValue
-Enum(avr_mcu) String(atmega640) Value(139)
+Enum(avr_mcu) String(atmega644a) Value(139)
 
 EnumValue
-Enum(avr_mcu) String(atmega644) Value(140)
+Enum(avr_mcu) String(atmega644p) Value(140)
 
 EnumValue
-Enum(avr_mcu) String(atmega644a) Value(141)
+Enum(avr_mcu) String(atmega644pa) Value(141)
 
 EnumValue
-Enum(avr_mcu) String(atmega644p) Value(142)
+Enum(avr_mcu) String(atmega645) Value(142)
 
 EnumValue
-Enum(avr_mcu) String(atmega644pa) Value(143)
+Enum(avr_mcu) String(atmega645a) Value(143)
 
 EnumValue
-Enum(avr_mcu) String(atmega645) Value(144)
+Enum(avr_mcu) String(atmega645p) Value(144)
 
 EnumValue
-Enum(avr_mcu) String(atmega645a) Value(145)
+Enum(avr_mcu) String(atmega6450) Value(145)
 
 EnumValue
-Enum(avr_mcu) String(atmega645p) Value(146)
+Enum(avr_mcu) String(atmega6450a) Value(146)
 
 EnumValue
-Enum(avr_mcu) String(atmega6450) Value(147)
+Enum(avr_mcu) String(atmega6450p) Value(147)
 
 EnumValue
-Enum(avr_mcu) String(atmega6450a) Value(148)
+Enum(avr_mcu) String(atmega649) Value(148)
 
 EnumValue
-Enum(avr_mcu) String(atmega6450p) Value(149)
+Enum(avr_mcu) String(atmega649a) Value(149)
 
 EnumValue
-Enum(avr_mcu) String(atmega649) Value(150)
+Enum(avr_mcu) String(atmega649p) Value(150)
 
 EnumValue
-Enum(avr_mcu) String(atmega649a) Value(151)
+Enum(avr_mcu) String(atmega6490) Value(151)
 
 EnumValue
-Enum(avr_mcu) String(atmega649p) Value(152)
+Enum(avr_mcu) String(atmega16hva) Value(152)
 
 EnumValue
-Enum(avr_mcu) String(atmega6490) Value(153)
+Enum(avr_mcu) String(atmega16hva2) Value(153)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva) Value(154)
+Enum(avr_mcu) String(atmega32hvb) Value(154)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva2) Value(155)
+Enum(avr_mcu) String(atmega6490a) Value(155)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hvb) Value(156)
+Enum(avr_mcu) String(atmega6490p) Value(156)
 
 EnumValue
-Enum(avr_mcu) String(atmega32hvb) Value(157)
+Enum(avr_mcu) String(atmega64c1) Value(157)
 
 EnumValue
-Enum(avr_mcu) String(atmega6490a) Value(158)
+Enum(avr_mcu) String(atmega64m1) Value(158)
 
 EnumValue
-Enum(avr_mcu) String(atmega6490p) Value(159)
+Enum(avr_mcu) String(atmega64hve) Value(159)
 
 EnumValue
-Enum(avr_mcu) String(atmega64c1) Value(160)
+Enum(avr_mcu) String(atmega64rfa2) Value(160)
 
 EnumValue
-Enum(avr_mcu) String(atmega64m1) Value(161)
+Enum(avr_mcu) String(atmega64rfr2) Value(161)
 
 EnumValue
-Enum(avr_mcu) String(atmega64hve) Value(162)
+Enum(avr_mcu) String(atmega32hvbrevb) Value(162)
 
 EnumValue
-Enum(avr_mcu) String(atmega64rfa2) Value(163)
+Enum(avr_mcu) String(atmega48hvf) Value(163)
 
 EnumValue
-Enum(avr_mcu) String(atmega64rfr2) Value(164)
+Enum(avr_mcu) String(at90can32) Value(164)
 
 EnumValue
-Enum(avr_mcu) String(atmega32hvb) Value(165)
+Enum(avr_mcu) String(at90can64) Value(165)
 
 EnumValue
-Enum(avr_mcu) String(atmega32hvbrevb) Value(166)
+Enum(avr_mcu) String(at90pwm161) Value(166)
 
 EnumValue
-Enum(avr_mcu) String(atmega16hva2) Value(167)
+Enum(avr_mcu) String(at90pwm216) Value(167)
 
 EnumValue
-Enum(avr_mcu) String(atmega48hvf) Value(168)
+Enum(avr_mcu) String(at90pwm316) Value(168)
 
 EnumValue
-Enum(avr_mcu) String(at90can32) Value(169)
+Enum(avr_mcu) String(at90scr100) Value(169)
 
 EnumValue
-Enum(avr_mcu) String(at90can64) Value(170)
+Enum(avr_mcu) String(at90usb646) Value(170)
 
 EnumValue
-Enum(avr_mcu) String(at90pwm161) Value(171)
+Enum(avr_mcu) String(at90usb647) Value(171)
 
 EnumValue
-Enum(avr_mcu) String(at90pwm216) Value(172)
+Enum(avr_mcu) String(at94k) Value(172)
 
 EnumValue
-Enum(avr_mcu) String(at90pwm316) Value(173)
+Enum(avr_mcu) String(m3000) Value(173)
 
 EnumValue
-Enum(avr_mcu) String(atmega32c1) Value(174)
+Enum(avr_mcu) String(avr51) Value(174)
 
 EnumValue
-Enum(avr_mcu) String(atmega64c1) Value(175)
+Enum(avr_mcu) String(atmega128) Value(175)
 
 EnumValue
-Enum(avr_mcu) String(atmega16m1) Value(176)
+Enum(avr_mcu) String(atmega128a) Value(176)
 
 EnumValue
-Enum(avr_mcu) String(atmega32m1) Value(177)
+Enum(avr_mcu) String(atmega1280) Value(177)
 
 EnumValue
-Enum(avr_mcu) String(atmega64m1) Value(178)
+Enum(avr_mcu) String(atmega1281) Value(178)
 
 EnumValue
-Enum(avr_mcu) String(atmega16u4) Value(179)
+Enum(avr_mcu) String(atmega1284) Value(179)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u4) Value(180)
+Enum(avr_mcu) String(atmega1284p) Value(180)
 
 EnumValue
-Enum(avr_mcu) String(atmega32u6) Value(181)
+Enum(avr_mcu) String(atmega128rfa1) Value(181)
 
 EnumValue
-Enum(avr_mcu) String(at90scr100) Value(182)
+Enum(avr_mcu) String(at90can128) Value(182)
 
 EnumValue
-Enum(avr_mcu) String(at90usb646) Value(183)
+Enum(avr_mcu) String(at90usb1286) Value(183)
 
 EnumValue
-Enum(avr_mcu) String(at90usb647) Value(184)
+Enum(avr_mcu) String(at90usb1287) Value(184)
 
 EnumValue
-Enum(avr_mcu) String(at94k) Value(185)
+Enum(avr_mcu) String(avr6) Value(185)
 
 EnumValue
-Enum(avr_mcu) String(m3000) Value(186)
+Enum(avr_mcu) String(atmega2560) Value(186)
 
 EnumValue
-Enum(avr_mcu) String(avr51) Value(187)
+Enum(avr_mcu) String(atmega2561) Value(187)
 
 EnumValue
-Enum(avr_mcu) String(atmega128) Value(188)
+Enum(avr_mcu) String(avrxmega2) Value(188)
 
 EnumValue
-Enum(avr_mcu) String(atmega128a) Value(189)
+Enum(avr_mcu) String(atxmega16a4) Value(189)
 
 EnumValue
-Enum(avr_mcu) String(atmega1280) Value(190)
+Enum(avr_mcu) String(atxmega16d4) Value(190)
 
 EnumValue
-Enum(avr_mcu) String(atmega1281) Value(191)
+Enum(avr_mcu) String(atxmega16x1) Value(191)
 
 EnumValue
-Enum(avr_mcu) String(atmega1284) Value(192)
+Enum(avr_mcu) String(atxmega32a4) Value(192)
 
 EnumValue
-Enum(avr_mcu) String(atmega1284p) Value(193)
+Enum(avr_mcu) String(atxmega32d4) Value(193)
 
 EnumValue
-Enum(avr_mcu) String(atmega128rfa1) Value(194)
+Enum(avr_mcu) String(atxmega32x1) Value(194)
 
 EnumValue
-Enum(avr_mcu) String(at90can128) Value(195)
+Enum(avr_mcu) String(atmxt112sl) Value(195)
 
 EnumValue
-Enum(avr_mcu) String(at90usb1286) Value(196)
+Enum(avr_mcu) String(atmxt224) Value(196)
 
 EnumValue
-Enum(avr_mcu) String(at90usb1287) Value(197)
+Enum(avr_mcu) String(atmxt224e) Value(197)
 
 EnumValue
-Enum(avr_mcu) String(avr6) Value(198)
+Enum(avr_mcu) String(atmxt336s) Value(198)
 
 EnumValue
-Enum(avr_mcu) String(atmega2560) Value(199)
+Enum(avr_mcu) String(atxmega16a4u) Value(199)
 
 EnumValue
-Enum(avr_mcu) String(atmega2561) Value(200)
+Enum(avr_mcu) String(atxmega16c4) Value(200)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega2) Value(201)
+Enum(avr_mcu) String(atxmega32a4u) Value(201)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16a4) Value(202)
+Enum(avr_mcu) String(atxmega32c4) Value(202)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16d4) Value(203)
+Enum(avr_mcu) String(atxmega32e5) Value(203)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16x1) Value(204)
+Enum(avr_mcu) String(avrxmega4) Value(204)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32a4) Value(205)
+Enum(avr_mcu) String(atxmega64a3) Value(205)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32d4) Value(206)
+Enum(avr_mcu) String(atxmega64d3) Value(206)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32x1) Value(207)
+Enum(avr_mcu) String(atxmega64a3u) Value(207)
 
 EnumValue
-Enum(avr_mcu) String(atmxt112sl) Value(208)
+Enum(avr_mcu) String(atxmega64a4u) Value(208)
 
 EnumValue
-Enum(avr_mcu) String(atmxt224) Value(209)
+Enum(avr_mcu) String(atxmega64b1) Value(209)
 
 EnumValue
-Enum(avr_mcu) String(atmxt224e) Value(210)
+Enum(avr_mcu) String(atxmega64b3) Value(210)
 
 EnumValue
-Enum(avr_mcu) String(atmxt336s) Value(211)
+Enum(avr_mcu) String(atxmega64c3) Value(211)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16a4u) Value(212)
+Enum(avr_mcu) String(atxmega64d4) Value(212)
 
 EnumValue
-Enum(avr_mcu) String(atxmega16c4) Value(213)
+Enum(avr_mcu) String(avrxmega5) Value(213)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32a4u) Value(214)
+Enum(avr_mcu) String(atxmega64a1) Value(214)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32c4) Value(215)
+Enum(avr_mcu) String(atxmega64a1u) Value(215)
 
 EnumValue
-Enum(avr_mcu) String(atxmega32e5) Value(216)
+Enum(avr_mcu) String(avrxmega6) Value(216)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega4) Value(217)
+Enum(avr_mcu) String(atxmega128a3) Value(217)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a3) Value(218)
+Enum(avr_mcu) String(atxmega128d3) Value(218)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64d3) Value(219)
+Enum(avr_mcu) String(atxmega192a3) Value(219)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a3u) Value(220)
+Enum(avr_mcu) String(atxmega192d3) Value(220)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a4u) Value(221)
+Enum(avr_mcu) String(atxmega256a3) Value(221)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64b1) Value(222)
+Enum(avr_mcu) String(atxmega256a3b) Value(222)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64b3) Value(223)
+Enum(avr_mcu) String(atxmega256a3bu) Value(223)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64c3) Value(224)
+Enum(avr_mcu) String(atxmega256d3) Value(224)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64d4) Value(225)
+Enum(avr_mcu) String(atxmega128a3u) Value(225)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega5) Value(226)
+Enum(avr_mcu) String(atxmega128b1) Value(226)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a1) Value(227)
+Enum(avr_mcu) String(atxmega128b3) Value(227)
 
 EnumValue
-Enum(avr_mcu) String(atxmega64a1u) Value(228)
+Enum(avr_mcu) String(atxmega128c3) Value(228)
 
 EnumValue
-Enum(avr_mcu) String(avrxmega6) Value(229)
+Enum(avr_mcu) String(atxmega128d4) Value(229)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128a3) Value(230)
+Enum(avr_mcu) String(atmxt540s) Value(230)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128d3) Value(231)
+Enum(avr_mcu) String(atmxt540sreva) Value(231)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192a3) Value(232)
+Enum(avr_mcu) String(atxmega192a3u) Value(232)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192d3) Value(233)
+Enum(avr_mcu) String(atxmega192c3) Value(233)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3) Value(234)
+Enum(avr_mcu) String(atxmega256a3u) Value(234)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3b) Value(235)
+Enum(avr_mcu) String(atxmega256c3) Value(235)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3bu) Value(236)
+Enum(avr_mcu) String(atxmega384c3) Value(236)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256d3) Value(237)
+Enum(avr_mcu) String(atxmega384d3) Value(237)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128a3u) Value(238)
+Enum(avr_mcu) String(avrxmega7) Value(238)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128b1) Value(239)
+Enum(avr_mcu) String(atxmega128a1) Value(239)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128b3) Value(240)
+Enum(avr_mcu) String(atxmega128a1u) Value(240)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128c3) Value(241)
+Enum(avr_mcu) String(atxmega128a4u) Value(241)
 
 EnumValue
-Enum(avr_mcu) String(atxmega128d4) Value(242)
+Enum(avr_mcu) String(avr1) Value(242)
 
 EnumValue
-Enum(avr_mcu) String(atmxt540s) Value(243)
+Enum(avr_mcu) String(at90s1200) Value(243)
 
 EnumValue
-Enum(avr_mcu) String(atmxt540sreva) Value(244)
+Enum(avr_mcu) String(attiny11) Value(244)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192a3u) Value(245)
+Enum(avr_mcu) String(attiny12) Value(245)
 
 EnumValue
-Enum(avr_mcu) String(atxmega192c3) Value(246)
+Enum(avr_mcu) String(attiny15) Value(246)
 
 EnumValue
-Enum(avr_mcu) String(atxmega256a3u) Value(247)
-
-EnumValue
-Enum(avr_mcu) String(atxmega256c3) Value(248)
-
-EnumValue
-Enum(avr_mcu) String(atxmega384c3) Value(249)
-
-EnumValue
-Enum(avr_mcu) String(atxmega384d3) Value(250)
-
-EnumValue
-Enum(avr_mcu) String(avrxmega7) Value(251)
-
-EnumValue
-Enum(avr_mcu) String(atxmega128a1) Value(252)
-
-EnumValue
-Enum(avr_mcu) String(atxmega128a1u) Value(253)
-
-EnumValue
-Enum(avr_mcu) String(atxmega128a4u) Value(254)
-
-EnumValue
-Enum(avr_mcu) String(avr1) Value(255)
-
-EnumValue
-Enum(avr_mcu) String(at90s1200) Value(256)
-
-EnumValue
-Enum(avr_mcu) String(attiny11) Value(257)
-
-EnumValue
-Enum(avr_mcu) String(attiny12) Value(258)
-
-EnumValue
-Enum(avr_mcu) String(attiny15) Value(259)
-
-EnumValue
-Enum(avr_mcu) String(attiny28) Value(260)
+Enum(avr_mcu) String(attiny28) Value(247)
 
diff -Naur gcc-4.8.1.orig/gcc/config/avr/gen-avr-mmcu-texi.c gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c
--- gcc-4.8.1.orig/gcc/config/avr/gen-avr-mmcu-texi.c	2013-01-14 12:09:34.000000000 -0600
+++ gcc-4.8.1/gcc/config/avr/gen-avr-mmcu-texi.c	2013-07-10 07:36:36.732157000 -0500
@@ -68,6 +68,7 @@
 static void
 print_mcus (size_t n_mcus)
 {
+  int duplicate = 0;
   size_t i;
     
   if (!n_mcus)
@@ -78,7 +79,20 @@
   printf ("@*@var{mcu}@tie{}=");
 
   for (i = 0; i < n_mcus; i++)
-    printf (" @code{%s}%s", mcu_name[i], i == n_mcus-1 ? ".\n\n" : ",");
+    {
+      printf (" @code{%s}%s", mcu_name[i], i == n_mcus-1 ? ".\n\n" : ",");
+
+      if (i && !strcmp (mcu_name[i], mcu_name[i-1]))
+        {
+          /* Sanity-check: Fail on devices that are present more than once.  */
+
+          duplicate = 1;
+          fprintf (stderr, "error: duplicate device: %s\n", mcu_name[i]);
+        }
+    }
+
+  if (duplicate)
+    exit (1);
 }
 
 int main (void)
diff -Naur gcc-4.8.1.orig/gcc/config/avr/t-multilib gcc-4.8.1/gcc/config/avr/t-multilib
--- gcc-4.8.1.orig/gcc/config/avr/t-multilib	2013-02-28 03:03:09.000000000 -0600
+++ gcc-4.8.1/gcc/config/avr/t-multilib	2013-07-10 07:36:36.732157000 -0500
@@ -135,7 +135,6 @@
 	mmcu?avr5=mmcu?atmega169a \
 	mmcu?avr5=mmcu?atmega169p \
 	mmcu?avr5=mmcu?atmega169pa \
-	mmcu?avr5=mmcu?atmega16hva \
 	mmcu?avr5=mmcu?atmega16hvb \
 	mmcu?avr5=mmcu?atmega16hvbrevb \
 	mmcu?avr5=mmcu?atmega16m1 \
@@ -143,7 +142,6 @@
 	mmcu?avr5=mmcu?atmega26hvg \
 	mmcu?avr5=mmcu?atmega32a \
 	mmcu?avr5=mmcu?atmega32 \
-	mmcu?avr5=mmcu?atmega32a \
 	mmcu?avr5=mmcu?atmega323 \
 	mmcu?avr5=mmcu?atmega324a \
 	mmcu?avr5=mmcu?atmega324p \
@@ -189,7 +187,6 @@
 	mmcu?avr5=mmcu?atmega6490 \
 	mmcu?avr5=mmcu?atmega16hva \
 	mmcu?avr5=mmcu?atmega16hva2 \
-	mmcu?avr5=mmcu?atmega16hvb \
 	mmcu?avr5=mmcu?atmega32hvb \
 	mmcu?avr5=mmcu?atmega6490a \
 	mmcu?avr5=mmcu?atmega6490p \
@@ -198,23 +195,13 @@
 	mmcu?avr5=mmcu?atmega64hve \
 	mmcu?avr5=mmcu?atmega64rfa2 \
 	mmcu?avr5=mmcu?atmega64rfr2 \
-	mmcu?avr5=mmcu?atmega32hvb \
 	mmcu?avr5=mmcu?atmega32hvbrevb \
-	mmcu?avr5=mmcu?atmega16hva2 \
 	mmcu?avr5=mmcu?atmega48hvf \
 	mmcu?avr5=mmcu?at90can32 \
 	mmcu?avr5=mmcu?at90can64 \
 	mmcu?avr5=mmcu?at90pwm161 \
 	mmcu?avr5=mmcu?at90pwm216 \
 	mmcu?avr5=mmcu?at90pwm316 \
-	mmcu?avr5=mmcu?atmega32c1 \
-	mmcu?avr5=mmcu?atmega64c1 \
-	mmcu?avr5=mmcu?atmega16m1 \
-	mmcu?avr5=mmcu?atmega32m1 \
-	mmcu?avr5=mmcu?atmega64m1 \
-	mmcu?avr5=mmcu?atmega16u4 \
-	mmcu?avr5=mmcu?atmega32u4 \
-	mmcu?avr5=mmcu?atmega32u6 \
 	mmcu?avr5=mmcu?at90scr100 \
 	mmcu?avr5=mmcu?at90usb646 \
 	mmcu?avr5=mmcu?at90usb647 \
diff -Naur gcc-4.8.1.orig/gcc/config/darwin.c gcc-4.8.1/gcc/config/darwin.c
--- gcc-4.8.1.orig/gcc/config/darwin.c	2013-02-11 16:36:23.000000000 -0600
+++ gcc-4.8.1/gcc/config/darwin.c	2013-07-22 03:57:41.322517000 -0500
@@ -369,14 +369,13 @@
 
 static GTY(()) const char * function_base_func_name;
 static GTY(()) int current_pic_label_num;
+static GTY(()) int emitted_pic_label_num;
 
-void
-machopic_output_function_base_name (FILE *file)
+static void
+update_pic_label_number_if_needed (void)
 {
   const char *current_name;
 
-  /* If dynamic-no-pic is on, we should not get here.  */
-  gcc_assert (!MACHO_DYNAMIC_NO_PIC_P);
   /* When we are generating _get_pc thunks within stubs, there is no current
      function.  */
   if (current_function_decl)
@@ -394,7 +393,28 @@
       ++current_pic_label_num;
       function_base_func_name = "L_machopic_stub_dummy";
     }
-  fprintf (file, "L%011d$pb", current_pic_label_num);
+}
+
+void
+machopic_output_function_base_name (FILE *file)
+{
+  /* If dynamic-no-pic is on, we should not get here.  */
+  gcc_assert (!MACHO_DYNAMIC_NO_PIC_P);
+
+  update_pic_label_number_if_needed ();
+  fprintf (file, "L%d$pb", current_pic_label_num);
+}
+
+bool
+machopic_should_output_picbase_label (void)
+{
+  update_pic_label_number_if_needed ();
+
+  if (current_pic_label_num == emitted_pic_label_num)
+    return false;
+
+  emitted_pic_label_num = current_pic_label_num;
+  return true;
 }
 
 /* The suffix attached to non-lazy pointer symbols.  */
diff -Naur gcc-4.8.1.orig/gcc/config/darwin-protos.h gcc-4.8.1/gcc/config/darwin-protos.h
--- gcc-4.8.1.orig/gcc/config/darwin-protos.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/darwin-protos.h	2013-07-22 03:57:41.322517000 -0500
@@ -25,6 +25,7 @@
 extern void machopic_output_function_base_name (FILE *);
 extern const char *machopic_indirection_name (rtx, bool);
 extern const char *machopic_mcount_stub_name (void);
+extern bool machopic_should_output_picbase_label (void);
 
 #ifdef RTX_CODE
 
diff -Naur gcc-4.8.1.orig/gcc/config/i386/bmiintrin.h gcc-4.8.1/gcc/config/i386/bmiintrin.h
--- gcc-4.8.1.orig/gcc/config/i386/bmiintrin.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/i386/bmiintrin.h	2013-07-19 02:38:07.333150000 -0500
@@ -38,7 +38,6 @@
   return __builtin_ctzs (__X);
 }
 
-
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __andn_u32 (unsigned int __X, unsigned int __Y)
 {
@@ -52,23 +51,46 @@
 }
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_bextr_u32 (unsigned int __X, unsigned int __Y, unsigned __Z)
+{
+  return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
+}
+
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsi_u32 (unsigned int __X)
 {
   return __X & -__X;
 }
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsi_u32 (unsigned int __X)
+{
+  return __blsi_u32 (__X);
+}
+
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsmsk_u32 (unsigned int __X)
 {
   return __X ^ (__X - 1);
 }
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsmsk_u32 (unsigned int __X)
+{
+  return __blsmsk_u32 (__X);
+}
+
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsr_u32 (unsigned int __X)
 {
   return __X & (__X - 1);
 }
 
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsr_u32 (unsigned int __X)
+{
+  return __blsr_u32 (__X);
+}
 
 extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __tzcnt_u32 (unsigned int __X)
@@ -76,6 +98,12 @@
   return __builtin_ctz (__X);
 }
 
+extern __inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_tzcnt_u32 (unsigned int __X)
+{
+  return __builtin_ctz (__X);
+}
+
 
 #ifdef  __x86_64__
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
@@ -91,28 +119,58 @@
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_bextr_u64 (unsigned long long __X, unsigned int __Y, unsigned int __Z)
+{
+  return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8)));
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsi_u64 (unsigned long long __X)
 {
   return __X & -__X;
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsi_u64 (unsigned long long __X)
+{
+  return __blsi_u64 (__X);
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsmsk_u64 (unsigned long long __X)
 {
   return __X ^ (__X - 1);
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsmsk_u64 (unsigned long long __X)
+{
+  return __blsmsk_u64 (__X);
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __blsr_u64 (unsigned long long __X)
 {
   return __X & (__X - 1);
 }
 
 extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_blsr_u64 (unsigned long long __X)
+{
+  return __blsr_u64 (__X);
+}
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __tzcnt_u64 (unsigned long long __X)
 {
   return __builtin_ctzll (__X);
 }
+
+extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+_tzcnt_u64 (unsigned long long __X)
+{
+  return __builtin_ctzll (__X);
+}
 
 #endif /* __x86_64__  */
 
diff -Naur gcc-4.8.1.orig/gcc/config/i386/driver-i386.c gcc-4.8.1/gcc/config/i386/driver-i386.c
--- gcc-4.8.1.orig/gcc/config/i386/driver-i386.c	2013-05-17 10:06:36.000000000 -0500
+++ gcc-4.8.1/gcc/config/i386/driver-i386.c	2013-08-28 03:25:13.429539000 -0500
@@ -520,8 +520,7 @@
       if (vendor == signature_AMD_ebx
 	  || vendor == signature_CENTAUR_ebx
 	  || vendor == signature_CYRIX_ebx
-	  || vendor == signature_NSC_ebx
-	  || vendor == signature_TM2_ebx)
+	  || vendor == signature_NSC_ebx)
 	cache = detect_caches_amd (ext_level);
       else if (vendor == signature_INTEL_ebx)
 	{
@@ -639,13 +638,18 @@
 	  /* Atom.  */
 	  cpu = "atom";
 	  break;
+	case 0x0f:
+	  /* Merom.  */
+	case 0x17:
+	case 0x1d:
+	  /* Penryn.  */
+	  cpu = "core2";
+	  break;
 	case 0x1a:
 	case 0x1e:
 	case 0x1f:
 	case 0x2e:
 	  /* Nehalem.  */
-	  cpu = "corei7";
-	  break;
 	case 0x25:
 	case 0x2c:
 	case 0x2f:
@@ -657,20 +661,25 @@
 	  /* Sandy Bridge.  */
 	  cpu = "corei7-avx";
 	  break;
-	case 0x17:
-	case 0x1d:
-	  /* Penryn.  */
-	  cpu = "core2";
-	  break;
-	case 0x0f:
-	  /* Merom.  */
-	  cpu = "core2";
+	case 0x3a:
+	case 0x3e:
+	  /* Ivy Bridge.  */
+	  cpu = "core-avx-i";
+	  break;
+	case 0x3c:
+	case 0x45:
+	case 0x46:
+	  /* Haswell.  */
+	  cpu = "core-avx2";
 	  break;
 	default:
 	  if (arch)
 	    {
 	      /* This is unknown family 0x6 CPU.  */
-	      if (has_avx)
+	      if (has_avx2)
+		/* Assume Haswell.  */
+		cpu = "core-avx2";
+	      else if (has_avx)
 		/* Assume Sandy Bridge.  */
 		cpu = "corei7-avx";
 	      else if (has_sse4_2)
diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.c gcc-4.8.1/gcc/config/i386/i386.c
--- gcc-4.8.1.orig/gcc/config/i386/i386.c	2013-05-17 10:06:36.000000000 -0500
+++ gcc-4.8.1/gcc/config/i386/i386.c	2013-08-23 05:01:34.440607000 -0500
@@ -2438,11 +2438,11 @@
   {&generic32_cost, 16, 7, 16, 7, 16},
   {&generic64_cost, 16, 10, 16, 10, 16},
   {&amdfam10_cost, 32, 24, 32, 7, 32},
-  {&bdver1_cost, 32, 24, 32, 7, 32},
-  {&bdver2_cost, 32, 24, 32, 7, 32},
-  {&bdver3_cost, 32, 24, 32, 7, 32},
-  {&btver1_cost, 32, 24, 32, 7, 32},
-  {&btver2_cost, 32, 24, 32, 7, 32},
+  {&bdver1_cost, 16, 10, 16, 7, 11},
+  {&bdver2_cost, 16, 10, 16, 7, 11},
+  {&bdver3_cost, 16, 10, 16, 7, 11},
+  {&btver1_cost, 16, 10, 16, 7, 11},
+  {&btver2_cost, 16, 10, 16, 7, 11},
   {&atom_cost, 16, 15, 16, 7, 16}
 };
 
@@ -3768,24 +3768,19 @@
       ix86_gen_leave = gen_leave_rex64;
       if (Pmode == DImode)
 	{
-	  ix86_gen_monitor = gen_sse3_monitor64_di;
 	  ix86_gen_tls_global_dynamic_64 = gen_tls_global_dynamic_64_di;
 	  ix86_gen_tls_local_dynamic_base_64
 	    = gen_tls_local_dynamic_base_64_di;
 	}
       else
 	{
-	  ix86_gen_monitor = gen_sse3_monitor64_si;
 	  ix86_gen_tls_global_dynamic_64 = gen_tls_global_dynamic_64_si;
 	  ix86_gen_tls_local_dynamic_base_64
 	    = gen_tls_local_dynamic_base_64_si;
 	}
     }
   else
-    {
-      ix86_gen_leave = gen_leave;
-      ix86_gen_monitor = gen_sse3_monitor;
-    }
+    ix86_gen_leave = gen_leave;
 
   if (Pmode == DImode)
     {
@@ -3797,6 +3792,7 @@
       ix86_gen_allocate_stack_worker = gen_allocate_stack_worker_probe_di;
       ix86_gen_adjust_stack_and_probe = gen_adjust_stack_and_probedi;
       ix86_gen_probe_stack_range = gen_probe_stack_rangedi;
+      ix86_gen_monitor = gen_sse3_monitor_di;
     }
   else
     {
@@ -3808,6 +3804,7 @@
       ix86_gen_allocate_stack_worker = gen_allocate_stack_worker_probe_si;
       ix86_gen_adjust_stack_and_probe = gen_adjust_stack_and_probesi;
       ix86_gen_probe_stack_range = gen_probe_stack_rangesi;
+      ix86_gen_monitor = gen_sse3_monitor_si;
     }
 
 #ifdef USE_IX86_CLD
@@ -4691,6 +4688,28 @@
   return default_elf_select_section (decl, reloc, align);
 }
 
+/* Select a set of attributes for section NAME based on the properties
+   of DECL and whether or not RELOC indicates that DECL's initializer
+   might contain runtime relocations.  */
+
+static unsigned int ATTRIBUTE_UNUSED
+x86_64_elf_section_type_flags (tree decl, const char *name, int reloc)
+{
+  unsigned int flags = default_section_type_flags (decl, name, reloc);
+
+  if (decl == NULL_TREE
+      && (strcmp (name, ".ldata.rel.ro") == 0
+	  || strcmp (name, ".ldata.rel.ro.local") == 0))
+    flags |= SECTION_RELRO;
+
+  if (strcmp (name, ".lbss") == 0
+      || strncmp (name, ".lbss.", 5) == 0
+      || strncmp (name, ".gnu.linkonce.lb.", 16) == 0)
+    flags |= SECTION_BSS;
+
+  return flags;
+}
+
 /* Build up a unique section name, expressed as a
    STRING_CST node, and assign it to DECL_SECTION_NAME (decl).
    RELOC indicates whether the initial value of EXP requires
@@ -6396,7 +6415,7 @@
 
   /* Likewise, error if the ABI requires us to return values in the
      x87 registers and the user specified -mno-80387.  */
-  if (!TARGET_80387 && in_return)
+  if (in_return && !TARGET_FLOAT_RETURNS_IN_80387)
     for (i = 0; i < n; i++)
       if (regclass[i] == X86_64_X87_CLASS
 	  || regclass[i] == X86_64_X87UP_CLASS
@@ -8721,17 +8740,12 @@
 
   if (!flag_pic)
     {
-      xops[2] = gen_rtx_LABEL_REF (Pmode, label ? label : gen_label_rtx ());
+      if (TARGET_MACHO)
+	/* We don't need a pic base, we're not producing pic.  */
+	gcc_unreachable ();
 
+      xops[2] = gen_rtx_LABEL_REF (Pmode, label ? label : gen_label_rtx ());
       output_asm_insn ("mov%z0\t{%2, %0|%0, %2}", xops);
-
-#if TARGET_MACHO
-      /* Output the Mach-O "canonical" label name ("Lxx$pb") here too.  This
-         is what will be referenced by the Mach-O PIC subsystem.  */
-      if (!label)
-	ASM_OUTPUT_LABEL (asm_out_file, MACHOPIC_FUNCTION_BASE_NAME);
-#endif
-
       targetm.asm_out.internal_label (asm_out_file, "L",
 				      CODE_LABEL_NUMBER (XEXP (xops[2], 0)));
     }
@@ -8744,12 +8758,18 @@
       xops[2] = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
       xops[2] = gen_rtx_MEM (QImode, xops[2]);
       output_asm_insn ("call\t%X2", xops);
-      /* Output the Mach-O "canonical" label name ("Lxx$pb") here too.  This
-         is what will be referenced by the Mach-O PIC subsystem.  */
+
 #if TARGET_MACHO
-      if (!label)
+      /* Output the Mach-O "canonical" pic base label name ("Lxx$pb") here.
+         This is what will be referenced by the Mach-O PIC subsystem.  */
+      if (machopic_should_output_picbase_label () || !label)
 	ASM_OUTPUT_LABEL (asm_out_file, MACHOPIC_FUNCTION_BASE_NAME);
-      else
+
+      /* When we are restoring the pic base at the site of a nonlocal label,
+         and we decided to emit the pic base above, we will still output a
+         local label used for calculating the correction offset (even though
+         the offset will be 0 in that case).  */
+      if (label)
         targetm.asm_out.internal_label (asm_out_file, "L",
 					   CODE_LABEL_NUMBER (label));
 #endif
@@ -8831,7 +8851,8 @@
       && (df_regs_ever_live_p (REAL_PIC_OFFSET_TABLE_REGNUM)
 	  || crtl->profile
 	  || crtl->calls_eh_return
-	  || crtl->uses_const_pool))
+	  || crtl->uses_const_pool
+	  || cfun->has_nonlocal_label))
     return ix86_select_alt_pic_regnum () == INVALID_REGNUM;
 
   if (crtl->calls_eh_return && maybe_eh_return)
@@ -13596,21 +13617,29 @@
 	    x = replace_equiv_address_nv (orig_x, x);
 	  return x;
 	}
-      if (GET_CODE (x) != CONST
-	  || GET_CODE (XEXP (x, 0)) != UNSPEC
-	  || (XINT (XEXP (x, 0), 1) != UNSPEC_GOTPCREL
-	      && XINT (XEXP (x, 0), 1) != UNSPEC_PCREL)
-	  || (!MEM_P (orig_x) && XINT (XEXP (x, 0), 1) != UNSPEC_PCREL))
-	return ix86_delegitimize_tls_address (orig_x);
-      x = XVECEXP (XEXP (x, 0), 0, 0);
-      if (GET_MODE (orig_x) != GET_MODE (x) && MEM_P (orig_x))
-	{
-	  x = simplify_gen_subreg (GET_MODE (orig_x), x,
-				   GET_MODE (x), 0);
-	  if (x == NULL_RTX)
-	    return orig_x;
+
+      if (GET_CODE (x) == CONST
+	  && GET_CODE (XEXP (x, 0)) == UNSPEC
+	  && (XINT (XEXP (x, 0), 1) == UNSPEC_GOTPCREL
+	      || XINT (XEXP (x, 0), 1) == UNSPEC_PCREL)
+	  && (MEM_P (orig_x) || XINT (XEXP (x, 0), 1) == UNSPEC_PCREL))
+	{
+	  x = XVECEXP (XEXP (x, 0), 0, 0);
+	  if (GET_MODE (orig_x) != GET_MODE (x) && MEM_P (orig_x))
+	    {
+	      x = simplify_gen_subreg (GET_MODE (orig_x), x,
+				       GET_MODE (x), 0);
+	      if (x == NULL_RTX)
+		return orig_x;
+	    }
+	  return x;
 	}
-      return x;
+
+      if (ix86_cmodel != CM_MEDIUM_PIC && ix86_cmodel != CM_LARGE_PIC)
+	return ix86_delegitimize_tls_address (orig_x);
+
+      /* Fall thru into the code shared with -m32 for -mcmodel=large -fpic
+	 and -mcmodel=medium -fpic.  */
     }
 
   if (GET_CODE (x) != PLUS
@@ -13647,10 +13676,12 @@
 
   if (GET_CODE (x) == UNSPEC
       && ((XINT (x, 1) == UNSPEC_GOT && MEM_P (orig_x) && !addend)
-	  || (XINT (x, 1) == UNSPEC_GOTOFF && !MEM_P (orig_x))))
+	  || (XINT (x, 1) == UNSPEC_GOTOFF && !MEM_P (orig_x))
+	  || (XINT (x, 1) == UNSPEC_PLTOFF && ix86_cmodel == CM_LARGE_PIC
+	      && !MEM_P (orig_x) && !addend)))
     result = XVECEXP (x, 0, 0);
 
-  if (TARGET_MACHO && darwin_local_data_pic (x)
+  if (!TARGET_64BIT && TARGET_MACHO && darwin_local_data_pic (x)
       && !MEM_P (orig_x))
     result = XVECEXP (x, 0, 0);
 
@@ -28935,10 +28966,11 @@
       if (predicate_chain == NULL_TREE)
 	continue;
 
+      function_version_info [actual_versions].version_decl = version_decl;
+      function_version_info [actual_versions].predicate_chain
+	 = predicate_chain;
+      function_version_info [actual_versions].dispatch_priority = priority;
       actual_versions++;
-      function_version_info [ix - 1].version_decl = version_decl;
-      function_version_info [ix - 1].predicate_chain = predicate_chain;
-      function_version_info [ix - 1].dispatch_priority = priority;
     }
 
   /* Sort the versions according to descending order of dispatch priority.  The
@@ -31780,7 +31812,13 @@
 	}
 
       if (target == 0)
-	target = gen_reg_rtx (mode);
+	{
+	  /* mode is VOIDmode if __builtin_rd* has been called
+	     without lhs.  */
+	  if (mode == VOIDmode)
+	    return target;
+	  target = gen_reg_rtx (mode);
+	}
 
       if (TARGET_64BIT)
 	{
@@ -35444,6 +35482,46 @@
     }
 }
 
+/* Fix up a Windows system unwinder issue.  If an EH region falls thru into
+   the epilogue, the Windows system unwinder will apply epilogue logic and
+   produce incorrect offsets.  This can be avoided by adding a nop between
+   the last insn that can throw and the first insn of the epilogue.  */
+
+static void
+ix86_seh_fixup_eh_fallthru (void)
+{
+  edge e;
+  edge_iterator ei;
+
+  FOR_EACH_EDGE (e, ei, EXIT_BLOCK_PTR->preds)
+    {
+      rtx insn, next;
+
+      /* Find the beginning of the epilogue.  */
+      for (insn = BB_END (e->src); insn != NULL; insn = PREV_INSN (insn))
+	if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_EPILOGUE_BEG)
+	  break;
+      if (insn == NULL)
+	continue;
+
+      /* We only care about preceeding insns that can throw.  */
+      insn = prev_active_insn (insn);
+      if (insn == NULL || !can_throw_internal (insn))
+	continue;
+
+      /* Do not separate calls from their debug information.  */
+      for (next = NEXT_INSN (insn); next != NULL; next = NEXT_INSN (next))
+	if (NOTE_P (next)
+            && (NOTE_KIND (next) == NOTE_INSN_VAR_LOCATION
+                || NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION))
+	  insn = next;
+	else
+	  break;
+
+      emit_insn_after (gen_nops (const1_rtx), insn);
+    }
+}
+
 /* Implement machine specific optimizations.  We implement padding of returns
    for K8 CPUs and pass to avoid 4 jumps in the single 16 byte window.  */
 static void
@@ -35453,6 +35531,9 @@
      with old MDEP_REORGS that are not CFG based.  Recompute it now.  */
   compute_bb_for_insn ();
 
+  if (TARGET_SEH && current_function_has_exception_handlers ())
+    ix86_seh_fixup_eh_fallthru ();
+
   if (optimize && optimize_function_for_speed_p (cfun))
     {
       if (TARGET_PAD_SHORT_FUNCTION)
@@ -42205,6 +42286,8 @@
 
 #undef TARGET_ATTRIBUTE_TABLE
 #define TARGET_ATTRIBUTE_TABLE ix86_attribute_table
+#undef TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P
+#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_const_tree_true
 #if TARGET_DLLIMPORT_DECL_ATTRIBUTES
 #  undef TARGET_MERGE_DECL_ATTRIBUTES
 #  define TARGET_MERGE_DECL_ATTRIBUTES merge_dllimport_decl_attributes
diff -Naur gcc-4.8.1.orig/gcc/config/i386/i386.md gcc-4.8.1/gcc/config/i386/i386.md
--- gcc-4.8.1.orig/gcc/config/i386/i386.md	2013-05-22 07:16:41.000000000 -0500
+++ gcc-4.8.1/gcc/config/i386/i386.md	2013-08-13 07:45:06.811510000 -0500
@@ -222,6 +222,8 @@
   UNSPECV_XEND
   UNSPECV_XABORT
   UNSPECV_XTEST
+
+  UNSPECV_NLGR
 ])
 
 ;; Constants to represent rounding modes in the ROUND instruction
@@ -2314,7 +2316,7 @@
   "TARGET_LP64 && ix86_check_movabs (insn, 0)"
   "@
    movabs{<imodesuffix>}\t{%1, %P0|[%P0], %1}
-   mov{<imodesuffix>}\t{%1, %a0|%a0, %1}"
+   mov{<imodesuffix>}\t{%1, %a0|<iptrsize> PTR %a0, %1}"
   [(set_attr "type" "imov")
    (set_attr "modrm" "0,*")
    (set_attr "length_address" "8,0")
@@ -2328,7 +2330,7 @@
   "TARGET_LP64 && ix86_check_movabs (insn, 1)"
   "@
    movabs{<imodesuffix>}\t{%P1, %0|%0, [%P1]}
-   mov{<imodesuffix>}\t{%a1, %0|%0, %a1}"
+   mov{<imodesuffix>}\t{%a1, %0|%0, <iptrsize> PTR %a1}"
   [(set_attr "type" "imov")
    (set_attr "modrm" "0,*")
    (set_attr "length_address" "8,0")
@@ -12120,8 +12122,8 @@
 
 (define_insn "bmi_bextr_<mode>"
   [(set (match_operand:SWI48 0 "register_operand" "=r,r")
-        (unspec:SWI48 [(match_operand:SWI48 1 "register_operand" "r,r")
-                       (match_operand:SWI48 2 "nonimmediate_operand" "r,m")]
+        (unspec:SWI48 [(match_operand:SWI48 1 "nonimmediate_operand" "r,m")
+                       (match_operand:SWI48 2 "register_operand" "r,r")]
                        UNSPEC_BEXTR))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_BMI"
@@ -12174,9 +12176,9 @@
 ;; BMI2 instructions.
 (define_insn "bmi2_bzhi_<mode>3"
   [(set (match_operand:SWI48 0 "register_operand" "=r")
-	(and:SWI48 (match_operand:SWI48 1 "register_operand" "r")
-		   (lshiftrt:SWI48 (const_int -1)
-				   (match_operand:SWI48 2 "nonimmediate_operand" "rm"))))
+	(and:SWI48 (lshiftrt:SWI48 (const_int -1)
+				   (match_operand:SWI48 2 "register_operand" "r"))
+		   (match_operand:SWI48 1 "nonimmediate_operand" "rm")))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_BMI2"
   "bzhi\t{%2, %1, %0|%0, %1, %2}"
@@ -16646,7 +16648,37 @@
     emit_insn (gen_set_got (pic_offset_table_rtx));
   DONE;
 })
-
+
+(define_insn_and_split "nonlocal_goto_receiver"
+  [(unspec_volatile [(const_int 0)] UNSPECV_NLGR)]
+  "TARGET_MACHO && !TARGET_64BIT && flag_pic"
+  "#"
+  "&& reload_completed"
+  [(const_int 0)]
+{
+  if (crtl->uses_pic_offset_table)
+    {
+      rtx xops[3];
+      rtx label_rtx = gen_label_rtx ();
+      rtx tmp;
+
+      /* Get a new pic base.  */
+      emit_insn (gen_set_got_labelled (pic_offset_table_rtx, label_rtx));
+      /* Correct this with the offset from the new to the old.  */
+      xops[0] = xops[1] = pic_offset_table_rtx;
+      label_rtx = gen_rtx_LABEL_REF (SImode, label_rtx);
+      tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, label_rtx),
+			    UNSPEC_MACHOPIC_OFFSET);
+      xops[2] = gen_rtx_CONST (Pmode, tmp);
+      ix86_expand_binary_operator (MINUS, SImode, xops);
+    }
+  else
+    /* No pic reg restore needed.  */
+    emit_note (NOTE_INSN_DELETED);
+
+  DONE;
+})
+
 ;; Avoid redundant prefixes by splitting HImode arithmetic to SImode.
 
 (define_split
@@ -17043,6 +17075,7 @@
   "(TARGET_READ_MODIFY_WRITE || optimize_insn_for_size_p ())
    && peep2_reg_dead_p (4, operands[0])
    && !reg_overlap_mentioned_p (operands[0], operands[1])
+   && !reg_overlap_mentioned_p (operands[0], operands[2])
    && (<MODE>mode != QImode
        || immediate_operand (operands[2], QImode)
        || q_regs_operand (operands[2], QImode))
@@ -17107,6 +17140,7 @@
        || immediate_operand (operands[2], SImode)
        || q_regs_operand (operands[2], SImode))
    && !reg_overlap_mentioned_p (operands[0], operands[1])
+   && !reg_overlap_mentioned_p (operands[0], operands[2])
    && ix86_match_ccmode (peep2_next_insn (3),
 			 (GET_CODE (operands[3]) == PLUS
 			  || GET_CODE (operands[3]) == MINUS)
diff -Naur gcc-4.8.1.orig/gcc/config/i386/predicates.md gcc-4.8.1/gcc/config/i386/predicates.md
--- gcc-4.8.1.orig/gcc/config/i386/predicates.md	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/i386/predicates.md	2013-07-03 15:24:19.796040000 -0500
@@ -835,19 +835,28 @@
     return false;
 
   /* VSIB addressing doesn't support (%rip).  */
-  if (parts.disp && GET_CODE (parts.disp) == CONST)
+  if (parts.disp)
     {
-      disp = XEXP (parts.disp, 0);
-      if (GET_CODE (disp) == PLUS)
-	disp = XEXP (disp, 0);
-      if (GET_CODE (disp) == UNSPEC)
-	switch (XINT (disp, 1))
-	  {
-	  case UNSPEC_GOTPCREL:
-	  case UNSPEC_PCREL:
-	  case UNSPEC_GOTNTPOFF:
-	    return false;
-	  }
+      disp = parts.disp;
+      if (GET_CODE (disp) == CONST)
+	{
+	  disp = XEXP (disp, 0);
+	  if (GET_CODE (disp) == PLUS)
+	    disp = XEXP (disp, 0);
+	  if (GET_CODE (disp) == UNSPEC)
+	    switch (XINT (disp, 1))
+	      {
+	      case UNSPEC_GOTPCREL:
+	      case UNSPEC_PCREL:
+	      case UNSPEC_GOTNTPOFF:
+		return false;
+	      }
+	}
+      if (TARGET_64BIT
+	  && flag_pic
+	  && (GET_CODE (disp) == SYMBOL_REF
+	      || GET_CODE (disp) == LABEL_REF))
+	return false;
     }
 
   return true;
diff -Naur gcc-4.8.1.orig/gcc/config/i386/sse.md gcc-4.8.1/gcc/config/i386/sse.md
--- gcc-4.8.1.orig/gcc/config/i386/sse.md	2013-04-29 17:16:04.000000000 -0500
+++ gcc-4.8.1/gcc/config/i386/sse.md	2013-08-14 09:09:59.468272000 -0500
@@ -3603,7 +3603,7 @@
 	(vec_select:V4SF
 	  (vec_concat:V8SF
 	    (match_operand:V4SF 1 "nonimmediate_operand" " 0,x,0,x,0")
-	    (match_operand:V4SF 2 "nonimmediate_operand" " x,x,m,x,x"))
+	    (match_operand:V4SF 2 "nonimmediate_operand" " x,x,m,m,x"))
 	  (parallel [(const_int 0)
 		     (const_int 1)
 		     (const_int 4)
@@ -7758,9 +7758,17 @@
 		       (mem:V16QI (match_dup 0))]
 		      UNSPEC_MASKMOV))]
   "TARGET_SSE2"
-  "%vmaskmovdqu\t{%2, %1|%1, %2}"
+{
+  /* We can't use %^ here due to ASM_OUTPUT_OPCODE processing
+     that requires %v to be at the beginning of the opcode name.  */
+  if (Pmode != word_mode)
+    fputs ("\taddr32", asm_out_file);
+  return "%vmaskmovdqu\t{%2, %1|%1, %2}";
+}
   [(set_attr "type" "ssemov")
    (set_attr "prefix_data16" "1")
+   (set (attr "length_address")
+     (symbol_ref ("Pmode != word_mode")))
    ;; The implicit %rdi operand confuses default length_vex computation.
    (set (attr "length_vex")
      (symbol_ref ("3 + REX_SSE_REGNO_P (REGNO (operands[2]))")))
@@ -7808,26 +7816,18 @@
   "mwait"
   [(set_attr "length" "3")])
 
-(define_insn "sse3_monitor"
-  [(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
-		     (match_operand:SI 1 "register_operand" "c")
-		     (match_operand:SI 2 "register_operand" "d")]
-		    UNSPECV_MONITOR)]
-  "TARGET_SSE3 && !TARGET_64BIT"
-  "monitor\t%0, %1, %2"
-  [(set_attr "length" "3")])
-
-(define_insn "sse3_monitor64_<mode>"
+(define_insn "sse3_monitor_<mode>"
   [(unspec_volatile [(match_operand:P 0 "register_operand" "a")
 		     (match_operand:SI 1 "register_operand" "c")
 		     (match_operand:SI 2 "register_operand" "d")]
 		    UNSPECV_MONITOR)]
-  "TARGET_SSE3 && TARGET_64BIT"
+  "TARGET_SSE3"
 ;; 64bit version is "monitor %rax,%rcx,%rdx". But only lower 32bits in
 ;; RCX and RDX are used.  Since 32bit register operands are implicitly
 ;; zero extended to 64bit, we only need to set up 32bit registers.
-  "monitor"
-  [(set_attr "length" "3")])
+  "%^monitor"
+  [(set (attr "length")
+     (symbol_ref ("(Pmode != word_mode) + 3")))])
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
diff -Naur gcc-4.8.1.orig/gcc/config/i386/x86-64.h gcc-4.8.1/gcc/config/i386/x86-64.h
--- gcc-4.8.1.orig/gcc/config/i386/x86-64.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/i386/x86-64.h	2013-08-23 05:01:34.440607000 -0500
@@ -103,3 +103,6 @@
 
 #undef TARGET_ASM_UNIQUE_SECTION
 #define TARGET_ASM_UNIQUE_SECTION  x86_64_elf_unique_section
+
+#undef TARGET_SECTION_TYPE_FLAGS
+#define TARGET_SECTION_TYPE_FLAGS  x86_64_elf_section_type_flags
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/default64.h gcc-4.8.1/gcc/config/rs6000/default64.h
--- gcc-4.8.1.orig/gcc/config/rs6000/default64.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/default64.h	2013-06-18 20:18:38.348158000 -0500
@@ -18,5 +18,10 @@
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT (MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_64BIT | MASK_LITTLE_ENDIAN)
+#else
 #undef TARGET_DEFAULT
 #define TARGET_DEFAULT (MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_64BIT)
+#endif
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/dfp.md gcc-4.8.1/gcc/config/rs6000/dfp.md
--- gcc-4.8.1.orig/gcc/config/rs6000/dfp.md	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/dfp.md	2013-08-19 12:55:50.687548000 -0500
@@ -394,11 +394,14 @@
   "")
 
 (define_insn "*negtd2_fpr"
-  [(set (match_operand:TD 0 "gpc_reg_operand" "=d")
-	(neg:TD (match_operand:TD 1 "gpc_reg_operand" "d")))]
+  [(set (match_operand:TD 0 "gpc_reg_operand" "=d,d")
+	(neg:TD (match_operand:TD 1 "gpc_reg_operand" "0,d")))]
   "TARGET_HARD_FLOAT && TARGET_FPRS"
-  "fneg %0,%1"
-  [(set_attr "type" "fp")])
+  "@
+   fneg %0,%1
+   fneg %0,%1\;fmr %L0,%L1"
+  [(set_attr "type" "fp")
+   (set_attr "length" "4,8")])
 
 (define_expand "abstd2"
   [(set (match_operand:TD 0 "gpc_reg_operand" "")
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux64.h gcc-4.8.1/gcc/config/rs6000/linux64.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linux64.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/linux64.h	2013-06-18 20:18:38.348158000 -0500
@@ -180,20 +180,14 @@
 #endif
 
 #define ASM_SPEC32 "-a32 \
-%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \
-%{memb} %{!memb: %{msdata=eabi: -memb}} \
-%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-    %{mcall-freebsd: -mbig} \
-    %{mcall-i960-old: -mlittle} \
-    %{mcall-linux: -mbig} \
-    %{mcall-netbsd: -mbig} \
-}}}}"
+%{mrelocatable} %{mrelocatable-lib} %{fpic|fpie|fPIC|fPIE:-K PIC} \
+%{memb|msdata=eabi: -memb}"
 
 #define ASM_SPEC64 "-a64"
 
 #define ASM_SPEC_COMMON "%(asm_cpu) \
-%{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}} \
-%{mlittle} %{mlittle-endian} %{mbig} %{mbig-endian}"
+%{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}}" \
+  ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
 
 #undef	SUBSUBTARGET_EXTRA_SPECS
 #define SUBSUBTARGET_EXTRA_SPECS \
@@ -212,10 +206,6 @@
 
 #ifndef RS6000_BI_ARCH
 
-/* 64-bit PowerPC Linux is always big-endian.  */
-#undef	OPTION_LITTLE_ENDIAN
-#define OPTION_LITTLE_ENDIAN	0
-
 /* 64-bit PowerPC Linux always has a TOC.  */
 #undef  TARGET_TOC
 #define	TARGET_TOC		1
@@ -376,12 +366,30 @@
 #define GNU_USER_DYNAMIC_LINKER64 \
   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
 
+#undef  DEFAULT_ASM_ENDIAN
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#define DEFAULT_ASM_ENDIAN " -mlittle"
+#define LINK_OS_LINUX_EMUL32 ENDIAN_SELECT(" -m elf32ppclinux",		\
+					   " -m elf32lppclinux",	\
+					   " -m elf32lppclinux")
+#define LINK_OS_LINUX_EMUL64 ENDIAN_SELECT(" -m elf64ppc",		\
+					   " -m elf64lppc",		\
+					   " -m elf64lppc")
+#else
+#define DEFAULT_ASM_ENDIAN " -mbig"
+#define LINK_OS_LINUX_EMUL32 ENDIAN_SELECT(" -m elf32ppclinux",		\
+					   " -m elf32lppclinux",	\
+					   " -m elf32ppclinux")
+#define LINK_OS_LINUX_EMUL64 ENDIAN_SELECT(" -m elf64ppc",		\
+					   " -m elf64lppc",		\
+					   " -m elf64ppc")
+#endif
 
-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}"
 
-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}"
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxaltivec.h gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linuxaltivec.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/linuxaltivec.h	2013-06-18 20:18:38.348158000 -0500
@@ -20,8 +20,13 @@
    <http://www.gnu.org/licenses/>.  */
 
 /* Override rs6000.h and sysv4.h definition.  */
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#undef	TARGET_DEFAULT
+#define	TARGET_DEFAULT (MASK_ALTIVEC | MASK_LITTLE_ENDIAN)
+#else
 #undef	TARGET_DEFAULT
 #define	TARGET_DEFAULT MASK_ALTIVEC
+#endif
 
 #undef  SUBSUBTARGET_OVERRIDE_OPTIONS
 #define SUBSUBTARGET_OVERRIDE_OPTIONS rs6000_altivec_abi = 1
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linux.h gcc-4.8.1/gcc/config/rs6000/linux.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linux.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/linux.h	2013-06-18 20:18:38.348158000 -0500
@@ -79,6 +79,24 @@
 #undef	LINK_OS_DEFAULT_SPEC
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 
+#undef  DEFAULT_ASM_ENDIAN
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#define DEFAULT_ASM_ENDIAN " -mlittle"
+#define LINK_OS_LINUX_EMUL ENDIAN_SELECT(" -m elf32ppclinux",	\
+					 " -m elf32lppclinux",	\
+					 " -m elf32lppclinux")
+#else
+#define DEFAULT_ASM_ENDIAN " -mbig"
+#define LINK_OS_LINUX_EMUL ENDIAN_SELECT(" -m elf32ppclinux",	\
+					 " -m elf32lppclinux",	\
+					 " -m elf32ppclinux")
+#endif
+
+#undef LINK_OS_LINUX_SPEC
+#define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
+  %{rdynamic:-export-dynamic} \
+  -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
+
 #define LINK_GCC_C_SEQUENCE_SPEC \
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/linuxspe.h gcc-4.8.1/gcc/config/rs6000/linuxspe.h
--- gcc-4.8.1.orig/gcc/config/rs6000/linuxspe.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/linuxspe.h	2013-06-18 20:18:38.348158000 -0500
@@ -20,8 +20,13 @@
    <http://www.gnu.org/licenses/>.  */
 
 /* Override rs6000.h and sysv4.h definition.  */
+#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+#undef	TARGET_DEFAULT
+#define TARGET_DEFAULT (MASK_STRICT_ALIGN | MASK_LITTLE_ENDIAN)
+#else
 #undef	TARGET_DEFAULT
 #define TARGET_DEFAULT MASK_STRICT_ALIGN
+#endif
 
 #undef  ASM_DEFAULT_SPEC
 #define	ASM_DEFAULT_SPEC "-mppc -mspe -me500"
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/predicates.md gcc-4.8.1/gcc/config/rs6000/predicates.md
--- gcc-4.8.1.orig/gcc/config/rs6000/predicates.md	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/predicates.md	2013-06-23 19:59:24.817984000 -0500
@@ -464,9 +464,11 @@
 	    (match_test "easy_altivec_constant (op, mode)")))
 {
   HOST_WIDE_INT val;
+  int elt;
   if (mode == V2DImode || mode == V2DFmode)
     return 0;
-  val = const_vector_elt_as_int (op, GET_MODE_NUNITS (mode) - 1);
+  elt = BYTES_BIG_ENDIAN ? GET_MODE_NUNITS (mode) - 1 : 0;
+  val = const_vector_elt_as_int (op, elt);
   val = ((val & 0xff) ^ 0x80) - 0x80;
   return EASY_VECTOR_15_ADD_SELF (val);
 })
@@ -478,9 +480,11 @@
 	    (match_test "easy_altivec_constant (op, mode)")))
 {
   HOST_WIDE_INT val;
+  int elt;
   if (mode == V2DImode || mode == V2DFmode)
     return 0;
-  val = const_vector_elt_as_int (op, GET_MODE_NUNITS (mode) - 1);
+  elt = BYTES_BIG_ENDIAN ? GET_MODE_NUNITS (mode) - 1 : 0;
+  val = const_vector_elt_as_int (op, elt);
   return EASY_VECTOR_MSB (val, GET_MODE_INNER (mode));
 })
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.c gcc-4.8.1/gcc/config/rs6000/rs6000.c
--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.c	2013-05-09 20:54:06.000000000 -0500
+++ gcc-4.8.1/gcc/config/rs6000/rs6000.c	2013-08-19 20:05:10.274596000 -0500
@@ -2190,7 +2190,8 @@
 	  int reg_size2 = reg_size;
 
 	  /* TFmode/TDmode always takes 2 registers, even in VSX.  */
-	  if (m == TDmode || m == TFmode)
+	  if (TARGET_VSX && VSX_REG_CLASS_P (c)
+	      && (m == TDmode || m == TFmode))
 	    reg_size2 = UNITS_PER_FP_WORD;
 
 	  rs6000_class_max_nregs[m][c]
@@ -4239,7 +4240,7 @@
   bitsize = GET_MODE_BITSIZE (inner);
   mask = GET_MODE_MASK (inner);
 
-  val = const_vector_elt_as_int (op, nunits - 1);
+  val = const_vector_elt_as_int (op, BYTES_BIG_ENDIAN ? nunits - 1 : 0);
   splat_val = val;
   msb_val = val > 0 ? 0 : -1;
 
@@ -4279,7 +4280,7 @@
   for (i = 0; i < nunits - 1; ++i)
     {
       HOST_WIDE_INT desired_val;
-      if (((i + 1) & (step - 1)) == 0)
+      if (((BYTES_BIG_ENDIAN ? i + 1 : i) & (step - 1)) == 0)
 	desired_val = val;
       else
 	desired_val = msb_val;
@@ -4364,13 +4365,13 @@
 {
   enum machine_mode mode = GET_MODE (op);
   int nunits = GET_MODE_NUNITS (mode);
-  rtx last = CONST_VECTOR_ELT (op, nunits - 1);
+  rtx val = CONST_VECTOR_ELT (op, BYTES_BIG_ENDIAN ? nunits - 1 : 0);
   unsigned step = nunits / 4;
   unsigned copies = 1;
 
   /* Start with a vspltisw.  */
   if (vspltis_constant (op, step, copies))
-    return gen_rtx_VEC_DUPLICATE (V4SImode, gen_lowpart (SImode, last));
+    return gen_rtx_VEC_DUPLICATE (V4SImode, gen_lowpart (SImode, val));
 
   /* Then try with a vspltish.  */
   if (step == 1)
@@ -4379,7 +4380,7 @@
     step >>= 1;
 
   if (vspltis_constant (op, step, copies))
-    return gen_rtx_VEC_DUPLICATE (V8HImode, gen_lowpart (HImode, last));
+    return gen_rtx_VEC_DUPLICATE (V8HImode, gen_lowpart (HImode, val));
 
   /* And finally a vspltisb.  */
   if (step == 1)
@@ -4388,7 +4389,7 @@
     step >>= 1;
 
   if (vspltis_constant (op, step, copies))
-    return gen_rtx_VEC_DUPLICATE (V16QImode, gen_lowpart (QImode, last));
+    return gen_rtx_VEC_DUPLICATE (V16QImode, gen_lowpart (QImode, val));
 
   gcc_unreachable ();
 }
@@ -9066,19 +9067,20 @@
       && cfun->va_list_gpr_size)
     {
       int nregs = GP_ARG_NUM_REG - first_reg_offset;
+      int n_gpr;
 
       if (va_list_gpr_counter_field)
 	{
 	  /* V4 va_list_gpr_size counts number of registers needed.  */
-	  if (nregs > cfun->va_list_gpr_size)
-	    nregs = cfun->va_list_gpr_size;
+	  n_gpr = cfun->va_list_gpr_size;
 	}
       else
 	{
 	  /* char * va_list instead counts number of bytes needed.  */
-	  if (nregs > cfun->va_list_gpr_size / reg_size)
-	    nregs = cfun->va_list_gpr_size / reg_size;
+	  n_gpr = (cfun->va_list_gpr_size + reg_size - 1) / reg_size;
 	}
+      if (nregs > n_gpr)
+	nregs = n_gpr;
 
       mem = gen_rtx_MEM (BLKmode,
 			 plus_constant (Pmode, save_area,
@@ -16900,8 +16902,9 @@
   shift = gen_reg_rtx (SImode);
   addr = gen_lowpart (SImode, addr);
   emit_insn (gen_rlwinm (shift, addr, GEN_INT (3), GEN_INT (shift_mask)));
-  shift = expand_simple_binop (SImode, XOR, shift, GEN_INT (shift_mask),
-			       shift, 1, OPTAB_LIB_WIDEN);
+  if (WORDS_BIG_ENDIAN)
+    shift = expand_simple_binop (SImode, XOR, shift, GEN_INT (shift_mask),
+			         shift, 1, OPTAB_LIB_WIDEN);
   *pshift = shift;
 
   /* Mask for insertion.  */
@@ -19957,8 +19960,7 @@
 	  HOST_WIDE_INT offset;
 
 	  if (!(strategy & SAVE_INLINE_GPRS))
-	    ool_adjust = 8 * (info->first_gp_reg_save
-			      - (FIRST_SAVRES_REGISTER + 1));
+	    ool_adjust = 8 * (info->first_gp_reg_save - FIRST_SAVED_GP_REGNO);
 	  offset = info->spe_gp_save_offset + frame_off - ool_adjust;
 	  spe_save_area_ptr = gen_rtx_REG (Pmode, 11);
 	  save_off = frame_off - offset;
@@ -21200,8 +21202,7 @@
 	     anew to every function.  */
 
 	  if (!restoring_GPRs_inline)
-	    ool_adjust = 8 * (info->first_gp_reg_save
-			      - (FIRST_SAVRES_REGISTER + 1));
+	    ool_adjust = 8 * (info->first_gp_reg_save - FIRST_SAVED_GP_REGNO);
 	  frame_reg_rtx = gen_rtx_REG (Pmode, 11);
 	  emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx,
 				 GEN_INT (info->spe_gp_save_offset
@@ -22151,20 +22152,22 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc FT_%lx_%lx_%lx_%lx[TC],",
 		     k[0] & 0xffffffff, k[1] & 0xffffffff,
 		     k[2] & 0xffffffff, k[3] & 0xffffffff);
 	  fprintf (file, "0x%lx%08lx,0x%lx%08lx\n",
-		   k[0] & 0xffffffff, k[1] & 0xffffffff,
-		   k[2] & 0xffffffff, k[3] & 0xffffffff);
+		   k[WORDS_BIG_ENDIAN ? 0 : 1] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 1 : 0] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 2 : 3] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 3 : 2] & 0xffffffff);
 	  return;
 	}
       else
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs ("\t.long ", file);
 	  else
 	    fprintf (file, "\t.tc FT_%lx_%lx_%lx_%lx[TC],",
@@ -22191,18 +22194,19 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc FD_%lx_%lx[TC],",
 		     k[0] & 0xffffffff, k[1] & 0xffffffff);
 	  fprintf (file, "0x%lx%08lx\n",
-		   k[0] & 0xffffffff, k[1] & 0xffffffff);
+		   k[WORDS_BIG_ENDIAN ? 0 : 1] & 0xffffffff,
+		   k[WORDS_BIG_ENDIAN ? 1 : 0] & 0xffffffff);
 	  return;
 	}
       else
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs ("\t.long ", file);
 	  else
 	    fprintf (file, "\t.tc FD_%lx_%lx[TC],",
@@ -22226,16 +22230,19 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
-	  fprintf (file, "0x%lx00000000\n", l & 0xffffffff);
+	  if (WORDS_BIG_ENDIAN)
+	    fprintf (file, "0x%lx00000000\n", l & 0xffffffff);
+	  else
+	    fprintf (file, "0x%lx\n", l & 0xffffffff);
 	  return;
 	}
       else
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs ("\t.long ", file);
 	  else
 	    fprintf (file, "\t.tc FS_%lx[TC],", l & 0xffffffff);
@@ -22267,9 +22274,8 @@
 	}
 #endif
 
-      /* TOC entries are always Pmode-sized, but since this
-	 is a bigendian machine then if we're putting smaller
-	 integer constants in the TOC we have to pad them.
+      /* TOC entries are always Pmode-sized, so when big-endian
+	 smaller integer constants in the TOC need to be padded.
 	 (This is still a win over putting the constants in
 	 a separate constant pool, because then we'd have
 	 to have both a TOC entry _and_ the actual constant.)
@@ -22280,7 +22286,7 @@
       /* It would be easy to make this work, but it doesn't now.  */
       gcc_assert (!TARGET_64BIT || POINTER_SIZE >= GET_MODE_BITSIZE (mode));
 
-      if (POINTER_SIZE > GET_MODE_BITSIZE (mode))
+      if (WORDS_BIG_ENDIAN && POINTER_SIZE > GET_MODE_BITSIZE (mode))
 	{
 #if HOST_BITS_PER_WIDE_INT == 32
 	  lshift_double (low, high, POINTER_SIZE - GET_MODE_BITSIZE (mode),
@@ -22295,7 +22301,7 @@
 
       if (TARGET_64BIT)
 	{
-	  if (TARGET_MINIMAL_TOC)
+	  if (TARGET_ELF || TARGET_MINIMAL_TOC)
 	    fputs (DOUBLE_INT_ASM_OP, file);
 	  else
 	    fprintf (file, "\t.tc ID_%lx_%lx[TC],",
@@ -22308,7 +22314,7 @@
 	{
 	  if (POINTER_SIZE < GET_MODE_BITSIZE (mode))
 	    {
-	      if (TARGET_MINIMAL_TOC)
+	      if (TARGET_ELF || TARGET_MINIMAL_TOC)
 		fputs ("\t.long ", file);
 	      else
 		fprintf (file, "\t.tc ID_%lx_%lx[TC],",
@@ -22318,7 +22324,7 @@
 	    }
 	  else
 	    {
-	      if (TARGET_MINIMAL_TOC)
+	      if (TARGET_ELF || TARGET_MINIMAL_TOC)
 		fputs ("\t.long ", file);
 	      else
 		fprintf (file, "\t.tc IS_%lx[TC],", (long) low & 0xffffffff);
@@ -22356,7 +22362,7 @@
       gcc_unreachable ();
     }
 
-  if (TARGET_MINIMAL_TOC)
+  if (TARGET_ELF || TARGET_MINIMAL_TOC)
     fputs (TARGET_32BIT ? "\t.long " : DOUBLE_INT_ASM_OP, file);
   else
     {
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.h gcc-4.8.1/gcc/config/rs6000/rs6000.h
--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.h	2013-05-06 18:33:49.000000000 -0500
+++ gcc-4.8.1/gcc/config/rs6000/rs6000.h	2013-06-18 20:18:38.348158000 -0500
@@ -662,6 +662,11 @@
    instructions for them.  Might as well be consistent with bits and bytes.  */
 #define WORDS_BIG_ENDIAN 1
 
+/* This says that for the IBM long double the larger magnitude double
+   comes first.  It's really a two element double array, and arrays
+   don't index differently between little- and big-endian.  */
+#define LONG_DOUBLE_LARGE_FIRST 1
+
 #define MAX_BITS_PER_WORD 64
 
 /* Width of a word, in units (bytes).  */
@@ -2289,6 +2294,13 @@
 /* How to align the given loop. */
 #define LOOP_ALIGN(LABEL)  rs6000_loop_align(LABEL)
 
+/* Alignment guaranteed by __builtin_malloc.  */
+/* FIXME:  128-bit alignment is guaranteed by glibc for TARGET_64BIT.
+   However, specifying the stronger guarantee currently leads to
+   a regression in SPEC CPU2006 437.leslie3d.  The stronger
+   guarantee should be implemented here once that's fixed.  */
+#define MALLOC_ABI_ALIGNMENT (64)
+
 /* Pick up the return address upon entry to a procedure. Used for
    dwarf2 unwind information.  This also enables the table driven
    mechanism.  */
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rs6000.md gcc-4.8.1/gcc/config/rs6000/rs6000.md
--- gcc-4.8.1.orig/gcc/config/rs6000/rs6000.md	2013-02-07 02:04:58.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/rs6000.md	2013-06-18 20:18:38.348158000 -0500
@@ -1990,6 +1990,8 @@
   [(set_attr "length" "4,4,12")
    (set_attr "type" "load,store,*")])
 
+;; We are always BITS_BIG_ENDIAN, so the (const_int 16) below is
+;; correct for -mlittle as well as -mbig.
 (define_split
   [(set (match_operand:HI 0 "gpc_reg_operand" "")
 	(bswap:HI (match_operand:HI 1 "gpc_reg_operand" "")))
@@ -2043,6 +2045,8 @@
   [(set_attr "length" "4,4,12")
    (set_attr "type" "load,store,*")])
 
+;; We are always BITS_BIG_ENDIAN, so the bit positions below in
+;; zero_extract insns do not change for -mlittle.
 (define_split
   [(set (match_operand:SI 0 "gpc_reg_operand" "")
 	(bswap:SI (match_operand:SI 1 "gpc_reg_operand" "")))]
@@ -2125,8 +2129,10 @@
   rtx op2    = operands[2];
   rtx op3    = operands[3];
   rtx op4    = operands[4];
-  rtx op3_32 = simplify_gen_subreg (SImode, op3, DImode, 4);
-  rtx op4_32 = simplify_gen_subreg (SImode, op4, DImode, 4);
+  rtx op3_32 = simplify_gen_subreg (SImode, op3, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
+  rtx op4_32 = simplify_gen_subreg (SImode, op4, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
   rtx addr1;
   rtx addr2;
   rtx word_high;
@@ -2186,8 +2192,10 @@
   rtx src    = operands[1];
   rtx op2    = operands[2];
   rtx op3    = operands[3];
-  rtx src_si = simplify_gen_subreg (SImode, src, DImode, 4);
-  rtx op3_si = simplify_gen_subreg (SImode, op3, DImode, 4);
+  rtx src_si = simplify_gen_subreg (SImode, src, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
+  rtx op3_si = simplify_gen_subreg (SImode, op3, DImode,
+				    BYTES_BIG_ENDIAN ? 4 : 0);
   rtx addr1;
   rtx addr2;
   rtx word_high;
@@ -2221,16 +2229,14 @@
     {
       word_high = change_address (dest, SImode, addr1);
       word_low  = change_address (dest, SImode, addr2);
-      emit_insn (gen_bswapsi2 (word_high, src_si));
-      emit_insn (gen_bswapsi2 (word_low, op3_si));
     }
   else
     {
       word_high = change_address (dest, SImode, addr2);
       word_low  = change_address (dest, SImode, addr1);
-      emit_insn (gen_bswapsi2 (word_low, src_si));
-      emit_insn (gen_bswapsi2 (word_high, op3_si));
     }
+  emit_insn (gen_bswapsi2 (word_high, src_si));
+  emit_insn (gen_bswapsi2 (word_low, op3_si));
 }")
 
 (define_split
@@ -2247,10 +2253,11 @@
   rtx src     = operands[1];
   rtx op2     = operands[2];
   rtx op3     = operands[3];
-  rtx dest_si = simplify_gen_subreg (SImode, dest, DImode, 4);
-  rtx src_si  = simplify_gen_subreg (SImode, src, DImode, 4);
-  rtx op2_si  = simplify_gen_subreg (SImode, op2, DImode, 4);
-  rtx op3_si  = simplify_gen_subreg (SImode, op3, DImode, 4);
+  int lo_off  = BYTES_BIG_ENDIAN ? 4 : 0;
+  rtx dest_si = simplify_gen_subreg (SImode, dest, DImode, lo_off);
+  rtx src_si  = simplify_gen_subreg (SImode, src, DImode, lo_off);
+  rtx op2_si  = simplify_gen_subreg (SImode, op2, DImode, lo_off);
+  rtx op3_si  = simplify_gen_subreg (SImode, op3, DImode, lo_off);
 
   emit_insn (gen_lshrdi3 (op2, src, GEN_INT (32)));
   emit_insn (gen_bswapsi2 (dest_si, src_si));
@@ -2275,15 +2282,15 @@
   [(const_int 0)]
   "
 {
-  rtx dest   = operands[0];
-  rtx src    = operands[1];
-  rtx op2    = operands[2];
-  rtx dest_hi = simplify_gen_subreg (SImode, dest, DImode, 0);
-  rtx dest_lo = simplify_gen_subreg (SImode, dest, DImode, 4);
+  rtx dest  = operands[0];
+  rtx src   = operands[1];
+  rtx op2   = operands[2];
+  rtx dest1 = simplify_gen_subreg (SImode, dest, DImode, 0);
+  rtx dest2 = simplify_gen_subreg (SImode, dest, DImode, 4);
   rtx addr1;
   rtx addr2;
-  rtx word_high;
-  rtx word_low;
+  rtx word1;
+  rtx word2;
 
   addr1 = XEXP (src, 0);
   if (GET_CODE (addr1) == PLUS)
@@ -2308,19 +2315,11 @@
       addr2 = gen_rtx_PLUS (SImode, op2, addr1);
     }
 
-  if (BYTES_BIG_ENDIAN)
-    {
-      word_high = change_address (src, SImode, addr1);
-      word_low  = change_address (src, SImode, addr2);
-    }
-  else
-    {
-      word_high = change_address (src, SImode, addr2);
-      word_low  = change_address (src, SImode, addr1);
-    }
+  word1 = change_address (src, SImode, addr1);
+  word2 = change_address (src, SImode, addr2);
 
-  emit_insn (gen_bswapsi2 (dest_hi, word_low));
-  emit_insn (gen_bswapsi2 (dest_lo, word_high));
+  emit_insn (gen_bswapsi2 (dest2, word1));
+  emit_insn (gen_bswapsi2 (dest1, word2));
 }")
 
 (define_split
@@ -2331,15 +2330,15 @@
   [(const_int 0)]
   "
 {
-  rtx dest     = operands[0];
-  rtx src      = operands[1];
-  rtx op2      = operands[2];
-  rtx src_high = simplify_gen_subreg (SImode, src, DImode, 0);
-  rtx src_low  = simplify_gen_subreg (SImode, src, DImode, 4);
+  rtx dest = operands[0];
+  rtx src  = operands[1];
+  rtx op2  = operands[2];
+  rtx src1 = simplify_gen_subreg (SImode, src, DImode, 0);
+  rtx src2 = simplify_gen_subreg (SImode, src, DImode, 4);
   rtx addr1;
   rtx addr2;
-  rtx word_high;
-  rtx word_low;
+  rtx word1;
+  rtx word2;
 
   addr1 = XEXP (dest, 0);
   if (GET_CODE (addr1) == PLUS)
@@ -2364,19 +2363,11 @@
       addr2 = gen_rtx_PLUS (SImode, op2, addr1);
     }
 
-  if (BYTES_BIG_ENDIAN)
-    {
-      word_high = change_address (dest, SImode, addr1);
-      word_low  = change_address (dest, SImode, addr2);
-    }
-  else
-    {
-      word_high = change_address (dest, SImode, addr2);
-      word_low  = change_address (dest, SImode, addr1);
-    }
+  word1 = change_address (dest, SImode, addr1);
+  word2 = change_address (dest, SImode, addr2);
 
-  emit_insn (gen_bswapsi2 (word_high, src_low));
-  emit_insn (gen_bswapsi2 (word_low, src_high));
+  emit_insn (gen_bswapsi2 (word2, src1));
+  emit_insn (gen_bswapsi2 (word1, src2));
 }")
 
 (define_split
@@ -2387,15 +2378,15 @@
   [(const_int 0)]
   "
 {
-  rtx dest      = operands[0];
-  rtx src       = operands[1];
-  rtx src_high  = simplify_gen_subreg (SImode, src, DImode, 0);
-  rtx src_low   = simplify_gen_subreg (SImode, src, DImode, 4);
-  rtx dest_high = simplify_gen_subreg (SImode, dest, DImode, 0);
-  rtx dest_low  = simplify_gen_subreg (SImode, dest, DImode, 4);
+  rtx dest  = operands[0];
+  rtx src   = operands[1];
+  rtx src1  = simplify_gen_subreg (SImode, src, DImode, 0);
+  rtx src2  = simplify_gen_subreg (SImode, src, DImode, 4);
+  rtx dest1 = simplify_gen_subreg (SImode, dest, DImode, 0);
+  rtx dest2 = simplify_gen_subreg (SImode, dest, DImode, 4);
 
-  emit_insn (gen_bswapsi2 (dest_high, src_low));
-  emit_insn (gen_bswapsi2 (dest_low, src_high));
+  emit_insn (gen_bswapsi2 (dest1, src2));
+  emit_insn (gen_bswapsi2 (dest2, src1));
 }")
 
 (define_insn "mulsi3"
@@ -4682,6 +4673,41 @@
   "frsqrtes %0,%1"
   [(set_attr "type" "fp")])
 
+;; This expander is here to avoid FLOAT_WORDS_BIGENDIAN tests in
+;; builtins.c and optabs.c that are not correct for IBM long double
+;; when little-endian.
+(define_expand "signbittf2"
+  [(set (match_dup 2)
+	(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "")))
+   (set (match_dup 3)
+   	(subreg:DI (match_dup 2) 0))
+   (set (match_dup 4)
+   	(match_dup 5))
+   (set (match_operand:SI 0 "gpc_reg_operand" "")
+  	(match_dup 6))]
+  "!TARGET_IEEEQUAD
+   && TARGET_HARD_FLOAT
+   && (TARGET_FPRS || TARGET_E500_DOUBLE)
+   && TARGET_LONG_DOUBLE_128"
+{
+  operands[2] = gen_reg_rtx (DFmode);
+  operands[3] = gen_reg_rtx (DImode);
+  if (TARGET_POWERPC64)
+    {
+      operands[4] = gen_reg_rtx (DImode);
+      operands[5] = gen_rtx_LSHIFTRT (DImode, operands[3], GEN_INT (63));
+      operands[6] = gen_rtx_SUBREG (SImode, operands[4],
+				    WORDS_BIG_ENDIAN ? 4 : 0);
+    }
+  else
+    {
+      operands[4] = gen_reg_rtx (SImode);
+      operands[5] = gen_rtx_SUBREG (SImode, operands[3],
+				    WORDS_BIG_ENDIAN ? 0 : 4);
+      operands[6] = gen_rtx_LSHIFTRT (SImode, operands[4], GEN_INT (31));
+    }
+})
+
 (define_expand "copysign<mode>3"
   [(set (match_dup 3)
         (abs:SFDF (match_operand:SFDF 1 "gpc_reg_operand" "")))
@@ -6210,10 +6236,25 @@
   [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r")
 	(ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
 		     (match_operand:SI 2 "const_int_operand" "M,i")))]
-  "TARGET_32BIT && !TARGET_POWERPC64 && WORDS_BIG_ENDIAN"
-  "@
-   srawi %0,%1,31\;srawi %L0,%1,%h2
-   srwi %L0,%L1,%h2\;insrwi %L0,%1,%h2,0\;srawi %0,%1,%h2"
+  "!TARGET_POWERPC64"
+  "*
+{
+  switch (which_alternative)
+    {
+    default:
+      gcc_unreachable ();
+    case 0:
+      if (WORDS_BIG_ENDIAN)
+        return \"srawi %0,%1,31\;srawi %L0,%1,%h2\";
+      else
+        return \"srawi %L0,%L1,31\;srawi %0,%L1,%h2\";
+    case 1:
+      if (WORDS_BIG_ENDIAN)
+	return \"srwi %L0,%L1,%h2\;insrwi %L0,%1,%h2,0\;srawi %0,%1,%h2\";
+      else
+	return \"srwi %0,%1,%h2\;insrwi %0,%L1,%h2,0\;srawi %L0,%L1,%h2\";
+    }
+}"
   [(set_attr "type" "two,three")
    (set_attr "length" "8,12")])
 
@@ -7064,13 +7105,12 @@
   [(set (match_operand:DI 0 "gpc_reg_operand" "")
 	(ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "")
 		     (match_operand:SI 2 "reg_or_cint_operand" "")))]
-  "WORDS_BIG_ENDIAN"
+  ""
   "
 {
   if (TARGET_POWERPC64)
     ;
-  else if (TARGET_32BIT && GET_CODE (operands[2]) == CONST_INT
-	   && WORDS_BIG_ENDIAN)
+  else if (GET_CODE (operands[2]) == CONST_INT)
     {
       emit_insn (gen_ashrdi3_no_power (operands[0], operands[1], operands[2]));
       DONE;
@@ -8277,8 +8317,8 @@
   "&& reload_completed"
   [(pc)]
 {
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
   emit_move_insn (simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word),
 		  operands[1]);
   emit_move_insn (simplify_gen_subreg (DFmode, operands[0], TFmode, lo_word),
@@ -8507,8 +8547,8 @@
    && TARGET_LONG_DOUBLE_128"
   "
 {
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
   operands[3] = gen_reg_rtx (DFmode);
   operands[4] = gen_reg_rtx (CCFPmode);
   operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word);
@@ -11609,8 +11649,8 @@
    (match_dup 13)]
 {
   REAL_VALUE_TYPE rv;
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
 
   operands[5] = simplify_gen_subreg (DFmode, operands[1], TFmode, hi_word);
   operands[6] = simplify_gen_subreg (DFmode, operands[1], TFmode, lo_word);
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/rtems.h gcc-4.8.1/gcc/config/rs6000/rtems.h
--- gcc-4.8.1.orig/gcc/config/rs6000/rtems.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/rtems.h	2013-07-31 07:59:09.970550000 -0500
@@ -34,6 +34,9 @@
     }                                     \
   while (0)
 
+#undef TARGET_LIBGCC_SDATA_SECTION
+#define TARGET_LIBGCC_SDATA_SECTION ".sdata"
+
 #undef CPP_OS_DEFAULT_SPEC
 #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)"
 
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/spe.md gcc-4.8.1/gcc/config/rs6000/spe.md
--- gcc-4.8.1.orig/gcc/config/rs6000/spe.md	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/spe.md	2013-06-18 20:18:38.348158000 -0500
@@ -2604,8 +2604,8 @@
    && TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128"
   "
 {
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
   operands[3] = gen_reg_rtx (DFmode);
   operands[4] = gen_reg_rtx (CCFPmode);
   operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word);
@@ -2627,8 +2627,8 @@
    && TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && TARGET_LONG_DOUBLE_128"
   "
 {
-  const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
-  const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
+  const int hi_word = LONG_DOUBLE_LARGE_FIRST ? 0 : GET_MODE_SIZE (DFmode);
+  const int lo_word = LONG_DOUBLE_LARGE_FIRST ? GET_MODE_SIZE (DFmode) : 0;
   operands[3] = gen_reg_rtx (DFmode);
   operands[4] = gen_reg_rtx (CCFPmode);
   operands[5] = simplify_gen_subreg (DFmode, operands[0], TFmode, hi_word);
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4.h gcc-4.8.1/gcc/config/rs6000/sysv4.h
--- gcc-4.8.1.orig/gcc/config/rs6000/sysv4.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/sysv4.h	2013-06-18 20:18:38.348158000 -0500
@@ -187,12 +187,6 @@
 	     rs6000_abi_name);						\
     }									\
 									\
-  if (rs6000_current_abi == ABI_AIX && TARGET_LITTLE_ENDIAN)		\
-    {									\
-      rs6000_isa_flags &= ~OPTION_MASK_LITTLE_ENDIAN;			\
-      error ("-mcall-aixdesc must be big endian");			\
-    }									\
-									\
   if (TARGET_SECURE_PLT != secure_plt)					\
     {									\
       error ("-msecure-plt not supported by your assembler");		\
@@ -523,19 +517,24 @@
   while (0)
 #endif
 
+/* Select one of BIG_OPT, LITTLE_OPT or DEFAULT_OPT depending
+   on various -mbig, -mlittle and -mcall- options.  */
+#define ENDIAN_SELECT(BIG_OPT, LITTLE_OPT, DEFAULT_OPT)	\
+"%{mlittle|mlittle-endian:"	LITTLE_OPT ";"	\
+  "mbig|mbig-endian:"		BIG_OPT    ";"	\
+  "mcall-aixdesc|mcall-freebsd|mcall-netbsd|"	\
+  "mcall-openbsd|mcall-linux:"	BIG_OPT    ";"	\
+  "mcall-i960-old:"		LITTLE_OPT ";"	\
+  ":"				DEFAULT_OPT "}"
+
+#define DEFAULT_ASM_ENDIAN " -mbig"
+
 #undef	ASM_SPEC
 #define	ASM_SPEC "%(asm_cpu) \
 %{,assembler|,assembler-with-cpp: %{mregnames} %{mno-regnames}} \
 %{mrelocatable} %{mrelocatable-lib} %{fpic|fpie|fPIC|fPIE:-K PIC} \
-%{memb|msdata=eabi: -memb} \
-%{mlittle|mlittle-endian:-mlittle; \
-  mbig|mbig-endian      :-mbig;    \
-  mcall-aixdesc |		   \
-  mcall-freebsd |		   \
-  mcall-netbsd  |		   \
-  mcall-openbsd |		   \
-  mcall-linux           :-mbig;    \
-  mcall-i960-old        :-mlittle}"
+%{memb|msdata=eabi: -memb}" \
+ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
 
 #define	CC1_ENDIAN_BIG_SPEC ""
 
@@ -553,17 +552,10 @@
 #endif
 
 /* Pass -G xxx to the compiler and set correct endian mode.  */
-#define	CC1_SPEC "%{G*} %(cc1_cpu) \
-%{mlittle|mlittle-endian: %(cc1_endian_little);           \
-  mbig   |mbig-endian   : %(cc1_endian_big);              \
-  mcall-aixdesc |					  \
-  mcall-freebsd |					  \
-  mcall-netbsd  |					  \
-  mcall-openbsd |					  \
-  mcall-linux           : -mbig %(cc1_endian_big);        \
-  mcall-i960-old        : -mlittle %(cc1_endian_little);  \
-                        : %(cc1_endian_default)}          \
-%{meabi: %{!mcall-*: -mcall-sysv }} \
+#define	CC1_SPEC "%{G*} %(cc1_cpu)" \
+  ENDIAN_SELECT(" %(cc1_endian_big)", " %(cc1_endian_little)",	\
+		" %(cc1_endian_default)")			\
+"%{meabi: %{!mcall-*: -mcall-sysv }} \
 %{!meabi: %{!mno-eabi: \
     %{mrelocatable: -meabi } \
     %{mcall-freebsd: -mno-eabi } \
@@ -607,11 +599,8 @@
 %{symbolic:-Bsymbolic -G -dy -z text }"
 
 /* Override the default target of the linker.  */
-#define	LINK_TARGET_SPEC "\
-%{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat elf32-powerpcle } \
-%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-    %{mcall-i960-old: --oformat elf32-powerpcle} \
-  }}}}"
+#define	LINK_TARGET_SPEC \
+  ENDIAN_SELECT("", " --oformat elf32-powerpcle", "")
 
 /* Any specific OS flags.  */
 #define LINK_OS_SPEC "\
diff -Naur gcc-4.8.1.orig/gcc/config/rs6000/sysv4le.h gcc-4.8.1/gcc/config/rs6000/sysv4le.h
--- gcc-4.8.1.orig/gcc/config/rs6000/sysv4le.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/rs6000/sysv4le.h	2013-06-18 20:18:38.348158000 -0500
@@ -25,12 +25,12 @@
 #undef	CC1_ENDIAN_DEFAULT_SPEC
 #define	CC1_ENDIAN_DEFAULT_SPEC "%(cc1_endian_little)"
 
+#undef	DEFAULT_ASM_ENDIAN
+#define	DEFAULT_ASM_ENDIAN " -mlittle"
+
 #undef	LINK_TARGET_SPEC
-#define	LINK_TARGET_SPEC "\
-%{mbig: --oformat elf32-powerpc } %{mbig-endian: --oformat elf32-powerpc } \
-%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
-    %{mcall-linux: --oformat elf32-powerpc} \
-  }}}}"
+#define	LINK_TARGET_SPEC \
+  ENDIAN_SELECT(" --oformat elf32-powerpc", "", "")
 
 #undef	MULTILIB_DEFAULTS
 #define	MULTILIB_DEFAULTS { "mlittle", "mcall-sysv" }
diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmintrin.h gcc-4.8.1/gcc/config/s390/htmintrin.h
--- gcc-4.8.1.orig/gcc/config/s390/htmintrin.h	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/htmintrin.h	2013-08-14 14:44:27.951575000 -0500
@@ -0,0 +1,57 @@
+/* GNU compiler hardware transactional execution intrinsics
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef _HTMINTRIN_H
+#define _HTMINTRIN_H
+
+
+/* Condition codes generated by tbegin  */
+#define _HTM_TBEGIN_STARTED       0
+#define _HTM_TBEGIN_INDETERMINATE 1
+#define _HTM_TBEGIN_TRANSIENT     2
+#define _HTM_TBEGIN_PERSISTENT    3
+
+/* The abort codes below this threshold are reserved for machine
+   use.  */
+#define _HTM_FIRST_USER_ABORT_CODE 256
+
+/* The transaction diagnostic block is it is defined in the Principles
+   of Operation chapter 5-91.  */
+
+struct __htm_tdb {
+  unsigned char format;                /*   0 */
+  unsigned char flags;
+  unsigned char reserved1[4];
+  unsigned short nesting_depth;
+  unsigned long long abort_code;       /*   8 */
+  unsigned long long conflict_token;   /*  16 */
+  unsigned long long atia;             /*  24 */
+  unsigned char eaid;                  /*  32 */
+  unsigned char dxc;
+  unsigned char reserved2[2];
+  unsigned int program_int_id;
+  unsigned long long exception_id;     /*  40 */
+  unsigned long long bea;              /*  48 */
+  unsigned char reserved3[72];         /*  56 */
+  unsigned long long gprs[16];         /* 128 */
+} __attribute__((__packed__, __aligned__ (8)));
+
+
+#endif /* _HTMINTRIN_H */
diff -Naur gcc-4.8.1.orig/gcc/config/s390/htmxlintrin.h gcc-4.8.1/gcc/config/s390/htmxlintrin.h
--- gcc-4.8.1.orig/gcc/config/s390/htmxlintrin.h	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/htmxlintrin.h	2013-08-14 14:44:27.951575000 -0500
@@ -0,0 +1,182 @@
+/* XL compiler hardware transactional execution intrinsics
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef _HTMXLINTRIN_H
+#define _HTMXLINTRIN_H
+
+#include <stdint.h>
+
+#include <htmintrin.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* These intrinsics are being made available for compatibility with
+   the IBM XL compiler.  For documentation please see the "z/OS XL
+   C/C++ Programming Guide" publically available on the web.  */
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_simple_begin ()
+{
+  return __builtin_tbegin_nofloat (0);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_begin (void* const tdb)
+{
+  return __builtin_tbegin_nofloat (tdb);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_end ()
+{
+  return __builtin_tend ();
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_abort ()
+{
+  return __builtin_tabort (_HTM_FIRST_USER_ABORT_CODE);
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_named_abort (unsigned char const code)
+{
+  return __builtin_tabort ((int)_HTM_FIRST_USER_ABORT_CODE + code);
+}
+
+extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_non_transactional_store (void* const addr, long long const value)
+{
+  __builtin_non_tx_store ((uint64_t*)addr, (uint64_t)value);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_nesting_depth (void* const tdb_ptr)
+{
+  int depth = __builtin_tx_nesting_depth ();
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  if (depth != 0)
+    return depth;
+
+  if (tdb->format == 0)
+    return 0;
+  return tdb->nesting_depth;
+}
+
+/* Transaction failure diagnostics */
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_user_abort (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  if (tdb->format == 0)
+    return 0;
+
+  return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE);
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_named_user_abort (void* const tdb_ptr, unsigned char* code)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  if (tdb->format == 0)
+    return 0;
+
+  if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE)
+    {
+      *code = tdb->abort_code - _HTM_FIRST_USER_ABORT_CODE;
+      return 1;
+    }
+  return 0;
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_illegal (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return (tdb->format == 0
+	  && (tdb->abort_code == 4 /* unfiltered program interruption */
+	      || tdb->abort_code == 11 /* restricted instruction */));
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_footprint_exceeded (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return (tdb->format == 0
+	  && (tdb->abort_code == 7 /* fetch overflow */
+	      || tdb->abort_code == 8 /* store overflow */));
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_nested_too_deep (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return tdb->format == 0 && tdb->abort_code == 13; /* depth exceeded */
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_conflict (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return (tdb->format == 0
+	  && (tdb->abort_code == 9 /* fetch conflict */
+	      || tdb->abort_code == 10 /* store conflict */));
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_is_failure_persistent (long const result)
+{
+  return result == _HTM_TBEGIN_PERSISTENT;
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_failure_address (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+#ifdef __s390x__
+  return tdb->atia;
+#else
+  return tdb->atia & 0xffffffff;
+#endif
+}
+
+extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
+__TM_failure_code (void* const tdb_ptr)
+{
+  struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
+
+  return tdb->abort_code;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HTMXLINTRIN_H */
diff -Naur gcc-4.8.1.orig/gcc/config/s390/predicates.md gcc-4.8.1/gcc/config/s390/predicates.md
--- gcc-4.8.1.orig/gcc/config/s390/predicates.md	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/predicates.md	2013-08-02 10:41:10.548493000 -0500
@@ -176,7 +176,11 @@
 {
   if (GET_CODE (XEXP (op, 0)) != REG
       || REGNO (XEXP (op, 0)) != CC_REGNUM
-      || XEXP (op, 1) != const0_rtx)
+      || (XEXP (op, 1) != const0_rtx
+          && !(CONST_INT_P (XEXP (op, 1))
+	       && GET_MODE (XEXP (op, 0)) == CCRAWmode
+	       && INTVAL (XEXP (op, 1)) >= 0
+               && INTVAL (XEXP (op, 1)) <= 15)))
     return false;
 
   return (s390_branch_condition_mask (op) >= 0);
@@ -224,7 +228,11 @@
 
   if (GET_CODE (XEXP (op, 0)) != REG
       || REGNO (XEXP (op, 0)) != CC_REGNUM
-      || XEXP (op, 1) != const0_rtx)
+      || (XEXP (op, 1) != const0_rtx
+          && !(CONST_INT_P (XEXP (op, 1))
+	       && GET_MODE (XEXP (op, 0)) == CCRAWmode
+	       && INTVAL (XEXP (op, 1)) >= 0
+               && INTVAL (XEXP (op, 1)) <= 15)))
     return false;
 
   switch (GET_MODE (XEXP (op, 0)))
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.c gcc-4.8.1/gcc/config/s390/s390.c
--- gcc-4.8.1.orig/gcc/config/s390/s390.c	2013-04-08 02:55:57.000000000 -0500
+++ gcc-4.8.1/gcc/config/s390/s390.c	2013-08-02 10:41:10.548493000 -0500
@@ -367,6 +367,10 @@
   const char *some_ld_name;
 
   bool has_landing_pad_p;
+
+  /* True if the current function may contain a tbegin clobbering
+     FPRs.  */
+  bool tbegin_p;
 };
 
 /* Few accessor macros for struct cfun->machine->s390_frame_layout.  */
@@ -824,9 +828,9 @@
       *op1 = constm1_rtx;
     }
 
-  /* Remove redundant UNSPEC_CCU_TO_INT conversions if possible.  */
+  /* Remove redundant UNSPEC_STRCMPCC_TO_INT conversions if possible.  */
   if (GET_CODE (*op0) == UNSPEC
-      && XINT (*op0, 1) == UNSPEC_CCU_TO_INT
+      && XINT (*op0, 1) == UNSPEC_STRCMPCC_TO_INT
       && XVECLEN (*op0, 0) == 1
       && GET_MODE (XVECEXP (*op0, 0, 0)) == CCUmode
       && GET_CODE (XVECEXP (*op0, 0, 0)) == REG
@@ -852,25 +856,35 @@
 	}
     }
 
-  /* Remove redundant UNSPEC_CCZ_TO_INT conversions if possible.  */
+  /* Remove redundant UNSPEC_CC_TO_INT conversions if possible.  */
   if (GET_CODE (*op0) == UNSPEC
-      && XINT (*op0, 1) == UNSPEC_CCZ_TO_INT
+      && XINT (*op0, 1) == UNSPEC_CC_TO_INT
       && XVECLEN (*op0, 0) == 1
-      && GET_MODE (XVECEXP (*op0, 0, 0)) == CCZmode
       && GET_CODE (XVECEXP (*op0, 0, 0)) == REG
       && REGNO (XVECEXP (*op0, 0, 0)) == CC_REGNUM
-      && *op1 == const0_rtx)
+      && CONST_INT_P (*op1))
     {
       enum rtx_code new_code = UNKNOWN;
-      switch (*code)
+      switch (GET_MODE (XVECEXP (*op0, 0, 0)))
 	{
-	  case EQ: new_code = EQ;  break;
-	  case NE: new_code = NE;  break;
-	  default: break;
+	case CCZmode:
+	case CCRAWmode:
+	  switch (*code)
+	    {
+	    case EQ: new_code = EQ;  break;
+	    case NE: new_code = NE;  break;
+	    default: break;
+	    }
+	  break;
+	default: break;
 	}
 
       if (new_code != UNKNOWN)
 	{
+	  /* For CCRAWmode put the required cc mask into the second
+	     operand.  */
+	  if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode)
+	    *op1 = gen_rtx_CONST_INT (VOIDmode, 1 << (3 - INTVAL (*op1)));
 	  *op0 = XVECEXP (*op0, 0, 0);
 	  *code = new_code;
 	}
@@ -942,10 +956,11 @@
 			    const0_rtx);
 }
 
-/* Emit a jump instruction to TARGET.  If COND is NULL_RTX, emit an
-   unconditional jump, else a conditional jump under condition COND.  */
+/* Emit a jump instruction to TARGET and return it.  If COND is
+   NULL_RTX, emit an unconditional jump, else a conditional jump under
+   condition COND.  */
 
-void
+rtx
 s390_emit_jump (rtx target, rtx cond)
 {
   rtx insn;
@@ -955,7 +970,7 @@
     target = gen_rtx_IF_THEN_ELSE (VOIDmode, cond, target, pc_rtx);
 
   insn = gen_rtx_SET (VOIDmode, pc_rtx, target);
-  emit_jump_insn (insn);
+  return emit_jump_insn (insn);
 }
 
 /* Return branch condition mask to implement a branch
@@ -971,7 +986,10 @@
 
   gcc_assert (GET_CODE (XEXP (code, 0)) == REG);
   gcc_assert (REGNO (XEXP (code, 0)) == CC_REGNUM);
-  gcc_assert (XEXP (code, 1) == const0_rtx);
+  gcc_assert (XEXP (code, 1) == const0_rtx
+	      || (GET_MODE (XEXP (code, 0)) == CCRAWmode
+		  && CONST_INT_P (XEXP (code, 1))));
+
 
   switch (GET_MODE (XEXP (code, 0)))
     {
@@ -1145,6 +1163,17 @@
         }
       break;
 
+    case CCRAWmode:
+      switch (GET_CODE (code))
+	{
+	case EQ:
+	  return INTVAL (XEXP (code, 1));
+	case NE:
+	  return (INTVAL (XEXP (code, 1))) ^ 0xf;
+	default:
+	  gcc_unreachable ();
+	}
+
     default:
       return -1;
     }
@@ -1204,7 +1233,9 @@
 
   if (GET_CODE (XEXP (code, 0)) == REG
       && REGNO (XEXP (code, 0)) == CC_REGNUM
-      && XEXP (code, 1) == const0_rtx)
+      && (XEXP (code, 1) == const0_rtx
+	  || (GET_MODE (XEXP (code, 0)) == CCRAWmode
+	      && CONST_INT_P (XEXP (code, 1)))))
     mask = s390_branch_condition_mask (code);
   else
     mask = s390_compare_and_branch_condition_mask (code);
@@ -1602,6 +1633,11 @@
   if (!(target_flags_explicit & MASK_HARD_DFP) && TARGET_DFP)
     target_flags |= MASK_HARD_DFP;
 
+  /* Enable hardware transactions if available and not explicitly
+     disabled by user.  E.g. with -m31 -march=zEC12 -mzarch */
+  if (!(target_flags_explicit & MASK_OPT_HTM) && TARGET_CPU_HTM && TARGET_ZARCH)
+    target_flags |= MASK_OPT_HTM;
+
   if (TARGET_HARD_DFP && !TARGET_DFP)
     {
       if (target_flags_explicit & MASK_HARD_DFP)
@@ -7341,11 +7377,11 @@
   if (GET_CODE (setreg) == SUBREG)
     {
       rtx inner = SUBREG_REG (setreg);
-      if (!GENERAL_REG_P (inner))
+      if (!GENERAL_REG_P (inner) && !FP_REG_P (inner))
 	return;
       regno = subreg_regno (setreg);
     }
-  else if (GENERAL_REG_P (setreg))
+  else if (GENERAL_REG_P (setreg) || FP_REG_P (setreg))
     regno = REGNO (setreg);
   else
     return;
@@ -7368,13 +7404,13 @@
   rtx cur_insn;
   unsigned int i;
 
-  memset (regs_ever_clobbered, 0, 16 * sizeof (int));
+  memset (regs_ever_clobbered, 0, 32 * sizeof (int));
 
   /* For non-leaf functions we have to consider all call clobbered regs to be
      clobbered.  */
   if (!crtl->is_leaf)
     {
-      for (i = 0; i < 16; i++)
+      for (i = 0; i < 32; i++)
 	regs_ever_clobbered[i] = call_really_used_regs[i];
     }
 
@@ -7396,7 +7432,7 @@
      See expand_builtin_unwind_init.  For regs_ever_live this is done by
      reload.  */
   if (cfun->has_nonlocal_label)
-    for (i = 0; i < 16; i++)
+    for (i = 0; i < 32; i++)
       if (!call_really_used_regs[i])
 	regs_ever_clobbered[i] = 1;
 
@@ -7462,17 +7498,6 @@
 {
   int i, j;
 
-  /* fprs 8 - 15 are call saved for 64 Bit ABI.  */
-  cfun_frame_layout.fpr_bitmap = 0;
-  cfun_frame_layout.high_fprs = 0;
-  if (TARGET_64BIT)
-    for (i = 24; i < 32; i++)
-      if (df_regs_ever_live_p (i) && !global_regs[i])
-	{
-	  cfun_set_fpr_bit (i - 16);
-	  cfun_frame_layout.high_fprs++;
-	}
-
   /* Find first and last gpr to be saved.  We trust regs_ever_live
      data, except that we don't save and restore global registers.
 
@@ -7481,6 +7506,28 @@
 
   s390_regs_ever_clobbered (clobbered_regs);
 
+  /* fprs 8 - 15 are call saved for 64 Bit ABI.  */
+  if (!epilogue_completed)
+    {
+      cfun_frame_layout.fpr_bitmap = 0;
+      cfun_frame_layout.high_fprs = 0;
+      if (TARGET_64BIT)
+	for (i = 24; i < 32; i++)
+	  /* During reload we have to use the df_regs_ever_live infos
+	     since reload is marking FPRs used as spill slots there as
+	     live before actually making the code changes.  Without
+	     this we fail during elimination offset verification.  */
+	  if ((clobbered_regs[i]
+	       || (df_regs_ever_live_p (i)
+		   && (reload_in_progress
+		       || crtl->saves_all_registers)))
+	      && !global_regs[i])
+	    {
+	      cfun_set_fpr_bit (i - 16);
+	      cfun_frame_layout.high_fprs++;
+	    }
+    }
+
   for (i = 0; i < 16; i++)
     clobbered_regs[i] = clobbered_regs[i] && !global_regs[i] && !fixed_regs[i];
 
@@ -7731,7 +7778,7 @@
 {
   HOST_WIDE_INT frame_size;
   int base_used;
-  int clobbered_regs[16];
+  int clobbered_regs[32];
 
   /* On S/390 machines, we may need to perform branch splitting, which
      will require both base and return address register.  We have no
@@ -7766,6 +7813,157 @@
   while (frame_size != cfun_frame_layout.frame_size);
 }
 
+/* Remove the FPR clobbers from a tbegin insn if it can be proven that
+   the TX is nonescaping.  A transaction is considered escaping if
+   there is at least one path from tbegin returning CC0 to the
+   function exit block without an tend.
+
+   The check so far has some limitations:
+   - only single tbegin/tend BBs are supported
+   - the first cond jump after tbegin must separate the CC0 path from ~CC0
+   - when CC is copied to a GPR and the CC0 check is done with the GPR
+     this is not supported
+*/
+
+static void
+s390_optimize_nonescaping_tx (void)
+{
+  const unsigned int CC0 = 1 << 3;
+  basic_block tbegin_bb = NULL;
+  basic_block tend_bb = NULL;
+  basic_block bb;
+  rtx insn;
+  bool result = true;
+  int bb_index;
+  rtx tbegin_insn = NULL_RTX;
+
+  if (!cfun->machine->tbegin_p)
+    return;
+
+  for (bb_index = 0; bb_index < n_basic_blocks; bb_index++)
+    {
+      bb = BASIC_BLOCK (bb_index);
+
+      FOR_BB_INSNS (bb, insn)
+	{
+	  rtx ite, cc, pat, target;
+	  unsigned HOST_WIDE_INT mask;
+
+	  if (!INSN_P (insn) || INSN_CODE (insn) <= 0)
+	    continue;
+
+	  pat = PATTERN (insn);
+
+	  if (GET_CODE (pat) == PARALLEL)
+	    pat = XVECEXP (pat, 0, 0);
+
+	  if (GET_CODE (pat) != SET
+	      || GET_CODE (SET_SRC (pat)) != UNSPEC_VOLATILE)
+	    continue;
+
+	  if (XINT (SET_SRC (pat), 1) == UNSPECV_TBEGIN)
+	    {
+	      rtx tmp;
+
+	      tbegin_insn = insn;
+
+	      /* Just return if the tbegin doesn't have clobbers.  */
+	      if (GET_CODE (PATTERN (insn)) != PARALLEL)
+		return;
+
+	      if (tbegin_bb != NULL)
+		return;
+
+	      /* Find the next conditional jump.  */
+	      for (tmp = NEXT_INSN (insn);
+		   tmp != NULL_RTX;
+		   tmp = NEXT_INSN (tmp))
+		{
+		  if (reg_set_p (gen_rtx_REG (CCmode, CC_REGNUM), tmp))
+		    return;
+		  if (!JUMP_P (tmp))
+		    continue;
+
+		  ite = SET_SRC (PATTERN (tmp));
+		  if (GET_CODE (ite) != IF_THEN_ELSE)
+		    continue;
+
+		  cc = XEXP (XEXP (ite, 0), 0);
+		  if (!REG_P (cc) || !CC_REGNO_P (REGNO (cc))
+		      || GET_MODE (cc) != CCRAWmode
+		      || GET_CODE (XEXP (XEXP (ite, 0), 1)) != CONST_INT)
+		    return;
+
+		  if (bb->succs->length () != 2)
+		    return;
+
+		  mask = INTVAL (XEXP (XEXP (ite, 0), 1));
+		  if (GET_CODE (XEXP (ite, 0)) == NE)
+		    mask ^= 0xf;
+
+		  if (mask == CC0)
+		    target = XEXP (ite, 1);
+		  else if (mask == (CC0 ^ 0xf))
+		    target = XEXP (ite, 2);
+		  else
+		    return;
+
+		  {
+		    edge_iterator ei;
+		    edge e1, e2;
+
+		    ei = ei_start (bb->succs);
+		    e1 = ei_safe_edge (ei);
+		    ei_next (&ei);
+		    e2 = ei_safe_edge (ei);
+
+		    if (e2->flags & EDGE_FALLTHRU)
+		      {
+			e2 = e1;
+			e1 = ei_safe_edge (ei);
+		      }
+
+		    if (!(e1->flags & EDGE_FALLTHRU))
+		      return;
+
+		    tbegin_bb = (target == pc_rtx) ? e1->dest : e2->dest;
+		  }
+		  if (tmp == BB_END (bb))
+		    break;
+		}
+	    }
+
+	  if (XINT (SET_SRC (pat), 1) == UNSPECV_TEND)
+	    {
+	      if (tend_bb != NULL)
+		return;
+	      tend_bb = bb;
+	    }
+	}
+    }
+
+  /* Either we successfully remove the FPR clobbers here or we are not
+     able to do anything for this TX.  Both cases don't qualify for
+     another look.  */
+  cfun->machine->tbegin_p = false;
+
+  if (tbegin_bb == NULL || tend_bb == NULL)
+    return;
+
+  calculate_dominance_info (CDI_POST_DOMINATORS);
+  result = dominated_by_p (CDI_POST_DOMINATORS, tbegin_bb, tend_bb);
+  free_dominance_info (CDI_POST_DOMINATORS);
+
+  if (!result)
+    return;
+
+  PATTERN (tbegin_insn) = XVECEXP (PATTERN (tbegin_insn), 0, 0);
+  INSN_CODE (tbegin_insn) = -1;
+  df_insn_rescan (tbegin_insn);
+
+  return;
+}
+
 /* Update frame layout.  Recompute actual register save data based on
    current info and update regs_ever_live for the special registers.
    May be called multiple times, but may never cause *more* registers
@@ -7774,7 +7972,7 @@
 static void
 s390_update_frame_layout (void)
 {
-  int clobbered_regs[16];
+  int clobbered_regs[32];
 
   s390_register_info (clobbered_regs);
 
@@ -8204,8 +8402,10 @@
   int offset;
   int next_fpr = 0;
 
-  /* Complete frame layout.  */
+  /* Try to get rid of the FPR clobbers.  */
+  s390_optimize_nonescaping_tx ();
 
+  /* Complete frame layout.  */
   s390_update_frame_layout ();
 
   /* Annotate all constant pool references to let the scheduler know
@@ -9353,6 +9553,291 @@
   return build_va_arg_indirect_ref (addr);
 }
 
+/* Emit rtl for the tbegin or tbegin_retry (RETRY != NULL_RTX)
+   expanders.
+   DEST  - Register location where CC will be stored.
+   TDB   - Pointer to a 256 byte area where to store the transaction.
+           diagnostic block. NULL if TDB is not needed.
+   RETRY - Retry count value.  If non-NULL a retry loop for CC2
+           is emitted
+   CLOBBER_FPRS_P - If true clobbers for all FPRs are emitted as part
+                    of the tbegin instruction pattern.  */
+
+void
+s390_expand_tbegin (rtx dest, rtx tdb, rtx retry, bool clobber_fprs_p)
+{
+  const int CC0 = 1 << 3;
+  const int CC1 = 1 << 2;
+  const int CC3 = 1 << 0;
+  rtx abort_label = gen_label_rtx ();
+  rtx leave_label = gen_label_rtx ();
+  rtx retry_reg = gen_reg_rtx (SImode);
+  rtx retry_label = NULL_RTX;
+  rtx jump;
+  rtx very_unlikely = GEN_INT (REG_BR_PROB_BASE / 100 - 1);
+
+  if (retry != NULL_RTX)
+    {
+      emit_move_insn (retry_reg, retry);
+      retry_label = gen_label_rtx ();
+      emit_label (retry_label);
+    }
+
+  if (clobber_fprs_p)
+    emit_insn (gen_tbegin_1 (tdb,
+		 gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
+  else
+    emit_insn (gen_tbegin_nofloat_1 (tdb,
+		 gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
+
+  jump = s390_emit_jump (abort_label,
+			 gen_rtx_NE (VOIDmode,
+				     gen_rtx_REG (CCRAWmode, CC_REGNUM),
+				     gen_rtx_CONST_INT (VOIDmode, CC0)));
+
+  JUMP_LABEL (jump) = abort_label;
+  LABEL_NUSES (abort_label) = 1;
+  add_reg_note (jump, REG_BR_PROB, very_unlikely);
+
+  /* Initialize CC return value.  */
+  emit_move_insn (dest, const0_rtx);
+
+  s390_emit_jump (leave_label, NULL_RTX);
+  LABEL_NUSES (leave_label) = 1;
+  emit_barrier ();
+
+  /* Abort handler code.  */
+
+  emit_label (abort_label);
+  if (retry != NULL_RTX)
+    {
+      rtx count = gen_reg_rtx (SImode);
+      jump = s390_emit_jump (leave_label,
+			     gen_rtx_EQ (VOIDmode,
+			       gen_rtx_REG (CCRAWmode, CC_REGNUM),
+			       gen_rtx_CONST_INT (VOIDmode, CC1 | CC3)));
+      LABEL_NUSES (leave_label) = 2;
+      add_reg_note (jump, REG_BR_PROB, very_unlikely);
+
+      /* CC2 - transient failure. Perform retry with ppa.  */
+      emit_move_insn (count, retry);
+      emit_insn (gen_subsi3 (count, count, retry_reg));
+      emit_insn (gen_tx_assist (count));
+      jump = emit_jump_insn (gen_doloop_si64 (retry_label,
+					      retry_reg,
+					      retry_reg));
+      JUMP_LABEL (jump) = retry_label;
+      LABEL_NUSES (retry_label) = 1;
+    }
+
+  emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
+					gen_rtvec (1, gen_rtx_REG (CCRAWmode,
+								   CC_REGNUM)),
+					UNSPEC_CC_TO_INT));
+  emit_label (leave_label);
+}
+
+/* Builtins.  */
+
+enum s390_builtin
+{
+  S390_BUILTIN_TBEGIN,
+  S390_BUILTIN_TBEGIN_NOFLOAT,
+  S390_BUILTIN_TBEGIN_RETRY,
+  S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
+  S390_BUILTIN_TBEGINC,
+  S390_BUILTIN_TEND,
+  S390_BUILTIN_TABORT,
+  S390_BUILTIN_NON_TX_STORE,
+  S390_BUILTIN_TX_NESTING_DEPTH,
+  S390_BUILTIN_TX_ASSIST,
+
+  S390_BUILTIN_max
+};
+
+static enum insn_code const code_for_builtin[S390_BUILTIN_max] = {
+  CODE_FOR_tbegin,
+  CODE_FOR_tbegin_nofloat,
+  CODE_FOR_tbegin_retry,
+  CODE_FOR_tbegin_retry_nofloat,
+  CODE_FOR_tbeginc,
+  CODE_FOR_tend,
+  CODE_FOR_tabort,
+  CODE_FOR_ntstg,
+  CODE_FOR_etnd,
+  CODE_FOR_tx_assist
+};
+
+static void
+s390_init_builtins (void)
+{
+  tree ftype, uint64_type;
+
+  /* void foo (void) */
+  ftype = build_function_type_list (void_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tbeginc", ftype, S390_BUILTIN_TBEGINC,
+			BUILT_IN_MD, NULL, NULL_TREE);
+
+  /* void foo (int) */
+  ftype = build_function_type_list (void_type_node, integer_type_node,
+				    NULL_TREE);
+  add_builtin_function ("__builtin_tabort", ftype,
+			S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tx_assist", ftype,
+			S390_BUILTIN_TX_ASSIST, BUILT_IN_MD, NULL, NULL_TREE);
+
+  /* int foo (void *) */
+  ftype = build_function_type_list (integer_type_node, ptr_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin", ftype, S390_BUILTIN_TBEGIN,
+			BUILT_IN_MD, NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin_nofloat", ftype,
+			S390_BUILTIN_TBEGIN_NOFLOAT,
+			BUILT_IN_MD, NULL, NULL_TREE);
+
+  /* int foo (void *, int) */
+  ftype = build_function_type_list (integer_type_node, ptr_type_node,
+				    integer_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin_retry", ftype,
+			S390_BUILTIN_TBEGIN_RETRY,
+			BUILT_IN_MD,
+			NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tbegin_retry_nofloat", ftype,
+			S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
+			BUILT_IN_MD,
+			NULL, NULL_TREE);
+
+  /* int foo (void) */
+  ftype = build_function_type_list (integer_type_node, NULL_TREE);
+  add_builtin_function ("__builtin_tx_nesting_depth", ftype,
+			S390_BUILTIN_TX_NESTING_DEPTH,
+			BUILT_IN_MD, NULL, NULL_TREE);
+  add_builtin_function ("__builtin_tend", ftype,
+			S390_BUILTIN_TEND, BUILT_IN_MD,	NULL, NULL_TREE);
+
+  /* void foo (uint64_t *, uint64_t) */
+  if (TARGET_64BIT)
+    uint64_type = long_unsigned_type_node;
+  else
+    uint64_type = long_long_unsigned_type_node;
+
+   ftype = build_function_type_list (void_type_node,
+ 				    build_pointer_type (uint64_type),
+				    uint64_type, NULL_TREE);
+  add_builtin_function ("__builtin_non_tx_store", ftype,
+			S390_BUILTIN_NON_TX_STORE,
+			BUILT_IN_MD, NULL, NULL_TREE);
+}
+
+/* Expand an expression EXP that calls a built-in function,
+   with result going to TARGET if that's convenient
+   (and in mode MODE if that's convenient).
+   SUBTARGET may be used as the target for computing one of EXP's operands.
+   IGNORE is nonzero if the value is to be ignored.  */
+
+static rtx
+s390_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
+		     enum machine_mode mode ATTRIBUTE_UNUSED,
+		     int ignore ATTRIBUTE_UNUSED)
+{
+#define MAX_ARGS 2
+
+  tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
+  unsigned int fcode = DECL_FUNCTION_CODE (fndecl);
+  enum insn_code icode;
+  rtx op[MAX_ARGS], pat;
+  int arity;
+  bool nonvoid;
+  tree arg;
+  call_expr_arg_iterator iter;
+
+  if (fcode >= S390_BUILTIN_max)
+    internal_error ("bad builtin fcode");
+  icode = code_for_builtin[fcode];
+  if (icode == 0)
+    internal_error ("bad builtin fcode");
+
+  if (!TARGET_HTM)
+    error ("Transactional execution builtins not enabled (-mhtm)\n");
+
+  /* Set a flag in the machine specific cfun part in order to support
+     saving/restoring of FPRs.  */
+  if (fcode == S390_BUILTIN_TBEGIN || fcode == S390_BUILTIN_TBEGIN_RETRY)
+    cfun->machine->tbegin_p = true;
+
+  nonvoid = TREE_TYPE (TREE_TYPE (fndecl)) != void_type_node;
+
+  arity = 0;
+  FOR_EACH_CALL_EXPR_ARG (arg, iter, exp)
+    {
+      const struct insn_operand_data *insn_op;
+
+      if (arg == error_mark_node)
+	return NULL_RTX;
+      if (arity >= MAX_ARGS)
+	return NULL_RTX;
+
+      insn_op = &insn_data[icode].operand[arity + nonvoid];
+
+      op[arity] = expand_expr (arg, NULL_RTX, insn_op->mode, EXPAND_NORMAL);
+
+      if (!(*insn_op->predicate) (op[arity], insn_op->mode))
+	{
+	  if (insn_op->predicate == memory_operand)
+	    {
+	      /* Don't move a NULL pointer into a register. Otherwise
+		 we have to rely on combine being able to move it back
+		 in order to get an immediate 0 in the instruction.  */
+	      if (op[arity] != const0_rtx)
+		op[arity] = copy_to_mode_reg (Pmode, op[arity]);
+	      op[arity] = gen_rtx_MEM (insn_op->mode, op[arity]);
+	    }
+	  else
+	    op[arity] = copy_to_mode_reg (insn_op->mode, op[arity]);
+	}
+
+      arity++;
+    }
+
+  if (nonvoid)
+    {
+      enum machine_mode tmode = insn_data[icode].operand[0].mode;
+      if (!target
+	  || GET_MODE (target) != tmode
+	  || !(*insn_data[icode].operand[0].predicate) (target, tmode))
+	target = gen_reg_rtx (tmode);
+    }
+
+  switch (arity)
+    {
+    case 0:
+      pat = GEN_FCN (icode) (target);
+      break;
+    case 1:
+      if (nonvoid)
+        pat = GEN_FCN (icode) (target, op[0]);
+      else
+	pat = GEN_FCN (icode) (op[0]);
+      break;
+    case 2:
+      if (nonvoid)
+	pat = GEN_FCN (icode) (target, op[0], op[1]);
+      else
+	pat = GEN_FCN (icode) (op[0], op[1]);
+      break;
+    default:
+      gcc_unreachable ();
+    }
+  if (!pat)
+    return NULL_RTX;
+  emit_insn (pat);
+
+  if (nonvoid)
+    return target;
+  else
+    return const0_rtx;
+}
+
+
 /* Output assembly code for the trampoline template to
    stdio stream FILE.
 
@@ -11008,6 +11493,11 @@
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY s390_return_in_memory
 
+#undef  TARGET_INIT_BUILTINS
+#define TARGET_INIT_BUILTINS s390_init_builtins
+#undef  TARGET_EXPAND_BUILTIN
+#define TARGET_EXPAND_BUILTIN s390_expand_builtin
+
 #undef TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
 #define TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA s390_output_addr_const_extra
 
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.h gcc-4.8.1/gcc/config/s390/s390.h
--- gcc-4.8.1.orig/gcc/config/s390/s390.h	2013-03-05 06:02:06.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/s390.h	2013-08-02 10:41:10.548493000 -0500
@@ -34,7 +34,8 @@
   PF_DFP = 16,
   PF_Z10 = 32,
   PF_Z196 = 64,
-  PF_ZEC12 = 128
+  PF_ZEC12 = 128,
+  PF_TX = 256
 };
 
 /* This is necessary to avoid a warning about comparing different enum
@@ -61,6 +62,8 @@
  	(s390_arch_flags & PF_Z196)
 #define TARGET_CPU_ZEC12 \
  	(s390_arch_flags & PF_ZEC12)
+#define TARGET_CPU_HTM \
+ 	(s390_arch_flags & PF_TX)
 
 /* These flags indicate that the generated code should run on a cpu
    providing the respective hardware facility when run in
@@ -78,6 +81,7 @@
        (TARGET_ZARCH && TARGET_CPU_Z196)
 #define TARGET_ZEC12 \
        (TARGET_ZARCH && TARGET_CPU_ZEC12)
+#define TARGET_HTM (TARGET_OPT_HTM)
 
 
 #define TARGET_AVOID_CMP_AND_BRANCH (s390_tune == PROCESSOR_2817_Z196)
@@ -93,23 +97,25 @@
 #define TARGET_TPF 0
 
 /* Target CPU builtins.  */
-#define TARGET_CPU_CPP_BUILTINS()			\
-  do							\
-    {							\
-      builtin_assert ("cpu=s390");			\
-      builtin_assert ("machine=s390");			\
-      builtin_define ("__s390__");			\
-      if (TARGET_ZARCH)					\
-	builtin_define ("__zarch__");			\
-      if (TARGET_64BIT)					\
-        builtin_define ("__s390x__");			\
-      if (TARGET_LONG_DOUBLE_128)			\
-        builtin_define ("__LONG_DOUBLE_128__");		\
-    }							\
+#define TARGET_CPU_CPP_BUILTINS()					\
+  do									\
+    {									\
+      builtin_assert ("cpu=s390");					\
+      builtin_assert ("machine=s390");					\
+      builtin_define ("__s390__");					\
+      if (TARGET_ZARCH)							\
+	builtin_define ("__zarch__");					\
+      if (TARGET_64BIT)							\
+        builtin_define ("__s390x__");					\
+      if (TARGET_LONG_DOUBLE_128)					\
+        builtin_define ("__LONG_DOUBLE_128__");				\
+      if (TARGET_HTM)							\
+	builtin_define ("__HTM__");					\
+    }									\
   while (0)
 
 #ifdef DEFAULT_TARGET_64BIT
-#define TARGET_DEFAULT             (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP)
+#define TARGET_DEFAULT             (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP | MASK_OPT_HTM)
 #else
 #define TARGET_DEFAULT             0
 #endif
@@ -164,6 +170,11 @@
 #define S390_TDC_INFINITY (S390_TDC_POSITIVE_INFINITY \
 			  | S390_TDC_NEGATIVE_INFINITY )
 
+/* This is used by float.h to define the float_t and double_t data
+   types.  For historical reasons both are double on s390 what cannot
+   be changed anymore.  */
+#define TARGET_FLT_EVAL_METHOD 1
+
 /* Target machine storage layout.  */
 
 /* Everything is big-endian.  */
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390intrin.h gcc-4.8.1/gcc/config/s390/s390intrin.h
--- gcc-4.8.1.orig/gcc/config/s390/s390intrin.h	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/s390intrin.h	2013-08-14 14:44:27.951575000 -0500
@@ -0,0 +1,33 @@
+/* S/390 System z specific intrinsics
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel (Andreas.Krebbel@de.ibm.com)
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef  _S390INTRIN_H
+#define _S390INTRIN_H
+
+#ifndef __s390__
+  #error s390intrin.h included on wrong platform/compiler
+#endif
+
+#ifdef __HTM__
+#include <htmintrin.h>
+#endif
+
+
+#endif /* _S390INTRIN_H*/
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.md gcc-4.8.1/gcc/config/s390/s390.md
--- gcc-4.8.1.orig/gcc/config/s390/s390.md	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/s390.md	2013-08-02 10:41:10.548493000 -0500
@@ -59,11 +59,17 @@
 (define_c_enum "unspec" [
    ; Miscellaneous
    UNSPEC_ROUND
-   UNSPEC_CCU_TO_INT
-   UNSPEC_CCZ_TO_INT
    UNSPEC_ICM
    UNSPEC_TIE
 
+   ; Convert CC into a str comparison result and copy it into an
+   ; integer register
+   ; cc0->0, cc1->1, cc2->-1, (cc3->-1)
+   UNSPEC_STRCMPCC_TO_INT
+
+   ; Copy CC as is into the lower 2 bits of an integer register
+   UNSPEC_CC_TO_INT
+
    ; GOT/PLT and lt-relative accesses
    UNSPEC_LTREL_OFFSET
    UNSPEC_LTREL_BASE
@@ -138,6 +144,15 @@
    ; Atomic Support
    UNSPECV_CAS
    UNSPECV_ATOMIC_OP
+
+   ; Transactional Execution support
+   UNSPECV_TBEGIN
+   UNSPECV_TBEGINC
+   UNSPECV_TEND
+   UNSPECV_TABORT
+   UNSPECV_ETND
+   UNSPECV_NTSTG
+   UNSPECV_PPA
   ])
 
 ;;
@@ -191,6 +206,9 @@
    (PFPO_OP1_TYPE_SHIFT           8)
   ])
 
+; Immediate operands for tbegin and tbeginc
+(define_constants [(TBEGIN_MASK  65292)]) ; 0xff0c
+(define_constants [(TBEGINC_MASK 65288)]) ; 0xff08
 
 ;; Instruction operand type as used in the Principles of Operation.
 ;; Used to determine defaults for length and other attribute values.
@@ -2246,19 +2264,19 @@
 
 (define_insn "movcc"
   [(set (match_operand:CC 0 "nonimmediate_operand" "=d,c,d,d,d,R,T")
-	(match_operand:CC 1 "nonimmediate_operand" "d,d,c,R,T,d,d"))]
+	(match_operand:CC 1 "nonimmediate_operand" " d,d,c,R,T,d,d"))]
   ""
   "@
    lr\t%0,%1
    tmh\t%1,12288
    ipm\t%0
-   st\t%0,%1
-   sty\t%0,%1
-   l\t%1,%0
-   ly\t%1,%0"
+   l\t%0,%1
+   ly\t%0,%1
+   st\t%1,%0
+   sty\t%1,%0"
   [(set_attr "op_type" "RR,RI,RRE,RX,RXY,RX,RXY")
-   (set_attr "type" "lr,*,*,store,store,load,load")
-   (set_attr "z10prop" "z10_fr_E1,z10_super,*,z10_rec,z10_rec,z10_fwd_A3,z10_fwd_A3")
+   (set_attr "type" "lr,*,*,load,load,store,store")
+   (set_attr "z10prop" "z10_fr_E1,z10_super,*,z10_fwd_A3,z10_fwd_A3,z10_rec,z10_rec")
    (set_attr "z196prop" "*,*,z196_ends,*,*,*,*")])
 
 ;
@@ -2578,7 +2596,7 @@
      (use (reg:SI 0))])
    (parallel
     [(set (match_operand:SI 0 "register_operand" "=d")
-	  (unspec:SI [(reg:CCU CC_REGNUM)] UNSPEC_CCU_TO_INT))
+	  (unspec:SI [(reg:CCU CC_REGNUM)] UNSPEC_STRCMPCC_TO_INT))
      (clobber (reg:CC CC_REGNUM))])]
   ""
 {
@@ -2820,7 +2838,7 @@
                      (match_dup 2)]
                      UNSPEC_TDC_INSN))
    (set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CCZ_TO_INT))]
+        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CC_TO_INT))]
   "TARGET_HARD_FLOAT"
 {
   operands[2] = GEN_INT (S390_TDC_SIGNBIT_SET);
@@ -2832,12 +2850,21 @@
                      (match_dup 2)]
                      UNSPEC_TDC_INSN))
    (set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CCZ_TO_INT))]
+        (unspec:SI [(reg:CCZ CC_REGNUM)] UNSPEC_CC_TO_INT))]
   "TARGET_HARD_FLOAT"
 {
   operands[2] = GEN_INT (S390_TDC_INFINITY);
 })
 
+(define_insn_and_split "*cc_to_int"
+  [(set (match_operand:SI 0 "register_operand" "=d")
+        (unspec:SI [(match_operand 1 "register_operand" "0")]
+                   UNSPEC_CC_TO_INT))]
+  "operands != NULL"
+  "#"
+  "reload_completed"
+  [(set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 28)))])
+
 ; This insn is used to generate all variants of the Test Data Class
 ; instruction, namely tcxb, tcdb, and tceb.  The insn's first operand
 ; is the register to be tested and the second one is the bit mask
@@ -2853,14 +2880,6 @@
    [(set_attr "op_type" "RXE")
     (set_attr "type"  "fsimp<mode>")])
 
-(define_insn_and_split "*ccz_to_int"
-  [(set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(match_operand:CCZ 1 "register_operand" "0")]
-                   UNSPEC_CCZ_TO_INT))]
-  ""
-  "#"
-  "reload_completed"
-  [(set (match_dup 0) (lshiftrt:SI (match_dup 0) (const_int 28)))])
 
 
 ;
@@ -3205,7 +3224,7 @@
 (define_insn_and_split "cmpint"
   [(set (match_operand:SI 0 "register_operand" "=d")
         (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                   UNSPEC_CCU_TO_INT))
+                   UNSPEC_STRCMPCC_TO_INT))
    (clobber (reg:CC CC_REGNUM))]
   ""
   "#"
@@ -3218,10 +3237,10 @@
 (define_insn_and_split "*cmpint_cc"
   [(set (reg CC_REGNUM)
         (compare (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                            UNSPEC_CCU_TO_INT)
+                            UNSPEC_STRCMPCC_TO_INT)
                  (const_int 0)))
    (set (match_operand:SI 0 "register_operand" "=d")
-        (unspec:SI [(match_dup 1)] UNSPEC_CCU_TO_INT))]
+        (unspec:SI [(match_dup 1)] UNSPEC_STRCMPCC_TO_INT))]
   "s390_match_ccmode (insn, CCSmode)"
   "#"
   "&& reload_completed"
@@ -3238,7 +3257,7 @@
 (define_insn_and_split "*cmpint_sign"
   [(set (match_operand:DI 0 "register_operand" "=d")
         (sign_extend:DI (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                                   UNSPEC_CCU_TO_INT)))
+                                   UNSPEC_STRCMPCC_TO_INT)))
    (clobber (reg:CC CC_REGNUM))]
   "TARGET_ZARCH"
   "#"
@@ -3252,11 +3271,11 @@
   [(set (reg CC_REGNUM)
         (compare (ashiftrt:DI (ashift:DI (subreg:DI
                    (unspec:SI [(match_operand:CCU 1 "register_operand" "0")]
-                              UNSPEC_CCU_TO_INT) 0)
+                              UNSPEC_STRCMPCC_TO_INT) 0)
                    (const_int 32)) (const_int 32))
                  (const_int 0)))
    (set (match_operand:DI 0 "register_operand" "=d")
-        (sign_extend:DI (unspec:SI [(match_dup 1)] UNSPEC_CCU_TO_INT)))]
+        (sign_extend:DI (unspec:SI [(match_dup 1)] UNSPEC_STRCMPCC_TO_INT)))]
   "s390_match_ccmode (insn, CCSmode) && TARGET_ZARCH"
   "#"
   "&& reload_completed"
@@ -5507,7 +5526,7 @@
 	(if_then_else:GPR
 	  (match_operator 1 "s390_comparison"
 	    [(match_operand 2 "cc_reg_operand"        " c,c, c, c, c, c, c")
-	     (const_int 0)])
+	     (match_operand 5 "const_int_operand"     "")])
 	  (match_operand:GPR 3 "nonimmediate_operand" " d,0,QS, 0, d, 0,QS")
 	  (match_operand:GPR 4 "nonimmediate_operand" " 0,d, 0,QS, 0, d,QS")))]
   "TARGET_Z196"
@@ -7907,7 +7926,8 @@
 (define_insn "*cjump_64"
   [(set (pc)
         (if_then_else
-          (match_operator 1 "s390_comparison" [(reg CC_REGNUM) (const_int 0)])
+          (match_operator 1 "s390_comparison" [(reg CC_REGNUM)
+					       (match_operand 2 "const_int_operand" "")])
           (label_ref (match_operand 0 "" ""))
           (pc)))]
   "TARGET_CPU_ZARCH"
@@ -7926,7 +7946,8 @@
 (define_insn "*cjump_31"
   [(set (pc)
         (if_then_else
-          (match_operator 1 "s390_comparison" [(reg CC_REGNUM) (const_int 0)])
+          (match_operator 1 "s390_comparison" [(reg CC_REGNUM)
+					       (match_operand 2 "const_int_operand" "")])
           (label_ref (match_operand 0 "" ""))
           (pc)))]
   "!TARGET_CPU_ZARCH"
@@ -9795,3 +9816,217 @@
   "cpsdr\t%0,%2,%1"
   [(set_attr "op_type"  "RRF")
    (set_attr "type"     "fsimp<mode>")])
+
+
+;;
+;;- Transactional execution instructions
+;;
+
+; This splitter helps combine to make use of CC directly when
+; comparing the integer result of a tbegin builtin with a constant.
+; The unspec is already removed by canonicalize_comparison. So this
+; splitters only job is to turn the PARALLEL into separate insns
+; again.  Unfortunately this only works with the very first cc/int
+; compare since combine is not able to deal with data flow across
+; basic block boundaries.
+
+; It needs to be an insn pattern as well since combine does not apply
+; the splitter directly.  Combine would only use it if it actually
+; would reduce the number of instructions.
+(define_insn_and_split "*ccraw_to_int"
+  [(set (pc)
+	(if_then_else
+	 (match_operator 0 "s390_eqne_operator"
+			 [(reg:CCRAW CC_REGNUM)
+			  (match_operand 1 "const_int_operand" "")])
+	 (label_ref (match_operand 2 "" ""))
+	 (pc)))
+   (set (match_operand:SI 3 "register_operand" "=d")
+	(unspec:SI [(reg:CCRAW CC_REGNUM)] UNSPEC_CC_TO_INT))]
+  ""
+  "#"
+  ""
+  [(set (match_dup 3)
+	(unspec:SI [(reg:CCRAW CC_REGNUM)] UNSPEC_CC_TO_INT))
+   (set (pc)
+	(if_then_else (match_op_dup 0 [(reg:CCRAW CC_REGNUM) (match_dup 1)])
+		      (label_ref (match_dup 2))
+		      (pc)))]
+  "")
+
+; Non-constrained transaction begin
+
+(define_expand "tbegin"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], NULL_RTX, true);
+  DONE;
+})
+
+(define_expand "tbegin_nofloat"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], NULL_RTX, false);
+  DONE;
+})
+
+(define_expand "tbegin_retry"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")
+   (match_operand 2 "const_int_operand")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], operands[2], true);
+  DONE;
+})
+
+(define_expand "tbegin_retry_nofloat"
+  [(match_operand:SI 0 "register_operand" "=d")
+   (match_operand:BLK 1 "memory_operand"  "=Q")
+   (match_operand 2 "const_int_operand")]
+  "TARGET_HTM"
+{
+  s390_expand_tbegin (operands[0], operands[1], operands[2], false);
+  DONE;
+})
+
+(define_insn "tbegin_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand"    "=Q")
+				(match_operand     1 "const_int_operand" " D")]
+			       UNSPECV_TBEGIN))
+   (clobber (reg:DF 16))
+   (clobber (reg:DF 17))
+   (clobber (reg:DF 18))
+   (clobber (reg:DF 19))
+   (clobber (reg:DF 20))
+   (clobber (reg:DF 21))
+   (clobber (reg:DF 22))
+   (clobber (reg:DF 23))
+   (clobber (reg:DF 24))
+   (clobber (reg:DF 25))
+   (clobber (reg:DF 26))
+   (clobber (reg:DF 27))
+   (clobber (reg:DF 28))
+   (clobber (reg:DF 29))
+   (clobber (reg:DF 30))
+   (clobber (reg:DF 31))]
+; CONST_OK_FOR_CONSTRAINT_P does not work with D constraint since D is
+; not supposed to be used for immediates (see genpreds.c).
+  "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
+  "tbegin\t%0,%x1"
+  [(set_attr "op_type" "SIL")])
+
+; Same as above but without the FPR clobbers
+(define_insn "tbegin_nofloat_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand"    "=Q")
+				(match_operand     1 "const_int_operand" " D")]
+			       UNSPECV_TBEGIN))]
+  "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
+  "tbegin\t%0,%x1"
+  [(set_attr "op_type" "SIL")])
+
+
+; Constrained transaction begin
+
+(define_expand "tbeginc"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(const_int TBEGINC_MASK)]
+			       UNSPECV_TBEGINC))]
+  "TARGET_HTM"
+  "")
+
+(define_insn "*tbeginc_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" " D")]
+			       UNSPECV_TBEGINC))]
+  "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
+  "tbeginc\t0,%x0"
+  [(set_attr "op_type" "SIL")])
+
+; Transaction end
+
+(define_expand "tend"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(const_int 0)] UNSPECV_TEND))
+   (set (match_operand:SI 0 "register_operand" "=d")
+	(unspec:SI [(reg:CCRAW CC_REGNUM)] UNSPEC_CC_TO_INT))]
+  "TARGET_HTM"
+  "")
+
+(define_insn "*tend_1"
+  [(set (reg:CCRAW CC_REGNUM)
+	(unspec_volatile:CCRAW [(const_int 0)] UNSPECV_TEND))]
+  "TARGET_HTM"
+  "tend"
+  [(set_attr "op_type" "S")])
+
+; Transaction abort
+
+(define_expand "tabort"
+  [(unspec_volatile [(match_operand 0 "shift_count_or_setmem_operand" "")]
+		    UNSPECV_TABORT)]
+  "TARGET_HTM && operands != NULL"
+{
+  if (CONST_INT_P (operands[0])
+      && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 255)
+    {
+      error ("Invalid transaction abort code: " HOST_WIDE_INT_PRINT_DEC
+	     ".  Values in range 0 through 255 are reserved.",
+	     INTVAL (operands[0]));
+      FAIL;
+    }
+})
+
+(define_insn "*tabort_1"
+  [(unspec_volatile [(match_operand 0 "shift_count_or_setmem_operand" "")]
+		    UNSPECV_TABORT)]
+  "TARGET_HTM && operands != NULL"
+  "tabort\t%Y0"
+  [(set_attr "op_type" "S")])
+
+; Transaction extract nesting depth
+
+(define_insn "etnd"
+  [(set (match_operand:SI 0 "register_operand" "=d")
+	(unspec_volatile:SI [(const_int 0)] UNSPECV_ETND))]
+  "TARGET_HTM"
+  "etnd\t%0"
+  [(set_attr "op_type" "RRE")])
+
+; Non-transactional store
+
+(define_insn "ntstg"
+  [(set (match_operand:DI 0 "memory_operand" "=RT")
+	(unspec_volatile:DI [(match_operand:DI 1 "register_operand" "d")]
+			    UNSPECV_NTSTG))]
+  "TARGET_HTM"
+  "ntstg\t%1,%0"
+  [(set_attr "op_type" "RXY")])
+
+; Transaction perform processor assist
+
+(define_expand "tx_assist"
+  [(set (match_dup 1) (const_int 0))
+   (unspec_volatile [(match_operand:SI 0 "register_operand" "d")
+		     (match_dup 1)
+		     (const_int 1)]
+		    UNSPECV_PPA)]
+  "TARGET_HTM"
+{
+  operands[1] = gen_reg_rtx (SImode);
+})
+
+(define_insn "*ppa"
+  [(unspec_volatile [(match_operand:SI 0 "register_operand" "d")
+		     (match_operand:SI 1 "register_operand" "d")
+		     (match_operand 2 "const_int_operand" "I")]
+		    UNSPECV_PPA)]
+  "TARGET_HTM && INTVAL (operands[2]) < 16"
+  "ppa\t%0,%1,1"
+  [(set_attr "op_type" "RRF")])
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-modes.def gcc-4.8.1/gcc/config/s390/s390-modes.def
--- gcc-4.8.1.orig/gcc/config/s390/s390-modes.def	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/s390-modes.def	2013-08-02 10:41:10.548493000 -0500
@@ -152,6 +152,14 @@
 operands were equal/unequal. The CCZ1 mode ensures the result can be
 effectively placed into a register.
 
+CCRAW
+
+The cc mode generated by a non-compare instruction.  The condition
+code mask for the CC consumer is determined by the comparison operator
+(only EQ and NE allowed) and the immediate value given as second
+operand to the operator.  For the other CC modes this value used to be
+0.
+
 */
 
 
@@ -172,3 +180,4 @@
 CC_MODE (CCT1);
 CC_MODE (CCT2);
 CC_MODE (CCT3);
+CC_MODE (CCRAW);
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390.opt gcc-4.8.1/gcc/config/s390/s390.opt
--- gcc-4.8.1.orig/gcc/config/s390/s390.opt	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/s390.opt	2013-08-02 10:41:10.548493000 -0500
@@ -104,6 +104,10 @@
 Target Report RejectNegative Negative(mlong-double-128) InverseMask(LONG_DOUBLE_128)
 Use 64-bit long double
 
+mhtm
+Target Report Mask(OPT_HTM)
+Use hardware transactional execution instructions
+
 mpacked-stack
 Target Report Mask(PACKED_STACK)
 Use packed stack layout
diff -Naur gcc-4.8.1.orig/gcc/config/s390/s390-protos.h gcc-4.8.1/gcc/config/s390/s390-protos.h
--- gcc-4.8.1.orig/gcc/config/s390/s390-protos.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/config/s390/s390-protos.h	2013-08-02 10:41:10.548493000 -0500
@@ -58,7 +58,7 @@
 extern enum machine_mode s390_tm_ccmode (rtx, rtx, bool);
 extern enum machine_mode s390_select_ccmode (enum rtx_code, rtx, rtx);
 extern rtx s390_emit_compare (enum rtx_code, rtx, rtx);
-extern void s390_emit_jump (rtx, rtx);
+extern rtx s390_emit_jump (rtx, rtx);
 extern bool symbolic_reference_mentioned_p (rtx);
 extern bool tls_symbolic_reference_mentioned_p (rtx);
 extern bool legitimate_la_operand_p (rtx);
@@ -87,6 +87,7 @@
 				rtx, rtx, bool);
 extern void s390_expand_atomic (enum machine_mode, enum rtx_code,
 				rtx, rtx, rtx, bool);
+extern void s390_expand_tbegin (rtx, rtx, rtx, bool);
 extern rtx s390_return_addr_rtx (int, rtx);
 extern rtx s390_back_chain_rtx (void);
 extern rtx s390_emit_call (rtx, rtx, rtx, rtx);
diff -Naur gcc-4.8.1.orig/gcc/config/sh/sh.md gcc-4.8.1/gcc/config/sh/sh.md
--- gcc-4.8.1.orig/gcc/config/sh/sh.md	2013-05-06 14:53:56.000000000 -0500
+++ gcc-4.8.1/gcc/config/sh/sh.md	2013-06-09 17:02:28.968408000 -0500
@@ -12073,10 +12073,10 @@
 
 ;; FMA (fused multiply-add) patterns
 (define_expand "fmasf4"
-  [(set (match_operand:SF 0 "fp_arith_reg_operand" "")
-	(fma:SF (match_operand:SF 1 "fp_arith_reg_operand" "")
-		(match_operand:SF 2 "fp_arith_reg_operand" "")
-		(match_operand:SF 3 "fp_arith_reg_operand" "")))]
+  [(set (match_operand:SF 0 "fp_arith_reg_operand")
+	(fma:SF (match_operand:SF 1 "fp_arith_reg_operand")
+		(match_operand:SF 2 "fp_arith_reg_operand")
+		(match_operand:SF 3 "fp_arith_reg_operand")))]
   "TARGET_SH2E || TARGET_SHMEDIA_FPU"
 {
   if (TARGET_SH2E)
@@ -12107,6 +12107,43 @@
   "fmac.s %1, %2, %0"
   [(set_attr "type" "fparith_media")])
 
+;; For some cases such as 'a * b + a' the FMA pattern is not generated by
+;; previous transformations.  If FMA is generally allowed, let the combine
+;; pass utilize it.
+(define_insn_and_split "*fmasf4"
+  [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
+	(plus:SF (mult:SF (match_operand:SF 1 "fp_arith_reg_operand" "%w")
+			  (match_operand:SF 2 "fp_arith_reg_operand" "f"))
+		 (match_operand:SF 3 "arith_reg_operand" "0")))
+   (use (match_operand:PSI 4 "fpscr_operand"))]
+  "TARGET_SH2E && flag_fp_contract_mode != FP_CONTRACT_OFF"
+  "fmac	%1,%2,%0"
+  "&& can_create_pseudo_p ()"
+  [(parallel [(set (match_dup 0)
+		   (fma:SF (match_dup 1) (match_dup 2) (match_dup 3)))
+	      (use (match_dup 4))])]
+{
+  /* Change 'b * a + a' into 'a * b + a'.
+     This is better for register allocation.  */
+  if (REGNO (operands[2]) == REGNO (operands[3]))
+    {
+      rtx tmp = operands[1];
+      operands[1] = operands[2];
+      operands[2] = tmp;
+    }
+}
+  [(set_attr "type" "fp")
+   (set_attr "fp_mode" "single")])
+
+(define_insn "*fmasf4_media"
+  [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
+	(plus:SF (mult:SF (match_operand:SF 1 "fp_arith_reg_operand" "%f")
+			  (match_operand:SF 2 "fp_arith_reg_operand" "f"))
+		 (match_operand:SF 3 "fp_arith_reg_operand" "0")))]
+  "TARGET_SHMEDIA_FPU && flag_fp_contract_mode != FP_CONTRACT_OFF"
+  "fmac.s %1, %2, %0"
+  [(set_attr "type" "fparith_media")])
+
 (define_expand "divsf3"
   [(set (match_operand:SF 0 "arith_reg_operand" "")
 	(div:SF (match_operand:SF 1 "arith_reg_operand" "")
diff -Naur gcc-4.8.1.orig/gcc/config/sparc/sparc.c gcc-4.8.1/gcc/config/sparc/sparc.c
--- gcc-4.8.1.orig/gcc/config/sparc/sparc.c	2013-04-15 03:31:12.000000000 -0500
+++ gcc-4.8.1/gcc/config/sparc/sparc.c	2013-08-02 16:42:26.734213000 -0500
@@ -11174,6 +11174,11 @@
       /* Total Store Ordering: all memory transactions with store semantics
 	 are followed by an implied StoreStore.  */
       implied |= StoreStore;
+
+      /* If we're not looking for a raw barrer (before+after), then atomic
+	 operations get the benefit of being both load and store.  */
+      if (load_store == 3 && before_after == 1)
+	implied |= StoreLoad;
       /* FALLTHRU */
 
     case SMM_PSO:
diff -Naur gcc-4.8.1.orig/gcc/config.gcc gcc-4.8.1/gcc/config.gcc
--- gcc-4.8.1.orig/gcc/config.gcc	2013-03-13 04:47:41.000000000 -0500
+++ gcc-4.8.1/gcc/config.gcc	2013-08-02 10:41:10.548493000 -0500
@@ -452,6 +452,7 @@
 	cpu_type=s390
 	need_64bit_hwint=yes
 	extra_options="${extra_options} fused-madd.opt"
+	extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
 	;;
 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
 sh[123456789lbe]*-*-* | sh-*-*)
@@ -734,6 +735,7 @@
     yes) thread_file='rtems' ;;
   esac
   extra_options="${extra_options} rtems.opt"
+  default_use_cxa_atexit=yes
   use_gcc_stdint=wrap
   ;;
 *-*-uclinux*)
@@ -2066,20 +2068,24 @@
 	extra_options="${extra_options} rs6000/sysv4.opt"
 	tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm"
 	;;
-powerpc-*-linux* | powerpc64-*-linux*)
+powerpc*-*-linux*)
 	tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h"
 	extra_options="${extra_options} rs6000/sysv4.opt"
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+	case ${target} in
+	    powerpc*le-*-*)
+	    tm_file="${tm_file} rs6000/sysv4le.h" ;;
+	esac
 	maybe_biarch=yes
 	case ${target} in
-	    powerpc64-*-linux*spe* | powerpc64-*-linux*paired*)
+	    powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
 	    	echo "*** Configuration ${target} not supported" 1>&2
 		exit 1
 		;;
-	    powerpc-*-linux*spe* | powerpc-*-linux*paired*)
+	    powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
 		maybe_biarch=
 		;;
-	    powerpc64-*-linux*)
+	    powerpc64*-*-linux*)
 	    	test x$with_cpu != x || cpu_is_64bit=yes
 		maybe_biarch=always
 		;;
diff -Naur gcc-4.8.1.orig/gcc/config.in gcc-4.8.1/gcc/config.in
--- gcc-4.8.1.orig/gcc/config.in	2013-05-31 04:09:26.000000000 -0500
+++ gcc-4.8.1/gcc/config.in	2013-06-18 20:18:38.348158000 -0500
@@ -1228,7 +1228,7 @@
 #endif
 
 
-/* Define if your AIX linker supports a large TOC. */
+/* Define if your PowerPC64 linker supports a large TOC. */
 #ifndef USED_FOR_TARGET
 #undef HAVE_LD_LARGE_TOC
 #endif
diff -Naur gcc-4.8.1.orig/gcc/configure gcc-4.8.1/gcc/configure
--- gcc-4.8.1.orig/gcc/configure	2013-05-08 06:36:36.000000000 -0500
+++ gcc-4.8.1/gcc/configure	2013-06-18 20:18:38.348158000 -0500
@@ -23281,33 +23281,7 @@
 	tls_first_major=0
 	tls_first_minor=0
 	;;
-  powerpc-*-*)
-    conftest_s='
-	.section ".tdata","awT",@progbits
-	.align 2
-ld0:	.space 4
-ld1:	.space 4
-x1:	.space 4
-x2:	.space 4
-x3:	.space 4
-	.text
-	addi 3,31,ld0@got@tlsgd
-	bl __tls_get_addr
-	addi 3,31,x1@got@tlsld
-	bl __tls_get_addr
-	addi 9,3,x1@dtprel
-	addis 9,3,x2@dtprel@ha
-	addi 9,9,x2@dtprel@l
-	lwz 9,x3@got@tprel(31)
-	add 9,9,x@tls
-	addi 9,2,x1@tprel
-	addis 9,2,x2@tprel@ha
-	addi 9,9,x2@tprel@l'
-	tls_first_major=2
-	tls_first_minor=14
-	tls_as_opt="-a32 --fatal-warnings"
-	;;
-  powerpc64-*-*)
+  powerpc64*-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
 	.align 3
@@ -23341,6 +23315,32 @@
 	tls_first_minor=14
 	tls_as_opt="-a64 --fatal-warnings"
 	;;
+  powerpc*-*-*)
+    conftest_s='
+	.section ".tdata","awT",@progbits
+	.align 2
+ld0:	.space 4
+ld1:	.space 4
+x1:	.space 4
+x2:	.space 4
+x3:	.space 4
+	.text
+	addi 3,31,ld0@got@tlsgd
+	bl __tls_get_addr
+	addi 3,31,x1@got@tlsld
+	bl __tls_get_addr
+	addi 9,3,x1@dtprel
+	addis 9,3,x2@dtprel@ha
+	addi 9,9,x2@dtprel@l
+	lwz 9,x3@got@tprel(31)
+	add 9,9,x@tls
+	addi 9,2,x1@tprel
+	addis 9,2,x2@tprel@ha
+	addi 9,9,x2@tprel@l'
+	tls_first_major=2
+	tls_first_minor=14
+	tls_as_opt="-a32 --fatal-warnings"
+	;;
   s390-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
@@ -26472,6 +26472,9 @@
 case "$target:$tm_file" in
   powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
   case "$target" in
+     *le-*-linux*)
+     emul_name="-melf64lppc"
+      ;;
      *-*-linux*)
      emul_name="-melf64ppc"
       ;;
diff -Naur gcc-4.8.1.orig/gcc/configure.ac gcc-4.8.1/gcc/configure.ac
--- gcc-4.8.1.orig/gcc/configure.ac	2013-05-08 06:36:36.000000000 -0500
+++ gcc-4.8.1/gcc/configure.ac	2013-06-18 20:18:38.348158000 -0500
@@ -3044,33 +3044,7 @@
 	tls_first_major=0
 	tls_first_minor=0
 	;;
-  powerpc-*-*)
-    conftest_s='
-	.section ".tdata","awT",@progbits
-	.align 2
-ld0:	.space 4
-ld1:	.space 4
-x1:	.space 4
-x2:	.space 4
-x3:	.space 4
-	.text
-	addi 3,31,ld0@got@tlsgd
-	bl __tls_get_addr
-	addi 3,31,x1@got@tlsld
-	bl __tls_get_addr
-	addi 9,3,x1@dtprel
-	addis 9,3,x2@dtprel@ha
-	addi 9,9,x2@dtprel@l
-	lwz 9,x3@got@tprel(31)
-	add 9,9,x@tls
-	addi 9,2,x1@tprel
-	addis 9,2,x2@tprel@ha
-	addi 9,9,x2@tprel@l'
-	tls_first_major=2
-	tls_first_minor=14
-	tls_as_opt="-a32 --fatal-warnings"
-	;;
-  powerpc64-*-*)
+  powerpc64*-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
 	.align 3
@@ -3104,6 +3078,32 @@
 	tls_first_minor=14
 	tls_as_opt="-a64 --fatal-warnings"
 	;;
+  powerpc*-*-*)
+    conftest_s='
+	.section ".tdata","awT",@progbits
+	.align 2
+ld0:	.space 4
+ld1:	.space 4
+x1:	.space 4
+x2:	.space 4
+x3:	.space 4
+	.text
+	addi 3,31,ld0@got@tlsgd
+	bl __tls_get_addr
+	addi 3,31,x1@got@tlsld
+	bl __tls_get_addr
+	addi 9,3,x1@dtprel
+	addis 9,3,x2@dtprel@ha
+	addi 9,9,x2@dtprel@l
+	lwz 9,x3@got@tprel(31)
+	add 9,9,x@tls
+	addi 9,2,x1@tprel
+	addis 9,2,x2@tprel@ha
+	addi 9,9,x2@tprel@l'
+	tls_first_major=2
+	tls_first_minor=14
+	tls_as_opt="-a32 --fatal-warnings"
+	;;
   s390-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
@@ -4507,6 +4507,9 @@
 case "$target:$tm_file" in
   powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
   case "$target" in
+     *le-*-linux*)
+     emul_name="-melf64lppc"
+      ;;
      *-*-linux*)
      emul_name="-melf64ppc"
       ;;
@@ -4611,7 +4614,7 @@
     ])
     if test x"$gcc_cv_ld_large_toc" = xyes; then
       AC_DEFINE(HAVE_LD_LARGE_TOC, 1,
-    [Define if your AIX linker supports a large TOC.])
+    [Define if your PowerPC64 linker supports a large TOC.])
     fi
     ;;
 esac
diff -Naur gcc-4.8.1.orig/gcc/cp/call.c gcc-4.8.1/gcc/cp/call.c
--- gcc-4.8.1.orig/gcc/cp/call.c	2013-05-14 07:51:17.000000000 -0500
+++ gcc-4.8.1/gcc/cp/call.c	2013-07-25 10:07:27.406614000 -0500
@@ -6195,8 +6195,8 @@
   if (convs->check_narrowing)
     check_narrowing (totype, expr);
 
-  if (issue_conversion_warnings && (complain & tf_warning))
-    expr = convert_and_check (totype, expr);
+  if (issue_conversion_warnings)
+    expr = cp_convert_and_check (totype, expr, complain);
   else
     expr = convert (totype, expr);
 
@@ -6390,7 +6390,7 @@
   push_defarg_context (fn);
 
   if (fn && DECL_TEMPLATE_INFO (fn))
-    arg = tsubst_default_argument (fn, type, arg);
+    arg = tsubst_default_argument (fn, type, arg, complain);
 
   /* Due to:
 
diff -Naur gcc-4.8.1.orig/gcc/cp/class.c gcc-4.8.1/gcc/cp/class.c
--- gcc-4.8.1.orig/gcc/cp/class.c	2013-04-01 14:05:21.000000000 -0500
+++ gcc-4.8.1/gcc/cp/class.c	2013-07-05 05:23:08.653887000 -0500
@@ -4574,15 +4574,20 @@
 static void
 deduce_noexcept_on_destructors (tree t)
 {
-  tree fns;
-
   /* If for some reason we don't have a CLASSTYPE_METHOD_VEC, we bail
      out now.  */
   if (!CLASSTYPE_METHOD_VEC (t))
     return;
 
-  for (fns = CLASSTYPE_DESTRUCTORS (t); fns; fns = OVL_NEXT (fns))
+  bool saved_nontrivial_dtor = TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t);
+
+  /* Avoid early exit from synthesized_method_walk (c++/57645).  */
+  TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = true;
+
+  for (tree fns = CLASSTYPE_DESTRUCTORS (t); fns; fns = OVL_NEXT (fns))
     deduce_noexcept_on_destructor (OVL_CURRENT (fns));
+
+  TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) = saved_nontrivial_dtor;
 }
 
 /* Subroutine of set_one_vmethod_tm_attributes.  Search base classes
@@ -4833,6 +4838,44 @@
   return false;
 }
 
+/* TYPE is being used as a virtual base, and has a non-trivial move
+   assignment.  Return true if this is due to there being a user-provided
+   move assignment in TYPE or one of its subobjects; if there isn't, then
+   multiple move assignment can't cause any harm.  */
+
+bool
+vbase_has_user_provided_move_assign (tree type)
+{
+  /* Does the type itself have a user-provided move assignment operator?  */
+  for (tree fns
+	 = lookup_fnfields_slot_nolazy (type, ansi_assopname (NOP_EXPR));
+       fns; fns = OVL_NEXT (fns))
+    {
+      tree fn = OVL_CURRENT (fns);
+      if (move_fn_p (fn) && user_provided_p (fn))
+	return true;
+    }
+
+  /* Do any of its bases?  */
+  tree binfo = TYPE_BINFO (type);
+  tree base_binfo;
+  for (int i = 0; BINFO_BASE_ITERATE (binfo, i, base_binfo); ++i)
+    if (vbase_has_user_provided_move_assign (BINFO_TYPE (base_binfo)))
+      return true;
+
+  /* Or non-static data members?  */
+  for (tree field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field))
+    {
+      if (TREE_CODE (field) == FIELD_DECL
+	  && CLASS_TYPE_P (TREE_TYPE (field))
+	  && vbase_has_user_provided_move_assign (TREE_TYPE (field)))
+	return true;
+    }
+
+  /* Seems not.  */
+  return false;
+}
+
 /* If default-initialization leaves part of TYPE uninitialized, returns
    a DECL for the field or TYPE itself (DR 253).  */
 
diff -Naur gcc-4.8.1.orig/gcc/cp/cp-tree.h gcc-4.8.1/gcc/cp/cp-tree.h
--- gcc-4.8.1.orig/gcc/cp/cp-tree.h	2013-04-24 10:42:20.000000000 -0500
+++ gcc-4.8.1/gcc/cp/cp-tree.h	2013-08-20 07:59:37.559809000 -0500
@@ -1211,17 +1211,20 @@
 /* The _DECL for this _TYPE.  */
 #define TYPE_MAIN_DECL(NODE) (TYPE_STUB_DECL (TYPE_MAIN_VARIANT (NODE)))
 
-/* Nonzero if T is a class (or struct or union) type.  Also nonzero
-   for template type parameters, typename types, and instantiated
-   template template parameters.  Keep these checks in ascending code
-   order.  */
-#define MAYBE_CLASS_TYPE_P(T)					\
+/* Nonzero if T is a type that could resolve to any kind of concrete type
+   at instantiation time.  */
+#define WILDCARD_TYPE_P(T)				\
   (TREE_CODE (T) == TEMPLATE_TYPE_PARM			\
    || TREE_CODE (T) == TYPENAME_TYPE			\
    || TREE_CODE (T) == TYPEOF_TYPE			\
    || TREE_CODE (T) == BOUND_TEMPLATE_TEMPLATE_PARM	\
-   || TREE_CODE (T) == DECLTYPE_TYPE			\
-   || CLASS_TYPE_P (T))
+   || TREE_CODE (T) == DECLTYPE_TYPE)
+
+/* Nonzero if T is a class (or struct or union) type.  Also nonzero
+   for template type parameters, typename types, and instantiated
+   template template parameters.  Keep these checks in ascending code
+   order.  */
+#define MAYBE_CLASS_TYPE_P(T) (WILDCARD_TYPE_P (T) || CLASS_TYPE_P (T))
 
 /* Set CLASS_TYPE_P for T to VAL.  T must be a class, struct, or
    union type.  */
@@ -5057,6 +5060,7 @@
 extern bool user_provided_p			(tree);
 extern bool type_has_user_provided_constructor  (tree);
 extern bool type_has_user_provided_default_constructor (tree);
+extern bool vbase_has_user_provided_move_assign (tree);
 extern tree default_init_uninitialized_part (tree);
 extern bool trivial_default_constructor_is_constexpr (tree);
 extern bool type_has_constexpr_default_constructor (tree);
@@ -5177,7 +5181,7 @@
 extern void revert_static_member_fn		(tree);
 extern void fixup_anonymous_aggr		(tree);
 extern tree compute_array_index_type		(tree, tree, tsubst_flags_t);
-extern tree check_default_argument		(tree, tree);
+extern tree check_default_argument		(tree, tree, tsubst_flags_t);
 typedef int (*walk_namespaces_fn)		(tree, void *);
 extern int walk_namespaces			(walk_namespaces_fn,
 						 void *);
@@ -5452,7 +5456,8 @@
 extern tree most_specialized_instantiation	(tree);
 extern void print_candidates			(tree);
 extern void instantiate_pending_templates	(int);
-extern tree tsubst_default_argument		(tree, tree, tree);
+extern tree tsubst_default_argument		(tree, tree, tree,
+						 tsubst_flags_t);
 extern tree tsubst (tree, tree, tsubst_flags_t, tree);
 extern tree tsubst_copy_and_build		(tree, tree, tsubst_flags_t,
 						 tree, bool, bool);
@@ -5585,6 +5590,7 @@
 extern void stop_deferring_access_checks	(void);
 extern void pop_deferring_access_checks		(void);
 extern vec<deferred_access_check, va_gc> *get_deferred_access_checks (void);
+extern void reopen_deferring_access_checks (vec<deferred_access_check, va_gc> *);
 extern void pop_to_parent_deferring_access_checks (void);
 extern bool perform_access_checks (vec<deferred_access_check, va_gc> *,
 				   tsubst_flags_t);
diff -Naur gcc-4.8.1.orig/gcc/cp/cvt.c gcc-4.8.1/gcc/cp/cvt.c
--- gcc-4.8.1.orig/gcc/cp/cvt.c	2013-02-20 03:02:35.000000000 -0600
+++ gcc-4.8.1/gcc/cp/cvt.c	2013-08-20 07:59:37.559809000 -0500
@@ -620,6 +620,9 @@
 
   if (TREE_TYPE (expr) == type)
     return expr;
+
+  if (TREE_CODE (expr) == SIZEOF_EXPR)
+    expr = maybe_constant_value (expr);
   
   result = cp_convert (type, expr, complain);
 
@@ -1580,17 +1583,6 @@
       if (DECL_NONCONVERTING_P (cand))
 	continue;
 
-      if (TREE_CODE (cand) == TEMPLATE_DECL)
-	{
-	  if (complain)
-	    {
-	      error ("ambiguous default type conversion from %qT",
-		     basetype);
-	      error ("  candidate conversions include %qD", cand);
-	    }
-	  return error_mark_node;
-	}
-
       candidate = non_reference (TREE_TYPE (TREE_TYPE (cand)));
 
       switch (TREE_CODE (candidate))
@@ -1624,11 +1616,23 @@
 	  break;
 
 	default:
+	  /* A wildcard could be instantiated to match any desired
+	     type, but we can't deduce the template argument.  */
+	  if (WILDCARD_TYPE_P (candidate))
+	    win = true;
 	  break;
 	}
 
       if (win)
 	{
+	  if (TREE_CODE (cand) == TEMPLATE_DECL)
+	    {
+	      if (complain)
+		error ("default type conversion can't deduce template"
+		       " argument for %qD", cand);
+	      return error_mark_node;
+	    }
+
 	  if (winner)
 	    {
 	      if (complain)
diff -Naur gcc-4.8.1.orig/gcc/cp/decl.c gcc-4.8.1/gcc/cp/decl.c
--- gcc-4.8.1.orig/gcc/cp/decl.c	2013-05-16 10:09:07.000000000 -0500
+++ gcc-4.8.1/gcc/cp/decl.c	2013-07-25 10:07:27.406614000 -0500
@@ -10878,7 +10878,7 @@
    DECL, if there is no DECL available.  */
 
 tree
-check_default_argument (tree decl, tree arg)
+check_default_argument (tree decl, tree arg, tsubst_flags_t complain)
 {
   tree var;
   tree decl_type;
@@ -10910,13 +10910,14 @@
      A default argument expression is implicitly converted to the
      parameter type.  */
   ++cp_unevaluated_operand;
-  perform_implicit_conversion_flags (decl_type, arg, tf_warning_or_error,
+  perform_implicit_conversion_flags (decl_type, arg, complain,
 				     LOOKUP_IMPLICIT);
   --cp_unevaluated_operand;
 
   if (warn_zero_as_null_pointer_constant
       && TYPE_PTR_OR_PTRMEM_P (decl_type)
       && null_ptr_cst_p (arg)
+      && (complain & tf_warning)
       && maybe_warn_zero_as_null_pointer_constant (arg, input_location))
     return nullptr_node;
 
@@ -10930,10 +10931,14 @@
   var = cp_walk_tree_without_duplicates (&arg, local_variable_p_walkfn, NULL);
   if (var)
     {
-      if (DECL_NAME (var) == this_identifier)
-	permerror (input_location, "default argument %qE uses %qD", arg, var);
-      else
-	error ("default argument %qE uses local variable %qD", arg, var);
+      if (complain & tf_warning_or_error)
+	{
+	  if (DECL_NAME (var) == this_identifier)
+	    permerror (input_location, "default argument %qE uses %qD",
+		       arg, var);
+	  else
+	    error ("default argument %qE uses local variable %qD", arg, var);
+	}
       return error_mark_node;
     }
 
@@ -11084,7 +11089,7 @@
 	  if (any_error)
 	    init = NULL_TREE;
 	  else if (init && !processing_template_decl)
-	    init = check_default_argument (decl, init);
+	    init = check_default_argument (decl, init, tf_warning_or_error);
 	}
 
       DECL_CHAIN (decl) = decls;
diff -Naur gcc-4.8.1.orig/gcc/cp/init.c gcc-4.8.1/gcc/cp/init.c
--- gcc-4.8.1.orig/gcc/cp/init.c	2013-04-25 11:25:04.000000000 -0500
+++ gcc-4.8.1/gcc/cp/init.c	2013-07-13 20:06:02.832708000 -0500
@@ -3524,6 +3524,8 @@
 
       /* Clear out INIT so that we don't get confused below.  */
       init = NULL_TREE;
+      /* Any elements without explicit initializers get {}.  */
+      explicit_value_init_p = true;
     }
   else if (from_array)
     {
diff -Naur gcc-4.8.1.orig/gcc/cp/method.c gcc-4.8.1/gcc/cp/method.c
--- gcc-4.8.1.orig/gcc/cp/method.c	2013-02-12 14:47:15.000000000 -0600
+++ gcc-4.8.1/gcc/cp/method.c	2013-05-31 08:03:45.258613000 -0500
@@ -1340,7 +1340,8 @@
       if (diag && assign_p && move_p
 	  && BINFO_VIRTUAL_P (base_binfo)
 	  && rval && TREE_CODE (rval) == FUNCTION_DECL
-	  && move_fn_p (rval) && !trivial_fn_p (rval))
+	  && move_fn_p (rval) && !trivial_fn_p (rval)
+	  && vbase_has_user_provided_move_assign (basetype))
 	warning (OPT_Wvirtual_move_assign,
 		 "defaulted move assignment for %qT calls a non-trivial "
 		 "move assignment operator for virtual base %qT",
diff -Naur gcc-4.8.1.orig/gcc/cp/name-lookup.c gcc-4.8.1/gcc/cp/name-lookup.c
--- gcc-4.8.1.orig/gcc/cp/name-lookup.c	2013-02-27 12:13:24.000000000 -0600
+++ gcc-4.8.1/gcc/cp/name-lookup.c	2013-08-17 20:07:02.824495000 -0500
@@ -3015,8 +3015,10 @@
   if (name == error_mark_node)
     return false;
 
-  /* Check for invalid member names.  */
-  gcc_assert (TYPE_BEING_DEFINED (current_class_type));
+  /* Check for invalid member names.  But don't worry about a default
+     argument-scope lambda being pushed after the class is complete.  */
+  gcc_assert (TYPE_BEING_DEFINED (current_class_type)
+	      || LAMBDA_TYPE_P (TREE_TYPE (decl)));
   /* Check that we're pushing into the right binding level.  */
   gcc_assert (current_class_type == class_binding_level->this_entity);
 
diff -Naur gcc-4.8.1.orig/gcc/cp/parser.c gcc-4.8.1/gcc/cp/parser.c
--- gcc-4.8.1.orig/gcc/cp/parser.c	2013-05-14 15:37:48.000000000 -0500
+++ gcc-4.8.1/gcc/cp/parser.c	2013-07-25 10:07:27.406614000 -0500
@@ -5438,11 +5438,18 @@
 	/* Restore the old message.  */
 	parser->type_definition_forbidden_message = saved_message;
 
+	bool saved_greater_than_is_operator_p
+	  = parser->greater_than_is_operator_p;
+	parser->greater_than_is_operator_p = true;
+
 	/* And the expression which is being cast.  */
 	cp_parser_require (parser, CPP_OPEN_PAREN, RT_OPEN_PAREN);
 	expression = cp_parser_expression (parser, /*cast_p=*/true, & idk);
 	cp_parser_require (parser, CPP_CLOSE_PAREN, RT_CLOSE_PAREN);
 
+	parser->greater_than_is_operator_p
+	  = saved_greater_than_is_operator_p;
+
 	/* Only type conversions to integral or enumeration types
 	   can be used in constant-expressions.  */
 	if (!cast_valid_in_integral_constant_expression_p (type)
@@ -9595,10 +9602,7 @@
 	range_expr = error_mark_node;
       stmt = begin_range_for_stmt (scope, init);
       finish_range_for_decl (stmt, range_decl, range_expr);
-      if (range_expr != error_mark_node
-	  && !type_dependent_expression_p (range_expr)
-	  /* The length of an array might be dependent.  */
-	  && COMPLETE_TYPE_P (complete_type (TREE_TYPE (range_expr)))
+      if (!type_dependent_expression_p (range_expr)
 	  /* do_auto_deduction doesn't mess with template init-lists.  */
 	  && !BRACE_ENCLOSED_INITIALIZER_P (range_expr))
 	do_range_for_auto_deduction (range_decl, range_expr);
@@ -16982,6 +16986,11 @@
 {
   cp_ref_qualifier ref_qual = REF_QUAL_NONE;
   cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+  /* Don't try to parse bitwise '&' as a ref-qualifier (c++/57532).  */
+  if (cxx_dialect < cxx11 && cp_parser_parsing_tentatively (parser))
+    return ref_qual;
+
   switch (token->type)
     {
     case CPP_AND:
@@ -22557,7 +22566,8 @@
       /* In a non-template class, check conversions now.  In a template,
 	 we'll wait and instantiate these as needed.  */
       if (TREE_CODE (decl) == PARM_DECL)
-	parsed_arg = check_default_argument (parmtype, parsed_arg);
+	parsed_arg = check_default_argument (parmtype, parsed_arg,
+					     tf_warning_or_error);
       else
 	{
 	  int flags = LOOKUP_IMPLICIT;
diff -Naur gcc-4.8.1.orig/gcc/cp/pt.c gcc-4.8.1/gcc/cp/pt.c
--- gcc-4.8.1.orig/gcc/cp/pt.c	2013-05-24 08:25:44.000000000 -0500
+++ gcc-4.8.1/gcc/cp/pt.c	2013-07-25 10:07:27.406614000 -0500
@@ -138,6 +138,7 @@
 					     tree);
 static int type_unification_real (tree, tree, tree, const tree *,
 				  unsigned int, int, unification_kind_t, int,
+				  vec<deferred_access_check, va_gc> **,
 				  bool);
 static void note_template_header (int);
 static tree convert_nontype_argument_function (tree, tree);
@@ -183,7 +184,7 @@
 					   tree, tree);
 static bool template_template_parm_bindings_ok_p (tree, tree);
 static int template_args_equal (tree, tree);
-static void tsubst_default_arguments (tree);
+static void tsubst_default_arguments (tree, tsubst_flags_t);
 static tree for_each_template_parm_r (tree *, int *, void *);
 static tree copy_default_args_to_explicit_spec_1 (tree, tree);
 static void copy_default_args_to_explicit_spec (tree);
@@ -5612,6 +5613,10 @@
 	  else
 	    return NULL_TREE;
 	}
+
+      /* Avoid typedef problems.  */
+      if (TREE_TYPE (expr) != type)
+	expr = fold_convert (type, expr);
     }
   /* [temp.arg.nontype]/5, bullet 2
 
@@ -9859,7 +9864,7 @@
    FN), which has the indicated TYPE.  */
 
 tree
-tsubst_default_argument (tree fn, tree type, tree arg)
+tsubst_default_argument (tree fn, tree type, tree arg, tsubst_flags_t complain)
 {
   tree saved_class_ptr = NULL_TREE;
   tree saved_class_ref = NULL_TREE;
@@ -9899,7 +9904,7 @@
      stack.  */
   ++function_depth;
   arg = tsubst_expr (arg, DECL_TI_ARGS (fn),
-		     tf_warning_or_error, NULL_TREE,
+		     complain, NULL_TREE,
 		     /*integral_constant_expression_p=*/false);
   --function_depth;
   pop_deferring_access_checks();
@@ -9911,12 +9916,13 @@
       cp_function_chain->x_current_class_ref = saved_class_ref;
     }
 
-  if (errorcount+sorrycount > errs)
+  if (errorcount+sorrycount > errs
+      && (complain & tf_warning_or_error))
     inform (input_location,
 	    "  when instantiating default argument for call to %D", fn);
 
   /* Make sure the default argument is reasonable.  */
-  arg = check_default_argument (type, arg);
+  arg = check_default_argument (type, arg, complain);
 
   pop_access_scope (fn);
 
@@ -9926,7 +9932,7 @@
 /* Substitute into all the default arguments for FN.  */
 
 static void
-tsubst_default_arguments (tree fn)
+tsubst_default_arguments (tree fn, tsubst_flags_t complain)
 {
   tree arg;
   tree tmpl_args;
@@ -9947,7 +9953,8 @@
     if (TREE_PURPOSE (arg))
       TREE_PURPOSE (arg) = tsubst_default_argument (fn,
 						    TREE_VALUE (arg),
-						    TREE_PURPOSE (arg));
+						    TREE_PURPOSE (arg),
+						    complain);
 }
 
 /* Substitute the ARGS into the T, which is a _DECL.  Return the
@@ -10298,7 +10305,7 @@
 	    if (!member
 		&& !PRIMARY_TEMPLATE_P (gen_tmpl)
 		&& !uses_template_parms (argvec))
-	      tsubst_default_arguments (r);
+	      tsubst_default_arguments (r, complain);
 	  }
 	else
 	  DECL_TEMPLATE_INFO (r) = NULL_TREE;
@@ -12507,6 +12514,9 @@
     case TYPE_DECL:
       return tsubst (t, args, complain, in_decl);
 
+    case USING_DECL:
+      t = DECL_NAME (t);
+      /* Fall through.  */
     case IDENTIFIER_NODE:
       if (IDENTIFIER_TYPENAME_P (t))
 	{
@@ -14974,7 +14984,6 @@
     return error_mark_node;
   tinst = build_tree_list (fn, NULL_TREE);
   ++deduction_depth;
-  push_deferring_access_checks (dk_deferred);
 
   gcc_assert (TREE_CODE (fn) == TEMPLATE_DECL);
 
@@ -15066,8 +15075,13 @@
 	}
       processing_template_decl += incomplete;
       input_location = DECL_SOURCE_LOCATION (fn);
+      /* Ignore any access checks; we'll see them again in
+	 instantiate_template and they might have the wrong
+	 access path at this point.  */
+      push_deferring_access_checks (dk_deferred);
       fntype = tsubst (TREE_TYPE (fn), explicit_targs,
 		       complain | tf_partial, NULL_TREE);
+      pop_deferring_access_checks ();
       input_location = loc;
       processing_template_decl -= incomplete;
       pop_tinst_level ();
@@ -15075,12 +15089,6 @@
       if (fntype == error_mark_node)
 	goto fail;
 
-      /* Throw away these access checks; we'll see them again in
-	 instantiate_template and they might have the wrong
-	 access path at this point.  */
-      pop_deferring_access_checks ();
-      push_deferring_access_checks (dk_deferred);
-
       /* Place the explicitly specified arguments in TARGS.  */
       for (i = NUM_TMPL_ARGS (explicit_targs); i--;)
 	TREE_VEC_ELT (targs, i) = TREE_VEC_ELT (explicit_targs, i);
@@ -15106,9 +15114,15 @@
      callers must be ready to deal with unification failures in any
      event.  */
 
+  /* type_unification_real will pass back any access checks from default
+     template argument substitution.  */
+  vec<deferred_access_check, va_gc> *checks;
+  checks = NULL;
+
   ok = !type_unification_real (DECL_INNERMOST_TEMPLATE_PARMS (fn),
 			       targs, parms, args, nargs, /*subr=*/0,
-			       strict, flags, explain_p);
+			       strict, flags, &checks, explain_p);
+
   if (!ok)
     goto fail;
 
@@ -15155,16 +15169,23 @@
       excessive_deduction_depth = true;
       goto fail;
     }
+
+  /* Also collect access checks from the instantiation.  */
+  reopen_deferring_access_checks (checks);
+
   decl = instantiate_template (fn, targs, complain);
+
+  checks = get_deferred_access_checks ();
+  pop_deferring_access_checks ();
+
   pop_tinst_level ();
 
   if (decl == error_mark_node)
     goto fail;
 
-  /* Now perform any access checks encountered during deduction, such as
-     for default template arguments.  */
+  /* Now perform any access checks encountered during substitution.  */
   push_access_scope (decl);
-  ok = perform_deferred_access_checks (complain);
+  ok = perform_access_checks (checks, complain);
   pop_access_scope (decl);
   if (!ok)
     goto fail;
@@ -15193,7 +15214,6 @@
   r = decl;
 
  fail:
-  pop_deferring_access_checks ();
   --deduction_depth;
   if (excessive_deduction_depth)
     {
@@ -15454,7 +15474,10 @@
 
    If SUBR is 1, we're being called recursively (to unify the
    arguments of a function or method parameter of a function
-   template). */
+   template).
+
+   CHECKS is a pointer to a vector of access checks encountered while
+   substituting default template arguments.  */
 
 static int
 type_unification_real (tree tparms,
@@ -15465,6 +15488,7 @@
 		       int subr,
 		       unification_kind_t strict,
 		       int flags,
+		       vec<deferred_access_check, va_gc> **checks,
 		       bool explain_p)
 {
   tree parm, arg;
@@ -15604,6 +15628,7 @@
 	    {
 	      tree parm = TREE_VALUE (TREE_VEC_ELT (tparms, i));
 	      tree arg = TREE_PURPOSE (TREE_VEC_ELT (tparms, i));
+	      reopen_deferring_access_checks (*checks);
 	      location_t save_loc = input_location;
 	      if (DECL_P (parm))
 		input_location = DECL_SOURCE_LOCATION (parm);
@@ -15611,6 +15636,8 @@
 	      arg = convert_template_argument (parm, arg, targs, complain,
 					       i, NULL_TREE);
 	      input_location = save_loc;
+	      *checks = get_deferred_access_checks ();
+	      pop_deferring_access_checks ();
 	      if (arg == error_mark_node)
 		return 1;
 	      else
@@ -17078,7 +17105,7 @@
 
 	return type_unification_real (tparms, targs, TYPE_ARG_TYPES (parm),
 				      args, nargs, 1, DEDUCE_EXACT,
-				      LOOKUP_NORMAL, explain_p);
+				      LOOKUP_NORMAL, NULL, explain_p);
       }
 
     case OFFSET_TYPE:
@@ -19888,6 +19915,29 @@
       && VAR_HAD_UNKNOWN_BOUND (expression))
     return true;
 
+  /* An array of unknown bound depending on a variadic parameter, eg:
+
+     template<typename... Args>
+       void foo (Args... args)
+       {
+         int arr[] = { args... };
+       }
+
+     template<int... vals>
+       void bar ()
+       {
+         int arr[] = { vals... };
+       }
+
+     If the array has no length and has an initializer, it must be that
+     we couldn't determine its length in cp_complete_array_type because
+     it is dependent.  */
+  if (TREE_CODE (expression) == VAR_DECL
+      && TREE_CODE (TREE_TYPE (expression)) == ARRAY_TYPE
+      && !TYPE_DOMAIN (TREE_TYPE (expression))
+      && DECL_INITIAL (expression))
+   return true;
+
   if (TREE_TYPE (expression) == unknown_type_node)
     {
       if (TREE_CODE (expression) == ADDR_EXPR)
@@ -20626,7 +20676,7 @@
     = build_tree_list (NULL_TREE, TYPE_NAME (auto_node));
   val = type_unification_real (tparms, targs, parms, args, 1, 0,
 			       DEDUCE_CALL, LOOKUP_NORMAL,
-			       /*explain_p=*/false);
+			       NULL, /*explain_p=*/false);
   if (val > 0)
     {
       if (processing_template_decl)
diff -Naur gcc-4.8.1.orig/gcc/cp/semantics.c gcc-4.8.1/gcc/cp/semantics.c
--- gcc-4.8.1.orig/gcc/cp/semantics.c	2013-05-14 07:51:17.000000000 -0500
+++ gcc-4.8.1/gcc/cp/semantics.c	2013-07-30 11:58:28.826601000 -0500
@@ -155,6 +155,17 @@
     }
 }
 
+/* Save the current deferred access states and start deferred access
+   checking, continuing the set of deferred checks in CHECKS.  */
+
+void
+reopen_deferring_access_checks (vec<deferred_access_check, va_gc> * checks)
+{
+  push_deferring_access_checks (dk_deferred);
+  if (!deferred_access_no_check)
+    deferred_access_stack->last().deferred_access_checks = checks;
+}
+
 /* Resume deferring access checks again after we stopped doing
    this previously.  */
 
@@ -5945,7 +5956,7 @@
       || TREE_CODE (t) == MODIFY_EXPR)
     {
       member = TREE_OPERAND (t, 0);
-      init = unshare_expr (TREE_OPERAND (t, 1));
+      init = break_out_target_exprs (TREE_OPERAND (t, 1));
     }
   else if (TREE_CODE (t) == CALL_EXPR)
     {
@@ -5953,7 +5964,7 @@
       /* We don't use build_cplus_new here because it complains about
 	 abstract bases.  Leaving the call unwrapped means that it has the
 	 wrong type, but cxx_eval_constant_expression doesn't care.  */
-      init = unshare_expr (t);
+      init = break_out_target_exprs (t);
     }
   else if (TREE_CODE (t) == DECL_EXPR)
     /* Declaring a temporary, don't add it to the CONSTRUCTOR.  */
@@ -6190,7 +6201,7 @@
       }
 
     case RETURN_EXPR:
-      return unshare_expr (TREE_OPERAND (body, 0));
+      return break_out_target_exprs (TREE_OPERAND (body, 0));
 
     case DECL_EXPR:
       if (TREE_CODE (DECL_EXPR_DECL (body)) == USING_DECL)
@@ -7635,11 +7646,6 @@
     {
       tree sub = op0;
       STRIP_NOPS (sub);
-      if (TREE_CODE (sub) == POINTER_PLUS_EXPR)
-	{
-	  sub = TREE_OPERAND (sub, 0);
-	  STRIP_NOPS (sub);
-	}
       if (TREE_CODE (sub) == ADDR_EXPR)
 	{
 	  /* We couldn't fold to a constant value.  Make sure it's not
@@ -7990,6 +7996,7 @@
     case UNGT_EXPR:
     case UNGE_EXPR:
     case UNEQ_EXPR:
+    case LTGT_EXPR:
     case RANGE_EXPR:
     case COMPLEX_EXPR:
       r = cxx_eval_binary_expression (call, t, allow_non_constant, addr,
@@ -8846,6 +8853,12 @@
 	}
       return false;
 
+    case OMP_ATOMIC:
+    case OMP_ATOMIC_READ:
+    case OMP_ATOMIC_CAPTURE_OLD:
+    case OMP_ATOMIC_CAPTURE_NEW:
+      return false;
+
     default:
       if (objc_is_property_ref (t))
 	return false;
@@ -9065,7 +9078,8 @@
 {
   tree type;
   if (type_dependent_expression_p (expr)
-      && !(TREE_TYPE (expr) && TREE_CODE (TREE_TYPE (expr)) == POINTER_TYPE))
+      && !(TREE_TYPE (expr) && TREE_CODE (TREE_TYPE (expr)) == POINTER_TYPE
+	   && !type_uses_auto (TREE_TYPE (expr))))
     {
       type = cxx_make_type (DECLTYPE_TYPE);
       DECLTYPE_TYPE_EXPR (type) = expr;
diff -Naur gcc-4.8.1.orig/gcc/cp/tree.c gcc-4.8.1/gcc/cp/tree.c
--- gcc-4.8.1.orig/gcc/cp/tree.c	2013-05-24 08:25:51.000000000 -0500
+++ gcc-4.8.1/gcc/cp/tree.c	2013-08-06 20:18:57.648578000 -0500
@@ -1220,6 +1220,8 @@
 	    result =
 	      build_method_type_directly (class_type, type,
 					  TREE_CHAIN (arg_types));
+	    result
+	      = build_ref_qualified_type (result, type_memfn_rqual (t));
 	  }
 	else
 	  {
diff -Naur gcc-4.8.1.orig/gcc/cp/typeck2.c gcc-4.8.1/gcc/cp/typeck2.c
--- gcc-4.8.1.orig/gcc/cp/typeck2.c	2013-04-11 11:05:02.000000000 -0500
+++ gcc-4.8.1/gcc/cp/typeck2.c	2013-07-30 08:30:12.307006000 -0500
@@ -262,7 +262,7 @@
      so that we can check again once it is completed. This makes sense
      only for objects for which we have a declaration or at least a
      name.  */
-  if (!COMPLETE_TYPE_P (type))
+  if (!COMPLETE_TYPE_P (type) && (complain & tf_error))
     {
       void **slot;
       struct pending_abstract_type *pat;
diff -Naur gcc-4.8.1.orig/gcc/cp/typeck.c gcc-4.8.1/gcc/cp/typeck.c
--- gcc-4.8.1.orig/gcc/cp/typeck.c	2013-05-13 14:34:15.000000000 -0500
+++ gcc-4.8.1/gcc/cp/typeck.c	2013-07-09 12:52:34.273079000 -0500
@@ -8307,7 +8307,8 @@
      && TREE_CODE (retval) == VAR_DECL
      && DECL_CONTEXT (retval) == current_function_decl
      && ! TREE_STATIC (retval)
-     && ! DECL_ANON_UNION_VAR_P (retval)
+     /* And not a lambda or anonymous union proxy.  */
+     && !DECL_HAS_VALUE_EXPR_P (retval)
      && (DECL_ALIGN (retval) >= DECL_ALIGN (result))
      /* The cv-unqualified type of the returned value must be the
         same as the cv-unqualified return type of the
@@ -8352,7 +8353,8 @@
          Note that these conditions are similar to, but not as strict as,
 	 the conditions for the named return value optimization.  */
       if ((cxx_dialect != cxx98)
-          && (TREE_CODE (retval) == VAR_DECL
+          && ((TREE_CODE (retval) == VAR_DECL
+	       && !DECL_HAS_VALUE_EXPR_P (retval))
 	      || TREE_CODE (retval) == PARM_DECL)
 	  && DECL_CONTEXT (retval) == current_function_decl
 	  && !TREE_STATIC (retval)
diff -Naur gcc-4.8.1.orig/gcc/DATESTAMP gcc-4.8.1/gcc/DATESTAMP
--- gcc-4.8.1.orig/gcc/DATESTAMP	2013-05-30 19:16:35.000000000 -0500
+++ gcc-4.8.1/gcc/DATESTAMP	2013-08-27 19:16:35.499545000 -0500
@@ -1 +1 @@
-20130531
+20130828
diff -Naur gcc-4.8.1.orig/gcc/doc/avr-mmcu.texi gcc-4.8.1/gcc/doc/avr-mmcu.texi
--- gcc-4.8.1.orig/gcc/doc/avr-mmcu.texi	2013-02-28 03:03:09.000000000 -0600
+++ gcc-4.8.1/gcc/doc/avr-mmcu.texi	2013-07-10 07:36:36.732157000 -0500
@@ -38,7 +38,7 @@
 
 @item avr5
 ``Enhanced'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory.
-@*@var{mcu}@tie{}= @code{ata5790}, @code{ata5790n}, @code{ata5795}, @code{atmega16}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16hvb}, @code{atmega16hvbrevb}, @code{atmega16m1}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega16u4}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega164pa}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega165pa}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega168pa}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega26hvg}, @code{atmega32}, @code{atmega32a}, @code{atmega32a}, @code{atmega32c1}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32hvb}, @code{atmega32hvbrevb}, @code{atmega32m1}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega32u6}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega325a}, @code{atmega325p}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega3250pa}, @code{atmega328}, @code{atmega328p}, @code{atmega329}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega3290pa}, @code{atmega406}, @code{atmega48hvf}, @code{atmega64}, @code{atmega64a}, @code{atmega64c1}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64m1}, @code{atmega64m1}, @code{atmega64rfa2}, @code{atmega64rfr2}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega645}, @code{atmega645a}, @code{atmega645p}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega649}, @code{atmega649a}, @code{atmega649p}, @code{atmega6490}, @code{atmega6490a}, @code{atmega6490p}, @code{at90can32}, @code{at90can64}, @code{at90pwm161}, @code{at90pwm216}, @code{at90pwm316}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{m3000}.
+@*@var{mcu}@tie{}= @code{ata5790}, @code{ata5790n}, @code{ata5795}, @code{atmega16}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16hvbrevb}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega164pa}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega165pa}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega168pa}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega26hvg}, @code{atmega32}, @code{atmega32a}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32hvbrevb}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega325a}, @code{atmega325p}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega3250pa}, @code{atmega328}, @code{atmega328p}, @code{atmega329}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega3290pa}, @code{atmega406}, @code{atmega48hvf}, @code{atmega64}, @code{atmega64a}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64m1}, @code{atmega64rfa2}, @code{atmega64rfr2}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega645}, @code{atmega645a}, @code{atmega645p}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega649}, @code{atmega649a}, @code{atmega649p}, @code{atmega6490}, @code{atmega6490a}, @code{atmega6490p}, @code{at90can32}, @code{at90can64}, @code{at90pwm161}, @code{at90pwm216}, @code{at90pwm316}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{m3000}.
 
 @item avr51
 ``Enhanced'' devices with 128@tie{}KiB of program memory.
diff -Naur gcc-4.8.1.orig/gcc/doc/cpp.texi gcc-4.8.1/gcc/doc/cpp.texi
--- gcc-4.8.1.orig/gcc/doc/cpp.texi	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/doc/cpp.texi	2013-06-19 04:03:22.324781000 -0500
@@ -1926,11 +1926,9 @@
 This macro is defined when the C++ compiler is in use.  You can use
 @code{__cplusplus} to test whether a header is compiled by a C compiler
 or a C++ compiler.  This macro is similar to @code{__STDC_VERSION__}, in
-that it expands to a version number.  A fully conforming implementation
-of the 1998 C++ standard will define this macro to @code{199711L}.  The
-GNU C++ compiler is not yet fully conforming, so it uses @code{1}
-instead.  It is hoped to complete the implementation of standard C++
-in the near future.
+that it expands to a version number.  Depending on the language standard
+selected, the value of the macro is @code{199711L}, as mandated by the
+1998 C++ standard, or @code{201103L}, per the 2011 C++ standard.
 
 @item __OBJC__
 This macro is defined, with value 1, when the Objective-C compiler is in
diff -Naur gcc-4.8.1.orig/gcc/doc/extend.texi gcc-4.8.1/gcc/doc/extend.texi
--- gcc-4.8.1.orig/gcc/doc/extend.texi	2013-03-28 09:07:55.000000000 -0500
+++ gcc-4.8.1/gcc/doc/extend.texi	2013-08-02 10:41:10.548493000 -0500
@@ -8786,6 +8786,7 @@
 * PowerPC Built-in Functions::
 * PowerPC AltiVec/VSX Built-in Functions::
 * RX Built-in Functions::
+* S/390 System z Built-in Functions::
 * SH Built-in Functions::
 * SPARC VIS Built-in Functions::
 * SPU Built-in Functions::
@@ -14026,6 +14027,120 @@
 Generates the @code{wait} machine instruction.
 @end deftypefn
 
+@node S/390 System z Built-in Functions
+@subsection S/390 System z Built-in Functions
+@deftypefn {Built-in Function} int __builtin_tbegin (void*)
+Generates the @code{tbegin} machine instruction starting a
+non-constraint hardware transaction.  If the parameter is non-NULL the
+memory area is used to store the transaction diagnostic buffer and
+will be passed as first operand to @code{tbegin}.  This buffer can be
+defined using the @code{struct __htm_tdb} C struct defined in
+@code{htmintrin.h} and must reside on a double-word boundary.  The
+second tbegin operand is set to @code{0xff0c}. This enables
+save/restore of all GPRs and disables aborts for FPR and AR
+manipulations inside the transaction body.  The condition code set by
+the tbegin instruction is returned as integer value.  The tbegin
+instruction by definition overwrites the content of all FPRs.  The
+compiler will generate code which saves and restores the FPRs.  For
+soft-float code it is recommended to used the @code{*_nofloat}
+variant.  In order to prevent a TDB from being written it is required
+to pass an constant zero value as parameter.  Passing the zero value
+through a variable is not sufficient.  Although modifications of
+access registers inside the transaction will not trigger an
+transaction abort it is not supported to actually modify them.  Access
+registers do not get saved when entering a transaction. They will have
+undefined state when reaching the abort code.
+@end deftypefn
+
+Macros for the possible return codes of tbegin are defined in the
+@code{htmintrin.h} header file:
+
+@table @code
+@item _HTM_TBEGIN_STARTED
+@code{tbegin} has been executed as part of normal processing.  The
+transaction body is supposed to be executed.
+@item _HTM_TBEGIN_INDETERMINATE
+The transaction was aborted due to an indeterminate condition which
+might be persistent.
+@item _HTM_TBEGIN_TRANSIENT
+The transaction aborted due to a transient failure.  The transaction
+should be re-executed in that case.
+@item _HTM_TBEGIN_PERSISTENT
+The transaction aborted due to a persistent failure.  Re-execution
+under same circumstances will not be productive.
+@end table
+
+@defmac _HTM_FIRST_USER_ABORT_CODE
+The @code{_HTM_FIRST_USER_ABORT_CODE} defined in @code{htmintrin.h}
+specifies the first abort code which can be used for
+@code{__builtin_tabort}.  Values below this threshold are reserved for
+machine use.
+@end defmac
+
+@deftp {Data type} {struct __htm_tdb}
+The @code{struct __htm_tdb} defined in @code{htmintrin.h} describes
+the structure of the transaction diagnostic block as specified in the
+Principles of Operation manual chapter 5-91.
+@end deftp
+
+@deftypefn {Built-in Function} int __builtin_tbegin_nofloat (void*)
+Same as @code{__builtin_tbegin} but without FPR saves and restores.
+Using this variant in code making use of FPRs will leave the FPRs in
+undefined state when entering the transaction abort handler code.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tbegin_retry (void*, int)
+In addition to @code{__builtin_tbegin} a loop for transient failures
+is generated.  If tbegin returns a condition code of 2 the transaction
+will be retried as often as specified in the second argument.  The
+perform processor assist instruction is used to tell the CPU about the
+number of fails so far.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tbegin_retry_nofloat (void*, int)
+Same as @code{__builtin_tbegin_retry} but without FPR saves and
+restores.  Using this variant in code making use of FPRs will leave
+the FPRs in undefined state when entering the transaction abort
+handler code.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_tbeginc (void)
+Generates the @code{tbeginc} machine instruction starting a constraint
+hardware transaction.  The second operand is set to @code{0xff08}.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tend (void)
+Generates the @code{tend} machine instruction finishing a transaction
+and making the changes visible to other threads.  The condition code
+generated by tend is returned as integer value.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_tabort (int)
+Generates the @code{tabort} machine instruction with the specified
+abort code.  Abort codes from 0 through 255 are reserved and will
+result in an error message.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_tx_assist (int)
+Generates the @code{ppa rX,rY,1} machine instruction.  Where the
+integer parameter is loaded into rX and a value of zero is loaded into
+rY.  The integer parameter specifies the number of times the
+transaction repeatedly aborted.
+@end deftypefn
+
+@deftypefn {Built-in Function} int __builtin_tx_nesting_depth (void)
+Generates the @code{etnd} machine instruction.  The current nesting
+depth is returned as integer value.  For a nesting depth of 0 the code
+is not executed as part of an transaction.
+@end deftypefn
+
+@deftypefn {Built-in Function} void __builtin_non_tx_store (unsigned long long *, unsigned long long)
+
+Generates the @code{ntstg} machine instruction.  The second argument
+is written to the first arguments location.  The store operation will
+not be rolled-back in case of an transaction abort.
+@end deftypefn
+
 @node SH Built-in Functions
 @subsection SH Built-in Functions
 The following built-in functions are supported on the SH1, SH2, SH3 and SH4
diff -Naur gcc-4.8.1.orig/gcc/doc/invoke.texi gcc-4.8.1/gcc/doc/invoke.texi
--- gcc-4.8.1.orig/gcc/doc/invoke.texi	2013-03-29 08:41:29.000000000 -0500
+++ gcc-4.8.1/gcc/doc/invoke.texi	2013-06-19 14:55:50.111258000 -0500
@@ -13726,8 +13726,13 @@
 SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND and F16C instruction
 set support.
 
+@item core-avx2
+Intel Core CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2
+and F16C instruction set support.
+
 @item atom
-Intel Atom CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
+Intel Atom CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3
 instruction set support.
 
 @item k6
diff -Naur gcc-4.8.1.orig/gcc/file-find.c gcc-4.8.1/gcc/file-find.c
--- gcc-4.8.1.orig/gcc/file-find.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/file-find.c	2013-06-19 15:59:25.231992000 -0500
@@ -31,7 +31,7 @@
 }
 
 char *
-find_a_file (struct path_prefix *pprefix, const char *name)
+find_a_file (struct path_prefix *pprefix, const char *name, int mode)
 {
   char *temp;
   struct prefix_list *pl;
@@ -50,7 +50,7 @@
 
   if (IS_ABSOLUTE_PATH (name))
     {
-      if (access (name, X_OK) == 0)
+      if (access (name, mode) == 0)
 	{
 	  strcpy (temp, name);
 
@@ -66,7 +66,7 @@
       strcpy (temp, name);
 	strcat (temp, HOST_EXECUTABLE_SUFFIX);
 
-	if (access (temp, X_OK) == 0)
+	if (access (temp, mode) == 0)
 	  return temp;
 #endif
 
@@ -83,7 +83,7 @@
 
 	if (stat (temp, &st) >= 0
 	    && ! S_ISDIR (st.st_mode)
-	    && access (temp, X_OK) == 0)
+	    && access (temp, mode) == 0)
 	  return temp;
 
 #ifdef HOST_EXECUTABLE_SUFFIX
@@ -93,7 +93,7 @@
 
 	if (stat (temp, &st) >= 0
 	    && ! S_ISDIR (st.st_mode)
-	    && access (temp, X_OK) == 0)
+	    && access (temp, mode) == 0)
 	  return temp;
 #endif
       }
diff -Naur gcc-4.8.1.orig/gcc/file-find.h gcc-4.8.1/gcc/file-find.h
--- gcc-4.8.1.orig/gcc/file-find.h	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/file-find.h	2013-06-19 15:59:25.231992000 -0500
@@ -38,7 +38,7 @@
 };
 
 extern void find_file_set_debug (bool);
-extern char *find_a_file (struct path_prefix *, const char *);
+extern char *find_a_file (struct path_prefix *, const char *, int);
 extern void add_prefix (struct path_prefix *, const char *);
 extern void prefix_from_env (const char *, struct path_prefix *);
 extern void prefix_from_string (const char *, struct path_prefix *);
diff -Naur gcc-4.8.1.orig/gcc/fortran/interface.c gcc-4.8.1/gcc/fortran/interface.c
--- gcc-4.8.1.orig/gcc/fortran/interface.c	2013-04-26 14:20:55.000000000 -0500
+++ gcc-4.8.1/gcc/fortran/interface.c	2013-05-31 13:10:03.669091000 -0500
@@ -1024,7 +1024,8 @@
 			     bool type_must_agree, char *errmsg, int err_len)
 {
   /* Check type and rank.  */
-  if (type_must_agree && !compare_type_rank (s2, s1))
+  if (type_must_agree &&
+      (!compare_type_rank (s1, s2) || !compare_type_rank (s2, s1)))
     {
       snprintf (errmsg, err_len, "Type/rank mismatch in argument '%s'",
 		s1->name);
diff -Naur gcc-4.8.1.orig/gcc/fortran/match.c gcc-4.8.1/gcc/fortran/match.c
--- gcc-4.8.1.orig/gcc/fortran/match.c	2013-04-18 13:20:22.000000000 -0500
+++ gcc-4.8.1/gcc/fortran/match.c	2013-08-24 04:12:21.843607000 -0500
@@ -5142,7 +5142,6 @@
 {
   gfc_ref *ref;
   gfc_symbol *assoc_sym;
-  int i;
 
   assoc_sym = associate->symtree->n.sym;
 
@@ -5153,9 +5152,8 @@
   while (ref && ref->next)
     ref = ref->next;
 
-  if (selector->ts.type == BT_CLASS
-	&& CLASS_DATA (selector)->as
-	&& ref && ref->type == REF_ARRAY)
+  if (selector->ts.type == BT_CLASS && CLASS_DATA (selector)->as
+      && ref && ref->type == REF_ARRAY)
     {
       /* Ensure that the array reference type is set.  We cannot use
 	 gfc_resolve_expr at this point, so the usable parts of
@@ -5163,7 +5161,7 @@
       if (ref->u.ar.type == AR_UNKNOWN)
 	{
 	  ref->u.ar.type = AR_ELEMENT;
-	  for (i = 0; i < ref->u.ar.dimen + ref->u.ar.codimen; i++)
+	  for (int i = 0; i < ref->u.ar.dimen + ref->u.ar.codimen; i++)
 	    if (ref->u.ar.dimen_type[i] == DIMEN_RANGE
 		|| ref->u.ar.dimen_type[i] == DIMEN_VECTOR
 		|| (ref->u.ar.dimen_type[i] == DIMEN_UNKNOWN
@@ -5182,37 +5180,19 @@
 	selector->rank = 0;
     }
 
-  if (selector->ts.type != BT_CLASS)
+  if (selector->rank)
     {
-      /* The correct class container has to be available.  */
-      if (selector->rank)
-	{
-	  assoc_sym->attr.dimension = 1;
-	  assoc_sym->as = gfc_get_array_spec ();
-	  assoc_sym->as->rank = selector->rank;
-	  assoc_sym->as->type = AS_DEFERRED;
-	}
-      else
-	assoc_sym->as = NULL;
-
-      assoc_sym->ts.type = BT_CLASS;
-      assoc_sym->ts.u.derived = selector->ts.u.derived;
-      assoc_sym->attr.pointer = 1;
-      gfc_build_class_symbol (&assoc_sym->ts, &assoc_sym->attr,
-			      &assoc_sym->as, false);
+      assoc_sym->attr.dimension = 1;
+      assoc_sym->as = gfc_get_array_spec ();
+      assoc_sym->as->rank = selector->rank;
+      assoc_sym->as->type = AS_DEFERRED;
     }
   else
+    assoc_sym->as = NULL;
+
+  if (selector->ts.type == BT_CLASS)
     {
       /* The correct class container has to be available.  */
-      if (selector->rank)
-	{
-	  assoc_sym->attr.dimension = 1;
-	  assoc_sym->as = gfc_get_array_spec ();
-	  assoc_sym->as->rank = selector->rank;
-	  assoc_sym->as->type = AS_DEFERRED;
-	}
-      else
-	assoc_sym->as = NULL;
       assoc_sym->ts.type = BT_CLASS;
       assoc_sym->ts.u.derived = CLASS_DATA (selector)->ts.u.derived;
       assoc_sym->attr.pointer = 1;
diff -Naur gcc-4.8.1.orig/gcc/fortran/module.c gcc-4.8.1/gcc/fortran/module.c
--- gcc-4.8.1.orig/gcc/fortran/module.c	2013-01-29 15:40:51.000000000 -0600
+++ gcc-4.8.1/gcc/fortran/module.c	2013-07-28 09:13:17.566941000 -0500
@@ -4465,7 +4465,7 @@
   module_locus locus;
   symbol_attribute attr;
 
-  if (st_sym->name == gfc_current_ns->proc_name->name)
+  if (gfc_current_ns->proc_name && st_sym->name == gfc_current_ns->proc_name->name)
     {
       gfc_error ("'%s' of module '%s', imported at %C, is also the name of the "
 		 "current program unit", st_sym->name, module_name);
diff -Naur gcc-4.8.1.orig/gcc/fortran/resolve.c gcc-4.8.1/gcc/fortran/resolve.c
--- gcc-4.8.1.orig/gcc/fortran/resolve.c	2013-05-07 11:36:48.000000000 -0500
+++ gcc-4.8.1/gcc/fortran/resolve.c	2013-06-11 11:18:13.173979000 -0500
@@ -9746,6 +9746,10 @@
 
   /* Add the attributes and the arrayspec to the temporary.  */
   tmp->n.sym->attr = gfc_expr_attr (e);
+  tmp->n.sym->attr.function = 0;
+  tmp->n.sym->attr.result = 0;
+  tmp->n.sym->attr.flavor = FL_VARIABLE;
+
   if (as)
     {
       tmp->n.sym->as = gfc_copy_array_spec (as);
@@ -9759,6 +9763,7 @@
 
   gfc_set_sym_referenced (tmp->n.sym);
   gfc_add_flavor (&tmp->n.sym->attr, FL_VARIABLE, name, NULL);
+  gfc_commit_symbol (tmp->n.sym);
   e = gfc_lval_expr_from_sym (tmp->n.sym);
 
   /* Should the lhs be a section, use its array ref for the
diff -Naur gcc-4.8.1.orig/gcc/fortran/simplify.c gcc-4.8.1/gcc/fortran/simplify.c
--- gcc-4.8.1.orig/gcc/fortran/simplify.c	2013-05-07 11:36:48.000000000 -0500
+++ gcc-4.8.1/gcc/fortran/simplify.c	2013-07-08 14:10:32.194953000 -0500
@@ -332,13 +332,15 @@
 }
 
 
-/* Helper function for gfc_simplify_dot_product() and gfc_simplify_matmul.  */
+/* Helper function for gfc_simplify_dot_product() and gfc_simplify_matmul;
+   if conj_a is true, the matrix_a is complex conjugated.  */
 
 static gfc_expr *
 compute_dot_product (gfc_expr *matrix_a, int stride_a, int offset_a,
-		     gfc_expr *matrix_b, int stride_b, int offset_b)
+		     gfc_expr *matrix_b, int stride_b, int offset_b,
+		     bool conj_a)
 {
-  gfc_expr *result, *a, *b;
+  gfc_expr *result, *a, *b, *c;
 
   result = gfc_get_constant_expr (matrix_a->ts.type, matrix_a->ts.kind,
 				  &matrix_a->where);
@@ -361,9 +363,11 @@
 	  case BT_INTEGER:
 	  case BT_REAL:
 	  case BT_COMPLEX:
-	    result = gfc_add (result,
-			      gfc_multiply (gfc_copy_expr (a),
-					    gfc_copy_expr (b)));
+	    if (conj_a && a->ts.type == BT_COMPLEX)
+	      c = gfc_simplify_conjg (a);
+	    else
+	      c = gfc_copy_expr (a);
+	    result = gfc_add (result, gfc_multiply (c, gfc_copy_expr (b)));
 	    break;
 
 	  default:
@@ -1881,7 +1885,7 @@
   gcc_assert (vector_b->rank == 1);
   gcc_assert (gfc_compare_types (&vector_a->ts, &vector_b->ts));
 
-  return compute_dot_product (vector_a, 1, 0, vector_b, 1, 0);
+  return compute_dot_product (vector_a, 1, 0, vector_b, 1, 0, true);
 }
 
 
@@ -3894,7 +3898,7 @@
       for (row = 0; row < result_rows; ++row)
 	{
 	  gfc_expr *e = compute_dot_product (matrix_a, stride_a, offset_a,
-					     matrix_b, 1, offset_b);
+					     matrix_b, 1, offset_b, false);
 	  gfc_constructor_append_expr (&result->value.constructor,
 				       e, NULL);
 
diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-array.c gcc-4.8.1/gcc/fortran/trans-array.c
--- gcc-4.8.1.orig/gcc/fortran/trans-array.c	2013-02-21 06:26:44.000000000 -0600
+++ gcc-4.8.1/gcc/fortran/trans-array.c	2013-08-24 07:46:17.832897000 -0500
@@ -3674,7 +3674,7 @@
 /* Calculate the lower bound of an array section.  */
 
 static void
-gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim)
+gfc_conv_section_startstride (stmtblock_t * block, gfc_ss * ss, int dim)
 {
   gfc_expr *stride = NULL;
   tree desc;
@@ -3703,12 +3703,12 @@
 
   /* Calculate the start of the range.  For vector subscripts this will
      be the range of the vector.  */
-  evaluate_bound (&loop->pre, info->start, ar->start, desc, dim, true);
+  evaluate_bound (block, info->start, ar->start, desc, dim, true);
 
   /* Similarly calculate the end.  Although this is not used in the
      scalarizer, it is needed when checking bounds and where the end
      is an expression with side-effects.  */
-  evaluate_bound (&loop->pre, info->end, ar->end, desc, dim, false);
+  evaluate_bound (block, info->end, ar->end, desc, dim, false);
 
   /* Calculate the stride.  */
   if (stride == NULL)
@@ -3717,8 +3717,8 @@
     {
       gfc_init_se (&se, NULL);
       gfc_conv_expr_type (&se, stride, gfc_array_index_type);
-      gfc_add_block_to_block (&loop->pre, &se.pre);
-      info->stride[dim] = gfc_evaluate_now (se.expr, &loop->pre);
+      gfc_add_block_to_block (block, &se.pre);
+      info->stride[dim] = gfc_evaluate_now (se.expr, block);
     }
 }
 
@@ -3735,6 +3735,8 @@
   gfc_ss *ss;
   tree desc;
 
+  gfc_loopinfo * const outer_loop = outermost_loop (loop);
+
   loop->dimen = 0;
   /* Determine the rank of the loop.  */
   for (ss = loop->ss; ss != gfc_ss_terminator; ss = ss->loop_chain)
@@ -3794,10 +3796,11 @@
 	  /* Get the descriptor for the array.  If it is a cross loops array,
 	     we got the descriptor already in the outermost loop.  */
 	  if (ss->parent == NULL)
-	    gfc_conv_ss_descriptor (&loop->pre, ss, !loop->array_parameter);
+	    gfc_conv_ss_descriptor (&outer_loop->pre, ss,
+				    !loop->array_parameter);
 
 	  for (n = 0; n < ss->dimen; n++)
-	    gfc_conv_section_startstride (loop, ss, ss->dim[n]);
+	    gfc_conv_section_startstride (&outer_loop->pre, ss, ss->dim[n]);
 	  break;
 
 	case GFC_SS_INTRINSIC:
@@ -3833,7 +3836,7 @@
 					   fold_convert (gfc_array_index_type,
 							 rank),
 					   gfc_index_one_node);
-		    info->end[0] = gfc_evaluate_now (tmp, &loop->pre);
+		    info->end[0] = gfc_evaluate_now (tmp, &outer_loop->pre);
 		    info->start[0] = gfc_index_zero_node;
 		    info->stride[0] = gfc_index_one_node;
 		    continue;
@@ -4115,7 +4118,7 @@
 	}
 
       tmp = gfc_finish_block (&block);
-      gfc_add_expr_to_block (&loop->pre, tmp);
+      gfc_add_expr_to_block (&outer_loop->pre, tmp);
     }
 
   for (loop = loop->nested; loop; loop = loop->next)
@@ -4398,6 +4401,8 @@
   mpz_t i;
   bool nonoptional_arr;
 
+  gfc_loopinfo * const outer_loop = outermost_loop (loop);
+
   loopspec = loop->specloop;
 
   mpz_init (i);
@@ -4583,7 +4588,7 @@
       else
 	{
 	  /* Set the delta for this section.  */
-	  info->delta[dim] = gfc_evaluate_now (loop->from[n], &loop->pre);
+	  info->delta[dim] = gfc_evaluate_now (loop->from[n], &outer_loop->pre);
 	  /* Number of iterations is (end - start + step) / step.
 	     with start = 0, this simplifies to
 	     last = end / step;
@@ -4595,7 +4600,7 @@
 				 gfc_array_index_type, tmp, info->stride[dim]);
 	  tmp = fold_build2_loc (input_location, MAX_EXPR, gfc_array_index_type,
 				 tmp, build_int_cst (gfc_array_index_type, -1));
-	  loop->to[n] = gfc_evaluate_now (tmp, &loop->pre);
+	  loop->to[n] = gfc_evaluate_now (tmp, &outer_loop->pre);
 	  /* Make the loop variable start at 0.  */
 	  loop->from[n] = gfc_index_zero_node;
 	}
@@ -4671,6 +4676,8 @@
   tree tmp;
   int n, dim;
 
+  gfc_loopinfo * const outer_loop = outermost_loop (loop);
+
   loopspec = loop->specloop;
 
   /* Calculate the translation from loop variables to array indices.  */
@@ -4706,7 +4713,7 @@
 				     gfc_array_index_type,
 				     info->start[dim], tmp);
 
-	      info->delta[dim] = gfc_evaluate_now (tmp, &loop->pre);
+	      info->delta[dim] = gfc_evaluate_now (tmp, &outer_loop->pre);
 	    }
 	}
     }
@@ -6690,10 +6697,10 @@
 	      gcc_assert (ar->dimen_type[n + ndim] == DIMEN_THIS_IMAGE);
 
 	      /* Make sure the call to gfc_conv_section_startstride won't
-	         generate unnecessary code to calculate stride.  */
+		 generate unnecessary code to calculate stride.  */
 	      gcc_assert (ar->stride[n + ndim] == NULL);
 
-	      gfc_conv_section_startstride (&loop, ss, n + ndim);
+	      gfc_conv_section_startstride (&loop.pre, ss, n + ndim);
 	      loop.from[n + loop.dimen] = info->start[n + ndim];
 	      loop.to[n + loop.dimen]   = info->end[n + ndim];
 	    }
diff -Naur gcc-4.8.1.orig/gcc/fortran/trans-intrinsic.c gcc-4.8.1/gcc/fortran/trans-intrinsic.c
--- gcc-4.8.1.orig/gcc/fortran/trans-intrinsic.c	2013-03-15 05:09:39.000000000 -0500
+++ gcc-4.8.1/gcc/fortran/trans-intrinsic.c	2013-08-11 06:31:41.480740000 -0500
@@ -5653,8 +5653,7 @@
 
   if (expr->ts.type == BT_CHARACTER)
     {
-      tree direct;
-      tree indirect;
+      tree direct, indirect, free;
 
       ptr = convert (gfc_get_pchar_type (expr->ts.kind), source);
       tmpdecl = gfc_create_var (gfc_get_pchar_type (expr->ts.kind),
@@ -5687,6 +5686,13 @@
       tmp = build3_v (COND_EXPR, tmp, direct, indirect);
       gfc_add_expr_to_block (&se->pre, tmp);
 
+      /* Free the temporary string, if necessary.  */
+      free = gfc_call_free (tmpdecl);
+      tmp = fold_build2_loc (input_location, GT_EXPR, boolean_type_node,
+			     dest_word_len, source_bytes);
+      tmp = build3_v (COND_EXPR, tmp, free, build_empty_stmt (input_location));
+      gfc_add_expr_to_block (&se->post, tmp);
+
       se->expr = tmpdecl;
       se->string_length = fold_convert (gfc_charlen_type_node, dest_word_len);
     }
diff -Naur gcc-4.8.1.orig/gcc/gcc-ar.c gcc-4.8.1/gcc/gcc-ar.c
--- gcc-4.8.1.orig/gcc/gcc-ar.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/gcc-ar.c	2013-06-19 15:59:25.231992000 -0500
@@ -136,7 +136,7 @@
   setup_prefixes (av[0]);
 
   /* Find the GCC LTO plugin */
-  plugin = find_a_file (&target_path, LTOPLUGINSONAME);
+  plugin = find_a_file (&target_path, LTOPLUGINSONAME, R_OK);
   if (!plugin)
     {
       fprintf (stderr, "%s: Cannot find plugin '%s'\n", av[0], LTOPLUGINSONAME);
@@ -144,24 +144,20 @@
     }
 
   /* Find the wrapped binutils program.  */
-  exe_name = find_a_file (&target_path, PERSONALITY);
+  exe_name = find_a_file (&target_path, PERSONALITY, X_OK);
   if (!exe_name)
     {
+      const char *real_exe_name = PERSONALITY;
 #ifdef CROSS_DIRECTORY_STRUCTURE
-      const char *cross_exe_name;
-
-      cross_exe_name = concat (target_machine, "-", PERSONALITY, NULL);
-      exe_name = find_a_file (&path, cross_exe_name);
+      real_exe_name = concat (target_machine, "-", PERSONALITY, NULL);
+#endif
+      exe_name = find_a_file (&path, real_exe_name, X_OK);
       if (!exe_name)
 	{
 	  fprintf (stderr, "%s: Cannot find binary '%s'\n", av[0],
-		   cross_exe_name);
+		   real_exe_name);
 	  exit (1);
 	}
-#else
-      fprintf (stderr, "%s: Cannot find binary '%s'\n", av[0], PERSONALITY);
-      exit (1);
-#endif
     }
 
   /* Create new command line with plugin */
diff -Naur gcc-4.8.1.orig/gcc/gimple.c gcc-4.8.1/gcc/gimple.c
--- gcc-4.8.1.orig/gcc/gimple.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/gimple.c	2013-08-16 04:06:41.868666000 -0500
@@ -4045,6 +4045,13 @@
 	    ret |= visit_addr (stmt, TREE_OPERAND (op, 0), data);
 	}
     }
+  else if (visit_addr
+	   && gimple_code (stmt) == GIMPLE_GOTO)
+    {
+      tree op = gimple_goto_dest (stmt);
+      if (TREE_CODE (op) == ADDR_EXPR)
+	ret |= visit_addr (stmt, TREE_OPERAND (op, 0), data);
+    }
 
   return ret;
 }
diff -Naur gcc-4.8.1.orig/gcc/gimple-ssa-strength-reduction.c gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c
--- gcc-4.8.1.orig/gcc/gimple-ssa-strength-reduction.c	2013-04-15 10:00:06.000000000 -0500
+++ gcc-4.8.1/gcc/gimple-ssa-strength-reduction.c	2013-08-06 10:08:59.668112000 -0500
@@ -1525,11 +1525,23 @@
 static void
 replace_ref (tree *expr, slsr_cand_t c)
 {
-  tree add_expr = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (c->base_expr),
-			       c->base_expr, c->stride);
-  tree mem_ref = fold_build2 (MEM_REF, TREE_TYPE (*expr), add_expr,
-			      double_int_to_tree (c->cand_type, c->index));
-  
+  tree add_expr, mem_ref, acc_type = TREE_TYPE (*expr);
+  unsigned HOST_WIDE_INT misalign;
+  unsigned align;
+
+  /* Ensure the memory reference carries the minimum alignment
+     requirement for the data type.  See PR58041.  */
+  get_object_alignment_1 (*expr, &align, &misalign);
+  if (misalign != 0)
+    align = (misalign & -misalign);
+  if (align < TYPE_ALIGN (acc_type))
+    acc_type = build_aligned_type (acc_type, align);
+
+  add_expr = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (c->base_expr),
+			  c->base_expr, c->stride);
+  mem_ref = fold_build2 (MEM_REF, acc_type, add_expr,
+			 double_int_to_tree (c->cand_type, c->index));
+
   /* Gimplify the base addressing expression for the new MEM_REF tree.  */
   gimple_stmt_iterator gsi = gsi_for_stmt (c->cand_stmt);
   TREE_OPERAND (mem_ref, 0)
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/backend.h gcc-4.8.1/gcc/go/gofrontend/backend.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/backend.h	2012-11-29 12:11:17.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/backend.h	2013-06-18 18:50:42.020320000 -0500
@@ -95,7 +95,10 @@
 
   // Get a function type.  The receiver, parameter, and results are
   // generated from the types in the Function_type.  The Function_type
-  // is provided so that the names are available.
+  // is provided so that the names are available.  This should return
+  // not the type of a Go function (which is a pointer to a struct)
+  // but the type of a C function pointer (which will be used as the
+  // type of the first field of the struct).
   virtual Btype*
   function_type(const Btyped_identifier& receiver,
 		const std::vector<Btyped_identifier>& parameters,
@@ -388,18 +391,22 @@
 		     Bstatement** pstatement) = 0;
 
   // Create a named immutable initialized data structure.  This is
-  // used for type descriptors and map descriptors.  This returns a
-  // Bvariable because it corresponds to an initialized const global
-  // variable in C.
+  // used for type descriptors, map descriptors, and function
+  // descriptors.  This returns a Bvariable because it corresponds to
+  // an initialized const variable in C.
   //
   // NAME is the name to use for the initialized global variable which
   // this call will create.
   //
+  // IS_HIDDEN will be true if the descriptor should only be visible
+  // within the current object.
+  //
   // IS_COMMON is true if NAME may be defined by several packages, and
   // the linker should merge all such definitions.  If IS_COMMON is
   // false, NAME should be defined in only one file.  In general
   // IS_COMMON will be true for the type descriptor of an unnamed type
-  // or a builtin type.
+  // or a builtin type.  IS_HIDDEN and IS_COMMON will never both be
+  // true.
   //
   // TYPE will be a struct type; the type of the returned expression
   // must be a pointer to this struct type.
@@ -409,20 +416,20 @@
   // address.  After calling this the frontend will call
   // immutable_struct_set_init.
   virtual Bvariable*
-  immutable_struct(const std::string& name, bool is_common, Btype* type,
-		   Location) = 0;
+  immutable_struct(const std::string& name, bool is_hidden, bool is_common,
+		   Btype* type, Location) = 0;
 
   // Set the initial value of a variable created by immutable_struct.
-  // The NAME, IS_COMMON, TYPE, and location parameters are the same
-  // ones passed to immutable_struct.  INITIALIZER will be a composite
-  // literal of type TYPE.  It will not contain any function calls or
-  // anything else which can not be put into a read-only data section.
-  // It may contain the address of variables created by
+  // The NAME, IS_HIDDEN, IS_COMMON, TYPE, and location parameters are
+  // the same ones passed to immutable_struct.  INITIALIZER will be a
+  // composite literal of type TYPE.  It will not contain any function
+  // calls or anything else that can not be put into a read-only data
+  // section.  It may contain the address of variables created by
   // immutable_struct.
   virtual void
   immutable_struct_set_init(Bvariable*, const std::string& name,
-			    bool is_common, Btype* type, Location,
-			    Bexpression* initializer) = 0;
+			    bool is_hidden, bool is_common, Btype* type,
+			    Location, Bexpression* initializer) = 0;
 
   // Create a reference to a named immutable initialized data
   // structure defined in some other package.  This will be a
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.cc gcc-4.8.1/gcc/go/gofrontend/expressions.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/expressions.cc	2012-12-21 09:59:27.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/expressions.cc	2013-06-26 17:42:47.881515000 -0500
@@ -1090,6 +1090,15 @@
   return this->statement_->type();
 }
 
+// Determine the type of the expression.
+
+void
+Set_and_use_temporary_expression::do_determine_type(
+    const Type_context* context)
+{
+  this->expr_->determine_type(context);
+}
+
 // Take the address.
 
 void
@@ -1255,17 +1264,16 @@
     go_unreachable();
 }
 
-// Get the tree for a function expression without evaluating the
-// closure.
+// Get the tree for the code of a function expression.
 
 tree
-Func_expression::get_tree_without_closure(Gogo* gogo)
+Func_expression::get_code_pointer(Gogo* gogo, Named_object* no, Location loc)
 {
   Function_type* fntype;
-  if (this->function_->is_function())
-    fntype = this->function_->func_value()->type();
-  else if (this->function_->is_function_declaration())
-    fntype = this->function_->func_declaration_value()->type();
+  if (no->is_function())
+    fntype = no->func_value()->type();
+  else if (no->is_function_declaration())
+    fntype = no->func_declaration_value()->type();
   else
     go_unreachable();
 
@@ -1273,14 +1281,12 @@
   // can't take their address.
   if (fntype->is_builtin())
     {
-      error_at(this->location(),
+      error_at(loc,
 	       "invalid use of special builtin function %qs; must be called",
-	       this->function_->name().c_str());
+	       no->message_name().c_str());
       return error_mark_node;
     }
 
-  Named_object* no = this->function_;
-
   tree id = no->get_id(gogo);
   if (id == error_mark_node)
     return error_mark_node;
@@ -1296,46 +1302,55 @@
   if (fndecl == error_mark_node)
     return error_mark_node;
 
-  return build_fold_addr_expr_loc(this->location().gcc_location(), fndecl);
+  return build_fold_addr_expr_loc(loc.gcc_location(), fndecl);
 }
 
 // Get the tree for a function expression.  This is used when we take
-// the address of a function rather than simply calling it.  If the
-// function has a closure, we must use a trampoline.
+// the address of a function rather than simply calling it.  A func
+// value is represented as a pointer to a block of memory.  The first
+// word of that memory is a pointer to the function code.  The
+// remaining parts of that memory are the addresses of variables that
+// the function closes over.
 
 tree
 Func_expression::do_get_tree(Translate_context* context)
 {
-  Gogo* gogo = context->gogo();
-
-  tree fnaddr = this->get_tree_without_closure(gogo);
-  if (fnaddr == error_mark_node)
-    return error_mark_node;
-
-  go_assert(TREE_CODE(fnaddr) == ADDR_EXPR
-	     && TREE_CODE(TREE_OPERAND(fnaddr, 0)) == FUNCTION_DECL);
-  TREE_ADDRESSABLE(TREE_OPERAND(fnaddr, 0)) = 1;
-
-  // If there is no closure, that is all have to do.
+  // If there is no closure, just use the function descriptor.
   if (this->closure_ == NULL)
-    return fnaddr;
-
-  go_assert(this->function_->func_value()->enclosing() != NULL);
+    {
+      Gogo* gogo = context->gogo();
+      Named_object* no = this->function_;
+      Expression* descriptor;
+      if (no->is_function())
+	descriptor = no->func_value()->descriptor(gogo, no);
+      else if (no->is_function_declaration())
+	{
+	  if (no->func_declaration_value()->type()->is_builtin())
+	    {
+	      error_at(this->location(),
+		       ("invalid use of special builtin function %qs; "
+			"must be called"),
+		       no->message_name().c_str());
+	      return error_mark_node;
+	    }
+	  descriptor = no->func_declaration_value()->descriptor(gogo, no);
+	}
+      else
+	go_unreachable();
 
-  // Get the value of the closure.  This will be a pointer to space
-  // allocated on the heap.
-  tree closure_tree = this->closure_->get_tree(context);
-  if (closure_tree == error_mark_node)
-    return error_mark_node;
-  go_assert(POINTER_TYPE_P(TREE_TYPE(closure_tree)));
+      tree dtree = descriptor->get_tree(context);
+      if (dtree == error_mark_node)
+	return error_mark_node;
+      return build_fold_addr_expr_loc(this->location().gcc_location(), dtree);
+    }
 
-  // Now we need to build some code on the heap.  This code will load
-  // the static chain pointer with the closure and then jump to the
-  // body of the function.  The normal gcc approach is to build the
-  // code on the stack.  Unfortunately we can not do that, as Go
-  // permits us to return the function pointer.
+  go_assert(this->function_->func_value()->enclosing() != NULL);
 
-  return gogo->make_trampoline(fnaddr, closure_tree, this->location());
+  // If there is a closure, then the closure is itself the function
+  // expression.  It is a pointer to a struct whose first field points
+  // to the function code and whose remaining fields are the addresses
+  // of the closed-over variables.
+  return this->closure_->get_tree(context);
 }
 
 // Ast dump for function.
@@ -1361,6 +1376,197 @@
   return new Func_expression(function, closure, location);
 }
 
+// Class Func_descriptor_expression.
+
+// Constructor.
+
+Func_descriptor_expression::Func_descriptor_expression(Named_object* fn)
+  : Expression(EXPRESSION_FUNC_DESCRIPTOR, fn->location()),
+    fn_(fn), dfn_(NULL), dvar_(NULL)
+{
+  go_assert(!fn->is_function() || !fn->func_value()->needs_closure());
+}
+
+// Traversal.
+
+int
+Func_descriptor_expression::do_traverse(Traverse*)
+{
+  return TRAVERSE_CONTINUE;
+}
+
+// All function descriptors have the same type.
+
+Type* Func_descriptor_expression::descriptor_type;
+
+void
+Func_descriptor_expression::make_func_descriptor_type()
+{
+  if (Func_descriptor_expression::descriptor_type != NULL)
+    return;
+  Type* uintptr_type = Type::lookup_integer_type("uintptr");
+  Type* struct_type = Type::make_builtin_struct_type(1, "code", uintptr_type);
+  Func_descriptor_expression::descriptor_type =
+    Type::make_builtin_named_type("functionDescriptor", struct_type);
+}
+
+Type*
+Func_descriptor_expression::do_type()
+{
+  Func_descriptor_expression::make_func_descriptor_type();
+  return Func_descriptor_expression::descriptor_type;
+}
+
+// Copy a Func_descriptor_expression;
+
+Expression*
+Func_descriptor_expression::do_copy()
+{
+  Func_descriptor_expression* fde =
+    Expression::make_func_descriptor(this->fn_);
+  if (this->dfn_ != NULL)
+    fde->set_descriptor_wrapper(this->dfn_);
+  return fde;
+}
+
+// The tree for a function descriptor.
+
+tree
+Func_descriptor_expression::do_get_tree(Translate_context* context)
+{
+  if (this->dvar_ != NULL)
+    return var_to_tree(this->dvar_);
+
+  Gogo* gogo = context->gogo();
+  Named_object* no = this->fn_;
+  Location loc = no->location();
+
+  std::string var_name;
+  if (no->package() == NULL)
+    var_name = gogo->pkgpath_symbol();
+  else
+    var_name = no->package()->pkgpath_symbol();
+  var_name.push_back('.');
+  var_name.append(Gogo::unpack_hidden_name(no->name()));
+  var_name.append("$descriptor");
+
+  Btype* btype = this->type()->get_backend(gogo);
+
+  Bvariable* bvar;
+  if (no->package() != NULL
+      || Linemap::is_predeclared_location(no->location()))
+    {
+      bvar = context->backend()->immutable_struct_reference(var_name, btype,
+							    loc);
+      go_assert(this->dfn_ == NULL);
+    }
+  else
+    {
+      Location bloc = Linemap::predeclared_location();
+      bool is_hidden = ((no->is_function()
+			 && no->func_value()->enclosing() != NULL)
+			|| Gogo::is_thunk(no));
+      bvar = context->backend()->immutable_struct(var_name, is_hidden, false,
+						  btype, bloc);
+      Expression_list* vals = new Expression_list();
+      go_assert(this->dfn_ != NULL);
+      vals->push_back(Expression::make_func_code_reference(this->dfn_, bloc));
+      Expression* init =
+	Expression::make_struct_composite_literal(this->type(), vals, bloc);
+      Translate_context bcontext(gogo, NULL, NULL, NULL);
+      bcontext.set_is_const();
+      Bexpression* binit = tree_to_expr(init->get_tree(&bcontext));
+      context->backend()->immutable_struct_set_init(bvar, var_name, is_hidden,
+						    false, btype, bloc, binit);
+    }
+
+  this->dvar_ = bvar;
+  return var_to_tree(bvar);
+}
+
+// Print a function descriptor expression.
+
+void
+Func_descriptor_expression::do_dump_expression(Ast_dump_context* context) const
+{
+  context->ostream() << "[descriptor " << this->fn_->name() << "]";
+}
+
+// Make a function descriptor expression.
+
+Func_descriptor_expression*
+Expression::make_func_descriptor(Named_object* fn)
+{
+  return new Func_descriptor_expression(fn);
+}
+
+// Make the function descriptor type, so that it can be converted.
+
+void
+Expression::make_func_descriptor_type()
+{
+  Func_descriptor_expression::make_func_descriptor_type();
+}
+
+// A reference to just the code of a function.
+
+class Func_code_reference_expression : public Expression
+{
+ public:
+  Func_code_reference_expression(Named_object* function, Location location)
+    : Expression(EXPRESSION_FUNC_CODE_REFERENCE, location),
+      function_(function)
+  { }
+
+ protected:
+  int
+  do_traverse(Traverse*)
+  { return TRAVERSE_CONTINUE; }
+
+  Type*
+  do_type()
+  { return Type::make_pointer_type(Type::make_void_type()); }
+
+  void
+  do_determine_type(const Type_context*)
+  { }
+
+  Expression*
+  do_copy()
+  {
+    return Expression::make_func_code_reference(this->function_,
+						this->location());
+  }
+
+  tree
+  do_get_tree(Translate_context*);
+
+  void
+  do_dump_expression(Ast_dump_context* context) const
+  { context->ostream() << "[raw " << this->function_->name() << "]" ; }
+
+ private:
+  // The function.
+  Named_object* function_;
+};
+
+// Get the tree for a reference to function code.
+
+tree
+Func_code_reference_expression::do_get_tree(Translate_context* context)
+{
+  return Func_expression::get_code_pointer(context->gogo(), this->function_,
+					   this->location());
+}
+
+// Make a reference to the code of a function.
+
+Expression*
+Expression::make_func_code_reference(Named_object* function, Location location)
+{
+  return new Func_code_reference_expression(function, location);
+}
+
 // Class Unknown_expression.
 
 // Return the name of an unknown expression.
@@ -5462,6 +5668,7 @@
       if (tleft->is_abstract()
 	  && subcontext.type != NULL
 	  && !subcontext.may_be_abstract
+	  && subcontext.type->interface_type() == NULL
 	  && subcontext.type->integer_type() == NULL)
 	this->report_error(("invalid context-determined non-integer type "
 			    "for left operand of shift"));
@@ -5641,6 +5848,20 @@
 	  this->set_is_error();
 	  return;
 	}
+      if (this->op_ == OPERATOR_DIV || this->op_ == OPERATOR_MOD)
+	{
+	  // Division by a zero integer constant is an error.
+	  Numeric_constant rconst;
+	  unsigned long rval;
+	  if (left_type->integer_type() != NULL
+	      && this->right_->numeric_constant_value(&rconst)
+	      && rconst.to_unsigned_long(&rval) == Numeric_constant::NC_UL_VALID
+	      && rval == 0)
+	    {
+	      this->report_error(_("integer division by zero"));
+	      return;
+	    }
+	}
     }
   else
     {
@@ -6429,20 +6650,49 @@
   return Expression::traverse(&this->expr_, traverse);
 }
 
+// Lower the expression.  If this is a method value rather than being
+// called, and the method is accessed via a pointer, we may need to
+// add nil checks.  Introduce a temporary variable so that those nil
+// checks do not cause multiple evaluation.
+
+Expression*
+Bound_method_expression::do_lower(Gogo*, Named_object*,
+				  Statement_inserter* inserter, int)
+{
+  // For simplicity we use a temporary for every call to an embedded
+  // method, even though some of them might be pure value methods and
+  // not require a temporary.
+  if (this->expr_->var_expression() == NULL
+      && this->expr_->temporary_reference_expression() == NULL
+      && this->expr_->set_and_use_temporary_expression() == NULL
+      && (this->method_->field_indexes() != NULL
+	  || (this->method_->is_value_method()
+	      && this->expr_->type()->points_to() != NULL)))
+    {
+      Temporary_statement* temp =
+	Statement::make_temporary(this->expr_->type(), NULL, this->location());
+      inserter->insert(temp);
+      this->expr_ = Expression::make_set_and_use_temporary(temp, this->expr_,
+							   this->location());
+    }
+  return this;
+}
+
 // Return the type of a bound method expression.  The type of this
-// object is really the type of the method with no receiver.  We
-// should be able to get away with just returning the type of the
-// method.
+// object is simply the type of the method with no receiver.
 
 Type*
 Bound_method_expression::do_type()
 {
-  if (this->method_->is_function())
-    return this->method_->func_value()->type();
-  else if (this->method_->is_function_declaration())
-    return this->method_->func_declaration_value()->type();
+  Named_object* fn = this->method_->named_object();
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
   else
     return Type::make_error_type();
+  return fntype->copy_without_receiver();
 }
 
 // Determine the types of a method expression.
@@ -6450,7 +6700,14 @@
 void
 Bound_method_expression::do_determine_type(const Type_context*)
 {
-  Function_type* fntype = this->type()->function_type();
+  Named_object* fn = this->method_->named_object();
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
+  else
+    fntype = NULL;
   if (fntype == NULL || !fntype->is_method())
     this->expr_->determine_type_no_context();
   else
@@ -6465,31 +6722,278 @@
 void
 Bound_method_expression::do_check_types(Gogo*)
 {
-  if (!this->method_->is_function()
-      && !this->method_->is_function_declaration())
-    this->report_error(_("object is not a method"));
+  Named_object* fn = this->method_->named_object();
+  if (!fn->is_function() && !fn->is_function_declaration())
+    {
+      this->report_error(_("object is not a method"));
+      return;
+    }
+
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
   else
+    go_unreachable();
+  Type* rtype = fntype->receiver()->type()->deref();
+  Type* etype = (this->expr_type_ != NULL
+		 ? this->expr_type_
+		 : this->expr_->type());
+  etype = etype->deref();
+  if (!Type::are_identical(rtype, etype, true, NULL))
+    this->report_error(_("method type does not match object type"));
+}
+
+// If a bound method expression is not simply called, then it is
+// represented as a closure.  The closure will hold a single variable,
+// the receiver to pass to the method.  The function will be a simple
+// thunk that pulls that value from the closure and calls the method
+// with the remaining arguments.
+//
+// Because method values are not common, we don't build all thunks for
+// every methods, but instead only build them as we need them.  In
+// particular, we even build them on demand for methods defined in
+// other packages.
+
+Bound_method_expression::Method_value_thunks
+  Bound_method_expression::method_value_thunks;
+
+// Find or create the thunk for METHOD.
+
+Named_object*
+Bound_method_expression::create_thunk(Gogo* gogo, const Method* method,
+				      Named_object* fn)
+{
+  std::pair<Named_object*, Named_object*> val(fn, NULL);
+  std::pair<Method_value_thunks::iterator, bool> ins =
+    Bound_method_expression::method_value_thunks.insert(val);
+  if (!ins.second)
     {
-      Type* rtype = this->type()->function_type()->receiver()->type()->deref();
-      Type* etype = (this->expr_type_ != NULL
-		     ? this->expr_type_
-		     : this->expr_->type());
-      etype = etype->deref();
-      if (!Type::are_identical(rtype, etype, true, NULL))
-	this->report_error(_("method type does not match object type"));
+      // We have seen this method before.
+      go_assert(ins.first->second != NULL);
+      return ins.first->second;
     }
+
+  Location loc = fn->location();
+
+  Function_type* orig_fntype;
+  if (fn->is_function())
+    orig_fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    orig_fntype = fn->func_declaration_value()->type();
+  else
+    orig_fntype = NULL;
+
+  if (orig_fntype == NULL || !orig_fntype->is_method())
+    {
+      ins.first->second = Named_object::make_erroneous_name(Gogo::thunk_name());
+      return ins.first->second;
+    }
+
+  Struct_field_list* sfl = new Struct_field_list();
+  // The type here is wrong--it should be new_fntype.  But we don't
+  // have new_fntype yet, and it doesn't really matter.
+  Type* vt = Type::make_pointer_type(Type::make_void_type());
+  sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc)));
+  sfl->push_back(Struct_field(Typed_identifier("val.1",
+					       orig_fntype->receiver()->type(),
+					       loc)));
+  Type* closure_type = Type::make_struct_type(sfl, loc);
+  closure_type = Type::make_pointer_type(closure_type);
+
+  Function_type* new_fntype = orig_fntype->copy_with_closure(closure_type);
+
+  Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype,
+					      false, loc);
+
+  gogo->start_block(loc);
+
+  Named_object* cp = gogo->lookup("closure.0", NULL);
+  go_assert(cp != NULL
+	    && cp->is_variable()
+	    && cp->var_value()->is_parameter());
+
+  // Field 0 of the closure is the function code pointer, field 1 is
+  // the value on which to invoke the method.
+  Expression* arg = Expression::make_var_reference(cp, loc);
+  arg = Expression::make_unary(OPERATOR_MULT, arg, loc);
+  arg = Expression::make_field_reference(arg, 1, loc);
+
+  Expression* bme = Expression::make_bound_method(arg, method, fn, loc);
+
+  const Typed_identifier_list* orig_params = orig_fntype->parameters();
+  Expression_list* args;
+  if (orig_params == NULL || orig_params->empty())
+    args = NULL;
+  else
+    {
+      const Typed_identifier_list* new_params = new_fntype->parameters();
+      args = new Expression_list();
+      for (Typed_identifier_list::const_iterator p = new_params->begin();
+	   p + 1 != new_params->end();
+	   ++p)
+	{
+	  Named_object* p_no = gogo->lookup(p->name(), NULL);
+	  go_assert(p_no != NULL
+		    && p_no->is_variable()
+		    && p_no->var_value()->is_parameter());
+	  args->push_back(Expression::make_var_reference(p_no, loc));
+	}
+    }
+
+  Call_expression* call = Expression::make_call(bme, args,
+						orig_fntype->is_varargs(),
+						loc);
+  call->set_varargs_are_lowered();
+
+  Statement* s = Statement::make_return_from_call(call, loc);
+  gogo->add_statement(s);
+  Block* b = gogo->finish_block(loc);
+  gogo->add_block(b, loc);
+  gogo->lower_block(new_no, b);
+  gogo->finish_function(loc);
+
+  ins.first->second = new_no;
+  return new_no;
+}
+
+// Return an expression to check *REF for nil while dereferencing
+// according to FIELD_INDEXES.  Update *REF to build up the field
+// reference.  This is a static function so that we don't have to
+// worry about declaring Field_indexes in expressions.h.
+
+static Expression*
+bme_check_nil(const Method::Field_indexes* field_indexes, Location loc,
+	      Expression** ref)
+{
+  if (field_indexes == NULL)
+    return Expression::make_boolean(false, loc);
+  Expression* cond = bme_check_nil(field_indexes->next, loc, ref);
+  Struct_type* stype = (*ref)->type()->deref()->struct_type();
+  go_assert(stype != NULL
+	    && field_indexes->field_index < stype->field_count());
+  if ((*ref)->type()->struct_type() == NULL)
+    {
+      go_assert((*ref)->type()->points_to() != NULL);
+      Expression* n = Expression::make_binary(OPERATOR_EQEQ, *ref,
+					      Expression::make_nil(loc),
+					      loc);
+      cond = Expression::make_binary(OPERATOR_OROR, cond, n, loc);
+      *ref = Expression::make_unary(OPERATOR_MULT, *ref, loc);
+      go_assert((*ref)->type()->struct_type() == stype);
+    }
+  *ref = Expression::make_field_reference(*ref, field_indexes->field_index,
+					  loc);
+  return cond;
 }
 
-// Get the tree for a method expression.  There is no standard tree
-// representation for this.  The only places it may currently be used
-// are in a Call_expression or a Go_statement, which will take it
-// apart directly.  So this has nothing to do at present.
+// Get the tree for a method value.
 
 tree
-Bound_method_expression::do_get_tree(Translate_context*)
+Bound_method_expression::do_get_tree(Translate_context* context)
 {
-  error_at(this->location(), "reference to method other than calling it");
-  return error_mark_node;
+  Named_object* thunk = Bound_method_expression::create_thunk(context->gogo(),
+							      this->method_,
+							      this->function_);
+  if (thunk->is_erroneous())
+    {
+      go_assert(saw_errors());
+      return error_mark_node;
+    }
+
+  // FIXME: We should lower this earlier, but we can't lower it in the
+  // lowering pass because at that point we don't know whether we need
+  // to create the thunk or not.  If the expression is called, we
+  // don't need the thunk.
+
+  Location loc = this->location();
+
+  // If the method expects a value, and we have a pointer, we need to
+  // dereference the pointer.
+
+  Named_object* fn = this->method_->named_object();
+  Function_type* fntype;
+  if (fn->is_function())
+    fntype = fn->func_value()->type();
+  else if (fn->is_function_declaration())
+    fntype = fn->func_declaration_value()->type();
+  else
+    go_unreachable();
+
+  Expression* val = this->expr_;
+  if (fntype->receiver()->type()->points_to() == NULL
+      && val->type()->points_to() != NULL)
+    val = Expression::make_unary(OPERATOR_MULT, val, loc);
+
+  // Note that we are ignoring this->expr_type_ here.  The thunk will
+  // expect a closure whose second field has type this->expr_type_ (if
+  // that is not NULL).  We are going to pass it a closure whose
+  // second field has type this->expr_->type().  Since
+  // this->expr_type_ is only not-NULL for pointer types, we can get
+  // away with this.
+
+  Struct_field_list* fields = new Struct_field_list();
+  fields->push_back(Struct_field(Typed_identifier("fn.0",
+						  thunk->func_value()->type(),
+						  loc)));
+  fields->push_back(Struct_field(Typed_identifier("val.1", val->type(), loc)));
+  Struct_type* st = Type::make_struct_type(fields, loc);
+
+  Expression_list* vals = new Expression_list();
+  vals->push_back(Expression::make_func_code_reference(thunk, loc));
+  vals->push_back(val);
+
+  Expression* ret = Expression::make_struct_composite_literal(st, vals, loc);
+  ret = Expression::make_heap_composite(ret, loc);
+
+  tree ret_tree = ret->get_tree(context);
+
+  Expression* nil_check = NULL;
+
+  // See whether the expression or any embedded pointers are nil.
+
+  Expression* expr = this->expr_;
+  if (this->method_->field_indexes() != NULL)
+    {
+      // Note that we are evaluating this->expr_ twice, but that is OK
+      // because in the lowering pass we forced it into a temporary
+      // variable.
+      Expression* ref = expr;
+      nil_check = bme_check_nil(this->method_->field_indexes(), loc, &ref);
+      expr = ref;
+    }
+
+  if (this->method_->is_value_method() && expr->type()->points_to() != NULL)
+    {
+      Expression* n = Expression::make_binary(OPERATOR_EQEQ, expr,
+					      Expression::make_nil(loc),
+					      loc);
+      if (nil_check == NULL)
+	nil_check = n;
+      else
+	nil_check = Expression::make_binary(OPERATOR_OROR, nil_check, n, loc);
+    }
+
+  if (nil_check != NULL)
+    {
+      tree nil_check_tree = nil_check->get_tree(context);
+      tree crash =
+	context->gogo()->runtime_error(RUNTIME_ERROR_NIL_DEREFERENCE, loc);
+      if (ret_tree == error_mark_node
+	  || nil_check_tree == error_mark_node
+	  || crash == error_mark_node)
+	return error_mark_node;
+
+      ret_tree = fold_build2_loc(loc.gcc_location(), COMPOUND_EXPR,
+				 TREE_TYPE(ret_tree),
+				 build3_loc(loc.gcc_location(), COND_EXPR,
+					    void_type_node, nil_check_tree,
+					    crash, NULL_TREE),
+				 ret_tree);
+    }
+
+  return ret_tree;
 }
 
 // Dump ast representation of a bound method expression.
@@ -6508,16 +7012,16 @@
       ast_dump_context->ostream() << ")";
     }
     
-  ast_dump_context->ostream() << "." << this->method_->name();
+  ast_dump_context->ostream() << "." << this->function_->name();
 }
 
 // Make a method expression.
 
 Bound_method_expression*
-Expression::make_bound_method(Expression* expr, Named_object* method,
-			      Location location)
+Expression::make_bound_method(Expression* expr, const Method* method,
+			      Named_object* function, Location location)
 {
-  return new Bound_method_expression(expr, method, location);
+  return new Bound_method_expression(expr, method, function, location);
 }
 
 // Class Builtin_call_expression.  This is used for a call to a
@@ -6722,6 +7226,26 @@
       return Expression::make_error(loc);
     }
 
+  if (this->code_ == BUILTIN_OFFSETOF)
+    {
+      Expression* arg = this->one_arg();
+      Field_reference_expression* farg = arg->field_reference_expression();
+      while (farg != NULL)
+	{
+	  if (!farg->implicit())
+	    break;
+	  // When the selector refers to an embedded field,
+	  // it must not be reached through pointer indirections.
+	  if (farg->expr()->deref() != farg->expr())
+	    {
+	      this->report_error(_("argument of Offsetof implies indirection of an embedded field"));
+	      return this;
+	    }
+	  // Go up until we reach the original base.
+	  farg = farg->expr()->field_reference_expression();
+	}
+    }
+ 
   if (this->is_constant())
     {
       Numeric_constant nc;
@@ -6874,6 +7398,8 @@
   Type* uintptr_type = Type::lookup_integer_type("uintptr");
   int uintptr_bits = uintptr_type->integer_type()->bits();
 
+  Type_context int_context(Type::lookup_integer_type("int"), false);
+
   ++parg;
   Expression* len_arg;
   if (parg == args->end())
@@ -6892,6 +7418,7 @@
   else
     {
       len_arg = *parg;
+      len_arg->determine_type(&int_context);
       if (!this->check_int_value(len_arg, true))
 	return Expression::make_error(this->location());
       if (len_arg->type()->integer_type() != NULL
@@ -6904,6 +7431,7 @@
   if (is_slice && parg != args->end())
     {
       cap_arg = *parg;
+      cap_arg->determine_type(&int_context);
       if (!this->check_int_value(cap_arg, false))
 	return Expression::make_error(this->location());
 
@@ -7279,19 +7807,31 @@
       Field_reference_expression* farg = arg->field_reference_expression();
       if (farg == NULL)
 	return false;
-      Expression* struct_expr = farg->expr();
-      Type* st = struct_expr->type();
-      if (st->struct_type() == NULL)
-	return false;
-      if (st->named_type() != NULL)
-	st->named_type()->convert(this->gogo_);
-      unsigned int offset;
-      if (!st->struct_type()->backend_field_offset(this->gogo_,
-						   farg->field_index(),
-						   &offset))
-	return false;
+      unsigned int total_offset = 0;
+      while (true)
+        {
+          Expression* struct_expr = farg->expr();
+          Type* st = struct_expr->type();
+          if (st->struct_type() == NULL)
+            return false;
+          if (st->named_type() != NULL)
+            st->named_type()->convert(this->gogo_);
+          unsigned int offset;
+          if (!st->struct_type()->backend_field_offset(this->gogo_,
+						       farg->field_index(),
+						       &offset))
+            return false;
+          total_offset += offset;
+          if (farg->implicit() && struct_expr->field_reference_expression() != NULL)
+            {
+              // Go up until we reach the original base.
+              farg = struct_expr->field_reference_expression();
+              continue;
+            }
+          break;
+        }
       nc->set_unsigned_long(Type::lookup_integer_type("uintptr"),
-			    static_cast<unsigned long>(offset));
+			    static_cast<unsigned long>(total_offset));
       return true;
     }
   else if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG)
@@ -7509,6 +8049,8 @@
     case BUILTIN_REAL:
     case BUILTIN_IMAG:
       arg_type = Builtin_call_expression::complex_type(context->type);
+      if (arg_type == NULL)
+	arg_type = Type::lookup_complex_type("complex128");
       is_print = false;
       break;
 
@@ -7517,6 +8059,8 @@
 	// For the complex function the type of one operand can
 	// determine the type of the other, as in a binary expression.
 	arg_type = Builtin_call_expression::real_imag_type(context->type);
+	if (arg_type == NULL)
+	  arg_type = Type::lookup_float_type("float64");
 	if (args != NULL && args->size() == 2)
 	  {
 	    Type* t1 = args->front()->type();
@@ -8509,6 +9053,74 @@
 
 // Class Call_expression.
 
+// A Go function can be viewed in a couple of different ways.  The
+// code of a Go function becomes a backend function with parameters
+// whose types are simply the backend representation of the Go types.
+// If there are multiple results, they are returned as a backend
+// struct.
+
+// However, when Go code refers to a function other than simply
+// calling it, the backend type of that function is actually a struct.
+// The first field of the struct points to the Go function code
+// (sometimes a wrapper as described below).  The remaining fields
+// hold addresses of closed-over variables.  This struct is called a
+// closure.
+
+// There are a few cases to consider.
+
+// A direct function call of a known function in package scope.  In
+// this case there are no closed-over variables, and we know the name
+// of the function code.  We can simply produce a backend call to the
+// function directly, and not worry about the closure.
+
+// A direct function call of a known function literal.  In this case
+// we know the function code and we know the closure.  We generate the
+// function code such that it expects an additional final argument of
+// the closure type.  We pass the closure as the last argument, after
+// the other arguments.
+
+// An indirect function call.  In this case we have a closure.  We
+// load the pointer to the function code from the first field of the
+// closure.  We pass the address of the closure as the last argument.
+
+// A call to a method of an interface.  Type methods are always at
+// package scope, so we call the function directly, and don't worry
+// about the closure.
+
+// This means that for a function at package scope we have two cases.
+// One is the direct call, which has no closure.  The other is the
+// indirect call, which does have a closure.  We can't simply ignore
+// the closure, even though it is the last argument, because that will
+// fail on targets where the function pops its arguments.  So when
+// generating a closure for a package-scope function we set the
+// function code pointer in the closure to point to a wrapper
+// function.  This wrapper function accepts a final argument that
+// points to the closure, ignores it, and calls the real function as a
+// direct function call.  This wrapper will normally be efficient, and
+// can often simply be a tail call to the real function.
+
+// We don't use GCC's static chain pointer because 1) we don't need
+// it; 2) GCC only permits using a static chain to call a known
+// function, so we can't use it for an indirect call anyhow.  Since we
+// can't use it for an indirect call, we may as well not worry about
+// using it for a direct call either.
+
+// We pass the closure last rather than first because it means that
+// the function wrapper we put into a closure for a package-scope
+// function can normally just be a tail call to the real function.
+
+// For method expressions we generate a wrapper that loads the
+// receiver from the closure and then calls the method.  This
+// unfortunately forces reshuffling the arguments, since there is a
+// new first argument, but we can't avoid reshuffling either for
+// method expressions or for indirect calls of package-scope
+// functions, and since the latter are more common we reshuffle for
+// method expressions.
+
+// Note that the Go code retains the Go types.  The extra final
+// argument only appears when we convert to the backend
+// representation.
+
 // Traversal.
 
 int
@@ -8624,7 +9236,7 @@
   Bound_method_expression* bme = this->fn_->bound_method_expression();
   if (bme != NULL)
     {
-      Named_object* method = bme->method();
+      Named_object* methodfn = bme->function();
       Expression* first_arg = bme->first_argument();
 
       // We always pass a pointer when calling a method.
@@ -8665,7 +9277,7 @@
       // old arguments, because we may be traversing them up in some
       // caller.  FIXME.
       this->args_ = new_args;
-      this->fn_ = Expression::make_func_reference(method, NULL,
+      this->fn_ = Expression::make_func_reference(methodfn, NULL,
 						  bme->location());
     }
 
@@ -9117,11 +9729,21 @@
   const bool has_closure = func != NULL && func->closure() != NULL;
   const bool is_interface_method = interface_method != NULL;
 
+  int closure_arg;
+  if (has_closure)
+    closure_arg = 1;
+  else if (func != NULL)
+    closure_arg = 0;
+  else if (is_interface_method)
+    closure_arg = 0;
+  else
+    closure_arg = 1;
+
   int nargs;
   tree* args;
   if (this->args_ == NULL || this->args_->empty())
     {
-      nargs = is_interface_method ? 1 : 0;
+      nargs = (is_interface_method ? 1 : 0) + closure_arg;
       args = nargs == 0 ? NULL : new tree[nargs];
     }
   else if (fntype->parameters() == NULL || fntype->parameters()->empty())
@@ -9130,7 +9752,7 @@
       go_assert(!is_interface_method
 		&& fntype->is_method()
 		&& this->args_->size() == 1);
-      nargs = 1;
+      nargs = 1 + closure_arg;
       args = new tree[nargs];
       args[0] = this->args_->front()->get_tree(context);
     }
@@ -9141,6 +9763,7 @@
       nargs = this->args_->size();
       int i = is_interface_method ? 1 : 0;
       nargs += i;
+      nargs += closure_arg;
       args = new tree[nargs];
 
       Typed_identifier_list::const_iterator pp = params->begin();
@@ -9161,36 +9784,71 @@
 						       arg_val,
 						       location);
 	  if (args[i] == error_mark_node)
-	    {
-	      delete[] args;
-	      return error_mark_node;
-	    }
+	    return error_mark_node;
 	}
       go_assert(pp == params->end());
-      go_assert(i == nargs);
+      go_assert(i + closure_arg == nargs);
     }
 
-  tree rettype = TREE_TYPE(TREE_TYPE(type_to_tree(fntype->get_backend(gogo))));
+  tree fntype_tree = type_to_tree(fntype->get_backend(gogo));
+  if (fntype_tree == error_mark_node)
+    return error_mark_node;
+  go_assert(POINTER_TYPE_P(fntype_tree));
+  if (TREE_TYPE(fntype_tree) == error_mark_node)
+    return error_mark_node;
+  go_assert(TREE_CODE(TREE_TYPE(fntype_tree)) == RECORD_TYPE);
+  tree fnfield_type = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(fntype_tree)));
+  if (fnfield_type == error_mark_node)
+    return error_mark_node;
+  go_assert(FUNCTION_POINTER_TYPE_P(fnfield_type));
+  tree rettype = TREE_TYPE(TREE_TYPE(fnfield_type));
   if (rettype == error_mark_node)
-    {
-      delete[] args;
-      return error_mark_node;
-    }
+    return error_mark_node;
 
   tree fn;
-  if (has_closure)
-    fn = func->get_tree_without_closure(gogo);
+  if (func != NULL)
+    {
+      Named_object* no = func->named_object();
+      go_assert(!no->is_function()
+		|| !no->func_value()->is_descriptor_wrapper());
+      fn = Func_expression::get_code_pointer(gogo, no, location);
+      if (has_closure)
+	{
+	  go_assert(closure_arg == 1 && nargs > 0);
+	  args[nargs - 1] = func->closure()->get_tree(context);
+	}
+    }
   else if (!is_interface_method)
-    fn = this->fn_->get_tree(context);
-  else
-    fn = this->interface_method_function(context, interface_method, &args[0]);
-
-  if (fn == error_mark_node || TREE_TYPE(fn) == error_mark_node)
     {
-      delete[] args;
-      return error_mark_node;
+      tree closure_tree = this->fn_->get_tree(context);
+      if (closure_tree == error_mark_node)
+	return error_mark_node;
+      tree fnc = fold_convert_loc(location.gcc_location(), fntype_tree,
+				  closure_tree);
+      go_assert(POINTER_TYPE_P(TREE_TYPE(fnc))
+		&& (TREE_CODE(TREE_TYPE(TREE_TYPE(fnc)))
+		    == RECORD_TYPE));
+      tree field = TYPE_FIELDS(TREE_TYPE(TREE_TYPE(fnc)));
+      fn = fold_build3_loc(location.gcc_location(), COMPONENT_REF,
+			   TREE_TYPE(field),
+			   build_fold_indirect_ref_loc(location.gcc_location(),
+						       fnc),
+			   field, NULL_TREE);
+      go_assert(closure_arg == 1 && nargs > 0);
+      args[nargs - 1] = closure_tree;
+    }      
+  else
+    {
+      fn = this->interface_method_function(context, interface_method,
+					   &args[0]);
+      if (fn == error_mark_node)
+	return error_mark_node;
+      go_assert(closure_arg == 0);
     }
 
+  if (fn == error_mark_node || TREE_TYPE(fn) == error_mark_node)
+    return error_mark_node;
+
   tree fndecl = fn;
   if (TREE_CODE(fndecl) == ADDR_EXPR)
     fndecl = TREE_OPERAND(fndecl, 0);
@@ -9198,12 +9856,7 @@
   // Add a type cast in case the type of the function is a recursive
   // type which refers to itself.
   if (!DECL_P(fndecl) || !DECL_IS_BUILTIN(fndecl))
-    {
-      tree fnt = type_to_tree(fntype->get_backend(gogo));
-      if (fnt == error_mark_node)
-	return error_mark_node;
-      fn = fold_convert_loc(location.gcc_location(), fnt, fn);
-    }
+    fn = fold_convert_loc(location.gcc_location(), fnfield_type, fn);
 
   // This is to support builtin math functions when using 80387 math.
   tree excess_type = NULL_TREE;
@@ -9247,13 +9900,6 @@
 
   SET_EXPR_LOCATION(ret, location.gcc_location());
 
-  if (has_closure)
-    {
-      tree closure_tree = func->closure()->get_tree(context);
-      if (closure_tree != error_mark_node)
-	CALL_EXPR_STATIC_CHAIN(ret) = closure_tree;
-    }
-
   // If this is a recursive function type which returns itself, as in
   //   type F func() F
   // we have used ptr_type_node for the return type.  Add a cast here
@@ -9274,24 +9920,6 @@
   if (this->results_ != NULL)
     ret = this->set_results(context, ret);
 
-  // We can't unwind the stack past a call to nil, so we need to
-  // insert an explicit check so that the panic can be recovered.
-  if (func == NULL)
-    {
-      tree compare = fold_build2_loc(location.gcc_location(), EQ_EXPR,
-				     boolean_type_node, fn,
-				     fold_convert_loc(location.gcc_location(),
-						      TREE_TYPE(fn),
-						      null_pointer_node));
-      tree crash = build3_loc(location.gcc_location(), COND_EXPR,
-			      void_type_node, compare,
-			      gogo->runtime_error(RUNTIME_ERROR_NIL_DEREFERENCE,
-						  location),
-			      NULL_TREE);
-      ret = fold_build2_loc(location.gcc_location(), COMPOUND_EXPR,
-			    TREE_TYPE(ret), crash, ret);
-    }
-
   this->tree_ = ret;
 
   return ret;
@@ -9774,13 +10402,20 @@
 void
 Array_index_expression::do_check_types(Gogo*)
 {
-  if (this->start_->type()->integer_type() == NULL)
+  Numeric_constant nc;
+  unsigned long v;
+  if (this->start_->type()->integer_type() == NULL
+      && !this->start_->type()->is_error()
+      && (!this->start_->numeric_constant_value(&nc)
+	  || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
     this->report_error(_("index must be integer"));
   if (this->end_ != NULL
       && this->end_->type()->integer_type() == NULL
       && !this->end_->type()->is_error()
       && !this->end_->is_nil_expression()
-      && !this->end_->is_error_expression())
+      && !this->end_->is_error_expression()
+      && (!this->end_->numeric_constant_value(&nc)
+	  || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
     this->report_error(_("slice end must be integer"));
 
   Array_type* array_type = this->array_->type()->array_type();
@@ -10845,6 +11480,28 @@
   return Expression::traverse(&this->expr_, traverse);
 }
 
+// Lower the expression.  If this expression is not called, we need to
+// evaluate the expression twice when converting to the backend
+// interface.  So introduce a temporary variable if necessary.
+
+Expression*
+Interface_field_reference_expression::do_lower(Gogo*, Named_object*,
+					       Statement_inserter* inserter,
+					       int)
+{
+  if (this->expr_->var_expression() == NULL
+      && this->expr_->temporary_reference_expression() == NULL
+      && this->expr_->set_and_use_temporary_expression() == NULL)
+    {
+      Temporary_statement* temp =
+	Statement::make_temporary(this->expr_->type(), NULL, this->location());
+      inserter->insert(temp);
+      this->expr_ = Expression::make_set_and_use_temporary(temp, this->expr_,
+							   this->location());
+    }
+  return this;
+}
+
 // Return the type of an interface field reference.
 
 Type*
@@ -10905,18 +11562,188 @@
     }
 }
 
-// Get a tree for a reference to a field in an interface.  There is no
-// standard tree type representation for this: it's a function
-// attached to its first argument, like a Bound_method_expression.
-// The only places it may currently be used are in a Call_expression
-// or a Go_statement, which will take it apart directly.  So this has
-// nothing to do at present.
+// If an interface field reference is not simply called, then it is
+// represented as a closure.  The closure will hold a single variable,
+// the value of the interface on which the method should be called.
+// The function will be a simple thunk that pulls the value from the
+// closure and calls the method with the remaining arguments.
+
+// Because method values are not common, we don't build all thunks for
+// all possible interface methods, but instead only build them as we
+// need them.  In particular, we even build them on demand for
+// interface methods defined in other packages.
+
+Interface_field_reference_expression::Interface_method_thunks
+  Interface_field_reference_expression::interface_method_thunks;
+
+// Find or create the thunk to call method NAME on TYPE.
+
+Named_object*
+Interface_field_reference_expression::create_thunk(Gogo* gogo,
+						   Interface_type* type,
+						   const std::string& name)
+{
+  std::pair<Interface_type*, Method_thunks*> val(type, NULL);
+  std::pair<Interface_method_thunks::iterator, bool> ins =
+    Interface_field_reference_expression::interface_method_thunks.insert(val);
+  if (ins.second)
+    {
+      // This is the first time we have seen this interface.
+      ins.first->second = new Method_thunks();
+    }
+
+  for (Method_thunks::const_iterator p = ins.first->second->begin();
+       p != ins.first->second->end();
+       p++)
+    if (p->first == name)
+      return p->second;
+
+  Location loc = type->location();
+
+  const Typed_identifier* method_id = type->find_method(name);
+  if (method_id == NULL)
+    return Named_object::make_erroneous_name(Gogo::thunk_name());
+
+  Function_type* orig_fntype = method_id->type()->function_type();
+  if (orig_fntype == NULL)
+    return Named_object::make_erroneous_name(Gogo::thunk_name());
+
+  Struct_field_list* sfl = new Struct_field_list();
+  // The type here is wrong--it should be new_fntype.  But we don't
+  // have new_fntype yet, and it doesn't really matter.
+  Type* vt = Type::make_pointer_type(Type::make_void_type());
+  sfl->push_back(Struct_field(Typed_identifier("fn.0", vt, loc)));
+  sfl->push_back(Struct_field(Typed_identifier("val.1", type, loc)));
+  Type* closure_type = Type::make_struct_type(sfl, loc);
+  closure_type = Type::make_pointer_type(closure_type);
+
+  Function_type* new_fntype = orig_fntype->copy_with_closure(closure_type);
+
+  Named_object* new_no = gogo->start_function(Gogo::thunk_name(), new_fntype,
+					      false, loc);
+
+  gogo->start_block(loc);
+
+  Named_object* cp = gogo->lookup("closure.0", NULL);
+  go_assert(cp != NULL
+	    && cp->is_variable()
+	    && cp->var_value()->is_parameter());
+
+  // Field 0 of the closure is the function code pointer, field 1 is
+  // the value on which to invoke the method.
+  Expression* arg = Expression::make_var_reference(cp, loc);
+  arg = Expression::make_unary(OPERATOR_MULT, arg, loc);
+  arg = Expression::make_field_reference(arg, 1, loc);
+
+  Expression *ifre = Expression::make_interface_field_reference(arg, name,
+								loc);
+
+  const Typed_identifier_list* orig_params = orig_fntype->parameters();
+  Expression_list* args;
+  if (orig_params == NULL || orig_params->empty())
+    args = NULL;
+  else
+    {
+      const Typed_identifier_list* new_params = new_fntype->parameters();
+      args = new Expression_list();
+      for (Typed_identifier_list::const_iterator p = new_params->begin();
+	   p + 1 != new_params->end();
+	   ++p)
+	{
+	  Named_object* p_no = gogo->lookup(p->name(), NULL);
+	  go_assert(p_no != NULL
+		    && p_no->is_variable()
+		    && p_no->var_value()->is_parameter());
+	  args->push_back(Expression::make_var_reference(p_no, loc));
+	}
+    }
+
+  Call_expression* call = Expression::make_call(ifre, args,
+						orig_fntype->is_varargs(),
+						loc);
+  call->set_varargs_are_lowered();
+
+  Statement* s = Statement::make_return_from_call(call, loc);
+  gogo->add_statement(s);
+  Block* b = gogo->finish_block(loc);
+  gogo->add_block(b, loc);
+  gogo->lower_block(new_no, b);
+  gogo->finish_function(loc);
+
+  ins.first->second->push_back(std::make_pair(name, new_no));
+  return new_no;
+}
+
+// Get a tree for a method value.
 
 tree
-Interface_field_reference_expression::do_get_tree(Translate_context*)
+Interface_field_reference_expression::do_get_tree(Translate_context* context)
 {
-  error_at(this->location(), "reference to method other than calling it");
-  return error_mark_node;
+  Interface_type* type = this->expr_->type()->interface_type();
+  if (type == NULL)
+    {
+      go_assert(saw_errors());
+      return error_mark_node;
+    }
+
+  Named_object* thunk =
+    Interface_field_reference_expression::create_thunk(context->gogo(),
+						       type, this->name_);
+  if (thunk->is_erroneous())
+    {
+      go_assert(saw_errors());
+      return error_mark_node;
+    }
+
+  // FIXME: We should lower this earlier, but we can't it lower it in
+  // the lowering pass because at that point we don't know whether we
+  // need to create the thunk or not.  If the expression is called, we
+  // don't need the thunk.
+
+  Location loc = this->location();
+
+  Struct_field_list* fields = new Struct_field_list();
+  fields->push_back(Struct_field(Typed_identifier("fn.0",
+						  thunk->func_value()->type(),
+						  loc)));
+  fields->push_back(Struct_field(Typed_identifier("val.1",
+						  this->expr_->type(),
+						  loc)));
+  Struct_type* st = Type::make_struct_type(fields, loc);
+
+  Expression_list* vals = new Expression_list();
+  vals->push_back(Expression::make_func_code_reference(thunk, loc));
+  vals->push_back(this->expr_);
+
+  Expression* expr = Expression::make_struct_composite_literal(st, vals, loc);
+  expr = Expression::make_heap_composite(expr, loc);
+
+  tree closure_tree = expr->get_tree(context);
+
+  // Note that we are evaluating this->expr_ twice, but that is OK
+  // because in the lowering pass we forced it into a temporary
+  // variable.
+  tree expr_tree = this->expr_->get_tree(context);
+  tree nil_check_tree = Expression::comparison_tree(context,
+						    Type::lookup_bool_type(),
+						    OPERATOR_EQEQ,
+						    this->expr_->type(),
+						    expr_tree,
+						    Type::make_nil_type(),
+						    null_pointer_node,
+						    loc);
+  tree crash = context->gogo()->runtime_error(RUNTIME_ERROR_NIL_DEREFERENCE,
+					      loc);
+  if (closure_tree == error_mark_node
+      || nil_check_tree == error_mark_node
+      || crash == error_mark_node)
+    return error_mark_node;
+  return fold_build2_loc(loc.gcc_location(), COMPOUND_EXPR,
+			 TREE_TYPE(closure_tree),
+			 build3_loc(loc.gcc_location(), COND_EXPR,
+				    void_type_node, nil_check_tree, crash,
+				    NULL_TREE),
+			 closure_tree);
 }
 
 // Dump ast representation for an interface field reference.
@@ -11114,8 +11941,10 @@
   // as their first argument.  If this is for a pointer type, we can
   // simply reuse the existing function.  We use an internal hack to
   // get the right type.
-
-  if (method != NULL && is_pointer)
+  // FIXME: This optimization is disabled because it doesn't yet work
+  // with function descriptors when the method expression is not
+  // directly called.
+  if (method != NULL && is_pointer && false)
     {
       Named_object* mno = (method->needs_stub_method()
 			   ? method->stub_object()
@@ -11170,22 +11999,7 @@
 						method_type->is_varargs(),
 						location);
 
-  size_t count = call->result_count();
-  Statement* s;
-  if (count == 0)
-    s = Statement::make_statement(call, true);
-  else
-    {
-      Expression_list* retvals = new Expression_list();
-      if (count <= 1)
-	retvals->push_back(call);
-      else
-	{
-	  for (size_t i = 0; i < count; ++i)
-	    retvals->push_back(Expression::make_call_result(call, i));
-	}
-      s = Statement::make_return_statement(retvals, location);
-    }
+  Statement* s = Statement::make_return_from_call(call, location);
   gogo->add_statement(s);
 
   Block* b = gogo->finish_block(location);
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/expressions.h gcc-4.8.1/gcc/go/gofrontend/expressions.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/expressions.h	2013-01-28 18:28:09.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/expressions.h	2013-06-24 17:11:25.306173000 -0500
@@ -16,6 +16,7 @@
 class Traverse;
 class Statement_inserter;
 class Type;
+class Method;
 struct Type_context;
 class Integer_type;
 class Float_type;
@@ -32,6 +33,7 @@
 class Binary_expression;
 class Call_expression;
 class Func_expression;
+class Func_descriptor_expression;
 class Unknown_expression;
 class Index_expression;
 class Map_index_expression;
@@ -67,6 +69,8 @@
     EXPRESSION_SET_AND_USE_TEMPORARY,
     EXPRESSION_SINK,
     EXPRESSION_FUNC_REFERENCE,
+    EXPRESSION_FUNC_DESCRIPTOR,
+    EXPRESSION_FUNC_CODE_REFERENCE,
     EXPRESSION_UNKNOWN_REFERENCE,
     EXPRESSION_BOOLEAN,
     EXPRESSION_STRING,
@@ -150,10 +154,24 @@
   static Expression*
   make_sink(Location);
 
-  // Make a reference to a function in an expression.
+  // Make a reference to a function in an expression.  This returns a
+  // pointer to the struct holding the address of the function
+  // followed by any closed-over variables.
   static Expression*
   make_func_reference(Named_object*, Expression* closure, Location);
 
+  // Make a function descriptor, an immutable struct with a single
+  // field that points to the function code.  This may only be used
+  // with functions that do not have closures.  FN is the function for
+  // which we are making the descriptor.
+  static Func_descriptor_expression*
+  make_func_descriptor(Named_object* fn);
+
+  // Make a reference to the code of a function.  This is used to set
+  // descriptor and closure fields.
+  static Expression*
+  make_func_code_reference(Named_object*, Location);
+
   // Make a reference to an unknown name.  In a correct program this
   // will always be lowered to a real const/var/func reference.
   static Unknown_expression*
@@ -207,9 +225,11 @@
   make_call_result(Call_expression*, unsigned int index);
 
   // Make an expression which is a method bound to its first
-  // parameter.
+  // parameter.  METHOD is the method being called, FUNCTION is the
+  // function to call.
   static Bound_method_expression*
-  make_bound_method(Expression* object, Named_object* method, Location);
+  make_bound_method(Expression* object, const Method* method,
+		    Named_object* function, Location);
 
   // Make an index or slice expression.  This is a parser expression
   // which represents LEFT[START:END].  END may be NULL, meaning an
@@ -523,6 +543,11 @@
   bool
   is_local_variable() const;
 
+  // Make the builtin function descriptor type, so that it can be
+  // converted.
+  static void
+  make_func_descriptor_type();
+
   // Traverse an expression.
   static int
   traverse(Expression**, Traverse*);
@@ -1057,8 +1082,7 @@
   do_type();
 
   void
-  do_determine_type(const Type_context*)
-  { }
+  do_determine_type(const Type_context*);
 
   Expression*
   do_copy()
@@ -1484,7 +1508,7 @@
   { }
 
   // Return the object associated with the function.
-  const Named_object*
+  Named_object*
   named_object() const
   { return this->function_; }
 
@@ -1494,9 +1518,9 @@
   closure()
   { return this->closure_; }
 
-  // Return a tree for this function without evaluating the closure.
-  tree
-  get_tree_without_closure(Gogo*);
+  // Return a tree for the code for a function.
+  static tree
+  get_code_pointer(Gogo*, Named_object* function, Location loc);
 
  protected:
   int
@@ -1532,11 +1556,68 @@
   // The function itself.
   Named_object* function_;
   // A closure.  This is normally NULL.  For a nested function, it may
-  // be a heap-allocated struct holding pointers to all the variables
-  // referenced by this function and defined in enclosing functions.
+  // be a struct holding pointers to all the variables referenced by
+  // this function and defined in enclosing functions.
   Expression* closure_;
 };
 
+// A function descriptor.  A function descriptor is a struct with a
+// single field pointing to the function code.  This is used for
+// functions without closures.
+
+class Func_descriptor_expression : public Expression
+{
+ public:
+  Func_descriptor_expression(Named_object* fn);
+
+  // Set the descriptor wrapper.
+  void
+  set_descriptor_wrapper(Named_object* dfn)
+  {
+    go_assert(this->dfn_ == NULL);
+    this->dfn_ = dfn;
+  }
+
+  // Make the function descriptor type, so that it can be converted.
+  static void
+  make_func_descriptor_type();
+
+ protected:
+  int
+  do_traverse(Traverse*);
+
+  Type*
+  do_type();
+
+  void
+  do_determine_type(const Type_context*)
+  { }
+
+  Expression*
+  do_copy();
+
+  bool
+  do_is_addressable() const
+  { return true; }
+
+  tree
+  do_get_tree(Translate_context*);
+
+  void
+  do_dump_expression(Ast_dump_context* context) const;
+
+ private:
+  // The type of all function descriptors.
+  static Type* descriptor_type;
+
+  // The function for which this is the descriptor.
+  Named_object* fn_;
+  // The descriptor function.
+  Named_object* dfn_;
+  // The descriptor variable.
+  Bvariable* dvar_;
+};
+
 // A reference to an unknown name.
 
 class Unknown_expression : public Parser_expression
@@ -1773,10 +1854,10 @@
 class Bound_method_expression : public Expression
 {
  public:
-  Bound_method_expression(Expression* expr, Named_object* method,
-			  Location location)
+  Bound_method_expression(Expression* expr, const Method *method,
+			  Named_object* function, Location location)
     : Expression(EXPRESSION_BOUND_METHOD, location),
-      expr_(expr), expr_type_(NULL), method_(method)
+      expr_(expr), expr_type_(NULL), method_(method), function_(function)
   { }
 
   // Return the object which is the first argument.
@@ -1791,20 +1872,33 @@
   first_argument_type() const
   { return this->expr_type_; }
 
-  // Return the method function.
-  Named_object*
-  method()
+  // Return the method.
+  const Method*
+  method() const
   { return this->method_; }
 
+  // Return the function to call.
+  Named_object*
+  function() const
+  { return this->function_; }
+
   // Set the implicit type of the expression.
   void
   set_first_argument_type(Type* type)
   { this->expr_type_ = type; }
 
+  // Create a thunk to call FUNCTION, for METHOD, when it is used as
+  // part of a method value.
+  static Named_object*
+  create_thunk(Gogo*, const Method* method, Named_object* function);
+
  protected:
   int
   do_traverse(Traverse*);
 
+  Expression*
+  do_lower(Gogo*, Named_object*, Statement_inserter*, int);
+
   Type*
   do_type();
 
@@ -1818,7 +1912,7 @@
   do_copy()
   {
     return new Bound_method_expression(this->expr_->copy(), this->method_,
-				       this->location());
+				       this->function_, this->location());
   }
 
   tree
@@ -1828,6 +1922,11 @@
   do_dump_expression(Ast_dump_context*) const;
 
  private:
+  // A mapping from method functions to the thunks we have created for
+  // them.
+  typedef Unordered_map(Named_object*, Named_object*) Method_value_thunks;
+  static Method_value_thunks method_value_thunks;
+
   // The object used to find the method.  This is passed to the method
   // as the first argument.
   Expression* expr_;
@@ -1835,8 +1934,12 @@
   // NULL in the normal case, non-NULL when using a method from an
   // anonymous field which does not require a stub.
   Type* expr_type_;
-  // The method itself.
-  Named_object* method_;
+  // The method.
+  const Method* method_;
+  // The function to call.  This is not the same as
+  // method_->named_object() when the method has a stub.  This will be
+  // the real function rather than the stub.
+  Named_object* function_;
 };
 
 // A reference to a field in a struct.
@@ -1847,7 +1950,7 @@
   Field_reference_expression(Expression* expr, unsigned int field_index,
 			     Location location)
     : Expression(EXPRESSION_FIELD_REFERENCE, location),
-      expr_(expr), field_index_(field_index), called_fieldtrack_(false)
+      expr_(expr), field_index_(field_index), implicit_(false), called_fieldtrack_(false)
   { }
 
   // Return the struct expression.
@@ -1860,6 +1963,15 @@
   field_index() const
   { return this->field_index_; }
 
+  // Return whether this node was implied by an anonymous field.
+  bool
+  implicit() const
+  { return this->implicit_; }
+
+  void
+  set_implicit(bool implicit)
+  { this->implicit_ = implicit; }
+
   // Set the struct expression.  This is used when parsing.
   void
   set_struct_expression(Expression* expr)
@@ -1914,6 +2026,9 @@
   Expression* expr_;
   // The zero-based index of the field we are retrieving.
   unsigned int field_index_;
+  // Whether this node was emitted implicitly for an embedded field,
+  // that is, expr_ is not the expr_ of the original user node.
+  bool implicit_;
   // Whether we have already emitted a fieldtrack call.
   bool called_fieldtrack_;
 };
@@ -1940,6 +2055,11 @@
   name() const
   { return this->name_; }
 
+  // Create a thunk to call the method NAME in TYPE when it is used as
+  // part of a method value.
+  static Named_object*
+  create_thunk(Gogo*, Interface_type* type, const std::string& name);
+
   // Return a tree for the pointer to the function to call, given a
   // tree for the expression.
   tree
@@ -1955,6 +2075,9 @@
   int
   do_traverse(Traverse* traverse);
 
+  Expression*
+  do_lower(Gogo*, Named_object*, Statement_inserter*, int);
+
   Type*
   do_type();
 
@@ -1979,6 +2102,13 @@
   do_dump_expression(Ast_dump_context*) const;
 
  private:
+  // A mapping from interface types to a list of thunks we have
+  // created for methods.
+  typedef std::vector<std::pair<std::string, Named_object*> > Method_thunks;
+  typedef Unordered_map(Interface_type*, Method_thunks*)
+    Interface_method_thunks;
+  static Interface_method_thunks interface_method_thunks;
+
   // The expression for the interface object.  This should have a type
   // of interface or pointer to interface.
   Expression* expr_;
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/go.cc gcc-4.8.1/gcc/go/gofrontend/go.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/go.cc	2012-10-30 19:38:49.000000000 -0500
+++ gcc-4.8.1/gcc/go/gofrontend/go.cc	2013-06-20 19:12:07.782178000 -0500
@@ -44,7 +44,7 @@
 GO_EXTERN_C
 void
 go_parse_input_files(const char** filenames, unsigned int filename_count,
-		     bool only_check_syntax, bool require_return_statement)
+		     bool only_check_syntax, bool)
 {
   go_assert(filename_count > 0);
 
@@ -84,10 +84,16 @@
   // Finalize method lists and build stub methods for named types.
   ::gogo->finalize_methods();
 
+  // Check that functions have a terminating statement.
+  ::gogo->check_return_statements();
+
   // Now that we have seen all the names, lower the parse tree into a
   // form which is easier to use.
   ::gogo->lower_parse_tree();
 
+  // Create function descriptors as needed.
+  ::gogo->create_function_descriptors();
+
   // Write out queued up functions for hash and comparison of types.
   ::gogo->write_specific_type_functions();
 
@@ -104,10 +110,6 @@
   if (only_check_syntax)
     return;
 
-  // Check that functions have return statements.
-  if (require_return_statement)
-    ::gogo->check_return_statements();
-
   // Export global identifiers as appropriate.
   ::gogo->do_exports();
 
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.cc gcc-4.8.1/gcc/go/gofrontend/gogo.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo.cc	2013-02-10 00:02:38.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/gogo.cc	2013-08-07 14:00:55.550656000 -0500
@@ -364,7 +364,7 @@
       // Declare "main" as a function which takes no parameters and
       // returns no value.
       Location uloc = Linemap::unknown_location();
-      this->declare_function("main",
+      this->declare_function(Gogo::pack_hidden_name("main", false),
 			     Type::make_function_type (NULL, NULL, NULL, uloc),
 			     uloc);
     }
@@ -819,7 +819,8 @@
       char buf[30];
       snprintf(buf, sizeof buf, ".$sink%d", sink_count);
       ++sink_count;
-      ret = Named_object::make_function(buf, NULL, function);
+      ret = this->package_->bindings()->add_function(buf, NULL, function);
+      ret->func_value()->set_is_sink();
     }
   else if (!type->is_method())
     {
@@ -1277,6 +1278,14 @@
 		   n.c_str());
 	  inform(pf->second, "%qs imported here", n.c_str());
 	}
+
+      // No package scope identifier may be named "init".
+      if (!p->second->is_function()
+	  && Gogo::unpack_hidden_name(p->second->name()) == "init")
+	{
+	  error_at(p->second->location(),
+	           "cannot declare init - must be func");
+	}
     }
 }
 
@@ -1599,8 +1608,9 @@
   return TRAVERSE_CONTINUE;
 }
 
-// Lower function closure types.  Record the function while lowering
-// it, so that we can pass it down when lowering an expression.
+// Lower the body of a function, and set the closure type.  Record the
+// function while lowering it, so that we can pass it down when
+// lowering an expression.
 
 int
 Lower_parse_tree::function(Named_object* no)
@@ -1732,6 +1742,146 @@
   lower.constant(no, false);
 }
 
+// Traverse the tree to create function descriptors as needed.
+
+class Create_function_descriptors : public Traverse
+{
+ public:
+  Create_function_descriptors(Gogo* gogo)
+    : Traverse(traverse_functions | traverse_expressions),
+      gogo_(gogo)
+  { }
+
+  int
+  function(Named_object*);
+
+  int
+  expression(Expression**);
+
+ private:
+  Gogo* gogo_;
+};
+
+// Create a descriptor for every top-level exported function.
+
+int
+Create_function_descriptors::function(Named_object* no)
+{
+  if (no->is_function()
+      && no->func_value()->enclosing() == NULL
+      && !no->func_value()->is_method()
+      && !no->func_value()->is_descriptor_wrapper()
+      && !Gogo::is_hidden_name(no->name()))
+    no->func_value()->descriptor(this->gogo_, no);
+
+  return TRAVERSE_CONTINUE;
+}
+
+// If we see a function referenced in any way other than calling it,
+// create a descriptor for it.
+
+int
+Create_function_descriptors::expression(Expression** pexpr)
+{
+  Expression* expr = *pexpr;
+
+  Func_expression* fe = expr->func_expression();
+  if (fe != NULL)
+    {
+      // We would not get here for a call to this function, so this is
+      // a reference to a function other than calling it.  We need a
+      // descriptor.
+      if (fe->closure() != NULL)
+	return TRAVERSE_CONTINUE;
+      Named_object* no = fe->named_object();
+      if (no->is_function() && !no->func_value()->is_method())
+	no->func_value()->descriptor(this->gogo_, no);
+      else if (no->is_function_declaration()
+	       && !no->func_declaration_value()->type()->is_method()
+	       && !Linemap::is_predeclared_location(no->location()))
+	no->func_declaration_value()->descriptor(this->gogo_, no);
+      return TRAVERSE_CONTINUE;
+    }
+
+  Bound_method_expression* bme = expr->bound_method_expression();
+  if (bme != NULL)
+    {
+      // We would not get here for a call to this method, so this is a
+      // method value.  We need to create a thunk.
+      Bound_method_expression::create_thunk(this->gogo_, bme->method(),
+					    bme->function());
+      return TRAVERSE_CONTINUE;
+    }
+
+  Interface_field_reference_expression* ifre =
+    expr->interface_field_reference_expression();
+  if (ifre != NULL)
+    {
+      // We would not get here for a call to this interface method, so
+      // this is a method value.  We need to create a thunk.
+      Interface_type* type = ifre->expr()->type()->interface_type();
+      if (type != NULL)
+	Interface_field_reference_expression::create_thunk(this->gogo_, type,
+							   ifre->name());
+      return TRAVERSE_CONTINUE;
+    }
+
+  Call_expression* ce = expr->call_expression();
+  if (ce != NULL)
+    {
+      Expression* fn = ce->fn();
+      if (fn->func_expression() != NULL
+	  || fn->bound_method_expression() != NULL
+	  || fn->interface_field_reference_expression() != NULL)
+	{
+	  // Traverse the arguments but not the function.
+	  Expression_list* args = ce->args();
+	  if (args != NULL)
+	    {
+	      if (args->traverse(this) == TRAVERSE_EXIT)
+		return TRAVERSE_EXIT;
+	    }
+	  return TRAVERSE_SKIP_COMPONENTS;
+	}
+    }
+
+  return TRAVERSE_CONTINUE;
+}
+
+// Create function descriptors as needed.  We need a function
+// descriptor for all exported functions and for all functions that
+// are referenced without being called.
+
+void
+Gogo::create_function_descriptors()
+{
+  // Create a function descriptor for any exported function that is
+  // declared in this package.  This is so that we have a descriptor
+  // for functions written in assembly.  Gather the descriptors first
+  // so that we don't add declarations while looping over them.
+  std::vector<Named_object*> fndecls;
+  Bindings* b = this->package_->bindings();
+  for (Bindings::const_declarations_iterator p = b->begin_declarations();
+       p != b->end_declarations();
+       ++p)
+    {
+      Named_object* no = p->second;
+      if (no->is_function_declaration()
+	  && !no->func_declaration_value()->type()->is_method()
+	  && !Linemap::is_predeclared_location(no->location())
+	  && !Gogo::is_hidden_name(no->name()))
+	fndecls.push_back(no);
+    }
+  for (std::vector<Named_object*>::const_iterator p = fndecls.begin();
+       p != fndecls.end();
+       ++p)
+    (*p)->func_declaration_value()->descriptor(this, *p);
+  fndecls.clear();
+
+  Create_function_descriptors cfd(this);
+  this->traverse(&cfd);
+}
+
 // Look for interface types to finalize methods of inherited
 // interfaces.
 
@@ -2643,6 +2793,13 @@
   Expression* closure = NULL;
   if (orig_func->needs_closure())
     {
+      // For the new function we are creating, declare a new parameter
+      // variable NEW_CLOSURE_NO and set it to be the closure variable
+      // of the function.  This will be set to the closure value
+      // passed in by the caller.  Then pass a reference to this
+      // variable as the closure value when calling the original
+      // function.  In other words, simply pass the closure value
+      // through the thunk we are creating.
       Named_object* orig_closure_no = orig_func->closure_var();
       Variable* orig_closure_var = orig_closure_no->var_value();
       Variable* new_var = new Variable(orig_closure_var->type(), NULL, false,
@@ -2682,22 +2839,7 @@
   // Any varargs call has already been lowered.
   call->set_varargs_are_lowered();
 
-  Statement* s;
-  if (orig_fntype->results() == NULL || orig_fntype->results()->empty())
-    s = Statement::make_statement(call, true);
-  else
-    {
-      Expression_list* vals = new Expression_list();
-      size_t rc = orig_fntype->results()->size();
-      if (rc == 1)
-	vals->push_back(call);
-      else
-	{
-	  for (size_t i = 0; i < rc; ++i)
-	    vals->push_back(Expression::make_call_result(call, i));
-	}
-      s = Statement::make_return_statement(vals, location);
-    }
+  Statement* s = Statement::make_return_from_call(call, location);
   s->determine_types();
   gogo->add_statement(s);
 
@@ -2991,7 +3133,8 @@
     return TRAVERSE_CONTINUE;
 
   if (func->block()->may_fall_through())
-    error_at(func->location(), "control reaches end of non-void function");
+    error_at(func->block()->end_location(),
+	     "missing return at end of function");
 
   return TRAVERSE_CONTINUE;
 }
@@ -3101,6 +3244,7 @@
   Map_type::make_map_descriptor_type();
   Channel_type::make_chan_type_descriptor_type();
   Interface_type::make_interface_type_descriptor_type();
+  Expression::make_func_descriptor_type();
   Type::convert_builtin_named_types(this);
 
   Runtime::convert_types(this);
@@ -3128,10 +3272,10 @@
 		   Location location)
   : type_(type), enclosing_(enclosing), results_(NULL),
     closure_var_(NULL), block_(block), location_(location), labels_(),
-    local_type_count_(0), fndecl_(NULL), defer_stack_(NULL),
-    results_are_named_(false), nointerface_(false), calls_recover_(false),
-    is_recover_thunk_(false), has_recover_thunk_(false),
-    in_unique_section_(false)
+    local_type_count_(0), descriptor_(NULL), fndecl_(NULL), defer_stack_(NULL),
+    is_sink_(false), results_are_named_(false), nointerface_(false),
+    calls_recover_(false), is_recover_thunk_(false), has_recover_thunk_(false),
+    in_unique_section_(false), is_descriptor_wrapper_(false)
 {
 }
 
@@ -3206,6 +3350,7 @@
 {
   if (this->closure_var_ == NULL)
     {
+      go_assert(this->descriptor_ == NULL);
       // We don't know the type of the variable yet.  We add fields as
       // we find them.
       Location loc = this->type_->location();
@@ -3229,7 +3374,14 @@
     return;
   Named_object* closure = this->closure_var_;
   Struct_type* st = closure->var_value()->type()->deref()->struct_type();
-  unsigned int index = 0;
+
+  // The first field of a closure is always a pointer to the function
+  // code.
+  Type* voidptr_type = Type::make_pointer_type(Type::make_void_type());
+  st->push_field(Struct_field(Typed_identifier(".$f", voidptr_type,
+					       this->location_)));
+
+  unsigned int index = 1;
   for (Closure_fields::const_iterator p = this->closure_fields_.begin();
        p != this->closure_fields_.end();
        ++p, ++index)
@@ -3410,6 +3562,102 @@
     this->block_->determine_types();
 }
 
+// Build a wrapper function for a function descriptor.  A function
+// descriptor refers to a function that takes a closure as its last
+// argument.  In this case there will be no closure, but an indirect
+// call will pass nil as the last argument.  We need to build a
+// wrapper function that accepts and discards that last argument, so
+// that cases like -mrtd will work correctly.  In most cases the
+// wrapper function will simply be a jump.
+
+Named_object*
+Function::make_descriptor_wrapper(Gogo* gogo, Named_object* no,
+				  Function_type* orig_fntype)
+{
+  Location loc = no->location();
+
+  Type* vt = Type::make_pointer_type(Type::make_void_type());
+  Function_type* new_fntype = orig_fntype->copy_with_closure(vt);
+
+  std::string name = no->name() + "$descriptorfn";
+  Named_object* dno = gogo->start_function(name, new_fntype, false, loc);
+  dno->func_value()->is_descriptor_wrapper_ = true;
+
+  // Put the wrapper in a unique section so that it can be discarded
+  // by the linker if it is not needed.  Every top-level function will
+  // get a wrapper, in case there is a reference other than a call
+  // from some other package, but most will not need one.
+  dno->func_value()->set_in_unique_section();
+
+  gogo->start_block(loc);
+
+  Expression* fn = Expression::make_func_reference(no, NULL, loc);
+
+  // Call the function begin wrapped, passing all of the arguments
+  // except for the last one (the last argument is the ignored
+  // closure).
+  const Typed_identifier_list* orig_params = orig_fntype->parameters();
+  Expression_list* args;
+  if (orig_params == NULL || orig_params->empty())
+    args = NULL;
+  else
+    {
+      const Typed_identifier_list* new_params = new_fntype->parameters();
+      args = new Expression_list();
+      for (Typed_identifier_list::const_iterator p = new_params->begin();
+	   p + 1 != new_params->end();
+	   ++p)
+	{
+	  Named_object* p_no = gogo->lookup(p->name(), NULL);
+	  go_assert(p_no != NULL
+		    && p_no->is_variable()
+		    && p_no->var_value()->is_parameter());
+	  args->push_back(Expression::make_var_reference(p_no, loc));
+	}
+    }
+
+  Call_expression* call = Expression::make_call(fn, args,
+						orig_fntype->is_varargs(),
+						loc);
+  call->set_varargs_are_lowered();
+
+  Statement* s = Statement::make_return_from_call(call, loc);
+  gogo->add_statement(s);
+  Block* b = gogo->finish_block(loc);
+  gogo->add_block(b, loc);
+  gogo->lower_block(dno, b);
+  gogo->finish_function(loc);
+
+  return dno;
+}
+
+// Return the function descriptor, the value you get when you refer to
+// the function in Go code without calling it.
+
+Expression*
+Function::descriptor(Gogo* gogo, Named_object* no)
+{
+  go_assert(!this->is_method());
+  go_assert(this->closure_var_ == NULL);
+  go_assert(!this->is_descriptor_wrapper_);
+  if (this->descriptor_ == NULL)
+    {
+      // Make and record the descriptor first, so that when we lower
+      // the descriptor wrapper we don't try to make it again.
+      Func_descriptor_expression* descriptor =
+	Expression::make_func_descriptor(no);
+      this->descriptor_ = descriptor;
+      if (no->package() == NULL
+	  && !Linemap::is_predeclared_location(no->location()))
+	{
+	  Named_object* dno = Function::make_descriptor_wrapper(gogo, no,
+								this->type_);
+	  descriptor->set_descriptor_wrapper(dno);
+	}
+    }
+  return this->descriptor_;
+}
+
 // Get a pointer to the variable representing the defer stack for this
 // function, making it if necessary.  The value of the variable is set
 // by the runtime routines to true if the function is returning,
@@ -3940,6 +4188,32 @@
     }
 }
 
+// Class Function_declaration.
+
+// Return the function descriptor.
+
+Expression*
+Function_declaration::descriptor(Gogo* gogo, Named_object* no)
+{
+  go_assert(!this->fntype_->is_method());
+  if (this->descriptor_ == NULL)
+    {
+      // Make and record the descriptor first, so that when we lower
+      // the descriptor wrapper we don't try to make it again.
+      Func_descriptor_expression* descriptor =
+	Expression::make_func_descriptor(no);
+      this->descriptor_ = descriptor;
+      if (no->package() == NULL
+	  && !Linemap::is_predeclared_location(no->location()))
+	{
+	  Named_object* dno = Function::make_descriptor_wrapper(gogo, no,
+								this->fntype_);
+	  descriptor->set_descriptor_wrapper(dno);
+	}
+    }
+  return this->descriptor_;
+}
+
 // Class Variable.
 
 Variable::Variable(Type* type, Expression* init, bool is_global,
@@ -4755,6 +5029,12 @@
 Named_object::set_function_value(Function* function)
 {
   go_assert(this->classification_ == NAMED_OBJECT_FUNC_DECLARATION);
+  if (this->func_declaration_value()->has_descriptor())
+    {
+      Expression* descriptor =
+	this->func_declaration_value()->descriptor(NULL, NULL);
+      function->set_descriptor(descriptor);
+    }
   this->classification_ = NAMED_OBJECT_FUNC;
   // FIXME: We should free the old value.
   this->u_.func_value = function;
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo.h gcc-4.8.1/gcc/go/gofrontend/gogo.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo.h	2012-12-21 16:23:23.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/gogo.h	2013-06-24 18:13:14.268180000 -0500
@@ -476,6 +476,10 @@
   void
   lower_constant(Named_object*);
 
+  // Create all necessary function descriptors.
+  void
+  create_function_descriptors();
+
   // Finalize the method lists and build stub methods for named types.
   void
   finalize_methods();
@@ -614,10 +618,6 @@
   receive_from_channel(tree type_tree, tree type_descriptor_tree, tree channel,
 		       Location);
 
-  // Make a trampoline which calls FNADDR passing CLOSURE.
-  tree
-  make_trampoline(tree fnaddr, tree closure, Location);
-
  private:
   // During parsing, we keep a stack of functions.  Each function on
   // the stack is one that we are currently parsing.  For each
@@ -669,10 +669,6 @@
   tree
   ptr_go_string_constant_tree(const std::string&);
 
-  // Return the type of a trampoline.
-  static tree
-  trampoline_type_tree();
-
   // Type used to map import names to packages.
   typedef std::map<std::string, Package*> Imports;
 
@@ -915,6 +911,14 @@
   result_variables()
   { return this->results_; }
 
+  bool
+  is_sink() const
+  { return this->is_sink_; }
+
+  void
+  set_is_sink()
+  { this->is_sink_ = true; }
+
   // Whether the result variables have names.
   bool
   results_are_named() const
@@ -1046,6 +1050,12 @@
   set_in_unique_section()
   { this->in_unique_section_ = true; }
 
+  // Whether this function was created as a descriptor wrapper for
+  // another function.
+  bool
+  is_descriptor_wrapper() const
+  { return this->is_descriptor_wrapper_; }
+
   // Swap with another function.  Used only for the thunk which calls
   // recover.
   void
@@ -1059,6 +1069,26 @@
   void
   determine_types();
 
+  // Return an expression for the function descriptor, given the named
+  // object for this function.  This may only be called for functions
+  // without a closure.  This will be an immutable struct with one
+  // field that points to the function's code.
+  Expression*
+  descriptor(Gogo*, Named_object*);
+
+  // Set the descriptor for this function.  This is used when a
+  // function declaration is followed by a function definition.
+  void
+  set_descriptor(Expression* descriptor)
+  {
+    go_assert(this->descriptor_ == NULL);
+    this->descriptor_ = descriptor;
+  }
+
+  // Build a descriptor wrapper function.
+  static Named_object*
+  make_descriptor_wrapper(Gogo*, Named_object*, Function_type*);
+
   // Return the function's decl given an identifier.
   tree
   get_or_make_decl(Gogo*, Named_object*, tree id);
@@ -1137,25 +1167,32 @@
   Labels labels_;
   // The number of local types defined in this function.
   unsigned int local_type_count_;
+  // The function descriptor, if any.
+  Expression* descriptor_;
   // The function decl.
   tree fndecl_;
   // The defer stack variable.  A pointer to this variable is used to
   // distinguish the defer stack for one function from another.  This
   // is NULL unless we actually need a defer stack.
   Temporary_statement* defer_stack_;
+  // True if this function is sink-named.  No code is generated.
+  bool is_sink_ : 1;
   // True if the result variables are named.
-  bool results_are_named_;
+  bool results_are_named_ : 1;
   // True if this method should not be included in the type descriptor.
-  bool nointerface_;
+  bool nointerface_ : 1;
   // True if this function calls the predeclared recover function.
-  bool calls_recover_;
+  bool calls_recover_ : 1;
   // True if this a thunk built for a function which calls recover.
-  bool is_recover_thunk_;
+  bool is_recover_thunk_ : 1;
   // True if this function already has a recover thunk.
-  bool has_recover_thunk_;
+  bool has_recover_thunk_ : 1;
   // True if this function should be put in a unique section.  This is
   // turned on for field tracking.
   bool in_unique_section_ : 1;
+  // True if this is a function wrapper created to put in a function
+  // descriptor.
+  bool is_descriptor_wrapper_ : 1;
 };
 
 // A snapshot of the current binding state.
@@ -1198,7 +1235,8 @@
 {
  public:
   Function_declaration(Function_type* fntype, Location location)
-    : fntype_(fntype), location_(location), asm_name_(), fndecl_(NULL)
+    : fntype_(fntype), location_(location), asm_name_(), descriptor_(NULL),
+      fndecl_(NULL)
   { }
 
   Function_type*
@@ -1218,10 +1256,27 @@
   set_asm_name(const std::string& asm_name)
   { this->asm_name_ = asm_name; }
 
+  // Return an expression for the function descriptor, given the named
+  // object for this function.  This may only be called for functions
+  // without a closure.  This will be an immutable struct with one
+  // field that points to the function's code.
+  Expression*
+  descriptor(Gogo*, Named_object*);
+
+  // Return true if we have created a descriptor for this declaration.
+  bool
+  has_descriptor() const
+  { return this->descriptor_ != NULL; }
+
   // Return a decl for the function given an identifier.
   tree
   get_or_make_decl(Gogo*, Named_object*, tree id);
 
+  // If there is a descriptor, build it into the backend
+  // representation.
+  void
+  build_backend_descriptor(Gogo*);
+
   // Export a function declaration.
   void
   export_func(Export* exp, const std::string& name) const
@@ -1235,6 +1290,8 @@
   // The assembler name: this is the name to use in references to the
   // function.  This is normally empty.
   std::string asm_name_;
+  // The function descriptor, if any.
+  Expression* descriptor_;
   // The function decl if needed.
   tree fndecl_;
 };
@@ -1630,7 +1687,7 @@
   Named_constant(Type* type, Expression* expr, int iota_value,
 		 Location location)
     : type_(type), expr_(expr), iota_value_(iota_value), location_(location),
-      lowering_(false)
+      lowering_(false), is_sink_(false)
   { }
 
   Type*
@@ -1664,6 +1721,14 @@
   clear_lowering()
   { this->lowering_ = false; }
 
+  bool
+  is_sink() const
+  { return this->is_sink_; }
+
+  void
+  set_is_sink()
+  { this->is_sink_ = true; }
+
   // Traverse the expression.
   int
   traverse_expression(Traverse*);
@@ -1699,6 +1764,8 @@
   Location location_;
   // Whether we are currently lowering this constant.
   bool lowering_;
+  // Whether this constant is blank named and needs only type checking.
+  bool is_sink_;
 };
 
 // A type declaration.
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/gogo-tree.cc gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/gogo-tree.cc	2013-01-28 18:28:09.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/gogo-tree.cc	2013-06-24 18:13:14.268180000 -0500
@@ -755,6 +755,18 @@
   this->build_interface_method_tables();
 
   Bindings* bindings = this->current_bindings();
+
+  for (Bindings::const_declarations_iterator p = bindings->begin_declarations();
+       p != bindings->end_declarations();
+       ++p)
+    {
+      // If any function declarations needed a descriptor, make sure
+      // we build it.
+      Named_object* no = p->second;
+      if (no->is_function_declaration())
+	no->func_declaration_value()->build_backend_descriptor(this);
+    }
+
   size_t count_definitions = bindings->size_definitions();
   size_t count = count_definitions;
 
@@ -782,6 +794,8 @@
     {
       Named_object* no = *p;
 
+      go_assert(i < count);
+
       go_assert(!no->is_type_declaration() && !no->is_function_declaration());
       // There is nothing to do for a package.
       if (no->is_package())
@@ -800,6 +814,15 @@
 	  continue;
 	}
 
+      // Skip blank named functions and constants.
+      if ((no->is_function() && no->func_value()->is_sink())
+	  || (no->is_const() && no->const_value()->is_sink()))
+        {
+          --i;
+          --count;
+          continue;
+        }
+
       // There is nothing useful we can output for constants which
       // have ideal or non-integral type.
       if (no->is_const())
@@ -1255,14 +1278,47 @@
   if (this->fndecl_ == NULL_TREE)
     {
       tree functype = type_to_tree(this->type_->get_backend(gogo));
+
+      if (functype != error_mark_node)
+	{
+	  // The type of a function comes back as a pointer to a
+	  // struct whose first field is the function, but we want the
+	  // real function type for a function declaration.
+	  go_assert(POINTER_TYPE_P(functype)
+		    && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
+	  functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
+	  go_assert(FUNCTION_POINTER_TYPE_P(functype));
+	  functype = TREE_TYPE(functype);
+
+	  // In the struct, the function type always has a trailing
+	  // closure argument.  For the function body, we only use
+	  // that trailing arg if this is a function literal or if it
+	  // is a wrapper created to store in a descriptor.  Remove it
+	  // in that case.
+	  if (this->enclosing_ == NULL && !this->is_descriptor_wrapper_)
+	    {
+	      tree old_params = TYPE_ARG_TYPES(functype);
+	      go_assert(old_params != NULL_TREE
+			&& old_params != void_list_node);
+	      tree new_params = NULL_TREE;
+	      tree *pp = &new_params;
+	      while (TREE_CHAIN (old_params) != void_list_node)
+		{
+		  tree p = TREE_VALUE(old_params);
+		  go_assert(TYPE_P(p));
+		  *pp = tree_cons(NULL_TREE, p, NULL_TREE);
+		  pp = &TREE_CHAIN(*pp);
+		  old_params = TREE_CHAIN (old_params);
+		}
+	      *pp = void_list_node;
+	      functype = build_function_type(TREE_TYPE(functype), new_params);
+	    }
+	}
+
       if (functype == error_mark_node)
 	this->fndecl_ = error_mark_node;
       else
 	{
-	  // The type of a function comes back as a pointer, but we
-	  // want the real function type for a function declaration.
-	  go_assert(POINTER_TYPE_P(functype));
-	  functype = TREE_TYPE(functype);
 	  tree decl = build_decl(this->location().gcc_location(), FUNCTION_DECL,
                                  id, functype);
 
@@ -1308,9 +1364,6 @@
 	  DECL_CONTEXT(resdecl) = decl;
 	  DECL_RESULT(decl) = resdecl;
 
-	  if (this->enclosing_ != NULL)
-	    DECL_STATIC_CHAIN(decl) = 1;
-
 	  // If a function calls the predeclared recover function, we
 	  // can't inline it, because recover behaves differently in a
 	  // function passed directly to defer.  If this is a recover
@@ -1333,29 +1386,6 @@
 	    resolve_unique_section (decl, 0, 1);
 
 	  go_preserve_from_gc(decl);
-
-	  if (this->closure_var_ != NULL)
-	    {
-	      push_struct_function(decl);
-
-	      Bvariable* bvar = this->closure_var_->get_backend_variable(gogo,
-									 no);
-	      tree closure_decl = var_to_tree(bvar);
-	      if (closure_decl == error_mark_node)
-		this->fndecl_ = error_mark_node;
-	      else
-		{
-		  DECL_ARTIFICIAL(closure_decl) = 1;
-		  DECL_IGNORED_P(closure_decl) = 1;
-		  TREE_USED(closure_decl) = 1;
-		  DECL_ARG_TYPE(closure_decl) = TREE_TYPE(closure_decl);
-		  TREE_READONLY(closure_decl) = 1;
-
-		  DECL_STRUCT_FUNCTION(decl)->static_chain_decl = closure_decl;
-		}
-
-	      pop_cfun();
-	    }
 	}
     }
   return this->fndecl_;
@@ -1382,15 +1412,44 @@
 	}
 
       tree functype = type_to_tree(this->fntype_->get_backend(gogo));
+
+      if (functype != error_mark_node)
+	{
+	  // The type of a function comes back as a pointer to a
+	  // struct whose first field is the function, but we want the
+	  // real function type for a function declaration.
+	  go_assert(POINTER_TYPE_P(functype)
+		    && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
+	  functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
+	  go_assert(FUNCTION_POINTER_TYPE_P(functype));
+	  functype = TREE_TYPE(functype);
+
+	  // In the struct, the function type always has a trailing
+	  // closure argument.  Here we are referring to the function
+	  // code directly, and we know it is not a function literal,
+	  // and we know it is not a wrapper created to store in a
+	  // descriptor.  Remove that trailing argument.
+	  tree old_params = TYPE_ARG_TYPES(functype);
+	  go_assert(old_params != NULL_TREE && old_params != void_list_node);
+	  tree new_params = NULL_TREE;
+	  tree *pp = &new_params;
+	  while (TREE_CHAIN (old_params) != void_list_node)
+	    {
+	      tree p = TREE_VALUE(old_params);
+	      go_assert(TYPE_P(p));
+	      *pp = tree_cons(NULL_TREE, p, NULL_TREE);
+	      pp = &TREE_CHAIN(*pp);
+	      old_params = TREE_CHAIN (old_params);
+	    }
+	  *pp = void_list_node;
+	  functype = build_function_type(TREE_TYPE(functype), new_params);
+	}
+
       tree decl;
       if (functype == error_mark_node)
 	decl = error_mark_node;
       else
 	{
-	  // The type of a function comes back as a pointer, but we
-	  // want the real function type for a function declaration.
-	  go_assert(POINTER_TYPE_P(functype));
-	  functype = TREE_TYPE(functype);
 	  decl = build_decl(this->location().gcc_location(), FUNCTION_DECL, id,
                             functype);
 	  TREE_PUBLIC(decl) = 1;
@@ -1599,6 +1658,32 @@
 	    }
 	}
     }
+
+  // The closure variable is passed last, if this is a function
+  // literal or a descriptor wrapper.
+  if (this->closure_var_ != NULL)
+    {
+      Bvariable* bvar =
+	this->closure_var_->get_backend_variable(gogo, named_function);
+      tree var_decl = var_to_tree(bvar);
+      if (var_decl != error_mark_node)
+	{
+	  go_assert(TREE_CODE(var_decl) == PARM_DECL);
+	  *pp = var_decl;
+	  pp = &DECL_CHAIN(*pp);
+	}
+    }
+  else if (this->enclosing_ != NULL || this->is_descriptor_wrapper_)
+    {
+      tree parm_decl = build_decl(this->location_.gcc_location(), PARM_DECL,
+				  get_identifier("$closure"),
+				  const_ptr_type_node);
+      DECL_CONTEXT(parm_decl) = current_function_decl;
+      DECL_ARG_TYPE(parm_decl) = const_ptr_type_node;
+      *pp = parm_decl;
+      pp = &DECL_CHAIN(*pp);
+    }
+
   *pp = NULL_TREE;
 
   DECL_ARGUMENTS(fndecl) = params;
@@ -1681,6 +1766,13 @@
 
       DECL_SAVED_TREE(fndecl) = code;
     }
+
+  // If we created a descriptor for the function, make sure we emit it.
+  if (this->descriptor_ != NULL)
+    {
+      Translate_context context(gogo, NULL, NULL, NULL);
+      this->descriptor_->get_tree(&context);
+    }
 }
 
 // Build the wrappers around function code needed if the function has
@@ -1844,6 +1936,20 @@
     }
 }
 
+// Build the descriptor for a function declaration.  This won't
+// necessarily happen if the package has just a declaration for the
+// function and no other reference to it, but we may still need the
+// descriptor for references from other packages.
+void
+Function_declaration::build_backend_descriptor(Gogo* gogo)
+{
+  if (this->descriptor_ != NULL)
+    {
+      Translate_context context(gogo, NULL, NULL, NULL);
+      this->descriptor_->get_tree(&context);
+    }
+}
+
 // Return the integer type to use for a size.
 
 GO_EXTERN_C
@@ -2437,70 +2543,3 @@
 		    build2(COMPOUND_EXPR, type_tree, call, tmp));
     }
 }
-
-// Return the type of a function trampoline.  This is like
-// get_trampoline_type in tree-nested.c.
-
-tree
-Gogo::trampoline_type_tree()
-{
-  static tree type_tree;
-  if (type_tree == NULL_TREE)
-    {
-      unsigned int size;
-      unsigned int align;
-      go_trampoline_info(&size, &align);
-      tree t = build_index_type(build_int_cst(integer_type_node, size - 1));
-      t = build_array_type(char_type_node, t);
-
-      type_tree = Gogo::builtin_struct(NULL, "__go_trampoline", NULL_TREE, 1,
-				       "__data", t);
-      t = TYPE_FIELDS(type_tree);
-      DECL_ALIGN(t) = align;
-      DECL_USER_ALIGN(t) = 1;
-
-      go_preserve_from_gc(type_tree);
-    }
-  return type_tree;
-}
-
-// Make a trampoline which calls FNADDR passing CLOSURE.
-
-tree
-Gogo::make_trampoline(tree fnaddr, tree closure, Location location)
-{
-  tree trampoline_type = Gogo::trampoline_type_tree();
-  tree trampoline_size = TYPE_SIZE_UNIT(trampoline_type);
-
-  closure = save_expr(closure);
-
-  // We allocate the trampoline using a special function which will
-  // mark it as executable.
-  static tree trampoline_fndecl;
-  tree x = Gogo::call_builtin(&trampoline_fndecl,
-			      location,
-			      "__go_allocate_trampoline",
-			      2,
-			      ptr_type_node,
-			      size_type_node,
-			      trampoline_size,
-			      ptr_type_node,
-			      fold_convert_loc(location.gcc_location(),
-                                               ptr_type_node, closure));
-  if (x == error_mark_node)
-    return error_mark_node;
-
-  x = save_expr(x);
-
-  // Initialize the trampoline.
-  tree calldecl = builtin_decl_implicit(BUILT_IN_INIT_HEAP_TRAMPOLINE);
-  tree ini = build_call_expr(calldecl, 3, x, fnaddr, closure);
-
-  // On some targets the trampoline address needs to be adjusted.  For
-  // example, when compiling in Thumb mode on the ARM, the address
-  // needs to have the low bit set.
-  x = build_call_expr(builtin_decl_explicit(BUILT_IN_ADJUST_TRAMPOLINE), 1, x);
-  x = fold_convert(TREE_TYPE(fnaddr), x);
-
-  return build2(COMPOUND_EXPR, TREE_TYPE(x), ini, x);
-}
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/parse.cc gcc-4.8.1/gcc/go/gofrontend/parse.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/parse.cc	2012-12-13 16:20:23.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/parse.cc	2013-08-17 13:04:58.702541000 -0500
@@ -1457,6 +1457,16 @@
 
       if (!Gogo::is_sink_name(pi->name()))
 	this->gogo_->add_constant(*pi, *pe, this->iota_value());
+      else
+	{
+	  static int count;
+	  char buf[30];
+	  snprintf(buf, sizeof buf, ".$sinkconst%d", count);
+	  ++count;
+	  Typed_identifier ti(std::string(buf), type, pi->location());
+	  Named_object* no = this->gogo_->add_constant(ti, *pe, this->iota_value());
+	  no->const_value()->set_is_sink();
+	}
     }
   if (pe != expr_list->end())
     error_at(this->location(), "too many initializers");
@@ -2627,7 +2637,11 @@
   Named_object* this_function = this->gogo_->current_function();
   Named_object* closure = this_function->func_value()->closure_var();
 
-  Enclosing_var ev(var, in_function, this->enclosing_vars_.size());
+  // The last argument to the Enclosing_var constructor is the index
+  // of this variable in the closure.  We add 1 to the current number
+  // of enclosed variables, because the first field in the closure
+  // points to the function code.
+  Enclosing_var ev(var, in_function, this->enclosing_vars_.size() + 1);
   std::pair<Enclosing_vars::iterator, bool> ins =
     this->enclosing_vars_.insert(ev);
   if (ins.second)
@@ -2882,8 +2896,9 @@
 // Create a closure for the nested function FUNCTION.  This is based
 // on ENCLOSING_VARS, which is a list of all variables defined in
 // enclosing functions and referenced from FUNCTION.  A closure is the
-// address of a struct which contains the addresses of all the
-// referenced variables.  This returns NULL if no closure is required.
+// address of a struct which point to the real function code and
+// contains the addresses of all the referenced variables.  This
+// returns NULL if no closure is required.
 
 Expression*
 Parse::create_closure(Named_object* function, Enclosing_vars* enclosing_vars,
@@ -2899,16 +2914,25 @@
   for (Enclosing_vars::const_iterator p = enclosing_vars->begin();
        p != enclosing_vars->end();
        ++p)
-    ev[p->index()] = *p;
+    {
+      // Subtract 1 because index 0 is the function code.
+      ev[p->index() - 1] = *p;
+    }
 
   // Build an initializer for a composite literal of the closure's
   // type.
 
   Named_object* enclosing_function = this->gogo_->current_function();
   Expression_list* initializer = new Expression_list;
+
+  initializer->push_back(Expression::make_func_code_reference(function,
+							      location));
+
   for (size_t i = 0; i < enclosing_var_count; ++i)
     {
-      go_assert(ev[i].index() == i);
+      // Add 1 to i because the first field in the closure is a
+      // pointer to the function code.
+      go_assert(ev[i].index() == i + 1);
       Named_object* var = ev[i].var();
       Expression* ref;
       if (ev[i].in_function() == enclosing_function)
@@ -3016,7 +3040,7 @@
 		  && t->array_type()->length()->is_nil_expression())
 		{
 		  error_at(ret->location(),
-			   "invalid use of %<...%> in type conversion");
+			   "use of %<[...]%> outside of array literal");
 		  ret = Expression::make_error(loc);
 		}
 	      else
@@ -4499,9 +4523,12 @@
   bool is_fallthrough = false;
   if (this->peek_token()->is_keyword(KEYWORD_FALLTHROUGH))
     {
+      Location fallthrough_loc = this->location();
       is_fallthrough = true;
       if (this->advance_token()->is_op(OPERATOR_SEMICOLON))
 	this->advance_token();
+      if (this->peek_token()->is_op(OPERATOR_RCURLY))
+	error_at(fallthrough_loc, _("cannot fallthrough final case in switch"));
     }
 
   if (is_default)
@@ -5239,7 +5266,8 @@
 	no->var_value()->set_type_from_range_value();
       if (is_new)
 	any_new = true;
-      p_range_clause->value = Expression::make_var_reference(no, location);
+      if (!Gogo::is_sink_name(pti->name()))
+        p_range_clause->value = Expression::make_var_reference(no, location);
     }
 
   if (!any_new)
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/runtime.def gcc-4.8.1/gcc/go/gofrontend/runtime.def
--- gcc-4.8.1.orig/gcc/go/gofrontend/runtime.def	2012-11-29 12:11:17.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/runtime.def	2013-06-18 18:50:42.020320000 -0500
@@ -224,11 +224,6 @@
 DEF_GO_RUNTIME(NEW_NOPOINTERS, "__go_new_nopointers", P1(UINTPTR), R1(POINTER))
 
 
-// Allocate a trampoline for a function literal.
-DEF_GO_RUNTIME(ALLOCATE_GO_TRAMPOLINE, "__go_allocate_trampoline",
-	       P2(UINTPTR, POINTER), R1(POINTER))
-
-
 // Start a new goroutine.
 DEF_GO_RUNTIME(GO, "__go_go", P2(FUNC_PTR, POINTER), R0())
 
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.cc gcc-4.8.1/gcc/go/gofrontend/statements.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/statements.cc	2012-12-21 09:59:27.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/statements.cc	2013-08-07 14:00:55.550656000 -0500
@@ -569,7 +569,10 @@
 Assignment_statement::do_determine_types()
 {
   this->lhs_->determine_type_no_context();
-  Type_context context(this->lhs_->type(), false);
+  Type* rhs_context_type = this->lhs_->type();
+  if (rhs_context_type->is_sink_type())
+    rhs_context_type = NULL;
+  Type_context context(rhs_context_type, false);
   this->rhs_->determine_type(&context);
 }
 
@@ -1707,8 +1710,8 @@
     this->expr_->discarding_value();
 }
 
-// An expression statement may fall through unless it is a call to a
-// function which does not return.
+// An expression statement is only a terminating statement if it is
+// a call to panic.
 
 bool
 Expression_statement::do_may_fall_through() const
@@ -1717,22 +1720,28 @@
   if (call != NULL)
     {
       const Expression* fn = call->fn();
-      const Func_expression* fe = fn->func_expression();
-      if (fe != NULL)
+      // panic is still an unknown named object.
+      const Unknown_expression* ue = fn->unknown_expression();
+      if (ue != NULL)
 	{
-	  const Named_object* no = fe->named_object();
+	  Named_object* no = ue->named_object();
 
-	  Function_type* fntype;
-	  if (no->is_function())
-	    fntype = no->func_value()->type();
-	  else if (no->is_function_declaration())
-	    fntype = no->func_declaration_value()->type();
-	  else
-	    fntype = NULL;
-
-	  // The builtin function panic does not return.
-	  if (fntype != NULL && fntype->is_builtin() && no->name() == "panic")
-	    return false;
+          if (no->is_unknown())
+            no = no->unknown_value()->real_named_object();
+          if (no != NULL)
+            {
+              Function_type* fntype;
+              if (no->is_function())
+                fntype = no->func_value()->type();
+              else if (no->is_function_declaration())
+                fntype = no->func_declaration_value()->type();
+              else
+                fntype = NULL;
+
+              // The builtin function panic does not return.
+              if (fntype != NULL && fntype->is_builtin() && no->name() == "panic")
+                return false;
+            }
 	}
     }
   return true;
@@ -1953,10 +1962,15 @@
 	      && results->begin()->type()->points_to() == NULL)))
     return false;
 
-  // If this calls something which is not a simple function, then we
+  // If this calls something that is not a simple function, then we
   // need a thunk.
   Expression* fn = this->call_->call_expression()->fn();
-  if (fn->interface_field_reference_expression() != NULL)
+  if (fn->func_expression() == NULL)
+    return false;
+
+  // If the function uses a closure, then we need a thunk.  FIXME: We
+  // could accept a zero argument function with a closure.
+  if (fn->func_expression()->closure() != NULL)
     return false;
 
   return true;
@@ -2496,7 +2510,11 @@
 
   Call_expression* ce = this->call_->call_expression();
 
-  *pfn = ce->fn();
+  Expression* fn = ce->fn();
+  Func_expression* fe = fn->func_expression();
+  go_assert(fe != NULL);
+  *pfn = Expression::make_func_code_reference(fe->named_object(),
+					      fe->location());
 
   const Expression_list* args = ce->args();
   if (args == NULL || args->empty())
@@ -2800,6 +2818,28 @@
   return new Return_statement(vals, location);
 }
 
+// Make a statement that returns the result of a call expression.
+
+Statement*
+Statement::make_return_from_call(Call_expression* call, Location location)
+{
+  size_t rc = call->result_count();
+  if (rc == 0)
+    return Statement::make_statement(call, true);
+  else
+    {
+      Expression_list* vals = new Expression_list();
+      if (rc == 1)
+	vals->push_back(call);
+      else
+	{
+	  for (size_t i = 0; i < rc; ++i)
+	    vals->push_back(Expression::make_call_result(call, i));
+	}
+      return Statement::make_return_statement(vals, location);
+    }
+}
+
 // A break or continue statement.
 
 class Bc_statement : public Statement
@@ -3700,9 +3740,6 @@
   void
   do_check_types(Gogo*);
 
-  bool
-  do_may_fall_through() const;
-
   Bstatement*
   do_get_backend(Translate_context*);
 
@@ -3746,22 +3783,6 @@
     this->set_is_error();
 }
 
-// Return whether this switch may fall through.
-
-bool
-Constant_switch_statement::do_may_fall_through() const
-{
-  if (this->clauses_ == NULL)
-    return true;
-
-  // If we have a break label, then some case needed it.  That implies
-  // that the switch statement as a whole can fall through.
-  if (this->break_label_ != NULL)
-    return true;
-
-  return this->clauses_->may_fall_through();
-}
-
 // Convert to GENERIC.
 
 Bstatement*
@@ -3911,6 +3932,22 @@
   ast_dump_context->ostream() << std::endl;
 }
 
+// Return whether this switch may fall through.
+
+bool
+Switch_statement::do_may_fall_through() const
+{
+  if (this->clauses_ == NULL)
+    return true;
+
+  // If we have a break label, then some case needed it.  That implies
+  // that the switch statement as a whole can fall through.
+  if (this->break_label_ != NULL)
+    return true;
+
+  return this->clauses_->may_fall_through();
+}
+
 // Make a switch statement.
 
 Switch_statement*
@@ -4050,6 +4087,27 @@
     }
 }
 
+// Return true if this type clause may fall through to the statements
+// following the switch.
+
+bool
+Type_case_clauses::Type_case_clause::may_fall_through() const
+{
+  if (this->is_fallthrough_)
+    {
+      // This case means that we automatically fall through to the
+      // next case (it's used for T1 in case T1, T2:).  It does not
+      // mean that we fall through to the end of the type switch as a
+      // whole.  There is sure to be a next case and that next case
+      // will determine whether we fall through to the statements
+      // after the type switch.
+      return false;
+    }
+  if (this->statements_ == NULL)
+    return true;
+  return this->statements_->may_fall_through();
+}
+
 // Dump the AST representation for a type case clause
 
 void
@@ -4148,6 +4206,25 @@
 			NULL);
 }
 
+// Return true if these clauses may fall through to the statements
+// following the switch statement.
+
+bool
+Type_case_clauses::may_fall_through() const
+{
+  bool found_default = false;
+  for (Type_clauses::const_iterator p = this->clauses_.begin();
+       p != this->clauses_.end();
+       ++p)
+    {
+      if (p->may_fall_through())
+	return true;
+      if (p->is_default())
+	found_default = true;
+    }
+  return !found_default;
+}
+
 // Dump the AST representation for case clauses (from a switch statement)
 
 void
@@ -4237,6 +4314,22 @@
   return Statement::make_block_statement(b, loc);
 }
 
+// Return whether this switch may fall through.
+
+bool
+Type_switch_statement::do_may_fall_through() const
+{
+  if (this->clauses_ == NULL)
+    return true;
+
+  // If we have a break label, then some case needed it.  That implies
+  // that the switch statement as a whole can fall through.
+  if (this->break_label_ != NULL)
+    return true;
+
+  return this->clauses_->may_fall_through();
+}
+
 // Return the break label for this type switch statement, creating it
 // if necessary.
 
@@ -4954,6 +5047,19 @@
   return Statement::make_block_statement(b, loc);
 }
 
+// Whether the select statement itself may fall through to the following
+// statement.
+
+bool
+Select_statement::do_may_fall_through() const
+{
+  // A select statement is terminating if no break statement
+  // refers to it and all of its clauses are terminating.
+  if (this->break_label_ != NULL)
+    return true;
+  return this->clauses_->may_fall_through();
+}
+
 // Return the backend representation for a select statement.
 
 Bstatement*
@@ -5114,6 +5220,20 @@
   this->continue_label_ = continue_label;
 }
 
+// Whether the overall statement may fall through.
+
+bool
+For_statement::do_may_fall_through() const
+{
+  // A for loop is terminating if it has no condition and
+  // no break statement.
+  if(this->cond_ != NULL)
+    return true;
+  if(this->break_label_ != NULL)
+    return true;
+  return false;
+}
+
 // Dump the AST representation for a for statement.
 
 void
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/statements.h gcc-4.8.1/gcc/go/gofrontend/statements.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/statements.h	2013-01-28 18:28:09.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/statements.h	2013-06-24 17:11:25.306173000 -0500
@@ -207,6 +207,13 @@
   static Return_statement*
   make_return_statement(Expression_list*, Location);
 
+  // Make a statement that returns the result of a call expression.
+  // If the call does not return any results, this just returns the
+  // call expression as a statement, assuming that the function will
+  // end immediately afterward.
+  static Statement*
+  make_return_from_call(Call_expression*, Location);
+
   // Make a break statement.
   static Statement*
   make_break_statement(Unnamed_label* label, Location);
@@ -894,8 +901,7 @@
   { this->clauses_->check_types(); }
 
   bool
-  do_may_fall_through() const
-  { return this->clauses_->may_fall_through(); }
+  do_may_fall_through() const;
 
   Bstatement*
   do_get_backend(Translate_context*);
@@ -1086,6 +1092,9 @@
   Statement*
   do_lower(Gogo*, Named_object*, Block*, Statement_inserter*);
 
+  bool
+  do_may_fall_through() const;
+
   Bstatement*
   do_get_backend(Translate_context*)
   { go_unreachable(); }
@@ -1399,6 +1408,9 @@
   void
   do_dump_statement(Ast_dump_context*) const;
 
+  bool
+  do_may_fall_through() const;
+
  private:
   // The value to switch on.  This may be NULL.
   Expression* val_;
@@ -1449,6 +1461,11 @@
   lower(Type*, Block*, Temporary_statement* descriptor_temp,
 	Unnamed_label* break_label) const;
 
+  // Return true if these clauses may fall through to the statements
+  // following the switch statement.
+  bool
+  may_fall_through() const;
+
   // Dump the AST representation to a dump context.
   void
   dump_clauses(Ast_dump_context*) const;
@@ -1493,6 +1510,12 @@
     lower(Type*, Block*, Temporary_statement* descriptor_temp,
 	  Unnamed_label* break_label, Unnamed_label** stmts_label) const;
 
+    // Return true if this clause may fall through to execute the
+    // statements following the switch statement.  This is not the
+    // same as whether this clause falls through to the next clause.
+    bool
+    may_fall_through() const;
+
     // Dump the AST representation to a dump context.
     void
     dump_clause(Ast_dump_context*) const;
@@ -1556,6 +1579,9 @@
   void
   do_dump_statement(Ast_dump_context*) const;
 
+  bool
+  do_may_fall_through() const;
+
  private:
   // The variable holding the value we are switching on.
   Named_object* var_;
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.cc gcc-4.8.1/gcc/go/gofrontend/types.cc
--- gcc-4.8.1.orig/gcc/go/gofrontend/types.cc	2013-01-31 18:23:22.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/types.cc	2013-08-23 16:04:55.544713000 -0500
@@ -1298,8 +1298,8 @@
   // converting INITIALIZER.
 
   this->type_descriptor_var_ =
-    gogo->backend()->immutable_struct(var_name, is_common, initializer_btype,
-				      loc);
+    gogo->backend()->immutable_struct(var_name, false, is_common,
+				      initializer_btype, loc);
   if (phash != NULL)
     *phash = this->type_descriptor_var_;
 
@@ -1308,7 +1308,7 @@
   Bexpression* binitializer = tree_to_expr(initializer->get_tree(&context));
 
   gogo->backend()->immutable_struct_set_init(this->type_descriptor_var_,
-					     var_name, is_common,
+					     var_name, false, is_common,
 					     initializer_btype, loc,
 					     binitializer);
 }
@@ -1528,26 +1528,6 @@
 
       // The type descriptor type.
 
-      Typed_identifier_list* params = new Typed_identifier_list();
-      params->push_back(Typed_identifier("key", unsafe_pointer_type, bloc));
-      params->push_back(Typed_identifier("key_size", uintptr_type, bloc));
-
-      Typed_identifier_list* results = new Typed_identifier_list();
-      results->push_back(Typed_identifier("", uintptr_type, bloc));
-
-      Type* hashfn_type = Type::make_function_type(NULL, params, results, bloc);
-
-      params = new Typed_identifier_list();
-      params->push_back(Typed_identifier("key1", unsafe_pointer_type, bloc));
-      params->push_back(Typed_identifier("key2", unsafe_pointer_type, bloc));
-      params->push_back(Typed_identifier("key_size", uintptr_type, bloc));
-
-      results = new Typed_identifier_list();
-      results->push_back(Typed_identifier("", Type::lookup_bool_type(), bloc));
-
-      Type* equalfn_type = Type::make_function_type(NULL, params, results,
-						    bloc);
-
       Struct_type* type_descriptor_type =
 	Type::make_builtin_struct_type(10,
 				       "Kind", uint8_type,
@@ -1555,8 +1535,8 @@
 				       "fieldAlign", uint8_type,
 				       "size", uintptr_type,
 				       "hash", uint32_type,
-				       "hashfn", hashfn_type,
-				       "equalfn", equalfn_type,
+				       "hashfn", uintptr_type,
+				       "equalfn", uintptr_type,
 				       "string", pointer_string_type,
 				       "", pointer_uncommon_type,
 				       "ptrToThis",
@@ -1946,8 +1926,8 @@
   Named_object* equal_fn;
   this->type_functions(gogo, name, hash_fntype, equal_fntype, &hash_fn,
 		       &equal_fn);
-  vals->push_back(Expression::make_func_reference(hash_fn, NULL, bloc));
-  vals->push_back(Expression::make_func_reference(equal_fn, NULL, bloc));
+  vals->push_back(Expression::make_func_code_reference(hash_fn, bloc));
+  vals->push_back(Expression::make_func_code_reference(equal_fn, bloc));
 
   ++p;
   go_assert(p->is_field_name("string"));
@@ -2207,7 +2187,7 @@
 
   ++p;
   go_assert(p->is_field_name("tfn"));
-  vals->push_back(Expression::make_func_reference(no, NULL, bloc));
+  vals->push_back(Expression::make_func_code_reference(no, bloc));
 
   ++p;
   go_assert(p == fields->end());
@@ -3407,6 +3387,19 @@
 Btype*
 Function_type::do_get_backend(Gogo* gogo)
 {
+  // When we do anything with a function value other than call it, it
+  // is represented as a pointer to a struct whose first field is the
+  // actual function.  So that is what we return as the type of a Go
+  // function.  The function stored in the first field always that
+  // takes one additional trailing argument: the closure pointer.  For
+  // a top-level function, this additional argument will only be
+  // passed when invoking the function indirectly, via the struct.
+
+  Location loc = this->location();
+  Btype* struct_type =
+    gogo->backend()->placeholder_struct_type("__go_descriptor", loc);
+  Btype* ptr_struct_type = gogo->backend()->pointer_type(struct_type);
+
   Backend::Btyped_identifier breceiver;
   if (this->receiver_ != NULL)
     {
@@ -3422,9 +3415,15 @@
     }
 
   std::vector<Backend::Btyped_identifier> bparameters;
-  if (this->parameters_ != NULL)
+  size_t last;
+  if (this->parameters_ == NULL)
+    {
+      bparameters.resize(1);
+      last = 0;
+    }
+  else
     {
-      bparameters.resize(this->parameters_->size());
+      bparameters.resize(this->parameters_->size() + 1);
       size_t i = 0;
       for (Typed_identifier_list::const_iterator p = this->parameters_->begin();
 	   p != this->parameters_->end();
@@ -3434,8 +3433,12 @@
 	  bparameters[i].btype = p->type()->get_backend(gogo);
 	  bparameters[i].location = p->location();
 	}
-      go_assert(i == bparameters.size());
+      last = i;
     }
+  go_assert(last + 1 == bparameters.size());
+  bparameters[last].name = "$closure";
+  bparameters[last].btype = ptr_struct_type;
+  bparameters[last].location = loc;
 
   std::vector<Backend::Btyped_identifier> bresults;
   if (this->results_ != NULL)
@@ -3453,8 +3456,15 @@
       go_assert(i == bresults.size());
     }
 
-  return gogo->backend()->function_type(breceiver, bparameters, bresults,
-					this->location());
+  Btype* fntype = gogo->backend()->function_type(breceiver, bparameters,
+						 bresults, loc);
+  std::vector<Backend::Btyped_identifier> fields(1);
+  fields[0].name = "code";
+  fields[0].btype = fntype;
+  fields[0].location = loc;
+  if (!gogo->backend()->set_placeholder_struct_type(struct_type, fields))
+    return gogo->backend()->error_type();
+  return ptr_struct_type;
 }
 
 // The type of a function type descriptor.
@@ -3826,6 +3836,49 @@
   return ret;
 }
 
+// Make a copy of a function type ignoring any receiver and adding a
+// closure parameter.
+
+Function_type*
+Function_type::copy_with_closure(Type* closure_type) const
+{
+  Typed_identifier_list* new_params = new Typed_identifier_list();
+  const Typed_identifier_list* orig_params = this->parameters_;
+  if (orig_params != NULL && !orig_params->empty())
+    {
+      static int count;
+      char buf[50];
+      for (Typed_identifier_list::const_iterator p = orig_params->begin();
+	   p != orig_params->end();
+	   ++p)
+	{
+	  snprintf(buf, sizeof buf, "pt.%u", count);
+	  ++count;
+	  new_params->push_back(Typed_identifier(buf, p->type(),
+						 p->location()));
+	}
+    }
+  new_params->push_back(Typed_identifier("closure.0", closure_type,
+					 this->location_));
+
+  const Typed_identifier_list* orig_results = this->results_;
+  Typed_identifier_list* new_results;
+  if (orig_results == NULL || orig_results->empty())
+    new_results = NULL;
+  else
+    {
+      new_results = new Typed_identifier_list();
+      for (Typed_identifier_list::const_iterator p = orig_results->begin();
+	   p != orig_results->end();
+	   ++p)
+	new_results->push_back(Typed_identifier("", p->type(),
+						p->location()));
+    }
+
+  return Type::make_function_type(NULL, new_params, new_results,
+				  this->location());
+}
+
 // Make a function type.
 
 Function_type*
@@ -4168,6 +4221,22 @@
     }
 }
 
+// Return whether this field is an embedded built-in type.
+
+bool
+Struct_field::is_embedded_builtin(Gogo* gogo) const
+{
+  const std::string& name(this->field_name());
+  // We know that a field is an embedded type if it is anonymous.
+  // We can decide if it is a built-in type by checking to see if it is
+  // registered globally under the field's name.
+  // This allows us to distinguish between embedded built-in types and
+  // embedded types that are aliases to built-in types.
+  return (this->is_anonymous()
+          && !Gogo::is_hidden_name(name)
+          && gogo->lookup_global(name.c_str()) != NULL);
+}
+
 // Class Struct_type.
 
 // A hash table used to find identical unnamed structs so that they
@@ -4532,6 +4601,7 @@
 	      go_assert(sub != NULL);
 	    }
 	  sub->set_struct_expression(here);
+          sub->set_implicit(true);
 	}
       else if (subdepth > found_depth)
 	delete sub;
@@ -4781,11 +4851,16 @@
 
       ++q;
       go_assert(q->is_field_name("pkgPath"));
-      if (!Gogo::is_hidden_name(pf->field_name()))
-	fvals->push_back(Expression::make_nil(bloc));
+      bool is_embedded_builtin = pf->is_embedded_builtin(gogo);
+      if (!Gogo::is_hidden_name(pf->field_name()) && !is_embedded_builtin)
+        fvals->push_back(Expression::make_nil(bloc));
       else
 	{
-	  std::string n = Gogo::hidden_name_pkgpath(pf->field_name());
+	  std::string n;
+          if (is_embedded_builtin)
+            n = gogo->package_name();
+          else
+            n = Gogo::hidden_name_pkgpath(pf->field_name());
 	  Expression* s = Expression::make_string(n, bloc);
 	  fvals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc));
 	}
@@ -6227,7 +6302,8 @@
 
   std::string mangled_name = "__go_map_" + this->mangled_name(gogo);
   Btype* map_descriptor_btype = map_descriptor_type->get_backend(gogo);
-  Bvariable* bvar = gogo->backend()->immutable_struct(mangled_name, true,
+  Bvariable* bvar = gogo->backend()->immutable_struct(mangled_name, false,
+						      true,
 						      map_descriptor_btype,
 						      bloc);
 
@@ -6235,7 +6311,7 @@
   context.set_is_const();
   Bexpression* binitializer = tree_to_expr(initializer->get_tree(&context));
 
-  gogo->backend()->immutable_struct_set_init(bvar, mangled_name, true,
+  gogo->backend()->immutable_struct_set_init(bvar, mangled_name, false, true,
 					     map_descriptor_btype, bloc,
 					     binitializer);
 
@@ -7569,7 +7645,7 @@
       // the child class.
       return this->do_bind_method(expr, location);
     }
-  return Expression::make_bound_method(expr, this->stub_, location);
+  return Expression::make_bound_method(expr, this, this->stub_, location);
 }
 
 // Return the named object associated with a method.  This may only be
@@ -7612,8 +7688,8 @@
 Named_method::do_bind_method(Expression* expr, Location location) const
 {
   Named_object* no = this->named_object_;
-  Bound_method_expression* bme = Expression::make_bound_method(expr, no,
-							       location);
+  Bound_method_expression* bme = Expression::make_bound_method(expr, this,
+							       no, location);
   // If this is not a local method, and it does not use a stub, then
   // the real method expects a different type.  We need to cast the
   // first argument.
@@ -8991,28 +9067,16 @@
   Call_expression* call = Expression::make_call(func, arguments, is_varargs,
 						location);
   call->set_hidden_fields_are_ok();
-  size_t count = call->result_count();
-  if (count == 0)
-    gogo->add_statement(Statement::make_statement(call, true));
-  else
-    {
-      Expression_list* retvals = new Expression_list();
-      if (count <= 1)
-	retvals->push_back(call);
-      else
-	{
-	  for (size_t i = 0; i < count; ++i)
-	    retvals->push_back(Expression::make_call_result(call, i));
-	}
-      Return_statement* retstat = Statement::make_return_statement(retvals,
-								   location);
 
+  Statement* s = Statement::make_return_from_call(call, location);
+  Return_statement* retstat = s->return_statement();
+  if (retstat != NULL)
+    {
       // We can return values with hidden fields from a stub.  This is
       // necessary if the method is itself hidden.
       retstat->set_hidden_fields_are_ok();
-
-      gogo->add_statement(retstat);
     }
+  gogo->add_statement(s);
 }
 
 // Apply FIELD_INDEXES to EXPR.  The field indexes have to be applied
@@ -9353,13 +9417,18 @@
 	fnt = pf->type()->deref()->named_type();
       go_assert(fnt != NULL);
 
+      // Methods with pointer receivers on embedded field are
+      // inherited by the pointer to struct, and also by the struct
+      // type if the field itself is a pointer.
+      bool can_be_pointer = (receiver_can_be_pointer
+			     || pf->type()->points_to() != NULL);
       int sublevel = level == NULL ? 1 : *level + 1;
       bool sub_is_method;
       std::string subambig1;
       std::string subambig2;
       bool subfound = Type::find_field_or_method(fnt,
 						 name,
-						 receiver_can_be_pointer,
+						 can_be_pointer,
 						 seen,
 						 &sublevel,
 						 &sub_is_method,
diff -Naur gcc-4.8.1.orig/gcc/go/gofrontend/types.h gcc-4.8.1/gcc/go/gofrontend/types.h
--- gcc-4.8.1.orig/gcc/go/gofrontend/types.h	2013-01-31 18:23:22.000000000 -0600
+++ gcc-4.8.1/gcc/go/gofrontend/types.h	2013-08-23 16:04:55.544713000 -0500
@@ -523,6 +523,14 @@
   static Type*
   make_forward_declaration(Named_object*);
 
+  // Make a builtin struct type from a list of fields.
+  static Struct_type*
+  make_builtin_struct_type(int nfields, ...);
+
+  // Make a builtin named type.
+  static Named_type*
+  make_builtin_named_type(const char* name, Type* type);
+
   // Traverse a type.
   static int
   traverse(Type*, Traverse*);
@@ -1035,14 +1043,6 @@
   type_descriptor_constructor(Gogo*, int runtime_type_kind, Named_type*,
 			      const Methods*, bool only_value_methods);
 
-  // Make a builtin struct type from a list of fields.
-  static Struct_type*
-  make_builtin_struct_type(int nfields, ...);
-
-  // Make a builtin named type.
-  static Named_type*
-  make_builtin_named_type(const char* name, Type* type);
-
   // For the benefit of child class reflection string generation.
   void
   append_reflection(const Type* type, Gogo* gogo, std::string* ret) const
@@ -1789,6 +1789,12 @@
   Function_type*
   copy_with_receiver(Type*) const;
 
+  // Return a copy of this type ignoring any receiver and adding a
+  // final closure parameter of type CLOSURE_TYPE.  This is used when
+  // creating descriptors.
+  Function_type*
+  copy_with_closure(Type* closure_type) const;
+
   static Type*
   make_function_type_descriptor_type();
 
@@ -1796,7 +1802,7 @@
   int
   do_traverse(Traverse*);
 
-  // A trampoline function has a pointer which matters for GC.
+  // A function descriptor may be allocated on the heap.
   bool
   do_has_pointer() const
   { return true; }
@@ -1920,6 +1926,10 @@
   bool
   is_field_name(const std::string& name) const;
 
+  // Return whether this struct field is an embedded built-in type.
+  bool
+  is_embedded_builtin(Gogo*) const;
+
   // The field type.
   Type*
   type() const
diff -Naur gcc-4.8.1.orig/gcc/go/go-gcc.cc gcc-4.8.1/gcc/go/go-gcc.cc
--- gcc-4.8.1.orig/gcc/go/go-gcc.cc	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/go/go-gcc.cc	2013-08-06 11:40:25.449651000 -0500
@@ -287,10 +287,10 @@
 		     Location, Bstatement**);
 
   Bvariable*
-  immutable_struct(const std::string&, bool, Btype*, Location);
+  immutable_struct(const std::string&, bool, bool, Btype*, Location);
 
   void
-  immutable_struct_set_init(Bvariable*, const std::string&, bool, Btype*,
+  immutable_struct_set_init(Bvariable*, const std::string&, bool, bool, Btype*,
 			    Location, Bexpression*);
 
   Bvariable*
@@ -1242,20 +1242,41 @@
   switch (TREE_CODE(type))
     {
     case RECORD_TYPE:
-      {
-	if (go_non_zero_struct == NULL_TREE)
-	  {
-	    type = make_node(RECORD_TYPE);
-	    tree field = build_decl(UNKNOWN_LOCATION, FIELD_DECL,
-				    get_identifier("dummy"),
-				    boolean_type_node);
-	    DECL_CONTEXT(field) = type;
-	    TYPE_FIELDS(type) = field;
-	    layout_type(type);
-	    go_non_zero_struct = type;
-	  }
-	return go_non_zero_struct;
-      }
+      if (TYPE_FIELDS(type) != NULL_TREE)
+	{
+	  tree ns = make_node(RECORD_TYPE);
+	  tree field_trees = NULL_TREE;
+	  tree *pp = &field_trees;
+	  for (tree field = TYPE_FIELDS(type);
+	       field != NULL_TREE;
+	       field = DECL_CHAIN(field))
+	    {
+	      tree ft = TREE_TYPE(field);
+	      if (field == TYPE_FIELDS(type))
+		ft = non_zero_size_type(ft);
+	      tree f = build_decl(DECL_SOURCE_LOCATION(field), FIELD_DECL,
+				  DECL_NAME(field), ft);
+	      DECL_CONTEXT(f) = ns;
+	      *pp = f;
+	      pp = &DECL_CHAIN(f);
+	    }
+	  TYPE_FIELDS(ns) = field_trees;
+	  layout_type(ns);
+	  return ns;
+	}
+
+      if (go_non_zero_struct == NULL_TREE)
+	{
+	  type = make_node(RECORD_TYPE);
+	  tree field = build_decl(UNKNOWN_LOCATION, FIELD_DECL,
+				  get_identifier("dummy"),
+				  boolean_type_node);
+	  DECL_CONTEXT(field) = type;
+	  TYPE_FIELDS(type) = field;
+	  layout_type(type);
+	  go_non_zero_struct = type;
+	}
+      return go_non_zero_struct;
 
     case ARRAY_TYPE:
       {
@@ -1454,8 +1475,8 @@
 // Create a named immutable initialized data structure.
 
 Bvariable*
-Gcc_backend::immutable_struct(const std::string& name, bool, Btype* btype,
-			      Location location)
+Gcc_backend::immutable_struct(const std::string& name, bool, bool,
+			      Btype* btype, Location location)
 {
   tree type_tree = btype->get_tree();
   if (type_tree == error_mark_node)
@@ -1482,7 +1503,7 @@
 
 void
 Gcc_backend::immutable_struct_set_init(Bvariable* var, const std::string&,
-				       bool is_common, Btype*,
+				       bool is_hidden, bool is_common, Btype*,
 				       Location,
 				       Bexpression* initializer)
 {
@@ -1495,12 +1516,18 @@
 
   // We can't call make_decl_one_only until we set DECL_INITIAL.
   if (!is_common)
-    TREE_PUBLIC(decl) = 1;
-  else
     {
-      make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl));
-      resolve_unique_section(decl, 1, 0);
+      if (!is_hidden)
+	TREE_PUBLIC(decl) = 1;
     }
+  else
+    make_decl_one_only(decl, DECL_ASSEMBLER_NAME(decl));
+
+  // These variables are often unneeded in the final program, so put
+  // them in their own section so that linker GC can discard them.
+  resolve_unique_section(decl,
+			 compute_reloc_for_constant (init_tree),
+			 1);
 
   rest_of_decl_compilation(decl, 1, 0);
 }
diff -Naur gcc-4.8.1.orig/gcc/ipa-cp.c gcc-4.8.1/gcc/ipa-cp.c
--- gcc-4.8.1.orig/gcc/ipa-cp.c	2013-05-09 06:56:32.000000000 -0500
+++ gcc-4.8.1/gcc/ipa-cp.c	2013-06-12 08:17:03.426963000 -0500
@@ -1507,7 +1507,8 @@
   tree otr_type;
   tree t;
 
-  if (param_index == -1)
+  if (param_index == -1
+      || known_vals.length () <= (unsigned int) param_index)
     return NULL_TREE;
 
   if (!ie->indirect_info->polymorphic)
@@ -1528,8 +1529,7 @@
 	    t = NULL;
 	}
       else
-	t = (known_vals.length () > (unsigned int) param_index
-	     ? known_vals[param_index] : NULL);
+	t = known_vals[param_index];
 
       if (t &&
 	  TREE_CODE (t) == ADDR_EXPR
diff -Naur gcc-4.8.1.orig/gcc/ipa-prop.c gcc-4.8.1/gcc/ipa-prop.c
--- gcc-4.8.1.orig/gcc/ipa-prop.c	2013-05-23 08:25:23.000000000 -0500
+++ gcc-4.8.1/gcc/ipa-prop.c	2013-06-24 07:57:52.158957000 -0500
@@ -678,13 +678,19 @@
   bool modified = false;
   ao_ref refd;
 
-  gcc_checking_assert (gimple_vuse (stmt));
   if (parm_ainfo && parm_ainfo->ref_modified)
     return false;
 
-  ao_ref_init (&refd, ref);
-  walk_aliased_vdefs (&refd, gimple_vuse (stmt), mark_modified, &modified,
-		      NULL);
+  if (optimize)
+    {
+      gcc_checking_assert (gimple_vuse (stmt));
+      ao_ref_init (&refd, ref);
+      walk_aliased_vdefs (&refd, gimple_vuse (stmt), mark_modified, &modified,
+			  NULL);
+    }
+  else
+    modified = true;
+
   if (parm_ainfo && modified)
     parm_ainfo->ref_modified = true;
   return !modified;
diff -Naur gcc-4.8.1.orig/gcc/ira.c gcc-4.8.1/gcc/ira.c
--- gcc-4.8.1.orig/gcc/ira.c	2013-05-23 05:36:55.000000000 -0500
+++ gcc-4.8.1/gcc/ira.c	2013-06-20 16:15:52.020104000 -0500
@@ -2863,6 +2863,28 @@
     }
 }
 
+/* Check whether the SUBREG is a paradoxical subreg and set the result
+   in PDX_SUBREGS.  */
+
+static int
+set_paradoxical_subreg (rtx *subreg, void *pdx_subregs)
+{
+  rtx reg;
+
+  if ((*subreg) == NULL_RTX)
+    return 1;
+  if (GET_CODE (*subreg) != SUBREG)
+    return 0;
+  reg = SUBREG_REG (*subreg);
+  if (!REG_P (reg))
+    return 0;
+
+  if (paradoxical_subreg_p (*subreg))
+    ((bool *)pdx_subregs)[REGNO (reg)] = true;
+
+  return 0;
+}
+
 /* In DEBUG_INSN location adjust REGs from CLEARED_REGS bitmap to the
    equivalent replacement.  */
 
@@ -2901,16 +2923,33 @@
   basic_block bb;
   int loop_depth;
   bitmap cleared_regs;
+  bool *pdx_subregs;
 
   /* We need to keep track of whether or not we recorded a LABEL_REF so
      that we know if the jump optimizer needs to be rerun.  */
   recorded_label_ref = 0;
 
+  /* Use pdx_subregs to show whether a reg is used in a paradoxical
+     subreg.  */
+  pdx_subregs = XCNEWVEC (bool, max_regno);
+
   reg_equiv = XCNEWVEC (struct equivalence, max_regno);
   grow_reg_equivs ();
 
   init_alias_analysis ();
 
+  /* Scan insns and set pdx_subregs[regno] if the reg is used in a
+     paradoxical subreg. Don't set such reg sequivalent to a mem,
+     because lra will not substitute such equiv memory in order to
+     prevent access beyond allocated memory for paradoxical memory subreg.  */
+  FOR_EACH_BB (bb)
+    FOR_BB_INSNS (bb, insn)
+      {
+	if (! INSN_P (insn))
+	  continue;
+	for_each_rtx (&insn, set_paradoxical_subreg, (void *)pdx_subregs);
+      }
+
   /* Scan the insns and find which registers have equivalences.  Do this
      in a separate scan of the insns because (due to -fcse-follow-jumps)
      a register can be set below its use.  */
@@ -3008,6 +3047,13 @@
 	      continue;
 	    }
 
+	  /* Don't set reg (if pdx_subregs[regno] == true) equivalent to a mem.  */
+	  if (MEM_P (src) && pdx_subregs[regno])
+	    {
+	      note_stores (set, no_equiv, NULL);
+	      continue;
+	    }
+
 	  note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
 
 	  /* cse sometimes generates function invariants, but doesn't put a
@@ -3166,7 +3212,8 @@
 	  && reg_equiv[regno].init_insns != const0_rtx
 	  && ! find_reg_note (XEXP (reg_equiv[regno].init_insns, 0),
 			      REG_EQUIV, NULL_RTX)
-	  && ! contains_replace_regs (XEXP (dest, 0)))
+	  && ! contains_replace_regs (XEXP (dest, 0))
+	  && ! pdx_subregs[regno])
 	{
 	  rtx init_insn = XEXP (reg_equiv[regno].init_insns, 0);
 	  if (validate_equiv_mem (init_insn, src, dest)
@@ -3357,6 +3404,7 @@
 
   end_alias_analysis ();
   free (reg_equiv);
+  free (pdx_subregs);
   return recorded_label_ref;
 }
 
diff -Naur gcc-4.8.1.orig/gcc/lra-assigns.c gcc-4.8.1/gcc/lra-assigns.c
--- gcc-4.8.1.orig/gcc/lra-assigns.c	2013-02-15 13:17:02.000000000 -0600
+++ gcc-4.8.1/gcc/lra-assigns.c	2013-07-19 15:47:57.560539000 -0500
@@ -116,6 +116,11 @@
 /* Map regno to the corresponding regno assignment info.  */
 static struct regno_assign_info *regno_assign_info;
 
+/* All inherited, subreg or optional pseudos created before last spill
+   sub-pass.  Such pseudos are permitted to get memory instead of hard
+   regs.  */
+static bitmap_head non_reload_pseudos;
+
 /* Process a pseudo copy with execution frequency COPY_FREQ connecting
    REGNO1 and REGNO2 to form threads.  */
 static void
@@ -194,6 +199,15 @@
   if ((diff = (ira_class_hard_regs_num[cl1]
 	       - ira_class_hard_regs_num[cl2])) != 0)
     return diff;
+  if ((diff
+       = (ira_reg_class_max_nregs[cl2][lra_reg_info[r2].biggest_mode]
+	  - ira_reg_class_max_nregs[cl1][lra_reg_info[r1].biggest_mode])) != 0
+      /* The code below executes rarely as nregs == 1 in most cases.
+	 So we should not worry about using faster data structures to
+	 check reload pseudos.  */
+      && ! bitmap_bit_p (&non_reload_pseudos, r1)
+      && ! bitmap_bit_p (&non_reload_pseudos, r2))
+    return diff;
   if ((diff = (regno_assign_info[regno_assign_info[r2].first].freq
 	       - regno_assign_info[regno_assign_info[r1].first].freq)) != 0)
     return diff;
@@ -1156,7 +1170,6 @@
   rtx insn;
   basic_block bb;
   bitmap_head changed_insns, do_not_assign_nonreload_pseudos;
-  bitmap_head non_reload_pseudos;
   unsigned int u;
   bitmap_iterator bi;
   bool reload_p;
@@ -1265,7 +1278,7 @@
 		    }
 		}
 	    }
-	  lra_assert (asm_p);
+	  gcc_assert (asm_p);
 	  break;
 	}
       /* This is a very rare event.  We can not assign a hard
diff -Naur gcc-4.8.1.orig/gcc/lra-constraints.c gcc-4.8.1/gcc/lra-constraints.c
--- gcc-4.8.1.orig/gcc/lra-constraints.c	2013-05-02 14:16:29.000000000 -0500
+++ gcc-4.8.1/gcc/lra-constraints.c	2013-08-15 03:03:32.168856000 -0500
@@ -1388,7 +1388,7 @@
   for (nalt = 0; nalt < n_alternatives; nalt++)
     {
       /* Loop over operands for one constraint alternative.  */
-#ifdef HAVE_ATTR_enabled
+#if HAVE_ATTR_enabled
       if (curr_id->alternative_enabled_p != NULL
 	  && ! curr_id->alternative_enabled_p[nalt])
 	continue;
@@ -4396,7 +4396,7 @@
 	  bitmap_clear_bit (&live_regs, reg->regno);
       /* Mark each used value as live.  */
       for (reg = curr_id->regs; reg != NULL; reg = reg->next)
-	if (reg->type == OP_IN
+	if (reg->type != OP_OUT
 	    && bitmap_bit_p (&check_only_regs, reg->regno))
 	  bitmap_set_bit (&live_regs, reg->regno);
       /* It is quite important to remove dead move insns because it
diff -Naur gcc-4.8.1.orig/gcc/Makefile.in gcc-4.8.1/gcc/Makefile.in
--- gcc-4.8.1.orig/gcc/Makefile.in	2013-05-21 11:00:49.000000000 -0500
+++ gcc-4.8.1/gcc/Makefile.in	2013-07-08 04:14:34.834106000 -0500
@@ -2505,7 +2505,7 @@
    $(TM_H) coretypes.h $(TREE_PASS_H) $(FLAGS_H) \
    tree-iterator.h $(BASIC_BLOCK_H) $(GIMPLE_H) $(TREE_INLINE_H) \
    $(VEC_H) langhooks.h alloc-pool.h pointer-set.h $(CFGLOOP_H) \
-   $(TARGET_H) $(GIMPLE_PRETTY_PRINT_H) $(DIAGNOSTIC_CORE_H)
+   $(TARGET_H) $(GIMPLE_PRETTY_PRINT_H) $(DIAGNOSTIC_CORE_H) $(PARAMS_H)
 tree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
    $(TREE_H) $(TM_P_H) $(GGC_H) \
    $(DIAGNOSTIC_H) $(BASIC_BLOCK_H) $(FLAGS_H) $(TM_H) \
diff -Naur gcc-4.8.1.orig/gcc/omp-low.c gcc-4.8.1/gcc/omp-low.c
--- gcc-4.8.1.orig/gcc/omp-low.c	2013-05-16 05:45:55.000000000 -0500
+++ gcc-4.8.1/gcc/omp-low.c	2013-08-28 05:10:43.062839000 -0500
@@ -836,6 +836,7 @@
   DECL_ARTIFICIAL (copy) = DECL_ARTIFICIAL (var);
   DECL_IGNORED_P (copy) = DECL_IGNORED_P (var);
   DECL_CONTEXT (copy) = DECL_CONTEXT (var);
+  TREE_NO_WARNING (copy) = TREE_NO_WARNING (var);
   TREE_USED (copy) = 1;
   DECL_SEEN_IN_BIND_EXPR_P (copy) = 1;
 
diff -Naur gcc-4.8.1.orig/gcc/passes.c gcc-4.8.1/gcc/passes.c
--- gcc-4.8.1.orig/gcc/passes.c	2013-02-20 09:19:13.000000000 -0600
+++ gcc-4.8.1/gcc/passes.c	2013-08-28 03:29:48.447578000 -0500
@@ -1531,15 +1531,15 @@
       /* Perform simple scalar cleanup which is constant/copy propagation.  */
       NEXT_PASS (pass_ccp);
       NEXT_PASS (pass_object_sizes);
+      /* Fold remaining builtins.  */
+      NEXT_PASS (pass_fold_builtins);
       /* Copy propagation also copy-propagates constants, this is necessary
-         to forward object-size results properly.  */
+         to forward object-size and builtin folding results properly.  */
       NEXT_PASS (pass_copy_prop);
+      NEXT_PASS (pass_dce);
       NEXT_PASS (pass_asan);
       NEXT_PASS (pass_tsan);
       NEXT_PASS (pass_rename_ssa_copies);
-      NEXT_PASS (pass_dce);
-      /* Fold remaining builtins.  */
-      NEXT_PASS (pass_fold_builtins);
       /* ???  We do want some kind of loop invariant motion, but we possibly
          need to adjust LIM to be more friendly towards preserving accurate
 	 debug information here.  */
diff -Naur gcc-4.8.1.orig/gcc/recog.c gcc-4.8.1/gcc/recog.c
--- gcc-4.8.1.orig/gcc/recog.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/recog.c	2013-08-05 15:24:39.437775000 -0500
@@ -1949,9 +1949,6 @@
     (strictp ? strict_memory_address_addr_space_p
 	     : memory_address_addr_space_p);
   unsigned int mode_sz = GET_MODE_SIZE (mode);
-#ifdef POINTERS_EXTEND_UNSIGNED
-  enum machine_mode pointer_mode = targetm.addr_space.pointer_mode (as);
-#endif
 
   if (CONSTANT_ADDRESS_P (y))
     return 1;
@@ -1962,6 +1959,13 @@
   if (mode_dependent_address_p (y, as))
     return 0;
 
+  enum machine_mode address_mode = GET_MODE (y);
+  if (address_mode == VOIDmode)
+    address_mode = targetm.addr_space.address_mode (as);
+#ifdef POINTERS_EXTEND_UNSIGNED
+  enum machine_mode pointer_mode = targetm.addr_space.pointer_mode (as);
+#endif
+
   /* ??? How much offset does an offsettable BLKmode reference need?
      Clearly that depends on the situation in which it's being used.
      However, the current situation in which we test 0xffffffff is
@@ -1977,7 +1981,7 @@
       int good;
 
       y1 = *y2;
-      *y2 = plus_constant (GET_MODE (y), *y2, mode_sz - 1);
+      *y2 = plus_constant (address_mode, *y2, mode_sz - 1);
       /* Use QImode because an odd displacement may be automatically invalid
 	 for any wider mode.  But it should be valid for a single byte.  */
       good = (*addressp) (QImode, y, as);
@@ -1998,20 +2002,20 @@
   if (GET_CODE (y) == LO_SUM
       && mode != BLKmode
       && mode_sz <= GET_MODE_ALIGNMENT (mode) / BITS_PER_UNIT)
-    z = gen_rtx_LO_SUM (GET_MODE (y), XEXP (y, 0),
-			plus_constant (GET_MODE (y), XEXP (y, 1),
+    z = gen_rtx_LO_SUM (address_mode, XEXP (y, 0),
+			plus_constant (address_mode, XEXP (y, 1),
 				       mode_sz - 1));
 #ifdef POINTERS_EXTEND_UNSIGNED
   /* Likewise for a ZERO_EXTEND from pointer_mode.  */
   else if (POINTERS_EXTEND_UNSIGNED > 0
 	   && GET_CODE (y) == ZERO_EXTEND
 	   && GET_MODE (XEXP (y, 0)) == pointer_mode)
-    z = gen_rtx_ZERO_EXTEND (GET_MODE (y),
+    z = gen_rtx_ZERO_EXTEND (address_mode,
 			     plus_constant (pointer_mode, XEXP (y, 0),
 					    mode_sz - 1));
 #endif
   else
-    z = plus_constant (GET_MODE (y), y, mode_sz - 1);
+    z = plus_constant (address_mode, y, mode_sz - 1);
 
   /* Use QImode because an odd displacement may be automatically invalid
      for any wider mode.  But it should be valid for a single byte.  */
@@ -3116,32 +3120,53 @@
       regno = raw_regno;
 #endif
 
-      /* Don't allocate fixed registers.  */
-      if (fixed_regs[regno])
-	continue;
-      /* Don't allocate global registers.  */
-      if (global_regs[regno])
-	continue;
-      /* Make sure the register is of the right class.  */
-      if (! TEST_HARD_REG_BIT (reg_class_contents[cl], regno))
-	continue;
-      /* And can support the mode we need.  */
+      /* Can it support the mode we need?  */
       if (! HARD_REGNO_MODE_OK (regno, mode))
 	continue;
-      /* And that we don't create an extra save/restore.  */
-      if (! call_used_regs[regno] && ! df_regs_ever_live_p (regno))
-	continue;
-      if (! targetm.hard_regno_scratch_ok (regno))
-	continue;
-
-      /* And we don't clobber traceback for noreturn functions.  */
-      if ((regno == FRAME_POINTER_REGNUM || regno == HARD_FRAME_POINTER_REGNUM)
-	  && (! reload_completed || frame_pointer_needed))
-	continue;
 
       success = 1;
-      for (j = hard_regno_nregs[regno][mode] - 1; j >= 0; j--)
+      for (j = 0; success && j < hard_regno_nregs[regno][mode]; j++)
 	{
+	  /* Don't allocate fixed registers.  */
+	  if (fixed_regs[regno + j])
+	    {
+	      success = 0;
+	      break;
+	    }
+	  /* Don't allocate global registers.  */
+	  if (global_regs[regno + j])
+	    {
+	      success = 0;
+	      break;
+	    }
+	  /* Make sure the register is of the right class.  */
+	  if (! TEST_HARD_REG_BIT (reg_class_contents[cl], regno + j))
+	    {
+	      success = 0;
+	      break;
+	    }
+	  /* And that we don't create an extra save/restore.  */
+	  if (! call_used_regs[regno + j] && ! df_regs_ever_live_p (regno + j))
+	    {
+	      success = 0;
+	      break;
+	    }
+
+	  if (! targetm.hard_regno_scratch_ok (regno + j))
+	    {
+	      success = 0;
+	      break;
+	    }
+
+	  /* And we don't clobber traceback for noreturn functions.  */
+	  if ((regno + j == FRAME_POINTER_REGNUM
+	       || regno + j == HARD_FRAME_POINTER_REGNUM)
+	      && (! reload_completed || frame_pointer_needed))
+	    {
+	      success = 0;
+	      break;
+	    }
+
 	  if (TEST_HARD_REG_BIT (*reg_set, regno + j)
 	      || TEST_HARD_REG_BIT (live, regno + j))
 	    {
@@ -3149,6 +3174,7 @@
 	      break;
 	    }
 	}
+
       if (success)
 	{
 	  add_to_hard_reg_set (reg_set, mode, regno);
diff -Naur gcc-4.8.1.orig/gcc/simplify-rtx.c gcc-4.8.1/gcc/simplify-rtx.c
--- gcc-4.8.1.orig/gcc/simplify-rtx.c	2013-03-05 00:04:14.000000000 -0600
+++ gcc-4.8.1/gcc/simplify-rtx.c	2013-07-08 03:15:01.706973000 -0500
@@ -2784,6 +2784,7 @@
           HOST_WIDE_INT mask = INTVAL (trueop1) << count;
 
           if (mask >> count == INTVAL (trueop1)
+	      && trunc_int_for_mode (mask, mode) == mask
               && (mask & nonzero_bits (XEXP (op0, 0), mode)) == 0)
 	    return simplify_gen_binary (ASHIFTRT, mode,
 					plus_constant (mode, XEXP (op0, 0),
diff -Naur gcc-4.8.1.orig/gcc/testsuite/c-c++-common/gomp/pr58257.c gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c
--- gcc-4.8.1.orig/gcc/testsuite/c-c++-common/gomp/pr58257.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/c-c++-common/gomp/pr58257.c	2013-08-28 05:10:43.062839000 -0500
@@ -0,0 +1,15 @@
+/* PR middle-end/58257 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fopenmp -Wall" } */
+
+int
+foo (int n)
+{
+  int a[10][10];
+  int x, y;
+#pragma omp parallel for collapse(2)	/* { dg-bogus "may be used uninitialized in this function" } */
+  for (x = 0; x < n; x++)		/* { dg-bogus "may be used uninitialized in this function" } */
+    for (y = 0; y < n; y++)
+      a[x][y] = x + y * y;
+  return a[0][0];
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58164.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/compile/pr58164.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/compile/pr58164.c	2013-08-16 04:06:41.868666000 -0500
@@ -0,0 +1,8 @@
+/* PR tree-optimization/58164 */
+
+int
+foo (void)
+{
+  int x = 0;
+  goto *&x;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x	2013-07-10 16:06:27.116312000 -0500
@@ -0,0 +1,5 @@
+# Force bigger stack alignment for PowerPC EABI targets.
+if { [istarget "powerpc-*-eabi*"] } {
+    set additional_flags "-mno-eabi"
+}
+return 0
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57568.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57568.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57568.c	2013-06-09 13:33:32.138968000 -0500
@@ -0,0 +1,12 @@
+/* PR target/57568 */
+
+extern void abort (void);
+int a[6][9] = { }, b = 1, *c = &a[3][5];
+
+int
+main ()
+{
+  if (b && (*c = *c + *c))
+    abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57829.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr57829.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr57829.c	2013-07-08 03:15:01.706973000 -0500
@@ -0,0 +1,31 @@
+/* PR rtl-optimization/57829 */
+
+__attribute__((noinline, noclone))
+int
+f1 (int k)
+{
+  return 2 | ((k - 1) >> ((int) sizeof (int) * __CHAR_BIT__ - 1));
+}
+
+__attribute__((noinline, noclone))
+long int
+f2 (long int k)
+{
+  return 2L | ((k - 1L) >> ((int) sizeof (long int) * __CHAR_BIT__ - 1));
+}
+
+__attribute__((noinline, noclone))
+int
+f3 (int k)
+{
+  k &= 63;
+  return 4 | ((k + 2) >> 5);
+}
+
+int
+main ()
+{
+  if (f1 (1) != 2 || f2 (1L) != 2L || f3 (63) != 6 || f3 (1) != 4)
+    __builtin_abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58209.c gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.c-torture/execute/pr58209.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.c-torture/execute/pr58209.c	2013-08-23 02:35:01.611004000 -0500
@@ -0,0 +1,32 @@
+/* PR tree-optimization/58209 */
+
+extern void abort (void);
+typedef __INTPTR_TYPE__ T;
+T buf[1024];
+
+T *
+foo (T n)
+{
+  if (n == 0)
+    return (T *) buf;
+  T s = (T) foo (n - 1);
+  return (T *) (s + sizeof (T));
+}
+
+T *
+bar (T n)
+{
+  if (n == 0)
+    return buf;
+  return foo (n - 1) + 1;
+}
+
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 27; i++)
+    if (foo (i) != buf + i || bar (i) != buf + i)
+      abort ();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/asan/pr56417.c gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/asan/pr56417.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/asan/pr56417.c	2013-08-13 12:02:13.543712000 -0500
@@ -0,0 +1,9 @@
+/* PR sanitizer/56417 */
+/* { dg-do compile } */
+/* { dg-options "-w" } */
+
+int
+foo (void)
+{
+  return __builtin_strlen (&foo);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/ipa/pr57358.c gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/ipa/pr57358.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/ipa/pr57358.c	2013-06-24 07:57:52.158957000 -0500
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct t { void (*func)(void*); };
+void test_func(struct t* a) __attribute__((optimize("O0")));
+void test_func(struct t* a)
+{
+  a->func(0);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr56977.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr56977.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr56977.c	2013-08-28 03:29:48.447578000 -0500
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-Og" } */
+
+__attribute__((__error__("error"))) void error ();
+
+void f (int i) {
+    if (__builtin_constant_p (i)) {
+	error ();
+    }
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57518.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57518.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57518.c	2013-06-20 16:15:52.020104000 -0500
@@ -0,0 +1,15 @@
+/* PR rtl-optimization/57130 */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-rtl-ira" } */
+/* { dg-final { scan-rtl-dump-not "REG_EQUIV.*mem.*\"ip\"" "ira" } } */
+
+char ip[10];
+int total;
+
+void foo() {
+  int t;
+
+  t = ip[2];
+  total = t & 0x3;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57980.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr57980.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr57980.c	2013-08-13 08:34:08.741199000 -0500
@@ -0,0 +1,19 @@
+/* PR tree-optimization/57980 */
+/* { dg-do compile } */
+/* { dg-options "-O -foptimize-sibling-calls -w" } */
+
+typedef int V __attribute__ ((vector_size (2 * sizeof (int))));
+extern V f (void);
+
+V
+bar (void)
+{
+  return -f ();
+}
+
+V
+foo (void)
+{
+  V v = { };
+  return v - f ();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-1.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-1.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-1.c	2013-08-14 15:36:12.151519000 -0500
@@ -0,0 +1,37 @@
+/* PR tree-optimization/58145 */
+/* { dg-do compile { target { int32plus } } } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+struct S { unsigned int data : 32; };
+struct T { unsigned int data; };
+volatile struct S s2;
+
+void
+f1 (int val)
+{
+  struct S s = { .data = val };
+  *(volatile struct S *) 0x880000UL = s;
+}
+
+void
+f2 (int val)
+{
+  struct T t = { .data = val };
+  *(volatile struct T *) 0x880000UL = t;
+}
+
+void
+f3 (int val)
+{
+  *(volatile unsigned int *) 0x880000UL = val;
+}
+
+void
+f4 (int val)
+{
+  struct S s = { .data = val };
+  s2 = s;
+}
+
+/* { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-2.c gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/pr58145-2.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/pr58145-2.c	2013-08-14 15:36:12.151519000 -0500
@@ -0,0 +1,51 @@
+/* PR tree-optimization/58145 */
+/* { dg-do compile { target { int32plus } } } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+struct S { unsigned int data : 32; };
+struct T { unsigned int data; };
+volatile struct S s2;
+
+static inline void
+f1 (int val)
+{
+  struct S s = { .data = val };
+  *(volatile struct S *) 0x880000UL = s;
+}
+
+static inline void
+f2 (int val)
+{
+  struct T t = { .data = val };
+  *(volatile struct T *) 0x880000UL = t;
+}
+
+static inline void
+f3 (int val)
+{
+  *(volatile unsigned int *) 0x880000UL = val;
+}
+
+static inline void
+f4 (int val)
+{
+  struct S s = { .data = val };
+  s2 = s;
+}
+
+void
+f5 (void)
+{
+  int i;
+  for (i = 0; i < 100; i++)
+    f1 (0);
+  for (i = 0; i < 100; i++)
+    f2 (0);
+  for (i = 0; i < 100; i++)
+    f3 (0);
+  for (i = 0; i < 100; i++)
+    f4 (0);
+}
+
+/* { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.dg/torture/pr58041.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.dg/torture/pr58041.c	2013-08-06 12:35:11.119492000 -0500
@@ -0,0 +1,33 @@
+/* { dg-do run } */
+
+typedef long long V
+  __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
+
+struct s
+{
+  char u;
+  V v[2];
+} __attribute__((packed,aligned(1)));
+
+__attribute__((noinline, noclone))
+long long foo(struct s *x, int y, V *z)
+{
+  V a = x->v[y];
+  x->v[y] = *z;
+  return a[1];
+}
+
+struct s a = {0,{{0,0},{0,0}}};
+int main()
+{
+  V v1 = {0,1};
+  V v2 = {0,2};
+
+  if (foo(&a,0,&v1) != 0)
+    __builtin_abort();
+  if (foo(&a,0,&v2) != 1)
+    __builtin_abort();
+  if (foo(&a,1,&v1) != 0)
+    __builtin_abort();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/lp1189445.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/lp1189445.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/lp1189445.c	2013-08-09 01:59:01.329587000 -0500
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_neon } */
+/* { dg-add-options arm_neon } */
+/* { dg-options "-O3" } */
+
+int id;
+int
+test (const long int *data)
+{
+  int i, retval;
+  retval = id;
+  for (i = 0; i < id; i++)
+    {
+      retval &= (data[i] <= 0);
+    }
+
+  return (retval);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/pr58041.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/pr58041.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/pr58041.c	2013-08-06 10:08:59.668112000 -0500
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-options "-Os -mno-unaligned-access" } */
+/* { dg-final { scan-assembler "ldrb" } } */
+/* { dg-final { scan-assembler "strb" } } */
+
+struct s
+{
+  char u;
+  long long v[2];
+} __attribute__((packed,aligned(1)));
+
+__attribute__((noinline, noclone))
+long long foo(struct s *x, int y, long long z)
+{
+  long long a = x->v[y];
+  x->v[y] = z;
+  return a;
+}
+
+struct s a = {0,{0,0}};
+int main()
+{
+  if (foo(&a,0,1) != 0)
+    __builtin_abort();
+  if (foo(&a,0,2) != 1)
+    __builtin_abort();
+  if (foo(&a,1,1) != 0)
+    __builtin_abort();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/arm/thumb1-Os-mult.c	2013-07-25 00:27:55.786383000 -0500
@@ -0,0 +1,12 @@
+/* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-do compile } */
+/* { dg-options "-Os" } */
+/* { dg-skip-if "" { ! { arm_thumb1 } } } */
+
+int
+mymul3 (int x)
+{
+  return x * 0x555;
+}
+
+/* { dg-final { scan-assembler "mul\[\\t \]*r.,\[\\t \]*r." } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c	2013-02-08 04:13:37.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/avr/torture/builtins-4-roundfx.c	2013-07-19 06:15:26.382992000 -0500
@@ -72,11 +72,11 @@
 
 static void test2hr (void)
 {
-  TEST2 (hr, 1, 0x7f, 0x40);
-  TEST2 (hr, 2, 0x7f, 0b1100000);
-  TEST2 (hr, 3, 0x7f, 0b1110000);
-  TEST2 (hr, 4, 0x7f, 0b1111000);
-
+  TEST2 (hr, 1, 0x7f, 0x7f);
+  TEST2 (hr, 2, 0x70, 0x7f);
+  TEST2 (hr, 3, 0x78, 0x7f);
+  TEST2 (hr, 4, 0x7f, 0x7f);
+ 
   TEST2 (uhr, 1, 0x7f, 0x80);
   TEST2 (uhr, 2, 0x7f, 0x80);
   TEST2 (uhr, 3, 0x7f, 0x80);
@@ -85,10 +85,13 @@
 
 void test2k (void)
 {
-  TEST2 (k, 1, 0x7fffffff, 0x7fff8000 | 0b100000000000000);
-  TEST2 (k, 2, 0x7fffffff, 0x7fff8000 | 0b110000000000000);
-  TEST2 (k, 3, 0x7fffffff, 0x7fff8000 | 0b111000000000000);
-  TEST2 (k, 4, 0x7fffffff, 0x7fff8000 | 0b111100000000000);
+  TEST2 (k, 1, 0x7fffff00, 0x7fffffff);
+  TEST2 (k, 2, 0x7ffffff0, 0x7fffffff);
+  TEST2 (k, 2, 0x7ffff000, 0x7fffffff);
+  TEST2 (k, 3, 0x7ffff000, 0x7ffff000);
+  TEST2 (k, 3, 0x7ffff800, 0x7fffffff);
+  TEST2 (k, 3, 0x7ffff7ff, 0x7ffff000);
+  TEST2 (k, 4, 0x7ffff7ff, 0x7ffff800);
 
   TEST2 (uk, 1, 0x7fffffff, 1ul << 31);
   TEST2 (uk, 2, 0x7fffffff, 1ul << 31);
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-1.c	2010-11-10 16:02:23.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-1.c	2013-07-19 02:38:07.333150000 -0500
@@ -1,11 +1,11 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbmi " } */
-/* { dg-final { scan-assembler "andn\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "bextr\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "blsi\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "blsmsk\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "blsr\[^\\n]*(%|)eax" } } */
-/* { dg-final { scan-assembler "tzcntl\[^\\n]*(%|)eax" } } */
+/* { dg-final { scan-assembler "andn\[^\\n]*eax" } } */
+/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "blsi\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "blsmsk\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "blsr\[^\\n]*eax" 2 } } */
+/* { dg-final { scan-assembler-times "tzcntl\[^\\n]*eax" 2 } } */
 
 #include <x86intrin.h>
 
@@ -22,25 +22,57 @@
 }
 
 unsigned int
+func_bextr32_3args (unsigned int X,
+		    unsigned int Y,
+		    unsigned int Z)
+{
+  return _bextr_u32(X, Y, Z);
+}
+
+unsigned int
 func_blsi32 (unsigned int X)
 {
   return __blsi_u32(X);
 }
 
 unsigned int
+func_blsi32_2 (unsigned int X)
+{
+  return _blsi_u32(X);
+}
+
+unsigned int
 func_blsmsk32 (unsigned int X)
 {
   return __blsmsk_u32(X);
 }
 
 unsigned int
+func_blsmsk32_2 (unsigned int X)
+{
+  return _blsmsk_u32(X);
+}
+
+unsigned int
 func_blsr32 (unsigned int X)
 {
   return __blsr_u32(X);
 }
 
 unsigned int
+func_blsr32_2 (unsigned int X)
+{
+  return _blsr_u32(X);
+}
+
+unsigned int
 func_tzcnt32 (unsigned int X)
 {
   return __tzcnt_u32(X);
 }
+
+unsigned int
+func_tzcnt32_2 (unsigned int X)
+{
+  return _tzcnt_u32(X);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi2-bzhi-1.c	2013-06-27 11:45:44.733142000 -0500
@@ -0,0 +1,31 @@
+/* PR target/57623 */
+/* { dg-do assemble { target bmi2 } } */
+/* { dg-options "-O2 -mbmi2" } */
+
+#include <x86intrin.h>
+
+unsigned int
+f1 (unsigned int x, unsigned int *y)
+{
+  return _bzhi_u32 (x, *y);
+}
+
+unsigned int
+f2 (unsigned int *x, unsigned int y)
+{
+  return _bzhi_u32 (*x, y);
+}
+
+#ifdef  __x86_64__
+unsigned long long
+f3 (unsigned long long x, unsigned long long *y)
+{
+  return _bzhi_u64 (x, *y);
+}
+
+unsigned long long
+f4 (unsigned long long *x, unsigned long long y)
+{
+  return _bzhi_u64 (*x, y);
+}
+#endif
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-2.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-2.c	2011-07-09 14:25:11.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-2.c	2013-07-19 02:38:07.333150000 -0500
@@ -1,11 +1,11 @@
 /* { dg-do compile { target { ! { ia32 }  } } } */
 /* { dg-options "-O2 -mbmi " } */
-/* { dg-final { scan-assembler "andn\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "bextr\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "blsi\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "blsmsk\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "blsr\[^\\n]*(%|)rax" } } */
-/* { dg-final { scan-assembler "tzcntq\[^\\n]*(%|)rax" } } */
+/* { dg-final { scan-assembler "andn\[^\\n]*rax" } } */
+/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "blsi\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "blsmsk\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "blsr\[^\\n]*rax" 2 } } */
+/* { dg-final { scan-assembler-times "tzcntq\[^\\n]*rax" 2 } } */
 
 #include <x86intrin.h>
 
@@ -22,25 +22,57 @@
 }
 
 unsigned long long
+func_bextr64_3args (unsigned long long X,
+		    unsigned long long Y,
+		    unsigned long long Z)
+{
+  return _bextr_u64 (X, Y, Z);
+}
+
+unsigned long long
 func_blsi64 (unsigned long long X)
 {
   return __blsi_u64 (X);
 }
 
 unsigned long long
+func_blsi64_2 (unsigned long long X)
+{
+  return _blsi_u64 (X);
+}
+
+unsigned long long
 func_blsmsk64 (unsigned long long X)
 {
   return __blsmsk_u64 (X);
 }
 
 unsigned long long
+func_blsmsk64_2 (unsigned long long X)
+{
+  return _blsmsk_u64 (X);
+}
+
+unsigned long long
 func_blsr64 (unsigned long long X)
 {
   return __blsr_u64 (X);
 }
 
 unsigned long long
+func_blsr64_2 (unsigned long long X)
+{
+  return _blsr_u64 (X);
+}
+
+unsigned long long
 func_tzcnt64 (unsigned long long X)
 {
   return __tzcnt_u64 (X);
 }
+
+unsigned long long
+func_tzcnt64_2 (unsigned long long X)
+{
+  return _tzcnt_u64 (X);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/bmi-bextr-3.c	2013-06-27 11:49:38.157989000 -0500
@@ -0,0 +1,31 @@
+/* PR target/57623 */
+/* { dg-do assemble { target bmi } } */
+/* { dg-options "-O2 -mbmi" } */
+
+#include <x86intrin.h>
+
+unsigned int
+f1 (unsigned int x, unsigned int *y)
+{
+  return __bextr_u32 (x, *y);
+}
+
+unsigned int
+f2 (unsigned int *x, unsigned int y)
+{
+  return __bextr_u32 (*x, y);
+}
+
+#ifdef  __x86_64__
+unsigned long long
+f3 (unsigned long long x, unsigned long long *y)
+{
+  return __bextr_u64 (x, *y);
+}
+
+unsigned long long
+f4 (unsigned long long *x, unsigned long long y)
+{
+  return __bextr_u64 (*x, y);
+}
+#endif
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/movabs-1.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/movabs-1.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/movabs-1.c	2013-08-13 07:45:06.811510000 -0500
@@ -0,0 +1,10 @@
+/* { dg-do assemble } */
+/* { dg-options "-O2 -masm=intel" } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-require-effective-target masm_intel } */
+
+void
+foo (void)
+{
+  *(volatile long*)0xFFFF800000000000 = -1;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57459.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57459.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57459.c	2013-08-13 11:40:33.972568000 -0500
@@ -0,0 +1,60 @@
+/* PR rtl-optimization/57459 */
+/* { dg-do run } */
+/* { dg-options "-fno-inline -O2 -minline-all-stringops -fno-omit-frame-pointer" } */
+
+int total1[10], total2[10], total3[10], total4[10], total5[10], a[20];
+int len;
+
+void stackclean() {
+  void *ptr = __builtin_alloca(20000);
+  __builtin_memset(ptr, 0, 20000);
+}
+
+void foo(const char *s) {
+  int r1 = a[1];
+  int r2 = a[2];
+  int r3 = a[3];
+  int r4 = a[4];
+  int r5 = a[5];
+
+  len =  __builtin_strlen(s);
+
+  if (s != 0)
+    return;
+
+  while (r1) {
+   total1[r1] = r1;
+   r1--;
+  }
+
+  while (r2) {
+   total2[r2] = r2;
+   r2--;
+  }
+
+  while (r3) {
+   total3[r3] = r3;
+   r3--;
+  }
+
+  while (r4) {
+   total4[r4] = r4;
+   r4--;
+  }
+
+  while (r5) {
+   total5[r5] = r5;
+   r5--;
+  }
+}
+
+extern void abort (void);
+
+int main() {
+  stackclean();
+  foo("abcdefgh");
+  if (len != 8)
+    abort ();
+  return 0;
+}
+
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57655.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57655.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57655.c	2013-06-21 08:30:30.950078000 -0500
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx -mvzeroupper -mno-fp-ret-in-387" }
+
+/* { dg-error "x87 register return with x87 disabled" "" { target { ! ia32 } } 8 } */
+
+long double
+foo (long double x)
+{
+  return __builtin_ilogbl (x);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57736.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57736.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57736.c	2013-06-28 15:26:27.574295000 -0500
@@ -0,0 +1,41 @@
+/* PR target/57736 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+#include <x86intrin.h>
+
+unsigned long long
+f1 (void)
+{
+  return __rdtsc ();
+}
+
+unsigned long long
+f2 (unsigned int *x)
+{
+  return __rdtscp (x);
+}
+
+unsigned long long
+f3 (unsigned int x)
+{
+  return __rdpmc (x);
+}
+
+void
+f4 (void)
+{
+  __rdtsc ();
+}
+
+void
+f5 (unsigned int *x)
+{
+  __rdtscp (x);
+}
+
+void
+f6 (unsigned int x)
+{
+  __rdpmc (x);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57777.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr57777.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr57777.c	2013-07-03 15:24:19.796040000 -0500
@@ -0,0 +1,13 @@
+/* PR target/57777 */
+/* { dg-do assemble { target avx2 } } */
+/* { dg-options "-O3 -mavx2" } */
+/* { dg-additional-options "-fpic" { target fpic } } */
+
+void
+foo (unsigned long *x, int *y)
+{
+  static unsigned long b[2] = { 0x0UL, 0x9908b0dfUL };
+  int c;
+  for (c = 0; c < 512; c++)
+    x[c] = b[x[c] & 1UL];
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr58218.c gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/i386/pr58218.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/i386/pr58218.c	2013-08-23 05:01:34.440607000 -0500
@@ -0,0 +1,5 @@
+/* PR target/58218 */
+/* { dg-do assemble { target lp64 } } */
+/* { dg-options "-mcmodel=medium" } */
+
+struct { float x[16385]; } a = { { 0.f, } };
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/20020118-1.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/20020118-1.c	2009-04-28 03:38:37.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/20020118-1.c	2013-07-10 16:06:27.116312000 -0500
@@ -1,6 +1,8 @@
 /* { dg-do run { target powerpc*-*-* } }*/
 /* VxWorks only guarantees 64 bits of alignment (STACK_BOUNDARY == 64).  */
 /* { dg-skip-if "" { "powerpc*-*-vxworks*" } { "*" } { "" } } */
+/* Force 128-bit stack alignment for eabi targets.  */
+/* { dg-options "-mno-eabi" { target powerpc*-*-eabi* } } */
 
 /* Test local alignment.  Test new target macro STARTING_FRAME_PHASE.  */
 /* Origin: Aldy Hernandez <aldyh@redhat.com>.  */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/altivec-consts.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/altivec-consts.c	2009-01-13 11:52:32.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/altivec-consts.c	2013-06-23 19:59:24.817984000 -0500
@@ -11,31 +11,24 @@
 typedef __attribute__ ((vector_size (16))) unsigned short v8hi;
 typedef __attribute__ ((vector_size (16))) unsigned int v4si;
 
-char w[16] __attribute__((aligned(16)));
- 
-
-/* Emulate the vspltis? instructions on a 16-byte array of chars.  */
+typedef __attribute__((aligned(16))) char c16[16];
+typedef __attribute__((aligned(16))) short s8[8];
+typedef __attribute__((aligned(16))) int i4[4];
 
-void vspltisb (char *v, int val)
-{
-  int i;
-  for (i = 0; i < 16; i++)
-    v[i] = val;
-}
+#define V16QI(V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16)	\
+  v16qi v = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16};	\
+  static c16 w = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16}; \
+  check_v16qi (v, w);
 
-void vspltish (char *v, int val)
-{
-  int i;
-  for (i = 0; i < 16; i += 2)
-    v[i] = val >> 7, v[i + 1] = val;
-}
+#define V8HI(V1,V2,V3,V4,V5,V6,V7,V8)		\
+  v8hi v = {V1,V2,V3,V4,V5,V6,V7,V8};		\
+  static s8 w = {V1,V2,V3,V4,V5,V6,V7,V8};	\
+  check_v8hi (v, w);
 
-void vspltisw (char *v, int val)
-{
-  int i;
-  for (i = 0; i < 16; i += 4)
-    v[i] = v[i + 1] = v[i + 2] = val >> 7, v[i + 3] = val;
-}
+#define V4SI(V1,V2,V3,V4)	\
+  v4si v = {V1,V2,V3,V4};	\
+  static i4 w = {V1,V2,V3,V4};	\
+  check_v4si (v, w);
 
 
 /* Use three different check functions for each mode-instruction pair.
@@ -48,13 +41,13 @@
     abort ();
 }
 
-void __attribute__ ((noinline)) check_v8hi (v8hi v1, char *v2)
+void __attribute__ ((noinline)) check_v8hi (v8hi v1, short *v2)
 {
   if (memcmp (&v1, v2, 16))
     abort ();
 }
 
-void __attribute__ ((noinline)) check_v4si (v4si v1, char *v2)
+void __attribute__ ((noinline)) check_v4si (v4si v1, int *v2)
 {
   if (memcmp (&v1, v2, 16))
     abort ();
@@ -65,72 +58,52 @@
 
 void v16qi_vspltisb ()
 {
-  v16qi v = { 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 };
-  vspltisb (w, 15);
-  check_v16qi (v, w);
+  V16QI (15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15);
 }
 
 void v16qi_vspltisb_neg ()
 {
-  v16qi v = { -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5 };
-  vspltisb (w, -5);
-  check_v16qi (v, w);
+  V16QI (-5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5);
 }
 
 void v16qi_vspltisb_addself ()
 {
-  v16qi v = { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 };
-  vspltisb (w, 30);
-  check_v16qi (v, w);
+  V16QI (30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30);
 }
 
 void v16qi_vspltisb_neg_addself ()
 {
-  v16qi v = { -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24 };
-  vspltisb (w, -24);
-  check_v16qi (v, w);
+  V16QI (-24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24);
 }
 
 void v16qi_vspltish ()
 {
-  v16qi v = { 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15 };
-  vspltish (w, 15);
-  check_v16qi (v, w);
+  V16QI (0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15);
 }
 
 void v16qi_vspltish_addself ()
 {
-  v16qi v = { 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30 };
-  vspltish (w, 30);
-  check_v16qi (v, w);
+  V16QI (0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30);
 }
 
 void v16qi_vspltish_neg ()
 {
-  v16qi v = { -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5 };
-  vspltish (w, -5);
-  check_v16qi (v, w);
+  V16QI (-1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5);
 }
 
 void v16qi_vspltisw ()
 {
-  v16qi v = { 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15 };
-  vspltisw (w, 15);
-  check_v16qi (v, w);
+  V16QI (0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15);
 }
 
 void v16qi_vspltisw_addself ()
 {
-  v16qi v = { 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30 };
-  vspltisw (w, 30);
-  check_v16qi (v, w);
+  V16QI (0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30);
 }
 
 void v16qi_vspltisw_neg ()
 {
-  v16qi v = { -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5 };
-  vspltisw (w, -5);
-  check_v16qi (v, w);
+  V16QI (-1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5);
 }
 
 
@@ -138,144 +111,104 @@
 
 void v8hi_vspltisb ()
 {
-  v8hi v = { 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F };
-  vspltisb (w, 15);
-  check_v8hi (v, w);
+  V8HI (0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F);
 }
 
 void v8hi_vspltisb_addself ()
 {
-  v8hi v = { 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E };
-  vspltisb (w, 30);
-  check_v8hi (v, w);
+  V8HI (0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E);
 }
 
 void v8hi_vspltisb_neg ()
 {
-  v8hi v = { 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB };
-  vspltisb (w, -5);
-  check_v8hi (v, w);
+  V8HI (0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB);
 }
 
 void v8hi_vspltish ()
 {
-  v8hi v = { 15, 15, 15, 15, 15, 15, 15, 15 };
-  vspltish (w, 15);
-  check_v8hi (v, w);
+  V8HI (15, 15, 15, 15, 15, 15, 15, 15);
 }
 
 void v8hi_vspltish_neg ()
 {
-  v8hi v = { -5, -5, -5, -5, -5, -5, -5, -5 };
-  vspltish (w, -5);
-  check_v8hi (v, w);
+  V8HI (-5, -5, -5, -5, -5, -5, -5, -5);
 }
 
 void v8hi_vspltish_addself ()
 {
-  v8hi v = { 30, 30, 30, 30, 30, 30, 30, 30 };
-  vspltish (w, 30);
-  check_v8hi (v, w);
+  V8HI (30, 30, 30, 30, 30, 30, 30, 30);
 }
 
 void v8hi_vspltish_neg_addself ()
 {
-  v8hi v = { -24, -24, -24, -24, -24, -24, -24, -24 };
-  vspltish (w, -24);
-  check_v8hi (v, w);
+  V8HI (-24, -24, -24, -24, -24, -24, -24, -24);
 }
 
 void v8hi_vspltisw ()
 {
-  v8hi v = { 0, 15, 0, 15, 0, 15, 0, 15 };
-  vspltisw (w, 15);
-  check_v8hi (v, w);
+  V8HI (0, 15, 0, 15, 0, 15, 0, 15);
 }
 
 void v8hi_vspltisw_addself ()
 {
-  v8hi v = { 0, 30, 0, 30, 0, 30, 0, 30 };
-  vspltisw (w, 30);
-  check_v8hi (v, w);
+  V8HI (0, 30, 0, 30, 0, 30, 0, 30);
 }
 
 void v8hi_vspltisw_neg ()
 {
-  v8hi v = { -1, -5, -1, -5, -1, -5, -1, -5 };
-  vspltisw (w, -5);
-  check_v8hi (v, w);
+  V8HI (-1, -5, -1, -5, -1, -5, -1, -5);
 }
 
 /* V4SI tests. */
 
 void v4si_vspltisb ()
 {
-  v4si v = { 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F };
-  vspltisb (w, 15);
-  check_v4si (v, w);
+  V4SI (0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
 }
 
 void v4si_vspltisb_addself ()
 {
-  v4si v = { 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E };
-  vspltisb (w, 30);
-  check_v4si (v, w);
+  V4SI (0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E);
 }
 
 void v4si_vspltisb_neg ()
 {
-  v4si v = { 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB };
-  vspltisb (w, -5);
-  check_v4si (v, w);
+  V4SI (0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB);
 }
 
 void v4si_vspltish ()
 {
-  v4si v = { 0x000F000F, 0x000F000F, 0x000F000F, 0x000F000F };
-  vspltish (w, 15);
-  check_v4si (v, w);
+  V4SI (0x000F000F, 0x000F000F, 0x000F000F, 0x000F000F);
 }
 
 void v4si_vspltish_addself ()
 {
-  v4si v = { 0x001E001E, 0x001E001E, 0x001E001E, 0x001E001E };
-  vspltish (w, 30);
-  check_v4si (v, w);
+  V4SI (0x001E001E, 0x001E001E, 0x001E001E, 0x001E001E);
 }
 
 void v4si_vspltish_neg ()
 {
-  v4si v = { 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB };
-  vspltish (w, -5);
-  check_v4si (v, w);
+  V4SI (0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB);
 }
 
 void v4si_vspltisw ()
 {
-  v4si v = { 15, 15, 15, 15 };
-  vspltisw (w, 15);
-  check_v4si (v, w);
+  V4SI (15, 15, 15, 15);
 }
 
 void v4si_vspltisw_neg ()
 {
-  v4si v = { -5, -5, -5, -5 };
-  vspltisw (w, -5);
-  check_v4si (v, w);
+  V4SI (-5, -5, -5, -5);
 }
 
 void v4si_vspltisw_addself ()
 {
-  v4si v = { 30, 30, 30, 30 };
-  vspltisw (w, 30);
-  check_v4si (v, w);
+  V4SI (30, 30, 30, 30);
 }
 
 void v4si_vspltisw_neg_addself ()
 {
-  v4si v = { -24, -24, -24, -24 };
-  vspltisw (w, -24);
-  check_v4si (v, w);
+  V4SI (-24, -24, -24, -24);
 }
 
 
@@ -316,3 +249,5 @@
   v4si_vspltisw_neg_addself ();
   return 0;
 }
+
+/* { dg-final { scan-assembler-not "lvx" { target { ! powerpc*le-*-* } } } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c	2013-06-23 19:59:24.817984000 -0500
@@ -0,0 +1,253 @@
+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
+/* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
+/* { dg-require-effective-target powerpc_altivec_ok } */
+/* { dg-options "-maltivec -mabi=altivec -O2" } */
+
+/* Check that "easy" AltiVec constants are correctly synthesized.  */
+
+extern void abort (void);
+
+typedef __attribute__ ((vector_size (16))) unsigned char v16qi;
+typedef __attribute__ ((vector_size (16))) unsigned short v8hi;
+typedef __attribute__ ((vector_size (16))) unsigned int v4si;
+
+typedef __attribute__((aligned(16))) char c16[16];
+typedef __attribute__((aligned(16))) short s8[8];
+typedef __attribute__((aligned(16))) int i4[4];
+
+#define V16QI(V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16)	\
+  v16qi v = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16};	\
+  static c16 w = {V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14,V15,V16}; \
+  check_v16qi (v, w);
+
+#define V8HI(V1,V2,V3,V4,V5,V6,V7,V8)		\
+  v8hi v = {V1,V2,V3,V4,V5,V6,V7,V8};		\
+  static s8 w = {V1,V2,V3,V4,V5,V6,V7,V8};	\
+  check_v8hi (v, w);
+
+#define V4SI(V1,V2,V3,V4)	\
+  v4si v = {V1,V2,V3,V4};	\
+  static i4 w = {V1,V2,V3,V4};	\
+  check_v4si (v, w);
+
+
+/* Use three different check functions for each mode-instruction pair.
+   The callers have no typecasting and no addressable vectors, to make
+   the test more robust.  */
+
+void __attribute__ ((noinline)) check_v16qi (v16qi v1, char *v2)
+{
+  if (memcmp (&v1, v2, 16))
+    abort ();
+}
+
+void __attribute__ ((noinline)) check_v8hi (v8hi v1, short *v2)
+{
+  if (memcmp (&v1, v2, 16))
+    abort ();
+}
+
+void __attribute__ ((noinline)) check_v4si (v4si v1, int *v2)
+{
+  if (memcmp (&v1, v2, 16))
+    abort ();
+}
+
+
+/* V16QI tests.  */
+
+void v16qi_vspltisb ()
+{
+  V16QI (15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15);
+}
+
+void v16qi_vspltisb_neg ()
+{
+  V16QI (-5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5);
+}
+
+void v16qi_vspltisb_addself ()
+{
+  V16QI (30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30);
+}
+
+void v16qi_vspltisb_neg_addself ()
+{
+  V16QI (-24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24);
+}
+
+void v16qi_vspltish ()
+{
+  V16QI (15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0);
+}
+
+void v16qi_vspltish_addself ()
+{
+  V16QI (30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0);
+}
+
+void v16qi_vspltish_neg ()
+{
+  V16QI (-5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1);
+}
+
+void v16qi_vspltisw ()
+{
+  V16QI (15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0);
+}
+
+void v16qi_vspltisw_addself ()
+{
+  V16QI (30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0);
+}
+
+void v16qi_vspltisw_neg ()
+{
+  V16QI (-5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1);
+}
+
+
+/* V8HI tests. */
+
+void v8hi_vspltisb ()
+{
+  V8HI (0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F);
+}
+
+void v8hi_vspltisb_addself ()
+{
+  V8HI (0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E);
+}
+
+void v8hi_vspltisb_neg ()
+{
+  V8HI (0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB);
+}
+
+void v8hi_vspltish ()
+{
+  V8HI (15, 15, 15, 15, 15, 15, 15, 15);
+}
+
+void v8hi_vspltish_neg ()
+{
+  V8HI (-5, -5, -5, -5, -5, -5, -5, -5);
+}
+
+void v8hi_vspltish_addself ()
+{
+  V8HI (30, 30, 30, 30, 30, 30, 30, 30);
+}
+
+void v8hi_vspltish_neg_addself ()
+{
+  V8HI (-24, -24, -24, -24, -24, -24, -24, -24);
+}
+
+void v8hi_vspltisw ()
+{
+  V8HI (15, 0, 15, 0, 15, 0, 15, 0);
+}
+
+void v8hi_vspltisw_addself ()
+{
+  V8HI (30, 0, 30, 0, 30, 0, 30, 0);
+}
+
+void v8hi_vspltisw_neg ()
+{
+  V8HI (-5, -1, -5, -1, -5, -1, -5, -1);
+}
+
+/* V4SI tests. */
+
+void v4si_vspltisb ()
+{
+  V4SI (0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
+}
+
+void v4si_vspltisb_addself ()
+{
+  V4SI (0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E);
+}
+
+void v4si_vspltisb_neg ()
+{
+  V4SI (0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB);
+}
+
+void v4si_vspltish ()
+{
+  V4SI (0x000F000F, 0x000F000F, 0x000F000F, 0x000F000F);
+}
+
+void v4si_vspltish_addself ()
+{
+  V4SI (0x001E001E, 0x001E001E, 0x001E001E, 0x001E001E);
+}
+
+void v4si_vspltish_neg ()
+{
+  V4SI (0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB);
+}
+
+void v4si_vspltisw ()
+{
+  V4SI (15, 15, 15, 15);
+}
+
+void v4si_vspltisw_neg ()
+{
+  V4SI (-5, -5, -5, -5);
+}
+
+void v4si_vspltisw_addself ()
+{
+  V4SI (30, 30, 30, 30);
+}
+
+void v4si_vspltisw_neg_addself ()
+{
+  V4SI (-24, -24, -24, -24);
+}
+
+
+
+int main ()
+{
+  v16qi_vspltisb ();
+  v16qi_vspltisb_neg ();
+  v16qi_vspltisb_addself ();
+  v16qi_vspltisb_neg_addself ();
+  v16qi_vspltish ();
+  v16qi_vspltish_addself ();
+  v16qi_vspltish_neg ();
+  v16qi_vspltisw ();
+  v16qi_vspltisw_addself ();
+  v16qi_vspltisw_neg ();
+
+  v8hi_vspltisb ();
+  v8hi_vspltisb_addself ();
+  v8hi_vspltisb_neg ();
+  v8hi_vspltish ();
+  v8hi_vspltish_neg ();
+  v8hi_vspltish_addself ();
+  v8hi_vspltish_neg_addself ();
+  v8hi_vspltisw ();
+  v8hi_vspltisw_addself ();
+  v8hi_vspltisw_neg ();
+
+  v4si_vspltisb ();
+  v4si_vspltisb_addself ();
+  v4si_vspltisb_neg ();
+  v4si_vspltish ();
+  v4si_vspltish_addself ();
+  v4si_vspltish_neg ();
+  v4si_vspltisw ();
+  v4si_vspltisw_neg ();
+  v4si_vspltisw_addself ();
+  v4si_vspltisw_neg_addself ();
+  return 0;
+}
+
+/* { dg-final { scan-assembler-not "lvx" { target { powerpc*le-*-* } } } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c	2009-01-12 21:11:48.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c	2013-07-08 14:39:20.298935000 -0500
@@ -4,4 +4,4 @@
 /* { dg-options "-m64" } */
 
 /* { dg-error "-m64 not supported in this configuration" "SPE not 64-bit" { target *-*-* } 0 } */
-/* { dg-error "64-bit E500 not supported" "64-bit E500" { target *-*-* } 0 } */
+/* { dg-error "64-bit SPE not supported" "64-bit SPE" { target *-*-* } 0 } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr47197.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/pr47197.c	2012-04-24 10:51:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/pr47197.c	2013-07-08 14:38:40.579938000 -0500
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target powerpc_altivec_ok } */
 /* { dg-options "-maltivec" } */
 
 /* Compile-only test to ensure that expressions can be passed to
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/tfmode_off.c gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/powerpc/tfmode_off.c	2012-11-07 15:03:08.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/powerpc/tfmode_off.c	2013-07-08 15:21:45.963328000 -0500
@@ -1,5 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-skip-if "" { powerpc-ibm-aix* } { "*" } { "" } } */
+/* { dg-skip-if "no TFmode" { powerpc-*-eabi* } { "*" } { "" } } */
 /* { dg-options "-O2 -fno-align-functions -mtraceback=no -save-temps" } */
 
 typedef float TFmode __attribute__ ((mode (TF)));
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-1.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-1.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-1.c	2013-06-09 17:02:28.968408000 -0500
@@ -0,0 +1,19 @@
+/* Verify that the fmac insn is used for the expression 'a * b + a' and
+   'a * a + a'.
+   This assumes that the default compiler setting is -ffp-contract=fast.  */
+/* { dg-do compile { target "sh*-*-*" } } */
+/* { dg-options "-O1" } */
+/* { dg-skip-if "" { "sh*-*-*" } { "-m1" "-m2" "-m3" "-m4al" "*nofpu" "-m4-340*" "-m4-400*" "-m4-500*" "-m5*" } { "" } }  */
+/* { dg-final { scan-assembler-times "fmac" 2 } } */
+
+float
+test_00 (float a, float b)
+{
+  return a * b + a;
+}
+
+float
+test_01 (float a)
+{
+  return a * a + a;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-2.c gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c
--- gcc-4.8.1.orig/gcc/testsuite/gcc.target/sh/pr56547-2.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gcc.target/sh/pr56547-2.c	2013-06-09 17:02:28.968408000 -0500
@@ -0,0 +1,18 @@
+/* Verify that the fmac insn is used for the expression 'a * b + a' and
+   'a * a + a' when -ffast-math is specified.  */
+/* { dg-do compile { target "sh*-*-*" } } */
+/* { dg-options "-O1 -ffast-math" } */
+/* { dg-skip-if "" { "sh*-*-*" } { "-m1" "-m2" "-m3" "-m4al" "*nofpu" "-m4-340*" "-m4-400*" "-m4-500*" "-m5*" } { "" } }  */
+/* { dg-final { scan-assembler-times "fmac" 2 } } */
+
+float
+test_00 (float a, float b)
+{
+  return a * b + a;
+}
+
+float
+test_01 (float a)
+{
+  return a * a + a;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value4.C	2013-07-30 11:58:28.826601000 -0500
@@ -0,0 +1,16 @@
+// PR c++/57901
+// { dg-require-effective-target c++11 }
+
+struct Z {
+    Z()         = default;
+    Z(Z const&) = default;
+    constexpr Z(Z&&) {} /* non-trivial (constexpr) move ctor */
+};
+
+template<typename T>
+constexpr int fn0(T v) { return 0; }
+template<typename T>
+constexpr int fn (T v) { return fn0(v); }
+
+constexpr auto t0 = fn0(Z()); // OK!
+constexpr auto t  = fn (Z()); // error! (GCC 4.8.1)
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/decltype55.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/decltype55.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype55.C	2013-06-21 03:42:56.865320000 -0500
@@ -0,0 +1,20 @@
+// PR c++/53211
+// { dg-do compile { target c++11 } }
+
+template<typename A, typename B>
+  struct is_same { static const bool value = false; };
+
+template<typename A>
+  struct is_same<A, A> { static const bool value = true; };
+
+template<typename... Args>
+void func(Args... args)
+{
+  int arr[] = { args... };
+  static_assert (is_same<decltype(arr), int[sizeof...(Args)]>::value, "");
+}
+
+int main()
+{
+  func(1, 2, 3, 4);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted44.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted44.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted44.C	2013-05-31 08:03:45.258613000 -0500
@@ -0,0 +1,24 @@
+// PR c++/57319
+// { dg-require-effective-target c++11 }
+
+namespace N1 {
+  struct A { };
+  struct B: virtual A { };
+  struct C: virtual B { };
+
+  struct D: C
+  {
+    void operator= (D &);
+  };
+}
+
+namespace N2 {
+  struct A { A& operator=(A&&); };
+  struct B: virtual A { };	// { dg-warning "move assignment" }
+  struct C: virtual B { };	// { dg-warning "move assignment" }
+
+  struct D: C
+  {
+    void operator= (D &);
+  };
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted45.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/defaulted45.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted45.C	2013-07-13 20:06:02.832708000 -0500
@@ -0,0 +1,20 @@
+// { dg-do run }
+// { dg-require-effective-target c++11 }
+
+struct A
+{
+  int i;
+  A() = default;
+  A(int i): i{i} { }
+  ~A() {}
+};
+
+int main(int argc, char **argv)
+{
+  { int i[4] = { 42, 42, 42, 42 }; }
+  {
+    A a[4] = { argc };
+    if (a[1].i != 0)
+      __builtin_abort ();
+  }
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/initlist71.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/initlist71.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist71.C	2013-05-31 08:03:23.182211000 -0500
@@ -0,0 +1,9 @@
+// PR c++/56930
+// { dg-require-effective-target c++11 }
+// { dg-options -Wconversion }
+
+int main()
+{
+  int x = sizeof(int);
+  int y { sizeof(int) };
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto3.C	2013-07-09 12:52:48.262064000 -0500
@@ -0,0 +1,24 @@
+// PR c++/57526
+// { dg-require-effective-target c++11 }
+
+template<class T>
+struct A
+{
+  void bar( ) { }
+
+  void foo( )
+  {
+    auto* this_ptr = this;
+    auto lc = [&]( )
+      {
+	this_ptr->bar();
+      };
+    lc();
+  }
+};
+
+int main()
+{
+  A<int> a;
+  a.foo();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg5.C	2013-08-17 20:07:02.824495000 -0500
@@ -0,0 +1,30 @@
+// PR c++/58083
+// { dg-do compile { target c++11 } }
+
+namespace details {
+struct iterator_concept_checker
+{
+    typedef char yes_type;
+    typedef char (&no_type)[2];
+
+    template <typename T>
+    static no_type test(...);
+
+    template <typename T>
+    static yes_type test(
+        int*
+	, void (*)(T) = [](T it)
+        {
+            auto copy = T{it};                              // copy constructible
+            copy = it;                                      // copy assignable
+            copy.~T();                                      // destroyable
+            ++it;                                           // incrementable
+        }
+      );
+};
+}
+
+int main()
+{
+  details::iterator_concept_checker::test<int>(0);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-return1.C	2013-07-09 12:52:34.273079000 -0500
@@ -0,0 +1,26 @@
+// PR c++/57437
+// { dg-require-effective-target c++11 }
+
+struct A {
+  int i;
+
+  A(): i(42) {}
+  A(const A&) = default;
+  A(A&& a): i(a.i) { a.i = 0; }
+};
+
+int main()
+{
+  A x;
+
+  auto y = [x] () mutable {
+    x.i++;
+    return x;
+  };
+
+  if (y().i != 43)
+    __builtin_abort ();
+
+  if (y().i != 44)
+    __builtin_abort ();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/noexcept21.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/noexcept21.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept21.C	2013-07-05 05:23:08.653887000 -0500
@@ -0,0 +1,87 @@
+// PR c++/57645
+// { dg-do compile { target c++11 } }
+
+struct Thrower
+{
+  ~Thrower() noexcept(false) { throw 1; }
+};
+
+struct ExplicitA
+{
+  ~ExplicitA() {}
+
+  Thrower t;
+};
+
+struct ExplicitB
+{
+  ~ExplicitB();
+
+  Thrower t;
+};
+
+ExplicitB::~ExplicitB() {}
+
+struct ExplicitC
+{
+  ~ExplicitC() = default;
+
+  Thrower t;
+};
+
+struct ExplicitD
+{
+  ~ExplicitD();
+
+  Thrower t;
+};
+
+ExplicitD::~ExplicitD() = default;
+
+struct NoThrower
+{
+  ~NoThrower() noexcept(true) {}
+};
+
+struct ExplicitE
+{
+  ~ExplicitE() {}
+
+  NoThrower t;
+};
+
+struct ExplicitF
+{
+  ~ExplicitF();
+
+  NoThrower t;
+};
+
+ExplicitF::~ExplicitF() {}
+
+struct ExplicitG
+{
+  ~ExplicitG() = default;
+
+  NoThrower t;
+};
+
+struct ExplicitH
+{
+  ~ExplicitH();
+
+  NoThrower t;
+};
+
+ExplicitH::~ExplicitH() = default;
+
+#define SA(X) static_assert(X, #X)
+
+SA( !noexcept(ExplicitA()) );
+SA( !noexcept(ExplicitB()) );
+SA( !noexcept(ExplicitC()) );
+SA( !noexcept(ExplicitD()) );
+SA( noexcept(ExplicitE()) );
+SA( noexcept(ExplicitF()) );
+SA( noexcept(ExplicitG()) );
+SA( noexcept(ExplicitH()) );
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/pr57981.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/pr57981.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr57981.C	2013-08-20 07:14:43.110616000 -0500
@@ -0,0 +1,17 @@
+// { dg-options "-std=c++11 -Wall -Wextra" }
+
+template<class T>
+void f(T t, void* = 0)  // { dg-warning "unused parameter" }
+{
+}
+
+template<class T>
+auto g(T t) -> decltype(f(t))
+{
+  f(t);
+}
+
+int main()
+{
+  g(0);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C	2013-08-06 20:18:57.648578000 -0500
@@ -0,0 +1,18 @@
+// PR c++/57825
+// { dg-do compile { target c++11 } }
+
+template<typename T>
+struct target_class
+{};
+
+template<typename Class, typename Ret, typename... Args>
+struct target_class<Ret (Class::*)(Args...)>
+{};
+
+template<typename Class, typename Ret, typename... Args>
+struct target_class<Ret (Class::*)(Args...) &>
+{};
+
+template<typename Class, typename Ret, typename... Args>
+struct target_class<Ret (Class::*)(Args...) &&>
+{};
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/debug/template2.C gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/debug/template2.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/debug/template2.C	2013-07-09 12:52:01.982983000 -0500
@@ -0,0 +1,14 @@
+// PR c++/57545
+
+template<typename T, long unsigned int N>
+struct array {
+    T data[N];
+};
+
+template<typename T>
+struct derived {
+    typedef long unsigned int size_type;
+    static const size_type n = 42;
+
+    array<int, n> a;
+};
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/expr/const1.C gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/expr/const1.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/expr/const1.C	2013-07-09 12:51:47.995955000 -0500
@@ -0,0 +1,9 @@
+// PR c++/57551
+
+extern unsigned long ADDR;   
+
+unsigned long f(){
+  const unsigned long* const var=&ADDR;
+  const unsigned long retval=var[1];
+  return retval;
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57362.C gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/ext/pr57362.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/ext/pr57362.C	2013-07-31 15:11:51.667843000 -0500
@@ -0,0 +1,199 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-require-ifunc "" }  */
+
+__attribute__((target("default")))
+int foo(void) { return 1; }
+__attribute__((target("128bit-long-double")))
+int foo(void) { return 1; }
+__attribute__((target("80387")))
+int foo(void) { return 1; }
+__attribute__((target("96bit-long-double")))
+int foo(void) { return 1; }
+__attribute__((target("long-double-80")))
+int foo(void) { return 1; }
+__attribute__((target("long-double-64")))
+int foo(void) { return 1; }
+__attribute__((target("accumulate-outgoing-args")))
+int foo(void) { return 1; }
+__attribute__((target("align-double")))
+int foo(void) { return 1; }
+__attribute__((target("align-stringops")))
+int foo(void) { return 1; }
+__attribute__((target("fancy-math-387")))
+int foo(void) { return 1; }
+__attribute__((target("force-drap")))
+int foo(void) { return 1; }
+__attribute__((target("fp-ret-in-387")))
+int foo(void) { return 1; }
+__attribute__((target("hard-float")))
+int foo(void) { return 1; }
+__attribute__((target("ieee-fp")))
+int foo(void) { return 1; }
+__attribute__((target("inline-all-stringops")))
+int foo(void) { return 1; }
+__attribute__((target("inline-stringops-dynamically")))
+int foo(void) { return 1; }
+__attribute__((target("intel-syntax")))
+int foo(void) { return 1; }
+__attribute__((target("ms-bitfields")))
+int foo(void) { return 1; }
+__attribute__((target("no-align-stringops")))
+int foo(void) { return 1; }
+__attribute__((target("no-fancy-math-387")))
+int foo(void) { return 1; }
+__attribute__((target("no-push-args")))
+int foo(void) { return 1; }
+__attribute__((target("no-red-zone")))
+int foo(void) { return 1; }
+__attribute__((target("omit-leaf-frame-pointer")))
+int foo(void) { return 1; }
+__attribute__((target("pc32")))
+int foo(void) { return 1; }
+__attribute__((target("pc64")))
+int foo(void) { return 1; }
+__attribute__((target("pc80")))
+int foo(void) { return 1; }
+__attribute__((target("push-args")))
+int foo(void) { return 1; }
+__attribute__((target("red-zone")))
+int foo(void) { return 1; }
+__attribute__((target("rtd")))
+int foo(void) { return 1; }
+__attribute__((target("soft-float")))
+int foo(void) { return 1; }
+__attribute__((target("sseregparm")))
+int foo(void) { return 1; }
+__attribute__((target("stackrealign")))
+int foo(void) { return 1; }
+__attribute__((target("stack-arg-probe")))
+int foo(void) { return 1; }
+__attribute__((target("tls-direct-seg-refs")))
+int foo(void) { return 1; }
+__attribute__((target("vect8-ret-in-mem")))
+int foo(void) { return 1; }
+__attribute__((target("recip")))
+int foo(void) { return 1; }
+__attribute__((target("cld")))
+int foo(void) { return 1; }
+__attribute__((target("vzeroupper")))
+int foo(void) { return 1; }
+__attribute__((target("dispatch-scheduler")))
+int foo(void) { return 1; }
+__attribute__((target("prefer-avx128")))
+int foo(void) { return 1; }
+__attribute__((target("32")))
+int foo(void) { return 1; }
+__attribute__((target("64")))
+int foo(void) { return 1; }
+__attribute__((target("x32")))
+int foo(void) { return 1; }
+__attribute__((target("mmx")))
+int foo(void) { return 1; }
+__attribute__((target("3dnow")))
+int foo(void) { return 1; }
+__attribute__((target("3dnowa")))
+int foo(void) { return 1; }
+__attribute__((target("sse")))
+int foo(void) { return 1; }
+__attribute__((target("sse2")))
+int foo(void) { return 1; }
+__attribute__((target("sse3")))
+int foo(void) { return 1; }
+__attribute__((target("ssse3")))
+int foo(void) { return 1; }
+__attribute__((target("sse4.1")))
+int foo(void) { return 1; }
+__attribute__((target("sse4.2")))
+int foo(void) { return 1; }
+__attribute__((target("sse4")))
+int foo(void) { return 1; }
+__attribute__((target("no-sse4")))
+int foo(void) { return 1; }
+__attribute__((target("sse5")))
+int foo(void) { return 1; }
+__attribute__((target("avx")))
+int foo(void) { return 1; }
+__attribute__((target("avx2")))
+int foo(void) { return 1; }
+__attribute__((target("fma")))
+int foo(void) { return 1; }
+__attribute__((target("sse4a")))
+int foo(void) { return 1; }
+__attribute__((target("fma4")))
+int foo(void) { return 1; }
+__attribute__((target("xop")))
+int foo(void) { return 1; }
+__attribute__((target("lwp")))
+int foo(void) { return 1; }
+__attribute__((target("abm")))
+int foo(void) { return 1; }
+__attribute__((target("popcnt")))
+int foo(void) { return 1; }
+__attribute__((target("bmi")))
+int foo(void) { return 1; }
+__attribute__((target("bmi2")))
+int foo(void) { return 1; }
+__attribute__((target("lzcnt")))
+int foo(void) { return 1; }
+__attribute__((target("hle")))
+int foo(void) { return 1; }
+__attribute__((target("rdseed")))
+int foo(void) { return 1; }
+__attribute__((target("prfchw")))
+int foo(void) { return 1; }
+__attribute__((target("adx")))
+int foo(void) { return 1; }
+__attribute__((target("fxsr")))
+int foo(void) { return 1; }
+__attribute__((target("xsave")))
+int foo(void) { return 1; }
+__attribute__((target("xsaveopt")))
+int foo(void) { return 1; }
+__attribute__((target("tbm")))
+int foo(void) { return 1; }
+__attribute__((target("cx16")))
+int foo(void) { return 1; }
+__attribute__((target("sahf")))
+int foo(void) { return 1; }
+__attribute__((target("movbe")))
+int foo(void) { return 1; }
+__attribute__((target("crc32")))
+int foo(void) { return 1; }
+__attribute__((target("aes")))
+int foo(void) { return 1; }
+__attribute__((target("pclmul")))
+int foo(void) { return 1; }
+__attribute__((target("sse2avx")))
+int foo(void) { return 1; }
+__attribute__((target("fsgsbase")))
+int foo(void) { return 1; }
+__attribute__((target("rdrnd")))
+int foo(void) { return 1; }
+__attribute__((target("f16c")))
+int foo(void) { return 1; }
+__attribute__((target("fentry")))
+int foo(void) { return 1; }
+__attribute__((target("8bit-idiv")))
+int foo(void) { return 1; }
+__attribute__((target("avx256-split-unaligned-load")))
+int foo(void) { return 1; }
+__attribute__((target("avx256-split-unaligned-store")))
+int foo(void) { return 1; }
+__attribute__((target("rtm")))
+int foo(void) { return 1; }
+//---------------
+
+#include <stdio.h>
+    int main (void)
+    {
+      int result;
+      result = foo();
+      printf("Result is %d\n", result);
+      return result;
+    }
+
+/* { dg-prune-output "attribute.* is unknown" } */
+/* { dg-prune-output "redefinition of int foo" } */
+/* { dg-prune-output "previous declaration of int foo" } */
+/* { dg-prune-output "int foo.* previously defined here" } */
+/* { dg-prune-output "No dispatcher found for" } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58006.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58006.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58006.C	2013-08-18 10:24:12.566692000 -0500
@@ -0,0 +1,22 @@
+// PR tree-optimization/58006
+// { dg-do compile }
+// { dg-require-effective-target pthread }
+// { dg-options "-Ofast -ftree-parallelize-loops=2" }
+
+extern "C" float sqrtf (float);
+
+struct S
+{
+  float i, j;
+  float foo () const { return sqrtf (i * i + j * j); }
+  S () : i (1), j (1) {}
+};
+
+void
+bar (int a, int b)
+{
+  int i;
+  float f;
+  for (i = a; i < b; i++)
+    f = S ().foo ();
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58165.C gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/opt/pr58165.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/opt/pr58165.C	2013-08-16 04:04:52.452768000 -0500
@@ -0,0 +1,14 @@
+// PR tree-optimization/58165
+// { dg-do compile }
+// { dg-options "-O2" }
+
+extern "C" float sqrtf (float);
+
+struct A { A (); ~A (); };
+
+void
+foo (double d)
+{
+  A a;
+  sqrtf (d);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/ref-qual2.C gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/parse/ref-qual2.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/parse/ref-qual2.C	2013-07-09 12:52:17.034866000 -0500
@@ -0,0 +1,6 @@
+// PR c++/57532
+
+int main()
+{
+    return (int() & int());
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/pr57878.C gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/pr57878.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/pr57878.C	2013-08-20 06:56:29.733502000 -0500
@@ -0,0 +1,226 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-m32 -O2 -fno-omit-frame-pointer -fPIC -std=gnu++11" } */
+
+typedef int int32;
+typedef long long int64;
+typedef unsigned int uint32;
+typedef unsigned long long uint64;
+namespace std {
+  typedef __SIZE_TYPE__ size_t;
+  template<class _CharT>
+  struct char_traits;
+  template<typename _Tp>
+  inline _Tp* __addressof(_Tp& __r) noexcept {
+    return reinterpret_cast<_Tp*> (&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
+  }
+  template<typename _Tp>
+  struct remove_reference {
+    typedef _Tp type;
+  };
+  template<typename _Tp>
+  constexpr _Tp&& forward(typename std::remove_reference<_Tp>::type& __t) noexcept {
+    return static_cast<_Tp&&>(__t);
+  }
+}
+typedef __SIZE_TYPE__ size_t;
+extern "C++" {
+  inline void* operator new(std::size_t, void* __p) noexcept {
+    return __p;
+  }
+}
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
+  template<typename _Tp>
+    class new_allocator {
+  public:
+    typedef size_t size_type;
+    typedef _Tp* pointer;
+  };
+}
+namespace std {
+  template<typename _Tp>
+  using __allocator_base = __gnu_cxx::new_allocator<_Tp>;
+  template<typename _Tp>
+  class allocator
+    : public __allocator_base<_Tp> {
+  public:
+    typedef size_t size_type;
+    template<typename _Tp1>
+    struct rebind {
+      typedef allocator<_Tp1> other;
+    };
+  };
+}
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    class __sso_string_base;
+  template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Alloc = std::allocator<_CharT>, template <typename, typename, typename> class _Base = __sso_string_base>
+    class __versa_string;
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    struct __vstring_utility {
+    typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
+    template<typename _Alloc1>
+    struct _Alloc_hider
+      : public _Alloc1 {
+      _Alloc_hider(const _Alloc1& __a, _CharT* __ptr)
+  : _Alloc1(__a), _M_p(__ptr) {
+      }
+      _CharT* _M_p;
+    };
+  };
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    class __sso_string_base
+      : protected __vstring_utility<_CharT, _Traits, _Alloc> {
+    typedef __vstring_utility<_CharT, _Traits, _Alloc> _Util_Base;
+    typedef typename _Util_Base::_CharT_alloc_type _CharT_alloc_type;
+    typedef typename _CharT_alloc_type::size_type size_type;
+  private:
+    typename _Util_Base::template _Alloc_hider<_CharT_alloc_type>
+    _M_dataplus;
+    size_type _M_string_length;
+    enum {
+      _S_local_capacity = 15 };
+    union {
+      _CharT _M_local_data[_S_local_capacity + 1];
+    };
+    template<typename _InIterator>
+    void _M_construct(_InIterator __beg, _InIterator __end);
+  public:
+    size_type _M_max_size() const;
+    _CharT* _M_data() const {
+      return _M_dataplus._M_p;
+    }
+    size_type _M_length() const {
+      return _M_string_length;
+    }
+    __sso_string_base(const __sso_string_base& __rcs);
+    const _CharT_alloc_type& _M_get_allocator() const {
+    }
+  };
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    __sso_string_base<_CharT, _Traits, _Alloc>:: __sso_string_base(const __sso_string_base& __rcs)
+    : _M_dataplus(__rcs._M_get_allocator(), _M_local_data) {
+    _M_construct(__rcs._M_data(), __rcs._M_data() + __rcs._M_length());
+  }
+  template<typename _CharT, typename _Traits, typename _Alloc, template <typename, typename, typename> class _Base>
+    class __versa_string
+      : private _Base<_CharT, _Traits, _Alloc> {
+  };
+}
+template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Alloc = std::allocator<_CharT> >
+class basic_string
+  : public __gnu_cxx::__versa_string<_CharT, _Traits, _Alloc> {
+};
+typedef basic_string<char> string;
+namespace std __attribute__ ((__visibility__ ("default"))) {
+  template<typename _Alloc, typename _Tp>
+    class __alloctr_rebind_helper {
+  public:
+    static const bool __value = true;
+  };
+  template<typename _Alloc, typename _Tp, bool = __alloctr_rebind_helper<_Alloc, _Tp>::__value>
+    struct __alloctr_rebind;
+  template<typename _Alloc, typename _Tp> struct __alloctr_rebind<_Alloc, _Tp, true>
+  {
+    typedef typename _Alloc::template rebind<_Tp>::other __type;
+  };
+  template<typename _Alloc>
+    struct allocator_traits {
+  private:
+    template<typename _Tp>
+    static typename _Tp::pointer _S_pointer_helper(_Tp*);
+    typedef decltype(_S_pointer_helper((_Alloc*)0)) __pointer;
+  public:
+    typedef __pointer pointer;
+    template<typename _Tp>
+    using rebind_alloc = typename __alloctr_rebind<_Alloc, _Tp>::__type;
+  };
+}
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
+  template<typename _Alloc> struct __alloc_traits
+    : std::allocator_traits<_Alloc>
+  {
+    typedef std::allocator_traits<_Alloc> _Base_type;
+    template<typename _Tp>
+    struct rebind {
+      typedef typename _Base_type::template rebind_alloc<_Tp>
+      other;
+    };
+  };
+}
+namespace std __attribute__ ((__visibility__ ("default"))) {
+  template<typename _T1, typename... _Args>
+    inline void _Construct(_T1* __p, _Args&&... __args) {
+    ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...);
+  }
+  template<typename _Tp, typename _Alloc>
+    struct _Vector_base {
+    typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type;
+    typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer pointer;
+    struct _Vector_impl
+      : public _Tp_alloc_type {
+      pointer _M_start;
+      pointer _M_finish;
+    };
+  public:
+    _Vector_impl _M_impl;
+  };
+  template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
+    class vector
+      : protected _Vector_base<_Tp, _Alloc> {
+    typedef _Vector_base<_Tp, _Alloc> _Base;
+  public:
+    typedef _Tp value_type;
+    typedef typename _Base::pointer pointer;
+    typedef size_t size_type;
+    size_type size() const;
+    void push_back(const value_type& __x) {
+      _M_emplace_back_aux(__x);
+    }
+    template<typename... _Args>
+    void _M_emplace_back_aux(_Args&&... __args);
+    size_type _M_check_len();
+  };
+  template<typename _Tp, typename _Alloc> template<typename... _Args>
+    void vector<_Tp, _Alloc>:: _M_emplace_back_aux(_Args&&... __args) {
+    const size_type __len = _M_check_len();
+    pointer __new_start(static_cast<pointer>(::operator new(__len * sizeof(_Tp))));
+    pointer __new_temp(__new_start + size());
+    ::new((void *)__new_temp) _Tp(std::forward<_Args>(__args)...);
+    pointer __cur = __new_start;
+    pointer __first = this->_M_impl._M_start;
+    pointer __last = this->_M_impl._M_finish;
+    for (;
+	 __first != __last;
+	 ++__first, ++__cur) std::_Construct(std::__addressof(*__cur), *__first);
+  }
+}
+using std::vector;
+class DL {
+public:
+  struct ChunkId {
+    int64 disk_id;
+    uint64 handle;
+    uint64 version;
+    string capability;
+    ChunkId();
+  };
+  struct ChunkInfo {
+    ChunkId id;
+    uint64 mtime;
+    uint32 length;
+    int32 space_used;
+  };
+};
+class FDB {
+  void CollectChunk(const DL::ChunkInfo& chunk, const int& location);
+private:
+  struct ChunkData {
+    int location;
+    DL::ChunkInfo chunk_info;
+  };
+  vector<ChunkData> chunk_data_;
+};
+void FDB::CollectChunk(const DL::ChunkInfo& chunk, const int& location) {
+  ChunkData chunk_data;
+  chunk_data_.push_back( chunk_data);
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/abstract1.C gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/abstract1.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/abstract1.C	2013-07-30 08:30:12.307006000 -0500
@@ -0,0 +1,12 @@
+// PR c++/58022
+
+template <class T> struct A { };
+template <class T> A<T> & operator<< (A<T>&, T);
+template <class T> class foo;
+template <class T> A<char> & operator<<(A<char>& o, const foo<T>& l);
+template <class T> class foo  {
+    friend A<char>& operator<< <T> (A<char>& o, const foo<T>& l);
+};
+class bar;
+foo<bar> fb;
+class bar { virtual void baz()=0; };
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/access27.C gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/access27.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/access27.C	2013-07-08 22:26:58.213071000 -0500
@@ -0,0 +1,17 @@
+// PR c++/57550
+
+template <bool (double)> bool Wrapper(double);
+template <class T> void MakeHandler(bool (T));
+
+class Handler
+{
+public:
+  template <typename T> static void SetPrimitiveHandlers()
+  {
+    MakeHandler(Wrapper<Append<T> >);
+  }
+private :
+  template <typename T> static bool Append(T);
+};
+
+template void Handler::SetPrimitiveHandlers<double>();
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/arg9.C gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/arg9.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/arg9.C	2013-07-03 15:22:16.527771000 -0500
@@ -0,0 +1,8 @@
+// PR c++/57771
+// { dg-do compile }
+
+template <int N>
+struct S {};
+
+S <static_cast <int> (4>>2)> s1;
+S <reinterpret_cast <int> (4>>2)> s2;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/delete2.C gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/delete2.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/delete2.C	2013-08-20 07:59:37.559809000 -0500
@@ -0,0 +1,26 @@
+// PR c++/58119
+
+template <class T>
+struct A
+{
+  operator T*();
+  template <class U>
+  operator A<U>();
+};
+
+template <class T>
+struct B
+{
+  operator T*();
+  template <class U>
+  operator A<U>*();
+};
+
+int main()
+{
+  A<int> a;
+  delete a;
+
+  B<int> b;
+  delete b;			// { dg-error "template|delete" }
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/using23.C gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C
--- gcc-4.8.1.orig/gcc/testsuite/g++.dg/template/using23.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/g++.dg/template/using23.C	2013-07-09 12:51:35.112170000 -0500
@@ -0,0 +1,15 @@
+// PR c++/57831
+
+struct A {
+  void f();
+};
+template <class T> struct B : T {
+  typedef T base;
+  using base::f;         // If I write "using B<T>::f" it's ok
+  void g( ) {
+    B<T>::f();           // This is OK as expected
+    (this->*&T::f)();    // This is also OK
+    (this->*&B<T>::f)(); // This causes error
+  }
+};
+template struct B< A >;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_6.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_6.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_6.f90	2013-06-04 02:11:12.753416000 -0500
@@ -0,0 +1,36 @@
+! { dg-do compile }
+!
+! PR fortran/57364
+!
+! Contributed by Damian Rouson
+!
+module ref_counter_implementation
+  type ref_counter
+  contains
+    procedure :: assign
+    generic :: assignment(=) => assign
+  end type
+contains
+  subroutine assign (lhs, rhs)
+    class (ref_counter), intent(inout) :: lhs
+    class (ref_counter), intent(in) :: rhs
+  end subroutine
+end module
+module foo_parent_implementation
+  use ref_counter_implementation ,only: ref_counter
+  type :: foo_parent
+    type(ref_counter) :: counter
+  end type
+contains
+  type(foo_parent) function new_foo_parent()
+  end function
+end module
+module foo_implementation
+  use foo_parent_implementation ,only: foo_parent,new_foo_parent
+  type, extends(foo_parent) :: foo
+  end type
+contains
+  type(foo) function new_foo()
+    new_foo%foo_parent = new_foo_parent()
+ end function
+end module
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_7.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/defined_assignment_7.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/defined_assignment_7.f90	2013-06-11 11:18:13.173979000 -0500
@@ -0,0 +1,29 @@
+! { dg-compile }
+!
+! PR fortran/57508
+!
+module ForTrilinos_ref_counter
+  type ref_counter
+  contains
+      procedure :: assign
+      generic   :: assignment(=) => assign
+  end type
+contains
+  subroutine assign (lhs, rhs)
+    class (ref_counter), intent(inout) :: lhs
+    class (ref_counter), intent(in) :: rhs
+  end subroutine
+end module
+module FEpetra_BlockMap
+  use ForTrilinos_ref_counter, only : ref_counter
+  type :: Epetra_BlockMap 
+    type(ref_counter) :: counter
+  end type
+contains
+  function from_struct() result(new_Epetra_BlockMap)
+    type(Epetra_BlockMap) :: new_Epetra_BlockMap
+  end function
+  type(Epetra_BlockMap) function create_arbitrary()
+    create_arbitrary = from_struct()
+  end function
+end module
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/dot_product_2.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/dot_product_2.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/dot_product_2.f90	2013-07-08 14:10:32.194953000 -0500
@@ -0,0 +1,38 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! PR fortran/57785
+!
+! Contributed by Kontantinos Anagnostopoulos
+!
+! The implicit complex conjugate was missing for DOT_PRODUCT
+
+
+! For the following, the compile-time simplification fails for SUM;
+! see PR fortran/56342. Hence, a manually expanded SUM is used.
+
+!if (DOT_PRODUCT ((/ (1.0, 2.0), (2.0, 3.0) /), (/ (1.0, 1.0), (1.0, 4.0) /))   &
+!   /= SUM (CONJG ((/ (1.0, 2.0), (2.0, 3.0) /))*(/ (1.0, 1.0), (1.0, 4.0) /))) &
+!   call abort ()
+!
+!if (ANY (MATMUL ((/ (1.0, 2.0), (2.0, 3.0) /),                                 &
+!                 RESHAPE ((/ (1.0, 1.0), (1.0, 4.0) /),(/2, 1/))) /=           &
+!         SUM ((/ (1.0, 2.0), (2.0, 3.0) /)*(/ (1.0, 1.0), (1.0, 4.0) /))))     &
+!    call abort ()      
+
+
+if (DOT_PRODUCT ((/ (1.0, 2.0), (2.0, 3.0) /), (/ (1.0, 1.0), (1.0, 4.0) /))  &
+    /= CONJG (cmplx(1.0, 2.0)) * cmplx(1.0, 1.0)                              &
+     + CONJG (cmplx(2.0, 3.0)) * cmplx(1.0, 4.0)) &
+  call abort ()
+
+if (ANY (MATMUL ((/ (1.0, 2.0), (2.0, 3.0) /),                                &
+                 RESHAPE ((/ (1.0, 1.0), (1.0, 4.0) /),(/2, 1/)))             &
+         /= cmplx(1.0, 2.0) * cmplx(1.0, 1.0)                                 &
+          + cmplx(2.0, 3.0) * cmplx(1.0, 4.0)))                               &
+  call abort ()      
+end
+
+
+! { dg-final { scan-tree-dump-not "abort" "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/inline_sum_5.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/inline_sum_5.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/inline_sum_5.f90	2013-08-24 07:46:17.832897000 -0500
@@ -0,0 +1,33 @@
+! { dg-do run }
+!
+! PR fortran/57798
+! The call to sum used to be inlined into a loop with an uninitialized bound
+!
+! Original testcase by Stephan Kramer <stephan.kramer@imperial.ac.uk>
+
+program test
+  implicit none
+
+  call sub(2, 11)
+
+  contains
+
+    function func(m, n)
+      integer, intent(in):: m,n
+      real, dimension(m, n):: func
+
+      func = 1.0
+
+    end function func
+
+    subroutine sub(m, n)
+      integer, intent(in):: m, n
+      real, dimension(m,n):: y
+
+      y = 1.0
+      if (any(sum(y*func(m,n), dim=1) /= m)) call abort
+
+    end subroutine sub
+
+end program test
+
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/select_type_34.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/select_type_34.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/select_type_34.f90	2013-08-24 04:12:21.843607000 -0500
@@ -0,0 +1,10 @@
+! { dg-do compile }
+!
+! PR 58185: [4.8/4.9 Regression] [OOP] ICE when selector in SELECT TYPE is non-polymorphic
+!
+! Contributed by John <jwmwalrus@gmail.com>
+
+  integer :: array
+  select type (a => array)   ! { dg-error "Selector shall be polymorphic" }
+  end select
+end
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/transfer_intrinsic_6.f90	2013-08-11 06:31:41.480740000 -0500
@@ -0,0 +1,20 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! PR 58058: [4.7/4.8/4.9 Regression] Memory leak with transfer function
+!
+! Contributed by Thomas Jourdan <thomas.jourdan@orange.fr>
+
+  implicit none
+
+  integer, dimension(3) :: t1
+  character(len=64) :: str
+  
+  t1 = (/1,2,3/)
+
+  str = transfer(t1,str)
+
+end
+
+! { dg-final { scan-tree-dump-times "__builtin_free" 1 "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/typebound_override_4.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/typebound_override_4.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/typebound_override_4.f90	2013-05-31 13:10:03.669091000 -0500
@@ -0,0 +1,34 @@
+! { dg-do compile }
+!
+! PR 57217: [4.7/4.8/4.9 Regression][OOP] Accepts invalid TBP overriding - lacking arguments check
+!
+! Contributed by Salvatore Filippone <filippone.salvatore@gmail.com>
+
+module base_mod
+  implicit none
+  type base_type
+  contains
+    procedure, pass(map)  :: clone    => base_clone
+  end type
+contains
+  subroutine  base_clone(map,mapout)
+    class(base_type) :: map
+    class(base_type) :: mapout
+  end subroutine
+end module
+
+module r_mod
+  use base_mod
+  implicit none
+  type, extends(base_type) :: r_type
+  contains
+    procedure, pass(map)  :: clone    => r_clone   ! { dg-error "Type/rank mismatch in argument" }
+  end type
+contains
+  subroutine  r_clone(map,mapout)
+    class(r_type) :: map
+    class(r_type) :: mapout
+  end subroutine
+end module
+
+! { dg-final { cleanup-modules "base_mod r_mod" } }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/use_29.f90 gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90
--- gcc-4.8.1.orig/gcc/testsuite/gfortran.dg/use_29.f90	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gfortran.dg/use_29.f90	2013-07-28 09:13:17.566941000 -0500
@@ -0,0 +1,15 @@
+! { dg-do compile }
+!
+! PR fortran/57435
+!
+! Contributed by Lorenz HÃ¼depohl
+!
+module precision
+end module precision
+  contains
+  use precision     ! { dg-error "Unexpected USE statement in CONTAINS section" }
+module stressten_rt ! { dg-error "Unexpected MODULE statement in CONTAINS section" }
+  use precision     ! { dg-error "Unexpected USE statement in CONTAINS section" }
+  implicit none     ! { dg-error "Unexpected IMPLICIT NONE statement in CONTAINS section" }
+
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16.adb gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16.adb	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16.adb	2013-08-13 10:59:03.399464000 -0500
@@ -0,0 +1,24 @@
+-- { dg-do run }
+
+with Loop_Optimization16_Pkg; use Loop_Optimization16_Pkg;
+
+procedure Loop_Optimization16 is
+
+   Counter : Natural := 0;
+
+   C : constant Natural := F;
+
+   subtype Index_T is Index_Base range 1 .. Index_Base (C);
+
+begin
+
+   for I in Index_T'First .. Index_T'Last loop
+      Counter := Counter + 1;
+      exit when Counter > 200;
+   end loop;
+
+   if Counter > 200 then
+      raise Program_Error;
+   end if;
+
+end Loop_Optimization16;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb	2013-08-13 10:59:03.399464000 -0500
@@ -0,0 +1,8 @@
+package body Loop_Optimization16_Pkg is
+
+  function F return Natural is
+  begin
+    return Natural (Index_Base'Last);
+  end;
+
+end Loop_Optimization16_Pkg;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads
--- gcc-4.8.1.orig/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/gnat.dg/loop_optimization16_pkg.ads	2013-08-13 10:59:03.399464000 -0500
@@ -0,0 +1,7 @@
+package Loop_Optimization16_Pkg is
+
+  type Index_Base is range 0 .. 127;
+
+  function F return Natural;
+
+end Loop_Optimization16_Pkg;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/64bit.go gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/64bit.go	2012-09-29 13:16:01.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/go.test/test/64bit.go	2013-06-26 17:42:47.881515000 -0500
@@ -594,6 +594,19 @@
 	"}\n" +
 	"\n"
 
+const binaryConstR0 = "func test%vBinaryR%v(a, add, sub, mul, div, mod, and, or, xor, andnot %v, dodiv bool) {\n" +
+	"	const b %v = %v;\n" +
+	"	const typ = `%s`;\n" +
+	"	if n, op, want := a + b, `+`, add; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a - b, `-`, sub; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a * b, `*`, mul; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a & b, `&`, and; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a | b, `|`, or; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a ^ b, `^`, xor; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"	if n, op, want := a &^ b, `&^`, andnot; n != want { ok=false; println(typ, `var`, a, op, `const`, b, `=`, n, `should be`, want); }\n" +
+	"}\n" +
+	"\n"
+
 const shiftConstL = "func test%vShiftL%v(b uint64, left, right %v) {\n" +
 	"	const a %v = %v;\n" +
 	"	const typ = `%s`;\n" +
@@ -621,12 +634,20 @@
 func constTests() {
 	for i, a := range int64Values {
 		fmt.Fprintf(bout, binaryConstL, "Int64", i, "int64", "int64", a, "int64")
-		fmt.Fprintf(bout, binaryConstR, "Int64", i, "int64", "int64", a, "int64")
+		if a.hi == 0 && a.lo == 0 {
+			fmt.Fprintf(bout, binaryConstR0, "Int64", i, "int64", "int64", a, "int64")
+		} else {
+			fmt.Fprintf(bout, binaryConstR, "Int64", i, "int64", "int64", a, "int64")
+		}
 		fmt.Fprintf(bout, shiftConstL, "Int64", i, "int64", "int64", a, "int64")
 	}
 	for i, a := range uint64Values {
 		fmt.Fprintf(bout, binaryConstL, "Uint64", i, "uint64", "uint64", a, "uint64")
-		fmt.Fprintf(bout, binaryConstR, "Uint64", i, "uint64", "uint64", a, "uint64")
+		if a.hi == 0 && a.lo == 0 {
+			fmt.Fprintf(bout, binaryConstR0, "Uint64", i, "uint64", "uint64", a, "uint64")
+		} else {
+			fmt.Fprintf(bout, binaryConstR, "Uint64", i, "uint64", "uint64", a, "uint64")
+		}
 		fmt.Fprintf(bout, shiftConstL, "Uint64", i, "uint64", "uint64", a, "uint64")
 	}
 	for i, a := range shiftValues {
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug086.go gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug086.go	2012-09-29 13:16:01.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug086.go	2013-08-07 14:00:55.550656000 -0500
@@ -6,12 +6,12 @@
 
 package main
 
-func f() int {	// ERROR "return|control"
+func f() int {
 	if false {
 		return 0;
 	}
 	// we should not be able to return successfully w/o a return statement
-}
+} // ERROR "return"
 
 func main() {
 	print(f(), "\n");
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug410.go gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/fixedbugs/bug410.go	2012-09-29 13:16:01.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/go.test/test/fixedbugs/bug410.go	2013-06-26 17:42:47.881515000 -0500
@@ -18,7 +18,7 @@
     for s := range arr {
         x := make([]byte, 10)
         for i := 0; i < 100 ; i++ {
-            x[i] ^= k[i-arr[s].num%0]
+            x[i] ^= k[i-arr[s].num%3]
         }
     }
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/go.test/test/shift1.go gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go
--- gcc-4.8.1.orig/gcc/testsuite/go.test/test/shift1.go	2012-09-29 13:16:01.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/go.test/test/shift1.go	2013-06-25 11:53:38.994410000 -0500
@@ -23,7 +23,7 @@
 
 // non-constant shift expressions
 var (
-	e1       = g(2.0 << s) // ERROR "invalid" "as type interface"
+	e1       = g(2.0 << s) // ERROR "invalid|shift of non-integer operand" "as type interface"
 	f1       = h(2 << s)   // ERROR "invalid" "as type float64"
 	g1 int64 = 1.1 << s    // ERROR "truncated"
 )
@@ -36,3 +36,206 @@
 	b2     = 1.0 << c    // ERROR "overflow"
 	d2     = f(1.0 << c) // ERROR "overflow"
 )
+
+var (
+	// issues 4882, 4936.
+	a3 = 1.0<<s + 0 // ERROR "invalid|shift of non-integer operand"
+	// issue 4937
+	b3 = 1<<s + 1 + 1.0 // ERROR "invalid|shift of non-integer operand"
+	// issue 5014
+	c3     = complex(1<<s, 0) // ERROR "invalid|shift of type float64"
+	d3 int = complex(1<<s, 3) // ERROR "non-integer|cannot use.*as type int" "shift of type float64"
+	e3     = real(1 << s)     // ERROR "invalid"
+	f3     = imag(1 << s)     // ERROR "invalid"
+)
+
+// from the spec
+func _() {
+	var (
+		s uint  = 33
+		i       = 1 << s         // 1 has type int
+		j int32 = 1 << s         // 1 has type int32; j == 0
+		k       = uint64(1 << s) // 1 has type uint64; k == 1<<33
+		m int   = 1.0 << s       // 1.0 has type int
+		n       = 1.0<<s != i    // 1.0 has type int; n == false if ints are 32bits in size
+		o       = 1<<s == 2<<s   // 1 and 2 have type int; o == true if ints are 32bits in size
+		// next test only fails on 32bit systems
+		// p = 1<<s == 1<<33  // illegal if ints are 32bits in size: 1 has type int, but 1<<33 overflows int
+		u          = 1.0 << s    // ERROR "non-integer|float64"
+		u1         = 1.0<<s != 0 // ERROR "non-integer|float64"
+		u2         = 1<<s != 1.0 // ERROR "non-integer|float64"
+		v  float32 = 1 << s      // ERROR "non-integer|float32"
+		w  int64   = 1.0 << 33   // 1.0<<33 is a constant shift expression
+		_, _, _, _, _, _, _, _, _, _ = j, k, m, n, o, u, u1, u2, v, w
+	)
+}
+
+// shifts in comparisons w/ untyped operands
+var (
+	_ = 1<<s == 1
+	_ = 1<<s == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1. // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s+1 == 1
+	_ = 1<<s+1 == 1.   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1. == 1   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1. == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1 == 1   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1 == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1. == 1  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1. == 1. // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s == 1<<s
+	_ = 1<<s == 1.<<s  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1<<s  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s == 1.<<s // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s+1<<s == 1
+	_ = 1<<s+1<<s == 1.   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1.  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1.<<s == 1  // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1.<<s == 1. // ERROR "invalid|non-integer|shift of type float64"
+
+	_ = 1<<s+1<<s == 1<<s+1<<s
+	_ = 1<<s+1<<s == 1<<s+1.<<s    // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1<<s == 1.<<s+1<<s    // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1<<s == 1.<<s+1.<<s   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1<<s+1<<s    // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1<<s+1.<<s   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1.<<s+1<<s   // ERROR "invalid|shift of type float64"
+	_ = 1<<s+1.<<s == 1.<<s+1.<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1<<s == 1<<s+1<<s    // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1<<s+1.<<s   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1.<<s+1<<s   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1<<s == 1.<<s+1.<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1.<<s == 1<<s+1<<s   // ERROR "invalid|shift of type float64"
+	_ = 1.<<s+1.<<s == 1<<s+1.<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1.<<s == 1.<<s+1<<s  // ERROR "invalid|non-integer|shift of type float64"
+	_ = 1.<<s+1.<<s == 1.<<s+1.<<s // ERROR "invalid|non-integer|shift of type float64"
+)
+
+// shifts in comparisons w/ typed operands
+var (
+	x int
+	_ = 1<<s == x
+	_ = 1.<<s == x
+	_ = 1.1<<s == x // ERROR "truncated"
+
+	_ = 1<<s+x == 1
+	_ = 1<<s+x == 1.
+	_ = 1<<s+x == 1.1 // ERROR "truncated"
+	_ = 1.<<s+x == 1
+	_ = 1.<<s+x == 1.
+	_ = 1.<<s+x == 1.1  // ERROR "truncated"
+	_ = 1.1<<s+x == 1   // ERROR "truncated"
+	_ = 1.1<<s+x == 1.  // ERROR "truncated"
+	_ = 1.1<<s+x == 1.1 // ERROR "truncated"
+
+	_ = 1<<s == x<<s
+	_ = 1.<<s == x<<s
+	_ = 1.1<<s == x<<s // ERROR "truncated"
+)
+
+// shifts as operands in non-arithmetic operations and as arguments
+func _() {
+	var s uint
+	var a []int
+	_ = a[1<<s]
+	_ = a[1.]
+	// For now, the spec disallows these. We may revisit past Go 1.1.
+	_ = a[1.<<s]  // ERROR "integer|shift of type float64"
+	_ = a[1.1<<s] // ERROR "integer|shift of type float64"
+
+	_ = make([]int, 1)
+	_ = make([]int, 1.)
+	_ = make([]int, 1.<<s)
+	_ = make([]int, 1.1<<s) // ERROR "non-integer|truncated"
+
+	_ = float32(1)
+	_ = float32(1 << s) // ERROR "non-integer|shift of type float32"
+	_ = float32(1.)
+	_ = float32(1. << s)  // ERROR "non-integer|shift of type float32"
+	_ = float32(1.1 << s) // ERROR "non-integer|shift of type float32"
+
+	_ = append(a, 1<<s)
+	_ = append(a, 1.<<s)
+	_ = append(a, 1.1<<s) // ERROR "truncated"
+
+	var b []float32
+	_ = append(b, 1<<s)   // ERROR "non-integer|type float32"
+	_ = append(b, 1.<<s)  // ERROR "non-integer|type float32"
+	_ = append(b, 1.1<<s) // ERROR "non-integer|type float32"
+
+	_ = complex(1.<<s, 0)  // ERROR "non-integer|shift of type float64"
+	_ = complex(1.1<<s, 0) // ERROR "non-integer|shift of type float64"
+	_ = complex(0, 1.<<s)  // ERROR "non-integer|shift of type float64"
+	_ = complex(0, 1.1<<s) // ERROR "non-integer|shift of type float64"
+
+	var a4 float64
+	var b4 int
+	_ = complex(1<<s, a4) // ERROR "non-integer|shift of type float64"
+	_ = complex(1<<s, b4) // ERROR "invalid|non-integer|"
+
+	var m1 map[int]string
+	delete(m1, 1<<s)
+	delete(m1, 1.<<s)
+	delete(m1, 1.1<<s) // ERROR "truncated|shift of type float64"
+
+	var m2 map[float32]string
+	delete(m2, 1<<s)   // ERROR "invalid|cannot use 1 << s as type float32"
+	delete(m2, 1.<<s)  // ERROR "invalid|cannot use 1 << s as type float32"
+	delete(m2, 1.1<<s) // ERROR "invalid|cannot use 1.1 << s as type float32"
+}
+
+// shifts of shifts
+func _() {
+	var s uint
+	_ = 1 << (1 << s)
+	_ = 1 << (1. << s)
+	_ = 1 << (1.1 << s)   // ERROR "non-integer|truncated"
+	_ = 1. << (1 << s)    // ERROR "non-integer|shift of type float64"
+	_ = 1. << (1. << s)   // ERROR "non-integer|shift of type float64"
+	_ = 1.1 << (1.1 << s) // ERROR "invalid|non-integer|truncated"
+
+	_ = (1 << s) << (1 << s)
+	_ = (1 << s) << (1. << s)
+	_ = (1 << s) << (1.1 << s)   // ERROR "truncated"
+	_ = (1. << s) << (1 << s)    // ERROR "non-integer|shift of type float64"
+	_ = (1. << s) << (1. << s)   // ERROR "non-integer|shift of type float64"
+	_ = (1.1 << s) << (1.1 << s) // ERROR "invalid|non-integer|truncated"
+
+	var x int
+	x = 1 << (1 << s)
+	x = 1 << (1. << s)
+	x = 1 << (1.1 << s) // ERROR "truncated"
+	x = 1. << (1 << s)
+	x = 1. << (1. << s)
+	x = 1.1 << (1.1 << s) // ERROR "truncated"
+
+	x = (1 << s) << (1 << s)
+	x = (1 << s) << (1. << s)
+	x = (1 << s) << (1.1 << s) // ERROR "truncated"
+	x = (1. << s) << (1 << s)
+	x = (1. << s) << (1. << s)
+	x = (1.1 << s) << (1.1 << s) // ERROR "truncated"
+
+	var y float32
+	y = 1 << (1 << s)     // ERROR "non-integer|type float32"
+	y = 1 << (1. << s)    // ERROR "non-integer|type float32"
+	y = 1 << (1.1 << s)   // ERROR "invalid|truncated|float32"
+	y = 1. << (1 << s)    // ERROR "non-integer|type float32"
+	y = 1. << (1. << s)   // ERROR "non-integer|type float32"
+	y = 1.1 << (1.1 << s) // ERROR "invalid|truncated|float32"
+
+	var z complex128
+	z = (1 << s) << (1 << s)     // ERROR "non-integer|type complex128"
+	z = (1 << s) << (1. << s)    // ERROR "non-integer|type complex128"
+	z = (1 << s) << (1.1 << s)   // ERROR "invalid|truncated|complex128"
+	z = (1. << s) << (1 << s)    // ERROR "non-integer|type complex128"
+	z = (1. << s) << (1. << s)   // ERROR "non-integer|type complex128"
+	z = (1.1 << s) << (1.1 << s) // ERROR "invalid|truncated|complex128"
+}
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	2010-07-02 04:49:53.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	2013-07-16 08:24:02.909501000 -0500
@@ -2,12 +2,15 @@
 
 // { dg-do run { target *-*-darwin* } }
 // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
-// { dg-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4" }
+// { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
 // This test has no equivalent or meaning for m64/ABI V2
 // { dg-xfail-run-if "No Test Avail" { *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
 
 #include <objc/objc-runtime.h>
 #include <stdlib.h>
+#include <Foundation/NSObject.h>
+
+//extern "C" { int printf(const char *,...); }
 #define CHECK_IF(expr) if(!(expr)) abort()
 
 #ifndef CLS_HAS_CXX_STRUCTORS
@@ -19,7 +22,7 @@
   cxx_struct (void) { a = b = 55; }
 };
 
-@interface Foo {
+@interface Foo: NSObject {
   int c;
   cxx_struct s;
 }
@@ -42,9 +45,11 @@
   Class cls;
 
   cls = objc_getClass("Foo");
-  CHECK_IF(cls->info & CLS_HAS_CXX_STRUCTORS);
+//  printf((const char *)"Foo info %lx\n",cls->info);
+  CHECK_IF((cls->info & CLS_HAS_CXX_STRUCTORS) != 0);
   cls = objc_getClass("Bar");
-  CHECK_IF(!(cls->info & CLS_HAS_CXX_STRUCTORS));
+//  printf((const char *)"Bar info %lx\n",cls->info);
+  CHECK_IF((cls->info & CLS_HAS_CXX_STRUCTORS) == 0);
 
 #else
   /* No test needed or available.  */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/method-12.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/method-12.mm	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/method-12.mm	2013-07-16 08:24:02.909501000 -0500
@@ -2,6 +2,7 @@
 /* Author: Ziemowit Laski <zlaski@apple.com>  */
 /* { dg-options "-Wstrict-selector-match" } */
 /* { dg-do compile } */
+/* { dg-skip-if "Object interface removed" { *-*-darwin[1-2]* && { lp64 } } { "-fnext-runtime" } { "" } } */
 
 #include <objc/Protocol.h>
 
@@ -19,13 +20,13 @@
   Class receiver;
 
   [receiver port];  /* { dg-warning "multiple methods named .\\+port. found" } */
-       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 9 } */
-       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 14 } */
+       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
+       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
 
   [receiver starboard];  /* { dg-warning "no .\\+starboard. method found" } */
-       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 25 } */
-       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 25 } */
-       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 25 } */
+       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
+       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 26 } */
+       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 26 } */
 
   [Class port];  /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm	2010-09-14 19:08:59.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm	2013-07-16 08:24:02.909501000 -0500
@@ -1,12 +1,19 @@
 /* Check that typedefs of ObjC classes preserve 
    any @protocol qualifiers.  */
 /* { dg-do compile } */
+
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 
 @protocol CanDoStuff;
 
-typedef Object<CanDoStuff> CanDoStuffType;
-typedef Object<CanDoStuff> *CanDoStuffTypePtr;
+typedef OBJECT<CanDoStuff> CanDoStuffType;
+typedef OBJECT<CanDoStuff> *CanDoStuffTypePtr;
 
 @protocol CanDoStuff
 - (int) dostuff;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm	2010-10-22 05:30:29.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm	2013-07-16 08:24:02.909501000 -0500
@@ -6,16 +6,16 @@
 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mconstant-cfstrings" } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface Foo: Object {
+@interface Foo: NSObject {
   char *cString;
   unsigned int len;
 }
 + (Foo *)description;
 @end
 
-@interface Bar: Object
+@interface Bar: NSObject
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm	2013-07-16 08:24:02.909501000 -0500
@@ -5,17 +5,23 @@
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 #include "../../objc-obj-c++-shared/objc-test-suite-types.h"
 
-@interface Foo: Object {
+@interface Foo: OBJECT {
   char *cString;
   unsigned int len;
 }
 + (id)description;
 @end
 
-@interface Bar: Object
+@interface Bar: OBJECT
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/syntax-error-1.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/syntax-error-1.mm	2010-10-05 14:23:33.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/syntax-error-1.mm	2013-07-16 08:24:02.909501000 -0500
@@ -1,7 +1,13 @@
 /* Graceful handling of a syntax error.  */
 /* { dg-do compile } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 
 class foo {
   public:
@@ -12,7 +18,7 @@
 
 extern void NXLog(const char *, ...);
 
-@interface Test2 : Object {
+@interface Test2 : OBJECT {
 }
 - (void) foo2;
 @end
@@ -23,4 +29,4 @@
 } /* { dg-error "stray .\}. between Objective\\-C\\+\\+ methods" } */
 @end
 
-/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 22 } */
+/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 28 } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm	2013-07-16 08:24:02.909501000 -0500
@@ -6,10 +6,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSString: Object
+@interface NSString: NSObject
 @end
 
 @interface NSSimpleCString : NSString {
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm	2013-07-16 08:24:02.909501000 -0500
@@ -7,10 +7,10 @@
 /* { dg-options "-fconstant-string-class=XStr" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface XString: Object {
+@interface XString: NSObject {
 @protected
     char *bytes;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
--- gcc-4.8.1.orig/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm	2013-07-16 08:24:02.909501000 -0500
@@ -5,10 +5,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSConstantString: Object {
+@interface NSConstantString: NSObject {
   char *cString;
   unsigned int len;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/encode-7-next-64bit.m gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/encode-7-next-64bit.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/encode-7-next-64bit.m	2013-07-16 08:24:02.909501000 -0500
@@ -4,24 +4,25 @@
 /* { dg-require-effective-target lp64 } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" } */
 
 #include <stdbool.h>
 #include <string.h>
 #include <stdlib.h>
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../objc-obj-c++-shared/runtime.h"
 
-#define CHECK_IF(E) if (!(E)) abort ()
+extern int printf(char *,...);
+void CHECK_IF(const char *s1, const char *s2)
+{
+ if (strcmp(s1,s2) != 0) {
+ printf ("'%s'\n'%s'\n",s1,s2);
+ abort ();
+ }
+}
 
 @class NSDictionary, NSFont, NSError, _NSATSTypesetterGuts, NSString, NSMenu, NSArray;
 
-typedef unsigned char UInt8;
-typedef const signed long OSStatus;
-typedef unsigned long CFIndex;
-typedef unsigned int UInt32;
-typedef UInt32 FourCharCode;
-typedef FourCharCode OSType;
-
 struct FSRef {
   UInt8 hidden[80];
 };
@@ -99,10 +100,10 @@
   unsigned int parameterMask;
 } NSErrorUserInfoFormatter;
 
-typedef Object MyObj;
-typedef Object *MyPtr;
+typedef NSObject MyObj;
+typedef NSObject *MyPtr;
 
-@interface Foo: Object {
+@interface Foo: NSObject {
   NSATSGlyphStorageRun r;
 }
 - (NSError *)_errorWithOSStatus:(OSStatus)inOSStatus ref1:(const FSRef *)inRef1 ref2:(const struct FSRef *)inRef2
@@ -114,7 +115,7 @@
 - (id)str1:(const char *)str1 str2:(char *)str2 str3:(char *const)str3 str4:(const char *const)str4;
 - (oneway void)foo1:(Foo *)foo1 foo2:(const Foo *)foo2 foo3:(Foo *const)foo3 foo4:(const Foo *const)foo4;
 - (in const char *)sel1:(const SEL)sel1 id1:(const id)id1;
-- (inout id)obj1:(const MyPtr)obj1 obj2:(Object *const)obj2 obj3:(MyObj *const)obj3;
+- (inout id)obj1:(const MyPtr)obj1 obj2:(NSObject *const)obj2 obj3:(MyObj *const)obj3;
 + (ComponentInstance)_defaultScriptingComponent;
 - (NSString *)_formatCocoaErrorString:(NSString *)formatString parameters:(const char *)parameters 
   applicableFormatters:(NSErrorUserInfoFormatter **)formatters count:(int)numFormatters;
@@ -156,7 +157,7 @@
 - (in const char *)sel1:(const SEL)sel1 id1:(const id)id1 {
   return "Hello";
 }  
-- (inout id)obj1:(const MyPtr)obj1 obj2:(Object *const)obj2 obj3:(MyObj *const)obj3 {
+- (inout id)obj1:(const MyPtr)obj1 obj2:(NSObject *const)obj2 obj3:(MyObj *const)obj3 {
   return self;
 }
 + (ComponentInstance)_defaultScriptingComponent {
@@ -191,6 +192,8 @@
 }
 @end
 
+/* FIXME: we produce different output c.f. the system compiler on OSX10.6+ */
+
 int main(void) {
   Class fooClass = objc_getClass ("Foo");
   Method meth;
@@ -199,72 +202,76 @@
   Ivar ivar;
 
   meth = class_getInstanceMethod (fooClass, @selector(_errorWithOSStatus:ref1:ref2:reading:));
-  CHECK_IF (!strcmp (method_getTypeEncoding(meth), "@44@0:8q16r^{FSRef=[80C]}24r^{FSRef=[80C]}32c40"));
+  CHECK_IF (method_getTypeEncoding(meth), "@40@0:8i16r^{FSRef=[80C]}20r^{FSRef=[80C]}28c36");
 
   meth = class_getInstanceMethod (fooClass, @selector(_attributeRunForCharacterAtIndex:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "r^{?=@@QQ^Qffff{_NSRect={_NSPoint=ff}{_NSSize=ff}}q^qQ^Q@@@:::****{?=b1b1b1b1b1b27}}24@0:8Q16"));
+  CHECK_IF (method_getTypeEncoding (meth), "r^{?=@@qq^qffff{_NSRect={_NSPoint=ff}{_NSSize=ff}}q^qQ^Q@@@:::****{?=b1b1b1b1b1b27}}24@0:8q16");
+/* clang produces: r^{?=@@qq^qffff{_NSRect={_NSPoint=ff}{_NSSize=ff}}q^qQ^Q@@@::^{objc_selector}****{?=b1b1b1b1b1b27}}24@0:8q16 */
 
   meth = class_getInstanceMethod (fooClass, @selector(_getATSTypesetterGuts:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "r@24@0:8r:16"));
+  CHECK_IF (method_getTypeEncoding (meth), "r@24@0:8r:16");
+/* "@24@0:8r^{objc_selector=}16" */
 
   meth = class_getInstanceMethod (fooClass, @selector(resumeWithSuspensionID:and:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "v32@0:8^{__NSAppleEventManagerSuspension=}16r^Q24"));
+  CHECK_IF (method_getTypeEncoding (meth), "v32@0:8^{__NSAppleEventManagerSuspension=}16r^q24");
 
   meth = class_getInstanceMethod (fooClass, @selector(anotherMeth:and:and:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "r@40@0:8r:16r@24r@32"));
+  CHECK_IF (method_getTypeEncoding (meth), "r@40@0:8r:16r@24r@32");
 
   meth = class_getInstanceMethod (fooClass, @selector(str1:str2:str3:str4:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "@48@0:8r*16*24*32r*40"));
+  CHECK_IF (method_getTypeEncoding (meth), "@48@0:8r*16*24*32r*40");
 
   meth = class_getInstanceMethod (fooClass, @selector(foo1:foo2:foo3:foo4:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "Vv48@0:8@16r@24@32r@40"));
+  CHECK_IF (method_getTypeEncoding (meth), "Vv48@0:8@16r@24@32r@40");
 
   meth = class_getInstanceMethod (fooClass, @selector(sel1:id1:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "rn*32@0:8r:16r@24"));
+  CHECK_IF (method_getTypeEncoding (meth), "rn*32@0:8r:16r@24");
 
   meth = class_getInstanceMethod (fooClass, @selector(obj1:obj2:obj3:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "N@40@0:8r@16@24^{Object=#}32"));
+  CHECK_IF (method_getTypeEncoding (meth), "N@40@0:8r@16@24^{NSObject=#}32");
 
   meth = class_getClassMethod (fooClass, @selector(_defaultScriptingComponent));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "^{ComponentInstanceRecord=[1q]}16@0:8"));
+  CHECK_IF (method_getTypeEncoding (meth), "^{ComponentInstanceRecord=[1q]}16@0:8");
 
   meth = class_getInstanceMethod (fooClass, @selector(_formatCocoaErrorString:parameters:applicableFormatters:count:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "@44@0:8@16r*24^^{?}32i40"));
+  CHECK_IF (method_getTypeEncoding (meth), "@44@0:8@16r*24^^{?}32i40");
 
   meth = class_getInstanceMethod (fooClass, @selector(formatter_func:run:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "^{?=^?@I}32@0:8@16r^^{?}24"));
+  CHECK_IF (method_getTypeEncoding (meth), "^{?=^?@I}32@0:8@16r^^{?}24");
 
   meth = class_getInstanceMethod (fooClass, @selector(_forgetWord:inDictionary:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "c32@0:8nO@16nO@24"));
+  CHECK_IF (method_getTypeEncoding (meth), "c32@0:8nO@16nO@24");
 
   meth = class_getInstanceMethod (fooClass, @selector(_registerServicesMenu:withSendTypes:andReturnTypes:addToList:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "v44@0:8@16r^*24r^*32c40"));
+  CHECK_IF (method_getTypeEncoding (meth), "v44@0:8@16r^*24r^*32c40");
 
   meth = class_getClassMethod (fooClass, @selector(_proxySharePointer));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "^^{__CFSet}16@0:8"));
+  CHECK_IF (method_getTypeEncoding (meth), "^^{__CFSet}16@0:8");
 
   meth = class_getInstanceMethod (fooClass, @selector(_checkGrammarInString:language:details:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "{_NSRange=II}40@0:8n@16nO@24oO^@32"));
+  CHECK_IF (method_getTypeEncoding (meth), "{_NSRange=II}40@0:8n@16nO@24oO^@32");
 
   meth = class_getInstanceMethod (fooClass, @selector(_resolvePositionalStakeGlyphsForLineFragment:lineFragmentRect:minPosition:maxPosition:maxLineFragmentWidth:breakHint:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "B60@0:8^{__CTLine=}16{_NSRect={_NSPoint=ff}{_NSSize=ff}}24f40f44f48^Q52"));
+  CHECK_IF (method_getTypeEncoding (meth), "B60@0:8^{__CTLine=}16{_NSRect={_NSPoint=ff}{_NSSize=ff}}24f40f44f48^q52");
 
   meth = class_getClassMethod (fooClass, @selector(findVoiceByIdentifier:returningCreator:returningID:));
-  CHECK_IF (!strcmp (method_getTypeEncoding (meth), "c40@0:8@16^I24^I32"));
+  CHECK_IF (method_getTypeEncoding (meth), "c40@0:8@16^I24^I32");
 
   ivars = class_copyIvarList (fooClass, &ivar_count);
-  CHECK_IF (ivar_count == 1);
+  if (ivar_count != 1) {
+    abort ();
+  }
 
   ivar = ivars[0];
-  CHECK_IF (!strcmp (ivar_getName(ivar), "r"));
-  CHECK_IF (!strcmp (ivar_getTypeEncoding(ivar),
+  CHECK_IF (ivar_getName(ivar), "r");
+  CHECK_IF (ivar_getTypeEncoding(ivar),
    "{?=\"_attributes\"@\"NSDictionary\"\"_font\"@\"NSFont\"\"_characterLength\""
-    "Q\"_nominalGlyphLocation\"Q\"p\"^Q\"_defaultLineHeight\"f\"_defaultBaselineOffset\""
+    "q\"_nominalGlyphLocation\"q\"p\"^q\"_defaultLineHeight\"f\"_defaultBaselineOffset\""
     "f\"_horizExpansion\"f\"_baselineDelta\"f\"_attachmentBBox\"{_NSRect=\"origin\""
     "{_NSPoint=\"x\"f\"y\"f}\"size\"{_NSSize=\"width\"f\"height\"f}}\"ll\"q\"llp\"^q\"ull\""
     "Q\"ullp\"^Q\"a\"@\"a1\"@\"a2\"@\"b\":\"b1\":\"b2\":\"str1\"*\"str2\"*\"str3\"*\"str4\""
     "*\"_rFlags\"{?=\"_isAttachmentRun\"b1\"_hasPositionalStake\"b1\"_isDefaultFace\""
-    "b1\"_hasCombiningMarks\"b1\"_isScreenFont\"b1\"_reserved\"b27}}"));
-
+    "b1\"_hasCombiningMarks\"b1\"_isScreenFont\"b1\"_reserved\"b27}}");
+/*"{?=\"_attributes\"@\"NSDictionary\"\"_font\"@\"NSFont\"\"_characterLength\"q\"_nominalGlyphLocation\"q\"p\"^q\"_defaultLineHeight\"f\"_defaultBaselineOffset\"f\"_horizExpansion\"f\"_baselineDelta\"f\"_attachmentBBox\"{_NSRect=\"origin\"{_NSPoint=\"x\"f\"y\"f}\"size\"{_NSSize=\"width\"f\"height\"f}}\"ll\"q\"llp\"^q\"ull\"Q\"ullp\"^Q\"a\"@\"a1\"@\"a2\"@\"b\":\"b1\":\"b2\"^{objc_selector}\"str1\"*\"str2\"*\"str3\"*\"str4\"*\"_rFlags\"{?=\"_isAttachmentRun\"b1\"_hasPositionalStake\"b1\"_isDefaultFace\"b1\"_hasCombiningMarks\"b1\"_isScreenFont\"b1\"_reserved\"b27}}"*/
   return 0;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/image-info.m gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/image-info.m	2011-02-17 18:07:38.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/objc.dg/image-info.m	2013-07-16 08:24:02.909501000 -0500
@@ -7,20 +7,19 @@
 /* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-freplace-objc-classes" } */
 
-#include <objc/objc.h>
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Object (TEST_SUITE_C1)
+@interface NSObject (TEST_SUITE_C1)
 - init;
 @end
-@implementation Object (TEST_SUITE_C1)
+@implementation NSObject (TEST_SUITE_C1)
 - init {return self;}
 @end
 
-@interface Base: Object {
+@interface Base: NSObject {
 @public
   int a;
   float b;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/method-6.m gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/method-6.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/method-6.m	2013-07-16 08:24:02.909501000 -0500
@@ -4,14 +4,21 @@
 /* { dg-do compile } */
 /* { dg-options "-Wstrict-selector-match" } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
+#include <objc/Object.h>
 #include <objc/Protocol.h>
+#define OBJECT Object
+#endif
 
 @interface Base
 - (unsigned)port;
 @end
 
 @interface Derived: Base
-- (Object *)port;
+- (OBJECT *)port;
 + (Protocol *)port;
 - (id)starboard;
 @end
@@ -20,13 +27,13 @@
   Class receiver;
 
   [receiver port];  /* { dg-warning "multiple methods named .\\+port. found" } */
-       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
-       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
+       /* { dg-message "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 17 } */
+       /* { dg-message "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 22 } */
 
   [receiver starboard];  /* { dg-warning "no .\\+starboard. method found" } */
-       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
-       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 26 } */
-       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 26 } */
+       /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 33 } */
+       /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 33 } */
+       /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 33 } */
 
   [Class port];  /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/no-extra-load.m gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/no-extra-load.m	2010-03-25 17:25:05.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/no-extra-load.m	2013-07-16 08:24:02.909501000 -0500
@@ -1,7 +1,7 @@
 /* { dg-do compile { target *-*-darwin* } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
-#import <Foundation/Foundation.h>
+#include <Foundation/NSObject.h>
 main() { [NSObject new]; }
 
 /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-4.m gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-4.m	2011-01-09 10:24:46.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-4.m	2013-07-16 08:24:02.909501000 -0500
@@ -1,17 +1,13 @@
 /* Test for valid objc objects used in a for-each statement. */
 /* FIXME: Run this test with the GNU runtime as well.  */
-/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-do run { target *-*-darwin* } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
 
-#include <objc/objc-api.h>
-#include <Foundation/Foundation.h>
-
-#if defined (__NEXT_RUNTIME__) && defined (__LP64__)
-/* Fudge the class reference until we implement the compiler-side 
-   const strings.  */
-extern void *_NSConstantStringClassReference;
-#endif
+#include <Foundation/NSString.h>
+#include <Foundation/NSAutoreleasePool.h>
+#include <Foundation/NSArray.h>
 
 // gcc -o foo foo.m -framework Foundation
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-5.m gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/objc-foreach-5.m	2011-01-09 10:24:46.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/objc.dg/objc-foreach-5.m	2013-07-16 08:24:02.909501000 -0500
@@ -2,8 +2,10 @@
 /* { dg-do compile { target *-*-darwin* } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
 
-#import <Foundation/Foundation.h>
+#include <Foundation/NSArray.h>
+#include <Foundation/NSAutoreleasePool.h>
 
 NSArray * createTestVictim(unsigned capacity) {
     NSMutableArray * arr = [[NSMutableArray alloc] initWithCapacity:capacity];
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/pr23214.m gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/pr23214.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/pr23214.m	2013-07-16 08:24:02.909501000 -0500
@@ -3,14 +3,24 @@
 
 /* { dg-do run } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
+/* { dg-additional-options "-framework Foundation" { target { { *-*-darwin* } && objc2 } } } */
 
+#if defined (__NEXT_RUNTIME__) && defined(__OBJC2__) \
+    && defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
+    && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
 #include <objc/Protocol.h>
- 
-@interface Object (TS_CAT)
+#define OBJECT NSObject
+#else
+#include <objc/Object.h>
+#define OBJECT Object
+#include <objc/Protocol.h>
+#endif
+
+@interface OBJECT (TS_CAT)
 - test;
 @end
 
-@implementation Object (TS_CAT)
+@implementation OBJECT (TS_CAT)
 - test { return self; }
 @end
 
@@ -20,7 +30,7 @@
 @protocol B 
 @end
 
-@interface Dummy : Object <B>
+@interface Dummy : OBJECT <B>
 @end
 
 int main ()
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/proto-lossage-7.m gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/proto-lossage-7.m	2010-09-14 19:08:59.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/proto-lossage-7.m	2013-07-16 08:24:02.909501000 -0500
@@ -1,12 +1,19 @@
 /* Check that typedefs of ObjC classes preserve 
    any @protocol qualifiers.  */
 /* { dg-do compile } */
+
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 
 @protocol CanDoStuff;
 
-typedef Object<CanDoStuff> CanDoStuffType;
-typedef Object<CanDoStuff> *CanDoStuffTypePtr;
+typedef OBJECT<CanDoStuff> CanDoStuffType;
+typedef OBJECT<CanDoStuff> *CanDoStuffTypePtr;
 
 @protocol CanDoStuff
 - (int) dostuff;
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-cfstring-5.m gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-cfstring-5.m	2010-10-22 05:30:29.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-cfstring-5.m	2013-07-16 08:24:02.909501000 -0500
@@ -6,16 +6,16 @@
 /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mconstant-cfstrings" } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface Foo: Object {
+@interface Foo: NSObject {
   char *cString;
   unsigned int len;
 }
 + (Foo *)description;
 @end
 
-@interface Bar: Object
+@interface Bar: NSObject
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-str-12b.m gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/strings/const-str-12b.m	2011-01-11 04:14:48.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/objc.dg/strings/const-str-12b.m	2013-07-16 08:24:02.909501000 -0500
@@ -5,17 +5,23 @@
 /* { dg-options "-fconstant-string-class=Foo" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#define OBJECT Object
+#endif
 #include "../../objc-obj-c++-shared/objc-test-suite-types.h"
 
-@interface Foo: Object {
+@interface Foo: OBJECT {
   char *cString;
   unsigned int len;
 }
 + (id)description;
 @end
 
-@interface Bar: Object
+@interface Bar: OBJECT
 + (Foo *) getString: (int) which;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/symtab-1.m gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/symtab-1.m	2011-02-17 18:07:38.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/objc.dg/symtab-1.m	2013-07-16 08:24:02.909501000 -0500
@@ -4,9 +4,9 @@
 /* { dg-do compile { target { *-*-darwin* } } } */
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface Base: Object 
+@interface Base: NSObject 
 - (void)setValues;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-10.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-10.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-10.m	2013-07-16 08:24:02.909501000 -0500
@@ -6,10 +6,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSString: Object
+@interface NSString: NSObject
 @end
 
 @interface NSSimpleCString : NSString {
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-11.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-11.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-11.m	2013-07-16 08:24:02.909501000 -0500
@@ -7,10 +7,10 @@
 /* { dg-options "-fconstant-string-class=XStr" } */
 /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface XString: Object {
+@interface XString: NSObject {
 @protected
     char *bytes;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-9.m gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/torture/strings/const-str-9.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/torture/strings/const-str-9.m	2013-07-16 08:24:02.909501000 -0500
@@ -5,10 +5,10 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
 
-@interface NSConstantString: Object {
+@interface NSConstantString: NSObject {
   char *cString;
   unsigned int len;
 }
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-1.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-1.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-1.m	2013-07-16 08:24:02.909501000 -0500
@@ -5,13 +5,12 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-fzero-link" } */
 
-#include <objc/Object.h>
-#include <objc/objc.h>
+#include <Foundation/NSObject.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object
+@interface Base: NSObject
 + (int) getValue;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-2.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-2.m	2011-02-17 18:07:38.000000000 -0600
+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-2.m	2013-07-16 08:24:02.909501000 -0500
@@ -5,12 +5,12 @@
 /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
 /* { dg-options "-fno-zero-link" } */
 
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object
+@interface Base: NSObject
 + (int) getValue;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-3.m gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m
--- gcc-4.8.1.orig/gcc/testsuite/objc.dg/zero-link-3.m	2011-06-06 17:46:58.000000000 -0500
+++ gcc-4.8.1/gcc/testsuite/objc.dg/zero-link-3.m	2013-07-16 08:24:02.909501000 -0500
@@ -2,15 +2,23 @@
 /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
 
 /* { dg-do run { target *-*-darwin* } } */
-/* { dg-options "-fzero-link" } */
+/* { dg-additional-options "-fzero-link" } */
+/* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
 /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
 
+#ifdef __NEXT_RUNTIME__
+#include <Foundation/NSObject.h>
+#define OBJECT NSObject
+#else
 #include <objc/Object.h>
+#include <objc/Protocol.h>
+#define OBJECT Object
+#endif
 
 extern void abort(void);
 #define CHECK_IF(expr) if(!(expr)) abort();
 
-@interface Base: Object
+@interface Base: OBJECT
 + (int) getValue;
 @end
 
diff -Naur gcc-4.8.1.orig/gcc/tlink.c gcc-4.8.1/gcc/tlink.c
--- gcc-4.8.1.orig/gcc/tlink.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/tlink.c	2013-06-20 12:12:17.412846000 -0500
@@ -817,18 +817,18 @@
 void
 do_tlink (char **ld_argv, char **object_lst ATTRIBUTE_UNUSED)
 {
-  int exit = tlink_execute ("ld", ld_argv, ldout, lderrout);
+  int ret = tlink_execute ("ld", ld_argv, ldout, lderrout);
 
   tlink_init ();
 
-  if (exit)
+  if (ret)
     {
       int i = 0;
 
       /* Until collect does a better job of figuring out which are object
 	 files, assume that everything on the command line could be.  */
       if (read_repo_files (ld_argv))
-	while (exit && i++ < MAX_ITERATIONS)
+	while (ret && i++ < MAX_ITERATIONS)
 	  {
 	    if (tlink_verbose >= 3)
 	      {
@@ -843,7 +843,7 @@
 	      break;
 	    if (tlink_verbose)
 	      fprintf (stderr, _("collect: relinking\n"));
-	    exit = tlink_execute ("ld", ld_argv, ldout, lderrout);
+	    ret = tlink_execute ("ld", ld_argv, ldout, lderrout);
 	  }
     }
 
@@ -851,10 +851,10 @@
   unlink (ldout);
   dump_ld_file (lderrout, stderr);
   unlink (lderrout);
-  if (exit)
+  if (ret)
     {
-      error ("ld returned %d exit status", exit);
-      collect_exit (exit);
+      error ("ld returned %d exit status", ret);
+      exit (ret);
     }
   else
     {
diff -Naur gcc-4.8.1.orig/gcc/tree-call-cdce.c gcc-4.8.1/gcc/tree-call-cdce.c
--- gcc-4.8.1.orig/gcc/tree-call-cdce.c	2013-02-20 09:19:13.000000000 -0600
+++ gcc-4.8.1/gcc/tree-call-cdce.c	2013-08-16 04:04:52.452768000 -0500
@@ -726,15 +726,28 @@
      return false and do not do any transformation for
      the call.  */
   if (nconds == 0)
-    return false;
+    {
+      conds.release ();
+      return false;
+    }
 
   bi_call_bb = gimple_bb (bi_call);
 
-  /* Now find the join target bb -- split
-     bi_call_bb if needed.  */
-  bi_call_bsi = gsi_for_stmt (bi_call);
+  /* Now find the join target bb -- split bi_call_bb if needed.  */
+  if (stmt_ends_bb_p (bi_call))
+    {
+      /* If the call must be the last in the bb, don't split the block,
+	 it could e.g. have EH edges.  */
+      join_tgt_in_edge_from_call = find_fallthru_edge (bi_call_bb->succs);
+      if (join_tgt_in_edge_from_call == NULL)
+	{
+	  conds.release ();
+	  return false;
+	}
+    }
+  else
+    join_tgt_in_edge_from_call = split_block (bi_call_bb, bi_call);
 
-  join_tgt_in_edge_from_call = split_block (bi_call_bb, bi_call);
   bi_call_bsi = gsi_for_stmt (bi_call);
 
   join_tgt_bb = join_tgt_in_edge_from_call->dest;
diff -Naur gcc-4.8.1.orig/gcc/tree-parloops.c gcc-4.8.1/gcc/tree-parloops.c
--- gcc-4.8.1.orig/gcc/tree-parloops.c	2013-05-07 03:11:46.000000000 -0500
+++ gcc-4.8.1/gcc/tree-parloops.c	2013-08-18 10:24:12.566692000 -0500
@@ -478,9 +478,12 @@
       if (gsi == NULL)
 	return NULL;
       addr = TREE_OPERAND (*var_p, 0);
-      name = make_temp_ssa_name (TREE_TYPE (addr), NULL,
-				 get_name (TREE_OPERAND
-					   (TREE_OPERAND (*var_p, 0), 0)));
+      const char *obj_name
+	= get_name (TREE_OPERAND (TREE_OPERAND (*var_p, 0), 0));
+      if (obj_name)
+	name = make_temp_ssa_name (TREE_TYPE (addr), NULL, obj_name);
+      else
+	name = make_ssa_name (TREE_TYPE (addr), NULL);
       stmt = gimple_build_assign (name, addr);
       gsi_insert_on_edge_immediate (entry, stmt);
 
@@ -679,6 +682,12 @@
 	  dta.changed = true;
 	}
     }
+  else if (gimple_clobber_p (stmt))
+    {
+      stmt = gimple_build_nop ();
+      gsi_replace (gsi, stmt, false);
+      dta.changed = true;
+    }
   else
     {
       dta.gsi = gsi;
diff -Naur gcc-4.8.1.orig/gcc/tree-sra.c gcc-4.8.1/gcc/tree-sra.c
--- gcc-4.8.1.orig/gcc/tree-sra.c	2013-05-23 08:25:23.000000000 -0500
+++ gcc-4.8.1/gcc/tree-sra.c	2013-08-14 15:36:12.151519000 -0500
@@ -1440,6 +1440,7 @@
 {
   tree prev_base = base;
   tree off;
+  tree mem_ref;
   HOST_WIDE_INT base_offset;
   unsigned HOST_WIDE_INT misalign;
   unsigned int align;
@@ -1490,7 +1491,12 @@
   if (align < TYPE_ALIGN (exp_type))
     exp_type = build_aligned_type (exp_type, align);
 
-  return fold_build2_loc (loc, MEM_REF, exp_type, base, off);
+  mem_ref = fold_build2_loc (loc, MEM_REF, exp_type, base, off);
+  if (TREE_THIS_VOLATILE (prev_base))
+    TREE_THIS_VOLATILE (mem_ref) = 1;
+  if (TREE_SIDE_EFFECTS (prev_base))
+    TREE_SIDE_EFFECTS (mem_ref) = 1;
+  return mem_ref;
 }
 
 /* Construct a memory reference to a part of an aggregate BASE at the given
diff -Naur gcc-4.8.1.orig/gcc/tree-tailcall.c gcc-4.8.1/gcc/tree-tailcall.c
--- gcc-4.8.1.orig/gcc/tree-tailcall.c	2013-03-06 17:26:42.000000000 -0600
+++ gcc-4.8.1/gcc/tree-tailcall.c	2013-08-23 02:35:01.611004000 -0500
@@ -328,8 +328,10 @@
     case NEGATE_EXPR:
       if (FLOAT_TYPE_P (TREE_TYPE (op0)))
         *m = build_real (TREE_TYPE (op0), dconstm1);
-      else
+      else if (INTEGRAL_TYPE_P (TREE_TYPE (op0)))
         *m = build_int_cst (TREE_TYPE (op0), -1);
+      else
+        return false;
 
       *ass_var = dest;
       return true;
@@ -341,8 +343,10 @@
         {
           if (FLOAT_TYPE_P (TREE_TYPE (non_ass_var)))
             *m = build_real (TREE_TYPE (non_ass_var), dconstm1);
-          else
+          else if (INTEGRAL_TYPE_P (TREE_TYPE (non_ass_var)))
             *m = build_int_cst (TREE_TYPE (non_ass_var), -1);
+	  else
+	    return false;
 
           *a = fold_build1 (NEGATE_EXPR, TREE_TYPE (non_ass_var), non_ass_var);
         }
@@ -570,6 +574,11 @@
   if (!tail_recursion && (m || a))
     return;
 
+  /* For pointers don't allow additions or multiplications.  */
+  if ((m || a)
+      && POINTER_TYPE_P (TREE_TYPE (DECL_RESULT (current_function_decl))))
+    return;
+
   nw = XNEW (struct tailcall);
 
   nw->call_gsi = gsi;
diff -Naur gcc-4.8.1.orig/gcc/tree-vect-patterns.c gcc-4.8.1/gcc/tree-vect-patterns.c
--- gcc-4.8.1.orig/gcc/tree-vect-patterns.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/tree-vect-patterns.c	2013-06-12 08:01:29.647807000 -0500
@@ -638,7 +638,10 @@
           && vect_handle_widen_op_by_const (last_stmt, MULT_EXPR, oprnd1,
 		                            &oprnd0, stmts, type,
 					    &half_type0, def_stmt0))
-        half_type1 = half_type0;
+	{
+	  half_type1 = half_type0;
+	  oprnd1 = fold_convert (half_type1, oprnd1);
+	}
       else
         return NULL;
     }
diff -Naur gcc-4.8.1.orig/gcc/tree-vect-stmts.c gcc-4.8.1/gcc/tree-vect-stmts.c
--- gcc-4.8.1.orig/gcc/tree-vect-stmts.c	2013-03-05 03:37:56.000000000 -0600
+++ gcc-4.8.1/gcc/tree-vect-stmts.c	2013-06-27 10:41:34.547790000 -0500
@@ -3796,6 +3796,7 @@
   enum vect_def_type dt;
   stmt_vec_info prev_stmt_info = NULL;
   tree dataref_ptr = NULL_TREE;
+  gimple ptr_incr = NULL;
   int nunits = TYPE_VECTOR_SUBPARTS (vectype);
   int ncopies;
   int j;
@@ -4040,7 +4041,6 @@
   for (j = 0; j < ncopies; j++)
     {
       gimple new_stmt;
-      gimple ptr_incr;
 
       if (j == 0)
 	{
@@ -4313,7 +4313,7 @@
   tree dummy;
   enum dr_alignment_support alignment_support_scheme;
   tree dataref_ptr = NULL_TREE;
-  gimple ptr_incr;
+  gimple ptr_incr = NULL;
   int nunits = TYPE_VECTOR_SUBPARTS (vectype);
   int ncopies;
   int i, j, group_size;
diff -Naur gcc-4.8.1.orig/gcc/version.c gcc-4.8.1/gcc/version.c
--- gcc-4.8.1.orig/gcc/version.c	2013-01-10 14:38:27.000000000 -0600
+++ gcc-4.8.1/gcc/version.c	2013-08-28 12:51:08.218924417 -0500
@@ -32,4 +32,4 @@
    Makefile.  */
 
 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
-const char pkgversion_string[] = PKGVERSION;
+const char pkgversion_string[] = "(GCC for Cross-LFS 4.8.1.20130828) ";
diff -Naur gcc-4.8.1.orig/libffi/doc/libffi.info gcc-4.8.1/libffi/doc/libffi.info
--- gcc-4.8.1.orig/libffi/doc/libffi.info	2013-05-31 05:05:08.000000000 -0500
+++ gcc-4.8.1/libffi/doc/libffi.info	1969-12-31 18:00:00.000000000 -0600
@@ -1,617 +0,0 @@
-This is doc/libffi.info, produced by makeinfo version 4.13 from
-/d/gcc-4.8.1/gcc-4.8.1/libffi/doc/libffi.texi.
-
-This manual is for Libffi, a portable foreign-function interface
-library.
-
-   Copyright (C) 2008, 2010, 2011 Red Hat, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU General Public License as
-     published by the Free Software Foundation; either version 2, or
-     (at your option) any later version.  A copy of the license is
-     included in the section entitled "GNU General Public License".
-
-
-INFO-DIR-SECTION Development
-START-INFO-DIR-ENTRY
-* libffi: (libffi).             Portable foreign-function interface library.
-END-INFO-DIR-ENTRY
-
-
-File: libffi.info,  Node: Top,  Next: Introduction,  Up: (dir)
-
-libffi
-******
-
-This manual is for Libffi, a portable foreign-function interface
-library.
-
-   Copyright (C) 2008, 2010, 2011 Red Hat, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU General Public License as
-     published by the Free Software Foundation; either version 2, or
-     (at your option) any later version.  A copy of the license is
-     included in the section entitled "GNU General Public License".
-
-
-* Menu:
-
-* Introduction::                What is libffi?
-* Using libffi::                How to use libffi.
-* Missing Features::            Things libffi can't do.
-* Index::                       Index.
-
-
-File: libffi.info,  Node: Introduction,  Next: Using libffi,  Prev: Top,  Up: Top
-
-1 What is libffi?
-*****************
-
-Compilers for high level languages generate code that follow certain
-conventions.  These conventions are necessary, in part, for separate
-compilation to work.  One such convention is the "calling convention".
-The calling convention is a set of assumptions made by the compiler
-about where function arguments will be found on entry to a function.  A
-calling convention also specifies where the return value for a function
-is found.  The calling convention is also sometimes called the "ABI" or
-"Application Binary Interface".  
-
-   Some programs may not know at the time of compilation what arguments
-are to be passed to a function.  For instance, an interpreter may be
-told at run-time about the number and types of arguments used to call a
-given function.  `Libffi' can be used in such programs to provide a
-bridge from the interpreter program to compiled code.
-
-   The `libffi' library provides a portable, high level programming
-interface to various calling conventions.  This allows a programmer to
-call any function specified by a call interface description at run time.
-
-   FFI stands for Foreign Function Interface.  A foreign function
-interface is the popular name for the interface that allows code
-written in one language to call code written in another language.  The
-`libffi' library really only provides the lowest, machine dependent
-layer of a fully featured foreign function interface.  A layer must
-exist above `libffi' that handles type conversions for values passed
-between the two languages.  
-
-
-File: libffi.info,  Node: Using libffi,  Next: Missing Features,  Prev: Introduction,  Up: Top
-
-2 Using libffi
-**************
-
-* Menu:
-
-* The Basics::                  The basic libffi API.
-* Simple Example::              A simple example.
-* Types::                       libffi type descriptions.
-* Multiple ABIs::               Different passing styles on one platform.
-* The Closure API::             Writing a generic function.
-* Closure Example::             A closure example.
-
-
-File: libffi.info,  Node: The Basics,  Next: Simple Example,  Up: Using libffi
-
-2.1 The Basics
-==============
-
-`Libffi' assumes that you have a pointer to the function you wish to
-call and that you know the number and types of arguments to pass it, as
-well as the return type of the function.
-
-   The first thing you must do is create an `ffi_cif' object that
-matches the signature of the function you wish to call.  This is a
-separate step because it is common to make multiple calls using a
-single `ffi_cif'.  The "cif" in `ffi_cif' stands for Call InterFace.
-To prepare a call interface object, use the function `ffi_prep_cif'.  
-
- -- Function: ffi_status ffi_prep_cif (ffi_cif *CIF, ffi_abi ABI,
-          unsigned int NARGS, ffi_type *RTYPE, ffi_type **ARGTYPES)
-     This initializes CIF according to the given parameters.
-
-     ABI is the ABI to use; normally `FFI_DEFAULT_ABI' is what you
-     want.  *note Multiple ABIs:: for more information.
-
-     NARGS is the number of arguments that this function accepts.
-
-     RTYPE is a pointer to an `ffi_type' structure that describes the
-     return type of the function.  *Note Types::.
-
-     ARGTYPES is a vector of `ffi_type' pointers.  ARGTYPES must have
-     NARGS elements.  If NARGS is 0, this argument is ignored.
-
-     `ffi_prep_cif' returns a `libffi' status code, of type
-     `ffi_status'.  This will be either `FFI_OK' if everything worked
-     properly; `FFI_BAD_TYPEDEF' if one of the `ffi_type' objects is
-     incorrect; or `FFI_BAD_ABI' if the ABI parameter is invalid.
-
-   If the function being called is variadic (varargs) then
-`ffi_prep_cif_var' must be used instead of `ffi_prep_cif'.
-
- -- Function: ffi_status ffi_prep_cif_var (ffi_cif *CIF, ffi_abi
-          varabi, unsigned int NFIXEDARGS, unsigned int varntotalargs,
-          ffi_type *RTYPE, ffi_type **ARGTYPES)
-     This initializes CIF according to the given parameters for a call
-     to a variadic function.  In general it's operation is the same as
-     for `ffi_prep_cif' except that:
-
-     NFIXEDARGS is the number of fixed arguments, prior to any variadic
-     arguments.  It must be greater than zero.
-
-     NTOTALARGS the total number of arguments, including variadic and
-     fixed arguments.
-
-     Note that, different cif's must be prepped for calls to the same
-     function when different numbers of arguments are passed.
-
-     Also note that a call to `ffi_prep_cif_var' with
-     NFIXEDARGS=NOTOTALARGS is NOT equivalent to a call to
-     `ffi_prep_cif'.
-
-
-   To call a function using an initialized `ffi_cif', use the
-`ffi_call' function:
-
- -- Function: void ffi_call (ffi_cif *CIF, void *FN, void *RVALUE, void
-          **AVALUES)
-     This calls the function FN according to the description given in
-     CIF.  CIF must have already been prepared using `ffi_prep_cif'.
-
-     RVALUE is a pointer to a chunk of memory that will hold the result
-     of the function call.  This must be large enough to hold the
-     result and must be suitably aligned; it is the caller's
-     responsibility to ensure this.  If CIF declares that the function
-     returns `void' (using `ffi_type_void'), then RVALUE is ignored.
-     If RVALUE is `NULL', then the return value is discarded.
-
-     AVALUES is a vector of `void *' pointers that point to the memory
-     locations holding the argument values for a call.  If CIF declares
-     that the function has no arguments (i.e., NARGS was 0), then
-     AVALUES is ignored.  Note that argument values may be modified by
-     the callee (for instance, structs passed by value); the burden of
-     copying pass-by-value arguments is placed on the caller.
-
-
-File: libffi.info,  Node: Simple Example,  Next: Types,  Prev: The Basics,  Up: Using libffi
-
-2.2 Simple Example
-==================
-
-Here is a trivial example that calls `puts' a few times.
-
-     #include <stdio.h>
-     #include <ffi.h>
-
-     int main()
-     {
-       ffi_cif cif;
-       ffi_type *args[1];
-       void *values[1];
-       char *s;
-       int rc;
-
-       /* Initialize the argument info vectors */
-       args[0] = &ffi_type_pointer;
-       values[0] = &s;
-
-       /* Initialize the cif */
-       if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
-     		       &ffi_type_uint, args) == FFI_OK)
-         {
-           s = "Hello World!";
-           ffi_call(&cif, puts, &rc, values);
-           /* rc now holds the result of the call to puts */
-
-           /* values holds a pointer to the function's arg, so to
-              call puts() again all we need to do is change the
-              value of s */
-           s = "This is cool!";
-           ffi_call(&cif, puts, &rc, values);
-         }
-
-       return 0;
-     }
-
-
-File: libffi.info,  Node: Types,  Next: Multiple ABIs,  Prev: Simple Example,  Up: Using libffi
-
-2.3 Types
-=========
-
-* Menu:
-
-* Primitive Types::             Built-in types.
-* Structures::                  Structure types.
-* Type Example::                Structure type example.
-
-
-File: libffi.info,  Node: Primitive Types,  Next: Structures,  Up: Types
-
-2.3.1 Primitive Types
----------------------
-
-`Libffi' provides a number of built-in type descriptors that can be
-used to describe argument and return types:
-
-`ffi_type_void'
-     The type `void'.  This cannot be used for argument types, only for
-     return values.
-
-`ffi_type_uint8'
-     An unsigned, 8-bit integer type.
-
-`ffi_type_sint8'
-     A signed, 8-bit integer type.
-
-`ffi_type_uint16'
-     An unsigned, 16-bit integer type.
-
-`ffi_type_sint16'
-     A signed, 16-bit integer type.
-
-`ffi_type_uint32'
-     An unsigned, 32-bit integer type.
-
-`ffi_type_sint32'
-     A signed, 32-bit integer type.
-
-`ffi_type_uint64'
-     An unsigned, 64-bit integer type.
-
-`ffi_type_sint64'
-     A signed, 64-bit integer type.
-
-`ffi_type_float'
-     The C `float' type.
-
-`ffi_type_double'
-     The C `double' type.
-
-`ffi_type_uchar'
-     The C `unsigned char' type.
-
-`ffi_type_schar'
-     The C `signed char' type.  (Note that there is not an exact
-     equivalent to the C `char' type in `libffi'; ordinarily you should
-     either use `ffi_type_schar' or `ffi_type_uchar' depending on
-     whether `char' is signed.)
-
-`ffi_type_ushort'
-     The C `unsigned short' type.
-
-`ffi_type_sshort'
-     The C `short' type.
-
-`ffi_type_uint'
-     The C `unsigned int' type.
-
-`ffi_type_sint'
-     The C `int' type.
-
-`ffi_type_ulong'
-     The C `unsigned long' type.
-
-`ffi_type_slong'
-     The C `long' type.
-
-`ffi_type_longdouble'
-     On platforms that have a C `long double' type, this is defined.
-     On other platforms, it is not.
-
-`ffi_type_pointer'
-     A generic `void *' pointer.  You should use this for all pointers,
-     regardless of their real type.
-
-   Each of these is of type `ffi_type', so you must take the address
-when passing to `ffi_prep_cif'.
-
-
-File: libffi.info,  Node: Structures,  Next: Type Example,  Prev: Primitive Types,  Up: Types
-
-2.3.2 Structures
-----------------
-
-Although `libffi' has no special support for unions or bit-fields, it
-is perfectly happy passing structures back and forth.  You must first
-describe the structure to `libffi' by creating a new `ffi_type' object
-for it.
-
- -- ffi_type:
-     The `ffi_type' has the following members:
-    `size_t size'
-          This is set by `libffi'; you should initialize it to zero.
-
-    `unsigned short alignment'
-          This is set by `libffi'; you should initialize it to zero.
-
-    `unsigned short type'
-          For a structure, this should be set to `FFI_TYPE_STRUCT'.
-
-    `ffi_type **elements'
-          This is a `NULL'-terminated array of pointers to `ffi_type'
-          objects.  There is one element per field of the struct.
-
-
-File: libffi.info,  Node: Type Example,  Prev: Structures,  Up: Types
-
-2.3.3 Type Example
-------------------
-
-The following example initializes a `ffi_type' object representing the
-`tm' struct from Linux's `time.h'.
-
-   Here is how the struct is defined:
-
-     struct tm {
-         int tm_sec;
-         int tm_min;
-         int tm_hour;
-         int tm_mday;
-         int tm_mon;
-         int tm_year;
-         int tm_wday;
-         int tm_yday;
-         int tm_isdst;
-         /* Those are for future use. */
-         long int __tm_gmtoff__;
-         __const char *__tm_zone__;
-     };
-
-   Here is the corresponding code to describe this struct to `libffi':
-
-         {
-           ffi_type tm_type;
-           ffi_type *tm_type_elements[12];
-           int i;
-
-           tm_type.size = tm_type.alignment = 0;
-           tm_type.elements = &tm_type_elements;
-
-           for (i = 0; i < 9; i++)
-               tm_type_elements[i] = &ffi_type_sint;
-
-           tm_type_elements[9] = &ffi_type_slong;
-           tm_type_elements[10] = &ffi_type_pointer;
-           tm_type_elements[11] = NULL;
-
-           /* tm_type can now be used to represent tm argument types and
-     	 return types for ffi_prep_cif() */
-         }
-
-
-File: libffi.info,  Node: Multiple ABIs,  Next: The Closure API,  Prev: Types,  Up: Using libffi
-
-2.4 Multiple ABIs
-=================
-
-A given platform may provide multiple different ABIs at once.  For
-instance, the x86 platform has both `stdcall' and `fastcall' functions.
-
-   `libffi' provides some support for this.  However, this is
-necessarily platform-specific.
-
-
-File: libffi.info,  Node: The Closure API,  Next: Closure Example,  Prev: Multiple ABIs,  Up: Using libffi
-
-2.5 The Closure API
-===================
-
-`libffi' also provides a way to write a generic function - a function
-that can accept and decode any combination of arguments.  This can be
-useful when writing an interpreter, or to provide wrappers for
-arbitrary functions.
-
-   This facility is called the "closure API".  Closures are not
-supported on all platforms; you can check the `FFI_CLOSURES' define to
-determine whether they are supported on the current platform.  
-
-   Because closures work by assembling a tiny function at runtime, they
-require special allocation on platforms that have a non-executable
-heap.  Memory management for closures is handled by a pair of functions:
-
- -- Function: void *ffi_closure_alloc (size_t SIZE, void **CODE)
-     Allocate a chunk of memory holding SIZE bytes.  This returns a
-     pointer to the writable address, and sets *CODE to the
-     corresponding executable address.
-
-     SIZE should be sufficient to hold a `ffi_closure' object.
-
- -- Function: void ffi_closure_free (void *WRITABLE)
-     Free memory allocated using `ffi_closure_alloc'.  The argument is
-     the writable address that was returned.
-
-   Once you have allocated the memory for a closure, you must construct
-a `ffi_cif' describing the function call.  Finally you can prepare the
-closure function:
-
- -- Function: ffi_status ffi_prep_closure_loc (ffi_closure *CLOSURE,
-          ffi_cif *CIF, void (*FUN) (ffi_cif *CIF, void *RET, void
-          **ARGS, void *USER_DATA), void *USER_DATA, void *CODELOC)
-     Prepare a closure function.
-
-     CLOSURE is the address of a `ffi_closure' object; this is the
-     writable address returned by `ffi_closure_alloc'.
-
-     CIF is the `ffi_cif' describing the function parameters.
-
-     USER_DATA is an arbitrary datum that is passed, uninterpreted, to
-     your closure function.
-
-     CODELOC is the executable address returned by `ffi_closure_alloc'.
-
-     FUN is the function which will be called when the closure is
-     invoked.  It is called with the arguments:
-    CIF
-          The `ffi_cif' passed to `ffi_prep_closure_loc'.
-
-    RET
-          A pointer to the memory used for the function's return value.
-          FUN must fill this, unless the function is declared as
-          returning `void'.
-
-    ARGS
-          A vector of pointers to memory holding the arguments to the
-          function.
-
-    USER_DATA
-          The same USER_DATA that was passed to `ffi_prep_closure_loc'.
-
-     `ffi_prep_closure_loc' will return `FFI_OK' if everything went ok,
-     and something else on error.
-
-     After calling `ffi_prep_closure_loc', you can cast CODELOC to the
-     appropriate pointer-to-function type.
-
-   You may see old code referring to `ffi_prep_closure'.  This function
-is deprecated, as it cannot handle the need for separate writable and
-executable addresses.
-
-
-File: libffi.info,  Node: Closure Example,  Prev: The Closure API,  Up: Using libffi
-
-2.6 Closure Example
-===================
-
-A trivial example that creates a new `puts' by binding `fputs' with
-`stdin'.
-
-     #include <stdio.h>
-     #include <ffi.h>
-
-     /* Acts like puts with the file given at time of enclosure. */
-     void puts_binding(ffi_cif *cif, unsigned int *ret, void* args[],
-                       FILE *stream)
-     {
-       *ret = fputs(*(char **)args[0], stream);
-     }
-
-     int main()
-     {
-       ffi_cif cif;
-       ffi_type *args[1];
-       ffi_closure *closure;
-
-       int (*bound_puts)(char *);
-       int rc;
-
-       /* Allocate closure and bound_puts */
-       closure = ffi_closure_alloc(sizeof(ffi_closure), &bound_puts);
-
-       if (closure)
-         {
-           /* Initialize the argument info vectors */
-           args[0] = &ffi_type_pointer;
-
-           /* Initialize the cif */
-           if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
-                            &ffi_type_uint, args) == FFI_OK)
-             {
-               /* Initialize the closure, setting stream to stdout */
-               if (ffi_prep_closure_loc(closure, &cif, puts_binding,
-                                        stdout, bound_puts) == FFI_OK)
-                 {
-                   rc = bound_puts("Hello World!");
-                   /* rc now holds the result of the call to fputs */
-                 }
-             }
-         }
-
-       /* Deallocate both closure, and bound_puts */
-       ffi_closure_free(closure);
-
-       return 0;
-     }
-
-
-File: libffi.info,  Node: Missing Features,  Next: Index,  Prev: Using libffi,  Up: Top
-
-3 Missing Features
-******************
-
-`libffi' is missing a few features.  We welcome patches to add support
-for these.
-
-   * Variadic closures.
-
-   * There is no support for bit fields in structures.
-
-   * The closure API is
-
-   * The "raw" API is undocumented.
-
-   Note that variadic support is very new and tested on a relatively
-small number of platforms.
-
-
-File: libffi.info,  Node: Index,  Prev: Missing Features,  Up: Top
-
-Index
-*****
-
- [index ]
-* Menu:
-
-* :                                      Structures.           (line 12)
-* ABI:                                   Introduction.         (line 13)
-* Application Binary Interface:          Introduction.         (line 13)
-* calling convention:                    Introduction.         (line 13)
-* cif:                                   The Basics.           (line 14)
-* closure API:                           The Closure API.      (line 13)
-* closures:                              The Closure API.      (line 13)
-* FFI:                                   Introduction.         (line 31)
-* ffi_call:                              The Basics.           (line 63)
-* ffi_closure_alloc:                     The Closure API.      (line 19)
-* ffi_closure_free:                      The Closure API.      (line 26)
-* FFI_CLOSURES:                          The Closure API.      (line 13)
-* ffi_prep_cif:                          The Basics.           (line 16)
-* ffi_prep_cif_var:                      The Basics.           (line 39)
-* ffi_prep_closure_loc:                  The Closure API.      (line 34)
-* ffi_status <1>:                        The Closure API.      (line 37)
-* ffi_status:                            The Basics.           (line 18)
-* ffi_type:                              Structures.           (line 11)
-* ffi_type_double:                       Primitive Types.      (line 41)
-* ffi_type_float:                        Primitive Types.      (line 38)
-* ffi_type_longdouble:                   Primitive Types.      (line 71)
-* ffi_type_pointer:                      Primitive Types.      (line 75)
-* ffi_type_schar:                        Primitive Types.      (line 47)
-* ffi_type_sint:                         Primitive Types.      (line 62)
-* ffi_type_sint16:                       Primitive Types.      (line 23)
-* ffi_type_sint32:                       Primitive Types.      (line 29)
-* ffi_type_sint64:                       Primitive Types.      (line 35)
-* ffi_type_sint8:                        Primitive Types.      (line 17)
-* ffi_type_slong:                        Primitive Types.      (line 68)
-* ffi_type_sshort:                       Primitive Types.      (line 56)
-* ffi_type_uchar:                        Primitive Types.      (line 44)
-* ffi_type_uint:                         Primitive Types.      (line 59)
-* ffi_type_uint16:                       Primitive Types.      (line 20)
-* ffi_type_uint32:                       Primitive Types.      (line 26)
-* ffi_type_uint64:                       Primitive Types.      (line 32)
-* ffi_type_uint8:                        Primitive Types.      (line 14)
-* ffi_type_ulong:                        Primitive Types.      (line 65)
-* ffi_type_ushort:                       Primitive Types.      (line 53)
-* ffi_type_void:                         Primitive Types.      (line 10)
-* Foreign Function Interface:            Introduction.         (line 31)
-* void <1>:                              The Closure API.      (line 20)
-* void:                                  The Basics.           (line 65)
-
-
-
-Tag Table:
-Node: Top722
-Node: Introduction1470
-Node: Using libffi3106
-Node: The Basics3592
-Node: Simple Example7234
-Node: Types8261
-Node: Primitive Types8544
-Node: Structures10364
-Node: Type Example11224
-Node: Multiple ABIs12447
-Node: The Closure API12818
-Node: Closure Example15762
-Node: Missing Features17321
-Node: Index17774
-
-End Tag Table
diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ffi.c gcc-4.8.1/libffi/src/powerpc/ffi.c
--- gcc-4.8.1.orig/libffi/src/powerpc/ffi.c	2013-02-06 11:32:41.000000000 -0600
+++ gcc-4.8.1/libffi/src/powerpc/ffi.c	2013-06-24 19:09:22.878901000 -0500
@@ -127,6 +127,9 @@
 
   int i;
   ffi_type **ptr;
+#ifndef __NO_FPRS__
+  double double_tmp;
+#endif
   union {
     void **v;
     char **c;
@@ -146,7 +149,6 @@
   gpr_base.u = stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS;
   intarg_count = 0;
 #ifndef __NO_FPRS__
-  double double_tmp;
   fpr_base.d = gpr_base.d - NUM_FPR_ARG_REGISTERS;
   fparg_count = 0;
   copy_space.c = ((flags & FLAG_FP_ARGUMENTS) ? fpr_base.c : gpr_base.c);
@@ -542,11 +544,12 @@
 	    {
 	      char *where = next_arg.c;
 
+#ifndef __LITTLE_ENDIAN__
 	      /* Structures with size less than eight bytes are passed
 		 left-padded.  */
 	      if ((*ptr)->size < 8)
 		where += 8 - (*ptr)->size;
-
+#endif
 	      memcpy (where, *p_argv.c, (*ptr)->size);
 	      next_arg.ul += words;
 	      if (next_arg.ul == gpr_end.ul)
@@ -1208,6 +1211,7 @@
 
 	case FFI_TYPE_SINT8:
 	case FFI_TYPE_UINT8:
+#ifndef __LITTLE_ENDIAN__
 	  /* there are 8 gpr registers used to pass values */
 	  if (ng < 8)
 	    {
@@ -1221,9 +1225,10 @@
 	      pst++;
 	    }
 	  break;
-
+#endif
 	case FFI_TYPE_SINT16:
 	case FFI_TYPE_UINT16:
+#ifndef __LITTLE_ENDIAN__
 	  /* there are 8 gpr registers used to pass values */
 	  if (ng < 8)
 	    {
@@ -1237,7 +1242,7 @@
 	      pst++;
 	    }
 	  break;
-
+#endif
 	case FFI_TYPE_SINT32:
 	case FFI_TYPE_UINT32:
 	case FFI_TYPE_POINTER:
@@ -1367,22 +1372,25 @@
 	{
 	case FFI_TYPE_SINT8:
 	case FFI_TYPE_UINT8:
+#ifndef __LITTLE_ENDIAN__
 	  avalue[i] = (char *) pst + 7;
 	  pst++;
 	  break;
-
+#endif
 	case FFI_TYPE_SINT16:
 	case FFI_TYPE_UINT16:
+#ifndef __LITTLE_ENDIAN__
 	  avalue[i] = (char *) pst + 6;
 	  pst++;
 	  break;
-
+#endif
 	case FFI_TYPE_SINT32:
 	case FFI_TYPE_UINT32:
+#ifndef __LITTLE_ENDIAN__
 	  avalue[i] = (char *) pst + 4;
 	  pst++;
 	  break;
-
+#endif
 	case FFI_TYPE_SINT64:
 	case FFI_TYPE_UINT64:
 	case FFI_TYPE_POINTER:
@@ -1391,11 +1399,13 @@
 	  break;
 
 	case FFI_TYPE_STRUCT:
+#ifndef __LITTLE_ENDIAN__
 	  /* Structures with size less than eight bytes are passed
 	     left-padded.  */
 	  if (arg_types[i]->size < 8)
 	    avalue[i] = (char *) pst + 8 - arg_types[i]->size;
 	  else
+#endif
 	    avalue[i] = pst;
 	  pst += (arg_types[i]->size + 7) / 8;
 	  break;
diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/linux64_closure.S gcc-4.8.1/libffi/src/powerpc/linux64_closure.S
--- gcc-4.8.1.orig/libffi/src/powerpc/linux64_closure.S	2012-10-30 22:45:34.000000000 -0500
+++ gcc-4.8.1/libffi/src/powerpc/linux64_closure.S	2013-06-24 19:09:22.878901000 -0500
@@ -132,7 +132,11 @@
 	blr
 	nop
 # case FFI_TYPE_INT
+#ifdef __LITTLE_ENDIAN__
+	lwa %r3, 112+0(%r1)
+#else
 	lwa %r3, 112+4(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
@@ -152,33 +156,57 @@
 	lfd %f2, 112+8(%r1)
 	b .Lfinish
 # case FFI_TYPE_UINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3, 112+0(%r1)
+#else
 	lbz %r3, 112+7(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_SINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3, 112+0(%r1)
+#else
 	lbz %r3, 112+7(%r1)
+#endif
 	extsb %r3,%r3
 	mtlr %r0
 	b .Lfinish
 # case FFI_TYPE_UINT16
+#ifdef __LITTLE_ENDIAN__
+	lhz %r3, 112+0(%r1)
+#else
 	lhz %r3, 112+6(%r1)
+#endif
 	mtlr %r0
 .Lfinish:
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_SINT16
+#ifdef __LITTLE_ENDIAN__
+	lha %r3, 112+0(%r1)
+#else
 	lha %r3, 112+6(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_UINT32
+#ifdef __LITTLE_ENDIAN__
+	lwz %r3, 112+0(%r1)
+#else
 	lwz %r3, 112+4(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
 # case FFI_TYPE_SINT32
+#ifdef __LITTLE_ENDIAN__
+	lwa %r3, 112+0(%r1)
+#else
 	lwa %r3, 112+4(%r1)
+#endif
 	mtlr %r0
 	addi %r1, %r1, 240
 	blr
diff -Naur gcc-4.8.1.orig/libffi/src/powerpc/ppc_closure.S gcc-4.8.1/libffi/src/powerpc/ppc_closure.S
--- gcc-4.8.1.orig/libffi/src/powerpc/ppc_closure.S	2012-03-04 15:11:09.000000000 -0600
+++ gcc-4.8.1/libffi/src/powerpc/ppc_closure.S	2013-06-24 19:09:22.878901000 -0500
@@ -159,25 +159,41 @@
 #endif
 
 # case FFI_TYPE_UINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3,112+0(%r1)
+#else
 	lbz %r3,112+3(%r1)
+#endif
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
 
 # case FFI_TYPE_SINT8
+#ifdef __LITTLE_ENDIAN__
+	lbz %r3,112+0(%r1)
+#else
 	lbz %r3,112+3(%r1)
+#endif
 	extsb %r3,%r3
 	mtlr %r0
 	b .Lfinish
 
 # case FFI_TYPE_UINT16
+#ifdef __LITTLE_ENDIAN__
+	lhz %r3,112+0(%r1)
+#else
 	lhz %r3,112+2(%r1)
+#endif
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
 
 # case FFI_TYPE_SINT16
+#ifdef __LITTLE_ENDIAN__
+	lha %r3,112+0(%r1)
+#else
 	lha %r3,112+2(%r1)
+#endif
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
@@ -239,9 +255,15 @@
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 3. Three byte struct.
 	lwz %r3,112+0(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	addi %r1,%r1,144
+	blr
+#else
 	srwi %r3,%r3,8
 	mtlr %r0
 	b .Lfinish
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 4. Four byte struct.
 	lwz %r3,112+0(%r1)
@@ -252,20 +274,35 @@
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 5. Five byte struct.
 	lwz %r3,112+0(%r1)
 	lwz %r4,112+4(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	b .Lfinish
+#else
 	li %r5,24
 	b .Lstruct567
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 6. Six byte struct.
 	lwz %r3,112+0(%r1)
 	lwz %r4,112+4(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	b .Lfinish
+#else
 	li %r5,16
 	b .Lstruct567
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 7. Seven byte struct.
 	lwz %r3,112+0(%r1)
 	lwz %r4,112+4(%r1)
+#ifdef __LITTLE_ENDIAN__
+	mtlr %r0
+	b .Lfinish
+#else
 	li %r5,8
 	b .Lstruct567
+#endif
 
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 8. Eight byte struct.
 	lwz %r3,112+0(%r1)
@@ -273,6 +310,7 @@
 	mtlr %r0
 	b .Lfinish
 
+#ifndef __LITTLE_ENDIAN__
 .Lstruct567:
 	subfic %r6,%r5,32
 	srw %r4,%r4,%r5
@@ -282,6 +320,7 @@
 	mtlr %r0
 	addi %r1,%r1,144
 	blr
+#endif
 
 .Luint128:
 	lwz %r6,112+12(%r1)
diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sfp-machine.h gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h
--- gcc-4.8.1.orig/libgcc/config/aarch64/sfp-machine.h	2013-02-04 13:06:20.000000000 -0600
+++ gcc-4.8.1/libgcc/config/aarch64/sfp-machine.h	2013-08-01 16:15:18.425750000 -0500
@@ -2,21 +2,26 @@
    Copyright (C) 2009-2013 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
-   This file is part of GCC.
+This file is part of GCC.
 
-   GCC is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 #define _FP_W_TYPE_SIZE		64
 #define _FP_W_TYPE		unsigned long
diff -Naur gcc-4.8.1.orig/libgcc/config/aarch64/sync-cache.c gcc-4.8.1/libgcc/config/aarch64/sync-cache.c
--- gcc-4.8.1.orig/libgcc/config/aarch64/sync-cache.c	2013-03-01 08:01:58.000000000 -0600
+++ gcc-4.8.1/libgcc/config/aarch64/sync-cache.c	2013-08-01 16:15:18.425750000 -0500
@@ -2,21 +2,26 @@
    Copyright (C) 2012-2013 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
-   This file is part of GCC.
+This file is part of GCC.
 
-   GCC is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 void __aarch64_sync_cache_range (const void *, const void *);
 
diff -Naur gcc-4.8.1.orig/libgcc/config/avr/lib1funcs-fixed.S gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S
--- gcc-4.8.1.orig/libgcc/config/avr/lib1funcs-fixed.S	2013-02-12 08:55:16.000000000 -0600
+++ gcc-4.8.1/libgcc/config/avr/lib1funcs-fixed.S	2013-07-19 06:15:26.382992000 -0500
@@ -1464,12 +1464,13 @@
     ;; Add-Saturate 2^{-RP-1}
     add     A0, C0
     brvc 0f
-    ldi     A0, 0x7f
+    ldi     C0, 0x7f
+    rjmp 9f
 0:  ;; Mask out bits beyond RP
     lsl     C0
     neg     C0
     and     C0, A0
-    mov     C1, __tmp_reg__
+9:  mov     C1, __tmp_reg__
     ret
 ENDF  __roundqq3
 #endif /* L_roundqq3 */
@@ -1488,12 +1489,13 @@
     ;; Add-Saturate 2^{-RP-1}
     add     A0, C0
     brcc 0f
-    ldi     A0, 0xff
+    ldi     C0, 0xff
+    rjmp 9f
 0:  ;; Mask out bits beyond RP
     lsl     C0
     neg     C0
     and     C0, A0
-    mov     C1, __tmp_reg__
+9:  mov     C1, __tmp_reg__
     ret
 ENDF  __rounduqq3
 #endif /* L_rounduqq3 */
@@ -1565,16 +1567,17 @@
 
 DEFUN  __round_s2_const
     brvc 2f
-    ldi     A1, 0x7f
+    ldi     C1, 0x7f
     rjmp 1f
     ;; FALLTHRU (Barrier)
 ENDF  __round_s2_const
 
 DEFUN __round_u2_const
     brcc 2f
-    ldi     A1, 0xff
+    ldi     C1, 0xff
 1:
-    ldi     A0, 0xff
+    ldi     C0, 0xff
+    rjmp 9f
 2:
     ;; Saturation is performed now.
     ;; Currently, we have C[] = 2^{-RP-1}
@@ -1586,7 +1589,7 @@
     ;; Clear the bits beyond the rounding point.
     and     C0, A0
     and     C1, A1
-    ret
+9:  ret
 ENDF  __round_u2_const
 
 #endif /* L_round_2_const */
@@ -1681,18 +1684,19 @@
 
 DEFUN  __round_s4_const
     brvc 2f
-    ldi     A3, 0x7f
+    ldi     C3, 0x7f
     rjmp 1f
     ;; FALLTHRU (Barrier)
 ENDF  __round_s4_const
 
 DEFUN __round_u4_const
     brcc 2f
-    ldi     A3, 0xff
+    ldi     C3, 0xff
 1:
-    ldi     A2, 0xff
-    ldi     A1, 0xff
-    ldi     A0, 0xff
+    ldi     C2, 0xff
+    ldi     C1, 0xff
+    ldi     C0, 0xff
+    rjmp 9f
 2:
     ;; Saturation is performed now.
     ;; Currently, we have C[] = 2^{-RP-1}
@@ -1707,7 +1711,7 @@
     and     C1, A1
     and     C2, A2
     and     C3, A3
-    ret
+9:  ret
 ENDF  __round_u4_const
 
 #endif /* L_round_4_const */
@@ -1847,12 +1851,13 @@
 1:  ;; Unsigned
     brcc    3f
     ;; Unsigned overflow: A[] = 0xff...
-2:  ldi     A7, 0xff
-    ldi     A6, 0xff
-    wmov    A0, A6
-    wmov    A2, A6
-    wmov    A4, A6
-    bld     A7, 7
+2:  ldi     C7, 0xff
+    ldi     C6, 0xff
+    wmov    C0, C6
+    wmov    C2, C6
+    wmov    C4, C6
+    bld     C7, 7
+    rjmp 9f
 3:
     ;;  C[] = -C[] - C[]
     push    A0
@@ -1869,7 +1874,7 @@
     and     C5, A5
     and     C6, A6
     and     C7, A7
-    ;; Epilogue
+9:  ;; Epilogue
     pop r29
     pop r28
     pop r17
diff -Naur gcc-4.8.1.orig/libgcc/config/i386/cpuinfo.c gcc-4.8.1/libgcc/config/i386/cpuinfo.c
--- gcc-4.8.1.orig/libgcc/config/i386/cpuinfo.c	2013-03-07 19:02:29.000000000 -0600
+++ gcc-4.8.1/libgcc/config/i386/cpuinfo.c	2013-08-01 16:15:18.425750000 -0500
@@ -14,9 +14,14 @@
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>. */
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 #include "cpuid.h"
 #include "tsystem.h"
diff -Naur gcc-4.8.1.orig/libgcc/config/ia64/unwind-ia64.h gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h
--- gcc-4.8.1.orig/libgcc/config/ia64/unwind-ia64.h	2013-02-04 13:06:20.000000000 -0600
+++ gcc-4.8.1/libgcc/config/ia64/unwind-ia64.h	2013-08-01 16:15:18.425750000 -0500
@@ -2,21 +2,26 @@
    Contributed by Andrew MacLeod  <amacleod@cygnus.com>
                   Andrew Haley  <aph@cygnus.com>
 
-   This file is part of GCC.
+This file is part of GCC.
 
-   GCC is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 #ifdef __VMS__
 /* On VMS, long is a 32 bit type.  */
diff -Naur gcc-4.8.1.orig/libgcc/config/mips/vr4120-div.S gcc-4.8.1/libgcc/config/mips/vr4120-div.S
--- gcc-4.8.1.orig/libgcc/config/mips/vr4120-div.S	2013-02-04 13:06:20.000000000 -0600
+++ gcc-4.8.1/libgcc/config/mips/vr4120-div.S	2013-08-01 16:15:18.425750000 -0500
@@ -3,18 +3,23 @@
 
 This file is part of GCC.
 
-GCC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-GCC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
 
-You should have received a copy of the GNU General Public License
-	along with GCC; see the file COPYING3.  If not see
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
 /* This file contains functions which implement divsi3 and modsi3 for
diff -Naur gcc-4.8.1.orig/libgcc/config/rs6000/ibm-ldouble.c gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c
--- gcc-4.8.1.orig/libgcc/config/rs6000/ibm-ldouble.c	2013-02-04 13:06:20.000000000 -0600
+++ gcc-4.8.1/libgcc/config/rs6000/ibm-ldouble.c	2013-06-18 20:18:38.348158000 -0500
@@ -42,10 +42,10 @@
    represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a
    NaN is don't-care.
 
-   This code currently assumes big-endian.  */
+   This code currently assumes the most significant double is in
+   the lower numbered register or lower addressed memory.  */
 
-#if (!defined (__LITTLE_ENDIAN__) \
-     && (defined (__MACH__) || defined (__powerpc__) || defined (_AIX)))
+#if defined (__MACH__) || defined (__powerpc__) || defined (_AIX)
 
 #define fabs(x) __builtin_fabs(x)
 #define isless(x, y) __builtin_isless (x, y)
diff -Naur gcc-4.8.1.orig/libgcc/config/s390/linux-unwind.h gcc-4.8.1/libgcc/config/s390/linux-unwind.h
--- gcc-4.8.1.orig/libgcc/config/s390/linux-unwind.h	2013-02-04 13:06:20.000000000 -0600
+++ gcc-4.8.1/libgcc/config/s390/linux-unwind.h	2013-07-31 02:24:06.307503000 -0500
@@ -31,6 +31,8 @@
 s390_fallback_frame_state (struct _Unwind_Context *context,
 			   _Unwind_FrameState *fs)
 {
+  static const unsigned char dwarf_to_fpr_map[16] =
+    { 0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15 };
   unsigned char *pc = context->ra;
   long new_cfa;
   int i;
@@ -112,7 +114,7 @@
     {
       fs->regs.reg[16+i].how = REG_SAVED_OFFSET;
       fs->regs.reg[16+i].loc.offset =
-	(long)&regs->fprs[i] - new_cfa;
+	(long)&regs->fprs[dwarf_to_fpr_map[i]] - new_cfa;
     }
 
   /* Load return addr from PSW into dummy register 32.  */
diff -Naur gcc-4.8.1.orig/libgcc/config/tilepro/atomic.h gcc-4.8.1/libgcc/config/tilepro/atomic.h
--- gcc-4.8.1.orig/libgcc/config/tilepro/atomic.h	2013-02-04 13:06:20.000000000 -0600
+++ gcc-4.8.1/libgcc/config/tilepro/atomic.h	2013-06-08 11:30:50.617938000 -0500
@@ -92,8 +92,6 @@
    compare-and-exchange routine, so may be potentially less efficient.  */
 #endif
 
-#include <stdint.h>
-#include <features.h>
 #ifdef __tilegx__
 #include <arch/spr_def.h>
 #else
@@ -122,9 +120,9 @@
 
 /* 64-bit integer compare-and-exchange.  */
 static __inline __attribute__ ((always_inline))
-     int64_t arch_atomic_val_compare_and_exchange_8 (volatile int64_t * mem,
-						     int64_t oldval,
-						     int64_t newval)
+     long long arch_atomic_val_compare_and_exchange_8 (volatile long long
+						       *mem, long long oldval,
+						       long long newval)
 {
 #ifdef __tilegx__
   __insn_mtspr (SPR_CMPEXCH_VALUE, oldval);
@@ -139,7 +137,7 @@
 			"R04" (newval_lo), "R05" (newval_hi),
 			"m" (*mem):"r20", "r21", "r22", "r23", "r24", "r25",
 			"r26", "r27", "r28", "r29", "memory");
-  return ((uint64_t) result_hi) << 32 | result_lo;
+  return ((long long) result_hi) << 32 | result_lo;
 #endif
 }
 
@@ -150,11 +148,11 @@
 
 
 #define arch_atomic_val_compare_and_exchange(mem, o, n)                 \
-  ({                                                                    \
+  __extension__ ({                                                      \
     (__typeof(*(mem)))(__typeof(*(mem)-*(mem)))                         \
       ((sizeof(*(mem)) == 8) ?                                          \
        arch_atomic_val_compare_and_exchange_8(                          \
-         (volatile int64_t*)(mem), (__typeof((o)-(o)))(o),              \
+         (volatile long long*)(mem), (__typeof((o)-(o)))(o),            \
          (__typeof((n)-(n)))(n)) :                                      \
        (sizeof(*(mem)) == 4) ?                                          \
        arch_atomic_val_compare_and_exchange_4(                          \
@@ -164,7 +162,7 @@
   })
 
 #define arch_atomic_bool_compare_and_exchange(mem, o, n)                \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(o) __o = (o);                                              \
     __builtin_expect(                                                   \
       __o == arch_atomic_val_compare_and_exchange((mem), __o, (n)), 1); \
@@ -174,7 +172,7 @@
 /* Loop with compare_and_exchange until we guess the correct value.
    Normally "expr" will be an expression using __old and __value.  */
 #define __arch_atomic_update_cmpxchg(mem, value, expr)                  \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(value) __value = (value);                                  \
     __typeof(*(mem)) *__mem = (mem), __old = *__mem, __guess;           \
     do {                                                                \
@@ -189,12 +187,14 @@
 /* Generic atomic op with 8- or 4-byte variant.
    The _mask, _addend, and _expr arguments are ignored on tilegx.  */
 #define __arch_atomic_update(mem, value, op, _mask, _addend, _expr)     \
-  ({                                                                    \
+  __extension__ ({                                                      \
     ((__typeof(*(mem)))                                                 \
      ((sizeof(*(mem)) == 8) ? (__typeof(*(mem)-*(mem)))__insn_##op(     \
-        (void *)(mem), (int64_t)(__typeof((value)-(value)))(value)) :   \
+        (volatile void *)(mem),                                         \
+        (long long)(__typeof((value)-(value)))(value)) :                \
       (sizeof(*(mem)) == 4) ? (int)__insn_##op##4(                      \
-        (void *)(mem), (int32_t)(__typeof((value)-(value)))(value)) :   \
+        (volatile void *)(mem),                                         \
+        (int)(__typeof((value)-(value)))(value)) :                      \
       __arch_atomic_error_bad_argument_size()));                        \
   })
 
@@ -224,7 +224,7 @@
 /* Generic atomic op with 8- or 4-byte variant.
    The _op argument is ignored on tilepro.  */
 #define __arch_atomic_update(mem, value, _op, mask, addend, expr)       \
-  ({                                                                    \
+  __extension__ ({                                                      \
     (__typeof(*(mem)))(__typeof(*(mem)-*(mem)))                         \
       ((sizeof(*(mem)) == 8) ?                                          \
        __arch_atomic_update_cmpxchg((mem), (value), (expr)) :           \
@@ -263,13 +263,13 @@
   __arch_atomic_update_cmpxchg(mem, mask, ~(__old & __value))
 
 #define arch_atomic_bit_set(mem, bit)                                   \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit);             \
     __mask & arch_atomic_or((mem), __mask);                             \
   })
 
 #define arch_atomic_bit_clear(mem, bit)                                 \
-  ({                                                                    \
+  __extension__ ({                                                      \
     __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit);             \
     __mask & arch_atomic_and((mem), ~__mask);                           \
   })
diff -Naur gcc-4.8.1.orig/libgcc/config.host gcc-4.8.1/libgcc/config.host
--- gcc-4.8.1.orig/libgcc/config.host	2013-02-04 13:06:20.000000000 -0600
+++ gcc-4.8.1/libgcc/config.host	2013-07-09 16:35:57.248336000 -0500
@@ -316,7 +316,7 @@
 	md_unwind_header=alpha/vms-unwind.h
 	;;
 arm-wrs-vxworks)
-	tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-fdpbit"
+	tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
 	extra_parts="$extra_parts crti.o crtn.o"
 	;;
 arm*-*-netbsdelf*)
@@ -834,7 +834,7 @@
 	tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
 	;;
 powerpc-*-eabispe*)
-	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic"
+	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
 	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
 	;;
 powerpc-*-eabisimaltivec*)
@@ -865,7 +865,7 @@
 	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
 	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
 	;;
-powerpc-*-linux* | powerpc64-*-linux*)
+powerpc*-*-linux*)
 	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-linux t-softfp-sfdf t-softfp-excl t-dfprules rs6000/t-ppc64-fp t-softfp t-slibgcc-libgcc"
 	extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o"
 	md_unwind_header=rs6000/linux-unwind.h
diff -Naur gcc-4.8.1.orig/libgcc/unwind-dw2.c gcc-4.8.1/libgcc/unwind-dw2.c
--- gcc-4.8.1.orig/libgcc/unwind-dw2.c	2013-03-14 04:13:36.000000000 -0500
+++ gcc-4.8.1/libgcc/unwind-dw2.c	2013-05-31 18:21:46.982106000 -0500
@@ -59,6 +59,35 @@
 #define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
 #endif
 
+/* ??? For the public function interfaces, we tend to gcc_assert that the
+   column numbers are in range.  For the dwarf2 unwind info this does happen,
+   although so far in a case that doesn't actually matter.
+
+   See PR49146, in which a call from x86_64 ms abi to x86_64 unix abi stores
+   the call-saved xmm registers and annotates them.  We havn't bothered
+   providing support for the xmm registers for the x86_64 port primarily
+   because the 64-bit windows targets don't use dwarf2 unwind, using sjlj or
+   SEH instead.  Adding the support for unix targets would generally be a
+   waste.  However, some runtime libraries supplied with ICC do contain such
+   an unorthodox transition, as well as the unwind info to match.  This loss
+   of register restoration doesn't matter in practice, because the exception
+   is caught in the native unix abi, where all of the xmm registers are 
+   call clobbered.
+
+   Ideally, we'd record some bit to notice when we're failing to restore some
+   register recorded in the unwind info, but to do that we need annotation on
+   the unix->ms abi edge, so that we know when the register data may be
+   discarded.  And since this edge is also within the ICC library, we're
+   unlikely to be able to get the new annotation.
+
+   Barring a magic solution to restore the ms abi defined 128-bit xmm registers
+   (as distictly opposed to the full runtime width) without causing extra
+   overhead for normal unix abis, the best solution seems to be to simply
+   ignore unwind data for unknown columns.  */
+
+#define UNWIND_COLUMN_IN_RANGE(x) \
+    __builtin_expect((x) <= DWARF_FRAME_REGISTERS, 1)
+
 #ifdef REG_VALUE_IN_UNWIND_CONTEXT
 typedef _Unwind_Word _Unwind_Context_Reg_Val;
 
@@ -939,14 +968,19 @@
 	  reg = insn & 0x3f;
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Sword) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	}
       else if ((insn & 0xc0) == DW_CFA_restore)
 	{
 	  reg = insn & 0x3f;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how = REG_UNSAVED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNSAVED;
 	}
       else switch (insn)
 	{
@@ -977,26 +1011,35 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Sword) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_restore_extended:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  /* FIXME, this is wrong; the CIE might have said that the
 	     register was saved somewhere.  */
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN(reg)].how = REG_UNSAVED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNSAVED;
 	  break;
 
 	case DW_CFA_same_value:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN(reg)].how = REG_UNSAVED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNSAVED;
 	  break;
 
 	case DW_CFA_undefined:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN(reg)].how = REG_UNDEFINED;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    fs->regs.reg[reg].how = REG_UNDEFINED;
 	  break;
 
 	case DW_CFA_nop:
@@ -1007,9 +1050,12 @@
 	    _uleb128_t reg2;
 	    insn_ptr = read_uleb128 (insn_ptr, &reg);
 	    insn_ptr = read_uleb128 (insn_ptr, &reg2);
-	    fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how = REG_SAVED_REG;
-	    fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.reg =
-	      (_Unwind_Word)reg2;
+	    reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	    if (UNWIND_COLUMN_IN_RANGE (reg))
+	      {
+	        fs->regs.reg[reg].how = REG_SAVED_REG;
+	        fs->regs.reg[reg].loc.reg = (_Unwind_Word)reg2;
+	      }
 	  }
 	  break;
 
@@ -1067,8 +1113,12 @@
 
 	case DW_CFA_expression:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how = REG_SAVED_EXP;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.exp = insn_ptr;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_EXP;
+	      fs->regs.reg[reg].loc.exp = insn_ptr;
+	    }
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  insn_ptr += utmp;
 	  break;
@@ -1078,9 +1128,12 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_sleb128 (insn_ptr, &stmp);
 	  offset = stmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_def_cfa_sf:
@@ -1103,25 +1156,34 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Sword) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_VAL_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_VAL_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_val_offset_sf:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_sleb128 (insn_ptr, &stmp);
 	  offset = stmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_VAL_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_VAL_OFFSET;
+	      fs->regs.reg[reg].loc.offset = offset;
+	    }
 	  break;
 
 	case DW_CFA_val_expression:
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_VAL_EXP;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.exp = insn_ptr;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_VAL_EXP;
+	      fs->regs.reg[reg].loc.exp = insn_ptr;
+	    }
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  insn_ptr += utmp;
 	  break;
@@ -1147,9 +1209,12 @@
 	  insn_ptr = read_uleb128 (insn_ptr, &reg);
 	  insn_ptr = read_uleb128 (insn_ptr, &utmp);
 	  offset = (_Unwind_Word) utmp * fs->data_align;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].how
-	    = REG_SAVED_OFFSET;
-	  fs->regs.reg[DWARF_REG_TO_UNWIND_COLUMN (reg)].loc.offset = -offset;
+	  reg = DWARF_REG_TO_UNWIND_COLUMN (reg);
+	  if (UNWIND_COLUMN_IN_RANGE (reg))
+	    {
+	      fs->regs.reg[reg].how = REG_SAVED_OFFSET;
+	      fs->regs.reg[reg].loc.offset = -offset;
+	    }
 	  break;
 
 	default:
diff -Naur gcc-4.8.1.orig/libgfortran/config/fpu-387.h gcc-4.8.1/libgfortran/config/fpu-387.h
--- gcc-4.8.1.orig/libgfortran/config/fpu-387.h	2013-01-14 12:20:58.000000000 -0600
+++ gcc-4.8.1/libgfortran/config/fpu-387.h	2013-06-21 08:25:46.124005000 -0500
@@ -73,7 +73,7 @@
 
       /* We need a single SSE instruction here so the handler can safely skip
 	 over it.  */
-      __asm__ volatile ("movaps %xmm0,%xmm0");
+      __asm__ __volatile__ ("movaps\t%xmm0,%xmm0");
 
       sigaction (SIGILL, &oact, NULL);
 
@@ -95,42 +95,42 @@
 #define _FPU_MASK_OM  0x08
 #define _FPU_MASK_UM  0x10
 #define _FPU_MASK_PM  0x20
+#define _FPU_MASK_ALL 0x3f
+
+#define _FPU_EX_ALL   0x3f
 
 void set_fpu (void)
 {
+  int excepts = 0;
   unsigned short cw;
 
-  asm volatile ("fnstcw %0" : "=m" (cw));
+  __asm__ __volatile__ ("fstcw\t%0" : "=m" (cw));
 
-  cw |= (_FPU_MASK_IM | _FPU_MASK_DM | _FPU_MASK_ZM | _FPU_MASK_OM
-	 | _FPU_MASK_UM | _FPU_MASK_PM);
+  if (options.fpe & GFC_FPE_INVALID) excepts |= _FPU_MASK_IM;
+  if (options.fpe & GFC_FPE_DENORMAL) excepts |= _FPU_MASK_DM;
+  if (options.fpe & GFC_FPE_ZERO) excepts |= _FPU_MASK_ZM;
+  if (options.fpe & GFC_FPE_OVERFLOW) excepts |= _FPU_MASK_OM;
+  if (options.fpe & GFC_FPE_UNDERFLOW) excepts |= _FPU_MASK_UM;
+  if (options.fpe & GFC_FPE_INEXACT) excepts |= _FPU_MASK_PM;
 
-  if (options.fpe & GFC_FPE_INVALID) cw &= ~_FPU_MASK_IM;
-  if (options.fpe & GFC_FPE_DENORMAL) cw &= ~_FPU_MASK_DM;
-  if (options.fpe & GFC_FPE_ZERO) cw &= ~_FPU_MASK_ZM;
-  if (options.fpe & GFC_FPE_OVERFLOW) cw &= ~_FPU_MASK_OM;
-  if (options.fpe & GFC_FPE_UNDERFLOW) cw &= ~_FPU_MASK_UM;
-  if (options.fpe & GFC_FPE_INEXACT) cw &= ~_FPU_MASK_PM;
+  cw |= _FPU_MASK_ALL;
+  cw &= ~excepts;
 
-  asm volatile ("fldcw %0" : : "m" (cw));
+  __asm__ __volatile__ ("fnclex\n\tfldcw\t%0" : : "m" (cw));
 
   if (has_sse())
     {
       unsigned int cw_sse;
 
-      asm volatile ("%vstmxcsr %0" : "=m" (cw_sse));
+      __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (cw_sse));
+
+      /* The SSE exception masks are shifted by 7 bits.  */
+      cw_sse |= _FPU_MASK_ALL << 7;
+      cw_sse &= ~(excepts << 7);
 
-      cw_sse &= 0xffff0000;
-      cw_sse |= (_FPU_MASK_IM | _FPU_MASK_DM | _FPU_MASK_ZM | _FPU_MASK_OM
-		 | _FPU_MASK_UM | _FPU_MASK_PM ) << 7;
-
-      if (options.fpe & GFC_FPE_INVALID) cw_sse &= ~(_FPU_MASK_IM << 7);
-      if (options.fpe & GFC_FPE_DENORMAL) cw_sse &= ~(_FPU_MASK_DM << 7);
-      if (options.fpe & GFC_FPE_ZERO) cw_sse &= ~(_FPU_MASK_ZM << 7);
-      if (options.fpe & GFC_FPE_OVERFLOW) cw_sse &= ~(_FPU_MASK_OM << 7);
-      if (options.fpe & GFC_FPE_UNDERFLOW) cw_sse &= ~(_FPU_MASK_UM << 7);
-      if (options.fpe & GFC_FPE_INEXACT) cw_sse &= ~(_FPU_MASK_PM << 7);
+      /* Clear stalled exception flags.  */
+      cw_sse &= ~_FPU_EX_ALL;
 
-      asm volatile ("%vldmxcsr %0" : : "m" (cw_sse));
+      __asm__ __volatile__ ("%vldmxcsr\t%0" : : "m" (cw_sse));
     }
 }
diff -Naur gcc-4.8.1.orig/libgo/configure gcc-4.8.1/libgo/configure
--- gcc-4.8.1.orig/libgo/configure	2013-02-11 13:03:04.000000000 -0600
+++ gcc-4.8.1/libgo/configure	2013-06-18 18:50:42.020320000 -0500
@@ -2496,7 +2496,7 @@
 ac_config_headers="$ac_config_headers config.h"
 
 
-libtool_VERSION=3:1:0
+libtool_VERSION=4:0:0
 
 
 # Default to --enable-multilib
diff -Naur gcc-4.8.1.orig/libgo/configure.ac gcc-4.8.1/libgo/configure.ac
--- gcc-4.8.1.orig/libgo/configure.ac	2013-02-11 13:03:04.000000000 -0600
+++ gcc-4.8.1/libgo/configure.ac	2013-06-18 18:50:42.020320000 -0500
@@ -11,7 +11,7 @@
 AC_CONFIG_SRCDIR(Makefile.am)
 AC_CONFIG_HEADER(config.h)
 
-libtool_VERSION=3:1:0
+libtool_VERSION=4:0:0
 AC_SUBST(libtool_VERSION)
 
 AM_ENABLE_MULTILIB(, ..)
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/common.go gcc-4.8.1/libgo/go/archive/tar/common.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/common.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/archive/tar/common.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,12 +9,14 @@
 // References:
 //   http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5
 //   http://www.gnu.org/software/tar/manual/html_node/Standard.html
+//   http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html
 package tar
 
 import (
 	"errors"
 	"fmt"
 	"os"
+	"path"
 	"time"
 )
 
@@ -33,6 +35,8 @@
 	TypeCont          = '7'    // reserved
 	TypeXHeader       = 'x'    // extended header
 	TypeXGlobalHeader = 'g'    // global extended header
+	TypeGNULongName   = 'L'    // Next file has a long name
+	TypeGNULongLink   = 'K'    // Next file symlinks to a file w/ a long name
 )
 
 // A Header represents a single header in a tar archive.
@@ -54,55 +58,172 @@
 	ChangeTime time.Time // status change time
 }
 
+// File name constants from the tar spec.
+const (
+	fileNameSize       = 100 // Maximum number of bytes in a standard tar name.
+	fileNamePrefixSize = 155 // Maximum number of ustar extension bytes.
+)
+
+// FileInfo returns an os.FileInfo for the Header.
+func (h *Header) FileInfo() os.FileInfo {
+	return headerFileInfo{h}
+}
+
+// headerFileInfo implements os.FileInfo.
+type headerFileInfo struct {
+	h *Header
+}
+
+func (fi headerFileInfo) Size() int64        { return fi.h.Size }
+func (fi headerFileInfo) IsDir() bool        { return fi.Mode().IsDir() }
+func (fi headerFileInfo) ModTime() time.Time { return fi.h.ModTime }
+func (fi headerFileInfo) Sys() interface{}   { return fi.h }
+
+// Name returns the base name of the file.
+func (fi headerFileInfo) Name() string {
+	if fi.IsDir() {
+		return path.Clean(fi.h.Name)
+	}
+	return fi.h.Name
+}
+
+// Mode returns the permission and mode bits for the headerFileInfo.
+func (fi headerFileInfo) Mode() (mode os.FileMode) {
+	// Set file permission bits.
+	mode = os.FileMode(fi.h.Mode).Perm()
+
+	// Set setuid, setgid and sticky bits.
+	if fi.h.Mode&c_ISUID != 0 {
+		// setuid
+		mode |= os.ModeSetuid
+	}
+	if fi.h.Mode&c_ISGID != 0 {
+		// setgid
+		mode |= os.ModeSetgid
+	}
+	if fi.h.Mode&c_ISVTX != 0 {
+		// sticky
+		mode |= os.ModeSticky
+	}
+
+	// Set file mode bits.
+	// clear perm, setuid, setgid and sticky bits.
+	m := os.FileMode(fi.h.Mode) &^ 07777
+	if m == c_ISDIR {
+		// directory
+		mode |= os.ModeDir
+	}
+	if m == c_ISFIFO {
+		// named pipe (FIFO)
+		mode |= os.ModeNamedPipe
+	}
+	if m == c_ISLNK {
+		// symbolic link
+		mode |= os.ModeSymlink
+	}
+	if m == c_ISBLK {
+		// device file
+		mode |= os.ModeDevice
+	}
+	if m == c_ISCHR {
+		// Unix character device
+		mode |= os.ModeDevice
+		mode |= os.ModeCharDevice
+	}
+	if m == c_ISSOCK {
+		// Unix domain socket
+		mode |= os.ModeSocket
+	}
+
+	switch fi.h.Typeflag {
+	case TypeLink, TypeSymlink:
+		// hard link, symbolic link
+		mode |= os.ModeSymlink
+	case TypeChar:
+		// character device node
+		mode |= os.ModeDevice
+		mode |= os.ModeCharDevice
+	case TypeBlock:
+		// block device node
+		mode |= os.ModeDevice
+	case TypeDir:
+		// directory
+		mode |= os.ModeDir
+	case TypeFifo:
+		// fifo node
+		mode |= os.ModeNamedPipe
+	}
+
+	return mode
+}
+
 // sysStat, if non-nil, populates h from system-dependent fields of fi.
 var sysStat func(fi os.FileInfo, h *Header) error
 
 // Mode constants from the tar spec.
 const (
-	c_ISDIR  = 040000
-	c_ISFIFO = 010000
-	c_ISREG  = 0100000
-	c_ISLNK  = 0120000
-	c_ISBLK  = 060000
-	c_ISCHR  = 020000
-	c_ISSOCK = 0140000
+	c_ISUID  = 04000   // Set uid
+	c_ISGID  = 02000   // Set gid
+	c_ISVTX  = 01000   // Save text (sticky bit)
+	c_ISDIR  = 040000  // Directory
+	c_ISFIFO = 010000  // FIFO
+	c_ISREG  = 0100000 // Regular file
+	c_ISLNK  = 0120000 // Symbolic link
+	c_ISBLK  = 060000  // Block special file
+	c_ISCHR  = 020000  // Character special file
+	c_ISSOCK = 0140000 // Socket
 )
 
 // FileInfoHeader creates a partially-populated Header from fi.
 // If fi describes a symlink, FileInfoHeader records link as the link target.
+// If fi describes a directory, a slash is appended to the name.
 func FileInfoHeader(fi os.FileInfo, link string) (*Header, error) {
 	if fi == nil {
 		return nil, errors.New("tar: FileInfo is nil")
 	}
+	fm := fi.Mode()
 	h := &Header{
 		Name:    fi.Name(),
 		ModTime: fi.ModTime(),
-		Mode:    int64(fi.Mode().Perm()), // or'd with c_IS* constants later
+		Mode:    int64(fm.Perm()), // or'd with c_IS* constants later
 	}
 	switch {
-	case fi.Mode()&os.ModeType == 0:
+	case fm.IsRegular():
 		h.Mode |= c_ISREG
 		h.Typeflag = TypeReg
 		h.Size = fi.Size()
 	case fi.IsDir():
 		h.Typeflag = TypeDir
 		h.Mode |= c_ISDIR
-	case fi.Mode()&os.ModeSymlink != 0:
+		h.Name += "/"
+	case fm&os.ModeSymlink != 0:
 		h.Typeflag = TypeSymlink
 		h.Mode |= c_ISLNK
 		h.Linkname = link
-	case fi.Mode()&os.ModeDevice != 0:
-		if fi.Mode()&os.ModeCharDevice != 0 {
+	case fm&os.ModeDevice != 0:
+		if fm&os.ModeCharDevice != 0 {
 			h.Mode |= c_ISCHR
 			h.Typeflag = TypeChar
 		} else {
 			h.Mode |= c_ISBLK
 			h.Typeflag = TypeBlock
 		}
-	case fi.Mode()&os.ModeSocket != 0:
+	case fm&os.ModeNamedPipe != 0:
+		h.Typeflag = TypeFifo
+		h.Mode |= c_ISFIFO
+	case fm&os.ModeSocket != 0:
 		h.Mode |= c_ISSOCK
 	default:
-		return nil, fmt.Errorf("archive/tar: unknown file mode %v", fi.Mode())
+		return nil, fmt.Errorf("archive/tar: unknown file mode %v", fm)
+	}
+	if fm&os.ModeSetuid != 0 {
+		h.Mode |= c_ISUID
+	}
+	if fm&os.ModeSetgid != 0 {
+		h.Mode |= c_ISGID
+	}
+	if fm&os.ModeSticky != 0 {
+		h.Mode |= c_ISVTX
 	}
 	if sysStat != nil {
 		return h, sysStat(fi, h)
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader.go gcc-4.8.1/libgo/go/archive/tar/reader.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/reader.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/tar/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -14,6 +14,7 @@
 	"io/ioutil"
 	"os"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -21,24 +22,12 @@
 	ErrHeader = errors.New("archive/tar: invalid tar header")
 )
 
+const maxNanoSecondIntSize = 9
+
 // A Reader provides sequential access to the contents of a tar archive.
 // A tar archive consists of a sequence of files.
 // The Next method advances to the next file in the archive (including the first),
 // and then it can be treated as an io.Reader to access the file's data.
-//
-// Example:
-//	tr := tar.NewReader(r)
-//	for {
-//		hdr, err := tr.Next()
-//		if err == io.EOF {
-//			// end of tar archive
-//			break
-//		}
-//		if err != nil {
-//			// handle error
-//		}
-//		io.Copy(data, tr)
-//	}
 type Reader struct {
 	r   io.Reader
 	err error
@@ -55,13 +44,183 @@
 	if tr.err == nil {
 		tr.skipUnread()
 	}
-	if tr.err == nil {
+	if tr.err != nil {
+		return hdr, tr.err
+	}
+	hdr = tr.readHeader()
+	if hdr == nil {
+		return hdr, tr.err
+	}
+	// Check for PAX/GNU header.
+	switch hdr.Typeflag {
+	case TypeXHeader:
+		//  PAX extended header
+		headers, err := parsePAX(tr)
+		if err != nil {
+			return nil, err
+		}
+		// We actually read the whole file,
+		// but this skips alignment padding
+		tr.skipUnread()
 		hdr = tr.readHeader()
+		mergePAX(hdr, headers)
+		return hdr, nil
+	case TypeGNULongName:
+		// We have a GNU long name header. Its contents are the real file name.
+		realname, err := ioutil.ReadAll(tr)
+		if err != nil {
+			return nil, err
+		}
+		hdr, err := tr.Next()
+		hdr.Name = cString(realname)
+		return hdr, err
+	case TypeGNULongLink:
+		// We have a GNU long link header.
+		realname, err := ioutil.ReadAll(tr)
+		if err != nil {
+			return nil, err
+		}
+		hdr, err := tr.Next()
+		hdr.Linkname = cString(realname)
+		return hdr, err
 	}
 	return hdr, tr.err
 }
 
-// Parse bytes as a NUL-terminated C-style string.
+// mergePAX merges well known headers according to PAX standard.
+// In general headers with the same name as those found
+// in the header struct overwrite those found in the header
+// struct with higher precision or longer values. Esp. useful
+// for name and linkname fields.
+func mergePAX(hdr *Header, headers map[string]string) error {
+	for k, v := range headers {
+		switch k {
+		case "path":
+			hdr.Name = v
+		case "linkpath":
+			hdr.Linkname = v
+		case "gname":
+			hdr.Gname = v
+		case "uname":
+			hdr.Uname = v
+		case "uid":
+			uid, err := strconv.ParseInt(v, 10, 0)
+			if err != nil {
+				return err
+			}
+			hdr.Uid = int(uid)
+		case "gid":
+			gid, err := strconv.ParseInt(v, 10, 0)
+			if err != nil {
+				return err
+			}
+			hdr.Gid = int(gid)
+		case "atime":
+			t, err := parsePAXTime(v)
+			if err != nil {
+				return err
+			}
+			hdr.AccessTime = t
+		case "mtime":
+			t, err := parsePAXTime(v)
+			if err != nil {
+				return err
+			}
+			hdr.ModTime = t
+		case "ctime":
+			t, err := parsePAXTime(v)
+			if err != nil {
+				return err
+			}
+			hdr.ChangeTime = t
+		case "size":
+			size, err := strconv.ParseInt(v, 10, 0)
+			if err != nil {
+				return err
+			}
+			hdr.Size = int64(size)
+		}
+
+	}
+	return nil
+}
+
+// parsePAXTime takes a string of the form %d.%d as described in
+// the PAX specification.
+func parsePAXTime(t string) (time.Time, error) {
+	buf := []byte(t)
+	pos := bytes.IndexByte(buf, '.')
+	var seconds, nanoseconds int64
+	var err error
+	if pos == -1 {
+		seconds, err = strconv.ParseInt(t, 10, 0)
+		if err != nil {
+			return time.Time{}, err
+		}
+	} else {
+		seconds, err = strconv.ParseInt(string(buf[:pos]), 10, 0)
+		if err != nil {
+			return time.Time{}, err
+		}
+		nano_buf := string(buf[pos+1:])
+		// Pad as needed before converting to a decimal.
+		// For example .030 -> .030000000 -> 30000000 nanoseconds
+		if len(nano_buf) < maxNanoSecondIntSize {
+			// Right pad
+			nano_buf += strings.Repeat("0", maxNanoSecondIntSize-len(nano_buf))
+		} else if len(nano_buf) > maxNanoSecondIntSize {
+			// Right truncate
+			nano_buf = nano_buf[:maxNanoSecondIntSize]
+		}
+		nanoseconds, err = strconv.ParseInt(string(nano_buf), 10, 0)
+		if err != nil {
+			return time.Time{}, err
+		}
+	}
+	ts := time.Unix(seconds, nanoseconds)
+	return ts, nil
+}
+
+// parsePAX parses PAX headers.
+// If an extended header (type 'x') is invalid, ErrHeader is returned
+func parsePAX(r io.Reader) (map[string]string, error) {
+	buf, err := ioutil.ReadAll(r)
+	if err != nil {
+		return nil, err
+	}
+	headers := make(map[string]string)
+	// Each record is constructed as
+	//     "%d %s=%s\n", length, keyword, value
+	for len(buf) > 0 {
+		// or the header was empty to start with.
+		var sp int
+		// The size field ends at the first space.
+		sp = bytes.IndexByte(buf, ' ')
+		if sp == -1 {
+			return nil, ErrHeader
+		}
+		// Parse the first token as a decimal integer.
+		n, err := strconv.ParseInt(string(buf[:sp]), 10, 0)
+		if err != nil {
+			return nil, ErrHeader
+		}
+		// Extract everything between the decimal and the n -1 on the
+		// beginning to to eat the ' ', -1 on the end to skip the newline.
+		var record []byte
+		record, buf = buf[sp+1:n-1], buf[n:]
+		// The first equals is guaranteed to mark the end of the key.
+		// Everything else is value.
+		eq := bytes.IndexByte(record, '=')
+		if eq == -1 {
+			return nil, ErrHeader
+		}
+		key, value := record[:eq], record[eq+1:]
+		headers[string(key)] = string(value)
+	}
+	return headers, nil
+}
+
+// cString parses bytes as a NUL-terminated C-style string.
 // If a NUL byte is not found then the whole slice is returned as a string.
 func cString(b []byte) string {
 	n := 0
@@ -99,7 +258,7 @@
 	return int64(x)
 }
 
-// Skip any unread bytes in the existing file entry, as well as any alignment padding.
+// skipUnread skips any unread bytes in the existing file entry, as well as any alignment padding.
 func (tr *Reader) skipUnread() {
 	nr := tr.nb + tr.pad // number of bytes to skip
 	tr.nb, tr.pad = 0, 0
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/reader_test.go gcc-4.8.1/libgo/go/archive/tar/reader_test.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/reader_test.go	2012-02-01 13:26:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/tar/reader_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -10,6 +10,8 @@
 	"fmt"
 	"io"
 	"os"
+	"reflect"
+	"strings"
 	"testing"
 	"time"
 )
@@ -108,6 +110,38 @@
 			},
 		},
 	},
+	{
+		file: "testdata/pax.tar",
+		headers: []*Header{
+			{
+				Name:       "a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100",
+				Mode:       0664,
+				Uid:        1000,
+				Gid:        1000,
+				Uname:      "shane",
+				Gname:      "shane",
+				Size:       7,
+				ModTime:    time.Unix(1350244992, 23960108),
+				ChangeTime: time.Unix(1350244992, 23960108),
+				AccessTime: time.Unix(1350244992, 23960108),
+				Typeflag:   TypeReg,
+			},
+			{
+				Name:       "a/b",
+				Mode:       0777,
+				Uid:        1000,
+				Gid:        1000,
+				Uname:      "shane",
+				Gname:      "shane",
+				Size:       0,
+				ModTime:    time.Unix(1350266320, 910238425),
+				ChangeTime: time.Unix(1350266320, 910238425),
+				AccessTime: time.Unix(1350266320, 910238425),
+				Typeflag:   TypeSymlink,
+				Linkname:   "123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100",
+			},
+		},
+	},
 }
 
 func TestReader(t *testing.T) {
@@ -133,7 +167,7 @@
 		}
 		hdr, err := tr.Next()
 		if err == io.EOF {
-			break
+			continue testLoop
 		}
 		if hdr != nil || err != nil {
 			t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, hdr, err)
@@ -260,3 +294,73 @@
 		t.Errorf("Didn't process all files\nexpected: %d\nprocessed %d\n", len(test.headers), nread)
 	}
 }
+
+func TestParsePAXHeader(t *testing.T) {
+	paxTests := [][3]string{
+		{"a", "a=name", "10 a=name\n"}, // Test case involving multiple acceptable lengths
+		{"a", "a=name", "9 a=name\n"},  // Test case involving multiple acceptable length
+		{"mtime", "mtime=1350244992.023960108", "30 mtime=1350244992.023960108\n"}}
+	for _, test := range paxTests {
+		key, expected, raw := test[0], test[1], test[2]
+		reader := bytes.NewBuffer([]byte(raw))
+		headers, err := parsePAX(reader)
+		if err != nil {
+			t.Errorf("Couldn't parse correctly formatted headers: %v", err)
+			continue
+		}
+		if strings.EqualFold(headers[key], expected) {
+			t.Errorf("mtime header incorrectly parsed: got %s, wanted %s", headers[key], expected)
+			continue
+		}
+		trailer := make([]byte, 100)
+		n, err := reader.Read(trailer)
+		if err != io.EOF || n != 0 {
+			t.Error("Buffer wasn't consumed")
+		}
+	}
+	badHeader := bytes.NewBuffer([]byte("3 somelongkey="))
+	if _, err := parsePAX(badHeader); err != ErrHeader {
+		t.Fatal("Unexpected success when parsing bad header")
+	}
+}
+
+func TestParsePAXTime(t *testing.T) {
+	// Some valid PAX time values
+	timestamps := map[string]time.Time{
+		"1350244992.023960108":  time.Unix(1350244992, 23960108), // The commoon case
+		"1350244992.02396010":   time.Unix(1350244992, 23960100), // Lower precision value
+		"1350244992.0239601089": time.Unix(1350244992, 23960108), // Higher precision value
+		"1350244992":            time.Unix(1350244992, 0),        // Low precision value
+	}
+	for input, expected := range timestamps {
+		ts, err := parsePAXTime(input)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if !ts.Equal(expected) {
+			t.Fatalf("Time parsing failure %s %s", ts, expected)
+		}
+	}
+}
+
+func TestMergePAX(t *testing.T) {
+	hdr := new(Header)
+	// Test a string, integer, and time based value.
+	headers := map[string]string{
+		"path":  "a/b/c",
+		"uid":   "1000",
+		"mtime": "1350244992.023960108",
+	}
+	err := mergePAX(hdr, headers)
+	if err != nil {
+		t.Fatal(err)
+	}
+	want := &Header{
+		Name:    "a/b/c",
+		Uid:     1000,
+		ModTime: time.Unix(1350244992, 23960108),
+	}
+	if !reflect.DeepEqual(hdr, want) {
+		t.Errorf("incorrect merge: got %+v, want %+v", hdr, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/tar_test.go gcc-4.8.1/libgo/go/archive/tar/tar_test.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/tar_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/tar/tar_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -14,13 +14,13 @@
 )
 
 func TestFileInfoHeader(t *testing.T) {
-	fi, err := os.Lstat("testdata/small.txt")
+	fi, err := os.Stat("testdata/small.txt")
 	if err != nil {
 		t.Fatal(err)
 	}
 	h, err := FileInfoHeader(fi, "")
 	if err != nil {
-		t.Fatalf("on small.txt: %v", err)
+		t.Fatalf("FileInfoHeader: %v", err)
 	}
 	if g, e := h.Name, "small.txt"; g != e {
 		t.Errorf("Name = %q; want %q", g, e)
@@ -36,6 +36,30 @@
 	}
 }
 
+func TestFileInfoHeaderDir(t *testing.T) {
+	fi, err := os.Stat("testdata")
+	if err != nil {
+		t.Fatal(err)
+	}
+	h, err := FileInfoHeader(fi, "")
+	if err != nil {
+		t.Fatalf("FileInfoHeader: %v", err)
+	}
+	if g, e := h.Name, "testdata/"; g != e {
+		t.Errorf("Name = %q; want %q", g, e)
+	}
+	// Ignoring c_ISGID for golang.org/issue/4867
+	if g, e := h.Mode&^c_ISGID, int64(fi.Mode().Perm())|c_ISDIR; g != e {
+		t.Errorf("Mode = %#o; want %#o", g, e)
+	}
+	if g, e := h.Size, int64(0); g != e {
+		t.Errorf("Size = %v; want %v", g, e)
+	}
+	if g, e := h.ModTime, fi.ModTime(); !g.Equal(e) {
+		t.Errorf("ModTime = %v; want %v", g, e)
+	}
+}
+
 func TestFileInfoHeaderSymlink(t *testing.T) {
 	h, err := FileInfoHeader(symlink{}, "some-target")
 	if err != nil {
@@ -98,3 +122,150 @@
 		t.Errorf("Data mismatch.\n got %q\nwant %q", rData, data)
 	}
 }
+
+type headerRoundTripTest struct {
+	h  *Header
+	fm os.FileMode
+}
+
+func TestHeaderRoundTrip(t *testing.T) {
+	golden := []headerRoundTripTest{
+		// regular file.
+		{
+			h: &Header{
+				Name:     "test.txt",
+				Mode:     0644 | c_ISREG,
+				Size:     12,
+				ModTime:  time.Unix(1360600916, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0644,
+		},
+		// hard link.
+		{
+			h: &Header{
+				Name:     "hard.txt",
+				Mode:     0644 | c_ISLNK,
+				Size:     0,
+				ModTime:  time.Unix(1360600916, 0),
+				Typeflag: TypeLink,
+			},
+			fm: 0644 | os.ModeSymlink,
+		},
+		// symbolic link.
+		{
+			h: &Header{
+				Name:     "link.txt",
+				Mode:     0777 | c_ISLNK,
+				Size:     0,
+				ModTime:  time.Unix(1360600852, 0),
+				Typeflag: TypeSymlink,
+			},
+			fm: 0777 | os.ModeSymlink,
+		},
+		// character device node.
+		{
+			h: &Header{
+				Name:     "dev/null",
+				Mode:     0666 | c_ISCHR,
+				Size:     0,
+				ModTime:  time.Unix(1360578951, 0),
+				Typeflag: TypeChar,
+			},
+			fm: 0666 | os.ModeDevice | os.ModeCharDevice,
+		},
+		// block device node.
+		{
+			h: &Header{
+				Name:     "dev/sda",
+				Mode:     0660 | c_ISBLK,
+				Size:     0,
+				ModTime:  time.Unix(1360578954, 0),
+				Typeflag: TypeBlock,
+			},
+			fm: 0660 | os.ModeDevice,
+		},
+		// directory.
+		{
+			h: &Header{
+				Name:     "dir/",
+				Mode:     0755 | c_ISDIR,
+				Size:     0,
+				ModTime:  time.Unix(1360601116, 0),
+				Typeflag: TypeDir,
+			},
+			fm: 0755 | os.ModeDir,
+		},
+		// fifo node.
+		{
+			h: &Header{
+				Name:     "dev/initctl",
+				Mode:     0600 | c_ISFIFO,
+				Size:     0,
+				ModTime:  time.Unix(1360578949, 0),
+				Typeflag: TypeFifo,
+			},
+			fm: 0600 | os.ModeNamedPipe,
+		},
+		// setuid.
+		{
+			h: &Header{
+				Name:     "bin/su",
+				Mode:     0755 | c_ISREG | c_ISUID,
+				Size:     23232,
+				ModTime:  time.Unix(1355405093, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0755 | os.ModeSetuid,
+		},
+		// setguid.
+		{
+			h: &Header{
+				Name:     "group.txt",
+				Mode:     0750 | c_ISREG | c_ISGID,
+				Size:     0,
+				ModTime:  time.Unix(1360602346, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0750 | os.ModeSetgid,
+		},
+		// sticky.
+		{
+			h: &Header{
+				Name:     "sticky.txt",
+				Mode:     0600 | c_ISREG | c_ISVTX,
+				Size:     7,
+				ModTime:  time.Unix(1360602540, 0),
+				Typeflag: TypeReg,
+			},
+			fm: 0600 | os.ModeSticky,
+		},
+	}
+
+	for i, g := range golden {
+		fi := g.h.FileInfo()
+		h2, err := FileInfoHeader(fi, "")
+		if err != nil {
+			t.Error(err)
+			continue
+		}
+		if got, want := h2.Name, g.h.Name; got != want {
+			t.Errorf("i=%d: Name: got %v, want %v", i, got, want)
+		}
+		if got, want := h2.Size, g.h.Size; got != want {
+			t.Errorf("i=%d: Size: got %v, want %v", i, got, want)
+		}
+		if got, want := h2.Mode, g.h.Mode; got != want {
+			t.Errorf("i=%d: Mode: got %o, want %o", i, got, want)
+		}
+		if got, want := fi.Mode(), g.fm; got != want {
+			t.Errorf("i=%d: fi.Mode: got %o, want %o", i, got, want)
+		}
+		if got, want := h2.ModTime, g.h.ModTime; got != want {
+			t.Errorf("i=%d: ModTime: got %v, want %v", i, got, want)
+		}
+		if sysh, ok := fi.Sys().(*Header); !ok || sysh != g.h {
+			t.Errorf("i=%d: Sys didn't return original *Header", i)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/pax.tar gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar
--- gcc-4.8.1.orig/libgo/go/archive/tar/testdata/pax.tar	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/tar/testdata/pax.tar	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,10 @@
+a/PaxHeaders.6887/12345678910111213141516171819202122232425262728293031323334353637383940414243444540000644 0001750 0001750 00000000446 12036615200 022461  x                                                                                                    ustar 00                                                                0000000 0000000                                                                                                                                                                        204 path=a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
+30 mtime=1350244992.023960108
+30 atime=1350244992.023960108
+30 ctime=1350244992.023960108
+                                                                                                                                                                                                                          a/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525350000664 0001750 0001750 00000000007 12036615200 023454  0                                                                                                    ustar 00shane                           shane                           0000000 0000000                                                                                                                                                                        shaner
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         a/PaxHeaders.6887/b                                                                                 0000644 0001750 0001750 00000000450 12036666720 012440  x                                                                                                    ustar 00                                                                0000000 0000000                                                                                                                                                                        206 linkpath=123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
+30 mtime=1350266320.910238425
+30 atime=1350266320.910238425
+30 ctime=1350266320.910238425
+                                                                                                                                                                                                                        a/b                                                                                                 0000777 0001750 0001750 00000000000 12036666720 024004  21234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545ustar 00shane                           shane                           0000000 0000000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
\ No newline at end of file
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/testdata/ustar.tar gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar
--- gcc-4.8.1.orig/libgo/go/archive/tar/testdata/ustar.tar	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/tar/testdata/ustar.tar	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,2 @@
+file.txt                                                                                            0000644 0000765 0000024 00000000006 12104402656 045134  0                                                                                                    ustar 00shane                           staff                           0000000 0000000 longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname/longname                                 hello
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
\ No newline at end of file
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer.go gcc-4.8.1/libgo/go/archive/tar/writer.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/writer.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/tar/writer.go	2013-07-16 01:55:04.520470000 -0500
@@ -8,10 +8,14 @@
 // - catch more errors (no first header, etc.)
 
 import (
+	"bytes"
 	"errors"
 	"fmt"
 	"io"
+	"os"
+	"path"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -19,23 +23,13 @@
 	ErrWriteTooLong    = errors.New("archive/tar: write too long")
 	ErrFieldTooLong    = errors.New("archive/tar: header field too long")
 	ErrWriteAfterClose = errors.New("archive/tar: write after close")
+	errNameTooLong     = errors.New("archive/tar: name too long")
 )
 
 // A Writer provides sequential writing of a tar archive in POSIX.1 format.
 // A tar archive consists of a sequence of files.
 // Call WriteHeader to begin a new file, and then call Write to supply that file's data,
 // writing at most hdr.Size bytes in total.
-//
-// Example:
-//	tw := tar.NewWriter(w)
-//	hdr := new(tar.Header)
-//	hdr.Size = length of data in bytes
-//	// populate other hdr fields as desired
-//	if err := tw.WriteHeader(hdr); err != nil {
-//		// handle error
-//	}
-//	io.Copy(tw, data)
-//	tw.Close()
 type Writer struct {
 	w          io.Writer
 	err        error
@@ -130,15 +124,31 @@
 	if tw.err != nil {
 		return tw.err
 	}
-
+	// Decide whether or not to use PAX extensions
+	// TODO(shanemhansen): we might want to use PAX headers for
+	// subsecond time resolution, but for now let's just capture
+	// the long name/long symlink use case.
+	suffix := hdr.Name
+	prefix := ""
+	if len(hdr.Name) > fileNameSize || len(hdr.Linkname) > fileNameSize {
+		var err error
+		prefix, suffix, err = tw.splitUSTARLongName(hdr.Name)
+		// Either we were unable to pack the long name into ustar format
+		// or the link name is too long; use PAX headers.
+		if err == errNameTooLong || len(hdr.Linkname) > fileNameSize {
+			if err := tw.writePAXHeader(hdr); err != nil {
+				return err
+			}
+		} else if err != nil {
+			return err
+		}
+	}
 	tw.nb = int64(hdr.Size)
 	tw.pad = -tw.nb & (blockSize - 1) // blockSize is a power of two
 
 	header := make([]byte, blockSize)
 	s := slicer(header)
-
-	// TODO(dsymonds): handle names longer than 100 chars
-	copy(s.next(100), []byte(hdr.Name))
+	tw.cString(s.next(fileNameSize), suffix)
 
 	// Handle out of range ModTime carefully.
 	var modTime int64
@@ -159,11 +169,15 @@
 	tw.cString(s.next(32), hdr.Gname)      // 297:329
 	tw.numeric(s.next(8), hdr.Devmajor)    // 329:337
 	tw.numeric(s.next(8), hdr.Devminor)    // 337:345
-
+	tw.cString(s.next(155), prefix)        // 345:500
 	// Use the GNU magic instead of POSIX magic if we used any GNU extensions.
 	if tw.usedBinary {
 		copy(header[257:265], []byte("ustar  \x00"))
 	}
+	// Use the ustar magic if we used ustar long names.
+	if len(prefix) > 0 {
+		copy(header[257:265], []byte("ustar\000"))
+	}
 
 	// The chksum field is terminated by a NUL and a space.
 	// This is different from the other octal fields.
@@ -181,6 +195,78 @@
 	return tw.err
 }
 
+// writeUSTARLongName splits a USTAR long name hdr.Name.
+// name must be < 256 characters. errNameTooLong is returned
+// if hdr.Name can't be split. The splitting heuristic
+// is compatible with gnu tar.
+func (tw *Writer) splitUSTARLongName(name string) (prefix, suffix string, err error) {
+	length := len(name)
+	if length > fileNamePrefixSize+1 {
+		length = fileNamePrefixSize + 1
+	} else if name[length-1] == '/' {
+		length--
+	}
+	i := strings.LastIndex(name[:length], "/")
+	nlen := length - i - 1
+	if i <= 0 || nlen > fileNameSize || nlen == 0 {
+		err = errNameTooLong
+		return
+	}
+	prefix, suffix = name[:i], name[i+1:]
+	return
+}
+
+// writePaxHeader writes an extended pax header to the
+// archive.
+func (tw *Writer) writePAXHeader(hdr *Header) error {
+	// Prepare extended header
+	ext := new(Header)
+	ext.Typeflag = TypeXHeader
+	// Setting ModTime is required for reader parsing to
+	// succeed, and seems harmless enough.
+	ext.ModTime = hdr.ModTime
+	// The spec asks that we namespace our pseudo files
+	// with the current pid.
+	pid := os.Getpid()
+	dir, file := path.Split(hdr.Name)
+	ext.Name = path.Join(dir,
+		fmt.Sprintf("PaxHeaders.%d", pid), file)[0:100]
+	// Construct the body
+	var buf bytes.Buffer
+	if len(hdr.Name) > fileNameSize {
+		fmt.Fprint(&buf, paxHeader("path="+hdr.Name))
+	}
+	if len(hdr.Linkname) > fileNameSize {
+		fmt.Fprint(&buf, paxHeader("linkpath="+hdr.Linkname))
+	}
+	ext.Size = int64(len(buf.Bytes()))
+	if err := tw.WriteHeader(ext); err != nil {
+		return err
+	}
+	if _, err := tw.Write(buf.Bytes()); err != nil {
+		return err
+	}
+	if err := tw.Flush(); err != nil {
+		return err
+	}
+	return nil
+}
+
+// paxHeader formats a single pax record, prefixing it with the appropriate length
+func paxHeader(msg string) string {
+	const padding = 2 // Extra padding for space and newline
+	size := len(msg) + padding
+	size += len(strconv.Itoa(size))
+	record := fmt.Sprintf("%d %s\n", size, msg)
+	if len(record) != size {
+		// Final adjustment if adding size increased
+		// the number of digits in size
+		size = len(record)
+		record = fmt.Sprintf("%d %s\n", size, msg)
+	}
+	return record
+}
+
 // Write writes to the current entry in the tar archive.
 // Write returns the error ErrWriteTooLong if more than
 // hdr.Size bytes are written after WriteHeader.
diff -Naur gcc-4.8.1.orig/libgo/go/archive/tar/writer_test.go gcc-4.8.1/libgo/go/archive/tar/writer_test.go
--- gcc-4.8.1.orig/libgo/go/archive/tar/writer_test.go	2012-03-30 16:27:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/archive/tar/writer_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 	"fmt"
 	"io"
 	"io/ioutil"
+	"os"
 	"strings"
 	"testing"
 	"testing/iotest"
@@ -101,6 +102,27 @@
 			},
 		},
 	},
+	// This file was produced using gnu tar 1.17
+	// gnutar  -b 4 --format=ustar (longname/)*15 + file.txt
+	{
+		file: "testdata/ustar.tar",
+		entries: []*writerTestEntry{
+			{
+				header: &Header{
+					Name:     strings.Repeat("longname/", 15) + "file.txt",
+					Mode:     0644,
+					Uid:      0765,
+					Gid:      024,
+					Size:     06,
+					ModTime:  time.Unix(1360135598, 0),
+					Typeflag: '0',
+					Uname:    "shane",
+					Gname:    "staff",
+				},
+				contents: "hello\n",
+			},
+		},
+	},
 }
 
 // Render byte array in a two-character hexadecimal string, spaced for easy visual inspection.
@@ -180,3 +202,61 @@
 		}
 	}
 }
+
+func TestPax(t *testing.T) {
+	// Create an archive with a large name
+	fileinfo, err := os.Stat("testdata/small.txt")
+	if err != nil {
+		t.Fatal(err)
+	}
+	hdr, err := FileInfoHeader(fileinfo, "")
+	if err != nil {
+		t.Fatalf("os.Stat: %v", err)
+	}
+	// Force a PAX long name to be written
+	longName := strings.Repeat("ab", 100)
+	contents := strings.Repeat(" ", int(hdr.Size))
+	hdr.Name = longName
+	var buf bytes.Buffer
+	writer := NewWriter(&buf)
+	if err := writer.WriteHeader(hdr); err != nil {
+		t.Fatal(err)
+	}
+	if _, err = writer.Write([]byte(contents)); err != nil {
+		t.Fatal(err)
+	}
+	if err := writer.Close(); err != nil {
+		t.Fatal(err)
+	}
+	// Simple test to make sure PAX extensions are in effect
+	if !bytes.Contains(buf.Bytes(), []byte("PaxHeaders.")) {
+		t.Fatal("Expected at least one PAX header to be written.")
+	}
+	// Test that we can get a long name back out of the archive.
+	reader := NewReader(&buf)
+	hdr, err = reader.Next()
+	if err != nil {
+		t.Fatal(err)
+	}
+	if hdr.Name != longName {
+		t.Fatal("Couldn't recover long file name")
+	}
+}
+
+func TestPAXHeader(t *testing.T) {
+	medName := strings.Repeat("CD", 50)
+	longName := strings.Repeat("AB", 100)
+	paxTests := [][2]string{
+		{"name=/etc/hosts", "19 name=/etc/hosts\n"},
+		{"a=b", "6 a=b\n"},          // Single digit length
+		{"a=names", "11 a=names\n"}, // Test case involving carries
+		{"name=" + longName, fmt.Sprintf("210 name=%s\n", longName)},
+		{"name=" + medName, fmt.Sprintf("110 name=%s\n", medName)}}
+
+	for _, test := range paxTests {
+		key, expected := test[0], test[1]
+		if result := paxHeader(key); result != expected {
+			t.Fatalf("paxHeader: got %s, expected %s", result, expected)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader.go gcc-4.8.1/libgo/go/archive/zip/reader.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/reader.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/zip/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -353,6 +353,11 @@
 	if err != nil {
 		return nil, err
 	}
+
+	// Make sure directoryOffset points to somewhere in our file.
+	if o := int64(d.directoryOffset); o < 0 || o >= size {
+		return nil, ErrFormat
+	}
 	return d, nil
 }
 
@@ -407,7 +412,7 @@
 		if b[i] == 'P' && b[i+1] == 'K' && b[i+2] == 0x05 && b[i+3] == 0x06 {
 			// n is length of comment
 			n := int(b[i+directoryEndLen-2]) | int(b[i+directoryEndLen-1])<<8
-			if n+directoryEndLen+i == len(b) {
+			if n+directoryEndLen+i <= len(b) {
 				return i
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/reader_test.go gcc-4.8.1/libgo/go/archive/zip/reader_test.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/reader_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/archive/zip/reader_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -64,6 +64,24 @@
 		},
 	},
 	{
+		Name:    "test-trailing-junk.zip",
+		Comment: "This is a zipfile comment.",
+		File: []ZipTestFile{
+			{
+				Name:    "test.txt",
+				Content: []byte("This is a test text file.\n"),
+				Mtime:   "09-05-10 12:12:02",
+				Mode:    0644,
+			},
+			{
+				Name:  "gophercolor16x16.png",
+				File:  "gophercolor16x16.png",
+				Mtime: "09-05-10 15:52:58",
+				Mode:  0644,
+			},
+		},
+	},
+	{
 		Name:   "r.zip",
 		Source: returnRecursiveZip,
 		File: []ZipTestFile{
@@ -262,7 +280,7 @@
 		}
 	}
 	if err != zt.Error {
-		t.Errorf("error=%v, want %v", err, zt.Error)
+		t.Errorf("%s: error=%v, want %v", zt.Name, err, zt.Error)
 		return
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/struct.go gcc-4.8.1/libgo/go/archive/zip/struct.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/struct.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/archive/zip/struct.go	2013-07-16 01:55:04.520470000 -0500
@@ -64,8 +64,15 @@
 	zip64ExtraId = 0x0001 // zip64 Extended Information Extra Field
 )
 
+// FileHeader describes a file within a zip file.
+// See the zip spec for details.
 type FileHeader struct {
-	Name               string
+	// Name is the name of the file.
+	// It must be a relative path: it must not start with a drive
+	// letter (e.g. C:) or leading slash, and only forward slashes
+	// are allowed.
+	Name string
+
 	CreatorVersion     uint16
 	ReaderVersion      uint16
 	Flags              uint16
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/testdata/test-trailing-junk.zip gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip
--- gcc-4.8.1.orig/libgo/go/archive/zip/testdata/test-trailing-junk.zip	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/zip/testdata/test-trailing-junk.zip	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,10 @@
+PK    a%=À×íÃ        test.txtUT	 qü‚Lvü‚Lux õ     ÉÈ,V ¢D…’Ôâ QQ¢–™“ªÇ PK
+     ~%=þ1ÕT      gophercolor16x16.pngUT	 :0ƒL;0ƒLux õ     ‰PNG
+
+   IHDR         ísO/   gAMA  ÖØÔOX2   tEXtSoftware Adobe ImageReadyqÉe<  £IDATxÚt“_HSQÀ¿{ÏîÆu[VÚ*%mlQVô_#·""°zˆAK
+£‚bE/¡ƒzI*†5ÿd˜¢‘.œ/S’Âé¶†(Ú]¶í^uÙŸÓ9›­òƒïž{¿?¿ó}ß9—ÁC¦Øív°Ùl—Ï:z#¯ÐX”äeßÄ—e%‡œVWáv»½™ñŠÌ––Vôº½Íáh¨½d4à¸åÜo°Ci‘¤ólþ&–`h555^ŠÀðà@gó§Åë@ü:æ³U âÄŽƒ‚ÁpûQWÝVÃ¶ÆX,J6kI(€e™cºuwoVaY
+aÏè'|äÐ^|¢l'~ÓT'\Ï°oÈ‰/ZN
+ëó6°f³9™G5Ù‚&‡/+Ño1í0ÁÈ‡V ¤„ÊŠÝŒªA£ÕB<‘€pdÎWV”3ó×74eµÀ0GÞK¯^8ÓëŠ%aq	Á´_ÝÚP©8`H€JÉ£sm=óR¨ŽØP”èØÛ÷CA9L°¤ïxŠ7æ&“R8	£’§QÂ‚,õý©€Íœè\P¾óÄÙ3É«”)*ù€wJaF‚h,ºü\ê
+ü@DzÕå²ù¦E@(åŠÆâ°o{1˜v&ÃWàêÕ ‹Ç]îÑñ%ZzzP,Ki [@Dç‚,û¯K¡@ðÃ ÖM4)Iúî›DVæ¯djcC0‚‘Z³æ415§'¤%gn««W{{yºG!²r
+ Gû¸µï×ÇQáåÁûg³*(//OW ŠbB’¤Ú§íýM‡÷äÎÎLÃ¸0x70Ü‹¯ººzÒjµfÿL‚ dV»Hô¹Ë3aûæð<ÿ »»û3±…ôz=½tY­ý` ¨‹çbê    IEND®B`‚PK    a%=À×íÃ               ¤    test.txtUT qü‚Lux õ     PK
+     ~%=þ1ÕT              ¤[   gophercolor16x16.pngUT :0ƒLux õ     PK      ¨   º   This is a zipfile comment.some nonsense
diff -Naur gcc-4.8.1.orig/libgo/go/archive/zip/writer.go gcc-4.8.1/libgo/go/archive/zip/writer.go
--- gcc-4.8.1.orig/libgo/go/archive/zip/writer.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/archive/zip/writer.go	2013-07-16 01:55:04.520470000 -0500
@@ -163,6 +163,9 @@
 
 // Create adds a file to the zip file using the provided name.
 // It returns a Writer to which the file contents should be written.
+// The name must be a relative path: it must not start with a drive
+// letter (e.g. C:) or leading slash, and only forward slashes are
+// allowed.
 // The file's contents must be written to the io.Writer before the next
 // call to Create, CreateHeader, or Close.
 func (w *Writer) Create(name string) (io.Writer, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio.go gcc-4.8.1/libgo/go/bufio/bufio.go
--- gcc-4.8.1.orig/libgo/go/bufio/bufio.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/bufio/bufio.go	2013-07-16 01:55:04.520470000 -0500
@@ -274,11 +274,10 @@
 			return b.buf, ErrBufferFull
 		}
 	}
-	panic("not reached")
 }
 
 // ReadLine is a low-level line-reading primitive. Most callers should use
-// ReadBytes('\n') or ReadString('\n') instead.
+// ReadBytes('\n') or ReadString('\n') instead or use a Scanner.
 //
 // ReadLine tries to return a single line, not including the end-of-line bytes.
 // If the line was too long for the buffer then isPrefix is set and the
@@ -331,6 +330,7 @@
 // it returns the data read before the error and the error itself (often io.EOF).
 // ReadBytes returns err != nil if and only if the returned data does not end in
 // delim.
+// For simple uses, a Scanner may be more convenient.
 func (b *Reader) ReadBytes(delim byte) (line []byte, err error) {
 	// Use ReadSlice to look for array,
 	// accumulating full buffers.
@@ -378,6 +378,7 @@
 // it returns the data read before the error and the error itself (often io.EOF).
 // ReadString returns err != nil if and only if the returned data does not end in
 // delim.
+// For simple uses, a Scanner may be more convenient.
 func (b *Reader) ReadString(delim byte) (line string, err error) {
 	bytes, err := b.ReadBytes(delim)
 	return string(bytes), err
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/bufio_test.go gcc-4.8.1/libgo/go/bufio/bufio_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/bufio_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/bufio/bufio_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,6 +7,7 @@
 import (
 	. "bufio"
 	"bytes"
+	"errors"
 	"fmt"
 	"io"
 	"io/ioutil"
@@ -434,9 +435,12 @@
 			t.Errorf("Write hello to %v: %v", w, e)
 			continue
 		}
-		e = buf.Flush()
-		if e != w.expect {
-			t.Errorf("Flush %v: got %v, wanted %v", w, e, w.expect)
+		// Two flushes, to verify the error is sticky.
+		for i := 0; i < 2; i++ {
+			e = buf.Flush()
+			if e != w.expect {
+				t.Errorf("Flush %d/2 %v: got %v, wanted %v", i+1, w, e, w.expect)
+			}
 		}
 	}
 }
@@ -953,7 +957,7 @@
 			t.Fatal("read did not panic")
 		case error:
 			if !strings.Contains(err.Error(), "reader returned negative count from Read") {
-				t.Fatal("wrong panic: %v", err)
+				t.Fatalf("wrong panic: %v", err)
 			}
 		default:
 			t.Fatalf("unexpected panic value: %T(%v)", err, err)
@@ -962,6 +966,43 @@
 	b.Read(make([]byte, 100))
 }
 
+var errFake = errors.New("fake error")
+
+type errorThenGoodReader struct {
+	didErr bool
+	nread  int
+}
+
+func (r *errorThenGoodReader) Read(p []byte) (int, error) {
+	r.nread++
+	if !r.didErr {
+		r.didErr = true
+		return 0, errFake
+	}
+	return len(p), nil
+}
+
+func TestReaderClearError(t *testing.T) {
+	r := &errorThenGoodReader{}
+	b := NewReader(r)
+	buf := make([]byte, 1)
+	if _, err := b.Read(nil); err != nil {
+		t.Fatalf("1st nil Read = %v; want nil", err)
+	}
+	if _, err := b.Read(buf); err != errFake {
+		t.Fatalf("1st Read = %v; want errFake", err)
+	}
+	if _, err := b.Read(nil); err != nil {
+		t.Fatalf("2nd nil Read = %v; want nil", err)
+	}
+	if _, err := b.Read(buf); err != nil {
+		t.Fatalf("3rd Read with buffer = %v; want nil", err)
+	}
+	if r.nread != 2 {
+		t.Errorf("num reads = %d; want 2", r.nread)
+	}
+}
+
 // An onlyReader only implements io.Reader, no matter what other methods the underlying implementation may have.
 type onlyReader struct {
 	r io.Reader
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/example_test.go gcc-4.8.1/libgo/go/bufio/example_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/example_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/bufio/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,74 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio_test
+
+import (
+	"bufio"
+	"fmt"
+	"os"
+	"strconv"
+	"strings"
+)
+
+// The simplest use of a Scanner, to read standard input as a set of lines.
+func ExampleScanner_lines() {
+	scanner := bufio.NewScanner(os.Stdin)
+	for scanner.Scan() {
+		fmt.Println(scanner.Text()) // Println will add back the final '\n'
+	}
+	if err := scanner.Err(); err != nil {
+		fmt.Fprintln(os.Stderr, "reading standard input:", err)
+	}
+}
+
+// Use a Scanner to implement a simple word-count utility by scanning the
+// input as a sequence of space-delimited tokens.
+func ExampleScanner_words() {
+	// An artificial input source.
+	const input = "Now is the winter of our discontent,\nMade glorious summer by this sun of York.\n"
+	scanner := bufio.NewScanner(strings.NewReader(input))
+	// Set the split function for the scanning operation.
+	scanner.Split(bufio.ScanWords)
+	// Count the words.
+	count := 0
+	for scanner.Scan() {
+		count++
+	}
+	if err := scanner.Err(); err != nil {
+		fmt.Fprintln(os.Stderr, "reading input:", err)
+	}
+	fmt.Printf("%d\n", count)
+	// Output: 15
+}
+
+// Use a Scanner with a custom split function (built by wrapping ScanWords) to validate
+// 32-bit decimal input.
+func ExampleScanner_custom() {
+	// An artificial input source.
+	const input = "1234 5678 1234567901234567890"
+	scanner := bufio.NewScanner(strings.NewReader(input))
+	// Create a custom split function by wrapping the existing ScanWords function.
+	split := func(data []byte, atEOF bool) (advance int, token []byte, err error) {
+		advance, token, err = bufio.ScanWords(data, atEOF)
+		if err == nil && token != nil {
+			_, err = strconv.ParseInt(string(token), 10, 32)
+		}
+		return
+	}
+	// Set the split function for the scanning operation.
+	scanner.Split(split)
+	// Validate the input
+	for scanner.Scan() {
+		fmt.Printf("%s\n", scanner.Text())
+	}
+
+	if err := scanner.Err(); err != nil {
+		fmt.Printf("Invalid input: %s", err)
+	}
+	// Output:
+	// 1234
+	// 5678
+	// Invalid input: strconv.ParseInt: parsing "1234567901234567890": value out of range
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/export_test.go gcc-4.8.1/libgo/go/bufio/export_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/export_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/bufio/export_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,27 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio
+
+// Exported for testing only.
+import (
+	"unicode/utf8"
+)
+
+var IsSpace = isSpace
+
+func (s *Scanner) MaxTokenSize(n int) {
+	if n < utf8.UTFMax || n > 1e9 {
+		panic("bad max token size")
+	}
+	if n < len(s.buf) {
+		s.buf = make([]byte, n)
+	}
+	s.maxTokenSize = n
+}
+
+// ErrOrEOF is like Err, but returns EOF. Used to test a corner case.
+func (s *Scanner) ErrOrEOF() error {
+	return s.err
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan.go gcc-4.8.1/libgo/go/bufio/scan.go
--- gcc-4.8.1.orig/libgo/go/bufio/scan.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/bufio/scan.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,346 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio
+
+import (
+	"bytes"
+	"errors"
+	"io"
+	"unicode/utf8"
+)
+
+// Scanner provides a convenient interface for reading data such as
+// a file of newline-delimited lines of text. Successive calls to
+// the Scan method will step through the 'tokens' of a file, skipping
+// the bytes between the tokens. The specification of a token is
+// defined by a split function of type SplitFunc; the default split
+// function breaks the input into lines with line termination stripped. Split
+// functions are defined in this package for scanning a file into
+// lines, bytes, UTF-8-encoded runes, and space-delimited words. The
+// client may instead provide a custom split function.
+//
+// Scanning stops unrecoverably at EOF, the first I/O error, or a token too
+// large to fit in the buffer. When a scan stops, the reader may have
+// advanced arbitrarily far past the last token. Programs that need more
+// control over error handling or large tokens, or must run sequential scans
+// on a reader, should use bufio.Reader instead.
+//
+type Scanner struct {
+	r            io.Reader // The reader provided by the client.
+	split        SplitFunc // The function to split the tokens.
+	maxTokenSize int       // Maximum size of a token; modified by tests.
+	token        []byte    // Last token returned by split.
+	buf          []byte    // Buffer used as argument to split.
+	start        int       // First non-processed byte in buf.
+	end          int       // End of data in buf.
+	err          error     // Sticky error.
+}
+
+// SplitFunc is the signature of the split function used to tokenize the
+// input. The arguments are an initial substring of the remaining unprocessed
+// data and a flag, atEOF, that reports whether the Reader has no more data
+// to give. The return values are the number of bytes to advance the input
+// and the next token to return to the user, plus an error, if any. If the
+// data does not yet hold a complete token, for instance if it has no newline
+// while scanning lines, SplitFunc can return (0, nil) to signal the Scanner
+// to read more data into the slice and try again with a longer slice
+// starting at the same point in the input.
+//
+// If the returned error is non-nil, scanning stops and the error
+// is returned to the client.
+//
+// The function is never called with an empty data slice unless atEOF
+// is true. If atEOF is true, however, data may be non-empty and,
+// as always, holds unprocessed text.
+type SplitFunc func(data []byte, atEOF bool) (advance int, token []byte, err error)
+
+// Errors returned by Scanner.
+var (
+	ErrTooLong         = errors.New("bufio.Scanner: token too long")
+	ErrNegativeAdvance = errors.New("bufio.Scanner: SplitFunc returns negative advance count")
+	ErrAdvanceTooFar   = errors.New("bufio.Scanner: SplitFunc returns advance count beyond input")
+)
+
+const (
+	// Maximum size used to buffer a token. The actual maximum token size
+	// may be smaller as the buffer may need to include, for instance, a newline.
+	MaxScanTokenSize = 64 * 1024
+)
+
+// NewScanner returns a new Scanner to read from r.
+// The split function defaults to ScanLines.
+func NewScanner(r io.Reader) *Scanner {
+	return &Scanner{
+		r:            r,
+		split:        ScanLines,
+		maxTokenSize: MaxScanTokenSize,
+		buf:          make([]byte, 4096), // Plausible starting size; needn't be large.
+	}
+}
+
+// Err returns the first non-EOF error that was encountered by the Scanner.
+func (s *Scanner) Err() error {
+	if s.err == io.EOF {
+		return nil
+	}
+	return s.err
+}
+
+// Bytes returns the most recent token generated by a call to Scan.
+// The underlying array may point to data that will be overwritten
+// by a subsequent call to Scan. It does no allocation.
+func (s *Scanner) Bytes() []byte {
+	return s.token
+}
+
+// Text returns the most recent token generated by a call to Scan
+// as a newly allocated string holding its bytes.
+func (s *Scanner) Text() string {
+	return string(s.token)
+}
+
+// Scan advances the Scanner to the next token, which will then be
+// available through the Bytes or Text method. It returns false when the
+// scan stops, either by reaching the end of the input or an error.
+// After Scan returns false, the Err method will return any error that
+// occurred during scanning, except that if it was io.EOF, Err
+// will return nil.
+func (s *Scanner) Scan() bool {
+	// Loop until we have a token.
+	for {
+		// See if we can get a token with what we already have.
+		if s.end > s.start {
+			advance, token, err := s.split(s.buf[s.start:s.end], s.err != nil)
+			if err != nil {
+				s.setErr(err)
+				return false
+			}
+			if !s.advance(advance) {
+				return false
+			}
+			s.token = token
+			if token != nil {
+				return true
+			}
+		}
+		// We cannot generate a token with what we are holding.
+		// If we've already hit EOF or an I/O error, we are done.
+		if s.err != nil {
+			// Shut it down.
+			s.start = 0
+			s.end = 0
+			return false
+		}
+		// Must read more data.
+		// First, shift data to beginning of buffer if there's lots of empty space
+		// or space is neded.
+		if s.start > 0 && (s.end == len(s.buf) || s.start > len(s.buf)/2) {
+			copy(s.buf, s.buf[s.start:s.end])
+			s.end -= s.start
+			s.start = 0
+		}
+		// Is the buffer full? If so, resize.
+		if s.end == len(s.buf) {
+			if len(s.buf) >= s.maxTokenSize {
+				s.setErr(ErrTooLong)
+				return false
+			}
+			newSize := len(s.buf) * 2
+			if newSize > s.maxTokenSize {
+				newSize = s.maxTokenSize
+			}
+			newBuf := make([]byte, newSize)
+			copy(newBuf, s.buf[s.start:s.end])
+			s.buf = newBuf
+			s.end -= s.start
+			s.start = 0
+			continue
+		}
+		// Finally we can read some input. Make sure we don't get stuck with
+		// a misbehaving Reader. Officially we don't need to do this, but let's
+		// be extra careful: Scanner is for safe, simple jobs.
+		for loop := 0; ; {
+			n, err := s.r.Read(s.buf[s.end:len(s.buf)])
+			s.end += n
+			if err != nil {
+				s.setErr(err)
+				break
+			}
+			if n > 0 {
+				break
+			}
+			loop++
+			if loop > 100 {
+				s.setErr(io.ErrNoProgress)
+				break
+			}
+		}
+	}
+}
+
+// advance consumes n bytes of the buffer. It reports whether the advance was legal.
+func (s *Scanner) advance(n int) bool {
+	if n < 0 {
+		s.setErr(ErrNegativeAdvance)
+		return false
+	}
+	if n > s.end-s.start {
+		s.setErr(ErrAdvanceTooFar)
+		return false
+	}
+	s.start += n
+	return true
+}
+
+// setErr records the first error encountered.
+func (s *Scanner) setErr(err error) {
+	if s.err == nil || s.err == io.EOF {
+		s.err = err
+	}
+}
+
+// Split sets the split function for the Scanner. If called, it must be
+// called before Scan. The default split function is ScanLines.
+func (s *Scanner) Split(split SplitFunc) {
+	s.split = split
+}
+
+// Split functions
+
+// ScanBytes is a split function for a Scanner that returns each byte as a token.
+func ScanBytes(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+	return 1, data[0:1], nil
+}
+
+var errorRune = []byte(string(utf8.RuneError))
+
+// ScanRunes is a split function for a Scanner that returns each
+// UTF-8-encoded rune as a token. The sequence of runes returned is
+// equivalent to that from a range loop over the input as a string, which
+// means that erroneous UTF-8 encodings translate to U+FFFD = "\xef\xbf\xbd".
+// Because of the Scan interface, this makes it impossible for the client to
+// distinguish correctly encoded replacement runes from encoding errors.
+func ScanRunes(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+
+	// Fast path 1: ASCII.
+	if data[0] < utf8.RuneSelf {
+		return 1, data[0:1], nil
+	}
+
+	// Fast path 2: Correct UTF-8 decode without error.
+	_, width := utf8.DecodeRune(data)
+	if width > 1 {
+		// It's a valid encoding. Width cannot be one for a correctly encoded
+		// non-ASCII rune.
+		return width, data[0:width], nil
+	}
+
+	// We know it's an error: we have width==1 and implicitly r==utf8.RuneError.
+	// Is the error because there wasn't a full rune to be decoded?
+	// FullRune distinguishes correctly between erroneous and incomplete encodings.
+	if !atEOF && !utf8.FullRune(data) {
+		// Incomplete; get more bytes.
+		return 0, nil, nil
+	}
+
+	// We have a real UTF-8 encoding error. Return a properly encoded error rune
+	// but advance only one byte. This matches the behavior of a range loop over
+	// an incorrectly encoded string.
+	return 1, errorRune, nil
+}
+
+// dropCR drops a terminal \r from the data.
+func dropCR(data []byte) []byte {
+	if len(data) > 0 && data[len(data)-1] == '\r' {
+		return data[0 : len(data)-1]
+	}
+	return data
+}
+
+// ScanLines is a split function for a Scanner that returns each line of
+// text, stripped of any trailing end-of-line marker. The returned line may
+// be empty. The end-of-line marker is one optional carriage return followed
+// by one mandatory newline. In regular expression notation, it is `\r?\n`.
+// The last non-empty line of input will be returned even if it has no
+// newline.
+func ScanLines(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+	if i := bytes.IndexByte(data, '\n'); i >= 0 {
+		// We have a full newline-terminated line.
+		return i + 1, dropCR(data[0:i]), nil
+	}
+	// If we're at EOF, we have a final, non-terminated line. Return it.
+	if atEOF {
+		return len(data), dropCR(data), nil
+	}
+	// Request more data.
+	return 0, nil, nil
+}
+
+// isSpace returns whether the character is a Unicode white space character.
+// We avoid dependency on the unicode package, but check validity of the implementation
+// in the tests.
+func isSpace(r rune) bool {
+	if r <= '\u00FF' {
+		// Obvious ASCII ones: \t through \r plus space. Plus two Latin-1 oddballs.
+		switch r {
+		case ' ', '\t', '\n', '\v', '\f', '\r':
+			return true
+		case '\u0085', '\u00A0':
+			return true
+		}
+		return false
+	}
+	// High-valued ones.
+	if '\u2000' <= r && r <= '\u200a' {
+		return true
+	}
+	switch r {
+	case '\u1680', '\u180e', '\u2028', '\u2029', '\u202f', '\u205f', '\u3000':
+		return true
+	}
+	return false
+}
+
+// ScanWords is a split function for a Scanner that returns each
+// space-separated word of text, with surrounding spaces deleted. It will
+// never return an empty string. The definition of space is set by
+// unicode.IsSpace.
+func ScanWords(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	// Skip leading spaces.
+	start := 0
+	for width := 0; start < len(data); start += width {
+		var r rune
+		r, width = utf8.DecodeRune(data[start:])
+		if !isSpace(r) {
+			break
+		}
+	}
+	if atEOF && len(data) == 0 {
+		return 0, nil, nil
+	}
+	// Scan until space, marking end of word.
+	for width, i := 0, start; i < len(data); i += width {
+		var r rune
+		r, width = utf8.DecodeRune(data[i:])
+		if isSpace(r) {
+			return i + width, data[start:i], nil
+		}
+	}
+	// If we're at EOF, we have a final, non-empty, non-terminated word. Return it.
+	if atEOF && len(data) > start {
+		return len(data), data[start:], nil
+	}
+	// Request more data.
+	return 0, nil, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bufio/scan_test.go gcc-4.8.1/libgo/go/bufio/scan_test.go
--- gcc-4.8.1.orig/libgo/go/bufio/scan_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/bufio/scan_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,406 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bufio_test
+
+import (
+	. "bufio"
+	"bytes"
+	"errors"
+	"io"
+	"strings"
+	"testing"
+	"unicode"
+	"unicode/utf8"
+)
+
+// Test white space table matches the Unicode definition.
+func TestSpace(t *testing.T) {
+	for r := rune(0); r <= utf8.MaxRune; r++ {
+		if IsSpace(r) != unicode.IsSpace(r) {
+			t.Fatalf("white space property disagrees: %#U should be %t", r, unicode.IsSpace(r))
+		}
+	}
+}
+
+var scanTests = []string{
+	"",
+	"a",
+	"Â¼",
+	"â˜¹",
+	"\x81",   // UTF-8 error
+	"\uFFFD", // correctly encoded RuneError
+	"abcdefgh",
+	"abc def\n\t\tgh    ",
+	"abcÂ¼â˜¹\x81\uFFFDæ—¥æœ¬èªž\x82abc",
+}
+
+func TestScanByte(t *testing.T) {
+	for n, test := range scanTests {
+		buf := bytes.NewBufferString(test)
+		s := NewScanner(buf)
+		s.Split(ScanBytes)
+		var i int
+		for i = 0; s.Scan(); i++ {
+			if b := s.Bytes(); len(b) != 1 || b[0] != test[i] {
+				t.Errorf("#%d: %d: expected %q got %q", n, i, test, b)
+			}
+		}
+		if i != len(test) {
+			t.Errorf("#%d: termination expected at %d; got %d", n, len(test), i)
+		}
+		err := s.Err()
+		if err != nil {
+			t.Errorf("#%d: %v", n, err)
+		}
+	}
+}
+
+// Test that the rune splitter returns same sequence of runes (not bytes) as for range string.
+func TestScanRune(t *testing.T) {
+	for n, test := range scanTests {
+		buf := bytes.NewBufferString(test)
+		s := NewScanner(buf)
+		s.Split(ScanRunes)
+		var i, runeCount int
+		var expect rune
+		// Use a string range loop to validate the sequence of runes.
+		for i, expect = range string(test) {
+			if !s.Scan() {
+				break
+			}
+			runeCount++
+			got, _ := utf8.DecodeRune(s.Bytes())
+			if got != expect {
+				t.Errorf("#%d: %d: expected %q got %q", n, i, expect, got)
+			}
+		}
+		if s.Scan() {
+			t.Errorf("#%d: scan ran too long, got %q", n, s.Text())
+		}
+		testRuneCount := utf8.RuneCountInString(test)
+		if runeCount != testRuneCount {
+			t.Errorf("#%d: termination expected at %d; got %d", n, testRuneCount, runeCount)
+		}
+		err := s.Err()
+		if err != nil {
+			t.Errorf("#%d: %v", n, err)
+		}
+	}
+}
+
+var wordScanTests = []string{
+	"",
+	" ",
+	"\n",
+	"a",
+	" a ",
+	"abc def",
+	" abc def ",
+	" abc\tdef\nghi\rjkl\fmno\vpqr\u0085stu\u00a0\n",
+}
+
+// Test that the word splitter returns the same data as strings.Fields.
+func TestScanWords(t *testing.T) {
+	for n, test := range wordScanTests {
+		buf := bytes.NewBufferString(test)
+		s := NewScanner(buf)
+		s.Split(ScanWords)
+		words := strings.Fields(test)
+		var wordCount int
+		for wordCount = 0; wordCount < len(words); wordCount++ {
+			if !s.Scan() {
+				break
+			}
+			got := s.Text()
+			if got != words[wordCount] {
+				t.Errorf("#%d: %d: expected %q got %q", n, wordCount, words[wordCount], got)
+			}
+		}
+		if s.Scan() {
+			t.Errorf("#%d: scan ran too long, got %q", n, s.Text())
+		}
+		if wordCount != len(words) {
+			t.Errorf("#%d: termination expected at %d; got %d", n, len(words), wordCount)
+		}
+		err := s.Err()
+		if err != nil {
+			t.Errorf("#%d: %v", n, err)
+		}
+	}
+}
+
+// slowReader is a reader that returns only a few bytes at a time, to test the incremental
+// reads in Scanner.Scan.
+type slowReader struct {
+	max int
+	buf *bytes.Buffer
+}
+
+func (sr *slowReader) Read(p []byte) (n int, err error) {
+	if len(p) > sr.max {
+		p = p[0:sr.max]
+	}
+	return sr.buf.Read(p)
+}
+
+// genLine writes to buf a predictable but non-trivial line of text of length
+// n, including the terminal newline and an occasional carriage return.
+// If addNewline is false, the \r and \n are not emitted.
+func genLine(buf *bytes.Buffer, lineNum, n int, addNewline bool) {
+	buf.Reset()
+	doCR := lineNum%5 == 0
+	if doCR {
+		n--
+	}
+	for i := 0; i < n-1; i++ { // Stop early for \n.
+		c := 'a' + byte(lineNum+i)
+		if c == '\n' || c == '\r' { // Don't confuse us.
+			c = 'N'
+		}
+		buf.WriteByte(c)
+	}
+	if addNewline {
+		if doCR {
+			buf.WriteByte('\r')
+		}
+		buf.WriteByte('\n')
+	}
+	return
+}
+
+// Test the line splitter, including some carriage returns but no long lines.
+func TestScanLongLines(t *testing.T) {
+	const smallMaxTokenSize = 256 // Much smaller for more efficient testing.
+	// Build a buffer of lots of line lengths up to but not exceeding smallMaxTokenSize.
+	tmp := new(bytes.Buffer)
+	buf := new(bytes.Buffer)
+	lineNum := 0
+	j := 0
+	for i := 0; i < 2*smallMaxTokenSize; i++ {
+		genLine(tmp, lineNum, j, true)
+		if j < smallMaxTokenSize {
+			j++
+		} else {
+			j--
+		}
+		buf.Write(tmp.Bytes())
+		lineNum++
+	}
+	s := NewScanner(&slowReader{1, buf})
+	s.Split(ScanLines)
+	s.MaxTokenSize(smallMaxTokenSize)
+	j = 0
+	for lineNum := 0; s.Scan(); lineNum++ {
+		genLine(tmp, lineNum, j, false)
+		if j < smallMaxTokenSize {
+			j++
+		} else {
+			j--
+		}
+		line := tmp.String() // We use the string-valued token here, for variety.
+		if s.Text() != line {
+			t.Errorf("%d: bad line: %d %d\n%.100q\n%.100q\n", lineNum, len(s.Bytes()), len(line), s.Text(), line)
+		}
+	}
+	err := s.Err()
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+// Test that the line splitter errors out on a long line.
+func TestScanLineTooLong(t *testing.T) {
+	const smallMaxTokenSize = 256 // Much smaller for more efficient testing.
+	// Build a buffer of lots of line lengths up to but not exceeding smallMaxTokenSize.
+	tmp := new(bytes.Buffer)
+	buf := new(bytes.Buffer)
+	lineNum := 0
+	j := 0
+	for i := 0; i < 2*smallMaxTokenSize; i++ {
+		genLine(tmp, lineNum, j, true)
+		j++
+		buf.Write(tmp.Bytes())
+		lineNum++
+	}
+	s := NewScanner(&slowReader{3, buf})
+	s.Split(ScanLines)
+	s.MaxTokenSize(smallMaxTokenSize)
+	j = 0
+	for lineNum := 0; s.Scan(); lineNum++ {
+		genLine(tmp, lineNum, j, false)
+		if j < smallMaxTokenSize {
+			j++
+		} else {
+			j--
+		}
+		line := tmp.Bytes()
+		if !bytes.Equal(s.Bytes(), line) {
+			t.Errorf("%d: bad line: %d %d\n%.100q\n%.100q\n", lineNum, len(s.Bytes()), len(line), s.Bytes(), line)
+		}
+	}
+	err := s.Err()
+	if err != ErrTooLong {
+		t.Fatalf("expected ErrTooLong; got %s", err)
+	}
+}
+
+// Test that the line splitter handles a final line without a newline.
+func testNoNewline(text string, lines []string, t *testing.T) {
+	buf := bytes.NewBufferString(text)
+	s := NewScanner(&slowReader{7, buf})
+	s.Split(ScanLines)
+	for lineNum := 0; s.Scan(); lineNum++ {
+		line := lines[lineNum]
+		if s.Text() != line {
+			t.Errorf("%d: bad line: %d %d\n%.100q\n%.100q\n", lineNum, len(s.Bytes()), len(line), s.Bytes(), line)
+		}
+	}
+	err := s.Err()
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+var noNewlineLines = []string{
+	"abcdefghijklmn\nopqrstuvwxyz",
+}
+
+// Test that the line splitter handles a final line without a newline.
+func TestScanLineNoNewline(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+	}
+	testNoNewline(text, lines, t)
+}
+
+// Test that the line splitter handles a final line with a carriage return but nonewline.
+func TestScanLineReturnButNoNewline(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz\r"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+	}
+	testNoNewline(text, lines, t)
+}
+
+// Test that the line splitter handles a final empty line.
+func TestScanLineEmptyFinalLine(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz\n\n"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+		"",
+	}
+	testNoNewline(text, lines, t)
+}
+
+// Test that the line splitter handles a final empty line with a carriage return but no newline.
+func TestScanLineEmptyFinalLineWithCR(t *testing.T) {
+	const text = "abcdefghijklmn\nopqrstuvwxyz\n\r"
+	lines := []string{
+		"abcdefghijklmn",
+		"opqrstuvwxyz",
+		"",
+	}
+	testNoNewline(text, lines, t)
+}
+
+var testError = errors.New("testError")
+
+// Test the correct error is returned when the split function errors out.
+func TestSplitError(t *testing.T) {
+	// Create a split function that delivers a little data, then a predictable error.
+	numSplits := 0
+	const okCount = 7
+	errorSplit := func(data []byte, atEOF bool) (advance int, token []byte, err error) {
+		if atEOF {
+			panic("didn't get enough data")
+		}
+		if numSplits >= okCount {
+			return 0, nil, testError
+		}
+		numSplits++
+		return 1, data[0:1], nil
+	}
+	// Read the data.
+	const text = "abcdefghijklmnopqrstuvwxyz"
+	buf := bytes.NewBufferString(text)
+	s := NewScanner(&slowReader{1, buf})
+	s.Split(errorSplit)
+	var i int
+	for i = 0; s.Scan(); i++ {
+		if len(s.Bytes()) != 1 || text[i] != s.Bytes()[0] {
+			t.Errorf("#%d: expected %q got %q", i, text[i], s.Bytes()[0])
+		}
+	}
+	// Check correct termination location and error.
+	if i != okCount {
+		t.Errorf("unexpected termination; expected %d tokens got %d", okCount, i)
+	}
+	err := s.Err()
+	if err != testError {
+		t.Fatalf("expected %q got %v", testError, err)
+	}
+}
+
+// Test that an EOF is overridden by a user-generated scan error.
+func TestErrAtEOF(t *testing.T) {
+	s := NewScanner(strings.NewReader("1 2 33"))
+	// This spitter will fail on last entry, after s.err==EOF.
+	split := func(data []byte, atEOF bool) (advance int, token []byte, err error) {
+		advance, token, err = ScanWords(data, atEOF)
+		if len(token) > 1 {
+			if s.ErrOrEOF() != io.EOF {
+				t.Fatal("not testing EOF")
+			}
+			err = testError
+		}
+		return
+	}
+	s.Split(split)
+	for s.Scan() {
+	}
+	if s.Err() != testError {
+		t.Fatal("wrong error:", s.Err())
+	}
+}
+
+// Test for issue 5268.
+type alwaysError struct{}
+
+func (alwaysError) Read(p []byte) (int, error) {
+	return 0, io.ErrUnexpectedEOF
+}
+
+func TestNonEOFWithEmptyRead(t *testing.T) {
+	scanner := NewScanner(alwaysError{})
+	for scanner.Scan() {
+		t.Fatal("read should fail")
+	}
+	err := scanner.Err()
+	if err != io.ErrUnexpectedEOF {
+		t.Errorf("unexpected error: %v", err)
+	}
+}
+
+// Test that Scan finishes if we have endless empty reads.
+type endlessZeros struct{}
+
+func (endlessZeros) Read(p []byte) (int, error) {
+	return 0, nil
+}
+
+func TestBadReader(t *testing.T) {
+	scanner := NewScanner(endlessZeros{})
+	for scanner.Scan() {
+		t.Fatal("read should fail")
+	}
+	err := scanner.Err()
+	if err != io.ErrNoProgress {
+		t.Errorf("unexpected error: %v", err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/builtin/builtin.go gcc-4.8.1/libgo/go/builtin/builtin.go
--- gcc-4.8.1.orig/libgo/go/builtin/builtin.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/builtin/builtin.go	2013-07-16 01:55:04.520470000 -0500
@@ -13,6 +13,12 @@
 // bool is the set of boolean values, true and false.
 type bool bool
 
+// true and false are the two untyped boolean values.
+const (
+	true  = 0 == 0 // Untyped bool.
+	false = 0 != 0 // Untyped bool.
+)
+
 // uint8 is the set of all unsigned 8-bit integers.
 // Range: 0 through 255.
 type uint8 uint8
@@ -85,6 +91,15 @@
 // used, by convention, to distinguish character values from integer values.
 type rune rune
 
+// iota is a predeclared identifier representing the untyped integer ordinal
+// number of the current const specification in a (usually parenthesized)
+// const declaration. It is zero-indexed.
+const iota = 0 // Untyped int.
+
+// nil is a predeclared identifier representing the zero value for a
+// pointer, channel, func, interface, map, or slice type.
+var nil Type // Type must be a pointer, channel, func, interface, map, or slice type
+
 // Type is here for the purposes of documentation only. It is a stand-in
 // for any Go type, but represents the same type for any given function
 // invocation.
@@ -114,6 +129,8 @@
 // result of append, often in the variable holding the slice itself:
 //	slice = append(slice, elem1, elem2)
 //	slice = append(slice, anotherSlice...)
+// As a special case, it is legal to append a string to a byte slice, like this:
+//	slice = append([]byte("hello "), "world"...)
 func append(slice []Type, elems ...Type) []Type
 
 // The copy built-in function copies elements from a source slice into a
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer.go gcc-4.8.1/libgo/go/bytes/buffer.go
--- gcc-4.8.1.orig/libgo/go/bytes/buffer.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/bytes/buffer.go	2013-07-16 01:55:04.520470000 -0500
@@ -87,6 +87,13 @@
 		var buf []byte
 		if b.buf == nil && n <= len(b.bootstrap) {
 			buf = b.bootstrap[0:]
+		} else if m+n <= cap(b.buf)/2 {
+			// We can slide things down instead of allocating a new
+			// slice. We only need m+n <= cap(b.buf) to slide, but
+			// we instead let capacity get twice as large so we
+			// don't spend all our time copying.
+			copy(b.buf[:], b.buf[b.off:])
+			buf = b.buf[:m]
 		} else {
 			// not enough space anywhere
 			buf = makeSlice(2*cap(b.buf) + n)
@@ -112,20 +119,18 @@
 	b.buf = b.buf[0:m]
 }
 
-// Write appends the contents of p to the buffer.  The return
-// value n is the length of p; err is always nil.
-// If the buffer becomes too large, Write will panic with
-// ErrTooLarge.
+// Write appends the contents of p to the buffer, growing the buffer as
+// needed. The return value n is the length of p; err is always nil. If the
+// buffer becomes too large, Write will panic with ErrTooLarge.
 func (b *Buffer) Write(p []byte) (n int, err error) {
 	b.lastRead = opInvalid
 	m := b.grow(len(p))
 	return copy(b.buf[m:], p), nil
 }
 
-// WriteString appends the contents of s to the buffer.  The return
-// value n is the length of s; err is always nil.
-// If the buffer becomes too large, WriteString will panic with
-// ErrTooLarge.
+// WriteString appends the contents of s to the buffer, growing the buffer as
+// needed. The return value n is the length of s; err is always nil. If the
+// buffer becomes too large, WriteString will panic with ErrTooLarge.
 func (b *Buffer) WriteString(s string) (n int, err error) {
 	b.lastRead = opInvalid
 	m := b.grow(len(s))
@@ -138,12 +143,10 @@
 // underlying buffer.
 const MinRead = 512
 
-// ReadFrom reads data from r until EOF and appends it to the buffer.
-// The return value n is the number of bytes read.
-// Any error except io.EOF encountered during the read
-// is also returned.
-// If the buffer becomes too large, ReadFrom will panic with
-// ErrTooLarge.
+// ReadFrom reads data from r until EOF and appends it to the buffer, growing
+// the buffer as needed. The return value n is the number of bytes read. Any
+// error except io.EOF encountered during the read is also returned. If the
+// buffer becomes too large, ReadFrom will panic with ErrTooLarge.
 func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error) {
 	b.lastRead = opInvalid
 	// If buffer is empty, reset to recover space.
@@ -188,10 +191,10 @@
 	return make([]byte, n)
 }
 
-// WriteTo writes data to w until the buffer is drained or an error
-// occurs. The return value n is the number of bytes written; it always
-// fits into an int, but it is int64 to match the io.WriterTo interface.
-// Any error encountered during the write is also returned.
+// WriteTo writes data to w until the buffer is drained or an error occurs.
+// The return value n is the number of bytes written; it always fits into an
+// int, but it is int64 to match the io.WriterTo interface. Any error
+// encountered during the write is also returned.
 func (b *Buffer) WriteTo(w io.Writer) (n int64, err error) {
 	b.lastRead = opInvalid
 	if b.off < len(b.buf) {
@@ -216,10 +219,9 @@
 	return
 }
 
-// WriteByte appends the byte c to the buffer.
-// The returned error is always nil, but is included
-// to match bufio.Writer's WriteByte.
-// If the buffer becomes too large, WriteByte will panic with
+// WriteByte appends the byte c to the buffer, growing the buffer as needed.
+// The returned error is always nil, but is included to match bufio.Writer's
+// WriteByte. If the buffer becomes too large, WriteByte will panic with
 // ErrTooLarge.
 func (b *Buffer) WriteByte(c byte) error {
 	b.lastRead = opInvalid
@@ -228,12 +230,10 @@
 	return nil
 }
 
-// WriteRune appends the UTF-8 encoding of Unicode
-// code point r to the buffer, returning its length and
-// an error, which is always nil but is included
-// to match bufio.Writer's WriteRune.
-// If the buffer becomes too large, WriteRune will panic with
-// ErrTooLarge.
+// WriteRune appends the UTF-8 encoding of Unicode code point r to the
+// buffer, returning its length and an error, which is always nil but is
+// included to match bufio.Writer's WriteRune. The buffer is grown as needed;
+// if it becomes too large, WriteRune will panic with ErrTooLarge.
 func (b *Buffer) WriteRune(r rune) (n int, err error) {
 	if r < utf8.RuneSelf {
 		b.WriteByte(byte(r))
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/buffer_test.go gcc-4.8.1/libgo/go/bytes/buffer_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/buffer_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/bytes/buffer_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -475,3 +475,53 @@
 		t.Errorf("ReadByte = %q; want %q", c, 'm')
 	}
 }
+
+// Tests that we occasionally compact. Issue 5154.
+func TestBufferGrowth(t *testing.T) {
+	var b Buffer
+	buf := make([]byte, 1024)
+	b.Write(buf[0:1])
+	var cap0 int
+	for i := 0; i < 5<<10; i++ {
+		b.Write(buf)
+		b.Read(buf)
+		if i == 0 {
+			cap0 = b.Cap()
+		}
+	}
+	cap1 := b.Cap()
+	// (*Buffer).grow allows for 2x capacity slop before sliding,
+	// so set our error threshold at 3x.
+	if cap1 > cap0*3 {
+		t.Errorf("buffer cap = %d; too big (grew from %d)", cap1, cap0)
+	}
+}
+
+// From Issue 5154.
+func BenchmarkBufferNotEmptyWriteRead(b *testing.B) {
+	buf := make([]byte, 1024)
+	for i := 0; i < b.N; i++ {
+		var b Buffer
+		b.Write(buf[0:1])
+		for i := 0; i < 5<<10; i++ {
+			b.Write(buf)
+			b.Read(buf)
+		}
+	}
+}
+
+// Check that we don't compact too often. From Issue 5154.
+func BenchmarkBufferFullSmallReads(b *testing.B) {
+	buf := make([]byte, 1024)
+	for i := 0; i < b.N; i++ {
+		var b Buffer
+		b.Write(buf)
+		for b.Len()+20 < b.Cap() {
+			b.Write(buf[:10])
+		}
+		for i := 0; i < 5<<10; i++ {
+			b.Read(buf[:1])
+			b.Write(buf[:1])
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_decl.go gcc-4.8.1/libgo/go/bytes/bytes_decl.go
--- gcc-4.8.1.orig/libgo/go/bytes/bytes_decl.go	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/bytes/bytes_decl.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,5 +4,13 @@
 
 package bytes
 
+//go:noescape
+
 // IndexByte returns the index of the first instance of c in s, or -1 if c is not present in s.
 func IndexByte(s []byte, c byte) int // asm_$GOARCH.s
+
+//go:noescape
+
+// Equal returns a boolean reporting whether a == b.
+// A nil argument is equivalent to an empty slice.
+func Equal(a, b []byte) bool // asm_arm.s or ../runtime/asm_{386,amd64}.s
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes.go gcc-4.8.1/libgo/go/bytes/bytes.go
--- gcc-4.8.1.orig/libgo/go/bytes/bytes.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/bytes/bytes.go	2013-07-16 01:55:04.520470000 -0500
@@ -37,10 +37,6 @@
 	return 0
 }
 
-// Equal returns a boolean reporting whether a == b.
-// A nil argument is equivalent to an empty slice.
-func Equal(a, b []byte) bool
-
 func equalPortable(a, b []byte) bool {
 	if len(a) != len(b) {
 		return false
@@ -465,10 +461,10 @@
 	return unicode.IsSpace(r)
 }
 
-// BUG(r): The rule Title uses for word boundaries does not handle Unicode punctuation properly.
-
 // Title returns a copy of s with all Unicode letters that begin words
 // mapped to their title case.
+//
+// BUG: The rule Title uses for word boundaries does not handle Unicode punctuation properly.
 func Title(s []byte) []byte {
 	// Use a closure here to remember state.
 	// Hackish but effective. Depends on Map scanning in order and calling
@@ -515,6 +511,24 @@
 	return TrimRightFunc(TrimLeftFunc(s, f), f)
 }
 
+// TrimPrefix returns s without the provided leading prefix string.
+// If s doesn't start with prefix, s is returned unchanged.
+func TrimPrefix(s, prefix []byte) []byte {
+	if HasPrefix(s, prefix) {
+		return s[len(prefix):]
+	}
+	return s
+}
+
+// TrimSuffix returns s without the provided trailing suffix string.
+// If s doesn't end with suffix, s is returned unchanged.
+func TrimSuffix(s, suffix []byte) []byte {
+	if HasSuffix(s, suffix) {
+		return s[:len(s)-len(suffix)]
+	}
+	return s
+}
+
 // IndexFunc interprets s as a sequence of UTF-8-encoded Unicode code points.
 // It returns the byte index in s of the first Unicode
 // code point satisfying f(c), or -1 if none do.
@@ -553,7 +567,10 @@
 // inverted.
 func lastIndexFunc(s []byte, f func(r rune) bool, truth bool) int {
 	for i := len(s); i > 0; {
-		r, size := utf8.DecodeLastRune(s[0:i])
+		r, size := rune(s[i-1]), 1
+		if r >= utf8.RuneSelf {
+			r, size = utf8.DecodeLastRune(s[0:i])
+		}
 		i -= size
 		if f(r) == truth {
 			return i
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/bytes_test.go gcc-4.8.1/libgo/go/bytes/bytes_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/bytes_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/bytes/bytes_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -61,6 +61,10 @@
 	{[]byte("ab"), []byte("x"), -1},
 	{[]byte("x"), []byte("a"), 1},
 	{[]byte("b"), []byte("x"), -1},
+	// test runtimeÂ·memeq's chunked implementation
+	{[]byte("abcdefgh"), []byte("abcdefgh"), 0},
+	{[]byte("abcdefghi"), []byte("abcdefghi"), 0},
+	{[]byte("abcdefghi"), []byte("abcdefghj"), -1},
 	// nil tests
 	{nil, nil, 0},
 	{[]byte(""), nil, 0},
@@ -86,6 +90,58 @@
 	}
 }
 
+func TestEqual(t *testing.T) {
+	var size = 128
+	if testing.Short() {
+		size = 32
+	}
+	a := make([]byte, size)
+	b := make([]byte, size)
+	b_init := make([]byte, size)
+	// randomish but deterministic data
+	for i := 0; i < size; i++ {
+		a[i] = byte(17 * i)
+		b_init[i] = byte(23*i + 100)
+	}
+
+	for len := 0; len <= size; len++ {
+		for x := 0; x <= size-len; x++ {
+			for y := 0; y <= size-len; y++ {
+				copy(b, b_init)
+				copy(b[y:y+len], a[x:x+len])
+				if !Equal(a[x:x+len], b[y:y+len]) || !Equal(b[y:y+len], a[x:x+len]) {
+					t.Errorf("Equal(%d, %d, %d) = false", len, x, y)
+				}
+			}
+		}
+	}
+}
+
+// make sure Equal returns false for minimally different strings.  The data
+// is all zeros except for a single one in one location.
+func TestNotEqual(t *testing.T) {
+	var size = 128
+	if testing.Short() {
+		size = 32
+	}
+	a := make([]byte, size)
+	b := make([]byte, size)
+
+	for len := 0; len <= size; len++ {
+		for x := 0; x <= size-len; x++ {
+			for y := 0; y <= size-len; y++ {
+				for diffpos := x; diffpos < x+len; diffpos++ {
+					a[diffpos] = 1
+					if Equal(a[x:x+len], b[y:y+len]) || Equal(b[y:y+len], a[x:x+len]) {
+						t.Errorf("NotEqual(%d, %d, %d, %d) = true", len, x, y, diffpos)
+					}
+					a[diffpos] = 0
+				}
+			}
+		}
+	}
+}
+
 var indexTests = []BinOpTest{
 	{"", "", 0},
 	{"", "a", -1},
@@ -303,10 +359,30 @@
 	buf[n-1] = '\x00'
 }
 
+func BenchmarkEqual0(b *testing.B) {
+	var buf [4]byte
+	buf1 := buf[0:0]
+	buf2 := buf[1:1]
+	for i := 0; i < b.N; i++ {
+		eq := Equal(buf1, buf2)
+		if !eq {
+			b.Fatal("bad equal")
+		}
+	}
+}
+
+func BenchmarkEqual1(b *testing.B)           { bmEqual(b, Equal, 1) }
+func BenchmarkEqual6(b *testing.B)           { bmEqual(b, Equal, 6) }
+func BenchmarkEqual9(b *testing.B)           { bmEqual(b, Equal, 9) }
+func BenchmarkEqual15(b *testing.B)          { bmEqual(b, Equal, 15) }
+func BenchmarkEqual16(b *testing.B)          { bmEqual(b, Equal, 16) }
+func BenchmarkEqual20(b *testing.B)          { bmEqual(b, Equal, 20) }
 func BenchmarkEqual32(b *testing.B)          { bmEqual(b, Equal, 32) }
 func BenchmarkEqual4K(b *testing.B)          { bmEqual(b, Equal, 4<<10) }
 func BenchmarkEqual4M(b *testing.B)          { bmEqual(b, Equal, 4<<20) }
 func BenchmarkEqual64M(b *testing.B)         { bmEqual(b, Equal, 64<<20) }
+func BenchmarkEqualPort1(b *testing.B)       { bmEqual(b, EqualPortable, 1) }
+func BenchmarkEqualPort6(b *testing.B)       { bmEqual(b, EqualPortable, 6) }
 func BenchmarkEqualPort32(b *testing.B)      { bmEqual(b, EqualPortable, 32) }
 func BenchmarkEqualPort4K(b *testing.B)      { bmEqual(b, EqualPortable, 4<<10) }
 func BenchmarkEqualPortable4M(b *testing.B)  { bmEqual(b, EqualPortable, 4<<20) }
@@ -794,8 +870,8 @@
 }
 
 type TrimTest struct {
-	f               string
-	in, cutset, out string
+	f            string
+	in, arg, out string
 }
 
 var trimTests = []TrimTest{
@@ -820,12 +896,17 @@
 	{"TrimRight", "", "123", ""},
 	{"TrimRight", "", "", ""},
 	{"TrimRight", "â˜º\xc0", "â˜º", "â˜º\xc0"},
+	{"TrimPrefix", "aabb", "a", "abb"},
+	{"TrimPrefix", "aabb", "b", "aabb"},
+	{"TrimSuffix", "aabb", "a", "aabb"},
+	{"TrimSuffix", "aabb", "b", "aab"},
 }
 
 func TestTrim(t *testing.T) {
 	for _, tc := range trimTests {
 		name := tc.f
 		var f func([]byte, string) []byte
+		var fb func([]byte, []byte) []byte
 		switch name {
 		case "Trim":
 			f = Trim
@@ -833,12 +914,21 @@
 			f = TrimLeft
 		case "TrimRight":
 			f = TrimRight
+		case "TrimPrefix":
+			fb = TrimPrefix
+		case "TrimSuffix":
+			fb = TrimSuffix
 		default:
 			t.Errorf("Undefined trim function %s", name)
 		}
-		actual := string(f([]byte(tc.in), tc.cutset))
+		var actual string
+		if f != nil {
+			actual = string(f([]byte(tc.in), tc.arg))
+		} else {
+			actual = string(fb([]byte(tc.in), []byte(tc.arg)))
+		}
 		if actual != tc.out {
-			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.cutset, actual, tc.out)
+			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.arg, actual, tc.out)
 		}
 	}
 }
@@ -1059,3 +1149,10 @@
 		FieldsFunc(fieldsInput, unicode.IsSpace)
 	}
 }
+
+func BenchmarkTrimSpace(b *testing.B) {
+	s := []byte("  Some text.  \n")
+	for i := 0; i < b.N; i++ {
+		TrimSpace(s)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/equal_test.go gcc-4.8.1/libgo/go/bytes/equal_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/equal_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/bytes/equal_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,47 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+//
+// +build linux
+
+package bytes_test
+
+import (
+	. "bytes"
+	"syscall"
+	"testing"
+	"unsafe"
+)
+
+// This file tests the situation where memeq is checking
+// data very near to a page boundary.  We want to make sure
+// equal does not read across the boundary and cause a page
+// fault where it shouldn't.
+
+// This test runs only on linux.  The code being tested is
+// not OS-specific, so it does not need to be tested on all
+// operating systems.
+
+func TestEqualNearPageBoundary(t *testing.T) {
+	pagesize := syscall.Getpagesize()
+	b := make([]byte, 4*pagesize)
+	i := pagesize
+	for ; uintptr(unsafe.Pointer(&b[i]))%uintptr(pagesize) != 0; i++ {
+	}
+	syscall.Mprotect(b[i-pagesize:i], 0)
+	syscall.Mprotect(b[i+pagesize:i+2*pagesize], 0)
+	defer syscall.Mprotect(b[i-pagesize:i], syscall.PROT_READ|syscall.PROT_WRITE)
+	defer syscall.Mprotect(b[i+pagesize:i+2*pagesize], syscall.PROT_READ|syscall.PROT_WRITE)
+
+	// both of these should fault
+	//pagesize += int(b[i-1])
+	//pagesize += int(b[i+pagesize])
+
+	for j := 0; j < pagesize; j++ {
+		b[i+j] = 'A'
+	}
+	for j := 0; j <= pagesize; j++ {
+		Equal(b[i:i+j], b[i+pagesize-j:i+pagesize])
+		Equal(b[i+pagesize-j:i+pagesize], b[i:i+j])
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/example_test.go gcc-4.8.1/libgo/go/bytes/example_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/example_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/bytes/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -66,3 +66,20 @@
 		// Found it!
 	}
 }
+
+func ExampleTrimSuffix() {
+	var b = []byte("Hello, goodbye, etc!")
+	b = bytes.TrimSuffix(b, []byte("goodbye, etc!"))
+	b = bytes.TrimSuffix(b, []byte("gopher"))
+	b = append(b, bytes.TrimSuffix([]byte("world!"), []byte("x!"))...)
+	os.Stdout.Write(b)
+	// Output: Hello, world!
+}
+
+func ExampleTrimPrefix() {
+	var b = []byte("Goodbye,, world!")
+	b = bytes.TrimPrefix(b, []byte("Goodbye,"))
+	b = bytes.TrimPrefix(b, []byte("See ya,"))
+	fmt.Printf("Hello%s", b)
+	// Output: Hello, world!
+}
diff -Naur gcc-4.8.1.orig/libgo/go/bytes/export_test.go gcc-4.8.1/libgo/go/bytes/export_test.go
--- gcc-4.8.1.orig/libgo/go/bytes/export_test.go	2012-01-11 19:31:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/bytes/export_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,3 +7,7 @@
 // Export func for testing
 var IndexBytePortable = indexBytePortable
 var EqualPortable = equalPortable
+
+func (b *Buffer) Cap() int {
+	return cap(b.buf)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/compress/bzip2/huffman.go gcc-4.8.1/libgo/go/compress/bzip2/huffman.go
--- gcc-4.8.1.orig/libgo/go/compress/bzip2/huffman.go	2011-12-02 20:17:34.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/bzip2/huffman.go	2013-07-16 01:55:04.520470000 -0500
@@ -54,8 +54,6 @@
 			nodeIndex = node.right
 		}
 	}
-
-	panic("unreachable")
 }
 
 // newHuffmanTree builds a Huffman tree from a slice containing the code
diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/deflate_test.go gcc-4.8.1/libgo/go/compress/flate/deflate_test.go
--- gcc-4.8.1.orig/libgo/go/compress/flate/deflate_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/flate/deflate_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -158,7 +158,6 @@
 		}
 		<-b.ready
 	}
-	panic("unreachable")
 }
 
 func (b *syncBuffer) signal() {
diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/inflate.go gcc-4.8.1/libgo/go/compress/flate/inflate.go
--- gcc-4.8.1.orig/libgo/go/compress/flate/inflate.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/flate/inflate.go	2013-07-16 01:55:04.520470000 -0500
@@ -263,7 +263,6 @@
 		}
 		f.step(f)
 	}
-	panic("unreachable")
 }
 
 func (f *decompressor) Close() error {
@@ -495,7 +494,6 @@
 			return
 		}
 	}
-	panic("unreached")
 }
 
 // copyHist copies f.copyLen bytes from f.hist (f.copyDist bytes ago) to itself.
@@ -642,7 +640,6 @@
 			return int(chunk >> huffmanValueShift), nil
 		}
 	}
-	return 0, CorruptInputError(f.roffset)
 }
 
 // Flush any buffered output to the underlying writer.
diff -Naur gcc-4.8.1.orig/libgo/go/compress/flate/token.go gcc-4.8.1/libgo/go/compress/flate/token.go
--- gcc-4.8.1.orig/libgo/go/compress/flate/token.go	2009-12-21 23:56:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/flate/token.go	2013-07-16 01:55:04.520470000 -0500
@@ -99,5 +99,4 @@
 	default:
 		return offsetCodes[off>>14] + 28
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gunzip.go gcc-4.8.1/libgo/go/compress/gzip/gunzip.go
--- gcc-4.8.1.orig/libgo/go/compress/gzip/gunzip.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/gzip/gunzip.go	2013-07-16 01:55:04.520470000 -0500
@@ -120,7 +120,6 @@
 			return string(z.buf[0:i]), nil
 		}
 	}
-	panic("not reached")
 }
 
 func (z *Reader) read2() (uint32, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip.go gcc-4.8.1/libgo/go/compress/gzip/gzip.go
--- gcc-4.8.1.orig/libgo/go/compress/gzip/gzip.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/gzip/gzip.go	2013-07-16 01:55:04.520470000 -0500
@@ -28,7 +28,7 @@
 	Header
 	w          io.Writer
 	level      int
-	compressor io.WriteCloser
+	compressor *flate.Writer
 	digest     hash.Hash32
 	size       uint32
 	closed     bool
@@ -191,6 +191,28 @@
 	return n, z.err
 }
 
+// Flush flushes any pending compressed data to the underlying writer.
+//
+// It is useful mainly in compressed network protocols, to ensure that
+// a remote reader has enough data to reconstruct a packet. Flush does
+// not return until the data has been written. If the underlying
+// writer returns an error, Flush returns that error.
+//
+// In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH.
+func (z *Writer) Flush() error {
+	if z.err != nil {
+		return z.err
+	}
+	if z.closed {
+		return nil
+	}
+	if z.compressor == nil {
+		z.Write(nil)
+	}
+	z.err = z.compressor.Flush()
+	return z.err
+}
+
 // Close closes the Writer. It does not close the underlying io.Writer.
 func (z *Writer) Close() error {
 	if z.err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/compress/gzip/gzip_test.go gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go
--- gcc-4.8.1.orig/libgo/go/compress/gzip/gzip_test.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/gzip/gzip_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -157,3 +157,43 @@
 		}
 	}
 }
+
+func TestWriterFlush(t *testing.T) {
+	buf := new(bytes.Buffer)
+
+	w := NewWriter(buf)
+	w.Comment = "comment"
+	w.Extra = []byte("extra")
+	w.ModTime = time.Unix(1e8, 0)
+	w.Name = "name"
+
+	n0 := buf.Len()
+	if n0 != 0 {
+		t.Fatalf("buffer size = %d before writes; want 0", n0)
+	}
+
+	if err := w.Flush(); err != nil {
+		t.Fatal(err)
+	}
+
+	n1 := buf.Len()
+	if n1 == 0 {
+		t.Fatal("no data after first flush")
+	}
+
+	w.Write([]byte("x"))
+
+	n2 := buf.Len()
+	if n1 != n2 {
+		t.Fatalf("after writing a single byte, size changed from %d to %d; want no change", n1, n2)
+	}
+
+	if err := w.Flush(); err != nil {
+		t.Fatal(err)
+	}
+
+	n3 := buf.Len()
+	if n2 == n3 {
+		t.Fatal("Flush didn't flush any data")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/compress/lzw/reader.go gcc-4.8.1/libgo/go/compress/lzw/reader.go
--- gcc-4.8.1.orig/libgo/go/compress/lzw/reader.go	2011-12-12 17:40:51.000000000 -0600
+++ gcc-4.8.1/libgo/go/compress/lzw/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -121,7 +121,6 @@
 		}
 		d.decode()
 	}
-	panic("unreachable")
 }
 
 // decode decompresses bytes from r and leaves them in d.toRead.
@@ -203,7 +202,6 @@
 			return
 		}
 	}
-	panic("unreachable")
 }
 
 func (d *decoder) flush() {
diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/example_test.go gcc-4.8.1/libgo/go/container/heap/example_test.go
--- gcc-4.8.1.orig/libgo/go/container/heap/example_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/container/heap/example_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,100 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This example demonstrates a priority queue built using the heap interface.
-package heap_test
-
-import (
-	"container/heap"
-	"fmt"
-)
-
-// An Item is something we manage in a priority queue.
-type Item struct {
-	value    string // The value of the item; arbitrary.
-	priority int    // The priority of the item in the queue.
-	// The index is needed by changePriority and is maintained by the heap.Interface methods.
-	index int // The index of the item in the heap.
-}
-
-// A PriorityQueue implements heap.Interface and holds Items.
-type PriorityQueue []*Item
-
-func (pq PriorityQueue) Len() int { return len(pq) }
-
-func (pq PriorityQueue) Less(i, j int) bool {
-	// We want Pop to give us the highest, not lowest, priority so we use greater than here.
-	return pq[i].priority > pq[j].priority
-}
-
-func (pq PriorityQueue) Swap(i, j int) {
-	pq[i], pq[j] = pq[j], pq[i]
-	pq[i].index = i
-	pq[j].index = j
-}
-
-func (pq *PriorityQueue) Push(x interface{}) {
-	// Push and Pop use pointer receivers because they modify the slice's length,
-	// not just its contents.
-	n := len(*pq)
-	item := x.(*Item)
-	item.index = n
-	*pq = append(*pq, item)
-}
-
-func (pq *PriorityQueue) Pop() interface{} {
-	a := *pq
-	n := len(a)
-	item := a[n-1]
-	item.index = -1 // for safety
-	*pq = a[0 : n-1]
-	return item
-}
-
-// update is not used by the example but shows how to take the top item from
-// the queue, update its priority and value, and put it back.
-func (pq *PriorityQueue) update(value string, priority int) {
-	item := heap.Pop(pq).(*Item)
-	item.value = value
-	item.priority = priority
-	heap.Push(pq, item)
-}
-
-// changePriority is not used by the example but shows how to change the
-// priority of an arbitrary item.
-func (pq *PriorityQueue) changePriority(item *Item, priority int) {
-	heap.Remove(pq, item.index)
-	item.priority = priority
-	heap.Push(pq, item)
-}
-
-// This example pushes 10 items into a PriorityQueue and takes them out in
-// order of priority.
-func Example() {
-	const nItem = 10
-	// Random priorities for the items (a permutation of 0..9, times 11)).
-	priorities := [nItem]int{
-		77, 22, 44, 55, 11, 88, 33, 99, 00, 66,
-	}
-	values := [nItem]string{
-		"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
-	}
-	// Create a priority queue and put some items in it.
-	pq := make(PriorityQueue, 0, nItem)
-	for i := 0; i < cap(pq); i++ {
-		item := &Item{
-			value:    values[i],
-			priority: priorities[i],
-		}
-		heap.Push(&pq, item)
-	}
-	// Take the items out; should arrive in decreasing priority order.
-	// For example, the highest priority (99) is the seventh item, so output starts with 99:"seven".
-	for i := 0; i < nItem; i++ {
-		item := heap.Pop(&pq).(*Item)
-		fmt.Printf("%.2d:%s ", item.priority, item.value)
-	}
-	// Output:
-	// 99:seven 88:five 77:zero 66:nine 55:three 44:two 33:six 22:one 11:four 00:eight
-}
diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap.go gcc-4.8.1/libgo/go/container/heap/heap.go
--- gcc-4.8.1.orig/libgo/go/container/heap/heap.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/container/heap/heap.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,13 +4,13 @@
 
 // Package heap provides heap operations for any type that implements
 // heap.Interface. A heap is a tree with the property that each node is the
-// highest-valued node in its subtree.
+// minimum-valued node in its subtree.
 //
 // A heap is a common way to implement a priority queue. To build a priority
 // queue, implement the Heap interface with the (negative) priority as the
 // ordering for the Less method, so Push adds items while Pop removes the
 // highest-priority item from the queue. The Examples include such an
-// implementation; the file example_test.go has the complete source.
+// implementation; the file example_pq_test.go has the complete source.
 //
 package heap
 
@@ -90,7 +90,7 @@
 func down(h Interface, i, n int) {
 	for {
 		j1 := 2*i + 1
-		if j1 >= n {
+		if j1 >= n || j1 < 0 { // j1 < 0 after int overflow
 			break
 		}
 		j := j1 // left child
diff -Naur gcc-4.8.1.orig/libgo/go/container/heap/heap_test.go gcc-4.8.1/libgo/go/container/heap/heap_test.go
--- gcc-4.8.1.orig/libgo/go/container/heap/heap_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/container/heap/heap_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package heap_test
+package heap
 
 import (
-	. "container/heap"
 	"testing"
 )
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cbc.go gcc-4.8.1/libgo/go/crypto/cipher/cbc.go
--- gcc-4.8.1.orig/libgo/go/crypto/cipher/cbc.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/cipher/cbc.go	2013-07-16 01:55:04.520470000 -0500
@@ -42,6 +42,12 @@
 func (x *cbcEncrypter) BlockSize() int { return x.blockSize }
 
 func (x *cbcEncrypter) CryptBlocks(dst, src []byte) {
+	if len(src)%x.blockSize != 0 {
+		panic("crypto/cipher: input not full blocks")
+	}
+	if len(dst) < len(src) {
+		panic("crypto/cipher: output smaller than input")
+	}
 	for len(src) > 0 {
 		for i := 0; i < x.blockSize; i++ {
 			x.iv[i] ^= src[i]
@@ -70,6 +76,12 @@
 func (x *cbcDecrypter) BlockSize() int { return x.blockSize }
 
 func (x *cbcDecrypter) CryptBlocks(dst, src []byte) {
+	if len(src)%x.blockSize != 0 {
+		panic("crypto/cipher: input not full blocks")
+	}
+	if len(dst) < len(src) {
+		panic("crypto/cipher: output smaller than input")
+	}
 	for len(src) > 0 {
 		x.b.Decrypt(x.tmp, src[:x.blockSize])
 		for i := 0; i < x.blockSize; i++ {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/cipher_test.go gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/cipher/cipher_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/cipher/cipher_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,36 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cipher_test
+
+import (
+	"crypto/aes"
+	"crypto/cipher"
+	"testing"
+)
+
+func TestCryptBlocks(t *testing.T) {
+	buf := make([]byte, 16)
+	block, _ := aes.NewCipher(buf)
+
+	mode := cipher.NewCBCDecrypter(block, buf)
+	mustPanic(t, "crypto/cipher: input not full blocks", func() { mode.CryptBlocks(buf, buf[:3]) })
+	mustPanic(t, "crypto/cipher: output smaller than input", func() { mode.CryptBlocks(buf[:3], buf) })
+
+	mode = cipher.NewCBCEncrypter(block, buf)
+	mustPanic(t, "crypto/cipher: input not full blocks", func() { mode.CryptBlocks(buf, buf[:3]) })
+	mustPanic(t, "crypto/cipher: output smaller than input", func() { mode.CryptBlocks(buf[:3], buf) })
+}
+
+func mustPanic(t *testing.T, msg string, f func()) {
+	defer func() {
+		err := recover()
+		if err == nil {
+			t.Errorf("function did not panic, wanted %q", msg)
+		} else if err != msg {
+			t.Errorf("got panic %v, wanted %q", err, msg)
+		}
+	}()
+	f()
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/cipher/example_test.go gcc-4.8.1/libgo/go/crypto/cipher/example_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/cipher/example_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/cipher/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -233,7 +233,7 @@
 	}
 	defer outFile.Close()
 
-	reader := &cipher.StreamReader{stream, inFile}
+	reader := &cipher.StreamReader{S: stream, R: inFile}
 	// Copy the input file to the output file, decrypting as we go.
 	if _, err := io.Copy(outFile, reader); err != nil {
 		panic(err)
@@ -270,7 +270,7 @@
 	}
 	defer outFile.Close()
 
-	writer := &cipher.StreamWriter{stream, outFile, nil}
+	writer := &cipher.StreamWriter{S: stream, W: outFile}
 	// Copy the input file to the output file, encrypting as we go.
 	if _, err := io.Copy(writer, inFile); err != nil {
 		panic(err)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa.go gcc-4.8.1/libgo/go/crypto/dsa/dsa.go
--- gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/dsa/dsa.go	2013-07-16 01:55:04.520470000 -0500
@@ -144,8 +144,6 @@
 		params.G = g
 		return
 	}
-
-	panic("unreachable")
 }
 
 // GenerateKey generates a public&private key pair. The Parameters of the
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa_test.go gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/dsa/dsa_test.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/dsa/dsa_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -63,8 +63,9 @@
 }
 
 func TestParameterGeneration(t *testing.T) {
-	// This test is too slow to run all the time.
-	return
+	if testing.Short() {
+		t.Skip("skipping parameter generation test in short mode")
+	}
 
 	testParameterGeneration(t, L1024N160, 1024, 160)
 	testParameterGeneration(t, L2048N224, 2048, 224)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/ecdsa/ecdsa.go gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go
--- gcc-4.8.1.orig/libgo/go/crypto/ecdsa/ecdsa.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/crypto/ecdsa/ecdsa.go	2013-07-16 01:55:04.520470000 -0500
@@ -49,7 +49,7 @@
 	return
 }
 
-// GenerateKey generates a public&private key pair.
+// GenerateKey generates a public and private key pair.
 func GenerateKey(c elliptic.Curve, rand io.Reader) (priv *PrivateKey, err error) {
 	k, err := randFieldElement(c, rand)
 	if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/gen.go gcc-4.8.1/libgo/go/crypto/md5/gen.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/gen.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/md5/gen.go	2013-07-16 01:55:04.520470000 -0500
@@ -161,6 +161,11 @@
 }
 
 var program = `
+// DO NOT EDIT.
+// Generate with: go run gen.go{{if .Full}} -full{{end}} | gofmt >md5block.go
+
+// +build !amd64
+
 package md5
 
 import (
@@ -186,6 +191,16 @@
 	}
 {{end}}
 
+const x86 = runtime.GOARCH == "amd64" || runtime.GOARCH == "386"
+
+var littleEndian bool
+
+func init() {
+	x := uint32(0x04030201)
+	y := [4]byte{0x1, 0x2, 0x3, 0x4}
+	littleEndian = *(*[4]byte)(unsafe.Pointer(&x)) == y
+}
+
 func block(dig *digest, p []byte) {
 	a := dig.s[0]
 	b := dig.s[1]
@@ -197,13 +212,13 @@
 		aa, bb, cc, dd := a, b, c, d
 
 		// This is a constant condition - it is not evaluated on each iteration.
-		if runtime.GOARCH == "amd64" || runtime.GOARCH == "386" {
+		if x86 {
 			// MD5 was designed so that x86 processors can just iterate
 			// over the block data directly as uint32s, and we generate
 			// less code and run 1.3x faster if we take advantage of that.
 			// My apologies.
 			X = (*[16]uint32)(unsafe.Pointer(&p[0]))
-		} else if uintptr(unsafe.Pointer(&p[0]))&(unsafe.Alignof(uint32(0))-1) == 0 {
+		} else if littleEndian && uintptr(unsafe.Pointer(&p[0]))&(unsafe.Alignof(uint32(0))-1) == 0 {
 			X = (*[16]uint32)(unsafe.Pointer(&p[0]))
 		} else {
 			X = &xbuf
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block_decl.go gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5block_decl.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/md5/md5block_decl.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,9 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64 386
+
+package md5
+
+func block(dig *digest, p []byte)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5block.go gcc-4.8.1/libgo/go/crypto/md5/md5block.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5block.go	2013-02-07 15:40:10.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/md5/md5block.go	2013-07-16 01:55:04.520470000 -0500
@@ -1,3 +1,8 @@
+// DO NOT EDIT.
+// Generate with: go run gen.go -full | gofmt >md5block.go
+
+// +build !amd64,!386
+
 package md5
 
 import (
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/md5/md5_test.go gcc-4.8.1/libgo/go/crypto/md5/md5_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/md5/md5_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/md5/md5_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package md5_test
+package md5
 
 import (
-	"crypto/md5"
 	"fmt"
 	"io"
 	"testing"
@@ -54,7 +53,7 @@
 func TestGolden(t *testing.T) {
 	for i := 0; i < len(golden); i++ {
 		g := golden[i]
-		c := md5.New()
+		c := New()
 		buf := make([]byte, len(g.in)+4)
 		for j := 0; j < 3+4; j++ {
 			if j < 2 {
@@ -79,14 +78,14 @@
 }
 
 func ExampleNew() {
-	h := md5.New()
+	h := New()
 	io.WriteString(h, "The fog is getting thicker!")
 	io.WriteString(h, "And Leon's getting laaarger!")
 	fmt.Printf("%x", h.Sum(nil))
 	// Output: e2c569be17396eca2a2e3c11578123ed
 }
 
-var bench = md5.New()
+var bench = New()
 var buf = make([]byte, 8192+1)
 var sum = make([]byte, bench.Size())
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rand/util.go gcc-4.8.1/libgo/go/crypto/rand/util.go
--- gcc-4.8.1.orig/libgo/go/crypto/rand/util.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/rand/util.go	2013-07-16 01:55:04.520470000 -0500
@@ -98,12 +98,13 @@
 			return
 		}
 	}
-
-	return
 }
 
-// Int returns a uniform random value in [0, max).
+// Int returns a uniform random value in [0, max). It panics if max <= 0.
 func Int(rand io.Reader, max *big.Int) (n *big.Int, err error) {
+	if max.Sign() <= 0 {
+		panic("crypto/rand: argument to Int is <= 0")
+	}
 	k := (max.BitLen() + 7) / 8
 
 	// b is the number of bits in the most significant byte of max.
@@ -130,6 +131,4 @@
 			return
 		}
 	}
-
-	return
 }
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_asm.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_asm.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_asm.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,18 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64 arm 386
+
+package rc4
+
+func xorKeyStream(dst, src *byte, n int, state *[256]uint32, i, j *uint8)
+
+// XORKeyStream sets dst to the result of XORing src with the key stream.
+// Dst and src may be the same slice but otherwise should not overlap.
+func (c *Cipher) XORKeyStream(dst, src []byte) {
+	if len(src) == 0 {
+		return
+	}
+	xorKeyStream(&dst[0], &src[0], len(src), &c.s, &c.i, &c.j)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4.go gcc-4.8.1/libgo/go/crypto/rc4/rc4.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4.go	2011-12-02 20:17:34.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4.go	2013-07-16 01:55:04.520470000 -0500
@@ -13,7 +13,7 @@
 
 // A Cipher is an instance of RC4 using a particular key.
 type Cipher struct {
-	s    [256]byte
+	s    [256]uint32
 	i, j uint8
 }
 
@@ -32,27 +32,16 @@
 	}
 	var c Cipher
 	for i := 0; i < 256; i++ {
-		c.s[i] = uint8(i)
+		c.s[i] = uint32(i)
 	}
 	var j uint8 = 0
 	for i := 0; i < 256; i++ {
-		j += c.s[i] + key[i%k]
+		j += uint8(c.s[i]) + key[i%k]
 		c.s[i], c.s[j] = c.s[j], c.s[i]
 	}
 	return &c, nil
 }
 
-// XORKeyStream sets dst to the result of XORing src with the key stream.
-// Dst and src may be the same slice but otherwise should not overlap.
-func (c *Cipher) XORKeyStream(dst, src []byte) {
-	for i := range src {
-		c.i += 1
-		c.j += c.s[c.i]
-		c.s[c.i], c.s[c.j] = c.s[c.j], c.s[c.i]
-		dst[i] = src[i] ^ c.s[c.s[c.i]+c.s[c.j]]
-	}
-}
-
 // Reset zeros the key data so that it will no longer appear in the
 // process's memory.
 func (c *Cipher) Reset() {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_ref.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_ref.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_ref.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,20 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !amd64,!arm,!386
+
+package rc4
+
+// XORKeyStream sets dst to the result of XORing src with the key stream.
+// Dst and src may be the same slice but otherwise should not overlap.
+func (c *Cipher) XORKeyStream(dst, src []byte) {
+	i, j := c.i, c.j
+	for k, v := range src {
+		i += 1
+		j += uint8(c.s[i])
+		c.s[i], c.s[j] = c.s[j], c.s[i]
+		dst[k] = v ^ byte(c.s[byte(c.s[i]+c.s[j])])
+	}
+	c.i, c.j = i, j
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_test.go gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/rc4/rc4_test.go	2011-01-21 12:19:03.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/rc4/rc4_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,6 +5,8 @@
 package rc4
 
 import (
+	"bytes"
+	"fmt"
 	"testing"
 )
 
@@ -37,23 +39,124 @@
 		[]byte{0x57, 0x69, 0x6b, 0x69},
 		[]byte{0x60, 0x44, 0xdb, 0x6d, 0x41, 0xb7},
 	},
+	{
+		[]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+		[]byte{
+			0xde, 0x18, 0x89, 0x41, 0xa3, 0x37, 0x5d, 0x3a,
+			0x8a, 0x06, 0x1e, 0x67, 0x57, 0x6e, 0x92, 0x6d,
+			0xc7, 0x1a, 0x7f, 0xa3, 0xf0, 0xcc, 0xeb, 0x97,
+			0x45, 0x2b, 0x4d, 0x32, 0x27, 0x96, 0x5f, 0x9e,
+			0xa8, 0xcc, 0x75, 0x07, 0x6d, 0x9f, 0xb9, 0xc5,
+			0x41, 0x7a, 0xa5, 0xcb, 0x30, 0xfc, 0x22, 0x19,
+			0x8b, 0x34, 0x98, 0x2d, 0xbb, 0x62, 0x9e, 0xc0,
+			0x4b, 0x4f, 0x8b, 0x05, 0xa0, 0x71, 0x08, 0x50,
+			0x92, 0xa0, 0xc3, 0x58, 0x4a, 0x48, 0xe4, 0xa3,
+			0x0a, 0x39, 0x7b, 0x8a, 0xcd, 0x1d, 0x00, 0x9e,
+			0xc8, 0x7d, 0x68, 0x11, 0xf2, 0x2c, 0xf4, 0x9c,
+			0xa3, 0xe5, 0x93, 0x54, 0xb9, 0x45, 0x15, 0x35,
+			0xa2, 0x18, 0x7a, 0x86, 0x42, 0x6c, 0xca, 0x7d,
+			0x5e, 0x82, 0x3e, 0xba, 0x00, 0x44, 0x12, 0x67,
+			0x12, 0x57, 0xb8, 0xd8, 0x60, 0xae, 0x4c, 0xbd,
+			0x4c, 0x49, 0x06, 0xbb, 0xc5, 0x35, 0xef, 0xe1,
+			0x58, 0x7f, 0x08, 0xdb, 0x33, 0x95, 0x5c, 0xdb,
+			0xcb, 0xad, 0x9b, 0x10, 0xf5, 0x3f, 0xc4, 0xe5,
+			0x2c, 0x59, 0x15, 0x65, 0x51, 0x84, 0x87, 0xfe,
+			0x08, 0x4d, 0x0e, 0x3f, 0x03, 0xde, 0xbc, 0xc9,
+			0xda, 0x1c, 0xe9, 0x0d, 0x08, 0x5c, 0x2d, 0x8a,
+			0x19, 0xd8, 0x37, 0x30, 0x86, 0x16, 0x36, 0x92,
+			0x14, 0x2b, 0xd8, 0xfc, 0x5d, 0x7a, 0x73, 0x49,
+			0x6a, 0x8e, 0x59, 0xee, 0x7e, 0xcf, 0x6b, 0x94,
+			0x06, 0x63, 0xf4, 0xa6, 0xbe, 0xe6, 0x5b, 0xd2,
+			0xc8, 0x5c, 0x46, 0x98, 0x6c, 0x1b, 0xef, 0x34,
+			0x90, 0xd3, 0x7b, 0x38, 0xda, 0x85, 0xd3, 0x2e,
+			0x97, 0x39, 0xcb, 0x23, 0x4a, 0x2b, 0xe7, 0x40,
+		},
+	},
+}
+
+func testEncrypt(t *testing.T, desc string, c *Cipher, src, expect []byte) {
+	dst := make([]byte, len(src))
+	c.XORKeyStream(dst, src)
+	for i, v := range dst {
+		if v != expect[i] {
+			t.Fatalf("%s: mismatch at byte %d:\nhave %x\nwant %x", desc, i, dst, expect)
+		}
+	}
 }
 
 func TestGolden(t *testing.T) {
-	for i := 0; i < len(golden); i++ {
-		g := golden[i]
-		c, err := NewCipher(g.key)
-		if err != nil {
-			t.Errorf("Failed to create cipher at golden index %d", i)
-			return
+	for gi, g := range golden {
+		data := make([]byte, len(g.keystream))
+		for i := range data {
+			data[i] = byte(i)
 		}
-		keystream := make([]byte, len(g.keystream))
-		c.XORKeyStream(keystream, keystream)
-		for j, v := range keystream {
-			if g.keystream[j] != v {
-				t.Errorf("Failed at golden index %d", i)
-				break
+
+		expect := make([]byte, len(g.keystream))
+		for i := range expect {
+			expect[i] = byte(i) ^ g.keystream[i]
+		}
+
+		for size := 1; size <= len(g.keystream); size++ {
+			c, err := NewCipher(g.key)
+			if err != nil {
+				t.Fatalf("#%d: NewCipher: %v", gi, err)
+			}
+
+			off := 0
+			for off < len(g.keystream) {
+				n := len(g.keystream) - off
+				if n > size {
+					n = size
+				}
+				desc := fmt.Sprintf("#%d@[%d:%d]", gi, off, off+n)
+				testEncrypt(t, desc, c, data[off:off+n], expect[off:off+n])
+				off += n
 			}
 		}
 	}
 }
+
+func TestBlock(t *testing.T) {
+	c1a, _ := NewCipher(golden[0].key)
+	c1b, _ := NewCipher(golden[1].key)
+	data1 := make([]byte, 1<<20)
+	for i := range data1 {
+		c1a.XORKeyStream(data1[i:i+1], data1[i:i+1])
+		c1b.XORKeyStream(data1[i:i+1], data1[i:i+1])
+	}
+
+	c2a, _ := NewCipher(golden[0].key)
+	c2b, _ := NewCipher(golden[1].key)
+	data2 := make([]byte, 1<<20)
+	c2a.XORKeyStream(data2, data2)
+	c2b.XORKeyStream(data2, data2)
+
+	if !bytes.Equal(data1, data2) {
+		t.Fatalf("bad block")
+	}
+}
+
+func benchmark(b *testing.B, size int64) {
+	buf := make([]byte, size)
+	c, err := NewCipher(golden[0].key)
+	if err != nil {
+		panic(err)
+	}
+	b.SetBytes(size)
+
+	for i := 0; i < b.N; i++ {
+		c.XORKeyStream(buf, buf)
+	}
+}
+
+func BenchmarkRC4_128(b *testing.B) {
+	benchmark(b, 128)
+}
+
+func BenchmarkRC4_1K(b *testing.B) {
+	benchmark(b, 1024)
+}
+
+func BenchmarkRC4_8K(b *testing.B) {
+	benchmark(b, 8096)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa.go gcc-4.8.1/libgo/go/crypto/rsa/rsa.go
--- gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/rsa/rsa.go	2013-07-16 01:55:04.520470000 -0500
@@ -150,6 +150,20 @@
 NextSetOfPrimes:
 	for {
 		todo := bits
+		// crypto/rand should set the top two bits in each prime.
+		// Thus each prime has the form
+		//   p_i = 2^bitlen(p_i) Ã— 0.11... (in base 2).
+		// And the product is:
+		//   P = 2^todo Ã— Î±
+		// where Î± is the product of nprimes numbers of the form 0.11...
+		//
+		// If Î± < 1/2 (which can happen for nprimes > 2), we need to
+		// shift todo to compensate for lost bits: the mean value of 0.11...
+		// is 7/8, so todo + shift - nprimes * log2(7/8) ~= bits - 1/2
+		// will give good results.
+		if nprimes >= 7 {
+			todo += (nprimes - 2) / 5
+		}
 		for i := 0; i < nprimes; i++ {
 			primes[i], err = rand.Prime(random, todo/(nprimes-i))
 			if err != nil {
@@ -176,8 +190,9 @@
 			totient.Mul(totient, pminus1)
 		}
 		if n.BitLen() != bits {
-			// This should never happen because crypto/rand should
-			// set the top two bits in each prime.
+			// This should never happen for nprimes == 2 because
+			// crypto/rand should set the top two bits in each prime.
+			// For nprimes > 2 we hope it does not happen often.
 			continue NextSetOfPrimes
 		}
 
@@ -188,7 +203,9 @@
 		g.GCD(priv.D, y, e, totient)
 
 		if g.Cmp(bigOne) == 0 {
-			priv.D.Add(priv.D, totient)
+			if priv.D.Sign() < 0 {
+				priv.D.Add(priv.D, totient)
+			}
 			priv.Primes = primes
 			priv.N = n
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa_test.go gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/rsa/rsa_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/rsa/rsa_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -28,11 +28,11 @@
 }
 
 func Test3PrimeKeyGeneration(t *testing.T) {
+	size := 768
 	if testing.Short() {
-		return
+		size = 256
 	}
 
-	size := 768
 	priv, err := GenerateMultiPrimeKey(rand.Reader, 3, size)
 	if err != nil {
 		t.Errorf("failed to generate key")
@@ -41,11 +41,11 @@
 }
 
 func Test4PrimeKeyGeneration(t *testing.T) {
+	size := 768
 	if testing.Short() {
-		return
+		size = 256
 	}
 
-	size := 768
 	priv, err := GenerateMultiPrimeKey(rand.Reader, 4, size)
 	if err != nil {
 		t.Errorf("failed to generate key")
@@ -53,6 +53,24 @@
 	testKeyBasics(t, priv)
 }
 
+func TestNPrimeKeyGeneration(t *testing.T) {
+	primeSize := 64
+	maxN := 24
+	if testing.Short() {
+		primeSize = 16
+		maxN = 16
+	}
+	// Test that generation of N-prime keys works for N > 4.
+	for n := 5; n < maxN; n++ {
+		priv, err := GenerateMultiPrimeKey(rand.Reader, n, 64+n*primeSize)
+		if err == nil {
+			testKeyBasics(t, priv)
+		} else {
+			t.Errorf("failed to generate %d-prime key", n)
+		}
+	}
+}
+
 func TestGnuTLSKey(t *testing.T) {
 	// This is a key generated by `certtool --generate-privkey --bits 128`.
 	// It's such that de â‰¢ 1 mod Ï†(n), but is congruent mod the order of
@@ -75,6 +93,9 @@
 	if err := priv.Validate(); err != nil {
 		t.Errorf("Validate() failed: %s", err)
 	}
+	if priv.D.Cmp(priv.N) > 0 {
+		t.Errorf("private exponent too large")
+	}
 
 	pub := &priv.PublicKey
 	m := big.NewInt(42)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block_decl.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go
--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block_decl.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block_decl.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,9 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64 386
+
+package sha1
+
+func block(dig *digest, p []byte)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block.go gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go
--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1block.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1block.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build !amd64,!386
+
 // SHA1 block step.
 // In its own file so that a faster assembly or C version
 // can be substituted easily.
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1_test.go gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/sha1/sha1_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/sha1/sha1_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,10 +4,9 @@
 
 // SHA1 hash algorithm.  See RFC 3174.
 
-package sha1_test
+package sha1
 
 import (
-	"crypto/sha1"
 	"fmt"
 	"io"
 	"testing"
@@ -55,7 +54,7 @@
 func TestGolden(t *testing.T) {
 	for i := 0; i < len(golden); i++ {
 		g := golden[i]
-		c := sha1.New()
+		c := New()
 		for j := 0; j < 3; j++ {
 			if j < 2 {
 				io.WriteString(c, g.in)
@@ -74,13 +73,13 @@
 }
 
 func ExampleNew() {
-	h := sha1.New()
+	h := New()
 	io.WriteString(h, "His money is twice tainted: 'taint yours and 'taint mine.")
 	fmt.Printf("% x", h.Sum(nil))
 	// Output: 59 7f 6a 54 00 10 f9 4c 15 d7 18 06 a9 9a 2c 87 10 e7 47 bd
 }
 
-var bench = sha1.New()
+var bench = New()
 var buf = make([]byte, 8192)
 
 func benchmarkSize(b *testing.B, size int) {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/common.go gcc-4.8.1/libgo/go/crypto/tls/common.go
--- gcc-4.8.1.orig/libgo/go/crypto/tls/common.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/tls/common.go	2013-07-16 01:55:04.520470000 -0500
@@ -204,7 +204,24 @@
 	// connections using that key are compromised.
 	SessionTicketKey [32]byte
 
-	serverInitOnce sync.Once
+	serverInitOnce sync.Once // guards calling (*Config).serverInit
+}
+
+func (c *Config) serverInit() {
+	if c.SessionTicketsDisabled {
+		return
+	}
+
+	// If the key has already been set then we have nothing to do.
+	for _, b := range c.SessionTicketKey {
+		if b != 0 {
+			return
+		}
+	}
+
+	if _, err := io.ReadFull(c.rand(), c.SessionTicketKey[:]); err != nil {
+		c.SessionTicketsDisabled = true
+	}
 }
 
 func (c *Config) rand() io.Reader {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/generate_cert.go gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go
--- gcc-4.8.1.orig/libgo/go/crypto/tls/generate_cert.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/tls/generate_cert.go	2013-07-16 01:55:04.520470000 -0500
@@ -16,36 +16,80 @@
 	"crypto/x509/pkix"
 	"encoding/pem"
 	"flag"
+	"fmt"
 	"log"
 	"math/big"
+	"net"
 	"os"
+	"strings"
 	"time"
 )
 
-var hostName *string = flag.String("host", "127.0.0.1", "Hostname to generate a certificate for")
+var (
+	host      = flag.String("host", "", "Comma-separated hostnames and IPs to generate a certificate for")
+	validFrom = flag.String("start-date", "", "Creation date formatted as Jan 1 15:04:05 2011")
+	validFor  = flag.Duration("duration", 365*24*time.Hour, "Duration that certificate is valid for")
+	isCA      = flag.Bool("ca", false, "whether this cert should be its own Certificate Authority")
+	rsaBits   = flag.Int("rsa-bits", 1024, "Size of RSA key to generate")
+)
 
 func main() {
 	flag.Parse()
 
-	priv, err := rsa.GenerateKey(rand.Reader, 1024)
+	if len(*host) == 0 {
+		log.Fatalf("Missing required --host parameter")
+	}
+
+	priv, err := rsa.GenerateKey(rand.Reader, *rsaBits)
 	if err != nil {
 		log.Fatalf("failed to generate private key: %s", err)
 		return
 	}
 
-	now := time.Now()
+	var notBefore time.Time
+	if len(*validFrom) == 0 {
+		notBefore = time.Now()
+	} else {
+		notBefore, err = time.Parse("Jan 2 15:04:05 2006", *validFrom)
+		if err != nil {
+			fmt.Fprintf(os.Stderr, "Failed to parse creation date: %s\n", err)
+			os.Exit(1)
+		}
+	}
+
+	notAfter := notBefore.Add(*validFor)
+
+	// end of ASN.1 time
+	endOfTime := time.Date(2049, 12, 31, 23, 59, 59, 0, time.UTC)
+	if notAfter.After(endOfTime) {
+		notAfter = endOfTime
+	}
 
 	template := x509.Certificate{
 		SerialNumber: new(big.Int).SetInt64(0),
 		Subject: pkix.Name{
-			CommonName:   *hostName,
 			Organization: []string{"Acme Co"},
 		},
-		NotBefore: now.Add(-5 * time.Minute).UTC(),
-		NotAfter:  now.AddDate(1, 0, 0).UTC(), // valid for 1 year.
+		NotBefore: notBefore,
+		NotAfter:  notAfter,
+
+		KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
+		ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
+		BasicConstraintsValid: true,
+	}
+
+	hosts := strings.Split(*host, ",")
+	for _, h := range hosts {
+		if ip := net.ParseIP(h); ip != nil {
+			template.IPAddresses = append(template.IPAddresses, ip)
+		} else {
+			template.DNSNames = append(template.DNSNames, h)
+		}
+	}
 
-		SubjectKeyId: []byte{1, 2, 3, 4},
-		KeyUsage:     x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
+	if *isCA {
+		template.IsCA = true
+		template.KeyUsage |= x509.KeyUsageCertSign
 	}
 
 	derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, &priv.PublicKey, priv)
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/tls/handshake_server.go gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go
--- gcc-4.8.1.orig/libgo/go/crypto/tls/handshake_server.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/tls/handshake_server.go	2013-07-16 01:55:04.520470000 -0500
@@ -33,22 +33,7 @@
 
 	// If this is the first server handshake, we generate a random key to
 	// encrypt the tickets with.
-	config.serverInitOnce.Do(func() {
-		if config.SessionTicketsDisabled {
-			return
-		}
-
-		// If the key has already been set then we have nothing to do.
-		for _, b := range config.SessionTicketKey {
-			if b != 0 {
-				return
-			}
-		}
-
-		if _, err := io.ReadFull(config.rand(), config.SessionTicketKey[:]); err != nil {
-			config.SessionTicketsDisabled = true
-		}
-	})
+	config.serverInitOnce.Do(config.serverInit)
 
 	hs := serverHandshakeState{
 		c: c,
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/pkcs8.go gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/pkcs8.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/x509/pkcs8.go	2013-07-16 01:55:04.520470000 -0500
@@ -51,6 +51,4 @@
 	default:
 		return nil, fmt.Errorf("crypto/x509: PKCS#8 wrapping contained private key with unknown algorithm: %v", privKey.Algo.Algorithm)
 	}
-
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify.go gcc-4.8.1/libgo/go/crypto/x509/verify.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/verify.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/x509/verify.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,6 +5,7 @@
 package x509
 
 import (
+	"net"
 	"runtime"
 	"strings"
 	"time"
@@ -63,14 +64,28 @@
 }
 
 func (h HostnameError) Error() string {
-	var valid string
 	c := h.Certificate
-	if len(c.DNSNames) > 0 {
-		valid = strings.Join(c.DNSNames, ", ")
+
+	var valid string
+	if ip := net.ParseIP(h.Host); ip != nil {
+		// Trying to validate an IP
+		if len(c.IPAddresses) == 0 {
+			return "x509: cannot validate certificate for " + h.Host + " because it doesn't contain any IP SANs"
+		}
+		for _, san := range c.IPAddresses {
+			if len(valid) > 0 {
+				valid += ", "
+			}
+			valid += san.String()
+		}
 	} else {
-		valid = c.Subject.CommonName
+		if len(c.DNSNames) > 0 {
+			valid = strings.Join(c.DNSNames, ", ")
+		} else {
+			valid = c.Subject.CommonName
+		}
 	}
-	return "certificate is valid for " + valid + ", not " + h.Host
+	return "x509: certificate is valid for " + valid + ", not " + h.Host
 }
 
 // UnknownAuthorityError results when the certificate issuer is unknown
@@ -334,6 +349,22 @@
 // VerifyHostname returns nil if c is a valid certificate for the named host.
 // Otherwise it returns an error describing the mismatch.
 func (c *Certificate) VerifyHostname(h string) error {
+	// IP addresses may be written in [ ].
+	candidateIP := h
+	if len(h) >= 3 && h[0] == '[' && h[len(h)-1] == ']' {
+		candidateIP = h[1 : len(h)-1]
+	}
+	if ip := net.ParseIP(candidateIP); ip != nil {
+		// We only match IP addresses against IP SANs.
+		// https://tools.ietf.org/html/rfc6125#appendix-B.2
+		for _, candidate := range c.IPAddresses {
+			if ip.Equal(candidate) {
+				return nil
+			}
+		}
+		return HostnameError{c, candidateIP}
+	}
+
 	lowered := toLowerCaseASCII(h)
 
 	if len(c.DNSNames) > 0 {
@@ -389,6 +420,14 @@
 			for _, usage := range cert.ExtKeyUsage {
 				if requestedUsage == usage {
 					continue NextRequestedUsage
+				} else if requestedUsage == ExtKeyUsageServerAuth &&
+					(usage == ExtKeyUsageNetscapeServerGatedCrypto ||
+						usage == ExtKeyUsageMicrosoftServerGatedCrypto) {
+					// In order to support COMODO
+					// certificate chains, we have to
+					// accept Netscape or Microsoft SGC
+					// usages as equal to ServerAuth.
+					continue NextRequestedUsage
 				}
 			}
 
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/verify_test.go gcc-4.8.1/libgo/go/crypto/x509/verify_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/verify_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/x509/verify_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -158,6 +158,19 @@
 			{"Ryan Hurst", "GlobalSign PersonalSign 2 CA - G2"},
 		},
 	},
+	{
+		leaf:          megaLeaf,
+		intermediates: []string{comodoIntermediate1},
+		roots:         []string{comodoRoot},
+		currentTime:   1360431182,
+
+		// CryptoAPI can find alternative validation paths so we don't
+		// perform this test with system validation.
+		systemSkip: true,
+		expectedChains: [][]string{
+			{"mega.co.nz", "EssentialSSL CA", "COMODO Certification Authority"},
+		},
+	},
 }
 
 func expectHostnameError(t *testing.T, i int, err error) (ok bool) {
@@ -563,3 +576,90 @@
 7y3rH/7TjwDVD7SLu5/SdOfKskuMPTjOEvz3K161mymW06klVhubCIWOro/Gx1Q2
 2FQOZ7/2k4uYoOdBTSlb8kTAuzZNgIE0rB2BIYCTz/P6zZIKW0ogbRSH
 -----END CERTIFICATE-----`
+
+var megaLeaf = `-----BEGIN CERTIFICATE-----
+MIIFOjCCBCKgAwIBAgIQWYE8Dup170kZ+k11Lg51OjANBgkqhkiG9w0BAQUFADBy
+MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
+VQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEYMBYGA1UE
+AxMPRXNzZW50aWFsU1NMIENBMB4XDTEyMTIxNDAwMDAwMFoXDTE0MTIxNDIzNTk1
+OVowfzEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMS4wLAYDVQQL
+EyVIb3N0ZWQgYnkgSW5zdHJhIENvcnBvcmF0aW9uIFB0eS4gTFREMRUwEwYDVQQL
+EwxFc3NlbnRpYWxTU0wxEzARBgNVBAMTCm1lZ2EuY28ubnowggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDcxMCClae8BQIaJHBUIVttlLvhbK4XhXPk3RQ3
+G5XA6tLZMBQ33l3F9knYJ0YErXtr8IdfYoulRQFmKFMJl9GtWyg4cGQi2Rcr5VN5
+S5dA1vu4oyJBxE9fPELcK6Yz1vqaf+n6za+mYTiQYKggVdS8/s8hmNuXP9Zk1pIn
++q0pGsf8NAcSHMJgLqPQrTDw+zae4V03DvcYfNKjuno88d2226ld7MAmQZ7uRNsI
+/CnkdelVs+akZsXf0szefSqMJlf08SY32t2jj4Ra7RApVYxOftD9nij/aLfuqOU6
+ow6IgIcIG2ZvXLZwK87c5fxL7UAsTTV+M1sVv8jA33V2oKLhAgMBAAGjggG9MIIB
+uTAfBgNVHSMEGDAWgBTay+qtWwhdzP/8JlTOSeVVxjj0+DAdBgNVHQ4EFgQUmP9l
+6zhyrZ06Qj4zogt+6LKFk4AwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAw
+NAYDVR0lBC0wKwYIKwYBBQUHAwEGCCsGAQUFBwMCBgorBgEEAYI3CgMDBglghkgB
+hvhCBAEwTwYDVR0gBEgwRjA6BgsrBgEEAbIxAQICBzArMCkGCCsGAQUFBwIBFh1o
+dHRwczovL3NlY3VyZS5jb21vZG8uY29tL0NQUzAIBgZngQwBAgEwOwYDVR0fBDQw
+MjAwoC6gLIYqaHR0cDovL2NybC5jb21vZG9jYS5jb20vRXNzZW50aWFsU1NMQ0Eu
+Y3JsMG4GCCsGAQUFBwEBBGIwYDA4BggrBgEFBQcwAoYsaHR0cDovL2NydC5jb21v
+ZG9jYS5jb20vRXNzZW50aWFsU1NMQ0FfMi5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6
+Ly9vY3NwLmNvbW9kb2NhLmNvbTAlBgNVHREEHjAcggptZWdhLmNvLm56gg53d3cu
+bWVnYS5jby5uejANBgkqhkiG9w0BAQUFAAOCAQEAcYhrsPSvDuwihMOh0ZmRpbOE
+Gw6LqKgLNTmaYUPQhzi2cyIjhUhNvugXQQlP5f0lp5j8cixmArafg1dTn4kQGgD3
+ivtuhBTgKO1VYB/VRoAt6Lmswg3YqyiS7JiLDZxjoV7KoS5xdiaINfHDUaBBY4ZH
+j2BUlPniNBjCqXe/HndUTVUewlxbVps9FyCmH+C4o9DWzdGBzDpCkcmo5nM+cp7q
+ZhTIFTvZfo3zGuBoyu8BzuopCJcFRm3cRiXkpI7iOMUIixO1szkJS6WpL1sKdT73
+UXp08U0LBqoqG130FbzEJBBV3ixbvY6BWMHoCWuaoF12KJnC5kHt2RoWAAgMXA==
+-----END CERTIFICATE-----`
+
+var comodoIntermediate1 = `-----BEGIN CERTIFICATE-----
+MIIFAzCCA+ugAwIBAgIQGLLLuqME8aAPwfLzJkYqSjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
+MDBaFw0xOTEyMzEyMzU5NTlaMHIxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVh
+dGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9E
+TyBDQSBMaW1pdGVkMRgwFgYDVQQDEw9Fc3NlbnRpYWxTU0wgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt8AiwcsargxIxF3CJhakgEtSYau2A1NHf
+5I5ZLdOWIY120j8YC0YZYwvHIPPlC92AGvFaoL0dds23Izp0XmEbdaqb1IX04XiR
+0y3hr/yYLgbSeT1awB8hLRyuIVPGOqchfr7tZ291HRqfalsGs2rjsQuqag7nbWzD
+ypWMN84hHzWQfdvaGlyoiBSyD8gSIF/F03/o4Tjg27z5H6Gq1huQByH6RSRQXScq
+oChBRVt9vKCiL6qbfltTxfEFFld+Edc7tNkBdtzffRDPUanlOPJ7FAB1WfnwWdsX
+Pvev5gItpHnBXaIcw5rIp6gLSApqLn8tl2X2xQScRMiZln5+pN0vAgMBAAGjggGD
+MIIBfzAfBgNVHSMEGDAWgBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAdBgNVHQ4EFgQU
+2svqrVsIXcz//CZUzknlVcY49PgwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwIAYDVR0lBBkwFwYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMD4GA1Ud
+IAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21v
+ZG8uY29tL0NQUzBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9kb2Nh
+LmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBsBggrBgEFBQcB
+AQRgMF4wNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NvbW9k
+b1VUTlNHQ0NBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2Eu
+Y29tMA0GCSqGSIb3DQEBBQUAA4IBAQAtlzR6QDLqcJcvgTtLeRJ3rvuq1xqo2l/z
+odueTZbLN3qo6u6bldudu+Ennv1F7Q5Slqz0J790qpL0pcRDAB8OtXj5isWMcL2a
+ejGjKdBZa0wztSz4iw+SY1dWrCRnilsvKcKxudokxeRiDn55w/65g+onO7wdQ7Vu
+F6r7yJiIatnyfKH2cboZT7g440LX8NqxwCPf3dfxp+0Jj1agq8MLy6SSgIGSH6lv
++Wwz3D5XxqfyH8wqfOQsTEZf6/Nh9yvENZ+NWPU6g0QO2JOsTGvMd/QDzczc4BxL
+XSXaPV7Od4rhPsbXlM1wSTz/Dr0ISKvlUhQVnQ6cGodWaK2cCQBk
+-----END CERTIFICATE-----`
+
+var comodoRoot = `-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
+MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
+/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
+PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
+QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
+SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
+IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
+RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
+zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
+BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
+ZQ==
+-----END CERTIFICATE-----`
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509.go gcc-4.8.1/libgo/go/crypto/x509/x509.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/x509.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/x509/x509.go	2013-07-16 01:55:04.520470000 -0500
@@ -19,6 +19,8 @@
 	"errors"
 	"io"
 	"math/big"
+	"net"
+	"strconv"
 	"time"
 )
 
@@ -360,16 +362,18 @@
 // id-kp-timeStamping           OBJECT IDENTIFIER ::= { id-kp 8 }
 // id-kp-OCSPSigning            OBJECT IDENTIFIER ::= { id-kp 9 }
 var (
-	oidExtKeyUsageAny             = asn1.ObjectIdentifier{2, 5, 29, 37, 0}
-	oidExtKeyUsageServerAuth      = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 1}
-	oidExtKeyUsageClientAuth      = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 2}
-	oidExtKeyUsageCodeSigning     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 3}
-	oidExtKeyUsageEmailProtection = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 4}
-	oidExtKeyUsageIPSECEndSystem  = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 5}
-	oidExtKeyUsageIPSECTunnel     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 6}
-	oidExtKeyUsageIPSECUser       = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 7}
-	oidExtKeyUsageTimeStamping    = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 8}
-	oidExtKeyUsageOCSPSigning     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 9}
+	oidExtKeyUsageAny                        = asn1.ObjectIdentifier{2, 5, 29, 37, 0}
+	oidExtKeyUsageServerAuth                 = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 1}
+	oidExtKeyUsageClientAuth                 = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 2}
+	oidExtKeyUsageCodeSigning                = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 3}
+	oidExtKeyUsageEmailProtection            = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 4}
+	oidExtKeyUsageIPSECEndSystem             = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 5}
+	oidExtKeyUsageIPSECTunnel                = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 6}
+	oidExtKeyUsageIPSECUser                  = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 7}
+	oidExtKeyUsageTimeStamping               = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 8}
+	oidExtKeyUsageOCSPSigning                = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 9}
+	oidExtKeyUsageMicrosoftServerGatedCrypto = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 10, 3, 3}
+	oidExtKeyUsageNetscapeServerGatedCrypto  = asn1.ObjectIdentifier{2, 16, 840, 1, 113730, 4, 1}
 )
 
 // ExtKeyUsage represents an extended set of actions that are valid for a given key.
@@ -387,6 +391,8 @@
 	ExtKeyUsageIPSECUser
 	ExtKeyUsageTimeStamping
 	ExtKeyUsageOCSPSigning
+	ExtKeyUsageMicrosoftServerGatedCrypto
+	ExtKeyUsageNetscapeServerGatedCrypto
 )
 
 // extKeyUsageOIDs contains the mapping between an ExtKeyUsage and its OID.
@@ -404,6 +410,8 @@
 	{ExtKeyUsageIPSECUser, oidExtKeyUsageIPSECUser},
 	{ExtKeyUsageTimeStamping, oidExtKeyUsageTimeStamping},
 	{ExtKeyUsageOCSPSigning, oidExtKeyUsageOCSPSigning},
+	{ExtKeyUsageMicrosoftServerGatedCrypto, oidExtKeyUsageMicrosoftServerGatedCrypto},
+	{ExtKeyUsageNetscapeServerGatedCrypto, oidExtKeyUsageNetscapeServerGatedCrypto},
 }
 
 func extKeyUsageFromOID(oid asn1.ObjectIdentifier) (eku ExtKeyUsage, ok bool) {
@@ -458,6 +466,7 @@
 	// Subject Alternate Name values
 	DNSNames       []string
 	EmailAddresses []string
+	IPAddresses    []net.IP
 
 	// Name constraints
 	PermittedDNSDomainsCritical bool // if true then the name constraints are marked critical.
@@ -660,6 +669,13 @@
 			return nil, err
 		}
 
+		if p.N.Sign() <= 0 {
+			return nil, errors.New("x509: RSA modulus is not a positive number")
+		}
+		if p.E <= 0 {
+			return nil, errors.New("x509: RSA public exponent is not a positive number")
+		}
+
 		pub := &rsa.PublicKey{
 			E: p.E,
 			N: p.N,
@@ -713,7 +729,6 @@
 	default:
 		return nil, nil
 	}
-	panic("unreachable")
 }
 
 func parseCertificate(in *certificate) (*Certificate, error) {
@@ -828,6 +843,13 @@
 					case 2:
 						out.DNSNames = append(out.DNSNames, string(v.Bytes))
 						parsedName = true
+					case 7:
+						switch len(v.Bytes) {
+						case net.IPv4len, net.IPv6len:
+							out.IPAddresses = append(out.IPAddresses, v.Bytes)
+						default:
+							return nil, errors.New("x509: certificate contained IP address of length " + strconv.Itoa(len(v.Bytes)))
+						}
 					}
 				}
 
@@ -1072,11 +1094,22 @@
 		n++
 	}
 
-	if len(template.DNSNames) > 0 {
+	if len(template.DNSNames) > 0 || len(template.EmailAddresses) > 0 || len(template.IPAddresses) > 0 {
 		ret[n].Id = oidExtensionSubjectAltName
-		rawValues := make([]asn1.RawValue, len(template.DNSNames))
-		for i, name := range template.DNSNames {
-			rawValues[i] = asn1.RawValue{Tag: 2, Class: 2, Bytes: []byte(name)}
+		var rawValues []asn1.RawValue
+		for _, name := range template.DNSNames {
+			rawValues = append(rawValues, asn1.RawValue{Tag: 2, Class: 2, Bytes: []byte(name)})
+		}
+		for _, email := range template.EmailAddresses {
+			rawValues = append(rawValues, asn1.RawValue{Tag: 1, Class: 2, Bytes: []byte(email)})
+		}
+		for _, rawIP := range template.IPAddresses {
+			// If possible, we always want to encode IPv4 addresses in 4 bytes.
+			ip := rawIP.To4()
+			if ip == nil {
+				ip = rawIP
+			}
+			rawValues = append(rawValues, asn1.RawValue{Tag: 7, Class: 2, Bytes: ip})
 		}
 		ret[n].Value, err = asn1.Marshal(rawValues)
 		if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/crypto/x509/x509_test.go gcc-4.8.1/libgo/go/crypto/x509/x509_test.go
--- gcc-4.8.1.orig/libgo/go/crypto/x509/x509_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/crypto/x509/x509_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -19,6 +19,7 @@
 	"encoding/hex"
 	"encoding/pem"
 	"math/big"
+	"net"
 	"reflect"
 	"testing"
 	"time"
@@ -174,6 +175,49 @@
 	}
 }
 
+func TestMatchIP(t *testing.T) {
+	// Check that pattern matching is working.
+	c := &Certificate{
+		DNSNames: []string{"*.foo.bar.baz"},
+		Subject: pkix.Name{
+			CommonName: "*.foo.bar.baz",
+		},
+	}
+	err := c.VerifyHostname("quux.foo.bar.baz")
+	if err != nil {
+		t.Fatalf("VerifyHostname(quux.foo.bar.baz): %v", err)
+	}
+
+	// But check that if we change it to be matching against an IP address,
+	// it is rejected.
+	c = &Certificate{
+		DNSNames: []string{"*.2.3.4"},
+		Subject: pkix.Name{
+			CommonName: "*.2.3.4",
+		},
+	}
+	err = c.VerifyHostname("1.2.3.4")
+	if err == nil {
+		t.Fatalf("VerifyHostname(1.2.3.4) should have failed, did not")
+	}
+
+	c = &Certificate{
+		IPAddresses: []net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("::1")},
+	}
+	err = c.VerifyHostname("127.0.0.1")
+	if err != nil {
+		t.Fatalf("VerifyHostname(127.0.0.1): %v", err)
+	}
+	err = c.VerifyHostname("::1")
+	if err != nil {
+		t.Fatalf("VerifyHostname(::1): %v", err)
+	}
+	err = c.VerifyHostname("[::1]")
+	if err != nil {
+		t.Fatalf("VerifyHostname([::1]): %v", err)
+	}
+}
+
 func TestCertificateParse(t *testing.T) {
 	s, _ := hex.DecodeString(certBytes)
 	certs, err := ParseCertificates(s)
@@ -284,8 +328,11 @@
 			UnknownExtKeyUsage: testUnknownExtKeyUsage,
 
 			BasicConstraintsValid: true,
-			IsCA:     true,
-			DNSNames: []string{"test.example.com"},
+			IsCA: true,
+
+			DNSNames:       []string{"test.example.com"},
+			EmailAddresses: []string{"gopher@golang.org"},
+			IPAddresses:    []net.IP{net.IPv4(127, 0, 0, 1).To4(), net.ParseIP("2001:4860:0:2001::68")},
 
 			PolicyIdentifiers:   []asn1.ObjectIdentifier{[]int{1, 2, 3}},
 			PermittedDNSDomains: []string{".example.com", "example.com"},
@@ -327,6 +374,18 @@
 			t.Errorf("%s: unknown extkeyusage wasn't correctly copied from the template. Got %v, want %v", test.name, cert.UnknownExtKeyUsage, testUnknownExtKeyUsage)
 		}
 
+		if !reflect.DeepEqual(cert.DNSNames, template.DNSNames) {
+			t.Errorf("%s: SAN DNS names differ from template. Got %v, want %v", test.name, cert.DNSNames, template.DNSNames)
+		}
+
+		if !reflect.DeepEqual(cert.EmailAddresses, template.EmailAddresses) {
+			t.Errorf("%s: SAN emails differ from template. Got %v, want %v", test.name, cert.EmailAddresses, template.EmailAddresses)
+		}
+
+		if !reflect.DeepEqual(cert.IPAddresses, template.IPAddresses) {
+			t.Errorf("%s: SAN IPs differ from template. Got %v, want %v", test.name, cert.IPAddresses, template.IPAddresses)
+		}
+
 		if test.checkSig {
 			err = cert.CheckSignatureFrom(cert)
 			if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert.go gcc-4.8.1/libgo/go/database/sql/convert.go
--- gcc-4.8.1.orig/libgo/go/database/sql/convert.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/database/sql/convert.go	2013-07-16 01:55:04.520470000 -0500
@@ -14,12 +14,18 @@
 	"strconv"
 )
 
+var errNilPtr = errors.New("destination pointer is nil") // embedded in descriptive error
+
 // driverArgs converts arguments from callers of Stmt.Exec and
 // Stmt.Query into driver Values.
 //
-// The statement si may be nil, if no statement is available.
-func driverArgs(si driver.Stmt, args []interface{}) ([]driver.Value, error) {
+// The statement ds may be nil, if no statement is available.
+func driverArgs(ds *driverStmt, args []interface{}) ([]driver.Value, error) {
 	dargs := make([]driver.Value, len(args))
+	var si driver.Stmt
+	if ds != nil {
+		si = ds.si
+	}
 	cc, ok := si.(driver.ColumnConverter)
 
 	// Normal path, for a driver.Stmt that is not a ColumnConverter.
@@ -58,7 +64,9 @@
 		// column before going across the network to get the
 		// same error.
 		var err error
+		ds.Lock()
 		dargs[n], err = cc.ColumnConverter(n).ConvertValue(arg)
+		ds.Unlock()
 		if err != nil {
 			return nil, fmt.Errorf("sql: converting argument #%d's type: %v", n, err)
 		}
@@ -75,34 +83,68 @@
 // An error is returned if the copy would result in loss of information.
 // dest should be a pointer type.
 func convertAssign(dest, src interface{}) error {
-	// Common cases, without reflect.  Fall through.
+	// Common cases, without reflect.
 	switch s := src.(type) {
 	case string:
 		switch d := dest.(type) {
 		case *string:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = s
 			return nil
 		case *[]byte:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = []byte(s)
 			return nil
 		}
 	case []byte:
 		switch d := dest.(type) {
 		case *string:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = string(s)
 			return nil
 		case *interface{}:
-			bcopy := make([]byte, len(s))
-			copy(bcopy, s)
-			*d = bcopy
+			if d == nil {
+				return errNilPtr
+			}
+			*d = cloneBytes(s)
 			return nil
 		case *[]byte:
+			if d == nil {
+				return errNilPtr
+			}
+			*d = cloneBytes(s)
+			return nil
+		case *RawBytes:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = s
 			return nil
 		}
 	case nil:
 		switch d := dest.(type) {
+		case *interface{}:
+			if d == nil {
+				return errNilPtr
+			}
+			*d = nil
+			return nil
 		case *[]byte:
+			if d == nil {
+				return errNilPtr
+			}
+			*d = nil
+			return nil
+		case *RawBytes:
+			if d == nil {
+				return errNilPtr
+			}
 			*d = nil
 			return nil
 		}
@@ -121,6 +163,26 @@
 			*d = fmt.Sprintf("%v", src)
 			return nil
 		}
+	case *[]byte:
+		sv = reflect.ValueOf(src)
+		switch sv.Kind() {
+		case reflect.Bool,
+			reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+			reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+			reflect.Float32, reflect.Float64:
+			*d = []byte(fmt.Sprintf("%v", src))
+			return nil
+		}
+	case *RawBytes:
+		sv = reflect.ValueOf(src)
+		switch sv.Kind() {
+		case reflect.Bool,
+			reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+			reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+			reflect.Float32, reflect.Float64:
+			*d = RawBytes(fmt.Sprintf("%v", src))
+			return nil
+		}
 	case *bool:
 		bv, err := driver.Bool.ConvertValue(src)
 		if err == nil {
@@ -140,6 +202,9 @@
 	if dpv.Kind() != reflect.Ptr {
 		return errors.New("destination not a pointer")
 	}
+	if dpv.IsNil() {
+		return errNilPtr
+	}
 
 	if !sv.IsValid() {
 		sv = reflect.ValueOf(src)
@@ -189,6 +254,16 @@
 	return fmt.Errorf("unsupported driver -> Scan pair: %T -> %T", src, dest)
 }
 
+func cloneBytes(b []byte) []byte {
+	if b == nil {
+		return nil
+	} else {
+		c := make([]byte, len(b))
+		copy(c, b)
+		return c
+	}
+}
+
 func asString(src interface{}) string {
 	switch v := src.(type) {
 	case string:
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/convert_test.go gcc-4.8.1/libgo/go/database/sql/convert_test.go
--- gcc-4.8.1.orig/libgo/go/database/sql/convert_test.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/database/sql/convert_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -22,6 +22,8 @@
 	wantint   int64
 	wantuint  uint64
 	wantstr   string
+	wantbytes []byte
+	wantraw   RawBytes
 	wantf32   float32
 	wantf64   float64
 	wanttime  time.Time
@@ -35,6 +37,8 @@
 // Target variables for scanning into.
 var (
 	scanstr    string
+	scanbytes  []byte
+	scanraw    RawBytes
 	scanint    int
 	scanint8   int8
 	scanint16  int16
@@ -56,6 +60,7 @@
 	{s: someTime, d: &scantime, wanttime: someTime},
 
 	// To strings
+	{s: "string", d: &scanstr, wantstr: "string"},
 	{s: []byte("byteslice"), d: &scanstr, wantstr: "byteslice"},
 	{s: 123, d: &scanstr, wantstr: "123"},
 	{s: int8(123), d: &scanstr, wantstr: "123"},
@@ -66,6 +71,31 @@
 	{s: uint64(123), d: &scanstr, wantstr: "123"},
 	{s: 1.5, d: &scanstr, wantstr: "1.5"},
 
+	// To []byte
+	{s: nil, d: &scanbytes, wantbytes: nil},
+	{s: "string", d: &scanbytes, wantbytes: []byte("string")},
+	{s: []byte("byteslice"), d: &scanbytes, wantbytes: []byte("byteslice")},
+	{s: 123, d: &scanbytes, wantbytes: []byte("123")},
+	{s: int8(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: int64(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint8(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint16(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint32(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: uint64(123), d: &scanbytes, wantbytes: []byte("123")},
+	{s: 1.5, d: &scanbytes, wantbytes: []byte("1.5")},
+
+	// To RawBytes
+	{s: nil, d: &scanraw, wantraw: nil},
+	{s: []byte("byteslice"), d: &scanraw, wantraw: RawBytes("byteslice")},
+	{s: 123, d: &scanraw, wantraw: RawBytes("123")},
+	{s: int8(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: int64(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint8(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint16(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint32(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: uint64(123), d: &scanraw, wantraw: RawBytes("123")},
+	{s: 1.5, d: &scanraw, wantraw: RawBytes("1.5")},
+
 	// Strings to integers
 	{s: "255", d: &scanuint8, wantuint: 255},
 	{s: "256", d: &scanuint8, wanterr: `converting string "256" to a uint8: strconv.ParseUint: parsing "256": value out of range`},
@@ -113,6 +143,7 @@
 	{s: []byte("byteslice"), d: &scaniface, wantiface: []byte("byteslice")},
 	{s: true, d: &scaniface, wantiface: true},
 	{s: nil, d: &scaniface},
+	{s: []byte(nil), d: &scaniface, wantiface: []byte(nil)},
 }
 
 func intPtrValue(intptr interface{}) interface{} {
@@ -191,7 +222,7 @@
 			}
 			if srcBytes, ok := ct.s.([]byte); ok {
 				dstBytes := (*ifptr).([]byte)
-				if &dstBytes[0] == &srcBytes[0] {
+				if len(srcBytes) > 0 && &dstBytes[0] == &srcBytes[0] {
 					errf("copy into interface{} didn't copy []byte data")
 				}
 			}
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/driver/driver.go gcc-4.8.1/libgo/go/database/sql/driver/driver.go
--- gcc-4.8.1.orig/libgo/go/database/sql/driver/driver.go	2012-03-30 16:27:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/database/sql/driver/driver.go	2013-07-16 01:55:04.520470000 -0500
@@ -10,8 +10,8 @@
 
 import "errors"
 
-// A driver Value is a value that drivers must be able to handle.
-// A Value is either nil or an instance of one of these types:
+// Value is a value that drivers must be able to handle.
+// It is either nil or an instance of one of these types:
 //
 //   int64
 //   float64
@@ -56,7 +56,7 @@
 
 // Execer is an optional interface that may be implemented by a Conn.
 //
-// If a Conn does not implement Execer, the db package's DB.Exec will
+// If a Conn does not implement Execer, the sql package's DB.Exec will
 // first prepare a query, execute the statement, and then close the
 // statement.
 //
@@ -65,6 +65,17 @@
 	Exec(query string, args []Value) (Result, error)
 }
 
+// Queryer is an optional interface that may be implemented by a Conn.
+//
+// If a Conn does not implement Queryer, the sql package's DB.Query will
+// first prepare a query, execute the statement, and then close the
+// statement.
+//
+// Query may return ErrSkip.
+type Queryer interface {
+	Query(query string, args []Value) (Rows, error)
+}
+
 // Conn is a connection to a database. It is not used concurrently
 // by multiple goroutines.
 //
@@ -104,23 +115,8 @@
 type Stmt interface {
 	// Close closes the statement.
 	//
-	// Closing a statement should not interrupt any outstanding
-	// query created from that statement. That is, the following
-	// order of operations is valid:
-	//
-	//  * create a driver statement
-	//  * call Query on statement, returning Rows
-	//  * close the statement
-	//  * read from Rows
-	//
-	// If closing a statement invalidates currently-running
-	// queries, the final step above will incorrectly fail.
-	//
-	// TODO(bradfitz): possibly remove the restriction above, if
-	// enough driver authors object and find it complicates their
-	// code too much. The sql package could be smarter about
-	// refcounting the statement and closing it at the appropriate
-	// time.
+	// As of Go 1.1, a Stmt will not be closed if it's in use
+	// by any queries.
 	Close() error
 
 	// NumInput returns the number of placeholder parameters.
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/fakedb_test.go gcc-4.8.1/libgo/go/database/sql/fakedb_test.go
--- gcc-4.8.1.orig/libgo/go/database/sql/fakedb_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/database/sql/fakedb_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -13,6 +13,7 @@
 	"strconv"
 	"strings"
 	"sync"
+	"testing"
 	"time"
 )
 
@@ -34,9 +35,10 @@
 // When opening a fakeDriver's database, it starts empty with no
 // tables.  All tables and data are stored in memory only.
 type fakeDriver struct {
-	mu        sync.Mutex
-	openCount int
-	dbs       map[string]*fakeDB
+	mu         sync.Mutex // guards 3 following fields
+	openCount  int        // conn opens
+	closeCount int        // conn closes
+	dbs        map[string]*fakeDB
 }
 
 type fakeDB struct {
@@ -229,7 +231,43 @@
 	return c.currTx, nil
 }
 
-func (c *fakeConn) Close() error {
+var hookPostCloseConn struct {
+	sync.Mutex
+	fn func(*fakeConn, error)
+}
+
+func setHookpostCloseConn(fn func(*fakeConn, error)) {
+	hookPostCloseConn.Lock()
+	defer hookPostCloseConn.Unlock()
+	hookPostCloseConn.fn = fn
+}
+
+var testStrictClose *testing.T
+
+// setStrictFakeConnClose sets the t to Errorf on when fakeConn.Close
+// fails to close. If nil, the check is disabled.
+func setStrictFakeConnClose(t *testing.T) {
+	testStrictClose = t
+}
+
+func (c *fakeConn) Close() (err error) {
+	drv := fdriver.(*fakeDriver)
+	defer func() {
+		if err != nil && testStrictClose != nil {
+			testStrictClose.Errorf("failed to close a test fakeConn: %v", err)
+		}
+		hookPostCloseConn.Lock()
+		fn := hookPostCloseConn.fn
+		hookPostCloseConn.Unlock()
+		if fn != nil {
+			fn(c, err)
+		}
+		if err == nil {
+			drv.mu.Lock()
+			drv.closeCount++
+			drv.mu.Unlock()
+		}
+	}()
 	if c.currTx != nil {
 		return errors.New("can't close fakeConn; in a Transaction")
 	}
@@ -266,6 +304,18 @@
 	return nil, driver.ErrSkip
 }
 
+func (c *fakeConn) Query(query string, args []driver.Value) (driver.Rows, error) {
+	// This is an optional interface, but it's implemented here
+	// just to check that all the args are of the proper types.
+	// ErrSkip is returned so the caller acts as if we didn't
+	// implement this at all.
+	err := checkSubsetTypes(args)
+	if err != nil {
+		return nil, err
+	}
+	return nil, driver.ErrSkip
+}
+
 func errf(msg string, args ...interface{}) error {
 	return errors.New("fakedb: " + fmt.Sprintf(msg, args...))
 }
@@ -412,6 +462,12 @@
 }
 
 func (s *fakeStmt) Close() error {
+	if s.c == nil {
+		panic("nil conn in fakeStmt.Close")
+	}
+	if s.c.db == nil {
+		panic("in fakeStmt.Close, conn's db is nil (already closed)")
+	}
 	if !s.closed {
 		s.c.incrStat(&s.c.stmtsClosed)
 		s.closed = true
@@ -503,6 +559,15 @@
 	if !ok {
 		return nil, fmt.Errorf("fakedb: table %q doesn't exist", s.table)
 	}
+
+	if s.table == "magicquery" {
+		if len(s.whereCol) == 2 && s.whereCol[0] == "op" && s.whereCol[1] == "millis" {
+			if args[0] == "sleep" {
+				time.Sleep(time.Duration(args[1].(int64)) * time.Millisecond)
+			}
+		}
+	}
+
 	t.mu.Lock()
 	defer t.mu.Unlock()
 
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql.go gcc-4.8.1/libgo/go/database/sql/sql.go
--- gcc-4.8.1.orig/libgo/go/database/sql/sql.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/database/sql/sql.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,6 +4,9 @@
 
 // Package sql provides a generic interface around SQL (or SQL-like)
 // databases.
+//
+// The sql package must be used in conjunction with a database driver.
+// See http://golang.org/s/sqldrivers for a list of drivers.
 package sql
 
 import (
@@ -11,6 +14,7 @@
 	"errors"
 	"fmt"
 	"io"
+	"runtime"
 	"sync"
 )
 
@@ -176,22 +180,197 @@
 // DB is a database handle. It's safe for concurrent use by multiple
 // goroutines.
 //
-// If the underlying database driver has the concept of a connection
-// and per-connection session state, the sql package manages creating
-// and freeing connections automatically, including maintaining a free
-// pool of idle connections. If observing session state is required,
-// either do not share a *DB between multiple concurrent goroutines or
-// create and observe all state only within a transaction. Once
-// DB.Open is called, the returned Tx is bound to a single isolated
-// connection. Once Tx.Commit or Tx.Rollback is called, that
-// connection is returned to DB's idle connection pool.
+// The sql package creates and frees connections automatically; it
+// also maintains a free pool of idle connections. If the database has
+// a concept of per-connection state, such state can only be reliably
+// observed within a transaction. Once DB.Begin is called, the
+// returned Tx is bound to a single connection. Once Commit or
+// Rollback is called on the transaction, that transaction's
+// connection is returned to DB's idle connection pool. The pool size
+// can be controlled with SetMaxIdleConns.
 type DB struct {
 	driver driver.Driver
 	dsn    string
 
-	mu       sync.Mutex // protects freeConn and closed
-	freeConn []driver.Conn
+	mu       sync.Mutex // protects following fields
+	freeConn []*driverConn
 	closed   bool
+	dep      map[finalCloser]depSet
+	lastPut  map[*driverConn]string // stacktrace of last conn's put; debug only
+	maxIdle  int                    // zero means defaultMaxIdleConns; negative means 0
+}
+
+// driverConn wraps a driver.Conn with a mutex, to
+// be held during all calls into the Conn. (including any calls onto
+// interfaces returned via that Conn, such as calls on Tx, Stmt,
+// Result, Rows)
+type driverConn struct {
+	db *DB
+
+	sync.Mutex  // guards following
+	ci          driver.Conn
+	closed      bool
+	finalClosed bool // ci.Close has been called
+	openStmt    map[driver.Stmt]bool
+
+	// guarded by db.mu
+	inUse      bool
+	onPut      []func() // code (with db.mu held) run when conn is next returned
+	dbmuClosed bool     // same as closed, but guarded by db.mu, for connIfFree
+}
+
+func (dc *driverConn) removeOpenStmt(si driver.Stmt) {
+	dc.Lock()
+	defer dc.Unlock()
+	delete(dc.openStmt, si)
+}
+
+func (dc *driverConn) prepareLocked(query string) (driver.Stmt, error) {
+	si, err := dc.ci.Prepare(query)
+	if err == nil {
+		// Track each driverConn's open statements, so we can close them
+		// before closing the conn.
+		//
+		// TODO(bradfitz): let drivers opt out of caring about
+		// stmt closes if the conn is about to close anyway? For now
+		// do the safe thing, in case stmts need to be closed.
+		//
+		// TODO(bradfitz): after Go 1.1, closing driver.Stmts
+		// should be moved to driverStmt, using unique
+		// *driverStmts everywhere (including from
+		// *Stmt.connStmt, instead of returning a
+		// driver.Stmt), using driverStmt as a pointer
+		// everywhere, and making it a finalCloser.
+		if dc.openStmt == nil {
+			dc.openStmt = make(map[driver.Stmt]bool)
+		}
+		dc.openStmt[si] = true
+	}
+	return si, err
+}
+
+// the dc.db's Mutex is held.
+func (dc *driverConn) closeDBLocked() error {
+	dc.Lock()
+	if dc.closed {
+		dc.Unlock()
+		return errors.New("sql: duplicate driverConn close")
+	}
+	dc.closed = true
+	dc.Unlock() // not defer; removeDep finalClose calls may need to lock
+	return dc.db.removeDepLocked(dc, dc)()
+}
+
+func (dc *driverConn) Close() error {
+	dc.Lock()
+	if dc.closed {
+		dc.Unlock()
+		return errors.New("sql: duplicate driverConn close")
+	}
+	dc.closed = true
+	dc.Unlock() // not defer; removeDep finalClose calls may need to lock
+
+	// And now updates that require holding dc.mu.Lock.
+	dc.db.mu.Lock()
+	dc.dbmuClosed = true
+	fn := dc.db.removeDepLocked(dc, dc)
+	dc.db.mu.Unlock()
+	return fn()
+}
+
+func (dc *driverConn) finalClose() error {
+	dc.Lock()
+
+	for si := range dc.openStmt {
+		si.Close()
+	}
+	dc.openStmt = nil
+
+	err := dc.ci.Close()
+	dc.ci = nil
+	dc.finalClosed = true
+
+	dc.Unlock()
+	return err
+}
+
+// driverStmt associates a driver.Stmt with the
+// *driverConn from which it came, so the driverConn's lock can be
+// held during calls.
+type driverStmt struct {
+	sync.Locker // the *driverConn
+	si          driver.Stmt
+}
+
+func (ds *driverStmt) Close() error {
+	ds.Lock()
+	defer ds.Unlock()
+	return ds.si.Close()
+}
+
+// depSet is a finalCloser's outstanding dependencies
+type depSet map[interface{}]bool // set of true bools
+
+// The finalCloser interface is used by (*DB).addDep and related
+// dependency reference counting.
+type finalCloser interface {
+	// finalClose is called when the reference count of an object
+	// goes to zero. (*DB).mu is not held while calling it.
+	finalClose() error
+}
+
+// addDep notes that x now depends on dep, and x's finalClose won't be
+// called until all of x's dependencies are removed with removeDep.
+func (db *DB) addDep(x finalCloser, dep interface{}) {
+	//println(fmt.Sprintf("addDep(%T %p, %T %p)", x, x, dep, dep))
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	db.addDepLocked(x, dep)
+}
+
+func (db *DB) addDepLocked(x finalCloser, dep interface{}) {
+	if db.dep == nil {
+		db.dep = make(map[finalCloser]depSet)
+	}
+	xdep := db.dep[x]
+	if xdep == nil {
+		xdep = make(depSet)
+		db.dep[x] = xdep
+	}
+	xdep[dep] = true
+}
+
+// removeDep notes that x no longer depends on dep.
+// If x still has dependencies, nil is returned.
+// If x no longer has any dependencies, its finalClose method will be
+// called and its error value will be returned.
+func (db *DB) removeDep(x finalCloser, dep interface{}) error {
+	db.mu.Lock()
+	fn := db.removeDepLocked(x, dep)
+	db.mu.Unlock()
+	return fn()
+}
+
+func (db *DB) removeDepLocked(x finalCloser, dep interface{}) func() error {
+	//println(fmt.Sprintf("removeDep(%T %p, %T %p)", x, x, dep, dep))
+	done := false
+
+	xdep := db.dep[x]
+	if xdep != nil {
+		delete(xdep, dep)
+		if len(xdep) == 0 {
+			delete(db.dep, x)
+			done = true
+		}
+	}
+
+	if !done {
+		return func() error { return nil }
+	}
+	return func() error {
+		//println(fmt.Sprintf("calling final close on %T %v (%#v)", x, x, x))
+		return x.finalClose()
+	}
 }
 
 // Open opens a database specified by its database driver name and a
@@ -199,13 +378,38 @@
 // database name and connection information.
 //
 // Most users will open a database via a driver-specific connection
-// helper function that returns a *DB.
+// helper function that returns a *DB. No database drivers are included
+// in the Go standard library. See http://golang.org/s/sqldrivers for
+// a list of third-party drivers.
+//
+// Open may just validate its arguments without creating a connection
+// to the database. To verify that the data source name is valid, call
+// Ping.
 func Open(driverName, dataSourceName string) (*DB, error) {
-	driver, ok := drivers[driverName]
+	driveri, ok := drivers[driverName]
 	if !ok {
 		return nil, fmt.Errorf("sql: unknown driver %q (forgotten import?)", driverName)
 	}
-	return &DB{driver: driver, dsn: dataSourceName}, nil
+	db := &DB{
+		driver:  driveri,
+		dsn:     dataSourceName,
+		lastPut: make(map[*driverConn]string),
+	}
+	return db, nil
+}
+
+// Ping verifies a connection to the database is still alive,
+// establishing a connection if necessary.
+func (db *DB) Ping() error {
+	// TODO(bradfitz): give drivers an optional hook to implement
+	// this in a more efficient or more reliable way, if they
+	// have one.
+	dc, err := db.conn()
+	if err != nil {
+		return err
+	}
+	db.putConn(dc, nil)
+	return nil
 }
 
 // Close closes the database, releasing any open resources.
@@ -213,8 +417,8 @@
 	db.mu.Lock()
 	defer db.mu.Unlock()
 	var err error
-	for _, c := range db.freeConn {
-		err1 := c.Close()
+	for _, dc := range db.freeConn {
+		err1 := dc.closeDBLocked()
 		if err1 != nil {
 			err = err1
 		}
@@ -224,15 +428,45 @@
 	return err
 }
 
-func (db *DB) maxIdleConns() int {
-	const defaultMaxIdleConns = 2
-	// TODO(bradfitz): ask driver, if supported, for its default preference
-	// TODO(bradfitz): let users override?
-	return defaultMaxIdleConns
+const defaultMaxIdleConns = 2
+
+func (db *DB) maxIdleConnsLocked() int {
+	n := db.maxIdle
+	switch {
+	case n == 0:
+		// TODO(bradfitz): ask driver, if supported, for its default preference
+		return defaultMaxIdleConns
+	case n < 0:
+		return 0
+	default:
+		return n
+	}
+}
+
+// SetMaxIdleConns sets the maximum number of connections in the idle
+// connection pool.
+//
+// If n <= 0, no idle connections are retained.
+func (db *DB) SetMaxIdleConns(n int) {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	if n > 0 {
+		db.maxIdle = n
+	} else {
+		// No idle connections.
+		db.maxIdle = -1
+	}
+	for len(db.freeConn) > 0 && len(db.freeConn) > n {
+		nfree := len(db.freeConn)
+		dc := db.freeConn[nfree-1]
+		db.freeConn[nfree-1] = nil
+		db.freeConn = db.freeConn[:nfree-1]
+		go dc.Close()
+	}
 }
 
-// conn returns a newly-opened or cached driver.Conn
-func (db *DB) conn() (driver.Conn, error) {
+// conn returns a newly-opened or cached *driverConn
+func (db *DB) conn() (*driverConn, error) {
 	db.mu.Lock()
 	if db.closed {
 		db.mu.Unlock()
@@ -241,53 +475,132 @@
 	if n := len(db.freeConn); n > 0 {
 		conn := db.freeConn[n-1]
 		db.freeConn = db.freeConn[:n-1]
+		conn.inUse = true
 		db.mu.Unlock()
 		return conn, nil
 	}
 	db.mu.Unlock()
-	return db.driver.Open(db.dsn)
+
+	ci, err := db.driver.Open(db.dsn)
+	if err != nil {
+		return nil, err
+	}
+	dc := &driverConn{
+		db: db,
+		ci: ci,
+	}
+	db.mu.Lock()
+	db.addDepLocked(dc, dc)
+	dc.inUse = true
+	db.mu.Unlock()
+	return dc, nil
 }
 
-func (db *DB) connIfFree(wanted driver.Conn) (conn driver.Conn, ok bool) {
+var (
+	errConnClosed = errors.New("database/sql: internal sentinel error: conn is closed")
+	errConnBusy   = errors.New("database/sql: internal sentinel error: conn is busy")
+)
+
+// connIfFree returns (wanted, nil) if wanted is still a valid conn and
+// isn't in use.
+//
+// The error is errConnClosed if the connection if the requested connection
+// is invalid because it's been closed.
+//
+// The error is errConnBusy if the connection is in use.
+func (db *DB) connIfFree(wanted *driverConn) (*driverConn, error) {
 	db.mu.Lock()
 	defer db.mu.Unlock()
+	if wanted.inUse {
+		return nil, errConnBusy
+	}
+	if wanted.dbmuClosed {
+		return nil, errConnClosed
+	}
 	for i, conn := range db.freeConn {
 		if conn != wanted {
 			continue
 		}
 		db.freeConn[i] = db.freeConn[len(db.freeConn)-1]
 		db.freeConn = db.freeConn[:len(db.freeConn)-1]
-		return wanted, true
+		wanted.inUse = true
+		return wanted, nil
 	}
-	return nil, false
+	// TODO(bradfitz): shouldn't get here. After Go 1.1, change this to:
+	// panic("connIfFree call requested a non-closed, non-busy, non-free conn")
+	// Which passes all the tests, but I'm too paranoid to include this
+	// late in Go 1.1.
+	// Instead, treat it like a busy connection:
+	return nil, errConnBusy
 }
 
 // putConnHook is a hook for testing.
-var putConnHook func(*DB, driver.Conn)
+var putConnHook func(*DB, *driverConn)
+
+// noteUnusedDriverStatement notes that si is no longer used and should
+// be closed whenever possible (when c is next not in use), unless c is
+// already closed.
+func (db *DB) noteUnusedDriverStatement(c *driverConn, si driver.Stmt) {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	if c.inUse {
+		c.onPut = append(c.onPut, func() {
+			si.Close()
+		})
+	} else {
+		c.Lock()
+		defer c.Unlock()
+		if !c.finalClosed {
+			si.Close()
+		}
+	}
+}
+
+// debugGetPut determines whether getConn & putConn calls' stack traces
+// are returned for more verbose crashes.
+const debugGetPut = false
 
 // putConn adds a connection to the db's free pool.
 // err is optionally the last error that occurred on this connection.
-func (db *DB) putConn(c driver.Conn, err error) {
+func (db *DB) putConn(dc *driverConn, err error) {
+	db.mu.Lock()
+	if !dc.inUse {
+		if debugGetPut {
+			fmt.Printf("putConn(%v) DUPLICATE was: %s\n\nPREVIOUS was: %s", dc, stack(), db.lastPut[dc])
+		}
+		panic("sql: connection returned that was never out")
+	}
+	if debugGetPut {
+		db.lastPut[dc] = stack()
+	}
+	dc.inUse = false
+
+	for _, fn := range dc.onPut {
+		fn()
+	}
+	dc.onPut = nil
+
 	if err == driver.ErrBadConn {
 		// Don't reuse bad connections.
+		db.mu.Unlock()
 		return
 	}
-	db.mu.Lock()
 	if putConnHook != nil {
-		putConnHook(db, c)
+		putConnHook(db, dc)
 	}
-	if n := len(db.freeConn); !db.closed && n < db.maxIdleConns() {
-		db.freeConn = append(db.freeConn, c)
+	if n := len(db.freeConn); !db.closed && n < db.maxIdleConnsLocked() {
+		db.freeConn = append(db.freeConn, dc)
 		db.mu.Unlock()
 		return
 	}
-	// TODO: check to see if we need this Conn for any prepared
-	// statements which are still active?
 	db.mu.Unlock()
-	c.Close()
+
+	dc.Close()
 }
 
-// Prepare creates a prepared statement for later execution.
+// Prepare creates a prepared statement for later queries or executions.
+// Multiple queries or executions may be run concurrently from the
+// returned statement.
 func (db *DB) Prepare(query string) (*Stmt, error) {
 	var stmt *Stmt
 	var err error
@@ -300,34 +613,36 @@
 	return stmt, err
 }
 
-func (db *DB) prepare(query string) (stmt *Stmt, err error) {
+func (db *DB) prepare(query string) (*Stmt, error) {
 	// TODO: check if db.driver supports an optional
 	// driver.Preparer interface and call that instead, if so,
 	// otherwise we make a prepared statement that's bound
 	// to a connection, and to execute this prepared statement
 	// we either need to use this connection (if it's free), else
 	// get a new connection + re-prepare + execute on that one.
-	ci, err := db.conn()
+	dc, err := db.conn()
 	if err != nil {
 		return nil, err
 	}
-	defer func() {
-		db.putConn(ci, err)
-	}()
-
-	si, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.prepareLocked(query)
+	dc.Unlock()
 	if err != nil {
+		db.putConn(dc, err)
 		return nil, err
 	}
-	stmt = &Stmt{
+	stmt := &Stmt{
 		db:    db,
 		query: query,
-		css:   []connStmt{{ci, si}},
+		css:   []connStmt{{dc, si}},
 	}
+	db.addDep(stmt, stmt)
+	db.putConn(dc, nil)
 	return stmt, nil
 }
 
 // Exec executes a query without returning any rows.
+// The args are for any placeholder parameters in the query.
 func (db *DB) Exec(query string, args ...interface{}) (Result, error) {
 	var res Result
 	var err error
@@ -341,50 +656,119 @@
 }
 
 func (db *DB) exec(query string, args []interface{}) (res Result, err error) {
-	ci, err := db.conn()
+	dc, err := db.conn()
 	if err != nil {
 		return nil, err
 	}
 	defer func() {
-		db.putConn(ci, err)
+		db.putConn(dc, err)
 	}()
 
-	if execer, ok := ci.(driver.Execer); ok {
+	if execer, ok := dc.ci.(driver.Execer); ok {
 		dargs, err := driverArgs(nil, args)
 		if err != nil {
 			return nil, err
 		}
+		dc.Lock()
 		resi, err := execer.Exec(query, dargs)
+		dc.Unlock()
 		if err != driver.ErrSkip {
 			if err != nil {
 				return nil, err
 			}
-			return result{resi}, nil
+			return driverResult{dc, resi}, nil
 		}
 	}
 
-	sti, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
 		return nil, err
 	}
-	defer sti.Close()
-
-	return resultFromStatement(sti, args...)
+	defer withLock(dc, func() { si.Close() })
+	return resultFromStatement(driverStmt{dc, si}, args...)
 }
 
 // Query executes a query that returns rows, typically a SELECT.
 // The args are for any placeholder parameters in the query.
 func (db *DB) Query(query string, args ...interface{}) (*Rows, error) {
-	stmt, err := db.Prepare(query)
+	var rows *Rows
+	var err error
+	for i := 0; i < 10; i++ {
+		rows, err = db.query(query, args)
+		if err != driver.ErrBadConn {
+			break
+		}
+	}
+	return rows, err
+}
+
+func (db *DB) query(query string, args []interface{}) (*Rows, error) {
+	ci, err := db.conn()
+	if err != nil {
+		return nil, err
+	}
+
+	releaseConn := func(err error) { db.putConn(ci, err) }
+
+	return db.queryConn(ci, releaseConn, query, args)
+}
+
+// queryConn executes a query on the given connection.
+// The connection gets released by the releaseConn function.
+func (db *DB) queryConn(dc *driverConn, releaseConn func(error), query string, args []interface{}) (*Rows, error) {
+	if queryer, ok := dc.ci.(driver.Queryer); ok {
+		dargs, err := driverArgs(nil, args)
+		if err != nil {
+			releaseConn(err)
+			return nil, err
+		}
+		dc.Lock()
+		rowsi, err := queryer.Query(query, dargs)
+		dc.Unlock()
+		if err != driver.ErrSkip {
+			if err != nil {
+				releaseConn(err)
+				return nil, err
+			}
+			// Note: ownership of dc passes to the *Rows, to be freed
+			// with releaseConn.
+			rows := &Rows{
+				dc:          dc,
+				releaseConn: releaseConn,
+				rowsi:       rowsi,
+			}
+			return rows, nil
+		}
+	}
+
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
+		releaseConn(err)
 		return nil, err
 	}
-	rows, err := stmt.Query(args...)
+
+	ds := driverStmt{dc, si}
+	rowsi, err := rowsiFromStatement(ds, args...)
 	if err != nil {
-		stmt.Close()
+		releaseConn(err)
+		dc.Lock()
+		si.Close()
+		dc.Unlock()
 		return nil, err
 	}
-	rows.closeStmt = stmt
+
+	// Note: ownership of ci passes to the *Rows, to be freed
+	// with releaseConn.
+	rows := &Rows{
+		dc:          dc,
+		releaseConn: releaseConn,
+		rowsi:       rowsi,
+		closeStmt:   si,
+	}
 	return rows, nil
 }
 
@@ -411,18 +795,20 @@
 }
 
 func (db *DB) begin() (tx *Tx, err error) {
-	ci, err := db.conn()
+	dc, err := db.conn()
 	if err != nil {
 		return nil, err
 	}
-	txi, err := ci.Begin()
+	dc.Lock()
+	txi, err := dc.ci.Begin()
+	dc.Unlock()
 	if err != nil {
-		db.putConn(ci, err)
+		db.putConn(dc, err)
 		return nil, err
 	}
 	return &Tx{
 		db:  db,
-		ci:  ci,
+		dc:  dc,
 		txi: txi,
 	}, nil
 }
@@ -441,15 +827,11 @@
 type Tx struct {
 	db *DB
 
-	// ci is owned exclusively until Commit or Rollback, at which point
+	// dc is owned exclusively until Commit or Rollback, at which point
 	// it's returned with putConn.
-	ci  driver.Conn
+	dc  *driverConn
 	txi driver.Tx
 
-	// cimu is held while somebody is using ci (between grabConn
-	// and releaseConn)
-	cimu sync.Mutex
-
 	// done transitions from false to true exactly once, on Commit
 	// or Rollback. once done, all operations fail with
 	// ErrTxDone.
@@ -463,21 +845,16 @@
 		panic("double close") // internal error
 	}
 	tx.done = true
-	tx.db.putConn(tx.ci, nil)
-	tx.ci = nil
+	tx.db.putConn(tx.dc, nil)
+	tx.dc = nil
 	tx.txi = nil
 }
 
-func (tx *Tx) grabConn() (driver.Conn, error) {
+func (tx *Tx) grabConn() (*driverConn, error) {
 	if tx.done {
 		return nil, ErrTxDone
 	}
-	tx.cimu.Lock()
-	return tx.ci, nil
-}
-
-func (tx *Tx) releaseConn() {
-	tx.cimu.Unlock()
+	return tx.dc, nil
 }
 
 // Commit commits the transaction.
@@ -486,6 +863,8 @@
 		return ErrTxDone
 	}
 	defer tx.close()
+	tx.dc.Lock()
+	defer tx.dc.Unlock()
 	return tx.txi.Commit()
 }
 
@@ -495,6 +874,8 @@
 		return ErrTxDone
 	}
 	defer tx.close()
+	tx.dc.Lock()
+	defer tx.dc.Unlock()
 	return tx.txi.Rollback()
 }
 
@@ -518,21 +899,25 @@
 	// Perhaps just looking at the reference count (by noting
 	// Stmt.Close) would be enough. We might also want a finalizer
 	// on Stmt to drop the reference count.
-	ci, err := tx.grabConn()
+	dc, err := tx.grabConn()
 	if err != nil {
 		return nil, err
 	}
-	defer tx.releaseConn()
 
-	si, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
 		return nil, err
 	}
 
 	stmt := &Stmt{
-		db:    tx.db,
-		tx:    tx,
-		txsi:  si,
+		db: tx.db,
+		tx: tx,
+		txsi: &driverStmt{
+			Locker: dc,
+			si:     si,
+		},
 		query: query,
 	}
 	return stmt, nil
@@ -556,16 +941,20 @@
 	if tx.db != stmt.db {
 		return &Stmt{stickyErr: errors.New("sql: Tx.Stmt: statement from different database used")}
 	}
-	ci, err := tx.grabConn()
+	dc, err := tx.grabConn()
 	if err != nil {
 		return &Stmt{stickyErr: err}
 	}
-	defer tx.releaseConn()
-	si, err := ci.Prepare(stmt.query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(stmt.query)
+	dc.Unlock()
 	return &Stmt{
-		db:        tx.db,
-		tx:        tx,
-		txsi:      si,
+		db: tx.db,
+		tx: tx,
+		txsi: &driverStmt{
+			Locker: dc,
+			si:     si,
+		},
 		query:     stmt.query,
 		stickyErr: err,
 	}
@@ -574,51 +963,46 @@
 // Exec executes a query that doesn't return rows.
 // For example: an INSERT and UPDATE.
 func (tx *Tx) Exec(query string, args ...interface{}) (Result, error) {
-	ci, err := tx.grabConn()
+	dc, err := tx.grabConn()
 	if err != nil {
 		return nil, err
 	}
-	defer tx.releaseConn()
 
-	if execer, ok := ci.(driver.Execer); ok {
+	if execer, ok := dc.ci.(driver.Execer); ok {
 		dargs, err := driverArgs(nil, args)
 		if err != nil {
 			return nil, err
 		}
+		dc.Lock()
 		resi, err := execer.Exec(query, dargs)
+		dc.Unlock()
 		if err == nil {
-			return result{resi}, nil
+			return driverResult{dc, resi}, nil
 		}
 		if err != driver.ErrSkip {
 			return nil, err
 		}
 	}
 
-	sti, err := ci.Prepare(query)
+	dc.Lock()
+	si, err := dc.ci.Prepare(query)
+	dc.Unlock()
 	if err != nil {
 		return nil, err
 	}
-	defer sti.Close()
+	defer withLock(dc, func() { si.Close() })
 
-	return resultFromStatement(sti, args...)
+	return resultFromStatement(driverStmt{dc, si}, args...)
 }
 
 // Query executes a query that returns rows, typically a SELECT.
 func (tx *Tx) Query(query string, args ...interface{}) (*Rows, error) {
-	if tx.done {
-		return nil, ErrTxDone
-	}
-	stmt, err := tx.Prepare(query)
-	if err != nil {
-		return nil, err
-	}
-	rows, err := stmt.Query(args...)
+	dc, err := tx.grabConn()
 	if err != nil {
-		stmt.Close()
 		return nil, err
 	}
-	rows.closeStmt = stmt
-	return rows, err
+	releaseConn := func(error) {}
+	return tx.db.queryConn(dc, releaseConn, query, args)
 }
 
 // QueryRow executes a query that is expected to return at most one row.
@@ -631,7 +1015,7 @@
 
 // connStmt is a prepared statement on a particular connection.
 type connStmt struct {
-	ci driver.Conn
+	dc *driverConn
 	si driver.Stmt
 }
 
@@ -642,9 +1026,11 @@
 	query     string // that created the Stmt
 	stickyErr error  // if non-nil, this error is returned for all operations
 
+	closemu sync.RWMutex // held exclusively during close, for read otherwise.
+
 	// If in a transaction, else both nil:
 	tx   *Tx
-	txsi driver.Stmt
+	txsi *driverStmt
 
 	mu     sync.Mutex // protects the rest of the fields
 	closed bool
@@ -659,39 +1045,47 @@
 // Exec executes a prepared statement with the given arguments and
 // returns a Result summarizing the effect of the statement.
 func (s *Stmt) Exec(args ...interface{}) (Result, error) {
-	_, releaseConn, si, err := s.connStmt()
+	s.closemu.RLock()
+	defer s.closemu.RUnlock()
+	dc, releaseConn, si, err := s.connStmt()
 	if err != nil {
 		return nil, err
 	}
 	defer releaseConn(nil)
 
-	return resultFromStatement(si, args...)
+	return resultFromStatement(driverStmt{dc, si}, args...)
 }
 
-func resultFromStatement(si driver.Stmt, args ...interface{}) (Result, error) {
+func resultFromStatement(ds driverStmt, args ...interface{}) (Result, error) {
+	ds.Lock()
+	want := ds.si.NumInput()
+	ds.Unlock()
+
 	// -1 means the driver doesn't know how to count the number of
 	// placeholders, so we won't sanity check input here and instead let the
 	// driver deal with errors.
-	if want := si.NumInput(); want != -1 && len(args) != want {
+	if want != -1 && len(args) != want {
 		return nil, fmt.Errorf("sql: expected %d arguments, got %d", want, len(args))
 	}
 
-	dargs, err := driverArgs(si, args)
+	dargs, err := driverArgs(&ds, args)
 	if err != nil {
 		return nil, err
 	}
 
-	resi, err := si.Exec(dargs)
+	ds.Lock()
+	resi, err := ds.si.Exec(dargs)
+	ds.Unlock()
 	if err != nil {
 		return nil, err
 	}
-	return result{resi}, nil
+	return driverResult{ds.Locker, resi}, nil
 }
 
 // connStmt returns a free driver connection on which to execute the
 // statement, a function to call to release the connection, and a
 // statement bound to that connection.
-func (s *Stmt) connStmt() (ci driver.Conn, releaseConn func(error), si driver.Stmt, err error) {
+func (s *Stmt) connStmt() (ci *driverConn, releaseConn func(error), si driver.Stmt, err error) {
 	if err = s.stickyErr; err != nil {
 		return
 	}
@@ -710,19 +1104,27 @@
 		if err != nil {
 			return
 		}
-		releaseConn = func(error) { s.tx.releaseConn() }
-		return ci, releaseConn, s.txsi, nil
+		releaseConn = func(error) {}
+		return ci, releaseConn, s.txsi.si, nil
 	}
 
 	var cs connStmt
 	match := false
-	for _, v := range s.css {
-		// TODO(bradfitz): lazily clean up entries in this
-		// list with dead conns while enumerating
-		if _, match = s.db.connIfFree(v.ci); match {
+	for i := 0; i < len(s.css); i++ {
+		v := s.css[i]
+		_, err := s.db.connIfFree(v.dc)
+		if err == nil {
+			match = true
 			cs = v
 			break
 		}
+		if err == errConnClosed {
+			// Lazily remove dead conn from our freelist.
+			s.css[i] = s.css[len(s.css)-1]
+			s.css = s.css[:len(s.css)-1]
+			i--
+		}
+
 	}
 	s.mu.Unlock()
 
@@ -730,11 +1132,13 @@
 	// TODO(bradfitz): or wait for one? make configurable later?
 	if !match {
 		for i := 0; ; i++ {
-			ci, err := s.db.conn()
+			dc, err := s.db.conn()
 			if err != nil {
 				return nil, nil, nil, err
 			}
-			si, err := ci.Prepare(s.query)
+			dc.Lock()
+			si, err := dc.prepareLocked(s.query)
+			dc.Unlock()
 			if err == driver.ErrBadConn && i < 10 {
 				continue
 			}
@@ -742,14 +1146,14 @@
 				return nil, nil, nil, err
 			}
 			s.mu.Lock()
-			cs = connStmt{ci, si}
+			cs = connStmt{dc, si}
 			s.css = append(s.css, cs)
 			s.mu.Unlock()
 			break
 		}
 	}
 
-	conn := cs.ci
+	conn := cs.dc
 	releaseConn = func(err error) { s.db.putConn(conn, err) }
 	return conn, releaseConn, cs.si, nil
 }
@@ -757,37 +1161,60 @@
 // Query executes a prepared query statement with the given arguments
 // and returns the query results as a *Rows.
 func (s *Stmt) Query(args ...interface{}) (*Rows, error) {
-	ci, releaseConn, si, err := s.connStmt()
+	s.closemu.RLock()
+	defer s.closemu.RUnlock()
+
+	dc, releaseConn, si, err := s.connStmt()
 	if err != nil {
 		return nil, err
 	}
 
+	ds := driverStmt{dc, si}
+	rowsi, err := rowsiFromStatement(ds, args...)
+	if err != nil {
+		releaseConn(err)
+		return nil, err
+	}
+
+	// Note: ownership of ci passes to the *Rows, to be freed
+	// with releaseConn.
+	rows := &Rows{
+		dc:    dc,
+		rowsi: rowsi,
+		// releaseConn set below
+	}
+	s.db.addDep(s, rows)
+	rows.releaseConn = func(err error) {
+		releaseConn(err)
+		s.db.removeDep(s, rows)
+	}
+	return rows, nil
+}
+
+func rowsiFromStatement(ds driverStmt, args ...interface{}) (driver.Rows, error) {
+	ds.Lock()
+	want := ds.si.NumInput()
+	ds.Unlock()
+
 	// -1 means the driver doesn't know how to count the number of
 	// placeholders, so we won't sanity check input here and instead let the
 	// driver deal with errors.
-	if want := si.NumInput(); want != -1 && len(args) != want {
-		return nil, fmt.Errorf("sql: statement expects %d inputs; got %d", si.NumInput(), len(args))
+	if want != -1 && len(args) != want {
+		return nil, fmt.Errorf("sql: statement expects %d inputs; got %d", want, len(args))
 	}
 
-	dargs, err := driverArgs(si, args)
+	dargs, err := driverArgs(&ds, args)
 	if err != nil {
 		return nil, err
 	}
 
-	rowsi, err := si.Query(dargs)
+	ds.Lock()
+	rowsi, err := ds.si.Query(dargs)
+	ds.Unlock()
 	if err != nil {
-		releaseConn(err)
 		return nil, err
 	}
-	// Note: ownership of ci passes to the *Rows, to be freed
-	// with releaseConn.
-	rows := &Rows{
-		db:          s.db,
-		ci:          ci,
-		releaseConn: releaseConn,
-		rowsi:       rowsi,
-	}
-	return rows, nil
+	return rowsi, nil
 }
 
 // QueryRow executes a prepared query statement with the given arguments.
@@ -811,6 +1238,9 @@
 
 // Close closes the statement.
 func (s *Stmt) Close() error {
+	s.closemu.Lock()
+	defer s.closemu.Unlock()
+
 	if s.stickyErr != nil {
 		return s.stickyErr
 	}
@@ -823,18 +1253,19 @@
 
 	if s.tx != nil {
 		s.txsi.Close()
-	} else {
-		for _, v := range s.css {
-			if ci, match := s.db.connIfFree(v.ci); match {
-				v.si.Close()
-				s.db.putConn(ci, nil)
-			} else {
-				// TODO(bradfitz): care that we can't close
-				// this statement because the statement's
-				// connection is in use?
-			}
-		}
+		return nil
+	}
+
+	return s.db.removeDep(s, s)
+}
+
+func (s *Stmt) finalClose() error {
+	for _, v := range s.css {
+		s.db.noteUnusedDriverStatement(v.dc, v.si)
+		v.dc.removeOpenStmt(v.si)
+		s.db.removeDep(v.dc, s)
 	}
+	s.css = nil
 	return nil
 }
 
@@ -852,15 +1283,14 @@
 //     err = rows.Err() // get any error encountered during iteration
 //     ...
 type Rows struct {
-	db          *DB
-	ci          driver.Conn // owned; must call putconn when closed to release
+	dc          *driverConn // owned; must call releaseConn when closed to release
 	releaseConn func(error)
 	rowsi       driver.Rows
 
 	closed    bool
 	lastcols  []driver.Value
 	lasterr   error
-	closeStmt *Stmt // if non-nil, statement to Close on close
+	closeStmt driver.Stmt // if non-nil, statement to Close on close
 }
 
 // Next prepares the next result row for reading with the Scan method.
@@ -936,24 +1366,6 @@
 			return fmt.Errorf("sql: Scan error on column index %d: %v", i, err)
 		}
 	}
-	for _, dp := range dest {
-		b, ok := dp.(*[]byte)
-		if !ok {
-			continue
-		}
-		if *b == nil {
-			// If the []byte is now nil (for a NULL value),
-			// don't fall through to below which would
-			// turn it into a non-nil 0-length byte slice
-			continue
-		}
-		if _, ok = dp.(*RawBytes); ok {
-			continue
-		}
-		clone := make([]byte, len(*b))
-		copy(clone, *b)
-		*b = clone
-	}
 	return nil
 }
 
@@ -966,10 +1378,10 @@
 	}
 	rs.closed = true
 	err := rs.rowsi.Close()
-	rs.releaseConn(err)
 	if rs.closeStmt != nil {
 		rs.closeStmt.Close()
 	}
+	rs.releaseConn(err)
 	return err
 }
 
@@ -1026,6 +1438,31 @@
 	RowsAffected() (int64, error)
 }
 
-type result struct {
-	driver.Result
+type driverResult struct {
+	sync.Locker // the *driverConn
+	resi        driver.Result
+}
+
+func (dr driverResult) LastInsertId() (int64, error) {
+	dr.Lock()
+	defer dr.Unlock()
+	return dr.resi.LastInsertId()
+}
+
+func (dr driverResult) RowsAffected() (int64, error) {
+	dr.Lock()
+	defer dr.Unlock()
+	return dr.resi.RowsAffected()
+}
+
+func stack() string {
+	var buf [2 << 10]byte
+	return string(buf[:runtime.Stack(buf[:], false)])
+}
+
+// withLock runs while holding lk.
+func withLock(lk sync.Locker, fn func()) {
+	lk.Lock()
+	fn()
+	lk.Unlock()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/database/sql/sql_test.go gcc-4.8.1/libgo/go/database/sql/sql_test.go
--- gcc-4.8.1.orig/libgo/go/database/sql/sql_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/database/sql/sql_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,11 +5,11 @@
 package sql
 
 import (
-	"database/sql/driver"
 	"fmt"
 	"reflect"
 	"runtime"
 	"strings"
+	"sync"
 	"testing"
 	"time"
 )
@@ -17,10 +17,10 @@
 func init() {
 	type dbConn struct {
 		db *DB
-		c  driver.Conn
+		c  *driverConn
 	}
 	freedFrom := make(map[dbConn]string)
-	putConnHook = func(db *DB, c driver.Conn) {
+	putConnHook = func(db *DB, c *driverConn) {
 		for _, oc := range db.freeConn {
 			if oc == c {
 				// print before panic, as panic may get lost due to conflicting panic
@@ -38,7 +38,15 @@
 
 var chrisBirthday = time.Unix(123456789, 0)
 
-func newTestDB(t *testing.T, name string) *DB {
+type testOrBench interface {
+	Fatalf(string, ...interface{})
+	Errorf(string, ...interface{})
+	Fatal(...interface{})
+	Error(...interface{})
+	Logf(string, ...interface{})
+}
+
+func newTestDB(t testOrBench, name string) *DB {
 	db, err := Open("test", fakeDBName)
 	if err != nil {
 		t.Fatalf("Open: %v", err)
@@ -52,17 +60,42 @@
 		exec(t, db, "INSERT|people|name=Bob,age=?,photo=BPHOTO", 2)
 		exec(t, db, "INSERT|people|name=Chris,age=?,photo=CPHOTO,bdate=?", 3, chrisBirthday)
 	}
+	if name == "magicquery" {
+		// Magic table name and column, known by fakedb_test.go.
+		exec(t, db, "CREATE|magicquery|op=string,millis=int32")
+		exec(t, db, "INSERT|magicquery|op=sleep,millis=10")
+	}
 	return db
 }
 
-func exec(t *testing.T, db *DB, query string, args ...interface{}) {
+func exec(t testOrBench, db *DB, query string, args ...interface{}) {
 	_, err := db.Exec(query, args...)
 	if err != nil {
 		t.Fatalf("Exec of %q: %v", query, err)
 	}
 }
 
-func closeDB(t *testing.T, db *DB) {
+func closeDB(t testOrBench, db *DB) {
+	if e := recover(); e != nil {
+		fmt.Printf("Panic: %v\n", e)
+		panic(e)
+	}
+	defer setHookpostCloseConn(nil)
+	setHookpostCloseConn(func(_ *fakeConn, err error) {
+		if err != nil {
+			t.Errorf("Error closing fakeConn: %v", err)
+		}
+	})
+	for i, dc := range db.freeConn {
+		if n := len(dc.openStmt); n > 0 {
+			// Just a sanity check. This is legal in
+			// general, but if we make the tests clean up
+			// their statements first, then we can safely
+			// verify this is always zero here, and any
+			// other value is a leak.
+			t.Errorf("while closing db, freeConn %d/%d had %d open stmts; want 0", i, len(db.freeConn), n)
+		}
+	}
 	err := db.Close()
 	if err != nil {
 		t.Fatalf("error closing DB: %v", err)
@@ -75,7 +108,52 @@
 	if n := len(db.freeConn); n != 1 {
 		t.Fatalf("free conns = %d; want 1", n)
 	}
-	return db.freeConn[0].(*fakeConn).numPrepare
+	return db.freeConn[0].ci.(*fakeConn).numPrepare
+}
+
+func (db *DB) numDeps() int {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	return len(db.dep)
+}
+
+// Dependencies are closed via a goroutine, so this polls waiting for
+// numDeps to fall to want, waiting up to d.
+func (db *DB) numDepsPollUntil(want int, d time.Duration) int {
+	deadline := time.Now().Add(d)
+	for {
+		n := db.numDeps()
+		if n <= want || time.Now().After(deadline) {
+			return n
+		}
+		time.Sleep(50 * time.Millisecond)
+	}
+}
+
+func (db *DB) numFreeConns() int {
+	db.mu.Lock()
+	defer db.mu.Unlock()
+	return len(db.freeConn)
+}
+
+func (db *DB) dumpDeps(t *testing.T) {
+	for fc := range db.dep {
+		db.dumpDep(t, 0, fc, map[finalCloser]bool{})
+	}
+}
+
+func (db *DB) dumpDep(t *testing.T, depth int, dep finalCloser, seen map[finalCloser]bool) {
+	seen[dep] = true
+	indent := strings.Repeat("  ", depth)
+	ds := db.dep[dep]
+	for k := range ds {
+		t.Logf("%s%T (%p) waiting for -> %T (%p)", indent, dep, dep, k, k)
+		if fc, ok := k.(finalCloser); ok {
+			if !seen[fc] {
+				db.dumpDep(t, depth+1, fc, seen)
+			}
+		}
+	}
 }
 
 func TestQuery(t *testing.T) {
@@ -114,7 +192,7 @@
 
 	// And verify that the final rows.Next() call, which hit EOF,
 	// also closed the rows connection.
-	if n := len(db.freeConn); n != 1 {
+	if n := db.numFreeConns(); n != 1 {
 		t.Fatalf("free conns after query hitting EOF = %d; want 1", n)
 	}
 	if prepares := numPrepares(t, db) - prepares0; prepares != 1 {
@@ -270,6 +348,35 @@
 
 }
 
+// golang.org/issue/3734
+func TestStatementQueryRowConcurrent(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+	stmt, err := db.Prepare("SELECT|people|age|name=?")
+	if err != nil {
+		t.Fatalf("Prepare: %v", err)
+	}
+	defer stmt.Close()
+
+	const n = 10
+	ch := make(chan error, n)
+	for i := 0; i < n; i++ {
+		go func() {
+			var age int
+			err := stmt.QueryRow("Alice").Scan(&age)
+			if err == nil && age != 1 {
+				err = fmt.Errorf("unexpected age %d", age)
+			}
+			ch <- err
+		}()
+	}
+	for i := 0; i < n; i++ {
+		if err := <-ch; err != nil {
+			t.Error(err)
+		}
+	}
+}
+
 // just a test of fakedb itself
 func TestBogusPreboundParameters(t *testing.T) {
 	db := newTestDB(t, "foo")
@@ -448,6 +555,30 @@
 	}
 }
 
+// From golang.org/issue/3865
+func TestCloseStmtBeforeRows(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	s, err := db.Prepare("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	r, err := s.Query()
+	if err != nil {
+		s.Close()
+		t.Fatal(err)
+	}
+
+	err = s.Close()
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	r.Close()
+}
+
 // Tests fix for issue 2788, that we bind nil to a []byte if the
 // value in the column is sql null
 func TestNullByteSlice(t *testing.T) {
@@ -520,7 +651,7 @@
 	if len(db.freeConn) != 1 {
 		t.Fatalf("expected 1 free conn")
 	}
-	fakeConn := db.freeConn[0].(*fakeConn)
+	fakeConn := db.freeConn[0].ci.(*fakeConn)
 	if made, closed := fakeConn.stmtsMade, fakeConn.stmtsClosed; made != closed {
 		t.Errorf("statement close mismatch: made %d, closed %d", made, closed)
 	}
@@ -641,7 +772,337 @@
 	}
 }
 
-func stack() string {
-	buf := make([]byte, 1024)
-	return string(buf[:runtime.Stack(buf, false)])
+// golang.org/issue/4859
+func TestQueryRowNilScanDest(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+	var name *string // nil pointer
+	err := db.QueryRow("SELECT|people|name|").Scan(name)
+	want := "sql: Scan error on column index 0: destination pointer is nil"
+	if err == nil || err.Error() != want {
+		t.Errorf("error = %q; want %q", err.Error(), want)
+	}
+}
+
+func TestIssue4902(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	driver := db.driver.(*fakeDriver)
+	opens0 := driver.openCount
+
+	var stmt *Stmt
+	var err error
+	for i := 0; i < 10; i++ {
+		stmt, err = db.Prepare("SELECT|people|name|")
+		if err != nil {
+			t.Fatal(err)
+		}
+		err = stmt.Close()
+		if err != nil {
+			t.Fatal(err)
+		}
+	}
+
+	opens := driver.openCount - opens0
+	if opens > 1 {
+		t.Errorf("opens = %d; want <= 1", opens)
+		t.Logf("db = %#v", db)
+		t.Logf("driver = %#v", driver)
+		t.Logf("stmt = %#v", stmt)
+	}
+}
+
+// Issue 3857
+// This used to deadlock.
+func TestSimultaneousQueries(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	tx, err := db.Begin()
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer tx.Rollback()
+
+	r1, err := tx.Query("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer r1.Close()
+
+	r2, err := tx.Query("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer r2.Close()
+}
+
+func TestMaxIdleConns(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	tx, err := db.Begin()
+	if err != nil {
+		t.Fatal(err)
+	}
+	tx.Commit()
+	if got := len(db.freeConn); got != 1 {
+		t.Errorf("freeConns = %d; want 1", got)
+	}
+
+	db.SetMaxIdleConns(0)
+
+	if got := len(db.freeConn); got != 0 {
+		t.Errorf("freeConns after set to zero = %d; want 0", got)
+	}
+
+	tx, err = db.Begin()
+	if err != nil {
+		t.Fatal(err)
+	}
+	tx.Commit()
+	if got := len(db.freeConn); got != 0 {
+		t.Errorf("freeConns = %d; want 0", got)
+	}
+}
+
+// golang.org/issue/5323
+func TestStmtCloseDeps(t *testing.T) {
+	if testing.Short() {
+		t.Skip("skipping in short mode")
+	}
+	defer setHookpostCloseConn(nil)
+	setHookpostCloseConn(func(_ *fakeConn, err error) {
+		if err != nil {
+			t.Errorf("Error closing fakeConn: %v", err)
+		}
+	})
+
+	db := newTestDB(t, "magicquery")
+	defer closeDB(t, db)
+
+	driver := db.driver.(*fakeDriver)
+
+	driver.mu.Lock()
+	opens0 := driver.openCount
+	closes0 := driver.closeCount
+	driver.mu.Unlock()
+	openDelta0 := opens0 - closes0
+
+	stmt, err := db.Prepare("SELECT|magicquery|op|op=?,millis=?")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// Start 50 parallel slow queries.
+	const (
+		nquery      = 50
+		sleepMillis = 25
+		nbatch      = 2
+	)
+	var wg sync.WaitGroup
+	for batch := 0; batch < nbatch; batch++ {
+		for i := 0; i < nquery; i++ {
+			wg.Add(1)
+			go func() {
+				defer wg.Done()
+				var op string
+				if err := stmt.QueryRow("sleep", sleepMillis).Scan(&op); err != nil && err != ErrNoRows {
+					t.Error(err)
+				}
+			}()
+		}
+		// Sleep for twice the expected length of time for the
+		// batch of 50 queries above to finish before starting
+		// the next round.
+		time.Sleep(2 * sleepMillis * time.Millisecond)
+	}
+	wg.Wait()
+
+	if g, w := db.numFreeConns(), 2; g != w {
+		t.Errorf("free conns = %d; want %d", g, w)
+	}
+
+	if n := db.numDepsPollUntil(4, time.Second); n > 4 {
+		t.Errorf("number of dependencies = %d; expected <= 4", n)
+		db.dumpDeps(t)
+	}
+
+	driver.mu.Lock()
+	opens := driver.openCount - opens0
+	closes := driver.closeCount - closes0
+	driver.mu.Unlock()
+	openDelta := (driver.openCount - driver.closeCount) - openDelta0
+
+	if openDelta > 2 {
+		t.Logf("open calls = %d", opens)
+		t.Logf("close calls = %d", closes)
+		t.Logf("open delta = %d", openDelta)
+		t.Errorf("db connections opened = %d; want <= 2", openDelta)
+		db.dumpDeps(t)
+	}
+
+	if len(stmt.css) > nquery {
+		t.Errorf("len(stmt.css) = %d; want <= %d", len(stmt.css), nquery)
+	}
+
+	if err := stmt.Close(); err != nil {
+		t.Fatal(err)
+	}
+
+	if g, w := db.numFreeConns(), 2; g != w {
+		t.Errorf("free conns = %d; want %d", g, w)
+	}
+
+	if n := db.numDepsPollUntil(2, time.Second); n > 2 {
+		t.Errorf("number of dependencies = %d; expected <= 2", n)
+		db.dumpDeps(t)
+	}
+
+	db.SetMaxIdleConns(0)
+
+	if g, w := db.numFreeConns(), 0; g != w {
+		t.Errorf("free conns = %d; want %d", g, w)
+	}
+
+	if n := db.numDepsPollUntil(0, time.Second); n > 0 {
+		t.Errorf("number of dependencies = %d; expected 0", n)
+		db.dumpDeps(t)
+	}
+}
+
+// golang.org/issue/5046
+func TestCloseConnBeforeStmts(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	defer setHookpostCloseConn(nil)
+	setHookpostCloseConn(func(_ *fakeConn, err error) {
+		if err != nil {
+			t.Errorf("Error closing fakeConn: %v; from %s", err, stack())
+			db.dumpDeps(t)
+			t.Errorf("DB = %#v", db)
+		}
+	})
+
+	stmt, err := db.Prepare("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	if len(db.freeConn) != 1 {
+		t.Fatalf("expected 1 freeConn; got %d", len(db.freeConn))
+	}
+	dc := db.freeConn[0]
+	if dc.closed {
+		t.Errorf("conn shouldn't be closed")
+	}
+
+	if n := len(dc.openStmt); n != 1 {
+		t.Errorf("driverConn num openStmt = %d; want 1", n)
+	}
+	err = db.Close()
+	if err != nil {
+		t.Errorf("db Close = %v", err)
+	}
+	if !dc.closed {
+		t.Errorf("after db.Close, driverConn should be closed")
+	}
+	if n := len(dc.openStmt); n != 0 {
+		t.Errorf("driverConn num openStmt = %d; want 0", n)
+	}
+
+	err = stmt.Close()
+	if err != nil {
+		t.Errorf("Stmt close = %v", err)
+	}
+
+	if !dc.closed {
+		t.Errorf("conn should be closed")
+	}
+	if dc.ci != nil {
+		t.Errorf("after Stmt Close, driverConn's Conn interface should be nil")
+	}
+}
+
+// golang.org/issue/5283: don't release the Rows' connection in Close
+// before calling Stmt.Close.
+func TestRowsCloseOrder(t *testing.T) {
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	db.SetMaxIdleConns(0)
+	setStrictFakeConnClose(t)
+	defer setStrictFakeConnClose(nil)
+
+	rows, err := db.Query("SELECT|people|age,name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = rows.Close()
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+func manyConcurrentQueries(t testOrBench) {
+	maxProcs, numReqs := 16, 500
+	if testing.Short() {
+		maxProcs, numReqs = 4, 50
+	}
+	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(maxProcs))
+
+	db := newTestDB(t, "people")
+	defer closeDB(t, db)
+
+	stmt, err := db.Prepare("SELECT|people|name|")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer stmt.Close()
+
+	var wg sync.WaitGroup
+	wg.Add(numReqs)
+
+	reqs := make(chan bool)
+	defer close(reqs)
+
+	for i := 0; i < maxProcs*2; i++ {
+		go func() {
+			for _ = range reqs {
+				rows, err := stmt.Query()
+				if err != nil {
+					t.Errorf("error on query:  %v", err)
+					wg.Done()
+					continue
+				}
+
+				var name string
+				for rows.Next() {
+					rows.Scan(&name)
+				}
+				rows.Close()
+
+				wg.Done()
+			}
+		}()
+	}
+
+	for i := 0; i < numReqs; i++ {
+		reqs <- true
+	}
+
+	wg.Wait()
+}
+
+func TestConcurrency(t *testing.T) {
+	manyConcurrentQueries(t)
+}
+
+func BenchmarkConcurrency(b *testing.B) {
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		manyConcurrentQueries(b)
+	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/buf.go gcc-4.8.1/libgo/go/debug/dwarf/buf.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/buf.go	2012-03-09 00:35:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/debug/dwarf/buf.go	2013-07-16 01:55:04.520470000 -0500
@@ -13,17 +13,45 @@
 
 // Data buffer being decoded.
 type buf struct {
-	dwarf *Data
-	u     *unit
-	order binary.ByteOrder
-	name  string
-	off   Offset
-	data  []byte
-	err   error
+	dwarf  *Data
+	order  binary.ByteOrder
+	format dataFormat
+	name   string
+	off    Offset
+	data   []byte
+	err    error
 }
 
-func makeBuf(d *Data, u *unit, name string, off Offset, data []byte) buf {
-	return buf{d, u, d.order, name, off, data, nil}
+// Data format, other than byte order.  This affects the handling of
+// certain field formats.
+type dataFormat interface {
+	// DWARF version number.  Zero means unknown.
+	version() int
+
+	// 64-bit DWARF format?
+	dwarf64() (dwarf64 bool, isKnown bool)
+
+	// Size of an address, in bytes.  Zero means unknown.
+	addrsize() int
+}
+
+// Some parts of DWARF have no data format, e.g., abbrevs.
+type unknownFormat struct{}
+
+func (u unknownFormat) version() int {
+	return 0
+}
+
+func (u unknownFormat) dwarf64() (bool, bool) {
+	return false, false
+}
+
+func (u unknownFormat) addrsize() int {
+	return 0
+}
+
+func makeBuf(d *Data, format dataFormat, name string, off Offset, data []byte) buf {
+	return buf{d, d.order, format, name, off, data, nil}
 }
 
 func (b *buf) uint8() uint8 {
@@ -121,17 +149,15 @@
 
 // Address-sized uint.
 func (b *buf) addr() uint64 {
-	if b.u != nil {
-		switch b.u.addrsize {
-		case 1:
-			return uint64(b.uint8())
-		case 2:
-			return uint64(b.uint16())
-		case 4:
-			return uint64(b.uint32())
-		case 8:
-			return uint64(b.uint64())
-		}
+	switch b.format.addrsize() {
+	case 1:
+		return uint64(b.uint8())
+	case 2:
+		return uint64(b.uint16())
+	case 4:
+		return uint64(b.uint32())
+	case 8:
+		return uint64(b.uint64())
 	}
 	b.error("unknown address size")
 	return 0
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/entry.go gcc-4.8.1/libgo/go/debug/dwarf/entry.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/entry.go	2012-03-09 00:35:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/debug/dwarf/entry.go	2013-07-16 01:55:04.520470000 -0500
@@ -40,7 +40,7 @@
 	} else {
 		data = data[off:]
 	}
-	b := makeBuf(d, nil, "abbrev", 0, data)
+	b := makeBuf(d, unknownFormat{}, "abbrev", 0, data)
 
 	// Error handling is simplified by the buf getters
 	// returning an endless stream of 0s after an error.
@@ -190,13 +190,16 @@
 		case formFlag:
 			val = b.uint8() == 1
 		case formFlagPresent:
+			// The attribute is implicitly indicated as present, and no value is
+			// encoded in the debugging information entry itself.
 			val = true
 
 		// lineptr, loclistptr, macptr, rangelistptr
 		case formSecOffset:
-			if b.u == nil {
+			is64, known := b.format.dwarf64()
+			if !known {
 				b.error("unknown size for DW_FORM_sec_offset")
-			} else if b.u.dwarf64 {
+			} else if is64 {
 				val = Offset(b.uint64())
 			} else {
 				val = Offset(b.uint32())
@@ -204,14 +207,20 @@
 
 		// reference to other entry
 		case formRefAddr:
-			if b.u == nil {
+			vers := b.format.version()
+			if vers == 0 {
 				b.error("unknown version for DW_FORM_ref_addr")
-			} else if b.u.version == 2 {
+			} else if vers == 2 {
 				val = Offset(b.addr())
-			} else if b.u.dwarf64 {
-				val = Offset(b.uint64())
 			} else {
-				val = Offset(b.uint32())
+				is64, known := b.format.dwarf64()
+				if !known {
+					b.error("unknown size for DW_FORM_ref_addr")
+				} else if is64 {
+					val = Offset(b.uint64())
+				} else {
+					val = Offset(b.uint32())
+				}
 			}
 		case formRef1:
 			val = Offset(b.uint8()) + ubase
@@ -234,7 +243,7 @@
 			if b.err != nil {
 				return nil
 			}
-			b1 := makeBuf(b.dwarf, b.u, "str", 0, b.dwarf.str)
+			b1 := makeBuf(b.dwarf, unknownFormat{}, "str", 0, b.dwarf.str)
 			b1.skip(int(off))
 			val = b1.string()
 			if b1.err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/line.go gcc-4.8.1/libgo/go/debug/dwarf/line.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/line.go	2012-09-06 00:28:02.000000000 -0500
+++ gcc-4.8.1/libgo/go/debug/dwarf/line.go	2013-07-16 01:55:04.520470000 -0500
@@ -112,7 +112,7 @@
 func (d *Data) readAddressRanges(off Offset, base uint64, u *unit) error {
 	b := makeBuf(d, u, "ranges", off, d.ranges[off:])
 	var highest uint64
-	switch u.addrsize {
+	switch u.addrsize() {
 	case 1:
 		highest = 0xff
 	case 2:
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/type.go gcc-4.8.1/libgo/go/debug/dwarf/type.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/type.go	2012-03-09 00:35:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/debug/dwarf/type.go	2013-07-16 01:55:04.520470000 -0500
@@ -435,7 +435,9 @@
 					goto Error
 				}
 				if loc, ok := kid.Val(AttrDataMemberLoc).([]byte); ok {
-					b := makeBuf(d, nil, "location", 0, loc)
+					// TODO: Should have original compilation
+					// unit here, not unknownFormat.
+					b := makeBuf(d, unknownFormat{}, "location", 0, loc)
 					if b.uint8() != opPlusUconst {
 						err = DecodeError{"info", kid.Offset, "unexpected opcode"}
 						goto Error
diff -Naur gcc-4.8.1.orig/libgo/go/debug/dwarf/unit.go gcc-4.8.1/libgo/go/debug/dwarf/unit.go
--- gcc-4.8.1.orig/libgo/go/debug/dwarf/unit.go	2012-03-09 00:35:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/debug/dwarf/unit.go	2013-07-16 01:55:04.520470000 -0500
@@ -10,17 +10,31 @@
 // Each unit has its own abbreviation table and address size.
 
 type unit struct {
-	base     Offset // byte offset of header within the aggregate info
-	off      Offset // byte offset of data within the aggregate info
-	lineoff  Offset // byte offset of data within the line info
-	data     []byte
-	atable   abbrevTable
-	addrsize int
-	version  int
-	dwarf64  bool // True for 64-bit DWARF format
-	dir      string
-	pc       []addrRange   // PC ranges in this compilation unit
-	lines    []mapLineInfo // PC -> line mapping
+	base    Offset // byte offset of header within the aggregate info
+	off     Offset // byte offset of data within the aggregate info
+	lineoff Offset // byte offset of data within the line info
+	data    []byte
+	atable  abbrevTable
+	asize   int
+	vers    int
+	is64    bool // True for 64-bit DWARF format
+	dir     string
+	pc      []addrRange   // PC ranges in this compilation unit
+	lines   []mapLineInfo // PC -> line mapping
+}
+
+// Implement the dataFormat interface.
+
+func (u *unit) version() int {
+	return u.vers
+}
+
+func (u *unit) dwarf64() (bool, bool) {
+	return u.is64, true
+}
+
+func (u *unit) addrsize() int {
+	return u.asize
 }
 
 // A range is an address range.
@@ -32,12 +46,12 @@
 func (d *Data) parseUnits() ([]unit, error) {
 	// Count units.
 	nunit := 0
-	b := makeBuf(d, nil, "info", 0, d.info)
+	b := makeBuf(d, unknownFormat{}, "info", 0, d.info)
 	for len(b.data) > 0 {
 		len := b.uint32()
 		if len == 0xffffffff {
 			len64 := b.uint64()
-			if len64 != uint64(int(len64)) {
+			if len64 != uint64(uint32(len64)) {
 				b.error("unit length overflow")
 				break
 			}
@@ -51,14 +65,14 @@
 	}
 
 	// Again, this time writing them down.
-	b = makeBuf(d, nil, "info", 0, d.info)
+	b = makeBuf(d, unknownFormat{}, "info", 0, d.info)
 	units := make([]unit, nunit)
 	for i := range units {
 		u := &units[i]
 		u.base = b.off
 		n := b.uint32()
 		if n == 0xffffffff {
-			u.dwarf64 = true
+			u.is64 = true
 			n = uint32(b.uint64())
 		}
 		vers := b.uint16()
@@ -66,6 +80,7 @@
 			b.error("unsupported DWARF version " + strconv.Itoa(int(vers)))
 			break
 		}
+		u.vers = int(vers)
 		atable, err := d.parseAbbrev(b.uint32())
 		if err != nil {
 			if b.err == nil {
@@ -73,9 +88,8 @@
 			}
 			break
 		}
-		u.version = int(vers)
 		u.atable = atable
-		u.addrsize = int(b.uint8())
+		u.asize = int(b.uint8())
 		u.off = b.off
 		u.data = b.bytes(int(n - (2 + 4 + 1)))
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/debug/elf/file.go gcc-4.8.1/libgo/go/debug/elf/file.go
--- gcc-4.8.1.orig/libgo/go/debug/elf/file.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/debug/elf/file.go	2013-07-16 01:55:04.520470000 -0500
@@ -422,6 +422,10 @@
 		return nil, nil, errors.New("cannot load string table section")
 	}
 
+	// The first entry is all zeros.
+	var skip [Sym32Size]byte
+	symtab.Read(skip[:])
+
 	symbols := make([]Symbol, symtab.Len()/Sym32Size)
 
 	i := 0
@@ -461,6 +465,10 @@
 		return nil, nil, errors.New("cannot load string table section")
 	}
 
+	// The first entry is all zeros.
+	var skip [Sym64Size]byte
+	symtab.Read(skip[:])
+
 	symbols := make([]Symbol, symtab.Len()/Sym64Size)
 
 	i := 0
@@ -533,10 +541,10 @@
 		symNo := rela.Info >> 32
 		t := R_X86_64(rela.Info & 0xffff)
 
-		if symNo >= uint64(len(symbols)) {
+		if symNo == 0 || symNo > uint64(len(symbols)) {
 			continue
 		}
-		sym := &symbols[symNo]
+		sym := &symbols[symNo-1]
 		if SymType(sym.Info&0xf) != STT_SECTION {
 			// We don't handle non-section relocations for now.
 			continue
@@ -597,6 +605,10 @@
 }
 
 // Symbols returns the symbol table for f.
+//
+// For compatibility with Go 1.0, Symbols omits the null symbol at index 0.
+// After retrieving the symbols as symtab, an externally supplied index x
+// corresponds to symtab[x-1], not symtab[x].
 func (f *File) Symbols() ([]Symbol, error) {
 	sym, _, err := f.getSymbols(SHT_SYMTAB)
 	return sym, err
@@ -706,7 +718,7 @@
 // which came from offset i of the symbol table.
 func (f *File) gnuVersion(i int, sym *ImportedSymbol) {
 	// Each entry is two bytes.
-	i = i * 2
+	i = (i + 1) * 2
 	if i >= len(f.gnuVersym) {
 		return
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/debug/gosym/symtab.go gcc-4.8.1/libgo/go/debug/gosym/symtab.go
--- gcc-4.8.1.orig/libgo/go/debug/gosym/symtab.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/debug/gosym/symtab.go	2013-07-16 01:55:04.520470000 -0500
@@ -99,31 +99,116 @@
 }
 
 type sym struct {
-	value  uint32
-	gotype uint32
+	value  uint64
+	gotype uint64
 	typ    byte
 	name   []byte
 }
 
-var littleEndianSymtab = []byte{0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00}
+var littleEndianSymtab = []byte{0xFD, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00}
+var bigEndianSymtab = []byte{0xFF, 0xFF, 0xFF, 0xFD, 0x00, 0x00, 0x00}
+
+var oldLittleEndianSymtab = []byte{0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00}
 
 func walksymtab(data []byte, fn func(sym) error) error {
 	var order binary.ByteOrder = binary.BigEndian
-	if bytes.HasPrefix(data, littleEndianSymtab) {
+	newTable := false
+	switch {
+	case bytes.HasPrefix(data, oldLittleEndianSymtab):
+		// Same as Go 1.0, but little endian.
+		// Format was used during interim development between Go 1.0 and Go 1.1.
+		// Should not be widespread, but easy to support.
 		data = data[6:]
 		order = binary.LittleEndian
+	case bytes.HasPrefix(data, bigEndianSymtab):
+		newTable = true
+	case bytes.HasPrefix(data, littleEndianSymtab):
+		newTable = true
+		order = binary.LittleEndian
+	}
+	var ptrsz int
+	if newTable {
+		if len(data) < 8 {
+			return &DecodingError{len(data), "unexpected EOF", nil}
+		}
+		ptrsz = int(data[7])
+		if ptrsz != 4 && ptrsz != 8 {
+			return &DecodingError{7, "invalid pointer size", ptrsz}
+		}
+		data = data[8:]
 	}
 	var s sym
 	p := data
-	for len(p) >= 6 {
-		s.value = order.Uint32(p[0:4])
-		typ := p[4]
-		if typ&0x80 == 0 {
-			return &DecodingError{len(data) - len(p) + 4, "bad symbol type", typ}
-		}
-		typ &^= 0x80
-		s.typ = typ
-		p = p[5:]
+	for len(p) >= 4 {
+		var typ byte
+		if newTable {
+			// Symbol type, value, Go type.
+			typ = p[0] & 0x3F
+			wideValue := p[0]&0x40 != 0
+			goType := p[0]&0x80 != 0
+			if typ < 26 {
+				typ += 'A'
+			} else {
+				typ += 'a' - 26
+			}
+			s.typ = typ
+			p = p[1:]
+			if wideValue {
+				if len(p) < ptrsz {
+					return &DecodingError{len(data), "unexpected EOF", nil}
+				}
+				// fixed-width value
+				if ptrsz == 8 {
+					s.value = order.Uint64(p[0:8])
+					p = p[8:]
+				} else {
+					s.value = uint64(order.Uint32(p[0:4]))
+					p = p[4:]
+				}
+			} else {
+				// varint value
+				s.value = 0
+				shift := uint(0)
+				for len(p) > 0 && p[0]&0x80 != 0 {
+					s.value |= uint64(p[0]&0x7F) << shift
+					shift += 7
+					p = p[1:]
+				}
+				if len(p) == 0 {
+					return &DecodingError{len(data), "unexpected EOF", nil}
+				}
+				s.value |= uint64(p[0]) << shift
+				p = p[1:]
+			}
+			if goType {
+				if len(p) < ptrsz {
+					return &DecodingError{len(data), "unexpected EOF", nil}
+				}
+				// fixed-width go type
+				if ptrsz == 8 {
+					s.gotype = order.Uint64(p[0:8])
+					p = p[8:]
+				} else {
+					s.gotype = uint64(order.Uint32(p[0:4]))
+					p = p[4:]
+				}
+			}
+		} else {
+			// Value, symbol type.
+			s.value = uint64(order.Uint32(p[0:4]))
+			if len(p) < 5 {
+				return &DecodingError{len(data), "unexpected EOF", nil}
+			}
+			typ = p[4]
+			if typ&0x80 == 0 {
+				return &DecodingError{len(data) - len(p) + 4, "bad symbol type", typ}
+			}
+			typ &^= 0x80
+			s.typ = typ
+			p = p[5:]
+		}
+
+		// Name.
 		var i int
 		var nnul int
 		for i = 0; i < len(p); i++ {
@@ -142,13 +227,21 @@
 				}
 			}
 		}
-		if i+nnul+4 > len(p) {
+		if len(p) < i+nnul {
 			return &DecodingError{len(data), "unexpected EOF", nil}
 		}
 		s.name = p[0:i]
 		i += nnul
-		s.gotype = order.Uint32(p[i : i+4])
-		p = p[i+4:]
+		p = p[i:]
+
+		if !newTable {
+			if len(p) < 4 {
+				return &DecodingError{len(data), "unexpected EOF", nil}
+			}
+			// Go type.
+			s.gotype = uint64(order.Uint32(p[:4]))
+			p = p[4:]
+		}
 		fn(s)
 	}
 	return nil
diff -Naur gcc-4.8.1.orig/libgo/go/debug/macho/file.go gcc-4.8.1/libgo/go/debug/macho/file.go
--- gcc-4.8.1.orig/libgo/go/debug/macho/file.go	2012-03-06 19:16:20.000000000 -0600
+++ gcc-4.8.1/libgo/go/debug/macho/file.go	2013-07-16 01:55:04.520470000 -0500
@@ -142,6 +142,8 @@
  * Mach-O reader
  */
 
+// FormatError is returned by some operations if the data does
+// not have the correct format for an object file.
 type FormatError struct {
 	off int64
 	msg string
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/ascii85/ascii85.go gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go
--- gcc-4.8.1.orig/libgo/go/encoding/ascii85/ascii85.go	2012-05-04 10:01:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/encoding/ascii85/ascii85.go	2013-07-16 01:55:04.520470000 -0500
@@ -296,5 +296,4 @@
 		nn, d.readErr = d.r.Read(d.buf[d.nbuf:])
 		d.nbuf += nn
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/asn1/marshal.go gcc-4.8.1/libgo/go/encoding/asn1/marshal.go
--- gcc-4.8.1.orig/libgo/go/encoding/asn1/marshal.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/asn1/marshal.go	2013-07-16 01:55:04.520470000 -0500
@@ -460,7 +460,6 @@
 		default:
 			return marshalUTF8String(out, v.String())
 		}
-		return
 	}
 
 	return StructuralError{"unknown Go type"}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32.go gcc-4.8.1/libgo/go/encoding/base32/base32.go
--- gcc-4.8.1.orig/libgo/go/encoding/base32/base32.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/encoding/base32/base32.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,8 +6,10 @@
 package base32
 
 import (
+	"bytes"
 	"io"
 	"strconv"
+	"strings"
 )
 
 /*
@@ -48,6 +50,13 @@
 // It is typically used in DNS.
 var HexEncoding = NewEncoding(encodeHex)
 
+var removeNewlinesMapper = func(r rune) rune {
+	if r == '\r' || r == '\n' {
+		return -1
+	}
+	return r
+}
+
 /*
  * Encoder
  */
@@ -228,40 +237,47 @@
 
 // decode is like Decode but returns an additional 'end' value, which
 // indicates if end-of-message padding was encountered and thus any
-// additional data is an error.
+// additional data is an error. This method assumes that src has been
+// stripped of all supported whitespace ('\r' and '\n').
 func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err error) {
-	osrc := src
+	olen := len(src)
 	for len(src) > 0 && !end {
 		// Decode quantum using the base32 alphabet
 		var dbuf [8]byte
 		dlen := 8
 
-		// do the top bytes contain any data?
 		for j := 0; j < 8; {
 			if len(src) == 0 {
-				return n, false, CorruptInputError(len(osrc) - len(src) - j)
+				return n, false, CorruptInputError(olen - len(src) - j)
 			}
 			in := src[0]
 			src = src[1:]
-			if in == '\r' || in == '\n' {
-				// Ignore this character.
-				continue
-			}
 			if in == '=' && j >= 2 && len(src) < 8 {
-				// We've reached the end and there's
-				// padding, the rest should be padded
-				for k := 0; k < 8-j-1; k++ {
+				// We've reached the end and there's padding
+				if len(src)+j < 8-1 {
+					// not enough padding
+					return n, false, CorruptInputError(olen)
+				}
+				for k := 0; k < 8-1-j; k++ {
 					if len(src) > k && src[k] != '=' {
-						return n, false, CorruptInputError(len(osrc) - len(src) + k - 1)
+						// incorrect padding
+						return n, false, CorruptInputError(olen - len(src) + k - 1)
 					}
 				}
-				dlen = j
-				end = true
+				dlen, end = j, true
+				// 7, 5 and 2 are not valid padding lengths, and so 1, 3 and 6 are not
+				// valid dlen values. See RFC 4648 Section 6 "Base 32 Encoding" listing
+				// the five valid padding lengths, and Section 9 "Illustrations and
+				// Examples" for an illustration for how the the 1st, 3rd and 6th base32
+				// src bytes do not yield enough information to decode a dst byte.
+				if dlen == 1 || dlen == 3 || dlen == 6 {
+					return n, false, CorruptInputError(olen - len(src) - 1)
+				}
 				break
 			}
 			dbuf[j] = enc.decodeMap[in]
 			if dbuf[j] == 0xFF {
-				return n, false, CorruptInputError(len(osrc) - len(src) - 1)
+				return n, false, CorruptInputError(olen - len(src) - 1)
 			}
 			j++
 		}
@@ -269,16 +285,16 @@
 		// Pack 8x 5-bit source blocks into 5 byte destination
 		// quantum
 		switch dlen {
-		case 7, 8:
+		case 8:
 			dst[4] = dbuf[6]<<5 | dbuf[7]
 			fallthrough
-		case 6, 5:
+		case 7:
 			dst[3] = dbuf[4]<<7 | dbuf[5]<<2 | dbuf[6]>>3
 			fallthrough
-		case 4:
+		case 5:
 			dst[2] = dbuf[3]<<4 | dbuf[4]>>1
 			fallthrough
-		case 3:
+		case 4:
 			dst[1] = dbuf[1]<<6 | dbuf[2]<<1 | dbuf[3]>>4
 			fallthrough
 		case 2:
@@ -288,11 +304,11 @@
 		switch dlen {
 		case 2:
 			n += 1
-		case 3, 4:
+		case 4:
 			n += 2
 		case 5:
 			n += 3
-		case 6, 7:
+		case 7:
 			n += 4
 		case 8:
 			n += 5
@@ -307,12 +323,14 @@
 // number of bytes successfully written and CorruptInputError.
 // New line characters (\r and \n) are ignored.
 func (enc *Encoding) Decode(dst, src []byte) (n int, err error) {
+	src = bytes.Map(removeNewlinesMapper, src)
 	n, _, err = enc.decode(dst, src)
 	return
 }
 
 // DecodeString returns the bytes represented by the base32 string s.
 func (enc *Encoding) DecodeString(s string) ([]byte, error) {
+	s = strings.Map(removeNewlinesMapper, s)
 	dbuf := make([]byte, enc.DecodedLen(len(s)))
 	n, err := enc.Decode(dbuf, []byte(s))
 	return dbuf[:n], err
@@ -377,9 +395,34 @@
 	return n, d.err
 }
 
+type newlineFilteringReader struct {
+	wrapped io.Reader
+}
+
+func (r *newlineFilteringReader) Read(p []byte) (int, error) {
+	n, err := r.wrapped.Read(p)
+	for n > 0 {
+		offset := 0
+		for i, b := range p[0:n] {
+			if b != '\r' && b != '\n' {
+				if i != offset {
+					p[offset] = b
+				}
+				offset++
+			}
+		}
+		if offset > 0 {
+			return offset, err
+		}
+		// Previous buffer entirely whitespace, read again
+		n, err = r.wrapped.Read(p)
+	}
+	return n, err
+}
+
 // NewDecoder constructs a new base32 stream decoder.
 func NewDecoder(enc *Encoding, r io.Reader) io.Reader {
-	return &decoder{enc: enc, r: r}
+	return &decoder{enc: enc, r: &newlineFilteringReader{r}}
 }
 
 // DecodedLen returns the maximum length in bytes of the decoded data
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base32/base32_test.go gcc-4.8.1/libgo/go/encoding/base32/base32_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/base32/base32_test.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/base32/base32_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -8,6 +8,7 @@
 	"bytes"
 	"io"
 	"io/ioutil"
+	"strings"
 	"testing"
 )
 
@@ -137,27 +138,48 @@
 }
 
 func TestDecodeCorrupt(t *testing.T) {
-	type corrupt struct {
-		e string
-		p int
-	}
-	examples := []corrupt{
+	testCases := []struct {
+		input  string
+		offset int // -1 means no corruption.
+	}{
+		{"", -1},
 		{"!!!!", 0},
 		{"x===", 0},
 		{"AA=A====", 2},
 		{"AAA=AAAA", 3},
 		{"MMMMMMMMM", 8},
 		{"MMMMMM", 0},
-	}
-
-	for _, e := range examples {
-		dbuf := make([]byte, StdEncoding.DecodedLen(len(e.e)))
-		_, err := StdEncoding.Decode(dbuf, []byte(e.e))
+		{"A=", 1},
+		{"AA=", 3},
+		{"AA==", 4},
+		{"AA===", 5},
+		{"AAAA=", 5},
+		{"AAAA==", 6},
+		{"AAAAA=", 6},
+		{"AAAAA==", 7},
+		{"A=======", 1},
+		{"AA======", -1},
+		{"AAA=====", 3},
+		{"AAAA====", -1},
+		{"AAAAA===", -1},
+		{"AAAAAA==", 6},
+		{"AAAAAAA=", -1},
+		{"AAAAAAAA", -1},
+	}
+	for _, tc := range testCases {
+		dbuf := make([]byte, StdEncoding.DecodedLen(len(tc.input)))
+		_, err := StdEncoding.Decode(dbuf, []byte(tc.input))
+		if tc.offset == -1 {
+			if err != nil {
+				t.Error("Decoder wrongly detected coruption in", tc.input)
+			}
+			continue
+		}
 		switch err := err.(type) {
 		case CorruptInputError:
-			testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p)
+			testEqual(t, "Corruption in %q at offset %v, want %v", tc.input, int(err), tc.offset)
 		default:
-			t.Error("Decoder failed to detect corruption in", e)
+			t.Error("Decoder failed to detect corruption in", tc)
 		}
 	}
 }
@@ -195,9 +217,21 @@
 	}
 }
 
+func testStringEncoding(t *testing.T, expected string, examples []string) {
+	for _, e := range examples {
+		buf, err := StdEncoding.DecodeString(e)
+		if err != nil {
+			t.Errorf("Decode(%q) failed: %v", e, err)
+			continue
+		}
+		if s := string(buf); s != expected {
+			t.Errorf("Decode(%q) = %q, want %q", e, s, expected)
+		}
+	}
+}
+
 func TestNewLineCharacters(t *testing.T) {
 	// Each of these should decode to the string "sure", without errors.
-	const expected = "sure"
 	examples := []string{
 		"ON2XEZI=",
 		"ON2XEZI=\r",
@@ -209,14 +243,44 @@
 		"ON2XEZ\nI=",
 		"ON2XEZI\n=",
 	}
-	for _, e := range examples {
-		buf, err := StdEncoding.DecodeString(e)
-		if err != nil {
-			t.Errorf("Decode(%q) failed: %v", e, err)
-			continue
-		}
-		if s := string(buf); s != expected {
-			t.Errorf("Decode(%q) = %q, want %q", e, s, expected)
-		}
+	testStringEncoding(t, "sure", examples)
+
+	// Each of these should decode to the string "foobar", without errors.
+	examples = []string{
+		"MZXW6YTBOI======",
+		"MZXW6YTBOI=\r\n=====",
+	}
+	testStringEncoding(t, "foobar", examples)
+}
+
+func TestDecoderIssue4779(t *testing.T) {
+	encoded := `JRXXEZLNEBUXA43VNUQGI33MN5ZCA43JOQQGC3LFOQWCAY3PNZZWKY3UMV2HK4
+RAMFSGS4DJONUWG2LOM4QGK3DJOQWCA43FMQQGI3YKMVUXK43NN5SCA5DFNVYG64RANFXGG2LENFSH
+K3TUEB2XIIDMMFRG64TFEBSXIIDEN5WG64TFEBWWCZ3OMEQGC3DJOF2WCLRAKV2CAZLONFWQUYLEEB
+WWS3TJNUQHMZLONFQW2LBAOF2WS4ZANZXXG5DSOVSCAZLYMVZGG2LUMF2GS33OEB2WY3DBNVRW6IDM
+MFRG64TJOMQG42LTNEQHK5AKMFWGS4LVNFYCAZLYEBSWCIDDN5WW233EN4QGG33OONSXC5LBOQXCAR
+DVNFZSAYLVORSSA2LSOVZGKIDEN5WG64RANFXAU4TFOBZGK2DFNZSGK4TJOQQGS3RAOZXWY5LQORQX
+IZJAOZSWY2LUEBSXG43FEBRWS3DMOVWSAZDPNRXXEZJAMV2SAZTVM5UWC5BANZ2WY3DBBJYGC4TJMF
+2HK4ROEBCXQY3FOB2GK5LSEBZWS3TUEBXWGY3BMVRWC5BAMN2XA2LEMF2GC5BANZXW4IDQOJXWSZDF
+NZ2CYIDTOVXHIIDJNYFGG5LMOBQSA4LVNEQG6ZTGNFRWSYJAMRSXGZLSOVXHIIDNN5WGY2LUEBQW42
+LNEBUWIIDFON2CA3DBMJXXE5LNFY==
+====`
+	encodedShort := strings.Replace(encoded, "\n", "", -1)
+
+	dec := NewDecoder(StdEncoding, bytes.NewBufferString(encoded))
+	res1, err := ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	dec = NewDecoder(StdEncoding, bytes.NewBufferString(encodedShort))
+	var res2 []byte
+	res2, err = ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	if !bytes.Equal(res1, res2) {
+		t.Error("Decoded results not equal")
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64.go gcc-4.8.1/libgo/go/encoding/base64/base64.go
--- gcc-4.8.1.orig/libgo/go/encoding/base64/base64.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/encoding/base64/base64.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,8 +6,10 @@
 package base64
 
 import (
+	"bytes"
 	"io"
 	"strconv"
+	"strings"
 )
 
 /*
@@ -49,6 +51,13 @@
 // It is typically used in URLs and file names.
 var URLEncoding = NewEncoding(encodeURL)
 
+var removeNewlinesMapper = func(r rune) rune {
+	if r == '\r' || r == '\n' {
+		return -1
+	}
+	return r
+}
+
 /*
  * Encoder
  */
@@ -208,9 +217,10 @@
 
 // decode is like Decode but returns an additional 'end' value, which
 // indicates if end-of-message padding was encountered and thus any
-// additional data is an error.
+// additional data is an error. This method assumes that src has been
+// stripped of all supported whitespace ('\r' and '\n').
 func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err error) {
-	osrc := src
+	olen := len(src)
 	for len(src) > 0 && !end {
 		// Decode quantum using the base64 alphabet
 		var dbuf [4]byte
@@ -218,32 +228,26 @@
 
 		for j := 0; j < 4; {
 			if len(src) == 0 {
-				return n, false, CorruptInputError(len(osrc) - len(src) - j)
+				return n, false, CorruptInputError(olen - len(src) - j)
 			}
 			in := src[0]
 			src = src[1:]
-			if in == '\r' || in == '\n' {
-				// Ignore this character.
-				continue
-			}
 			if in == '=' && j >= 2 && len(src) < 4 {
-				// We've reached the end and there's
-				// padding
-				if len(src) == 0 && j == 2 {
+				// We've reached the end and there's padding
+				if len(src)+j < 4-1 {
 					// not enough padding
-					return n, false, CorruptInputError(len(osrc))
+					return n, false, CorruptInputError(olen)
 				}
 				if len(src) > 0 && src[0] != '=' {
 					// incorrect padding
-					return n, false, CorruptInputError(len(osrc) - len(src) - 1)
+					return n, false, CorruptInputError(olen - len(src) - 1)
 				}
-				dlen = j
-				end = true
+				dlen, end = j, true
 				break
 			}
 			dbuf[j] = enc.decodeMap[in]
 			if dbuf[j] == 0xFF {
-				return n, false, CorruptInputError(len(osrc) - len(src) - 1)
+				return n, false, CorruptInputError(olen - len(src) - 1)
 			}
 			j++
 		}
@@ -273,12 +277,14 @@
 // number of bytes successfully written and CorruptInputError.
 // New line characters (\r and \n) are ignored.
 func (enc *Encoding) Decode(dst, src []byte) (n int, err error) {
+	src = bytes.Map(removeNewlinesMapper, src)
 	n, _, err = enc.decode(dst, src)
 	return
 }
 
 // DecodeString returns the bytes represented by the base64 string s.
 func (enc *Encoding) DecodeString(s string) ([]byte, error) {
+	s = strings.Map(removeNewlinesMapper, s)
 	dbuf := make([]byte, enc.DecodedLen(len(s)))
 	n, err := enc.Decode(dbuf, []byte(s))
 	return dbuf[:n], err
@@ -343,9 +349,34 @@
 	return n, d.err
 }
 
+type newlineFilteringReader struct {
+	wrapped io.Reader
+}
+
+func (r *newlineFilteringReader) Read(p []byte) (int, error) {
+	n, err := r.wrapped.Read(p)
+	for n > 0 {
+		offset := 0
+		for i, b := range p[0:n] {
+			if b != '\r' && b != '\n' {
+				if i != offset {
+					p[offset] = b
+				}
+				offset++
+			}
+		}
+		if offset > 0 {
+			return offset, err
+		}
+		// Previous buffer entirely whitespace, read again
+		n, err = r.wrapped.Read(p)
+	}
+	return n, err
+}
+
 // NewDecoder constructs a new base64 stream decoder.
 func NewDecoder(enc *Encoding, r io.Reader) io.Reader {
-	return &decoder{enc: enc, r: r}
+	return &decoder{enc: enc, r: &newlineFilteringReader{r}}
 }
 
 // DecodedLen returns the maximum length in bytes of the decoded data
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/base64/base64_test.go gcc-4.8.1/libgo/go/encoding/base64/base64_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/base64/base64_test.go	2012-06-25 11:20:03.000000000 -0500
+++ gcc-4.8.1/libgo/go/encoding/base64/base64_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 	"errors"
 	"io"
 	"io/ioutil"
+	"strings"
 	"testing"
 	"time"
 )
@@ -142,11 +143,11 @@
 }
 
 func TestDecodeCorrupt(t *testing.T) {
-	type corrupt struct {
-		e string
-		p int
-	}
-	examples := []corrupt{
+	testCases := []struct {
+		input  string
+		offset int // -1 means no corruption.
+	}{
+		{"", -1},
 		{"!!!!", 0},
 		{"x===", 1},
 		{"AA=A", 2},
@@ -154,18 +155,27 @@
 		{"AAAAA", 4},
 		{"AAAAAA", 4},
 		{"A=", 1},
+		{"A==", 1},
 		{"AA=", 3},
+		{"AA==", -1},
+		{"AAA=", -1},
+		{"AAAA", -1},
 		{"AAAAAA=", 7},
 	}
-
-	for _, e := range examples {
-		dbuf := make([]byte, StdEncoding.DecodedLen(len(e.e)))
-		_, err := StdEncoding.Decode(dbuf, []byte(e.e))
+	for _, tc := range testCases {
+		dbuf := make([]byte, StdEncoding.DecodedLen(len(tc.input)))
+		_, err := StdEncoding.Decode(dbuf, []byte(tc.input))
+		if tc.offset == -1 {
+			if err != nil {
+				t.Error("Decoder wrongly detected coruption in", tc.input)
+			}
+			continue
+		}
 		switch err := err.(type) {
 		case CorruptInputError:
-			testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p)
+			testEqual(t, "Corruption in %q at offset %v, want %v", tc.input, int(err), tc.offset)
 		default:
-			t.Error("Decoder failed to detect corruption in", e)
+			t.Error("Decoder failed to detect corruption in", tc)
 		}
 	}
 }
@@ -216,6 +226,8 @@
 		"c3V\nyZ\rQ==",
 		"c3VyZ\nQ==",
 		"c3VyZQ\n==",
+		"c3VyZQ=\n=",
+		"c3VyZQ=\r\n\r\n=",
 	}
 	for _, e := range examples {
 		buf, err := StdEncoding.DecodeString(e)
@@ -257,6 +269,7 @@
 	wantErr := errors.New("my error")
 	next <- nextRead{5, nil}
 	next <- nextRead{10, wantErr}
+	next <- nextRead{0, wantErr}
 	d := NewDecoder(StdEncoding, &faultInjectReader{
 		source: "VHdhcyBicmlsbGlnLCBhbmQgdGhlIHNsaXRoeSB0b3Zlcw==", // twas brillig...
 		nextc:  next,
@@ -275,3 +288,40 @@
 		t.Errorf("timeout; Decoder blocked without returning an error")
 	}
 }
+
+func TestDecoderIssue4779(t *testing.T) {
+	encoded := `CP/EAT8AAAEF
+AQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAAB
+BAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHx
+Y3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm
+9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS
+0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0
+pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9VSSSSUpJJJJSkkkJ+Tj
+1kiy1jCJJDnAcCTykpKkuQ6p/jN6FgmxlNduXawwAzaGH+V6jn/R/wCt71zdn+N/qL3kVYFNYB4N
+ji6PDVjWpKp9TSXnvTf8bFNjg3qOEa2n6VlLpj/rT/pf567DpX1i6L1hs9Py67X8mqdtg/rUWbbf
++gkp0kkkklKSSSSUpJJJJT//0PVUkkklKVLq3WMDpGI7KzrNjADtYNXvI/Mqr/Pd/q9W3vaxjnvM
+NaCXE9gNSvGPrf8AWS3qmba5jjsJhoB0DAf0NDf6sevf+/lf8Hj0JJATfWT6/dV6oXU1uOLQeKKn
+EQP+Hubtfe/+R7Mf/g7f5xcocp++Z11JMCJPgFBxOg7/AOuqDx8I/ikpkXkmSdU8mJIJA/O8EMAy
+j+mSARB/17pKVXYWHXjsj7yIex0PadzXMO1zT5KHoNA3HT8ietoGhgjsfA+CSnvvqh/jJtqsrwOv
+2b6NGNzXfTYexzJ+nU7/ALkf4P8Awv6P9KvTQQ4AgyDqCF85Pho3CTB7eHwXoH+LT65uZbX9X+o2
+bqbPb06551Y4
+`
+	encodedShort := strings.Replace(encoded, "\n", "", -1)
+
+	dec := NewDecoder(StdEncoding, bytes.NewBufferString(encoded))
+	res1, err := ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	dec = NewDecoder(StdEncoding, bytes.NewBufferString(encodedShort))
+	var res2 []byte
+	res2, err = ioutil.ReadAll(dec)
+	if err != nil {
+		t.Errorf("ReadAll failed: %v", err)
+	}
+
+	if !bytes.Equal(res1, res2) {
+		t.Error("Decoded results not equal")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary.go gcc-4.8.1/libgo/go/encoding/binary/binary.go
--- gcc-4.8.1.orig/libgo/go/encoding/binary/binary.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/binary/binary.go	2013-07-16 01:55:04.520470000 -0500
@@ -167,9 +167,9 @@
 	default:
 		return errors.New("binary.Read: invalid type " + d.Type().String())
 	}
-	size := dataSize(v)
-	if size < 0 {
-		return errors.New("binary.Read: invalid type " + v.Type().String())
+	size, err := dataSize(v)
+	if err != nil {
+		return errors.New("binary.Read: " + err.Error())
 	}
 	d := &decoder{order: order, buf: make([]byte, size)}
 	if _, err := io.ReadFull(r, d.buf); err != nil {
@@ -247,64 +247,68 @@
 
 	// Fallback to reflect-based encoding.
 	v := reflect.Indirect(reflect.ValueOf(data))
-	size := dataSize(v)
-	if size < 0 {
-		return errors.New("binary.Write: invalid type " + v.Type().String())
+	size, err := dataSize(v)
+	if err != nil {
+		return errors.New("binary.Write: " + err.Error())
 	}
 	buf := make([]byte, size)
 	e := &encoder{order: order, buf: buf}
 	e.value(v)
-	_, err := w.Write(buf)
+	_, err = w.Write(buf)
 	return err
 }
 
 // Size returns how many bytes Write would generate to encode the value v, which
 // must be a fixed-size value or a slice of fixed-size values, or a pointer to such data.
 func Size(v interface{}) int {
-	return dataSize(reflect.Indirect(reflect.ValueOf(v)))
+	n, err := dataSize(reflect.Indirect(reflect.ValueOf(v)))
+	if err != nil {
+		return -1
+	}
+	return n
 }
 
 // dataSize returns the number of bytes the actual data represented by v occupies in memory.
 // For compound structures, it sums the sizes of the elements. Thus, for instance, for a slice
 // it returns the length of the slice times the element size and does not count the memory
 // occupied by the header.
-func dataSize(v reflect.Value) int {
+func dataSize(v reflect.Value) (int, error) {
 	if v.Kind() == reflect.Slice {
-		elem := sizeof(v.Type().Elem())
-		if elem < 0 {
-			return -1
+		elem, err := sizeof(v.Type().Elem())
+		if err != nil {
+			return 0, err
 		}
-		return v.Len() * elem
+		return v.Len() * elem, nil
 	}
 	return sizeof(v.Type())
 }
 
-func sizeof(t reflect.Type) int {
+func sizeof(t reflect.Type) (int, error) {
 	switch t.Kind() {
 	case reflect.Array:
-		n := sizeof(t.Elem())
-		if n < 0 {
-			return -1
+		n, err := sizeof(t.Elem())
+		if err != nil {
+			return 0, err
 		}
-		return t.Len() * n
+		return t.Len() * n, nil
 
 	case reflect.Struct:
 		sum := 0
 		for i, n := 0, t.NumField(); i < n; i++ {
-			s := sizeof(t.Field(i).Type)
-			if s < 0 {
-				return -1
+			s, err := sizeof(t.Field(i).Type)
+			if err != nil {
+				return 0, err
 			}
 			sum += s
 		}
-		return sum
+		return sum, nil
 
 	case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
 		reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
 		reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:
-		return int(t.Size())
+		return int(t.Size()), nil
 	}
-	return -1
+	return 0, errors.New("invalid type " + t.String())
 }
 
 type coder struct {
@@ -514,11 +518,12 @@
 }
 
 func (d *decoder) skip(v reflect.Value) {
-	d.buf = d.buf[dataSize(v):]
+	n, _ := dataSize(v)
+	d.buf = d.buf[n:]
 }
 
 func (e *encoder) skip(v reflect.Value) {
-	n := dataSize(v)
+	n, _ := dataSize(v)
 	for i := range e.buf[0:n] {
 		e.buf[i] = 0
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/binary_test.go gcc-4.8.1/libgo/go/encoding/binary/binary_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/binary/binary_test.go	2013-02-10 00:02:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/binary/binary_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 	"io"
 	"math"
 	"reflect"
+	"strings"
 	"testing"
 )
 
@@ -149,8 +150,14 @@
 
 	tv := reflect.Indirect(reflect.ValueOf(ts))
 	for i, n := 0, tv.NumField(); i < n; i++ {
+		typ := tv.Field(i).Type().String()
+		if typ == "[4]int" {
+			typ = "int" // the problem is int, not the [4]
+		}
 		if err := Write(buf, BigEndian, tv.Field(i).Interface()); err == nil {
 			t.Errorf("WriteT.%v: have err == nil, want non-nil", tv.Field(i).Type())
+		} else if !strings.Contains(err.Error(), typ) {
+			t.Errorf("WriteT: have err == %q, want it to mention %s", err, typ)
 		}
 	}
 }
@@ -238,7 +245,7 @@
 	bsr := &byteSliceReader{}
 	var buf bytes.Buffer
 	Write(&buf, BigEndian, &s)
-	n := dataSize(reflect.ValueOf(s))
+	n, _ := dataSize(reflect.ValueOf(s))
 	b.SetBytes(int64(n))
 	t := s
 	b.ResetTimer()
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/binary/varint.go gcc-4.8.1/libgo/go/encoding/binary/varint.go
--- gcc-4.8.1.orig/libgo/go/encoding/binary/varint.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/binary/varint.go	2013-07-16 01:55:04.520470000 -0500
@@ -120,7 +120,6 @@
 		x |= uint64(b&0x7f) << s
 		s += 7
 	}
-	panic("unreachable")
 }
 
 // ReadVarint reads an encoded signed integer from r and returns it as an int64.
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/csv/reader.go gcc-4.8.1/libgo/go/encoding/csv/reader.go
--- gcc-4.8.1.orig/libgo/go/encoding/csv/reader.go	2012-03-30 16:27:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/encoding/csv/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -171,7 +171,6 @@
 		}
 		records = append(records, record)
 	}
-	panic("unreachable")
 }
 
 // readRune reads one rune from r, folding \r\n to \n and keeping track
@@ -213,7 +212,6 @@
 			return nil
 		}
 	}
-	panic("unreachable")
 }
 
 // parseRecord reads and parses a single csv record from r.
@@ -250,7 +248,6 @@
 			return nil, err
 		}
 	}
-	panic("unreachable")
 }
 
 // parseField parses the next field in the record.  The read field is
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/codec_test.go gcc-4.8.1/libgo/go/encoding/gob/codec_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/codec_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/encoding/gob/codec_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -1191,10 +1191,8 @@
 			if v1 != nil || v2 != nil {
 				t.Errorf("item %d inconsistent nils", i)
 			}
-			continue
-			if v1.Square() != v2.Square() {
-				t.Errorf("item %d inconsistent values: %v %v", i, v1, v2)
-			}
+		} else if v1.Square() != v2.Square() {
+			t.Errorf("item %d inconsistent values: %v %v", i, v1, v2)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/decode.go gcc-4.8.1/libgo/go/encoding/gob/decode.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/decode.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/gob/decode.go	2013-07-16 01:55:04.520470000 -0500
@@ -1066,7 +1066,6 @@
 	case reflect.Struct:
 		return true
 	}
-	return true
 }
 
 // typeString returns a human-readable description of the type identified by remoteId.
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/gobencdec_test.go gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/gobencdec_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/gob/gobencdec_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -1,4 +1,4 @@
-// Copyright 20011 The Go Authors. All rights reserved.
+// Copyright 2011 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
@@ -348,7 +348,7 @@
 		t.Fatal("decode error:", err)
 	}
 	if y.G.s != "XYZ" {
-		t.Fatalf("expected `XYZ` got %c", y.G.s)
+		t.Fatalf("expected `XYZ` got %q", y.G.s)
 	}
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/timing_test.go gcc-4.8.1/libgo/go/encoding/gob/timing_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/timing_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/gob/timing_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -50,49 +50,51 @@
 }
 
 func TestCountEncodeMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+
+	const N = 1000
+
 	var buf bytes.Buffer
 	enc := NewEncoder(&buf)
 	bench := &Bench{7, 3.2, "now is the time", []byte("for all good men")}
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	mallocs := 0 - memstats.Mallocs
-	const count = 1000
-	for i := 0; i < count; i++ {
+
+	allocs := testing.AllocsPerRun(N, func() {
 		err := enc.Encode(bench)
 		if err != nil {
 			t.Fatal("encode:", err)
 		}
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs += memstats.Mallocs
-	fmt.Printf("mallocs per encode of type Bench: %d\n", mallocs/count)
+	})
+	fmt.Printf("mallocs per encode of type Bench: %v\n", allocs)
 }
 
 func TestCountDecodeMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+
+	const N = 1000
+
 	var buf bytes.Buffer
 	enc := NewEncoder(&buf)
 	bench := &Bench{7, 3.2, "now is the time", []byte("for all good men")}
-	const count = 1000
-	for i := 0; i < count; i++ {
+
+	// Fill the buffer with enough to decode
+	testing.AllocsPerRun(N, func() {
 		err := enc.Encode(bench)
 		if err != nil {
 			t.Fatal("encode:", err)
 		}
-	}
+	})
+
 	dec := NewDecoder(&buf)
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	mallocs := 0 - memstats.Mallocs
-	for i := 0; i < count; i++ {
+	allocs := testing.AllocsPerRun(N, func() {
 		*bench = Bench{}
 		err := dec.Decode(&bench)
 		if err != nil {
 			t.Fatal("decode:", err)
 		}
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs += memstats.Mallocs
-	fmt.Printf("mallocs per decode of type Bench: %d\n", mallocs/count)
+	})
+	fmt.Printf("mallocs per decode of type Bench: %v\n", allocs)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/gob/type.go gcc-4.8.1/libgo/go/encoding/gob/type.go
--- gcc-4.8.1.orig/libgo/go/encoding/gob/type.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/encoding/gob/type.go	2013-07-16 01:55:04.520470000 -0500
@@ -526,7 +526,6 @@
 	default:
 		return nil, errors.New("gob NewTypeObject can't handle type: " + rt.String())
 	}
-	return nil, nil
 }
 
 // isExported reports whether this is an exported - upper case - name.
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode.go gcc-4.8.1/libgo/go/encoding/json/decode.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/decode.go	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/json/decode.go	2013-07-16 01:55:04.520470000 -0500
@@ -33,6 +33,10 @@
 // the value pointed at by the pointer.  If the pointer is nil, Unmarshal
 // allocates a new value for it to point to.
 //
+// To unmarshal JSON into a struct, Unmarshal matches incoming object
+// keys to the keys used by Marshal (either the struct field name or its tag),
+// preferring an exact match but also accepting a case-insensitive match.
+//
 // To unmarshal JSON into an interface value, Unmarshal unmarshals
 // the JSON into the concrete value contained in the interface value.
 // If the interface value is nil, that is, has no concrete value stored in it,
@@ -51,17 +55,22 @@
 // If no more serious errors are encountered, Unmarshal returns
 // an UnmarshalTypeError describing the earliest such error.
 //
+// When unmarshaling quoted strings, invalid UTF-8 or
+// invalid UTF-16 surrogate pairs are not treated as an error.
+// Instead, they are replaced by the Unicode replacement
+// character U+FFFD.
+//
 func Unmarshal(data []byte, v interface{}) error {
-	d := new(decodeState).init(data)
-
-	// Quick check for well-formedness.
+	// Check for well-formedness.
 	// Avoids filling out half a data structure
 	// before discovering a JSON syntax error.
+	var d decodeState
 	err := checkValid(data, &d.scan)
 	if err != nil {
 		return err
 	}
 
+	d.init(data)
 	return d.unmarshal(v)
 }
 
@@ -252,6 +261,16 @@
 		}
 		d.scan.step(&d.scan, '"')
 		d.scan.step(&d.scan, '"')
+
+		n := len(d.scan.parseState)
+		if n > 0 && d.scan.parseState[n-1] == parseObjectKey {
+			// d.scan thinks we just read an object key; finish the object
+			d.scan.step(&d.scan, ':')
+			d.scan.step(&d.scan, '"')
+			d.scan.step(&d.scan, '"')
+			d.scan.step(&d.scan, '}')
+		}
+
 		return
 	}
 
@@ -730,6 +749,7 @@
 	switch d.scanWhile(scanSkipSpace) {
 	default:
 		d.error(errPhase)
+		panic("unreachable")
 	case scanBeginArray:
 		return d.arrayInterface()
 	case scanBeginObject:
@@ -737,12 +757,11 @@
 	case scanBeginLiteral:
 		return d.literalInterface()
 	}
-	panic("unreachable")
 }
 
 // arrayInterface is like array but returns []interface{}.
 func (d *decodeState) arrayInterface() []interface{} {
-	var v []interface{}
+	var v = make([]interface{}, 0)
 	for {
 		// Look ahead for ] - can only happen on first iteration.
 		op := d.scanWhile(scanSkipSpace)
@@ -849,7 +868,6 @@
 		}
 		return n
 	}
-	panic("unreachable")
 }
 
 // getu4 decodes \uXXXX from the beginning of s, returning the hex value,
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/decode_test.go gcc-4.8.1/libgo/go/encoding/json/decode_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/decode_test.go	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/json/decode_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -11,6 +11,7 @@
 	"reflect"
 	"strings"
 	"testing"
+	"time"
 )
 
 type T struct {
@@ -29,7 +30,7 @@
 	F3 Number
 }
 
-// ifaceNumAsFloat64/ifaceNumAsNumber are used to test unmarshalling with and
+// ifaceNumAsFloat64/ifaceNumAsNumber are used to test unmarshaling with and
 // without UseNumber
 var ifaceNumAsFloat64 = map[string]interface{}{
 	"k1": float64(1),
@@ -239,6 +240,12 @@
 	{in: `[1, 2, 3]`, ptr: new([1]int), out: [1]int{1}},
 	{in: `[1, 2, 3]`, ptr: new([5]int), out: [5]int{1, 2, 3, 0, 0}},
 
+	// empty array to interface test
+	{in: `[]`, ptr: new([]interface{}), out: []interface{}{}},
+	{in: `null`, ptr: new([]interface{}), out: []interface{}(nil)},
+	{in: `{"T":[]}`, ptr: new(map[string]interface{}), out: map[string]interface{}{"T": []interface{}{}}},
+	{in: `{"T":null}`, ptr: new(map[string]interface{}), out: map[string]interface{}{"T": interface{}(nil)}},
+
 	// composite tests
 	{in: allValueIndent, ptr: new(All), out: allValue},
 	{in: allValueCompact, ptr: new(All), out: allValue},
@@ -323,6 +330,43 @@
 		ptr: new(S10),
 		out: S10{S13: S13{S8: S8{S9: S9{Y: 2}}}},
 	},
+
+	// invalid UTF-8 is coerced to valid UTF-8.
+	{
+		in:  "\"hello\xffworld\"",
+		ptr: new(string),
+		out: "hello\ufffdworld",
+	},
+	{
+		in:  "\"hello\xc2\xc2world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\xc2\xffworld\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\\ud800world\"",
+		ptr: new(string),
+		out: "hello\ufffdworld",
+	},
+	{
+		in:  "\"hello\\ud800\\ud800world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\\ud800\\ud800world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffdworld",
+	},
+	{
+		in:  "\"hello\xed\xa0\x80\xed\xb0\x80world\"",
+		ptr: new(string),
+		out: "hello\ufffd\ufffd\ufffd\ufffd\ufffd\ufffdworld",
+	},
 }
 
 func TestMarshal(t *testing.T) {
@@ -1107,3 +1151,43 @@
 		t.Errorf("got %q, want %q", out, want)
 	}
 }
+
+// Time3339 is a time.Time which encodes to and from JSON
+// as an RFC 3339 time in UTC.
+type Time3339 time.Time
+
+func (t *Time3339) UnmarshalJSON(b []byte) error {
+	if len(b) < 2 || b[0] != '"' || b[len(b)-1] != '"' {
+		return fmt.Errorf("types: failed to unmarshal non-string value %q as an RFC 3339 time", b)
+	}
+	tm, err := time.Parse(time.RFC3339, string(b[1:len(b)-1]))
+	if err != nil {
+		return err
+	}
+	*t = Time3339(tm)
+	return nil
+}
+
+func TestUnmarshalJSONLiteralError(t *testing.T) {
+	var t3 Time3339
+	err := Unmarshal([]byte(`"0000-00-00T00:00:00Z"`), &t3)
+	if err == nil {
+		t.Fatalf("expected error; got time %v", time.Time(t3))
+	}
+	if !strings.Contains(err.Error(), "range") {
+		t.Errorf("got err = %v; want out of range error", err)
+	}
+}
+
+// Test that extra object elements in an array do not result in a
+// "data changing underfoot" error.
+// Issue 3717
+func TestSkipArrayObjects(t *testing.T) {
+	json := `[{}]`
+	var dest [0]interface{}
+
+	err := Unmarshal([]byte(json), &dest)
+	if err != nil {
+		t.Errorf("got error %q, want nil", err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode.go gcc-4.8.1/libgo/go/encoding/json/encode.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/encode.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/json/encode.go	2013-07-16 01:55:04.520470000 -0500
@@ -3,7 +3,8 @@
 // license that can be found in the LICENSE file.
 
 // Package json implements encoding and decoding of JSON objects as defined in
-// RFC 4627.
+// RFC 4627. The mapping between JSON objects and Go values is described
+// in the documentation for the Marshal and Unmarshal functions.
 //
 // See "JSON and Go" for an introduction to this package:
 // http://golang.org/doc/articles/json_and_go.html
@@ -38,8 +39,8 @@
 //
 // Floating point, integer, and Number values encode as JSON numbers.
 //
-// String values encode as JSON strings, with each invalid UTF-8 sequence
-// replaced by the encoding of the Unicode replacement character U+FFFD.
+// String values encode as JSON strings. InvalidUTF8Error will be returned
+// if an invalid UTF-8 sequence is encountered.
 // The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e"
 // to keep some browsers from misinterpreting JSON output as HTML.
 //
@@ -86,9 +87,21 @@
 // underscores and slashes.
 //
 // Anonymous struct fields are usually marshaled as if their inner exported fields
-// were fields in the outer struct, subject to the usual Go visibility rules.
+// were fields in the outer struct, subject to the usual Go visibility rules amended
+// as described in the next paragraph.
 // An anonymous struct field with a name given in its JSON tag is treated as
-// having that name instead of as anonymous.
+// having that name, rather than being anonymous.
+//
+// The Go visibility rules for struct fields are amended for JSON when
+// deciding which field to marshal or unmarshal. If there are
+// multiple fields at the same level, and that level is the least
+// nested (and would therefore be the nesting level selected by the
+// usual Go rules), the following extra rules apply:
+//
+// 1) Of those fields, if any are JSON-tagged, only tagged fields are considered,
+// even if there are multiple untagged fields that would otherwise conflict.
+// 2) If there is exactly one field (tagged or not according to the first rule), that is selected.
+// 3) Otherwise there are multiple fields, and all are ignored; no error occurs.
 //
 // Handling of anonymous struct fields is new in Go 1.1.
 // Prior to Go 1.1, anonymous struct fields were ignored. To force ignoring of
@@ -187,8 +200,10 @@
 	return "json: unsupported value: " + e.Str
 }
 
+// An InvalidUTF8Error is returned by Marshal when attempting
+// to encode a string value with invalid UTF-8 sequences.
 type InvalidUTF8Error struct {
-	S string
+	S string // the whole string value that caused the error
 }
 
 func (e *InvalidUTF8Error) Error() string {
@@ -654,27 +669,78 @@
 
 	sort.Sort(byName(fields))
 
-	// Remove fields with annihilating name collisions
-	// and also fields shadowed by fields with explicit JSON tags.
-	name := ""
+	// Delete all fields that are hidden by the Go rules for embedded fields,
+	// except that fields with JSON tags are promoted.
+
+	// The fields are sorted in primary order of name, secondary order
+	// of field index length. Loop over names; for each name, delete
+	// hidden fields by choosing the one dominant field that survives.
 	out := fields[:0]
-	for _, f := range fields {
-		if f.name != name {
-			name = f.name
-			out = append(out, f)
+	for advance, i := 0, 0; i < len(fields); i += advance {
+		// One iteration per name.
+		// Find the sequence of fields with the name of this first field.
+		fi := fields[i]
+		name := fi.name
+		for advance = 1; i+advance < len(fields); advance++ {
+			fj := fields[i+advance]
+			if fj.name != name {
+				break
+			}
+		}
+		if advance == 1 { // Only one field with this name
+			out = append(out, fi)
 			continue
 		}
-		if n := len(out); n > 0 && out[n-1].name == name && (!out[n-1].tag || f.tag) {
-			out = out[:n-1]
+		dominant, ok := dominantField(fields[i : i+advance])
+		if ok {
+			out = append(out, dominant)
 		}
 	}
-	fields = out
 
+	fields = out
 	sort.Sort(byIndex(fields))
 
 	return fields
 }
 
+// dominantField looks through the fields, all of which are known to
+// have the same name, to find the single field that dominates the
+// others using Go's embedding rules, modified by the presence of
+// JSON tags. If there are multiple top-level fields, the boolean
+// will be false: This condition is an error in Go and we skip all
+// the fields.
+func dominantField(fields []field) (field, bool) {
+	// The fields are sorted in increasing index-length order. The winner
+	// must therefore be one with the shortest index length. Drop all
+	// longer entries, which is easy: just truncate the slice.
+	length := len(fields[0].index)
+	tagged := -1 // Index of first tagged field.
+	for i, f := range fields {
+		if len(f.index) > length {
+			fields = fields[:i]
+			break
+		}
+		if f.tag {
+			if tagged >= 0 {
+				// Multiple tagged fields at the same level: conflict.
+				// Return no field.
+				return field{}, false
+			}
+			tagged = i
+		}
+	}
+	if tagged >= 0 {
+		return fields[tagged], true
+	}
+	// All remaining fields have the same length. If there's more than one,
+	// we have a conflict (two fields named "X" at the same level) and we
+	// return no field.
+	if len(fields) > 1 {
+		return field{}, false
+	}
+	return fields[0], true
+}
+
 var fieldCache struct {
 	sync.RWMutex
 	m map[reflect.Type][]field
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/encode_test.go gcc-4.8.1/libgo/go/encoding/json/encode_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/encode_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/json/encode_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -206,3 +206,107 @@
 		t.Errorf("got %q, want %q", got, want)
 	}
 }
+
+type BugA struct {
+	S string
+}
+
+type BugB struct {
+	BugA
+	S string
+}
+
+type BugC struct {
+	S string
+}
+
+// Legal Go: We never use the repeated embedded field (S).
+type BugX struct {
+	A int
+	BugA
+	BugB
+}
+
+// Issue 5245.
+func TestEmbeddedBug(t *testing.T) {
+	v := BugB{
+		BugA{"A"},
+		"B",
+	}
+	b, err := Marshal(v)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want := `{"S":"B"}`
+	got := string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+	// Now check that the duplicate field, S, does not appear.
+	x := BugX{
+		A: 23,
+	}
+	b, err = Marshal(x)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want = `{"A":23}`
+	got = string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+}
+
+type BugD struct { // Same as BugA after tagging.
+	XXX string `json:"S"`
+}
+
+// BugD's tagged S field should dominate BugA's.
+type BugY struct {
+	BugA
+	BugD
+}
+
+// Test that a field with a tag dominates untagged fields.
+func TestTaggedFieldDominates(t *testing.T) {
+	v := BugY{
+		BugA{"BugA"},
+		BugD{"BugD"},
+	}
+	b, err := Marshal(v)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want := `{"S":"BugD"}`
+	got := string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+}
+
+// There are no tags here, so S should not appear.
+type BugZ struct {
+	BugA
+	BugC
+	BugY // Contains a tagged S field through BugD; should not dominate.
+}
+
+func TestDuplicatedFieldDisappears(t *testing.T) {
+	v := BugZ{
+		BugA{"BugA"},
+		BugC{"BugC"},
+		BugY{
+			BugA{"nested BugA"},
+			BugD{"nested BugD"},
+		},
+	}
+	b, err := Marshal(v)
+	if err != nil {
+		t.Fatal("Marshal:", err)
+	}
+	want := `{}`
+	got := string(b)
+	if got != want {
+		t.Fatalf("Marshal: got %s want %s", got, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/json/scanner_test.go gcc-4.8.1/libgo/go/encoding/json/scanner_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/json/scanner_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/json/scanner_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -277,9 +277,6 @@
 	if f > n {
 		f = n
 	}
-	if n > 0 && f == 0 {
-		f = 1
-	}
 	x := make([]interface{}, f)
 	for i := range x {
 		x[i] = genValue(((i+1)*n)/f - (i*n)/f)
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal.go gcc-4.8.1/libgo/go/encoding/xml/marshal.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/marshal.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/xml/marshal.go	2013-07-16 01:55:04.520470000 -0500
@@ -81,8 +81,7 @@
 func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) {
 	var b bytes.Buffer
 	enc := NewEncoder(&b)
-	enc.prefix = prefix
-	enc.indent = indent
+	enc.Indent(prefix, indent)
 	if err := enc.Encode(v); err != nil {
 		return nil, err
 	}
@@ -99,6 +98,14 @@
 	return &Encoder{printer{Writer: bufio.NewWriter(w)}}
 }
 
+// Indent sets the encoder to generate XML in which each element
+// begins on a new indented line that starts with prefix and is followed by
+// one or more copies of indent according to the nesting depth.
+func (enc *Encoder) Indent(prefix, indent string) {
+	enc.prefix = prefix
+	enc.indent = indent
+}
+
 // Encode writes the XML encoding of v to the stream.
 //
 // See the documentation for Marshal for details about the conversion
@@ -113,10 +120,76 @@
 
 type printer struct {
 	*bufio.Writer
+	seq        int
 	indent     string
 	prefix     string
 	depth      int
 	indentedIn bool
+	putNewline bool
+	attrNS     map[string]string // map prefix -> name space
+	attrPrefix map[string]string // map name space -> prefix
+}
+
+// createAttrPrefix finds the name space prefix attribute to use for the given name space,
+// defining a new prefix if necessary. It returns the prefix and whether it is new.
+func (p *printer) createAttrPrefix(url string) (prefix string, isNew bool) {
+	if prefix = p.attrPrefix[url]; prefix != "" {
+		return prefix, false
+	}
+
+	// The "http://www.w3.org/XML/1998/namespace" name space is predefined as "xml"
+	// and must be referred to that way.
+	// (The "http://www.w3.org/2000/xmlns/" name space is also predefined as "xmlns",
+	// but users should not be trying to use that one directly - that's our job.)
+	if url == xmlURL {
+		return "xml", false
+	}
+
+	// Need to define a new name space.
+	if p.attrPrefix == nil {
+		p.attrPrefix = make(map[string]string)
+		p.attrNS = make(map[string]string)
+	}
+
+	// Pick a name. We try to use the final element of the path
+	// but fall back to _.
+	prefix = strings.TrimRight(url, "/")
+	if i := strings.LastIndex(prefix, "/"); i >= 0 {
+		prefix = prefix[i+1:]
+	}
+	if prefix == "" || !isName([]byte(prefix)) || strings.Contains(prefix, ":") {
+		prefix = "_"
+	}
+	if strings.HasPrefix(prefix, "xml") {
+		// xmlanything is reserved.
+		prefix = "_" + prefix
+	}
+	if p.attrNS[prefix] != "" {
+		// Name is taken. Find a better one.
+		for p.seq++; ; p.seq++ {
+			if id := prefix + "_" + strconv.Itoa(p.seq); p.attrNS[id] == "" {
+				prefix = id
+				break
+			}
+		}
+	}
+
+	p.attrPrefix[url] = prefix
+	p.attrNS[prefix] = url
+
+	p.WriteString(`xmlns:`)
+	p.WriteString(prefix)
+	p.WriteString(`="`)
+	EscapeText(p, []byte(url))
+	p.WriteString(`" `)
+
+	return prefix, true
+}
+
+// deleteAttrPrefix removes an attribute name space prefix.
+func (p *printer) deleteAttrPrefix(prefix string) {
+	delete(p.attrPrefix, p.attrNS[prefix])
+	delete(p.attrNS, prefix)
 }
 
 // marshalValue writes one or more XML elements representing val.
@@ -185,7 +258,9 @@
 	if xmlns != "" {
 		p.WriteString(` xmlns="`)
 		// TODO: EscapeString, to avoid the allocation.
-		Escape(p, []byte(xmlns))
+		if err := EscapeText(p, []byte(xmlns)); err != nil {
+			return err
+		}
 		p.WriteByte('"')
 	}
 
@@ -200,6 +275,14 @@
 			continue
 		}
 		p.WriteByte(' ')
+		if finfo.xmlns != "" {
+			prefix, created := p.createAttrPrefix(finfo.xmlns)
+			if created {
+				defer p.deleteAttrPrefix(prefix)
+			}
+			p.WriteString(prefix)
+			p.WriteByte(':')
+		}
 		p.WriteString(finfo.name)
 		p.WriteString(`="`)
 		if err := p.marshalSimple(fv.Type(), fv); err != nil {
@@ -244,19 +327,22 @@
 		p.WriteString(strconv.FormatFloat(val.Float(), 'g', -1, val.Type().Bits()))
 	case reflect.String:
 		// TODO: Add EscapeString.
-		Escape(p, []byte(val.String()))
+		EscapeText(p, []byte(val.String()))
 	case reflect.Bool:
 		p.WriteString(strconv.FormatBool(val.Bool()))
 	case reflect.Array:
 		// will be [...]byte
-		bytes := make([]byte, val.Len())
-		for i := range bytes {
-			bytes[i] = val.Index(i).Interface().(byte)
+		var bytes []byte
+		if val.CanAddr() {
+			bytes = val.Slice(0, val.Len()).Bytes()
+		} else {
+			bytes = make([]byte, val.Len())
+			reflect.Copy(reflect.ValueOf(bytes), val)
 		}
-		Escape(p, bytes)
+		EscapeText(p, bytes)
 	case reflect.Slice:
 		// will be []byte
-		Escape(p, val.Bytes())
+		EscapeText(p, val.Bytes())
 	default:
 		return &UnsupportedTypeError{typ}
 	}
@@ -273,7 +359,7 @@
 	s := parentStack{printer: p}
 	for i := range tinfo.fields {
 		finfo := &tinfo.fields[i]
-		if finfo.flags&(fAttr) != 0 {
+		if finfo.flags&fAttr != 0 {
 			continue
 		}
 		vf := finfo.value(val)
@@ -290,10 +376,14 @@
 			case reflect.Bool:
 				Escape(p, strconv.AppendBool(scratch[:0], vf.Bool()))
 			case reflect.String:
-				Escape(p, []byte(vf.String()))
+				if err := EscapeText(p, []byte(vf.String())); err != nil {
+					return err
+				}
 			case reflect.Slice:
 				if elem, ok := vf.Interface().([]byte); ok {
-					Escape(p, elem)
+					if err := EscapeText(p, elem); err != nil {
+						return err
+					}
 				}
 			case reflect.Struct:
 				if vf.Type() == timeType {
@@ -387,7 +477,11 @@
 		}
 		p.indentedIn = false
 	}
-	p.WriteByte('\n')
+	if p.putNewline {
+		p.WriteByte('\n')
+	} else {
+		p.putNewline = true
+	}
 	if len(p.prefix) > 0 {
 		p.WriteString(p.prefix)
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/marshal_test.go gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/marshal_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/xml/marshal_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,6 +7,7 @@
 import (
 	"bytes"
 	"errors"
+	"fmt"
 	"io"
 	"reflect"
 	"strconv"
@@ -265,6 +266,16 @@
 	V interface{}
 }
 
+type MyInt int
+
+type EmbedInt struct {
+	MyInt
+}
+
+type Strings struct {
+	X []string `xml:"A>B,omitempty"`
+}
+
 // Unless explicitly stated as such (or *Plain), all of the
 // tests below are two-way tests. When introducing new tests,
 // please try to make them two-way as well to ensure that
@@ -789,6 +800,17 @@
 		},
 		UnmarshalOnly: true,
 	},
+	{
+		ExpectXML: `<EmbedInt><MyInt>42</MyInt></EmbedInt>`,
+		Value: &EmbedInt{
+			MyInt: 42,
+		},
+	},
+	// Test omitempty with parent chain; see golang.org/issue/4168.
+	{
+		ExpectXML: `<Strings><A></A></Strings>`,
+		Value:     &Strings{},
+	},
 }
 
 func TestMarshal(t *testing.T) {
@@ -811,6 +833,10 @@
 	}
 }
 
+type AttrParent struct {
+	X string `xml:"X>Y,attr"`
+}
+
 var marshalErrorTests = []struct {
 	Value interface{}
 	Err   string
@@ -838,12 +864,39 @@
 		Value: &Domain{Comment: []byte("f--bar")},
 		Err:   `xml: comments must not contain "--"`,
 	},
+	// Reject parent chain with attr, never worked; see golang.org/issue/5033.
+	{
+		Value: &AttrParent{},
+		Err:   `xml: X>Y chain not valid with attr flag`,
+	},
+}
+
+var marshalIndentTests = []struct {
+	Value     interface{}
+	Prefix    string
+	Indent    string
+	ExpectXML string
+}{
+	{
+		Value: &SecretAgent{
+			Handle:    "007",
+			Identity:  "James Bond",
+			Obfuscate: "<redacted/>",
+		},
+		Prefix:    "",
+		Indent:    "\t",
+		ExpectXML: fmt.Sprintf("<agent handle=\"007\">\n\t<Identity>James Bond</Identity><redacted/>\n</agent>"),
+	},
 }
 
 func TestMarshalErrors(t *testing.T) {
 	for idx, test := range marshalErrorTests {
-		_, err := Marshal(test.Value)
-		if err == nil || err.Error() != test.Err {
+		data, err := Marshal(test.Value)
+		if err == nil {
+			t.Errorf("#%d: marshal(%#v) = [success] %q, want error %v", idx, test.Value, data, test.Err)
+			continue
+		}
+		if err.Error() != test.Err {
 			t.Errorf("#%d: marshal(%#v) = [error] %v, want %v", idx, test.Value, err, test.Err)
 		}
 		if test.Kind != reflect.Invalid {
@@ -884,6 +937,19 @@
 	}
 }
 
+func TestMarshalIndent(t *testing.T) {
+	for i, test := range marshalIndentTests {
+		data, err := MarshalIndent(test.Value, test.Prefix, test.Indent)
+		if err != nil {
+			t.Errorf("#%d: Error: %s", i, err)
+			continue
+		}
+		if got, want := string(data), test.ExpectXML; got != want {
+			t.Errorf("#%d: MarshalIndent:\nGot:%s\nWant:\n%s", i, got, want)
+		}
+	}
+}
+
 type limitedBytesWriter struct {
 	w      io.Writer
 	remain int // until writes fail
@@ -933,6 +999,16 @@
 	}
 }
 
+func TestMarshalWriteIOErrors(t *testing.T) {
+	enc := NewEncoder(errWriter{})
+
+	expectErr := "unwritable"
+	err := enc.Encode(&Passenger{})
+	if err == nil || err.Error() != expectErr {
+		t.Errorf("EscapeTest = [error] %v, want %v", err, expectErr)
+	}
+}
+
 func BenchmarkMarshal(b *testing.B) {
 	for i := 0; i < b.N; i++ {
 		Marshal(atomValue)
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read.go gcc-4.8.1/libgo/go/encoding/xml/read.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/read.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/xml/read.go	2013-07-16 01:55:04.520470000 -0500
@@ -263,7 +263,7 @@
 				strv := finfo.value(sv)
 				// Look for attribute.
 				for _, a := range start.Attr {
-					if a.Name.Local == finfo.name {
+					if a.Name.Local == finfo.name && (finfo.xmlns == "" || finfo.xmlns == a.Name.Space) {
 						copyValue(strv, []byte(a.Value))
 						break
 					}
@@ -441,7 +441,7 @@
 Loop:
 	for i := range tinfo.fields {
 		finfo := &tinfo.fields[i]
-		if finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) {
+		if finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) || finfo.xmlns != "" && finfo.xmlns != start.Name.Space {
 			continue
 		}
 		for j := range parents {
@@ -493,7 +493,6 @@
 			return true, nil
 		}
 	}
-	panic("unreachable")
 }
 
 // Skip reads tokens until it has consumed the end element
@@ -517,5 +516,4 @@
 			return nil
 		}
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/read_test.go gcc-4.8.1/libgo/go/encoding/xml/read_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/read_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/xml/read_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,6 +6,7 @@
 
 import (
 	"reflect"
+	"strings"
 	"testing"
 	"time"
 )
@@ -399,3 +400,224 @@
 		t.Fatalf("Unmarshal with %s failed:\nhave %#v,\n want %#v", x, p3.Int, 1)
 	}
 }
+
+type Tables struct {
+	HTable string `xml:"http://www.w3.org/TR/html4/ table"`
+	FTable string `xml:"http://www.w3schools.com/furniture table"`
+}
+
+var tables = []struct {
+	xml string
+	tab Tables
+	ns  string
+}{
+	{
+		xml: `<Tables>` +
+			`<table xmlns="http://www.w3.org/TR/html4/">hello</table>` +
+			`<table xmlns="http://www.w3schools.com/furniture">world</table>` +
+			`</Tables>`,
+		tab: Tables{"hello", "world"},
+	},
+	{
+		xml: `<Tables>` +
+			`<table xmlns="http://www.w3schools.com/furniture">world</table>` +
+			`<table xmlns="http://www.w3.org/TR/html4/">hello</table>` +
+			`</Tables>`,
+		tab: Tables{"hello", "world"},
+	},
+	{
+		xml: `<Tables xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/">` +
+			`<f:table>world</f:table>` +
+			`<h:table>hello</h:table>` +
+			`</Tables>`,
+		tab: Tables{"hello", "world"},
+	},
+	{
+		xml: `<Tables>` +
+			`<table>bogus</table>` +
+			`</Tables>`,
+		tab: Tables{},
+	},
+	{
+		xml: `<Tables>` +
+			`<table>only</table>` +
+			`</Tables>`,
+		tab: Tables{HTable: "only"},
+		ns:  "http://www.w3.org/TR/html4/",
+	},
+	{
+		xml: `<Tables>` +
+			`<table>only</table>` +
+			`</Tables>`,
+		tab: Tables{FTable: "only"},
+		ns:  "http://www.w3schools.com/furniture",
+	},
+	{
+		xml: `<Tables>` +
+			`<table>only</table>` +
+			`</Tables>`,
+		tab: Tables{},
+		ns:  "something else entirely",
+	},
+}
+
+func TestUnmarshalNS(t *testing.T) {
+	for i, tt := range tables {
+		var dst Tables
+		var err error
+		if tt.ns != "" {
+			d := NewDecoder(strings.NewReader(tt.xml))
+			d.DefaultSpace = tt.ns
+			err = d.Decode(&dst)
+		} else {
+			err = Unmarshal([]byte(tt.xml), &dst)
+		}
+		if err != nil {
+			t.Errorf("#%d: Unmarshal: %v", i, err)
+			continue
+		}
+		want := tt.tab
+		if dst != want {
+			t.Errorf("#%d: dst=%+v, want %+v", i, dst, want)
+		}
+	}
+}
+
+func TestMarshalNS(t *testing.T) {
+	dst := Tables{"hello", "world"}
+	data, err := Marshal(&dst)
+	if err != nil {
+		t.Fatalf("Marshal: %v", err)
+	}
+	want := `<Tables><table xmlns="http://www.w3.org/TR/html4/">hello</table><table xmlns="http://www.w3schools.com/furniture">world</table></Tables>`
+	str := string(data)
+	if str != want {
+		t.Errorf("have: %q\nwant: %q\n", str, want)
+	}
+}
+
+type TableAttrs struct {
+	TAttr TAttr
+}
+
+type TAttr struct {
+	HTable string `xml:"http://www.w3.org/TR/html4/ table,attr"`
+	FTable string `xml:"http://www.w3schools.com/furniture table,attr"`
+	Lang   string `xml:"http://www.w3.org/XML/1998/namespace lang,attr,omitempty"`
+	Other1 string `xml:"http://golang.org/xml/ other,attr,omitempty"`
+	Other2 string `xml:"http://golang.org/xmlfoo/ other,attr,omitempty"`
+	Other3 string `xml:"http://golang.org/json/ other,attr,omitempty"`
+	Other4 string `xml:"http://golang.org/2/json/ other,attr,omitempty"`
+}
+
+var tableAttrs = []struct {
+	xml string
+	tab TableAttrs
+	ns  string
+}{
+	{
+		xml: `<TableAttrs xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/"><TAttr ` +
+			`h:table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}},
+	},
+	{
+		xml: `<TableAttrs><TAttr xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/" ` +
+			`h:table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}},
+	},
+	{
+		xml: `<TableAttrs><TAttr ` +
+			`h:table="hello" f:table="world" xmlns:f="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: "world"}},
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns="http://www.w3schools.com/furniture" xmlns:h="http://www.w3.org/TR/html4/"><TAttr ` +
+			`h:table="hello" table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: ""}},
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns:f="http://www.w3schools.com/furniture"><TAttr xmlns="http://www.w3.org/TR/html4/" ` +
+			`table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "", FTable: "world"}},
+	},
+	{
+		xml: `<TableAttrs><TAttr ` +
+			`table="bogus" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{},
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns:h="http://www.w3.org/TR/html4/"><TAttr ` +
+			`h:table="hello" table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "hello", FTable: ""}},
+		ns:  "http://www.w3schools.com/furniture",
+	},
+	{
+		// Default space does not apply to attribute names.
+		xml: `<TableAttrs xmlns:f="http://www.w3schools.com/furniture"><TAttr ` +
+			`table="hello" f:table="world" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{TAttr{HTable: "", FTable: "world"}},
+		ns:  "http://www.w3.org/TR/html4/",
+	},
+	{
+		xml: `<TableAttrs><TAttr ` +
+			`table="bogus" ` +
+			`/></TableAttrs>`,
+		tab: TableAttrs{},
+		ns:  "something else entirely",
+	},
+}
+
+func TestUnmarshalNSAttr(t *testing.T) {
+	for i, tt := range tableAttrs {
+		var dst TableAttrs
+		var err error
+		if tt.ns != "" {
+			d := NewDecoder(strings.NewReader(tt.xml))
+			d.DefaultSpace = tt.ns
+			err = d.Decode(&dst)
+		} else {
+			err = Unmarshal([]byte(tt.xml), &dst)
+		}
+		if err != nil {
+			t.Errorf("#%d: Unmarshal: %v", i, err)
+			continue
+		}
+		want := tt.tab
+		if dst != want {
+			t.Errorf("#%d: dst=%+v, want %+v", i, dst, want)
+		}
+	}
+}
+
+func TestMarshalNSAttr(t *testing.T) {
+	src := TableAttrs{TAttr{"hello", "world", "en_US", "other1", "other2", "other3", "other4"}}
+	data, err := Marshal(&src)
+	if err != nil {
+		t.Fatalf("Marshal: %v", err)
+	}
+	want := `<TableAttrs><TAttr xmlns:html4="http://www.w3.org/TR/html4/" html4:table="hello" xmlns:furniture="http://www.w3schools.com/furniture" furniture:table="world" xml:lang="en_US" xmlns:_xml="http://golang.org/xml/" _xml:other="other1" xmlns:_xmlfoo="http://golang.org/xmlfoo/" _xmlfoo:other="other2" xmlns:json="http://golang.org/json/" json:other="other3" xmlns:json_1="http://golang.org/2/json/" json_1:other="other4"></TAttr></TableAttrs>`
+	str := string(data)
+	if str != want {
+		t.Errorf("Marshal:\nhave: %#q\nwant: %#q\n", str, want)
+	}
+
+	var dst TableAttrs
+	if err := Unmarshal(data, &dst); err != nil {
+		t.Errorf("Unmarshal: %v", err)
+	}
+
+	if dst != src {
+		t.Errorf("Unmarshal = %q, want %q", dst, src)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/typeinfo.go gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/typeinfo.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/xml/typeinfo.go	2013-07-16 01:55:04.520470000 -0500
@@ -70,20 +70,19 @@
 				if t.Kind() == reflect.Ptr {
 					t = t.Elem()
 				}
-				if t.Kind() != reflect.Struct {
-					continue
-				}
-				inner, err := getTypeInfo(t)
-				if err != nil {
-					return nil, err
-				}
-				for _, finfo := range inner.fields {
-					finfo.idx = append([]int{i}, finfo.idx...)
-					if err := addFieldInfo(typ, tinfo, &finfo); err != nil {
+				if t.Kind() == reflect.Struct {
+					inner, err := getTypeInfo(t)
+					if err != nil {
 						return nil, err
 					}
+					for _, finfo := range inner.fields {
+						finfo.idx = append([]int{i}, finfo.idx...)
+						if err := addFieldInfo(typ, tinfo, &finfo); err != nil {
+							return nil, err
+						}
+					}
+					continue
 				}
-				continue
 			}
 
 			finfo, err := structFieldInfo(typ, &f)
@@ -193,16 +192,19 @@
 	}
 
 	// Prepare field name and parents.
-	tokens = strings.Split(tag, ">")
-	if tokens[0] == "" {
-		tokens[0] = f.Name
+	parents := strings.Split(tag, ">")
+	if parents[0] == "" {
+		parents[0] = f.Name
 	}
-	if tokens[len(tokens)-1] == "" {
+	if parents[len(parents)-1] == "" {
 		return nil, fmt.Errorf("xml: trailing '>' in field %s of type %s", f.Name, typ)
 	}
-	finfo.name = tokens[len(tokens)-1]
-	if len(tokens) > 1 {
-		finfo.parents = tokens[:len(tokens)-1]
+	finfo.name = parents[len(parents)-1]
+	if len(parents) > 1 {
+		if (finfo.flags & fElement) == 0 {
+			return nil, fmt.Errorf("xml: %s chain not valid with %s flag", tag, strings.Join(tokens[1:], ","))
+		}
+		finfo.parents = parents[:len(parents)-1]
 	}
 
 	// If the field type has an XMLName field, the names must match
@@ -268,6 +270,9 @@
 		if oldf.flags&fMode != newf.flags&fMode {
 			continue
 		}
+		if oldf.xmlns != "" && newf.xmlns != "" && oldf.xmlns != newf.xmlns {
+			continue
+		}
 		minl := min(len(newf.parents), len(oldf.parents))
 		for p := 0; p < minl; p++ {
 			if oldf.parents[p] != newf.parents[p] {
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml.go gcc-4.8.1/libgo/go/encoding/xml/xml.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/xml.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/xml/xml.go	2013-07-16 01:55:04.520470000 -0500
@@ -169,6 +169,11 @@
 	// the CharsetReader's result values must be non-nil.
 	CharsetReader func(charset string, input io.Reader) (io.Reader, error)
 
+	// DefaultSpace sets the default name space used for unadorned tags,
+	// as if the entire XML stream were wrapped in an element containing
+	// the attribute xmlns="DefaultSpace".
+	DefaultSpace string
+
 	r         io.ByteReader
 	buf       bytes.Buffer
 	saved     *bytes.Buffer
@@ -268,6 +273,8 @@
 	return
 }
 
+const xmlURL = "http://www.w3.org/XML/1998/namespace"
+
 // Apply name space translation to name n.
 // The default name space (for Space=="")
 // applies only to element names, not to attribute names.
@@ -277,11 +284,15 @@
 		return
 	case n.Space == "" && !isElementName:
 		return
+	case n.Space == "xml":
+		n.Space = xmlURL
 	case n.Space == "" && n.Local == "xmlns":
 		return
 	}
 	if v, ok := d.ns[n.Space]; ok {
 		n.Space = v
+	} else if n.Space == "" {
+		n.Space = d.DefaultSpace
 	}
 }
 
@@ -956,7 +967,7 @@
 				b0, b1 = 0, 0
 				continue Input
 			}
-			ent := string(d.buf.Bytes()[before])
+			ent := string(d.buf.Bytes()[before:])
 			if ent[len(ent)-1] != ';' {
 				ent += " (no semicolon)"
 			}
@@ -1692,7 +1703,7 @@
 var htmlAutoClose = []string{
 	/*
 		hget http://www.w3.org/TR/html4/loose.dtd |
-		9 sed -n 's/<!ELEMENT (.*) - O EMPTY.+/	"\1",/p' | tr A-Z a-z
+		9 sed -n 's/<!ELEMENT ([^ ]*) +- O EMPTY.+/	"\1",/p' | tr A-Z a-z
 	*/
 	"basefont",
 	"br",
@@ -1702,7 +1713,7 @@
 	"param",
 	"hr",
 	"input",
-	"col     ",
+	"col",
 	"frame",
 	"isindex",
 	"base",
@@ -1718,15 +1729,18 @@
 	esc_tab  = []byte("&#x9;")
 	esc_nl   = []byte("&#xA;")
 	esc_cr   = []byte("&#xD;")
+	esc_fffd = []byte("\uFFFD") // Unicode replacement character
 )
 
-// Escape writes to w the properly escaped XML equivalent
+// EscapeText writes to w the properly escaped XML equivalent
 // of the plain text data s.
-func Escape(w io.Writer, s []byte) {
+func EscapeText(w io.Writer, s []byte) error {
 	var esc []byte
 	last := 0
-	for i, c := range s {
-		switch c {
+	for i := 0; i < len(s); {
+		r, width := utf8.DecodeRune(s[i:])
+		i += width
+		switch r {
 		case '"':
 			esc = esc_quot
 		case '\'':
@@ -1744,13 +1758,31 @@
 		case '\r':
 			esc = esc_cr
 		default:
+			if !isInCharacterRange(r) {
+				esc = esc_fffd
+				break
+			}
 			continue
 		}
-		w.Write(s[last:i])
-		w.Write(esc)
-		last = i + 1
+		if _, err := w.Write(s[last : i-width]); err != nil {
+			return err
+		}
+		if _, err := w.Write(esc); err != nil {
+			return err
+		}
+		last = i
+	}
+	if _, err := w.Write(s[last:]); err != nil {
+		return err
 	}
-	w.Write(s[last:])
+	return nil
+}
+
+// Escape is like EscapeText but omits the error return value.
+// It is provided for backwards compatibility with Go 1.0.
+// Code targeting Go 1.1 or later should use EscapeText.
+func Escape(w io.Writer, s []byte) {
+	EscapeText(w, s)
 }
 
 // procInstEncoding parses the `encoding="..."` or `encoding='...'`
diff -Naur gcc-4.8.1.orig/libgo/go/encoding/xml/xml_test.go gcc-4.8.1/libgo/go/encoding/xml/xml_test.go
--- gcc-4.8.1.orig/libgo/go/encoding/xml/xml_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/encoding/xml/xml_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,6 +5,7 @@
 package xml
 
 import (
+	"bytes"
 	"fmt"
 	"io"
 	"reflect"
@@ -595,13 +596,6 @@
 	}
 }
 
-// The last three tests (respectively one for characters in attribute
-// names and two for character entities) pass not because of code
-// changed for issue 1259, but instead pass with the given messages
-// from other parts of xml.Decoder.  I provide these to note the
-// current behavior of situations where one might think that character
-// range checking would detect the error, but it does not in fact.
-
 var characterTests = []struct {
 	in  string
 	err string
@@ -611,8 +605,10 @@
 	{"\xef\xbf\xbe<doc/>", "illegal character code U+FFFE"},
 	{"<?xml version=\"1.0\"?><doc>\r\n<hiya/>\x07<toots/></doc>", "illegal character code U+0007"},
 	{"<?xml version=\"1.0\"?><doc \x12='value'>what's up</doc>", "expected attribute name in element"},
+	{"<doc>&abc\x01;</doc>", "invalid character entity &abc (no semicolon)"},
 	{"<doc>&\x01;</doc>", "invalid character entity & (no semicolon)"},
-	{"<doc>&\xef\xbf\xbe;</doc>", "invalid character entity & (no semicolon)"},
+	{"<doc>&\xef\xbf\xbe;</doc>", "invalid character entity &\uFFFE;"},
+	{"<doc>&hello;</doc>", "invalid character entity &hello;"},
 }
 
 func TestDisallowedCharacters(t *testing.T) {
@@ -629,7 +625,7 @@
 			t.Fatalf("input %d d.Token() = _, %v, want _, *SyntaxError", i, err)
 		}
 		if synerr.Msg != tt.err {
-			t.Fatalf("input %d synerr.Msg wrong: want '%s', got '%s'", i, tt.err, synerr.Msg)
+			t.Fatalf("input %d synerr.Msg wrong: want %q, got %q", i, tt.err, synerr.Msg)
 		}
 	}
 }
@@ -689,3 +685,32 @@
 		}
 	}
 }
+
+// Writer whose Write method always returns an error.
+type errWriter struct{}
+
+func (errWriter) Write(p []byte) (n int, err error) { return 0, fmt.Errorf("unwritable") }
+
+func TestEscapeTextIOErrors(t *testing.T) {
+	expectErr := "unwritable"
+	err := EscapeText(errWriter{}, []byte{'A'})
+
+	if err == nil || err.Error() != expectErr {
+		t.Errorf("have %v, want %v", err, expectErr)
+	}
+}
+
+func TestEscapeTextInvalidChar(t *testing.T) {
+	input := []byte("A \x00 terminated string.")
+	expected := "A \uFFFD terminated string."
+
+	buff := new(bytes.Buffer)
+	if err := EscapeText(buff, input); err != nil {
+		t.Fatalf("have %v, want nil", err)
+	}
+	text := buff.String()
+
+	if text != expected {
+		t.Errorf("have %v, want %v", text, expected)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/cookiejar/jar.go gcc-4.8.1/libgo/go/exp/cookiejar/jar.go
--- gcc-4.8.1.orig/libgo/go/exp/cookiejar/jar.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/cookiejar/jar.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,89 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package cookiejar implements an RFC 6265-compliant http.CookieJar.
-//
-// TODO: example code to create a memory-backed cookie jar with the default
-// public suffix list.
-package cookiejar
-
-import (
-	"net/http"
-	"net/url"
-)
-
-// PublicSuffixList provides the public suffix of a domain. For example:
-//      - the public suffix of "example.com" is "com",
-//      - the public suffix of "foo1.foo2.foo3.co.uk" is "co.uk", and
-//      - the public suffix of "bar.pvt.k12.wy.us" is "pvt.k12.wy.us".
-//
-// Implementations of PublicSuffixList must be safe for concurrent use by
-// multiple goroutines.
-//
-// An implementation that always returns "" is valid and may be useful for
-// testing but it is not secure: it means that the HTTP server for foo.com can
-// set a cookie for bar.com.
-type PublicSuffixList interface {
-	// PublicSuffix returns the public suffix of domain.
-	//
-	// TODO: specify which of the caller and callee is responsible for IP
-	// addresses, for leading and trailing dots, for case sensitivity, and
-	// for IDN/Punycode.
-	PublicSuffix(domain string) string
-
-	// String returns a description of the source of this public suffix list.
-	// A Jar will store its PublicSuffixList's description in its storage,
-	// and update the stored cookies if its list has a different description
-	// than the stored list. The description will typically contain something
-	// like a time stamp or version number.
-	String() string
-}
-
-// Options are the options for creating a new Jar.
-type Options struct {
-	// Storage is the cookie jar storage. It may not be nil.
-	Storage Storage
-
-	// PublicSuffixList is the public suffix list that determines whether an
-	// HTTP server can set a cookie for a domain. It may not be nil.
-	PublicSuffixList PublicSuffixList
-
-	// TODO: ErrorFunc for handling storage errors?
-}
-
-// Jar implements the http.CookieJar interface from the net/http package.
-type Jar struct {
-	storage Storage
-	psList  PublicSuffixList
-}
-
-// New returns a new cookie jar.
-func New(o *Options) *Jar {
-	return &Jar{
-		storage: o.Storage,
-		psList:  o.PublicSuffixList,
-	}
-}
-
-// TODO(nigeltao): how do we reject HttpOnly cookies? Do we post-process the
-// return value from Jar.Cookies?
-//
-// HttpOnly cookies are those for regular HTTP(S) requests but should not be
-// visible from JavaScript. The HttpOnly bit mitigates XSS attacks; it's not
-// for HTTP vs HTTPS vs FTP transports.
-
-// Cookies implements the Cookies method of the http.CookieJar interface.
-//
-// It returns an empty slice if the URL's scheme is not HTTP or HTTPS.
-func (j *Jar) Cookies(u *url.URL) []*http.Cookie {
-	// TODO.
-	return nil
-}
-
-// SetCookies implements the SetCookies method of the http.CookieJar interface.
-//
-// It does nothing if the URL's scheme is not HTTP or HTTPS.
-func (j *Jar) SetCookies(u *url.URL, cookies []*http.Cookie) {
-	// TODO.
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage.go gcc-4.8.1/libgo/go/exp/cookiejar/storage.go
--- gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/cookiejar/storage.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,101 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cookiejar
-
-import (
-	"time"
-)
-
-// Storage is a Jar's storage. It is a multi-map, mapping keys to one or more
-// entries. Each entry consists of a subkey, creation time, last access time,
-// and some arbitrary data.
-//
-// The Add and Delete methods have undefined behavior if the key is invalid.
-// A valid key must use only bytes in the character class [a-z0-9.-] and
-// must have at least one non-. byte. Note that this excludes any key
-// containing a capital ASCII letter as well as the empty string.
-type Storage interface {
-	// A client must call Lock before calling other methods and must call
-	// Unlock when finished. Between the calls to Lock and Unlock, a client
-	// can assume that other clients are not modifying the Storage.
-	Lock()
-	Unlock()
-
-	// Add adds entries to the storage. Each entry's Subkey and Data must
-	// both be non-empty.
-	//
-	// If the Storage already contains an entry with the same key and
-	// subkey then the new entry is stored with the creation time of the
-	// old entry, and the old entry is deleted.
-	//
-	// Adding entries may cause other entries to be deleted, to maintain an
-	// implementation-specific storage constraint.
-	Add(key string, entries ...Entry) error
-
-	// Delete deletes all entries for the given key.
-	Delete(key string) error
-
-	// Entries calls f for each entry stored for that key. If f returns a
-	// non-nil error then the iteration stops and Entries returns that
-	// error. Iteration is not guaranteed to be in any particular order.
-	//
-	// If f returns an Update action then that stored entry's LastAccess
-	// time will be set to the time that f returned. If f returns a Delete
-	// action then that entry will be deleted from the Storage.
-	//
-	// f may call a Storage's Add and Delete methods; those modifications
-	// will not affect the list of entries visited in this call to Entries.
-	Entries(key string, f func(entry Entry) (Action, time.Time, error)) error
-
-	// Keys calls f for each key stored. f will not be called on a key with
-	// zero entries. If f returns a non-nil error then the iteration stops
-	// and Keys returns that error. Iteration is not guaranteed to be in any
-	// particular order.
-	//
-	// f may call a Storage's Add, Delete and Entries methods; those
-	// modifications will not affect the list of keys visited in this call
-	// to Keys.
-	Keys(f func(key string) error) error
-}
-
-// Entry is an entry in a Storage.
-type Entry struct {
-	Subkey     string
-	Data       string
-	Creation   time.Time
-	LastAccess time.Time
-}
-
-// Action is an action returned by the function passed to Entries.
-type Action int
-
-const (
-	// Pass means to take no further action with an Entry.
-	Pass Action = iota
-	// Update means to update the LastAccess time of an Entry.
-	Update
-	// Delete means to delete an Entry.
-	Delete
-)
-
-// ValidStorageKey returns whether the given key is valid for a Storage.
-func ValidStorageKey(key string) bool {
-	hasNonDot := false
-	for i := 0; i < len(key); i++ {
-		switch c := key[i]; {
-		case 'a' <= c && c <= 'z':
-			fallthrough
-		case '0' <= c && c <= '9':
-			fallthrough
-		case c == '-':
-			hasNonDot = true
-		case c == '.':
-			// No-op.
-		default:
-			return false
-		}
-	}
-	return hasNonDot
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage_test.go gcc-4.8.1/libgo/go/exp/cookiejar/storage_test.go
--- gcc-4.8.1.orig/libgo/go/exp/cookiejar/storage_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/cookiejar/storage_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,48 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cookiejar
-
-import (
-	"testing"
-)
-
-var validStorageKeyTests = map[string]bool{
-	"":            false,
-	".":           false,
-	"..":          false,
-	"/":           false,
-	"EXAMPLE.com": false,
-	"\n":          false,
-	"\r":          false,
-	"\r\n":        false,
-	"\x00":        false,
-	"back\\slash": false,
-	"co:lon":      false,
-	"com,ma":      false,
-	"semi;colon":  false,
-	"sl/ash":      false,
-	"sp ace":      false,
-	"under_score": false,
-	"Ï€":           false,
-
-	"-":                true,
-	".dot":             true,
-	".dot.":            true,
-	".metadata":        true,
-	".x..y..z...":      true,
-	"dot.":             true,
-	"example.com":      true,
-	"foo":              true,
-	"hy-phen":          true,
-	"xn--bcher-kva.ch": true,
-}
-
-func TestValidStorageKey(t *testing.T) {
-	for key, want := range validStorageKeyTests {
-		if got := ValidStorageKey(key); got != want {
-			t.Errorf("%q: got %v, want %v", key, got, want)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf.go gcc-4.8.1/libgo/go/exp/ebnf/ebnf.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ebnf/ebnf.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,269 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package ebnf is a library for EBNF grammars. The input is text ([]byte)
-// satisfying the following grammar (represented itself in EBNF):
-//
-//	Production  = name "=" [ Expression ] "." .
-//	Expression  = Alternative { "|" Alternative } .
-//	Alternative = Term { Term } .
-//	Term        = name | token [ "â€¦" token ] | Group | Option | Repetition .
-//	Group       = "(" Expression ")" .
-//	Option      = "[" Expression "]" .
-//	Repetition  = "{" Expression "}" .
-//
-// A name is a Go identifier, a token is a Go string, and comments
-// and white space follow the same rules as for the Go language.
-// Production names starting with an uppercase Unicode letter denote
-// non-terminal productions (i.e., productions which allow white-space
-// and comments between tokens); all other production names denote
-// lexical productions.
-//
-package ebnf
-
-import (
-	"errors"
-	"fmt"
-	"text/scanner"
-	"unicode"
-	"unicode/utf8"
-)
-
-// ----------------------------------------------------------------------------
-// Error handling
-
-type errorList []error
-
-func (list errorList) Err() error {
-	if len(list) == 0 {
-		return nil
-	}
-	return list
-}
-
-func (list errorList) Error() string {
-	switch len(list) {
-	case 0:
-		return "no errors"
-	case 1:
-		return list[0].Error()
-	}
-	return fmt.Sprintf("%s (and %d more errors)", list[0], len(list)-1)
-}
-
-func newError(pos scanner.Position, msg string) error {
-	return errors.New(fmt.Sprintf("%s: %s", pos, msg))
-}
-
-// ----------------------------------------------------------------------------
-// Internal representation
-
-type (
-	// An Expression node represents a production expression.
-	Expression interface {
-		// Pos is the position of the first character of the syntactic construct
-		Pos() scanner.Position
-	}
-
-	// An Alternative node represents a non-empty list of alternative expressions.
-	Alternative []Expression // x | y | z
-
-	// A Sequence node represents a non-empty list of sequential expressions.
-	Sequence []Expression // x y z
-
-	// A Name node represents a production name.
-	Name struct {
-		StringPos scanner.Position
-		String    string
-	}
-
-	// A Token node represents a literal.
-	Token struct {
-		StringPos scanner.Position
-		String    string
-	}
-
-	// A List node represents a range of characters.
-	Range struct {
-		Begin, End *Token // begin ... end
-	}
-
-	// A Group node represents a grouped expression.
-	Group struct {
-		Lparen scanner.Position
-		Body   Expression // (body)
-	}
-
-	// An Option node represents an optional expression.
-	Option struct {
-		Lbrack scanner.Position
-		Body   Expression // [body]
-	}
-
-	// A Repetition node represents a repeated expression.
-	Repetition struct {
-		Lbrace scanner.Position
-		Body   Expression // {body}
-	}
-
-	// A Production node represents an EBNF production.
-	Production struct {
-		Name *Name
-		Expr Expression
-	}
-
-	// A Bad node stands for pieces of source code that lead to a parse error.
-	Bad struct {
-		TokPos scanner.Position
-		Error  string // parser error message
-	}
-
-	// A Grammar is a set of EBNF productions. The map
-	// is indexed by production name.
-	//
-	Grammar map[string]*Production
-)
-
-func (x Alternative) Pos() scanner.Position { return x[0].Pos() } // the parser always generates non-empty Alternative
-func (x Sequence) Pos() scanner.Position    { return x[0].Pos() } // the parser always generates non-empty Sequences
-func (x *Name) Pos() scanner.Position       { return x.StringPos }
-func (x *Token) Pos() scanner.Position      { return x.StringPos }
-func (x *Range) Pos() scanner.Position      { return x.Begin.Pos() }
-func (x *Group) Pos() scanner.Position      { return x.Lparen }
-func (x *Option) Pos() scanner.Position     { return x.Lbrack }
-func (x *Repetition) Pos() scanner.Position { return x.Lbrace }
-func (x *Production) Pos() scanner.Position { return x.Name.Pos() }
-func (x *Bad) Pos() scanner.Position        { return x.TokPos }
-
-// ----------------------------------------------------------------------------
-// Grammar verification
-
-func isLexical(name string) bool {
-	ch, _ := utf8.DecodeRuneInString(name)
-	return !unicode.IsUpper(ch)
-}
-
-type verifier struct {
-	errors   errorList
-	worklist []*Production
-	reached  Grammar // set of productions reached from (and including) the root production
-	grammar  Grammar
-}
-
-func (v *verifier) error(pos scanner.Position, msg string) {
-	v.errors = append(v.errors, newError(pos, msg))
-}
-
-func (v *verifier) push(prod *Production) {
-	name := prod.Name.String
-	if _, found := v.reached[name]; !found {
-		v.worklist = append(v.worklist, prod)
-		v.reached[name] = prod
-	}
-}
-
-func (v *verifier) verifyChar(x *Token) rune {
-	s := x.String
-	if utf8.RuneCountInString(s) != 1 {
-		v.error(x.Pos(), "single char expected, found "+s)
-		return 0
-	}
-	ch, _ := utf8.DecodeRuneInString(s)
-	return ch
-}
-
-func (v *verifier) verifyExpr(expr Expression, lexical bool) {
-	switch x := expr.(type) {
-	case nil:
-		// empty expression
-	case Alternative:
-		for _, e := range x {
-			v.verifyExpr(e, lexical)
-		}
-	case Sequence:
-		for _, e := range x {
-			v.verifyExpr(e, lexical)
-		}
-	case *Name:
-		// a production with this name must exist;
-		// add it to the worklist if not yet processed
-		if prod, found := v.grammar[x.String]; found {
-			v.push(prod)
-		} else {
-			v.error(x.Pos(), "missing production "+x.String)
-		}
-		// within a lexical production references
-		// to non-lexical productions are invalid
-		if lexical && !isLexical(x.String) {
-			v.error(x.Pos(), "reference to non-lexical production "+x.String)
-		}
-	case *Token:
-		// nothing to do for now
-	case *Range:
-		i := v.verifyChar(x.Begin)
-		j := v.verifyChar(x.End)
-		if i >= j {
-			v.error(x.Pos(), "decreasing character range")
-		}
-	case *Group:
-		v.verifyExpr(x.Body, lexical)
-	case *Option:
-		v.verifyExpr(x.Body, lexical)
-	case *Repetition:
-		v.verifyExpr(x.Body, lexical)
-	case *Bad:
-		v.error(x.Pos(), x.Error)
-	default:
-		panic(fmt.Sprintf("internal error: unexpected type %T", expr))
-	}
-}
-
-func (v *verifier) verify(grammar Grammar, start string) {
-	// find root production
-	root, found := grammar[start]
-	if !found {
-		var noPos scanner.Position
-		v.error(noPos, "no start production "+start)
-		return
-	}
-
-	// initialize verifier
-	v.worklist = v.worklist[0:0]
-	v.reached = make(Grammar)
-	v.grammar = grammar
-
-	// work through the worklist
-	v.push(root)
-	for {
-		n := len(v.worklist) - 1
-		if n < 0 {
-			break
-		}
-		prod := v.worklist[n]
-		v.worklist = v.worklist[0:n]
-		v.verifyExpr(prod.Expr, isLexical(prod.Name.String))
-	}
-
-	// check if all productions were reached
-	if len(v.reached) < len(v.grammar) {
-		for name, prod := range v.grammar {
-			if _, found := v.reached[name]; !found {
-				v.error(prod.Pos(), name+" is unreachable")
-			}
-		}
-	}
-}
-
-// Verify checks that:
-//	- all productions used are defined
-//	- all productions defined are used when beginning at start
-//	- lexical productions refer only to other lexical productions
-//
-// Position information is interpreted relative to the file set fset.
-//
-func Verify(grammar Grammar, start string) error {
-	var v verifier
-	v.verify(grammar, start)
-	return v.errors.Err()
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf_test.go gcc-4.8.1/libgo/go/exp/ebnf/ebnf_test.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnf/ebnf_test.go	2011-10-26 18:57:58.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/ebnf/ebnf_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,71 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ebnf
-
-import (
-	"bytes"
-	"testing"
-)
-
-var goodGrammars = []string{
-	`Program = .`,
-
-	`Program = foo .
-	 foo = "foo" .`,
-
-	`Program = "a" | "b" "c" .`,
-
-	`Program = "a" â€¦ "z" .`,
-
-	`Program = Song .
-	 Song = { Note } .
-	 Note = Do | (Re | Mi | Fa | So | La) | Ti .
-	 Do = "c" .
-	 Re = "d" .
-	 Mi = "e" .
-	 Fa = "f" .
-	 So = "g" .
-	 La = "a" .
-	 Ti = ti .
-	 ti = "b" .`,
-}
-
-var badGrammars = []string{
-	`Program = | .`,
-	`Program = | b .`,
-	`Program = a â€¦ b .`,
-	`Program = "a" â€¦ .`,
-	`Program = â€¦ "b" .`,
-	`Program = () .`,
-	`Program = [] .`,
-	`Program = {} .`,
-}
-
-func checkGood(t *testing.T, src string) {
-	grammar, err := Parse("", bytes.NewBuffer([]byte(src)))
-	if err != nil {
-		t.Errorf("Parse(%s) failed: %v", src, err)
-		return
-	}
-	if err = Verify(grammar, "Program"); err != nil {
-		t.Errorf("Verify(%s) failed: %v", src, err)
-	}
-}
-
-func checkBad(t *testing.T, src string) {
-	_, err := Parse("", bytes.NewBuffer([]byte(src)))
-	if err == nil {
-		t.Errorf("Parse(%s) should have failed", src)
-	}
-}
-
-func TestGrammars(t *testing.T) {
-	for _, src := range goodGrammars {
-		checkGood(t, src)
-	}
-	for _, src := range badGrammars {
-		checkBad(t, src)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnf/parser.go gcc-4.8.1/libgo/go/exp/ebnf/parser.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnf/parser.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ebnf/parser.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,190 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ebnf
-
-import (
-	"io"
-	"strconv"
-	"text/scanner"
-)
-
-type parser struct {
-	errors  errorList
-	scanner scanner.Scanner
-	pos     scanner.Position // token position
-	tok     rune             // one token look-ahead
-	lit     string           // token literal
-}
-
-func (p *parser) next() {
-	p.tok = p.scanner.Scan()
-	p.pos = p.scanner.Position
-	p.lit = p.scanner.TokenText()
-}
-
-func (p *parser) error(pos scanner.Position, msg string) {
-	p.errors = append(p.errors, newError(pos, msg))
-}
-
-func (p *parser) errorExpected(pos scanner.Position, msg string) {
-	msg = `expected "` + msg + `"`
-	if pos.Offset == p.pos.Offset {
-		// the error happened at the current position;
-		// make the error message more specific
-		msg += ", found " + scanner.TokenString(p.tok)
-		if p.tok < 0 {
-			msg += " " + p.lit
-		}
-	}
-	p.error(pos, msg)
-}
-
-func (p *parser) expect(tok rune) scanner.Position {
-	pos := p.pos
-	if p.tok != tok {
-		p.errorExpected(pos, scanner.TokenString(tok))
-	}
-	p.next() // make progress in any case
-	return pos
-}
-
-func (p *parser) parseIdentifier() *Name {
-	pos := p.pos
-	name := p.lit
-	p.expect(scanner.Ident)
-	return &Name{pos, name}
-}
-
-func (p *parser) parseToken() *Token {
-	pos := p.pos
-	value := ""
-	if p.tok == scanner.String {
-		value, _ = strconv.Unquote(p.lit)
-		// Unquote may fail with an error, but only if the scanner found
-		// an illegal string in the first place. In this case the error
-		// has already been reported.
-		p.next()
-	} else {
-		p.expect(scanner.String)
-	}
-	return &Token{pos, value}
-}
-
-// ParseTerm returns nil if no term was found.
-func (p *parser) parseTerm() (x Expression) {
-	pos := p.pos
-
-	switch p.tok {
-	case scanner.Ident:
-		x = p.parseIdentifier()
-
-	case scanner.String:
-		tok := p.parseToken()
-		x = tok
-		const ellipsis = 'â€¦' // U+2026, the horizontal ellipsis character
-		if p.tok == ellipsis {
-			p.next()
-			x = &Range{tok, p.parseToken()}
-		}
-
-	case '(':
-		p.next()
-		x = &Group{pos, p.parseExpression()}
-		p.expect(')')
-
-	case '[':
-		p.next()
-		x = &Option{pos, p.parseExpression()}
-		p.expect(']')
-
-	case '{':
-		p.next()
-		x = &Repetition{pos, p.parseExpression()}
-		p.expect('}')
-	}
-
-	return x
-}
-
-func (p *parser) parseSequence() Expression {
-	var list Sequence
-
-	for x := p.parseTerm(); x != nil; x = p.parseTerm() {
-		list = append(list, x)
-	}
-
-	// no need for a sequence if list.Len() < 2
-	switch len(list) {
-	case 0:
-		p.errorExpected(p.pos, "term")
-		return &Bad{p.pos, "term expected"}
-	case 1:
-		return list[0]
-	}
-
-	return list
-}
-
-func (p *parser) parseExpression() Expression {
-	var list Alternative
-
-	for {
-		list = append(list, p.parseSequence())
-		if p.tok != '|' {
-			break
-		}
-		p.next()
-	}
-	// len(list) > 0
-
-	// no need for an Alternative node if list.Len() < 2
-	if len(list) == 1 {
-		return list[0]
-	}
-
-	return list
-}
-
-func (p *parser) parseProduction() *Production {
-	name := p.parseIdentifier()
-	p.expect('=')
-	var expr Expression
-	if p.tok != '.' {
-		expr = p.parseExpression()
-	}
-	p.expect('.')
-	return &Production{name, expr}
-}
-
-func (p *parser) parse(filename string, src io.Reader) Grammar {
-	p.scanner.Init(src)
-	p.scanner.Filename = filename
-	p.next() // initializes pos, tok, lit
-
-	grammar := make(Grammar)
-	for p.tok != scanner.EOF {
-		prod := p.parseProduction()
-		name := prod.Name.String
-		if _, found := grammar[name]; !found {
-			grammar[name] = prod
-		} else {
-			p.error(prod.Pos(), name+" declared already")
-		}
-	}
-
-	return grammar
-}
-
-// Parse parses a set of EBNF productions from source src.
-// It returns a set of productions. Errors are reported
-// for incorrect syntax and if a production is declared
-// more than once; the filename is used only for error
-// positions.
-//
-func Parse(filename string, src io.Reader) (Grammar, error) {
-	var p parser
-	grammar := p.parse(filename, src)
-	return grammar, p.errors.Err()
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnflint/doc.go gcc-4.8.1/libgo/go/exp/ebnflint/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnflint/doc.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ebnflint/doc.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,22 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-
-Ebnflint verifies that EBNF productions are consistent and grammatically correct.
-It reads them from an HTML document such as the Go specification.
-
-Grammar productions are grouped in boxes demarcated by the HTML elements
-	<pre class="ebnf">
-	</pre>
-
-
-Usage:
-	go tool ebnflint [--start production] [file]
-
-The --start flag specifies the name of the start production for
-the grammar; it defaults to "Start".
-
-*/
-package documentation
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint.go gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,122 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"bytes"
-	"exp/ebnf"
-	"flag"
-	"fmt"
-	"go/scanner"
-	"go/token"
-	"io"
-	"io/ioutil"
-	"os"
-	"path/filepath"
-)
-
-var fset = token.NewFileSet()
-var start = flag.String("start", "Start", "name of start production")
-
-func usage() {
-	fmt.Fprintf(os.Stderr, "usage: go tool ebnflint [flags] [filename]\n")
-	flag.PrintDefaults()
-	os.Exit(1)
-}
-
-// Markers around EBNF sections in .html files
-var (
-	open  = []byte(`<pre class="ebnf">`)
-	close = []byte(`</pre>`)
-)
-
-func report(err error) {
-	scanner.PrintError(os.Stderr, err)
-	os.Exit(1)
-}
-
-func extractEBNF(src []byte) []byte {
-	var buf bytes.Buffer
-
-	for {
-		// i = beginning of EBNF text
-		i := bytes.Index(src, open)
-		if i < 0 {
-			break // no EBNF found - we are done
-		}
-		i += len(open)
-
-		// write as many newlines as found in the excluded text
-		// to maintain correct line numbers in error messages
-		for _, ch := range src[0:i] {
-			if ch == '\n' {
-				buf.WriteByte('\n')
-			}
-		}
-
-		// j = end of EBNF text (or end of source)
-		j := bytes.Index(src[i:], close) // close marker
-		if j < 0 {
-			j = len(src) - i
-		}
-		j += i
-
-		// copy EBNF text
-		buf.Write(src[i:j])
-
-		// advance
-		src = src[j:]
-	}
-
-	return buf.Bytes()
-}
-
-func main() {
-	flag.Parse()
-
-	var (
-		name string
-		r    io.Reader
-	)
-	switch flag.NArg() {
-	case 0:
-		name, r = "<stdin>", os.Stdin
-	case 1:
-		name = flag.Arg(0)
-	default:
-		usage()
-	}
-
-	if err := verify(name, *start, r); err != nil {
-		report(err)
-	}
-}
-
-func verify(name, start string, r io.Reader) error {
-	if r == nil {
-		f, err := os.Open(name)
-		if err != nil {
-			return err
-		}
-		defer f.Close()
-		r = f
-	}
-
-	src, err := ioutil.ReadAll(r)
-	if err != nil {
-		return err
-	}
-
-	if filepath.Ext(name) == ".html" || bytes.Index(src, open) >= 0 {
-		src = extractEBNF(src)
-	}
-
-	grammar, err := ebnf.Parse(name, bytes.NewBuffer(src))
-	if err != nil {
-		return err
-	}
-
-	return ebnf.Verify(grammar, start)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint_test.go gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint_test.go
--- gcc-4.8.1.orig/libgo/go/exp/ebnflint/ebnflint_test.go	2012-02-01 13:26:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ebnflint/ebnflint_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,16 +0,0 @@
-// Copyright 2012 The Go Authors.  All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"runtime"
-	"testing"
-)
-
-func TestSpec(t *testing.T) {
-	if err := verify(runtime.GOROOT()+"/doc/go_spec.html", "SourceFile", nil); err != nil {
-		t.Fatal(err)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/doc.go gcc-4.8.1/libgo/go/exp/gotype/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/doc.go	2012-03-06 11:57:23.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/gotype/doc.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,63 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-The gotype command does syntactic and semantic analysis of Go files
-and packages similar to the analysis performed by the front-end of
-a Go compiler. Errors are reported if the analysis fails; otherwise
-gotype is quiet (unless -v is set).
-
-Without a list of paths, gotype processes the standard input, which must
-be the source of a single package file.
-
-Given a list of file names, each file must be a source file belonging to
-the same package unless the package name is explicitly specified with the
--p flag.
-
-Given a directory name, gotype collects all .go files in the directory
-and processes them as if they were provided as an explicit list of file
-names. Each directory is processed independently. Files starting with .
-or not ending in .go are ignored.
-
-Usage:
-	gotype [flags] [path ...]
-
-The flags are:
-	-e
-		Print all (including spurious) errors.
-	-p pkgName
-		Process only those files in package pkgName.
-	-r
-		Recursively process subdirectories.
-	-v
-		Verbose mode.
-
-Debugging flags:
-	-comments
-		Parse comments (ignored if -ast not set).
-	-ast
-		Print AST (disables concurrent parsing).
-	-trace
-		Print parse trace (disables concurrent parsing).
-
-
-Examples
-
-To check the files file.go, old.saved, and .ignored:
-
-	gotype file.go old.saved .ignored
-
-To check all .go files belonging to package main in the current directory
-and recursively in all subdirectories:
-
-	gotype -p main -r .
-
-To verify the output of a pipe:
-
-	echo "package foo" | gotype
-
-*/
-package documentation
-
-// BUG(gri): At the moment, only single-file scope analysis is performed.
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/gotype.go gcc-4.8.1/libgo/go/exp/gotype/gotype.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/gotype.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/gotype/gotype.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,184 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"flag"
-	"fmt"
-	"go/ast"
-	"go/parser"
-	"go/scanner"
-	"go/token"
-	"go/types"
-	"io/ioutil"
-	"os"
-	"path/filepath"
-	"strings"
-)
-
-var (
-	// main operation modes
-	pkgName   = flag.String("p", "", "process only those files in package pkgName")
-	recursive = flag.Bool("r", false, "recursively process subdirectories")
-	verbose   = flag.Bool("v", false, "verbose mode")
-	allErrors = flag.Bool("e", false, "print all (including spurious) errors")
-
-	// debugging support
-	parseComments = flag.Bool("comments", false, "parse comments (ignored if -ast not set)")
-	printTrace    = flag.Bool("trace", false, "print parse trace")
-	printAST      = flag.Bool("ast", false, "print AST")
-)
-
-var exitCode = 0
-
-func usage() {
-	fmt.Fprintf(os.Stderr, "usage: gotype [flags] [path ...]\n")
-	flag.PrintDefaults()
-	os.Exit(2)
-}
-
-func report(err error) {
-	scanner.PrintError(os.Stderr, err)
-	exitCode = 2
-}
-
-// parse returns the AST for the Go source src.
-// The filename is for error reporting only.
-// The result is nil if there were errors or if
-// the file does not belong to the -p package.
-func parse(fset *token.FileSet, filename string, src []byte) *ast.File {
-	if *verbose {
-		fmt.Println(filename)
-	}
-
-	// ignore files with different package name
-	if *pkgName != "" {
-		file, err := parser.ParseFile(fset, filename, src, parser.PackageClauseOnly)
-		if err != nil {
-			report(err)
-			return nil
-		}
-		if file.Name.Name != *pkgName {
-			if *verbose {
-				fmt.Printf("\tignored (package %s)\n", file.Name.Name)
-			}
-			return nil
-		}
-	}
-
-	// parse entire file
-	mode := parser.DeclarationErrors
-	if *allErrors {
-		mode |= parser.SpuriousErrors
-	}
-	if *parseComments && *printAST {
-		mode |= parser.ParseComments
-	}
-	if *printTrace {
-		mode |= parser.Trace
-	}
-	file, err := parser.ParseFile(fset, filename, src, mode)
-	if err != nil {
-		report(err)
-		return nil
-	}
-	if *printAST {
-		ast.Print(fset, file)
-	}
-
-	return file
-}
-
-func parseStdin(fset *token.FileSet) (files []*ast.File) {
-	src, err := ioutil.ReadAll(os.Stdin)
-	if err != nil {
-		report(err)
-		return
-	}
-	const filename = "<standard input>"
-	if file := parse(fset, filename, src); file != nil {
-		files = []*ast.File{file}
-	}
-	return
-}
-
-func parseFiles(fset *token.FileSet, filenames []string) (files []*ast.File) {
-	for _, filename := range filenames {
-		src, err := ioutil.ReadFile(filename)
-		if err != nil {
-			report(err)
-			continue
-		}
-		if file := parse(fset, filename, src); file != nil {
-			files = append(files, file)
-		}
-	}
-	return
-}
-
-func isGoFilename(filename string) bool {
-	// ignore non-Go files
-	return !strings.HasPrefix(filename, ".") && strings.HasSuffix(filename, ".go")
-}
-
-func processDirectory(dirname string) {
-	f, err := os.Open(dirname)
-	if err != nil {
-		report(err)
-		return
-	}
-	filenames, err := f.Readdirnames(-1)
-	f.Close()
-	if err != nil {
-		report(err)
-		// continue since filenames may not be empty
-	}
-	for i, filename := range filenames {
-		filenames[i] = filepath.Join(dirname, filename)
-	}
-	processFiles(filenames, false)
-}
-
-func processFiles(filenames []string, allFiles bool) {
-	i := 0
-	for _, filename := range filenames {
-		switch info, err := os.Stat(filename); {
-		case err != nil:
-			report(err)
-		case info.IsDir():
-			if allFiles || *recursive {
-				processDirectory(filename)
-			}
-		default:
-			if allFiles || isGoFilename(info.Name()) {
-				filenames[i] = filename
-				i++
-			}
-		}
-	}
-	fset := token.NewFileSet()
-	processPackage(fset, parseFiles(fset, filenames[0:i]))
-}
-
-func processPackage(fset *token.FileSet, files []*ast.File) {
-	_, err := types.Check(fset, files)
-	if err != nil {
-		report(err)
-	}
-}
-
-func main() {
-	flag.Usage = usage
-	flag.Parse()
-
-	if flag.NArg() == 0 {
-		fset := token.NewFileSet()
-		processPackage(fset, parseStdin(fset))
-	} else {
-		processFiles(flag.Args(), true)
-	}
-
-	os.Exit(exitCode)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/gotype_test.go gcc-4.8.1/libgo/go/exp/gotype/gotype_test.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/gotype_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/gotype/gotype_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,215 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"go/build"
-	"path/filepath"
-	"runtime"
-	"strings"
-	"testing"
-)
-
-func runTest(t *testing.T, path string) {
-	exitCode = 0
-
-	*recursive = false
-	if suffix := ".go"; strings.HasSuffix(path, suffix) {
-		// single file
-		path = filepath.Join(runtime.GOROOT(), "src/pkg", path)
-		path, file := filepath.Split(path)
-		*pkgName = file[:len(file)-len(suffix)]
-		processFiles([]string{path}, true)
-	} else {
-		// package directory
-		// TODO(gri) gotype should use the build package instead
-		ctxt := build.Default
-		ctxt.CgoEnabled = false
-		pkg, err := ctxt.Import(path, "", 0)
-		if err != nil {
-			t.Errorf("build.Import error for path = %s: %s", path, err)
-			return
-		}
-		// TODO(gri) there ought to be a more direct way using the build package...
-		files := make([]string, len(pkg.GoFiles))
-		for i, file := range pkg.GoFiles {
-			files[i] = filepath.Join(pkg.Dir, file)
-		}
-		*pkgName = pkg.Name
-		processFiles(files, true)
-	}
-
-	if exitCode != 0 {
-		t.Errorf("processing %s failed: exitCode = %d", path, exitCode)
-	}
-}
-
-var tests = []string{
-	// individual files
-	"exp/gotype/testdata/test1.go",
-
-	// directories
-	// Note: Packages that don't typecheck yet are commented out.
-	// Unless there is a comment next to the commented out packages,
-	// the package doesn't typecheck due to errors in the shift
-	// expression checker.
-	"archive/tar",
-	"archive/zip",
-
-	"bufio",
-	"bytes",
-
-	// "compress/bzip2",
-	"compress/flate",
-	"compress/gzip",
-	// "compress/lzw",
-	"compress/zlib",
-
-	"container/heap",
-	"container/list",
-	"container/ring",
-
-	"crypto",
-	"crypto/aes",
-	"crypto/cipher",
-	"crypto/des",
-	"crypto/dsa",
-	"crypto/ecdsa",
-	"crypto/elliptic",
-	"crypto/hmac",
-	"crypto/md5",
-	// "crypto/rand",
-	"crypto/rc4",
-	// "crypto/rsa", // intermittent failure: /home/gri/go2/src/pkg/crypto/rsa/pkcs1v15.go:21:27: undeclared name: io
-	"crypto/sha1",
-	"crypto/sha256",
-	"crypto/sha512",
-	"crypto/subtle",
-	"crypto/tls",
-	"crypto/x509",
-	"crypto/x509/pkix",
-
-	"database/sql",
-	"database/sql/driver",
-
-	// "debug/dwarf",
-	"debug/elf",
-	"debug/gosym",
-	"debug/macho",
-	"debug/pe",
-
-	"encoding/ascii85",
-	// "encoding/asn1",
-	"encoding/base32",
-	"encoding/base64",
-	"encoding/binary",
-	"encoding/csv",
-	"encoding/gob",
-	"encoding/hex",
-	"encoding/json",
-	"encoding/pem",
-	"encoding/xml",
-
-	"errors",
-	"expvar",
-	"flag",
-	"fmt",
-
-	"exp/gotype",
-
-	"go/ast",
-	"go/build",
-	"go/doc",
-	"go/format",
-	"go/parser",
-	"go/printer",
-	"go/scanner",
-	// "go/token",
-	"go/types",
-
-	"hash/adler32",
-	"hash/crc32",
-	"hash/crc64",
-	"hash/fnv",
-
-	"image",
-	"image/color",
-	"image/draw",
-	"image/gif",
-	// "image/jpeg",
-	"image/png",
-
-	"index/suffixarray",
-
-	"io",
-	"io/ioutil",
-
-	"log",
-	"log/syslog",
-
-	// "math",
-	//"math/big",
-	"math/cmplx",
-	"math/rand",
-
-	"mime",
-	"mime/multipart",
-
-	// "net",
-	"net/http",
-	"net/http/cgi",
-	"net/http/fcgi",
-	"net/http/httptest",
-	"net/http/httputil",
-	"net/http/pprof",
-	"net/mail",
-	"net/rpc",
-	"net/rpc/jsonrpc",
-	"net/smtp",
-	// "net/textproto",
-	"net/url",
-
-	"path",
-	"path/filepath",
-
-	"reflect",
-
-	"regexp",
-	"regexp/syntax",
-
-	// "runtime",
-	"runtime/cgo",
-	"runtime/debug",
-	"runtime/pprof",
-
-	"sort",
-	// "strconv",
-	"strings",
-
-	"sync",
-	"sync/atomic",
-
-	// "syscall",
-
-	"testing",
-	"testing/iotest",
-	"testing/quick",
-
-	// "text/scanner",
-	"text/tabwriter",
-	"text/template",
-	"text/template/parse",
-
-	"time",
-	"unicode",
-	"unicode/utf16",
-	"unicode/utf8",
-}
-
-func Test(t *testing.T) {
-	for _, test := range tests {
-		runTest(t, test)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/gotype/testdata/test1.go gcc-4.8.1/libgo/go/exp/gotype/testdata/test1.go
--- gcc-4.8.1.orig/libgo/go/exp/gotype/testdata/test1.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/gotype/testdata/test1.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,27 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package test1
-
-func _() {
-	// the scope of a local type declaration starts immediately after the type name
-	type T struct{ _ *T }
-}
-
-func _(x interface{}) {
-	// the variable defined by a TypeSwitchGuard is declared in each TypeCaseClause
-	switch t := x.(type) {
-	case int:
-		_ = t
-	case float32:
-		_ = t
-	default:
-		_ = t
-	}
-
-	// the variable defined by a TypeSwitchGuard must not conflict with other
-	// variables declared in the initial simple statement
-	switch t := 0; t := x.(type) {
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/atom.go gcc-4.8.1/libgo/go/exp/html/atom/atom.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/atom.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/atom/atom.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,81 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package atom provides integer codes (also known as atoms) for a fixed set of
-// frequently occurring HTML strings: tag names and attribute keys such as "p"
-// and "id".
-//
-// Sharing an atom's name between all elements with the same tag can result in
-// fewer string allocations when tokenizing and parsing HTML. Integer
-// comparisons are also generally faster than string comparisons.
-//
-// The value of an atom's particular code is not guaranteed to stay the same
-// between versions of this package. Neither is any ordering guaranteed:
-// whether atom.H1 < atom.H2 may also change. The codes are not guaranteed to
-// be dense. The only guarantees are that e.g. looking up "div" will yield
-// atom.Div, calling atom.Div.String will return "div", and atom.Div != 0.
-//
-// TODO(rsc): When this package moves out of exp we need to freeze atom values
-// across releases.
-package atom
-
-// Atom is an integer code for a string. The zero value maps to "".
-type Atom uint32
-
-// String returns the atom's name.
-func (a Atom) String() string {
-	start := uint32(a >> 8)
-	n := uint32(a & 0xff)
-	if start+n > uint32(len(atomText)) {
-		return ""
-	}
-	return atomText[start : start+n]
-}
-
-func (a Atom) string() string {
-	return atomText[a>>8 : a>>8+a&0xff]
-}
-
-// fnv computes the FNV hash with an arbitrary starting value h.
-func fnv(h uint32, s []byte) uint32 {
-	for i := range s {
-		h ^= uint32(s[i])
-		h *= 16777619
-	}
-	return h
-}
-
-func match(s string, t []byte) bool {
-	for i, c := range t {
-		if s[i] != c {
-			return false
-		}
-	}
-	return true
-}
-
-// Lookup returns the atom whose name is s. It returns zero if there is no
-// such atom. The lookup is case sensitive.
-func Lookup(s []byte) Atom {
-	if len(s) == 0 || len(s) > maxAtomLen {
-		return 0
-	}
-	h := fnv(hash0, s)
-	if a := table[h&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) {
-		return a
-	}
-	if a := table[(h>>16)&uint32(len(table)-1)]; int(a&0xff) == len(s) && match(a.string(), s) {
-		return a
-	}
-	return 0
-}
-
-// String returns a string whose contents are equal to s. In that sense, it is
-// equivalent to string(s) but may be more efficient.
-func String(s []byte) string {
-	if a := Lookup(s); a != 0 {
-		return a.String()
-	}
-	return string(s)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/atom_test.go gcc-4.8.1/libgo/go/exp/html/atom/atom_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/atom_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/atom/atom_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,109 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package atom
-
-import (
-	"sort"
-	"testing"
-)
-
-func TestKnown(t *testing.T) {
-	for _, s := range testAtomList {
-		if atom := Lookup([]byte(s)); atom.String() != s {
-			t.Errorf("Lookup(%q) = %#x (%q)", s, uint32(atom), atom.String())
-		}
-	}
-}
-
-func TestHits(t *testing.T) {
-	for _, a := range table {
-		if a == 0 {
-			continue
-		}
-		got := Lookup([]byte(a.String()))
-		if got != a {
-			t.Errorf("Lookup(%q) = %#x, want %#x", a.String(), uint32(got), uint32(a))
-		}
-	}
-}
-
-func TestMisses(t *testing.T) {
-	testCases := []string{
-		"",
-		"\x00",
-		"\xff",
-		"A",
-		"DIV",
-		"Div",
-		"dIV",
-		"aa",
-		"a\x00",
-		"ab",
-		"abb",
-		"abbr0",
-		"abbr ",
-		" abbr",
-		" a",
-		"acceptcharset",
-		"acceptCharset",
-		"accept_charset",
-		"h0",
-		"h1h2",
-		"h7",
-		"onClick",
-		"Î»",
-		// The following string has the same hash (0xa1d7fab7) as "onmouseover".
-		"\x00\x00\x00\x00\x00\x50\x18\xae\x38\xd0\xb7",
-	}
-	for _, tc := range testCases {
-		got := Lookup([]byte(tc))
-		if got != 0 {
-			t.Errorf("Lookup(%q): got %d, want 0", tc, got)
-		}
-	}
-}
-
-func TestForeignObject(t *testing.T) {
-	const (
-		afo = Foreignobject
-		afO = ForeignObject
-		sfo = "foreignobject"
-		sfO = "foreignObject"
-	)
-	if got := Lookup([]byte(sfo)); got != afo {
-		t.Errorf("Lookup(%q): got %#v, want %#v", sfo, got, afo)
-	}
-	if got := Lookup([]byte(sfO)); got != afO {
-		t.Errorf("Lookup(%q): got %#v, want %#v", sfO, got, afO)
-	}
-	if got := afo.String(); got != sfo {
-		t.Errorf("Atom(%#v).String(): got %q, want %q", afo, got, sfo)
-	}
-	if got := afO.String(); got != sfO {
-		t.Errorf("Atom(%#v).String(): got %q, want %q", afO, got, sfO)
-	}
-}
-
-func BenchmarkLookup(b *testing.B) {
-	sortedTable := make([]string, 0, len(table))
-	for _, a := range table {
-		if a != 0 {
-			sortedTable = append(sortedTable, a.String())
-		}
-	}
-	sort.Strings(sortedTable)
-
-	x := make([][]byte, 1000)
-	for i := range x {
-		x[i] = []byte(sortedTable[i%len(sortedTable)])
-	}
-
-	b.ResetTimer()
-	for i := 0; i < b.N; i++ {
-		for _, s := range x {
-			Lookup(s)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/gen.go gcc-4.8.1/libgo/go/exp/html/atom/gen.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/gen.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/atom/gen.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,636 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-// This program generates table.go and table_test.go.
-// Invoke as
-//
-//	go run gen.go |gofmt >table.go
-//	go run gen.go -test |gofmt >table_test.go
-
-import (
-	"flag"
-	"fmt"
-	"math/rand"
-	"os"
-	"sort"
-	"strings"
-)
-
-// identifier converts s to a Go exported identifier.
-// It converts "div" to "Div" and "accept-charset" to "AcceptCharset".
-func identifier(s string) string {
-	b := make([]byte, 0, len(s))
-	cap := true
-	for _, c := range s {
-		if c == '-' {
-			cap = true
-			continue
-		}
-		if cap && 'a' <= c && c <= 'z' {
-			c -= 'a' - 'A'
-		}
-		cap = false
-		b = append(b, byte(c))
-	}
-	return string(b)
-}
-
-var test = flag.Bool("test", false, "generate table_test.go")
-
-func main() {
-	flag.Parse()
-
-	var all []string
-	all = append(all, elements...)
-	all = append(all, attributes...)
-	all = append(all, eventHandlers...)
-	all = append(all, extra...)
-	sort.Strings(all)
-
-	if *test {
-		fmt.Printf("// generated by go run gen.go -test; DO NOT EDIT\n\n")
-		fmt.Printf("package atom\n\n")
-		fmt.Printf("var testAtomList = []string{\n")
-		for _, s := range all {
-			fmt.Printf("\t%q,\n", s)
-		}
-		fmt.Printf("}\n")
-		return
-	}
-
-	// uniq - lists have dups
-	// compute max len too
-	maxLen := 0
-	w := 0
-	for _, s := range all {
-		if w == 0 || all[w-1] != s {
-			if maxLen < len(s) {
-				maxLen = len(s)
-			}
-			all[w] = s
-			w++
-		}
-	}
-	all = all[:w]
-
-	// Find hash that minimizes table size.
-	var best *table
-	for i := 0; i < 1000000; i++ {
-		if best != nil && 1<<(best.k-1) < len(all) {
-			break
-		}
-		h := rand.Uint32()
-		for k := uint(0); k <= 16; k++ {
-			if best != nil && k >= best.k {
-				break
-			}
-			var t table
-			if t.init(h, k, all) {
-				best = &t
-				break
-			}
-		}
-	}
-	if best == nil {
-		fmt.Fprintf(os.Stderr, "failed to construct string table\n")
-		os.Exit(1)
-	}
-
-	// Lay out strings, using overlaps when possible.
-	layout := append([]string{}, all...)
-
-	// Remove strings that are substrings of other strings
-	for changed := true; changed; {
-		changed = false
-		for i, s := range layout {
-			if s == "" {
-				continue
-			}
-			for j, t := range layout {
-				if i != j && t != "" && strings.Contains(s, t) {
-					changed = true
-					layout[j] = ""
-				}
-			}
-		}
-	}
-
-	// Join strings where one suffix matches another prefix.
-	for {
-		// Find best i, j, k such that layout[i][len-k:] == layout[j][:k],
-		// maximizing overlap length k.
-		besti := -1
-		bestj := -1
-		bestk := 0
-		for i, s := range layout {
-			if s == "" {
-				continue
-			}
-			for j, t := range layout {
-				if i == j {
-					continue
-				}
-				for k := bestk + 1; k <= len(s) && k <= len(t); k++ {
-					if s[len(s)-k:] == t[:k] {
-						besti = i
-						bestj = j
-						bestk = k
-					}
-				}
-			}
-		}
-		if bestk > 0 {
-			layout[besti] += layout[bestj][bestk:]
-			layout[bestj] = ""
-			continue
-		}
-		break
-	}
-
-	text := strings.Join(layout, "")
-
-	atom := map[string]uint32{}
-	for _, s := range all {
-		off := strings.Index(text, s)
-		if off < 0 {
-			panic("lost string " + s)
-		}
-		atom[s] = uint32(off<<8 | len(s))
-	}
-
-	// Generate the Go code.
-	fmt.Printf("// generated by go run gen.go; DO NOT EDIT\n\n")
-	fmt.Printf("package atom\n\nconst (\n")
-	for _, s := range all {
-		fmt.Printf("\t%s Atom = %#x\n", identifier(s), atom[s])
-	}
-	fmt.Printf(")\n\n")
-
-	fmt.Printf("const hash0 = %#x\n\n", best.h0)
-	fmt.Printf("const maxAtomLen = %d\n\n", maxLen)
-
-	fmt.Printf("var table = [1<<%d]Atom{\n", best.k)
-	for i, s := range best.tab {
-		if s == "" {
-			continue
-		}
-		fmt.Printf("\t%#x: %#x, // %s\n", i, atom[s], s)
-	}
-	fmt.Printf("}\n")
-	datasize := (1 << best.k) * 4
-
-	fmt.Printf("const atomText =\n")
-	textsize := len(text)
-	for len(text) > 60 {
-		fmt.Printf("\t%q +\n", text[:60])
-		text = text[60:]
-	}
-	fmt.Printf("\t%q\n\n", text)
-
-	fmt.Fprintf(os.Stderr, "%d atoms; %d string bytes + %d tables = %d total data\n", len(all), textsize, datasize, textsize+datasize)
-}
-
-type byLen []string
-
-func (x byLen) Less(i, j int) bool { return len(x[i]) > len(x[j]) }
-func (x byLen) Swap(i, j int)      { x[i], x[j] = x[j], x[i] }
-func (x byLen) Len() int           { return len(x) }
-
-// fnv computes the FNV hash with an arbitrary starting value h.
-func fnv(h uint32, s string) uint32 {
-	for i := 0; i < len(s); i++ {
-		h ^= uint32(s[i])
-		h *= 16777619
-	}
-	return h
-}
-
-// A table represents an attempt at constructing the lookup table.
-// The lookup table uses cuckoo hashing, meaning that each string
-// can be found in one of two positions.
-type table struct {
-	h0   uint32
-	k    uint
-	mask uint32
-	tab  []string
-}
-
-// hash returns the two hashes for s.
-func (t *table) hash(s string) (h1, h2 uint32) {
-	h := fnv(t.h0, s)
-	h1 = h & t.mask
-	h2 = (h >> 16) & t.mask
-	return
-}
-
-// init initializes the table with the given parameters.
-// h0 is the initial hash value,
-// k is the number of bits of hash value to use, and
-// x is the list of strings to store in the table.
-// init returns false if the table cannot be constructed.
-func (t *table) init(h0 uint32, k uint, x []string) bool {
-	t.h0 = h0
-	t.k = k
-	t.tab = make([]string, 1<<k)
-	t.mask = 1<<k - 1
-	for _, s := range x {
-		if !t.insert(s) {
-			return false
-		}
-	}
-	return true
-}
-
-// insert inserts s in the table.
-func (t *table) insert(s string) bool {
-	h1, h2 := t.hash(s)
-	if t.tab[h1] == "" {
-		t.tab[h1] = s
-		return true
-	}
-	if t.tab[h2] == "" {
-		t.tab[h2] = s
-		return true
-	}
-	if t.push(h1, 0) {
-		t.tab[h1] = s
-		return true
-	}
-	if t.push(h2, 0) {
-		t.tab[h2] = s
-		return true
-	}
-	return false
-}
-
-// push attempts to push aside the entry in slot i.
-func (t *table) push(i uint32, depth int) bool {
-	if depth > len(t.tab) {
-		return false
-	}
-	s := t.tab[i]
-	h1, h2 := t.hash(s)
-	j := h1 + h2 - i
-	if t.tab[j] != "" && !t.push(j, depth+1) {
-		return false
-	}
-	t.tab[j] = s
-	return true
-}
-
-// The lists of element names and attribute keys were taken from
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/section-index.html
-// as of the "HTML Living Standard - Last Updated 30 May 2012" version.
-
-var elements = []string{
-	"a",
-	"abbr",
-	"address",
-	"area",
-	"article",
-	"aside",
-	"audio",
-	"b",
-	"base",
-	"bdi",
-	"bdo",
-	"blockquote",
-	"body",
-	"br",
-	"button",
-	"canvas",
-	"caption",
-	"cite",
-	"code",
-	"col",
-	"colgroup",
-	"command",
-	"data",
-	"datalist",
-	"dd",
-	"del",
-	"details",
-	"dfn",
-	"dialog",
-	"div",
-	"dl",
-	"dt",
-	"em",
-	"embed",
-	"fieldset",
-	"figcaption",
-	"figure",
-	"footer",
-	"form",
-	"h1",
-	"h2",
-	"h3",
-	"h4",
-	"h5",
-	"h6",
-	"head",
-	"header",
-	"hgroup",
-	"hr",
-	"html",
-	"i",
-	"iframe",
-	"img",
-	"input",
-	"ins",
-	"kbd",
-	"keygen",
-	"label",
-	"legend",
-	"li",
-	"link",
-	"map",
-	"mark",
-	"menu",
-	"meta",
-	"meter",
-	"nav",
-	"noscript",
-	"object",
-	"ol",
-	"optgroup",
-	"option",
-	"output",
-	"p",
-	"param",
-	"pre",
-	"progress",
-	"q",
-	"rp",
-	"rt",
-	"ruby",
-	"s",
-	"samp",
-	"script",
-	"section",
-	"select",
-	"small",
-	"source",
-	"span",
-	"strong",
-	"style",
-	"sub",
-	"summary",
-	"sup",
-	"table",
-	"tbody",
-	"td",
-	"textarea",
-	"tfoot",
-	"th",
-	"thead",
-	"time",
-	"title",
-	"tr",
-	"track",
-	"u",
-	"ul",
-	"var",
-	"video",
-	"wbr",
-}
-
-var attributes = []string{
-	"accept",
-	"accept-charset",
-	"accesskey",
-	"action",
-	"alt",
-	"async",
-	"autocomplete",
-	"autofocus",
-	"autoplay",
-	"border",
-	"challenge",
-	"charset",
-	"checked",
-	"cite",
-	"class",
-	"cols",
-	"colspan",
-	"command",
-	"content",
-	"contenteditable",
-	"contextmenu",
-	"controls",
-	"coords",
-	"crossorigin",
-	"data",
-	"datetime",
-	"default",
-	"defer",
-	"dir",
-	"dirname",
-	"disabled",
-	"download",
-	"draggable",
-	"dropzone",
-	"enctype",
-	"for",
-	"form",
-	"formaction",
-	"formenctype",
-	"formmethod",
-	"formnovalidate",
-	"formtarget",
-	"headers",
-	"height",
-	"hidden",
-	"high",
-	"href",
-	"hreflang",
-	"http-equiv",
-	"icon",
-	"id",
-	"inert",
-	"ismap",
-	"itemid",
-	"itemprop",
-	"itemref",
-	"itemscope",
-	"itemtype",
-	"keytype",
-	"kind",
-	"label",
-	"lang",
-	"list",
-	"loop",
-	"low",
-	"manifest",
-	"max",
-	"maxlength",
-	"media",
-	"mediagroup",
-	"method",
-	"min",
-	"multiple",
-	"muted",
-	"name",
-	"novalidate",
-	"open",
-	"optimum",
-	"pattern",
-	"ping",
-	"placeholder",
-	"poster",
-	"preload",
-	"radiogroup",
-	"readonly",
-	"rel",
-	"required",
-	"reversed",
-	"rows",
-	"rowspan",
-	"sandbox",
-	"spellcheck",
-	"scope",
-	"scoped",
-	"seamless",
-	"selected",
-	"shape",
-	"size",
-	"sizes",
-	"span",
-	"src",
-	"srcdoc",
-	"srclang",
-	"start",
-	"step",
-	"style",
-	"tabindex",
-	"target",
-	"title",
-	"translate",
-	"type",
-	"typemustmatch",
-	"usemap",
-	"value",
-	"width",
-	"wrap",
-}
-
-var eventHandlers = []string{
-	"onabort",
-	"onafterprint",
-	"onbeforeprint",
-	"onbeforeunload",
-	"onblur",
-	"oncancel",
-	"oncanplay",
-	"oncanplaythrough",
-	"onchange",
-	"onclick",
-	"onclose",
-	"oncontextmenu",
-	"oncuechange",
-	"ondblclick",
-	"ondrag",
-	"ondragend",
-	"ondragenter",
-	"ondragleave",
-	"ondragover",
-	"ondragstart",
-	"ondrop",
-	"ondurationchange",
-	"onemptied",
-	"onended",
-	"onerror",
-	"onfocus",
-	"onhashchange",
-	"oninput",
-	"oninvalid",
-	"onkeydown",
-	"onkeypress",
-	"onkeyup",
-	"onload",
-	"onloadeddata",
-	"onloadedmetadata",
-	"onloadstart",
-	"onmessage",
-	"onmousedown",
-	"onmousemove",
-	"onmouseout",
-	"onmouseover",
-	"onmouseup",
-	"onmousewheel",
-	"onoffline",
-	"ononline",
-	"onpagehide",
-	"onpageshow",
-	"onpause",
-	"onplay",
-	"onplaying",
-	"onpopstate",
-	"onprogress",
-	"onratechange",
-	"onreset",
-	"onresize",
-	"onscroll",
-	"onseeked",
-	"onseeking",
-	"onselect",
-	"onshow",
-	"onstalled",
-	"onstorage",
-	"onsubmit",
-	"onsuspend",
-	"ontimeupdate",
-	"onunload",
-	"onvolumechange",
-	"onwaiting",
-}
-
-// extra are ad-hoc values not covered by any of the lists above.
-var extra = []string{
-	"align",
-	"annotation",
-	"annotation-xml",
-	"applet",
-	"basefont",
-	"bgsound",
-	"big",
-	"blink",
-	"center",
-	"color",
-	"desc",
-	"face",
-	"font",
-	"foreignObject", // HTML is case-insensitive, but SVG-embedded-in-HTML is case-sensitive.
-	"foreignobject",
-	"frame",
-	"frameset",
-	"image",
-	"isindex",
-	"listing",
-	"malignmark",
-	"marquee",
-	"math",
-	"mglyph",
-	"mi",
-	"mn",
-	"mo",
-	"ms",
-	"mtext",
-	"nobr",
-	"noembed",
-	"noframes",
-	"plaintext",
-	"prompt",
-	"public",
-	"spacer",
-	"strike",
-	"svg",
-	"system",
-	"tt",
-	"xmp",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/table.go gcc-4.8.1/libgo/go/exp/html/atom/table.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/table.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/atom/table.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,694 +0,0 @@
-// generated by go run gen.go; DO NOT EDIT
-
-package atom
-
-const (
-	A                Atom = 0x1
-	Abbr             Atom = 0x4
-	Accept           Atom = 0x2106
-	AcceptCharset    Atom = 0x210e
-	Accesskey        Atom = 0x3309
-	Action           Atom = 0x21b06
-	Address          Atom = 0x5d507
-	Align            Atom = 0x1105
-	Alt              Atom = 0x4503
-	Annotation       Atom = 0x18d0a
-	AnnotationXml    Atom = 0x18d0e
-	Applet           Atom = 0x2d106
-	Area             Atom = 0x31804
-	Article          Atom = 0x39907
-	Aside            Atom = 0x4f05
-	Async            Atom = 0x9305
-	Audio            Atom = 0xaf05
-	Autocomplete     Atom = 0xd50c
-	Autofocus        Atom = 0xe109
-	Autoplay         Atom = 0x10c08
-	B                Atom = 0x101
-	Base             Atom = 0x11404
-	Basefont         Atom = 0x11408
-	Bdi              Atom = 0x1a03
-	Bdo              Atom = 0x12503
-	Bgsound          Atom = 0x13807
-	Big              Atom = 0x14403
-	Blink            Atom = 0x14705
-	Blockquote       Atom = 0x14c0a
-	Body             Atom = 0x2f04
-	Border           Atom = 0x15606
-	Br               Atom = 0x202
-	Button           Atom = 0x15c06
-	Canvas           Atom = 0x4b06
-	Caption          Atom = 0x1e007
-	Center           Atom = 0x2df06
-	Challenge        Atom = 0x23e09
-	Charset          Atom = 0x2807
-	Checked          Atom = 0x33f07
-	Cite             Atom = 0x9704
-	Class            Atom = 0x3d905
-	Code             Atom = 0x16f04
-	Col              Atom = 0x17603
-	Colgroup         Atom = 0x17608
-	Color            Atom = 0x18305
-	Cols             Atom = 0x18804
-	Colspan          Atom = 0x18807
-	Command          Atom = 0x19b07
-	Content          Atom = 0x42c07
-	Contenteditable  Atom = 0x42c0f
-	Contextmenu      Atom = 0x3480b
-	Controls         Atom = 0x1ae08
-	Coords           Atom = 0x1ba06
-	Crossorigin      Atom = 0x1c40b
-	Data             Atom = 0x44304
-	Datalist         Atom = 0x44308
-	Datetime         Atom = 0x25b08
-	Dd               Atom = 0x28802
-	Default          Atom = 0x5207
-	Defer            Atom = 0x17105
-	Del              Atom = 0x4d603
-	Desc             Atom = 0x4804
-	Details          Atom = 0x6507
-	Dfn              Atom = 0x8303
-	Dialog           Atom = 0x1b06
-	Dir              Atom = 0x9d03
-	Dirname          Atom = 0x9d07
-	Disabled         Atom = 0x10008
-	Div              Atom = 0x10703
-	Dl               Atom = 0x13e02
-	Download         Atom = 0x40908
-	Draggable        Atom = 0x1a109
-	Dropzone         Atom = 0x3a208
-	Dt               Atom = 0x4e402
-	Em               Atom = 0x7f02
-	Embed            Atom = 0x7f05
-	Enctype          Atom = 0x23007
-	Face             Atom = 0x2dd04
-	Fieldset         Atom = 0x1d508
-	Figcaption       Atom = 0x1dd0a
-	Figure           Atom = 0x1f106
-	Font             Atom = 0x11804
-	Footer           Atom = 0x5906
-	For              Atom = 0x1fd03
-	ForeignObject    Atom = 0x1fd0d
-	Foreignobject    Atom = 0x20a0d
-	Form             Atom = 0x21704
-	Formaction       Atom = 0x2170a
-	Formenctype      Atom = 0x22c0b
-	Formmethod       Atom = 0x2470a
-	Formnovalidate   Atom = 0x2510e
-	Formtarget       Atom = 0x2660a
-	Frame            Atom = 0x8705
-	Frameset         Atom = 0x8708
-	H1               Atom = 0x13602
-	H2               Atom = 0x29602
-	H3               Atom = 0x2c502
-	H4               Atom = 0x30e02
-	H5               Atom = 0x4e602
-	H6               Atom = 0x27002
-	Head             Atom = 0x2fa04
-	Header           Atom = 0x2fa06
-	Headers          Atom = 0x2fa07
-	Height           Atom = 0x27206
-	Hgroup           Atom = 0x27a06
-	Hidden           Atom = 0x28606
-	High             Atom = 0x29304
-	Hr               Atom = 0x13102
-	Href             Atom = 0x29804
-	Hreflang         Atom = 0x29808
-	Html             Atom = 0x27604
-	HttpEquiv        Atom = 0x2a00a
-	I                Atom = 0x601
-	Icon             Atom = 0x42b04
-	Id               Atom = 0x5102
-	Iframe           Atom = 0x2b406
-	Image            Atom = 0x2ba05
-	Img              Atom = 0x2bf03
-	Inert            Atom = 0x4c105
-	Input            Atom = 0x3f605
-	Ins              Atom = 0x1cd03
-	Isindex          Atom = 0x2c707
-	Ismap            Atom = 0x2ce05
-	Itemid           Atom = 0x9806
-	Itemprop         Atom = 0x57e08
-	Itemref          Atom = 0x2d707
-	Itemscope        Atom = 0x2e509
-	Itemtype         Atom = 0x2ef08
-	Kbd              Atom = 0x1903
-	Keygen           Atom = 0x3906
-	Keytype          Atom = 0x51207
-	Kind             Atom = 0xfd04
-	Label            Atom = 0xba05
-	Lang             Atom = 0x29c04
-	Legend           Atom = 0x1a806
-	Li               Atom = 0x1202
-	Link             Atom = 0x14804
-	List             Atom = 0x44704
-	Listing          Atom = 0x44707
-	Loop             Atom = 0xbe04
-	Low              Atom = 0x13f03
-	Malignmark       Atom = 0x100a
-	Manifest         Atom = 0x5b608
-	Map              Atom = 0x2d003
-	Mark             Atom = 0x1604
-	Marquee          Atom = 0x5f207
-	Math             Atom = 0x2f704
-	Max              Atom = 0x30603
-	Maxlength        Atom = 0x30609
-	Media            Atom = 0xa205
-	Mediagroup       Atom = 0xa20a
-	Menu             Atom = 0x34f04
-	Meta             Atom = 0x45604
-	Meter            Atom = 0x26105
-	Method           Atom = 0x24b06
-	Mglyph           Atom = 0x2c006
-	Mi               Atom = 0x9b02
-	Min              Atom = 0x31003
-	Mn               Atom = 0x25402
-	Mo               Atom = 0x47a02
-	Ms               Atom = 0x2e802
-	Mtext            Atom = 0x31305
-	Multiple         Atom = 0x32108
-	Muted            Atom = 0x32905
-	Name             Atom = 0xa004
-	Nav              Atom = 0x3e03
-	Nobr             Atom = 0x7404
-	Noembed          Atom = 0x7d07
-	Noframes         Atom = 0x8508
-	Noscript         Atom = 0x28b08
-	Novalidate       Atom = 0x2550a
-	Object           Atom = 0x21106
-	Ol               Atom = 0xcd02
-	Onabort          Atom = 0x16007
-	Onafterprint     Atom = 0x1e50c
-	Onbeforeprint    Atom = 0x21f0d
-	Onbeforeunload   Atom = 0x5c90e
-	Onblur           Atom = 0x3e206
-	Oncancel         Atom = 0xb308
-	Oncanplay        Atom = 0x12709
-	Oncanplaythrough Atom = 0x12710
-	Onchange         Atom = 0x3b808
-	Onclick          Atom = 0x2ad07
-	Onclose          Atom = 0x32e07
-	Oncontextmenu    Atom = 0x3460d
-	Oncuechange      Atom = 0x3530b
-	Ondblclick       Atom = 0x35e0a
-	Ondrag           Atom = 0x36806
-	Ondragend        Atom = 0x36809
-	Ondragenter      Atom = 0x3710b
-	Ondragleave      Atom = 0x37c0b
-	Ondragover       Atom = 0x3870a
-	Ondragstart      Atom = 0x3910b
-	Ondrop           Atom = 0x3a006
-	Ondurationchange Atom = 0x3b010
-	Onemptied        Atom = 0x3a709
-	Onended          Atom = 0x3c007
-	Onerror          Atom = 0x3c707
-	Onfocus          Atom = 0x3ce07
-	Onhashchange     Atom = 0x3e80c
-	Oninput          Atom = 0x3f407
-	Oninvalid        Atom = 0x3fb09
-	Onkeydown        Atom = 0x40409
-	Onkeypress       Atom = 0x4110a
-	Onkeyup          Atom = 0x42107
-	Onload           Atom = 0x43b06
-	Onloadeddata     Atom = 0x43b0c
-	Onloadedmetadata Atom = 0x44e10
-	Onloadstart      Atom = 0x4640b
-	Onmessage        Atom = 0x46f09
-	Onmousedown      Atom = 0x4780b
-	Onmousemove      Atom = 0x4830b
-	Onmouseout       Atom = 0x48e0a
-	Onmouseover      Atom = 0x49b0b
-	Onmouseup        Atom = 0x4a609
-	Onmousewheel     Atom = 0x4af0c
-	Onoffline        Atom = 0x4bb09
-	Ononline         Atom = 0x4c608
-	Onpagehide       Atom = 0x4ce0a
-	Onpageshow       Atom = 0x4d90a
-	Onpause          Atom = 0x4e807
-	Onplay           Atom = 0x4f206
-	Onplaying        Atom = 0x4f209
-	Onpopstate       Atom = 0x4fb0a
-	Onprogress       Atom = 0x5050a
-	Onratechange     Atom = 0x5190c
-	Onreset          Atom = 0x52507
-	Onresize         Atom = 0x52c08
-	Onscroll         Atom = 0x53a08
-	Onseeked         Atom = 0x54208
-	Onseeking        Atom = 0x54a09
-	Onselect         Atom = 0x55308
-	Onshow           Atom = 0x55d06
-	Onstalled        Atom = 0x56609
-	Onstorage        Atom = 0x56f09
-	Onsubmit         Atom = 0x57808
-	Onsuspend        Atom = 0x58809
-	Ontimeupdate     Atom = 0x1190c
-	Onunload         Atom = 0x59108
-	Onvolumechange   Atom = 0x5990e
-	Onwaiting        Atom = 0x5a709
-	Open             Atom = 0x58404
-	Optgroup         Atom = 0xc008
-	Optimum          Atom = 0x5b007
-	Option           Atom = 0x5c506
-	Output           Atom = 0x49506
-	P                Atom = 0xc01
-	Param            Atom = 0xc05
-	Pattern          Atom = 0x6e07
-	Ping             Atom = 0xab04
-	Placeholder      Atom = 0xc70b
-	Plaintext        Atom = 0xf109
-	Poster           Atom = 0x17d06
-	Pre              Atom = 0x27f03
-	Preload          Atom = 0x27f07
-	Progress         Atom = 0x50708
-	Prompt           Atom = 0x5bf06
-	Public           Atom = 0x42706
-	Q                Atom = 0x15101
-	Radiogroup       Atom = 0x30a
-	Readonly         Atom = 0x31908
-	Rel              Atom = 0x28003
-	Required         Atom = 0x1f508
-	Reversed         Atom = 0x5e08
-	Rows             Atom = 0x7704
-	Rowspan          Atom = 0x7707
-	Rp               Atom = 0x1eb02
-	Rt               Atom = 0x16502
-	Ruby             Atom = 0xd104
-	S                Atom = 0x2c01
-	Samp             Atom = 0x6b04
-	Sandbox          Atom = 0xe907
-	Scope            Atom = 0x2e905
-	Scoped           Atom = 0x2e906
-	Script           Atom = 0x28d06
-	Seamless         Atom = 0x33308
-	Section          Atom = 0x3dd07
-	Select           Atom = 0x55506
-	Selected         Atom = 0x55508
-	Shape            Atom = 0x1b505
-	Size             Atom = 0x53004
-	Sizes            Atom = 0x53005
-	Small            Atom = 0x1bf05
-	Source           Atom = 0x1cf06
-	Spacer           Atom = 0x30006
-	Span             Atom = 0x7a04
-	Spellcheck       Atom = 0x33a0a
-	Src              Atom = 0x3d403
-	Srcdoc           Atom = 0x3d406
-	Srclang          Atom = 0x41a07
-	Start            Atom = 0x39705
-	Step             Atom = 0x5bc04
-	Strike           Atom = 0x50e06
-	Strong           Atom = 0x53406
-	Style            Atom = 0x5db05
-	Sub              Atom = 0x57a03
-	Summary          Atom = 0x5e007
-	Sup              Atom = 0x5e703
-	Svg              Atom = 0x5ea03
-	System           Atom = 0x5ed06
-	Tabindex         Atom = 0x45c08
-	Table            Atom = 0x43605
-	Target           Atom = 0x26a06
-	Tbody            Atom = 0x2e05
-	Td               Atom = 0x4702
-	Textarea         Atom = 0x31408
-	Tfoot            Atom = 0x5805
-	Th               Atom = 0x13002
-	Thead            Atom = 0x2f905
-	Time             Atom = 0x11b04
-	Title            Atom = 0x8e05
-	Tr               Atom = 0xf902
-	Track            Atom = 0xf905
-	Translate        Atom = 0x16609
-	Tt               Atom = 0x7002
-	Type             Atom = 0x23304
-	Typemustmatch    Atom = 0x2330d
-	U                Atom = 0xb01
-	Ul               Atom = 0x5602
-	Usemap           Atom = 0x4ec06
-	Value            Atom = 0x4005
-	Var              Atom = 0x10903
-	Video            Atom = 0x2a905
-	Wbr              Atom = 0x14103
-	Width            Atom = 0x4e205
-	Wrap             Atom = 0x56204
-	Xmp              Atom = 0xef03
-)
-
-const hash0 = 0xc17da63e
-
-const maxAtomLen = 16
-
-var table = [1 << 9]Atom{
-	0x1:   0x4830b, // onmousemove
-	0x2:   0x5a709, // onwaiting
-	0x4:   0x5bf06, // prompt
-	0x7:   0x5b007, // optimum
-	0x8:   0x1604,  // mark
-	0xa:   0x2d707, // itemref
-	0xb:   0x4d90a, // onpageshow
-	0xc:   0x55506, // select
-	0xd:   0x1a109, // draggable
-	0xe:   0x3e03,  // nav
-	0xf:   0x19b07, // command
-	0x11:  0xb01,   // u
-	0x14:  0x2fa07, // headers
-	0x15:  0x44308, // datalist
-	0x17:  0x6b04,  // samp
-	0x1a:  0x40409, // onkeydown
-	0x1b:  0x53a08, // onscroll
-	0x1c:  0x17603, // col
-	0x20:  0x57e08, // itemprop
-	0x21:  0x2a00a, // http-equiv
-	0x22:  0x5e703, // sup
-	0x24:  0x1f508, // required
-	0x2b:  0x27f07, // preload
-	0x2c:  0x21f0d, // onbeforeprint
-	0x2d:  0x3710b, // ondragenter
-	0x2e:  0x4e402, // dt
-	0x2f:  0x57808, // onsubmit
-	0x30:  0x13102, // hr
-	0x31:  0x3460d, // oncontextmenu
-	0x33:  0x2ba05, // image
-	0x34:  0x4e807, // onpause
-	0x35:  0x27a06, // hgroup
-	0x36:  0xab04,  // ping
-	0x37:  0x55308, // onselect
-	0x3a:  0x10703, // div
-	0x40:  0x9b02,  // mi
-	0x41:  0x33308, // seamless
-	0x42:  0x2807,  // charset
-	0x43:  0x5102,  // id
-	0x44:  0x4fb0a, // onpopstate
-	0x45:  0x4d603, // del
-	0x46:  0x5f207, // marquee
-	0x47:  0x3309,  // accesskey
-	0x49:  0x5906,  // footer
-	0x4a:  0x2d106, // applet
-	0x4b:  0x2ce05, // ismap
-	0x51:  0x34f04, // menu
-	0x52:  0x2f04,  // body
-	0x55:  0x8708,  // frameset
-	0x56:  0x52507, // onreset
-	0x57:  0x14705, // blink
-	0x58:  0x8e05,  // title
-	0x59:  0x39907, // article
-	0x5b:  0x13002, // th
-	0x5d:  0x15101, // q
-	0x5e:  0x58404, // open
-	0x5f:  0x31804, // area
-	0x61:  0x43b06, // onload
-	0x62:  0x3f605, // input
-	0x63:  0x11404, // base
-	0x64:  0x18807, // colspan
-	0x65:  0x51207, // keytype
-	0x66:  0x13e02, // dl
-	0x68:  0x1d508, // fieldset
-	0x6a:  0x31003, // min
-	0x6b:  0x10903, // var
-	0x6f:  0x2fa06, // header
-	0x70:  0x16502, // rt
-	0x71:  0x17608, // colgroup
-	0x72:  0x25402, // mn
-	0x74:  0x16007, // onabort
-	0x75:  0x3906,  // keygen
-	0x76:  0x4bb09, // onoffline
-	0x77:  0x23e09, // challenge
-	0x78:  0x2d003, // map
-	0x7a:  0x30e02, // h4
-	0x7b:  0x3c707, // onerror
-	0x7c:  0x30609, // maxlength
-	0x7d:  0x31305, // mtext
-	0x7e:  0x5805,  // tfoot
-	0x7f:  0x11804, // font
-	0x80:  0x100a,  // malignmark
-	0x81:  0x45604, // meta
-	0x82:  0x9305,  // async
-	0x83:  0x2c502, // h3
-	0x84:  0x28802, // dd
-	0x85:  0x29804, // href
-	0x86:  0xa20a,  // mediagroup
-	0x87:  0x1ba06, // coords
-	0x88:  0x41a07, // srclang
-	0x89:  0x35e0a, // ondblclick
-	0x8a:  0x4005,  // value
-	0x8c:  0xb308,  // oncancel
-	0x8e:  0x33a0a, // spellcheck
-	0x8f:  0x8705,  // frame
-	0x91:  0x14403, // big
-	0x94:  0x21b06, // action
-	0x95:  0x9d03,  // dir
-	0x97:  0x31908, // readonly
-	0x99:  0x43605, // table
-	0x9a:  0x5e007, // summary
-	0x9b:  0x14103, // wbr
-	0x9c:  0x30a,   // radiogroup
-	0x9d:  0xa004,  // name
-	0x9f:  0x5ed06, // system
-	0xa1:  0x18305, // color
-	0xa2:  0x4b06,  // canvas
-	0xa3:  0x27604, // html
-	0xa5:  0x54a09, // onseeking
-	0xac:  0x1b505, // shape
-	0xad:  0x28003, // rel
-	0xae:  0x12710, // oncanplaythrough
-	0xaf:  0x3870a, // ondragover
-	0xb1:  0x1fd0d, // foreignObject
-	0xb3:  0x7704,  // rows
-	0xb6:  0x44707, // listing
-	0xb7:  0x49506, // output
-	0xb9:  0x3480b, // contextmenu
-	0xbb:  0x13f03, // low
-	0xbc:  0x1eb02, // rp
-	0xbd:  0x58809, // onsuspend
-	0xbe:  0x15c06, // button
-	0xbf:  0x4804,  // desc
-	0xc1:  0x3dd07, // section
-	0xc2:  0x5050a, // onprogress
-	0xc3:  0x56f09, // onstorage
-	0xc4:  0x2f704, // math
-	0xc5:  0x4f206, // onplay
-	0xc7:  0x5602,  // ul
-	0xc8:  0x6e07,  // pattern
-	0xc9:  0x4af0c, // onmousewheel
-	0xca:  0x36809, // ondragend
-	0xcb:  0xd104,  // ruby
-	0xcc:  0xc01,   // p
-	0xcd:  0x32e07, // onclose
-	0xce:  0x26105, // meter
-	0xcf:  0x13807, // bgsound
-	0xd2:  0x27206, // height
-	0xd4:  0x101,   // b
-	0xd5:  0x2ef08, // itemtype
-	0xd8:  0x1e007, // caption
-	0xd9:  0x10008, // disabled
-	0xdc:  0x5ea03, // svg
-	0xdd:  0x1bf05, // small
-	0xde:  0x44304, // data
-	0xe0:  0x4c608, // ononline
-	0xe1:  0x2c006, // mglyph
-	0xe3:  0x7f05,  // embed
-	0xe4:  0xf902,  // tr
-	0xe5:  0x4640b, // onloadstart
-	0xe7:  0x3b010, // ondurationchange
-	0xed:  0x12503, // bdo
-	0xee:  0x4702,  // td
-	0xef:  0x4f05,  // aside
-	0xf0:  0x29602, // h2
-	0xf1:  0x50708, // progress
-	0xf2:  0x14c0a, // blockquote
-	0xf4:  0xba05,  // label
-	0xf5:  0x601,   // i
-	0xf7:  0x7707,  // rowspan
-	0xfb:  0x4f209, // onplaying
-	0xfd:  0x2bf03, // img
-	0xfe:  0xc008,  // optgroup
-	0xff:  0x42c07, // content
-	0x101: 0x5190c, // onratechange
-	0x103: 0x3e80c, // onhashchange
-	0x104: 0x6507,  // details
-	0x106: 0x40908, // download
-	0x109: 0xe907,  // sandbox
-	0x10b: 0x42c0f, // contenteditable
-	0x10d: 0x37c0b, // ondragleave
-	0x10e: 0x2106,  // accept
-	0x10f: 0x55508, // selected
-	0x112: 0x2170a, // formaction
-	0x113: 0x2df06, // center
-	0x115: 0x44e10, // onloadedmetadata
-	0x116: 0x14804, // link
-	0x117: 0x11b04, // time
-	0x118: 0x1c40b, // crossorigin
-	0x119: 0x3ce07, // onfocus
-	0x11a: 0x56204, // wrap
-	0x11b: 0x42b04, // icon
-	0x11d: 0x2a905, // video
-	0x11e: 0x3d905, // class
-	0x121: 0x5990e, // onvolumechange
-	0x122: 0x3e206, // onblur
-	0x123: 0x2e509, // itemscope
-	0x124: 0x5db05, // style
-	0x127: 0x42706, // public
-	0x129: 0x2510e, // formnovalidate
-	0x12a: 0x55d06, // onshow
-	0x12c: 0x16609, // translate
-	0x12d: 0x9704,  // cite
-	0x12e: 0x2e802, // ms
-	0x12f: 0x1190c, // ontimeupdate
-	0x130: 0xfd04,  // kind
-	0x131: 0x2660a, // formtarget
-	0x135: 0x3c007, // onended
-	0x136: 0x28606, // hidden
-	0x137: 0x2c01,  // s
-	0x139: 0x2470a, // formmethod
-	0x13a: 0x44704, // list
-	0x13c: 0x27002, // h6
-	0x13d: 0xcd02,  // ol
-	0x13e: 0x3530b, // oncuechange
-	0x13f: 0x20a0d, // foreignobject
-	0x143: 0x5c90e, // onbeforeunload
-	0x145: 0x3a709, // onemptied
-	0x146: 0x17105, // defer
-	0x147: 0xef03,  // xmp
-	0x148: 0xaf05,  // audio
-	0x149: 0x1903,  // kbd
-	0x14c: 0x46f09, // onmessage
-	0x14d: 0x5c506, // option
-	0x14e: 0x4503,  // alt
-	0x14f: 0x33f07, // checked
-	0x150: 0x10c08, // autoplay
-	0x152: 0x202,   // br
-	0x153: 0x2550a, // novalidate
-	0x156: 0x7d07,  // noembed
-	0x159: 0x2ad07, // onclick
-	0x15a: 0x4780b, // onmousedown
-	0x15b: 0x3b808, // onchange
-	0x15e: 0x3fb09, // oninvalid
-	0x15f: 0x2e906, // scoped
-	0x160: 0x1ae08, // controls
-	0x161: 0x32905, // muted
-	0x163: 0x4ec06, // usemap
-	0x164: 0x1dd0a, // figcaption
-	0x165: 0x36806, // ondrag
-	0x166: 0x29304, // high
-	0x168: 0x3d403, // src
-	0x169: 0x17d06, // poster
-	0x16b: 0x18d0e, // annotation-xml
-	0x16c: 0x5bc04, // step
-	0x16d: 0x4,     // abbr
-	0x16e: 0x1b06,  // dialog
-	0x170: 0x1202,  // li
-	0x172: 0x47a02, // mo
-	0x175: 0x1fd03, // for
-	0x176: 0x1cd03, // ins
-	0x178: 0x53004, // size
-	0x17a: 0x5207,  // default
-	0x17b: 0x1a03,  // bdi
-	0x17c: 0x4ce0a, // onpagehide
-	0x17d: 0x9d07,  // dirname
-	0x17e: 0x23304, // type
-	0x17f: 0x21704, // form
-	0x180: 0x4c105, // inert
-	0x181: 0x12709, // oncanplay
-	0x182: 0x8303,  // dfn
-	0x183: 0x45c08, // tabindex
-	0x186: 0x7f02,  // em
-	0x187: 0x29c04, // lang
-	0x189: 0x3a208, // dropzone
-	0x18a: 0x4110a, // onkeypress
-	0x18b: 0x25b08, // datetime
-	0x18c: 0x18804, // cols
-	0x18d: 0x1,     // a
-	0x18e: 0x43b0c, // onloadeddata
-	0x191: 0x15606, // border
-	0x192: 0x2e05,  // tbody
-	0x193: 0x24b06, // method
-	0x195: 0xbe04,  // loop
-	0x196: 0x2b406, // iframe
-	0x198: 0x2fa04, // head
-	0x19e: 0x5b608, // manifest
-	0x19f: 0xe109,  // autofocus
-	0x1a0: 0x16f04, // code
-	0x1a1: 0x53406, // strong
-	0x1a2: 0x32108, // multiple
-	0x1a3: 0xc05,   // param
-	0x1a6: 0x23007, // enctype
-	0x1a7: 0x2dd04, // face
-	0x1a8: 0xf109,  // plaintext
-	0x1a9: 0x13602, // h1
-	0x1aa: 0x56609, // onstalled
-	0x1ad: 0x28d06, // script
-	0x1ae: 0x30006, // spacer
-	0x1af: 0x52c08, // onresize
-	0x1b0: 0x49b0b, // onmouseover
-	0x1b1: 0x59108, // onunload
-	0x1b2: 0x54208, // onseeked
-	0x1b4: 0x2330d, // typemustmatch
-	0x1b5: 0x1f106, // figure
-	0x1b6: 0x48e0a, // onmouseout
-	0x1b7: 0x27f03, // pre
-	0x1b8: 0x4e205, // width
-	0x1bb: 0x7404,  // nobr
-	0x1be: 0x7002,  // tt
-	0x1bf: 0x1105,  // align
-	0x1c0: 0x3f407, // oninput
-	0x1c3: 0x42107, // onkeyup
-	0x1c6: 0x1e50c, // onafterprint
-	0x1c7: 0x210e,  // accept-charset
-	0x1c8: 0x9806,  // itemid
-	0x1cb: 0x50e06, // strike
-	0x1cc: 0x57a03, // sub
-	0x1cd: 0xf905,  // track
-	0x1ce: 0x39705, // start
-	0x1d0: 0x11408, // basefont
-	0x1d6: 0x1cf06, // source
-	0x1d7: 0x1a806, // legend
-	0x1d8: 0x2f905, // thead
-	0x1da: 0x2e905, // scope
-	0x1dd: 0x21106, // object
-	0x1de: 0xa205,  // media
-	0x1df: 0x18d0a, // annotation
-	0x1e0: 0x22c0b, // formenctype
-	0x1e2: 0x28b08, // noscript
-	0x1e4: 0x53005, // sizes
-	0x1e5: 0xd50c,  // autocomplete
-	0x1e6: 0x7a04,  // span
-	0x1e7: 0x8508,  // noframes
-	0x1e8: 0x26a06, // target
-	0x1e9: 0x3a006, // ondrop
-	0x1ea: 0x3d406, // srcdoc
-	0x1ec: 0x5e08,  // reversed
-	0x1f0: 0x2c707, // isindex
-	0x1f3: 0x29808, // hreflang
-	0x1f5: 0x4e602, // h5
-	0x1f6: 0x5d507, // address
-	0x1fa: 0x30603, // max
-	0x1fb: 0xc70b,  // placeholder
-	0x1fc: 0x31408, // textarea
-	0x1fe: 0x4a609, // onmouseup
-	0x1ff: 0x3910b, // ondragstart
-}
-
-const atomText = "abbradiogrouparamalignmarkbdialogaccept-charsetbodyaccesskey" +
-	"genavaluealtdescanvasidefaultfootereversedetailsampatternobr" +
-	"owspanoembedfnoframesetitleasyncitemidirnamediagroupingaudio" +
-	"ncancelabelooptgrouplaceholderubyautocompleteautofocusandbox" +
-	"mplaintextrackindisabledivarautoplaybasefontimeupdatebdoncan" +
-	"playthrough1bgsoundlowbrbigblinkblockquoteborderbuttonabortr" +
-	"anslatecodefercolgroupostercolorcolspannotation-xmlcommandra" +
-	"ggablegendcontrolshapecoordsmallcrossoriginsourcefieldsetfig" +
-	"captionafterprintfigurequiredforeignObjectforeignobjectforma" +
-	"ctionbeforeprintformenctypemustmatchallengeformmethodformnov" +
-	"alidatetimeterformtargeth6heightmlhgroupreloadhiddenoscripth" +
-	"igh2hreflanghttp-equivideonclickiframeimageimglyph3isindexis" +
-	"mappletitemrefacenteritemscopeditemtypematheaderspacermaxlen" +
-	"gth4minmtextareadonlymultiplemutedoncloseamlesspellcheckedon" +
-	"contextmenuoncuechangeondblclickondragendondragenterondragle" +
-	"aveondragoverondragstarticleondropzonemptiedondurationchange" +
-	"onendedonerroronfocusrcdoclassectionbluronhashchangeoninputo" +
-	"ninvalidonkeydownloadonkeypressrclangonkeyupublicontentedita" +
-	"bleonloadeddatalistingonloadedmetadatabindexonloadstartonmes" +
-	"sageonmousedownonmousemoveonmouseoutputonmouseoveronmouseupo" +
-	"nmousewheelonofflinertononlineonpagehidelonpageshowidth5onpa" +
-	"usemaponplayingonpopstateonprogresstrikeytypeonratechangeonr" +
-	"esetonresizestrongonscrollonseekedonseekingonselectedonshowr" +
-	"aponstalledonstorageonsubmitempropenonsuspendonunloadonvolum" +
-	"echangeonwaitingoptimumanifestepromptoptionbeforeunloaddress" +
-	"tylesummarysupsvgsystemarquee"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/atom/table_test.go gcc-4.8.1/libgo/go/exp/html/atom/table_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/atom/table_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/atom/table_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,341 +0,0 @@
-// generated by go run gen.go -test; DO NOT EDIT
-
-package atom
-
-var testAtomList = []string{
-	"a",
-	"abbr",
-	"accept",
-	"accept-charset",
-	"accesskey",
-	"action",
-	"address",
-	"align",
-	"alt",
-	"annotation",
-	"annotation-xml",
-	"applet",
-	"area",
-	"article",
-	"aside",
-	"async",
-	"audio",
-	"autocomplete",
-	"autofocus",
-	"autoplay",
-	"b",
-	"base",
-	"basefont",
-	"bdi",
-	"bdo",
-	"bgsound",
-	"big",
-	"blink",
-	"blockquote",
-	"body",
-	"border",
-	"br",
-	"button",
-	"canvas",
-	"caption",
-	"center",
-	"challenge",
-	"charset",
-	"checked",
-	"cite",
-	"cite",
-	"class",
-	"code",
-	"col",
-	"colgroup",
-	"color",
-	"cols",
-	"colspan",
-	"command",
-	"command",
-	"content",
-	"contenteditable",
-	"contextmenu",
-	"controls",
-	"coords",
-	"crossorigin",
-	"data",
-	"data",
-	"datalist",
-	"datetime",
-	"dd",
-	"default",
-	"defer",
-	"del",
-	"desc",
-	"details",
-	"dfn",
-	"dialog",
-	"dir",
-	"dirname",
-	"disabled",
-	"div",
-	"dl",
-	"download",
-	"draggable",
-	"dropzone",
-	"dt",
-	"em",
-	"embed",
-	"enctype",
-	"face",
-	"fieldset",
-	"figcaption",
-	"figure",
-	"font",
-	"footer",
-	"for",
-	"foreignObject",
-	"foreignobject",
-	"form",
-	"form",
-	"formaction",
-	"formenctype",
-	"formmethod",
-	"formnovalidate",
-	"formtarget",
-	"frame",
-	"frameset",
-	"h1",
-	"h2",
-	"h3",
-	"h4",
-	"h5",
-	"h6",
-	"head",
-	"header",
-	"headers",
-	"height",
-	"hgroup",
-	"hidden",
-	"high",
-	"hr",
-	"href",
-	"hreflang",
-	"html",
-	"http-equiv",
-	"i",
-	"icon",
-	"id",
-	"iframe",
-	"image",
-	"img",
-	"inert",
-	"input",
-	"ins",
-	"isindex",
-	"ismap",
-	"itemid",
-	"itemprop",
-	"itemref",
-	"itemscope",
-	"itemtype",
-	"kbd",
-	"keygen",
-	"keytype",
-	"kind",
-	"label",
-	"label",
-	"lang",
-	"legend",
-	"li",
-	"link",
-	"list",
-	"listing",
-	"loop",
-	"low",
-	"malignmark",
-	"manifest",
-	"map",
-	"mark",
-	"marquee",
-	"math",
-	"max",
-	"maxlength",
-	"media",
-	"mediagroup",
-	"menu",
-	"meta",
-	"meter",
-	"method",
-	"mglyph",
-	"mi",
-	"min",
-	"mn",
-	"mo",
-	"ms",
-	"mtext",
-	"multiple",
-	"muted",
-	"name",
-	"nav",
-	"nobr",
-	"noembed",
-	"noframes",
-	"noscript",
-	"novalidate",
-	"object",
-	"ol",
-	"onabort",
-	"onafterprint",
-	"onbeforeprint",
-	"onbeforeunload",
-	"onblur",
-	"oncancel",
-	"oncanplay",
-	"oncanplaythrough",
-	"onchange",
-	"onclick",
-	"onclose",
-	"oncontextmenu",
-	"oncuechange",
-	"ondblclick",
-	"ondrag",
-	"ondragend",
-	"ondragenter",
-	"ondragleave",
-	"ondragover",
-	"ondragstart",
-	"ondrop",
-	"ondurationchange",
-	"onemptied",
-	"onended",
-	"onerror",
-	"onfocus",
-	"onhashchange",
-	"oninput",
-	"oninvalid",
-	"onkeydown",
-	"onkeypress",
-	"onkeyup",
-	"onload",
-	"onloadeddata",
-	"onloadedmetadata",
-	"onloadstart",
-	"onmessage",
-	"onmousedown",
-	"onmousemove",
-	"onmouseout",
-	"onmouseover",
-	"onmouseup",
-	"onmousewheel",
-	"onoffline",
-	"ononline",
-	"onpagehide",
-	"onpageshow",
-	"onpause",
-	"onplay",
-	"onplaying",
-	"onpopstate",
-	"onprogress",
-	"onratechange",
-	"onreset",
-	"onresize",
-	"onscroll",
-	"onseeked",
-	"onseeking",
-	"onselect",
-	"onshow",
-	"onstalled",
-	"onstorage",
-	"onsubmit",
-	"onsuspend",
-	"ontimeupdate",
-	"onunload",
-	"onvolumechange",
-	"onwaiting",
-	"open",
-	"optgroup",
-	"optimum",
-	"option",
-	"output",
-	"p",
-	"param",
-	"pattern",
-	"ping",
-	"placeholder",
-	"plaintext",
-	"poster",
-	"pre",
-	"preload",
-	"progress",
-	"prompt",
-	"public",
-	"q",
-	"radiogroup",
-	"readonly",
-	"rel",
-	"required",
-	"reversed",
-	"rows",
-	"rowspan",
-	"rp",
-	"rt",
-	"ruby",
-	"s",
-	"samp",
-	"sandbox",
-	"scope",
-	"scoped",
-	"script",
-	"seamless",
-	"section",
-	"select",
-	"selected",
-	"shape",
-	"size",
-	"sizes",
-	"small",
-	"source",
-	"spacer",
-	"span",
-	"span",
-	"spellcheck",
-	"src",
-	"srcdoc",
-	"srclang",
-	"start",
-	"step",
-	"strike",
-	"strong",
-	"style",
-	"style",
-	"sub",
-	"summary",
-	"sup",
-	"svg",
-	"system",
-	"tabindex",
-	"table",
-	"target",
-	"tbody",
-	"td",
-	"textarea",
-	"tfoot",
-	"th",
-	"thead",
-	"time",
-	"title",
-	"title",
-	"tr",
-	"track",
-	"translate",
-	"tt",
-	"type",
-	"typemustmatch",
-	"u",
-	"ul",
-	"usemap",
-	"value",
-	"var",
-	"video",
-	"wbr",
-	"width",
-	"wrap",
-	"xmp",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/const.go gcc-4.8.1/libgo/go/exp/html/const.go
--- gcc-4.8.1.orig/libgo/go/exp/html/const.go	2012-02-01 13:26:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/const.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,100 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-// Section 12.2.3.2 of the HTML5 specification says "The following elements
-// have varying levels of special parsing rules".
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#the-stack-of-open-elements
-var isSpecialElementMap = map[string]bool{
-	"address":    true,
-	"applet":     true,
-	"area":       true,
-	"article":    true,
-	"aside":      true,
-	"base":       true,
-	"basefont":   true,
-	"bgsound":    true,
-	"blockquote": true,
-	"body":       true,
-	"br":         true,
-	"button":     true,
-	"caption":    true,
-	"center":     true,
-	"col":        true,
-	"colgroup":   true,
-	"command":    true,
-	"dd":         true,
-	"details":    true,
-	"dir":        true,
-	"div":        true,
-	"dl":         true,
-	"dt":         true,
-	"embed":      true,
-	"fieldset":   true,
-	"figcaption": true,
-	"figure":     true,
-	"footer":     true,
-	"form":       true,
-	"frame":      true,
-	"frameset":   true,
-	"h1":         true,
-	"h2":         true,
-	"h3":         true,
-	"h4":         true,
-	"h5":         true,
-	"h6":         true,
-	"head":       true,
-	"header":     true,
-	"hgroup":     true,
-	"hr":         true,
-	"html":       true,
-	"iframe":     true,
-	"img":        true,
-	"input":      true,
-	"isindex":    true,
-	"li":         true,
-	"link":       true,
-	"listing":    true,
-	"marquee":    true,
-	"menu":       true,
-	"meta":       true,
-	"nav":        true,
-	"noembed":    true,
-	"noframes":   true,
-	"noscript":   true,
-	"object":     true,
-	"ol":         true,
-	"p":          true,
-	"param":      true,
-	"plaintext":  true,
-	"pre":        true,
-	"script":     true,
-	"section":    true,
-	"select":     true,
-	"style":      true,
-	"summary":    true,
-	"table":      true,
-	"tbody":      true,
-	"td":         true,
-	"textarea":   true,
-	"tfoot":      true,
-	"th":         true,
-	"thead":      true,
-	"title":      true,
-	"tr":         true,
-	"ul":         true,
-	"wbr":        true,
-	"xmp":        true,
-}
-
-func isSpecialElement(element *Node) bool {
-	switch element.Namespace {
-	case "", "html":
-		return isSpecialElementMap[element.Data]
-	case "svg":
-		return element.Data == "foreignObject"
-	}
-	return false
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/doc.go gcc-4.8.1/libgo/go/exp/html/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/html/doc.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/doc.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,106 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-Package html implements an HTML5-compliant tokenizer and parser.
-
-Tokenization is done by creating a Tokenizer for an io.Reader r. It is the
-caller's responsibility to ensure that r provides UTF-8 encoded HTML.
-
-	z := html.NewTokenizer(r)
-
-Given a Tokenizer z, the HTML is tokenized by repeatedly calling z.Next(),
-which parses the next token and returns its type, or an error:
-
-	for {
-		tt := z.Next()
-		if tt == html.ErrorToken {
-			// ...
-			return ...
-		}
-		// Process the current token.
-	}
-
-There are two APIs for retrieving the current token. The high-level API is to
-call Token; the low-level API is to call Text or TagName / TagAttr. Both APIs
-allow optionally calling Raw after Next but before Token, Text, TagName, or
-TagAttr. In EBNF notation, the valid call sequence per token is:
-
-	Next {Raw} [ Token | Text | TagName {TagAttr} ]
-
-Token returns an independent data structure that completely describes a token.
-Entities (such as "&lt;") are unescaped, tag names and attribute keys are
-lower-cased, and attributes are collected into a []Attribute. For example:
-
-	for {
-		if z.Next() == html.ErrorToken {
-			// Returning io.EOF indicates success.
-			return z.Err()
-		}
-		emitToken(z.Token())
-	}
-
-The low-level API performs fewer allocations and copies, but the contents of
-the []byte values returned by Text, TagName and TagAttr may change on the next
-call to Next. For example, to extract an HTML page's anchor text:
-
-	depth := 0
-	for {
-		tt := z.Next()
-		switch tt {
-		case ErrorToken:
-			return z.Err()
-		case TextToken:
-			if depth > 0 {
-				// emitBytes should copy the []byte it receives,
-				// if it doesn't process it immediately.
-				emitBytes(z.Text())
-			}
-		case StartTagToken, EndTagToken:
-			tn, _ := z.TagName()
-			if len(tn) == 1 && tn[0] == 'a' {
-				if tt == StartTagToken {
-					depth++
-				} else {
-					depth--
-				}
-			}
-		}
-	}
-
-Parsing is done by calling Parse with an io.Reader, which returns the root of
-the parse tree (the document element) as a *Node. It is the caller's
-responsibility to ensure that the Reader provides UTF-8 encoded HTML. For
-example, to process each anchor node in depth-first order:
-
-	doc, err := html.Parse(r)
-	if err != nil {
-		// ...
-	}
-	var f func(*html.Node)
-	f = func(n *html.Node) {
-		if n.Type == html.ElementNode && n.Data == "a" {
-			// Do something with n...
-		}
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			f(c)
-		}
-	}
-	f(doc)
-
-The relevant specifications include:
-http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html and
-http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html
-*/
-package html
-
-// The tokenization algorithm implemented by this package is not a line-by-line
-// transliteration of the relatively verbose state-machine in the WHATWG
-// specification. A more direct approach is used instead, where the program
-// counter implies the state, such as whether it is tokenizing a tag or a text
-// node. Specification compliance is verified by checking expected and actual
-// outputs over a test suite rather than aiming for algorithmic fidelity.
-
-// TODO(nigeltao): Does a DOM API belong in this package or a separate one?
-// TODO(nigeltao): How does parsing interact with a JavaScript engine?
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/doctype.go gcc-4.8.1/libgo/go/exp/html/doctype.go
--- gcc-4.8.1.orig/libgo/go/exp/html/doctype.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/doctype.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,156 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"strings"
-)
-
-// parseDoctype parses the data from a DoctypeToken into a name,
-// public identifier, and system identifier. It returns a Node whose Type
-// is DoctypeNode, whose Data is the name, and which has attributes
-// named "system" and "public" for the two identifiers if they were present.
-// quirks is whether the document should be parsed in "quirks mode".
-func parseDoctype(s string) (n *Node, quirks bool) {
-	n = &Node{Type: DoctypeNode}
-
-	// Find the name.
-	space := strings.IndexAny(s, whitespace)
-	if space == -1 {
-		space = len(s)
-	}
-	n.Data = s[:space]
-	// The comparison to "html" is case-sensitive.
-	if n.Data != "html" {
-		quirks = true
-	}
-	n.Data = strings.ToLower(n.Data)
-	s = strings.TrimLeft(s[space:], whitespace)
-
-	if len(s) < 6 {
-		// It can't start with "PUBLIC" or "SYSTEM".
-		// Ignore the rest of the string.
-		return n, quirks || s != ""
-	}
-
-	key := strings.ToLower(s[:6])
-	s = s[6:]
-	for key == "public" || key == "system" {
-		s = strings.TrimLeft(s, whitespace)
-		if s == "" {
-			break
-		}
-		quote := s[0]
-		if quote != '"' && quote != '\'' {
-			break
-		}
-		s = s[1:]
-		q := strings.IndexRune(s, rune(quote))
-		var id string
-		if q == -1 {
-			id = s
-			s = ""
-		} else {
-			id = s[:q]
-			s = s[q+1:]
-		}
-		n.Attr = append(n.Attr, Attribute{Key: key, Val: id})
-		if key == "public" {
-			key = "system"
-		} else {
-			key = ""
-		}
-	}
-
-	if key != "" || s != "" {
-		quirks = true
-	} else if len(n.Attr) > 0 {
-		if n.Attr[0].Key == "public" {
-			public := strings.ToLower(n.Attr[0].Val)
-			switch public {
-			case "-//w3o//dtd w3 html strict 3.0//en//", "-/w3d/dtd html 4.0 transitional/en", "html":
-				quirks = true
-			default:
-				for _, q := range quirkyIDs {
-					if strings.HasPrefix(public, q) {
-						quirks = true
-						break
-					}
-				}
-			}
-			// The following two public IDs only cause quirks mode if there is no system ID.
-			if len(n.Attr) == 1 && (strings.HasPrefix(public, "-//w3c//dtd html 4.01 frameset//") ||
-				strings.HasPrefix(public, "-//w3c//dtd html 4.01 transitional//")) {
-				quirks = true
-			}
-		}
-		if lastAttr := n.Attr[len(n.Attr)-1]; lastAttr.Key == "system" &&
-			strings.ToLower(lastAttr.Val) == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" {
-			quirks = true
-		}
-	}
-
-	return n, quirks
-}
-
-// quirkyIDs is a list of public doctype identifiers that cause a document
-// to be interpreted in quirks mode. The identifiers should be in lower case.
-var quirkyIDs = []string{
-	"+//silmaril//dtd html pro v0r11 19970101//",
-	"-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
-	"-//as//dtd html 3.0 aswedit + extensions//",
-	"-//ietf//dtd html 2.0 level 1//",
-	"-//ietf//dtd html 2.0 level 2//",
-	"-//ietf//dtd html 2.0 strict level 1//",
-	"-//ietf//dtd html 2.0 strict level 2//",
-	"-//ietf//dtd html 2.0 strict//",
-	"-//ietf//dtd html 2.0//",
-	"-//ietf//dtd html 2.1e//",
-	"-//ietf//dtd html 3.0//",
-	"-//ietf//dtd html 3.2 final//",
-	"-//ietf//dtd html 3.2//",
-	"-//ietf//dtd html 3//",
-	"-//ietf//dtd html level 0//",
-	"-//ietf//dtd html level 1//",
-	"-//ietf//dtd html level 2//",
-	"-//ietf//dtd html level 3//",
-	"-//ietf//dtd html strict level 0//",
-	"-//ietf//dtd html strict level 1//",
-	"-//ietf//dtd html strict level 2//",
-	"-//ietf//dtd html strict level 3//",
-	"-//ietf//dtd html strict//",
-	"-//ietf//dtd html//",
-	"-//metrius//dtd metrius presentational//",
-	"-//microsoft//dtd internet explorer 2.0 html strict//",
-	"-//microsoft//dtd internet explorer 2.0 html//",
-	"-//microsoft//dtd internet explorer 2.0 tables//",
-	"-//microsoft//dtd internet explorer 3.0 html strict//",
-	"-//microsoft//dtd internet explorer 3.0 html//",
-	"-//microsoft//dtd internet explorer 3.0 tables//",
-	"-//netscape comm. corp.//dtd html//",
-	"-//netscape comm. corp.//dtd strict html//",
-	"-//o'reilly and associates//dtd html 2.0//",
-	"-//o'reilly and associates//dtd html extended 1.0//",
-	"-//o'reilly and associates//dtd html extended relaxed 1.0//",
-	"-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
-	"-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
-	"-//spyglass//dtd html 2.0 extended//",
-	"-//sq//dtd html 2.0 hotmetal + extensions//",
-	"-//sun microsystems corp.//dtd hotjava html//",
-	"-//sun microsystems corp.//dtd hotjava strict html//",
-	"-//w3c//dtd html 3 1995-03-24//",
-	"-//w3c//dtd html 3.2 draft//",
-	"-//w3c//dtd html 3.2 final//",
-	"-//w3c//dtd html 3.2//",
-	"-//w3c//dtd html 3.2s draft//",
-	"-//w3c//dtd html 4.0 frameset//",
-	"-//w3c//dtd html 4.0 transitional//",
-	"-//w3c//dtd html experimental 19960712//",
-	"-//w3c//dtd html experimental 970421//",
-	"-//w3c//dtd w3 html//",
-	"-//w3o//dtd w3 html 3.0//",
-	"-//webtechs//dtd mozilla html 2.0//",
-	"-//webtechs//dtd mozilla html//",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/entity.go gcc-4.8.1/libgo/go/exp/html/entity.go
--- gcc-4.8.1.orig/libgo/go/exp/html/entity.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/entity.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,2253 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-// All entities that do not end with ';' are 6 or fewer bytes long.
-const longestEntityWithoutSemicolon = 6
-
-// entity is a map from HTML entity names to their values. The semicolon matters:
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html
-// lists both "amp" and "amp;" as two separate entries.
-//
-// Note that the HTML5 list is larger than the HTML4 list at
-// http://www.w3.org/TR/html4/sgml/entities.html
-var entity = map[string]rune{
-	"AElig;":                           '\U000000C6',
-	"AMP;":                             '\U00000026',
-	"Aacute;":                          '\U000000C1',
-	"Abreve;":                          '\U00000102',
-	"Acirc;":                           '\U000000C2',
-	"Acy;":                             '\U00000410',
-	"Afr;":                             '\U0001D504',
-	"Agrave;":                          '\U000000C0',
-	"Alpha;":                           '\U00000391',
-	"Amacr;":                           '\U00000100',
-	"And;":                             '\U00002A53',
-	"Aogon;":                           '\U00000104',
-	"Aopf;":                            '\U0001D538',
-	"ApplyFunction;":                   '\U00002061',
-	"Aring;":                           '\U000000C5',
-	"Ascr;":                            '\U0001D49C',
-	"Assign;":                          '\U00002254',
-	"Atilde;":                          '\U000000C3',
-	"Auml;":                            '\U000000C4',
-	"Backslash;":                       '\U00002216',
-	"Barv;":                            '\U00002AE7',
-	"Barwed;":                          '\U00002306',
-	"Bcy;":                             '\U00000411',
-	"Because;":                         '\U00002235',
-	"Bernoullis;":                      '\U0000212C',
-	"Beta;":                            '\U00000392',
-	"Bfr;":                             '\U0001D505',
-	"Bopf;":                            '\U0001D539',
-	"Breve;":                           '\U000002D8',
-	"Bscr;":                            '\U0000212C',
-	"Bumpeq;":                          '\U0000224E',
-	"CHcy;":                            '\U00000427',
-	"COPY;":                            '\U000000A9',
-	"Cacute;":                          '\U00000106',
-	"Cap;":                             '\U000022D2',
-	"CapitalDifferentialD;":            '\U00002145',
-	"Cayleys;":                         '\U0000212D',
-	"Ccaron;":                          '\U0000010C',
-	"Ccedil;":                          '\U000000C7',
-	"Ccirc;":                           '\U00000108',
-	"Cconint;":                         '\U00002230',
-	"Cdot;":                            '\U0000010A',
-	"Cedilla;":                         '\U000000B8',
-	"CenterDot;":                       '\U000000B7',
-	"Cfr;":                             '\U0000212D',
-	"Chi;":                             '\U000003A7',
-	"CircleDot;":                       '\U00002299',
-	"CircleMinus;":                     '\U00002296',
-	"CirclePlus;":                      '\U00002295',
-	"CircleTimes;":                     '\U00002297',
-	"ClockwiseContourIntegral;":        '\U00002232',
-	"CloseCurlyDoubleQuote;":           '\U0000201D',
-	"CloseCurlyQuote;":                 '\U00002019',
-	"Colon;":                           '\U00002237',
-	"Colone;":                          '\U00002A74',
-	"Congruent;":                       '\U00002261',
-	"Conint;":                          '\U0000222F',
-	"ContourIntegral;":                 '\U0000222E',
-	"Copf;":                            '\U00002102',
-	"Coproduct;":                       '\U00002210',
-	"CounterClockwiseContourIntegral;": '\U00002233',
-	"Cross;":                    '\U00002A2F',
-	"Cscr;":                     '\U0001D49E',
-	"Cup;":                      '\U000022D3',
-	"CupCap;":                   '\U0000224D',
-	"DD;":                       '\U00002145',
-	"DDotrahd;":                 '\U00002911',
-	"DJcy;":                     '\U00000402',
-	"DScy;":                     '\U00000405',
-	"DZcy;":                     '\U0000040F',
-	"Dagger;":                   '\U00002021',
-	"Darr;":                     '\U000021A1',
-	"Dashv;":                    '\U00002AE4',
-	"Dcaron;":                   '\U0000010E',
-	"Dcy;":                      '\U00000414',
-	"Del;":                      '\U00002207',
-	"Delta;":                    '\U00000394',
-	"Dfr;":                      '\U0001D507',
-	"DiacriticalAcute;":         '\U000000B4',
-	"DiacriticalDot;":           '\U000002D9',
-	"DiacriticalDoubleAcute;":   '\U000002DD',
-	"DiacriticalGrave;":         '\U00000060',
-	"DiacriticalTilde;":         '\U000002DC',
-	"Diamond;":                  '\U000022C4',
-	"DifferentialD;":            '\U00002146',
-	"Dopf;":                     '\U0001D53B',
-	"Dot;":                      '\U000000A8',
-	"DotDot;":                   '\U000020DC',
-	"DotEqual;":                 '\U00002250',
-	"DoubleContourIntegral;":    '\U0000222F',
-	"DoubleDot;":                '\U000000A8',
-	"DoubleDownArrow;":          '\U000021D3',
-	"DoubleLeftArrow;":          '\U000021D0',
-	"DoubleLeftRightArrow;":     '\U000021D4',
-	"DoubleLeftTee;":            '\U00002AE4',
-	"DoubleLongLeftArrow;":      '\U000027F8',
-	"DoubleLongLeftRightArrow;": '\U000027FA',
-	"DoubleLongRightArrow;":     '\U000027F9',
-	"DoubleRightArrow;":         '\U000021D2',
-	"DoubleRightTee;":           '\U000022A8',
-	"DoubleUpArrow;":            '\U000021D1',
-	"DoubleUpDownArrow;":        '\U000021D5',
-	"DoubleVerticalBar;":        '\U00002225',
-	"DownArrow;":                '\U00002193',
-	"DownArrowBar;":             '\U00002913',
-	"DownArrowUpArrow;":         '\U000021F5',
-	"DownBreve;":                '\U00000311',
-	"DownLeftRightVector;":      '\U00002950',
-	"DownLeftTeeVector;":        '\U0000295E',
-	"DownLeftVector;":           '\U000021BD',
-	"DownLeftVectorBar;":        '\U00002956',
-	"DownRightTeeVector;":       '\U0000295F',
-	"DownRightVector;":          '\U000021C1',
-	"DownRightVectorBar;":       '\U00002957',
-	"DownTee;":                  '\U000022A4',
-	"DownTeeArrow;":             '\U000021A7',
-	"Downarrow;":                '\U000021D3',
-	"Dscr;":                     '\U0001D49F',
-	"Dstrok;":                   '\U00000110',
-	"ENG;":                      '\U0000014A',
-	"ETH;":                      '\U000000D0',
-	"Eacute;":                   '\U000000C9',
-	"Ecaron;":                   '\U0000011A',
-	"Ecirc;":                    '\U000000CA',
-	"Ecy;":                      '\U0000042D',
-	"Edot;":                     '\U00000116',
-	"Efr;":                      '\U0001D508',
-	"Egrave;":                   '\U000000C8',
-	"Element;":                  '\U00002208',
-	"Emacr;":                    '\U00000112',
-	"EmptySmallSquare;":         '\U000025FB',
-	"EmptyVerySmallSquare;":     '\U000025AB',
-	"Eogon;":                    '\U00000118',
-	"Eopf;":                     '\U0001D53C',
-	"Epsilon;":                  '\U00000395',
-	"Equal;":                    '\U00002A75',
-	"EqualTilde;":               '\U00002242',
-	"Equilibrium;":              '\U000021CC',
-	"Escr;":                     '\U00002130',
-	"Esim;":                     '\U00002A73',
-	"Eta;":                      '\U00000397',
-	"Euml;":                     '\U000000CB',
-	"Exists;":                   '\U00002203',
-	"ExponentialE;":             '\U00002147',
-	"Fcy;":                      '\U00000424',
-	"Ffr;":                      '\U0001D509',
-	"FilledSmallSquare;":        '\U000025FC',
-	"FilledVerySmallSquare;":    '\U000025AA',
-	"Fopf;":                     '\U0001D53D',
-	"ForAll;":                   '\U00002200',
-	"Fouriertrf;":               '\U00002131',
-	"Fscr;":                     '\U00002131',
-	"GJcy;":                     '\U00000403',
-	"GT;":                       '\U0000003E',
-	"Gamma;":                    '\U00000393',
-	"Gammad;":                   '\U000003DC',
-	"Gbreve;":                   '\U0000011E',
-	"Gcedil;":                   '\U00000122',
-	"Gcirc;":                    '\U0000011C',
-	"Gcy;":                      '\U00000413',
-	"Gdot;":                     '\U00000120',
-	"Gfr;":                      '\U0001D50A',
-	"Gg;":                       '\U000022D9',
-	"Gopf;":                     '\U0001D53E',
-	"GreaterEqual;":             '\U00002265',
-	"GreaterEqualLess;":         '\U000022DB',
-	"GreaterFullEqual;":         '\U00002267',
-	"GreaterGreater;":           '\U00002AA2',
-	"GreaterLess;":              '\U00002277',
-	"GreaterSlantEqual;":        '\U00002A7E',
-	"GreaterTilde;":             '\U00002273',
-	"Gscr;":                     '\U0001D4A2',
-	"Gt;":                       '\U0000226B',
-	"HARDcy;":                   '\U0000042A',
-	"Hacek;":                    '\U000002C7',
-	"Hat;":                      '\U0000005E',
-	"Hcirc;":                    '\U00000124',
-	"Hfr;":                      '\U0000210C',
-	"HilbertSpace;":             '\U0000210B',
-	"Hopf;":                     '\U0000210D',
-	"HorizontalLine;":           '\U00002500',
-	"Hscr;":                     '\U0000210B',
-	"Hstrok;":                   '\U00000126',
-	"HumpDownHump;":             '\U0000224E',
-	"HumpEqual;":                '\U0000224F',
-	"IEcy;":                     '\U00000415',
-	"IJlig;":                    '\U00000132',
-	"IOcy;":                     '\U00000401',
-	"Iacute;":                   '\U000000CD',
-	"Icirc;":                    '\U000000CE',
-	"Icy;":                      '\U00000418',
-	"Idot;":                     '\U00000130',
-	"Ifr;":                      '\U00002111',
-	"Igrave;":                   '\U000000CC',
-	"Im;":                       '\U00002111',
-	"Imacr;":                    '\U0000012A',
-	"ImaginaryI;":               '\U00002148',
-	"Implies;":                  '\U000021D2',
-	"Int;":                      '\U0000222C',
-	"Integral;":                 '\U0000222B',
-	"Intersection;":             '\U000022C2',
-	"InvisibleComma;":           '\U00002063',
-	"InvisibleTimes;":           '\U00002062',
-	"Iogon;":                    '\U0000012E',
-	"Iopf;":                     '\U0001D540',
-	"Iota;":                     '\U00000399',
-	"Iscr;":                     '\U00002110',
-	"Itilde;":                   '\U00000128',
-	"Iukcy;":                    '\U00000406',
-	"Iuml;":                     '\U000000CF',
-	"Jcirc;":                    '\U00000134',
-	"Jcy;":                      '\U00000419',
-	"Jfr;":                      '\U0001D50D',
-	"Jopf;":                     '\U0001D541',
-	"Jscr;":                     '\U0001D4A5',
-	"Jsercy;":                   '\U00000408',
-	"Jukcy;":                    '\U00000404',
-	"KHcy;":                     '\U00000425',
-	"KJcy;":                     '\U0000040C',
-	"Kappa;":                    '\U0000039A',
-	"Kcedil;":                   '\U00000136',
-	"Kcy;":                      '\U0000041A',
-	"Kfr;":                      '\U0001D50E',
-	"Kopf;":                     '\U0001D542',
-	"Kscr;":                     '\U0001D4A6',
-	"LJcy;":                     '\U00000409',
-	"LT;":                       '\U0000003C',
-	"Lacute;":                   '\U00000139',
-	"Lambda;":                   '\U0000039B',
-	"Lang;":                     '\U000027EA',
-	"Laplacetrf;":               '\U00002112',
-	"Larr;":                     '\U0000219E',
-	"Lcaron;":                   '\U0000013D',
-	"Lcedil;":                   '\U0000013B',
-	"Lcy;":                      '\U0000041B',
-	"LeftAngleBracket;":         '\U000027E8',
-	"LeftArrow;":                '\U00002190',
-	"LeftArrowBar;":             '\U000021E4',
-	"LeftArrowRightArrow;":      '\U000021C6',
-	"LeftCeiling;":              '\U00002308',
-	"LeftDoubleBracket;":        '\U000027E6',
-	"LeftDownTeeVector;":        '\U00002961',
-	"LeftDownVector;":           '\U000021C3',
-	"LeftDownVectorBar;":        '\U00002959',
-	"LeftFloor;":                '\U0000230A',
-	"LeftRightArrow;":           '\U00002194',
-	"LeftRightVector;":          '\U0000294E',
-	"LeftTee;":                  '\U000022A3',
-	"LeftTeeArrow;":             '\U000021A4',
-	"LeftTeeVector;":            '\U0000295A',
-	"LeftTriangle;":             '\U000022B2',
-	"LeftTriangleBar;":          '\U000029CF',
-	"LeftTriangleEqual;":        '\U000022B4',
-	"LeftUpDownVector;":         '\U00002951',
-	"LeftUpTeeVector;":          '\U00002960',
-	"LeftUpVector;":             '\U000021BF',
-	"LeftUpVectorBar;":          '\U00002958',
-	"LeftVector;":               '\U000021BC',
-	"LeftVectorBar;":            '\U00002952',
-	"Leftarrow;":                '\U000021D0',
-	"Leftrightarrow;":           '\U000021D4',
-	"LessEqualGreater;":         '\U000022DA',
-	"LessFullEqual;":            '\U00002266',
-	"LessGreater;":              '\U00002276',
-	"LessLess;":                 '\U00002AA1',
-	"LessSlantEqual;":           '\U00002A7D',
-	"LessTilde;":                '\U00002272',
-	"Lfr;":                      '\U0001D50F',
-	"Ll;":                       '\U000022D8',
-	"Lleftarrow;":               '\U000021DA',
-	"Lmidot;":                   '\U0000013F',
-	"LongLeftArrow;":            '\U000027F5',
-	"LongLeftRightArrow;":       '\U000027F7',
-	"LongRightArrow;":           '\U000027F6',
-	"Longleftarrow;":            '\U000027F8',
-	"Longleftrightarrow;":       '\U000027FA',
-	"Longrightarrow;":           '\U000027F9',
-	"Lopf;":                     '\U0001D543',
-	"LowerLeftArrow;":           '\U00002199',
-	"LowerRightArrow;":          '\U00002198',
-	"Lscr;":                     '\U00002112',
-	"Lsh;":                      '\U000021B0',
-	"Lstrok;":                   '\U00000141',
-	"Lt;":                       '\U0000226A',
-	"Map;":                      '\U00002905',
-	"Mcy;":                      '\U0000041C',
-	"MediumSpace;":              '\U0000205F',
-	"Mellintrf;":                '\U00002133',
-	"Mfr;":                      '\U0001D510',
-	"MinusPlus;":                '\U00002213',
-	"Mopf;":                     '\U0001D544',
-	"Mscr;":                     '\U00002133',
-	"Mu;":                       '\U0000039C',
-	"NJcy;":                     '\U0000040A',
-	"Nacute;":                   '\U00000143',
-	"Ncaron;":                   '\U00000147',
-	"Ncedil;":                   '\U00000145',
-	"Ncy;":                      '\U0000041D',
-	"NegativeMediumSpace;":      '\U0000200B',
-	"NegativeThickSpace;":       '\U0000200B',
-	"NegativeThinSpace;":        '\U0000200B',
-	"NegativeVeryThinSpace;":    '\U0000200B',
-	"NestedGreaterGreater;":     '\U0000226B',
-	"NestedLessLess;":           '\U0000226A',
-	"NewLine;":                  '\U0000000A',
-	"Nfr;":                      '\U0001D511',
-	"NoBreak;":                  '\U00002060',
-	"NonBreakingSpace;":         '\U000000A0',
-	"Nopf;":                     '\U00002115',
-	"Not;":                      '\U00002AEC',
-	"NotCongruent;":             '\U00002262',
-	"NotCupCap;":                '\U0000226D',
-	"NotDoubleVerticalBar;":     '\U00002226',
-	"NotElement;":               '\U00002209',
-	"NotEqual;":                 '\U00002260',
-	"NotExists;":                '\U00002204',
-	"NotGreater;":               '\U0000226F',
-	"NotGreaterEqual;":          '\U00002271',
-	"NotGreaterLess;":           '\U00002279',
-	"NotGreaterTilde;":          '\U00002275',
-	"NotLeftTriangle;":          '\U000022EA',
-	"NotLeftTriangleEqual;":     '\U000022EC',
-	"NotLess;":                  '\U0000226E',
-	"NotLessEqual;":             '\U00002270',
-	"NotLessGreater;":           '\U00002278',
-	"NotLessTilde;":             '\U00002274',
-	"NotPrecedes;":              '\U00002280',
-	"NotPrecedesSlantEqual;":    '\U000022E0',
-	"NotReverseElement;":        '\U0000220C',
-	"NotRightTriangle;":         '\U000022EB',
-	"NotRightTriangleEqual;":    '\U000022ED',
-	"NotSquareSubsetEqual;":     '\U000022E2',
-	"NotSquareSupersetEqual;":   '\U000022E3',
-	"NotSubsetEqual;":           '\U00002288',
-	"NotSucceeds;":              '\U00002281',
-	"NotSucceedsSlantEqual;":    '\U000022E1',
-	"NotSupersetEqual;":         '\U00002289',
-	"NotTilde;":                 '\U00002241',
-	"NotTildeEqual;":            '\U00002244',
-	"NotTildeFullEqual;":        '\U00002247',
-	"NotTildeTilde;":            '\U00002249',
-	"NotVerticalBar;":           '\U00002224',
-	"Nscr;":                     '\U0001D4A9',
-	"Ntilde;":                   '\U000000D1',
-	"Nu;":                       '\U0000039D',
-	"OElig;":                    '\U00000152',
-	"Oacute;":                   '\U000000D3',
-	"Ocirc;":                    '\U000000D4',
-	"Ocy;":                      '\U0000041E',
-	"Odblac;":                   '\U00000150',
-	"Ofr;":                      '\U0001D512',
-	"Ograve;":                   '\U000000D2',
-	"Omacr;":                    '\U0000014C',
-	"Omega;":                    '\U000003A9',
-	"Omicron;":                  '\U0000039F',
-	"Oopf;":                     '\U0001D546',
-	"OpenCurlyDoubleQuote;":     '\U0000201C',
-	"OpenCurlyQuote;":           '\U00002018',
-	"Or;":                       '\U00002A54',
-	"Oscr;":                     '\U0001D4AA',
-	"Oslash;":                   '\U000000D8',
-	"Otilde;":                   '\U000000D5',
-	"Otimes;":                   '\U00002A37',
-	"Ouml;":                     '\U000000D6',
-	"OverBar;":                  '\U0000203E',
-	"OverBrace;":                '\U000023DE',
-	"OverBracket;":              '\U000023B4',
-	"OverParenthesis;":          '\U000023DC',
-	"PartialD;":                 '\U00002202',
-	"Pcy;":                      '\U0000041F',
-	"Pfr;":                      '\U0001D513',
-	"Phi;":                      '\U000003A6',
-	"Pi;":                       '\U000003A0',
-	"PlusMinus;":                '\U000000B1',
-	"Poincareplane;":            '\U0000210C',
-	"Popf;":                     '\U00002119',
-	"Pr;":                       '\U00002ABB',
-	"Precedes;":                 '\U0000227A',
-	"PrecedesEqual;":            '\U00002AAF',
-	"PrecedesSlantEqual;":       '\U0000227C',
-	"PrecedesTilde;":            '\U0000227E',
-	"Prime;":                    '\U00002033',
-	"Product;":                  '\U0000220F',
-	"Proportion;":               '\U00002237',
-	"Proportional;":             '\U0000221D',
-	"Pscr;":                     '\U0001D4AB',
-	"Psi;":                      '\U000003A8',
-	"QUOT;":                     '\U00000022',
-	"Qfr;":                      '\U0001D514',
-	"Qopf;":                     '\U0000211A',
-	"Qscr;":                     '\U0001D4AC',
-	"RBarr;":                    '\U00002910',
-	"REG;":                      '\U000000AE',
-	"Racute;":                   '\U00000154',
-	"Rang;":                     '\U000027EB',
-	"Rarr;":                     '\U000021A0',
-	"Rarrtl;":                   '\U00002916',
-	"Rcaron;":                   '\U00000158',
-	"Rcedil;":                   '\U00000156',
-	"Rcy;":                      '\U00000420',
-	"Re;":                       '\U0000211C',
-	"ReverseElement;":           '\U0000220B',
-	"ReverseEquilibrium;":       '\U000021CB',
-	"ReverseUpEquilibrium;":     '\U0000296F',
-	"Rfr;":                      '\U0000211C',
-	"Rho;":                      '\U000003A1',
-	"RightAngleBracket;":        '\U000027E9',
-	"RightArrow;":               '\U00002192',
-	"RightArrowBar;":            '\U000021E5',
-	"RightArrowLeftArrow;":      '\U000021C4',
-	"RightCeiling;":             '\U00002309',
-	"RightDoubleBracket;":       '\U000027E7',
-	"RightDownTeeVector;":       '\U0000295D',
-	"RightDownVector;":          '\U000021C2',
-	"RightDownVectorBar;":       '\U00002955',
-	"RightFloor;":               '\U0000230B',
-	"RightTee;":                 '\U000022A2',
-	"RightTeeArrow;":            '\U000021A6',
-	"RightTeeVector;":           '\U0000295B',
-	"RightTriangle;":            '\U000022B3',
-	"RightTriangleBar;":         '\U000029D0',
-	"RightTriangleEqual;":       '\U000022B5',
-	"RightUpDownVector;":        '\U0000294F',
-	"RightUpTeeVector;":         '\U0000295C',
-	"RightUpVector;":            '\U000021BE',
-	"RightUpVectorBar;":         '\U00002954',
-	"RightVector;":              '\U000021C0',
-	"RightVectorBar;":           '\U00002953',
-	"Rightarrow;":               '\U000021D2',
-	"Ropf;":                     '\U0000211D',
-	"RoundImplies;":             '\U00002970',
-	"Rrightarrow;":              '\U000021DB',
-	"Rscr;":                     '\U0000211B',
-	"Rsh;":                      '\U000021B1',
-	"RuleDelayed;":              '\U000029F4',
-	"SHCHcy;":                   '\U00000429',
-	"SHcy;":                     '\U00000428',
-	"SOFTcy;":                   '\U0000042C',
-	"Sacute;":                   '\U0000015A',
-	"Sc;":                       '\U00002ABC',
-	"Scaron;":                   '\U00000160',
-	"Scedil;":                   '\U0000015E',
-	"Scirc;":                    '\U0000015C',
-	"Scy;":                      '\U00000421',
-	"Sfr;":                      '\U0001D516',
-	"ShortDownArrow;":           '\U00002193',
-	"ShortLeftArrow;":           '\U00002190',
-	"ShortRightArrow;":          '\U00002192',
-	"ShortUpArrow;":             '\U00002191',
-	"Sigma;":                    '\U000003A3',
-	"SmallCircle;":              '\U00002218',
-	"Sopf;":                     '\U0001D54A',
-	"Sqrt;":                     '\U0000221A',
-	"Square;":                   '\U000025A1',
-	"SquareIntersection;":       '\U00002293',
-	"SquareSubset;":             '\U0000228F',
-	"SquareSubsetEqual;":        '\U00002291',
-	"SquareSuperset;":           '\U00002290',
-	"SquareSupersetEqual;":      '\U00002292',
-	"SquareUnion;":              '\U00002294',
-	"Sscr;":                     '\U0001D4AE',
-	"Star;":                     '\U000022C6',
-	"Sub;":                      '\U000022D0',
-	"Subset;":                   '\U000022D0',
-	"SubsetEqual;":              '\U00002286',
-	"Succeeds;":                 '\U0000227B',
-	"SucceedsEqual;":            '\U00002AB0',
-	"SucceedsSlantEqual;":       '\U0000227D',
-	"SucceedsTilde;":            '\U0000227F',
-	"SuchThat;":                 '\U0000220B',
-	"Sum;":                      '\U00002211',
-	"Sup;":                      '\U000022D1',
-	"Superset;":                 '\U00002283',
-	"SupersetEqual;":            '\U00002287',
-	"Supset;":                   '\U000022D1',
-	"THORN;":                    '\U000000DE',
-	"TRADE;":                    '\U00002122',
-	"TSHcy;":                    '\U0000040B',
-	"TScy;":                     '\U00000426',
-	"Tab;":                      '\U00000009',
-	"Tau;":                      '\U000003A4',
-	"Tcaron;":                   '\U00000164',
-	"Tcedil;":                   '\U00000162',
-	"Tcy;":                      '\U00000422',
-	"Tfr;":                      '\U0001D517',
-	"Therefore;":                '\U00002234',
-	"Theta;":                    '\U00000398',
-	"ThinSpace;":                '\U00002009',
-	"Tilde;":                    '\U0000223C',
-	"TildeEqual;":               '\U00002243',
-	"TildeFullEqual;":           '\U00002245',
-	"TildeTilde;":               '\U00002248',
-	"Topf;":                     '\U0001D54B',
-	"TripleDot;":                '\U000020DB',
-	"Tscr;":                     '\U0001D4AF',
-	"Tstrok;":                   '\U00000166',
-	"Uacute;":                   '\U000000DA',
-	"Uarr;":                     '\U0000219F',
-	"Uarrocir;":                 '\U00002949',
-	"Ubrcy;":                    '\U0000040E',
-	"Ubreve;":                   '\U0000016C',
-	"Ucirc;":                    '\U000000DB',
-	"Ucy;":                      '\U00000423',
-	"Udblac;":                   '\U00000170',
-	"Ufr;":                      '\U0001D518',
-	"Ugrave;":                   '\U000000D9',
-	"Umacr;":                    '\U0000016A',
-	"UnderBar;":                 '\U0000005F',
-	"UnderBrace;":               '\U000023DF',
-	"UnderBracket;":             '\U000023B5',
-	"UnderParenthesis;":         '\U000023DD',
-	"Union;":                    '\U000022C3',
-	"UnionPlus;":                '\U0000228E',
-	"Uogon;":                    '\U00000172',
-	"Uopf;":                     '\U0001D54C',
-	"UpArrow;":                  '\U00002191',
-	"UpArrowBar;":               '\U00002912',
-	"UpArrowDownArrow;":         '\U000021C5',
-	"UpDownArrow;":              '\U00002195',
-	"UpEquilibrium;":            '\U0000296E',
-	"UpTee;":                    '\U000022A5',
-	"UpTeeArrow;":               '\U000021A5',
-	"Uparrow;":                  '\U000021D1',
-	"Updownarrow;":              '\U000021D5',
-	"UpperLeftArrow;":           '\U00002196',
-	"UpperRightArrow;":          '\U00002197',
-	"Upsi;":                     '\U000003D2',
-	"Upsilon;":                  '\U000003A5',
-	"Uring;":                    '\U0000016E',
-	"Uscr;":                     '\U0001D4B0',
-	"Utilde;":                   '\U00000168',
-	"Uuml;":                     '\U000000DC',
-	"VDash;":                    '\U000022AB',
-	"Vbar;":                     '\U00002AEB',
-	"Vcy;":                      '\U00000412',
-	"Vdash;":                    '\U000022A9',
-	"Vdashl;":                   '\U00002AE6',
-	"Vee;":                      '\U000022C1',
-	"Verbar;":                   '\U00002016',
-	"Vert;":                     '\U00002016',
-	"VerticalBar;":              '\U00002223',
-	"VerticalLine;":             '\U0000007C',
-	"VerticalSeparator;":        '\U00002758',
-	"VerticalTilde;":            '\U00002240',
-	"VeryThinSpace;":            '\U0000200A',
-	"Vfr;":                      '\U0001D519',
-	"Vopf;":                     '\U0001D54D',
-	"Vscr;":                     '\U0001D4B1',
-	"Vvdash;":                   '\U000022AA',
-	"Wcirc;":                    '\U00000174',
-	"Wedge;":                    '\U000022C0',
-	"Wfr;":                      '\U0001D51A',
-	"Wopf;":                     '\U0001D54E',
-	"Wscr;":                     '\U0001D4B2',
-	"Xfr;":                      '\U0001D51B',
-	"Xi;":                       '\U0000039E',
-	"Xopf;":                     '\U0001D54F',
-	"Xscr;":                     '\U0001D4B3',
-	"YAcy;":                     '\U0000042F',
-	"YIcy;":                     '\U00000407',
-	"YUcy;":                     '\U0000042E',
-	"Yacute;":                   '\U000000DD',
-	"Ycirc;":                    '\U00000176',
-	"Ycy;":                      '\U0000042B',
-	"Yfr;":                      '\U0001D51C',
-	"Yopf;":                     '\U0001D550',
-	"Yscr;":                     '\U0001D4B4',
-	"Yuml;":                     '\U00000178',
-	"ZHcy;":                     '\U00000416',
-	"Zacute;":                   '\U00000179',
-	"Zcaron;":                   '\U0000017D',
-	"Zcy;":                      '\U00000417',
-	"Zdot;":                     '\U0000017B',
-	"ZeroWidthSpace;":           '\U0000200B',
-	"Zeta;":                     '\U00000396',
-	"Zfr;":                      '\U00002128',
-	"Zopf;":                     '\U00002124',
-	"Zscr;":                     '\U0001D4B5',
-	"aacute;":                   '\U000000E1',
-	"abreve;":                   '\U00000103',
-	"ac;":                       '\U0000223E',
-	"acd;":                      '\U0000223F',
-	"acirc;":                    '\U000000E2',
-	"acute;":                    '\U000000B4',
-	"acy;":                      '\U00000430',
-	"aelig;":                    '\U000000E6',
-	"af;":                       '\U00002061',
-	"afr;":                      '\U0001D51E',
-	"agrave;":                   '\U000000E0',
-	"alefsym;":                  '\U00002135',
-	"aleph;":                    '\U00002135',
-	"alpha;":                    '\U000003B1',
-	"amacr;":                    '\U00000101',
-	"amalg;":                    '\U00002A3F',
-	"amp;":                      '\U00000026',
-	"and;":                      '\U00002227',
-	"andand;":                   '\U00002A55',
-	"andd;":                     '\U00002A5C',
-	"andslope;":                 '\U00002A58',
-	"andv;":                     '\U00002A5A',
-	"ang;":                      '\U00002220',
-	"ange;":                     '\U000029A4',
-	"angle;":                    '\U00002220',
-	"angmsd;":                   '\U00002221',
-	"angmsdaa;":                 '\U000029A8',
-	"angmsdab;":                 '\U000029A9',
-	"angmsdac;":                 '\U000029AA',
-	"angmsdad;":                 '\U000029AB',
-	"angmsdae;":                 '\U000029AC',
-	"angmsdaf;":                 '\U000029AD',
-	"angmsdag;":                 '\U000029AE',
-	"angmsdah;":                 '\U000029AF',
-	"angrt;":                    '\U0000221F',
-	"angrtvb;":                  '\U000022BE',
-	"angrtvbd;":                 '\U0000299D',
-	"angsph;":                   '\U00002222',
-	"angst;":                    '\U000000C5',
-	"angzarr;":                  '\U0000237C',
-	"aogon;":                    '\U00000105',
-	"aopf;":                     '\U0001D552',
-	"ap;":                       '\U00002248',
-	"apE;":                      '\U00002A70',
-	"apacir;":                   '\U00002A6F',
-	"ape;":                      '\U0000224A',
-	"apid;":                     '\U0000224B',
-	"apos;":                     '\U00000027',
-	"approx;":                   '\U00002248',
-	"approxeq;":                 '\U0000224A',
-	"aring;":                    '\U000000E5',
-	"ascr;":                     '\U0001D4B6',
-	"ast;":                      '\U0000002A',
-	"asymp;":                    '\U00002248',
-	"asympeq;":                  '\U0000224D',
-	"atilde;":                   '\U000000E3',
-	"auml;":                     '\U000000E4',
-	"awconint;":                 '\U00002233',
-	"awint;":                    '\U00002A11',
-	"bNot;":                     '\U00002AED',
-	"backcong;":                 '\U0000224C',
-	"backepsilon;":              '\U000003F6',
-	"backprime;":                '\U00002035',
-	"backsim;":                  '\U0000223D',
-	"backsimeq;":                '\U000022CD',
-	"barvee;":                   '\U000022BD',
-	"barwed;":                   '\U00002305',
-	"barwedge;":                 '\U00002305',
-	"bbrk;":                     '\U000023B5',
-	"bbrktbrk;":                 '\U000023B6',
-	"bcong;":                    '\U0000224C',
-	"bcy;":                      '\U00000431',
-	"bdquo;":                    '\U0000201E',
-	"becaus;":                   '\U00002235',
-	"because;":                  '\U00002235',
-	"bemptyv;":                  '\U000029B0',
-	"bepsi;":                    '\U000003F6',
-	"bernou;":                   '\U0000212C',
-	"beta;":                     '\U000003B2',
-	"beth;":                     '\U00002136',
-	"between;":                  '\U0000226C',
-	"bfr;":                      '\U0001D51F',
-	"bigcap;":                   '\U000022C2',
-	"bigcirc;":                  '\U000025EF',
-	"bigcup;":                   '\U000022C3',
-	"bigodot;":                  '\U00002A00',
-	"bigoplus;":                 '\U00002A01',
-	"bigotimes;":                '\U00002A02',
-	"bigsqcup;":                 '\U00002A06',
-	"bigstar;":                  '\U00002605',
-	"bigtriangledown;":          '\U000025BD',
-	"bigtriangleup;":            '\U000025B3',
-	"biguplus;":                 '\U00002A04',
-	"bigvee;":                   '\U000022C1',
-	"bigwedge;":                 '\U000022C0',
-	"bkarow;":                   '\U0000290D',
-	"blacklozenge;":             '\U000029EB',
-	"blacksquare;":              '\U000025AA',
-	"blacktriangle;":            '\U000025B4',
-	"blacktriangledown;":        '\U000025BE',
-	"blacktriangleleft;":        '\U000025C2',
-	"blacktriangleright;":       '\U000025B8',
-	"blank;":                    '\U00002423',
-	"blk12;":                    '\U00002592',
-	"blk14;":                    '\U00002591',
-	"blk34;":                    '\U00002593',
-	"block;":                    '\U00002588',
-	"bnot;":                     '\U00002310',
-	"bopf;":                     '\U0001D553',
-	"bot;":                      '\U000022A5',
-	"bottom;":                   '\U000022A5',
-	"bowtie;":                   '\U000022C8',
-	"boxDL;":                    '\U00002557',
-	"boxDR;":                    '\U00002554',
-	"boxDl;":                    '\U00002556',
-	"boxDr;":                    '\U00002553',
-	"boxH;":                     '\U00002550',
-	"boxHD;":                    '\U00002566',
-	"boxHU;":                    '\U00002569',
-	"boxHd;":                    '\U00002564',
-	"boxHu;":                    '\U00002567',
-	"boxUL;":                    '\U0000255D',
-	"boxUR;":                    '\U0000255A',
-	"boxUl;":                    '\U0000255C',
-	"boxUr;":                    '\U00002559',
-	"boxV;":                     '\U00002551',
-	"boxVH;":                    '\U0000256C',
-	"boxVL;":                    '\U00002563',
-	"boxVR;":                    '\U00002560',
-	"boxVh;":                    '\U0000256B',
-	"boxVl;":                    '\U00002562',
-	"boxVr;":                    '\U0000255F',
-	"boxbox;":                   '\U000029C9',
-	"boxdL;":                    '\U00002555',
-	"boxdR;":                    '\U00002552',
-	"boxdl;":                    '\U00002510',
-	"boxdr;":                    '\U0000250C',
-	"boxh;":                     '\U00002500',
-	"boxhD;":                    '\U00002565',
-	"boxhU;":                    '\U00002568',
-	"boxhd;":                    '\U0000252C',
-	"boxhu;":                    '\U00002534',
-	"boxminus;":                 '\U0000229F',
-	"boxplus;":                  '\U0000229E',
-	"boxtimes;":                 '\U000022A0',
-	"boxuL;":                    '\U0000255B',
-	"boxuR;":                    '\U00002558',
-	"boxul;":                    '\U00002518',
-	"boxur;":                    '\U00002514',
-	"boxv;":                     '\U00002502',
-	"boxvH;":                    '\U0000256A',
-	"boxvL;":                    '\U00002561',
-	"boxvR;":                    '\U0000255E',
-	"boxvh;":                    '\U0000253C',
-	"boxvl;":                    '\U00002524',
-	"boxvr;":                    '\U0000251C',
-	"bprime;":                   '\U00002035',
-	"breve;":                    '\U000002D8',
-	"brvbar;":                   '\U000000A6',
-	"bscr;":                     '\U0001D4B7',
-	"bsemi;":                    '\U0000204F',
-	"bsim;":                     '\U0000223D',
-	"bsime;":                    '\U000022CD',
-	"bsol;":                     '\U0000005C',
-	"bsolb;":                    '\U000029C5',
-	"bsolhsub;":                 '\U000027C8',
-	"bull;":                     '\U00002022',
-	"bullet;":                   '\U00002022',
-	"bump;":                     '\U0000224E',
-	"bumpE;":                    '\U00002AAE',
-	"bumpe;":                    '\U0000224F',
-	"bumpeq;":                   '\U0000224F',
-	"cacute;":                   '\U00000107',
-	"cap;":                      '\U00002229',
-	"capand;":                   '\U00002A44',
-	"capbrcup;":                 '\U00002A49',
-	"capcap;":                   '\U00002A4B',
-	"capcup;":                   '\U00002A47',
-	"capdot;":                   '\U00002A40',
-	"caret;":                    '\U00002041',
-	"caron;":                    '\U000002C7',
-	"ccaps;":                    '\U00002A4D',
-	"ccaron;":                   '\U0000010D',
-	"ccedil;":                   '\U000000E7',
-	"ccirc;":                    '\U00000109',
-	"ccups;":                    '\U00002A4C',
-	"ccupssm;":                  '\U00002A50',
-	"cdot;":                     '\U0000010B',
-	"cedil;":                    '\U000000B8',
-	"cemptyv;":                  '\U000029B2',
-	"cent;":                     '\U000000A2',
-	"centerdot;":                '\U000000B7',
-	"cfr;":                      '\U0001D520',
-	"chcy;":                     '\U00000447',
-	"check;":                    '\U00002713',
-	"checkmark;":                '\U00002713',
-	"chi;":                      '\U000003C7',
-	"cir;":                      '\U000025CB',
-	"cirE;":                     '\U000029C3',
-	"circ;":                     '\U000002C6',
-	"circeq;":                   '\U00002257',
-	"circlearrowleft;":          '\U000021BA',
-	"circlearrowright;":         '\U000021BB',
-	"circledR;":                 '\U000000AE',
-	"circledS;":                 '\U000024C8',
-	"circledast;":               '\U0000229B',
-	"circledcirc;":              '\U0000229A',
-	"circleddash;":              '\U0000229D',
-	"cire;":                     '\U00002257',
-	"cirfnint;":                 '\U00002A10',
-	"cirmid;":                   '\U00002AEF',
-	"cirscir;":                  '\U000029C2',
-	"clubs;":                    '\U00002663',
-	"clubsuit;":                 '\U00002663',
-	"colon;":                    '\U0000003A',
-	"colone;":                   '\U00002254',
-	"coloneq;":                  '\U00002254',
-	"comma;":                    '\U0000002C',
-	"commat;":                   '\U00000040',
-	"comp;":                     '\U00002201',
-	"compfn;":                   '\U00002218',
-	"complement;":               '\U00002201',
-	"complexes;":                '\U00002102',
-	"cong;":                     '\U00002245',
-	"congdot;":                  '\U00002A6D',
-	"conint;":                   '\U0000222E',
-	"copf;":                     '\U0001D554',
-	"coprod;":                   '\U00002210',
-	"copy;":                     '\U000000A9',
-	"copysr;":                   '\U00002117',
-	"crarr;":                    '\U000021B5',
-	"cross;":                    '\U00002717',
-	"cscr;":                     '\U0001D4B8',
-	"csub;":                     '\U00002ACF',
-	"csube;":                    '\U00002AD1',
-	"csup;":                     '\U00002AD0',
-	"csupe;":                    '\U00002AD2',
-	"ctdot;":                    '\U000022EF',
-	"cudarrl;":                  '\U00002938',
-	"cudarrr;":                  '\U00002935',
-	"cuepr;":                    '\U000022DE',
-	"cuesc;":                    '\U000022DF',
-	"cularr;":                   '\U000021B6',
-	"cularrp;":                  '\U0000293D',
-	"cup;":                      '\U0000222A',
-	"cupbrcap;":                 '\U00002A48',
-	"cupcap;":                   '\U00002A46',
-	"cupcup;":                   '\U00002A4A',
-	"cupdot;":                   '\U0000228D',
-	"cupor;":                    '\U00002A45',
-	"curarr;":                   '\U000021B7',
-	"curarrm;":                  '\U0000293C',
-	"curlyeqprec;":              '\U000022DE',
-	"curlyeqsucc;":              '\U000022DF',
-	"curlyvee;":                 '\U000022CE',
-	"curlywedge;":               '\U000022CF',
-	"curren;":                   '\U000000A4',
-	"curvearrowleft;":           '\U000021B6',
-	"curvearrowright;":          '\U000021B7',
-	"cuvee;":                    '\U000022CE',
-	"cuwed;":                    '\U000022CF',
-	"cwconint;":                 '\U00002232',
-	"cwint;":                    '\U00002231',
-	"cylcty;":                   '\U0000232D',
-	"dArr;":                     '\U000021D3',
-	"dHar;":                     '\U00002965',
-	"dagger;":                   '\U00002020',
-	"daleth;":                   '\U00002138',
-	"darr;":                     '\U00002193',
-	"dash;":                     '\U00002010',
-	"dashv;":                    '\U000022A3',
-	"dbkarow;":                  '\U0000290F',
-	"dblac;":                    '\U000002DD',
-	"dcaron;":                   '\U0000010F',
-	"dcy;":                      '\U00000434',
-	"dd;":                       '\U00002146',
-	"ddagger;":                  '\U00002021',
-	"ddarr;":                    '\U000021CA',
-	"ddotseq;":                  '\U00002A77',
-	"deg;":                      '\U000000B0',
-	"delta;":                    '\U000003B4',
-	"demptyv;":                  '\U000029B1',
-	"dfisht;":                   '\U0000297F',
-	"dfr;":                      '\U0001D521',
-	"dharl;":                    '\U000021C3',
-	"dharr;":                    '\U000021C2',
-	"diam;":                     '\U000022C4',
-	"diamond;":                  '\U000022C4',
-	"diamondsuit;":              '\U00002666',
-	"diams;":                    '\U00002666',
-	"die;":                      '\U000000A8',
-	"digamma;":                  '\U000003DD',
-	"disin;":                    '\U000022F2',
-	"div;":                      '\U000000F7',
-	"divide;":                   '\U000000F7',
-	"divideontimes;":            '\U000022C7',
-	"divonx;":                   '\U000022C7',
-	"djcy;":                     '\U00000452',
-	"dlcorn;":                   '\U0000231E',
-	"dlcrop;":                   '\U0000230D',
-	"dollar;":                   '\U00000024',
-	"dopf;":                     '\U0001D555',
-	"dot;":                      '\U000002D9',
-	"doteq;":                    '\U00002250',
-	"doteqdot;":                 '\U00002251',
-	"dotminus;":                 '\U00002238',
-	"dotplus;":                  '\U00002214',
-	"dotsquare;":                '\U000022A1',
-	"doublebarwedge;":           '\U00002306',
-	"downarrow;":                '\U00002193',
-	"downdownarrows;":           '\U000021CA',
-	"downharpoonleft;":          '\U000021C3',
-	"downharpoonright;":         '\U000021C2',
-	"drbkarow;":                 '\U00002910',
-	"drcorn;":                   '\U0000231F',
-	"drcrop;":                   '\U0000230C',
-	"dscr;":                     '\U0001D4B9',
-	"dscy;":                     '\U00000455',
-	"dsol;":                     '\U000029F6',
-	"dstrok;":                   '\U00000111',
-	"dtdot;":                    '\U000022F1',
-	"dtri;":                     '\U000025BF',
-	"dtrif;":                    '\U000025BE',
-	"duarr;":                    '\U000021F5',
-	"duhar;":                    '\U0000296F',
-	"dwangle;":                  '\U000029A6',
-	"dzcy;":                     '\U0000045F',
-	"dzigrarr;":                 '\U000027FF',
-	"eDDot;":                    '\U00002A77',
-	"eDot;":                     '\U00002251',
-	"eacute;":                   '\U000000E9',
-	"easter;":                   '\U00002A6E',
-	"ecaron;":                   '\U0000011B',
-	"ecir;":                     '\U00002256',
-	"ecirc;":                    '\U000000EA',
-	"ecolon;":                   '\U00002255',
-	"ecy;":                      '\U0000044D',
-	"edot;":                     '\U00000117',
-	"ee;":                       '\U00002147',
-	"efDot;":                    '\U00002252',
-	"efr;":                      '\U0001D522',
-	"eg;":                       '\U00002A9A',
-	"egrave;":                   '\U000000E8',
-	"egs;":                      '\U00002A96',
-	"egsdot;":                   '\U00002A98',
-	"el;":                       '\U00002A99',
-	"elinters;":                 '\U000023E7',
-	"ell;":                      '\U00002113',
-	"els;":                      '\U00002A95',
-	"elsdot;":                   '\U00002A97',
-	"emacr;":                    '\U00000113',
-	"empty;":                    '\U00002205',
-	"emptyset;":                 '\U00002205',
-	"emptyv;":                   '\U00002205',
-	"emsp;":                     '\U00002003',
-	"emsp13;":                   '\U00002004',
-	"emsp14;":                   '\U00002005',
-	"eng;":                      '\U0000014B',
-	"ensp;":                     '\U00002002',
-	"eogon;":                    '\U00000119',
-	"eopf;":                     '\U0001D556',
-	"epar;":                     '\U000022D5',
-	"eparsl;":                   '\U000029E3',
-	"eplus;":                    '\U00002A71',
-	"epsi;":                     '\U000003B5',
-	"epsilon;":                  '\U000003B5',
-	"epsiv;":                    '\U000003F5',
-	"eqcirc;":                   '\U00002256',
-	"eqcolon;":                  '\U00002255',
-	"eqsim;":                    '\U00002242',
-	"eqslantgtr;":               '\U00002A96',
-	"eqslantless;":              '\U00002A95',
-	"equals;":                   '\U0000003D',
-	"equest;":                   '\U0000225F',
-	"equiv;":                    '\U00002261',
-	"equivDD;":                  '\U00002A78',
-	"eqvparsl;":                 '\U000029E5',
-	"erDot;":                    '\U00002253',
-	"erarr;":                    '\U00002971',
-	"escr;":                     '\U0000212F',
-	"esdot;":                    '\U00002250',
-	"esim;":                     '\U00002242',
-	"eta;":                      '\U000003B7',
-	"eth;":                      '\U000000F0',
-	"euml;":                     '\U000000EB',
-	"euro;":                     '\U000020AC',
-	"excl;":                     '\U00000021',
-	"exist;":                    '\U00002203',
-	"expectation;":              '\U00002130',
-	"exponentiale;":             '\U00002147',
-	"fallingdotseq;":            '\U00002252',
-	"fcy;":                      '\U00000444',
-	"female;":                   '\U00002640',
-	"ffilig;":                   '\U0000FB03',
-	"fflig;":                    '\U0000FB00',
-	"ffllig;":                   '\U0000FB04',
-	"ffr;":                      '\U0001D523',
-	"filig;":                    '\U0000FB01',
-	"flat;":                     '\U0000266D',
-	"fllig;":                    '\U0000FB02',
-	"fltns;":                    '\U000025B1',
-	"fnof;":                     '\U00000192',
-	"fopf;":                     '\U0001D557',
-	"forall;":                   '\U00002200',
-	"fork;":                     '\U000022D4',
-	"forkv;":                    '\U00002AD9',
-	"fpartint;":                 '\U00002A0D',
-	"frac12;":                   '\U000000BD',
-	"frac13;":                   '\U00002153',
-	"frac14;":                   '\U000000BC',
-	"frac15;":                   '\U00002155',
-	"frac16;":                   '\U00002159',
-	"frac18;":                   '\U0000215B',
-	"frac23;":                   '\U00002154',
-	"frac25;":                   '\U00002156',
-	"frac34;":                   '\U000000BE',
-	"frac35;":                   '\U00002157',
-	"frac38;":                   '\U0000215C',
-	"frac45;":                   '\U00002158',
-	"frac56;":                   '\U0000215A',
-	"frac58;":                   '\U0000215D',
-	"frac78;":                   '\U0000215E',
-	"frasl;":                    '\U00002044',
-	"frown;":                    '\U00002322',
-	"fscr;":                     '\U0001D4BB',
-	"gE;":                       '\U00002267',
-	"gEl;":                      '\U00002A8C',
-	"gacute;":                   '\U000001F5',
-	"gamma;":                    '\U000003B3',
-	"gammad;":                   '\U000003DD',
-	"gap;":                      '\U00002A86',
-	"gbreve;":                   '\U0000011F',
-	"gcirc;":                    '\U0000011D',
-	"gcy;":                      '\U00000433',
-	"gdot;":                     '\U00000121',
-	"ge;":                       '\U00002265',
-	"gel;":                      '\U000022DB',
-	"geq;":                      '\U00002265',
-	"geqq;":                     '\U00002267',
-	"geqslant;":                 '\U00002A7E',
-	"ges;":                      '\U00002A7E',
-	"gescc;":                    '\U00002AA9',
-	"gesdot;":                   '\U00002A80',
-	"gesdoto;":                  '\U00002A82',
-	"gesdotol;":                 '\U00002A84',
-	"gesles;":                   '\U00002A94',
-	"gfr;":                      '\U0001D524',
-	"gg;":                       '\U0000226B',
-	"ggg;":                      '\U000022D9',
-	"gimel;":                    '\U00002137',
-	"gjcy;":                     '\U00000453',
-	"gl;":                       '\U00002277',
-	"glE;":                      '\U00002A92',
-	"gla;":                      '\U00002AA5',
-	"glj;":                      '\U00002AA4',
-	"gnE;":                      '\U00002269',
-	"gnap;":                     '\U00002A8A',
-	"gnapprox;":                 '\U00002A8A',
-	"gne;":                      '\U00002A88',
-	"gneq;":                     '\U00002A88',
-	"gneqq;":                    '\U00002269',
-	"gnsim;":                    '\U000022E7',
-	"gopf;":                     '\U0001D558',
-	"grave;":                    '\U00000060',
-	"gscr;":                     '\U0000210A',
-	"gsim;":                     '\U00002273',
-	"gsime;":                    '\U00002A8E',
-	"gsiml;":                    '\U00002A90',
-	"gt;":                       '\U0000003E',
-	"gtcc;":                     '\U00002AA7',
-	"gtcir;":                    '\U00002A7A',
-	"gtdot;":                    '\U000022D7',
-	"gtlPar;":                   '\U00002995',
-	"gtquest;":                  '\U00002A7C',
-	"gtrapprox;":                '\U00002A86',
-	"gtrarr;":                   '\U00002978',
-	"gtrdot;":                   '\U000022D7',
-	"gtreqless;":                '\U000022DB',
-	"gtreqqless;":               '\U00002A8C',
-	"gtrless;":                  '\U00002277',
-	"gtrsim;":                   '\U00002273',
-	"hArr;":                     '\U000021D4',
-	"hairsp;":                   '\U0000200A',
-	"half;":                     '\U000000BD',
-	"hamilt;":                   '\U0000210B',
-	"hardcy;":                   '\U0000044A',
-	"harr;":                     '\U00002194',
-	"harrcir;":                  '\U00002948',
-	"harrw;":                    '\U000021AD',
-	"hbar;":                     '\U0000210F',
-	"hcirc;":                    '\U00000125',
-	"hearts;":                   '\U00002665',
-	"heartsuit;":                '\U00002665',
-	"hellip;":                   '\U00002026',
-	"hercon;":                   '\U000022B9',
-	"hfr;":                      '\U0001D525',
-	"hksearow;":                 '\U00002925',
-	"hkswarow;":                 '\U00002926',
-	"hoarr;":                    '\U000021FF',
-	"homtht;":                   '\U0000223B',
-	"hookleftarrow;":            '\U000021A9',
-	"hookrightarrow;":           '\U000021AA',
-	"hopf;":                     '\U0001D559',
-	"horbar;":                   '\U00002015',
-	"hscr;":                     '\U0001D4BD',
-	"hslash;":                   '\U0000210F',
-	"hstrok;":                   '\U00000127',
-	"hybull;":                   '\U00002043',
-	"hyphen;":                   '\U00002010',
-	"iacute;":                   '\U000000ED',
-	"ic;":                       '\U00002063',
-	"icirc;":                    '\U000000EE',
-	"icy;":                      '\U00000438',
-	"iecy;":                     '\U00000435',
-	"iexcl;":                    '\U000000A1',
-	"iff;":                      '\U000021D4',
-	"ifr;":                      '\U0001D526',
-	"igrave;":                   '\U000000EC',
-	"ii;":                       '\U00002148',
-	"iiiint;":                   '\U00002A0C',
-	"iiint;":                    '\U0000222D',
-	"iinfin;":                   '\U000029DC',
-	"iiota;":                    '\U00002129',
-	"ijlig;":                    '\U00000133',
-	"imacr;":                    '\U0000012B',
-	"image;":                    '\U00002111',
-	"imagline;":                 '\U00002110',
-	"imagpart;":                 '\U00002111',
-	"imath;":                    '\U00000131',
-	"imof;":                     '\U000022B7',
-	"imped;":                    '\U000001B5',
-	"in;":                       '\U00002208',
-	"incare;":                   '\U00002105',
-	"infin;":                    '\U0000221E',
-	"infintie;":                 '\U000029DD',
-	"inodot;":                   '\U00000131',
-	"int;":                      '\U0000222B',
-	"intcal;":                   '\U000022BA',
-	"integers;":                 '\U00002124',
-	"intercal;":                 '\U000022BA',
-	"intlarhk;":                 '\U00002A17',
-	"intprod;":                  '\U00002A3C',
-	"iocy;":                     '\U00000451',
-	"iogon;":                    '\U0000012F',
-	"iopf;":                     '\U0001D55A',
-	"iota;":                     '\U000003B9',
-	"iprod;":                    '\U00002A3C',
-	"iquest;":                   '\U000000BF',
-	"iscr;":                     '\U0001D4BE',
-	"isin;":                     '\U00002208',
-	"isinE;":                    '\U000022F9',
-	"isindot;":                  '\U000022F5',
-	"isins;":                    '\U000022F4',
-	"isinsv;":                   '\U000022F3',
-	"isinv;":                    '\U00002208',
-	"it;":                       '\U00002062',
-	"itilde;":                   '\U00000129',
-	"iukcy;":                    '\U00000456',
-	"iuml;":                     '\U000000EF',
-	"jcirc;":                    '\U00000135',
-	"jcy;":                      '\U00000439',
-	"jfr;":                      '\U0001D527',
-	"jmath;":                    '\U00000237',
-	"jopf;":                     '\U0001D55B',
-	"jscr;":                     '\U0001D4BF',
-	"jsercy;":                   '\U00000458',
-	"jukcy;":                    '\U00000454',
-	"kappa;":                    '\U000003BA',
-	"kappav;":                   '\U000003F0',
-	"kcedil;":                   '\U00000137',
-	"kcy;":                      '\U0000043A',
-	"kfr;":                      '\U0001D528',
-	"kgreen;":                   '\U00000138',
-	"khcy;":                     '\U00000445',
-	"kjcy;":                     '\U0000045C',
-	"kopf;":                     '\U0001D55C',
-	"kscr;":                     '\U0001D4C0',
-	"lAarr;":                    '\U000021DA',
-	"lArr;":                     '\U000021D0',
-	"lAtail;":                   '\U0000291B',
-	"lBarr;":                    '\U0000290E',
-	"lE;":                       '\U00002266',
-	"lEg;":                      '\U00002A8B',
-	"lHar;":                     '\U00002962',
-	"lacute;":                   '\U0000013A',
-	"laemptyv;":                 '\U000029B4',
-	"lagran;":                   '\U00002112',
-	"lambda;":                   '\U000003BB',
-	"lang;":                     '\U000027E8',
-	"langd;":                    '\U00002991',
-	"langle;":                   '\U000027E8',
-	"lap;":                      '\U00002A85',
-	"laquo;":                    '\U000000AB',
-	"larr;":                     '\U00002190',
-	"larrb;":                    '\U000021E4',
-	"larrbfs;":                  '\U0000291F',
-	"larrfs;":                   '\U0000291D',
-	"larrhk;":                   '\U000021A9',
-	"larrlp;":                   '\U000021AB',
-	"larrpl;":                   '\U00002939',
-	"larrsim;":                  '\U00002973',
-	"larrtl;":                   '\U000021A2',
-	"lat;":                      '\U00002AAB',
-	"latail;":                   '\U00002919',
-	"late;":                     '\U00002AAD',
-	"lbarr;":                    '\U0000290C',
-	"lbbrk;":                    '\U00002772',
-	"lbrace;":                   '\U0000007B',
-	"lbrack;":                   '\U0000005B',
-	"lbrke;":                    '\U0000298B',
-	"lbrksld;":                  '\U0000298F',
-	"lbrkslu;":                  '\U0000298D',
-	"lcaron;":                   '\U0000013E',
-	"lcedil;":                   '\U0000013C',
-	"lceil;":                    '\U00002308',
-	"lcub;":                     '\U0000007B',
-	"lcy;":                      '\U0000043B',
-	"ldca;":                     '\U00002936',
-	"ldquo;":                    '\U0000201C',
-	"ldquor;":                   '\U0000201E',
-	"ldrdhar;":                  '\U00002967',
-	"ldrushar;":                 '\U0000294B',
-	"ldsh;":                     '\U000021B2',
-	"le;":                       '\U00002264',
-	"leftarrow;":                '\U00002190',
-	"leftarrowtail;":            '\U000021A2',
-	"leftharpoondown;":          '\U000021BD',
-	"leftharpoonup;":            '\U000021BC',
-	"leftleftarrows;":           '\U000021C7',
-	"leftrightarrow;":           '\U00002194',
-	"leftrightarrows;":          '\U000021C6',
-	"leftrightharpoons;":        '\U000021CB',
-	"leftrightsquigarrow;":      '\U000021AD',
-	"leftthreetimes;":           '\U000022CB',
-	"leg;":                      '\U000022DA',
-	"leq;":                      '\U00002264',
-	"leqq;":                     '\U00002266',
-	"leqslant;":                 '\U00002A7D',
-	"les;":                      '\U00002A7D',
-	"lescc;":                    '\U00002AA8',
-	"lesdot;":                   '\U00002A7F',
-	"lesdoto;":                  '\U00002A81',
-	"lesdotor;":                 '\U00002A83',
-	"lesges;":                   '\U00002A93',
-	"lessapprox;":               '\U00002A85',
-	"lessdot;":                  '\U000022D6',
-	"lesseqgtr;":                '\U000022DA',
-	"lesseqqgtr;":               '\U00002A8B',
-	"lessgtr;":                  '\U00002276',
-	"lesssim;":                  '\U00002272',
-	"lfisht;":                   '\U0000297C',
-	"lfloor;":                   '\U0000230A',
-	"lfr;":                      '\U0001D529',
-	"lg;":                       '\U00002276',
-	"lgE;":                      '\U00002A91',
-	"lhard;":                    '\U000021BD',
-	"lharu;":                    '\U000021BC',
-	"lharul;":                   '\U0000296A',
-	"lhblk;":                    '\U00002584',
-	"ljcy;":                     '\U00000459',
-	"ll;":                       '\U0000226A',
-	"llarr;":                    '\U000021C7',
-	"llcorner;":                 '\U0000231E',
-	"llhard;":                   '\U0000296B',
-	"lltri;":                    '\U000025FA',
-	"lmidot;":                   '\U00000140',
-	"lmoust;":                   '\U000023B0',
-	"lmoustache;":               '\U000023B0',
-	"lnE;":                      '\U00002268',
-	"lnap;":                     '\U00002A89',
-	"lnapprox;":                 '\U00002A89',
-	"lne;":                      '\U00002A87',
-	"lneq;":                     '\U00002A87',
-	"lneqq;":                    '\U00002268',
-	"lnsim;":                    '\U000022E6',
-	"loang;":                    '\U000027EC',
-	"loarr;":                    '\U000021FD',
-	"lobrk;":                    '\U000027E6',
-	"longleftarrow;":            '\U000027F5',
-	"longleftrightarrow;":       '\U000027F7',
-	"longmapsto;":               '\U000027FC',
-	"longrightarrow;":           '\U000027F6',
-	"looparrowleft;":            '\U000021AB',
-	"looparrowright;":           '\U000021AC',
-	"lopar;":                    '\U00002985',
-	"lopf;":                     '\U0001D55D',
-	"loplus;":                   '\U00002A2D',
-	"lotimes;":                  '\U00002A34',
-	"lowast;":                   '\U00002217',
-	"lowbar;":                   '\U0000005F',
-	"loz;":                      '\U000025CA',
-	"lozenge;":                  '\U000025CA',
-	"lozf;":                     '\U000029EB',
-	"lpar;":                     '\U00000028',
-	"lparlt;":                   '\U00002993',
-	"lrarr;":                    '\U000021C6',
-	"lrcorner;":                 '\U0000231F',
-	"lrhar;":                    '\U000021CB',
-	"lrhard;":                   '\U0000296D',
-	"lrm;":                      '\U0000200E',
-	"lrtri;":                    '\U000022BF',
-	"lsaquo;":                   '\U00002039',
-	"lscr;":                     '\U0001D4C1',
-	"lsh;":                      '\U000021B0',
-	"lsim;":                     '\U00002272',
-	"lsime;":                    '\U00002A8D',
-	"lsimg;":                    '\U00002A8F',
-	"lsqb;":                     '\U0000005B',
-	"lsquo;":                    '\U00002018',
-	"lsquor;":                   '\U0000201A',
-	"lstrok;":                   '\U00000142',
-	"lt;":                       '\U0000003C',
-	"ltcc;":                     '\U00002AA6',
-	"ltcir;":                    '\U00002A79',
-	"ltdot;":                    '\U000022D6',
-	"lthree;":                   '\U000022CB',
-	"ltimes;":                   '\U000022C9',
-	"ltlarr;":                   '\U00002976',
-	"ltquest;":                  '\U00002A7B',
-	"ltrPar;":                   '\U00002996',
-	"ltri;":                     '\U000025C3',
-	"ltrie;":                    '\U000022B4',
-	"ltrif;":                    '\U000025C2',
-	"lurdshar;":                 '\U0000294A',
-	"luruhar;":                  '\U00002966',
-	"mDDot;":                    '\U0000223A',
-	"macr;":                     '\U000000AF',
-	"male;":                     '\U00002642',
-	"malt;":                     '\U00002720',
-	"maltese;":                  '\U00002720',
-	"map;":                      '\U000021A6',
-	"mapsto;":                   '\U000021A6',
-	"mapstodown;":               '\U000021A7',
-	"mapstoleft;":               '\U000021A4',
-	"mapstoup;":                 '\U000021A5',
-	"marker;":                   '\U000025AE',
-	"mcomma;":                   '\U00002A29',
-	"mcy;":                      '\U0000043C',
-	"mdash;":                    '\U00002014',
-	"measuredangle;":            '\U00002221',
-	"mfr;":                      '\U0001D52A',
-	"mho;":                      '\U00002127',
-	"micro;":                    '\U000000B5',
-	"mid;":                      '\U00002223',
-	"midast;":                   '\U0000002A',
-	"midcir;":                   '\U00002AF0',
-	"middot;":                   '\U000000B7',
-	"minus;":                    '\U00002212',
-	"minusb;":                   '\U0000229F',
-	"minusd;":                   '\U00002238',
-	"minusdu;":                  '\U00002A2A',
-	"mlcp;":                     '\U00002ADB',
-	"mldr;":                     '\U00002026',
-	"mnplus;":                   '\U00002213',
-	"models;":                   '\U000022A7',
-	"mopf;":                     '\U0001D55E',
-	"mp;":                       '\U00002213',
-	"mscr;":                     '\U0001D4C2',
-	"mstpos;":                   '\U0000223E',
-	"mu;":                       '\U000003BC',
-	"multimap;":                 '\U000022B8',
-	"mumap;":                    '\U000022B8',
-	"nLeftarrow;":               '\U000021CD',
-	"nLeftrightarrow;":          '\U000021CE',
-	"nRightarrow;":              '\U000021CF',
-	"nVDash;":                   '\U000022AF',
-	"nVdash;":                   '\U000022AE',
-	"nabla;":                    '\U00002207',
-	"nacute;":                   '\U00000144',
-	"nap;":                      '\U00002249',
-	"napos;":                    '\U00000149',
-	"napprox;":                  '\U00002249',
-	"natur;":                    '\U0000266E',
-	"natural;":                  '\U0000266E',
-	"naturals;":                 '\U00002115',
-	"nbsp;":                     '\U000000A0',
-	"ncap;":                     '\U00002A43',
-	"ncaron;":                   '\U00000148',
-	"ncedil;":                   '\U00000146',
-	"ncong;":                    '\U00002247',
-	"ncup;":                     '\U00002A42',
-	"ncy;":                      '\U0000043D',
-	"ndash;":                    '\U00002013',
-	"ne;":                       '\U00002260',
-	"neArr;":                    '\U000021D7',
-	"nearhk;":                   '\U00002924',
-	"nearr;":                    '\U00002197',
-	"nearrow;":                  '\U00002197',
-	"nequiv;":                   '\U00002262',
-	"nesear;":                   '\U00002928',
-	"nexist;":                   '\U00002204',
-	"nexists;":                  '\U00002204',
-	"nfr;":                      '\U0001D52B',
-	"nge;":                      '\U00002271',
-	"ngeq;":                     '\U00002271',
-	"ngsim;":                    '\U00002275',
-	"ngt;":                      '\U0000226F',
-	"ngtr;":                     '\U0000226F',
-	"nhArr;":                    '\U000021CE',
-	"nharr;":                    '\U000021AE',
-	"nhpar;":                    '\U00002AF2',
-	"ni;":                       '\U0000220B',
-	"nis;":                      '\U000022FC',
-	"nisd;":                     '\U000022FA',
-	"niv;":                      '\U0000220B',
-	"njcy;":                     '\U0000045A',
-	"nlArr;":                    '\U000021CD',
-	"nlarr;":                    '\U0000219A',
-	"nldr;":                     '\U00002025',
-	"nle;":                      '\U00002270',
-	"nleftarrow;":               '\U0000219A',
-	"nleftrightarrow;":          '\U000021AE',
-	"nleq;":                     '\U00002270',
-	"nless;":                    '\U0000226E',
-	"nlsim;":                    '\U00002274',
-	"nlt;":                      '\U0000226E',
-	"nltri;":                    '\U000022EA',
-	"nltrie;":                   '\U000022EC',
-	"nmid;":                     '\U00002224',
-	"nopf;":                     '\U0001D55F',
-	"not;":                      '\U000000AC',
-	"notin;":                    '\U00002209',
-	"notinva;":                  '\U00002209',
-	"notinvb;":                  '\U000022F7',
-	"notinvc;":                  '\U000022F6',
-	"notni;":                    '\U0000220C',
-	"notniva;":                  '\U0000220C',
-	"notnivb;":                  '\U000022FE',
-	"notnivc;":                  '\U000022FD',
-	"npar;":                     '\U00002226',
-	"nparallel;":                '\U00002226',
-	"npolint;":                  '\U00002A14',
-	"npr;":                      '\U00002280',
-	"nprcue;":                   '\U000022E0',
-	"nprec;":                    '\U00002280',
-	"nrArr;":                    '\U000021CF',
-	"nrarr;":                    '\U0000219B',
-	"nrightarrow;":              '\U0000219B',
-	"nrtri;":                    '\U000022EB',
-	"nrtrie;":                   '\U000022ED',
-	"nsc;":                      '\U00002281',
-	"nsccue;":                   '\U000022E1',
-	"nscr;":                     '\U0001D4C3',
-	"nshortmid;":                '\U00002224',
-	"nshortparallel;":           '\U00002226',
-	"nsim;":                     '\U00002241',
-	"nsime;":                    '\U00002244',
-	"nsimeq;":                   '\U00002244',
-	"nsmid;":                    '\U00002224',
-	"nspar;":                    '\U00002226',
-	"nsqsube;":                  '\U000022E2',
-	"nsqsupe;":                  '\U000022E3',
-	"nsub;":                     '\U00002284',
-	"nsube;":                    '\U00002288',
-	"nsubseteq;":                '\U00002288',
-	"nsucc;":                    '\U00002281',
-	"nsup;":                     '\U00002285',
-	"nsupe;":                    '\U00002289',
-	"nsupseteq;":                '\U00002289',
-	"ntgl;":                     '\U00002279',
-	"ntilde;":                   '\U000000F1',
-	"ntlg;":                     '\U00002278',
-	"ntriangleleft;":            '\U000022EA',
-	"ntrianglelefteq;":          '\U000022EC',
-	"ntriangleright;":           '\U000022EB',
-	"ntrianglerighteq;":         '\U000022ED',
-	"nu;":                       '\U000003BD',
-	"num;":                      '\U00000023',
-	"numero;":                   '\U00002116',
-	"numsp;":                    '\U00002007',
-	"nvDash;":                   '\U000022AD',
-	"nvHarr;":                   '\U00002904',
-	"nvdash;":                   '\U000022AC',
-	"nvinfin;":                  '\U000029DE',
-	"nvlArr;":                   '\U00002902',
-	"nvrArr;":                   '\U00002903',
-	"nwArr;":                    '\U000021D6',
-	"nwarhk;":                   '\U00002923',
-	"nwarr;":                    '\U00002196',
-	"nwarrow;":                  '\U00002196',
-	"nwnear;":                   '\U00002927',
-	"oS;":                       '\U000024C8',
-	"oacute;":                   '\U000000F3',
-	"oast;":                     '\U0000229B',
-	"ocir;":                     '\U0000229A',
-	"ocirc;":                    '\U000000F4',
-	"ocy;":                      '\U0000043E',
-	"odash;":                    '\U0000229D',
-	"odblac;":                   '\U00000151',
-	"odiv;":                     '\U00002A38',
-	"odot;":                     '\U00002299',
-	"odsold;":                   '\U000029BC',
-	"oelig;":                    '\U00000153',
-	"ofcir;":                    '\U000029BF',
-	"ofr;":                      '\U0001D52C',
-	"ogon;":                     '\U000002DB',
-	"ograve;":                   '\U000000F2',
-	"ogt;":                      '\U000029C1',
-	"ohbar;":                    '\U000029B5',
-	"ohm;":                      '\U000003A9',
-	"oint;":                     '\U0000222E',
-	"olarr;":                    '\U000021BA',
-	"olcir;":                    '\U000029BE',
-	"olcross;":                  '\U000029BB',
-	"oline;":                    '\U0000203E',
-	"olt;":                      '\U000029C0',
-	"omacr;":                    '\U0000014D',
-	"omega;":                    '\U000003C9',
-	"omicron;":                  '\U000003BF',
-	"omid;":                     '\U000029B6',
-	"ominus;":                   '\U00002296',
-	"oopf;":                     '\U0001D560',
-	"opar;":                     '\U000029B7',
-	"operp;":                    '\U000029B9',
-	"oplus;":                    '\U00002295',
-	"or;":                       '\U00002228',
-	"orarr;":                    '\U000021BB',
-	"ord;":                      '\U00002A5D',
-	"order;":                    '\U00002134',
-	"orderof;":                  '\U00002134',
-	"ordf;":                     '\U000000AA',
-	"ordm;":                     '\U000000BA',
-	"origof;":                   '\U000022B6',
-	"oror;":                     '\U00002A56',
-	"orslope;":                  '\U00002A57',
-	"orv;":                      '\U00002A5B',
-	"oscr;":                     '\U00002134',
-	"oslash;":                   '\U000000F8',
-	"osol;":                     '\U00002298',
-	"otilde;":                   '\U000000F5',
-	"otimes;":                   '\U00002297',
-	"otimesas;":                 '\U00002A36',
-	"ouml;":                     '\U000000F6',
-	"ovbar;":                    '\U0000233D',
-	"par;":                      '\U00002225',
-	"para;":                     '\U000000B6',
-	"parallel;":                 '\U00002225',
-	"parsim;":                   '\U00002AF3',
-	"parsl;":                    '\U00002AFD',
-	"part;":                     '\U00002202',
-	"pcy;":                      '\U0000043F',
-	"percnt;":                   '\U00000025',
-	"period;":                   '\U0000002E',
-	"permil;":                   '\U00002030',
-	"perp;":                     '\U000022A5',
-	"pertenk;":                  '\U00002031',
-	"pfr;":                      '\U0001D52D',
-	"phi;":                      '\U000003C6',
-	"phiv;":                     '\U000003D5',
-	"phmmat;":                   '\U00002133',
-	"phone;":                    '\U0000260E',
-	"pi;":                       '\U000003C0',
-	"pitchfork;":                '\U000022D4',
-	"piv;":                      '\U000003D6',
-	"planck;":                   '\U0000210F',
-	"planckh;":                  '\U0000210E',
-	"plankv;":                   '\U0000210F',
-	"plus;":                     '\U0000002B',
-	"plusacir;":                 '\U00002A23',
-	"plusb;":                    '\U0000229E',
-	"pluscir;":                  '\U00002A22',
-	"plusdo;":                   '\U00002214',
-	"plusdu;":                   '\U00002A25',
-	"pluse;":                    '\U00002A72',
-	"plusmn;":                   '\U000000B1',
-	"plussim;":                  '\U00002A26',
-	"plustwo;":                  '\U00002A27',
-	"pm;":                       '\U000000B1',
-	"pointint;":                 '\U00002A15',
-	"popf;":                     '\U0001D561',
-	"pound;":                    '\U000000A3',
-	"pr;":                       '\U0000227A',
-	"prE;":                      '\U00002AB3',
-	"prap;":                     '\U00002AB7',
-	"prcue;":                    '\U0000227C',
-	"pre;":                      '\U00002AAF',
-	"prec;":                     '\U0000227A',
-	"precapprox;":               '\U00002AB7',
-	"preccurlyeq;":              '\U0000227C',
-	"preceq;":                   '\U00002AAF',
-	"precnapprox;":              '\U00002AB9',
-	"precneqq;":                 '\U00002AB5',
-	"precnsim;":                 '\U000022E8',
-	"precsim;":                  '\U0000227E',
-	"prime;":                    '\U00002032',
-	"primes;":                   '\U00002119',
-	"prnE;":                     '\U00002AB5',
-	"prnap;":                    '\U00002AB9',
-	"prnsim;":                   '\U000022E8',
-	"prod;":                     '\U0000220F',
-	"profalar;":                 '\U0000232E',
-	"profline;":                 '\U00002312',
-	"profsurf;":                 '\U00002313',
-	"prop;":                     '\U0000221D',
-	"propto;":                   '\U0000221D',
-	"prsim;":                    '\U0000227E',
-	"prurel;":                   '\U000022B0',
-	"pscr;":                     '\U0001D4C5',
-	"psi;":                      '\U000003C8',
-	"puncsp;":                   '\U00002008',
-	"qfr;":                      '\U0001D52E',
-	"qint;":                     '\U00002A0C',
-	"qopf;":                     '\U0001D562',
-	"qprime;":                   '\U00002057',
-	"qscr;":                     '\U0001D4C6',
-	"quaternions;":              '\U0000210D',
-	"quatint;":                  '\U00002A16',
-	"quest;":                    '\U0000003F',
-	"questeq;":                  '\U0000225F',
-	"quot;":                     '\U00000022',
-	"rAarr;":                    '\U000021DB',
-	"rArr;":                     '\U000021D2',
-	"rAtail;":                   '\U0000291C',
-	"rBarr;":                    '\U0000290F',
-	"rHar;":                     '\U00002964',
-	"racute;":                   '\U00000155',
-	"radic;":                    '\U0000221A',
-	"raemptyv;":                 '\U000029B3',
-	"rang;":                     '\U000027E9',
-	"rangd;":                    '\U00002992',
-	"range;":                    '\U000029A5',
-	"rangle;":                   '\U000027E9',
-	"raquo;":                    '\U000000BB',
-	"rarr;":                     '\U00002192',
-	"rarrap;":                   '\U00002975',
-	"rarrb;":                    '\U000021E5',
-	"rarrbfs;":                  '\U00002920',
-	"rarrc;":                    '\U00002933',
-	"rarrfs;":                   '\U0000291E',
-	"rarrhk;":                   '\U000021AA',
-	"rarrlp;":                   '\U000021AC',
-	"rarrpl;":                   '\U00002945',
-	"rarrsim;":                  '\U00002974',
-	"rarrtl;":                   '\U000021A3',
-	"rarrw;":                    '\U0000219D',
-	"ratail;":                   '\U0000291A',
-	"ratio;":                    '\U00002236',
-	"rationals;":                '\U0000211A',
-	"rbarr;":                    '\U0000290D',
-	"rbbrk;":                    '\U00002773',
-	"rbrace;":                   '\U0000007D',
-	"rbrack;":                   '\U0000005D',
-	"rbrke;":                    '\U0000298C',
-	"rbrksld;":                  '\U0000298E',
-	"rbrkslu;":                  '\U00002990',
-	"rcaron;":                   '\U00000159',
-	"rcedil;":                   '\U00000157',
-	"rceil;":                    '\U00002309',
-	"rcub;":                     '\U0000007D',
-	"rcy;":                      '\U00000440',
-	"rdca;":                     '\U00002937',
-	"rdldhar;":                  '\U00002969',
-	"rdquo;":                    '\U0000201D',
-	"rdquor;":                   '\U0000201D',
-	"rdsh;":                     '\U000021B3',
-	"real;":                     '\U0000211C',
-	"realine;":                  '\U0000211B',
-	"realpart;":                 '\U0000211C',
-	"reals;":                    '\U0000211D',
-	"rect;":                     '\U000025AD',
-	"reg;":                      '\U000000AE',
-	"rfisht;":                   '\U0000297D',
-	"rfloor;":                   '\U0000230B',
-	"rfr;":                      '\U0001D52F',
-	"rhard;":                    '\U000021C1',
-	"rharu;":                    '\U000021C0',
-	"rharul;":                   '\U0000296C',
-	"rho;":                      '\U000003C1',
-	"rhov;":                     '\U000003F1',
-	"rightarrow;":               '\U00002192',
-	"rightarrowtail;":           '\U000021A3',
-	"rightharpoondown;":         '\U000021C1',
-	"rightharpoonup;":           '\U000021C0',
-	"rightleftarrows;":          '\U000021C4',
-	"rightleftharpoons;":        '\U000021CC',
-	"rightrightarrows;":         '\U000021C9',
-	"rightsquigarrow;":          '\U0000219D',
-	"rightthreetimes;":          '\U000022CC',
-	"ring;":                     '\U000002DA',
-	"risingdotseq;":             '\U00002253',
-	"rlarr;":                    '\U000021C4',
-	"rlhar;":                    '\U000021CC',
-	"rlm;":                      '\U0000200F',
-	"rmoust;":                   '\U000023B1',
-	"rmoustache;":               '\U000023B1',
-	"rnmid;":                    '\U00002AEE',
-	"roang;":                    '\U000027ED',
-	"roarr;":                    '\U000021FE',
-	"robrk;":                    '\U000027E7',
-	"ropar;":                    '\U00002986',
-	"ropf;":                     '\U0001D563',
-	"roplus;":                   '\U00002A2E',
-	"rotimes;":                  '\U00002A35',
-	"rpar;":                     '\U00000029',
-	"rpargt;":                   '\U00002994',
-	"rppolint;":                 '\U00002A12',
-	"rrarr;":                    '\U000021C9',
-	"rsaquo;":                   '\U0000203A',
-	"rscr;":                     '\U0001D4C7',
-	"rsh;":                      '\U000021B1',
-	"rsqb;":                     '\U0000005D',
-	"rsquo;":                    '\U00002019',
-	"rsquor;":                   '\U00002019',
-	"rthree;":                   '\U000022CC',
-	"rtimes;":                   '\U000022CA',
-	"rtri;":                     '\U000025B9',
-	"rtrie;":                    '\U000022B5',
-	"rtrif;":                    '\U000025B8',
-	"rtriltri;":                 '\U000029CE',
-	"ruluhar;":                  '\U00002968',
-	"rx;":                       '\U0000211E',
-	"sacute;":                   '\U0000015B',
-	"sbquo;":                    '\U0000201A',
-	"sc;":                       '\U0000227B',
-	"scE;":                      '\U00002AB4',
-	"scap;":                     '\U00002AB8',
-	"scaron;":                   '\U00000161',
-	"sccue;":                    '\U0000227D',
-	"sce;":                      '\U00002AB0',
-	"scedil;":                   '\U0000015F',
-	"scirc;":                    '\U0000015D',
-	"scnE;":                     '\U00002AB6',
-	"scnap;":                    '\U00002ABA',
-	"scnsim;":                   '\U000022E9',
-	"scpolint;":                 '\U00002A13',
-	"scsim;":                    '\U0000227F',
-	"scy;":                      '\U00000441',
-	"sdot;":                     '\U000022C5',
-	"sdotb;":                    '\U000022A1',
-	"sdote;":                    '\U00002A66',
-	"seArr;":                    '\U000021D8',
-	"searhk;":                   '\U00002925',
-	"searr;":                    '\U00002198',
-	"searrow;":                  '\U00002198',
-	"sect;":                     '\U000000A7',
-	"semi;":                     '\U0000003B',
-	"seswar;":                   '\U00002929',
-	"setminus;":                 '\U00002216',
-	"setmn;":                    '\U00002216',
-	"sext;":                     '\U00002736',
-	"sfr;":                      '\U0001D530',
-	"sfrown;":                   '\U00002322',
-	"sharp;":                    '\U0000266F',
-	"shchcy;":                   '\U00000449',
-	"shcy;":                     '\U00000448',
-	"shortmid;":                 '\U00002223',
-	"shortparallel;":            '\U00002225',
-	"shy;":                      '\U000000AD',
-	"sigma;":                    '\U000003C3',
-	"sigmaf;":                   '\U000003C2',
-	"sigmav;":                   '\U000003C2',
-	"sim;":                      '\U0000223C',
-	"simdot;":                   '\U00002A6A',
-	"sime;":                     '\U00002243',
-	"simeq;":                    '\U00002243',
-	"simg;":                     '\U00002A9E',
-	"simgE;":                    '\U00002AA0',
-	"siml;":                     '\U00002A9D',
-	"simlE;":                    '\U00002A9F',
-	"simne;":                    '\U00002246',
-	"simplus;":                  '\U00002A24',
-	"simrarr;":                  '\U00002972',
-	"slarr;":                    '\U00002190',
-	"smallsetminus;":            '\U00002216',
-	"smashp;":                   '\U00002A33',
-	"smeparsl;":                 '\U000029E4',
-	"smid;":                     '\U00002223',
-	"smile;":                    '\U00002323',
-	"smt;":                      '\U00002AAA',
-	"smte;":                     '\U00002AAC',
-	"softcy;":                   '\U0000044C',
-	"sol;":                      '\U0000002F',
-	"solb;":                     '\U000029C4',
-	"solbar;":                   '\U0000233F',
-	"sopf;":                     '\U0001D564',
-	"spades;":                   '\U00002660',
-	"spadesuit;":                '\U00002660',
-	"spar;":                     '\U00002225',
-	"sqcap;":                    '\U00002293',
-	"sqcup;":                    '\U00002294',
-	"sqsub;":                    '\U0000228F',
-	"sqsube;":                   '\U00002291',
-	"sqsubset;":                 '\U0000228F',
-	"sqsubseteq;":               '\U00002291',
-	"sqsup;":                    '\U00002290',
-	"sqsupe;":                   '\U00002292',
-	"sqsupset;":                 '\U00002290',
-	"sqsupseteq;":               '\U00002292',
-	"squ;":                      '\U000025A1',
-	"square;":                   '\U000025A1',
-	"squarf;":                   '\U000025AA',
-	"squf;":                     '\U000025AA',
-	"srarr;":                    '\U00002192',
-	"sscr;":                     '\U0001D4C8',
-	"ssetmn;":                   '\U00002216',
-	"ssmile;":                   '\U00002323',
-	"sstarf;":                   '\U000022C6',
-	"star;":                     '\U00002606',
-	"starf;":                    '\U00002605',
-	"straightepsilon;":          '\U000003F5',
-	"straightphi;":              '\U000003D5',
-	"strns;":                    '\U000000AF',
-	"sub;":                      '\U00002282',
-	"subE;":                     '\U00002AC5',
-	"subdot;":                   '\U00002ABD',
-	"sube;":                     '\U00002286',
-	"subedot;":                  '\U00002AC3',
-	"submult;":                  '\U00002AC1',
-	"subnE;":                    '\U00002ACB',
-	"subne;":                    '\U0000228A',
-	"subplus;":                  '\U00002ABF',
-	"subrarr;":                  '\U00002979',
-	"subset;":                   '\U00002282',
-	"subseteq;":                 '\U00002286',
-	"subseteqq;":                '\U00002AC5',
-	"subsetneq;":                '\U0000228A',
-	"subsetneqq;":               '\U00002ACB',
-	"subsim;":                   '\U00002AC7',
-	"subsub;":                   '\U00002AD5',
-	"subsup;":                   '\U00002AD3',
-	"succ;":                     '\U0000227B',
-	"succapprox;":               '\U00002AB8',
-	"succcurlyeq;":              '\U0000227D',
-	"succeq;":                   '\U00002AB0',
-	"succnapprox;":              '\U00002ABA',
-	"succneqq;":                 '\U00002AB6',
-	"succnsim;":                 '\U000022E9',
-	"succsim;":                  '\U0000227F',
-	"sum;":                      '\U00002211',
-	"sung;":                     '\U0000266A',
-	"sup;":                      '\U00002283',
-	"sup1;":                     '\U000000B9',
-	"sup2;":                     '\U000000B2',
-	"sup3;":                     '\U000000B3',
-	"supE;":                     '\U00002AC6',
-	"supdot;":                   '\U00002ABE',
-	"supdsub;":                  '\U00002AD8',
-	"supe;":                     '\U00002287',
-	"supedot;":                  '\U00002AC4',
-	"suphsol;":                  '\U000027C9',
-	"suphsub;":                  '\U00002AD7',
-	"suplarr;":                  '\U0000297B',
-	"supmult;":                  '\U00002AC2',
-	"supnE;":                    '\U00002ACC',
-	"supne;":                    '\U0000228B',
-	"supplus;":                  '\U00002AC0',
-	"supset;":                   '\U00002283',
-	"supseteq;":                 '\U00002287',
-	"supseteqq;":                '\U00002AC6',
-	"supsetneq;":                '\U0000228B',
-	"supsetneqq;":               '\U00002ACC',
-	"supsim;":                   '\U00002AC8',
-	"supsub;":                   '\U00002AD4',
-	"supsup;":                   '\U00002AD6',
-	"swArr;":                    '\U000021D9',
-	"swarhk;":                   '\U00002926',
-	"swarr;":                    '\U00002199',
-	"swarrow;":                  '\U00002199',
-	"swnwar;":                   '\U0000292A',
-	"szlig;":                    '\U000000DF',
-	"target;":                   '\U00002316',
-	"tau;":                      '\U000003C4',
-	"tbrk;":                     '\U000023B4',
-	"tcaron;":                   '\U00000165',
-	"tcedil;":                   '\U00000163',
-	"tcy;":                      '\U00000442',
-	"tdot;":                     '\U000020DB',
-	"telrec;":                   '\U00002315',
-	"tfr;":                      '\U0001D531',
-	"there4;":                   '\U00002234',
-	"therefore;":                '\U00002234',
-	"theta;":                    '\U000003B8',
-	"thetasym;":                 '\U000003D1',
-	"thetav;":                   '\U000003D1',
-	"thickapprox;":              '\U00002248',
-	"thicksim;":                 '\U0000223C',
-	"thinsp;":                   '\U00002009',
-	"thkap;":                    '\U00002248',
-	"thksim;":                   '\U0000223C',
-	"thorn;":                    '\U000000FE',
-	"tilde;":                    '\U000002DC',
-	"times;":                    '\U000000D7',
-	"timesb;":                   '\U000022A0',
-	"timesbar;":                 '\U00002A31',
-	"timesd;":                   '\U00002A30',
-	"tint;":                     '\U0000222D',
-	"toea;":                     '\U00002928',
-	"top;":                      '\U000022A4',
-	"topbot;":                   '\U00002336',
-	"topcir;":                   '\U00002AF1',
-	"topf;":                     '\U0001D565',
-	"topfork;":                  '\U00002ADA',
-	"tosa;":                     '\U00002929',
-	"tprime;":                   '\U00002034',
-	"trade;":                    '\U00002122',
-	"triangle;":                 '\U000025B5',
-	"triangledown;":             '\U000025BF',
-	"triangleleft;":             '\U000025C3',
-	"trianglelefteq;":           '\U000022B4',
-	"triangleq;":                '\U0000225C',
-	"triangleright;":            '\U000025B9',
-	"trianglerighteq;":          '\U000022B5',
-	"tridot;":                   '\U000025EC',
-	"trie;":                     '\U0000225C',
-	"triminus;":                 '\U00002A3A',
-	"triplus;":                  '\U00002A39',
-	"trisb;":                    '\U000029CD',
-	"tritime;":                  '\U00002A3B',
-	"trpezium;":                 '\U000023E2',
-	"tscr;":                     '\U0001D4C9',
-	"tscy;":                     '\U00000446',
-	"tshcy;":                    '\U0000045B',
-	"tstrok;":                   '\U00000167',
-	"twixt;":                    '\U0000226C',
-	"twoheadleftarrow;":         '\U0000219E',
-	"twoheadrightarrow;":        '\U000021A0',
-	"uArr;":                     '\U000021D1',
-	"uHar;":                     '\U00002963',
-	"uacute;":                   '\U000000FA',
-	"uarr;":                     '\U00002191',
-	"ubrcy;":                    '\U0000045E',
-	"ubreve;":                   '\U0000016D',
-	"ucirc;":                    '\U000000FB',
-	"ucy;":                      '\U00000443',
-	"udarr;":                    '\U000021C5',
-	"udblac;":                   '\U00000171',
-	"udhar;":                    '\U0000296E',
-	"ufisht;":                   '\U0000297E',
-	"ufr;":                      '\U0001D532',
-	"ugrave;":                   '\U000000F9',
-	"uharl;":                    '\U000021BF',
-	"uharr;":                    '\U000021BE',
-	"uhblk;":                    '\U00002580',
-	"ulcorn;":                   '\U0000231C',
-	"ulcorner;":                 '\U0000231C',
-	"ulcrop;":                   '\U0000230F',
-	"ultri;":                    '\U000025F8',
-	"umacr;":                    '\U0000016B',
-	"uml;":                      '\U000000A8',
-	"uogon;":                    '\U00000173',
-	"uopf;":                     '\U0001D566',
-	"uparrow;":                  '\U00002191',
-	"updownarrow;":              '\U00002195',
-	"upharpoonleft;":            '\U000021BF',
-	"upharpoonright;":           '\U000021BE',
-	"uplus;":                    '\U0000228E',
-	"upsi;":                     '\U000003C5',
-	"upsih;":                    '\U000003D2',
-	"upsilon;":                  '\U000003C5',
-	"upuparrows;":               '\U000021C8',
-	"urcorn;":                   '\U0000231D',
-	"urcorner;":                 '\U0000231D',
-	"urcrop;":                   '\U0000230E',
-	"uring;":                    '\U0000016F',
-	"urtri;":                    '\U000025F9',
-	"uscr;":                     '\U0001D4CA',
-	"utdot;":                    '\U000022F0',
-	"utilde;":                   '\U00000169',
-	"utri;":                     '\U000025B5',
-	"utrif;":                    '\U000025B4',
-	"uuarr;":                    '\U000021C8',
-	"uuml;":                     '\U000000FC',
-	"uwangle;":                  '\U000029A7',
-	"vArr;":                     '\U000021D5',
-	"vBar;":                     '\U00002AE8',
-	"vBarv;":                    '\U00002AE9',
-	"vDash;":                    '\U000022A8',
-	"vangrt;":                   '\U0000299C',
-	"varepsilon;":               '\U000003F5',
-	"varkappa;":                 '\U000003F0',
-	"varnothing;":               '\U00002205',
-	"varphi;":                   '\U000003D5',
-	"varpi;":                    '\U000003D6',
-	"varpropto;":                '\U0000221D',
-	"varr;":                     '\U00002195',
-	"varrho;":                   '\U000003F1',
-	"varsigma;":                 '\U000003C2',
-	"vartheta;":                 '\U000003D1',
-	"vartriangleleft;":          '\U000022B2',
-	"vartriangleright;":         '\U000022B3',
-	"vcy;":                      '\U00000432',
-	"vdash;":                    '\U000022A2',
-	"vee;":                      '\U00002228',
-	"veebar;":                   '\U000022BB',
-	"veeeq;":                    '\U0000225A',
-	"vellip;":                   '\U000022EE',
-	"verbar;":                   '\U0000007C',
-	"vert;":                     '\U0000007C',
-	"vfr;":                      '\U0001D533',
-	"vltri;":                    '\U000022B2',
-	"vopf;":                     '\U0001D567',
-	"vprop;":                    '\U0000221D',
-	"vrtri;":                    '\U000022B3',
-	"vscr;":                     '\U0001D4CB',
-	"vzigzag;":                  '\U0000299A',
-	"wcirc;":                    '\U00000175',
-	"wedbar;":                   '\U00002A5F',
-	"wedge;":                    '\U00002227',
-	"wedgeq;":                   '\U00002259',
-	"weierp;":                   '\U00002118',
-	"wfr;":                      '\U0001D534',
-	"wopf;":                     '\U0001D568',
-	"wp;":                       '\U00002118',
-	"wr;":                       '\U00002240',
-	"wreath;":                   '\U00002240',
-	"wscr;":                     '\U0001D4CC',
-	"xcap;":                     '\U000022C2',
-	"xcirc;":                    '\U000025EF',
-	"xcup;":                     '\U000022C3',
-	"xdtri;":                    '\U000025BD',
-	"xfr;":                      '\U0001D535',
-	"xhArr;":                    '\U000027FA',
-	"xharr;":                    '\U000027F7',
-	"xi;":                       '\U000003BE',
-	"xlArr;":                    '\U000027F8',
-	"xlarr;":                    '\U000027F5',
-	"xmap;":                     '\U000027FC',
-	"xnis;":                     '\U000022FB',
-	"xodot;":                    '\U00002A00',
-	"xopf;":                     '\U0001D569',
-	"xoplus;":                   '\U00002A01',
-	"xotime;":                   '\U00002A02',
-	"xrArr;":                    '\U000027F9',
-	"xrarr;":                    '\U000027F6',
-	"xscr;":                     '\U0001D4CD',
-	"xsqcup;":                   '\U00002A06',
-	"xuplus;":                   '\U00002A04',
-	"xutri;":                    '\U000025B3',
-	"xvee;":                     '\U000022C1',
-	"xwedge;":                   '\U000022C0',
-	"yacute;":                   '\U000000FD',
-	"yacy;":                     '\U0000044F',
-	"ycirc;":                    '\U00000177',
-	"ycy;":                      '\U0000044B',
-	"yen;":                      '\U000000A5',
-	"yfr;":                      '\U0001D536',
-	"yicy;":                     '\U00000457',
-	"yopf;":                     '\U0001D56A',
-	"yscr;":                     '\U0001D4CE',
-	"yucy;":                     '\U0000044E',
-	"yuml;":                     '\U000000FF',
-	"zacute;":                   '\U0000017A',
-	"zcaron;":                   '\U0000017E',
-	"zcy;":                      '\U00000437',
-	"zdot;":                     '\U0000017C',
-	"zeetrf;":                   '\U00002128',
-	"zeta;":                     '\U000003B6',
-	"zfr;":                      '\U0001D537',
-	"zhcy;":                     '\U00000436',
-	"zigrarr;":                  '\U000021DD',
-	"zopf;":                     '\U0001D56B',
-	"zscr;":                     '\U0001D4CF',
-	"zwj;":                      '\U0000200D',
-	"zwnj;":                     '\U0000200C',
-	"AElig":                     '\U000000C6',
-	"AMP":                       '\U00000026',
-	"Aacute":                    '\U000000C1',
-	"Acirc":                     '\U000000C2',
-	"Agrave":                    '\U000000C0',
-	"Aring":                     '\U000000C5',
-	"Atilde":                    '\U000000C3',
-	"Auml":                      '\U000000C4',
-	"COPY":                      '\U000000A9',
-	"Ccedil":                    '\U000000C7',
-	"ETH":                       '\U000000D0',
-	"Eacute":                    '\U000000C9',
-	"Ecirc":                     '\U000000CA',
-	"Egrave":                    '\U000000C8',
-	"Euml":                      '\U000000CB',
-	"GT":                        '\U0000003E',
-	"Iacute":                    '\U000000CD',
-	"Icirc":                     '\U000000CE',
-	"Igrave":                    '\U000000CC',
-	"Iuml":                      '\U000000CF',
-	"LT":                        '\U0000003C',
-	"Ntilde":                    '\U000000D1',
-	"Oacute":                    '\U000000D3',
-	"Ocirc":                     '\U000000D4',
-	"Ograve":                    '\U000000D2',
-	"Oslash":                    '\U000000D8',
-	"Otilde":                    '\U000000D5',
-	"Ouml":                      '\U000000D6',
-	"QUOT":                      '\U00000022',
-	"REG":                       '\U000000AE',
-	"THORN":                     '\U000000DE',
-	"Uacute":                    '\U000000DA',
-	"Ucirc":                     '\U000000DB',
-	"Ugrave":                    '\U000000D9',
-	"Uuml":                      '\U000000DC',
-	"Yacute":                    '\U000000DD',
-	"aacute":                    '\U000000E1',
-	"acirc":                     '\U000000E2',
-	"acute":                     '\U000000B4',
-	"aelig":                     '\U000000E6',
-	"agrave":                    '\U000000E0',
-	"amp":                       '\U00000026',
-	"aring":                     '\U000000E5',
-	"atilde":                    '\U000000E3',
-	"auml":                      '\U000000E4',
-	"brvbar":                    '\U000000A6',
-	"ccedil":                    '\U000000E7',
-	"cedil":                     '\U000000B8',
-	"cent":                      '\U000000A2',
-	"copy":                      '\U000000A9',
-	"curren":                    '\U000000A4',
-	"deg":                       '\U000000B0',
-	"divide":                    '\U000000F7',
-	"eacute":                    '\U000000E9',
-	"ecirc":                     '\U000000EA',
-	"egrave":                    '\U000000E8',
-	"eth":                       '\U000000F0',
-	"euml":                      '\U000000EB',
-	"frac12":                    '\U000000BD',
-	"frac14":                    '\U000000BC',
-	"frac34":                    '\U000000BE',
-	"gt":                        '\U0000003E',
-	"iacute":                    '\U000000ED',
-	"icirc":                     '\U000000EE',
-	"iexcl":                     '\U000000A1',
-	"igrave":                    '\U000000EC',
-	"iquest":                    '\U000000BF',
-	"iuml":                      '\U000000EF',
-	"laquo":                     '\U000000AB',
-	"lt":                        '\U0000003C',
-	"macr":                      '\U000000AF',
-	"micro":                     '\U000000B5',
-	"middot":                    '\U000000B7',
-	"nbsp":                      '\U000000A0',
-	"not":                       '\U000000AC',
-	"ntilde":                    '\U000000F1',
-	"oacute":                    '\U000000F3',
-	"ocirc":                     '\U000000F4',
-	"ograve":                    '\U000000F2',
-	"ordf":                      '\U000000AA',
-	"ordm":                      '\U000000BA',
-	"oslash":                    '\U000000F8',
-	"otilde":                    '\U000000F5',
-	"ouml":                      '\U000000F6',
-	"para":                      '\U000000B6',
-	"plusmn":                    '\U000000B1',
-	"pound":                     '\U000000A3',
-	"quot":                      '\U00000022',
-	"raquo":                     '\U000000BB',
-	"reg":                       '\U000000AE',
-	"sect":                      '\U000000A7',
-	"shy":                       '\U000000AD',
-	"sup1":                      '\U000000B9',
-	"sup2":                      '\U000000B2',
-	"sup3":                      '\U000000B3',
-	"szlig":                     '\U000000DF',
-	"thorn":                     '\U000000FE',
-	"times":                     '\U000000D7',
-	"uacute":                    '\U000000FA',
-	"ucirc":                     '\U000000FB',
-	"ugrave":                    '\U000000F9',
-	"uml":                       '\U000000A8',
-	"uuml":                      '\U000000FC',
-	"yacute":                    '\U000000FD',
-	"yen":                       '\U000000A5',
-	"yuml":                      '\U000000FF',
-}
-
-// HTML entities that are two unicode codepoints.
-var entity2 = map[string][2]rune{
-	// TODO(nigeltao): Handle replacements that are wider than their names.
-	// "nLt;":                     {'\u226A', '\u20D2'},
-	// "nGt;":                     {'\u226B', '\u20D2'},
-	"NotEqualTilde;":           {'\u2242', '\u0338'},
-	"NotGreaterFullEqual;":     {'\u2267', '\u0338'},
-	"NotGreaterGreater;":       {'\u226B', '\u0338'},
-	"NotGreaterSlantEqual;":    {'\u2A7E', '\u0338'},
-	"NotHumpDownHump;":         {'\u224E', '\u0338'},
-	"NotHumpEqual;":            {'\u224F', '\u0338'},
-	"NotLeftTriangleBar;":      {'\u29CF', '\u0338'},
-	"NotLessLess;":             {'\u226A', '\u0338'},
-	"NotLessSlantEqual;":       {'\u2A7D', '\u0338'},
-	"NotNestedGreaterGreater;": {'\u2AA2', '\u0338'},
-	"NotNestedLessLess;":       {'\u2AA1', '\u0338'},
-	"NotPrecedesEqual;":        {'\u2AAF', '\u0338'},
-	"NotRightTriangleBar;":     {'\u29D0', '\u0338'},
-	"NotSquareSubset;":         {'\u228F', '\u0338'},
-	"NotSquareSuperset;":       {'\u2290', '\u0338'},
-	"NotSubset;":               {'\u2282', '\u20D2'},
-	"NotSucceedsEqual;":        {'\u2AB0', '\u0338'},
-	"NotSucceedsTilde;":        {'\u227F', '\u0338'},
-	"NotSuperset;":             {'\u2283', '\u20D2'},
-	"ThickSpace;":              {'\u205F', '\u200A'},
-	"acE;":                     {'\u223E', '\u0333'},
-	"bne;":                     {'\u003D', '\u20E5'},
-	"bnequiv;":                 {'\u2261', '\u20E5'},
-	"caps;":                    {'\u2229', '\uFE00'},
-	"cups;":                    {'\u222A', '\uFE00'},
-	"fjlig;":                   {'\u0066', '\u006A'},
-	"gesl;":                    {'\u22DB', '\uFE00'},
-	"gvertneqq;":               {'\u2269', '\uFE00'},
-	"gvnE;":                    {'\u2269', '\uFE00'},
-	"lates;":                   {'\u2AAD', '\uFE00'},
-	"lesg;":                    {'\u22DA', '\uFE00'},
-	"lvertneqq;":               {'\u2268', '\uFE00'},
-	"lvnE;":                    {'\u2268', '\uFE00'},
-	"nGg;":                     {'\u22D9', '\u0338'},
-	"nGtv;":                    {'\u226B', '\u0338'},
-	"nLl;":                     {'\u22D8', '\u0338'},
-	"nLtv;":                    {'\u226A', '\u0338'},
-	"nang;":                    {'\u2220', '\u20D2'},
-	"napE;":                    {'\u2A70', '\u0338'},
-	"napid;":                   {'\u224B', '\u0338'},
-	"nbump;":                   {'\u224E', '\u0338'},
-	"nbumpe;":                  {'\u224F', '\u0338'},
-	"ncongdot;":                {'\u2A6D', '\u0338'},
-	"nedot;":                   {'\u2250', '\u0338'},
-	"nesim;":                   {'\u2242', '\u0338'},
-	"ngE;":                     {'\u2267', '\u0338'},
-	"ngeqq;":                   {'\u2267', '\u0338'},
-	"ngeqslant;":               {'\u2A7E', '\u0338'},
-	"nges;":                    {'\u2A7E', '\u0338'},
-	"nlE;":                     {'\u2266', '\u0338'},
-	"nleqq;":                   {'\u2266', '\u0338'},
-	"nleqslant;":               {'\u2A7D', '\u0338'},
-	"nles;":                    {'\u2A7D', '\u0338'},
-	"notinE;":                  {'\u22F9', '\u0338'},
-	"notindot;":                {'\u22F5', '\u0338'},
-	"nparsl;":                  {'\u2AFD', '\u20E5'},
-	"npart;":                   {'\u2202', '\u0338'},
-	"npre;":                    {'\u2AAF', '\u0338'},
-	"npreceq;":                 {'\u2AAF', '\u0338'},
-	"nrarrc;":                  {'\u2933', '\u0338'},
-	"nrarrw;":                  {'\u219D', '\u0338'},
-	"nsce;":                    {'\u2AB0', '\u0338'},
-	"nsubE;":                   {'\u2AC5', '\u0338'},
-	"nsubset;":                 {'\u2282', '\u20D2'},
-	"nsubseteqq;":              {'\u2AC5', '\u0338'},
-	"nsucceq;":                 {'\u2AB0', '\u0338'},
-	"nsupE;":                   {'\u2AC6', '\u0338'},
-	"nsupset;":                 {'\u2283', '\u20D2'},
-	"nsupseteqq;":              {'\u2AC6', '\u0338'},
-	"nvap;":                    {'\u224D', '\u20D2'},
-	"nvge;":                    {'\u2265', '\u20D2'},
-	"nvgt;":                    {'\u003E', '\u20D2'},
-	"nvle;":                    {'\u2264', '\u20D2'},
-	"nvlt;":                    {'\u003C', '\u20D2'},
-	"nvltrie;":                 {'\u22B4', '\u20D2'},
-	"nvrtrie;":                 {'\u22B5', '\u20D2'},
-	"nvsim;":                   {'\u223C', '\u20D2'},
-	"race;":                    {'\u223D', '\u0331'},
-	"smtes;":                   {'\u2AAC', '\uFE00'},
-	"sqcaps;":                  {'\u2293', '\uFE00'},
-	"sqcups;":                  {'\u2294', '\uFE00'},
-	"varsubsetneq;":            {'\u228A', '\uFE00'},
-	"varsubsetneqq;":           {'\u2ACB', '\uFE00'},
-	"varsupsetneq;":            {'\u228B', '\uFE00'},
-	"varsupsetneqq;":           {'\u2ACC', '\uFE00'},
-	"vnsub;":                   {'\u2282', '\u20D2'},
-	"vnsup;":                   {'\u2283', '\u20D2'},
-	"vsubnE;":                  {'\u2ACB', '\uFE00'},
-	"vsubne;":                  {'\u228A', '\uFE00'},
-	"vsupnE;":                  {'\u2ACC', '\uFE00'},
-	"vsupne;":                  {'\u228B', '\uFE00'},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/entity_test.go gcc-4.8.1/libgo/go/exp/html/entity_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/entity_test.go	2012-02-01 13:26:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/entity_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,29 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"testing"
-	"unicode/utf8"
-)
-
-func TestEntityLength(t *testing.T) {
-	// We verify that the length of UTF-8 encoding of each value is <= 1 + len(key).
-	// The +1 comes from the leading "&". This property implies that the length of
-	// unescaped text is <= the length of escaped text.
-	for k, v := range entity {
-		if 1+len(k) < utf8.RuneLen(v) {
-			t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v))
-		}
-		if len(k) > longestEntityWithoutSemicolon && k[len(k)-1] != ';' {
-			t.Errorf("entity name %s is %d characters, but longestEntityWithoutSemicolon=%d", k, len(k), longestEntityWithoutSemicolon)
-		}
-	}
-	for k, v := range entity2 {
-		if 1+len(k) < utf8.RuneLen(v[0])+utf8.RuneLen(v[1]) {
-			t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v[0]) + string(v[1]))
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/escape.go gcc-4.8.1/libgo/go/exp/html/escape.go
--- gcc-4.8.1.orig/libgo/go/exp/html/escape.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/escape.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,258 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"strings"
-	"unicode/utf8"
-)
-
-// These replacements permit compatibility with old numeric entities that
-// assumed Windows-1252 encoding.
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
-var replacementTable = [...]rune{
-	'\u20AC', // First entry is what 0x80 should be replaced with.
-	'\u0081',
-	'\u201A',
-	'\u0192',
-	'\u201E',
-	'\u2026',
-	'\u2020',
-	'\u2021',
-	'\u02C6',
-	'\u2030',
-	'\u0160',
-	'\u2039',
-	'\u0152',
-	'\u008D',
-	'\u017D',
-	'\u008F',
-	'\u0090',
-	'\u2018',
-	'\u2019',
-	'\u201C',
-	'\u201D',
-	'\u2022',
-	'\u2013',
-	'\u2014',
-	'\u02DC',
-	'\u2122',
-	'\u0161',
-	'\u203A',
-	'\u0153',
-	'\u009D',
-	'\u017E',
-	'\u0178', // Last entry is 0x9F.
-	// 0x00->'\uFFFD' is handled programmatically.
-	// 0x0D->'\u000D' is a no-op.
-}
-
-// unescapeEntity reads an entity like "&lt;" from b[src:] and writes the
-// corresponding "<" to b[dst:], returning the incremented dst and src cursors.
-// Precondition: b[src] == '&' && dst <= src.
-// attribute should be true if parsing an attribute value.
-func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) {
-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
-
-	// i starts at 1 because we already know that s[0] == '&'.
-	i, s := 1, b[src:]
-
-	if len(s) <= 1 {
-		b[dst] = b[src]
-		return dst + 1, src + 1
-	}
-
-	if s[i] == '#' {
-		if len(s) <= 3 { // We need to have at least "&#.".
-			b[dst] = b[src]
-			return dst + 1, src + 1
-		}
-		i++
-		c := s[i]
-		hex := false
-		if c == 'x' || c == 'X' {
-			hex = true
-			i++
-		}
-
-		x := '\x00'
-		for i < len(s) {
-			c = s[i]
-			i++
-			if hex {
-				if '0' <= c && c <= '9' {
-					x = 16*x + rune(c) - '0'
-					continue
-				} else if 'a' <= c && c <= 'f' {
-					x = 16*x + rune(c) - 'a' + 10
-					continue
-				} else if 'A' <= c && c <= 'F' {
-					x = 16*x + rune(c) - 'A' + 10
-					continue
-				}
-			} else if '0' <= c && c <= '9' {
-				x = 10*x + rune(c) - '0'
-				continue
-			}
-			if c != ';' {
-				i--
-			}
-			break
-		}
-
-		if i <= 3 { // No characters matched.
-			b[dst] = b[src]
-			return dst + 1, src + 1
-		}
-
-		if 0x80 <= x && x <= 0x9F {
-			// Replace characters from Windows-1252 with UTF-8 equivalents.
-			x = replacementTable[x-0x80]
-		} else if x == 0 || (0xD800 <= x && x <= 0xDFFF) || x > 0x10FFFF {
-			// Replace invalid characters with the replacement character.
-			x = '\uFFFD'
-		}
-
-		return dst + utf8.EncodeRune(b[dst:], x), src + i
-	}
-
-	// Consume the maximum number of characters possible, with the
-	// consumed characters matching one of the named references.
-
-	for i < len(s) {
-		c := s[i]
-		i++
-		// Lower-cased characters are more common in entities, so we check for them first.
-		if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' {
-			continue
-		}
-		if c != ';' {
-			i--
-		}
-		break
-	}
-
-	entityName := string(s[1:i])
-	if entityName == "" {
-		// No-op.
-	} else if attribute && entityName[len(entityName)-1] != ';' && len(s) > i && s[i] == '=' {
-		// No-op.
-	} else if x := entity[entityName]; x != 0 {
-		return dst + utf8.EncodeRune(b[dst:], x), src + i
-	} else if x := entity2[entityName]; x[0] != 0 {
-		dst1 := dst + utf8.EncodeRune(b[dst:], x[0])
-		return dst1 + utf8.EncodeRune(b[dst1:], x[1]), src + i
-	} else if !attribute {
-		maxLen := len(entityName) - 1
-		if maxLen > longestEntityWithoutSemicolon {
-			maxLen = longestEntityWithoutSemicolon
-		}
-		for j := maxLen; j > 1; j-- {
-			if x := entity[entityName[:j]]; x != 0 {
-				return dst + utf8.EncodeRune(b[dst:], x), src + j + 1
-			}
-		}
-	}
-
-	dst1, src1 = dst+i, src+i
-	copy(b[dst:dst1], b[src:src1])
-	return dst1, src1
-}
-
-// unescape unescapes b's entities in-place, so that "a&lt;b" becomes "a<b".
-// attribute should be true if parsing an attribute value.
-func unescape(b []byte, attribute bool) []byte {
-	for i, c := range b {
-		if c == '&' {
-			dst, src := unescapeEntity(b, i, i, attribute)
-			for src < len(b) {
-				c := b[src]
-				if c == '&' {
-					dst, src = unescapeEntity(b, dst, src, attribute)
-				} else {
-					b[dst] = c
-					dst, src = dst+1, src+1
-				}
-			}
-			return b[0:dst]
-		}
-	}
-	return b
-}
-
-// lower lower-cases the A-Z bytes in b in-place, so that "aBc" becomes "abc".
-func lower(b []byte) []byte {
-	for i, c := range b {
-		if 'A' <= c && c <= 'Z' {
-			b[i] = c + 'a' - 'A'
-		}
-	}
-	return b
-}
-
-const escapedChars = "&'<>\"\r"
-
-func escape(w writer, s string) error {
-	i := strings.IndexAny(s, escapedChars)
-	for i != -1 {
-		if _, err := w.WriteString(s[:i]); err != nil {
-			return err
-		}
-		var esc string
-		switch s[i] {
-		case '&':
-			esc = "&amp;"
-		case '\'':
-			// "&#39;" is shorter than "&apos;" and apos was not in HTML until HTML5.
-			esc = "&#39;"
-		case '<':
-			esc = "&lt;"
-		case '>':
-			esc = "&gt;"
-		case '"':
-			// "&#34;" is shorter than "&quot;".
-			esc = "&#34;"
-		case '\r':
-			esc = "&#13;"
-		default:
-			panic("unrecognized escape character")
-		}
-		s = s[i+1:]
-		if _, err := w.WriteString(esc); err != nil {
-			return err
-		}
-		i = strings.IndexAny(s, escapedChars)
-	}
-	_, err := w.WriteString(s)
-	return err
-}
-
-// EscapeString escapes special characters like "<" to become "&lt;". It
-// escapes only five such characters: <, >, &, ' and ".
-// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't
-// always true.
-func EscapeString(s string) string {
-	if strings.IndexAny(s, escapedChars) == -1 {
-		return s
-	}
-	var buf bytes.Buffer
-	escape(&buf, s)
-	return buf.String()
-}
-
-// UnescapeString unescapes entities like "&lt;" to become "<". It unescapes a
-// larger range of entities than EscapeString escapes. For example, "&aacute;"
-// unescapes to "Ã¡", as does "&#225;" and "&xE1;".
-// UnescapeString(EscapeString(s)) == s always holds, but the converse isn't
-// always true.
-func UnescapeString(s string) string {
-	for _, c := range s {
-		if c == '&' {
-			return string(unescape([]byte(s), false))
-		}
-	}
-	return s
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/foreign.go gcc-4.8.1/libgo/go/exp/html/foreign.go
--- gcc-4.8.1.orig/libgo/go/exp/html/foreign.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/foreign.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,226 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"strings"
-)
-
-func adjustAttributeNames(aa []Attribute, nameMap map[string]string) {
-	for i := range aa {
-		if newName, ok := nameMap[aa[i].Key]; ok {
-			aa[i].Key = newName
-		}
-	}
-}
-
-func adjustForeignAttributes(aa []Attribute) {
-	for i, a := range aa {
-		if a.Key == "" || a.Key[0] != 'x' {
-			continue
-		}
-		switch a.Key {
-		case "xlink:actuate", "xlink:arcrole", "xlink:href", "xlink:role", "xlink:show",
-			"xlink:title", "xlink:type", "xml:base", "xml:lang", "xml:space", "xmlns:xlink":
-			j := strings.Index(a.Key, ":")
-			aa[i].Namespace = a.Key[:j]
-			aa[i].Key = a.Key[j+1:]
-		}
-	}
-}
-
-func htmlIntegrationPoint(n *Node) bool {
-	if n.Type != ElementNode {
-		return false
-	}
-	switch n.Namespace {
-	case "math":
-		if n.Data == "annotation-xml" {
-			for _, a := range n.Attr {
-				if a.Key == "encoding" {
-					val := strings.ToLower(a.Val)
-					if val == "text/html" || val == "application/xhtml+xml" {
-						return true
-					}
-				}
-			}
-		}
-	case "svg":
-		switch n.Data {
-		case "desc", "foreignObject", "title":
-			return true
-		}
-	}
-	return false
-}
-
-func mathMLTextIntegrationPoint(n *Node) bool {
-	if n.Namespace != "math" {
-		return false
-	}
-	switch n.Data {
-	case "mi", "mo", "mn", "ms", "mtext":
-		return true
-	}
-	return false
-}
-
-// Section 12.2.5.5.
-var breakout = map[string]bool{
-	"b":          true,
-	"big":        true,
-	"blockquote": true,
-	"body":       true,
-	"br":         true,
-	"center":     true,
-	"code":       true,
-	"dd":         true,
-	"div":        true,
-	"dl":         true,
-	"dt":         true,
-	"em":         true,
-	"embed":      true,
-	"h1":         true,
-	"h2":         true,
-	"h3":         true,
-	"h4":         true,
-	"h5":         true,
-	"h6":         true,
-	"head":       true,
-	"hr":         true,
-	"i":          true,
-	"img":        true,
-	"li":         true,
-	"listing":    true,
-	"menu":       true,
-	"meta":       true,
-	"nobr":       true,
-	"ol":         true,
-	"p":          true,
-	"pre":        true,
-	"ruby":       true,
-	"s":          true,
-	"small":      true,
-	"span":       true,
-	"strong":     true,
-	"strike":     true,
-	"sub":        true,
-	"sup":        true,
-	"table":      true,
-	"tt":         true,
-	"u":          true,
-	"ul":         true,
-	"var":        true,
-}
-
-// Section 12.2.5.5.
-var svgTagNameAdjustments = map[string]string{
-	"altglyph":            "altGlyph",
-	"altglyphdef":         "altGlyphDef",
-	"altglyphitem":        "altGlyphItem",
-	"animatecolor":        "animateColor",
-	"animatemotion":       "animateMotion",
-	"animatetransform":    "animateTransform",
-	"clippath":            "clipPath",
-	"feblend":             "feBlend",
-	"fecolormatrix":       "feColorMatrix",
-	"fecomponenttransfer": "feComponentTransfer",
-	"fecomposite":         "feComposite",
-	"feconvolvematrix":    "feConvolveMatrix",
-	"fediffuselighting":   "feDiffuseLighting",
-	"fedisplacementmap":   "feDisplacementMap",
-	"fedistantlight":      "feDistantLight",
-	"feflood":             "feFlood",
-	"fefunca":             "feFuncA",
-	"fefuncb":             "feFuncB",
-	"fefuncg":             "feFuncG",
-	"fefuncr":             "feFuncR",
-	"fegaussianblur":      "feGaussianBlur",
-	"feimage":             "feImage",
-	"femerge":             "feMerge",
-	"femergenode":         "feMergeNode",
-	"femorphology":        "feMorphology",
-	"feoffset":            "feOffset",
-	"fepointlight":        "fePointLight",
-	"fespecularlighting":  "feSpecularLighting",
-	"fespotlight":         "feSpotLight",
-	"fetile":              "feTile",
-	"feturbulence":        "feTurbulence",
-	"foreignobject":       "foreignObject",
-	"glyphref":            "glyphRef",
-	"lineargradient":      "linearGradient",
-	"radialgradient":      "radialGradient",
-	"textpath":            "textPath",
-}
-
-// Section 12.2.5.1
-var mathMLAttributeAdjustments = map[string]string{
-	"definitionurl": "definitionURL",
-}
-
-var svgAttributeAdjustments = map[string]string{
-	"attributename":             "attributeName",
-	"attributetype":             "attributeType",
-	"basefrequency":             "baseFrequency",
-	"baseprofile":               "baseProfile",
-	"calcmode":                  "calcMode",
-	"clippathunits":             "clipPathUnits",
-	"contentscripttype":         "contentScriptType",
-	"contentstyletype":          "contentStyleType",
-	"diffuseconstant":           "diffuseConstant",
-	"edgemode":                  "edgeMode",
-	"externalresourcesrequired": "externalResourcesRequired",
-	"filterres":                 "filterRes",
-	"filterunits":               "filterUnits",
-	"glyphref":                  "glyphRef",
-	"gradienttransform":         "gradientTransform",
-	"gradientunits":             "gradientUnits",
-	"kernelmatrix":              "kernelMatrix",
-	"kernelunitlength":          "kernelUnitLength",
-	"keypoints":                 "keyPoints",
-	"keysplines":                "keySplines",
-	"keytimes":                  "keyTimes",
-	"lengthadjust":              "lengthAdjust",
-	"limitingconeangle":         "limitingConeAngle",
-	"markerheight":              "markerHeight",
-	"markerunits":               "markerUnits",
-	"markerwidth":               "markerWidth",
-	"maskcontentunits":          "maskContentUnits",
-	"maskunits":                 "maskUnits",
-	"numoctaves":                "numOctaves",
-	"pathlength":                "pathLength",
-	"patterncontentunits":       "patternContentUnits",
-	"patterntransform":          "patternTransform",
-	"patternunits":              "patternUnits",
-	"pointsatx":                 "pointsAtX",
-	"pointsaty":                 "pointsAtY",
-	"pointsatz":                 "pointsAtZ",
-	"preservealpha":             "preserveAlpha",
-	"preserveaspectratio":       "preserveAspectRatio",
-	"primitiveunits":            "primitiveUnits",
-	"refx":                      "refX",
-	"refy":                      "refY",
-	"repeatcount":               "repeatCount",
-	"repeatdur":                 "repeatDur",
-	"requiredextensions":        "requiredExtensions",
-	"requiredfeatures":          "requiredFeatures",
-	"specularconstant":          "specularConstant",
-	"specularexponent":          "specularExponent",
-	"spreadmethod":              "spreadMethod",
-	"startoffset":               "startOffset",
-	"stddeviation":              "stdDeviation",
-	"stitchtiles":               "stitchTiles",
-	"surfacescale":              "surfaceScale",
-	"systemlanguage":            "systemLanguage",
-	"tablevalues":               "tableValues",
-	"targetx":                   "targetX",
-	"targety":                   "targetY",
-	"textlength":                "textLength",
-	"viewbox":                   "viewBox",
-	"viewtarget":                "viewTarget",
-	"xchannelselector":          "xChannelSelector",
-	"ychannelselector":          "yChannelSelector",
-	"zoomandpan":                "zoomAndPan",
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/node.go gcc-4.8.1/libgo/go/exp/html/node.go
--- gcc-4.8.1.orig/libgo/go/exp/html/node.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/node.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,193 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"exp/html/atom"
-)
-
-// A NodeType is the type of a Node.
-type NodeType uint32
-
-const (
-	ErrorNode NodeType = iota
-	TextNode
-	DocumentNode
-	ElementNode
-	CommentNode
-	DoctypeNode
-	scopeMarkerNode
-)
-
-// Section 12.2.3.3 says "scope markers are inserted when entering applet
-// elements, buttons, object elements, marquees, table cells, and table
-// captions, and are used to prevent formatting from 'leaking'".
-var scopeMarker = Node{Type: scopeMarkerNode}
-
-// A Node consists of a NodeType and some Data (tag name for element nodes,
-// content for text) and are part of a tree of Nodes. Element nodes may also
-// have a Namespace and contain a slice of Attributes. Data is unescaped, so
-// that it looks like "a<b" rather than "a&lt;b". For element nodes, DataAtom
-// is the atom for Data, or zero if Data is not a known tag name.
-//
-// An empty Namespace implies a "http://www.w3.org/1999/xhtml" namespace.
-// Similarly, "math" is short for "http://www.w3.org/1998/Math/MathML", and
-// "svg" is short for "http://www.w3.org/2000/svg".
-type Node struct {
-	Parent, FirstChild, LastChild, PrevSibling, NextSibling *Node
-
-	Type      NodeType
-	DataAtom  atom.Atom
-	Data      string
-	Namespace string
-	Attr      []Attribute
-}
-
-// InsertBefore inserts newChild as a child of n, immediately before oldChild
-// in the sequence of n's children. oldChild may be nil, in which case newChild
-// is appended to the end of n's children.
-//
-// It will panic if newChild already has a parent or siblings.
-func (n *Node) InsertBefore(newChild, oldChild *Node) {
-	if newChild.Parent != nil || newChild.PrevSibling != nil || newChild.NextSibling != nil {
-		panic("html: InsertBefore called for an attached child Node")
-	}
-	var prev, next *Node
-	if oldChild != nil {
-		prev, next = oldChild.PrevSibling, oldChild
-	} else {
-		prev = n.LastChild
-	}
-	if prev != nil {
-		prev.NextSibling = newChild
-	} else {
-		n.FirstChild = newChild
-	}
-	if next != nil {
-		next.PrevSibling = newChild
-	} else {
-		n.LastChild = newChild
-	}
-	newChild.Parent = n
-	newChild.PrevSibling = prev
-	newChild.NextSibling = next
-}
-
-// AppendChild adds a node c as a child of n.
-//
-// It will panic if c already has a parent or siblings.
-func (n *Node) AppendChild(c *Node) {
-	if c.Parent != nil || c.PrevSibling != nil || c.NextSibling != nil {
-		panic("html: AppendChild called for an attached child Node")
-	}
-	last := n.LastChild
-	if last != nil {
-		last.NextSibling = c
-	} else {
-		n.FirstChild = c
-	}
-	n.LastChild = c
-	c.Parent = n
-	c.PrevSibling = last
-}
-
-// RemoveChild removes a node c that is a child of n. Afterwards, c will have
-// no parent and no siblings.
-//
-// It will panic if c's parent is not n.
-func (n *Node) RemoveChild(c *Node) {
-	if c.Parent != n {
-		panic("html: RemoveChild called for a non-child Node")
-	}
-	if n.FirstChild == c {
-		n.FirstChild = c.NextSibling
-	}
-	if c.NextSibling != nil {
-		c.NextSibling.PrevSibling = c.PrevSibling
-	}
-	if n.LastChild == c {
-		n.LastChild = c.PrevSibling
-	}
-	if c.PrevSibling != nil {
-		c.PrevSibling.NextSibling = c.NextSibling
-	}
-	c.Parent = nil
-	c.PrevSibling = nil
-	c.NextSibling = nil
-}
-
-// reparentChildren reparents all of src's child nodes to dst.
-func reparentChildren(dst, src *Node) {
-	for {
-		child := src.FirstChild
-		if child == nil {
-			break
-		}
-		src.RemoveChild(child)
-		dst.AppendChild(child)
-	}
-}
-
-// clone returns a new node with the same type, data and attributes.
-// The clone has no parent, no siblings and no children.
-func (n *Node) clone() *Node {
-	m := &Node{
-		Type:     n.Type,
-		DataAtom: n.DataAtom,
-		Data:     n.Data,
-		Attr:     make([]Attribute, len(n.Attr)),
-	}
-	copy(m.Attr, n.Attr)
-	return m
-}
-
-// nodeStack is a stack of nodes.
-type nodeStack []*Node
-
-// pop pops the stack. It will panic if s is empty.
-func (s *nodeStack) pop() *Node {
-	i := len(*s)
-	n := (*s)[i-1]
-	*s = (*s)[:i-1]
-	return n
-}
-
-// top returns the most recently pushed node, or nil if s is empty.
-func (s *nodeStack) top() *Node {
-	if i := len(*s); i > 0 {
-		return (*s)[i-1]
-	}
-	return nil
-}
-
-// index returns the index of the top-most occurrence of n in the stack, or -1
-// if n is not present.
-func (s *nodeStack) index(n *Node) int {
-	for i := len(*s) - 1; i >= 0; i-- {
-		if (*s)[i] == n {
-			return i
-		}
-	}
-	return -1
-}
-
-// insert inserts a node at the given index.
-func (s *nodeStack) insert(i int, n *Node) {
-	(*s) = append(*s, nil)
-	copy((*s)[i+1:], (*s)[i:])
-	(*s)[i] = n
-}
-
-// remove removes a node from the stack. It is a no-op if n is not present.
-func (s *nodeStack) remove(n *Node) {
-	i := s.index(n)
-	if i == -1 {
-		return
-	}
-	copy((*s)[i:], (*s)[i+1:])
-	j := len(*s) - 1
-	(*s)[j] = nil
-	*s = (*s)[:j]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/node_test.go gcc-4.8.1/libgo/go/exp/html/node_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/node_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/node_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,146 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"fmt"
-)
-
-// checkTreeConsistency checks that a node and its descendants are all
-// consistent in their parent/child/sibling relationships.
-func checkTreeConsistency(n *Node) error {
-	return checkTreeConsistency1(n, 0)
-}
-
-func checkTreeConsistency1(n *Node, depth int) error {
-	if depth == 1e4 {
-		return fmt.Errorf("html: tree looks like it contains a cycle")
-	}
-	if err := checkNodeConsistency(n); err != nil {
-		return err
-	}
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if err := checkTreeConsistency1(c, depth+1); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-// checkNodeConsistency checks that a node's parent/child/sibling relationships
-// are consistent.
-func checkNodeConsistency(n *Node) error {
-	if n == nil {
-		return nil
-	}
-
-	nParent := 0
-	for p := n.Parent; p != nil; p = p.Parent {
-		nParent++
-		if nParent == 1e4 {
-			return fmt.Errorf("html: parent list looks like an infinite loop")
-		}
-	}
-
-	nForward := 0
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		nForward++
-		if nForward == 1e6 {
-			return fmt.Errorf("html: forward list of children looks like an infinite loop")
-		}
-		if c.Parent != n {
-			return fmt.Errorf("html: inconsistent child/parent relationship")
-		}
-	}
-
-	nBackward := 0
-	for c := n.LastChild; c != nil; c = c.PrevSibling {
-		nBackward++
-		if nBackward == 1e6 {
-			return fmt.Errorf("html: backward list of children looks like an infinite loop")
-		}
-		if c.Parent != n {
-			return fmt.Errorf("html: inconsistent child/parent relationship")
-		}
-	}
-
-	if n.Parent != nil {
-		if n.Parent == n {
-			return fmt.Errorf("html: inconsistent parent relationship")
-		}
-		if n.Parent == n.FirstChild {
-			return fmt.Errorf("html: inconsistent parent/first relationship")
-		}
-		if n.Parent == n.LastChild {
-			return fmt.Errorf("html: inconsistent parent/last relationship")
-		}
-		if n.Parent == n.PrevSibling {
-			return fmt.Errorf("html: inconsistent parent/prev relationship")
-		}
-		if n.Parent == n.NextSibling {
-			return fmt.Errorf("html: inconsistent parent/next relationship")
-		}
-
-		parentHasNAsAChild := false
-		for c := n.Parent.FirstChild; c != nil; c = c.NextSibling {
-			if c == n {
-				parentHasNAsAChild = true
-				break
-			}
-		}
-		if !parentHasNAsAChild {
-			return fmt.Errorf("html: inconsistent parent/child relationship")
-		}
-	}
-
-	if n.PrevSibling != nil && n.PrevSibling.NextSibling != n {
-		return fmt.Errorf("html: inconsistent prev/next relationship")
-	}
-	if n.NextSibling != nil && n.NextSibling.PrevSibling != n {
-		return fmt.Errorf("html: inconsistent next/prev relationship")
-	}
-
-	if (n.FirstChild == nil) != (n.LastChild == nil) {
-		return fmt.Errorf("html: inconsistent first/last relationship")
-	}
-	if n.FirstChild != nil && n.FirstChild == n.LastChild {
-		// We have a sole child.
-		if n.FirstChild.PrevSibling != nil || n.FirstChild.NextSibling != nil {
-			return fmt.Errorf("html: inconsistent sole child's sibling relationship")
-		}
-	}
-
-	seen := map[*Node]bool{}
-
-	var last *Node
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if seen[c] {
-			return fmt.Errorf("html: inconsistent repeated child")
-		}
-		seen[c] = true
-		last = c
-	}
-	if last != n.LastChild {
-		return fmt.Errorf("html: inconsistent last relationship")
-	}
-
-	var first *Node
-	for c := n.LastChild; c != nil; c = c.PrevSibling {
-		if !seen[c] {
-			return fmt.Errorf("html: inconsistent missing child")
-		}
-		delete(seen, c)
-		first = c
-	}
-	if first != n.FirstChild {
-		return fmt.Errorf("html: inconsistent first relationship")
-	}
-
-	if len(seen) != 0 {
-		return fmt.Errorf("html: inconsistent forwards/backwards child list")
-	}
-
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/parse.go gcc-4.8.1/libgo/go/exp/html/parse.go
--- gcc-4.8.1.orig/libgo/go/exp/html/parse.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/parse.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,2091 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"errors"
-	a "exp/html/atom"
-	"fmt"
-	"io"
-	"strings"
-)
-
-// A parser implements the HTML5 parsing algorithm:
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tree-construction
-type parser struct {
-	// tokenizer provides the tokens for the parser.
-	tokenizer *Tokenizer
-	// tok is the most recently read token.
-	tok Token
-	// Self-closing tags like <hr/> are treated as start tags, except that
-	// hasSelfClosingToken is set while they are being processed.
-	hasSelfClosingToken bool
-	// doc is the document root element.
-	doc *Node
-	// The stack of open elements (section 12.2.3.2) and active formatting
-	// elements (section 12.2.3.3).
-	oe, afe nodeStack
-	// Element pointers (section 12.2.3.4).
-	head, form *Node
-	// Other parsing state flags (section 12.2.3.5).
-	scripting, framesetOK bool
-	// im is the current insertion mode.
-	im insertionMode
-	// originalIM is the insertion mode to go back to after completing a text
-	// or inTableText insertion mode.
-	originalIM insertionMode
-	// fosterParenting is whether new elements should be inserted according to
-	// the foster parenting rules (section 12.2.5.3).
-	fosterParenting bool
-	// quirks is whether the parser is operating in "quirks mode."
-	quirks bool
-	// fragment is whether the parser is parsing an HTML fragment.
-	fragment bool
-	// context is the context element when parsing an HTML fragment
-	// (section 12.4).
-	context *Node
-}
-
-func (p *parser) top() *Node {
-	if n := p.oe.top(); n != nil {
-		return n
-	}
-	return p.doc
-}
-
-// Stop tags for use in popUntil. These come from section 12.2.3.2.
-var (
-	defaultScopeStopTags = map[string][]a.Atom{
-		"":     {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object},
-		"math": {a.AnnotationXml, a.Mi, a.Mn, a.Mo, a.Ms, a.Mtext},
-		"svg":  {a.Desc, a.ForeignObject, a.Title},
-	}
-)
-
-type scope int
-
-const (
-	defaultScope scope = iota
-	listItemScope
-	buttonScope
-	tableScope
-	tableRowScope
-	tableBodyScope
-	selectScope
-)
-
-// popUntil pops the stack of open elements at the highest element whose tag
-// is in matchTags, provided there is no higher element in the scope's stop
-// tags (as defined in section 12.2.3.2). It returns whether or not there was
-// such an element. If there was not, popUntil leaves the stack unchanged.
-//
-// For example, the set of stop tags for table scope is: "html", "table". If
-// the stack was:
-// ["html", "body", "font", "table", "b", "i", "u"]
-// then popUntil(tableScope, "font") would return false, but
-// popUntil(tableScope, "i") would return true and the stack would become:
-// ["html", "body", "font", "table", "b"]
-//
-// If an element's tag is in both the stop tags and matchTags, then the stack
-// will be popped and the function returns true (provided, of course, there was
-// no higher element in the stack that was also in the stop tags). For example,
-// popUntil(tableScope, "table") returns true and leaves:
-// ["html", "body", "font"]
-func (p *parser) popUntil(s scope, matchTags ...a.Atom) bool {
-	if i := p.indexOfElementInScope(s, matchTags...); i != -1 {
-		p.oe = p.oe[:i]
-		return true
-	}
-	return false
-}
-
-// indexOfElementInScope returns the index in p.oe of the highest element whose
-// tag is in matchTags that is in scope. If no matching element is in scope, it
-// returns -1.
-func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		tagAtom := p.oe[i].DataAtom
-		if p.oe[i].Namespace == "" {
-			for _, t := range matchTags {
-				if t == tagAtom {
-					return i
-				}
-			}
-			switch s {
-			case defaultScope:
-				// No-op.
-			case listItemScope:
-				if tagAtom == a.Ol || tagAtom == a.Ul {
-					return -1
-				}
-			case buttonScope:
-				if tagAtom == a.Button {
-					return -1
-				}
-			case tableScope:
-				if tagAtom == a.Html || tagAtom == a.Table {
-					return -1
-				}
-			case selectScope:
-				if tagAtom != a.Optgroup && tagAtom != a.Option {
-					return -1
-				}
-			default:
-				panic("unreachable")
-			}
-		}
-		switch s {
-		case defaultScope, listItemScope, buttonScope:
-			for _, t := range defaultScopeStopTags[p.oe[i].Namespace] {
-				if t == tagAtom {
-					return -1
-				}
-			}
-		}
-	}
-	return -1
-}
-
-// elementInScope is like popUntil, except that it doesn't modify the stack of
-// open elements.
-func (p *parser) elementInScope(s scope, matchTags ...a.Atom) bool {
-	return p.indexOfElementInScope(s, matchTags...) != -1
-}
-
-// clearStackToContext pops elements off the stack of open elements until a
-// scope-defined element is found.
-func (p *parser) clearStackToContext(s scope) {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		tagAtom := p.oe[i].DataAtom
-		switch s {
-		case tableScope:
-			if tagAtom == a.Html || tagAtom == a.Table {
-				p.oe = p.oe[:i+1]
-				return
-			}
-		case tableRowScope:
-			if tagAtom == a.Html || tagAtom == a.Tr {
-				p.oe = p.oe[:i+1]
-				return
-			}
-		case tableBodyScope:
-			if tagAtom == a.Html || tagAtom == a.Tbody || tagAtom == a.Tfoot || tagAtom == a.Thead {
-				p.oe = p.oe[:i+1]
-				return
-			}
-		default:
-			panic("unreachable")
-		}
-	}
-}
-
-// generateImpliedEndTags pops nodes off the stack of open elements as long as
-// the top node has a tag name of dd, dt, li, option, optgroup, p, rp, or rt.
-// If exceptions are specified, nodes with that name will not be popped off.
-func (p *parser) generateImpliedEndTags(exceptions ...string) {
-	var i int
-loop:
-	for i = len(p.oe) - 1; i >= 0; i-- {
-		n := p.oe[i]
-		if n.Type == ElementNode {
-			switch n.DataAtom {
-			case a.Dd, a.Dt, a.Li, a.Option, a.Optgroup, a.P, a.Rp, a.Rt:
-				for _, except := range exceptions {
-					if n.Data == except {
-						break loop
-					}
-				}
-				continue
-			}
-		}
-		break
-	}
-
-	p.oe = p.oe[:i+1]
-}
-
-// addChild adds a child node n to the top element, and pushes n onto the stack
-// of open elements if it is an element node.
-func (p *parser) addChild(n *Node) {
-	if p.shouldFosterParent() {
-		p.fosterParent(n)
-	} else {
-		p.top().AppendChild(n)
-	}
-
-	if n.Type == ElementNode {
-		p.oe = append(p.oe, n)
-	}
-}
-
-// shouldFosterParent returns whether the next node to be added should be
-// foster parented.
-func (p *parser) shouldFosterParent() bool {
-	if p.fosterParenting {
-		switch p.top().DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			return true
-		}
-	}
-	return false
-}
-
-// fosterParent adds a child node according to the foster parenting rules.
-// Section 12.2.5.3, "foster parenting".
-func (p *parser) fosterParent(n *Node) {
-	var table, parent, prev *Node
-	var i int
-	for i = len(p.oe) - 1; i >= 0; i-- {
-		if p.oe[i].DataAtom == a.Table {
-			table = p.oe[i]
-			break
-		}
-	}
-
-	if table == nil {
-		// The foster parent is the html element.
-		parent = p.oe[0]
-	} else {
-		parent = table.Parent
-	}
-	if parent == nil {
-		parent = p.oe[i-1]
-	}
-
-	if table != nil {
-		prev = table.PrevSibling
-	} else {
-		prev = parent.LastChild
-	}
-	if prev != nil && prev.Type == TextNode && n.Type == TextNode {
-		prev.Data += n.Data
-		return
-	}
-
-	parent.InsertBefore(n, table)
-}
-
-// addText adds text to the preceding node if it is a text node, or else it
-// calls addChild with a new text node.
-func (p *parser) addText(text string) {
-	if text == "" {
-		return
-	}
-
-	if p.shouldFosterParent() {
-		p.fosterParent(&Node{
-			Type: TextNode,
-			Data: text,
-		})
-		return
-	}
-
-	t := p.top()
-	if n := t.LastChild; n != nil && n.Type == TextNode {
-		n.Data += text
-		return
-	}
-	p.addChild(&Node{
-		Type: TextNode,
-		Data: text,
-	})
-}
-
-// addElement adds a child element based on the current token.
-func (p *parser) addElement() {
-	p.addChild(&Node{
-		Type:     ElementNode,
-		DataAtom: p.tok.DataAtom,
-		Data:     p.tok.Data,
-		Attr:     p.tok.Attr,
-	})
-}
-
-// Section 12.2.3.3.
-func (p *parser) addFormattingElement() {
-	tagAtom, attr := p.tok.DataAtom, p.tok.Attr
-	p.addElement()
-
-	// Implement the Noah's Ark clause, but with three per family instead of two.
-	identicalElements := 0
-findIdenticalElements:
-	for i := len(p.afe) - 1; i >= 0; i-- {
-		n := p.afe[i]
-		if n.Type == scopeMarkerNode {
-			break
-		}
-		if n.Type != ElementNode {
-			continue
-		}
-		if n.Namespace != "" {
-			continue
-		}
-		if n.DataAtom != tagAtom {
-			continue
-		}
-		if len(n.Attr) != len(attr) {
-			continue
-		}
-	compareAttributes:
-		for _, t0 := range n.Attr {
-			for _, t1 := range attr {
-				if t0.Key == t1.Key && t0.Namespace == t1.Namespace && t0.Val == t1.Val {
-					// Found a match for this attribute, continue with the next attribute.
-					continue compareAttributes
-				}
-			}
-			// If we get here, there is no attribute that matches a.
-			// Therefore the element is not identical to the new one.
-			continue findIdenticalElements
-		}
-
-		identicalElements++
-		if identicalElements >= 3 {
-			p.afe.remove(n)
-		}
-	}
-
-	p.afe = append(p.afe, p.top())
-}
-
-// Section 12.2.3.3.
-func (p *parser) clearActiveFormattingElements() {
-	for {
-		n := p.afe.pop()
-		if len(p.afe) == 0 || n.Type == scopeMarkerNode {
-			return
-		}
-	}
-}
-
-// Section 12.2.3.3.
-func (p *parser) reconstructActiveFormattingElements() {
-	n := p.afe.top()
-	if n == nil {
-		return
-	}
-	if n.Type == scopeMarkerNode || p.oe.index(n) != -1 {
-		return
-	}
-	i := len(p.afe) - 1
-	for n.Type != scopeMarkerNode && p.oe.index(n) == -1 {
-		if i == 0 {
-			i = -1
-			break
-		}
-		i--
-		n = p.afe[i]
-	}
-	for {
-		i++
-		clone := p.afe[i].clone()
-		p.addChild(clone)
-		p.afe[i] = clone
-		if i == len(p.afe)-1 {
-			break
-		}
-	}
-}
-
-// Section 12.2.4.
-func (p *parser) acknowledgeSelfClosingTag() {
-	p.hasSelfClosingToken = false
-}
-
-// An insertion mode (section 12.2.3.1) is the state transition function from
-// a particular state in the HTML5 parser's state machine. It updates the
-// parser's fields depending on parser.tok (where ErrorToken means EOF).
-// It returns whether the token was consumed.
-type insertionMode func(*parser) bool
-
-// setOriginalIM sets the insertion mode to return to after completing a text or
-// inTableText insertion mode.
-// Section 12.2.3.1, "using the rules for".
-func (p *parser) setOriginalIM() {
-	if p.originalIM != nil {
-		panic("html: bad parser state: originalIM was set twice")
-	}
-	p.originalIM = p.im
-}
-
-// Section 12.2.3.1, "reset the insertion mode".
-func (p *parser) resetInsertionMode() {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		n := p.oe[i]
-		if i == 0 && p.context != nil {
-			n = p.context
-		}
-
-		switch n.DataAtom {
-		case a.Select:
-			p.im = inSelectIM
-		case a.Td, a.Th:
-			p.im = inCellIM
-		case a.Tr:
-			p.im = inRowIM
-		case a.Tbody, a.Thead, a.Tfoot:
-			p.im = inTableBodyIM
-		case a.Caption:
-			p.im = inCaptionIM
-		case a.Colgroup:
-			p.im = inColumnGroupIM
-		case a.Table:
-			p.im = inTableIM
-		case a.Head:
-			p.im = inBodyIM
-		case a.Body:
-			p.im = inBodyIM
-		case a.Frameset:
-			p.im = inFramesetIM
-		case a.Html:
-			p.im = beforeHeadIM
-		default:
-			continue
-		}
-		return
-	}
-	p.im = inBodyIM
-}
-
-const whitespace = " \t\r\n\f"
-
-// Section 12.2.5.4.1.
-func initialIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
-		if len(p.tok.Data) == 0 {
-			// It was all whitespace, so ignore it.
-			return true
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		n, quirks := parseDoctype(p.tok.Data)
-		p.doc.AppendChild(n)
-		p.quirks = quirks
-		p.im = beforeHTMLIM
-		return true
-	}
-	p.quirks = true
-	p.im = beforeHTMLIM
-	return false
-}
-
-// Section 12.2.5.4.2.
-func beforeHTMLIM(p *parser) bool {
-	switch p.tok.Type {
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	case TextToken:
-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
-		if len(p.tok.Data) == 0 {
-			// It was all whitespace, so ignore it.
-			return true
-		}
-	case StartTagToken:
-		if p.tok.DataAtom == a.Html {
-			p.addElement()
-			p.im = beforeHeadIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Head, a.Body, a.Html, a.Br:
-			p.parseImpliedToken(StartTagToken, a.Html, a.Html.String())
-			return false
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	}
-	p.parseImpliedToken(StartTagToken, a.Html, a.Html.String())
-	return false
-}
-
-// Section 12.2.5.4.3.
-func beforeHeadIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		p.tok.Data = strings.TrimLeft(p.tok.Data, whitespace)
-		if len(p.tok.Data) == 0 {
-			// It was all whitespace, so ignore it.
-			return true
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Head:
-			p.addElement()
-			p.head = p.top()
-			p.im = inHeadIM
-			return true
-		case a.Html:
-			return inBodyIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Head, a.Body, a.Html, a.Br:
-			p.parseImpliedToken(StartTagToken, a.Head, a.Head.String())
-			return false
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.parseImpliedToken(StartTagToken, a.Head, a.Head.String())
-	return false
-}
-
-// Section 12.2.5.4.4.
-func inHeadIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) < len(p.tok.Data) {
-			// Add the initial whitespace to the current node.
-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
-			if s == "" {
-				return true
-			}
-			p.tok.Data = s
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			return true
-		case a.Script, a.Title, a.Noscript, a.Noframes, a.Style:
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-			return true
-		case a.Head:
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Head:
-			n := p.oe.pop()
-			if n.DataAtom != a.Head {
-				panic("html: bad parser state: <head> element not found, in the in-head insertion mode")
-			}
-			p.im = afterHeadIM
-			return true
-		case a.Body, a.Html, a.Br:
-			p.parseImpliedToken(EndTagToken, a.Head, a.Head.String())
-			return false
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.parseImpliedToken(EndTagToken, a.Head, a.Head.String())
-	return false
-}
-
-// Section 12.2.5.4.6.
-func afterHeadIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) < len(p.tok.Data) {
-			// Add the initial whitespace to the current node.
-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
-			if s == "" {
-				return true
-			}
-			p.tok.Data = s
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Body:
-			p.addElement()
-			p.framesetOK = false
-			p.im = inBodyIM
-			return true
-		case a.Frameset:
-			p.addElement()
-			p.im = inFramesetIM
-			return true
-		case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
-			p.oe = append(p.oe, p.head)
-			defer p.oe.remove(p.head)
-			return inHeadIM(p)
-		case a.Head:
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Body, a.Html, a.Br:
-			// Drop down to creating an implied <body> tag.
-		default:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.parseImpliedToken(StartTagToken, a.Body, a.Body.String())
-	p.framesetOK = true
-	return false
-}
-
-// copyAttributes copies attributes of src not found on dst to dst.
-func copyAttributes(dst *Node, src Token) {
-	if len(src.Attr) == 0 {
-		return
-	}
-	attr := map[string]string{}
-	for _, t := range dst.Attr {
-		attr[t.Key] = t.Val
-	}
-	for _, t := range src.Attr {
-		if _, ok := attr[t.Key]; !ok {
-			dst.Attr = append(dst.Attr, t)
-			attr[t.Key] = t.Val
-		}
-	}
-}
-
-// Section 12.2.5.4.7.
-func inBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		d := p.tok.Data
-		switch n := p.oe.top(); n.DataAtom {
-		case a.Pre, a.Listing:
-			if n.FirstChild == nil {
-				// Ignore a newline at the start of a <pre> block.
-				if d != "" && d[0] == '\r' {
-					d = d[1:]
-				}
-				if d != "" && d[0] == '\n' {
-					d = d[1:]
-				}
-			}
-		}
-		d = strings.Replace(d, "\x00", "", -1)
-		if d == "" {
-			return true
-		}
-		p.reconstructActiveFormattingElements()
-		p.addText(d)
-		if p.framesetOK && strings.TrimLeft(d, whitespace) != "" {
-			// There were non-whitespace characters inserted.
-			p.framesetOK = false
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			copyAttributes(p.oe[0], p.tok)
-		case a.Base, a.Basefont, a.Bgsound, a.Command, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Title:
-			return inHeadIM(p)
-		case a.Body:
-			if len(p.oe) >= 2 {
-				body := p.oe[1]
-				if body.Type == ElementNode && body.DataAtom == a.Body {
-					p.framesetOK = false
-					copyAttributes(body, p.tok)
-				}
-			}
-		case a.Frameset:
-			if !p.framesetOK || len(p.oe) < 2 || p.oe[1].DataAtom != a.Body {
-				// Ignore the token.
-				return true
-			}
-			body := p.oe[1]
-			if body.Parent != nil {
-				body.Parent.RemoveChild(body)
-			}
-			p.oe = p.oe[:1]
-			p.addElement()
-			p.im = inFramesetIM
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Menu, a.Nav, a.Ol, a.P, a.Section, a.Summary, a.Ul:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(buttonScope, a.P)
-			switch n := p.top(); n.DataAtom {
-			case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Pre, a.Listing:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			// The newline, if any, will be dealt with by the TextToken case.
-			p.framesetOK = false
-		case a.Form:
-			if p.form == nil {
-				p.popUntil(buttonScope, a.P)
-				p.addElement()
-				p.form = p.top()
-			}
-		case a.Li:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Li:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Dd, a.Dt:
-			p.framesetOK = false
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				node := p.oe[i]
-				switch node.DataAtom {
-				case a.Dd, a.Dt:
-					p.oe = p.oe[:i]
-				case a.Address, a.Div, a.P:
-					continue
-				default:
-					if !isSpecialElement(node) {
-						continue
-					}
-				}
-				break
-			}
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Plaintext:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-		case a.Button:
-			p.popUntil(defaultScope, a.Button)
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-		case a.A:
-			for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- {
-				if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A {
-					p.inBodyEndTagFormatting(a.A)
-					p.oe.remove(n)
-					p.afe.remove(n)
-					break
-				}
-			}
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.reconstructActiveFormattingElements()
-			p.addFormattingElement()
-		case a.Nobr:
-			p.reconstructActiveFormattingElements()
-			if p.elementInScope(defaultScope, a.Nobr) {
-				p.inBodyEndTagFormatting(a.Nobr)
-				p.reconstructActiveFormattingElements()
-			}
-			p.addFormattingElement()
-		case a.Applet, a.Marquee, a.Object:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.afe = append(p.afe, &scopeMarker)
-			p.framesetOK = false
-		case a.Table:
-			if !p.quirks {
-				p.popUntil(buttonScope, a.P)
-			}
-			p.addElement()
-			p.framesetOK = false
-			p.im = inTableIM
-			return true
-		case a.Area, a.Br, a.Embed, a.Img, a.Input, a.Keygen, a.Wbr:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			if p.tok.DataAtom == a.Input {
-				for _, t := range p.tok.Attr {
-					if t.Key == "type" {
-						if strings.ToLower(t.Val) == "hidden" {
-							// Skip setting framesetOK = false
-							return true
-						}
-					}
-				}
-			}
-			p.framesetOK = false
-		case a.Param, a.Source, a.Track:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		case a.Hr:
-			p.popUntil(buttonScope, a.P)
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			p.framesetOK = false
-		case a.Image:
-			p.tok.DataAtom = a.Img
-			p.tok.Data = a.Img.String()
-			return false
-		case a.Isindex:
-			if p.form != nil {
-				// Ignore the token.
-				return true
-			}
-			action := ""
-			prompt := "This is a searchable index. Enter search keywords: "
-			attr := []Attribute{{Key: "name", Val: "isindex"}}
-			for _, t := range p.tok.Attr {
-				switch t.Key {
-				case "action":
-					action = t.Val
-				case "name":
-					// Ignore the attribute.
-				case "prompt":
-					prompt = t.Val
-				default:
-					attr = append(attr, t)
-				}
-			}
-			p.acknowledgeSelfClosingTag()
-			p.popUntil(buttonScope, a.P)
-			p.parseImpliedToken(StartTagToken, a.Form, a.Form.String())
-			if action != "" {
-				p.form.Attr = []Attribute{{Key: "action", Val: action}}
-			}
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(StartTagToken, a.Label, a.Label.String())
-			p.addText(prompt)
-			p.addChild(&Node{
-				Type:     ElementNode,
-				DataAtom: a.Input,
-				Data:     a.Input.String(),
-				Attr:     attr,
-			})
-			p.oe.pop()
-			p.parseImpliedToken(EndTagToken, a.Label, a.Label.String())
-			p.parseImpliedToken(StartTagToken, a.Hr, a.Hr.String())
-			p.parseImpliedToken(EndTagToken, a.Form, a.Form.String())
-		case a.Textarea:
-			p.addElement()
-			p.setOriginalIM()
-			p.framesetOK = false
-			p.im = textIM
-		case a.Xmp:
-			p.popUntil(buttonScope, a.P)
-			p.reconstructActiveFormattingElements()
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Iframe:
-			p.framesetOK = false
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Noembed, a.Noscript:
-			p.addElement()
-			p.setOriginalIM()
-			p.im = textIM
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectIM
-			return true
-		case a.Optgroup, a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		case a.Rp, a.Rt:
-			if p.elementInScope(defaultScope, a.Ruby) {
-				p.generateImpliedEndTags()
-			}
-			p.addElement()
-		case a.Math, a.Svg:
-			p.reconstructActiveFormattingElements()
-			if p.tok.DataAtom == a.Math {
-				adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
-			} else {
-				adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
-			}
-			adjustForeignAttributes(p.tok.Attr)
-			p.addElement()
-			p.top().Namespace = p.tok.Data
-			if p.hasSelfClosingToken {
-				p.oe.pop()
-				p.acknowledgeSelfClosingTag()
-			}
-			return true
-		case a.Caption, a.Col, a.Colgroup, a.Frame, a.Head, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-		default:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Body:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.im = afterBodyIM
-			}
-		case a.Html:
-			if p.elementInScope(defaultScope, a.Body) {
-				p.parseImpliedToken(EndTagToken, a.Body, a.Body.String())
-				return false
-			}
-			return true
-		case a.Address, a.Article, a.Aside, a.Blockquote, a.Button, a.Center, a.Details, a.Dir, a.Div, a.Dl, a.Fieldset, a.Figcaption, a.Figure, a.Footer, a.Header, a.Hgroup, a.Listing, a.Menu, a.Nav, a.Ol, a.Pre, a.Section, a.Summary, a.Ul:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.Form:
-			node := p.form
-			p.form = nil
-			i := p.indexOfElementInScope(defaultScope, a.Form)
-			if node == nil || i == -1 || p.oe[i] != node {
-				// Ignore the token.
-				return true
-			}
-			p.generateImpliedEndTags()
-			p.oe.remove(node)
-		case a.P:
-			if !p.elementInScope(buttonScope, a.P) {
-				p.parseImpliedToken(StartTagToken, a.P, a.P.String())
-			}
-			p.popUntil(buttonScope, a.P)
-		case a.Li:
-			p.popUntil(listItemScope, a.Li)
-		case a.Dd, a.Dt:
-			p.popUntil(defaultScope, p.tok.DataAtom)
-		case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
-			p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6)
-		case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
-			p.inBodyEndTagFormatting(p.tok.DataAtom)
-		case a.Applet, a.Marquee, a.Object:
-			if p.popUntil(defaultScope, p.tok.DataAtom) {
-				p.clearActiveFormattingElements()
-			}
-		case a.Br:
-			p.tok.Type = StartTagToken
-			return false
-		default:
-			p.inBodyEndTagOther(p.tok.DataAtom)
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	}
-
-	return true
-}
-
-func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
-	// This is the "adoption agency" algorithm, described at
-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#adoptionAgency
-
-	// TODO: this is a fairly literal line-by-line translation of that algorithm.
-	// Once the code successfully parses the comprehensive test suite, we should
-	// refactor this code to be more idiomatic.
-
-	// Steps 1-3. The outer loop.
-	for i := 0; i < 8; i++ {
-		// Step 4. Find the formatting element.
-		var formattingElement *Node
-		for j := len(p.afe) - 1; j >= 0; j-- {
-			if p.afe[j].Type == scopeMarkerNode {
-				break
-			}
-			if p.afe[j].DataAtom == tagAtom {
-				formattingElement = p.afe[j]
-				break
-			}
-		}
-		if formattingElement == nil {
-			p.inBodyEndTagOther(tagAtom)
-			return
-		}
-		feIndex := p.oe.index(formattingElement)
-		if feIndex == -1 {
-			p.afe.remove(formattingElement)
-			return
-		}
-		if !p.elementInScope(defaultScope, tagAtom) {
-			// Ignore the tag.
-			return
-		}
-
-		// Steps 5-6. Find the furthest block.
-		var furthestBlock *Node
-		for _, e := range p.oe[feIndex:] {
-			if isSpecialElement(e) {
-				furthestBlock = e
-				break
-			}
-		}
-		if furthestBlock == nil {
-			e := p.oe.pop()
-			for e != formattingElement {
-				e = p.oe.pop()
-			}
-			p.afe.remove(e)
-			return
-		}
-
-		// Steps 7-8. Find the common ancestor and bookmark node.
-		commonAncestor := p.oe[feIndex-1]
-		bookmark := p.afe.index(formattingElement)
-
-		// Step 9. The inner loop. Find the lastNode to reparent.
-		lastNode := furthestBlock
-		node := furthestBlock
-		x := p.oe.index(node)
-		// Steps 9.1-9.3.
-		for j := 0; j < 3; j++ {
-			// Step 9.4.
-			x--
-			node = p.oe[x]
-			// Step 9.5.
-			if p.afe.index(node) == -1 {
-				p.oe.remove(node)
-				continue
-			}
-			// Step 9.6.
-			if node == formattingElement {
-				break
-			}
-			// Step 9.7.
-			clone := node.clone()
-			p.afe[p.afe.index(node)] = clone
-			p.oe[p.oe.index(node)] = clone
-			node = clone
-			// Step 9.8.
-			if lastNode == furthestBlock {
-				bookmark = p.afe.index(node) + 1
-			}
-			// Step 9.9.
-			if lastNode.Parent != nil {
-				lastNode.Parent.RemoveChild(lastNode)
-			}
-			node.AppendChild(lastNode)
-			// Step 9.10.
-			lastNode = node
-		}
-
-		// Step 10. Reparent lastNode to the common ancestor,
-		// or for misnested table nodes, to the foster parent.
-		if lastNode.Parent != nil {
-			lastNode.Parent.RemoveChild(lastNode)
-		}
-		switch commonAncestor.DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			p.fosterParent(lastNode)
-		default:
-			commonAncestor.AppendChild(lastNode)
-		}
-
-		// Steps 11-13. Reparent nodes from the furthest block's children
-		// to a clone of the formatting element.
-		clone := formattingElement.clone()
-		reparentChildren(clone, furthestBlock)
-		furthestBlock.AppendChild(clone)
-
-		// Step 14. Fix up the list of active formatting elements.
-		if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark {
-			// Move the bookmark with the rest of the list.
-			bookmark--
-		}
-		p.afe.remove(formattingElement)
-		p.afe.insert(bookmark, clone)
-
-		// Step 15. Fix up the stack of open elements.
-		p.oe.remove(formattingElement)
-		p.oe.insert(p.oe.index(furthestBlock)+1, clone)
-	}
-}
-
-// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
-func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
-	for i := len(p.oe) - 1; i >= 0; i-- {
-		if p.oe[i].DataAtom == tagAtom {
-			p.oe = p.oe[:i]
-			break
-		}
-		if isSpecialElement(p.oe[i]) {
-			break
-		}
-	}
-}
-
-// Section 12.2.5.4.8.
-func textIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		p.oe.pop()
-	case TextToken:
-		d := p.tok.Data
-		if n := p.oe.top(); n.DataAtom == a.Textarea && n.FirstChild == nil {
-			// Ignore a newline at the start of a <textarea> block.
-			if d != "" && d[0] == '\r' {
-				d = d[1:]
-			}
-			if d != "" && d[0] == '\n' {
-				d = d[1:]
-			}
-		}
-		if d == "" {
-			return true
-		}
-		p.addText(d)
-		return true
-	case EndTagToken:
-		p.oe.pop()
-	}
-	p.im = p.originalIM
-	p.originalIM = nil
-	return p.tok.Type == EndTagToken
-}
-
-// Section 12.2.5.4.9.
-func inTableIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		p.tok.Data = strings.Replace(p.tok.Data, "\x00", "", -1)
-		switch p.oe.top().DataAtom {
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			if strings.Trim(p.tok.Data, whitespace) == "" {
-				p.addText(p.tok.Data)
-				return true
-			}
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption:
-			p.clearStackToContext(tableScope)
-			p.afe = append(p.afe, &scopeMarker)
-			p.addElement()
-			p.im = inCaptionIM
-			return true
-		case a.Colgroup:
-			p.clearStackToContext(tableScope)
-			p.addElement()
-			p.im = inColumnGroupIM
-			return true
-		case a.Col:
-			p.parseImpliedToken(StartTagToken, a.Colgroup, a.Colgroup.String())
-			return false
-		case a.Tbody, a.Tfoot, a.Thead:
-			p.clearStackToContext(tableScope)
-			p.addElement()
-			p.im = inTableBodyIM
-			return true
-		case a.Td, a.Th, a.Tr:
-			p.parseImpliedToken(StartTagToken, a.Tbody, a.Tbody.String())
-			return false
-		case a.Table:
-			if p.popUntil(tableScope, a.Table) {
-				p.resetInsertionMode()
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Style, a.Script:
-			return inHeadIM(p)
-		case a.Input:
-			for _, t := range p.tok.Attr {
-				if t.Key == "type" && strings.ToLower(t.Val) == "hidden" {
-					p.addElement()
-					p.oe.pop()
-					return true
-				}
-			}
-			// Otherwise drop down to the default action.
-		case a.Form:
-			if p.form != nil {
-				// Ignore the token.
-				return true
-			}
-			p.addElement()
-			p.form = p.oe.pop()
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			switch p.top().DataAtom {
-			case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-				p.fosterParenting = true
-			}
-			p.addElement()
-			p.fosterParenting = false
-			p.framesetOK = false
-			p.im = inSelectInTableIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Table:
-			if p.popUntil(tableScope, a.Table) {
-				p.resetInsertionMode()
-				return true
-			}
-			// Ignore the token.
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	p.fosterParenting = true
-	defer func() { p.fosterParenting = false }()
-
-	return inBodyIM(p)
-}
-
-// Section 12.2.5.4.11.
-func inCaptionIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Thead, a.Tr:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-				return false
-			} else {
-				// Ignore the token.
-				return true
-			}
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectInTableIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-			}
-			return true
-		case a.Table:
-			if p.popUntil(tableScope, a.Caption) {
-				p.clearActiveFormattingElements()
-				p.im = inTableIM
-				return false
-			} else {
-				// Ignore the token.
-				return true
-			}
-		case a.Body, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			// Ignore the token.
-			return true
-		}
-	}
-	return inBodyIM(p)
-}
-
-// Section 12.2.5.4.12.
-func inColumnGroupIM(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) < len(p.tok.Data) {
-			// Add the initial whitespace to the current node.
-			p.addText(p.tok.Data[:len(p.tok.Data)-len(s)])
-			if s == "" {
-				return true
-			}
-			p.tok.Data = s
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Col:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Colgroup:
-			if p.oe.top().DataAtom != a.Html {
-				p.oe.pop()
-				p.im = inTableIM
-			}
-			return true
-		case a.Col:
-			// Ignore the token.
-			return true
-		}
-	}
-	if p.oe.top().DataAtom != a.Html {
-		p.oe.pop()
-		p.im = inTableIM
-		return false
-	}
-	return true
-}
-
-// Section 12.2.5.4.13.
-func inTableBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Tr:
-			p.clearStackToContext(tableBodyScope)
-			p.addElement()
-			p.im = inRowIM
-			return true
-		case a.Td, a.Th:
-			p.parseImpliedToken(StartTagToken, a.Tr, a.Tr.String())
-			return false
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead:
-			if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
-				p.im = inTableIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Tbody, a.Tfoot, a.Thead:
-			if p.elementInScope(tableScope, p.tok.DataAtom) {
-				p.clearStackToContext(tableBodyScope)
-				p.oe.pop()
-				p.im = inTableIM
-			}
-			return true
-		case a.Table:
-			if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
-				p.im = inTableIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th, a.Tr:
-			// Ignore the token.
-			return true
-		}
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	}
-
-	return inTableIM(p)
-}
-
-// Section 12.2.5.4.14.
-func inRowIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Td, a.Th:
-			p.clearStackToContext(tableRowScope)
-			p.addElement()
-			p.afe = append(p.afe, &scopeMarker)
-			p.im = inCellIM
-			return true
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			if p.popUntil(tableScope, a.Tr) {
-				p.im = inTableBodyIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Tr:
-			if p.popUntil(tableScope, a.Tr) {
-				p.im = inTableBodyIM
-				return true
-			}
-			// Ignore the token.
-			return true
-		case a.Table:
-			if p.popUntil(tableScope, a.Tr) {
-				p.im = inTableBodyIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Tbody, a.Tfoot, a.Thead:
-			if p.elementInScope(tableScope, p.tok.DataAtom) {
-				p.parseImpliedToken(EndTagToken, a.Tr, a.Tr.String())
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th:
-			// Ignore the token.
-			return true
-		}
-	}
-
-	return inTableIM(p)
-}
-
-// Section 12.2.5.4.15.
-func inCellIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
-			if p.popUntil(tableScope, a.Td, a.Th) {
-				// Close the cell and reprocess.
-				p.clearActiveFormattingElements()
-				p.im = inRowIM
-				return false
-			}
-			// Ignore the token.
-			return true
-		case a.Select:
-			p.reconstructActiveFormattingElements()
-			p.addElement()
-			p.framesetOK = false
-			p.im = inSelectInTableIM
-			return true
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Td, a.Th:
-			if !p.popUntil(tableScope, p.tok.DataAtom) {
-				// Ignore the token.
-				return true
-			}
-			p.clearActiveFormattingElements()
-			p.im = inRowIM
-			return true
-		case a.Body, a.Caption, a.Col, a.Colgroup, a.Html:
-			// Ignore the token.
-			return true
-		case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
-			if !p.elementInScope(tableScope, p.tok.DataAtom) {
-				// Ignore the token.
-				return true
-			}
-			// Close the cell and reprocess.
-			p.popUntil(tableScope, a.Td, a.Th)
-			p.clearActiveFormattingElements()
-			p.im = inRowIM
-			return false
-		}
-	}
-	return inBodyIM(p)
-}
-
-// Section 12.2.5.4.16.
-func inSelectIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		p.addText(strings.Replace(p.tok.Data, "\x00", "", -1))
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Optgroup:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-			if p.top().DataAtom == a.Optgroup {
-				p.oe.pop()
-			}
-			p.addElement()
-		case a.Select:
-			p.tok.Type = EndTagToken
-			return false
-		case a.Input, a.Keygen, a.Textarea:
-			if p.elementInScope(selectScope, a.Select) {
-				p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
-				return false
-			}
-			// In order to properly ignore <textarea>, we need to change the tokenizer mode.
-			p.tokenizer.NextIsNotRawText()
-			// Ignore the token.
-			return true
-		case a.Script:
-			return inHeadIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Option:
-			if p.top().DataAtom == a.Option {
-				p.oe.pop()
-			}
-		case a.Optgroup:
-			i := len(p.oe) - 1
-			if p.oe[i].DataAtom == a.Option {
-				i--
-			}
-			if p.oe[i].DataAtom == a.Optgroup {
-				p.oe = p.oe[:i]
-			}
-		case a.Select:
-			if p.popUntil(selectScope, a.Select) {
-				p.resetInsertionMode()
-			}
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case DoctypeToken:
-		// Ignore the token.
-		return true
-	}
-
-	return true
-}
-
-// Section 12.2.5.4.17.
-func inSelectInTableIM(p *parser) bool {
-	switch p.tok.Type {
-	case StartTagToken, EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th:
-			if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.DataAtom) {
-				p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
-				return false
-			} else {
-				// Ignore the token.
-				return true
-			}
-		}
-	}
-	return inSelectIM(p)
-}
-
-// Section 12.2.5.4.18.
-func afterBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) == 0 {
-			// It was all whitespace.
-			return inBodyIM(p)
-		}
-	case StartTagToken:
-		if p.tok.DataAtom == a.Html {
-			return inBodyIM(p)
-		}
-	case EndTagToken:
-		if p.tok.DataAtom == a.Html {
-			if !p.fragment {
-				p.im = afterAfterBodyIM
-			}
-			return true
-		}
-	case CommentToken:
-		// The comment is attached to the <html> element.
-		if len(p.oe) < 1 || p.oe[0].DataAtom != a.Html {
-			panic("html: bad parser state: <html> element not found, in the after-body insertion mode")
-		}
-		p.oe[0].AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	}
-	p.im = inBodyIM
-	return false
-}
-
-// Section 12.2.5.4.19.
-func inFramesetIM(p *parser) bool {
-	switch p.tok.Type {
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case TextToken:
-		// Ignore all text but whitespace.
-		s := strings.Map(func(c rune) rune {
-			switch c {
-			case ' ', '\t', '\n', '\f', '\r':
-				return c
-			}
-			return -1
-		}, p.tok.Data)
-		if s != "" {
-			p.addText(s)
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Frameset:
-			p.addElement()
-		case a.Frame:
-			p.addElement()
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		case a.Noframes:
-			return inHeadIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Frameset:
-			if p.oe.top().DataAtom != a.Html {
-				p.oe.pop()
-				if p.oe.top().DataAtom != a.Frameset {
-					p.im = afterFramesetIM
-					return true
-				}
-			}
-		}
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-// Section 12.2.5.4.20.
-func afterFramesetIM(p *parser) bool {
-	switch p.tok.Type {
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case TextToken:
-		// Ignore all text but whitespace.
-		s := strings.Map(func(c rune) rune {
-			switch c {
-			case ' ', '\t', '\n', '\f', '\r':
-				return c
-			}
-			return -1
-		}, p.tok.Data)
-		if s != "" {
-			p.addText(s)
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Noframes:
-			return inHeadIM(p)
-		}
-	case EndTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			p.im = afterAfterFramesetIM
-			return true
-		}
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-// Section 12.2.5.4.21.
-func afterAfterBodyIM(p *parser) bool {
-	switch p.tok.Type {
-	case ErrorToken:
-		// Stop parsing.
-		return true
-	case TextToken:
-		s := strings.TrimLeft(p.tok.Data, whitespace)
-		if len(s) == 0 {
-			// It was all whitespace.
-			return inBodyIM(p)
-		}
-	case StartTagToken:
-		if p.tok.DataAtom == a.Html {
-			return inBodyIM(p)
-		}
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-		return true
-	case DoctypeToken:
-		return inBodyIM(p)
-	}
-	p.im = inBodyIM
-	return false
-}
-
-// Section 12.2.5.4.22.
-func afterAfterFramesetIM(p *parser) bool {
-	switch p.tok.Type {
-	case CommentToken:
-		p.doc.AppendChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case TextToken:
-		// Ignore all text but whitespace.
-		s := strings.Map(func(c rune) rune {
-			switch c {
-			case ' ', '\t', '\n', '\f', '\r':
-				return c
-			}
-			return -1
-		}, p.tok.Data)
-		if s != "" {
-			p.tok.Data = s
-			return inBodyIM(p)
-		}
-	case StartTagToken:
-		switch p.tok.DataAtom {
-		case a.Html:
-			return inBodyIM(p)
-		case a.Noframes:
-			return inHeadIM(p)
-		}
-	case DoctypeToken:
-		return inBodyIM(p)
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-const whitespaceOrNUL = whitespace + "\x00"
-
-// Section 12.2.5.5.
-func parseForeignContent(p *parser) bool {
-	switch p.tok.Type {
-	case TextToken:
-		if p.framesetOK {
-			p.framesetOK = strings.TrimLeft(p.tok.Data, whitespaceOrNUL) == ""
-		}
-		p.tok.Data = strings.Replace(p.tok.Data, "\x00", "\ufffd", -1)
-		p.addText(p.tok.Data)
-	case CommentToken:
-		p.addChild(&Node{
-			Type: CommentNode,
-			Data: p.tok.Data,
-		})
-	case StartTagToken:
-		b := breakout[p.tok.Data]
-		if p.tok.DataAtom == a.Font {
-		loop:
-			for _, attr := range p.tok.Attr {
-				switch attr.Key {
-				case "color", "face", "size":
-					b = true
-					break loop
-				}
-			}
-		}
-		if b {
-			for i := len(p.oe) - 1; i >= 0; i-- {
-				n := p.oe[i]
-				if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) {
-					p.oe = p.oe[:i+1]
-					break
-				}
-			}
-			return false
-		}
-		switch p.top().Namespace {
-		case "math":
-			adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
-		case "svg":
-			// Adjust SVG tag names. The tokenizer lower-cases tag names, but
-			// SVG wants e.g. "foreignObject" with a capital second "O".
-			if x := svgTagNameAdjustments[p.tok.Data]; x != "" {
-				p.tok.DataAtom = a.Lookup([]byte(x))
-				p.tok.Data = x
-			}
-			adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
-		default:
-			panic("html: bad parser state: unexpected namespace")
-		}
-		adjustForeignAttributes(p.tok.Attr)
-		namespace := p.top().Namespace
-		p.addElement()
-		p.top().Namespace = namespace
-		if namespace != "" {
-			// Don't let the tokenizer go into raw text mode in foreign content
-			// (e.g. in an SVG <title> tag).
-			p.tokenizer.NextIsNotRawText()
-		}
-		if p.hasSelfClosingToken {
-			p.oe.pop()
-			p.acknowledgeSelfClosingTag()
-		}
-	case EndTagToken:
-		for i := len(p.oe) - 1; i >= 0; i-- {
-			if p.oe[i].Namespace == "" {
-				return p.im(p)
-			}
-			if strings.EqualFold(p.oe[i].Data, p.tok.Data) {
-				p.oe = p.oe[:i]
-				break
-			}
-		}
-		return true
-	default:
-		// Ignore the token.
-	}
-	return true
-}
-
-// Section 12.2.5.
-func (p *parser) inForeignContent() bool {
-	if len(p.oe) == 0 {
-		return false
-	}
-	n := p.oe[len(p.oe)-1]
-	if n.Namespace == "" {
-		return false
-	}
-	if mathMLTextIntegrationPoint(n) {
-		if p.tok.Type == StartTagToken && p.tok.DataAtom != a.Mglyph && p.tok.DataAtom != a.Malignmark {
-			return false
-		}
-		if p.tok.Type == TextToken {
-			return false
-		}
-	}
-	if n.Namespace == "math" && n.DataAtom == a.AnnotationXml && p.tok.Type == StartTagToken && p.tok.DataAtom == a.Svg {
-		return false
-	}
-	if htmlIntegrationPoint(n) && (p.tok.Type == StartTagToken || p.tok.Type == TextToken) {
-		return false
-	}
-	if p.tok.Type == ErrorToken {
-		return false
-	}
-	return true
-}
-
-// parseImpliedToken parses a token as though it had appeared in the parser's
-// input.
-func (p *parser) parseImpliedToken(t TokenType, dataAtom a.Atom, data string) {
-	realToken, selfClosing := p.tok, p.hasSelfClosingToken
-	p.tok = Token{
-		Type:     t,
-		DataAtom: dataAtom,
-		Data:     data,
-	}
-	p.hasSelfClosingToken = false
-	p.parseCurrentToken()
-	p.tok, p.hasSelfClosingToken = realToken, selfClosing
-}
-
-// parseCurrentToken runs the current token through the parsing routines
-// until it is consumed.
-func (p *parser) parseCurrentToken() {
-	if p.tok.Type == SelfClosingTagToken {
-		p.hasSelfClosingToken = true
-		p.tok.Type = StartTagToken
-	}
-
-	consumed := false
-	for !consumed {
-		if p.inForeignContent() {
-			consumed = parseForeignContent(p)
-		} else {
-			consumed = p.im(p)
-		}
-	}
-
-	if p.hasSelfClosingToken {
-		// This is a parse error, but ignore it.
-		p.hasSelfClosingToken = false
-	}
-}
-
-func (p *parser) parse() error {
-	// Iterate until EOF. Any other error will cause an early return.
-	var err error
-	for err != io.EOF {
-		// CDATA sections are allowed only in foreign content.
-		n := p.oe.top()
-		p.tokenizer.AllowCDATA(n != nil && n.Namespace != "")
-		// Read and parse the next token.
-		p.tokenizer.Next()
-		p.tok = p.tokenizer.Token()
-		if p.tok.Type == ErrorToken {
-			err = p.tokenizer.Err()
-			if err != nil && err != io.EOF {
-				return err
-			}
-		}
-		p.parseCurrentToken()
-	}
-	return nil
-}
-
-// Parse returns the parse tree for the HTML from the given Reader.
-// The input is assumed to be UTF-8 encoded.
-func Parse(r io.Reader) (*Node, error) {
-	p := &parser{
-		tokenizer: NewTokenizer(r),
-		doc: &Node{
-			Type: DocumentNode,
-		},
-		scripting:  true,
-		framesetOK: true,
-		im:         initialIM,
-	}
-	err := p.parse()
-	if err != nil {
-		return nil, err
-	}
-	return p.doc, nil
-}
-
-// ParseFragment parses a fragment of HTML and returns the nodes that were
-// found. If the fragment is the InnerHTML for an existing element, pass that
-// element in context.
-func ParseFragment(r io.Reader, context *Node) ([]*Node, error) {
-	contextTag := ""
-	if context != nil {
-		if context.Type != ElementNode {
-			return nil, errors.New("html: ParseFragment of non-element Node")
-		}
-		// The next check isn't just context.DataAtom.String() == context.Data because
-		// it is valid to pass an element whose tag isn't a known atom. For example,
-		// DataAtom == 0 and Data = "tagfromthefuture" is perfectly consistent.
-		if context.DataAtom != a.Lookup([]byte(context.Data)) {
-			return nil, fmt.Errorf("html: inconsistent Node: DataAtom=%q, Data=%q", context.DataAtom, context.Data)
-		}
-		contextTag = context.DataAtom.String()
-	}
-	p := &parser{
-		tokenizer: NewTokenizerFragment(r, contextTag),
-		doc: &Node{
-			Type: DocumentNode,
-		},
-		scripting: true,
-		fragment:  true,
-		context:   context,
-	}
-
-	root := &Node{
-		Type:     ElementNode,
-		DataAtom: a.Html,
-		Data:     a.Html.String(),
-	}
-	p.doc.AppendChild(root)
-	p.oe = nodeStack{root}
-	p.resetInsertionMode()
-
-	for n := context; n != nil; n = n.Parent {
-		if n.Type == ElementNode && n.DataAtom == a.Form {
-			p.form = n
-			break
-		}
-	}
-
-	err := p.parse()
-	if err != nil {
-		return nil, err
-	}
-
-	parent := p.doc
-	if context != nil {
-		parent = root
-	}
-
-	var result []*Node
-	for c := parent.FirstChild; c != nil; {
-		next := c.NextSibling
-		parent.RemoveChild(c)
-		result = append(result, c)
-		c = next
-	}
-	return result, nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/parse_test.go gcc-4.8.1/libgo/go/exp/html/parse_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/parse_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/parse_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,390 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bufio"
-	"bytes"
-	"errors"
-	"exp/html/atom"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"os"
-	"path/filepath"
-	"runtime"
-	"sort"
-	"strings"
-	"testing"
-)
-
-// readParseTest reads a single test case from r.
-func readParseTest(r *bufio.Reader) (text, want, context string, err error) {
-	line, err := r.ReadSlice('\n')
-	if err != nil {
-		return "", "", "", err
-	}
-	var b []byte
-
-	// Read the HTML.
-	if string(line) != "#data\n" {
-		return "", "", "", fmt.Errorf(`got %q want "#data\n"`, line)
-	}
-	for {
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-		if line[0] == '#' {
-			break
-		}
-		b = append(b, line...)
-	}
-	text = string(b)
-	if strings.HasSuffix(text, "\n") {
-		text = text[:len(text)-1]
-	}
-	b = b[:0]
-
-	// Skip the error list.
-	if string(line) != "#errors\n" {
-		return "", "", "", fmt.Errorf(`got %q want "#errors\n"`, line)
-	}
-	for {
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-		if line[0] == '#' {
-			break
-		}
-	}
-
-	if string(line) == "#document-fragment\n" {
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-		context = strings.TrimSpace(string(line))
-		line, err = r.ReadSlice('\n')
-		if err != nil {
-			return "", "", "", err
-		}
-	}
-
-	// Read the dump of what the parse tree should be.
-	if string(line) != "#document\n" {
-		return "", "", "", fmt.Errorf(`got %q want "#document\n"`, line)
-	}
-	inQuote := false
-	for {
-		line, err = r.ReadSlice('\n')
-		if err != nil && err != io.EOF {
-			return "", "", "", err
-		}
-		trimmed := bytes.Trim(line, "| \n")
-		if len(trimmed) > 0 {
-			if line[0] == '|' && trimmed[0] == '"' {
-				inQuote = true
-			}
-			if trimmed[len(trimmed)-1] == '"' && !(line[0] == '|' && len(trimmed) == 1) {
-				inQuote = false
-			}
-		}
-		if len(line) == 0 || len(line) == 1 && line[0] == '\n' && !inQuote {
-			break
-		}
-		b = append(b, line...)
-	}
-	return text, string(b), context, nil
-}
-
-func dumpIndent(w io.Writer, level int) {
-	io.WriteString(w, "| ")
-	for i := 0; i < level; i++ {
-		io.WriteString(w, "  ")
-	}
-}
-
-type sortedAttributes []Attribute
-
-func (a sortedAttributes) Len() int {
-	return len(a)
-}
-
-func (a sortedAttributes) Less(i, j int) bool {
-	if a[i].Namespace != a[j].Namespace {
-		return a[i].Namespace < a[j].Namespace
-	}
-	return a[i].Key < a[j].Key
-}
-
-func (a sortedAttributes) Swap(i, j int) {
-	a[i], a[j] = a[j], a[i]
-}
-
-func dumpLevel(w io.Writer, n *Node, level int) error {
-	dumpIndent(w, level)
-	switch n.Type {
-	case ErrorNode:
-		return errors.New("unexpected ErrorNode")
-	case DocumentNode:
-		return errors.New("unexpected DocumentNode")
-	case ElementNode:
-		if n.Namespace != "" {
-			fmt.Fprintf(w, "<%s %s>", n.Namespace, n.Data)
-		} else {
-			fmt.Fprintf(w, "<%s>", n.Data)
-		}
-		attr := sortedAttributes(n.Attr)
-		sort.Sort(attr)
-		for _, a := range attr {
-			io.WriteString(w, "\n")
-			dumpIndent(w, level+1)
-			if a.Namespace != "" {
-				fmt.Fprintf(w, `%s %s="%s"`, a.Namespace, a.Key, a.Val)
-			} else {
-				fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val)
-			}
-		}
-	case TextNode:
-		fmt.Fprintf(w, `"%s"`, n.Data)
-	case CommentNode:
-		fmt.Fprintf(w, "<!-- %s -->", n.Data)
-	case DoctypeNode:
-		fmt.Fprintf(w, "<!DOCTYPE %s", n.Data)
-		if n.Attr != nil {
-			var p, s string
-			for _, a := range n.Attr {
-				switch a.Key {
-				case "public":
-					p = a.Val
-				case "system":
-					s = a.Val
-				}
-			}
-			if p != "" || s != "" {
-				fmt.Fprintf(w, ` "%s"`, p)
-				fmt.Fprintf(w, ` "%s"`, s)
-			}
-		}
-		io.WriteString(w, ">")
-	case scopeMarkerNode:
-		return errors.New("unexpected scopeMarkerNode")
-	default:
-		return errors.New("unknown node type")
-	}
-	io.WriteString(w, "\n")
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if err := dumpLevel(w, c, level+1); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-func dump(n *Node) (string, error) {
-	if n == nil || n.FirstChild == nil {
-		return "", nil
-	}
-	var b bytes.Buffer
-	for c := n.FirstChild; c != nil; c = c.NextSibling {
-		if err := dumpLevel(&b, c, 0); err != nil {
-			return "", err
-		}
-	}
-	return b.String(), nil
-}
-
-const testDataDir = "testdata/webkit/"
-
-func TestParser(t *testing.T) {
-	testFiles, err := filepath.Glob(testDataDir + "*.dat")
-	if err != nil {
-		t.Fatal(err)
-	}
-	for _, tf := range testFiles {
-		f, err := os.Open(tf)
-		if err != nil {
-			t.Fatal(err)
-		}
-		defer f.Close()
-		r := bufio.NewReader(f)
-
-		for i := 0; ; i++ {
-			text, want, context, err := readParseTest(r)
-			if err == io.EOF {
-				break
-			}
-			if err != nil {
-				t.Fatal(err)
-			}
-
-			err = testParseCase(text, want, context)
-
-			if err != nil {
-				t.Errorf("%s test #%d %q, %s", tf, i, text, err)
-			}
-		}
-	}
-}
-
-// testParseCase tests one test case from the test files. If the test does not
-// pass, it returns an error that explains the failure.
-// text is the HTML to be parsed, want is a dump of the correct parse tree,
-// and context is the name of the context node, if any.
-func testParseCase(text, want, context string) (err error) {
-	defer func() {
-		if x := recover(); x != nil {
-			switch e := x.(type) {
-			case error:
-				err = e
-			default:
-				err = fmt.Errorf("%v", e)
-			}
-		}
-	}()
-
-	var doc *Node
-	if context == "" {
-		doc, err = Parse(strings.NewReader(text))
-		if err != nil {
-			return err
-		}
-	} else {
-		contextNode := &Node{
-			Type:     ElementNode,
-			DataAtom: atom.Lookup([]byte(context)),
-			Data:     context,
-		}
-		nodes, err := ParseFragment(strings.NewReader(text), contextNode)
-		if err != nil {
-			return err
-		}
-		doc = &Node{
-			Type: DocumentNode,
-		}
-		for _, n := range nodes {
-			doc.AppendChild(n)
-		}
-	}
-
-	if err := checkTreeConsistency(doc); err != nil {
-		return err
-	}
-
-	got, err := dump(doc)
-	if err != nil {
-		return err
-	}
-	// Compare the parsed tree to the #document section.
-	if got != want {
-		return fmt.Errorf("got vs want:\n----\n%s----\n%s----", got, want)
-	}
-
-	if renderTestBlacklist[text] || context != "" {
-		return nil
-	}
-
-	// Check that rendering and re-parsing results in an identical tree.
-	pr, pw := io.Pipe()
-	go func() {
-		pw.CloseWithError(Render(pw, doc))
-	}()
-	doc1, err := Parse(pr)
-	if err != nil {
-		return err
-	}
-	got1, err := dump(doc1)
-	if err != nil {
-		return err
-	}
-	if got != got1 {
-		return fmt.Errorf("got vs got1:\n----\n%s----\n%s----", got, got1)
-	}
-
-	return nil
-}
-
-// Some test input result in parse trees are not 'well-formed' despite
-// following the HTML5 recovery algorithms. Rendering and re-parsing such a
-// tree will not result in an exact clone of that tree. We blacklist such
-// inputs from the render test.
-var renderTestBlacklist = map[string]bool{
-	// The second <a> will be reparented to the first <table>'s parent. This
-	// results in an <a> whose parent is an <a>, which is not 'well-formed'.
-	`<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y`: true,
-	// The same thing with a <p>:
-	`<p><table></p>`: true,
-	// More cases of <a> being reparented:
-	`<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe`: true,
-	`<a><table><a></table><p><a><div><a>`:                                     true,
-	`<a><table><td><a><table></table><a></tr><a></table><a>`:                  true,
-	// A similar reparenting situation involving <nobr>:
-	`<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3`: true,
-	// A <plaintext> element is reparented, putting it before a table.
-	// A <plaintext> element can't have anything after it in HTML.
-	`<table><plaintext><td>`:                                   true,
-	`<!doctype html><table><plaintext></plaintext>`:            true,
-	`<!doctype html><table><tbody><plaintext></plaintext>`:     true,
-	`<!doctype html><table><tbody><tr><plaintext></plaintext>`: true,
-	// A form inside a table inside a form doesn't work either.
-	`<!doctype html><form><table></form><form></table></form>`: true,
-	// A script that ends at EOF may escape its own closing tag when rendered.
-	`<!doctype html><script><!--<script `:          true,
-	`<!doctype html><script><!--<script <`:         true,
-	`<!doctype html><script><!--<script <a`:        true,
-	`<!doctype html><script><!--<script </`:        true,
-	`<!doctype html><script><!--<script </s`:       true,
-	`<!doctype html><script><!--<script </script`:  true,
-	`<!doctype html><script><!--<script </scripta`: true,
-	`<!doctype html><script><!--<script -`:         true,
-	`<!doctype html><script><!--<script -a`:        true,
-	`<!doctype html><script><!--<script -<`:        true,
-	`<!doctype html><script><!--<script --`:        true,
-	`<!doctype html><script><!--<script --a`:       true,
-	`<!doctype html><script><!--<script --<`:       true,
-	`<script><!--<script `:                         true,
-	`<script><!--<script <a`:                       true,
-	`<script><!--<script </script`:                 true,
-	`<script><!--<script </scripta`:                true,
-	`<script><!--<script -`:                        true,
-	`<script><!--<script -a`:                       true,
-	`<script><!--<script --`:                       true,
-	`<script><!--<script --a`:                      true,
-	`<script><!--<script <`:                        true,
-	`<script><!--<script </`:                       true,
-	`<script><!--<script </s`:                      true,
-	// Reconstructing the active formatting elements results in a <plaintext>
-	// element that contains an <a> element.
-	`<!doctype html><p><a><plaintext>b`: true,
-}
-
-func TestNodeConsistency(t *testing.T) {
-	// inconsistentNode is a Node whose DataAtom and Data do not agree.
-	inconsistentNode := &Node{
-		Type:     ElementNode,
-		DataAtom: atom.Frameset,
-		Data:     "table",
-	}
-	_, err := ParseFragment(strings.NewReader("<p>hello</p>"), inconsistentNode)
-	if err == nil {
-		t.Errorf("got nil error, want non-nil")
-	}
-}
-
-func BenchmarkParser(b *testing.B) {
-	buf, err := ioutil.ReadFile("testdata/go1.html")
-	if err != nil {
-		b.Fatalf("could not read testdata/go1.html: %v", err)
-	}
-	b.SetBytes(int64(len(buf)))
-	runtime.GC()
-	b.ReportAllocs()
-	b.ResetTimer()
-	for i := 0; i < b.N; i++ {
-		Parse(bytes.NewBuffer(buf))
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/render.go gcc-4.8.1/libgo/go/exp/html/render.go
--- gcc-4.8.1.orig/libgo/go/exp/html/render.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/render.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,271 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bufio"
-	"errors"
-	"fmt"
-	"io"
-	"strings"
-)
-
-type writer interface {
-	io.Writer
-	io.ByteWriter
-	WriteString(string) (int, error)
-}
-
-// Render renders the parse tree n to the given writer.
-//
-// Rendering is done on a 'best effort' basis: calling Parse on the output of
-// Render will always result in something similar to the original tree, but it
-// is not necessarily an exact clone unless the original tree was 'well-formed'.
-// 'Well-formed' is not easily specified; the HTML5 specification is
-// complicated.
-//
-// Calling Parse on arbitrary input typically results in a 'well-formed' parse
-// tree. However, it is possible for Parse to yield a 'badly-formed' parse tree.
-// For example, in a 'well-formed' parse tree, no <a> element is a child of
-// another <a> element: parsing "<a><a>" results in two sibling elements.
-// Similarly, in a 'well-formed' parse tree, no <a> element is a child of a
-// <table> element: parsing "<p><table><a>" results in a <p> with two sibling
-// children; the <a> is reparented to the <table>'s parent. However, calling
-// Parse on "<a><table><a>" does not return an error, but the result has an <a>
-// element with an <a> child, and is therefore not 'well-formed'.
-//
-// Programmatically constructed trees are typically also 'well-formed', but it
-// is possible to construct a tree that looks innocuous but, when rendered and
-// re-parsed, results in a different tree. A simple example is that a solitary
-// text node would become a tree containing <html>, <head> and <body> elements.
-// Another example is that the programmatic equivalent of "a<head>b</head>c"
-// becomes "<html><head><head/><body>abc</body></html>".
-func Render(w io.Writer, n *Node) error {
-	if x, ok := w.(writer); ok {
-		return render(x, n)
-	}
-	buf := bufio.NewWriter(w)
-	if err := render(buf, n); err != nil {
-		return err
-	}
-	return buf.Flush()
-}
-
-// plaintextAbort is returned from render1 when a <plaintext> element
-// has been rendered. No more end tags should be rendered after that.
-var plaintextAbort = errors.New("html: internal error (plaintext abort)")
-
-func render(w writer, n *Node) error {
-	err := render1(w, n)
-	if err == plaintextAbort {
-		err = nil
-	}
-	return err
-}
-
-func render1(w writer, n *Node) error {
-	// Render non-element nodes; these are the easy cases.
-	switch n.Type {
-	case ErrorNode:
-		return errors.New("html: cannot render an ErrorNode node")
-	case TextNode:
-		return escape(w, n.Data)
-	case DocumentNode:
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			if err := render1(w, c); err != nil {
-				return err
-			}
-		}
-		return nil
-	case ElementNode:
-		// No-op.
-	case CommentNode:
-		if _, err := w.WriteString("<!--"); err != nil {
-			return err
-		}
-		if _, err := w.WriteString(n.Data); err != nil {
-			return err
-		}
-		if _, err := w.WriteString("-->"); err != nil {
-			return err
-		}
-		return nil
-	case DoctypeNode:
-		if _, err := w.WriteString("<!DOCTYPE "); err != nil {
-			return err
-		}
-		if _, err := w.WriteString(n.Data); err != nil {
-			return err
-		}
-		if n.Attr != nil {
-			var p, s string
-			for _, a := range n.Attr {
-				switch a.Key {
-				case "public":
-					p = a.Val
-				case "system":
-					s = a.Val
-				}
-			}
-			if p != "" {
-				if _, err := w.WriteString(" PUBLIC "); err != nil {
-					return err
-				}
-				if err := writeQuoted(w, p); err != nil {
-					return err
-				}
-				if s != "" {
-					if err := w.WriteByte(' '); err != nil {
-						return err
-					}
-					if err := writeQuoted(w, s); err != nil {
-						return err
-					}
-				}
-			} else if s != "" {
-				if _, err := w.WriteString(" SYSTEM "); err != nil {
-					return err
-				}
-				if err := writeQuoted(w, s); err != nil {
-					return err
-				}
-			}
-		}
-		return w.WriteByte('>')
-	default:
-		return errors.New("html: unknown node type")
-	}
-
-	// Render the <xxx> opening tag.
-	if err := w.WriteByte('<'); err != nil {
-		return err
-	}
-	if _, err := w.WriteString(n.Data); err != nil {
-		return err
-	}
-	for _, a := range n.Attr {
-		if err := w.WriteByte(' '); err != nil {
-			return err
-		}
-		if a.Namespace != "" {
-			if _, err := w.WriteString(a.Namespace); err != nil {
-				return err
-			}
-			if err := w.WriteByte(':'); err != nil {
-				return err
-			}
-		}
-		if _, err := w.WriteString(a.Key); err != nil {
-			return err
-		}
-		if _, err := w.WriteString(`="`); err != nil {
-			return err
-		}
-		if err := escape(w, a.Val); err != nil {
-			return err
-		}
-		if err := w.WriteByte('"'); err != nil {
-			return err
-		}
-	}
-	if voidElements[n.Data] {
-		if n.FirstChild != nil {
-			return fmt.Errorf("html: void element <%s> has child nodes", n.Data)
-		}
-		_, err := w.WriteString("/>")
-		return err
-	}
-	if err := w.WriteByte('>'); err != nil {
-		return err
-	}
-
-	// Add initial newline where there is danger of a newline beging ignored.
-	if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") {
-		switch n.Data {
-		case "pre", "listing", "textarea":
-			if err := w.WriteByte('\n'); err != nil {
-				return err
-			}
-		}
-	}
-
-	// Render any child nodes.
-	switch n.Data {
-	case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp":
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			if c.Type == TextNode {
-				if _, err := w.WriteString(c.Data); err != nil {
-					return err
-				}
-			} else {
-				if err := render1(w, c); err != nil {
-					return err
-				}
-			}
-		}
-		if n.Data == "plaintext" {
-			// Don't render anything else. <plaintext> must be the
-			// last element in the file, with no closing tag.
-			return plaintextAbort
-		}
-	default:
-		for c := n.FirstChild; c != nil; c = c.NextSibling {
-			if err := render1(w, c); err != nil {
-				return err
-			}
-		}
-	}
-
-	// Render the </xxx> closing tag.
-	if _, err := w.WriteString("</"); err != nil {
-		return err
-	}
-	if _, err := w.WriteString(n.Data); err != nil {
-		return err
-	}
-	return w.WriteByte('>')
-}
-
-// writeQuoted writes s to w surrounded by quotes. Normally it will use double
-// quotes, but if s contains a double quote, it will use single quotes.
-// It is used for writing the identifiers in a doctype declaration.
-// In valid HTML, they can't contain both types of quotes.
-func writeQuoted(w writer, s string) error {
-	var q byte = '"'
-	if strings.Contains(s, `"`) {
-		q = '\''
-	}
-	if err := w.WriteByte(q); err != nil {
-		return err
-	}
-	if _, err := w.WriteString(s); err != nil {
-		return err
-	}
-	if err := w.WriteByte(q); err != nil {
-		return err
-	}
-	return nil
-}
-
-// Section 12.1.2, "Elements", gives this list of void elements. Void elements
-// are those that can't have any contents.
-var voidElements = map[string]bool{
-	"area":    true,
-	"base":    true,
-	"br":      true,
-	"col":     true,
-	"command": true,
-	"embed":   true,
-	"hr":      true,
-	"img":     true,
-	"input":   true,
-	"keygen":  true,
-	"link":    true,
-	"meta":    true,
-	"param":   true,
-	"source":  true,
-	"track":   true,
-	"wbr":     true,
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/render_test.go gcc-4.8.1/libgo/go/exp/html/render_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/render_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/render_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,156 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"testing"
-)
-
-func TestRenderer(t *testing.T) {
-	nodes := [...]*Node{
-		0: {
-			Type: ElementNode,
-			Data: "html",
-		},
-		1: {
-			Type: ElementNode,
-			Data: "head",
-		},
-		2: {
-			Type: ElementNode,
-			Data: "body",
-		},
-		3: {
-			Type: TextNode,
-			Data: "0<1",
-		},
-		4: {
-			Type: ElementNode,
-			Data: "p",
-			Attr: []Attribute{
-				{
-					Key: "id",
-					Val: "A",
-				},
-				{
-					Key: "foo",
-					Val: `abc"def`,
-				},
-			},
-		},
-		5: {
-			Type: TextNode,
-			Data: "2",
-		},
-		6: {
-			Type: ElementNode,
-			Data: "b",
-			Attr: []Attribute{
-				{
-					Key: "empty",
-					Val: "",
-				},
-			},
-		},
-		7: {
-			Type: TextNode,
-			Data: "3",
-		},
-		8: {
-			Type: ElementNode,
-			Data: "i",
-			Attr: []Attribute{
-				{
-					Key: "backslash",
-					Val: `\`,
-				},
-			},
-		},
-		9: {
-			Type: TextNode,
-			Data: "&4",
-		},
-		10: {
-			Type: TextNode,
-			Data: "5",
-		},
-		11: {
-			Type: ElementNode,
-			Data: "blockquote",
-		},
-		12: {
-			Type: ElementNode,
-			Data: "br",
-		},
-		13: {
-			Type: TextNode,
-			Data: "6",
-		},
-	}
-
-	// Build a tree out of those nodes, based on a textual representation.
-	// Only the ".\t"s are significant. The trailing HTML-like text is
-	// just commentary. The "0:" prefixes are for easy cross-reference with
-	// the nodes array.
-	treeAsText := [...]string{
-		0: `<html>`,
-		1: `.	<head>`,
-		2: `.	<body>`,
-		3: `.	.	"0&lt;1"`,
-		4: `.	.	<p id="A" foo="abc&#34;def">`,
-		5: `.	.	.	"2"`,
-		6: `.	.	.	<b empty="">`,
-		7: `.	.	.	.	"3"`,
-		8: `.	.	.	<i backslash="\">`,
-		9: `.	.	.	.	"&amp;4"`,
-		10: `.	.	"5"`,
-		11: `.	.	<blockquote>`,
-		12: `.	.	<br>`,
-		13: `.	.	"6"`,
-	}
-	if len(nodes) != len(treeAsText) {
-		t.Fatal("len(nodes) != len(treeAsText)")
-	}
-	var stack [8]*Node
-	for i, line := range treeAsText {
-		level := 0
-		for line[0] == '.' {
-			// Strip a leading ".\t".
-			line = line[2:]
-			level++
-		}
-		n := nodes[i]
-		if level == 0 {
-			if stack[0] != nil {
-				t.Fatal("multiple root nodes")
-			}
-			stack[0] = n
-		} else {
-			stack[level-1].AppendChild(n)
-			stack[level] = n
-			for i := level + 1; i < len(stack); i++ {
-				stack[i] = nil
-			}
-		}
-		// At each stage of tree construction, we check all nodes for consistency.
-		for j, m := range nodes {
-			if err := checkNodeConsistency(m); err != nil {
-				t.Fatalf("i=%d, j=%d: %v", i, j, err)
-			}
-		}
-	}
-
-	want := `<html><head></head><body>0&lt;1<p id="A" foo="abc&#34;def">` +
-		`2<b empty="">3</b><i backslash="\">&amp;4</i></p>` +
-		`5<blockquote></blockquote><br/>6</body></html>`
-	b := new(bytes.Buffer)
-	if err := Render(b, nodes[0]); err != nil {
-		t.Fatal(err)
-	}
-	if got := b.String(); got != want {
-		t.Errorf("got vs want:\n%s\n%s\n", got, want)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/go1.html gcc-4.8.1/libgo/go/exp/html/testdata/go1.html
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/go1.html	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/go1.html	1969-12-31 18:00:00.000000000 -0600
@@ -1,2237 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-
-  <title>Go 1 Release Notes - The Go Programming Language</title>
-
-<link type="text/css" rel="stylesheet" href="/doc/style.css">
-<script type="text/javascript" src="/doc/godocs.js"></script>
-
-<link rel="search" type="application/opensearchdescription+xml" title="godoc" href="/opensearch.xml" />
-
-<script type="text/javascript">
-var _gaq = _gaq || [];
-_gaq.push(["_setAccount", "UA-11222381-2"]);
-_gaq.push(["_trackPageview"]);
-</script>
-</head>
-<body>
-
-<div id="topbar"><div class="container wide">
-
-<form method="GET" action="/search">
-<div id="menu">
-<a href="/doc/">Documents</a>
-<a href="/ref/">References</a>
-<a href="/pkg/">Packages</a>
-<a href="/project/">The Project</a>
-<a href="/help/">Help</a>
-<input type="text" id="search" name="q" class="inactive" value="Search">
-</div>
-<div id="heading"><a href="/">The Go Programming Language</a></div>
-</form>
-
-</div></div>
-
-<div id="page" class="wide">
-
-
-  <div id="plusone"><g:plusone size="small" annotation="none"></g:plusone></div>
-  <h1>Go 1 Release Notes</h1>
-
-
-
-
-<div id="nav"></div>
-
-
-
-
-<h2 id="introduction">Introduction to Go 1</h2>
-
-<p>
-Go version 1, Go 1 for short, defines a language and a set of core libraries
-that provide a stable foundation for creating reliable products, projects, and
-publications.
-</p>
-
-<p>
-The driving motivation for Go 1 is stability for its users. People should be able to
-write Go programs and expect that they will continue to compile and run without
-change, on a time scale of years, including in production environments such as
-Google App Engine. Similarly, people should be able to write books about Go, be
-able to say which version of Go the book is describing, and have that version
-number still be meaningful much later.
-</p>
-
-<p>
-Code that compiles in Go 1 should, with few exceptions, continue to compile and
-run throughout the lifetime of that version, even as we issue updates and bug
-fixes such as Go version 1.1, 1.2, and so on. Other than critical fixes, changes
-made to the language and library for subsequent releases of Go 1 may
-add functionality but will not break existing Go 1 programs.
-<a href="go1compat.html">The Go 1 compatibility document</a>
-explains the compatibility guidelines in more detail.
-</p>
-
-<p>
-Go 1 is a representation of Go as it used today, not a wholesale rethinking of
-the language. We avoided designing new features and instead focused on cleaning
-up problems and inconsistencies and improving portability. There are a number
-changes to the Go language and packages that we had considered for some time and
-prototyped but not released primarily because they are significant and
-backwards-incompatible. Go 1 was an opportunity to get them out, which is
-helpful for the long term, but also means that Go 1 introduces incompatibilities
-for old programs. Fortunately, the <code>go</code> <code>fix</code> tool can
-automate much of the work needed to bring programs up to the Go 1 standard.
-</p>
-
-<p>
-This document outlines the major changes in Go 1 that will affect programmers
-updating existing code; its reference point is the prior release, r60 (tagged as
-r60.3). It also explains how to update code from r60 to run under Go 1.
-</p>
-
-<h2 id="language">Changes to the language</h2>
-
-<h3 id="append">Append</h3>
-
-<p>
-The <code>append</code> predeclared variadic function makes it easy to grow a slice
-by adding elements to the end.
-A common use is to add bytes to the end of a byte slice when generating output.
-However, <code>append</code> did not provide a way to append a string to a <code>[]byte</code>,
-which is another common case.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/greeting := ..byte/` `/append.*hello/`}}
--->    greeting := []byte{}
-    greeting = append(greeting, []byte(&#34;hello &#34;)...)</pre>
-
-<p>
-By analogy with the similar property of <code>copy</code>, Go 1
-permits a string to be appended (byte-wise) directly to a byte
-slice, reducing the friction between strings and byte slices.
-The conversion is no longer necessary:
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/append.*world/`}}
--->    greeting = append(greeting, &#34;world&#34;...)</pre>
-
-<p>
-<em>Updating</em>:
-This is a new feature, so existing code needs no changes.
-</p>
-
-<h3 id="close">Close</h3>
-
-<p>
-The <code>close</code> predeclared function provides a mechanism
-for a sender to signal that no more values will be sent.
-It is important to the implementation of <code>for</code> <code>range</code>
-loops over channels and is helpful in other situations.
-Partly by design and partly because of race conditions that can occur otherwise,
-it is intended for use only by the goroutine sending on the channel,
-not by the goroutine receiving data.
-However, before Go 1 there was no compile-time checking that <code>close</code>
-was being used correctly.
-</p>
-
-<p>
-To close this gap, at least in part, Go 1 disallows <code>close</code> on receive-only channels.
-Attempting to close such a channel is a compile-time error.
-</p>
-
-<pre>
-    var c chan int
-    var csend chan&lt;- int = c
-    var crecv &lt;-chan int = c
-    close(c)     // legal
-    close(csend) // legal
-    close(crecv) // illegal
-</pre>
-
-<p>
-<em>Updating</em>:
-Existing code that attempts to close a receive-only channel was
-erroneous even before Go 1 and should be fixed.  The compiler will
-now reject such code.
-</p>
-
-<h3 id="literals">Composite literals</h3>
-
-<p>
-In Go 1, a composite literal of array, slice, or map type can elide the
-type specification for the elements' initializers if they are of pointer type.
-All four of the initializations in this example are legal; the last one was illegal before Go 1.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/type Date struct/` `/STOP/`}}
--->    type Date struct {
-        month string
-        day   int
-    }
-    <span class="comment">// Struct values, fully qualified; always legal.</span>
-    holiday1 := []Date{
-        Date{&#34;Feb&#34;, 14},
-        Date{&#34;Nov&#34;, 11},
-        Date{&#34;Dec&#34;, 25},
-    }
-    <span class="comment">// Struct values, type name elided; always legal.</span>
-    holiday2 := []Date{
-        {&#34;Feb&#34;, 14},
-        {&#34;Nov&#34;, 11},
-        {&#34;Dec&#34;, 25},
-    }
-    <span class="comment">// Pointers, fully qualified, always legal.</span>
-    holiday3 := []*Date{
-        &amp;Date{&#34;Feb&#34;, 14},
-        &amp;Date{&#34;Nov&#34;, 11},
-        &amp;Date{&#34;Dec&#34;, 25},
-    }
-    <span class="comment">// Pointers, type name elided; legal in Go 1.</span>
-    holiday4 := []*Date{
-        {&#34;Feb&#34;, 14},
-        {&#34;Nov&#34;, 11},
-        {&#34;Dec&#34;, 25},
-    }</pre>
-
-<p>
-<em>Updating</em>:
-This change has no effect on existing code, but the command
-<code>gofmt</code> <code>-s</code> applied to existing source
-will, among other things, elide explicit element types wherever permitted.
-</p>
-
-
-<h3 id="init">Goroutines during init</h3>
-
-<p>
-The old language defined that <code>go</code> statements executed during initialization created goroutines but that they did not begin to run until initialization of the entire program was complete.
-This introduced clumsiness in many places and, in effect, limited the utility
-of the <code>init</code> construct:
-if it was possible for another package to use the library during initialization, the library
-was forced to avoid goroutines.
-This design was done for reasons of simplicity and safety but,
-as our confidence in the language grew, it seemed unnecessary.
-Running goroutines during initialization is no more complex or unsafe than running them during normal execution.
-</p>
-
-<p>
-In Go 1, code that uses goroutines can be called from
-<code>init</code> routines and global initialization expressions
-without introducing a deadlock.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/PackageGlobal/` `/^}/`}}
--->var PackageGlobal int
-
-func init() {
-    c := make(chan int)
-    go initializationFunction(c)
-    PackageGlobal = &lt;-c
-}</pre>
-
-<p>
-<em>Updating</em>:
-This is a new feature, so existing code needs no changes,
-although it's possible that code that depends on goroutines not starting before <code>main</code> will break.
-There was no such code in the standard repository.
-</p>
-
-<h3 id="rune">The rune type</h3>
-
-<p>
-The language spec allows the <code>int</code> type to be 32 or 64 bits wide, but current implementations set <code>int</code> to 32 bits even on 64-bit platforms.
-It would be preferable to have <code>int</code> be 64 bits on 64-bit platforms.
-(There are important consequences for indexing large slices.)
-However, this change would waste space when processing Unicode characters with
-the old language because the <code>int</code> type was also used to hold Unicode code points: each code point would waste an extra 32 bits of storage if <code>int</code> grew from 32 bits to 64.
-</p>
-
-<p>
-To make changing to 64-bit <code>int</code> feasible,
-Go 1 introduces a new basic type, <code>rune</code>, to represent
-individual Unicode code points.
-It is an alias for <code>int32</code>, analogous to <code>byte</code>
-as an alias for <code>uint8</code>.
-</p>
-
-<p>
-Character literals such as <code>'a'</code>, <code>'èªž'</code>, and <code>'\u0345'</code>
-now have default type <code>rune</code>,
-analogous to <code>1.0</code> having default type <code>float64</code>.
-A variable initialized to a character constant will therefore
-have type <code>rune</code> unless otherwise specified.
-</p>
-
-<p>
-Libraries have been updated to use <code>rune</code> rather than <code>int</code>
-when appropriate. For instance, the functions <code>unicode.ToLower</code> and
-relatives now take and return a <code>rune</code>.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/STARTRUNE/` `/ENDRUNE/`}}
--->    delta := &#39;Î´&#39; <span class="comment">// delta has type rune.</span>
-    var DELTA rune
-    DELTA = unicode.ToUpper(delta)
-    epsilon := unicode.ToLower(DELTA + 1)
-    if epsilon != &#39;Î´&#39;+1 {
-        log.Fatal(&#34;inconsistent casing for Greek&#34;)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-Most source code will be unaffected by this because the type inference from
-<code>:=</code> initializers introduces the new type silently, and it propagates
-from there.
-Some code may get type errors that a trivial conversion will resolve.
-</p>
-
-<h3 id="error">The error type</h3>
-
-<p>
-Go 1 introduces a new built-in type, <code>error</code>, which has the following definition:
-</p>
-
-<pre>
-    type error interface {
-        Error() string
-    }
-</pre>
-
-<p>
-Since the consequences of this type are all in the package library,
-it is discussed <a href="#errors">below</a>.
-</p>
-
-<h3 id="delete">Deleting from maps</h3>
-
-<p>
-In the old language, to delete the entry with key <code>k</code> from map <code>m</code>, one wrote the statement,
-</p>
-
-<pre>
-    m[k] = value, false
-</pre>
-
-<p>
-This syntax was a peculiar special case, the only two-to-one assignment.
-It required passing a value (usually ignored) that is evaluated but discarded,
-plus a boolean that was nearly always the constant <code>false</code>.
-It did the job but was odd and a point of contention.
-</p>
-
-<p>
-In Go 1, that syntax has gone; instead there is a new built-in
-function, <code>delete</code>.  The call
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/delete\(m, k\)/`}}
--->    delete(m, k)</pre>
-
-<p>
-will delete the map entry retrieved by the expression <code>m[k]</code>.
-There is no return value. Deleting a non-existent entry is a no-op.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will convert expressions of the form <code>m[k] = value,
-false</code> into <code>delete(m, k)</code> when it is clear that
-the ignored value can be safely discarded from the program and
-<code>false</code> refers to the predefined boolean constant.
-The fix tool
-will flag other uses of the syntax for inspection by the programmer.
-</p>
-
-<h3 id="iteration">Iterating in maps</h3>
-
-<p>
-The old language specification did not define the order of iteration for maps,
-and in practice it differed across hardware platforms.
-This caused tests that iterated over maps to be fragile and non-portable, with the
-unpleasant property that a test might always pass on one machine but break on another.
-</p>
-
-<p>
-In Go 1, the order in which elements are visited when iterating
-over a map using a <code>for</code> <code>range</code> statement
-is defined to be unpredictable, even if the same loop is run multiple
-times with the same map.
-Code should not assume that the elements are visited in any particular order.
-</p>
-
-<p>
-This change means that code that depends on iteration order is very likely to break early and be fixed long before it becomes a problem.
-Just as important, it allows the map implementation to ensure better map balancing even when programs are using range loops to select an element from a map.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/Sunday/` `/^	}/`}}
--->    m := map[string]int{&#34;Sunday&#34;: 0, &#34;Monday&#34;: 1}
-    for name, value := range m {
-        <span class="comment">// This loop should not assume Sunday will be visited first.</span>
-        f(name, value)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-This is one change where tools cannot help.  Most existing code
-will be unaffected, but some programs may break or misbehave; we
-recommend manual checking of all range statements over maps to
-verify they do not depend on iteration order. There were a few such
-examples in the standard repository; they have been fixed.
-Note that it was already incorrect to depend on the iteration order, which
-was unspecified. This change codifies the unpredictability.
-</p>
-
-<h3 id="multiple_assignment">Multiple assignment</h3>
-
-<p>
-The language specification has long guaranteed that in assignments
-the right-hand-side expressions are all evaluated before any left-hand-side expressions are assigned.
-To guarantee predictable behavior,
-Go 1 refines the specification further.
-</p>
-
-<p>
-If the left-hand side of the assignment
-statement contains expressions that require evaluation, such as
-function calls or array indexing operations, these will all be done
-using the usual left-to-right rule before any variables are assigned
-their value.  Once everything is evaluated, the actual assignments
-proceed in left-to-right order.
-</p>
-
-<p>
-These examples illustrate the behavior.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/sa :=/` `/then sc.0. = 2/`}}
--->    sa := []int{1, 2, 3}
-    i := 0
-    i, sa[i] = 1, 2 <span class="comment">// sets i = 1, sa[0] = 2</span>
-
-    sb := []int{1, 2, 3}
-    j := 0
-    sb[j], j = 2, 1 <span class="comment">// sets sb[0] = 2, j = 1</span>
-
-    sc := []int{1, 2, 3}
-    sc[0], sc[0] = 1, 2 <span class="comment">// sets sc[0] = 1, then sc[0] = 2 (so sc[0] = 2 at end)</span></pre>
-
-<p>
-<em>Updating</em>:
-This is one change where tools cannot help, but breakage is unlikely.
-No code in the standard repository was broken by this change, and code
-that depended on the previous unspecified behavior was already incorrect.
-</p>
-
-<h3 id="shadowing">Returns and shadowed variables</h3>
-
-<p>
-A common mistake is to use <code>return</code> (without arguments) after an assignment to a variable that has the same name as a result variable but is not the same variable.
-This situation is called <em>shadowing</em>: the result variable has been shadowed by another variable with the same name declared in an inner scope.
-</p>
-
-<p>
-In functions with named return values,
-the Go 1 compilers disallow return statements without arguments if any of the named return values is shadowed at the point of the return statement.
-(It isn't part of the specification, because this is one area we are still exploring;
-the situation is analogous to the compilers rejecting functions that do not end with an explicit return statement.)
-</p>
-
-<p>
-This function implicitly returns a shadowed return value and will be rejected by the compiler:
-</p>
-
-<pre>
-    func Bug() (i, j, k int) {
-        for i = 0; i &lt; 5; i++ {
-            for j := 0; j &lt; 5; j++ { // Redeclares j.
-                k += i*j
-                if k > 100 {
-                    return // Rejected: j is shadowed here.
-                }
-            }
-        }
-        return // OK: j is not shadowed here.
-    }
-</pre>
-
-<p>
-<em>Updating</em>:
-Code that shadows return values in this way will be rejected by the compiler and will need to be fixed by hand.
-The few cases that arose in the standard repository were mostly bugs.
-</p>
-
-<h3 id="unexported">Copying structs with unexported fields</h3>
-
-<p>
-The old language did not allow a package to make a copy of a struct value containing unexported fields belonging to a different package.
-There was, however, a required exception for a method receiver;
-also, the implementations of <code>copy</code> and <code>append</code> have never honored the restriction.
-</p>
-
-<p>
-Go 1 will allow packages to copy struct values containing unexported fields from other packages.
-Besides resolving the inconsistency,
-this change admits a new kind of API: a package can return an opaque value without resorting to a pointer or interface.
-The new implementations of <code>time.Time</code> and
-<code>reflect.Value</code> are examples of types taking advantage of this new property.
-</p>
-
-<p>
-As an example, if package <code>p</code> includes the definitions,
-</p>
-
-<pre>
-    type Struct struct {
-        Public int
-        secret int
-    }
-    func NewStruct(a int) Struct {  // Note: not a pointer.
-        return Struct{a, f(a)}
-    }
-    func (s Struct) String() string {
-        return fmt.Sprintf("{%d (secret %d)}", s.Public, s.secret)
-    }
-</pre>
-
-<p>
-a package that imports <code>p</code> can assign and copy values of type
-<code>p.Struct</code> at will.
-Behind the scenes the unexported fields will be assigned and copied just
-as if they were exported,
-but the client code will never be aware of them. The code
-</p>
-
-<pre>
-    import "p"
-
-    myStruct := p.NewStruct(23)
-    copyOfMyStruct := myStruct
-    fmt.Println(myStruct, copyOfMyStruct)
-</pre>
-
-<p>
-will show that the secret field of the struct has been copied to the new value.
-</p>
-
-<p>
-<em>Updating</em>:
-This is a new feature, so existing code needs no changes.
-</p>
-
-<h3 id="equality">Equality</h3>
-
-<p>
-Before Go 1, the language did not define equality on struct and array values.
-This meant,
-among other things, that structs and arrays could not be used as map keys.
-On the other hand, Go did define equality on function and map values.
-Function equality was problematic in the presence of closures
-(when are two closures equal?)
-while map equality compared pointers, not the maps' content, which was usually
-not what the user would want.
-</p>
-
-<p>
-Go 1 addressed these issues.
-First, structs and arrays can be compared for equality and inequality
-(<code>==</code> and <code>!=</code>),
-and therefore be used as map keys,
-provided they are composed from elements for which equality is also defined,
-using element-wise comparison.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/type Day struct/` `/Printf/`}}
--->    type Day struct {
-        long  string
-        short string
-    }
-    Christmas := Day{&#34;Christmas&#34;, &#34;XMas&#34;}
-    Thanksgiving := Day{&#34;Thanksgiving&#34;, &#34;Turkey&#34;}
-    holiday := map[Day]bool{
-        Christmas:    true,
-        Thanksgiving: true,
-    }
-    fmt.Printf(&#34;Christmas is a holiday: %t\n&#34;, holiday[Christmas])</pre>
-
-<p>
-Second, Go 1 removes the definition of equality for function values,
-except for comparison with <code>nil</code>.
-Finally, map equality is gone too, also except for comparison with <code>nil</code>.
-</p>
-
-<p>
-Note that equality is still undefined for slices, for which the
-calculation is in general infeasible.  Also note that the ordered
-comparison operators (<code>&lt;</code> <code>&lt;=</code>
-<code>&gt;</code> <code>&gt;=</code>) are still undefined for
-structs and arrays.
-
-<p>
-<em>Updating</em>:
-Struct and array equality is a new feature, so existing code needs no changes.
-Existing code that depends on function or map equality will be
-rejected by the compiler and will need to be fixed by hand.
-Few programs will be affected, but the fix may require some
-redesign.
-</p>
-
-<h2 id="packages">The package hierarchy</h2>
-
-<p>
-Go 1 addresses many deficiencies in the old standard library and
-cleans up a number of packages, making them more internally consistent
-and portable.
-</p>
-
-<p>
-This section describes how the packages have been rearranged in Go 1.
-Some have moved, some have been renamed, some have been deleted.
-New packages are described in later sections.
-</p>
-
-<h3 id="hierarchy">The package hierarchy</h3>
-
-<p>
-Go 1 has a rearranged package hierarchy that groups related items
-into subdirectories. For instance, <code>utf8</code> and
-<code>utf16</code> now occupy subdirectories of <code>unicode</code>.
-Also, <a href="#subrepo">some packages</a> have moved into
-subrepositories of
-<a href="http://code.google.com/p/go"><code>code.google.com/p/go</code></a>
-while <a href="#deleted">others</a> have been deleted outright.
-</p>
-
-<table class="codetable" frame="border" summary="Moved packages">
-<colgroup align="left" width="60%"></colgroup>
-<colgroup align="left" width="40%"></colgroup>
-<tr>
-<th align="left">Old path</th>
-<th align="left">New path</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>asn1</td> <td>encoding/asn1</td></tr>
-<tr><td>csv</td> <td>encoding/csv</td></tr>
-<tr><td>gob</td> <td>encoding/gob</td></tr>
-<tr><td>json</td> <td>encoding/json</td></tr>
-<tr><td>xml</td> <td>encoding/xml</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>exp/template/html</td> <td>html/template</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>big</td> <td>math/big</td></tr>
-<tr><td>cmath</td> <td>math/cmplx</td></tr>
-<tr><td>rand</td> <td>math/rand</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>http</td> <td>net/http</td></tr>
-<tr><td>http/cgi</td> <td>net/http/cgi</td></tr>
-<tr><td>http/fcgi</td> <td>net/http/fcgi</td></tr>
-<tr><td>http/httptest</td> <td>net/http/httptest</td></tr>
-<tr><td>http/pprof</td> <td>net/http/pprof</td></tr>
-<tr><td>mail</td> <td>net/mail</td></tr>
-<tr><td>rpc</td> <td>net/rpc</td></tr>
-<tr><td>rpc/jsonrpc</td> <td>net/rpc/jsonrpc</td></tr>
-<tr><td>smtp</td> <td>net/smtp</td></tr>
-<tr><td>url</td> <td>net/url</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>exec</td> <td>os/exec</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>scanner</td> <td>text/scanner</td></tr>
-<tr><td>tabwriter</td> <td>text/tabwriter</td></tr>
-<tr><td>template</td> <td>text/template</td></tr>
-<tr><td>template/parse</td> <td>text/template/parse</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>utf8</td> <td>unicode/utf8</td></tr>
-<tr><td>utf16</td> <td>unicode/utf16</td></tr>
-</table>
-
-<p>
-Note that the package names for the old <code>cmath</code> and
-<code>exp/template/html</code> packages have changed to <code>cmplx</code>
-and <code>template</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update all imports and package renames for packages that
-remain inside the standard repository.  Programs that import packages
-that are no longer in the standard repository will need to be edited
-by hand.
-</p>
-
-<h3 id="exp">The package tree exp</h3>
-
-<p>
-Because they are not standardized, the packages under the <code>exp</code> directory will not be available in the
-standard Go 1 release distributions, although they will be available in source code form
-in <a href="http://code.google.com/p/go/">the repository</a> for
-developers who wish to use them.
-</p>
-
-<p>
-Several packages have moved under <code>exp</code> at the time of Go 1's release:
-</p>
-
-<ul>
-<li><code>ebnf</code></li>
-<li><code>html</code><sup>&#8224;</sup></li>
-<li><code>go/types</code></li>
-</ul>
-
-<p>
-(<sup>&#8224;</sup>The <code>EscapeString</code> and <code>UnescapeString</code> types remain
-in package <code>html</code>.)
-</p>
-
-<p>
-All these packages are available under the same names, with the prefix <code>exp/</code>: <code>exp/ebnf</code> etc.
-</p>
-
-<p>
-Also, the <code>utf8.String</code> type has been moved to its own package, <code>exp/utf8string</code>.
-</p>
-
-<p>
-Finally, the <code>gotype</code> command now resides in <code>exp/gotype</code>, while
-<code>ebnflint</code> is now in <code>exp/ebnflint</code>.
-If they are installed, they now reside in <code>$GOROOT/bin/tool</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses packages in <code>exp</code> will need to be updated by hand,
-or else compiled from an installation that has <code>exp</code> available.
-The <code>go</code> <code>fix</code> tool or the compiler will complain about such uses.
-</p>
-
-<h3 id="old">The package tree old</h3>
-
-<p>
-Because they are deprecated, the packages under the <code>old</code> directory will not be available in the
-standard Go 1 release distributions, although they will be available in source code form for
-developers who wish to use them.
-</p>
-
-<p>
-The packages in their new locations are:
-</p>
-
-<ul>
-<li><code>old/netchan</code></li>
-<li><code>old/regexp</code></li>
-<li><code>old/template</code></li>
-</ul>
-
-<p>
-<em>Updating</em>:
-Code that uses packages now in <code>old</code> will need to be updated by hand,
-or else compiled from an installation that has <code>old</code> available.
-The <code>go</code> <code>fix</code> tool will warn about such uses.
-</p>
-
-<h3 id="deleted">Deleted packages</h3>
-
-<p>
-Go 1 deletes several packages outright:
-</p>
-
-<ul>
-<li><code>container/vector</code></li>
-<li><code>exp/datafmt</code></li>
-<li><code>go/typechecker</code></li>
-<li><code>try</code></li>
-</ul>
-
-<p>
-and also the command <code>gotry</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses <code>container/vector</code> should be updated to use
-slices directly.  See
-<a href="http://code.google.com/p/go-wiki/wiki/SliceTricks">the Go
-Language Community Wiki</a> for some suggestions.
-Code that uses the other packages (there should be almost zero) will need to be rethought.
-</p>
-
-<h3 id="subrepo">Packages moving to subrepositories</h3>
-
-<p>
-Go 1 has moved a number of packages into other repositories, usually sub-repositories of
-<a href="http://code.google.com/p/go/">the main Go repository</a>.
-This table lists the old and new import paths:
-
-<table class="codetable" frame="border" summary="Sub-repositories">
-<colgroup align="left" width="40%"></colgroup>
-<colgroup align="left" width="60%"></colgroup>
-<tr>
-<th align="left">Old</th>
-<th align="left">New</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>crypto/bcrypt</td> <td>code.google.com/p/go.crypto/bcrypt</tr>
-<tr><td>crypto/blowfish</td> <td>code.google.com/p/go.crypto/blowfish</tr>
-<tr><td>crypto/cast5</td> <td>code.google.com/p/go.crypto/cast5</tr>
-<tr><td>crypto/md4</td> <td>code.google.com/p/go.crypto/md4</tr>
-<tr><td>crypto/ocsp</td> <td>code.google.com/p/go.crypto/ocsp</tr>
-<tr><td>crypto/openpgp</td> <td>code.google.com/p/go.crypto/openpgp</tr>
-<tr><td>crypto/openpgp/armor</td> <td>code.google.com/p/go.crypto/openpgp/armor</tr>
-<tr><td>crypto/openpgp/elgamal</td> <td>code.google.com/p/go.crypto/openpgp/elgamal</tr>
-<tr><td>crypto/openpgp/errors</td> <td>code.google.com/p/go.crypto/openpgp/errors</tr>
-<tr><td>crypto/openpgp/packet</td> <td>code.google.com/p/go.crypto/openpgp/packet</tr>
-<tr><td>crypto/openpgp/s2k</td> <td>code.google.com/p/go.crypto/openpgp/s2k</tr>
-<tr><td>crypto/ripemd160</td> <td>code.google.com/p/go.crypto/ripemd160</tr>
-<tr><td>crypto/twofish</td> <td>code.google.com/p/go.crypto/twofish</tr>
-<tr><td>crypto/xtea</td> <td>code.google.com/p/go.crypto/xtea</tr>
-<tr><td>exp/ssh</td> <td>code.google.com/p/go.crypto/ssh</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr>
-<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>net/dict</td> <td>code.google.com/p/go.net/dict</tr>
-<tr><td>net/websocket</td> <td>code.google.com/p/go.net/websocket</tr>
-<tr><td>exp/spdy</td> <td>code.google.com/p/go.net/spdy</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>encoding/git85</td> <td>code.google.com/p/go.codereview/git85</tr>
-<tr><td>patch</td> <td>code.google.com/p/go.codereview/patch</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>exp/wingui</td> <td>code.google.com/p/gowingui</tr>
-</table>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update imports of these packages to use the new import paths.
-Installations that depend on these packages will need to install them using
-a <code>go get</code> command.
-</p>
-
-<h2 id="major">Major changes to the library</h2>
-
-<p>
-This section describes significant changes to the core libraries, the ones that
-affect the most programs.
-</p>
-
-<h3 id="errors">The error type and errors package</h3>
-
-<p>
-The placement of <code>os.Error</code> in package <code>os</code> is mostly historical: errors first came up when implementing package <code>os</code>, and they seemed system-related at the time.
-Since then it has become clear that errors are more fundamental than the operating system.  For example, it would be nice to use <code>Errors</code> in packages that <code>os</code> depends on, like <code>syscall</code>.
-Also, having <code>Error</code> in <code>os</code> introduces many dependencies on <code>os</code> that would otherwise not exist.
-</p>
-
-<p>
-Go 1 solves these problems by introducing a built-in <code>error</code> interface type and a separate <code>errors</code> package (analogous to <code>bytes</code> and <code>strings</code>) that contains utility functions.
-It replaces <code>os.NewError</code> with
-<a href="/pkg/errors/#New"><code>errors.New</code></a>,
-giving errors a more central place in the environment.
-</p>
-
-<p>
-So the widely-used <code>String</code> method does not cause accidental satisfaction
-of the <code>error</code> interface, the <code>error</code> interface uses instead
-the name <code>Error</code> for that method:
-</p>
-
-<pre>
-    type error interface {
-        Error() string
-    }
-</pre>
-
-<p>
-The <code>fmt</code> library automatically invokes <code>Error</code>, as it already
-does for <code>String</code>, for easy printing of error values.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/START ERROR EXAMPLE/` `/END ERROR EXAMPLE/`}}
--->type SyntaxError struct {
-    File    string
-    Line    int
-    Message string
-}
-
-func (se *SyntaxError) Error() string {
-    return fmt.Sprintf(&#34;%s:%d: %s&#34;, se.File, se.Line, se.Message)
-}</pre>
-
-<p>
-All standard packages have been updated to use the new interface; the old <code>os.Error</code> is gone.
-</p>
-
-<p>
-A new package, <a href="/pkg/errors/"><code>errors</code></a>, contains the function
-</p>
-
-<pre>
-func New(text string) error
-</pre>
-
-<p>
-to turn a string into an error. It replaces the old <code>os.NewError</code>.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/ErrSyntax/`}}
--->    var ErrSyntax = errors.New(&#34;syntax error&#34;)</pre>
-		
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-Code that defines error types with a <code>String</code> method will need to be updated
-by hand to rename the methods to <code>Error</code>.
-</p>
-
-<h3 id="errno">System call errors</h3>
-
-<p>
-The old <code>syscall</code> package, which predated <code>os.Error</code>
-(and just about everything else),
-returned errors as <code>int</code> values.
-In turn, the <code>os</code> package forwarded many of these errors, such
-as <code>EINVAL</code>, but using a different set of errors on each platform.
-This behavior was unpleasant and unportable.
-</p>
-
-<p>
-In Go 1, the
-<a href="/pkg/syscall/"><code>syscall</code></a>
-package instead returns an <code>error</code> for system call errors.
-On Unix, the implementation is done by a
-<a href="/pkg/syscall/#Errno"><code>syscall.Errno</code></a> type
-that satisfies <code>error</code> and replaces the old <code>os.Errno</code>.
-</p>
-
-<p>
-The changes affecting <code>os.EINVAL</code> and relatives are
-described <a href="#os">elsewhere</a>.
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-Regardless, most code should use the <code>os</code> package
-rather than <code>syscall</code> and so will be unaffected.
-</p>
-
-<h3 id="time">Time</h3>
-
-<p>
-Time is always a challenge to support well in a programming language.
-The old Go <code>time</code> package had <code>int64</code> units, no
-real type safety,
-and no distinction between absolute times and durations.
-</p>
-
-<p>
-One of the most sweeping changes in the Go 1 library is therefore a
-complete redesign of the
-<a href="/pkg/time/"><code>time</code></a> package.
-Instead of an integer number of nanoseconds as an <code>int64</code>,
-and a separate <code>*time.Time</code> type to deal with human
-units such as hours and years,
-there are now two fundamental types:
-<a href="/pkg/time/#Time"><code>time.Time</code></a>
-(a value, so the <code>*</code> is gone), which represents a moment in time;
-and <a href="/pkg/time/#Duration"><code>time.Duration</code></a>,
-which represents an interval.
-Both have nanosecond resolution.
-A <code>Time</code> can represent any time into the ancient
-past and remote future, while a <code>Duration</code> can
-span plus or minus only about 290 years.
-There are methods on these types, plus a number of helpful
-predefined constant durations such as <code>time.Second</code>.
-</p>
-
-<p>
-Among the new methods are things like
-<a href="/pkg/time/#Time.Add"><code>Time.Add</code></a>,
-which adds a <code>Duration</code> to a <code>Time</code>, and
-<a href="/pkg/time/#Time.Sub"><code>Time.Sub</code></a>,
-which subtracts two <code>Times</code> to yield a <code>Duration</code>.
-</p>
-
-<p>
-The most important semantic change is that the Unix epoch (Jan 1, 1970) is now
-relevant only for those functions and methods that mention Unix:
-<a href="/pkg/time/#Unix"><code>time.Unix</code></a>
-and the <a href="/pkg/time/#Time.Unix"><code>Unix</code></a>
-and <a href="/pkg/time/#Time.UnixNano"><code>UnixNano</code></a> methods
-of the <code>Time</code> type.
-In particular,
-<a href="/pkg/time/#Now"><code>time.Now</code></a>
-returns a <code>time.Time</code> value rather than, in the old
-API, an integer nanosecond count since the Unix epoch.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/sleepUntil/` `/^}/`}}
---><span class="comment">// sleepUntil sleeps until the specified time. It returns immediately if it&#39;s too late.</span>
-func sleepUntil(wakeup time.Time) {
-    now := time.Now() <span class="comment">// A Time.</span>
-    if !wakeup.After(now) {
-        return
-    }
-    delta := wakeup.Sub(now) <span class="comment">// A Duration.</span>
-    fmt.Printf(&#34;Sleeping for %.3fs\n&#34;, delta.Seconds())
-    time.Sleep(delta)
-}</pre>
-
-<p>
-The new types, methods, and constants have been propagated through
-all the standard packages that use time, such as <code>os</code> and
-its representation of file time stamps.
-</p>
-
-<p>
-<em>Updating</em>:
-The <code>go</code> <code>fix</code> tool will update many uses of the old <code>time</code> package to use the new
-types and methods, although it does not replace values such as <code>1e9</code>
-representing nanoseconds per second.
-Also, because of type changes in some of the values that arise,
-some of the expressions rewritten by the fix tool may require
-further hand editing; in such cases the rewrite will include
-the correct function or method for the old functionality, but
-may have the wrong type or require further analysis.
-</p>
-
-<h2 id="minor">Minor changes to the library</h2>
-
-<p>
-This section describes smaller changes, such as those to less commonly
-used packages or that affect
-few programs beyond the need to run <code>go</code> <code>fix</code>.
-This category includes packages that are new in Go 1.
-Collectively they improve portability, regularize behavior, and
-make the interfaces more modern and Go-like.
-</p>
-
-<h3 id="archive_zip">The archive/zip package</h3>
-
-<p>
-In Go 1, <a href="/pkg/archive/zip/#Writer"><code>*zip.Writer</code></a> no
-longer has a <code>Write</code> method. Its presence was a mistake.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="bufio">The bufio package</h3>
-
-<p>
-In Go 1, <a href="/pkg/bufio/#NewReaderSize"><code>bufio.NewReaderSize</code></a>
-and
-<a href="/pkg/bufio/#NewWriterSize"><code>bufio.NewWriterSize</code></a>
-functions no longer return an error for invalid sizes.
-If the argument size is too small or invalid, it is adjusted.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update calls that assign the error to _.
-Calls that aren't fixed will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="compress">The compress/flate, compress/gzip and compress/zlib packages</h3>
-
-<p>
-In Go 1, the <code>NewWriterXxx</code> functions in
-<a href="/pkg/compress/flate"><code>compress/flate</code></a>,
-<a href="/pkg/compress/gzip"><code>compress/gzip</code></a> and
-<a href="/pkg/compress/zlib"><code>compress/zlib</code></a>
-all return <code>(*Writer, error)</code> if they take a compression level,
-and <code>*Writer</code> otherwise. Package <code>gzip</code>'s
-<code>Compressor</code> and <code>Decompressor</code> types have been renamed
-to <code>Writer</code> and <code>Reader</code>. Package <code>flate</code>'s
-<code>WrongValueError</code> type has been removed.
-</p>
-
-<p>
-<em>Updating</em>
-Running <code>go</code> <code>fix</code> will update old names and calls that assign the error to _.
-Calls that aren't fixed will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="crypto_aes_des">The crypto/aes and crypto/des packages</h3>
-
-<p>
-In Go 1, the <code>Reset</code> method has been removed. Go does not guarantee
-that memory is not copied and therefore this method was misleading.
-</p>
-
-<p>
-The cipher-specific types <code>*aes.Cipher</code>, <code>*des.Cipher</code>,
-and <code>*des.TripleDESCipher</code> have been removed in favor of
-<code>cipher.Block</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Remove the calls to Reset. Replace uses of the specific cipher types with
-cipher.Block.
-</p>
-
-<h3 id="crypto_elliptic">The crypto/elliptic package</h3>
-
-<p>
-In Go 1, <a href="/pkg/crypto/elliptic/#Curve"><code>elliptic.Curve</code></a>
-has been made an interface to permit alternative implementations. The curve
-parameters have been moved to the
-<a href="/pkg/crypto/elliptic/#CurveParams"><code>elliptic.CurveParams</code></a>
-structure.
-</p>
-
-<p>
-<em>Updating</em>:
-Existing users of <code>*elliptic.Curve</code> will need to change to
-simply <code>elliptic.Curve</code>. Calls to <code>Marshal</code>,
-<code>Unmarshal</code> and <code>GenerateKey</code> are now functions
-in <code>crypto/elliptic</code> that take an <code>elliptic.Curve</code>
-as their first argument.
-</p>
-
-<h3 id="crypto_hmac">The crypto/hmac package</h3>
-
-<p>
-In Go 1, the hash-specific functions, such as <code>hmac.NewMD5</code>, have
-been removed from <code>crypto/hmac</code>. Instead, <code>hmac.New</code> takes
-a function that returns a <code>hash.Hash</code>, such as <code>md5.New</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will perform the needed changes.
-</p>
-
-<h3 id="crypto_x509">The crypto/x509 package</h3>
-
-<p>
-In Go 1, the
-<a href="/pkg/crypto/x509/#CreateCertificate"><code>CreateCertificate</code></a>
-and
-<a href="/pkg/crypto/x509/#CreateCRL"><code>CreateCRL</code></a>
-functions in <code>crypto/x509</code> have been altered to take an
-<code>interface{}</code> where they previously took a <code>*rsa.PublicKey</code>
-or <code>*rsa.PrivateKey</code>. This will allow other public key algorithms
-to be implemented in the future.
-</p>
-
-<p>
-<em>Updating</em>:
-No changes will be needed.
-</p>
-
-<h3 id="encoding_binary">The encoding/binary package</h3>
-
-<p>
-In Go 1, the <code>binary.TotalSize</code> function has been replaced by
-<a href="/pkg/encoding/binary/#Size"><code>Size</code></a>,
-which takes an <code>interface{}</code> argument rather than
-a <code>reflect.Value</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="encoding_xml">The encoding/xml package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/encoding/xml/"><code>xml</code></a> package
-has been brought closer in design to the other marshaling packages such
-as <a href="/pkg/encoding/gob/"><code>encoding/gob</code></a>.
-</p>
-
-<p>
-The old <code>Parser</code> type is renamed
-<a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> and has a new
-<a href="/pkg/encoding/xml/#Decoder.Decode"><code>Decode</code></a> method. An
-<a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a> type was also introduced.
-</p>
-
-<p>
-The functions <a href="/pkg/encoding/xml/#Marshal"><code>Marshal</code></a>
-and <a href="/pkg/encoding/xml/#Unmarshal"><code>Unmarshal</code></a>
-work with <code>[]byte</code> values now. To work with streams,
-use the new <a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a>
-and <a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> types.
-</p>
-
-<p>
-When marshaling or unmarshaling values, the format of supported flags in
-field tags has changed to be closer to the
-<a href="/pkg/encoding/json"><code>json</code></a> package
-(<code>`xml:"name,flag"`</code>). The matching done between field tags, field
-names, and the XML attribute and element names is now case-sensitive.
-The <code>XMLName</code> field tag, if present, must also match the name
-of the XML element being marshaled.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update most uses of the package except for some calls to
-<code>Unmarshal</code>. Special care must be taken with field tags,
-since the fix tool will not update them and if not fixed by hand they will
-misbehave silently in some cases. For example, the old
-<code>"attr"</code> is now written <code>",attr"</code> while plain
-<code>"attr"</code> remains valid but with a different meaning.
-</p>
-
-<h3 id="expvar">The expvar package</h3>
-
-<p>
-In Go 1, the <code>RemoveAll</code> function has been removed.
-The <code>Iter</code> function and Iter method on <code>*Map</code> have
-been replaced by
-<a href="/pkg/expvar/#Do"><code>Do</code></a>
-and
-<a href="/pkg/expvar/#Map.Do"><code>(*Map).Do</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Most code using <code>expvar</code> will not need changing. The rare code that used
-<code>Iter</code> can be updated to pass a closure to <code>Do</code> to achieve the same effect.
-</p>
-
-<h3 id="flag">The flag package</h3>
-
-<p>
-In Go 1, the interface <a href="/pkg/flag/#Value"><code>flag.Value</code></a> has changed slightly.
-The <code>Set</code> method now returns an <code>error</code> instead of
-a <code>bool</code> to indicate success or failure.
-</p>
-
-<p>
-There is also a new kind of flag, <code>Duration</code>, to support argument
-values specifying time intervals.
-Values for such flags must be given units, just as <code>time.Duration</code>
-formats them: <code>10s</code>, <code>1h30m</code>, etc.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/timeout/`}}
--->var timeout = flag.Duration(&#34;timeout&#34;, 30*time.Second, &#34;how long to wait for completion&#34;)</pre>
-
-<p>
-<em>Updating</em>:
-Programs that implement their own flags will need minor manual fixes to update their
-<code>Set</code> methods.
-The <code>Duration</code> flag is new and affects no existing code.
-</p>
-
-
-<h3 id="go">The go/* packages</h3>
-
-<p>
-Several packages under <code>go</code> have slightly revised APIs.
-</p>
-
-<p>
-A concrete <code>Mode</code> type was introduced for configuration mode flags
-in the packages
-<a href="/pkg/go/scanner/"><code>go/scanner</code></a>,
-<a href="/pkg/go/parser/"><code>go/parser</code></a>,
-<a href="/pkg/go/printer/"><code>go/printer</code></a>, and
-<a href="/pkg/go/doc/"><code>go/doc</code></a>.
-</p>
-
-<p>
-The modes <code>AllowIllegalChars</code> and <code>InsertSemis</code> have been removed
-from the <a href="/pkg/go/scanner/"><code>go/scanner</code></a> package. They were mostly
-useful for scanning text other then Go source files. Instead, the
-<a href="/pkg/text/scanner/"><code>text/scanner</code></a> package should be used
-for that purpose.
-</p>
-
-<p>
-The <a href="/pkg/go/scanner/#ErrorHandler"><code>ErrorHandler</code></a> provided
-to the scanner's <a href="/pkg/go/scanner/#Scanner.Init"><code>Init</code></a> method is
-now simply a function rather than an interface. The <code>ErrorVector</code> type has
-been removed in favor of the (existing) <a href="/pkg/go/scanner/#ErrorList"><code>ErrorList</code></a>
-type, and the <code>ErrorVector</code> methods have been migrated. Instead of embedding
-an <code>ErrorVector</code> in a client of the scanner, now a client should maintain
-an <code>ErrorList</code>.
-</p>
-
-<p>
-The set of parse functions provided by the <a href="/pkg/go/parser/"><code>go/parser</code></a>
-package has been reduced to the primary parse function
-<a href="/pkg/go/parser/#ParseFile"><code>ParseFile</code></a>, and a couple of
-convenience functions <a href="/pkg/go/parser/#ParseDir"><code>ParseDir</code></a>
-and <a href="/pkg/go/parser/#ParseExpr"><code>ParseExpr</code></a>.
-</p>
-
-<p>
-The <a href="/pkg/go/printer/"><code>go/printer</code></a> package supports an additional
-configuration mode <a href="/pkg/go/printer/#Mode"><code>SourcePos</code></a>;
-if set, the printer will emit <code>//line</code> comments such that the generated
-output contains the original source code position information. The new type
-<a href="/pkg/go/printer/#CommentedNode"><code>CommentedNode</code></a> can be
-used to provide comments associated with an arbitrary
-<a href="/pkg/go/ast/#Node"><code>ast.Node</code></a> (until now only
-<a href="/pkg/go/ast/#File"><code>ast.File</code></a> carried comment information).
-</p>
-
-<p>
-The type names of the <a href="/pkg/go/doc/"><code>go/doc</code></a> package have been
-streamlined by removing the <code>Doc</code> suffix: <code>PackageDoc</code>
-is now <code>Package</code>, <code>ValueDoc</code> is <code>Value</code>, etc.
-Also, all types now consistently have a <code>Name</code> field (or <code>Names</code>,
-in the case of type <code>Value</code>) and <code>Type.Factories</code> has become
-<code>Type.Funcs</code>.
-Instead of calling <code>doc.NewPackageDoc(pkg, importpath)</code>,
-documentation for a package is created with:
-</p>
-
-<pre>
-    doc.New(pkg, importpath, mode)
-</pre>
-
-<p>
-where the new <code>mode</code> parameter specifies the operation mode:
-if set to <a href="/pkg/go/doc/#AllDecls"><code>AllDecls</code></a>, all declarations
-(not just exported ones) are considered.
-The function <code>NewFileDoc</code> was removed, and the function
-<code>CommentText</code> has become the method
-<a href="/pkg/go/ast/#Text"><code>Text</code></a> of
-<a href="/pkg/go/ast/#CommentGroup"><code>ast.CommentGroup</code></a>.
-</p>
-
-<p>
-In package <a href="/pkg/go/token/"><code>go/token</code></a>, the
-<a href="/pkg/go/token/#FileSet"><code>token.FileSet</code></a> method <code>Files</code>
-(which originally returned a channel of <code>*token.File</code>s) has been replaced
-with the iterator <a href="/pkg/go/token/#FileSet.Iterate"><code>Iterate</code></a> that
-accepts a function argument instead.
-</p>
-
-<p>
-In package <a href="/pkg/go/build/"><code>go/build</code></a>, the API
-has been nearly completely replaced.
-The package still computes Go package information
-but it does not run the build: the <code>Cmd</code> and <code>Script</code>
-types are gone.
-(To build code, use the new
-<a href="/cmd/go/"><code>go</code></a> command instead.)
-The <code>DirInfo</code> type is now named
-<a href="/pkg/go/build/#Package"><code>Package</code></a>.
-<code>FindTree</code> and <code>ScanDir</code> are replaced by
-<a href="/pkg/go/build/#Import"><code>Import</code></a>
-and
-<a href="/pkg/go/build/#ImportDir"><code>ImportDir</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses packages in <code>go</code> will have to be updated by hand; the
-compiler will reject incorrect uses. Templates used in conjunction with any of the
-<code>go/doc</code> types may need manual fixes; the renamed fields will lead
-to run-time errors.
-</p>
-
-<h3 id="hash">The hash package</h3>
-
-<p>
-In Go 1, the definition of <a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> includes
-a new method, <code>BlockSize</code>.  This new method is used primarily in the
-cryptographic libraries.
-</p>
-
-<p>
-The <code>Sum</code> method of the
-<a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> interface now takes a
-<code>[]byte</code> argument, to which the hash value will be appended.
-The previous behavior can be recreated by adding a <code>nil</code> argument to the call.
-</p>
-
-<p>
-<em>Updating</em>:
-Existing implementations of <code>hash.Hash</code> will need to add a
-<code>BlockSize</code> method.  Hashes that process the input one byte at
-a time can implement <code>BlockSize</code> to return 1.
-Running <code>go</code> <code>fix</code> will update calls to the <code>Sum</code> methods of the various
-implementations of <code>hash.Hash</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Since the package's functionality is new, no updating is necessary.
-</p>
-
-<h3 id="http">The http package</h3>
-
-<p>
-In Go 1 the <a href="/pkg/net/http/"><code>http</code></a> package is refactored,
-putting some of the utilities into a
-<a href="/pkg/net/http/httputil/"><code>httputil</code></a> subdirectory.
-These pieces are only rarely needed by HTTP clients.
-The affected items are:
-</p>
-
-<ul>
-<li>ClientConn</li>
-<li>DumpRequest</li>
-<li>DumpRequestOut</li>
-<li>DumpResponse</li>
-<li>NewChunkedReader</li>
-<li>NewChunkedWriter</li>
-<li>NewClientConn</li>
-<li>NewProxyClientConn</li>
-<li>NewServerConn</li>
-<li>NewSingleHostReverseProxy</li>
-<li>ReverseProxy</li>
-<li>ServerConn</li>
-</ul>
-
-<p>
-The <code>Request.RawURL</code> field has been removed; it was a
-historical artifact.
-</p>
-
-<p>
-The <code>Handle</code> and <code>HandleFunc</code>
-functions, and the similarly-named methods of <code>ServeMux</code>,
-now panic if an attempt is made to register the same pattern twice.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update the few programs that are affected except for
-uses of <code>RawURL</code>, which must be fixed by hand.
-</p>
-
-<h3 id="image">The image package</h3>
-
-<p>
-The <a href="/pkg/image/"><code>image</code></a> package has had a number of
-minor changes, rearrangements and renamings.
-</p>
-
-<p>
-Most of the color handling code has been moved into its own package,
-<a href="/pkg/image/color/"><code>image/color</code></a>.
-For the elements that moved, a symmetry arises; for instance,
-each pixel of an
-<a href="/pkg/image/#RGBA"><code>image.RGBA</code></a>
-is a
-<a href="/pkg/image/color/#RGBA"><code>color.RGBA</code></a>.
-</p>
-
-<p>
-The old <code>image/ycbcr</code> package has been folded, with some
-renamings, into the
-<a href="/pkg/image/"><code>image</code></a>
-and
-<a href="/pkg/image/color/"><code>image/color</code></a>
-packages.
-</p>
-
-<p>
-The old <code>image.ColorImage</code> type is still in the <code>image</code>
-package but has been renamed
-<a href="/pkg/image/#Uniform"><code>image.Uniform</code></a>,
-while <code>image.Tiled</code> has been removed.
-</p>
-
-<p>
-This table lists the renamings.
-</p>
-
-<table class="codetable" frame="border" summary="image renames">
-<colgroup align="left" width="50%"></colgroup>
-<colgroup align="left" width="50%"></colgroup>
-<tr>
-<th align="left">Old</th>
-<th align="left">New</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.Color</td> <td>color.Color</td></tr>
-<tr><td>image.ColorModel</td> <td>color.Model</td></tr>
-<tr><td>image.ColorModelFunc</td> <td>color.ModelFunc</td></tr>
-<tr><td>image.PalettedColorModel</td> <td>color.Palette</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.RGBAColor</td> <td>color.RGBA</td></tr>
-<tr><td>image.RGBA64Color</td> <td>color.RGBA64</td></tr>
-<tr><td>image.NRGBAColor</td> <td>color.NRGBA</td></tr>
-<tr><td>image.NRGBA64Color</td> <td>color.NRGBA64</td></tr>
-<tr><td>image.AlphaColor</td> <td>color.Alpha</td></tr>
-<tr><td>image.Alpha16Color</td> <td>color.Alpha16</td></tr>
-<tr><td>image.GrayColor</td> <td>color.Gray</td></tr>
-<tr><td>image.Gray16Color</td> <td>color.Gray16</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.RGBAColorModel</td> <td>color.RGBAModel</td></tr>
-<tr><td>image.RGBA64ColorModel</td> <td>color.RGBA64Model</td></tr>
-<tr><td>image.NRGBAColorModel</td> <td>color.NRGBAModel</td></tr>
-<tr><td>image.NRGBA64ColorModel</td> <td>color.NRGBA64Model</td></tr>
-<tr><td>image.AlphaColorModel</td> <td>color.AlphaModel</td></tr>
-<tr><td>image.Alpha16ColorModel</td> <td>color.Alpha16Model</td></tr>
-<tr><td>image.GrayColorModel</td> <td>color.GrayModel</td></tr>
-<tr><td>image.Gray16ColorModel</td> <td>color.Gray16Model</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>ycbcr.RGBToYCbCr</td> <td>color.RGBToYCbCr</td></tr>
-<tr><td>ycbcr.YCbCrToRGB</td> <td>color.YCbCrToRGB</td></tr>
-<tr><td>ycbcr.YCbCrColorModel</td> <td>color.YCbCrModel</td></tr>
-<tr><td>ycbcr.YCbCrColor</td> <td>color.YCbCr</td></tr>
-<tr><td>ycbcr.YCbCr</td> <td>image.YCbCr</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>ycbcr.SubsampleRatio444</td> <td>image.YCbCrSubsampleRatio444</td></tr>
-<tr><td>ycbcr.SubsampleRatio422</td> <td>image.YCbCrSubsampleRatio422</td></tr>
-<tr><td>ycbcr.SubsampleRatio420</td> <td>image.YCbCrSubsampleRatio420</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>image.ColorImage</td> <td>image.Uniform</td></tr>
-</table>
-
-<p>
-The image package's <code>New</code> functions
-(<a href="/pkg/image/#NewRGBA"><code>NewRGBA</code></a>,
-<a href="/pkg/image/#NewRGBA64"><code>NewRGBA64</code></a>, etc.)
-take an <a href="/pkg/image/#Rectangle"><code>image.Rectangle</code></a> as an argument
-instead of four integers.
-</p>
-
-<p>
-Finally, there are new predefined <code>color.Color</code> variables
-<a href="/pkg/image/color/#Black"><code>color.Black</code></a>,
-<a href="/pkg/image/color/#White"><code>color.White</code></a>,
-<a href="/pkg/image/color/#Opaque"><code>color.Opaque</code></a>
-and
-<a href="/pkg/image/color/#Transparent"><code>color.Transparent</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-</p>
-
-<h3 id="log_syslog">The log/syslog package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/log/syslog/#NewLogger"><code>syslog.NewLogger</code></a>
-function returns an error as well as a <code>log.Logger</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="mime">The mime package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/mime/#FormatMediaType"><code>FormatMediaType</code></a> function
-of the <code>mime</code> package has  been simplified to make it
-consistent with
-<a href="/pkg/mime/#ParseMediaType"><code>ParseMediaType</code></a>.
-It now takes <code>"text/html"</code> rather than <code>"text"</code> and <code>"html"</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-What little code is affected will be caught by the compiler and must be updated by hand.
-</p>
-
-<h3 id="net">The net package</h3>
-
-<p>
-In Go 1, the various <code>SetTimeout</code>,
-<code>SetReadTimeout</code>, and <code>SetWriteTimeout</code> methods
-have been replaced with
-<a href="/pkg/net/#IPConn.SetDeadline"><code>SetDeadline</code></a>,
-<a href="/pkg/net/#IPConn.SetReadDeadline"><code>SetReadDeadline</code></a>, and
-<a href="/pkg/net/#IPConn.SetWriteDeadline"><code>SetWriteDeadline</code></a>,
-respectively.  Rather than taking a timeout value in nanoseconds that
-apply to any activity on the connection, the new methods set an
-absolute deadline (as a <code>time.Time</code> value) after which
-reads and writes will time out and no longer block.
-</p>
-
-<p>
-There are also new functions
-<a href="/pkg/net/#DialTimeout"><code>net.DialTimeout</code></a>
-to simplify timing out dialing a network address and
-<a href="/pkg/net/#ListenMulticastUDP"><code>net.ListenMulticastUDP</code></a>
-to allow multicast UDP to listen concurrently across multiple listeners.
-The <code>net.ListenMulticastUDP</code> function replaces the old
-<code>JoinGroup</code> and <code>LeaveGroup</code> methods.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses the old methods will fail to compile and must be updated by hand.
-The semantic change makes it difficult for the fix tool to update automatically.
-</p>
-
-<h3 id="os">The os package</h3>
-
-<p>
-The <code>Time</code> function has been removed; callers should use
-the <a href="/pkg/time/#Time"><code>Time</code></a> type from the
-<code>time</code> package.
-</p>
-
-<p>
-The <code>Exec</code> function has been removed; callers should use
-<code>Exec</code> from the <code>syscall</code> package, where available.
-</p>
-
-<p>
-The <code>ShellExpand</code> function has been renamed to <a
-href="/pkg/os/#ExpandEnv"><code>ExpandEnv</code></a>.
-</p>
-
-<p>
-The <a href="/pkg/os/#NewFile"><code>NewFile</code></a> function
-now takes a <code>uintptr</code> fd, instead of an <code>int</code>.
-The <a href="/pkg/os/#File.Fd"><code>Fd</code></a> method on files now
-also returns a <code>uintptr</code>.
-</p>
-
-<p>
-There are no longer error constants such as <code>EINVAL</code>
-in the <code>os</code> package, since the set of values varied with
-the underlying operating system. There are new portable functions like
-<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a>
-to test common error properties, plus a few new error values
-with more Go-like names, such as
-<a href="/pkg/os/#ErrPermission"><code>ErrPermission</code></a>
-and
-<a href="/pkg/os/#ErrNoEnv"><code>ErrNoEnv</code></a>.
-</p>
-
-<p>
-The <code>Getenverror</code> function has been removed. To distinguish
-between a non-existent environment variable and an empty string,
-use <a href="/pkg/os/#Environ"><code>os.Environ</code></a> or
-<a href="/pkg/syscall/#Getenv"><code>syscall.Getenv</code></a>.
-</p>
-
-
-<p>
-The <a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a> method has
-dropped its option argument and the associated constants are gone
-from the package.
-Also, the function <code>Wait</code> is gone; only the method of
-the <code>Process</code> type persists.
-</p>
-
-<p>
-The <code>Waitmsg</code> type returned by
-<a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a>
-has been replaced with a more portable
-<a href="/pkg/os/#ProcessState"><code>ProcessState</code></a>
-type with accessor methods to recover information about the
-process.
-Because of changes to <code>Wait</code>, the <code>ProcessState</code>
-value always describes an exited process.
-Portability concerns simplified the interface in other ways, but the values returned by the
-<a href="/pkg/os/#ProcessState.Sys"><code>ProcessState.Sys</code></a> and
-<a href="/pkg/os/#ProcessState.SysUsage"><code>ProcessState.SysUsage</code></a>
-methods can be type-asserted to underlying system-specific data structures such as
-<a href="/pkg/syscall/#WaitStatus"><code>syscall.WaitStatus</code></a> and
-<a href="/pkg/syscall/#Rusage"><code>syscall.Rusage</code></a> on Unix.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will drop a zero argument to <code>Process.Wait</code>.
-All other changes will be caught by the compiler and must be updated by hand.
-</p>
-
-<h4 id="os_fileinfo">The os.FileInfo type</h4>
-
-<p>
-Go 1 redefines the <a href="/pkg/os/#FileInfo"><code>os.FileInfo</code></a> type,
-changing it from a struct to an interface:
-</p>
-
-<pre>
-    type FileInfo interface {
-        Name() string       // base name of the file
-        Size() int64        // length in bytes
-        Mode() FileMode     // file mode bits
-        ModTime() time.Time // modification time
-        IsDir() bool        // abbreviation for Mode().IsDir()
-        Sys() interface{}   // underlying data source (can return nil)
-    }
-</pre>
-
-<p>
-The file mode information has been moved into a subtype called
-<a href="/pkg/os/#FileMode"><code>os.FileMode</code></a>,
-a simple integer type with <code>IsDir</code>, <code>Perm</code>, and <code>String</code>
-methods.
-</p>
-
-<p>
-The system-specific details of file modes and properties such as (on Unix)
-i-number have been removed from <code>FileInfo</code> altogether.
-Instead, each operating system's <code>os</code> package provides an
-implementation of the <code>FileInfo</code> interface, which
-has a <code>Sys</code> method that returns the
-system-specific representation of file metadata.
-For instance, to discover the i-number of a file on a Unix system, unpack
-the <code>FileInfo</code> like this:
-</p>
-
-<pre>
-    fi, err := os.Stat("hello.go")
-    if err != nil {
-        log.Fatal(err)
-    }
-    // Check that it's a Unix file.
-    unixStat, ok := fi.Sys().(*syscall.Stat_t)
-    if !ok {
-        log.Fatal("hello.go: not a Unix file")
-    }
-    fmt.Printf("file i-number: %d\n", unixStat.Ino)
-</pre>
-
-<p>
-Assuming (which is unwise) that <code>"hello.go"</code> is a Unix file,
-the i-number expression could be contracted to
-</p>
-
-<pre>
-    fi.Sys().(*syscall.Stat_t).Ino
-</pre>
-
-<p>
-The vast majority of uses of <code>FileInfo</code> need only the methods
-of the standard interface.
-</p>
-
-<p>
-The <code>os</code> package no longer contains wrappers for the POSIX errors
-such as <code>ENOENT</code>.
-For the few programs that need to verify particular error conditions, there are
-now the boolean functions
-<a href="/pkg/os/#IsExist"><code>IsExist</code></a>,
-<a href="/pkg/os/#IsNotExist"><code>IsNotExist</code></a>
-and
-<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a>.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/os\.Open/` `/}/`}}
--->    f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600)
-    if os.IsExist(err) {
-        log.Printf(&#34;%s already exists&#34;, name)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update code that uses the old equivalent of the current <code>os.FileInfo</code>
-and <code>os.FileMode</code> API.
-Code that needs system-specific file details will need to be updated by hand.
-Code that uses the old POSIX error values from the <code>os</code> package
-will fail to compile and will also need to be updated by hand.
-</p>
-
-<h3 id="os_signal">The os/signal package</h3>
-
-<p>
-The <code>os/signal</code> package in Go 1 replaces the
-<code>Incoming</code> function, which returned a channel
-that received all incoming signals,
-with the selective <code>Notify</code> function, which asks
-for delivery of specific signals on an existing channel.
-</p>
-
-<p>
-<em>Updating</em>:
-Code must be updated by hand.
-A literal translation of
-</p>
-<pre>
-c := signal.Incoming()
-</pre>
-<p>
-is
-</p>
-<pre>
-c := make(chan os.Signal)
-signal.Notify(c) // ask for all signals
-</pre>
-<p>
-but most code should list the specific signals it wants to handle instead:
-</p>
-<pre>
-c := make(chan os.Signal)
-signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT)
-</pre>
-
-<h3 id="path_filepath">The path/filepath package</h3>
-
-<p>
-In Go 1, the <a href="/pkg/path/filepath/#Walk"><code>Walk</code></a> function of the
-<code>path/filepath</code> package
-has been changed to take a function value of type
-<a href="/pkg/path/filepath/#WalkFunc"><code>WalkFunc</code></a>
-instead of a <code>Visitor</code> interface value.
-<code>WalkFunc</code> unifies the handling of both files and directories.
-</p>
-
-<pre>
-    type WalkFunc func(path string, info os.FileInfo, err error) error
-</pre>
-
-<p>
-The <code>WalkFunc</code> function will be called even for files or directories that could not be opened;
-in such cases the error argument will describe the failure.
-If a directory's contents are to be skipped,
-the function should return the value <a href="/pkg/path/filepath/#variables"><code>filepath.SkipDir</code></a>
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/STARTWALK/` `/ENDWALK/`}}
--->    markFn := func(path string, info os.FileInfo, err error) error {
-        if path == &#34;pictures&#34; { <span class="comment">// Will skip walking of directory pictures and its contents.</span>
-            return filepath.SkipDir
-        }
-        if err != nil {
-            return err
-        }
-        log.Println(path)
-        return nil
-    }
-    err := filepath.Walk(&#34;.&#34;, markFn)
-    if err != nil {
-        log.Fatal(err)
-    }</pre>
-
-<p>
-<em>Updating</em>:
-The change simplifies most code but has subtle consequences, so affected programs
-will need to be updated by hand.
-The compiler will catch code using the old interface.
-</p>
-
-<h3 id="regexp">The regexp package</h3>
-
-<p>
-The <a href="/pkg/regexp/"><code>regexp</code></a> package has been rewritten.
-It has the same interface but the specification of the regular expressions
-it supports has changed from the old "egrep" form to that of
-<a href="http://code.google.com/p/re2/">RE2</a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses the package should have its regular expressions checked by hand.
-</p>
-
-<h3 id="runtime">The runtime package</h3>
-
-<p>
-In Go 1, much of the API exported by package
-<code>runtime</code> has been removed in favor of
-functionality provided by other packages.
-Code using the <code>runtime.Type</code> interface
-or its specific concrete type implementations should
-now use package <a href="/pkg/reflect/"><code>reflect</code></a>.
-Code using <code>runtime.Semacquire</code> or <code>runtime.Semrelease</code>
-should use channels or the abstractions in package <a href="/pkg/sync/"><code>sync</code></a>.
-The <code>runtime.Alloc</code>, <code>runtime.Free</code>,
-and <code>runtime.Lookup</code> functions, an unsafe API created for
-debugging the memory allocator, have no replacement.
-</p>
-
-<p>
-Before, <code>runtime.MemStats</code> was a global variable holding
-statistics about memory allocation, and calls to <code>runtime.UpdateMemStats</code>
-ensured that it was up to date.
-In Go 1, <code>runtime.MemStats</code> is a struct type, and code should use
-<a href="/pkg/runtime/#ReadMemStats"><code>runtime.ReadMemStats</code></a>
-to obtain the current statistics.
-</p>
-
-<p>
-The package adds a new function,
-<a href="/pkg/runtime/#NumCPU"><code>runtime.NumCPU</code></a>, that returns the number of CPUs available
-for parallel execution, as reported by the operating system kernel.
-Its value can inform the setting of <code>GOMAXPROCS</code>.
-The <code>runtime.Cgocalls</code> and <code>runtime.Goroutines</code> functions
-have been renamed to <code>runtime.NumCgoCall</code> and <code>runtime.NumGoroutine</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update code for the function renamings.
-Other code will need to be updated by hand.
-</p>
-
-<h3 id="strconv">The strconv package</h3>
-
-<p>
-In Go 1, the
-<a href="/pkg/strconv/"><code>strconv</code></a>
-package has been significantly reworked to make it more Go-like and less C-like,
-although <code>Atoi</code> lives on (it's similar to
-<code>int(ParseInt(x, 10, 0))</code>, as does
-<code>Itoa(x)</code> (<code>FormatInt(int64(x), 10)</code>).
-There are also new variants of some of the functions that append to byte slices rather than
-return strings, to allow control over allocation.
-</p>
-
-<p>
-This table summarizes the renamings; see the
-<a href="/pkg/strconv/">package documentation</a>
-for full details.
-</p>
-
-<table class="codetable" frame="border" summary="strconv renames">
-<colgroup align="left" width="50%"></colgroup>
-<colgroup align="left" width="50%"></colgroup>
-<tr>
-<th align="left">Old call</th>
-<th align="left">New call</th>
-</tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atob(x)</td> <td>ParseBool(x)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atof32(x)</td> <td>ParseFloat(x, 32)Â§</td></tr>
-<tr><td>Atof64(x)</td> <td>ParseFloat(x, 64)</td></tr>
-<tr><td>AtofN(x, n)</td> <td>ParseFloat(x, n)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atoi(x)</td> <td>Atoi(x)</td></tr>
-<tr><td>Atoi(x)</td> <td>ParseInt(x, 10, 0)Â§</td></tr>
-<tr><td>Atoi64(x)</td> <td>ParseInt(x, 10, 64)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Atoui(x)</td> <td>ParseUint(x, 10, 0)Â§</td></tr>
-<tr><td>Atoui64(x)</td> <td>ParseUint(x, 10, 64)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Btoi64(x, b)</td> <td>ParseInt(x, b, 64)</td></tr>
-<tr><td>Btoui64(x, b)</td> <td>ParseUint(x, b, 64)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Btoa(x)</td> <td>FormatBool(x)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Ftoa32(x, f, p)</td> <td>FormatFloat(float64(x), f, p, 32)</td></tr>
-<tr><td>Ftoa64(x, f, p)</td> <td>FormatFloat(x, f, p, 64)</td></tr>
-<tr><td>FtoaN(x, f, p, n)</td> <td>FormatFloat(x, f, p, n)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Itoa(x)</td> <td>Itoa(x)</td></tr>
-<tr><td>Itoa(x)</td> <td>FormatInt(int64(x), 10)</td></tr>
-<tr><td>Itoa64(x)</td> <td>FormatInt(x, 10)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Itob(x, b)</td> <td>FormatInt(int64(x), b)</td></tr>
-<tr><td>Itob64(x, b)</td> <td>FormatInt(x, b)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Uitoa(x)</td> <td>FormatUint(uint64(x), 10)</td></tr>
-<tr><td>Uitoa64(x)</td> <td>FormatUint(x, 10)</td></tr>
-<tr>
-<td colspan="2"><hr></td>
-</tr>
-<tr><td>Uitob(x, b)</td> <td>FormatUint(uint64(x), b)</td></tr>
-<tr><td>Uitob64(x, b)</td> <td>FormatUint(x, b)</td></tr>
-</table>
-		
-<p>
-<em>Updating</em>:
-Running <code>go</code> <code>fix</code> will update almost all code affected by the change.
-<br>
-Â§ <code>Atoi</code> persists but <code>Atoui</code> and <code>Atof32</code> do not, so
-they may require
-a cast that must be added by hand; the <code>go</code> <code>fix</code> tool will warn about it.
-</p>
-
-
-<h3 id="templates">The template packages</h3>
-
-<p>
-The <code>template</code> and <code>exp/template/html</code> packages have moved to 
-<a href="/pkg/text/template/"><code>text/template</code></a> and
-<a href="/pkg/html/template/"><code>html/template</code></a>.
-More significant, the interface to these packages has been simplified.
-The template language is the same, but the concept of "template set" is gone
-and the functions and methods of the packages have changed accordingly,
-often by elimination.
-</p>
-
-<p>
-Instead of sets, a <code>Template</code> object
-may contain multiple named template definitions,
-in effect constructing
-name spaces for template invocation.
-A template can invoke any other template associated with it, but only those
-templates associated with it.
-The simplest way to associate templates is to parse them together, something
-made easier with the new structure of the packages.
-</p>
-
-<p>
-<em>Updating</em>:
-The imports will be updated by fix tool.
-Single-template uses will be otherwise be largely unaffected.
-Code that uses multiple templates in concert will need to be updated by hand.
-The <a href="/pkg/text/template/#examples">examples</a> in
-the documentation for <code>text/template</code> can provide guidance.
-</p>
-
-<h3 id="testing">The testing package</h3>
-
-<p>
-The testing package has a type, <code>B</code>, passed as an argument to benchmark functions.
-In Go 1, <code>B</code> has new methods, analogous to those of <code>T</code>, enabling
-logging and failure reporting.
-</p>
-
-<pre><!--{{code "/doc/progs/go1.go" `/func.*Benchmark/` `/^}/`}}
--->func BenchmarkSprintf(b *testing.B) {
-    <span class="comment">// Verify correctness before running benchmark.</span>
-    b.StopTimer()
-    got := fmt.Sprintf(&#34;%x&#34;, 23)
-    const expect = &#34;17&#34;
-    if expect != got {
-        b.Fatalf(&#34;expected %q; got %q&#34;, expect, got)
-    }
-    b.StartTimer()
-    for i := 0; i &lt; b.N; i++ {
-        fmt.Sprintf(&#34;%x&#34;, 23)
-    }
-}</pre>
-
-<p>
-<em>Updating</em>:
-Existing code is unaffected, although benchmarks that use <code>println</code>
-or <code>panic</code> should be updated to use the new methods.
-</p>
-
-<h3 id="testing_script">The testing/script package</h3>
-
-<p>
-The testing/script package has been deleted. It was a dreg.
-</p>
-
-<p>
-<em>Updating</em>:
-No code is likely to be affected.
-</p>
-
-<h3 id="unsafe">The unsafe package</h3>
-
-<p>
-In Go 1, the functions
-<code>unsafe.Typeof</code>, <code>unsafe.Reflect</code>,
-<code>unsafe.Unreflect</code>, <code>unsafe.New</code>, and
-<code>unsafe.NewArray</code> have been removed;
-they duplicated safer functionality provided by
-package <a href="/pkg/reflect/"><code>reflect</code></a>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code using these functions must be rewritten to use
-package <a href="/pkg/reflect/"><code>reflect</code></a>.
-The changes to <a href="http://code.google.com/p/go/source/detail?r=2646dc956207">encoding/gob</a> and the <a href="http://code.google.com/p/goprotobuf/source/detail?r=5340ad310031">protocol buffer library</a>
-may be helpful as examples.
-</p>
-
-<h3 id="url">The url package</h3>
-
-<p>
-In Go 1 several fields from the <a href="/pkg/net/url/#URL"><code>url.URL</code></a> type
-were removed or replaced.
-</p>
-
-<p>
-The <a href="/pkg/net/url/#URL.String"><code>String</code></a> method now
-predictably rebuilds an encoded URL string using all of <code>URL</code>'s
-fields as necessary. The resulting string will also no longer have
-passwords escaped.
-</p>
-
-<p>
-The <code>Raw</code> field has been removed. In most cases the <code>String</code>
-method may be used in its place.
-</p>
-
-<p>
-The old <code>RawUserinfo</code> field is replaced by the <code>User</code>
-field, of type <a href="/pkg/net/url/#Userinfo"><code>*net.Userinfo</code></a>.
-Values of this type may be created using the new <a href="/pkg/net/url/#User"><code>net.User</code></a>
-and <a href="/pkg/net/url/#UserPassword"><code>net.UserPassword</code></a>
-functions. The <code>EscapeUserinfo</code> and <code>UnescapeUserinfo</code>
-functions are also gone.
-</p>
-
-<p>
-The <code>RawAuthority</code> field has been removed. The same information is
-available in the <code>Host</code> and <code>User</code> fields.
-</p>
-
-<p>
-The <code>RawPath</code> field and the <code>EncodedPath</code> method have
-been removed. The path information in rooted URLs (with a slash following the
-schema) is now available only in decoded form in the <code>Path</code> field.
-Occasionally, the encoded data may be required to obtain information that
-was lost in the decoding process. These cases must be handled by accessing
-the data the URL was built from.
-</p>
-
-<p>
-URLs with non-rooted paths, such as <code>"mailto:dev@golang.org?subject=Hi"</code>,
-are also handled differently. The <code>OpaquePath</code> boolean field has been
-removed and a new <code>Opaque</code> string field introduced to hold the encoded
-path for such URLs. In Go 1, the cited URL parses as:
-</p>
-
-<pre>
-    URL{
-        Scheme: "mailto",
-        Opaque: "dev@golang.org",
-        RawQuery: "subject=Hi",
-    }
-</pre>
-
-<p>
-A new <a href="/pkg/net/url/#URL.RequestURI"><code>RequestURI</code></a> method was
-added to <code>URL</code>.
-</p>
-
-<p>
-The <code>ParseWithReference</code> function has been renamed to <code>ParseWithFragment</code>.
-</p>
-
-<p>
-<em>Updating</em>:
-Code that uses the old fields will fail to compile and must be updated by hand.
-The semantic changes make it difficult for the fix tool to update automatically.
-</p>
-
-<h2 id="cmd_go">The go command</h2>
-
-<p>
-Go 1 introduces the <a href="/cmd/go/">go command</a>, a tool for fetching,
-building, and installing Go packages and commands. The <code>go</code> command
-does away with makefiles, instead using Go source code to find dependencies and
-determine build conditions. Most existing Go programs will no longer require
-makefiles to be built.
-</p>
-
-<p>
-See <a href="/doc/code.html">How to Write Go Code</a> for a primer on the
-<code>go</code> command and the <a href="/cmd/go/">go command documentation</a>
-for the full details.
-</p>
-
-<p>
-<em>Updating</em>:
-Projects that depend on the Go project's old makefile-based build
-infrastructure (<code>Make.pkg</code>, <code>Make.cmd</code>, and so on) should
-switch to using the <code>go</code> command for building Go code and, if
-necessary, rewrite their makefiles to perform any auxiliary build tasks.
-</p>
-
-<h2 id="cmd_cgo">The cgo command</h2>
-
-<p>
-In Go 1, the <a href="/cmd/cgo">cgo command</a>
-uses a different <code>_cgo_export.h</code>
-file, which is generated for packages containing <code>//export</code> lines.
-The <code>_cgo_export.h</code> file now begins with the C preamble comment,
-so that exported function definitions can use types defined there.
-This has the effect of compiling the preamble multiple times, so a
-package using <code>//export</code> must not put function definitions
-or variable initializations in the C preamble.
-</p>
-
-<h2 id="releases">Packaged releases</h2>
-
-<p>
-One of the most significant changes associated with Go 1 is the availability
-of prepackaged, downloadable distributions.
-They are available for many combinations of architecture and operating system
-(including Windows) and the list will grow.
-Installation details are described on the
-<a href="/doc/install">Getting Started</a> page, while
-the distributions themselves are listed on the
-<a href="http://code.google.com/p/go/downloads/list">downloads page</a>.
-
-
-</div>
-
-<div id="footer">
-Build version go1.0.1.<br>
-Except as <a href="http://code.google.com/policies.html#restrictions">noted</a>,
-the content of this page is licensed under the
-Creative Commons Attribution 3.0 License,
-and code is licensed under a <a href="/LICENSE">BSD license</a>.<br>
-<a href="/doc/tos.html">Terms of Service</a> | 
-<a href="http://www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a>
-</div>
-
-<script type="text/javascript">
-(function() {
-  var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;
-  ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";
-  var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s);
-})();
-</script>
-</body>
-<script type="text/javascript">
-  (function() {
-    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
-    po.src = 'https://apis.google.com/js/plusone.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
-  })();
-</script>
-</html>
-
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption01.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,194 +0,0 @@
-#data
-<a><p></a></p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <p>
-|       <a>
-
-#data
-<a>1<p>2</a>3</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <p>
-|       <a>
-|         "2"
-|       "3"
-
-#data
-<a>1<button>2</a>3</button>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <button>
-|       <a>
-|         "2"
-|       "3"
-
-#data
-<a>1<b>2</a>3</b>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|       <b>
-|         "2"
-|     <b>
-|       "3"
-
-#data
-<a>1<div>2<div>3</a>4</div>5</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <div>
-|       <a>
-|         "2"
-|       <div>
-|         <a>
-|           "3"
-|         "4"
-|       "5"
-
-#data
-<table><a>1<p>2</a>3</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <p>
-|       <a>
-|         "2"
-|       "3"
-|     <table>
-
-#data
-<b><b><a><p></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <b>
-|         <a>
-|         <p>
-|           <a>
-
-#data
-<b><a><b><p></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <a>
-|         <b>
-|       <b>
-|         <p>
-|           <a>
-
-#data
-<a><b><b><p></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|         <b>
-|     <b>
-|       <b>
-|         <p>
-|           <a>
-
-#data
-<p>1<s id="A">2<b id="B">3</p>4</s>5</b>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "1"
-|       <s>
-|         id="A"
-|         "2"
-|         <b>
-|           id="B"
-|           "3"
-|     <s>
-|       id="A"
-|       <b>
-|         id="B"
-|         "4"
-|     <b>
-|       id="B"
-|       "5"
-
-#data
-<table><a>1<td>2</td>3</table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "1"
-|     <a>
-|       "3"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "2"
-
-#data
-<table>A<td>B</td>C</table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "AC"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "B"
-
-#data
-<a><svg><tr><input></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <svg svg>
-|         <svg tr>
-|           <svg input>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption02.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption02.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/adoption02.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/adoption02.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,31 +0,0 @@
-#data
-<b>1<i>2<p>3</b>4
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "1"
-|       <i>
-|         "2"
-|     <i>
-|       <p>
-|         <b>
-|           "3"
-|         "4"
-
-#data
-<a><div><style></style><address><a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <div>
-|       <a>
-|         <style>
-|       <address>
-|         <a>
-|         <a>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/comments01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/comments01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/comments01.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/comments01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,135 +0,0 @@
-#data
-FOO<!-- BAR -->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR --!>BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR --   >BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR --   >BAZ -->
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX -->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR -- <QUX> -- MUX  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX --!>BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR -- <QUX> -- MUX  -->
-|     "BAZ"
-
-#data
-FOO<!-- BAR -- <QUX> -- MUX -- >BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  BAR -- <QUX> -- MUX -- >BAZ -->
-
-#data
-FOO<!---->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  -->
-|     "BAZ"
-
-#data
-FOO<!--->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  -->
-|     "BAZ"
-
-#data
-FOO<!-->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!--  -->
-|     "BAZ"
-
-#data
-<?xml version="1.0">Hi
-#errors
-#document
-| <!-- ?xml version="1.0" -->
-| <html>
-|   <head>
-|   <body>
-|     "Hi"
-
-#data
-<?xml version="1.0">
-#errors
-#document
-| <!-- ?xml version="1.0" -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?xml version
-#errors
-#document
-| <!-- ?xml version -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-FOO<!----->BAZ
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <!-- - -->
-|     "BAZ"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/doctype01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/doctype01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/doctype01.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/doctype01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,370 +0,0 @@
-#data
-<!DOCTYPE html>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!dOctYpE HtMl>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPEhtml>Hello
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE>Hello
-#errors
-#document
-| <!DOCTYPE >
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE >Hello
-#errors
-#document
-| <!DOCTYPE >
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato taco>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato taco "ddd>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato sYstEM>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato sYstEM    >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE   potato       sYstEM  ggg>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM taco  >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM 'taco"'>Hello
-#errors
-#document
-| <!DOCTYPE potato "" "taco"">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM "taco">Hello
-#errors
-#document
-| <!DOCTYPE potato "" "taco">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEM "tai'co">Hello
-#errors
-#document
-| <!DOCTYPE potato "" "tai'co">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato SYSTEMtaco "ddd">Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato grass SYSTEM taco>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato pUbLIc>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato pUbLIc >Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato pUbLIcgoof>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC goof>Hello
-#errors
-#document
-| <!DOCTYPE potato>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC "go'of">Hello
-#errors
-#document
-| <!DOCTYPE potato "go'of" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC 'go'of'>Hello
-#errors
-#document
-| <!DOCTYPE potato "go" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC 'go:hh   of' >Hello
-#errors
-#document
-| <!DOCTYPE potato "go:hh   of" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello
-#errors
-#document
-| <!DOCTYPE potato "W3C-//dfdf" "">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-   "http://www.w3.org/TR/html4/strict.dtd">Hello
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE ...>Hello
-#errors
-#document
-| <!DOCTYPE ...>
-| <html>
-|   <head>
-|   <body>
-|     "Hello"
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ 
-<!-- internal declarations -->
-]>
-#errors
-#document
-| <!DOCTYPE root-element>
-| <html>
-|   <head>
-|   <body>
-|     "]>"
-
-#data
-<!DOCTYPE html PUBLIC
-  "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
-    "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body>
-#errors
-#document
-| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd">
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "Mine!"
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>
-#errors
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-| <html>
-|   <head>
-|   <body>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities01.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,603 +0,0 @@
-#data
-FOO&gt;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO>BAR"
-
-#data
-FOO&gtBAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO>BAR"
-
-#data
-FOO&gt BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO> BAR"
-
-#data
-FOO&gt;;;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO>;;BAR"
-
-#data
-I'm &notit; I tell you
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "I'm Â¬it; I tell you"
-
-#data
-I'm &notin; I tell you
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "I'm âˆ‰ I tell you"
-
-#data
-FOO& BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO& BAR"
-
-#data
-FOO&<BAR>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&"
-|     <bar>
-
-#data
-FOO&&&&gt;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&&&>BAR"
-
-#data
-FOO&#41;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO)BAR"
-
-#data
-FOO&#x41;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOABAR"
-
-#data
-FOO&#X41;BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOABAR"
-
-#data
-FOO&#BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#BAR"
-
-#data
-FOO&#ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#ZOO"
-
-#data
-FOO&#xBAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂºR"
-
-#data
-FOO&#xZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#xZOO"
-
-#data
-FOO&#XZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO&#XZOO"
-
-#data
-FOO&#41BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO)BAR"
-
-#data
-FOO&#x41BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOä†ºR"
-
-#data
-FOO&#x41ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOAZOO"
-
-#data
-FOO&#x0000;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#x0078;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOxZOO"
-
-#data
-FOO&#x0079;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOyZOO"
-
-#data
-FOO&#x0080;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ‚¬ZOO"
-
-#data
-FOO&#x0081;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x0082;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€šZOO"
-
-#data
-FOO&#x0083;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÆ’ZOO"
-
-#data
-FOO&#x0084;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€žZOO"
-
-#data
-FOO&#x0085;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¦ZOO"
-
-#data
-FOO&#x0086;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€ ZOO"
-
-#data
-FOO&#x0087;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¡ZOO"
-
-#data
-FOO&#x0088;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOË†ZOO"
-
-#data
-FOO&#x0089;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€°ZOO"
-
-#data
-FOO&#x008A;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ ZOO"
-
-#data
-FOO&#x008B;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¹ZOO"
-
-#data
-FOO&#x008C;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ’ZOO"
-
-#data
-FOO&#x008D;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x008E;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ½ZOO"
-
-#data
-FOO&#x008F;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x0090;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x0091;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€˜ZOO"
-
-#data
-FOO&#x0092;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€™ZOO"
-
-#data
-FOO&#x0093;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€œZOO"
-
-#data
-FOO&#x0094;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€ZOO"
-
-#data
-FOO&#x0095;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€¢ZOO"
-
-#data
-FOO&#x0096;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€“ZOO"
-
-#data
-FOO&#x0097;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€”ZOO"
-
-#data
-FOO&#x0098;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOËœZOO"
-
-#data
-FOO&#x0099;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ„¢ZOO"
-
-#data
-FOO&#x009A;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ¡ZOO"
-
-#data
-FOO&#x009B;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOâ€ºZOO"
-
-#data
-FOO&#x009C;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ“ZOO"
-
-#data
-FOO&#x009D;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂZOO"
-
-#data
-FOO&#x009E;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ¾ZOO"
-
-#data
-FOO&#x009F;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÅ¸ZOO"
-
-#data
-FOO&#x00A0;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOÂ ZOO"
-
-#data
-FOO&#xD7FF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOíŸ¿ZOO"
-
-#data
-FOO&#xD800;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xD801;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xDFFE;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xDFFF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xE000;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOî€€ZOO"
-
-#data
-FOO&#x10FFFE;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOô¿¾ZOO"
-
-#data
-FOO&#x1087D4;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOôˆŸ”ZOO"
-
-#data
-FOO&#x10FFFF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOô¿¿ZOO"
-
-#data
-FOO&#x110000;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
-
-#data
-FOO&#xFFFFFF;ZOO
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOOï¿½ZOO"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities02.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities02.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/entities02.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/entities02.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,249 +0,0 @@
-#data
-<div bar="ZZ&gt;YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>YY"
-
-#data
-<div bar="ZZ&"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&"
-
-#data
-<div bar='ZZ&'></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&"
-
-#data
-<div bar=ZZ&></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&"
-
-#data
-<div bar="ZZ&gt=YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gt=YY"
-
-#data
-<div bar="ZZ&gt0YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gt0YY"
-
-#data
-<div bar="ZZ&gt9YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gt9YY"
-
-#data
-<div bar="ZZ&gtaYY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gtaYY"
-
-#data
-<div bar="ZZ&gtZYY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&gtZYY"
-
-#data
-<div bar="ZZ&gt YY"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ> YY"
-
-#data
-<div bar="ZZ&gt"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>"
-
-#data
-<div bar='ZZ&gt'></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>"
-
-#data
-<div bar=ZZ&gt></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ>"
-
-#data
-<div bar="ZZ&pound_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZÂ£_id=23"
-
-#data
-<div bar="ZZ&prod_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&prod_id=23"
-
-#data
-<div bar="ZZ&pound;_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZÂ£_id=23"
-
-#data
-<div bar="ZZ&prod;_id=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZâˆ_id=23"
-
-#data
-<div bar="ZZ&pound=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&pound=23"
-
-#data
-<div bar="ZZ&prod=23"></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       bar="ZZ&prod=23"
-
-#data
-<div>ZZ&pound_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZÂ£_id=23"
-
-#data
-<div>ZZ&prod_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZ&prod_id=23"
-
-#data
-<div>ZZ&pound;_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZÂ£_id=23"
-
-#data
-<div>ZZ&prod;_id=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZâˆ_id=23"
-
-#data
-<div>ZZ&pound=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZÂ£=23"
-
-#data
-<div>ZZ&prod=23</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "ZZ&prod=23"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/html5test-com.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/html5test-com.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/html5test-com.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/html5test-com.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,246 +0,0 @@
-#data
-<div<div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div<div>
-
-#data
-<div foo<bar=''>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo<bar=""
-
-#data
-<div foo=`bar`>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo="`bar`"
-
-#data
-<div \"foo=''>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       \"foo=""
-
-#data
-<a href='\nbar'></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="\nbar"
-
-#data
-<!DOCTYPE html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-&lang;&rang;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "âŸ¨âŸ©"
-
-#data
-&apos;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "'"
-
-#data
-&ImaginaryI;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "â…ˆ"
-
-#data
-&Kopf;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "ð•‚"
-
-#data
-&notinva;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "âˆ‰"
-
-#data
-<?import namespace="foo" implementation="#bar">
-#errors
-#document
-| <!-- ?import namespace="foo" implementation="#bar" -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!--foo--bar-->
-#errors
-#document
-| <!-- foo--bar -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<![CDATA[x]]>
-#errors
-#document
-| <!-- [CDATA[x]] -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<textarea><!--</textarea>--></textarea>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--"
-|     "-->"
-
-#data
-<textarea><!--</textarea>-->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--"
-|     "-->"
-
-#data
-<style><!--</style>--></style>
-#errors
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "-->"
-
-#data
-<style><!--</style>-->
-#errors
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "-->"
-
-#data
-<ul><li>A </li> <li>B</li></ul>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         "A "
-|       " "
-|       <li>
-|         "B"
-
-#data
-<table><form><input type=hidden><input></form><div></div></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|     <div>
-|     <table>
-|       <form>
-|       <input>
-|         type="hidden"
-
-#data
-<i>A<b>B<p></i>C</b>D
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "A"
-|       <b>
-|         "B"
-|     <b>
-|     <p>
-|       <b>
-|         <i>
-|         "C"
-|       "D"
-
-#data
-<div></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<svg></svg>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<math></math>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/inbody01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/inbody01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/inbody01.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/inbody01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,43 +0,0 @@
-#data
-<button>1</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <button>
-|       "1"
-
-#data
-<foo>1<p>2</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       "1"
-|       <p>
-|         "2"
-
-#data
-<dd>1</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <dd>
-|       "1"
-
-#data
-<foo>1<dd>2</foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       "1"
-|       <dd>
-|         "2"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/isindex.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/isindex.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/isindex.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/isindex.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,40 +0,0 @@
-#data
-<isindex>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<isindex name="A" action="B" prompt="C" foo="D">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       action="B"
-|       <hr>
-|       <label>
-|         "C"
-|         <input>
-|           foo="D"
-|           name="isindex"
-|       <hr>
-
-#data
-<form><isindex>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/pending-spec-changes.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,52 +0,0 @@
-#data
-<input type="hidden"><frameset>
-#errors
-21: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-31: â€œframesetâ€ start tag seen.
-31: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><table><caption><svg>foo</table>bar
-#errors
-47: End tag â€œtableâ€ did not match the name of the current open element (â€œsvgâ€).
-47: â€œtableâ€ closed but â€œcaptionâ€ was still open.
-47: End tag â€œtableâ€ seen, but there were open elements.
-36: Unclosed element â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           "foo"
-|     "bar"
-
-#data
-<table><tr><td><svg><desc><td></desc><circle>
-#errors
-7: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-30: A table cell was implicitly closed, but there were open elements.
-26: Unclosed element â€œdescâ€.
-20: Unclosed element â€œsvgâ€.
-37: Stray end tag â€œdescâ€.
-45: End of file seen and there were open elements.
-45: Unclosed element â€œcircleâ€.
-7: Unclosed element â€œtableâ€.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg desc>
-|           <td>
-|             <circle>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/README gcc-4.8.1/libgo/go/exp/html/testdata/webkit/README
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/README	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/README	1969-12-31 18:00:00.000000000 -0600
@@ -1,28 +0,0 @@
-The *.dat files in this directory are copied from The WebKit Open Source
-Project, specifically $WEBKITROOT/LayoutTests/html5lib/resources.
-WebKit is licensed under a BSD style license.
-http://webkit.org/coding/bsd-license.html says:
-
-Copyright (C) 2009 Apple Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation
-and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scriptdata01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scriptdata01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scriptdata01.dat	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scriptdata01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,308 +0,0 @@
-#data
-FOO<script>'Hello'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'Hello'"
-|     "BAR"
-
-#data
-FOO<script></script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script></script >BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script></script/>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script></script/ >BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script type="text/plain"></scriptx>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "</scriptx>BAR"
-
-#data
-FOO<script></script foo=">" dd>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|     "BAR"
-
-#data
-FOO<script>'<'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<'"
-|     "BAR"
-
-#data
-FOO<script>'<!'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!'"
-|     "BAR"
-
-#data
-FOO<script>'<!-'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-'"
-|     "BAR"
-
-#data
-FOO<script>'<!--'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!--'"
-|     "BAR"
-
-#data
-FOO<script>'<!---'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!---'"
-|     "BAR"
-
-#data
-FOO<script>'<!-->'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-->'"
-|     "BAR"
-
-#data
-FOO<script>'<!-->'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-->'"
-|     "BAR"
-
-#data
-FOO<script>'<!-- potato'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-- potato'"
-|     "BAR"
-
-#data
-FOO<script>'<!-- <sCrIpt'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-- <sCrIpt'"
-|     "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt>'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> -'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> --'</script>BAR"
-
-#data
-FOO<script>'<!-- <sCrIpt> -->'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       "'<!-- <sCrIpt> -->'"
-|     "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> --!>'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt> -- >'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt '</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt/'</script>BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt\'"
-|     "BAR"
-
-#data
-FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "FOO"
-|     <script>
-|       type="text/plain"
-|       "'<!-- <sCrIpt/'</script>BAR"
-|     "QUX"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/adoption01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,15 +0,0 @@
-#data
-<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         id="B"
-|         <script>
-|           "document.getElementById("A").id = "B""
-|     <b>
-|       id="A"
-|       "TEXT"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/scripted/webkit01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,28 +0,0 @@
-#data
-1<script>document.write("2")</script>3
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "1"
-|     <script>
-|       "document.write("2")"
-|     "23"
-
-#data
-1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "1"
-|     <script>
-|       "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")"
-|     <script>
-|       "document.write('2')"
-|     "2"
-|     <script>
-|       "document.write('3')"
-|     "34"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tables01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tables01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tables01.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tables01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,212 +0,0 @@
-#data
-<table><th>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <th>
-
-#data
-<table><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><col foo='bar'>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|         <col>
-|           foo="bar"
-
-#data
-<table><colgroup></html>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "foo"
-|     <table>
-|       <colgroup>
-
-#data
-<table></table><p>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|     <p>
-|       "foo"
-
-#data
-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><select><option>3</select></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|         "3"
-|     <table>
-
-#data
-<table><select><table></table></select></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-|     <table>
-
-#data
-<table><select></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-
-#data
-<table><select><option>A<tr><td>B</td></tr></table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|         "A"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "B"
-
-#data
-<table><td></body></caption></col></colgroup></html>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "foo"
-
-#data
-<table><td>A</table>B
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "A"
-|     "B"
-
-#data
-<table><tr><caption>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|       <caption>
-
-#data
-<table><tr></body></caption></col></colgroup></html></td></th><td>foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "foo"
-
-#data
-<table><td><tr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|         <tr>
-
-#data
-<table><td><button><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <button>
-|           <td>
-
-#data
-<table><tr><td><svg><desc><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg desc>
-|           <td>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests10.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests10.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests10.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests10.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,799 +0,0 @@
-#data
-<!DOCTYPE html><svg></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<!DOCTYPE html><svg></svg><![CDATA[a]]>
-#errors
-29: Bogus comment
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <!-- [CDATA[a]] -->
-
-#data
-<!DOCTYPE html><body><svg></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<!DOCTYPE html><body><select><svg></svg></select>
-#errors
-35: Stray â€œsvgâ€ start tag.
-42: Stray end tag â€œsvgâ€
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!DOCTYPE html><body><select><option><svg></svg></option></select>
-#errors
-43: Stray â€œsvgâ€ start tag.
-50: Stray end tag â€œsvgâ€
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!DOCTYPE html><body><table><svg></svg></table>
-#errors
-34: Start tag â€œsvgâ€ seen in â€œtableâ€.
-41: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>
-#errors
-34: Start tag â€œsvgâ€ seen in â€œtableâ€.
-46: Stray end tag â€œgâ€.
-53: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>
-#errors
-34: Start tag â€œsvgâ€ seen in â€œtableâ€.
-46: Stray end tag â€œgâ€.
-58: Stray end tag â€œgâ€.
-65: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>
-#errors
-41: Start tag â€œsvgâ€ seen in â€œtableâ€.
-53: Stray end tag â€œgâ€.
-65: Stray end tag â€œgâ€.
-72: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <table>
-|       <tbody>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>
-#errors
-45: Start tag â€œsvgâ€ seen in â€œtableâ€.
-57: Stray end tag â€œgâ€.
-69: Stray end tag â€œgâ€.
-76: Stray end tag â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg g>
-|                 "foo"
-|               <svg g>
-|                 "bar"
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg g>
-|                 "foo"
-|               <svg g>
-|                 "bar"
-|             <p>
-|               "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           <svg g>
-|             "foo"
-|           <svg g>
-|             "bar"
-|         <p>
-|           "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-70: HTML start tag â€œpâ€ in a foreign namespace context.
-81: â€œtableâ€ closed but â€œcaptionâ€ was still open.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           <svg g>
-|             "foo"
-|           <svg g>
-|             "bar"
-|         <p>
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux
-#errors
-78: â€œtableâ€ closed but â€œcaptionâ€ was still open.
-78: Unclosed elements on stack.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <svg svg>
-|           <svg g>
-|             "foo"
-|           <svg g>
-|             "bar"
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-44: Start tag â€œsvgâ€ seen in â€œtableâ€.
-56: Stray end tag â€œgâ€.
-68: Stray end tag â€œgâ€.
-71: HTML start tag â€œpâ€ in a foreign namespace context.
-71: Start tag â€œpâ€ seen in â€œtableâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <p>
-|       "baz"
-|     <table>
-|       <colgroup>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-50: Stray â€œsvgâ€ start tag.
-54: Stray â€œgâ€ start tag.
-62: Stray end tag â€œgâ€
-66: Stray â€œgâ€ start tag.
-74: Stray end tag â€œgâ€
-77: Stray â€œpâ€ start tag.
-88: â€œtableâ€ end tag with â€œselectâ€ open.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <select>
-|               "foobarbaz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
-#errors
-36: Start tag â€œselectâ€ seen in â€œtableâ€.
-42: Stray â€œsvgâ€ start tag.
-46: Stray â€œgâ€ start tag.
-54: Stray end tag â€œgâ€
-58: Stray â€œgâ€ start tag.
-66: Stray end tag â€œgâ€
-69: Stray â€œpâ€ start tag.
-80: â€œtableâ€ end tag with â€œselectâ€ open.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "foobarbaz"
-|     <table>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz
-#errors
-41: Stray â€œsvgâ€ start tag.
-68: HTML start tag â€œpâ€ in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz
-#errors
-34: Stray â€œsvgâ€ start tag.
-61: HTML start tag â€œpâ€ in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg g>
-|         "foo"
-|       <svg g>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>
-#errors
-31: Stray â€œsvgâ€ start tag.
-35: Stray â€œgâ€ start tag.
-40: Stray end tag â€œgâ€
-44: Stray â€œgâ€ start tag.
-49: Stray end tag â€œgâ€
-52: Stray â€œpâ€ start tag.
-58: Stray â€œspanâ€ start tag.
-58: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>
-#errors
-42: Stray â€œsvgâ€ start tag.
-46: Stray â€œgâ€ start tag.
-51: Stray end tag â€œgâ€
-55: Stray â€œgâ€ start tag.
-60: Stray end tag â€œgâ€
-63: Stray â€œpâ€ start tag.
-69: Stray â€œspanâ€ start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     <svg svg>
-|       xlink href="foo"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <svg svg>
-|       <svg g>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <svg svg>
-|       <svg g>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <svg svg>
-|       <svg g>
-|         xlink href="foo"
-|         xml lang="en"
-|       "bar"
-
-#data
-<svg></path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<div><svg></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|     "a"
-
-#data
-<div><svg><path></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|     "a"
-
-#data
-<div><svg><path></svg><path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|       <path>
-
-#data
-<div><svg><path><foreignObject><math></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|           <svg foreignObject>
-|             <math math>
-|               "a"
-
-#data
-<div><svg><path><foreignObject><p></div>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|           <svg foreignObject>
-|             <p>
-|               "a"
-
-#data
-<!DOCTYPE html><svg><desc><div><svg><ul>a
-#errors
-40: HTML start tag â€œulâ€ in a foreign namespace context.
-41: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg desc>
-|         <div>
-|           <svg svg>
-|           <ul>
-|             "a"
-
-#data
-<!DOCTYPE html><svg><desc><svg><ul>a
-#errors
-35: HTML start tag â€œulâ€ in a foreign namespace context.
-36: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg desc>
-|         <svg svg>
-|         <ul>
-|           "a"
-
-#data
-<!DOCTYPE html><p><svg><desc><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <svg svg>
-|         <svg desc>
-|           <p>
-
-#data
-<!DOCTYPE html><p><svg><title><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <svg svg>
-|         <svg title>
-|           <p>
-
-#data
-<div><svg><path><foreignObject><p></foreignObject><p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <svg svg>
-|         <svg path>
-|           <svg foreignObject>
-|             <p>
-|             <p>
-
-#data
-<math><mi><div><object><div><span></span></div></object></div></mi><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <div>
-|           <object>
-|             <div>
-|               <span>
-|       <math mi>
-
-#data
-<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <svg svg>
-|           <svg foreignObject>
-|             <div>
-|               <div>
-|       <math mi>
-
-#data
-<svg><script></script><path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg script>
-|       <svg path>
-
-#data
-<table><svg></svg><tr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<math><mi><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <math mglyph>
-
-#data
-<math><mi><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         <math malignmark>
-
-#data
-<math><mo><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mo>
-|         <math mglyph>
-
-#data
-<math><mo><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mo>
-|         <math malignmark>
-
-#data
-<math><mn><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mn>
-|         <math mglyph>
-
-#data
-<math><mn><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mn>
-|         <math malignmark>
-
-#data
-<math><ms><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math ms>
-|         <math mglyph>
-
-#data
-<math><ms><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math ms>
-|         <math malignmark>
-
-#data
-<math><mtext><mglyph>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mtext>
-|         <math mglyph>
-
-#data
-<math><mtext><malignmark>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mtext>
-|         <math malignmark>
-
-#data
-<math><annotation-xml><svg></svg></annotation-xml><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|       <math mi>
-
-#data
-<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|           <svg foreignObject>
-|             <div>
-|               <math math>
-|                 <math mi>
-|               <span>
-|           <svg path>
-|       <math mi>
-
-#data
-<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|           <svg foreignObject>
-|             <math math>
-|               <math mi>
-|                 <svg svg>
-|               <math mo>
-|             <span>
-|           <svg path>
-|       <math mi>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests11.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests11.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests11.dat	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests11.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,482 +0,0 @@
-#data
-<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       attributeName=""
-|       attributeType=""
-|       baseFrequency=""
-|       baseProfile=""
-|       calcMode=""
-|       clipPathUnits=""
-|       contentScriptType=""
-|       contentStyleType=""
-|       diffuseConstant=""
-|       edgeMode=""
-|       externalResourcesRequired=""
-|       filterRes=""
-|       filterUnits=""
-|       glyphRef=""
-|       gradientTransform=""
-|       gradientUnits=""
-|       kernelMatrix=""
-|       kernelUnitLength=""
-|       keyPoints=""
-|       keySplines=""
-|       keyTimes=""
-|       lengthAdjust=""
-|       limitingConeAngle=""
-|       markerHeight=""
-|       markerUnits=""
-|       markerWidth=""
-|       maskContentUnits=""
-|       maskUnits=""
-|       numOctaves=""
-|       pathLength=""
-|       patternContentUnits=""
-|       patternTransform=""
-|       patternUnits=""
-|       pointsAtX=""
-|       pointsAtY=""
-|       pointsAtZ=""
-|       preserveAlpha=""
-|       preserveAspectRatio=""
-|       primitiveUnits=""
-|       refX=""
-|       refY=""
-|       repeatCount=""
-|       repeatDur=""
-|       requiredExtensions=""
-|       requiredFeatures=""
-|       specularConstant=""
-|       specularExponent=""
-|       spreadMethod=""
-|       startOffset=""
-|       stdDeviation=""
-|       stitchTiles=""
-|       surfaceScale=""
-|       systemLanguage=""
-|       tableValues=""
-|       targetX=""
-|       targetY=""
-|       textLength=""
-|       viewBox=""
-|       viewTarget=""
-|       xChannelSelector=""
-|       yChannelSelector=""
-|       zoomAndPan=""
-
-#data
-<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       attributeName=""
-|       attributeType=""
-|       baseFrequency=""
-|       baseProfile=""
-|       calcMode=""
-|       clipPathUnits=""
-|       contentScriptType=""
-|       contentStyleType=""
-|       diffuseConstant=""
-|       edgeMode=""
-|       externalResourcesRequired=""
-|       filterRes=""
-|       filterUnits=""
-|       glyphRef=""
-|       gradientTransform=""
-|       gradientUnits=""
-|       kernelMatrix=""
-|       kernelUnitLength=""
-|       keyPoints=""
-|       keySplines=""
-|       keyTimes=""
-|       lengthAdjust=""
-|       limitingConeAngle=""
-|       markerHeight=""
-|       markerUnits=""
-|       markerWidth=""
-|       maskContentUnits=""
-|       maskUnits=""
-|       numOctaves=""
-|       pathLength=""
-|       patternContentUnits=""
-|       patternTransform=""
-|       patternUnits=""
-|       pointsAtX=""
-|       pointsAtY=""
-|       pointsAtZ=""
-|       preserveAlpha=""
-|       preserveAspectRatio=""
-|       primitiveUnits=""
-|       refX=""
-|       refY=""
-|       repeatCount=""
-|       repeatDur=""
-|       requiredExtensions=""
-|       requiredFeatures=""
-|       specularConstant=""
-|       specularExponent=""
-|       spreadMethod=""
-|       startOffset=""
-|       stdDeviation=""
-|       stitchTiles=""
-|       surfaceScale=""
-|       systemLanguage=""
-|       tableValues=""
-|       targetX=""
-|       targetY=""
-|       textLength=""
-|       viewBox=""
-|       viewTarget=""
-|       xChannelSelector=""
-|       yChannelSelector=""
-|       zoomAndPan=""
-
-#data
-<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       attributeName=""
-|       attributeType=""
-|       baseFrequency=""
-|       baseProfile=""
-|       calcMode=""
-|       clipPathUnits=""
-|       contentScriptType=""
-|       contentStyleType=""
-|       diffuseConstant=""
-|       edgeMode=""
-|       externalResourcesRequired=""
-|       filterRes=""
-|       filterUnits=""
-|       glyphRef=""
-|       gradientTransform=""
-|       gradientUnits=""
-|       kernelMatrix=""
-|       kernelUnitLength=""
-|       keyPoints=""
-|       keySplines=""
-|       keyTimes=""
-|       lengthAdjust=""
-|       limitingConeAngle=""
-|       markerHeight=""
-|       markerUnits=""
-|       markerWidth=""
-|       maskContentUnits=""
-|       maskUnits=""
-|       numOctaves=""
-|       pathLength=""
-|       patternContentUnits=""
-|       patternTransform=""
-|       patternUnits=""
-|       pointsAtX=""
-|       pointsAtY=""
-|       pointsAtZ=""
-|       preserveAlpha=""
-|       preserveAspectRatio=""
-|       primitiveUnits=""
-|       refX=""
-|       refY=""
-|       repeatCount=""
-|       repeatDur=""
-|       requiredExtensions=""
-|       requiredFeatures=""
-|       specularConstant=""
-|       specularExponent=""
-|       spreadMethod=""
-|       startOffset=""
-|       stdDeviation=""
-|       stitchTiles=""
-|       surfaceScale=""
-|       systemLanguage=""
-|       tableValues=""
-|       targetX=""
-|       targetY=""
-|       textLength=""
-|       viewBox=""
-|       viewTarget=""
-|       xChannelSelector=""
-|       yChannelSelector=""
-|       zoomAndPan=""
-
-#data
-<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       attributename=""
-|       attributetype=""
-|       basefrequency=""
-|       baseprofile=""
-|       calcmode=""
-|       clippathunits=""
-|       contentscripttype=""
-|       contentstyletype=""
-|       diffuseconstant=""
-|       edgemode=""
-|       externalresourcesrequired=""
-|       filterres=""
-|       filterunits=""
-|       glyphref=""
-|       gradienttransform=""
-|       gradientunits=""
-|       kernelmatrix=""
-|       kernelunitlength=""
-|       keypoints=""
-|       keysplines=""
-|       keytimes=""
-|       lengthadjust=""
-|       limitingconeangle=""
-|       markerheight=""
-|       markerunits=""
-|       markerwidth=""
-|       maskcontentunits=""
-|       maskunits=""
-|       numoctaves=""
-|       pathlength=""
-|       patterncontentunits=""
-|       patterntransform=""
-|       patternunits=""
-|       pointsatx=""
-|       pointsaty=""
-|       pointsatz=""
-|       preservealpha=""
-|       preserveaspectratio=""
-|       primitiveunits=""
-|       refx=""
-|       refy=""
-|       repeatcount=""
-|       repeatdur=""
-|       requiredextensions=""
-|       requiredfeatures=""
-|       specularconstant=""
-|       specularexponent=""
-|       spreadmethod=""
-|       startoffset=""
-|       stddeviation=""
-|       stitchtiles=""
-|       surfacescale=""
-|       systemlanguage=""
-|       tablevalues=""
-|       targetx=""
-|       targety=""
-|       textlength=""
-|       viewbox=""
-|       viewtarget=""
-|       xchannelselector=""
-|       ychannelselector=""
-|       zoomandpan=""
-
-#data
-<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg altGlyph>
-|       <svg altGlyphDef>
-|       <svg altGlyphItem>
-|       <svg animateColor>
-|       <svg animateMotion>
-|       <svg animateTransform>
-|       <svg clipPath>
-|       <svg feBlend>
-|       <svg feColorMatrix>
-|       <svg feComponentTransfer>
-|       <svg feComposite>
-|       <svg feConvolveMatrix>
-|       <svg feDiffuseLighting>
-|       <svg feDisplacementMap>
-|       <svg feDistantLight>
-|       <svg feFlood>
-|       <svg feFuncA>
-|       <svg feFuncB>
-|       <svg feFuncG>
-|       <svg feFuncR>
-|       <svg feGaussianBlur>
-|       <svg feImage>
-|       <svg feMerge>
-|       <svg feMergeNode>
-|       <svg feMorphology>
-|       <svg feOffset>
-|       <svg fePointLight>
-|       <svg feSpecularLighting>
-|       <svg feSpotLight>
-|       <svg feTile>
-|       <svg feTurbulence>
-|       <svg foreignObject>
-|       <svg glyphRef>
-|       <svg linearGradient>
-|       <svg radialGradient>
-|       <svg textPath>
-
-#data
-<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg altGlyph>
-|       <svg altGlyphDef>
-|       <svg altGlyphItem>
-|       <svg animateColor>
-|       <svg animateMotion>
-|       <svg animateTransform>
-|       <svg clipPath>
-|       <svg feBlend>
-|       <svg feColorMatrix>
-|       <svg feComponentTransfer>
-|       <svg feComposite>
-|       <svg feConvolveMatrix>
-|       <svg feDiffuseLighting>
-|       <svg feDisplacementMap>
-|       <svg feDistantLight>
-|       <svg feFlood>
-|       <svg feFuncA>
-|       <svg feFuncB>
-|       <svg feFuncG>
-|       <svg feFuncR>
-|       <svg feGaussianBlur>
-|       <svg feImage>
-|       <svg feMerge>
-|       <svg feMergeNode>
-|       <svg feMorphology>
-|       <svg feOffset>
-|       <svg fePointLight>
-|       <svg feSpecularLighting>
-|       <svg feSpotLight>
-|       <svg feTile>
-|       <svg feTurbulence>
-|       <svg foreignObject>
-|       <svg glyphRef>
-|       <svg linearGradient>
-|       <svg radialGradient>
-|       <svg textPath>
-
-#data
-<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg altGlyph>
-|       <svg altGlyphDef>
-|       <svg altGlyphItem>
-|       <svg animateColor>
-|       <svg animateMotion>
-|       <svg animateTransform>
-|       <svg clipPath>
-|       <svg feBlend>
-|       <svg feColorMatrix>
-|       <svg feComponentTransfer>
-|       <svg feComposite>
-|       <svg feConvolveMatrix>
-|       <svg feDiffuseLighting>
-|       <svg feDisplacementMap>
-|       <svg feDistantLight>
-|       <svg feFlood>
-|       <svg feFuncA>
-|       <svg feFuncB>
-|       <svg feFuncG>
-|       <svg feFuncR>
-|       <svg feGaussianBlur>
-|       <svg feImage>
-|       <svg feMerge>
-|       <svg feMergeNode>
-|       <svg feMorphology>
-|       <svg feOffset>
-|       <svg fePointLight>
-|       <svg feSpecularLighting>
-|       <svg feSpotLight>
-|       <svg feTile>
-|       <svg feTurbulence>
-|       <svg foreignObject>
-|       <svg glyphRef>
-|       <svg linearGradient>
-|       <svg radialGradient>
-|       <svg textPath>
-
-#data
-<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math altglyph>
-|       <math altglyphdef>
-|       <math altglyphitem>
-|       <math animatecolor>
-|       <math animatemotion>
-|       <math animatetransform>
-|       <math clippath>
-|       <math feblend>
-|       <math fecolormatrix>
-|       <math fecomponenttransfer>
-|       <math fecomposite>
-|       <math feconvolvematrix>
-|       <math fediffuselighting>
-|       <math fedisplacementmap>
-|       <math fedistantlight>
-|       <math feflood>
-|       <math fefunca>
-|       <math fefuncb>
-|       <math fefuncg>
-|       <math fefuncr>
-|       <math fegaussianblur>
-|       <math feimage>
-|       <math femerge>
-|       <math femergenode>
-|       <math femorphology>
-|       <math feoffset>
-|       <math fepointlight>
-|       <math fespecularlighting>
-|       <math fespotlight>
-|       <math fetile>
-|       <math feturbulence>
-|       <math foreignobject>
-|       <math glyphref>
-|       <math lineargradient>
-|       <math radialgradient>
-|       <math textpath>
-
-#data
-<!DOCTYPE html><body><svg><solidColor /></svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg solidcolor>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests12.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests12.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests12.dat	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests12.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,62 +0,0 @@
-#data
-<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "foo"
-|       <math math>
-|         <math mtext>
-|           <i>
-|             "baz"
-|         <math annotation-xml>
-|           <svg svg>
-|             <svg desc>
-|               <b>
-|                 "eggs"
-|             <svg g>
-|               <svg foreignObject>
-|                 <p>
-|                   "spam"
-|                 <table>
-|                   <tbody>
-|                     <tr>
-|                       <td>
-|                         <img>
-|             <svg g>
-|               "quux"
-|       "bar"
-
-#data
-<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "foo"
-|     <math math>
-|       <math mtext>
-|         <i>
-|           "baz"
-|       <math annotation-xml>
-|         <svg svg>
-|           <svg desc>
-|             <b>
-|               "eggs"
-|           <svg g>
-|             <svg foreignObject>
-|               <p>
-|                 "spam"
-|               <table>
-|                 <tbody>
-|                   <tr>
-|                     <td>
-|                       <img>
-|           <svg g>
-|             "quux"
-|     "bar"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests14.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests14.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests14.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests14.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,74 +0,0 @@
-#data
-<!DOCTYPE html><html><body><xyz:abc></xyz:abc>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xyz:abc>
-
-#data
-<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xyz:abc>
-|     <span>
-
-#data
-<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>
-#errors
-15: Unexpected start tag html
-#document
-| <!DOCTYPE html>
-| <html>
-|   abc:def="gh"
-|   <head>
-|   <body>
-|     <xyz:abc>
-
-#data
-<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>
-#errors
-15: Unexpected start tag html
-#document
-| <!DOCTYPE html>
-| <html>
-|   xml:lang="bar"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><html 123=456>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   123="456"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><html 123=456><html 789=012>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   123="456"
-|   789="012"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><html><body 789=012>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     789="012"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests15.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests15.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests15.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests15.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,208 +0,0 @@
-#data
-<!DOCTYPE html><p><b><i><u></p> <p>X
-#errors
-Line: 1 Col: 31 Unexpected end tag (p). Ignored.
-Line: 1 Col: 36 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         <i>
-|           <u>
-|     <b>
-|       <i>
-|         <u>
-|           " "
-|           <p>
-|             "X"
-
-#data
-<p><b><i><u></p>
-<p>X
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end tag (p). Ignored.
-Line: 2 Col: 4 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         <i>
-|           <u>
-|     <b>
-|       <i>
-|         <u>
-|           "
-"
-|           <p>
-|             "X"
-
-#data
-<!doctype html></html> <head>
-#errors
-Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " "
-
-#data
-<!doctype html></body><meta>
-#errors
-Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-
-#data
-<html></html><!-- foo -->
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-| <!--  foo  -->
-
-#data
-<!doctype html></body><title>X</title>
-#errors
-Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-
-#data
-<!doctype html><table> X<meta></table>
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " X"
-|     <meta>
-|     <table>
-
-#data
-<!doctype html><table> x</table>
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " x"
-|     <table>
-
-#data
-<!doctype html><table> x </table>
-#errors
-Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " x "
-|     <table>
-
-#data
-<!doctype html><table><tr> x</table>
-#errors
-Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " x"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table>X<style> <tr>x </style> </table>
-#errors
-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <table>
-|       <style>
-|         " <tr>x "
-|       " "
-
-#data
-<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>
-#errors
-Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <a>
-|         "foo"
-|       <table>
-|         " "
-|         <tbody>
-|           <tr>
-|             <td>
-|               "bar"
-|             " "
-
-#data
-<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>
-#errors
-6: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-13: Stray start tag â€œframeâ€.
-21: Stray end tag â€œframeâ€.
-29: Stray end tag â€œframeâ€.
-39: â€œframesetâ€ start tag after â€œbodyâ€ already open.
-105: End of file seen inside an [R]CDATA element.
-105: End of file seen and there were open elements.
-XXX: These errors are wrong, please fix me!
-#document
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-|     <frameset>
-|       <frame>
-|     <noframes>
-|       "</frameset><noframes>"
-
-#data
-<!DOCTYPE html><object></html>
-#errors
-1: Expected closing tag. Unexpected end of file
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <object>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests16.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests16.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests16.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests16.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,2299 +0,0 @@
-#data
-<!doctype html><script>
-#errors
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<!doctype html><script>a
-#errors
-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "a"
-|   <body>
-
-#data
-<!doctype html><script><
-#errors
-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<"
-|   <body>
-
-#data
-<!doctype html><script></
-#errors
-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</"
-|   <body>
-
-#data
-<!doctype html><script></S
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</S"
-|   <body>
-
-#data
-<!doctype html><script></SC
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SC"
-|   <body>
-
-#data
-<!doctype html><script></SCR
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCR"
-|   <body>
-
-#data
-<!doctype html><script></SCRI
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCRI"
-|   <body>
-
-#data
-<!doctype html><script></SCRIP
-#errors
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIP"
-|   <body>
-
-#data
-<!doctype html><script></SCRIPT
-#errors
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIPT"
-|   <body>
-
-#data
-<!doctype html><script></SCRIPT 
-#errors
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<!doctype html><script></s
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</s"
-|   <body>
-
-#data
-<!doctype html><script></sc
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</sc"
-|   <body>
-
-#data
-<!doctype html><script></scr
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</scr"
-|   <body>
-
-#data
-<!doctype html><script></scri
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</scri"
-|   <body>
-
-#data
-<!doctype html><script></scrip
-#errors
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</scrip"
-|   <body>
-
-#data
-<!doctype html><script></script
-#errors
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "</script"
-|   <body>
-
-#data
-<!doctype html><script></script 
-#errors
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<!doctype html><script><!
-#errors
-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!"
-|   <body>
-
-#data
-<!doctype html><script><!a
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!a"
-|   <body>
-
-#data
-<!doctype html><script><!-
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!-"
-|   <body>
-
-#data
-<!doctype html><script><!-a
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!-a"
-|   <body>
-
-#data
-<!doctype html><script><!--
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<!doctype html><script><!--a
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--a"
-|   <body>
-
-#data
-<!doctype html><script><!--<
-#errors
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<"
-|   <body>
-
-#data
-<!doctype html><script><!--<a
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<a"
-|   <body>
-
-#data
-<!doctype html><script><!--</
-#errors
-Line: 1 Col: 27 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--</"
-|   <body>
-
-#data
-<!doctype html><script><!--</script
-#errors
-Line: 1 Col: 35 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--</script"
-|   <body>
-
-#data
-<!doctype html><script><!--</script 
-#errors
-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<!doctype html><script><!--<s
-#errors
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<s"
-|   <body>
-
-#data
-<!doctype html><script><!--<script
-#errors
-Line: 1 Col: 34 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script 
-#errors
-Line: 1 Col: 35 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script <
-#errors
-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <"
-|   <body>
-
-#data
-<!doctype html><script><!--<script <a
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </s
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </s"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script
-#errors
-Line: 1 Col: 43 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </scripta
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </scripta"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script 
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script>
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script>"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script/
-#errors
-Line: 1 Col: 44 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script/"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script <
-#errors
-Line: 1 Col: 45 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script <a
-#errors
-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </
-#errors
-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script
-#errors
-Line: 1 Col: 52 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script 
-#errors
-Line: 1 Col: 53 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script/
-#errors
-Line: 1 Col: 53 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script </script </script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<!doctype html><script><!--<script -
-#errors
-Line: 1 Col: 36 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -"
-|   <body>
-
-#data
-<!doctype html><script><!--<script -a
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script -<
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -<"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --
-#errors
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --a
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --a"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --<
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --<"
-|   <body>
-
-#data
-<!doctype html><script><!--<script -->
-#errors
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --><
-#errors
-Line: 1 Col: 39 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --><"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></
-#errors
-Line: 1 Col: 40 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script
-#errors
-Line: 1 Col: 46 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></script"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script 
-#errors
-Line: 1 Col: 47 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script/
-#errors
-Line: 1 Col: 47 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script --></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script><\/script>--></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script><\/script>-->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></scr'+'ipt>--></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt>-->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>--><!--</script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>--><!--"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>-- ></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>-- >"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>- -></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- ->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>- - ></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- - >"
-|   <body>
-
-#data
-<!doctype html><script><!--<script></script><script></script>-></script>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>->"
-|   <body>
-
-#data
-<!doctype html><script><!--<script>--!></script>X
-#errors
-Line: 1 Col: 49 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script>--!></script>X"
-|   <body>
-
-#data
-<!doctype html><script><!--<scr'+'ipt></script>--></script>
-#errors
-Line: 1 Col: 59 Unexpected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<scr'+'ipt>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><script><!--<script></scr'+'ipt></script>X
-#errors
-Line: 1 Col: 57 Unexpected end of file. Expected end tag (script).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt></script>X"
-|   <body>
-
-#data
-<!doctype html><style><!--<style></style>--></style>
-#errors
-Line: 1 Col: 52 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--<style>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><style><!--</style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "X"
-
-#data
-<!doctype html><style><!--...</style>...--></style>
-#errors
-Line: 1 Col: 51 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|   <body>
-|     "...-->"
-
-#data
-<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
-|   <body>
-|     "X"
-
-#data
-<!doctype html><style><!--...<style><!--...--!></style>--></style>
-#errors
-Line: 1 Col: 66 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--...<style><!--...--!>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><style><!--...</style><!-- --><style>@import ...</style>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|     <!--   -->
-|     <style>
-|       "@import ..."
-|   <body>
-
-#data
-<!doctype html><style>...<style><!--...</style><!-- --></style>
-#errors
-Line: 1 Col: 63 Unexpected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "...<style><!--..."
-|     <!--   -->
-|   <body>
-
-#data
-<!doctype html><style>...<!--[if IE]><style>...</style>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       "...<!--[if IE]><style>..."
-|   <body>
-|     "X"
-
-#data
-<!doctype html><title><!--<title></title>--></title>
-#errors
-Line: 1 Col: 52 Unexpected end tag (title).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "<!--<title>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><title>&lt;/title></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "</title>"
-|   <body>
-
-#data
-<!doctype html><title>foo/title><link></head><body>X
-#errors
-Line: 1 Col: 52 Unexpected end of file. Expected end tag (title).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "foo/title><link></head><body>X"
-|   <body>
-
-#data
-<!doctype html><noscript><!--<noscript></noscript>--></noscript>
-#errors
-Line: 1 Col: 64 Unexpected end tag (noscript).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--<noscript>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--"
-|   <body>
-|     "X"
-|     <noscript>
-|       "-->"
-
-#data
-<!doctype html><noscript><iframe></noscript>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noscript>
-|       "<iframe>"
-|   <body>
-|     "X"
-
-#data
-<!doctype html><noframes><!--<noframes></noframes>--></noframes>
-#errors
-Line: 1 Col: 64 Unexpected end tag (noframes).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noframes>
-|       "<!--<noframes>"
-|   <body>
-|     "-->"
-
-#data
-<!doctype html><noframes><body><script><!--...</script></body></noframes></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <noframes>
-|       "<body><script><!--...</script></body>"
-|   <body>
-
-#data
-<!doctype html><textarea><!--<textarea></textarea>--></textarea>
-#errors
-Line: 1 Col: 64 Unexpected end tag (textarea).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--<textarea>"
-|     "-->"
-
-#data
-<!doctype html><textarea>&lt;/textarea></textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "</textarea>"
-
-#data
-<!doctype html><textarea>&lt;</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<"
-
-#data
-<!doctype html><textarea>a&lt;b</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "a<b"
-
-#data
-<!doctype html><iframe><!--<iframe></iframe>--></iframe>
-#errors
-Line: 1 Col: 56 Unexpected end tag (iframe).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "<!--<iframe>"
-|     "-->"
-
-#data
-<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "...<!--X->...<!--/X->..."
-
-#data
-<!doctype html><xmp><!--<xmp></xmp>--></xmp>
-#errors
-Line: 1 Col: 44 Unexpected end tag (xmp).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-|       "<!--<xmp>"
-|     "-->"
-
-#data
-<!doctype html><noembed><!--<noembed></noembed>--></noembed>
-#errors
-Line: 1 Col: 60 Unexpected end tag (noembed).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <noembed>
-|       "<!--<noembed>"
-|     "-->"
-
-#data
-<script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 8 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<script>a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "a"
-|   <body>
-
-#data
-<script><
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<"
-|   <body>
-
-#data
-<script></
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</"
-|   <body>
-
-#data
-<script></S
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</S"
-|   <body>
-
-#data
-<script></SC
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SC"
-|   <body>
-
-#data
-<script></SCR
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCR"
-|   <body>
-
-#data
-<script></SCRI
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCRI"
-|   <body>
-
-#data
-<script></SCRIP
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIP"
-|   <body>
-
-#data
-<script></SCRIPT
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</SCRIPT"
-|   <body>
-
-#data
-<script></SCRIPT 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<script></s
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</s"
-|   <body>
-
-#data
-<script></sc
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</sc"
-|   <body>
-
-#data
-<script></scr
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</scr"
-|   <body>
-
-#data
-<script></scri
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</scri"
-|   <body>
-
-#data
-<script></scrip
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</scrip"
-|   <body>
-
-#data
-<script></script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</script"
-|   <body>
-
-#data
-<script></script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<script><!
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!"
-|   <body>
-
-#data
-<script><!a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!a"
-|   <body>
-
-#data
-<script><!-
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!-"
-|   <body>
-
-#data
-<script><!-a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!-a"
-|   <body>
-
-#data
-<script><!--
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<script><!--a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--a"
-|   <body>
-
-#data
-<script><!--<
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<"
-|   <body>
-
-#data
-<script><!--<a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<a"
-|   <body>
-
-#data
-<script><!--</
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--</"
-|   <body>
-
-#data
-<script><!--</script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--</script"
-|   <body>
-
-#data
-<script><!--</script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--"
-|   <body>
-
-#data
-<script><!--<s
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<s"
-|   <body>
-
-#data
-<script><!--<script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script"
-|   <body>
-
-#data
-<script><!--<script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script "
-|   <body>
-
-#data
-<script><!--<script <
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <"
-|   <body>
-
-#data
-<script><!--<script <a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script <a"
-|   <body>
-
-#data
-<script><!--<script </
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </"
-|   <body>
-
-#data
-<script><!--<script </s
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </s"
-|   <body>
-
-#data
-<script><!--<script </script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 28 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script"
-|   <body>
-
-#data
-<script><!--<script </scripta
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </scripta"
-|   <body>
-
-#data
-<script><!--<script </script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script </script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script>"
-|   <body>
-
-#data
-<script><!--<script </script/
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script/"
-|   <body>
-
-#data
-<script><!--<script </script <
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <"
-|   <body>
-
-#data
-<script><!--<script </script <a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script <a"
-|   <body>
-
-#data
-<script><!--<script </script </
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </"
-|   <body>
-
-#data
-<script><!--<script </script </script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script </script"
-|   <body>
-
-#data
-<script><!--<script </script </script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script </script </script/
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script </script </script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script </script "
-|   <body>
-
-#data
-<script><!--<script -
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -"
-|   <body>
-
-#data
-<script><!--<script -a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -a"
-|   <body>
-
-#data
-<script><!--<script --
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --"
-|   <body>
-
-#data
-<script><!--<script --a
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --a"
-|   <body>
-
-#data
-<script><!--<script -->
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script --><
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 24 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --><"
-|   <body>
-
-#data
-<script><!--<script --></
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></"
-|   <body>
-
-#data
-<script><!--<script --></script
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script --></script"
-|   <body>
-
-#data
-<script><!--<script --></script 
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script --></script/
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 32 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script --></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script -->"
-|   <body>
-
-#data
-<script><!--<script><\/script>--></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script><\/script>-->"
-|   <body>
-
-#data
-<script><!--<script></scr'+'ipt>--></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt>-->"
-|   <body>
-
-#data
-<script><!--<script></script><script></script></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>--><!--</script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>--><!--"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>-- ></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>-- >"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>- -></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- ->"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>- - ></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>- - >"
-|   <body>
-
-#data
-<script><!--<script></script><script></script>-></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></script><script></script>->"
-|   <body>
-
-#data
-<script><!--<script>--!></script>X
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 34 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script>--!></script>X"
-|   <body>
-
-#data
-<script><!--<scr'+'ipt></script>--></script>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 44 Unexpected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<scr'+'ipt>"
-|   <body>
-|     "-->"
-
-#data
-<script><!--<script></scr'+'ipt></script>X
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 42 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<!--<script></scr'+'ipt></script>X"
-|   <body>
-
-#data
-<style><!--<style></style>--></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--<style>"
-|   <body>
-|     "-->"
-
-#data
-<style><!--</style>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|   <body>
-|     "X"
-
-#data
-<style><!--...</style>...--></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 36 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|   <body>
-|     "...-->"
-
-#data
-<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>"
-|   <body>
-|     "X"
-
-#data
-<style><!--...<style><!--...--!></style>--></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 51 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--...<style><!--...--!>"
-|   <body>
-|     "-->"
-
-#data
-<style><!--...</style><!-- --><style>@import ...</style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--..."
-|     <!--   -->
-|     <style>
-|       "@import ..."
-|   <body>
-
-#data
-<style>...<style><!--...</style><!-- --></style>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 48 Unexpected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "...<style><!--..."
-|     <!--   -->
-|   <body>
-
-#data
-<style>...<!--[if IE]><style>...</style>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       "...<!--[if IE]><style>..."
-|   <body>
-|     "X"
-
-#data
-<title><!--<title></title>--></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<!--<title>"
-|   <body>
-|     "-->"
-
-#data
-<title>&lt;/title></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "</title>"
-|   <body>
-
-#data
-<title>foo/title><link></head><body>X
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected end of file. Expected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "foo/title><link></head><body>X"
-|   <body>
-
-#data
-<noscript><!--<noscript></noscript>--></noscript>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-Line: 1 Col: 49 Unexpected end tag (noscript).
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--<noscript>"
-|   <body>
-|     "-->"
-
-#data
-<noscript><!--</noscript>X<noscript>--></noscript>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--"
-|   <body>
-|     "X"
-|     <noscript>
-|       "-->"
-
-#data
-<noscript><iframe></noscript>X
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<iframe>"
-|   <body>
-|     "X"
-
-#data
-<noframes><!--<noframes></noframes>--></noframes>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE.
-Line: 1 Col: 49 Unexpected end tag (noframes).
-#document
-| <html>
-|   <head>
-|     <noframes>
-|       "<!--<noframes>"
-|   <body>
-|     "-->"
-
-#data
-<noframes><body><script><!--...</script></body></noframes></html>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noframes>
-|       "<body><script><!--...</script></body>"
-|   <body>
-
-#data
-<textarea><!--<textarea></textarea>--></textarea>
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-Line: 1 Col: 49 Unexpected end tag (textarea).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<!--<textarea>"
-|     "-->"
-
-#data
-<textarea>&lt;/textarea></textarea>
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "</textarea>"
-
-#data
-<iframe><!--<iframe></iframe>--></iframe>
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-Line: 1 Col: 41 Unexpected end tag (iframe).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "<!--<iframe>"
-|     "-->"
-
-#data
-<iframe>...<!--X->...<!--/X->...</iframe>
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       "...<!--X->...<!--/X->..."
-
-#data
-<xmp><!--<xmp></xmp>--></xmp>
-#errors
-Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE.
-Line: 1 Col: 29 Unexpected end tag (xmp).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-|       "<!--<xmp>"
-|     "-->"
-
-#data
-<noembed><!--<noembed></noembed>--></noembed>
-#errors
-Line: 1 Col: 9 Unexpected start tag (noembed). Expected DOCTYPE.
-Line: 1 Col: 45 Unexpected end tag (noembed).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <noembed>
-|       "<!--<noembed>"
-|     "-->"
-
-#data
-<!doctype html><table>
-
-#errors
-Line 2 Col 0 Unexpected end of file. Expected table content.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "
-"
-
-#data
-<!doctype html><table><td><span><font></span><span>
-#errors
-Line 1 Col 26 Unexpected table cell start tag (td) in the table body phase.
-Line 1 Col 45 Unexpected end tag (span).
-Line 1 Col 51 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <span>
-|               <font>
-|             <font>
-|               <span>
-
-#data
-<!doctype html><form><table></form><form></table></form>
-#errors
-35: Stray end tag â€œformâ€.
-41: Start tag â€œformâ€ seen in â€œtableâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <table>
-|         <form>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests17.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests17.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests17.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests17.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,153 +0,0 @@
-#data
-<!doctype html><table><tbody><select><tr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><tr><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<!doctype html><table><tr><td><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <select>
-|           <td>
-
-#data
-<!doctype html><table><tr><th><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <th>
-|             <select>
-|           <td>
-
-#data
-<!doctype html><table><caption><select><tr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <select>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><select><tr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><th>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><tbody>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><thead>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><tfoot>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><select><caption>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><table><tr></table>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|     "a"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests18.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests18.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests18.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests18.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,269 +0,0 @@
-#data
-<!doctype html><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-
-#data
-<!doctype html><table><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-
-#data
-<!doctype html><table><tbody><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-|       <tbody>
-
-#data
-<!doctype html><table><tbody><tr><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><tbody><tr><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><td><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <plaintext>
-|               "</plaintext>"
-
-#data
-<!doctype html><table><caption><plaintext></plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <plaintext>
-|           "</plaintext>"
-
-#data
-<!doctype html><table><tr><style></script></style>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "abc"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <style>
-|             "</script>"
-
-#data
-<!doctype html><table><tr><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "abc"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <script>
-|             "</style>"
-
-#data
-<!doctype html><table><caption><style></script></style>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <style>
-|           "</script>"
-|         "abc"
-
-#data
-<!doctype html><table><td><style></script></style>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <style>
-|               "</script>"
-|             "abc"
-
-#data
-<!doctype html><select><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <script>
-|         "</style>"
-|       "abc"
-
-#data
-<!doctype html><table><select><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <script>
-|         "</style>"
-|       "abc"
-|     <table>
-
-#data
-<!doctype html><table><tr><select><script></style></script>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <script>
-|         "</style>"
-|       "abc"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><frameset></frameset><noframes>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-
-#data
-<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-|   <!-- abc -->
-
-#data
-<!doctype html><frameset></frameset></html><noframes>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-
-#data
-<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   <noframes>
-|     "abc"
-| <!-- abc -->
-
-#data
-<!doctype html><table><tr></tbody><tfoot>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|       <tfoot>
-
-#data
-<!doctype html><table><td><svg></svg>abc<td>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|             "abc"
-|           <td>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests19.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests19.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests19.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests19.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,1237 +0,0 @@
-#data
-<!doctype html><math><mn DefinitionUrl="foo">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mn>
-|         definitionURL="foo"
-
-#data
-<!doctype html><html></p><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <!-- foo -->
-|   <head>
-|   <body>
-
-#data
-<!doctype html><head></head></p><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <!-- foo -->
-|   <body>
-
-#data
-<!doctype html><body><p><pre>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <pre>
-
-#data
-<!doctype html><body><p><listing>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <listing>
-
-#data
-<!doctype html><p><plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <plaintext>
-
-#data
-<!doctype html><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <h1>
-
-#data
-<!doctype html><form><isindex>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-
-#data
-<!doctype html><isindex action="POST">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       action="POST"
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<!doctype html><isindex prompt="this is isindex">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "this is isindex"
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<!doctype html><isindex type="hidden">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|           type="hidden"
-|       <hr>
-
-#data
-<!doctype html><isindex name="foo">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|       <hr>
-
-#data
-<!doctype html><ruby><p><rp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <p>
-|       <rp>
-
-#data
-<!doctype html><ruby><div><span><rp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <span>
-|           <rp>
-
-#data
-<!doctype html><ruby><div><p><rp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <p>
-|         <rp>
-
-#data
-<!doctype html><ruby><p><rt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <p>
-|       <rt>
-
-#data
-<!doctype html><ruby><div><span><rt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <span>
-|           <rt>
-
-#data
-<!doctype html><ruby><div><p><rt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <p>
-|         <rt>
-
-#data
-<!doctype html><math/><foo>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|     <foo>
-
-#data
-<!doctype html><svg/><foo>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <foo>
-
-#data
-<!doctype html><div></body><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|   <!-- foo -->
-
-#data
-<!doctype html><h1><div><h3><span></h1>foo
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|       <div>
-|         <h3>
-|           <span>
-|         "foo"
-
-#data
-<!doctype html><p></h3>foo
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "foo"
-
-#data
-<!doctype html><h3><li>abc</h2>foo
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <h3>
-|       <li>
-|         "abc"
-|     "foo"
-
-#data
-<!doctype html><table>abc<!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "abc"
-|     <table>
-|       <!-- foo -->
-
-#data
-<!doctype html><table>  <!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "  "
-|       <!-- foo -->
-
-#data
-<!doctype html><table> b <!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     " b "
-|     <table>
-|       <!-- foo -->
-
-#data
-<!doctype html><select><option><option>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|       <option>
-
-#data
-<!doctype html><select><option></optgroup>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!doctype html><select><option></optgroup>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!doctype html><p><math><mi><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mi>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><mo><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mo>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><mn><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mn>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><ms><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math ms>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><p><math><mtext><p><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mtext>
-|           <p>
-|           <h1>
-
-#data
-<!doctype html><frameset></noframes>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html c=d><body></html><html a=b>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   a="b"
-|   c="d"
-|   <head>
-|   <body>
-
-#data
-<!doctype html><html c=d><frameset></frameset></html><html a=b>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   a="b"
-|   c="d"
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html><!--foo-->
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-| <!-- foo -->
-
-#data
-<!doctype html><html><frameset></frameset></html>  
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|   "  "
-
-#data
-<!doctype html><html><frameset></frameset></html>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><html><frameset></frameset></html></p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<html><frameset></frameset></html><!doctype html>
-#errors
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><body><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!doctype html><p><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><p>a<frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "a"
-
-#data
-<!doctype html><p> <frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><pre><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-
-#data
-<!doctype html><listing><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <listing>
-
-#data
-<!doctype html><li><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <li>
-
-#data
-<!doctype html><dd><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <dd>
-
-#data
-<!doctype html><dt><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <dt>
-
-#data
-<!doctype html><button><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <button>
-
-#data
-<!doctype html><applet><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <applet>
-
-#data
-<!doctype html><marquee><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <marquee>
-
-#data
-<!doctype html><object><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <object>
-
-#data
-<!doctype html><table><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-
-#data
-<!doctype html><area><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <area>
-
-#data
-<!doctype html><basefont><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <basefont>
-|   <frameset>
-
-#data
-<!doctype html><bgsound><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <bgsound>
-|   <frameset>
-
-#data
-<!doctype html><br><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <br>
-
-#data
-<!doctype html><embed><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <embed>
-
-#data
-<!doctype html><img><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <img>
-
-#data
-<!doctype html><input><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-
-#data
-<!doctype html><keygen><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <keygen>
-
-#data
-<!doctype html><wbr><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <wbr>
-
-#data
-<!doctype html><hr><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <hr>
-
-#data
-<!doctype html><textarea></textarea><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-
-#data
-<!doctype html><xmp></xmp><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-
-#data
-<!doctype html><iframe></iframe><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-
-#data
-<!doctype html><select></select><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!doctype html><svg></svg><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><math></math><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><svg><foreignObject><div> <frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<!doctype html><svg>a</svg><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "a"
-
-#data
-<!doctype html><svg> </svg><frameset><frame>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-
-#data
-<html>aaa<frameset></frameset>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "aaa"
-
-#data
-<html> a <frameset></frameset>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "a "
-
-#data
-<!doctype html><div><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><div><body><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<!doctype html><p><math></p>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|     "a"
-
-#data
-<!doctype html><p><math><mn><span></p>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <math math>
-|         <math mn>
-|           <span>
-|             <p>
-|             "a"
-
-#data
-<!doctype html><math></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-
-#data
-<!doctype html><meta charset="ascii">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <meta>
-|       charset="ascii"
-|   <body>
-
-#data
-<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <meta>
-|       content="text/html;charset=ascii"
-|       http-equiv="content-type"
-|   <body>
-
-#data
-<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8">
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -->
-|     <meta>
-|       charset="utf8"
-|   <body>
-
-#data
-<!doctype html><html a=b><head></head><html c=d>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   a="b"
-|   c="d"
-|   <head>
-|   <body>
-
-#data
-<!doctype html><image/>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <img>
-
-#data
-<!doctype html>a<i>b<table>c<b>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "a"
-|     <i>
-|       "bc"
-|       <b>
-|         "de"
-|       "f"
-|       <table>
-
-#data
-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|     <div>
-|       <b>
-|         <i>
-|           "c"
-|           <a>
-|             "d"
-|         <a>
-|           "e"
-|       <a>
-|         "f"
-|     <table>
-
-#data
-<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|     <div>
-|       <b>
-|         <i>
-|           "c"
-|           <a>
-|             "d"
-|         <a>
-|           "e"
-|       <a>
-|         "f"
-
-#data
-<!doctype html><table><i>a<b>b<div>c</i>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|       <div>
-|         <i>
-|           "c"
-|     <table>
-
-#data
-<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <b>
-|         "b"
-|     <b>
-|     <div>
-|       <b>
-|         <i>
-|           "c"
-|           <a>
-|             "d"
-|         <a>
-|           "e"
-|       <a>
-|         "f"
-|     <table>
-
-#data
-<!doctype html><table><i>a<div>b<tr>c<b>d</i>e
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <i>
-|       "a"
-|       <div>
-|         "b"
-|     <i>
-|       "c"
-|       <b>
-|         "d"
-|     <b>
-|       "e"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><table><td><table><i>a<div>b<b>c</i>d
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <i>
-|               "a"
-|             <div>
-|               <i>
-|                 "b"
-|                 <b>
-|                   "c"
-|               <b>
-|                 "d"
-|             <table>
-
-#data
-<!doctype html><body><bgsound>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <bgsound>
-
-#data
-<!doctype html><body><basefont>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <basefont>
-
-#data
-<!doctype html><a><b></a><basefont>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <basefont>
-
-#data
-<!doctype html><a><b></a><bgsound>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <bgsound>
-
-#data
-<!doctype html><figcaption><article></figcaption>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <figcaption>
-|       <article>
-|     "a"
-
-#data
-<!doctype html><summary><article></summary>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <summary>
-|       <article>
-|     "a"
-
-#data
-<!doctype html><p><a><plaintext>b
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <a>
-|     <plaintext>
-|       <a>
-|         "b"
-
-#data
-<!DOCTYPE html><div>a<a></div>b<p>c</p>d
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "a"
-|       <a>
-|     <a>
-|       "b"
-|       <p>
-|         "c"
-|       "d"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests1.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests1.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests1.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests1.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,1952 +0,0 @@
-#data
-Test
-#errors
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Test"
-
-#data
-<p>One<p>Two
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "One"
-|     <p>
-|       "Two"
-
-#data
-Line1<br>Line2<br>Line3<br>Line4
-#errors
-Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Line1"
-|     <br>
-|     "Line2"
-|     <br>
-|     "Line3"
-|     <br>
-|     "Line4"
-
-#data
-<html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<head>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></head>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></head><body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></head><body></body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head><body></body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head></body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end tag (body).
-Line: 1 Col: 26 Unexpected end tag (html).
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><head><body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<html><body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<head></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end tag (html). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-</head>
-#errors
-Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-</body>
-#errors
-Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE.
-Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-</html>
-#errors
-Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE.
-Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<b><table><td><i></table>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-
-#data
-<b><table><td></b><i></table>X
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 30 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-|       "X"
-
-#data
-<h1>Hello<h2>World
-#errors
-4: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-13: Heading cannot be a child of another heading.
-18: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|       "Hello"
-|     <h2>
-|       "World"
-
-#data
-<a><p>X<a>Y</a>Z</p></a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <p>
-|       <a>
-|         "X"
-|       <a>
-|         "Y"
-|       "Z"
-
-#data
-<b><button>foo</b>bar
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <button>
-|       <b>
-|         "foo"
-|       "bar"
-
-#data
-<!DOCTYPE html><span><button>foo</span>bar
-#errors
-39: End tag â€œspanâ€ seen but there were unclosed elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <span>
-|       <button>
-|         "foobar"
-
-#data
-<p><b><div><marquee></p></b></div>X
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-Line: 1 Col: 24 Unexpected end tag (p). Ignored.
-Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|     <div>
-|       <b>
-|         <marquee>
-|           <p>
-|           "X"
-
-#data
-<script><div></script></div><title><p></title><p><p>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 28 Unexpected end tag (div). Ignored.
-#document
-| <html>
-|   <head>
-|     <script>
-|       "<div>"
-|     <title>
-|       "<p>"
-|   <body>
-|     <p>
-|     <p>
-
-#data
-<!--><div>--<!-->
-#errors
-Line: 1 Col: 5 Incorrect comment.
-Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 17 Incorrect comment.
-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
-#document
-| <!--  -->
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "--"
-|       <!--  -->
-
-#data
-<p><hr></p>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <hr>
-|     <p>
-
-#data
-<select><b><option><select><option></b></select>X
-#errors
-Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored.
-Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag.
-Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 48 Unexpected end tag (select). Ignored.
-Line: 1 Col: 49 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|     <option>
-|       "X"
-
-#data
-<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 64 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <a>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <a>
-|                 <table>
-|               <a>
-|     <a>
-|       <b>
-|         "X"
-|       "C"
-|     <a>
-|       "Y"
-
-#data
-<a X>0<b>1<a Y>2
-#errors
-Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       x=""
-|       "0"
-|       <b>
-|         "1"
-|     <b>
-|       <a>
-|         y=""
-|         "2"
-
-#data
-<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->
-#errors
-Line: 1 Col: 7 Unexpected '-' after '--' found in comment.
-Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE.
-Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode.
-Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase.
-Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase.
-Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing.
-Line: 1 Col: 71 Unexpected end of file. Expected table content.
-#document
-| <!-- - -->
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <div>
-|         "helloexcite!"
-|         <b>
-|           "me!"
-|         <table>
-|           <tbody>
-|             <tr>
-|               <th>
-|                 <i>
-|                   "please!"
-|             <!-- X -->
-
-#data
-<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->
-#errors
-Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <li>
-|       "hello"
-|     <li>
-|       "world"
-|       <ul>
-|         "how"
-|         <li>
-|           "do"
-|       "you"
-|   <!-- do -->
-
-#data
-<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E
-#errors
-Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored.
-Line: 1 Col: 55 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "A"
-|     <option>
-|       "B"
-|     <optgroup>
-|       "C"
-|       <select>
-|         "DE"
-
-#data
-<
-#errors
-Line: 1 Col: 1 Expected tag name. Got something else instead
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "<"
-
-#data
-<#
-#errors
-Line: 1 Col: 1 Expected tag name. Got something else instead
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "<#"
-
-#data
-</
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected end of file.
-Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "</"
-
-#data
-</#
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found.
-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- # -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ? -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?#
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ?# -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!
-#errors
-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!--  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!#
-#errors
-Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- # -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?COMMENT?>
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ?COMMENT? -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!COMMENT>
-#errors
-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- COMMENT -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-</ COMMENT >
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found.
-Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!--  COMMENT  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<?COM--MENT?>
-#errors
-Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)
-Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- ?COM--MENT? -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!COM--MENT>
-#errors
-Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found.
-Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- COM--MENT -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-</ COM--MENT >
-#errors
-Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found.
-Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!--  COM--MENT  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><style> EOF
-#errors
-Line: 1 Col: 26 Unexpected end of file. Expected end tag (style).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <style>
-|       " EOF"
-|   <body>
-
-#data
-<!DOCTYPE html><script> <!-- </script> --> </script> EOF
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       " <!-- "
-|     " "
-|   <body>
-|     "-->  EOF"
-
-#data
-<b><p></b>TEST
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <p>
-|       <b>
-|       "TEST"
-
-#data
-<p id=a><b><p id=b></b>TEST
-#errors
-Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end tag (p). Ignored.
-Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       id="a"
-|       <b>
-|     <p>
-|       id="b"
-|       "TEST"
-
-#data
-<b id=a><p><b id=b></p></b>TEST
-#errors
-Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end tag (p). Ignored.
-Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 31 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       id="a"
-|       <p>
-|         <b>
-|           id="b"
-|       "TEST"
-
-#data
-<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>
-#errors
-Line: 1 Col: 61 Unexpected end tag (p). Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "U-test"
-|   <body>
-|     <div>
-|       <p>
-|         "Test"
-|         <u>
-
-#data
-<!DOCTYPE html><font><table></font></table></font>
-#errors
-Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode.
-Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <table>
-
-#data
-<font><p>hello<b>cruel</font>world
-#errors
-Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE.
-Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 34 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|     <p>
-|       <font>
-|         "hello"
-|         <b>
-|           "cruel"
-|       <b>
-|         "world"
-
-#data
-<b>Test</i>Test
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "TestTest"
-
-#data
-<b>A<cite>B<div>C
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "A"
-|       <cite>
-|         "B"
-|         <div>
-|           "C"
-
-#data
-<b>A<cite>B<div>C</cite>D
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 24 Unexpected end tag (cite). Ignored.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "A"
-|       <cite>
-|         "B"
-|         <div>
-|           "CD"
-
-#data
-<b>A<cite>B<div>C</b>D
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 22 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "A"
-|       <cite>
-|         "B"
-|     <div>
-|       <b>
-|         "C"
-|       "D"
-
-#data
-
-#errors
-Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<DIV>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 5 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<DIV> abc
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 9 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc"
-
-#data
-<DIV> abc <B>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 13 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-
-#data
-<DIV> abc <B> def
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 17 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def"
-
-#data
-<DIV> abc <B> def <I>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 21 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-
-#data
-<DIV> abc <B> def <I> ghi
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi"
-
-#data
-<DIV> abc <B> def <I> ghi <P>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|           <p>
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 33 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|           <p>
-|             " jkl"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 38 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|         <p>
-|           <b>
-|             " jkl "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 42 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|         <p>
-|           <b>
-|             " jkl "
-|           " mno"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 51 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-|         " pqr"
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 56 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-|         " pqr "
-
-#data
-<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 60 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       " abc "
-|       <b>
-|         " def "
-|         <i>
-|           " ghi "
-|       <i>
-|       <p>
-|         <i>
-|           <b>
-|             " jkl "
-|           " mno "
-|         " pqr "
-|       " stu"
-
-#data
-<test attribute---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
-#errors
-Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE.
-Line: 1 Col: 1040 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <test>
-|       attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=""
-
-#data
-<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe
-#errors
-Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
-
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="blah"
-|       "aba"
-|       <a>
-|         href="foo"
-|         "br"
-|       <a>
-|         href="foo"
-|         "x"
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|     <a>
-|       href="foo"
-|       "aoe"
-
-#data
-<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe
-#errors
-Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="blah"
-|       "abax"
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <a>
-|                 href="foo"
-|                 "br"
-|       "aoe"
-
-#data
-<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 71 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="blah"
-|       "aba"
-|     <a>
-|       href="blah"
-|       "x"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <a>
-|               href="foo"
-|               "br"
-|     <a>
-|       href="blah"
-|       "aoe"
-
-#data
-<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa
-#errors
-Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 47 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="a"
-|       "aa"
-|       <marquee>
-|         "aa"
-|         <a>
-|           href="b"
-|           "bb"
-|       "aa"
-
-#data
-<wbr><strike><code></strike><code><strike></code>
-#errors
-Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE.
-Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 49 Unexpected end tag (code). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <wbr>
-|     <strike>
-|       <code>
-|     <code>
-|       <code>
-|         <strike>
-
-#data
-<!DOCTYPE html><spacer>foo
-#errors
-26: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <spacer>
-|       "foo"
-
-#data
-<title><meta></title><link><title><meta></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<meta>"
-|     <link>
-|     <title>
-|       "<meta>"
-|   <body>
-
-#data
-<style><!--</style><meta><script>--><link></script>
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 51 Unexpected end of file. Expected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       "<!--"
-|     <meta>
-|     <script>
-|       "--><link>"
-|   <body>
-
-#data
-<head><meta></head><link>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <meta>
-|     <link>
-|   <body>
-
-#data
-<table><tr><tr><td><td><span><th><span>X</table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|         <tr>
-|           <td>
-|           <td>
-|             <span>
-|           <th>
-|             <span>
-|               "X"
-
-#data
-<body><body><base><link><meta><title><p></title><body><p></body>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected start tag (body).
-Line: 1 Col: 54 Unexpected start tag (body).
-Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <base>
-|     <link>
-|     <meta>
-|     <title>
-|       "<p>"
-|     <p>
-
-#data
-<textarea><p></textarea>
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "<p>"
-
-#data
-<p><image></p>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected start tag (image). Treated as img.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <img>
-
-#data
-<a><table><a></table><p><a><div><a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a).
-Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 32 Unexpected end tag (p). Ignored.
-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <a>
-|       <table>
-|     <p>
-|       <a>
-|     <div>
-|       <a>
-
-#data
-<head></p><meta><p>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 10 Unexpected end tag (p). Ignored.
-#document
-| <html>
-|   <head>
-|     <meta>
-|   <body>
-|     <p>
-
-#data
-<head></html><meta><p>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected start tag (meta).
-#document
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-|     <p>
-
-#data
-<b><table><td><i></table>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-
-#data
-<b><table><td></b><i></table>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <i>
-
-#data
-<h1><h2>
-#errors
-4: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-8: Heading cannot be a child of another heading.
-8: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|     <h2>
-
-#data
-<a><p><a></a></p></a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <p>
-|       <a>
-|       <a>
-
-#data
-<b><button></b></button></b>
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <button>
-|       <b>
-
-#data
-<p><b><div><marquee></p></b></div>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-Line: 1 Col: 24 Unexpected end tag (p). Ignored.
-Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 34 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|     <div>
-|       <b>
-|         <marquee>
-|           <p>
-
-#data
-<script></script></div><title></title><p><p>
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end tag (div). Ignored.
-#document
-| <html>
-|   <head>
-|     <script>
-|     <title>
-|   <body>
-|     <p>
-|     <p>
-
-#data
-<p><hr></p>
-#errors
-Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end tag (p). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <hr>
-|     <p>
-
-#data
-<select><b><option><select><option></b></select>
-#errors
-Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored.
-Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag.
-Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 48 Unexpected end tag (select). Ignored.
-Line: 1 Col: 48 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|     <option>
-
-#data
-<html><head><title></title><body></body></html>
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|   <body>
-
-#data
-<a><table><td><a><table></table><a></tr><a></table><a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing.
-Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode.
-Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase.
-Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a).
-Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm.
-Line: 1 Col: 54 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <a>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <a>
-|                 <table>
-|               <a>
-|     <a>
-
-#data
-<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>
-#errors
-Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE.
-Line: 1 Col: 45 Missing end tag (div, li).
-Line: 1 Col: 58 Missing end tag (address, li).
-Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|       <div>
-|         <li>
-|       <li>
-|       <li>
-|         <div>
-|       <li>
-|         <address>
-|       <li>
-|         <b>
-|           <em>
-|       <li>
-
-#data
-<ul><li><ul></li><li>a</li></ul></li></ul>
-#errors
-XXX: fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         <ul>
-|           <li>
-|             "a"
-
-#data
-<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|     <frame>
-|     <frameset>
-|       <frame>
-|     <noframes>
-
-#data
-<h1><table><td><h3></table><h3></h1>
-#errors
-4: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-15: â€œtdâ€ start tag in table body.
-27: Unclosed elements.
-31: Heading cannot be a child of another heading.
-36: End tag â€œh1â€ seen but there were unclosed elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <h1>
-|       <table>
-|         <tbody>
-|           <tr>
-|             <td>
-|               <h3>
-|     <h3>
-
-#data
-<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|         <col>
-|       <colgroup>
-|         <col>
-|         <col>
-|         <col>
-|       <colgroup>
-|         <col>
-|         <col>
-|       <thead>
-|         <tr>
-|           <td>
-
-#data
-<table><col><tbody><col><tr><col><td><col></table><col>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 55 Unexpected start tag col. Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|         <col>
-|       <tbody>
-|       <colgroup>
-|         <col>
-|       <tbody>
-|         <tr>
-|       <colgroup>
-|         <col>
-|       <tbody>
-|         <tr>
-|           <td>
-|       <colgroup>
-|         <col>
-
-#data
-<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 80 Unexpected start tag colgroup. Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-|       <tbody>
-|       <colgroup>
-|       <tbody>
-|         <tr>
-|       <colgroup>
-|       <tbody>
-|         <tr>
-|           <td>
-|       <colgroup>
-
-#data
-</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
-#errors
-Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element.
-Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element.
-Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element.
-Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element.
-Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element.
-Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element.
-Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element.
-Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element.
-Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element.
-Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element.
-Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element.
-Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element.
-Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element.
-Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element.
-Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element.
-Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element.
-Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element.
-Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element.
-Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element.
-Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element.
-Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element.
-Line: 1 Col: 130 Unexpected end tag (br). Treated as br element.
-Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 140 This element (img) has no end tag.
-Line: 1 Col: 148 Unexpected end tag (title). Ignored.
-Line: 1 Col: 155 Unexpected end tag (span). Ignored.
-Line: 1 Col: 163 Unexpected end tag (style). Ignored.
-Line: 1 Col: 172 Unexpected end tag (script). Ignored.
-Line: 1 Col: 180 Unexpected end tag (table). Ignored.
-Line: 1 Col: 185 Unexpected end tag (th). Ignored.
-Line: 1 Col: 190 Unexpected end tag (td). Ignored.
-Line: 1 Col: 195 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 203 This element (frame) has no end tag.
-Line: 1 Col: 210 This element (area) has no end tag.
-Line: 1 Col: 217 Unexpected end tag (link). Ignored.
-Line: 1 Col: 225 This element (param) has no end tag.
-Line: 1 Col: 230 This element (hr) has no end tag.
-Line: 1 Col: 238 This element (input) has no end tag.
-Line: 1 Col: 244 Unexpected end tag (col). Ignored.
-Line: 1 Col: 251 Unexpected end tag (base). Ignored.
-Line: 1 Col: 258 Unexpected end tag (meta). Ignored.
-Line: 1 Col: 269 This element (basefont) has no end tag.
-Line: 1 Col: 279 This element (bgsound) has no end tag.
-Line: 1 Col: 287 This element (embed) has no end tag.
-Line: 1 Col: 296 This element (spacer) has no end tag.
-Line: 1 Col: 300 Unexpected end tag (p). Ignored.
-Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag.
-Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag.
-Line: 1 Col: 320 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 339 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 355 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag.
-Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag.
-Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag.
-Line: 1 Col: 393 Unexpected end tag (dir). Ignored.
-Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag.
-Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag.
-Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag.
-Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag.
-Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag.
-Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag.
-Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag.
-Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 460 This element (wbr) has no end tag.
-Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag.
-Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag.
-Line: 1 Col: 513 Unexpected end tag (html). Ignored.
-Line: 1 Col: 513 Unexpected end tag (frameset). Ignored.
-Line: 1 Col: 520 Unexpected end tag (head). Ignored.
-Line: 1 Col: 529 Unexpected end tag (iframe). Ignored.
-Line: 1 Col: 537 This element (image) has no end tag.
-Line: 1 Col: 547 This element (isindex) has no end tag.
-Line: 1 Col: 557 Unexpected end tag (noembed). Ignored.
-Line: 1 Col: 568 Unexpected end tag (noframes). Ignored.
-Line: 1 Col: 579 Unexpected end tag (noscript). Ignored.
-Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored.
-Line: 1 Col: 599 Unexpected end tag (option). Ignored.
-Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored.
-Line: 1 Col: 622 Unexpected end tag (textarea). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-|     <p>
-
-#data
-<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode.
-Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode.
-Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode.
-Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode.
-Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode.
-Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode.
-Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode.
-Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode.
-Line: 1 Col: 58 Unexpected end tag (blink). Ignored.
-Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode.
-Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode.
-Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag.
-Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode.
-Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode.
-Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode.
-Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode.
-Line: 1 Col: 99 Unexpected end tag (select). Ignored.
-Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode.
-Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag.
-Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode.
-Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag.
-Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode.
-Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag.
-Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode.
-Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag.
-Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode.
-Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag.
-Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode.
-Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag.
-Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored.
-Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode.
-Line: 1 Col: 141 Unexpected end tag (br). Treated as br element.
-Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode.
-Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode.
-Line: 1 Col: 151 This element (img) has no end tag.
-Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode.
-Line: 1 Col: 159 Unexpected end tag (title). Ignored.
-Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode.
-Line: 1 Col: 166 Unexpected end tag (span). Ignored.
-Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode.
-Line: 1 Col: 174 Unexpected end tag (style). Ignored.
-Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode.
-Line: 1 Col: 183 Unexpected end tag (script). Ignored.
-Line: 1 Col: 196 Unexpected end tag (th). Ignored.
-Line: 1 Col: 201 Unexpected end tag (td). Ignored.
-Line: 1 Col: 206 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 214 This element (frame) has no end tag.
-Line: 1 Col: 221 This element (area) has no end tag.
-Line: 1 Col: 228 Unexpected end tag (link). Ignored.
-Line: 1 Col: 236 This element (param) has no end tag.
-Line: 1 Col: 241 This element (hr) has no end tag.
-Line: 1 Col: 249 This element (input) has no end tag.
-Line: 1 Col: 255 Unexpected end tag (col). Ignored.
-Line: 1 Col: 262 Unexpected end tag (base). Ignored.
-Line: 1 Col: 269 Unexpected end tag (meta). Ignored.
-Line: 1 Col: 280 This element (basefont) has no end tag.
-Line: 1 Col: 290 This element (bgsound) has no end tag.
-Line: 1 Col: 298 This element (embed) has no end tag.
-Line: 1 Col: 307 This element (spacer) has no end tag.
-Line: 1 Col: 311 Unexpected end tag (p). Ignored.
-Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag.
-Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag.
-Line: 1 Col: 331 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 350 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 366 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag.
-Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag.
-Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag.
-Line: 1 Col: 404 Unexpected end tag (dir). Ignored.
-Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag.
-Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag.
-Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag.
-Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag.
-Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag.
-Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag.
-Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag.
-Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm.
-Line: 1 Col: 471 This element (wbr) has no end tag.
-Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag.
-Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag.
-Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag.
-Line: 1 Col: 524 Unexpected end tag (html). Ignored.
-Line: 1 Col: 524 Unexpected end tag (frameset). Ignored.
-Line: 1 Col: 531 Unexpected end tag (head). Ignored.
-Line: 1 Col: 540 Unexpected end tag (iframe). Ignored.
-Line: 1 Col: 548 This element (image) has no end tag.
-Line: 1 Col: 558 This element (isindex) has no end tag.
-Line: 1 Col: 568 Unexpected end tag (noembed). Ignored.
-Line: 1 Col: 579 Unexpected end tag (noframes). Ignored.
-Line: 1 Col: 590 Unexpected end tag (noscript). Ignored.
-Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored.
-Line: 1 Col: 610 Unexpected end tag (option). Ignored.
-Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored.
-Line: 1 Col: 633 Unexpected end tag (textarea). Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-|     <table>
-|       <tbody>
-|         <tr>
-|     <p>
-
-#data
-<frameset>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 1 Col: 10 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests20.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests20.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests20.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests20.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,455 +0,0 @@
-#data
-<!doctype html><p><button><button>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|       <button>
-
-#data
-<!doctype html><p><button><address>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <address>
-
-#data
-<!doctype html><p><button><blockquote>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <blockquote>
-
-#data
-<!doctype html><p><button><menu>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <menu>
-
-#data
-<!doctype html><p><button><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <p>
-
-#data
-<!doctype html><p><button><ul>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <ul>
-
-#data
-<!doctype html><p><button><h1>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <h1>
-
-#data
-<!doctype html><p><button><h6>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <h6>
-
-#data
-<!doctype html><p><button><listing>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <listing>
-
-#data
-<!doctype html><p><button><pre>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <pre>
-
-#data
-<!doctype html><p><button><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <form>
-
-#data
-<!doctype html><p><button><li>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <li>
-
-#data
-<!doctype html><p><button><dd>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <dd>
-
-#data
-<!doctype html><p><button><dt>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <dt>
-
-#data
-<!doctype html><p><button><plaintext>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <plaintext>
-
-#data
-<!doctype html><p><button><table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <table>
-
-#data
-<!doctype html><p><button><hr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <hr>
-
-#data
-<!doctype html><p><button><xmp>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <xmp>
-
-#data
-<!doctype html><p><button></p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <button>
-|         <p>
-
-#data
-<!doctype html><address><button></address>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <address>
-|       <button>
-|     "a"
-
-#data
-<!doctype html><address><button></address>a
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <address>
-|       <button>
-|     "a"
-
-#data
-<p><table></p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <p>
-|       <table>
-
-#data
-<!doctype html><svg>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<!doctype html><p><figcaption>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <figcaption>
-
-#data
-<!doctype html><p><summary>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <summary>
-
-#data
-<!doctype html><form><table><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <table>
-
-#data
-<!doctype html><table><form><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <form>
-
-#data
-<!doctype html><table><form></table><form>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <form>
-
-#data
-<!doctype html><svg><foreignObject><p>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg foreignObject>
-|         <p>
-
-#data
-<!doctype html><svg><title>abc
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         "abc"
-
-#data
-<option><span><option>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <option>
-|       <span>
-|         <option>
-
-#data
-<option><option>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <option>
-|     <option>
-
-#data
-<math><annotation-xml><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|     <div>
-
-#data
-<math><annotation-xml encoding="application/svg+xml"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="application/svg+xml"
-|     <div>
-
-#data
-<math><annotation-xml encoding="application/xhtml+xml"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="application/xhtml+xml"
-|         <div>
-
-#data
-<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="aPPlication/xhtmL+xMl"
-|         <div>
-
-#data
-<math><annotation-xml encoding="text/html"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="text/html"
-|         <div>
-
-#data
-<math><annotation-xml encoding="Text/htmL"><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding="Text/htmL"
-|         <div>
-
-#data
-<math><annotation-xml encoding=" text/html "><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         encoding=" text/html "
-|     <div>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests21.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests21.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests21.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests21.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,221 +0,0 @@
-#data
-<svg><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "foo"
-
-#data
-<math><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       "foo"
-
-#data
-<div><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <!-- [CDATA[foo]] -->
-
-#data
-<svg><![CDATA[foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "foo"
-
-#data
-<svg><![CDATA[foo
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "foo"
-
-#data
-<svg><![CDATA[
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<svg><![CDATA[]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-
-#data
-<svg><![CDATA[]] >]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]] >"
-
-#data
-<svg><![CDATA[]] >]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]] >"
-
-#data
-<svg><![CDATA[]]
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]]"
-
-#data
-<svg><![CDATA[]
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]"
-
-#data
-<svg><![CDATA[]>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "]>a"
-
-#data
-<svg><foreignObject><div><![CDATA[foo]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg foreignObject>
-|         <div>
-|           <!-- [CDATA[foo]] -->
-
-#data
-<svg><![CDATA[<svg>]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-
-#data
-<svg><![CDATA[</svg>a]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "</svg>a"
-
-#data
-<svg><![CDATA[<svg>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>a"
-
-#data
-<svg><![CDATA[</svg>a
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "</svg>a"
-
-#data
-<svg><![CDATA[<svg>]]><path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-|       <svg path>
-
-#data
-<svg><![CDATA[<svg>]]></path>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-
-#data
-<svg><![CDATA[<svg>]]><!--path-->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>"
-|       <!-- path -->
-
-#data
-<svg><![CDATA[<svg>]]>path
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<svg>path"
-
-#data
-<svg><![CDATA[<!--svg-->]]>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       "<!--svg-->"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests22.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests22.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests22.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests22.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,157 +0,0 @@
-#data
-<a><b><big><em><strong><div>X</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|         <big>
-|           <em>
-|             <strong>
-|     <big>
-|       <em>
-|         <strong>
-|           <div>
-|             <a>
-|               "X"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <b>
-|       <div>
-|         id="1"
-|         <a>
-|         <div>
-|           id="2"
-|           <a>
-|           <div>
-|             id="3"
-|             <a>
-|             <div>
-|               id="4"
-|               <a>
-|               <div>
-|                 id="5"
-|                 <a>
-|                 <div>
-|                   id="6"
-|                   <a>
-|                   <div>
-|                     id="7"
-|                     <a>
-|                     <div>
-|                       id="8"
-|                       <a>
-|                         "A"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <b>
-|       <div>
-|         id="1"
-|         <a>
-|         <div>
-|           id="2"
-|           <a>
-|           <div>
-|             id="3"
-|             <a>
-|             <div>
-|               id="4"
-|               <a>
-|               <div>
-|                 id="5"
-|                 <a>
-|                 <div>
-|                   id="6"
-|                   <a>
-|                   <div>
-|                     id="7"
-|                     <a>
-|                     <div>
-|                       id="8"
-|                       <a>
-|                         <div>
-|                           id="9"
-|                           "A"
-
-#data
-<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       <b>
-|     <b>
-|       <div>
-|         id="1"
-|         <a>
-|         <div>
-|           id="2"
-|           <a>
-|           <div>
-|             id="3"
-|             <a>
-|             <div>
-|               id="4"
-|               <a>
-|               <div>
-|                 id="5"
-|                 <a>
-|                 <div>
-|                   id="6"
-|                   <a>
-|                   <div>
-|                     id="7"
-|                     <a>
-|                     <div>
-|                       id="8"
-|                       <a>
-|                         <div>
-|                           id="9"
-|                           <div>
-|                             id="10"
-|                             "A"
-
-#data
-<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST
-#errors
-Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE.
-Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 50 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <cite>
-|       <b>
-|         <cite>
-|           <i>
-|             <cite>
-|               <i>
-|                 <cite>
-|                   <i>
-|       <i>
-|         <i>
-|           <div>
-|             <b>
-|               "X"
-|             "TEST"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests23.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests23.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests23.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests23.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,155 +0,0 @@
-#data
-<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X
-#errors
-3: Start tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-116: Unclosed elements.
-117: End of file seen and there were open elements.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           color="red"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|               <font>
-|                 size="4"
-|                 <font>
-|                   size="4"
-|                   <font>
-|                     size="4"
-|                     <font>
-|                       color="red"
-|     <p>
-|       <font>
-|         color="red"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|               <font>
-|                 color="red"
-|                 "X"
-
-#data
-<p><font size=4><font size=4><font size=4><font size=4><p>X
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             "X"
-
-#data
-<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="5"
-|               <font>
-|                 size="4"
-|     <p>
-|       <font>
-|         size="4"
-|         <font>
-|           size="4"
-|           <font>
-|             size="5"
-|             <font>
-|               size="4"
-|               "X"
-
-#data
-<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <font>
-|         id="a"
-|         size="4"
-|         <font>
-|           id="b"
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|     <p>
-|       <font>
-|         id="a"
-|         size="4"
-|         <font>
-|           id="b"
-|           size="4"
-|           <font>
-|             size="4"
-|             <font>
-|               size="4"
-|               "X"
-
-#data
-<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <b>
-|         id="a"
-|         <b>
-|           id="a"
-|           <b>
-|             id="a"
-|             <b>
-|               <object>
-|                 <b>
-|                   id="a"
-|                   <b>
-|                     id="a"
-|                     "X"
-|     <p>
-|       <b>
-|         id="a"
-|         <b>
-|           id="a"
-|           <b>
-|             id="a"
-|             <b>
-|               "Y"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests24.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests24.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests24.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests24.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,79 +0,0 @@
-#data
-<!DOCTYPE html>&NotEqualTilde;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "â‰‚Ì¸"
-
-#data
-<!DOCTYPE html>&NotEqualTilde;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "â‰‚Ì¸A"
-
-#data
-<!DOCTYPE html>&ThickSpace;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŸâ€Š"
-
-#data
-<!DOCTYPE html>&ThickSpace;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŸâ€ŠA"
-
-#data
-<!DOCTYPE html>&NotSubset;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŠ‚âƒ’"
-
-#data
-<!DOCTYPE html>&NotSubset;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "âŠ‚âƒ’A"
-
-#data
-<!DOCTYPE html>&Gopf;
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "ð”¾"
-
-#data
-<!DOCTYPE html>&Gopf;A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "ð”¾A"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests25.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests25.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests25.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests25.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,219 +0,0 @@
-#data
-<!DOCTYPE html><body><foo>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       "A"
-
-#data
-<!DOCTYPE html><body><area>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <area>
-|     "A"
-
-#data
-<!DOCTYPE html><body><base>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <base>
-|     "A"
-
-#data
-<!DOCTYPE html><body><basefont>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <basefont>
-|     "A"
-
-#data
-<!DOCTYPE html><body><bgsound>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <bgsound>
-|     "A"
-
-#data
-<!DOCTYPE html><body><br>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <br>
-|     "A"
-
-#data
-<!DOCTYPE html><body><col>A
-#errors
-26: Stray start tag â€œcolâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "A"
-
-#data
-<!DOCTYPE html><body><command>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <command>
-|     "A"
-
-#data
-<!DOCTYPE html><body><embed>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <embed>
-|     "A"
-
-#data
-<!DOCTYPE html><body><frame>A
-#errors
-26: Stray start tag â€œframeâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "A"
-
-#data
-<!DOCTYPE html><body><hr>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <hr>
-|     "A"
-
-#data
-<!DOCTYPE html><body><img>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <img>
-|     "A"
-
-#data
-<!DOCTYPE html><body><input>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|     "A"
-
-#data
-<!DOCTYPE html><body><keygen>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <keygen>
-|     "A"
-
-#data
-<!DOCTYPE html><body><link>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <link>
-|     "A"
-
-#data
-<!DOCTYPE html><body><meta>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-|     "A"
-
-#data
-<!DOCTYPE html><body><param>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <param>
-|     "A"
-
-#data
-<!DOCTYPE html><body><source>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <source>
-|     "A"
-
-#data
-<!DOCTYPE html><body><track>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <track>
-|     "A"
-
-#data
-<!DOCTYPE html><body><wbr>A
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <wbr>
-|     "A"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests26.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests26.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests26.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests26.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,313 +0,0 @@
-#data
-<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       href="#1"
-|       <nobr>
-|         "1"
-|       <nobr>
-|     <nobr>
-|       <br>
-|       <a>
-|         href="#2"
-|     <a>
-|       href="#2"
-|       <nobr>
-|         "2"
-|       <nobr>
-|     <nobr>
-|       <br>
-|       <a>
-|         href="#3"
-|     <a>
-|       href="#3"
-|       <nobr>
-|         "3"
-|       <nobr>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|       <nobr>
-|     <nobr>
-|       <i>
-|     <i>
-|       <nobr>
-|         "2"
-|       <nobr>
-|     <nobr>
-|       "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|         <nobr>
-|           <i>
-|         <i>
-|           <nobr>
-|             "2"
-|           <nobr>
-|         <nobr>
-|           "3"
-|         <table>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|         <table>
-|           <tbody>
-|             <tr>
-|               <td>
-|                 <nobr>
-|                   <i>
-|                 <i>
-|                   <nobr>
-|                     "2"
-|                   <nobr>
-|                 <nobr>
-|                   "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|     <div>
-|       <b>
-|         <nobr>
-|         <nobr>
-|       <nobr>
-|         <i>
-|       <i>
-|         <nobr>
-|           "2"
-|         <nobr>
-|       <nobr>
-|         "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|       <nobr>
-|     <div>
-|       <nobr>
-|         <i>
-|       <i>
-|         <nobr>
-|           "2"
-|         <nobr>
-|       <nobr>
-|         "3"
-
-#data
-<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|       <nobr>
-|         <ins>
-|     <nobr>
-|       <i>
-|     <i>
-|       <nobr>
-
-#data
-<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       <nobr>
-|         "1"
-|         <ins>
-|       <nobr>
-|     <nobr>
-|       <i>
-|         "2"
-
-#data
-<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "1"
-|       <nobr>
-|     <nobr>
-|       <i>
-|     <i>
-|       <nobr>
-|         "2"
-
-#data
-<p><code x</code></p>
-
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <code>
-|         code=""
-|         x<=""
-|     <code>
-|       code=""
-|       x<=""
-|       "
-"
-
-#data
-<!DOCTYPE html><svg><foreignObject><p><i></p>a
-#errors
-45: End tag â€œpâ€ seen, but there were open elements.
-41: Unclosed element â€œiâ€.
-46: End of file seen and there were open elements.
-35: Unclosed element â€œforeignObjectâ€.
-20: Unclosed element â€œsvgâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg foreignObject>
-|         <p>
-|           <i>
-|         <i>
-|           "a"
-
-#data
-<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a
-#errors
-56: End tag â€œpâ€ seen, but there were open elements.
-52: Unclosed element â€œiâ€.
-57: End of file seen and there were open elements.
-46: Unclosed element â€œforeignObjectâ€.
-31: Unclosed element â€œsvgâ€.
-22: Unclosed element â€œtableâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg foreignObject>
-|                 <p>
-|                   <i>
-|                 <i>
-|                   "a"
-
-#data
-<!DOCTYPE html><math><mtext><p><i></p>a
-#errors
-38: End tag â€œpâ€ seen, but there were open elements.
-34: Unclosed element â€œiâ€.
-39: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mtext>
-|         <p>
-|           <i>
-|         <i>
-|           "a"
-
-#data
-<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a
-#errors
-53: End tag â€œpâ€ seen, but there were open elements.
-49: Unclosed element â€œiâ€.
-54: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <math math>
-|               <math mtext>
-|                 <p>
-|                   <i>
-|                 <i>
-|                   "a"
-
-#data
-<!DOCTYPE html><body><div><!/div>a
-#errors
-29: Bogus comment.
-34: End of file seen and there were open elements.
-26: Unclosed element â€œdivâ€.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <!-- /div -->
-|       "a"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests2.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests2.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests2.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests2.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,763 +0,0 @@
-#data
-<!DOCTYPE html>Test
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "Test"
-
-#data
-<textarea>test</div>test
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-Line: 1 Col: 24 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "test</div>test"
-
-#data
-<table><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 11 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><td>test</tbody></table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "test"
-
-#data
-<frame>test
-#errors
-Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE.
-Line: 1 Col: 7 Unexpected start tag frame. Ignored.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "test"
-
-#data
-<!DOCTYPE html><frameset>test
-#errors
-Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored.
-Line: 1 Col: 29 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><frameset><!DOCTYPE html>
-#errors
-Line: 1 Col: 40 Unexpected DOCTYPE. Ignored.
-Line: 1 Col: 40 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><font><p><b>test</font>
-#errors
-Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|     <p>
-|       <font>
-|         <b>
-|           "test"
-
-#data
-<!DOCTYPE html><dt><div><dd>
-#errors
-Line: 1 Col: 28 Missing end tag (div, dt).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <dt>
-|       <div>
-|     <dd>
-
-#data
-<script></x
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-Line: 1 Col: 11 Unexpected end of file. Expected end tag (script).
-#document
-| <html>
-|   <head>
-|     <script>
-|       "</x"
-|   <body>
-
-#data
-<table><plaintext><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode.
-Line: 1 Col: 22 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "<td>"
-|     <table>
-
-#data
-<plaintext></plaintext>
-#errors
-Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE.
-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <plaintext>
-|       "</plaintext>"
-
-#data
-<!DOCTYPE html><table><tr>TEST
-#errors
-Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 30 Unexpected end of file. Expected table content.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "TEST"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>
-#errors
-Line: 1 Col: 37 Unexpected start tag (body).
-Line: 1 Col: 53 Unexpected start tag (body).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     t1="1"
-|     t2="2"
-|     t3="3"
-|     t4="4"
-
-#data
-</b test
-#errors
-Line: 1 Col: 8 Unexpected end of file in attribute name.
-Line: 1 Col: 8 End tag contains unexpected attributes.
-Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE.
-Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html></b test<b &=&amp>X
-#errors
-Line: 1 Col: 32 Named entity didn't end with ';'.
-Line: 1 Col: 33 End tag contains unexpected attributes.
-Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-
-#data
-<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-Line: 1 Col: 54 Unexpected end of file in the tag name.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       type="text/x-foobar;baz"
-|       "X</SCRipt"
-|   <body>
-
-#data
-&
-#errors
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&"
-
-#data
-&#
-#errors
-Line: 1 Col: 1 Numeric entity expected. Got end of file instead.
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&#"
-
-#data
-&#X
-#errors
-Line: 1 Col: 3 Numeric entity expected but none found.
-Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&#X"
-
-#data
-&#x
-#errors
-Line: 1 Col: 3 Numeric entity expected but none found.
-Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&#x"
-
-#data
-&#45
-#errors
-Line: 1 Col: 4 Numeric entity didn't end with ';'.
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "-"
-
-#data
-&x-test
-#errors
-Line: 1 Col: 1 Named entity expected. Got none.
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&x-test"
-
-#data
-<!doctypehtml><p><li>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <li>
-
-#data
-<!doctypehtml><p><dt>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <dt>
-
-#data
-<!doctypehtml><p><dd>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <dd>
-
-#data
-<!doctypehtml><p><form>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <form>
-
-#data
-<!DOCTYPE html><p></P>X
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     "X"
-
-#data
-&AMP
-#errors
-Line: 1 Col: 4 Named entity didn't end with ';'.
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&"
-
-#data
-&AMp;
-#errors
-Line: 1 Col: 1 Named entity expected. Got none.
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "&AMp;"
-
-#data
-<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>
-#errors
-Line: 1 Col: 110 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>
-
-#data
-<!DOCTYPE html>X</body>X
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "XX"
-
-#data
-<!DOCTYPE html><!-- X
-#errors
-Line: 1 Col: 21 Unexpected end of file in comment.
-#document
-| <!DOCTYPE html>
-| <!--  X -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><table><caption>test TEST</caption><td>test
-#errors
-Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 58 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         "test TEST"
-|       <tbody>
-|         <tr>
-|           <td>
-|             "test"
-
-#data
-<!DOCTYPE html><select><option><optgroup>
-#errors
-Line: 1 Col: 41 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|       <optgroup>
-
-#data
-<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>
-#errors
-Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag.
-Line: 1 Col: 76 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <optgroup>
-|         <option>
-|       <option>
-|     <option>
-
-#data
-<!DOCTYPE html><select><optgroup><option><optgroup>
-#errors
-Line: 1 Col: 51 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <optgroup>
-|         <option>
-|       <optgroup>
-
-#data
-<!DOCTYPE html><datalist><option>foo</datalist>bar
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <datalist>
-|       <option>
-|         "foo"
-|     "bar"
-
-#data
-<!DOCTYPE html><font><input><input></font>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <input>
-|       <input>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX -->
-#errors
-#document
-| <!DOCTYPE html>
-| <!--  XXX - XXX  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX
-#errors
-Line: 1 Col: 29 Unexpected end of file in comment (-)
-#document
-| <!DOCTYPE html>
-| <!--  XXX - XXX -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><!-- XXX - XXX - XXX -->
-#errors
-#document
-| <!DOCTYPE html>
-| <!--  XXX - XXX - XXX  -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<isindex test=x name=x>
-#errors
-Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected start tag isindex. Don't use it!
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <hr>
-|       <label>
-|         "This is a searchable index. Enter search keywords: "
-|         <input>
-|           name="isindex"
-|           test="x"
-|       <hr>
-
-#data
-test
-test
-#errors
-Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "test
-test"
-
-#data
-<!DOCTYPE html><body><title>test</body></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "test</body>"
-
-#data
-<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>
-x { content:"</style" } </style>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-|     <meta>
-|       name="z"
-|     <link>
-|       rel="foo"
-|     <style>
-|       "
-x { content:"</style" } "
-
-#data
-<!DOCTYPE html><select><optgroup></optgroup></select>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <optgroup>
-
-#data
- 
- 
-#errors
-Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html>  <html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><script>
-</script>  <title>x</title>  </head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <script>
-|       "
-"
-|     "  "
-|     <title>
-|       "x"
-|     "  "
-|   <body>
-
-#data
-<!DOCTYPE html><html><body><html id=x>
-#errors
-Line: 1 Col: 38 html needs to be the first start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   id="x"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html>X</body><html id="x">
-#errors
-Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase.
-Line: 1 Col: 36 html needs to be the first start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   id="x"
-|   <head>
-|   <body>
-|     "X"
-
-#data
-<!DOCTYPE html><head><html id=x>
-#errors
-Line: 1 Col: 32 html needs to be the first start tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   id="x"
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html>X</html>X
-#errors
-Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "XX"
-
-#data
-<!DOCTYPE html>X</html> 
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X "
-
-#data
-<!DOCTYPE html>X</html><p>X
-#errors
-Line: 1 Col: 26 Unexpected start tag (p).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <p>
-|       "X"
-
-#data
-<!DOCTYPE html>X<p/x/y/z>
-#errors
-Line: 1 Col: 19 Expected a > after the /.
-Line: 1 Col: 21 Solidus (/) incorrectly placed in tag.
-Line: 1 Col: 23 Solidus (/) incorrectly placed in tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <p>
-|       x=""
-|       y=""
-|       z=""
-
-#data
-<!DOCTYPE html><!--x--
-#errors
-Line: 1 Col: 22 Unexpected end of file in comment (--).
-#document
-| <!DOCTYPE html>
-| <!-- x -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE html><table><tr><td></p></table>
-#errors
-Line: 1 Col: 34 Unexpected end tag (p). Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <p>
-
-#data
-<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->
-#errors
-Line: 1 Col: 20 Expected space or '>'. Got ''
-Line: 1 Col: 25 Erroneous DOCTYPE.
-Line: 1 Col: 35 Unexpected character in comment found.
-#document
-| <!DOCTYPE <!doctype>
-| <html>
-|   <head>
-|   <body>
-|     ">"
-|     <!-- <!--x -->
-|     "-->"
-
-#data
-<!doctype html><div><form></form><div></div></div>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <form>
-|       <div>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests3.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests3.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests3.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests3.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,305 +0,0 @@
-#data
-<head></head><style></style>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <style>
-|   <body>
-
-#data
-<head></head><script></script>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <script>
-|   <body>
-
-#data
-<head></head><!-- --><style></style><!-- --><script></script>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved.
-#document
-| <html>
-|   <head>
-|     <style>
-|     <script>
-|   <!--   -->
-|   <!--   -->
-|   <body>
-
-#data
-<head></head><!-- -->x<style></style><!-- --><script></script>
-#errors
-Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <!--   -->
-|   <body>
-|     "x"
-|     <style>
-|     <!--   -->
-|     <script>
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-foo</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-
-foo</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "
-foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>
-foo
-</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "foo
-"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x</pre><span>
-</span></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "x"
-|     <span>
-|       "
-"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x
-y</pre></body></html>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "x
-y"
-
-#data
-<!DOCTYPE html><html><head></head><body><pre>x<div>
-y</pre></body></html>
-#errors
-Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "x"
-|       <div>
-|         "
-y"
-
-#data
-<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <pre>
-|       "
-A"
-
-#data
-<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>
-#errors
-Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <meta>
-|   <body>
-
-#data
-<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>
-#errors
-Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<textarea>foo<span>bar</span><i>baz
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-Line: 1 Col: 35 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "foo<span>bar</span><i>baz"
-
-#data
-<title>foo<span>bar</em><i>baz
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 30 Unexpected end of file. Expected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "foo<span>bar</em><i>baz"
-|   <body>
-
-#data
-<!DOCTYPE html><textarea>
-</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-
-#data
-<!DOCTYPE html><textarea>
-foo</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "foo"
-
-#data
-<!DOCTYPE html><textarea>
-
-foo</textarea>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       "
-foo"
-
-#data
-<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>
-#errors
-Line: 1 Col: 60 Missing end tag (div, li).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         <div>
-|           <p>
-|       <li>
-
-#data
-<!doctype html><nobr><nobr><nobr>
-#errors
-Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
-Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr).
-Line: 1 Col: 33 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <nobr>
-|     <nobr>
-|     <nobr>
-
-#data
-<!doctype html><nobr><nobr></nobr><nobr>
-#errors
-Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr).
-Line: 1 Col: 40 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <nobr>
-|     <nobr>
-|     <nobr>
-
-#data
-<!doctype html><html><body><p><table></table></body></html>
-#errors
-Not known
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <table>
-
-#data
-<p><table></table>
-#errors
-Not known
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <table>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests4.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests4.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests4.dat	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests4.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,59 +0,0 @@
-#data
-direct div content
-#errors
-#document-fragment
-div
-#document
-| "direct div content"
-
-#data
-direct textarea content
-#errors
-#document-fragment
-textarea
-#document
-| "direct textarea content"
-
-#data
-textarea content with <em>pseudo</em> <foo>markup
-#errors
-#document-fragment
-textarea
-#document
-| "textarea content with <em>pseudo</em> <foo>markup"
-
-#data
-this is &#x0043;DATA inside a <style> element
-#errors
-#document-fragment
-style
-#document
-| "this is &#x0043;DATA inside a <style> element"
-
-#data
-</plaintext>
-#errors
-#document-fragment
-plaintext
-#document
-| "</plaintext>"
-
-#data
-setting html's innerHTML
-#errors
-Line: 1 Col: 24 Unexpected EOF in inner html mode.
-#document-fragment
-html
-#document
-| <head>
-| <body>
-|   "setting html's innerHTML"
-
-#data
-<title>setting head's innerHTML</title>
-#errors
-#document-fragment
-head
-#document
-| <title>
-|   "setting head's innerHTML"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests5.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests5.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests5.dat	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests5.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,191 +0,0 @@
-#data
-<style> <!-- </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end of file. Expected end tag (style).
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!-- "
-|   <body>
-|     "x"
-
-#data
-<style> <!-- </style> --> </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!-- "
-|     " "
-|   <body>
-|     "--> x"
-
-#data
-<style> <!--> </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!--> "
-|   <body>
-|     "x"
-
-#data
-<style> <!---> </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!---> "
-|   <body>
-|     "x"
-
-#data
-<iframe> <!---> </iframe>x
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       " <!---> "
-|     "x"
-
-#data
-<iframe> <!--- </iframe>->x</iframe> --> </iframe>x
-#errors
-Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <iframe>
-|       " <!--- "
-|     "->x --> x"
-
-#data
-<script> <!-- </script> --> </script>x
-#errors
-Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <script>
-|       " <!-- "
-|     " "
-|   <body>
-|     "--> x"
-
-#data
-<title> <!-- </title> --> </title>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       " <!-- "
-|     " "
-|   <body>
-|     "--> x"
-
-#data
-<textarea> <!--- </textarea>->x</textarea> --> </textarea>x
-#errors
-Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <textarea>
-|       " <!--- "
-|     "->x --> x"
-
-#data
-<style> <!</-- </style>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <style>
-|       " <!</-- "
-|   <body>
-|     "x"
-
-#data
-<p><xmp></xmp>
-#errors
-XXX: Unknown
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|     <xmp>
-
-#data
-<xmp> <!-- > --> </xmp>
-#errors
-Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <xmp>
-|       " <!-- > --> "
-
-#data
-<title>&amp;</title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "&"
-|   <body>
-
-#data
-<title><!--&amp;--></title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<!--&-->"
-|   <body>
-
-#data
-<title><!--</title>
-#errors
-Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
-Line: 1 Col: 19 Unexpected end of file. Expected end tag (title).
-#document
-| <html>
-|   <head>
-|     <title>
-|       "<!--"
-|   <body>
-
-#data
-<noscript><!--</noscript>--></noscript>
-#errors
-Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|     <noscript>
-|       "<!--"
-|   <body>
-|     "-->"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests6.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests6.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests6.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests6.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,663 +0,0 @@
-#data
-<!doctype html></head> <head>
-#errors
-Line: 1 Col: 29 Unexpected start tag head. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   " "
-|   <body>
-
-#data
-<!doctype html><form><div></form><div>
-#errors
-33: End tag "form" seen but there were unclosed elements.
-38: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <form>
-|       <div>
-|         <div>
-
-#data
-<!doctype html><title>&amp;</title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "&"
-|   <body>
-
-#data
-<!doctype html><title><!--&amp;--></title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "<!--&-->"
-|   <body>
-
-#data
-<!doctype>
-#errors
-Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
-Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name.
-Line: 1 Col: 10 Erroneous DOCTYPE.
-#document
-| <!DOCTYPE >
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!---x
-#errors
-Line: 1 Col: 6 Unexpected end of file in comment.
-Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE.
-#document
-| <!-- -x -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body>
-<div>
-#errors
-Line: 1 Col: 6 Unexpected start tag (body).
-Line: 2 Col: 5 Expected closing tag. Unexpected end of file.
-#document-fragment
-div
-#document
-| "
-"
-| <div>
-
-#data
-<frameset></frameset>
-foo
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<frameset></frameset>
-<noframes>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 10 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-|   <noframes>
-
-#data
-<frameset></frameset>
-<div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<frameset></frameset>
-</html>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<frameset></frameset>
-</div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   "
-"
-
-#data
-<form><form>
-#errors
-Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected start tag (form).
-Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <form>
-
-#data
-<button><button>
-#errors
-Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button).
-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <button>
-|     <button>
-
-#data
-<table><tr><td></th>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (th). Ignored.
-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><caption><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (td). Ignored.
-Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase.
-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><caption><div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 21 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <div>
-
-#data
-</caption><div>
-#errors
-Line: 1 Col: 10 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document-fragment
-caption
-#document
-| <div>
-
-#data
-<table><caption><div></caption>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div).
-Line: 1 Col: 31 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <div>
-
-#data
-<table><caption></table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-
-#data
-</table><div>
-#errors
-Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption.
-Line: 1 Col: 8 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 13 Expected closing tag. Unexpected end of file.
-#document-fragment
-caption
-#document
-| <div>
-
-#data
-<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 23 Unexpected end tag (body). Ignored.
-Line: 1 Col: 29 Unexpected end tag (col). Ignored.
-Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 47 Unexpected end tag (html). Ignored.
-Line: 1 Col: 55 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 60 Unexpected end tag (td). Ignored.
-Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 73 Unexpected end tag (th). Ignored.
-Line: 1 Col: 81 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 86 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 86 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-
-#data
-<table><caption><div></div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 27 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <div>
-
-#data
-<table><tr><td></body></caption></col></colgroup></html>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end tag (body). Ignored.
-Line: 1 Col: 32 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 38 Unexpected end tag (col). Ignored.
-Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 56 Unexpected end tag (html). Ignored.
-Line: 1 Col: 56 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-</table></tbody></tfoot></thead></tr><div>
-#errors
-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
-Line: 1 Col: 16 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 32 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 37 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 42 Expected closing tag. Unexpected end of file.
-#document-fragment
-td
-#document
-| <div>
-
-#data
-<table><colgroup>foo
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 20 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "foo"
-|     <table>
-|       <colgroup>
-
-#data
-foo<col>
-#errors
-Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored.
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<table><colgroup></col>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 23 This element (col) has no end tag.
-Line: 1 Col: 23 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <colgroup>
-
-#data
-<frameset><div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</frameset><frame>
-#errors
-Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML).
-#document-fragment
-frameset
-#document
-| <frame>
-
-#data
-<frameset></div>
-#errors
-Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored.
-Line: 1 Col: 16 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</body><div>
-#errors
-Line: 1 Col: 7 Unexpected end tag (body). Ignored.
-Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
-#document-fragment
-body
-#document
-| <div>
-
-#data
-<table><tr><div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 16 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-</tr><td>
-#errors
-Line: 1 Col: 5 Unexpected end tag (tr). Ignored.
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-</tbody></tfoot></thead><td>
-#errors
-Line: 1 Col: 8 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 24 Unexpected end tag (thead). Ignored.
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<table><tr><div><td>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase.
-Line: 1 Col: 20 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<caption><col><colgroup><tbody><tfoot><thead><tr>
-#errors
-Line: 1 Col: 9 Unexpected start tag (caption).
-Line: 1 Col: 14 Unexpected start tag (col).
-Line: 1 Col: 24 Unexpected start tag (colgroup).
-Line: 1 Col: 31 Unexpected start tag (tbody).
-Line: 1 Col: 38 Unexpected start tag (tfoot).
-Line: 1 Col: 45 Unexpected start tag (thead).
-Line: 1 Col: 49 Unexpected end of file. Expected table content.
-#document-fragment
-tbody
-#document
-| <tr>
-
-#data
-<table><tbody></thead>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored.
-Line: 1 Col: 22 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-
-#data
-</table><tr>
-#errors
-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
-Line: 1 Col: 12 Unexpected end of file. Expected table content.
-#document-fragment
-tbody
-#document
-| <tr>
-
-#data
-<table><tbody></body></caption></col></colgroup></html></td></th></tr>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored.
-Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored.
-Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored.
-Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored.
-Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored.
-Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored.
-Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored.
-Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored.
-Line: 1 Col: 70 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-
-#data
-<table><tbody></div>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode.
-Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag.
-Line: 1 Col: 20 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-
-#data
-<table><table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table).
-Line: 1 Col: 14 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|     <table>
-
-#data
-<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 14 Unexpected end tag (body). Ignored.
-Line: 1 Col: 24 Unexpected end tag (caption). Ignored.
-Line: 1 Col: 30 Unexpected end tag (col). Ignored.
-Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored.
-Line: 1 Col: 48 Unexpected end tag (html). Ignored.
-Line: 1 Col: 56 Unexpected end tag (tbody). Ignored.
-Line: 1 Col: 61 Unexpected end tag (td). Ignored.
-Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored.
-Line: 1 Col: 74 Unexpected end tag (th). Ignored.
-Line: 1 Col: 82 Unexpected end tag (thead). Ignored.
-Line: 1 Col: 87 Unexpected end tag (tr). Ignored.
-Line: 1 Col: 87 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-
-#data
-</table><tr>
-#errors
-Line: 1 Col: 8 Unexpected end tag (table). Ignored.
-Line: 1 Col: 12 Unexpected end of file. Expected table content.
-#document-fragment
-table
-#document
-| <tbody>
-|   <tr>
-
-#data
-<body></body></html>
-#errors
-Line: 1 Col: 20 Unexpected html end tag in inner html mode.
-Line: 1 Col: 20 Unexpected EOF in inner html mode.
-#document-fragment
-html
-#document
-| <head>
-| <body>
-
-#data
-<html><frameset></frameset></html> 
-#errors
-Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <frameset>
-|   " "
-
-#data
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html>
-#errors
-Line: 1 Col: 50 Erroneous DOCTYPE.
-Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "">
-| <html>
-|   <head>
-|   <body>
-
-#data
-<param><frameset></frameset>
-#errors
-Line: 1 Col: 7 Unexpected start tag (param). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected start tag (frameset).
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<source><frameset></frameset>
-#errors
-Line: 1 Col: 7 Unexpected start tag (source). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected start tag (frameset).
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<track><frameset></frameset>
-#errors
-Line: 1 Col: 7 Unexpected start tag (track). Expected DOCTYPE.
-Line: 1 Col: 17 Unexpected start tag (frameset).
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</html><frameset></frameset>
-#errors
-7: End tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-17: Stray â€œframesetâ€ start tag.
-17: â€œframesetâ€ start tag seen.
-#document
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-</body><frameset></frameset>
-#errors
-7: End tag seen without seeing a doctype first. Expected â€œ<!DOCTYPE html>â€.
-17: Stray â€œframesetâ€ start tag.
-17: â€œframesetâ€ start tag seen.
-#document
-| <html>
-|   <head>
-|   <frameset>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests7.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests7.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests7.dat	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests7.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,390 +0,0 @@
-#data
-<!doctype html><body><title>X</title>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-
-#data
-<!doctype html><table><title>X</title></table>
-#errors
-Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode.
-Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <title>
-|       "X"
-|     <table>
-
-#data
-<!doctype html><head></head><title>X</title>
-#errors
-Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "X"
-|   <body>
-
-#data
-<!doctype html></head><title>X</title>
-#errors
-Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|     <title>
-|       "X"
-|   <body>
-
-#data
-<!doctype html><table><meta></table>
-#errors
-Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <meta>
-|     <table>
-
-#data
-<!doctype html><table>X<tr><td><table> <meta></table></table>
-#errors
-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <meta>
-|             <table>
-|               " "
-
-#data
-<!doctype html><html> <head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!doctype html> <head>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!doctype html><table><style> <tr>x </style> </table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <style>
-|         " <tr>x "
-|       " "
-
-#data
-<!doctype html><table><TBODY><script> <tr>x </script> </table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <script>
-|           " <tr>x "
-|         " "
-
-#data
-<!doctype html><p><applet><p>X</p></applet>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <applet>
-|         <p>
-|           "X"
-
-#data
-<!doctype html><listing>
-X</listing>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <listing>
-|       "X"
-
-#data
-<!doctype html><select><input>X
-#errors
-Line: 1 Col: 30 Unexpected input start tag in the select phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <input>
-|     "X"
-
-#data
-<!doctype html><select><select>X
-#errors
-Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     "X"
-
-#data
-<!doctype html><table><input type=hidDEN></table>
-#errors
-Line: 1 Col: 41 Unexpected input with type hidden in table context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table>X<input type=hidDEN></table>
-#errors
-Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     "X"
-|     <table>
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table>  <input type=hidDEN></table>
-#errors
-Line: 1 Col: 43 Unexpected input with type hidden in table context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "  "
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table>  <input type='hidDEN'></table>
-#errors
-Line: 1 Col: 45 Unexpected input with type hidden in table context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       "  "
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table><input type=" hidden"><input type=hidDEN></table>
-#errors
-Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|       type=" hidden"
-|     <table>
-|       <input>
-|         type="hidDEN"
-
-#data
-<!doctype html><table><select>X<tr>
-#errors
-Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode.
-Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase.
-Line: 1 Col: 35 Unexpected end of file. Expected table content.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "X"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!doctype html><select>X</select>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "X"
-
-#data
-<!DOCTYPE hTmL><html></html>
-#errors
-Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<!DOCTYPE HTML><html></html>
-#errors
-Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-
-#data
-<body>X</body></body>
-#errors
-Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase.
-Line: 1 Col: 21 Unexpected EOF in inner html mode.
-#document-fragment
-html
-#document
-| <head>
-| <body>
-|   "X"
-
-#data
-<div><p>a</x> b
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 13 Unexpected end tag (x). Ignored.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <p>
-|         "a b"
-
-#data
-<table><tr><td><code></code> </table>
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <code>
-|             " "
-
-#data
-<table><b><tr><td>aaa</td></tr>bbb</table>ccc
-#errors
-XXX: Fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <b>
-|       "bbb"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "aaa"
-|     <b>
-|       "ccc"
-
-#data
-A<table><tr> B</tr> B</table>
-#errors
-XXX: Fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     "A B B"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-A<table><tr> B</tr> </em>C</table>
-#errors
-XXX: Fix me
-#document
-| <html>
-|   <head>
-|   <body>
-|     "A BC"
-|     <table>
-|       <tbody>
-|         <tr>
-|         " "
-
-#data
-<select><keygen>
-#errors
-Not known
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|     <keygen>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests8.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests8.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests8.dat	2010-08-26 18:31:13.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests8.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,148 +0,0 @@
-#data
-<div>
-<div></div>
-</span>x
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 3 Col: 7 Unexpected end tag (span). Ignored.
-Line: 3 Col: 8 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "
-"
-|       <div>
-|       "
-x"
-
-#data
-<div>x<div></div>
-</span>x
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 2 Col: 7 Unexpected end tag (span). Ignored.
-Line: 2 Col: 8 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "
-x"
-
-#data
-<div>x<div></div>x</span>x
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected end tag (span). Ignored.
-Line: 1 Col: 26 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "xx"
-
-#data
-<div>x<div></div>y</span>z
-#errors
-Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE.
-Line: 1 Col: 25 Unexpected end tag (span). Ignored.
-Line: 1 Col: 26 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "yz"
-
-#data
-<table><div>x<div></div>x</span>x
-#errors
-Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE.
-Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode.
-Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode.
-Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode.
-Line: 1 Col: 32 Unexpected end tag (span). Ignored.
-Line: 1 Col: 33 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "x"
-|       <div>
-|       "xx"
-|     <table>
-
-#data
-x<table>x
-#errors
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 9 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "xx"
-|     <table>
-
-#data
-x<table><table>x
-#errors
-Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
-Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table).
-Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode.
-Line: 1 Col: 16 Unexpected end of file. Expected table content.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <table>
-|     "x"
-|     <table>
-
-#data
-<b>a<div></div><div></b>y
-#errors
-Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE.
-Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 25 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|       "a"
-|       <div>
-|     <div>
-|       <b>
-|       "y"
-
-#data
-<a><div><p></a>
-#errors
-Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE.
-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm.
-Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <div>
-|       <a>
-|       <p>
-|         <a>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests9.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests9.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests9.dat	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests9.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,457 +0,0 @@
-#data
-<!DOCTYPE html><math></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-
-#data
-<!DOCTYPE html><body><math></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-
-#data
-<!DOCTYPE html><math><mi>
-#errors
-25: End of file in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-
-#data
-<!DOCTYPE html><math><annotation-xml><svg><u>
-#errors
-45: HTML start tag â€œuâ€ in a foreign namespace context.
-45: End of file seen and there were open elements.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math annotation-xml>
-|         <svg svg>
-|     <u>
-
-#data
-<!DOCTYPE html><body><select><math></math></select>
-#errors
-Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-
-#data
-<!DOCTYPE html><body><select><option><math></math></option></select>
-#errors
-Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-
-#data
-<!DOCTYPE html><body><table><math></math></table>
-#errors
-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>
-#errors
-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>
-#errors
-Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <table>
-
-#data
-<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>
-#errors
-Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <table>
-|       <tbody>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>
-#errors
-Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <math math>
-|               <math mi>
-|                 "foo"
-|               <math mi>
-|                 "bar"
-
-#data
-<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <math math>
-|               <math mi>
-|                 "foo"
-|               <math mi>
-|                 "bar"
-|             <p>
-|               "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <math math>
-|           <math mi>
-|             "foo"
-|           <math mi>
-|             "bar"
-|         <p>
-|           "baz"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context.
-Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <math math>
-|           <math mi>
-|             "foo"
-|           <math mi>
-|             "bar"
-|         <p>
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux
-#errors
-Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption.
-Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math).
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <caption>
-|         <math math>
-|           <math mi>
-|             "foo"
-|           <math mi>
-|             "bar"
-|           "baz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode.
-Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode.
-Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context.
-Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <p>
-|       "baz"
-|     <table>
-|       <colgroup>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored.
-Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <select>
-|               "foobarbaz"
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
-#errors
-Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode.
-Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored.
-Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored.
-Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored.
-Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored.
-Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       "foobarbaz"
-|     <table>
-|     <p>
-|       "quux"
-
-#data
-<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz
-#errors
-Line: 1 Col: 41 Unexpected start tag (math).
-Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz
-#errors
-Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase.
-Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mi>
-|         "foo"
-|       <math mi>
-|         "bar"
-|     <p>
-|       "baz"
-
-#data
-<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>
-#errors
-Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored.
-Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored.
-Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored.
-Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored.
-Line: 1 Col: 58 Expected closing tag. Unexpected end of file.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>
-#errors
-Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored.
-Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored.
-Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored.
-Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored.
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     <math math>
-|       xlink href="foo"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <math math>
-|       <math mi>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <math math>
-|       <math mi>
-|         xlink href="foo"
-|         xml lang="en"
-
-#data
-<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     xlink:href="foo"
-|     xml:lang="en"
-|     <math math>
-|       <math mi>
-|         xlink href="foo"
-|         xml lang="en"
-|       "bar"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tests_innerHTML_1.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,741 +0,0 @@
-#data
-<body><span>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><body>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><body>
-#errors
-#document-fragment
-div
-#document
-| <span>
-
-#data
-<body><span>
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
-|   <span>
-
-#data
-<frameset><span>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><frameset>
-#errors
-#document-fragment
-body
-#document
-| <span>
-
-#data
-<span><frameset>
-#errors
-#document-fragment
-div
-#document
-| <span>
-
-#data
-<frameset><span>
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <frameset>
-
-#data
-<table><tr>
-#errors
-#document-fragment
-table
-#document
-| <tbody>
-|   <tr>
-
-#data
-</table><tr>
-#errors
-#document-fragment
-table
-#document
-| <tbody>
-|   <tr>
-
-#data
-<a>
-#errors
-#document-fragment
-table
-#document
-| <a>
-
-#data
-<a>
-#errors
-#document-fragment
-table
-#document
-| <a>
-
-#data
-<a><caption>a
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <caption>
-|   "a"
-
-#data
-<a><colgroup><col>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <colgroup>
-|   <col>
-
-#data
-<a><tbody><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-
-#data
-<a><tfoot><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tfoot>
-|   <tr>
-
-#data
-<a><thead><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <thead>
-|   <tr>
-
-#data
-<a><tr>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-
-#data
-<a><th>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-|     <th>
-
-#data
-<a><td>
-#errors
-#document-fragment
-table
-#document
-| <a>
-| <tbody>
-|   <tr>
-|     <td>
-
-#data
-<table></table><tbody>
-#errors
-#document-fragment
-caption
-#document
-| <table>
-
-#data
-</table><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-<span></table>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-</caption><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-
-#data
-<span></caption><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><caption><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><col><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><colgroup><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><html><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><tbody><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><td><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><tfoot><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><thead><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><th><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span><tr><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-<span></table><span>
-#errors
-#document-fragment
-caption
-#document
-| <span>
-|   <span>
-
-#data
-</colgroup><col>
-#errors
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<a><col>
-#errors
-#document-fragment
-colgroup
-#document
-| <col>
-
-#data
-<caption><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<col><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<colgroup><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<tbody><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<tfoot><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<thead><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-</table><a>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-
-#data
-<a><tr>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-
-#data
-<a><td>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-|   <td>
-
-#data
-<a><td>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-|   <td>
-
-#data
-<a><td>
-#errors
-#document-fragment
-tbody
-#document
-| <a>
-| <tr>
-|   <td>
-
-#data
-<td><table><tbody><a><tr>
-#errors
-#document-fragment
-tbody
-#document
-| <tr>
-|   <td>
-|     <a>
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-</tr><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<td><table><a><tr></tr><tr>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-|   <a>
-|   <table>
-|     <tbody>
-|       <tr>
-|       <tr>
-
-#data
-<caption><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<col><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<colgroup><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tbody><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tfoot><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<thead><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<tr><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-</table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-
-#data
-<td><table></table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-|   <table>
-| <td>
-
-#data
-<td><table></table><td>
-#errors
-#document-fragment
-tr
-#document
-| <td>
-|   <table>
-| <td>
-
-#data
-<caption><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<col><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<colgroup><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tbody><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tfoot><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<th><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<thead><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<tr><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</table><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tbody><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</td><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tfoot><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</thead><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</th><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-</tr><a>
-#errors
-#document-fragment
-td
-#document
-| <a>
-
-#data
-<table><td><td>
-#errors
-#document-fragment
-td
-#document
-| <table>
-|   <tbody>
-|     <tr>
-|       <td>
-|       <td>
-
-#data
-</select><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<input><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<keygen><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-<textarea><option>
-#errors
-#document-fragment
-select
-#document
-| <option>
-
-#data
-</html><!--abc-->
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
-| <!-- abc -->
-
-#data
-</frameset><frame>
-#errors
-#document-fragment
-frameset
-#document
-| <frame>
-
-#data
-#errors
-#document-fragment
-html
-#document
-| <head>
-| <body>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tricky01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tricky01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/tricky01.dat	2011-09-21 23:02:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/tricky01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,261 +0,0 @@
-#data
-<b><p>Bold </b> Not bold</p>
-Also not bold.
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <b>
-|     <p>
-|       <b>
-|         "Bold "
-|       " Not bold"
-|     "
-Also not bold."
-
-#data
-<html>
-<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain
-<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>
-<p>Italic and red. </i> Red.</font> I should not be red.</p>
-<b>Bold <i>Bold and italic</b> Only Italic </i> Plain
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       color="red"
-|       <i>
-|         "Italic and Red"
-|     <i>
-|       <p>
-|         <font>
-|           color="red"
-|           "Italic and Red "
-|         " Just italic."
-|       " Italic only."
-|     " Plain
-"
-|     <p>
-|       "I should not be red. "
-|       <font>
-|         color="red"
-|         "Red. "
-|         <i>
-|           "Italic and red."
-|     <font>
-|       color="red"
-|       <i>
-|         "
-"
-|     <p>
-|       <font>
-|         color="red"
-|         <i>
-|           "Italic and red. "
-|         " Red."
-|       " I should not be red."
-|     "
-"
-|     <b>
-|       "Bold "
-|       <i>
-|         "Bold and italic"
-|     <i>
-|       " Only Italic "
-|     " Plain"
-
-#data
-<html><body>
-<p><font size="7">First paragraph.</p>
-<p>Second paragraph.</p></font>
-<b><p><i>Bold and Italic</b> Italic</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-"
-|     <p>
-|       <font>
-|         size="7"
-|         "First paragraph."
-|     <font>
-|       size="7"
-|       "
-"
-|       <p>
-|         "Second paragraph."
-|     "
-"
-|     <b>
-|     <p>
-|       <b>
-|         <i>
-|           "Bold and Italic"
-|       <i>
-|         " Italic"
-
-#data
-<html>
-<dl>
-<dt><b>Boo
-<dd>Goo?
-</dl>
-</html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <dl>
-|       "
-"
-|       <dt>
-|         <b>
-|           "Boo
-"
-|       <dd>
-|         <b>
-|           "Goo?
-"
-|     <b>
-|       "
-"
-
-#data
-<html><body>
-<label><a><div>Hello<div>World</div></a></label>  
-</body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-"
-|     <label>
-|       <a>
-|       <div>
-|         <a>
-|           "Hello"
-|           <div>
-|             "World"
-|         "  
-"
-
-#data
-<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <center>
-|       " "
-|       <font>
-|         "a"
-|     <font>
-|       <img>
-|       " "
-|     <table>
-|       " "
-|       <tbody>
-|         <tr>
-|           <td>
-|             " "
-|           " "
-|         " "
-
-#data
-<table><tr><p><a><p>You should see this text.
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       <a>
-|     <p>
-|       <a>
-|         "You should see this text."
-|     <table>
-|       <tbody>
-|         <tr>
-
-#data
-<TABLE>
-<TR>
-<CENTER><CENTER><TD></TD></TR><TR>
-<FONT>
-<TABLE><tr></tr></TABLE>
-</P>
-<a></font><font></a>
-This page contains an insanely badly-nested tag sequence.
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <center>
-|       <center>
-|     <font>
-|       "
-"
-|     <table>
-|       "
-"
-|       <tbody>
-|         <tr>
-|           "
-"
-|           <td>
-|         <tr>
-|           "
-"
-|     <table>
-|       <tbody>
-|         <tr>
-|     <font>
-|       "
-"
-|       <p>
-|       "
-"
-|       <a>
-|     <a>
-|       <font>
-|     <font>
-|       "
-This page contains an insanely badly-nested tag sequence."
-
-#data
-<html>
-<body>
-<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the
-nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>
-</body>
-</html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "
-"
-|     <b>
-|       <nobr>
-|     <div>
-|       <b>
-|         <nobr>
-|           "This text is in a div inside a nobr"
-|         "More text that should not be in the nobr, i.e., the
-nobr should have closed the div inside it implicitly. "
-|       <pre>
-|         "A pre tag outside everything else."
-|       "
-
-"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit01.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit01.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit01.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit01.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,610 +0,0 @@
-#data
-Test
-#errors
-Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
-#document
-| <html>
-|   <head>
-|   <body>
-|     "Test"
-
-#data
-<div></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-
-#data
-<div>Test</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "Test"
-
-#data
-<di
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<div>Hello</div>
-<script>
-console.log("PASS");
-</script>
-<div>Bye</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "Hello"
-|     "
-"
-|     <script>
-|       "
-console.log("PASS");
-"
-|     "
-"
-|     <div>
-|       "Bye"
-
-#data
-<div foo="bar">Hello</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo="bar"
-|       "Hello"
-
-#data
-<div>Hello</div>
-<script>
-console.log("FOO<span>BAR</span>BAZ");
-</script>
-<div>Bye</div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       "Hello"
-|     "
-"
-|     <script>
-|       "
-console.log("FOO<span>BAR</span>BAZ");
-"
-|     "
-"
-|     <div>
-|       "Bye"
-
-#data
-<foo bar="baz"></foo><potato quack="duck"></potato>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       bar="baz"
-|     <potato>
-|       quack="duck"
-
-#data
-<foo bar="baz"><potato quack="duck"></potato></foo>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       bar="baz"
-|       <potato>
-|         quack="duck"
-
-#data
-<foo></foo bar="baz"><potato></potato quack="duck">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|     <potato>
-
-#data
-</ tttt>
-#errors
-#document
-| <!--  tttt -->
-| <html>
-|   <head>
-|   <body>
-
-#data
-<div FOO ><img><img></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       foo=""
-|       <img>
-|       <img>
-
-#data
-<p>Test</p<p>Test2</p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       "TestTest2"
-
-#data
-<rdar://problem/6869687>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <rdar:>
-|       6869687=""
-|       problem=""
-
-#data
-<A>test< /A>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|       "test< /A>"
-
-#data
-&lt;
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "<"
-
-#data
-<body foo='bar'><body foo='baz' yo='mama'>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     foo="bar"
-|     yo="mama"
-
-#data
-<body></br foo="bar"></body>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-
-#data
-<bdy><br foo="bar"></body>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <bdy>
-|       <br>
-|         foo="bar"
-
-#data
-<body></body></br foo="bar">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <br>
-
-#data
-<bdy></body><br foo="bar">
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <bdy>
-|       <br>
-|         foo="bar"
-
-#data
-<html><body></body></html><!-- Hi there -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-| <!--  Hi there  -->
-
-#data
-<html><body></body></html>x<!-- Hi there -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <!--  Hi there  -->
-
-#data
-<html><body></body></html>x<!-- Hi there --></html><!-- Again -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <!--  Hi there  -->
-| <!--  Again  -->
-
-#data
-<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "x"
-|     <!--  Hi there  -->
-| <!--  Again  -->
-
-#data
-<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <rp>
-|           "xx"
-
-#data
-<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ruby>
-|       <div>
-|         <rt>
-|           "xx"
-
-#data
-<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->
-#errors
-#document
-| <html>
-|   <head>
-|   <frameset>
-|     <!-- 1 -->
-|     <noframes>
-|       "A"
-|     <!-- 2 -->
-|   <!-- 3 -->
-|   <noframes>
-|     "B"
-|   <!-- 4 -->
-|   <noframes>
-|     "C"
-| <!-- 5 -->
-| <!-- 6 -->
-
-#data
-<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <select>
-|       <option>
-|         "A"
-|     <option>
-|       "B"
-|       <select>
-|         <option>
-|           "C"
-|     <option>
-|       "D"
-|       <select>
-|         <option>
-|           "E"
-|     <option>
-|       "F"
-|       <select>
-|         <option>
-|           "G"
-
-#data
-<dd><dd><dt><dt><dd><li><li>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <dd>
-|     <dd>
-|     <dt>
-|     <dt>
-|     <dd>
-|       <li>
-|       <li>
-
-#data
-<div><b></div><div><nobr>a<nobr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <b>
-|     <div>
-|       <b>
-|         <nobr>
-|           "a"
-|         <nobr>
-
-#data
-<head></head>
-<body></body>
-#errors
-#document
-| <html>
-|   <head>
-|   "
-"
-|   <body>
-
-#data
-<head></head> <style></style>ddd
-#errors
-#document
-| <html>
-|   <head>
-|     <style>
-|   " "
-|   <body>
-|     "ddd"
-
-#data
-<kbd><table></kbd><col><select><tr>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <kbd>
-|       <select>
-|       <table>
-|         <colgroup>
-|           <col>
-|         <tbody>
-|           <tr>
-
-#data
-<kbd><table></kbd><col><select><tr></table><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <kbd>
-|       <select>
-|       <table>
-|         <colgroup>
-|           <col>
-|         <tbody>
-|           <tr>
-|       <div>
-
-#data
-<a><li><style></style><title></title></a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <li>
-|       <a>
-|         <style>
-|         <title>
-
-#data
-<font></p><p><meta><title></title></font>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <font>
-|       <p>
-|     <p>
-|       <font>
-|         <meta>
-|         <title>
-
-#data
-<a><center><title></title><a>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <a>
-|     <center>
-|       <a>
-|         <title>
-|       <a>
-
-#data
-<svg><title><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         <div>
-
-#data
-<svg><title><rect><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         <rect>
-|           <div>
-
-#data
-<svg><title><svg><div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg title>
-|         <svg svg>
-|         <div>
-
-#data
-<img <="" FAIL>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <img>
-|       <=""
-|       fail=""
-
-#data
-<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <ul>
-|       <li>
-|         <div>
-|           id="foo"
-|           "A"
-|       <li>
-|         "B"
-|         <div>
-|           "C"
-
-#data
-<svg><em><desc></em>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|     <em>
-|       <desc>
-
-#data
-<table><tr><td><svg><desc><td></desc><circle>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             <svg svg>
-|               <svg desc>
-|           <td>
-|             <circle>
-
-#data
-<svg><tfoot></mi><td>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <svg svg>
-|       <svg tfoot>
-|         <svg td>
-
-#data
-<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <math math>
-|       <math mrow>
-|         <math mrow>
-|           <math mn>
-|             "1"
-|         <math mi>
-|           "a"
-
-#data
-<!doctype html><input type="hidden"><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <frameset>
-
-#data
-<!doctype html><input type="button"><frameset>
-#errors
-#document
-| <!DOCTYPE html>
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|       type="button"
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit02.dat gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit02.dat
--- gcc-4.8.1.orig/libgo/go/exp/html/testdata/webkit/webkit02.dat	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/html/testdata/webkit/webkit02.dat	1969-12-31 18:00:00.000000000 -0600
@@ -1,159 +0,0 @@
-#data
-<foo bar=qux/>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <foo>
-|       bar="qux/"
-
-#data
-<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <p>
-|       id="status"
-|       <noscript>
-|         "<strong>A</strong>"
-|       <span>
-|         "B"
-
-#data
-<div><sarcasm><div></div></sarcasm></div>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <div>
-|       <sarcasm>
-|         <div>
-
-#data
-<html><body><img src="" border="0" alt="><div>A</div></body></html>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-
-#data
-<table><td></tbody>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     "A"
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-
-#data
-<table><td></thead>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "A"
-
-#data
-<table><td></tfoot>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <tbody>
-|         <tr>
-|           <td>
-|             "A"
-
-#data
-<table><thead><td></tbody>A
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <table>
-|       <thead>
-|         <tr>
-|           <td>
-|             "A"
-
-#data
-<legend>test</legend>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <legend>
-|       "test"
-
-#data
-<table><input>
-#errors
-#document
-| <html>
-|   <head>
-|   <body>
-|     <input>
-|     <table>
-
-#data
-<b><em><dcell><postfield><postfield><postfield><postfield><missing_glyph><missing_glyph><missing_glyph><missing_glyph><hkern><aside></b></em>
-#errors
-#document-fragment
-div
-#document
-| <b>
-|   <em>
-|     <dcell>
-|       <postfield>
-|         <postfield>
-|           <postfield>
-|             <postfield>
-|               <missing_glyph>
-|                 <missing_glyph>
-|                   <missing_glyph>
-|                     <missing_glyph>
-|                       <hkern>
-| <aside>
-|   <em>
-|     <b>
-
-#data
-<isindex action="x">
-#errors
-#document-fragment
-table
-#document
-| <form>
-|   action="x"
-| <hr>
-| <label>
-|   "This is a searchable index. Enter search keywords: "
-|   <input>
-|     name="isindex"
-| <hr>
-
-#data
-<option><XH<optgroup></optgroup>
-#errors
-#document-fragment
-select
-#document
-| <option>
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/token.go gcc-4.8.1/libgo/go/exp/html/token.go
--- gcc-4.8.1.orig/libgo/go/exp/html/token.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/token.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,1173 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"exp/html/atom"
-	"io"
-	"strconv"
-	"strings"
-)
-
-// A TokenType is the type of a Token.
-type TokenType uint32
-
-const (
-	// ErrorToken means that an error occurred during tokenization.
-	ErrorToken TokenType = iota
-	// TextToken means a text node.
-	TextToken
-	// A StartTagToken looks like <a>.
-	StartTagToken
-	// An EndTagToken looks like </a>.
-	EndTagToken
-	// A SelfClosingTagToken tag looks like <br/>.
-	SelfClosingTagToken
-	// A CommentToken looks like <!--x-->.
-	CommentToken
-	// A DoctypeToken looks like <!DOCTYPE x>
-	DoctypeToken
-)
-
-// String returns a string representation of the TokenType.
-func (t TokenType) String() string {
-	switch t {
-	case ErrorToken:
-		return "Error"
-	case TextToken:
-		return "Text"
-	case StartTagToken:
-		return "StartTag"
-	case EndTagToken:
-		return "EndTag"
-	case SelfClosingTagToken:
-		return "SelfClosingTag"
-	case CommentToken:
-		return "Comment"
-	case DoctypeToken:
-		return "Doctype"
-	}
-	return "Invalid(" + strconv.Itoa(int(t)) + ")"
-}
-
-// An Attribute is an attribute namespace-key-value triple. Namespace is
-// non-empty for foreign attributes like xlink, Key is alphabetic (and hence
-// does not contain escapable characters like '&', '<' or '>'), and Val is
-// unescaped (it looks like "a<b" rather than "a&lt;b").
-//
-// Namespace is only used by the parser, not the tokenizer.
-type Attribute struct {
-	Namespace, Key, Val string
-}
-
-// A Token consists of a TokenType and some Data (tag name for start and end
-// tags, content for text, comments and doctypes). A tag Token may also contain
-// a slice of Attributes. Data is unescaped for all Tokens (it looks like "a<b"
-// rather than "a&lt;b"). For tag Tokens, DataAtom is the atom for Data, or
-// zero if Data is not a known tag name.
-type Token struct {
-	Type     TokenType
-	DataAtom atom.Atom
-	Data     string
-	Attr     []Attribute
-}
-
-// tagString returns a string representation of a tag Token's Data and Attr.
-func (t Token) tagString() string {
-	if len(t.Attr) == 0 {
-		return t.Data
-	}
-	buf := bytes.NewBufferString(t.Data)
-	for _, a := range t.Attr {
-		buf.WriteByte(' ')
-		buf.WriteString(a.Key)
-		buf.WriteString(`="`)
-		escape(buf, a.Val)
-		buf.WriteByte('"')
-	}
-	return buf.String()
-}
-
-// String returns a string representation of the Token.
-func (t Token) String() string {
-	switch t.Type {
-	case ErrorToken:
-		return ""
-	case TextToken:
-		return EscapeString(t.Data)
-	case StartTagToken:
-		return "<" + t.tagString() + ">"
-	case EndTagToken:
-		return "</" + t.tagString() + ">"
-	case SelfClosingTagToken:
-		return "<" + t.tagString() + "/>"
-	case CommentToken:
-		return "<!--" + t.Data + "-->"
-	case DoctypeToken:
-		return "<!DOCTYPE " + t.Data + ">"
-	}
-	return "Invalid(" + strconv.Itoa(int(t.Type)) + ")"
-}
-
-// span is a range of bytes in a Tokenizer's buffer. The start is inclusive,
-// the end is exclusive.
-type span struct {
-	start, end int
-}
-
-// A Tokenizer returns a stream of HTML Tokens.
-type Tokenizer struct {
-	// r is the source of the HTML text.
-	r io.Reader
-	// tt is the TokenType of the current token.
-	tt TokenType
-	// err is the first error encountered during tokenization. It is possible
-	// for tt != Error && err != nil to hold: this means that Next returned a
-	// valid token but the subsequent Next call will return an error token.
-	// For example, if the HTML text input was just "plain", then the first
-	// Next call would set z.err to io.EOF but return a TextToken, and all
-	// subsequent Next calls would return an ErrorToken.
-	// err is never reset. Once it becomes non-nil, it stays non-nil.
-	err error
-	// buf[raw.start:raw.end] holds the raw bytes of the current token.
-	// buf[raw.end:] is buffered input that will yield future tokens.
-	raw span
-	buf []byte
-	// buf[data.start:data.end] holds the raw bytes of the current token's data:
-	// a text token's text, a tag token's tag name, etc.
-	data span
-	// pendingAttr is the attribute key and value currently being tokenized.
-	// When complete, pendingAttr is pushed onto attr. nAttrReturned is
-	// incremented on each call to TagAttr.
-	pendingAttr   [2]span
-	attr          [][2]span
-	nAttrReturned int
-	// rawTag is the "script" in "</script>" that closes the next token. If
-	// non-empty, the subsequent call to Next will return a raw or RCDATA text
-	// token: one that treats "<p>" as text instead of an element.
-	// rawTag's contents are lower-cased.
-	rawTag string
-	// textIsRaw is whether the current text token's data is not escaped.
-	textIsRaw bool
-	// convertNUL is whether NUL bytes in the current token's data should
-	// be converted into \ufffd replacement characters.
-	convertNUL bool
-	// allowCDATA is whether CDATA sections are allowed in the current context.
-	allowCDATA bool
-}
-
-// AllowCDATA sets whether or not the tokenizer recognizes <![CDATA[foo]]> as
-// the text "foo". The default value is false, which means to recognize it as
-// a bogus comment "<!-- [CDATA[foo]] -->" instead.
-//
-// Strictly speaking, an HTML5 compliant tokenizer should allow CDATA if and
-// only if tokenizing foreign content, such as MathML and SVG. However,
-// tracking foreign-contentness is difficult to do purely in the tokenizer,
-// as opposed to the parser, due to HTML integration points: an <svg> element
-// can contain a <foreignObject> that is foreign-to-SVG but not foreign-to-
-// HTML. For strict compliance with the HTML5 tokenization algorithm, it is the
-// responsibility of the user of a tokenizer to call AllowCDATA as appropriate.
-// In practice, if using the tokenizer without caring whether MathML or SVG
-// CDATA is text or comments, such as tokenizing HTML to find all the anchor
-// text, it is acceptable to ignore this responsibility.
-func (z *Tokenizer) AllowCDATA(allowCDATA bool) {
-	z.allowCDATA = allowCDATA
-}
-
-// NextIsNotRawText instructs the tokenizer that the next token should not be
-// considered as 'raw text'. Some elements, such as script and title elements,
-// normally require the next token after the opening tag to be 'raw text' that
-// has no child elements. For example, tokenizing "<title>a<b>c</b>d</title>"
-// yields a start tag token for "<title>", a text token for "a<b>c</b>d", and
-// an end tag token for "</title>". There are no distinct start tag or end tag
-// tokens for the "<b>" and "</b>".
-//
-// This tokenizer implementation will generally look for raw text at the right
-// times. Strictly speaking, an HTML5 compliant tokenizer should not look for
-// raw text if in foreign content: <title> generally needs raw text, but a
-// <title> inside an <svg> does not. Another example is that a <textarea>
-// generally needs raw text, but a <textarea> is not allowed as an immediate
-// child of a <select>; in normal parsing, a <textarea> implies </select>, but
-// one cannot close the implicit element when parsing a <select>'s InnerHTML.
-// Similarly to AllowCDATA, tracking the correct moment to override raw-text-
-// ness is difficult to do purely in the tokenizer, as opposed to the parser.
-// For strict compliance with the HTML5 tokenization algorithm, it is the
-// responsibility of the user of a tokenizer to call NextIsNotRawText as
-// appropriate. In practice, like AllowCDATA, it is acceptable to ignore this
-// responsibility for basic usage.
-//
-// Note that this 'raw text' concept is different from the one offered by the
-// Tokenizer.Raw method.
-func (z *Tokenizer) NextIsNotRawText() {
-	z.rawTag = ""
-}
-
-// Err returns the error associated with the most recent ErrorToken token.
-// This is typically io.EOF, meaning the end of tokenization.
-func (z *Tokenizer) Err() error {
-	if z.tt != ErrorToken {
-		return nil
-	}
-	return z.err
-}
-
-// readByte returns the next byte from the input stream, doing a buffered read
-// from z.r into z.buf if necessary. z.buf[z.raw.start:z.raw.end] remains a contiguous byte
-// slice that holds all the bytes read so far for the current token.
-// It sets z.err if the underlying reader returns an error.
-// Pre-condition: z.err == nil.
-func (z *Tokenizer) readByte() byte {
-	if z.raw.end >= len(z.buf) {
-		// Our buffer is exhausted and we have to read from z.r.
-		// We copy z.buf[z.raw.start:z.raw.end] to the beginning of z.buf. If the length
-		// z.raw.end - z.raw.start is more than half the capacity of z.buf, then we
-		// allocate a new buffer before the copy.
-		c := cap(z.buf)
-		d := z.raw.end - z.raw.start
-		var buf1 []byte
-		if 2*d > c {
-			buf1 = make([]byte, d, 2*c)
-		} else {
-			buf1 = z.buf[:d]
-		}
-		copy(buf1, z.buf[z.raw.start:z.raw.end])
-		if x := z.raw.start; x != 0 {
-			// Adjust the data/attr spans to refer to the same contents after the copy.
-			z.data.start -= x
-			z.data.end -= x
-			z.pendingAttr[0].start -= x
-			z.pendingAttr[0].end -= x
-			z.pendingAttr[1].start -= x
-			z.pendingAttr[1].end -= x
-			for i := range z.attr {
-				z.attr[i][0].start -= x
-				z.attr[i][0].end -= x
-				z.attr[i][1].start -= x
-				z.attr[i][1].end -= x
-			}
-		}
-		z.raw.start, z.raw.end, z.buf = 0, d, buf1[:d]
-		// Now that we have copied the live bytes to the start of the buffer,
-		// we read from z.r into the remainder.
-		n, err := z.r.Read(buf1[d:cap(buf1)])
-		if err != nil {
-			z.err = err
-			return 0
-		}
-		z.buf = buf1[:d+n]
-	}
-	x := z.buf[z.raw.end]
-	z.raw.end++
-	return x
-}
-
-// skipWhiteSpace skips past any white space.
-func (z *Tokenizer) skipWhiteSpace() {
-	if z.err != nil {
-		return
-	}
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			return
-		}
-		switch c {
-		case ' ', '\n', '\r', '\t', '\f':
-			// No-op.
-		default:
-			z.raw.end--
-			return
-		}
-	}
-}
-
-// readRawOrRCDATA reads until the next "</foo>", where "foo" is z.rawTag and
-// is typically something like "script" or "textarea".
-func (z *Tokenizer) readRawOrRCDATA() {
-	if z.rawTag == "script" {
-		z.readScript()
-		z.textIsRaw = true
-		z.rawTag = ""
-		return
-	}
-loop:
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		if c != '<' {
-			continue loop
-		}
-		c = z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		if c != '/' {
-			continue loop
-		}
-		if z.readRawEndTag() || z.err != nil {
-			break loop
-		}
-	}
-	z.data.end = z.raw.end
-	// A textarea's or title's RCDATA can contain escaped entities.
-	z.textIsRaw = z.rawTag != "textarea" && z.rawTag != "title"
-	z.rawTag = ""
-}
-
-// readRawEndTag attempts to read a tag like "</foo>", where "foo" is z.rawTag.
-// If it succeeds, it backs up the input position to reconsume the tag and
-// returns true. Otherwise it returns false. The opening "</" has already been
-// consumed.
-func (z *Tokenizer) readRawEndTag() bool {
-	for i := 0; i < len(z.rawTag); i++ {
-		c := z.readByte()
-		if z.err != nil {
-			return false
-		}
-		if c != z.rawTag[i] && c != z.rawTag[i]-('a'-'A') {
-			z.raw.end--
-			return false
-		}
-	}
-	c := z.readByte()
-	if z.err != nil {
-		return false
-	}
-	switch c {
-	case ' ', '\n', '\r', '\t', '\f', '/', '>':
-		// The 3 is 2 for the leading "</" plus 1 for the trailing character c.
-		z.raw.end -= 3 + len(z.rawTag)
-		return true
-	}
-	z.raw.end--
-	return false
-}
-
-// readScript reads until the next </script> tag, following the byzantine
-// rules for escaping/hiding the closing tag.
-func (z *Tokenizer) readScript() {
-	defer func() {
-		z.data.end = z.raw.end
-	}()
-	var c byte
-
-scriptData:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '<' {
-		goto scriptDataLessThanSign
-	}
-	goto scriptData
-
-scriptDataLessThanSign:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '/':
-		goto scriptDataEndTagOpen
-	case '!':
-		goto scriptDataEscapeStart
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEndTagOpen:
-	if z.readRawEndTag() || z.err != nil {
-		return
-	}
-	goto scriptData
-
-scriptDataEscapeStart:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '-' {
-		goto scriptDataEscapeStartDash
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEscapeStartDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '-' {
-		goto scriptDataEscapedDashDash
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEscaped:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataEscapedDash
-	case '<':
-		goto scriptDataEscapedLessThanSign
-	}
-	goto scriptDataEscaped
-
-scriptDataEscapedDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataEscapedDashDash
-	case '<':
-		goto scriptDataEscapedLessThanSign
-	}
-	goto scriptDataEscaped
-
-scriptDataEscapedDashDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataEscapedDashDash
-	case '<':
-		goto scriptDataEscapedLessThanSign
-	case '>':
-		goto scriptData
-	}
-	goto scriptDataEscaped
-
-scriptDataEscapedLessThanSign:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '/' {
-		goto scriptDataEscapedEndTagOpen
-	}
-	if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
-		goto scriptDataDoubleEscapeStart
-	}
-	z.raw.end--
-	goto scriptData
-
-scriptDataEscapedEndTagOpen:
-	if z.readRawEndTag() || z.err != nil {
-		return
-	}
-	goto scriptDataEscaped
-
-scriptDataDoubleEscapeStart:
-	z.raw.end--
-	for i := 0; i < len("script"); i++ {
-		c = z.readByte()
-		if z.err != nil {
-			return
-		}
-		if c != "script"[i] && c != "SCRIPT"[i] {
-			z.raw.end--
-			goto scriptDataEscaped
-		}
-	}
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case ' ', '\n', '\r', '\t', '\f', '/', '>':
-		goto scriptDataDoubleEscaped
-	}
-	z.raw.end--
-	goto scriptDataEscaped
-
-scriptDataDoubleEscaped:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataDoubleEscapedDash
-	case '<':
-		goto scriptDataDoubleEscapedLessThanSign
-	}
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapedDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataDoubleEscapedDashDash
-	case '<':
-		goto scriptDataDoubleEscapedLessThanSign
-	}
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapedDashDash:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch c {
-	case '-':
-		goto scriptDataDoubleEscapedDashDash
-	case '<':
-		goto scriptDataDoubleEscapedLessThanSign
-	case '>':
-		goto scriptData
-	}
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapedLessThanSign:
-	c = z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c == '/' {
-		goto scriptDataDoubleEscapeEnd
-	}
-	z.raw.end--
-	goto scriptDataDoubleEscaped
-
-scriptDataDoubleEscapeEnd:
-	if z.readRawEndTag() {
-		z.raw.end += len("</script>")
-		goto scriptDataEscaped
-	}
-	if z.err != nil {
-		return
-	}
-	goto scriptDataDoubleEscaped
-}
-
-// readComment reads the next comment token starting with "<!--". The opening
-// "<!--" has already been consumed.
-func (z *Tokenizer) readComment() {
-	z.data.start = z.raw.end
-	defer func() {
-		if z.data.end < z.data.start {
-			// It's a comment with no data, like <!-->.
-			z.data.end = z.data.start
-		}
-	}()
-	for dashCount := 2; ; {
-		c := z.readByte()
-		if z.err != nil {
-			// Ignore up to two dashes at EOF.
-			if dashCount > 2 {
-				dashCount = 2
-			}
-			z.data.end = z.raw.end - dashCount
-			return
-		}
-		switch c {
-		case '-':
-			dashCount++
-			continue
-		case '>':
-			if dashCount >= 2 {
-				z.data.end = z.raw.end - len("-->")
-				return
-			}
-		case '!':
-			if dashCount >= 2 {
-				c = z.readByte()
-				if z.err != nil {
-					z.data.end = z.raw.end
-					return
-				}
-				if c == '>' {
-					z.data.end = z.raw.end - len("--!>")
-					return
-				}
-			}
-		}
-		dashCount = 0
-	}
-}
-
-// readUntilCloseAngle reads until the next ">".
-func (z *Tokenizer) readUntilCloseAngle() {
-	z.data.start = z.raw.end
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return
-		}
-		if c == '>' {
-			z.data.end = z.raw.end - len(">")
-			return
-		}
-	}
-}
-
-// readMarkupDeclaration reads the next token starting with "<!". It might be
-// a "<!--comment-->", a "<!DOCTYPE foo>", a "<![CDATA[section]]>" or
-// "<!a bogus comment". The opening "<!" has already been consumed.
-func (z *Tokenizer) readMarkupDeclaration() TokenType {
-	z.data.start = z.raw.end
-	var c [2]byte
-	for i := 0; i < 2; i++ {
-		c[i] = z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return CommentToken
-		}
-	}
-	if c[0] == '-' && c[1] == '-' {
-		z.readComment()
-		return CommentToken
-	}
-	z.raw.end -= 2
-	if z.readDoctype() {
-		return DoctypeToken
-	}
-	if z.allowCDATA && z.readCDATA() {
-		z.convertNUL = true
-		return TextToken
-	}
-	// It's a bogus comment.
-	z.readUntilCloseAngle()
-	return CommentToken
-}
-
-// readDoctype attempts to read a doctype declaration and returns true if
-// successful. The opening "<!" has already been consumed.
-func (z *Tokenizer) readDoctype() bool {
-	const s = "DOCTYPE"
-	for i := 0; i < len(s); i++ {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return false
-		}
-		if c != s[i] && c != s[i]+('a'-'A') {
-			// Back up to read the fragment of "DOCTYPE" again.
-			z.raw.end = z.data.start
-			return false
-		}
-	}
-	if z.skipWhiteSpace(); z.err != nil {
-		z.data.start = z.raw.end
-		z.data.end = z.raw.end
-		return true
-	}
-	z.readUntilCloseAngle()
-	return true
-}
-
-// readCDATA attempts to read a CDATA section and returns true if
-// successful. The opening "<!" has already been consumed.
-func (z *Tokenizer) readCDATA() bool {
-	const s = "[CDATA["
-	for i := 0; i < len(s); i++ {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return false
-		}
-		if c != s[i] {
-			// Back up to read the fragment of "[CDATA[" again.
-			z.raw.end = z.data.start
-			return false
-		}
-	}
-	z.data.start = z.raw.end
-	brackets := 0
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return true
-		}
-		switch c {
-		case ']':
-			brackets++
-		case '>':
-			if brackets >= 2 {
-				z.data.end = z.raw.end - len("]]>")
-				return true
-			}
-			brackets = 0
-		default:
-			brackets = 0
-		}
-	}
-	panic("unreachable")
-}
-
-// startTagIn returns whether the start tag in z.buf[z.data.start:z.data.end]
-// case-insensitively matches any element of ss.
-func (z *Tokenizer) startTagIn(ss ...string) bool {
-loop:
-	for _, s := range ss {
-		if z.data.end-z.data.start != len(s) {
-			continue loop
-		}
-		for i := 0; i < len(s); i++ {
-			c := z.buf[z.data.start+i]
-			if 'A' <= c && c <= 'Z' {
-				c += 'a' - 'A'
-			}
-			if c != s[i] {
-				continue loop
-			}
-		}
-		return true
-	}
-	return false
-}
-
-// readStartTag reads the next start tag token. The opening "<a" has already
-// been consumed, where 'a' means anything in [A-Za-z].
-func (z *Tokenizer) readStartTag() TokenType {
-	z.readTag(true)
-	if z.err != nil {
-		return ErrorToken
-	}
-	// Several tags flag the tokenizer's next token as raw.
-	c, raw := z.buf[z.data.start], false
-	if 'A' <= c && c <= 'Z' {
-		c += 'a' - 'A'
-	}
-	switch c {
-	case 'i':
-		raw = z.startTagIn("iframe")
-	case 'n':
-		raw = z.startTagIn("noembed", "noframes", "noscript")
-	case 'p':
-		raw = z.startTagIn("plaintext")
-	case 's':
-		raw = z.startTagIn("script", "style")
-	case 't':
-		raw = z.startTagIn("textarea", "title")
-	case 'x':
-		raw = z.startTagIn("xmp")
-	}
-	if raw {
-		z.rawTag = strings.ToLower(string(z.buf[z.data.start:z.data.end]))
-	}
-	// Look for a self-closing token like "<br/>".
-	if z.err == nil && z.buf[z.raw.end-2] == '/' {
-		return SelfClosingTagToken
-	}
-	return StartTagToken
-}
-
-// readTag reads the next tag token and its attributes. If saveAttr, those
-// attributes are saved in z.attr, otherwise z.attr is set to an empty slice.
-// The opening "<a" or "</a" has already been consumed, where 'a' means anything
-// in [A-Za-z].
-func (z *Tokenizer) readTag(saveAttr bool) {
-	z.attr = z.attr[:0]
-	z.nAttrReturned = 0
-	// Read the tag name and attribute key/value pairs.
-	z.readTagName()
-	if z.skipWhiteSpace(); z.err != nil {
-		return
-	}
-	for {
-		c := z.readByte()
-		if z.err != nil || c == '>' {
-			break
-		}
-		z.raw.end--
-		z.readTagAttrKey()
-		z.readTagAttrVal()
-		// Save pendingAttr if saveAttr and that attribute has a non-empty key.
-		if saveAttr && z.pendingAttr[0].start != z.pendingAttr[0].end {
-			z.attr = append(z.attr, z.pendingAttr)
-		}
-		if z.skipWhiteSpace(); z.err != nil {
-			break
-		}
-	}
-}
-
-// readTagName sets z.data to the "div" in "<div k=v>". The reader (z.raw.end)
-// is positioned such that the first byte of the tag name (the "d" in "<div")
-// has already been consumed.
-func (z *Tokenizer) readTagName() {
-	z.data.start = z.raw.end - 1
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.data.end = z.raw.end
-			return
-		}
-		switch c {
-		case ' ', '\n', '\r', '\t', '\f':
-			z.data.end = z.raw.end - 1
-			return
-		case '/', '>':
-			z.raw.end--
-			z.data.end = z.raw.end
-			return
-		}
-	}
-}
-
-// readTagAttrKey sets z.pendingAttr[0] to the "k" in "<div k=v>".
-// Precondition: z.err == nil.
-func (z *Tokenizer) readTagAttrKey() {
-	z.pendingAttr[0].start = z.raw.end
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			z.pendingAttr[0].end = z.raw.end
-			return
-		}
-		switch c {
-		case ' ', '\n', '\r', '\t', '\f', '/':
-			z.pendingAttr[0].end = z.raw.end - 1
-			return
-		case '=', '>':
-			z.raw.end--
-			z.pendingAttr[0].end = z.raw.end
-			return
-		}
-	}
-}
-
-// readTagAttrVal sets z.pendingAttr[1] to the "v" in "<div k=v>".
-func (z *Tokenizer) readTagAttrVal() {
-	z.pendingAttr[1].start = z.raw.end
-	z.pendingAttr[1].end = z.raw.end
-	if z.skipWhiteSpace(); z.err != nil {
-		return
-	}
-	c := z.readByte()
-	if z.err != nil {
-		return
-	}
-	if c != '=' {
-		z.raw.end--
-		return
-	}
-	if z.skipWhiteSpace(); z.err != nil {
-		return
-	}
-	quote := z.readByte()
-	if z.err != nil {
-		return
-	}
-	switch quote {
-	case '>':
-		z.raw.end--
-		return
-
-	case '\'', '"':
-		z.pendingAttr[1].start = z.raw.end
-		for {
-			c := z.readByte()
-			if z.err != nil {
-				z.pendingAttr[1].end = z.raw.end
-				return
-			}
-			if c == quote {
-				z.pendingAttr[1].end = z.raw.end - 1
-				return
-			}
-		}
-
-	default:
-		z.pendingAttr[1].start = z.raw.end - 1
-		for {
-			c := z.readByte()
-			if z.err != nil {
-				z.pendingAttr[1].end = z.raw.end
-				return
-			}
-			switch c {
-			case ' ', '\n', '\r', '\t', '\f':
-				z.pendingAttr[1].end = z.raw.end - 1
-				return
-			case '>':
-				z.raw.end--
-				z.pendingAttr[1].end = z.raw.end
-				return
-			}
-		}
-	}
-}
-
-// Next scans the next token and returns its type.
-func (z *Tokenizer) Next() TokenType {
-	if z.err != nil {
-		z.tt = ErrorToken
-		return z.tt
-	}
-	z.raw.start = z.raw.end
-	z.data.start = z.raw.end
-	z.data.end = z.raw.end
-	if z.rawTag != "" {
-		if z.rawTag == "plaintext" {
-			// Read everything up to EOF.
-			for z.err == nil {
-				z.readByte()
-			}
-			z.data.end = z.raw.end
-			z.textIsRaw = true
-		} else {
-			z.readRawOrRCDATA()
-		}
-		if z.data.end > z.data.start {
-			z.tt = TextToken
-			z.convertNUL = true
-			return z.tt
-		}
-	}
-	z.textIsRaw = false
-	z.convertNUL = false
-
-loop:
-	for {
-		c := z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		if c != '<' {
-			continue loop
-		}
-
-		// Check if the '<' we have just read is part of a tag, comment
-		// or doctype. If not, it's part of the accumulated text token.
-		c = z.readByte()
-		if z.err != nil {
-			break loop
-		}
-		var tokenType TokenType
-		switch {
-		case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z':
-			tokenType = StartTagToken
-		case c == '/':
-			tokenType = EndTagToken
-		case c == '!' || c == '?':
-			// We use CommentToken to mean any of "<!--actual comments-->",
-			// "<!DOCTYPE declarations>" and "<?xml processing instructions?>".
-			tokenType = CommentToken
-		default:
-			continue
-		}
-
-		// We have a non-text token, but we might have accumulated some text
-		// before that. If so, we return the text first, and return the non-
-		// text token on the subsequent call to Next.
-		if x := z.raw.end - len("<a"); z.raw.start < x {
-			z.raw.end = x
-			z.data.end = x
-			z.tt = TextToken
-			return z.tt
-		}
-		switch tokenType {
-		case StartTagToken:
-			z.tt = z.readStartTag()
-			return z.tt
-		case EndTagToken:
-			c = z.readByte()
-			if z.err != nil {
-				break loop
-			}
-			if c == '>' {
-				// "</>" does not generate a token at all.
-				// Reset the tokenizer state and start again.
-				z.raw.start = z.raw.end
-				z.data.start = z.raw.end
-				z.data.end = z.raw.end
-				continue loop
-			}
-			if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
-				z.readTag(false)
-				if z.err != nil {
-					z.tt = ErrorToken
-				} else {
-					z.tt = EndTagToken
-				}
-				return z.tt
-			}
-			z.raw.end--
-			z.readUntilCloseAngle()
-			z.tt = CommentToken
-			return z.tt
-		case CommentToken:
-			if c == '!' {
-				z.tt = z.readMarkupDeclaration()
-				return z.tt
-			}
-			z.raw.end--
-			z.readUntilCloseAngle()
-			z.tt = CommentToken
-			return z.tt
-		}
-	}
-	if z.raw.start < z.raw.end {
-		z.data.end = z.raw.end
-		z.tt = TextToken
-		return z.tt
-	}
-	z.tt = ErrorToken
-	return z.tt
-}
-
-// Raw returns the unmodified text of the current token. Calling Next, Token,
-// Text, TagName or TagAttr may change the contents of the returned slice.
-func (z *Tokenizer) Raw() []byte {
-	return z.buf[z.raw.start:z.raw.end]
-}
-
-// convertNewlines converts "\r" and "\r\n" in s to "\n".
-// The conversion happens in place, but the resulting slice may be shorter.
-func convertNewlines(s []byte) []byte {
-	for i, c := range s {
-		if c != '\r' {
-			continue
-		}
-
-		src := i + 1
-		if src >= len(s) || s[src] != '\n' {
-			s[i] = '\n'
-			continue
-		}
-
-		dst := i
-		for src < len(s) {
-			if s[src] == '\r' {
-				if src+1 < len(s) && s[src+1] == '\n' {
-					src++
-				}
-				s[dst] = '\n'
-			} else {
-				s[dst] = s[src]
-			}
-			src++
-			dst++
-		}
-		return s[:dst]
-	}
-	return s
-}
-
-var (
-	nul         = []byte("\x00")
-	replacement = []byte("\ufffd")
-)
-
-// Text returns the unescaped text of a text, comment or doctype token. The
-// contents of the returned slice may change on the next call to Next.
-func (z *Tokenizer) Text() []byte {
-	switch z.tt {
-	case TextToken, CommentToken, DoctypeToken:
-		s := z.buf[z.data.start:z.data.end]
-		z.data.start = z.raw.end
-		z.data.end = z.raw.end
-		s = convertNewlines(s)
-		if (z.convertNUL || z.tt == CommentToken) && bytes.Contains(s, nul) {
-			s = bytes.Replace(s, nul, replacement, -1)
-		}
-		if !z.textIsRaw {
-			s = unescape(s, false)
-		}
-		return s
-	}
-	return nil
-}
-
-// TagName returns the lower-cased name of a tag token (the `img` out of
-// `<IMG SRC="foo">`) and whether the tag has attributes.
-// The contents of the returned slice may change on the next call to Next.
-func (z *Tokenizer) TagName() (name []byte, hasAttr bool) {
-	if z.data.start < z.data.end {
-		switch z.tt {
-		case StartTagToken, EndTagToken, SelfClosingTagToken:
-			s := z.buf[z.data.start:z.data.end]
-			z.data.start = z.raw.end
-			z.data.end = z.raw.end
-			return lower(s), z.nAttrReturned < len(z.attr)
-		}
-	}
-	return nil, false
-}
-
-// TagAttr returns the lower-cased key and unescaped value of the next unparsed
-// attribute for the current tag token and whether there are more attributes.
-// The contents of the returned slices may change on the next call to Next.
-func (z *Tokenizer) TagAttr() (key, val []byte, moreAttr bool) {
-	if z.nAttrReturned < len(z.attr) {
-		switch z.tt {
-		case StartTagToken, SelfClosingTagToken:
-			x := z.attr[z.nAttrReturned]
-			z.nAttrReturned++
-			key = z.buf[x[0].start:x[0].end]
-			val = z.buf[x[1].start:x[1].end]
-			return lower(key), unescape(convertNewlines(val), true), z.nAttrReturned < len(z.attr)
-		}
-	}
-	return nil, nil, false
-}
-
-// Token returns the next Token. The result's Data and Attr values remain valid
-// after subsequent Next calls.
-func (z *Tokenizer) Token() Token {
-	t := Token{Type: z.tt}
-	switch z.tt {
-	case TextToken, CommentToken, DoctypeToken:
-		t.Data = string(z.Text())
-	case StartTagToken, SelfClosingTagToken, EndTagToken:
-		name, moreAttr := z.TagName()
-		for moreAttr {
-			var key, val []byte
-			key, val, moreAttr = z.TagAttr()
-			t.Attr = append(t.Attr, Attribute{"", atom.String(key), string(val)})
-		}
-		if a := atom.Lookup(name); a != 0 {
-			t.DataAtom, t.Data = a, a.String()
-		} else {
-			t.DataAtom, t.Data = 0, string(name)
-		}
-	}
-	return t
-}
-
-// NewTokenizer returns a new HTML Tokenizer for the given Reader.
-// The input is assumed to be UTF-8 encoded.
-func NewTokenizer(r io.Reader) *Tokenizer {
-	return NewTokenizerFragment(r, "")
-}
-
-// NewTokenizerFragment returns a new HTML Tokenizer for the given Reader, for
-// tokenizing an exisitng element's InnerHTML fragment. contextTag is that
-// element's tag, such as "div" or "iframe".
-//
-// For example, how the InnerHTML "a<b" is tokenized depends on whether it is
-// for a <p> tag or a <script> tag.
-//
-// The input is assumed to be UTF-8 encoded.
-func NewTokenizerFragment(r io.Reader, contextTag string) *Tokenizer {
-	z := &Tokenizer{
-		r:   r,
-		buf: make([]byte, 0, 4096),
-	}
-	if contextTag != "" {
-		switch s := strings.ToLower(contextTag); s {
-		case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "title", "textarea", "xmp":
-			z.rawTag = s
-		}
-	}
-	return z
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/html/token_test.go gcc-4.8.1/libgo/go/exp/html/token_test.go
--- gcc-4.8.1.orig/libgo/go/exp/html/token_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/html/token_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,679 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package html
-
-import (
-	"bytes"
-	"io"
-	"io/ioutil"
-	"runtime"
-	"strings"
-	"testing"
-)
-
-type tokenTest struct {
-	// A short description of the test case.
-	desc string
-	// The HTML to parse.
-	html string
-	// The string representations of the expected tokens, joined by '$'.
-	golden string
-}
-
-var tokenTests = []tokenTest{
-	{
-		"empty",
-		"",
-		"",
-	},
-	// A single text node. The tokenizer should not break text nodes on whitespace,
-	// nor should it normalize whitespace within a text node.
-	{
-		"text",
-		"foo  bar",
-		"foo  bar",
-	},
-	// An entity.
-	{
-		"entity",
-		"one &lt; two",
-		"one &lt; two",
-	},
-	// A start, self-closing and end tag. The tokenizer does not care if the start
-	// and end tokens don't match; that is the job of the parser.
-	{
-		"tags",
-		"<a>b<c/>d</e>",
-		"<a>$b$<c/>$d$</e>",
-	},
-	// Angle brackets that aren't a tag.
-	{
-		"not a tag #0",
-		"<",
-		"&lt;",
-	},
-	{
-		"not a tag #1",
-		"</",
-		"&lt;/",
-	},
-	{
-		"not a tag #2",
-		"</>",
-		"",
-	},
-	{
-		"not a tag #3",
-		"a</>b",
-		"a$b",
-	},
-	{
-		"not a tag #4",
-		"</ >",
-		"<!-- -->",
-	},
-	{
-		"not a tag #5",
-		"</.",
-		"<!--.-->",
-	},
-	{
-		"not a tag #6",
-		"</.>",
-		"<!--.-->",
-	},
-	{
-		"not a tag #7",
-		"a < b",
-		"a &lt; b",
-	},
-	{
-		"not a tag #8",
-		"<.>",
-		"&lt;.&gt;",
-	},
-	{
-		"not a tag #9",
-		"a<<<b>>>c",
-		"a&lt;&lt;$<b>$&gt;&gt;c",
-	},
-	{
-		"not a tag #10",
-		"if x<0 and y < 0 then x*y>0",
-		"if x&lt;0 and y &lt; 0 then x*y&gt;0",
-	},
-	// EOF in a tag name.
-	{
-		"tag name eof #0",
-		"<a",
-		"",
-	},
-	{
-		"tag name eof #1",
-		"<a ",
-		"",
-	},
-	{
-		"tag name eof #2",
-		"a<b",
-		"a",
-	},
-	{
-		"tag name eof #3",
-		"<a><b",
-		"<a>",
-	},
-	{
-		"tag name eof #4",
-		`<a x`,
-		``,
-	},
-	// Some malformed tags that are missing a '>'.
-	{
-		"malformed tag #0",
-		`<p</p>`,
-		`<p< p="">`,
-	},
-	{
-		"malformed tag #1",
-		`<p </p>`,
-		`<p <="" p="">`,
-	},
-	{
-		"malformed tag #2",
-		`<p id`,
-		``,
-	},
-	{
-		"malformed tag #3",
-		`<p id=`,
-		``,
-	},
-	{
-		"malformed tag #4",
-		`<p id=>`,
-		`<p id="">`,
-	},
-	{
-		"malformed tag #5",
-		`<p id=0`,
-		``,
-	},
-	{
-		"malformed tag #6",
-		`<p id=0</p>`,
-		`<p id="0&lt;/p">`,
-	},
-	{
-		"malformed tag #7",
-		`<p id="0</p>`,
-		``,
-	},
-	{
-		"malformed tag #8",
-		`<p id="0"</p>`,
-		`<p id="0" <="" p="">`,
-	},
-	{
-		"malformed tag #9",
-		`<p></p id`,
-		`<p>`,
-	},
-	// Raw text and RCDATA.
-	{
-		"basic raw text",
-		"<script><a></b></script>",
-		"<script>$&lt;a&gt;&lt;/b&gt;$</script>",
-	},
-	{
-		"unfinished script end tag",
-		"<SCRIPT>a</SCR",
-		"<script>$a&lt;/SCR",
-	},
-	{
-		"broken script end tag",
-		"<SCRIPT>a</SCR ipt>",
-		"<script>$a&lt;/SCR ipt&gt;",
-	},
-	{
-		"EOF in script end tag",
-		"<SCRIPT>a</SCRipt",
-		"<script>$a&lt;/SCRipt",
-	},
-	{
-		"scriptx end tag",
-		"<SCRIPT>a</SCRiptx",
-		"<script>$a&lt;/SCRiptx",
-	},
-	{
-		"' ' completes script end tag",
-		"<SCRIPT>a</SCRipt ",
-		"<script>$a",
-	},
-	{
-		"'>' completes script end tag",
-		"<SCRIPT>a</SCRipt>",
-		"<script>$a$</script>",
-	},
-	{
-		"self-closing script end tag",
-		"<SCRIPT>a</SCRipt/>",
-		"<script>$a$</script>",
-	},
-	{
-		"nested script tag",
-		"<SCRIPT>a</SCRipt<script>",
-		"<script>$a&lt;/SCRipt&lt;script&gt;",
-	},
-	{
-		"script end tag after unfinished",
-		"<SCRIPT>a</SCRipt</script>",
-		"<script>$a&lt;/SCRipt$</script>",
-	},
-	{
-		"script/style mismatched tags",
-		"<script>a</style>",
-		"<script>$a&lt;/style&gt;",
-	},
-	{
-		"style element with entity",
-		"<style>&apos;",
-		"<style>$&amp;apos;",
-	},
-	{
-		"textarea with tag",
-		"<textarea><div></textarea>",
-		"<textarea>$&lt;div&gt;$</textarea>",
-	},
-	{
-		"title with tag and entity",
-		"<title><b>K&amp;R C</b></title>",
-		"<title>$&lt;b&gt;K&amp;R C&lt;/b&gt;$</title>",
-	},
-	// DOCTYPE tests.
-	{
-		"Proper DOCTYPE",
-		"<!DOCTYPE html>",
-		"<!DOCTYPE html>",
-	},
-	{
-		"DOCTYPE with no space",
-		"<!doctypehtml>",
-		"<!DOCTYPE html>",
-	},
-	{
-		"DOCTYPE with two spaces",
-		"<!doctype  html>",
-		"<!DOCTYPE html>",
-	},
-	{
-		"looks like DOCTYPE but isn't",
-		"<!DOCUMENT html>",
-		"<!--DOCUMENT html-->",
-	},
-	{
-		"DOCTYPE at EOF",
-		"<!DOCtype",
-		"<!DOCTYPE >",
-	},
-	// XML processing instructions.
-	{
-		"XML processing instruction",
-		"<?xml?>",
-		"<!--?xml?-->",
-	},
-	// Comments.
-	{
-		"comment0",
-		"abc<b><!-- skipme --></b>def",
-		"abc$<b>$<!-- skipme -->$</b>$def",
-	},
-	{
-		"comment1",
-		"a<!-->z",
-		"a$<!---->$z",
-	},
-	{
-		"comment2",
-		"a<!--->z",
-		"a$<!---->$z",
-	},
-	{
-		"comment3",
-		"a<!--x>-->z",
-		"a$<!--x>-->$z",
-	},
-	{
-		"comment4",
-		"a<!--x->-->z",
-		"a$<!--x->-->$z",
-	},
-	{
-		"comment5",
-		"a<!>z",
-		"a$<!---->$z",
-	},
-	{
-		"comment6",
-		"a<!->z",
-		"a$<!----->$z",
-	},
-	{
-		"comment7",
-		"a<!---<>z",
-		"a$<!---<>z-->",
-	},
-	{
-		"comment8",
-		"a<!--z",
-		"a$<!--z-->",
-	},
-	{
-		"comment9",
-		"a<!--z-",
-		"a$<!--z-->",
-	},
-	{
-		"comment10",
-		"a<!--z--",
-		"a$<!--z-->",
-	},
-	{
-		"comment11",
-		"a<!--z---",
-		"a$<!--z--->",
-	},
-	{
-		"comment12",
-		"a<!--z----",
-		"a$<!--z---->",
-	},
-	{
-		"comment13",
-		"a<!--x--!>z",
-		"a$<!--x-->$z",
-	},
-	// An attribute with a backslash.
-	{
-		"backslash",
-		`<p id="a\"b">`,
-		`<p id="a\" b"="">`,
-	},
-	// Entities, tag name and attribute key lower-casing, and whitespace
-	// normalization within a tag.
-	{
-		"tricky",
-		"<p \t\n iD=\"a&quot;B\"  foo=\"bar\"><EM>te&lt;&amp;;xt</em></p>",
-		`<p id="a&#34;B" foo="bar">$<em>$te&lt;&amp;;xt$</em>$</p>`,
-	},
-	// A nonexistent entity. Tokenizing and converting back to a string should
-	// escape the "&" to become "&amp;".
-	{
-		"noSuchEntity",
-		`<a b="c&noSuchEntity;d">&lt;&alsoDoesntExist;&`,
-		`<a b="c&amp;noSuchEntity;d">$&lt;&amp;alsoDoesntExist;&amp;`,
-	},
-	{
-		"entity without semicolon",
-		`&notit;&notin;<a b="q=z&amp=5&notice=hello&not;=world">`,
-		`Â¬it;âˆ‰$<a b="q=z&amp;amp=5&amp;notice=helloÂ¬=world">`,
-	},
-	{
-		"entity with digits",
-		"&frac12;",
-		"Â½",
-	},
-	// Attribute tests:
-	// http://dev.w3.org/html5/spec/Overview.html#attributes-0
-	{
-		"Empty attribute",
-		`<input disabled FOO>`,
-		`<input disabled="" foo="">`,
-	},
-	{
-		"Empty attribute, whitespace",
-		`<input disabled FOO >`,
-		`<input disabled="" foo="">`,
-	},
-	{
-		"Unquoted attribute value",
-		`<input value=yes FOO=BAR>`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Unquoted attribute value, spaces",
-		`<input value = yes FOO = BAR>`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Unquoted attribute value, trailing space",
-		`<input value=yes FOO=BAR >`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Single-quoted attribute value",
-		`<input value='yes' FOO='BAR'>`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Single-quoted attribute value, trailing space",
-		`<input value='yes' FOO='BAR' >`,
-		`<input value="yes" foo="BAR">`,
-	},
-	{
-		"Double-quoted attribute value",
-		`<input value="I'm an attribute" FOO="BAR">`,
-		`<input value="I&#39;m an attribute" foo="BAR">`,
-	},
-	{
-		"Attribute name characters",
-		`<meta http-equiv="content-type">`,
-		`<meta http-equiv="content-type">`,
-	},
-	{
-		"Mixed attributes",
-		`a<P V="0 1" w='2' X=3 y>z`,
-		`a$<p v="0 1" w="2" x="3" y="">$z`,
-	},
-	{
-		"Attributes with a solitary single quote",
-		`<p id=can't><p id=won't>`,
-		`<p id="can&#39;t">$<p id="won&#39;t">`,
-	},
-}
-
-func TestTokenizer(t *testing.T) {
-loop:
-	for _, tt := range tokenTests {
-		z := NewTokenizer(strings.NewReader(tt.html))
-		if tt.golden != "" {
-			for i, s := range strings.Split(tt.golden, "$") {
-				if z.Next() == ErrorToken {
-					t.Errorf("%s token %d: want %q got error %v", tt.desc, i, s, z.Err())
-					continue loop
-				}
-				actual := z.Token().String()
-				if s != actual {
-					t.Errorf("%s token %d: want %q got %q", tt.desc, i, s, actual)
-					continue loop
-				}
-			}
-		}
-		z.Next()
-		if z.Err() != io.EOF {
-			t.Errorf("%s: want EOF got %q", tt.desc, z.Err())
-		}
-	}
-}
-
-type unescapeTest struct {
-	// A short description of the test case.
-	desc string
-	// The HTML text.
-	html string
-	// The unescaped text.
-	unescaped string
-}
-
-var unescapeTests = []unescapeTest{
-	// Handle no entities.
-	{
-		"copy",
-		"A\ttext\nstring",
-		"A\ttext\nstring",
-	},
-	// Handle simple named entities.
-	{
-		"simple",
-		"&amp; &gt; &lt;",
-		"& > <",
-	},
-	// Handle hitting the end of the string.
-	{
-		"stringEnd",
-		"&amp &amp",
-		"& &",
-	},
-	// Handle entities with two codepoints.
-	{
-		"multiCodepoint",
-		"text &gesl; blah",
-		"text \u22db\ufe00 blah",
-	},
-	// Handle decimal numeric entities.
-	{
-		"decimalEntity",
-		"Delta = &#916; ",
-		"Delta = Î” ",
-	},
-	// Handle hexadecimal numeric entities.
-	{
-		"hexadecimalEntity",
-		"Lambda = &#x3bb; = &#X3Bb ",
-		"Lambda = Î» = Î» ",
-	},
-	// Handle numeric early termination.
-	{
-		"numericEnds",
-		"&# &#x &#128;43 &copy = &#169f = &#xa9",
-		"&# &#x â‚¬43 Â© = Â©f = Â©",
-	},
-	// Handle numeric ISO-8859-1 entity replacements.
-	{
-		"numericReplacements",
-		"Footnote&#x87;",
-		"Footnoteâ€¡",
-	},
-}
-
-func TestUnescape(t *testing.T) {
-	for _, tt := range unescapeTests {
-		unescaped := UnescapeString(tt.html)
-		if unescaped != tt.unescaped {
-			t.Errorf("TestUnescape %s: want %q, got %q", tt.desc, tt.unescaped, unescaped)
-		}
-	}
-}
-
-func TestUnescapeEscape(t *testing.T) {
-	ss := []string{
-		``,
-		`abc def`,
-		`a & b`,
-		`a&amp;b`,
-		`a &amp b`,
-		`&quot;`,
-		`"`,
-		`"<&>"`,
-		`&quot;&lt;&amp;&gt;&quot;`,
-		`3&5==1 && 0<1, "0&lt;1", a+acute=&aacute;`,
-		`The special characters are: <, >, &, ' and "`,
-	}
-	for _, s := range ss {
-		if got := UnescapeString(EscapeString(s)); got != s {
-			t.Errorf("got %q want %q", got, s)
-		}
-	}
-}
-
-func TestBufAPI(t *testing.T) {
-	s := "0<a>1</a>2<b>3<a>4<a>5</a>6</b>7</a>8<a/>9"
-	z := NewTokenizer(bytes.NewBufferString(s))
-	var result bytes.Buffer
-	depth := 0
-loop:
-	for {
-		tt := z.Next()
-		switch tt {
-		case ErrorToken:
-			if z.Err() != io.EOF {
-				t.Error(z.Err())
-			}
-			break loop
-		case TextToken:
-			if depth > 0 {
-				result.Write(z.Text())
-			}
-		case StartTagToken, EndTagToken:
-			tn, _ := z.TagName()
-			if len(tn) == 1 && tn[0] == 'a' {
-				if tt == StartTagToken {
-					depth++
-				} else {
-					depth--
-				}
-			}
-		}
-	}
-	u := "14567"
-	v := string(result.Bytes())
-	if u != v {
-		t.Errorf("TestBufAPI: want %q got %q", u, v)
-	}
-}
-
-func TestConvertNewlines(t *testing.T) {
-	testCases := map[string]string{
-		"Mac\rDOS\r\nUnix\n":    "Mac\nDOS\nUnix\n",
-		"Unix\nMac\rDOS\r\n":    "Unix\nMac\nDOS\n",
-		"DOS\r\nDOS\r\nDOS\r\n": "DOS\nDOS\nDOS\n",
-		"":         "",
-		"\n":       "\n",
-		"\n\r":     "\n\n",
-		"\r":       "\n",
-		"\r\n":     "\n",
-		"\r\n\n":   "\n\n",
-		"\r\n\r":   "\n\n",
-		"\r\n\r\n": "\n\n",
-		"\r\r":     "\n\n",
-		"\r\r\n":   "\n\n",
-		"\r\r\n\n": "\n\n\n",
-		"\r\r\r\n": "\n\n\n",
-		"\r \n":    "\n \n",
-		"xyz":      "xyz",
-	}
-	for in, want := range testCases {
-		if got := string(convertNewlines([]byte(in))); got != want {
-			t.Errorf("input %q: got %q, want %q", in, got, want)
-		}
-	}
-}
-
-const (
-	rawLevel = iota
-	lowLevel
-	highLevel
-)
-
-func benchmarkTokenizer(b *testing.B, level int) {
-	buf, err := ioutil.ReadFile("testdata/go1.html")
-	if err != nil {
-		b.Fatalf("could not read testdata/go1.html: %v", err)
-	}
-	b.SetBytes(int64(len(buf)))
-	runtime.GC()
-	b.ReportAllocs()
-	b.ResetTimer()
-	for i := 0; i < b.N; i++ {
-		z := NewTokenizer(bytes.NewBuffer(buf))
-		for {
-			tt := z.Next()
-			if tt == ErrorToken {
-				if err := z.Err(); err != nil && err != io.EOF {
-					b.Fatalf("tokenizer error: %v", err)
-				}
-				break
-			}
-			switch level {
-			case rawLevel:
-				// Calling z.Raw just returns the raw bytes of the token. It does
-				// not unescape &lt; to <, or lower-case tag names and attribute keys.
-				z.Raw()
-			case lowLevel:
-				// Caling z.Text, z.TagName and z.TagAttr returns []byte values
-				// whose contents may change on the next call to z.Next.
-				switch tt {
-				case TextToken, CommentToken, DoctypeToken:
-					z.Text()
-				case StartTagToken, SelfClosingTagToken:
-					_, more := z.TagName()
-					for more {
-						_, _, more = z.TagAttr()
-					}
-				case EndTagToken:
-					z.TagName()
-				}
-			case highLevel:
-				// Calling z.Token converts []byte values to strings whose validity
-				// extend beyond the next call to z.Next.
-				z.Token()
-			}
-		}
-	}
-}
-
-func BenchmarkRawLevelTokenizer(b *testing.B)  { benchmarkTokenizer(b, rawLevel) }
-func BenchmarkLowLevelTokenizer(b *testing.B)  { benchmarkTokenizer(b, lowLevel) }
-func BenchmarkHighLevelTokenizer(b *testing.B) { benchmarkTokenizer(b, highLevel) }
diff -Naur gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux.go gcc-4.8.1/libgo/go/exp/inotify/inotify_linux.go
--- gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/inotify/inotify_linux.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,289 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-Package inotify implements a wrapper for the Linux inotify system.
-
-Example:
-    watcher, err := inotify.NewWatcher()
-    if err != nil {
-        log.Fatal(err)
-    }
-    err = watcher.Watch("/tmp")
-    if err != nil {
-        log.Fatal(err)
-    }
-    for {
-        select {
-        case ev := <-watcher.Event:
-            log.Println("event:", ev)
-        case err := <-watcher.Error:
-            log.Println("error:", err)
-        }
-    }
-
-*/
-package inotify
-
-import (
-	"errors"
-	"fmt"
-	"os"
-	"strings"
-	"syscall"
-	"unsafe"
-)
-
-type Event struct {
-	Mask   uint32 // Mask of events
-	Cookie uint32 // Unique cookie associating related events (for rename(2))
-	Name   string // File name (optional)
-}
-
-type watch struct {
-	wd    uint32 // Watch descriptor (as returned by the inotify_add_watch() syscall)
-	flags uint32 // inotify flags of this watch (see inotify(7) for the list of valid flags)
-}
-
-type Watcher struct {
-	fd       int               // File descriptor (as returned by the inotify_init() syscall)
-	watches  map[string]*watch // Map of inotify watches (key: path)
-	paths    map[int]string    // Map of watched paths (key: watch descriptor)
-	Error    chan error        // Errors are sent on this channel
-	Event    chan *Event       // Events are returned on this channel
-	done     chan bool         // Channel for sending a "quit message" to the reader goroutine
-	isClosed bool              // Set to true when Close() is first called
-}
-
-// NewWatcher creates and returns a new inotify instance using inotify_init(2)
-func NewWatcher() (*Watcher, error) {
-	fd, errno := syscall.InotifyInit()
-	if fd == -1 {
-		return nil, os.NewSyscallError("inotify_init", errno)
-	}
-	w := &Watcher{
-		fd:      fd,
-		watches: make(map[string]*watch),
-		paths:   make(map[int]string),
-		Event:   make(chan *Event),
-		Error:   make(chan error),
-		done:    make(chan bool, 1),
-	}
-
-	go w.readEvents()
-	return w, nil
-}
-
-// Close closes an inotify watcher instance
-// It sends a message to the reader goroutine to quit and removes all watches
-// associated with the inotify instance
-func (w *Watcher) Close() error {
-	if w.isClosed {
-		return nil
-	}
-	w.isClosed = true
-
-	// Send "quit" message to the reader goroutine
-	w.done <- true
-	for path := range w.watches {
-		w.RemoveWatch(path)
-	}
-
-	return nil
-}
-
-// AddWatch adds path to the watched file set.
-// The flags are interpreted as described in inotify_add_watch(2).
-func (w *Watcher) AddWatch(path string, flags uint32) error {
-	if w.isClosed {
-		return errors.New("inotify instance already closed")
-	}
-
-	watchEntry, found := w.watches[path]
-	if found {
-		watchEntry.flags |= flags
-		flags |= syscall.IN_MASK_ADD
-	}
-	wd, err := syscall.InotifyAddWatch(w.fd, path, flags)
-	if err != nil {
-		return &os.PathError{
-			Op:   "inotify_add_watch",
-			Path: path,
-			Err:  err,
-		}
-	}
-
-	if !found {
-		w.watches[path] = &watch{wd: uint32(wd), flags: flags}
-		w.paths[wd] = path
-	}
-	return nil
-}
-
-// Watch adds path to the watched file set, watching all events.
-func (w *Watcher) Watch(path string) error {
-	return w.AddWatch(path, IN_ALL_EVENTS)
-}
-
-// RemoveWatch removes path from the watched file set.
-func (w *Watcher) RemoveWatch(path string) error {
-	watch, ok := w.watches[path]
-	if !ok {
-		return errors.New(fmt.Sprintf("can't remove non-existent inotify watch for: %s", path))
-	}
-	success, errno := syscall.InotifyRmWatch(w.fd, watch.wd)
-	if success == -1 {
-		return os.NewSyscallError("inotify_rm_watch", errno)
-	}
-	delete(w.watches, path)
-	return nil
-}
-
-// readEvents reads from the inotify file descriptor, converts the
-// received events into Event objects and sends them via the Event channel
-func (w *Watcher) readEvents() {
-	var buf [syscall.SizeofInotifyEvent * 4096]byte
-
-	for {
-		n, err := syscall.Read(w.fd, buf[0:])
-		// See if there is a message on the "done" channel
-		var done bool
-		select {
-		case done = <-w.done:
-		default:
-		}
-
-		// If EOF or a "done" message is received
-		if n == 0 || done {
-			err := syscall.Close(w.fd)
-			if err != nil {
-				w.Error <- os.NewSyscallError("close", err)
-			}
-			close(w.Event)
-			close(w.Error)
-			return
-		}
-		if n < 0 {
-			w.Error <- os.NewSyscallError("read", err)
-			continue
-		}
-		if n < syscall.SizeofInotifyEvent {
-			w.Error <- errors.New("inotify: short read in readEvents()")
-			continue
-		}
-
-		var offset uint32 = 0
-		// We don't know how many events we just read into the buffer
-		// While the offset points to at least one whole event...
-		for offset <= uint32(n-syscall.SizeofInotifyEvent) {
-			// Point "raw" to the event in the buffer
-			raw := (*syscall.InotifyEvent)(unsafe.Pointer(&buf[offset]))
-			event := new(Event)
-			event.Mask = uint32(raw.Mask)
-			event.Cookie = uint32(raw.Cookie)
-			nameLen := uint32(raw.Len)
-			// If the event happened to the watched directory or the watched file, the kernel
-			// doesn't append the filename to the event, but we would like to always fill the
-			// the "Name" field with a valid filename. We retrieve the path of the watch from
-			// the "paths" map.
-			event.Name = w.paths[int(raw.Wd)]
-			if nameLen > 0 {
-				// Point "bytes" at the first byte of the filename
-				bytes := (*[syscall.PathMax]byte)(unsafe.Pointer(&buf[offset+syscall.SizeofInotifyEvent]))
-				// The filename is padded with NUL bytes. TrimRight() gets rid of those.
-				event.Name += "/" + strings.TrimRight(string(bytes[0:nameLen]), "\000")
-			}
-			// Send the event on the events channel
-			w.Event <- event
-
-			// Move to the next event in the buffer
-			offset += syscall.SizeofInotifyEvent + nameLen
-		}
-	}
-}
-
-// String formats the event e in the form
-// "filename: 0xEventMask = IN_ACCESS|IN_ATTRIB_|..."
-func (e *Event) String() string {
-	var events string = ""
-
-	m := e.Mask
-	for _, b := range eventBits {
-		if m&b.Value != 0 {
-			m &^= b.Value
-			events += "|" + b.Name
-		}
-	}
-
-	if m != 0 {
-		events += fmt.Sprintf("|%#x", m)
-	}
-	if len(events) > 0 {
-		events = " == " + events[1:]
-	}
-
-	return fmt.Sprintf("%q: %#x%s", e.Name, e.Mask, events)
-}
-
-const (
-	// Options for inotify_init() are not exported
-	// IN_CLOEXEC    uint32 = syscall.IN_CLOEXEC
-	// IN_NONBLOCK   uint32 = syscall.IN_NONBLOCK
-
-	// Options for AddWatch
-	IN_DONT_FOLLOW uint32 = syscall.IN_DONT_FOLLOW
-	IN_ONESHOT     uint32 = syscall.IN_ONESHOT
-	IN_ONLYDIR     uint32 = syscall.IN_ONLYDIR
-
-	// The "IN_MASK_ADD" option is not exported, as AddWatch
-	// adds it automatically, if there is already a watch for the given path
-	// IN_MASK_ADD      uint32 = syscall.IN_MASK_ADD
-
-	// Events
-	IN_ACCESS        uint32 = syscall.IN_ACCESS
-	IN_ALL_EVENTS    uint32 = syscall.IN_ALL_EVENTS
-	IN_ATTRIB        uint32 = syscall.IN_ATTRIB
-	IN_CLOSE         uint32 = syscall.IN_CLOSE
-	IN_CLOSE_NOWRITE uint32 = syscall.IN_CLOSE_NOWRITE
-	IN_CLOSE_WRITE   uint32 = syscall.IN_CLOSE_WRITE
-	IN_CREATE        uint32 = syscall.IN_CREATE
-	IN_DELETE        uint32 = syscall.IN_DELETE
-	IN_DELETE_SELF   uint32 = syscall.IN_DELETE_SELF
-	IN_MODIFY        uint32 = syscall.IN_MODIFY
-	IN_MOVE          uint32 = syscall.IN_MOVE
-	IN_MOVED_FROM    uint32 = syscall.IN_MOVED_FROM
-	IN_MOVED_TO      uint32 = syscall.IN_MOVED_TO
-	IN_MOVE_SELF     uint32 = syscall.IN_MOVE_SELF
-	IN_OPEN          uint32 = syscall.IN_OPEN
-
-	// Special events
-	IN_ISDIR      uint32 = syscall.IN_ISDIR
-	IN_IGNORED    uint32 = syscall.IN_IGNORED
-	IN_Q_OVERFLOW uint32 = syscall.IN_Q_OVERFLOW
-	IN_UNMOUNT    uint32 = syscall.IN_UNMOUNT
-)
-
-var eventBits = []struct {
-	Value uint32
-	Name  string
-}{
-	{IN_ACCESS, "IN_ACCESS"},
-	{IN_ATTRIB, "IN_ATTRIB"},
-	{IN_CLOSE, "IN_CLOSE"},
-	{IN_CLOSE_NOWRITE, "IN_CLOSE_NOWRITE"},
-	{IN_CLOSE_WRITE, "IN_CLOSE_WRITE"},
-	{IN_CREATE, "IN_CREATE"},
-	{IN_DELETE, "IN_DELETE"},
-	{IN_DELETE_SELF, "IN_DELETE_SELF"},
-	{IN_MODIFY, "IN_MODIFY"},
-	{IN_MOVE, "IN_MOVE"},
-	{IN_MOVED_FROM, "IN_MOVED_FROM"},
-	{IN_MOVED_TO, "IN_MOVED_TO"},
-	{IN_MOVE_SELF, "IN_MOVE_SELF"},
-	{IN_OPEN, "IN_OPEN"},
-	{IN_ISDIR, "IN_ISDIR"},
-	{IN_IGNORED, "IN_IGNORED"},
-	{IN_Q_OVERFLOW, "IN_Q_OVERFLOW"},
-	{IN_UNMOUNT, "IN_UNMOUNT"},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux_test.go gcc-4.8.1/libgo/go/exp/inotify/inotify_linux_test.go
--- gcc-4.8.1.orig/libgo/go/exp/inotify/inotify_linux_test.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/inotify/inotify_linux_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,106 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build linux
-
-package inotify
-
-import (
-	"io/ioutil"
-	"os"
-	"testing"
-	"time"
-)
-
-func TestInotifyEvents(t *testing.T) {
-	// Create an inotify watcher instance and initialize it
-	watcher, err := NewWatcher()
-	if err != nil {
-		t.Fatalf("NewWatcher failed: %s", err)
-	}
-
-	dir, err := ioutil.TempDir("", "inotify")
-	if err != nil {
-		t.Fatalf("TempDir failed: %s", err)
-	}
-	defer os.RemoveAll(dir)
-
-	// Add a watch for "_test"
-	err = watcher.Watch(dir)
-	if err != nil {
-		t.Fatalf("Watch failed: %s", err)
-	}
-
-	// Receive errors on the error channel on a separate goroutine
-	go func() {
-		for err := range watcher.Error {
-			t.Fatalf("error received: %s", err)
-		}
-	}()
-
-	testFile := dir + "/TestInotifyEvents.testfile"
-
-	// Receive events on the event channel on a separate goroutine
-	eventstream := watcher.Event
-	var eventsReceived = 0
-	done := make(chan bool)
-	go func() {
-		for event := range eventstream {
-			// Only count relevant events
-			if event.Name == testFile {
-				eventsReceived++
-				t.Logf("event received: %s", event)
-			} else {
-				t.Logf("unexpected event received: %s", event)
-			}
-		}
-		done <- true
-	}()
-
-	// Create a file
-	// This should add at least one event to the inotify event queue
-	_, err = os.OpenFile(testFile, os.O_WRONLY|os.O_CREATE, 0666)
-	if err != nil {
-		t.Fatalf("creating test file: %s", err)
-	}
-
-	// We expect this event to be received almost immediately, but let's wait 1 s to be sure
-	time.Sleep(1 * time.Second)
-	if eventsReceived == 0 {
-		t.Fatal("inotify event hasn't been received after 1 second")
-	}
-
-	// Try closing the inotify instance
-	t.Log("calling Close()")
-	watcher.Close()
-	t.Log("waiting for the event channel to become closed...")
-	select {
-	case <-done:
-		t.Log("event channel closed")
-	case <-time.After(1 * time.Second):
-		t.Fatal("event stream was not closed after 1 second")
-	}
-}
-
-func TestInotifyClose(t *testing.T) {
-	watcher, _ := NewWatcher()
-	watcher.Close()
-
-	done := make(chan bool)
-	go func() {
-		watcher.Close()
-		done <- true
-	}()
-
-	select {
-	case <-done:
-	case <-time.After(50 * time.Millisecond):
-		t.Fatal("double Close() test failed: second Close() call didn't return")
-	}
-
-	err := watcher.Watch(os.TempDir())
-	if err == nil {
-		t.Fatal("expected error on Watch() after Close(), got nil")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder.go gcc-4.8.1/libgo/go/exp/locale/collate/build/builder.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/builder.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,688 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"exp/norm"
-	"fmt"
-	"io"
-	"log"
-	"sort"
-	"strings"
-	"unicode/utf8"
-)
-
-// TODO: optimizations:
-// - expandElem is currently 20K. By putting unique colElems in a separate
-//   table and having a byte array of indexes into this table, we can reduce
-//   the total size to about 7K. By also factoring out the length bytes, we
-//   can reduce this to about 6K.
-// - trie valueBlocks are currently 100K. There are a lot of sparse blocks
-//   and many consecutive values with the same stride. This can be further
-//   compacted.
-// - Compress secondary weights into 8 bits.
-// - Some LDML specs specify a context element. Currently we simply concatenate
-//   those.  Context can be implemented using the contraction trie. If Builder
-//   could analyze and detect when using a context makes sense, there is no
-//   need to expose this construct in the API.
-
-// A Builder builds a root collation table.  The user must specify the
-// collation elements for each entry.  A common use will be to base the weights
-// on those specified in the allkeys* file as provided by the UCA or CLDR.
-type Builder struct {
-	index  *trieBuilder
-	root   ordering
-	locale []*Tailoring
-	t      *table
-	err    error
-	built  bool
-
-	minNonVar int // lowest primary recorded for a variable
-	varTop    int // highest primary recorded for a non-variable
-
-	// indexes used for reusing expansions and contractions
-	expIndex map[string]int      // positions of expansions keyed by their string representation
-	ctHandle map[string]ctHandle // contraction handles keyed by a concatenation of the suffixes
-	ctElem   map[string]int      // contraction elements keyed by their string representation
-}
-
-// A Tailoring builds a collation table based on another collation table.
-// The table is defined by specifying tailorings to the underlying table.
-// See http://unicode.org/reports/tr35/ for an overview of tailoring
-// collation tables.  The CLDR contains pre-defined tailorings for a variety
-// of languages (See http://www.unicode.org/Public/cldr/2.0.1/core.zip.)
-type Tailoring struct {
-	id      string
-	builder *Builder
-	index   *ordering
-
-	anchor *entry
-	before bool
-}
-
-// NewBuilder returns a new Builder.
-func NewBuilder() *Builder {
-	return &Builder{
-		index:    newTrieBuilder(),
-		root:     makeRootOrdering(),
-		expIndex: make(map[string]int),
-		ctHandle: make(map[string]ctHandle),
-		ctElem:   make(map[string]int),
-	}
-}
-
-// Tailoring returns a Tailoring for the given locale.  One should
-// have completed all calls to Add before calling Tailoring.
-func (b *Builder) Tailoring(locale string) *Tailoring {
-	t := &Tailoring{
-		id:      locale,
-		builder: b,
-		index:   b.root.clone(),
-	}
-	t.index.id = t.id
-	b.locale = append(b.locale, t)
-	return t
-}
-
-// Add adds an entry to the collation element table, mapping
-// a slice of runes to a sequence of collation elements.
-// A collation element is specified as list of weights: []int{primary, secondary, ...}.
-// The entries are typically obtained from a collation element table
-// as defined in http://www.unicode.org/reports/tr10/#Data_Table_Format.
-// Note that the collation elements specified by colelems are only used
-// as a guide.  The actual weights generated by Builder may differ.
-// The argument variables is a list of indices into colelems that should contain
-// a value for each colelem that is a variable. (See the reference above.)
-func (b *Builder) Add(runes []rune, colelems [][]int, variables []int) error {
-	str := string(runes)
-	elems := make([]rawCE, len(colelems))
-	for i, ce := range colelems {
-		if len(ce) == 0 {
-			break
-		}
-		elems[i] = makeRawCE(ce, 0)
-		if len(ce) == 1 {
-			elems[i].w[1] = defaultSecondary
-		}
-		if len(ce) <= 2 {
-			elems[i].w[2] = defaultTertiary
-		}
-		if len(ce) <= 3 {
-			elems[i].w[3] = ce[0]
-		}
-	}
-	for i, ce := range elems {
-		p := ce.w[0]
-		isvar := false
-		for _, j := range variables {
-			if i == j {
-				isvar = true
-			}
-		}
-		if isvar {
-			if p >= b.minNonVar && b.minNonVar > 0 {
-				return fmt.Errorf("primary value %X of variable is larger than the smallest non-variable %X", p, b.minNonVar)
-			}
-			if p > b.varTop {
-				b.varTop = p
-			}
-		} else if p > 1 { // 1 is a special primary value reserved for FFFE
-			if p <= b.varTop {
-				return fmt.Errorf("primary value %X of non-variable is smaller than the highest variable %X", p, b.varTop)
-			}
-			if b.minNonVar == 0 || p < b.minNonVar {
-				b.minNonVar = p
-			}
-		}
-	}
-	elems, err := convertLargeWeights(elems)
-	if err != nil {
-		return err
-	}
-	cccs := []uint8{}
-	nfd := norm.NFD.String(str)
-	for i := range nfd {
-		cccs = append(cccs, norm.NFD.PropertiesString(nfd[i:]).CCC())
-	}
-	if len(cccs) < len(elems) {
-		if len(cccs) > 2 {
-			return fmt.Errorf("number of decomposed characters should be greater or equal to the number of collation elements for len(colelems) > 3 (%d < %d)", len(cccs), len(elems))
-		}
-		p := len(elems) - 1
-		for ; p > 0 && elems[p].w[0] == 0; p-- {
-			elems[p].ccc = cccs[len(cccs)-1]
-		}
-		for ; p >= 0; p-- {
-			elems[p].ccc = cccs[0]
-		}
-	} else {
-		for i := range elems {
-			elems[i].ccc = cccs[i]
-		}
-	}
-	// doNorm in collate.go assumes that the following conditions hold.
-	if len(elems) > 1 && len(cccs) > 1 && cccs[0] != 0 && cccs[0] != cccs[len(cccs)-1] {
-		return fmt.Errorf("incompatible CCC values for expansion %X (%d)", runes, cccs)
-	}
-	b.root.newEntry(str, elems)
-	return nil
-}
-
-func (t *Tailoring) setAnchor(anchor string) error {
-	anchor = norm.NFC.String(anchor)
-	a := t.index.find(anchor)
-	if a == nil {
-		a = t.index.newEntry(anchor, nil)
-		a.implicit = true
-		a.modified = true
-		for _, r := range []rune(anchor) {
-			e := t.index.find(string(r))
-			e.lock = true
-		}
-	}
-	t.anchor = a
-	return nil
-}
-
-// SetAnchor sets the point after which elements passed in subsequent calls to
-// Insert will be inserted.  It is equivalent to the reset directive in an LDML
-// specification.  See Insert for an example.
-// SetAnchor supports the following logical reset positions:
-// <first_tertiary_ignorable/>, <last_teriary_ignorable/>, <first_primary_ignorable/>,
-// and <last_non_ignorable/>.
-func (t *Tailoring) SetAnchor(anchor string) error {
-	if err := t.setAnchor(anchor); err != nil {
-		return err
-	}
-	t.before = false
-	return nil
-}
-
-// SetAnchorBefore is similar to SetAnchor, except that subsequent calls to
-// Insert will insert entries before the anchor.
-func (t *Tailoring) SetAnchorBefore(anchor string) error {
-	if err := t.setAnchor(anchor); err != nil {
-		return err
-	}
-	t.before = true
-	return nil
-}
-
-// Insert sets the ordering of str relative to the entry set by the previous
-// call to SetAnchor or Insert.  The argument extend corresponds
-// to the extend elements as defined in LDML.  A non-empty value for extend
-// will cause the collation elements corresponding to extend to be appended
-// to the collation elements generated for the entry added by Insert.
-// This has the same net effect as sorting str after the string anchor+extend.
-// See http://www.unicode.org/reports/tr10/#Tailoring_Example for details
-// on parametric tailoring and http://unicode.org/reports/tr35/#Collation_Elements
-// for full details on LDML.
-//
-// Examples: create a tailoring for Swedish, where "Ã¤" is ordered after "z"
-// at the primary sorting level:
-//      t := b.Tailoring("se")
-// 		t.SetAnchor("z")
-// 		t.Insert(collate.Primary, "Ã¤", "")
-// Order "Ã¼" after "ue" at the secondary sorting level:
-//		t.SetAnchor("ue")
-//		t.Insert(collate.Secondary, "Ã¼","")
-// or
-//		t.SetAnchor("u")
-//		t.Insert(collate.Secondary, "Ã¼", "e")
-// Order "q" afer "ab" at the secondary level and "Q" after "q"
-// at the tertiary level:
-// 		t.SetAnchor("ab")
-// 		t.Insert(collate.Secondary, "q", "")
-// 		t.Insert(collate.Tertiary, "Q", "")
-// Order "b" before "a":
-//      t.SetAnchorBefore("a")
-//      t.Insert(collate.Primary, "b", "")
-// Order "0" after the last primary ignorable:
-//      t.SetAnchor("<last_primary_ignorable/>")
-//      t.Insert(collate.Primary, "0", "")
-func (t *Tailoring) Insert(level collate.Level, str, extend string) error {
-	if t.anchor == nil {
-		return fmt.Errorf("%s:Insert: no anchor point set for tailoring of %s", t.id, str)
-	}
-	str = norm.NFC.String(str)
-	e := t.index.find(str)
-	if e == nil {
-		e = t.index.newEntry(str, nil)
-	} else if e.logical != noAnchor {
-		return fmt.Errorf("%s:Insert: cannot reinsert logical reset position %q", t.id, e.str)
-	}
-	if e.lock {
-		return fmt.Errorf("%s:Insert: cannot reinsert element %q", t.id, e.str)
-	}
-	a := t.anchor
-	// Find the first element after the anchor which differs at a level smaller or
-	// equal to the given level.  Then insert at this position.
-	// See http://unicode.org/reports/tr35/#Collation_Elements, Section 5.14.5 for details.
-	e.before = t.before
-	if t.before {
-		t.before = false
-		if a.prev == nil {
-			a.insertBefore(e)
-		} else {
-			for a = a.prev; a.level > level; a = a.prev {
-			}
-			a.insertAfter(e)
-		}
-		e.level = level
-	} else {
-		for ; a.level > level; a = a.next {
-		}
-		e.level = a.level
-		if a != e {
-			a.insertAfter(e)
-			a.level = level
-		} else {
-			// We don't set a to prev itself. This has the effect of the entry
-			// getting new collation elements that are an increment of itself.
-			// This is intentional.
-			a.prev.level = level
-		}
-	}
-	e.extend = norm.NFD.String(extend)
-	e.exclude = false
-	e.modified = true
-	e.elems = nil
-	t.anchor = e
-	return nil
-}
-
-func (o *ordering) getWeight(e *entry) []rawCE {
-	if len(e.elems) == 0 && e.logical == noAnchor {
-		if e.implicit {
-			for _, r := range e.runes {
-				e.elems = append(e.elems, o.getWeight(o.find(string(r)))...)
-			}
-		} else if e.before {
-			count := [collate.Identity + 1]int{}
-			a := e
-			for ; a.elems == nil && !a.implicit; a = a.next {
-				count[a.level]++
-			}
-			e.elems = []rawCE{makeRawCE(a.elems[0].w, a.elems[0].ccc)}
-			for i := collate.Primary; i < collate.Quaternary; i++ {
-				if count[i] != 0 {
-					e.elems[0].w[i] -= count[i]
-					break
-				}
-			}
-			if e.prev != nil {
-				o.verifyWeights(e.prev, e, e.prev.level)
-			}
-		} else {
-			prev := e.prev
-			e.elems = nextWeight(prev.level, o.getWeight(prev))
-			o.verifyWeights(e, e.next, e.level)
-		}
-	}
-	return e.elems
-}
-
-func (o *ordering) addExtension(e *entry) {
-	if ex := o.find(e.extend); ex != nil {
-		e.elems = append(e.elems, ex.elems...)
-	} else {
-		for _, r := range []rune(e.extend) {
-			e.elems = append(e.elems, o.find(string(r)).elems...)
-		}
-	}
-	e.extend = ""
-}
-
-func (o *ordering) verifyWeights(a, b *entry, level collate.Level) error {
-	if level == collate.Identity || b == nil || b.elems == nil || a.elems == nil {
-		return nil
-	}
-	for i := collate.Primary; i < level; i++ {
-		if a.elems[0].w[i] < b.elems[0].w[i] {
-			return nil
-		}
-	}
-	if a.elems[0].w[level] >= b.elems[0].w[level] {
-		err := fmt.Errorf("%s:overflow: collation elements of %q (%X) overflows those of %q (%X) at level %d (%X >= %X)", o.id, a.str, a.runes, b.str, b.runes, level, a.elems, b.elems)
-		log.Println(err)
-		// TODO: return the error instead, or better, fix the conflicting entry by making room.
-	}
-	return nil
-}
-
-func (b *Builder) error(e error) {
-	if e != nil {
-		b.err = e
-	}
-}
-
-func (b *Builder) errorID(locale string, e error) {
-	if e != nil {
-		b.err = fmt.Errorf("%s:%v", locale, e)
-	}
-}
-
-// patchNorm ensures that NFC and NFD counterparts are consistent.
-func (o *ordering) patchNorm() {
-	// Insert the NFD counterparts, if necessary.
-	for _, e := range o.ordered {
-		nfd := norm.NFD.String(e.str)
-		if nfd != e.str {
-			if e0 := o.find(nfd); e0 != nil && !e0.modified {
-				e0.elems = e.elems
-			} else if e.modified && !equalCEArrays(o.genColElems(nfd), e.elems) {
-				e := o.newEntry(nfd, e.elems)
-				e.modified = true
-			}
-		}
-	}
-	// Update unchanged composed forms if one of their parts changed.
-	for _, e := range o.ordered {
-		nfd := norm.NFD.String(e.str)
-		if e.modified || nfd == e.str {
-			continue
-		}
-		if e0 := o.find(nfd); e0 != nil {
-			e.elems = e0.elems
-		} else {
-			e.elems = o.genColElems(nfd)
-			if norm.NFD.LastBoundary([]byte(nfd)) == 0 {
-				r := []rune(nfd)
-				head := string(r[0])
-				tail := ""
-				for i := 1; i < len(r); i++ {
-					s := norm.NFC.String(head + string(r[i]))
-					if e0 := o.find(s); e0 != nil && e0.modified {
-						head = s
-					} else {
-						tail += string(r[i])
-					}
-				}
-				e.elems = append(o.genColElems(head), o.genColElems(tail)...)
-			}
-		}
-	}
-	// Exclude entries for which the individual runes generate the same collation elements.
-	for _, e := range o.ordered {
-		if len(e.runes) > 1 && equalCEArrays(o.genColElems(e.str), e.elems) {
-			e.exclude = true
-		}
-	}
-}
-
-func (b *Builder) buildOrdering(o *ordering) {
-	for _, e := range o.ordered {
-		o.getWeight(e)
-	}
-	for _, e := range o.ordered {
-		o.addExtension(e)
-	}
-	o.patchNorm()
-	o.sort()
-	simplify(o)
-	b.processExpansions(o)   // requires simplify
-	b.processContractions(o) // requires simplify
-
-	t := newNode()
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if !e.skip() {
-			ce, err := e.encode()
-			b.errorID(o.id, err)
-			t.insert(e.runes[0], ce)
-		}
-	}
-	o.handle = b.index.addTrie(t)
-}
-
-func (b *Builder) build() (*table, error) {
-	if b.built {
-		return b.t, b.err
-	}
-	b.built = true
-	b.t = &table{
-		maxContractLen: utf8.UTFMax,
-		variableTop:    uint32(b.varTop),
-	}
-
-	b.buildOrdering(&b.root)
-	b.t.root = b.root.handle
-	for _, t := range b.locale {
-		b.buildOrdering(t.index)
-		if b.err != nil {
-			break
-		}
-	}
-	i, err := b.index.generate()
-	b.t.index = *i
-	b.error(err)
-	return b.t, b.err
-}
-
-// Build builds the root Collator.
-func (b *Builder) Build() (*collate.Collator, error) {
-	t, err := b.build()
-	if err != nil {
-		return nil, err
-	}
-	table := collate.Init(t)
-	if table == nil {
-		panic("generated table of incompatible type")
-	}
-	return collate.NewFromTable(table), nil
-}
-
-// Build builds a Collator for Tailoring t.
-func (t *Tailoring) Build() (*collate.Collator, error) {
-	// TODO: implement.
-	return nil, nil
-}
-
-// Print prints the tables for b and all its Tailorings as a Go file
-// that can be included in the Collate package.
-func (b *Builder) Print(w io.Writer) (n int, err error) {
-	p := func(nn int, e error) {
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	t, err := b.build()
-	if err != nil {
-		return 0, err
-	}
-	p(fmt.Fprintf(w, "var availableLocales = []string{"))
-	for _, loc := range b.locale {
-		p(fmt.Fprintf(w, "%q, ", loc.id))
-	}
-	p(fmt.Fprintln(w, "}\n"))
-	p(fmt.Fprintln(w, "var locales = map[string]tableIndex{"))
-	for _, loc := range b.locale {
-		p(fmt.Fprintf(w, "\t%q: ", loc.id))
-		p(t.fprintIndex(w, loc.index.handle))
-		p(fmt.Fprintln(w, ","))
-	}
-	p(fmt.Fprint(w, "}\n\n"))
-	n, _, err = t.fprint(w, "main")
-	return
-}
-
-// reproducibleFromNFKD checks whether the given expansion could be generated
-// from an NFKD expansion.
-func reproducibleFromNFKD(e *entry, exp, nfkd []rawCE) bool {
-	// Length must be equal.
-	if len(exp) != len(nfkd) {
-		return false
-	}
-	for i, ce := range exp {
-		// Primary and secondary values should be equal.
-		if ce.w[0] != nfkd[i].w[0] || ce.w[1] != nfkd[i].w[1] {
-			return false
-		}
-		// Tertiary values should be equal to maxTertiary for third element onwards.
-		// TODO: there seem to be a lot of cases in CLDR (e.g. ã­ in zh.xml) that can
-		// simply be dropped.  Try this out by dropping the following code.
-		if i >= 2 && ce.w[2] != maxTertiary {
-			return false
-		}
-		if _, err := makeCE(ce); err != nil {
-			// Simply return false. The error will be caught elsewhere.
-			return false
-		}
-	}
-	return true
-}
-
-func simplify(o *ordering) {
-	// Runes that are a starter of a contraction should not be removed.
-	// (To date, there is only Kannada character 0CCA.)
-	keep := make(map[rune]bool)
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if len(e.runes) > 1 {
-			keep[e.runes[0]] = true
-		}
-	}
-	// Tag entries for which the runes NFKD decompose to identical values.
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		s := e.str
-		nfkd := norm.NFKD.String(s)
-		nfd := norm.NFD.String(s)
-		if e.decompose || len(e.runes) > 1 || len(e.elems) == 1 || keep[e.runes[0]] || nfkd == nfd {
-			continue
-		}
-		if reproducibleFromNFKD(e, e.elems, o.genColElems(nfkd)) {
-			e.decompose = true
-		}
-	}
-}
-
-// appendExpansion converts the given collation sequence to
-// collation elements and adds them to the expansion table.
-// It returns an index to the expansion table.
-func (b *Builder) appendExpansion(e *entry) int {
-	t := b.t
-	i := len(t.expandElem)
-	ce := uint32(len(e.elems))
-	t.expandElem = append(t.expandElem, ce)
-	for _, w := range e.elems {
-		ce, err := makeCE(w)
-		if err != nil {
-			b.error(err)
-			return -1
-		}
-		t.expandElem = append(t.expandElem, ce)
-	}
-	return i
-}
-
-// processExpansions extracts data necessary to generate
-// the extraction tables.
-func (b *Builder) processExpansions(o *ordering) {
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if !e.expansion() {
-			continue
-		}
-		key := fmt.Sprintf("%v", e.elems)
-		i, ok := b.expIndex[key]
-		if !ok {
-			i = b.appendExpansion(e)
-			b.expIndex[key] = i
-		}
-		e.expansionIndex = i
-	}
-}
-
-func (b *Builder) processContractions(o *ordering) {
-	// Collate contractions per starter rune.
-	starters := []rune{}
-	cm := make(map[rune][]*entry)
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if e.contraction() {
-			if len(e.str) > b.t.maxContractLen {
-				b.t.maxContractLen = len(e.str)
-			}
-			r := e.runes[0]
-			if _, ok := cm[r]; !ok {
-				starters = append(starters, r)
-			}
-			cm[r] = append(cm[r], e)
-		}
-	}
-	// Add entries of single runes that are at a start of a contraction.
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if !e.contraction() {
-			r := e.runes[0]
-			if _, ok := cm[r]; ok {
-				cm[r] = append(cm[r], e)
-			}
-		}
-	}
-	// Build the tries for the contractions.
-	t := b.t
-	for _, r := range starters {
-		l := cm[r]
-		// Compute suffix strings. There are 31 different contraction suffix
-		// sets for 715 contractions and 82 contraction starter runes as of
-		// version 6.0.0.
-		sufx := []string{}
-		hasSingle := false
-		for _, e := range l {
-			if len(e.runes) > 1 {
-				sufx = append(sufx, string(e.runes[1:]))
-			} else {
-				hasSingle = true
-			}
-		}
-		if !hasSingle {
-			b.error(fmt.Errorf("no single entry for starter rune %U found", r))
-			continue
-		}
-		// Unique the suffix set.
-		sort.Strings(sufx)
-		key := strings.Join(sufx, "\n")
-		handle, ok := b.ctHandle[key]
-		if !ok {
-			var err error
-			handle, err = t.contractTries.appendTrie(sufx)
-			if err != nil {
-				b.error(err)
-			}
-			b.ctHandle[key] = handle
-		}
-		// Bucket sort entries in index order.
-		es := make([]*entry, len(l))
-		for _, e := range l {
-			var p, sn int
-			if len(e.runes) > 1 {
-				str := []byte(string(e.runes[1:]))
-				p, sn = t.contractTries.lookup(handle, str)
-				if sn != len(str) {
-					log.Fatalf("%s: processContractions: unexpected length for '%X'; len=%d; want %d", o.id, e.runes, sn, len(str))
-				}
-			}
-			if es[p] != nil {
-				log.Fatalf("%s: multiple contractions for position %d for rune %U", o.id, p, e.runes[0])
-			}
-			es[p] = e
-		}
-		// Create collation elements for contractions.
-		elems := []uint32{}
-		for _, e := range es {
-			ce, err := e.encodeBase()
-			b.errorID(o.id, err)
-			elems = append(elems, ce)
-		}
-		key = fmt.Sprintf("%v", elems)
-		i, ok := b.ctElem[key]
-		if !ok {
-			i = len(t.contractElem)
-			b.ctElem[key] = i
-			t.contractElem = append(t.contractElem, elems...)
-		}
-		// Store info in entry for starter rune.
-		es[0].contractionIndex = i
-		es[0].contractionHandle = handle
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/builder_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/builder_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/builder_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,290 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import "testing"
-
-// cjk returns an implicit collation element for a CJK rune.
-func cjk(r rune) []rawCE {
-	// A CJK character C is represented in the DUCET as
-	//   [.AAAA.0020.0002.C][.BBBB.0000.0000.C]
-	// Where AAAA is the most significant 15 bits plus a base value.
-	// Any base value will work for the test, so we pick the common value of FB40.
-	const base = 0xFB40
-	return []rawCE{
-		{w: []int{base + int(r>>15), defaultSecondary, defaultTertiary, int(r)}},
-		{w: []int{int(r&0x7FFF) | 0x8000, 0, 0, int(r)}},
-	}
-}
-
-func pCE(p int) []rawCE {
-	return mkCE([]int{p, defaultSecondary, defaultTertiary, 0}, 0)
-}
-
-func pqCE(p, q int) []rawCE {
-	return mkCE([]int{p, defaultSecondary, defaultTertiary, q}, 0)
-}
-
-func ptCE(p, t int) []rawCE {
-	return mkCE([]int{p, defaultSecondary, t, 0}, 0)
-}
-
-func ptcCE(p, t int, ccc uint8) []rawCE {
-	return mkCE([]int{p, defaultSecondary, t, 0}, ccc)
-}
-
-func sCE(s int) []rawCE {
-	return mkCE([]int{0, s, defaultTertiary, 0}, 0)
-}
-
-func stCE(s, t int) []rawCE {
-	return mkCE([]int{0, s, t, 0}, 0)
-}
-
-func scCE(s int, ccc uint8) []rawCE {
-	return mkCE([]int{0, s, defaultTertiary, 0}, ccc)
-}
-
-func mkCE(w []int, ccc uint8) []rawCE {
-	return []rawCE{rawCE{w, ccc}}
-}
-
-// ducetElem is used to define test data that is used to generate a table.
-type ducetElem struct {
-	str string
-	ces []rawCE
-}
-
-func newBuilder(t *testing.T, ducet []ducetElem) *Builder {
-	b := NewBuilder()
-	for _, e := range ducet {
-		ces := [][]int{}
-		for _, ce := range e.ces {
-			ces = append(ces, ce.w)
-		}
-		if err := b.Add([]rune(e.str), ces, nil); err != nil {
-			t.Errorf(err.Error())
-		}
-	}
-	b.t = &table{}
-	b.root.sort()
-	return b
-}
-
-type convertTest struct {
-	in, out []rawCE
-	err     bool
-}
-
-var convLargeTests = []convertTest{
-	{pCE(0xFB39), pCE(0xFB39), false},
-	{cjk(0x2F9B2), pqCE(0x3F9B2, 0x2F9B2), false},
-	{pCE(0xFB40), pCE(0), true},
-	{append(pCE(0xFB40), pCE(0)[0]), pCE(0), true},
-	{pCE(0xFFFE), pCE(illegalOffset), false},
-	{pCE(0xFFFF), pCE(illegalOffset + 1), false},
-}
-
-func TestConvertLarge(t *testing.T) {
-	for i, tt := range convLargeTests {
-		e := new(entry)
-		for _, ce := range tt.in {
-			e.elems = append(e.elems, makeRawCE(ce.w, ce.ccc))
-		}
-		elems, err := convertLargeWeights(e.elems)
-		if tt.err {
-			if err == nil {
-				t.Errorf("%d: expected error; none found", i)
-			}
-			continue
-		} else if err != nil {
-			t.Errorf("%d: unexpected error: %v", i, err)
-		}
-		if !equalCEArrays(elems, tt.out) {
-			t.Errorf("%d: conversion was %x; want %x", i, elems, tt.out)
-		}
-	}
-}
-
-// Collation element table for simplify tests.
-var simplifyTest = []ducetElem{
-	{"\u0300", sCE(30)}, // grave
-	{"\u030C", sCE(40)}, // caron
-	{"A", ptCE(100, 8)},
-	{"D", ptCE(104, 8)},
-	{"E", ptCE(105, 8)},
-	{"I", ptCE(110, 8)},
-	{"z", ptCE(130, 8)},
-	{"\u05F2", append(ptCE(200, 4), ptCE(200, 4)[0])},
-	{"\u05B7", sCE(80)},
-	{"\u00C0", append(ptCE(100, 8), sCE(30)...)},                                // A with grave, can be removed
-	{"\u00C8", append(ptCE(105, 8), sCE(30)...)},                                // E with grave
-	{"\uFB1F", append(ptCE(200, 4), ptCE(200, 4)[0], sCE(80)[0])},               // eliminated by NFD
-	{"\u00C8\u0302", ptCE(106, 8)},                                              // block previous from simplifying
-	{"\u01C5", append(ptCE(104, 9), ptCE(130, 4)[0], stCE(40, maxTertiary)[0])}, // eliminated by NFKD
-	// no removal: tertiary value of third element is not maxTertiary
-	{"\u2162", append(ptCE(110, 9), ptCE(110, 4)[0], ptCE(110, 8)[0])},
-}
-
-var genColTests = []ducetElem{
-	{"\uFA70", pqCE(0x1FA70, 0xFA70)},
-	{"A\u0300", append(ptCE(100, 8), sCE(30)...)},
-	{"A\u0300\uFA70", append(ptCE(100, 8), sCE(30)[0], pqCE(0x1FA70, 0xFA70)[0])},
-	{"A\u0300A\u0300", append(ptCE(100, 8), sCE(30)[0], ptCE(100, 8)[0], sCE(30)[0])},
-}
-
-func TestGenColElems(t *testing.T) {
-	b := newBuilder(t, simplifyTest[:5])
-
-	for i, tt := range genColTests {
-		res := b.root.genColElems(tt.str)
-		if !equalCEArrays(tt.ces, res) {
-			t.Errorf("%d: result %X; want %X", i, res, tt.ces)
-		}
-	}
-}
-
-type strArray []string
-
-func (sa strArray) contains(s string) bool {
-	for _, e := range sa {
-		if e == s {
-			return true
-		}
-	}
-	return false
-}
-
-var simplifyRemoved = strArray{"\u00C0", "\uFB1F"}
-var simplifyMarked = strArray{"\u01C5"}
-
-func TestSimplify(t *testing.T) {
-	b := newBuilder(t, simplifyTest)
-	o := &b.root
-	simplify(o)
-
-	for i, tt := range simplifyTest {
-		if simplifyRemoved.contains(tt.str) {
-			continue
-		}
-		e := o.find(tt.str)
-		if e.str != tt.str || !equalCEArrays(e.elems, tt.ces) {
-			t.Errorf("%d: found element %s -> %X; want %s -> %X", i, e.str, e.elems, tt.str, tt.ces)
-			break
-		}
-	}
-	var i, k int
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		gold := simplifyMarked.contains(e.str)
-		if gold {
-			k++
-		}
-		if gold != e.decompose {
-			t.Errorf("%d: %s has decompose %v; want %v", i, e.str, e.decompose, gold)
-		}
-		i++
-	}
-	if k != len(simplifyMarked) {
-		t.Errorf(" an entry that should be marked as decompose was deleted")
-	}
-}
-
-var expandTest = []ducetElem{
-	{"\u0300", append(scCE(29, 230), scCE(30, 230)...)},
-	{"\u00C0", append(ptCE(100, 8), scCE(30, 230)...)},
-	{"\u00C8", append(ptCE(105, 8), scCE(30, 230)...)},
-	{"\u00C9", append(ptCE(105, 8), scCE(30, 230)...)}, // identical expansion
-	{"\u05F2", append(ptCE(200, 4), ptCE(200, 4)[0], ptCE(200, 4)[0])},
-	{"\u01FF", append(ptCE(200, 4), ptcCE(201, 4, 0)[0], scCE(30, 230)[0])},
-}
-
-func TestExpand(t *testing.T) {
-	const (
-		totalExpansions = 5
-		totalElements   = 2 + 2 + 2 + 3 + 3 + totalExpansions
-	)
-	b := newBuilder(t, expandTest)
-	o := &b.root
-	b.processExpansions(o)
-
-	e := o.front()
-	for _, tt := range expandTest {
-		exp := b.t.expandElem[e.expansionIndex:]
-		if int(exp[0]) != len(tt.ces) {
-			t.Errorf("%U: len(expansion)==%d; want %d", []rune(tt.str)[0], exp[0], len(tt.ces))
-		}
-		exp = exp[1:]
-		for j, w := range tt.ces {
-			if ce, _ := makeCE(w); exp[j] != ce {
-				t.Errorf("%U: element %d is %X; want %X", []rune(tt.str)[0], j, exp[j], ce)
-			}
-		}
-		e, _ = e.nextIndexed()
-	}
-	// Verify uniquing.
-	if len(b.t.expandElem) != totalElements {
-		t.Errorf("len(expandElem)==%d; want %d", len(b.t.expandElem), totalElements)
-	}
-}
-
-var contractTest = []ducetElem{
-	{"abc", pCE(102)},
-	{"abd", pCE(103)},
-	{"a", pCE(100)},
-	{"ab", pCE(101)},
-	{"ac", pCE(104)},
-	{"bcd", pCE(202)},
-	{"b", pCE(200)},
-	{"bc", pCE(201)},
-	{"bd", pCE(203)},
-	// shares suffixes with a*
-	{"Ab", pCE(301)},
-	{"A", pCE(300)},
-	{"Ac", pCE(304)},
-	{"Abc", pCE(302)},
-	{"Abd", pCE(303)},
-	// starter to be ignored
-	{"z", pCE(1000)},
-}
-
-func TestContract(t *testing.T) {
-	const (
-		totalElements = 5 + 5 + 4
-	)
-	b := newBuilder(t, contractTest)
-	o := &b.root
-	b.processContractions(o)
-
-	indexMap := make(map[int]bool)
-	handleMap := make(map[rune]*entry)
-	for e := o.front(); e != nil; e, _ = e.nextIndexed() {
-		if e.contractionHandle.n > 0 {
-			handleMap[e.runes[0]] = e
-			indexMap[e.contractionHandle.index] = true
-		}
-	}
-	// Verify uniquing.
-	if len(indexMap) != 2 {
-		t.Errorf("number of tries is %d; want %d", len(indexMap), 2)
-	}
-	for _, tt := range contractTest {
-		e, ok := handleMap[[]rune(tt.str)[0]]
-		if !ok {
-			continue
-		}
-		str := tt.str[1:]
-		offset, n := b.t.contractTries.lookup(e.contractionHandle, []byte(str))
-		if len(str) != n {
-			t.Errorf("%s: bytes consumed==%d; want %d", tt.str, n, len(str))
-		}
-		ce := b.t.contractElem[offset+e.contractionIndex]
-		if want, _ := makeCE(tt.ces[0]); want != ce {
-			t.Errorf("%s: element %X; want %X", tt.str, ce, want)
-		}
-	}
-	if len(b.t.contractElem) != totalElements {
-		t.Errorf("len(expandElem)==%d; want %d", len(b.t.contractElem), totalElements)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem.go gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,365 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"fmt"
-	"unicode"
-)
-
-const (
-	defaultSecondary = 0x20
-	defaultTertiary  = 0x2
-	maxTertiary      = 0x1F
-)
-
-type rawCE struct {
-	w   []int
-	ccc uint8
-}
-
-func makeRawCE(w []int, ccc uint8) rawCE {
-	ce := rawCE{w: make([]int, 4), ccc: ccc}
-	copy(ce.w, w)
-	return ce
-}
-
-// A collation element is represented as an uint32.
-// In the typical case, a rune maps to a single collation element. If a rune
-// can be the start of a contraction or expands into multiple collation elements,
-// then the collation element that is associated with a rune will have a special
-// form to represent such m to n mappings.  Such special collation elements
-// have a value >= 0x80000000.
-
-// For normal collation elements, we assume that a collation element either has
-// a primary or non-default secondary value, not both.
-// Collation elements with a primary value are of the form
-// 01pppppp pppppppp ppppppp0 ssssssss
-//   - p* is primary collation value
-//   - s* is the secondary collation value
-// 00pppppp pppppppp ppppppps sssttttt, where
-//   - p* is primary collation value
-//   - s* offset of secondary from default value.
-//   - t* is the tertiary collation value
-// 100ttttt cccccccc pppppppp pppppppp
-//   - t* is the tertiar collation value
-//   - c* is the cannonical combining class
-//   - p* is the primary collation value
-// Collation elements with a secondary value are of the form
-// 1010cccc ccccssss ssssssss tttttttt, where
-//   - c* is the canonical combining class
-//   - s* is the secondary collation value
-//   - t* is the tertiary collation value
-const (
-	maxPrimaryBits          = 21
-	maxPrimaryCompactBits   = 16
-	maxSecondaryBits        = 12
-	maxSecondaryCompactBits = 8
-	maxCCCBits              = 8
-	maxSecondaryDiffBits    = 4
-	maxTertiaryBits         = 8
-	maxTertiaryCompactBits  = 5
-
-	isPrimary    = 0x40000000
-	isPrimaryCCC = 0x80000000
-	isSecondary  = 0xA0000000
-)
-
-func makeCE(rce rawCE) (uint32, error) {
-	weights := rce.w
-	if w := weights[0]; w >= 1<<maxPrimaryBits || w < 0 {
-		return 0, fmt.Errorf("makeCE: primary weight out of bounds: %x >= %x", w, 1<<maxPrimaryBits)
-	}
-	if w := weights[1]; w >= 1<<maxSecondaryBits || w < 0 {
-		return 0, fmt.Errorf("makeCE: secondary weight out of bounds: %x >= %x", w, 1<<maxSecondaryBits)
-	}
-	if w := weights[2]; w >= 1<<maxTertiaryBits || w < 0 {
-		return 0, fmt.Errorf("makeCE: tertiary weight out of bounds: %x >= %x", w, 1<<maxTertiaryBits)
-	}
-	ce := uint32(0)
-	if weights[0] != 0 {
-		if rce.ccc != 0 {
-			if weights[0] >= 1<<maxPrimaryCompactBits {
-				return 0, fmt.Errorf("makeCE: primary weight with non-zero CCC out of bounds: %x >= %x", weights[0], 1<<maxPrimaryCompactBits)
-			}
-			if weights[1] != defaultSecondary {
-				return 0, fmt.Errorf("makeCE: cannot combine non-default secondary value (%x) with non-zero CCC (%x)", weights[1], rce.ccc)
-			}
-			ce = uint32(weights[2] << (maxPrimaryCompactBits + maxCCCBits))
-			ce |= uint32(rce.ccc) << maxPrimaryCompactBits
-			ce |= uint32(weights[0])
-			ce |= isPrimaryCCC
-		} else if weights[2] == defaultTertiary {
-			if weights[1] >= 1<<maxSecondaryCompactBits {
-				return 0, fmt.Errorf("makeCE: secondary weight with non-zero primary out of bounds: %x >= %x", weights[1], 1<<maxSecondaryCompactBits)
-			}
-			ce = uint32(weights[0]<<(maxSecondaryCompactBits+1) + weights[1])
-			ce |= isPrimary
-		} else {
-			d := weights[1] - defaultSecondary + maxSecondaryDiffBits
-			if d >= 1<<maxSecondaryDiffBits || d < 0 {
-				return 0, fmt.Errorf("makeCE: secondary weight diff out of bounds: %x < 0 || %x > %x", d, d, 1<<maxSecondaryDiffBits)
-			}
-			if weights[2] >= 1<<maxTertiaryCompactBits {
-				return 0, fmt.Errorf("makeCE: tertiary weight with non-zero primary out of bounds: %x > %x (%X)", weights[2], 1<<maxTertiaryCompactBits, weights)
-			}
-			ce = uint32(weights[0]<<maxSecondaryDiffBits + d)
-			ce = ce<<maxTertiaryCompactBits + uint32(weights[2])
-		}
-	} else {
-		ce = uint32(weights[1]<<maxTertiaryBits + weights[2])
-		ce += uint32(rce.ccc) << (maxSecondaryBits + maxTertiaryBits)
-		ce |= isSecondary
-	}
-	return ce, nil
-}
-
-// For contractions, collation elements are of the form
-// 110bbbbb bbbbbbbb iiiiiiii iiiinnnn, where
-//   - n* is the size of the first node in the contraction trie.
-//   - i* is the index of the first node in the contraction trie.
-//   - b* is the offset into the contraction collation element table.
-// See contract.go for details on the contraction trie.
-const (
-	contractID            = 0xC0000000
-	maxNBits              = 4
-	maxTrieIndexBits      = 12
-	maxContractOffsetBits = 13
-)
-
-func makeContractIndex(h ctHandle, offset int) (uint32, error) {
-	if h.n >= 1<<maxNBits {
-		return 0, fmt.Errorf("size of contraction trie node too large: %d >= %d", h.n, 1<<maxNBits)
-	}
-	if h.index >= 1<<maxTrieIndexBits {
-		return 0, fmt.Errorf("size of contraction trie offset too large: %d >= %d", h.index, 1<<maxTrieIndexBits)
-	}
-	if offset >= 1<<maxContractOffsetBits {
-		return 0, fmt.Errorf("contraction offset out of bounds: %x >= %x", offset, 1<<maxContractOffsetBits)
-	}
-	ce := uint32(contractID)
-	ce += uint32(offset << (maxNBits + maxTrieIndexBits))
-	ce += uint32(h.index << maxNBits)
-	ce += uint32(h.n)
-	return ce, nil
-}
-
-// For expansions, collation elements are of the form
-// 11100000 00000000 bbbbbbbb bbbbbbbb,
-// where b* is the index into the expansion sequence table.
-const (
-	expandID           = 0xE0000000
-	maxExpandIndexBits = 16
-)
-
-func makeExpandIndex(index int) (uint32, error) {
-	if index >= 1<<maxExpandIndexBits {
-		return 0, fmt.Errorf("expansion index out of bounds: %x >= %x", index, 1<<maxExpandIndexBits)
-	}
-	return expandID + uint32(index), nil
-}
-
-// Each list of collation elements corresponding to an expansion starts with
-// a header indicating the length of the sequence.
-func makeExpansionHeader(n int) (uint32, error) {
-	return uint32(n), nil
-}
-
-// Some runes can be expanded using NFKD decomposition. Instead of storing the full
-// sequence of collation elements, we decompose the rune and lookup the collation
-// elements for each rune in the decomposition and modify the tertiary weights.
-// The collation element, in this case, is of the form
-// 11110000 00000000 wwwwwwww vvvvvvvv, where
-//   - v* is the replacement tertiary weight for the first rune,
-//   - w* is the replacement tertiary weight for the second rune,
-// Tertiary weights of subsequent runes should be replaced with maxTertiary.
-// See http://www.unicode.org/reports/tr10/#Compatibility_Decompositions for more details.
-const (
-	decompID = 0xF0000000
-)
-
-func makeDecompose(t1, t2 int) (uint32, error) {
-	if t1 >= 256 || t1 < 0 {
-		return 0, fmt.Errorf("first tertiary weight out of bounds: %d >= 256", t1)
-	}
-	if t2 >= 256 || t2 < 0 {
-		return 0, fmt.Errorf("second tertiary weight out of bounds: %d >= 256", t2)
-	}
-	return uint32(t2<<8+t1) + decompID, nil
-}
-
-const (
-	// These constants were taken from http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf.
-	minUnified       rune = 0x4E00
-	maxUnified            = 0x9FFF
-	minCompatibility      = 0xF900
-	maxCompatibility      = 0xFAFF
-	minRare               = 0x3400
-	maxRare               = 0x4DBF
-)
-const (
-	commonUnifiedOffset = 0x10000
-	rareUnifiedOffset   = 0x20000 // largest rune in common is U+FAFF
-	otherOffset         = 0x50000 // largest rune in rare is U+2FA1D
-	illegalOffset       = otherOffset + int(unicode.MaxRune)
-	maxPrimary          = illegalOffset + 1
-)
-
-// implicitPrimary returns the primary weight for the a rune
-// for which there is no entry for the rune in the collation table.
-// We take a different approach from the one specified in
-// http://unicode.org/reports/tr10/#Implicit_Weights,
-// but preserve the resulting relative ordering of the runes.
-func implicitPrimary(r rune) int {
-	if unicode.Is(unicode.Ideographic, r) {
-		if r >= minUnified && r <= maxUnified {
-			// The most common case for CJK.
-			return int(r) + commonUnifiedOffset
-		}
-		if r >= minCompatibility && r <= maxCompatibility {
-			// This will typically not hit. The DUCET explicitly specifies mappings
-			// for all characters that do not decompose.
-			return int(r) + commonUnifiedOffset
-		}
-		return int(r) + rareUnifiedOffset
-	}
-	return int(r) + otherOffset
-}
-
-// convertLargeWeights converts collation elements with large
-// primaries (either double primaries or for illegal runes)
-// to our own representation.
-// A CJK character C is represented in the DUCET as
-//   [.FBxx.0020.0002.C][.BBBB.0000.0000.C]
-// We will rewrite these characters to a single CE.
-// We assume the CJK values start at 0x8000.
-// See http://unicode.org/reports/tr10/#Implicit_Weights
-func convertLargeWeights(elems []rawCE) (res []rawCE, err error) {
-	const (
-		cjkPrimaryStart   = 0xFB40
-		rarePrimaryStart  = 0xFB80
-		otherPrimaryStart = 0xFBC0
-		illegalPrimary    = 0xFFFE
-		highBitsMask      = 0x3F
-		lowBitsMask       = 0x7FFF
-		lowBitsFlag       = 0x8000
-		shiftBits         = 15
-	)
-	for i := 0; i < len(elems); i++ {
-		ce := elems[i].w
-		p := ce[0]
-		if p < cjkPrimaryStart {
-			continue
-		}
-		if p > 0xFFFF {
-			return elems, fmt.Errorf("found primary weight %X; should be <= 0xFFFF", p)
-		}
-		if p >= illegalPrimary {
-			ce[0] = illegalOffset + p - illegalPrimary
-		} else {
-			if i+1 >= len(elems) {
-				return elems, fmt.Errorf("second part of double primary weight missing: %v", elems)
-			}
-			if elems[i+1].w[0]&lowBitsFlag == 0 {
-				return elems, fmt.Errorf("malformed second part of double primary weight: %v", elems)
-			}
-			np := ((p & highBitsMask) << shiftBits) + elems[i+1].w[0]&lowBitsMask
-			switch {
-			case p < rarePrimaryStart:
-				np += commonUnifiedOffset
-			case p < otherPrimaryStart:
-				np += rareUnifiedOffset
-			default:
-				p += otherOffset
-			}
-			ce[0] = np
-			for j := i + 1; j+1 < len(elems); j++ {
-				elems[j] = elems[j+1]
-			}
-			elems = elems[:len(elems)-1]
-		}
-	}
-	return elems, nil
-}
-
-// nextWeight computes the first possible collation weights following elems
-// for the given level.
-func nextWeight(level collate.Level, elems []rawCE) []rawCE {
-	if level == collate.Identity {
-		next := make([]rawCE, len(elems))
-		copy(next, elems)
-		return next
-	}
-	next := []rawCE{makeRawCE(elems[0].w, elems[0].ccc)}
-	next[0].w[level]++
-	if level < collate.Secondary {
-		next[0].w[collate.Secondary] = defaultSecondary
-	}
-	if level < collate.Tertiary {
-		next[0].w[collate.Tertiary] = defaultTertiary
-	}
-	// Filter entries that cannot influence ordering.
-	for _, ce := range elems[1:] {
-		skip := true
-		for i := collate.Primary; i < level; i++ {
-			skip = skip && ce.w[i] == 0
-		}
-		if !skip {
-			next = append(next, ce)
-		}
-	}
-	return next
-}
-
-func nextVal(elems []rawCE, i int, level collate.Level) (index, value int) {
-	for ; i < len(elems) && elems[i].w[level] == 0; i++ {
-	}
-	if i < len(elems) {
-		return i, elems[i].w[level]
-	}
-	return i, 0
-}
-
-// compareWeights returns -1 if a < b, 1 if a > b, or 0 otherwise.
-// It also returns the collation level at which the difference is found.
-func compareWeights(a, b []rawCE) (result int, level collate.Level) {
-	for level := collate.Primary; level < collate.Identity; level++ {
-		var va, vb int
-		for ia, ib := 0, 0; ia < len(a) || ib < len(b); ia, ib = ia+1, ib+1 {
-			ia, va = nextVal(a, ia, level)
-			ib, vb = nextVal(b, ib, level)
-			if va != vb {
-				if va < vb {
-					return -1, level
-				} else {
-					return 1, level
-				}
-			}
-		}
-	}
-	return 0, collate.Identity
-}
-
-func equalCE(a, b rawCE) bool {
-	for i := 0; i < 3; i++ {
-		if b.w[i] != a.w[i] {
-			return false
-		}
-	}
-	return true
-}
-
-func equalCEArrays(a, b []rawCE) bool {
-	if len(a) != len(b) {
-		return false
-	}
-	for i := range a {
-		if !equalCE(a[i], b[i]) {
-			return false
-		}
-	}
-	return true
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/colelem_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/colelem_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,214 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"testing"
-)
-
-type ceTest struct {
-	f   func(in []int) (uint32, error)
-	arg []int
-	val uint32
-}
-
-func normalCE(in []int) (ce uint32, err error) {
-	return makeCE(rawCE{w: in[:3], ccc: uint8(in[3])})
-}
-
-func expandCE(in []int) (ce uint32, err error) {
-	return makeExpandIndex(in[0])
-}
-
-func contractCE(in []int) (ce uint32, err error) {
-	return makeContractIndex(ctHandle{in[0], in[1]}, in[2])
-}
-
-func decompCE(in []int) (ce uint32, err error) {
-	return makeDecompose(in[0], in[1])
-}
-
-var ceTests = []ceTest{
-	{normalCE, []int{0, 0, 0, 0}, 0xA0000000},
-	{normalCE, []int{0, 0x28, 3, 0}, 0xA0002803},
-	{normalCE, []int{0, 0x28, 3, 0xFF}, 0xAFF02803},
-	{normalCE, []int{100, defaultSecondary, 3, 0}, 0x0000C883},
-	// non-ignorable primary with non-default secondary
-	{normalCE, []int{100, 0x28, defaultTertiary, 0}, 0x4000C828},
-	{normalCE, []int{100, defaultSecondary + 8, 3, 0}, 0x0000C983},
-	{normalCE, []int{100, 0, 3, 0}, 0xFFFF}, // non-ignorable primary with non-supported secondary
-	{normalCE, []int{100, 1, 3, 0}, 0xFFFF},
-	{normalCE, []int{1 << maxPrimaryBits, defaultSecondary, 0, 0}, 0xFFFF},
-	{normalCE, []int{0, 1 << maxSecondaryBits, 0, 0}, 0xFFFF},
-	{normalCE, []int{100, defaultSecondary, 1 << maxTertiaryBits, 0}, 0xFFFF},
-	{normalCE, []int{0x123, defaultSecondary, 8, 0xFF}, 0x88FF0123},
-	{normalCE, []int{0x123, defaultSecondary + 1, 8, 0xFF}, 0xFFFF},
-
-	{contractCE, []int{0, 0, 0}, 0xC0000000},
-	{contractCE, []int{1, 1, 1}, 0xC0010011},
-	{contractCE, []int{1, (1 << maxNBits) - 1, 1}, 0xC001001F},
-	{contractCE, []int{(1 << maxTrieIndexBits) - 1, 1, 1}, 0xC001FFF1},
-	{contractCE, []int{1, 1, (1 << maxContractOffsetBits) - 1}, 0xDFFF0011},
-	{contractCE, []int{1, (1 << maxNBits), 1}, 0xFFFF},
-	{contractCE, []int{(1 << maxTrieIndexBits), 1, 1}, 0xFFFF},
-	{contractCE, []int{1, (1 << maxContractOffsetBits), 1}, 0xFFFF},
-
-	{expandCE, []int{0}, 0xE0000000},
-	{expandCE, []int{5}, 0xE0000005},
-	{expandCE, []int{(1 << maxExpandIndexBits) - 1}, 0xE000FFFF},
-	{expandCE, []int{1 << maxExpandIndexBits}, 0xFFFF},
-
-	{decompCE, []int{0, 0}, 0xF0000000},
-	{decompCE, []int{1, 1}, 0xF0000101},
-	{decompCE, []int{0x1F, 0x1F}, 0xF0001F1F},
-	{decompCE, []int{256, 0x1F}, 0xFFFF},
-	{decompCE, []int{0x1F, 256}, 0xFFFF},
-}
-
-func TestColElem(t *testing.T) {
-	for i, tt := range ceTests {
-		in := make([]int, len(tt.arg))
-		copy(in, tt.arg)
-		ce, err := tt.f(in)
-		if tt.val == 0xFFFF {
-			if err == nil {
-				t.Errorf("%d: expected error for args %x", i, tt.arg)
-			}
-			continue
-		}
-		if err != nil {
-			t.Errorf("%d: unexpected error: %v", i, err.Error())
-		}
-		if ce != tt.val {
-			t.Errorf("%d: colElem=%X; want %X", i, ce, tt.val)
-		}
-	}
-}
-
-func mkRawCES(in [][]int) []rawCE {
-	out := []rawCE{}
-	for _, w := range in {
-		out = append(out, rawCE{w: w})
-	}
-	return out
-}
-
-type weightsTest struct {
-	a, b   [][]int
-	level  collate.Level
-	result int
-}
-
-var nextWeightTests = []weightsTest{
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{101, defaultSecondary, defaultTertiary, 0}},
-		level: collate.Primary,
-	},
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{100, 21, defaultTertiary, 0}},
-		level: collate.Secondary,
-	},
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{100, 20, 6, 0}},
-		level: collate.Tertiary,
-	},
-	{
-		a:     [][]int{{100, 20, 5, 0}},
-		b:     [][]int{{100, 20, 5, 0}},
-		level: collate.Identity,
-	},
-}
-
-var extra = [][]int{{200, 32, 8, 0}, {0, 32, 8, 0}, {0, 0, 8, 0}, {0, 0, 0, 0}}
-
-func TestNextWeight(t *testing.T) {
-	for i, tt := range nextWeightTests {
-		test := func(l collate.Level, tt weightsTest, a, gold [][]int) {
-			res := nextWeight(tt.level, mkRawCES(a))
-			if !equalCEArrays(mkRawCES(gold), res) {
-				t.Errorf("%d:%d: expected weights %d; found %d", i, l, gold, res)
-			}
-		}
-		test(-1, tt, tt.a, tt.b)
-		for l := collate.Primary; l <= collate.Tertiary; l++ {
-			if tt.level <= l {
-				test(l, tt, append(tt.a, extra[l]), tt.b)
-			} else {
-				test(l, tt, append(tt.a, extra[l]), append(tt.b, extra[l]))
-			}
-		}
-	}
-}
-
-var compareTests = []weightsTest{
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{100, 20, 5, 0}},
-		collate.Identity,
-		0,
-	},
-	{
-		[][]int{{100, 20, 5, 0}, extra[0]},
-		[][]int{{100, 20, 5, 1}},
-		collate.Primary,
-		1,
-	},
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{101, 20, 5, 0}},
-		collate.Primary,
-		-1,
-	},
-	{
-		[][]int{{101, 20, 5, 0}},
-		[][]int{{100, 20, 5, 0}},
-		collate.Primary,
-		1,
-	},
-	{
-		[][]int{{100, 0, 0, 0}, {0, 20, 5, 0}},
-		[][]int{{0, 20, 5, 0}, {100, 0, 0, 0}},
-		collate.Identity,
-		0,
-	},
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{100, 21, 5, 0}},
-		collate.Secondary,
-		-1,
-	},
-	{
-		[][]int{{100, 20, 5, 0}},
-		[][]int{{100, 20, 2, 0}},
-		collate.Tertiary,
-		1,
-	},
-	{
-		[][]int{{100, 20, 5, 1}},
-		[][]int{{100, 20, 5, 2}},
-		collate.Quaternary,
-		-1,
-	},
-}
-
-func TestCompareWeights(t *testing.T) {
-	for i, tt := range compareTests {
-		test := func(tt weightsTest, a, b [][]int) {
-			res, level := compareWeights(mkRawCES(a), mkRawCES(b))
-			if res != tt.result {
-				t.Errorf("%d: expected comparisson result %d; found %d", i, tt.result, res)
-			}
-			if level != tt.level {
-				t.Errorf("%d: expected level %d; found %d", i, tt.level, level)
-			}
-		}
-		test(tt, tt.a, tt.b)
-		test(tt, append(tt.a, extra[0]), append(tt.b, extra[0]))
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract.go gcc-4.8.1/libgo/go/exp/locale/collate/build/contract.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/contract.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,307 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"fmt"
-	"io"
-	"reflect"
-	"sort"
-	"strings"
-)
-
-// This file contains code for detecting contractions and generating
-// the necessary tables.
-// Any Unicode Collation Algorithm (UCA) table entry that has more than
-// one rune one the left-hand side is called a contraction.
-// See http://www.unicode.org/reports/tr10/#Contractions for more details.
-//
-// We define the following terms:
-//   initial:     a rune that appears as the first rune in a contraction.
-//   suffix:      a sequence of runes succeeding the initial rune
-//                in a given contraction.
-//   non-initial: a rune that appears in a suffix.
-//
-// A rune may be both a initial and a non-initial and may be so in
-// many contractions.  An initial may typically also appear by itself.
-// In case of ambiguities, the UCA requires we match the longest
-// contraction.
-//
-// Many contraction rules share the same set of possible suffixes.
-// We store sets of suffixes in a trie that associates an index with
-// each suffix in the set.  This index can be used to look up a
-// collation element associated with the (starter rune, suffix) pair.
-//
-// The trie is defined on a UTF-8 byte sequence.
-// The overall trie is represented as an array of ctEntries.  Each node of the trie
-// is represented as a subsequence of ctEntries, where each entry corresponds to
-// a possible match of a next character in the search string.  An entry
-// also includes the length and offset to the next sequence of entries
-// to check in case of a match.
-
-const (
-	final   = 0
-	noIndex = 0xFF
-)
-
-// ctEntry associates to a matching byte an offset and/or next sequence of
-// bytes to check. A ctEntry c is called final if a match means that the
-// longest suffix has been found.  An entry c is final if c.n == 0.
-// A single final entry can match a range of characters to an offset.
-// A non-final entry always matches a single byte. Note that a non-final
-// entry might still resemble a completed suffix.
-// Examples:
-// The suffix strings "ab" and "ac" can be represented as:
-// []ctEntry{
-//     {'a', 1, 1, noIndex},  // 'a' by itself does not match, so i is 0xFF.
-//     {'b', 'c', 0, 1},   // "ab" -> 1, "ac" -> 2
-// }
-//
-// The suffix strings "ab", "abc", "abd", and "abcd" can be represented as:
-// []ctEntry{
-//     {'a', 1, 1, noIndex}, // 'a' must be followed by 'b'.
-//     {'b', 1, 2, 1},    // "ab" -> 1, may be followed by 'c' or 'd'.
-//     {'d', 'd', final, 3},  // "abd" -> 3
-//     {'c', 4, 1, 2},    // "abc" -> 2, may be followed by 'd'.
-//     {'d', 'd', final, 4},  // "abcd" -> 4
-// }
-// See genStateTests in contract_test.go for more examples.
-type ctEntry struct {
-	l uint8 // non-final: byte value to match; final: lowest match in range.
-	h uint8 // non-final: relative index to next block; final: highest match in range.
-	n uint8 // non-final: length of next block; final: final
-	i uint8 // result offset. Will be noIndex if more bytes are needed to complete.
-}
-
-// contractTrieSet holds a set of contraction tries. The tries are stored
-// consecutively in the entry field.
-type contractTrieSet []struct{ l, h, n, i uint8 }
-
-// ctHandle is used to identify a trie in the trie set, consisting in an offset
-// in the array and the size of the first node.
-type ctHandle struct {
-	index, n int
-}
-
-// appendTrie adds a new trie for the given suffixes to the trie set and returns
-// a handle to it.  The handle will be invalid on error.
-func (ct *contractTrieSet) appendTrie(suffixes []string) (ctHandle, error) {
-	es := make([]stridx, len(suffixes))
-	for i, s := range suffixes {
-		es[i].str = s
-	}
-	sort.Sort(offsetSort(es))
-	for i := range es {
-		es[i].index = i + 1
-	}
-	sort.Sort(genidxSort(es))
-	i := len(*ct)
-	n, err := ct.genStates(es)
-	if err != nil {
-		*ct = (*ct)[:i]
-		return ctHandle{}, err
-	}
-	return ctHandle{i, n}, nil
-}
-
-// genStates generates ctEntries for a given suffix set and returns
-// the number of entries for the first node.
-func (ct *contractTrieSet) genStates(sis []stridx) (int, error) {
-	if len(sis) == 0 {
-		return 0, fmt.Errorf("genStates: list of suffices must be non-empty")
-	}
-	start := len(*ct)
-	// create entries for differing first bytes.
-	for _, si := range sis {
-		s := si.str
-		if len(s) == 0 {
-			continue
-		}
-		added := false
-		c := s[0]
-		if len(s) > 1 {
-			for j := len(*ct) - 1; j >= start; j-- {
-				if (*ct)[j].l == c {
-					added = true
-					break
-				}
-			}
-			if !added {
-				*ct = append(*ct, ctEntry{l: c, i: noIndex})
-			}
-		} else {
-			for j := len(*ct) - 1; j >= start; j-- {
-				// Update the offset for longer suffixes with the same byte.
-				if (*ct)[j].l == c {
-					(*ct)[j].i = uint8(si.index)
-					added = true
-				}
-				// Extend range of final ctEntry, if possible.
-				if (*ct)[j].h+1 == c {
-					(*ct)[j].h = c
-					added = true
-				}
-			}
-			if !added {
-				*ct = append(*ct, ctEntry{l: c, h: c, n: final, i: uint8(si.index)})
-			}
-		}
-	}
-	n := len(*ct) - start
-	// Append nodes for the remainder of the suffixes for each ctEntry.
-	sp := 0
-	for i, end := start, len(*ct); i < end; i++ {
-		fe := (*ct)[i]
-		if fe.h == 0 { // uninitialized non-final
-			ln := len(*ct) - start - n
-			if ln > 0xFF {
-				return 0, fmt.Errorf("genStates: relative block offset too large: %d > 255", ln)
-			}
-			fe.h = uint8(ln)
-			// Find first non-final strings with same byte as current entry.
-			for ; sis[sp].str[0] != fe.l; sp++ {
-			}
-			se := sp + 1
-			for ; se < len(sis) && len(sis[se].str) > 1 && sis[se].str[0] == fe.l; se++ {
-			}
-			sl := sis[sp:se]
-			sp = se
-			for i, si := range sl {
-				sl[i].str = si.str[1:]
-			}
-			nn, err := ct.genStates(sl)
-			if err != nil {
-				return 0, err
-			}
-			fe.n = uint8(nn)
-			(*ct)[i] = fe
-		}
-	}
-	sort.Sort(entrySort((*ct)[start : start+n]))
-	return n, nil
-}
-
-// There may be both a final and non-final entry for a byte if the byte
-// is implied in a range of matches in the final entry.
-// We need to ensure that the non-final entry comes first in that case.
-type entrySort contractTrieSet
-
-func (fe entrySort) Len() int      { return len(fe) }
-func (fe entrySort) Swap(i, j int) { fe[i], fe[j] = fe[j], fe[i] }
-func (fe entrySort) Less(i, j int) bool {
-	return fe[i].l > fe[j].l
-}
-
-// stridx is used for sorting suffixes and their associated offsets.
-type stridx struct {
-	str   string
-	index int
-}
-
-// For computing the offsets, we first sort by size, and then by string.
-// This ensures that strings that only differ in the last byte by 1
-// are sorted consecutively in increasing order such that they can
-// be packed as a range in a final ctEntry.
-type offsetSort []stridx
-
-func (si offsetSort) Len() int      { return len(si) }
-func (si offsetSort) Swap(i, j int) { si[i], si[j] = si[j], si[i] }
-func (si offsetSort) Less(i, j int) bool {
-	if len(si[i].str) != len(si[j].str) {
-		return len(si[i].str) > len(si[j].str)
-	}
-	return si[i].str < si[j].str
-}
-
-// For indexing, we want to ensure that strings are sorted in string order, where
-// for strings with the same prefix, we put longer strings before shorter ones.
-type genidxSort []stridx
-
-func (si genidxSort) Len() int      { return len(si) }
-func (si genidxSort) Swap(i, j int) { si[i], si[j] = si[j], si[i] }
-func (si genidxSort) Less(i, j int) bool {
-	if strings.HasPrefix(si[j].str, si[i].str) {
-		return false
-	}
-	if strings.HasPrefix(si[i].str, si[j].str) {
-		return true
-	}
-	return si[i].str < si[j].str
-}
-
-// lookup matches the longest suffix in str and returns the associated offset
-// and the number of bytes consumed.
-func (ct *contractTrieSet) lookup(h ctHandle, str []byte) (index, ns int) {
-	states := (*ct)[h.index:]
-	p := 0
-	n := h.n
-	for i := 0; i < n && p < len(str); {
-		e := states[i]
-		c := str[p]
-		if c >= e.l {
-			if e.l == c {
-				p++
-				if e.i != noIndex {
-					index, ns = int(e.i), p
-				}
-				if e.n != final {
-					// set to new state
-					i, states, n = 0, states[int(e.h)+n:], int(e.n)
-				} else {
-					return
-				}
-				continue
-			} else if e.n == final && c <= e.h {
-				p++
-				return int(c-e.l) + int(e.i), p
-			}
-		}
-		i++
-	}
-	return
-}
-
-// print writes the contractTrieSet t as compilable Go code to w. It returns
-// the total number of bytes written and the size of the resulting data structure in bytes.
-func (t *contractTrieSet) print(w io.Writer, name string) (n, size int, err error) {
-	update3 := func(nn, sz int, e error) {
-		n += nn
-		if err == nil {
-			err = e
-		}
-		size += sz
-	}
-	update2 := func(nn int, e error) { update3(nn, 0, e) }
-
-	update3(t.printArray(w, name))
-	update2(fmt.Fprintf(w, "var %sContractTrieSet = ", name))
-	update3(t.printStruct(w, name))
-	update2(fmt.Fprintln(w))
-	return
-}
-
-func (ct contractTrieSet) printArray(w io.Writer, name string) (n, size int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	size = len(ct) * 4
-	p("// %sCTEntries: %d entries, %d bytes\n", name, len(ct), size)
-	p("var %sCTEntries = [%d]struct{l,h,n,i uint8}{\n", name, len(ct))
-	for _, fe := range ct {
-		p("\t{0x%X, 0x%X, %d, %d},\n", fe.l, fe.h, fe.n, fe.i)
-	}
-	p("}\n")
-	return
-}
-
-func (ct contractTrieSet) printStruct(w io.Writer, name string) (n, size int, err error) {
-	n, err = fmt.Fprintf(w, "contractTrieSet( %sCTEntries[:] )", name)
-	size = int(reflect.TypeOf(ct).Size())
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/contract_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/contract_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/contract_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,264 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"bytes"
-	"sort"
-	"testing"
-)
-
-var largetosmall = []stridx{
-	{"a", 5},
-	{"ab", 4},
-	{"abc", 3},
-	{"abcd", 2},
-	{"abcde", 1},
-	{"abcdef", 0},
-}
-
-var offsetSortTests = [][]stridx{
-	{
-		{"bcde", 1},
-		{"bc", 5},
-		{"ab", 4},
-		{"bcd", 3},
-		{"abcd", 0},
-		{"abc", 2},
-	},
-	largetosmall,
-}
-
-func TestOffsetSort(t *testing.T) {
-	for i, st := range offsetSortTests {
-		sort.Sort(offsetSort(st))
-		for j, si := range st {
-			if j != si.index {
-				t.Errorf("%d: failed: %v", i, st)
-			}
-		}
-	}
-	for i, tt := range genStateTests {
-		// ensure input is well-formed
-		sort.Sort(offsetSort(tt.in))
-		for j, si := range tt.in {
-			if si.index != j+1 {
-				t.Errorf("%dth sort failed: %v", i, tt.in)
-			}
-		}
-	}
-}
-
-var genidxtest1 = []stridx{
-	{"bcde", 3},
-	{"bc", 6},
-	{"ab", 2},
-	{"bcd", 5},
-	{"abcd", 0},
-	{"abc", 1},
-	{"bcdf", 4},
-}
-
-var genidxSortTests = [][]stridx{
-	genidxtest1,
-	largetosmall,
-}
-
-func TestGenIdxSort(t *testing.T) {
-	for i, st := range genidxSortTests {
-		sort.Sort(genidxSort(st))
-		for j, si := range st {
-			if j != si.index {
-				t.Errorf("%dth sort failed %v", i, st)
-				break
-			}
-		}
-	}
-}
-
-var entrySortTests = []contractTrieSet{
-	{
-		{10, 0, 1, 3},
-		{99, 0, 1, 0},
-		{20, 50, 0, 2},
-		{30, 0, 1, 1},
-	},
-}
-
-func TestEntrySort(t *testing.T) {
-	for i, et := range entrySortTests {
-		sort.Sort(entrySort(et))
-		for j, fe := range et {
-			if j != int(fe.i) {
-				t.Errorf("%dth sort failed %v", i, et)
-				break
-			}
-		}
-	}
-}
-
-type GenStateTest struct {
-	in            []stridx
-	firstBlockLen int
-	out           contractTrieSet
-}
-
-var genStateTests = []GenStateTest{
-	{[]stridx{
-		{"abc", 1},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, noIndex},
-			{'b', 0, 1, noIndex},
-			{'c', 'c', final, 1},
-		},
-	},
-	{[]stridx{
-		{"abc", 1},
-		{"abd", 2},
-		{"abe", 3},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, noIndex},
-			{'b', 0, 1, noIndex},
-			{'c', 'e', final, 1},
-		},
-	},
-	{[]stridx{
-		{"abc", 1},
-		{"ab", 2},
-		{"a", 3},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 3},
-			{'b', 0, 1, 2},
-			{'c', 'c', final, 1},
-		},
-	},
-	{[]stridx{
-		{"abc", 1},
-		{"abd", 2},
-		{"ab", 3},
-		{"ac", 4},
-		{"a", 5},
-		{"b", 6},
-	},
-		2,
-		contractTrieSet{
-			{'b', 'b', final, 6},
-			{'a', 0, 2, 5},
-			{'c', 'c', final, 4},
-			{'b', 0, 1, 3},
-			{'c', 'd', final, 1},
-		},
-	},
-	{[]stridx{
-		{"bcde", 2},
-		{"bc", 7},
-		{"ab", 6},
-		{"bcd", 5},
-		{"abcd", 1},
-		{"abc", 4},
-		{"bcdf", 3},
-	},
-		2,
-		contractTrieSet{
-			{'b', 3, 1, noIndex},
-			{'a', 0, 1, noIndex},
-			{'b', 0, 1, 6},
-			{'c', 0, 1, 4},
-			{'d', 'd', final, 1},
-			{'c', 0, 1, 7},
-			{'d', 0, 1, 5},
-			{'e', 'f', final, 2},
-		},
-	},
-}
-
-func TestGenStates(t *testing.T) {
-	for i, tt := range genStateTests {
-		si := []stridx{}
-		for _, e := range tt.in {
-			si = append(si, e)
-		}
-		// ensure input is well-formed
-		sort.Sort(genidxSort(si))
-		ct := contractTrieSet{}
-		n, _ := ct.genStates(si)
-		if nn := tt.firstBlockLen; nn != n {
-			t.Errorf("%d: block len %v; want %v", i, n, nn)
-		}
-		if lv, lw := len(ct), len(tt.out); lv != lw {
-			t.Errorf("%d: len %v; want %v", i, lv, lw)
-			continue
-		}
-		for j, fe := range tt.out {
-			const msg = "%d:%d: value %s=%v; want %v"
-			if fe.l != ct[j].l {
-				t.Errorf(msg, i, j, "l", ct[j].l, fe.l)
-			}
-			if fe.h != ct[j].h {
-				t.Errorf(msg, i, j, "h", ct[j].h, fe.h)
-			}
-			if fe.n != ct[j].n {
-				t.Errorf(msg, i, j, "n", ct[j].n, fe.n)
-			}
-			if fe.i != ct[j].i {
-				t.Errorf(msg, i, j, "i", ct[j].i, fe.i)
-			}
-		}
-	}
-}
-
-func TestLookupContraction(t *testing.T) {
-	for i, tt := range genStateTests {
-		input := []string{}
-		for _, e := range tt.in {
-			input = append(input, e.str)
-		}
-		cts := contractTrieSet{}
-		h, _ := cts.appendTrie(input)
-		for j, si := range tt.in {
-			str := si.str
-			for _, s := range []string{str, str + "X"} {
-				msg := "%d:%d: %s(%s) %v; want %v"
-				idx, sn := cts.lookup(h, []byte(s))
-				if idx != si.index {
-					t.Errorf(msg, i, j, "index", s, idx, si.index)
-				}
-				if sn != len(str) {
-					t.Errorf(msg, i, j, "sn", s, sn, len(str))
-				}
-			}
-		}
-	}
-}
-
-func TestPrintContractionTrieSet(t *testing.T) {
-	testdata := contractTrieSet(genStateTests[4].out)
-	buf := &bytes.Buffer{}
-	testdata.print(buf, "test")
-	if contractTrieOutput != buf.String() {
-		t.Errorf("output differs; found\n%s", buf.String())
-		println(string(buf.Bytes()))
-	}
-}
-
-const contractTrieOutput = `// testCTEntries: 8 entries, 32 bytes
-var testCTEntries = [8]struct{l,h,n,i uint8}{
-	{0x62, 0x3, 1, 255},
-	{0x61, 0x0, 1, 255},
-	{0x62, 0x0, 1, 6},
-	{0x63, 0x0, 1, 4},
-	{0x64, 0x64, 0, 1},
-	{0x63, 0x0, 1, 7},
-	{0x64, 0x0, 1, 5},
-	{0x65, 0x66, 0, 2},
-}
-var testContractTrieSet = contractTrieSet( testCTEntries[:] )
-`
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order.go gcc-4.8.1/libgo/go/exp/locale/collate/build/order.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/order.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,392 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"exp/norm"
-	"fmt"
-	"log"
-	"sort"
-	"strings"
-	"unicode"
-)
-
-type logicalAnchor int
-
-const (
-	firstAnchor logicalAnchor = -1
-	noAnchor                  = 0
-	lastAnchor                = 1
-)
-
-// entry is used to keep track of a single entry in the collation element table
-// during building. Examples of entries can be found in the Default Unicode
-// Collation Element Table.
-// See http://www.unicode.org/Public/UCA/6.0.0/allkeys.txt.
-type entry struct {
-	str    string // same as string(runes)
-	runes  []rune
-	elems  []rawCE // the collation elements
-	extend string  // weights of extend to be appended to elems
-	before bool    // weights relative to next instead of previous.
-	lock   bool    // entry is used in extension and can no longer be moved.
-
-	// prev, next, and level are used to keep track of tailorings.
-	prev, next *entry
-	level      collate.Level // next differs at this level
-	skipRemove bool          // do not unlink when removed
-
-	decompose bool // can use NFKD decomposition to generate elems
-	exclude   bool // do not include in table
-	implicit  bool // derived, is not included in the list
-	modified  bool // entry was modified in tailoring
-	logical   logicalAnchor
-
-	expansionIndex    int // used to store index into expansion table
-	contractionHandle ctHandle
-	contractionIndex  int // index into contraction elements
-}
-
-func (e *entry) String() string {
-	return fmt.Sprintf("%X (%q) -> %X (ch:%x; ci:%d, ei:%d)",
-		e.runes, e.str, e.elems, e.contractionHandle, e.contractionIndex, e.expansionIndex)
-}
-
-func (e *entry) skip() bool {
-	return e.contraction()
-}
-
-func (e *entry) expansion() bool {
-	return !e.decompose && len(e.elems) > 1
-}
-
-func (e *entry) contraction() bool {
-	return len(e.runes) > 1
-}
-
-func (e *entry) contractionStarter() bool {
-	return e.contractionHandle.n != 0
-}
-
-// nextIndexed gets the next entry that needs to be stored in the table.
-// It returns the entry and the collation level at which the next entry differs
-// from the current entry.
-// Entries that can be explicitly derived and logical reset positions are
-// examples of entries that will not be indexed.
-func (e *entry) nextIndexed() (*entry, collate.Level) {
-	level := e.level
-	for e = e.next; e != nil && (e.exclude || len(e.elems) == 0); e = e.next {
-		if e.level < level {
-			level = e.level
-		}
-	}
-	return e, level
-}
-
-// remove unlinks entry e from the sorted chain and clears the collation
-// elements. e may not be at the front or end of the list. This should always
-// be the case, as the front and end of the list are always logical anchors,
-// which may not be removed.
-func (e *entry) remove() {
-	if e.logical != noAnchor {
-		log.Fatalf("may not remove anchor %q", e.str)
-	}
-	// TODO: need to set e.prev.level to e.level if e.level is smaller?
-	e.elems = nil
-	if !e.skipRemove {
-		if e.prev != nil {
-			e.prev.next = e.next
-		}
-		if e.next != nil {
-			e.next.prev = e.prev
-		}
-	}
-	e.skipRemove = false
-}
-
-// insertAfter inserts n after e.
-func (e *entry) insertAfter(n *entry) {
-	if e == n {
-		panic("e == anchor")
-	}
-	if e == nil {
-		panic("unexpected nil anchor")
-	}
-	n.remove()
-	n.decompose = false // redo decomposition test
-
-	n.next = e.next
-	n.prev = e
-	if e.next != nil {
-		e.next.prev = n
-	}
-	e.next = n
-}
-
-// insertBefore inserts n before e.
-func (e *entry) insertBefore(n *entry) {
-	if e == n {
-		panic("e == anchor")
-	}
-	if e == nil {
-		panic("unexpected nil anchor")
-	}
-	n.remove()
-	n.decompose = false // redo decomposition test
-
-	n.prev = e.prev
-	n.next = e
-	if e.prev != nil {
-		e.prev.next = n
-	}
-	e.prev = n
-}
-
-func (e *entry) encodeBase() (ce uint32, err error) {
-	switch {
-	case e.expansion():
-		ce, err = makeExpandIndex(e.expansionIndex)
-	default:
-		if e.decompose {
-			log.Fatal("decompose should be handled elsewhere")
-		}
-		ce, err = makeCE(e.elems[0])
-	}
-	return
-}
-
-func (e *entry) encode() (ce uint32, err error) {
-	if e.skip() {
-		log.Fatal("cannot build colElem for entry that should be skipped")
-	}
-	switch {
-	case e.decompose:
-		t1 := e.elems[0].w[2]
-		t2 := 0
-		if len(e.elems) > 1 {
-			t2 = e.elems[1].w[2]
-		}
-		ce, err = makeDecompose(t1, t2)
-	case e.contractionStarter():
-		ce, err = makeContractIndex(e.contractionHandle, e.contractionIndex)
-	default:
-		if len(e.runes) > 1 {
-			log.Fatal("colElem: contractions are handled in contraction trie")
-		}
-		ce, err = e.encodeBase()
-	}
-	return
-}
-
-// entryLess returns true if a sorts before b and false otherwise.
-func entryLess(a, b *entry) bool {
-	if res, _ := compareWeights(a.elems, b.elems); res != 0 {
-		return res == -1
-	}
-	if a.logical != noAnchor {
-		return a.logical == firstAnchor
-	}
-	if b.logical != noAnchor {
-		return b.logical == lastAnchor
-	}
-	return a.str < b.str
-}
-
-type sortedEntries []*entry
-
-func (s sortedEntries) Len() int {
-	return len(s)
-}
-
-func (s sortedEntries) Swap(i, j int) {
-	s[i], s[j] = s[j], s[i]
-}
-
-func (s sortedEntries) Less(i, j int) bool {
-	return entryLess(s[i], s[j])
-}
-
-type ordering struct {
-	id       string
-	entryMap map[string]*entry
-	ordered  []*entry
-	handle   *trieHandle
-}
-
-// insert inserts e into both entryMap and ordered.
-// Note that insert simply appends e to ordered.  To reattain a sorted
-// order, o.sort() should be called.
-func (o *ordering) insert(e *entry) {
-	if e.logical == noAnchor {
-		o.entryMap[e.str] = e
-	} else {
-		// Use key format as used in UCA rules.
-		o.entryMap[fmt.Sprintf("[%s]", e.str)] = e
-		// Also add index entry for XML format.
-		o.entryMap[fmt.Sprintf("<%s/>", strings.Replace(e.str, " ", "_", -1))] = e
-	}
-	o.ordered = append(o.ordered, e)
-}
-
-// newEntry creates a new entry for the given info and inserts it into
-// the index.
-func (o *ordering) newEntry(s string, ces []rawCE) *entry {
-	e := &entry{
-		runes: []rune(s),
-		elems: ces,
-		str:   s,
-	}
-	o.insert(e)
-	return e
-}
-
-// find looks up and returns the entry for the given string.
-// It returns nil if str is not in the index and if an implicit value
-// cannot be derived, that is, if str represents more than one rune.
-func (o *ordering) find(str string) *entry {
-	e := o.entryMap[str]
-	if e == nil {
-		r := []rune(str)
-		if len(r) == 1 {
-			const (
-				firstHangul = 0xAC00
-				lastHangul  = 0xD7A3
-			)
-			if r[0] >= firstHangul && r[0] <= lastHangul {
-				ce := []rawCE{}
-				nfd := norm.NFD.String(str)
-				for _, r := range nfd {
-					ce = append(ce, o.find(string(r)).elems...)
-				}
-				e = o.newEntry(nfd, ce)
-			} else {
-				e = o.newEntry(string(r[0]), []rawCE{
-					{w: []int{
-						implicitPrimary(r[0]),
-						defaultSecondary,
-						defaultTertiary,
-						int(r[0]),
-					},
-					},
-				})
-				e.modified = true
-			}
-			e.exclude = true // do not index implicits
-		}
-	}
-	return e
-}
-
-// makeRootOrdering returns a newly initialized ordering value and populates
-// it with a set of logical reset points that can be used as anchors.
-// The anchors first_tertiary_ignorable and __END__ will always sort at
-// the beginning and end, respectively. This means that prev and next are non-nil
-// for any indexed entry.
-func makeRootOrdering() ordering {
-	const max = unicode.MaxRune
-	o := ordering{
-		entryMap: make(map[string]*entry),
-	}
-	insert := func(typ logicalAnchor, s string, ce []int) {
-		e := &entry{
-			elems:   []rawCE{{w: ce}},
-			str:     s,
-			exclude: true,
-			logical: typ,
-		}
-		o.insert(e)
-	}
-	insert(firstAnchor, "first tertiary ignorable", []int{0, 0, 0, 0})
-	insert(lastAnchor, "last tertiary ignorable", []int{0, 0, 0, max})
-	insert(lastAnchor, "last primary ignorable", []int{0, defaultSecondary, defaultTertiary, max})
-	insert(lastAnchor, "last non ignorable", []int{maxPrimary, defaultSecondary, defaultTertiary, max})
-	insert(lastAnchor, "__END__", []int{1 << maxPrimaryBits, defaultSecondary, defaultTertiary, max})
-	return o
-}
-
-// patchForInsert eleminates entries from the list with more than one collation element.
-// The next and prev fields of the eliminated entries still point to appropriate
-// values in the newly created list.
-// It requires that sort has been called.
-func (o *ordering) patchForInsert() {
-	for i := 0; i < len(o.ordered)-1; {
-		e := o.ordered[i]
-		lev := e.level
-		n := e.next
-		for ; n != nil && len(n.elems) > 1; n = n.next {
-			if n.level < lev {
-				lev = n.level
-			}
-			n.skipRemove = true
-		}
-		for ; o.ordered[i] != n; i++ {
-			o.ordered[i].level = lev
-			o.ordered[i].next = n
-			o.ordered[i+1].prev = e
-		}
-	}
-}
-
-// clone copies all ordering of es into a new ordering value.
-func (o *ordering) clone() *ordering {
-	o.sort()
-	oo := ordering{
-		entryMap: make(map[string]*entry),
-	}
-	for _, e := range o.ordered {
-		ne := &entry{
-			runes:     e.runes,
-			elems:     e.elems,
-			str:       e.str,
-			decompose: e.decompose,
-			exclude:   e.exclude,
-			logical:   e.logical,
-		}
-		oo.insert(ne)
-	}
-	oo.sort() // link all ordering.
-	oo.patchForInsert()
-	return &oo
-}
-
-// front returns the first entry to be indexed.
-// It assumes that sort() has been called.
-func (o *ordering) front() *entry {
-	e := o.ordered[0]
-	if e.prev != nil {
-		log.Panicf("unexpected first entry: %v", e)
-	}
-	// The first entry is always a logical position, which should not be indexed.
-	e, _ = e.nextIndexed()
-	return e
-}
-
-// sort sorts all ordering based on their collation elements and initializes
-// the prev, next, and level fields accordingly.
-func (o *ordering) sort() {
-	sort.Sort(sortedEntries(o.ordered))
-	l := o.ordered
-	for i := 1; i < len(l); i++ {
-		k := i - 1
-		l[k].next = l[i]
-		_, l[k].level = compareWeights(l[k].elems, l[i].elems)
-		l[i].prev = l[k]
-	}
-}
-
-// genColElems generates a collation element array from the runes in str. This
-// assumes that all collation elements have already been added to the Builder.
-func (o *ordering) genColElems(str string) []rawCE {
-	elems := []rawCE{}
-	for _, r := range []rune(str) {
-		for _, ce := range o.find(string(r)).elems {
-			if ce.w[0] != 0 || ce.w[1] != 0 || ce.w[2] != 0 {
-				elems = append(elems, ce)
-			}
-		}
-	}
-	return elems
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/order_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/order_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/order_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,228 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"exp/locale/collate"
-	"strconv"
-	"testing"
-)
-
-type entryTest struct {
-	f   func(in []int) (uint32, error)
-	arg []int
-	val uint32
-}
-
-// makeList returns a list of entries of length n+2, with n normal
-// entries plus a leading and trailing anchor.
-func makeList(n int) []*entry {
-	es := make([]*entry, n+2)
-	weights := []rawCE{{w: []int{100, 20, 5, 0}}}
-	for i := range es {
-		runes := []rune{rune(i)}
-		es[i] = &entry{
-			runes: runes,
-			elems: weights,
-		}
-		weights = nextWeight(collate.Primary, weights)
-	}
-	for i := 1; i < len(es); i++ {
-		es[i-1].next = es[i]
-		es[i].prev = es[i-1]
-		_, es[i-1].level = compareWeights(es[i-1].elems, es[i].elems)
-	}
-	es[0].exclude = true
-	es[0].logical = firstAnchor
-	es[len(es)-1].exclude = true
-	es[len(es)-1].logical = lastAnchor
-	return es
-}
-
-func TestNextIndexed(t *testing.T) {
-	const n = 5
-	es := makeList(n)
-	for i := int64(0); i < 1<<n; i++ {
-		mask := strconv.FormatInt(i+(1<<n), 2)
-		for i, c := range mask {
-			es[i].exclude = c == '1'
-		}
-		e := es[0]
-		for i, c := range mask {
-			if c == '0' {
-				e, _ = e.nextIndexed()
-				if e != es[i] {
-					t.Errorf("%d: expected entry %d; found %d", i, es[i].elems, e.elems)
-				}
-			}
-		}
-		if e, _ = e.nextIndexed(); e != nil {
-			t.Errorf("%d: expected nil entry; found %d", i, e.elems)
-		}
-	}
-}
-
-func TestRemove(t *testing.T) {
-	const n = 5
-	for i := int64(0); i < 1<<n; i++ {
-		es := makeList(n)
-		mask := strconv.FormatInt(i+(1<<n), 2)
-		for i, c := range mask {
-			if c == '0' {
-				es[i].remove()
-			}
-		}
-		e := es[0]
-		for i, c := range mask {
-			if c == '1' {
-				if e != es[i] {
-					t.Errorf("%d: expected entry %d; found %d", i, es[i].elems, e.elems)
-				}
-				e, _ = e.nextIndexed()
-			}
-		}
-		if e != nil {
-			t.Errorf("%d: expected nil entry; found %d", i, e.elems)
-		}
-	}
-}
-
-// nextPerm generates the next permutation of the array.  The starting
-// permutation is assumed to be a list of integers sorted in increasing order.
-// It returns false if there are no more permuations left.
-func nextPerm(a []int) bool {
-	i := len(a) - 2
-	for ; i >= 0; i-- {
-		if a[i] < a[i+1] {
-			break
-		}
-	}
-	if i < 0 {
-		return false
-	}
-	for j := len(a) - 1; j >= i; j-- {
-		if a[j] > a[i] {
-			a[i], a[j] = a[j], a[i]
-			break
-		}
-	}
-	for j := i + 1; j < (len(a)+i+1)/2; j++ {
-		a[j], a[len(a)+i-j] = a[len(a)+i-j], a[j]
-	}
-	return true
-}
-
-func TestInsertAfter(t *testing.T) {
-	const n = 5
-	orig := makeList(n)
-	perm := make([]int, n)
-	for i := range perm {
-		perm[i] = i + 1
-	}
-	for ok := true; ok; ok = nextPerm(perm) {
-		es := makeList(n)
-		last := es[0]
-		for _, i := range perm {
-			last.insertAfter(es[i])
-			last = es[i]
-		}
-		for _, e := range es {
-			e.elems = es[0].elems
-		}
-		e := es[0]
-		for _, i := range perm {
-			e, _ = e.nextIndexed()
-			if e.runes[0] != orig[i].runes[0] {
-				t.Errorf("%d:%d: expected entry %X; found %X", perm, i, orig[i].runes, e.runes)
-				break
-			}
-		}
-	}
-}
-
-func TestInsertBefore(t *testing.T) {
-	const n = 5
-	orig := makeList(n)
-	perm := make([]int, n)
-	for i := range perm {
-		perm[i] = i + 1
-	}
-	for ok := true; ok; ok = nextPerm(perm) {
-		es := makeList(n)
-		last := es[len(es)-1]
-		for _, i := range perm {
-			last.insertBefore(es[i])
-			last = es[i]
-		}
-		for _, e := range es {
-			e.elems = es[0].elems
-		}
-		e := es[0]
-		for i := n - 1; i >= 0; i-- {
-			e, _ = e.nextIndexed()
-			if e.runes[0] != rune(perm[i]) {
-				t.Errorf("%d:%d: expected entry %X; found %X", perm, i, orig[i].runes, e.runes)
-				break
-			}
-		}
-	}
-}
-
-type entryLessTest struct {
-	a, b *entry
-	res  bool
-}
-
-var (
-	w1 = []rawCE{{w: []int{100, 20, 5, 5}}}
-	w2 = []rawCE{{w: []int{101, 20, 5, 5}}}
-)
-
-var entryLessTests = []entryLessTest{
-	{&entry{str: "a", elems: w1},
-		&entry{str: "a", elems: w1},
-		false,
-	},
-	{&entry{str: "a", elems: w1},
-		&entry{str: "a", elems: w2},
-		true,
-	},
-	{&entry{str: "a", elems: w1},
-		&entry{str: "b", elems: w1},
-		true,
-	},
-	{&entry{str: "a", elems: w2},
-		&entry{str: "a", elems: w1},
-		false,
-	},
-	{&entry{str: "c", elems: w1},
-		&entry{str: "b", elems: w1},
-		false,
-	},
-	{&entry{str: "a", elems: w1, logical: firstAnchor},
-		&entry{str: "a", elems: w1},
-		true,
-	},
-	{&entry{str: "a", elems: w1},
-		&entry{str: "b", elems: w1, logical: firstAnchor},
-		false,
-	},
-	{&entry{str: "b", elems: w1},
-		&entry{str: "a", elems: w1, logical: lastAnchor},
-		true,
-	},
-	{&entry{str: "a", elems: w1, logical: lastAnchor},
-		&entry{str: "c", elems: w1},
-		false,
-	},
-}
-
-func TestEntryLess(t *testing.T) {
-	for i, tt := range entryLessTests {
-		if res := entryLess(tt.a, tt.b); res != tt.res {
-			t.Errorf("%d: was %v; want %v", i, res, tt.res)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/table.go gcc-4.8.1/libgo/go/exp/locale/collate/build/table.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/table.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/table.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,120 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"fmt"
-	"io"
-	"reflect"
-)
-
-// table is an intermediate structure that roughly resembles the table in collate.
-// It implements the non-exported interface collate.tableInitializer
-type table struct {
-	index trie // main trie
-	root  *trieHandle
-
-	// expansion info
-	expandElem []uint32
-
-	// contraction info
-	contractTries  contractTrieSet
-	contractElem   []uint32
-	maxContractLen int
-	variableTop    uint32
-}
-
-func (t *table) TrieIndex() []uint16 {
-	return t.index.index
-}
-
-func (t *table) TrieValues() []uint32 {
-	return t.index.values
-}
-
-func (t *table) FirstBlockOffsets() (i, v uint16) {
-	return t.root.lookupStart, t.root.valueStart
-}
-
-func (t *table) ExpandElems() []uint32 {
-	return t.expandElem
-}
-
-func (t *table) ContractTries() []struct{ l, h, n, i uint8 } {
-	return t.contractTries
-}
-
-func (t *table) ContractElems() []uint32 {
-	return t.contractElem
-}
-
-func (t *table) MaxContractLen() int {
-	return t.maxContractLen
-}
-
-func (t *table) VariableTop() uint32 {
-	return t.variableTop
-}
-
-// print writes the table as Go compilable code to w. It prefixes the
-// variable names with name. It returns the number of bytes written
-// and the size of the resulting table.
-func (t *table) fprint(w io.Writer, name string) (n, size int, err error) {
-	update := func(nn, sz int, e error) {
-		n += nn
-		if err == nil {
-			err = e
-		}
-		size += sz
-	}
-	// Write arrays needed for the structure.
-	update(printColElems(w, t.expandElem, name+"ExpandElem"))
-	update(printColElems(w, t.contractElem, name+"ContractElem"))
-	update(t.index.printArrays(w, name))
-	update(t.contractTries.printArray(w, name))
-
-	nn, e := fmt.Fprintf(w, "// Total size of %sTable is %d bytes\n", name, size)
-	update(nn, 0, e)
-	return
-}
-
-func (t *table) fprintIndex(w io.Writer, h *trieHandle) (n int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	p("tableIndex{\n")
-	p("\t\tlookupOffset: 0x%x,\n", h.lookupStart)
-	p("\t\tvaluesOffset: 0x%x,\n", h.valueStart)
-	p("\t}")
-	return
-}
-
-func printColElems(w io.Writer, a []uint32, name string) (n, sz int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	sz = len(a) * int(reflect.TypeOf(uint32(0)).Size())
-	p("// %s: %d entries, %d bytes\n", name, len(a), sz)
-	p("var %s = [%d]uint32 {", name, len(a))
-	for i, c := range a {
-		switch {
-		case i%64 == 0:
-			p("\n\t// Block %d, offset 0x%x\n", i/64, i)
-		case (i%64)%6 == 0:
-			p("\n\t")
-		}
-		p("0x%.8X, ", c)
-	}
-	p("\n}\n\n")
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie.go gcc-4.8.1/libgo/go/exp/locale/collate/build/trie.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/trie.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,290 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// The trie in this file is used to associate the first full character
-// in a UTF-8 string to a collation element.
-// All but the last byte in a UTF-8 byte sequence are
-// used to look up offsets in the index table to be used for the next byte.
-// The last byte is used to index into a table of collation elements.
-// This file contains the code for the generation of the trie.
-
-package build
-
-import (
-	"fmt"
-	"hash/fnv"
-	"io"
-	"reflect"
-)
-
-const (
-	blockSize   = 64
-	blockOffset = 2 // Subtract 2 blocks to compensate for the 0x80 added to continuation bytes.
-)
-
-type trieHandle struct {
-	lookupStart uint16 // offset in table for first byte
-	valueStart  uint16 // offset in table for first byte
-}
-
-type trie struct {
-	index  []uint16
-	values []uint32
-}
-
-// trieNode is the intermediate trie structure used for generating a trie.
-type trieNode struct {
-	index    []*trieNode
-	value    []uint32
-	b        byte
-	refValue uint16
-	refIndex uint16
-}
-
-func newNode() *trieNode {
-	return &trieNode{
-		index: make([]*trieNode, 64),
-		value: make([]uint32, 128), // root node size is 128 instead of 64
-	}
-}
-
-func (n *trieNode) isInternal() bool {
-	return n.value != nil
-}
-
-func (n *trieNode) insert(r rune, value uint32) {
-	const maskx = 0x3F // mask out two most-significant bits
-	str := string(r)
-	if len(str) == 1 {
-		n.value[str[0]] = value
-		return
-	}
-	for i := 0; i < len(str)-1; i++ {
-		b := str[i] & maskx
-		if n.index == nil {
-			n.index = make([]*trieNode, blockSize)
-		}
-		nn := n.index[b]
-		if nn == nil {
-			nn = &trieNode{}
-			nn.b = b
-			n.index[b] = nn
-		}
-		n = nn
-	}
-	if n.value == nil {
-		n.value = make([]uint32, blockSize)
-	}
-	b := str[len(str)-1] & maskx
-	n.value[b] = value
-}
-
-type trieBuilder struct {
-	t *trie
-
-	roots []*trieHandle
-
-	lookupBlocks []*trieNode
-	valueBlocks  []*trieNode
-
-	lookupBlockIdx map[uint32]*trieNode
-	valueBlockIdx  map[uint32]*trieNode
-}
-
-func newTrieBuilder() *trieBuilder {
-	index := &trieBuilder{}
-	index.lookupBlocks = make([]*trieNode, 0)
-	index.valueBlocks = make([]*trieNode, 0)
-	index.lookupBlockIdx = make(map[uint32]*trieNode)
-	index.valueBlockIdx = make(map[uint32]*trieNode)
-	// The third nil is the default null block.  The other two blocks
-	// are used to guarantee an offset of at least 3 for each block.
-	index.lookupBlocks = append(index.lookupBlocks, nil, nil, nil)
-	index.t = &trie{}
-	return index
-}
-
-func (b *trieBuilder) computeOffsets(n *trieNode) *trieNode {
-	hasher := fnv.New32()
-	if n.index != nil {
-		for i, nn := range n.index {
-			var vi, vv uint16
-			if nn != nil {
-				nn = b.computeOffsets(nn)
-				n.index[i] = nn
-				vi = nn.refIndex
-				vv = nn.refValue
-			}
-			hasher.Write([]byte{byte(vi >> 8), byte(vi)})
-			hasher.Write([]byte{byte(vv >> 8), byte(vv)})
-		}
-		h := hasher.Sum32()
-		nn, ok := b.lookupBlockIdx[h]
-		if !ok {
-			n.refIndex = uint16(len(b.lookupBlocks)) - blockOffset
-			b.lookupBlocks = append(b.lookupBlocks, n)
-			b.lookupBlockIdx[h] = n
-		} else {
-			n = nn
-		}
-	} else {
-		for _, v := range n.value {
-			hasher.Write([]byte{byte(v >> 24), byte(v >> 16), byte(v >> 8), byte(v)})
-		}
-		h := hasher.Sum32()
-		nn, ok := b.valueBlockIdx[h]
-		if !ok {
-			n.refValue = uint16(len(b.valueBlocks)) - blockOffset
-			n.refIndex = n.refValue
-			b.valueBlocks = append(b.valueBlocks, n)
-			b.valueBlockIdx[h] = n
-		} else {
-			n = nn
-		}
-	}
-	return n
-}
-
-func (b *trieBuilder) addStartValueBlock(n *trieNode) uint16 {
-	hasher := fnv.New32()
-	for _, v := range n.value[:2*blockSize] {
-		hasher.Write([]byte{byte(v >> 24), byte(v >> 16), byte(v >> 8), byte(v)})
-	}
-	h := hasher.Sum32()
-	nn, ok := b.valueBlockIdx[h]
-	if !ok {
-		n.refValue = uint16(len(b.valueBlocks))
-		n.refIndex = n.refValue
-		b.valueBlocks = append(b.valueBlocks, n)
-		// Add a dummy block to accommodate the double block size.
-		b.valueBlocks = append(b.valueBlocks, nil)
-		b.valueBlockIdx[h] = n
-	} else {
-		n = nn
-	}
-	return n.refValue
-}
-
-func genValueBlock(t *trie, n *trieNode) {
-	if n != nil {
-		for _, v := range n.value {
-			t.values = append(t.values, v)
-		}
-	}
-}
-
-func genLookupBlock(t *trie, n *trieNode) {
-	for _, nn := range n.index {
-		v := uint16(0)
-		if nn != nil {
-			if n.index != nil {
-				v = nn.refIndex
-			} else {
-				v = nn.refValue
-			}
-		}
-		t.index = append(t.index, v)
-	}
-}
-
-func (b *trieBuilder) addTrie(n *trieNode) *trieHandle {
-	h := &trieHandle{}
-	b.roots = append(b.roots, h)
-	h.valueStart = b.addStartValueBlock(n)
-	if len(b.roots) == 1 {
-		// We insert a null block after the first start value block.
-		// This ensures that continuation bytes UTF-8 sequences of length
-		// greater than 2 will automatically hit a null block if there
-		// was an undefined entry.
-		b.valueBlocks = append(b.valueBlocks, nil)
-	}
-	n = b.computeOffsets(n)
-	// Offset by one extra block as the first byte starts at 0xC0 instead of 0x80.
-	h.lookupStart = n.refIndex - 1
-	return h
-}
-
-// generate generates and returns the trie for n.
-func (b *trieBuilder) generate() (t *trie, err error) {
-	t = b.t
-	if len(b.valueBlocks) >= 1<<16 {
-		return nil, fmt.Errorf("maximum number of value blocks exceeded (%d > %d)", len(b.valueBlocks), 1<<16)
-	}
-	if len(b.lookupBlocks) >= 1<<16 {
-		return nil, fmt.Errorf("maximum number of lookup blocks exceeded (%d > %d)", len(b.lookupBlocks), 1<<16)
-	}
-	genValueBlock(t, b.valueBlocks[0])
-	genValueBlock(t, &trieNode{value: make([]uint32, 64)})
-	for i := 2; i < len(b.valueBlocks); i++ {
-		genValueBlock(t, b.valueBlocks[i])
-	}
-	n := &trieNode{index: make([]*trieNode, 64)}
-	genLookupBlock(t, n)
-	genLookupBlock(t, n)
-	genLookupBlock(t, n)
-	for i := 3; i < len(b.lookupBlocks); i++ {
-		genLookupBlock(t, b.lookupBlocks[i])
-	}
-	return b.t, nil
-}
-
-func (t *trie) printArrays(w io.Writer, name string) (n, size int, err error) {
-	p := func(f string, a ...interface{}) {
-		nn, e := fmt.Fprintf(w, f, a...)
-		n += nn
-		if err == nil {
-			err = e
-		}
-	}
-	nv := len(t.values)
-	p("// %sValues: %d entries, %d bytes\n", name, nv, nv*4)
-	p("// Block 2 is the null block.\n")
-	p("var %sValues = [%d]uint32 {", name, nv)
-	var printnewline bool
-	for i, v := range t.values {
-		if i%blockSize == 0 {
-			p("\n\t// Block %#x, offset %#x", i/blockSize, i)
-		}
-		if i%4 == 0 {
-			printnewline = true
-		}
-		if v != 0 {
-			if printnewline {
-				p("\n\t")
-				printnewline = false
-			}
-			p("%#04x:%#08x, ", i, v)
-		}
-	}
-	p("\n}\n\n")
-	ni := len(t.index)
-	p("// %sLookup: %d entries, %d bytes\n", name, ni, ni*2)
-	p("// Block 0 is the null block.\n")
-	p("var %sLookup = [%d]uint16 {", name, ni)
-	printnewline = false
-	for i, v := range t.index {
-		if i%blockSize == 0 {
-			p("\n\t// Block %#x, offset %#x", i/blockSize, i)
-		}
-		if i%8 == 0 {
-			printnewline = true
-		}
-		if v != 0 {
-			if printnewline {
-				p("\n\t")
-				printnewline = false
-			}
-			p("%#03x:%#02x, ", i, v)
-		}
-	}
-	p("\n}\n\n")
-	return n, nv*4 + ni*2, err
-}
-
-func (t *trie) printStruct(w io.Writer, handle *trieHandle, name string) (n, sz int, err error) {
-	const msg = "trie{ %sLookup[%d:], %sValues[%d:], %sLookup[:], %sValues[:]}"
-	n, err = fmt.Fprintf(w, msg, name, handle.lookupStart*blockSize, name, handle.valueStart*blockSize, name, name)
-	sz += int(reflect.TypeOf(trie{}).Size())
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie_test.go gcc-4.8.1/libgo/go/exp/locale/collate/build/trie_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/build/trie_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/build/trie_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,107 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package build
-
-import (
-	"bytes"
-	"fmt"
-	"testing"
-)
-
-// We take the smallest, largest and an arbitrary value for each
-// of the UTF-8 sequence lengths.
-var testRunes = []rune{
-	0x01, 0x0C, 0x7F, // 1-byte sequences
-	0x80, 0x100, 0x7FF, // 2-byte sequences
-	0x800, 0x999, 0xFFFF, // 3-byte sequences
-	0x10000, 0x10101, 0x10FFFF, // 4-byte sequences
-	0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block
-}
-
-func makeTestTrie(t *testing.T) trie {
-	n := newNode()
-	for i, r := range testRunes {
-		n.insert(r, uint32(i))
-	}
-	idx := newTrieBuilder()
-	idx.addTrie(n)
-	tr, err := idx.generate()
-	if err != nil {
-		t.Errorf(err.Error())
-	}
-	return *tr
-}
-
-func TestGenerateTrie(t *testing.T) {
-	testdata := makeTestTrie(t)
-	buf := &bytes.Buffer{}
-	testdata.printArrays(buf, "test")
-	fmt.Fprintf(buf, "var testTrie = ")
-	testdata.printStruct(buf, &trieHandle{19, 0}, "test")
-	if output != buf.String() {
-		t.Error("output differs")
-	}
-}
-
-var output = `// testValues: 832 entries, 3328 bytes
-// Block 2 is the null block.
-var testValues = [832]uint32 {
-	// Block 0x0, offset 0x0
-	0x000c:0x00000001, 
-	// Block 0x1, offset 0x40
-	0x007f:0x00000002, 
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0:0x00000003, 
-	// Block 0x4, offset 0x100
-	0x0100:0x00000004, 
-	// Block 0x5, offset 0x140
-	0x0140:0x0000000c, 0x0141:0x0000000d, 0x0142:0x0000000e, 
-	0x0150:0x0000000f, 
-	0x0155:0x00000010, 
-	// Block 0x6, offset 0x180
-	0x01bf:0x00000005, 
-	// Block 0x7, offset 0x1c0
-	0x01c0:0x00000006, 
-	// Block 0x8, offset 0x200
-	0x0219:0x00000007, 
-	// Block 0x9, offset 0x240
-	0x027f:0x00000008, 
-	// Block 0xa, offset 0x280
-	0x0280:0x00000009, 
-	// Block 0xb, offset 0x2c0
-	0x02c1:0x0000000a, 
-	// Block 0xc, offset 0x300
-	0x033f:0x0000000b, 
-}
-
-// testLookup: 640 entries, 1280 bytes
-// Block 0 is the null block.
-var testLookup = [640]uint16 {
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0e0:0x05, 0x0e6:0x06, 
-	// Block 0x4, offset 0x100
-	0x13f:0x07, 
-	// Block 0x5, offset 0x140
-	0x140:0x08, 0x144:0x09, 
-	// Block 0x6, offset 0x180
-	0x190:0x03, 
-	// Block 0x7, offset 0x1c0
-	0x1ff:0x0a, 
-	// Block 0x8, offset 0x200
-	0x20f:0x05, 
-	// Block 0x9, offset 0x240
-	0x242:0x01, 0x244:0x02, 
-	0x248:0x03, 
-	0x25f:0x04, 
-	0x260:0x01, 
-	0x26f:0x02, 
-	0x270:0x04, 0x274:0x06, 
-}
-
-var testTrie = trie{ testLookup[1216:], testValues[0:], testLookup[:], testValues[:]}`
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem.go gcc-4.8.1/libgo/go/exp/locale/collate/colelem.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/colelem.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,317 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"unicode"
-)
-
-// Level identifies the collation comparison level.
-// The primary level corresponds to the basic sorting of text.
-// The secondary level corresponds to accents and related linguistic elements.
-// The tertiary level corresponds to casing and related concepts.
-// The quaternary level is derived from the other levels by the
-// various algorithms for handling variable elements.
-type Level int
-
-const (
-	Primary Level = iota
-	Secondary
-	Tertiary
-	Quaternary
-	Identity
-)
-
-const (
-	defaultSecondary = 0x20
-	defaultTertiary  = 0x2
-	maxTertiary      = 0x1F
-	MaxQuaternary    = 0x1FFFFF // 21 bits.
-)
-
-// Elem is a representation of a collation element. This API provides ways to encode
-// and decode Elems. Implementations of collation tables may use values greater
-// or equal to PrivateUse for their own purposes.  However, these should never be
-// returned by AppendNext.
-type Elem uint32
-
-const (
-	maxCE       Elem = 0xAFFFFFFF
-	PrivateUse       = minContract
-	minContract      = 0xC0000000
-	maxContract      = 0xDFFFFFFF
-	minExpand        = 0xE0000000
-	maxExpand        = 0xEFFFFFFF
-	minDecomp        = 0xF0000000
-)
-
-type ceType int
-
-const (
-	ceNormal           ceType = iota // ceNormal includes implicits (ce == 0)
-	ceContractionIndex               // rune can be a start of a contraction
-	ceExpansionIndex                 // rune expands into a sequence of collation elements
-	ceDecompose                      // rune expands using NFKC decomposition
-)
-
-func (ce Elem) ctype() ceType {
-	if ce <= maxCE {
-		return ceNormal
-	}
-	if ce <= maxContract {
-		return ceContractionIndex
-	} else {
-		if ce <= maxExpand {
-			return ceExpansionIndex
-		}
-		return ceDecompose
-	}
-	panic("should not reach here")
-	return ceType(-1)
-}
-
-// For normal collation elements, we assume that a collation element either has
-// a primary or non-default secondary value, not both.
-// Collation elements with a primary value are of the form
-// 01pppppp pppppppp ppppppp0 ssssssss
-//   - p* is primary collation value
-//   - s* is the secondary collation value
-// 00pppppp pppppppp ppppppps sssttttt, where
-//   - p* is primary collation value
-//   - s* offset of secondary from default value.
-//   - t* is the tertiary collation value
-// 100ttttt cccccccc pppppppp pppppppp
-//   - t* is the tertiar collation value
-//   - c* is the cannonical combining class
-//   - p* is the primary collation value
-// Collation elements with a secondary value are of the form
-// 1010cccc ccccssss ssssssss tttttttt, where
-//   - c* is the canonical combining class
-//   - s* is the secondary collation value
-//   - t* is the tertiary collation value
-// 11qqqqqq qqqqqqqq qqqqqqq0 00000000
-//   - q* quaternary value
-const (
-	ceTypeMask            = 0xC0000000
-	ceTypeMaskExt         = 0xE0000000
-	ceType1               = 0x40000000
-	ceType2               = 0x00000000
-	ceType3or4            = 0x80000000
-	ceType4               = 0xA0000000
-	ceTypeQ               = 0xC0000000
-	ceIgnore              = ceType4
-	firstNonPrimary       = 0x80000000
-	lastSpecialPrimary    = 0xA0000000
-	secondaryMask         = 0x80000000
-	hasTertiaryMask       = 0x40000000
-	primaryValueMask      = 0x3FFFFE00
-	primaryShift          = 9
-	compactPrimaryBits    = 16
-	compactSecondaryShift = 5
-	minCompactSecondary   = defaultSecondary - 4
-)
-
-func makeImplicitCE(primary int) Elem {
-	return ceType1 | Elem(primary<<primaryShift) | defaultSecondary
-}
-
-// MakeElem returns an Elem for the given values.  It will return an error
-// if the given combination of values is invalid.
-func MakeElem(primary, secondary, tertiary int, ccc uint8) (Elem, error) {
-	// TODO: implement
-	return 0, nil
-}
-
-// MakeQuaternary returns an Elem with the given quaternary value.
-func MakeQuaternary(v int) Elem {
-	return ceTypeQ | Elem(v<<primaryShift)
-}
-
-// Mask sets weights for any level smaller than l to 0.
-// The resulting Elem can be used to test for equality with
-// other Elems to which the same mask has been applied.
-func (ce Elem) Mask(l Level) uint32 {
-	return 0
-}
-
-// CCC returns the canoncial combining class associated with the underlying character,
-// if applicable, or 0 otherwise.
-func (ce Elem) CCC() uint8 {
-	if ce&ceType3or4 != 0 {
-		if ce&ceType4 == ceType3or4 {
-			return uint8(ce >> 16)
-		}
-		return uint8(ce >> 20)
-	}
-	return 0
-}
-
-// Primary returns the primary collation weight for ce.
-func (ce Elem) Primary() int {
-	if ce >= firstNonPrimary {
-		if ce > lastSpecialPrimary {
-			return 0
-		}
-		return int(uint16(ce))
-	}
-	return int(ce&primaryValueMask) >> primaryShift
-}
-
-// Secondary returns the secondary collation weight for ce.
-func (ce Elem) Secondary() int {
-	switch ce & ceTypeMask {
-	case ceType1:
-		return int(uint8(ce))
-	case ceType2:
-		return minCompactSecondary + int((ce>>compactSecondaryShift)&0xF)
-	case ceType3or4:
-		if ce < ceType4 {
-			return defaultSecondary
-		}
-		return int(ce>>8) & 0xFFF
-	case ceTypeQ:
-		return 0
-	}
-	panic("should not reach here")
-}
-
-// Tertiary returns the tertiary collation weight for ce.
-func (ce Elem) Tertiary() uint8 {
-	if ce&hasTertiaryMask == 0 {
-		if ce&ceType3or4 == 0 {
-			return uint8(ce & 0x1F)
-		}
-		if ce&ceType4 == ceType4 {
-			return uint8(ce)
-		}
-		return uint8(ce>>24) & 0x1F // type 2
-	} else if ce&ceTypeMask == ceType1 {
-		return defaultTertiary
-	}
-	// ce is a quaternary value.
-	return 0
-}
-
-func (ce Elem) updateTertiary(t uint8) Elem {
-	if ce&ceTypeMask == ceType1 {
-		// convert to type 4
-		nce := ce & primaryValueMask
-		nce |= Elem(uint8(ce)-minCompactSecondary) << compactSecondaryShift
-		ce = nce
-	} else if ce&ceTypeMaskExt == ceType3or4 {
-		ce &= ^Elem(maxTertiary << 24)
-		return ce | (Elem(t) << 24)
-	} else {
-		// type 2 or 4
-		ce &= ^Elem(maxTertiary)
-	}
-	return ce | Elem(t)
-}
-
-// Quaternary returns the quaternary value if explicitly specified,
-// 0 if ce == ceIgnore, or MaxQuaternary otherwise.
-// Quaternary values are used only for shifted variants.
-func (ce Elem) Quaternary() int {
-	if ce&ceTypeMask == ceTypeQ {
-		return int(ce&primaryValueMask) >> primaryShift
-	} else if ce == ceIgnore {
-		return 0
-	}
-	return MaxQuaternary
-}
-
-// Weight returns the collation weight for the given level.
-func (ce Elem) Weight(l Level) int {
-	switch l {
-	case Primary:
-		return ce.Primary()
-	case Secondary:
-		return ce.Secondary()
-	case Tertiary:
-		return int(ce.Tertiary())
-	case Quaternary:
-		return ce.Quaternary()
-	}
-	return 0 // return 0 (ignore) for undefined levels.
-}
-
-// For contractions, collation elements are of the form
-// 110bbbbb bbbbbbbb iiiiiiii iiiinnnn, where
-//   - n* is the size of the first node in the contraction trie.
-//   - i* is the index of the first node in the contraction trie.
-//   - b* is the offset into the contraction collation element table.
-// See contract.go for details on the contraction trie.
-const (
-	maxNBits              = 4
-	maxTrieIndexBits      = 12
-	maxContractOffsetBits = 13
-)
-
-func splitContractIndex(ce Elem) (index, n, offset int) {
-	n = int(ce & (1<<maxNBits - 1))
-	ce >>= maxNBits
-	index = int(ce & (1<<maxTrieIndexBits - 1))
-	ce >>= maxTrieIndexBits
-	offset = int(ce & (1<<maxContractOffsetBits - 1))
-	return
-}
-
-// For expansions, Elems are of the form 11100000 00000000 bbbbbbbb bbbbbbbb,
-// where b* is the index into the expansion sequence table.
-const maxExpandIndexBits = 16
-
-func splitExpandIndex(ce Elem) (index int) {
-	return int(uint16(ce))
-}
-
-// Some runes can be expanded using NFKD decomposition. Instead of storing the full
-// sequence of collation elements, we decompose the rune and lookup the collation
-// elements for each rune in the decomposition and modify the tertiary weights.
-// The Elem, in this case, is of the form 11110000 00000000 wwwwwwww vvvvvvvv, where
-//   - v* is the replacement tertiary weight for the first rune,
-//   - w* is the replacement tertiary weight for the second rune,
-// Tertiary weights of subsequent runes should be replaced with maxTertiary.
-// See http://www.unicode.org/reports/tr10/#Compatibility_Decompositions for more details.
-func splitDecompose(ce Elem) (t1, t2 uint8) {
-	return uint8(ce), uint8(ce >> 8)
-}
-
-const (
-	// These constants were taken from http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf.
-	minUnified       rune = 0x4E00
-	maxUnified            = 0x9FFF
-	minCompatibility      = 0xF900
-	maxCompatibility      = 0xFAFF
-	minRare               = 0x3400
-	maxRare               = 0x4DBF
-)
-const (
-	commonUnifiedOffset = 0x10000
-	rareUnifiedOffset   = 0x20000 // largest rune in common is U+FAFF
-	otherOffset         = 0x50000 // largest rune in rare is U+2FA1D
-	illegalOffset       = otherOffset + int(unicode.MaxRune)
-	maxPrimary          = illegalOffset + 1
-)
-
-// implicitPrimary returns the primary weight for the a rune
-// for which there is no entry for the rune in the collation table.
-// We take a different approach from the one specified in
-// http://unicode.org/reports/tr10/#Implicit_Weights,
-// but preserve the resulting relative ordering of the runes.
-func implicitPrimary(r rune) int {
-	if unicode.Is(unicode.Ideographic, r) {
-		if r >= minUnified && r <= maxUnified {
-			// The most common case for CJK.
-			return int(r) + commonUnifiedOffset
-		}
-		if r >= minCompatibility && r <= maxCompatibility {
-			// This will typically not hit. The DUCET explicitly specifies mappings
-			// for all characters that do not decompose.
-			return int(r) + commonUnifiedOffset
-		}
-		return int(r) + rareUnifiedOffset
-	}
-	return int(r) + otherOffset
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem_test.go gcc-4.8.1/libgo/go/exp/locale/collate/colelem_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/colelem_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/colelem_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,274 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"testing"
-	"unicode"
-)
-
-type ceTest struct {
-	f   func(inout []int) (Elem, ceType)
-	arg []int
-}
-
-// The make* funcs are simplified versions of the functions in build/colelem.go
-func makeCE(weights []int) Elem {
-	const (
-		maxPrimaryBits          = 21
-		maxSecondaryBits        = 12
-		maxSecondaryCompactBits = 8
-		maxSecondaryDiffBits    = 4
-		maxTertiaryBits         = 8
-		maxTertiaryCompactBits  = 5
-		isPrimary               = 0x40000000
-		isPrimaryCCC            = 0x80000000
-		isSecondary             = 0xA0000000
-	)
-	var ce Elem
-	ccc := weights[3]
-	if weights[0] != 0 {
-		if ccc != 0 {
-			ce = Elem(weights[2] << 24)
-			ce |= Elem(ccc) << 16
-			ce |= Elem(weights[0])
-			ce |= isPrimaryCCC
-		} else if weights[2] == defaultTertiary {
-			ce = Elem(weights[0]<<(maxSecondaryCompactBits+1) + weights[1])
-			ce |= isPrimary
-		} else {
-			d := weights[1] - defaultSecondary + 4
-			ce = Elem(weights[0]<<maxSecondaryDiffBits + d)
-			ce = ce<<maxTertiaryCompactBits + Elem(weights[2])
-		}
-	} else {
-		ce = Elem(weights[1]<<maxTertiaryBits + weights[2])
-		ce += Elem(ccc) << 20
-		ce |= isSecondary
-	}
-	return ce
-}
-
-func makeContractIndex(index, n, offset int) Elem {
-	const (
-		contractID            = 0xC0000000
-		maxNBits              = 4
-		maxTrieIndexBits      = 12
-		maxContractOffsetBits = 13
-	)
-	ce := Elem(contractID)
-	ce += Elem(offset << (maxNBits + maxTrieIndexBits))
-	ce += Elem(index << maxNBits)
-	ce += Elem(n)
-	return ce
-}
-
-func makeExpandIndex(index int) Elem {
-	const expandID = 0xE0000000
-	return expandID + Elem(index)
-}
-
-func makeDecompose(t1, t2 int) Elem {
-	const decompID = 0xF0000000
-	return Elem(t2<<8+t1) + decompID
-}
-
-func normalCE(inout []int) (ce Elem, t ceType) {
-	ce = makeCE(inout)
-	inout[0] = ce.Primary()
-	inout[1] = ce.Secondary()
-	inout[2] = int(ce.Tertiary())
-	inout[3] = int(ce.CCC())
-	return ce, ceNormal
-}
-
-func expandCE(inout []int) (ce Elem, t ceType) {
-	ce = makeExpandIndex(inout[0])
-	inout[0] = splitExpandIndex(ce)
-	return ce, ceExpansionIndex
-}
-
-func contractCE(inout []int) (ce Elem, t ceType) {
-	ce = makeContractIndex(inout[0], inout[1], inout[2])
-	i, n, o := splitContractIndex(ce)
-	inout[0], inout[1], inout[2] = i, n, o
-	return ce, ceContractionIndex
-}
-
-func decompCE(inout []int) (ce Elem, t ceType) {
-	ce = makeDecompose(inout[0], inout[1])
-	t1, t2 := splitDecompose(ce)
-	inout[0], inout[1] = int(t1), int(t2)
-	return ce, ceDecompose
-}
-
-const (
-	maxPrimaryBits   = 21
-	maxSecondaryBits = 16
-	maxTertiaryBits  = 8
-)
-
-var ceTests = []ceTest{
-	{normalCE, []int{0, 0, 0, 0}},
-	{normalCE, []int{0, 30, 3, 0}},
-	{normalCE, []int{0, 30, 3, 0xFF}},
-	{normalCE, []int{100, defaultSecondary, defaultTertiary, 0}},
-	{normalCE, []int{100, defaultSecondary, defaultTertiary, 0xFF}},
-	{normalCE, []int{100, defaultSecondary, 3, 0}},
-	{normalCE, []int{0x123, defaultSecondary, 8, 0xFF}},
-
-	{contractCE, []int{0, 0, 0}},
-	{contractCE, []int{1, 1, 1}},
-	{contractCE, []int{1, (1 << maxNBits) - 1, 1}},
-	{contractCE, []int{(1 << maxTrieIndexBits) - 1, 1, 1}},
-	{contractCE, []int{1, 1, (1 << maxContractOffsetBits) - 1}},
-
-	{expandCE, []int{0}},
-	{expandCE, []int{5}},
-	{expandCE, []int{(1 << maxExpandIndexBits) - 1}},
-
-	{decompCE, []int{0, 0}},
-	{decompCE, []int{1, 1}},
-	{decompCE, []int{0x1F, 0x1F}},
-}
-
-func TestColElem(t *testing.T) {
-	for i, tt := range ceTests {
-		inout := make([]int, len(tt.arg))
-		copy(inout, tt.arg)
-		ce, typ := tt.f(inout)
-		if ce.ctype() != typ {
-			t.Errorf("%d: type is %d; want %d (ColElem: %X)", i, ce.ctype(), typ, ce)
-		}
-		for j, a := range tt.arg {
-			if inout[j] != a {
-				t.Errorf("%d: argument %d is %X; want %X (ColElem: %X)", i, j, inout[j], a, ce)
-			}
-		}
-	}
-}
-
-type implicitTest struct {
-	r rune
-	p int
-}
-
-var implicitTests = []implicitTest{
-	{0x33FF, 0x533FF},
-	{0x3400, 0x23400},
-	{0x4DC0, 0x54DC0},
-	{0x4DFF, 0x54DFF},
-	{0x4E00, 0x14E00},
-	{0x9FCB, 0x19FCB},
-	{0xA000, 0x5A000},
-	{0xF8FF, 0x5F8FF},
-	{0xF900, 0x1F900},
-	{0xFA23, 0x1FA23},
-	{0xFAD9, 0x1FAD9},
-	{0xFB00, 0x5FB00},
-	{0x20000, 0x40000},
-	{0x2B81C, 0x4B81C},
-	{unicode.MaxRune, 0x15FFFF}, // maximum primary value
-}
-
-func TestImplicit(t *testing.T) {
-	for _, tt := range implicitTests {
-		if p := implicitPrimary(tt.r); p != tt.p {
-			t.Errorf("%U: was %X; want %X", tt.r, p, tt.p)
-		}
-	}
-}
-
-func TestUpdateTertiary(t *testing.T) {
-	tests := []struct {
-		in, out Elem
-		t       uint8
-	}{
-		{0x4000FE20, 0x0000FE8A, 0x0A},
-		{0x4000FE21, 0x0000FEAA, 0x0A},
-		{0x0000FE8B, 0x0000FE83, 0x03},
-		{0x82FF0188, 0x9BFF0188, 0x1B},
-		{0xAFF0CC02, 0xAFF0CC1B, 0x1B},
-	}
-	for i, tt := range tests {
-		if out := tt.in.updateTertiary(tt.t); out != tt.out {
-			t.Errorf("%d: was %X; want %X", i, out, tt.out)
-		}
-	}
-}
-
-func TestDoNorm(t *testing.T) {
-	const div = -1 // The insertion point of the next block.
-	tests := []struct {
-		in, out []int
-	}{
-		{in: []int{4, div, 3},
-			out: []int{3, 4},
-		},
-		{in: []int{4, div, 3, 3, 3},
-			out: []int{3, 3, 3, 4},
-		},
-		{in: []int{0, 4, div, 3},
-			out: []int{0, 3, 4},
-		},
-		{in: []int{0, 0, 4, 5, div, 3, 3},
-			out: []int{0, 0, 3, 3, 4, 5},
-		},
-		{in: []int{0, 0, 1, 4, 5, div, 3, 3},
-			out: []int{0, 0, 1, 3, 3, 4, 5},
-		},
-		{in: []int{0, 0, 1, 4, 5, div, 4, 4},
-			out: []int{0, 0, 1, 4, 4, 4, 5},
-		},
-	}
-	for j, tt := range tests {
-		i := iter{}
-		var w, p, s int
-		for k, cc := range tt.in {
-			if cc == 0 {
-				s = 0
-			}
-			if cc == div {
-				w = 100
-				p = k
-				i.pStarter = s
-				continue
-			}
-			i.ce = append(i.ce, makeCE([]int{w, 20, 2, cc}))
-		}
-		i.prevCCC = i.ce[p-1].CCC()
-		i.doNorm(p, i.ce[p].CCC())
-		if len(i.ce) != len(tt.out) {
-			t.Errorf("%d: length was %d; want %d", j, len(i.ce), len(tt.out))
-		}
-		prevCCC := uint8(0)
-		for k, ce := range i.ce {
-			if int(ce.CCC()) != tt.out[k] {
-				t.Errorf("%d:%d: unexpected CCC. Was %d; want %d", j, k, ce.CCC(), tt.out[k])
-			}
-			if k > 0 && ce.CCC() == prevCCC && i.ce[k-1].Primary() > ce.Primary() {
-				t.Errorf("%d:%d: normalization crossed across CCC boundary.", j, k)
-			}
-		}
-	}
-	// test cutoff of large sequence of combining characters.
-	result := []uint8{8, 8, 8, 5, 5}
-	for o := -2; o <= 2; o++ {
-		i := iter{pStarter: 2, prevCCC: 8}
-		n := maxCombiningCharacters + 1 + o
-		for j := 1; j < n+i.pStarter; j++ {
-			i.ce = append(i.ce, makeCE([]int{100, 20, 2, 8}))
-		}
-		p := len(i.ce)
-		i.ce = append(i.ce, makeCE([]int{0, 20, 2, 5}))
-		i.doNorm(p, 5)
-		if i.prevCCC != result[o+2] {
-			t.Errorf("%d: i.prevCCC was %d; want %d", n, i.prevCCC, result[o+2])
-		}
-		if result[o+2] == 5 && i.pStarter != p {
-			t.Errorf("%d: i.pStarter was %d; want %d", n, i.pStarter, p)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/collate.go gcc-4.8.1/libgo/go/exp/locale/collate/collate.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/collate.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/collate.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,586 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package collate contains types for comparing and sorting Unicode strings
-// according to a given collation order.  Package locale provides a high-level
-// interface to collation. Users should typically use that package instead.
-package collate
-
-import (
-	"bytes"
-	"exp/norm"
-)
-
-// AlternateHandling identifies the various ways in which variables are handled.
-// A rune with a primary weight lower than the variable top is considered a
-// variable.
-// See http://www.unicode.org/reports/tr10/#Variable_Weighting for details.
-type AlternateHandling int
-
-const (
-	// AltNonIgnorable turns off special handling of variables.
-	AltNonIgnorable AlternateHandling = iota
-
-	// AltBlanked sets variables and all subsequent primary ignorables to be
-	// ignorable at all levels. This is identical to removing all variables
-	// and subsequent primary ignorables from the input.
-	AltBlanked
-
-	// AltShifted sets variables to be ignorable for levels one through three and
-	// adds a fourth level based on the values of the ignored levels.
-	AltShifted
-
-	// AltShiftTrimmed is a slight variant of AltShifted that is used to
-	// emulate POSIX.
-	AltShiftTrimmed
-)
-
-// Collator provides functionality for comparing strings for a given
-// collation order.
-type Collator struct {
-	// TODO: hide most of these options. Low-level options are set through the locale
-	// identifier (as defined by LDML) while high-level options are set through SetOptions.
-	// Using high-level options allows us to be more flexible (such as not ignoring
-	// Thai vowels for IgnoreDiacriticals) and more user-friendly (such as allowing
-	// diacritical marks to be ignored but not case without having to fiddle with levels).
-
-	// Strength sets the maximum level to use in comparison.
-	Strength Level
-
-	// Alternate specifies an alternative handling of variables.
-	Alternate AlternateHandling
-
-	// Backwards specifies the order of sorting at the secondary level.
-	// This option exists predominantly to support reverse sorting of accents in French.
-	Backwards bool
-
-	// TODO: implement:
-	// With HiraganaQuaternary enabled, Hiragana codepoints will get lower values
-	// than all the other non-variable code points. Strength must be greater or
-	// equal to Quaternary for this to take effect.
-	HiraganaQuaternary bool
-
-	// If CaseLevel is true, a level consisting only of case characteristics will
-	// be inserted in front of the tertiary level.  To ignore accents but take
-	// cases into account, set Strength to Primary and CaseLevel to true.
-	CaseLevel bool
-
-	// If Numeric is true, any sequence of decimal digits (category is Nd) is sorted
-	// at a primary level with its numeric value.  For example, "A-21" < "A-123".
-	Numeric bool
-
-	// The largest primary value that is considered to be variable.
-	variableTop uint32
-
-	f norm.Form
-
-	t Weigher
-
-	sorter sorter
-
-	_iter [2]iter
-}
-
-// An Option is used to change the behavior of Collator.  They override the
-// settings passed through the locale identifier.
-type Option int
-
-const (
-	Numeric          Option = 1 << iota // Sort numbers numerically ("2" < "12").
-	IgnoreCase                          // Case-insensitive search.
-	IgnoreDiacritics                    // Ignore diacritical marks. ("o" == "Ã¶").
-	IgnoreWidth                         // Ignore full versus normal width.
-	UpperFirst                          // Sort upper case before lower case.
-	LowerFirst                          // Sort lower case before upper case.
-	Force                               // Force ordering if strings are equivalent but not equal.
-
-	Loose = IgnoreDiacritics | IgnoreWidth | IgnoreCase
-)
-
-// SetOptions accepts a Options or-ed together.  All previous calls to SetOptions are ignored.
-func (c *Collator) SetOptions(o Option) {
-	// TODO: implement
-}
-
-func (c *Collator) iter(i int) *iter {
-	// TODO: evaluate performance for making the second iterator optional.
-	return &c._iter[i]
-}
-
-// Locales returns the list of locales for which collating differs from its parent locale.
-// The returned value should not be modified.
-func Locales() []string {
-	return availableLocales
-}
-
-// New returns a new Collator initialized for the given locale.
-func New(loc string) *Collator {
-	// TODO: handle locale selection according to spec.
-	var t tableIndex
-	if loc != "" {
-		if idx, ok := locales[loc]; ok {
-			t = idx
-		} else {
-			t = locales["root"]
-		}
-	}
-	return NewFromTable(Init(t))
-}
-
-func NewFromTable(t Weigher) *Collator {
-	c := &Collator{
-		Strength: Tertiary,
-		f:        norm.NFD,
-		t:        t,
-	}
-	c._iter[0].init(c)
-	c._iter[1].init(c)
-	return c
-}
-
-// Buffer holds keys generated by Key and KeyString.
-type Buffer struct {
-	buf [4096]byte
-	key []byte
-}
-
-func (b *Buffer) init() {
-	if b.key == nil {
-		b.key = b.buf[:0]
-	}
-}
-
-// Reset clears the buffer from previous results generated by Key and KeyString.
-func (b *Buffer) Reset() {
-	b.key = b.key[:0]
-}
-
-// Compare returns an integer comparing the two byte slices.
-// The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
-func (c *Collator) Compare(a, b []byte) int {
-	// TODO: skip identical prefixes once we have a fast way to detect if a rune is
-	// part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest.
-	c.iter(0).setInput(a)
-	c.iter(1).setInput(b)
-	if res := c.compare(); res != 0 {
-		return res
-	}
-	if Identity == c.Strength {
-		return bytes.Compare(a, b)
-	}
-	return 0
-}
-
-// CompareString returns an integer comparing the two strings.
-// The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
-func (c *Collator) CompareString(a, b string) int {
-	// TODO: skip identical prefixes once we have a fast way to detect if a rune is
-	// part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest.
-	c.iter(0).setInputString(a)
-	c.iter(1).setInputString(b)
-	if res := c.compare(); res != 0 {
-		return res
-	}
-	if Identity == c.Strength {
-		if a < b {
-			return -1
-		} else if a > b {
-			return 1
-		}
-	}
-	return 0
-}
-
-func compareLevel(f func(i *iter) int, a, b *iter) int {
-	a.pce = 0
-	b.pce = 0
-	for {
-		va := f(a)
-		vb := f(b)
-		if va != vb {
-			if va < vb {
-				return -1
-			}
-			return 1
-		} else if va == 0 {
-			break
-		}
-	}
-	return 0
-}
-
-func (c *Collator) compare() int {
-	ia, ib := c.iter(0), c.iter(1)
-	// Process primary level
-	if c.Alternate != AltShifted {
-		// TODO: implement script reordering
-		// TODO: special hiragana handling
-		if res := compareLevel((*iter).nextPrimary, ia, ib); res != 0 {
-			return res
-		}
-	} else {
-		// TODO: handle shifted
-	}
-	if Secondary <= c.Strength {
-		f := (*iter).nextSecondary
-		if c.Backwards {
-			f = (*iter).prevSecondary
-		}
-		if res := compareLevel(f, ia, ib); res != 0 {
-			return res
-		}
-	}
-	// TODO: special case handling (Danish?)
-	if Tertiary <= c.Strength || c.CaseLevel {
-		if res := compareLevel((*iter).nextTertiary, ia, ib); res != 0 {
-			return res
-		}
-		// TODO: Not needed for the default value of AltNonIgnorable?
-		if Quaternary <= c.Strength {
-			if res := compareLevel((*iter).nextQuaternary, ia, ib); res != 0 {
-				return res
-			}
-		}
-	}
-	return 0
-}
-
-// Key returns the collation key for str.
-// Passing the buffer buf may avoid memory allocations.
-// The returned slice will point to an allocation in Buffer and will remain
-// valid until the next call to buf.Reset().
-func (c *Collator) Key(buf *Buffer, str []byte) []byte {
-	// See http://www.unicode.org/reports/tr10/#Main_Algorithm for more details.
-	buf.init()
-	return c.key(buf, c.getColElems(str))
-}
-
-// KeyFromString returns the collation key for str.
-// Passing the buffer buf may avoid memory allocations.
-// The returned slice will point to an allocation in Buffer and will retain
-// valid until the next call to buf.ResetKeys().
-func (c *Collator) KeyFromString(buf *Buffer, str string) []byte {
-	// See http://www.unicode.org/reports/tr10/#Main_Algorithm for more details.
-	buf.init()
-	return c.key(buf, c.getColElemsString(str))
-}
-
-func (c *Collator) key(buf *Buffer, w []Elem) []byte {
-	processWeights(c.Alternate, c.variableTop, w)
-	kn := len(buf.key)
-	c.keyFromElems(buf, w)
-	return buf.key[kn:]
-}
-
-func (c *Collator) getColElems(str []byte) []Elem {
-	i := c.iter(0)
-	i.setInput(str)
-	for i.next() {
-	}
-	return i.ce
-}
-
-func (c *Collator) getColElemsString(str string) []Elem {
-	i := c.iter(0)
-	i.setInputString(str)
-	for i.next() {
-	}
-	return i.ce
-}
-
-type iter struct {
-	bytes []byte
-	str   string
-
-	wa  [512]Elem
-	ce  []Elem
-	pce int
-	nce int // nce <= len(nce)
-
-	prevCCC  uint8
-	pStarter int
-
-	t Weigher
-}
-
-func (i *iter) init(c *Collator) {
-	i.t = c.t
-	i.ce = i.wa[:0]
-}
-
-func (i *iter) reset() {
-	i.ce = i.ce[:0]
-	i.nce = 0
-	i.prevCCC = 0
-	i.pStarter = 0
-}
-
-func (i *iter) setInput(s []byte) *iter {
-	i.bytes = s
-	i.str = ""
-	i.reset()
-	return i
-}
-
-func (i *iter) setInputString(s string) *iter {
-	i.str = s
-	i.bytes = nil
-	i.reset()
-	return i
-}
-
-func (i *iter) done() bool {
-	return len(i.str) == 0 && len(i.bytes) == 0
-}
-
-func (i *iter) tail(n int) {
-	if i.bytes == nil {
-		i.str = i.str[n:]
-	} else {
-		i.bytes = i.bytes[n:]
-	}
-}
-
-func (i *iter) appendNext() int {
-	var sz int
-	if i.bytes == nil {
-		i.ce, sz = i.t.AppendNextString(i.ce, i.str)
-	} else {
-		i.ce, sz = i.t.AppendNext(i.ce, i.bytes)
-	}
-	return sz
-}
-
-// next appends Elems to the internal array until it adds an element with CCC=0.
-// In the majority of cases, a Elem with a primary value > 0 will have
-// a CCC of 0. The CCC values of colation elements are also used to detect if the
-// input string was not normalized and to adjust the result accordingly.
-func (i *iter) next() bool {
-	for !i.done() {
-		p0 := len(i.ce)
-		sz := i.appendNext()
-		i.tail(sz)
-		last := len(i.ce) - 1
-		if ccc := i.ce[last].CCC(); ccc == 0 {
-			i.nce = len(i.ce)
-			i.pStarter = last
-			i.prevCCC = 0
-			return true
-		} else if p0 < last && i.ce[p0].CCC() == 0 {
-			// set i.nce to only cover part of i.ce for which ccc == 0 and
-			// use rest the next call to next.
-			for p0++; p0 < last && i.ce[p0].CCC() == 0; p0++ {
-			}
-			i.nce = p0
-			i.pStarter = p0 - 1
-			i.prevCCC = ccc
-			return true
-		} else if ccc < i.prevCCC {
-			i.doNorm(p0, ccc) // should be rare for most common cases
-		} else {
-			i.prevCCC = ccc
-		}
-	}
-	if len(i.ce) != i.nce {
-		i.nce = len(i.ce)
-		return true
-	}
-	return false
-}
-
-// nextPlain is the same as next, but does not "normalize" the collation
-// elements.
-// TODO: remove this function. Using this instead of next does not seem
-// to improve performance in any significant way. We retain this until
-// later for evaluation purposes.
-func (i *iter) nextPlain() bool {
-	if i.done() {
-		return false
-	}
-	sz := i.appendNext()
-	i.tail(sz)
-	i.nce = len(i.ce)
-	return true
-}
-
-const maxCombiningCharacters = 30
-
-// doNorm reorders the collation elements in i.ce.
-// It assumes that blocks of collation elements added with appendNext
-// either start and end with the same CCC or start with CCC == 0.
-// This allows for a single insertion point for the entire block.
-// The correctness of this assumption is verified in builder.go.
-func (i *iter) doNorm(p int, ccc uint8) {
-	if p-i.pStarter > maxCombiningCharacters {
-		i.prevCCC = i.ce[len(i.ce)-1].CCC()
-		i.pStarter = len(i.ce) - 1
-		return
-	}
-	n := len(i.ce)
-	k := p
-	for p--; p > i.pStarter && ccc < i.ce[p-1].CCC(); p-- {
-	}
-	i.ce = append(i.ce, i.ce[p:k]...)
-	copy(i.ce[p:], i.ce[k:])
-	i.ce = i.ce[:n]
-}
-
-func (i *iter) nextPrimary() int {
-	for {
-		for ; i.pce < i.nce; i.pce++ {
-			if v := i.ce[i.pce].Primary(); v != 0 {
-				i.pce++
-				return v
-			}
-		}
-		if !i.next() {
-			return 0
-		}
-	}
-	panic("should not reach here")
-}
-
-func (i *iter) nextSecondary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[i.pce].Secondary(); v != 0 {
-			i.pce++
-			return v
-		}
-	}
-	return 0
-}
-
-func (i *iter) prevSecondary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[len(i.ce)-i.pce-1].Secondary(); v != 0 {
-			i.pce++
-			return v
-		}
-	}
-	return 0
-}
-
-func (i *iter) nextTertiary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[i.pce].Tertiary(); v != 0 {
-			i.pce++
-			return int(v)
-		}
-	}
-	return 0
-}
-
-func (i *iter) nextQuaternary() int {
-	for ; i.pce < len(i.ce); i.pce++ {
-		if v := i.ce[i.pce].Quaternary(); v != 0 {
-			i.pce++
-			return v
-		}
-	}
-	return 0
-}
-
-func appendPrimary(key []byte, p int) []byte {
-	// Convert to variable length encoding; supports up to 23 bits.
-	if p <= 0x7FFF {
-		key = append(key, uint8(p>>8), uint8(p))
-	} else {
-		key = append(key, uint8(p>>16)|0x80, uint8(p>>8), uint8(p))
-	}
-	return key
-}
-
-// keyFromElems converts the weights ws to a compact sequence of bytes.
-// The result will be appended to the byte buffer in buf.
-func (c *Collator) keyFromElems(buf *Buffer, ws []Elem) {
-	for _, v := range ws {
-		if w := v.Primary(); w > 0 {
-			buf.key = appendPrimary(buf.key, w)
-		}
-	}
-	if Secondary <= c.Strength {
-		buf.key = append(buf.key, 0, 0)
-		// TODO: we can use one 0 if we can guarantee that all non-zero weights are > 0xFF.
-		if !c.Backwards {
-			for _, v := range ws {
-				if w := v.Secondary(); w > 0 {
-					buf.key = append(buf.key, uint8(w>>8), uint8(w))
-				}
-			}
-		} else {
-			for i := len(ws) - 1; i >= 0; i-- {
-				if w := ws[i].Secondary(); w > 0 {
-					buf.key = append(buf.key, uint8(w>>8), uint8(w))
-				}
-			}
-		}
-	} else if c.CaseLevel {
-		buf.key = append(buf.key, 0, 0)
-	}
-	if Tertiary <= c.Strength || c.CaseLevel {
-		buf.key = append(buf.key, 0, 0)
-		for _, v := range ws {
-			if w := v.Tertiary(); w > 0 {
-				buf.key = append(buf.key, uint8(w))
-			}
-		}
-		// Derive the quaternary weights from the options and other levels.
-		// Note that we represent MaxQuaternary as 0xFF. The first byte of the
-		// representation of a primary weight is always smaller than 0xFF,
-		// so using this single byte value will compare correctly.
-		if Quaternary <= c.Strength && c.Alternate >= AltShifted {
-			if c.Alternate == AltShiftTrimmed {
-				lastNonFFFF := len(buf.key)
-				buf.key = append(buf.key, 0)
-				for _, v := range ws {
-					if w := v.Quaternary(); w == MaxQuaternary {
-						buf.key = append(buf.key, 0xFF)
-					} else if w > 0 {
-						buf.key = appendPrimary(buf.key, w)
-						lastNonFFFF = len(buf.key)
-					}
-				}
-				buf.key = buf.key[:lastNonFFFF]
-			} else {
-				buf.key = append(buf.key, 0)
-				for _, v := range ws {
-					if w := v.Quaternary(); w == MaxQuaternary {
-						buf.key = append(buf.key, 0xFF)
-					} else if w > 0 {
-						buf.key = appendPrimary(buf.key, w)
-					}
-				}
-			}
-		}
-	}
-}
-
-func processWeights(vw AlternateHandling, top uint32, wa []Elem) {
-	ignore := false
-	vtop := int(top)
-	switch vw {
-	case AltShifted, AltShiftTrimmed:
-		for i := range wa {
-			if p := wa[i].Primary(); p <= vtop && p != 0 {
-				wa[i] = MakeQuaternary(p)
-				ignore = true
-			} else if p == 0 {
-				if ignore {
-					wa[i] = ceIgnore
-				}
-			} else {
-				ignore = false
-			}
-		}
-	case AltBlanked:
-		for i := range wa {
-			if p := wa[i].Primary(); p <= vtop && (ignore || p != 0) {
-				wa[i] = ceIgnore
-				ignore = true
-			} else {
-				ignore = false
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/colltab.go gcc-4.8.1/libgo/go/exp/locale/collate/colltab.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/colltab.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/colltab.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,28 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-// A Weigher can be used as a source for Collator and Searcher.
-type Weigher interface {
-	// Start finds the start of the segment that includes position p.
-	Start(p int, b []byte) int
-
-	// StartString finds the start of the segment that includes position p.
-	StartString(p int, s string) int
-
-	// AppendNext appends Elems to buf corresponding to the longest match
-	// of a single character or contraction from the start of s.
-	// It returns the new buf and the number of bytes consumed.
-	AppendNext(buf []Elem, s []byte) (ce []Elem, n int)
-
-	// AppendNextString appends Elems to buf corresponding to the longest match
-	// of a single character or contraction from the start of s.
-	// It returns the new buf and the number of bytes consumed.
-	AppendNextString(buf []Elem, s string) (ce []Elem, n int)
-
-	// Domain returns a slice of all single characters and contractions for which
-	// collation elements are defined in this table.
-	Domain() []string
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract.go gcc-4.8.1/libgo/go/exp/locale/collate/contract.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/contract.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,145 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import "unicode/utf8"
-
-// For a description of contractTrieSet, see exp/locale/collate/build/contract.go.
-
-type contractTrieSet []struct{ l, h, n, i uint8 }
-
-// ctScanner is used to match a trie to an input sequence.
-// A contraction may match a non-contiguous sequence of bytes in an input string.
-// For example, if there is a contraction for <a, combining_ring>, it should match
-// the sequence <a, combining_cedilla, combining_ring>, as combining_cedilla does
-// not block combining_ring.
-// ctScanner does not automatically skip over non-blocking non-starters, but rather
-// retains the state of the last match and leaves it up to the user to continue
-// the match at the appropriate points.
-type ctScanner struct {
-	states contractTrieSet
-	s      []byte
-	n      int
-	index  int
-	pindex int
-	done   bool
-}
-
-type ctScannerString struct {
-	states contractTrieSet
-	s      string
-	n      int
-	index  int
-	pindex int
-	done   bool
-}
-
-func (t contractTrieSet) scanner(index, n int, b []byte) ctScanner {
-	return ctScanner{s: b, states: t[index:], n: n}
-}
-
-func (t contractTrieSet) scannerString(index, n int, str string) ctScannerString {
-	return ctScannerString{s: str, states: t[index:], n: n}
-}
-
-// result returns the offset i and bytes consumed p so far.  If no suffix
-// matched, i and p will be 0.
-func (s *ctScanner) result() (i, p int) {
-	return s.index, s.pindex
-}
-
-func (s *ctScannerString) result() (i, p int) {
-	return s.index, s.pindex
-}
-
-const (
-	final   = 0
-	noIndex = 0xFF
-)
-
-// scan matches the longest suffix at the current location in the input
-// and returns the number of bytes consumed.
-func (s *ctScanner) scan(p int) int {
-	pr := p // the p at the rune start
-	str := s.s
-	states, n := s.states, s.n
-	for i := 0; i < n && p < len(str); {
-		e := states[i]
-		c := str[p]
-		// TODO: a significant number of contractions are of a form that
-		// cannot match discontiguous UTF-8 in a normalized string. We could let
-		// a negative value of e.n mean that we can set s.done = true and avoid
-		// the need for additional matches.
-		if c >= e.l {
-			if e.l == c {
-				p++
-				if e.i != noIndex {
-					s.index = int(e.i)
-					s.pindex = p
-				}
-				if e.n != final {
-					i, states, n = 0, states[int(e.h)+n:], int(e.n)
-					if p >= len(str) || utf8.RuneStart(str[p]) {
-						s.states, s.n, pr = states, n, p
-					}
-				} else {
-					s.done = true
-					return p
-				}
-				continue
-			} else if e.n == final && c <= e.h {
-				p++
-				s.done = true
-				s.index = int(c-e.l) + int(e.i)
-				s.pindex = p
-				return p
-			}
-		}
-		i++
-	}
-	return pr
-}
-
-// scan is a verbatim copy of ctScanner.scan.
-func (s *ctScannerString) scan(p int) int {
-	pr := p // the p at the rune start
-	str := s.s
-	states, n := s.states, s.n
-	for i := 0; i < n && p < len(str); {
-		e := states[i]
-		c := str[p]
-		// TODO: a significant number of contractions are of a form that
-		// cannot match discontiguous UTF-8 in a normalized string. We could let
-		// a negative value of e.n mean that we can set s.done = true and avoid
-		// the need for additional matches.
-		if c >= e.l {
-			if e.l == c {
-				p++
-				if e.i != noIndex {
-					s.index = int(e.i)
-					s.pindex = p
-				}
-				if e.n != final {
-					i, states, n = 0, states[int(e.h)+n:], int(e.n)
-					if p >= len(str) || utf8.RuneStart(str[p]) {
-						s.states, s.n, pr = states, n, p
-					}
-				} else {
-					s.done = true
-					return p
-				}
-				continue
-			} else if e.n == final && c <= e.h {
-				p++
-				s.done = true
-				s.index = int(c-e.l) + int(e.i)
-				s.pindex = p
-				return p
-			}
-		}
-		i++
-	}
-	return pr
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract_test.go gcc-4.8.1/libgo/go/exp/locale/collate/contract_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/contract_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/locale/collate/contract_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,132 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"testing"
-)
-
-type lookupStrings struct {
-	str    string
-	offset int
-	n      int // bytes consumed from input
-}
-
-type LookupTest struct {
-	lookup []lookupStrings
-	n      int
-	tries  contractTrieSet
-}
-
-var lookupTests = []LookupTest{
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"a", 0, 0},
-		{"b", 0, 0},
-		{"c", 0, 0},
-		{"d", 0, 0},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 0xFF},
-			{'b', 0, 1, 0xFF},
-			{'c', 'c', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"abd", 2, 3},
-		{"abe", 3, 3},
-		{"a", 0, 0},
-		{"ab", 0, 0},
-		{"d", 0, 0},
-		{"f", 0, 0},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 0xFF},
-			{'b', 0, 1, 0xFF},
-			{'c', 'e', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"ab", 2, 2},
-		{"a", 3, 1},
-		{"abcd", 1, 3},
-		{"abe", 2, 2},
-	},
-		1,
-		contractTrieSet{
-			{'a', 0, 1, 3},
-			{'b', 0, 1, 2},
-			{'c', 'c', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"abc", 1, 3},
-		{"abd", 2, 3},
-		{"ab", 3, 2},
-		{"ac", 4, 2},
-		{"a", 5, 1},
-		{"b", 6, 1},
-		{"ba", 6, 1},
-	},
-		2,
-		contractTrieSet{
-			{'b', 'b', 0, 6},
-			{'a', 0, 2, 5},
-			{'c', 'c', 0, 4},
-			{'b', 0, 1, 3},
-			{'c', 'd', 0, 1},
-		},
-	},
-	{[]lookupStrings{
-		{"bcde", 2, 4},
-		{"bc", 7, 2},
-		{"ab", 6, 2},
-		{"bcd", 5, 3},
-		{"abcd", 1, 4},
-		{"abc", 4, 3},
-		{"bcdf", 3, 4},
-	},
-		2,
-		contractTrieSet{
-			{'b', 3, 1, 0xFF},
-			{'a', 0, 1, 0xFF},
-			{'b', 0, 1, 6},
-			{'c', 0, 1, 4},
-			{'d', 'd', 0, 1},
-			{'c', 0, 1, 7},
-			{'d', 0, 1, 5},
-			{'e', 'f', 0, 2},
-		},
-	},
-}
-
-func lookup(c *contractTrieSet, nnode int, s []uint8) (i, n int) {
-	scan := c.scanner(0, nnode, s)
-	scan.scan(0)
-	return scan.result()
-}
-
-func TestLookupContraction(t *testing.T) {
-	for i, tt := range lookupTests {
-		cts := contractTrieSet(tt.tries)
-		for j, lu := range tt.lookup {
-			str := lu.str
-			for _, s := range []string{str, str + "X"} {
-				const msg = `%d:%d: %s of "%s" %v; want %v`
-				offset, n := lookup(&cts, tt.n, []byte(s))
-				if offset != lu.offset {
-					t.Errorf(msg, i, j, "offset", s, offset, lu.offset)
-				}
-				if n != lu.n {
-					t.Errorf(msg, i, j, "bytes consumed", s, n, len(str))
-				}
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/export.go gcc-4.8.1/libgo/go/exp/locale/collate/export.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/export.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/export.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,36 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-// Init is for internal use only.
-func Init(data interface{}) Weigher {
-	init, ok := data.(tableInitializer)
-	if !ok {
-		return nil
-	}
-	t := &table{}
-	loff, voff := init.FirstBlockOffsets()
-	t.index.index = init.TrieIndex()
-	t.index.index0 = t.index.index[blockSize*int(loff):]
-	t.index.values = init.TrieValues()
-	t.index.values0 = t.index.values[blockSize*int(voff):]
-	t.expandElem = init.ExpandElems()
-	t.contractTries = init.ContractTries()
-	t.contractElem = init.ContractElems()
-	t.maxContractLen = init.MaxContractLen()
-	t.variableTop = init.VariableTop()
-	return t
-}
-
-type tableInitializer interface {
-	TrieIndex() []uint16
-	TrieValues() []uint32
-	FirstBlockOffsets() (lookup, value uint16)
-	ExpandElems() []uint32
-	ContractTries() []struct{ l, h, n, i uint8 }
-	ContractElems() []uint32
-	MaxContractLen() int
-	VariableTop() uint32
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/export_test.go gcc-4.8.1/libgo/go/exp/locale/collate/export_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/export_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/export_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,90 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-// Export for testing.
-
-import (
-	"fmt"
-)
-
-type Weights struct {
-	Primary, Secondary, Tertiary, Quaternary int
-}
-
-func W(ce ...int) Weights {
-	w := Weights{ce[0], defaultSecondary, defaultTertiary, 0}
-	if len(ce) > 1 {
-		w.Secondary = ce[1]
-	}
-	if len(ce) > 2 {
-		w.Tertiary = ce[2]
-	}
-	if len(ce) > 3 {
-		w.Quaternary = ce[3]
-	} else if w.Tertiary != 0 {
-		w.Quaternary = MaxQuaternary
-	}
-	return w
-}
-func (w Weights) String() string {
-	return fmt.Sprintf("[%X.%X.%X.%X]", w.Primary, w.Secondary, w.Tertiary, w.Quaternary)
-}
-
-type Table struct {
-	t Weigher
-}
-
-func GetTable(c *Collator) *Table {
-	return &Table{c.t}
-}
-
-func convertToWeights(ws []Elem) []Weights {
-	out := make([]Weights, len(ws))
-	for i, w := range ws {
-		out[i] = Weights{int(w.Primary()), int(w.Secondary()), int(w.Tertiary()), int(w.Quaternary())}
-	}
-	return out
-}
-
-func convertFromWeights(ws []Weights) []Elem {
-	out := make([]Elem, len(ws))
-	for i, w := range ws {
-		out[i] = makeCE([]int{w.Primary, w.Secondary, w.Tertiary, 0})
-		if out[i] == ceIgnore && w.Quaternary > 0 {
-			out[i] = MakeQuaternary(w.Quaternary)
-		}
-	}
-	return out
-}
-
-func (t *Table) AppendNext(s []byte) ([]Weights, int) {
-	w, n := t.t.AppendNext(nil, s)
-	return convertToWeights(w), n
-}
-
-func SetTop(c *Collator, top int) {
-	if c.t == nil {
-		c.t = &table{}
-	}
-	c.variableTop = uint32(top)
-}
-
-func GetColElems(c *Collator, str []byte) []Weights {
-	ce := c.getColElems(str)
-	return convertToWeights(ce)
-}
-
-func ProcessWeights(h AlternateHandling, top int, w []Weights) []Weights {
-	in := convertFromWeights(w)
-	processWeights(h, uint32(top), in)
-	return convertToWeights(in)
-}
-
-func KeyFromElems(c *Collator, buf *Buffer, w []Weights) []byte {
-	k := len(buf.key)
-	c.keyFromElems(buf, convertFromWeights(w))
-	return buf.key[k:]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/maketables.go gcc-4.8.1/libgo/go/exp/locale/collate/maketables.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/maketables.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/maketables.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,722 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Collation table generator.
-// Data read from the web.
-
-package main
-
-import (
-	"archive/zip"
-	"bufio"
-	"bytes"
-	"encoding/xml"
-	"exp/locale/collate"
-	"exp/locale/collate/build"
-	"flag"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"log"
-	"net/http"
-	"os"
-	"path"
-	"regexp"
-	"sort"
-	"strconv"
-	"strings"
-	"unicode"
-	"unicode/utf8"
-)
-
-var (
-	root = flag.String("root",
-		"http://unicode.org/Public/UCA/"+unicode.Version+"/CollationAuxiliary.zip",
-		`URL of the Default Unicode Collation Element Table (DUCET). This can be a zip
-file containing the file allkeys_CLDR.txt or an allkeys.txt file.`)
-	cldr = flag.String("cldr",
-		"http://www.unicode.org/Public/cldr/22/core.zip",
-		"URL of CLDR archive.")
-	test = flag.Bool("test", false,
-		"test existing tables; can be used to compare web data with package data.")
-	localFiles = flag.Bool("local", false,
-		"data files have been copied to the current directory; for debugging only.")
-	short = flag.Bool("short", false, `Use "short" alternatives, when available.`)
-	draft = flag.Bool("draft", false, `Use draft versions, when available.`)
-	tags  = flag.String("tags", "", "build tags to be included after +build directive")
-	pkg   = flag.String("package", "collate",
-		"the name of the package in which the generated file is to be included")
-
-	tables = flagStringSetAllowAll("tables", "collate", "collate,chars",
-		"comma-spearated list of tables to generate.")
-	exclude = flagStringSet("exclude", "zh2", "",
-		"comma-separated list of languages to exclude.")
-	include = flagStringSet("include", "", "",
-		"comma-separated list of languages to include. Include trumps exclude.")
-	types = flagStringSetAllowAll("types", "", "",
-		"comma-separated list of types that should be included in addition to the standard type.")
-)
-
-// stringSet implements an ordered set based on a list.  It implements flag.Value
-// to allow a set to be specified as a comma-separated list.
-type stringSet struct {
-	s        []string
-	allowed  *stringSet
-	dirty    bool // needs compaction if true
-	all      bool
-	allowAll bool
-}
-
-func flagStringSet(name, def, allowed, usage string) *stringSet {
-	ss := &stringSet{}
-	if allowed != "" {
-		usage += fmt.Sprintf(" (allowed values: any of %s)", allowed)
-		ss.allowed = &stringSet{}
-		failOnError(ss.allowed.Set(allowed))
-	}
-	ss.Set(def)
-	flag.Var(ss, name, usage)
-	return ss
-}
-
-func flagStringSetAllowAll(name, def, allowed, usage string) *stringSet {
-	ss := &stringSet{allowAll: true}
-	if allowed == "" {
-		flag.Var(ss, name, usage+fmt.Sprintf(` Use "all" to select all.`))
-	} else {
-		ss.allowed = &stringSet{}
-		failOnError(ss.allowed.Set(allowed))
-		flag.Var(ss, name, usage+fmt.Sprintf(` (allowed values: "all" or any of %s)`, allowed))
-	}
-	ss.Set(def)
-	return ss
-}
-
-func (ss stringSet) Len() int {
-	return len(ss.s)
-}
-
-func (ss stringSet) String() string {
-	return strings.Join(ss.s, ",")
-}
-
-func (ss *stringSet) Set(s string) error {
-	if ss.allowAll && s == "all" {
-		ss.s = nil
-		ss.all = true
-		return nil
-	}
-	ss.s = ss.s[:0]
-	for _, s := range strings.Split(s, ",") {
-		if s := strings.TrimSpace(s); s != "" {
-			if ss.allowed != nil && !ss.allowed.contains(s) {
-				return fmt.Errorf("unsupported value %q; must be one of %s", s, ss.allowed)
-			}
-			ss.add(s)
-		}
-	}
-	ss.compact()
-	return nil
-}
-
-func (ss *stringSet) add(s string) {
-	ss.s = append(ss.s, s)
-	ss.dirty = true
-}
-
-func (ss *stringSet) values() []string {
-	ss.compact()
-	return ss.s
-}
-
-func (ss *stringSet) contains(s string) bool {
-	if ss.all {
-		return true
-	}
-	for _, v := range ss.s {
-		if v == s {
-			return true
-		}
-	}
-	return false
-}
-
-func (ss *stringSet) compact() {
-	if !ss.dirty {
-		return
-	}
-	a := ss.s
-	sort.Strings(a)
-	k := 0
-	for i := 1; i < len(a); i++ {
-		if a[k] != a[i] {
-			a[k+1] = a[i]
-			k++
-		}
-	}
-	ss.s = a[:k+1]
-	ss.dirty = false
-}
-
-func skipLang(l string) bool {
-	if include.Len() > 0 {
-		return !include.contains(l)
-	}
-	return exclude.contains(l)
-}
-
-func skipAlt(a string) bool {
-	if *draft && a == "proposed" {
-		return false
-	}
-	if *short && a == "short" {
-		return false
-	}
-	return true
-}
-
-func failOnError(e error) {
-	if e != nil {
-		log.Panic(e)
-	}
-}
-
-// openReader opens the URL or file given by url and returns it as an io.ReadCloser
-// or nil on error.
-func openReader(url *string) (io.ReadCloser, error) {
-	if *localFiles {
-		pwd, _ := os.Getwd()
-		*url = "file://" + path.Join(pwd, path.Base(*url))
-	}
-	t := &http.Transport{}
-	t.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
-	c := &http.Client{Transport: t}
-	resp, err := c.Get(*url)
-	if err != nil {
-		return nil, err
-	}
-	if resp.StatusCode != 200 {
-		return nil, fmt.Errorf(`bad GET status for "%s": %s`, *url, resp.Status)
-	}
-	return resp.Body, nil
-}
-
-func openArchive(url *string) *zip.Reader {
-	f, err := openReader(url)
-	failOnError(err)
-	buffer, err := ioutil.ReadAll(f)
-	f.Close()
-	failOnError(err)
-	archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer)))
-	failOnError(err)
-	return archive
-}
-
-// parseUCA parses a Default Unicode Collation Element Table of the format
-// specified in http://www.unicode.org/reports/tr10/#File_Format.
-// It returns the variable top.
-func parseUCA(builder *build.Builder) {
-	var r io.ReadCloser
-	var err error
-	if strings.HasSuffix(*root, ".zip") {
-		for _, f := range openArchive(root).File {
-			if strings.HasSuffix(f.Name, "allkeys_CLDR.txt") {
-				r, err = f.Open()
-			}
-		}
-		if r == nil {
-			err = fmt.Errorf("file allkeys_CLDR.txt not found in archive %q", *root)
-		}
-	} else {
-		r, err = openReader(root)
-	}
-	failOnError(err)
-	defer r.Close()
-	input := bufio.NewReader(r)
-	colelem := regexp.MustCompile(`\[([.*])([0-9A-F.]+)\]`)
-	for i := 1; err == nil; i++ {
-		l, prefix, e := input.ReadLine()
-		err = e
-		line := string(l)
-		if prefix {
-			log.Fatalf("%d: buffer overflow", i)
-		}
-		if err != nil && err != io.EOF {
-			log.Fatalf("%d: %v", i, err)
-		}
-		if len(line) == 0 || line[0] == '#' {
-			continue
-		}
-		if line[0] == '@' {
-			// parse properties
-			switch {
-			case strings.HasPrefix(line[1:], "version "):
-				a := strings.Split(line[1:], " ")
-				if a[1] != unicode.Version {
-					log.Fatalf("incompatible version %s; want %s", a[1], unicode.Version)
-				}
-			case strings.HasPrefix(line[1:], "backwards "):
-				log.Fatalf("%d: unsupported option backwards", i)
-			default:
-				log.Printf("%d: unknown option %s", i, line[1:])
-			}
-		} else {
-			// parse entries
-			part := strings.Split(line, " ; ")
-			if len(part) != 2 {
-				log.Fatalf("%d: production rule without ';': %v", i, line)
-			}
-			lhs := []rune{}
-			for _, v := range strings.Split(part[0], " ") {
-				if v == "" {
-					continue
-				}
-				lhs = append(lhs, rune(convHex(i, v)))
-			}
-			var n int
-			var vars []int
-			rhs := [][]int{}
-			for i, m := range colelem.FindAllStringSubmatch(part[1], -1) {
-				n += len(m[0])
-				elem := []int{}
-				for _, h := range strings.Split(m[2], ".") {
-					elem = append(elem, convHex(i, h))
-				}
-				if m[1] == "*" {
-					vars = append(vars, i)
-				}
-				rhs = append(rhs, elem)
-			}
-			if len(part[1]) < n+3 || part[1][n+1] != '#' {
-				log.Fatalf("%d: expected comment; found %s", i, part[1][n:])
-			}
-			if *test {
-				testInput.add(string(lhs))
-			}
-			failOnError(builder.Add(lhs, rhs, vars))
-		}
-	}
-}
-
-func convHex(line int, s string) int {
-	r, e := strconv.ParseInt(s, 16, 32)
-	if e != nil {
-		log.Fatalf("%d: %v", line, e)
-	}
-	return int(r)
-}
-
-var testInput = stringSet{}
-
-// LDML holds all collation information parsed from an LDML XML file.
-// The format of these files is defined in http://unicode.org/reports/tr35/.
-type LDML struct {
-	XMLName   xml.Name `xml:"ldml"`
-	Language  Attr     `xml:"identity>language"`
-	Territory Attr     `xml:"identity>territory"`
-	Chars     *struct {
-		ExemplarCharacters []AttrValue `xml:"exemplarCharacters"`
-		MoreInformaton     string      `xml:"moreInformation,omitempty"`
-	} `xml:"characters"`
-	Default    Attr        `xml:"collations>default"`
-	Collations []Collation `xml:"collations>collation"`
-}
-
-type Attr struct {
-	XMLName xml.Name
-	Attr    string `xml:"type,attr"`
-}
-
-func (t Attr) String() string {
-	return t.Attr
-}
-
-type AttrValue struct {
-	Type  string `xml:"type,attr"`
-	Key   string `xml:"key,attr,omitempty"`
-	Draft string `xml:"draft,attr,omitempty"`
-	Value string `xml:",innerxml"`
-}
-
-type Collation struct {
-	Type                string    `xml:"type,attr"`
-	Alt                 string    `xml:"alt,attr"`
-	SuppressContraction string    `xml:"suppress_contractions,omitempty"`
-	Settings            *Settings `xml:"settings"`
-	Optimize            string    `xml:"optimize"`
-	Rules               Rules     `xml:"rules"`
-}
-
-type Optimize struct {
-	XMLName xml.Name `xml:"optimize"`
-	Data    string   `xml:"chardata"`
-}
-
-type Suppression struct {
-	XMLName xml.Name `xml:"suppress_contractions"`
-	Data    string   `xml:"chardata"`
-}
-
-type Settings struct {
-	Strength            string `xml:"strenght,attr,omitempty"`
-	Backwards           string `xml:"backwards,attr,omitempty"`
-	Normalization       string `xml:"normalization,attr,omitempty"`
-	CaseLevel           string `xml:"caseLevel,attr,omitempty"`
-	CaseFirst           string `xml:"caseFirst,attr,omitempty"`
-	HiraganaQuarternary string `xml:"hiraganaQuartenary,attr,omitempty"`
-	Numeric             string `xml:"numeric,attr,omitempty"`
-	VariableTop         string `xml:"variableTop,attr,omitempty"`
-}
-
-type Rules struct {
-	XMLName xml.Name   `xml:"rules"`
-	Any     []RuleElem `xml:",any"`
-}
-
-type RuleElem struct {
-	XMLName xml.Name
-	Value   string     `xml:",innerxml"`
-	Before  string     `xml:"before,attr"`
-	Any     []RuleElem `xml:",any"` // for <x> elements
-}
-
-var charRe = regexp.MustCompile(`&#x([0-9A-F]*);`)
-var tagRe = regexp.MustCompile(`<([a-z_]*)  */>`)
-
-func (r *RuleElem) rewrite() {
-	// Convert hexadecimal Unicode codepoint notation to a string.
-	if m := charRe.FindAllStringSubmatch(r.Value, -1); m != nil {
-		runes := []rune{}
-		for _, sa := range m {
-			runes = append(runes, rune(convHex(-1, sa[1])))
-		}
-		r.Value = string(runes)
-	}
-	// Strip spaces from reset positions.
-	if m := tagRe.FindStringSubmatch(r.Value); m != nil {
-		r.Value = fmt.Sprintf("<%s/>", m[1])
-	}
-	for _, rr := range r.Any {
-		rr.rewrite()
-	}
-}
-
-func decodeXML(f *zip.File) *LDML {
-	r, err := f.Open()
-	failOnError(err)
-	d := xml.NewDecoder(r)
-	var x LDML
-	err = d.Decode(&x)
-	failOnError(err)
-	return &x
-}
-
-var mainLocales = []string{}
-
-// charsets holds a list of exemplar characters per category.
-type charSets map[string][]string
-
-func (p charSets) fprint(w io.Writer) {
-	fmt.Fprintln(w, "[exN]string{")
-	for i, k := range []string{"", "contractions", "punctuation", "auxiliary", "currencySymbol", "index"} {
-		if set := p[k]; len(set) != 0 {
-			fmt.Fprintf(w, "\t\t%d: %q,\n", i, strings.Join(set, " "))
-		}
-	}
-	fmt.Fprintln(w, "\t},")
-}
-
-var localeChars = make(map[string]charSets)
-
-const exemplarHeader = `
-type exemplarType int
-const (
-	exCharacters exemplarType = iota
-	exContractions
-	exPunctuation
-	exAuxiliary
-	exCurrency
-	exIndex
-	exN
-)
-`
-
-func printExemplarCharacters(w io.Writer) {
-	fmt.Fprintln(w, exemplarHeader)
-	fmt.Fprintln(w, "var exemplarCharacters = map[string][exN]string{")
-	for _, loc := range mainLocales {
-		fmt.Fprintf(w, "\t%q: ", loc)
-		localeChars[loc].fprint(w)
-	}
-	fmt.Fprintln(w, "}")
-}
-
-var mainRe = regexp.MustCompile(`.*/main/(.*)\.xml`)
-
-// parseMain parses XML files in the main directory of the CLDR core.zip file.
-func parseMain() {
-	for _, f := range openArchive(cldr).File {
-		if m := mainRe.FindStringSubmatch(f.Name); m != nil {
-			locale := m[1]
-			x := decodeXML(f)
-			if skipLang(x.Language.Attr) {
-				continue
-			}
-			if x.Chars != nil {
-				for _, ec := range x.Chars.ExemplarCharacters {
-					if ec.Draft != "" {
-						continue
-					}
-					if _, ok := localeChars[locale]; !ok {
-						mainLocales = append(mainLocales, locale)
-						localeChars[locale] = make(charSets)
-					}
-					localeChars[locale][ec.Type] = parseCharacters(ec.Value)
-				}
-			}
-		}
-	}
-}
-
-func parseCharacters(chars string) []string {
-	parseSingle := func(s string) (r rune, tail string, escaped bool) {
-		if s[0] == '\\' {
-			if s[1] == 'u' || s[1] == 'U' {
-				r, _, tail, err := strconv.UnquoteChar(s, 0)
-				failOnError(err)
-				return r, tail, false
-			} else if strings.HasPrefix(s[1:], "&amp;") {
-				return '&', s[6:], false
-			}
-			return rune(s[1]), s[2:], true
-		} else if strings.HasPrefix(s, "&quot;") {
-			return '"', s[6:], false
-		}
-		r, sz := utf8.DecodeRuneInString(s)
-		return r, s[sz:], false
-	}
-	chars = strings.Trim(chars, "[ ]")
-	list := []string{}
-	var r, last, end rune
-	for len(chars) > 0 {
-		if chars[0] == '{' { // character sequence
-			buf := []rune{}
-			for chars = chars[1:]; len(chars) > 0; {
-				r, chars, _ = parseSingle(chars)
-				if r == '}' {
-					break
-				}
-				if r == ' ' {
-					log.Fatalf("space not supported in sequence %q", chars)
-				}
-				buf = append(buf, r)
-			}
-			list = append(list, string(buf))
-			last = 0
-		} else { // single character
-			escaped := false
-			r, chars, escaped = parseSingle(chars)
-			if r != ' ' {
-				if r == '-' && !escaped {
-					if last == 0 {
-						log.Fatal("'-' should be preceded by a character")
-					}
-					end, chars, _ = parseSingle(chars)
-					for ; last <= end; last++ {
-						list = append(list, string(last))
-					}
-					last = 0
-				} else {
-					list = append(list, string(r))
-					last = r
-				}
-			}
-		}
-	}
-	return list
-}
-
-var fileRe = regexp.MustCompile(`.*/collation/(.*)\.xml`)
-
-// parseCollation parses XML files in the collation directory of the CLDR core.zip file.
-func parseCollation(b *build.Builder) {
-	for _, f := range openArchive(cldr).File {
-		if m := fileRe.FindStringSubmatch(f.Name); m != nil {
-			lang := m[1]
-			x := decodeXML(f)
-			if skipLang(x.Language.Attr) {
-				continue
-			}
-			def := "standard"
-			if x.Default.Attr != "" {
-				def = x.Default.Attr
-			}
-			todo := make(map[string]Collation)
-			for _, c := range x.Collations {
-				if c.Type != def && !types.contains(c.Type) {
-					continue
-				}
-				if c.Alt != "" && skipAlt(c.Alt) {
-					continue
-				}
-				for j := range c.Rules.Any {
-					c.Rules.Any[j].rewrite()
-				}
-				locale := lang
-				if c.Type != def {
-					locale += "_u_co_" + c.Type
-				}
-				_, exists := todo[locale]
-				if c.Alt != "" || !exists {
-					todo[locale] = c
-				}
-			}
-			for _, c := range x.Collations {
-				locale := lang
-				if c.Type != def {
-					locale += "_u_co_" + c.Type
-				}
-				if d, ok := todo[locale]; ok && d.Alt == c.Alt {
-					insertCollation(b, locale, &c)
-				}
-			}
-		}
-	}
-}
-
-var lmap = map[byte]collate.Level{
-	'p': collate.Primary,
-	's': collate.Secondary,
-	't': collate.Tertiary,
-	'i': collate.Identity,
-}
-
-// cldrIndex is a Unicode-reserved sentinel value used.
-// We ignore any rule that starts with this rune.
-// See http://unicode.org/reports/tr35/#Collation_Elements for details.
-const cldrIndex = 0xFDD0
-
-func insertTailoring(t *build.Tailoring, r RuleElem, context, extend string) {
-	switch l := r.XMLName.Local; l {
-	case "p", "s", "t", "i":
-		if []rune(r.Value)[0] != cldrIndex {
-			str := context + r.Value
-			if *test {
-				testInput.add(str)
-			}
-			err := t.Insert(lmap[l[0]], str, context+extend)
-			failOnError(err)
-		}
-	case "pc", "sc", "tc", "ic":
-		level := lmap[l[0]]
-		for _, s := range r.Value {
-			str := context + string(s)
-			if *test {
-				testInput.add(str)
-			}
-			err := t.Insert(level, str, context+extend)
-			failOnError(err)
-		}
-	default:
-		log.Fatalf("unsupported tag: %q", l)
-	}
-}
-
-func insertCollation(builder *build.Builder, locale string, c *Collation) {
-	t := builder.Tailoring(locale)
-	for _, r := range c.Rules.Any {
-		switch r.XMLName.Local {
-		case "reset":
-			if r.Before == "" {
-				failOnError(t.SetAnchor(r.Value))
-			} else {
-				failOnError(t.SetAnchorBefore(r.Value))
-			}
-		case "x":
-			var context, extend string
-			for _, r1 := range r.Any {
-				switch r1.XMLName.Local {
-				case "context":
-					context = r1.Value
-				case "extend":
-					extend = r1.Value
-				}
-			}
-			for _, r1 := range r.Any {
-				if t := r1.XMLName.Local; t == "context" || t == "extend" {
-					continue
-				}
-				insertTailoring(t, r1, context, extend)
-			}
-		default:
-			insertTailoring(t, r, "", "")
-		}
-	}
-}
-
-func testCollator(c *collate.Collator) {
-	c0 := collate.New("")
-
-	// iterator over all characters for all locales and check
-	// whether Key is equal.
-	buf := collate.Buffer{}
-
-	// Add all common and not too uncommon runes to the test set.
-	for i := rune(0); i < 0x30000; i++ {
-		testInput.add(string(i))
-	}
-	for i := rune(0xE0000); i < 0xF0000; i++ {
-		testInput.add(string(i))
-	}
-	for _, str := range testInput.values() {
-		k0 := c0.KeyFromString(&buf, str)
-		k := c.KeyFromString(&buf, str)
-		if !bytes.Equal(k0, k) {
-			failOnError(fmt.Errorf("test:%U: keys differ (%x vs %x)", []rune(str), k0, k))
-		}
-		buf.Reset()
-	}
-	fmt.Println("PASS")
-}
-
-func main() {
-	flag.Parse()
-	b := build.NewBuilder()
-	if *root != "" {
-		parseUCA(b)
-	}
-	if *cldr != "" {
-		if tables.contains("chars") {
-			parseMain()
-		}
-		parseCollation(b)
-	}
-
-	c, err := b.Build()
-	failOnError(err)
-
-	if *test {
-		testCollator(c)
-	} else {
-		fmt.Println("// Generated by running")
-		fmt.Printf("//  maketables -root=%s -cldr=%s\n", *root, *cldr)
-		fmt.Println("// DO NOT EDIT")
-		fmt.Println("// TODO: implement more compact representation for sparse blocks.")
-		if *tags != "" {
-			fmt.Printf("// +build %s\n", *tags)
-		}
-		fmt.Println("")
-		fmt.Printf("package %s\n", *pkg)
-		if tables.contains("collate") {
-			fmt.Println("")
-			_, err = b.Print(os.Stdout)
-			failOnError(err)
-		}
-		if tables.contains("chars") {
-			printExemplarCharacters(os.Stdout)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/regtest.go gcc-4.8.1/libgo/go/exp/locale/collate/regtest.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/regtest.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/regtest.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,268 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-import (
-	"archive/zip"
-	"bufio"
-	"bytes"
-	"exp/locale/collate"
-	"exp/locale/collate/build"
-	"flag"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"log"
-	"net/http"
-	"os"
-	"path"
-	"regexp"
-	"strconv"
-	"strings"
-	"unicode"
-	"unicode/utf8"
-)
-
-// This regression test runs tests for the test files in CollationTest.zip
-// (taken from http://www.unicode.org/Public/UCA/<unicode.Version>/).
-//
-// The test files have the following form:
-// # header
-// 0009 0021;	# ('\u0009') <CHARACTER TABULATION>	[| | | 0201 025E]
-// 0009 003F;	# ('\u0009') <CHARACTER TABULATION>	[| | | 0201 0263]
-// 000A 0021;	# ('\u000A') <LINE FEED (LF)>	[| | | 0202 025E]
-// 000A 003F;	# ('\u000A') <LINE FEED (LF)>	[| | | 0202 0263]
-//
-// The part before the semicolon is the hex representation of a sequence
-// of runes. After the hash mark is a comment. The strings
-// represented by rune sequence are in the file in sorted order, as
-// defined by the DUCET.
-
-var testdata = flag.String("testdata",
-	"http://www.unicode.org/Public/UCA/"+unicode.Version+"/CollationTest.zip",
-	"URL of Unicode collation tests zip file")
-var ducet = flag.String("ducet",
-	"http://unicode.org/Public/UCA/"+unicode.Version+"/allkeys.txt",
-	"URL of the Default Unicode Collation Element Table (DUCET).")
-var localFiles = flag.Bool("local",
-	false,
-	"data files have been copied to the current directory; for debugging only")
-
-type Test struct {
-	name    string
-	str     [][]byte
-	comment []string
-}
-
-var versionRe = regexp.MustCompile(`# UCA Version: (.*)\n?$`)
-var testRe = regexp.MustCompile(`^([\dA-F ]+);.*# (.*)\n?$`)
-
-func Error(e error) {
-	if e != nil {
-		log.Fatal(e)
-	}
-}
-
-// openReader opens the url or file given by url and returns it as an io.ReadCloser
-// or nil on error.
-func openReader(url string) io.ReadCloser {
-	if *localFiles {
-		pwd, _ := os.Getwd()
-		url = "file://" + path.Join(pwd, path.Base(url))
-	}
-	t := &http.Transport{}
-	t.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
-	c := &http.Client{Transport: t}
-	resp, err := c.Get(url)
-	Error(err)
-	if resp.StatusCode != 200 {
-		Error(fmt.Errorf(`bad GET status for "%s": %s`, url, resp.Status))
-	}
-	return resp.Body
-}
-
-// parseUCA parses a Default Unicode Collation Element Table of the format
-// specified in http://www.unicode.org/reports/tr10/#File_Format.
-// It returns the variable top.
-func parseUCA(builder *build.Builder) {
-	r := openReader(*ducet)
-	defer r.Close()
-	input := bufio.NewReader(r)
-	colelem := regexp.MustCompile(`\[([.*])([0-9A-F.]+)\]`)
-	for i := 1; true; i++ {
-		l, prefix, err := input.ReadLine()
-		if err == io.EOF {
-			break
-		}
-		Error(err)
-		line := string(l)
-		if prefix {
-			log.Fatalf("%d: buffer overflow", i)
-		}
-		if len(line) == 0 || line[0] == '#' {
-			continue
-		}
-		if line[0] == '@' {
-			if strings.HasPrefix(line[1:], "version ") {
-				if v := strings.Split(line[1:], " ")[1]; v != unicode.Version {
-					log.Fatalf("incompatible version %s; want %s", v, unicode.Version)
-				}
-			}
-		} else {
-			// parse entries
-			part := strings.Split(line, " ; ")
-			if len(part) != 2 {
-				log.Fatalf("%d: production rule without ';': %v", i, line)
-			}
-			lhs := []rune{}
-			for _, v := range strings.Split(part[0], " ") {
-				if v != "" {
-					lhs = append(lhs, rune(convHex(i, v)))
-				}
-			}
-			vars := []int{}
-			rhs := [][]int{}
-			for i, m := range colelem.FindAllStringSubmatch(part[1], -1) {
-				if m[1] == "*" {
-					vars = append(vars, i)
-				}
-				elem := []int{}
-				for _, h := range strings.Split(m[2], ".") {
-					elem = append(elem, convHex(i, h))
-				}
-				rhs = append(rhs, elem)
-			}
-			builder.Add(lhs, rhs, vars)
-		}
-	}
-}
-
-func convHex(line int, s string) int {
-	r, e := strconv.ParseInt(s, 16, 32)
-	if e != nil {
-		log.Fatalf("%d: %v", line, e)
-	}
-	return int(r)
-}
-
-func loadTestData() []Test {
-	f := openReader(*testdata)
-	buffer, err := ioutil.ReadAll(f)
-	f.Close()
-	Error(err)
-	archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer)))
-	Error(err)
-	tests := []Test{}
-	for _, f := range archive.File {
-		// Skip the short versions, which are simply duplicates of the long versions.
-		if strings.Contains(f.Name, "SHORT") || f.FileInfo().IsDir() {
-			continue
-		}
-		ff, err := f.Open()
-		Error(err)
-		defer ff.Close()
-		input := bufio.NewReader(ff)
-		test := Test{name: path.Base(f.Name)}
-		for {
-			line, err := input.ReadString('\n')
-			if err != nil {
-				if err == io.EOF {
-					break
-				}
-				log.Fatal(err)
-			}
-			if len(line) <= 1 || line[0] == '#' {
-				if m := versionRe.FindStringSubmatch(line); m != nil {
-					if m[1] != unicode.Version {
-						log.Printf("warning:%s: version is %s; want %s", f.Name, m[1], unicode.Version)
-					}
-				}
-				continue
-			}
-			m := testRe.FindStringSubmatch(line)
-			if m == nil || len(m) < 3 {
-				log.Fatalf(`Failed to parse: "%s" result: %#v`, line, m)
-			}
-			str := []byte{}
-			// In the regression test data (unpaired) surrogates are assigned a weight
-			// corresponding to their code point value.  However, utf8.DecodeRune,
-			// which is used to compute the implicit weight, assigns FFFD to surrogates.
-			// We therefore skip tests with surrogates.  This skips about 35 entries
-			// per test.
-			valid := true
-			for _, split := range strings.Split(m[1], " ") {
-				r, err := strconv.ParseUint(split, 16, 64)
-				Error(err)
-				valid = valid && utf8.ValidRune(rune(r))
-				str = append(str, string(rune(r))...)
-			}
-			if valid {
-				test.str = append(test.str, str)
-				test.comment = append(test.comment, m[2])
-			}
-		}
-		tests = append(tests, test)
-	}
-	return tests
-}
-
-var errorCount int
-
-func fail(t Test, pattern string, args ...interface{}) {
-	format := fmt.Sprintf("error:%s:%s", t.name, pattern)
-	log.Printf(format, args...)
-	errorCount++
-	if errorCount > 30 {
-		log.Fatal("too many errors")
-	}
-}
-
-func runes(b []byte) []rune {
-	return []rune(string(b))
-}
-
-func doTest(t Test) {
-	bld := build.NewBuilder()
-	parseUCA(bld)
-	c, err := bld.Build()
-	Error(err)
-	c.Strength = collate.Tertiary
-	c.Alternate = collate.AltShifted
-	b := &collate.Buffer{}
-	if strings.Contains(t.name, "NON_IGNOR") {
-		c.Alternate = collate.AltNonIgnorable
-	}
-	prev := t.str[0]
-	for i := 1; i < len(t.str); i++ {
-		b.Reset()
-		s := t.str[i]
-		ka := c.Key(b, prev)
-		kb := c.Key(b, s)
-		if r := bytes.Compare(ka, kb); r == 1 {
-			fail(t, "%d: Key(%.4X) < Key(%.4X) (%X < %X) == %d; want -1 or 0", i, []rune(string(prev)), []rune(string(s)), ka, kb, r)
-			prev = s
-			continue
-		}
-		if r := c.Compare(prev, s); r == 1 {
-			fail(t, "%d: Compare(%.4X, %.4X) == %d; want -1 or 0", i, runes(prev), runes(s), r)
-		}
-		if r := c.Compare(s, prev); r == -1 {
-			fail(t, "%d: Compare(%.4X, %.4X) == %d; want 1 or 0", i, runes(s), runes(prev), r)
-		}
-		prev = s
-	}
-}
-
-func main() {
-	flag.Parse()
-	for _, test := range loadTestData() {
-		doTest(test)
-	}
-	if errorCount == 0 {
-		fmt.Println("PASS")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort.go gcc-4.8.1/libgo/go/exp/locale/collate/sort.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/sort.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,90 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"bytes"
-	"sort"
-)
-
-const (
-	maxSortBuffer  = 40960
-	maxSortEntries = 4096
-)
-
-type swapper interface {
-	Swap(i, j int)
-}
-
-type sorter struct {
-	buf  *Buffer
-	keys [][]byte
-	src  swapper
-}
-
-func (s *sorter) init(n int) {
-	if s.buf == nil {
-		s.buf = &Buffer{}
-		s.buf.init()
-	}
-	if cap(s.keys) < n {
-		s.keys = make([][]byte, n)
-	}
-	s.keys = s.keys[0:n]
-}
-
-func (s *sorter) clean() {
-	if len(s.buf.key) > maxSortBuffer {
-		s.buf.key = s.buf.buf[:0]
-	}
-	if len(s.keys) > maxSortEntries {
-		s.keys = nil
-	}
-}
-
-func (s *sorter) sort(src swapper) {
-	s.src = src
-	sort.Sort(s)
-}
-
-func (s sorter) Len() int {
-	return len(s.keys)
-}
-
-func (s sorter) Less(i, j int) bool {
-	return bytes.Compare(s.keys[i], s.keys[j]) == -1
-}
-
-func (s sorter) Swap(i, j int) {
-	s.keys[i], s.keys[j] = s.keys[j], s.keys[i]
-	s.src.Swap(i, j)
-}
-
-// A Lister can be sorted by Collator's Sort method.
-type Lister interface {
-	Len() int
-	Swap(i, j int)
-	// Bytes returns the bytes of the text at index i.
-	Bytes(i int) []byte
-}
-
-// Sort uses sort.Sort to sort the strings represented by x using the rules of c.
-func (c *Collator) Sort(x Lister) {
-	n := x.Len()
-	c.sorter.init(n)
-	for i := 0; i < n; i++ {
-		c.sorter.keys[i] = c.Key(c.sorter.buf, x.Bytes(i))
-	}
-	c.sorter.sort(x)
-}
-
-// Strings sorts x using the rules of c.
-func (c *Collator) Strings(x []string) {
-	c.sorter.init(len(x))
-	for i, s := range x {
-		c.sorter.keys[i] = c.KeyFromString(c.sorter.buf, s)
-	}
-	c.sorter.sort(sort.StringSlice(x))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort_test.go gcc-4.8.1/libgo/go/exp/locale/collate/sort_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/sort_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/sort_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,52 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate_test
-
-import (
-	"exp/locale/collate"
-	"fmt"
-	"testing"
-)
-
-func ExampleCollator_Strings() {
-	c := collate.New("root")
-	strings := []string{
-		"ad",
-		"Ã¤b",
-		"ac",
-	}
-	c.Strings(strings)
-	fmt.Println(strings)
-	// Output: [Ã¤b ac ad]
-}
-
-type sorter []string
-
-func (s sorter) Len() int {
-	return len(s)
-}
-
-func (s sorter) Swap(i, j int) {
-	s[j], s[i] = s[i], s[j]
-}
-
-func (s sorter) Bytes(i int) []byte {
-	return []byte(s[i])
-}
-
-func TestSort(t *testing.T) {
-	c := collate.New("en")
-	strings := []string{
-		"bcd",
-		"abc",
-		"ddd",
-	}
-	c.Sort(sorter(strings))
-	res := fmt.Sprint(strings)
-	want := "[abc bcd ddd]"
-	if res != want {
-		t.Errorf("found %s; want %s", res, want)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/table.go gcc-4.8.1/libgo/go/exp/locale/collate/table.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/table.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/table.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,317 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"exp/norm"
-	"unicode/utf8"
-)
-
-// tableIndex holds information for constructing a table
-// for a certain locale based on the main table.
-type tableIndex struct {
-	lookupOffset uint32
-	valuesOffset uint32
-}
-
-// table holds all collation data for a given collation ordering.
-type table struct {
-	index trie // main trie
-
-	// expansion info
-	expandElem []uint32
-
-	// contraction info
-	contractTries  contractTrieSet
-	contractElem   []uint32
-	maxContractLen int
-	variableTop    uint32
-}
-
-func (t *table) indexedTable(idx tableIndex) *table {
-	nt := *t
-	nt.index.index0 = t.index.index[idx.lookupOffset*blockSize:]
-	nt.index.values0 = t.index.values[idx.valuesOffset*blockSize:]
-	return &nt
-}
-
-func (t *table) AppendNext(w []Elem, b []byte) (res []Elem, n int) {
-	return t.appendNext(w, source{bytes: b})
-}
-
-func (t *table) AppendNextString(w []Elem, s string) (res []Elem, n int) {
-	return t.appendNext(w, source{str: s})
-}
-
-func (t *table) Start(p int, b []byte) int {
-	// TODO: implement
-	panic("not implemented")
-}
-
-func (t *table) StartString(p int, s string) int {
-	// TODO: implement
-	panic("not implemented")
-}
-
-func (t *table) Domain() []string {
-	// TODO: implement
-	panic("not implemented")
-}
-
-type source struct {
-	str   string
-	bytes []byte
-}
-
-func (src *source) lookup(t *table) (ce Elem, sz int) {
-	if src.bytes == nil {
-		return t.index.lookupString(src.str)
-	}
-	return t.index.lookup(src.bytes)
-}
-
-func (src *source) tail(sz int) {
-	if src.bytes == nil {
-		src.str = src.str[sz:]
-	} else {
-		src.bytes = src.bytes[sz:]
-	}
-}
-
-func (src *source) nfd(buf []byte, end int) []byte {
-	if src.bytes == nil {
-		return norm.NFD.AppendString(buf[:0], src.str[:end])
-	}
-	return norm.NFD.Append(buf[:0], src.bytes[:end]...)
-}
-
-func (src *source) rune() (r rune, sz int) {
-	if src.bytes == nil {
-		return utf8.DecodeRuneInString(src.str)
-	}
-	return utf8.DecodeRune(src.bytes)
-}
-
-func (src *source) properties(f norm.Form) norm.Properties {
-	if src.bytes == nil {
-		return f.PropertiesString(src.str)
-	}
-	return f.Properties(src.bytes)
-}
-
-// appendNext appends the weights corresponding to the next rune or
-// contraction in s.  If a contraction is matched to a discontinuous
-// sequence of runes, the weights for the interstitial runes are
-// appended as well.  It returns a new slice that includes the appended
-// weights and the number of bytes consumed from s.
-func (t *table) appendNext(w []Elem, src source) (res []Elem, n int) {
-	ce, sz := src.lookup(t)
-	tp := ce.ctype()
-	if tp == ceNormal {
-		if ce == 0 {
-			r, _ := src.rune()
-			const (
-				hangulSize  = 3
-				firstHangul = 0xAC00
-				lastHangul  = 0xD7A3
-			)
-			if r >= firstHangul && r <= lastHangul {
-				// TODO: performance can be considerably improved here.
-				n = sz
-				var buf [16]byte // Used for decomposing Hangul.
-				for b := src.nfd(buf[:0], hangulSize); len(b) > 0; b = b[sz:] {
-					ce, sz = t.index.lookup(b)
-					w = append(w, ce)
-				}
-				return w, n
-			}
-			ce = makeImplicitCE(implicitPrimary(r))
-		}
-		w = append(w, ce)
-	} else if tp == ceExpansionIndex {
-		w = t.appendExpansion(w, ce)
-	} else if tp == ceContractionIndex {
-		n := 0
-		src.tail(sz)
-		if src.bytes == nil {
-			w, n = t.matchContractionString(w, ce, src.str)
-		} else {
-			w, n = t.matchContraction(w, ce, src.bytes)
-		}
-		sz += n
-	} else if tp == ceDecompose {
-		// Decompose using NFKD and replace tertiary weights.
-		t1, t2 := splitDecompose(ce)
-		i := len(w)
-		nfkd := src.properties(norm.NFKD).Decomposition()
-		for p := 0; len(nfkd) > 0; nfkd = nfkd[p:] {
-			w, p = t.appendNext(w, source{bytes: nfkd})
-		}
-		w[i] = w[i].updateTertiary(t1)
-		if i++; i < len(w) {
-			w[i] = w[i].updateTertiary(t2)
-			for i++; i < len(w); i++ {
-				w[i] = w[i].updateTertiary(maxTertiary)
-			}
-		}
-	}
-	return w, sz
-}
-
-func (t *table) appendExpansion(w []Elem, ce Elem) []Elem {
-	i := splitExpandIndex(ce)
-	n := int(t.expandElem[i])
-	i++
-	for _, ce := range t.expandElem[i : i+n] {
-		w = append(w, Elem(ce))
-	}
-	return w
-}
-
-func (t *table) matchContraction(w []Elem, ce Elem, suffix []byte) ([]Elem, int) {
-	index, n, offset := splitContractIndex(ce)
-
-	scan := t.contractTries.scanner(index, n, suffix)
-	buf := [norm.MaxSegmentSize]byte{}
-	bufp := 0
-	p := scan.scan(0)
-
-	if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf {
-		// By now we should have filtered most cases.
-		p0 := p
-		bufn := 0
-		rune := norm.NFD.Properties(suffix[p:])
-		p += rune.Size()
-		if rune.LeadCCC() != 0 {
-			prevCC := rune.TrailCCC()
-			// A gap may only occur in the last normalization segment.
-			// This also ensures that len(scan.s) < norm.MaxSegmentSize.
-			if end := norm.NFD.FirstBoundary(suffix[p:]); end != -1 {
-				scan.s = suffix[:p+end]
-			}
-			for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf {
-				rune = norm.NFD.Properties(suffix[p:])
-				if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc {
-					break
-				}
-				prevCC = rune.TrailCCC()
-				if pp := scan.scan(p); pp != p {
-					// Copy the interstitial runes for later processing.
-					bufn += copy(buf[bufn:], suffix[p0:p])
-					if scan.pindex == pp {
-						bufp = bufn
-					}
-					p, p0 = pp, pp
-				} else {
-					p += rune.Size()
-				}
-			}
-		}
-	}
-	// Append weights for the matched contraction, which may be an expansion.
-	i, n := scan.result()
-	ce = Elem(t.contractElem[i+offset])
-	if ce.ctype() == ceNormal {
-		w = append(w, ce)
-	} else {
-		w = t.appendExpansion(w, ce)
-	}
-	// Append weights for the runes in the segment not part of the contraction.
-	for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] {
-		w, p = t.appendNext(w, source{bytes: b})
-	}
-	return w, n
-}
-
-// TODO: unify the two implementations. This is best done after first simplifying
-// the algorithm taking into account the inclusion of both NFC and NFD forms
-// in the table.
-func (t *table) matchContractionString(w []Elem, ce Elem, suffix string) ([]Elem, int) {
-	index, n, offset := splitContractIndex(ce)
-
-	scan := t.contractTries.scannerString(index, n, suffix)
-	buf := [norm.MaxSegmentSize]byte{}
-	bufp := 0
-	p := scan.scan(0)
-
-	if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf {
-		// By now we should have filtered most cases.
-		p0 := p
-		bufn := 0
-		rune := norm.NFD.PropertiesString(suffix[p:])
-		p += rune.Size()
-		if rune.LeadCCC() != 0 {
-			prevCC := rune.TrailCCC()
-			// A gap may only occur in the last normalization segment.
-			// This also ensures that len(scan.s) < norm.MaxSegmentSize.
-			if end := norm.NFD.FirstBoundaryInString(suffix[p:]); end != -1 {
-				scan.s = suffix[:p+end]
-			}
-			for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf {
-				rune = norm.NFD.PropertiesString(suffix[p:])
-				if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc {
-					break
-				}
-				prevCC = rune.TrailCCC()
-				if pp := scan.scan(p); pp != p {
-					// Copy the interstitial runes for later processing.
-					bufn += copy(buf[bufn:], suffix[p0:p])
-					if scan.pindex == pp {
-						bufp = bufn
-					}
-					p, p0 = pp, pp
-				} else {
-					p += rune.Size()
-				}
-			}
-		}
-	}
-	// Append weights for the matched contraction, which may be an expansion.
-	i, n := scan.result()
-	ce = Elem(t.contractElem[i+offset])
-	if ce.ctype() == ceNormal {
-		w = append(w, ce)
-	} else {
-		w = t.appendExpansion(w, ce)
-	}
-	// Append weights for the runes in the segment not part of the contraction.
-	for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] {
-		w, p = t.appendNext(w, source{bytes: b})
-	}
-	return w, n
-}
-
-// TODO: this should stay after the rest of this file is moved to colltab
-func (t tableIndex) TrieIndex() []uint16 {
-	return mainLookup[:]
-}
-
-func (t tableIndex) TrieValues() []uint32 {
-	return mainValues[:]
-}
-
-func (t tableIndex) FirstBlockOffsets() (lookup, value uint16) {
-	return uint16(t.lookupOffset), uint16(t.valuesOffset)
-}
-
-func (t tableIndex) ExpandElems() []uint32 {
-	return mainExpandElem[:]
-}
-
-func (t tableIndex) ContractTries() []struct{ l, h, n, i uint8 } {
-	return mainCTEntries[:]
-}
-
-func (t tableIndex) ContractElems() []uint32 {
-	return mainContractElem[:]
-}
-
-func (t tableIndex) MaxContractLen() int {
-	return 18
-}
-
-func (t tableIndex) VariableTop() uint32 {
-	return 0x30E
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tables.go gcc-4.8.1/libgo/go/exp/locale/collate/tables.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tables.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tables.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,51896 +0,0 @@
-// Generated by running
-//  maketables -root=http://unicode.org/Public/UCA/6.2.0/CollationAuxiliary.zip -cldr=http://www.unicode.org/Public/cldr/22/core.zip
-// DO NOT EDIT
-// TODO: implement more compact representation for sparse blocks.
-
-package collate
-
-var availableLocales = []string{"af", "ar", "as", "az", "be", "bg", "bn", "ca", "cs", "cy", "da", "de", "dz", "ee", "el", "en_US_POSIX", "eo", "es", "et", "fa", "fi", "fil", "fo", "fr_CA", "gu", "ha", "haw", "he", "hi", "hr", "hu", "hy", "ig", "is", "ja", "kk", "kl", "km", "kn", "ko", "kok", "ln", "lt", "lv", "mk", "ml", "mr", "mt", "my", "nb", "nn", "nso", "om", "or", "pa", "pl", "ps", "ro", "root", "ru", "se", "si", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tn", "to", "tr", "uk", "ur", "vi", "wae", "yo", "zh"}
-
-var locales = map[string]tableIndex{
-	"af": {
-		lookupOffset: 0x16,
-		valuesOffset: 0x0,
-	},
-	"ar": {
-		lookupOffset: 0x18,
-		valuesOffset: 0x0,
-	},
-	"as": {
-		lookupOffset: 0x1a,
-		valuesOffset: 0x0,
-	},
-	"az": {
-		lookupOffset: 0x20,
-		valuesOffset: 0x1c0,
-	},
-	"be": {
-		lookupOffset: 0x21,
-		valuesOffset: 0x0,
-	},
-	"bg": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"bn": {
-		lookupOffset: 0x23,
-		valuesOffset: 0x0,
-	},
-	"ca": {
-		lookupOffset: 0x24,
-		valuesOffset: 0x1d5,
-	},
-	"cs": {
-		lookupOffset: 0x26,
-		valuesOffset: 0x1d9,
-	},
-	"cy": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x1de,
-	},
-	"da": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x1e0,
-	},
-	"de": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"dz": {
-		lookupOffset: 0x2b,
-		valuesOffset: 0x0,
-	},
-	"ee": {
-		lookupOffset: 0x31,
-		valuesOffset: 0x1ed,
-	},
-	"el": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"en_US_POSIX": {
-		lookupOffset: 0x38,
-		valuesOffset: 0x1fc,
-	},
-	"eo": {
-		lookupOffset: 0x39,
-		valuesOffset: 0x21b,
-	},
-	"es": {
-		lookupOffset: 0x3a,
-		valuesOffset: 0x21f,
-	},
-	"et": {
-		lookupOffset: 0x40,
-		valuesOffset: 0x222,
-	},
-	"fa": {
-		lookupOffset: 0x42,
-		valuesOffset: 0x0,
-	},
-	"fi": {
-		lookupOffset: 0x45,
-		valuesOffset: 0x23a,
-	},
-	"fil": {
-		lookupOffset: 0x3a,
-		valuesOffset: 0x245,
-	},
-	"fo": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x1e0,
-	},
-	"fr_CA": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"gu": {
-		lookupOffset: 0x47,
-		valuesOffset: 0x0,
-	},
-	"ha": {
-		lookupOffset: 0x48,
-		valuesOffset: 0x248,
-	},
-	"haw": {
-		lookupOffset: 0x4f,
-		valuesOffset: 0x24d,
-	},
-	"he": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"hi": {
-		lookupOffset: 0x51,
-		valuesOffset: 0x0,
-	},
-	"hr": {
-		lookupOffset: 0x53,
-		valuesOffset: 0x264,
-	},
-	"hu": {
-		lookupOffset: 0x55,
-		valuesOffset: 0x26a,
-	},
-	"hy": {
-		lookupOffset: 0x56,
-		valuesOffset: 0x0,
-	},
-	"ig": {
-		lookupOffset: 0x58,
-		valuesOffset: 0x272,
-	},
-	"is": {
-		lookupOffset: 0x5a,
-		valuesOffset: 0x276,
-	},
-	"ja": {
-		lookupOffset: 0x66,
-		valuesOffset: 0x0,
-	},
-	"kk": {
-		lookupOffset: 0x67,
-		valuesOffset: 0x0,
-	},
-	"kl": {
-		lookupOffset: 0x68,
-		valuesOffset: 0x3e7,
-	},
-	"km": {
-		lookupOffset: 0x6a,
-		valuesOffset: 0x0,
-	},
-	"kn": {
-		lookupOffset: 0x6c,
-		valuesOffset: 0x0,
-	},
-	"ko": {
-		lookupOffset: 0x78,
-		valuesOffset: 0x0,
-	},
-	"kok": {
-		lookupOffset: 0x7a,
-		valuesOffset: 0x0,
-	},
-	"ln": {
-		lookupOffset: 0x7b,
-		valuesOffset: 0x0,
-	},
-	"lt": {
-		lookupOffset: 0x81,
-		valuesOffset: 0x545,
-	},
-	"lv": {
-		lookupOffset: 0x83,
-		valuesOffset: 0x553,
-	},
-	"mk": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"ml": {
-		lookupOffset: 0x85,
-		valuesOffset: 0x0,
-	},
-	"mr": {
-		lookupOffset: 0x87,
-		valuesOffset: 0x0,
-	},
-	"mt": {
-		lookupOffset: 0x8a,
-		valuesOffset: 0x55b,
-	},
-	"my": {
-		lookupOffset: 0x8c,
-		valuesOffset: 0x0,
-	},
-	"nb": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x564,
-	},
-	"nn": {
-		lookupOffset: 0x29,
-		valuesOffset: 0x564,
-	},
-	"nso": {
-		lookupOffset: 0x8e,
-		valuesOffset: 0x566,
-	},
-	"om": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x56c,
-	},
-	"or": {
-		lookupOffset: 0x90,
-		valuesOffset: 0x0,
-	},
-	"pa": {
-		lookupOffset: 0x92,
-		valuesOffset: 0x0,
-	},
-	"pl": {
-		lookupOffset: 0x94,
-		valuesOffset: 0x572,
-	},
-	"ps": {
-		lookupOffset: 0x97,
-		valuesOffset: 0x0,
-	},
-	"ro": {
-		lookupOffset: 0x99,
-		valuesOffset: 0x584,
-	},
-	"root": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"ru": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"se": {
-		lookupOffset: 0x9b,
-		valuesOffset: 0x58b,
-	},
-	"si": {
-		lookupOffset: 0x9d,
-		valuesOffset: 0x0,
-	},
-	"sk": {
-		lookupOffset: 0x9f,
-		valuesOffset: 0x598,
-	},
-	"sl": {
-		lookupOffset: 0xa0,
-		valuesOffset: 0x59d,
-	},
-	"sq": {
-		lookupOffset: 0xa2,
-		valuesOffset: 0x5a0,
-	},
-	"sr": {
-		lookupOffset: 0x15,
-		valuesOffset: 0x0,
-	},
-	"sv": {
-		lookupOffset: 0xa4,
-		valuesOffset: 0x5a4,
-	},
-	"ta": {
-		lookupOffset: 0xa6,
-		valuesOffset: 0x0,
-	},
-	"te": {
-		lookupOffset: 0xa8,
-		valuesOffset: 0x0,
-	},
-	"th": {
-		lookupOffset: 0xaa,
-		valuesOffset: 0x0,
-	},
-	"tn": {
-		lookupOffset: 0x8e,
-		valuesOffset: 0x566,
-	},
-	"to": {
-		lookupOffset: 0xac,
-		valuesOffset: 0x5af,
-	},
-	"tr": {
-		lookupOffset: 0xb2,
-		valuesOffset: 0x5bb,
-	},
-	"uk": {
-		lookupOffset: 0xb3,
-		valuesOffset: 0x0,
-	},
-	"ur": {
-		lookupOffset: 0xb5,
-		valuesOffset: 0x0,
-	},
-	"vi": {
-		lookupOffset: 0xb7,
-		valuesOffset: 0x5ca,
-	},
-	"wae": {
-		lookupOffset: 0xb8,
-		valuesOffset: 0x5de,
-	},
-	"yo": {
-		lookupOffset: 0xba,
-		valuesOffset: 0x5e1,
-	},
-	"zh": {
-		lookupOffset: 0xd4,
-		valuesOffset: 0x5e6,
-	},
-}
-
-// mainExpandElem: 45432 entries, 181728 bytes
-var mainExpandElem = [45432]uint32{
-	// Block 0, offset 0x0
-	0x00000002, 0xAE604702, 0xAE603202, 0x00000002, 0xA000A51A, 0xA000BA1A,
-	0x00000002, 0xA000A91A, 0xA000BA1A, 0x00000002, 0xA000AD1A, 0xA000BA1A,
-	0x00000002, 0xA000B21A, 0xA000BA1A, 0x00000002, 0xA000B61A, 0xA000BA1A,
-	0x00000002, 0xA000BA1A, 0xA000D11A, 0x00000004, 0x0003F484, 0x0029CE84,
-	0x0029CC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029CE84,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D084, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0029CE84, 0x0029D284, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0029CE84, 0x0029D484, 0x0003F69F, 0x00000004, 0x0003F484,
-	0x0029CE84, 0x0029D684, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84,
-	0x0029D884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DA84,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84,
-	// Block 1, offset 0x40
-	0x0029DC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DE84,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0029D084, 0x0029CC84, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0062AC84, 0x0063A884, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0062B084, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484,
-	0x0062B284, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B684,
-	0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B884, 0x0063A884,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0062BA84, 0x0063A884, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0062BE84, 0x0063A884, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0062C284, 0x0063A884, 0x0003F69F, 0x00000007, 0x0003F484,
-	0x0062C284, 0x0063B884, 0x0062C484, 0x0063B084, 0x00646A84, 0x0003F69F,
-	0x00000006, 0x0003F484, 0x0062C284, 0x0063B884,
-	// Block 2, offset 0x80
-	0x0062D084, 0x0063C284, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484,
-	0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, 0x0063C284,
-	0x0003F69F, 0x00000004, 0x0003F484, 0x0062C884, 0x0063A884, 0x0003F69F,
-	0x00000004, 0x0003F484, 0x0062CA84, 0x0063A884, 0x0003F69F, 0x00000004,
-	0x0003F484, 0x0062CC84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484,
-	0x0062CE84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062D084,
-	0x0063A884, 0x0003F69F, 0x00000004, 0x00050E84, 0x00050E84, 0x00050E84,
-	0x00050E9F, 0x00000002, 0x40062C20, 0xAE603202, 0x00000002, 0x40062C20,
-	0xAE603502, 0x00000002, 0x40062C20, 0xAE604502, 0x00000002, 0x40063620,
-	0xAE603202, 0x00000002, 0x40063620, 0xAE603502, 0x00000002, 0x40063620,
-	0xAE604502, 0x00000002, 0x40063820, 0xAE603202,
-	// Block 3, offset 0xc0
-	0x00000002, 0x40063820, 0xAE603502, 0x00000002, 0x40063820, 0xAE604502,
-	0x00000002, 0x40084420, 0xA0105402, 0x00000002, 0x40084620, 0xA0105402,
-	0x00000002, 0x40084C20, 0xA0105402, 0x00000002, 0x4008B820, 0xA0105402,
-	0x00000002, 0x4008BC20, 0xA0105402, 0x00000002, 0x4008C020, 0xA0105402,
-	0x00000002, 0x40091E20, 0xA0105402, 0x00000002, 0x40092620, 0xA0105402,
-	0x00000002, 0x40092A20, 0xA0105402, 0x00000002, 0x40094020, 0xA0105402,
-	0x00000002, 0x40094220, 0xA0105402, 0x00000002, 0x40094420, 0xA0105402,
-	0x00000002, 0x40097820, 0xA0105402, 0x00000002, 0x40097A20, 0xA0105402,
-	0x00000004, 0x00098484, 0x00098484, 0x00098484, 0x0009849F, 0x00000002,
-	0x40099E20, 0xA0105402, 0x00000002, 0x4009AA20, 0xA0105402, 0x00000002,
-	0x4009AC20, 0xA0105402, 0x00000002, 0x4009B020,
-	// Block 4, offset 0x100
-	0xA0105402, 0x00000002, 0x4009B820, 0xA0105402, 0x00000002, 0x4009DE20,
-	0xA0105402, 0x00000002, 0x4009E220, 0xA0105402, 0x00000002, 0x4009E420,
-	0xA0105402, 0x00000002, 0x4009F420, 0xA0105402, 0x00000002, 0x4009F620,
-	0xA0105402, 0x00000002, 0x4009F820, 0xA0105402, 0x00000002, 0x4009FA20,
-	0xA0105402, 0x00000002, 0x4009FC20, 0xA0105402, 0x00000002, 0x4009FE20,
-	0xA0105402, 0x00000002, 0x400A0020, 0xA0105402, 0x00000002, 0x400A0220,
-	0xA0105402, 0x00000002, 0x400A0820, 0xA0105402, 0x00000002, 0x400A0A20,
-	0xA0105402, 0x00000002, 0x400A0C20, 0xA0105402, 0x00000002, 0x400A0E20,
-	0xA0105402, 0x00000002, 0x400A1E20, 0xA0105402, 0x00000002, 0x400A2020,
-	0xA0105402, 0x00000002, 0x400A4020, 0xA0105402, 0x00000002, 0x400A4C20,
-	0xA0105402, 0x00000002, 0x400A4E20, 0xA0105402,
-	// Block 5, offset 0x140
-	0x00000002, 0x400A5220, 0xA0105402, 0x00000002, 0x400A5820, 0xA0105402,
-	0x00000002, 0x400A5A20, 0xA0105402, 0x00000002, 0x400A5C20, 0xA0105402,
-	0x00000002, 0x400A5E20, 0xA0105402, 0x00000002, 0x40164620, 0xA0105402,
-	0x00000002, 0x4027CE20, 0xA0012802, 0x00000002, 0x4027D020, 0xA0012802,
-	0x00000002, 0x4027D420, 0xA0812802, 0x00000002, 0x4027D820, 0xA0812802,
-	0x00000002, 0x4029CC20, 0xA0013F02, 0x00000002, 0x4029CC20, 0xA0014002,
-	0x00000002, 0x4029CC20, 0xA0014202, 0x00000002, 0x4029CC20, 0xA0014402,
-	0x00000002, 0x4029CC20, 0xA0014502, 0x00000002, 0x4029CC20, 0xA0014602,
-	0x00000002, 0x4029CC20, 0xA0014702, 0x00000002, 0x4029CC20, 0xA0014802,
-	0x00000002, 0x4029CC20, 0xA0014902, 0x00000002, 0x4029CC20, 0xA0014A02,
-	0x00000002, 0x4029CC20, 0xA0014B02, 0x00000002,
-	// Block 6, offset 0x180
-	0x4029CC20, 0xA0014B02, 0x00000002, 0x4029CC20, 0xA0014C02, 0x00000002,
-	0x4029CC20, 0xA0014D02, 0x00000002, 0x4029CC20, 0xA0014E02, 0x00000002,
-	0x4029CC20, 0xA0014F02, 0x00000002, 0x4029CC20, 0xA0015002, 0x00000002,
-	0x4029CC20, 0xA0015102, 0x00000002, 0x4029CC20, 0xA0015202, 0x00000002,
-	0x4029CC20, 0xA0015302, 0x00000002, 0x4029CC20, 0xA0015402, 0x00000002,
-	0x4029CC20, 0xA0015502, 0x00000002, 0x4029CC20, 0xA0015602, 0x00000002,
-	0x0029CC84, 0xA0015604, 0x00000002, 0x4029CC20, 0xA0015702, 0x00000002,
-	0x4029CC20, 0xA0015802, 0x00000002, 0x4029CC20, 0xA0015902, 0x00000002,
-	0x4029CC20, 0xA0015A02, 0x00000002, 0x4029CC20, 0xA0015B02, 0x00000002,
-	0x4029CC20, 0xA0015C02, 0x00000002, 0x4029CC20, 0xA0015D02, 0x00000002,
-	0x4029CC20, 0xA0015E02, 0x00000002, 0x4029CC20,
-	// Block 7, offset 0x1c0
-	0xA0015F02, 0x00000002, 0x4029CC20, 0xA0016002, 0x00000002, 0x4029CC20,
-	0xA0016102, 0x00000002, 0x4029CC20, 0xA0016202, 0x00000002, 0x4029CC20,
-	0xA0016302, 0x00000002, 0x4029CC20, 0xA0016402, 0x00000002, 0x4029CC20,
-	0xA0016502, 0x00000002, 0x4029CC20, 0xA0016602, 0x00000002, 0x4029CC20,
-	0xA0016802, 0x00000002, 0x4029CC20, 0xA0017202, 0x00000002, 0x4029CC20,
-	0xA0017302, 0x00000002, 0x4029CC20, 0xA0017402, 0x00000003, 0x0029CC9E,
-	0x0009589E, 0x0029D29E, 0x00000002, 0x4029CE20, 0xA0013F02, 0x00000002,
-	0x4029CE20, 0xA0014002, 0x00000002, 0x4029CE20, 0xA0014102, 0x00000002,
-	0x4029CE20, 0xA0014202, 0x00000002, 0x4029CE20, 0xA0014302, 0x00000002,
-	0x4029CE20, 0xA0014402, 0x00000002, 0x4029CE20, 0xA0014502, 0x00000002,
-	0x4029CE20, 0xA0014602, 0x00000002, 0x4029CE20,
-	// Block 8, offset 0x200
-	0xA0014702, 0x00000002, 0x4029CE20, 0xA0014802, 0x00000002, 0x4029CE20,
-	0xA0014902, 0x00000002, 0x4029CE20, 0xA0014A02, 0x00000002, 0x4029CE20,
-	0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014B02, 0x00000002, 0x4029CE20,
-	0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014C02, 0x00000002, 0x4029CE20,
-	0xA0014D02, 0x00000002, 0x4029CE20, 0xA0014E02, 0x00000002, 0x4029CE20,
-	0xA0014F02, 0x00000002, 0x4029CE20, 0xA0015002, 0x00000002, 0x4029CE20,
-	0xA0015102, 0x00000002, 0x4029CE20, 0xA0015102, 0x00000002, 0x4029CE20,
-	0xA0015202, 0x00000002, 0x4029CE20, 0xA0015302, 0x00000002, 0x4029CE20,
-	0xA0015402, 0x00000002, 0x4029CE20, 0xA0015502, 0x00000002, 0x4029CE20,
-	0xA0015602, 0x00000002, 0x0029CE84, 0xA0015604, 0x00000002, 0x4029CE20,
-	0xA0015702, 0x00000002, 0x4029CE20, 0xA0015802,
-	// Block 9, offset 0x240
-	0x00000002, 0x4029CE20, 0xA0015902, 0x00000002, 0x4029CE20, 0xA0015A02,
-	0x00000002, 0x4029CE20, 0xA0015B02, 0x00000002, 0x4029CE20, 0xA0015C02,
-	0x00000002, 0x4029CE20, 0xA0015D02, 0x00000002, 0x4029CE20, 0xA0015E02,
-	0x00000002, 0x4029CE20, 0xA0015F02, 0x00000002, 0x4029CE20, 0xA0016002,
-	0x00000002, 0x4029CE20, 0xA0016102, 0x00000002, 0x4029CE20, 0xA0016202,
-	0x00000002, 0x4029CE20, 0xA0016302, 0x00000002, 0x4029CE20, 0xA0016402,
-	0x00000002, 0x4029CE20, 0xA0016502, 0x00000002, 0x4029CE20, 0xA0016602,
-	0x00000002, 0x4029CE20, 0xA0016702, 0x00000002, 0x4029CE20, 0xA0016802,
-	0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016802,
-	0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016A02,
-	0x00000002, 0x4029CE20, 0xA0016B02, 0x00000002,
-	// Block 10, offset 0x280
-	0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002,
-	0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002,
-	0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002,
-	0x4029CE20, 0xA0016D02, 0x00000002, 0x4029CE20, 0xA0016E02, 0x00000002,
-	0x4029CE20, 0xA0016F02, 0x00000002, 0x4029CE20, 0xA0017002, 0x00000002,
-	0x4029CE20, 0xA0017102, 0x00000002, 0x4029CE20, 0xA0017202, 0x00000002,
-	0x4029CE20, 0xA0017302, 0x00000002, 0x4029CE20, 0xA0017402, 0x00000002,
-	0x4029CE20, 0xA0017502, 0x00000002, 0x4029CE20, 0xA0017602, 0x00000002,
-	0x4029CE20, 0xA0017702, 0x00000004, 0x0029CE9E, 0x0009589E, 0x0029CE9E,
-	0x0029CC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D09E, 0x00000003,
-	0x0029CE9E, 0x0009589E, 0x0029D29E, 0x00000003,
-	// Block 11, offset 0x2c0
-	0x0029CE9E, 0x0009589E, 0x0029D49E, 0x00000003, 0x0029CE9E, 0x0009589E,
-	0x0029D69E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D89E, 0x00000003,
-	0x0029CE9E, 0x0009589E, 0x0029DA9E, 0x00000003, 0x0029CE9E, 0x0009589E,
-	0x0029DC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029DE9E, 0x00000002,
-	0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002,
-	0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002,
-	0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000002,
-	0x0029CE86, 0x0029D086, 0x00000002, 0x0029CE86, 0x0029D286, 0x00000002,
-	0x0029CE86, 0x0029D486, 0x00000002, 0x0029CE86, 0x0029D686, 0x00000002,
-	0x0029CE86, 0x0029D886, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000002,
-	0x0029CE86, 0x0029DC86, 0x00000002, 0x0029CE86,
-	// Block 12, offset 0x300
-	0x0029DE86, 0x00000002, 0x4029D020, 0xA0013F02, 0x00000002, 0x4029D020,
-	0xA0014002, 0x00000002, 0x4029D020, 0xA0014102, 0x00000002, 0x4029D020,
-	0xA0014202, 0x00000002, 0x4029D020, 0xA0014302, 0x00000002, 0x4029D020,
-	0xA0014402, 0x00000002, 0x4029D020, 0xA0014502, 0x00000002, 0x4029D020,
-	0xA0014602, 0x00000002, 0x4029D020, 0xA0014702, 0x00000002, 0x4029D020,
-	0xA0014802, 0x00000002, 0x4029D020, 0xA0014902, 0x00000002, 0x4029D020,
-	0xA0014A02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020,
-	0xA0014B02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020,
-	0xA0014C02, 0x00000002, 0x4029D020, 0xA0014D02, 0x00000002, 0x4029D020,
-	0xA0014E02, 0x00000002, 0x4029D020, 0xA0014F02, 0x00000002, 0x4029D020,
-	0xA0015002, 0x00000002, 0x4029D020, 0xA0015102,
-	// Block 13, offset 0x340
-	0x00000002, 0x4029D020, 0xA0015202, 0x00000002, 0x4029D020, 0xA0015302,
-	0x00000002, 0x4029D020, 0xA0015402, 0x00000002, 0x4029D020, 0xA0015502,
-	0x00000002, 0x4029D020, 0xA0015602, 0x00000002, 0x0029D084, 0xA0015604,
-	0x00000002, 0x4029D020, 0xA0015702, 0x00000002, 0x4029D020, 0xA0015802,
-	0x00000002, 0x4029D020, 0xA0015902, 0x00000002, 0x4029D020, 0xA0015A02,
-	0x00000002, 0x4029D020, 0xA0015B02, 0x00000002, 0x4029D020, 0xA0015C02,
-	0x00000002, 0x4029D020, 0xA0015D02, 0x00000002, 0x4029D020, 0xA0015E02,
-	0x00000002, 0x4029D020, 0xA0015F02, 0x00000002, 0x4029D020, 0xA0016002,
-	0x00000002, 0x4029D020, 0xA0016102, 0x00000002, 0x4029D020, 0xA0016202,
-	0x00000002, 0x4029D020, 0xA0016302, 0x00000002, 0x4029D020, 0xA0016402,
-	0x00000002, 0x4029D020, 0xA0016502, 0x00000002,
-	// Block 14, offset 0x380
-	0x4029D020, 0xA0016602, 0x00000002, 0x4029D020, 0xA0016702, 0x00000002,
-	0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002,
-	0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002,
-	0x4029D020, 0xA0016B02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002,
-	0x4029D020, 0xA0016E02, 0x00000002, 0x4029D020, 0xA0016F02, 0x00000002,
-	0x4029D020, 0xA0017002, 0x00000002, 0x4029D020, 0xA0017102, 0x00000002,
-	0x4029D020, 0xA0017202, 0x00000002, 0x4029D020,
-	// Block 15, offset 0x3c0
-	0xA0017302, 0x00000002, 0x4029D020, 0xA0017402, 0x00000002, 0x4029D020,
-	0xA0017502, 0x00000002, 0x4029D020, 0xA0017602, 0x00000002, 0x4029D020,
-	0xA0017702, 0x00000003, 0x0029D09E, 0x0009589E, 0x0029D29E, 0x00000003,
-	0x0029D09E, 0x0009589E, 0x0029D69E, 0x00000002, 0x0029D086, 0x0029CC86,
-	0x00000002, 0x0029D086, 0x0029CC86, 0x00000002, 0x4029D220, 0xA0013F02,
-	0x00000002, 0x4029D220, 0xA0014002, 0x00000002, 0x4029D220, 0xA0014102,
-	0x00000002, 0x4029D220, 0xA0014202, 0x00000002, 0x4029D220, 0xA0014302,
-	0x00000002, 0x4029D220, 0xA0014402, 0x00000002, 0x4029D220, 0xA0014502,
-	0x00000002, 0x4029D220, 0xA0014602, 0x00000002, 0x4029D220, 0xA0014702,
-	0x00000002, 0x4029D220, 0xA0014802, 0x00000002, 0x4029D220, 0xA0014902,
-	0x00000002, 0x4029D220, 0xA0014A02, 0x00000002,
-	// Block 16, offset 0x400
-	0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014B02, 0x00000002,
-	0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014C02, 0x00000002,
-	0x4029D220, 0xA0014D02, 0x00000002, 0x4029D220, 0xA0014E02, 0x00000002,
-	0x4029D220, 0xA0014F02, 0x00000002, 0x4029D220, 0xA0015002, 0x00000002,
-	0x4029D220, 0xA0015102, 0x00000002, 0x4029D220, 0xA0015202, 0x00000002,
-	0x4029D220, 0xA0015302, 0x00000002, 0x4029D220, 0xA0015402, 0x00000002,
-	0x4029D220, 0xA0015502, 0x00000002, 0x4029D220, 0xA0015602, 0x00000002,
-	0x0029D284, 0xA0015604, 0x00000002, 0x4029D220, 0xA0015702, 0x00000002,
-	0x4029D220, 0xA0015802, 0x00000002, 0x4029D220, 0xA0015902, 0x00000002,
-	0x4029D220, 0xA0015A02, 0x00000002, 0x4029D220, 0xA0015B02, 0x00000002,
-	0x4029D220, 0xA0015C02, 0x00000002, 0x4029D220,
-	// Block 17, offset 0x440
-	0xA0015D02, 0x00000002, 0x4029D220, 0xA0015E02, 0x00000002, 0x4029D220,
-	0xA0015F02, 0x00000002, 0x4029D220, 0xA0016002, 0x00000002, 0x4029D220,
-	0xA0016102, 0x00000002, 0x4029D220, 0xA0016202, 0x00000002, 0x4029D220,
-	0xA0016302, 0x00000002, 0x4029D220, 0xA0016402, 0x00000002, 0x4029D220,
-	0xA0016502, 0x00000002, 0x4029D220, 0xA0016602, 0x00000002, 0x4029D220,
-	0xA0016702, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220,
-	0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02,
-	// Block 18, offset 0x480
-	0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02,
-	0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016E02,
-	0x00000002, 0x4029D220, 0xA0016F02, 0x00000002, 0x4029D220, 0xA0017002,
-	0x00000002, 0x4029D220, 0xA0017102, 0x00000002, 0x4029D220, 0xA0017202,
-	0x00000002, 0x4029D220, 0xA0017302, 0x00000002, 0x4029D220, 0xA0017402,
-	0x00000002, 0x4029D220, 0xA0017502, 0x00000002, 0x4029D220, 0xA0017602,
-	0x00000002, 0x4029D220, 0xA0017702, 0x00000003, 0x0029D29E, 0x0009589E,
-	0x0029D49E, 0x00000003, 0x0029D29E, 0x0009589E, 0x0029D69E, 0x00000003,
-	0x0029D29E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D286, 0x0029CC86,
-	0x00000002, 0x4029D420, 0xA0013F02, 0x00000002, 0x4029D420, 0xA0014002,
-	0x00000002, 0x4029D420, 0xA0014102, 0x00000002,
-	// Block 19, offset 0x4c0
-	0x4029D420, 0xA0014202, 0x00000002, 0x4029D420, 0xA0014302, 0x00000002,
-	0x4029D420, 0xA0014402, 0x00000002, 0x4029D420, 0xA0014502, 0x00000002,
-	0x4029D420, 0xA0014602, 0x00000002, 0x4029D420, 0xA0014702, 0x00000002,
-	0x4029D420, 0xA0014802, 0x00000002, 0x4029D420, 0xA0014902, 0x00000002,
-	0x4029D420, 0xA0014A02, 0x00000002, 0x4029D420, 0xA0014B02, 0x00000002,
-	0x4029D420, 0xA0014C02, 0x00000002, 0x4029D420, 0xA0014D02, 0x00000002,
-	0x4029D420, 0xA0014E02, 0x00000002, 0x4029D420, 0xA0014F02, 0x00000002,
-	0x4029D420, 0xA0015002, 0x00000002, 0x4029D420, 0xA0015102, 0x00000002,
-	0x4029D420, 0xA0015202, 0x00000002, 0x4029D420, 0xA0015302, 0x00000002,
-	0x4029D420, 0xA0015402, 0x00000002, 0x4029D420, 0xA0015502, 0x00000002,
-	0x4029D420, 0xA0015602, 0x00000002, 0x0029D484,
-	// Block 20, offset 0x500
-	0xA0015604, 0x00000002, 0x4029D420, 0xA0015702, 0x00000002, 0x4029D420,
-	0xA0015802, 0x00000002, 0x4029D420, 0xA0015902, 0x00000002, 0x4029D420,
-	0xA0015A02, 0x00000002, 0x4029D420, 0xA0015B02, 0x00000002, 0x4029D420,
-	0xA0015C02, 0x00000002, 0x4029D420, 0xA0015D02, 0x00000002, 0x4029D420,
-	0xA0015E02, 0x00000002, 0x4029D420, 0xA0015F02, 0x00000002, 0x4029D420,
-	0xA0016002, 0x00000002, 0x4029D420, 0xA0016102, 0x00000002, 0x4029D420,
-	0xA0016202, 0x00000002, 0x4029D420, 0xA0016302, 0x00000002, 0x4029D420,
-	0xA0016402, 0x00000002, 0x4029D420, 0xA0016502, 0x00000002, 0x4029D420,
-	0xA0016602, 0x00000002, 0x4029D420, 0xA0016702, 0x00000002, 0x4029D420,
-	0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420,
-	0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	// Block 21, offset 0x540
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02,
-	0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0017002,
-	0x00000002, 0x4029D420, 0xA0017102, 0x00000002, 0x4029D420, 0xA0017202,
-	0x00000002, 0x4029D420, 0xA0017302, 0x00000002, 0x4029D420, 0xA0017402,
-	0x00000002, 0x4029D420, 0xA0017502, 0x00000002, 0x4029D420, 0xA0017602,
-	0x00000002, 0x4029D420, 0xA0017702, 0x00000003, 0x0029D49E, 0x0009589E,
-	0x0029D69E, 0x00000002, 0x0029D486, 0x0029CC86,
-	// Block 22, offset 0x580
-	0x00000002, 0x4029D620, 0xA0013F02, 0x00000002, 0x4029D620, 0xA0014002,
-	0x00000002, 0x4029D620, 0xA0014102, 0x00000002, 0x4029D620, 0xA0014202,
-	0x00000002, 0x4029D620, 0xA0014302, 0x00000002, 0x4029D620, 0xA0014402,
-	0x00000002, 0x4029D620, 0xA0014502, 0x00000002, 0x4029D620, 0xA0014602,
-	0x00000002, 0x4029D620, 0xA0014702, 0x00000002, 0x4029D620, 0xA0014802,
-	0x00000002, 0x4029D620, 0xA0014902, 0x00000002, 0x4029D620, 0xA0014A02,
-	0x00000002, 0x4029D620, 0xA0014B02, 0x00000002, 0x4029D620, 0xA0014C02,
-	0x00000002, 0x4029D620, 0xA0014D02, 0x00000002, 0x4029D620, 0xA0014E02,
-	0x00000002, 0x4029D620, 0xA0014F02, 0x00000002, 0x4029D620, 0xA0015002,
-	0x00000002, 0x4029D620, 0xA0015102, 0x00000002, 0x4029D620, 0xA0015202,
-	0x00000002, 0x4029D620, 0xA0015302, 0x00000002,
-	// Block 23, offset 0x5c0
-	0x4029D620, 0xA0015402, 0x00000002, 0x4029D620, 0xA0015502, 0x00000002,
-	0x4029D620, 0xA0015602, 0x00000002, 0x0029D684, 0xA0015604, 0x00000002,
-	0x4029D620, 0xA0015702, 0x00000002, 0x4029D620, 0xA0015802, 0x00000002,
-	0x4029D620, 0xA0015902, 0x00000002, 0x4029D620, 0xA0015A02, 0x00000002,
-	0x4029D620, 0xA0015B02, 0x00000002, 0x4029D620, 0xA0015C02, 0x00000002,
-	0x4029D620, 0xA0015D02, 0x00000002, 0x4029D620, 0xA0015E02, 0x00000002,
-	0x4029D620, 0xA0015F02, 0x00000002, 0x4029D620, 0xA0016002, 0x00000002,
-	0x4029D620, 0xA0016102, 0x00000002, 0x4029D620, 0xA0016202, 0x00000002,
-	0x4029D620, 0xA0016302, 0x00000002, 0x4029D620, 0xA0016402, 0x00000002,
-	0x4029D620, 0xA0016502, 0x00000002, 0x4029D620, 0xA0016602, 0x00000002,
-	0x4029D620, 0xA0016702, 0x00000002, 0x4029D620,
-	// Block 24, offset 0x600
-	0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620,
-	0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620,
-	0xA0016802, 0x00000002, 0x4029D620, 0xA0016A02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620,
-	0xA0016C02, 0x00000002, 0x4029D620, 0xA0017202, 0x00000002, 0x4029D620,
-	0xA0017302, 0x00000002, 0x4029D620, 0xA0017402, 0x00000002, 0x4029D620,
-	0xA0017502, 0x00000002, 0x4029D620, 0xA0017702,
-	// Block 25, offset 0x640
-	0x00000003, 0x0029D69E, 0x0009589E, 0x0029D89E, 0x00000003, 0x0029D69E,
-	0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D686, 0x0029CC86, 0x00000002,
-	0x4029D820, 0xA0013F02, 0x00000002, 0x4029D820, 0xA0014002, 0x00000002,
-	0x4029D820, 0xA0014102, 0x00000002, 0x4029D820, 0xA0014202, 0x00000002,
-	0x4029D820, 0xA0014302, 0x00000002, 0x4029D820, 0xA0014402, 0x00000002,
-	0x4029D820, 0xA0014502, 0x00000002, 0x4029D820, 0xA0014602, 0x00000002,
-	0x4029D820, 0xA0014702, 0x00000002, 0x4029D820, 0xA0014802, 0x00000002,
-	0x4029D820, 0xA0014902, 0x00000002, 0x4029D820, 0xA0014A02, 0x00000002,
-	0x4029D820, 0xA0014B02, 0x00000002, 0x4029D820, 0xA0014C02, 0x00000002,
-	0x4029D820, 0xA0014D02, 0x00000002, 0x4029D820, 0xA0014E02, 0x00000002,
-	0x4029D820, 0xA0014F02, 0x00000002, 0x4029D820,
-	// Block 26, offset 0x680
-	0xA0015002, 0x00000002, 0x4029D820, 0xA0015102, 0x00000002, 0x4029D820,
-	0xA0015202, 0x00000002, 0x4029D820, 0xA0015302, 0x00000002, 0x4029D820,
-	0xA0015402, 0x00000002, 0x4029D820, 0xA0015502, 0x00000002, 0x4029D820,
-	0xA0015602, 0x00000002, 0x0029D884, 0xA0015604, 0x00000002, 0x4029D820,
-	0xA0015702, 0x00000002, 0x4029D820, 0xA0015802, 0x00000002, 0x4029D820,
-	0xA0015902, 0x00000002, 0x4029D820, 0xA0015A02, 0x00000002, 0x4029D820,
-	0xA0015B02, 0x00000002, 0x4029D820, 0xA0015C02, 0x00000002, 0x4029D820,
-	0xA0015D02, 0x00000002, 0x4029D820, 0xA0015E02, 0x00000002, 0x4029D820,
-	0xA0015F02, 0x00000002, 0x4029D820, 0xA0016002, 0x00000002, 0x4029D820,
-	0xA0016102, 0x00000002, 0x4029D820, 0xA0016202, 0x00000002, 0x4029D820,
-	0xA0016302, 0x00000002, 0x4029D820, 0xA0016402,
-	// Block 27, offset 0x6c0
-	0x00000002, 0x4029D820, 0xA0016502, 0x00000002, 0x4029D820, 0xA0016602,
-	0x00000002, 0x4029D820, 0xA0016702, 0x00000002, 0x4029D820, 0xA0016902,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02,
-	0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0017202,
-	0x00000002, 0x4029D820, 0xA0017302, 0x00000002, 0x4029D820, 0xA0017402,
-	0x00000002, 0x4029D820, 0xA0017502, 0x00000002, 0x4029D820, 0xA0017702,
-	0x00000002, 0x0029D886, 0x0029CC86, 0x00000002, 0x4029DA20, 0xA0013F02,
-	0x00000002, 0x4029DA20, 0xA0014002, 0x00000002, 0x4029DA20, 0xA0014102,
-	0x00000002, 0x4029DA20, 0xA0014202, 0x00000002,
-	// Block 28, offset 0x700
-	0x4029DA20, 0xA0014302, 0x00000002, 0x4029DA20, 0xA0014402, 0x00000002,
-	0x4029DA20, 0xA0014502, 0x00000002, 0x4029DA20, 0xA0014602, 0x00000002,
-	0x4029DA20, 0xA0014702, 0x00000002, 0x4029DA20, 0xA0014802, 0x00000002,
-	0x4029DA20, 0xA0014902, 0x00000002, 0x4029DA20, 0xA0014A02, 0x00000002,
-	0x4029DA20, 0xA0014B02, 0x00000002, 0x4029DA20, 0xA0014C02, 0x00000002,
-	0x4029DA20, 0xA0014D02, 0x00000002, 0x4029DA20, 0xA0014E02, 0x00000002,
-	0x4029DA20, 0xA0014F02, 0x00000002, 0x4029DA20, 0xA0015002, 0x00000002,
-	0x4029DA20, 0xA0015102, 0x00000002, 0x4029DA20, 0xA0015202, 0x00000002,
-	0x4029DA20, 0xA0015302, 0x00000002, 0x4029DA20, 0xA0015402, 0x00000002,
-	0x4029DA20, 0xA0015502, 0x00000002, 0x4029DA20, 0xA0015602, 0x00000002,
-	0x0029DA84, 0xA0015604, 0x00000002, 0x4029DA20,
-	// Block 29, offset 0x740
-	0xA0015702, 0x00000002, 0x4029DA20, 0xA0015802, 0x00000002, 0x4029DA20,
-	0xA0015902, 0x00000002, 0x4029DA20, 0xA0015A02, 0x00000002, 0x4029DA20,
-	0xA0015B02, 0x00000002, 0x4029DA20, 0xA0015C02, 0x00000002, 0x4029DA20,
-	0xA0015D02, 0x00000002, 0x4029DA20, 0xA0015E02, 0x00000002, 0x4029DA20,
-	0xA0015F02, 0x00000002, 0x4029DA20, 0xA0016002, 0x00000002, 0x4029DA20,
-	0xA0016102, 0x00000002, 0x4029DA20, 0xA0016202, 0x00000002, 0x4029DA20,
-	0xA0016302, 0x00000002, 0x4029DA20, 0xA0016402, 0x00000002, 0x4029DA20,
-	0xA0016502, 0x00000002, 0x4029DA20, 0xA0016602, 0x00000002, 0x4029DA20,
-	0xA0016702, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20,
-	0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20,
-	0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02,
-	// Block 30, offset 0x780
-	0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02,
-	0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0017202,
-	0x00000002, 0x4029DA20, 0xA0017302, 0x00000002, 0x4029DA20, 0xA0017402,
-	0x00000002, 0x4029DA20, 0xA0017502, 0x00000002, 0x4029DA20, 0xA0017702,
-	0x00000003, 0x0029DA9E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029DA86,
-	0x0029CC86, 0x00000002, 0x4029DC20, 0xA0013F02, 0x00000002, 0x4029DC20,
-	0xA0014002, 0x00000002, 0x4029DC20, 0xA0014102, 0x00000002, 0x4029DC20,
-	0xA0014202, 0x00000002, 0x4029DC20, 0xA0014302, 0x00000002, 0x4029DC20,
-	0xA0014402, 0x00000002, 0x4029DC20, 0xA0014502, 0x00000002, 0x4029DC20,
-	0xA0014602, 0x00000002, 0x4029DC20, 0xA0014702, 0x00000002, 0x4029DC20,
-	0xA0014802, 0x00000002, 0x4029DC20, 0xA0014902,
-	// Block 31, offset 0x7c0
-	0x00000002, 0x4029DC20, 0xA0014A02, 0x00000002, 0x4029DC20, 0xA0014B02,
-	0x00000002, 0x4029DC20, 0xA0014C02, 0x00000002, 0x4029DC20, 0xA0014D02,
-	0x00000002, 0x4029DC20, 0xA0014E02, 0x00000002, 0x4029DC20, 0xA0014F02,
-	0x00000002, 0x4029DC20, 0xA0015002, 0x00000002, 0x4029DC20, 0xA0015102,
-	0x00000002, 0x4029DC20, 0xA0015202, 0x00000002, 0x4029DC20, 0xA0015302,
-	0x00000002, 0x4029DC20, 0xA0015402, 0x00000002, 0x4029DC20, 0xA0015502,
-	0x00000002, 0x4029DC20, 0xA0015602, 0x00000002, 0x0029DC84, 0xA0015604,
-	0x00000002, 0x4029DC20, 0xA0015702, 0x00000002, 0x4029DC20, 0xA0015802,
-	0x00000002, 0x4029DC20, 0xA0015902, 0x00000002, 0x4029DC20, 0xA0015A02,
-	0x00000002, 0x4029DC20, 0xA0015B02, 0x00000002, 0x4029DC20, 0xA0015C02,
-	0x00000002, 0x4029DC20, 0xA0015D02, 0x00000002,
-	// Block 32, offset 0x800
-	0x4029DC20, 0xA0015E02, 0x00000002, 0x4029DC20, 0xA0015F02, 0x00000002,
-	0x4029DC20, 0xA0016002, 0x00000002, 0x4029DC20, 0xA0016102, 0x00000002,
-	0x4029DC20, 0xA0016202, 0x00000002, 0x4029DC20, 0xA0016302, 0x00000002,
-	0x4029DC20, 0xA0016402, 0x00000002, 0x4029DC20, 0xA0016502, 0x00000002,
-	0x4029DC20, 0xA0016602, 0x00000002, 0x4029DC20, 0xA0016702, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002,
-	0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0017202, 0x00000002,
-	0x4029DC20, 0xA0017302, 0x00000002, 0x4029DC20, 0xA0017402, 0x00000002,
-	0x4029DC20, 0xA0017502, 0x00000002, 0x4029DC20,
-	// Block 33, offset 0x840
-	0xA0017702, 0x00000002, 0x0029DC86, 0x0029CC86, 0x00000002, 0x4029DE20,
-	0xA0013F02, 0x00000002, 0x4029DE20, 0xA0014002, 0x00000002, 0x4029DE20,
-	0xA0014102, 0x00000002, 0x4029DE20, 0xA0014202, 0x00000002, 0x4029DE20,
-	0xA0014302, 0x00000002, 0x4029DE20, 0xA0014402, 0x00000002, 0x4029DE20,
-	0xA0014502, 0x00000002, 0x4029DE20, 0xA0014602, 0x00000002, 0x4029DE20,
-	0xA0014702, 0x00000002, 0x4029DE20, 0xA0014802, 0x00000002, 0x4029DE20,
-	0xA0014902, 0x00000002, 0x4029DE20, 0xA0014A02, 0x00000002, 0x4029DE20,
-	0xA0014B02, 0x00000002, 0x4029DE20, 0xA0014C02, 0x00000002, 0x4029DE20,
-	0xA0014D02, 0x00000002, 0x4029DE20, 0xA0014E02, 0x00000002, 0x4029DE20,
-	0xA0014F02, 0x00000002, 0x4029DE20, 0xA0015002, 0x00000002, 0x4029DE20,
-	0xA0015102, 0x00000002, 0x4029DE20, 0xA0015202,
-	// Block 34, offset 0x880
-	0x00000002, 0x4029DE20, 0xA0015302, 0x00000002, 0x4029DE20, 0xA0015402,
-	0x00000002, 0x4029DE20, 0xA0015502, 0x00000002, 0x4029DE20, 0xA0015602,
-	0x00000002, 0x0029DE84, 0xA0015604, 0x00000002, 0x4029DE20, 0xA0015702,
-	0x00000002, 0x4029DE20, 0xA0015802, 0x00000002, 0x4029DE20, 0xA0015902,
-	0x00000002, 0x4029DE20, 0xA0015A02, 0x00000002, 0x4029DE20, 0xA0015B02,
-	0x00000002, 0x4029DE20, 0xA0015C02, 0x00000002, 0x4029DE20, 0xA0015D02,
-	0x00000002, 0x4029DE20, 0xA0015E02, 0x00000002, 0x4029DE20, 0xA0015F02,
-	0x00000002, 0x4029DE20, 0xA0016002, 0x00000002, 0x4029DE20, 0xA0016102,
-	0x00000002, 0x4029DE20, 0xA0016202, 0x00000002, 0x4029DE20, 0xA0016302,
-	0x00000002, 0x4029DE20, 0xA0016402, 0x00000002, 0x4029DE20, 0xA0016502,
-	0x00000002, 0x4029DE20, 0xA0016602, 0x00000002,
-	// Block 35, offset 0x8c0
-	0x4029DE20, 0xA0016702, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002,
-	0x4029DE20, 0xA0017202, 0x00000002, 0x4029DE20, 0xA0017302, 0x00000002,
-	0x4029DE20, 0xA0017402, 0x00000002, 0x4029DE20, 0xA0017502, 0x00000002,
-	0x4029DE20, 0xA0017702, 0x00000002, 0x402BDE20, 0xAE603202, 0x00000002,
-	0x002BDE88, 0xAE603202, 0x00000002, 0x402BDE20, 0xAE603502, 0x00000002,
-	0x002BDE88, 0xAE603502, 0x00000002, 0x402BDE20, 0xAE603702, 0x00000002,
-	0x002BDE88, 0xAE603702, 0x00000003, 0x402BDE20,
-	// Block 36, offset 0x900
-	0xAE603702, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE603202,
-	0x00000003, 0x402BDE20, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE88,
-	0xAE603702, 0xAE603502, 0x00000003, 0x402BDE20, 0xAE603702, 0xAE604E02,
-	0x00000003, 0x002BDE88, 0xAE603702, 0xAE604E02, 0x00000003, 0x402BDE20,
-	0xAE603702, 0xAE606402, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE606402,
-	0x00000002, 0x402BDE20, 0xAE603C02, 0x00000002, 0x002BDE88, 0xAE603C02,
-	0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BDE88,
-	0xAE603C02, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603502,
-	0x00000003, 0x002BDE88, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BDE20,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE604E02,
-	0x00000003, 0x402BDE20, 0xAE603C02, 0xAE606402,
-	// Block 37, offset 0x940
-	0x00000003, 0x002BDE88, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BDE20,
-	0xAE604102, 0x00000002, 0x002BDE88, 0xAE604102, 0x00000002, 0x402BDE20,
-	0xAE604302, 0x00000002, 0x002BDE88, 0xAE604302, 0x00000003, 0x402BDE20,
-	0xAE604302, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603202,
-	0x00000002, 0x402BDE20, 0xAE604702, 0x00000002, 0x002BDE88, 0xAE604702,
-	0x00000003, 0x402BDE20, 0xAE604702, 0xAE605B02, 0x00000003, 0x002BDE88,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402BDE20, 0xAE604E02, 0x00000002,
-	0x002BDE88, 0xAE604E02, 0x00000002, 0x402BDE20, 0xAE605202, 0x00000002,
-	0x002BDE88, 0xAE605202, 0x00000003, 0x402BDE20, 0xAE605202, 0xAE605B02,
-	0x00000003, 0x002BDE88, 0xAE605202, 0xAE605B02, 0x00000002, 0x402BDE20,
-	0xACA05902, 0x00000002, 0x002BDE88, 0xACA05902,
-	// Block 38, offset 0x980
-	0x00000002, 0x402BDE20, 0xAE605B02, 0x00000002, 0x002BDE88, 0xAE605B02,
-	0x00000002, 0x402BDE20, 0xAE606402, 0x00000002, 0x002BDE88, 0xAE606402,
-	0x00000002, 0x402BDE20, 0xAE606502, 0x00000002, 0x002BDE88, 0xAE606502,
-	0x00000002, 0x402BDE20, 0xAE606702, 0x00000002, 0x002BDE88, 0xAE606702,
-	0x00000002, 0x402BDE20, 0xADC07002, 0x00000002, 0x002BDE88, 0xADC07002,
-	0x00000003, 0x402BDE20, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE88,
-	0xADC07002, 0xAE603702, 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603C02,
-	0x00000003, 0x002BDE88, 0xADC07002, 0xAE603C02, 0x00000002, 0x402BDE20,
-	0xADC07602, 0x00000002, 0x002BDE88, 0xADC07602, 0x00000002, 0x84E615EF,
-	0xAE613904, 0x00000004, 0x002BDE9C, 0x0002E49C, 0x002E829C, 0x0002E49C,
-	0x00000003, 0x002BDE84, 0x0004E284, 0x002C3A84,
-	// Block 39, offset 0x9c0
-	0x00000003, 0x002BDE84, 0x0004E284, 0x002FE684, 0x00000003, 0x002BDE8A,
-	0x0004E284, 0x002FE68A, 0x00000003, 0x002BDE9D, 0x0009569C, 0x002E829C,
-	0x00000002, 0x002BDE84, 0x002BDE84, 0x00000002, 0x002BDE8A, 0x002BDE8A,
-	0x00000002, 0x002BDE9D, 0x002C0A9D, 0x00000003, 0x002BDE84, 0xA0013904,
-	0x002C9884, 0x00000003, 0x84E615EF, 0xAE613904, 0x84E6164C, 0x00000003,
-	0x002BDE8A, 0xA0013904, 0x002C988A, 0x00000003, 0x002BDE94, 0xA0013914,
-	0x002C9894, 0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603202,
-	0x00000004, 0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603202, 0x00000004,
-	0x002BDE84, 0xA0013904, 0x002C9884, 0xAE605B02, 0x00000004, 0x002BDE8A,
-	0xA0013904, 0x002C988A, 0xAE605B02, 0x00000002, 0x84E615EF, 0x84E61771,
-	0x00000002, 0x002BDE84, 0x002EE284, 0x00000002,
-	// Block 40, offset 0xa00
-	0x002BDE8A, 0x002EE28A, 0x00000002, 0x002BDE84, 0x00306C84, 0x00000002,
-	0x002BDE8A, 0x00306C8A, 0x00000002, 0x84E615EF, 0x84E6185F, 0x00000002,
-	0x002BDE84, 0x0030BE84, 0x00000002, 0x002BDE8A, 0x0030BE8A, 0x00000003,
-	0x002BDE84, 0xA0013904, 0x0030BE84, 0x00000003, 0x002BDE8A, 0xA0013904,
-	0x0030BE8A, 0x00000002, 0x002BDE84, 0x00310084, 0x00000002, 0x002BDE8A,
-	0x0031008A, 0x00000002, 0x402C0A20, 0xAE605202, 0x00000002, 0x002C0A88,
-	0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002, 0x002C0A88,
-	0xADC07002, 0x00000002, 0x402C0A20, 0xADC07B02, 0x00000002, 0x002C0A88,
-	0xADC07B02, 0x00000003, 0x002C0A9C, 0x002BDE9C, 0x002F7A9C, 0x00000002,
-	0x402C3A20, 0xAE603202, 0x00000002, 0x002C3A88, 0xAE603202, 0x00000002,
-	0x402C3A20, 0xAE603C02, 0x00000002, 0x002C3A88,
-	// Block 41, offset 0xa40
-	0xAE603C02, 0x00000002, 0x402C3A20, 0xAE604102, 0x00000002, 0x002C3A88,
-	0xAE604102, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000002, 0x002C3A88,
-	0xAE605202, 0x00000002, 0x402C3A20, 0xACA05602, 0x00000002, 0x84E6161D,
-	0xAE605604, 0x00000002, 0x002C3A88, 0xACA05602, 0x00000003, 0x402C3A20,
-	0xACA05602, 0xAE603202, 0x00000003, 0x002C3A88, 0xACA05602, 0xAE603202,
-	0x00000003, 0x002C3A84, 0x0004E284, 0x002EE284, 0x00000003, 0x002C3A84,
-	0x0004E284, 0x00306C84, 0x00000004, 0x002C3A9D, 0x0009569C, 0x002DFE9C,
-	0x002D229C, 0x00000003, 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000002,
-	0x002C3A9D, 0x002E229D, 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D09C,
-	0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D29C, 0x00000003, 0x002C3A9D,
-	0x002EE29C, 0x0002E49C, 0x00000004, 0x002C3A9D,
-	// Block 42, offset 0xa80
-	0x002EE29D, 0x002EE29D, 0x002E229D, 0x00000002, 0x402C6220, 0xAE604102,
-	0x00000002, 0x002C6288, 0xAE604102, 0x00000002, 0x402C6220, 0xAE605202,
-	0x00000002, 0x002C6288, 0xAE605202, 0x00000002, 0x402C6220, 0xACA05602,
-	0x00000002, 0x002C6288, 0xACA05602, 0x00000002, 0x402C6220, 0xADC07002,
-	0x00000002, 0x002C6288, 0xADC07002, 0x00000002, 0x402C6220, 0xADC07802,
-	0x00000002, 0x002C6288, 0xADC07802, 0x00000002, 0x402C6220, 0xADC07B02,
-	0x00000002, 0x002C6288, 0xADC07B02, 0x00000002, 0x402C6220, 0xA0007D02,
-	0x00000002, 0x002C6288, 0xA0007D02, 0x00000002, 0x002C6284, 0xA0013904,
-	0x00000002, 0x84E61631, 0xAE613904, 0x00000002, 0x002C628A, 0xA0013904,
-	0x00000002, 0x84E61631, 0xAE613A04, 0x00000002, 0x002C6284, 0xA0013A04,
-	0x00000002, 0x002C628A, 0xA0013A04, 0x00000002,
-	// Block 43, offset 0xac0
-	0x002C6284, 0x002C0A84, 0x00000003, 0x002C629C, 0x002E829C, 0x0029D09C,
-	0x00000003, 0x002C629C, 0x002E829C, 0x0029D29C, 0x00000002, 0x002C6284,
-	0x00312A84, 0x00000003, 0x002C6284, 0x00312A84, 0xA0004104, 0x00000003,
-	0x002C628A, 0x00312A84, 0xA0004104, 0x00000003, 0x002C628A, 0x00312A8A,
-	0xA0004104, 0x00000002, 0x002C6284, 0x00315084, 0x00000002, 0x002C6284,
-	0x00316484, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x002C9888,
-	0xAE603202, 0x00000002, 0x402C9820, 0xAE603502, 0x00000002, 0x002C9888,
-	0xAE603502, 0x00000002, 0x402C9820, 0xAE603702, 0x00000002, 0x002C9888,
-	0xAE603702, 0x00000002, 0x402C9820, 0xAE603C02, 0x00000002, 0x002C9888,
-	0xAE603C02, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE603202, 0x00000003,
-	0x002C9888, 0xAE603C02, 0xAE603202, 0x00000003,
-	// Block 44, offset 0xb00
-	0x402C9820, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE603C02,
-	0xAE603502, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE604E02, 0x00000003,
-	0x002C9888, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C9820, 0xAE603C02,
-	0xAE606402, 0x00000003, 0x002C9888, 0xAE603C02, 0xAE606402, 0x00000002,
-	0x402C9820, 0xAE604102, 0x00000002, 0x002C9888, 0xAE604102, 0x00000002,
-	0x402C9820, 0xAE604702, 0x00000002, 0x002C9888, 0xAE604702, 0x00000002,
-	0x402C9820, 0xAE604E02, 0x00000002, 0x002C9888, 0xAE604E02, 0x00000002,
-	0x402C9820, 0xAE605202, 0x00000002, 0x002C9888, 0xAE605202, 0x00000002,
-	0x402C9820, 0xACA05602, 0x00000002, 0x002C9888, 0xACA05602, 0x00000003,
-	0x402C9820, 0xACA05602, 0xAE603702, 0x00000003, 0x002C9888, 0xACA05602,
-	0xAE603702, 0x00000002, 0x402C9820, 0xACA05902,
-	// Block 45, offset 0xb40
-	0x00000002, 0x002C9888, 0xACA05902, 0x00000002, 0x402C9820, 0xAE605B02,
-	0x00000002, 0x002C9888, 0xAE605B02, 0x00000003, 0x402C9820, 0xAE605B02,
-	0xAE603202, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603202, 0x00000003,
-	0x402C9820, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE605B02,
-	0xAE603502, 0x00000002, 0x402C9820, 0xAE606402, 0x00000002, 0x002C9888,
-	0xAE606402, 0x00000002, 0x402C9820, 0xAE606502, 0x00000002, 0x002C9888,
-	0xAE606502, 0x00000002, 0x402C9820, 0xAE606702, 0x00000002, 0x002C9888,
-	0xAE606702, 0x00000002, 0x402C9820, 0xADC07002, 0x00000002, 0x002C9888,
-	0xADC07002, 0x00000003, 0x402C9820, 0xADC07002, 0xAE603C02, 0x00000003,
-	0x002C9888, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C9820, 0xADC07802,
-	0x00000002, 0x002C9888, 0xADC07802, 0x00000002,
-	// Block 46, offset 0xb80
-	0x402C9820, 0xADC07A02, 0x00000002, 0x002C9888, 0xADC07A02, 0x00000003,
-	0x002C989C, 0x002F7A9C, 0x002D229C, 0x00000002, 0x402D0820, 0xAE605202,
-	0x00000002, 0x002D0888, 0xAE605202, 0x00000002, 0x002D0884, 0xA0013A04,
-	0x00000002, 0x002D088A, 0xA0013A04, 0x00000003, 0x002D088A, 0x002BDE8A,
-	0x0030F68A, 0x00000003, 0x002D0884, 0x002D0884, 0x002D9A84, 0x00000003,
-	0x002D0884, 0x002D0884, 0x002E2284, 0x00000002, 0x002D0884, 0x002EDA84,
-	0x00000004, 0x002D089D, 0x002F7A9D, 0x002C989D, 0x002C989D, 0x00000002,
-	0x402D2220, 0xAE603202, 0x00000002, 0x002D2288, 0xAE603202, 0x00000002,
-	0x402D2220, 0xAE603702, 0x00000002, 0x002D2288, 0xAE603702, 0x00000002,
-	0x402D2220, 0xAE603C02, 0x00000002, 0x002D2288, 0xAE603C02, 0x00000002,
-	0x402D2220, 0xAE604102, 0x00000002, 0x002D2288,
-	// Block 47, offset 0xbc0
-	0xAE604102, 0x00000002, 0x402D2220, 0xAE605202, 0x00000002, 0x002D2288,
-	0xAE605202, 0x00000002, 0x402D2220, 0xACA05602, 0x00000002, 0x002D2288,
-	0xACA05602, 0x00000002, 0x402D2220, 0xAE605B02, 0x00000002, 0x002D2288,
-	0xAE605B02, 0x00000002, 0x002D2284, 0xA0006104, 0x00000002, 0x002D228A,
-	0xA0006104, 0x00000002, 0x002D2284, 0xA0013A04, 0x00000002, 0x002D228A,
-	0xA0013A04, 0x00000003, 0x002D229C, 0x002BDE9C, 0x002E229C, 0x00000003,
-	0x002D229D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002D229D, 0x002F2C9D,
-	0x002BDE9C, 0x00000002, 0x402D6820, 0xAE603C02, 0x00000002, 0x002D6888,
-	0xAE603C02, 0x00000002, 0x402D6820, 0xAE604102, 0x00000002, 0x002D6888,
-	0xAE604102, 0x00000002, 0x402D6820, 0xAE604702, 0x00000002, 0x002D6888,
-	0xAE604702, 0x00000002, 0x402D6820, 0xAE605202,
-	// Block 48, offset 0xc00
-	0x00000002, 0x002D6888, 0xAE605202, 0x00000002, 0x402D6820, 0xACA05602,
-	0x00000002, 0x002D6888, 0xACA05602, 0x00000002, 0x402D6820, 0xADC07002,
-	0x00000002, 0x002D6888, 0xADC07002, 0x00000002, 0x402D6820, 0xADC07902,
-	0x00000002, 0x002D6888, 0xADC07902, 0x00000002, 0x402D6820, 0xADC07B02,
-	0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6888, 0xA0007D02,
-	0x00000003, 0x002D689C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402D9A20,
-	0xAE603202, 0x00000002, 0x002D9A88, 0xAE603202, 0x00000002, 0x402D9A20,
-	0xAE603502, 0x00000002, 0x002D9A88, 0xAE603502, 0x00000002, 0x402D9A20,
-	0xAE603702, 0x00000002, 0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20,
-	0xAE603C02, 0x00000002, 0x002D9A88, 0xAE603C02, 0x00000002, 0x402D9A20,
-	0xAE604102, 0x00000002, 0x002D9A88, 0xAE604102,
-	// Block 49, offset 0xc40
-	0x00000002, 0x402D9A20, 0xAE604702, 0x00000002, 0x002D9A88, 0xAE604702,
-	0x00000003, 0x402D9A20, 0xAE604702, 0xAE603202, 0x00000003, 0x002D9A88,
-	0xAE604702, 0xAE603202, 0x00000002, 0x402D9A20, 0xAE604E02, 0x00000002,
-	0x002D9A88, 0xAE604E02, 0x00000002, 0x002D9A88, 0xAE605202, 0x00000002,
-	0x402D9A20, 0xACA05902, 0x00000002, 0x002D9A88, 0xACA05902, 0x00000002,
-	0x402D9A20, 0xAE605B02, 0x00000002, 0x002D9A88, 0xAE605B02, 0x00000002,
-	0x402D9A20, 0xAE606402, 0x00000002, 0x002D9A88, 0xAE606402, 0x00000002,
-	0x402D9A20, 0xAE606502, 0x00000002, 0x002D9A88, 0xAE606502, 0x00000002,
-	0x402D9A20, 0xAE606702, 0x00000002, 0x002D9A88, 0xAE606702, 0x00000002,
-	0x402D9A20, 0xADC07002, 0x00000002, 0x002D9A88, 0xADC07002, 0x00000002,
-	0x402D9A20, 0xADC07A02, 0x00000002, 0x002D9A88,
-	// Block 50, offset 0xc80
-	0xADC07A02, 0x00000002, 0x002D9A9D, 0x002C3A9D, 0x00000002, 0x002D9A9D,
-	0x002C629D, 0x00000002, 0x402DCC20, 0xAE603C02, 0x00000002, 0x002DCC88,
-	0xAE603C02, 0x00000002, 0x402DCC20, 0xAE604102, 0x00000002, 0x402DFE20,
-	0xAE603202, 0x00000002, 0x002DFE88, 0xAE603202, 0x00000002, 0x402DFE20,
-	0xAE604102, 0x00000002, 0x002DFE88, 0xAE604102, 0x00000002, 0x402DFE20,
-	0xACA05602, 0x00000002, 0x002DFE88, 0xACA05602, 0x00000002, 0x002DFE84,
-	0xA0006104, 0x00000002, 0x002DFE8A, 0xA0006104, 0x00000002, 0x402DFE20,
-	0xADC07002, 0x00000002, 0x002DFE88, 0xADC07002, 0x00000002, 0x402DFE20,
-	0xADC07B02, 0x00000002, 0x002DFE88, 0xADC07B02, 0x00000004, 0x002DFE9C,
-	0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000003, 0x002DFE9C, 0x002D689D,
-	0x00312A9C, 0x00000003, 0x002DFE9C, 0x002E829C,
-	// Block 51, offset 0xcc0
-	0x0029D09C, 0x00000003, 0x002DFE9C, 0x002E829C, 0x0029D29C, 0x00000003,
-	0x002DFE9C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E2220, 0xAE603202,
-	0x00000002, 0x002E2288, 0xAE603202, 0x00000002, 0x402E2220, 0xAE604102,
-	0x00000002, 0x002E2288, 0xAE604102, 0x00000002, 0x402E2220, 0xACA05602,
-	0x00000002, 0x002E2288, 0xACA05602, 0x00000002, 0x402E2220, 0xADC07002,
-	0x00000002, 0x002E2288, 0xADC07002, 0x00000003, 0x402E2220, 0xADC07002,
-	0xAE605B02, 0x00000003, 0x002E2288, 0xADC07002, 0xAE605B02, 0x00000002,
-	0x402E2220, 0xADC07802, 0x00000002, 0x002E2288, 0xADC07802, 0x00000002,
-	0x402E2220, 0xADC07B02, 0x00000002, 0x002E2288, 0xADC07B02, 0x00000002,
-	0x402E2220, 0xA0007D02, 0x00000002, 0x002E2288, 0xA0007D02, 0x00000002,
-	0x402E2220, 0xA0013902, 0x00000002, 0x402E2220,
-	// Block 52, offset 0xd00
-	0xA0013902, 0x00000002, 0x002E2288, 0xA0013902, 0x00000002, 0x002E2288,
-	0xA0013902, 0x00000002, 0x002E2284, 0x002E2284, 0x00000002, 0x002E228A,
-	0x002E228A, 0x00000003, 0x002E229C, 0x002EE29C, 0x002D229C, 0x00000002,
-	0x002E2284, 0x002FE684, 0x00000003, 0x002E229D, 0x00302C9D, 0x002C629D,
-	0x00000002, 0x002E2284, 0x00312A84, 0x00000002, 0x402E8220, 0xAE603202,
-	0x00000002, 0x002E8288, 0xAE603202, 0x00000002, 0x402E8220, 0xAE605202,
-	0x00000002, 0x002E8288, 0xAE605202, 0x00000002, 0x402E8220, 0xADC07002,
-	0x00000002, 0x002E8288, 0xADC07002, 0x00000003, 0x002E829C, 0x0009569C,
-	0x002FE69C, 0x00000004, 0x002E829C, 0x0009569C, 0x002FE69C, 0x0029D09C,
-	0x00000003, 0x002E829D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002E829C,
-	0x002D9A9C, 0x002E229C, 0x00000003, 0x002E829C,
-	// Block 53, offset 0xd40
-	0x002E829C, 0x0029D09C, 0x00000003, 0x002E829C, 0x002E829C, 0x0029D29C,
-	0x00000003, 0x002E829C, 0x002EE29C, 0x002E229C, 0x00000003, 0x002E829D,
-	0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E9E20, 0xAE603202, 0x00000002,
-	0x002E9E88, 0xAE603202, 0x00000002, 0x402E9E20, 0xAE603502, 0x00000002,
-	0x002E9E88, 0xAE603502, 0x00000002, 0x402E9E20, 0xAE604102, 0x00000002,
-	0x002E9E88, 0xAE604102, 0x00000002, 0x402E9E20, 0xAE604E02, 0x00000002,
-	0x002E9E88, 0xAE604E02, 0x00000002, 0x402E9E20, 0xAE605202, 0x00000002,
-	0x002E9E88, 0xAE605202, 0x00000002, 0x402E9E20, 0xACA05602, 0x00000002,
-	0x002E9E88, 0xACA05602, 0x00000002, 0x002E9E84, 0xA0006104, 0x00000002,
-	0x002E9E8A, 0xA0006104, 0x00000002, 0x402E9E20, 0xADC07002, 0x00000002,
-	0x002E9E88, 0xADC07002, 0x00000002, 0x402E9E20,
-	// Block 54, offset 0xd80
-	0xADC07802, 0x00000002, 0x002E9E88, 0xADC07802, 0x00000002, 0x402E9E20,
-	0xADC07B02, 0x00000002, 0x002E9E88, 0xADC07B02, 0x00000003, 0x002E9E9D,
-	0x002C989D, 0x0030E29D, 0x00000002, 0x002E9E9D, 0x002D229D, 0x00000002,
-	0x402EE220, 0xAE603202, 0x00000002, 0x002EE288, 0xAE603202, 0x00000002,
-	0x402EE220, 0xAE603502, 0x00000002, 0x002EE288, 0xAE603502, 0x00000002,
-	0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, 0xAE603702, 0x00000002,
-	0x402EE220, 0xAE603C02, 0x00000002, 0x002EE288, 0xAE603C02, 0x00000003,
-	0x402EE220, 0xAE603C02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE603C02,
-	0xAE603202, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x002EE288, 0xAE603C02, 0xAE603502, 0x00000003, 0x402EE220, 0xAE603C02,
-	0xAE604E02, 0x00000003, 0x002EE288, 0xAE603C02,
-	// Block 55, offset 0xdc0
-	0xAE604E02, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE606402, 0x00000003,
-	0x002EE288, 0xAE603C02, 0xAE606402, 0x00000002, 0x402EE220, 0xAE604102,
-	0x00000002, 0x002EE288, 0xAE604102, 0x00000002, 0x402EE220, 0xAE604702,
-	0x00000002, 0x002EE288, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604702,
-	0xAE605B02, 0x00000003, 0x002EE288, 0xAE604702, 0xAE605B02, 0x00000002,
-	0x402EE220, 0xAE604D02, 0x00000002, 0x002EE288, 0xAE604D02, 0x00000002,
-	0x402EE220, 0xAE604E02, 0x00000002, 0x002EE288, 0xAE604E02, 0x00000003,
-	0x402EE220, 0xAE604E02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE604E02,
-	0xAE603202, 0x00000003, 0x402EE220, 0xAE604E02, 0xAE604702, 0x00000003,
-	0x002EE288, 0xAE604E02, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604E02,
-	0xAE605B02, 0x00000003, 0x002EE288, 0xAE604E02,
-	// Block 56, offset 0xe00
-	0xAE605B02, 0x00000002, 0x402EE220, 0xAE605202, 0x00000002, 0x002EE288,
-	0xAE605202, 0x00000003, 0x402EE220, 0xAE605202, 0xAE605B02, 0x00000003,
-	0x002EE288, 0xAE605202, 0xAE605B02, 0x00000002, 0x402EE220, 0xA0005402,
-	0x00000002, 0x002EE288, 0xA0005402, 0x00000003, 0x402EE220, 0xA0005402,
-	0xAE603202, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603202, 0x00000002,
-	0x402EE220, 0xACA05902, 0x00000002, 0x002EE288, 0xACA05902, 0x00000003,
-	0x402EE220, 0xACA05902, 0xAE605B02, 0x00000003, 0x002EE288, 0xACA05902,
-	0xAE605B02, 0x00000002, 0x402EE220, 0xAE605B02, 0x00000002, 0x002EE288,
-	0xAE605B02, 0x00000003, 0x402EE220, 0xAE605B02, 0xAE603202, 0x00000003,
-	0x002EE288, 0xAE605B02, 0xAE603202, 0x00000003, 0x402EE220, 0xAE605B02,
-	0xAE603502, 0x00000003, 0x002EE288, 0xAE605B02,
-	// Block 57, offset 0xe40
-	0xAE603502, 0x00000002, 0x402EE220, 0xAE606402, 0x00000002, 0x002EE288,
-	0xAE606402, 0x00000002, 0x402EE220, 0xAE606502, 0x00000002, 0x002EE288,
-	0xAE606502, 0x00000002, 0x402EE220, 0xAE606702, 0x00000002, 0x002EE288,
-	0xAE606702, 0x00000002, 0x402EE220, 0xAD806802, 0x00000002, 0x002EE288,
-	0xAD806802, 0x00000003, 0x402EE220, 0xAD806802, 0xAE603202, 0x00000003,
-	0x002EE288, 0xAD806802, 0xAE603202, 0x00000003, 0x402EE220, 0xAD806802,
-	0xAE603502, 0x00000003, 0x002EE288, 0xAD806802, 0xAE603502, 0x00000003,
-	0x402EE220, 0xAD806802, 0xAE604E02, 0x00000003, 0x002EE288, 0xAD806802,
-	0xAE604E02, 0x00000003, 0x402EE220, 0xAD806802, 0xAE606402, 0x00000003,
-	0x002EE288, 0xAD806802, 0xAE606402, 0x00000003, 0x402EE220, 0xAD806802,
-	0xADC07002, 0x00000003, 0x002EE288, 0xAD806802,
-	// Block 58, offset 0xe80
-	0xADC07002, 0x00000002, 0x402EE220, 0xADC07002, 0x00000002, 0x002EE288,
-	0xADC07002, 0x00000003, 0x402EE220, 0xADC07002, 0xAE603C02, 0x00000003,
-	0x002EE288, 0xADC07002, 0xAE603C02, 0x00000003, 0x002EE284, 0xA0013904,
-	0x002C9884, 0x00000003, 0x002EE28A, 0xA0013904, 0x002C988A, 0x00000003,
-	0x002EE294, 0xA0013914, 0x002C9894, 0x00000002, 0x002EE29D, 0x002DFE9D,
-	0x00000002, 0x002EE284, 0x002EE284, 0x00000002, 0x002EE28A, 0x002EE28A,
-	0x00000002, 0x402F2C20, 0xAE603202, 0x00000002, 0x002F2C88, 0xAE603202,
-	0x00000002, 0x402F2C20, 0xAE605202, 0x00000002, 0x002F2C88, 0xAE605202,
-	0x00000004, 0x002F2C9C, 0x0002E49C, 0x002E829C, 0x0002E49C, 0x00000002,
-	0x002F2C9D, 0x002BDE9D, 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x002E829D,
-	0x00000003, 0x002F2C9D, 0x002F2C9D, 0x0030BE9D,
-	// Block 59, offset 0xec0
-	0x00000003, 0x002F2C9D, 0x00302C9D, 0x002C989D, 0x00000002, 0x002F5684,
-	0x002F2C84, 0x00000002, 0x402F7A20, 0xAE603202, 0x00000002, 0x002F7A88,
-	0xAE603202, 0x00000002, 0x402F7A20, 0xAE604102, 0x00000002, 0x002F7A88,
-	0xAE604102, 0x00000002, 0x402F7A20, 0xAE605202, 0x00000002, 0x002F7A88,
-	0xAE605202, 0x00000002, 0x402F7A20, 0xACA05602, 0x00000002, 0x002F7A88,
-	0xACA05602, 0x00000002, 0x002F7A84, 0xA0006104, 0x00000002, 0x002F7A8A,
-	0xA0006104, 0x00000002, 0x402F7A20, 0xAE606502, 0x00000002, 0x002F7A88,
-	0xAE606502, 0x00000002, 0x402F7A20, 0xAE606702, 0x00000002, 0x002F7A88,
-	0xAE606702, 0x00000002, 0x402F7A20, 0xADC07002, 0x00000002, 0x002F7A88,
-	0xADC07002, 0x00000003, 0x402F7A20, 0xADC07002, 0xAE605B02, 0x00000003,
-	0x002F7A88, 0xADC07002, 0xAE605B02, 0x00000002,
-	// Block 60, offset 0xf00
-	0x402F7A20, 0xADC07B02, 0x00000002, 0x002F7A88, 0xADC07B02, 0x00000002,
-	0x002F7A84, 0xA0013A04, 0x00000002, 0x002F7A8A, 0xA0013A04, 0x00000003,
-	0x002F7A9C, 0x002BDE9C, 0x002C629C, 0x00000005, 0x002F7A9C, 0x002BDE9C,
-	0x002C629C, 0x0009569C, 0x002FE69C, 0x00000006, 0x002F7A9C, 0x002BDE9C,
-	0x002C629C, 0x0009569C, 0x002FE69C, 0x0029D09C, 0x00000002, 0x402FE620,
-	0xAE603202, 0x00000002, 0x002FE688, 0xAE603202, 0x00000003, 0x402FE620,
-	0xAE603202, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603202, 0xAE605202,
-	0x00000002, 0x402FE620, 0xAE603C02, 0x00000002, 0x002FE688, 0xAE603C02,
-	0x00000002, 0x402FE620, 0xAE604102, 0x00000002, 0x002FE688, 0xAE604102,
-	0x00000003, 0x402FE620, 0xAE604102, 0xAE605202, 0x00000003, 0x002FE688,
-	0xAE604102, 0xAE605202, 0x00000002, 0x402FE620,
-	// Block 61, offset 0xf40
-	0xAE605202, 0x00000002, 0x002FE688, 0xAE605202, 0x00000002, 0x402FE620,
-	0xACA05602, 0x00000002, 0x002FE688, 0xACA05602, 0x00000002, 0x002FE684,
-	0xA0006104, 0x00000002, 0x002FE68A, 0xA0006104, 0x00000002, 0x402FE620,
-	0xADC07002, 0x00000002, 0x002FE688, 0xADC07002, 0x00000003, 0x402FE620,
-	0xADC07002, 0xAE605202, 0x00000003, 0x002FE688, 0xADC07002, 0xAE605202,
-	0x00000002, 0x402FE620, 0xADC07702, 0x00000002, 0x002FE688, 0xADC07702,
-	0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x84E617F3, 0xAE613A04,
-	0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x002FE68A, 0xA0013A04,
-	0x00000003, 0x002FE684, 0xA0013A04, 0xAE605202, 0x00000002, 0x002FE69D,
-	0x002BDE9D, 0x00000003, 0x002FE69D, 0x002EE29D, 0x002FE69D, 0x00000003,
-	0x002FE684, 0xA0013904, 0x002FE684, 0x00000003,
-	// Block 62, offset 0xf80
-	0x002FE68A, 0xA0013904, 0x002FE68A, 0x00000003, 0x002FE684, 0xA0013A04,
-	0x00302C84, 0x00000002, 0x40302C20, 0xAE604102, 0x00000002, 0x00302C88,
-	0xAE604102, 0x00000002, 0x40302C20, 0xAE604702, 0x00000002, 0x40302C20,
-	0xAE605202, 0x00000002, 0x00302C88, 0xAE605202, 0x00000002, 0x40302C20,
-	0xACA05602, 0x00000002, 0x00302C88, 0xACA05602, 0x00000002, 0x40302C20,
-	0xADC07002, 0x00000002, 0x00302C88, 0xADC07002, 0x00000002, 0x40302C20,
-	0xADC07702, 0x00000002, 0x00302C88, 0xADC07702, 0x00000002, 0x40302C20,
-	0xADC07802, 0x00000002, 0x00302C88, 0xADC07802, 0x00000002, 0x40302C20,
-	0xADC07B02, 0x00000002, 0x00302C88, 0xADC07B02, 0x00000002, 0x00302C84,
-	0xA0013A04, 0x00000002, 0x00302C8A, 0xA0013A04, 0x00000002, 0x00302C84,
-	0x002C5684, 0x00000003, 0x00302C8A, 0x002C988A,
-	// Block 63, offset 0xfc0
-	0x002E228A, 0x00000003, 0x00302C84, 0xA0013904, 0x002D6884, 0x00000003,
-	0x00302C9D, 0x002D689D, 0x00312A9C, 0x00000002, 0x00302C84, 0x002FE684,
-	0x00000002, 0x00302C84, 0x002FE684, 0x00000002, 0x00302C84, 0x00300884,
-	0x00000002, 0x00302C84, 0x00312A84, 0x00000002, 0x00302C8A, 0x00312A84,
-	0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x00306C88, 0xAE603202,
-	0x00000002, 0x40306C20, 0xAE603502, 0x00000002, 0x00306C88, 0xAE603502,
-	0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702,
-	0x00000002, 0x40306C20, 0xAE603C02, 0x00000002, 0x00306C88, 0xAE603C02,
-	0x00000002, 0x40306C20, 0xAE604102, 0x00000002, 0x00306C88, 0xAE604102,
-	0x00000002, 0x40306C20, 0xAE604302, 0x00000002, 0x00306C88, 0xAE604302,
-	0x00000002, 0x40306C20, 0xAE604702, 0x00000002,
-	// Block 64, offset 0x1000
-	0x00306C88, 0xAE604702, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603202,
-	0x00000003, 0x00306C88, 0xAE604702, 0xAE603202, 0x00000003, 0x40306C20,
-	0xAE604702, 0xAE603502, 0x00000003, 0x00306C88, 0xAE604702, 0xAE603502,
-	0x00000003, 0x40306C20, 0xAE604702, 0xAE604102, 0x00000003, 0x00306C88,
-	0xAE604702, 0xAE604102, 0x00000003, 0x40306C20, 0xAE604702, 0xAE605B02,
-	0x00000003, 0x00306C88, 0xAE604702, 0xAE605B02, 0x00000002, 0x40306C20,
-	0xAE604D02, 0x00000002, 0x00306C88, 0xAE604D02, 0x00000002, 0x40306C20,
-	0xAE604E02, 0x00000002, 0x00306C88, 0xAE604E02, 0x00000003, 0x40306C20,
-	0xAE604E02, 0xAE603202, 0x00000003, 0x00306C88, 0xAE604E02, 0xAE603202,
-	0x00000002, 0x40306C20, 0xACA05902, 0x00000002, 0x00306C88, 0xACA05902,
-	0x00000002, 0x40306C20, 0xAE605B02, 0x00000002,
-	// Block 65, offset 0x1040
-	0x00306C88, 0xAE605B02, 0x00000003, 0x40306C20, 0xAE605B02, 0xAE604702,
-	0x00000003, 0x00306C88, 0xAE605B02, 0xAE604702, 0x00000002, 0x40306C20,
-	0xAE606402, 0x00000002, 0x00306C88, 0xAE606402, 0x00000002, 0x40306C20,
-	0xAE606502, 0x00000002, 0x00306C88, 0xAE606502, 0x00000002, 0x40306C20,
-	0xAE606702, 0x00000002, 0x00306C88, 0xAE606702, 0x00000002, 0x40306C20,
-	0xAD806802, 0x00000002, 0x00306C88, 0xAD806802, 0x00000003, 0x40306C20,
-	0xAD806802, 0xAE603202, 0x00000003, 0x00306C88, 0xAD806802, 0xAE603202,
-	0x00000003, 0x40306C20, 0xAD806802, 0xAE603502, 0x00000003, 0x00306C88,
-	0xAD806802, 0xAE603502, 0x00000003, 0x40306C20, 0xAD806802, 0xAE604E02,
-	0x00000003, 0x00306C88, 0xAD806802, 0xAE604E02, 0x00000003, 0x40306C20,
-	0xAD806802, 0xAE606402, 0x00000003, 0x00306C88,
-	// Block 66, offset 0x1080
-	0xAD806802, 0xAE606402, 0x00000003, 0x40306C20, 0xAD806802, 0xADC07002,
-	0x00000003, 0x00306C88, 0xAD806802, 0xADC07002, 0x00000002, 0x40306C20,
-	0xADC07002, 0x00000002, 0x00306C88, 0xADC07002, 0x00000002, 0x40306C20,
-	0xADC07502, 0x00000002, 0x00306C88, 0xADC07502, 0x00000002, 0x40306C20,
-	0xADC07802, 0x00000002, 0x00306C88, 0xADC07802, 0x00000002, 0x40306C20,
-	0xADC07A02, 0x00000002, 0x00306C88, 0xADC07A02, 0x00000003, 0x00306C9D,
-	0x002F2C9D, 0x0002BA9C, 0x00000002, 0x4030BE20, 0xAE604E02, 0x00000002,
-	0x0030BE88, 0xAE604E02, 0x00000002, 0x4030BE20, 0xADC07002, 0x00000002,
-	0x0030BE88, 0xADC07002, 0x00000003, 0x0030BE9D, 0x0009569C, 0x002E829C,
-	0x00000004, 0x0030BE84, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000004,
-	0x0030BE8A, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F,
-	// Block 67, offset 0x10c0
-	0x00000002, 0x0030BE9D, 0x002FE69D, 0x00000002, 0x0030BE84, 0x00310084,
-	0x00000002, 0x0030BE8A, 0x0031008A, 0x00000002, 0x4030E220, 0xAE603202,
-	0x00000002, 0x0030E288, 0xAE603202, 0x00000002, 0x4030E220, 0xAE603502,
-	0x00000002, 0x0030E288, 0xAE603502, 0x00000002, 0x4030E220, 0xAE603C02,
-	0x00000002, 0x0030E288, 0xAE603C02, 0x00000002, 0x4030E220, 0xAE604302,
-	0x00000002, 0x4030E220, 0xAE604702, 0x00000002, 0x0030E288, 0xAE604702,
-	0x00000002, 0x4030E220, 0xAE605202, 0x00000002, 0x0030E288, 0xAE605202,
-	0x00000002, 0x4030E220, 0xADC07002, 0x00000002, 0x0030E288, 0xADC07002,
-	0x00000002, 0x0030E29D, 0x002C3A9D, 0x00000002, 0x4030F620, 0xAE604702,
-	0x00000002, 0x0030F688, 0xAE604702, 0x00000002, 0x4030F620, 0xAE605202,
-	0x00000002, 0x0030F688, 0xAE605202, 0x00000002,
-	// Block 68, offset 0x1100
-	0x40310020, 0xAE603202, 0x00000002, 0x00310088, 0xAE603202, 0x00000002,
-	0x40310020, 0xAE603502, 0x00000002, 0x00310088, 0xAE603502, 0x00000002,
-	0x40310020, 0xAE603C02, 0x00000002, 0x00310088, 0xAE603C02, 0x00000002,
-	0x40310020, 0xAE604302, 0x00000002, 0x40310020, 0xAE604702, 0x00000002,
-	0x00310088, 0xAE604702, 0x00000002, 0x40310020, 0xAE604E02, 0x00000002,
-	0x00310088, 0xAE604E02, 0x00000002, 0x40310020, 0xAE605202, 0x00000002,
-	0x00310088, 0xAE605202, 0x00000002, 0x40310020, 0xAE605B02, 0x00000002,
-	0x00310088, 0xAE605B02, 0x00000002, 0x40310020, 0xAE606402, 0x00000002,
-	0x00310088, 0xAE606402, 0x00000002, 0x40310020, 0xADC07002, 0x00000002,
-	0x00310088, 0xADC07002, 0x00000002, 0x40312A20, 0xAE603202, 0x00000002,
-	0x00312A88, 0xAE603202, 0x00000002, 0x40312A20,
-	// Block 69, offset 0x1140
-	0xAE603C02, 0x00000002, 0x00312A88, 0xAE603C02, 0x00000002, 0x40312A20,
-	0xAE604102, 0x00000002, 0x00312A88, 0xAE604102, 0x00000002, 0x40312A20,
-	0xAE605202, 0x00000002, 0x00312A88, 0xAE605202, 0x00000002, 0x40312A20,
-	0xADC07002, 0x00000002, 0x00312A88, 0xADC07002, 0x00000002, 0x40312A20,
-	0xADC07B02, 0x00000002, 0x00312A88, 0xADC07B02, 0x00000002, 0x00312A84,
-	0x0030E284, 0x00000002, 0x40316420, 0xAE604102, 0x00000002, 0x00316488,
-	0xAE604102, 0x00000002, 0x40325220, 0xAE602202, 0x00000002, 0x00325288,
-	0xAE602202, 0x00000003, 0x40325220, 0xAE602202, 0xAE603202, 0x00000003,
-	0x00325288, 0xAE602202, 0xAE603202, 0x00000004, 0x40325220, 0xAE602202,
-	0xAE603202, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603202,
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602202,
-	// Block 70, offset 0x1180
-	0xAE603502, 0x00000003, 0x00325288, 0xAE602202, 0xAE603502, 0x00000004,
-	0x40325220, 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288,
-	0xAE602202, 0xAE603502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202,
-	0xAE604502, 0x00000003, 0x00325288, 0xAE602202, 0xAE604502, 0x00000004,
-	0x40325220, 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288,
-	0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202,
-	0xAF007F02, 0x00000003, 0x00325288, 0xAE602202, 0xAF007F02, 0x00000002,
-	0x40325220, 0xAE602A02, 0x00000002, 0x00325288, 0xAE602A02, 0x00000003,
-	0x40325220, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325288, 0xAE602A02,
-	0xAE603202, 0x00000004, 0x40325220, 0xAE602A02, 0xAE603202, 0xAF007F02,
-	0x00000004, 0x00325288, 0xAE602A02, 0xAE603202,
-	// Block 71, offset 0x11c0
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603502, 0x00000003,
-	0x00325288, 0xAE602A02, 0xAE603502, 0x00000004, 0x40325220, 0xAE602A02,
-	0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE603502,
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE604502, 0x00000003,
-	0x00325288, 0xAE602A02, 0xAE604502, 0x00000004, 0x40325220, 0xAE602A02,
-	0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE604502,
-	0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAF007F02, 0x00000003,
-	0x00325288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603202,
-	0x00000002, 0x00325288, 0xAE603202, 0x00000003, 0x40325220, 0xAE603202,
-	0xAF007F02, 0x00000002, 0x40325220, 0xAE603502, 0x00000002, 0x00325288,
-	0xAE603502, 0x00000003, 0x40325220, 0xAE603502,
-	// Block 72, offset 0x1200
-	0xAF007F02, 0x00000002, 0x40325220, 0xAE603702, 0x00000002, 0x00325288,
-	0xAE603702, 0x00000002, 0x40325220, 0xAE604502, 0x00000003, 0x40325220,
-	0xAE604502, 0xAF007F02, 0x00000002, 0x40325220, 0xAE605B02, 0x00000002,
-	0x00325288, 0xAE605B02, 0x00000002, 0x40325220, 0xAF007F02, 0x00000002,
-	0x00325288, 0xAF007F02, 0x00000002, 0x40325C20, 0xAE602202, 0x00000002,
-	0x00325C88, 0xAE602202, 0x00000003, 0x40325C20, 0xAE602202, 0xAE603202,
-	0x00000003, 0x00325C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40325C20,
-	0xAE602202, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602202, 0xAE603502,
-	0x00000002, 0x40325C20, 0xAE602A02, 0x00000002, 0x00325C88, 0xAE602A02,
-	0x00000003, 0x40325C20, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325C88,
-	0xAE602A02, 0xAE603202, 0x00000003, 0x40325C20,
-	// Block 73, offset 0x1240
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603502,
-	0x00000002, 0x40325C20, 0xAE603202, 0x00000002, 0x00325C88, 0xAE603202,
-	0x00000002, 0x40325C20, 0xAE603502, 0x00000002, 0x00325C88, 0xAE603502,
-	0x00000002, 0x40326820, 0xAE602202, 0x00000002, 0x00326888, 0xAE602202,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE603202, 0x00000003, 0x00326888,
-	0xAE602202, 0xAE603202, 0x00000004, 0x40326820, 0xAE602202, 0xAE603202,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603202, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE603502, 0x00000003, 0x00326888,
-	0xAE602202, 0xAE603502, 0x00000004, 0x40326820, 0xAE602202, 0xAE603502,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603502, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE604502,
-	// Block 74, offset 0x1280
-	0x00000003, 0x00326888, 0xAE602202, 0xAE604502, 0x00000004, 0x40326820,
-	0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202,
-	0xAE604502, 0xAF007F02, 0x00000003, 0x40326820, 0xAE602202, 0xAF007F02,
-	0x00000003, 0x00326888, 0xAE602202, 0xAF007F02, 0x00000002, 0x40326820,
-	0xAE602A02, 0x00000002, 0x00326888, 0xAE602A02, 0x00000003, 0x40326820,
-	0xAE602A02, 0xAE603202, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603202,
-	0x00000004, 0x40326820, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000004,
-	0x00326888, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, 0x40326820,
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603502,
-	0x00000004, 0x40326820, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000004,
-	0x00326888, 0xAE602A02, 0xAE603502, 0xAF007F02,
-	// Block 75, offset 0x12c0
-	0x00000003, 0x40326820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326888,
-	0xAE602A02, 0xAE604502, 0x00000004, 0x40326820, 0xAE602A02, 0xAE604502,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE604502, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602A02, 0xAF007F02, 0x00000003, 0x00326888,
-	0xAE602A02, 0xAF007F02, 0x00000002, 0x40326820, 0xAE603202, 0x00000002,
-	0x00326888, 0xAE603202, 0x00000003, 0x40326820, 0xAE603202, 0xAF007F02,
-	0x00000002, 0x40326820, 0xAE603502, 0x00000002, 0x00326888, 0xAE603502,
-	0x00000003, 0x40326820, 0xAE603502, 0xAF007F02, 0x00000002, 0x40326820,
-	0xAE604502, 0x00000003, 0x40326820, 0xAE604502, 0xAF007F02, 0x00000002,
-	0x40326820, 0xAF007F02, 0x00000002, 0x00326888, 0xAF007F02, 0x00000002,
-	0x40326C20, 0xAE602202, 0x00000002, 0x00326C88,
-	// Block 76, offset 0x1300
-	0xAE602202, 0x00000003, 0x40326C20, 0xAE602202, 0xAE603202, 0x00000003,
-	0x00326C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602202,
-	0xAE603502, 0x00000003, 0x00326C88, 0xAE602202, 0xAE603502, 0x00000003,
-	0x40326C20, 0xAE602202, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602202,
-	0xAE604502, 0x00000002, 0x40326C20, 0xAE602A02, 0x00000002, 0x00326C88,
-	0xAE602A02, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603202, 0x00000003,
-	0x00326C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602A02,
-	0xAE603502, 0x00000003, 0x00326C88, 0xAE602A02, 0xAE603502, 0x00000003,
-	0x40326C20, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602A02,
-	0xAE604502, 0x00000002, 0x40326C20, 0xAE603202, 0x00000002, 0x00326C88,
-	0xAE603202, 0x00000002, 0x40326C20, 0xAE603502,
-	// Block 77, offset 0x1340
-	0x00000002, 0x00326C88, 0xAE603502, 0x00000002, 0x40326C20, 0xAE603702,
-	0x00000002, 0x00326C88, 0xAE603702, 0x00000002, 0x40326C20, 0xAE604502,
-	0x00000002, 0x40326C20, 0xAE604702, 0x00000002, 0x00326C88, 0xAE604702,
-	0x00000003, 0x40326C20, 0xAE604702, 0xAE603202, 0x00000003, 0x40326C20,
-	0xAE604702, 0xAE603502, 0x00000003, 0x40326C20, 0xAE604702, 0xAE604502,
-	0x00000002, 0x40326C20, 0xAE605B02, 0x00000002, 0x00326C88, 0xAE605B02,
-	0x00000003, 0x00327084, 0x00325284, 0x00326C84, 0x00000003, 0x0032708A,
-	0x00325284, 0x00326C84, 0x00000002, 0x40327C20, 0xAE602202, 0x00000002,
-	0x00327C88, 0xAE602202, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603202,
-	0x00000003, 0x00327C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40327C20,
-	0xAE602202, 0xAE603502, 0x00000003, 0x00327C88,
-	// Block 78, offset 0x1380
-	0xAE602202, 0xAE603502, 0x00000002, 0x40327C20, 0xAE602A02, 0x00000002,
-	0x00327C88, 0xAE602A02, 0x00000003, 0x40327C20, 0xAE602A02, 0xAE603202,
-	0x00000003, 0x00327C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40327C20,
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603502,
-	0x00000002, 0x40327C20, 0xAE603202, 0x00000002, 0x00327C88, 0xAE603202,
-	0x00000002, 0x40327C20, 0xAE603502, 0x00000002, 0x00327C88, 0xAE603502,
-	0x00000002, 0x40328820, 0xAE602202, 0x00000002, 0x40328820, 0xAE602A02,
-	0x00000002, 0x00328888, 0xAE602A02, 0x00000002, 0x40329820, 0xAE602202,
-	0x00000003, 0x40329820, 0xAE602202, 0xAE603202, 0x00000003, 0x40329820,
-	0xAE602202, 0xAE603502, 0x00000003, 0x40329820, 0xAE602202, 0xAE604502,
-	0x00000002, 0x40329820, 0xAE602A02, 0x00000002,
-	// Block 79, offset 0x13c0
-	0x00329888, 0xAE602A02, 0x00000003, 0x40329820, 0xAE602A02, 0xAE603202,
-	0x00000003, 0x00329888, 0xAE602A02, 0xAE603202, 0x00000003, 0x40329820,
-	0xAE602A02, 0xAE603502, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603502,
-	0x00000003, 0x40329820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00329888,
-	0xAE602A02, 0xAE604502, 0x00000002, 0x40329820, 0xAE603202, 0x00000002,
-	0x00329888, 0xAE603202, 0x00000002, 0x40329820, 0xAE603502, 0x00000002,
-	0x00329888, 0xAE603502, 0x00000002, 0x40329820, 0xAE603702, 0x00000002,
-	0x00329888, 0xAE603702, 0x00000002, 0x40329820, 0xAE604502, 0x00000002,
-	0x40329820, 0xAE604702, 0x00000002, 0x00329888, 0xAE604702, 0x00000003,
-	0x40329820, 0xAE604702, 0xAE603202, 0x00000003, 0x40329820, 0xAE604702,
-	0xAE603502, 0x00000003, 0x40329820, 0xAE604702,
-	// Block 80, offset 0x1400
-	0xAE604502, 0x00000002, 0x40329820, 0xAE605B02, 0x00000002, 0x00329888,
-	0xAE605B02, 0x00000002, 0x4032A220, 0xAE602202, 0x00000002, 0x0032A288,
-	0xAE602202, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603202, 0x00000003,
-	0x0032A288, 0xAE602202, 0xAE603202, 0x00000004, 0x4032A220, 0xAE602202,
-	0xAE603202, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603202,
-	0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603502, 0x00000003,
-	0x0032A288, 0xAE602202, 0xAE603502, 0x00000004, 0x4032A220, 0xAE602202,
-	0xAE603502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603502,
-	0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE604502, 0x00000003,
-	0x0032A288, 0xAE602202, 0xAE604502, 0x00000004, 0x4032A220, 0xAE602202,
-	0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288,
-	// Block 81, offset 0x1440
-	0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202,
-	0xAF007F02, 0x00000003, 0x0032A288, 0xAE602202, 0xAF007F02, 0x00000002,
-	0x4032A220, 0xAE602A02, 0x00000002, 0x0032A288, 0xAE602A02, 0x00000003,
-	0x4032A220, 0xAE602A02, 0xAE603202, 0x00000003, 0x0032A288, 0xAE602A02,
-	0xAE603202, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603202, 0xAF007F02,
-	0x00000004, 0x0032A288, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003,
-	0x4032A220, 0xAE602A02, 0xAE603502, 0x00000003, 0x0032A288, 0xAE602A02,
-	0xAE603502, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603502, 0xAF007F02,
-	0x00000004, 0x0032A288, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000003,
-	0x4032A220, 0xAE602A02, 0xAE604502, 0x00000003, 0x0032A288, 0xAE602A02,
-	0xAE604502, 0x00000004, 0x4032A220, 0xAE602A02,
-	// Block 82, offset 0x1480
-	0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE604502,
-	0xAF007F02, 0x00000003, 0x4032A220, 0xAE602A02, 0xAF007F02, 0x00000003,
-	0x0032A288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603202,
-	0x00000002, 0x0032A288, 0xAE603202, 0x00000003, 0x4032A220, 0xAE603202,
-	0xAF007F02, 0x00000002, 0x4032A220, 0xAE603502, 0x00000002, 0x0032A288,
-	0xAE603502, 0x00000003, 0x4032A220, 0xAE603502, 0xAF007F02, 0x00000002,
-	0x4032A220, 0xAE604502, 0x00000003, 0x4032A220, 0xAE604502, 0xAF007F02,
-	0x00000002, 0x4032A220, 0xAF007F02, 0x00000002, 0x0032A288, 0xAF007F02,
-	0x00000003, 0x0032C084, 0x0032AA84, 0x0032BE84, 0x00000002, 0x00336284,
-	0xA0013A04, 0x00000002, 0x0033628A, 0xA0013A04, 0x00000002, 0x4033B220,
-	0xAE603502, 0x00000002, 0x0033B288, 0xAE603502,
-	// Block 83, offset 0x14c0
-	0x00000002, 0x4033B220, 0xAE604702, 0x00000002, 0x0033B288, 0xAE604702,
-	0x00000002, 0x4033CA20, 0xAE603702, 0x00000002, 0x0033CA88, 0xAE603702,
-	0x00000002, 0x40341420, 0xAE603502, 0x00000002, 0x00341488, 0xAE603502,
-	0x00000002, 0x40341420, 0xAE605B02, 0x00000002, 0x00341488, 0xAE605B02,
-	0x00000002, 0x84E61A9D, 0x84E61AA6, 0x00000002, 0x40357220, 0xAE605B02,
-	0x00000002, 0x00357288, 0xAE605B02, 0x00000002, 0x40389020, 0xA1108C02,
-	0x00000002, 0x40389020, 0xA1208D02, 0x00000002, 0x40389020, 0xA1509202,
-	0x00000002, 0x40389220, 0xA1509202, 0x00000002, 0x40389220, 0xA1709502,
-	0x00000002, 0x40389420, 0xA1509202, 0x00000002, 0x40389620, 0xA1509202,
-	0x00000002, 0x40389820, 0xA1509202, 0x00000002, 0x40389A20, 0xA1308E02,
-	0x00000002, 0x40389A20, 0xA1509202, 0x00000002,
-	// Block 84, offset 0x1500
-	0x00389A84, 0x00389A84, 0x00000002, 0x00389A84, 0x0038A284, 0x00000002,
-	0x40389C20, 0xA1509202, 0x00000002, 0x4038A020, 0xA1509202, 0x00000002,
-	0x4038A220, 0xA0E08902, 0x00000002, 0x4038A220, 0xA1509202, 0x00000002,
-	0x0038A284, 0x0038A284, 0x00000003, 0x0038A284, 0x0038A284, 0xA1108C02,
-	0x00000002, 0x4038A420, 0xA1509202, 0x00000002, 0x0038A499, 0xA1509202,
-	0x00000002, 0x4038A420, 0xA1709502, 0x00000002, 0x4038A620, 0xA1509202,
-	0x00000002, 0x4038A820, 0xA1509202, 0x00000002, 0x4038AA20, 0xA1509202,
-	0x00000002, 0x4038AC20, 0xA1509202, 0x00000002, 0x4038B020, 0xA1509202,
-	0x00000002, 0x0038B099, 0xA1509202, 0x00000002, 0x4038B020, 0xA1709502,
-	0x00000002, 0x4038B220, 0xA1509202, 0x00000002, 0x4038B420, 0xA1509202,
-	0x00000002, 0x4038B620, 0xA1509202, 0x00000002,
-	// Block 85, offset 0x1540
-	0x4038B820, 0xA1909002, 0x00000002, 0x4038B820, 0xA1809102, 0x00000002,
-	0x4038B820, 0xA1509202, 0x00000003, 0x4038B820, 0xA1509202, 0xA1909002,
-	0x00000003, 0x4038B820, 0xA1509202, 0xA1809102, 0x00000002, 0x4038BA20,
-	0xA1509202, 0x00000002, 0x00391C84, 0xA0013A04, 0x00000002, 0x00393099,
-	0x00393899, 0x00000002, 0x0039309A, 0x0039389A, 0x00000002, 0x00393097,
-	0x00396497, 0x00000002, 0x0039309A, 0x0039649A, 0x00000002, 0x00393097,
-	0x00397297, 0x00000002, 0x0039309A, 0x0039729A, 0x00000002, 0x00393097,
-	0x00397497, 0x00000002, 0x00393099, 0x0039A499, 0x00000002, 0x00393099,
-	0x0039A699, 0x00000002, 0x00393097, 0x003A4E97, 0x00000002, 0x00393098,
-	0x003A4E98, 0x00000002, 0x00393099, 0x003A4E99, 0x00000002, 0x0039309A,
-	0x003A4E9A, 0x00000002, 0x00393099, 0x003A5699,
-	// Block 86, offset 0x1580
-	0x00000002, 0x00393097, 0x003A6897, 0x00000002, 0x00393098, 0x003A6898,
-	0x00000002, 0x00393099, 0x003A7299, 0x00000002, 0x0039309A, 0x003A729A,
-	0x00000002, 0x00393099, 0x003A7499, 0x00000002, 0x0039309A, 0x003A749A,
-	0x00000002, 0x00393099, 0x003A7A99, 0x00000002, 0x0039309A, 0x003A7A9A,
-	0x00000002, 0x00393099, 0x003A7C99, 0x00000002, 0x0039309A, 0x003A7C9A,
-	0x00000002, 0x00393099, 0x003A7E99, 0x00000002, 0x0039309A, 0x003A7E9A,
-	0x00000002, 0x00393097, 0x003A8E97, 0x00000002, 0x00393099, 0x003A8E99,
-	0x00000002, 0x00393099, 0x003A8E99, 0x00000002, 0x0039309A, 0x003A8E9A,
-	0x00000002, 0x0039309A, 0x003A8E9A, 0x00000002, 0x00393099, 0x003A9099,
-	0x00000002, 0x0039309A, 0x003A909A, 0x00000002, 0x00393097, 0x003A9897,
-	0x00000002, 0x00393099, 0x003A9899, 0x00000002,
-	// Block 87, offset 0x15c0
-	0x0039309A, 0x003A989A, 0x00000004, 0x0039389A, 0x003A1A9A, 0x00393C9A,
-	0x0039A49A, 0x00000004, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A,
-	0x00000003, 0x00393C99, 0x00397299, 0x003A9099, 0x00000003, 0x00393C99,
-	0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x00396497, 0x003A4E97,
-	0x00000003, 0x00395699, 0x00396499, 0x003A8E99, 0x00000003, 0x00395699,
-	0x00396499, 0x003A9099, 0x00000003, 0x00395697, 0x00397297, 0x00396497,
-	0x00000003, 0x00395699, 0x00397299, 0x00396499, 0x00000003, 0x00395697,
-	0x00397297, 0x003A4E97, 0x00000003, 0x00395697, 0x00397497, 0x003A4E97,
-	0x00000003, 0x00395699, 0x00397499, 0x003A8E99, 0x00000003, 0x00395699,
-	0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x003A4E97, 0x00396497,
-	0x00000003, 0x00395697, 0x003A4E97, 0x00397297,
-	// Block 88, offset 0x1600
-	0x00000003, 0x00395697, 0x003A4E97, 0x00397497, 0x00000003, 0x00395699,
-	0x003A4E99, 0x003A8E99, 0x00000003, 0x00395699, 0x003A4E99, 0x003A9099,
-	0x00000003, 0x00396499, 0x00397299, 0x003A8E99, 0x00000003, 0x00396499,
-	0x00397299, 0x003A9099, 0x00000008, 0x0039649A, 0x003A409A, 0x0002129A,
-	0x0039649A, 0x003A409A, 0x0039389A, 0x003A409A, 0x003A689A, 0x00000003,
-	0x00396497, 0x003A4E97, 0x00397297, 0x00000003, 0x00396499, 0x003A4E99,
-	0x00397299, 0x00000003, 0x00396499, 0x003A4E99, 0x003A8E99, 0x00000003,
-	0x00396499, 0x003A4E99, 0x003A9099, 0x00000003, 0x00397299, 0x00396499,
-	0x003A9099, 0x00000003, 0x00397299, 0x003A4E99, 0x003A8E99, 0x00000003,
-	0x00397299, 0x003A4E99, 0x003A9099, 0x00000004, 0x0039A49A, 0x0039C69A,
-	0x003A749A, 0x003A409A, 0x00000003, 0x0039C697,
-	// Block 89, offset 0x1640
-	0x00396497, 0x00397297, 0x00000003, 0x0039C699, 0x00396499, 0x003A8E99,
-	0x00000003, 0x0039C697, 0x00397297, 0x00396497, 0x00000003, 0x0039C699,
-	0x00397499, 0x003A8E99, 0x00000003, 0x0039C699, 0x00397499, 0x003A9099,
-	0x00000003, 0x0039C697, 0x003A4E97, 0x00396497, 0x00000003, 0x0039C697,
-	0x003A4E97, 0x00397297, 0x00000003, 0x0039C699, 0x003A4E99, 0x00397299,
-	0x00000003, 0x0039C697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C699,
-	0x003A4E99, 0x003A4E99, 0x00000003, 0x0039C899, 0x00396499, 0x003A9099,
-	0x00000003, 0x0039C897, 0x00397297, 0x003A4E97, 0x00000003, 0x0039C899,
-	0x00397299, 0x003A4E99, 0x00000003, 0x0039C899, 0x00397299, 0x003A9099,
-	0x00000003, 0x0039C897, 0x003A4E97, 0x00397497, 0x00000003, 0x0039C899,
-	0x003A4E99, 0x00397499, 0x00000003, 0x0039C897,
-	// Block 90, offset 0x1680
-	0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C899, 0x003A4E99, 0x003A4E99,
-	0x00000003, 0x0039DC97, 0x00397297, 0x00397297, 0x00000003, 0x0039DC99,
-	0x00397299, 0x00397299, 0x00000003, 0x0039DC99, 0x00397299, 0x003A9099,
-	0x00000004, 0x0039DC9A, 0x003A409A, 0x0039EE9A, 0x003A4E9A, 0x00000003,
-	0x0039DC9A, 0x003A409A, 0x003A8E9A, 0x00000012, 0x0039DC9A, 0x003A409A,
-	0x003A8E9A, 0x0002129A, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A,
-	0x0002129A, 0x0039EE9A, 0x003A409A, 0x003A909A, 0x003A689A, 0x0002129A,
-	0x003A749A, 0x0039C69A, 0x003A409A, 0x003A4E9A, 0x00000003, 0x0039DC9A,
-	0x003A409A, 0x003AAA9A, 0x00000003, 0x0039DC97, 0x003A4E97, 0x003A4E97,
-	0x00000003, 0x0039DC99, 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039DE99,
-	0x00397299, 0x003A8E99, 0x00000003, 0x0039DE99,
-	// Block 91, offset 0x16c0
-	0x00397299, 0x003A9099, 0x00000003, 0x0039DE97, 0x00397497, 0x003A4E97,
-	0x00000003, 0x0039DE99, 0x00397499, 0x003A4E99, 0x00000003, 0x0039E697,
-	0x003A4E97, 0x00397297, 0x00000003, 0x0039E699, 0x003A4E99, 0x00397299,
-	0x00000003, 0x0039E697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039E699,
-	0x003A4E99, 0x003A9099, 0x00000003, 0x0039EE97, 0x00396497, 0x003A4E97,
-	0x00000003, 0x0039EE99, 0x00396499, 0x003A4E99, 0x00000004, 0x0039EE9A,
-	0x003A409A, 0x003A909A, 0x003A689A, 0x00000003, 0x0039EE97, 0x003A4E97,
-	0x003A4E97, 0x00000003, 0x0039EE99, 0x003A4E99, 0x003A4E99, 0x00000003,
-	0x0039EE99, 0x003A4E99, 0x003A8E99, 0x00000003, 0x0039EE99, 0x003A4E99,
-	0x003A9099, 0x00000003, 0x0039F099, 0x003A4E99, 0x003A4E99, 0x00000003,
-	0x0039F099, 0x003A4E99, 0x003A8E99, 0x00000003,
-	// Block 92, offset 0x1700
-	0x0039F099, 0x003A4E99, 0x003A9099, 0x00000003, 0x0039FC97, 0x00397497,
-	0x003A4E97, 0x00000003, 0x0039FC99, 0x00397499, 0x003A4E99, 0x00000003,
-	0x0039FC99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A129A, 0x003A409A,
-	0x003AAA9A, 0x00000003, 0x003A1297, 0x003A4E97, 0x00397297, 0x00000003,
-	0x003A1299, 0x003A4E99, 0x00397299, 0x00000003, 0x003A1299, 0x003A4E99,
-	0x003A4E99, 0x00000003, 0x003A1299, 0x003A4E99, 0x003A9099, 0x00000003,
-	0x003A1A97, 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A1A99, 0x003A4E99,
-	0x003A4E99, 0x00000003, 0x003A1A99, 0x003A4E99, 0x003A9099, 0x00000002,
-	0x003A4099, 0x00391E99, 0x00000002, 0x003A409A, 0x00391E9A, 0x00000002,
-	0x003A4099, 0x00392099, 0x00000002, 0x003A409A, 0x0039209A, 0x00000002,
-	0x003A4099, 0x00392899, 0x00000002, 0x003A409A,
-	// Block 93, offset 0x1740
-	0x0039289A, 0x00000003, 0x003A4097, 0x00396497, 0x00396497, 0x00000003,
-	0x003A4099, 0x00396499, 0x00396499, 0x00000003, 0x003A4097, 0x00396497,
-	0x003A4E97, 0x00000003, 0x003A4099, 0x00396499, 0x003A4E99, 0x00000003,
-	0x003A4099, 0x00396499, 0x003A9099, 0x00000003, 0x003A4097, 0x00397297,
-	0x003A4E97, 0x00000003, 0x003A4099, 0x00397299, 0x003A4E99, 0x00000003,
-	0x003A4099, 0x00397299, 0x003A8E99, 0x00000003, 0x003A4099, 0x00397299,
-	0x003A9099, 0x00000003, 0x003A4097, 0x00397497, 0x003A4E97, 0x00000003,
-	0x003A4099, 0x00397499, 0x003A4E99, 0x00000003, 0x003A4097, 0x003A4E97,
-	0x00397297, 0x00000003, 0x003A4099, 0x003A4E99, 0x00397299, 0x00000003,
-	0x003A4099, 0x003A4E99, 0x003A9099, 0x00000002, 0x003A4E84, 0xA0013A04,
-	0x00000003, 0x003A4E97, 0x00396497, 0x00397297,
-	// Block 94, offset 0x1780
-	0x00000003, 0x003A4E97, 0x00396497, 0x00397497, 0x00000003, 0x003A4E97,
-	0x00396497, 0x003A4E97, 0x00000003, 0x003A4E99, 0x00396499, 0x003A9099,
-	0x00000003, 0x003A4E97, 0x00397297, 0x00396497, 0x00000003, 0x003A4E97,
-	0x00397297, 0x003A4E97, 0x00000004, 0x003A4E9A, 0x0039729A, 0x003A4E9A,
-	0x0039889A, 0x00000003, 0x003A4E99, 0x00397299, 0x003A9099, 0x00000003,
-	0x003A4E97, 0x00397497, 0x00396497, 0x00000003, 0x003A4E97, 0x00397497,
-	0x003A4E97, 0x00000003, 0x003A4E99, 0x00397499, 0x003A9099, 0x00000003,
-	0x003A4E99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A5697, 0x00396497,
-	0x00397297, 0x00000003, 0x003A5699, 0x00396499, 0x00397299, 0x00000003,
-	0x003A5697, 0x00396497, 0x003A4E97, 0x00000003, 0x003A5699, 0x00396499,
-	0x003A4E99, 0x00000003, 0x003A5699, 0x00396499,
-	// Block 95, offset 0x17c0
-	0x003A8E99, 0x00000003, 0x003A5699, 0x00396499, 0x003A9099, 0x00000003,
-	0x003A5697, 0x00397297, 0x003A4E97, 0x00000003, 0x003A5699, 0x00397299,
-	0x003A8E99, 0x00000003, 0x003A5699, 0x00397299, 0x003A9099, 0x00000003,
-	0x003A5699, 0x003A4E99, 0x003A8E99, 0x00000003, 0x003A5699, 0x003A4E99,
-	0x003A9099, 0x00000003, 0x003A6897, 0x003A4E97, 0x00396497, 0x00000003,
-	0x003A6897, 0x003A4E97, 0x003A4E97, 0x00000002, 0x403A6C20, 0xAE60BE02,
-	0x00000002, 0x403A7220, 0xAE60BE02, 0x00000004, 0x003A749A, 0x0039C69A,
-	0x003A409A, 0x003A4E9A, 0x00000003, 0x003A9099, 0x00396499, 0x003A9099,
-	0x00000003, 0x003A9099, 0x00397299, 0x003A9099, 0x00000003, 0x003A9097,
-	0x003A4E97, 0x003A4E97, 0x00000003, 0x003A9099, 0x003A4E99, 0x003A4E99,
-	0x00000003, 0x003A9099, 0x003A4E99, 0x003A9099,
-	// Block 96, offset 0x1800
-	0x00000002, 0x403AAA20, 0xAE60BE02, 0x00000002, 0x003AB284, 0xA0013C04,
-	0x00000002, 0x003AB484, 0xA0013A04, 0x00000002, 0x003AB484, 0xA0013C04,
-	0x00000002, 0x003AB884, 0xA0013C04, 0x00000002, 0x003AC484, 0xA0013A04,
-	0x00000002, 0x003AD884, 0xA0013A04, 0x00000002, 0x003B9484, 0xA0013904,
-	0x00000002, 0x003B9684, 0xA0013904, 0x00000002, 0x003B9A84, 0xA0013904,
-	0x00000002, 0x403FEC20, 0xA070F102, 0x00000002, 0x403FEE20, 0xA070F102,
-	0x00000002, 0x403FF020, 0xA070F102, 0x00000002, 0x403FFC20, 0xA070F102,
-	0x00000002, 0x40400A20, 0xA070F102, 0x00000002, 0x40400E20, 0xA070F102,
-	0x00000002, 0x40401A20, 0xA070F102, 0x00000002, 0x40401E20, 0xA070F102,
-	0x00000002, 0x40402820, 0xA070F102, 0x00000002, 0x40402C20, 0xA070F102,
-	0x00000002, 0x40403020, 0xA070F102, 0x00000002,
-	// Block 97, offset 0x1840
-	0x4040B020, 0xA070F102, 0x00000002, 0x4040B220, 0xA070F102, 0x00000002,
-	0x0040B684, 0x0040F884, 0x00000002, 0x4040CA20, 0xA070F102, 0x00000002,
-	0x40411620, 0xA070F102, 0x00000002, 0x40411E20, 0xA070F102, 0x00000002,
-	0x40412020, 0xA070F102, 0x00000002, 0x40412A20, 0xA070F102, 0x00000002,
-	0x40414620, 0xA070F102, 0x00000002, 0x40415420, 0xA070F102, 0x00000002,
-	0x40422A20, 0xA070F102, 0x00000002, 0x40422C20, 0xA070F102, 0x00000002,
-	0x00442284, 0x00449084, 0x00000002, 0x00443E84, 0x00449084, 0x00000002,
-	0x00444884, 0x00449084, 0x00000002, 0x00445884, 0x00449084, 0x00000002,
-	0x00445884, 0x00449084, 0x00000002, 0x00445A84, 0x00449084, 0x00000002,
-	0x00446684, 0x00449084, 0x00000002, 0x4046AA20, 0xA070F102, 0x00000002,
-	0x4046AC20, 0xA070F102, 0x00000002, 0x4046BE20,
-	// Block 98, offset 0x1880
-	0xA070F102, 0x00000002, 0x40491020, 0x40498420, 0x00000002, 0x40491020,
-	0x40498620, 0x00000002, 0x40491020, 0x40498820, 0x00000002, 0x40491020,
-	0x40498A20, 0x00000002, 0x40491020, 0x40498C20, 0x00000002, 0x40491220,
-	0x40498420, 0x00000002, 0x40491220, 0x40498620, 0x00000002, 0x40491220,
-	0x40498820, 0x00000002, 0x40491220, 0x40498A20, 0x00000002, 0x40491220,
-	0x40498C20, 0x00000002, 0x40491420, 0x40498420, 0x00000002, 0x40491420,
-	0x40498620, 0x00000002, 0x40491420, 0x40498820, 0x00000002, 0x40491420,
-	0x40498A20, 0x00000002, 0x40491420, 0x40498C20, 0x00000002, 0x40491620,
-	0x40498420, 0x00000002, 0x40491620, 0x40498620, 0x00000002, 0x40491620,
-	0x40498820, 0x00000002, 0x40491620, 0x40498A20, 0x00000002, 0x40491620,
-	0x40498C20, 0x00000002, 0x40491820, 0x40498420,
-	// Block 99, offset 0x18c0
-	0x00000002, 0x40491820, 0x40498620, 0x00000002, 0x40491820, 0x40498820,
-	0x00000002, 0x40491820, 0x40498A20, 0x00000002, 0x40491820, 0x40498C20,
-	0x00000002, 0x40491A20, 0x40498420, 0x00000002, 0x40491A20, 0x40498620,
-	0x00000002, 0x40491A20, 0x40498820, 0x00000002, 0x40491A20, 0x40498A20,
-	0x00000002, 0x40491A20, 0x40498C20, 0x00000002, 0x40491C20, 0x40498420,
-	0x00000002, 0x40491C20, 0x40498620, 0x00000002, 0x40491C20, 0x40498820,
-	0x00000002, 0x40491C20, 0x40498A20, 0x00000002, 0x40491C20, 0x40498C20,
-	0x00000002, 0x40491E20, 0x40498420, 0x00000002, 0x40491E20, 0x40498620,
-	0x00000002, 0x40491E20, 0x40498820, 0x00000002, 0x40491E20, 0x40498A20,
-	0x00000002, 0x40491E20, 0x40498C20, 0x00000002, 0x40492020, 0x40498420,
-	0x00000002, 0x40492020, 0x40498620, 0x00000002,
-	// Block 100, offset 0x1900
-	0x40492020, 0x40498820, 0x00000002, 0x40492020, 0x40498A20, 0x00000002,
-	0x40492020, 0x40498C20, 0x00000002, 0x40492220, 0x40498420, 0x00000002,
-	0x40492220, 0x40498620, 0x00000002, 0x40492220, 0x40498820, 0x00000002,
-	0x40492220, 0x40498A20, 0x00000002, 0x40492220, 0x40498C20, 0x00000002,
-	0x40492420, 0x40498420, 0x00000002, 0x40492420, 0x40498620, 0x00000002,
-	0x40492420, 0x40498820, 0x00000002, 0x40492420, 0x40498A20, 0x00000002,
-	0x40492420, 0x40498C20, 0x00000002, 0x40492620, 0x40498420, 0x00000002,
-	0x40492620, 0x40498620, 0x00000002, 0x40492620, 0x40498820, 0x00000002,
-	0x40492620, 0x40498A20, 0x00000002, 0x40492620, 0x40498C20, 0x00000002,
-	0x40492820, 0x40498420, 0x00000002, 0x40492820, 0x40498620, 0x00000002,
-	0x40492820, 0x40498820, 0x00000002, 0x40492820,
-	// Block 101, offset 0x1940
-	0x40498A20, 0x00000002, 0x40492820, 0x40498C20, 0x00000002, 0x40492A20,
-	0x40498420, 0x00000002, 0x40492A20, 0x40498620, 0x00000002, 0x40492A20,
-	0x40498820, 0x00000002, 0x40492A20, 0x40498A20, 0x00000002, 0x40492A20,
-	0x40498C20, 0x00000002, 0x40492C20, 0x40498420, 0x00000002, 0x40492C20,
-	0x40498620, 0x00000002, 0x40492C20, 0x40498820, 0x00000002, 0x40492C20,
-	0x40498A20, 0x00000002, 0x40492C20, 0x40498C20, 0x00000002, 0x40492E20,
-	0x40498420, 0x00000002, 0x40492E20, 0x40498620, 0x00000002, 0x40492E20,
-	0x40498820, 0x00000002, 0x40492E20, 0x40498A20, 0x00000002, 0x40492E20,
-	0x40498C20, 0x00000002, 0x40493020, 0x40498420, 0x00000002, 0x40493020,
-	0x40498620, 0x00000002, 0x40493020, 0x40498820, 0x00000002, 0x40493020,
-	0x40498A20, 0x00000002, 0x40493020, 0x40498C20,
-	// Block 102, offset 0x1980
-	0x00000002, 0x40493220, 0x40498420, 0x00000002, 0x40493220, 0x40498620,
-	0x00000002, 0x40493220, 0x40498820, 0x00000002, 0x40493220, 0x40498A20,
-	0x00000002, 0x40493220, 0x40498C20, 0x00000002, 0x40493420, 0x40498420,
-	0x00000002, 0x40493420, 0x40498620, 0x00000002, 0x40493420, 0x40498820,
-	0x00000002, 0x40493420, 0x40498A20, 0x00000002, 0x40493420, 0x40498C20,
-	0x00000002, 0x40493620, 0x40498420, 0x00000002, 0x40493620, 0x40498620,
-	0x00000002, 0x40493620, 0x40498820, 0x00000002, 0x40493620, 0x40498A20,
-	0x00000002, 0x40493620, 0x40498C20, 0x00000002, 0x40493820, 0x40498420,
-	0x00000002, 0x40493820, 0x40498620, 0x00000002, 0x40493820, 0x40498820,
-	0x00000002, 0x40493820, 0x40498A20, 0x00000002, 0x40493820, 0x40498C20,
-	0x00000002, 0x40493A20, 0x40498420, 0x00000002,
-	// Block 103, offset 0x19c0
-	0x40493A20, 0x40498620, 0x00000002, 0x40493A20, 0x40498820, 0x00000002,
-	0x40493A20, 0x40498A20, 0x00000002, 0x40493A20, 0x40498C20, 0x00000002,
-	0x40493C20, 0x40498420, 0x00000002, 0x40493C20, 0x40498620, 0x00000002,
-	0x40493C20, 0x40498820, 0x00000002, 0x40493C20, 0x40498A20, 0x00000002,
-	0x40493C20, 0x40498C20, 0x00000002, 0x40493E20, 0x40498420, 0x00000002,
-	0x40493E20, 0x40498620, 0x00000002, 0x40493E20, 0x40498820, 0x00000002,
-	0x40493E20, 0x40498A20, 0x00000002, 0x40493E20, 0x40498C20, 0x00000002,
-	0x40494020, 0x40498420, 0x00000002, 0x40494020, 0x40498620, 0x00000002,
-	0x40494020, 0x40498820, 0x00000002, 0x40494020, 0x40498A20, 0x00000002,
-	0x40494020, 0x40498C20, 0x00000002, 0x40494220, 0x40498420, 0x00000002,
-	0x40494220, 0x40498620, 0x00000002, 0x40494220,
-	// Block 104, offset 0x1a00
-	0x40498820, 0x00000002, 0x40494220, 0x40498A20, 0x00000002, 0x40494220,
-	0x40498C20, 0x00000002, 0x40494420, 0x40498420, 0x00000002, 0x40494420,
-	0x40498620, 0x00000002, 0x40494420, 0x40498820, 0x00000002, 0x40494420,
-	0x40498A20, 0x00000002, 0x40494420, 0x40498C20, 0x00000002, 0x40494620,
-	0x40498420, 0x00000002, 0x40494620, 0x40498620, 0x00000002, 0x40494620,
-	0x40498820, 0x00000002, 0x40494620, 0x40498A20, 0x00000002, 0x40494620,
-	0x40498C20, 0x00000002, 0x40494820, 0x40498420, 0x00000002, 0x40494820,
-	0x40498620, 0x00000002, 0x40494820, 0x40498820, 0x00000002, 0x40494820,
-	0x40498A20, 0x00000002, 0x40494820, 0x40498C20, 0x00000002, 0x40494A20,
-	0x40498420, 0x00000002, 0x40494A20, 0x40498620, 0x00000002, 0x40494A20,
-	0x40498820, 0x00000002, 0x40494A20, 0x40498A20,
-	// Block 105, offset 0x1a40
-	0x00000002, 0x40494A20, 0x40498C20, 0x00000002, 0x40494C20, 0x40498420,
-	0x00000002, 0x40494C20, 0x40498620, 0x00000002, 0x40494C20, 0x40498820,
-	0x00000002, 0x40494C20, 0x40498A20, 0x00000002, 0x40494C20, 0x40498C20,
-	0x00000002, 0x40494E20, 0x40498420, 0x00000002, 0x40494E20, 0x40498620,
-	0x00000002, 0x40494E20, 0x40498820, 0x00000002, 0x40494E20, 0x40498A20,
-	0x00000002, 0x40494E20, 0x40498C20, 0x00000002, 0x40495020, 0x40498420,
-	0x00000002, 0x40495020, 0x40498620, 0x00000002, 0x40495020, 0x40498820,
-	0x00000002, 0x40495020, 0x40498A20, 0x00000002, 0x40495020, 0x40498C20,
-	0x00000002, 0x40495220, 0x40498420, 0x00000002, 0x40495220, 0x40498620,
-	0x00000002, 0x40495220, 0x40498820, 0x00000002, 0x40495220, 0x40498A20,
-	0x00000002, 0x40495220, 0x40498C20, 0x00000002,
-	// Block 106, offset 0x1a80
-	0x40495420, 0x40498420, 0x00000002, 0x40495420, 0x40498620, 0x00000002,
-	0x40495420, 0x40498820, 0x00000002, 0x40495420, 0x40498A20, 0x00000002,
-	0x40495420, 0x40498C20, 0x00000002, 0x40495620, 0x40498420, 0x00000002,
-	0x40495620, 0x40498620, 0x00000002, 0x40495620, 0x40498820, 0x00000002,
-	0x40495620, 0x40498A20, 0x00000002, 0x40495620, 0x40498C20, 0x00000002,
-	0x40495820, 0x40498420, 0x00000002, 0x40495820, 0x40498620, 0x00000002,
-	0x40495820, 0x40498820, 0x00000002, 0x40495820, 0x40498A20, 0x00000002,
-	0x40495820, 0x40498C20, 0x00000002, 0x40495A20, 0x40498420, 0x00000002,
-	0x40495A20, 0x40498620, 0x00000002, 0x40495A20, 0x40498820, 0x00000002,
-	0x40495A20, 0x40498A20, 0x00000002, 0x40495A20, 0x40498C20, 0x00000002,
-	0x40495C20, 0x40498420, 0x00000002, 0x40495C20,
-	// Block 107, offset 0x1ac0
-	0x40498620, 0x00000002, 0x40495C20, 0x40498820, 0x00000002, 0x40495C20,
-	0x40498A20, 0x00000002, 0x40495C20, 0x40498C20, 0x00000002, 0x40495E20,
-	0x40498420, 0x00000002, 0x40495E20, 0x40498620, 0x00000002, 0x40495E20,
-	0x40498820, 0x00000002, 0x40495E20, 0x40498A20, 0x00000002, 0x40495E20,
-	0x40498C20, 0x00000002, 0x40496020, 0x40498420, 0x00000002, 0x40496020,
-	0x40498620, 0x00000002, 0x40496020, 0x40498820, 0x00000002, 0x40496020,
-	0x40498A20, 0x00000002, 0x40496020, 0x40498C20, 0x00000002, 0x40496220,
-	0x40498420, 0x00000002, 0x40496220, 0x40498620, 0x00000002, 0x40496220,
-	0x40498820, 0x00000002, 0x40496220, 0x40498A20, 0x00000002, 0x40496220,
-	0x40498C20, 0x00000002, 0x40496420, 0x40498420, 0x00000002, 0x40496420,
-	0x40498620, 0x00000002, 0x40496420, 0x40498820,
-	// Block 108, offset 0x1b00
-	0x00000002, 0x40496420, 0x40498A20, 0x00000002, 0x40496420, 0x40498C20,
-	0x00000002, 0x40496620, 0x40498420, 0x00000002, 0x40496620, 0x40498620,
-	0x00000002, 0x40496620, 0x40498820, 0x00000002, 0x40496620, 0x40498A20,
-	0x00000002, 0x40496620, 0x40498C20, 0x00000002, 0x40496820, 0x40498420,
-	0x00000002, 0x40496820, 0x40498620, 0x00000002, 0x40496820, 0x40498820,
-	0x00000002, 0x40496820, 0x40498A20, 0x00000002, 0x40496820, 0x40498C20,
-	0x00000002, 0x40496A20, 0x40498420, 0x00000002, 0x40496A20, 0x40498620,
-	0x00000002, 0x40496A20, 0x40498820, 0x00000002, 0x40496A20, 0x40498A20,
-	0x00000002, 0x40496A20, 0x40498C20, 0x00000002, 0x40499020, 0x4049E620,
-	0x00000002, 0x40499020, 0x4049E820, 0x00000002, 0x40499020, 0x4049EA20,
-	0x00000002, 0x40499020, 0x4049EC20, 0x00000002,
-	// Block 109, offset 0x1b40
-	0x40499020, 0x4049EE20, 0x00000002, 0x40499220, 0x4049E620, 0x00000002,
-	0x40499220, 0x4049E820, 0x00000002, 0x40499220, 0x4049EA20, 0x00000002,
-	0x40499220, 0x4049EC20, 0x00000002, 0x40499220, 0x4049EE20, 0x00000002,
-	0x40499420, 0x4049E620, 0x00000002, 0x40499420, 0x4049E820, 0x00000002,
-	0x40499420, 0x4049EA20, 0x00000002, 0x40499420, 0x4049EC20, 0x00000002,
-	0x40499420, 0x4049EE20, 0x00000002, 0x40499620, 0x4049E620, 0x00000002,
-	0x40499620, 0x4049E820, 0x00000002, 0x40499620, 0x4049EA20, 0x00000002,
-	0x40499620, 0x4049EC20, 0x00000002, 0x40499620, 0x4049EE20, 0x00000002,
-	0x40499820, 0x4049E620, 0x00000002, 0x40499820, 0x4049E820, 0x00000002,
-	0x40499820, 0x4049EA20, 0x00000002, 0x40499820, 0x4049EC20, 0x00000002,
-	0x40499820, 0x4049EE20, 0x00000002, 0x40499A20,
-	// Block 110, offset 0x1b80
-	0x4049E620, 0x00000002, 0x40499A20, 0x4049E820, 0x00000002, 0x40499A20,
-	0x4049EA20, 0x00000002, 0x40499A20, 0x4049EC20, 0x00000002, 0x40499A20,
-	0x4049EE20, 0x00000002, 0x40499C20, 0x4049E620, 0x00000002, 0x40499C20,
-	0x4049E820, 0x00000002, 0x40499C20, 0x4049EA20, 0x00000002, 0x40499C20,
-	0x4049EC20, 0x00000002, 0x40499C20, 0x4049EE20, 0x00000002, 0x40499E20,
-	0x4049E620, 0x00000002, 0x40499E20, 0x4049E820, 0x00000002, 0x40499E20,
-	0x4049EA20, 0x00000002, 0x40499E20, 0x4049EC20, 0x00000002, 0x40499E20,
-	0x4049EE20, 0x00000002, 0x4049A020, 0x4049E620, 0x00000002, 0x4049A020,
-	0x4049E820, 0x00000002, 0x4049A020, 0x4049EA20, 0x00000002, 0x4049A020,
-	0x4049EC20, 0x00000002, 0x4049A020, 0x4049EE20, 0x00000002, 0x4049A220,
-	0x4049E620, 0x00000002, 0x4049A220, 0x4049E820,
-	// Block 111, offset 0x1bc0
-	0x00000002, 0x4049A220, 0x4049EA20, 0x00000002, 0x4049A220, 0x4049EC20,
-	0x00000002, 0x4049A220, 0x4049EE20, 0x00000002, 0x4049A420, 0x4049E620,
-	0x00000002, 0x4049A420, 0x4049E820, 0x00000002, 0x4049A420, 0x4049EA20,
-	0x00000002, 0x4049A420, 0x4049EC20, 0x00000002, 0x4049A420, 0x4049EE20,
-	0x00000002, 0x4049A620, 0x4049E620, 0x00000002, 0x4049A620, 0x4049E820,
-	0x00000002, 0x4049A620, 0x4049EA20, 0x00000002, 0x4049A620, 0x4049EC20,
-	0x00000002, 0x4049A620, 0x4049EE20, 0x00000002, 0x4049A820, 0x4049E620,
-	0x00000002, 0x4049A820, 0x4049E820, 0x00000002, 0x4049A820, 0x4049EA20,
-	0x00000002, 0x4049A820, 0x4049EC20, 0x00000002, 0x4049A820, 0x4049EE20,
-	0x00000002, 0x4049AA20, 0x4049E620, 0x00000002, 0x4049AA20, 0x4049E820,
-	0x00000002, 0x4049AA20, 0x4049EA20, 0x00000002,
-	// Block 112, offset 0x1c00
-	0x4049AA20, 0x4049EC20, 0x00000002, 0x4049AA20, 0x4049EE20, 0x00000002,
-	0x4049AC20, 0x4049E620, 0x00000002, 0x4049AC20, 0x4049E820, 0x00000002,
-	0x4049AC20, 0x4049EA20, 0x00000002, 0x4049AC20, 0x4049EC20, 0x00000002,
-	0x4049AC20, 0x4049EE20, 0x00000002, 0x4049AE20, 0x4049E620, 0x00000002,
-	0x4049AE20, 0x4049E820, 0x00000002, 0x4049AE20, 0x4049EA20, 0x00000002,
-	0x4049AE20, 0x4049EC20, 0x00000002, 0x4049AE20, 0x4049EE20, 0x00000002,
-	0x4049B020, 0x4049E620, 0x00000002, 0x4049B020, 0x4049E820, 0x00000002,
-	0x4049B020, 0x4049EA20, 0x00000002, 0x4049B020, 0x4049EC20, 0x00000002,
-	0x4049B020, 0x4049EE20, 0x00000002, 0x4049B220, 0x4049E620, 0x00000002,
-	0x4049B220, 0x4049E820, 0x00000002, 0x4049B220, 0x4049EA20, 0x00000002,
-	0x4049B220, 0x4049EC20, 0x00000002, 0x4049B220,
-	// Block 113, offset 0x1c40
-	0x4049EE20, 0x00000002, 0x4049B420, 0x4049E620, 0x00000002, 0x4049B420,
-	0x4049E820, 0x00000002, 0x4049B420, 0x4049EA20, 0x00000002, 0x4049B420,
-	0x4049EC20, 0x00000002, 0x4049B420, 0x4049EE20, 0x00000002, 0x4049B620,
-	0x4049E620, 0x00000002, 0x4049B620, 0x4049E820, 0x00000002, 0x4049B620,
-	0x4049EA20, 0x00000002, 0x4049B620, 0x4049EC20, 0x00000002, 0x4049B620,
-	0x4049EE20, 0x00000002, 0x4049B820, 0x4049E620, 0x00000002, 0x4049B820,
-	0x4049E820, 0x00000002, 0x4049B820, 0x4049EA20, 0x00000002, 0x4049B820,
-	0x4049EC20, 0x00000002, 0x4049B820, 0x4049EE20, 0x00000002, 0x4049BA20,
-	0x4049E620, 0x00000002, 0x4049BA20, 0x4049E820, 0x00000002, 0x4049BA20,
-	0x4049EA20, 0x00000002, 0x4049BA20, 0x4049EC20, 0x00000002, 0x4049BA20,
-	0x4049EE20, 0x00000002, 0x4049BC20, 0x4049E620,
-	// Block 114, offset 0x1c80
-	0x00000002, 0x4049BC20, 0x4049E820, 0x00000002, 0x4049BC20, 0x4049EA20,
-	0x00000002, 0x4049BC20, 0x4049EC20, 0x00000002, 0x4049BC20, 0x4049EE20,
-	0x00000002, 0x4049BE20, 0x4049E620, 0x00000002, 0x4049BE20, 0x4049E820,
-	0x00000002, 0x4049BE20, 0x4049EA20, 0x00000002, 0x4049BE20, 0x4049EC20,
-	0x00000002, 0x4049BE20, 0x4049EE20, 0x00000002, 0x4049C020, 0x4049E620,
-	0x00000002, 0x4049C020, 0x4049E820, 0x00000002, 0x4049C020, 0x4049EA20,
-	0x00000002, 0x4049C020, 0x4049EC20, 0x00000002, 0x4049C020, 0x4049EE20,
-	0x00000002, 0x4049C220, 0x4049E620, 0x00000002, 0x4049C220, 0x4049E820,
-	0x00000002, 0x4049C220, 0x4049EA20, 0x00000002, 0x4049C220, 0x4049EC20,
-	0x00000002, 0x4049C220, 0x4049EE20, 0x00000003, 0x0049C484, 0x0049AC84,
-	0x4049E620, 0x00000003, 0x0049C484, 0x0049AC84,
-	// Block 115, offset 0x1cc0
-	0x4049E820, 0x00000003, 0x0049C484, 0x0049AC84, 0x4049EA20, 0x00000003,
-	0x0049C484, 0x0049AC84, 0x4049EC20, 0x00000003, 0x0049C484, 0x0049AC84,
-	0x4049EE20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049E620, 0x00000003,
-	0x0049C484, 0x0049BA84, 0x4049E820, 0x00000003, 0x0049C484, 0x0049BA84,
-	0x4049EA20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049EC20, 0x00000003,
-	0x0049C484, 0x0049BA84, 0x4049EE20, 0x00000002, 0x4049C420, 0x4049E620,
-	0x00000002, 0x4049C420, 0x4049E820, 0x00000002, 0x4049C420, 0x4049EA20,
-	0x00000002, 0x4049C420, 0x4049EC20, 0x00000002, 0x4049C420, 0x4049EE20,
-	0x00000002, 0x4049C620, 0x4049E620, 0x00000002, 0x4049C620, 0x4049E820,
-	0x00000002, 0x4049C620, 0x4049EA20, 0x00000002, 0x4049C620, 0x4049EC20,
-	0x00000002, 0x4049C620, 0x4049EE20, 0x00000002,
-	// Block 116, offset 0x1d00
-	0x4049C820, 0x4049E620, 0x00000002, 0x4049C820, 0x4049E820, 0x00000002,
-	0x4049C820, 0x4049EA20, 0x00000002, 0x4049C820, 0x4049EC20, 0x00000002,
-	0x4049C820, 0x4049EE20, 0x00000002, 0x4049F020, 0x404A5A20, 0x00000002,
-	0x4049F020, 0x404A5C20, 0x00000002, 0x4049F020, 0x404A6220, 0x00000002,
-	0x4049F020, 0x404A6620, 0x00000002, 0x4049F020, 0x404A6820, 0x00000002,
-	0x4049F220, 0x404A5A20, 0x00000002, 0x4049F220, 0x404A5C20, 0x00000002,
-	0x4049F220, 0x404A6220, 0x00000002, 0x4049F220, 0x404A6620, 0x00000002,
-	0x4049F220, 0x404A6820, 0x00000002, 0x4049F420, 0x404A5A20, 0x00000002,
-	0x4049F420, 0x404A5C20, 0x00000002, 0x4049F420, 0x404A6220, 0x00000002,
-	0x4049F420, 0x404A6620, 0x00000002, 0x4049F420, 0x404A6820, 0x00000002,
-	0x4049F620, 0x404A5A20, 0x00000002, 0x4049F620,
-	// Block 117, offset 0x1d40
-	0x404A5C20, 0x00000002, 0x4049F620, 0x404A6220, 0x00000002, 0x4049F620,
-	0x404A6620, 0x00000002, 0x4049F620, 0x404A6820, 0x00000002, 0x4049F820,
-	0x404A5A20, 0x00000002, 0x4049F820, 0x404A5C20, 0x00000002, 0x4049F820,
-	0x404A6220, 0x00000002, 0x4049F820, 0x404A6620, 0x00000002, 0x4049F820,
-	0x404A6820, 0x00000002, 0x4049FA20, 0x404A5A20, 0x00000002, 0x4049FA20,
-	0x404A5C20, 0x00000002, 0x4049FA20, 0x404A6220, 0x00000002, 0x4049FA20,
-	0x404A6620, 0x00000002, 0x4049FA20, 0x404A6820, 0x00000002, 0x4049FC20,
-	0x404A5A20, 0x00000002, 0x4049FC20, 0x404A5C20, 0x00000002, 0x4049FC20,
-	0x404A6220, 0x00000002, 0x4049FC20, 0x404A6620, 0x00000002, 0x4049FC20,
-	0x404A6820, 0x00000002, 0x4049FE20, 0x404A5A20, 0x00000002, 0x4049FE20,
-	0x404A5C20, 0x00000002, 0x4049FE20, 0x404A6220,
-	// Block 118, offset 0x1d80
-	0x00000002, 0x4049FE20, 0x404A6620, 0x00000002, 0x4049FE20, 0x404A6820,
-	0x00000002, 0x404A0020, 0x404A5A20, 0x00000002, 0x404A0020, 0x404A5C20,
-	0x00000002, 0x404A0020, 0x404A6220, 0x00000002, 0x404A0020, 0x404A6620,
-	0x00000002, 0x404A0020, 0x404A6820, 0x00000002, 0x404A0220, 0x404A5A20,
-	0x00000002, 0x404A0220, 0x404A5C20, 0x00000002, 0x404A0220, 0x404A6220,
-	0x00000002, 0x404A0220, 0x404A6620, 0x00000002, 0x404A0220, 0x404A6820,
-	0x00000002, 0x404A0420, 0x404A5A20, 0x00000002, 0x404A0420, 0x404A5C20,
-	0x00000002, 0x404A0420, 0x404A6220, 0x00000002, 0x404A0420, 0x404A6620,
-	0x00000002, 0x404A0420, 0x404A6820, 0x00000002, 0x404A0620, 0x404A5A20,
-	0x00000002, 0x404A0620, 0x404A5C20, 0x00000002, 0x404A0620, 0x404A6220,
-	0x00000002, 0x404A0620, 0x404A6620, 0x00000002,
-	// Block 119, offset 0x1dc0
-	0x404A0620, 0x404A6820, 0x00000002, 0x404A0820, 0x404A5A20, 0x00000002,
-	0x404A0820, 0x404A5C20, 0x00000002, 0x404A0820, 0x404A6220, 0x00000002,
-	0x404A0820, 0x404A6620, 0x00000002, 0x404A0820, 0x404A6820, 0x00000002,
-	0x404A0A20, 0x404A5A20, 0x00000002, 0x404A0A20, 0x404A5C20, 0x00000002,
-	0x404A0A20, 0x404A6220, 0x00000002, 0x404A0A20, 0x404A6620, 0x00000002,
-	0x404A0A20, 0x404A6820, 0x00000002, 0x404A0C20, 0x404A5A20, 0x00000002,
-	0x404A0C20, 0x404A5C20, 0x00000002, 0x404A0C20, 0x404A6220, 0x00000002,
-	0x404A0C20, 0x404A6620, 0x00000002, 0x404A0C20, 0x404A6820, 0x00000002,
-	0x404A0E20, 0x404A5A20, 0x00000002, 0x404A0E20, 0x404A5C20, 0x00000002,
-	0x404A0E20, 0x404A6220, 0x00000002, 0x404A0E20, 0x404A6620, 0x00000002,
-	0x404A0E20, 0x404A6820, 0x00000002, 0x404A1020,
-	// Block 120, offset 0x1e00
-	0x404A5A20, 0x00000002, 0x404A1020, 0x404A5C20, 0x00000002, 0x404A1020,
-	0x404A6220, 0x00000002, 0x404A1020, 0x404A6620, 0x00000002, 0x404A1020,
-	0x404A6820, 0x00000002, 0x404A1220, 0x404A5A20, 0x00000002, 0x404A1220,
-	0x404A5C20, 0x00000002, 0x404A1220, 0x404A6220, 0x00000002, 0x404A1220,
-	0x404A6620, 0x00000002, 0x404A1220, 0x404A6820, 0x00000002, 0x404A1420,
-	0x404A5A20, 0x00000002, 0x404A1420, 0x404A5C20, 0x00000002, 0x404A1420,
-	0x404A6220, 0x00000002, 0x404A1420, 0x404A6620, 0x00000002, 0x404A1420,
-	0x404A6820, 0x00000002, 0x404A1620, 0x404A5A20, 0x00000002, 0x404A1620,
-	0x404A5C20, 0x00000002, 0x404A1620, 0x404A6220, 0x00000002, 0x404A1620,
-	0x404A6620, 0x00000002, 0x404A1620, 0x404A6820, 0x00000002, 0x404A1820,
-	0x404A5A20, 0x00000002, 0x404A1820, 0x404A5C20,
-	// Block 121, offset 0x1e40
-	0x00000002, 0x404A1820, 0x404A6220, 0x00000002, 0x404A1820, 0x404A6620,
-	0x00000002, 0x404A1820, 0x404A6820, 0x00000002, 0x404A1A20, 0x404A5A20,
-	0x00000002, 0x404A1A20, 0x404A5C20, 0x00000002, 0x404A1A20, 0x404A6220,
-	0x00000002, 0x404A1A20, 0x404A6620, 0x00000002, 0x404A1A20, 0x404A6820,
-	0x00000002, 0x404A1C20, 0x404A5A20, 0x00000002, 0x404A1C20, 0x404A5C20,
-	0x00000002, 0x404A1C20, 0x404A6220, 0x00000002, 0x404A1C20, 0x404A6620,
-	0x00000002, 0x404A1C20, 0x404A6820, 0x00000002, 0x404A1E20, 0x404A5A20,
-	0x00000002, 0x404A1E20, 0x404A5C20, 0x00000002, 0x404A1E20, 0x404A6220,
-	0x00000002, 0x404A1E20, 0x404A6620, 0x00000002, 0x404A1E20, 0x404A6820,
-	0x00000002, 0x404A2020, 0x404A5A20, 0x00000002, 0x404A2020, 0x404A5C20,
-	0x00000002, 0x404A2020, 0x404A6220, 0x00000002,
-	// Block 122, offset 0x1e80
-	0x404A2020, 0x404A6620, 0x00000002, 0x404A2020, 0x404A6820, 0x00000002,
-	0x404A2220, 0x404A5A20, 0x00000002, 0x404A2220, 0x404A5C20, 0x00000002,
-	0x404A2220, 0x404A6220, 0x00000002, 0x404A2220, 0x404A6620, 0x00000002,
-	0x404A2220, 0x404A6820, 0x00000002, 0x404A2420, 0x404A5A20, 0x00000002,
-	0x404A2420, 0x404A5C20, 0x00000002, 0x404A2420, 0x404A6220, 0x00000002,
-	0x404A2420, 0x404A6620, 0x00000002, 0x404A2420, 0x404A6820, 0x00000002,
-	0x404A2620, 0x404A5A20, 0x00000002, 0x404A2620, 0x404A5C20, 0x00000002,
-	0x404A2620, 0x404A6220, 0x00000002, 0x404A2620, 0x404A6620, 0x00000002,
-	0x404A2620, 0x404A6820, 0x00000002, 0x404A2820, 0x404A5A20, 0x00000002,
-	0x404A2820, 0x404A5C20, 0x00000002, 0x404A2820, 0x404A6220, 0x00000002,
-	0x404A2820, 0x404A6620, 0x00000002, 0x404A2820,
-	// Block 123, offset 0x1ec0
-	0x404A6820, 0x00000002, 0x404A2A20, 0x404A5A20, 0x00000002, 0x404A2A20,
-	0x404A5C20, 0x00000002, 0x404A2A20, 0x404A6220, 0x00000002, 0x404A2A20,
-	0x404A6620, 0x00000002, 0x404A2A20, 0x404A6820, 0x00000002, 0x404A2C20,
-	0x404A5A20, 0x00000002, 0x404A2C20, 0x404A5C20, 0x00000002, 0x404A2C20,
-	0x404A6220, 0x00000002, 0x404A2C20, 0x404A6620, 0x00000002, 0x404A2C20,
-	0x404A6820, 0x00000002, 0x404A2E20, 0x404A5A20, 0x00000002, 0x404A2E20,
-	0x404A5C20, 0x00000002, 0x404A2E20, 0x404A6220, 0x00000002, 0x404A2E20,
-	0x404A6620, 0x00000002, 0x404A2E20, 0x404A6820, 0x00000002, 0x404A3020,
-	0x404A5A20, 0x00000002, 0x404A3020, 0x404A5C20, 0x00000002, 0x404A3020,
-	0x404A6220, 0x00000002, 0x404A3020, 0x404A6620, 0x00000002, 0x404A3020,
-	0x404A6820, 0x00000002, 0x404A3220, 0x404A5A20,
-	// Block 124, offset 0x1f00
-	0x00000002, 0x404A3220, 0x404A5C20, 0x00000002, 0x404A3220, 0x404A6220,
-	0x00000002, 0x404A3220, 0x404A6620, 0x00000002, 0x404A3220, 0x404A6820,
-	0x00000002, 0x404A3420, 0x404A5A20, 0x00000002, 0x404A3420, 0x404A5C20,
-	0x00000002, 0x404A3420, 0x404A6220, 0x00000002, 0x404A3420, 0x404A6620,
-	0x00000002, 0x404A3420, 0x404A6820, 0x00000002, 0x404A3620, 0x404A5A20,
-	0x00000002, 0x404A3620, 0x404A5C20, 0x00000002, 0x404A3620, 0x404A6220,
-	0x00000002, 0x404A3620, 0x404A6620, 0x00000002, 0x404A3620, 0x404A6820,
-	0x00000002, 0x404A3820, 0x404A5A20, 0x00000002, 0x404A3820, 0x404A5C20,
-	0x00000002, 0x404A3820, 0x404A6220, 0x00000002, 0x404A3820, 0x404A6620,
-	0x00000002, 0x404A3820, 0x404A6820, 0x00000002, 0x404A3A20, 0x404A5A20,
-	0x00000002, 0x404A3A20, 0x404A5C20, 0x00000002,
-	// Block 125, offset 0x1f40
-	0x404A3A20, 0x404A6220, 0x00000002, 0x404A3A20, 0x404A6620, 0x00000002,
-	0x404A3A20, 0x404A6820, 0x00000002, 0x404A3C20, 0x404A5A20, 0x00000002,
-	0x404A3C20, 0x404A5C20, 0x00000002, 0x404A3C20, 0x404A6220, 0x00000002,
-	0x404A3C20, 0x404A6620, 0x00000002, 0x404A3C20, 0x404A6820, 0x00000002,
-	0x404A3E20, 0x404A5A20, 0x00000002, 0x404A3E20, 0x404A5C20, 0x00000002,
-	0x404A3E20, 0x404A6220, 0x00000002, 0x404A3E20, 0x404A6620, 0x00000002,
-	0x404A3E20, 0x404A6820, 0x00000002, 0x404A4020, 0x404A5A20, 0x00000002,
-	0x404A4020, 0x404A5C20, 0x00000002, 0x404A4020, 0x404A6220, 0x00000002,
-	0x404A4020, 0x404A6620, 0x00000002, 0x404A4020, 0x404A6820, 0x00000002,
-	0x404A4220, 0x404A5A20, 0x00000002, 0x404A4220, 0x404A5C20, 0x00000002,
-	0x404A4220, 0x404A6220, 0x00000002, 0x404A4220,
-	// Block 126, offset 0x1f80
-	0x404A6620, 0x00000002, 0x404A4220, 0x404A6820, 0x00000002, 0x404A4420,
-	0x404A5A20, 0x00000002, 0x404A4420, 0x404A5C20, 0x00000002, 0x404A4420,
-	0x404A6220, 0x00000002, 0x404A4420, 0x404A6620, 0x00000002, 0x404A4420,
-	0x404A6820, 0x00000002, 0x404A4620, 0x404A5A20, 0x00000002, 0x404A4620,
-	0x404A5C20, 0x00000002, 0x404A4620, 0x404A6220, 0x00000002, 0x404A4620,
-	0x404A6620, 0x00000002, 0x404A4620, 0x404A6820, 0x00000002, 0x404A4820,
-	0x404A5A20, 0x00000002, 0x404A4820, 0x404A5C20, 0x00000002, 0x404A4820,
-	0x404A6220, 0x00000002, 0x404A4820, 0x404A6620, 0x00000002, 0x404A4820,
-	0x404A6820, 0x00000002, 0x404A4A20, 0x404A5A20, 0x00000002, 0x404A4A20,
-	0x404A5C20, 0x00000002, 0x404A4A20, 0x404A6220, 0x00000002, 0x404A4A20,
-	0x404A6620, 0x00000002, 0x404A4A20, 0x404A6820,
-	// Block 127, offset 0x1fc0
-	0x00000002, 0x404A4C20, 0x404A5A20, 0x00000002, 0x404A4C20, 0x404A5C20,
-	0x00000002, 0x404A4C20, 0x404A6220, 0x00000002, 0x404A4C20, 0x404A6620,
-	0x00000002, 0x404A4C20, 0x404A6820, 0x00000002, 0x404A4E20, 0x404A5A20,
-	0x00000002, 0x404A4E20, 0x404A5C20, 0x00000002, 0x404A4E20, 0x404A6220,
-	0x00000002, 0x404A4E20, 0x404A6620, 0x00000002, 0x404A4E20, 0x404A6820,
-	0x00000002, 0x404A7620, 0x404AF820, 0x00000002, 0x404A7820, 0x404AF820,
-	0x00000002, 0x404A8020, 0x404B0020, 0x00000002, 0x404A8220, 0x404B0020,
-	0x00000002, 0x404AA020, 0x404B0020, 0x00000002, 0x404AA220, 0x404B0020,
-	0x00000002, 0x404AB020, 0x404B0020, 0x00000002, 0x404AB220, 0x404B0020,
-	0x00000002, 0x404AC020, 0x404B0020, 0x00000002, 0x404AC220, 0x404B0020,
-	0x00000002, 0x404AD020, 0x404B0020, 0x00000002,
-	// Block 128, offset 0x2000
-	0x404AD220, 0x404B0020, 0x00000002, 0x004AD684, 0xA0013A04, 0x00000002,
-	0x004AE684, 0xA0013A04, 0x00000002, 0x004AE884, 0xA0013A04, 0x00000002,
-	0x004AEA84, 0xA0013A04, 0x00000002, 0x404AEA20, 0x8281258D, 0x00000002,
-	0x404AEA20, 0x82812591, 0x00000002, 0x404AF020, 0x8281258D, 0x00000002,
-	0x404AF020, 0x82812591, 0x00000003, 0x004B0284, 0x004B3084, 0xA000F304,
-	0x00000003, 0x004EA684, 0x004F1484, 0x004EA684, 0x00000002, 0x0050AE84,
-	0x0050DA84, 0x00000003, 0x0050AE84, 0x0050DA84, 0x0050F084, 0x00000003,
-	0x00514E84, 0x00519A84, 0x00514E84, 0x00000002, 0x005ADA84, 0xA0013904,
-	0x00000002, 0x005ADC84, 0xA0013904, 0x00000002, 0x005ADC84, 0xA0013A04,
-	0x00000002, 0x005ADE84, 0xA0013904, 0x00000002, 0x005ADE84, 0x005ADE84,
-	0x00000002, 0x005AE084, 0xA0013904, 0x00000002,
-	// Block 129, offset 0x2040
-	0x005AE084, 0xA0013A04, 0x00000002, 0x005AE084, 0xA0013C04, 0x00000002,
-	0x005AE084, 0xA0013D04, 0x00000002, 0x005AE884, 0xA0013904, 0x00000002,
-	0x005AE884, 0xA0013A04, 0x00000002, 0x005AE884, 0xA0013C04, 0x00000002,
-	0x005AE884, 0xA0013D04, 0x00000002, 0x005AEC84, 0xA0013904, 0x00000002,
-	0x005AEE84, 0xA0013904, 0x00000002, 0x005AEE84, 0xA0013A04, 0x00000002,
-	0x005AEE84, 0xA0013C04, 0x00000002, 0x005AF084, 0xA0013904, 0x00000002,
-	0x005AF084, 0xA0013A04, 0x00000002, 0x005AF284, 0xA0013904, 0x00000002,
-	0x005AF484, 0xA0013904, 0x00000002, 0x005AF684, 0xA0013904, 0x00000002,
-	0x005AF684, 0x005B0884, 0x00000002, 0x005AFA84, 0xA0013904, 0x00000002,
-	0x005AFE84, 0xA0013904, 0x00000002, 0x005AFE84, 0xA0013A04, 0x00000002,
-	0x005AFE84, 0xA0013C04, 0x00000002, 0x005AFE84,
-	// Block 130, offset 0x2080
-	0xA0013D04, 0x00000002, 0x005AFE84, 0xA0013E04, 0x00000002, 0x005B0084,
-	0xA0013904, 0x00000002, 0x005B0084, 0xA0013A04, 0x00000002, 0x005B0284,
-	0xA0013904, 0x00000002, 0x005B0284, 0xA0013A04, 0x00000002, 0x005B0684,
-	0xA0013904, 0x00000002, 0x005B0684, 0xA0013A04, 0x00000004, 0x005B0684,
-	0xA0013904, 0x005B0684, 0xA0013904, 0x00000002, 0x005B0884, 0xA0013904,
-	0x00000002, 0x005B0A84, 0xA0013904, 0x00000002, 0x005B2484, 0xA0013904,
-	0x00000002, 0x005B2484, 0xA0013A04, 0x00000002, 0x005B2684, 0xA0013904,
-	0x00000002, 0x005B2A84, 0xA0013904, 0x00000002, 0x005B3084, 0xA0013904,
-	0x00000002, 0x005B3284, 0xA0013904, 0x00000002, 0x005B3484, 0xA0013904,
-	0x00000002, 0x005B3684, 0xA0013904, 0x00000002, 0x005B3884, 0xA0013904,
-	0x00000002, 0x005B3A84, 0xA0013904, 0x00000002,
-	// Block 131, offset 0x20c0
-	0x005B3E84, 0xA0013904, 0x00000002, 0x005B4084, 0xA0013904, 0x00000002,
-	0x005B4284, 0xA0013904, 0x00000002, 0x005B4484, 0xA0013904, 0x00000002,
-	0x005B4684, 0xA0013904, 0x00000002, 0x005B4884, 0xA0013904, 0x00000002,
-	0x005B5284, 0xA0013904, 0x00000002, 0x005B5484, 0xA0013904, 0x00000002,
-	0x005B5684, 0xA0013904, 0x00000002, 0x005B5884, 0xA0013904, 0x00000002,
-	0x005B5C84, 0xA0013904, 0x00000002, 0x005B6484, 0xA0013904, 0x00000002,
-	0x005B6684, 0xA0013904, 0x00000002, 0x005B6884, 0xA0013904, 0x00000002,
-	0x005B6A84, 0xA0013904, 0x00000002, 0x005B6C84, 0xA0013904, 0x00000002,
-	0x005B7484, 0xA0013904, 0x00000002, 0x005B7684, 0xA0013904, 0x00000002,
-	0x005B7884, 0xA0013904, 0x00000002, 0x005B7A84, 0xA0013904, 0x00000002,
-	0x005B9884, 0x005D9684, 0x00000002, 0x005BBC84,
-	// Block 132, offset 0x2100
-	0x005D9684, 0x00000002, 0x005BE684, 0x005D9684, 0x00000002, 0x005C0E84,
-	0x005D9884, 0x00000002, 0x005C2484, 0x005D9684, 0x00000002, 0x005C3084,
-	0x005D9884, 0x00000002, 0x005C3484, 0x005D9884, 0x00000002, 0x005C4084,
-	0x005D9684, 0x00000002, 0x005C8A84, 0x005D9684, 0x00000002, 0x005CE884,
-	0x005D9684, 0x00000002, 0x005D1684, 0x005D9684, 0x00000002, 0x005D2284,
-	0x005D9884, 0x00000002, 0x005D3084, 0x005D9684, 0x00000004, 0x0062C486,
-	0x0063C286, 0x0062C286, 0x0063CE86, 0x00000005, 0x0062C886, 0x0063A886,
-	0x00648286, 0x0062AC86, 0x0063B886, 0x00000003, 0x0065769C, 0x0027D69C,
-	0x0065CA9C, 0x00000005, 0x0065769C, 0x0065AA9C, 0xA001291C, 0x0027D69C,
-	0x00659E9C, 0x00000004, 0x0065769C, 0x0065CA9C, 0x0065AE9C, 0x0065769C,
-	0x00000005, 0x0065769C, 0x0065D89C, 0x0065B09C,
-	// Block 133, offset 0x2140
-	0xA001291C, 0x0065769C, 0x00000005, 0x0065789C, 0x0065A29C, 0x0065D89C,
-	0x0065869C, 0xA001281C, 0x00000003, 0x0065789C, 0x0065D89C, 0x0065989C,
-	0x00000002, 0x00657A8E, 0xA0812802, 0x00000002, 0x00657A91, 0xA0812802,
-	0x00000003, 0x00657A9C, 0x0065809C, 0x0065D89C, 0x00000004, 0x00657E9C,
-	0x0027D69C, 0x0065829C, 0x0027D69C, 0x00000006, 0x00657E9C, 0x0065909C,
-	0x0065869C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, 0x0065809C,
-	0x0027D69C, 0x0065B89C, 0x00000003, 0x0065809C, 0x0065D89C, 0x0065909C,
-	0x00000002, 0x0065828E, 0xA0812802, 0x00000002, 0x00658291, 0xA0812802,
-	0x00000003, 0x0065829C, 0x0065789C, 0x0065C89C, 0x00000004, 0x0065829C,
-	0x0065C69C, 0x00659A9C, 0x00659E9C, 0x00000004, 0x0065829C, 0x0065CE9C,
-	0x0065C89C, 0x0027D69C, 0x00000004, 0x0065829C,
-	// Block 134, offset 0x2180
-	0xA001281C, 0x0065CE9C, 0x0065D89C, 0x00000004, 0x0065829C, 0xA001281C,
-	0x0065D89C, 0x0065B49C, 0x00000002, 0x0065848E, 0xA0812802, 0x00000002,
-	0x00658491, 0xA0812802, 0x00000004, 0x0065849C, 0xA001281C, 0x0065829C,
-	0xA001281C, 0x00000004, 0x0065849C, 0xA001281C, 0x0065A29C, 0x0027D69C,
-	0x00000004, 0x0065849C, 0x0065C09C, 0x0065C89C, 0x0027D69C, 0x00000006,
-	0x0065849C, 0xA001281C, 0x0065CA9C, 0x0065969C, 0xA001281C, 0x0027D69C,
-	0x00000006, 0x0065849C, 0x0065CE9C, 0x0065869C, 0xA001281C, 0x0065C69C,
-	0x0065B89C, 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065BA9C, 0x0027D69C,
-	0x00659E9C, 0x0065CA9C, 0x00000005, 0x0065849C, 0x0065CE9C, 0x0065D09C,
-	0x00659A9C, 0x00659E9C, 0x00000002, 0x0065868E, 0xA0812802, 0x00000002,
-	0x00658691, 0xA0812802, 0x00000004, 0x0065869C,
-	// Block 135, offset 0x21c0
-	0xA001281C, 0x0065C69C, 0x0065B89C, 0x00000006, 0x0065869C, 0xA001281C,
-	0x0065C69C, 0x0065B89C, 0x00659E9C, 0x0065D89C, 0x00000006, 0x0065869C,
-	0x0065CA9C, 0x0065929C, 0xA001281C, 0x0065789C, 0x0065CE9C, 0x00000004,
-	0x0065869C, 0x0065CE9C, 0x0027D69C, 0x0065A69C, 0x00000002, 0x0065888E,
-	0xA0812802, 0x00000002, 0x00658891, 0xA0812802, 0x00000003, 0x0065889C,
-	0x0027D69C, 0x0065909C, 0x00000002, 0x00658A8E, 0xA0812802, 0x00000002,
-	0x00658A91, 0xA0812802, 0x00000004, 0x00658A9C, 0x0027D69C, 0x0065B29C,
-	0xA001291C, 0x00000003, 0x00658A9C, 0x0065CA9C, 0x0065A09C, 0x00000002,
-	0x00658C8E, 0xA0812802, 0x00000002, 0x00658C91, 0xA0812802, 0x00000004,
-	0x00658C9C, 0x0065789C, 0x0065869C, 0x0065CA9C, 0x00000005, 0x00658C9C,
-	0x0065D89C, 0x0065989C, 0x0027D69C, 0x0065B89C,
-	// Block 136, offset 0x2200
-	0x00000002, 0x00658E8E, 0xA0812802, 0x00000002, 0x00658E91, 0xA0812802,
-	0x00000002, 0x00658E84, 0x0065BA84, 0x00000005, 0x00658E9C, 0x0065C89C,
-	0x0065D89C, 0x0065869C, 0xA001281C, 0x00000002, 0x0065908E, 0xA0812802,
-	0x00000002, 0x00659091, 0xA0812802, 0x00000002, 0x0065928E, 0xA0812802,
-	0x00000002, 0x00659291, 0xA0812802, 0x00000003, 0x0065929C, 0x0065D89C,
-	0x0065989C, 0x00000003, 0x0065929C, 0x0065D89C, 0x00659E9C, 0x00000002,
-	0x0065948E, 0xA0812802, 0x00000002, 0x00659491, 0xA0812802, 0x00000002,
-	0x0065968E, 0xA0812802, 0x00000002, 0x00659691, 0xA0812802, 0x00000004,
-	0x0065969C, 0xA001281C, 0x0027D69C, 0x0065909C, 0x00000002, 0x0065988E,
-	0xA0812802, 0x00000002, 0x00659891, 0xA0812802, 0x00000002, 0x00659A8E,
-	0xA0812802, 0x00000002, 0x00659A91, 0xA0812802,
-	// Block 137, offset 0x2240
-	0x00000002, 0x00659C8E, 0xA0812802, 0x00000002, 0x00659C91, 0xA0812802,
-	0x00000003, 0x00659C9C, 0xA001281C, 0x00658E9C, 0x00000002, 0x00659E8E,
-	0xA0812802, 0x00000002, 0x00659E91, 0xA0812802, 0x00000003, 0x00659E9C,
-	0xA001281C, 0x0065CA9C, 0x00000003, 0x0065A89C, 0x00659A9C, 0x00659E9C,
-	0x00000002, 0x0065AA8E, 0xA0812802, 0x00000002, 0x0065AA91, 0xA0812802,
-	0x00000002, 0x0065AA8E, 0xA0812902, 0x00000002, 0x0065AA91, 0xA0812902,
-	0x00000006, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x0065929C, 0x0065D89C,
-	0x00659E9C, 0x00000004, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x00659A9C,
-	0x00000005, 0x0065AA9C, 0xA001281C, 0x0027D69C, 0x0065CC9C, 0x0065CA9C,
-	0x00000003, 0x0065AA9C, 0x0065789C, 0x00659A9C, 0x00000002, 0x0065AC8E,
-	0xA0812802, 0x00000002, 0x0065AC91, 0xA0812802,
-	// Block 138, offset 0x2280
-	0x00000002, 0x0065AC8E, 0xA0812902, 0x00000002, 0x0065AC91, 0xA0812902,
-	0x00000006, 0x0065AC9C, 0xA001291C, 0x0065769C, 0x0065909C, 0x00659E9C,
-	0x0065CA9C, 0x00000004, 0x0065AC9C, 0xA001291C, 0x0065869C, 0x0065CA9C,
-	0x00000003, 0x0065AC9C, 0xA001291C, 0x00658A9C, 0x00000003, 0x0065AC9C,
-	0xA001281C, 0x0065CA9C, 0x00000002, 0x0065AE8E, 0xA0812802, 0x00000002,
-	0x0065AE91, 0xA0812802, 0x00000002, 0x0065AE8E, 0xA0812902, 0x00000002,
-	0x0065AE91, 0xA0812902, 0x00000006, 0x0065AE9C, 0x0065769C, 0x0065C69C,
-	0x00659A9C, 0x00659E9C, 0xA001281C, 0x00000004, 0x0065AE9C, 0x0065789C,
-	0x0027D69C, 0x00659E9C, 0x00000006, 0x0065AE9C, 0xA001281C, 0x00659A9C,
-	0x00658E9C, 0x00657E9C, 0x0065CA9C, 0x00000003, 0x0065AE9C, 0x0065C69C,
-	0x0065D89C, 0x00000002, 0x0065B08E, 0xA0812802,
-	// Block 139, offset 0x22c0
-	0x00000002, 0x0065B091, 0xA0812802, 0x00000002, 0x0065B08E, 0xA0812902,
-	0x00000002, 0x0065B091, 0xA0812902, 0x00000005, 0x0065B09C, 0xA001291C,
-	0x0027D69C, 0x00658E9C, 0xA001281C, 0x00000004, 0x0065B09C, 0xA001281C,
-	0x0027D69C, 0x0065969C, 0x00000005, 0x0065B09C, 0x0065869C, 0x0065969C,
-	0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065B09C, 0xA001291C, 0x0065949C,
-	0x00000004, 0x0065B09C, 0xA001291C, 0x0065A29C, 0x0065AC9C, 0x00000003,
-	0x0065B09C, 0x0065CA9C, 0x00659A9C, 0x00000004, 0x0065B09C, 0xA001291C,
-	0x0065D89C, 0x0065909C, 0x00000002, 0x0065B28E, 0xA0812802, 0x00000002,
-	0x0065B291, 0xA0812802, 0x00000002, 0x0065B28E, 0xA0812902, 0x00000002,
-	0x0065B291, 0xA0812902, 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065CA9C,
-	0x00000003, 0x0065B29C, 0x0027D69C, 0x0065D89C,
-	// Block 140, offset 0x2300
-	0x00000005, 0x0065B29C, 0xA001291C, 0x0065789C, 0x0065D89C, 0x00659E9C,
-	0x00000004, 0x0065B29C, 0xA001281C, 0x0065CA9C, 0x00659E9C, 0x00000005,
-	0x0065B29C, 0xA001291C, 0x0065D89C, 0x00659E9C, 0xA001281C, 0x00000004,
-	0x0065B49C, 0x0065789C, 0x0065869C, 0x0065CE9C, 0x00000003, 0x0065B49C,
-	0x0065789C, 0x0065CA9C, 0x00000002, 0x0065B484, 0x00659084, 0x00000003,
-	0x0065B49C, 0x00659A9C, 0x0065AA9C, 0x00000003, 0x0065B49C, 0x0065CA9C,
-	0x0065869C, 0x00000005, 0x0065B49C, 0x0065D89C, 0x00658E9C, 0x0065C49C,
-	0x0065D89C, 0x00000004, 0x0065B69C, 0x0065869C, 0x0065CE9C, 0x0065D89C,
-	0x00000006, 0x0065B69C, 0x0065C89C, 0x0065AA9C, 0xA001281C, 0x0027D69C,
-	0x0065CA9C, 0x00000004, 0x0065BA9C, 0x0027D69C, 0x00659E9C, 0x0065CA9C,
-	0x00000003, 0x0065BA9C, 0x0065829C, 0xA001281C,
-	// Block 141, offset 0x2340
-	0x00000005, 0x0065BA9C, 0x0065829C, 0xA001281C, 0x00659E9C, 0x0065D89C,
-	0x00000004, 0x0065BE9C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003,
-	0x0065BE9C, 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065C09C, 0x0065769C,
-	0x0065D89C, 0x00000004, 0x0065C89C, 0x00659A9C, 0x00659E9C, 0x0065CA9C,
-	0x00000005, 0x0065CA9C, 0x0027D69C, 0x0065AE9C, 0xA001281C, 0x0065CA9C,
-	0x00000004, 0x0065CA9C, 0x0065AC9C, 0xA001291C, 0x0027D69C, 0x00000006,
-	0x0065CC9C, 0x0065D89C, 0x00659E9C, 0x0065889C, 0xA001281C, 0x0065D89C,
-	0x00000002, 0x0065D091, 0xA0812802, 0x00000003, 0x0065D09C, 0x00659A9C,
-	0x00659E9C, 0x00000002, 0x0065D291, 0xA0812802, 0x00000002, 0x0065D491,
-	0xA0812802, 0x00000002, 0x0065D691, 0xA0812802, 0x00000002, 0x0065DA84,
-	0xA0013A04, 0x00000002, 0x0065EC84, 0xA0013A04,
-	// Block 142, offset 0x2380
-	0x00000002, 0x0065F684, 0xA0013A04, 0x00000002, 0x00660684, 0xA0013A04,
-	0x00000002, 0x00661284, 0xA0013A04, 0x00000002, 0x00661484, 0xA0013A04,
-	0x00000002, 0x00661C84, 0xA0013A04, 0x00000002, 0x00661E84, 0xA0013A04,
-	0x00000002, 0x00662284, 0xA0013A04, 0x00000002, 0x00663884, 0xA0013A04,
-	0x00000002, 0x00663896, 0xA0013A16, 0x00000002, 0x00663A84, 0xA0013A04,
-	0x00000002, 0x00663A84, 0xA0013C04, 0x00000002, 0x0075C284, 0xA0013904,
-	0x00000002, 0x00862084, 0xA0013904, 0x00000002, 0x00862284, 0xA0013904,
-	0x00000002, 0x00862484, 0xA0013904, 0x00000002, 0x00862684, 0xA0013904,
-	0x00000002, 0x00862884, 0xA0013904, 0x00000002, 0x00862A84, 0xA0013904,
-	0x00000002, 0x00862C84, 0xA0013904, 0x00000002, 0x00862C84, 0xA0013A04,
-	0x00000002, 0x00862E84, 0xA0013904, 0x00000002,
-	// Block 143, offset 0x23c0
-	0x00863084, 0xA0013904, 0x00000002, 0x00863284, 0xA0013904, 0x00000002,
-	0x00863284, 0xA0013A04, 0x00000002, 0x00863484, 0xA0013904, 0x00000002,
-	0x00863484, 0xA0013A04, 0x00000002, 0x00863684, 0xA0013904, 0x00000002,
-	0x00863684, 0xA0013A04, 0x00000002, 0x00863884, 0xA0013904, 0x00000002,
-	0x00863A84, 0xA0013904, 0x00000002, 0x00863C84, 0xA0013904, 0x00000002,
-	0x00863E84, 0xA0013904, 0x00000002, 0x00863E84, 0xA0013A04, 0x00000002,
-	0x00863E84, 0xA0013C04, 0x00000002, 0x00864084, 0xA0013904, 0x00000002,
-	0x00864284, 0xA0013904, 0x00000002, 0x00864484, 0xA0013904, 0x00000002,
-	0x00864684, 0xA0013904, 0x00000002, 0x00864684, 0xA0013A04, 0x00000002,
-	0x00864884, 0xA0013904, 0x00000002, 0x00864884, 0xA0013A04, 0x00000002,
-	0x00864A84, 0xA0013904, 0x00000002, 0x00864C84,
-	// Block 144, offset 0x2400
-	0xA0013904, 0x00000002, 0x029C6C84, 0xA0013904, 0x00000002, 0x029CB284,
-	0xA0013904, 0x00000002, 0x02A30484, 0xA0013904, 0x00000002, 0x02A3C084,
-	0xA0013904, 0x00000002, 0x02A40084, 0xA0013904, 0x00000002, 0x02A6B884,
-	0xA0013904, 0x00000002, 0x02A6D284, 0xA0013904, 0x00000002, 0x02A70484,
-	0xA0013904, 0x00000002, 0x02B81E84, 0xA0013904, 0x00000002, 0x02B81E84,
-	0xA0013A04, 0x00000002, 0x02B84484, 0xA0013904, 0x00000002, 0x02B84684,
-	0xA0013904, 0x00000002, 0x02BEA084, 0xA0013904, 0x00000002, 0x02BF8684,
-	0xA0013904, 0x00000002, 0x02CBCA84, 0xA0013904, 0x00000002, 0x02CE1084,
-	0xA0013904, 0x00000004, 0x02D0549C, 0x02BE1E9C, 0x029E349C, 0x02F27C9C,
-	0x00000002, 0x02D6F484, 0xA0013904, 0x00000002, 0x02E45684, 0xA0013904,
-	0x00000002, 0x02E4B684, 0xA0013904, 0x00000002,
-	// Block 145, offset 0x2440
-	0x02E71684, 0xA0013904, 0x00000002, 0x02EB1684, 0xA0013904, 0x00000002,
-	0x02EDDC84, 0xA0013904, 0x00000002, 0x02F27484, 0xA0013904, 0x00000002,
-	0x02F5F284, 0xA0013904, 0x00000002, 0x02FEA484, 0xA0013904, 0x00000002,
-	0x02FEA684, 0xA0013904, 0x00000002, 0x02FEA684, 0xA0013A04, 0x00000002,
-	0x02FF1484, 0xA0013904, 0x00000002, 0x02FF1484, 0xA0013A04, 0x00000002,
-	0x0300FE84, 0xA0013904, 0x00000002, 0x03011284, 0xA0013904, 0x00000002,
-	0x0303F884, 0xA0013904, 0x00000002, 0x0304F284, 0xA0013904, 0x00000002,
-	0x0304F284, 0xA0013A04, 0x00000002, 0x0313A484, 0xA0013904, 0x00000002,
-	0x031B6684, 0xA0013904, 0x00000002, 0x031F6C84, 0xA0013904, 0x00000002,
-	0x031F6C84, 0xA0013A04, 0x00000002, 0x03212284, 0xA0013904, 0x00000002,
-	0x032C3884, 0xA0013904, 0x00000002, 0x032DD084,
-	// Block 146, offset 0x2480
-	0xA0013904, 0x00000002, 0x0331C084, 0xA0013904, 0x00000002, 0x03332C84,
-	0xA0013904, 0x00000002, 0x03355084, 0xA0013904, 0x00000002, 0x03367884,
-	0xA0013904, 0x00000002, 0x033CEA84, 0xA0013904, 0x00000002, 0x033E9484,
-	0xA0013904, 0x00000002, 0x033EA484, 0xA0013904, 0x00000002, 0x033F1A84,
-	0xA0013904, 0x00000002, 0x033F3884, 0xA0013904, 0x00000002, 0x033F3884,
-	0xA0013A04, 0x00000002, 0x00393C99, 0x003A8E99, 0x00000002, 0x00393C9A,
-	0x003A8E9A, 0x00000002, 0x00395699, 0x003A8E99, 0x00000002, 0x0039569A,
-	0x003A8E9A, 0x00000002, 0x00395899, 0x003A8E99, 0x00000002, 0x0039589A,
-	0x003A8E9A, 0x00000002, 0x00396499, 0x003A8E99, 0x00000002, 0x0039649A,
-	0x003A8E9A, 0x00000002, 0x00397299, 0x003A8E99, 0x00000002, 0x0039729A,
-	0x003A8E9A, 0x00000002, 0x00397499, 0x003A8E99,
-	// Block 147, offset 0x24c0
-	0x00000002, 0x0039749A, 0x003A8E9A, 0x00000002, 0x0039C699, 0x003A8E99,
-	0x00000002, 0x0039C69A, 0x003A8E9A, 0x00000002, 0x0039C899, 0x003A8E99,
-	0x00000002, 0x0039C89A, 0x003A8E9A, 0x00000002, 0x0039DC99, 0x003A8E99,
-	0x00000002, 0x0039DC9A, 0x003A8E9A, 0x00000002, 0x0039DE99, 0x003A8E99,
-	0x00000002, 0x0039DE9A, 0x003A8E9A, 0x00000002, 0x0039E699, 0x003A8E99,
-	0x00000002, 0x0039E69A, 0x003A8E9A, 0x00000002, 0x0039EE99, 0x003A8E99,
-	0x00000002, 0x0039EE9A, 0x003A8E9A, 0x00000002, 0x0039F099, 0x003A8E99,
-	0x00000002, 0x0039F09A, 0x003A8E9A, 0x00000002, 0x0039FC99, 0x003A8E99,
-	0x00000002, 0x0039FC9A, 0x003A8E9A, 0x00000002, 0x003A1299, 0x003A8E99,
-	0x00000002, 0x003A129A, 0x003A8E9A, 0x00000002, 0x003A1A99, 0x003A8E99,
-	0x00000002, 0x003A1A9A, 0x003A8E9A, 0x00000002,
-	// Block 148, offset 0x2500
-	0x003A4099, 0x003A8E99, 0x00000002, 0x003A409A, 0x003A8E9A, 0x00000002,
-	0x003A4E9A, 0x003A8E9A, 0x00000002, 0x003A5699, 0x003A8E99, 0x00000002,
-	0x003A569A, 0x003A8E9A, 0x00000002, 0x003A689A, 0x003A8E9A, 0x00000002,
-	0x003A9099, 0x003A8E99, 0x00000002, 0x003A909A, 0x003A8E9A, 0x00000003,
-	0x0003F484, 0x002D9A8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F5684,
-	0x0003F69F, 0x00000003, 0x0003F484, 0x002F568A, 0x0003F69F, 0x00000003,
-	0x0003F484, 0x0030F684, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F68A,
-	0x0003F69F, 0x00000002, 0x002C0A9D, 0x002F569C, 0x00000002, 0x402C3C20,
-	0xAE603202, 0x00000002, 0x002C3C83, 0xAE603202, 0x00000002, 0x402D6A20,
-	0xAE604702, 0x00000002, 0x002D6A83, 0xAE604702, 0x00000002, 0x402D6A20,
-	0xAE605202, 0x00000002, 0x002D6A83, 0xAE605202,
-	// Block 149, offset 0x2540
-	0x00000002, 0x002D9883, 0xAE603202, 0x00000002, 0x002D9883, 0xAE603502,
-	0x00000002, 0x002D9883, 0xAE603702, 0x00000002, 0x002D9883, 0xAE603C02,
-	0x00000002, 0x002D9883, 0xAE604102, 0x00000002, 0x002D9883, 0xAE604702,
-	0x00000003, 0x002D9883, 0xAE604702, 0xAE603202, 0x00000002, 0x002D9883,
-	0xAE604E02, 0x00000002, 0x002D9883, 0xACA05902, 0x00000002, 0x002D9883,
-	0xAE605B02, 0x00000002, 0x002D9883, 0xAE606402, 0x00000002, 0x002D9883,
-	0xAE606502, 0x00000002, 0x002D9883, 0xAE606702, 0x00000002, 0x002D9883,
-	0xADC07002, 0x00000002, 0x002D9883, 0xADC07A02, 0x00000002, 0x002D9A8A,
-	0x002D9A9F, 0x00000003, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F, 0x00000002,
-	0x002D9A8A, 0x002DCC8A, 0x00000002, 0x002D9A9D, 0x00306C9D, 0x00000002,
-	0x002D9A8A, 0x0030BE9F, 0x00000002, 0x002D9A84,
-	// Block 150, offset 0x2580
-	0x0030F69F, 0x00000002, 0x002D9A8A, 0x0030F69F, 0x00000002, 0x002E229C,
-	0x0030F69C, 0x00000002, 0x402EE420, 0xAE604E02, 0x00000002, 0x002EE483,
-	0xAE604E02, 0x00000002, 0x402EE420, 0xAE605B02, 0x00000002, 0x002EE483,
-	0xAE605B02, 0x00000002, 0x40306E20, 0xAE603202, 0x00000002, 0x00306E83,
-	0xAE603202, 0x00000002, 0x40306E20, 0xAE603502, 0x00000002, 0x00306E83,
-	0xAE603502, 0x00000002, 0x40306E20, 0xAE604102, 0x00000002, 0x00306E83,
-	0xAE604102, 0x00000002, 0x40306E20, 0xAE605B02, 0x00000002, 0x00306E83,
-	0xAE605B02, 0x00000002, 0x0030BE8A, 0x002D9A9F, 0x00000003, 0x0030BE8A,
-	0x002D9A8A, 0x002D9A9F, 0x00000002, 0x0030F684, 0x002D9A9F, 0x00000002,
-	0x0030F68A, 0x002D9A9F, 0x00000003, 0x0030F684, 0x002D9A84, 0x002D9A9F,
-	0x00000003, 0x0030F68A, 0x002D9A8A, 0x002D9A9F,
-	// Block 151, offset 0x25c0
-	0x00000002, 0x402FE820, 0xAE605202, 0x00000002, 0x002FE883, 0xAE605202,
-	0x00000002, 0x002C6294, 0xA0013914, 0x00000002, 0x00302C83, 0x402D6820,
-	0x00000002, 0x00302C89, 0x002D6888, 0x00000002, 0x40310021, 0xAE603202,
-	0x00000002, 0x003100A3, 0xAE603202, 0x00000002, 0x40310021, 0xAE603502,
-	0x00000002, 0x003100A3, 0xAE603502, 0x00000002, 0x40310021, 0xAE604102,
-	0x00000002, 0x003100A3, 0xAE604102, 0x00000002, 0x40310021, 0xAE605B02,
-	0x00000002, 0x003100A3, 0xAE605B02, 0x00000002, 0x40320C20, 0xAE603202,
-	0x00000002, 0x00320C83, 0xAE603202, 0x00000002, 0x40320C20, 0xAE605B02,
-	0x00000002, 0x00320C83, 0xAE605B02, 0x00000002, 0x40320C21, 0xAE605B02,
-	0x00000002, 0x00320CA3, 0xAE605B02, 0x00000002, 0x40320E20, 0xAE603202,
-	0x00000002, 0x00320E83, 0xAE603202, 0x00000002,
-	// Block 152, offset 0x2600
-	0x40320E21, 0xAE604E02, 0x00000002, 0x00320EA3, 0xAE604E02, 0x00000002,
-	0x40320E21, 0xAE605B02, 0x00000002, 0x00320EA3, 0xAE605B02, 0x00000002,
-	0x40321020, 0xAE603202, 0x00000002, 0x00321083, 0xAE603202, 0x00000002,
-	0x404A7620, 0x838225B3, 0x00000004, 0x004A8083, 0x404AB020, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004A8084, 0x404AB020, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004A8083, 0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004,
-	0x004A8084, 0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8083,
-	0x404AFA20, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8084, 0x404AFA20,
-	0x404A8020, 0x404AFA20, 0x00000002, 0x404A8020, 0x828225B5, 0x00000004,
-	0x004AB083, 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084,
-	0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004,
-	// Block 153, offset 0x2640
-	0x004AB083, 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084,
-	0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, 0x404AB820,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084, 0x404AB820, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004AB083, 0x404AC020, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AB084, 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000004,
-	0x004AB083, 0x404AC420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084,
-	0x404AC420, 0x404A8020, 0x404AFA20, 0x00000002, 0x404AB020, 0x828225B5,
-	0x00000002, 0x004AB083, 0x828225B5, 0x00000004, 0x004AC083, 0x404A8020,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AC084, 0x404A8020, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004AC083, 0x404AB020, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AC084, 0x404AB020, 0x404A8020,
-	// Block 154, offset 0x2680
-	0x404AFA20, 0x00000004, 0x004AC083, 0x404AFA20, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AC084, 0x404AFA20, 0x404A8020, 0x404AFA20, 0x00000002,
-	0x404AC020, 0x828225B5, 0x00000004, 0x004AC483, 0x404A8420, 0x404A8020,
-	0x404AFA20, 0x00000004, 0x004AC484, 0x404A8420, 0x404A8020, 0x404AFA20,
-	0x00000004, 0x004AC483, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004,
-	0x004AC484, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC483,
-	0x404AB420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC484, 0x404AB420,
-	0x404A8020, 0x404AFA20, 0x00000002, 0x404AD020, 0x828225B5, 0x00000004,
-	0x004AE083, 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084,
-	0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE083, 0x404AB020,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084,
-	// Block 155, offset 0x26c0
-	0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE083, 0x404AC020,
-	0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084, 0x404AC020, 0x404A8020,
-	0x404AFA20, 0x00000002, 0x404AEA20, 0x8281258B, 0x00000002, 0x404AF020,
-	0x8281258B, 0x00000002, 0x82822599, 0x838225B3, 0x00000002, 0x8282259B,
-	0x828225B5, 0x00000002, 0x828225A3, 0x828225B5, 0x00000002, 0x838225A3,
-	0x828225B5, 0x00000002, 0x828225A7, 0x828225B5, 0x00000002, 0x828225AB,
-	0x828225B5, 0x00000002, 0x402BDE20, 0xAE604202, 0x00000002, 0x002BDE88,
-	0xAE604202, 0x00000003, 0x402BDE20, 0xAE604202, 0xAE603202, 0x00000003,
-	0x002BDE88, 0xAE604202, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE604202,
-	0xAE603502, 0x00000003, 0x002BDE88, 0xAE604202, 0xAE603502, 0x00000003,
-	0x402BDE20, 0xAE604202, 0xAE604E02, 0x00000003,
-	// Block 156, offset 0x2700
-	0x002BDE88, 0xAE604202, 0xAE604E02, 0x00000003, 0x402BDE20, 0xAE604202,
-	0xAE606402, 0x00000003, 0x002BDE88, 0xAE604202, 0xAE606402, 0x00000003,
-	0x402BDE20, 0xADC07002, 0xAE604202, 0x00000003, 0x002BDE88, 0xADC07002,
-	0xAE604202, 0x00000002, 0x402C3A20, 0xAE604202, 0x00000002, 0x002C3A88,
-	0xAE604202, 0x00000002, 0x402C9820, 0xAE604202, 0x00000002, 0x002C9888,
-	0xAE604202, 0x00000003, 0x402C9820, 0xAE604202, 0xAE603202, 0x00000003,
-	0x002C9888, 0xAE604202, 0xAE603202, 0x00000003, 0x402C9820, 0xAE604202,
-	0xAE603502, 0x00000003, 0x002C9888, 0xAE604202, 0xAE603502, 0x00000003,
-	0x402C9820, 0xAE604202, 0xAE604E02, 0x00000003, 0x002C9888, 0xAE604202,
-	0xAE604E02, 0x00000003, 0x402C9820, 0xAE604202, 0xAE606402, 0x00000003,
-	0x002C9888, 0xAE604202, 0xAE606402, 0x00000003,
-	// Block 157, offset 0x2740
-	0x402C9820, 0xADC07002, 0xAE604202, 0x00000003, 0x002C9888, 0xADC07002,
-	0xAE604202, 0x00000002, 0x402D2220, 0xAE604202, 0x00000002, 0x002D2288,
-	0xAE604202, 0x00000002, 0x402D6820, 0xAE604202, 0x00000002, 0x002D6888,
-	0xAE604202, 0x00000002, 0x402D9A20, 0xAE604202, 0x00000002, 0x002D9A88,
-	0xAE604202, 0x00000002, 0x402DCC20, 0xAE604202, 0x00000002, 0x002DCC88,
-	0xAE604202, 0x00000002, 0x402EE220, 0xAE604202, 0x00000002, 0x002EE288,
-	0xAE604202, 0x00000003, 0x402EE220, 0xAE604202, 0xAE603202, 0x00000003,
-	0x002EE288, 0xAE604202, 0xAE603202, 0x00000003, 0x402EE220, 0xAE604202,
-	0xAE603502, 0x00000003, 0x002EE288, 0xAE604202, 0xAE603502, 0x00000003,
-	0x402EE220, 0xAE604202, 0xAE604E02, 0x00000003, 0x002EE288, 0xAE604202,
-	0xAE604E02, 0x00000003, 0x402EE220, 0xAE604202,
-	// Block 158, offset 0x2780
-	0xAE606402, 0x00000003, 0x002EE288, 0xAE604202, 0xAE606402, 0x00000003,
-	0x402EE220, 0xADC07002, 0xAE604202, 0x00000003, 0x002EE288, 0xADC07002,
-	0xAE604202, 0x00000002, 0x402FE620, 0xAE604202, 0x00000002, 0x002FE688,
-	0xAE604202, 0x00000002, 0x40306C20, 0xAE604202, 0x00000002, 0x00306C88,
-	0xAE604202, 0x00000002, 0x4030E220, 0xAE604202, 0x00000002, 0x0030E288,
-	0xAE604202, 0x00000002, 0x40310020, 0xAE604202, 0x00000002, 0x00310088,
-	0xAE604202, 0x00000002, 0x40312A20, 0xAE604202, 0x00000002, 0x00312A88,
-	0xAE604202, 0x00000002, 0x0002BA84, 0x0002BA9F, 0x00000002, 0x0002BA84,
-	0x0002C49F, 0x00000002, 0x0002C484, 0x0002BA9F, 0x00000003, 0x0003F484,
-	0x0029CE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029D084, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0029D284, 0x0003F69F,
-	// Block 159, offset 0x27c0
-	0x00000003, 0x0003F484, 0x0029D484, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0029D684, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029D884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0029DA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0029DC84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029DE84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002BDE84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002BDE8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C0A84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002C0A8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002C3A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C3A8A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002C6284, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002C628A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C9884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002C988A, 0x0003F69F,
-	// Block 160, offset 0x2800
-	0x00000003, 0x0003F484, 0x002D0884, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002D088A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D2284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002D228A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002D6884, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D688A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002D9A84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002DCC84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002DCC8A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002DFE84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002DFE8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E2284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002E228A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002E8284, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E828A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002E9E84, 0x0003F69F,
-	// Block 161, offset 0x2840
-	0x00000003, 0x0003F484, 0x002E9E8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002EE284, 0x0003F69F, 0x00000003, 0x0003F484, 0x002EE28A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002F2C84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002F2C8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F7A84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x002F7A8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x002FE684, 0x0003F69F, 0x00000003, 0x0003F484, 0x002FE68A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x00302C84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x00302C8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x00306C84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x00306C8A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0030BE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030BE8A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0030E284, 0x0003F69F,
-	// Block 162, offset 0x2880
-	0x00000003, 0x0003F484, 0x0030E28A, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x00310084, 0x0003F69F, 0x00000003, 0x0003F484, 0x0031008A, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x00312A84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x00312A8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062AC84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062B084, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062B284, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062B684, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062B884, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062BA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062BE84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062C284, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062C484, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062C884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0062CA84, 0x0003F69F,
-	// Block 163, offset 0x28c0
-	0x00000003, 0x0003F484, 0x0062CC84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x0062CE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062D084, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x029C0084, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x029C0684, 0x0003F69F, 0x00000003, 0x0003F484, 0x029C1284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x029CBA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x029D1884, 0x0003F69F, 0x00000003, 0x0003F484, 0x029D2884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x029DC684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x029E0284, 0x0003F69F, 0x00000003, 0x0003F484, 0x029E2284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02A2D684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02A2DA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A56884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02A68284, 0x0003F69F,
-	// Block 164, offset 0x2900
-	0x00000003, 0x0003F484, 0x02A6A884, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02A81A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A8F884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02ADB684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02AE3E84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02B6CC84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02CBCA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02CE1084, 0x0003F69F, 0x00000003, 0x0003F484, 0x02CE1284, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02CE5084, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02D05484, 0x0003F69F, 0x00000003, 0x0003F484, 0x02D86884, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02E0D684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02E4F284, 0x0003F69F, 0x00000003, 0x0003F484, 0x02EDC684, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x02F27C84, 0x0003F69F,
-	// Block 165, offset 0x2940
-	0x00000003, 0x0003F484, 0x02F2BA84, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x02F2DA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0303D484, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0303E684, 0x0003F69F, 0x00000003, 0x0003F484,
-	0x03194284, 0x0003F69F, 0x00000003, 0x0003F484, 0x03198E84, 0x0003F69F,
-	0x00000003, 0x0003F484, 0x0323A284, 0x0003F69F, 0x00000003, 0x0004B084,
-	0x002FE68A, 0x0004B29F, 0x00000002, 0x00070484, 0x002C3A8A, 0x00000002,
-	0x00070484, 0x002D088A, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000003,
-	0x0029CE84, 0x0029DA84, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029DA84,
-	0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029DA84, 0x02E1729F, 0x00000002,
-	0x0029D086, 0x0029DA86, 0x00000003, 0x0029D084, 0x0029DA84, 0x02CBCA9F,
-	0x00000002, 0x0029D286, 0x0029DA86, 0x00000002,
-	// Block 166, offset 0x2980
-	0x0029D486, 0x0029DA86, 0x00000002, 0x0029DA84, 0x0002409F, 0x00000002,
-	0x0029DA84, 0x0002E49F, 0x00000002, 0x0029DA84, 0x02CBCA9F, 0x00000002,
-	0x0029DA84, 0x02CE109F, 0x00000002, 0x0029DA84, 0x02E1729F, 0x00000002,
-	0x002BDE9D, 0x00306C9D, 0x00000002, 0x002BDE84, 0x0031E284, 0x00000002,
-	0x402BF220, 0xAE603202, 0x00000002, 0x402BF220, 0xAE603502, 0x00000002,
-	0x402BF220, 0xAE603702, 0x00000003, 0x402BF220, 0xAE603702, 0xAE603202,
-	0x00000003, 0x402BF220, 0xAE603702, 0xAE603502, 0x00000003, 0x402BF220,
-	0xAE603702, 0xAE604E02, 0x00000003, 0x402BF220, 0xAE603702, 0xAE606402,
-	0x00000002, 0x402BF220, 0xAE603C02, 0x00000003, 0x402BF220, 0xAE603C02,
-	0xAE603202, 0x00000003, 0x402BF220, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x402BF220, 0xAE603C02, 0xAE604E02, 0x00000003,
-	// Block 167, offset 0x29c0
-	0x402BF220, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BF220, 0xAE604102,
-	0x00000002, 0x402BF220, 0xAE604302, 0x00000003, 0x402BF220, 0xAE604302,
-	0xAE603202, 0x00000002, 0x402BF220, 0xAE604702, 0x00000003, 0x402BF220,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402BF220, 0xAE604E02, 0x00000002,
-	0x402BF220, 0xAE605202, 0x00000003, 0x402BF220, 0xAE605202, 0xAE605B02,
-	0x00000002, 0x402BF220, 0xACA05902, 0x00000002, 0x402BF220, 0xAE605B02,
-	0x00000002, 0x402BF220, 0xAE606402, 0x00000002, 0x402BF220, 0xAE606502,
-	0x00000002, 0x402BF220, 0xAE606702, 0x00000002, 0x402BF220, 0xADC07002,
-	0x00000003, 0x402BF220, 0xADC07002, 0xAE603702, 0x00000003, 0x402BF220,
-	0xADC07002, 0xAE603C02, 0x00000002, 0x402BF220, 0xADC07602, 0x00000002,
-	0x402BF420, 0xAE605202, 0x00000002, 0x402BF420,
-	// Block 168, offset 0x2a00
-	0xADC07002, 0x00000002, 0x402BF420, 0xADC07B02, 0x00000002, 0x402BF620,
-	0xAE603202, 0x00000002, 0x402BF620, 0xAE603C02, 0x00000002, 0x402BF620,
-	0xAE604102, 0x00000002, 0x402BF620, 0xAE605202, 0x00000002, 0x402BF620,
-	0xACA05602, 0x00000003, 0x402BF620, 0xACA05602, 0xAE603202, 0x00000002,
-	0x402BF820, 0xAE604102, 0x00000002, 0x402BF820, 0xAE605202, 0x00000002,
-	0x402BF820, 0xACA05602, 0x00000002, 0x402BF820, 0xADC07002, 0x00000002,
-	0x402BF820, 0xADC07802, 0x00000002, 0x402BF820, 0xADC07B02, 0x00000002,
-	0x402BFA20, 0xAE603202, 0x00000002, 0x402BFA20, 0xAE603502, 0x00000002,
-	0x402BFA20, 0xAE603702, 0x00000002, 0x402BFA20, 0xAE603C02, 0x00000003,
-	0x402BFA20, 0xAE603C02, 0xAE603202, 0x00000003, 0x402BFA20, 0xAE603C02,
-	0xAE603502, 0x00000003, 0x402BFA20, 0xAE603C02,
-	// Block 169, offset 0x2a40
-	0xAE604E02, 0x00000003, 0x402BFA20, 0xAE603C02, 0xAE606402, 0x00000002,
-	0x402BFA20, 0xAE604102, 0x00000002, 0x402BFA20, 0xAE604702, 0x00000002,
-	0x402BFA20, 0xAE604E02, 0x00000002, 0x402BFA20, 0xAE605202, 0x00000002,
-	0x402BFA20, 0xACA05602, 0x00000003, 0x402BFA20, 0xACA05602, 0xAE603702,
-	0x00000002, 0x402BFA20, 0xACA05902, 0x00000002, 0x402BFA20, 0xAE605B02,
-	0x00000003, 0x402BFA20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402BFA20,
-	0xAE605B02, 0xAE603502, 0x00000002, 0x402BFA20, 0xAE606402, 0x00000002,
-	0x402BFA20, 0xAE606502, 0x00000002, 0x402BFA20, 0xAE606702, 0x00000002,
-	0x402BFA20, 0xADC07002, 0x00000003, 0x402BFA20, 0xADC07002, 0xAE603C02,
-	0x00000002, 0x402BFA20, 0xADC07802, 0x00000002, 0x402BFA20, 0xADC07A02,
-	0x00000002, 0x402BFC20, 0xAE605202, 0x00000002,
-	// Block 170, offset 0x2a80
-	0x402BFE20, 0xAE603202, 0x00000002, 0x402BFE20, 0xAE603702, 0x00000002,
-	0x402BFE20, 0xAE603C02, 0x00000002, 0x402BFE20, 0xAE604102, 0x00000002,
-	0x402BFE20, 0xAE605202, 0x00000002, 0x402BFE20, 0xACA05602, 0x00000002,
-	0x402BFE20, 0xAE605B02, 0x00000002, 0x402C0020, 0xAE603C02, 0x00000002,
-	0x402C0020, 0xAE604102, 0x00000002, 0x402C0020, 0xAE604702, 0x00000002,
-	0x402C0020, 0xAE605202, 0x00000002, 0x402C0020, 0xACA05602, 0x00000002,
-	0x402C0020, 0xADC07002, 0x00000002, 0x402C0020, 0xADC07902, 0x00000002,
-	0x402C0220, 0xAE603202, 0x00000002, 0x402C0220, 0xAE603502, 0x00000002,
-	0x402C0220, 0xAE603702, 0x00000002, 0x402C0220, 0xAE603C02, 0x00000002,
-	0x402C0220, 0xAE604102, 0x00000002, 0x402C0220, 0xAE604702, 0x00000003,
-	0x402C0220, 0xAE604702, 0xAE603202, 0x00000002,
-	// Block 171, offset 0x2ac0
-	0x402C0220, 0xAE604E02, 0x00000002, 0x402C0220, 0xAE605202, 0x00000002,
-	0x402C0220, 0xACA05902, 0x00000002, 0x402C0220, 0xAE605B02, 0x00000002,
-	0x402C0220, 0xAE606402, 0x00000002, 0x402C0220, 0xAE606502, 0x00000002,
-	0x402C0220, 0xAE606702, 0x00000002, 0x402C0220, 0xADC07002, 0x00000002,
-	0x402C0220, 0xADC07A02, 0x00000002, 0x402C0420, 0xAE603C02, 0x00000002,
-	0x402C0620, 0xAE603202, 0x00000002, 0x402C0620, 0xAE604102, 0x00000002,
-	0x402C0620, 0xACA05602, 0x00000002, 0x402C0620, 0xADC07002, 0x00000002,
-	0x402C0620, 0xADC07B02, 0x00000002, 0x402C0820, 0xAE603202, 0x00000002,
-	0x402C0820, 0xAE604102, 0x00000002, 0x402C0820, 0xACA05602, 0x00000002,
-	0x402C0820, 0xADC07002, 0x00000003, 0x402C0820, 0xADC07002, 0xAE605B02,
-	0x00000002, 0x402C0820, 0xADC07802, 0x00000002,
-	// Block 172, offset 0x2b00
-	0x402C0820, 0xADC07B02, 0x00000002, 0x402C0A20, 0xAE603202, 0x00000002,
-	0x402C0A20, 0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002,
-	0x402C0C20, 0xAE603202, 0x00000002, 0x402C0C20, 0xAE603502, 0x00000002,
-	0x402C0C20, 0xAE604102, 0x00000002, 0x402C0C20, 0xAE604E02, 0x00000002,
-	0x402C0C20, 0xAE605202, 0x00000002, 0x402C0C20, 0xACA05602, 0x00000002,
-	0x402C0C20, 0xADC07002, 0x00000002, 0x402C0C20, 0xADC07802, 0x00000002,
-	0x402C0C20, 0xADC07B02, 0x00000002, 0x402C0E20, 0xAE603202, 0x00000002,
-	0x402C0E20, 0xAE603502, 0x00000002, 0x402C0E20, 0xAE603702, 0x00000002,
-	0x402C0E20, 0xAE603C02, 0x00000003, 0x402C0E20, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x402C0E20, 0xAE603C02, 0xAE603502, 0x00000003, 0x402C0E20,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x402C0E20,
-	// Block 173, offset 0x2b40
-	0xAE603C02, 0xAE606402, 0x00000002, 0x402C0E20, 0xAE604102, 0x00000002,
-	0x402C0E20, 0xAE604702, 0x00000003, 0x402C0E20, 0xAE604702, 0xAE605B02,
-	0x00000002, 0x402C0E20, 0xAE604D02, 0x00000002, 0x402C0E20, 0xAE604E02,
-	0x00000003, 0x402C0E20, 0xAE604E02, 0xAE603202, 0x00000003, 0x402C0E20,
-	0xAE604E02, 0xAE604702, 0x00000003, 0x402C0E20, 0xAE604E02, 0xAE605B02,
-	0x00000002, 0x402C0E20, 0xAE605202, 0x00000003, 0x402C0E20, 0xAE605202,
-	0xAE605B02, 0x00000002, 0x402C0E20, 0xACA05902, 0x00000003, 0x402C0E20,
-	0xACA05902, 0xAE605B02, 0x00000002, 0x402C0E20, 0xAE605B02, 0x00000003,
-	0x402C0E20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402C0E20, 0xAE605B02,
-	0xAE603502, 0x00000002, 0x402C0E20, 0xAE606402, 0x00000002, 0x402C0E20,
-	0xAE606502, 0x00000002, 0x402C0E20, 0xAE606702,
-	// Block 174, offset 0x2b80
-	0x00000002, 0x402C0E20, 0xAD806802, 0x00000003, 0x402C0E20, 0xAD806802,
-	0xAE603202, 0x00000003, 0x402C0E20, 0xAD806802, 0xAE603502, 0x00000003,
-	0x402C0E20, 0xAD806802, 0xAE604E02, 0x00000003, 0x402C0E20, 0xAD806802,
-	0xAE606402, 0x00000003, 0x402C0E20, 0xAD806802, 0xADC07002, 0x00000002,
-	0x402C0E20, 0xADC07002, 0x00000003, 0x402C0E20, 0xADC07002, 0xAE603C02,
-	0x00000002, 0x402C1020, 0xAE603202, 0x00000002, 0x402C1020, 0xAE605202,
-	0x00000002, 0x402C1420, 0xAE603202, 0x00000002, 0x402C1420, 0xAE604102,
-	0x00000002, 0x402C1420, 0xAE605202, 0x00000002, 0x402C1420, 0xACA05602,
-	0x00000002, 0x402C1420, 0xAE606502, 0x00000002, 0x402C1420, 0xAE606702,
-	0x00000002, 0x402C1420, 0xADC07002, 0x00000003, 0x402C1420, 0xADC07002,
-	0xAE605B02, 0x00000002, 0x402C1420, 0xADC07B02,
-	// Block 175, offset 0x2bc0
-	0x00000002, 0x402C1620, 0xAE603202, 0x00000003, 0x402C1620, 0xAE603202,
-	0xAE605202, 0x00000002, 0x402C1620, 0xAE603C02, 0x00000002, 0x402C1620,
-	0xAE604102, 0x00000003, 0x402C1620, 0xAE604102, 0xAE605202, 0x00000002,
-	0x402C1620, 0xAE605202, 0x00000002, 0x402C1620, 0xACA05602, 0x00000002,
-	0x402C1620, 0xADC07002, 0x00000003, 0x402C1620, 0xADC07002, 0xAE605202,
-	0x00000002, 0x402C1620, 0xADC07702, 0x00000002, 0x402C1820, 0xAE604102,
-	0x00000002, 0x402C1820, 0xAE605202, 0x00000002, 0x402C1820, 0xACA05602,
-	0x00000002, 0x402C1820, 0xADC07002, 0x00000002, 0x402C1820, 0xADC07702,
-	0x00000002, 0x402C1820, 0xADC07802, 0x00000002, 0x402C1820, 0xADC07B02,
-	0x00000002, 0x402C1A20, 0xAE603202, 0x00000002, 0x402C1A20, 0xAE603502,
-	0x00000002, 0x402C1A20, 0xAE603702, 0x00000002,
-	// Block 176, offset 0x2c00
-	0x402C1A20, 0xAE603C02, 0x00000002, 0x402C1A20, 0xAE604102, 0x00000002,
-	0x402C1A20, 0xAE604302, 0x00000002, 0x402C1A20, 0xAE604702, 0x00000003,
-	0x402C1A20, 0xAE604702, 0xAE603202, 0x00000003, 0x402C1A20, 0xAE604702,
-	0xAE603502, 0x00000003, 0x402C1A20, 0xAE604702, 0xAE604102, 0x00000003,
-	0x402C1A20, 0xAE604702, 0xAE605B02, 0x00000002, 0x402C1A20, 0xAE604D02,
-	0x00000002, 0x402C1A20, 0xAE604E02, 0x00000003, 0x402C1A20, 0xAE604E02,
-	0xAE603202, 0x00000002, 0x402C1A20, 0xACA05902, 0x00000002, 0x402C1A20,
-	0xAE605B02, 0x00000003, 0x402C1A20, 0xAE605B02, 0xAE604702, 0x00000002,
-	0x402C1A20, 0xAE606402, 0x00000002, 0x402C1A20, 0xAE606502, 0x00000002,
-	0x402C1A20, 0xAE606702, 0x00000002, 0x402C1A20, 0xAD806802, 0x00000003,
-	0x402C1A20, 0xAD806802, 0xAE603202, 0x00000003,
-	// Block 177, offset 0x2c40
-	0x402C1A20, 0xAD806802, 0xAE603502, 0x00000003, 0x402C1A20, 0xAD806802,
-	0xAE604E02, 0x00000003, 0x402C1A20, 0xAD806802, 0xAE606402, 0x00000003,
-	0x402C1A20, 0xAD806802, 0xADC07002, 0x00000002, 0x402C1A20, 0xADC07002,
-	0x00000002, 0x402C1A20, 0xADC07502, 0x00000002, 0x402C1A20, 0xADC07802,
-	0x00000002, 0x402C1A20, 0xADC07A02, 0x00000002, 0x402C1C20, 0xAE604E02,
-	0x00000002, 0x402C1C20, 0xADC07002, 0x00000002, 0x402C1E20, 0xAE603202,
-	0x00000002, 0x402C1E20, 0xAE603502, 0x00000002, 0x402C1E20, 0xAE603C02,
-	0x00000002, 0x402C1E20, 0xAE604702, 0x00000002, 0x402C1E20, 0xAE605202,
-	0x00000002, 0x402C1E20, 0xADC07002, 0x00000002, 0x402C2020, 0xAE604702,
-	0x00000002, 0x402C2020, 0xAE605202, 0x00000002, 0x402C2220, 0xAE603202,
-	0x00000002, 0x402C2220, 0xAE603502, 0x00000002,
-	// Block 178, offset 0x2c80
-	0x402C2220, 0xAE603C02, 0x00000002, 0x402C2220, 0xAE604702, 0x00000002,
-	0x402C2220, 0xAE604E02, 0x00000002, 0x402C2220, 0xAE605202, 0x00000002,
-	0x402C2220, 0xAE605B02, 0x00000002, 0x402C2220, 0xAE606402, 0x00000002,
-	0x402C2220, 0xADC07002, 0x00000002, 0x402C2420, 0xAE603202, 0x00000002,
-	0x402C2420, 0xAE603C02, 0x00000002, 0x402C2420, 0xAE604102, 0x00000002,
-	0x402C2420, 0xAE605202, 0x00000002, 0x402C2420, 0xADC07002, 0x00000002,
-	0x402C2420, 0xADC07B02, 0x00000002, 0x402C2820, 0xAE603202, 0x00000002,
-	0x402C2820, 0xAE603502, 0x00000002, 0x402C2820, 0xAE603702, 0x00000003,
-	0x402C2820, 0xAE603702, 0xAE603202, 0x00000003, 0x402C2820, 0xAE603702,
-	0xAE603502, 0x00000003, 0x402C2820, 0xAE603702, 0xAE604E02, 0x00000003,
-	0x402C2820, 0xAE603702, 0xAE606402, 0x00000002,
-	// Block 179, offset 0x2cc0
-	0x402C2820, 0xAE603C02, 0x00000003, 0x402C2820, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x402C2820, 0xAE603C02, 0xAE603502, 0x00000003, 0x402C2820,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x402C2820, 0xAE603C02, 0xAE606402,
-	0x00000002, 0x402C2820, 0xAE604102, 0x00000002, 0x402C2820, 0xAE604302,
-	0x00000003, 0x402C2820, 0xAE604302, 0xAE603202, 0x00000002, 0x402C2820,
-	0xAE604702, 0x00000003, 0x402C2820, 0xAE604702, 0xAE605B02, 0x00000002,
-	0x402C2820, 0xAE604E02, 0x00000002, 0x402C2820, 0xAE605202, 0x00000003,
-	0x402C2820, 0xAE605202, 0xAE605B02, 0x00000002, 0x402C2820, 0xACA05902,
-	0x00000002, 0x402C2820, 0xAE605B02, 0x00000002, 0x402C2820, 0xAE606402,
-	0x00000002, 0x402C2820, 0xAE606502, 0x00000002, 0x402C2820, 0xAE606702,
-	0x00000002, 0x402C2820, 0xADC07002, 0x00000003,
-	// Block 180, offset 0x2d00
-	0x402C2820, 0xADC07002, 0xAE603702, 0x00000003, 0x402C2820, 0xADC07002,
-	0xAE603C02, 0x00000002, 0x402C2820, 0xADC07602, 0x00000002, 0x402C2A20,
-	0xAE603202, 0x00000002, 0x402C2A20, 0xAE603702, 0x00000002, 0x402C2A20,
-	0xAE603C02, 0x00000002, 0x402C2A20, 0xAE604102, 0x00000002, 0x402C2A20,
-	0xAE605202, 0x00000002, 0x402C2A20, 0xACA05602, 0x00000002, 0x402C2A20,
-	0xAE605B02, 0x00000002, 0x402C2C20, 0xAE603C02, 0x00000002, 0x402C2C20,
-	0xAE604102, 0x00000002, 0x402C2C20, 0xAE604702, 0x00000002, 0x402C2C20,
-	0xAE605202, 0x00000002, 0x402C2C20, 0xACA05602, 0x00000002, 0x402C2C20,
-	0xADC07002, 0x00000002, 0x402C2C20, 0xADC07902, 0x00000002, 0x402C2C20,
-	0xADC07B02, 0x00000002, 0x402C2E20, 0xAE603202, 0x00000002, 0x402C2E20,
-	0xAE603502, 0x00000002, 0x402C2E20, 0xAE603702,
-	// Block 181, offset 0x2d40
-	0x00000002, 0x402C2E20, 0xAE603C02, 0x00000002, 0x402C2E20, 0xAE604102,
-	0x00000002, 0x402C2E20, 0xAE604702, 0x00000003, 0x402C2E20, 0xAE604702,
-	0xAE603202, 0x00000002, 0x402C2E20, 0xAE604E02, 0x00000002, 0x402C2E20,
-	0xACA05902, 0x00000002, 0x402C2E20, 0xAE605B02, 0x00000002, 0x402C2E20,
-	0xAE606402, 0x00000002, 0x402C2E20, 0xAE606502, 0x00000002, 0x402C2E20,
-	0xAE606702, 0x00000002, 0x402C2E20, 0xADC07002, 0x00000002, 0x402C2E20,
-	0xADC07A02, 0x00000002, 0x402C3020, 0xAE603C02, 0x00000002, 0x402C3020,
-	0xAE604102, 0x00000002, 0x402C3220, 0xAE603202, 0x00000002, 0x402C3220,
-	0xAE604102, 0x00000002, 0x402C3220, 0xACA05602, 0x00000002, 0x402C3220,
-	0xADC07002, 0x00000002, 0x402C3220, 0xADC07B02, 0x00000002, 0x402C3420,
-	0xAE603202, 0x00000002, 0x402C3420, 0xAE604102,
-	// Block 182, offset 0x2d80
-	0x00000002, 0x402C3420, 0xACA05602, 0x00000002, 0x402C3420, 0xADC07002,
-	0x00000003, 0x402C3420, 0xADC07002, 0xAE605B02, 0x00000002, 0x402C3420,
-	0xADC07802, 0x00000002, 0x402C3420, 0xADC07B02, 0x00000002, 0x402C3620,
-	0xAE603202, 0x00000002, 0x402C3620, 0xAE605202, 0x00000002, 0x402C3620,
-	0xADC07002, 0x00000002, 0x402C3820, 0xAE603202, 0x00000002, 0x402C3820,
-	0xAE603502, 0x00000002, 0x402C3820, 0xAE604102, 0x00000002, 0x402C3820,
-	0xAE604E02, 0x00000002, 0x402C3820, 0xAE605202, 0x00000002, 0x402C3820,
-	0xACA05602, 0x00000002, 0x402C3820, 0xADC07002, 0x00000002, 0x402C3820,
-	0xADC07802, 0x00000002, 0x402C3820, 0xADC07B02, 0x00000002, 0x402C3A20,
-	0xAE603202, 0x00000002, 0x402C3A20, 0xAE603502, 0x00000002, 0x402C3A20,
-	0xAE603702, 0x00000002, 0x402C3A20, 0xAE603C02,
-	// Block 183, offset 0x2dc0
-	0x00000003, 0x402C3A20, 0xAE603C02, 0xAE603202, 0x00000003, 0x402C3A20,
-	0xAE603C02, 0xAE603502, 0x00000003, 0x402C3A20, 0xAE603C02, 0xAE604E02,
-	0x00000003, 0x402C3A20, 0xAE603C02, 0xAE606402, 0x00000002, 0x402C3A20,
-	0xAE604102, 0x00000002, 0x402C3A20, 0xAE604702, 0x00000003, 0x402C3A20,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402C3A20, 0xAE604D02, 0x00000002,
-	0x402C3A20, 0xAE604E02, 0x00000003, 0x402C3A20, 0xAE604E02, 0xAE603202,
-	0x00000003, 0x402C3A20, 0xAE604E02, 0xAE604702, 0x00000003, 0x402C3A20,
-	0xAE604E02, 0xAE605B02, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000003,
-	0x402C3A20, 0xAE605202, 0xAE605B02, 0x00000002, 0x402C3A20, 0xACA05902,
-	0x00000003, 0x402C3A20, 0xACA05902, 0xAE605B02, 0x00000002, 0x402C3A20,
-	0xAE605B02, 0x00000003, 0x402C3A20, 0xAE605B02,
-	// Block 184, offset 0x2e00
-	0xAE603202, 0x00000003, 0x402C3A20, 0xAE605B02, 0xAE603502, 0x00000002,
-	0x402C3A20, 0xAE606402, 0x00000002, 0x402C3A20, 0xAE606502, 0x00000002,
-	0x402C3A20, 0xAE606702, 0x00000002, 0x402C3A20, 0xAD806802, 0x00000003,
-	0x402C3A20, 0xAD806802, 0xAE603202, 0x00000003, 0x402C3A20, 0xAD806802,
-	0xAE603502, 0x00000003, 0x402C3A20, 0xAD806802, 0xAE604E02, 0x00000003,
-	0x402C3A20, 0xAD806802, 0xAE606402, 0x00000003, 0x402C3A20, 0xAD806802,
-	0xADC07002, 0x00000002, 0x402C3A20, 0xADC07002, 0x00000003, 0x402C3A20,
-	0xADC07002, 0xAE603C02, 0x00000002, 0x002C3A9C, 0x002C3A9C, 0x00000002,
-	0x002C3A8C, 0x002C628C, 0x00000002, 0x002C3A9C, 0x002C629C, 0x00000002,
-	0x002C3A9C, 0x002E829C, 0x00000002, 0x402C3C20, 0xAE603202, 0x00000002,
-	0x402C3C20, 0xAE605202, 0x00000002, 0x402C4020,
-	// Block 185, offset 0x2e40
-	0xAE603202, 0x00000002, 0x402C4020, 0xAE604102, 0x00000002, 0x402C4020,
-	0xAE605202, 0x00000002, 0x402C4020, 0xACA05602, 0x00000002, 0x402C4020,
-	0xAE606502, 0x00000002, 0x402C4020, 0xAE606702, 0x00000002, 0x402C4020,
-	0xADC07002, 0x00000003, 0x402C4020, 0xADC07002, 0xAE605B02, 0x00000002,
-	0x402C4020, 0xADC07B02, 0x00000002, 0x402C4220, 0xAE603202, 0x00000003,
-	0x402C4220, 0xAE603202, 0xAE605202, 0x00000002, 0x402C4220, 0xAE603C02,
-	0x00000002, 0x402C4220, 0xAE604102, 0x00000003, 0x402C4220, 0xAE604102,
-	0xAE605202, 0x00000002, 0x402C4220, 0xAE605202, 0x00000002, 0x402C4220,
-	0xACA05602, 0x00000002, 0x402C4220, 0xADC07002, 0x00000003, 0x402C4220,
-	0xADC07002, 0xAE605202, 0x00000002, 0x402C4220, 0xADC07702, 0x00000002,
-	0x402C4420, 0xAE604102, 0x00000002, 0x402C4420,
-	// Block 186, offset 0x2e80
-	0xAE604702, 0x00000002, 0x402C4420, 0xAE605202, 0x00000002, 0x402C4420,
-	0xACA05602, 0x00000002, 0x402C4420, 0xADC07002, 0x00000002, 0x402C4420,
-	0xADC07702, 0x00000002, 0x402C4420, 0xADC07802, 0x00000002, 0x402C4420,
-	0xADC07B02, 0x00000002, 0x402C4620, 0xAE603202, 0x00000002, 0x402C4620,
-	0xAE603502, 0x00000002, 0x402C4620, 0xAE603702, 0x00000002, 0x402C4620,
-	0xAE603C02, 0x00000002, 0x402C4620, 0xAE604102, 0x00000002, 0x402C4620,
-	0xAE604302, 0x00000002, 0x402C4620, 0xAE604702, 0x00000003, 0x402C4620,
-	0xAE604702, 0xAE603202, 0x00000003, 0x402C4620, 0xAE604702, 0xAE603502,
-	0x00000003, 0x402C4620, 0xAE604702, 0xAE604102, 0x00000003, 0x402C4620,
-	0xAE604702, 0xAE605B02, 0x00000002, 0x402C4620, 0xAE604D02, 0x00000002,
-	0x402C4620, 0xAE604E02, 0x00000003, 0x402C4620,
-	// Block 187, offset 0x2ec0
-	0xAE604E02, 0xAE603202, 0x00000002, 0x402C4620, 0xACA05902, 0x00000002,
-	0x402C4620, 0xAE605B02, 0x00000003, 0x402C4620, 0xAE605B02, 0xAE604702,
-	0x00000002, 0x402C4620, 0xAE606402, 0x00000002, 0x402C4620, 0xAE606502,
-	0x00000002, 0x402C4620, 0xAE606702, 0x00000002, 0x402C4620, 0xAD806802,
-	0x00000003, 0x402C4620, 0xAD806802, 0xAE603202, 0x00000003, 0x402C4620,
-	0xAD806802, 0xAE603502, 0x00000003, 0x402C4620, 0xAD806802, 0xAE604E02,
-	0x00000003, 0x402C4620, 0xAD806802, 0xAE606402, 0x00000003, 0x402C4620,
-	0xAD806802, 0xADC07002, 0x00000002, 0x402C4620, 0xADC07002, 0x00000002,
-	0x402C4620, 0xADC07502, 0x00000002, 0x402C4620, 0xADC07802, 0x00000002,
-	0x402C4620, 0xADC07A02, 0x00000002, 0x402C4820, 0xAE604E02, 0x00000002,
-	0x402C4820, 0xADC07002, 0x00000002, 0x402C4A20,
-	// Block 188, offset 0x2f00
-	0xAE603202, 0x00000002, 0x402C4A20, 0xAE603502, 0x00000002, 0x402C4A20,
-	0xAE603C02, 0x00000002, 0x402C4A20, 0xAE604302, 0x00000002, 0x402C4A20,
-	0xAE604702, 0x00000002, 0x402C4A20, 0xAE605202, 0x00000002, 0x402C4A20,
-	0xADC07002, 0x00000002, 0x402C4C20, 0xAE603202, 0x00000002, 0x402C4C20,
-	0xAE603502, 0x00000002, 0x402C4C20, 0xAE603C02, 0x00000002, 0x402C4C20,
-	0xAE604302, 0x00000002, 0x402C4C20, 0xAE604702, 0x00000002, 0x402C4C20,
-	0xAE604E02, 0x00000002, 0x402C4C20, 0xAE605202, 0x00000002, 0x402C4C20,
-	0xAE605B02, 0x00000002, 0x402C4C20, 0xAE606402, 0x00000002, 0x402C4C20,
-	0xADC07002, 0x00000002, 0x402C4E20, 0xAE603202, 0x00000002, 0x402C4E20,
-	0xAE603C02, 0x00000002, 0x402C4E20, 0xAE604102, 0x00000002, 0x402C4E20,
-	0xAE605202, 0x00000002, 0x402C4E20, 0xADC07002,
-	// Block 189, offset 0x2f40
-	0x00000002, 0x402C4E20, 0xADC07B02, 0x00000002, 0x402C5020, 0xAE605202,
-	0x00000002, 0x402C5020, 0xADC07002, 0x00000002, 0x402C5020, 0xADC07B02,
-	0x00000002, 0x402C5220, 0xAE603202, 0x00000002, 0x402C5220, 0xAE603C02,
-	0x00000002, 0x402C5220, 0xAE604102, 0x00000002, 0x402C5220, 0xAE605202,
-	0x00000002, 0x402C5220, 0xACA05602, 0x00000003, 0x402C5220, 0xACA05602,
-	0xAE603202, 0x00000002, 0x402C5420, 0xAE604102, 0x00000002, 0x402C5420,
-	0xAE605202, 0x00000002, 0x402C5420, 0xACA05602, 0x00000002, 0x402C5420,
-	0xADC07002, 0x00000002, 0x402C5420, 0xADC07802, 0x00000002, 0x402C5420,
-	0xADC07B02, 0x00000002, 0x402C5620, 0xAE603202, 0x00000002, 0x402C5620,
-	0xAE603502, 0x00000002, 0x402C5620, 0xAE603702, 0x00000002, 0x402C5620,
-	0xAE603C02, 0x00000003, 0x402C5620, 0xAE603C02,
-	// Block 190, offset 0x2f80
-	0xAE603202, 0x00000003, 0x402C5620, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x402C5620, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C5620, 0xAE603C02,
-	0xAE606402, 0x00000002, 0x402C5620, 0xAE604102, 0x00000002, 0x402C5620,
-	0xAE604702, 0x00000002, 0x402C5620, 0xAE604E02, 0x00000002, 0x402C5620,
-	0xAE605202, 0x00000002, 0x402C5620, 0xACA05602, 0x00000003, 0x402C5620,
-	0xACA05602, 0xAE603702, 0x00000002, 0x402C5620, 0xACA05902, 0x00000002,
-	0x402C5620, 0xAE605B02, 0x00000003, 0x402C5620, 0xAE605B02, 0xAE603202,
-	0x00000003, 0x402C5620, 0xAE605B02, 0xAE603502, 0x00000002, 0x402C5620,
-	0xAE606402, 0x00000002, 0x402C5620, 0xAE606502, 0x00000002, 0x402C5620,
-	0xAE606702, 0x00000002, 0x402C5620, 0xADC07002, 0x00000003, 0x402C5620,
-	0xADC07002, 0xAE603C02, 0x00000002, 0x402C5620,
-	// Block 191, offset 0x2fc0
-	0xADC07802, 0x00000002, 0x402C5620, 0xADC07A02, 0x00000002, 0x402C5C20,
-	0xAE604702, 0x00000002, 0x402C5C20, 0xAE605202, 0x00000002, 0x402C6020,
-	0xAE605202, 0x00000002, 0x002C629C, 0x002BDE9C, 0x00000002, 0x002C629C,
-	0x002C0A9D, 0x00000002, 0x002C629D, 0x002DCC9D, 0x00000002, 0x002C629C,
-	0x002E229C, 0x00000002, 0x002C629C, 0x002E829C, 0x00000002, 0x002C6284,
-	0x00312A84, 0x00000002, 0x002C628A, 0x00312A84, 0x00000002, 0x002C628A,
-	0x00312A8A, 0x00000002, 0x002C989C, 0x0030BE9D, 0x00000002, 0x002D0884,
-	0x002D0884, 0x00000002, 0x002D0884, 0x002D9A84, 0x00000002, 0x002D0884,
-	0x002E2284, 0x00000002, 0x002D089C, 0x002E829C, 0x00000002, 0x002D229D,
-	0x002C0A9D, 0x00000002, 0x002D229D, 0x0031009C, 0x00000002, 0x002D689C,
-	0x002BDE9C, 0x00000002, 0x002D689D, 0x002D229C,
-	// Block 192, offset 0x3000
-	0x00000002, 0x002D689D, 0x002F2C9D, 0x00000002, 0x002D689D, 0x0030BE9D,
-	0x00000002, 0x002D689D, 0x00312A9C, 0x00000002, 0x002D9A84, 0x002D9A9F,
-	0x00000003, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000002, 0x002D9A84,
-	0x002DCC84, 0x00000002, 0x002D9A9C, 0x002E9E9C, 0x00000002, 0x002D9A84,
-	0x0030BE9F, 0x00000002, 0x002DFE9C, 0x002BDE9D, 0x00000002, 0x002DFE9D,
-	0x002C0A9D, 0x00000002, 0x002DFE9C, 0x002D229C, 0x00000002, 0x002DFE9D,
-	0x002DFE9D, 0x00000002, 0x002DFE9C, 0x002E229C, 0x00000002, 0x002DFE9C,
-	0x002E829C, 0x00000002, 0x002DFE9D, 0x002E829D, 0x00000002, 0x002DFE9C,
-	0x00302C9C, 0x00000002, 0x002DFE9C, 0x0030BE9D, 0x00000002, 0x002DFE9C,
-	0x0030E29D, 0x00000002, 0x002DFE9C, 0x0032A29D, 0x00000002, 0x002E2284,
-	0x002DCC84, 0x00000002, 0x002E228A, 0x002DCC84,
-	// Block 193, offset 0x3040
-	0x00000002, 0x002E228A, 0x002DCC8A, 0x00000002, 0x002E229C, 0x002E829C,
-	0x00000002, 0x002E229C, 0x002E9E9C, 0x00000002, 0x002E829C, 0x0029D09C,
-	0x00000002, 0x002E829C, 0x0029D29C, 0x00000002, 0x002E829C, 0x002BDE9D,
-	0x00000002, 0x002E829C, 0x002C0A9C, 0x00000002, 0x002E829D, 0x002C0A9D,
-	0x00000002, 0x002E8294, 0x002C3A94, 0x00000002, 0x002E8294, 0x002C6294,
-	0x00000002, 0x002E829C, 0x002D229C, 0x00000002, 0x002E829C, 0x002E229C,
-	0x00000002, 0x002E829C, 0x002E829C, 0x00000002, 0x002E829C, 0x002FE69C,
-	0x00000002, 0x002E829C, 0x0030BE9D, 0x00000002, 0x002E829D, 0x0030BE9D,
-	0x00000002, 0x002E829D, 0x0030BE9D, 0x00000002, 0x002E829C, 0x0030E29D,
-	0x00000002, 0x002E829D, 0x0030E29D, 0x00000002, 0x002E829D, 0x0032A29D,
-	0x00000002, 0x002E9E9C, 0x002BDE9D, 0x00000002,
-	// Block 194, offset 0x3080
-	0x002E9E9C, 0x002D089D, 0x00000002, 0x002E9E84, 0x002DCC84, 0x00000002,
-	0x002E9E8A, 0x002DCC84, 0x00000002, 0x002E9E8A, 0x002DCC8A, 0x00000002,
-	0x002E9E9C, 0x002E829C, 0x00000002, 0x002E9E8A, 0x002EE284, 0x00000002,
-	0x002E9E9C, 0x002FE69C, 0x00000002, 0x002E9E9C, 0x0030BE9D, 0x00000002,
-	0x002E9E9C, 0x0030E29D, 0x00000002, 0x002EE29C, 0x0030BE9D, 0x00000002,
-	0x002F2C9C, 0x002BDE9D, 0x00000002, 0x002F2C9D, 0x002BDE9C, 0x00000002,
-	0x002F2C9C, 0x002C3A9C, 0x00000002, 0x002F2C9C, 0x002D089D, 0x00000002,
-	0x002F2C9D, 0x002D689D, 0x00000002, 0x002F2C9D, 0x002F7A9D, 0x00000002,
-	0x002F2C9C, 0x002FE69C, 0x00000002, 0x002F2C9C, 0x0030BE9D, 0x00000002,
-	0x002F2C9C, 0x0030E29D, 0x00000002, 0x002FE69D, 0x002C629D, 0x00000002,
-	0x002FE694, 0x002E8294, 0x00000002, 0x002FE69C,
-	// Block 195, offset 0x30c0
-	0x002F7A9C, 0x00000002, 0x002FE69D, 0x002FE69D, 0x00000002, 0x002FE684,
-	0x00302C84, 0x00000002, 0x002FE69D, 0x0030BE9C, 0x00000002, 0x00302C94,
-	0x002E8294, 0x00000002, 0x0030BE84, 0x002D9A9F, 0x00000003, 0x0030BE84,
-	0x002D9A84, 0x002D9A9F, 0x00000002, 0x0030E29D, 0x002C0A9C, 0x00000002,
-	0x0030E29D, 0x002C3A9D, 0x00000002, 0x0030E28C, 0x00312A8C, 0x00000002,
-	0x0031DE84, 0x002E9E84, 0x00000002, 0x0032769C, 0x002BDE9D, 0x00000002,
-	0x0032769C, 0x002D089D, 0x00000002, 0x0032769C, 0x002D229C, 0x00000002,
-	0x0032769C, 0x002E229C, 0x00000002, 0x0032769C, 0x002E829C, 0x00000002,
-	0x0032769C, 0x002FE69C, 0x00000002, 0x0032769C, 0x0030BE9D, 0x00000002,
-	0x0032769C, 0x0030E29D, 0x00000002, 0x40302620, 0xAE605202, 0x00000002,
-	0x00302683, 0xAE605202, 0x00000002, 0x40302820,
-	// Block 196, offset 0x3100
-	0xAE603202, 0x00000002, 0x00302883, 0xAE603202, 0x00000002, 0x40302820,
-	0xAE603C02, 0x00000002, 0x00302883, 0xAE603C02, 0x00000002, 0x40302820,
-	0xAE605202, 0x00000002, 0x00302883, 0xAE605202, 0x00000002, 0x40302820,
-	0xADC07002, 0x00000002, 0x00302883, 0xADC07002, 0x00000002, 0x40302820,
-	0xADC07B02, 0x00000002, 0x00302883, 0xADC07B02, 0x00000002, 0x4030BE21,
-	0xAE603202, 0x00000002, 0x0030BEA3, 0xAE603202, 0x00000002, 0x4030BE21,
-	0xAE603502, 0x00000002, 0x0030BEA3, 0xAE603502, 0x00000002, 0x4030BE21,
-	0xAE603C02, 0x00000002, 0x0030BEA3, 0xAE603C02, 0x00000002, 0x4030BE21,
-	0xAE604302, 0x00000002, 0x4030BE21, 0xAE604702, 0x00000002, 0x0030BEA3,
-	0xAE604702, 0x00000002, 0x4030BE21, 0xAE605202, 0x00000002, 0x0030BEA3,
-	0xAE605202, 0x00000002, 0x4030BE21, 0xADC07002,
-	// Block 197, offset 0x3140
-	0x00000002, 0x0030BEA3, 0xADC07002, 0x00000002, 0x4030EE20, 0xAE603202,
-	0x00000002, 0x0030EE83, 0xAE603202, 0x00000002, 0x4030EE20, 0xAE603C02,
-	0x00000002, 0x0030EE83, 0xAE603C02, 0x00000002, 0x4030EE20, 0xAE604702,
-	0x00000002, 0x0030EE83, 0xAE604702, 0x00000002, 0x4030EE20, 0xAE605B02,
-	0x00000002, 0x0030EE83, 0xAE605B02, 0x00000002, 0x4030EE20, 0xAD806802,
-	0x00000002, 0x0030EE83, 0xAD806802, 0x00000002, 0x4030F020, 0xAE605B02,
-	0x00000002, 0x0030F083, 0xAE605B02, 0x00000002, 0x4030F220, 0xAE605B02,
-	0x00000002, 0x0030F283, 0xAE605B02, 0x00000002, 0x4030F420, 0xAE603202,
-	0x00000002, 0x0030F483, 0xAE603202, 0x00000002, 0x4030F420, 0xAE603502,
-	0x00000002, 0x0030F483, 0xAE603502, 0x00000002, 0x4030F420, 0xAE604102,
-	0x00000002, 0x0030F483, 0xAE604102, 0x00000002,
-	// Block 198, offset 0x3180
-	0x4030F420, 0xAE605B02, 0x00000002, 0x0030F483, 0xAE605B02, 0x00000002,
-	0xA000B218, 0xA000BA18, 0x00000002, 0xA000B618, 0xA000BA18, 0x00000002,
-	0x00393899, 0xA000A219, 0x00000002, 0x0039389A, 0xA000A21A, 0x00000002,
-	0x00393C97, 0x003A6897, 0x00000002, 0x00393C98, 0x003A6898, 0x00000002,
-	0x00393C99, 0x003A9099, 0x00000002, 0x00393C9A, 0x003A909A, 0x00000002,
-	0x00395697, 0x003A6897, 0x00000002, 0x00395698, 0x003A6898, 0x00000002,
-	0x00395699, 0x003A9099, 0x00000002, 0x0039569A, 0x003A909A, 0x00000002,
-	0x00395898, 0x003A6898, 0x00000002, 0x00395899, 0x003A9099, 0x00000002,
-	0x0039589A, 0x003A909A, 0x00000002, 0x00396499, 0x003A9099, 0x00000002,
-	0x0039649A, 0x003A909A, 0x00000002, 0x00397299, 0x003A9099, 0x00000002,
-	0x0039729A, 0x003A909A, 0x00000002, 0x00397499,
-	// Block 199, offset 0x31c0
-	0x003A9099, 0x00000002, 0x0039749A, 0x003A909A, 0x00000002, 0x0039C697,
-	0x003A6897, 0x00000002, 0x0039C698, 0x003A6898, 0x00000002, 0x0039C699,
-	0x003A9099, 0x00000002, 0x0039C69A, 0x003A909A, 0x00000002, 0x0039C897,
-	0x003A6897, 0x00000002, 0x0039C898, 0x003A6898, 0x00000002, 0x0039C899,
-	0x003A9099, 0x00000002, 0x0039C89A, 0x003A909A, 0x00000002, 0x0039DC99,
-	0x003A9099, 0x00000002, 0x0039DC9A, 0x003A909A, 0x00000002, 0x0039DE99,
-	0x003A9099, 0x00000002, 0x0039DE9A, 0x003A909A, 0x00000002, 0x0039E699,
-	0x003A9099, 0x00000002, 0x0039E69A, 0x003A909A, 0x00000002, 0x0039EE99,
-	0x003A9099, 0x00000002, 0x0039EE9A, 0x003A909A, 0x00000002, 0x0039F099,
-	0x003A9099, 0x00000002, 0x0039F09A, 0x003A909A, 0x00000002, 0x0039FC99,
-	0x003A9099, 0x00000002, 0x0039FC9A, 0x003A909A,
-	// Block 200, offset 0x3200
-	0x00000002, 0x003A1299, 0x003A9099, 0x00000002, 0x003A129A, 0x003A909A,
-	0x00000002, 0x003A1A99, 0x00393899, 0x00000002, 0x003A1A9A, 0x0039389A,
-	0x00000002, 0x003A1A97, 0x00396497, 0x00000002, 0x003A1A9A, 0x0039649A,
-	0x00000002, 0x003A1A97, 0x00397297, 0x00000002, 0x003A1A9A, 0x0039729A,
-	0x00000002, 0x003A1A97, 0x00397497, 0x00000002, 0x003A1A9A, 0x0039749A,
-	0x00000002, 0x003A1A97, 0x003A4097, 0x00000002, 0x003A1A98, 0x003A4098,
-	0x00000002, 0x003A1A99, 0x003A4099, 0x00000002, 0x003A1A9A, 0x003A409A,
-	0x00000002, 0x003A1A97, 0x003A4E97, 0x00000002, 0x003A1A98, 0x003A4E98,
-	0x00000002, 0x003A1A99, 0x003A4E99, 0x00000002, 0x003A1A9A, 0x003A4E9A,
-	0x00000002, 0x003A1A99, 0x003A9099, 0x00000002, 0x003A1A9A, 0x003A909A,
-	0x00000002, 0x003A4097, 0x003A6897, 0x00000002,
-	// Block 201, offset 0x3240
-	0x003A4099, 0x003A9099, 0x00000002, 0x003A409A, 0x003A909A, 0x00000002,
-	0x003A4E9A, 0x003A909A, 0x00000002, 0x003A5697, 0x003A6897, 0x00000002,
-	0x003A5698, 0x003A6898, 0x00000002, 0x003A5699, 0x003A9099, 0x00000002,
-	0x003A569A, 0x003A909A, 0x00000002, 0x003A6897, 0xA000D117, 0x00000002,
-	0x003A6897, 0x00396497, 0x00000002, 0x003A689A, 0x0039649A, 0x00000002,
-	0x003A6897, 0x003A4E97, 0x00000002, 0x003A689A, 0x003A4E9A, 0x00000002,
-	0x003A689A, 0x003A909A, 0x00000002, 0x003A7299, 0xA000BE19, 0x00000002,
-	0x003A729A, 0xA000BE1A, 0x00000002, 0x403A8822, 0xAE60BE02, 0x00000002,
-	0x003A8E99, 0xA000D119, 0x00000002, 0x003A8E9A, 0xA000D11A, 0x00000002,
-	0x003A9084, 0x00391C84, 0x00000002, 0x003A9097, 0x00396497, 0x00000002,
-	0x003A909A, 0x0039649A, 0x00000002, 0x003A9097,
-	// Block 202, offset 0x3280
-	0x00397297, 0x00000002, 0x003A909A, 0x0039729A, 0x00000002, 0x003A9097,
-	0x00397497, 0x00000002, 0x003A909A, 0x0039749A, 0x00000002, 0x003A9099,
-	0x0039A499, 0x00000002, 0x003A9099, 0x0039A699, 0x00000002, 0x003A9097,
-	0x003A4E97, 0x00000002, 0x003A9098, 0x003A4E98, 0x00000002, 0x003A9099,
-	0x003A4E99, 0x00000002, 0x003A909A, 0x003A4E9A, 0x00000002, 0x003A9099,
-	0x003A5699, 0x00000002, 0x003A9097, 0x003A6897, 0x00000002, 0x003A9098,
-	0x003A6898, 0x00000002, 0x003A9099, 0x003A9099, 0x00000002, 0x003A909A,
-	0x003A909A, 0x00000002, 0x403A9222, 0xAE60BE02, 0x00000002, 0x003AAA99,
-	0xA000BE19, 0x00000002, 0x003AAA9A, 0xA000BE1A, 0x00000002, 0x402C6221,
-	0x40021220, 0x00000002, 0x002C62A3, 0x40021220, 0x00000002, 0x402D2221,
-	0x40021220, 0x00000002, 0x002D22A3, 0x40021220,
-	// Block 203, offset 0x32c0
-	0x00000002, 0x402E9E21, 0x40021220, 0x00000002, 0x002E9EA3, 0x40021220,
-	0x00000002, 0x40302C21, 0x40021220, 0x00000002, 0x00302CA3, 0x40021220,
-	0x00000002, 0x40312A21, 0x40021220, 0x00000002, 0x00312AA3, 0x40021220,
-	0x00000003, 0x40312A21, 0x40021220, 0xAE604102, 0x00000003, 0x00312AA3,
-	0x40021220, 0xAE604102, 0x00000002, 0x40320E20, 0xAE605B02, 0x00000002,
-	0x00320E83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603202, 0x00000002,
-	0x00320EA3, 0xAE603202, 0x00000002, 0x40321020, 0xAE604E02, 0x00000002,
-	0x00321083, 0xAE604E02, 0x00000002, 0x40321020, 0xAE605B02, 0x00000002,
-	0x00321083, 0xAE605B02, 0x00000002, 0x40321021, 0xAE603202, 0x00000002,
-	0x003210A3, 0xAE603202, 0x00000002, 0x002BDE83, 0xAE603202, 0x00000002,
-	0x002BDE83, 0xAE603502, 0x00000002, 0x002BDE83,
-	// Block 204, offset 0x3300
-	0xAE603702, 0x00000003, 0x002BDE83, 0xAE603702, 0xAE603202, 0x00000003,
-	0x002BDE83, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE83, 0xAE603702,
-	0xAE604E02, 0x00000003, 0x002BDE83, 0xAE603702, 0xAE606402, 0x00000002,
-	0x002BDE83, 0xAE603C02, 0x00000003, 0x002BDE83, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x002BDE83, 0xAE603C02, 0xAE603502, 0x00000003, 0x002BDE83,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE83, 0xAE603C02, 0xAE606402,
-	0x00000002, 0x002BDE83, 0xAE604102, 0x00000002, 0x002BDE83, 0xAE604302,
-	0x00000003, 0x002BDE83, 0xAE604302, 0xAE603202, 0x00000002, 0x002BDE83,
-	0xAE604702, 0x00000003, 0x002BDE83, 0xAE604702, 0xAE605B02, 0x00000002,
-	0x002BDE83, 0xAE604E02, 0x00000002, 0x002BDE83, 0xAE605202, 0x00000003,
-	0x002BDE83, 0xAE605202, 0xAE605B02, 0x00000002,
-	// Block 205, offset 0x3340
-	0x002BDE83, 0xACA05902, 0x00000002, 0x002BDE83, 0xAE605B02, 0x00000002,
-	0x002BDE83, 0xAE606402, 0x00000002, 0x002BDE83, 0xAE606502, 0x00000002,
-	0x002BDE83, 0xAE606702, 0x00000002, 0x002BDE83, 0xADC07002, 0x00000003,
-	0x002BDE83, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE83, 0xADC07002,
-	0xAE603C02, 0x00000002, 0x002BDE83, 0xADC07602, 0x00000002, 0x402BE020,
-	0xAE603202, 0x00000002, 0x002BE083, 0xAE603202, 0x00000002, 0x402BE020,
-	0xAE603502, 0x00000002, 0x002BE083, 0xAE603502, 0x00000002, 0x402BE020,
-	0xAE603702, 0x00000002, 0x002BE083, 0xAE603702, 0x00000002, 0x402BE020,
-	0xAE603C02, 0x00000002, 0x002BE083, 0xAE603C02, 0x00000003, 0x402BE020,
-	0xAE603C02, 0xAE603202, 0x00000003, 0x002BE083, 0xAE603C02, 0xAE603202,
-	0x00000003, 0x402BE020, 0xAE603C02, 0xAE603502,
-	// Block 206, offset 0x3380
-	0x00000003, 0x002BE083, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BE020,
-	0xAE603C02, 0xAE604E02, 0x00000003, 0x002BE083, 0xAE603C02, 0xAE604E02,
-	0x00000003, 0x402BE020, 0xAE603C02, 0xAE606402, 0x00000003, 0x002BE083,
-	0xAE603C02, 0xAE606402, 0x00000002, 0x402BE020, 0xAE604102, 0x00000002,
-	0x002BE083, 0xAE604102, 0x00000002, 0x402BE020, 0xAE604702, 0x00000002,
-	0x002BE083, 0xAE604702, 0x00000002, 0x402BE020, 0xAE604E02, 0x00000002,
-	0x002BE083, 0xAE604E02, 0x00000002, 0x402BE020, 0xAE605202, 0x00000002,
-	0x002BE083, 0xAE605202, 0x00000002, 0x402BE020, 0xACA05602, 0x00000002,
-	0x002BE083, 0xACA05602, 0x00000003, 0x402BE020, 0xACA05602, 0xAE603702,
-	0x00000003, 0x002BE083, 0xACA05602, 0xAE603702, 0x00000002, 0x402BE020,
-	0xACA05902, 0x00000002, 0x002BE083, 0xACA05902,
-	// Block 207, offset 0x33c0
-	0x00000002, 0x402BE020, 0xAE605B02, 0x00000002, 0x002BE083, 0xAE605B02,
-	0x00000003, 0x402BE020, 0xAE605B02, 0xAE603202, 0x00000003, 0x002BE083,
-	0xAE605B02, 0xAE603202, 0x00000003, 0x402BE020, 0xAE605B02, 0xAE603502,
-	0x00000003, 0x002BE083, 0xAE605B02, 0xAE603502, 0x00000002, 0x402BE020,
-	0xAE606402, 0x00000002, 0x002BE083, 0xAE606402, 0x00000002, 0x402BE020,
-	0xAE606502, 0x00000002, 0x002BE083, 0xAE606502, 0x00000002, 0x402BE020,
-	0xAE606702, 0x00000002, 0x002BE083, 0xAE606702, 0x00000002, 0x402BE020,
-	0xADC07002, 0x00000002, 0x002BE083, 0xADC07002, 0x00000003, 0x402BE020,
-	0xADC07002, 0xAE603C02, 0x00000003, 0x002BE083, 0xADC07002, 0xAE603C02,
-	0x00000002, 0x402BE020, 0xADC07802, 0x00000002, 0x002BE083, 0xADC07802,
-	0x00000002, 0x402BE020, 0xADC07A02, 0x00000002,
-	// Block 208, offset 0x3400
-	0x002BE083, 0xADC07A02, 0x00000002, 0x402BE220, 0xAE603202, 0x00000002,
-	0x002BE283, 0xAE603202, 0x00000002, 0x402BE220, 0xAE603502, 0x00000002,
-	0x002BE283, 0xAE603502, 0x00000002, 0x402BE220, 0xAE603702, 0x00000002,
-	0x002BE283, 0xAE603702, 0x00000002, 0x402BE220, 0xAE603C02, 0x00000002,
-	0x002BE283, 0xAE603C02, 0x00000002, 0x402BE220, 0xAE604102, 0x00000002,
-	0x002BE283, 0xAE604102, 0x00000002, 0x402BE220, 0xAE604702, 0x00000002,
-	0x002BE283, 0xAE604702, 0x00000003, 0x402BE220, 0xAE604702, 0xAE603202,
-	0x00000003, 0x002BE283, 0xAE604702, 0xAE603202, 0x00000002, 0x402BE220,
-	0xAE604E02, 0x00000002, 0x002BE283, 0xAE604E02, 0x00000002, 0x002BE283,
-	0xAE605202, 0x00000002, 0x402BE220, 0xACA05902, 0x00000002, 0x002BE283,
-	0xACA05902, 0x00000002, 0x402BE220, 0xAE605B02,
-	// Block 209, offset 0x3440
-	0x00000002, 0x002BE283, 0xAE605B02, 0x00000002, 0x402BE220, 0xAE606402,
-	0x00000002, 0x002BE283, 0xAE606402, 0x00000002, 0x402BE220, 0xAE606502,
-	0x00000002, 0x002BE283, 0xAE606502, 0x00000002, 0x402BE220, 0xAE606702,
-	0x00000002, 0x002BE283, 0xAE606702, 0x00000002, 0x402BE220, 0xADC07002,
-	0x00000002, 0x002BE283, 0xADC07002, 0x00000002, 0x402BE220, 0xADC07A02,
-	0x00000002, 0x002BE283, 0xADC07A02, 0x00000002, 0x402BE420, 0xAE603202,
-	0x00000002, 0x002BE483, 0xAE603202, 0x00000002, 0x402BE420, 0xAE603502,
-	0x00000002, 0x002BE483, 0xAE603502, 0x00000002, 0x402BE420, 0xAE603702,
-	0x00000002, 0x002BE483, 0xAE603702, 0x00000002, 0x402BE420, 0xAE603C02,
-	0x00000002, 0x002BE483, 0xAE603C02, 0x00000003, 0x402BE420, 0xAE603C02,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAE603C02,
-	// Block 210, offset 0x3480
-	0xAE603202, 0x00000003, 0x402BE420, 0xAE603C02, 0xAE603502, 0x00000003,
-	0x002BE483, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BE420, 0xAE603C02,
-	0xAE604E02, 0x00000003, 0x002BE483, 0xAE603C02, 0xAE604E02, 0x00000003,
-	0x402BE420, 0xAE603C02, 0xAE606402, 0x00000003, 0x002BE483, 0xAE603C02,
-	0xAE606402, 0x00000002, 0x402BE420, 0xAE604102, 0x00000002, 0x002BE483,
-	0xAE604102, 0x00000002, 0x402BE420, 0xAE604702, 0x00000002, 0x002BE483,
-	0xAE604702, 0x00000003, 0x402BE420, 0xAE604702, 0xAE605B02, 0x00000003,
-	0x002BE483, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE420, 0xAE604D02,
-	0x00000002, 0x002BE483, 0xAE604D02, 0x00000002, 0x402BE420, 0xAE604E02,
-	0x00000002, 0x002BE483, 0xAE604E02, 0x00000003, 0x402BE420, 0xAE604E02,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAE604E02,
-	// Block 211, offset 0x34c0
-	0xAE603202, 0x00000003, 0x402BE420, 0xAE604E02, 0xAE604702, 0x00000003,
-	0x002BE483, 0xAE604E02, 0xAE604702, 0x00000003, 0x402BE420, 0xAE604E02,
-	0xAE605B02, 0x00000003, 0x002BE483, 0xAE604E02, 0xAE605B02, 0x00000002,
-	0x402BE420, 0xAE605202, 0x00000002, 0x002BE483, 0xAE605202, 0x00000003,
-	0x402BE420, 0xAE605202, 0xAE605B02, 0x00000003, 0x002BE483, 0xAE605202,
-	0xAE605B02, 0x00000002, 0x402BE420, 0xACA05902, 0x00000002, 0x002BE483,
-	0xACA05902, 0x00000003, 0x402BE420, 0xACA05902, 0xAE605B02, 0x00000003,
-	0x002BE483, 0xACA05902, 0xAE605B02, 0x00000002, 0x402BE420, 0xAE605B02,
-	0x00000002, 0x002BE483, 0xAE605B02, 0x00000003, 0x402BE420, 0xAE605B02,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAE605B02, 0xAE603202, 0x00000003,
-	0x402BE420, 0xAE605B02, 0xAE603502, 0x00000003,
-	// Block 212, offset 0x3500
-	0x002BE483, 0xAE605B02, 0xAE603502, 0x00000002, 0x402BE420, 0xAE606402,
-	0x00000002, 0x002BE483, 0xAE606402, 0x00000002, 0x402BE420, 0xAE606502,
-	0x00000002, 0x002BE483, 0xAE606502, 0x00000002, 0x402BE420, 0xAE606702,
-	0x00000002, 0x002BE483, 0xAE606702, 0x00000002, 0x402BE420, 0xAD806802,
-	0x00000002, 0x002BE483, 0xAD806802, 0x00000003, 0x402BE420, 0xAD806802,
-	0xAE603202, 0x00000003, 0x002BE483, 0xAD806802, 0xAE603202, 0x00000003,
-	0x402BE420, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE483, 0xAD806802,
-	0xAE603502, 0x00000003, 0x402BE420, 0xAD806802, 0xAE604E02, 0x00000003,
-	0x002BE483, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE420, 0xAD806802,
-	0xAE606402, 0x00000003, 0x002BE483, 0xAD806802, 0xAE606402, 0x00000003,
-	0x402BE420, 0xAD806802, 0xADC07002, 0x00000003,
-	// Block 213, offset 0x3540
-	0x002BE483, 0xAD806802, 0xADC07002, 0x00000002, 0x402BE420, 0xADC07002,
-	0x00000002, 0x002BE483, 0xADC07002, 0x00000003, 0x402BE420, 0xADC07002,
-	0xAE603C02, 0x00000003, 0x002BE483, 0xADC07002, 0xAE603C02, 0x00000002,
-	0x402BE620, 0xAE603202, 0x00000002, 0x002BE683, 0xAE603202, 0x00000002,
-	0x402BE620, 0xAE603502, 0x00000002, 0x002BE683, 0xAE603502, 0x00000002,
-	0x402BE620, 0xAE603702, 0x00000002, 0x002BE683, 0xAE603702, 0x00000002,
-	0x402BE620, 0xAE603C02, 0x00000002, 0x002BE683, 0xAE603C02, 0x00000002,
-	0x402BE620, 0xAE604102, 0x00000002, 0x002BE683, 0xAE604102, 0x00000002,
-	0x402BE620, 0xAE604302, 0x00000002, 0x002BE683, 0xAE604302, 0x00000002,
-	0x402BE620, 0xAE604702, 0x00000002, 0x002BE683, 0xAE604702, 0x00000003,
-	0x402BE620, 0xAE604702, 0xAE603202, 0x00000003,
-	// Block 214, offset 0x3580
-	0x002BE683, 0xAE604702, 0xAE603202, 0x00000003, 0x402BE620, 0xAE604702,
-	0xAE603502, 0x00000003, 0x002BE683, 0xAE604702, 0xAE603502, 0x00000003,
-	0x402BE620, 0xAE604702, 0xAE604102, 0x00000003, 0x002BE683, 0xAE604702,
-	0xAE604102, 0x00000003, 0x402BE620, 0xAE604702, 0xAE605B02, 0x00000003,
-	0x002BE683, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE620, 0xAE604D02,
-	0x00000002, 0x002BE683, 0xAE604D02, 0x00000002, 0x402BE620, 0xAE604E02,
-	0x00000002, 0x002BE683, 0xAE604E02, 0x00000003, 0x402BE620, 0xAE604E02,
-	0xAE603202, 0x00000003, 0x002BE683, 0xAE604E02, 0xAE603202, 0x00000002,
-	0x402BE620, 0xACA05902, 0x00000002, 0x002BE683, 0xACA05902, 0x00000002,
-	0x402BE620, 0xAE605B02, 0x00000002, 0x002BE683, 0xAE605B02, 0x00000003,
-	0x402BE620, 0xAE605B02, 0xAE604702, 0x00000003,
-	// Block 215, offset 0x35c0
-	0x002BE683, 0xAE605B02, 0xAE604702, 0x00000002, 0x402BE620, 0xAE606402,
-	0x00000002, 0x002BE683, 0xAE606402, 0x00000002, 0x402BE620, 0xAE606502,
-	0x00000002, 0x002BE683, 0xAE606502, 0x00000002, 0x402BE620, 0xAE606702,
-	0x00000002, 0x002BE683, 0xAE606702, 0x00000002, 0x402BE620, 0xAD806802,
-	0x00000002, 0x002BE683, 0xAD806802, 0x00000003, 0x402BE620, 0xAD806802,
-	0xAE603202, 0x00000003, 0x002BE683, 0xAD806802, 0xAE603202, 0x00000003,
-	0x402BE620, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE683, 0xAD806802,
-	0xAE603502, 0x00000003, 0x402BE620, 0xAD806802, 0xAE604E02, 0x00000003,
-	0x002BE683, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE620, 0xAD806802,
-	0xAE606402, 0x00000003, 0x002BE683, 0xAD806802, 0xAE606402, 0x00000003,
-	0x402BE620, 0xAD806802, 0xADC07002, 0x00000003,
-	// Block 216, offset 0x3600
-	0x002BE683, 0xAD806802, 0xADC07002, 0x00000002, 0x402BE620, 0xADC07002,
-	0x00000002, 0x002BE683, 0xADC07002, 0x00000002, 0x402BE620, 0xADC07502,
-	0x00000002, 0x002BE683, 0xADC07502, 0x00000002, 0x402BE620, 0xADC07802,
-	0x00000002, 0x002BE683, 0xADC07802, 0x00000002, 0x402BE620, 0xADC07A02,
-	0x00000002, 0x002BE683, 0xADC07A02, 0x00000002, 0x402BE820, 0xAE603C02,
-	0x00000002, 0x002BE883, 0xAE603C02, 0x00000002, 0x402BE820, 0xAE604102,
-	0x00000002, 0x002BE883, 0xAE604102, 0x00000002, 0x402BE820, 0xAE604702,
-	0x00000002, 0x002BE883, 0xAE604702, 0x00000002, 0x402BE820, 0xAE605202,
-	0x00000002, 0x002BE883, 0xAE605202, 0x00000002, 0x402BE820, 0xACA05602,
-	0x00000002, 0x002BE883, 0xACA05602, 0x00000002, 0x402BE820, 0xADC07002,
-	0x00000002, 0x002BE883, 0xADC07002, 0x00000002,
-	// Block 217, offset 0x3640
-	0x402BE820, 0xADC07902, 0x00000002, 0x002BE883, 0xADC07902, 0x00000002,
-	0x402BE820, 0xADC07B02, 0x00000002, 0x402BEA20, 0xAE603202, 0x00000002,
-	0x002BEA83, 0xAE603202, 0x00000002, 0x402BEA20, 0xAE604102, 0x00000002,
-	0x002BEA83, 0xAE604102, 0x00000002, 0x402BEA20, 0xACA05602, 0x00000002,
-	0x002BEA83, 0xACA05602, 0x00000002, 0x402BEA20, 0xADC07002, 0x00000002,
-	0x002BEA83, 0xADC07002, 0x00000002, 0x402BEA20, 0xADC07B02, 0x00000002,
-	0x002BEA83, 0xADC07B02, 0x00000002, 0x402BEC20, 0xAE603202, 0x00000002,
-	0x002BEC83, 0xAE603202, 0x00000002, 0x402BEC20, 0xAE604102, 0x00000002,
-	0x002BEC83, 0xAE604102, 0x00000002, 0x402BEC20, 0xACA05602, 0x00000002,
-	0x002BEC83, 0xACA05602, 0x00000002, 0x402BEC20, 0xADC07002, 0x00000002,
-	0x002BEC83, 0xADC07002, 0x00000003, 0x402BEC20,
-	// Block 218, offset 0x3680
-	0xADC07002, 0xAE605B02, 0x00000003, 0x002BEC83, 0xADC07002, 0xAE605B02,
-	0x00000002, 0x402BEC20, 0xADC07802, 0x00000002, 0x002BEC83, 0xADC07802,
-	0x00000002, 0x402BEC20, 0xADC07B02, 0x00000002, 0x002BEC83, 0xADC07B02,
-	0x00000002, 0x402BEE20, 0xAE603202, 0x00000002, 0x002BEE83, 0xAE603202,
-	0x00000002, 0x402BEE20, 0xAE605202, 0x00000002, 0x002BEE83, 0xAE605202,
-	0x00000002, 0x402BEE20, 0xADC07002, 0x00000002, 0x002BEE83, 0xADC07002,
-	0x00000002, 0x402BF020, 0xAE603202, 0x00000002, 0x002BF083, 0xAE603202,
-	0x00000002, 0x402BF020, 0xAE603502, 0x00000002, 0x002BF083, 0xAE603502,
-	0x00000002, 0x402BF020, 0xAE604102, 0x00000002, 0x002BF083, 0xAE604102,
-	0x00000002, 0x402BF020, 0xAE604E02, 0x00000002, 0x002BF083, 0xAE604E02,
-	0x00000002, 0x402BF020, 0xAE605202, 0x00000002,
-	// Block 219, offset 0x36c0
-	0x002BF083, 0xAE605202, 0x00000002, 0x402BF020, 0xACA05602, 0x00000002,
-	0x002BF083, 0xACA05602, 0x00000002, 0x402BF020, 0xADC07002, 0x00000002,
-	0x002BF083, 0xADC07002, 0x00000002, 0x402BF020, 0xADC07802, 0x00000002,
-	0x002BF083, 0xADC07802, 0x00000002, 0x402BF020, 0xADC07B02, 0x00000002,
-	0x002BF083, 0xADC07B02, 0x00000002, 0x002BF283, 0xAE603202, 0x00000002,
-	0x002BF283, 0xAE605202, 0x00000002, 0x402BF420, 0xAE603202, 0x00000002,
-	0x002BF483, 0xAE603202, 0x00000002, 0x402BF420, 0xAE603502, 0x00000002,
-	0x002BF483, 0xAE603502, 0x00000002, 0x402BF420, 0xAE603C02, 0x00000002,
-	0x002BF483, 0xAE603C02, 0x00000002, 0x402BF420, 0xAE604302, 0x00000002,
-	0x402BF420, 0xAE604702, 0x00000002, 0x002BF483, 0xAE604702, 0x00000002,
-	0x002BF483, 0xAE605202, 0x00000002, 0x002BF483,
-	// Block 220, offset 0x3700
-	0xADC07002, 0x00000002, 0x402C3E20, 0xACA05602, 0x00000002, 0x002C3E83,
-	0xACA05602, 0x00000002, 0x002C3C83, 0x402C3C20, 0x00000002, 0x002C3C85,
-	0x402C3C20, 0x00000002, 0x002C3C87, 0x002C3C86, 0x00000002, 0x002C6483,
-	0x402C6420, 0x00000002, 0x002C6485, 0x402C6420, 0x00000002, 0x002C6487,
-	0x002C6486, 0x00000002, 0x002C6683, 0x402C6620, 0x00000002, 0x002C6685,
-	0x402C6620, 0x00000002, 0x002C6687, 0x002C6686, 0x00000002, 0x002D2483,
-	0x402D2420, 0x00000002, 0x002D2485, 0x402D2420, 0x00000002, 0x002D2487,
-	0x002D2486, 0x00000002, 0x002E2483, 0x402E2420, 0x00000002, 0x002E2485,
-	0x402E2420, 0x00000002, 0x002E2487, 0x002E2486, 0x00000002, 0x002EA083,
-	0x402EA020, 0x00000002, 0x002EA085, 0x402EA020, 0x00000002, 0x002EA087,
-	0x002EA086, 0x00000002, 0x002FE883, 0x402FE820,
-	// Block 221, offset 0x3740
-	0x00000002, 0x002FE885, 0x402FE820, 0x00000002, 0x002FE887, 0x002FE886,
-	0x00000002, 0x00302E83, 0x40302E20, 0x00000002, 0x00302E85, 0x40302E20,
-	0x00000002, 0x00302E87, 0x00302E86, 0x00000002, 0x00312C83, 0x40312C20,
-	0x00000002, 0x00312C85, 0x40312C20, 0x00000002, 0x00312C87, 0x00312C86,
-	0x00000002, 0x402EE420, 0xAE603C02, 0x00000002, 0x002EE483, 0xAE603C02,
-	0x00000002, 0x402EE420, 0xAD806802, 0x00000002, 0x002EE483, 0xAD806802,
-	0x00000002, 0x40306E20, 0xAD806802, 0x00000002, 0x00306E83, 0xAD806802,
-	0x00000002, 0x402C0820, 0xAE603702, 0x00000002, 0x002C0883, 0xAE603702,
-	0x00000002, 0x402C0820, 0xAE603C02, 0x00000002, 0x002C0883, 0xAE603C02,
-	0x00000002, 0x402D0620, 0xAE603C02, 0x00000002, 0x002D0683, 0xAE603C02,
-	0x00000002, 0x402D0620, 0xAE605B02, 0x00000002,
-	// Block 222, offset 0x3780
-	0x002D0683, 0xAE605B02, 0x00000002, 0x402DCA20, 0xAE604702, 0x00000002,
-	0x002DCA83, 0xAE604702, 0x00000002, 0x402F2A20, 0xAE603C02, 0x00000002,
-	0x002F2A83, 0xAE603C02, 0x00000002, 0x402F2A20, 0xAE604E02, 0x00000002,
-	0x002F2A83, 0xAE604E02, 0x00000002, 0x402F2A20, 0xAE605B02, 0x00000002,
-	0x002F2A83, 0xAE605B02, 0x00000002, 0x402F2A20, 0xAD806802, 0x00000002,
-	0x002F2A83, 0xAD806802, 0x00000002, 0x4030BC20, 0xAE604702, 0x00000002,
-	0x0030BC83, 0xAE604702, 0x00000002, 0x4030BC20, 0xAE604E02, 0x00000002,
-	0x0030BC83, 0xAE604E02, 0x00000002, 0x4030BC20, 0xAD806802, 0x00000002,
-	0x0030BC83, 0xAD806802, 0x00000002, 0x40320E20, 0xAE604E02, 0x00000002,
-	0x00320E83, 0xAE604E02, 0x00000003, 0x0004B084, 0x029C1284, 0x0004B29F,
-	0x00000003, 0x0004B084, 0x029D1884, 0x0004B29F,
-	// Block 223, offset 0x37c0
-	0x00000003, 0x0004B084, 0x02A5BA84, 0x0004B29F, 0x00000003, 0x0004B084,
-	0x02B71284, 0x0004B29F, 0x00000003, 0x0004B084, 0x02C4A684, 0x0004B29F,
-	0x00000003, 0x0004B084, 0x02CAAE84, 0x0004B29F, 0x00000003, 0x0004B084,
-	0x02CE5884, 0x0004B29F, 0x00000003, 0x0004B084, 0x02E17284, 0x0004B29F,
-	0x00000003, 0x0004B084, 0x02EDAE84, 0x0004B29F, 0x00000005, 0x4004E620,
-	0x402BDE20, 0x402E8220, 0x402F2C20, 0x40026220, 0x00000004, 0x4004E620,
-	0x402D2220, 0x40302C20, 0x40026220, 0x00000004, 0x4004E620, 0x402E2220,
-	0x40302C20, 0x40026220, 0x00000006, 0x4004E620, 0x402F5620, 0x40306C20,
-	0x402EE220, 0x40302C20, 0x40026220, 0x00000002, 0x0029CC84, 0x02E1729F,
-	0x00000003, 0x0029CE84, 0x0029CC84, 0x02CBCA9F, 0x00000003, 0x0029CE84,
-	0x0029CC84, 0x02CE109F, 0x00000003, 0x0029CE84,
-	// Block 224, offset 0x3800
-	0x0029CC84, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029CE84, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029CE84, 0x02CE109F, 0x00000003, 0x0029CE84,
-	0x0029CE84, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029D084, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029D084, 0x02CE109F, 0x00000003, 0x0029CE84,
-	0x0029D084, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029D284, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029D284, 0x02E1729F, 0x00000003, 0x0029CE84,
-	0x0029D484, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029D484, 0x02E1729F,
-	0x00000003, 0x0029CE84, 0x0029D684, 0x02CBCA9F, 0x00000003, 0x0029CE84,
-	0x0029D684, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029D884, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029D884, 0x02E1729F, 0x00000003, 0x0029CE84,
-	0x0029DC84, 0x02CBCA9F, 0x00000003, 0x0029CE84,
-	// Block 225, offset 0x3840
-	0x0029DC84, 0x02E1729F, 0x00000003, 0x0029CE84, 0x0029DE84, 0x02CBCA9F,
-	0x00000003, 0x0029CE84, 0x0029DE84, 0x02E1729F, 0x00000002, 0x0029CE84,
-	0x02CBCA9F, 0x00000002, 0x0029CE84, 0x02CE109F, 0x00000002, 0x0029CE84,
-	0x02E1729F, 0x00000003, 0x0029D084, 0x0029CC84, 0x02CBCA9F, 0x00000003,
-	0x0029D084, 0x0029CC84, 0x02E1729F, 0x00000003, 0x0029D084, 0x0029CE84,
-	0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029CE84, 0x02E1729F, 0x00000003,
-	0x0029D084, 0x0029D084, 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029D084,
-	0x02E1729F, 0x00000003, 0x0029D084, 0x0029D284, 0x02CBCA9F, 0x00000003,
-	0x0029D084, 0x0029D284, 0x02E1729F, 0x00000003, 0x0029D084, 0x0029D484,
-	0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029D484, 0x02E1729F, 0x00000003,
-	0x0029D084, 0x0029D684, 0x02CBCA9F, 0x00000003,
-	// Block 226, offset 0x3880
-	0x0029D084, 0x0029D884, 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029DC84,
-	0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029DE84, 0x02CBCA9F, 0x00000002,
-	0x0029D084, 0x02CBCA9F, 0x00000002, 0x0029D084, 0x02CE109F, 0x00000002,
-	0x0029D084, 0x02E1729F, 0x00000003, 0x0029D284, 0x0029CC84, 0x02CBCA9F,
-	0x00000003, 0x0029D284, 0x0029CE84, 0x02CBCA9F, 0x00000002, 0x0029D284,
-	0x02CBCA9F, 0x00000002, 0x0029D284, 0x02CE109F, 0x00000002, 0x0029D284,
-	0x02E1729F, 0x00000002, 0x0029D484, 0x02CBCA9F, 0x00000002, 0x0029D484,
-	0x02CE109F, 0x00000002, 0x0029D484, 0x02E1729F, 0x00000002, 0x0029D684,
-	0x02CBCA9F, 0x00000002, 0x0029D684, 0x02CE109F, 0x00000002, 0x0029D684,
-	0x02E1729F, 0x00000002, 0x0029D884, 0x02CBCA9F, 0x00000002, 0x0029D884,
-	0x02CE109F, 0x00000002, 0x0029D884, 0x02E1729F,
-	// Block 227, offset 0x38c0
-	0x00000002, 0x0029DC84, 0x02CBCA9F, 0x00000002, 0x0029DC84, 0x02CE109F,
-	0x00000002, 0x0029DC84, 0x02E1729F, 0x00000002, 0x0029DE84, 0x02CBCA9F,
-	0x00000002, 0x0029DE84, 0x02CE109F, 0x00000002, 0x0029DE84, 0x02E1729F,
-	0x00000002, 0x0065768E, 0x0065768F, 0x00000002, 0x0065768E, 0x00657691,
-	0x00000002, 0x00657690, 0x0065768F, 0x00000002, 0x00657690, 0x00657691,
-	0x00000002, 0x0065768E, 0x0065828F, 0x00000002, 0x0065768E, 0x00658291,
-	0x00000003, 0x0065768E, 0x00658291, 0xA0812802, 0x00000002, 0x0065768E,
-	0x00658C91, 0x00000003, 0x0065768E, 0x00658C91, 0xA0812802, 0x00000002,
-	0x0065768E, 0x00659691, 0x00000003, 0x0065768E, 0x00659691, 0xA0812802,
-	0x00000002, 0x0065768E, 0x0065A091, 0x00000002, 0x0065768E, 0x0065AA8F,
-	0x00000002, 0x0065768E, 0x0065AA91, 0x00000003,
-	// Block 228, offset 0x3900
-	0x0065768E, 0x0065AA91, 0xA0812802, 0x00000003, 0x0065768E, 0x0065AA91,
-	0xA0812902, 0x00000002, 0x0065768E, 0x0065B491, 0x00000002, 0x0065768E,
-	0x0065BE8F, 0x00000002, 0x0065768E, 0x0065BE91, 0x00000002, 0x0065768E,
-	0x0065C68F, 0x00000002, 0x0065768E, 0x0065C691, 0x00000002, 0x0065768E,
-	0x0065D08F, 0x00000002, 0x0065768E, 0x0065D091, 0x00000003, 0x0065768E,
-	0x0065D091, 0xA0812802, 0x00000002, 0x0065788E, 0x0065788F, 0x00000002,
-	0x0065788E, 0x00657891, 0x00000002, 0x00657890, 0x0065788F, 0x00000002,
-	0x00657890, 0x00657891, 0x00000002, 0x0065788E, 0x00658491, 0x00000003,
-	0x0065788E, 0x00658491, 0xA0812802, 0x00000002, 0x0065788E, 0x00658E8F,
-	0x00000002, 0x0065788E, 0x00658E91, 0x00000003, 0x0065788E, 0x00658E91,
-	0xA0812802, 0x00000002, 0x0065788E, 0x00659891,
-	// Block 229, offset 0x3940
-	0x00000003, 0x0065788E, 0x00659891, 0xA0812802, 0x00000002, 0x0065788E,
-	0x0065A291, 0x00000002, 0x0065788E, 0x0065AC8F, 0x00000002, 0x0065788E,
-	0x0065AC91, 0x00000003, 0x0065788E, 0x0065AC91, 0xA0812802, 0x00000003,
-	0x0065788E, 0x0065AC91, 0xA0812902, 0x00000002, 0x0065788E, 0x0065B691,
-	0x00000002, 0x0065788E, 0x0065C88F, 0x00000002, 0x0065788E, 0x0065C891,
-	0x00000002, 0x0065788E, 0x0065D291, 0x00000003, 0x0065788E, 0x0065D291,
-	0xA0812802, 0x00000002, 0x00657A8E, 0x00657A8F, 0x00000002, 0x00657A8E,
-	0x00657A91, 0x00000002, 0x00657A90, 0x00657A8F, 0x00000002, 0x00657A90,
-	0x00657A91, 0x00000003, 0x00657A8E, 0x00657A91, 0xA0812802, 0x00000003,
-	0x00657A90, 0x00657A8F, 0xA0812802, 0x00000003, 0x00657A90, 0x00657A91,
-	0xA0812802, 0x00000004, 0x00657A90, 0x00657A91,
-	// Block 230, offset 0x3980
-	0xA0812802, 0xA0812802, 0x00000002, 0x00657A8E, 0x0065868F, 0x00000002,
-	0x00657A8E, 0x00658691, 0x00000003, 0x00657A8E, 0x00658691, 0xA0812802,
-	0x00000002, 0x00657A8E, 0x0065908F, 0x00000002, 0x00657A8E, 0x00659091,
-	0x00000003, 0x00657A8E, 0x00659091, 0xA0812802, 0x00000002, 0x00657A8E,
-	0x00659A8F, 0x00000002, 0x00657A8E, 0x00659A91, 0x00000003, 0x00657A8E,
-	0x00659A91, 0xA0812802, 0x00000002, 0x00657A8E, 0x0065A48F, 0x00000002,
-	0x00657A8E, 0x0065A491, 0x00000002, 0x00657A8E, 0x0065AE8F, 0x00000002,
-	0x00657A8E, 0x0065AE91, 0x00000003, 0x00657A8E, 0x0065AE91, 0xA0812802,
-	0x00000003, 0x00657A8E, 0x0065AE91, 0xA0812902, 0x00000002, 0x00657A8E,
-	0x0065B88F, 0x00000002, 0x00657A8E, 0x0065B891, 0x00000002, 0x00657A8E,
-	0x0065C08F, 0x00000002, 0x00657A8E, 0x0065C091,
-	// Block 231, offset 0x39c0
-	0x00000002, 0x00657A8E, 0x0065CA8F, 0x00000002, 0x00657A8E, 0x0065CA91,
-	0x00000002, 0x00657E8E, 0x00657E8F, 0x00000002, 0x00657E8E, 0x00657E91,
-	0x00000002, 0x00657E90, 0x00657E8F, 0x00000002, 0x00657E90, 0x00657E91,
-	0x00000002, 0x00657E8E, 0x0065888F, 0x00000002, 0x00657E8E, 0x00658891,
-	0x00000003, 0x00657E8E, 0x00658891, 0xA0812802, 0x00000002, 0x00657E8E,
-	0x00659291, 0x00000003, 0x00657E8E, 0x00659291, 0xA0812802, 0x00000002,
-	0x00657E8E, 0x00659C91, 0x00000003, 0x00657E8E, 0x00659C91, 0xA0812802,
-	0x00000002, 0x00657E8E, 0x0065A691, 0x00000002, 0x00657E8E, 0x0065B08F,
-	0x00000002, 0x00657E8E, 0x0065B091, 0x00000003, 0x00657E8E, 0x0065B091,
-	0xA0812802, 0x00000003, 0x00657E8E, 0x0065B091, 0xA0812902, 0x00000002,
-	0x00657E8E, 0x0065BA91, 0x00000002, 0x00657E8E,
-	// Block 232, offset 0x3a00
-	0x0065CC8F, 0x00000002, 0x00657E8E, 0x0065CC91, 0x00000002, 0x00657E8E,
-	0x0065D491, 0x00000003, 0x00657E8E, 0x0065D491, 0xA0812802, 0x00000002,
-	0x0065808E, 0x0065808F, 0x00000002, 0x0065808E, 0x00658091, 0x00000002,
-	0x00658090, 0x0065808F, 0x00000002, 0x00658090, 0x00658091, 0x00000002,
-	0x0065808E, 0x00658A91, 0x00000003, 0x0065808E, 0x00658A91, 0xA0812802,
-	0x00000002, 0x0065808E, 0x00659491, 0x00000003, 0x0065808E, 0x00659491,
-	0xA0812802, 0x00000002, 0x0065808E, 0x00659E8F, 0x00000002, 0x0065808E,
-	0x00659E91, 0x00000003, 0x0065808E, 0x00659E91, 0xA0812802, 0x00000002,
-	0x0065808E, 0x0065A891, 0x00000002, 0x0065808E, 0x0065B28F, 0x00000002,
-	0x0065808E, 0x0065B291, 0x00000003, 0x0065808E, 0x0065B291, 0xA0812802,
-	0x00000003, 0x0065808E, 0x0065B291, 0xA0812902,
-	// Block 233, offset 0x3a40
-	0x00000002, 0x0065808E, 0x0065BC91, 0x00000002, 0x0065808E, 0x0065C48F,
-	0x00000002, 0x0065808E, 0x0065C491, 0x00000002, 0x0065808E, 0x0065CE8F,
-	0x00000002, 0x0065808E, 0x0065CE91, 0x00000002, 0x0065808E, 0x0065D691,
-	0x00000003, 0x0065808E, 0x0065D691, 0xA0812802, 0x00000002, 0x00658290,
-	0x0065828F, 0x00000002, 0x00658290, 0x00658291, 0x00000003, 0x0065848F,
-	0x00658291, 0xA0812802, 0x00000002, 0x00658490, 0x00658491, 0x00000003,
-	0x00658490, 0x00658491, 0xA0812802, 0x00000004, 0x00658490, 0x00658491,
-	0xA0812802, 0xA0812802, 0x00000002, 0x00658690, 0x0065868F, 0x00000002,
-	0x00658690, 0x00658691, 0x00000003, 0x00658690, 0x0065868F, 0xA0812802,
-	0x00000003, 0x00658690, 0x00658691, 0xA0812802, 0x00000004, 0x00658690,
-	0x00658691, 0xA0812802, 0xA0812802, 0x00000002,
-	// Block 234, offset 0x3a80
-	0x00658890, 0x0065888F, 0x00000002, 0x00658890, 0x00658891, 0x00000003,
-	0x00658A8F, 0x00658891, 0xA0812802, 0x00000002, 0x00658A90, 0x00658A91,
-	0x00000003, 0x00658A90, 0x00658A91, 0xA0812802, 0x00000004, 0x00658A90,
-	0x00658A91, 0xA0812802, 0xA0812802, 0x00000002, 0x40658A21, 0x00659E91,
-	0x00000002, 0x00658C90, 0x00658C91, 0x00000003, 0x00658C90, 0x00658C91,
-	0xA0812802, 0x00000004, 0x00658C90, 0x00658C91, 0xA0812802, 0xA0812802,
-	0x00000002, 0x00658E90, 0x00658E8F, 0x00000002, 0x00658E90, 0x00658E91,
-	0x00000003, 0x00658E90, 0x00658E8F, 0xA0812802, 0x00000003, 0x00658E90,
-	0x00658E91, 0xA0812802, 0x00000004, 0x00658E90, 0x00658E91, 0xA0812802,
-	0xA0812802, 0x00000002, 0x00659090, 0x0065908F, 0x00000002, 0x00659090,
-	0x00659091, 0x00000003, 0x00659090, 0x0065908F,
-	// Block 235, offset 0x3ac0
-	0xA0812802, 0x00000003, 0x00659090, 0x00659091, 0xA0812802, 0x00000004,
-	0x00659090, 0x00659091, 0xA0812802, 0xA0812802, 0x00000002, 0x00659290,
-	0x00659291, 0x00000003, 0x00659290, 0x00659291, 0xA0812802, 0x00000004,
-	0x00659290, 0x00659291, 0xA0812802, 0xA0812802, 0x00000002, 0x00659490,
-	0x00659491, 0x00000003, 0x00659490, 0x00659491, 0xA0812802, 0x00000004,
-	0x00659490, 0x00659491, 0xA0812802, 0xA0812802, 0x00000002, 0x00659690,
-	0x00659691, 0x00000003, 0x00659690, 0x00659691, 0xA0812802, 0x00000004,
-	0x00659690, 0x00659691, 0xA0812802, 0xA0812802, 0x00000002, 0x00659890,
-	0x00659891, 0x00000003, 0x00659890, 0x00659891, 0xA0812802, 0x00000004,
-	0x00659890, 0x00659891, 0xA0812802, 0xA0812802, 0x00000002, 0x00659A90,
-	0x00659A8F, 0x00000002, 0x00659A90, 0x00659A91,
-	// Block 236, offset 0x3b00
-	0x00000003, 0x00659A90, 0x00659A8F, 0xA0812802, 0x00000003, 0x00659A90,
-	0x00659A91, 0xA0812802, 0x00000004, 0x00659A90, 0x00659A91, 0xA0812802,
-	0xA0812802, 0x00000002, 0x00659C90, 0x00659C91, 0x00000003, 0x00659C90,
-	0x00659C91, 0xA0812802, 0x00000004, 0x00659C90, 0x00659C91, 0xA0812802,
-	0xA0812802, 0x00000002, 0x00659E90, 0x00659E8F, 0x00000002, 0x00659E90,
-	0x00659E91, 0x00000003, 0x00659E90, 0x00659E8F, 0xA0812802, 0x00000003,
-	0x00659E90, 0x00659E91, 0xA0812802, 0x00000004, 0x00659E90, 0x00659E91,
-	0xA0812802, 0xA0812802, 0x00000002, 0x0065A090, 0x0065A091, 0x00000002,
-	0x0065A290, 0x0065A291, 0x00000002, 0x0065A490, 0x0065A48F, 0x00000002,
-	0x0065A490, 0x0065A491, 0x00000002, 0x0065A690, 0x0065A691, 0x00000002,
-	0x0065A890, 0x0065A891, 0x00000002, 0x0065AA90,
-	// Block 237, offset 0x3b40
-	0x0065AA8F, 0x00000002, 0x0065AA90, 0x0065AA91, 0x00000003, 0x0065AA90,
-	0x0065AA8F, 0xA0812802, 0x00000003, 0x0065AA90, 0x0065AA91, 0xA0812802,
-	0x00000004, 0x0065AA90, 0x0065AA91, 0xA0812802, 0xA0812802, 0x00000003,
-	0x0065AA90, 0x0065AA91, 0xA0812902, 0x00000004, 0x0065AA90, 0x0065AA91,
-	0xA0812902, 0xA0812802, 0x00000002, 0x0065AC90, 0x0065AC8F, 0x00000002,
-	0x0065AC90, 0x0065AC91, 0x00000003, 0x0065AC90, 0x0065AC8F, 0xA0812802,
-	0x00000003, 0x0065AC90, 0x0065AC91, 0xA0812802, 0x00000004, 0x0065AC90,
-	0x0065AC91, 0xA0812802, 0xA0812802, 0x00000003, 0x0065AC90, 0x0065AC91,
-	0xA0812902, 0x00000004, 0x0065AC90, 0x0065AC91, 0xA0812902, 0xA0812802,
-	0x00000002, 0x0065AE90, 0x0065AE8F, 0x00000002, 0x0065AE90, 0x0065AE91,
-	0x00000003, 0x0065AE90, 0x0065AE8F, 0xA0812802,
-	// Block 238, offset 0x3b80
-	0x00000003, 0x0065AE90, 0x0065AE91, 0xA0812802, 0x00000004, 0x0065AE90,
-	0x0065AE91, 0xA0812802, 0xA0812802, 0x00000003, 0x0065AE90, 0x0065AE91,
-	0xA0812902, 0x00000004, 0x0065AE90, 0x0065AE91, 0xA0812902, 0xA0812802,
-	0x00000002, 0x0065B090, 0x0065B08F, 0x00000002, 0x0065B090, 0x0065B091,
-	0x00000003, 0x0065B090, 0x0065B08F, 0xA0812802, 0x00000003, 0x0065B090,
-	0x0065B091, 0xA0812802, 0x00000004, 0x0065B090, 0x0065B091, 0xA0812802,
-	0xA0812802, 0x00000003, 0x0065B090, 0x0065B091, 0xA0812902, 0x00000004,
-	0x0065B090, 0x0065B091, 0xA0812902, 0xA0812802, 0x00000002, 0x0065B290,
-	0x0065B28F, 0x00000002, 0x0065B290, 0x0065B291, 0x00000003, 0x0065B290,
-	0x0065B28F, 0xA0812802, 0x00000003, 0x0065B290, 0x0065B291, 0xA0812802,
-	0x00000004, 0x0065B290, 0x0065B291, 0xA0812802,
-	// Block 239, offset 0x3bc0
-	0xA0812802, 0x00000003, 0x0065B290, 0x0065B291, 0xA0812902, 0x00000004,
-	0x0065B290, 0x0065B291, 0xA0812902, 0xA0812802, 0x00000002, 0x0065B490,
-	0x0065B491, 0x00000002, 0x0065B690, 0x0065B691, 0x00000002, 0x0065B890,
-	0x0065B88F, 0x00000002, 0x0065B890, 0x0065B891, 0x00000002, 0x0065BA90,
-	0x0065BA91, 0x00000002, 0x0065BC90, 0x0065BC91, 0x00000002, 0x0065BE90,
-	0x0065BE8F, 0x00000002, 0x0065BE90, 0x0065BE91, 0x00000002, 0x0065C090,
-	0x0065C08F, 0x00000002, 0x0065C090, 0x0065C091, 0x00000002, 0x0065C490,
-	0x0065C48F, 0x00000002, 0x0065C490, 0x0065C491, 0x00000002, 0x4065C421,
-	0x0065C891, 0x00000002, 0x0065C690, 0x0065C68F, 0x00000002, 0x0065C690,
-	0x0065C691, 0x00000002, 0x0065C890, 0x0065C88F, 0x00000002, 0x0065C890,
-	0x0065C891, 0x00000002, 0x0065CA90, 0x0065CA8F,
-	// Block 240, offset 0x3c00
-	0x00000002, 0x0065CA90, 0x0065CA91, 0x00000002, 0x0065CC90, 0x0065CC8F,
-	0x00000002, 0x0065CC90, 0x0065CC91, 0x00000002, 0x0065CE90, 0x0065CE8F,
-	0x00000002, 0x0065CE90, 0x0065CE91, 0x00000002, 0x0065D090, 0x0065D08F,
-	0x00000002, 0x0065D090, 0x0065D091, 0x00000003, 0x0065D090, 0x0065D08F,
-	0xA0812802, 0x00000003, 0x0065D090, 0x0065D091, 0xA0812802, 0x00000004,
-	0x0065D090, 0x0065D091, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D290,
-	0x0065D291, 0x00000003, 0x0065D290, 0x0065D291, 0xA0812802, 0x00000004,
-	0x0065D290, 0x0065D291, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D490,
-	0x0065D491, 0x00000003, 0x0065D490, 0x0065D491, 0xA0812802, 0x00000004,
-	0x0065D490, 0x0065D491, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D690,
-	0x0065D691, 0x00000003, 0x0065D690, 0x0065D691,
-	// Block 241, offset 0x3c40
-	0xA0812802, 0x00000004, 0x0065D690, 0x0065D691, 0xA0812802, 0xA0812802,
-	0x00000002, 0x0065D890, 0x0065D891, 0x00000002, 0x02B24E9C, 0x02D6C69C,
-	0x00000002, 0x02BCE69C, 0x02C4209C, 0x00000002, 0x02CC1C9C, 0x02D9769C,
-	0x00000002, 0x02CC5A9C, 0x02A9189C, 0x00000003, 0x00032683, 0x404FDA20,
-	0x40032620, 0x00000003, 0x404FD821, 0x82092817, 0x404FA420, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FA620, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FA820, 0x00000003, 0x404FD821, 0x82092817, 0x404FAA20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FAC20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FAE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FB020, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FB220, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FB420, 0x00000003, 0x404FD821, 0x82092817,
-	// Block 242, offset 0x3c80
-	0x404FB620, 0x00000003, 0x404FD821, 0x82092817, 0x404FB820, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FBA20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FBC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FBE20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FC020, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FC220, 0x00000003, 0x404FD821, 0x82092817, 0x404FC420, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FC620, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FC820, 0x00000003, 0x404FD821, 0x82092817, 0x404FCA20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FCC20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FCE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FD020, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FD220, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FD420, 0x00000003, 0x404FD821, 0x82092817,
-	// Block 243, offset 0x3cc0
-	0x404FD620, 0x00000003, 0x404FD821, 0x82092817, 0x404FD820, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FDA20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FDA20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDC20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FDC20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FDC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDE20, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FDE20, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FE020, 0x00000003, 0x404FD821, 0x82092817, 0x404FE220, 0x00000003,
-	0x404FD821, 0x82092817, 0x404FE420, 0x00000003, 0x404FD821, 0x82092817,
-	0x404FE620, 0x00000003, 0x404FD821, 0x82092817, 0x404FE820, 0x00000002,
-	0x404FE820, 0x40500E20, 0x00000002, 0x404FE821, 0x40501020, 0x00000002,
-	0x404FE821, 0x40501220, 0x00000002, 0x404FE821,
-	// Block 244, offset 0x3d00
-	0x40501820, 0x00000003, 0x004FE8A3, 0x40501820, 0x404FA420, 0x00000002,
-	0x404FE821, 0x40501A20, 0x00000003, 0x004FE8A3, 0x40501A20, 0x404FDC20,
-	0x00000002, 0x404FE821, 0x40502620, 0x00000002, 0x404FE821, 0x40502820,
-	0x00000002, 0x404FE821, 0x40502A20, 0x00000002, 0x004FE8A3, 0x40502A20,
-	0x00000002, 0x404FE821, 0x40502C20, 0x00000002, 0x4062AC21, 0x4063A820,
-	0x00000002, 0x4062AC22, 0x4063A820, 0x00000002, 0x4062AC23, 0x4063A820,
-	0x00000002, 0x4062AC24, 0x4063A820, 0x00000002, 0x4062AC25, 0x4063A820,
-	0x00000002, 0x4062AC26, 0x4063A820, 0x00000002, 0x4062AC27, 0x4063A820,
-	0x00000002, 0x4062AC28, 0x4063A820, 0x00000002, 0x4062AC29, 0x4063A820,
-	0x00000002, 0x4062AC2A, 0x4063A820, 0x00000002, 0x4062AC2B, 0x4063A820,
-	0x00000002, 0x4062AC2C, 0x4063A820, 0x00000002,
-	// Block 245, offset 0x3d40
-	0x4062AC2D, 0x4063A820, 0x00000002, 0x4062AC2E, 0x4063A820, 0x00000002,
-	0x4062AC2F, 0x4063A820, 0x00000002, 0x4062AC30, 0x4063A820, 0x00000002,
-	0x4062AC31, 0x4063A820, 0x00000002, 0x4062AC32, 0x4063A820, 0x00000002,
-	0x4062AC33, 0x4063A820, 0x00000002, 0x4062AC34, 0x4063A820, 0x00000002,
-	0x4062AC35, 0x4063A820, 0x00000002, 0x4062AC36, 0x4063A820, 0x00000002,
-	0x4062AC37, 0x4063A820, 0x00000002, 0x4062AC38, 0x4063A820, 0x00000002,
-	0x4062AC39, 0x4063A820, 0x00000002, 0x4062AC3A, 0x4063A820, 0x00000002,
-	0x4062AC3B, 0x4063A820, 0x00000002, 0x4062AC3C, 0x4063A820, 0x00000002,
-	0x4062AC3D, 0x4063A820, 0x00000002, 0x4062AC3E, 0x4063A820, 0x00000002,
-	0x4062AC3F, 0x4063A820, 0x00000002, 0x4062AC40, 0x4063A820, 0x00000002,
-	0x4062AC41, 0x4063A820, 0x00000002, 0x4062AC42,
-	// Block 246, offset 0x3d80
-	0x4063A820, 0x00000002, 0x4062AC43, 0x4063A820, 0x00000002, 0x4062AC44,
-	0x4063A820, 0x00000002, 0x4062AC45, 0x4063A820, 0x00000002, 0x4062AC46,
-	0x4063A820, 0x00000002, 0x4062AC47, 0x4063A820, 0x00000002, 0x4062AC48,
-	0x4063A820, 0x00000002, 0x4062AC49, 0x4063A820, 0x00000002, 0x4062AC4A,
-	0x4063A820, 0x00000002, 0x4062AC4B, 0x4063A820, 0x00000002, 0x4062AC4C,
-	0x4063A820, 0x00000003, 0x4062AC21, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC22, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC23, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC24, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC25, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC27, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC28, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 247, offset 0x3dc0
-	0x4062AC29, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC2B, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC2C, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2D, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC2E, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC2F, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC30, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062AC31, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC23, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC26, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC27, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 248, offset 0x3e00
-	0x4062AC28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC30, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC31, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC32, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC33, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC34, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC35, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC36, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC37, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 249, offset 0x3e40
-	0x4062AC38, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC39, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC3A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC3B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3C, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC3D, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC3E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3F, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC40, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC41, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC42, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062AC43, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC23, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40647220, 0x00000003,
-	// Block 250, offset 0x3e80
-	0x4062AC25, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC27, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC28, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC29, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC2B, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062AC30, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC23, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40648220, 0x00000003,
-	// Block 251, offset 0x3ec0
-	0x4062AC25, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC27, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC28, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC29, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC2B, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC30, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC31, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC32, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC33, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC34, 0x4063A820, 0x40648220, 0x00000003,
-	// Block 252, offset 0x3f00
-	0x4062AC35, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC36, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC37, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC38, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC39, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC3A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC3B, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC3E, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3F, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC40, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC41, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC42, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062AC43, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 253, offset 0x3f40
-	0x4062AC22, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC23, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062AC24, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062AC25, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC26, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062AC27, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062AC21, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC23, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC24, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC26, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC27, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC29, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC2A, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 254, offset 0x3f80
-	0x4062AC2B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC2E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC30, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC31, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC32, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC33, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC34, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC35, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC36, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC37, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC39, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC3A, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 255, offset 0x3fc0
-	0x4062AC3B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC3E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC40, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC41, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC42, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC43, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC44, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC45, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC46, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062AC47, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC48, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062AC49, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062AC21, 0x4063AA20, 0x00000002, 0x4062AC22,
-	// Block 256, offset 0x4000
-	0x4063AA20, 0x00000002, 0x4062AC23, 0x4063AA20, 0x00000002, 0x4062AC24,
-	0x4063AA20, 0x00000002, 0x4062AC25, 0x4063AA20, 0x00000002, 0x4062AC26,
-	0x4063AA20, 0x00000002, 0x4062AC27, 0x4063AA20, 0x00000002, 0x4062AC28,
-	0x4063AA20, 0x00000002, 0x4062AC29, 0x4063AA20, 0x00000002, 0x4062AC2A,
-	0x4063AA20, 0x00000002, 0x4062AC2B, 0x4063AA20, 0x00000002, 0x4062AC2C,
-	0x4063AA20, 0x00000002, 0x4062AC2D, 0x4063AA20, 0x00000002, 0x4062AC2E,
-	0x4063AA20, 0x00000002, 0x4062AC2F, 0x4063AA20, 0x00000002, 0x4062AC30,
-	0x4063AA20, 0x00000002, 0x4062AC31, 0x4063AA20, 0x00000002, 0x4062AC32,
-	0x4063AA20, 0x00000002, 0x4062AC33, 0x4063AA20, 0x00000002, 0x4062AC34,
-	0x4063AA20, 0x00000002, 0x4062AC35, 0x4063AA20, 0x00000002, 0x4062AC36,
-	0x4063AA20, 0x00000002, 0x4062AC37, 0x4063AA20,
-	// Block 257, offset 0x4040
-	0x00000002, 0x4062AC38, 0x4063AA20, 0x00000002, 0x4062AC39, 0x4063AA20,
-	0x00000002, 0x4062AC3A, 0x4063AA20, 0x00000003, 0x4062AC21, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062AC22, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062AC21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062AC23, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062AC24, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062AC26, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062AC21, 0x4063AC20, 0x40646420, 0x00000002, 0x4062AC21, 0x4063B020,
-	0x00000002, 0x4062AC22, 0x4063B020, 0x00000002, 0x4062AC23, 0x4063B020,
-	0x00000002, 0x4062AC24, 0x4063B020, 0x00000002, 0x4062AC25, 0x4063B020,
-	0x00000002, 0x4062AC26, 0x4063B020, 0x00000002,
-	// Block 258, offset 0x4080
-	0x4062AC27, 0x4063B020, 0x00000002, 0x4062AC28, 0x4063B020, 0x00000002,
-	0x4062AC29, 0x4063B020, 0x00000002, 0x4062AC2A, 0x4063B020, 0x00000002,
-	0x4062AC2B, 0x4063B020, 0x00000002, 0x4062AC2C, 0x4063B020, 0x00000002,
-	0x4062AC2D, 0x4063B020, 0x00000002, 0x4062AC2E, 0x4063B020, 0x00000002,
-	0x4062AC2F, 0x4063B020, 0x00000002, 0x4062AC30, 0x4063B020, 0x00000002,
-	0x4062AC31, 0x4063B020, 0x00000002, 0x4062AC32, 0x4063B020, 0x00000002,
-	0x4062AC33, 0x4063B020, 0x00000002, 0x4062AC34, 0x4063B020, 0x00000002,
-	0x4062AC35, 0x4063B020, 0x00000002, 0x4062AC36, 0x4063B020, 0x00000002,
-	0x4062AC37, 0x4063B020, 0x00000002, 0x4062AC38, 0x4063B020, 0x00000002,
-	0x4062AC39, 0x4063B020, 0x00000002, 0x4062AC3A, 0x4063B020, 0x00000002,
-	0x4062AC3B, 0x4063B020, 0x00000002, 0x4062AC3C,
-	// Block 259, offset 0x40c0
-	0x4063B020, 0x00000002, 0x4062AC3D, 0x4063B020, 0x00000002, 0x4062AC3E,
-	0x4063B020, 0x00000003, 0x4062AC21, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC22, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC24, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC25, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC27, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC28, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC2A, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC2B, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC2D, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC2E, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 260, offset 0x4100
-	0x4062AC2F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062AC31, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062AC32, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062AC22, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062AC23, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC24, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062AC25, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062AC26, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC27, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062AC21, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062AC22, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC23, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062AC24, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062AC25, 0x4063B020, 0x40648220, 0x00000003,
-	// Block 261, offset 0x4140
-	0x4062AC26, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC27, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062AC28, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062AC29, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC21, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062AC22, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062AC23, 0x4063B020, 0x40648420, 0x00000003, 0x4062AC24, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062AC25, 0x4063B020, 0x40648420, 0x00000002,
-	0x4062AC21, 0x4063B220, 0x00000002, 0x4062AC22, 0x4063B220, 0x00000002,
-	0x4062AC23, 0x4063B220, 0x00000003, 0x4062AC21, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC22, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC23,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC24, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40646420,
-	// Block 262, offset 0x4180
-	0x00000003, 0x4062AC26, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC27,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC28, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC29, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2A,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2D,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062AC21, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063B420, 0x40646A20,
-	// Block 263, offset 0x41c0
-	0x00000003, 0x4062AC29, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC2F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC30,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC32, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC33,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062AC34, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC22,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062AC23, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062AC24, 0x4063B420, 0x40647220,
-	// Block 264, offset 0x4200
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC26,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062AC27, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062AC28, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC29,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062AC21, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC22, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC23,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC24, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC25, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC26,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC27, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC28, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC29,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC2A, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC2B, 0x4063B420, 0x40648220,
-	// Block 265, offset 0x4240
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC2D,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062AC2F, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC21,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC23, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC24,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC26, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC27,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC29, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC2C, 0x4063B420, 0x40648C20,
-	// Block 266, offset 0x4280
-	0x00000003, 0x4062AC2D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC30, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC31,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC32, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC33, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC34,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC35, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC36, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC37,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC39, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC3C, 0x4063B420, 0x40648C20,
-	// Block 267, offset 0x42c0
-	0x00000003, 0x4062AC3D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC40, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC41,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC42, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC43, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC44,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC45, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC46, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC47,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC48, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC49, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC4C, 0x4063B420, 0x40648C20,
-	// Block 268, offset 0x4300
-	0x00000003, 0x4062AC4D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC50, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC51,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC52, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC53, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC54,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC55, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC56, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC57,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC58, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC59, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5A,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5B, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC5C, 0x4063B420, 0x40648C20,
-	// Block 269, offset 0x4340
-	0x00000003, 0x4062AC5D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5E,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5F, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062AC60, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC61,
-	0x4063B420, 0x40648C20, 0x00000002, 0x4062AC21, 0x4063B620, 0x00000002,
-	0x4062AC22, 0x4063B620, 0x00000002, 0x4062AC23, 0x4063B620, 0x00000002,
-	0x4062AC24, 0x4063B620, 0x00000002, 0x4062AC25, 0x4063B620, 0x00000002,
-	0x4062AC26, 0x4063B620, 0x00000002, 0x4062AC27, 0x4063B620, 0x00000002,
-	0x4062AC28, 0x4063B620, 0x00000002, 0x4062AC29, 0x4063B620, 0x00000002,
-	0x4062AC2A, 0x4063B620, 0x00000002, 0x4062AC2B, 0x4063B620, 0x00000002,
-	0x4062AC2C, 0x4063B620, 0x00000002, 0x4062AC2D, 0x4063B620, 0x00000002,
-	0x4062AC2E, 0x4063B620, 0x00000002, 0x4062AC2F,
-	// Block 270, offset 0x4380
-	0x4063B620, 0x00000002, 0x4062AC30, 0x4063B620, 0x00000002, 0x4062AC31,
-	0x4063B620, 0x00000002, 0x4062AC32, 0x4063B620, 0x00000002, 0x4062AC33,
-	0x4063B620, 0x00000002, 0x4062AC34, 0x4063B620, 0x00000002, 0x4062AC35,
-	0x4063B620, 0x00000002, 0x4062AC36, 0x4063B620, 0x00000002, 0x4062AC37,
-	0x4063B620, 0x00000002, 0x4062AC38, 0x4063B620, 0x00000002, 0x4062AC39,
-	0x4063B620, 0x00000002, 0x4062AC3A, 0x4063B620, 0x00000002, 0x4062AC3B,
-	0x4063B620, 0x00000002, 0x4062AC3C, 0x4063B620, 0x00000002, 0x4062AC3D,
-	0x4063B620, 0x00000002, 0x4062AC3E, 0x4063B620, 0x00000002, 0x4062AC3F,
-	0x4063B620, 0x00000002, 0x4062AC40, 0x4063B620, 0x00000002, 0x4062AC41,
-	0x4063B620, 0x00000002, 0x4062AC42, 0x4063B620, 0x00000002, 0x4062AC43,
-	0x4063B620, 0x00000002, 0x4062AC44, 0x4063B620,
-	// Block 271, offset 0x43c0
-	0x00000002, 0x4062AC21, 0x4063B820, 0x00000002, 0x4062AC22, 0x4063B820,
-	0x00000002, 0x4062AC23, 0x4063B820, 0x00000002, 0x4062AC24, 0x4063B820,
-	0x00000002, 0x4062AC25, 0x4063B820, 0x00000002, 0x4062AC26, 0x4063B820,
-	0x00000002, 0x4062AC27, 0x4063B820, 0x00000002, 0x4062AC28, 0x4063B820,
-	0x00000002, 0x4062AC29, 0x4063B820, 0x00000002, 0x4062AC2A, 0x4063B820,
-	0x00000002, 0x4062AC2B, 0x4063B820, 0x00000002, 0x4062AC2C, 0x4063B820,
-	0x00000002, 0x4062AC2D, 0x4063B820, 0x00000002, 0x4062AC2E, 0x4063B820,
-	0x00000002, 0x4062AC2F, 0x4063B820, 0x00000002, 0x4062AC30, 0x4063B820,
-	0x00000002, 0x4062AC31, 0x4063B820, 0x00000002, 0x4062AC32, 0x4063B820,
-	0x00000002, 0x4062AC33, 0x4063B820, 0x00000002, 0x4062AC34, 0x4063B820,
-	0x00000002, 0x4062AC35, 0x4063B820, 0x00000002,
-	// Block 272, offset 0x4400
-	0x4062AC36, 0x4063B820, 0x00000002, 0x4062AC37, 0x4063B820, 0x00000002,
-	0x4062AC38, 0x4063B820, 0x00000002, 0x4062AC39, 0x4063B820, 0x00000002,
-	0x4062AC3A, 0x4063B820, 0x00000002, 0x4062AC3B, 0x4063B820, 0x00000002,
-	0x4062AC3C, 0x4063B820, 0x00000002, 0x4062AC3D, 0x4063B820, 0x00000002,
-	0x4062AC3E, 0x4063B820, 0x00000002, 0x4062AC3F, 0x4063B820, 0x00000002,
-	0x4062AC40, 0x4063B820, 0x00000002, 0x4062AC41, 0x4063B820, 0x00000002,
-	0x4062AC42, 0x4063B820, 0x00000002, 0x4062AC43, 0x4063B820, 0x00000002,
-	0x4062AC44, 0x4063B820, 0x00000002, 0x4062AC45, 0x4063B820, 0x00000002,
-	0x4062AC46, 0x4063B820, 0x00000002, 0x4062AC47, 0x4063B820, 0x00000002,
-	0x4062AC48, 0x4063B820, 0x00000002, 0x4062AC49, 0x4063B820, 0x00000002,
-	0x4062AC4A, 0x4063B820, 0x00000002, 0x4062AC4B,
-	// Block 273, offset 0x4440
-	0x4063B820, 0x00000002, 0x4062AC4C, 0x4063B820, 0x00000002, 0x4062AC4D,
-	0x4063B820, 0x00000002, 0x4062AC4E, 0x4063B820, 0x00000002, 0x4062AC4F,
-	0x4063B820, 0x00000002, 0x4062AC50, 0x4063B820, 0x00000002, 0x4062AC51,
-	0x4063B820, 0x00000002, 0x4062AC52, 0x4063B820, 0x00000002, 0x4062AC53,
-	0x4063B820, 0x00000002, 0x4062AC54, 0x4063B820, 0x00000002, 0x4062AC55,
-	0x4063B820, 0x00000002, 0x4062AC56, 0x4063B820, 0x00000002, 0x4062AC57,
-	0x4063B820, 0x00000002, 0x4062AC58, 0x4063B820, 0x00000002, 0x4062AC59,
-	0x4063B820, 0x00000002, 0x4062AC5A, 0x4063B820, 0x00000002, 0x4062AC5B,
-	0x4063B820, 0x00000002, 0x4062AC5C, 0x4063B820, 0x00000002, 0x4062AC5D,
-	0x4063B820, 0x00000002, 0x4062AC5E, 0x4063B820, 0x00000002, 0x4062AC5F,
-	0x4063B820, 0x00000002, 0x4062AC60, 0x4063B820,
-	// Block 274, offset 0x4480
-	0x00000002, 0x4062AC61, 0x4063B820, 0x00000002, 0x4062AC62, 0x4063B820,
-	0x00000002, 0x4062AC63, 0x4063B820, 0x00000003, 0x4062AC21, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC22, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC23, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC24, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC25, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC26, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC27, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC28, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC29, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062AC2B, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062AC2C, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC21, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC22, 0x4063B820,
-	// Block 275, offset 0x44c0
-	0x40646A20, 0x00000003, 0x4062AC23, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC24, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC26, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC27, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC29, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC2A, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC2C, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC2D, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC2F, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC30, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC32, 0x4063B820,
-	// Block 276, offset 0x4500
-	0x40646A20, 0x00000003, 0x4062AC33, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC34, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC35, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC36, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062AC37, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC38, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062AC21, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062AC22, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC23, 0x4063B820,
-	0x40647220, 0x00000003, 0x4062AC24, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062AC25, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC26, 0x4063B820,
-	0x40647220, 0x00000003, 0x4062AC21, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC23, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC24, 0x4063B820,
-	// Block 277, offset 0x4540
-	0x40648C20, 0x00000003, 0x4062AC25, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC28, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC2B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC2C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC2E, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC2F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC30, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC31, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC32, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC33, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC34, 0x4063B820,
-	// Block 278, offset 0x4580
-	0x40648C20, 0x00000003, 0x4062AC35, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC36, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC37, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC38, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC39, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC3A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062AC3B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062AC3C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC21, 0x4063B820,
-	0x40648E20, 0x00000002, 0x4062AC21, 0x4063BA20, 0x00000002, 0x4062AC22,
-	0x4063BA20, 0x00000002, 0x4062AC23, 0x4063BA20, 0x00000002, 0x4062AC24,
-	0x4063BA20, 0x00000002, 0x4062AC25, 0x4063BA20, 0x00000002, 0x4062AC26,
-	0x4063BA20, 0x00000002, 0x4062AC27, 0x4063BA20, 0x00000002, 0x4062AC28,
-	0x4063BA20, 0x00000002, 0x4062AC29, 0x4063BA20,
-	// Block 279, offset 0x45c0
-	0x00000002, 0x4062AC2A, 0x4063BA20, 0x00000002, 0x4062AC2B, 0x4063BA20,
-	0x00000002, 0x4062AC2C, 0x4063BA20, 0x00000002, 0x4062AC2D, 0x4063BA20,
-	0x00000002, 0x4062AC2E, 0x4063BA20, 0x00000002, 0x4062AC2F, 0x4063BA20,
-	0x00000002, 0x4062AC30, 0x4063BA20, 0x00000002, 0x4062AC31, 0x4063BA20,
-	0x00000002, 0x4062AC32, 0x4063BA20, 0x00000002, 0x4062AC33, 0x4063BA20,
-	0x00000002, 0x4062AC34, 0x4063BA20, 0x00000002, 0x4062AC35, 0x4063BA20,
-	0x00000002, 0x4062AC36, 0x4063BA20, 0x00000002, 0x4062AC37, 0x4063BA20,
-	0x00000002, 0x4062AC38, 0x4063BA20, 0x00000002, 0x4062AC39, 0x4063BA20,
-	0x00000003, 0x4062AC21, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC22,
-	0x4063BA20, 0x40646420, 0x00000003, 0x4062AC23, 0x4063BA20, 0x40646420,
-	0x00000003, 0x4062AC24, 0x4063BA20, 0x40646420,
-	// Block 280, offset 0x4600
-	0x00000003, 0x4062AC25, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC26,
-	0x4063BA20, 0x40646420, 0x00000003, 0x4062AC27, 0x4063BA20, 0x40646420,
-	0x00000003, 0x4062AC28, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC29,
-	0x4063BA20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC29,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC2B, 0x4063BA20, 0x40646A20,
-	// Block 281, offset 0x4640
-	0x00000003, 0x4062AC2C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2D,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC2F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC30,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC32, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC33,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC34, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC35, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC36,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC37, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC38, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC39,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC3B, 0x4063BA20, 0x40646A20,
-	// Block 282, offset 0x4680
-	0x00000003, 0x4062AC3C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3D,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3E, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062AC3F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC21,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC22, 0x4063BA20, 0x40647220,
-	0x00000003, 0x4062AC23, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC24,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40647220,
-	0x00000003, 0x4062AC26, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC27,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40647220,
-	0x00000003, 0x4062AC29, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC2A,
-	0x4063BA20, 0x40647220, 0x00000003, 0x4062AC21, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC22, 0x4063BA20, 0x40648C20,
-	// Block 283, offset 0x46c0
-	0x00000003, 0x4062AC23, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC24,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC26, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC27,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC29, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2A,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC2C, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2D,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2E, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC2F, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC30,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC31, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC32, 0x4063BA20, 0x40648C20,
-	// Block 284, offset 0x4700
-	0x00000003, 0x4062AC33, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC34,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC35, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062AC36, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC37,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063BA20, 0x40648C20,
-	0x00000002, 0x4062AC21, 0x4063BC20, 0x00000002, 0x4062AC22, 0x4063BC20,
-	0x00000002, 0x4062AC23, 0x4063BC20, 0x00000002, 0x4062AC24, 0x4063BC20,
-	0x00000002, 0x4062AC25, 0x4063BC20, 0x00000002, 0x4062AC26, 0x4063BC20,
-	0x00000002, 0x4062AC27, 0x4063BC20, 0x00000002, 0x4062AC21, 0x4063BE20,
-	0x00000002, 0x4062AC22, 0x4063BE20, 0x00000002, 0x4062AC23, 0x4063BE20,
-	0x00000002, 0x4062AC24, 0x4063BE20, 0x00000002, 0x4062AC25, 0x4063BE20,
-	0x00000002, 0x4062AC26, 0x4063BE20, 0x00000002,
-	// Block 285, offset 0x4740
-	0x4062AC27, 0x4063BE20, 0x00000002, 0x4062AC28, 0x4063BE20, 0x00000002,
-	0x4062AC29, 0x4063BE20, 0x00000002, 0x4062AC2A, 0x4063BE20, 0x00000002,
-	0x4062AC2B, 0x4063BE20, 0x00000002, 0x4062AC2C, 0x4063BE20, 0x00000002,
-	0x4062AC2D, 0x4063BE20, 0x00000002, 0x4062AC2E, 0x4063BE20, 0x00000002,
-	0x4062AC2F, 0x4063BE20, 0x00000002, 0x4062AC30, 0x4063BE20, 0x00000003,
-	0x4062AC21, 0x4063BE20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063BE20,
-	0x40648C20, 0x00000003, 0x4062AC22, 0x4063BE20, 0x40648C20, 0x00000003,
-	0x4062AC23, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063BE20,
-	0x40648C20, 0x00000003, 0x4062AC25, 0x4063BE20, 0x40648C20, 0x00000003,
-	0x4062AC26, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063BE20,
-	0x40648C20, 0x00000003, 0x4062AC28, 0x4063BE20,
-	// Block 286, offset 0x4780
-	0x40648C20, 0x00000002, 0x4062AC21, 0x4063C020, 0x00000002, 0x4062AC22,
-	0x4063C020, 0x00000002, 0x4062AC23, 0x4063C020, 0x00000002, 0x4062AC24,
-	0x4063C020, 0x00000002, 0x4062AC25, 0x4063C020, 0x00000002, 0x4062AC26,
-	0x4063C020, 0x00000002, 0x4062AC27, 0x4063C020, 0x00000002, 0x4062AC28,
-	0x4063C020, 0x00000002, 0x4062AC29, 0x4063C020, 0x00000002, 0x4062AC2A,
-	0x4063C020, 0x00000002, 0x4062AC2B, 0x4063C020, 0x00000002, 0x4062AC2C,
-	0x4063C020, 0x00000002, 0x4062AC2D, 0x4063C020, 0x00000002, 0x4062AC2E,
-	0x4063C020, 0x00000002, 0x4062AC2F, 0x4063C020, 0x00000002, 0x4062AC30,
-	0x4063C020, 0x00000002, 0x4062AC31, 0x4063C020, 0x00000002, 0x4062AC32,
-	0x4063C020, 0x00000002, 0x4062AC33, 0x4063C020, 0x00000002, 0x4062AC34,
-	0x4063C020, 0x00000002, 0x4062AC35, 0x4063C020,
-	// Block 287, offset 0x47c0
-	0x00000002, 0x4062AC36, 0x4063C020, 0x00000002, 0x4062AC37, 0x4063C020,
-	0x00000002, 0x4062AC38, 0x4063C020, 0x00000002, 0x4062AC39, 0x4063C020,
-	0x00000002, 0x4062AC3A, 0x4063C020, 0x00000002, 0x4062AC3B, 0x4063C020,
-	0x00000002, 0x4062AC3C, 0x4063C020, 0x00000002, 0x4062AC3D, 0x4063C020,
-	0x00000002, 0x4062AC3E, 0x4063C020, 0x00000002, 0x4062AC3F, 0x4063C020,
-	0x00000002, 0x4062AC40, 0x4063C020, 0x00000002, 0x4062AC41, 0x4063C020,
-	0x00000002, 0x4062AC42, 0x4063C020, 0x00000002, 0x4062AC43, 0x4063C020,
-	0x00000002, 0x4062AC44, 0x4063C020, 0x00000002, 0x4062AC45, 0x4063C020,
-	0x00000002, 0x4062AC46, 0x4063C020, 0x00000002, 0x4062AC47, 0x4063C020,
-	0x00000002, 0x4062AC48, 0x4063C020, 0x00000002, 0x4062AC49, 0x4063C020,
-	0x00000002, 0x4062AC4A, 0x4063C020, 0x00000002,
-	// Block 288, offset 0x4800
-	0x4062AC4B, 0x4063C020, 0x00000002, 0x4062AC4C, 0x4063C020, 0x00000002,
-	0x4062AC21, 0x4063C220, 0x00000002, 0x4062AC22, 0x4063C220, 0x00000002,
-	0x4062AC23, 0x4063C220, 0x00000002, 0x4062AC24, 0x4063C220, 0x00000002,
-	0x4062AC25, 0x4063C220, 0x00000002, 0x4062AC26, 0x4063C220, 0x00000002,
-	0x4062AC27, 0x4063C220, 0x00000002, 0x4062AC28, 0x4063C220, 0x00000002,
-	0x4062AC29, 0x4063C220, 0x00000002, 0x4062AC2A, 0x4063C220, 0x00000002,
-	0x4062AC2B, 0x4063C220, 0x00000002, 0x4062AC2C, 0x4063C220, 0x00000002,
-	0x4062AC2D, 0x4063C220, 0x00000002, 0x4062AC2E, 0x4063C220, 0x00000002,
-	0x4062AC2F, 0x4063C220, 0x00000002, 0x4062AC30, 0x4063C220, 0x00000002,
-	0x4062AC31, 0x4063C220, 0x00000002, 0x4062AC32, 0x4063C220, 0x00000002,
-	0x4062AC33, 0x4063C220, 0x00000002, 0x4062AC34,
-	// Block 289, offset 0x4840
-	0x4063C220, 0x00000002, 0x4062AC35, 0x4063C220, 0x00000002, 0x4062AC36,
-	0x4063C220, 0x00000002, 0x4062AC37, 0x4063C220, 0x00000002, 0x4062AC38,
-	0x4063C220, 0x00000002, 0x4062AC39, 0x4063C220, 0x00000002, 0x4062AC3A,
-	0x4063C220, 0x00000002, 0x4062AC3B, 0x4063C220, 0x00000002, 0x4062AC3C,
-	0x4063C220, 0x00000002, 0x4062AC3D, 0x4063C220, 0x00000002, 0x4062AC3E,
-	0x4063C220, 0x00000002, 0x4062AC3F, 0x4063C220, 0x00000002, 0x4062AC40,
-	0x4063C220, 0x00000002, 0x4062AC41, 0x4063C220, 0x00000002, 0x4062AC42,
-	0x4063C220, 0x00000002, 0x4062AC43, 0x4063C220, 0x00000002, 0x4062AC44,
-	0x4063C220, 0x00000002, 0x4062AC45, 0x4063C220, 0x00000002, 0x4062AC46,
-	0x4063C220, 0x00000002, 0x4062AC47, 0x4063C220, 0x00000002, 0x4062AC48,
-	0x4063C220, 0x00000002, 0x4062AC49, 0x4063C220,
-	// Block 290, offset 0x4880
-	0x00000002, 0x4062AC4A, 0x4063C220, 0x00000002, 0x4062AC4B, 0x4063C220,
-	0x00000002, 0x4062AC4C, 0x4063C220, 0x00000002, 0x4062AC4D, 0x4063C220,
-	0x00000002, 0x4062AC4E, 0x4063C220, 0x00000002, 0x4062AC4F, 0x4063C220,
-	0x00000002, 0x4062AC50, 0x4063C220, 0x00000002, 0x4062AC51, 0x4063C220,
-	0x00000002, 0x4062AC52, 0x4063C220, 0x00000002, 0x4062AC53, 0x4063C220,
-	0x00000002, 0x4062AC54, 0x4063C220, 0x00000002, 0x4062AC55, 0x4063C220,
-	0x00000002, 0x4062AC56, 0x4063C220, 0x00000002, 0x4062AC57, 0x4063C220,
-	0x00000002, 0x4062AC58, 0x4063C220, 0x00000002, 0x4062AC59, 0x4063C220,
-	0x00000002, 0x4062AC5A, 0x4063C220, 0x00000002, 0x4062AC5B, 0x4063C220,
-	0x00000002, 0x4062AC5C, 0x4063C220, 0x00000002, 0x4062AC5D, 0x4063C220,
-	0x00000002, 0x4062AC5E, 0x4063C220, 0x00000002,
-	// Block 291, offset 0x48c0
-	0x4062AC5F, 0x4063C220, 0x00000002, 0x4062AC60, 0x4063C220, 0x00000002,
-	0x4062AC61, 0x4063C220, 0x00000002, 0x4062AC62, 0x4063C220, 0x00000002,
-	0x4062AC63, 0x4063C220, 0x00000002, 0x4062AC64, 0x4063C220, 0x00000002,
-	0x4062AC65, 0x4063C220, 0x00000002, 0x4062AC66, 0x4063C220, 0x00000002,
-	0x4062AC67, 0x4063C220, 0x00000002, 0x4062AC68, 0x4063C220, 0x00000002,
-	0x4062AC69, 0x4063C220, 0x00000002, 0x4062AC6A, 0x4063C220, 0x00000002,
-	0x4062AC6B, 0x4063C220, 0x00000002, 0x4062AC6C, 0x4063C220, 0x00000002,
-	0x4062AC6D, 0x4063C220, 0x00000002, 0x4062AC6E, 0x4063C220, 0x00000002,
-	0x4062AC6F, 0x4063C220, 0x00000002, 0x4062AC70, 0x4063C220, 0x00000002,
-	0x4062AC71, 0x4063C220, 0x00000002, 0x4062AC72, 0x4063C220, 0x00000002,
-	0x4062AC73, 0x4063C220, 0x00000002, 0x4062AC74,
-	// Block 292, offset 0x4900
-	0x4063C220, 0x00000002, 0x4062AC75, 0x4063C220, 0x00000002, 0x4062AC76,
-	0x4063C220, 0x00000002, 0x4062AC77, 0x4063C220, 0x00000002, 0x4062AC78,
-	0x4063C220, 0x00000002, 0x4062AC79, 0x4063C220, 0x00000002, 0x4062AC7A,
-	0x4063C220, 0x00000002, 0x4062AC7B, 0x4063C220, 0x00000002, 0x4062AC7C,
-	0x4063C220, 0x00000002, 0x4062AC7D, 0x4063C220, 0x00000002, 0x4062AC7E,
-	0x4063C220, 0x00000002, 0x4062AC7F, 0x4063C220, 0x00000002, 0x4062AC80,
-	0x4063C220, 0x00000002, 0x4062AC81, 0x4063C220, 0x00000002, 0x4062AC82,
-	0x4063C220, 0x00000002, 0x4062AC83, 0x4063C220, 0x00000002, 0x4062AC84,
-	0x4063C220, 0x00000002, 0x4062AC85, 0x4063C220, 0x00000002, 0x4062AC86,
-	0x4063C220, 0x00000002, 0x4062AC87, 0x4063C220, 0x00000003, 0x4062AC21,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC22,
-	// Block 293, offset 0x4940
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC23, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062AC24, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC25,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC26, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062AC27, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC28,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062AC2A, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC21,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062AC23, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC24,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062AC26, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC27,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC28,
-	// Block 294, offset 0x4980
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC22,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062AC23, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062AC24, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC25,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062AC26, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062AC27, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC28,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062AC21, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062AC22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC23,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062AC25, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC26,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062AC27,
-	// Block 295, offset 0x49c0
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC29,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC2B, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2C,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063C420, 0x40646A20,
-	0x00000003, 0x4062AC2E, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2F,
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC30,
-	// Block 296, offset 0x4a00
-	0x4063C420, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40647220,
-	0x00000003, 0x4062AC22, 0x4063C420, 0x40647220, 0x00000003, 0x4062AC23,
-	0x4063C420, 0x40647220, 0x00000003, 0x4062AC24, 0x4063C420, 0x40647220,
-	0x00000003, 0x4062AC25, 0x4063C420, 0x40647220, 0x00000002, 0x4062AC21,
-	0x4063C620, 0x00000002, 0x4062AC22, 0x4063C620, 0x00000002, 0x4062AC23,
-	0x4063C620, 0x00000002, 0x4062AC24, 0x4063C620, 0x00000002, 0x4062AC25,
-	0x4063C620, 0x00000002, 0x4062AC26, 0x4063C620, 0x00000002, 0x4062AC27,
-	0x4063C620, 0x00000002, 0x4062AC28, 0x4063C620, 0x00000002, 0x4062AC29,
-	0x4063C620, 0x00000002, 0x4062AC2A, 0x4063C620, 0x00000002, 0x4062AC2B,
-	0x4063C620, 0x00000002, 0x4062AC2C, 0x4063C620, 0x00000002, 0x4062AC2D,
-	0x4063C620, 0x00000002, 0x4062AC2E, 0x4063C620,
-	// Block 297, offset 0x4a40
-	0x00000002, 0x4062AC2F, 0x4063C620, 0x00000002, 0x4062AC30, 0x4063C620,
-	0x00000002, 0x4062AC31, 0x4063C620, 0x00000002, 0x4062AC32, 0x4063C620,
-	0x00000002, 0x4062AC33, 0x4063C620, 0x00000002, 0x4062AC34, 0x4063C620,
-	0x00000002, 0x4062AC21, 0x4063C820, 0x00000002, 0x4062AC22, 0x4063C820,
-	0x00000002, 0x4062AC23, 0x4063C820, 0x00000002, 0x4062AC24, 0x4063C820,
-	0x00000002, 0x4062AC21, 0x4063CA20, 0x00000002, 0x4062AC22, 0x4063CA20,
-	0x00000002, 0x4062AC23, 0x4063CA20, 0x00000002, 0x4062AC24, 0x4063CA20,
-	0x00000002, 0x4062AC25, 0x4063CA20, 0x00000002, 0x4062AC26, 0x4063CA20,
-	0x00000002, 0x4062AC27, 0x4063CA20, 0x00000002, 0x4062AC28, 0x4063CA20,
-	0x00000002, 0x4062AC29, 0x4063CA20, 0x00000002, 0x4062AC2A, 0x4063CA20,
-	0x00000002, 0x4062AC2B, 0x4063CA20, 0x00000002,
-	// Block 298, offset 0x4a80
-	0x4062AC2C, 0x4063CA20, 0x00000002, 0x4062AC2D, 0x4063CA20, 0x00000002,
-	0x4062AC2E, 0x4063CA20, 0x00000002, 0x4062AC2F, 0x4063CA20, 0x00000002,
-	0x4062AC30, 0x4063CA20, 0x00000002, 0x4062AC31, 0x4063CA20, 0x00000002,
-	0x4062AC32, 0x4063CA20, 0x00000002, 0x4062AC33, 0x4063CA20, 0x00000002,
-	0x4062AC34, 0x4063CA20, 0x00000002, 0x4062AC35, 0x4063CA20, 0x00000002,
-	0x4062AC36, 0x4063CA20, 0x00000002, 0x4062AC37, 0x4063CA20, 0x00000002,
-	0x4062AC38, 0x4063CA20, 0x00000002, 0x4062AC39, 0x4063CA20, 0x00000002,
-	0x4062AC3A, 0x4063CA20, 0x00000002, 0x4062AC3B, 0x4063CA20, 0x00000002,
-	0x4062AC3C, 0x4063CA20, 0x00000002, 0x4062AC3D, 0x4063CA20, 0x00000002,
-	0x4062AC3E, 0x4063CA20, 0x00000002, 0x4062AC3F, 0x4063CA20, 0x00000002,
-	0x4062AC40, 0x4063CA20, 0x00000003, 0x4062AC21,
-	// Block 299, offset 0x4ac0
-	0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063CA20, 0x40646A20,
-	0x00000003, 0x4062AC23, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC24,
-	0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063CA20, 0x40646A20,
-	0x00000003, 0x4062AC26, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC27,
-	0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063CA20, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063CA20, 0x40647220, 0x00000003, 0x4062AC21,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC22, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062AC23, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC24,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC25, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062AC26, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC27,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC28,
-	// Block 300, offset 0x4b00
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062AC2A, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC2B,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC22, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC23,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC25, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC26,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC28, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC29,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC2B, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2C,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2D,
-	// Block 301, offset 0x4b40
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC2F, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC30,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC31, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC32, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC33,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC34, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC35, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC36,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC37, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062AC38, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC39,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC22, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC23,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC24,
-	// Block 302, offset 0x4b80
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC25, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC26, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC27,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC28, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC29, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2A,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2B, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC2C, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2D,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2E, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC2F, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC30,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062AC31, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062AC32, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC21,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC22,
-	// Block 303, offset 0x4bc0
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC23, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC24, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC25,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC27, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC28,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC2A, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC2B,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062AC2C, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062AC2D, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC21,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062AC23, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC24,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC25,
-	// Block 304, offset 0x4c00
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648C20,
-	0x00000002, 0x4062AC21, 0x4063D020, 0x00000002, 0x4062AC22, 0x4063D020,
-	0x00000002, 0x4062AC23, 0x4063D020, 0x00000002, 0x4062AC24, 0x4063D020,
-	0x00000002, 0x4062AC25, 0x4063D020, 0x00000002, 0x4062AC26, 0x4063D020,
-	0x00000002, 0x4062AC27, 0x4063D020, 0x00000002, 0x4062AC28, 0x4063D020,
-	0x00000002, 0x4062AC29, 0x4063D020, 0x00000002, 0x4062AC2A, 0x4063D020,
-	0x00000002, 0x4062AC2B, 0x4063D020, 0x00000002, 0x4062AC2C, 0x4063D020,
-	0x00000002, 0x4062AC2D, 0x4063D020, 0x00000002, 0x4062AC2E, 0x4063D020,
-	0x00000002, 0x4062AC2F, 0x4063D020, 0x00000002, 0x4062AC30, 0x4063D020,
-	0x00000002, 0x4062AC31, 0x4063D020, 0x00000002, 0x4062AC32, 0x4063D020,
-	0x00000002, 0x4062AC33, 0x4063D020, 0x00000002,
-	// Block 305, offset 0x4c40
-	0x4062AC34, 0x4063D020, 0x00000002, 0x4062AC35, 0x4063D020, 0x00000002,
-	0x4062AC36, 0x4063D020, 0x00000002, 0x4062AC37, 0x4063D020, 0x00000002,
-	0x4062AC38, 0x4063D020, 0x00000002, 0x4062AC39, 0x4063D020, 0x00000002,
-	0x4062AC3A, 0x4063D020, 0x00000002, 0x4062AC3B, 0x4063D020, 0x00000002,
-	0x4062AC3C, 0x4063D020, 0x00000002, 0x4062AC3D, 0x4063D020, 0x00000002,
-	0x4062AC3E, 0x4063D020, 0x00000002, 0x4062AC3F, 0x4063D020, 0x00000002,
-	0x4062AC40, 0x4063D020, 0x00000002, 0x4062AC41, 0x4063D020, 0x00000002,
-	0x4062AC42, 0x4063D020, 0x00000002, 0x4062AC43, 0x4063D020, 0x00000002,
-	0x4062AC44, 0x4063D020, 0x00000002, 0x4062AC45, 0x4063D020, 0x00000002,
-	0x4062AC46, 0x4063D020, 0x00000002, 0x4062AC47, 0x4063D020, 0x00000002,
-	0x4062AC48, 0x4063D020, 0x00000002, 0x4062AC49,
-	// Block 306, offset 0x4c80
-	0x4063D020, 0x00000002, 0x4062AC4A, 0x4063D020, 0x00000002, 0x4062AC4B,
-	0x4063D020, 0x00000002, 0x4062AC4C, 0x4063D020, 0x00000002, 0x4062AC4D,
-	0x4063D020, 0x00000002, 0x4062AC4E, 0x4063D020, 0x00000002, 0x4062AC4F,
-	0x4063D020, 0x00000002, 0x4062AC50, 0x4063D020, 0x00000002, 0x4062AC51,
-	0x4063D020, 0x00000002, 0x4062AC52, 0x4063D020, 0x00000002, 0x4062AC53,
-	0x4063D020, 0x00000002, 0x4062AC54, 0x4063D020, 0x00000002, 0x4062AC55,
-	0x4063D020, 0x00000002, 0x4062AC56, 0x4063D020, 0x00000002, 0x4062AC57,
-	0x4063D020, 0x00000002, 0x4062AC58, 0x4063D020, 0x00000002, 0x4062AC59,
-	0x4063D020, 0x00000002, 0x4062AC5A, 0x4063D020, 0x00000002, 0x4062AC5B,
-	0x4063D020, 0x00000002, 0x4062AC5C, 0x4063D020, 0x00000002, 0x4062AC5D,
-	0x4063D020, 0x00000002, 0x4062AC5E, 0x4063D020,
-	// Block 307, offset 0x4cc0
-	0x00000002, 0x4062AC5F, 0x4063D020, 0x00000002, 0x4062AC60, 0x4063D020,
-	0x00000002, 0x4062AC61, 0x4063D020, 0x00000002, 0x4062AC62, 0x4063D020,
-	0x00000002, 0x4062AC63, 0x4063D020, 0x00000002, 0x4062AC64, 0x4063D020,
-	0x00000002, 0x4062AC65, 0x4063D020, 0x00000002, 0x4062AC66, 0x4063D020,
-	0x00000002, 0x4062AC67, 0x4063D020, 0x00000002, 0x4062AC68, 0x4063D020,
-	0x00000002, 0x4062AC69, 0x4063D020, 0x00000002, 0x4062AC6A, 0x4063D020,
-	0x00000002, 0x4062AC6B, 0x4063D020, 0x00000002, 0x4062AC6C, 0x4063D020,
-	0x00000002, 0x4062AC6D, 0x4063D020, 0x00000002, 0x4062AC6E, 0x4063D020,
-	0x00000002, 0x4062AC6F, 0x4063D020, 0x00000002, 0x4062AC70, 0x4063D020,
-	0x00000002, 0x4062AC71, 0x4063D020, 0x00000002, 0x4062AC72, 0x4063D020,
-	0x00000002, 0x4062AC73, 0x4063D020, 0x00000002,
-	// Block 308, offset 0x4d00
-	0x4062AC74, 0x4063D020, 0x00000002, 0x4062AC75, 0x4063D020, 0x00000002,
-	0x4062AC76, 0x4063D020, 0x00000002, 0x4062AC77, 0x4063D020, 0x00000002,
-	0x4062AC78, 0x4063D020, 0x00000002, 0x4062AC79, 0x4063D020, 0x00000002,
-	0x4062AC7A, 0x4063D020, 0x00000002, 0x4062AC7B, 0x4063D020, 0x00000002,
-	0x4062AC7C, 0x4063D020, 0x00000002, 0x4062AC7D, 0x4063D020, 0x00000002,
-	0x4062AC7E, 0x4063D020, 0x00000002, 0x4062AC7F, 0x4063D020, 0x00000002,
-	0x4062AC80, 0x4063D020, 0x00000002, 0x4062AC81, 0x4063D020, 0x00000002,
-	0x4062AC82, 0x4063D020, 0x00000002, 0x4062AC83, 0x4063D020, 0x00000002,
-	0x4062AC84, 0x4063D020, 0x00000003, 0x4062AC21, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062AC21, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC22,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062AC23,
-	// Block 309, offset 0x4d40
-	0x4063D020, 0x40647220, 0x00000003, 0x4062AC24, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062AC25, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC26,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062AC21, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062AE21, 0x4063D020, 0x40646420, 0x00000002, 0x4062B021,
-	0x4063A820, 0x00000002, 0x4062B022, 0x4063A820, 0x00000002, 0x4062B023,
-	0x4063A820, 0x00000002, 0x4062B024, 0x4063A820, 0x00000002, 0x4062B025,
-	0x4063A820, 0x00000002, 0x4062B026, 0x4063A820, 0x00000002, 0x4062B027,
-	0x4063A820, 0x00000002, 0x4062B028, 0x4063A820, 0x00000002, 0x4062B029,
-	0x4063A820, 0x00000002, 0x4062B02A, 0x4063A820, 0x00000002, 0x4062B02B,
-	0x4063A820, 0x00000003, 0x4062B021, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062B021, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 310, offset 0x4d80
-	0x4062B022, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B023, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B024, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B025, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B026, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B027, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B021, 0x4063A820, 0x40647220, 0x00000003, 0x4062B022, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B021, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B022, 0x4063A820, 0x40648220, 0x00000003, 0x4062B023, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B024, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B025, 0x4063A820, 0x40648220, 0x00000003, 0x4062B026, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B027, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B021, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 311, offset 0x4dc0
-	0x4062B022, 0x4063A820, 0x40648420, 0x00000003, 0x4062B021, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B022, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B023, 0x4063A820, 0x40648C20, 0x00000002, 0x4062B021, 0x4063AA20,
-	0x00000002, 0x4062B022, 0x4063AA20, 0x00000002, 0x4062B023, 0x4063AA20,
-	0x00000002, 0x4062B024, 0x4063AA20, 0x00000002, 0x4062B025, 0x4063AA20,
-	0x00000002, 0x4062B026, 0x4063AA20, 0x00000002, 0x4062B027, 0x4063AA20,
-	0x00000002, 0x4062B028, 0x4063AA20, 0x00000002, 0x4062B029, 0x4063AA20,
-	0x00000002, 0x4062B02A, 0x4063AA20, 0x00000002, 0x4062B021, 0x4063B420,
-	0x00000003, 0x4062B021, 0x4063B420, 0x40646420, 0x00000003, 0x4062B021,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062B022, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062B023, 0x4063B420, 0x40646A20,
-	// Block 312, offset 0x4e00
-	0x00000003, 0x4062B024, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B021,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062B022, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062B023, 0x4063B420, 0x40648220, 0x00000003, 0x4062B024,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062B021, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062B022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B023,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062B024, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062B025, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B026,
-	0x4063B420, 0x40648C20, 0x00000002, 0x4062B021, 0x4063B820, 0x00000002,
-	0x4062B022, 0x4063B820, 0x00000002, 0x4062B023, 0x4063B820, 0x00000002,
-	0x4062B024, 0x4063B820, 0x00000002, 0x4062B025, 0x4063B820, 0x00000002,
-	0x4062B026, 0x4063B820, 0x00000002, 0x4062B027,
-	// Block 313, offset 0x4e40
-	0x4063B820, 0x00000002, 0x4062B028, 0x4063B820, 0x00000002, 0x4062B029,
-	0x4063B820, 0x00000002, 0x4062B02A, 0x4063B820, 0x00000002, 0x4062B02B,
-	0x4063B820, 0x00000002, 0x4062B02C, 0x4063B820, 0x00000003, 0x4062B021,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B022, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B023, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B024,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B025, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B026, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B027,
-	0x4063B820, 0x40648C20, 0x00000002, 0x4062B021, 0x4063BE20, 0x00000002,
-	0x4062B022, 0x4063BE20, 0x00000002, 0x4062B023, 0x4063BE20, 0x00000002,
-	0x4062B021, 0x4063C020, 0x00000002, 0x4062B022, 0x4063C020, 0x00000002,
-	0x4062B023, 0x4063C020, 0x00000002, 0x4062B024,
-	// Block 314, offset 0x4e80
-	0x4063C020, 0x00000002, 0x4062B025, 0x4063C020, 0x00000002, 0x4062B026,
-	0x4063C020, 0x00000002, 0x4062B027, 0x4063C020, 0x00000002, 0x4062B021,
-	0x4063C220, 0x00000002, 0x4062B022, 0x4063C220, 0x00000003, 0x4062B021,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B021, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062B022, 0x4063C220, 0x40647220, 0x00000003, 0x4062B023,
-	0x4063C220, 0x40647220, 0x00000002, 0x4062B021, 0x4063CA20, 0x00000002,
-	0x4062B022, 0x4063CA20, 0x00000002, 0x4062B023, 0x4063CA20, 0x00000002,
-	0x4062B024, 0x4063CA20, 0x00000003, 0x4062B021, 0x4063CA20, 0x40646420,
-	0x00000003, 0x4062B021, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B021,
-	0x4063D020, 0x00000002, 0x4062B022, 0x4063D020, 0x00000002, 0x4062B023,
-	0x4063D020, 0x00000002, 0x4062B024, 0x4063D020,
-	// Block 315, offset 0x4ec0
-	0x00000002, 0x4062B025, 0x4063D020, 0x00000002, 0x4062B026, 0x4063D020,
-	0x00000002, 0x4062B027, 0x4063D020, 0x00000002, 0x4062B028, 0x4063D020,
-	0x00000003, 0x4062B021, 0x4063D020, 0x40646420, 0x00000003, 0x4062B022,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062B023, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062B024, 0x4063D020, 0x40646420, 0x00000002, 0x4062B221,
-	0x4063A820, 0x00000002, 0x4062B222, 0x4063A820, 0x00000002, 0x4062B223,
-	0x4063A820, 0x00000003, 0x4062B221, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B222, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B223, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B224, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B226, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B227, 0x4063A820,
-	// Block 316, offset 0x4f00
-	0x40646A20, 0x00000003, 0x4062B228, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B229, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B22B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B22C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B22E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B22F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B230, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B231, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B232, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B233, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B234, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B235, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B236, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B237, 0x4063A820,
-	// Block 317, offset 0x4f40
-	0x40646A20, 0x00000003, 0x4062B238, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B239, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B23B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062B23C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062B221, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062B222, 0x4063A820, 0x40647220, 0x00000003, 0x4062B223, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B224, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40647220, 0x00000003, 0x4062B226, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B227, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062B228, 0x4063A820, 0x40647220, 0x00000003, 0x4062B229, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062B22A, 0x4063A820,
-	// Block 318, offset 0x4f80
-	0x40647220, 0x00000003, 0x4062B221, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B222, 0x4063A820, 0x40648220, 0x00000003, 0x4062B223, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B224, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40648220, 0x00000003, 0x4062B226, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B227, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B228, 0x4063A820, 0x40648220, 0x00000003, 0x4062B229, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B22A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B22B, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B22D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B22E, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22F, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B230, 0x4063A820,
-	// Block 319, offset 0x4fc0
-	0x40648220, 0x00000003, 0x4062B231, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B232, 0x4063A820, 0x40648220, 0x00000003, 0x4062B233, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B234, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B235, 0x4063A820, 0x40648220, 0x00000003, 0x4062B236, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B237, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B238, 0x4063A820, 0x40648220, 0x00000003, 0x4062B239, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B23A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B23B, 0x4063A820, 0x40648220, 0x00000003, 0x4062B23C, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062B23D, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062B221, 0x4063A820, 0x40648420, 0x00000003, 0x4062B222, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062B223, 0x4063A820,
-	// Block 320, offset 0x5000
-	0x40648420, 0x00000003, 0x4062B224, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062B225, 0x4063A820, 0x40648420, 0x00000003, 0x4062B221, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B222, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B223, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B224, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B225, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B226, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B227, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B228, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B229, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22A, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B22B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B22C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B22E, 0x4063A820,
-	// Block 321, offset 0x5040
-	0x40648C20, 0x00000003, 0x4062B22F, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B230, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B231, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B232, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B233, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B234, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B235, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B236, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B237, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B238, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B239, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B23A, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062B23B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062B23C, 0x4063A820, 0x40648C20, 0x00000002, 0x4062B221, 0x4063AA20,
-	0x00000002, 0x4062B222, 0x4063AA20, 0x00000002,
-	// Block 322, offset 0x5080
-	0x4062B223, 0x4063AA20, 0x00000002, 0x4062B224, 0x4063AA20, 0x00000002,
-	0x4062B225, 0x4063AA20, 0x00000002, 0x4062B226, 0x4063AA20, 0x00000002,
-	0x4062B227, 0x4063AA20, 0x00000002, 0x4062B228, 0x4063AA20, 0x00000002,
-	0x4062B229, 0x4063AA20, 0x00000002, 0x4062B22A, 0x4063AA20, 0x00000002,
-	0x4062B22B, 0x4063AA20, 0x00000002, 0x4062B22C, 0x4063AA20, 0x00000002,
-	0x4062B22D, 0x4063AA20, 0x00000002, 0x4062B22E, 0x4063AA20, 0x00000002,
-	0x4062B22F, 0x4063AA20, 0x00000002, 0x4062B230, 0x4063AA20, 0x00000002,
-	0x4062B231, 0x4063AA20, 0x00000002, 0x4062B232, 0x4063AA20, 0x00000002,
-	0x4062B233, 0x4063AA20, 0x00000002, 0x4062B234, 0x4063AA20, 0x00000002,
-	0x4062B235, 0x4063AA20, 0x00000002, 0x4062B236, 0x4063AA20, 0x00000003,
-	0x4062B221, 0x4063AA20, 0x40646420, 0x00000003,
-	// Block 323, offset 0x50c0
-	0x4062B221, 0x4063B020, 0x40646420, 0x00000003, 0x4062B222, 0x4063B020,
-	0x40646420, 0x00000002, 0x4062B221, 0x4063B820, 0x00000002, 0x4062B222,
-	0x4063B820, 0x00000002, 0x4062B223, 0x4063B820, 0x00000002, 0x4062B224,
-	0x4063B820, 0x00000002, 0x4062B225, 0x4063B820, 0x00000002, 0x4062B226,
-	0x4063B820, 0x00000002, 0x4062B227, 0x4063B820, 0x00000002, 0x4062B228,
-	0x4063B820, 0x00000002, 0x4062B229, 0x4063B820, 0x00000002, 0x4062B22A,
-	0x4063B820, 0x00000002, 0x4062B22B, 0x4063B820, 0x00000002, 0x4062B22C,
-	0x4063B820, 0x00000002, 0x4062B22D, 0x4063B820, 0x00000002, 0x4062B22E,
-	0x4063B820, 0x00000002, 0x4062B22F, 0x4063B820, 0x00000002, 0x4062B230,
-	0x4063B820, 0x00000002, 0x4062B231, 0x4063B820, 0x00000002, 0x4062B232,
-	0x4063B820, 0x00000002, 0x4062B233, 0x4063B820,
-	// Block 324, offset 0x5100
-	0x00000002, 0x4062B234, 0x4063B820, 0x00000002, 0x4062B235, 0x4063B820,
-	0x00000002, 0x4062B236, 0x4063B820, 0x00000002, 0x4062B237, 0x4063B820,
-	0x00000002, 0x4062B238, 0x4063B820, 0x00000002, 0x4062B239, 0x4063B820,
-	0x00000002, 0x4062B23A, 0x4063B820, 0x00000002, 0x4062B23B, 0x4063B820,
-	0x00000002, 0x4062B23C, 0x4063B820, 0x00000002, 0x4062B23D, 0x4063B820,
-	0x00000002, 0x4062B23E, 0x4063B820, 0x00000002, 0x4062B23F, 0x4063B820,
-	0x00000002, 0x4062B240, 0x4063B820, 0x00000002, 0x4062B241, 0x4063B820,
-	0x00000002, 0x4062B242, 0x4063B820, 0x00000002, 0x4062B243, 0x4063B820,
-	0x00000002, 0x4062B244, 0x4063B820, 0x00000002, 0x4062B245, 0x4063B820,
-	0x00000002, 0x4062B246, 0x4063B820, 0x00000002, 0x4062B247, 0x4063B820,
-	0x00000002, 0x4062B248, 0x4063B820, 0x00000002,
-	// Block 325, offset 0x5140
-	0x4062B249, 0x4063B820, 0x00000002, 0x4062B24A, 0x4063B820, 0x00000002,
-	0x4062B24B, 0x4063B820, 0x00000002, 0x4062B24C, 0x4063B820, 0x00000002,
-	0x4062B24D, 0x4063B820, 0x00000002, 0x4062B24E, 0x4063B820, 0x00000002,
-	0x4062B24F, 0x4063B820, 0x00000002, 0x4062B250, 0x4063B820, 0x00000002,
-	0x4062B251, 0x4063B820, 0x00000002, 0x4062B252, 0x4063B820, 0x00000002,
-	0x4062B253, 0x4063B820, 0x00000002, 0x4062B254, 0x4063B820, 0x00000002,
-	0x4062B255, 0x4063B820, 0x00000002, 0x4062B256, 0x4063B820, 0x00000002,
-	0x4062B257, 0x4063B820, 0x00000002, 0x4062B258, 0x4063B820, 0x00000002,
-	0x4062B259, 0x4063B820, 0x00000002, 0x4062B25A, 0x4063B820, 0x00000002,
-	0x4062B25B, 0x4063B820, 0x00000003, 0x4062B221, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B222, 0x4063B820, 0x40646420,
-	// Block 326, offset 0x5180
-	0x00000003, 0x4062B223, 0x4063B820, 0x40646420, 0x00000003, 0x4062B224,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062B225, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B226, 0x4063B820, 0x40646420, 0x00000003, 0x4062B227,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062B228, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B229, 0x4063B820, 0x40646420, 0x00000003, 0x4062B22A,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062B22B, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062B22C, 0x4063B820, 0x40646420, 0x00000003, 0x4062B221,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B222, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B223, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B224,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B225, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B226, 0x4063B820, 0x40646A20,
-	// Block 327, offset 0x51c0
-	0x00000003, 0x4062B227, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B228,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B229, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B22A, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B22B,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062B22C, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062B22D, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B221,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062B222, 0x4063B820, 0x40647220,
-	0x00000003, 0x4062B223, 0x4063B820, 0x40647220, 0x00000003, 0x4062B224,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062B221, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B222, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B223,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B224, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B225, 0x4063B820, 0x40648C20,
-	// Block 328, offset 0x5200
-	0x00000003, 0x4062B226, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B227,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B228, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B229, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22A,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B22B, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B22C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22D,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B22E, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B22F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B230,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B231, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B232, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B233,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B234, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B235, 0x4063B820, 0x40648C20,
-	// Block 329, offset 0x5240
-	0x00000003, 0x4062B236, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B237,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B238, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B239, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23A,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B23B, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B23C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23D,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B23E, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062B23F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B240,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062B241, 0x4063B820, 0x40648C20,
-	0x00000002, 0x4062B221, 0x4063C220, 0x00000002, 0x4062B222, 0x4063C220,
-	0x00000002, 0x4062B223, 0x4063C220, 0x00000002, 0x4062B224, 0x4063C220,
-	0x00000002, 0x4062B225, 0x4063C220, 0x00000002,
-	// Block 330, offset 0x5280
-	0x4062B226, 0x4063C220, 0x00000002, 0x4062B227, 0x4063C220, 0x00000002,
-	0x4062B228, 0x4063C220, 0x00000002, 0x4062B229, 0x4063C220, 0x00000002,
-	0x4062B22A, 0x4063C220, 0x00000002, 0x4062B22B, 0x4063C220, 0x00000002,
-	0x4062B22C, 0x4063C220, 0x00000002, 0x4062B22D, 0x4063C220, 0x00000002,
-	0x4062B22E, 0x4063C220, 0x00000002, 0x4062B22F, 0x4063C220, 0x00000002,
-	0x4062B230, 0x4063C220, 0x00000002, 0x4062B231, 0x4063C220, 0x00000003,
-	0x4062B221, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B222, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062B223, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062B224, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B225, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062B226, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062B227, 0x4063C220, 0x40646A20, 0x00000003,
-	// Block 331, offset 0x52c0
-	0x4062B228, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B221, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062B221, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062B221, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B222, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B223, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B224, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B225, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B226, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B227, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B228, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B229, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B22A, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22B, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B22C, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B22D, 0x4063CC20, 0x40648C20, 0x00000003,
-	// Block 332, offset 0x5300
-	0x4062B22E, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22F, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B230, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B231, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B621, 0x4063A820,
-	0x00000002, 0x4062B622, 0x4063A820, 0x00000002, 0x4062B623, 0x4063A820,
-	0x00000002, 0x4062B624, 0x4063A820, 0x00000002, 0x4062B625, 0x4063A820,
-	0x00000002, 0x4062B626, 0x4063A820, 0x00000002, 0x4062B627, 0x4063A820,
-	0x00000002, 0x4062B628, 0x4063A820, 0x00000002, 0x4062B629, 0x4063A820,
-	0x00000002, 0x4062B62A, 0x4063A820, 0x00000002, 0x4062B62B, 0x4063A820,
-	0x00000002, 0x4062B62C, 0x4063A820, 0x00000002, 0x4062B62D, 0x4063A820,
-	0x00000002, 0x4062B62E, 0x4063A820, 0x00000002, 0x4062B62F, 0x4063A820,
-	0x00000002, 0x4062B630, 0x4063A820, 0x00000002,
-	// Block 333, offset 0x5340
-	0x4062B631, 0x4063A820, 0x00000003, 0x4062B621, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40646420, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B624, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B625, 0x4063A820, 0x40646420, 0x00000003, 0x4062B626,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B627, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B628, 0x4063A820, 0x40646420, 0x00000003, 0x4062B629,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B621, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B624, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B625, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B626,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B627,
-	// Block 334, offset 0x5380
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B628, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B629, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62A,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B62C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62D,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B62E, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B62F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B621,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B622, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B623, 0x4063A820, 0x40647220, 0x00000003, 0x4062B624,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B621, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40648220, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B624,
-	// Block 335, offset 0x53c0
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B625, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B626, 0x4063A820, 0x40648220, 0x00000003, 0x4062B627,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B628, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B629, 0x4063A820, 0x40648220, 0x00000003, 0x4062B62A,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062B62C, 0x4063A820, 0x40648220, 0x00000003, 0x4062B621,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062B622, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062B623, 0x4063A820, 0x40648420, 0x00000003, 0x4062B624,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062B621, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B622, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B623,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B624,
-	// Block 336, offset 0x5400
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B625, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B626, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B627,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B628, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B629, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62A,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B62C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62D,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B62E, 0x4063A820, 0x40648C20,
-	0x00000002, 0x4062B621, 0x4063AA20, 0x00000002, 0x4062B622, 0x4063AA20,
-	0x00000002, 0x4062B623, 0x4063AA20, 0x00000002, 0x4062B624, 0x4063AA20,
-	0x00000002, 0x4062B625, 0x4063AA20, 0x00000002, 0x4062B626, 0x4063AA20,
-	0x00000003, 0x4062B621, 0x4063AA20, 0x40648C20,
-	// Block 337, offset 0x5440
-	0x00000003, 0x4062B621, 0x4063AC20, 0x40646420, 0x00000003, 0x4062B622,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062B623, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062B621, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B622,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B623, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B624, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B625,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B626, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B627, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B628,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B629, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B62A, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62B,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62C, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B62D, 0x4063AC20, 0x40648C20,
-	// Block 338, offset 0x5480
-	0x00000003, 0x4062B62E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62F,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B630, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062B631, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B632,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062B633, 0x4063AC20, 0x40648C20,
-	0x00000002, 0x4062B621, 0x4063B420, 0x00000002, 0x4062B622, 0x4063B420,
-	0x00000002, 0x4062B623, 0x4063B420, 0x00000002, 0x4062B624, 0x4063B420,
-	0x00000002, 0x4062B625, 0x4063B420, 0x00000002, 0x4062B626, 0x4063B420,
-	0x00000002, 0x4062B627, 0x4063B420, 0x00000002, 0x4062B628, 0x4063B420,
-	0x00000002, 0x4062B629, 0x4063B420, 0x00000002, 0x4062B62A, 0x4063B420,
-	0x00000002, 0x4062B62B, 0x4063B420, 0x00000002, 0x4062B62C, 0x4063B420,
-	0x00000002, 0x4062B62D, 0x4063B420, 0x00000002,
-	// Block 339, offset 0x54c0
-	0x4062B62E, 0x4063B420, 0x00000002, 0x4062B62F, 0x4063B420, 0x00000002,
-	0x4062B630, 0x4063B420, 0x00000002, 0x4062B631, 0x4063B420, 0x00000002,
-	0x4062B632, 0x4063B420, 0x00000002, 0x4062B633, 0x4063B420, 0x00000002,
-	0x4062B634, 0x4063B420, 0x00000002, 0x4062B635, 0x4063B420, 0x00000002,
-	0x4062B636, 0x4063B420, 0x00000002, 0x4062B637, 0x4063B420, 0x00000002,
-	0x4062B638, 0x4063B420, 0x00000002, 0x4062B639, 0x4063B420, 0x00000002,
-	0x4062B63A, 0x4063B420, 0x00000002, 0x4062B63B, 0x4063B420, 0x00000002,
-	0x4062B63C, 0x4063B420, 0x00000002, 0x4062B63D, 0x4063B420, 0x00000003,
-	0x4062B621, 0x4063B420, 0x40646420, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B623, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40646420, 0x00000003,
-	// Block 340, offset 0x5500
-	0x4062B625, 0x4063B420, 0x40646420, 0x00000003, 0x4062B626, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B627, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B628, 0x4063B420, 0x40646420, 0x00000003, 0x4062B629, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B62A, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B62B, 0x4063B420, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B62D, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B621, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B623, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B625, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B626, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B627, 0x4063B420, 0x40646A20, 0x00000003,
-	// Block 341, offset 0x5540
-	0x4062B628, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B629, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B62A, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B62B, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62C, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B62D, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B62E, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62F, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B630, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B631, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B632, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B633, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B621, 0x4063B420, 0x40647220, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B623, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40647220, 0x00000003,
-	// Block 342, offset 0x5580
-	0x4062B625, 0x4063B420, 0x40647220, 0x00000003, 0x4062B626, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B627, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062B628, 0x4063B420, 0x40647220, 0x00000003, 0x4062B629, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B621, 0x4063B420, 0x40648220, 0x00000003,
-	0x4062B622, 0x4063B420, 0x40648220, 0x00000003, 0x4062B623, 0x4063B420,
-	0x40648220, 0x00000003, 0x4062B624, 0x4063B420, 0x40648220, 0x00000003,
-	0x4062B625, 0x4063B420, 0x40648220, 0x00000003, 0x4062B626, 0x4063B420,
-	0x40648220, 0x00000003, 0x4062B627, 0x4063B420, 0x40648220, 0x00000003,
-	0x4062B628, 0x4063B420, 0x40648220, 0x00000003, 0x4062B621, 0x4063B420,
-	0x40648420, 0x00000003, 0x4062B622, 0x4063B420, 0x40648420, 0x00000003,
-	0x4062B623, 0x4063B420, 0x40648420, 0x00000003,
-	// Block 343, offset 0x55c0
-	0x4062B621, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B622, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B623, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B624, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B625, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B626, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B627, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B628, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B629, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B62A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62B, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B62C, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B62D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62E, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B62F, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B630, 0x4063B420, 0x40648C20, 0x00000003,
-	// Block 344, offset 0x5600
-	0x4062B631, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B632, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B633, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B634, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B635, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B636, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B637, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B638, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B639, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B63A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63B, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B63C, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B63D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63E, 0x4063B420,
-	0x40648C20, 0x00000002, 0x4062B621, 0x4063B620, 0x00000002, 0x4062B622,
-	0x4063B620, 0x00000002, 0x4062B623, 0x4063B620,
-	// Block 345, offset 0x5640
-	0x00000002, 0x4062B624, 0x4063B620, 0x00000002, 0x4062B625, 0x4063B620,
-	0x00000002, 0x4062B626, 0x4063B620, 0x00000002, 0x4062B627, 0x4063B620,
-	0x00000002, 0x4062B621, 0x4063B820, 0x00000002, 0x4062B622, 0x4063B820,
-	0x00000002, 0x4062B623, 0x4063B820, 0x00000002, 0x4062B624, 0x4063B820,
-	0x00000002, 0x4062B625, 0x4063B820, 0x00000002, 0x4062B626, 0x4063B820,
-	0x00000002, 0x4062B627, 0x4063B820, 0x00000002, 0x4062B628, 0x4063B820,
-	0x00000002, 0x4062B629, 0x4063B820, 0x00000002, 0x4062B62A, 0x4063B820,
-	0x00000002, 0x4062B62B, 0x4063B820, 0x00000002, 0x4062B62C, 0x4063B820,
-	0x00000002, 0x4062B62D, 0x4063B820, 0x00000002, 0x4062B62E, 0x4063B820,
-	0x00000002, 0x4062B62F, 0x4063B820, 0x00000002, 0x4062B630, 0x4063B820,
-	0x00000002, 0x4062B631, 0x4063B820, 0x00000002,
-	// Block 346, offset 0x5680
-	0x4062B632, 0x4063B820, 0x00000002, 0x4062B633, 0x4063B820, 0x00000002,
-	0x4062B634, 0x4063B820, 0x00000002, 0x4062B635, 0x4063B820, 0x00000002,
-	0x4062B636, 0x4063B820, 0x00000002, 0x4062B637, 0x4063B820, 0x00000002,
-	0x4062B638, 0x4063B820, 0x00000002, 0x4062B639, 0x4063B820, 0x00000002,
-	0x4062B63A, 0x4063B820, 0x00000002, 0x4062B63B, 0x4063B820, 0x00000002,
-	0x4062B63C, 0x4063B820, 0x00000002, 0x4062B63D, 0x4063B820, 0x00000002,
-	0x4062B63E, 0x4063B820, 0x00000002, 0x4062B63F, 0x4063B820, 0x00000003,
-	0x4062B621, 0x4063B820, 0x40646420, 0x00000003, 0x4062B622, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B623, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B624, 0x4063B820, 0x40646420, 0x00000003, 0x4062B625, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B626, 0x4063B820,
-	// Block 347, offset 0x56c0
-	0x40646420, 0x00000003, 0x4062B627, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B628, 0x4063B820, 0x40646420, 0x00000003, 0x4062B629, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B62A, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B62B, 0x4063B820, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B62D, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B62E, 0x4063B820, 0x40646420, 0x00000003, 0x4062B621, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062B621, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B622, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B623, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B624, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B625, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B626, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B627, 0x4063B820,
-	// Block 348, offset 0x5700
-	0x40648C20, 0x00000003, 0x4062B628, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B629, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B62B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B62C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B62E, 0x4063B820, 0x40648C20, 0x00000002,
-	0x4062B621, 0x4063BE20, 0x00000002, 0x4062B622, 0x4063BE20, 0x00000002,
-	0x4062B623, 0x4063BE20, 0x00000002, 0x4062B624, 0x4063BE20, 0x00000002,
-	0x4062B625, 0x4063BE20, 0x00000002, 0x4062B626, 0x4063BE20, 0x00000002,
-	0x4062B627, 0x4063BE20, 0x00000002, 0x4062B628, 0x4063BE20, 0x00000002,
-	0x4062B629, 0x4063BE20, 0x00000002, 0x4062B62A, 0x4063BE20, 0x00000002,
-	0x4062B62B, 0x4063BE20, 0x00000002, 0x4062B62C,
-	// Block 349, offset 0x5740
-	0x4063BE20, 0x00000002, 0x4062B62D, 0x4063BE20, 0x00000002, 0x4062B62E,
-	0x4063BE20, 0x00000002, 0x4062B62F, 0x4063BE20, 0x00000002, 0x4062B630,
-	0x4063BE20, 0x00000002, 0x4062B631, 0x4063BE20, 0x00000002, 0x4062B632,
-	0x4063BE20, 0x00000002, 0x4062B633, 0x4063BE20, 0x00000002, 0x4062B621,
-	0x4063C020, 0x00000002, 0x4062B622, 0x4063C020, 0x00000002, 0x4062B623,
-	0x4063C020, 0x00000002, 0x4062B624, 0x4063C020, 0x00000002, 0x4062B625,
-	0x4063C020, 0x00000002, 0x4062B626, 0x4063C020, 0x00000002, 0x4062B627,
-	0x4063C020, 0x00000002, 0x4062B628, 0x4063C020, 0x00000002, 0x4062B629,
-	0x4063C020, 0x00000002, 0x4062B62A, 0x4063C020, 0x00000002, 0x4062B62B,
-	0x4063C020, 0x00000002, 0x4062B62C, 0x4063C020, 0x00000002, 0x4062B62D,
-	0x4063C020, 0x00000002, 0x4062B62E, 0x4063C020,
-	// Block 350, offset 0x5780
-	0x00000002, 0x4062B62F, 0x4063C020, 0x00000002, 0x4062B630, 0x4063C020,
-	0x00000002, 0x4062B631, 0x4063C020, 0x00000002, 0x4062B632, 0x4063C020,
-	0x00000002, 0x4062B633, 0x4063C020, 0x00000002, 0x4062B634, 0x4063C020,
-	0x00000002, 0x4062B635, 0x4063C020, 0x00000002, 0x4062B636, 0x4063C020,
-	0x00000002, 0x4062B637, 0x4063C020, 0x00000002, 0x4062B638, 0x4063C020,
-	0x00000003, 0x4062B621, 0x4063C020, 0x40648C20, 0x00000003, 0x4062B622,
-	0x4063C020, 0x40648C20, 0x00000002, 0x4062B621, 0x4063C220, 0x00000002,
-	0x4062B622, 0x4063C220, 0x00000002, 0x4062B623, 0x4063C220, 0x00000002,
-	0x4062B624, 0x4063C220, 0x00000002, 0x4062B625, 0x4063C220, 0x00000002,
-	0x4062B626, 0x4063C220, 0x00000002, 0x4062B627, 0x4063C220, 0x00000002,
-	0x4062B628, 0x4063C220, 0x00000002, 0x4062B629,
-	// Block 351, offset 0x57c0
-	0x4063C220, 0x00000002, 0x4062B62A, 0x4063C220, 0x00000002, 0x4062B62B,
-	0x4063C220, 0x00000002, 0x4062B62C, 0x4063C220, 0x00000002, 0x4062B62D,
-	0x4063C220, 0x00000002, 0x4062B62E, 0x4063C220, 0x00000002, 0x4062B62F,
-	0x4063C220, 0x00000002, 0x4062B630, 0x4063C220, 0x00000002, 0x4062B631,
-	0x4063C220, 0x00000002, 0x4062B632, 0x4063C220, 0x00000002, 0x4062B633,
-	0x4063C220, 0x00000002, 0x4062B634, 0x4063C220, 0x00000002, 0x4062B621,
-	0x4063CA20, 0x00000002, 0x4062B622, 0x4063CA20, 0x00000002, 0x4062B623,
-	0x4063CA20, 0x00000002, 0x4062B624, 0x4063CA20, 0x00000002, 0x4062B625,
-	0x4063CA20, 0x00000002, 0x4062B626, 0x4063CA20, 0x00000002, 0x4062B627,
-	0x4063CA20, 0x00000002, 0x4062B628, 0x4063CA20, 0x00000002, 0x4062B629,
-	0x4063CA20, 0x00000002, 0x4062B62A, 0x4063CA20,
-	// Block 352, offset 0x5800
-	0x00000002, 0x4062B62B, 0x4063CA20, 0x00000002, 0x4062B62C, 0x4063CA20,
-	0x00000002, 0x4062B62D, 0x4063CA20, 0x00000002, 0x4062B62E, 0x4063CA20,
-	0x00000002, 0x4062B62F, 0x4063CA20, 0x00000002, 0x4062B630, 0x4063CA20,
-	0x00000002, 0x4062B631, 0x4063CA20, 0x00000002, 0x4062B632, 0x4063CA20,
-	0x00000002, 0x4062B633, 0x4063CA20, 0x00000003, 0x4062B621, 0x4063CA20,
-	0x40646420, 0x00000003, 0x4062B622, 0x4063CA20, 0x40646420, 0x00000003,
-	0x4062B623, 0x4063CA20, 0x40646420, 0x00000003, 0x4062B624, 0x4063CA20,
-	0x40646420, 0x00000003, 0x4062B621, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062B622, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B623, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062B624, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062B625, 0x4063CA20, 0x40646A20, 0x00000003,
-	// Block 353, offset 0x5840
-	0x4062B626, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B627, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062B621, 0x4063CA20, 0x40647220, 0x00000003,
-	0x4062B622, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B623, 0x4063CA20,
-	0x40647220, 0x00000003, 0x4062B624, 0x4063CA20, 0x40647220, 0x00000003,
-	0x4062B625, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B621, 0x4063CA20,
-	0x40648C20, 0x00000003, 0x4062B622, 0x4063CA20, 0x40648C20, 0x00000003,
-	0x4062B623, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062B621, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062B622, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062B623, 0x4063CC20, 0x40646420, 0x00000003, 0x4062B621, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062B622, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062B623, 0x4063CC20, 0x40648220, 0x00000003,
-	// Block 354, offset 0x5880
-	0x4062B624, 0x4063CC20, 0x40648220, 0x00000003, 0x4062B621, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B622, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B623, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B624, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B625, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062B626, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B627, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062B628, 0x4063CC20, 0x40648C20, 0x00000002,
-	0x4062B621, 0x4063D020, 0x00000002, 0x4062B622, 0x4063D020, 0x00000002,
-	0x4062B623, 0x4063D020, 0x00000002, 0x4062B624, 0x4063D020, 0x00000002,
-	0x4062B625, 0x4063D020, 0x00000002, 0x4062B626, 0x4063D020, 0x00000002,
-	0x4062B627, 0x4063D020, 0x00000002, 0x4062B628, 0x4063D020, 0x00000002,
-	0x4062B629, 0x4063D020, 0x00000002, 0x4062B62A,
-	// Block 355, offset 0x58c0
-	0x4063D020, 0x00000002, 0x4062B62B, 0x4063D020, 0x00000002, 0x4062B62C,
-	0x4063D020, 0x00000002, 0x4062B62D, 0x4063D020, 0x00000002, 0x4062B62E,
-	0x4063D020, 0x00000002, 0x4062B62F, 0x4063D020, 0x00000002, 0x4062B630,
-	0x4063D020, 0x00000002, 0x4062B631, 0x4063D020, 0x00000002, 0x4062B632,
-	0x4063D020, 0x00000002, 0x4062B633, 0x4063D020, 0x00000002, 0x4062B634,
-	0x4063D020, 0x00000002, 0x4062B635, 0x4063D020, 0x00000002, 0x4062B636,
-	0x4063D020, 0x00000002, 0x4062B637, 0x4063D020, 0x00000002, 0x4062B638,
-	0x4063D020, 0x00000002, 0x4062B639, 0x4063D020, 0x00000002, 0x4062B63A,
-	0x4063D020, 0x00000002, 0x4062B63B, 0x4063D020, 0x00000002, 0x4062B63C,
-	0x4063D020, 0x00000002, 0x4062B63D, 0x4063D020, 0x00000002, 0x4062B63E,
-	0x4063D020, 0x00000002, 0x4062B63F, 0x4063D020,
-	// Block 356, offset 0x5900
-	0x00000002, 0x4062B640, 0x4063D020, 0x00000002, 0x4062B641, 0x4063D020,
-	0x00000002, 0x4062B642, 0x4063D020, 0x00000002, 0x4062B643, 0x4063D020,
-	0x00000002, 0x4062B644, 0x4063D020, 0x00000002, 0x4062B645, 0x4063D020,
-	0x00000002, 0x4062B646, 0x4063D020, 0x00000002, 0x4062B647, 0x4063D020,
-	0x00000003, 0x4062B621, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B622,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B623, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B624, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B625,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B626, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B627, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B628,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B629, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B62A, 0x4063D020, 0x40646A20,
-	// Block 357, offset 0x5940
-	0x00000003, 0x4062B62B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62C,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B62D, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B62E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62F,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B630, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B631, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B632,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B633, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062B634, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B635,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062B621, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062B622, 0x4063D020, 0x40648220, 0x00000003, 0x4062B623,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062B624, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062B625, 0x4063D020, 0x40648220,
-	// Block 358, offset 0x5980
-	0x00000003, 0x4062B626, 0x4063D020, 0x40648220, 0x00000003, 0x4062B621,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062B622, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062B623, 0x4063D020, 0x40648420, 0x00000003, 0x4062B624,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062B625, 0x4063D020, 0x40648420,
-	0x00000002, 0x4062B821, 0x4063A820, 0x00000002, 0x4062B822, 0x4063A820,
-	0x00000002, 0x4062B823, 0x4063A820, 0x00000002, 0x4062B824, 0x4063A820,
-	0x00000002, 0x4062B825, 0x4063A820, 0x00000002, 0x4062B826, 0x4063A820,
-	0x00000002, 0x4062B827, 0x4063A820, 0x00000002, 0x4062B828, 0x4063A820,
-	0x00000002, 0x4062B829, 0x4063A820, 0x00000002, 0x4062B82A, 0x4063A820,
-	0x00000002, 0x4062B82B, 0x4063A820, 0x00000002, 0x4062B82C, 0x4063A820,
-	0x00000002, 0x4062B82D, 0x4063A820, 0x00000002,
-	// Block 359, offset 0x59c0
-	0x4062B82E, 0x4063A820, 0x00000003, 0x4062B821, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B822, 0x4063A820, 0x40646420, 0x00000003, 0x4062B823,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B824, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B825, 0x4063A820, 0x40646420, 0x00000003, 0x4062B826,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062B827, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062B828, 0x4063A820, 0x40646420, 0x00000003, 0x4062B821,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B822, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B823, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B824,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B825, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B826, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B827,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B828,
-	// Block 360, offset 0x5a00
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B829, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B82A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82B,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B82C, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B82D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82E,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B830, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B831,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B832, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B833, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B834,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B835, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B836, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B837,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B838,
-	// Block 361, offset 0x5a40
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B839, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B83A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B83B,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062B83C, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062B821, 0x4063A820, 0x40647220, 0x00000003, 0x4062B822,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B823, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B824, 0x4063A820, 0x40647220, 0x00000003, 0x4062B825,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B826, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B827, 0x4063A820, 0x40647220, 0x00000003, 0x4062B828,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062B829, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062B821, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B822,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B823,
-	// Block 362, offset 0x5a80
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B824, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B825, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B826,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B827, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B828, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B829,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B82B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B82C,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B82D, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B82E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B82F,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062B830, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062B831, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B832,
-	0x4063A820, 0x40648C20, 0x00000002, 0x4062B821,
-	// Block 363, offset 0x5ac0
-	0x4063AA20, 0x00000002, 0x4062B822, 0x4063AA20, 0x00000002, 0x4062B823,
-	0x4063AA20, 0x00000002, 0x4062B824, 0x4063AA20, 0x00000002, 0x4062B825,
-	0x4063AA20, 0x00000002, 0x4062B826, 0x4063AA20, 0x00000002, 0x4062B827,
-	0x4063AA20, 0x00000002, 0x4062B828, 0x4063AA20, 0x00000002, 0x4062B829,
-	0x4063AA20, 0x00000002, 0x4062B82A, 0x4063AA20, 0x00000002, 0x4062B82B,
-	0x4063AA20, 0x00000002, 0x4062B82C, 0x4063AA20, 0x00000002, 0x4062B82D,
-	0x4063AA20, 0x00000002, 0x4062B82E, 0x4063AA20, 0x00000002, 0x4062B82F,
-	0x4063AA20, 0x00000002, 0x4062B830, 0x4063AA20, 0x00000002, 0x4062B831,
-	0x4063AA20, 0x00000002, 0x4062B832, 0x4063AA20, 0x00000002, 0x4062B833,
-	0x4063AA20, 0x00000002, 0x4062B834, 0x4063AA20, 0x00000002, 0x4062B835,
-	0x4063AA20, 0x00000002, 0x4062B836, 0x4063AA20,
-	// Block 364, offset 0x5b00
-	0x00000002, 0x4062B837, 0x4063AA20, 0x00000003, 0x4062B821, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062B822, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062B823, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B824, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062B825, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062B826, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B827, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062B828, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062B821, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B822, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062B823, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062B824, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B825, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062B826, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062B827, 0x4063AA20, 0x40648C20, 0x00000003,
-	// Block 365, offset 0x5b40
-	0x4062B828, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B829, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062B82A, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062B821, 0x4063B420, 0x40646420, 0x00000003, 0x4062B822, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062B823, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062B824, 0x4063B420, 0x40646420, 0x00000003, 0x4062B821, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B822, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B823, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B824, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B825, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B826, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B827, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B828, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B829, 0x4063B420, 0x40646A20, 0x00000003,
-	// Block 366, offset 0x5b80
-	0x4062B82A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B82C, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B82D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062B82F, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062B830, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B821, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B822, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062B823, 0x4063B420, 0x40647220, 0x00000003, 0x4062B824, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062B821, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B822, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B823, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B824, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B825, 0x4063B420, 0x40648C20, 0x00000003,
-	// Block 367, offset 0x5bc0
-	0x4062B826, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B827, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B828, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B829, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B82B, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B82C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82D, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062B82E, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062B82F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B830, 0x4063B420,
-	0x40648C20, 0x00000002, 0x4062B821, 0x4063B620, 0x00000002, 0x4062B821,
-	0x4063B820, 0x00000002, 0x4062B822, 0x4063B820, 0x00000002, 0x4062B823,
-	0x4063B820, 0x00000002, 0x4062B824, 0x4063B820, 0x00000002, 0x4062B825,
-	0x4063B820, 0x00000002, 0x4062B826, 0x4063B820,
-	// Block 368, offset 0x5c00
-	0x00000002, 0x4062B827, 0x4063B820, 0x00000002, 0x4062B828, 0x4063B820,
-	0x00000002, 0x4062B829, 0x4063B820, 0x00000002, 0x4062B82A, 0x4063B820,
-	0x00000002, 0x4062B82B, 0x4063B820, 0x00000002, 0x4062B82C, 0x4063B820,
-	0x00000002, 0x4062B82D, 0x4063B820, 0x00000002, 0x4062B82E, 0x4063B820,
-	0x00000002, 0x4062B82F, 0x4063B820, 0x00000002, 0x4062B830, 0x4063B820,
-	0x00000002, 0x4062B831, 0x4063B820, 0x00000002, 0x4062B832, 0x4063B820,
-	0x00000002, 0x4062B833, 0x4063B820, 0x00000002, 0x4062B834, 0x4063B820,
-	0x00000002, 0x4062B835, 0x4063B820, 0x00000002, 0x4062B836, 0x4063B820,
-	0x00000002, 0x4062B837, 0x4063B820, 0x00000002, 0x4062B838, 0x4063B820,
-	0x00000002, 0x4062B839, 0x4063B820, 0x00000002, 0x4062B83A, 0x4063B820,
-	0x00000002, 0x4062B83B, 0x4063B820, 0x00000002,
-	// Block 369, offset 0x5c40
-	0x4062B83C, 0x4063B820, 0x00000002, 0x4062B83D, 0x4063B820, 0x00000002,
-	0x4062B83E, 0x4063B820, 0x00000002, 0x4062B83F, 0x4063B820, 0x00000002,
-	0x4062B840, 0x4063B820, 0x00000002, 0x4062B841, 0x4063B820, 0x00000002,
-	0x4062B842, 0x4063B820, 0x00000002, 0x4062B843, 0x4063B820, 0x00000002,
-	0x4062B844, 0x4063B820, 0x00000002, 0x4062B845, 0x4063B820, 0x00000002,
-	0x4062B846, 0x4063B820, 0x00000002, 0x4062B847, 0x4063B820, 0x00000003,
-	0x4062B821, 0x4063B820, 0x40646420, 0x00000003, 0x4062B822, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B823, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B824, 0x4063B820, 0x40646420, 0x00000003, 0x4062B825, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B826, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062B827, 0x4063B820, 0x40646420, 0x00000003,
-	// Block 370, offset 0x5c80
-	0x4062B828, 0x4063B820, 0x40646420, 0x00000003, 0x4062B829, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062B821, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062B822, 0x4063B820, 0x40647220, 0x00000003, 0x4062B821, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B822, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B823, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B824, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B825, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B826, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B827, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B828, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B829, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062B82B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062B82C, 0x4063B820, 0x40648C20, 0x00000003,
-	// Block 371, offset 0x5cc0
-	0x4062B82D, 0x4063B820, 0x40648C20, 0x00000002, 0x4062B821, 0x4063C020,
-	0x00000002, 0x4062B822, 0x4063C020, 0x00000002, 0x4062B823, 0x4063C020,
-	0x00000002, 0x4062B824, 0x4063C020, 0x00000002, 0x4062B825, 0x4063C020,
-	0x00000002, 0x4062B826, 0x4063C020, 0x00000002, 0x4062B827, 0x4063C020,
-	0x00000002, 0x4062B828, 0x4063C020, 0x00000002, 0x4062B829, 0x4063C020,
-	0x00000002, 0x4062B82A, 0x4063C020, 0x00000002, 0x4062B82B, 0x4063C020,
-	0x00000002, 0x4062B82C, 0x4063C020, 0x00000002, 0x4062B82D, 0x4063C020,
-	0x00000002, 0x4062B82E, 0x4063C020, 0x00000002, 0x4062B82F, 0x4063C020,
-	0x00000002, 0x4062B830, 0x4063C020, 0x00000002, 0x4062B821, 0x4063C220,
-	0x00000002, 0x4062B822, 0x4063C220, 0x00000002, 0x4062B823, 0x4063C220,
-	0x00000002, 0x4062B824, 0x4063C220, 0x00000002,
-	// Block 372, offset 0x5d00
-	0x4062B825, 0x4063C220, 0x00000002, 0x4062B826, 0x4063C220, 0x00000002,
-	0x4062B827, 0x4063C220, 0x00000002, 0x4062B828, 0x4063C220, 0x00000002,
-	0x4062B829, 0x4063C220, 0x00000002, 0x4062B82A, 0x4063C220, 0x00000002,
-	0x4062B82B, 0x4063C220, 0x00000002, 0x4062B82C, 0x4063C220, 0x00000002,
-	0x4062B82D, 0x4063C220, 0x00000002, 0x4062B82E, 0x4063C220, 0x00000002,
-	0x4062B82F, 0x4063C220, 0x00000002, 0x4062B830, 0x4063C220, 0x00000002,
-	0x4062B831, 0x4063C220, 0x00000002, 0x4062B832, 0x4063C220, 0x00000002,
-	0x4062B833, 0x4063C220, 0x00000002, 0x4062B834, 0x4063C220, 0x00000002,
-	0x4062B835, 0x4063C220, 0x00000002, 0x4062B836, 0x4063C220, 0x00000002,
-	0x4062B837, 0x4063C220, 0x00000002, 0x4062B838, 0x4063C220, 0x00000002,
-	0x4062B839, 0x4063C220, 0x00000002, 0x4062B83A,
-	// Block 373, offset 0x5d40
-	0x4063C220, 0x00000002, 0x4062B83B, 0x4063C220, 0x00000003, 0x4062B821,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062B822, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062B823, 0x4063C220, 0x40646420, 0x00000003, 0x4062B821,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B822, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B823, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B824,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B825, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B826, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B827,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B828, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B829, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82A,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B82C, 0x4063C220, 0x40646A20,
-	// Block 374, offset 0x5d80
-	0x00000003, 0x4062B82D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82E,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B830, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B831,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062B832, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062B833, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B821,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062B822, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062B823, 0x4063C220, 0x40647220, 0x00000002, 0x4062B821,
-	0x4063D020, 0x00000002, 0x4062B822, 0x4063D020, 0x00000002, 0x4062B823,
-	0x4063D020, 0x00000002, 0x4062B824, 0x4063D020, 0x00000002, 0x4062B825,
-	0x4063D020, 0x00000002, 0x4062B826, 0x4063D020, 0x00000002, 0x4062B827,
-	0x4063D020, 0x00000002, 0x4062B828, 0x4063D020,
-	// Block 375, offset 0x5dc0
-	0x00000002, 0x4062B829, 0x4063D020, 0x00000002, 0x4062B82A, 0x4063D020,
-	0x00000002, 0x4062B82B, 0x4063D020, 0x00000002, 0x4062B82C, 0x4063D020,
-	0x00000002, 0x4062B82D, 0x4063D020, 0x00000002, 0x4062B82E, 0x4063D020,
-	0x00000002, 0x4062B82F, 0x4063D020, 0x00000002, 0x4062B830, 0x4063D020,
-	0x00000002, 0x4062B831, 0x4063D020, 0x00000002, 0x4062B832, 0x4063D020,
-	0x00000002, 0x4062B833, 0x4063D020, 0x00000002, 0x4062B834, 0x4063D020,
-	0x00000002, 0x4062B835, 0x4063D020, 0x00000002, 0x4062B836, 0x4063D020,
-	0x00000002, 0x4062B837, 0x4063D020, 0x00000002, 0x4062B838, 0x4063D020,
-	0x00000002, 0x4062B839, 0x4063D020, 0x00000002, 0x4062B83A, 0x4063D020,
-	0x00000002, 0x4062B83B, 0x4063D020, 0x00000002, 0x4062B83C, 0x4063D020,
-	0x00000002, 0x4062B83D, 0x4063D020, 0x00000002,
-	// Block 376, offset 0x5e00
-	0x4062B83E, 0x4063D020, 0x00000002, 0x4062B83F, 0x4063D020, 0x00000002,
-	0x4062B840, 0x4063D020, 0x00000002, 0x4062B841, 0x4063D020, 0x00000003,
-	0x4062B821, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B822, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B823, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B824, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B825, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B826, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B827, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B828, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B829, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B82A, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B82C, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B82D, 0x4063D020, 0x40646A20, 0x00000003,
-	// Block 377, offset 0x5e40
-	0x4062B82E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B830, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B831, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B832, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B833, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B834, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B835, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062B836, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062B837, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B821, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062B822, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062B823, 0x4063D020, 0x40647220, 0x00000003, 0x4062B824, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062B825, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062BA21, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 378, offset 0x5e80
-	0x4062BA22, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA23, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA24, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA25, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA26, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA27, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA28, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA29, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA2B, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2C, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA2E, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2F, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA30, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA31, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 379, offset 0x5ec0
-	0x4062BA32, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA33, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA34, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA35, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA36, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA37, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BA38, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA39, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BA21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA28, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 380, offset 0x5f00
-	0x4062BA29, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA2B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA2C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA2E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA2F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA30, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA31, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA32, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA33, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA34, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA35, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA36, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA37, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA38, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 381, offset 0x5f40
-	0x4062BA39, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA3B, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA3C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA3E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA3F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA40, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BA41, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BA21, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA22, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA23, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA24, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA25, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA26, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA27, 0x4063A820, 0x40647220, 0x00000003,
-	// Block 382, offset 0x5f80
-	0x4062BA28, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA29, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA2B, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA2E, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2F, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BA30, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BA21, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA22, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA23, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA24, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA25, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA26, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA27, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 383, offset 0x5fc0
-	0x4062BA28, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA29, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA2B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA2E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA30, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA31, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA32, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA33, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA34, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA35, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA36, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA37, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 384, offset 0x6000
-	0x4062BA38, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA39, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA3A, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA3B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3C, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA3D, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA3E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3F, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA40, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA41, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA42, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA43, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA44, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA45, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BA46, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BA47, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 385, offset 0x6040
-	0x4062BA48, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA49, 0x4063A820,
-	0x40648C20, 0x00000002, 0x4062BA21, 0x4063AA20, 0x00000002, 0x4062BA22,
-	0x4063AA20, 0x00000002, 0x4062BA23, 0x4063AA20, 0x00000002, 0x4062BA24,
-	0x4063AA20, 0x00000002, 0x4062BA25, 0x4063AA20, 0x00000002, 0x4062BA26,
-	0x4063AA20, 0x00000002, 0x4062BA27, 0x4063AA20, 0x00000002, 0x4062BA28,
-	0x4063AA20, 0x00000002, 0x4062BA29, 0x4063AA20, 0x00000002, 0x4062BA2A,
-	0x4063AA20, 0x00000002, 0x4062BA2B, 0x4063AA20, 0x00000002, 0x4062BA2C,
-	0x4063AA20, 0x00000002, 0x4062BA2D, 0x4063AA20, 0x00000002, 0x4062BA2E,
-	0x4063AA20, 0x00000002, 0x4062BA2F, 0x4063AA20, 0x00000002, 0x4062BA30,
-	0x4063AA20, 0x00000002, 0x4062BA31, 0x4063AA20, 0x00000002, 0x4062BA32,
-	0x4063AA20, 0x00000002, 0x4062BA33, 0x4063AA20,
-	// Block 386, offset 0x6080
-	0x00000002, 0x4062BA34, 0x4063AA20, 0x00000002, 0x4062BA35, 0x4063AA20,
-	0x00000002, 0x4062BA36, 0x4063AA20, 0x00000002, 0x4062BA37, 0x4063AA20,
-	0x00000002, 0x4062BA38, 0x4063AA20, 0x00000003, 0x4062BA21, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BA22, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BA23, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA24, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BA25, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BA26, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA27, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BA28, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BA29, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA21, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA22, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA23, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 387, offset 0x60c0
-	0x4062BA24, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA26, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA27, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA29, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA2A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA2C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BA2D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2E, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BA21, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BA22, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA23, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BA24, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BA25, 0x4063B020, 0x40647220, 0x00000003,
-	// Block 388, offset 0x6100
-	0x4062BA26, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA21, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA22, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA23, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA24, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA25, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA26, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA27, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA28, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA29, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA2A, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BA2B, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BA2C, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA21, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BA22, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BA21, 0x4063B420, 0x40646420, 0x00000003,
-	// Block 389, offset 0x6140
-	0x4062BA22, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA23, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA24, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA25, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA26, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA27, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA28, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA29, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA2A, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA2B, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2C, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA2D, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA2E, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2F, 0x4063B420,
-	0x40646420, 0x00000003, 0x4062BA30, 0x4063B420, 0x40646420, 0x00000003,
-	0x4062BA31, 0x4063B420, 0x40646420, 0x00000003,
-	// Block 390, offset 0x6180
-	0x4062BA21, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA23, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA24, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA26, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA27, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA29, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA2A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA2C, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA2D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2E, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062BA2F, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062BA21, 0x4063B420, 0x40647220, 0x00000003,
-	// Block 391, offset 0x61c0
-	0x4062BA22, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA23, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062BA24, 0x4063B420, 0x40647220, 0x00000003,
-	0x4062BA25, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA26, 0x4063B420,
-	0x40647220, 0x00000003, 0x4062BA21, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA22, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA24, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA25, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA27, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA28, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA29, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA2A, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA2B, 0x4063B420, 0x40648C20, 0x00000003,
-	// Block 392, offset 0x6200
-	0x4062BA2C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2D, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA2E, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA2F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA30, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA31, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA32, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA33, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA34, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA35, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA36, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062BA37, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062BA38, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA39, 0x4063B420,
-	0x40648C20, 0x00000002, 0x4062BA21, 0x4063B820, 0x00000002, 0x4062BA22,
-	0x4063B820, 0x00000002, 0x4062BA23, 0x4063B820,
-	// Block 393, offset 0x6240
-	0x00000002, 0x4062BA24, 0x4063B820, 0x00000002, 0x4062BA25, 0x4063B820,
-	0x00000002, 0x4062BA26, 0x4063B820, 0x00000002, 0x4062BA27, 0x4063B820,
-	0x00000002, 0x4062BA28, 0x4063B820, 0x00000002, 0x4062BA29, 0x4063B820,
-	0x00000002, 0x4062BA2A, 0x4063B820, 0x00000002, 0x4062BA2B, 0x4063B820,
-	0x00000002, 0x4062BA2C, 0x4063B820, 0x00000002, 0x4062BA2D, 0x4063B820,
-	0x00000002, 0x4062BA2E, 0x4063B820, 0x00000002, 0x4062BA2F, 0x4063B820,
-	0x00000002, 0x4062BA30, 0x4063B820, 0x00000002, 0x4062BA31, 0x4063B820,
-	0x00000002, 0x4062BA32, 0x4063B820, 0x00000002, 0x4062BA33, 0x4063B820,
-	0x00000002, 0x4062BA34, 0x4063B820, 0x00000002, 0x4062BA35, 0x4063B820,
-	0x00000002, 0x4062BA36, 0x4063B820, 0x00000002, 0x4062BA37, 0x4063B820,
-	0x00000003, 0x4062BA21, 0x4063B820, 0x40646420,
-	// Block 394, offset 0x6280
-	0x00000003, 0x4062BA22, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA23,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA24, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA25, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA26,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA27, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA28, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA29,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA2A, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA2B, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA2C,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA2D, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA2E, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA2F,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA30, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA31, 0x4063B820, 0x40646420,
-	// Block 395, offset 0x62c0
-	0x00000003, 0x4062BA32, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA33,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA34, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA35, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA36,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA37, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA38, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA39,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062BA3A, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062BA21, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BA21,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062BA21, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA23,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA24, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA25, 0x4063B820, 0x40648C20,
-	// Block 396, offset 0x6300
-	0x00000003, 0x4062BA26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA27,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA28, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2A,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2B, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA2C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2D,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2E, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA2F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA30,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA31, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA32, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA33,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062BA34, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062BA35, 0x4063B820, 0x40648C20,
-	// Block 397, offset 0x6340
-	0x00000003, 0x4062BA36, 0x4063B820, 0x40648C20, 0x00000002, 0x4062BA21,
-	0x4063C220, 0x00000002, 0x4062BA22, 0x4063C220, 0x00000002, 0x4062BA23,
-	0x4063C220, 0x00000002, 0x4062BA24, 0x4063C220, 0x00000002, 0x4062BA25,
-	0x4063C220, 0x00000002, 0x4062BA26, 0x4063C220, 0x00000002, 0x4062BA27,
-	0x4063C220, 0x00000002, 0x4062BA28, 0x4063C220, 0x00000002, 0x4062BA29,
-	0x4063C220, 0x00000002, 0x4062BA2A, 0x4063C220, 0x00000002, 0x4062BA2B,
-	0x4063C220, 0x00000002, 0x4062BA2C, 0x4063C220, 0x00000002, 0x4062BA2D,
-	0x4063C220, 0x00000002, 0x4062BA2E, 0x4063C220, 0x00000002, 0x4062BA2F,
-	0x4063C220, 0x00000002, 0x4062BA30, 0x4063C220, 0x00000002, 0x4062BA31,
-	0x4063C220, 0x00000002, 0x4062BA32, 0x4063C220, 0x00000002, 0x4062BA33,
-	0x4063C220, 0x00000002, 0x4062BA34, 0x4063C220,
-	// Block 398, offset 0x6380
-	0x00000002, 0x4062BA35, 0x4063C220, 0x00000002, 0x4062BA36, 0x4063C220,
-	0x00000002, 0x4062BA37, 0x4063C220, 0x00000002, 0x4062BA38, 0x4063C220,
-	0x00000002, 0x4062BA39, 0x4063C220, 0x00000002, 0x4062BA3A, 0x4063C220,
-	0x00000002, 0x4062BA3B, 0x4063C220, 0x00000002, 0x4062BA3C, 0x4063C220,
-	0x00000002, 0x4062BA3D, 0x4063C220, 0x00000002, 0x4062BA3E, 0x4063C220,
-	0x00000002, 0x4062BA3F, 0x4063C220, 0x00000002, 0x4062BA40, 0x4063C220,
-	0x00000002, 0x4062BA41, 0x4063C220, 0x00000002, 0x4062BA42, 0x4063C220,
-	0x00000002, 0x4062BA43, 0x4063C220, 0x00000002, 0x4062BA44, 0x4063C220,
-	0x00000002, 0x4062BA45, 0x4063C220, 0x00000002, 0x4062BA46, 0x4063C220,
-	0x00000002, 0x4062BA47, 0x4063C220, 0x00000002, 0x4062BA48, 0x4063C220,
-	0x00000002, 0x4062BA49, 0x4063C220, 0x00000002,
-	// Block 399, offset 0x63c0
-	0x4062BA4A, 0x4063C220, 0x00000002, 0x4062BA4B, 0x4063C220, 0x00000002,
-	0x4062BA4C, 0x4063C220, 0x00000002, 0x4062BA4D, 0x4063C220, 0x00000002,
-	0x4062BA4E, 0x4063C220, 0x00000002, 0x4062BA4F, 0x4063C220, 0x00000002,
-	0x4062BA50, 0x4063C220, 0x00000002, 0x4062BA51, 0x4063C220, 0x00000002,
-	0x4062BA52, 0x4063C220, 0x00000002, 0x4062BA53, 0x4063C220, 0x00000002,
-	0x4062BA54, 0x4063C220, 0x00000002, 0x4062BA55, 0x4063C220, 0x00000002,
-	0x4062BA56, 0x4063C220, 0x00000002, 0x4062BA57, 0x4063C220, 0x00000002,
-	0x4062BA58, 0x4063C220, 0x00000002, 0x4062BA59, 0x4063C220, 0x00000002,
-	0x4062BA5A, 0x4063C220, 0x00000002, 0x4062BA5B, 0x4063C220, 0x00000002,
-	0x4062BA5C, 0x4063C220, 0x00000002, 0x4062BA5D, 0x4063C220, 0x00000002,
-	0x4062BA5E, 0x4063C220, 0x00000002, 0x4062BA5F,
-	// Block 400, offset 0x6400
-	0x4063C220, 0x00000002, 0x4062BA60, 0x4063C220, 0x00000002, 0x4062BA61,
-	0x4063C220, 0x00000002, 0x4062BA62, 0x4063C220, 0x00000002, 0x4062BA63,
-	0x4063C220, 0x00000002, 0x4062BA64, 0x4063C220, 0x00000002, 0x4062BA65,
-	0x4063C220, 0x00000003, 0x4062BA21, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062BA21, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA23, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA24, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA26, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA29, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA2A, 0x4063C220, 0x40646A20, 0x00000003,
-	// Block 401, offset 0x6440
-	0x4062BA2B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2C, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA2D, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA2E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2F, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA30, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA31, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA32, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA33, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA34, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA35, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA36, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA37, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA38, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA39, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA3A, 0x4063C220, 0x40646A20, 0x00000003,
-	// Block 402, offset 0x6480
-	0x4062BA3B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3C, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA3D, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA3E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3F, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA40, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA41, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA42, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA43, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA44, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA45, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062BA46, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062BA21, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA22, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA23, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062BA24, 0x4063C220, 0x40647220, 0x00000003,
-	// Block 403, offset 0x64c0
-	0x4062BA25, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA26, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA27, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062BA28, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA29, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA2A, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062BA2B, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062BA21, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062BA22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062BA24, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062BA25, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062BA27, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062BA28, 0x4063C220, 0x40648C20, 0x00000003,
-	// Block 404, offset 0x6500
-	0x4062BA29, 0x4063C220, 0x40648C20, 0x00000002, 0x4062BA21, 0x4063D020,
-	0x00000002, 0x4062BA22, 0x4063D020, 0x00000002, 0x4062BA23, 0x4063D020,
-	0x00000002, 0x4062BA24, 0x4063D020, 0x00000002, 0x4062BA25, 0x4063D020,
-	0x00000002, 0x4062BA26, 0x4063D020, 0x00000002, 0x4062BA27, 0x4063D020,
-	0x00000002, 0x4062BA28, 0x4063D020, 0x00000002, 0x4062BA29, 0x4063D020,
-	0x00000002, 0x4062BA2A, 0x4063D020, 0x00000002, 0x4062BA2B, 0x4063D020,
-	0x00000002, 0x4062BA2C, 0x4063D020, 0x00000002, 0x4062BA2D, 0x4063D020,
-	0x00000002, 0x4062BA2E, 0x4063D020, 0x00000002, 0x4062BA2F, 0x4063D020,
-	0x00000002, 0x4062BA30, 0x4063D020, 0x00000002, 0x4062BA31, 0x4063D020,
-	0x00000002, 0x4062BA32, 0x4063D020, 0x00000002, 0x4062BA33, 0x4063D020,
-	0x00000002, 0x4062BA34, 0x4063D020, 0x00000002,
-	// Block 405, offset 0x6540
-	0x4062BA35, 0x4063D020, 0x00000002, 0x4062BA36, 0x4063D020, 0x00000002,
-	0x4062BA37, 0x4063D020, 0x00000002, 0x4062BA38, 0x4063D020, 0x00000002,
-	0x4062BA39, 0x4063D020, 0x00000002, 0x4062BA3A, 0x4063D020, 0x00000002,
-	0x4062BA3B, 0x4063D020, 0x00000002, 0x4062BA3C, 0x4063D020, 0x00000002,
-	0x4062BA3D, 0x4063D020, 0x00000002, 0x4062BA3E, 0x4063D020, 0x00000002,
-	0x4062BA3F, 0x4063D020, 0x00000002, 0x4062BA40, 0x4063D020, 0x00000002,
-	0x4062BA41, 0x4063D020, 0x00000002, 0x4062BA42, 0x4063D020, 0x00000002,
-	0x4062BA43, 0x4063D020, 0x00000002, 0x4062BA44, 0x4063D020, 0x00000002,
-	0x4062BA45, 0x4063D020, 0x00000002, 0x4062BA46, 0x4063D020, 0x00000002,
-	0x4062BA47, 0x4063D020, 0x00000002, 0x4062BA48, 0x4063D020, 0x00000002,
-	0x4062BA49, 0x4063D020, 0x00000002, 0x4062BA4A,
-	// Block 406, offset 0x6580
-	0x4063D020, 0x00000002, 0x4062BA4B, 0x4063D020, 0x00000002, 0x4062BA4C,
-	0x4063D020, 0x00000002, 0x4062BA4D, 0x4063D020, 0x00000002, 0x4062BA4E,
-	0x4063D020, 0x00000002, 0x4062BA4F, 0x4063D020, 0x00000002, 0x4062BA50,
-	0x4063D020, 0x00000002, 0x4062BA51, 0x4063D020, 0x00000002, 0x4062BA52,
-	0x4063D020, 0x00000002, 0x4062BA53, 0x4063D020, 0x00000002, 0x4062BA54,
-	0x4063D020, 0x00000002, 0x4062BA55, 0x4063D020, 0x00000002, 0x4062BA56,
-	0x4063D020, 0x00000002, 0x4062BA57, 0x4063D020, 0x00000002, 0x4062BA58,
-	0x4063D020, 0x00000002, 0x4062BA59, 0x4063D020, 0x00000002, 0x4062BA5A,
-	0x4063D020, 0x00000002, 0x4062BA5B, 0x4063D020, 0x00000002, 0x4062BA5C,
-	0x4063D020, 0x00000002, 0x4062BA5D, 0x4063D020, 0x00000002, 0x4062BA5E,
-	0x4063D020, 0x00000002, 0x4062BA5F, 0x4063D020,
-	// Block 407, offset 0x65c0
-	0x00000002, 0x4062BA60, 0x4063D020, 0x00000002, 0x4062BA61, 0x4063D020,
-	0x00000002, 0x4062BA62, 0x4063D020, 0x00000002, 0x4062BA63, 0x4063D020,
-	0x00000002, 0x4062BA64, 0x4063D020, 0x00000002, 0x4062BA65, 0x4063D020,
-	0x00000002, 0x4062BA66, 0x4063D020, 0x00000002, 0x4062BA67, 0x4063D020,
-	0x00000002, 0x4062BA68, 0x4063D020, 0x00000002, 0x4062BA69, 0x4063D020,
-	0x00000002, 0x4062BA6A, 0x4063D020, 0x00000002, 0x4062BA6B, 0x4063D020,
-	0x00000002, 0x4062BA6C, 0x4063D020, 0x00000002, 0x4062BA6D, 0x4063D020,
-	0x00000002, 0x4062BA6E, 0x4063D020, 0x00000002, 0x4062BA6F, 0x4063D020,
-	0x00000002, 0x4062BA70, 0x4063D020, 0x00000002, 0x4062BA71, 0x4063D020,
-	0x00000002, 0x4062BA72, 0x4063D020, 0x00000002, 0x4062BA73, 0x4063D020,
-	0x00000002, 0x4062BA74, 0x4063D020, 0x00000002,
-	// Block 408, offset 0x6600
-	0x4062BA75, 0x4063D020, 0x00000003, 0x4062BA21, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA22, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA23,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA24, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA25, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA26,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA27, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA28, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA29,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA2B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2C,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA2E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2F,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA30,
-	// Block 409, offset 0x6640
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA31, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA32, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA33,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA34, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA35, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA36,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA37, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA38, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA39,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BA3B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA21,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062BA22, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062BA23, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA24,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062BA25,
-	// Block 410, offset 0x6680
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062BA27, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA28,
-	0x4063D020, 0x40648C20, 0x00000002, 0x4062BE21, 0x4063A820, 0x00000002,
-	0x4062BE22, 0x4063A820, 0x00000002, 0x4062BE23, 0x4063A820, 0x00000002,
-	0x4062BE24, 0x4063A820, 0x00000002, 0x4062BE25, 0x4063A820, 0x00000002,
-	0x4062BE26, 0x4063A820, 0x00000002, 0x4062BE27, 0x4063A820, 0x00000002,
-	0x4062BE28, 0x4063A820, 0x00000002, 0x4062BE29, 0x4063A820, 0x00000002,
-	0x4062BE2A, 0x4063A820, 0x00000002, 0x4062BE2B, 0x4063A820, 0x00000002,
-	0x4062BE2C, 0x4063A820, 0x00000002, 0x4062BE2D, 0x4063A820, 0x00000002,
-	0x4062BE2E, 0x4063A820, 0x00000002, 0x4062BE2F, 0x4063A820, 0x00000002,
-	0x4062BE30, 0x4063A820, 0x00000002, 0x4062BE31,
-	// Block 411, offset 0x66c0
-	0x4063A820, 0x00000002, 0x4062BE32, 0x4063A820, 0x00000002, 0x4062BE33,
-	0x4063A820, 0x00000002, 0x4062BE34, 0x4063A820, 0x00000002, 0x4062BE35,
-	0x4063A820, 0x00000002, 0x4062BE36, 0x4063A820, 0x00000002, 0x4062BE37,
-	0x4063A820, 0x00000002, 0x4062BE38, 0x4063A820, 0x00000002, 0x4062BE39,
-	0x4063A820, 0x00000002, 0x4062BE3A, 0x4063A820, 0x00000002, 0x4062BE3B,
-	0x4063A820, 0x00000002, 0x4062BE3C, 0x4063A820, 0x00000002, 0x4062BE3D,
-	0x4063A820, 0x00000002, 0x4062BE3E, 0x4063A820, 0x00000002, 0x4062BE3F,
-	0x4063A820, 0x00000002, 0x4062BE40, 0x4063A820, 0x00000002, 0x4062BE41,
-	0x4063A820, 0x00000002, 0x4062BE42, 0x4063A820, 0x00000002, 0x4062BE43,
-	0x4063A820, 0x00000002, 0x4062BE44, 0x4063A820, 0x00000002, 0x4062BE45,
-	0x4063A820, 0x00000002, 0x4062BE46, 0x4063A820,
-	// Block 412, offset 0x6700
-	0x00000002, 0x4062BE47, 0x4063A820, 0x00000002, 0x4062BE48, 0x4063A820,
-	0x00000002, 0x4062BE49, 0x4063A820, 0x00000002, 0x4062BE4A, 0x4063A820,
-	0x00000002, 0x4062BE4B, 0x4063A820, 0x00000002, 0x4062BE4C, 0x4063A820,
-	0x00000002, 0x4062BE4D, 0x4063A820, 0x00000002, 0x4062BE4E, 0x4063A820,
-	0x00000002, 0x4062BE4F, 0x4063A820, 0x00000002, 0x4062BE50, 0x4063A820,
-	0x00000002, 0x4062BE51, 0x4063A820, 0x00000002, 0x4062BE52, 0x4063A820,
-	0x00000002, 0x4062BE53, 0x4063A820, 0x00000002, 0x4062BE54, 0x4063A820,
-	0x00000002, 0x4062BE55, 0x4063A820, 0x00000002, 0x4062BE56, 0x4063A820,
-	0x00000002, 0x4062BE57, 0x4063A820, 0x00000002, 0x4062BE58, 0x4063A820,
-	0x00000002, 0x4062BE59, 0x4063A820, 0x00000002, 0x4062BE5A, 0x4063A820,
-	0x00000002, 0x4062BE5B, 0x4063A820, 0x00000002,
-	// Block 413, offset 0x6740
-	0x4062BE5C, 0x4063A820, 0x00000002, 0x4062BE5D, 0x4063A820, 0x00000002,
-	0x4062BE5E, 0x4063A820, 0x00000002, 0x4062BE5F, 0x4063A820, 0x00000002,
-	0x4062BE60, 0x4063A820, 0x00000002, 0x4062BE61, 0x4063A820, 0x00000002,
-	0x4062BE62, 0x4063A820, 0x00000002, 0x4062BE63, 0x4063A820, 0x00000002,
-	0x4062BE64, 0x4063A820, 0x00000002, 0x4062BE65, 0x4063A820, 0x00000002,
-	0x4062BE66, 0x4063A820, 0x00000002, 0x4062BE67, 0x4063A820, 0x00000002,
-	0x4062BE68, 0x4063A820, 0x00000002, 0x4062BE69, 0x4063A820, 0x00000002,
-	0x4062BE6A, 0x4063A820, 0x00000002, 0x4062BE6B, 0x4063A820, 0x00000002,
-	0x4062BE6C, 0x4063A820, 0x00000002, 0x4062BE6D, 0x4063A820, 0x00000002,
-	0x4062BE6E, 0x4063A820, 0x00000002, 0x4062BE6F, 0x4063A820, 0x00000003,
-	0x4062BE21, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 414, offset 0x6780
-	0x4062BE22, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE23, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BE24, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062BE25, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062BE21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE29, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE2B, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 415, offset 0x67c0
-	0x4062BE2C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE2E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE2F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE30, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE31, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE32, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE33, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE34, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE35, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE36, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062BE37, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062BE38, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE21, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BE22, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062BE23, 0x4063A820, 0x40647220, 0x00000003,
-	// Block 416, offset 0x6800
-	0x4062BE24, 0x4063A820, 0x40647220, 0x00000003, 0x4062BE25, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062BE21, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE22, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE23, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062BE24, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE25, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062BE27, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE28, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE29, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062BE21, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE22, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062BE23, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062BE24, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 417, offset 0x6840
-	0x4062BE25, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE26, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062BE27, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062BE28, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE29, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062BE2B, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE21, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE23, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE25, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE26, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE28, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE29, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 418, offset 0x6880
-	0x4062BE2A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE2C, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE2D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2E, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE2F, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE30, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE32, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE33, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE34, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE35, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE36, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE37, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE38, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE39, 0x4063A820, 0x40648C20, 0x00000003,
-	// Block 419, offset 0x68c0
-	0x4062BE3A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3B, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE3C, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE3D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3E, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE3F, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE40, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE41, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE42, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE43, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE44, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE45, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062BE46, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE47, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062BE48, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063AA20, 0x00000002, 0x4062BE22,
-	// Block 420, offset 0x6900
-	0x4063AA20, 0x00000002, 0x4062BE23, 0x4063AA20, 0x00000002, 0x4062BE24,
-	0x4063AA20, 0x00000003, 0x4062BE21, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BE22, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE23, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BE24, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BE25, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE26, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062BE27, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062BE21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE22, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062BE23, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062BE24, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062BE26, 0x4063AA20, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063B020, 0x00000002, 0x4062BE22,
-	// Block 421, offset 0x6940
-	0x4063B020, 0x00000002, 0x4062BE23, 0x4063B020, 0x00000002, 0x4062BE24,
-	0x4063B020, 0x00000002, 0x4062BE25, 0x4063B020, 0x00000002, 0x4062BE26,
-	0x4063B020, 0x00000002, 0x4062BE27, 0x4063B020, 0x00000002, 0x4062BE28,
-	0x4063B020, 0x00000002, 0x4062BE29, 0x4063B020, 0x00000002, 0x4062BE2A,
-	0x4063B020, 0x00000002, 0x4062BE2B, 0x4063B020, 0x00000002, 0x4062BE2C,
-	0x4063B020, 0x00000002, 0x4062BE2D, 0x4063B020, 0x00000002, 0x4062BE2E,
-	0x4063B020, 0x00000002, 0x4062BE2F, 0x4063B020, 0x00000002, 0x4062BE30,
-	0x4063B020, 0x00000002, 0x4062BE31, 0x4063B020, 0x00000002, 0x4062BE32,
-	0x4063B020, 0x00000002, 0x4062BE33, 0x4063B020, 0x00000002, 0x4062BE34,
-	0x4063B020, 0x00000002, 0x4062BE35, 0x4063B020, 0x00000002, 0x4062BE36,
-	0x4063B020, 0x00000002, 0x4062BE37, 0x4063B020,
-	// Block 422, offset 0x6980
-	0x00000002, 0x4062BE38, 0x4063B020, 0x00000002, 0x4062BE39, 0x4063B020,
-	0x00000002, 0x4062BE3A, 0x4063B020, 0x00000002, 0x4062BE3B, 0x4063B020,
-	0x00000002, 0x4062BE3C, 0x4063B020, 0x00000002, 0x4062BE3D, 0x4063B020,
-	0x00000002, 0x4062BE3E, 0x4063B020, 0x00000002, 0x4062BE3F, 0x4063B020,
-	0x00000002, 0x4062BE40, 0x4063B020, 0x00000002, 0x4062BE41, 0x4063B020,
-	0x00000002, 0x4062BE42, 0x4063B020, 0x00000002, 0x4062BE43, 0x4063B020,
-	0x00000002, 0x4062BE44, 0x4063B020, 0x00000002, 0x4062BE45, 0x4063B020,
-	0x00000002, 0x4062BE46, 0x4063B020, 0x00000002, 0x4062BE47, 0x4063B020,
-	0x00000002, 0x4062BE48, 0x4063B020, 0x00000003, 0x4062BE21, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE22, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE23, 0x4063B020, 0x40646420, 0x00000003,
-	// Block 423, offset 0x69c0
-	0x4062BE24, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE25, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE26, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE27, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE28, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE29, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE2A, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2B, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE2D, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2E, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE2F, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE30, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE31, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE32, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE33, 0x4063B020, 0x40646420, 0x00000003,
-	// Block 424, offset 0x6a00
-	0x4062BE34, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE35, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062BE36, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062BE21, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE23, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE24, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE26, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE27, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE29, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE2A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE2D, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 425, offset 0x6a40
-	0x4062BE2E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2F, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE30, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE31, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE32, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE33, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE34, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE36, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE37, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE38, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE39, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE3A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE3C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE3D, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 426, offset 0x6a80
-	0x4062BE3E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3F, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE40, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE41, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE42, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE43, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE44, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE45, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE46, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE47, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE48, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE49, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE4A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4B, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE4C, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE4D, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 427, offset 0x6ac0
-	0x4062BE4E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4F, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062BE50, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062BE21, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE22, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE23, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE24, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE25, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE26, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE27, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE28, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE29, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE2A, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2B, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE2C, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE2D, 0x4063B020, 0x40647220, 0x00000003,
-	// Block 428, offset 0x6b00
-	0x4062BE2E, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2F, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE30, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE31, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE32, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE33, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062BE34, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE35, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062BE21, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE22, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE23, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE24, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE25, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE26, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE27, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE28, 0x4063B020, 0x40648220, 0x00000003,
-	// Block 429, offset 0x6b40
-	0x4062BE29, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE2C, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2D, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062BE2F, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE21, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BE22, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BE23, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE24, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BE25, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BE26, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE27, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062BE28, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062BE29, 0x4063B020, 0x40648420, 0x00000003,
-	// Block 430, offset 0x6b80
-	0x4062BE2A, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE21, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE23, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE25, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE26, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE28, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE29, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2A, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE2C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2D, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE2F, 0x4063B020, 0x40648C20, 0x00000003,
-	// Block 431, offset 0x6bc0
-	0x4062BE30, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062BE32, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062BE33, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE34, 0x4063B020,
-	0x40648C20, 0x00000002, 0x4062BE21, 0x4063B220, 0x00000002, 0x4062BE22,
-	0x4063B220, 0x00000002, 0x4062BE23, 0x4063B220, 0x00000002, 0x4062BE24,
-	0x4063B220, 0x00000002, 0x4062BE25, 0x4063B220, 0x00000002, 0x4062BE26,
-	0x4063B220, 0x00000002, 0x4062BE27, 0x4063B220, 0x00000002, 0x4062BE28,
-	0x4063B220, 0x00000002, 0x4062BE29, 0x4063B220, 0x00000002, 0x4062BE2A,
-	0x4063B220, 0x00000002, 0x4062BE2B, 0x4063B220, 0x00000002, 0x4062BE2C,
-	0x4063B220, 0x00000002, 0x4062BE21, 0x4063B820, 0x00000002, 0x4062BE22,
-	0x4063B820, 0x00000002, 0x4062BE23, 0x4063B820,
-	// Block 432, offset 0x6c00
-	0x00000002, 0x4062BE24, 0x4063B820, 0x00000002, 0x4062BE25, 0x4063B820,
-	0x00000002, 0x4062BE26, 0x4063B820, 0x00000002, 0x4062BE27, 0x4063B820,
-	0x00000002, 0x4062BE28, 0x4063B820, 0x00000002, 0x4062BE29, 0x4063B820,
-	0x00000002, 0x4062BE2A, 0x4063B820, 0x00000002, 0x4062BE2B, 0x4063B820,
-	0x00000002, 0x4062BE2C, 0x4063B820, 0x00000002, 0x4062BE2D, 0x4063B820,
-	0x00000002, 0x4062BE2E, 0x4063B820, 0x00000002, 0x4062BE2F, 0x4063B820,
-	0x00000002, 0x4062BE30, 0x4063B820, 0x00000002, 0x4062BE31, 0x4063B820,
-	0x00000002, 0x4062BE32, 0x4063B820, 0x00000002, 0x4062BE33, 0x4063B820,
-	0x00000002, 0x4062BE34, 0x4063B820, 0x00000002, 0x4062BE35, 0x4063B820,
-	0x00000002, 0x4062BE36, 0x4063B820, 0x00000002, 0x4062BE37, 0x4063B820,
-	0x00000002, 0x4062BE38, 0x4063B820, 0x00000002,
-	// Block 433, offset 0x6c40
-	0x4062BE39, 0x4063B820, 0x00000002, 0x4062BE3A, 0x4063B820, 0x00000002,
-	0x4062BE3B, 0x4063B820, 0x00000002, 0x4062BE3C, 0x4063B820, 0x00000002,
-	0x4062BE3D, 0x4063B820, 0x00000002, 0x4062BE3E, 0x4063B820, 0x00000002,
-	0x4062BE3F, 0x4063B820, 0x00000002, 0x4062BE40, 0x4063B820, 0x00000002,
-	0x4062BE41, 0x4063B820, 0x00000002, 0x4062BE42, 0x4063B820, 0x00000002,
-	0x4062BE43, 0x4063B820, 0x00000002, 0x4062BE44, 0x4063B820, 0x00000002,
-	0x4062BE45, 0x4063B820, 0x00000002, 0x4062BE46, 0x4063B820, 0x00000002,
-	0x4062BE47, 0x4063B820, 0x00000002, 0x4062BE48, 0x4063B820, 0x00000002,
-	0x4062BE49, 0x4063B820, 0x00000002, 0x4062BE4A, 0x4063B820, 0x00000002,
-	0x4062BE4B, 0x4063B820, 0x00000002, 0x4062BE4C, 0x4063B820, 0x00000002,
-	0x4062BE4D, 0x4063B820, 0x00000002, 0x4062BE4E,
-	// Block 434, offset 0x6c80
-	0x4063B820, 0x00000002, 0x4062BE4F, 0x4063B820, 0x00000002, 0x4062BE50,
-	0x4063B820, 0x00000002, 0x4062BE51, 0x4063B820, 0x00000002, 0x4062BE52,
-	0x4063B820, 0x00000002, 0x4062BE53, 0x4063B820, 0x00000002, 0x4062BE54,
-	0x4063B820, 0x00000002, 0x4062BE55, 0x4063B820, 0x00000002, 0x4062BE56,
-	0x4063B820, 0x00000002, 0x4062BE57, 0x4063B820, 0x00000002, 0x4062BE58,
-	0x4063B820, 0x00000002, 0x4062BE59, 0x4063B820, 0x00000002, 0x4062BE5A,
-	0x4063B820, 0x00000002, 0x4062BE5B, 0x4063B820, 0x00000002, 0x4062BE5C,
-	0x4063B820, 0x00000003, 0x4062BE21, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE22, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE23, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062BE24, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE25, 0x4063B820, 0x40646420, 0x00000003,
-	// Block 435, offset 0x6cc0
-	0x4062BE26, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE27, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062BE28, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE29, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE2A, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062BE2B, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062BE21, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062BE23, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062BE24, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062BE26, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062BE27, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062BE21, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062BE22, 0x4063B820, 0x40647220, 0x00000003,
-	// Block 436, offset 0x6d00
-	0x4062BE23, 0x4063B820, 0x40647220, 0x00000003, 0x4062BE21, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062BE23, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE25, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062BE26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE28, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062BE29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE2A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062BE2B, 0x4063B820, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063BC20, 0x00000002, 0x4062BE22, 0x4063BC20, 0x00000002,
-	0x4062BE23, 0x4063BC20, 0x00000002, 0x4062BE24, 0x4063BC20, 0x00000002,
-	0x4062BE25, 0x4063BC20, 0x00000002, 0x4062BE26,
-	// Block 437, offset 0x6d40
-	0x4063BC20, 0x00000002, 0x4062BE27, 0x4063BC20, 0x00000002, 0x4062BE21,
-	0x4063BE20, 0x00000002, 0x4062BE22, 0x4063BE20, 0x00000002, 0x4062BE21,
-	0x4063C220, 0x00000002, 0x4062BE22, 0x4063C220, 0x00000002, 0x4062BE23,
-	0x4063C220, 0x00000002, 0x4062BE24, 0x4063C220, 0x00000002, 0x4062BE25,
-	0x4063C220, 0x00000002, 0x4062BE26, 0x4063C220, 0x00000002, 0x4062BE27,
-	0x4063C220, 0x00000002, 0x4062BE28, 0x4063C220, 0x00000002, 0x4062BE29,
-	0x4063C220, 0x00000002, 0x4062BE2A, 0x4063C220, 0x00000002, 0x4062BE2B,
-	0x4063C220, 0x00000002, 0x4062BE2C, 0x4063C220, 0x00000002, 0x4062BE2D,
-	0x4063C220, 0x00000002, 0x4062BE2E, 0x4063C220, 0x00000002, 0x4062BE2F,
-	0x4063C220, 0x00000002, 0x4062BE30, 0x4063C220, 0x00000002, 0x4062BE31,
-	0x4063C220, 0x00000002, 0x4062BE32, 0x4063C220,
-	// Block 438, offset 0x6d80
-	0x00000002, 0x4062BE33, 0x4063C220, 0x00000002, 0x4062BE34, 0x4063C220,
-	0x00000002, 0x4062BE35, 0x4063C220, 0x00000002, 0x4062BE36, 0x4063C220,
-	0x00000002, 0x4062BE37, 0x4063C220, 0x00000002, 0x4062BE38, 0x4063C220,
-	0x00000002, 0x4062BE39, 0x4063C220, 0x00000002, 0x4062BE3A, 0x4063C220,
-	0x00000002, 0x4062BE3B, 0x4063C220, 0x00000002, 0x4062BE3C, 0x4063C220,
-	0x00000002, 0x4062BE3D, 0x4063C220, 0x00000002, 0x4062BE3E, 0x4063C220,
-	0x00000002, 0x4062BE3F, 0x4063C220, 0x00000002, 0x4062BE40, 0x4063C220,
-	0x00000002, 0x4062BE41, 0x4063C220, 0x00000002, 0x4062BE42, 0x4063C220,
-	0x00000002, 0x4062BE43, 0x4063C220, 0x00000002, 0x4062BE44, 0x4063C220,
-	0x00000002, 0x4062BE45, 0x4063C220, 0x00000002, 0x4062BE46, 0x4063C220,
-	0x00000002, 0x4062BE47, 0x4063C220, 0x00000002,
-	// Block 439, offset 0x6dc0
-	0x4062BE48, 0x4063C220, 0x00000002, 0x4062BE49, 0x4063C220, 0x00000002,
-	0x4062BE4A, 0x4063C220, 0x00000002, 0x4062BE4B, 0x4063C220, 0x00000002,
-	0x4062BE4C, 0x4063C220, 0x00000002, 0x4062BE4D, 0x4063C220, 0x00000002,
-	0x4062BE4E, 0x4063C220, 0x00000002, 0x4062BE4F, 0x4063C220, 0x00000002,
-	0x4062BE50, 0x4063C220, 0x00000002, 0x4062BE51, 0x4063C220, 0x00000002,
-	0x4062BE52, 0x4063C220, 0x00000002, 0x4062BE53, 0x4063C220, 0x00000002,
-	0x4062BE54, 0x4063C220, 0x00000002, 0x4062BE55, 0x4063C220, 0x00000002,
-	0x4062BE56, 0x4063C220, 0x00000002, 0x4062BE57, 0x4063C220, 0x00000002,
-	0x4062BE58, 0x4063C220, 0x00000002, 0x4062BE59, 0x4063C220, 0x00000002,
-	0x4062BE5A, 0x4063C220, 0x00000002, 0x4062BE5B, 0x4063C220, 0x00000002,
-	0x4062BE5C, 0x4063C220, 0x00000002, 0x4062BE5D,
-	// Block 440, offset 0x6e00
-	0x4063C220, 0x00000002, 0x4062BE5E, 0x4063C220, 0x00000002, 0x4062BE5F,
-	0x4063C220, 0x00000002, 0x4062BE60, 0x4063C220, 0x00000002, 0x4062BE61,
-	0x4063C220, 0x00000002, 0x4062BE62, 0x4063C220, 0x00000002, 0x4062BE63,
-	0x4063C220, 0x00000002, 0x4062BE64, 0x4063C220, 0x00000002, 0x4062BE65,
-	0x4063C220, 0x00000002, 0x4062BE66, 0x4063C220, 0x00000002, 0x4062BE67,
-	0x4063C220, 0x00000002, 0x4062BE68, 0x4063C220, 0x00000002, 0x4062BE69,
-	0x4063C220, 0x00000002, 0x4062BE6A, 0x4063C220, 0x00000002, 0x4062BE6B,
-	0x4063C220, 0x00000002, 0x4062BE6C, 0x4063C220, 0x00000002, 0x4062BE6D,
-	0x4063C220, 0x00000002, 0x4062BE6E, 0x4063C220, 0x00000002, 0x4062BE6F,
-	0x4063C220, 0x00000002, 0x4062BE70, 0x4063C220, 0x00000002, 0x4062BE71,
-	0x4063C220, 0x00000002, 0x4062BE72, 0x4063C220,
-	// Block 441, offset 0x6e40
-	0x00000003, 0x4062BE21, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE22,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE24, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE25,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE27, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE28,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE29, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE2A, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2B,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE2C, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE2D, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2E,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE2F, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE30, 0x4063C220, 0x40646420,
-	// Block 442, offset 0x6e80
-	0x00000003, 0x4062BE31, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE32,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062BE21, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE22,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE24, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE25,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE28,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE29, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE2A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE2D, 0x4063C220, 0x40646A20,
-	// Block 443, offset 0x6ec0
-	0x00000003, 0x4062BE2E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE30, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE31, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE32,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE34, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE35,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE36, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE37, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE38,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE39, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE3A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE3D, 0x4063C220, 0x40646A20,
-	// Block 444, offset 0x6f00
-	0x00000003, 0x4062BE3E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE40, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE41, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE42,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062BE43, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062BE44, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE21,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062BE22, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062BE23, 0x4063C220, 0x40647220, 0x00000003, 0x4062BE24,
-	0x4063C220, 0x40647220, 0x00000003, 0x4062BE25, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062BE21, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BE22,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062BE23, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062BE24, 0x4063C220, 0x40648C20,
-	// Block 445, offset 0x6f40
-	0x00000002, 0x4062BE21, 0x4063C820, 0x00000002, 0x4062BE22, 0x4063C820,
-	0x00000002, 0x4062BE23, 0x4063C820, 0x00000003, 0x4062BE21, 0x4063CC20,
-	0x40647220, 0x00000003, 0x4062BE22, 0x4063CC20, 0x40647220, 0x00000003,
-	0x4062BE23, 0x4063CC20, 0x40647220, 0x00000003, 0x4062BE24, 0x4063CC20,
-	0x40647220, 0x00000003, 0x4062BE21, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062BE22, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE23, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062BE24, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062BE25, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE26, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062BE27, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062BE28, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE21, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE22, 0x4063CC20,
-	// Block 446, offset 0x6f80
-	0x40648C20, 0x00000003, 0x4062BE23, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062BE24, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE26, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062BE27, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE28, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE29, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062BE2A, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062BE2C, 0x4063CC20, 0x40648C20, 0x00000002,
-	0x4062BE21, 0x4063D020, 0x00000002, 0x4062BE22, 0x4063D020, 0x00000002,
-	0x4062BE23, 0x4063D020, 0x00000002, 0x4062BE24, 0x4063D020, 0x00000002,
-	0x4062BE25, 0x4063D020, 0x00000002, 0x4062BE26, 0x4063D020, 0x00000002,
-	0x4062BE27, 0x4063D020, 0x00000002, 0x4062BE28,
-	// Block 447, offset 0x6fc0
-	0x4063D020, 0x00000002, 0x4062BE29, 0x4063D020, 0x00000002, 0x4062BE2A,
-	0x4063D020, 0x00000002, 0x4062BE2B, 0x4063D020, 0x00000002, 0x4062BE2C,
-	0x4063D020, 0x00000002, 0x4062BE2D, 0x4063D020, 0x00000002, 0x4062BE2E,
-	0x4063D020, 0x00000002, 0x4062BE2F, 0x4063D020, 0x00000002, 0x4062BE30,
-	0x4063D020, 0x00000002, 0x4062BE31, 0x4063D020, 0x00000002, 0x4062BE32,
-	0x4063D020, 0x00000002, 0x4062BE33, 0x4063D020, 0x00000002, 0x4062BE34,
-	0x4063D020, 0x00000002, 0x4062BE35, 0x4063D020, 0x00000002, 0x4062BE36,
-	0x4063D020, 0x00000002, 0x4062BE37, 0x4063D020, 0x00000002, 0x4062BE38,
-	0x4063D020, 0x00000002, 0x4062BE39, 0x4063D020, 0x00000002, 0x4062BE3A,
-	0x4063D020, 0x00000002, 0x4062BE3B, 0x4063D020, 0x00000002, 0x4062BE3C,
-	0x4063D020, 0x00000002, 0x4062BE3D, 0x4063D020,
-	// Block 448, offset 0x7000
-	0x00000002, 0x4062BE3E, 0x4063D020, 0x00000002, 0x4062BE3F, 0x4063D020,
-	0x00000002, 0x4062BE40, 0x4063D020, 0x00000002, 0x4062BE41, 0x4063D020,
-	0x00000002, 0x4062BE42, 0x4063D020, 0x00000002, 0x4062BE43, 0x4063D020,
-	0x00000002, 0x4062BE44, 0x4063D020, 0x00000002, 0x4062BE45, 0x4063D020,
-	0x00000002, 0x4062BE46, 0x4063D020, 0x00000002, 0x4062BE47, 0x4063D020,
-	0x00000002, 0x4062BE48, 0x4063D020, 0x00000002, 0x4062BE49, 0x4063D020,
-	0x00000002, 0x4062BE4A, 0x4063D020, 0x00000002, 0x4062BE4B, 0x4063D020,
-	0x00000002, 0x4062BE4C, 0x4063D020, 0x00000002, 0x4062BE4D, 0x4063D020,
-	0x00000003, 0x4062BE21, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE22,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE23, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE24, 0x4063D020, 0x40646420,
-	// Block 449, offset 0x7040
-	0x00000003, 0x4062BE25, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE26,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE27, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE28, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE29,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE2A, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE2B, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE2C,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE2D, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE2E, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE2F,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE30, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062BE31, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE32,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062BE21, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE22, 0x4063D020, 0x40646A20,
-	// Block 450, offset 0x7080
-	0x00000003, 0x4062BE23, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE24,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE26, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE27,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE29, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE2C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE2F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE30,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE31, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE32, 0x4063D020, 0x40646A20,
-	// Block 451, offset 0x70c0
-	0x00000003, 0x4062BE33, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE34,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE36, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE37,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE38, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE39, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE3C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE3F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE40,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062BE41, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062BE21, 0x4063D020, 0x40647220,
-	// Block 452, offset 0x7100
-	0x00000003, 0x4062BE22, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE23,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062BE25, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE26,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062BE21, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE22, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE23,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE25, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE26,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE27, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE28, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE29,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE2B, 0x4063D020, 0x40648220,
-	// Block 453, offset 0x7140
-	0x00000003, 0x4062BE2C, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE2D,
-	0x4063D020, 0x40648220, 0x00000003, 0x4062BE2E, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062BE2F, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE21,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062BE22, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062BE23, 0x4063D020, 0x40648420, 0x00000003, 0x4062C021,
-	0x4063A820, 0x40648C20, 0x00000002, 0x4062C021, 0x4063D020, 0x00000002,
-	0x4062C221, 0x4063A820, 0x00000002, 0x4062C222, 0x4063A820, 0x00000002,
-	0x4062C223, 0x4063A820, 0x00000002, 0x4062C224, 0x4063A820, 0x00000002,
-	0x4062C225, 0x4063A820, 0x00000002, 0x4062C226, 0x4063A820, 0x00000002,
-	0x4062C227, 0x4063A820, 0x00000002, 0x4062C228, 0x4063A820, 0x00000002,
-	0x4062C229, 0x4063A820, 0x00000002, 0x4062C22A,
-	// Block 454, offset 0x7180
-	0x4063A820, 0x00000002, 0x4062C22B, 0x4063A820, 0x00000002, 0x4062C22C,
-	0x4063A820, 0x00000002, 0x4062C22D, 0x4063A820, 0x00000002, 0x4062C22E,
-	0x4063A820, 0x00000002, 0x4062C22F, 0x4063A820, 0x00000002, 0x4062C230,
-	0x4063A820, 0x00000002, 0x4062C231, 0x4063A820, 0x00000002, 0x4062C232,
-	0x4063A820, 0x00000002, 0x4062C233, 0x4063A820, 0x00000002, 0x4062C234,
-	0x4063A820, 0x00000002, 0x4062C235, 0x4063A820, 0x00000002, 0x4062C236,
-	0x4063A820, 0x00000002, 0x4062C237, 0x4063A820, 0x00000002, 0x4062C238,
-	0x4063A820, 0x00000002, 0x4062C239, 0x4063A820, 0x00000002, 0x4062C23A,
-	0x4063A820, 0x00000002, 0x4062C23B, 0x4063A820, 0x00000002, 0x4062C23C,
-	0x4063A820, 0x00000002, 0x4062C23D, 0x4063A820, 0x00000003, 0x4062C221,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C222,
-	// Block 455, offset 0x71c0
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C223, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40646420, 0x00000003, 0x4062C225,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C226, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C227, 0x4063A820, 0x40646420, 0x00000003, 0x4062C228,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C229, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C22A, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22B,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C22C, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C22D, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22E,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C22F, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C230, 0x4063A820, 0x40646420, 0x00000003, 0x4062C231,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C232,
-	// Block 456, offset 0x7200
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C233, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C234, 0x4063A820, 0x40646420, 0x00000003, 0x4062C235,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C236, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C237, 0x4063A820, 0x40646420, 0x00000003, 0x4062C238,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C239, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C221, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C222,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C223, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C225,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C226, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C227, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C228,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C229,
-	// Block 457, offset 0x7240
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C22B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C22C,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C22D, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C22E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C221,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C222, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C223, 0x4063A820, 0x40647220, 0x00000003, 0x4062C224,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C225, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C226, 0x4063A820, 0x40647220, 0x00000003, 0x4062C227,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C228, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C229, 0x4063A820, 0x40647220, 0x00000003, 0x4062C22A,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C22B,
-	// Block 458, offset 0x7280
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C22C, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C221, 0x4063A820, 0x40648220, 0x00000003, 0x4062C222,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C223, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40648220, 0x00000003, 0x4062C225,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C226, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C227, 0x4063A820, 0x40648220, 0x00000003, 0x4062C228,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C229, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C22A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22B,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C22C, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C22D, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22E,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C22F,
-	// Block 459, offset 0x72c0
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C230, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C231, 0x4063A820, 0x40648220, 0x00000003, 0x4062C232,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C233, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C221, 0x4063A820, 0x40648420, 0x00000003, 0x4062C222,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062C223, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062C224, 0x4063A820, 0x40648420, 0x00000003, 0x4062C221,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C222, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C223, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C224,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C225, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C226, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C227,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C228,
-	// Block 460, offset 0x7300
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C229, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C22A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C22B,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C22C, 0x4063A820, 0x40648C20,
-	0x00000002, 0x4062C221, 0x4063AA20, 0x00000002, 0x4062C222, 0x4063AA20,
-	0x00000002, 0x4062C223, 0x4063AA20, 0x00000002, 0x4062C224, 0x4063AA20,
-	0x00000002, 0x4062C225, 0x4063AA20, 0x00000002, 0x4062C226, 0x4063AA20,
-	0x00000002, 0x4062C227, 0x4063AA20, 0x00000002, 0x4062C228, 0x4063AA20,
-	0x00000002, 0x4062C229, 0x4063AA20, 0x00000002, 0x4062C22A, 0x4063AA20,
-	0x00000002, 0x4062C22B, 0x4063AA20, 0x00000002, 0x4062C22C, 0x4063AA20,
-	0x00000002, 0x4062C22D, 0x4063AA20, 0x00000002, 0x4062C22E, 0x4063AA20,
-	0x00000002, 0x4062C22F, 0x4063AA20, 0x00000002,
-	// Block 461, offset 0x7340
-	0x4062C230, 0x4063AA20, 0x00000002, 0x4062C231, 0x4063AA20, 0x00000002,
-	0x4062C232, 0x4063AA20, 0x00000002, 0x4062C233, 0x4063AA20, 0x00000002,
-	0x4062C234, 0x4063AA20, 0x00000002, 0x4062C235, 0x4063AA20, 0x00000002,
-	0x4062C236, 0x4063AA20, 0x00000002, 0x4062C237, 0x4063AA20, 0x00000002,
-	0x4062C238, 0x4063AA20, 0x00000002, 0x4062C239, 0x4063AA20, 0x00000002,
-	0x4062C23A, 0x4063AA20, 0x00000002, 0x4062C23B, 0x4063AA20, 0x00000002,
-	0x4062C23C, 0x4063AA20, 0x00000002, 0x4062C23D, 0x4063AA20, 0x00000002,
-	0x4062C23E, 0x4063AA20, 0x00000002, 0x4062C23F, 0x4063AA20, 0x00000003,
-	0x4062C221, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C222, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062C224, 0x4063AA20, 0x40646420, 0x00000003,
-	// Block 462, offset 0x7380
-	0x4062C225, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C226, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062C227, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062C228, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C229, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062C22A, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062C22B, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C221, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062C225, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062C226, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C227, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062C228, 0x4063AA20, 0x40648C20, 0x00000002,
-	0x4062C221, 0x4063AC20, 0x00000002, 0x4062C222,
-	// Block 463, offset 0x73c0
-	0x4063AC20, 0x00000002, 0x4062C223, 0x4063AC20, 0x00000002, 0x4062C224,
-	0x4063AC20, 0x00000002, 0x4062C225, 0x4063AC20, 0x00000002, 0x4062C226,
-	0x4063AC20, 0x00000002, 0x4062C227, 0x4063AC20, 0x00000002, 0x4062C228,
-	0x4063AC20, 0x00000002, 0x4062C229, 0x4063AC20, 0x00000002, 0x4062C22A,
-	0x4063AC20, 0x00000002, 0x4062C22B, 0x4063AC20, 0x00000003, 0x4062C221,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C222, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C223, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C224,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C225, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C226, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C227,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C228, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C229, 0x4063AC20, 0x40646420,
-	// Block 464, offset 0x7400
-	0x00000003, 0x4062C22A, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22B,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C22C, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C22D, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22E,
-	0x4063AC20, 0x40646420, 0x00000003, 0x4062C22F, 0x4063AC20, 0x40646420,
-	0x00000003, 0x4062C221, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C222,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C223, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C224, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C225,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C226, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C227, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C228,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C229, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C22A, 0x4063AC20, 0x40648C20,
-	// Block 465, offset 0x7440
-	0x00000003, 0x4062C22B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22C,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C22E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22F,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C230, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C231, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C232,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C233, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C234, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C235,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C236, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C237, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C238,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C239, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C23A, 0x4063AC20, 0x40648C20,
-	// Block 466, offset 0x7480
-	0x00000003, 0x4062C23B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23C,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C23E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23F,
-	0x4063AC20, 0x40648C20, 0x00000003, 0x4062C240, 0x4063AC20, 0x40648C20,
-	0x00000003, 0x4062C241, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C242,
-	0x4063AC20, 0x40648C20, 0x00000002, 0x4062C221, 0x4063B020, 0x00000002,
-	0x4062C222, 0x4063B020, 0x00000002, 0x4062C223, 0x4063B020, 0x00000002,
-	0x4062C224, 0x4063B020, 0x00000002, 0x4062C225, 0x4063B020, 0x00000002,
-	0x4062C226, 0x4063B020, 0x00000002, 0x4062C227, 0x4063B020, 0x00000002,
-	0x4062C228, 0x4063B020, 0x00000002, 0x4062C229, 0x4063B020, 0x00000002,
-	0x4062C22A, 0x4063B020, 0x00000002, 0x4062C22B,
-	// Block 467, offset 0x74c0
-	0x4063B020, 0x00000002, 0x4062C22C, 0x4063B020, 0x00000002, 0x4062C22D,
-	0x4063B020, 0x00000002, 0x4062C22E, 0x4063B020, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C222, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40646420, 0x00000003, 0x4062C224,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C225, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C226, 0x4063B020, 0x40646420, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C222, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C224,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C225, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C226, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C227,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C228,
-	// Block 468, offset 0x7500
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C229, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C22A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C22B,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C22C, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C22D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C222, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40647220, 0x00000003, 0x4062C221,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C222, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C223, 0x4063B020, 0x40648220, 0x00000003, 0x4062C224,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C225, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C226, 0x4063B020, 0x40648220, 0x00000003, 0x4062C227,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C228,
-	// Block 469, offset 0x7540
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C229, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C22A, 0x4063B020, 0x40648220, 0x00000003, 0x4062C22B,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C22C, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C221, 0x4063B020, 0x40648420, 0x00000003, 0x4062C222,
-	0x4063B020, 0x40648420, 0x00000003, 0x4062C223, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C224, 0x4063B020, 0x40648420, 0x00000002, 0x4062C221,
-	0x4063B220, 0x00000002, 0x4062C222, 0x4063B220, 0x00000003, 0x4062C221,
-	0x4063B220, 0x40646A20, 0x00000002, 0x4062C221, 0x4063B420, 0x00000002,
-	0x4062C222, 0x4063B420, 0x00000002, 0x4062C223, 0x4063B420, 0x00000002,
-	0x4062C224, 0x4063B420, 0x00000002, 0x4062C225, 0x4063B420, 0x00000002,
-	0x4062C226, 0x4063B420, 0x00000002, 0x4062C227,
-	// Block 470, offset 0x7580
-	0x4063B420, 0x00000002, 0x4062C228, 0x4063B420, 0x00000002, 0x4062C229,
-	0x4063B420, 0x00000002, 0x4062C22A, 0x4063B420, 0x00000002, 0x4062C22B,
-	0x4063B420, 0x00000002, 0x4062C22C, 0x4063B420, 0x00000002, 0x4062C22D,
-	0x4063B420, 0x00000002, 0x4062C22E, 0x4063B420, 0x00000003, 0x4062C221,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C222, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C223, 0x4063B420, 0x40646420, 0x00000003, 0x4062C224,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C225, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C226, 0x4063B420, 0x40646420, 0x00000003, 0x4062C227,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C228, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C229, 0x4063B420, 0x40646420, 0x00000003, 0x4062C22A,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C22B,
-	// Block 471, offset 0x75c0
-	0x4063B420, 0x40646420, 0x00000003, 0x4062C22C, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062C22D, 0x4063B420, 0x40646420, 0x00000003, 0x4062C221,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C222, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C223, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C224,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C225, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C226, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C227,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C228, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C229, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C22C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C22E,
-	// Block 472, offset 0x7600
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C230, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C231,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C232, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C233, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C234,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C235, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C236, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C237,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C238, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C239, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C23C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C23E,
-	// Block 473, offset 0x7640
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C23F, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C240, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C241,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C242, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C243, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C244,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C245, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C246, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C247,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C248, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C249, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C24A,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062C24B, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062C24C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C221,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062C222,
-	// Block 474, offset 0x7680
-	0x4063B420, 0x40647220, 0x00000003, 0x4062C223, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062C224, 0x4063B420, 0x40647220, 0x00000003, 0x4062C225,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062C221, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C222, 0x4063B420, 0x40648220, 0x00000003, 0x4062C223,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C224, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C225, 0x4063B420, 0x40648220, 0x00000003, 0x4062C226,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C227, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C228, 0x4063B420, 0x40648220, 0x00000003, 0x4062C229,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C22A, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C22B, 0x4063B420, 0x40648220, 0x00000003, 0x4062C22C,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C22D,
-	// Block 475, offset 0x76c0
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C22E, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C22F, 0x4063B420, 0x40648220, 0x00000003, 0x4062C230,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C231, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C232, 0x4063B420, 0x40648220, 0x00000003, 0x4062C233,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C234, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062C235, 0x4063B420, 0x40648220, 0x00000003, 0x4062C236,
-	0x4063B420, 0x40648220, 0x00000003, 0x4062C221, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062C222, 0x4063B420, 0x40648420, 0x00000003, 0x4062C223,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062C224, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062C225, 0x4063B420, 0x40648420, 0x00000003, 0x4062C226,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062C227,
-	// Block 476, offset 0x7700
-	0x4063B420, 0x40648420, 0x00000003, 0x4062C221, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C222, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C223,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C224, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C225, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C226,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C227, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C228, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C229,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C22B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C22C,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C22E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C22F,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C230,
-	// Block 477, offset 0x7740
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C231, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C232, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C233,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C234, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C235, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C236,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C237, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C238, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C239,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C23A, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C23B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C23C,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C23E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C23F,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C240,
-	// Block 478, offset 0x7780
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C241, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C242, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C243,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C244, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062C245, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C246,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062C247, 0x4063B420, 0x40648C20,
-	0x00000002, 0x4062C221, 0x4063B620, 0x00000002, 0x4062C222, 0x4063B620,
-	0x00000002, 0x4062C223, 0x4063B620, 0x00000002, 0x4062C224, 0x4063B620,
-	0x00000002, 0x4062C225, 0x4063B620, 0x00000002, 0x4062C226, 0x4063B620,
-	0x00000002, 0x4062C227, 0x4063B620, 0x00000002, 0x4062C228, 0x4063B620,
-	0x00000002, 0x4062C229, 0x4063B620, 0x00000002, 0x4062C22A, 0x4063B620,
-	0x00000002, 0x4062C22B, 0x4063B620, 0x00000002,
-	// Block 479, offset 0x77c0
-	0x4062C22C, 0x4063B620, 0x00000002, 0x4062C22D, 0x4063B620, 0x00000002,
-	0x4062C22E, 0x4063B620, 0x00000002, 0x4062C22F, 0x4063B620, 0x00000002,
-	0x4062C230, 0x4063B620, 0x00000002, 0x4062C231, 0x4063B620, 0x00000002,
-	0x4062C232, 0x4063B620, 0x00000002, 0x4062C233, 0x4063B620, 0x00000002,
-	0x4062C234, 0x4063B620, 0x00000002, 0x4062C235, 0x4063B620, 0x00000002,
-	0x4062C236, 0x4063B620, 0x00000002, 0x4062C237, 0x4063B620, 0x00000002,
-	0x4062C238, 0x4063B620, 0x00000002, 0x4062C239, 0x4063B620, 0x00000002,
-	0x4062C23A, 0x4063B620, 0x00000002, 0x4062C23B, 0x4063B620, 0x00000002,
-	0x4062C23C, 0x4063B620, 0x00000002, 0x4062C23D, 0x4063B620, 0x00000002,
-	0x4062C23E, 0x4063B620, 0x00000002, 0x4062C23F, 0x4063B620, 0x00000002,
-	0x4062C240, 0x4063B620, 0x00000002, 0x4062C241,
-	// Block 480, offset 0x7800
-	0x4063B620, 0x00000002, 0x4062C242, 0x4063B620, 0x00000002, 0x4062C243,
-	0x4063B620, 0x00000002, 0x4062C244, 0x4063B620, 0x00000002, 0x4062C245,
-	0x4063B620, 0x00000002, 0x4062C246, 0x4063B620, 0x00000002, 0x4062C247,
-	0x4063B620, 0x00000002, 0x4062C221, 0x4063B820, 0x00000002, 0x4062C222,
-	0x4063B820, 0x00000002, 0x4062C223, 0x4063B820, 0x00000002, 0x4062C224,
-	0x4063B820, 0x00000002, 0x4062C225, 0x4063B820, 0x00000002, 0x4062C226,
-	0x4063B820, 0x00000002, 0x4062C227, 0x4063B820, 0x00000002, 0x4062C228,
-	0x4063B820, 0x00000002, 0x4062C229, 0x4063B820, 0x00000002, 0x4062C22A,
-	0x4063B820, 0x00000002, 0x4062C22B, 0x4063B820, 0x00000002, 0x4062C22C,
-	0x4063B820, 0x00000002, 0x4062C22D, 0x4063B820, 0x00000002, 0x4062C22E,
-	0x4063B820, 0x00000002, 0x4062C22F, 0x4063B820,
-	// Block 481, offset 0x7840
-	0x00000002, 0x4062C230, 0x4063B820, 0x00000002, 0x4062C231, 0x4063B820,
-	0x00000002, 0x4062C232, 0x4063B820, 0x00000002, 0x4062C233, 0x4063B820,
-	0x00000002, 0x4062C234, 0x4063B820, 0x00000002, 0x4062C235, 0x4063B820,
-	0x00000002, 0x4062C236, 0x4063B820, 0x00000002, 0x4062C237, 0x4063B820,
-	0x00000002, 0x4062C238, 0x4063B820, 0x00000002, 0x4062C239, 0x4063B820,
-	0x00000002, 0x4062C23A, 0x4063B820, 0x00000002, 0x4062C23B, 0x4063B820,
-	0x00000002, 0x4062C23C, 0x4063B820, 0x00000002, 0x4062C23D, 0x4063B820,
-	0x00000002, 0x4062C23E, 0x4063B820, 0x00000002, 0x4062C23F, 0x4063B820,
-	0x00000002, 0x4062C240, 0x4063B820, 0x00000002, 0x4062C241, 0x4063B820,
-	0x00000002, 0x4062C242, 0x4063B820, 0x00000002, 0x4062C243, 0x4063B820,
-	0x00000002, 0x4062C244, 0x4063B820, 0x00000002,
-	// Block 482, offset 0x7880
-	0x4062C245, 0x4063B820, 0x00000002, 0x4062C246, 0x4063B820, 0x00000002,
-	0x4062C247, 0x4063B820, 0x00000002, 0x4062C248, 0x4063B820, 0x00000002,
-	0x4062C249, 0x4063B820, 0x00000002, 0x4062C24A, 0x4063B820, 0x00000002,
-	0x4062C24B, 0x4063B820, 0x00000002, 0x4062C24C, 0x4063B820, 0x00000002,
-	0x4062C24D, 0x4063B820, 0x00000002, 0x4062C24E, 0x4063B820, 0x00000002,
-	0x4062C24F, 0x4063B820, 0x00000002, 0x4062C250, 0x4063B820, 0x00000002,
-	0x4062C251, 0x4063B820, 0x00000002, 0x4062C252, 0x4063B820, 0x00000002,
-	0x4062C253, 0x4063B820, 0x00000002, 0x4062C254, 0x4063B820, 0x00000002,
-	0x4062C255, 0x4063B820, 0x00000002, 0x4062C256, 0x4063B820, 0x00000003,
-	0x4062C221, 0x4063B820, 0x40646420, 0x00000003, 0x4062C222, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063B820,
-	// Block 483, offset 0x78c0
-	0x40646420, 0x00000003, 0x4062C224, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C225, 0x4063B820, 0x40646420, 0x00000003, 0x4062C221, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C222, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C223, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C224, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C225, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C226, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C227, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C228, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C229, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C22B, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C22C, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22D, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C22E, 0x4063B820,
-	// Block 484, offset 0x7900
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C230, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C231, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063B820, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063B820, 0x40647220, 0x00000003, 0x4062C223, 0x4063B820,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C222, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C223, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C224, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C225, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C226, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C227, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C228, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C229, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C22A, 0x4063B820,
-	// Block 485, offset 0x7940
-	0x40648C20, 0x00000003, 0x4062C22B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C22C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C22E, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C22F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C230, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C231, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C232, 0x4063B820, 0x40648C20, 0x00000002, 0x4062C221, 0x4063BA20,
-	0x00000002, 0x4062C222, 0x4063BA20, 0x00000002, 0x4062C223, 0x4063BA20,
-	0x00000002, 0x4062C224, 0x4063BA20, 0x00000002, 0x4062C225, 0x4063BA20,
-	0x00000002, 0x4062C226, 0x4063BA20, 0x00000002, 0x4062C227, 0x4063BA20,
-	0x00000002, 0x4062C228, 0x4063BA20, 0x00000002, 0x4062C229, 0x4063BA20,
-	0x00000002, 0x4062C22A, 0x4063BA20, 0x00000002,
-	// Block 486, offset 0x7980
-	0x4062C22B, 0x4063BA20, 0x00000002, 0x4062C22C, 0x4063BA20, 0x00000002,
-	0x4062C22D, 0x4063BA20, 0x00000002, 0x4062C22E, 0x4063BA20, 0x00000002,
-	0x4062C22F, 0x4063BA20, 0x00000002, 0x4062C230, 0x4063BA20, 0x00000002,
-	0x4062C231, 0x4063BA20, 0x00000003, 0x4062C221, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C222, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C223,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C224, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C225, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C226,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C227, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C228, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C229,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C22B, 0x4063BA20, 0x40646A20,
-	// Block 487, offset 0x79c0
-	0x00000003, 0x4062C22C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22D,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C22F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C230,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C231, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C232, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C233,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C234, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C235, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C236,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C237, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C238, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C239,
-	0x4063BA20, 0x40646A20, 0x00000003, 0x4062C23A, 0x4063BA20, 0x40646A20,
-	0x00000003, 0x4062C221, 0x4063BA20, 0x40647220,
-	// Block 488, offset 0x7a00
-	0x00000003, 0x4062C221, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C222,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062C223, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062C224, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C225,
-	0x4063BA20, 0x40648C20, 0x00000003, 0x4062C226, 0x4063BA20, 0x40648C20,
-	0x00000003, 0x4062C227, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C228,
-	0x4063BA20, 0x40648C20, 0x00000002, 0x4062C221, 0x4063BC20, 0x00000002,
-	0x4062C222, 0x4063BC20, 0x00000002, 0x4062C223, 0x4063BC20, 0x00000002,
-	0x4062C224, 0x4063BC20, 0x00000002, 0x4062C225, 0x4063BC20, 0x00000002,
-	0x4062C221, 0x4063BE20, 0x00000002, 0x4062C222, 0x4063BE20, 0x00000002,
-	0x4062C223, 0x4063BE20, 0x00000002, 0x4062C224, 0x4063BE20, 0x00000002,
-	0x4062C225, 0x4063BE20, 0x00000002, 0x4062C226,
-	// Block 489, offset 0x7a40
-	0x4063BE20, 0x00000002, 0x4062C227, 0x4063BE20, 0x00000002, 0x4062C228,
-	0x4063BE20, 0x00000002, 0x4062C229, 0x4063BE20, 0x00000002, 0x4062C22A,
-	0x4063BE20, 0x00000002, 0x4062C22B, 0x4063BE20, 0x00000002, 0x4062C22C,
-	0x4063BE20, 0x00000002, 0x4062C22D, 0x4063BE20, 0x00000002, 0x4062C22E,
-	0x4063BE20, 0x00000002, 0x4062C221, 0x4063C020, 0x00000002, 0x4062C222,
-	0x4063C020, 0x00000002, 0x4062C223, 0x4063C020, 0x00000002, 0x4062C224,
-	0x4063C020, 0x00000002, 0x4062C225, 0x4063C020, 0x00000002, 0x4062C226,
-	0x4063C020, 0x00000002, 0x4062C227, 0x4063C020, 0x00000002, 0x4062C228,
-	0x4063C020, 0x00000002, 0x4062C229, 0x4063C020, 0x00000002, 0x4062C22A,
-	0x4063C020, 0x00000002, 0x4062C22B, 0x4063C020, 0x00000002, 0x4062C22C,
-	0x4063C020, 0x00000002, 0x4062C22D, 0x4063C020,
-	// Block 490, offset 0x7a80
-	0x00000002, 0x4062C22E, 0x4063C020, 0x00000002, 0x4062C22F, 0x4063C020,
-	0x00000002, 0x4062C230, 0x4063C020, 0x00000002, 0x4062C231, 0x4063C020,
-	0x00000002, 0x4062C232, 0x4063C020, 0x00000002, 0x4062C233, 0x4063C020,
-	0x00000002, 0x4062C234, 0x4063C020, 0x00000002, 0x4062C235, 0x4063C020,
-	0x00000002, 0x4062C236, 0x4063C020, 0x00000002, 0x4062C237, 0x4063C020,
-	0x00000002, 0x4062C238, 0x4063C020, 0x00000002, 0x4062C239, 0x4063C020,
-	0x00000002, 0x4062C23A, 0x4063C020, 0x00000002, 0x4062C23B, 0x4063C020,
-	0x00000002, 0x4062C23C, 0x4063C020, 0x00000002, 0x4062C23D, 0x4063C020,
-	0x00000002, 0x4062C23E, 0x4063C020, 0x00000002, 0x4062C23F, 0x4063C020,
-	0x00000002, 0x4062C240, 0x4063C020, 0x00000002, 0x4062C241, 0x4063C020,
-	0x00000002, 0x4062C242, 0x4063C020, 0x00000002,
-	// Block 491, offset 0x7ac0
-	0x4062C243, 0x4063C020, 0x00000002, 0x4062C244, 0x4063C020, 0x00000002,
-	0x4062C245, 0x4063C020, 0x00000002, 0x4062C246, 0x4063C020, 0x00000002,
-	0x4062C247, 0x4063C020, 0x00000002, 0x4062C248, 0x4063C020, 0x00000002,
-	0x4062C249, 0x4063C020, 0x00000002, 0x4062C24A, 0x4063C020, 0x00000002,
-	0x4062C24B, 0x4063C020, 0x00000002, 0x4062C24C, 0x4063C020, 0x00000003,
-	0x4062C221, 0x4063C020, 0x40646420, 0x00000003, 0x4062C222, 0x4063C020,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063C020, 0x40646420, 0x00000003,
-	0x4062C224, 0x4063C020, 0x40646420, 0x00000003, 0x4062C225, 0x4063C020,
-	0x40646420, 0x00000003, 0x4062C226, 0x4063C020, 0x40646420, 0x00000003,
-	0x4062C227, 0x4063C020, 0x40646420, 0x00000003, 0x4062C228, 0x4063C020,
-	0x40646420, 0x00000003, 0x4062C221, 0x4063C020,
-	// Block 492, offset 0x7b00
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C224, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C225, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C226, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C227, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C228, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C229, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C22B, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C22C, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C22E, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C22F, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C230, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C231, 0x4063C020,
-	// Block 493, offset 0x7b40
-	0x40648C20, 0x00000003, 0x4062C232, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C233, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C234, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C235, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C236, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C237, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C238, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C239, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23A, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C23B, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C23C, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C23E, 0x4063C020, 0x40648C20, 0x00000003,
-	0x4062C23F, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C240, 0x4063C020,
-	0x40648C20, 0x00000003, 0x4062C241, 0x4063C020,
-	// Block 494, offset 0x7b80
-	0x40648C20, 0x00000002, 0x4062C221, 0x4063C220, 0x00000002, 0x4062C222,
-	0x4063C220, 0x00000002, 0x4062C223, 0x4063C220, 0x00000002, 0x4062C224,
-	0x4063C220, 0x00000002, 0x4062C225, 0x4063C220, 0x00000002, 0x4062C226,
-	0x4063C220, 0x00000002, 0x4062C227, 0x4063C220, 0x00000002, 0x4062C228,
-	0x4063C220, 0x00000002, 0x4062C229, 0x4063C220, 0x00000002, 0x4062C22A,
-	0x4063C220, 0x00000002, 0x4062C22B, 0x4063C220, 0x00000002, 0x4062C22C,
-	0x4063C220, 0x00000002, 0x4062C22D, 0x4063C220, 0x00000002, 0x4062C22E,
-	0x4063C220, 0x00000002, 0x4062C22F, 0x4063C220, 0x00000002, 0x4062C230,
-	0x4063C220, 0x00000002, 0x4062C231, 0x4063C220, 0x00000002, 0x4062C232,
-	0x4063C220, 0x00000002, 0x4062C233, 0x4063C220, 0x00000002, 0x4062C234,
-	0x4063C220, 0x00000002, 0x4062C235, 0x4063C220,
-	// Block 495, offset 0x7bc0
-	0x00000002, 0x4062C236, 0x4063C220, 0x00000002, 0x4062C237, 0x4063C220,
-	0x00000002, 0x4062C238, 0x4063C220, 0x00000002, 0x4062C239, 0x4063C220,
-	0x00000002, 0x4062C23A, 0x4063C220, 0x00000002, 0x4062C23B, 0x4063C220,
-	0x00000002, 0x4062C23C, 0x4063C220, 0x00000002, 0x4062C23D, 0x4063C220,
-	0x00000002, 0x4062C23E, 0x4063C220, 0x00000002, 0x4062C23F, 0x4063C220,
-	0x00000002, 0x4062C240, 0x4063C220, 0x00000002, 0x4062C241, 0x4063C220,
-	0x00000002, 0x4062C242, 0x4063C220, 0x00000002, 0x4062C243, 0x4063C220,
-	0x00000002, 0x4062C244, 0x4063C220, 0x00000002, 0x4062C245, 0x4063C220,
-	0x00000002, 0x4062C246, 0x4063C220, 0x00000002, 0x4062C247, 0x4063C220,
-	0x00000002, 0x4062C248, 0x4063C220, 0x00000002, 0x4062C249, 0x4063C220,
-	0x00000002, 0x4062C24A, 0x4063C220, 0x00000002,
-	// Block 496, offset 0x7c00
-	0x4062C24B, 0x4063C220, 0x00000002, 0x4062C24C, 0x4063C220, 0x00000002,
-	0x4062C24D, 0x4063C220, 0x00000002, 0x4062C24E, 0x4063C220, 0x00000002,
-	0x4062C24F, 0x4063C220, 0x00000002, 0x4062C250, 0x4063C220, 0x00000002,
-	0x4062C251, 0x4063C220, 0x00000002, 0x4062C252, 0x4063C220, 0x00000002,
-	0x4062C253, 0x4063C220, 0x00000002, 0x4062C254, 0x4063C220, 0x00000003,
-	0x4062C221, 0x4063C220, 0x40646420, 0x00000003, 0x4062C222, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C223, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C224, 0x4063C220, 0x40646420, 0x00000003, 0x4062C225, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C226, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C227, 0x4063C220, 0x40646420, 0x00000003, 0x4062C228, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C229, 0x4063C220,
-	// Block 497, offset 0x7c40
-	0x40646420, 0x00000003, 0x4062C22A, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C221, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C222, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C223, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C224, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C225, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C226, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C227, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C228, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C22D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063C220,
-	// Block 498, offset 0x7c80
-	0x40646A20, 0x00000003, 0x4062C230, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062C231, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C232, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063C220, 0x40647220, 0x00000003, 0x4062C223, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062C222, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C221, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C222, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C223, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C224, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C225, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C226, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C227, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C228, 0x4063C420,
-	// Block 499, offset 0x7cc0
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C22D, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C230, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C231, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C232, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C233, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C234, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C235, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C236, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C237, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C238, 0x4063C420,
-	// Block 500, offset 0x7d00
-	0x40646A20, 0x00000003, 0x4062C239, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C23A, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C23C, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C23D, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23E, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C23F, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C240, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C241, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C242, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C243, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C244, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C245, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062C246, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C247, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062C248, 0x4063C420,
-	// Block 501, offset 0x7d40
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063C420, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063C420, 0x40647220, 0x00000003, 0x4062C223, 0x4063C420,
-	0x40647220, 0x00000003, 0x4062C224, 0x4063C420, 0x40647220, 0x00000003,
-	0x4062C225, 0x4063C420, 0x40647220, 0x00000002, 0x4062C221, 0x4063C820,
-	0x00000002, 0x4062C222, 0x4063C820, 0x00000002, 0x4062C223, 0x4063C820,
-	0x00000002, 0x4062C224, 0x4063C820, 0x00000002, 0x4062C225, 0x4063C820,
-	0x00000002, 0x4062C226, 0x4063C820, 0x00000002, 0x4062C227, 0x4063C820,
-	0x00000002, 0x4062C228, 0x4063C820, 0x00000002, 0x4062C229, 0x4063C820,
-	0x00000002, 0x4062C22A, 0x4063C820, 0x00000002, 0x4062C22B, 0x4063C820,
-	0x00000002, 0x4062C22C, 0x4063C820, 0x00000002, 0x4062C22D, 0x4063C820,
-	0x00000002, 0x4062C22E, 0x4063C820, 0x00000002,
-	// Block 502, offset 0x7d80
-	0x4062C22F, 0x4063C820, 0x00000002, 0x4062C230, 0x4063C820, 0x00000002,
-	0x4062C231, 0x4063C820, 0x00000002, 0x4062C232, 0x4063C820, 0x00000002,
-	0x4062C233, 0x4063C820, 0x00000002, 0x4062C234, 0x4063C820, 0x00000002,
-	0x4062C235, 0x4063C820, 0x00000002, 0x4062C236, 0x4063C820, 0x00000002,
-	0x4062C237, 0x4063C820, 0x00000002, 0x4062C238, 0x4063C820, 0x00000002,
-	0x4062C239, 0x4063C820, 0x00000002, 0x4062C23A, 0x4063C820, 0x00000002,
-	0x4062C23B, 0x4063C820, 0x00000002, 0x4062C23C, 0x4063C820, 0x00000002,
-	0x4062C23D, 0x4063C820, 0x00000002, 0x4062C23E, 0x4063C820, 0x00000002,
-	0x4062C23F, 0x4063C820, 0x00000002, 0x4062C240, 0x4063C820, 0x00000002,
-	0x4062C241, 0x4063C820, 0x00000002, 0x4062C242, 0x4063C820, 0x00000002,
-	0x4062C243, 0x4063C820, 0x00000002, 0x4062C244,
-	// Block 503, offset 0x7dc0
-	0x4063C820, 0x00000002, 0x4062C245, 0x4063C820, 0x00000002, 0x4062C246,
-	0x4063C820, 0x00000002, 0x4062C247, 0x4063C820, 0x00000002, 0x4062C221,
-	0x4063CA20, 0x00000002, 0x4062C222, 0x4063CA20, 0x00000002, 0x4062C223,
-	0x4063CA20, 0x00000002, 0x4062C224, 0x4063CA20, 0x00000002, 0x4062C225,
-	0x4063CA20, 0x00000002, 0x4062C226, 0x4063CA20, 0x00000002, 0x4062C227,
-	0x4063CA20, 0x00000002, 0x4062C228, 0x4063CA20, 0x00000002, 0x4062C229,
-	0x4063CA20, 0x00000002, 0x4062C22A, 0x4063CA20, 0x00000002, 0x4062C22B,
-	0x4063CA20, 0x00000002, 0x4062C22C, 0x4063CA20, 0x00000002, 0x4062C22D,
-	0x4063CA20, 0x00000002, 0x4062C22E, 0x4063CA20, 0x00000002, 0x4062C22F,
-	0x4063CA20, 0x00000002, 0x4062C230, 0x4063CA20, 0x00000002, 0x4062C231,
-	0x4063CA20, 0x00000002, 0x4062C232, 0x4063CA20,
-	// Block 504, offset 0x7e00
-	0x00000002, 0x4062C233, 0x4063CA20, 0x00000002, 0x4062C234, 0x4063CA20,
-	0x00000002, 0x4062C235, 0x4063CA20, 0x00000002, 0x4062C236, 0x4063CA20,
-	0x00000002, 0x4062C237, 0x4063CA20, 0x00000002, 0x4062C238, 0x4063CA20,
-	0x00000002, 0x4062C239, 0x4063CA20, 0x00000002, 0x4062C23A, 0x4063CA20,
-	0x00000002, 0x4062C23B, 0x4063CA20, 0x00000002, 0x4062C23C, 0x4063CA20,
-	0x00000002, 0x4062C23D, 0x4063CA20, 0x00000002, 0x4062C23E, 0x4063CA20,
-	0x00000002, 0x4062C23F, 0x4063CA20, 0x00000002, 0x4062C240, 0x4063CA20,
-	0x00000002, 0x4062C241, 0x4063CA20, 0x00000002, 0x4062C242, 0x4063CA20,
-	0x00000002, 0x4062C243, 0x4063CA20, 0x00000002, 0x4062C244, 0x4063CA20,
-	0x00000002, 0x4062C245, 0x4063CA20, 0x00000002, 0x4062C246, 0x4063CA20,
-	0x00000002, 0x4062C247, 0x4063CA20, 0x00000002,
-	// Block 505, offset 0x7e40
-	0x4062C248, 0x4063CA20, 0x00000002, 0x4062C249, 0x4063CA20, 0x00000002,
-	0x4062C24A, 0x4063CA20, 0x00000002, 0x4062C24B, 0x4063CA20, 0x00000002,
-	0x4062C24C, 0x4063CA20, 0x00000002, 0x4062C24D, 0x4063CA20, 0x00000002,
-	0x4062C24E, 0x4063CA20, 0x00000002, 0x4062C24F, 0x4063CA20, 0x00000002,
-	0x4062C250, 0x4063CA20, 0x00000002, 0x4062C251, 0x4063CA20, 0x00000002,
-	0x4062C252, 0x4063CA20, 0x00000002, 0x4062C253, 0x4063CA20, 0x00000002,
-	0x4062C254, 0x4063CA20, 0x00000002, 0x4062C255, 0x4063CA20, 0x00000002,
-	0x4062C256, 0x4063CA20, 0x00000002, 0x4062C257, 0x4063CA20, 0x00000002,
-	0x4062C258, 0x4063CA20, 0x00000002, 0x4062C259, 0x4063CA20, 0x00000002,
-	0x4062C25A, 0x4063CA20, 0x00000002, 0x4062C25B, 0x4063CA20, 0x00000002,
-	0x4062C25C, 0x4063CA20, 0x00000002, 0x4062C25D,
-	// Block 506, offset 0x7e80
-	0x4063CA20, 0x00000002, 0x4062C25E, 0x4063CA20, 0x00000002, 0x4062C25F,
-	0x4063CA20, 0x00000002, 0x4062C260, 0x4063CA20, 0x00000002, 0x4062C261,
-	0x4063CA20, 0x00000002, 0x4062C262, 0x4063CA20, 0x00000002, 0x4062C263,
-	0x4063CA20, 0x00000002, 0x4062C264, 0x4063CA20, 0x00000002, 0x4062C265,
-	0x4063CA20, 0x00000002, 0x4062C266, 0x4063CA20, 0x00000002, 0x4062C267,
-	0x4063CA20, 0x00000002, 0x4062C268, 0x4063CA20, 0x00000002, 0x4062C269,
-	0x4063CA20, 0x00000002, 0x4062C26A, 0x4063CA20, 0x00000002, 0x4062C26B,
-	0x4063CA20, 0x00000002, 0x4062C26C, 0x4063CA20, 0x00000002, 0x4062C26D,
-	0x4063CA20, 0x00000003, 0x4062C221, 0x4063CA20, 0x40646420, 0x00000003,
-	0x4062C222, 0x4063CA20, 0x40646420, 0x00000003, 0x4062C223, 0x4063CA20,
-	0x40646420, 0x00000003, 0x4062C224, 0x4063CA20,
-	// Block 507, offset 0x7ec0
-	0x40646420, 0x00000003, 0x4062C225, 0x4063CA20, 0x40646420, 0x00000003,
-	0x4062C221, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C223, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062C224, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C226, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062C227, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C228, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063CA20, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063CA20,
-	0x40646A20, 0x00000003, 0x4062C221, 0x4063CA20, 0x40647220, 0x00000003,
-	0x4062C222, 0x4063CA20, 0x40647220, 0x00000003, 0x4062C223, 0x4063CA20,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063CA20,
-	// Block 508, offset 0x7f00
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063CA20, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063CA20,
-	0x40648C20, 0x00000003, 0x4062C225, 0x4063CA20, 0x40648C20, 0x00000003,
-	0x4062C221, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C223, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C224, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C226, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C227, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C228, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063CC20,
-	// Block 509, offset 0x7f40
-	0x40646A20, 0x00000003, 0x4062C22D, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C22E, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C230, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C231, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C232, 0x4063CC20,
-	0x40646A20, 0x00000003, 0x4062C233, 0x4063CC20, 0x40646A20, 0x00000003,
-	0x4062C234, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C221, 0x4063CC20,
-	0x40647220, 0x00000003, 0x4062C222, 0x4063CC20, 0x40647220, 0x00000003,
-	0x4062C221, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C222, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062C223, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062C224, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C225, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062C226, 0x4063CC20,
-	// Block 510, offset 0x7f80
-	0x40648220, 0x00000003, 0x4062C227, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062C228, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C229, 0x4063CC20,
-	0x40648220, 0x00000003, 0x4062C22A, 0x4063CC20, 0x40648220, 0x00000003,
-	0x4062C22B, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C221, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062C222, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062C223, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C224, 0x4063CC20,
-	0x40648420, 0x00000003, 0x4062C225, 0x4063CC20, 0x40648420, 0x00000003,
-	0x4062C226, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C221, 0x4063CC20,
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063CC20, 0x40648C20, 0x00000003,
-	0x4062C223, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063CC20,
-	0x40648C20, 0x00000002, 0x4062C221, 0x4063CE20,
-	// Block 511, offset 0x7fc0
-	0x00000002, 0x4062C222, 0x4063CE20, 0x00000002, 0x4062C223, 0x4063CE20,
-	0x00000002, 0x4062C224, 0x4063CE20, 0x00000002, 0x4062C225, 0x4063CE20,
-	0x00000002, 0x4062C226, 0x4063CE20, 0x00000002, 0x4062C227, 0x4063CE20,
-	0x00000002, 0x4062C228, 0x4063CE20, 0x00000002, 0x4062C229, 0x4063CE20,
-	0x00000002, 0x4062C22A, 0x4063CE20, 0x00000002, 0x4062C22B, 0x4063CE20,
-	0x00000002, 0x4062C22C, 0x4063CE20, 0x00000002, 0x4062C22D, 0x4063CE20,
-	0x00000002, 0x4062C22E, 0x4063CE20, 0x00000002, 0x4062C22F, 0x4063CE20,
-	0x00000002, 0x4062C230, 0x4063CE20, 0x00000002, 0x4062C231, 0x4063CE20,
-	0x00000002, 0x4062C232, 0x4063CE20, 0x00000002, 0x4062C233, 0x4063CE20,
-	0x00000002, 0x4062C234, 0x4063CE20, 0x00000002, 0x4062C235, 0x4063CE20,
-	0x00000002, 0x4062C236, 0x4063CE20, 0x00000002,
-	// Block 512, offset 0x8000
-	0x4062C237, 0x4063CE20, 0x00000002, 0x4062C238, 0x4063CE20, 0x00000002,
-	0x4062C239, 0x4063CE20, 0x00000002, 0x4062C23A, 0x4063CE20, 0x00000002,
-	0x4062C23B, 0x4063CE20, 0x00000002, 0x4062C23C, 0x4063CE20, 0x00000002,
-	0x4062C23D, 0x4063CE20, 0x00000002, 0x4062C221, 0x4063D020, 0x00000002,
-	0x4062C222, 0x4063D020, 0x00000002, 0x4062C223, 0x4063D020, 0x00000002,
-	0x4062C224, 0x4063D020, 0x00000002, 0x4062C225, 0x4063D020, 0x00000002,
-	0x4062C226, 0x4063D020, 0x00000002, 0x4062C227, 0x4063D020, 0x00000002,
-	0x4062C228, 0x4063D020, 0x00000002, 0x4062C229, 0x4063D020, 0x00000002,
-	0x4062C22A, 0x4063D020, 0x00000002, 0x4062C22B, 0x4063D020, 0x00000002,
-	0x4062C22C, 0x4063D020, 0x00000002, 0x4062C22D, 0x4063D020, 0x00000002,
-	0x4062C22E, 0x4063D020, 0x00000002, 0x4062C22F,
-	// Block 513, offset 0x8040
-	0x4063D020, 0x00000002, 0x4062C230, 0x4063D020, 0x00000002, 0x4062C231,
-	0x4063D020, 0x00000002, 0x4062C232, 0x4063D020, 0x00000002, 0x4062C233,
-	0x4063D020, 0x00000002, 0x4062C234, 0x4063D020, 0x00000002, 0x4062C235,
-	0x4063D020, 0x00000002, 0x4062C236, 0x4063D020, 0x00000002, 0x4062C237,
-	0x4063D020, 0x00000002, 0x4062C238, 0x4063D020, 0x00000002, 0x4062C239,
-	0x4063D020, 0x00000002, 0x4062C23A, 0x4063D020, 0x00000002, 0x4062C23B,
-	0x4063D020, 0x00000002, 0x4062C23C, 0x4063D020, 0x00000002, 0x4062C23D,
-	0x4063D020, 0x00000002, 0x4062C23E, 0x4063D020, 0x00000002, 0x4062C23F,
-	0x4063D020, 0x00000002, 0x4062C240, 0x4063D020, 0x00000002, 0x4062C241,
-	0x4063D020, 0x00000002, 0x4062C242, 0x4063D020, 0x00000002, 0x4062C243,
-	0x4063D020, 0x00000003, 0x4062C221, 0x4063D020,
-	// Block 514, offset 0x8080
-	0x40646420, 0x00000003, 0x4062C222, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40646420, 0x00000003, 0x4062C224, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C225, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C226, 0x4063D020, 0x40646420, 0x00000003, 0x4062C227, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C228, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C229, 0x4063D020, 0x40646420, 0x00000003, 0x4062C221, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C222, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C224, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C225, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C226, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C227, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C228, 0x4063D020,
-	// Block 515, offset 0x80c0
-	0x40646A20, 0x00000003, 0x4062C229, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C22A, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C22C, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C22D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C22F, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C230, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C231, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C232, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C233, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C234, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C235, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C236, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C237, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C238, 0x4063D020,
-	// Block 516, offset 0x8100
-	0x40646A20, 0x00000003, 0x4062C239, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C23A, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C23C, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C221, 0x4063D020, 0x40647220, 0x00000003, 0x4062C222, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C223, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C224, 0x4063D020, 0x40647220, 0x00000003, 0x4062C225, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C226, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C227, 0x4063D020, 0x40647220, 0x00000003, 0x4062C228, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C229, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C22A, 0x4063D020, 0x40647220, 0x00000003, 0x4062C22B, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C221, 0x4063D020,
-	// Block 517, offset 0x8140
-	0x40648220, 0x00000003, 0x4062C222, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40648220, 0x00000003, 0x4062C224, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C225, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C226, 0x4063D020, 0x40648220, 0x00000003, 0x4062C227, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C228, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C229, 0x4063D020, 0x40648220, 0x00000003, 0x4062C22A, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C22B, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C22C, 0x4063D020, 0x40648220, 0x00000003, 0x4062C221, 0x4063D020,
-	0x40648420, 0x00000003, 0x4062C222, 0x4063D020, 0x40648420, 0x00000003,
-	0x4062C223, 0x4063D020, 0x40648420, 0x00000003, 0x4062C221, 0x4063D020,
-	0x40648C20, 0x00000003, 0x4062C222, 0x4063D020,
-	// Block 518, offset 0x8180
-	0x40648C20, 0x00000003, 0x4062C223, 0x4063D020, 0x40648C20, 0x00000003,
-	0x4062C224, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C225, 0x4063D020,
-	0x40648C20, 0x00000002, 0x4062C421, 0x4063A820, 0x00000002, 0x4062C422,
-	0x4063A820, 0x00000002, 0x4062C423, 0x4063A820, 0x00000002, 0x4062C424,
-	0x4063A820, 0x00000002, 0x4062C425, 0x4063A820, 0x00000002, 0x4062C426,
-	0x4063A820, 0x00000002, 0x4062C427, 0x4063A820, 0x00000002, 0x4062C428,
-	0x4063A820, 0x00000002, 0x4062C429, 0x4063A820, 0x00000002, 0x4062C42A,
-	0x4063A820, 0x00000002, 0x4062C42B, 0x4063A820, 0x00000002, 0x4062C42C,
-	0x4063A820, 0x00000002, 0x4062C42D, 0x4063A820, 0x00000002, 0x4062C42E,
-	0x4063A820, 0x00000002, 0x4062C42F, 0x4063A820, 0x00000002, 0x4062C430,
-	0x4063A820, 0x00000002, 0x4062C431, 0x4063A820,
-	// Block 519, offset 0x81c0
-	0x00000002, 0x4062C432, 0x4063A820, 0x00000002, 0x4062C433, 0x4063A820,
-	0x00000002, 0x4062C434, 0x4063A820, 0x00000002, 0x4062C435, 0x4063A820,
-	0x00000002, 0x4062C436, 0x4063A820, 0x00000002, 0x4062C437, 0x4063A820,
-	0x00000002, 0x4062C438, 0x4063A820, 0x00000002, 0x4062C439, 0x4063A820,
-	0x00000002, 0x4062C43A, 0x4063A820, 0x00000002, 0x4062C43B, 0x4063A820,
-	0x00000002, 0x4062C43C, 0x4063A820, 0x00000002, 0x4062C43D, 0x4063A820,
-	0x00000002, 0x4062C43E, 0x4063A820, 0x00000002, 0x4062C43F, 0x4063A820,
-	0x00000002, 0x4062C440, 0x4063A820, 0x00000002, 0x4062C441, 0x4063A820,
-	0x00000002, 0x4062C442, 0x4063A820, 0x00000002, 0x4062C443, 0x4063A820,
-	0x00000002, 0x4062C444, 0x4063A820, 0x00000002, 0x4062C445, 0x4063A820,
-	0x00000002, 0x4062C446, 0x4063A820, 0x00000002,
-	// Block 520, offset 0x8200
-	0x4062C447, 0x4063A820, 0x00000002, 0x4062C448, 0x4063A820, 0x00000002,
-	0x4062C449, 0x4063A820, 0x00000002, 0x4062C44A, 0x4063A820, 0x00000002,
-	0x4062C44B, 0x4063A820, 0x00000002, 0x4062C44C, 0x4063A820, 0x00000002,
-	0x4062C44D, 0x4063A820, 0x00000002, 0x4062C44E, 0x4063A820, 0x00000002,
-	0x4062C44F, 0x4063A820, 0x00000002, 0x4062C450, 0x4063A820, 0x00000002,
-	0x4062C451, 0x4063A820, 0x00000002, 0x4062C452, 0x4063A820, 0x00000002,
-	0x4062C453, 0x4063A820, 0x00000002, 0x4062C454, 0x4063A820, 0x00000003,
-	0x4062C421, 0x4063A820, 0x40646420, 0x00000003, 0x4062C422, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C423, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C424, 0x4063A820, 0x40646420, 0x00000003, 0x4062C425, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C426, 0x4063A820,
-	// Block 521, offset 0x8240
-	0x40646420, 0x00000003, 0x4062C427, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C428, 0x4063A820, 0x40646420, 0x00000003, 0x4062C429, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C42A, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C42B, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42C, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C42D, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C42E, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42F, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C430, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C431, 0x4063A820, 0x40646420, 0x00000003, 0x4062C432, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C433, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062C434, 0x4063A820, 0x40646420, 0x00000003, 0x4062C435, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062C421, 0x4063A820,
-	// Block 522, offset 0x8280
-	0x40646A20, 0x00000003, 0x4062C422, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062C423, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C424, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062C425, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062C426, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C427, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062C428, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062C421, 0x4063A820, 0x40648220, 0x00000003, 0x4062C422, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062C423, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062C424, 0x4063A820, 0x40648220, 0x00000003, 0x4062C425, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062C426, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062C427, 0x4063A820, 0x40648220, 0x00000003, 0x4062C428, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062C429, 0x4063A820,
-	// Block 523, offset 0x82c0
-	0x40648220, 0x00000003, 0x4062C421, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062C422, 0x4063A820, 0x40648420, 0x00000003, 0x4062C423, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062C424, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062C425, 0x4063A820, 0x40648420, 0x00000003, 0x4062C426, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062C421, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C422, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C423, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C424, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C425, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C426, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C427, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C428, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C429, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C42A, 0x4063A820,
-	// Block 524, offset 0x8300
-	0x40648C20, 0x00000003, 0x4062C42B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C42C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C42E, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C42F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C430, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C431, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C432, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C433, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C434, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C435, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C436, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C437, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C438, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C439, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C43A, 0x4063A820,
-	// Block 525, offset 0x8340
-	0x40648C20, 0x00000003, 0x4062C43B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C43C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C43E, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C43F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C440, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C441, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C442, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C443, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C444, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C445, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C446, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C447, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C448, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C449, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C44A, 0x4063A820,
-	// Block 526, offset 0x8380
-	0x40648C20, 0x00000003, 0x4062C44B, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C44C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44D, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C44E, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C44F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C450, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C451, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C452, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C453, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C454, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062C455, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C456, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062C457, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062C421, 0x4063AA20, 0x00000002, 0x4062C422, 0x4063AA20, 0x00000002,
-	0x4062C423, 0x4063AA20, 0x00000002, 0x4062C424,
-	// Block 527, offset 0x83c0
-	0x4063AA20, 0x00000002, 0x4062C425, 0x4063AA20, 0x00000002, 0x4062C426,
-	0x4063AA20, 0x00000002, 0x4062C427, 0x4063AA20, 0x00000002, 0x4062C428,
-	0x4063AA20, 0x00000002, 0x4062C429, 0x4063AA20, 0x00000002, 0x4062C42A,
-	0x4063AA20, 0x00000002, 0x4062C42B, 0x4063AA20, 0x00000002, 0x4062C42C,
-	0x4063AA20, 0x00000002, 0x4062C42D, 0x4063AA20, 0x00000002, 0x4062C42E,
-	0x4063AA20, 0x00000002, 0x4062C42F, 0x4063AA20, 0x00000002, 0x4062C430,
-	0x4063AA20, 0x00000002, 0x4062C431, 0x4063AA20, 0x00000002, 0x4062C432,
-	0x4063AA20, 0x00000002, 0x4062C433, 0x4063AA20, 0x00000002, 0x4062C434,
-	0x4063AA20, 0x00000002, 0x4062C435, 0x4063AA20, 0x00000002, 0x4062C436,
-	0x4063AA20, 0x00000002, 0x4062C437, 0x4063AA20, 0x00000003, 0x4062C421,
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062C422,
-	// Block 528, offset 0x8400
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062C423, 0x4063AA20, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062C426, 0x4063AA20, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C428,
-	0x4063AA20, 0x40648C20, 0x00000002, 0x4062C421, 0x4063B020, 0x00000002,
-	0x4062C422, 0x4063B020, 0x00000002, 0x4062C423, 0x4063B020, 0x00000002,
-	0x4062C424, 0x4063B020, 0x00000002, 0x4062C425, 0x4063B020, 0x00000002,
-	0x4062C426, 0x4063B020, 0x00000002, 0x4062C427, 0x4063B020, 0x00000002,
-	0x4062C428, 0x4063B020, 0x00000002, 0x4062C429, 0x4063B020, 0x00000002,
-	0x4062C42A, 0x4063B020, 0x00000002, 0x4062C42B, 0x4063B020, 0x00000002,
-	0x4062C42C, 0x4063B020, 0x00000002, 0x4062C42D,
-	// Block 529, offset 0x8440
-	0x4063B020, 0x00000002, 0x4062C42E, 0x4063B020, 0x00000002, 0x4062C42F,
-	0x4063B020, 0x00000002, 0x4062C430, 0x4063B020, 0x00000002, 0x4062C431,
-	0x4063B020, 0x00000002, 0x4062C432, 0x4063B020, 0x00000002, 0x4062C433,
-	0x4063B020, 0x00000002, 0x4062C434, 0x4063B020, 0x00000002, 0x4062C435,
-	0x4063B020, 0x00000002, 0x4062C436, 0x4063B020, 0x00000002, 0x4062C437,
-	0x4063B020, 0x00000002, 0x4062C438, 0x4063B020, 0x00000002, 0x4062C439,
-	0x4063B020, 0x00000002, 0x4062C43A, 0x4063B020, 0x00000002, 0x4062C43B,
-	0x4063B020, 0x00000002, 0x4062C43C, 0x4063B020, 0x00000002, 0x4062C43D,
-	0x4063B020, 0x00000002, 0x4062C43E, 0x4063B020, 0x00000002, 0x4062C43F,
-	0x4063B020, 0x00000002, 0x4062C440, 0x4063B020, 0x00000002, 0x4062C441,
-	0x4063B020, 0x00000002, 0x4062C442, 0x4063B020,
-	// Block 530, offset 0x8480
-	0x00000002, 0x4062C443, 0x4063B020, 0x00000002, 0x4062C444, 0x4063B020,
-	0x00000002, 0x4062C445, 0x4063B020, 0x00000002, 0x4062C446, 0x4063B020,
-	0x00000002, 0x4062C447, 0x4063B020, 0x00000002, 0x4062C448, 0x4063B020,
-	0x00000002, 0x4062C449, 0x4063B020, 0x00000002, 0x4062C44A, 0x4063B020,
-	0x00000002, 0x4062C44B, 0x4063B020, 0x00000002, 0x4062C44C, 0x4063B020,
-	0x00000002, 0x4062C44D, 0x4063B020, 0x00000002, 0x4062C44E, 0x4063B020,
-	0x00000003, 0x4062C421, 0x4063B020, 0x40646420, 0x00000003, 0x4062C422,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C423, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C424, 0x4063B020, 0x40646420, 0x00000003, 0x4062C425,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C426, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C427, 0x4063B020, 0x40646420,
-	// Block 531, offset 0x84c0
-	0x00000003, 0x4062C428, 0x4063B020, 0x40646420, 0x00000003, 0x4062C429,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C42A, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C42B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42C,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C42D, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C42E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42F,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C430, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C431, 0x4063B020, 0x40646420, 0x00000003, 0x4062C432,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C433, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C434, 0x4063B020, 0x40646420, 0x00000003, 0x4062C435,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C436, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C437, 0x4063B020, 0x40646420,
-	// Block 532, offset 0x8500
-	0x00000003, 0x4062C438, 0x4063B020, 0x40646420, 0x00000003, 0x4062C439,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C43A, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C43B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43C,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C43D, 0x4063B020, 0x40646420,
-	0x00000003, 0x4062C43E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43F,
-	0x4063B020, 0x40646420, 0x00000003, 0x4062C421, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C422, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C423,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C424, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C425, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C426,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C427, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C428, 0x4063B020, 0x40646A20,
-	// Block 533, offset 0x8540
-	0x00000003, 0x4062C429, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C42B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C42C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C42E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C42F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C430,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C431, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C432, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C433,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C434, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C435, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C436,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C437, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C438, 0x4063B020, 0x40646A20,
-	// Block 534, offset 0x8580
-	0x00000003, 0x4062C439, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C43B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C43C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C43E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C43F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C440,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C441, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C442, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C443,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C444, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C445, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C446,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C447, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C448, 0x4063B020, 0x40646A20,
-	// Block 535, offset 0x85c0
-	0x00000003, 0x4062C449, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C44B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C44C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C44E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C44F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C450,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C451, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C452, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C453,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C454, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C455, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C456,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C457, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C458, 0x4063B020, 0x40646A20,
-	// Block 536, offset 0x8600
-	0x00000003, 0x4062C459, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C45B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C45C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C45E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C45F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C460,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C461, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C462, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C463,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C464, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C465, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C466,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C467, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C468, 0x4063B020, 0x40646A20,
-	// Block 537, offset 0x8640
-	0x00000003, 0x4062C469, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46A,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C46B, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C46C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46D,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C46E, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C46F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C470,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062C471, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062C421, 0x4063B020, 0x40647220, 0x00000003, 0x4062C422,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C423, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C424, 0x4063B020, 0x40647220, 0x00000003, 0x4062C425,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C426, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C427, 0x4063B020, 0x40647220,
-	// Block 538, offset 0x8680
-	0x00000003, 0x4062C428, 0x4063B020, 0x40647220, 0x00000003, 0x4062C429,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062C42A, 0x4063B020, 0x40647220,
-	0x00000003, 0x4062C42B, 0x4063B020, 0x40647220, 0x00000003, 0x4062C421,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C422, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C423, 0x4063B020, 0x40648220, 0x00000003, 0x4062C424,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C425, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C426, 0x4063B020, 0x40648220, 0x00000003, 0x4062C427,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C428, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C429, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42A,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C42B, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C42C, 0x4063B020, 0x40648220,
-	// Block 539, offset 0x86c0
-	0x00000003, 0x4062C42D, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42E,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C42F, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C430, 0x4063B020, 0x40648220, 0x00000003, 0x4062C431,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C432, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062C433, 0x4063B020, 0x40648220, 0x00000003, 0x4062C434,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062C421, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C422, 0x4063B020, 0x40648420, 0x00000003, 0x4062C423,
-	0x4063B020, 0x40648420, 0x00000003, 0x4062C424, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C425, 0x4063B020, 0x40648420, 0x00000003, 0x4062C426,
-	0x4063B020, 0x40648420, 0x00000003, 0x4062C427, 0x4063B020, 0x40648420,
-	0x00000003, 0x4062C428, 0x4063B020, 0x40648420,
-	// Block 540, offset 0x8700
-	0x00000003, 0x4062C429, 0x4063B020, 0x40648420, 0x00000003, 0x4062C421,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C422, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C423, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C424,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C425, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C426, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C427,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C428, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C429, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C42B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C42C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C42E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C42F, 0x4063B020, 0x40648C20,
-	// Block 541, offset 0x8740
-	0x00000003, 0x4062C430, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C431,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C432, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C433, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C434,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C435, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C436, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C437,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C438, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C439, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C43B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C43C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C43E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C43F, 0x4063B020, 0x40648C20,
-	// Block 542, offset 0x8780
-	0x00000003, 0x4062C440, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C441,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C442, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C443, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C444,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C445, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C446, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C447,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C448, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C449, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C44B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C44C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C44E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C44F, 0x4063B020, 0x40648C20,
-	// Block 543, offset 0x87c0
-	0x00000003, 0x4062C450, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C451,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C452, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C453, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C454,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C455, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C456, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C457,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C458, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C459, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45A,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C45B, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C45C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45D,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C45E, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C45F, 0x4063B020, 0x40648C20,
-	// Block 544, offset 0x8800
-	0x00000003, 0x4062C460, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C461,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C462, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C463, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C464,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C465, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C466, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C467,
-	0x4063B020, 0x40648C20, 0x00000003, 0x4062C468, 0x4063B020, 0x40648C20,
-	0x00000003, 0x4062C469, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C46A,
-	0x4063B020, 0x40648C20, 0x00000002, 0x4062C421, 0x4063B220, 0x00000002,
-	0x4062C422, 0x4063B220, 0x00000002, 0x4062C423, 0x4063B220, 0x00000002,
-	0x4062C424, 0x4063B220, 0x00000002, 0x4062C425, 0x4063B220, 0x00000002,
-	0x4062C426, 0x4063B220, 0x00000002, 0x4062C427,
-	// Block 545, offset 0x8840
-	0x4063B220, 0x00000002, 0x4062C428, 0x4063B220, 0x00000002, 0x4062C429,
-	0x4063B220, 0x00000002, 0x4062C42A, 0x4063B220, 0x00000002, 0x4062C42B,
-	0x4063B220, 0x00000002, 0x4062C42C, 0x4063B220, 0x00000002, 0x4062C42D,
-	0x4063B220, 0x00000002, 0x4062C42E, 0x4063B220, 0x00000002, 0x4062C42F,
-	0x4063B220, 0x00000002, 0x4062C430, 0x4063B220, 0x00000002, 0x4062C431,
-	0x4063B220, 0x00000002, 0x4062C432, 0x4063B220, 0x00000002, 0x4062C433,
-	0x4063B220, 0x00000002, 0x4062C434, 0x4063B220, 0x00000002, 0x4062C435,
-	0x4063B220, 0x00000002, 0x4062C436, 0x4063B220, 0x00000002, 0x4062C437,
-	0x4063B220, 0x00000002, 0x4062C438, 0x4063B220, 0x00000002, 0x4062C439,
-	0x4063B220, 0x00000002, 0x4062C43A, 0x4063B220, 0x00000002, 0x4062C43B,
-	0x4063B220, 0x00000002, 0x4062C43C, 0x4063B220,
-	// Block 546, offset 0x8880
-	0x00000002, 0x4062C43D, 0x4063B220, 0x00000002, 0x4062C43E, 0x4063B220,
-	0x00000002, 0x4062C43F, 0x4063B220, 0x00000002, 0x4062C440, 0x4063B220,
-	0x00000002, 0x4062C441, 0x4063B220, 0x00000002, 0x4062C442, 0x4063B220,
-	0x00000002, 0x4062C443, 0x4063B220, 0x00000002, 0x4062C444, 0x4063B220,
-	0x00000002, 0x4062C445, 0x4063B220, 0x00000002, 0x4062C446, 0x4063B220,
-	0x00000002, 0x4062C447, 0x4063B220, 0x00000002, 0x4062C448, 0x4063B220,
-	0x00000002, 0x4062C421, 0x4063B820, 0x00000002, 0x4062C422, 0x4063B820,
-	0x00000002, 0x4062C423, 0x4063B820, 0x00000002, 0x4062C424, 0x4063B820,
-	0x00000002, 0x4062C425, 0x4063B820, 0x00000002, 0x4062C426, 0x4063B820,
-	0x00000002, 0x4062C427, 0x4063B820, 0x00000002, 0x4062C428, 0x4063B820,
-	0x00000002, 0x4062C429, 0x4063B820, 0x00000002,
-	// Block 547, offset 0x88c0
-	0x4062C42A, 0x4063B820, 0x00000002, 0x4062C42B, 0x4063B820, 0x00000002,
-	0x4062C42C, 0x4063B820, 0x00000002, 0x4062C42D, 0x4063B820, 0x00000002,
-	0x4062C42E, 0x4063B820, 0x00000002, 0x4062C42F, 0x4063B820, 0x00000002,
-	0x4062C430, 0x4063B820, 0x00000002, 0x4062C431, 0x4063B820, 0x00000002,
-	0x4062C432, 0x4063B820, 0x00000002, 0x4062C433, 0x4063B820, 0x00000002,
-	0x4062C434, 0x4063B820, 0x00000002, 0x4062C435, 0x4063B820, 0x00000002,
-	0x4062C436, 0x4063B820, 0x00000002, 0x4062C437, 0x4063B820, 0x00000002,
-	0x4062C438, 0x4063B820, 0x00000002, 0x4062C439, 0x4063B820, 0x00000002,
-	0x4062C43A, 0x4063B820, 0x00000002, 0x4062C43B, 0x4063B820, 0x00000002,
-	0x4062C43C, 0x4063B820, 0x00000002, 0x4062C43D, 0x4063B820, 0x00000002,
-	0x4062C43E, 0x4063B820, 0x00000002, 0x4062C43F,
-	// Block 548, offset 0x8900
-	0x4063B820, 0x00000002, 0x4062C440, 0x4063B820, 0x00000002, 0x4062C441,
-	0x4063B820, 0x00000002, 0x4062C442, 0x4063B820, 0x00000002, 0x4062C443,
-	0x4063B820, 0x00000002, 0x4062C444, 0x4063B820, 0x00000002, 0x4062C445,
-	0x4063B820, 0x00000002, 0x4062C446, 0x4063B820, 0x00000002, 0x4062C447,
-	0x4063B820, 0x00000002, 0x4062C448, 0x4063B820, 0x00000002, 0x4062C449,
-	0x4063B820, 0x00000002, 0x4062C44A, 0x4063B820, 0x00000002, 0x4062C44B,
-	0x4063B820, 0x00000002, 0x4062C44C, 0x4063B820, 0x00000002, 0x4062C44D,
-	0x4063B820, 0x00000002, 0x4062C44E, 0x4063B820, 0x00000002, 0x4062C44F,
-	0x4063B820, 0x00000002, 0x4062C450, 0x4063B820, 0x00000002, 0x4062C451,
-	0x4063B820, 0x00000002, 0x4062C452, 0x4063B820, 0x00000002, 0x4062C453,
-	0x4063B820, 0x00000002, 0x4062C454, 0x4063B820,
-	// Block 549, offset 0x8940
-	0x00000002, 0x4062C455, 0x4063B820, 0x00000002, 0x4062C456, 0x4063B820,
-	0x00000002, 0x4062C457, 0x4063B820, 0x00000002, 0x4062C458, 0x4063B820,
-	0x00000002, 0x4062C459, 0x4063B820, 0x00000002, 0x4062C45A, 0x4063B820,
-	0x00000002, 0x4062C45B, 0x4063B820, 0x00000002, 0x4062C45C, 0x4063B820,
-	0x00000002, 0x4062C45D, 0x4063B820, 0x00000002, 0x4062C45E, 0x4063B820,
-	0x00000002, 0x4062C45F, 0x4063B820, 0x00000002, 0x4062C460, 0x4063B820,
-	0x00000002, 0x4062C461, 0x4063B820, 0x00000002, 0x4062C462, 0x4063B820,
-	0x00000002, 0x4062C463, 0x4063B820, 0x00000002, 0x4062C464, 0x4063B820,
-	0x00000002, 0x4062C465, 0x4063B820, 0x00000002, 0x4062C466, 0x4063B820,
-	0x00000002, 0x4062C467, 0x4063B820, 0x00000002, 0x4062C468, 0x4063B820,
-	0x00000002, 0x4062C469, 0x4063B820, 0x00000002,
-	// Block 550, offset 0x8980
-	0x4062C46A, 0x4063B820, 0x00000002, 0x4062C46B, 0x4063B820, 0x00000002,
-	0x4062C46C, 0x4063B820, 0x00000002, 0x4062C46D, 0x4063B820, 0x00000002,
-	0x4062C46E, 0x4063B820, 0x00000002, 0x4062C46F, 0x4063B820, 0x00000002,
-	0x4062C470, 0x4063B820, 0x00000003, 0x4062C421, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062C422, 0x4063B820, 0x40646420, 0x00000003, 0x4062C423,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062C424, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062C425, 0x4063B820, 0x40646420, 0x00000003, 0x4062C421,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062C422, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062C423, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C421,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062C422, 0x4063B820, 0x40647220,
-	0x00000003, 0x4062C423, 0x4063B820, 0x40647220,
-	// Block 551, offset 0x89c0
-	0x00000003, 0x4062C421, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C422,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C423, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C426, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C428,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C429, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C42A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42B,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C42C, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C42D, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42E,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C42F, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C430, 0x4063B820, 0x40648C20,
-	// Block 552, offset 0x8a00
-	0x00000003, 0x4062C431, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C432,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C433, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C434, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C435,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C436, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C437, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C438,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062C439, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062C43A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C43B,
-	0x4063B820, 0x40648C20, 0x00000002, 0x4062C421, 0x4063BA20, 0x00000002,
-	0x4062C422, 0x4063BA20, 0x00000002, 0x4062C423, 0x4063BA20, 0x00000002,
-	0x4062C424, 0x4063BA20, 0x00000002, 0x4062C425, 0x4063BA20, 0x00000002,
-	0x4062C426, 0x4063BA20, 0x00000002, 0x4062C427,
-	// Block 553, offset 0x8a40
-	0x4063BA20, 0x00000002, 0x4062C428, 0x4063BA20, 0x00000002, 0x4062C429,
-	0x4063BA20, 0x00000002, 0x4062C421, 0x4063BE20, 0x00000002, 0x4062C421,
-	0x4063C220, 0x00000002, 0x4062C422, 0x4063C220, 0x00000002, 0x4062C423,
-	0x4063C220, 0x00000002, 0x4062C424, 0x4063C220, 0x00000002, 0x4062C425,
-	0x4063C220, 0x00000002, 0x4062C426, 0x4063C220, 0x00000002, 0x4062C427,
-	0x4063C220, 0x00000002, 0x4062C428, 0x4063C220, 0x00000002, 0x4062C429,
-	0x4063C220, 0x00000002, 0x4062C42A, 0x4063C220, 0x00000002, 0x4062C42B,
-	0x4063C220, 0x00000002, 0x4062C42C, 0x4063C220, 0x00000002, 0x4062C42D,
-	0x4063C220, 0x00000002, 0x4062C42E, 0x4063C220, 0x00000002, 0x4062C42F,
-	0x4063C220, 0x00000002, 0x4062C430, 0x4063C220, 0x00000002, 0x4062C431,
-	0x4063C220, 0x00000002, 0x4062C432, 0x4063C220,
-	// Block 554, offset 0x8a80
-	0x00000002, 0x4062C433, 0x4063C220, 0x00000002, 0x4062C434, 0x4063C220,
-	0x00000002, 0x4062C435, 0x4063C220, 0x00000002, 0x4062C436, 0x4063C220,
-	0x00000002, 0x4062C437, 0x4063C220, 0x00000002, 0x4062C438, 0x4063C220,
-	0x00000002, 0x4062C439, 0x4063C220, 0x00000002, 0x4062C43A, 0x4063C220,
-	0x00000002, 0x4062C43B, 0x4063C220, 0x00000002, 0x4062C43C, 0x4063C220,
-	0x00000002, 0x4062C43D, 0x4063C220, 0x00000002, 0x4062C43E, 0x4063C220,
-	0x00000002, 0x4062C43F, 0x4063C220, 0x00000002, 0x4062C440, 0x4063C220,
-	0x00000002, 0x4062C441, 0x4063C220, 0x00000002, 0x4062C442, 0x4063C220,
-	0x00000002, 0x4062C443, 0x4063C220, 0x00000002, 0x4062C444, 0x4063C220,
-	0x00000002, 0x4062C445, 0x4063C220, 0x00000002, 0x4062C446, 0x4063C220,
-	0x00000002, 0x4062C447, 0x4063C220, 0x00000002,
-	// Block 555, offset 0x8ac0
-	0x4062C448, 0x4063C220, 0x00000002, 0x4062C449, 0x4063C220, 0x00000002,
-	0x4062C44A, 0x4063C220, 0x00000002, 0x4062C44B, 0x4063C220, 0x00000002,
-	0x4062C44C, 0x4063C220, 0x00000002, 0x4062C44D, 0x4063C220, 0x00000002,
-	0x4062C44E, 0x4063C220, 0x00000002, 0x4062C44F, 0x4063C220, 0x00000002,
-	0x4062C450, 0x4063C220, 0x00000002, 0x4062C451, 0x4063C220, 0x00000002,
-	0x4062C452, 0x4063C220, 0x00000002, 0x4062C453, 0x4063C220, 0x00000002,
-	0x4062C454, 0x4063C220, 0x00000002, 0x4062C455, 0x4063C220, 0x00000002,
-	0x4062C456, 0x4063C220, 0x00000002, 0x4062C457, 0x4063C220, 0x00000002,
-	0x4062C458, 0x4063C220, 0x00000002, 0x4062C459, 0x4063C220, 0x00000002,
-	0x4062C45A, 0x4063C220, 0x00000002, 0x4062C45B, 0x4063C220, 0x00000002,
-	0x4062C45C, 0x4063C220, 0x00000002, 0x4062C45D,
-	// Block 556, offset 0x8b00
-	0x4063C220, 0x00000002, 0x4062C45E, 0x4063C220, 0x00000003, 0x4062C421,
-	0x4063C220, 0x40646420, 0x00000003, 0x4062C422, 0x4063C220, 0x40646420,
-	0x00000003, 0x4062C421, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C422,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C423, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C424, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C425,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C426, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C427, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C428,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C429, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C42A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C42C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C42D, 0x4063C220, 0x40646A20,
-	// Block 557, offset 0x8b40
-	0x00000003, 0x4062C42E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C430, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C431, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C432,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C433, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C434, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C435,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C436, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C437, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C438,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C439, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C43A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43B,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C43C, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C43D, 0x4063C220, 0x40646A20,
-	// Block 558, offset 0x8b80
-	0x00000003, 0x4062C43E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43F,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C440, 0x4063C220, 0x40646A20,
-	0x00000003, 0x4062C441, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C442,
-	0x4063C220, 0x40646A20, 0x00000003, 0x4062C421, 0x4063C220, 0x40647220,
-	0x00000003, 0x4062C422, 0x4063C220, 0x40647220, 0x00000003, 0x4062C421,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062C422, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062C423, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C424,
-	0x4063C220, 0x40648C20, 0x00000003, 0x4062C425, 0x4063C220, 0x40648C20,
-	0x00000003, 0x4062C421, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C422,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062C423, 0x4063CC20, 0x40646420,
-	0x00000003, 0x4062C421, 0x4063CC20, 0x40647220,
-	// Block 559, offset 0x8bc0
-	0x00000003, 0x4062C422, 0x4063CC20, 0x40647220, 0x00000003, 0x4062C421,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062C422, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062C423, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C424,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062C425, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062C421, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C422,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C423, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C426, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C428,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C429, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C42A, 0x4063CC20, 0x40648C20,
-	// Block 560, offset 0x8c00
-	0x00000003, 0x4062C42B, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C42C,
-	0x4063CC20, 0x40648C20, 0x00000003, 0x4062C42D, 0x4063CC20, 0x40648C20,
-	0x00000003, 0x4062C42E, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C421,
-	0x4063D020, 0x00000002, 0x4062C422, 0x4063D020, 0x00000002, 0x4062C423,
-	0x4063D020, 0x00000002, 0x4062C424, 0x4063D020, 0x00000002, 0x4062C425,
-	0x4063D020, 0x00000002, 0x4062C426, 0x4063D020, 0x00000002, 0x4062C427,
-	0x4063D020, 0x00000002, 0x4062C428, 0x4063D020, 0x00000002, 0x4062C429,
-	0x4063D020, 0x00000002, 0x4062C42A, 0x4063D020, 0x00000002, 0x4062C42B,
-	0x4063D020, 0x00000002, 0x4062C42C, 0x4063D020, 0x00000002, 0x4062C42D,
-	0x4063D020, 0x00000002, 0x4062C42E, 0x4063D020, 0x00000002, 0x4062C42F,
-	0x4063D020, 0x00000002, 0x4062C430, 0x4063D020,
-	// Block 561, offset 0x8c40
-	0x00000002, 0x4062C431, 0x4063D020, 0x00000002, 0x4062C432, 0x4063D020,
-	0x00000002, 0x4062C433, 0x4063D020, 0x00000002, 0x4062C434, 0x4063D020,
-	0x00000002, 0x4062C435, 0x4063D020, 0x00000002, 0x4062C436, 0x4063D020,
-	0x00000002, 0x4062C437, 0x4063D020, 0x00000002, 0x4062C438, 0x4063D020,
-	0x00000002, 0x4062C439, 0x4063D020, 0x00000002, 0x4062C43A, 0x4063D020,
-	0x00000002, 0x4062C43B, 0x4063D020, 0x00000002, 0x4062C43C, 0x4063D020,
-	0x00000002, 0x4062C43D, 0x4063D020, 0x00000002, 0x4062C43E, 0x4063D020,
-	0x00000002, 0x4062C43F, 0x4063D020, 0x00000002, 0x4062C440, 0x4063D020,
-	0x00000002, 0x4062C441, 0x4063D020, 0x00000002, 0x4062C442, 0x4063D020,
-	0x00000002, 0x4062C443, 0x4063D020, 0x00000002, 0x4062C444, 0x4063D020,
-	0x00000002, 0x4062C445, 0x4063D020, 0x00000002,
-	// Block 562, offset 0x8c80
-	0x4062C446, 0x4063D020, 0x00000002, 0x4062C447, 0x4063D020, 0x00000002,
-	0x4062C448, 0x4063D020, 0x00000002, 0x4062C449, 0x4063D020, 0x00000002,
-	0x4062C44A, 0x4063D020, 0x00000002, 0x4062C44B, 0x4063D020, 0x00000002,
-	0x4062C44C, 0x4063D020, 0x00000002, 0x4062C44D, 0x4063D020, 0x00000002,
-	0x4062C44E, 0x4063D020, 0x00000002, 0x4062C44F, 0x4063D020, 0x00000002,
-	0x4062C450, 0x4063D020, 0x00000003, 0x4062C421, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062C422, 0x4063D020, 0x40646420, 0x00000003, 0x4062C423,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062C424, 0x4063D020, 0x40646420,
-	0x00000003, 0x4062C425, 0x4063D020, 0x40646420, 0x00000003, 0x4062C426,
-	0x4063D020, 0x40646420, 0x00000003, 0x4062C421, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C422, 0x4063D020, 0x40646A20,
-	// Block 563, offset 0x8cc0
-	0x00000003, 0x4062C423, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C424,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C425, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C426, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C427,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C428, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C429, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C42B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C42C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C42E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C42F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C430,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C431, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C432, 0x4063D020, 0x40646A20,
-	// Block 564, offset 0x8d00
-	0x00000003, 0x4062C433, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C434,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C435, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C436, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C437,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C438, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C439, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C43B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C43C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43D,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C43E, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C43F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C440,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C441, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C442, 0x4063D020, 0x40646A20,
-	// Block 565, offset 0x8d40
-	0x00000003, 0x4062C443, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C444,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C445, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C446, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C447,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C448, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C449, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C44A,
-	0x4063D020, 0x40646A20, 0x00000003, 0x4062C44B, 0x4063D020, 0x40646A20,
-	0x00000003, 0x4062C44C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C421,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C422, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C423, 0x4063D020, 0x40647220, 0x00000003, 0x4062C424,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C425, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C426, 0x4063D020, 0x40647220,
-	// Block 566, offset 0x8d80
-	0x00000003, 0x4062C427, 0x4063D020, 0x40647220, 0x00000003, 0x4062C428,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C429, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C42A, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42B,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C42C, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C42D, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42E,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C42F, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C430, 0x4063D020, 0x40647220, 0x00000003, 0x4062C431,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C432, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062C433, 0x4063D020, 0x40647220, 0x00000003, 0x4062C434,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062C421, 0x4063D020, 0x40648220,
-	0x00000003, 0x4062C422, 0x4063D020, 0x40648220,
-	// Block 567, offset 0x8dc0
-	0x00000003, 0x4062C423, 0x4063D020, 0x40648220, 0x00000003, 0x4062C421,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062C422, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062C423, 0x4063D020, 0x40648420, 0x00000003, 0x4062C424,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062C425, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062C426, 0x4063D020, 0x40648420, 0x00000003, 0x4062C427,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062C428, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062C421, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C422,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062C423, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062C424, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C425,
-	0x4063D020, 0x40648C20, 0x00000003, 0x4062C426, 0x4063D020, 0x40648C20,
-	0x00000003, 0x4062C427, 0x4063D020, 0x40648C20,
-	// Block 568, offset 0x8e00
-	0x00000002, 0x4062C821, 0x4063A820, 0x00000002, 0x4062C822, 0x4063A820,
-	0x00000002, 0x4062C823, 0x4063A820, 0x00000002, 0x4062C824, 0x4063A820,
-	0x00000002, 0x4062C825, 0x4063A820, 0x00000002, 0x4062C826, 0x4063A820,
-	0x00000002, 0x4062C827, 0x4063A820, 0x00000002, 0x4062C828, 0x4063A820,
-	0x00000002, 0x4062C829, 0x4063A820, 0x00000002, 0x4062C82A, 0x4063A820,
-	0x00000002, 0x4062C82B, 0x4063A820, 0x00000002, 0x4062C82C, 0x4063A820,
-	0x00000002, 0x4062C82D, 0x4063A820, 0x00000002, 0x4062C82E, 0x4063A820,
-	0x00000002, 0x4062C82F, 0x4063A820, 0x00000002, 0x4062C830, 0x4063A820,
-	0x00000002, 0x4062C831, 0x4063A820, 0x00000002, 0x4062C832, 0x4063A820,
-	0x00000002, 0x4062C833, 0x4063A820, 0x00000002, 0x4062C834, 0x4063A820,
-	0x00000002, 0x4062C835, 0x4063A820, 0x00000002,
-	// Block 569, offset 0x8e40
-	0x4062C836, 0x4063A820, 0x00000003, 0x4062C821, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C822, 0x4063A820, 0x40646420, 0x00000003, 0x4062C823,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C824, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C825, 0x4063A820, 0x40646420, 0x00000003, 0x4062C826,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C827, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C828, 0x4063A820, 0x40646420, 0x00000003, 0x4062C829,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062C82A, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062C821, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C822,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C823, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C824, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C825,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C826,
-	// Block 570, offset 0x8e80
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C827, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C828, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C829,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C82A, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C82B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82C,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C82D, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C82E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82F,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C830, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C831, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C832,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C833, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C834, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C835,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C836,
-	// Block 571, offset 0x8ec0
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062C837, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062C821, 0x4063A820, 0x40647220, 0x00000003, 0x4062C822,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C823, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C824, 0x4063A820, 0x40647220, 0x00000003, 0x4062C825,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062C826, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062C827, 0x4063A820, 0x40647220, 0x00000003, 0x4062C821,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C822, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C823, 0x4063A820, 0x40648220, 0x00000003, 0x4062C824,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C825, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C826, 0x4063A820, 0x40648220, 0x00000003, 0x4062C827,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C828,
-	// Block 572, offset 0x8f00
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C829, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C82A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82B,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C82C, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C82D, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82E,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C830, 0x4063A820, 0x40648220, 0x00000003, 0x4062C831,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C832, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C833, 0x4063A820, 0x40648220, 0x00000003, 0x4062C834,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C835, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C836, 0x4063A820, 0x40648220, 0x00000003, 0x4062C837,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C838,
-	// Block 573, offset 0x8f40
-	0x4063A820, 0x40648220, 0x00000003, 0x4062C839, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062C83A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C821,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C822, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C823, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C824,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C825, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C826, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C827,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C828, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C829, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82A,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C82B, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C82C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82D,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C82E,
-	// Block 574, offset 0x8f80
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C830, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C831,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C832, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C833, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C834,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C835, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C836, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C837,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C838, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C839, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83A,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C83B, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C83C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83D,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C83E,
-	// Block 575, offset 0x8fc0
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C83F, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C840, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C841,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C842, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C843, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C844,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C845, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C846, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C847,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062C848, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062C849, 0x4063A820, 0x40648C20, 0x00000002, 0x4062C821,
-	0x4063AA20, 0x00000002, 0x4062C822, 0x4063AA20, 0x00000002, 0x4062C823,
-	0x4063AA20, 0x00000002, 0x4062C824, 0x4063AA20, 0x00000002, 0x4062C825,
-	0x4063AA20, 0x00000002, 0x4062C826, 0x4063AA20,
-	// Block 576, offset 0x9000
-	0x00000002, 0x4062C827, 0x4063AA20, 0x00000002, 0x4062C828, 0x4063AA20,
-	0x00000002, 0x4062C829, 0x4063AA20, 0x00000002, 0x4062C82A, 0x4063AA20,
-	0x00000002, 0x4062C82B, 0x4063AA20, 0x00000002, 0x4062C82C, 0x4063AA20,
-	0x00000002, 0x4062C82D, 0x4063AA20, 0x00000002, 0x4062C82E, 0x4063AA20,
-	0x00000003, 0x4062C821, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C822,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062C823, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062C824, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C825,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062C826, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062C827, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C828,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062C829, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062C82A, 0x4063AA20, 0x40646420,
-	// Block 577, offset 0x9040
-	0x00000002, 0x4062C821, 0x4063B020, 0x00000002, 0x4062C822, 0x4063B020,
-	0x00000002, 0x4062C823, 0x4063B020, 0x00000002, 0x4062C824, 0x4063B020,
-	0x00000002, 0x4062C825, 0x4063B020, 0x00000002, 0x4062C826, 0x4063B020,
-	0x00000002, 0x4062C827, 0x4063B020, 0x00000002, 0x4062C828, 0x4063B020,
-	0x00000002, 0x4062C829, 0x4063B020, 0x00000003, 0x4062C821, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063B020, 0x40646420, 0x00000003, 0x4062C824, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C825, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C826, 0x4063B020, 0x40646420, 0x00000003, 0x4062C827, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C828, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C829, 0x4063B020, 0x40646420, 0x00000003,
-	// Block 578, offset 0x9080
-	0x4062C82A, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C82C, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C82D, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82E, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C82F, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C830, 0x4063B020, 0x40646420, 0x00000003, 0x4062C831, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C832, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C833, 0x4063B020, 0x40646420, 0x00000003, 0x4062C834, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C835, 0x4063B020, 0x40646420, 0x00000003,
-	0x4062C836, 0x4063B020, 0x40646420, 0x00000003, 0x4062C837, 0x4063B020,
-	0x40646420, 0x00000003, 0x4062C821, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C822, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 579, offset 0x90c0
-	0x4062C823, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C824, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C825, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C826, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C827, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C828, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C829, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82A, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C82B, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C82C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82D, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C82E, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C82F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C830, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C831, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C832, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 580, offset 0x9100
-	0x4062C833, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C834, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C835, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C836, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C837, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C838, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C839, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83A, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C83B, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C83C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83D, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C83E, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C83F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C840, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C841, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C842, 0x4063B020, 0x40646A20, 0x00000003,
-	// Block 581, offset 0x9140
-	0x4062C843, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C844, 0x4063B020,
-	0x40646A20, 0x00000003, 0x4062C845, 0x4063B020, 0x40646A20, 0x00000003,
-	0x4062C821, 0x4063B020, 0x40647220, 0x00000003, 0x4062C822, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C823, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C824, 0x4063B020, 0x40647220, 0x00000003, 0x4062C825, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C826, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C827, 0x4063B020, 0x40647220, 0x00000003, 0x4062C828, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C829, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C82A, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82B, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C82C, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C82D, 0x4063B020, 0x40647220, 0x00000003,
-	// Block 582, offset 0x9180
-	0x4062C82E, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82F, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C830, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C831, 0x4063B020, 0x40647220, 0x00000003, 0x4062C832, 0x4063B020,
-	0x40647220, 0x00000003, 0x4062C833, 0x4063B020, 0x40647220, 0x00000003,
-	0x4062C834, 0x4063B020, 0x40647220, 0x00000003, 0x4062C821, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C822, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C823, 0x4063B020, 0x40648220, 0x00000003, 0x4062C824, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C825, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C826, 0x4063B020, 0x40648220, 0x00000003, 0x4062C827, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C828, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C829, 0x4063B020, 0x40648220, 0x00000003,
-	// Block 583, offset 0x91c0
-	0x4062C82A, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82B, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C82C, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C82D, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82E, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C82F, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C830, 0x4063B020, 0x40648220, 0x00000003, 0x4062C831, 0x4063B020,
-	0x40648220, 0x00000003, 0x4062C832, 0x4063B020, 0x40648220, 0x00000003,
-	0x4062C821, 0x4063B020, 0x40648420, 0x00000003, 0x4062C822, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C823, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C824, 0x4063B020, 0x40648420, 0x00000003, 0x4062C825, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C826, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C827, 0x4063B020, 0x40648420, 0x00000003,
-	// Block 584, offset 0x9200
-	0x4062C828, 0x4063B020, 0x40648420, 0x00000003, 0x4062C829, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C82A, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C82B, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82C, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C82D, 0x4063B020, 0x40648420, 0x00000003,
-	0x4062C82E, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82F, 0x4063B020,
-	0x40648420, 0x00000003, 0x4062C821, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C822, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C823, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062C824, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C825, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C826, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062C827, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C828, 0x4063B020, 0x40648C20, 0x00000003,
-	// Block 585, offset 0x9240
-	0x4062C829, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B020,
-	0x40648C20, 0x00000003, 0x4062C82B, 0x4063B020, 0x40648C20, 0x00000003,
-	0x4062C82C, 0x4063B020, 0x40648C20, 0x00000002, 0x4062C821, 0x4063B220,
-	0x00000002, 0x4062C822, 0x4063B220, 0x00000002, 0x4062C823, 0x4063B220,
-	0x00000002, 0x4062C824, 0x4063B220, 0x00000002, 0x4062C825, 0x4063B220,
-	0x00000002, 0x4062C826, 0x4063B220, 0x00000002, 0x4062C827, 0x4063B220,
-	0x00000002, 0x4062C828, 0x4063B220, 0x00000002, 0x4062C829, 0x4063B220,
-	0x00000002, 0x4062C82A, 0x4063B220, 0x00000002, 0x4062C82B, 0x4063B220,
-	0x00000002, 0x4062C82C, 0x4063B220, 0x00000002, 0x4062C82D, 0x4063B220,
-	0x00000002, 0x4062C82E, 0x4063B220, 0x00000002, 0x4062C82F, 0x4063B220,
-	0x00000002, 0x4062C830, 0x4063B220, 0x00000002,
-	// Block 586, offset 0x9280
-	0x4062C831, 0x4063B220, 0x00000002, 0x4062C832, 0x4063B220, 0x00000002,
-	0x4062C833, 0x4063B220, 0x00000002, 0x4062C834, 0x4063B220, 0x00000002,
-	0x4062C821, 0x4063B820, 0x00000002, 0x4062C822, 0x4063B820, 0x00000002,
-	0x4062C823, 0x4063B820, 0x00000002, 0x4062C824, 0x4063B820, 0x00000002,
-	0x4062C825, 0x4063B820, 0x00000002, 0x4062C826, 0x4063B820, 0x00000002,
-	0x4062C827, 0x4063B820, 0x00000002, 0x4062C828, 0x4063B820, 0x00000002,
-	0x4062C829, 0x4063B820, 0x00000002, 0x4062C82A, 0x4063B820, 0x00000002,
-	0x4062C82B, 0x4063B820, 0x00000002, 0x4062C82C, 0x4063B820, 0x00000002,
-	0x4062C82D, 0x4063B820, 0x00000002, 0x4062C82E, 0x4063B820, 0x00000002,
-	0x4062C82F, 0x4063B820, 0x00000002, 0x4062C830, 0x4063B820, 0x00000002,
-	0x4062C831, 0x4063B820, 0x00000002, 0x4062C832,
-	// Block 587, offset 0x92c0
-	0x4063B820, 0x00000002, 0x4062C833, 0x4063B820, 0x00000002, 0x4062C834,
-	0x4063B820, 0x00000002, 0x4062C835, 0x4063B820, 0x00000002, 0x4062C836,
-	0x4063B820, 0x00000002, 0x4062C837, 0x4063B820, 0x00000002, 0x4062C838,
-	0x4063B820, 0x00000002, 0x4062C839, 0x4063B820, 0x00000002, 0x4062C83A,
-	0x4063B820, 0x00000002, 0x4062C83B, 0x4063B820, 0x00000002, 0x4062C83C,
-	0x4063B820, 0x00000002, 0x4062C83D, 0x4063B820, 0x00000002, 0x4062C83E,
-	0x4063B820, 0x00000002, 0x4062C83F, 0x4063B820, 0x00000002, 0x4062C840,
-	0x4063B820, 0x00000002, 0x4062C841, 0x4063B820, 0x00000002, 0x4062C842,
-	0x4063B820, 0x00000002, 0x4062C843, 0x4063B820, 0x00000002, 0x4062C844,
-	0x4063B820, 0x00000002, 0x4062C845, 0x4063B820, 0x00000002, 0x4062C846,
-	0x4063B820, 0x00000002, 0x4062C847, 0x4063B820,
-	// Block 588, offset 0x9300
-	0x00000002, 0x4062C848, 0x4063B820, 0x00000002, 0x4062C849, 0x4063B820,
-	0x00000002, 0x4062C84A, 0x4063B820, 0x00000002, 0x4062C84B, 0x4063B820,
-	0x00000002, 0x4062C84C, 0x4063B820, 0x00000002, 0x4062C84D, 0x4063B820,
-	0x00000002, 0x4062C84E, 0x4063B820, 0x00000002, 0x4062C84F, 0x4063B820,
-	0x00000002, 0x4062C850, 0x4063B820, 0x00000002, 0x4062C851, 0x4063B820,
-	0x00000002, 0x4062C852, 0x4063B820, 0x00000002, 0x4062C853, 0x4063B820,
-	0x00000002, 0x4062C854, 0x4063B820, 0x00000002, 0x4062C855, 0x4063B820,
-	0x00000002, 0x4062C856, 0x4063B820, 0x00000002, 0x4062C857, 0x4063B820,
-	0x00000002, 0x4062C858, 0x4063B820, 0x00000003, 0x4062C821, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063B820, 0x40646420, 0x00000003,
-	// Block 589, offset 0x9340
-	0x4062C824, 0x4063B820, 0x40646420, 0x00000003, 0x4062C825, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C826, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C827, 0x4063B820, 0x40646420, 0x00000003, 0x4062C828, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C829, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C82A, 0x4063B820, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B820,
-	0x40646420, 0x00000003, 0x4062C82C, 0x4063B820, 0x40646420, 0x00000003,
-	0x4062C821, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C822, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C823, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062C824, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C825, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062C821, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C822, 0x4063B820, 0x40648C20, 0x00000003,
-	// Block 590, offset 0x9380
-	0x4062C823, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C824, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C825, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C826, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C827, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C828, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C829, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C82B, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C82C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82D, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062C82E, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062C82F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C821, 0x4063BA20,
-	0x40647220, 0x00000002, 0x4062C821, 0x4063BE20, 0x00000002, 0x4062C822,
-	0x4063BE20, 0x00000002, 0x4062C823, 0x4063BE20,
-	// Block 591, offset 0x93c0
-	0x00000002, 0x4062C824, 0x4063BE20, 0x00000002, 0x4062C825, 0x4063BE20,
-	0x00000002, 0x4062C826, 0x4063BE20, 0x00000002, 0x4062C827, 0x4063BE20,
-	0x00000002, 0x4062C828, 0x4063BE20, 0x00000002, 0x4062C829, 0x4063BE20,
-	0x00000002, 0x4062C82A, 0x4063BE20, 0x00000002, 0x4062C82B, 0x4063BE20,
-	0x00000002, 0x4062C821, 0x4063C220, 0x00000002, 0x4062C822, 0x4063C220,
-	0x00000002, 0x4062C823, 0x4063C220, 0x00000002, 0x4062C824, 0x4063C220,
-	0x00000002, 0x4062C825, 0x4063C220, 0x00000002, 0x4062C826, 0x4063C220,
-	0x00000002, 0x4062C827, 0x4063C220, 0x00000002, 0x4062C828, 0x4063C220,
-	0x00000002, 0x4062C829, 0x4063C220, 0x00000002, 0x4062C82A, 0x4063C220,
-	0x00000002, 0x4062C82B, 0x4063C220, 0x00000002, 0x4062C82C, 0x4063C220,
-	0x00000002, 0x4062C82D, 0x4063C220, 0x00000002,
-	// Block 592, offset 0x9400
-	0x4062C82E, 0x4063C220, 0x00000002, 0x4062C82F, 0x4063C220, 0x00000002,
-	0x4062C830, 0x4063C220, 0x00000002, 0x4062C831, 0x4063C220, 0x00000002,
-	0x4062C832, 0x4063C220, 0x00000002, 0x4062C833, 0x4063C220, 0x00000002,
-	0x4062C834, 0x4063C220, 0x00000002, 0x4062C835, 0x4063C220, 0x00000002,
-	0x4062C836, 0x4063C220, 0x00000002, 0x4062C837, 0x4063C220, 0x00000002,
-	0x4062C838, 0x4063C220, 0x00000002, 0x4062C839, 0x4063C220, 0x00000002,
-	0x4062C83A, 0x4063C220, 0x00000002, 0x4062C83B, 0x4063C220, 0x00000002,
-	0x4062C83C, 0x4063C220, 0x00000002, 0x4062C83D, 0x4063C220, 0x00000002,
-	0x4062C83E, 0x4063C220, 0x00000002, 0x4062C83F, 0x4063C220, 0x00000002,
-	0x4062C840, 0x4063C220, 0x00000002, 0x4062C841, 0x4063C220, 0x00000002,
-	0x4062C842, 0x4063C220, 0x00000002, 0x4062C843,
-	// Block 593, offset 0x9440
-	0x4063C220, 0x00000002, 0x4062C844, 0x4063C220, 0x00000002, 0x4062C845,
-	0x4063C220, 0x00000002, 0x4062C846, 0x4063C220, 0x00000002, 0x4062C847,
-	0x4063C220, 0x00000002, 0x4062C848, 0x4063C220, 0x00000002, 0x4062C849,
-	0x4063C220, 0x00000002, 0x4062C84A, 0x4063C220, 0x00000002, 0x4062C84B,
-	0x4063C220, 0x00000002, 0x4062C84C, 0x4063C220, 0x00000002, 0x4062C84D,
-	0x4063C220, 0x00000002, 0x4062C84E, 0x4063C220, 0x00000002, 0x4062C84F,
-	0x4063C220, 0x00000002, 0x4062C850, 0x4063C220, 0x00000002, 0x4062C851,
-	0x4063C220, 0x00000002, 0x4062C852, 0x4063C220, 0x00000002, 0x4062C853,
-	0x4063C220, 0x00000003, 0x4062C821, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C822, 0x4063C220, 0x40646420, 0x00000003, 0x4062C823, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C824, 0x4063C220,
-	// Block 594, offset 0x9480
-	0x40646420, 0x00000003, 0x4062C825, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C826, 0x4063C220, 0x40646420, 0x00000003, 0x4062C827, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C828, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C829, 0x4063C220, 0x40646420, 0x00000003, 0x4062C82A, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C82B, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C82C, 0x4063C220, 0x40646420, 0x00000003, 0x4062C82D, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C82E, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C82F, 0x4063C220, 0x40646420, 0x00000003, 0x4062C830, 0x4063C220,
-	0x40646420, 0x00000003, 0x4062C831, 0x4063C220, 0x40646420, 0x00000003,
-	0x4062C821, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C822, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062C823, 0x4063C220,
-	// Block 595, offset 0x94c0
-	0x40646A20, 0x00000003, 0x4062C821, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062C822, 0x4063C220, 0x40647220, 0x00000003, 0x4062C823, 0x4063C220,
-	0x40647220, 0x00000003, 0x4062C824, 0x4063C220, 0x40647220, 0x00000003,
-	0x4062C821, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C822, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062C823, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062C824, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C825, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062C826, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062C827, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C828, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062C829, 0x4063C220, 0x40648C20, 0x00000002,
-	0x4062C821, 0x4063C620, 0x00000002, 0x4062C822, 0x4063C620, 0x00000002,
-	0x4062C823, 0x4063C620, 0x00000002, 0x4062C824,
-	// Block 596, offset 0x9500
-	0x4063C620, 0x00000002, 0x4062C825, 0x4063C620, 0x00000002, 0x4062C826,
-	0x4063C620, 0x00000002, 0x4062C827, 0x4063C620, 0x00000002, 0x4062C828,
-	0x4063C620, 0x00000002, 0x4062C829, 0x4063C620, 0x00000002, 0x4062C821,
-	0x4063C820, 0x00000002, 0x4062C822, 0x4063C820, 0x00000002, 0x4062C823,
-	0x4063C820, 0x00000002, 0x4062C824, 0x4063C820, 0x00000002, 0x4062C825,
-	0x4063C820, 0x00000002, 0x4062C826, 0x4063C820, 0x00000002, 0x4062C827,
-	0x4063C820, 0x00000002, 0x4062C828, 0x4063C820, 0x00000002, 0x4062C829,
-	0x4063C820, 0x00000002, 0x4062C82A, 0x4063C820, 0x00000002, 0x4062C82B,
-	0x4063C820, 0x00000002, 0x4062C82C, 0x4063C820, 0x00000002, 0x4062C82D,
-	0x4063C820, 0x00000002, 0x4062C82E, 0x4063C820, 0x00000002, 0x4062C82F,
-	0x4063C820, 0x00000002, 0x4062C830, 0x4063C820,
-	// Block 597, offset 0x9540
-	0x00000002, 0x4062C831, 0x4063C820, 0x00000003, 0x4062C821, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C824, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062C825, 0x4063CC20, 0x40646420, 0x00000003,
-	0x4062C826, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C827, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062C821, 0x4063CC20, 0x40648C20, 0x00000002,
-	0x4062C821, 0x4063D020, 0x00000002, 0x4062C822, 0x4063D020, 0x00000002,
-	0x4062C823, 0x4063D020, 0x00000002, 0x4062C824, 0x4063D020, 0x00000002,
-	0x4062C825, 0x4063D020, 0x00000002, 0x4062C826, 0x4063D020, 0x00000002,
-	0x4062C827, 0x4063D020, 0x00000002, 0x4062C828, 0x4063D020, 0x00000002,
-	0x4062C829, 0x4063D020, 0x00000002, 0x4062C82A,
-	// Block 598, offset 0x9580
-	0x4063D020, 0x00000002, 0x4062C82B, 0x4063D020, 0x00000002, 0x4062C82C,
-	0x4063D020, 0x00000002, 0x4062C82D, 0x4063D020, 0x00000002, 0x4062C82E,
-	0x4063D020, 0x00000002, 0x4062C82F, 0x4063D020, 0x00000002, 0x4062C830,
-	0x4063D020, 0x00000002, 0x4062C831, 0x4063D020, 0x00000002, 0x4062C832,
-	0x4063D020, 0x00000002, 0x4062C833, 0x4063D020, 0x00000002, 0x4062C834,
-	0x4063D020, 0x00000002, 0x4062C835, 0x4063D020, 0x00000002, 0x4062C836,
-	0x4063D020, 0x00000002, 0x4062C837, 0x4063D020, 0x00000002, 0x4062C838,
-	0x4063D020, 0x00000002, 0x4062C839, 0x4063D020, 0x00000002, 0x4062C83A,
-	0x4063D020, 0x00000002, 0x4062C83B, 0x4063D020, 0x00000002, 0x4062C83C,
-	0x4063D020, 0x00000002, 0x4062C83D, 0x4063D020, 0x00000002, 0x4062C83E,
-	0x4063D020, 0x00000002, 0x4062C83F, 0x4063D020,
-	// Block 599, offset 0x95c0
-	0x00000002, 0x4062C840, 0x4063D020, 0x00000002, 0x4062C841, 0x4063D020,
-	0x00000002, 0x4062C842, 0x4063D020, 0x00000002, 0x4062C843, 0x4063D020,
-	0x00000002, 0x4062C844, 0x4063D020, 0x00000002, 0x4062C845, 0x4063D020,
-	0x00000002, 0x4062C846, 0x4063D020, 0x00000002, 0x4062C847, 0x4063D020,
-	0x00000002, 0x4062C848, 0x4063D020, 0x00000002, 0x4062C849, 0x4063D020,
-	0x00000002, 0x4062C84A, 0x4063D020, 0x00000003, 0x4062C821, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C822, 0x4063D020, 0x40646420, 0x00000003,
-	0x4062C823, 0x4063D020, 0x40646420, 0x00000003, 0x4062C824, 0x4063D020,
-	0x40646420, 0x00000003, 0x4062C821, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C822, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C823, 0x4063D020,
-	0x40646A20, 0x00000003, 0x4062C824, 0x4063D020,
-	// Block 600, offset 0x9600
-	0x40646A20, 0x00000003, 0x4062C825, 0x4063D020, 0x40646A20, 0x00000003,
-	0x4062C821, 0x4063D020, 0x40647220, 0x00000003, 0x4062C822, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062C823, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062C821, 0x4063D020, 0x40648220, 0x00000003, 0x4062C822, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C823, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C824, 0x4063D020, 0x40648220, 0x00000003, 0x4062C825, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C826, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C827, 0x4063D020, 0x40648220, 0x00000003, 0x4062C828, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C829, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C82A, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82B, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C82C, 0x4063D020,
-	// Block 601, offset 0x9640
-	0x40648220, 0x00000003, 0x4062C82D, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C82E, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82F, 0x4063D020,
-	0x40648220, 0x00000003, 0x4062C830, 0x4063D020, 0x40648220, 0x00000003,
-	0x4062C821, 0x4063D020, 0x40648420, 0x00000003, 0x4062C821, 0x4063D020,
-	0x40648C20, 0x00000003, 0x4062C822, 0x4063D020, 0x40648C20, 0x00000002,
-	0x4062CA21, 0x4063BC20, 0x00000002, 0x4062CA22, 0x4063BC20, 0x00000002,
-	0x4062CA23, 0x4063BC20, 0x00000002, 0x4062CC21, 0x4063A820, 0x00000002,
-	0x4062CC22, 0x4063A820, 0x00000002, 0x4062CC23, 0x4063A820, 0x00000002,
-	0x4062CC24, 0x4063A820, 0x00000002, 0x4062CC25, 0x4063A820, 0x00000002,
-	0x4062CC26, 0x4063A820, 0x00000002, 0x4062CC27, 0x4063A820, 0x00000002,
-	0x4062CC28, 0x4063A820, 0x00000002, 0x4062CC29,
-	// Block 602, offset 0x9680
-	0x4063A820, 0x00000002, 0x4062CC2A, 0x4063A820, 0x00000002, 0x4062CC2B,
-	0x4063A820, 0x00000002, 0x4062CC2C, 0x4063A820, 0x00000002, 0x4062CC2D,
-	0x4063A820, 0x00000002, 0x4062CC2E, 0x4063A820, 0x00000002, 0x4062CC2F,
-	0x4063A820, 0x00000002, 0x4062CC30, 0x4063A820, 0x00000002, 0x4062CC31,
-	0x4063A820, 0x00000002, 0x4062CC32, 0x4063A820, 0x00000002, 0x4062CC33,
-	0x4063A820, 0x00000002, 0x4062CC34, 0x4063A820, 0x00000002, 0x4062CC35,
-	0x4063A820, 0x00000002, 0x4062CC36, 0x4063A820, 0x00000002, 0x4062CC37,
-	0x4063A820, 0x00000002, 0x4062CC38, 0x4063A820, 0x00000002, 0x4062CC39,
-	0x4063A820, 0x00000002, 0x4062CC3A, 0x4063A820, 0x00000002, 0x4062CC3B,
-	0x4063A820, 0x00000003, 0x4062CC21, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC22, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 603, offset 0x96c0
-	0x4062CC23, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC25, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC27, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC28, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC29, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2A, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC2B, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC2C, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2D, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC2F, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC30, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC31, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC32, 0x4063A820, 0x40646420, 0x00000003,
-	// Block 604, offset 0x9700
-	0x4062CC33, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC34, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC35, 0x4063A820, 0x40646420, 0x00000003,
-	0x4062CC36, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC37, 0x4063A820,
-	0x40646420, 0x00000003, 0x4062CC21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC29, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC2A, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC2B, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 605, offset 0x9740
-	0x4062CC2C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2D, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CC2F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC21, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062CC22, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062CC23, 0x4063A820, 0x40647220, 0x00000003, 0x4062CC21, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062CC22, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062CC23, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062CC25, 0x4063A820, 0x40648220, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC27, 0x4063A820,
-	0x40648220, 0x00000003, 0x4062CC21, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062CC22, 0x4063A820, 0x40648420, 0x00000003,
-	// Block 606, offset 0x9780
-	0x4062CC23, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40648420, 0x00000003, 0x4062CC25, 0x4063A820, 0x40648420, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC21, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062CC22, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062CC23, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC24, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062CC25, 0x4063A820, 0x40648C20, 0x00000003,
-	0x4062CC26, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC27, 0x4063A820,
-	0x40648C20, 0x00000003, 0x4062CC28, 0x4063A820, 0x40648C20, 0x00000002,
-	0x4062CC21, 0x4063AA20, 0x00000002, 0x4062CC22, 0x4063AA20, 0x00000002,
-	0x4062CC23, 0x4063AA20, 0x00000002, 0x4062CC24, 0x4063AA20, 0x00000002,
-	0x4062CC25, 0x4063AA20, 0x00000002, 0x4062CC26,
-	// Block 607, offset 0x97c0
-	0x4063AA20, 0x00000002, 0x4062CC27, 0x4063AA20, 0x00000002, 0x4062CC28,
-	0x4063AA20, 0x00000002, 0x4062CC29, 0x4063AA20, 0x00000002, 0x4062CC2A,
-	0x4063AA20, 0x00000002, 0x4062CC2B, 0x4063AA20, 0x00000002, 0x4062CC2C,
-	0x4063AA20, 0x00000002, 0x4062CC2D, 0x4063AA20, 0x00000002, 0x4062CC2E,
-	0x4063AA20, 0x00000002, 0x4062CC2F, 0x4063AA20, 0x00000002, 0x4062CC30,
-	0x4063AA20, 0x00000002, 0x4062CC31, 0x4063AA20, 0x00000002, 0x4062CC32,
-	0x4063AA20, 0x00000002, 0x4062CC33, 0x4063AA20, 0x00000002, 0x4062CC34,
-	0x4063AA20, 0x00000002, 0x4062CC35, 0x4063AA20, 0x00000003, 0x4062CC21,
-	0x4063AA20, 0x40646420, 0x00000003, 0x4062CC22, 0x4063AA20, 0x40646420,
-	0x00000003, 0x4062CC21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CC22,
-	0x4063AA20, 0x40648C20, 0x00000003, 0x4062CC23,
-	// Block 608, offset 0x9800
-	0x4063AA20, 0x40648C20, 0x00000002, 0x4062CC21, 0x4063B020, 0x00000002,
-	0x4062CC21, 0x4063B820, 0x00000002, 0x4062CC22, 0x4063B820, 0x00000002,
-	0x4062CC23, 0x4063B820, 0x00000002, 0x4062CC24, 0x4063B820, 0x00000003,
-	0x4062CC21, 0x4063B820, 0x40646A20, 0x00000003, 0x4062CC22, 0x4063B820,
-	0x40646A20, 0x00000003, 0x4062CC23, 0x4063B820, 0x40646A20, 0x00000003,
-	0x4062CC21, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC22, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062CC23, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062CC24, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC25, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062CC26, 0x4063B820, 0x40648C20, 0x00000003,
-	0x4062CC27, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC28, 0x4063B820,
-	0x40648C20, 0x00000003, 0x4062CC29, 0x4063B820,
-	// Block 609, offset 0x9840
-	0x40648C20, 0x00000002, 0x4062CC21, 0x4063BE20, 0x00000002, 0x4062CC22,
-	0x4063BE20, 0x00000002, 0x4062CC23, 0x4063BE20, 0x00000002, 0x4062CC24,
-	0x4063BE20, 0x00000002, 0x4062CC25, 0x4063BE20, 0x00000002, 0x4062CC26,
-	0x4063BE20, 0x00000002, 0x4062CC27, 0x4063BE20, 0x00000002, 0x4062CC21,
-	0x4063C220, 0x00000002, 0x4062CC22, 0x4063C220, 0x00000002, 0x4062CC23,
-	0x4063C220, 0x00000002, 0x4062CC24, 0x4063C220, 0x00000002, 0x4062CC25,
-	0x4063C220, 0x00000002, 0x4062CC26, 0x4063C220, 0x00000002, 0x4062CC27,
-	0x4063C220, 0x00000002, 0x4062CC28, 0x4063C220, 0x00000002, 0x4062CC29,
-	0x4063C220, 0x00000003, 0x4062CC21, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062CC21, 0x4063CC20, 0x40646420, 0x00000003, 0x4062CC22, 0x4063CC20,
-	0x40646420, 0x00000003, 0x4062CC23, 0x4063CC20,
-	// Block 610, offset 0x9880
-	0x40646420, 0x00000003, 0x4062CC21, 0x4063CC20, 0x40648220, 0x00000002,
-	0x4062CE21, 0x4063A820, 0x00000002, 0x4062CE22, 0x4063A820, 0x00000002,
-	0x4062CE23, 0x4063A820, 0x00000002, 0x4062CE24, 0x4063A820, 0x00000002,
-	0x4062CE25, 0x4063A820, 0x00000002, 0x4062CE26, 0x4063A820, 0x00000002,
-	0x4062CE27, 0x4063A820, 0x00000002, 0x4062CE28, 0x4063A820, 0x00000002,
-	0x4062CE29, 0x4063A820, 0x00000002, 0x4062CE2A, 0x4063A820, 0x00000002,
-	0x4062CE2B, 0x4063A820, 0x00000002, 0x4062CE2C, 0x4063A820, 0x00000002,
-	0x4062CE2D, 0x4063A820, 0x00000002, 0x4062CE2E, 0x4063A820, 0x00000002,
-	0x4062CE2F, 0x4063A820, 0x00000002, 0x4062CE30, 0x4063A820, 0x00000002,
-	0x4062CE31, 0x4063A820, 0x00000002, 0x4062CE32, 0x4063A820, 0x00000002,
-	0x4062CE33, 0x4063A820, 0x00000002, 0x4062CE34,
-	// Block 611, offset 0x98c0
-	0x4063A820, 0x00000002, 0x4062CE35, 0x4063A820, 0x00000002, 0x4062CE36,
-	0x4063A820, 0x00000002, 0x4062CE37, 0x4063A820, 0x00000002, 0x4062CE38,
-	0x4063A820, 0x00000002, 0x4062CE39, 0x4063A820, 0x00000002, 0x4062CE3A,
-	0x4063A820, 0x00000002, 0x4062CE3B, 0x4063A820, 0x00000002, 0x4062CE3C,
-	0x4063A820, 0x00000002, 0x4062CE3D, 0x4063A820, 0x00000002, 0x4062CE3E,
-	0x4063A820, 0x00000003, 0x4062CE21, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CE22, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE23, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CE24, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CE25, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE26, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CE27, 0x4063A820, 0x40646A20, 0x00000003,
-	0x4062CE28, 0x4063A820, 0x40646A20, 0x00000003,
-	// Block 612, offset 0x9900
-	0x4062CE29, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE2A, 0x4063A820,
-	0x40646A20, 0x00000003, 0x4062CE21, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062CE22, 0x4063A820, 0x40647220, 0x00000003, 0x4062CE23, 0x4063A820,
-	0x40647220, 0x00000003, 0x4062CE24, 0x4063A820, 0x40647220, 0x00000003,
-	0x4062CE25, 0x4063A820, 0x40647220, 0x00000002, 0x4062CE21, 0x4063AA20,
-	0x00000002, 0x4062CE22, 0x4063AA20, 0x00000002, 0x4062CE23, 0x4063AA20,
-	0x00000002, 0x4062CE24, 0x4063AA20, 0x00000002, 0x4062CE25, 0x4063AA20,
-	0x00000002, 0x4062CE26, 0x4063AA20, 0x00000002, 0x4062CE27, 0x4063AA20,
-	0x00000002, 0x4062CE28, 0x4063AA20, 0x00000002, 0x4062CE29, 0x4063AA20,
-	0x00000002, 0x4062CE2A, 0x4063AA20, 0x00000002, 0x4062CE2B, 0x4063AA20,
-	0x00000002, 0x4062CE2C, 0x4063AA20, 0x00000002,
-	// Block 613, offset 0x9940
-	0x4062CE2D, 0x4063AA20, 0x00000002, 0x4062CE2E, 0x4063AA20, 0x00000002,
-	0x4062CE2F, 0x4063AA20, 0x00000002, 0x4062CE30, 0x4063AA20, 0x00000003,
-	0x4062CE21, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE22, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062CE23, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062CE24, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE25, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062CE26, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062CE27, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE28, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062CE21, 0x4063AC20, 0x40646420, 0x00000003,
-	0x4062CE21, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE22, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE23, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE24, 0x4063B420, 0x40646A20, 0x00000003,
-	// Block 614, offset 0x9980
-	0x4062CE25, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE26, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE27, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE28, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE29, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE2A, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE2B, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2C, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE2D, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE2E, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2F, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE30, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE31, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE32, 0x4063B420,
-	0x40646A20, 0x00000003, 0x4062CE33, 0x4063B420, 0x40646A20, 0x00000003,
-	0x4062CE21, 0x4063B420, 0x40648220, 0x00000003,
-	// Block 615, offset 0x99c0
-	0x4062CE22, 0x4063B420, 0x40648220, 0x00000003, 0x4062CE23, 0x4063B420,
-	0x40648220, 0x00000003, 0x4062CE21, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE22, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE23, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062CE24, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE25, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE26, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062CE27, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE28, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE29, 0x4063B420,
-	0x40648C20, 0x00000003, 0x4062CE2A, 0x4063B420, 0x40648C20, 0x00000003,
-	0x4062CE2B, 0x4063B420, 0x40648C20, 0x00000002, 0x4062CE21, 0x4063B620,
-	0x00000002, 0x4062CE22, 0x4063B620, 0x00000002, 0x4062CE23, 0x4063B620,
-	0x00000002, 0x4062CE24, 0x4063B620, 0x00000002,
-	// Block 616, offset 0x9a00
-	0x4062CE25, 0x4063B620, 0x00000002, 0x4062CE26, 0x4063B620, 0x00000002,
-	0x4062CE27, 0x4063B620, 0x00000002, 0x4062CE28, 0x4063B620, 0x00000002,
-	0x4062CE29, 0x4063B620, 0x00000002, 0x4062CE2A, 0x4063B620, 0x00000002,
-	0x4062CE2B, 0x4063B620, 0x00000002, 0x4062CE2C, 0x4063B620, 0x00000002,
-	0x4062CE2D, 0x4063B620, 0x00000002, 0x4062CE2E, 0x4063B620, 0x00000002,
-	0x4062CE21, 0x4063B820, 0x00000002, 0x4062CE22, 0x4063B820, 0x00000002,
-	0x4062CE23, 0x4063B820, 0x00000002, 0x4062CE24, 0x4063B820, 0x00000002,
-	0x4062CE25, 0x4063B820, 0x00000002, 0x4062CE26, 0x4063B820, 0x00000002,
-	0x4062CE27, 0x4063B820, 0x00000002, 0x4062CE28, 0x4063B820, 0x00000002,
-	0x4062CE29, 0x4063B820, 0x00000002, 0x4062CE2A, 0x4063B820, 0x00000002,
-	0x4062CE2B, 0x4063B820, 0x00000002, 0x4062CE2C,
-	// Block 617, offset 0x9a40
-	0x4063B820, 0x00000002, 0x4062CE2D, 0x4063B820, 0x00000002, 0x4062CE2E,
-	0x4063B820, 0x00000002, 0x4062CE2F, 0x4063B820, 0x00000002, 0x4062CE30,
-	0x4063B820, 0x00000002, 0x4062CE31, 0x4063B820, 0x00000002, 0x4062CE32,
-	0x4063B820, 0x00000002, 0x4062CE33, 0x4063B820, 0x00000002, 0x4062CE34,
-	0x4063B820, 0x00000002, 0x4062CE35, 0x4063B820, 0x00000002, 0x4062CE36,
-	0x4063B820, 0x00000002, 0x4062CE37, 0x4063B820, 0x00000002, 0x4062CE38,
-	0x4063B820, 0x00000002, 0x4062CE39, 0x4063B820, 0x00000002, 0x4062CE3A,
-	0x4063B820, 0x00000002, 0x4062CE3B, 0x4063B820, 0x00000002, 0x4062CE3C,
-	0x4063B820, 0x00000002, 0x4062CE3D, 0x4063B820, 0x00000002, 0x4062CE3E,
-	0x4063B820, 0x00000002, 0x4062CE3F, 0x4063B820, 0x00000002, 0x4062CE40,
-	0x4063B820, 0x00000002, 0x4062CE41, 0x4063B820,
-	// Block 618, offset 0x9a80
-	0x00000002, 0x4062CE42, 0x4063B820, 0x00000002, 0x4062CE43, 0x4063B820,
-	0x00000002, 0x4062CE44, 0x4063B820, 0x00000002, 0x4062CE45, 0x4063B820,
-	0x00000002, 0x4062CE46, 0x4063B820, 0x00000002, 0x4062CE47, 0x4063B820,
-	0x00000003, 0x4062CE21, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE22,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062CE23, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062CE24, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE25,
-	0x4063B820, 0x40646420, 0x00000002, 0x4062CE21, 0x4063C020, 0x00000002,
-	0x4062CE22, 0x4063C020, 0x00000002, 0x4062CE23, 0x4063C020, 0x00000002,
-	0x4062CE24, 0x4063C020, 0x00000002, 0x4062CE25, 0x4063C020, 0x00000002,
-	0x4062CE26, 0x4063C020, 0x00000002, 0x4062CE27, 0x4063C020, 0x00000002,
-	0x4062CE28, 0x4063C020, 0x00000002, 0x4062CE29,
-	// Block 619, offset 0x9ac0
-	0x4063C020, 0x00000002, 0x4062CE2A, 0x4063C020, 0x00000002, 0x4062CE2B,
-	0x4063C020, 0x00000002, 0x4062CE2C, 0x4063C020, 0x00000002, 0x4062CE2D,
-	0x4063C020, 0x00000002, 0x4062CE2E, 0x4063C020, 0x00000002, 0x4062CE2F,
-	0x4063C020, 0x00000002, 0x4062CE30, 0x4063C020, 0x00000002, 0x4062CE31,
-	0x4063C020, 0x00000002, 0x4062CE32, 0x4063C020, 0x00000002, 0x4062CE33,
-	0x4063C020, 0x00000002, 0x4062CE34, 0x4063C020, 0x00000002, 0x4062CE35,
-	0x4063C020, 0x00000002, 0x4062CE36, 0x4063C020, 0x00000002, 0x4062CE37,
-	0x4063C020, 0x00000002, 0x4062CE38, 0x4063C020, 0x00000002, 0x4062CE39,
-	0x4063C020, 0x00000002, 0x4062CE3A, 0x4063C020, 0x00000002, 0x4062CE3B,
-	0x4063C020, 0x00000003, 0x4062CE21, 0x4063C220, 0x40648220, 0x00000003,
-	0x4062CE22, 0x4063C220, 0x40648220, 0x00000003,
-	// Block 620, offset 0x9b00
-	0x4062CE23, 0x4063C220, 0x40648220, 0x00000003, 0x4062CE21, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062CE22, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062CE23, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE24, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062CE25, 0x4063C220, 0x40648C20, 0x00000003,
-	0x4062CE26, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE27, 0x4063C220,
-	0x40648C20, 0x00000002, 0x4062CE21, 0x4063D020, 0x00000002, 0x4062CE22,
-	0x4063D020, 0x00000002, 0x4062CE23, 0x4063D020, 0x00000002, 0x4062CE24,
-	0x4063D020, 0x00000002, 0x4062CE25, 0x4063D020, 0x00000002, 0x4062CE26,
-	0x4063D020, 0x00000002, 0x4062CE27, 0x4063D020, 0x00000002, 0x4062CE28,
-	0x4063D020, 0x00000002, 0x4062CE29, 0x4063D020, 0x00000002, 0x4062CE2A,
-	0x4063D020, 0x00000002, 0x4062CE2B, 0x4063D020,
-	// Block 621, offset 0x9b40
-	0x00000003, 0x4062CE21, 0x4063D020, 0x40646420, 0x00000003, 0x4062CE21,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE22, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE23, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE24,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE25, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE26, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE27,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE28, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE29, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2A,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE2B, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE2C, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2D,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE2E, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE2F, 0x4063D020, 0x40647220,
-	// Block 622, offset 0x9b80
-	0x00000003, 0x4062CE30, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE31,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE32, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE33, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE34,
-	0x4063D020, 0x40647220, 0x00000003, 0x4062CE35, 0x4063D020, 0x40647220,
-	0x00000003, 0x4062CE36, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE21,
-	0x4063D020, 0x40648420, 0x00000003, 0x4062CE22, 0x4063D020, 0x40648420,
-	0x00000003, 0x4062CE23, 0x4063D020, 0x40648420, 0x00000002, 0x4062D021,
-	0x4063A820, 0x00000002, 0x4062D022, 0x4063A820, 0x00000002, 0x4062D023,
-	0x4063A820, 0x00000002, 0x4062D024, 0x4063A820, 0x00000002, 0x4062D025,
-	0x4063A820, 0x00000002, 0x4062D026, 0x4063A820, 0x00000002, 0x4062D027,
-	0x4063A820, 0x00000002, 0x4062D028, 0x4063A820,
-	// Block 623, offset 0x9bc0
-	0x00000002, 0x4062D029, 0x4063A820, 0x00000002, 0x4062D02A, 0x4063A820,
-	0x00000002, 0x4062D02B, 0x4063A820, 0x00000002, 0x4062D02C, 0x4063A820,
-	0x00000002, 0x4062D02D, 0x4063A820, 0x00000002, 0x4062D02E, 0x4063A820,
-	0x00000002, 0x4062D02F, 0x4063A820, 0x00000002, 0x4062D030, 0x4063A820,
-	0x00000002, 0x4062D031, 0x4063A820, 0x00000002, 0x4062D032, 0x4063A820,
-	0x00000002, 0x4062D033, 0x4063A820, 0x00000002, 0x4062D034, 0x4063A820,
-	0x00000002, 0x4062D035, 0x4063A820, 0x00000002, 0x4062D036, 0x4063A820,
-	0x00000003, 0x4062D021, 0x4063A820, 0x40646420, 0x00000003, 0x4062D022,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D023, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062D024, 0x4063A820, 0x40646420, 0x00000003, 0x4062D025,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D026,
-	// Block 624, offset 0x9c00
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D027, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062D028, 0x4063A820, 0x40646420, 0x00000003, 0x4062D029,
-	0x4063A820, 0x40646420, 0x00000003, 0x4062D02A, 0x4063A820, 0x40646420,
-	0x00000003, 0x4062D02B, 0x4063A820, 0x40646420, 0x00000003, 0x4062D021,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D022, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D023, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D024,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D025, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D026, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D027,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D028, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D029, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02A,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D02B,
-	// Block 625, offset 0x9c40
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D02C, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D02D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02E,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D02F, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D030, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D031,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D032, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D033, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D034,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D035, 0x4063A820, 0x40646A20,
-	0x00000003, 0x4062D036, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D037,
-	0x4063A820, 0x40646A20, 0x00000003, 0x4062D021, 0x4063A820, 0x40647220,
-	0x00000003, 0x4062D022, 0x4063A820, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063A820, 0x40647220, 0x00000003, 0x4062D021,
-	// Block 626, offset 0x9c80
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D022, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D023, 0x4063A820, 0x40648220, 0x00000003, 0x4062D024,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D025, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D026, 0x4063A820, 0x40648220, 0x00000003, 0x4062D027,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D028, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D029, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02A,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D02B, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D02C, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02D,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D02E, 0x4063A820, 0x40648220,
-	0x00000003, 0x4062D02F, 0x4063A820, 0x40648220, 0x00000003, 0x4062D030,
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D031,
-	// Block 627, offset 0x9cc0
-	0x4063A820, 0x40648220, 0x00000003, 0x4062D021, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D022, 0x4063A820, 0x40648420, 0x00000003, 0x4062D023,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D024, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D025, 0x4063A820, 0x40648420, 0x00000003, 0x4062D026,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D027, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D028, 0x4063A820, 0x40648420, 0x00000003, 0x4062D029,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D02A, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D02B, 0x4063A820, 0x40648420, 0x00000003, 0x4062D02C,
-	0x4063A820, 0x40648420, 0x00000003, 0x4062D02D, 0x4063A820, 0x40648420,
-	0x00000003, 0x4062D02E, 0x4063A820, 0x40648420, 0x00000003, 0x4062D021,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D022,
-	// Block 628, offset 0x9d00
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D023, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D024, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D025,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D026, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D027, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D028,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D029, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D02A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02B,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D02C, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D02D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02E,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D02F, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D030, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D031,
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D032,
-	// Block 629, offset 0x9d40
-	0x4063A820, 0x40648C20, 0x00000003, 0x4062D033, 0x4063A820, 0x40648C20,
-	0x00000003, 0x4062D034, 0x4063A820, 0x40648C20, 0x00000002, 0x4062D021,
-	0x4063AA20, 0x00000002, 0x4062D022, 0x4063AA20, 0x00000002, 0x4062D023,
-	0x4063AA20, 0x00000002, 0x4062D024, 0x4063AA20, 0x00000002, 0x4062D025,
-	0x4063AA20, 0x00000002, 0x4062D026, 0x4063AA20, 0x00000002, 0x4062D027,
-	0x4063AA20, 0x00000002, 0x4062D028, 0x4063AA20, 0x00000002, 0x4062D029,
-	0x4063AA20, 0x00000002, 0x4062D02A, 0x4063AA20, 0x00000002, 0x4062D02B,
-	0x4063AA20, 0x00000002, 0x4062D02C, 0x4063AA20, 0x00000002, 0x4062D02D,
-	0x4063AA20, 0x00000002, 0x4062D02E, 0x4063AA20, 0x00000002, 0x4062D02F,
-	0x4063AA20, 0x00000002, 0x4062D030, 0x4063AA20, 0x00000002, 0x4062D031,
-	0x4063AA20, 0x00000002, 0x4062D032, 0x4063AA20,
-	// Block 630, offset 0x9d80
-	0x00000002, 0x4062D033, 0x4063AA20, 0x00000002, 0x4062D034, 0x4063AA20,
-	0x00000002, 0x4062D035, 0x4063AA20, 0x00000002, 0x4062D036, 0x4063AA20,
-	0x00000002, 0x4062D037, 0x4063AA20, 0x00000002, 0x4062D038, 0x4063AA20,
-	0x00000002, 0x4062D039, 0x4063AA20, 0x00000002, 0x4062D03A, 0x4063AA20,
-	0x00000002, 0x4062D03B, 0x4063AA20, 0x00000002, 0x4062D03C, 0x4063AA20,
-	0x00000002, 0x4062D03D, 0x4063AA20, 0x00000003, 0x4062D021, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062D022, 0x4063AA20, 0x40646420, 0x00000003,
-	0x4062D023, 0x4063AA20, 0x40646420, 0x00000003, 0x4062D024, 0x4063AA20,
-	0x40646420, 0x00000003, 0x4062D021, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062D022, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D023, 0x4063AA20,
-	0x40648C20, 0x00000003, 0x4062D024, 0x4063AA20,
-	// Block 631, offset 0x9dc0
-	0x40648C20, 0x00000003, 0x4062D025, 0x4063AA20, 0x40648C20, 0x00000003,
-	0x4062D026, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D021, 0x4063AC20,
-	0x40648C20, 0x00000003, 0x4062D022, 0x4063AC20, 0x40648C20, 0x00000003,
-	0x4062D023, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063AC20,
-	0x40648C20, 0x00000003, 0x4062D025, 0x4063AC20, 0x40648C20, 0x00000003,
-	0x4062D026, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063AC20,
-	0x40648C20, 0x00000003, 0x4062D028, 0x4063AC20, 0x40648C20, 0x00000003,
-	0x4062D029, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063AC20,
-	0x40648C20, 0x00000002, 0x4062D021, 0x4063B020, 0x00000002, 0x4062D022,
-	0x4063B020, 0x00000002, 0x4062D023, 0x4063B020, 0x00000002, 0x4062D024,
-	0x4063B020, 0x00000002, 0x4062D025, 0x4063B020,
-	// Block 632, offset 0x9e00
-	0x00000003, 0x4062D021, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D022,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062D023, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062D024, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D025,
-	0x4063B020, 0x40646A20, 0x00000003, 0x4062D026, 0x4063B020, 0x40646A20,
-	0x00000003, 0x4062D027, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D021,
-	0x4063B020, 0x40647220, 0x00000003, 0x4062D021, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062D022, 0x4063B020, 0x40648220, 0x00000003, 0x4062D023,
-	0x4063B020, 0x40648220, 0x00000003, 0x4062D024, 0x4063B020, 0x40648220,
-	0x00000003, 0x4062D025, 0x4063B020, 0x40648220, 0x00000003, 0x4062D021,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062D022, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062D023, 0x4063B420, 0x40646420,
-	// Block 633, offset 0x9e40
-	0x00000003, 0x4062D024, 0x4063B420, 0x40646420, 0x00000003, 0x4062D025,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062D026, 0x4063B420, 0x40646420,
-	0x00000003, 0x4062D027, 0x4063B420, 0x40646420, 0x00000003, 0x4062D028,
-	0x4063B420, 0x40646420, 0x00000003, 0x4062D021, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D022, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D023,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D024, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D025, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D027, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D028, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D029,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D02B, 0x4063B420, 0x40646A20,
-	// Block 634, offset 0x9e80
-	0x00000003, 0x4062D02C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D02D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D02E, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D02F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D030,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D031, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D032, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D033,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D034, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D035, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D036,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D037, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D038, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D039,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D03A, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D03B, 0x4063B420, 0x40646A20,
-	// Block 635, offset 0x9ec0
-	0x00000003, 0x4062D03C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D03D,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D03E, 0x4063B420, 0x40646A20,
-	0x00000003, 0x4062D03F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D040,
-	0x4063B420, 0x40646A20, 0x00000003, 0x4062D021, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062D022, 0x4063B420, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062D024, 0x4063B420, 0x40647220,
-	0x00000003, 0x4062D025, 0x4063B420, 0x40647220, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40647220, 0x00000003, 0x4062D021, 0x4063B420, 0x40648220,
-	0x00000003, 0x4062D021, 0x4063B420, 0x40648420, 0x00000003, 0x4062D022,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D023, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D024, 0x4063B420, 0x40648420,
-	// Block 636, offset 0x9f00
-	0x00000003, 0x4062D025, 0x4063B420, 0x40648420, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D027, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D028, 0x4063B420, 0x40648420, 0x00000003, 0x4062D029,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D02B, 0x4063B420, 0x40648420, 0x00000003, 0x4062D02C,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D02D, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D02E, 0x4063B420, 0x40648420, 0x00000003, 0x4062D02F,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D030, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D031, 0x4063B420, 0x40648420, 0x00000003, 0x4062D032,
-	0x4063B420, 0x40648420, 0x00000003, 0x4062D033, 0x4063B420, 0x40648420,
-	0x00000003, 0x4062D021, 0x4063B420, 0x40648C20,
-	// Block 637, offset 0x9f40
-	0x00000003, 0x4062D022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D023,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D024, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D025, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D026,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D027, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D028, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D029,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D02B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D02C,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D02D, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D02E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D02F,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D030, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D031, 0x4063B420, 0x40648C20,
-	// Block 638, offset 0x9f80
-	0x00000003, 0x4062D032, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D033,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D034, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D035, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D036,
-	0x4063B420, 0x40648C20, 0x00000003, 0x4062D037, 0x4063B420, 0x40648C20,
-	0x00000003, 0x4062D038, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D039,
-	0x4063B420, 0x40648C20, 0x00000002, 0x4062D021, 0x4063B620, 0x00000002,
-	0x4062D022, 0x4063B620, 0x00000002, 0x4062D023, 0x4063B620, 0x00000002,
-	0x4062D024, 0x4063B620, 0x00000002, 0x4062D025, 0x4063B620, 0x00000002,
-	0x4062D026, 0x4063B620, 0x00000002, 0x4062D027, 0x4063B620, 0x00000002,
-	0x4062D028, 0x4063B620, 0x00000002, 0x4062D029, 0x4063B620, 0x00000002,
-	0x4062D02A, 0x4063B620, 0x00000002, 0x4062D02B,
-	// Block 639, offset 0x9fc0
-	0x4063B620, 0x00000002, 0x4062D02C, 0x4063B620, 0x00000002, 0x4062D02D,
-	0x4063B620, 0x00000002, 0x4062D02E, 0x4063B620, 0x00000002, 0x4062D02F,
-	0x4063B620, 0x00000002, 0x4062D030, 0x4063B620, 0x00000002, 0x4062D031,
-	0x4063B620, 0x00000002, 0x4062D021, 0x4063B820, 0x00000002, 0x4062D022,
-	0x4063B820, 0x00000002, 0x4062D023, 0x4063B820, 0x00000002, 0x4062D024,
-	0x4063B820, 0x00000002, 0x4062D025, 0x4063B820, 0x00000002, 0x4062D026,
-	0x4063B820, 0x00000002, 0x4062D027, 0x4063B820, 0x00000002, 0x4062D028,
-	0x4063B820, 0x00000002, 0x4062D029, 0x4063B820, 0x00000002, 0x4062D02A,
-	0x4063B820, 0x00000002, 0x4062D02B, 0x4063B820, 0x00000002, 0x4062D02C,
-	0x4063B820, 0x00000002, 0x4062D02D, 0x4063B820, 0x00000002, 0x4062D02E,
-	0x4063B820, 0x00000002, 0x4062D02F, 0x4063B820,
-	// Block 640, offset 0xa000
-	0x00000002, 0x4062D030, 0x4063B820, 0x00000002, 0x4062D031, 0x4063B820,
-	0x00000002, 0x4062D032, 0x4063B820, 0x00000002, 0x4062D033, 0x4063B820,
-	0x00000002, 0x4062D034, 0x4063B820, 0x00000002, 0x4062D035, 0x4063B820,
-	0x00000002, 0x4062D036, 0x4063B820, 0x00000002, 0x4062D037, 0x4063B820,
-	0x00000002, 0x4062D038, 0x4063B820, 0x00000002, 0x4062D039, 0x4063B820,
-	0x00000002, 0x4062D03A, 0x4063B820, 0x00000002, 0x4062D03B, 0x4063B820,
-	0x00000002, 0x4062D03C, 0x4063B820, 0x00000002, 0x4062D03D, 0x4063B820,
-	0x00000002, 0x4062D03E, 0x4063B820, 0x00000002, 0x4062D03F, 0x4063B820,
-	0x00000002, 0x4062D040, 0x4063B820, 0x00000002, 0x4062D041, 0x4063B820,
-	0x00000002, 0x4062D042, 0x4063B820, 0x00000002, 0x4062D043, 0x4063B820,
-	0x00000002, 0x4062D044, 0x4063B820, 0x00000002,
-	// Block 641, offset 0xa040
-	0x4062D045, 0x4063B820, 0x00000002, 0x4062D046, 0x4063B820, 0x00000002,
-	0x4062D047, 0x4063B820, 0x00000002, 0x4062D048, 0x4063B820, 0x00000002,
-	0x4062D049, 0x4063B820, 0x00000002, 0x4062D04A, 0x4063B820, 0x00000002,
-	0x4062D04B, 0x4063B820, 0x00000002, 0x4062D04C, 0x4063B820, 0x00000002,
-	0x4062D04D, 0x4063B820, 0x00000002, 0x4062D04E, 0x4063B820, 0x00000002,
-	0x4062D04F, 0x4063B820, 0x00000002, 0x4062D050, 0x4063B820, 0x00000002,
-	0x4062D051, 0x4063B820, 0x00000002, 0x4062D052, 0x4063B820, 0x00000002,
-	0x4062D053, 0x4063B820, 0x00000002, 0x4062D054, 0x4063B820, 0x00000002,
-	0x4062D055, 0x4063B820, 0x00000002, 0x4062D056, 0x4063B820, 0x00000002,
-	0x4062D057, 0x4063B820, 0x00000002, 0x4062D058, 0x4063B820, 0x00000002,
-	0x4062D059, 0x4063B820, 0x00000002, 0x4062D05A,
-	// Block 642, offset 0xa080
-	0x4063B820, 0x00000002, 0x4062D05B, 0x4063B820, 0x00000003, 0x4062D021,
-	0x4063B820, 0x40646420, 0x00000003, 0x4062D022, 0x4063B820, 0x40646420,
-	0x00000003, 0x4062D023, 0x4063B820, 0x40646420, 0x00000003, 0x4062D021,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D022, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D023, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D024,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D025, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D026, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D027,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D028, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D029, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D02A,
-	0x4063B820, 0x40646A20, 0x00000003, 0x4062D02B, 0x4063B820, 0x40646A20,
-	0x00000003, 0x4062D021, 0x4063B820, 0x40647220,
-	// Block 643, offset 0xa0c0
-	0x00000003, 0x4062D022, 0x4063B820, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063B820, 0x40647220, 0x00000003, 0x4062D024, 0x4063B820, 0x40647220,
-	0x00000003, 0x4062D021, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D022,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D023, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D024, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D025,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D026, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D027, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D028,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D029, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D02A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02B,
-	0x4063B820, 0x40648C20, 0x00000003, 0x4062D02C, 0x4063B820, 0x40648C20,
-	0x00000003, 0x4062D02D, 0x4063B820, 0x40648C20,
-	// Block 644, offset 0xa100
-	0x00000003, 0x4062D02E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02F,
-	0x4063B820, 0x40648C20, 0x00000002, 0x4062D021, 0x4063BA20, 0x00000002,
-	0x4062D022, 0x4063BA20, 0x00000002, 0x4062D023, 0x4063BA20, 0x00000002,
-	0x4062D024, 0x4063BA20, 0x00000002, 0x4062D025, 0x4063BA20, 0x00000002,
-	0x4062D026, 0x4063BA20, 0x00000002, 0x4062D027, 0x4063BA20, 0x00000002,
-	0x4062D028, 0x4063BA20, 0x00000002, 0x4062D029, 0x4063BA20, 0x00000002,
-	0x4062D02A, 0x4063BA20, 0x00000002, 0x4062D02B, 0x4063BA20, 0x00000002,
-	0x4062D02C, 0x4063BA20, 0x00000002, 0x4062D02D, 0x4063BA20, 0x00000002,
-	0x4062D02E, 0x4063BA20, 0x00000002, 0x4062D02F, 0x4063BA20, 0x00000002,
-	0x4062D030, 0x4063BA20, 0x00000002, 0x4062D031, 0x4063BA20, 0x00000002,
-	0x4062D032, 0x4063BA20, 0x00000002, 0x4062D033,
-	// Block 645, offset 0xa140
-	0x4063BA20, 0x00000002, 0x4062D034, 0x4063BA20, 0x00000002, 0x4062D035,
-	0x4063BA20, 0x00000003, 0x4062D021, 0x4063BA20, 0x40646420, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D023, 0x4063BA20,
-	0x40646420, 0x00000003, 0x4062D024, 0x4063BA20, 0x40646420, 0x00000003,
-	0x4062D025, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D026, 0x4063BA20,
-	0x40646420, 0x00000003, 0x4062D027, 0x4063BA20, 0x40646420, 0x00000003,
-	0x4062D028, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D029, 0x4063BA20,
-	0x40646420, 0x00000003, 0x4062D021, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D023, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D024, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D025, 0x4063BA20, 0x40646A20, 0x00000003,
-	// Block 646, offset 0xa180
-	0x4062D026, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D027, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D028, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D029, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D02B, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D02C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02D, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D02E, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D02F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D030, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D031, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D032, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D033, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D034, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D035, 0x4063BA20, 0x40646A20, 0x00000003,
-	// Block 647, offset 0xa1c0
-	0x4062D036, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D037, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D038, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D039, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03A, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D03B, 0x4063BA20, 0x40646A20, 0x00000003,
-	0x4062D03C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03D, 0x4063BA20,
-	0x40646A20, 0x00000003, 0x4062D021, 0x4063BA20, 0x40647220, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D023, 0x4063BA20,
-	0x40647220, 0x00000003, 0x4062D024, 0x4063BA20, 0x40647220, 0x00000003,
-	0x4062D025, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D026, 0x4063BA20,
-	0x40647220, 0x00000003, 0x4062D021, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D022, 0x4063BA20, 0x40648C20, 0x00000003,
-	// Block 648, offset 0xa200
-	0x4062D023, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D025, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D026, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D028, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D029, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D02B, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D02C, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02D, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D02E, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D02F, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D030, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D031, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D032, 0x4063BA20, 0x40648C20, 0x00000003,
-	// Block 649, offset 0xa240
-	0x4062D033, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D034, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D035, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D036, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D037, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D038, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D039, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03A, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D03B, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D03C, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03D, 0x4063BA20,
-	0x40648C20, 0x00000003, 0x4062D03E, 0x4063BA20, 0x40648C20, 0x00000003,
-	0x4062D03F, 0x4063BA20, 0x40648C20, 0x00000002, 0x4062D021, 0x4063BE20,
-	0x00000002, 0x4062D022, 0x4063BE20, 0x00000002, 0x4062D023, 0x4063BE20,
-	0x00000002, 0x4062D024, 0x4063BE20, 0x00000002,
-	// Block 650, offset 0xa280
-	0x4062D025, 0x4063BE20, 0x00000002, 0x4062D026, 0x4063BE20, 0x00000002,
-	0x4062D027, 0x4063BE20, 0x00000002, 0x4062D028, 0x4063BE20, 0x00000002,
-	0x4062D029, 0x4063BE20, 0x00000002, 0x4062D02A, 0x4063BE20, 0x00000002,
-	0x4062D02B, 0x4063BE20, 0x00000002, 0x4062D02C, 0x4063BE20, 0x00000002,
-	0x4062D02D, 0x4063BE20, 0x00000002, 0x4062D02E, 0x4063BE20, 0x00000002,
-	0x4062D02F, 0x4063BE20, 0x00000002, 0x4062D030, 0x4063BE20, 0x00000002,
-	0x4062D031, 0x4063BE20, 0x00000002, 0x4062D032, 0x4063BE20, 0x00000002,
-	0x4062D033, 0x4063BE20, 0x00000002, 0x4062D034, 0x4063BE20, 0x00000002,
-	0x4062D035, 0x4063BE20, 0x00000002, 0x4062D036, 0x4063BE20, 0x00000002,
-	0x4062D037, 0x4063BE20, 0x00000002, 0x4062D038, 0x4063BE20, 0x00000002,
-	0x4062D039, 0x4063BE20, 0x00000002, 0x4062D03A,
-	// Block 651, offset 0xa2c0
-	0x4063BE20, 0x00000002, 0x4062D03B, 0x4063BE20, 0x00000002, 0x4062D03C,
-	0x4063BE20, 0x00000002, 0x4062D03D, 0x4063BE20, 0x00000003, 0x4062D021,
-	0x4063BE20, 0x40646420, 0x00000003, 0x4062D022, 0x4063BE20, 0x40646420,
-	0x00000003, 0x4062D023, 0x4063BE20, 0x40646420, 0x00000003, 0x4062D021,
-	0x4063BE20, 0x40648C20, 0x00000003, 0x4062D022, 0x4063BE20, 0x40648C20,
-	0x00000003, 0x4062D023, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062D024,
-	0x4063BE20, 0x40648C20, 0x00000003, 0x4062D025, 0x4063BE20, 0x40648C20,
-	0x00000003, 0x4062D026, 0x4063BE20, 0x40648C20, 0x00000002, 0x4062D021,
-	0x4063C020, 0x00000002, 0x4062D022, 0x4063C020, 0x00000002, 0x4062D023,
-	0x4063C020, 0x00000002, 0x4062D024, 0x4063C020, 0x00000002, 0x4062D025,
-	0x4063C020, 0x00000002, 0x4062D026, 0x4063C020,
-	// Block 652, offset 0xa300
-	0x00000002, 0x4062D027, 0x4063C020, 0x00000002, 0x4062D028, 0x4063C020,
-	0x00000002, 0x4062D029, 0x4063C020, 0x00000002, 0x4062D02A, 0x4063C020,
-	0x00000002, 0x4062D02B, 0x4063C020, 0x00000002, 0x4062D02C, 0x4063C020,
-	0x00000002, 0x4062D02D, 0x4063C020, 0x00000002, 0x4062D02E, 0x4063C020,
-	0x00000002, 0x4062D02F, 0x4063C020, 0x00000002, 0x4062D030, 0x4063C020,
-	0x00000002, 0x4062D031, 0x4063C020, 0x00000002, 0x4062D032, 0x4063C020,
-	0x00000002, 0x4062D033, 0x4063C020, 0x00000002, 0x4062D034, 0x4063C020,
-	0x00000002, 0x4062D035, 0x4063C020, 0x00000002, 0x4062D021, 0x4063C220,
-	0x00000002, 0x4062D022, 0x4063C220, 0x00000002, 0x4062D023, 0x4063C220,
-	0x00000002, 0x4062D024, 0x4063C220, 0x00000002, 0x4062D025, 0x4063C220,
-	0x00000002, 0x4062D026, 0x4063C220, 0x00000002,
-	// Block 653, offset 0xa340
-	0x4062D027, 0x4063C220, 0x00000002, 0x4062D028, 0x4063C220, 0x00000002,
-	0x4062D029, 0x4063C220, 0x00000002, 0x4062D02A, 0x4063C220, 0x00000002,
-	0x4062D02B, 0x4063C220, 0x00000002, 0x4062D02C, 0x4063C220, 0x00000002,
-	0x4062D02D, 0x4063C220, 0x00000002, 0x4062D02E, 0x4063C220, 0x00000002,
-	0x4062D02F, 0x4063C220, 0x00000002, 0x4062D030, 0x4063C220, 0x00000002,
-	0x4062D031, 0x4063C220, 0x00000002, 0x4062D032, 0x4063C220, 0x00000002,
-	0x4062D033, 0x4063C220, 0x00000002, 0x4062D034, 0x4063C220, 0x00000002,
-	0x4062D035, 0x4063C220, 0x00000002, 0x4062D036, 0x4063C220, 0x00000002,
-	0x4062D037, 0x4063C220, 0x00000002, 0x4062D038, 0x4063C220, 0x00000003,
-	0x4062D021, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D022, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D023, 0x4063C220,
-	// Block 654, offset 0xa380
-	0x40646A20, 0x00000003, 0x4062D024, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D025, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D026, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D027, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D028, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D029, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D02A, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D02B, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02C, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D02D, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D02E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02F, 0x4063C220,
-	0x40646A20, 0x00000003, 0x4062D030, 0x4063C220, 0x40646A20, 0x00000003,
-	0x4062D021, 0x4063C220, 0x40647220, 0x00000003, 0x4062D021, 0x4063C220,
-	0x40648C20, 0x00000003, 0x4062D021, 0x4063C420,
-	// Block 655, offset 0xa3c0
-	0x40646A20, 0x00000003, 0x4062D022, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062D023, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D024, 0x4063C420,
-	0x40646A20, 0x00000003, 0x4062D025, 0x4063C420, 0x40646A20, 0x00000003,
-	0x4062D026, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D027, 0x4063C420,
-	0x40646A20, 0x00000002, 0x4062D021, 0x4063C620, 0x00000002, 0x4062D022,
-	0x4063C620, 0x00000002, 0x4062D023, 0x4063C620, 0x00000002, 0x4062D024,
-	0x4063C620, 0x00000002, 0x4062D025, 0x4063C620, 0x00000002, 0x4062D026,
-	0x4063C620, 0x00000002, 0x4062D027, 0x4063C620, 0x00000002, 0x4062D021,
-	0x4063C820, 0x00000002, 0x4062D022, 0x4063C820, 0x00000002, 0x4062D023,
-	0x4063C820, 0x00000002, 0x4062D024, 0x4063C820, 0x00000002, 0x4062D025,
-	0x4063C820, 0x00000002, 0x4062D026, 0x4063C820,
-	// Block 656, offset 0xa400
-	0x00000002, 0x4062D027, 0x4063C820, 0x00000002, 0x4062D028, 0x4063C820,
-	0x00000002, 0x4062D029, 0x4063C820, 0x00000002, 0x4062D02A, 0x4063C820,
-	0x00000002, 0x4062D021, 0x4063CA20, 0x00000002, 0x4062D022, 0x4063CA20,
-	0x00000002, 0x4062D023, 0x4063CA20, 0x00000002, 0x4062D024, 0x4063CA20,
-	0x00000002, 0x4062D025, 0x4063CA20, 0x00000002, 0x4062D026, 0x4063CA20,
-	0x00000002, 0x4062D027, 0x4063CA20, 0x00000002, 0x4062D028, 0x4063CA20,
-	0x00000002, 0x4062D029, 0x4063CA20, 0x00000002, 0x4062D02A, 0x4063CA20,
-	0x00000003, 0x4062D021, 0x4063CA20, 0x40647220, 0x00000003, 0x4062D022,
-	0x4063CA20, 0x40647220, 0x00000003, 0x4062D023, 0x4063CA20, 0x40647220,
-	0x00000003, 0x4062D024, 0x4063CA20, 0x40647220, 0x00000003, 0x4062D021,
-	0x4063CA20, 0x40648C20, 0x00000003, 0x4062D022,
-	// Block 657, offset 0xa440
-	0x4063CA20, 0x40648C20, 0x00000003, 0x4062D023, 0x4063CA20, 0x40648C20,
-	0x00000003, 0x4062D024, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D025,
-	0x4063CA20, 0x40648C20, 0x00000003, 0x4062D026, 0x4063CA20, 0x40648C20,
-	0x00000003, 0x4062D027, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D021,
-	0x4063CC20, 0x40646420, 0x00000003, 0x4062D021, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062D022, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D023,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D024, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062D025, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D026,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D027, 0x4063CC20, 0x40646A20,
-	0x00000003, 0x4062D028, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D029,
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D02A,
-	// Block 658, offset 0xa480
-	0x4063CC20, 0x40646A20, 0x00000003, 0x4062D021, 0x4063CC20, 0x40647220,
-	0x00000003, 0x4062D022, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D023,
-	0x4063CC20, 0x40647220, 0x00000003, 0x4062D024, 0x4063CC20, 0x40647220,
-	0x00000003, 0x4062D025, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D026,
-	0x4063CC20, 0x40647220, 0x00000003, 0x4062D027, 0x4063CC20, 0x40647220,
-	0x00000003, 0x4062D028, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D029,
-	0x4063CC20, 0x40647220, 0x00000003, 0x4062D021, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062D022, 0x4063CC20, 0x40648220, 0x00000003, 0x4062D023,
-	0x4063CC20, 0x40648220, 0x00000003, 0x4062D024, 0x4063CC20, 0x40648220,
-	0x00000003, 0x4062D021, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D022,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062D023,
-	// Block 659, offset 0xa4c0
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062D024, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062D025, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D026,
-	0x4063CC20, 0x40648420, 0x00000003, 0x4062D027, 0x4063CC20, 0x40648420,
-	0x00000003, 0x4062D028, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D021,
-	0x4063CC20, 0x40648C20, 0x00000002, 0x4062D021, 0x4063CE20, 0x00000002,
-	0x4062D022, 0x4063CE20, 0x00000002, 0x4062D023, 0x4063CE20, 0x00000002,
-	0x4062D024, 0x4063CE20, 0x00000002, 0x4062D025, 0x4063CE20, 0x00000002,
-	0x4062D026, 0x4063CE20, 0x00000002, 0x4062D027, 0x4063CE20, 0x00000002,
-	0x4062D028, 0x4063CE20, 0x00000002, 0x4062D029, 0x4063CE20, 0x00000002,
-	0x4062D02A, 0x4063CE20, 0x00000002, 0x4062D02B, 0x4063CE20, 0x00000002,
-	0x4062D02C, 0x4063CE20, 0x00000002, 0x4062D02D,
-	// Block 660, offset 0xa500
-	0x4063CE20, 0x00000002, 0x4062D02E, 0x4063CE20, 0x00000002, 0x4062D02F,
-	0x4063CE20, 0x00000002, 0x4062D030, 0x4063CE20, 0x00000002, 0x4062D031,
-	0x4063CE20, 0x00000002, 0x4062D032, 0x4063CE20, 0x00000002, 0x4062D033,
-	0x4063CE20, 0x00000002, 0x4062D034, 0x4063CE20, 0x00000002, 0x4062D035,
-	0x4063CE20, 0x00000002, 0x4062D036, 0x4063CE20, 0x00000002, 0x4062D037,
-	0x4063CE20, 0x00000002, 0x4062D038, 0x4063CE20, 0x00000002, 0x4062D039,
-	0x4063CE20, 0x00000002, 0x4062D03A, 0x4063CE20, 0x00000002, 0x4062D03B,
-	0x4063CE20, 0x00000002, 0x4062D03C, 0x4063CE20, 0x00000002, 0x4062D03D,
-	0x4063CE20, 0x00000002, 0x4062D03E, 0x4063CE20, 0x00000002, 0x4062D03F,
-	0x4063CE20, 0x00000003, 0x4062D021, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062D022, 0x4063D020, 0x40647220, 0x00000003,
-	// Block 661, offset 0xa540
-	0x4062D023, 0x4063D020, 0x40647220, 0x00000003, 0x4062D024, 0x4063D020,
-	0x40647220, 0x00000003, 0x4062D025, 0x4063D020, 0x40647220, 0x00000003,
-	0x4062D026, 0x4063D020, 0x40647220, 0x00000002, 0x40403C20, 0xA070F102,
-	0x00000002, 0x402D9A22, 0xAE603202, 0x00000002, 0x002D9AC3, 0xAE603202,
-	0x00000002, 0x402D9A22, 0xAE603502, 0x00000002, 0x002D9AC3, 0xAE603502,
-	0x00000002, 0x402D9A22, 0xAE603C02, 0x00000002, 0x002D9AC3, 0xAE603C02,
-	0x00000002, 0x402D9A22, 0xAE604302, 0x00000002, 0x402D9A22, 0xAE604702,
-	0x00000002, 0x002D9AC3, 0xAE604702, 0x00000002, 0x402D9A22, 0xAE604E02,
-	0x00000002, 0x002D9AC3, 0xAE604E02, 0x00000002, 0x402D9A22, 0xAE605202,
-	0x00000002, 0x002D9AC3, 0xAE605202, 0x00000002, 0x402D9A22, 0xAE605B02,
-	0x00000002, 0x002D9AC3, 0xAE605B02, 0x00000002,
-	// Block 662, offset 0xa580
-	0x402D9A22, 0xAE606402, 0x00000002, 0x002D9AC3, 0xAE606402, 0x00000002,
-	0x402D9A22, 0xADC07002, 0x00000002, 0x002D9AC3, 0xADC07002, 0x00000002,
-	0x40306C22, 0xAE604702, 0x00000002, 0x00306CC3, 0xAE604702, 0x00000002,
-	0x40302A20, 0xAE605202, 0x00000002, 0x00302A83, 0xAE605202, 0x00000002,
-	0x40442221, 0x82092248, 0x00000002, 0x004422A3, 0x82092248, 0x00000002,
-	0x40443E21, 0x82092248, 0x00000002, 0x00443EA3, 0x82092248, 0x00000002,
-	0x00444883, 0x82092248, 0x00000002, 0x40444821, 0x82092248, 0x00000002,
-	0x004448A3, 0x82092248, 0x00000002, 0x40445421, 0x82092248, 0x00000002,
-	0x40445821, 0x82092248, 0x00000002, 0x004458A3, 0x82092248, 0x00000002,
-	0x40445A21, 0x82092248, 0x00000002, 0x00445AA3, 0x82092248, 0x00000002,
-	0x40446621, 0x82092248, 0x00000002, 0x004466A3,
-	// Block 663, offset 0xa5c0
-	0x82092248, 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6894,
-	0xA0007D14, 0x00000005, 0x404E6020, 0x404E8420, 0x404E2420, 0x8209278B,
-	0x404F3020, 0x00000006, 0x404E6A20, 0x8209278B, 0x404E6A20, 0x404EEE20,
-	0x404E7220, 0x8209278B, 0x00000006, 0x404E6A21, 0x40510E20, 0x404EE620,
-	0x404EEE20, 0x404E1420, 0x8209278B, 0x00000004, 0x404E8C21, 0x40510A20,
-	0x404EFE20, 0x404F2E20, 0x00000006, 0x404E9420, 0x404E1420, 0x8209278B,
-	0x404E8220, 0x404E1420, 0x8209278B, 0x00000005, 0x404E9420, 0x404E1420,
-	0x8209278B, 0x404E8820, 0x404EDE20, 0x0000000A, 0x404E9421, 0x404E4820,
-	0x8209278B, 0x404F3020, 0x404E1420, 0x404EFE20, 0x404EDE20, 0x404E2420,
-	0x8209278B, 0x404F3020, 0x00000003, 0x404EA620, 0x404E8420, 0x404EEA20,
-	0x00000003, 0x404EA620, 0x8209278A, 0x404EA620,
-	// Block 664, offset 0xa600
-	0x00000002, 0x004EC283, 0x404EE620, 0x00000002, 0x404EC221, 0x404EE620,
-	0x00000002, 0x004EC283, 0x404EEA20, 0x00000002, 0x004EC283, 0x404EEE20,
-	0x00000003, 0x004EC283, 0x404EEE20, 0x404F0C20, 0x00000002, 0x004EC283,
-	0x404EF420, 0x00000002, 0x004EC283, 0x404EFE20, 0x00000002, 0x004EC284,
-	0x404EFE20, 0x00000003, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820,
-	// Block 665, offset 0xa640
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1820,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E2220,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 666, offset 0xa680
-	0x404EDE20, 0x404E2420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2820, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005,
-	// Block 667, offset 0xa6c0
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820,
-	// Block 668, offset 0xa700
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4820,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4E20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 669, offset 0xa740
-	0x404EDE20, 0x404E5220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5620, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005,
-	// Block 670, offset 0xa780
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220,
-	// Block 671, offset 0xa7c0
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6220,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6A20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 672, offset 0xa800
-	0x404EDE20, 0x404E7220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005,
-	// Block 673, offset 0xa840
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, 0x00000005,
-	0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278A, 0x00000005,
-	0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820,
-	// Block 674, offset 0xa880
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8820,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E9420,
-	0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	// Block 675, offset 0xa8c0
-	0x404EDE20, 0x404EA620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EA620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404EA620, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EA620, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20,
-	0x404EDE20, 0x404EAA20, 0x8209278B, 0x00000004, 0x004EC283, 0x404EFE20,
-	0x404EDE20, 0x8209278B, 0x00000006, 0x404EFE20, 0x404EDE20, 0x404E1420,
-	0x8209278B, 0x404E1420, 0x40510420, 0x00000002, 0x402C9A20, 0xAE603202,
-	0x00000002, 0x002C9A83, 0xAE603202, 0x00000002,
-	// Block 676, offset 0xa900
-	0x402C9A20, 0xAE603502, 0x00000002, 0x002C9A83, 0xAE603502, 0x00000002,
-	0x402C9A20, 0xAE604E02, 0x00000002, 0x002C9A83, 0xAE604E02, 0x00000002,
-	0x402C9A20, 0xAE606402, 0x00000002, 0x002C9A83, 0xAE606402, 0x00000002,
-	0x402C9A20, 0xADC07002, 0x00000002, 0x002C9A83, 0xADC07002, 0x00000002,
-	0x402EE420, 0xAE603202, 0x00000002, 0x002EE483, 0xAE603202, 0x00000002,
-	0x402EE420, 0xAE603502, 0x00000002, 0x002EE483, 0xAE603502, 0x00000002,
-	0x402EE420, 0xAE606402, 0x00000002, 0x002EE483, 0xAE606402, 0x00000002,
-	0x402EE420, 0xADC07002, 0x00000002, 0x002EE483, 0xADC07002, 0x00000002,
-	0x40411620, 0xA000FA02, 0x00000002, 0x40411E20, 0xA000FA02, 0x00000002,
-	0x40412020, 0xA000FA02, 0x00000002, 0x40412A20, 0xA000FA02, 0x00000002,
-	0x40414620, 0xA000FA02, 0x00000002, 0x40415420,
-	// Block 677, offset 0xa940
-	0xA000FA02, 0x00000002, 0x402C3C20, 0xACA05602, 0x00000002, 0x002C3C83,
-	0xACA05602, 0x00000002, 0x403A6822, 0xAE60BE02, 0x00000002, 0x003A7C84,
-	0x00391C84, 0x00000002, 0x003A7C9A, 0x00391C9A, 0x00000002, 0x40320820,
-	0xAE603202, 0x00000002, 0x00320883, 0xAE603202, 0x00000002, 0x40320A20,
-	0xAE603202, 0x00000002, 0x00320A83, 0xAE603202, 0x00000002, 0x40320A20,
-	0xAE605B02, 0x00000002, 0x00320A83, 0xAE605B02, 0x00000002, 0x40320E21,
-	0xAE603702, 0x00000002, 0x00320EA3, 0xAE603702, 0x00000002, 0x40320E21,
-	0xAE603C02, 0x00000002, 0x00320EA3, 0xAE603C02, 0x00000002, 0x40321022,
-	0xAE603202, 0x00000002, 0x003210C3, 0xAE603202, 0x00000002, 0x40321022,
-	0xAE604702, 0x00000002, 0x003210C3, 0xAE604702, 0x00000002, 0x40321022,
-	0xAE605B02, 0x00000002, 0x003210C3, 0xAE605B02,
-	// Block 678, offset 0xa980
-	0x00000002, 0x40321022, 0xAD806802, 0x00000002, 0x003210C3, 0xAD806802,
-	0x00000002, 0x40321023, 0xAE603202, 0x00000002, 0x003210E3, 0xAE603202,
-	0x00000002, 0x40321023, 0xAE603502, 0x00000002, 0x003210E3, 0xAE603502,
-	0x00000002, 0x40321023, 0xAE604E02, 0x00000002, 0x003210E3, 0xAE604E02,
-	0x00000002, 0x40321023, 0xAE606402, 0x00000002, 0x003210E3, 0xAE606402,
-	0x00000002, 0x40321023, 0xADC07002, 0x00000002, 0x003210E3, 0xADC07002,
-	0x00000002, 0x40321024, 0xAE605B02, 0x00000002, 0x00321103, 0xAE605B02,
-	0x00000002, 0x402C6020, 0xAE603202, 0x00000002, 0x002C6083, 0xAE603202,
-	0x00000002, 0x40321024, 0xAE603202, 0x00000002, 0x00321103, 0xAE603202,
-	0x00000002, 0x40321024, 0xAE603502, 0x00000002, 0x00321103, 0xAE603502,
-	0x00000002, 0x40321024, 0xAE604E02, 0x00000002,
-	// Block 679, offset 0xa9c0
-	0x00321103, 0xAE604E02, 0x00000002, 0x40321024, 0xAE606402, 0x00000002,
-	0x00321103, 0xAE606402, 0x00000002, 0x40321024, 0xADC07002, 0x00000002,
-	0x00321103, 0xADC07002, 0x00000002, 0x00497283, 0x40496C20, 0x00000002,
-	0x00497284, 0x40496C20, 0x00000002, 0x402BDE21, 0xAE603702, 0x00000002,
-	0x002BDEA3, 0xAE603702, 0x00000002, 0x402BDE21, 0xAE603C02, 0x00000002,
-	0x002BDEA3, 0xAE603C02, 0x00000002, 0x402BDE21, 0xAE604302, 0x00000002,
-	0x002BDEA3, 0xAE604302, 0x00000002, 0x402BDE22, 0xAE604702, 0x00000002,
-	0x002BDEC3, 0xAE604702, 0x00000002, 0x402BDE22, 0xAE605202, 0x00000002,
-	0x002BDEC3, 0xAE605202, 0x00000002, 0x402C9821, 0xAE603C02, 0x00000002,
-	0x002C98A3, 0xAE603C02, 0x00000002, 0x402C9822, 0xAE603202, 0x00000002,
-	0x002C98C3, 0xAE603202, 0x00000002, 0x402C9822,
-	// Block 680, offset 0xaa00
-	0xAE603502, 0x00000002, 0x002C98C3, 0xAE603502, 0x00000002, 0x402D9A21,
-	0xAE604702, 0x00000002, 0x002D9AA3, 0xAE604702, 0x00000002, 0x402EE221,
-	0xAE603C02, 0x00000002, 0x002EE2A3, 0xAE603C02, 0x00000002, 0x402EE221,
-	0xAE604E02, 0x00000002, 0x002EE2A3, 0xAE604E02, 0x00000002, 0x402EE221,
-	0xAD806802, 0x00000002, 0x002EE2A3, 0xAD806802, 0x00000002, 0x402EE222,
-	0xAE603202, 0x00000002, 0x002EE2C3, 0xAE603202, 0x00000002, 0x402EE222,
-	0xAE603502, 0x00000002, 0x002EE2C3, 0xAE603502, 0x00000002, 0x402EE222,
-	0xAE604702, 0x00000002, 0x002EE2C3, 0xAE604702, 0x00000002, 0x402EE222,
-	0xAE604E02, 0x00000002, 0x002EE2C3, 0xAE604E02, 0x00000002, 0x402EE222,
-	0xAE605202, 0x00000002, 0x002EE2C3, 0xAE605202, 0x00000002, 0x402EE222,
-	0xACA05902, 0x00000002, 0x002EE2C3, 0xACA05902,
-	// Block 681, offset 0xaa40
-	0x00000002, 0x40306C21, 0xAE604702, 0x00000002, 0x00306CA3, 0xAE604702,
-	0x00000002, 0x40306C21, 0xAE604E02, 0x00000002, 0x00306CA3, 0xAE604E02,
-	0x00000002, 0x40306C21, 0xAD806802, 0x00000002, 0x00306CA3, 0xAD806802,
-	0x00000002, 0xA000AD18, 0xA000BA18, 0x00000002, 0x00393C97, 0x00396497,
-	0x00000002, 0x00393C9A, 0x0039649A, 0x00000002, 0x00393C97, 0x00397297,
-	0x00000002, 0x00393C9A, 0x0039729A, 0x00000002, 0x00393C97, 0x00397497,
-	0x00000002, 0x00393C9A, 0x0039749A, 0x00000002, 0x00393C99, 0x0039A499,
-	0x00000002, 0x00393C99, 0x0039A699, 0x00000002, 0x00393C97, 0x003A4E97,
-	0x00000002, 0x00393C98, 0x003A4E98, 0x00000002, 0x00393C99, 0x003A4E99,
-	0x00000002, 0x00393C9A, 0x003A4E9A, 0x00000002, 0x00393C99, 0x003A5699,
-	0x00000002, 0x00395697, 0x00396497, 0x00000002,
-	// Block 682, offset 0xaa80
-	0x0039569A, 0x0039649A, 0x00000002, 0x00395697, 0x00397297, 0x00000002,
-	0x0039569A, 0x0039729A, 0x00000002, 0x00395697, 0x00397497, 0x00000002,
-	0x0039569A, 0x0039749A, 0x00000002, 0x00395699, 0x0039A499, 0x00000002,
-	0x00395699, 0x0039A699, 0x00000002, 0x00395697, 0x003A4E97, 0x00000002,
-	0x00395698, 0x003A4E98, 0x00000002, 0x00395699, 0x003A4E99, 0x00000002,
-	0x0039569A, 0x003A4E9A, 0x00000002, 0x00395699, 0x003A5699, 0x00000002,
-	0x0039589A, 0x0039649A, 0x00000002, 0x00395899, 0x0039A499, 0x00000002,
-	0x00395899, 0x0039A699, 0x00000002, 0x00395897, 0x003A4E97, 0x00000002,
-	0x00395898, 0x003A4E98, 0x00000002, 0x00395899, 0x003A4E99, 0x00000002,
-	0x0039589A, 0x003A4E9A, 0x00000002, 0x00395899, 0x003A5699, 0x00000002,
-	0x00396497, 0x00397297, 0x00000002, 0x0039649A,
-	// Block 683, offset 0xaac0
-	0x0039729A, 0x00000002, 0x00396497, 0x003A4E97, 0x00000002, 0x0039649A,
-	0x003A4E9A, 0x00000002, 0x00397297, 0x00396497, 0x00000002, 0x0039729A,
-	0x0039649A, 0x00000002, 0x00397297, 0x003A4E97, 0x00000002, 0x0039729A,
-	0x003A4E9A, 0x00000002, 0x00397497, 0x00396497, 0x00000002, 0x0039749A,
-	0x0039649A, 0x00000002, 0x0039749A, 0x0039729A, 0x00000002, 0x00397497,
-	0x003A4E97, 0x00000002, 0x0039749A, 0x003A4E9A, 0x00000002, 0x00398A9A,
-	0xA000D11A, 0x00000002, 0x0039A49A, 0xA000D11A, 0x00000002, 0x0039C697,
-	0x00396497, 0x00000002, 0x0039C698, 0x00396498, 0x00000002, 0x0039C69A,
-	0x0039649A, 0x00000002, 0x0039C697, 0x00397297, 0x00000002, 0x0039C698,
-	0x00397298, 0x00000002, 0x0039C69A, 0x0039729A, 0x00000002, 0x0039C697,
-	0x00397497, 0x00000002, 0x0039C698, 0x00397498,
-	// Block 684, offset 0xab00
-	0x00000002, 0x0039C69A, 0x0039749A, 0x00000002, 0x0039C699, 0x0039A499,
-	0x00000002, 0x0039C69A, 0x0039A49A, 0x00000002, 0x0039C697, 0x003A4E97,
-	0x00000002, 0x0039C698, 0x003A4E98, 0x00000002, 0x0039C69A, 0x003A4E9A,
-	0x00000002, 0x0039C897, 0x00396497, 0x00000002, 0x0039C898, 0x00396498,
-	0x00000002, 0x0039C899, 0x00396499, 0x00000002, 0x0039C89A, 0x0039649A,
-	0x00000002, 0x0039C897, 0x00397297, 0x00000002, 0x0039C898, 0x00397298,
-	0x00000002, 0x0039C899, 0x00397299, 0x00000002, 0x0039C89A, 0x0039729A,
-	0x00000002, 0x0039C897, 0x00397497, 0x00000002, 0x0039C898, 0x00397498,
-	0x00000002, 0x0039C899, 0x00397499, 0x00000002, 0x0039C89A, 0x0039749A,
-	0x00000002, 0x0039C899, 0x0039A499, 0x00000002, 0x0039C89A, 0x0039A49A,
-	0x00000002, 0x0039C897, 0x003A4E97, 0x00000002,
-	// Block 685, offset 0xab40
-	0x0039C898, 0x003A4E98, 0x00000002, 0x0039C899, 0x003A4E99, 0x00000002,
-	0x0039C89A, 0x003A4E9A, 0x00000002, 0x0039DC97, 0x00397297, 0x00000002,
-	0x0039DC9A, 0x0039729A, 0x00000002, 0x0039DC97, 0x00397497, 0x00000002,
-	0x0039DC99, 0x0039A499, 0x00000002, 0x0039DC9A, 0x0039A49A, 0x00000002,
-	0x0039DC97, 0x003A4E97, 0x00000002, 0x0039DC9A, 0x003A4E9A, 0x00000002,
-	0x0039DE97, 0x00396497, 0x00000002, 0x0039DE9A, 0x0039649A, 0x00000002,
-	0x0039DE97, 0x00397297, 0x00000002, 0x0039DE9A, 0x0039729A, 0x00000002,
-	0x0039DE97, 0x00397497, 0x00000002, 0x0039DE9A, 0x0039749A, 0x00000002,
-	0x0039DE99, 0x0039A499, 0x00000002, 0x0039DE9A, 0x0039A49A, 0x00000002,
-	0x0039DE97, 0x003A4E97, 0x00000002, 0x0039DE9A, 0x003A4E9A, 0x00000002,
-	0x0039E697, 0x00397297, 0x00000002, 0x0039E69A,
-	// Block 686, offset 0xab80
-	0x0039729A, 0x00000002, 0x0039E697, 0x003A4E97, 0x00000002, 0x0039E698,
-	0x003A4E98, 0x00000002, 0x0039E69A, 0x003A4E9A, 0x00000002, 0x0039E897,
-	0x003A4E97, 0x00000002, 0x0039E898, 0x003A4E98, 0x00000002, 0x0039E89A,
-	0x003A4E9A, 0x00000002, 0x0039EE97, 0x00396497, 0x00000002, 0x0039EE9A,
-	0x0039649A, 0x00000002, 0x0039EE97, 0x003A4E97, 0x00000002, 0x0039EE9A,
-	0x003A4E9A, 0x00000002, 0x0039F097, 0x00396497, 0x00000002, 0x0039F09A,
-	0x0039649A, 0x00000002, 0x0039F097, 0x003A4E97, 0x00000002, 0x0039F09A,
-	0x003A4E9A, 0x00000002, 0x0039FC97, 0x00396497, 0x00000002, 0x0039FC9A,
-	0x0039649A, 0x00000002, 0x0039FC97, 0x00397297, 0x00000002, 0x0039FC9A,
-	0x0039729A, 0x00000002, 0x0039FC97, 0x00397497, 0x00000002, 0x0039FC9A,
-	0x0039749A, 0x00000002, 0x0039FC97, 0x003A4E97,
-	// Block 687, offset 0xabc0
-	0x00000002, 0x0039FC9A, 0x003A4E9A, 0x00000002, 0x003A1297, 0x00397297,
-	0x00000002, 0x003A129A, 0x0039729A, 0x00000002, 0x003A1297, 0x003A4E97,
-	0x00000002, 0x003A129A, 0x003A4E9A, 0x00000002, 0x003A4099, 0x00393899,
-	0x00000002, 0x003A409A, 0x0039389A, 0x00000002, 0x003A4097, 0x00396497,
-	0x00000002, 0x003A409A, 0x0039649A, 0x00000002, 0x003A4097, 0x00397297,
-	0x00000002, 0x003A409A, 0x0039729A, 0x00000002, 0x003A4097, 0x00397497,
-	0x00000002, 0x003A409A, 0x0039749A, 0x00000002, 0x003A4097, 0x003A4E97,
-	0x00000002, 0x003A4098, 0x003A4E98, 0x00000002, 0x003A4099, 0x003A4E99,
-	0x00000002, 0x003A409A, 0x003A4E9A, 0x00000002, 0x003A4E99, 0x00393899,
-	0x00000002, 0x003A4E97, 0x00396497, 0x00000002, 0x003A4E9A, 0x0039649A,
-	0x00000002, 0x003A4E97, 0x00397297, 0x00000002,
-	// Block 688, offset 0xac00
-	0x003A4E9A, 0x0039729A, 0x00000002, 0x003A4E97, 0x00397497, 0x00000002,
-	0x003A4E9A, 0x0039749A, 0x00000002, 0x003A4E97, 0x003A4E97, 0x00000002,
-	0x003A4E99, 0x003A4E99, 0x00000002, 0x003A4E9A, 0x003A4E9A, 0x00000002,
-	0x003A5697, 0x00396497, 0x00000002, 0x003A569A, 0x0039649A, 0x00000002,
-	0x003A5697, 0x00397297, 0x00000002, 0x003A569A, 0x0039729A, 0x00000002,
-	0x003A5697, 0x00397497, 0x00000002, 0x003A569A, 0x0039749A, 0x00000002,
-	0x003A5699, 0x0039A499, 0x00000002, 0x003A5699, 0x0039A699, 0x00000002,
-	0x003A5697, 0x003A4E97, 0x00000002, 0x003A5698, 0x003A4E98, 0x00000002,
-	0x003A5699, 0x003A4E99, 0x00000002, 0x003A569A, 0x003A4E9A, 0x00000002,
-	0x003A5699, 0x003A5699, 0x00000002, 0x403A7220, 0xA000C602, 0x00000002,
-	0x003A7484, 0x00391C84, 0x00000002, 0xAE604702,
-	// Block 689, offset 0xac40
-	0xAE603802, 0x00000002, 0x40062C20, 0xAE603802, 0x00000002, 0x40063620,
-	0xAE603802, 0x00000002, 0x40063820, 0xAE603802, 0x00000002, 0x402BDE20,
-	0xAE603602, 0x00000002, 0x002BDE88, 0xAE603602, 0x00000002, 0x402BDE20,
-	0xAE603702, 0x00000002, 0x002BDE88, 0xAE603702, 0x00000002, 0x402BDE20,
-	0xAE603802, 0x00000002, 0x002BDE88, 0xAE603802, 0x00000002, 0x402BDE20,
-	0xAE603902, 0x00000002, 0x002BDE88, 0xAE603902, 0x00000003, 0x402BDE20,
-	0xAE604302, 0xAE603802, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603802,
-	0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603802, 0x00000004,
-	0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603802, 0x00000002, 0x402BE020,
-	0xAE603602, 0x00000002, 0x002BE083, 0xAE603602, 0x00000002, 0x402BE020,
-	0xAE603702, 0x00000002, 0x002BE083, 0xAE603702,
-	// Block 690, offset 0xac80
-	0x00000002, 0x402BE020, 0xAE603802, 0x00000002, 0x002BE083, 0xAE603802,
-	0x00000002, 0x402BE020, 0xAE603902, 0x00000002, 0x002BE083, 0xAE603902,
-	0x00000002, 0x402BE220, 0xAE603602, 0x00000002, 0x002BE283, 0xAE603602,
-	0x00000002, 0x402BE220, 0xAE603702, 0x00000002, 0x002BE283, 0xAE603702,
-	0x00000002, 0x402BE220, 0xAE603802, 0x00000002, 0x002BE283, 0xAE603802,
-	0x00000002, 0x402BE220, 0xAE603902, 0x00000002, 0x002BE283, 0xAE603902,
-	0x00000002, 0x402C0A20, 0xAE603902, 0x00000002, 0x002C0A88, 0xAE603902,
-	0x00000002, 0x402C3A20, 0xAE603802, 0x00000002, 0x002C3A88, 0xAE603802,
-	0x00000003, 0x402C3A20, 0xACA05602, 0xAE603802, 0x00000003, 0x002C3A88,
-	0xACA05602, 0xAE603802, 0x00000002, 0x402C6220, 0xAE603902, 0x00000002,
-	0x002C6288, 0xAE603902, 0x00000002, 0x402C9820,
-	// Block 691, offset 0xacc0
-	0xAE603602, 0x00000002, 0x002C9888, 0xAE603602, 0x00000002, 0x402C9820,
-	0xAE603702, 0x00000002, 0x002C9888, 0xAE603702, 0x00000002, 0x402C9820,
-	0xAE603802, 0x00000002, 0x002C9888, 0xAE603802, 0x00000002, 0x402C9820,
-	0xAE603902, 0x00000002, 0x002C9888, 0xAE603902, 0x00000003, 0x402C9820,
-	0xAE605B02, 0xAE603802, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603802,
-	0x00000002, 0x402C9A20, 0xAE603602, 0x00000002, 0x002C9A83, 0xAE603602,
-	0x00000002, 0x402C9A20, 0xAE603702, 0x00000002, 0x002C9A83, 0xAE603702,
-	0x00000002, 0x402C9A20, 0xAE603802, 0x00000002, 0x002C9A83, 0xAE603802,
-	0x00000002, 0x402C9A20, 0xAE603902, 0x00000002, 0x002C9A83, 0xAE603902,
-	0x00000002, 0x402D2220, 0xAE603802, 0x00000002, 0x002D2288, 0xAE603802,
-	0x00000002, 0x402D6820, 0xAE603902, 0x00000002,
-	// Block 692, offset 0xad00
-	0x002D6888, 0xAE603902, 0x00000002, 0x402D9A20, 0xAE603602, 0x00000002,
-	0x002D9A88, 0xAE603602, 0x00000002, 0x402D9A20, 0xAE603702, 0x00000002,
-	0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20, 0xAE603802, 0x00000002,
-	0x002D9A88, 0xAE603802, 0x00000002, 0x402D9A20, 0xAE603902, 0x00000002,
-	0x002D9A88, 0xAE603902, 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603802,
-	0x00000003, 0x002D9A88, 0xAE604702, 0xAE603802, 0x00000002, 0x402DFE20,
-	0xAE603802, 0x00000002, 0x002DFE88, 0xAE603802, 0x00000002, 0x402DFE20,
-	0xAE603902, 0x00000002, 0x002DFE88, 0xAE603902, 0x00000002, 0x402E2220,
-	0xAE603802, 0x00000002, 0x002E2288, 0xAE603802, 0x00000002, 0x402E2220,
-	0xAE603902, 0x00000002, 0x002E2288, 0xAE603902, 0x00000003, 0x402E2220,
-	0xAE603902, 0xAE605B02, 0x00000003, 0x002E2288,
-	// Block 693, offset 0xad40
-	0xAE603902, 0xAE605B02, 0x00000002, 0x402E8220, 0xAE603802, 0x00000002,
-	0x002E8288, 0xAE603802, 0x00000002, 0x402E8220, 0xAE603902, 0x00000002,
-	0x002E8288, 0xAE603902, 0x00000002, 0x402E9E20, 0xAE603702, 0x00000002,
-	0x002E9E88, 0xAE603702, 0x00000002, 0x402E9E20, 0xAE603802, 0x00000002,
-	0x002E9E88, 0xAE603802, 0x00000002, 0x402E9E20, 0xAE603902, 0x00000002,
-	0x002E9E88, 0xAE603902, 0x00000002, 0x402EE220, 0xAE603602, 0x00000002,
-	0x002EE288, 0xAE603602, 0x00000002, 0x402EE220, 0xAE603702, 0x00000002,
-	0x002EE288, 0xAE603702, 0x00000003, 0x402EE220, 0xAE603702, 0xAE603802,
-	0x00000003, 0x002EE288, 0xAE603702, 0xAE603802, 0x00000003, 0x402EE220,
-	0xAE603702, 0xAE604702, 0x00000003, 0x002EE288, 0xAE603702, 0xAE604702,
-	0x00000003, 0x402EE220, 0xAE603702, 0xAE605B02,
-	// Block 694, offset 0xad80
-	0x00000003, 0x002EE288, 0xAE603702, 0xAE605B02, 0x00000002, 0x402EE220,
-	0xAE603802, 0x00000002, 0x002EE288, 0xAE603802, 0x00000002, 0x402EE220,
-	0xAE603902, 0x00000002, 0x002EE288, 0xAE603902, 0x00000003, 0x402EE220,
-	0xA0005402, 0xAE603802, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603802,
-	0x00000003, 0x402EE220, 0xAE605B02, 0xAE603802, 0x00000003, 0x002EE288,
-	0xAE605B02, 0xAE603802, 0x00000002, 0x402EE420, 0xAE603602, 0x00000002,
-	0x002EE483, 0xAE603602, 0x00000002, 0x402EE420, 0xAE603702, 0x00000002,
-	0x002EE483, 0xAE603702, 0x00000002, 0x402EE420, 0xAE603802, 0x00000002,
-	0x002EE483, 0xAE603802, 0x00000002, 0x402EE420, 0xAE603902, 0x00000002,
-	0x002EE483, 0xAE603902, 0x00000002, 0x402EE620, 0xAE603502, 0x00000002,
-	0x002EE683, 0xAE603502, 0x00000002, 0x402EE620,
-	// Block 695, offset 0xadc0
-	0xAE603602, 0x00000002, 0x002EE683, 0xAE603602, 0x00000002, 0x402EE620,
-	0xAE603702, 0x00000002, 0x002EE683, 0xAE603702, 0x00000002, 0x402EE620,
-	0xAE603802, 0x00000002, 0x002EE683, 0xAE603802, 0x00000002, 0x402EE620,
-	0xAE603902, 0x00000002, 0x002EE683, 0xAE603902, 0x00000002, 0x402F2C20,
-	0xAE603802, 0x00000002, 0x002F2C88, 0xAE603802, 0x00000002, 0x402F7A20,
-	0xAE603802, 0x00000002, 0x002F7A88, 0xAE603802, 0x00000002, 0x402F7A20,
-	0xAE603902, 0x00000002, 0x002F7A88, 0xAE603902, 0x00000003, 0x402F7A20,
-	0xAE603902, 0xAE605B02, 0x00000003, 0x002F7A88, 0xAE603902, 0xAE605B02,
-	0x00000002, 0x402FE620, 0xAE603802, 0x00000002, 0x002FE688, 0xAE603802,
-	0x00000003, 0x402FE620, 0xAE603802, 0xAE605202, 0x00000003, 0x002FE688,
-	0xAE603802, 0xAE605202, 0x00000002, 0x402FE620,
-	// Block 696, offset 0xae00
-	0xAE603902, 0x00000002, 0x002FE688, 0xAE603902, 0x00000003, 0x402FE620,
-	0xAE603902, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603902, 0xAE605202,
-	0x00000002, 0x40302C20, 0xAE603902, 0x00000002, 0x00302C88, 0xAE603902,
-	0x00000002, 0x40306C20, 0xAE603602, 0x00000002, 0x00306C88, 0xAE603602,
-	0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702,
-	0x00000003, 0x40306C20, 0xAE603702, 0xAE603802, 0x00000003, 0x00306C88,
-	0xAE603702, 0xAE603802, 0x00000002, 0x40306C20, 0xAE603802, 0x00000002,
-	0x00306C88, 0xAE603802, 0x00000002, 0x40306C20, 0xAE603902, 0x00000002,
-	0x00306C88, 0xAE603902, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603802,
-	0x00000003, 0x00306C88, 0xAE604702, 0xAE603802, 0x00000002, 0x40306E20,
-	0xAE603602, 0x00000002, 0x00306E83, 0xAE603602,
-	// Block 697, offset 0xae40
-	0x00000002, 0x40306E20, 0xAE603702, 0x00000002, 0x00306E83, 0xAE603702,
-	0x00000002, 0x40306E20, 0xAE603802, 0x00000002, 0x00306E83, 0xAE603802,
-	0x00000002, 0x40306E20, 0xAE603902, 0x00000002, 0x00306E83, 0xAE603902,
-	0x00000002, 0x4030BE20, 0xAE603702, 0x00000002, 0x0030BE88, 0xAE603702,
-	0x00000002, 0x4030BE20, 0xAE603902, 0x00000002, 0x0030BE88, 0xAE603902,
-	0x00000002, 0x4030E220, 0xAE603802, 0x00000002, 0x0030E288, 0xAE603802,
-	0x00000002, 0x4030E220, 0xAE603902, 0x00000002, 0x0030E288, 0xAE603902,
-	0x00000002, 0x40310020, 0xAE603602, 0x00000002, 0x00310088, 0xAE603602,
-	0x00000002, 0x40310020, 0xAE603702, 0x00000002, 0x00310088, 0xAE603702,
-	0x00000002, 0x40310020, 0xAE603802, 0x00000002, 0x00310088, 0xAE603802,
-	0x00000002, 0x40310020, 0xAE603902, 0x00000002,
-	// Block 698, offset 0xae80
-	0x00310088, 0xAE603902, 0x00000002, 0x40312A20, 0xAE603802, 0x00000002,
-	0x00312A88, 0xAE603802, 0x00000002, 0x40312A20, 0xAE603902, 0x00000002,
-	0x00312A88, 0xAE603902, 0x00000003, 0x40325220, 0xAE602202, 0xAE603802,
-	0x00000003, 0x00325288, 0xAE602202, 0xAE603802, 0x00000004, 0x40325220,
-	0xAE602202, 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202,
-	0xAE603802, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603802,
-	0x00000003, 0x00325288, 0xAE602A02, 0xAE603802, 0x00000004, 0x40325220,
-	0xAE602A02, 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02,
-	0xAE603802, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603802, 0x00000002,
-	0x00325288, 0xAE603802, 0x00000003, 0x40325220, 0xAE603802, 0xAF007F02,
-	0x00000003, 0x40325C20, 0xAE602202, 0xAE603802,
-	// Block 699, offset 0xaec0
-	0x00000003, 0x00325C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40325C20,
-	0xAE602A02, 0xAE603802, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603802,
-	0x00000002, 0x40325C20, 0xAE603802, 0x00000002, 0x00325C88, 0xAE603802,
-	0x00000003, 0x40326820, 0xAE602202, 0xAE603802, 0x00000003, 0x00326888,
-	0xAE602202, 0xAE603802, 0x00000004, 0x40326820, 0xAE602202, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603802, 0xAF007F02,
-	0x00000003, 0x40326820, 0xAE602A02, 0xAE603802, 0x00000003, 0x00326888,
-	0xAE602A02, 0xAE603802, 0x00000004, 0x40326820, 0xAE602A02, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE603802, 0xAF007F02,
-	0x00000002, 0x40326820, 0xAE603802, 0x00000002, 0x00326888, 0xAE603802,
-	0x00000003, 0x40326820, 0xAE603802, 0xAF007F02,
-	// Block 700, offset 0xaf00
-	0x00000003, 0x40326C20, 0xAE602202, 0xAE603802, 0x00000003, 0x00326C88,
-	0xAE602202, 0xAE603802, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603802,
-	0x00000003, 0x00326C88, 0xAE602A02, 0xAE603802, 0x00000002, 0x40326C20,
-	0xAE603802, 0x00000002, 0x00326C88, 0xAE603802, 0x00000003, 0x40326C20,
-	0xAE604702, 0xAE603802, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603802,
-	0x00000003, 0x00327C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40327C20,
-	0xAE602A02, 0xAE603802, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603802,
-	0x00000002, 0x40327C20, 0xAE603802, 0x00000002, 0x00327C88, 0xAE603802,
-	0x00000003, 0x40329820, 0xAE602202, 0xAE603802, 0x00000003, 0x40329820,
-	0xAE602A02, 0xAE603802, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603802,
-	0x00000002, 0x40329820, 0xAE603802, 0x00000002,
-	// Block 701, offset 0xaf40
-	0x00329888, 0xAE603802, 0x00000003, 0x40329820, 0xAE604702, 0xAE603802,
-	0x00000003, 0x4032A220, 0xAE602202, 0xAE603802, 0x00000003, 0x0032A288,
-	0xAE602202, 0xAE603802, 0x00000004, 0x4032A220, 0xAE602202, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603802, 0xAF007F02,
-	0x00000003, 0x4032A220, 0xAE602A02, 0xAE603802, 0x00000003, 0x0032A288,
-	0xAE602A02, 0xAE603802, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603802,
-	0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603802, 0xAF007F02,
-	0x00000002, 0x4032A220, 0xAE603802, 0x00000002, 0x0032A288, 0xAE603802,
-	0x00000003, 0x4032A220, 0xAE603802, 0xAF007F02, 0x00000002, 0x402BDE20,
-	0xAE603202, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x402D9A20,
-	0xAE603202, 0x00000002, 0x402EE220, 0xAE603202,
-	// Block 702, offset 0xaf80
-	0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x402C9A20, 0xAE603C02,
-	0x00000002, 0x002C9A83, 0xAE603C02, 0x00000003, 0x0003F483, 0x6C030A20,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C110E20, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C272220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C37B420,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C549820, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C5D8420, 0x4003F620, 0x00000003, 0x0003F483, 0x6C61F420,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C64CA20, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C6C2E20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C6F9A20,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6C814020, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6C8F2420, 0x4003F620, 0x00000003, 0x0003F483, 0x6C9FE620,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CA25C20,
-	// Block 703, offset 0xafc0
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CB4C620, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CB6C820, 0x4003F620, 0x00000003, 0x0003F483, 0x6CC63620,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CC9F220, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CCF3620, 0x4003F620, 0x00000003, 0x0003F483, 0x6CD22420,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CD70220, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CD87420, 0x4003F620, 0x00000003, 0x0003F483, 0x6CE27020,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6CE91020, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6CF41420, 0x4003F620, 0x00000003, 0x0003F483, 0x6D007020,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D04B220, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6D08F820, 0x4003F620, 0x00000003, 0x0003F483, 0x6D13B620,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D1F9820,
-	// Block 704, offset 0xb000
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D266820, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6D357020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D399220,
-	0x4003F620, 0x00000003, 0x0003F483, 0x6D3AC620, 0x4003F620, 0x00000003,
-	0x0003F483, 0x6D3E6020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D3F2A20,
-	0x4003F620, 0x00000003, 0x0004B083, 0x6C011220, 0x4004B220, 0x00000003,
-	0x0004B083, 0x6C044020, 0x4004B220, 0x00000003, 0x0004B083, 0x6C079220,
-	0x4004B220, 0x00000003, 0x0004B083, 0x6C26E020, 0x4004B220, 0x00000003,
-	0x0004B083, 0x6C2A1220, 0x4004B220, 0x00000003, 0x0004B083, 0x6C2D0A20,
-	0x4004B220, 0x00000003, 0x0004B083, 0x6C37B420, 0x4004B220, 0x00000003,
-	0x0004B083, 0x6CC9F220, 0x4004B220, 0x00000003, 0x0004B083, 0x6CD16420,
-	0x4004B220, 0x00000003, 0x0029CE83, 0x4029CC20,
-	// Block 705, offset 0xb040
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029CC20, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029CC20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029CE20,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029CE20, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029CE20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D020,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D020, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029D020, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D220,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D220, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029D420, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D420,
-	0x6CC63620, 0x00000003, 0x0029CE83, 0x4029D620, 0x6C2D0A20, 0x00000003,
-	0x0029CE83, 0x4029D620, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029D820,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D820,
-	// Block 706, offset 0xb080
-	0x6CC63620, 0x00000003, 0x0029CE83, 0x4029DA20, 0x6C2D0A20, 0x00000003,
-	0x0029CE83, 0x4029DA20, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029DC20,
-	0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029DC20, 0x6CC63620, 0x00000003,
-	0x0029CE83, 0x4029DE20, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029DE20,
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029CC20, 0x6C2D0A20, 0x00000003,
-	0x0029D083, 0x4029CC20, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029CE20,
-	0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029CE20, 0x6CC63620, 0x00000003,
-	0x0029D083, 0x4029D020, 0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029D020,
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029D220, 0x6C2D0A20, 0x00000003,
-	0x0029D083, 0x4029D220, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029D420,
-	0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029D420,
-	// Block 707, offset 0xb0c0
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029D620, 0x6CC63620, 0x00000003,
-	0x0029D083, 0x4029D820, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029DA20,
-	0x6CC63620, 0x00000003, 0x0029D083, 0x4029DC20, 0x6CC63620, 0x00000003,
-	0x0029D083, 0x4029DE20, 0x6CC63620, 0x00000003, 0x0029D283, 0x4029CC20,
-	0x6CC63620, 0x00000003, 0x0029D283, 0x4029CE20, 0x6CC63620, 0x00000002,
-	0x402BDE1C, 0xAE604702, 0x00000002, 0x002BDE03, 0xAE604702, 0x00000002,
-	0x402BDE1C, 0xAE605202, 0x00000002, 0x002BDE03, 0xAE605202, 0x00000002,
-	0x402BDE1D, 0xAE603702, 0x00000002, 0x002BDE23, 0xAE603702, 0x00000002,
-	0x402BDE1D, 0xAE603C02, 0x00000002, 0x002BDE23, 0xAE603C02, 0x00000002,
-	0x402BDE1D, 0xAE604302, 0x00000002, 0x002BDE23, 0xAE604302, 0x00000002,
-	0x402BDE1F, 0xAE603702, 0x00000002, 0x002BDE63,
-	// Block 708, offset 0xb100
-	0xAE603702, 0x00000002, 0x402BDE1F, 0xAE603C02, 0x00000002, 0x002BDE63,
-	0xAE603C02, 0x00000002, 0x402C981C, 0xAE603202, 0x00000002, 0x002C9803,
-	0xAE603202, 0x00000002, 0x402C981C, 0xAE603502, 0x00000002, 0x002C9803,
-	0xAE603502, 0x00000002, 0x402D9A1D, 0xAE604702, 0x00000002, 0x002D9A23,
-	0xAE604702, 0x00000002, 0x402EE21C, 0xAE603202, 0x00000002, 0x002EE203,
-	0xAE603202, 0x00000002, 0x402EE21C, 0xAE603502, 0x00000002, 0x002EE203,
-	0xAE603502, 0x00000002, 0x402EE21C, 0xAE604702, 0x00000002, 0x002EE203,
-	0xAE604702, 0x00000002, 0x402EE21C, 0xAE604E02, 0x00000002, 0x002EE203,
-	0xAE604E02, 0x00000002, 0x402EE21C, 0xAE605202, 0x00000002, 0x002EE203,
-	0xAE605202, 0x00000002, 0x402EE21C, 0xACA05902, 0x00000002, 0x002EE203,
-	0xACA05902, 0x00000002, 0x402EE21D, 0xAE603C02,
-	// Block 709, offset 0xb140
-	0x00000002, 0x002EE223, 0xAE603C02, 0x00000002, 0x402EE21D, 0xAE604E02,
-	0x00000002, 0x002EE223, 0xAE604E02, 0x00000002, 0x402EE21D, 0xAD806802,
-	0x00000002, 0x002EE223, 0xAD806802, 0x00000002, 0x402EE21F, 0xAE603C02,
-	0x00000002, 0x002EE263, 0xAE603C02, 0x00000002, 0x402EE21F, 0xAD806802,
-	0x00000002, 0x002EE263, 0xAD806802, 0x00000002, 0x40306C1C, 0xAE604702,
-	0x00000002, 0x00306C03, 0xAE604702, 0x00000002, 0x40306C1D, 0xAE604E02,
-	0x00000002, 0x00306C23, 0xAE604E02, 0x00000002, 0x40306C1D, 0xAD806802,
-	0x00000002, 0x00306C23, 0xAD806802, 0x00000002, 0x40306C1F, 0xAD806802,
-	0x00000002, 0x00306C63, 0xAD806802, 0x00000004, 0x2D399283, 0x6CD2FC20,
-	0x6C5B8A20, 0x6CCF3620,
-}
-
-// mainContractElem: 4021 entries, 16084 bytes
-var mainContractElem = [4021]uint32{
-	// Block 0, offset 0x0
-	0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0xE0000D01,
-	0x40332220, 0x40332A20, 0x40333220, 0x00332288, 0x00332A88, 0x00333288,
-	0x40333A20, 0x40334220, 0x00333A88, 0x00334288, 0x40336220, 0x4033A220,
-	0x4033A220, 0x00336288, 0x0033A288, 0x0033A288, 0x4033B220, 0x4033BA20,
-	0x0033B288, 0x0033BA88, 0x4033CA20, 0x4033D420, 0x0033CA88, 0x0033D488,
-	0x4033E420, 0x4033F220, 0x0033E488, 0x0033F288, 0x40341420, 0x40343E20,
-	0x40342420, 0x00341488, 0x00343E88, 0x00342488, 0x40342C20, 0x40343620,
-	0x00342C88, 0x00343688, 0x4034EE20, 0x4034F620, 0x0034EE88, 0x0034F688,
-	0x4034FE20, 0x40350620, 0x0034FE88, 0x00350688, 0x40345020, 0x40356A20,
-	0x40356A20, 0x00345088, 0x00356A88, 0x00356A88, 0x40357220, 0x40357A20,
-	0x40358220, 0x40358A20, 0x00357288, 0x00357A88,
-	// Block 1, offset 0x40
-	0x00358288, 0x00358A88, 0x40361820, 0x40362220, 0x00361888, 0x00362288,
-	0x40367E20, 0x40368620, 0x00367E88, 0x00368688, 0x4036A820, 0x4036B020,
-	0x0036A888, 0x0036B088, 0x40371420, 0x40371C20, 0x00371488, 0x00371C88,
-	0x40393820, 0x40391E20, 0x40392020, 0x40392820, 0x403A7420, 0x40392620,
-	0x403A9020, 0x40393020, 0x4040F020, 0x4040F420, 0x4040F620, 0x40426E20,
-	0x40427220, 0x40427020, 0x40427420, 0x40429020, 0x40429420, 0x4042D020,
-	0x4042D620, 0x4042DA20, 0x4042D220, 0x4042D820, 0x40435E20, 0x40436220,
-	0x4043E020, 0x4043E220, 0x4043F020, 0x4043F820, 0x4043F620, 0x4043F220,
-	0x4043F420, 0x4043F620, 0x4043F820, 0x40448220, 0x40448820, 0x40448C20,
-	0x40448420, 0x40448A20, 0x40451E20, 0x40452620, 0x40452020, 0x40452420,
-	0x40452820, 0x40452420, 0x40452620, 0x40498420,
-	// Block 2, offset 0x80
-	0xE0001881, 0xE0001890, 0xE000189F, 0xE00018AE, 0xE00018BD, 0xE00018CC,
-	0xE00018DB, 0xE00018EA, 0xE00018F9, 0xE0001908, 0xE0001917, 0xE0001926,
-	0xE0001935, 0xE0001944, 0xE0001953, 0xE0001962, 0xE0001971, 0xE0001980,
-	0xE000198F, 0xE000199E, 0xE00019AD, 0xE00019BC, 0xE00019CB, 0xE00019DA,
-	0xE00019E9, 0xE00019F8, 0xE0001A07, 0xE0001A16, 0xE0001A25, 0xE0001A34,
-	0xE0001A43, 0xE0001A52, 0xE0001A61, 0xE0001A70, 0xE0001A7F, 0xE0001A8E,
-	0xE0001A9D, 0xE0001AAC, 0xE0001ABB, 0xE0001ACA, 0xE0001AD9, 0xE0001AE8,
-	0xE0001AF7, 0xE0001B06, 0xE0001B15, 0xE0001B24, 0x40498620, 0xE0001884,
-	0xE0001893, 0xE00018A2, 0xE00018B1, 0xE00018C0, 0xE00018CF, 0xE00018DE,
-	0xE00018ED, 0xE00018FC, 0xE000190B, 0xE000191A, 0xE0001929, 0xE0001938,
-	0xE0001947, 0xE0001956, 0xE0001965, 0xE0001974,
-	// Block 3, offset 0xc0
-	0xE0001983, 0xE0001992, 0xE00019A1, 0xE00019B0, 0xE00019BF, 0xE00019CE,
-	0xE00019DD, 0xE00019EC, 0xE00019FB, 0xE0001A0A, 0xE0001A19, 0xE0001A28,
-	0xE0001A37, 0xE0001A46, 0xE0001A55, 0xE0001A64, 0xE0001A73, 0xE0001A82,
-	0xE0001A91, 0xE0001AA0, 0xE0001AAF, 0xE0001ABE, 0xE0001ACD, 0xE0001ADC,
-	0xE0001AEB, 0xE0001AFA, 0xE0001B09, 0xE0001B18, 0xE0001B27, 0x40498820,
-	0xE0001887, 0xE0001896, 0xE00018A5, 0xE00018B4, 0xE00018C3, 0xE00018D2,
-	0xE00018E1, 0xE00018F0, 0xE00018FF, 0xE000190E, 0xE000191D, 0xE000192C,
-	0xE000193B, 0xE000194A, 0xE0001959, 0xE0001968, 0xE0001977, 0xE0001986,
-	0xE0001995, 0xE00019A4, 0xE00019B3, 0xE00019C2, 0xE00019D1, 0xE00019E0,
-	0xE00019EF, 0xE00019FE, 0xE0001A0D, 0xE0001A1C, 0xE0001A2B, 0xE0001A3A,
-	0xE0001A49, 0xE0001A58, 0xE0001A67, 0xE0001A76,
-	// Block 4, offset 0x100
-	0xE0001A85, 0xE0001A94, 0xE0001AA3, 0xE0001AB2, 0xE0001AC1, 0xE0001AD0,
-	0xE0001ADF, 0xE0001AEE, 0xE0001AFD, 0xE0001B0C, 0xE0001B1B, 0xE0001B2A,
-	0x40498A20, 0xE000188A, 0xE0001899, 0xE00018A8, 0xE00018B7, 0xE00018C6,
-	0xE00018D5, 0xE00018E4, 0xE00018F3, 0xE0001902, 0xE0001911, 0xE0001920,
-	0xE000192F, 0xE000193E, 0xE000194D, 0xE000195C, 0xE000196B, 0xE000197A,
-	0xE0001989, 0xE0001998, 0xE00019A7, 0xE00019B6, 0xE00019C5, 0xE00019D4,
-	0xE00019E3, 0xE00019F2, 0xE0001A01, 0xE0001A10, 0xE0001A1F, 0xE0001A2E,
-	0xE0001A3D, 0xE0001A4C, 0xE0001A5B, 0xE0001A6A, 0xE0001A79, 0xE0001A88,
-	0xE0001A97, 0xE0001AA6, 0xE0001AB5, 0xE0001AC4, 0xE0001AD3, 0xE0001AE2,
-	0xE0001AF1, 0xE0001B00, 0xE0001B0F, 0xE0001B1E, 0xE0001B2D, 0x40498C20,
-	0xE000188D, 0xE000189C, 0xE00018AB, 0xE00018BA,
-	// Block 5, offset 0x140
-	0xE00018C9, 0xE00018D8, 0xE00018E7, 0xE00018F6, 0xE0001905, 0xE0001914,
-	0xE0001923, 0xE0001932, 0xE0001941, 0xE0001950, 0xE000195F, 0xE000196E,
-	0xE000197D, 0xE000198C, 0xE000199B, 0xE00019AA, 0xE00019B9, 0xE00019C8,
-	0xE00019D7, 0xE00019E6, 0xE00019F5, 0xE0001A04, 0xE0001A13, 0xE0001A22,
-	0xE0001A31, 0xE0001A40, 0xE0001A4F, 0xE0001A5E, 0xE0001A6D, 0xE0001A7C,
-	0xE0001A8B, 0xE0001A9A, 0xE0001AA9, 0xE0001AB8, 0xE0001AC7, 0xE0001AD6,
-	0xE0001AE5, 0xE0001AF4, 0xE0001B03, 0xE0001B12, 0xE0001B21, 0xE0001B30,
-	0xA0010502, 0x40497420, 0x4049E620, 0xE0001B42, 0xE0001B51, 0xE0001B60,
-	0xE0001B6F, 0xE0001B7E, 0xE0001B9C, 0xE0001BBA, 0xE0001BC9, 0xE0001BD8,
-	0xE0001BE7, 0xE0001BF6, 0xE0001C05, 0xE0001C14, 0xE0001C23, 0xE0001C32,
-	0xE0001C41, 0xE0001C50, 0xE0001C5F, 0xE0001C6E,
-	// Block 6, offset 0x180
-	0xE0001C7D, 0xE0001C8C, 0xE0001C9B, 0xE0001CAA, 0xE0001B8D, 0xE0001CE1,
-	0xE0001CF0, 0xE0001CFF, 0xE0001CB9, 0xE0001CCD, 0xE0001B33, 0xE0001BAB,
-	0x4049E820, 0xE0001B45, 0xE0001B54, 0xE0001B63, 0xE0001B72, 0xE0001B81,
-	0xE0001B9F, 0xE0001BBD, 0xE0001BCC, 0xE0001BDB, 0xE0001BEA, 0xE0001BF9,
-	0xE0001C08, 0xE0001C17, 0xE0001C26, 0xE0001C35, 0xE0001C44, 0xE0001C53,
-	0xE0001C62, 0xE0001C71, 0xE0001C80, 0xE0001C8F, 0xE0001C9E, 0xE0001CAD,
-	0xE0001B90, 0xE0001CE4, 0xE0001CF3, 0xE0001D02, 0xE0001CBD, 0xE0001CD1,
-	0xE0001B36, 0xE0001BAE, 0x4049EA20, 0xE0001B48, 0xE0001B57, 0xE0001B66,
-	0xE0001B75, 0xE0001B84, 0xE0001BA2, 0xE0001BC0, 0xE0001BCF, 0xE0001BDE,
-	0xE0001BED, 0xE0001BFC, 0xE0001C0B, 0xE0001C1A, 0xE0001C29, 0xE0001C38,
-	0xE0001C47, 0xE0001C56, 0xE0001C65, 0xE0001C74,
-	// Block 7, offset 0x1c0
-	0xE0001C83, 0xE0001C92, 0xE0001CA1, 0xE0001CB0, 0xE0001B93, 0xE0001CE7,
-	0xE0001CF6, 0xE0001D05, 0xE0001CC1, 0xE0001CD5, 0xE0001B39, 0xE0001BB1,
-	0x4049EC20, 0xE0001B4B, 0xE0001B5A, 0xE0001B69, 0xE0001B78, 0xE0001B87,
-	0xE0001BA5, 0xE0001BC3, 0xE0001BD2, 0xE0001BE1, 0xE0001BF0, 0xE0001BFF,
-	0xE0001C0E, 0xE0001C1D, 0xE0001C2C, 0xE0001C3B, 0xE0001C4A, 0xE0001C59,
-	0xE0001C68, 0xE0001C77, 0xE0001C86, 0xE0001C95, 0xE0001CA4, 0xE0001CB3,
-	0xE0001B96, 0xE0001CEA, 0xE0001CF9, 0xE0001D08, 0xE0001CC5, 0xE0001CD9,
-	0xE0001B3C, 0xE0001BB4, 0x4049EE20, 0xE0001B4E, 0xE0001B5D, 0xE0001B6C,
-	0xE0001B7B, 0xE0001B8A, 0xE0001BA8, 0xE0001BC6, 0xE0001BD5, 0xE0001BE4,
-	0xE0001BF3, 0xE0001C02, 0xE0001C11, 0xE0001C20, 0xE0001C2F, 0xE0001C3E,
-	0xE0001C4D, 0xE0001C5C, 0xE0001C6B, 0xE0001C7A,
-	// Block 8, offset 0x200
-	0xE0001C89, 0xE0001C98, 0xE0001CA7, 0xE0001CB6, 0xE0001B99, 0xE0001CED,
-	0xE0001CFC, 0xE0001D0B, 0xE0001CC9, 0xE0001CDD, 0xE0001B3F, 0xE0001BB7,
-	0xA0010B02, 0x4049D220, 0x404A5A20, 0xE0001D0E, 0xE0001D1D, 0xE0001D2C,
-	0xE0001D3B, 0xE0001D4A, 0xE0001D59, 0xE0001D68, 0xE0001D77, 0xE0001D86,
-	0xE0001D95, 0xE0001DA4, 0xE0001DB3, 0xE0001DC2, 0xE0001DD1, 0xE0001DE0,
-	0xE0001DEF, 0xE0001DFE, 0xE0001E0D, 0xE0001E1C, 0xE0001E2B, 0xE0001E3A,
-	0xE0001E49, 0xE0001E58, 0xE0001E67, 0xE0001E76, 0xE0001E85, 0xE0001E94,
-	0xE0001EA3, 0xE0001EB2, 0xE0001EC1, 0xE0001ED0, 0xE0001EDF, 0xE0001EEE,
-	0xE0001EFD, 0xE0001F0C, 0xE0001F1B, 0xE0001F2A, 0xE0001F39, 0xE0001F48,
-	0xE0001F57, 0xE0001F66, 0xE0001F75, 0xE0001F84, 0xE0001F93, 0xE0001FA2,
-	0xE0001FB1, 0xE0001FC0, 0xE0001FCF, 0x404A5C20,
-	// Block 9, offset 0x240
-	0xE0001D11, 0xE0001D20, 0xE0001D2F, 0xE0001D3E, 0xE0001D4D, 0xE0001D5C,
-	0xE0001D6B, 0xE0001D7A, 0xE0001D89, 0xE0001D98, 0xE0001DA7, 0xE0001DB6,
-	0xE0001DC5, 0xE0001DD4, 0xE0001DE3, 0xE0001DF2, 0xE0001E01, 0xE0001E10,
-	0xE0001E1F, 0xE0001E2E, 0xE0001E3D, 0xE0001E4C, 0xE0001E5B, 0xE0001E6A,
-	0xE0001E79, 0xE0001E88, 0xE0001E97, 0xE0001EA6, 0xE0001EB5, 0xE0001EC4,
-	0xE0001ED3, 0xE0001EE2, 0xE0001EF1, 0xE0001F00, 0xE0001F0F, 0xE0001F1E,
-	0xE0001F2D, 0xE0001F3C, 0xE0001F4B, 0xE0001F5A, 0xE0001F69, 0xE0001F78,
-	0xE0001F87, 0xE0001F96, 0xE0001FA5, 0xE0001FB4, 0xE0001FC3, 0xE0001FD2,
-	0x404A6220, 0xE0001D14, 0xE0001D23, 0xE0001D32, 0xE0001D41, 0xE0001D50,
-	0xE0001D5F, 0xE0001D6E, 0xE0001D7D, 0xE0001D8C, 0xE0001D9B, 0xE0001DAA,
-	0xE0001DB9, 0xE0001DC8, 0xE0001DD7, 0xE0001DE6,
-	// Block 10, offset 0x280
-	0xE0001DF5, 0xE0001E04, 0xE0001E13, 0xE0001E22, 0xE0001E31, 0xE0001E40,
-	0xE0001E4F, 0xE0001E5E, 0xE0001E6D, 0xE0001E7C, 0xE0001E8B, 0xE0001E9A,
-	0xE0001EA9, 0xE0001EB8, 0xE0001EC7, 0xE0001ED6, 0xE0001EE5, 0xE0001EF4,
-	0xE0001F03, 0xE0001F12, 0xE0001F21, 0xE0001F30, 0xE0001F3F, 0xE0001F4E,
-	0xE0001F5D, 0xE0001F6C, 0xE0001F7B, 0xE0001F8A, 0xE0001F99, 0xE0001FA8,
-	0xE0001FB7, 0xE0001FC6, 0xE0001FD5, 0x404A6620, 0xE0001D17, 0xE0001D26,
-	0xE0001D35, 0xE0001D44, 0xE0001D53, 0xE0001D62, 0xE0001D71, 0xE0001D80,
-	0xE0001D8F, 0xE0001D9E, 0xE0001DAD, 0xE0001DBC, 0xE0001DCB, 0xE0001DDA,
-	0xE0001DE9, 0xE0001DF8, 0xE0001E07, 0xE0001E16, 0xE0001E25, 0xE0001E34,
-	0xE0001E43, 0xE0001E52, 0xE0001E61, 0xE0001E70, 0xE0001E7F, 0xE0001E8E,
-	0xE0001E9D, 0xE0001EAC, 0xE0001EBB, 0xE0001ECA,
-	// Block 11, offset 0x2c0
-	0xE0001ED9, 0xE0001EE8, 0xE0001EF7, 0xE0001F06, 0xE0001F15, 0xE0001F24,
-	0xE0001F33, 0xE0001F42, 0xE0001F51, 0xE0001F60, 0xE0001F6F, 0xE0001F7E,
-	0xE0001F8D, 0xE0001F9C, 0xE0001FAB, 0xE0001FBA, 0xE0001FC9, 0xE0001FD8,
-	0x404A6820, 0xE0001D1A, 0xE0001D29, 0xE0001D38, 0xE0001D47, 0xE0001D56,
-	0xE0001D65, 0xE0001D74, 0xE0001D83, 0xE0001D92, 0xE0001DA1, 0xE0001DB0,
-	0xE0001DBF, 0xE0001DCE, 0xE0001DDD, 0xE0001DEC, 0xE0001DFB, 0xE0001E0A,
-	0xE0001E19, 0xE0001E28, 0xE0001E37, 0xE0001E46, 0xE0001E55, 0xE0001E64,
-	0xE0001E73, 0xE0001E82, 0xE0001E91, 0xE0001EA0, 0xE0001EAF, 0xE0001EBE,
-	0xE0001ECD, 0xE0001EDC, 0xE0001EEB, 0xE0001EFA, 0xE0001F09, 0xE0001F18,
-	0xE0001F27, 0xE0001F36, 0xE0001F45, 0xE0001F54, 0xE0001F63, 0xE0001F72,
-	0xE0001F81, 0xE0001F90, 0xE0001F9F, 0xE0001FAE,
-	// Block 12, offset 0x300
-	0xE0001FBD, 0xE0001FCC, 0xE0001FDB, 0x404AEA20, 0xE000200E, 0xE0002011,
-	0x404B2620, 0x404B2420, 0x404B2620, 0x404AF020, 0xE0002014, 0xE0002017,
-	0x404B2A20, 0x404B2820, 0x404B2A20, 0x8281258B, 0x8281258D, 0x82812591,
-	0x8281258F, 0x404ECA20, 0x404ECC20, 0x404F9C20, 0x404F9620, 0x404F9E20,
-	0x404F9820, 0x40522620, 0x40522820, 0x40522A20, 0x40522C20, 0x40522E20,
-	0x40523020, 0x40523220, 0x40523420, 0x40523620, 0x40523820, 0x40523E20,
-	0x40524020, 0x40529C20, 0x40529E20, 0x4052A020, 0x4052A220, 0x4052A420,
-	0x4052A820, 0x4052A620, 0x4052AA20, 0x4052AC20, 0x4052AE20, 0x4040B620,
-	0x4040B420, 0x40409820, 0x4040DC20, 0x402C3A20, 0x402C3C20, 0x002C3A88,
-	0x002C3C83, 0x402D2220, 0x402D2420, 0x002D2288, 0x002D2483, 0x002D9883,
-	0x002D9A83, 0x402EE220, 0x402EE420, 0x002EE288,
-	// Block 13, offset 0x340
-	0x002EE483, 0x402FE620, 0x402FE820, 0x002FE688, 0x002FE883, 0x40306C20,
-	0x40306E20, 0x00306C88, 0x00306E83, 0x4033B220, 0x4033BA20, 0x4033B420,
-	0x0033B288, 0x0033BA88, 0x0033B483, 0x402E2220, 0x402E2221, 0x402E2221,
-	0x002E2288, 0x002E22A3, 0x002E22A3, 0x402C3A20, 0x402C3C20, 0x002D6A83,
-	0x402D6A20, 0x002C3A88, 0x002C3C83, 0x002D6A85, 0x002D6A84, 0x402F7A20,
-	0x402F7C20, 0x002F7A88, 0x002F7C83, 0x40312A20, 0x40312C20, 0x00312A88,
-	0x00312C83, 0x002C3A88, 0x002C3C84, 0x002C3C83, 0x402C6220, 0x402C6420,
-	0x002C6288, 0x002C6484, 0x002C6483, 0x402D0820, 0x402D0A20, 0x002D0888,
-	0x002D0A84, 0x002D0A83, 0x402E9E20, 0x402D2420, 0x002E9E88, 0x002D2484,
-	0x002D2483, 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x402E2420, 0x002E2288,
-	0xE0000D01, 0xE0000D01, 0x002E2484, 0x002E2483,
-	// Block 14, offset 0x380
-	0x402F2C20, 0x402F2E20, 0x002F2C88, 0x002F2E84, 0x002F2E83, 0x002F7A88,
-	0x002F7C84, 0x002F7C83, 0x40302C20, 0x40302E20, 0x00302C88, 0x00302E84,
-	0x00302E83, 0x40306C20, 0x40310021, 0x40310022, 0x00306C88, 0x003100A3,
-	0x003100C3, 0x402BDE20, 0x40320C21, 0x40321020, 0x00321084, 0x002BDE88,
-	0x00320CA3, 0x00321083, 0x00321086, 0x00321085, 0x402C9820, 0x40320C22,
-	0x002C9888, 0x00320CC3, 0x402EE220, 0x40320E21, 0x40320E22, 0x002EE288,
-	0x00320EA3, 0x00320EC3, 0xAE611302, 0x404A7621, 0x404A7C21, 0x404AB020,
-	0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404ADA20,
-	0x404A8220, 0x404A8420, 0xE0002635, 0xE000263A, 0x404A8620, 0x404A8820,
-	0x404A8A20, 0x404A8C20, 0x404A8E20, 0x404A9020, 0x404A9220, 0x404A9420,
-	0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20,
-	// Block 15, offset 0x3c0
-	0x404A8620, 0x404A8820, 0xE000263F, 0xE0002644, 0x404A8A20, 0x404A8C20,
-	0x404A8E20, 0x404A9020, 0x404ABA20, 0x404ABC20, 0xE0002649, 0xE000264E,
-	0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820,
-	0x404ACA20, 0x404AD620, 0x404AD820, 0x404AC220, 0x404AC420, 0xE0002653,
-	0xE0002658, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20, 0x404ACE20,
-	0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20,
-	0x404ADC20, 0x404AC620, 0x404AC820, 0xE000265D, 0xE0002662, 0x404ACA20,
-	0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620,
-	0x404AD820, 0x404ADC20, 0x404A7820, 0x404AC020, 0x404A9E20, 0xE000266D,
-	0xE0002672, 0x404AA020, 0x404AA220, 0x404AA420, 0x404AA620, 0x404AA820,
-	0x404AAA20, 0x404AAC20, 0x004AA283, 0x404AAE20,
-	// Block 16, offset 0x400
-	0x404AB020, 0x404AB220, 0x404ACC20, 0xE0002677, 0xE000267C, 0x404ACE20,
-	0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20,
-	0x404ADC20, 0x004ACE83, 0x404A8220, 0x404AE820, 0x404AA420, 0x404A9A20,
-	0x404A9E20, 0x404AB420, 0x404B1420, 0x404AE420, 0x404AD220, 0x404AD820,
-	0x404AEA20, 0x404A9020, 0x404AB620, 0x404B1620, 0x404B1620, 0x404B1820,
-	0xE0002681, 0xE0002686, 0x404B1A20, 0x404B1C20, 0x404B1E20, 0x404B2020,
-	0x404B2220, 0x404B2420, 0x404B2620, 0x404B2820, 0x404B2A20, 0x004B1E83,
-	0x404A8420, 0x404AEA20, 0x404AA620, 0x404AA020, 0x404AB820, 0x404B1820,
-	0x404AE620, 0x404AD420, 0x404B2C20, 0x404B2E20, 0x404B3020, 0x404A7A20,
-	0x404A8C20, 0x404AAC20, 0x404ACC20, 0x404ADC20, 0x404AE020, 0x404AF620,
-	0x404AE820, 0x404A7C20, 0x404AE220, 0x404A9E20,
-	// Block 17, offset 0x440
-	0x404A9620, 0x404A9A20, 0x404AAE20, 0x404B0E20, 0x404AE020, 0x404AFC20,
-	0x404ADE20, 0x404ACE20, 0x404AD620, 0x404AEE20, 0x404A7E20, 0x404AE420,
-	0x404AA020, 0x404A8E20, 0x404A9820, 0x404AB020, 0x404B1020, 0x404ADA20,
-	0x404AFE20, 0x404B0020, 0x404AC420, 0x404AB420, 0x404AB620, 0x404AB820,
-	0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404A9220, 0xE000268E,
-	0xE0002693, 0x404A9420, 0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20,
-	0x404ADE20, 0x404AE020, 0xE0002698, 0xE000269D, 0x404AE220, 0x404AE420,
-	0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20, 0x404ACA20, 0x404ACC20,
-	0xE00026A2, 0xE00026A7, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420,
-	0x404AD620, 0x404AD820, 0x404ADA20, 0x404ADC20, 0x404ADE20, 0x004AD283,
-	0x404A7E20, 0x404A8E20, 0x404A9220, 0x404A9820,
-	// Block 18, offset 0x480
-	0x404AAE20, 0x404ACE20, 0x404AD220, 0x404AFA20, 0x404A8020, 0x404AE620,
-	0x404AA220, 0x404A9C20, 0x404AB220, 0x404B1220, 0x404AE220, 0x404ADC20,
-	0x404B0020, 0x404AE020, 0x404AD020, 0x404AE020, 0x404AC220, 0x404AC420,
-	0xE00026AF, 0xE00026B4, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20,
-	0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820,
-	0x404ADA20, 0x404ADC20, 0x004ACC83, 0x404ADE20, 0x404AE020, 0x404AEE20,
-	0x404AF020, 0xE00026B9, 0xE00026BE, 0x404AF220, 0x404AF420, 0x404AF620,
-	0x404AF820, 0x404AFA20, 0x404AFC20, 0x404AFE20, 0x404B0020, 0x404B0220,
-	0x404B0420, 0x404B0620, 0x404B0820, 0x404B0A20, 0x004AF883, 0x404B0C20,
-	0x404ADE20, 0x404AE020, 0xE00026C3, 0xE00026C8, 0x404AE220, 0x404AE420,
-	0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20,
-	// Block 19, offset 0x4c0
-	0x404AEE20, 0x404AF020, 0x404AF220, 0x404AF420, 0x404AF620, 0x004AE883,
-	0x404AF820, 0x404AFA20, 0x404A8020, 0x404A9020, 0x404A9420, 0x404AB020,
-	0x404ABE20, 0x404AD020, 0x404AD420, 0x404A8020, 0x404AB220, 0x404AB420,
-	0xE0002614, 0xE0002619, 0x404AB620, 0x404AB820, 0x404ABA20, 0x404ABC20,
-	0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820,
-	0x404ACA20, 0x004ABA83, 0x404AB620, 0x404AB820, 0xE000261E, 0xE0002623,
-	0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420,
-	0x404AC620, 0x404AC820, 0x004ABE83, 0x404AFC20, 0x404AFE20, 0xE0002628,
-	0xE000262D, 0x404B0020, 0x404B0220, 0x404B0420, 0x404B0620, 0x404B0820,
-	0x404B0A20, 0x404B0C20, 0x404B0E20, 0x404B1020, 0x404B1220, 0x404B1420,
-	0x404A8A20, 0x404A9620, 0x404AAA20, 0x404ACA20,
-	// Block 20, offset 0x500
-	0x404ADA20, 0x404ADE20, 0x404AE620, 0x404AF420, 0xAE611602, 0x404A9421,
-	0xAE611402, 0x404AB821, 0x404ABC21, 0x828225B1, 0xE000200E, 0xE0002011,
-	0x404B2620, 0xE00026CD, 0xE000200E, 0xE0002011, 0x404B2420, 0x404B2620,
-	0x828225B2, 0xE0002014, 0xE0002017, 0x404B2A20, 0xE00026D0, 0xE0002014,
-	0xE0002017, 0x404B2820, 0x404B2A20, 0xAE610F02, 0x8281258D, 0x82812591,
-	0x8281258F, 0x002D2288, 0x002D2484, 0x002D2483, 0x402DFE20, 0x402E0020,
-	0x002DFE88, 0x002E0084, 0x002E0083, 0x402E9E20, 0x402EA020, 0x002E9E88,
-	0x002EA084, 0x002EA083, 0x402C3420, 0xE0000CFB, 0xE0000CFB, 0x402C0820,
-	0xE0000D01, 0xE0000D01, 0x402D6820, 0x402D6A20, 0x002D6888, 0x002D6A83,
-	0x402DCC20, 0x402DCE20, 0x002DCC88, 0x002DCE83, 0x002E9E88, 0x002EA083,
-	0x402FE620, 0x40302620, 0x002FE688, 0x00302683,
-	// Block 21, offset 0x540
-	0x40302820, 0x40302A20, 0x00302883, 0x00302A83, 0x402EE220, 0x4030EE20,
-	0x4030F220, 0x002EE288, 0x0030EE83, 0x0030F283, 0x402BDE20, 0x4030F020,
-	0x002BDE88, 0x0030F083, 0x40306C20, 0x4030F420, 0x00306C88, 0x0030F483,
-	0x40393820, 0x40393620, 0x40393A21, 0x40393A23, 0x403A7420, 0x40393A25,
-	0x403A9220, 0x40393A26, 0x403A9221, 0x00393B43, 0x403A9223, 0x00393B44,
-	0x403A8821, 0x403A8825, 0x40306C20, 0x40310021, 0x00306C88, 0x003100A3,
-	0x402BDE20, 0x40320E20, 0x40320C20, 0x002BDE88, 0x00320E83, 0x00320C83,
-	0x402EE220, 0x40321020, 0x002EE288, 0x00321083, 0x402E9E20, 0x402EA020,
-	0x402EA220, 0x002E9E88, 0x002EA083, 0x002EA284, 0x002EA283, 0x002FE688,
-	0x002FE884, 0x002FE883, 0x4031DE20, 0x00310286, 0x00310283, 0x4003D220,
-	0x00310287, 0x00310284, 0x402BEC20, 0xE0000CFB,
-	// Block 22, offset 0x580
-	0xE0000CFB, 0x002BEC83, 0xE0000D01, 0xE0000D01, 0x402C3A20, 0x402C3E20,
-	0x402C3C20, 0x002C3A88, 0x002C3E83, 0x002C3C83, 0x402C6220, 0x402C6420,
-	0x402C6420, 0x002C6288, 0x002C6486, 0x002C6484, 0x002C6486, 0x002C6484,
-	0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x002E9E88,
-	0x002EA086, 0x002EA084, 0x402C3A20, 0xE0003707, 0x402C3C20, 0x002C3A88,
-	0xE000370D, 0xE000370A, 0x002C3C86, 0x002C3C84, 0x402C6220, 0xE0003719,
-	0xE0003710, 0x402C6620, 0x402C6420, 0x002C6288, 0xE000371F, 0xE000371C,
-	0xE0003716, 0x002C6686, 0xE0003713, 0x002C6684, 0x002C6486, 0x002C6484,
-	0x402D2220, 0xE0003722, 0x402D2420, 0x002D2288, 0xE0003728, 0xE0003725,
-	0x002D2486, 0x002D2484, 0x402E2220, 0xE000372B, 0xE0000CFB, 0xE0000CFB,
-	0x402E2420, 0x002E2288, 0xE0003731, 0xE000372E,
-	// Block 23, offset 0x5c0
-	0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, 0x402E9E20, 0xE0003734,
-	0x402EA020, 0x002E9E88, 0xE000373A, 0xE0003737, 0x002EA086, 0x002EA084,
-	0x402EE220, 0x402EE420, 0x402EE421, 0x002EE288, 0x002EE483, 0x002EE4A3,
-	0x402FE620, 0xE000373D, 0x402FE820, 0x002FE688, 0xE0003743, 0xE0003740,
-	0x002FE886, 0x002FE884, 0x40302C20, 0xE0003746, 0x40302E20, 0x00302C88,
-	0xE000374C, 0xE0003749, 0x00302E86, 0x00302E84, 0x40306C20, 0x40306E20,
-	0x40306E21, 0x00306C88, 0x00306E83, 0x00306EA3, 0x40312A20, 0xE000374F,
-	0x40312C20, 0x00312A88, 0xE0003755, 0xE0003752, 0x00312C86, 0x00312C84,
-	0x00384A88, 0x00388A83, 0x402C3A20, 0x402C0C20, 0x002C3A88, 0x002C0C84,
-	0x002C0C83, 0x402D2220, 0x402D2420, 0x402D2620, 0x402D2820, 0x002D2288,
-	0x002D2484, 0x002D2684, 0x002D2884, 0x002D2483,
-	// Block 24, offset 0x600
-	0x002D2683, 0x002D2883, 0x402D9A20, 0x402D9C20, 0x002D9A88, 0x002D9C83,
-	0x402DFE20, 0x402E0020, 0x402E0220, 0x002DFE88, 0x002E0084, 0x002E0284,
-	0x002E0083, 0x002E0283, 0x402E9E20, 0x402EA020, 0x402EA220, 0x402EA420,
-	0x002E9E88, 0x002EA083, 0x002EA284, 0x002EA484, 0x002EA283, 0x002EA483,
-	0x402BDE20, 0x402C0820, 0x40320C21, 0x40321020, 0x002BDE88, 0x002C0883,
-	0x00320CA3, 0x00321083, 0x402C9820, 0x402D0620, 0x002C9888, 0x002D0683,
-	0x402D9A20, 0x402DCA20, 0x002D9A88, 0x002DCA83, 0x402EE220, 0x402F2A20,
-	0x40320E20, 0x002EE288, 0x002F2A83, 0x00320E83, 0x40306C20, 0x4030BC20,
-	0x00306C88, 0x0030BC83, 0x40310020, 0x40312820, 0x00310088, 0x00312883,
-	0x0065768F, 0xE00038D8, 0xE00038D2, 0x0065768F, 0xE00038D2, 0xE00038D8,
-	0x00657691, 0xE00038DB, 0xE00038D5, 0x00657691,
-	// Block 25, offset 0x640
-	0xE00038D5, 0xE00038DB, 0x0065828F, 0xE0003A56, 0xE00038DE, 0x0065828F,
-	0xE00038DE, 0xE0003A56, 0x00658291, 0xE0003A5C, 0xE00038E4, 0xE0003A59,
-	0xE00038E1, 0x00658291, 0xE00038E4, 0xE0003A5C, 0xE00038E1, 0xE0003A59,
-	0x00658291, 0xE00038E1, 0xE0003A59, 0xE000216D, 0xE0003A5C, 0xE00038E4,
-	0xE000216D, 0xE00038E4, 0xE0003A5C, 0x00658C91, 0xE0003A9F, 0xE0003A9B,
-	0xE00038EB, 0xE0003A9B, 0xE0003A98, 0xE0003A9B, 0xE00038E8, 0x00658C91,
-	0xE0003A9F, 0xE00038EB, 0xE0003A9B, 0xE0003A9B, 0xE00038E8, 0xE0003A98,
-	0xE0003A9B, 0x00658C91, 0xE0003A9B, 0xE00038E8, 0xE0003A98, 0xE0003A9B,
-	0xE00021F2, 0xE0003A9B, 0xE0003A9F, 0xE00038EB, 0xE00021F2, 0xE00038EB,
-	0xE0003A9B, 0xE0003A9F, 0x00659691, 0xE0003AE9, 0xE0003AE5, 0xE00038F2,
-	0xE0003AE5, 0xE0003AE2, 0xE0003AE5, 0xE00038EF,
-	// Block 26, offset 0x680
-	0x00659691, 0xE0003AE9, 0xE00038F2, 0xE0003AE5, 0xE0003AE5, 0xE00038EF,
-	0xE0003AE2, 0xE0003AE5, 0x00659691, 0xE0003AE5, 0xE00038EF, 0xE0003AE2,
-	0xE0003AE5, 0xE000222C, 0xE0003AE5, 0xE0003AE9, 0xE00038F2, 0xE000222C,
-	0xE00038F2, 0xE0003AE5, 0xE0003AE9, 0x0065A091, 0xE0003B2C, 0xE00038F6,
-	0x0065A091, 0xE00038F6, 0xE0003B2C, 0x0065AA8F, 0xE0003B44, 0xE00038F9,
-	0xE0003B3E, 0xE0003B44, 0x0065AA91, 0xE0003B4C, 0xE0003B55, 0xE0003B48,
-	0xE00038FF, 0xE0003B51, 0xE0003903, 0xE0003B48, 0xE0003B41, 0xE0003B48,
-	0xE00038FC, 0x0065AA91, 0xE0003B4C, 0xE0003B55, 0xE00038FF, 0xE0003B48,
-	0xE0003903, 0xE0003B51, 0xE0003B48, 0xE00038FC, 0xE0003B41, 0xE0003B48,
-	0x0065AA91, 0xE0003B48, 0xE00038FC, 0xE0003B41, 0xE0003B48, 0xE000225B,
-	0xE0003B48, 0xE0003B4C, 0xE00038FF, 0xE000225B,
-	// Block 27, offset 0x6c0
-	0xE00038FF, 0xE0003B48, 0xE0003B4C, 0xE0002261, 0xE0003B51, 0xE0003B55,
-	0xE0003903, 0xE0002261, 0xE0003903, 0xE0003B51, 0xE0003B55, 0x0065B491,
-	0xE0003BCA, 0xE0003907, 0x0065B491, 0xE0003907, 0xE0003BCA, 0x0065BE8F,
-	0xE0003BDC, 0xE000390A, 0x0065BE8F, 0xE000390A, 0xE0003BDC, 0x0065BE91,
-	0xE0003BDF, 0xE000390D, 0x0065BE91, 0xE000390D, 0xE0003BDF, 0x0065C68F,
-	0xE0003910, 0xE0003BF1, 0x0065C691, 0xE0003BF4, 0xE0003913, 0x0065C691,
-	0xE0003913, 0xE0003BF4, 0x0065D08F, 0xE0003C15, 0xE0003C0F, 0xE0003C15,
-	0xE0003916, 0x0065D08F, 0xE0003C15, 0xE0003916, 0xE0003C0F, 0xE0003C15,
-	0x0065D091, 0xE0003C19, 0xE0003C12, 0xE0003C19, 0xE0003919, 0x0065D091,
-	0xE0003C1D, 0xE000391C, 0xE0003C19, 0xE0003C19, 0xE0003919, 0xE0003C12,
-	0xE0003C19, 0x0065D091, 0xE0003C19, 0xE0003919,
-	// Block 28, offset 0x700
-	0xE0003C12, 0xE0003C19, 0xE000236A, 0xE000391C, 0xE0003C19, 0xE0003C1D,
-	0x0065788F, 0xE0003926, 0xE0003920, 0x0065788F, 0xE0003920, 0xE0003926,
-	0x00657891, 0xE0003929, 0xE0003923, 0x00657891, 0xE0003923, 0xE0003929,
-	0x00658491, 0xE0003A67, 0xE0003A63, 0xE000392F, 0xE0003A63, 0xE0003A60,
-	0xE0003A63, 0xE000392C, 0x00658491, 0xE0003A67, 0xE000392F, 0xE0003A63,
-	0xE0003A63, 0xE000392C, 0xE0003A60, 0xE0003A63, 0x00658491, 0xE0003A63,
-	0xE000392C, 0xE0003A60, 0xE0003A63, 0xE000218B, 0xE0003A63, 0xE0003A67,
-	0xE000392F, 0xE000218B, 0xE000392F, 0xE0003A63, 0xE0003A67, 0x00658E8F,
-	0xE0003AAA, 0xE0003933, 0xE0003AA4, 0xE0003AAA, 0x00658E91, 0xE0003AB2,
-	0xE0003AAE, 0xE0003939, 0xE0003AAE, 0xE0003AA7, 0xE0003AAE, 0xE0003936,
-	0x00658E91, 0xE0003AB2, 0xE0003939, 0xE0003AAE,
-	// Block 29, offset 0x740
-	0xE0003AAE, 0xE0003936, 0xE0003AA7, 0xE0003AAE, 0x00658E91, 0xE0003AAE,
-	0xE0003936, 0xE0003AA7, 0xE0003AAE, 0xE0002203, 0xE0003AAE, 0xE0003AB2,
-	0xE0003939, 0xE0002203, 0xE0003939, 0xE0003AAE, 0xE0003AB2, 0x00659891,
-	0xE0003AF5, 0xE0003AF1, 0xE0003940, 0xE0003AF1, 0xE0003AEE, 0xE0003AF1,
-	0xE000393D, 0x00659891, 0xE0003AF5, 0xE0003940, 0xE0003AF1, 0xE0003AF1,
-	0xE000393D, 0xE0003AEE, 0xE0003AF1, 0x00659891, 0xE0003AF1, 0xE000393D,
-	0xE0003AEE, 0xE0003AF1, 0xE0002237, 0xE0003AF1, 0xE0003AF5, 0xE0003940,
-	0xE0002237, 0xE0003940, 0xE0003AF1, 0xE0003AF5, 0x0065A291, 0xE0003B2F,
-	0xE0003944, 0x0065A291, 0xE0003944, 0xE0003B2F, 0x0065AC8F, 0xE0003B60,
-	0xE0003947, 0xE0003B5A, 0xE0003B60, 0x0065AC91, 0xE0003B68, 0xE0003B71,
-	0xE0003B64, 0xE000394D, 0xE0003B6D, 0xE0003951,
-	// Block 30, offset 0x780
-	0xE0003B64, 0xE0003B5D, 0xE0003B64, 0xE000394A, 0x0065AC91, 0xE0003B68,
-	0xE0003B71, 0xE000394D, 0xE0003B64, 0xE0003951, 0xE0003B6D, 0xE0003B64,
-	0xE000394A, 0xE0003B5D, 0xE0003B64, 0x0065AC91, 0xE0003B64, 0xE000394A,
-	0xE0003B5D, 0xE0003B64, 0xE000227D, 0xE0003B64, 0xE0003B68, 0xE000394D,
-	0xE000227D, 0xE000394D, 0xE0003B64, 0xE0003B68, 0xE0002283, 0xE0003B6D,
-	0xE0003B71, 0xE0003951, 0xE0002283, 0xE0003951, 0xE0003B6D, 0xE0003B71,
-	0x0065B691, 0xE0003BCD, 0xE0003955, 0x0065B691, 0xE0003955, 0xE0003BCD,
-	0x0065C88F, 0xE0003958, 0xE0003BF7, 0x0065C891, 0xE0003BFA, 0xE000395B,
-	0x0065C891, 0xE000395B, 0xE0003BFA, 0x0065D291, 0xE0003C25, 0xE0003C22,
-	0xE0003C25, 0xE000395E, 0x0065D291, 0xE0003C29, 0xE0003961, 0xE0003C25,
-	0xE0003C25, 0xE000395E, 0xE0003C22, 0xE0003C25,
-	// Block 31, offset 0x7c0
-	0xE0002371, 0xE0003961, 0xE0003C25, 0xE0003C29, 0x00657A8F, 0xE0003975,
-	0xE000396B, 0xE0003975, 0xE0003965, 0x00657A8F, 0xE0003975, 0xE0003965,
-	0xE000396B, 0xE0003975, 0x00657A91, 0xE000397D, 0xE0003979, 0xE0003971,
-	0xE0003979, 0xE000396E, 0xE0003979, 0xE0003968, 0x00657A91, 0xE000397D,
-	0xE0003971, 0xE0003979, 0xE0003979, 0xE0003968, 0xE000396E, 0xE0003979,
-	0x00657A91, 0xE0003979, 0xE0003968, 0xE000396E, 0xE0003979, 0xE000214F,
-	0xE0003979, 0xE000397D, 0xE0003971, 0xE000214F, 0xE0003971, 0xE0003979,
-	0xE000397D, 0x0065868F, 0xE0003A72, 0xE0003982, 0xE0003A6C, 0xE0003A72,
-	0x00658691, 0xE0003A7A, 0xE0003A76, 0xE0003988, 0xE0003A76, 0xE0003A6F,
-	0xE0003A76, 0xE0003985, 0x00658691, 0xE0003A7A, 0xE0003988, 0xE0003A76,
-	0xE0003A76, 0xE0003985, 0xE0003A6F, 0xE0003A76,
-	// Block 32, offset 0x800
-	0x00658691, 0xE0003A76, 0xE0003985, 0xE0003A6F, 0xE0003A76, 0xE00021BB,
-	0xE0003A76, 0xE0003A7A, 0xE0003988, 0xE00021BB, 0xE0003988, 0xE0003A76,
-	0xE0003A7A, 0x0065908F, 0xE0003ABD, 0xE000398C, 0xE0003AB7, 0xE0003ABD,
-	0x00659091, 0xE0003AC5, 0xE0003AC1, 0xE0003992, 0xE0003AC1, 0xE0003ABA,
-	0xE0003AC1, 0xE000398F, 0x00659091, 0xE0003AC5, 0xE0003992, 0xE0003AC1,
-	0xE0003AC1, 0xE000398F, 0xE0003ABA, 0xE0003AC1, 0x00659091, 0xE0003AC1,
-	0xE000398F, 0xE0003ABA, 0xE0003AC1, 0xE0002212, 0xE0003AC1, 0xE0003AC5,
-	0xE0003992, 0xE0002212, 0xE0003992, 0xE0003AC1, 0xE0003AC5, 0x00659A8F,
-	0xE0003B00, 0xE0003AFA, 0xE0003B00, 0xE0003996, 0x00659A8F, 0xE0003B00,
-	0xE0003996, 0xE0003AFA, 0xE0003B00, 0x00659A91, 0xE0003B08, 0xE0003B04,
-	0xE000399C, 0xE0003B04, 0xE0003AFD, 0xE0003B04,
-	// Block 33, offset 0x840
-	0xE0003999, 0x00659A91, 0xE0003B08, 0xE000399C, 0xE0003B04, 0xE0003B04,
-	0xE0003999, 0xE0003AFD, 0xE0003B04, 0x00659A91, 0xE0003B04, 0xE0003999,
-	0xE0003AFD, 0xE0003B04, 0xE000223D, 0xE0003B04, 0xE0003B08, 0xE000399C,
-	0xE000223D, 0xE000399C, 0xE0003B04, 0xE0003B08, 0x0065A48F, 0xE00039A0,
-	0xE0003B32, 0x0065A491, 0xE0003B35, 0xE00039A3, 0x0065A491, 0xE00039A3,
-	0xE0003B35, 0x0065AE8F, 0xE0003B7C, 0xE00039A6, 0xE0003B76, 0xE0003B7C,
-	0x0065AE91, 0xE0003B84, 0xE0003B8D, 0xE0003B80, 0xE00039AC, 0xE0003B89,
-	0xE00039B0, 0xE0003B80, 0xE0003B79, 0xE0003B80, 0xE00039A9, 0x0065AE91,
-	0xE0003B84, 0xE0003B8D, 0xE00039AC, 0xE0003B80, 0xE00039B0, 0xE0003B89,
-	0xE0003B80, 0xE00039A9, 0xE0003B79, 0xE0003B80, 0x0065AE91, 0xE0003B80,
-	0xE00039A9, 0xE0003B79, 0xE0003B80, 0xE000229D,
-	// Block 34, offset 0x880
-	0xE0003B80, 0xE0003B84, 0xE00039AC, 0xE000229D, 0xE00039AC, 0xE0003B80,
-	0xE0003B84, 0xE00022A3, 0xE0003B89, 0xE0003B8D, 0xE00039B0, 0xE00022A3,
-	0xE00039B0, 0xE0003B89, 0xE0003B8D, 0x0065B88F, 0xE00039B4, 0xE0003BD0,
-	0x0065B891, 0xE0003BD3, 0xE00039B7, 0x0065B891, 0xE00039B7, 0xE0003BD3,
-	0x0065C08F, 0xE0003BE2, 0xE00039BA, 0x0065C08F, 0xE00039BA, 0xE0003BE2,
-	0x0065C091, 0xE0003BE5, 0xE00039BD, 0x0065C091, 0xE00039BD, 0xE0003BE5,
-	0x0065CA8F, 0xE00039C0, 0xE0003BFD, 0x0065CA91, 0xE0003C00, 0xE00039C3,
-	0x0065CA91, 0xE00039C3, 0xE0003C00, 0x00657E8F, 0xE00039CC, 0xE00039C6,
-	0x00657E8F, 0xE00039C6, 0xE00039CC, 0x00657E91, 0xE00039CF, 0xE00039C9,
-	0x00657E91, 0xE00039C9, 0xE00039CF, 0x0065888F, 0xE0003A7F, 0xE00039D2,
-	0x0065888F, 0xE00039D2, 0xE0003A7F, 0x00658891,
-	// Block 35, offset 0x8c0
-	0xE0003A85, 0xE00039D8, 0xE0003A82, 0xE00039D5, 0x00658891, 0xE00039D8,
-	0xE0003A85, 0xE00039D5, 0xE0003A82, 0x00658891, 0xE00039D5, 0xE0003A82,
-	0xE00021D9, 0xE0003A85, 0xE00039D8, 0xE00021D9, 0xE00039D8, 0xE0003A85,
-	0x00659291, 0xE0003AD1, 0xE0003ACD, 0xE00039DF, 0xE0003ACD, 0xE0003ACA,
-	0xE0003ACD, 0xE00039DC, 0x00659291, 0xE0003AD1, 0xE00039DF, 0xE0003ACD,
-	0xE0003ACD, 0xE00039DC, 0xE0003ACA, 0xE0003ACD, 0x00659291, 0xE0003ACD,
-	0xE00039DC, 0xE0003ACA, 0xE0003ACD, 0xE0002218, 0xE0003ACD, 0xE0003AD1,
-	0xE00039DF, 0xE0002218, 0xE00039DF, 0xE0003ACD, 0xE0003AD1, 0x00659C91,
-	0xE0003B14, 0xE0003B10, 0xE00039E6, 0xE0003B10, 0xE0003B0D, 0xE0003B10,
-	0xE00039E3, 0x00659C91, 0xE0003B14, 0xE00039E6, 0xE0003B10, 0xE0003B10,
-	0xE00039E3, 0xE0003B0D, 0xE0003B10, 0x00659C91,
-	// Block 36, offset 0x900
-	0xE0003B10, 0xE00039E3, 0xE0003B0D, 0xE0003B10, 0xE0002243, 0xE0003B10,
-	0xE0003B14, 0xE00039E6, 0xE0002243, 0xE00039E6, 0xE0003B10, 0xE0003B14,
-	0x0065A691, 0xE0003B38, 0xE00039EA, 0x0065A691, 0xE00039EA, 0xE0003B38,
-	0x0065B08F, 0xE0003B98, 0xE00039ED, 0xE0003B92, 0xE0003B98, 0x0065B091,
-	0xE0003BA0, 0xE0003BA9, 0xE0003B9C, 0xE00039F3, 0xE0003BA5, 0xE00039F7,
-	0xE0003B9C, 0xE0003B95, 0xE0003B9C, 0xE00039F0, 0x0065B091, 0xE0003BA0,
-	0xE0003BA9, 0xE00039F3, 0xE0003B9C, 0xE00039F7, 0xE0003BA5, 0xE0003B9C,
-	0xE00039F0, 0xE0003B95, 0xE0003B9C, 0x0065B091, 0xE0003B9C, 0xE00039F0,
-	0xE0003B95, 0xE0003B9C, 0xE00022C0, 0xE0003B9C, 0xE0003BA0, 0xE00039F3,
-	0xE00022C0, 0xE00039F3, 0xE0003B9C, 0xE0003BA0, 0xE00022C6, 0xE0003BA5,
-	0xE0003BA9, 0xE00039F7, 0xE00022C6, 0xE00039F7,
-	// Block 37, offset 0x940
-	0xE0003BA5, 0xE0003BA9, 0x0065BA91, 0xE0003BD6, 0xE00039FB, 0x0065BA91,
-	0xE00039FB, 0xE0003BD6, 0x0065CC8F, 0xE00039FE, 0xE0003C03, 0x0065CC91,
-	0xE0003C06, 0xE0003A01, 0x0065CC91, 0xE0003A01, 0xE0003C06, 0x0065D491,
-	0xE0003C31, 0xE0003C2E, 0xE0003C31, 0xE0003A04, 0x0065D491, 0xE0003C35,
-	0xE0003A07, 0xE0003C31, 0xE0003C31, 0xE0003A04, 0xE0003C2E, 0xE0003C31,
-	0xE0002374, 0xE0003A07, 0xE0003C31, 0xE0003C35, 0x0065808F, 0xE0003A11,
-	0xE0003A0B, 0x0065808F, 0xE0003A0B, 0xE0003A11, 0x00658091, 0xE0003A14,
-	0xE0003A0E, 0x00658091, 0xE0003A0E, 0xE0003A14, 0x00658A91, 0xE0003A90,
-	0xE0003A8C, 0xE0003A1A, 0xE0003A8C, 0xE0003A89, 0xE0003A8C, 0xE0003A17,
-	0x00658A91, 0xE0003A90, 0xE0003A1A, 0xE0003A8C, 0xE0003A8C, 0xE0003A17,
-	0xE0003A89, 0xE0003A8C, 0x00658A91, 0xE0003A8C,
-	// Block 38, offset 0x980
-	0xE0003A17, 0xE0003A89, 0xE0003A8C, 0xE00021E3, 0xE0003A8C, 0xE0003A90,
-	0xE0003A1A, 0xE00021E3, 0xE0003A1A, 0xE0003A8C, 0xE0003A90, 0x00659491,
-	0xE0003ADD, 0xE0003AD9, 0xE0003A21, 0xE0003AD9, 0xE0003AD6, 0xE0003AD9,
-	0xE0003A1E, 0x00659491, 0xE0003ADD, 0xE0003A21, 0xE0003AD9, 0xE0003AD9,
-	0xE0003A1E, 0xE0003AD6, 0xE0003AD9, 0x00659491, 0xE0003AD9, 0xE0003A1E,
-	0xE0003AD6, 0xE0003AD9, 0xE0002226, 0xE0003AD9, 0xE0003ADD, 0xE0003A21,
-	0xE0002226, 0xE0003A21, 0xE0003AD9, 0xE0003ADD, 0x00659E8F, 0xE0003B1F,
-	0xE0003A25, 0xE0003B19, 0xE0003B1F, 0x00659E91, 0xE0003B27, 0xE0003B23,
-	0xE0003A2B, 0xE0003B23, 0xE0003B1C, 0xE0003B23, 0xE0003A28, 0x00659E91,
-	0xE0003B27, 0xE0003A2B, 0xE0003B23, 0xE0003B23, 0xE0003A28, 0xE0003B1C,
-	0xE0003B23, 0x00659E91, 0xE0003B23, 0xE0003A28,
-	// Block 39, offset 0x9c0
-	0xE0003B1C, 0xE0003B23, 0xE000224D, 0xE0003B23, 0xE0003B27, 0xE0003A2B,
-	0xE000224D, 0xE0003A2B, 0xE0003B23, 0xE0003B27, 0x0065A891, 0xE0003B3B,
-	0xE0003A2F, 0x0065A891, 0xE0003A2F, 0xE0003B3B, 0x0065B28F, 0xE0003BB4,
-	0xE0003A32, 0xE0003BAE, 0xE0003BB4, 0x0065B291, 0xE0003BBC, 0xE0003BC5,
-	0xE0003BB8, 0xE0003A38, 0xE0003BC1, 0xE0003A3C, 0xE0003BB8, 0xE0003BB1,
-	0xE0003BB8, 0xE0003A35, 0x0065B291, 0xE0003BBC, 0xE0003BC5, 0xE0003A38,
-	0xE0003BB8, 0xE0003A3C, 0xE0003BC1, 0xE0003BB8, 0xE0003A35, 0xE0003BB1,
-	0xE0003BB8, 0x0065B291, 0xE0003BB8, 0xE0003A35, 0xE0003BB1, 0xE0003BB8,
-	0xE00022EF, 0xE0003BB8, 0xE0003BBC, 0xE0003A38, 0xE00022EF, 0xE0003A38,
-	0xE0003BB8, 0xE0003BBC, 0xE00022F5, 0xE0003BC1, 0xE0003BC5, 0xE0003A3C,
-	0xE00022F5, 0xE0003A3C, 0xE0003BC1, 0xE0003BC5,
-	// Block 40, offset 0xa00
-	0x0065BC91, 0xE0003BD9, 0xE0003A40, 0x0065BC91, 0xE0003A40, 0xE0003BD9,
-	0x0065C48F, 0xE0003BE8, 0xE0003A43, 0x0065C48F, 0xE0003A43, 0xE0003BE8,
-	0x0065C491, 0xE0003BEB, 0xE0003A46, 0x0065C491, 0xE0003A46, 0xE0003BEB,
-	0x0065CE8F, 0xE0003A49, 0xE0003C09, 0x0065CE91, 0xE0003C0C, 0xE0003A4C,
-	0x0065CE91, 0xE0003A4C, 0xE0003C0C, 0x0065D691, 0xE0003C3D, 0xE0003C3A,
-	0xE0003C3D, 0xE0003A4F, 0x0065D691, 0xE0003C41, 0xE0003A52, 0xE0003C3D,
-	0xE0003C3D, 0xE0003A4F, 0xE0003C3A, 0xE0003C3D, 0x0065D691, 0xE0003C3D,
-	0xE0003A4F, 0xE0003C3A, 0xE0003C3D, 0xE0002377, 0xE0003A52, 0xE0003C3D,
-	0xE0003C41, 0x0065D891, 0xE0003C46, 0x40368C20, 0x40343620, 0x00368C83,
-	0x00343688, 0x002DFE88, 0x002F56A3, 0x402BDE20, 0x40320C21, 0x40321020,
-	0x002BDE88, 0x00320CA3, 0x00321083, 0x404FA420,
-	// Block 41, offset 0xa40
-	0xE0003C59, 0x404FA620, 0xE0003C5D, 0x404FA820, 0xE0003C61, 0x404FAA20,
-	0xE0003C65, 0x404FAC20, 0xE0003C69, 0x404FAE20, 0xE0003C6D, 0x404FB020,
-	0xE0003C71, 0x404FB220, 0xE0003C75, 0x404FB420, 0xE0003C79, 0x404FB620,
-	0xE0003C7D, 0x404FB820, 0xE0003C81, 0x404FBA20, 0xE0003C85, 0x404FBC20,
-	0xE0003C89, 0x404FBE20, 0xE0003C8D, 0x404FC020, 0xE0003C91, 0x404FC220,
-	0xE0003C95, 0x404FC420, 0xE0003C99, 0x404FC620, 0xE0003C9D, 0x404FC820,
-	0xE0003CA1, 0x404FCA20, 0xE0003CA5, 0x404FCC20, 0xE0003CA9, 0x404FCE20,
-	0xE0003CAD, 0x404FD020, 0xE0003CB1, 0x404FD220, 0xE0003CB5, 0x404FD420,
-	0xE0003CB9, 0x404FD620, 0xE0003CBD, 0x404FD820, 0xE0003CC1, 0x404FDA20,
-	0xE0003CC5, 0x404FDA20, 0xE0003CC9, 0x404FDC20, 0xE0003CCD, 0x404FDC20,
-	0xE0003CD1, 0x404FDC20, 0xE0003CD5, 0x404FDE20,
-	// Block 42, offset 0xa80
-	0xE0003CD9, 0x404FDE20, 0xE0003CDD, 0x404FE020, 0xE0003CE1, 0x404FE220,
-	0xE0003CE5, 0x404FE420, 0xE0003CE9, 0x404FE620, 0xE0003CED, 0x404FE820,
-	0xE0003CF1, 0x40501820, 0x40502E20, 0x40503820, 0x40500E20, 0x40503220,
-	0x40501020, 0x40503620, 0x40502420, 0x40503A20, 0x40502A20, 0x40503C20,
-	0x403FEC20, 0x40403E20, 0xAE605202, 0xAE603502, 0xAE603202, 0xAE604E02,
-	0x402BDE20, 0x402BDE21, 0x002BDE88, 0x002BDEA3, 0x402C9820, 0x402C9822,
-	0x402C9821, 0x002C9888, 0x002C98C3, 0x002C98A3, 0x402D9A20, 0x402D9A21,
-	0x002D9A88, 0x002D9AA3, 0x40306C20, 0x40306C22, 0x40306C21, 0x00306C88,
-	0x00306CC3, 0x00306CA3, 0x402C3A20, 0x402C6020, 0x002C3A88, 0x002C6083,
-	0x402D2220, 0x402D6620, 0x002D2288, 0x002D6683, 0x402DFE20, 0x402E2020,
-	0x002DFE88, 0x002E2083, 0x402E2220, 0xE0000CFB,
-	// Block 43, offset 0xac0
-	0x402E8020, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0x002E8083, 0xE0000D01,
-	0x402E9E20, 0x402EE020, 0x002E9E88, 0x002EE083, 0x402F7A20, 0x402FE420,
-	0x002F7A88, 0x002FE483, 0x402FE620, 0x40302A20, 0x002FE688, 0x00302A83,
-	0x40312A20, 0x40316220, 0x00312A88, 0x00316283, 0x40442220, 0xE000A597,
-	0x40443E20, 0xE000A59D, 0xE000A5A9, 0xE000A5A3, 0x40444820, 0xE000A5A6,
-	0x40445820, 0xE000A5AF, 0x40445A20, 0xE000A5B5, 0x40446620, 0xE000A5BB,
-	0x40448220, 0x40448820, 0x00448C83, 0x403FFC20, 0x40404020, 0x002C3A88,
-	0x402C3820, 0x402C3A20, 0x002C3883, 0x002D2288, 0x402D6620, 0x002D6683,
-	0x402D2020, 0x402D2220, 0x002D6684, 0x002D6685, 0x002D2083, 0x00312A88,
-	0x40312820, 0x40312A20, 0x00312883, 0x404E6020, 0xE000A5C7, 0x404FFE20,
-	0x404FFE21, 0x404E6A20, 0xE000A5CD, 0x40502820,
-	// Block 44, offset 0xb00
-	0x40502821, 0x404E9420, 0xE000A5E7, 0xE000A5E0, 0x4050AC20, 0x4050AC21,
-	0x4005B820, 0xE000A5ED, 0x404EA620, 0xE000A5F8, 0x4050C820, 0x4050C821,
-	0xE000A609, 0xE000A60C, 0xE000A610, 0xE000A619, 0xE000A61D, 0xE000A629,
-	0xE000A635, 0xE000A641, 0xE000A64D, 0xE000A659, 0xE000A665, 0xE000A671,
-	0xE000A67D, 0xE000A689, 0xE000A695, 0xE000A6A1, 0xE000A6AD, 0xE000A6B9,
-	0xE000A6C5, 0xE000A6D1, 0xE000A6DD, 0xE000A6E9, 0xE000A6F5, 0xE000A701,
-	0xE000A70D, 0xE000A719, 0xE000A725, 0xE000A731, 0xE000A73D, 0xE000A749,
-	0xE000A755, 0xE000A761, 0xE000A76D, 0xE000A779, 0xE000A785, 0xE000A791,
-	0xE000A79D, 0xE000A7A9, 0xE000A7B5, 0xE000A7C1, 0xE000A7CD, 0xE000A7D9,
-	0xE000A7E5, 0xE000A7F1, 0xE000A7FD, 0xE000A809, 0xE000A815, 0xE000A821,
-	0xE000A82D, 0xE000A839, 0xE000A845, 0xE000A851,
-	// Block 45, offset 0xb40
-	0xE000A85D, 0xE000A869, 0xE000A875, 0xE000A881, 0xE000A88D, 0xE000A899,
-	0xE000A8A5, 0xE000A8B1, 0xE000A8BD, 0xE000A8C9, 0xE000A8D5, 0xE000A8E1,
-	0xE000A623, 0xE000A62F, 0xE000A63B, 0xE000A647, 0xE000A653, 0xE000A65F,
-	0xE000A66B, 0xE000A677, 0xE000A683, 0xE000A68F, 0xE000A69B, 0xE000A6A7,
-	0xE000A6B3, 0xE000A6BF, 0xE000A6CB, 0xE000A6D7, 0xE000A6E3, 0xE000A6EF,
-	0xE000A6FB, 0xE000A707, 0xE000A713, 0xE000A71F, 0xE000A72B, 0xE000A737,
-	0xE000A743, 0xE000A74F, 0xE000A75B, 0xE000A767, 0xE000A773, 0xE000A77F,
-	0xE000A78B, 0xE000A797, 0xE000A7A3, 0xE000A7AF, 0xE000A7BB, 0xE000A7C7,
-	0xE000A7D3, 0xE000A7DF, 0xE000A7EB, 0xE000A7F7, 0xE000A803, 0xE000A80F,
-	0xE000A81B, 0xE000A827, 0xE000A833, 0xE000A83F, 0xE000A84B, 0xE000A857,
-	0xE000A863, 0xE000A86F, 0xE000A87B, 0xE000A887,
-	// Block 46, offset 0xb80
-	0xE000A893, 0xE000A89F, 0xE000A8AB, 0xE000A8B7, 0xE000A8C3, 0xE000A8CF,
-	0xE000A8DB, 0xE000A8E7, 0x404EFE20, 0x404F5222, 0xE000A8F2, 0x404F5220,
-	0x404F5020, 0x404F1A22, 0x404F1A23, 0x404F2822, 0x404F2823, 0x404F3622,
-	0x404F3623, 0x404F4422, 0x404F4423, 0x404F5223, 0x404F6022, 0x404F6023,
-	0x404F6E22, 0x404F6E23, 0x404F7C22, 0x404F7C23, 0x404F8A21, 0x404F9822,
-	0x404F9823, 0x404FA622, 0x404FA623, 0x404FB422, 0x404FB423, 0x404FC222,
-	0x404FC223, 0x404FD022, 0x404FD023, 0x404FDE22, 0x404FDE23, 0x404FEC22,
-	0x404FEC23, 0x404FFA22, 0x404FFA23, 0x40500822, 0x40500823, 0x40501622,
-	0x40501623, 0x40502422, 0x40502423, 0x40503222, 0x40503223, 0x40504022,
-	0x40504023, 0x40504E22, 0x40504E23, 0x40505C22, 0x40505C23, 0x40506A22,
-	0x40506A23, 0x40508C22, 0x40508C23, 0x40509A22,
-	// Block 47, offset 0xbc0
-	0x40509A23, 0x4050A822, 0x4050A823, 0x4050B622, 0x4050B623, 0x4050C421,
-	0x4050D222, 0x4050D223, 0x4050E022, 0x4050E023, 0x4050EE21, 0x4050FC21,
-	0x404F1A20, 0x404F1A21, 0x404F2820, 0x404F2821, 0x404F3620, 0x404F3621,
-	0x404F4420, 0x404F4421, 0x404F5221, 0x404F6020, 0x404F6021, 0x404F6E20,
-	0x404F6E21, 0x404F7C20, 0x404F7C21, 0x404F8A20, 0x404F9820, 0x404F9821,
-	0x404FA620, 0x404FA621, 0x404FB420, 0x404FB421, 0x404FC220, 0x404FC221,
-	0x404FD020, 0x404FD021, 0x404FDE20, 0x404FDE21, 0x404FEC20, 0x404FEC21,
-	0x404FFA20, 0x404FFA21, 0x40500820, 0x40500821, 0x40501620, 0x40501621,
-	0x40502420, 0x40502421, 0x40503220, 0x40503221, 0x40504020, 0x40504021,
-	0x40504E20, 0x40504E21, 0x40505C20, 0x40505C21, 0x40506A20, 0x40506A21,
-	0x40508C20, 0x40508C21, 0x40509A20, 0x40509A21,
-	// Block 48, offset 0xc00
-	0x4050A820, 0x4050A821, 0x4050B620, 0x4050B621, 0x4050C420, 0x4050D220,
-	0x4050D221, 0x4050E020, 0x4050E021, 0x4050EE20, 0x4050FC20, 0x404F1820,
-	0x404F1821, 0x404F2620, 0x404F2621, 0x404F3420, 0x404F3421, 0x404F4220,
-	0x404F4221, 0x404F5021, 0x404F5E20, 0x404F5E21, 0x404F6C20, 0x404F6C21,
-	0x404F7A20, 0x404F7A21, 0x404F8820, 0x404F9620, 0x404F9621, 0x404FA420,
-	0x404FA421, 0x404FB220, 0x404FB221, 0x404FC020, 0x404FC021, 0x404FCE20,
-	0x404FCE21, 0x404FDC20, 0x404FDC21, 0x404FEA20, 0x404FEA21, 0x404FF820,
-	0x404FF821, 0x40500620, 0x40500621, 0x40501420, 0x40501421, 0x40502220,
-	0x40502221, 0x40503020, 0x40503021, 0x40503E20, 0x40503E21, 0x40504C20,
-	0x40504C21, 0x40505A20, 0x40505A21, 0x40506820, 0x40506821, 0x40508A20,
-	0x40508A21, 0x40509820, 0x40509821, 0x4050A620,
-	// Block 49, offset 0xc40
-	0x4050A621, 0x4050B420, 0x4050B421, 0x4050C220, 0x4050D020, 0x4050D021,
-	0x4050DE20, 0x4050DE21, 0x4050EC20, 0x4050FA20, 0x404F0A21, 0x404F0A20,
-	0x404F0821, 0x404F0820, 0x404EE620, 0x404F5420, 0x404F4C20, 0x40507620,
-	0x40507A20, 0x404F1C20, 0x404F1C21, 0x404F2A20, 0x404F2A21, 0x404F3820,
-	0x404F3821, 0x404F4620, 0x404F4621, 0x404F5421, 0x404F6220, 0x404F6221,
-	0x404F7020, 0x404F7021, 0x404F7E20, 0x404F7E21, 0x404F8C20, 0x404F9A20,
-	0x404F9A21, 0x404FA820, 0x404FA821, 0x404FB620, 0x404FB621, 0x404FC420,
-	0x404FC421, 0x404FD220, 0x404FD221, 0x404FE020, 0x404FE021, 0x404FEE20,
-	0x404FEE21, 0x404FFC20, 0x404FFC21, 0x40500A20, 0x40500A21, 0x40501820,
-	0x40501821, 0x40502620, 0x40502621, 0x40503420, 0x40503421, 0x40504220,
-	0x40504221, 0x40505020, 0x40505021, 0x40505E20,
-	// Block 50, offset 0xc80
-	0x40505E21, 0x40506C20, 0x40506C21, 0x40508E20, 0x40508E21, 0x40509C20,
-	0x40509C21, 0x4050AA20, 0x4050AA21, 0x4050B820, 0x4050B821, 0x4050C620,
-	0x4050D420, 0x4050D421, 0x4050E220, 0x4050E221, 0x4050F020, 0x4050FE20,
-	0x404F1420, 0x404F1421, 0x404F2220, 0x404F2221, 0x404F3020, 0x404F3021,
-	0x404F3E20, 0x404F3E21, 0x404F4C21, 0x404F5A20, 0x404F5A21, 0x404F6820,
-	0x404F6821, 0x404F7620, 0x404F7621, 0x404F8420, 0x404F9220, 0x404F9221,
-	0x404FA020, 0x404FA021, 0x404FAE20, 0x404FAE21, 0x404FBC20, 0x404FBC21,
-	0x404FCA20, 0x404FCA21, 0x404FD820, 0x404FD821, 0x404FE620, 0x404FE621,
-	0x404FF420, 0x404FF421, 0x40500220, 0x40500221, 0x40501020, 0x40501021,
-	0x40501E20, 0x40501E21, 0x40502C20, 0x40502C21, 0x40503A20, 0x40503A21,
-	0x40504820, 0x40504821, 0x40505620, 0x40505621,
-	// Block 51, offset 0xcc0
-	0x40506420, 0x40506421, 0x40507220, 0x40507221, 0x40509420, 0x40509421,
-	0x4050A220, 0x4050A221, 0x4050B020, 0x4050B021, 0x4050BE20, 0x4050CC20,
-	0x4050CC21, 0x4050DA20, 0x4050DA21, 0x4050E820, 0x4050F620, 0x40507820,
-	0x40507C20, 0x404F0E20, 0x40507420, 0x404E1420, 0x404F1020, 0x404F1021,
-	0x404EDE20, 0x404F4A20, 0x404F1220, 0x404F1221, 0x404F2020, 0x404F2021,
-	0x404F2E20, 0x404F2E21, 0x404F3C20, 0x404F3C21, 0x404F4A21, 0x404F5820,
-	0x404F5821, 0x404F6620, 0x404F6621, 0x404F7420, 0x404F7421, 0x404F8220,
-	0x404F9020, 0x404F9021, 0x404F9E20, 0x404F9E21, 0x404FAC20, 0x404FAC21,
-	0x404FBA20, 0x404FBA21, 0x404FC820, 0x404FC821, 0x404FD620, 0x404FD621,
-	0x404FE420, 0x404FE421, 0x404FF220, 0x404FF221, 0x40500020, 0x40500021,
-	0x40500E20, 0x40500E21, 0x40501C20, 0x40501C21,
-	// Block 52, offset 0xd00
-	0x40502A20, 0x40502A21, 0x40503820, 0x40503821, 0x40504620, 0x40504621,
-	0x40505420, 0x40505421, 0x40506220, 0x40506221, 0x40507020, 0x40507021,
-	0x40509220, 0x40509221, 0x4050A020, 0x4050A021, 0x4050AE20, 0x4050AE21,
-	0x4050BC20, 0x4050CA20, 0x4050CA21, 0x4050D820, 0x4050D821, 0x4050E620,
-	0x4050F420, 0x404EDE21, 0x404F4A22, 0x404F1222, 0x404F1223, 0x404F2022,
-	0x404F2023, 0x404F2E22, 0x404F2E23, 0x404F3C22, 0x404F3C23, 0x404F4A23,
-	0x404F5822, 0x404F5823, 0x404F6622, 0x404F6623, 0x404F7422, 0x404F7423,
-	0x404F8221, 0x404F9022, 0x404F9023, 0x404F9E22, 0x404F9E23, 0x404FAC22,
-	0x404FAC23, 0x404FBA22, 0x404FBA23, 0x404FC822, 0x404FC823, 0x404FD622,
-	0x404FD623, 0x404FE422, 0x404FE423, 0x404FF222, 0x404FF223, 0x40500022,
-	0x40500023, 0x40500E22, 0x40500E23, 0x40501C22,
-	// Block 53, offset 0xd40
-	0x40501C23, 0x40502A22, 0x40502A23, 0x40503822, 0x40503823, 0x40504622,
-	0x40504623, 0x40505422, 0x40505423, 0x40506222, 0x40506223, 0x40507022,
-	0x40507023, 0x40509222, 0x40509223, 0x4050A022, 0x4050A023, 0x4050AE22,
-	0x4050AE23, 0x4050BC21, 0x4050CA22, 0x4050CA23, 0x4050D822, 0x4050D823,
-	0x4050E621, 0x4050F421, 0x404EEE20, 0x404F4E20, 0x40508220, 0x40508620,
-	0x404F1620, 0x404F1621, 0x404F2420, 0x404F2421, 0x404F3220, 0x404F3221,
-	0x404F4020, 0x404F4021, 0x404F4E21, 0x404F5C20, 0x404F5C21, 0x404F6A20,
-	0x404F6A21, 0x404F7820, 0x404F7821, 0x404F8620, 0x404F9420, 0x404F9421,
-	0x404FA220, 0x404FA221, 0x404FB020, 0x404FB021, 0x404FBE20, 0x404FBE21,
-	0x404FCC20, 0x404FCC21, 0x404FDA20, 0x404FDA21, 0x404FE820, 0x404FE821,
-	0x404FF620, 0x404FF621, 0x40500420, 0x40500421,
-	// Block 54, offset 0xd80
-	0x40501220, 0x40501221, 0x40502020, 0x40502021, 0x40502E20, 0x40502E21,
-	0x40503C20, 0x40503C21, 0x40504A20, 0x40504A21, 0x40505820, 0x40505821,
-	0x40506620, 0x40506621, 0x40507E20, 0x40507E21, 0x40509620, 0x40509621,
-	0x4050A420, 0x4050A421, 0x4050B220, 0x4050B221, 0x4050C020, 0x4050CE20,
-	0x4050CE21, 0x4050DC20, 0x4050DC21, 0x4050EA20, 0x4050F820, 0x40508420,
-	0x40508820, 0x40508020, 0x404E1820, 0x404F1E20, 0x404F1E21, 0x404E1C20,
-	0x404F2C20, 0x404F2C21, 0x404F2E20, 0x404F3220, 0x404E2220, 0x404F3A20,
-	0x404F3A21, 0x404E2420, 0x404F4820, 0x404F4821, 0x404E2820, 0x404F5620,
-	0x404F5621, 0x404E2E20, 0x404F6420, 0x404F6421, 0x404E3220, 0x404F7220,
-	0x404F7221, 0x404E3A20, 0x404F8020, 0x404E4220, 0x404F8E20, 0x404F8E21,
-	0x404E4820, 0x404F9C20, 0x404F9C21, 0x404E4A20,
-	// Block 55, offset 0xdc0
-	0x404FAA20, 0x404FAA21, 0x404E4E20, 0x404FB820, 0x404FB821, 0x404E5220,
-	0x404FC620, 0x404FC621, 0x404E5620, 0x404FD420, 0x404FD421, 0x404E5A20,
-	0x404FE220, 0x404FE221, 0x404E5E20, 0x404FF020, 0x404FF021, 0x404E6220,
-	0x40500C20, 0x40500C21, 0x404E6620, 0x40501A20, 0x40501A21, 0x404E7220,
-	0x40503620, 0x40503621, 0x404E7420, 0x40504420, 0x40504421, 0x404E7E20,
-	0x40505220, 0x40505221, 0x404E8220, 0x40506020, 0x40506021, 0x404E8420,
-	0x40506E20, 0x40506E21, 0x404E8820, 0x40509020, 0x40509021, 0x404E8C20,
-	0x40509E20, 0x40509E21, 0x404E9820, 0x4050BA20, 0x404EAA20, 0x4050D620,
-	0x4050D621, 0x404EB620, 0x4050E420, 0x404EC220, 0x4050F220, 0x40510420,
-	0x40511A20, 0x40511020, 0x40511420, 0x40510620, 0x40511C20, 0x40511220,
-	0x40511620, 0x40510A20, 0x40511820, 0x402BDE20,
-	// Block 56, offset 0xe00
-	0x40320C21, 0x40321020, 0x40321021, 0x002BDE88, 0x00320CA3, 0x00321083,
-	0x003210A4, 0x003210A3, 0x402C9820, 0x402C9A20, 0x002C9888, 0x002C9A83,
-	0x402C3A20, 0x40312C20, 0x002C3A88, 0x00312C84, 0x00312C83, 0x402C6220,
-	0x40312E20, 0x002C6288, 0x00312E84, 0x00312E83, 0x402DFE20, 0x40313020,
-	0x002DFE88, 0x00313084, 0x00313083, 0x402E9E20, 0x40313220, 0x002E9E88,
-	0x00313284, 0x00313283, 0x402F2C20, 0x40313420, 0x002F2C88, 0x00313484,
-	0x00313483, 0x402FE620, 0x40313620, 0x002FE688, 0x00313683, 0x40421220,
-	0x40425A20, 0x402BDE20, 0x402BE020, 0x002BDE88, 0x002BE083, 0x40312A20,
-	0x40312C20, 0x40312E20, 0x00312A88, 0x00312C83, 0x00312E83, 0x40393820,
-	0x40393620, 0x40393821, 0x40393824, 0x40397220, 0x40396621, 0x403A6821,
-	0x003A6883, 0x403A6820, 0x003A6884, 0x403A7420,
-	// Block 57, offset 0xe40
-	0x403A7421, 0x403A9220, 0x403A9226, 0x403A9221, 0x003A9343, 0x403A9223,
-	0x003A9344, 0x402BDE20, 0x402BE220, 0x402BE020, 0x002BDE88, 0x002BE283,
-	0x002BE083, 0x402FE620, 0x402FE820, 0x402FE820, 0x002FE688, 0x002FE883,
-	0x002FE883, 0x40302C20, 0x40302E20, 0x40302E20, 0x00302C88, 0x00302E83,
-	0x00302E83, 0x402BDE20, 0x402C0820, 0x40320E21, 0x40320C21, 0x40320E20,
-	0x40320C20, 0x002BDE88, 0x002C0883, 0x00320EA3, 0x00320CA3, 0x00320E83,
-	0x00320C83, 0x402C3A20, 0x402C5C20, 0x002C3A88, 0x002C5C83, 0x402C5E20,
-	0x402C6020, 0x002C5E83, 0x002C6083, 0x402D2220, 0x402D6420, 0x002D2288,
-	0x002D6483, 0x402E9E20, 0x402EE021, 0x402EE022, 0x002E9E88, 0x002EE0A3,
-	0x002EE0C3, 0x40312A20, 0x40320620, 0x00312A88, 0x00320683, 0x402EE220,
-	0x40321023, 0x40321022, 0x40321020, 0x40321021,
-	// Block 58, offset 0xe80
-	0x40321024, 0x002EE288, 0x003210E3, 0x003210C3, 0x00321083, 0x003210A3,
-	0x00321103, 0x402C6220, 0x402C9620, 0x002C6288, 0x002C9684, 0x002C9683,
-	0x002D2288, 0x002D6684, 0x002D6683, 0x402E2220, 0xE0000CFB, 0xE0000CFB,
-	0x402E8020, 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E8084, 0x002E8083,
-	0x002E9E88, 0x002EE084, 0x002EE083, 0x002F7A88, 0x002FE484, 0x002FE483,
-	0x002FE688, 0x00302A84, 0x00302A83, 0x40302C20, 0x40306A20, 0x00302C88,
-	0x00306A84, 0x00306A83, 0x4030F620, 0x4030FE20, 0x0030F688, 0x0030FE84,
-	0x0030FE83, 0x00312A88, 0x00316284, 0x00316283, 0x402C9820, 0x40320E22,
-	0x002C9888, 0x00320EC3, 0x402EE220, 0x40321024, 0x40321020, 0x40321022,
-	0x002EE288, 0x00321103, 0x00321083, 0x003210C3, 0x40429820, 0x4042C220,
-	0x4042C420, 0x40429620, 0x40429A20, 0x40429820,
-	// Block 59, offset 0xec0
-	0x40429C20, 0x40429A20, 0x40429E20, 0x40429C20, 0x4042A020, 0x40429E20,
-	0x4042A220, 0x4042A020, 0x4042A420, 0x4042A220, 0x4042A620, 0x4042A420,
-	0x4042A820, 0x4042A620, 0x4042AA20, 0x4042A820, 0x4042AC20, 0x4042AA20,
-	0x4042AE20, 0x4042AC20, 0x4042B020, 0x4042AE20, 0x4042B220, 0x4042B020,
-	0x4042B420, 0x4042B220, 0x4042B620, 0x4042B420, 0x4042B820, 0x4042B620,
-	0x4042BA20, 0x4042B820, 0x4042BC20, 0x4042BA20, 0x4042BE20, 0x4042BC20,
-	0x4042C020, 0x4042BE20, 0x4042C220, 0x4042C020, 0x4042C420, 0x4042C220,
-	0x40496C20, 0xE000A9CE, 0xE000A9D1, 0x402BDE20, 0x402BDE21, 0x402BDE22,
-	0x002BDE88, 0x002BDEA3, 0x002BDEC3, 0x402C9820, 0x402C9821, 0x402C9822,
-	0x002C9888, 0x002C98A3, 0x002C98C3, 0x402D9A20, 0x402D9A21, 0x402D9A22,
-	0x002D9A88, 0x002D9AA3, 0x002D9AC3, 0x402EE220,
-	// Block 60, offset 0xf00
-	0x402EE221, 0x402EE222, 0x002EE288, 0x002EE2A3, 0x002EE2C3, 0x40306C20,
-	0x40306C21, 0x40306C22, 0x00306C88, 0x00306CA3, 0x00306CC3, 0x40393820,
-	0x40393A20, 0x40393821, 0x40392820, 0x40393C20, 0x40393E20, 0x40394020,
-	0x40394220, 0x40394420, 0x40394620, 0x40394820, 0x40394A20, 0x40394E20,
-	0x40395020, 0x40395220, 0x40395420, 0x40395A20, 0x40395C20, 0x40395E20,
-	0x40396020, 0x40396420, 0x40396620, 0x40396820, 0x40396A20, 0x40398420,
-	0x40398620, 0x40398820, 0x40398A20, 0x40398C20, 0x40398E20, 0x40399020,
-	0x40399220, 0x40399420, 0x40399620, 0x40399820, 0x40399A20, 0x40399C20,
-	0x40399C21, 0x40399E20, 0x4039A020, 0x4039A021, 0x403A9020, 0x4039A821,
-	0x4039A820, 0x4039AA20, 0x4039AC20, 0x4039AC21, 0x402EE220, 0x402EE420,
-	0x402EE620, 0x002EE288, 0x002EE483, 0x002EE683,
-	// Block 61, offset 0xf40
-	0x402BDE20, 0xE0000966, 0xE000AF74, 0xE0000958, 0xE0000966, 0x402C3A20,
-	0xE0000A41, 0x402C9820, 0xE000AF77, 0x402D9A20, 0xE000AF7A, 0x402EE220,
-	0xE0000DE3, 0xE000AF7D, 0xE0000DCF, 0xE0000DE3, 0x402FE620, 0xE0000F30,
-	0x40306C20, 0xE0001028, 0xE000AF80, 0xE0000FFC, 0xE0001028, 0x402BDE20,
-	0x402BDE1F, 0x402BDE1D, 0x402BDE1C, 0x402BDE1E, 0x002BDE88, 0x002BDE63,
-	0x002BDE23, 0x002BDE03, 0x002BDE43, 0x402C9820, 0x402C9824, 0x402C9822,
-	0x402C9821, 0x402C9823, 0x402C981F, 0x402C981D, 0x402C981C, 0x402C981E,
-	0x002C9888, 0x002C9903, 0x002C98C3, 0x002C98A3, 0x002C98E3, 0x002C9863,
-	0x002C9823, 0x002C9803, 0x002C9843, 0xE0000AF1, 0x402C9821, 0x402C9823,
-	0xE0000AF4, 0x002C98A3, 0x002C98E3, 0x402D9A20, 0x402D9A1F, 0x402D9A1D,
-	0x402D9A1C, 0x402D9A1E, 0x002D9A88, 0x002D9A63,
-	// Block 62, offset 0xf80
-	0x002D9A23, 0x002D9A03, 0x002D9A43, 0x402E8220, 0x402E821F, 0x402E821D,
-	0x402E821C, 0x402E821E, 0x002E8288, 0x002E8263, 0x002E8223, 0x002E8203,
-	0x002E8243, 0x402E9E20, 0x402E9E1F, 0x402E9E1D, 0x402E9E1C, 0x402E9E1E,
-	0x002E9E88, 0x002E9E63, 0x002E9E23, 0x002E9E03, 0x002E9E43, 0x402EE220,
-	0x402EE21F, 0x402EE21D, 0x402EE21C, 0x402EE21E, 0x002EE288, 0x002EE263,
-	0x002EE223, 0x002EE203, 0x002EE243, 0x40306C20, 0x40306C24, 0x40306C22,
-	0x40306C21, 0x40306C23, 0x40306C1F, 0x40306C1D, 0x40306C1C, 0x40306C25,
-	0x40306C1E, 0x00306C88, 0x00306D03, 0x00306CC3, 0x00306CA3, 0x00306CE3,
-	0x00306C63, 0x00306C23, 0x00306C03, 0x00306D23, 0x00306C43,
-}
-
-// mainValues: 171392 entries, 685568 bytes
-// Block 2 is the null block.
-var mainValues = [171392]uint32{
-	// Block 0x0, offset 0x0
-	0x0000: 0xa0000000, 0x0001: 0xa0000000, 0x0002: 0xa0000000, 0x0003: 0xa0000000,
-	0x0004: 0xa0000000, 0x0005: 0xa0000000, 0x0006: 0xa0000000, 0x0007: 0xa0000000,
-	0x0008: 0xa0000000, 0x0009: 0x40020020, 0x000a: 0x40020220, 0x000b: 0x40020420,
-	0x000c: 0x40020620, 0x000d: 0x40020820, 0x000e: 0xa0000000, 0x000f: 0xa0000000,
-	0x0010: 0xa0000000, 0x0011: 0xa0000000, 0x0012: 0xa0000000, 0x0013: 0xa0000000,
-	0x0014: 0xa0000000, 0x0015: 0xa0000000, 0x0016: 0xa0000000, 0x0017: 0xa0000000,
-	0x0018: 0xa0000000, 0x0019: 0xa0000000, 0x001a: 0xa0000000, 0x001b: 0xa0000000,
-	0x001c: 0xa0000000, 0x001d: 0xa0000000, 0x001e: 0xa0000000, 0x001f: 0xa0000000,
-	0x0020: 0x40021220, 0x0021: 0x4002ba20, 0x0022: 0x4003e020, 0x0023: 0x4004ea20,
-	0x0024: 0x4027de20, 0x0025: 0x4004ec20, 0x0026: 0x4004e620, 0x0027: 0x4003d220,
-	0x0028: 0x4003f420, 0x0029: 0x4003f620, 0x002a: 0x4004d820, 0x002b: 0x40093820,
-	0x002c: 0x40024020, 0x002d: 0x40021a20, 0x002e: 0x4002e420, 0x002f: 0x4004e220,
-	0x0030: 0x4029cc20, 0x0031: 0x4029ce20, 0x0032: 0x4029d020, 0x0033: 0x4029d220,
-	0x0034: 0x4029d420, 0x0035: 0x4029d620, 0x0036: 0x4029d820, 0x0037: 0x4029da20,
-	0x0038: 0x4029dc20, 0x0039: 0x4029de20, 0x003a: 0x40026c20, 0x003b: 0x40026220,
-	0x003c: 0x40094020, 0x003d: 0x40094220, 0x003e: 0x40094420, 0x003f: 0x4002c420,
-	// Block 0x1, offset 0x40
-	0x0040: 0x4004d620, 0x0041: 0x002bde88, 0x0042: 0x002c0a88, 0x0043: 0x002c3a88,
-	0x0044: 0x002c6288, 0x0045: 0x002c9888, 0x0046: 0x002d0888, 0x0047: 0x002d2288,
-	0x0048: 0x002d6888, 0x0049: 0x002d9a88, 0x004a: 0x002dcc88, 0x004b: 0x002dfe88,
-	0x004c: 0xc0030002, 0x004d: 0x002e8288, 0x004e: 0x002e9e88, 0x004f: 0x002ee288,
-	0x0050: 0x002f2c88, 0x0051: 0x002f5688, 0x0052: 0x002f7a88, 0x0053: 0x002fe688,
-	0x0054: 0x00302c88, 0x0055: 0x00306c88, 0x0056: 0x0030be88, 0x0057: 0x0030e288,
-	0x0058: 0x0030f688, 0x0059: 0x00310088, 0x005a: 0x00312a88, 0x005b: 0x4003f820,
-	0x005c: 0x4004e420, 0x005d: 0x4003fa20, 0x005e: 0x40062420, 0x005f: 0x40021620,
-	0x0060: 0x40061e20, 0x0061: 0x402bde20, 0x0062: 0x402c0a20, 0x0063: 0x402c3a20,
-	0x0064: 0x402c6220, 0x0065: 0x402c9820, 0x0066: 0x402d0820, 0x0067: 0x402d2220,
-	0x0068: 0x402d6820, 0x0069: 0x402d9a20, 0x006a: 0x402dcc20, 0x006b: 0x402dfe20,
-	0x006c: 0xc0000002, 0x006d: 0x402e8220, 0x006e: 0x402e9e20, 0x006f: 0x402ee220,
-	0x0070: 0x402f2c20, 0x0071: 0x402f5620, 0x0072: 0x402f7a20, 0x0073: 0x402fe620,
-	0x0074: 0x40302c20, 0x0075: 0x40306c20, 0x0076: 0x4030be20, 0x0077: 0x4030e220,
-	0x0078: 0x4030f620, 0x0079: 0x40310020, 0x007a: 0x40312a20, 0x007b: 0x4003fc20,
-	0x007c: 0x40094820, 0x007d: 0x4003fe20, 0x007e: 0x40094c20, 0x007f: 0xa0000000,
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0: 0xa0000000, 0x00c1: 0xa0000000, 0x00c2: 0xa0000000, 0x00c3: 0xa0000000,
-	0x00c4: 0xa0000000, 0x00c5: 0x40020a20, 0x00c6: 0xa0000000, 0x00c7: 0xa0000000,
-	0x00c8: 0xa0000000, 0x00c9: 0xa0000000, 0x00ca: 0xa0000000, 0x00cb: 0xa0000000,
-	0x00cc: 0xa0000000, 0x00cd: 0xa0000000, 0x00ce: 0xa0000000, 0x00cf: 0xa0000000,
-	0x00d0: 0xa0000000, 0x00d1: 0xa0000000, 0x00d2: 0xa0000000, 0x00d3: 0xa0000000,
-	0x00d4: 0xa0000000, 0x00d5: 0xa0000000, 0x00d6: 0xa0000000, 0x00d7: 0xa0000000,
-	0x00d8: 0xa0000000, 0x00d9: 0xa0000000, 0x00da: 0xa0000000, 0x00db: 0xa0000000,
-	0x00dc: 0xa0000000, 0x00dd: 0xa0000000, 0x00de: 0xa0000000, 0x00df: 0xa0000000,
-	0x00e0: 0x0002129b, 0x00e1: 0x4002bc20, 0x00e2: 0x4027dc20, 0x00e3: 0x4027e020,
-	0x00e4: 0x4027da20, 0x00e5: 0x4027e220, 0x00e6: 0x40094a20, 0x00e7: 0x4004ce20,
-	0x00e8: 0x40062c20, 0x00e9: 0x40081820, 0x00ea: 0x002bde94, 0x00eb: 0x4003f020,
-	0x00ec: 0x40094620, 0x00ed: 0xa0000000, 0x00ee: 0x40081a20, 0x00ef: 0x40062620,
-	0x00f0: 0x40070420, 0x00f1: 0x40093a20, 0x00f2: 0x0029d094, 0x00f3: 0x0029d294,
-	0x00f4: 0x40062020, 0x00f5: 0x00327684, 0x00f6: 0x4004d220, 0x00f7: 0x40030620,
-	0x00f8: 0x40063220, 0x00f9: 0x0029ce94, 0x00fa: 0x002ee294, 0x00fb: 0x4003f220,
-	0x00fc: 0xe00002bf, 0x00fd: 0xe00002b7, 0x00fe: 0xe00004a7, 0x00ff: 0x4002c620,
-	// Block 0x4, offset 0x100
-	0x0100: 0xe00008f5, 0x0101: 0xe00008ef, 0x0102: 0xe0000921, 0x0103: 0xe0000969,
-	0x0104: 0xe000095b, 0x0105: 0xe000094d, 0x0106: 0xe00009dd, 0x0107: 0xe0000a53,
-	0x0108: 0xe0000ae8, 0x0109: 0xe0000ae2, 0x010a: 0xe0000af4, 0x010b: 0xe0000b20,
-	0x010c: 0xe0000c2b, 0x010d: 0xe0000c25, 0x010e: 0xe0000c37, 0x010f: 0xe0000c43,
-	0x0110: 0xe0000ab3, 0x0111: 0xe0000d63, 0x0112: 0xe0000d9a, 0x0113: 0xe0000d94,
-	0x0114: 0xe0000da6, 0x0115: 0xe0000de6, 0x0116: 0xe0000dd2, 0x0117: 0x40093e20,
-	0x0118: 0xe0000e12, 0x0119: 0xe0000fe1, 0x011a: 0xe0000fdb, 0x011b: 0xe0000fed,
-	0x011c: 0xe0000fff, 0x011d: 0xe0001102, 0x011e: 0x00318888, 0x011f: 0xe0000f7b,
-	0x0120: 0xe00008f2, 0x0121: 0xe00008ec, 0x0122: 0xe000091e, 0x0123: 0xe0000966,
-	0x0124: 0xe0000958, 0x0125: 0xe000094a, 0x0126: 0xe00009d5, 0x0127: 0xe0000a4d,
-	0x0128: 0xe0000ae5, 0x0129: 0xe0000adf, 0x012a: 0xe0000af1, 0x012b: 0xe0000b1d,
-	0x012c: 0xe0000c28, 0x012d: 0xe0000c22, 0x012e: 0xe0000c34, 0x012f: 0xe0000c40,
-	0x0130: 0xe0000aad, 0x0131: 0xe0000d60, 0x0132: 0xe0000d97, 0x0133: 0xe0000d91,
-	0x0134: 0xe0000da3, 0x0135: 0xe0000de3, 0x0136: 0xe0000dcf, 0x0137: 0x40093c20,
-	0x0138: 0xe0000e0f, 0x0139: 0xe0000fde, 0x013a: 0xe0000fd8, 0x013b: 0xe0000fea,
-	0x013c: 0xe0000ffc, 0x013d: 0xe00010ff, 0x013e: 0x40318820, 0x013f: 0xe0001114,
-	// Block 0x5, offset 0x140
-	0x0140: 0xe0000983, 0x0141: 0xe0000980, 0x0142: 0xe00008fb, 0x0143: 0xe00008f8,
-	0x0144: 0xe000097d, 0x0145: 0xe000097a, 0x0146: 0xe0000a38, 0x0147: 0xe0000a35,
-	0x0148: 0xe0000a3e, 0x0149: 0xe0000a3b, 0x014a: 0xe0000a4a, 0x014b: 0xe0000a47,
-	0x014c: 0xe0000a44, 0x014d: 0xe0000a41, 0x014e: 0xe0000a86, 0x014f: 0xe0000a83,
-	0x0150: 0xe0000aaa, 0x0151: 0xe0000aa7, 0x0152: 0xe0000b46, 0x0153: 0xe0000b43,
-	0x0154: 0xe0000aee, 0x0155: 0xe0000aeb, 0x0156: 0xe0000b2c, 0x0157: 0xe0000b29,
-	0x0158: 0xe0000b40, 0x0159: 0xe0000b3d, 0x015a: 0xe0000b1a, 0x015b: 0xe0000b17,
-	0x015c: 0xe0000bb8, 0x015d: 0xe0000bb5, 0x015e: 0xe0000bb2, 0x015f: 0xe0000baf,
-	0x0160: 0xe0000bc4, 0x0161: 0xe0000bc1, 0x0162: 0xe0000bca, 0x0163: 0xe0000bc7,
-	0x0164: 0xe0000bee, 0x0165: 0xe0000beb, 0x0166: 0xe0000c1b, 0x0167: 0xe0000c18,
-	0x0168: 0xe0000c51, 0x0169: 0xe0000c4e, 0x016a: 0xe0000c60, 0x016b: 0xe0000c5d,
-	0x016c: 0xe0000c31, 0x016d: 0xe0000c2e, 0x016e: 0xe0000c5a, 0x016f: 0xe0000c57,
-	0x0170: 0xe0000c54, 0x0171: 0x402da220, 0x0172: 0xf0000a0a, 0x0173: 0xf0000404,
-	0x0174: 0xe0000c8a, 0x0175: 0xe0000c87, 0x0176: 0xe0000c9f, 0x0177: 0xe0000c9c,
-	0x0178: 0x402f7220, 0x0179: 0xe0000ccc, 0x017a: 0xe0000cc9, 0x017b: 0xe0000cd8,
-	0x017c: 0xe0000cd5, 0x017d: 0xe0000cd2, 0x017e: 0xe0000ccf, 0x017f: 0xe0000d04,
-	// Block 0x6, offset 0x180
-	0x0180: 0xe0000cfe, 0x0181: 0xe0000cf8, 0x0182: 0xe0000cf5, 0x0183: 0xe0000d51,
-	0x0184: 0xe0000d4e, 0x0185: 0xe0000d6f, 0x0186: 0xe0000d6c, 0x0187: 0xe0000d5d,
-	0x0188: 0xe0000d5a, 0x0189: 0xf0000404, 0x018a: 0x002eda88, 0x018b: 0x402eda20,
-	0x018c: 0xe0000e2e, 0x018d: 0xe0000e2b, 0x018e: 0xe0000da0, 0x018f: 0xe0000d9d,
-	0x0190: 0xe0000de0, 0x0191: 0xe0000ddd, 0x0192: 0xe0000e93, 0x0193: 0xe0000e8f,
-	0x0194: 0xe0000eca, 0x0195: 0xe0000ec7, 0x0196: 0xe0000edc, 0x0197: 0xe0000ed9,
-	0x0198: 0xe0000ed0, 0x0199: 0xe0000ecd, 0x019a: 0xe0000f1f, 0x019b: 0xe0000f1c,
-	0x019c: 0xe0000f2d, 0x019d: 0xe0000f2a, 0x019e: 0xe0000f47, 0x019f: 0xe0000f44,
-	0x01a0: 0xe0000f33, 0x01a1: 0xe0000f30, 0x01a2: 0xe0000f99, 0x01a3: 0xe0000f96,
-	0x01a4: 0xe0000f8a, 0x01a5: 0xe0000f87, 0x01a6: 0x00303688, 0x01a7: 0x40303620,
-	0x01a8: 0xe000102b, 0x01a9: 0xe0001028, 0x01aa: 0xe000103f, 0x01ab: 0xe000103c,
-	0x01ac: 0xe0000fe7, 0x01ad: 0xe0000fe4, 0x01ae: 0xe0000ff9, 0x01af: 0xe0000ff6,
-	0x01b0: 0xe0001025, 0x01b1: 0xe0001022, 0x01b2: 0xe0001039, 0x01b3: 0xe0001036,
-	0x01b4: 0xe00010d8, 0x01b5: 0xe00010d5, 0x01b6: 0xe000110e, 0x01b7: 0xe000110b,
-	0x01b8: 0xe0001117, 0x01b9: 0xe000113b, 0x01ba: 0xe0001138, 0x01bb: 0xe000114d,
-	0x01bc: 0xe000114a, 0x01bd: 0xe0001147, 0x01be: 0xe0001144, 0x01bf: 0xe0000f64,
-	// Block 0x7, offset 0x1c0
-	0x01c0: 0x402c1a20, 0x01c1: 0x002c2a88, 0x01c2: 0x002c3288, 0x01c3: 0x402c3220,
-	0x01c4: 0x0031c488, 0x01c5: 0x4031c420, 0x01c6: 0x002efa88, 0x01c7: 0x002c4e88,
-	0x01c8: 0x402c4e20, 0x01c9: 0x002c7288, 0x01ca: 0x002c7a88, 0x01cb: 0x002c8488,
-	0x01cc: 0x402c8420, 0x01cd: 0xe000115c, 0x01ce: 0x002cae88, 0x01cf: 0x002cb888,
-	0x01d0: 0x002cc288, 0x01d1: 0x002d1688, 0x01d2: 0x402d1620, 0x01d3: 0x002d4488,
-	0x01d4: 0x002d5888, 0x01d5: 0x402d7820, 0x01d6: 0x002dc288, 0x01d7: 0x002db688,
-	0x01d8: 0x002e0a88, 0x01d9: 0x402e0a20, 0x01da: 0x402e3820, 0x01db: 0x402e7220,
-	0x01dc: 0x0030a088, 0x01dd: 0x002eb488, 0x01de: 0x402ebc20, 0x01df: 0x002f1088,
-	0x01e0: 0xe0000e56, 0x01e1: 0xe0000e53, 0x01e2: 0x002d6088, 0x01e3: 0x402d6020,
-	0x01e4: 0x002f3e88, 0x01e5: 0x402f3e20, 0x01e6: 0x002f8288, 0x01e7: 0x0031b488,
-	0x01e8: 0x4031b420, 0x01e9: 0x00300888, 0x01ea: 0x40301220, 0x01eb: 0x40304220,
-	0x01ec: 0x00304a88, 0x01ed: 0x40304a20, 0x01ee: 0x00305288, 0x01ef: 0xe000105f,
-	0x01f0: 0xe000105c, 0x01f1: 0x0030b488, 0x01f2: 0x0030cc88, 0x01f3: 0x00311888,
-	0x01f4: 0x40311820, 0x01f5: 0x00313488, 0x01f6: 0x40313420, 0x01f7: 0x00316488,
-	0x01f8: 0x00316e88, 0x01f9: 0x40316e20, 0x01fa: 0x40317820, 0x01fb: 0x4031a620,
-	0x01fc: 0x0031bc88, 0x01fd: 0x4031bc20, 0x01fe: 0xe0000fc9, 0x01ff: 0x40319420,
-	// Block 0x8, offset 0x200
-	0x0200: 0x40321220, 0x0201: 0x40321a20, 0x0202: 0x40322220, 0x0203: 0x40322a20,
-	0x0204: 0xe0000ad5, 0x0205: 0xe0000ad1, 0x0206: 0xe0000acd, 0x0207: 0xf0000a0a,
-	0x0208: 0xf000040a, 0x0209: 0xf0000404, 0x020a: 0xf0000a0a, 0x020b: 0xf000040a,
-	0x020c: 0xf0000404, 0x020d: 0xe0000947, 0x020e: 0xe0000944, 0x020f: 0xe0000c3d,
-	0x0210: 0xe0000c3a, 0x0211: 0xe0000dcc, 0x0212: 0xe0000dc9, 0x0213: 0xe0000ff3,
-	0x0214: 0xe0000ff0, 0x0215: 0xe000101e, 0x0216: 0xe000101a, 0x0217: 0xe0001006,
-	0x0218: 0xe0001002, 0x0219: 0xe0001016, 0x021a: 0xe0001012, 0x021b: 0xe000100e,
-	0x021c: 0xe000100a, 0x021d: 0x402cae20, 0x021e: 0xe0000962, 0x021f: 0xe000095e,
-	0x0220: 0xe0000976, 0x0221: 0xe0000972, 0x0222: 0xe00009f4, 0x0223: 0xe00009ef,
-	0x0224: 0x002d3a88, 0x0225: 0x402d3a20, 0x0226: 0xe0000bbe, 0x0227: 0xe0000bbb,
-	0x0228: 0xe0000c99, 0x0229: 0xe0000c96, 0x022a: 0xe0000e20, 0x022b: 0xe0000e1d,
-	0x022c: 0xe0000e27, 0x022d: 0xe0000e23, 0x022e: 0xe0001162, 0x022f: 0xe000115f,
-	0x0230: 0xe0000c8d, 0x0231: 0xf0000a0a, 0x0232: 0xf000040a, 0x0233: 0xf0000404,
-	0x0234: 0xe0000bac, 0x0235: 0xe0000ba9, 0x0236: 0x002d7888, 0x0237: 0x00319488,
-	0x0238: 0xe0000d57, 0x0239: 0xe0000d54, 0x023a: 0xe0000954, 0x023b: 0xe0000950,
-	0x023c: 0xe00009ea, 0x023d: 0xe00009e5, 0x023e: 0xe0000e19, 0x023f: 0xe0000e15,
-	// Block 0x9, offset 0x240
-	0x0240: 0xe000098f, 0x0241: 0xe000098c, 0x0242: 0xe0000995, 0x0243: 0xe0000992,
-	0x0244: 0xe0000b62, 0x0245: 0xe0000b5f, 0x0246: 0xe0000b68, 0x0247: 0xe0000b65,
-	0x0248: 0xe0000c6c, 0x0249: 0xe0000c69, 0x024a: 0xe0000c72, 0x024b: 0xe0000c6f,
-	0x024c: 0xe0000e4a, 0x024d: 0xe0000e47, 0x024e: 0xe0000e50, 0x024f: 0xe0000e4d,
-	0x0250: 0xe0000ee8, 0x0251: 0xe0000ee5, 0x0252: 0xe0000eee, 0x0253: 0xe0000eeb,
-	0x0254: 0xe0001053, 0x0255: 0xe0001050, 0x0256: 0xe0001059, 0x0257: 0xe0001056,
-	0x0258: 0xe0000f61, 0x0259: 0xe0000f5e, 0x025a: 0xe0000fa5, 0x025b: 0xe0000fa2,
-	0x025c: 0x00312288, 0x025d: 0x40312220, 0x025e: 0xe0000bf4, 0x025f: 0xe0000bf1,
-	0x0260: 0x002ebc88, 0x0261: 0x402c8c20, 0x0262: 0x002f2288, 0x0263: 0x402f2220,
-	0x0264: 0x00314088, 0x0265: 0x40314020, 0x0266: 0xe000096f, 0x0267: 0xe000096c,
-	0x0268: 0xe0000b32, 0x0269: 0xe0000b2f, 0x026a: 0xe0000dd9, 0x026b: 0xe0000dd5,
-	0x026c: 0xe0000dfd, 0x026d: 0xe0000df9, 0x026e: 0xe0000e04, 0x026f: 0xe0000e01,
-	0x0270: 0xe0000e0b, 0x0271: 0xe0000e07, 0x0272: 0xe0001129, 0x0273: 0xe0001126,
-	0x0274: 0x402e5e20, 0x0275: 0x402ed020, 0x0276: 0x40305a20, 0x0277: 0x402dd420,
-	0x0278: 0xe0000abf, 0x0279: 0xe0000ec4, 0x027a: 0x002be888, 0x027b: 0x002c4488,
-	0x027c: 0x402c4420, 0x027d: 0x002e3888, 0x027e: 0x00303e88, 0x027f: 0x402ffc20,
-	// Block 0xa, offset 0x280
-	0x0280: 0x40315820, 0x0281: 0x0031d488, 0x0282: 0x4031d420, 0x0283: 0x002c1a88,
-	0x0284: 0x00307c88, 0x0285: 0x0030da88, 0x0286: 0x002ca288, 0x0287: 0x402ca220,
-	0x0288: 0x002dde88, 0x0289: 0x402dde20, 0x028a: 0x002f6a88, 0x028b: 0x402f6a20,
-	0x028c: 0x002f8e88, 0x028d: 0x402f8e20, 0x028e: 0x00311088, 0x028f: 0x40311020,
-	0x0290: 0x402bf020, 0x0291: 0x402bf820, 0x0292: 0x402c0220, 0x0293: 0x402c2a20,
-	0x0294: 0x402efa20, 0x0295: 0x402c5620, 0x0296: 0x402c7220, 0x0297: 0x402c7a20,
-	0x0298: 0x402ccc20, 0x0299: 0x402cb820, 0x029a: 0x402cd420, 0x029b: 0x402cc220,
-	0x029c: 0x402cdc20, 0x029d: 0x402ce820, 0x029e: 0x402cf020, 0x029f: 0x402dee20,
-	0x02a0: 0x402d4420, 0x02a1: 0x402d2a20, 0x02a2: 0x402d3220, 0x02a3: 0x402d5820,
-	0x02a4: 0x402d0020, 0x02a5: 0x40308820, 0x02a6: 0x402d8020, 0x02a7: 0x402d8e20,
-	0x02a8: 0x402db620, 0x02a9: 0x402dc220, 0x02aa: 0x402daa20, 0x02ab: 0x402e4220,
-	0x02ac: 0x402e4a20, 0x02ad: 0x402e5420, 0x02ae: 0x402e6820, 0x02af: 0x4030a020,
-	0x02b0: 0x4030ac20, 0x02b1: 0x402e9020, 0x02b2: 0x402eb420, 0x02b3: 0x402ec820,
-	0x02b4: 0x402ea620, 0x02b5: 0x402f1020, 0x02b6: 0x402eee20, 0x02b7: 0x402f1a20,
-	0x02b8: 0x402f4c20, 0x02b9: 0x402f9820, 0x02ba: 0x402fa220, 0x02bb: 0x402fac20,
-	0x02bc: 0x402fb620, 0x02bd: 0x402fbe20, 0x02be: 0x402fc620, 0x02bf: 0x402fd020,
-	// Block 0xb, offset 0x2c0
-	0x02c0: 0x402f8220, 0x02c1: 0x402fd820, 0x02c2: 0x402ff420, 0x02c3: 0x40300820,
-	0x02c4: 0x402df620, 0x02c5: 0x40301a20, 0x02c6: 0x40302420, 0x02c7: 0x40306420,
-	0x02c8: 0x40305220, 0x02c9: 0x40307c20, 0x02ca: 0x4030b420, 0x02cb: 0x4030cc20,
-	0x02cc: 0x4030da20, 0x02cd: 0x4030ee20, 0x02ce: 0x402e7a20, 0x02cf: 0x40310820,
-	0x02d0: 0x40314820, 0x02d1: 0x40315020, 0x02d2: 0x40316420, 0x02d3: 0x40318020,
-	0x02d4: 0x4031cc20, 0x02d5: 0x4031e820, 0x02d6: 0x40320a20, 0x02d7: 0x40323220,
-	0x02d8: 0x40323a20, 0x02d9: 0x402c1220, 0x02da: 0x402cf820, 0x02db: 0x402d4c20,
-	0x02dc: 0x402d7020, 0x02dd: 0x402de620, 0x02de: 0x402e1a20, 0x02df: 0x402e2a20,
-	0x02e0: 0x402f6220, 0x02e1: 0x4031fa20, 0x02e2: 0x40320220, 0x02e3: 0xe0000aca,
-	0x02e4: 0xe0000adc, 0x02e5: 0xe0000ad9, 0x02e6: 0xe0000fcc, 0x02e7: 0xe0000fcf,
-	0x02e8: 0xe0000fba, 0x02e9: 0xe0000ba1, 0x02ea: 0xe0000d11, 0x02eb: 0xe0000d18,
-	0x02ec: 0x40324220, 0x02ed: 0x40324a20, 0x02ee: 0x40309020, 0x02ef: 0x40309820,
-	0x02f0: 0x002d6894, 0x02f1: 0x002d8094, 0x02f2: 0x002dcc94, 0x02f3: 0x002f7a94,
-	0x02f4: 0x002f9894, 0x02f5: 0x002fac94, 0x02f6: 0x002fd894, 0x02f7: 0x0030e294,
-	0x02f8: 0x00310094, 0x02f9: 0x40064020, 0x02fa: 0x40064420, 0x02fb: 0x402d9620,
-	0x02fc: 0x4031de20, 0x02fd: 0x402d9820, 0x02fe: 0x4031e220, 0x02ff: 0x4031f020,
-	// Block 0xc, offset 0x300
-	0x0300: 0x4031dc20, 0x0301: 0x4031f220, 0x0302: 0x40064620, 0x0303: 0x40064820,
-	0x0304: 0x40064a20, 0x0305: 0x40064c20, 0x0306: 0x40064e20, 0x0307: 0x40065020,
-	0x0308: 0x40065220, 0x0309: 0x40065420, 0x030a: 0x40065620, 0x030b: 0x40065820,
-	0x030c: 0x40065a20, 0x030d: 0x40065c20, 0x030e: 0x40065e20, 0x030f: 0x40066020,
-	0x0310: 0x4027b220, 0x0311: 0x4027b420, 0x0312: 0x40066220, 0x0313: 0x40066420,
-	0x0314: 0x40066620, 0x0315: 0x40066820, 0x0316: 0x40066a20, 0x0317: 0x40066c20,
-	0x0318: 0x40062820, 0x0319: 0x40062a20, 0x031a: 0x40062e20, 0x031b: 0x40063420,
-	0x031c: 0x40062220, 0x031d: 0x40063020, 0x031e: 0x40066e20, 0x031f: 0x40067020,
-	0x0320: 0x002d5894, 0x0321: 0x002e2294, 0x0322: 0x002fe694, 0x0323: 0x0030f694,
-	0x0324: 0x0031e894, 0x0325: 0x40067220, 0x0326: 0x40067420, 0x0327: 0x40067620,
-	0x0328: 0x40067820, 0x0329: 0x40067a20, 0x032a: 0x40067c20, 0x032b: 0x40067e20,
-	0x032c: 0x40068020, 0x032d: 0x40068220, 0x032e: 0x4031e020, 0x032f: 0x40068420,
-	0x0330: 0x40068620, 0x0331: 0x40068820, 0x0332: 0x40068a20, 0x0333: 0x40068c20,
-	0x0334: 0x40068e20, 0x0335: 0x40069020, 0x0336: 0x40069220, 0x0337: 0x40069420,
-	0x0338: 0x40069620, 0x0339: 0x40069820, 0x033a: 0x40069a20, 0x033b: 0x40069c20,
-	0x033c: 0x40069e20, 0x033d: 0x4006a020, 0x033e: 0x4006a220, 0x033f: 0x4006a420,
-	// Block 0xd, offset 0x340
-	0x0340: 0xae603502, 0x0341: 0xae603202, 0x0342: 0xae603c02, 0x0343: 0xae604e02,
-	0x0344: 0xae605b02, 0x0345: 0xae606302, 0x0346: 0xae603702, 0x0347: 0xae605202,
-	0x0348: 0xae604702, 0x0349: 0xae606402, 0x034a: 0xae604302, 0x034b: 0xae604d02,
-	0x034c: 0xae604102, 0x034d: 0xae605f02, 0x034e: 0xae605f02, 0x034f: 0xae606502,
-	0x0350: 0xae606602, 0x0351: 0xae606702, 0x0352: 0xae605f02, 0x0353: 0xae602202,
-	0x0354: 0xae602a02, 0x0355: 0xae805f02, 0x0356: 0xadc06002, 0x0357: 0xadc06002,
-	0x0358: 0xadc06002, 0x0359: 0xadc06002, 0x035a: 0xae805f02, 0x035b: 0xad806802,
-	0x035c: 0xadc06002, 0x035d: 0xadc06002, 0x035e: 0xadc06002, 0x035f: 0xadc06002,
-	0x0360: 0xadc06002, 0x0361: 0xaca06e02, 0x0362: 0xaca06f02, 0x0363: 0xadc07002,
-	0x0364: 0xadc07502, 0x0365: 0xadc07602, 0x0366: 0xadc07702, 0x0367: 0xaca05602,
-	0x0368: 0xaca05902, 0x0369: 0xadc06002, 0x036a: 0xadc06002, 0x036b: 0xadc06002,
-	0x036c: 0xadc06002, 0x036d: 0xadc07802, 0x036e: 0xadc07902, 0x036f: 0xadc06002,
-	0x0370: 0xadc07a02, 0x0371: 0xadc07b02, 0x0372: 0xadc02102, 0x0373: 0xadc06002,
-	0x0374: 0xa0107c02, 0x0375: 0xa0107d02, 0x0376: 0xa0106102, 0x0377: 0xa0106102,
-	0x0378: 0xa0105402, 0x0379: 0xadc07e02, 0x037a: 0xadc06002, 0x037b: 0xadc06002,
-	0x037c: 0xadc06002, 0x037d: 0xae605f02, 0x037e: 0xae605f02, 0x037f: 0xae605f02,
-	// Block 0xe, offset 0x380
-	0x0380: 0xae603502, 0x0381: 0xae603202, 0x0382: 0xae604502, 0x0383: 0xae602202,
-	0x0384: 0xe0000000, 0x0385: 0xaf007f02, 0x0386: 0xae605f02, 0x0387: 0xadc06002,
-	0x0388: 0xadc06002, 0x0389: 0xadc06002, 0x038a: 0xae605f02, 0x038b: 0xae605f02,
-	0x038c: 0xae605f02, 0x038d: 0xadc06002, 0x038e: 0xadc06002, 0x038f: 0xa0000000,
-	0x0390: 0xae605f02, 0x0391: 0xae605f02, 0x0392: 0xae605f02, 0x0393: 0xadc06002,
-	0x0394: 0xadc06002, 0x0395: 0xadc06002, 0x0396: 0xadc06002, 0x0397: 0xae605f02,
-	0x0398: 0xae808002, 0x0399: 0xadc06002, 0x039a: 0xadc06002, 0x039b: 0xae605f02,
-	0x039c: 0xae906002, 0x039d: 0xaea05f02, 0x039e: 0xaea05f02, 0x039f: 0xae906002,
-	0x03a0: 0xaea08102, 0x03a1: 0xaea08202, 0x03a2: 0xae906002, 0x03a3: 0x84e615ef,
-	0x03a4: 0x84e6164c, 0x03a5: 0x84e616cd, 0x03a6: 0x84e61771, 0x03a7: 0x84e61836,
-	0x03a8: 0x84e6161d, 0x03a9: 0x84e61631, 0x03aa: 0x84e616b4, 0x03ab: 0x84e61741,
-	0x03ac: 0x84e617bd, 0x03ad: 0x84e61816, 0x03ae: 0x84e6185f, 0x03af: 0x84e6187b,
-	0x03b0: 0x00326688, 0x03b1: 0x40326620, 0x03b2: 0x0032a688, 0x03b3: 0x4032a620,
-	0x03b4: 0x40064020, 0x03b5: 0x40064220, 0x03b6: 0x00326088, 0x03b7: 0x40326020,
-	0x03ba: 0x00326c84, 0x03bb: 0x40329220,
-	0x03bc: 0x40329020, 0x03bd: 0x40329420, 0x03be: 0x40026220,
-	// Block 0xf, offset 0x3c0
-	0x03c4: 0x40062020, 0x03c5: 0xe00000ab, 0x03c6: 0xe00011f0, 0x03c7: 0x40030620,
-	0x03c8: 0xe0001249, 0x03c9: 0xe00012dd, 0x03ca: 0xe000133a,
-	0x03cc: 0xe000139b, 0x03ce: 0xe00013dd, 0x03cf: 0xe0001492,
-	0x03d0: 0xe0001352, 0x03d1: 0x00325288, 0x03d2: 0x00325488, 0x03d3: 0x00325688,
-	0x03d4: 0x00325a88, 0x03d5: 0x00325c88, 0x03d6: 0x00326488, 0x03d7: 0x00326888,
-	0x03d8: 0x00326a88, 0x03d9: 0x00326c88, 0x03da: 0x00327088, 0x03db: 0x00327288,
-	0x03dc: 0x00327688, 0x03dd: 0x00327888, 0x03de: 0x00327a88, 0x03df: 0x00327c88,
-	0x03e0: 0x00327e88, 0x03e1: 0x00328888, 0x03e3: 0x00328e88,
-	0x03e4: 0x00329688, 0x03e5: 0x00329888, 0x03e6: 0x00329a88, 0x03e7: 0x00329c88,
-	0x03e8: 0x00329e88, 0x03e9: 0x0032a288, 0x03ea: 0xe000134f, 0x03eb: 0xe00013f2,
-	0x03ec: 0xe00011ed, 0x03ed: 0xe0001246, 0x03ee: 0xe00012da, 0x03ef: 0xe0001337,
-	0x03f0: 0xe00013f5, 0x03f1: 0x40325220, 0x03f2: 0x40325420, 0x03f3: 0x40325620,
-	0x03f4: 0x40325a20, 0x03f5: 0x40325c20, 0x03f6: 0x40326420, 0x03f7: 0x40326820,
-	0x03f8: 0x40326a20, 0x03f9: 0x40326c20, 0x03fa: 0x40327020, 0x03fb: 0x40327220,
-	0x03fc: 0x40327620, 0x03fd: 0x40327820, 0x03fe: 0x40327a20, 0x03ff: 0x40327c20,
-	// Block 0x10, offset 0x400
-	0x0400: 0x40327e20, 0x0401: 0x40328820, 0x0402: 0x00328e99, 0x0403: 0x40328e20,
-	0x0404: 0x40329620, 0x0405: 0x40329820, 0x0406: 0x40329a20, 0x0407: 0x40329c20,
-	0x0408: 0x40329e20, 0x0409: 0x4032a220, 0x040a: 0xe000134c, 0x040b: 0xe00013ef,
-	0x040c: 0xe0001398, 0x040d: 0xe00013da, 0x040e: 0xe000148f, 0x040f: 0xe0001368,
-	0x0410: 0x00325484, 0x0411: 0x00326a84, 0x0412: 0x0032988a, 0x0413: 0xf000020a,
-	0x0414: 0xf000020a, 0x0415: 0x00329a84, 0x0416: 0x00327e84, 0x0417: 0xe0001364,
-	0x0418: 0x00328688, 0x0419: 0x40328620, 0x041a: 0x00326288, 0x041b: 0x40326220,
-	0x041c: 0x00325e88, 0x041d: 0x40325e20, 0x041e: 0x00328488, 0x041f: 0x40328420,
-	0x0420: 0x0032a488, 0x0421: 0x4032a420, 0x0422: 0x0032e888, 0x0423: 0x4032e820,
-	0x0424: 0x0032f288, 0x0425: 0x4032f220, 0x0426: 0x0032f488, 0x0427: 0x4032f420,
-	0x0428: 0x0032fa88, 0x0429: 0x4032fa20, 0x042a: 0x00330888, 0x042b: 0x40330820,
-	0x042c: 0x00330e88, 0x042d: 0x40330e20, 0x042e: 0x00331688, 0x042f: 0x40331620,
-	0x0430: 0x00327084, 0x0431: 0x00328884, 0x0432: 0x00328e84, 0x0433: 0x40326e20,
-	0x0434: 0x00326a8a, 0x0435: 0x00325c84, 0x0436: 0x40092e20, 0x0437: 0x0032a888,
-	0x0438: 0x4032a820, 0x0439: 0x00328e8a, 0x043a: 0x00328288, 0x043b: 0x40328220,
-	0x043c: 0x40328c20, 0x043d: 0x00329288, 0x043e: 0x00329088, 0x043f: 0x00329488,
-	// Block 0x11, offset 0x440
-	0x0440: 0xe00014bd, 0x0441: 0xe00014c3, 0x0442: 0x00339688, 0x0443: 0x0033a288,
-	0x0444: 0x0033c288, 0x0445: 0x0033fc88, 0x0446: 0xc02a0071, 0x0447: 0x00343688,
-	0x0448: 0x00344688, 0x0449: 0x00349a88, 0x044a: 0x0034e488, 0x044b: 0x00356288,
-	0x044c: 0x00356a88, 0x044d: 0xe00014cf, 0x044e: 0x00357a88, 0x044f: 0x00365488,
-	0x0450: 0xc0090041, 0x0451: 0x00335288, 0x0452: 0x00335a88, 0x0453: 0xc0130092,
-	0x0454: 0x00338a88, 0x0455: 0xc01800d1, 0x0456: 0xc01c0071, 0x0457: 0xc0200071,
-	0x0458: 0xc0250041, 0x0459: 0x00343e88, 0x045a: 0xc0370092, 0x045b: 0x00348488,
-	0x045c: 0x0034a888, 0x045d: 0x0034ba88, 0x045e: 0xc02e0071, 0x045f: 0x00350e88,
-	0x0460: 0x00352888, 0x0461: 0x00353a88, 0x0462: 0x00354c88, 0x0463: 0xc03e00f1,
-	0x0464: 0x0035ac88, 0x0465: 0x0035b488, 0x0466: 0x00360288, 0x0467: 0xc0440071,
-	0x0468: 0x00365c88, 0x0469: 0x00366688, 0x046a: 0x00367488, 0x046b: 0xc0480071,
-	0x046c: 0x00368e88, 0x046d: 0xc04c0071, 0x046e: 0x0036b888, 0x046f: 0x0036c488,
-	0x0470: 0xc0060041, 0x0471: 0x40335220, 0x0472: 0x40335a20, 0x0473: 0xc0100092,
-	0x0474: 0x40338a20, 0x0475: 0xc01600d1, 0x0476: 0xc01a0071, 0x0477: 0xc01e0071,
-	0x0478: 0xc0220041, 0x0479: 0x40343e20, 0x047a: 0xc0340092, 0x047b: 0x40348420,
-	0x047c: 0x4034a820, 0x047d: 0x4034ba20, 0x047e: 0xc02c0071, 0x047f: 0x40350e20,
-	// Block 0x12, offset 0x480
-	0x0480: 0x40352820, 0x0481: 0x40353a20, 0x0482: 0x40354c20, 0x0483: 0xc03a00f1,
-	0x0484: 0x4035ac20, 0x0485: 0x4035b420, 0x0486: 0x40360220, 0x0487: 0xc0420071,
-	0x0488: 0x40365c20, 0x0489: 0x40366620, 0x048a: 0x40367420, 0x048b: 0xc0460071,
-	0x048c: 0x40368e20, 0x048d: 0xc04a0071, 0x048e: 0x4036b820, 0x048f: 0x4036c420,
-	0x0490: 0xe00014ba, 0x0491: 0xe00014c0, 0x0492: 0x40339620, 0x0493: 0x4033a220,
-	0x0494: 0x4033c220, 0x0495: 0x4033fc20, 0x0496: 0xc0280071, 0x0497: 0x40343620,
-	0x0498: 0x40344620, 0x0499: 0x40349a20, 0x049a: 0x4034e420, 0x049b: 0x40356220,
-	0x049c: 0x40356a20, 0x049d: 0xe00014cc, 0x049e: 0x40357a20, 0x049f: 0x40365420,
-	0x04a0: 0x0035e088, 0x04a1: 0x4035e020, 0x04a2: 0x00369e88, 0x04a3: 0x40369e20,
-	0x04a4: 0x0036ce88, 0x04a5: 0x4036ce20, 0x04a6: 0x0036d688, 0x04a7: 0x4036d620,
-	0x04a8: 0x0036ea88, 0x04a9: 0x4036ea20, 0x04aa: 0x0036e088, 0x04ab: 0x4036e020,
-	0x04ac: 0x0036f488, 0x04ad: 0x4036f420, 0x04ae: 0x0036fc88, 0x04af: 0x4036fc20,
-	0x04b0: 0x00370488, 0x04b1: 0x40370420, 0x04b2: 0x00370c88, 0x04b3: 0x40370c20,
-	0x04b4: 0xc0500131, 0x04b5: 0xc04e0131, 0x04b6: 0x00371c88, 0x04b7: 0x40371c20,
-	0x04b8: 0x0035a488, 0x04b9: 0x4035a420, 0x04ba: 0x0035fa88, 0x04bb: 0x4035fa20,
-	0x04bc: 0x0035f288, 0x04bd: 0x4035f220, 0x04be: 0x0035e888, 0x04bf: 0x4035e820,
-	// Block 0x13, offset 0x4c0
-	0x04c0: 0x00352088, 0x04c1: 0x40352020, 0x04c2: 0x40070620, 0x04c3: 0xae608302,
-	0x04c4: 0xae605f02, 0x04c5: 0xae602a02, 0x04c6: 0xae602202, 0x04c7: 0xae605f02,
-	0x04c8: 0xa0000000, 0x04c9: 0xa0000000, 0x04ca: 0x00341c88, 0x04cb: 0x40341c20,
-	0x04cc: 0x00369688, 0x04cd: 0x40369620, 0x04ce: 0x00353088, 0x04cf: 0x40353020,
-	0x04d0: 0xe00014b7, 0x04d1: 0xe00014b4, 0x04d2: 0x00336a88, 0x04d3: 0x40336a20,
-	0x04d4: 0x00337a88, 0x04d5: 0x40337a20, 0x04d6: 0x0033dc88, 0x04d7: 0x4033dc20,
-	0x04d8: 0x0033aa88, 0x04d9: 0x4033aa20, 0x04da: 0x00345888, 0x04db: 0x40345820,
-	0x04dc: 0x00347888, 0x04dd: 0x40347820, 0x04de: 0x00347088, 0x04df: 0x40347020,
-	0x04e0: 0x00346888, 0x04e1: 0x40346820, 0x04e2: 0x0034ca88, 0x04e3: 0x4034ca20,
-	0x04e4: 0x0034dc88, 0x04e5: 0x4034dc20, 0x04e6: 0x00351888, 0x04e7: 0x40351820,
-	0x04e8: 0x00372688, 0x04e9: 0x40372620, 0x04ea: 0x00354488, 0x04eb: 0x40354420,
-	0x04ec: 0x00355888, 0x04ed: 0x40355820, 0x04ee: 0x00359288, 0x04ef: 0x40359220,
-	0x04f0: 0x00359a88, 0x04f1: 0x40359a20, 0x04f2: 0x0035cc88, 0x04f3: 0x4035cc20,
-	0x04f4: 0x00360e88, 0x04f5: 0x40360e20, 0x04f6: 0x00362a88, 0x04f7: 0x40362a20,
-	0x04f8: 0x00363a88, 0x04f9: 0x40363a20, 0x04fa: 0x0035d488, 0x04fb: 0x4035d420,
-	0x04fc: 0x00364488, 0x04fd: 0x40364420, 0x04fe: 0x00364c88, 0x04ff: 0x40364c20,
-	// Block 0x14, offset 0x500
-	0x0500: 0x00373088, 0x0501: 0xe00014c9, 0x0502: 0xe00014c6, 0x0503: 0x00346088,
-	0x0504: 0x40346020, 0x0505: 0x00348e88, 0x0506: 0x40348e20, 0x0507: 0x0034d288,
-	0x0508: 0x4034d220, 0x0509: 0x0034c288, 0x050a: 0x4034c220, 0x050b: 0x00363288,
-	0x050c: 0x40363220, 0x050d: 0x0034b088, 0x050e: 0x4034b020, 0x050f: 0x40373020,
-	0x0510: 0x00332a88, 0x0511: 0x40332a20, 0x0512: 0x00333288, 0x0513: 0x40333220,
-	0x0514: 0x00334a88, 0x0515: 0x40334a20, 0x0516: 0x0033ba88, 0x0517: 0x4033ba20,
-	0x0518: 0xc00e0071, 0x0519: 0xc00c0071, 0x051a: 0x00334288, 0x051b: 0x40334220,
-	0x051c: 0x0033d488, 0x051d: 0x4033d420, 0x051e: 0x0033f288, 0x051f: 0x4033f220,
-	0x0520: 0x00340688, 0x0521: 0x40340620, 0x0522: 0xe00014d5, 0x0523: 0xe00014d2,
-	0x0524: 0x00342488, 0x0525: 0x40342420, 0x0526: 0x0034f688, 0x0527: 0x4034f620,
-	0x0528: 0xc0320071, 0x0529: 0xc0300071, 0x052a: 0x00350688, 0x052b: 0x40350620,
-	0x052c: 0x0036b088, 0x052d: 0x4036b020, 0x052e: 0xe00014de, 0x052f: 0xe00014db,
-	0x0530: 0x00358288, 0x0531: 0x40358220, 0x0532: 0x00358a88, 0x0533: 0x40358a20,
-	0x0534: 0x00362288, 0x0535: 0x40362220, 0x0536: 0x00338288, 0x0537: 0x40338220,
-	0x0538: 0x00368688, 0x0539: 0x40368620, 0x053a: 0x00337288, 0x053b: 0x40337220,
-	0x053c: 0x0035bc88, 0x053d: 0x4035bc20, 0x053e: 0x0035c488, 0x053f: 0x4035c420,
-	// Block 0x15, offset 0x540
-	0x0540: 0x00339288, 0x0541: 0x40339220, 0x0542: 0x0033a088, 0x0543: 0x4033a020,
-	0x0544: 0x0033ee88, 0x0545: 0x4033ee20, 0x0546: 0x00341088, 0x0547: 0x40341020,
-	0x0548: 0x0034a488, 0x0549: 0x4034a420, 0x054a: 0x0034ec88, 0x054b: 0x4034ec20,
-	0x054c: 0x00354288, 0x054d: 0x40354220, 0x054e: 0x00355688, 0x054f: 0x40355620,
-	0x0550: 0x0033f088, 0x0551: 0x4033f020, 0x0552: 0x00349688, 0x0553: 0x40349620,
-	0x0554: 0x0034a688, 0x0555: 0x4034a620, 0x0556: 0x00353888, 0x0557: 0x40353820,
-	0x0558: 0x0036cc88, 0x0559: 0x4036cc20, 0x055a: 0x00348288, 0x055b: 0x40348220,
-	0x055c: 0x00372e88, 0x055d: 0x40372e20, 0x055e: 0x00348088, 0x055f: 0x40348020,
-	0x0560: 0x00349888, 0x0561: 0x40349820, 0x0562: 0x0034da88, 0x0563: 0x4034da20,
-	0x0564: 0x00351688, 0x0565: 0x40351620, 0x0566: 0x0035dc88, 0x0567: 0x4035dc20,
-	0x0571: 0x00384288, 0x0572: 0x00384488, 0x0573: 0x00384688,
-	0x0574: 0x00384888, 0x0575: 0x00384a88, 0x0576: 0x00384c88, 0x0577: 0x00384e88,
-	0x0578: 0x00385088, 0x0579: 0x00385288, 0x057a: 0x00385488, 0x057b: 0x00385688,
-	0x057c: 0x00385888, 0x057d: 0x00385a88, 0x057e: 0x00385c88, 0x057f: 0x00385e88,
-	// Block 0x16, offset 0x580
-	0x0580: 0x00386088, 0x0581: 0x00386288, 0x0582: 0x00386488, 0x0583: 0x00386688,
-	0x0584: 0x00386888, 0x0585: 0x00386a88, 0x0586: 0x00386c88, 0x0587: 0x00386e88,
-	0x0588: 0x00387088, 0x0589: 0x00387288, 0x058a: 0x00387488, 0x058b: 0x00387688,
-	0x058c: 0x00387888, 0x058d: 0x00387a88, 0x058e: 0x00387c88, 0x058f: 0x00387e88,
-	0x0590: 0x00388088, 0x0591: 0x00388288, 0x0592: 0x00388488, 0x0593: 0x00388688,
-	0x0594: 0x00388888, 0x0595: 0x00388a88, 0x0596: 0x00388c88,
-	0x0599: 0x40388e20, 0x059a: 0x40054e20, 0x059b: 0x40055020,
-	0x059c: 0x4002be20, 0x059d: 0x40024620, 0x059e: 0x4002ca20, 0x059f: 0x40055220,
-	0x05a1: 0x40384220, 0x05a2: 0x40384420, 0x05a3: 0x40384620,
-	0x05a4: 0x40384820, 0x05a5: 0x40384a20, 0x05a6: 0x40384c20, 0x05a7: 0x40384e20,
-	0x05a8: 0x40385020, 0x05a9: 0x40385220, 0x05aa: 0x40385420, 0x05ab: 0x40385620,
-	0x05ac: 0x40385820, 0x05ad: 0x40385a20, 0x05ae: 0x40385c20, 0x05af: 0x40385e20,
-	0x05b0: 0x40386020, 0x05b1: 0x40386220, 0x05b2: 0x40386420, 0x05b3: 0x40386620,
-	0x05b4: 0x40386820, 0x05b5: 0x40386a20, 0x05b6: 0x40386c20, 0x05b7: 0x40386e20,
-	0x05b8: 0x40387020, 0x05b9: 0x40387220, 0x05ba: 0x40387420, 0x05bb: 0x40387620,
-	0x05bc: 0x40387820, 0x05bd: 0x40387a20, 0x05be: 0x40387c20, 0x05bf: 0x40387e20,
-	// Block 0x17, offset 0x5c0
-	0x05c0: 0x40388020, 0x05c1: 0x40388220, 0x05c2: 0x40388420, 0x05c3: 0x40388620,
-	0x05c4: 0x40388820, 0x05c5: 0x40388a20, 0x05c6: 0x40388c20, 0x05c7: 0xf0000404,
-	0x05c9: 0x40026e20, 0x05ca: 0x40021c20,
-	0x05cf: 0x4027e420,
-	0x05d1: 0xadc00000, 0x05d2: 0xae600000, 0x05d3: 0xae600000,
-	0x05d4: 0xae600000, 0x05d5: 0xae600000, 0x05d6: 0xadc00000, 0x05d7: 0xae600000,
-	0x05d8: 0xae600000, 0x05d9: 0xae600000, 0x05da: 0xade00000, 0x05db: 0xadc00000,
-	0x05dc: 0xae600000, 0x05dd: 0xae600000, 0x05de: 0xae600000, 0x05df: 0xae600000,
-	0x05e0: 0xae600000, 0x05e1: 0xae600000, 0x05e2: 0xadc00000, 0x05e3: 0xadc00000,
-	0x05e4: 0xadc00000, 0x05e5: 0xadc00000, 0x05e6: 0xadc00000, 0x05e7: 0xadc00000,
-	0x05e8: 0xae600000, 0x05e9: 0xae600000, 0x05ea: 0xadc00000, 0x05eb: 0xae600000,
-	0x05ec: 0xae600000, 0x05ed: 0xade00000, 0x05ee: 0xae400000, 0x05ef: 0xae600000,
-	0x05f0: 0xa0a08502, 0x05f1: 0xa0b08602, 0x05f2: 0xa0c08702, 0x05f3: 0xa0d08802,
-	0x05f4: 0xa0e08902, 0x05f5: 0xa0f08a02, 0x05f6: 0xa1008b02, 0x05f7: 0xa1108c02,
-	0x05f8: 0xa1208d02, 0x05f9: 0xa1308e02, 0x05fa: 0xa1308e02, 0x05fb: 0xa1408f02,
-	0x05fc: 0xa1509202, 0x05fd: 0xa1600000, 0x05fe: 0x40055420, 0x05ff: 0xa1709502,
-	// Block 0x18, offset 0x600
-	0x0600: 0x40055620, 0x0601: 0xa1809102, 0x0602: 0xa1909002, 0x0603: 0x40055820,
-	0x0604: 0xae600000, 0x0605: 0xadc00000, 0x0606: 0x40055a20, 0x0607: 0xa1208d02,
-	0x0610: 0x40389020, 0x0611: 0x40389220, 0x0612: 0x40389420, 0x0613: 0x40389620,
-	0x0614: 0x40389820, 0x0615: 0x40389a20, 0x0616: 0x40389c20, 0x0617: 0x40389e20,
-	0x0618: 0x4038a020, 0x0619: 0x4038a220, 0x061a: 0x0038a499, 0x061b: 0x4038a420,
-	0x061c: 0x4038a620, 0x061d: 0x0038a899, 0x061e: 0x4038a820, 0x061f: 0x0038aa99,
-	0x0620: 0x4038aa20, 0x0621: 0x4038ac20, 0x0622: 0x4038ae20, 0x0623: 0x0038b099,
-	0x0624: 0x4038b020, 0x0625: 0x0038b299, 0x0626: 0x4038b220, 0x0627: 0x4038b420,
-	0x0628: 0x4038b620, 0x0629: 0x4038b820, 0x062a: 0x4038ba20,
-	0x0630: 0xe00014ff, 0x0631: 0xe0001502, 0x0632: 0xe0001511, 0x0633: 0x40055c20,
-	0x0634: 0x40055e20,
-	// Block 0x19, offset 0x640
-	0x0640: 0xa0000000, 0x0641: 0xa0000000, 0x0642: 0xa0000000, 0x0643: 0xa0000000,
-	0x0644: 0xa0000000, 0x0646: 0x40096620, 0x0647: 0x40096a20,
-	0x0648: 0x40070820, 0x0649: 0x4004f220, 0x064a: 0x4004f620, 0x064b: 0x4027e620,
-	0x064c: 0x40024820, 0x064d: 0x40024a20, 0x064e: 0x40070e20, 0x064f: 0x40071020,
-	0x0650: 0xae600000, 0x0651: 0xae600000, 0x0652: 0xae600000, 0x0653: 0xae600000,
-	0x0654: 0xae600000, 0x0655: 0xae600000, 0x0656: 0xae600000, 0x0657: 0xae600000,
-	0x0658: 0xa1e00000, 0x0659: 0xa1f00000, 0x065a: 0xa2000000, 0x065b: 0x40026420,
-	0x065e: 0x40027020, 0x065f: 0x4002cc20,
-	0x0660: 0x403aa220, 0x0661: 0x40391c20, 0x0662: 0x40391e20, 0x0663: 0x40392020,
-	0x0664: 0x40392620, 0x0665: 0x40392820, 0x0666: 0x40393020, 0x0667: 0xc0520151,
-	0x0668: 0x40393c20, 0x0669: 0x40395420, 0x066a: 0x40395620, 0x066b: 0x40395820,
-	0x066c: 0x40396420, 0x066d: 0x40397220, 0x066e: 0x40397420, 0x066f: 0x40398820,
-	0x0670: 0x40398a20, 0x0671: 0x4039a420, 0x0672: 0x4039a620, 0x0673: 0x4039c620,
-	0x0674: 0x4039c820, 0x0675: 0x4039dc20, 0x0676: 0x4039de20, 0x0677: 0x4039e620,
-	0x0678: 0x4039e820, 0x0679: 0x4039ee20, 0x067a: 0x4039f020, 0x067b: 0x403a3820,
-	0x067c: 0x403a3a20, 0x067d: 0x403a9c20, 0x067e: 0x403a9e20, 0x067f: 0x403aa020,
-	// Block 0x1a, offset 0x680
-	0x0680: 0xa0000000, 0x0681: 0x4039fc20, 0x0682: 0x403a1220, 0x0683: 0x403a1a20,
-	0x0684: 0x403a4020, 0x0685: 0x403a4e20, 0x0686: 0x403a5620, 0x0687: 0x403a6820,
-	0x0688: 0xc0560171, 0x0689: 0x403a8e20, 0x068a: 0xc0580171, 0x068b: 0xa1b0a202,
-	0x068c: 0xa1c0a502, 0x068d: 0xa1d0a902, 0x068e: 0xa1e0ad02, 0x068f: 0xa1f0b202,
-	0x0690: 0xa200b602, 0x0691: 0xa210ba02, 0x0692: 0xa220bc02, 0x0693: 0xae60bd02,
-	0x0694: 0xae60be02, 0x0695: 0xadc0bf02, 0x0696: 0xadc0c102, 0x0697: 0xae60c202,
-	0x0698: 0xae60c302, 0x0699: 0xae60c402, 0x069a: 0xae60c502, 0x069b: 0xae60c602,
-	0x069c: 0xadc0c702, 0x069d: 0xae60c802, 0x069e: 0xae60c902, 0x069f: 0xadc0c002,
-	0x06a0: 0xe000015e, 0x06a1: 0xe00001e6, 0x06a2: 0xe0000301, 0x06a3: 0xe00003db,
-	0x06a4: 0xe00004b6, 0x06a5: 0xe0000580, 0x06a6: 0xe000064b, 0x06a7: 0xe00006f3,
-	0x06a8: 0xe000079f, 0x06a9: 0xe0000844, 0x06aa: 0x4004ee20, 0x06ab: 0x40024c20,
-	0x06ac: 0x40024e20, 0x06ad: 0x4004de20, 0x06ae: 0x40393a20, 0x06af: 0x403a1020,
-	0x06b0: 0xa230d102, 0x06b1: 0x40392420, 0x06b2: 0x40392220, 0x06b3: 0x40392a20,
-	0x06b4: 0x00391c84, 0x06b5: 0xf0000404, 0x06b6: 0xf0000404, 0x06b7: 0xf0000404,
-	0x06b8: 0xf0000404, 0x06b9: 0x40395a20, 0x06ba: 0x40395c20, 0x06bb: 0x40393e20,
-	0x06bc: 0x40395e20, 0x06bd: 0x40396020, 0x06be: 0x40394020, 0x06bf: 0x40396220,
-	// Block 0x1b, offset 0x6c0
-	0x06c0: 0x40394220, 0x06c1: 0x40397620, 0x06c2: 0x40397820, 0x06c3: 0x40396620,
-	0x06c4: 0x40396820, 0x06c5: 0x40397a20, 0x06c6: 0x40396a20, 0x06c7: 0x40396e20,
-	0x06c8: 0x40398c20, 0x06c9: 0x40398e20, 0x06ca: 0x40399020, 0x06cb: 0x40399220,
-	0x06cc: 0x40399420, 0x06cd: 0x40399620, 0x06ce: 0x40399820, 0x06cf: 0x40399a20,
-	0x06d0: 0x40399c20, 0x06d1: 0x4039a820, 0x06d2: 0x4039aa20, 0x06d3: 0x4039ac20,
-	0x06d4: 0x4039ae20, 0x06d5: 0x4039b020, 0x06d6: 0x4039b220, 0x06d7: 0x4039b420,
-	0x06d8: 0x4039b620, 0x06d9: 0x4039b820, 0x06da: 0x4039ca20, 0x06db: 0x4039cc20,
-	0x06dc: 0x4039ce20, 0x06dd: 0x4039e020, 0x06de: 0x4039e220, 0x06df: 0x4039ea20,
-	0x06e0: 0x4039f220, 0x06e1: 0x4039fe20, 0x06e2: 0x403a0020, 0x06e3: 0x403a0220,
-	0x06e4: 0x403a0420, 0x06e5: 0x403a0820, 0x06e6: 0x403a0a20, 0x06e7: 0x403a1420,
-	0x06e8: 0x403a1620, 0x06e9: 0x403a1c20, 0x06ea: 0x403a1e20, 0x06eb: 0x403a2020,
-	0x06ec: 0x403a2220, 0x06ed: 0x403a2620, 0x06ee: 0x403a2820, 0x06ef: 0x403a2a20,
-	0x06f0: 0x403a2c20, 0x06f1: 0x403a2e20, 0x06f2: 0x403a3020, 0x06f3: 0x403a3220,
-	0x06f4: 0x403a3420, 0x06f5: 0x403a4220, 0x06f6: 0x403a4420, 0x06f7: 0x403a4620,
-	0x06f8: 0x403a4820, 0x06f9: 0x403a6020, 0x06fa: 0x403a5820, 0x06fb: 0x403a5a20,
-	0x06fc: 0x403a5c20, 0x06fd: 0x403a5e20, 0x06fe: 0x403a6a20, 0x06ff: 0x40396c20,
-	// Block 0x1c, offset 0x700
-	0x0700: 0xe00017e4, 0x0701: 0x403a6c20, 0x0702: 0xe00017e1, 0x0703: 0x403a6e20,
-	0x0704: 0x403a7620, 0x0705: 0x403a7820, 0x0706: 0x403a7a20, 0x0707: 0x403a7c20,
-	0x0708: 0x403a7e20, 0x0709: 0x403a8020, 0x070a: 0x403a8220, 0x070b: 0x403a8420,
-	0x070c: 0x403a9220, 0x070d: 0x403a9420, 0x070e: 0x403a9620, 0x070f: 0x403a8620,
-	0x0710: 0x403a9820, 0x0711: 0x403a9a20, 0x0712: 0x403aaa20, 0x0713: 0xe0001800,
-	0x0714: 0x4002e820, 0x0715: 0x403a7220, 0x0716: 0xae600000, 0x0717: 0xae600000,
-	0x0718: 0xae600000, 0x0719: 0xae600000, 0x071a: 0xae600000, 0x071b: 0xae600000,
-	0x071c: 0xae600000, 0x071d: 0xa0000000, 0x071e: 0x40071220, 0x071f: 0xae600000,
-	0x0720: 0xae600000, 0x0721: 0xae600000, 0x0722: 0xae600000, 0x0723: 0xadc00000,
-	0x0724: 0xae600000, 0x0725: 0x003a7484, 0x0726: 0x003a9084, 0x0727: 0xae600000,
-	0x0728: 0xae600000, 0x0729: 0x40071420, 0x072a: 0xadc00000, 0x072b: 0xae600000,
-	0x072c: 0xae600000, 0x072d: 0xadc00000, 0x072e: 0x40399e20, 0x072f: 0x4039ba20,
-	0x0730: 0xe0000161, 0x0731: 0xe00001e9, 0x0732: 0xe0000304, 0x0733: 0xe00003de,
-	0x0734: 0xe00004b9, 0x0735: 0xe0000583, 0x0736: 0xe000064e, 0x0737: 0xe00006f6,
-	0x0738: 0xe00007a2, 0x0739: 0xe0000847, 0x073a: 0x4039d020, 0x073b: 0x4039e420,
-	0x073c: 0x4039f420, 0x073d: 0xe0001553, 0x073e: 0xe0001779, 0x073f: 0x403a7020,
-	// Block 0x1d, offset 0x740
-	0x0740: 0x40035c20, 0x0741: 0x4002ea20, 0x0742: 0x4002ec20, 0x0743: 0x40027220,
-	0x0744: 0x40027420, 0x0745: 0x40027620, 0x0746: 0x40027820, 0x0747: 0x40027a20,
-	0x0748: 0x40027c20, 0x0749: 0x4002ce20, 0x074a: 0x40056020, 0x074b: 0x40056220,
-	0x074c: 0x40056420, 0x074d: 0x40056620, 0x074f: 0xa0000000,
-	0x0750: 0x403ab020, 0x0751: 0xa240d202, 0x0752: 0x403ab220, 0x0753: 0x403ab420,
-	0x0754: 0xe0001806, 0x0755: 0x403ab820, 0x0756: 0x403ab620, 0x0757: 0x403aba20,
-	0x0758: 0x403abc20, 0x0759: 0x403abe20, 0x075a: 0x403ac220, 0x075b: 0x403ac420,
-	0x075c: 0xe000180f, 0x075d: 0x403ac620, 0x075e: 0x403ac820, 0x075f: 0x403aca20,
-	0x0760: 0x403ace20, 0x0761: 0x403ad020, 0x0762: 0x403ad220, 0x0763: 0x403ad420,
-	0x0764: 0x003ad499, 0x0765: 0x403ad620, 0x0766: 0x403ad820, 0x0767: 0xe0001812,
-	0x0768: 0x403adc20, 0x0769: 0x403ade20, 0x076a: 0x403ae020, 0x076b: 0x403ae220,
-	0x076c: 0x403ae420, 0x076d: 0xe0001803, 0x076e: 0xe0001809, 0x076f: 0xe000180c,
-	0x0770: 0xae60d302, 0x0771: 0xadc0d402, 0x0772: 0xae60d502, 0x0773: 0xae60d602,
-	0x0774: 0xadc0d702, 0x0775: 0xae60d802, 0x0776: 0xae60d902, 0x0777: 0xadc0da02,
-	0x0778: 0xadc0db02, 0x0779: 0xadc0dc02, 0x077a: 0xae60dd02, 0x077b: 0xadc0de02,
-	0x077c: 0xadc0df02, 0x077d: 0xae60e002, 0x077e: 0xadc0e102, 0x077f: 0xae60e202,
-	// Block 0x1e, offset 0x780
-	0x0780: 0xae600000, 0x0781: 0xae605f02, 0x0782: 0xadc06002, 0x0783: 0xae600000,
-	0x0784: 0xadc00000, 0x0785: 0xae605f02, 0x0786: 0xadc06002, 0x0787: 0xae600000,
-	0x0788: 0xadc00000, 0x0789: 0xae600000, 0x078a: 0xae600000,
-	0x078d: 0x403ac020, 0x078e: 0x403acc20, 0x078f: 0x403ada20,
-	0x0790: 0x40394420, 0x0791: 0x40394620, 0x0792: 0x40394820, 0x0793: 0x40394a20,
-	0x0794: 0x40394c20, 0x0795: 0x40394e20, 0x0796: 0x40395220, 0x0797: 0x40397c20,
-	0x0798: 0x40397e20, 0x0799: 0x4039a020, 0x079a: 0x4039a220, 0x079b: 0x4039bc20,
-	0x079c: 0x4039d220, 0x079d: 0x4039f620, 0x079e: 0x4039f820, 0x079f: 0x4039fa20,
-	0x07a0: 0x403a0c20, 0x07a1: 0x403a0e20, 0x07a2: 0x403a3620, 0x07a3: 0x403a3c20,
-	0x07a4: 0x403a3e20, 0x07a5: 0x403a5020, 0x07a6: 0x403a5220, 0x07a7: 0x403a6220,
-	0x07a8: 0x403a6420, 0x07a9: 0x403a6620, 0x07aa: 0x403a4a20, 0x07ab: 0x4039be20,
-	0x07ac: 0x4039c020, 0x07ad: 0x4039d420, 0x07ae: 0x40398020, 0x07af: 0x40398220,
-	0x07b0: 0x4039d620, 0x07b1: 0x4039c220, 0x07b2: 0x40398420, 0x07b3: 0x40392c20,
-	0x07b4: 0x40392e20, 0x07b5: 0x403aa420, 0x07b6: 0x403aa620, 0x07b7: 0x403aa820,
-	0x07b8: 0x403a8820, 0x07b9: 0x403a8a20, 0x07ba: 0x403aac20, 0x07bb: 0x403aae20,
-	0x07bc: 0x40398620, 0x07bd: 0x4039d820, 0x07be: 0x4039da20, 0x07bf: 0x403a2420,
-	// Block 0x1f, offset 0x7c0
-	0x07c0: 0x403b1820, 0x07c1: 0x403b1e20, 0x07c2: 0x403b2020, 0x07c3: 0x403b2220,
-	0x07c4: 0x403b2620, 0x07c5: 0x403b2820, 0x07c6: 0x403b2a20, 0x07c7: 0x403b2c20,
-	0x07c8: 0x403b3220, 0x07c9: 0x403b3620, 0x07ca: 0x403b3820, 0x07cb: 0x403b3a20,
-	0x07cc: 0x403b3e20, 0x07cd: 0x403b4620, 0x07ce: 0x403b4820, 0x07cf: 0x403b4c20,
-	0x07d0: 0x403b4e20, 0x07d1: 0x403b5620, 0x07d2: 0x403b5820, 0x07d3: 0x403b5a20,
-	0x07d4: 0x403b5c20, 0x07d5: 0x403b5e20, 0x07d6: 0x403b6020, 0x07d7: 0x403b6220,
-	0x07d8: 0x403b4020, 0x07d9: 0x403b1a20, 0x07da: 0x403b1c20, 0x07db: 0x403b3c20,
-	0x07dc: 0x403b2420, 0x07dd: 0x403b5020, 0x07de: 0x403b5220, 0x07df: 0x403b5420,
-	0x07e0: 0x403b4220, 0x07e1: 0x403b4420, 0x07e2: 0x403b2e20, 0x07e3: 0x403b3020,
-	0x07e4: 0x403b4a20, 0x07e5: 0x403b3420, 0x07e6: 0x403b6620, 0x07e7: 0x403b6820,
-	0x07e8: 0x403b6a20, 0x07e9: 0x403b6c20, 0x07ea: 0x403b6e20, 0x07eb: 0x403b7020,
-	0x07ec: 0x403b7220, 0x07ed: 0x403b7420, 0x07ee: 0x403b7620, 0x07ef: 0x403b7820,
-	0x07f0: 0x403b7a20, 0x07f1: 0x403b6420,
-	// Block 0x20, offset 0x800
-	0x0800: 0xe0000164, 0x0801: 0xe00001ef, 0x0802: 0xe000030a, 0x0803: 0xe00003e4,
-	0x0804: 0xe00004bf, 0x0805: 0xe0000589, 0x0806: 0xe0000654, 0x0807: 0xe00006fc,
-	0x0808: 0xe00007a8, 0x0809: 0xe000084d, 0x080a: 0x403b7c20, 0x080b: 0x403b7e20,
-	0x080c: 0x403b8020, 0x080d: 0x403b8220, 0x080e: 0x403b8420, 0x080f: 0x403b8620,
-	0x0810: 0x403b8820, 0x0811: 0x403b8a20, 0x0812: 0x403b8c20, 0x0813: 0x403b8e20,
-	0x0814: 0x403b9020, 0x0815: 0x403b9220, 0x0816: 0x403b9420, 0x0817: 0x403b9620,
-	0x0818: 0x403b9820, 0x0819: 0x403b9a20, 0x081a: 0x403b9c20, 0x081b: 0x403b9e20,
-	0x081c: 0x403ba020, 0x081d: 0x403ba220, 0x081e: 0x403ba420, 0x081f: 0x403ba620,
-	0x0820: 0x403ba820, 0x0821: 0x403baa20, 0x0822: 0x403bac20, 0x0823: 0x403bae20,
-	0x0824: 0x403bb020, 0x0825: 0x403bb220, 0x0826: 0x403bb420, 0x0827: 0x403bb620,
-	0x0828: 0xe0001815, 0x0829: 0xe0001818, 0x082a: 0xe000181b, 0x082b: 0xae60e302,
-	0x082c: 0xae60e402, 0x082d: 0xae60e502, 0x082e: 0xae60e602, 0x082f: 0xae60e702,
-	0x0830: 0xae60e802, 0x0831: 0xae60e902, 0x0832: 0xadc0ea02, 0x0833: 0xae60eb02,
-	0x0834: 0x403bb820, 0x0835: 0x403bba20, 0x0836: 0x40073820, 0x0837: 0x40035e20,
-	0x0838: 0x40025020, 0x0839: 0x4002c020, 0x083a: 0xa0000000,
-	// Block 0x21, offset 0x840
-	0x0840: 0x4038e820, 0x0841: 0x4038ea20, 0x0842: 0x4038ec20, 0x0843: 0x4038ee20,
-	0x0844: 0x4038f020, 0x0845: 0x4038f220, 0x0846: 0x4038f420, 0x0847: 0x4038f620,
-	0x0848: 0x4038f820, 0x0849: 0x4038fa20, 0x084a: 0x4038fc20, 0x084b: 0x4038fe20,
-	0x084c: 0x40390020, 0x084d: 0x40390220, 0x084e: 0x40390420, 0x084f: 0x40390620,
-	0x0850: 0x40390820, 0x0851: 0x40390a20, 0x0852: 0x40390c20, 0x0853: 0x40390e20,
-	0x0854: 0x40391020, 0x0855: 0x40391220, 0x0856: 0x82e61c8a, 0x0857: 0x82e61c8b,
-	0x0858: 0xae609f02, 0x0859: 0xae60a002, 0x085a: 0x40391820, 0x085b: 0x82e61c8d,
-	0x085c: 0xae609702, 0x085d: 0xae609702, 0x085e: 0xae609802, 0x085f: 0xae609802,
-	0x0860: 0xae609802, 0x0861: 0xae609902, 0x0862: 0xae609902, 0x0863: 0xae609902,
-	0x0864: 0xa0009a02, 0x0865: 0xae609a02, 0x0866: 0xae609b02, 0x0867: 0xae609b02,
-	0x0868: 0xa0009c02, 0x0869: 0xae609c02, 0x086a: 0xae609c02, 0x086b: 0xae609d02,
-	0x086c: 0xae609e02, 0x086d: 0xae60a102,
-	0x0870: 0x40027e20, 0x0871: 0x40028020, 0x0872: 0x40028220, 0x0873: 0x40028420,
-	0x0874: 0x40028620, 0x0875: 0x40028820, 0x0876: 0x40028a20, 0x0877: 0x40028c20,
-	0x0878: 0x40028e20, 0x0879: 0x40029020, 0x087a: 0x40029220, 0x087b: 0x40029420,
-	0x087c: 0x40029620, 0x087d: 0x40029820, 0x087e: 0x40029a20,
-	// Block 0x22, offset 0x880
-	0x0880: 0x403ae620, 0x0881: 0x403ae820, 0x0882: 0x403aea20, 0x0883: 0x403aec20,
-	0x0884: 0x403aee20, 0x0885: 0x403af020, 0x0886: 0x403af220, 0x0887: 0x403af420,
-	0x0888: 0x403af620, 0x0889: 0x403af820, 0x088a: 0x403afa20, 0x088b: 0x403afc20,
-	0x088c: 0x403afe20, 0x088d: 0x403b0020, 0x088e: 0x403b0220, 0x088f: 0x403b0420,
-	0x0890: 0x403b0620, 0x0891: 0x403b0820, 0x0892: 0x403b0a20, 0x0893: 0x403b0c20,
-	0x0894: 0x403b0e20, 0x0895: 0x403b1020, 0x0896: 0x403b1220, 0x0897: 0x403b1420,
-	0x0898: 0x403b1620, 0x0899: 0xadc06002, 0x089a: 0xadc06002, 0x089b: 0xadc06002,
-	0x089e: 0x40056820,
-	// Block 0x23, offset 0x8c0
-	0x08e0: 0x40395020, 0x08e2: 0x40397020, 0x08e3: 0x4039ec20,
-	0x08e4: 0x403a0620, 0x08e5: 0x403a1820, 0x08e6: 0x403a4c20, 0x08e7: 0x403a5420,
-	0x08e8: 0x40393220, 0x08e9: 0x40393420, 0x08ea: 0x4039c420, 0x08eb: 0x403a8c20,
-	0x08ec: 0x40393620,
-	// Block 0x24, offset 0x900
-	0x0924: 0xae60af02, 0x0925: 0xae60b402, 0x0926: 0xadc0b802, 0x0927: 0xae60a402,
-	0x0928: 0xae60a802, 0x0929: 0xadc0ac02, 0x092a: 0xae600000, 0x092b: 0xae600000,
-	0x092c: 0xae600000, 0x092d: 0xadc00000, 0x092e: 0xadc00000, 0x092f: 0xadc00000,
-	0x0930: 0xa1b0a302, 0x0931: 0xa1c0a702, 0x0932: 0xa1d0ab02, 0x0933: 0xae600000,
-	0x0934: 0xae60b002, 0x0935: 0xae60b102, 0x0936: 0xadc0b902, 0x0937: 0xae60ca02,
-	0x0938: 0xae60cb02, 0x0939: 0xadc0cf02, 0x093a: 0xadc0d002, 0x093b: 0xae60cd02,
-	0x093c: 0xae60ce02, 0x093d: 0xae60cc02, 0x093e: 0xae60b502,
-	// Block 0x25, offset 0x940
-	0x0940: 0xa000f202, 0x0941: 0xa000f202, 0x0942: 0xa000f302, 0x0943: 0xa000f402,
-	0x0944: 0x403fbc20, 0x0945: 0x403fbe20, 0x0946: 0x403fc020, 0x0947: 0x403fcc20,
-	0x0948: 0x403fce20, 0x0949: 0x403fd020, 0x094a: 0x403fd220, 0x094b: 0x403fd420,
-	0x094c: 0x403fd820, 0x094d: 0x403fdc20, 0x094e: 0x403fde20, 0x094f: 0x403fe020,
-	0x0950: 0x403fe220, 0x0951: 0x403fe420, 0x0952: 0x403fe620, 0x0953: 0x403fe820,
-	0x0954: 0x403fea20, 0x0955: 0x403fec20, 0x0956: 0x403fee20, 0x0957: 0x403ff020,
-	0x0958: 0x403ff420, 0x0959: 0x403ff620, 0x095a: 0x403ff820, 0x095b: 0x403ffa20,
-	0x095c: 0x403ffc20, 0x095d: 0x40400220, 0x095e: 0x40400420, 0x095f: 0x40400620,
-	0x0960: 0x40400820, 0x0961: 0x40400a20, 0x0962: 0x40400e20, 0x0963: 0x40401020,
-	0x0964: 0x40401220, 0x0965: 0x40401420, 0x0966: 0x40401620, 0x0967: 0x40401820,
-	0x0968: 0x40401a20, 0x0969: 0xe0001830, 0x096a: 0x40401c20, 0x096b: 0x40401e20,
-	0x096c: 0x40402020, 0x096d: 0x40402420, 0x096e: 0x40402620, 0x096f: 0x40402820,
-	0x0970: 0x40402c20, 0x0971: 0xe0001839, 0x0972: 0x40402e20, 0x0973: 0x40403020,
-	0x0974: 0xe000183c, 0x0975: 0x40403220, 0x0976: 0x40403420, 0x0977: 0x40403620,
-	0x0978: 0x40403820, 0x0979: 0x40403a20, 0x097a: 0x40404c20, 0x097b: 0x40404e20,
-	0x097c: 0xa070f102, 0x097d: 0x40403c20, 0x097e: 0x40404a20, 0x097f: 0x40405620,
-	// Block 0x26, offset 0x980
-	0x0980: 0x40405820, 0x0981: 0x40405a20, 0x0982: 0x40405c20, 0x0983: 0x40405e20,
-	0x0984: 0x40406020, 0x0985: 0x40406620, 0x0986: 0x40406a20, 0x0987: 0x40406c20,
-	0x0988: 0x40407020, 0x0989: 0x40407220, 0x098a: 0x40407420, 0x098b: 0x40407620,
-	0x098c: 0x40407820, 0x098d: 0x8209203d, 0x098e: 0x40406e20, 0x098f: 0x40405020,
-	0x0990: 0x403fb820, 0x0991: 0xae600000, 0x0992: 0xadc00000, 0x0993: 0xae603502,
-	0x0994: 0xae603202, 0x0995: 0x40406820, 0x0996: 0x40405220, 0x0997: 0x40405420,
-	0x0998: 0xe000181e, 0x0999: 0xe0001821, 0x099a: 0xe0001824, 0x099b: 0xe0001827,
-	0x099c: 0xe000182a, 0x099d: 0xe000182d, 0x099e: 0xe0001833, 0x099f: 0xe0001836,
-	0x09a0: 0x403fd620, 0x09a1: 0x403fda20, 0x09a2: 0x40406220, 0x09a3: 0x40406420,
-	0x09a4: 0x40030c20, 0x09a5: 0x40030e20, 0x09a6: 0xe000016a, 0x09a7: 0xe00001f8,
-	0x09a8: 0xe0000313, 0x09a9: 0xe00003ed, 0x09aa: 0xe00004c8, 0x09ab: 0xe0000592,
-	0x09ac: 0xe000065d, 0x09ad: 0xe0000705, 0x09ae: 0xe00007b1, 0x09af: 0xe0000856,
-	0x09b0: 0x40056c20, 0x09b1: 0x4027b620, 0x09b2: 0x403fba20, 0x09b3: 0x403fc220,
-	0x09b4: 0x403fc420, 0x09b5: 0x403fc620, 0x09b6: 0x403fc820, 0x09b7: 0x403fca20,
-	0x09b9: 0x403ffe20, 0x09ba: 0x40402a20, 0x09bb: 0x403ff220,
-	0x09bc: 0x40400020, 0x09bd: 0x40403e20, 0x09be: 0x40400c20, 0x09bf: 0x40402220,
-	// Block 0x27, offset 0x9c0
-	0x09c1: 0xa000f202, 0x09c2: 0xa000f302, 0x09c3: 0xa000f402,
-	0x09c5: 0x40407c20, 0x09c6: 0x40407e20, 0x09c7: 0x40408020,
-	0x09c8: 0x40408220, 0x09c9: 0x40408420, 0x09ca: 0x40408620, 0x09cb: 0x40408820,
-	0x09cc: 0x40408c20, 0x09cf: 0x40409020,
-	0x09d0: 0x40409220, 0x09d3: 0x40409420,
-	0x09d4: 0x40409620, 0x09d5: 0x40409820, 0x09d6: 0x40409a20, 0x09d7: 0x40409c20,
-	0x09d8: 0x40409e20, 0x09d9: 0x4040a020, 0x09da: 0x4040a220, 0x09db: 0x4040a420,
-	0x09dc: 0x4040a620, 0x09dd: 0x4040a820, 0x09de: 0x4040aa20, 0x09df: 0x4040ac20,
-	0x09e0: 0x4040ae20, 0x09e1: 0x4040b020, 0x09e2: 0x4040b220, 0x09e3: 0x4040b420,
-	0x09e4: 0x4040b620, 0x09e5: 0x4040b820, 0x09e6: 0x4040ba20, 0x09e7: 0x4040bc20,
-	0x09e8: 0x4040be20, 0x09ea: 0x4040c020, 0x09eb: 0x4040c220,
-	0x09ec: 0x4040c420, 0x09ed: 0x4040c620, 0x09ee: 0x4040c820, 0x09ef: 0x4040ca20,
-	0x09f0: 0x4040cc20, 0x09f2: 0x4040d020,
-	0x09f6: 0x4040d420, 0x09f7: 0x4040d620,
-	0x09f8: 0x4040d820, 0x09f9: 0x4040da20,
-	0x09fc: 0xa070f102, 0x09fd: 0x4040dc20, 0x09fe: 0x4040de20, 0x09ff: 0x4040e020,
-	// Block 0x28, offset 0xa00
-	0x0a00: 0x4040e220, 0x0a01: 0x4040e420, 0x0a02: 0x4040e620, 0x0a03: 0x4040e820,
-	0x0a04: 0x4040ea20, 0x0a07: 0xc05a0191,
-	0x0a08: 0x4040f220, 0x0a0b: 0x4040f420,
-	0x0a0c: 0x4040f620, 0x0a0d: 0x8209207c, 0x0a0e: 0xe0001845,
-	0x0a17: 0x4040fa20,
-	0x0a1c: 0xe000183f, 0x0a1d: 0xe0001842, 0x0a1f: 0xe0001848,
-	0x0a20: 0x40408a20, 0x0a21: 0x40408e20, 0x0a22: 0x4040ec20, 0x0a23: 0x4040ee20,
-	0x0a26: 0xe000016d, 0x0a27: 0xe00001fb,
-	0x0a28: 0xe0000316, 0x0a29: 0xe00003f0, 0x0a2a: 0xe00004cb, 0x0a2b: 0xe0000595,
-	0x0a2c: 0xe0000660, 0x0a2d: 0xe0000708, 0x0a2e: 0xe00007b4, 0x0a2f: 0xe0000859,
-	0x0a30: 0x4040ce20, 0x0a31: 0x4040d220, 0x0a32: 0x4027e820, 0x0a33: 0x4027ea20,
-	0x0a34: 0x40283020, 0x0a35: 0x40283220, 0x0a36: 0x40283420, 0x0a37: 0x40283620,
-	0x0a38: 0x40283820, 0x0a39: 0x40283a20, 0x0a3a: 0x40073a20, 0x0a3b: 0x4027ec20,
-	// Block 0x29, offset 0xa40
-	0x0a41: 0xa000f202, 0x0a42: 0xa000f302, 0x0a43: 0xa000f402,
-	0x0a45: 0x40410620, 0x0a46: 0x40410820, 0x0a47: 0x40411020,
-	0x0a48: 0x40411220, 0x0a49: 0x40410020, 0x0a4a: 0x40410220,
-	0x0a4f: 0x40411420,
-	0x0a50: 0x40410a20, 0x0a53: 0x40410420,
-	0x0a54: 0x40410c20, 0x0a55: 0x40411c20, 0x0a56: 0x40411e20, 0x0a57: 0x40412020,
-	0x0a58: 0x40412220, 0x0a59: 0x40412420, 0x0a5a: 0x40412620, 0x0a5b: 0x40412820,
-	0x0a5c: 0x40412a20, 0x0a5d: 0x40412c20, 0x0a5e: 0x40412e20, 0x0a5f: 0x40413020,
-	0x0a60: 0x40413220, 0x0a61: 0x40413420, 0x0a62: 0x40413620, 0x0a63: 0x40413820,
-	0x0a64: 0x40413a20, 0x0a65: 0x40413c20, 0x0a66: 0x40413e20, 0x0a67: 0x40414020,
-	0x0a68: 0x40414220, 0x0a6a: 0x40414420, 0x0a6b: 0x40414620,
-	0x0a6c: 0x40414820, 0x0a6d: 0x40414a20, 0x0a6e: 0x40414c20, 0x0a6f: 0x40414e20,
-	0x0a70: 0x40415220, 0x0a72: 0x40415420, 0x0a73: 0xe000185a,
-	0x0a75: 0x40415620, 0x0a76: 0xe000184b,
-	0x0a78: 0x40411620, 0x0a79: 0x40411820,
-	0x0a7c: 0xa070f102, 0x0a7e: 0x40415a20, 0x0a7f: 0x40415c20,
-	// Block 0x2a, offset 0xa80
-	0x0a80: 0x40415e20, 0x0a81: 0x40416020, 0x0a82: 0x40416220,
-	0x0a87: 0x40416420,
-	0x0a88: 0x40416620, 0x0a8b: 0x40416820,
-	0x0a8c: 0x40416a20, 0x0a8d: 0x820920b6,
-	0x0a91: 0x40411a20,
-	0x0a99: 0xe000184e, 0x0a9a: 0xe0001851, 0x0a9b: 0xe0001854,
-	0x0a9c: 0x40415820, 0x0a9e: 0xe0001857,
-	0x0aa6: 0xe0000170, 0x0aa7: 0xe00001fe,
-	0x0aa8: 0xe0000319, 0x0aa9: 0xe00003f3, 0x0aaa: 0xe00004ce, 0x0aab: 0xe0000598,
-	0x0aac: 0xe0000663, 0x0aad: 0xe000070b, 0x0aae: 0xe00007b7, 0x0aaf: 0xe000085c,
-	0x0ab0: 0xa000f502, 0x0ab1: 0xa000f602, 0x0ab2: 0x40410e20, 0x0ab3: 0x4040fe20,
-	0x0ab4: 0x4040fc20, 0x0ab5: 0x40415020,
-	// Block 0x2b, offset 0xac0
-	0x0ac1: 0xa000f202, 0x0ac2: 0xa000f302, 0x0ac3: 0xa000f402,
-	0x0ac5: 0x40417020, 0x0ac6: 0x40417220, 0x0ac7: 0x40417420,
-	0x0ac8: 0x40417620, 0x0ac9: 0x40417820, 0x0aca: 0x40417a20, 0x0acb: 0x40417c20,
-	0x0acc: 0x40418020, 0x0acd: 0x40418420, 0x0acf: 0x40418620,
-	0x0ad0: 0x40418820, 0x0ad1: 0x40418a20, 0x0ad3: 0x40418c20,
-	0x0ad4: 0x40418e20, 0x0ad5: 0x40419020, 0x0ad6: 0x40419220, 0x0ad7: 0x40419420,
-	0x0ad8: 0x40419620, 0x0ad9: 0x40419820, 0x0ada: 0x40419a20, 0x0adb: 0x40419c20,
-	0x0adc: 0x40419e20, 0x0add: 0x4041a020, 0x0ade: 0x4041a220, 0x0adf: 0x4041a420,
-	0x0ae0: 0x4041a620, 0x0ae1: 0x4041a820, 0x0ae2: 0x4041aa20, 0x0ae3: 0x4041ac20,
-	0x0ae4: 0x4041ae20, 0x0ae5: 0x4041b020, 0x0ae6: 0x4041b220, 0x0ae7: 0x4041b420,
-	0x0ae8: 0x4041b620, 0x0aea: 0x4041b820, 0x0aeb: 0x4041ba20,
-	0x0aec: 0x4041bc20, 0x0aed: 0x4041be20, 0x0aee: 0x4041c020, 0x0aef: 0x4041c220,
-	0x0af0: 0x4041c420, 0x0af2: 0x4041c620, 0x0af3: 0x4041d220,
-	0x0af5: 0x4041c820, 0x0af6: 0x4041ca20, 0x0af7: 0x4041cc20,
-	0x0af8: 0x4041ce20, 0x0af9: 0x4041d020,
-	0x0afc: 0xa070f102, 0x0afd: 0x4041d420, 0x0afe: 0x4041d620, 0x0aff: 0x4041d820,
-	// Block 0x2c, offset 0xb00
-	0x0b00: 0x4041da20, 0x0b01: 0x4041dc20, 0x0b02: 0x4041de20, 0x0b03: 0x4041e020,
-	0x0b04: 0x4041e220, 0x0b05: 0x4041e820, 0x0b07: 0x4041ea20,
-	0x0b08: 0x4041ec20, 0x0b09: 0x4041ee20, 0x0b0b: 0x4041f020,
-	0x0b0c: 0x4041f220, 0x0b0d: 0x820920fa,
-	0x0b10: 0x40416e20,
-	0x0b20: 0x40417e20, 0x0b21: 0x40418220, 0x0b22: 0x4041e420, 0x0b23: 0x4041e620,
-	0x0b26: 0xe0000173, 0x0b27: 0xe0000201,
-	0x0b28: 0xe000031c, 0x0b29: 0xe00003f6, 0x0b2a: 0xe00004d1, 0x0b2b: 0xe000059b,
-	0x0b2c: 0xe0000666, 0x0b2d: 0xe000070e, 0x0b2e: 0xe00007ba, 0x0b2f: 0xe000085f,
-	0x0b30: 0x40057420, 0x0b31: 0x4027ee20,
-	// Block 0x2d, offset 0xb40
-	0x0b41: 0xa000f202, 0x0b42: 0xa000f302, 0x0b43: 0xa000f402,
-	0x0b45: 0x4041f620, 0x0b46: 0x4041f820, 0x0b47: 0x4041fa20,
-	0x0b48: 0x4041fc20, 0x0b49: 0x4041fe20, 0x0b4a: 0x40420020, 0x0b4b: 0x40420220,
-	0x0b4c: 0x40420620, 0x0b4f: 0x40420a20,
-	0x0b50: 0x40420c20, 0x0b53: 0x40420e20,
-	0x0b54: 0x40421020, 0x0b55: 0x40421220, 0x0b56: 0x40421420, 0x0b57: 0x40421620,
-	0x0b58: 0x40421820, 0x0b59: 0x40421a20, 0x0b5a: 0x40421c20, 0x0b5b: 0x40421e20,
-	0x0b5c: 0x40422020, 0x0b5d: 0x40422220, 0x0b5e: 0x40422420, 0x0b5f: 0x40422620,
-	0x0b60: 0x40422820, 0x0b61: 0x40422a20, 0x0b62: 0x40422c20, 0x0b63: 0x40422e20,
-	0x0b64: 0x40423020, 0x0b65: 0x40423220, 0x0b66: 0x40423420, 0x0b67: 0x40423620,
-	0x0b68: 0x40423820, 0x0b6a: 0x40423a20, 0x0b6b: 0x40423c20,
-	0x0b6c: 0x40423e20, 0x0b6d: 0x40424020, 0x0b6e: 0x40424220, 0x0b6f: 0x40424420,
-	0x0b70: 0x40424820, 0x0b72: 0x40424a20, 0x0b73: 0x40424c20,
-	0x0b75: 0x40424e20, 0x0b76: 0x40425220, 0x0b77: 0x40425420,
-	0x0b78: 0x40425620, 0x0b79: 0x40425820,
-	0x0b7c: 0xa070f102, 0x0b7d: 0x40425a20, 0x0b7e: 0x40425c20, 0x0b7f: 0x40425e20,
-	// Block 0x2e, offset 0xb80
-	0x0b80: 0x40426020, 0x0b81: 0x40426220, 0x0b82: 0x40426420, 0x0b83: 0x40426620,
-	0x0b84: 0x40426820, 0x0b87: 0xc05d01e1,
-	0x0b88: 0x40427020, 0x0b8b: 0x40427220,
-	0x0b8c: 0x40427420, 0x0b8d: 0x8209213b,
-	0x0b96: 0x40427820, 0x0b97: 0x40427a20,
-	0x0b9c: 0xe000185d, 0x0b9d: 0xe0001860, 0x0b9f: 0x40424620,
-	0x0ba0: 0x40420420, 0x0ba1: 0x40420820, 0x0ba2: 0x40426a20, 0x0ba3: 0x40426c20,
-	0x0ba6: 0xe0000176, 0x0ba7: 0xe0000204,
-	0x0ba8: 0xe000031f, 0x0ba9: 0xe00003f9, 0x0baa: 0xe00004d4, 0x0bab: 0xe000059e,
-	0x0bac: 0xe0000669, 0x0bad: 0xe0000711, 0x0bae: 0xe00007bd, 0x0baf: 0xe0000862,
-	0x0bb0: 0x40073c20, 0x0bb1: 0x40425020, 0x0bb2: 0x40283c20, 0x0bb3: 0x40283e20,
-	0x0bb4: 0x40284020, 0x0bb5: 0x40284220, 0x0bb6: 0x40284420, 0x0bb7: 0x40284620,
-	// Block 0x2f, offset 0xbc0
-	0x0bc2: 0xa000f302, 0x0bc3: 0x40429620,
-	0x0bc5: 0x40427e20, 0x0bc6: 0x40428020, 0x0bc7: 0x40428220,
-	0x0bc8: 0x40428420, 0x0bc9: 0x40428620, 0x0bca: 0x40428820,
-	0x0bce: 0x40428a20, 0x0bcf: 0x40428c20,
-	0x0bd0: 0x40428e20, 0x0bd2: 0xc0610231, 0x0bd3: 0x40429220,
-	0x0bd4: 0x40429420, 0x0bd5: 0x40429820,
-	0x0bd9: 0x40429a20, 0x0bda: 0x40429c20,
-	0x0bdc: 0x4042bc20, 0x0bde: 0x40429e20, 0x0bdf: 0x4042a020,
-	0x0be3: 0x4042a220,
-	0x0be4: 0x4042a420,
-	0x0be8: 0x4042a620, 0x0be9: 0x4042ba20, 0x0bea: 0x4042a820,
-	0x0bee: 0x4042aa20, 0x0bef: 0x4042ac20,
-	0x0bf0: 0x4042ae20, 0x0bf1: 0x4042b820, 0x0bf2: 0x4042b020, 0x0bf3: 0x4042b620,
-	0x0bf4: 0x4042b420, 0x0bf5: 0x4042b220, 0x0bf6: 0x4042be20, 0x0bf7: 0x4042c020,
-	0x0bf8: 0x4042c220, 0x0bf9: 0x4042c420,
-	0x0bfe: 0x4042c620, 0x0bff: 0x4042c820,
-	// Block 0x30, offset 0xc00
-	0x0c00: 0x4042ca20, 0x0c01: 0x4042cc20, 0x0c02: 0x4042ce20,
-	0x0c06: 0xc0630261, 0x0c07: 0xc06602b1,
-	0x0c08: 0x4042d420, 0x0c0a: 0x4042d620, 0x0c0b: 0x4042d820,
-	0x0c0c: 0x4042da20, 0x0c0d: 0x8209216e,
-	0x0c10: 0x40427c20,
-	0x0c17: 0x4042de20,
-	0x0c26: 0xe0000179, 0x0c27: 0xe0000207,
-	0x0c28: 0xe0000322, 0x0c29: 0xe00003fc, 0x0c2a: 0xe00004d7, 0x0c2b: 0xe00005a1,
-	0x0c2c: 0xe000066c, 0x0c2d: 0xe0000714, 0x0c2e: 0xe00007c0, 0x0c2f: 0xe0000865,
-	0x0c30: 0x40285420, 0x0c31: 0x40285620, 0x0c32: 0x40285820, 0x0c33: 0x40073e20,
-	0x0c34: 0x40074020, 0x0c35: 0x40074220, 0x0c36: 0x40074420, 0x0c37: 0x40074620,
-	0x0c38: 0x40074820, 0x0c39: 0x4027f220, 0x0c3a: 0x40074a20,
-	// Block 0x31, offset 0xc40
-	0x0c41: 0xa000f202, 0x0c42: 0xa000f302, 0x0c43: 0xa000f402,
-	0x0c45: 0x4042e020, 0x0c46: 0x4042e220, 0x0c47: 0x4042e420,
-	0x0c48: 0x4042e620, 0x0c49: 0x4042e820, 0x0c4a: 0x4042ea20, 0x0c4b: 0x4042ec20,
-	0x0c4c: 0x4042f020, 0x0c4e: 0x4042f420, 0x0c4f: 0x4042f620,
-	0x0c50: 0x4042f820, 0x0c52: 0x4042fa20, 0x0c53: 0x4042fc20,
-	0x0c54: 0x4042fe20, 0x0c55: 0x40430020, 0x0c56: 0x40430220, 0x0c57: 0x40430420,
-	0x0c58: 0x40430620, 0x0c59: 0x40430820, 0x0c5a: 0x40430a20, 0x0c5b: 0x40430e20,
-	0x0c5c: 0x40431020, 0x0c5d: 0x40431420, 0x0c5e: 0x40431620, 0x0c5f: 0x40431820,
-	0x0c60: 0x40431a20, 0x0c61: 0x40431c20, 0x0c62: 0x40431e20, 0x0c63: 0x40432020,
-	0x0c64: 0x40432220, 0x0c65: 0x40432420, 0x0c66: 0x40432620, 0x0c67: 0x40432820,
-	0x0c68: 0x40432a20, 0x0c6a: 0x40432c20, 0x0c6b: 0x40432e20,
-	0x0c6c: 0x40433020, 0x0c6d: 0x40433220, 0x0c6e: 0x40433420, 0x0c6f: 0x40433620,
-	0x0c70: 0x40433820, 0x0c71: 0x40433a20, 0x0c72: 0x40433c20, 0x0c73: 0x40434820,
-	0x0c75: 0x40433e20, 0x0c76: 0x40434020, 0x0c77: 0x40434220,
-	0x0c78: 0x40434420, 0x0c79: 0x40434620,
-	0x0c7d: 0x40434a20, 0x0c7e: 0x40434c20, 0x0c7f: 0x40434e20,
-	// Block 0x32, offset 0xc80
-	0x0c80: 0x40435020, 0x0c81: 0x40435220, 0x0c82: 0x40435420, 0x0c83: 0x40435620,
-	0x0c84: 0x40435820, 0x0c86: 0xc06802e1, 0x0c87: 0x40436020,
-	0x0c88: 0x40436220, 0x0c8a: 0x40436420, 0x0c8b: 0x40436620,
-	0x0c8c: 0x40436820, 0x0c8d: 0x820921b5,
-	0x0c95: 0x825421b6, 0x0c96: 0x825b21b7,
-	0x0c98: 0x40430c20, 0x0c99: 0x40431220,
-	0x0ca0: 0x4042ee20, 0x0ca1: 0x4042f220, 0x0ca2: 0x40435a20, 0x0ca3: 0x40435c20,
-	0x0ca6: 0xe000017c, 0x0ca7: 0xe000020a,
-	0x0ca8: 0xe0000325, 0x0ca9: 0xe00003ff, 0x0caa: 0xe00004da, 0x0cab: 0xe00005a4,
-	0x0cac: 0xe000066f, 0x0cad: 0xe0000717, 0x0cae: 0xe00007c3, 0x0caf: 0xe0000868,
-	0x0cb8: 0xe000017f, 0x0cb9: 0xe000020d, 0x0cba: 0xe0000328, 0x0cbb: 0xe0000402,
-	0x0cbc: 0xe0000210, 0x0cbd: 0xe000032b, 0x0cbe: 0xe0000405, 0x0cbf: 0x40074c20,
-	// Block 0x33, offset 0xcc0
-	0x0cc2: 0xa000f302, 0x0cc3: 0xa000f402,
-	0x0cc5: 0x40437020, 0x0cc6: 0x40437220, 0x0cc7: 0x40437420,
-	0x0cc8: 0x40437620, 0x0cc9: 0x40437820, 0x0cca: 0x40437a20, 0x0ccb: 0x40437c20,
-	0x0ccc: 0x40438020, 0x0cce: 0x40438420, 0x0ccf: 0x40438620,
-	0x0cd0: 0x40438820, 0x0cd2: 0x40438a20, 0x0cd3: 0x40438c20,
-	0x0cd4: 0x40438e20, 0x0cd5: 0x40439020, 0x0cd6: 0x40439220, 0x0cd7: 0x40439420,
-	0x0cd8: 0x40439620, 0x0cd9: 0x40439820, 0x0cda: 0x40439a20, 0x0cdb: 0x40439c20,
-	0x0cdc: 0x40439e20, 0x0cdd: 0x4043a020, 0x0cde: 0x4043a220, 0x0cdf: 0x4043a420,
-	0x0ce0: 0x4043a620, 0x0ce1: 0x4043a820, 0x0ce2: 0x4043aa20, 0x0ce3: 0x4043ac20,
-	0x0ce4: 0x4043ae20, 0x0ce5: 0x4043b020, 0x0ce6: 0x4043b220, 0x0ce7: 0x4043b420,
-	0x0ce8: 0x4043b620, 0x0cea: 0x4043b820, 0x0ceb: 0x4043ba20,
-	0x0cec: 0x4043bc20, 0x0ced: 0x4043be20, 0x0cee: 0x4043c020, 0x0cef: 0x4043c220,
-	0x0cf0: 0x4043c420, 0x0cf1: 0x4043c620, 0x0cf2: 0x4043c820, 0x0cf3: 0x4043d420,
-	0x0cf5: 0x4043ca20, 0x0cf6: 0x4043cc20, 0x0cf7: 0x4043ce20,
-	0x0cf8: 0x4043d020, 0x0cf9: 0x4043d220,
-	0x0cfc: 0xa070f102, 0x0cfd: 0x4043d820, 0x0cfe: 0x4043de20, 0x0cff: 0xc06a0311,
-	// Block 0x34, offset 0xd00
-	0x0d00: 0x4043e220, 0x0d01: 0x4043e420, 0x0d02: 0x4043e620, 0x0d03: 0x4043e820,
-	0x0d04: 0x4043ea20, 0x0d06: 0xc06c0341, 0x0d07: 0x4043f220,
-	0x0d08: 0x4043f420, 0x0d0a: 0xc0710311, 0x0d0b: 0x4043f820,
-	0x0d0c: 0x4043fa20, 0x0d0d: 0x820921fe,
-	0x0d15: 0x4043fe20, 0x0d16: 0x40440020,
-	0x0d1e: 0x4043d620,
-	0x0d20: 0x40437e20, 0x0d21: 0x40438220, 0x0d22: 0x4043ec20, 0x0d23: 0x4043ee20,
-	0x0d26: 0xe0000182, 0x0d27: 0xe0000213,
-	0x0d28: 0xe000032e, 0x0d29: 0xe0000408, 0x0d2a: 0xe00004dd, 0x0d2b: 0xe00005a7,
-	0x0d2c: 0xe0000672, 0x0d2d: 0xe000071a, 0x0d2e: 0xe00007c6, 0x0d2f: 0xe000086b,
-	0x0d31: 0x4043da20, 0x0d32: 0x4043dc20,
-	// Block 0x35, offset 0xd40
-	0x0d42: 0xa000f302, 0x0d43: 0xa000f402,
-	0x0d45: 0x40440220, 0x0d46: 0x40440420, 0x0d47: 0x40440620,
-	0x0d48: 0x40440820, 0x0d49: 0x40440a20, 0x0d4a: 0x40440c20, 0x0d4b: 0x40440e20,
-	0x0d4c: 0x40441220, 0x0d4e: 0x40441620, 0x0d4f: 0x40441820,
-	0x0d50: 0x40441a20, 0x0d52: 0x40441c20, 0x0d53: 0x40441e20,
-	0x0d54: 0x40442020, 0x0d55: 0x40442220, 0x0d56: 0x40442420, 0x0d57: 0x40442620,
-	0x0d58: 0x40442820, 0x0d59: 0x40442a20, 0x0d5a: 0x40442c20, 0x0d5b: 0x40442e20,
-	0x0d5c: 0x40443020, 0x0d5d: 0x40443220, 0x0d5e: 0x40443420, 0x0d5f: 0x40443620,
-	0x0d60: 0x40443820, 0x0d61: 0x40443a20, 0x0d62: 0x40443c20, 0x0d63: 0x40443e20,
-	0x0d64: 0x40444020, 0x0d65: 0x40444220, 0x0d66: 0x40444420, 0x0d67: 0x40444620,
-	0x0d68: 0x40444820, 0x0d69: 0x40444a20, 0x0d6a: 0x40444c20, 0x0d6b: 0x40444e20,
-	0x0d6c: 0x40445020, 0x0d6d: 0x40445220, 0x0d6e: 0x40445420, 0x0d6f: 0x40445620,
-	0x0d70: 0x40445820, 0x0d71: 0x40446a20, 0x0d72: 0x40445a20, 0x0d73: 0x40446620,
-	0x0d74: 0x40446820, 0x0d75: 0x40445c20, 0x0d76: 0x40445e20, 0x0d77: 0x40446020,
-	0x0d78: 0x40446220, 0x0d79: 0x40446420, 0x0d7a: 0x40446c20,
-	0x0d7d: 0x40446e20, 0x0d7e: 0x40447020, 0x0d7f: 0x40447220,
-	// Block 0x36, offset 0xd80
-	0x0d80: 0x40447420, 0x0d81: 0x40447620, 0x0d82: 0x40447820, 0x0d83: 0x40447a20,
-	0x0d84: 0x40447c20, 0x0d86: 0xc07303b1, 0x0d87: 0xc0760401,
-	0x0d88: 0x40448620, 0x0d8a: 0x40448820, 0x0d8b: 0x40448a20,
-	0x0d8c: 0x40448c20, 0x0d8d: 0x82092248, 0x0d8e: 0xe000186c,
-	0x0d97: 0x40448e20,
-	0x0da0: 0x40441020, 0x0da1: 0x40441420, 0x0da2: 0x40447e20, 0x0da3: 0x40448020,
-	0x0da6: 0xe0000185, 0x0da7: 0xe0000216,
-	0x0da8: 0xe0000331, 0x0da9: 0xe000040b, 0x0daa: 0xe00004e0, 0x0dab: 0xe00005aa,
-	0x0dac: 0xe0000675, 0x0dad: 0xe000071d, 0x0dae: 0xe00007c9, 0x0daf: 0xe000086e,
-	0x0db0: 0x40285a20, 0x0db1: 0x40285c20, 0x0db2: 0x40285e20, 0x0db3: 0x40286020,
-	0x0db4: 0x40286220, 0x0db5: 0x40286420,
-	0x0db9: 0x40074e20, 0x0dba: 0xe0001866, 0x0dbb: 0xe0001869,
-	0x0dbc: 0xe000186f, 0x0dbd: 0xe0001872, 0x0dbe: 0xe0001875, 0x0dbf: 0xe0001863,
-	// Block 0x37, offset 0xdc0
-	0x0dc2: 0xa000f302, 0x0dc3: 0xa000f402,
-	0x0dc5: 0x40449220, 0x0dc6: 0x40449420, 0x0dc7: 0x40449620,
-	0x0dc8: 0x40449820, 0x0dc9: 0x40449a20, 0x0dca: 0x40449c20, 0x0dcb: 0x40449e20,
-	0x0dcc: 0x4044a020, 0x0dcd: 0x4044a220, 0x0dce: 0x4044a420, 0x0dcf: 0x4044a620,
-	0x0dd0: 0x4044a820, 0x0dd1: 0x4044aa20, 0x0dd2: 0x4044ac20, 0x0dd3: 0x4044ae20,
-	0x0dd4: 0x4044b020, 0x0dd5: 0x4044b220, 0x0dd6: 0x4044b420,
-	0x0dda: 0x4044b620, 0x0ddb: 0x4044b820,
-	0x0ddc: 0x4044ba20, 0x0ddd: 0x4044bc20, 0x0dde: 0x4044be20, 0x0ddf: 0x4044c020,
-	0x0de0: 0x4044c220, 0x0de1: 0x4044c420, 0x0de2: 0x4044c620, 0x0de3: 0x4044c820,
-	0x0de4: 0x4044ca20, 0x0de5: 0x4044cc20, 0x0de6: 0x4044ce20, 0x0de7: 0x4044d020,
-	0x0de8: 0x4044d220, 0x0de9: 0x4044d420, 0x0dea: 0x4044d620, 0x0deb: 0x4044d820,
-	0x0dec: 0x4044da20, 0x0ded: 0x4044dc20, 0x0dee: 0x4044de20, 0x0def: 0x4044e020,
-	0x0df0: 0x4044e220, 0x0df1: 0x4044e420, 0x0df3: 0x4044e620,
-	0x0df4: 0x4044e820, 0x0df5: 0x4044ea20, 0x0df6: 0x4044ec20, 0x0df7: 0x4044ee20,
-	0x0df8: 0x4044f020, 0x0df9: 0x4044f220, 0x0dfa: 0x4044f420, 0x0dfb: 0x4044f620,
-	0x0dfd: 0x4044f820,
-	// Block 0x38, offset 0xe00
-	0x0e00: 0x4044fa20, 0x0e01: 0x4044fc20, 0x0e02: 0x4044fe20, 0x0e03: 0x40450020,
-	0x0e04: 0x40450220, 0x0e05: 0x40450420, 0x0e06: 0x40450620,
-	0x0e0a: 0x82092295,
-	0x0e0f: 0x40450820,
-	0x0e10: 0x40450a20, 0x0e11: 0x40450c20, 0x0e12: 0x40450e20, 0x0e13: 0x40451020,
-	0x0e14: 0x40451220, 0x0e16: 0x40451420,
-	0x0e18: 0x40451620, 0x0e19: 0xc0780431, 0x0e1a: 0x40452020, 0x0e1b: 0x40452220,
-	0x0e1c: 0xc07d04b1, 0x0e1d: 0x40452620, 0x0e1e: 0x40452820, 0x0e1f: 0x40451a20,
-	0x0e32: 0x40451820, 0x0e33: 0x40451c20,
-	0x0e34: 0x40057620,
-	// Block 0x39, offset 0xe40
-	0x0e41: 0x40491020, 0x0e42: 0x40491220, 0x0e43: 0x40491420,
-	0x0e44: 0x40491620, 0x0e45: 0x40491820, 0x0e46: 0x40491a20, 0x0e47: 0x40491c20,
-	0x0e48: 0x40491e20, 0x0e49: 0x40492020, 0x0e4a: 0x40492220, 0x0e4b: 0x40492420,
-	0x0e4c: 0x40492620, 0x0e4d: 0x40492820, 0x0e4e: 0x40492a20, 0x0e4f: 0x40492c20,
-	0x0e50: 0x40492e20, 0x0e51: 0x40493020, 0x0e52: 0x40493220, 0x0e53: 0x40493420,
-	0x0e54: 0x40493620, 0x0e55: 0x40493820, 0x0e56: 0x40493a20, 0x0e57: 0x40493c20,
-	0x0e58: 0x40493e20, 0x0e59: 0x40494020, 0x0e5a: 0x40494220, 0x0e5b: 0x40494420,
-	0x0e5c: 0x40494620, 0x0e5d: 0x40494820, 0x0e5e: 0x40494a20, 0x0e5f: 0x40494c20,
-	0x0e60: 0x40494e20, 0x0e61: 0x40495020, 0x0e62: 0x40495220, 0x0e63: 0x40495420,
-	0x0e64: 0x40495620, 0x0e65: 0x40495820, 0x0e66: 0x40495a20, 0x0e67: 0x40495c20,
-	0x0e68: 0x40495e20, 0x0e69: 0x40496020, 0x0e6a: 0x40496220, 0x0e6b: 0x40496420,
-	0x0e6c: 0x40496620, 0x0e6d: 0x40496820, 0x0e6e: 0x40496a20, 0x0e6f: 0x40496c20,
-	0x0e70: 0x40496e20, 0x0e71: 0x40497020, 0x0e72: 0x40497220, 0x0e73: 0x40497420,
-	0x0e74: 0x40497620, 0x0e75: 0x40497820, 0x0e76: 0x40497a20, 0x0e77: 0x40497c20,
-	0x0e78: 0x826724bf, 0x0e79: 0x826724c0, 0x0e7a: 0x820924c1,
-	0x0e7f: 0x4027f420,
-	// Block 0x3a, offset 0xe80
-	0x0e80: 0xc07f04e1, 0x0e81: 0xc0ae04e1, 0x0e82: 0xc0dd04e1, 0x0e83: 0xc10c04e1,
-	0x0e84: 0xc13b04e1, 0x0e85: 0x40498e20, 0x0e86: 0x4027b820, 0x0e87: 0xa000ff02,
-	0x0e88: 0xa6b10002, 0x0e89: 0xa6b10102, 0x0e8a: 0xa6b10202, 0x0e8b: 0xa6b10302,
-	0x0e8c: 0xa0010402, 0x0e8d: 0xc16a0511, 0x0e8e: 0xa000fe02, 0x0e8f: 0x40057820,
-	0x0e90: 0xe000019a, 0x0e91: 0xe000022e, 0x0e92: 0xe0000346, 0x0e93: 0xe0000420,
-	0x0e94: 0xe00004f5, 0x0e95: 0xe00005bf, 0x0e96: 0xe000068a, 0x0e97: 0xe0000732,
-	0x0e98: 0xe00007de, 0x0e99: 0xe0000883, 0x0e9a: 0x40057a20, 0x0e9b: 0x40057c20,
-	// Block 0x3b, offset 0xec0
-	0x0ec1: 0x40499220, 0x0ec2: 0x40499420,
-	0x0ec4: 0x40499620, 0x0ec7: 0x40499820,
-	0x0ec8: 0x40499a20, 0x0eca: 0x40499e20,
-	0x0ecd: 0x4049a220,
-	0x0ed4: 0x4049a420, 0x0ed5: 0x4049a620, 0x0ed6: 0x4049a820, 0x0ed7: 0x4049aa20,
-	0x0ed9: 0x4049ac20, 0x0eda: 0x4049ae20, 0x0edb: 0x4049b020,
-	0x0edc: 0x4049b220, 0x0edd: 0x4049b420, 0x0ede: 0x4049b620, 0x0edf: 0x4049b820,
-	0x0ee1: 0x4049ba20, 0x0ee2: 0x4049bc20, 0x0ee3: 0x4049be20,
-	0x0ee5: 0x4049c020, 0x0ee7: 0x4049c220,
-	0x0eea: 0x40499c20, 0x0eeb: 0x4049c420,
-	0x0eed: 0x4049c620, 0x0eee: 0x4049c820, 0x0eef: 0x4049ca20,
-	0x0ef0: 0x4049cc20, 0x0ef1: 0x4049ce20, 0x0ef2: 0x4049d020, 0x0ef3: 0x4049d220,
-	0x0ef4: 0x4049d420, 0x0ef5: 0x4049d620, 0x0ef6: 0x4049d820, 0x0ef7: 0x4049da20,
-	0x0ef8: 0x827624ee, 0x0ef9: 0x827624ef, 0x0efb: 0x4049e020,
-	0x0efc: 0x4049e220, 0x0efd: 0x4049e420,
-	// Block 0x3c, offset 0xf00
-	0x0f00: 0xc16c0541, 0x0f01: 0xc18c0541, 0x0f02: 0xc1ac0541, 0x0f03: 0xc1cc0541,
-	0x0f04: 0xc1ec0541, 0x0f06: 0x4027ba20,
-	0x0f08: 0xa7a10602, 0x0f09: 0xa7a10702, 0x0f0a: 0xa7a10802, 0x0f0b: 0xa7a10902,
-	0x0f0c: 0xa0010a02, 0x0f0d: 0xc20c0641,
-	0x0f10: 0xe000019d, 0x0f11: 0xe0000231, 0x0f12: 0xe0000349, 0x0f13: 0xe0000423,
-	0x0f14: 0xe00004f8, 0x0f15: 0xe00005c2, 0x0f16: 0xe000068d, 0x0f17: 0xe0000735,
-	0x0f18: 0xe00007e1, 0x0f19: 0xe0000886,
-	0x0f1c: 0xf0000404, 0x0f1d: 0xf0000404, 0x0f1e: 0x40499020, 0x0f1f: 0x4049a020,
-	// Block 0x3d, offset 0xf40
-	0x0f40: 0xe000201a, 0x0f41: 0x40075e20, 0x0f42: 0x40076020, 0x0f43: 0x40076220,
-	0x0f44: 0x40058220, 0x0f45: 0x40058420, 0x0f46: 0x40058620, 0x0f47: 0x40058820,
-	0x0f48: 0x40058a20, 0x0f49: 0x40058c20, 0x0f4a: 0x40058e20, 0x0f4b: 0x40059420,
-	0x0f4c: 0x0005949b, 0x0f4d: 0x40059620, 0x0f4e: 0x40059820, 0x0f4f: 0x40059a20,
-	0x0f50: 0x40059c20, 0x0f51: 0x40059e20, 0x0f52: 0x4005a020, 0x0f53: 0x40076420,
-	0x0f54: 0x4002aa20, 0x0f55: 0x40076620, 0x0f56: 0x40076820, 0x0f57: 0x40076a20,
-	0x0f58: 0xadc00000, 0x0f59: 0xadc00000, 0x0f5a: 0x40076c20, 0x0f5b: 0x40076e20,
-	0x0f5c: 0x40077020, 0x0f5d: 0x40077220, 0x0f5e: 0x40077420, 0x0f5f: 0x40077620,
-	0x0f60: 0xe00001a0, 0x0f61: 0xe0000234, 0x0f62: 0xe000034c, 0x0f63: 0xe0000426,
-	0x0f64: 0xe00004fb, 0x0f65: 0xe00005c5, 0x0f66: 0xe0000690, 0x0f67: 0xe0000738,
-	0x0f68: 0xe00007e4, 0x0f69: 0xe0000889, 0x0f6a: 0xe0000237, 0x0f6b: 0xe000034f,
-	0x0f6c: 0xe0000429, 0x0f6d: 0xe00004fe, 0x0f6e: 0xe00005c8, 0x0f6f: 0xe0000693,
-	0x0f70: 0xe000073b, 0x0f71: 0xe00007e7, 0x0f72: 0xe000088c, 0x0f73: 0xe00001a3,
-	0x0f74: 0x40077820, 0x0f75: 0xadc00000, 0x0f76: 0x40077a20, 0x0f77: 0xadc00000,
-	0x0f78: 0x40077c20, 0x0f79: 0xad810e02, 0x0f7a: 0x40040020, 0x0f7b: 0x40040220,
-	0x0f7c: 0x40040420, 0x0f7d: 0x40040620, 0x0f7e: 0xa0000000, 0x0f7f: 0xa0000000,
-	// Block 0x3e, offset 0xf80
-	0x0f80: 0x404a7620, 0x0f81: 0x404a7c20, 0x0f82: 0x404a8020, 0x0f83: 0xe0001fe4,
-	0x0f84: 0x404a8420, 0x0f85: 0x404a8820, 0x0f86: 0x404a8c20, 0x0f87: 0x404a9020,
-	0x0f89: 0x404a9420, 0x0f8a: 0x404a9820, 0x0f8b: 0x404a9c20,
-	0x0f8c: 0x404aa020, 0x0f8d: 0xe0001fea, 0x0f8e: 0x404aa420, 0x0f8f: 0x404aa820,
-	0x0f90: 0x404aac20, 0x0f91: 0x404ab020, 0x0f92: 0xe0001ff0, 0x0f93: 0x404ab420,
-	0x0f94: 0x404ab820, 0x0f95: 0x404abc20, 0x0f96: 0x404ac020, 0x0f97: 0xe0001ff6,
-	0x0f98: 0x404ac420, 0x0f99: 0x404ac820, 0x0f9a: 0x404acc20, 0x0f9b: 0x404ad020,
-	0x0f9c: 0xe0001ffc, 0x0f9d: 0x404ad420, 0x0f9e: 0x404ad820, 0x0f9f: 0x404adc20,
-	0x0fa0: 0x404ae020, 0x0fa1: 0x404ae420, 0x0fa2: 0x404ae820, 0x0fa3: 0x404aee20,
-	0x0fa4: 0x404af220, 0x0fa5: 0x404af620, 0x0fa6: 0x404afa20, 0x0fa7: 0x404afe20,
-	0x0fa8: 0x404b0220, 0x0fa9: 0xe0001fde, 0x0faa: 0xe0002008, 0x0fab: 0x404a7a20,
-	0x0fac: 0x404aec20,
-	0x0fb1: 0xc30f0751, 0x0fb2: 0x8282258c, 0x0fb3: 0x8281258d,
-	0x0fb4: 0x82842590, 0x0fb5: 0x82812591, 0x0fb6: 0x404b2420, 0x0fb7: 0x404b2620,
-	0x0fb8: 0x404b2820, 0x0fb9: 0x404b2a20, 0x0fba: 0x82822596, 0x0fbb: 0x82822597,
-	0x0fbc: 0x82822598, 0x0fbd: 0x82822599, 0x0fbe: 0xa000f302, 0x0fbf: 0xa000f402,
-	// Block 0x3f, offset 0xfc0
-	0x0fc0: 0x8282258e, 0x0fc1: 0x8281258f, 0x0fc2: 0xae600000, 0x0fc3: 0xae600000,
-	0x0fc4: 0x8209259a, 0x0fc5: 0x4005a220, 0x0fc6: 0xae600000, 0x0fc7: 0xae600000,
-	0x0fc8: 0x404b0620, 0x0fc9: 0x404b0a20, 0x0fca: 0x404b1220, 0x0fcb: 0x404b1420,
-	0x0fcc: 0x404b0e20, 0x0fcd: 0x404b0820, 0x0fce: 0x404b0c20, 0x0fcf: 0x404b1020,
-	0x0fd0: 0x404a7820, 0x0fd1: 0x404a7e20, 0x0fd2: 0x404a8220, 0x0fd3: 0xe0001fe7,
-	0x0fd4: 0x404a8620, 0x0fd5: 0x404a8a20, 0x0fd6: 0x404a8e20, 0x0fd7: 0x404a9220,
-	0x0fd9: 0x404a9620, 0x0fda: 0x404a9a20, 0x0fdb: 0x404a9e20,
-	0x0fdc: 0x404aa220, 0x0fdd: 0xe0001fed, 0x0fde: 0x404aa620, 0x0fdf: 0x404aaa20,
-	0x0fe0: 0x404aae20, 0x0fe1: 0x404ab220, 0x0fe2: 0xe0001ff3, 0x0fe3: 0x404ab620,
-	0x0fe4: 0x404aba20, 0x0fe5: 0x404abe20, 0x0fe6: 0x404ac220, 0x0fe7: 0xe0001ff9,
-	0x0fe8: 0x404ac620, 0x0fe9: 0x404aca20, 0x0fea: 0x404ace20, 0x0feb: 0x404ad220,
-	0x0fec: 0xe0001fff, 0x0fed: 0x404ad620, 0x0fee: 0x404ada20, 0x0fef: 0x404ade20,
-	0x0ff0: 0x404ae220, 0x0ff1: 0x404ae620, 0x0ff2: 0xc30306a1, 0x0ff3: 0xc30906a1,
-	0x0ff4: 0x404af420, 0x0ff5: 0x404af820, 0x0ff6: 0x404afc20, 0x0ff7: 0x404b0020,
-	0x0ff8: 0x404b0420, 0x0ff9: 0xe0001fe1, 0x0ffa: 0xe0002002, 0x0ffb: 0xe0002005,
-	0x0ffc: 0xe000200b, 0x0ffe: 0x40077e20, 0x0fff: 0x40078020,
-	// Block 0x40, offset 0x1000
-	0x1000: 0x40078220, 0x1001: 0x40078420, 0x1002: 0x40078620, 0x1003: 0x40078820,
-	0x1004: 0x40078a20, 0x1005: 0x40078c20, 0x1006: 0xadc00000, 0x1007: 0x40078e20,
-	0x1008: 0x40079020, 0x1009: 0x40079220, 0x100a: 0x40079420, 0x100b: 0x40079620,
-	0x100c: 0x40079820, 0x100e: 0x40079a20, 0x100f: 0x40079c20,
-	0x1010: 0x40059020, 0x1011: 0x40059220, 0x1012: 0x4005a420, 0x1013: 0x4005a620,
-	0x1014: 0x4005a820, 0x1015: 0x40079e20, 0x1016: 0x4007a020, 0x1017: 0x4007a220,
-	0x1018: 0x4007a420, 0x1019: 0x4005aa20, 0x101a: 0x4005ac20,
-	// Block 0x41, offset 0x1040
-	0x1040: 0x404e1420, 0x1041: 0x404e1820, 0x1042: 0x404e1c20, 0x1043: 0x404e2220,
-	0x1044: 0x404e2420, 0x1045: 0x404e2820, 0x1046: 0x404e2e20, 0x1047: 0x404e3220,
-	0x1048: 0x404e3a20, 0x1049: 0x404e4220, 0x104a: 0x404e4820, 0x104b: 0x404e4a20,
-	0x104c: 0x404e4e20, 0x104d: 0x404e5220, 0x104e: 0x404e5620, 0x104f: 0x404e5a20,
-	0x1050: 0x404e5e20, 0x1051: 0x404e6020, 0x1052: 0x404e6220, 0x1053: 0x404e6620,
-	0x1054: 0x404e6a20, 0x1055: 0x404e7220, 0x1056: 0x404e7420, 0x1057: 0x404e7e20,
-	0x1058: 0x404e8220, 0x1059: 0x404e8420, 0x105a: 0x404e8820, 0x105b: 0x404e8c20,
-	0x105c: 0x404e9420, 0x105d: 0x404e9820, 0x105e: 0x404ea620, 0x105f: 0x404eaa20,
-	0x1060: 0x404eb620, 0x1061: 0x404ec220, 0x1062: 0x404ec420, 0x1063: 0x404ec620,
-	0x1064: 0x404ec820, 0x1065: 0xc31307b1, 0x1066: 0x404ecc20, 0x1067: 0x404ed620,
-	0x1068: 0x404ed820, 0x1069: 0x404eda20, 0x106a: 0x404edc20, 0x106b: 0x004ede84,
-	0x106c: 0x404ede20, 0x106d: 0x404ee620, 0x106e: 0x404eea20, 0x106f: 0x404eee20,
-	0x1070: 0x404ef420, 0x1071: 0x404efe20, 0x1072: 0x404f0620, 0x1073: 0x404eec20,
-	0x1074: 0x404f0a20, 0x1075: 0x404f0220, 0x1076: 0xa000f302, 0x1077: 0xa0711202,
-	0x1078: 0xa000f402, 0x1079: 0x8209278a, 0x107a: 0x8209278b, 0x107b: 0x404e8a20,
-	0x107c: 0x404e9220, 0x107d: 0x404e9a20, 0x107e: 0x404eb020, 0x107f: 0xe000201e,
-	// Block 0x42, offset 0x1080
-	0x1080: 0xe00001ac, 0x1081: 0xe0000240, 0x1082: 0xe0000358, 0x1083: 0xe0000432,
-	0x1084: 0xe0000507, 0x1085: 0xe00005d1, 0x1086: 0xe000069c, 0x1087: 0xe0000744,
-	0x1088: 0xe00007f0, 0x1089: 0xe0000895, 0x108a: 0x40032220, 0x108b: 0x40032420,
-	0x108c: 0x4005b420, 0x108d: 0x4005b620, 0x108e: 0x4005b820, 0x108f: 0x4005ba20,
-	0x1090: 0x404ea020, 0x1091: 0x404ea220, 0x1092: 0x404ece20, 0x1093: 0x404ed020,
-	0x1094: 0x404ed220, 0x1095: 0x404ed420, 0x1096: 0x404ef620, 0x1097: 0x404ef820,
-	0x1098: 0x404efa20, 0x1099: 0x404efc20, 0x109a: 0x404e2620, 0x109b: 0x404e3c20,
-	0x109c: 0x404eb820, 0x109d: 0x404eba20, 0x109e: 0x404e7020, 0x109f: 0x404e8620,
-	0x10a0: 0x404e9620, 0x10a1: 0x404e4020, 0x10a2: 0x404f0c20, 0x10a3: 0x404f1820,
-	0x10a4: 0x404f1a20, 0x10a5: 0x404ea420, 0x10a6: 0x404ec020, 0x10a7: 0x404f0e20,
-	0x10a8: 0x404f1020, 0x10a9: 0x404f1c20, 0x10aa: 0x404f1e20, 0x10ab: 0x404f2020,
-	0x10ac: 0x404f2220, 0x10ad: 0x404f2420, 0x10ae: 0x404e5c20, 0x10af: 0x404ebc20,
-	0x10b0: 0x404ebe20, 0x10b1: 0x404ee820, 0x10b2: 0x404ee220, 0x10b3: 0x404ef020,
-	0x10b4: 0x404ef220, 0x10b5: 0x404e1620, 0x10b6: 0x404e1a20, 0x10b7: 0x404e1e20,
-	0x10b8: 0x404e2a20, 0x10b9: 0x404e3620, 0x10ba: 0x404e4420, 0x10bb: 0x404e6420,
-	0x10bc: 0x404e6c20, 0x10bd: 0x404e7620, 0x10be: 0x404e7820, 0x10bf: 0x404e8020,
-	// Block 0x43, offset 0x10c0
-	0x10c0: 0x404e9e20, 0x10c1: 0x404eac20, 0x10c2: 0x404e9c20, 0x10c3: 0x404ee020,
-	0x10c4: 0x404f0020, 0x10c5: 0x404f0420, 0x10c6: 0x404f1220, 0x10c7: 0x404f2620,
-	0x10c8: 0x404f2a20, 0x10c9: 0x404f2e20, 0x10ca: 0x404f3020, 0x10cb: 0x404f2820,
-	0x10cc: 0x404f2c20, 0x10cd: 0xadc11302, 0x10ce: 0x404e7c20, 0x10cf: 0x404f3220,
-	0x10d0: 0xe00001af, 0x10d1: 0xe0000243, 0x10d2: 0xe000035b, 0x10d3: 0xe0000435,
-	0x10d4: 0xe000050a, 0x10d5: 0xe00005d4, 0x10d6: 0xe000069f, 0x10d7: 0xe0000747,
-	0x10d8: 0xe00007f3, 0x10d9: 0xe0000898, 0x10da: 0x404f3420, 0x10db: 0x404f3620,
-	0x10dc: 0x404ee420, 0x10dd: 0x404f0820, 0x10de: 0x4007a820, 0x10df: 0x4007aa20,
-	0x10e0: 0x00379888, 0x10e1: 0x00379c88, 0x10e2: 0x0037a088, 0x10e3: 0x0037a488,
-	0x10e4: 0x0037a888, 0x10e5: 0x0037ac88, 0x10e6: 0x0037b088, 0x10e7: 0x0037b888,
-	0x10e8: 0x0037bc88, 0x10e9: 0x0037c088, 0x10ea: 0x0037c488, 0x10eb: 0x0037c888,
-	0x10ec: 0x0037cc88, 0x10ed: 0x0037d488, 0x10ee: 0x0037d888, 0x10ef: 0x0037dc88,
-	0x10f0: 0x0037e088, 0x10f1: 0x0037e488, 0x10f2: 0x0037e888, 0x10f3: 0x0037f088,
-	0x10f4: 0x0037f488, 0x10f5: 0x0037f888, 0x10f6: 0x0037fc88, 0x10f7: 0x00380088,
-	0x10f8: 0x00380488, 0x10f9: 0x00380888, 0x10fa: 0x00380c88, 0x10fb: 0x00381088,
-	0x10fc: 0x00381488, 0x10fd: 0x00381888, 0x10fe: 0x00381c88, 0x10ff: 0x00382488,
-	// Block 0x44, offset 0x1100
-	0x1100: 0x00382888, 0x1101: 0x0037b488, 0x1102: 0x0037d088, 0x1103: 0x0037ec88,
-	0x1104: 0x00382088, 0x1105: 0x00382c88, 0x1107: 0x00383288,
-	0x110d: 0x00383c88,
-	0x1110: 0x40379620, 0x1111: 0x40379a20, 0x1112: 0x40379e20, 0x1113: 0x4037a220,
-	0x1114: 0x4037a620, 0x1115: 0x4037aa20, 0x1116: 0x4037ae20, 0x1117: 0x4037b620,
-	0x1118: 0x4037ba20, 0x1119: 0x4037be20, 0x111a: 0x4037c220, 0x111b: 0x4037c620,
-	0x111c: 0x4037ca20, 0x111d: 0x4037d220, 0x111e: 0x4037d620, 0x111f: 0x4037da20,
-	0x1120: 0x4037de20, 0x1121: 0x4037e220, 0x1122: 0x4037e620, 0x1123: 0x4037ee20,
-	0x1124: 0x4037f220, 0x1125: 0x4037f620, 0x1126: 0x4037fa20, 0x1127: 0x4037fe20,
-	0x1128: 0x40380220, 0x1129: 0x40380620, 0x112a: 0x40380a20, 0x112b: 0x40380e20,
-	0x112c: 0x40381220, 0x112d: 0x40381620, 0x112e: 0x40381a20, 0x112f: 0x40382220,
-	0x1130: 0x40382620, 0x1131: 0x4037b220, 0x1132: 0x4037ce20, 0x1133: 0x4037ea20,
-	0x1134: 0x40381e20, 0x1135: 0x40382a20, 0x1136: 0x40382e20, 0x1137: 0x40383020,
-	0x1138: 0x40383420, 0x1139: 0x40383620, 0x113a: 0x40383820, 0x113b: 0x40036020,
-	0x113c: 0x0037ca94, 0x113d: 0x40383a20, 0x113e: 0x40383e20, 0x113f: 0x40384020,
-	// Block 0x45, offset 0x1140
-	0x1140: 0x4062ac20, 0x1141: 0x4062ae20, 0x1142: 0x4062b020, 0x1143: 0x4062b220,
-	0x1144: 0x4062b420, 0x1145: 0x4062b620, 0x1146: 0x4062b820, 0x1147: 0x4062ba20,
-	0x1148: 0x4062bc20, 0x1149: 0x4062be20, 0x114a: 0x4062c020, 0x114b: 0x4062c220,
-	0x114c: 0x4062c420, 0x114d: 0x4062c620, 0x114e: 0x4062c820, 0x114f: 0x4062ca20,
-	0x1150: 0x4062cc20, 0x1151: 0x4062ce20, 0x1152: 0x4062d020, 0x1153: 0x4062d220,
-	0x1154: 0x4062d420, 0x1155: 0x4062d620, 0x1156: 0x4062d820, 0x1157: 0x4062da20,
-	0x1158: 0x4062dc20, 0x1159: 0x4062de20, 0x115a: 0x4062e020, 0x115b: 0x4062e220,
-	0x115c: 0x4062e420, 0x115d: 0x4062e620, 0x115e: 0x4062e820, 0x115f: 0x4062ea20,
-	0x1160: 0x4062ec20, 0x1161: 0x4062ee20, 0x1162: 0x4062f020, 0x1163: 0x4062f220,
-	0x1164: 0x4062f420, 0x1165: 0x4062f620, 0x1166: 0x4062f820, 0x1167: 0x4062fa20,
-	0x1168: 0x4062fc20, 0x1169: 0x4062fe20, 0x116a: 0x40630020, 0x116b: 0x40630220,
-	0x116c: 0x40630420, 0x116d: 0x40630620, 0x116e: 0x40630820, 0x116f: 0x40630a20,
-	0x1170: 0x40630c20, 0x1171: 0x40630e20, 0x1172: 0x40631020, 0x1173: 0x40631220,
-	0x1174: 0x40631420, 0x1175: 0x40631620, 0x1176: 0x40631820, 0x1177: 0x40631a20,
-	0x1178: 0x40631c20, 0x1179: 0x40631e20, 0x117a: 0x40632020, 0x117b: 0x40632220,
-	0x117c: 0x40632420, 0x117d: 0x40632620, 0x117e: 0x40632820, 0x117f: 0x40632a20,
-	// Block 0x46, offset 0x1180
-	0x1180: 0x40632c20, 0x1181: 0x40632e20, 0x1182: 0x40633020, 0x1183: 0x40633220,
-	0x1184: 0x40633420, 0x1185: 0x40633620, 0x1186: 0x40633820, 0x1187: 0x40633a20,
-	0x1188: 0x40633c20, 0x1189: 0x40633e20, 0x118a: 0x40634020, 0x118b: 0x40634220,
-	0x118c: 0x40634420, 0x118d: 0x40634620, 0x118e: 0x40634820, 0x118f: 0x40634a20,
-	0x1190: 0x40634c20, 0x1191: 0x40634e20, 0x1192: 0x40635020, 0x1193: 0x40635220,
-	0x1194: 0x40635420, 0x1195: 0x40635620, 0x1196: 0x40635820, 0x1197: 0x40635a20,
-	0x1198: 0x40635c20, 0x1199: 0x40635e20, 0x119a: 0x40636020, 0x119b: 0x40636220,
-	0x119c: 0x40636420, 0x119d: 0x40636620, 0x119e: 0x40636820, 0x119f: 0x4063a420,
-	0x11a0: 0x4063a620, 0x11a1: 0x4063a820, 0x11a2: 0x4063aa20, 0x11a3: 0x4063ac20,
-	0x11a4: 0x4063ae20, 0x11a5: 0x4063b020, 0x11a6: 0x4063b220, 0x11a7: 0x4063b420,
-	0x11a8: 0x4063b620, 0x11a9: 0x4063b820, 0x11aa: 0x4063ba20, 0x11ab: 0x4063bc20,
-	0x11ac: 0x4063be20, 0x11ad: 0x4063c020, 0x11ae: 0x4063c220, 0x11af: 0x4063c420,
-	0x11b0: 0x4063c620, 0x11b1: 0x4063c820, 0x11b2: 0x4063ca20, 0x11b3: 0x4063cc20,
-	0x11b4: 0x4063ce20, 0x11b5: 0x4063d020, 0x11b6: 0x4063d220, 0x11b7: 0x4063d420,
-	0x11b8: 0x4063d620, 0x11b9: 0x4063d820, 0x11ba: 0x4063da20, 0x11bb: 0x4063dc20,
-	0x11bc: 0x4063de20, 0x11bd: 0x4063e020, 0x11be: 0x4063e220, 0x11bf: 0x4063e420,
-	// Block 0x47, offset 0x11c0
-	0x11c0: 0x4063e620, 0x11c1: 0x4063e820, 0x11c2: 0x4063ea20, 0x11c3: 0x4063ec20,
-	0x11c4: 0x4063ee20, 0x11c5: 0x4063f020, 0x11c6: 0x4063f220, 0x11c7: 0x4063f420,
-	0x11c8: 0x4063f620, 0x11c9: 0x4063f820, 0x11ca: 0x4063fa20, 0x11cb: 0x4063fc20,
-	0x11cc: 0x4063fe20, 0x11cd: 0x40640020, 0x11ce: 0x40640220, 0x11cf: 0x40640420,
-	0x11d0: 0x40640620, 0x11d1: 0x40640820, 0x11d2: 0x40640a20, 0x11d3: 0x40640c20,
-	0x11d4: 0x40640e20, 0x11d5: 0x40641020, 0x11d6: 0x40641220, 0x11d7: 0x40641420,
-	0x11d8: 0x40641620, 0x11d9: 0x40641820, 0x11da: 0x40641a20, 0x11db: 0x40641c20,
-	0x11dc: 0x40641e20, 0x11dd: 0x40642020, 0x11de: 0x40642220, 0x11df: 0x40642420,
-	0x11e0: 0x40642620, 0x11e1: 0x40642820, 0x11e2: 0x40642a20, 0x11e3: 0x40642c20,
-	0x11e4: 0x40642e20, 0x11e5: 0x40643020, 0x11e6: 0x40643220, 0x11e7: 0x40643420,
-	0x11e8: 0x40646420, 0x11e9: 0x40646620, 0x11ea: 0x40646820, 0x11eb: 0x40646a20,
-	0x11ec: 0x40646c20, 0x11ed: 0x40646e20, 0x11ee: 0x40647020, 0x11ef: 0x40647220,
-	0x11f0: 0x40647420, 0x11f1: 0x40647620, 0x11f2: 0x40647820, 0x11f3: 0x40647a20,
-	0x11f4: 0x40647c20, 0x11f5: 0x40647e20, 0x11f6: 0x40648020, 0x11f7: 0x40648220,
-	0x11f8: 0x40648420, 0x11f9: 0x40648620, 0x11fa: 0x40648820, 0x11fb: 0x40648a20,
-	0x11fc: 0x40648c20, 0x11fd: 0x40648e20, 0x11fe: 0x40649020, 0x11ff: 0x40649220,
-	// Block 0x48, offset 0x1200
-	0x1200: 0x40649420, 0x1201: 0x40649620, 0x1202: 0x40649820, 0x1203: 0x40649a20,
-	0x1204: 0x40649c20, 0x1205: 0x40649e20, 0x1206: 0x4064a020, 0x1207: 0x4064a220,
-	0x1208: 0x4064a420, 0x1209: 0x4064a620, 0x120a: 0x4064a820, 0x120b: 0x4064aa20,
-	0x120c: 0x4064ac20, 0x120d: 0x4064ae20, 0x120e: 0x4064b020, 0x120f: 0x4064b220,
-	0x1210: 0x4064b420, 0x1211: 0x4064b620, 0x1212: 0x4064b820, 0x1213: 0x4064ba20,
-	0x1214: 0x4064bc20, 0x1215: 0x4064be20, 0x1216: 0x4064c020, 0x1217: 0x4064c220,
-	0x1218: 0x4064c420, 0x1219: 0x4064c620, 0x121a: 0x4064c820, 0x121b: 0x4064ca20,
-	0x121c: 0x4064cc20, 0x121d: 0x4064ce20, 0x121e: 0x4064d020, 0x121f: 0x4064d220,
-	0x1220: 0x4064d420, 0x1221: 0x4064d620, 0x1222: 0x4064d820, 0x1223: 0x4064da20,
-	0x1224: 0x4064dc20, 0x1225: 0x4064de20, 0x1226: 0x4064e020, 0x1227: 0x4064e220,
-	0x1228: 0x4064e420, 0x1229: 0x4064e620, 0x122a: 0x4064e820, 0x122b: 0x4064ea20,
-	0x122c: 0x4064ec20, 0x122d: 0x4064ee20, 0x122e: 0x4064f020, 0x122f: 0x4064f220,
-	0x1230: 0x4064f420, 0x1231: 0x4064f620, 0x1232: 0x4064f820, 0x1233: 0x4064fa20,
-	0x1234: 0x4064fc20, 0x1235: 0x4064fe20, 0x1236: 0x40650020, 0x1237: 0x40650220,
-	0x1238: 0x40650420, 0x1239: 0x40650620, 0x123a: 0x40650820, 0x123b: 0x40650a20,
-	0x123c: 0x40650c20, 0x123d: 0x40650e20, 0x123e: 0x40651020, 0x123f: 0x40651220,
-	// Block 0x49, offset 0x1240
-	0x1240: 0x403c2e20, 0x1241: 0x403c3020, 0x1242: 0x403c3220, 0x1243: 0x403c3420,
-	0x1244: 0x403c3620, 0x1245: 0x403c3820, 0x1246: 0x403c3a20, 0x1247: 0x403c3c20,
-	0x1248: 0x403c3e20, 0x1249: 0x403c4020, 0x124a: 0x403c4220, 0x124b: 0x403c4420,
-	0x124c: 0x403c4620, 0x124d: 0x403c4820, 0x124e: 0x403c4a20, 0x124f: 0x403c4c20,
-	0x1250: 0x403c5020, 0x1251: 0x403c5220, 0x1252: 0x403c5420, 0x1253: 0x403c5620,
-	0x1254: 0x403c5820, 0x1255: 0x403c5a20, 0x1256: 0x403c5c20, 0x1257: 0x403c5e20,
-	0x1258: 0x403c6020, 0x1259: 0x403c6220, 0x125a: 0x403c6420, 0x125b: 0x403c6620,
-	0x125c: 0x403c6820, 0x125d: 0x403c6a20, 0x125e: 0x403c6c20, 0x125f: 0x403c6e20,
-	0x1260: 0x403c7a20, 0x1261: 0x403c7c20, 0x1262: 0x403c7e20, 0x1263: 0x403c8020,
-	0x1264: 0x403c8220, 0x1265: 0x403c8420, 0x1266: 0x403c8620, 0x1267: 0x403c8820,
-	0x1268: 0x403c8a20, 0x1269: 0x403c8c20, 0x126a: 0x403c8e20, 0x126b: 0x403c9020,
-	0x126c: 0x403c9220, 0x126d: 0x403c9420, 0x126e: 0x403c9620, 0x126f: 0x403c9820,
-	0x1270: 0x403c9c20, 0x1271: 0x403c9e20, 0x1272: 0x403ca020, 0x1273: 0x403ca220,
-	0x1274: 0x403ca420, 0x1275: 0x403ca620, 0x1276: 0x403ca820, 0x1277: 0x403caa20,
-	0x1278: 0x403cba20, 0x1279: 0x403cbc20, 0x127a: 0x403cbe20, 0x127b: 0x403cc020,
-	0x127c: 0x403cc220, 0x127d: 0x403cc420, 0x127e: 0x403cc620, 0x127f: 0x403cc820,
-	// Block 0x4a, offset 0x1280
-	0x1280: 0x403ccc20, 0x1281: 0x403cce20, 0x1282: 0x403cd020, 0x1283: 0x403cd220,
-	0x1284: 0x403cd420, 0x1285: 0x403cd620, 0x1286: 0x403cd820, 0x1287: 0x403cda20,
-	0x1288: 0x403cdc20, 0x128a: 0x403cde20, 0x128b: 0x403ce020,
-	0x128c: 0x403ce220, 0x128d: 0x403ce420,
-	0x1290: 0x403ce620, 0x1291: 0x403ce820, 0x1292: 0x403cea20, 0x1293: 0x403cec20,
-	0x1294: 0x403cee20, 0x1295: 0x403cf020, 0x1296: 0x403cf220,
-	0x1298: 0x403cf420, 0x129a: 0x403cf620, 0x129b: 0x403cf820,
-	0x129c: 0x403cfa20, 0x129d: 0x403cfc20,
-	0x12a0: 0x403cfe20, 0x12a1: 0x403d0020, 0x12a2: 0x403d0220, 0x12a3: 0x403d0420,
-	0x12a4: 0x403d0620, 0x12a5: 0x403d0820, 0x12a6: 0x403d0a20, 0x12a7: 0x403d0c20,
-	0x12a8: 0x403d1820, 0x12a9: 0x403d1a20, 0x12aa: 0x403d1c20, 0x12ab: 0x403d1e20,
-	0x12ac: 0x403d2020, 0x12ad: 0x403d2220, 0x12ae: 0x403d2420, 0x12af: 0x403d2620,
-	0x12b0: 0x403d2820, 0x12b1: 0x403d2a20, 0x12b2: 0x403d2c20, 0x12b3: 0x403d2e20,
-	0x12b4: 0x403d3020, 0x12b5: 0x403d3220, 0x12b6: 0x403d3420, 0x12b7: 0x403d3620,
-	0x12b8: 0x403d3a20, 0x12b9: 0x403d3c20, 0x12ba: 0x403d3e20, 0x12bb: 0x403d4020,
-	0x12bc: 0x403d4220, 0x12bd: 0x403d4420, 0x12be: 0x403d4620, 0x12bf: 0x403d4820,
-	// Block 0x4b, offset 0x12c0
-	0x12c0: 0x403d4c20, 0x12c1: 0x403d4e20, 0x12c2: 0x403d5020, 0x12c3: 0x403d5220,
-	0x12c4: 0x403d5420, 0x12c5: 0x403d5620, 0x12c6: 0x403d5820, 0x12c7: 0x403d5a20,
-	0x12c8: 0x403d5c20, 0x12ca: 0x403d5e20, 0x12cb: 0x403d6020,
-	0x12cc: 0x403d6220, 0x12cd: 0x403d6420,
-	0x12d0: 0x403d6620, 0x12d1: 0x403d6820, 0x12d2: 0x403d6a20, 0x12d3: 0x403d6c20,
-	0x12d4: 0x403d6e20, 0x12d5: 0x403d7020, 0x12d6: 0x403d7220, 0x12d7: 0x403d7420,
-	0x12d8: 0x403d7820, 0x12d9: 0x403d7a20, 0x12da: 0x403d7c20, 0x12db: 0x403d7e20,
-	0x12dc: 0x403d8020, 0x12dd: 0x403d8220, 0x12de: 0x403d8420, 0x12df: 0x403d8620,
-	0x12e0: 0x403d8a20, 0x12e1: 0x403d8c20, 0x12e2: 0x403d8e20, 0x12e3: 0x403d9020,
-	0x12e4: 0x403d9220, 0x12e5: 0x403d9420, 0x12e6: 0x403d9620, 0x12e7: 0x403d9820,
-	0x12e8: 0x403d9c20, 0x12e9: 0x403d9e20, 0x12ea: 0x403da020, 0x12eb: 0x403da220,
-	0x12ec: 0x403da420, 0x12ed: 0x403da620, 0x12ee: 0x403da820, 0x12ef: 0x403daa20,
-	0x12f0: 0x403dac20, 0x12f2: 0x403dae20, 0x12f3: 0x403db020,
-	0x12f4: 0x403db220, 0x12f5: 0x403db420,
-	0x12f8: 0x403db620, 0x12f9: 0x403db820, 0x12fa: 0x403dba20, 0x12fb: 0x403dbc20,
-	0x12fc: 0x403dbe20, 0x12fd: 0x403dc020, 0x12fe: 0x403dc220,
-	// Block 0x4c, offset 0x1300
-	0x1300: 0x403dc420, 0x1302: 0x403dc620, 0x1303: 0x403dc820,
-	0x1304: 0x403dca20, 0x1305: 0x403dcc20,
-	0x1308: 0x403dce20, 0x1309: 0x403dd020, 0x130a: 0x403dd220, 0x130b: 0x403dd420,
-	0x130c: 0x403dd620, 0x130d: 0x403dd820, 0x130e: 0x403dda20, 0x130f: 0x403ddc20,
-	0x1310: 0x403dde20, 0x1311: 0x403de020, 0x1312: 0x403de220, 0x1313: 0x403de420,
-	0x1314: 0x403de620, 0x1315: 0x403de820, 0x1316: 0x403dea20,
-	0x1318: 0x403dec20, 0x1319: 0x403dee20, 0x131a: 0x403df020, 0x131b: 0x403df220,
-	0x131c: 0x403df420, 0x131d: 0x403df620, 0x131e: 0x403df820, 0x131f: 0x403dfa20,
-	0x1320: 0x403e0a20, 0x1321: 0x403e0c20, 0x1322: 0x403e0e20, 0x1323: 0x403e1020,
-	0x1324: 0x403e1220, 0x1325: 0x403e1420, 0x1326: 0x403e1620, 0x1327: 0x403e1820,
-	0x1328: 0x403e1a20, 0x1329: 0x403e1c20, 0x132a: 0x403e1e20, 0x132b: 0x403e2020,
-	0x132c: 0x403e2220, 0x132d: 0x403e2420, 0x132e: 0x403e2620, 0x132f: 0x403e2820,
-	0x1330: 0x403e2a20, 0x1331: 0x403e2c20, 0x1332: 0x403e2e20, 0x1333: 0x403e3020,
-	0x1334: 0x403e3220, 0x1335: 0x403e3420, 0x1336: 0x403e3620, 0x1337: 0x403e3820,
-	0x1338: 0x403e4820, 0x1339: 0x403e4a20, 0x133a: 0x403e4c20, 0x133b: 0x403e4e20,
-	0x133c: 0x403e5020, 0x133d: 0x403e5220, 0x133e: 0x403e5420, 0x133f: 0x403e5620,
-	// Block 0x4d, offset 0x1340
-	0x1340: 0x403e5a20, 0x1341: 0x403e5c20, 0x1342: 0x403e5e20, 0x1343: 0x403e6020,
-	0x1344: 0x403e6220, 0x1345: 0x403e6420, 0x1346: 0x403e6620, 0x1347: 0x403e6820,
-	0x1348: 0x403e6c20, 0x1349: 0x403e6e20, 0x134a: 0x403e7020, 0x134b: 0x403e7220,
-	0x134c: 0x403e7420, 0x134d: 0x403e7620, 0x134e: 0x403e7820, 0x134f: 0x403e7a20,
-	0x1350: 0x403e7c20, 0x1352: 0x403e7e20, 0x1353: 0x403e8020,
-	0x1354: 0x403e8220, 0x1355: 0x403e8420,
-	0x1358: 0x403e8620, 0x1359: 0x403e8820, 0x135a: 0x403e8a20, 0x135b: 0x403e8c20,
-	0x135c: 0x403e8e20, 0x135d: 0x403e9020, 0x135e: 0x403e9220, 0x135f: 0x403e9420,
-	0x1360: 0x403e9e20, 0x1361: 0x403ea020, 0x1362: 0x403ea220, 0x1363: 0x403ea420,
-	0x1364: 0x403ea620, 0x1365: 0x403ea820, 0x1366: 0x403eaa20, 0x1367: 0x403eac20,
-	0x1368: 0x403eb020, 0x1369: 0x403eb220, 0x136a: 0x403eb420, 0x136b: 0x403eb620,
-	0x136c: 0x403eb820, 0x136d: 0x403eba20, 0x136e: 0x403ebc20, 0x136f: 0x403ebe20,
-	0x1370: 0x403ed020, 0x1371: 0x403ed220, 0x1372: 0x403ed420, 0x1373: 0x403ed620,
-	0x1374: 0x403ed820, 0x1375: 0x403eda20, 0x1376: 0x403edc20, 0x1377: 0x403ede20,
-	0x1378: 0x403ee220, 0x1379: 0x403ee420, 0x137a: 0x403ee620, 0x137b: 0x403ee820,
-	0x137c: 0x403eea20, 0x137d: 0x403eec20, 0x137e: 0x403eee20, 0x137f: 0x403ef020,
-	// Block 0x4e, offset 0x1380
-	0x1380: 0x403f0020, 0x1381: 0x403f0220, 0x1382: 0x403f0420, 0x1383: 0x403f0620,
-	0x1384: 0x403f0820, 0x1385: 0x403f0a20, 0x1386: 0x403f0c20, 0x1387: 0x403f0e20,
-	0x1388: 0x403f1020, 0x1389: 0x403f1220, 0x138a: 0x403f1420, 0x138b: 0x403f1620,
-	0x138c: 0x403f1820, 0x138d: 0x403f1a20, 0x138e: 0x403f1c20, 0x138f: 0x403f1e20,
-	0x1390: 0x403f2820, 0x1391: 0x403f2a20, 0x1392: 0x403f2c20, 0x1393: 0x403f2e20,
-	0x1394: 0x403f3020, 0x1395: 0x403f3220, 0x1396: 0x403f3420, 0x1397: 0x403f3620,
-	0x1398: 0x403f4220, 0x1399: 0x403f4420, 0x139a: 0x403f4620,
-	0x139d: 0xae60ee02, 0x139e: 0xae60ed02, 0x139f: 0xae60ec02,
-	0x13a0: 0x40036220, 0x13a1: 0x40029c20, 0x13a2: 0x4002ee20, 0x13a3: 0x40029e20,
-	0x13a4: 0x4002a020, 0x13a5: 0x4002a220, 0x13a6: 0x4002a420, 0x13a7: 0x4002d020,
-	0x13a8: 0x40036420, 0x13a9: 0xe00001f2, 0x13aa: 0xe000030d, 0x13ab: 0xe00003e7,
-	0x13ac: 0xe00004c2, 0x13ad: 0xe000058c, 0x13ae: 0xe0000657, 0x13af: 0xe00006ff,
-	0x13b0: 0xe00007ab, 0x13b1: 0xe0000850, 0x13b2: 0x40286620, 0x13b3: 0x40286820,
-	0x13b4: 0x40286a20, 0x13b5: 0x40286c20, 0x13b6: 0x40286e20, 0x13b7: 0x40287020,
-	0x13b8: 0x40287220, 0x13b9: 0x40287420, 0x13ba: 0x40287620, 0x13bb: 0x40287820,
-	0x13bc: 0x40287a20,
-	// Block 0x4f, offset 0x13c0
-	0x13c0: 0x403c7020, 0x13c1: 0x403c7220, 0x13c2: 0x403c7420, 0x13c3: 0x403c7620,
-	0x13c4: 0x403d0e20, 0x13c5: 0x403d1020, 0x13c6: 0x403d1220, 0x13c7: 0x403d1420,
-	0x13c8: 0x403f2020, 0x13c9: 0x403f2220, 0x13ca: 0x403f2420, 0x13cb: 0x403f2620,
-	0x13cc: 0x403f3820, 0x13cd: 0x403f3a20, 0x13ce: 0x403f3c20, 0x13cf: 0x403f3e20,
-	0x13d0: 0x4006a620, 0x13d1: 0x4006a820, 0x13d2: 0x4006aa20, 0x13d3: 0x4006ac20,
-	0x13d4: 0x4006ae20, 0x13d5: 0x4006b020, 0x13d6: 0x4006b220, 0x13d7: 0x4006b420,
-	0x13d8: 0x4006b620, 0x13d9: 0x4006b820,
-	0x13e0: 0x40547620, 0x13e1: 0x40547820, 0x13e2: 0x40547a20, 0x13e3: 0x40547c20,
-	0x13e4: 0x40547e20, 0x13e5: 0x40548020, 0x13e6: 0x40548220, 0x13e7: 0x40548420,
-	0x13e8: 0x40548620, 0x13e9: 0x40548820, 0x13ea: 0x40548a20, 0x13eb: 0x40548c20,
-	0x13ec: 0x40548e20, 0x13ed: 0x40549020, 0x13ee: 0x40549220, 0x13ef: 0x40549420,
-	0x13f0: 0x40549620, 0x13f1: 0x40549820, 0x13f2: 0x40549a20, 0x13f3: 0x40549c20,
-	0x13f4: 0x40549e20, 0x13f5: 0x4054a020, 0x13f6: 0x4054a220, 0x13f7: 0x4054a420,
-	0x13f8: 0x4054a620, 0x13f9: 0x4054a820, 0x13fa: 0x4054aa20, 0x13fb: 0x4054ac20,
-	0x13fc: 0x4054ae20, 0x13fd: 0x4054b020, 0x13fe: 0x4054b220, 0x13ff: 0x4054b420,
-	// Block 0x50, offset 0x1400
-	0x1400: 0x4054b620, 0x1401: 0x4054b820, 0x1402: 0x4054ba20, 0x1403: 0x4054bc20,
-	0x1404: 0x4054be20, 0x1405: 0x4054c020, 0x1406: 0x4054c220, 0x1407: 0x4054c420,
-	0x1408: 0x4054c620, 0x1409: 0x4054c820, 0x140a: 0x4054ca20, 0x140b: 0x4054cc20,
-	0x140c: 0x4054ce20, 0x140d: 0x4054d020, 0x140e: 0x4054d220, 0x140f: 0x4054d420,
-	0x1410: 0x4054d620, 0x1411: 0x4054d820, 0x1412: 0x4054da20, 0x1413: 0x4054dc20,
-	0x1414: 0x4054de20, 0x1415: 0x4054e020, 0x1416: 0x4054e220, 0x1417: 0x4054e420,
-	0x1418: 0x4054e620, 0x1419: 0x4054e820, 0x141a: 0x4054ea20, 0x141b: 0x4054ec20,
-	0x141c: 0x4054ee20, 0x141d: 0x4054f020, 0x141e: 0x4054f220, 0x141f: 0x4054f420,
-	0x1420: 0x4054f620, 0x1421: 0x4054f820, 0x1422: 0x4054fa20, 0x1423: 0x4054fc20,
-	0x1424: 0x4054fe20, 0x1425: 0x40550020, 0x1426: 0x40550220, 0x1427: 0x40550420,
-	0x1428: 0x40550620, 0x1429: 0x40550820, 0x142a: 0x40550a20, 0x142b: 0x40550c20,
-	0x142c: 0x40550e20, 0x142d: 0x40551020, 0x142e: 0x40551220, 0x142f: 0x40551420,
-	0x1430: 0x40551620, 0x1431: 0x40551820, 0x1432: 0x40551a20, 0x1433: 0x40551c20,
-	0x1434: 0x40551e20,
-	// Block 0x51, offset 0x1440
-	0x1440: 0x40021e20, 0x1441: 0x40552020, 0x1442: 0x40552220, 0x1443: 0x40552420,
-	0x1444: 0x40552620, 0x1445: 0x40552820, 0x1446: 0x40552a20, 0x1447: 0x40552c20,
-	0x1448: 0x40552e20, 0x1449: 0x40553020, 0x144a: 0x40553220, 0x144b: 0x40553420,
-	0x144c: 0x40553620, 0x144d: 0x40553820, 0x144e: 0x40553a20, 0x144f: 0x40553c20,
-	0x1450: 0x40553e20, 0x1451: 0x40554020, 0x1452: 0x40554220, 0x1453: 0x40554420,
-	0x1454: 0x40554620, 0x1455: 0x40554820, 0x1456: 0x40554a20, 0x1457: 0x40554c20,
-	0x1458: 0x40554e20, 0x1459: 0x40555020, 0x145a: 0x40555220, 0x145b: 0x40555420,
-	0x145c: 0x40555620, 0x145d: 0x40555820, 0x145e: 0x40555a20, 0x145f: 0x40555c20,
-	0x1460: 0x40555e20, 0x1461: 0x40556020, 0x1462: 0x40556220, 0x1463: 0x40556420,
-	0x1464: 0x40556620, 0x1465: 0x40556820, 0x1466: 0x40556a20, 0x1467: 0x40556c20,
-	0x1468: 0x40556e20, 0x1469: 0x40557020, 0x146a: 0x40557220, 0x146b: 0x40557420,
-	0x146c: 0x40557620, 0x146d: 0x40557820, 0x146e: 0x40557a20, 0x146f: 0x40557c20,
-	0x1470: 0x40557e20, 0x1471: 0x40558020, 0x1472: 0x40558220, 0x1473: 0x40558420,
-	0x1474: 0x40558620, 0x1475: 0x40558820, 0x1476: 0x40558a20, 0x1477: 0x40558c20,
-	0x1478: 0x40558e20, 0x1479: 0x40559020, 0x147a: 0x40559220, 0x147b: 0x40559420,
-	0x147c: 0x40559620, 0x147d: 0x40559820, 0x147e: 0x40559a20, 0x147f: 0x40559c20,
-	// Block 0x52, offset 0x1480
-	0x1480: 0x40559e20, 0x1481: 0x4055a020, 0x1482: 0x4055a220, 0x1483: 0x4055a420,
-	0x1484: 0x4055a620, 0x1485: 0x4055a820, 0x1486: 0x4055aa20, 0x1487: 0x4055ac20,
-	0x1488: 0x4055ae20, 0x1489: 0x4055b020, 0x148a: 0x4055b220, 0x148b: 0x4055b420,
-	0x148c: 0x4055b620, 0x148d: 0x4055b820, 0x148e: 0x4055ba20, 0x148f: 0x4055bc20,
-	0x1490: 0x4055be20, 0x1491: 0x4055c020, 0x1492: 0x4055c220, 0x1493: 0x4055c420,
-	0x1494: 0x4055c620, 0x1495: 0x4055c820, 0x1496: 0x4055ca20, 0x1497: 0x4055cc20,
-	0x1498: 0x4055ce20, 0x1499: 0x4055d020, 0x149a: 0x4055d220, 0x149b: 0x4055d420,
-	0x149c: 0x4055d620, 0x149d: 0x4055d820, 0x149e: 0x4055da20, 0x149f: 0x4055dc20,
-	0x14a0: 0x4055de20, 0x14a1: 0x4055e020, 0x14a2: 0x4055e220, 0x14a3: 0x4055e420,
-	0x14a4: 0x4055e620, 0x14a5: 0x4055e820, 0x14a6: 0x4055ea20, 0x14a7: 0x4055ec20,
-	0x14a8: 0x4055ee20, 0x14a9: 0x4055f020, 0x14aa: 0x4055f220, 0x14ab: 0x4055f420,
-	0x14ac: 0x4055f620, 0x14ad: 0x4055f820, 0x14ae: 0x4055fa20, 0x14af: 0x4055fc20,
-	0x14b0: 0x4055fe20, 0x14b1: 0x40560020, 0x14b2: 0x40560220, 0x14b3: 0x40560420,
-	0x14b4: 0x40560620, 0x14b5: 0x40560820, 0x14b6: 0x40560a20, 0x14b7: 0x40560c20,
-	0x14b8: 0x40560e20, 0x14b9: 0x40561020, 0x14ba: 0x40561220, 0x14bb: 0x40561420,
-	0x14bc: 0x40561620, 0x14bd: 0x40561820, 0x14be: 0x40561a20, 0x14bf: 0x40561c20,
-	// Block 0x53, offset 0x14c0
-	0x14c0: 0x40561e20, 0x14c1: 0x40562020, 0x14c2: 0x40562220, 0x14c3: 0x40562420,
-	0x14c4: 0x40562620, 0x14c5: 0x40562820, 0x14c6: 0x40562a20, 0x14c7: 0x40562c20,
-	0x14c8: 0x40562e20, 0x14c9: 0x40563020, 0x14ca: 0x40563220, 0x14cb: 0x40563420,
-	0x14cc: 0x40563620, 0x14cd: 0x40563820, 0x14ce: 0x40563a20, 0x14cf: 0x40563c20,
-	0x14d0: 0x40563e20, 0x14d1: 0x40564020, 0x14d2: 0x40564220, 0x14d3: 0x40564420,
-	0x14d4: 0x40564620, 0x14d5: 0x40564820, 0x14d6: 0x40564a20, 0x14d7: 0x40564c20,
-	0x14d8: 0x40564e20, 0x14d9: 0x40565020, 0x14da: 0x40565220, 0x14db: 0x40565420,
-	0x14dc: 0x40565620, 0x14dd: 0x40565820, 0x14de: 0x40565a20, 0x14df: 0x40565c20,
-	0x14e0: 0x40565e20, 0x14e1: 0x40566020, 0x14e2: 0x40566220, 0x14e3: 0x40566420,
-	0x14e4: 0x40566620, 0x14e5: 0x40566820, 0x14e6: 0x40566a20, 0x14e7: 0x40566c20,
-	0x14e8: 0x40566e20, 0x14e9: 0x40567020, 0x14ea: 0x40567220, 0x14eb: 0x40567420,
-	0x14ec: 0x40567620, 0x14ed: 0x40567820, 0x14ee: 0x40567a20, 0x14ef: 0x40567c20,
-	0x14f0: 0x40567e20, 0x14f1: 0x40568020, 0x14f2: 0x40568220, 0x14f3: 0x40568420,
-	0x14f4: 0x40568620, 0x14f5: 0x40568820, 0x14f6: 0x40568a20, 0x14f7: 0x40568c20,
-	0x14f8: 0x40568e20, 0x14f9: 0x40569020, 0x14fa: 0x40569220, 0x14fb: 0x40569420,
-	0x14fc: 0x40569620, 0x14fd: 0x40569820, 0x14fe: 0x40569a20, 0x14ff: 0x40569c20,
-	// Block 0x54, offset 0x1500
-	0x1500: 0x40569e20, 0x1501: 0x4056a020, 0x1502: 0x4056a220, 0x1503: 0x4056a420,
-	0x1504: 0x4056a620, 0x1505: 0x4056a820, 0x1506: 0x4056aa20, 0x1507: 0x4056ac20,
-	0x1508: 0x4056ae20, 0x1509: 0x4056b020, 0x150a: 0x4056b220, 0x150b: 0x4056b420,
-	0x150c: 0x4056b620, 0x150d: 0x4056b820, 0x150e: 0x4056ba20, 0x150f: 0x4056bc20,
-	0x1510: 0x4056be20, 0x1511: 0x4056c020, 0x1512: 0x4056c220, 0x1513: 0x4056c420,
-	0x1514: 0x4056c620, 0x1515: 0x4056c820, 0x1516: 0x4056ca20, 0x1517: 0x4056cc20,
-	0x1518: 0x4056ce20, 0x1519: 0x4056d020, 0x151a: 0x4056d220, 0x151b: 0x4056d420,
-	0x151c: 0x4056d620, 0x151d: 0x4056d820, 0x151e: 0x4056da20, 0x151f: 0x4056dc20,
-	0x1520: 0x4056de20, 0x1521: 0x4056e020, 0x1522: 0x4056e220, 0x1523: 0x4056e420,
-	0x1524: 0x4056e620, 0x1525: 0x4056e820, 0x1526: 0x4056ea20, 0x1527: 0x4056ec20,
-	0x1528: 0x4056ee20, 0x1529: 0x4056f020, 0x152a: 0x4056f220, 0x152b: 0x4056f420,
-	0x152c: 0x4056f620, 0x152d: 0x4056f820, 0x152e: 0x4056fa20, 0x152f: 0x4056fc20,
-	0x1530: 0x4056fe20, 0x1531: 0x40570020, 0x1532: 0x40570220, 0x1533: 0x40570420,
-	0x1534: 0x40570620, 0x1535: 0x40570820, 0x1536: 0x40570a20, 0x1537: 0x40570c20,
-	0x1538: 0x40570e20, 0x1539: 0x40571020, 0x153a: 0x40571220, 0x153b: 0x40571420,
-	0x153c: 0x40571620, 0x153d: 0x40571820, 0x153e: 0x40571a20, 0x153f: 0x40571c20,
-	// Block 0x55, offset 0x1540
-	0x1540: 0x40571e20, 0x1541: 0x40572020, 0x1542: 0x40572220, 0x1543: 0x40572420,
-	0x1544: 0x40572620, 0x1545: 0x40572820, 0x1546: 0x40572a20, 0x1547: 0x40572c20,
-	0x1548: 0x40572e20, 0x1549: 0x40573020, 0x154a: 0x40573220, 0x154b: 0x40573420,
-	0x154c: 0x40573620, 0x154d: 0x40573820, 0x154e: 0x40573a20, 0x154f: 0x40573c20,
-	0x1550: 0x40573e20, 0x1551: 0x40574020, 0x1552: 0x40574220, 0x1553: 0x40574420,
-	0x1554: 0x40574620, 0x1555: 0x40574820, 0x1556: 0x40574a20, 0x1557: 0x40574c20,
-	0x1558: 0x40574e20, 0x1559: 0x40575020, 0x155a: 0x40575220, 0x155b: 0x40575420,
-	0x155c: 0x40575620, 0x155d: 0x40575820, 0x155e: 0x40575a20, 0x155f: 0x40575c20,
-	0x1560: 0x40575e20, 0x1561: 0x40576020, 0x1562: 0x40576220, 0x1563: 0x40576420,
-	0x1564: 0x40576620, 0x1565: 0x40576820, 0x1566: 0x40576a20, 0x1567: 0x40576c20,
-	0x1568: 0x40576e20, 0x1569: 0x40577020, 0x156a: 0x40577220, 0x156b: 0x40577420,
-	0x156c: 0x40577620, 0x156d: 0x40577820, 0x156e: 0x40577a20, 0x156f: 0x40577c20,
-	0x1570: 0x40577e20, 0x1571: 0x40578020, 0x1572: 0x40578220, 0x1573: 0x40578420,
-	0x1574: 0x40578620, 0x1575: 0x40578820, 0x1576: 0x40578a20, 0x1577: 0x40578c20,
-	0x1578: 0x40578e20, 0x1579: 0x40579020, 0x157a: 0x40579220, 0x157b: 0x40579420,
-	0x157c: 0x40579620, 0x157d: 0x40579820, 0x157e: 0x40579a20, 0x157f: 0x40579c20,
-	// Block 0x56, offset 0x1580
-	0x1580: 0x40579e20, 0x1581: 0x4057a020, 0x1582: 0x4057a220, 0x1583: 0x4057a420,
-	0x1584: 0x4057a620, 0x1585: 0x4057a820, 0x1586: 0x4057aa20, 0x1587: 0x4057ac20,
-	0x1588: 0x4057ae20, 0x1589: 0x4057b020, 0x158a: 0x4057b220, 0x158b: 0x4057b420,
-	0x158c: 0x4057b620, 0x158d: 0x4057b820, 0x158e: 0x4057ba20, 0x158f: 0x4057bc20,
-	0x1590: 0x4057be20, 0x1591: 0x4057c020, 0x1592: 0x4057c220, 0x1593: 0x4057c420,
-	0x1594: 0x4057c620, 0x1595: 0x4057c820, 0x1596: 0x4057ca20, 0x1597: 0x4057cc20,
-	0x1598: 0x4057ce20, 0x1599: 0x4057d020, 0x159a: 0x4057d220, 0x159b: 0x4057d420,
-	0x159c: 0x4057d620, 0x159d: 0x4057d820, 0x159e: 0x4057da20, 0x159f: 0x4057dc20,
-	0x15a0: 0x4057de20, 0x15a1: 0x4057e020, 0x15a2: 0x4057e220, 0x15a3: 0x4057e420,
-	0x15a4: 0x4057e620, 0x15a5: 0x4057e820, 0x15a6: 0x4057ea20, 0x15a7: 0x4057ec20,
-	0x15a8: 0x4057ee20, 0x15a9: 0x4057f020, 0x15aa: 0x4057f220, 0x15ab: 0x4057f420,
-	0x15ac: 0x4057f620, 0x15ad: 0x4057f820, 0x15ae: 0x4057fa20, 0x15af: 0x4057fc20,
-	0x15b0: 0x4057fe20, 0x15b1: 0x40580020, 0x15b2: 0x40580220, 0x15b3: 0x40580420,
-	0x15b4: 0x40580620, 0x15b5: 0x40580820, 0x15b6: 0x40580a20, 0x15b7: 0x40580c20,
-	0x15b8: 0x40580e20, 0x15b9: 0x40581020, 0x15ba: 0x40581220, 0x15bb: 0x40581420,
-	0x15bc: 0x40587a20, 0x15bd: 0x40581620, 0x15be: 0x40581a20, 0x15bf: 0x40581c20,
-	// Block 0x57, offset 0x15c0
-	0x15c0: 0x40581e20, 0x15c1: 0x40582020, 0x15c2: 0x40582220, 0x15c3: 0x40582420,
-	0x15c4: 0x40582620, 0x15c5: 0x40582820, 0x15c6: 0x40582a20, 0x15c7: 0x40582c20,
-	0x15c8: 0x40582e20, 0x15c9: 0x40583020, 0x15ca: 0x40583220, 0x15cb: 0x40583420,
-	0x15cc: 0x40583620, 0x15cd: 0x40583820, 0x15ce: 0x40583c20, 0x15cf: 0x40583e20,
-	0x15d0: 0x40584020, 0x15d1: 0x40584220, 0x15d2: 0x40584420, 0x15d3: 0x40584620,
-	0x15d4: 0x40584820, 0x15d5: 0x40584a20, 0x15d6: 0x40585820, 0x15d7: 0x40585a20,
-	0x15d8: 0x40585c20, 0x15d9: 0x40585e20, 0x15da: 0x40586020, 0x15db: 0x40586220,
-	0x15dc: 0x40586420, 0x15dd: 0x40586620, 0x15de: 0x40586820, 0x15df: 0x40586a20,
-	0x15e0: 0x40586c20, 0x15e1: 0x40586e20, 0x15e2: 0x40587020, 0x15e3: 0x40587220,
-	0x15e4: 0x40587420, 0x15e5: 0x40587620, 0x15e6: 0x40587820, 0x15e7: 0x40587c20,
-	0x15e8: 0x40587e20, 0x15e9: 0x40588020, 0x15ea: 0x40588220, 0x15eb: 0x40588420,
-	0x15ec: 0x40588620, 0x15ed: 0x40588820, 0x15ee: 0x40588a20, 0x15ef: 0x40588c20,
-	0x15f0: 0x40588e20, 0x15f1: 0x40589020, 0x15f2: 0x40589220, 0x15f3: 0x40589420,
-	0x15f4: 0x40589620, 0x15f5: 0x40589820, 0x15f6: 0x40589a20, 0x15f7: 0x40589c20,
-	0x15f8: 0x40589e20, 0x15f9: 0x4058a020, 0x15fa: 0x4058a220, 0x15fb: 0x4058a420,
-	0x15fc: 0x4058a620, 0x15fd: 0x4058a820, 0x15fe: 0x4058aa20, 0x15ff: 0x4058ac20,
-	// Block 0x58, offset 0x1600
-	0x1600: 0x4058ae20, 0x1601: 0x4058b020, 0x1602: 0x4058b220, 0x1603: 0x4058b420,
-	0x1604: 0x4058b620, 0x1605: 0x4058b820, 0x1606: 0x4058ba20, 0x1607: 0x4058bc20,
-	0x1608: 0x4058be20, 0x1609: 0x4058c020, 0x160a: 0x4058c220, 0x160b: 0x4058c420,
-	0x160c: 0x4058c620, 0x160d: 0x4058c820, 0x160e: 0x4058ca20, 0x160f: 0x4058cc20,
-	0x1610: 0x4058ce20, 0x1611: 0x4058d020, 0x1612: 0x4058d220, 0x1613: 0x4058d420,
-	0x1614: 0x4058d620, 0x1615: 0x4058d820, 0x1616: 0x4058da20, 0x1617: 0x4058dc20,
-	0x1618: 0x4058de20, 0x1619: 0x4058e020, 0x161a: 0x4058e220, 0x161b: 0x4058e420,
-	0x161c: 0x4058e620, 0x161d: 0x4058e820, 0x161e: 0x4058ea20, 0x161f: 0x4058ec20,
-	0x1620: 0x4058ee20, 0x1621: 0x4058f020, 0x1622: 0x4058f220, 0x1623: 0x4058f420,
-	0x1624: 0x4058f620, 0x1625: 0x4058f820, 0x1626: 0x4058fa20, 0x1627: 0x4058fc20,
-	0x1628: 0x4058fe20, 0x1629: 0x40590020, 0x162a: 0x40590220, 0x162b: 0x40590420,
-	0x162c: 0x40590620, 0x162d: 0x40590820, 0x162e: 0x40590a20, 0x162f: 0x40590c20,
-	0x1630: 0x40590e20, 0x1631: 0x40591020, 0x1632: 0x40591220, 0x1633: 0x40591420,
-	0x1634: 0x40591620, 0x1635: 0x40591820, 0x1636: 0x40591a20, 0x1637: 0x40591c20,
-	0x1638: 0x40591e20, 0x1639: 0x40592020, 0x163a: 0x40592220, 0x163b: 0x40592420,
-	0x163c: 0x40592620, 0x163d: 0x40592820, 0x163e: 0x40592a20, 0x163f: 0x40592c20,
-	// Block 0x59, offset 0x1640
-	0x1640: 0x40592e20, 0x1641: 0x40593020, 0x1642: 0x40593220, 0x1643: 0x40593420,
-	0x1644: 0x40593620, 0x1645: 0x40593820, 0x1646: 0x40593a20, 0x1647: 0x40593c20,
-	0x1648: 0x40593e20, 0x1649: 0x40594020, 0x164a: 0x40594220, 0x164b: 0x40594420,
-	0x164c: 0x40594620, 0x164d: 0x40594820, 0x164e: 0x40594a20, 0x164f: 0x40594c20,
-	0x1650: 0x40594e20, 0x1651: 0x40595020, 0x1652: 0x40595220, 0x1653: 0x40595420,
-	0x1654: 0x40595620, 0x1655: 0x40595820, 0x1656: 0x40595a20, 0x1657: 0x40595c20,
-	0x1658: 0x40595e20, 0x1659: 0x40596020, 0x165a: 0x40596220, 0x165b: 0x40596420,
-	0x165c: 0x40596620, 0x165d: 0x40596820, 0x165e: 0x40596a20, 0x165f: 0x40596c20,
-	0x1660: 0x40596e20, 0x1661: 0x40597020, 0x1662: 0x40597220, 0x1663: 0x40597420,
-	0x1664: 0x40597620, 0x1665: 0x40597820, 0x1666: 0x40597a20, 0x1667: 0x40597c20,
-	0x1668: 0x40597e20, 0x1669: 0x40598020, 0x166a: 0x40598220, 0x166b: 0x40598420,
-	0x166c: 0x40598620, 0x166d: 0x40598820, 0x166e: 0x40598a20, 0x166f: 0x40598c20,
-	0x1670: 0x40598e20, 0x1671: 0x40599020, 0x1672: 0x40599220, 0x1673: 0x40599420,
-	0x1674: 0x40599620, 0x1675: 0x40599820, 0x1676: 0x40599a20, 0x1677: 0x40599c20,
-	0x1678: 0x40599e20, 0x1679: 0x4059a020, 0x167a: 0x4059a220, 0x167b: 0x4059a420,
-	0x167c: 0x4059a620, 0x167d: 0x4059a820, 0x167e: 0x4059aa20, 0x167f: 0x4059ac20,
-	// Block 0x5a, offset 0x1680
-	0x1680: 0x4059ae20, 0x1681: 0x4059b020, 0x1682: 0x4059b220, 0x1683: 0x4059b420,
-	0x1684: 0x4059b620, 0x1685: 0x4059b820, 0x1686: 0x4059ba20, 0x1687: 0x4059bc20,
-	0x1688: 0x4059be20, 0x1689: 0x4059c020, 0x168a: 0x4059c220, 0x168b: 0x4059c420,
-	0x168c: 0x4059c620, 0x168d: 0x4059c820, 0x168e: 0x4059ca20, 0x168f: 0x4059cc20,
-	0x1690: 0x4059ce20, 0x1691: 0x4059d020, 0x1692: 0x4059d220, 0x1693: 0x4059d420,
-	0x1694: 0x4059d620, 0x1695: 0x4059d820, 0x1696: 0x4059da20, 0x1697: 0x4059dc20,
-	0x1698: 0x4059de20, 0x1699: 0x4059e020, 0x169a: 0x4059e220, 0x169b: 0x4059e420,
-	0x169c: 0x4059e620, 0x169d: 0x4059e820, 0x169e: 0x4059ea20, 0x169f: 0x4059ec20,
-	0x16a0: 0x4059ee20, 0x16a1: 0x4059f020, 0x16a2: 0x4059f220, 0x16a3: 0x4059f420,
-	0x16a4: 0x4059f620, 0x16a5: 0x4059f820, 0x16a6: 0x4059fa20, 0x16a7: 0x4059fc20,
-	0x16a8: 0x4059fe20, 0x16a9: 0x405a0020, 0x16aa: 0x405a0220, 0x16ab: 0x405a0420,
-	0x16ac: 0x405a0620, 0x16ad: 0x4005d420, 0x16ae: 0x4002f420, 0x16af: 0x40581820,
-	0x16b0: 0x40583a20, 0x16b1: 0x40584c20, 0x16b2: 0x40584e20, 0x16b3: 0x40585020,
-	0x16b4: 0x40585220, 0x16b5: 0x40585420, 0x16b6: 0x40585620, 0x16b7: 0x405a0820,
-	0x16b8: 0x405a0a20, 0x16b9: 0x405a0c20, 0x16ba: 0x405a0e20, 0x16bb: 0x405a1020,
-	0x16bc: 0x405a1220, 0x16bd: 0x405a1420, 0x16be: 0x405a1620, 0x16bf: 0x405a1820,
-	// Block 0x5b, offset 0x16c0
-	0x16c0: 0x00021284, 0x16c1: 0x405aa620, 0x16c2: 0x405aa820, 0x16c3: 0x405aaa20,
-	0x16c4: 0x405aac20, 0x16c5: 0x405aae20, 0x16c6: 0x405ab020, 0x16c7: 0x405ab220,
-	0x16c8: 0x405ab420, 0x16c9: 0x405ab620, 0x16ca: 0x405ab820, 0x16cb: 0x405aba20,
-	0x16cc: 0x405abc20, 0x16cd: 0x405abe20, 0x16ce: 0x405ac020, 0x16cf: 0x405ac220,
-	0x16d0: 0x405ac420, 0x16d1: 0x405ac620, 0x16d2: 0x405ac820, 0x16d3: 0x405aca20,
-	0x16d4: 0x405acc20, 0x16d5: 0x405ace20, 0x16d6: 0x405ad020, 0x16d7: 0x405ad220,
-	0x16d8: 0x405ad420, 0x16d9: 0x405ad620, 0x16da: 0x405ad820, 0x16db: 0x40040820,
-	0x16dc: 0x40040a20,
-	0x16e0: 0x405ada20, 0x16e1: 0xe000202d, 0x16e2: 0x405adc20, 0x16e3: 0x405b1420,
-	0x16e4: 0xe0002030, 0x16e5: 0xe0002033, 0x16e6: 0x405ade20, 0x16e7: 0xe0002036,
-	0x16e8: 0x405ae020, 0x16e9: 0xe000203c, 0x16ea: 0x405b1020, 0x16eb: 0x405b1220,
-	0x16ec: 0xe000203f, 0x16ed: 0xe0002042, 0x16ee: 0xe0002045, 0x16ef: 0x405ae220,
-	0x16f0: 0x405ae420, 0x16f1: 0x405ae620, 0x16f2: 0x405ae820, 0x16f3: 0xe0002048,
-	0x16f4: 0xe000204b, 0x16f5: 0xe000204e, 0x16f6: 0xe0002051, 0x16f7: 0x405aea20,
-	0x16f8: 0x405b1a20, 0x16f9: 0x405aec20, 0x16fa: 0x405aee20, 0x16fb: 0xe0002057,
-	0x16fc: 0xe000205a, 0x16fd: 0xe000205d, 0x16fe: 0x405af020, 0x16ff: 0xe0002060,
-	// Block 0x5c, offset 0x1700
-	0x1700: 0xe0002063, 0x1701: 0x405af220, 0x1702: 0xe0002066, 0x1703: 0x405af420,
-	0x1704: 0xe0002069, 0x1705: 0x405af620, 0x1706: 0xe000206c, 0x1707: 0x405af820,
-	0x1708: 0x405afa20, 0x1709: 0x405afc20, 0x170a: 0x405afe20, 0x170b: 0xe0002075,
-	0x170c: 0xe000207b, 0x170d: 0xe000207e, 0x170e: 0xe0002081, 0x170f: 0x405b0020,
-	0x1710: 0xe0002084, 0x1711: 0xe0002087, 0x1712: 0x405b0220, 0x1713: 0xe000208a,
-	0x1714: 0xe000208d, 0x1715: 0xe0002072, 0x1716: 0x405b0420, 0x1717: 0x405b0620,
-	0x1718: 0xe0002090, 0x1719: 0xe0002093, 0x171a: 0x405b0820, 0x171b: 0xe000209b,
-	0x171c: 0x405b0a20, 0x171d: 0xe000209e, 0x171e: 0x405b0c20, 0x171f: 0x405b0e20,
-	0x1720: 0x405b1620, 0x1721: 0x405b1e20, 0x1722: 0x405b2020, 0x1723: 0x405b1820,
-	0x1724: 0x405b1c20, 0x1725: 0x405b2220, 0x1726: 0x405b2420, 0x1727: 0xe00020a1,
-	0x1728: 0xe00020a4, 0x1729: 0xe0002054, 0x172a: 0xe0002078, 0x172b: 0x4002b220,
-	0x172c: 0x4002b420, 0x172d: 0x4002b620, 0x172e: 0xe000206f, 0x172f: 0xe0002096,
-	0x1730: 0xe0002039,
-	// Block 0x5d, offset 0x1740
-	0x1740: 0x404c7620, 0x1741: 0x404c7820, 0x1742: 0x404c7a20, 0x1743: 0x404c7c20,
-	0x1744: 0x404c7e20, 0x1745: 0x404c8020, 0x1746: 0x404c8220, 0x1747: 0x404c8420,
-	0x1748: 0x404c8620, 0x1749: 0x404c8820, 0x174a: 0x404c8a20, 0x174b: 0x404c8c20,
-	0x174c: 0x404c8e20, 0x174e: 0x404c9020, 0x174f: 0x404c9220,
-	0x1750: 0x404c9420, 0x1751: 0x404c9620, 0x1752: 0x404c9820, 0x1753: 0x404c9a20,
-	0x1754: 0x8209264e,
-	0x1760: 0x404c9e20, 0x1761: 0x404ca020, 0x1762: 0x404ca220, 0x1763: 0x404ca420,
-	0x1764: 0x404ca620, 0x1765: 0x404ca820, 0x1766: 0x404caa20, 0x1767: 0x404cac20,
-	0x1768: 0x404cae20, 0x1769: 0x404cb020, 0x176a: 0x404cb220, 0x176b: 0x404cb420,
-	0x176c: 0x404cb620, 0x176d: 0x404cb820, 0x176e: 0x404cba20, 0x176f: 0x404cbc20,
-	0x1770: 0x404cbe20, 0x1771: 0x404cc020, 0x1772: 0x404cc220, 0x1773: 0x404cc420,
-	0x1774: 0x82092663, 0x1775: 0x40031c20, 0x1776: 0x40031e20,
-	// Block 0x5e, offset 0x1780
-	0x1780: 0x404cc820, 0x1781: 0x404cca20, 0x1782: 0x404ccc20, 0x1783: 0x404cce20,
-	0x1784: 0x404cd020, 0x1785: 0x404cd220, 0x1786: 0x404cd420, 0x1787: 0x404cd620,
-	0x1788: 0x404cd820, 0x1789: 0x404cda20, 0x178a: 0x404cdc20, 0x178b: 0x404cde20,
-	0x178c: 0x404ce020, 0x178d: 0x404ce220, 0x178e: 0x404ce420, 0x178f: 0x404ce620,
-	0x1790: 0x404ce820, 0x1791: 0x404cea20, 0x1792: 0x404cec20, 0x1793: 0x404cee20,
-	0x17a0: 0x404cf020, 0x17a1: 0x404cf220, 0x17a2: 0x404cf420, 0x17a3: 0x404cf620,
-	0x17a4: 0x404cf820, 0x17a5: 0x404cfa20, 0x17a6: 0x404cfc20, 0x17a7: 0x404cfe20,
-	0x17a8: 0x404d0020, 0x17a9: 0x404d0220, 0x17aa: 0x404d0420, 0x17ab: 0x404d0620,
-	0x17ac: 0x404d0820, 0x17ae: 0x404d0a20, 0x17af: 0x404d0c20,
-	0x17b0: 0x404d0e20, 0x17b2: 0x404d1020, 0x17b3: 0x404d1220,
-	// Block 0x5f, offset 0x17c0
-	0x17c0: 0x404fa420, 0x17c1: 0x404fa620, 0x17c2: 0x404fa820, 0x17c3: 0x404faa20,
-	0x17c4: 0x404fac20, 0x17c5: 0x404fae20, 0x17c6: 0x404fb020, 0x17c7: 0x404fb220,
-	0x17c8: 0x404fb420, 0x17c9: 0x404fb620, 0x17ca: 0x404fb820, 0x17cb: 0x404fba20,
-	0x17cc: 0x404fbc20, 0x17cd: 0x404fbe20, 0x17ce: 0x404fc020, 0x17cf: 0x404fc220,
-	0x17d0: 0x404fc420, 0x17d1: 0x404fc620, 0x17d2: 0x404fc820, 0x17d3: 0x404fca20,
-	0x17d4: 0x404fcc20, 0x17d5: 0x404fce20, 0x17d6: 0x404fd020, 0x17d7: 0x404fd220,
-	0x17d8: 0x404fd420, 0x17d9: 0x404fd620, 0x17da: 0x404fd820, 0x17db: 0x404fda20,
-	0x17dc: 0x404fdc20, 0x17dd: 0x404fde20, 0x17de: 0x404fe020, 0x17df: 0x404fe220,
-	0x17e0: 0x404fe420, 0x17e1: 0x404fe620, 0x17e2: 0x404fe820, 0x17e3: 0x404fec20,
-	0x17e4: 0x404fee20, 0x17e5: 0x404ff020, 0x17e6: 0x404ff220, 0x17e7: 0x404ff420,
-	0x17e8: 0x404ff620, 0x17e9: 0x404ff820, 0x17ea: 0x404ffa20, 0x17eb: 0x404ffc20,
-	0x17ec: 0x404ffe20, 0x17ed: 0x40500020, 0x17ee: 0x40500220, 0x17ef: 0x40500420,
-	0x17f0: 0x40500620, 0x17f1: 0x40500820, 0x17f2: 0x40500a20, 0x17f3: 0x40500c20,
-	0x17f4: 0xa0000000, 0x17f5: 0xa0000000, 0x17f6: 0x40500e20, 0x17f7: 0x40501020,
-	0x17f8: 0x40501220, 0x17f9: 0x40501420, 0x17fa: 0x40501620, 0x17fb: 0x40501820,
-	0x17fc: 0x40501a20, 0x17fd: 0x40501c20, 0x17fe: 0x40501e20, 0x17ff: 0x40502020,
-	// Block 0x60, offset 0x1800
-	0x1800: 0x40502220, 0x1801: 0x40502420, 0x1802: 0x40502620, 0x1803: 0x40502820,
-	0x1804: 0x40502a20, 0x1805: 0x40502c20, 0x1806: 0xa000f302, 0x1807: 0xa000f402,
-	0x1808: 0xa0011402, 0x1809: 0xa0011502, 0x180a: 0xa0011602, 0x180b: 0xa0005f02,
-	0x180c: 0xa0005f02, 0x180d: 0xa0005f02, 0x180e: 0xa0005f02, 0x180f: 0xa0005f02,
-	0x1810: 0xa0005f02, 0x1811: 0xa0005f02, 0x1812: 0x82092817, 0x1813: 0xa0000000,
-	0x1814: 0x40032620, 0x1815: 0x40032820, 0x1816: 0x4002ac20, 0x1817: 0x4027bc20,
-	0x1818: 0x4005bc20, 0x1819: 0x4005be20, 0x181a: 0x4005c020, 0x181b: 0x4027f620,
-	0x181c: 0x404fea20, 0x181d: 0xae605f02,
-	0x1820: 0xe00001b5, 0x1821: 0xe0000249, 0x1822: 0xe0000361, 0x1823: 0xe000043b,
-	0x1824: 0xe0000510, 0x1825: 0xe00005da, 0x1826: 0xe00006a5, 0x1827: 0xe000074d,
-	0x1828: 0xe00007f9, 0x1829: 0xe000089e,
-	0x1830: 0xe00001b8, 0x1831: 0xe000024c, 0x1832: 0xe0000364, 0x1833: 0xe000043e,
-	0x1834: 0xe0000513, 0x1835: 0xe00005dd, 0x1836: 0xe00006a8, 0x1837: 0xe0000750,
-	0x1838: 0xe00007fc, 0x1839: 0xe00008a1,
-	// Block 0x61, offset 0x1840
-	0x1840: 0x40056a20, 0x1841: 0x4002e620, 0x1842: 0x40025220, 0x1843: 0x4002f020,
-	0x1844: 0x4002a620, 0x1845: 0x4002a820, 0x1846: 0x40022220, 0x1847: 0x40022420,
-	0x1848: 0x40025420, 0x1849: 0x4002f220, 0x184a: 0xa0000000, 0x184b: 0xa0000000,
-	0x184c: 0xa0000000, 0x184d: 0xa0000000, 0x184e: 0x40020c20,
-	0x1850: 0xe00001c7, 0x1851: 0xe000025b, 0x1852: 0xe0000373, 0x1853: 0xe000044d,
-	0x1854: 0xe0000522, 0x1855: 0xe00005ec, 0x1856: 0xe00006b7, 0x1857: 0xe000075f,
-	0x1858: 0xe000080b, 0x1859: 0xe00008b0,
-	0x1860: 0x40533820, 0x1861: 0x40533c20, 0x1862: 0x40534220, 0x1863: 0x40534e20,
-	0x1864: 0x40535220, 0x1865: 0x40535820, 0x1866: 0x40535c20, 0x1867: 0x40536220,
-	0x1868: 0x40536420, 0x1869: 0x40536620, 0x186a: 0x40537020, 0x186b: 0x40537420,
-	0x186c: 0x40537a20, 0x186d: 0x40537e20, 0x186e: 0x40538820, 0x186f: 0x40538c20,
-	0x1870: 0x40538e20, 0x1871: 0x40539020, 0x1872: 0x40539e20, 0x1873: 0x4053a420,
-	0x1874: 0x4053aa20, 0x1875: 0x4053b420, 0x1876: 0x4053bc20, 0x1877: 0x4053c220,
-	0x1878: 0x4053c620, 0x1879: 0x4053ca20, 0x187a: 0x4053d020, 0x187b: 0x4053da20,
-	0x187c: 0x4053dc20, 0x187d: 0x4053e220, 0x187e: 0x4053ea20, 0x187f: 0x4053f020,
-	// Block 0x62, offset 0x1880
-	0x1880: 0x4053f220, 0x1881: 0x4053f420, 0x1882: 0x4053f620, 0x1883: 0x40533620,
-	0x1884: 0x40533e20, 0x1885: 0x40534420, 0x1886: 0x40535020, 0x1887: 0x40535420,
-	0x1888: 0x40535a20, 0x1889: 0x40535e20, 0x188a: 0x40536820, 0x188b: 0x40537220,
-	0x188c: 0x40537620, 0x188d: 0x40537c20, 0x188e: 0x40538020, 0x188f: 0x40538a20,
-	0x1890: 0x4053a020, 0x1891: 0x4053a620, 0x1892: 0x4053ac20, 0x1893: 0x4053b620,
-	0x1894: 0x4053de20, 0x1895: 0x4053be20, 0x1896: 0x4053c820, 0x1897: 0x4053d220,
-	0x1898: 0x4053e620, 0x1899: 0x4053ec20, 0x189a: 0x4053f820, 0x189b: 0x4053fa20,
-	0x189c: 0x4053b020, 0x189d: 0x40534020, 0x189e: 0x40534620, 0x189f: 0x40534c20,
-	0x18a0: 0x40536020, 0x18a1: 0x40535620, 0x18a2: 0x40536a20, 0x18a3: 0x4053d420,
-	0x18a4: 0x40538220, 0x18a5: 0x40538620, 0x18a6: 0x40537820, 0x18a7: 0x40539220,
-	0x18a8: 0x4053a220, 0x18a9: 0x4053a820, 0x18aa: 0x4053b820, 0x18ab: 0x4053cc20,
-	0x18ac: 0x4053e820, 0x18ad: 0x4053ee20, 0x18ae: 0x4053e020, 0x18af: 0x4053e420,
-	0x18b0: 0x4053fc20, 0x18b1: 0x4053ae20, 0x18b2: 0x4053c020, 0x18b3: 0x40534820,
-	0x18b4: 0x4053d620, 0x18b5: 0x4053c420, 0x18b6: 0x4053ce20, 0x18b7: 0x4053ba20,
-	// Block 0x63, offset 0x18c0
-	0x18c0: 0x40532820, 0x18c1: 0x40532a20, 0x18c2: 0x40532c20, 0x18c3: 0x40532e20,
-	0x18c4: 0x40533020, 0x18c5: 0x40533220, 0x18c6: 0x40533420, 0x18c7: 0x40533a20,
-	0x18c8: 0x40534a20, 0x18c9: 0x4053d820, 0x18ca: 0x40536c20, 0x18cb: 0x4053b220,
-	0x18cc: 0x4053fe20, 0x18cd: 0x40540220, 0x18ce: 0x40540420, 0x18cf: 0x40540820,
-	0x18d0: 0x40540a20, 0x18d1: 0x40541020, 0x18d2: 0x40541420, 0x18d3: 0x40541620,
-	0x18d4: 0x40541a20, 0x18d5: 0x40541e20, 0x18d6: 0x40542220, 0x18d7: 0x40542420,
-	0x18d8: 0x40540c20, 0x18d9: 0x40542020, 0x18da: 0x40538420, 0x18db: 0x40536e20,
-	0x18dc: 0x40539420, 0x18dd: 0x40539620, 0x18de: 0x40540020, 0x18df: 0x40540620,
-	0x18e0: 0x40540e20, 0x18e1: 0x40541220, 0x18e2: 0x40539820, 0x18e3: 0x40541c20,
-	0x18e4: 0x40539a20, 0x18e5: 0x40539c20, 0x18e6: 0x40542620, 0x18e7: 0x40542820,
-	0x18e8: 0x40541820, 0x18e9: 0x82e42a16, 0x18ea: 0x40542a20,
-	0x18f0: 0x405a1a20, 0x18f1: 0x405a1c20, 0x18f2: 0x405a1e20, 0x18f3: 0x405a2020,
-	0x18f4: 0x405a2220, 0x18f5: 0x405a2420, 0x18f6: 0x405a2620, 0x18f7: 0x405a2820,
-	0x18f8: 0x405a2a20, 0x18f9: 0x405a2c20, 0x18fa: 0x405a2e20, 0x18fb: 0x405a3020,
-	0x18fc: 0x405a3220, 0x18fd: 0x405a3420, 0x18fe: 0x405a3620, 0x18ff: 0x405a3820,
-	// Block 0x64, offset 0x1900
-	0x1900: 0x405a3a20, 0x1901: 0x405a3c20, 0x1902: 0x405a3e20, 0x1903: 0x405a4020,
-	0x1904: 0x405a4220, 0x1905: 0x405a4420, 0x1906: 0x405a4620, 0x1907: 0x405a4820,
-	0x1908: 0x405a4a20, 0x1909: 0x405a4c20, 0x190a: 0x405a4e20, 0x190b: 0x405a5020,
-	0x190c: 0x405a5220, 0x190d: 0x405a5420, 0x190e: 0x405a5620, 0x190f: 0x405a5820,
-	0x1910: 0x405a5a20, 0x1911: 0x405a5c20, 0x1912: 0x405a5e20, 0x1913: 0x405a6020,
-	0x1914: 0x405a6220, 0x1915: 0x405a6420, 0x1916: 0x405a6620, 0x1917: 0x405a6820,
-	0x1918: 0x405a6a20, 0x1919: 0x405a6c20, 0x191a: 0x405a6e20, 0x191b: 0x405a7020,
-	0x191c: 0x405a7220, 0x191d: 0x405a7420, 0x191e: 0x405a7620, 0x191f: 0x405a7820,
-	0x1920: 0x405a7a20, 0x1921: 0x405a7c20, 0x1922: 0x405a7e20, 0x1923: 0x405a8020,
-	0x1924: 0x405a8220, 0x1925: 0x405a8420, 0x1926: 0x405a8620, 0x1927: 0x405a8820,
-	0x1928: 0x405a8a20, 0x1929: 0x405a8c20, 0x192a: 0x405a8e20, 0x192b: 0x405a9020,
-	0x192c: 0x405a9220, 0x192d: 0x405a9420, 0x192e: 0x405a9620, 0x192f: 0x405a9820,
-	0x1930: 0x405a9a20, 0x1931: 0x405a9c20, 0x1932: 0x405a9e20, 0x1933: 0x405aa020,
-	0x1934: 0x405aa220, 0x1935: 0x405aa420,
-	// Block 0x65, offset 0x1940
-	0x1940: 0x404c1220, 0x1941: 0x404c1420, 0x1942: 0x404c1620, 0x1943: 0x404c1820,
-	0x1944: 0x404c1a20, 0x1945: 0x404c1c20, 0x1946: 0x404c1e20, 0x1947: 0x404c2020,
-	0x1948: 0x404c2220, 0x1949: 0x404c2420, 0x194a: 0x404c2620, 0x194b: 0x404c2820,
-	0x194c: 0x404c2a20, 0x194d: 0x404c2c20, 0x194e: 0x404c2e20, 0x194f: 0x404c3020,
-	0x1950: 0x404c3220, 0x1951: 0x404c3420, 0x1952: 0x404c3620, 0x1953: 0x404c3820,
-	0x1954: 0x404c3a20, 0x1955: 0x404c3c20, 0x1956: 0x404c3e20, 0x1957: 0x404c4020,
-	0x1958: 0x404c4220, 0x1959: 0x404c4420, 0x195a: 0x404c4620, 0x195b: 0x404c4820,
-	0x195c: 0x404c4a20,
-	0x1960: 0x404c4c20, 0x1961: 0x404c4e20, 0x1962: 0x404c5020, 0x1963: 0x404c5220,
-	0x1964: 0x404c5420, 0x1965: 0x404c5620, 0x1966: 0x404c5820, 0x1967: 0x404c5a20,
-	0x1968: 0x404c5c20, 0x1969: 0x404c5e20, 0x196a: 0x404c6020, 0x196b: 0x404c6220,
-	0x1970: 0x404c6420, 0x1971: 0x404c6620, 0x1972: 0x404c6820, 0x1973: 0x404c6a20,
-	0x1974: 0x404c6c20, 0x1975: 0x404c6e20, 0x1976: 0x404c7020, 0x1977: 0x404c7220,
-	0x1978: 0x404c7420, 0x1979: 0xade11f02, 0x197a: 0xae612002, 0x197b: 0xadc12102,
-	// Block 0x66, offset 0x1980
-	0x1980: 0x4007a620,
-	0x1984: 0x4002c220, 0x1985: 0x4002d220, 0x1986: 0xe000018e, 0x1987: 0xe000021f,
-	0x1988: 0xe000033a, 0x1989: 0xe0000414, 0x198a: 0xe00004e9, 0x198b: 0xe00005b3,
-	0x198c: 0xe000067e, 0x198d: 0xe0000726, 0x198e: 0xe00007d2, 0x198f: 0xe0000877,
-	0x1990: 0x40503020, 0x1991: 0x40503220, 0x1992: 0x40503420, 0x1993: 0x40503620,
-	0x1994: 0x40503820, 0x1995: 0x40503a20, 0x1996: 0x40503c20, 0x1997: 0x40503e20,
-	0x1998: 0x40504020, 0x1999: 0x40504220, 0x199a: 0x40504420, 0x199b: 0x40504620,
-	0x199c: 0x40504820, 0x199d: 0x40504a20, 0x199e: 0x40504c20, 0x199f: 0x40504e20,
-	0x19a0: 0x40505020, 0x19a1: 0x40505220, 0x19a2: 0x40505420, 0x19a3: 0x40505620,
-	0x19a4: 0x40505820, 0x19a5: 0x40505a20, 0x19a6: 0x40505c20, 0x19a7: 0x40505e20,
-	0x19a8: 0x40506020, 0x19a9: 0x40506220, 0x19aa: 0x40506420, 0x19ab: 0x40506620,
-	0x19ac: 0x40506820, 0x19ad: 0x40506a20,
-	0x19b0: 0x40506c20, 0x19b1: 0x40506e20, 0x19b2: 0x40507020, 0x19b3: 0x40507220,
-	0x19b4: 0x40507420,
-	// Block 0x67, offset 0x19c0
-	0x19c0: 0x40507620, 0x19c1: 0x40507820, 0x19c2: 0x40507a20, 0x19c3: 0x40507c20,
-	0x19c4: 0x40507e20, 0x19c5: 0x40508020, 0x19c6: 0x40508220, 0x19c7: 0x40508420,
-	0x19c8: 0x40508620, 0x19c9: 0x40508820, 0x19ca: 0x40508a20, 0x19cb: 0x40508c20,
-	0x19cc: 0x40508e20, 0x19cd: 0x40509020, 0x19ce: 0x40509220, 0x19cf: 0x40509420,
-	0x19d0: 0x40509620, 0x19d1: 0x40509820, 0x19d2: 0x40509a20, 0x19d3: 0x40509c20,
-	0x19d4: 0x40509e20, 0x19d5: 0x4050a020, 0x19d6: 0x4050a220, 0x19d7: 0x4050a420,
-	0x19d8: 0x4050a620, 0x19d9: 0x4050a820, 0x19da: 0x4050aa20, 0x19db: 0x4050ac20,
-	0x19dc: 0x4050ae20, 0x19dd: 0x4050b020, 0x19de: 0x4050b220, 0x19df: 0x4050b420,
-	0x19e0: 0x4050b620, 0x19e1: 0x4050b820, 0x19e2: 0x4050ba20, 0x19e3: 0x4050bc20,
-	0x19e4: 0x4050be20, 0x19e5: 0x4050c020, 0x19e6: 0x4050c220, 0x19e7: 0x4050c420,
-	0x19e8: 0x4050c620, 0x19e9: 0x4050c820, 0x19ea: 0x4050ca20, 0x19eb: 0x4050cc20,
-	0x19f0: 0x4050ce20, 0x19f1: 0x4050d020, 0x19f2: 0x4050d220, 0x19f3: 0x4050d420,
-	0x19f4: 0x4050d620, 0x19f5: 0x4050d820, 0x19f6: 0x4050da20, 0x19f7: 0x4050dc20,
-	0x19f8: 0x4050de20, 0x19f9: 0x4050e020, 0x19fa: 0x4050e220, 0x19fb: 0x4050e420,
-	0x19fc: 0x4050e620, 0x19fd: 0x4050e820, 0x19fe: 0x4050ea20, 0x19ff: 0x4050ec20,
-	// Block 0x68, offset 0x1a00
-	0x1a00: 0x4050ee20, 0x1a01: 0x4050f020, 0x1a02: 0x4050f220, 0x1a03: 0x4050f420,
-	0x1a04: 0x4050f620, 0x1a05: 0x4050f820, 0x1a06: 0x4050fa20, 0x1a07: 0x4050fc20,
-	0x1a08: 0x4050fe20, 0x1a09: 0x40510020,
-	0x1a10: 0xe0000191, 0x1a11: 0xe0000222, 0x1a12: 0xe000033d, 0x1a13: 0xe0000417,
-	0x1a14: 0xe00004ec, 0x1a15: 0xe00005b6, 0x1a16: 0xe0000681, 0x1a17: 0xe0000729,
-	0x1a18: 0xe00007d5, 0x1a19: 0xe000087a, 0x1a1a: 0xe0000225,
-	0x1a1e: 0xe0002022, 0x1a1f: 0xe0002025,
-	0x1a20: 0x4007b220, 0x1a21: 0x4007b420, 0x1a22: 0x4007b620, 0x1a23: 0x4007b820,
-	0x1a24: 0x4007ba20, 0x1a25: 0x4007bc20, 0x1a26: 0x4007be20, 0x1a27: 0x4007c020,
-	0x1a28: 0x4007c220, 0x1a29: 0x4007c420, 0x1a2a: 0x4007c620, 0x1a2b: 0x4007c820,
-	0x1a2c: 0x4007ca20, 0x1a2d: 0x4007cc20, 0x1a2e: 0x4007ce20, 0x1a2f: 0x4007d020,
-	0x1a30: 0x4007d220, 0x1a31: 0x4007d420, 0x1a32: 0x4007d620, 0x1a33: 0x4007d820,
-	0x1a34: 0x4007da20, 0x1a35: 0x4007dc20, 0x1a36: 0x4007de20, 0x1a37: 0x4007e020,
-	0x1a38: 0x4007e220, 0x1a39: 0x4007e420, 0x1a3a: 0x4007e620, 0x1a3b: 0x4007e820,
-	0x1a3c: 0x4007ea20, 0x1a3d: 0x4007ec20, 0x1a3e: 0x4007ee20, 0x1a3f: 0x4007f020,
-	// Block 0x69, offset 0x1a40
-	0x1a40: 0x404d1420, 0x1a41: 0x404d1620, 0x1a42: 0x404d1820, 0x1a43: 0x404d1a20,
-	0x1a44: 0x404d1c20, 0x1a45: 0x404d1e20, 0x1a46: 0x404d2020, 0x1a47: 0x404d2220,
-	0x1a48: 0x404d2420, 0x1a49: 0x404d2620, 0x1a4a: 0x404d2820, 0x1a4b: 0x404d2a20,
-	0x1a4c: 0x404d2c20, 0x1a4d: 0x404d2e20, 0x1a4e: 0x404d3020, 0x1a4f: 0x404d3220,
-	0x1a50: 0x404d3420, 0x1a51: 0x404d3620, 0x1a52: 0x404d3820, 0x1a53: 0x404d3a20,
-	0x1a54: 0x404d3c20, 0x1a55: 0x404d3e20, 0x1a56: 0x404d4020, 0x1a57: 0x82e626a1,
-	0x1a58: 0x82dc26a2, 0x1a59: 0x404d4620, 0x1a5a: 0x404d4820, 0x1a5b: 0x404d4a20,
-	0x1a5e: 0x40036620, 0x1a5f: 0x40036820,
-	0x1a60: 0x40510220, 0x1a61: 0x40510420, 0x1a62: 0x40510620, 0x1a63: 0x40510820,
-	0x1a64: 0x40510a20, 0x1a65: 0x40510c20, 0x1a66: 0x40510e20, 0x1a67: 0x40511020,
-	0x1a68: 0x40511220, 0x1a69: 0x40511420, 0x1a6a: 0x40511620, 0x1a6b: 0x40511820,
-	0x1a6c: 0x40511a20, 0x1a6d: 0x40511c20, 0x1a6e: 0x40511e20, 0x1a6f: 0x40512020,
-	0x1a70: 0x40512220, 0x1a71: 0x40512420, 0x1a72: 0x40512620, 0x1a73: 0x40512820,
-	0x1a74: 0x40512a20, 0x1a75: 0x40512c20, 0x1a76: 0x40512e20, 0x1a77: 0x40513020,
-	0x1a78: 0x40513220, 0x1a79: 0x40513420, 0x1a7a: 0x40513620, 0x1a7b: 0x40513820,
-	0x1a7c: 0x40513a20, 0x1a7d: 0x40513c20, 0x1a7e: 0x40513e20, 0x1a7f: 0x40514020,
-	// Block 0x6a, offset 0x1a80
-	0x1a80: 0x40514220, 0x1a81: 0x40514420, 0x1a82: 0x40514620, 0x1a83: 0x40514820,
-	0x1a84: 0x40514a20, 0x1a85: 0x40514c20, 0x1a86: 0x40514e20, 0x1a87: 0x40515020,
-	0x1a88: 0x40515220, 0x1a89: 0x40515420, 0x1a8a: 0x40515620, 0x1a8b: 0x40515820,
-	0x1a8c: 0x40515a20, 0x1a8d: 0x40516c20, 0x1a8e: 0x40516e20, 0x1a8f: 0x40517020,
-	0x1a90: 0x40517220, 0x1a91: 0x40517420, 0x1a92: 0x40517620, 0x1a93: 0x40515c20,
-	0x1a94: 0xe0002029, 0x1a95: 0x40516020, 0x1a96: 0x40516220, 0x1a97: 0x40516420,
-	0x1a98: 0x00510e84, 0x1a99: 0x00510e84, 0x1a9a: 0x00513884, 0x1a9b: 0x00513884,
-	0x1a9c: 0x40516620, 0x1a9d: 0x40516820, 0x1a9e: 0x40516a20,
-	0x1aa0: 0x820928cd, 0x1aa1: 0x40517820, 0x1aa2: 0x40517c20, 0x1aa3: 0x40517e20,
-	0x1aa4: 0x00517e84, 0x1aa5: 0x40518020, 0x1aa6: 0x40518220, 0x1aa7: 0x40518420,
-	0x1aa8: 0x40518620, 0x1aa9: 0x40518820, 0x1aaa: 0x40518a20, 0x1aab: 0x40515e20,
-	0x1aac: 0x40517a20, 0x1aad: 0x40519820, 0x1aae: 0x40518c20, 0x1aaf: 0x40518e20,
-	0x1ab0: 0x40519220, 0x1ab1: 0x40519420, 0x1ab2: 0x40519620, 0x1ab3: 0x40519020,
-	0x1ab4: 0xa000f302, 0x1ab5: 0xae611702, 0x1ab6: 0xae611802, 0x1ab7: 0xae611902,
-	0x1ab8: 0xae611a02, 0x1ab9: 0xae611b02, 0x1aba: 0xae611c02, 0x1abb: 0xae611d02,
-	0x1abc: 0xae611e02, 0x1abf: 0xadc00000,
-	// Block 0x6b, offset 0x1ac0
-	0x1ac0: 0xe0000194, 0x1ac1: 0xe0000228, 0x1ac2: 0xe0000340, 0x1ac3: 0xe000041a,
-	0x1ac4: 0xe00004ef, 0x1ac5: 0xe00005b9, 0x1ac6: 0xe0000684, 0x1ac7: 0xe000072c,
-	0x1ac8: 0xe00007d8, 0x1ac9: 0xe000087d,
-	0x1ad0: 0xe0000197, 0x1ad1: 0xe000022b, 0x1ad2: 0xe0000343, 0x1ad3: 0xe000041d,
-	0x1ad4: 0xe00004f2, 0x1ad5: 0xe00005bc, 0x1ad6: 0xe0000687, 0x1ad7: 0xe000072f,
-	0x1ad8: 0xe00007db, 0x1ad9: 0xe0000880,
-	0x1ae0: 0x4005c220, 0x1ae1: 0x4005c420, 0x1ae2: 0x4005c620, 0x1ae3: 0x4005c820,
-	0x1ae4: 0x4005ca20, 0x1ae5: 0x4005cc20, 0x1ae6: 0x4005ce20, 0x1ae7: 0x4027be20,
-	0x1ae8: 0x40032a20, 0x1ae9: 0x40032c20, 0x1aea: 0x40032e20, 0x1aeb: 0x40033020,
-	0x1aec: 0x4005d020, 0x1aed: 0x4005d220,
-	// Block 0x6c, offset 0x1b00
-	0x1b00: 0xa000f202, 0x1b01: 0xa000f202, 0x1b02: 0xa000f302, 0x1b03: 0xa000f702,
-	0x1b04: 0xa000f402, 0x1b05: 0xc3190821, 0x1b06: 0x40522820, 0x1b07: 0xc31b0821,
-	0x1b08: 0x40522c20, 0x1b09: 0xc31d0821, 0x1b0a: 0x40523020, 0x1b0b: 0xc31f0821,
-	0x1b0c: 0x40523420, 0x1b0d: 0xc3210821, 0x1b0e: 0x40523820, 0x1b0f: 0x40523a20,
-	0x1b10: 0x40523c20, 0x1b11: 0xc3230821, 0x1b12: 0x40524020, 0x1b13: 0x40524220,
-	0x1b14: 0x40524820, 0x1b15: 0x40524a20, 0x1b16: 0x40524c20, 0x1b17: 0x40524e20,
-	0x1b18: 0x40525020, 0x1b19: 0x40525220, 0x1b1a: 0x40525420, 0x1b1b: 0x40525620,
-	0x1b1c: 0x40525820, 0x1b1d: 0x40525a20, 0x1b1e: 0x40525c20, 0x1b1f: 0x40525e20,
-	0x1b20: 0x40526020, 0x1b21: 0x40526220, 0x1b22: 0x40526420, 0x1b23: 0x40526820,
-	0x1b24: 0x40526a20, 0x1b25: 0x40526c20, 0x1b26: 0x40526e20, 0x1b27: 0x40527020,
-	0x1b28: 0x40527420, 0x1b29: 0x40527620, 0x1b2a: 0x40527820, 0x1b2b: 0x40527a20,
-	0x1b2c: 0x40527c20, 0x1b2d: 0x40527e20, 0x1b2e: 0x40528020, 0x1b2f: 0x40528220,
-	0x1b30: 0x40528620, 0x1b31: 0x40528820, 0x1b32: 0x40528a20, 0x1b33: 0x40529020,
-	0x1b34: 0xa070f102, 0x1b35: 0x40529220, 0x1b36: 0x40529420, 0x1b37: 0x40529620,
-	0x1b38: 0x40529820, 0x1b39: 0x40529a20, 0x1b3a: 0xc3250821, 0x1b3b: 0x40529e20,
-	0x1b3c: 0xc3270821, 0x1b3d: 0x4052a220, 0x1b3e: 0xc3290821, 0x1b3f: 0xc32b0821,
-	// Block 0x6d, offset 0x1b40
-	0x1b40: 0x4052a820, 0x1b41: 0x4052aa20, 0x1b42: 0xc32d0821, 0x1b43: 0x4052ae20,
-	0x1b44: 0x82092958, 0x1b45: 0x40524420, 0x1b46: 0x40524620, 0x1b47: 0x40526620,
-	0x1b48: 0x40527220, 0x1b49: 0x40528420, 0x1b4a: 0x40528c20, 0x1b4b: 0x40528e20,
-	0x1b50: 0xe00001be, 0x1b51: 0xe0000252, 0x1b52: 0xe000036a, 0x1b53: 0xe0000444,
-	0x1b54: 0xe0000519, 0x1b55: 0xe00005e3, 0x1b56: 0xe00006ae, 0x1b57: 0xe0000756,
-	0x1b58: 0xe0000802, 0x1b59: 0xe00008a7, 0x1b5a: 0x40036a20, 0x1b5b: 0x40036c20,
-	0x1b5c: 0x4002f620, 0x1b5d: 0x4002ae20, 0x1b5e: 0x40033220, 0x1b5f: 0x40033420,
-	0x1b60: 0x40022020, 0x1b61: 0x4007f220, 0x1b62: 0x4007f420, 0x1b63: 0x4007f620,
-	0x1b64: 0x4007f820, 0x1b65: 0x4007fa20, 0x1b66: 0x4007fc20, 0x1b67: 0x4007fe20,
-	0x1b68: 0x40080020, 0x1b69: 0x40080220, 0x1b6a: 0x40080420, 0x1b6b: 0xae600000,
-	0x1b6c: 0xadc00000, 0x1b6d: 0xae600000, 0x1b6e: 0xae600000, 0x1b6f: 0xae600000,
-	0x1b70: 0xae600000, 0x1b71: 0xae600000, 0x1b72: 0xae600000, 0x1b73: 0xae600000,
-	0x1b74: 0x40080620, 0x1b75: 0x40080820, 0x1b76: 0x40080a20, 0x1b77: 0x40080c20,
-	0x1b78: 0x40080e20, 0x1b79: 0x40081020, 0x1b7a: 0x40081220, 0x1b7b: 0x40081420,
-	0x1b7c: 0x40081620,
-	// Block 0x6e, offset 0x1b80
-	0x1b80: 0xa000f302, 0x1b81: 0xa000f902, 0x1b82: 0xa000f402, 0x1b83: 0x4047d420,
-	0x1b84: 0x4047d620, 0x1b85: 0x4047d820, 0x1b86: 0x4047da20, 0x1b87: 0x4047dc20,
-	0x1b88: 0x4047de20, 0x1b89: 0x4047e020, 0x1b8a: 0x4047e220, 0x1b8b: 0x4047e620,
-	0x1b8c: 0x4047e820, 0x1b8d: 0x4047ea20, 0x1b8e: 0x4047ec20, 0x1b8f: 0x4047ee20,
-	0x1b90: 0x4047f020, 0x1b91: 0x4047f220, 0x1b92: 0x4047f420, 0x1b93: 0x4047f620,
-	0x1b94: 0x4047f820, 0x1b95: 0x4047fa20, 0x1b96: 0x4047fc20, 0x1b97: 0x4047fe20,
-	0x1b98: 0x40480020, 0x1b99: 0x40480420, 0x1b9a: 0x40480820, 0x1b9b: 0x40480c20,
-	0x1b9c: 0x40481220, 0x1b9d: 0x40481820, 0x1b9e: 0x40481c20, 0x1b9f: 0x40481e20,
-	0x1ba0: 0x40482220, 0x1ba1: 0x40480a20, 0x1ba2: 0x40480e20, 0x1ba3: 0x40481420,
-	0x1ba4: 0x40482420, 0x1ba5: 0x40482620, 0x1ba6: 0x40482820, 0x1ba7: 0x40482a20,
-	0x1ba8: 0x40482c20, 0x1ba9: 0x40482e20, 0x1baa: 0x82092418, 0x1bab: 0x82092419,
-	0x1bac: 0x40480620, 0x1bad: 0x40481a20, 0x1bae: 0x4047e420, 0x1baf: 0x40482020,
-	0x1bb0: 0xe00001c4, 0x1bb1: 0xe0000258, 0x1bb2: 0xe0000370, 0x1bb3: 0xe000044a,
-	0x1bb4: 0xe000051f, 0x1bb5: 0xe00005e9, 0x1bb6: 0xe00006b4, 0x1bb7: 0xe000075c,
-	0x1bb8: 0xe0000808, 0x1bb9: 0xe00008ad, 0x1bba: 0x0047d484, 0x1bbb: 0x40481020,
-	0x1bbc: 0x40481620, 0x1bbd: 0x40480220, 0x1bbe: 0x0047e299, 0x1bbf: 0x00480499,
-	// Block 0x6f, offset 0x1bc0
-	0x1bc0: 0x404d4c20, 0x1bc1: 0x004d4c84, 0x1bc2: 0x404d4e20, 0x1bc3: 0x004d4e84,
-	0x1bc4: 0x004d4e84, 0x1bc5: 0x404d5020, 0x1bc6: 0x004d5084, 0x1bc7: 0x404d5220,
-	0x1bc8: 0x004d5284, 0x1bc9: 0x404d5420, 0x1bca: 0x004d5484, 0x1bcb: 0x404d5620,
-	0x1bcc: 0x004d5684, 0x1bcd: 0x004d5684, 0x1bce: 0x404d5820, 0x1bcf: 0x004d5884,
-	0x1bd0: 0x404d5a20, 0x1bd1: 0x404d5c20, 0x1bd2: 0x404d5e20, 0x1bd3: 0x004d5e84,
-	0x1bd4: 0x404d6020, 0x1bd5: 0x004d6084, 0x1bd6: 0x404d6220, 0x1bd7: 0x004d6284,
-	0x1bd8: 0x404d6420, 0x1bd9: 0x004d6484, 0x1bda: 0x004d6484, 0x1bdb: 0x404d6620,
-	0x1bdc: 0x004d6684, 0x1bdd: 0x404d6820, 0x1bde: 0x404d6a20, 0x1bdf: 0x004d6a84,
-	0x1be0: 0x404d6c20, 0x1be1: 0x404d6e20, 0x1be2: 0x404d7020, 0x1be3: 0x404d7220,
-	0x1be4: 0x404d7420, 0x1be5: 0x404d7620, 0x1be6: 0xa070f102, 0x1be7: 0x404d7820,
-	0x1be8: 0x004d7884, 0x1be9: 0x404d7a20, 0x1bea: 0x404d7c20, 0x1beb: 0x004d7c84,
-	0x1bec: 0x404d7e20, 0x1bed: 0x004d7e84, 0x1bee: 0x404d8020, 0x1bef: 0x004d8084,
-	0x1bf0: 0x404d8220, 0x1bf1: 0x404d8420, 0x1bf2: 0x820926c3, 0x1bf3: 0x820926c4,
-	0x1bfc: 0x4005ec20, 0x1bfd: 0x4005ee20, 0x1bfe: 0x4005f020, 0x1bff: 0x4005f220,
-	// Block 0x70, offset 0x1c00
-	0x1c00: 0x404b3620, 0x1c01: 0x404b3820, 0x1c02: 0x404b3a20, 0x1c03: 0x404b3c20,
-	0x1c04: 0x404b3e20, 0x1c05: 0x404b4020, 0x1c06: 0x404b4220, 0x1c07: 0x404b4420,
-	0x1c08: 0x404b4620, 0x1c09: 0x404b4820, 0x1c0a: 0x404b5020, 0x1c0b: 0x404b5220,
-	0x1c0c: 0x404b5420, 0x1c0d: 0x404b5620, 0x1c0e: 0x404b5820, 0x1c0f: 0x404b5a20,
-	0x1c10: 0x404b5c20, 0x1c11: 0x404b5e20, 0x1c12: 0x404b6020, 0x1c13: 0x404b6220,
-	0x1c14: 0x404b6420, 0x1c15: 0x404b6620, 0x1c16: 0x404b6820, 0x1c17: 0x404b6a20,
-	0x1c18: 0x404b6c20, 0x1c19: 0x404b6e20, 0x1c1a: 0x404b7020, 0x1c1b: 0x404b7420,
-	0x1c1c: 0x404b7820, 0x1c1d: 0x404b7a20, 0x1c1e: 0x404b7c20, 0x1c1f: 0x404b7e20,
-	0x1c20: 0x404b8020, 0x1c21: 0x404b8220, 0x1c22: 0x404b8420, 0x1c23: 0x404b8620,
-	0x1c24: 0x404b7220, 0x1c25: 0x404b7620, 0x1c26: 0x404b8a20, 0x1c27: 0x404b8c20,
-	0x1c28: 0x404b8e20, 0x1c29: 0x404b9020, 0x1c2a: 0x404b9220, 0x1c2b: 0x404b9420,
-	0x1c2c: 0x404b9620, 0x1c2d: 0x404b9820, 0x1c2e: 0x404b9a20, 0x1c2f: 0x404b9c20,
-	0x1c30: 0x404b9e20, 0x1c31: 0x404ba020, 0x1c32: 0x404ba220, 0x1c33: 0x404ba420,
-	0x1c34: 0x404ba620, 0x1c35: 0x404ba820, 0x1c36: 0x404b8820, 0x1c37: 0xa070f102,
-	0x1c3b: 0x40031420,
-	0x1c3c: 0x40031620, 0x1c3d: 0x4005ae20, 0x1c3e: 0x4005b020, 0x1c3f: 0x4005b220,
-	// Block 0x71, offset 0x1c40
-	0x1c40: 0xe00001a6, 0x1c41: 0xe000023a, 0x1c42: 0xe0000352, 0x1c43: 0xe000042c,
-	0x1c44: 0xe0000501, 0x1c45: 0xe00005cb, 0x1c46: 0xe0000696, 0x1c47: 0xe000073e,
-	0x1c48: 0xe00007ea, 0x1c49: 0xe000088f,
-	0x1c4d: 0x404b4a20, 0x1c4e: 0x404b4c20, 0x1c4f: 0x404b4e20,
-	0x1c50: 0xe00001ca, 0x1c51: 0xe000025e, 0x1c52: 0xe0000376, 0x1c53: 0xe0000450,
-	0x1c54: 0xe0000525, 0x1c55: 0xe00005ef, 0x1c56: 0xe00006ba, 0x1c57: 0xe0000762,
-	0x1c58: 0xe000080e, 0x1c59: 0xe00008b3, 0x1c5a: 0x40542e20, 0x1c5b: 0x40543020,
-	0x1c5c: 0x40543220, 0x1c5d: 0x40543420, 0x1c5e: 0x40543620, 0x1c5f: 0x40543820,
-	0x1c60: 0x40543a20, 0x1c61: 0x40543c20, 0x1c62: 0x40543e20, 0x1c63: 0x40544020,
-	0x1c64: 0x40544220, 0x1c65: 0x40544420, 0x1c66: 0x40544620, 0x1c67: 0x40544820,
-	0x1c68: 0x40544a20, 0x1c69: 0x40544c20, 0x1c6a: 0x40544e20, 0x1c6b: 0x40545020,
-	0x1c6c: 0x40545220, 0x1c6d: 0x40545420, 0x1c6e: 0x40545620, 0x1c6f: 0x40545820,
-	0x1c70: 0x40545a20, 0x1c71: 0x40545c20, 0x1c72: 0x40545e20, 0x1c73: 0x40546020,
-	0x1c74: 0x40546220, 0x1c75: 0x40546420, 0x1c76: 0x40546620, 0x1c77: 0x40546820,
-	0x1c78: 0x40546a20, 0x1c79: 0x40546c20, 0x1c7a: 0x40546e20, 0x1c7b: 0x40547020,
-	0x1c7c: 0x40547220, 0x1c7d: 0x40547420, 0x1c7e: 0x40035820, 0x1c7f: 0x40035a20,
-	// Block 0x72, offset 0x1c80
-	0x1c80: 0x4005d620, 0x1c81: 0x4005d820, 0x1c82: 0x4005da20, 0x1c83: 0x4005dc20,
-	0x1c84: 0x4005de20, 0x1c85: 0x4005e020, 0x1c86: 0x4005e220, 0x1c87: 0x4005e420,
-	0x1c90: 0xae600000, 0x1c91: 0xae600000, 0x1c92: 0xae600000, 0x1c93: 0xa0000000,
-	0x1c94: 0xa0100000, 0x1c95: 0xadc00000, 0x1c96: 0xadc00000, 0x1c97: 0xadc00000,
-	0x1c98: 0xadc00000, 0x1c99: 0xadc00000, 0x1c9a: 0xae600000, 0x1c9b: 0xae600000,
-	0x1c9c: 0xadc00000, 0x1c9d: 0xadc00000, 0x1c9e: 0xadc00000, 0x1c9f: 0xadc00000,
-	0x1ca0: 0xae600000, 0x1ca1: 0xa0000000, 0x1ca2: 0xa0100000, 0x1ca3: 0xa0100000,
-	0x1ca4: 0xa0100000, 0x1ca5: 0xa0100000, 0x1ca6: 0xa0100000, 0x1ca7: 0xa0100000,
-	0x1ca8: 0xa0100000, 0x1ca9: 0x40404020, 0x1caa: 0x00404084, 0x1cab: 0x00404084,
-	0x1cac: 0x00404084, 0x1cad: 0xadc0f302, 0x1cae: 0x00404084, 0x1caf: 0x00404084,
-	0x1cb0: 0x00404084, 0x1cb1: 0x00404084, 0x1cb2: 0xa000f402, 0x1cb3: 0xa000f402,
-	0x1cb4: 0xae600000, 0x1cb5: 0x40404220, 0x1cb6: 0x40404420,
-	// Block 0x73, offset 0x1cc0
-	0x1cc0: 0x402be620, 0x1cc1: 0x402bec20, 0x1cc2: 0x402bee20, 0x1cc3: 0x402c2420,
-	0x1cc4: 0x402c4220, 0x1cc5: 0x402c6a20, 0x1cc6: 0x402c6c20, 0x1cc7: 0x402ca020,
-	0x1cc8: 0x402ce620, 0x1cc9: 0x402db420, 0x1cca: 0x402ddc20, 0x1ccb: 0x402e0620,
-	0x1ccc: 0x402e3420, 0x1ccd: 0x402e8a20, 0x1cce: 0x402eb020, 0x1ccf: 0x402eea20,
-	0x1cd0: 0x402f0220, 0x1cd1: 0x402eec20, 0x1cd2: 0x402f0420, 0x1cd3: 0x402ef820,
-	0x1cd4: 0x402ef620, 0x1cd5: 0x402f2a20, 0x1cd6: 0x402f0a20, 0x1cd7: 0x402f0c20,
-	0x1cd8: 0x402f3420, 0x1cd9: 0x402f8c20, 0x1cda: 0x402fa020, 0x1cdb: 0x40303420,
-	0x1cdc: 0x40307420, 0x1cdd: 0x40307620, 0x1cde: 0x40307820, 0x1cdf: 0x4030aa20,
-	0x1ce0: 0x4030c620, 0x1ce1: 0x4030ea20, 0x1ce2: 0x40313220, 0x1ce3: 0x40316c20,
-	0x1ce4: 0x4031f420, 0x1ce5: 0x4031f620, 0x1ce6: 0x40325820, 0x1ce7: 0x40327420,
-	0x1ce8: 0x40328020, 0x1ce9: 0x40328a20, 0x1cea: 0x4032a020, 0x1ceb: 0x40348c20,
-	0x1cec: 0x002bde9d, 0x1ced: 0xe00009e1, 0x1cee: 0x002c0a9d, 0x1cef: 0x402c2220,
-	0x1cf0: 0x002c629d, 0x1cf1: 0x002c989d, 0x1cf2: 0x002cae9d, 0x1cf3: 0x002d229d,
-	0x1cf4: 0x002d689d, 0x1cf5: 0x002d9a9d, 0x1cf6: 0x002dcc9d, 0x1cf7: 0x002dfe9d,
-	0x1cf8: 0x002e229d, 0x1cf9: 0x002e829d, 0x1cfa: 0x002e9e9d, 0x1cfb: 0x402eae20,
-	0x1cfc: 0x002ee29d, 0x1cfd: 0x002f229d, 0x1cfe: 0x002f2c9d, 0x1cff: 0x002f7a9d,
-	// Block 0x74, offset 0x1d00
-	0x1d00: 0x00302c9d, 0x1d01: 0x00306c9d, 0x1d02: 0x0030e29d, 0x1d03: 0x002bde94,
-	0x1d04: 0x002bf094, 0x1d05: 0x002bf894, 0x1d06: 0x002bee94, 0x1d07: 0x002c0a94,
-	0x1d08: 0x002c6294, 0x1d09: 0x002c9894, 0x1d0a: 0x002cb894, 0x1d0b: 0x002cc294,
-	0x1d0c: 0x002ce694, 0x1d0d: 0x002d2294, 0x1d0e: 0x002db494, 0x1d0f: 0x002dfe94,
-	0x1d10: 0x002e8294, 0x1d11: 0x002eda94, 0x1d12: 0x002ee294, 0x1d13: 0x002efa94,
-	0x1d14: 0x002f0a94, 0x1d15: 0x002f0c94, 0x1d16: 0x002f2c94, 0x1d17: 0x00302c94,
-	0x1d18: 0x00306c94, 0x1d19: 0x00307694, 0x1d1a: 0x0030a094, 0x1d1b: 0x0030be94,
-	0x1d1c: 0x0031f694, 0x1d1d: 0x00325494, 0x1d1e: 0x00325694, 0x1d1f: 0x00325a94,
-	0x1d20: 0x00329a94, 0x1d21: 0x00329c94, 0x1d22: 0x002d9a95, 0x1d23: 0x002f7a95,
-	0x1d24: 0x00306c95, 0x1d25: 0x0030be95, 0x1d26: 0x00325495, 0x1d27: 0x00325695,
-	0x1d28: 0x00328895, 0x1d29: 0x00329a95, 0x1d2a: 0x00329c95, 0x1d2b: 0x40307a20,
-	0x1d2c: 0x402c2620, 0x1d2d: 0x402c6e20, 0x1d2e: 0x402d1220, 0x1d2f: 0x402e8c20,
-	0x1d30: 0x402eb220, 0x1d31: 0x402f3a20, 0x1d32: 0x402f9620, 0x1d33: 0x402fce20,
-	0x1d34: 0x402ff020, 0x1d35: 0x40304020, 0x1d36: 0x40313c20, 0x1d37: 0x402d5420,
-	0x1d38: 0x0034ba94, 0x1d39: 0xe0000bd9, 0x1d3a: 0xe0000fc1, 0x1d3b: 0x402dbe20,
-	0x1d3c: 0x402dca20, 0x1d3d: 0x402f3620, 0x1d3e: 0x40308420, 0x1d3f: 0x4030bc20,
-	// Block 0x75, offset 0x1d40
-	0x1d40: 0x402c2820, 0x1d41: 0x402c7020, 0x1d42: 0x402d1420, 0x1d43: 0x402d4220,
-	0x1d44: 0x402e0820, 0x1d45: 0x402e5220, 0x1d46: 0x402e8e20, 0x1d47: 0x402ec620,
-	0x1d48: 0x402f3c20, 0x1d49: 0x402faa20, 0x1d4a: 0x402ff220, 0x1d4b: 0x40301020,
-	0x1d4c: 0x4030ca20, 0x1d4d: 0x4030fe20, 0x1d4e: 0x40313e20, 0x1d4f: 0x402bea20,
-	0x1d50: 0x402c0020, 0x1d51: 0x402c8220, 0x1d52: 0x402caa20, 0x1d53: 0x402cca20,
-	0x1d54: 0x402ce420, 0x1d55: 0x402cc020, 0x1d56: 0x402dc020, 0x1d57: 0x402f0620,
-	0x1d58: 0x40302220, 0x1d59: 0x40308620, 0x1d5a: 0x40317620, 0x1d5b: 0x002c0294,
-	0x1d5c: 0x002c3a94, 0x1d5d: 0x002c5694, 0x1d5e: 0xf0001414, 0x1d5f: 0x002cdc94,
-	0x1d60: 0x002d0894, 0x1d61: 0x002dee94, 0x1d62: 0x002d2a94, 0x1d63: 0x00308894,
-	0x1d64: 0x002db694, 0x1d65: 0x002dc294, 0x1d66: 0x002daa94, 0x1d67: 0x002dbe94,
-	0x1d68: 0x002de694, 0x1d69: 0x002e5494, 0x1d6a: 0x002e5294, 0x1d6b: 0x002e2a94,
-	0x1d6c: 0x002e9094, 0x1d6d: 0x0030ac94, 0x1d6e: 0x002eb494, 0x1d6f: 0x002ec894,
-	0x1d70: 0x002ea694, 0x1d71: 0x002f1094, 0x1d72: 0x002f4c94, 0x1d73: 0x002ff494,
-	0x1d74: 0x00300894, 0x1d75: 0x00304294, 0x1d76: 0x00307c94, 0x1d77: 0x0030b494,
-	0x1d78: 0x00307494, 0x1d79: 0x0030cc94, 0x1d7a: 0x0030da94, 0x1d7b: 0x00312a94,
-	0x1d7c: 0x00314894, 0x1d7d: 0x00315094, 0x1d7e: 0x00316494, 0x1d7f: 0x00326a94,
-	// Block 0x76, offset 0x1d80
-	0x1d80: 0xae605f02, 0x1d81: 0xae605f02, 0x1d82: 0xadc06002, 0x1d83: 0xae605f02,
-	0x1d84: 0xae605f02, 0x1d85: 0xae605f02, 0x1d86: 0xae605f02, 0x1d87: 0xae605f02,
-	0x1d88: 0xae605f02, 0x1d89: 0xae605f02, 0x1d8a: 0x84dc17bd, 0x1d8b: 0xae605f02,
-	0x1d8c: 0xae605f02, 0x1d8d: 0xaea05f02, 0x1d8e: 0xad605f02, 0x1d8f: 0xadc06002,
-	0x1d90: 0xaca06002, 0x1d91: 0xae605f02, 0x1d92: 0x84e618d1, 0x1d93: 0xe00009b4,
-	0x1d94: 0xe00009d9, 0x1d95: 0xe00009f9, 0x1d96: 0xe0000a08, 0x1d97: 0xe0000a50,
-	0x1d98: 0xe0000ab6, 0x1d99: 0xe0000ab0, 0x1d9a: 0x84e61691, 0x1d9b: 0x84e61699,
-	0x1d9c: 0x84e616ff, 0x1d9d: 0x84e61711, 0x1d9e: 0x84e61715, 0x1d9f: 0x84e61745,
-	0x1da0: 0x84e6174f, 0x1da1: 0x84e61753, 0x1da2: 0x84e617c1, 0x1da3: 0x84e617c5,
-	0x1da4: 0x84e617f3, 0x1da5: 0xe0000f67, 0x1da6: 0x84e61895,
-	0x1dbc: 0xae906002, 0x1dbd: 0xadc06002, 0x1dbe: 0xae605f02, 0x1dbf: 0xadc06002,
-	// Block 0x77, offset 0x1dc0
-	0x1dc0: 0xe00009b1, 0x1dc1: 0xe00009ae, 0x1dc2: 0xe0000a22, 0x1dc3: 0xe0000a1f,
-	0x1dc4: 0xe0000a28, 0x1dc5: 0xe0000a25, 0x1dc6: 0xe0000a2e, 0x1dc7: 0xe0000a2b,
-	0x1dc8: 0xe0000a5a, 0x1dc9: 0xe0000a56, 0x1dca: 0xe0000a8c, 0x1dcb: 0xe0000a89,
-	0x1dcc: 0xe0000a98, 0x1dcd: 0xe0000a95, 0x1dce: 0xe0000aa4, 0x1dcf: 0xe0000aa1,
-	0x1dd0: 0xe0000a92, 0x1dd1: 0xe0000a8f, 0x1dd2: 0xe0000a9e, 0x1dd3: 0xe0000a9b,
-	0x1dd4: 0xe0000b55, 0x1dd5: 0xe0000b51, 0x1dd6: 0xe0000b4d, 0x1dd7: 0xe0000b49,
-	0x1dd8: 0xe0000b7c, 0x1dd9: 0xe0000b79, 0x1dda: 0xe0000b82, 0x1ddb: 0xe0000b7f,
-	0x1ddc: 0xe0000b39, 0x1ddd: 0xe0000b35, 0x1dde: 0xe0000b8c, 0x1ddf: 0xe0000b89,
-	0x1de0: 0xe0000bd0, 0x1de1: 0xe0000bcd, 0x1de2: 0xe0000c00, 0x1de3: 0xe0000bfd,
-	0x1de4: 0xe0000c0c, 0x1de5: 0xe0000c09, 0x1de6: 0xe0000bfa, 0x1de7: 0xe0000bf7,
-	0x1de8: 0xe0000c06, 0x1de9: 0xe0000c03, 0x1dea: 0xe0000c12, 0x1deb: 0xe0000c0f,
-	0x1dec: 0xe0000c7e, 0x1ded: 0xe0000c7b, 0x1dee: 0xe0000c4a, 0x1def: 0xe0000c46,
-	0x1df0: 0xe0000c93, 0x1df1: 0xe0000c90, 0x1df2: 0xe0000cab, 0x1df3: 0xe0000ca8,
-	0x1df4: 0xe0000cb1, 0x1df5: 0xe0000cae, 0x1df6: 0xe0000cde, 0x1df7: 0xe0000cdb,
-	0x1df8: 0xe0000ce5, 0x1df9: 0xe0000ce1, 0x1dfa: 0xe0000cf2, 0x1dfb: 0xe0000cef,
-	0x1dfc: 0xe0000cec, 0x1dfd: 0xe0000ce9, 0x1dfe: 0xe0000d1e, 0x1dff: 0xe0000d1b,
-	// Block 0x78, offset 0x1e00
-	0x1e00: 0xe0000d24, 0x1e01: 0xe0000d21, 0x1e02: 0xe0000d2a, 0x1e03: 0xe0000d27,
-	0x1e04: 0xe0000d69, 0x1e05: 0xe0000d66, 0x1e06: 0xe0000d7b, 0x1e07: 0xe0000d78,
-	0x1e08: 0xe0000d87, 0x1e09: 0xe0000d84, 0x1e0a: 0xe0000d81, 0x1e0b: 0xe0000d7e,
-	0x1e0c: 0xe0000ded, 0x1e0d: 0xe0000de9, 0x1e0e: 0xe0000df5, 0x1e0f: 0xe0000df1,
-	0x1e10: 0xe0000e3d, 0x1e11: 0xe0000e39, 0x1e12: 0xe0000e35, 0x1e13: 0xe0000e31,
-	0x1e14: 0xe0000ea7, 0x1e15: 0xe0000ea4, 0x1e16: 0xe0000ead, 0x1e17: 0xe0000eaa,
-	0x1e18: 0xe0000ed6, 0x1e19: 0xe0000ed3, 0x1e1a: 0xe0000ef4, 0x1e1b: 0xe0000ef1,
-	0x1e1c: 0xe0000efb, 0x1e1d: 0xe0000ef7, 0x1e1e: 0xe0000f02, 0x1e1f: 0xe0000eff,
-	0x1e20: 0xe0000f41, 0x1e21: 0xe0000f3e, 0x1e22: 0xe0000f53, 0x1e23: 0xe0000f50,
-	0x1e24: 0xe0000f26, 0x1e25: 0xe0000f22, 0x1e26: 0xe0000f3a, 0x1e27: 0xe0000f36,
-	0x1e28: 0xe0000f5a, 0x1e29: 0xe0000f56, 0x1e2a: 0xe0000f93, 0x1e2b: 0xe0000f90,
-	0x1e2c: 0xe0000f9f, 0x1e2d: 0xe0000f9c, 0x1e2e: 0xe0000fb1, 0x1e2f: 0xe0000fae,
-	0x1e30: 0xe0000fab, 0x1e31: 0xe0000fa8, 0x1e32: 0xe0001093, 0x1e33: 0xe0001090,
-	0x1e34: 0xe000109f, 0x1e35: 0xe000109c, 0x1e36: 0xe0001099, 0x1e37: 0xe0001096,
-	0x1e38: 0xe0001032, 0x1e39: 0xe000102e, 0x1e3a: 0xe0001046, 0x1e3b: 0xe0001042,
-	0x1e3c: 0xe00010a9, 0x1e3d: 0xe00010a6, 0x1e3e: 0xe00010af, 0x1e3f: 0xe00010ac,
-	// Block 0x79, offset 0x1e40
-	0x1e40: 0xe00010d2, 0x1e41: 0xe00010cf, 0x1e42: 0xe00010cc, 0x1e43: 0xe00010c9,
-	0x1e44: 0xe00010e1, 0x1e45: 0xe00010de, 0x1e46: 0xe00010e7, 0x1e47: 0xe00010e4,
-	0x1e48: 0xe00010ed, 0x1e49: 0xe00010ea, 0x1e4a: 0xe00010fc, 0x1e4b: 0xe00010f9,
-	0x1e4c: 0xe00010f6, 0x1e4d: 0xe00010f3, 0x1e4e: 0xe0001123, 0x1e4f: 0xe0001120,
-	0x1e50: 0xe0001141, 0x1e51: 0xe000113e, 0x1e52: 0xe0001153, 0x1e53: 0xe0001150,
-	0x1e54: 0xe0001159, 0x1e55: 0xe0001156, 0x1e56: 0xe0000c15, 0x1e57: 0xe0000f8d,
-	0x1e58: 0xe00010db, 0x1e59: 0xe0001111, 0x1e5a: 0xf0000404, 0x1e5b: 0xe0000f70,
-	0x1e5c: 0x40300420, 0x1e5d: 0x40300620, 0x1e5e: 0xe0000f7f, 0x1e5f: 0x402c9620,
-	0x1e60: 0xe000099b, 0x1e61: 0xe0000998, 0x1e62: 0xe0000989, 0x1e63: 0xe0000986,
-	0x1e64: 0xe0000928, 0x1e65: 0xe0000924, 0x1e66: 0xe0000930, 0x1e67: 0xe000092c,
-	0x1e68: 0xe0000940, 0x1e69: 0xe000093c, 0x1e6a: 0xe0000938, 0x1e6b: 0xe0000934,
-	0x1e6c: 0xe00009aa, 0x1e6d: 0xe00009a6, 0x1e6e: 0xe0000902, 0x1e6f: 0xe00008fe,
-	0x1e70: 0xe000090a, 0x1e71: 0xe0000906, 0x1e72: 0xe000091a, 0x1e73: 0xe0000916,
-	0x1e74: 0xe0000912, 0x1e75: 0xe000090e, 0x1e76: 0xe00009a2, 0x1e77: 0xe000099e,
-	0x1e78: 0xe0000b6e, 0x1e79: 0xe0000b6b, 0x1e7a: 0xe0000b5c, 0x1e7b: 0xe0000b59,
-	0x1e7c: 0xe0000b26, 0x1e7d: 0xe0000b23, 0x1e7e: 0xe0000afb, 0x1e7f: 0xe0000af7,
-	// Block 0x7a, offset 0x1e80
-	0x1e80: 0xe0000b03, 0x1e81: 0xe0000aff, 0x1e82: 0xe0000b13, 0x1e83: 0xe0000b0f,
-	0x1e84: 0xe0000b0b, 0x1e85: 0xe0000b07, 0x1e86: 0xe0000b75, 0x1e87: 0xe0000b71,
-	0x1e88: 0xe0000c66, 0x1e89: 0xe0000c63, 0x1e8a: 0xe0000c78, 0x1e8b: 0xe0000c75,
-	0x1e8c: 0xe0000e84, 0x1e8d: 0xe0000e81, 0x1e8e: 0xe0000e44, 0x1e8f: 0xe0000e41,
-	0x1e90: 0xe0000dad, 0x1e91: 0xe0000da9, 0x1e92: 0xe0000db5, 0x1e93: 0xe0000db1,
-	0x1e94: 0xe0000dc5, 0x1e95: 0xe0000dc1, 0x1e96: 0xe0000dbd, 0x1e97: 0xe0000db9,
-	0x1e98: 0xe0000e8b, 0x1e99: 0xe0000e87, 0x1e9a: 0xe0000e5d, 0x1e9b: 0xe0000e59,
-	0x1e9c: 0xe0000e65, 0x1e9d: 0xe0000e61, 0x1e9e: 0xe0000e75, 0x1e9f: 0xe0000e71,
-	0x1ea0: 0xe0000e6d, 0x1ea1: 0xe0000e69, 0x1ea2: 0xe0000e7d, 0x1ea3: 0xe0000e79,
-	0x1ea4: 0xe000108d, 0x1ea5: 0xe000108a, 0x1ea6: 0xe000104d, 0x1ea7: 0xe000104a,
-	0x1ea8: 0xe0001066, 0x1ea9: 0xe0001062, 0x1eaa: 0xe000106e, 0x1eab: 0xe000106a,
-	0x1eac: 0xe000107e, 0x1ead: 0xe000107a, 0x1eae: 0xe0001076, 0x1eaf: 0xe0001072,
-	0x1eb0: 0xe0001086, 0x1eb1: 0xe0001082, 0x1eb2: 0xe0001108, 0x1eb3: 0xe0001105,
-	0x1eb4: 0xe0001135, 0x1eb5: 0xe0001132, 0x1eb6: 0xe000112f, 0x1eb7: 0xe000112c,
-	0x1eb8: 0xe000111d, 0x1eb9: 0xe000111a, 0x1eba: 0xe0000d0a, 0x1ebb: 0xe0000d07,
-	0x1ebc: 0x0030d888, 0x1ebd: 0x4030d820, 0x1ebe: 0x00312088, 0x1ebf: 0x40312020,
-	// Block 0x7b, offset 0x1ec0
-	0x1ec0: 0xe0001165, 0x1ec1: 0xe00011a9, 0x1ec2: 0xe000117d, 0x1ec3: 0xe00011c1,
-	0x1ec4: 0xe000116b, 0x1ec5: 0xe00011af, 0x1ec6: 0xe000118f, 0x1ec7: 0xe00011d3,
-	0x1ec8: 0xe0001168, 0x1ec9: 0xe00011ac, 0x1eca: 0xe0001181, 0x1ecb: 0xe00011c5,
-	0x1ecc: 0xe000116f, 0x1ecd: 0xe00011b3, 0x1ece: 0xe0001193, 0x1ecf: 0xe00011d7,
-	0x1ed0: 0xe000121a, 0x1ed1: 0xe0001230, 0x1ed2: 0xe0001228, 0x1ed3: 0xe000123e,
-	0x1ed4: 0xe0001220, 0x1ed5: 0xe0001236,
-	0x1ed8: 0xe000121d, 0x1ed9: 0xe0001233, 0x1eda: 0xe000122c, 0x1edb: 0xe0001242,
-	0x1edc: 0xe0001224, 0x1edd: 0xe000123a,
-	0x1ee0: 0xe0001252, 0x1ee1: 0xe0001296, 0x1ee2: 0xe000126a, 0x1ee3: 0xe00012ae,
-	0x1ee4: 0xe0001258, 0x1ee5: 0xe000129c, 0x1ee6: 0xe000127c, 0x1ee7: 0xe00012c0,
-	0x1ee8: 0xe0001255, 0x1ee9: 0xe0001299, 0x1eea: 0xe000126e, 0x1eeb: 0xe00012b2,
-	0x1eec: 0xe000125c, 0x1eed: 0xe00012a0, 0x1eee: 0xe0001280, 0x1eef: 0xe00012c4,
-	0x1ef0: 0xe00012fb, 0x1ef1: 0xe0001319, 0x1ef2: 0xe0001309, 0x1ef3: 0xe0001327,
-	0x1ef4: 0xe0001301, 0x1ef5: 0xe000131f, 0x1ef6: 0xe0001311, 0x1ef7: 0xe000132f,
-	0x1ef8: 0xe00012fe, 0x1ef9: 0xe000131c, 0x1efa: 0xe000130d, 0x1efb: 0xe000132b,
-	0x1efc: 0xe0001305, 0x1efd: 0xe0001323, 0x1efe: 0xe0001315, 0x1eff: 0xe0001333,
-	// Block 0x7c, offset 0x1f00
-	0x1f00: 0xe000136c, 0x1f01: 0xe0001382, 0x1f02: 0xe000137a, 0x1f03: 0xe0001390,
-	0x1f04: 0xe0001372, 0x1f05: 0xe0001388,
-	0x1f08: 0xe000136f, 0x1f09: 0xe0001385, 0x1f0a: 0xe000137e, 0x1f0b: 0xe0001394,
-	0x1f0c: 0xe0001376, 0x1f0d: 0xe000138c,
-	0x1f10: 0xe00013ad, 0x1f11: 0xe00013bc, 0x1f12: 0xe00013b4, 0x1f13: 0xe00013ca,
-	0x1f14: 0xe00013b0, 0x1f15: 0xe00013c2, 0x1f16: 0xe00013b8, 0x1f17: 0xe00013d2,
-	0x1f19: 0xe00013bf, 0x1f1b: 0xe00013ce,
-	0x1f1d: 0xe00013c6, 0x1f1f: 0xe00013d6,
-	0x1f20: 0xe0001407, 0x1f21: 0xe000144b, 0x1f22: 0xe000141f, 0x1f23: 0xe0001463,
-	0x1f24: 0xe000140d, 0x1f25: 0xe0001451, 0x1f26: 0xe0001431, 0x1f27: 0xe0001475,
-	0x1f28: 0xe000140a, 0x1f29: 0xe000144e, 0x1f2a: 0xe0001423, 0x1f2b: 0xe0001467,
-	0x1f2c: 0xe0001411, 0x1f2d: 0xe0001455, 0x1f2e: 0xe0001435, 0x1f2f: 0xe0001479,
-	0x1f30: 0xe00011f7, 0x1f31: 0xe00011ed, 0x1f32: 0xe000124c, 0x1f33: 0xe0001246,
-	0x1f34: 0xe00012e4, 0x1f35: 0xe00012da, 0x1f36: 0xe000133d, 0x1f37: 0xe0001337,
-	0x1f38: 0xe000139e, 0x1f39: 0xe0001398, 0x1f3a: 0xe00013e0, 0x1f3b: 0xe00013da,
-	0x1f3c: 0xe0001499, 0x1f3d: 0xe000148f,
-	// Block 0x7d, offset 0x1f40
-	0x1f40: 0xe00011a1, 0x1f41: 0xe00011e5, 0x1f42: 0xe0001185, 0x1f43: 0xe00011c9,
-	0x1f44: 0xe0001173, 0x1f45: 0xe00011b7, 0x1f46: 0xe0001197, 0x1f47: 0xe00011db,
-	0x1f48: 0xe00011a5, 0x1f49: 0xe00011e9, 0x1f4a: 0xe000118a, 0x1f4b: 0xe00011ce,
-	0x1f4c: 0xe0001178, 0x1f4d: 0xe00011bc, 0x1f4e: 0xe000119c, 0x1f4f: 0xe00011e0,
-	0x1f50: 0xe000128e, 0x1f51: 0xe00012d2, 0x1f52: 0xe0001272, 0x1f53: 0xe00012b6,
-	0x1f54: 0xe0001260, 0x1f55: 0xe00012a4, 0x1f56: 0xe0001284, 0x1f57: 0xe00012c8,
-	0x1f58: 0xe0001292, 0x1f59: 0xe00012d6, 0x1f5a: 0xe0001277, 0x1f5b: 0xe00012bb,
-	0x1f5c: 0xe0001265, 0x1f5d: 0xe00012a9, 0x1f5e: 0xe0001289, 0x1f5f: 0xe00012cd,
-	0x1f60: 0xe0001443, 0x1f61: 0xe0001487, 0x1f62: 0xe0001427, 0x1f63: 0xe000146b,
-	0x1f64: 0xe0001415, 0x1f65: 0xe0001459, 0x1f66: 0xe0001439, 0x1f67: 0xe000147d,
-	0x1f68: 0xe0001447, 0x1f69: 0xe000148b, 0x1f6a: 0xe000142c, 0x1f6b: 0xe0001470,
-	0x1f6c: 0xe000141a, 0x1f6d: 0xe000145e, 0x1f6e: 0xe000143e, 0x1f6f: 0xe0001482,
-	0x1f70: 0xe0001201, 0x1f71: 0xe000120e, 0x1f72: 0xe00011fd, 0x1f73: 0xe0001214,
-	0x1f74: 0xe00011f3, 0x1f76: 0xe0001207, 0x1f77: 0xe000120a,
-	0x1f78: 0xe0001204, 0x1f79: 0xe0001211, 0x1f7a: 0xe00011fa, 0x1f7b: 0xe00011f0,
-	0x1f7c: 0xe0001217, 0x1f7d: 0x40063620, 0x1f7e: 0x40326c20, 0x1f7f: 0x40063620,
-	// Block 0x7e, offset 0x1f80
-	0x1f80: 0x40063a20, 0x1f81: 0xe00000b1, 0x1f82: 0xe00012ea, 0x1f83: 0xe00012f5,
-	0x1f84: 0xe00012e0, 0x1f86: 0xe00012ee, 0x1f87: 0xe00012f1,
-	0x1f88: 0xe000124f, 0x1f89: 0xe0001249, 0x1f8a: 0xe00012e7, 0x1f8b: 0xe00012dd,
-	0x1f8c: 0xe00012f8, 0x1f8d: 0xe00000b7, 0x1f8e: 0xe00000b4, 0x1f8f: 0xe00000ba,
-	0x1f90: 0xe0001343, 0x1f91: 0xe000135e, 0x1f92: 0xe0001356, 0x1f93: 0xe0001352,
-	0x1f96: 0xe0001349, 0x1f97: 0xe000135a,
-	0x1f98: 0xe0001346, 0x1f99: 0xe0001361, 0x1f9a: 0xe0001340, 0x1f9b: 0xe000133a,
-	0x1f9d: 0xe00000c0, 0x1f9e: 0xe00000bd, 0x1f9f: 0xe00000c3,
-	0x1fa0: 0xe00013e6, 0x1fa1: 0xe0001401, 0x1fa2: 0xe00013f9, 0x1fa3: 0xe00013f5,
-	0x1fa4: 0xe00013a4, 0x1fa5: 0xe00013a7, 0x1fa6: 0xe00013ec, 0x1fa7: 0xe00013fd,
-	0x1fa8: 0xe00013e9, 0x1fa9: 0xe0001404, 0x1faa: 0xe00013e3, 0x1fab: 0xe00013dd,
-	0x1fac: 0xe00013aa, 0x1fad: 0xe00000ae, 0x1fae: 0xe00000ab, 0x1faf: 0x40061e20,
-	0x1fb2: 0xe000149f, 0x1fb3: 0xe00014aa,
-	0x1fb4: 0xe0001495, 0x1fb6: 0xe00014a3, 0x1fb7: 0xe00014a6,
-	0x1fb8: 0xe00013a1, 0x1fb9: 0xe000139b, 0x1fba: 0xe000149c, 0x1fbb: 0xe0001492,
-	0x1fbc: 0xe00014ad, 0x1fbd: 0x40062020, 0x1fbe: 0x40063820,
-	// Block 0x7f, offset 0x1fc0
-	0x1fc0: 0x00021284, 0x1fc1: 0x00021284, 0x1fc2: 0x00021284, 0x1fc3: 0x00021284,
-	0x1fc4: 0x00021284, 0x1fc5: 0x00021284, 0x1fc6: 0x00021284, 0x1fc7: 0x0002129b,
-	0x1fc8: 0x00021284, 0x1fc9: 0x00021284, 0x1fca: 0x00021284, 0x1fcb: 0xa0000000,
-	0x1fcc: 0xa0000000, 0x1fcd: 0xa0000000, 0x1fce: 0xa0000000, 0x1fcf: 0xa0000000,
-	0x1fd0: 0x40022620, 0x1fd1: 0x0002269b, 0x1fd2: 0x40022820, 0x1fd3: 0x40022a20,
-	0x1fd4: 0x40022c20, 0x1fd5: 0x40022e20, 0x1fd6: 0x4004c420, 0x1fd7: 0x40021820,
-	0x1fd8: 0x4003d420, 0x1fd9: 0x4003d620, 0x1fda: 0x4003d820, 0x1fdb: 0x4003da20,
-	0x1fdc: 0x4003e220, 0x1fdd: 0x4003e420, 0x1fde: 0x4003e620, 0x1fdf: 0x4003e820,
-	0x1fe0: 0x4004f820, 0x1fe1: 0x4004fa20, 0x1fe2: 0x40050220, 0x1fe3: 0x40050420,
-	0x1fe4: 0x0002e484, 0x1fe5: 0xf0001f04, 0x1fe6: 0xf0000404, 0x1fe7: 0x40050620,
-	0x1fe8: 0x40020e20, 0x1fe9: 0x40021020, 0x1fea: 0xa0000000, 0x1feb: 0xa0000000,
-	0x1fec: 0xa0000000, 0x1fed: 0xa0000000, 0x1fee: 0xa0000000, 0x1fef: 0x0002129b,
-	0x1ff0: 0x4004f020, 0x1ff1: 0x4004f420, 0x1ff2: 0x40050e20, 0x1ff3: 0xf0001f04,
-	0x1ff4: 0xf0000404, 0x1ff5: 0x40051020, 0x1ff6: 0xf0001f04, 0x1ff7: 0xf0000404,
-	0x1ff8: 0x40051620, 0x1ff9: 0x4003dc20, 0x1ffa: 0x4003de20, 0x1ffb: 0x40051820,
-	0x1ffc: 0xf0001f04, 0x1ffd: 0x4002e020, 0x1ffe: 0x40021420, 0x1fff: 0x40051a20,
-	// Block 0x80, offset 0x2000
-	0x2000: 0x40051e20, 0x2001: 0x40052220, 0x2002: 0x40052420, 0x2003: 0x40050820,
-	0x2004: 0x40095820, 0x2005: 0x40040c20, 0x2006: 0x40040e20, 0x2007: 0xf0001f04,
-	0x2008: 0xf0001f04, 0x2009: 0xf0001f04, 0x200a: 0x4004e820, 0x200b: 0x4004d420,
-	0x200c: 0x40050a20, 0x200d: 0x40050c20, 0x200e: 0x4004da20, 0x200f: 0x40026620,
-	0x2010: 0x40052020, 0x2011: 0x4004dc20, 0x2012: 0x40095020, 0x2013: 0x40023420,
-	0x2014: 0x40051c20, 0x2015: 0x40039c20, 0x2016: 0x40039e20, 0x2017: 0xe00000a6,
-	0x2018: 0x4003a020, 0x2019: 0x4003a220, 0x201a: 0x4003a420, 0x201b: 0x4003a620,
-	0x201c: 0x4003a820, 0x201d: 0x4003aa20, 0x201e: 0x4003ac20, 0x201f: 0x00021284,
-	0x2020: 0xa0000000, 0x2021: 0xa0000000, 0x2022: 0xa0000000, 0x2023: 0xa0000000,
-	0x2024: 0xa0000000,
-	0x202a: 0xa0000000, 0x202b: 0xa0000000,
-	0x202c: 0xa0000000, 0x202d: 0xa0000000, 0x202e: 0xa0000000, 0x202f: 0xa0000000,
-	0x2030: 0x0029cc94, 0x2031: 0x002d9a94,
-	0x2034: 0x0029d494, 0x2035: 0x0029d694, 0x2036: 0x0029d894, 0x2037: 0x0029da94,
-	0x2038: 0x0029dc94, 0x2039: 0x0029de94, 0x203a: 0x00093894, 0x203b: 0x00094e94,
-	0x203c: 0x00094294, 0x203d: 0x0003f494, 0x203e: 0x0003f694, 0x203f: 0x002e9e94,
-	// Block 0x81, offset 0x2040
-	0x2040: 0x0029cc95, 0x2041: 0x0029ce95, 0x2042: 0x0029d095, 0x2043: 0x0029d295,
-	0x2044: 0x0029d495, 0x2045: 0x0029d695, 0x2046: 0x0029d895, 0x2047: 0x0029da95,
-	0x2048: 0x0029dc95, 0x2049: 0x0029de95, 0x204a: 0x00093895, 0x204b: 0x00094e95,
-	0x204c: 0x00094295, 0x204d: 0x0003f495, 0x204e: 0x0003f695,
-	0x2050: 0x002bde95, 0x2051: 0x002c9895, 0x2052: 0x002ee295, 0x2053: 0x0030f695,
-	0x2054: 0x002cb895, 0x2055: 0x002d6895, 0x2056: 0x002dfe95, 0x2057: 0x002e2295,
-	0x2058: 0x002e8295, 0x2059: 0x002e9e95, 0x205a: 0x002f2c95, 0x205b: 0x002fe695,
-	0x205c: 0x00302c95,
-	0x2060: 0x4027f820, 0x2061: 0x4027fa20, 0x2062: 0x4027fc20, 0x2063: 0x4027fe20,
-	0x2064: 0x40280020, 0x2065: 0x40280220, 0x2066: 0x40280420, 0x2067: 0x40280620,
-	0x2068: 0x40282c20, 0x2069: 0x40280820, 0x206a: 0x40280a20, 0x206b: 0x40280c20,
-	0x206c: 0x40280e20, 0x206d: 0x40281020, 0x206e: 0x40281220, 0x206f: 0x40281420,
-	0x2070: 0x40281620, 0x2071: 0x40281820, 0x2072: 0x40281a20, 0x2073: 0x40281c20,
-	0x2074: 0x40281e20, 0x2075: 0x40282020, 0x2076: 0x40282220, 0x2077: 0x40282420,
-	0x2078: 0x40282620, 0x2079: 0x40282820, 0x207a: 0x40282a20,
-	// Block 0x82, offset 0x2080
-	0x2090: 0xae612a02, 0x2091: 0xae612b02, 0x2092: 0xa0112c02, 0x2093: 0xa0112c02,
-	0x2094: 0xae612d02, 0x2095: 0xae612e02, 0x2096: 0xae612f02, 0x2097: 0xae613002,
-	0x2098: 0xa0106102, 0x2099: 0xa0106102, 0x209a: 0xa0106102, 0x209b: 0xae613102,
-	0x209c: 0xae613202, 0x209d: 0xa0006202, 0x209e: 0xa0006202, 0x209f: 0xa0006202,
-	0x20a0: 0xa0006202, 0x20a1: 0xae613302, 0x20a2: 0xa0006202, 0x20a3: 0xa0006202,
-	0x20a4: 0xa0006202, 0x20a5: 0xa0106102, 0x20a6: 0xa0113402, 0x20a7: 0xae613502,
-	0x20a8: 0xadc13602, 0x20a9: 0xae613702, 0x20aa: 0xa0106102, 0x20ab: 0xa0106102,
-	0x20ac: 0xadc06002, 0x20ad: 0xadc06002, 0x20ae: 0xadc06002, 0x20af: 0xadc06002,
-	0x20b0: 0xae605f02,
-	// Block 0x83, offset 0x20c0
-	0x20c0: 0xe00009bc, 0x20c1: 0xe00009c0, 0x20c2: 0x002c3a8b, 0x20c3: 0xf0000a04,
-	0x20c4: 0x40081c20, 0x20c5: 0xe0000a5e, 0x20c6: 0xe0000a62, 0x20c7: 0x002cc28a,
-	0x20c8: 0x40081e20, 0x20c9: 0xf0000a04, 0x20ca: 0x002d2285, 0x20cb: 0x002d688b,
-	0x20cc: 0x002d688b, 0x20cd: 0x002d688b, 0x20ce: 0x002d6885, 0x20cf: 0xf0000202,
-	0x20d0: 0x002d9a8b, 0x20d1: 0x002d9a8b, 0x20d2: 0x002e228b, 0x20d3: 0x002e2285,
-	0x20d4: 0x40082020, 0x20d5: 0x002e9e8b, 0x20d6: 0xf000040a, 0x20d7: 0x40082220,
-	0x20d8: 0x40082420, 0x20d9: 0x002f2c8b, 0x20da: 0x002f568b, 0x20db: 0x002f7a8b,
-	0x20dc: 0x002f7a8b, 0x20dd: 0x002f7a8b, 0x20de: 0x40082620, 0x20df: 0x40082820,
-	0x20e0: 0xf0001414, 0x20e1: 0xe0000fbd, 0x20e2: 0xf0001414, 0x20e3: 0x40082a20,
-	0x20e4: 0x00312a8b, 0x20e5: 0x40082c20, 0x20e6: 0x0032a288, 0x20e7: 0x40082e20,
-	0x20e8: 0x00312a8b, 0x20e9: 0x40083020, 0x20ea: 0x002dfe88, 0x20eb: 0xe000094d,
-	0x20ec: 0x002c0a8b, 0x20ed: 0x002c3a8b, 0x20ee: 0x40083220, 0x20ef: 0x002c9885,
-	0x20f0: 0x002c988b, 0x20f1: 0x002d088b, 0x20f2: 0x002d1e88, 0x20f3: 0x002e828b,
-	0x20f4: 0x002ee285, 0x20f5: 0x00389084, 0x20f6: 0x00389284, 0x20f7: 0x00389484,
-	0x20f8: 0x00389684, 0x20f9: 0x002d9a85, 0x20fa: 0x40083420, 0x20fb: 0xe0000b95,
-	0x20fc: 0x00327e85, 0x20fd: 0x00325685, 0x20fe: 0x0032568b, 0x20ff: 0x00327e8b,
-	// Block 0x84, offset 0x2100
-	0x2100: 0x00093685, 0x2101: 0x40083620, 0x2102: 0x40083820, 0x2103: 0x40083a20,
-	0x2104: 0x40083c20, 0x2105: 0x002c628b, 0x2106: 0x002c6285, 0x2107: 0x002c9885,
-	0x2108: 0x002d9a85, 0x2109: 0x002dcc85, 0x210a: 0x40083e20, 0x210b: 0x400a6e20,
-	0x210c: 0x40084020, 0x210d: 0xe00009c4, 0x210e: 0x402d1e20, 0x210f: 0x40084220,
-	0x2110: 0xe00002cb, 0x2111: 0xe00002d3, 0x2112: 0xe00002b2, 0x2113: 0xe00002bb,
-	0x2114: 0xe00003cd, 0x2115: 0xe00002c3, 0x2116: 0xe00003d1, 0x2117: 0xe00004ab,
-	0x2118: 0xe0000579, 0x2119: 0xe00002c7, 0x211a: 0xe0000640, 0x211b: 0xe00002cf,
-	0x211c: 0xe00004af, 0x211d: 0xe0000644, 0x211e: 0xe0000798, 0x211f: 0xf0001e1e,
-	0x2120: 0x002d9a8a, 0x2121: 0xf0001f0a, 0x2122: 0xf0000a0a, 0x2123: 0xf0001f0a,
-	0x2124: 0x0030be8a, 0x2125: 0xf0001f0a, 0x2126: 0xf0000a0a, 0x2127: 0xe00010bb,
-	0x2128: 0xf0001f0a, 0x2129: 0x0030f68a, 0x212a: 0xf0001f0a, 0x212b: 0xf0000a0a,
-	0x212c: 0x002e228a, 0x212d: 0x002c3a8a, 0x212e: 0x002c628a, 0x212f: 0x002e828a,
-	0x2130: 0x002d9a84, 0x2131: 0xf0001f04, 0x2132: 0xf0000404, 0x2133: 0xf0001f04,
-	0x2134: 0x0030be84, 0x2135: 0xf0001f04, 0x2136: 0xf0000404, 0x2137: 0xe00010b6,
-	0x2138: 0xf0001f04, 0x2139: 0x0030f684, 0x213a: 0xf0001f04, 0x213b: 0xf0000404,
-	0x213c: 0x002e2284, 0x213d: 0x002c3a84, 0x213e: 0x002c6284, 0x213f: 0x002e8284,
-	// Block 0x85, offset 0x2140
-	0x2140: 0x40287c20, 0x2141: 0x40287e20, 0x2142: 0x40288020, 0x2143: 0x002c5e88,
-	0x2144: 0x402c5e20, 0x2145: 0xe00006c9, 0x2146: 0x40288220, 0x2147: 0x40288420,
-	0x2148: 0x40288620, 0x2149: 0xe00001e2,
-	0x2150: 0x40084420, 0x2151: 0x40084820, 0x2152: 0x40084620, 0x2153: 0x40084a20,
-	0x2154: 0x40084c20, 0x2155: 0x40084e20, 0x2156: 0x40085020, 0x2157: 0x40085220,
-	0x2158: 0x40085420, 0x2159: 0x40085620, 0x215a: 0xe00000c6, 0x215b: 0xe00000c9,
-	0x215c: 0x40085820, 0x215d: 0x40085a20, 0x215e: 0x40085c20, 0x215f: 0x40085e20,
-	0x2160: 0x40086020, 0x2161: 0x40086220, 0x2162: 0x40086420, 0x2163: 0x40086620,
-	0x2164: 0x40086820, 0x2165: 0x40086a20, 0x2166: 0x40086c20, 0x2167: 0x40086e20,
-	0x2168: 0x40087020, 0x2169: 0x40087220, 0x216a: 0x40087420, 0x216b: 0x40087620,
-	0x216c: 0x40087820, 0x216d: 0x40087a20, 0x216e: 0xe00000cc, 0x216f: 0x40087c20,
-	0x2170: 0x40087e20, 0x2171: 0x40088020, 0x2172: 0x40088220, 0x2173: 0x40088420,
-	0x2174: 0x40088620, 0x2175: 0x40088820, 0x2176: 0x40088a20, 0x2177: 0x40088c20,
-	0x2178: 0x40088e20, 0x2179: 0x40089020, 0x217a: 0x40089220, 0x217b: 0x40089420,
-	0x217c: 0x40089620, 0x217d: 0x40089820, 0x217e: 0x40089a20, 0x217f: 0x40089c20,
-	// Block 0x86, offset 0x2180
-	0x2180: 0x40089e20, 0x2181: 0x4008a020, 0x2182: 0x4008a220, 0x2183: 0x4008a420,
-	0x2184: 0x4008a620, 0x2185: 0x4008a820, 0x2186: 0x4008aa20, 0x2187: 0x4008ac20,
-	0x2188: 0x4008ae20, 0x2189: 0x4008b020, 0x218a: 0x4008b220, 0x218b: 0x4008b420,
-	0x218c: 0x4008b620, 0x218d: 0xe00000cf, 0x218e: 0xe00000d5, 0x218f: 0xe00000d2,
-	0x2190: 0x4008b820, 0x2191: 0x4008ba20, 0x2192: 0x4008bc20, 0x2193: 0x4008be20,
-	0x2194: 0x4008c020, 0x2195: 0x4008c220, 0x2196: 0x4008c420, 0x2197: 0x4008c620,
-	0x2198: 0x4008c820, 0x2199: 0x4008ca20, 0x219a: 0x4008cc20, 0x219b: 0x4008ce20,
-	0x219c: 0x4008d020, 0x219d: 0x4008d220, 0x219e: 0x4008d420, 0x219f: 0x4008d620,
-	0x21a0: 0x4008d820, 0x21a1: 0x4008da20, 0x21a2: 0x4008dc20, 0x21a3: 0x4008de20,
-	0x21a4: 0x4008e020, 0x21a5: 0x4008e220, 0x21a6: 0x4008e420, 0x21a7: 0x4008e620,
-	0x21a8: 0x4008e820, 0x21a9: 0x4008ea20, 0x21aa: 0x4008ec20, 0x21ab: 0x4008ee20,
-	0x21ac: 0x4008f020, 0x21ad: 0x4008f220, 0x21ae: 0x4008f420, 0x21af: 0x4008f620,
-	0x21b0: 0x4008f820, 0x21b1: 0x4008fa20, 0x21b2: 0x4008fc20, 0x21b3: 0x4008fe20,
-	0x21b4: 0x40090020, 0x21b5: 0x40090220, 0x21b6: 0x40090420, 0x21b7: 0x40090620,
-	0x21b8: 0x40090820, 0x21b9: 0x40090a20, 0x21ba: 0x40090c20, 0x21bb: 0x40090e20,
-	0x21bc: 0x40091020, 0x21bd: 0x40091220, 0x21be: 0x40091420, 0x21bf: 0x40091620,
-	// Block 0x87, offset 0x21c0
-	0x21c0: 0x40091820, 0x21c1: 0x40091a20, 0x21c2: 0x40091c20, 0x21c3: 0x40091e20,
-	0x21c4: 0xe00000d8, 0x21c5: 0x40092020, 0x21c6: 0x40092220, 0x21c7: 0x40092420,
-	0x21c8: 0x40092620, 0x21c9: 0xe00000db, 0x21ca: 0x40092820, 0x21cb: 0x40092a20,
-	0x21cc: 0xe00000de, 0x21cd: 0x40092c20, 0x21ce: 0x40093020, 0x21cf: 0x40093220,
-	0x21d0: 0x40093420, 0x21d1: 0x40093620, 0x21d2: 0x40094e20, 0x21d3: 0x40095220,
-	0x21d4: 0x40095420, 0x21d5: 0x40095620, 0x21d6: 0x40095a20, 0x21d7: 0x40095c20,
-	0x21d8: 0x40095e20, 0x21d9: 0x40096020, 0x21da: 0x40096220, 0x21db: 0x40096420,
-	0x21dc: 0x40096820, 0x21dd: 0x40096c20, 0x21de: 0x40096e20, 0x21df: 0x40097020,
-	0x21e0: 0x40097220, 0x21e1: 0x40097420, 0x21e2: 0x40097620, 0x21e3: 0x40097820,
-	0x21e4: 0xe00000ea, 0x21e5: 0x40097a20, 0x21e6: 0xe00000ed, 0x21e7: 0x40097c20,
-	0x21e8: 0x40097e20, 0x21e9: 0x40098020, 0x21ea: 0x40098220, 0x21eb: 0x40098420,
-	0x21ec: 0xf0001f04, 0x21ed: 0xf0000404, 0x21ee: 0x40098620, 0x21ef: 0xf0001f04,
-	0x21f0: 0xf0000404, 0x21f1: 0x40098820, 0x21f2: 0x40098a20, 0x21f3: 0x40098c20,
-	0x21f4: 0x40098e20, 0x21f5: 0x40099020, 0x21f6: 0x40099220, 0x21f7: 0x40099420,
-	0x21f8: 0x40099620, 0x21f9: 0x40099820, 0x21fa: 0x40099a20, 0x21fb: 0x40099c20,
-	0x21fc: 0x40099e20, 0x21fd: 0x4009a020, 0x21fe: 0x4009a220, 0x21ff: 0x4009a420,
-	// Block 0x88, offset 0x2200
-	0x2200: 0x4009a620, 0x2201: 0xe00000f5, 0x2202: 0x4009a820, 0x2203: 0x4009aa20,
-	0x2204: 0xe00000f8, 0x2205: 0x4009ac20, 0x2206: 0x4009ae20, 0x2207: 0xe00000fb,
-	0x2208: 0x4009b020, 0x2209: 0xe00000fe, 0x220a: 0x4009b220, 0x220b: 0x4009b420,
-	0x220c: 0x4009b620, 0x220d: 0x4009b820, 0x220e: 0x4009ba20, 0x220f: 0x4009bc20,
-	0x2210: 0x4009be20, 0x2211: 0x4009c020, 0x2212: 0x4009c220, 0x2213: 0x4009c420,
-	0x2214: 0x4009c620, 0x2215: 0x4009c820, 0x2216: 0x4009ca20, 0x2217: 0x4009cc20,
-	0x2218: 0x4009ce20, 0x2219: 0x4009d020, 0x221a: 0x4009d220, 0x221b: 0x4009d420,
-	0x221c: 0x4009d620, 0x221d: 0x4009d820, 0x221e: 0x4009da20, 0x221f: 0x4009dc20,
-	0x2220: 0xe00000e4, 0x2221: 0x4009de20, 0x2222: 0xe0000104, 0x2223: 0x4009e020,
-	0x2224: 0x4009e220, 0x2225: 0x4009e420, 0x2226: 0x4009e620, 0x2227: 0x4009e820,
-	0x2228: 0x4009ea20, 0x2229: 0x4009ec20, 0x222a: 0x4009ee20, 0x222b: 0x4009f020,
-	0x222c: 0x4009f220, 0x222d: 0xe0000101, 0x222e: 0xe00000e1, 0x222f: 0xe00000e7,
-	0x2230: 0xe0000107, 0x2231: 0xe000010a, 0x2232: 0x4009f420, 0x2233: 0x4009f620,
-	0x2234: 0xe000010d, 0x2235: 0xe0000110, 0x2236: 0x4009f820, 0x2237: 0x4009fa20,
-	0x2238: 0xe0000113, 0x2239: 0xe0000116, 0x223a: 0x4009fc20, 0x223b: 0x4009fe20,
-	0x223c: 0x400a0020, 0x223d: 0x400a0220, 0x223e: 0x400a0420, 0x223f: 0x400a0620,
-	// Block 0x89, offset 0x2240
-	0x2240: 0xe0000119, 0x2241: 0xe000011c, 0x2242: 0x400a0820, 0x2243: 0x400a0a20,
-	0x2244: 0xe0000125, 0x2245: 0xe0000128, 0x2246: 0x400a0c20, 0x2247: 0x400a0e20,
-	0x2248: 0xe000012b, 0x2249: 0xe000012e, 0x224a: 0x400a1020, 0x224b: 0x400a1220,
-	0x224c: 0x400a1420, 0x224d: 0x400a1620, 0x224e: 0x400a1820, 0x224f: 0x400a1a20,
-	0x2250: 0x400a1c20, 0x2251: 0x400a1e20, 0x2252: 0x400a2020, 0x2253: 0x400a2220,
-	0x2254: 0x400a2420, 0x2255: 0x400a2620, 0x2256: 0x400a2820, 0x2257: 0x400a2a20,
-	0x2258: 0x400a2c20, 0x2259: 0x400a2e20, 0x225a: 0x400a3020, 0x225b: 0x400a3220,
-	0x225c: 0x400a3420, 0x225d: 0x400a3620, 0x225e: 0x400a3820, 0x225f: 0x400a3a20,
-	0x2260: 0x400a3c20, 0x2261: 0x400a3e20, 0x2262: 0x400a4020, 0x2263: 0x400a4220,
-	0x2264: 0x400a4420, 0x2265: 0x400a4620, 0x2266: 0x400a4820, 0x2267: 0x400a4a20,
-	0x2268: 0x400a4c20, 0x2269: 0x400a4e20, 0x226a: 0x400a5020, 0x226b: 0x400a5220,
-	0x226c: 0xe0000137, 0x226d: 0xe000013a, 0x226e: 0xe000013d, 0x226f: 0xe0000140,
-	0x2270: 0x400a5420, 0x2271: 0x400a5620, 0x2272: 0x400a5820, 0x2273: 0x400a5a20,
-	0x2274: 0x400a5c20, 0x2275: 0x400a5e20, 0x2276: 0x400a6020, 0x2277: 0x400a6220,
-	0x2278: 0x400a6420, 0x2279: 0x400a6620, 0x227a: 0x400a6820, 0x227b: 0x400a6a20,
-	0x227c: 0x400a6c20, 0x227d: 0x400a7020, 0x227e: 0x400a7220, 0x227f: 0x400a7420,
-	// Block 0x8a, offset 0x2280
-	0x2280: 0x400a7620, 0x2281: 0x400a7820, 0x2282: 0x400a7a20, 0x2283: 0x400a7c20,
-	0x2284: 0x400a7e20, 0x2285: 0x400a8020, 0x2286: 0x400a8220, 0x2287: 0x400a8420,
-	0x2288: 0x400a8620, 0x2289: 0x400a8820, 0x228a: 0x400a8a20, 0x228b: 0x400a8c20,
-	0x228c: 0x400a8e20, 0x228d: 0x400a9020, 0x228e: 0x400a9220, 0x228f: 0x400a9420,
-	0x2290: 0x400a9620, 0x2291: 0x400a9820, 0x2292: 0x400a9a20, 0x2293: 0x400a9c20,
-	0x2294: 0x400a9e20, 0x2295: 0x400aa020, 0x2296: 0x400aa220, 0x2297: 0x400aa420,
-	0x2298: 0x400aa620, 0x2299: 0x400aa820, 0x229a: 0x400aaa20, 0x229b: 0x400aac20,
-	0x229c: 0x400aae20, 0x229d: 0x400ab020, 0x229e: 0x400ab220, 0x229f: 0x400ab420,
-	0x22a0: 0xe000011f, 0x22a1: 0xe0000122, 0x22a2: 0xe0000131, 0x22a3: 0xe0000134,
-	0x22a4: 0x400ab620, 0x22a5: 0x400ab820, 0x22a6: 0x400aba20, 0x22a7: 0x400abc20,
-	0x22a8: 0x400abe20, 0x22a9: 0x400ac020, 0x22aa: 0xe0000143, 0x22ab: 0xe0000146,
-	0x22ac: 0xe0000149, 0x22ad: 0xe000014c, 0x22ae: 0x400ac220, 0x22af: 0x400ac420,
-	0x22b0: 0x400ac620, 0x22b1: 0x400ac820, 0x22b2: 0x400aca20, 0x22b3: 0x400acc20,
-	0x22b4: 0x400ace20, 0x22b5: 0x400ad020, 0x22b6: 0x400ad220, 0x22b7: 0x400ad420,
-	0x22b8: 0x400ad620, 0x22b9: 0x400ad820, 0x22ba: 0x400ada20, 0x22bb: 0x400adc20,
-	0x22bc: 0x400ade20, 0x22bd: 0x400ae020, 0x22be: 0x400ae220, 0x22bf: 0x400ae420,
-	// Block 0x8b, offset 0x22c0
-	0x22c0: 0x400ae620, 0x22c1: 0x400ae820, 0x22c2: 0x400aea20, 0x22c3: 0x400aec20,
-	0x22c4: 0x400aee20, 0x22c5: 0x400af020, 0x22c6: 0x400af220, 0x22c7: 0x400af420,
-	0x22c8: 0x400af620, 0x22c9: 0x400af820, 0x22ca: 0x400afa20, 0x22cb: 0x400afc20,
-	0x22cc: 0x400afe20, 0x22cd: 0x400b0020, 0x22ce: 0x400b0220, 0x22cf: 0x400b0420,
-	0x22d0: 0x400b0620, 0x22d1: 0x400b0820, 0x22d2: 0x400b0a20, 0x22d3: 0x400b0c20,
-	0x22d4: 0x400b0e20, 0x22d5: 0x400b1020, 0x22d6: 0x400b1220, 0x22d7: 0x400b1420,
-	0x22d8: 0x400b1620, 0x22d9: 0x400b1820, 0x22da: 0x400b1a20, 0x22db: 0x400b1c20,
-	0x22dc: 0x400b1e20, 0x22dd: 0x400b2020, 0x22de: 0x400b2220, 0x22df: 0x400b2420,
-	0x22e0: 0x400b2620, 0x22e1: 0x400b2820, 0x22e2: 0x400b2a20, 0x22e3: 0x400b2c20,
-	0x22e4: 0x400b2e20, 0x22e5: 0x400b3020, 0x22e6: 0x400b3220, 0x22e7: 0x400b3420,
-	0x22e8: 0x400b3620, 0x22e9: 0x40049c20, 0x22ea: 0x40049e20, 0x22eb: 0x400b3820,
-	0x22ec: 0x400b3a20, 0x22ed: 0x400b3c20, 0x22ee: 0x400b3e20, 0x22ef: 0x400b4020,
-	0x22f0: 0x400b4220, 0x22f1: 0x400b4420, 0x22f2: 0x400b4620, 0x22f3: 0x400b4820,
-	0x22f4: 0x400b4a20, 0x22f5: 0x400b4c20, 0x22f6: 0x400b4e20, 0x22f7: 0x400b5020,
-	0x22f8: 0x400b5220, 0x22f9: 0x400b5420, 0x22fa: 0x400b5620, 0x22fb: 0x400b5820,
-	0x22fc: 0x400b5a20, 0x22fd: 0x400b5c20, 0x22fe: 0x400b5e20, 0x22ff: 0x400b6020,
-	// Block 0x8c, offset 0x2300
-	0x2300: 0x400b6220, 0x2301: 0x400b6420, 0x2302: 0x400b6620, 0x2303: 0x400b6820,
-	0x2304: 0x400b6a20, 0x2305: 0x400b6c20, 0x2306: 0x400b6e20, 0x2307: 0x400b7020,
-	0x2308: 0x400b7220, 0x2309: 0x400b7420, 0x230a: 0x400b7620, 0x230b: 0x400b7820,
-	0x230c: 0x400b7a20, 0x230d: 0x400b7c20, 0x230e: 0x400b7e20, 0x230f: 0x400b8020,
-	0x2310: 0x400b8220, 0x2311: 0x400b8420, 0x2312: 0x400b8620, 0x2313: 0x400b8820,
-	0x2314: 0x400b8a20, 0x2315: 0x400b8c20, 0x2316: 0x400b8e20, 0x2317: 0x400b9020,
-	0x2318: 0x400b9220, 0x2319: 0x400b9420, 0x231a: 0x400b9620, 0x231b: 0x400b9820,
-	0x231c: 0x400b9a20, 0x231d: 0x400b9c20, 0x231e: 0x400b9e20, 0x231f: 0x400ba020,
-	0x2320: 0x400ba220, 0x2321: 0x400ba420, 0x2322: 0x400ba620, 0x2323: 0x400ba820,
-	0x2324: 0x400baa20, 0x2325: 0x400bac20, 0x2326: 0x400bae20, 0x2327: 0x400bb020,
-	0x2328: 0x400bb220, 0x2329: 0x400bb420, 0x232a: 0x400bb620, 0x232b: 0x400bb820,
-	0x232c: 0x400bba20, 0x232d: 0x400bbc20, 0x232e: 0x400bbe20, 0x232f: 0x400bc020,
-	0x2330: 0x400bc220, 0x2331: 0x400bc420, 0x2332: 0x400bc620, 0x2333: 0x400bc820,
-	0x2334: 0x400bca20, 0x2335: 0x400bcc20, 0x2336: 0x400bce20, 0x2337: 0x400bd020,
-	0x2338: 0x400bd220, 0x2339: 0x400bd420, 0x233a: 0x400bd620, 0x233b: 0x400bd820,
-	0x233c: 0x400bda20, 0x233d: 0x400bdc20, 0x233e: 0x400bde20, 0x233f: 0x400be020,
-	// Block 0x8d, offset 0x2340
-	0x2340: 0x400be220, 0x2341: 0x400be420, 0x2342: 0x400be620, 0x2343: 0x400be820,
-	0x2344: 0x400bea20, 0x2345: 0x400bec20, 0x2346: 0x400bee20, 0x2347: 0x400bf020,
-	0x2348: 0x400bf220, 0x2349: 0x400bf420, 0x234a: 0x400bf620, 0x234b: 0x400bf820,
-	0x234c: 0x400bfa20, 0x234d: 0x400bfc20, 0x234e: 0x400bfe20, 0x234f: 0x400c0020,
-	0x2350: 0x400c0220, 0x2351: 0x400c0420, 0x2352: 0x400c0620, 0x2353: 0x400c0820,
-	0x2354: 0x400c0a20, 0x2355: 0x400c0c20, 0x2356: 0x400c0e20, 0x2357: 0x400c1020,
-	0x2358: 0x400c1220, 0x2359: 0x400c1420, 0x235a: 0x400c1620, 0x235b: 0x400c1820,
-	0x235c: 0x400c1a20, 0x235d: 0x400c1c20, 0x235e: 0x400c1e20, 0x235f: 0x400c2020,
-	0x2360: 0x400c2220, 0x2361: 0x400c2420, 0x2362: 0x400c2620, 0x2363: 0x400c2820,
-	0x2364: 0x400c2a20, 0x2365: 0x400c2c20, 0x2366: 0x400c2e20, 0x2367: 0x400c3020,
-	0x2368: 0x400c3220, 0x2369: 0x400c3420, 0x236a: 0x400c3620, 0x236b: 0x400c3820,
-	0x236c: 0x400c3a20, 0x236d: 0x400c3c20, 0x236e: 0x400c3e20, 0x236f: 0x400c4020,
-	0x2370: 0x400c4220, 0x2371: 0x400c4420, 0x2372: 0x400c4620, 0x2373: 0x400c4820,
-	0x2374: 0x400c4a20, 0x2375: 0x400c4c20, 0x2376: 0x400c4e20, 0x2377: 0x400c5020,
-	0x2378: 0x400c5220, 0x2379: 0x400c5420, 0x237a: 0x400c5620, 0x237b: 0x400c5820,
-	0x237c: 0x400c5a20, 0x237d: 0x400c5c20, 0x237e: 0x400c5e20, 0x237f: 0x400c6020,
-	// Block 0x8e, offset 0x2380
-	0x2380: 0x400c6220, 0x2381: 0x400c6420, 0x2382: 0x400c6620, 0x2383: 0x400c6820,
-	0x2384: 0x400c6a20, 0x2385: 0x400c6c20, 0x2386: 0x400c6e20, 0x2387: 0x400c7020,
-	0x2388: 0x400c7220, 0x2389: 0x400c7420, 0x238a: 0x400c7620, 0x238b: 0x400c7820,
-	0x238c: 0x400c7a20, 0x238d: 0x400c7c20, 0x238e: 0x400c7e20, 0x238f: 0x400c8020,
-	0x2390: 0x400c8220, 0x2391: 0x400c8420, 0x2392: 0x400c8620, 0x2393: 0x400c8820,
-	0x2394: 0x400c8a20, 0x2395: 0x400c8c20, 0x2396: 0x400c8e20, 0x2397: 0x400c9020,
-	0x2398: 0x400c9220, 0x2399: 0x400c9420, 0x239a: 0x400c9620, 0x239b: 0x400c9820,
-	0x239c: 0x400c9a20, 0x239d: 0x400c9c20, 0x239e: 0x400c9e20, 0x239f: 0x400ca020,
-	0x23a0: 0x400ca220, 0x23a1: 0x400ca420, 0x23a2: 0x400ca620, 0x23a3: 0x400ca820,
-	0x23a4: 0x400caa20, 0x23a5: 0x400cac20, 0x23a6: 0x400cae20, 0x23a7: 0x400cb020,
-	0x23a8: 0x400cb220, 0x23a9: 0x400cb420, 0x23aa: 0x400cb620, 0x23ab: 0x400cb820,
-	0x23ac: 0x400cba20, 0x23ad: 0x400cbc20, 0x23ae: 0x400cbe20, 0x23af: 0x400cc020,
-	0x23b0: 0x400cc220, 0x23b1: 0x400cc420, 0x23b2: 0x400cc620, 0x23b3: 0x400cc820,
-	// Block 0x8f, offset 0x23c0
-	0x23c0: 0x400cca20, 0x23c1: 0x400ccc20, 0x23c2: 0x400cce20, 0x23c3: 0x400cd020,
-	0x23c4: 0x400cd220, 0x23c5: 0x400cd420, 0x23c6: 0x400cd620, 0x23c7: 0x400cd820,
-	0x23c8: 0x400cda20, 0x23c9: 0x400cdc20, 0x23ca: 0x400cde20, 0x23cb: 0x400ce020,
-	0x23cc: 0x400ce220, 0x23cd: 0x400ce420, 0x23ce: 0x400ce620, 0x23cf: 0x400ce820,
-	0x23d0: 0x400cea20, 0x23d1: 0x400cec20, 0x23d2: 0x400cee20, 0x23d3: 0x400cf020,
-	0x23d4: 0x400cf220, 0x23d5: 0x400cf420, 0x23d6: 0x400cf620, 0x23d7: 0x400cf820,
-	0x23d8: 0x400cfa20, 0x23d9: 0x400cfc20, 0x23da: 0x400cfe20, 0x23db: 0x400d0020,
-	0x23dc: 0x400d0220, 0x23dd: 0x400d0420, 0x23de: 0x400d0620, 0x23df: 0x400d0820,
-	0x23e0: 0x400d0a20, 0x23e1: 0x400d0c20, 0x23e2: 0x400d0e20, 0x23e3: 0x400d1020,
-	0x23e4: 0x400d1220, 0x23e5: 0x400d1420, 0x23e6: 0x400d1620,
-	// Block 0x90, offset 0x2400
-	0x2400: 0x400d1820, 0x2401: 0x400d1a20, 0x2402: 0x400d1c20, 0x2403: 0x400d1e20,
-	0x2404: 0x400d2020, 0x2405: 0x400d2220, 0x2406: 0x400d2420, 0x2407: 0x400d2620,
-	0x2408: 0x400d2820, 0x2409: 0x400d2a20, 0x240a: 0x400d2c20,
-	0x2420: 0x0029ce86, 0x2421: 0x0029d086, 0x2422: 0x0029d286, 0x2423: 0x0029d486,
-	0x2424: 0x0029d686, 0x2425: 0x0029d886, 0x2426: 0x0029da86, 0x2427: 0x0029dc86,
-	0x2428: 0x0029de86, 0x2429: 0xf0000606, 0x242a: 0xf0000606, 0x242b: 0xf0000606,
-	0x242c: 0xf0000606, 0x242d: 0xf0000606, 0x242e: 0xf0000606, 0x242f: 0xf0000606,
-	0x2430: 0xf0000606, 0x2431: 0xf0000606, 0x2432: 0xf0000606, 0x2433: 0xf0000606,
-	0x2434: 0xf0000404, 0x2435: 0xf0000404, 0x2436: 0xf0000404, 0x2437: 0xf0000404,
-	0x2438: 0xf0000404, 0x2439: 0xf0000404, 0x243a: 0xf0000404, 0x243b: 0xf0000404,
-	0x243c: 0xf0000404, 0x243d: 0xe0000015, 0x243e: 0xe000001a, 0x243f: 0xe000001f,
-	// Block 0x91, offset 0x2440
-	0x2440: 0xe0000024, 0x2441: 0xe0000029, 0x2442: 0xe000002e, 0x2443: 0xe0000033,
-	0x2444: 0xe0000038, 0x2445: 0xe000003d, 0x2446: 0xe0000042, 0x2447: 0xe0000047,
-	0x2448: 0xf0001f04, 0x2449: 0xf0001f04, 0x244a: 0xf0001f04, 0x244b: 0xf0001f04,
-	0x244c: 0xf0001f04, 0x244d: 0xf0001f04, 0x244e: 0xf0001f04, 0x244f: 0xf0001f04,
-	0x2450: 0xf0001f04, 0x2451: 0xf0000404, 0x2452: 0xf0000404, 0x2453: 0xf0000404,
-	0x2454: 0xf0000404, 0x2455: 0xf0000404, 0x2456: 0xf0000404, 0x2457: 0xf0000404,
-	0x2458: 0xf0000404, 0x2459: 0xf0000404, 0x245a: 0xf0000404, 0x245b: 0xf0000404,
-	0x245c: 0xf0000404, 0x245d: 0xf0000404, 0x245e: 0xf0000404, 0x245f: 0xf0000404,
-	0x2460: 0xf0000404, 0x2461: 0xf0000404, 0x2462: 0xf0000404, 0x2463: 0xf0000404,
-	0x2464: 0xf0000404, 0x2465: 0xf0000404, 0x2466: 0xf0000404, 0x2467: 0xf0000404,
-	0x2468: 0xf0000404, 0x2469: 0xf0000404, 0x246a: 0xf0000404, 0x246b: 0xf0000404,
-	0x246c: 0xf0000404, 0x246d: 0xf0000404, 0x246e: 0xf0000404, 0x246f: 0xf0000404,
-	0x2470: 0xf0000404, 0x2471: 0xf0000404, 0x2472: 0xf0000404, 0x2473: 0xf0000404,
-	0x2474: 0xf0000404, 0x2475: 0xf0000404, 0x2476: 0x002bde8c, 0x2477: 0x002c0a8c,
-	0x2478: 0x002c3a8c, 0x2479: 0x002c628c, 0x247a: 0x002c988c, 0x247b: 0x002d088c,
-	0x247c: 0x002d228c, 0x247d: 0x002d688c, 0x247e: 0x002d9a8c, 0x247f: 0x002dcc8c,
-	// Block 0x92, offset 0x2480
-	0x2480: 0x002dfe8c, 0x2481: 0x002e228c, 0x2482: 0x002e828c, 0x2483: 0x002e9e8c,
-	0x2484: 0x002ee28c, 0x2485: 0x002f2c8c, 0x2486: 0x002f568c, 0x2487: 0x002f7a8c,
-	0x2488: 0x002fe68c, 0x2489: 0x00302c8c, 0x248a: 0x00306c8c, 0x248b: 0x0030be8c,
-	0x248c: 0x0030e28c, 0x248d: 0x0030f68c, 0x248e: 0x0031008c, 0x248f: 0x00312a8c,
-	0x2490: 0x002bde86, 0x2491: 0x002c0a86, 0x2492: 0x002c3a86, 0x2493: 0x002c6286,
-	0x2494: 0x002c9886, 0x2495: 0x002d0886, 0x2496: 0x002d2286, 0x2497: 0x002d6886,
-	0x2498: 0x002d9a86, 0x2499: 0x002dcc86, 0x249a: 0x002dfe86, 0x249b: 0x002e2286,
-	0x249c: 0x002e8286, 0x249d: 0x002e9e86, 0x249e: 0x002ee286, 0x249f: 0x002f2c86,
-	0x24a0: 0x002f5686, 0x24a1: 0x002f7a86, 0x24a2: 0x002fe686, 0x24a3: 0x00302c86,
-	0x24a4: 0x00306c86, 0x24a5: 0x0030be86, 0x24a6: 0x0030e286, 0x24a7: 0x0030f686,
-	0x24a8: 0x00310086, 0x24a9: 0x00312a86, 0x24aa: 0x0029cc86, 0x24ab: 0xe00002e6,
-	0x24ac: 0xe00002e9, 0x24ad: 0xe00002ec, 0x24ae: 0xe00002ef, 0x24af: 0xe00002f2,
-	0x24b0: 0xe00002f5, 0x24b1: 0xe00002f8, 0x24b2: 0xe00002fb, 0x24b3: 0xe00002fe,
-	0x24b4: 0xe00003d5, 0x24b5: 0x0029ce86, 0x24b6: 0x0029d086, 0x24b7: 0x0029d286,
-	0x24b8: 0x0029d486, 0x24b9: 0x0029d686, 0x24ba: 0x0029d886, 0x24bb: 0x0029da86,
-	0x24bc: 0x0029dc86, 0x24bd: 0x0029de86, 0x24be: 0xe00002d7, 0x24bf: 0x0029cc86,
-	// Block 0x93, offset 0x24c0
-	0x24c0: 0x400d2e20, 0x24c1: 0x400d3020, 0x24c2: 0x400d3220, 0x24c3: 0x400d3420,
-	0x24c4: 0x400d3620, 0x24c5: 0x400d3820, 0x24c6: 0x400d3a20, 0x24c7: 0x400d3c20,
-	0x24c8: 0x400d3e20, 0x24c9: 0x400d4020, 0x24ca: 0x400d4220, 0x24cb: 0x400d4420,
-	0x24cc: 0x400d4620, 0x24cd: 0x400d4820, 0x24ce: 0x400d4a20, 0x24cf: 0x400d4c20,
-	0x24d0: 0x400d4e20, 0x24d1: 0x400d5020, 0x24d2: 0x400d5220, 0x24d3: 0x400d5420,
-	0x24d4: 0x400d5620, 0x24d5: 0x400d5820, 0x24d6: 0x400d5a20, 0x24d7: 0x400d5c20,
-	0x24d8: 0x400d5e20, 0x24d9: 0x400d6020, 0x24da: 0x400d6220, 0x24db: 0x400d6420,
-	0x24dc: 0x400d6620, 0x24dd: 0x400d6820, 0x24de: 0x400d6a20, 0x24df: 0x400d6c20,
-	0x24e0: 0x400d6e20, 0x24e1: 0x400d7020, 0x24e2: 0x400d7220, 0x24e3: 0x400d7420,
-	0x24e4: 0x400d7620, 0x24e5: 0x400d7820, 0x24e6: 0x400d7a20, 0x24e7: 0x400d7c20,
-	0x24e8: 0x400d7e20, 0x24e9: 0x400d8020, 0x24ea: 0x400d8220, 0x24eb: 0x400d8420,
-	0x24ec: 0x400d8620, 0x24ed: 0x400d8820, 0x24ee: 0x400d8a20, 0x24ef: 0x400d8c20,
-	0x24f0: 0x400d8e20, 0x24f1: 0x400d9020, 0x24f2: 0x400d9220, 0x24f3: 0x400d9420,
-	0x24f4: 0x400d9620, 0x24f5: 0x400d9820, 0x24f6: 0x400d9a20, 0x24f7: 0x400d9c20,
-	0x24f8: 0x400d9e20, 0x24f9: 0x400da020, 0x24fa: 0x400da220, 0x24fb: 0x400da420,
-	0x24fc: 0x400da620, 0x24fd: 0x400da820, 0x24fe: 0x400daa20, 0x24ff: 0x400dac20,
-	// Block 0x94, offset 0x2500
-	0x2500: 0x400dae20, 0x2501: 0x400db020, 0x2502: 0x400db220, 0x2503: 0x400db420,
-	0x2504: 0x400db620, 0x2505: 0x400db820, 0x2506: 0x400dba20, 0x2507: 0x400dbc20,
-	0x2508: 0x400dbe20, 0x2509: 0x400dc020, 0x250a: 0x400dc220, 0x250b: 0x400dc420,
-	0x250c: 0x400dc620, 0x250d: 0x400dc820, 0x250e: 0x400dca20, 0x250f: 0x400dcc20,
-	0x2510: 0x400dce20, 0x2511: 0x400dd020, 0x2512: 0x400dd220, 0x2513: 0x400dd420,
-	0x2514: 0x400dd620, 0x2515: 0x400dd820, 0x2516: 0x400dda20, 0x2517: 0x400ddc20,
-	0x2518: 0x400dde20, 0x2519: 0x400de020, 0x251a: 0x400de220, 0x251b: 0x400de420,
-	0x251c: 0x400de620, 0x251d: 0x400de820, 0x251e: 0x400dea20, 0x251f: 0x400dec20,
-	0x2520: 0x400dee20, 0x2521: 0x400df020, 0x2522: 0x400df220, 0x2523: 0x400df420,
-	0x2524: 0x400df620, 0x2525: 0x400df820, 0x2526: 0x400dfa20, 0x2527: 0x400dfc20,
-	0x2528: 0x400dfe20, 0x2529: 0x400e0020, 0x252a: 0x400e0220, 0x252b: 0x400e0420,
-	0x252c: 0x400e0620, 0x252d: 0x400e0820, 0x252e: 0x400e0a20, 0x252f: 0x400e0c20,
-	0x2530: 0x400e0e20, 0x2531: 0x400e1020, 0x2532: 0x400e1220, 0x2533: 0x400e1420,
-	0x2534: 0x400e1620, 0x2535: 0x400e1820, 0x2536: 0x400e1a20, 0x2537: 0x400e1c20,
-	0x2538: 0x400e1e20, 0x2539: 0x400e2020, 0x253a: 0x400e2220, 0x253b: 0x400e2420,
-	0x253c: 0x400e2620, 0x253d: 0x400e2820, 0x253e: 0x400e2a20, 0x253f: 0x400e2c20,
-	// Block 0x95, offset 0x2540
-	0x2540: 0x400e2e20, 0x2541: 0x400e3020, 0x2542: 0x400e3220, 0x2543: 0x400e3420,
-	0x2544: 0x400e3620, 0x2545: 0x400e3820, 0x2546: 0x400e3a20, 0x2547: 0x400e3c20,
-	0x2548: 0x400e3e20, 0x2549: 0x400e4020, 0x254a: 0x400e4220, 0x254b: 0x400e4420,
-	0x254c: 0x400e4620, 0x254d: 0x400e4820, 0x254e: 0x400e4a20, 0x254f: 0x400e4c20,
-	0x2550: 0x400e4e20, 0x2551: 0x400e5020, 0x2552: 0x400e5220, 0x2553: 0x400e5420,
-	0x2554: 0x400e5620, 0x2555: 0x400e5820, 0x2556: 0x400e5a20, 0x2557: 0x400e5c20,
-	0x2558: 0x400e5e20, 0x2559: 0x400e6020, 0x255a: 0x400e6220, 0x255b: 0x400e6420,
-	0x255c: 0x400e6620, 0x255d: 0x400e6820, 0x255e: 0x400e6a20, 0x255f: 0x400e6c20,
-	0x2560: 0x400e6e20, 0x2561: 0x400e7020, 0x2562: 0x400e7220, 0x2563: 0x400e7420,
-	0x2564: 0x400e7620, 0x2565: 0x400e7820, 0x2566: 0x400e7a20, 0x2567: 0x400e7c20,
-	0x2568: 0x400e7e20, 0x2569: 0x400e8020, 0x256a: 0x400e8220, 0x256b: 0x400e8420,
-	0x256c: 0x400e8620, 0x256d: 0x400e8820, 0x256e: 0x400e8a20, 0x256f: 0x400e8c20,
-	0x2570: 0x400e8e20, 0x2571: 0x400e9020, 0x2572: 0x400e9220, 0x2573: 0x400e9420,
-	0x2574: 0x400e9620, 0x2575: 0x400e9820, 0x2576: 0x400e9a20, 0x2577: 0x400e9c20,
-	0x2578: 0x400e9e20, 0x2579: 0x400ea020, 0x257a: 0x400ea220, 0x257b: 0x400ea420,
-	0x257c: 0x400ea620, 0x257d: 0x400ea820, 0x257e: 0x400eaa20, 0x257f: 0x400eac20,
-	// Block 0x96, offset 0x2580
-	0x2580: 0x400eae20, 0x2581: 0x400eb020, 0x2582: 0x400eb220, 0x2583: 0x400eb420,
-	0x2584: 0x400eb620, 0x2585: 0x400eb820, 0x2586: 0x400eba20, 0x2587: 0x400ebc20,
-	0x2588: 0x400ebe20, 0x2589: 0x400ec020, 0x258a: 0x400ec220, 0x258b: 0x400ec420,
-	0x258c: 0x400ec620, 0x258d: 0x400ec820, 0x258e: 0x400eca20, 0x258f: 0x400ecc20,
-	0x2590: 0x400ece20, 0x2591: 0x400ed020, 0x2592: 0x400ed220, 0x2593: 0x400ed420,
-	0x2594: 0x400ed620, 0x2595: 0x400ed820, 0x2596: 0x400eda20, 0x2597: 0x400edc20,
-	0x2598: 0x400ede20, 0x2599: 0x400ee020, 0x259a: 0x400ee220, 0x259b: 0x400ee420,
-	0x259c: 0x400ee620, 0x259d: 0x400ee820, 0x259e: 0x400eea20, 0x259f: 0x400eec20,
-	0x25a0: 0x400eee20, 0x25a1: 0x400ef020, 0x25a2: 0x400ef220, 0x25a3: 0x400ef420,
-	0x25a4: 0x400ef620, 0x25a5: 0x400ef820, 0x25a6: 0x400efa20, 0x25a7: 0x400efc20,
-	0x25a8: 0x400efe20, 0x25a9: 0x400f0020, 0x25aa: 0x400f0220, 0x25ab: 0x400f0420,
-	0x25ac: 0x400f0620, 0x25ad: 0x400f0820, 0x25ae: 0x400f0a20, 0x25af: 0x400f0c20,
-	0x25b0: 0x400f0e20, 0x25b1: 0x400f1020, 0x25b2: 0x400f1220, 0x25b3: 0x400f1420,
-	0x25b4: 0x400f1620, 0x25b5: 0x400f1820, 0x25b6: 0x400f1a20, 0x25b7: 0x400f1c20,
-	0x25b8: 0x400f1e20, 0x25b9: 0x400f2020, 0x25ba: 0x400f2220, 0x25bb: 0x400f2420,
-	0x25bc: 0x400f2620, 0x25bd: 0x400f2820, 0x25be: 0x400f2a20, 0x25bf: 0x400f2c20,
-	// Block 0x97, offset 0x25c0
-	0x25c0: 0x400f2e20, 0x25c1: 0x400f3020, 0x25c2: 0x400f3220, 0x25c3: 0x400f3420,
-	0x25c4: 0x400f3620, 0x25c5: 0x400f3820, 0x25c6: 0x400f3a20, 0x25c7: 0x400f3c20,
-	0x25c8: 0x400f3e20, 0x25c9: 0x400f4020, 0x25ca: 0x400f4220, 0x25cb: 0x400f4420,
-	0x25cc: 0x400f4620, 0x25cd: 0x400f4820, 0x25ce: 0x400f4a20, 0x25cf: 0x400f4c20,
-	0x25d0: 0x400f4e20, 0x25d1: 0x400f5020, 0x25d2: 0x400f5220, 0x25d3: 0x400f5420,
-	0x25d4: 0x400f5620, 0x25d5: 0x400f5820, 0x25d6: 0x400f5a20, 0x25d7: 0x400f5c20,
-	0x25d8: 0x400f5e20, 0x25d9: 0x400f6020, 0x25da: 0x400f6220, 0x25db: 0x400f6420,
-	0x25dc: 0x400f6620, 0x25dd: 0x400f6820, 0x25de: 0x400f6a20, 0x25df: 0x400f6c20,
-	0x25e0: 0x400f6e20, 0x25e1: 0x400f7020, 0x25e2: 0x400f7220, 0x25e3: 0x400f7420,
-	0x25e4: 0x400f7620, 0x25e5: 0x400f7820, 0x25e6: 0x400f7a20, 0x25e7: 0x400f7c20,
-	0x25e8: 0x400f7e20, 0x25e9: 0x400f8020, 0x25ea: 0x400f8220, 0x25eb: 0x400f8420,
-	0x25ec: 0x400f8620, 0x25ed: 0x400f8820, 0x25ee: 0x400f8a20, 0x25ef: 0x400f8c20,
-	0x25f0: 0x40195220, 0x25f1: 0x40195420, 0x25f2: 0x40195620, 0x25f3: 0x40195820,
-	0x25f4: 0x40195a20, 0x25f5: 0x40195c20, 0x25f6: 0x40195e20, 0x25f7: 0x40196020,
-	0x25f8: 0x400f8e20, 0x25f9: 0x400f9020, 0x25fa: 0x400f9220, 0x25fb: 0x400f9420,
-	0x25fc: 0x400f9620, 0x25fd: 0x400f9820, 0x25fe: 0x400f9a20, 0x25ff: 0x400f9c20,
-	// Block 0x98, offset 0x2600
-	0x2600: 0x400f9e20, 0x2601: 0x400fa020, 0x2602: 0x400fa220, 0x2603: 0x400fa420,
-	0x2604: 0x400fa620, 0x2605: 0x400fa820, 0x2606: 0x400faa20, 0x2607: 0x400fac20,
-	0x2608: 0x400fae20, 0x2609: 0x400fb020, 0x260a: 0x400fb220, 0x260b: 0x400fb420,
-	0x260c: 0x400fb620, 0x260d: 0x400fb820, 0x260e: 0x400fba20, 0x260f: 0x400fbc20,
-	0x2610: 0x400fbe20, 0x2611: 0x400fc020, 0x2612: 0x400fc220, 0x2613: 0x400fc420,
-	0x2614: 0x400fc620, 0x2615: 0x400fc820, 0x2616: 0x400fca20, 0x2617: 0x400fcc20,
-	0x2618: 0x400fce20, 0x2619: 0x400fd020, 0x261a: 0x400fd220, 0x261b: 0x400fd420,
-	0x261c: 0x400fd620, 0x261d: 0x400fd820, 0x261e: 0x400fda20, 0x261f: 0x400fdc20,
-	0x2620: 0x400fde20, 0x2621: 0x400fe020, 0x2622: 0x400fe220, 0x2623: 0x400fe420,
-	0x2624: 0x400fe620, 0x2625: 0x400fe820, 0x2626: 0x400fea20, 0x2627: 0x400fec20,
-	0x2628: 0x400fee20, 0x2629: 0x400ff020, 0x262a: 0x400ff220, 0x262b: 0x400ff420,
-	0x262c: 0x400ff620, 0x262d: 0x401dde20, 0x262e: 0x401de020, 0x262f: 0x401de220,
-	0x2630: 0x400ff820, 0x2631: 0x400ffa20, 0x2632: 0x400ffc20, 0x2633: 0x400ffe20,
-	0x2634: 0x40100020, 0x2635: 0x40100220, 0x2636: 0x40100420, 0x2637: 0x40100620,
-	0x2638: 0x40100820, 0x2639: 0x40100a20, 0x263a: 0x40100c20, 0x263b: 0x40100e20,
-	0x263c: 0x40101020, 0x263d: 0x40101220, 0x263e: 0x40101420, 0x263f: 0x40101620,
-	// Block 0x99, offset 0x2640
-	0x2640: 0x40101820, 0x2641: 0x40101a20, 0x2642: 0x40101c20, 0x2643: 0x40101e20,
-	0x2644: 0x40102020, 0x2645: 0x40102220, 0x2646: 0x40102420, 0x2647: 0x40102620,
-	0x2648: 0x40102820, 0x2649: 0x40102a20, 0x264a: 0x40194620, 0x264b: 0x40194820,
-	0x264c: 0x40194a20, 0x264d: 0x40194c20, 0x264e: 0x40194e20, 0x264f: 0x40195020,
-	0x2650: 0x40102c20, 0x2651: 0x40102e20, 0x2652: 0x40103020, 0x2653: 0x40103220,
-	0x2654: 0x40103420, 0x2655: 0x40103620, 0x2656: 0x40103820, 0x2657: 0x40103a20,
-	0x2658: 0x40103c20, 0x2659: 0x40103e20, 0x265a: 0x40104020, 0x265b: 0x40104220,
-	0x265c: 0x40104420, 0x265d: 0x40104620, 0x265e: 0x40104820, 0x265f: 0x40104a20,
-	0x2660: 0x40104c20, 0x2661: 0x40104e20, 0x2662: 0x40105020, 0x2663: 0x40105220,
-	0x2664: 0x40105420, 0x2665: 0x40105620, 0x2666: 0x40105820, 0x2667: 0x40105a20,
-	0x2668: 0x40105c20, 0x2669: 0x40105e20, 0x266a: 0x40106020, 0x266b: 0x40106220,
-	0x266c: 0x40106420, 0x266d: 0x40106620, 0x266e: 0x40106820, 0x266f: 0x40106a20,
-	0x2670: 0x40106c20, 0x2671: 0x40106e20, 0x2672: 0x40107020, 0x2673: 0x40107220,
-	0x2674: 0x40107420, 0x2675: 0x40107620, 0x2676: 0x40107820, 0x2677: 0x40107a20,
-	0x2678: 0x40107c20, 0x2679: 0x40107e20, 0x267a: 0x40108020, 0x267b: 0x40108220,
-	0x267c: 0x40108420, 0x267d: 0x40108620, 0x267e: 0x40108820, 0x267f: 0x40108a20,
-	// Block 0x9a, offset 0x2680
-	0x2680: 0x40108c20, 0x2681: 0x40108e20, 0x2682: 0x40109020, 0x2683: 0x40109220,
-	0x2684: 0x40109420, 0x2685: 0x40109620, 0x2686: 0x40109820, 0x2687: 0x40109a20,
-	0x2688: 0x40109c20, 0x2689: 0x40109e20, 0x268a: 0x4010a020, 0x268b: 0x4010a220,
-	0x268c: 0x4010a420, 0x268d: 0x4010a620, 0x268e: 0x4010a820, 0x268f: 0x4010aa20,
-	0x2690: 0x4010ac20, 0x2691: 0x4010ae20, 0x2692: 0x4010b020, 0x2693: 0x4010b220,
-	0x2694: 0x4010b420, 0x2695: 0x4010b620, 0x2696: 0x4010b820, 0x2697: 0x4010ba20,
-	0x2698: 0x4010bc20, 0x2699: 0x4010be20, 0x269a: 0x4010c020, 0x269b: 0x4010c220,
-	0x269c: 0x4010c420, 0x269d: 0x4010c620, 0x269e: 0x4010c820, 0x269f: 0x4010ca20,
-	0x26a0: 0x4010cc20, 0x26a1: 0x4010ce20, 0x26a2: 0x4010d020, 0x26a3: 0x4010d220,
-	0x26a4: 0x4010d420, 0x26a5: 0x4010d620, 0x26a6: 0x4010d820, 0x26a7: 0x4010da20,
-	0x26a8: 0x4010dc20, 0x26a9: 0x4010de20, 0x26aa: 0x4010e020, 0x26ab: 0x4010e220,
-	0x26ac: 0x4010e420, 0x26ad: 0x4010e620, 0x26ae: 0x4010e820, 0x26af: 0x4010ea20,
-	0x26b0: 0x4010ec20, 0x26b1: 0x4010ee20, 0x26b2: 0x4010f020, 0x26b3: 0x4010f220,
-	0x26b4: 0x4010f420, 0x26b5: 0x4010f620, 0x26b6: 0x4010f820, 0x26b7: 0x4010fa20,
-	0x26b8: 0x4010fc20, 0x26b9: 0x4010fe20, 0x26ba: 0x40110020, 0x26bb: 0x40110220,
-	0x26bc: 0x40110420, 0x26bd: 0x40110620, 0x26be: 0x40110820, 0x26bf: 0x40110a20,
-	// Block 0x9b, offset 0x26c0
-	0x26c1: 0x40114020, 0x26c2: 0x40114220, 0x26c3: 0x40114420,
-	0x26c4: 0x40114620, 0x26c5: 0x40114820, 0x26c6: 0x40114a20, 0x26c7: 0x40114c20,
-	0x26c8: 0x40114e20, 0x26c9: 0x40115020, 0x26ca: 0x40115220, 0x26cb: 0x40115420,
-	0x26cc: 0x40115620, 0x26cd: 0x40115820, 0x26ce: 0x40115a20, 0x26cf: 0x40115c20,
-	0x26d0: 0x40115e20, 0x26d1: 0x40116020, 0x26d2: 0x40116220, 0x26d3: 0x40116420,
-	0x26d4: 0x40116620, 0x26d5: 0x40116820, 0x26d6: 0x40116a20, 0x26d7: 0x40116c20,
-	0x26d8: 0x40116e20, 0x26d9: 0x40117020, 0x26da: 0x40117220, 0x26db: 0x40117420,
-	0x26dc: 0x40117620, 0x26dd: 0x40117820, 0x26de: 0x40117a20, 0x26df: 0x40117c20,
-	0x26e0: 0x40117e20, 0x26e1: 0x40118020, 0x26e2: 0x40118220, 0x26e3: 0x40118420,
-	0x26e4: 0x40118620, 0x26e5: 0x40118820, 0x26e6: 0x40118a20, 0x26e7: 0x40118c20,
-	0x26e8: 0x40118e20, 0x26e9: 0x40119020, 0x26ea: 0x40119220, 0x26eb: 0x40119420,
-	0x26ec: 0x40119620, 0x26ed: 0x40119820, 0x26ee: 0x40119a20, 0x26ef: 0x40119c20,
-	0x26f0: 0x40119e20, 0x26f1: 0x4011a020, 0x26f2: 0x4011a220, 0x26f3: 0x4011a420,
-	0x26f4: 0x4011a620, 0x26f5: 0x4011a820, 0x26f6: 0x4011aa20, 0x26f7: 0x4011ac20,
-	0x26f8: 0x4011ae20, 0x26f9: 0x4011b020, 0x26fa: 0x4011b220, 0x26fb: 0x4011b420,
-	0x26fc: 0x4011b620, 0x26fd: 0x4011b820, 0x26fe: 0x4011ba20, 0x26ff: 0x4011bc20,
-	// Block 0x9c, offset 0x2700
-	0x2700: 0x4011be20, 0x2701: 0x4011c020, 0x2702: 0x4011c220, 0x2703: 0x4011c420,
-	0x2704: 0x4011c620, 0x2705: 0x4011c820, 0x2706: 0x4011ca20, 0x2707: 0x4011cc20,
-	0x2708: 0x4011ce20, 0x2709: 0x4011d020, 0x270a: 0x4011d220, 0x270b: 0x4011d420,
-	0x270c: 0x4011d620, 0x270d: 0x4011d820, 0x270e: 0x4011da20, 0x270f: 0x4011dc20,
-	0x2710: 0x4011de20, 0x2711: 0x4011e020, 0x2712: 0x4011e220, 0x2713: 0x4011e420,
-	0x2714: 0x4011e620, 0x2715: 0x4011e820, 0x2716: 0x4011ea20, 0x2717: 0x4011ec20,
-	0x2718: 0x4011ee20, 0x2719: 0x4011f020, 0x271a: 0x4011f220, 0x271b: 0x4011f420,
-	0x271c: 0x4011f620, 0x271d: 0x4011f820, 0x271e: 0x4011fa20, 0x271f: 0x4011fc20,
-	0x2720: 0x4011fe20, 0x2721: 0x40120020, 0x2722: 0x40120220, 0x2723: 0x40120420,
-	0x2724: 0x40120620, 0x2725: 0x40120820, 0x2726: 0x40120a20, 0x2727: 0x40120c20,
-	0x2728: 0x40045820, 0x2729: 0x40045a20, 0x272a: 0x40045c20, 0x272b: 0x40045e20,
-	0x272c: 0x40046020, 0x272d: 0x40046220, 0x272e: 0x40046420, 0x272f: 0x40046620,
-	0x2730: 0x40046820, 0x2731: 0x40046a20, 0x2732: 0x40046c20, 0x2733: 0x40046e20,
-	0x2734: 0x40047020, 0x2735: 0x40047220, 0x2736: 0x0029ce86, 0x2737: 0x0029d086,
-	0x2738: 0x0029d286, 0x2739: 0x0029d486, 0x273a: 0x0029d686, 0x273b: 0x0029d886,
-	0x273c: 0x0029da86, 0x273d: 0x0029dc86, 0x273e: 0x0029de86, 0x273f: 0xe00002da,
-	// Block 0x9d, offset 0x2740
-	0x2740: 0x0029ce86, 0x2741: 0x0029d086, 0x2742: 0x0029d286, 0x2743: 0x0029d486,
-	0x2744: 0x0029d686, 0x2745: 0x0029d886, 0x2746: 0x0029da86, 0x2747: 0x0029dc86,
-	0x2748: 0x0029de86, 0x2749: 0xe00002dd, 0x274a: 0x0029ce86, 0x274b: 0x0029d086,
-	0x274c: 0x0029d286, 0x274d: 0x0029d486, 0x274e: 0x0029d686, 0x274f: 0x0029d886,
-	0x2750: 0x0029da86, 0x2751: 0x0029dc86, 0x2752: 0x0029de86, 0x2753: 0xe00002e0,
-	0x2754: 0x40120e20, 0x2755: 0x40121020, 0x2756: 0x40121220, 0x2757: 0x40121420,
-	0x2758: 0x40121620, 0x2759: 0x40121820, 0x275a: 0x40121a20, 0x275b: 0x40121c20,
-	0x275c: 0x40121e20, 0x275d: 0x40122020, 0x275e: 0x40122220, 0x275f: 0x40122420,
-	0x2760: 0x40122620, 0x2761: 0x40122820, 0x2762: 0x40122a20, 0x2763: 0x40122c20,
-	0x2764: 0x40122e20, 0x2765: 0x40123020, 0x2766: 0x40123220, 0x2767: 0x40123420,
-	0x2768: 0x40123620, 0x2769: 0x40123820, 0x276a: 0x40123a20, 0x276b: 0x40123c20,
-	0x276c: 0x40123e20, 0x276d: 0x40124020, 0x276e: 0x40124220, 0x276f: 0x40124420,
-	0x2770: 0x40124620, 0x2771: 0x40124820, 0x2772: 0x40124a20, 0x2773: 0x40124c20,
-	0x2774: 0x40124e20, 0x2775: 0x40125020, 0x2776: 0x40125220, 0x2777: 0x40125420,
-	0x2778: 0x40125620, 0x2779: 0x40125820, 0x277a: 0x40125a20, 0x277b: 0x40125c20,
-	0x277c: 0x40125e20, 0x277d: 0x40126020, 0x277e: 0x40126220, 0x277f: 0x40126420,
-	// Block 0x9e, offset 0x2780
-	0x2780: 0x40126620, 0x2781: 0x40126820, 0x2782: 0x40126a20, 0x2783: 0x40126c20,
-	0x2784: 0x40126e20, 0x2785: 0x40044020, 0x2786: 0x40044220, 0x2787: 0x40127020,
-	0x2788: 0x40127220, 0x2789: 0x40127420, 0x278a: 0x40127620, 0x278b: 0x40127820,
-	0x278c: 0x40127a20, 0x278d: 0x40127c20, 0x278e: 0x40127e20, 0x278f: 0x40128020,
-	0x2790: 0x40128220, 0x2791: 0x40128420, 0x2792: 0x40128620, 0x2793: 0x40128820,
-	0x2794: 0x40128a20, 0x2795: 0x40128c20, 0x2796: 0x40128e20, 0x2797: 0x40129020,
-	0x2798: 0x40129220, 0x2799: 0x40129420, 0x279a: 0x40129620, 0x279b: 0x40129820,
-	0x279c: 0x40129a20, 0x279d: 0x40129c20, 0x279e: 0x40129e20, 0x279f: 0x4012a020,
-	0x27a0: 0x4012a220, 0x27a1: 0x4012a420, 0x27a2: 0x4012a620, 0x27a3: 0x4012a820,
-	0x27a4: 0x4012aa20, 0x27a5: 0x4012ac20, 0x27a6: 0x40044420, 0x27a7: 0x40044620,
-	0x27a8: 0x40044820, 0x27a9: 0x40044a20, 0x27aa: 0x40044c20, 0x27ab: 0x40044e20,
-	0x27ac: 0x40045020, 0x27ad: 0x40045220, 0x27ae: 0x40045420, 0x27af: 0x40045620,
-	0x27b0: 0x4012ae20, 0x27b1: 0x4012b020, 0x27b2: 0x4012b220, 0x27b3: 0x4012b420,
-	0x27b4: 0x4012b620, 0x27b5: 0x4012b820, 0x27b6: 0x4012ba20, 0x27b7: 0x4012bc20,
-	0x27b8: 0x4012be20, 0x27b9: 0x4012c020, 0x27ba: 0x4012c220, 0x27bb: 0x4012c420,
-	0x27bc: 0x4012c620, 0x27bd: 0x4012c820, 0x27be: 0x4012ca20, 0x27bf: 0x4012cc20,
-	// Block 0x9f, offset 0x27c0
-	0x27c0: 0x40174620, 0x27c1: 0x40174820, 0x27c2: 0x40174a20, 0x27c3: 0x40174c20,
-	0x27c4: 0x40174e20, 0x27c5: 0x40175020, 0x27c6: 0x40175220, 0x27c7: 0x40175420,
-	0x27c8: 0x40175620, 0x27c9: 0x40175820, 0x27ca: 0x40175a20, 0x27cb: 0x40175c20,
-	0x27cc: 0x40175e20, 0x27cd: 0x40176020, 0x27ce: 0x40176220, 0x27cf: 0x40176420,
-	0x27d0: 0x40176620, 0x27d1: 0x40176820, 0x27d2: 0x40176a20, 0x27d3: 0x40176c20,
-	0x27d4: 0x40176e20, 0x27d5: 0x40177020, 0x27d6: 0x40177220, 0x27d7: 0x40177420,
-	0x27d8: 0x40177620, 0x27d9: 0x40177820, 0x27da: 0x40177a20, 0x27db: 0x40177c20,
-	0x27dc: 0x40177e20, 0x27dd: 0x40178020, 0x27de: 0x40178220, 0x27df: 0x40178420,
-	0x27e0: 0x40178620, 0x27e1: 0x40178820, 0x27e2: 0x40178a20, 0x27e3: 0x40178c20,
-	0x27e4: 0x40178e20, 0x27e5: 0x40179020, 0x27e6: 0x40179220, 0x27e7: 0x40179420,
-	0x27e8: 0x40179620, 0x27e9: 0x40179820, 0x27ea: 0x40179a20, 0x27eb: 0x40179c20,
-	0x27ec: 0x40179e20, 0x27ed: 0x4017a020, 0x27ee: 0x4017a220, 0x27ef: 0x4017a420,
-	0x27f0: 0x4017a620, 0x27f1: 0x4017a820, 0x27f2: 0x4017aa20, 0x27f3: 0x4017ac20,
-	0x27f4: 0x4017ae20, 0x27f5: 0x4017b020, 0x27f6: 0x4017b220, 0x27f7: 0x4017b420,
-	0x27f8: 0x4017b620, 0x27f9: 0x4017b820, 0x27fa: 0x4017ba20, 0x27fb: 0x4017bc20,
-	0x27fc: 0x4017be20, 0x27fd: 0x4017c020, 0x27fe: 0x4017c220, 0x27ff: 0x4017c420,
-	// Block 0xa0, offset 0x2800
-	0x2800: 0x4017c620, 0x2801: 0x4017c820, 0x2802: 0x4017ca20, 0x2803: 0x4017cc20,
-	0x2804: 0x4017ce20, 0x2805: 0x4017d020, 0x2806: 0x4017d220, 0x2807: 0x4017d420,
-	0x2808: 0x4017d620, 0x2809: 0x4017d820, 0x280a: 0x4017da20, 0x280b: 0x4017dc20,
-	0x280c: 0x4017de20, 0x280d: 0x4017e020, 0x280e: 0x4017e220, 0x280f: 0x4017e420,
-	0x2810: 0x4017e620, 0x2811: 0x4017e820, 0x2812: 0x4017ea20, 0x2813: 0x4017ec20,
-	0x2814: 0x4017ee20, 0x2815: 0x4017f020, 0x2816: 0x4017f220, 0x2817: 0x4017f420,
-	0x2818: 0x4017f620, 0x2819: 0x4017f820, 0x281a: 0x4017fa20, 0x281b: 0x4017fc20,
-	0x281c: 0x4017fe20, 0x281d: 0x40180020, 0x281e: 0x40180220, 0x281f: 0x40180420,
-	0x2820: 0x40180620, 0x2821: 0x40180820, 0x2822: 0x40180a20, 0x2823: 0x40180c20,
-	0x2824: 0x40180e20, 0x2825: 0x40181020, 0x2826: 0x40181220, 0x2827: 0x40181420,
-	0x2828: 0x40181620, 0x2829: 0x40181820, 0x282a: 0x40181a20, 0x282b: 0x40181c20,
-	0x282c: 0x40181e20, 0x282d: 0x40182020, 0x282e: 0x40182220, 0x282f: 0x40182420,
-	0x2830: 0x40182620, 0x2831: 0x40182820, 0x2832: 0x40182a20, 0x2833: 0x40182c20,
-	0x2834: 0x40182e20, 0x2835: 0x40183020, 0x2836: 0x40183220, 0x2837: 0x40183420,
-	0x2838: 0x40183620, 0x2839: 0x40183820, 0x283a: 0x40183a20, 0x283b: 0x40183c20,
-	0x283c: 0x40183e20, 0x283d: 0x40184020, 0x283e: 0x40184220, 0x283f: 0x40184420,
-	// Block 0xa1, offset 0x2840
-	0x2840: 0x40184620, 0x2841: 0x40184820, 0x2842: 0x40184a20, 0x2843: 0x40184c20,
-	0x2844: 0x40184e20, 0x2845: 0x40185020, 0x2846: 0x40185220, 0x2847: 0x40185420,
-	0x2848: 0x40185620, 0x2849: 0x40185820, 0x284a: 0x40185a20, 0x284b: 0x40185c20,
-	0x284c: 0x40185e20, 0x284d: 0x40186020, 0x284e: 0x40186220, 0x284f: 0x40186420,
-	0x2850: 0x40186620, 0x2851: 0x40186820, 0x2852: 0x40186a20, 0x2853: 0x40186c20,
-	0x2854: 0x40186e20, 0x2855: 0x40187020, 0x2856: 0x40187220, 0x2857: 0x40187420,
-	0x2858: 0x40187620, 0x2859: 0x40187820, 0x285a: 0x40187a20, 0x285b: 0x40187c20,
-	0x285c: 0x40187e20, 0x285d: 0x40188020, 0x285e: 0x40188220, 0x285f: 0x40188420,
-	0x2860: 0x40188620, 0x2861: 0x40188820, 0x2862: 0x40188a20, 0x2863: 0x40188c20,
-	0x2864: 0x40188e20, 0x2865: 0x40189020, 0x2866: 0x40189220, 0x2867: 0x40189420,
-	0x2868: 0x40189620, 0x2869: 0x40189820, 0x286a: 0x40189a20, 0x286b: 0x40189c20,
-	0x286c: 0x40189e20, 0x286d: 0x4018a020, 0x286e: 0x4018a220, 0x286f: 0x4018a420,
-	0x2870: 0x4018a620, 0x2871: 0x4018a820, 0x2872: 0x4018aa20, 0x2873: 0x4018ac20,
-	0x2874: 0x4018ae20, 0x2875: 0x4018b020, 0x2876: 0x4018b220, 0x2877: 0x4018b420,
-	0x2878: 0x4018b620, 0x2879: 0x4018b820, 0x287a: 0x4018ba20, 0x287b: 0x4018bc20,
-	0x287c: 0x4018be20, 0x287d: 0x4018c020, 0x287e: 0x4018c220, 0x287f: 0x4018c420,
-	// Block 0xa2, offset 0x2880
-	0x2880: 0x4018c620, 0x2881: 0x4018c820, 0x2882: 0x4018ca20, 0x2883: 0x4018cc20,
-	0x2884: 0x4018ce20, 0x2885: 0x4018d020, 0x2886: 0x4018d220, 0x2887: 0x4018d420,
-	0x2888: 0x4018d620, 0x2889: 0x4018d820, 0x288a: 0x4018da20, 0x288b: 0x4018dc20,
-	0x288c: 0x4018de20, 0x288d: 0x4018e020, 0x288e: 0x4018e220, 0x288f: 0x4018e420,
-	0x2890: 0x4018e620, 0x2891: 0x4018e820, 0x2892: 0x4018ea20, 0x2893: 0x4018ec20,
-	0x2894: 0x4018ee20, 0x2895: 0x4018f020, 0x2896: 0x4018f220, 0x2897: 0x4018f420,
-	0x2898: 0x4018f620, 0x2899: 0x4018f820, 0x289a: 0x4018fa20, 0x289b: 0x4018fc20,
-	0x289c: 0x4018fe20, 0x289d: 0x40190020, 0x289e: 0x40190220, 0x289f: 0x40190420,
-	0x28a0: 0x40190620, 0x28a1: 0x40190820, 0x28a2: 0x40190a20, 0x28a3: 0x40190c20,
-	0x28a4: 0x40190e20, 0x28a5: 0x40191020, 0x28a6: 0x40191220, 0x28a7: 0x40191420,
-	0x28a8: 0x40191620, 0x28a9: 0x40191820, 0x28aa: 0x40191a20, 0x28ab: 0x40191c20,
-	0x28ac: 0x40191e20, 0x28ad: 0x40192020, 0x28ae: 0x40192220, 0x28af: 0x40192420,
-	0x28b0: 0x40192620, 0x28b1: 0x40192820, 0x28b2: 0x40192a20, 0x28b3: 0x40192c20,
-	0x28b4: 0x40192e20, 0x28b5: 0x40193020, 0x28b6: 0x40193220, 0x28b7: 0x40193420,
-	0x28b8: 0x40193620, 0x28b9: 0x40193820, 0x28ba: 0x40193a20, 0x28bb: 0x40193c20,
-	0x28bc: 0x40193e20, 0x28bd: 0x40194020, 0x28be: 0x40194220, 0x28bf: 0x40194420,
-	// Block 0xa3, offset 0x28c0
-	0x28c0: 0x4012ce20, 0x28c1: 0x4012d020, 0x28c2: 0x4012d220, 0x28c3: 0x4012d420,
-	0x28c4: 0x4012d620, 0x28c5: 0x4012d820, 0x28c6: 0x4012da20, 0x28c7: 0x4012dc20,
-	0x28c8: 0x4012de20, 0x28c9: 0x4012e020, 0x28ca: 0x4012e220, 0x28cb: 0x4012e420,
-	0x28cc: 0x4012e620, 0x28cd: 0x4012e820, 0x28ce: 0x4012ea20, 0x28cf: 0x4012ec20,
-	0x28d0: 0x4012ee20, 0x28d1: 0x4012f020, 0x28d2: 0x4012f220, 0x28d3: 0x4012f420,
-	0x28d4: 0x4012f620, 0x28d5: 0x4012f820, 0x28d6: 0x4012fa20, 0x28d7: 0x4012fc20,
-	0x28d8: 0x4012fe20, 0x28d9: 0x40130020, 0x28da: 0x40130220, 0x28db: 0x40130420,
-	0x28dc: 0x40130620, 0x28dd: 0x40130820, 0x28de: 0x40130a20, 0x28df: 0x40130c20,
-	0x28e0: 0x40130e20, 0x28e1: 0x40131020, 0x28e2: 0x40131220, 0x28e3: 0x40131420,
-	0x28e4: 0x40131620, 0x28e5: 0x40131820, 0x28e6: 0x40131a20, 0x28e7: 0x40131c20,
-	0x28e8: 0x40131e20, 0x28e9: 0x40132020, 0x28ea: 0x40132220, 0x28eb: 0x40132420,
-	0x28ec: 0x40132620, 0x28ed: 0x40132820, 0x28ee: 0x40132a20, 0x28ef: 0x40132c20,
-	0x28f0: 0x40132e20, 0x28f1: 0x40133020, 0x28f2: 0x40133220, 0x28f3: 0x40133420,
-	0x28f4: 0x40133620, 0x28f5: 0x40133820, 0x28f6: 0x40133a20, 0x28f7: 0x40133c20,
-	0x28f8: 0x40133e20, 0x28f9: 0x40134020, 0x28fa: 0x40134220, 0x28fb: 0x40134420,
-	0x28fc: 0x40134620, 0x28fd: 0x40134820, 0x28fe: 0x40134a20, 0x28ff: 0x40134c20,
-	// Block 0xa4, offset 0x2900
-	0x2900: 0x40134e20, 0x2901: 0x40135020, 0x2902: 0x40135220, 0x2903: 0x40135420,
-	0x2904: 0x40135620, 0x2905: 0x40135820, 0x2906: 0x40135a20, 0x2907: 0x40135c20,
-	0x2908: 0x40135e20, 0x2909: 0x40136020, 0x290a: 0x40136220, 0x290b: 0x40136420,
-	0x290c: 0x40136620, 0x290d: 0x40136820, 0x290e: 0x40136a20, 0x290f: 0x40136c20,
-	0x2910: 0x40136e20, 0x2911: 0x40137020, 0x2912: 0x40137220, 0x2913: 0x40137420,
-	0x2914: 0x40137620, 0x2915: 0x40137820, 0x2916: 0x40137a20, 0x2917: 0x40137c20,
-	0x2918: 0x40137e20, 0x2919: 0x40138020, 0x291a: 0x40138220, 0x291b: 0x40138420,
-	0x291c: 0x40138620, 0x291d: 0x40138820, 0x291e: 0x40138a20, 0x291f: 0x40138c20,
-	0x2920: 0x40138e20, 0x2921: 0x40139020, 0x2922: 0x40139220, 0x2923: 0x40139420,
-	0x2924: 0x40139620, 0x2925: 0x40139820, 0x2926: 0x40139a20, 0x2927: 0x40139c20,
-	0x2928: 0x40139e20, 0x2929: 0x4013a020, 0x292a: 0x4013a220, 0x292b: 0x4013a420,
-	0x292c: 0x4013a620, 0x292d: 0x4013a820, 0x292e: 0x4013aa20, 0x292f: 0x4013ac20,
-	0x2930: 0x4013ae20, 0x2931: 0x4013b020, 0x2932: 0x4013b220, 0x2933: 0x4013b420,
-	0x2934: 0x4013b620, 0x2935: 0x4013b820, 0x2936: 0x4013ba20, 0x2937: 0x4013bc20,
-	0x2938: 0x4013be20, 0x2939: 0x4013c020, 0x293a: 0x4013c220, 0x293b: 0x4013c420,
-	0x293c: 0x4013c620, 0x293d: 0x4013c820, 0x293e: 0x4013ca20, 0x293f: 0x4013cc20,
-	// Block 0xa5, offset 0x2940
-	0x2940: 0x4013ce20, 0x2941: 0x4013d020, 0x2942: 0x4013d220, 0x2943: 0x40041420,
-	0x2944: 0x40041620, 0x2945: 0x40041820, 0x2946: 0x40041a20, 0x2947: 0x40041c20,
-	0x2948: 0x40041e20, 0x2949: 0x40042020, 0x294a: 0x40042220, 0x294b: 0x40042420,
-	0x294c: 0x40042620, 0x294d: 0x40042820, 0x294e: 0x40042a20, 0x294f: 0x40042c20,
-	0x2950: 0x40042e20, 0x2951: 0x40043020, 0x2952: 0x40043220, 0x2953: 0x40043420,
-	0x2954: 0x40043620, 0x2955: 0x40043820, 0x2956: 0x40043a20, 0x2957: 0x40043c20,
-	0x2958: 0x40043e20, 0x2959: 0x4013d420, 0x295a: 0x4013d620, 0x295b: 0x4013d820,
-	0x295c: 0x4013da20, 0x295d: 0x4013dc20, 0x295e: 0x4013de20, 0x295f: 0x4013e020,
-	0x2960: 0x4013e220, 0x2961: 0x4013e420, 0x2962: 0x4013e620, 0x2963: 0x4013e820,
-	0x2964: 0x4013ea20, 0x2965: 0x4013ec20, 0x2966: 0x4013ee20, 0x2967: 0x4013f020,
-	0x2968: 0x4013f220, 0x2969: 0x4013f420, 0x296a: 0x4013f620, 0x296b: 0x4013f820,
-	0x296c: 0x4013fa20, 0x296d: 0x4013fc20, 0x296e: 0x4013fe20, 0x296f: 0x40140020,
-	0x2970: 0x40140220, 0x2971: 0x40140420, 0x2972: 0x40140620, 0x2973: 0x40140820,
-	0x2974: 0x40140a20, 0x2975: 0x40140c20, 0x2976: 0x40140e20, 0x2977: 0x40141020,
-	0x2978: 0x40141220, 0x2979: 0x40141420, 0x297a: 0x40141620, 0x297b: 0x40141820,
-	0x297c: 0x40141a20, 0x297d: 0x40141c20, 0x297e: 0x40141e20, 0x297f: 0x40142020,
-	// Block 0xa6, offset 0x2980
-	0x2980: 0x40142220, 0x2981: 0x40142420, 0x2982: 0x40142620, 0x2983: 0x40142820,
-	0x2984: 0x40142a20, 0x2985: 0x40142c20, 0x2986: 0x40142e20, 0x2987: 0x40143020,
-	0x2988: 0x40143220, 0x2989: 0x40143420, 0x298a: 0x40143620, 0x298b: 0x40143820,
-	0x298c: 0x40143a20, 0x298d: 0x40143c20, 0x298e: 0x40143e20, 0x298f: 0x40144020,
-	0x2990: 0x40144220, 0x2991: 0x40144420, 0x2992: 0x40144620, 0x2993: 0x40144820,
-	0x2994: 0x40144a20, 0x2995: 0x40144c20, 0x2996: 0x40144e20, 0x2997: 0x40145020,
-	0x2998: 0x4004c620, 0x2999: 0x4004c820, 0x299a: 0x4004ca20, 0x299b: 0x4004cc20,
-	0x299c: 0x40145220, 0x299d: 0x40145420, 0x299e: 0x40145620, 0x299f: 0x40145820,
-	0x29a0: 0x40145a20, 0x29a1: 0x40145c20, 0x29a2: 0x40145e20, 0x29a3: 0x40146020,
-	0x29a4: 0x40146220, 0x29a5: 0x40146420, 0x29a6: 0x40146620, 0x29a7: 0x40146820,
-	0x29a8: 0x40146a20, 0x29a9: 0x40146c20, 0x29aa: 0x40146e20, 0x29ab: 0x40147020,
-	0x29ac: 0x40147220, 0x29ad: 0x40147420, 0x29ae: 0x40147620, 0x29af: 0x40147820,
-	0x29b0: 0x40147a20, 0x29b1: 0x40147c20, 0x29b2: 0x40147e20, 0x29b3: 0x40148020,
-	0x29b4: 0x40148220, 0x29b5: 0x40148420, 0x29b6: 0x40148620, 0x29b7: 0x40148820,
-	0x29b8: 0x40148a20, 0x29b9: 0x40148c20, 0x29ba: 0x40148e20, 0x29bb: 0x40149020,
-	0x29bc: 0x40041020, 0x29bd: 0x40041220, 0x29be: 0x40149220, 0x29bf: 0x40149420,
-	// Block 0xa7, offset 0x29c0
-	0x29c0: 0x40149620, 0x29c1: 0x40149820, 0x29c2: 0x40149a20, 0x29c3: 0x40149c20,
-	0x29c4: 0x40149e20, 0x29c5: 0x4014a020, 0x29c6: 0x4014a220, 0x29c7: 0x4014a420,
-	0x29c8: 0x4014a620, 0x29c9: 0x4014a820, 0x29ca: 0x4014aa20, 0x29cb: 0x4014ac20,
-	0x29cc: 0xe00000f0, 0x29cd: 0x4014ae20, 0x29ce: 0x4014b020, 0x29cf: 0x4014b220,
-	0x29d0: 0x4014b420, 0x29d1: 0x4014b620, 0x29d2: 0x4014b820, 0x29d3: 0x4014ba20,
-	0x29d4: 0x4014bc20, 0x29d5: 0x4014be20, 0x29d6: 0x4014c020, 0x29d7: 0x4014c220,
-	0x29d8: 0x4014c420, 0x29d9: 0x4014c620, 0x29da: 0x4014c820, 0x29db: 0x4014ca20,
-	0x29dc: 0x4014cc20, 0x29dd: 0x4014ce20, 0x29de: 0x4014d020, 0x29df: 0x4014d220,
-	0x29e0: 0x4014d420, 0x29e1: 0x4014d620, 0x29e2: 0x4014d820, 0x29e3: 0x4014da20,
-	0x29e4: 0x4014dc20, 0x29e5: 0x4014de20, 0x29e6: 0x4014e020, 0x29e7: 0x4014e220,
-	0x29e8: 0x4014e420, 0x29e9: 0x4014e620, 0x29ea: 0x4014e820, 0x29eb: 0x4014ea20,
-	0x29ec: 0x4014ec20, 0x29ed: 0x4014ee20, 0x29ee: 0x4014f020, 0x29ef: 0x4014f220,
-	0x29f0: 0x4014f420, 0x29f1: 0x4014f620, 0x29f2: 0x4014f820, 0x29f3: 0x4014fa20,
-	0x29f4: 0x4014fc20, 0x29f5: 0x4014fe20, 0x29f6: 0x40150020, 0x29f7: 0x40150220,
-	0x29f8: 0x40150420, 0x29f9: 0x40150620, 0x29fa: 0x40150820, 0x29fb: 0x40150a20,
-	0x29fc: 0x40150c20, 0x29fd: 0x40150e20, 0x29fe: 0x40151020, 0x29ff: 0x40151220,
-	// Block 0xa8, offset 0x2a00
-	0x2a00: 0x40151420, 0x2a01: 0x40151620, 0x2a02: 0x40151820, 0x2a03: 0x40151a20,
-	0x2a04: 0x40151c20, 0x2a05: 0x40151e20, 0x2a06: 0x40152020, 0x2a07: 0x40152220,
-	0x2a08: 0x40152420, 0x2a09: 0x40152620, 0x2a0a: 0x40152820, 0x2a0b: 0x40152a20,
-	0x2a0c: 0x40152c20, 0x2a0d: 0x40152e20, 0x2a0e: 0x40153020, 0x2a0f: 0x40153220,
-	0x2a10: 0x40153420, 0x2a11: 0x40153620, 0x2a12: 0x40153820, 0x2a13: 0x40153a20,
-	0x2a14: 0x40153c20, 0x2a15: 0x40153e20, 0x2a16: 0x40154020, 0x2a17: 0x40154220,
-	0x2a18: 0x40154420, 0x2a19: 0x40154620, 0x2a1a: 0x40154820, 0x2a1b: 0x40154a20,
-	0x2a1c: 0x40154c20, 0x2a1d: 0x40154e20, 0x2a1e: 0x40155020, 0x2a1f: 0x40155220,
-	0x2a20: 0x40155420, 0x2a21: 0x40155620, 0x2a22: 0x40155820, 0x2a23: 0x40155a20,
-	0x2a24: 0x40155c20, 0x2a25: 0x40155e20, 0x2a26: 0x40156020, 0x2a27: 0x40156220,
-	0x2a28: 0x40156420, 0x2a29: 0x40156620, 0x2a2a: 0x40156820, 0x2a2b: 0x40156a20,
-	0x2a2c: 0x40156c20, 0x2a2d: 0x40156e20, 0x2a2e: 0x40157020, 0x2a2f: 0x40157220,
-	0x2a30: 0x40157420, 0x2a31: 0x40157620, 0x2a32: 0x40157820, 0x2a33: 0x40157a20,
-	0x2a34: 0xf0000404, 0x2a35: 0xf0001f04, 0x2a36: 0xf0000404, 0x2a37: 0x40157c20,
-	0x2a38: 0x40157e20, 0x2a39: 0x40158020, 0x2a3a: 0x40158220, 0x2a3b: 0x40158420,
-	0x2a3c: 0x40158620, 0x2a3d: 0x40158820, 0x2a3e: 0x40158a20, 0x2a3f: 0x40158c20,
-	// Block 0xa9, offset 0x2a40
-	0x2a40: 0x40158e20, 0x2a41: 0x40159020, 0x2a42: 0x40159220, 0x2a43: 0x40159420,
-	0x2a44: 0x40159620, 0x2a45: 0x40159820, 0x2a46: 0x40159a20, 0x2a47: 0x40159c20,
-	0x2a48: 0x40159e20, 0x2a49: 0x4015a020, 0x2a4a: 0x4015a220, 0x2a4b: 0x4015a420,
-	0x2a4c: 0x4015a620, 0x2a4d: 0x4015a820, 0x2a4e: 0x4015aa20, 0x2a4f: 0x4015ac20,
-	0x2a50: 0x4015ae20, 0x2a51: 0x4015b020, 0x2a52: 0x4015b220, 0x2a53: 0x4015b420,
-	0x2a54: 0x4015b620, 0x2a55: 0x4015b820, 0x2a56: 0x4015ba20, 0x2a57: 0x4015bc20,
-	0x2a58: 0x4015be20, 0x2a59: 0x4015c020, 0x2a5a: 0x4015c220, 0x2a5b: 0x4015c420,
-	0x2a5c: 0x4015c620, 0x2a5d: 0x4015c820, 0x2a5e: 0x4015ca20, 0x2a5f: 0x4015cc20,
-	0x2a60: 0x4015ce20, 0x2a61: 0x4015d020, 0x2a62: 0x4015d220, 0x2a63: 0x4015d420,
-	0x2a64: 0x4015d620, 0x2a65: 0x4015d820, 0x2a66: 0x4015da20, 0x2a67: 0x4015dc20,
-	0x2a68: 0x4015de20, 0x2a69: 0x4015e020, 0x2a6a: 0x4015e220, 0x2a6b: 0x4015e420,
-	0x2a6c: 0x4015e620, 0x2a6d: 0x4015e820, 0x2a6e: 0x4015ea20, 0x2a6f: 0x4015ec20,
-	0x2a70: 0x4015ee20, 0x2a71: 0x4015f020, 0x2a72: 0x4015f220, 0x2a73: 0x4015f420,
-	0x2a74: 0x4015f620, 0x2a75: 0x4015f820, 0x2a76: 0x4015fa20, 0x2a77: 0x4015fc20,
-	0x2a78: 0x4015fe20, 0x2a79: 0x40160020, 0x2a7a: 0x40160220, 0x2a7b: 0x40160420,
-	0x2a7c: 0x40160620, 0x2a7d: 0x40160820, 0x2a7e: 0x40160a20, 0x2a7f: 0x40160c20,
-	// Block 0xaa, offset 0x2a80
-	0x2a80: 0x40160e20, 0x2a81: 0x40161020, 0x2a82: 0x40161220, 0x2a83: 0x40161420,
-	0x2a84: 0x40161620, 0x2a85: 0x40161820, 0x2a86: 0x40161a20, 0x2a87: 0x40161c20,
-	0x2a88: 0x40161e20, 0x2a89: 0x40162020, 0x2a8a: 0x40162220, 0x2a8b: 0x40162420,
-	0x2a8c: 0x40162620, 0x2a8d: 0x40162820, 0x2a8e: 0x40162a20, 0x2a8f: 0x40162c20,
-	0x2a90: 0x40162e20, 0x2a91: 0x40163020, 0x2a92: 0x40163220, 0x2a93: 0x40163420,
-	0x2a94: 0x40163620, 0x2a95: 0x40163820, 0x2a96: 0x40163a20, 0x2a97: 0x40163c20,
-	0x2a98: 0x40163e20, 0x2a99: 0x40164020, 0x2a9a: 0x40164220, 0x2a9b: 0x40164420,
-	0x2a9c: 0xe000014f, 0x2a9d: 0x40164620, 0x2a9e: 0x40164820, 0x2a9f: 0x40164a20,
-	0x2aa0: 0x40164c20, 0x2aa1: 0x40164e20, 0x2aa2: 0x40165020, 0x2aa3: 0x40165220,
-	0x2aa4: 0x40165420, 0x2aa5: 0x40165620, 0x2aa6: 0x40165820, 0x2aa7: 0x40165a20,
-	0x2aa8: 0x40165c20, 0x2aa9: 0x40165e20, 0x2aaa: 0x40166020, 0x2aab: 0x40166220,
-	0x2aac: 0x40166420, 0x2aad: 0x40166620, 0x2aae: 0x40166820, 0x2aaf: 0x40166a20,
-	0x2ab0: 0x40166c20, 0x2ab1: 0x40166e20, 0x2ab2: 0x40167020, 0x2ab3: 0x40167220,
-	0x2ab4: 0x40167420, 0x2ab5: 0x40167620, 0x2ab6: 0x40167820, 0x2ab7: 0x40167a20,
-	0x2ab8: 0x40167c20, 0x2ab9: 0x40167e20, 0x2aba: 0x40168020, 0x2abb: 0x40168220,
-	0x2abc: 0x40168420, 0x2abd: 0x40168620, 0x2abe: 0x40168820, 0x2abf: 0x40168a20,
-	// Block 0xab, offset 0x2ac0
-	0x2ac0: 0x40168c20, 0x2ac1: 0x40168e20, 0x2ac2: 0x40169020, 0x2ac3: 0x40169220,
-	0x2ac4: 0x40169420, 0x2ac5: 0x40169620, 0x2ac6: 0x40169820, 0x2ac7: 0x40169a20,
-	0x2ac8: 0x40169c20, 0x2ac9: 0x40169e20, 0x2aca: 0x4016a020, 0x2acb: 0x4016a220,
-	0x2acc: 0x4016a420, 0x2acd: 0x4016a620, 0x2ace: 0x4016a820, 0x2acf: 0x4016aa20,
-	0x2ad0: 0x4016ac20, 0x2ad1: 0x4016ae20, 0x2ad2: 0x4016b020, 0x2ad3: 0x4016b220,
-	0x2ad4: 0x4016b420, 0x2ad5: 0x4016b620, 0x2ad6: 0x4016b820, 0x2ad7: 0x4016ba20,
-	0x2ad8: 0x4016bc20, 0x2ad9: 0x4016be20, 0x2ada: 0x4016c020, 0x2adb: 0x4016c220,
-	0x2adc: 0x4016c420, 0x2add: 0x4016c620, 0x2ade: 0x4016c820, 0x2adf: 0x4016ca20,
-	0x2ae0: 0x4016cc20, 0x2ae1: 0x4016ce20, 0x2ae2: 0x4016d020, 0x2ae3: 0x4016d220,
-	0x2ae4: 0x4016d420, 0x2ae5: 0x4016d620, 0x2ae6: 0x4016d820, 0x2ae7: 0x4016da20,
-	0x2ae8: 0x4016dc20, 0x2ae9: 0x4016de20, 0x2aea: 0x4016e020, 0x2aeb: 0x4016e220,
-	0x2aec: 0x4016e420, 0x2aed: 0x4016e620, 0x2aee: 0x4016e820, 0x2aef: 0x4016ea20,
-	0x2af0: 0x4016ec20, 0x2af1: 0x4016ee20, 0x2af2: 0x4016f020, 0x2af3: 0x4016f220,
-	0x2af4: 0x4016f420, 0x2af5: 0x4016f620, 0x2af6: 0x4016f820, 0x2af7: 0x4016fa20,
-	0x2af8: 0x4016fc20, 0x2af9: 0x4016fe20, 0x2afa: 0x40170020, 0x2afb: 0x40170220,
-	0x2afc: 0x40170420, 0x2afd: 0x40170620, 0x2afe: 0x40170820, 0x2aff: 0x40170a20,
-	// Block 0xac, offset 0x2b00
-	0x2b00: 0x40170c20, 0x2b01: 0x40170e20, 0x2b02: 0x40171020, 0x2b03: 0x40171220,
-	0x2b04: 0x40171420, 0x2b05: 0x40171620, 0x2b06: 0x40171820, 0x2b07: 0x40171a20,
-	0x2b08: 0x40171c20, 0x2b09: 0x40171e20, 0x2b0a: 0x40172020, 0x2b0b: 0x40172220,
-	0x2b0c: 0x40172420,
-	0x2b10: 0x40172620, 0x2b11: 0x40172820, 0x2b12: 0x40172a20, 0x2b13: 0x40172c20,
-	0x2b14: 0x40172e20, 0x2b15: 0x40173020, 0x2b16: 0x40173220, 0x2b17: 0x40173420,
-	0x2b18: 0x40173620, 0x2b19: 0x40173820,
-	// Block 0xad, offset 0x2b40
-	0x2b40: 0x00373888, 0x2b41: 0x00373a88, 0x2b42: 0x00373c88, 0x2b43: 0x00373e88,
-	0x2b44: 0x00374088, 0x2b45: 0x00374288, 0x2b46: 0x00374488, 0x2b47: 0x00374688,
-	0x2b48: 0x00374888, 0x2b49: 0x00374a88, 0x2b4a: 0x00374c88, 0x2b4b: 0x00374e88,
-	0x2b4c: 0x00375088, 0x2b4d: 0x00375288, 0x2b4e: 0x00375488, 0x2b4f: 0x00375688,
-	0x2b50: 0x00375888, 0x2b51: 0x00375a88, 0x2b52: 0x00375c88, 0x2b53: 0x00375e88,
-	0x2b54: 0x00376088, 0x2b55: 0x00376288, 0x2b56: 0x00376488, 0x2b57: 0x00376688,
-	0x2b58: 0x00376888, 0x2b59: 0x00376a88, 0x2b5a: 0x00376c88, 0x2b5b: 0x00376e88,
-	0x2b5c: 0x00377088, 0x2b5d: 0x00377288, 0x2b5e: 0x00377488, 0x2b5f: 0x00377688,
-	0x2b60: 0x00377888, 0x2b61: 0x00377a88, 0x2b62: 0x00377c88, 0x2b63: 0x00377e88,
-	0x2b64: 0x00378088, 0x2b65: 0x00378288, 0x2b66: 0x00378488, 0x2b67: 0x00378688,
-	0x2b68: 0x00378888, 0x2b69: 0x00378a88, 0x2b6a: 0x00378c88, 0x2b6b: 0x00378e88,
-	0x2b6c: 0x00379088, 0x2b6d: 0x00379288, 0x2b6e: 0x00379488,
-	0x2b70: 0x40373820, 0x2b71: 0x40373a20, 0x2b72: 0x40373c20, 0x2b73: 0x40373e20,
-	0x2b74: 0x40374020, 0x2b75: 0x40374220, 0x2b76: 0x40374420, 0x2b77: 0x40374620,
-	0x2b78: 0x40374820, 0x2b79: 0x40374a20, 0x2b7a: 0x40374c20, 0x2b7b: 0x40374e20,
-	0x2b7c: 0x40375020, 0x2b7d: 0x40375220, 0x2b7e: 0x40375420, 0x2b7f: 0x40375620,
-	// Block 0xae, offset 0x2b80
-	0x2b80: 0x40375820, 0x2b81: 0x40375a20, 0x2b82: 0x40375c20, 0x2b83: 0x40375e20,
-	0x2b84: 0x40376020, 0x2b85: 0x40376220, 0x2b86: 0x40376420, 0x2b87: 0x40376620,
-	0x2b88: 0x40376820, 0x2b89: 0x40376a20, 0x2b8a: 0x40376c20, 0x2b8b: 0x40376e20,
-	0x2b8c: 0x40377020, 0x2b8d: 0x40377220, 0x2b8e: 0x40377420, 0x2b8f: 0x40377620,
-	0x2b90: 0x40377820, 0x2b91: 0x40377a20, 0x2b92: 0x40377c20, 0x2b93: 0x40377e20,
-	0x2b94: 0x40378020, 0x2b95: 0x40378220, 0x2b96: 0x40378420, 0x2b97: 0x40378620,
-	0x2b98: 0x40378820, 0x2b99: 0x40378a20, 0x2b9a: 0x40378c20, 0x2b9b: 0x40378e20,
-	0x2b9c: 0x40379020, 0x2b9d: 0x40379220, 0x2b9e: 0x40379420,
-	0x2ba0: 0x002e4088, 0x2ba1: 0x402e4020, 0x2ba2: 0x002e4288, 0x2ba3: 0x002f3688,
-	0x2ba4: 0x002fbe88, 0x2ba5: 0x402be820, 0x2ba6: 0x40303e20, 0x2ba7: 0x002d8888,
-	0x2ba8: 0x402d8820, 0x2ba9: 0x002e1288, 0x2baa: 0x402e1220, 0x2bab: 0x00316088,
-	0x2bac: 0x40316020, 0x2bad: 0x002bf888, 0x2bae: 0x002e9088, 0x2baf: 0x002bf088,
-	0x2bb0: 0x002c0288, 0x2bb1: 0x4030d420, 0x2bb2: 0x0030ec88, 0x2bb3: 0x4030ec20,
-	0x2bb4: 0x4030d620, 0x2bb5: 0x002d8a88, 0x2bb6: 0x402d8a20, 0x2bb7: 0x402f5420,
-	0x2bb8: 0x402cac20, 0x2bb9: 0x402fb420, 0x2bba: 0x402f0e20, 0x2bbb: 0x402cb620,
-	0x2bbc: 0x002dcc95, 0x2bbd: 0x0030be9d, 0x2bbe: 0x002ffc88, 0x2bbf: 0x00315888,
-	// Block 0xaf, offset 0x2bc0
-	0x2bc0: 0x0032aa88, 0x2bc1: 0x4032aa20, 0x2bc2: 0x0032ac88, 0x2bc3: 0x4032ac20,
-	0x2bc4: 0x0032ae88, 0x2bc5: 0x4032ae20, 0x2bc6: 0x0032b088, 0x2bc7: 0x4032b020,
-	0x2bc8: 0x0032b288, 0x2bc9: 0x4032b220, 0x2bca: 0x0032b688, 0x2bcb: 0x4032b620,
-	0x2bcc: 0x0032b888, 0x2bcd: 0x4032b820, 0x2bce: 0x0032ba88, 0x2bcf: 0x4032ba20,
-	0x2bd0: 0x0032bc88, 0x2bd1: 0x4032bc20, 0x2bd2: 0x0032be88, 0x2bd3: 0x4032be20,
-	0x2bd4: 0x0032c088, 0x2bd5: 0x4032c020, 0x2bd6: 0x0032c488, 0x2bd7: 0x4032c420,
-	0x2bd8: 0x0032c688, 0x2bd9: 0x4032c620, 0x2bda: 0x0032c888, 0x2bdb: 0x4032c820,
-	0x2bdc: 0x0032ce88, 0x2bdd: 0x4032ce20, 0x2bde: 0x0032d088, 0x2bdf: 0x4032d020,
-	0x2be0: 0x0032d288, 0x2be1: 0x4032d220, 0x2be2: 0x0032d488, 0x2be3: 0x4032d420,
-	0x2be4: 0x0032d688, 0x2be5: 0x4032d620, 0x2be6: 0x0032d888, 0x2be7: 0x4032d820,
-	0x2be8: 0x0032da88, 0x2be9: 0x4032da20, 0x2bea: 0x0032dc88, 0x2beb: 0x4032dc20,
-	0x2bec: 0x0032de88, 0x2bed: 0x4032de20, 0x2bee: 0x0032e088, 0x2bef: 0x4032e020,
-	0x2bf0: 0x0032e288, 0x2bf1: 0x4032e220, 0x2bf2: 0x00331888, 0x2bf3: 0x40331820,
-	0x2bf4: 0x00331a88, 0x2bf5: 0x40331a20, 0x2bf6: 0x0032b488, 0x2bf7: 0x4032b420,
-	0x2bf8: 0x0032c288, 0x2bf9: 0x4032c220, 0x2bfa: 0x0032ca88, 0x2bfb: 0x4032ca20,
-	0x2bfc: 0x0032cc88, 0x2bfd: 0x4032cc20, 0x2bfe: 0x0032e488, 0x2bff: 0x4032e420,
-	// Block 0xb0, offset 0x2c00
-	0x2c00: 0x0032e688, 0x2c01: 0x4032e620, 0x2c02: 0x0032ec88, 0x2c03: 0x4032ec20,
-	0x2c04: 0x0032ee88, 0x2c05: 0x4032ee20, 0x2c06: 0x0032f088, 0x2c07: 0x4032f020,
-	0x2c08: 0x0032f888, 0x2c09: 0x4032f820, 0x2c0a: 0x0032fc88, 0x2c0b: 0x4032fc20,
-	0x2c0c: 0x0032fe88, 0x2c0d: 0x4032fe20, 0x2c0e: 0x00330088, 0x2c0f: 0x40330020,
-	0x2c10: 0x00330288, 0x2c11: 0x40330220, 0x2c12: 0x00330488, 0x2c13: 0x40330420,
-	0x2c14: 0x00330688, 0x2c15: 0x40330620, 0x2c16: 0x00330c88, 0x2c17: 0x40330c20,
-	0x2c18: 0x00331088, 0x2c19: 0x40331020, 0x2c1a: 0x00331288, 0x2c1b: 0x40331220,
-	0x2c1c: 0x00331488, 0x2c1d: 0x40331420, 0x2c1e: 0x00331c88, 0x2c1f: 0x40331c20,
-	0x2c20: 0x00331e88, 0x2c21: 0x40331e20, 0x2c22: 0x00332088, 0x2c23: 0x40332020,
-	0x2c24: 0xe00014b0, 0x2c25: 0x40173a20, 0x2c26: 0x40173c20, 0x2c27: 0x40173e20,
-	0x2c28: 0x40174020, 0x2c29: 0x40174220, 0x2c2a: 0x40174420, 0x2c2b: 0x0032ea88,
-	0x2c2c: 0x4032ea20, 0x2c2d: 0x00330a88, 0x2c2e: 0x40330a20, 0x2c2f: 0xae605f02,
-	0x2c30: 0xae602a02, 0x2c31: 0xae602202, 0x2c32: 0x0032f688, 0x2c33: 0x4032f620,
-	0x2c39: 0x4002f820, 0x2c3a: 0x4002d420, 0x2c3b: 0x4002d620,
-	0x2c3c: 0x4003b620, 0x2c3d: 0x4028b420, 0x2c3e: 0x4002fa20, 0x2c3f: 0x4003b820,
-	// Block 0xb1, offset 0x2c40
-	0x2c40: 0x40379820, 0x2c41: 0x40379c20, 0x2c42: 0x4037a020, 0x2c43: 0x4037a420,
-	0x2c44: 0x4037a820, 0x2c45: 0x4037ac20, 0x2c46: 0x4037b020, 0x2c47: 0x4037b820,
-	0x2c48: 0x4037bc20, 0x2c49: 0x4037c020, 0x2c4a: 0x4037c420, 0x2c4b: 0x4037c820,
-	0x2c4c: 0x4037cc20, 0x2c4d: 0x4037d420, 0x2c4e: 0x4037d820, 0x2c4f: 0x4037dc20,
-	0x2c50: 0x4037e020, 0x2c51: 0x4037e420, 0x2c52: 0x4037e820, 0x2c53: 0x4037f020,
-	0x2c54: 0x4037f420, 0x2c55: 0x4037f820, 0x2c56: 0x4037fc20, 0x2c57: 0x40380020,
-	0x2c58: 0x40380420, 0x2c59: 0x40380820, 0x2c5a: 0x40380c20, 0x2c5b: 0x40381020,
-	0x2c5c: 0x40381420, 0x2c5d: 0x40381820, 0x2c5e: 0x40381c20, 0x2c5f: 0x40382420,
-	0x2c60: 0x40382820, 0x2c61: 0x4037b420, 0x2c62: 0x4037d020, 0x2c63: 0x4037ec20,
-	0x2c64: 0x40382020, 0x2c65: 0x40382c20, 0x2c67: 0x40383220,
-	0x2c6d: 0x40383c20,
-	0x2c70: 0x403bbc20, 0x2c71: 0x403bbe20, 0x2c72: 0x403bc020, 0x2c73: 0x403bc220,
-	0x2c74: 0x403bc420, 0x2c75: 0x403bc620, 0x2c76: 0x403bc820, 0x2c77: 0x403bca20,
-	0x2c78: 0x403bcc20, 0x2c79: 0x403bce20, 0x2c7a: 0x403bd020, 0x2c7b: 0x403bd220,
-	0x2c7c: 0x403bd620, 0x2c7d: 0x403bd820, 0x2c7e: 0x403bda20, 0x2c7f: 0x403bdc20,
-	// Block 0xb2, offset 0x2c80
-	0x2c80: 0x403bde20, 0x2c81: 0x403be020, 0x2c82: 0x403be220, 0x2c83: 0x403be420,
-	0x2c84: 0x403be620, 0x2c85: 0x403be820, 0x2c86: 0x403bea20, 0x2c87: 0x403bec20,
-	0x2c88: 0x403bee20, 0x2c89: 0x403bf020, 0x2c8a: 0x403bf220, 0x2c8b: 0x403bf420,
-	0x2c8c: 0x403bf620, 0x2c8d: 0x403bf820, 0x2c8e: 0x403bfa20, 0x2c8f: 0x403bfc20,
-	0x2c90: 0x403bfe20, 0x2c91: 0x403c0020, 0x2c92: 0x403c0220, 0x2c93: 0x403c0420,
-	0x2c94: 0x403c0820, 0x2c95: 0x403c0a20, 0x2c96: 0x403c0c20, 0x2c97: 0x403c0e20,
-	0x2c98: 0x403c1020, 0x2c99: 0x403c1220, 0x2c9a: 0x403c1420, 0x2c9b: 0x403c1620,
-	0x2c9c: 0x403c1820, 0x2c9d: 0x403c1a20, 0x2c9e: 0x403c1c20, 0x2c9f: 0x403c1e20,
-	0x2ca0: 0x403c2020, 0x2ca1: 0x403c2220, 0x2ca2: 0x403c2420, 0x2ca3: 0x403c2620,
-	0x2ca4: 0x403c2820, 0x2ca5: 0x403c2a20, 0x2ca6: 0x403bd420, 0x2ca7: 0x403c0620,
-	0x2caf: 0x403c2c20,
-	0x2cb0: 0x4005e620,
-	0x2cbf: 0xa0900000,
-	// Block 0xb3, offset 0x2cc0
-	0x2cc0: 0x403c4e20, 0x2cc1: 0x403c7820, 0x2cc2: 0x403c9a20, 0x2cc3: 0x403cac20,
-	0x2cc4: 0x403cca20, 0x2cc5: 0x403d1620, 0x2cc6: 0x403d3820, 0x2cc7: 0x403d4a20,
-	0x2cc8: 0x403d7620, 0x2cc9: 0x403d8820, 0x2cca: 0x403d9a20, 0x2ccb: 0x403dfc20,
-	0x2ccc: 0x403e3a20, 0x2ccd: 0x403e5820, 0x2cce: 0x403e6a20, 0x2ccf: 0x403eae20,
-	0x2cd0: 0x403ec020, 0x2cd1: 0x403ee020, 0x2cd2: 0x403f4020, 0x2cd3: 0x403e9620,
-	0x2cd4: 0x403e9820, 0x2cd5: 0x403e9a20, 0x2cd6: 0x403e9c20,
-	0x2ce0: 0x403f4820, 0x2ce1: 0x403f4a20, 0x2ce2: 0x403f4c20, 0x2ce3: 0x403f4e20,
-	0x2ce4: 0x403f5020, 0x2ce5: 0x403f5220, 0x2ce6: 0x403f5420,
-	0x2ce8: 0x403f5620, 0x2ce9: 0x403f5820, 0x2cea: 0x403f5a20, 0x2ceb: 0x403f5c20,
-	0x2cec: 0x403f5e20, 0x2ced: 0x403f6020, 0x2cee: 0x403f6220,
-	0x2cf0: 0x403f6420, 0x2cf1: 0x403f6620, 0x2cf2: 0x403f6820, 0x2cf3: 0x403f6a20,
-	0x2cf4: 0x403f6c20, 0x2cf5: 0x403f6e20, 0x2cf6: 0x403f7020,
-	0x2cf8: 0x403f7220, 0x2cf9: 0x403f7420, 0x2cfa: 0x403f7620, 0x2cfb: 0x403f7820,
-	0x2cfc: 0x403f7a20, 0x2cfd: 0x403f7c20, 0x2cfe: 0x403f7e20,
-	// Block 0xb4, offset 0x2d00
-	0x2d00: 0x403f8020, 0x2d01: 0x403f8220, 0x2d02: 0x403f8420, 0x2d03: 0x403f8620,
-	0x2d04: 0x403f8820, 0x2d05: 0x403f8a20, 0x2d06: 0x403f8c20,
-	0x2d08: 0x403f8e20, 0x2d09: 0x403f9020, 0x2d0a: 0x403f9220, 0x2d0b: 0x403f9420,
-	0x2d0c: 0x403f9620, 0x2d0d: 0x403f9820, 0x2d0e: 0x403f9a20,
-	0x2d10: 0x403f9c20, 0x2d11: 0x403f9e20, 0x2d12: 0x403fa020, 0x2d13: 0x403fa220,
-	0x2d14: 0x403fa420, 0x2d15: 0x403fa620, 0x2d16: 0x403fa820,
-	0x2d18: 0x403faa20, 0x2d19: 0x403fac20, 0x2d1a: 0x403fae20, 0x2d1b: 0x403fb020,
-	0x2d1c: 0x403fb220, 0x2d1d: 0x403fb420, 0x2d1e: 0x403fb620,
-	0x2d20: 0x84e619a9, 0x2d21: 0x84e619ad, 0x2d22: 0x84e619b1, 0x2d23: 0x84e619c5,
-	0x2d24: 0x84e619e5, 0x2d25: 0x84e619f2, 0x2d26: 0x84e61a28, 0x2d27: 0x84e61a42,
-	0x2d28: 0x84e61a54, 0x2d29: 0x84e61a5d, 0x2d2a: 0x84e61a77, 0x2d2b: 0x84e61a87,
-	0x2d2c: 0x84e61a94, 0x2d2d: 0x84e61a9d, 0x2d2e: 0x84e61aa6, 0x2d2f: 0x84e61ada,
-	0x2d30: 0x84e61b01, 0x2d31: 0x84e61b0c, 0x2d32: 0x84e61b2e, 0x2d33: 0x84e61b33,
-	0x2d34: 0x84e61b86, 0x2d35: 0xe00014d8, 0x2d36: 0x84e61991, 0x2d37: 0x84e619d9,
-	0x2d38: 0x84e61a27, 0x2d39: 0x84e61ad1, 0x2d3a: 0x84e61b4f, 0x2d3b: 0x84e61b5c,
-	0x2d3c: 0x84e61b61, 0x2d3d: 0x84e61b6b, 0x2d3e: 0x84e61b70, 0x2d3f: 0x84e61b7a,
-	// Block 0xb5, offset 0x2d40
-	0x2d40: 0x40052620, 0x2d41: 0x40052820, 0x2d42: 0x40047420, 0x2d43: 0x40047620,
-	0x2d44: 0x40047820, 0x2d45: 0x40047a20, 0x2d46: 0x40052a20, 0x2d47: 0x40052c20,
-	0x2d48: 0x40052e20, 0x2d49: 0x40047c20, 0x2d4a: 0x40047e20, 0x2d4b: 0x40053020,
-	0x2d4c: 0x40048020, 0x2d4d: 0x40048220, 0x2d4e: 0x40053220, 0x2d4f: 0x40053420,
-	0x2d50: 0x40053620, 0x2d51: 0x40053820, 0x2d52: 0x40053a20, 0x2d53: 0x40053c20,
-	0x2d54: 0x40053e20, 0x2d55: 0x40054020, 0x2d56: 0x40054220, 0x2d57: 0x40023620,
-	0x2d58: 0x4002e220, 0x2d59: 0x4003ba20, 0x2d5a: 0x40054420, 0x2d5b: 0x40054620,
-	0x2d5c: 0x40048420, 0x2d5d: 0x40048620, 0x2d5e: 0x40054820, 0x2d5f: 0x40054a20,
-	0x2d60: 0x40048820, 0x2d61: 0x40048a20, 0x2d62: 0x40048c20, 0x2d63: 0x40048e20,
-	0x2d64: 0x40049020, 0x2d65: 0x40049220, 0x2d66: 0x40049420, 0x2d67: 0x40049620,
-	0x2d68: 0x40049820, 0x2d69: 0x40049a20, 0x2d6a: 0x4003ae20, 0x2d6b: 0x4003b020,
-	0x2d6c: 0x4003b220, 0x2d6d: 0x4003b420, 0x2d6e: 0x4002c820, 0x2d6f: 0x40367020,
-	0x2d70: 0x4002fc20, 0x2d71: 0x40030820, 0x2d72: 0x40024420, 0x2d73: 0x40030a20,
-	0x2d74: 0x40024220, 0x2d75: 0x40026820, 0x2d76: 0x4004fc20, 0x2d77: 0x4004fe20,
-	0x2d78: 0x40050020, 0x2d79: 0x4004d020, 0x2d7a: 0x40023020, 0x2d7b: 0x40023220,
-	// Block 0xb6, offset 0x2d80
-	0x2d80: 0xe0002401, 0x2d81: 0xe0002416, 0x2d82: 0x029cb684, 0x2d83: 0x029cb484,
-	0x2d84: 0xe0002404, 0x2d85: 0x029d7684, 0x2d86: 0xe0002407, 0x2d87: 0xe000240a,
-	0x2d88: 0xe000240d, 0x2d89: 0x02a40484, 0x2d8a: 0xe0002410, 0x2d8b: 0xe0002413,
-	0x2d8c: 0xe0002419, 0x2d8d: 0xe000241c, 0x2d8e: 0xe000241f, 0x2d8f: 0x02b84684,
-	0x2d90: 0x02b84484, 0x2d91: 0xe0002422, 0x2d92: 0x02bbe684, 0x2d93: 0x02bcf484,
-	0x2d94: 0x02bea284, 0x2d95: 0xe0002425, 0x2d96: 0x02bf8884, 0x2d97: 0xe0002428,
-	0x2d98: 0x02c49884, 0x2d99: 0x02ca6a84, 0x2d9b: 0x02cbc284,
-	0x2d9c: 0xe000242b, 0x2d9d: 0xe000242e, 0x2d9e: 0xe0002436, 0x2d9f: 0x02d79a84,
-	0x2da0: 0x02d82284, 0x2da1: 0x02d86a84, 0x2da2: 0x02d87484, 0x2da3: 0x02e0d884,
-	0x2da4: 0x02e45684, 0x2da5: 0xe0002439, 0x2da6: 0x029c5884, 0x2da7: 0xe000243c,
-	0x2da8: 0x02e55a84, 0x2da9: 0xe000243f, 0x2daa: 0xe0002442, 0x2dab: 0xe0002445,
-	0x2dac: 0xe0002448, 0x2dad: 0x02f27684, 0x2dae: 0xe000244b, 0x2daf: 0x02f9f284,
-	0x2db0: 0x02fd3e84, 0x2db1: 0x02fea684, 0x2db2: 0x02fea484, 0x2db3: 0xe0002451,
-	0x2db4: 0xe0002454, 0x2db5: 0xe000244e, 0x2db6: 0xe0002457, 0x2db7: 0xe000245a,
-	0x2db8: 0x02ff1684, 0x2db9: 0x03000484, 0x2dba: 0x03010084, 0x2dbb: 0xe000245d,
-	0x2dbc: 0xe0002460, 0x2dbd: 0xe0002463, 0x2dbe: 0x0304f284, 0x2dbf: 0xe0002466,
-	// Block 0xb7, offset 0x2dc0
-	0x2dc0: 0xe0002469, 0x2dc1: 0x030c9c84, 0x2dc2: 0x0310c884, 0x2dc3: 0x03130084,
-	0x2dc4: 0x0312fe84, 0x2dc5: 0x03138284, 0x2dc6: 0x0313a484, 0x2dc7: 0xe000246c,
-	0x2dc8: 0x03174084, 0x2dc9: 0x031a3a84, 0x2dca: 0xe000246f, 0x2dcb: 0x031ecc84,
-	0x2dcc: 0x031f6c84, 0x2dcd: 0xe0002472, 0x2dce: 0xe0002475, 0x2dcf: 0xe0002478,
-	0x2dd0: 0x03290a84, 0x2dd1: 0x032aee84, 0x2dd2: 0x032af084, 0x2dd3: 0x032afe84,
-	0x2dd4: 0x032bd084, 0x2dd5: 0xe000247b, 0x2dd6: 0x032c3a84, 0x2dd7: 0xe000247e,
-	0x2dd8: 0x032ea484, 0x2dd9: 0x032fcc84, 0x2dda: 0x0330ea84, 0x2ddb: 0x03319c84,
-	0x2ddc: 0x0331bc84, 0x2ddd: 0x0331be84, 0x2dde: 0xe0002481, 0x2ddf: 0x0331c084,
-	0x2de0: 0x0332c684, 0x2de1: 0xe0002484, 0x2de2: 0x0334d884, 0x2de3: 0xe0002487,
-	0x2de4: 0xe000248a, 0x2de5: 0x0338f884, 0x2de6: 0x033c3e84, 0x2de7: 0xe000248d,
-	0x2de8: 0x033d4c84, 0x2de9: 0x033d8884, 0x2dea: 0x033dfc84, 0x2deb: 0xe0002490,
-	0x2dec: 0x033ea084, 0x2ded: 0xe0002493, 0x2dee: 0x033efe84, 0x2def: 0xe0002496,
-	0x2df0: 0x033f3284, 0x2df1: 0xe0002499, 0x2df2: 0xe000249c, 0x2df3: 0x033f3e84,
-	// Block 0xb8, offset 0x2e00
-	0x2e00: 0x029c0084, 0x2e01: 0x029c5084, 0x2e02: 0x029c6c84, 0x2e03: 0x029c7e84,
-	0x2e04: 0x029cb284, 0x2e05: 0x029d0a84, 0x2e06: 0x029d1884, 0x2e07: 0x029d4084,
-	0x2e08: 0x029d7484, 0x2e09: 0x02a27e84, 0x2e0a: 0x02a2ca84, 0x2e0b: 0x02a2d684,
-	0x2e0c: 0x02a30484, 0x2e0d: 0x02a32c84, 0x2e0e: 0x02a35684, 0x2e0f: 0x02a3c084,
-	0x2e10: 0x02a3ea84, 0x2e11: 0x02a40084, 0x2e12: 0x02a53684, 0x2e13: 0x02a5f284,
-	0x2e14: 0x02a62a84, 0x2e15: 0x02a63484, 0x2e16: 0x02a67084, 0x2e17: 0x02a68284,
-	0x2e18: 0x02a6b884, 0x2e19: 0x02a6d284, 0x2e1a: 0x02a70484, 0x2e1b: 0x02a76c84,
-	0x2e1c: 0x02a79084, 0x2e1d: 0x02a7c684, 0x2e1e: 0x02adae84, 0x2e1f: 0x02ae3e84,
-	0x2e20: 0x02b1d684, 0x2e21: 0x02b20484, 0x2e22: 0x02b21484, 0x2e23: 0x02b22a84,
-	0x2e24: 0x02b24e84, 0x2e25: 0x02b2e684, 0x2e26: 0x02b6a084, 0x2e27: 0x02b70084,
-	0x2e28: 0x02b7f084, 0x2e29: 0x02b81e84, 0x2e2a: 0x02b84484, 0x2e2b: 0x02b87084,
-	0x2e2c: 0x02b8dc84, 0x2e2d: 0x02b8e284, 0x2e2e: 0x02bbb684, 0x2e2f: 0x02bbca84,
-	0x2e30: 0x02bbe284, 0x2e31: 0x02bbfc84, 0x2e32: 0x02bce484, 0x2e33: 0x02bcf484,
-	0x2e34: 0x02bcfe84, 0x2e35: 0x02bde884, 0x2e36: 0x02bdfc84, 0x2e37: 0x02be1684,
-	0x2e38: 0x02be2684, 0x2e39: 0x02bea084, 0x2e3a: 0x02bec284, 0x2e3b: 0x02bee684,
-	0x2e3c: 0x02bf8684, 0x2e3d: 0x02c41084, 0x2e3e: 0x02c46c84, 0x2e3f: 0x02c49684,
-	// Block 0xb9, offset 0x2e40
-	0x2e40: 0x02ca5e84, 0x2e41: 0x02ca6884, 0x2e42: 0x02cb0e84, 0x2e43: 0x02cb2e84,
-	0x2e44: 0x02cb4884, 0x2e45: 0x02cb7284, 0x2e46: 0x02cbc084, 0x2e47: 0x02cbca84,
-	0x2e48: 0x02cde084, 0x2e49: 0x02ce1084, 0x2e4a: 0x02ce5084, 0x2e4b: 0x02d64084,
-	0x2e4c: 0x02d6c484, 0x2e4d: 0x02d6f284, 0x2e4e: 0x02d76684, 0x2e4f: 0x02d79684,
-	0x2e50: 0x02d7a884, 0x2e51: 0x02d7b684, 0x2e52: 0x02d81e84, 0x2e53: 0x02d82884,
-	0x2e54: 0x02d86884, 0x2e55: 0x02e0d684, 0x2e56: 0x02e45484, 0x2e57: 0x02e46c84,
-	0x2e58: 0x02e47684, 0x2e59: 0x02e47e84, 0x2e5a: 0x02e48e84, 0x2e5b: 0x02e4b284,
-	0x2e5c: 0x02e4b684, 0x2e5d: 0x02e55884, 0x2e5e: 0x02e70884, 0x2e5f: 0x02e71284,
-	0x2e60: 0x02e9b884, 0x2e61: 0x02e9cc84, 0x2e62: 0x02ea3084, 0x2e63: 0x02ea3e84,
-	0x2e64: 0x02ea5084, 0x2e65: 0x02ea6084, 0x2e66: 0x02eb1684, 0x2e67: 0x02eb2484,
-	0x2e68: 0x02ecec84, 0x2e69: 0x02ecfa84, 0x2e6a: 0x02ed5c84, 0x2e6b: 0x02ed7e84,
-	0x2e6c: 0x02eddc84, 0x2e6d: 0x02efb684, 0x2e6e: 0x02efc484, 0x2e6f: 0x02efe684,
-	0x2e70: 0x02f27484, 0x2e71: 0x02f37084, 0x2e72: 0x02f37c84, 0x2e73: 0x02f4e884,
-	0x2e74: 0x02f59684, 0x2e75: 0x02f5f284, 0x2e76: 0x02f8e684, 0x2e77: 0x02f9f084,
-	0x2e78: 0x02fe6c84, 0x2e79: 0x02fea284, 0x2e7a: 0x02ff1484, 0x2e7b: 0x02ff7a84,
-	0x2e7c: 0x03000284, 0x2e7d: 0x03001884, 0x2e7e: 0x03002484, 0x2e7f: 0x03006684,
-	// Block 0xba, offset 0x2e80
-	0x2e80: 0x0300fe84, 0x2e81: 0x03011284, 0x2e82: 0x0303c684, 0x2e83: 0x0303d484,
-	0x2e84: 0x0303e684, 0x2e85: 0x0303f884, 0x2e86: 0x03041884, 0x2e87: 0x03043684,
-	0x2e88: 0x03043e84, 0x2e89: 0x0304dc84, 0x2e8a: 0x0304e484, 0x2e8b: 0x0304f084,
-	0x2e8c: 0x030c9a84, 0x2e8d: 0x030cd684, 0x2e8e: 0x03108084, 0x2e8f: 0x03109884,
-	0x2e90: 0x0310c684, 0x2e91: 0x0312fc84, 0x2e92: 0x03131684, 0x2e93: 0x0313a484,
-	0x2e94: 0x03140084, 0x2e95: 0x03186e84, 0x2e96: 0x03188c84, 0x2e97: 0x0318aa84,
-	0x2e98: 0x0318f084, 0x2e99: 0x03193a84, 0x2e9a: 0x031ac884, 0x2e9b: 0x031ae084,
-	0x2e9c: 0x031b6684, 0x2e9d: 0x031d5684, 0x2e9e: 0x031d9484, 0x2e9f: 0x031f3684,
-	0x2ea0: 0x031f6084, 0x2ea1: 0x031f6a84, 0x2ea2: 0x03212284, 0x2ea3: 0x03229284,
-	0x2ea4: 0x03238c84, 0x2ea5: 0x03239884, 0x2ea6: 0x0323a284, 0x2ea7: 0x032aee84,
-	0x2ea8: 0x032b0084, 0x2ea9: 0x032c3884, 0x2eaa: 0x032d6c84, 0x2eab: 0x032d7284,
-	0x2eac: 0x032dd084, 0x2ead: 0x032ea284, 0x2eae: 0x032ebc84, 0x2eaf: 0x032ec484,
-	0x2eb0: 0x032ed284, 0x2eb1: 0x032f9684, 0x2eb2: 0x032fda84, 0x2eb3: 0x032fe684,
-	0x2eb4: 0x03300284, 0x2eb5: 0x03315084, 0x2eb6: 0x0331b684, 0x2eb7: 0x0331be84,
-	0x2eb8: 0x03332c84, 0x2eb9: 0x03333284, 0x2eba: 0x03335884, 0x2ebb: 0x03355084,
-	0x2ebc: 0x0335b084, 0x2ebd: 0x0335be84, 0x2ebe: 0x03364a84, 0x2ebf: 0x03365e84,
-	// Block 0xbb, offset 0x2ec0
-	0x2ec0: 0x03366484, 0x2ec1: 0x03367884, 0x2ec2: 0x0336b484, 0x2ec3: 0x0339ca84,
-	0x2ec4: 0x033cea84, 0x2ec5: 0x033cfe84, 0x2ec6: 0x033d4a84, 0x2ec7: 0x033d7684,
-	0x2ec8: 0x033d8684, 0x2ec9: 0x033d9a84, 0x2eca: 0x033da284, 0x2ecb: 0x033df284,
-	0x2ecc: 0x033dfa84, 0x2ecd: 0x033e1c84, 0x2ece: 0x033e2684, 0x2ecf: 0x033e4084,
-	0x2ed0: 0x033e7684, 0x2ed1: 0x033e9484, 0x2ed2: 0x033ea484, 0x2ed3: 0x033f1a84,
-	0x2ed4: 0x033f3884, 0x2ed5: 0x033f4084,
-	0x2ef0: 0x40273a20, 0x2ef1: 0x40273c20, 0x2ef2: 0x40273e20, 0x2ef3: 0x40274020,
-	0x2ef4: 0x40274220, 0x2ef5: 0x40274420, 0x2ef6: 0x40274620, 0x2ef7: 0x40274820,
-	0x2ef8: 0x40274a20, 0x2ef9: 0x40274c20, 0x2efa: 0x40274e20, 0x2efb: 0x40275020,
-	// Block 0xbc, offset 0x2f00
-	0x2f00: 0x00021283, 0x2f01: 0x40025c20, 0x2f02: 0x40030420, 0x2f03: 0x40051220,
-	0x2f04: 0x40279a20, 0x2f05: 0x4027ca20, 0x2f06: 0xe0002206, 0x2f07: 0xe00001d3,
-	0x2f08: 0x40049c20, 0x2f09: 0x40049e20, 0x2f0a: 0x4004a020, 0x2f0b: 0x4004a220,
-	0x2f0c: 0x4004a420, 0x2f0d: 0x4004a620, 0x2f0e: 0x4004a820, 0x2f0f: 0x4004aa20,
-	0x2f10: 0x4004ac20, 0x2f11: 0x4004ae20, 0x2f12: 0x40279c20, 0x2f13: 0x40279e20,
-	0x2f14: 0x4004b020, 0x2f15: 0x4004b220, 0x2f16: 0x4004b420, 0x2f17: 0x4004b620,
-	0x2f18: 0x4004b820, 0x2f19: 0x4004ba20, 0x2f1a: 0x4004bc20, 0x2f1b: 0x4004be20,
-	0x2f1c: 0x40023820, 0x2f1d: 0x4003ea20, 0x2f1e: 0x4003ec20, 0x2f1f: 0x4003ee20,
-	0x2f20: 0x4027a020, 0x2f21: 0xe0000267, 0x2f22: 0xe000037f, 0x2f23: 0xe0000459,
-	0x2f24: 0xe000052e, 0x2f25: 0xe00005f8, 0x2f26: 0xe00006c3, 0x2f27: 0xe000076b,
-	0x2f28: 0xe0000817, 0x2f29: 0xe00008bc, 0x2f2a: 0xada12202, 0x2f2b: 0xae412302,
-	0x2f2c: 0xae812402, 0x2f2d: 0xade12502, 0x2f2e: 0xae012602, 0x2f2f: 0xae012702,
-	0x2f30: 0x40023a20, 0x2f31: 0x4027ce20, 0x2f32: 0xe0000152, 0x2f33: 0x4027d020,
-	0x2f34: 0xe0000155, 0x2f35: 0x4027d220, 0x2f36: 0x00279c84, 0x2f37: 0x4027a220,
-	0x2f38: 0x02a68284, 0x2f39: 0x02a68884, 0x2f3a: 0x02a68a84, 0x2f3b: 0x4027cc20,
-	0x2f3c: 0xe000231a, 0x2f3d: 0x40051420, 0x2f3e: 0x4027a420, 0x2f3f: 0x4027a620,
-	// Block 0xbd, offset 0x2f40
-	0x2f41: 0x0065768d, 0x2f42: 0x0065768e, 0x2f43: 0x0065788d,
-	0x2f44: 0x0065788e, 0x2f45: 0x00657a8d, 0x2f46: 0x00657a8e, 0x2f47: 0x00657e8d,
-	0x2f48: 0x00657e8e, 0x2f49: 0x0065808d, 0x2f4a: 0x0065808e, 0x2f4b: 0x0065828e,
-	0x2f4c: 0xe000216a, 0x2f4d: 0x0065848e, 0x2f4e: 0xe0002188, 0x2f4f: 0x0065868e,
-	0x2f50: 0xe00021b8, 0x2f51: 0x0065888e, 0x2f52: 0xe00021d6, 0x2f53: 0x00658a8e,
-	0x2f54: 0xe00021e0, 0x2f55: 0x00658c8e, 0x2f56: 0xe00021ef, 0x2f57: 0x00658e8e,
-	0x2f58: 0xe0002200, 0x2f59: 0x0065908e, 0x2f5a: 0xe000220f, 0x2f5b: 0x0065928e,
-	0x2f5c: 0xe0002215, 0x2f5d: 0x0065948e, 0x2f5e: 0xe0002223, 0x2f5f: 0x0065968e,
-	0x2f60: 0xe0002229, 0x2f61: 0x0065988e, 0x2f62: 0xe0002234, 0x2f63: 0x00659a8d,
-	0x2f64: 0x00659a8e, 0x2f65: 0xe000223a, 0x2f66: 0x00659c8e, 0x2f67: 0xe0002240,
-	0x2f68: 0x00659e8e, 0x2f69: 0xe000224a, 0x2f6a: 0x0065a08e, 0x2f6b: 0x0065a28e,
-	0x2f6c: 0x0065a48e, 0x2f6d: 0x0065a68e, 0x2f6e: 0x0065a88e, 0x2f6f: 0x0065aa8e,
-	0x2f70: 0xe0002258, 0x2f71: 0xe000225e, 0x2f72: 0x0065ac8e, 0x2f73: 0xe000227a,
-	0x2f74: 0xe0002280, 0x2f75: 0x0065ae8e, 0x2f76: 0xe000229a, 0x2f77: 0xe00022a0,
-	0x2f78: 0x0065b08e, 0x2f79: 0xe00022bd, 0x2f7a: 0xe00022c3, 0x2f7b: 0x0065b28e,
-	0x2f7c: 0xe00022ec, 0x2f7d: 0xe00022f2, 0x2f7e: 0x0065b48e, 0x2f7f: 0x0065b68e,
-	// Block 0xbe, offset 0x2f80
-	0x2f80: 0x0065b88e, 0x2f81: 0x0065ba8e, 0x2f82: 0x0065bc8e, 0x2f83: 0x0065be8d,
-	0x2f84: 0x0065be8e, 0x2f85: 0x0065c08d, 0x2f86: 0x0065c08e, 0x2f87: 0x0065c48d,
-	0x2f88: 0x0065c48e, 0x2f89: 0x0065c68e, 0x2f8a: 0x0065c88e, 0x2f8b: 0x0065ca8e,
-	0x2f8c: 0x0065cc8e, 0x2f8d: 0x0065ce8e, 0x2f8e: 0x0065d08d, 0x2f8f: 0x0065d08e,
-	0x2f90: 0x0065d28e, 0x2f91: 0x0065d48e, 0x2f92: 0x0065d68e, 0x2f93: 0x0065d88e,
-	0x2f94: 0xe000214c, 0x2f95: 0x0065828d, 0x2f96: 0x0065888d,
-	0x2f99: 0xa0812802, 0x2f9a: 0xa0812902, 0x2f9b: 0x40063c20,
-	0x2f9c: 0x40063e20, 0x2f9d: 0x4027d420, 0x2f9e: 0xe0000158, 0x2f9f: 0xf0001616,
-	0x2fa0: 0x40023c20, 0x2fa1: 0x0065768f, 0x2fa2: 0x00657691, 0x2fa3: 0x0065788f,
-	0x2fa4: 0x00657891, 0x2fa5: 0x00657a8f, 0x2fa6: 0x00657a91, 0x2fa7: 0x00657e8f,
-	0x2fa8: 0x00657e91, 0x2fa9: 0x0065808f, 0x2faa: 0x00658091, 0x2fab: 0x00658291,
-	0x2fac: 0xe000216d, 0x2fad: 0x00658491, 0x2fae: 0xe000218b, 0x2faf: 0x00658691,
-	0x2fb0: 0xe00021bb, 0x2fb1: 0x00658891, 0x2fb2: 0xe00021d9, 0x2fb3: 0x00658a91,
-	0x2fb4: 0xe00021e3, 0x2fb5: 0x00658c91, 0x2fb6: 0xe00021f2, 0x2fb7: 0x00658e91,
-	0x2fb8: 0xe0002203, 0x2fb9: 0x00659091, 0x2fba: 0xe0002212, 0x2fbb: 0x00659291,
-	0x2fbc: 0xe0002218, 0x2fbd: 0x00659491, 0x2fbe: 0xe0002226, 0x2fbf: 0x00659691,
-	// Block 0xbf, offset 0x2fc0
-	0x2fc0: 0xe000222c, 0x2fc1: 0x00659891, 0x2fc2: 0xe0002237, 0x2fc3: 0x00659a8f,
-	0x2fc4: 0x00659a91, 0x2fc5: 0xe000223d, 0x2fc6: 0x00659c91, 0x2fc7: 0xe0002243,
-	0x2fc8: 0x00659e91, 0x2fc9: 0xe000224d, 0x2fca: 0x0065a091, 0x2fcb: 0x0065a291,
-	0x2fcc: 0x0065a491, 0x2fcd: 0x0065a691, 0x2fce: 0x0065a891, 0x2fcf: 0x0065aa91,
-	0x2fd0: 0xe000225b, 0x2fd1: 0xe0002261, 0x2fd2: 0x0065ac91, 0x2fd3: 0xe000227d,
-	0x2fd4: 0xe0002283, 0x2fd5: 0x0065ae91, 0x2fd6: 0xe000229d, 0x2fd7: 0xe00022a3,
-	0x2fd8: 0x0065b091, 0x2fd9: 0xe00022c0, 0x2fda: 0xe00022c6, 0x2fdb: 0x0065b291,
-	0x2fdc: 0xe00022ef, 0x2fdd: 0xe00022f5, 0x2fde: 0x0065b491, 0x2fdf: 0x0065b691,
-	0x2fe0: 0x0065b891, 0x2fe1: 0x0065ba91, 0x2fe2: 0x0065bc91, 0x2fe3: 0x0065be8f,
-	0x2fe4: 0x0065be91, 0x2fe5: 0x0065c08f, 0x2fe6: 0x0065c091, 0x2fe7: 0x0065c48f,
-	0x2fe8: 0x0065c491, 0x2fe9: 0x0065c691, 0x2fea: 0x0065c891, 0x2feb: 0x0065ca91,
-	0x2fec: 0x0065cc91, 0x2fed: 0x0065ce91, 0x2fee: 0x0065d08f, 0x2fef: 0x0065d091,
-	0x2ff0: 0x0065d291, 0x2ff1: 0x0065d491, 0x2ff2: 0x0065d691, 0x2ff3: 0x0065d891,
-	0x2ff4: 0xe000214f, 0x2ff5: 0x0065828f, 0x2ff6: 0x0065888f, 0x2ff7: 0xe000236a,
-	0x2ff8: 0xe0002371, 0x2ff9: 0xe0002374, 0x2ffa: 0xe0002377, 0x2ffb: 0x40023e20,
-	0x2ffc: 0x4027d620, 0x2ffd: 0x4027d820, 0x2ffe: 0xe000015b, 0x2fff: 0xf0001616,
-	// Block 0xc0, offset 0x3000
-	0x3005: 0x4065da20, 0x3006: 0x4065dc20, 0x3007: 0x4065de20,
-	0x3008: 0x4065e020, 0x3009: 0x4065e420, 0x300a: 0x4065e620, 0x300b: 0x4065e820,
-	0x300c: 0x4065ea20, 0x300d: 0x4065ec20, 0x300e: 0x4065ee20, 0x300f: 0x4065f420,
-	0x3010: 0x4065f620, 0x3011: 0x4065f820, 0x3012: 0x4065fa20, 0x3013: 0x4065fe20,
-	0x3014: 0x40660020, 0x3015: 0x40660220, 0x3016: 0x40660420, 0x3017: 0x40660620,
-	0x3018: 0x40660820, 0x3019: 0x40660a20, 0x301a: 0x40661220, 0x301b: 0x40661420,
-	0x301c: 0x40661820, 0x301d: 0x40661a20, 0x301e: 0x40661e20, 0x301f: 0x40662020,
-	0x3020: 0x40662220, 0x3021: 0x40662420, 0x3022: 0x40662620, 0x3023: 0x40662820,
-	0x3024: 0x40662a20, 0x3025: 0x40662e20, 0x3026: 0x40663620, 0x3027: 0x40663820,
-	0x3028: 0x40663a20, 0x3029: 0x40663c20, 0x302a: 0x4065e220, 0x302b: 0x4065f020,
-	0x302c: 0x4065fc20, 0x302d: 0x40663e20,
-	0x3031: 0x0062ac84, 0x3032: 0x0062ae84, 0x3033: 0x00646884,
-	0x3034: 0x0062b084, 0x3035: 0x00646c84, 0x3036: 0x00646e84, 0x3037: 0x0062b284,
-	0x3038: 0x0062b484, 0x3039: 0x0062b684, 0x303a: 0x00647484, 0x303b: 0x00647684,
-	0x303c: 0x00647884, 0x303d: 0x00647a84, 0x303e: 0x00647c84, 0x303f: 0x00647e84,
-	// Block 0xc1, offset 0x3040
-	0x3040: 0x0062e084, 0x3041: 0x0062b884, 0x3042: 0x0062ba84, 0x3043: 0x0062bc84,
-	0x3044: 0x0062ee84, 0x3045: 0x0062be84, 0x3046: 0x0062c084, 0x3047: 0x0062c284,
-	0x3048: 0x0062c484, 0x3049: 0x0062c684, 0x304a: 0x0062c884, 0x304b: 0x0062ca84,
-	0x304c: 0x0062cc84, 0x304d: 0x0062ce84, 0x304e: 0x0062d084, 0x304f: 0x0063a884,
-	0x3050: 0x0063aa84, 0x3051: 0x0063ac84, 0x3052: 0x0063ae84, 0x3053: 0x0063b084,
-	0x3054: 0x0063b284, 0x3055: 0x0063b484, 0x3056: 0x0063b684, 0x3057: 0x0063b884,
-	0x3058: 0x0063ba84, 0x3059: 0x0063bc84, 0x305a: 0x0063be84, 0x305b: 0x0063c084,
-	0x305c: 0x0063c284, 0x305d: 0x0063c484, 0x305e: 0x0063c684, 0x305f: 0x0063c884,
-	0x3060: 0x0063ca84, 0x3061: 0x0063cc84, 0x3062: 0x0063ce84, 0x3063: 0x0063d084,
-	0x3064: 0x0063a684, 0x3065: 0x0062d484, 0x3066: 0x0062d684, 0x3067: 0x0064a284,
-	0x3068: 0x0064a484, 0x3069: 0x0064ac84, 0x306a: 0x0064b084, 0x306b: 0x0064ba84,
-	0x306c: 0x0064c284, 0x306d: 0x0064c684, 0x306e: 0x0062e484, 0x306f: 0x0064ce84,
-	0x3070: 0x0064d284, 0x3071: 0x0062e684, 0x3072: 0x0062e884, 0x3073: 0x0062ec84,
-	0x3074: 0x0062f084, 0x3075: 0x0062f284, 0x3076: 0x0062fa84, 0x3077: 0x0062fe84,
-	0x3078: 0x00630284, 0x3079: 0x00630484, 0x307a: 0x00630684, 0x307b: 0x00630884,
-	0x307c: 0x00630a84, 0x307d: 0x00631084, 0x307e: 0x00631884, 0x307f: 0x00632c84,
-	// Block 0xc2, offset 0x3080
-	0x3080: 0x00633a84, 0x3081: 0x00634484, 0x3082: 0x0064f684, 0x3083: 0x0064f884,
-	0x3084: 0x00635a84, 0x3085: 0x00635c84, 0x3086: 0x00635e84, 0x3087: 0x0063ee84,
-	0x3088: 0x0063f084, 0x3089: 0x0063f684, 0x308a: 0x00640884, 0x308b: 0x00640a84,
-	0x308c: 0x00640e84, 0x308d: 0x00642284, 0x308e: 0x00642884,
-	0x3090: 0x4027a820, 0x3091: 0x4027aa20, 0x3092: 0x029c0094, 0x3093: 0x029d1894,
-	0x3094: 0x029c1294, 0x3095: 0x02adb694, 0x3096: 0x029c1494, 0x3097: 0x029c5a94,
-	0x3098: 0x029c1694, 0x3099: 0x02ea6494, 0x309a: 0x029cb294, 0x309b: 0x029c3294,
-	0x309c: 0x029c0294, 0x309d: 0x02b25294, 0x309e: 0x02ae6094, 0x309f: 0x029d7494,
-	0x30a0: 0xe000237a, 0x30a1: 0xe0002383, 0x30a2: 0xe0002380, 0x30a3: 0xe000237d,
-	0x30a4: 0x40661c20, 0x30a5: 0xe000238c, 0x30a6: 0x40661620, 0x30a7: 0xe0002389,
-	0x30a8: 0xe000239e, 0x30a9: 0xe0002386, 0x30aa: 0xe0002395, 0x30ab: 0xe000239b,
-	0x30ac: 0x40663420, 0x30ad: 0x4065f220, 0x30ae: 0xe000238f, 0x30af: 0xe0002392,
-	0x30b0: 0x40663020, 0x30b1: 0x40663220, 0x30b2: 0x40662c20, 0x30b3: 0xe0002398,
-	0x30b4: 0x0065dc99, 0x30b5: 0x0065e699, 0x30b6: 0x0065ee99, 0x30b7: 0x0065f499,
-	0x30b8: 0x40660c20, 0x30b9: 0x40660e20, 0x30ba: 0x40661020,
-	// Block 0xc3, offset 0x30c0
-	0x30c0: 0x40275220, 0x30c1: 0x40275420, 0x30c2: 0x40275620, 0x30c3: 0x40275820,
-	0x30c4: 0x40275a20, 0x30c5: 0x40275c20, 0x30c6: 0x40275e20, 0x30c7: 0x40276020,
-	0x30c8: 0x40276220, 0x30c9: 0x40276420, 0x30ca: 0x40276620, 0x30cb: 0x40276820,
-	0x30cc: 0x40276a20, 0x30cd: 0x40276c20, 0x30ce: 0x40276e20, 0x30cf: 0x40277020,
-	0x30d0: 0x40277220, 0x30d1: 0x40277420, 0x30d2: 0x40277620, 0x30d3: 0x40277820,
-	0x30d4: 0x40277a20, 0x30d5: 0x40277c20, 0x30d6: 0x40277e20, 0x30d7: 0x40278020,
-	0x30d8: 0x40278220, 0x30d9: 0x40278420, 0x30da: 0x40278620, 0x30db: 0x40278820,
-	0x30dc: 0x40278a20, 0x30dd: 0x40278c20, 0x30de: 0x40278e20, 0x30df: 0x40279020,
-	0x30e0: 0x40279220, 0x30e1: 0x40279420, 0x30e2: 0x40279620, 0x30e3: 0x40279820,
-	0x30f0: 0x0065868f, 0x30f1: 0x00658e8f, 0x30f2: 0x0065908f, 0x30f3: 0x00659e8f,
-	0x30f4: 0x0065a48f, 0x30f5: 0x0065aa8f, 0x30f6: 0x0065ac8f, 0x30f7: 0x0065ae8f,
-	0x30f8: 0x0065b08f, 0x30f9: 0x0065b28f, 0x30fa: 0x0065b88f, 0x30fb: 0x0065c68f,
-	0x30fc: 0x0065c88f, 0x30fd: 0x0065ca8f, 0x30fe: 0x0065cc8f, 0x30ff: 0x0065ce8f,
-	// Block 0xc4, offset 0x3100
-	0x3100: 0xf0000404, 0x3101: 0xf0000404, 0x3102: 0xf0000404, 0x3103: 0xf0000404,
-	0x3104: 0xf0000404, 0x3105: 0xf0000404, 0x3106: 0xf0000404, 0x3107: 0xf0000404,
-	0x3108: 0xf0000404, 0x3109: 0xf0000404, 0x310a: 0xf0000404, 0x310b: 0xf0000404,
-	0x310c: 0xf0000404, 0x310d: 0xf0000404, 0x310e: 0xe000004c, 0x310f: 0xe0000051,
-	0x3110: 0xe0000056, 0x3111: 0xe000005b, 0x3112: 0xe0000060, 0x3113: 0xe0000065,
-	0x3114: 0xe000006a, 0x3115: 0xe000006f, 0x3116: 0xe0000083, 0x3117: 0xe000008d,
-	0x3118: 0xe0000092, 0x3119: 0xe0000097, 0x311a: 0xe000009c, 0x311b: 0xe00000a1,
-	0x311c: 0xe0000088, 0x311d: 0xe0000074, 0x311e: 0xe000007c,
-	0x3120: 0xf0000404, 0x3121: 0xf0000404, 0x3122: 0xf0000404, 0x3123: 0xf0000404,
-	0x3124: 0xf0000404, 0x3125: 0xf0000404, 0x3126: 0xf0000404, 0x3127: 0xf0000404,
-	0x3128: 0xf0000404, 0x3129: 0xf0000404, 0x312a: 0xf0000404, 0x312b: 0xf0000404,
-	0x312c: 0xf0000404, 0x312d: 0xf0000404, 0x312e: 0xf0000404, 0x312f: 0xf0000404,
-	0x3130: 0xf0000404, 0x3131: 0xf0000404, 0x3132: 0xf0000404, 0x3133: 0xf0000404,
-	0x3134: 0xf0000404, 0x3135: 0xf0000404, 0x3136: 0xf0000404, 0x3137: 0xf0000404,
-	0x3138: 0xf0000404, 0x3139: 0xf0000404, 0x313a: 0xf0000404, 0x313b: 0xf0000404,
-	0x313c: 0xf0000404, 0x313d: 0xf0000404, 0x313e: 0xf0000404, 0x313f: 0xf0000404,
-	// Block 0xc5, offset 0x3140
-	0x3140: 0xf0000404, 0x3141: 0xf0000404, 0x3142: 0xf0000404, 0x3143: 0xf0000404,
-	0x3144: 0x02aa9e86, 0x3145: 0x02bcf886, 0x3146: 0x02cb0e86, 0x3147: 0x02f71e86,
-	0x3148: 0xe00002e3, 0x3149: 0xe00003d8, 0x314a: 0xe00004b3, 0x314b: 0xe000057d,
-	0x314c: 0xe0000648, 0x314d: 0xe00006f0, 0x314e: 0xe000079c, 0x314f: 0xe0000841,
-	0x3150: 0xe0000ec0, 0x3151: 0xf0000606, 0x3152: 0xf0000606, 0x3153: 0xf0000606,
-	0x3154: 0xf0000606, 0x3155: 0xf0000606, 0x3156: 0xf0000606, 0x3157: 0xf0000606,
-	0x3158: 0xf0000606, 0x3159: 0xf0000606, 0x315a: 0xf0000606, 0x315b: 0xf0000606,
-	0x315c: 0xf0000606, 0x315d: 0xf0000606, 0x315e: 0xf0000606, 0x315f: 0xf0000606,
-	0x3160: 0x0062ac86, 0x3161: 0x0062b086, 0x3162: 0x0062b286, 0x3163: 0x0062b686,
-	0x3164: 0x0062b886, 0x3165: 0x0062ba86, 0x3166: 0x0062be86, 0x3167: 0x0062c286,
-	0x3168: 0x0062c486, 0x3169: 0x0062c886, 0x316a: 0x0062ca86, 0x316b: 0x0062cc86,
-	0x316c: 0x0062ce86, 0x316d: 0x0062d086, 0x316e: 0xf0000606, 0x316f: 0xf0000606,
-	0x3170: 0xf0000606, 0x3171: 0xf0000606, 0x3172: 0xf0000606, 0x3173: 0xf0000606,
-	0x3174: 0xf0000606, 0x3175: 0xf0000606, 0x3176: 0xf0000606, 0x3177: 0xf0000606,
-	0x3178: 0xf0000606, 0x3179: 0xf0000606, 0x317a: 0xf0000606, 0x317b: 0xf0000606,
-	0x317c: 0xe0002127, 0x317d: 0xe0002122, 0x317e: 0xf0000606, 0x317f: 0x4027ac20,
-	// Block 0xc6, offset 0x3180
-	0x3180: 0x029c0086, 0x3181: 0x029d1886, 0x3182: 0x029c1286, 0x3183: 0x02adb686,
-	0x3184: 0x029d2886, 0x3185: 0x02a2da86, 0x3186: 0x029c0686, 0x3187: 0x02a2d686,
-	0x3188: 0x029cba86, 0x3189: 0x02a68286, 0x318a: 0x02ce1086, 0x318b: 0x02e0d686,
-	0x318c: 0x02d86886, 0x318d: 0x02ce5086, 0x318e: 0x0323a286, 0x318f: 0x02ae3e86,
-	0x3190: 0x02cbca86, 0x3191: 0x02d05486, 0x3192: 0x02ce1286, 0x3193: 0x02f27c86,
-	0x3194: 0x02a81a86, 0x3195: 0x02e4f286, 0x3196: 0x03194286, 0x3197: 0x02f2ba86,
-	0x3198: 0x02a56886, 0x3199: 0x02f3b086, 0x319a: 0x02ea6e86, 0x319b: 0x02b2e686,
-	0x319c: 0x0320d286, 0x319d: 0x02a25486, 0x319e: 0x02a6e086, 0x319f: 0x02d9d086,
-	0x31a0: 0x03300a86, 0x31a1: 0x029e2286, 0x31a2: 0x02a33286, 0x31a3: 0x02d6c686,
-	0x31a4: 0x029c1486, 0x31a5: 0x029c5a86, 0x31a6: 0x029c1686, 0x31a7: 0x02bbcc86,
-	0x31a8: 0x02a7e686, 0x31a9: 0x02a67686, 0x31aa: 0x02b72e86, 0x31ab: 0x02b6cc86,
-	0x31ac: 0x02edc686, 0x31ad: 0x029e0286, 0x31ae: 0x03198e86, 0x31af: 0x02a6a886,
-	0x31b0: 0x02b23886, 0x31b1: 0xf0000606, 0x31b2: 0xf0000606, 0x31b3: 0xf0000606,
-	0x31b4: 0xf0000606, 0x31b5: 0xf0000606, 0x31b6: 0xf0000606, 0x31b7: 0xf0000606,
-	0x31b8: 0xf0000606, 0x31b9: 0xf0000606, 0x31ba: 0xf0000606, 0x31bb: 0xf0000606,
-	0x31bc: 0xf0000606, 0x31bd: 0xf0000606, 0x31be: 0xf0000606, 0x31bf: 0xf0000606,
-	// Block 0xc7, offset 0x31c0
-	0x31c0: 0xf0001f04, 0x31c1: 0xf0001f04, 0x31c2: 0xf0001f04, 0x31c3: 0xf0001f04,
-	0x31c4: 0xf0001f04, 0x31c5: 0xf0001f04, 0x31c6: 0xf0001f04, 0x31c7: 0xf0001f04,
-	0x31c8: 0xf0001f04, 0x31c9: 0xf0000404, 0x31ca: 0xf0000404, 0x31cb: 0xf0000404,
-	0x31cc: 0xf0001c1d, 0x31cd: 0xe0000b85, 0x31ce: 0xf0001d1c, 0x31cf: 0xe0000d14,
-	0x31d0: 0x00657693, 0x31d1: 0x00657893, 0x31d2: 0x00657a93, 0x31d3: 0x00657e93,
-	0x31d4: 0x00658093, 0x31d5: 0x00658293, 0x31d6: 0x00658493, 0x31d7: 0x00658693,
-	0x31d8: 0x00658893, 0x31d9: 0x00658a93, 0x31da: 0x00658c93, 0x31db: 0x00658e93,
-	0x31dc: 0x00659093, 0x31dd: 0x00659293, 0x31de: 0x00659493, 0x31df: 0x00659693,
-	0x31e0: 0x00659893, 0x31e1: 0x00659a93, 0x31e2: 0x00659c93, 0x31e3: 0x00659e93,
-	0x31e4: 0x0065a093, 0x31e5: 0x0065a293, 0x31e6: 0x0065a493, 0x31e7: 0x0065a693,
-	0x31e8: 0x0065a893, 0x31e9: 0x0065aa93, 0x31ea: 0x0065ac93, 0x31eb: 0x0065ae93,
-	0x31ec: 0x0065b093, 0x31ed: 0x0065b293, 0x31ee: 0x0065b493, 0x31ef: 0x0065b693,
-	0x31f0: 0x0065b893, 0x31f1: 0x0065ba93, 0x31f2: 0x0065bc93, 0x31f3: 0x0065be93,
-	0x31f4: 0x0065c093, 0x31f5: 0x0065c493, 0x31f6: 0x0065c693, 0x31f7: 0x0065c893,
-	0x31f8: 0x0065ca93, 0x31f9: 0x0065cc93, 0x31fa: 0x0065ce93, 0x31fb: 0x0065d093,
-	0x31fc: 0x0065d293, 0x31fd: 0x0065d493, 0x31fe: 0x0065d693,
-	// Block 0xc8, offset 0x3200
-	0x3200: 0xe0002131, 0x3201: 0xe0002137, 0x3202: 0xe000213c, 0x3203: 0xe000212d,
-	0x3204: 0xe0002142, 0x3205: 0xe0002148, 0x3206: 0xe0002152, 0x3207: 0xe000215b,
-	0x3208: 0xe0002156, 0x3209: 0xe0002166, 0x320a: 0xe0002162, 0x320b: 0xe0002170,
-	0x320c: 0xe0002174, 0x320d: 0xe0002179, 0x320e: 0xe000217e, 0x320f: 0xe0002183,
-	0x3210: 0xe000218e, 0x3211: 0xe0002193, 0x3212: 0xe0002198, 0x3213: 0xe000219d,
-	0x3214: 0xf0001c1c, 0x3215: 0xe00021a4, 0x3216: 0xe00021ab, 0x3217: 0xe00021b2,
-	0x3218: 0xe00021be, 0x3219: 0xe00021c3, 0x321a: 0xe00021ca, 0x321b: 0xe00021d1,
-	0x321c: 0xe00021dc, 0x321d: 0xe00021eb, 0x321e: 0xe00021e6, 0x321f: 0xe00021f5,
-	0x3220: 0xe00021fa, 0x3221: 0xe0002209, 0x3222: 0xe000221b, 0x3223: 0xe000221f,
-	0x3224: 0xe000222f, 0x3225: 0xe0002246, 0x3226: 0xe0002250, 0x3227: 0xf0001c1c,
-	0x3228: 0xf0001c1c, 0x3229: 0xe0002254, 0x322a: 0xe0002276, 0x322b: 0xe0002264,
-	0x322c: 0xe000226b, 0x322d: 0xe0002270, 0x322e: 0xe0002286, 0x322f: 0xe000228d,
-	0x3230: 0xe0002292, 0x3231: 0xe0002296, 0x3232: 0xe00022a6, 0x3233: 0xe00022ad,
-	0x3234: 0xe00022b2, 0x3235: 0xe00022b9, 0x3236: 0xe00022d4, 0x3237: 0xe00022da,
-	0x3238: 0xe00022de, 0x3239: 0xe00022e3, 0x323a: 0xe00022e7, 0x323b: 0xe00022c9,
-	0x323c: 0xe00022cf, 0x323d: 0xe0002300, 0x323e: 0xe0002306, 0x323f: 0xf0001c1c,
-	// Block 0xc9, offset 0x3240
-	0x3240: 0xe000230b, 0x3241: 0xe00022f8, 0x3242: 0xe00022fc, 0x3243: 0xe0002311,
-	0x3244: 0xe0002316, 0x3245: 0xe000231d, 0x3246: 0xe0002321, 0x3247: 0xe0002325,
-	0x3248: 0xe000232b, 0x3249: 0xf0001c1c, 0x324a: 0xe0002330, 0x324b: 0xe000233c,
-	0x324c: 0xe0002340, 0x324d: 0xe0002337, 0x324e: 0xe0002346, 0x324f: 0xe000234b,
-	0x3250: 0xe000234f, 0x3251: 0xe0002353, 0x3252: 0xf0001c1c, 0x3253: 0xe000235e,
-	0x3254: 0xe0002358, 0x3255: 0xf0001c1c, 0x3256: 0xe0002363, 0x3257: 0xe000236d,
-	0x3258: 0xf0001f04, 0x3259: 0xf0001f04, 0x325a: 0xf0001f04, 0x325b: 0xf0001f04,
-	0x325c: 0xf0001f04, 0x325d: 0xf0001f04, 0x325e: 0xf0001f04, 0x325f: 0xf0001f04,
-	0x3260: 0xf0001f04, 0x3261: 0xf0001f04, 0x3262: 0xf0000404, 0x3263: 0xf0000404,
-	0x3264: 0xf0000404, 0x3265: 0xf0000404, 0x3266: 0xf0000404, 0x3267: 0xf0000404,
-	0x3268: 0xf0000404, 0x3269: 0xf0000404, 0x326a: 0xf0000404, 0x326b: 0xf0000404,
-	0x326c: 0xf0000404, 0x326d: 0xf0000404, 0x326e: 0xf0000404, 0x326f: 0xf0000404,
-	0x3270: 0xf0000404, 0x3271: 0xe0000c1e, 0x3272: 0xf0001c1c, 0x3273: 0xf0001d1d,
-	0x3274: 0xe0000a31, 0x3275: 0xf0001d1c, 0x3276: 0xf0001c1c, 0x3277: 0xf0001c1c,
-	0x3278: 0xe0000ac2, 0x3279: 0xe0000ac6, 0x327a: 0xf0001d1d, 0x327b: 0xf0001c1c,
-	0x327c: 0xf0001c1c, 0x327d: 0xf0001c1c, 0x327e: 0xf0001c1c, 0x327f: 0xe0002431,
-	// Block 0xca, offset 0x3280
-	0x3280: 0xf0001d1c, 0x3281: 0xf0001d1c, 0x3282: 0xf0001d1c, 0x3283: 0xf0001d1c,
-	0x3284: 0xf0001d1c, 0x3285: 0xf0001d1d, 0x3286: 0xf0001d1d, 0x3287: 0xf0001d1d,
-	0x3288: 0xe0000a6b, 0x3289: 0xe0000cb4, 0x328a: 0xf0001d1c, 0x328b: 0xf0001d1c,
-	0x328c: 0xf0001d1c, 0x328d: 0xf0001c1c, 0x328e: 0xf0001c1c, 0x328f: 0xf0001c1c,
-	0x3290: 0xf0001c1d, 0x3291: 0xe0000cb9, 0x3292: 0xe0000d36, 0x3293: 0xe0000be3,
-	0x3294: 0xe0000fc5, 0x3295: 0xf0001c1c, 0x3296: 0xf0001c1c, 0x3297: 0xf0001c1c,
-	0x3298: 0xf0001c1c, 0x3299: 0xf0001c1c, 0x329a: 0xf0001c1c, 0x329b: 0xf0001c1c,
-	0x329c: 0xf0001c1c, 0x329d: 0xf0001c1c, 0x329e: 0xf0001c1c, 0x329f: 0xe0000d3e,
-	0x32a0: 0xe0000a72, 0x32a1: 0xf0001c1c, 0x32a2: 0xe0000cbd, 0x32a3: 0xe0000d42,
-	0x32a4: 0xe0000a76, 0x32a5: 0xf0001c1c, 0x32a6: 0xe0000cc1, 0x32a7: 0xe0000d2d,
-	0x32a8: 0xe0000d31, 0x32a9: 0xf0001c1d, 0x32aa: 0xe0000cc5, 0x32ab: 0xe0000d4a,
-	0x32ac: 0xe0000be7, 0x32ad: 0xe0000f0b, 0x32ae: 0xe0000f0f, 0x32af: 0xe0000f15,
-	0x32b0: 0xf0001c1c, 0x32b1: 0xf0001c1c, 0x32b2: 0xf0001c1c, 0x32b3: 0xf0001c1c,
-	0x32b4: 0xf0001d1c, 0x32b5: 0xf0001d1c, 0x32b6: 0xf0001d1c, 0x32b7: 0xf0001d1c,
-	0x32b8: 0xf0001d1c, 0x32b9: 0xf0001d1d, 0x32ba: 0xf0001d1c, 0x32bb: 0xf0001d1c,
-	0x32bc: 0xf0001d1c, 0x32bd: 0xf0001d1c, 0x32be: 0xf0001d1c, 0x32bf: 0xf0001d1d,
-	// Block 0xcb, offset 0x32c0
-	0x32c0: 0xf0001d1c, 0x32c1: 0xf0001d1d, 0x32c2: 0xe00009b7, 0x32c3: 0xf0001c1d,
-	0x32c4: 0xf0001c1c, 0x32c5: 0xf0001c1c, 0x32c6: 0xe0000a66, 0x32c7: 0xe0000a7a,
-	0x32c8: 0xf0001d1c, 0x32c9: 0xf0001c1d, 0x32ca: 0xf0001c1c, 0x32cb: 0xf0001d1d,
-	0x32cc: 0xf0001c1c, 0x32cd: 0xf0001d1d, 0x32ce: 0xf0001d1d, 0x32cf: 0xf0001c1c,
-	0x32d0: 0xf0001c1c, 0x32d1: 0xf0001c1c, 0x32d2: 0xe0000d0d, 0x32d3: 0xf0001c1c,
-	0x32d4: 0xf0001c1c, 0x32d5: 0xe0000d3a, 0x32d6: 0xe0000d46, 0x32d7: 0xf0001d1d,
-	0x32d8: 0xe0000eb0, 0x32d9: 0xe0000eb8, 0x32da: 0xf0001d1d, 0x32db: 0xf0001c1c,
-	0x32dc: 0xf0001c1d, 0x32dd: 0xf0001c1d, 0x32de: 0xe00010b2, 0x32df: 0xe00009c8,
-	0x32e0: 0xf0001f04, 0x32e1: 0xf0001f04, 0x32e2: 0xf0001f04, 0x32e3: 0xf0001f04,
-	0x32e4: 0xf0001f04, 0x32e5: 0xf0001f04, 0x32e6: 0xf0001f04, 0x32e7: 0xf0001f04,
-	0x32e8: 0xf0001f04, 0x32e9: 0xf0000404, 0x32ea: 0xf0000404, 0x32eb: 0xf0000404,
-	0x32ec: 0xf0000404, 0x32ed: 0xf0000404, 0x32ee: 0xf0000404, 0x32ef: 0xf0000404,
-	0x32f0: 0xf0000404, 0x32f1: 0xf0000404, 0x32f2: 0xf0000404, 0x32f3: 0xf0000404,
-	0x32f4: 0xf0000404, 0x32f5: 0xf0000404, 0x32f6: 0xf0000404, 0x32f7: 0xf0000404,
-	0x32f8: 0xf0000404, 0x32f9: 0xf0000404, 0x32fa: 0xf0000404, 0x32fb: 0xf0000404,
-	0x32fc: 0xf0000404, 0x32fd: 0xf0000404, 0x32fe: 0xf0000404, 0x32ff: 0xe0000bdf,
-	// Block 0xcc, offset 0x3300
-	0x3300: 0x40196220, 0x3301: 0x40196420, 0x3302: 0x40196620, 0x3303: 0x40196820,
-	0x3304: 0x40196a20, 0x3305: 0x40196c20, 0x3306: 0x40196e20, 0x3307: 0x40197020,
-	0x3308: 0x40197220, 0x3309: 0x40197420, 0x330a: 0x40197620, 0x330b: 0x40197820,
-	0x330c: 0x40197a20, 0x330d: 0x40197c20, 0x330e: 0x40197e20, 0x330f: 0x40198020,
-	0x3310: 0x40198220, 0x3311: 0x40198420, 0x3312: 0x40198620, 0x3313: 0x40198820,
-	0x3314: 0x40198a20, 0x3315: 0x40198c20, 0x3316: 0x40198e20, 0x3317: 0x40199020,
-	0x3318: 0x40199220, 0x3319: 0x40199420, 0x331a: 0x40199620, 0x331b: 0x40199820,
-	0x331c: 0x40199a20, 0x331d: 0x40199c20, 0x331e: 0x40199e20, 0x331f: 0x4019a020,
-	0x3320: 0x4019a220, 0x3321: 0x4019a420, 0x3322: 0x4019a620, 0x3323: 0x4019a820,
-	0x3324: 0x4019aa20, 0x3325: 0x4019ac20, 0x3326: 0x4019ae20, 0x3327: 0x4019b020,
-	0x3328: 0x4019b220, 0x3329: 0x4019b420, 0x332a: 0x4019b620, 0x332b: 0x4019b820,
-	0x332c: 0x4019ba20, 0x332d: 0x4019bc20, 0x332e: 0x4019be20, 0x332f: 0x4019c020,
-	0x3330: 0x4019c220, 0x3331: 0x4019c420, 0x3332: 0x4019c620, 0x3333: 0x4019c820,
-	0x3334: 0x4019ca20, 0x3335: 0x4019cc20, 0x3336: 0x4019ce20, 0x3337: 0x4019d020,
-	0x3338: 0x4019d220, 0x3339: 0x4019d420, 0x333a: 0x4019d620, 0x333b: 0x4019d820,
-	0x333c: 0x4019da20, 0x333d: 0x4019dc20, 0x333e: 0x4019de20, 0x333f: 0x4019e020,
-	// Block 0xcd, offset 0x3340
-	0x3340: 0x40664020, 0x3341: 0x40664220, 0x3342: 0x40664420, 0x3343: 0x40664620,
-	0x3344: 0x40664820, 0x3345: 0x40664a20, 0x3346: 0x40664c20, 0x3347: 0x40664e20,
-	0x3348: 0x40665020, 0x3349: 0x40665220, 0x334a: 0x40665420, 0x334b: 0x40665620,
-	0x334c: 0x40665820, 0x334d: 0x40665a20, 0x334e: 0x40665c20, 0x334f: 0x40665e20,
-	0x3350: 0x40666020, 0x3351: 0x40666220, 0x3352: 0x40666420, 0x3353: 0x40666620,
-	0x3354: 0x40666820, 0x3355: 0x40666a20, 0x3356: 0x40666c20, 0x3357: 0x40666e20,
-	0x3358: 0x40667020, 0x3359: 0x40667220, 0x335a: 0x40667420, 0x335b: 0x40667620,
-	0x335c: 0x40667820, 0x335d: 0x40667a20, 0x335e: 0x40667c20, 0x335f: 0x40667e20,
-	0x3360: 0x40668020, 0x3361: 0x40668220, 0x3362: 0x40668420, 0x3363: 0x40668620,
-	0x3364: 0x40668820, 0x3365: 0x40668a20, 0x3366: 0x40668c20, 0x3367: 0x40668e20,
-	0x3368: 0x40669020, 0x3369: 0x40669220, 0x336a: 0x40669420, 0x336b: 0x40669620,
-	0x336c: 0x40669820, 0x336d: 0x40669a20, 0x336e: 0x40669c20, 0x336f: 0x40669e20,
-	0x3370: 0x4066a020, 0x3371: 0x4066a220, 0x3372: 0x4066a420, 0x3373: 0x4066a620,
-	0x3374: 0x4066a820, 0x3375: 0x4066aa20, 0x3376: 0x4066ac20, 0x3377: 0x4066ae20,
-	0x3378: 0x4066b020, 0x3379: 0x4066b220, 0x337a: 0x4066b420, 0x337b: 0x4066b620,
-	0x337c: 0x4066b820, 0x337d: 0x4066ba20, 0x337e: 0x4066bc20, 0x337f: 0x4066be20,
-	// Block 0xce, offset 0x3380
-	0x3380: 0x4066c020, 0x3381: 0x4066c220, 0x3382: 0x4066c420, 0x3383: 0x4066c620,
-	0x3384: 0x4066c820, 0x3385: 0x4066ca20, 0x3386: 0x4066cc20, 0x3387: 0x4066ce20,
-	0x3388: 0x4066d020, 0x3389: 0x4066d220, 0x338a: 0x4066d420, 0x338b: 0x4066d620,
-	0x338c: 0x4066d820, 0x338d: 0x4066da20, 0x338e: 0x4066dc20, 0x338f: 0x4066de20,
-	0x3390: 0x4066e020, 0x3391: 0x4066e220, 0x3392: 0x4066e420, 0x3393: 0x4066e620,
-	0x3394: 0x4066e820, 0x3395: 0x4066ea20, 0x3396: 0x4066ec20, 0x3397: 0x4066ee20,
-	0x3398: 0x4066f020, 0x3399: 0x4066f220, 0x339a: 0x4066f420, 0x339b: 0x4066f620,
-	0x339c: 0x4066f820, 0x339d: 0x4066fa20, 0x339e: 0x4066fc20, 0x339f: 0x4066fe20,
-	0x33a0: 0x40670020, 0x33a1: 0x40670220, 0x33a2: 0x40670420, 0x33a3: 0x40670620,
-	0x33a4: 0x40670820, 0x33a5: 0x40670a20, 0x33a6: 0x40670c20, 0x33a7: 0x40670e20,
-	0x33a8: 0x40671020, 0x33a9: 0x40671220, 0x33aa: 0x40671420, 0x33ab: 0x40671620,
-	0x33ac: 0x40671820, 0x33ad: 0x40671a20, 0x33ae: 0x40671c20, 0x33af: 0x40671e20,
-	0x33b0: 0x40672020, 0x33b1: 0x40672220, 0x33b2: 0x40672420, 0x33b3: 0x40672620,
-	0x33b4: 0x40672820, 0x33b5: 0x40672a20, 0x33b6: 0x40672c20, 0x33b7: 0x40672e20,
-	0x33b8: 0x40673020, 0x33b9: 0x40673220, 0x33ba: 0x40673420, 0x33bb: 0x40673620,
-	0x33bc: 0x40673820, 0x33bd: 0x40673a20, 0x33be: 0x40673c20, 0x33bf: 0x40673e20,
-	// Block 0xcf, offset 0x33c0
-	0x33c0: 0x40674020, 0x33c1: 0x40674220, 0x33c2: 0x40674420, 0x33c3: 0x40674620,
-	0x33c4: 0x40674820, 0x33c5: 0x40674a20, 0x33c6: 0x40674c20, 0x33c7: 0x40674e20,
-	0x33c8: 0x40675020, 0x33c9: 0x40675220, 0x33ca: 0x40675420, 0x33cb: 0x40675620,
-	0x33cc: 0x40675820, 0x33cd: 0x40675a20, 0x33ce: 0x40675c20, 0x33cf: 0x40675e20,
-	0x33d0: 0x40676020, 0x33d1: 0x40676220, 0x33d2: 0x40676420, 0x33d3: 0x40676620,
-	0x33d4: 0x40676820, 0x33d5: 0x40676a20, 0x33d6: 0x40676c20, 0x33d7: 0x40676e20,
-	0x33d8: 0x40677020, 0x33d9: 0x40677220, 0x33da: 0x40677420, 0x33db: 0x40677620,
-	0x33dc: 0x40677820, 0x33dd: 0x40677a20, 0x33de: 0x40677c20, 0x33df: 0x40677e20,
-	0x33e0: 0x40678020, 0x33e1: 0x40678220, 0x33e2: 0x40678420, 0x33e3: 0x40678620,
-	0x33e4: 0x40678820, 0x33e5: 0x40678a20, 0x33e6: 0x40678c20, 0x33e7: 0x40678e20,
-	0x33e8: 0x40679020, 0x33e9: 0x40679220, 0x33ea: 0x40679420, 0x33eb: 0x40679620,
-	0x33ec: 0x40679820, 0x33ed: 0x40679a20, 0x33ee: 0x40679c20, 0x33ef: 0x40679e20,
-	0x33f0: 0x4067a020, 0x33f1: 0x4067a220, 0x33f2: 0x4067a420, 0x33f3: 0x4067a620,
-	0x33f4: 0x4067a820, 0x33f5: 0x4067aa20, 0x33f6: 0x4067ac20, 0x33f7: 0x4067ae20,
-	0x33f8: 0x4067b020, 0x33f9: 0x4067b220, 0x33fa: 0x4067b420, 0x33fb: 0x4067b620,
-	0x33fc: 0x4067b820, 0x33fd: 0x4067ba20, 0x33fe: 0x4067bc20, 0x33ff: 0x4067be20,
-	// Block 0xd0, offset 0x3400
-	0x3400: 0x4067c020, 0x3401: 0x4067c220, 0x3402: 0x4067c420, 0x3403: 0x4067c620,
-	0x3404: 0x4067c820, 0x3405: 0x4067ca20, 0x3406: 0x4067cc20, 0x3407: 0x4067ce20,
-	0x3408: 0x4067d020, 0x3409: 0x4067d220, 0x340a: 0x4067d420, 0x340b: 0x4067d620,
-	0x340c: 0x4067d820, 0x340d: 0x4067da20, 0x340e: 0x4067dc20, 0x340f: 0x4067de20,
-	0x3410: 0x4067e020, 0x3411: 0x4067e220, 0x3412: 0x4067e420, 0x3413: 0x4067e620,
-	0x3414: 0x4067e820, 0x3415: 0x4067ea20, 0x3416: 0x4067ec20, 0x3417: 0x4067ee20,
-	0x3418: 0x4067f020, 0x3419: 0x4067f220, 0x341a: 0x4067f420, 0x341b: 0x4067f620,
-	0x341c: 0x4067f820, 0x341d: 0x4067fa20, 0x341e: 0x4067fc20, 0x341f: 0x4067fe20,
-	0x3420: 0x40680020, 0x3421: 0x40680220, 0x3422: 0x40680420, 0x3423: 0x40680620,
-	0x3424: 0x40680820, 0x3425: 0x40680a20, 0x3426: 0x40680c20, 0x3427: 0x40680e20,
-	0x3428: 0x40681020, 0x3429: 0x40681220, 0x342a: 0x40681420, 0x342b: 0x40681620,
-	0x342c: 0x40681820, 0x342d: 0x40681a20, 0x342e: 0x40681c20, 0x342f: 0x40681e20,
-	0x3430: 0x40682020, 0x3431: 0x40682220, 0x3432: 0x40682420, 0x3433: 0x40682620,
-	0x3434: 0x40682820, 0x3435: 0x40682a20, 0x3436: 0x40682c20, 0x3437: 0x40682e20,
-	0x3438: 0x40683020, 0x3439: 0x40683220, 0x343a: 0x40683420, 0x343b: 0x40683620,
-	0x343c: 0x40683820, 0x343d: 0x40683a20, 0x343e: 0x40683c20, 0x343f: 0x40683e20,
-	// Block 0xd1, offset 0x3440
-	0x3440: 0x40684020, 0x3441: 0x40684220, 0x3442: 0x40684420, 0x3443: 0x40684620,
-	0x3444: 0x40684820, 0x3445: 0x40684a20, 0x3446: 0x40684c20, 0x3447: 0x40684e20,
-	0x3448: 0x40685020, 0x3449: 0x40685220, 0x344a: 0x40685420, 0x344b: 0x40685620,
-	0x344c: 0x40685820, 0x344d: 0x40685a20, 0x344e: 0x40685c20, 0x344f: 0x40685e20,
-	0x3450: 0x40686020, 0x3451: 0x40686220, 0x3452: 0x40686420, 0x3453: 0x40686620,
-	0x3454: 0x40686820, 0x3455: 0x40686a20, 0x3456: 0x40686c20, 0x3457: 0x40686e20,
-	0x3458: 0x40687020, 0x3459: 0x40687220, 0x345a: 0x40687420, 0x345b: 0x40687620,
-	0x345c: 0x40687820, 0x345d: 0x40687a20, 0x345e: 0x40687c20, 0x345f: 0x40687e20,
-	0x3460: 0x40688020, 0x3461: 0x40688220, 0x3462: 0x40688420, 0x3463: 0x40688620,
-	0x3464: 0x40688820, 0x3465: 0x40688a20, 0x3466: 0x40688c20, 0x3467: 0x40688e20,
-	0x3468: 0x40689020, 0x3469: 0x40689220, 0x346a: 0x40689420, 0x346b: 0x40689620,
-	0x346c: 0x40689820, 0x346d: 0x40689a20, 0x346e: 0x40689c20, 0x346f: 0x40689e20,
-	0x3470: 0x4068a020, 0x3471: 0x4068a220, 0x3472: 0x4068a420, 0x3473: 0x4068a620,
-	0x3474: 0x4068a820, 0x3475: 0x4068aa20, 0x3476: 0x4068ac20, 0x3477: 0x4068ae20,
-	0x3478: 0x4068b020, 0x3479: 0x4068b220, 0x347a: 0x4068b420, 0x347b: 0x4068b620,
-	0x347c: 0x4068b820, 0x347d: 0x4068ba20, 0x347e: 0x4068bc20, 0x347f: 0x4068be20,
-	// Block 0xd2, offset 0x3480
-	0x3480: 0x4068c020, 0x3481: 0x4068c220, 0x3482: 0x4068c420, 0x3483: 0x4068c620,
-	0x3484: 0x4068c820, 0x3485: 0x4068ca20, 0x3486: 0x4068cc20, 0x3487: 0x4068ce20,
-	0x3488: 0x4068d020, 0x3489: 0x4068d220, 0x348a: 0x4068d420, 0x348b: 0x4068d620,
-	0x348c: 0x4068d820, 0x348d: 0x4068da20, 0x348e: 0x4068dc20, 0x348f: 0x4068de20,
-	0x3490: 0x4068e020, 0x3491: 0x4068e220, 0x3492: 0x4068e420, 0x3493: 0x4068e620,
-	0x3494: 0x4068e820, 0x3495: 0x4068ea20, 0x3496: 0x4068ec20, 0x3497: 0x4068ee20,
-	0x3498: 0x4068f020, 0x3499: 0x4068f220, 0x349a: 0x4068f420, 0x349b: 0x4068f620,
-	0x349c: 0x4068f820, 0x349d: 0x4068fa20, 0x349e: 0x4068fc20, 0x349f: 0x4068fe20,
-	0x34a0: 0x40690020, 0x34a1: 0x40690220, 0x34a2: 0x40690420, 0x34a3: 0x40690620,
-	0x34a4: 0x40690820, 0x34a5: 0x40690a20, 0x34a6: 0x40690c20, 0x34a7: 0x40690e20,
-	0x34a8: 0x40691020, 0x34a9: 0x40691220, 0x34aa: 0x40691420, 0x34ab: 0x40691620,
-	0x34ac: 0x40691820, 0x34ad: 0x40691a20, 0x34ae: 0x40691c20, 0x34af: 0x40691e20,
-	0x34b0: 0x40692020, 0x34b1: 0x40692220, 0x34b2: 0x40692420, 0x34b3: 0x40692620,
-	0x34b4: 0x40692820, 0x34b5: 0x40692a20, 0x34b6: 0x40692c20, 0x34b7: 0x40692e20,
-	0x34b8: 0x40693020, 0x34b9: 0x40693220, 0x34ba: 0x40693420, 0x34bb: 0x40693620,
-	0x34bc: 0x40693820, 0x34bd: 0x40693a20, 0x34be: 0x40693c20, 0x34bf: 0x40693e20,
-	// Block 0xd3, offset 0x34c0
-	0x34c0: 0x40694020, 0x34c1: 0x40694220, 0x34c2: 0x40694420, 0x34c3: 0x40694620,
-	0x34c4: 0x40694820, 0x34c5: 0x40694a20, 0x34c6: 0x40694c20, 0x34c7: 0x40694e20,
-	0x34c8: 0x40695020, 0x34c9: 0x40695220, 0x34ca: 0x40695420, 0x34cb: 0x40695620,
-	0x34cc: 0x40695820, 0x34cd: 0x40695a20, 0x34ce: 0x40695c20, 0x34cf: 0x40695e20,
-	0x34d0: 0x40696020, 0x34d1: 0x40696220, 0x34d2: 0x40696420, 0x34d3: 0x40696620,
-	0x34d4: 0x40696820, 0x34d5: 0x40696a20, 0x34d6: 0x40696c20, 0x34d7: 0x40696e20,
-	0x34d8: 0x40697020, 0x34d9: 0x40697220, 0x34da: 0x40697420, 0x34db: 0x40697620,
-	0x34dc: 0x40697820, 0x34dd: 0x40697a20, 0x34de: 0x40697c20, 0x34df: 0x40697e20,
-	0x34e0: 0x40698020, 0x34e1: 0x40698220, 0x34e2: 0x40698420, 0x34e3: 0x40698620,
-	0x34e4: 0x40698820, 0x34e5: 0x40698a20, 0x34e6: 0x40698c20, 0x34e7: 0x40698e20,
-	0x34e8: 0x40699020, 0x34e9: 0x40699220, 0x34ea: 0x40699420, 0x34eb: 0x40699620,
-	0x34ec: 0x40699820, 0x34ed: 0x40699a20, 0x34ee: 0x40699c20, 0x34ef: 0x40699e20,
-	0x34f0: 0x4069a020, 0x34f1: 0x4069a220, 0x34f2: 0x4069a420, 0x34f3: 0x4069a620,
-	0x34f4: 0x4069a820, 0x34f5: 0x4069aa20, 0x34f6: 0x4069ac20, 0x34f7: 0x4069ae20,
-	0x34f8: 0x4069b020, 0x34f9: 0x4069b220, 0x34fa: 0x4069b420, 0x34fb: 0x4069b620,
-	0x34fc: 0x4069b820, 0x34fd: 0x4069ba20, 0x34fe: 0x4069bc20, 0x34ff: 0x4069be20,
-	// Block 0xd4, offset 0x3500
-	0x3500: 0x4069c020, 0x3501: 0x4069c220, 0x3502: 0x4069c420, 0x3503: 0x4069c620,
-	0x3504: 0x4069c820, 0x3505: 0x4069ca20, 0x3506: 0x4069cc20, 0x3507: 0x4069ce20,
-	0x3508: 0x4069d020, 0x3509: 0x4069d220, 0x350a: 0x4069d420, 0x350b: 0x4069d620,
-	0x350c: 0x4069d820, 0x350d: 0x4069da20, 0x350e: 0x4069dc20, 0x350f: 0x4069de20,
-	0x3510: 0x4069e020, 0x3511: 0x4069e220, 0x3512: 0x4069e420, 0x3513: 0x4069e620,
-	0x3514: 0x4069e820, 0x3515: 0x4069ea20, 0x3516: 0x4069ec20, 0x3517: 0x4069ee20,
-	0x3518: 0x4069f020, 0x3519: 0x4069f220, 0x351a: 0x4069f420, 0x351b: 0x4069f620,
-	0x351c: 0x4069f820, 0x351d: 0x4069fa20, 0x351e: 0x4069fc20, 0x351f: 0x4069fe20,
-	0x3520: 0x406a0020, 0x3521: 0x406a0220, 0x3522: 0x406a0420, 0x3523: 0x406a0620,
-	0x3524: 0x406a0820, 0x3525: 0x406a0a20, 0x3526: 0x406a0c20, 0x3527: 0x406a0e20,
-	0x3528: 0x406a1020, 0x3529: 0x406a1220, 0x352a: 0x406a1420, 0x352b: 0x406a1620,
-	0x352c: 0x406a1820, 0x352d: 0x406a1a20, 0x352e: 0x406a1c20, 0x352f: 0x406a1e20,
-	0x3530: 0x406a2020, 0x3531: 0x406a2220, 0x3532: 0x406a2420, 0x3533: 0x406a2620,
-	0x3534: 0x406a2820, 0x3535: 0x406a2a20, 0x3536: 0x406a2c20, 0x3537: 0x406a2e20,
-	0x3538: 0x406a3020, 0x3539: 0x406a3220, 0x353a: 0x406a3420, 0x353b: 0x406a3620,
-	0x353c: 0x406a3820, 0x353d: 0x406a3a20, 0x353e: 0x406a3c20, 0x353f: 0x406a3e20,
-	// Block 0xd5, offset 0x3540
-	0x3540: 0x406a4020, 0x3541: 0x406a4220, 0x3542: 0x406a4420, 0x3543: 0x406a4620,
-	0x3544: 0x406a4820, 0x3545: 0x406a4a20, 0x3546: 0x406a4c20, 0x3547: 0x406a4e20,
-	0x3548: 0x406a5020, 0x3549: 0x406a5220, 0x354a: 0x406a5420, 0x354b: 0x406a5620,
-	0x354c: 0x406a5820, 0x354d: 0x406a5a20, 0x354e: 0x406a5c20, 0x354f: 0x406a5e20,
-	0x3550: 0x406a6020, 0x3551: 0x406a6220, 0x3552: 0x406a6420, 0x3553: 0x406a6620,
-	0x3554: 0x406a6820, 0x3555: 0x406a6a20, 0x3556: 0x406a6c20, 0x3557: 0x406a6e20,
-	0x3558: 0x406a7020, 0x3559: 0x406a7220, 0x355a: 0x406a7420, 0x355b: 0x406a7620,
-	0x355c: 0x406a7820, 0x355d: 0x406a7a20, 0x355e: 0x406a7c20, 0x355f: 0x406a7e20,
-	0x3560: 0x406a8020, 0x3561: 0x406a8220, 0x3562: 0x406a8420, 0x3563: 0x406a8620,
-	0x3564: 0x406a8820, 0x3565: 0x406a8a20, 0x3566: 0x406a8c20, 0x3567: 0x406a8e20,
-	0x3568: 0x406a9020, 0x3569: 0x406a9220, 0x356a: 0x406a9420, 0x356b: 0x406a9620,
-	0x356c: 0x406a9820, 0x356d: 0x406a9a20, 0x356e: 0x406a9c20, 0x356f: 0x406a9e20,
-	0x3570: 0x406aa020, 0x3571: 0x406aa220, 0x3572: 0x406aa420, 0x3573: 0x406aa620,
-	0x3574: 0x406aa820, 0x3575: 0x406aaa20, 0x3576: 0x406aac20, 0x3577: 0x406aae20,
-	0x3578: 0x406ab020, 0x3579: 0x406ab220, 0x357a: 0x406ab420, 0x357b: 0x406ab620,
-	0x357c: 0x406ab820, 0x357d: 0x406aba20, 0x357e: 0x406abc20, 0x357f: 0x406abe20,
-	// Block 0xd6, offset 0x3580
-	0x3580: 0x406ac020, 0x3581: 0x406ac220, 0x3582: 0x406ac420, 0x3583: 0x406ac620,
-	0x3584: 0x406ac820, 0x3585: 0x406aca20, 0x3586: 0x406acc20, 0x3587: 0x406ace20,
-	0x3588: 0x406ad020, 0x3589: 0x406ad220, 0x358a: 0x406ad420, 0x358b: 0x406ad620,
-	0x358c: 0x406ad820, 0x358d: 0x406ada20, 0x358e: 0x406adc20, 0x358f: 0x406ade20,
-	0x3590: 0x406ae020, 0x3591: 0x406ae220, 0x3592: 0x406ae420, 0x3593: 0x406ae620,
-	0x3594: 0x406ae820, 0x3595: 0x406aea20, 0x3596: 0x406aec20, 0x3597: 0x406aee20,
-	0x3598: 0x406af020, 0x3599: 0x406af220, 0x359a: 0x406af420, 0x359b: 0x406af620,
-	0x359c: 0x406af820, 0x359d: 0x406afa20, 0x359e: 0x406afc20, 0x359f: 0x406afe20,
-	0x35a0: 0x406b0020, 0x35a1: 0x406b0220, 0x35a2: 0x406b0420, 0x35a3: 0x406b0620,
-	0x35a4: 0x406b0820, 0x35a5: 0x406b0a20, 0x35a6: 0x406b0c20, 0x35a7: 0x406b0e20,
-	0x35a8: 0x406b1020, 0x35a9: 0x406b1220, 0x35aa: 0x406b1420, 0x35ab: 0x406b1620,
-	0x35ac: 0x406b1820, 0x35ad: 0x406b1a20, 0x35ae: 0x406b1c20, 0x35af: 0x406b1e20,
-	0x35b0: 0x406b2020, 0x35b1: 0x406b2220, 0x35b2: 0x406b2420, 0x35b3: 0x406b2620,
-	0x35b4: 0x406b2820, 0x35b5: 0x406b2a20, 0x35b6: 0x406b2c20, 0x35b7: 0x406b2e20,
-	0x35b8: 0x406b3020, 0x35b9: 0x406b3220, 0x35ba: 0x406b3420, 0x35bb: 0x406b3620,
-	0x35bc: 0x406b3820, 0x35bd: 0x406b3a20, 0x35be: 0x406b3c20, 0x35bf: 0x406b3e20,
-	// Block 0xd7, offset 0x35c0
-	0x35c0: 0x406b4020, 0x35c1: 0x406b4220, 0x35c2: 0x406b4420, 0x35c3: 0x406b4620,
-	0x35c4: 0x406b4820, 0x35c5: 0x406b4a20, 0x35c6: 0x406b4c20, 0x35c7: 0x406b4e20,
-	0x35c8: 0x406b5020, 0x35c9: 0x406b5220, 0x35ca: 0x406b5420, 0x35cb: 0x406b5620,
-	0x35cc: 0x406b5820, 0x35cd: 0x406b5a20, 0x35ce: 0x406b5c20, 0x35cf: 0x406b5e20,
-	0x35d0: 0x406b6020, 0x35d1: 0x406b6220, 0x35d2: 0x406b6420, 0x35d3: 0x406b6620,
-	0x35d4: 0x406b6820, 0x35d5: 0x406b6a20, 0x35d6: 0x406b6c20, 0x35d7: 0x406b6e20,
-	0x35d8: 0x406b7020, 0x35d9: 0x406b7220, 0x35da: 0x406b7420, 0x35db: 0x406b7620,
-	0x35dc: 0x406b7820, 0x35dd: 0x406b7a20, 0x35de: 0x406b7c20, 0x35df: 0x406b7e20,
-	0x35e0: 0x406b8020, 0x35e1: 0x406b8220, 0x35e2: 0x406b8420, 0x35e3: 0x406b8620,
-	0x35e4: 0x406b8820, 0x35e5: 0x406b8a20, 0x35e6: 0x406b8c20, 0x35e7: 0x406b8e20,
-	0x35e8: 0x406b9020, 0x35e9: 0x406b9220, 0x35ea: 0x406b9420, 0x35eb: 0x406b9620,
-	0x35ec: 0x406b9820, 0x35ed: 0x406b9a20, 0x35ee: 0x406b9c20, 0x35ef: 0x406b9e20,
-	0x35f0: 0x406ba020, 0x35f1: 0x406ba220, 0x35f2: 0x406ba420, 0x35f3: 0x406ba620,
-	0x35f4: 0x406ba820, 0x35f5: 0x406baa20, 0x35f6: 0x406bac20, 0x35f7: 0x406bae20,
-	0x35f8: 0x406bb020, 0x35f9: 0x406bb220, 0x35fa: 0x406bb420, 0x35fb: 0x406bb620,
-	0x35fc: 0x406bb820, 0x35fd: 0x406bba20, 0x35fe: 0x406bbc20, 0x35ff: 0x406bbe20,
-	// Block 0xd8, offset 0x3600
-	0x3600: 0x406bc020, 0x3601: 0x406bc220, 0x3602: 0x406bc420, 0x3603: 0x406bc620,
-	0x3604: 0x406bc820, 0x3605: 0x406bca20, 0x3606: 0x406bcc20, 0x3607: 0x406bce20,
-	0x3608: 0x406bd020, 0x3609: 0x406bd220, 0x360a: 0x406bd420, 0x360b: 0x406bd620,
-	0x360c: 0x406bd820, 0x360d: 0x406bda20, 0x360e: 0x406bdc20, 0x360f: 0x406bde20,
-	0x3610: 0x406be020, 0x3611: 0x406be220, 0x3612: 0x406be420, 0x3613: 0x406be620,
-	0x3614: 0x406be820, 0x3615: 0x406bea20, 0x3616: 0x406bec20, 0x3617: 0x406bee20,
-	0x3618: 0x406bf020, 0x3619: 0x406bf220, 0x361a: 0x406bf420, 0x361b: 0x406bf620,
-	0x361c: 0x406bf820, 0x361d: 0x406bfa20, 0x361e: 0x406bfc20, 0x361f: 0x406bfe20,
-	0x3620: 0x406c0020, 0x3621: 0x406c0220, 0x3622: 0x406c0420, 0x3623: 0x406c0620,
-	0x3624: 0x406c0820, 0x3625: 0x406c0a20, 0x3626: 0x406c0c20, 0x3627: 0x406c0e20,
-	0x3628: 0x406c1020, 0x3629: 0x406c1220, 0x362a: 0x406c1420, 0x362b: 0x406c1620,
-	0x362c: 0x406c1820, 0x362d: 0x406c1a20, 0x362e: 0x406c1c20, 0x362f: 0x406c1e20,
-	0x3630: 0x406c2020, 0x3631: 0x406c2220, 0x3632: 0x406c2420, 0x3633: 0x406c2620,
-	0x3634: 0x406c2820, 0x3635: 0x406c2a20, 0x3636: 0x406c2c20, 0x3637: 0x406c2e20,
-	0x3638: 0x406c3020, 0x3639: 0x406c3220, 0x363a: 0x406c3420, 0x363b: 0x406c3620,
-	0x363c: 0x406c3820, 0x363d: 0x406c3a20, 0x363e: 0x406c3c20, 0x363f: 0x406c3e20,
-	// Block 0xd9, offset 0x3640
-	0x3640: 0x406c4020, 0x3641: 0x406c4220, 0x3642: 0x406c4420, 0x3643: 0x406c4620,
-	0x3644: 0x406c4820, 0x3645: 0x406c4a20, 0x3646: 0x406c4c20, 0x3647: 0x406c4e20,
-	0x3648: 0x406c5020, 0x3649: 0x406c5220, 0x364a: 0x406c5420, 0x364b: 0x406c5620,
-	0x364c: 0x406c5820, 0x364d: 0x406c5a20, 0x364e: 0x406c5c20, 0x364f: 0x406c5e20,
-	0x3650: 0x406c6020, 0x3651: 0x406c6220, 0x3652: 0x406c6420, 0x3653: 0x406c6620,
-	0x3654: 0x406c6820, 0x3655: 0x406c6a20, 0x3656: 0x406c6c20, 0x3657: 0x406c6e20,
-	0x3658: 0x406c7020, 0x3659: 0x406c7220, 0x365a: 0x406c7420, 0x365b: 0x406c7620,
-	0x365c: 0x406c7820, 0x365d: 0x406c7a20, 0x365e: 0x406c7c20, 0x365f: 0x406c7e20,
-	0x3660: 0x406c8020, 0x3661: 0x406c8220, 0x3662: 0x406c8420, 0x3663: 0x406c8620,
-	0x3664: 0x406c8820, 0x3665: 0x406c8a20, 0x3666: 0x406c8c20, 0x3667: 0x406c8e20,
-	0x3668: 0x406c9020, 0x3669: 0x406c9220, 0x366a: 0x406c9420, 0x366b: 0x406c9620,
-	0x366c: 0x406c9820, 0x366d: 0x406c9a20, 0x366e: 0x406c9c20, 0x366f: 0x406c9e20,
-	0x3670: 0x406ca020, 0x3671: 0x406ca220, 0x3672: 0x406ca420, 0x3673: 0x406ca620,
-	0x3674: 0x406ca820, 0x3675: 0x406caa20, 0x3676: 0x406cac20, 0x3677: 0x406cae20,
-	0x3678: 0x406cb020, 0x3679: 0x406cb220, 0x367a: 0x406cb420, 0x367b: 0x406cb620,
-	0x367c: 0x406cb820, 0x367d: 0x406cba20, 0x367e: 0x406cbc20, 0x367f: 0x406cbe20,
-	// Block 0xda, offset 0x3680
-	0x3680: 0x406cc020, 0x3681: 0x406cc220, 0x3682: 0x406cc420, 0x3683: 0x406cc620,
-	0x3684: 0x406cc820, 0x3685: 0x406cca20, 0x3686: 0x406ccc20, 0x3687: 0x406cce20,
-	0x3688: 0x406cd020, 0x3689: 0x406cd220, 0x368a: 0x406cd420, 0x368b: 0x406cd620,
-	0x368c: 0x406cd820, 0x368d: 0x406cda20, 0x368e: 0x406cdc20, 0x368f: 0x406cde20,
-	0x3690: 0x406ce020, 0x3691: 0x406ce220, 0x3692: 0x406ce420, 0x3693: 0x406ce620,
-	0x3694: 0x406ce820, 0x3695: 0x406cea20, 0x3696: 0x406cec20, 0x3697: 0x406cee20,
-	0x3698: 0x406cf020, 0x3699: 0x406cf220, 0x369a: 0x406cf420, 0x369b: 0x406cf620,
-	0x369c: 0x406cf820, 0x369d: 0x406cfa20, 0x369e: 0x406cfc20, 0x369f: 0x406cfe20,
-	0x36a0: 0x406d0020, 0x36a1: 0x406d0220, 0x36a2: 0x406d0420, 0x36a3: 0x406d0620,
-	0x36a4: 0x406d0820, 0x36a5: 0x406d0a20, 0x36a6: 0x406d0c20, 0x36a7: 0x406d0e20,
-	0x36a8: 0x406d1020, 0x36a9: 0x406d1220, 0x36aa: 0x406d1420, 0x36ab: 0x406d1620,
-	0x36ac: 0x406d1820, 0x36ad: 0x406d1a20, 0x36ae: 0x406d1c20, 0x36af: 0x406d1e20,
-	0x36b0: 0x406d2020, 0x36b1: 0x406d2220, 0x36b2: 0x406d2420, 0x36b3: 0x406d2620,
-	0x36b4: 0x406d2820, 0x36b5: 0x406d2a20, 0x36b6: 0x406d2c20, 0x36b7: 0x406d2e20,
-	0x36b8: 0x406d3020, 0x36b9: 0x406d3220, 0x36ba: 0x406d3420, 0x36bb: 0x406d3620,
-	0x36bc: 0x406d3820, 0x36bd: 0x406d3a20, 0x36be: 0x406d3c20, 0x36bf: 0x406d3e20,
-	// Block 0xdb, offset 0x36c0
-	0x36c0: 0x406d4020, 0x36c1: 0x406d4220, 0x36c2: 0x406d4420, 0x36c3: 0x406d4620,
-	0x36c4: 0x406d4820, 0x36c5: 0x406d4a20, 0x36c6: 0x406d4c20, 0x36c7: 0x406d4e20,
-	0x36c8: 0x406d5020, 0x36c9: 0x406d5220, 0x36ca: 0x406d5420, 0x36cb: 0x406d5620,
-	0x36cc: 0x406d5820, 0x36cd: 0x406d5a20, 0x36ce: 0x406d5c20, 0x36cf: 0x406d5e20,
-	0x36d0: 0x406d6020, 0x36d1: 0x406d6220, 0x36d2: 0x406d6420, 0x36d3: 0x406d6620,
-	0x36d4: 0x406d6820, 0x36d5: 0x406d6a20, 0x36d6: 0x406d6c20, 0x36d7: 0x406d6e20,
-	0x36d8: 0x406d7020, 0x36d9: 0x406d7220, 0x36da: 0x406d7420, 0x36db: 0x406d7620,
-	0x36dc: 0x406d7820, 0x36dd: 0x406d7a20, 0x36de: 0x406d7c20, 0x36df: 0x406d7e20,
-	0x36e0: 0x406d8020, 0x36e1: 0x406d8220, 0x36e2: 0x406d8420, 0x36e3: 0x406d8620,
-	0x36e4: 0x406d8820, 0x36e5: 0x406d8a20, 0x36e6: 0x406d8c20, 0x36e7: 0x406d8e20,
-	0x36e8: 0x406d9020, 0x36e9: 0x406d9220, 0x36ea: 0x406d9420, 0x36eb: 0x406d9620,
-	0x36ec: 0x406d9820, 0x36ed: 0x406d9a20, 0x36ee: 0x406d9c20, 0x36ef: 0x406d9e20,
-	0x36f0: 0x406da020, 0x36f1: 0x406da220, 0x36f2: 0x406da420, 0x36f3: 0x406da620,
-	0x36f4: 0x406da820, 0x36f5: 0x406daa20, 0x36f6: 0x406dac20, 0x36f7: 0x406dae20,
-	0x36f8: 0x406db020, 0x36f9: 0x406db220, 0x36fa: 0x406db420, 0x36fb: 0x406db620,
-	0x36fc: 0x406db820, 0x36fd: 0x406dba20, 0x36fe: 0x406dbc20, 0x36ff: 0x406dbe20,
-	// Block 0xdc, offset 0x3700
-	0x3700: 0x406dc020, 0x3701: 0x406dc220, 0x3702: 0x406dc420, 0x3703: 0x406dc620,
-	0x3704: 0x406dc820, 0x3705: 0x406dca20, 0x3706: 0x406dcc20, 0x3707: 0x406dce20,
-	0x3708: 0x406dd020, 0x3709: 0x406dd220, 0x370a: 0x406dd420, 0x370b: 0x406dd620,
-	0x370c: 0x406dd820, 0x370d: 0x406dda20, 0x370e: 0x406ddc20, 0x370f: 0x406dde20,
-	0x3710: 0x406de020, 0x3711: 0x406de220, 0x3712: 0x406de420, 0x3713: 0x406de620,
-	0x3714: 0x406de820, 0x3715: 0x406dea20, 0x3716: 0x406dec20, 0x3717: 0x406dee20,
-	0x3718: 0x406df020, 0x3719: 0x406df220, 0x371a: 0x406df420, 0x371b: 0x406df620,
-	0x371c: 0x406df820, 0x371d: 0x406dfa20, 0x371e: 0x406dfc20, 0x371f: 0x406dfe20,
-	0x3720: 0x406e0020, 0x3721: 0x406e0220, 0x3722: 0x406e0420, 0x3723: 0x406e0620,
-	0x3724: 0x406e0820, 0x3725: 0x406e0a20, 0x3726: 0x406e0c20, 0x3727: 0x406e0e20,
-	0x3728: 0x406e1020, 0x3729: 0x406e1220, 0x372a: 0x406e1420, 0x372b: 0x406e1620,
-	0x372c: 0x406e1820, 0x372d: 0x406e1a20, 0x372e: 0x406e1c20, 0x372f: 0x406e1e20,
-	0x3730: 0x406e2020, 0x3731: 0x406e2220, 0x3732: 0x406e2420, 0x3733: 0x406e2620,
-	0x3734: 0x406e2820, 0x3735: 0x406e2a20, 0x3736: 0x406e2c20, 0x3737: 0x406e2e20,
-	0x3738: 0x406e3020, 0x3739: 0x406e3220, 0x373a: 0x406e3420, 0x373b: 0x406e3620,
-	0x373c: 0x406e3820, 0x373d: 0x406e3a20, 0x373e: 0x406e3c20, 0x373f: 0x406e3e20,
-	// Block 0xdd, offset 0x3740
-	0x3740: 0x406e4020, 0x3741: 0x406e4220, 0x3742: 0x406e4420, 0x3743: 0x406e4620,
-	0x3744: 0x406e4820, 0x3745: 0x406e4a20, 0x3746: 0x406e4c20, 0x3747: 0x406e4e20,
-	0x3748: 0x406e5020, 0x3749: 0x406e5220, 0x374a: 0x406e5420, 0x374b: 0x406e5620,
-	0x374c: 0x406e5820, 0x374d: 0x406e5a20, 0x374e: 0x406e5c20, 0x374f: 0x406e5e20,
-	0x3750: 0x406e6020, 0x3751: 0x406e6220, 0x3752: 0x406e6420, 0x3753: 0x406e6620,
-	0x3754: 0x406e6820, 0x3755: 0x406e6a20, 0x3756: 0x406e6c20, 0x3757: 0x406e6e20,
-	0x3758: 0x406e7020, 0x3759: 0x406e7220, 0x375a: 0x406e7420, 0x375b: 0x406e7620,
-	0x375c: 0x406e7820, 0x375d: 0x406e7a20, 0x375e: 0x406e7c20, 0x375f: 0x406e7e20,
-	0x3760: 0x406e8020, 0x3761: 0x406e8220, 0x3762: 0x406e8420, 0x3763: 0x406e8620,
-	0x3764: 0x406e8820, 0x3765: 0x406e8a20, 0x3766: 0x406e8c20, 0x3767: 0x406e8e20,
-	0x3768: 0x406e9020, 0x3769: 0x406e9220, 0x376a: 0x406e9420, 0x376b: 0x406e9620,
-	0x376c: 0x406e9820, 0x376d: 0x406e9a20, 0x376e: 0x406e9c20, 0x376f: 0x406e9e20,
-	0x3770: 0x406ea020, 0x3771: 0x406ea220, 0x3772: 0x406ea420, 0x3773: 0x406ea620,
-	0x3774: 0x406ea820, 0x3775: 0x406eaa20, 0x3776: 0x406eac20, 0x3777: 0x406eae20,
-	0x3778: 0x406eb020, 0x3779: 0x406eb220, 0x377a: 0x406eb420, 0x377b: 0x406eb620,
-	0x377c: 0x406eb820, 0x377d: 0x406eba20, 0x377e: 0x406ebc20, 0x377f: 0x406ebe20,
-	// Block 0xde, offset 0x3780
-	0x3780: 0x406ec020, 0x3781: 0x406ec220, 0x3782: 0x406ec420, 0x3783: 0x406ec620,
-	0x3784: 0x406ec820, 0x3785: 0x406eca20, 0x3786: 0x406ecc20, 0x3787: 0x406ece20,
-	0x3788: 0x406ed020, 0x3789: 0x406ed220, 0x378a: 0x406ed420, 0x378b: 0x406ed620,
-	0x378c: 0x406ed820, 0x378d: 0x406eda20, 0x378e: 0x406edc20, 0x378f: 0x406ede20,
-	0x3790: 0x406ee020, 0x3791: 0x406ee220, 0x3792: 0x406ee420, 0x3793: 0x406ee620,
-	0x3794: 0x406ee820, 0x3795: 0x406eea20, 0x3796: 0x406eec20, 0x3797: 0x406eee20,
-	0x3798: 0x406ef020, 0x3799: 0x406ef220, 0x379a: 0x406ef420, 0x379b: 0x406ef620,
-	0x379c: 0x406ef820, 0x379d: 0x406efa20, 0x379e: 0x406efc20, 0x379f: 0x406efe20,
-	0x37a0: 0x406f0020, 0x37a1: 0x406f0220, 0x37a2: 0x406f0420, 0x37a3: 0x406f0620,
-	0x37a4: 0x406f0820, 0x37a5: 0x406f0a20, 0x37a6: 0x406f0c20, 0x37a7: 0x406f0e20,
-	0x37a8: 0x406f1020, 0x37a9: 0x406f1220, 0x37aa: 0x406f1420, 0x37ab: 0x406f1620,
-	0x37ac: 0x406f1820, 0x37ad: 0x406f1a20, 0x37ae: 0x406f1c20, 0x37af: 0x406f1e20,
-	0x37b0: 0x406f2020, 0x37b1: 0x406f2220, 0x37b2: 0x406f2420, 0x37b3: 0x406f2620,
-	0x37b4: 0x406f2820, 0x37b5: 0x406f2a20, 0x37b6: 0x406f2c20, 0x37b7: 0x406f2e20,
-	0x37b8: 0x406f3020, 0x37b9: 0x406f3220, 0x37ba: 0x406f3420, 0x37bb: 0x406f3620,
-	0x37bc: 0x406f3820, 0x37bd: 0x406f3a20, 0x37be: 0x406f3c20, 0x37bf: 0x406f3e20,
-	// Block 0xdf, offset 0x37c0
-	0x37c0: 0x406f4020, 0x37c1: 0x406f4220, 0x37c2: 0x406f4420, 0x37c3: 0x406f4620,
-	0x37c4: 0x406f4820, 0x37c5: 0x406f4a20, 0x37c6: 0x406f4c20, 0x37c7: 0x406f4e20,
-	0x37c8: 0x406f5020, 0x37c9: 0x406f5220, 0x37ca: 0x406f5420, 0x37cb: 0x406f5620,
-	0x37cc: 0x406f5820,
-	0x37d0: 0x401a9020, 0x37d1: 0x401a9220, 0x37d2: 0x401a9420, 0x37d3: 0x401a9620,
-	0x37d4: 0x401a9820, 0x37d5: 0x401a9a20, 0x37d6: 0x401a9c20, 0x37d7: 0x401a9e20,
-	0x37d8: 0x401aa020, 0x37d9: 0x401aa220, 0x37da: 0x401aa420, 0x37db: 0x401aa620,
-	0x37dc: 0x401aa820, 0x37dd: 0x401aaa20, 0x37de: 0x401aac20, 0x37df: 0x401aae20,
-	0x37e0: 0x401ab020, 0x37e1: 0x401ab220, 0x37e2: 0x401ab420, 0x37e3: 0x401ab620,
-	0x37e4: 0x401ab820, 0x37e5: 0x401aba20, 0x37e6: 0x401abc20, 0x37e7: 0x401abe20,
-	0x37e8: 0x401ac020, 0x37e9: 0x401ac220, 0x37ea: 0x401ac420, 0x37eb: 0x401ac620,
-	0x37ec: 0x401ac820, 0x37ed: 0x401aca20, 0x37ee: 0x401acc20, 0x37ef: 0x401ace20,
-	0x37f0: 0x401ad020, 0x37f1: 0x401ad220, 0x37f2: 0x401ad420, 0x37f3: 0x401ad620,
-	0x37f4: 0x401ad820, 0x37f5: 0x401ada20, 0x37f6: 0x401adc20, 0x37f7: 0x401ade20,
-	0x37f8: 0x401ae020, 0x37f9: 0x401ae220, 0x37fa: 0x401ae420, 0x37fb: 0x401ae620,
-	0x37fc: 0x401ae820, 0x37fd: 0x401aea20, 0x37fe: 0x401aec20, 0x37ff: 0x401aee20,
-	// Block 0xe0, offset 0x3800
-	0x3800: 0x401af020, 0x3801: 0x401af220, 0x3802: 0x401af420, 0x3803: 0x401af620,
-	0x3804: 0x401af820, 0x3805: 0x401afa20, 0x3806: 0x401afc20,
-	0x3810: 0x406f6620, 0x3811: 0x406f6820, 0x3812: 0x406f6a20, 0x3813: 0x406f6c20,
-	0x3814: 0x406f6e20, 0x3815: 0x406f7020, 0x3816: 0x406f7220, 0x3817: 0x406f7420,
-	0x3818: 0x406f7620, 0x3819: 0x406f7820, 0x381a: 0x406f7a20, 0x381b: 0x406f7c20,
-	0x381c: 0x406f7e20, 0x381d: 0x406f8020, 0x381e: 0x406f8220, 0x381f: 0x406f8420,
-	0x3820: 0x406f8620, 0x3821: 0x406f8820, 0x3822: 0x406f8a20, 0x3823: 0x406f8c20,
-	0x3824: 0x406f8e20, 0x3825: 0x406f9020, 0x3826: 0x406f9220, 0x3827: 0x406f9420,
-	0x3828: 0x406f9620, 0x3829: 0x406f9820, 0x382a: 0x406f9e20, 0x382b: 0x406f9a20,
-	0x382c: 0x406fa020, 0x382d: 0x406f9c20, 0x382e: 0x406fa220, 0x382f: 0x406fa420,
-	0x3830: 0x406fa620, 0x3831: 0x406fa820, 0x3832: 0x406faa20, 0x3833: 0x406fac20,
-	0x3834: 0x406fae20, 0x3835: 0x406fb020, 0x3836: 0x406fb220, 0x3837: 0x406fb420,
-	0x3838: 0x406f5a20, 0x3839: 0x406f5c20, 0x383a: 0x406f5e20, 0x383b: 0x406f6020,
-	0x383c: 0x406f6420, 0x383d: 0x406f6220, 0x383e: 0x40025620, 0x383f: 0x4002fe20,
-	// Block 0xe1, offset 0x3840
-	0x3840: 0x405b8020, 0x3841: 0x405b8220, 0x3842: 0x405b8420, 0x3843: 0x405b8620,
-	0x3844: 0x405b8820, 0x3845: 0x405b8a20, 0x3846: 0x405b8c20, 0x3847: 0x405b8e20,
-	0x3848: 0x405b9020, 0x3849: 0x405b9220, 0x384a: 0x405b9420, 0x384b: 0x405b9620,
-	0x384c: 0x405b9820, 0x384d: 0x405b9a20, 0x384e: 0x405b9c20, 0x384f: 0x405b9e20,
-	0x3850: 0x405ba020, 0x3851: 0x405ba220, 0x3852: 0x405ba420, 0x3853: 0x405ba620,
-	0x3854: 0x405ba820, 0x3855: 0x405baa20, 0x3856: 0x405bac20, 0x3857: 0x405bae20,
-	0x3858: 0x405bb020, 0x3859: 0x405bb220, 0x385a: 0x405bb420, 0x385b: 0x405bb620,
-	0x385c: 0x405bb820, 0x385d: 0x405bba20, 0x385e: 0x405bbc20, 0x385f: 0x405bbe20,
-	0x3860: 0x405bc020, 0x3861: 0x405bc220, 0x3862: 0x405bc420, 0x3863: 0x405bc620,
-	0x3864: 0x405bc820, 0x3865: 0x405bca20, 0x3866: 0x405bcc20, 0x3867: 0x405bce20,
-	0x3868: 0x405bd020, 0x3869: 0x405bd220, 0x386a: 0x405bd420, 0x386b: 0x405bd620,
-	0x386c: 0x405bd820, 0x386d: 0x405bda20, 0x386e: 0x405bdc20, 0x386f: 0x405bde20,
-	0x3870: 0x405be020, 0x3871: 0x405be220, 0x3872: 0x405be420, 0x3873: 0x405be620,
-	0x3874: 0x405be820, 0x3875: 0x405bea20, 0x3876: 0x405bec20, 0x3877: 0x405bee20,
-	0x3878: 0x405bf020, 0x3879: 0x405bf220, 0x387a: 0x405bf420, 0x387b: 0x405bf620,
-	0x387c: 0x405bf820, 0x387d: 0x405bfa20, 0x387e: 0x405bfc20, 0x387f: 0x405bfe20,
-	// Block 0xe2, offset 0x3880
-	0x3880: 0x405c0020, 0x3881: 0x405c0220, 0x3882: 0x405c0420, 0x3883: 0x405c0620,
-	0x3884: 0x405c0820, 0x3885: 0x405c0a20, 0x3886: 0x405c0c20, 0x3887: 0x405c0e20,
-	0x3888: 0x405c1020, 0x3889: 0x405c1220, 0x388a: 0x405c1420, 0x388b: 0x405c1620,
-	0x388c: 0x405c1820, 0x388d: 0x405c1a20, 0x388e: 0x405c1c20, 0x388f: 0x405c1e20,
-	0x3890: 0x405c2020, 0x3891: 0x405c2220, 0x3892: 0x405c2420, 0x3893: 0x405c2620,
-	0x3894: 0x405c2820, 0x3895: 0x405c2a20, 0x3896: 0x405c2c20, 0x3897: 0x405c2e20,
-	0x3898: 0x405c3020, 0x3899: 0x405c3220, 0x389a: 0x405c3420, 0x389b: 0x405c3620,
-	0x389c: 0x405c3820, 0x389d: 0x405c3a20, 0x389e: 0x405c3c20, 0x389f: 0x405c3e20,
-	0x38a0: 0x405c4020, 0x38a1: 0x405c4220, 0x38a2: 0x405c4420, 0x38a3: 0x405c4620,
-	0x38a4: 0x405c4820, 0x38a5: 0x405c4a20, 0x38a6: 0x405c4c20, 0x38a7: 0x405c4e20,
-	0x38a8: 0x405c5020, 0x38a9: 0x405c5220, 0x38aa: 0x405c5420, 0x38ab: 0x405c5620,
-	0x38ac: 0x405c5820, 0x38ad: 0x405c5a20, 0x38ae: 0x405c5c20, 0x38af: 0x405c5e20,
-	0x38b0: 0x405c6020, 0x38b1: 0x405c6220, 0x38b2: 0x405c6420, 0x38b3: 0x405c6620,
-	0x38b4: 0x405c6820, 0x38b5: 0x405c6a20, 0x38b6: 0x405c6c20, 0x38b7: 0x405c6e20,
-	0x38b8: 0x405c7020, 0x38b9: 0x405c7220, 0x38ba: 0x405c7420, 0x38bb: 0x405c7620,
-	0x38bc: 0x405c7820, 0x38bd: 0x405c7a20, 0x38be: 0x405c7c20, 0x38bf: 0x405c7e20,
-	// Block 0xe3, offset 0x38c0
-	0x38c0: 0x405c8020, 0x38c1: 0x405c8220, 0x38c2: 0x405c8420, 0x38c3: 0x405c8620,
-	0x38c4: 0x405c8820, 0x38c5: 0x405c8a20, 0x38c6: 0x405c8c20, 0x38c7: 0x405c8e20,
-	0x38c8: 0x405c9020, 0x38c9: 0x405c9220, 0x38ca: 0x405c9420, 0x38cb: 0x405c9620,
-	0x38cc: 0x405c9820, 0x38cd: 0x405c9a20, 0x38ce: 0x405c9c20, 0x38cf: 0x405c9e20,
-	0x38d0: 0x405ca020, 0x38d1: 0x405ca220, 0x38d2: 0x405ca420, 0x38d3: 0x405ca620,
-	0x38d4: 0x405ca820, 0x38d5: 0x405caa20, 0x38d6: 0x405cac20, 0x38d7: 0x405cae20,
-	0x38d8: 0x405cb020, 0x38d9: 0x405cb220, 0x38da: 0x405cb420, 0x38db: 0x405cb620,
-	0x38dc: 0x405cb820, 0x38dd: 0x405cba20, 0x38de: 0x405cbc20, 0x38df: 0x405cbe20,
-	0x38e0: 0x405cc020, 0x38e1: 0x405cc220, 0x38e2: 0x405cc420, 0x38e3: 0x405cc620,
-	0x38e4: 0x405cc820, 0x38e5: 0x405cca20, 0x38e6: 0x405ccc20, 0x38e7: 0x405cce20,
-	0x38e8: 0x405cd020, 0x38e9: 0x405cd220, 0x38ea: 0x405cd420, 0x38eb: 0x405cd620,
-	0x38ec: 0x405cd820, 0x38ed: 0x405cda20, 0x38ee: 0x405cdc20, 0x38ef: 0x405cde20,
-	0x38f0: 0x405ce020, 0x38f1: 0x405ce220, 0x38f2: 0x405ce420, 0x38f3: 0x405ce620,
-	0x38f4: 0x405ce820, 0x38f5: 0x405cea20, 0x38f6: 0x405cec20, 0x38f7: 0x405cee20,
-	0x38f8: 0x405cf020, 0x38f9: 0x405cf220, 0x38fa: 0x405cf420, 0x38fb: 0x405cf620,
-	0x38fc: 0x405cf820, 0x38fd: 0x405cfa20, 0x38fe: 0x405cfc20, 0x38ff: 0x405cfe20,
-	// Block 0xe4, offset 0x3900
-	0x3900: 0x405d0020, 0x3901: 0x405d0220, 0x3902: 0x405d0420, 0x3903: 0x405d0620,
-	0x3904: 0x405d0820, 0x3905: 0x405d0a20, 0x3906: 0x405d0c20, 0x3907: 0x405d0e20,
-	0x3908: 0x405d1020, 0x3909: 0x405d1220, 0x390a: 0x405d1420, 0x390b: 0x405d1620,
-	0x390c: 0x405d1820, 0x390d: 0x405d1a20, 0x390e: 0x405d1c20, 0x390f: 0x405d1e20,
-	0x3910: 0x405d2020, 0x3911: 0x405d2220, 0x3912: 0x405d2420, 0x3913: 0x405d2620,
-	0x3914: 0x405d2820, 0x3915: 0x405d2a20, 0x3916: 0x405d2c20, 0x3917: 0x405d2e20,
-	0x3918: 0x405d3020, 0x3919: 0x405d3220, 0x391a: 0x405d3420, 0x391b: 0x405d3620,
-	0x391c: 0x405d3820, 0x391d: 0x405d3a20, 0x391e: 0x405d3c20, 0x391f: 0x405d3e20,
-	0x3920: 0x405d4020, 0x3921: 0x405d4220, 0x3922: 0x405d4420, 0x3923: 0x405d4620,
-	0x3924: 0x405d4820, 0x3925: 0x405d4a20, 0x3926: 0x405d4c20, 0x3927: 0x405d4e20,
-	0x3928: 0x405d5020, 0x3929: 0x405d5220, 0x392a: 0x405d5420, 0x392b: 0x405d5620,
-	0x392c: 0x405d5820, 0x392d: 0x405d5a20, 0x392e: 0x405d5c20, 0x392f: 0x405d5e20,
-	0x3930: 0x405d6020, 0x3931: 0x405d6220, 0x3932: 0x405d6420, 0x3933: 0x405d6620,
-	0x3934: 0x405d6820, 0x3935: 0x405d6a20, 0x3936: 0x405d6c20, 0x3937: 0x405d6e20,
-	0x3938: 0x405d7020, 0x3939: 0x405d7220, 0x393a: 0x405d7420, 0x393b: 0x405d7620,
-	0x393c: 0x405d7820, 0x393d: 0x405d7a20, 0x393e: 0x405d7c20, 0x393f: 0x405d7e20,
-	// Block 0xe5, offset 0x3940
-	0x3940: 0x405d8020, 0x3941: 0x405d8220, 0x3942: 0x405d8420, 0x3943: 0x405d8620,
-	0x3944: 0x405d8820, 0x3945: 0x405d8a20, 0x3946: 0x405d8c20, 0x3947: 0x405d8e20,
-	0x3948: 0x405d9020, 0x3949: 0x405d9220, 0x394a: 0x405d9420, 0x394b: 0x405d9620,
-	0x394c: 0x405d9820, 0x394d: 0x40025820, 0x394e: 0x40030020, 0x394f: 0x4002d820,
-	0x3950: 0x005c3084, 0x3951: 0x005c5484, 0x3952: 0x005c8e84, 0x3953: 0xe00020fb,
-	0x3954: 0xe00020fe, 0x3955: 0xe0002101, 0x3956: 0xe0002104, 0x3957: 0xe0002107,
-	0x3958: 0xe000210a, 0x3959: 0xe000210d, 0x395a: 0xe0002110, 0x395b: 0xe0002113,
-	0x395c: 0xe0002116, 0x395d: 0xe0002119, 0x395e: 0xe000211c, 0x395f: 0xe000211f,
-	0x3960: 0xe00001cd, 0x3961: 0xe0000261, 0x3962: 0xe0000379, 0x3963: 0xe0000453,
-	0x3964: 0xe0000528, 0x3965: 0xe00005f2, 0x3966: 0xe00006bd, 0x3967: 0xe0000765,
-	0x3968: 0xe0000811, 0x3969: 0xe00008b6, 0x396a: 0x005c5c84, 0x396b: 0x005d2284,
-	// Block 0xe6, offset 0x3980
-	0x3980: 0x0033ec88, 0x3981: 0x4033ec20, 0x3982: 0x0033fa88, 0x3983: 0x4033fa20,
-	0x3984: 0x00340488, 0x3985: 0x40340420, 0x3986: 0x00343488, 0x3987: 0x40343420,
-	0x3988: 0x00344e88, 0x3989: 0x40344e20, 0x398a: 0x0035a288, 0x398b: 0x4035a220,
-	0x398c: 0x0035f088, 0x398d: 0x4035f020, 0x398e: 0x00366e88, 0x398f: 0x40366e20,
-	0x3990: 0x00367c88, 0x3991: 0x40367c20, 0x3992: 0x0036a688, 0x3993: 0x4036a620,
-	0x3994: 0x0036c088, 0x3995: 0x4036c020, 0x3996: 0x0036c288, 0x3997: 0x4036c220,
-	0x3998: 0x0036de88, 0x3999: 0x4036de20, 0x399a: 0x0036e888, 0x399b: 0x4036e820,
-	0x399c: 0x0036f288, 0x399d: 0x4036f220, 0x399e: 0x00372488, 0x399f: 0x40372420,
-	0x39a0: 0x00360a88, 0x39a1: 0x40360a20, 0x39a2: 0x00339e88, 0x39a3: 0x40339e20,
-	0x39a4: 0x0034a288, 0x39a5: 0x4034a220, 0x39a6: 0x0034b888, 0x39a7: 0x4034b820,
-	0x39a8: 0x0034ee8a, 0x39a9: 0x0034ee84, 0x39aa: 0x0034ee8a, 0x39ab: 0x0034ee84,
-	0x39ac: 0x0034ee8a, 0x39ad: 0x0034ee84, 0x39ae: 0x0034ee84, 0x39af: 0xae608402,
-	0x39b0: 0xa0000000, 0x39b1: 0xa0000000, 0x39b2: 0xa0000000, 0x39b3: 0x4004e020,
-	0x39b4: 0x84e619e1, 0x39b5: 0x84e61a0a, 0x39b6: 0x84e61a1b, 0x39b7: 0x84e61ab9,
-	0x39b8: 0x84e61b3a, 0x39b9: 0x84e61b3f, 0x39ba: 0x84e61b47, 0x39bb: 0x84e61af0,
-	0x39bc: 0xae605f02, 0x39bd: 0xae605f02, 0x39be: 0x40054c20, 0x39bf: 0x40367220,
-	// Block 0xe7, offset 0x39c0
-	0x39c0: 0x00339488, 0x39c1: 0x40339420, 0x39c2: 0x00341288, 0x39c3: 0x40341220,
-	0x39c4: 0x0033d288, 0x39c5: 0x4033d220, 0x39c6: 0x00364288, 0x39c7: 0x40364220,
-	0x39c8: 0x00340e88, 0x39c9: 0x40340e20, 0x39ca: 0x00356088, 0x39cb: 0x40356020,
-	0x39cc: 0x00355488, 0x39cd: 0x40355420, 0x39ce: 0x00360c88, 0x39cf: 0x40360c20,
-	0x39d0: 0x00361688, 0x39d1: 0x40361620, 0x39d2: 0x00362088, 0x39d3: 0x40362020,
-	0x39d4: 0x0035de88, 0x39d5: 0x4035de20, 0x39d6: 0x00366488, 0x39d7: 0x40366420,
-	0x39df: 0x84e61b67,
-	0x39e0: 0x405d9a20, 0x39e1: 0x405d9c20, 0x39e2: 0x405d9e20, 0x39e3: 0x405da020,
-	0x39e4: 0x405da220, 0x39e5: 0x405da420, 0x39e6: 0x405da620, 0x39e7: 0x405da820,
-	0x39e8: 0x405daa20, 0x39e9: 0x405dac20, 0x39ea: 0x405dae20, 0x39eb: 0x405db020,
-	0x39ec: 0x405db220, 0x39ed: 0x405db420, 0x39ee: 0x405db620, 0x39ef: 0x405db820,
-	0x39f0: 0x405dba20, 0x39f1: 0x405dbc20, 0x39f2: 0x405dbe20, 0x39f3: 0x405dc020,
-	0x39f4: 0x405dc220, 0x39f5: 0x405dc420, 0x39f6: 0x405dc620, 0x39f7: 0x405dc820,
-	0x39f8: 0x405dca20, 0x39f9: 0x405dcc20, 0x39fa: 0x405dce20, 0x39fb: 0x405dd020,
-	0x39fc: 0x405dd220, 0x39fd: 0x405dd420, 0x39fe: 0x405dd620, 0x39ff: 0x405dd820,
-	// Block 0xe8, offset 0x3a00
-	0x3a00: 0x405dda20, 0x3a01: 0x405ddc20, 0x3a02: 0x405dde20, 0x3a03: 0x405de020,
-	0x3a04: 0x405de220, 0x3a05: 0x405de420, 0x3a06: 0x405de620, 0x3a07: 0x405de820,
-	0x3a08: 0x405dea20, 0x3a09: 0x405dec20, 0x3a0a: 0x405dee20, 0x3a0b: 0x405df020,
-	0x3a0c: 0x405df220, 0x3a0d: 0x405df420, 0x3a0e: 0x405df620, 0x3a0f: 0x405df820,
-	0x3a10: 0x405dfa20, 0x3a11: 0x405dfc20, 0x3a12: 0x405dfe20, 0x3a13: 0x405e0020,
-	0x3a14: 0x405e0220, 0x3a15: 0x405e0420, 0x3a16: 0x405e0620, 0x3a17: 0x405e0820,
-	0x3a18: 0x405e0a20, 0x3a19: 0x405e0c20, 0x3a1a: 0x405e0e20, 0x3a1b: 0x405e1020,
-	0x3a1c: 0x405e1220, 0x3a1d: 0x405e1420, 0x3a1e: 0x405e1620, 0x3a1f: 0x405e1820,
-	0x3a20: 0x405e1a20, 0x3a21: 0x405e1c20, 0x3a22: 0x405e1e20, 0x3a23: 0x405e2020,
-	0x3a24: 0x405e2220, 0x3a25: 0x405e2420, 0x3a26: 0x405e2620, 0x3a27: 0x405e2820,
-	0x3a28: 0x405e2a20, 0x3a29: 0x405e2c20, 0x3a2a: 0x405e2e20, 0x3a2b: 0x405e3020,
-	0x3a2c: 0x405e3220, 0x3a2d: 0x405e3420, 0x3a2e: 0x405e3620, 0x3a2f: 0x405e3820,
-	0x3a30: 0xae60ef02, 0x3a31: 0xae60f002, 0x3a32: 0x40038220, 0x3a33: 0x40030220,
-	0x3a34: 0x4002b820, 0x3a35: 0x40025a20, 0x3a36: 0x40026a20, 0x3a37: 0x4002da20,
-	// Block 0xe9, offset 0x3a40
-	0x3a40: 0x4006ba20, 0x3a41: 0x4006bc20, 0x3a42: 0x4006be20, 0x3a43: 0x4006c020,
-	0x3a44: 0x4006c220, 0x3a45: 0x4006c420, 0x3a46: 0x4006c620, 0x3a47: 0x4006c820,
-	0x3a48: 0x4006ca20, 0x3a49: 0x4006cc20, 0x3a4a: 0x4006ce20, 0x3a4b: 0x4006d020,
-	0x3a4c: 0x4006d220, 0x3a4d: 0x4006d420, 0x3a4e: 0x4006d620, 0x3a4f: 0x4006d820,
-	0x3a50: 0x4006da20, 0x3a51: 0x4006dc20, 0x3a52: 0x4006de20, 0x3a53: 0x4006e020,
-	0x3a54: 0x4006e220, 0x3a55: 0x4006e420, 0x3a56: 0x4006e620, 0x3a57: 0x4006e820,
-	0x3a58: 0x4006ea20, 0x3a59: 0x4006ec20, 0x3a5a: 0x4006ee20, 0x3a5b: 0x4006f020,
-	0x3a5c: 0x4006f220, 0x3a5d: 0x4006f420, 0x3a5e: 0x4006f620, 0x3a5f: 0x4006f820,
-	0x3a60: 0x4006fa20, 0x3a61: 0x4006fc20, 0x3a62: 0x0031e488, 0x3a63: 0x4031e420,
-	0x3a64: 0x0031f888, 0x3a65: 0x4031f820, 0x3a66: 0x002d8c88, 0x3a67: 0x402d8c20,
-	0x3a68: 0xe0000fd5, 0x3a69: 0xe0000fd2, 0x3a6a: 0x0031ae88, 0x3a6b: 0x4031ae20,
-	0x3a6c: 0x0031b088, 0x3a6d: 0x4031b020, 0x3a6e: 0x0031b288, 0x3a6f: 0x4031b220,
-	0x3a70: 0x402d1020, 0x3a71: 0x402fee20, 0x3a72: 0xe00009cf, 0x3a73: 0xe00009cc,
-	0x3a74: 0xe00009ff, 0x3a75: 0xe00009fc, 0x3a76: 0xe0000a05, 0x3a77: 0xe0000a02,
-	0x3a78: 0xe0000a0e, 0x3a79: 0xe0000a0b, 0x3a7a: 0xe0000a15, 0x3a7b: 0xe0000a11,
-	0x3a7c: 0xe0000a1c, 0x3a7d: 0xe0000a19, 0x3a7e: 0x002c6088, 0x3a7f: 0x402c6020,
-	// Block 0xea, offset 0x3a80
-	0x3a80: 0x002e1488, 0x3a81: 0x402e1420, 0x3a82: 0x002e1688, 0x3a83: 0x402e1620,
-	0x3a84: 0x002e1888, 0x3a85: 0x402e1820, 0x3a86: 0x002e3288, 0x3a87: 0x402e3220,
-	0x3a88: 0x002e3688, 0x3a89: 0x402e3620, 0x3a8a: 0x002f1888, 0x3a8b: 0x402f1820,
-	0x3a8c: 0x002f0888, 0x3a8d: 0x402f0820, 0x3a8e: 0xe0000ea1, 0x3a8f: 0xe0000e9e,
-	0x3a90: 0x002f3888, 0x3a91: 0x402f3820, 0x3a92: 0x002f4688, 0x3a93: 0x402f4620,
-	0x3a94: 0x002f4888, 0x3a95: 0x402f4820, 0x3a96: 0x002f5e88, 0x3a97: 0x402f5e20,
-	0x3a98: 0x002f6088, 0x3a99: 0x402f6020, 0x3a9a: 0x002f8a88, 0x3a9b: 0x402f8a20,
-	0x3a9c: 0x002fe488, 0x3a9d: 0x402fe420, 0x3a9e: 0x0030c888, 0x3a9f: 0x4030c820,
-	0x3aa0: 0xe00010c6, 0x3aa1: 0xe00010c3, 0x3aa2: 0x00316288, 0x3aa3: 0x40316220,
-	0x3aa4: 0x00319088, 0x3aa5: 0x40319020, 0x3aa6: 0x00319288, 0x3aa7: 0x40319220,
-	0x3aa8: 0x00319c88, 0x3aa9: 0x40319c20, 0x3aaa: 0x00319e88, 0x3aab: 0x40319e20,
-	0x3aac: 0x0031a088, 0x3aad: 0x4031a020, 0x3aae: 0x0031a288, 0x3aaf: 0x4031a220,
-	0x3ab0: 0x0031a294, 0x3ab1: 0x402c9420, 0x3ab2: 0x402e6620, 0x3ab3: 0x402e9c20,
-	0x3ab4: 0x402ed820, 0x3ab5: 0x402fe020, 0x3ab6: 0x402fe220, 0x3ab7: 0x40306220,
-	0x3ab8: 0x4031a420, 0x3ab9: 0xe0000abc, 0x3aba: 0xe0000ab9, 0x3abb: 0xe0000b92,
-	0x3abc: 0xe0000b8f, 0x3abd: 0xe0000bdc, 0x3abe: 0x002d5688, 0x3abf: 0x402d5620,
-	// Block 0xeb, offset 0x3ac0
-	0x3ac0: 0x002e7088, 0x3ac1: 0x402e7020, 0x3ac2: 0xe0000f08, 0x3ac3: 0xe0000f05,
-	0x3ac4: 0xe0000f6d, 0x3ac5: 0xe0000f6a, 0x3ac6: 0xe0000fb7, 0x3ac7: 0xe0000fb4,
-	0x3ac8: 0x4006fe20, 0x3ac9: 0x40070020, 0x3aca: 0x40070220, 0x3acb: 0x0031e688,
-	0x3acc: 0x4031e620, 0x3acd: 0x00308888, 0x3ace: 0x402e5c20,
-	0x3ad0: 0x002ec488, 0x3ad1: 0x402ec420, 0x3ad2: 0x002c4c88, 0x3ad3: 0x402c4c20,
-	0x3ae0: 0xe0000bd6, 0x3ae1: 0xe0000bd3, 0x3ae2: 0xe0000ca5, 0x3ae3: 0xe0000ca2,
-	0x3ae4: 0xe0000d75, 0x3ae5: 0xe0000d72, 0x3ae6: 0xe0000ee2, 0x3ae7: 0xe0000edf,
-	0x3ae8: 0xe0000f4d, 0x3ae9: 0xe0000f4a, 0x3aea: 0x002d8088,
-	// Block 0xec, offset 0x3b00
-	0x3b38: 0xf0001414, 0x3b39: 0xe0000e97, 0x3b3a: 0x4030a820, 0x3b3b: 0x402d2020,
-	0x3b3c: 0x402f4a20, 0x3b3d: 0x402e9820, 0x3b3e: 0x402db220, 0x3b3f: 0x402e9a20,
-	// Block 0xed, offset 0x3b40
-	0x3b40: 0x4045aa20, 0x3b41: 0x4045ac20, 0x3b42: 0x4045ae20, 0x3b43: 0x4045b020,
-	0x3b44: 0x4045b220, 0x3b45: 0x4045b420, 0x3b46: 0x820922db, 0x3b47: 0x4045b820,
-	0x3b48: 0x4045ba20, 0x3b49: 0x4045bc20, 0x3b4a: 0x4045be20, 0x3b4b: 0xa000f302,
-	0x3b4c: 0x4045c020, 0x3b4d: 0x4045c220, 0x3b4e: 0x4045c420, 0x3b4f: 0x4045c620,
-	0x3b50: 0x4045c820, 0x3b51: 0x4045ca20, 0x3b52: 0x4045cc20, 0x3b53: 0x4045ce20,
-	0x3b54: 0x4045d020, 0x3b55: 0x4045d220, 0x3b56: 0x4045d420, 0x3b57: 0x4045d620,
-	0x3b58: 0x4045d820, 0x3b59: 0x4045da20, 0x3b5a: 0x4045dc20, 0x3b5b: 0x4045de20,
-	0x3b5c: 0x4045e020, 0x3b5d: 0x4045e220, 0x3b5e: 0x4045e420, 0x3b5f: 0x4045e620,
-	0x3b60: 0x4045e820, 0x3b61: 0x4045ea20, 0x3b62: 0x4045ec20, 0x3b63: 0x4045ee20,
-	0x3b64: 0x4045f020, 0x3b65: 0x4045f220, 0x3b66: 0x4045f420, 0x3b67: 0x4045f620,
-	0x3b68: 0x40075020, 0x3b69: 0x40075220, 0x3b6a: 0x40075420, 0x3b6b: 0x40075620,
-	0x3b70: 0x40284820, 0x3b71: 0x40284a20, 0x3b72: 0x40284c20, 0x3b73: 0x40284e20,
-	0x3b74: 0x40285020, 0x3b75: 0x40285220, 0x3b76: 0x40075820, 0x3b77: 0x40075a20,
-	0x3b78: 0x4027f020, 0x3b79: 0x40075c20,
-	// Block 0xee, offset 0x3b80
-	0x3b80: 0x404baa20, 0x3b81: 0x404bac20, 0x3b82: 0x404bae20, 0x3b83: 0x404bb020,
-	0x3b84: 0x404bb220, 0x3b85: 0x404bb420, 0x3b86: 0x404bb620, 0x3b87: 0x404bb820,
-	0x3b88: 0x404bc220, 0x3b89: 0x404bc420, 0x3b8a: 0x404bc620, 0x3b8b: 0x404bc820,
-	0x3b8c: 0x404bca20, 0x3b8d: 0x404bcc20, 0x3b8e: 0x404bce20, 0x3b8f: 0x404bd020,
-	0x3b90: 0x404bd220, 0x3b91: 0x404bd420, 0x3b92: 0x404bd620, 0x3b93: 0x404bd820,
-	0x3b94: 0x404bdc20, 0x3b95: 0x404bde20, 0x3b96: 0x404be020, 0x3b97: 0x404be220,
-	0x3b98: 0x404be820, 0x3b99: 0x404bee20, 0x3b9a: 0x404bf020, 0x3b9b: 0x404bf420,
-	0x3b9c: 0x404bf620, 0x3b9d: 0x404bfc20, 0x3b9e: 0x404c0620, 0x3b9f: 0x404c0820,
-	0x3ba0: 0x404c0a20, 0x3ba1: 0x404c0c20, 0x3ba2: 0x404bfe20, 0x3ba3: 0x404c0020,
-	0x3ba4: 0x404c0220, 0x3ba5: 0x404c0420, 0x3ba6: 0x404c0e20, 0x3ba7: 0x404bda20,
-	0x3ba8: 0x404be420, 0x3ba9: 0x404bba20, 0x3baa: 0x404bbc20, 0x3bab: 0x404bbe20,
-	0x3bac: 0x404bc020, 0x3bad: 0x404be620, 0x3bae: 0x404bf220, 0x3baf: 0x404bf820,
-	0x3bb0: 0x404bfa20, 0x3bb1: 0x404bea20, 0x3bb2: 0x404bec20, 0x3bb3: 0x404c1020,
-	0x3bb4: 0x4005e820, 0x3bb5: 0x4005ea20, 0x3bb6: 0x40031820, 0x3bb7: 0x40031a20,
-	// Block 0xef, offset 0x3bc0
-	0x3bc0: 0xa000f302, 0x3bc1: 0xa000f402, 0x3bc2: 0x4045f820, 0x3bc3: 0x4045fa20,
-	0x3bc4: 0x4045fc20, 0x3bc5: 0x4045fe20, 0x3bc6: 0x40460020, 0x3bc7: 0x40460220,
-	0x3bc8: 0x40460420, 0x3bc9: 0x40460620, 0x3bca: 0x40460820, 0x3bcb: 0x40460a20,
-	0x3bcc: 0x40460c20, 0x3bcd: 0x40460e20, 0x3bce: 0x40461020, 0x3bcf: 0x40461220,
-	0x3bd0: 0x40461420, 0x3bd1: 0x40461620, 0x3bd2: 0x40461820, 0x3bd3: 0x40461a20,
-	0x3bd4: 0x40461c20, 0x3bd5: 0x40461e20, 0x3bd6: 0x40462020, 0x3bd7: 0x40462220,
-	0x3bd8: 0x40462420, 0x3bd9: 0x40462620, 0x3bda: 0x40462820, 0x3bdb: 0x40462a20,
-	0x3bdc: 0x40462c20, 0x3bdd: 0x40462e20, 0x3bde: 0x40463020, 0x3bdf: 0x40463220,
-	0x3be0: 0x40463420, 0x3be1: 0x40463620, 0x3be2: 0x40463820, 0x3be3: 0x40463a20,
-	0x3be4: 0x40463c20, 0x3be5: 0x40463e20, 0x3be6: 0x40464020, 0x3be7: 0x40464220,
-	0x3be8: 0x40464420, 0x3be9: 0x40464620, 0x3bea: 0x40464820, 0x3beb: 0x40464a20,
-	0x3bec: 0x40464c20, 0x3bed: 0x40464e20, 0x3bee: 0x40465020, 0x3bef: 0x40465220,
-	0x3bf0: 0x40465420, 0x3bf1: 0x40465620, 0x3bf2: 0x40465820, 0x3bf3: 0x40465a20,
-	0x3bf4: 0x40465c20, 0x3bf5: 0x40465e20, 0x3bf6: 0x40466020, 0x3bf7: 0x40466220,
-	0x3bf8: 0x40466420, 0x3bf9: 0x40466620, 0x3bfa: 0x40466820, 0x3bfb: 0x40466a20,
-	0x3bfc: 0x40466c20, 0x3bfd: 0x40466e20, 0x3bfe: 0x40467020, 0x3bff: 0x40467220,
-	// Block 0xf0, offset 0x3c00
-	0x3c00: 0x40467420, 0x3c01: 0x40467620, 0x3c02: 0x40467820, 0x3c03: 0x40467a20,
-	0x3c04: 0x8209233e,
-	0x3c0e: 0x40031020, 0x3c0f: 0x40031220,
-	0x3c10: 0xe000018b, 0x3c11: 0xe000021c, 0x3c12: 0xe0000337, 0x3c13: 0xe0000411,
-	0x3c14: 0xe00004e6, 0x3c15: 0xe00005b0, 0x3c16: 0xe000067b, 0x3c17: 0xe0000723,
-	0x3c18: 0xe00007cf, 0x3c19: 0xe0000874,
-	0x3c20: 0xae600000, 0x3c21: 0xae600000, 0x3c22: 0xae600000, 0x3c23: 0xae600000,
-	0x3c24: 0xae600000, 0x3c25: 0xae600000, 0x3c26: 0xae600000, 0x3c27: 0xae600000,
-	0x3c28: 0xae600000, 0x3c29: 0xae600000, 0x3c2a: 0xae600000, 0x3c2b: 0xae600000,
-	0x3c2c: 0xae600000, 0x3c2d: 0xae600000, 0x3c2e: 0xae600000, 0x3c2f: 0xae600000,
-	0x3c30: 0xae600000, 0x3c31: 0xae600000, 0x3c32: 0x40404620, 0x3c33: 0x00404684,
-	0x3c34: 0x00404684, 0x3c35: 0x00404684, 0x3c36: 0x00404684, 0x3c37: 0x00404684,
-	0x3c38: 0x40056e20, 0x3c39: 0x40057020, 0x3c3a: 0x40057220, 0x3c3b: 0x40404820,
-	// Block 0xf1, offset 0x3c40
-	0x3c40: 0xe00001a9, 0x3c41: 0xe000023d, 0x3c42: 0xe0000355, 0x3c43: 0xe000042f,
-	0x3c44: 0xe0000504, 0x3c45: 0xe00005ce, 0x3c46: 0xe0000699, 0x3c47: 0xe0000741,
-	0x3c48: 0xe00007ed, 0x3c49: 0xe0000892, 0x3c4a: 0x404dd220, 0x3c4b: 0x404dd420,
-	0x3c4c: 0x404dd620, 0x3c4d: 0x404dd820, 0x3c4e: 0x404dda20, 0x3c4f: 0x404ddc20,
-	0x3c50: 0x404dde20, 0x3c51: 0x404de020, 0x3c52: 0x404de220, 0x3c53: 0x404de420,
-	0x3c54: 0x404de620, 0x3c55: 0x404de820, 0x3c56: 0x404dea20, 0x3c57: 0x404dec20,
-	0x3c58: 0x404dee20, 0x3c59: 0x404df020, 0x3c5a: 0x404df220, 0x3c5b: 0x404df420,
-	0x3c5c: 0x404df620, 0x3c5d: 0x404df820, 0x3c5e: 0x404dfa20, 0x3c5f: 0x404dfc20,
-	0x3c60: 0x404dfe20, 0x3c61: 0x404e0020, 0x3c62: 0x404e0220, 0x3c63: 0x404e0420,
-	0x3c64: 0x404e0620, 0x3c65: 0x404e0820, 0x3c66: 0x404e0a20, 0x3c67: 0x404e0c20,
-	0x3c68: 0x404e0e20, 0x3c69: 0x404e1020, 0x3c6a: 0x404e1220, 0x3c6b: 0xadc10f02,
-	0x3c6c: 0xadc11002, 0x3c6d: 0xadc11102, 0x3c6e: 0x4005f420, 0x3c6f: 0x40032020,
-	0x3c70: 0x404d8a20, 0x3c71: 0x404d8c20, 0x3c72: 0x404d8e20, 0x3c73: 0x404d9020,
-	0x3c74: 0x404d9220, 0x3c75: 0x404d9420, 0x3c76: 0x404d9620, 0x3c77: 0x404d9820,
-	0x3c78: 0x404d9a20, 0x3c79: 0x404d9c20, 0x3c7a: 0x404d9e20, 0x3c7b: 0x404da020,
-	0x3c7c: 0x404da220, 0x3c7d: 0x404da420, 0x3c7e: 0x404da620, 0x3c7f: 0x404da820,
-	// Block 0xf2, offset 0x3c80
-	0x3c80: 0x404daa20, 0x3c81: 0x404dac20, 0x3c82: 0x404dae20, 0x3c83: 0x404db020,
-	0x3c84: 0x404db220, 0x3c85: 0x404db420, 0x3c86: 0x404db620, 0x3c87: 0x404db820,
-	0x3c88: 0x404dba20, 0x3c89: 0x404dbc20, 0x3c8a: 0x404dbe20, 0x3c8b: 0x404dc020,
-	0x3c8c: 0x404dc220, 0x3c8d: 0x404dc420, 0x3c8e: 0x404dc620, 0x3c8f: 0x404dc820,
-	0x3c90: 0x404dca20, 0x3c91: 0x404dcc20, 0x3c92: 0x404dce20, 0x3c93: 0x820926e8,
-	0x3c9f: 0x40038420,
-	0x3ca0: 0x40636a20, 0x3ca1: 0x40636c20, 0x3ca2: 0x40636e20, 0x3ca3: 0x40637020,
-	0x3ca4: 0x40637220, 0x3ca5: 0x40637420, 0x3ca6: 0x40637620, 0x3ca7: 0x40637820,
-	0x3ca8: 0x40637a20, 0x3ca9: 0x40637c20, 0x3caa: 0x40637e20, 0x3cab: 0x40638020,
-	0x3cac: 0x40638220, 0x3cad: 0x40638420, 0x3cae: 0x40638620, 0x3caf: 0x40638820,
-	0x3cb0: 0x40638a20, 0x3cb1: 0x40638c20, 0x3cb2: 0x40638e20, 0x3cb3: 0x40639020,
-	0x3cb4: 0x40639220, 0x3cb5: 0x40639420, 0x3cb6: 0x40639620, 0x3cb7: 0x40639820,
-	0x3cb8: 0x40639a20, 0x3cb9: 0x40639c20, 0x3cba: 0x40639e20, 0x3cbb: 0x4063a020,
-	0x3cbc: 0x4063a220,
-	// Block 0xf3, offset 0x3cc0
-	0x3cc0: 0xa000f202, 0x3cc1: 0xa000f302, 0x3cc2: 0xa000f802, 0x3cc3: 0xa000f402,
-	0x3cc4: 0x4052b220, 0x3cc5: 0x4052b420, 0x3cc6: 0x4052b620, 0x3cc7: 0x4052b820,
-	0x3cc8: 0x4052ba20, 0x3cc9: 0x4052bc20, 0x3cca: 0x4052be20, 0x3ccb: 0x4052c020,
-	0x3ccc: 0x4052c220, 0x3ccd: 0x4052c420, 0x3cce: 0x4052c620, 0x3ccf: 0x4052c820,
-	0x3cd0: 0x4052ca20, 0x3cd1: 0x4052cc20, 0x3cd2: 0x4052ce20, 0x3cd3: 0x4052d020,
-	0x3cd4: 0x4052d220, 0x3cd5: 0x4052d420, 0x3cd6: 0x4052d620, 0x3cd7: 0x4052d820,
-	0x3cd8: 0x4052da20, 0x3cd9: 0x4052dc20, 0x3cda: 0x4052de20, 0x3cdb: 0x4052e020,
-	0x3cdc: 0x4052e220, 0x3cdd: 0x4052e420, 0x3cde: 0x4052e620, 0x3cdf: 0x4052e820,
-	0x3ce0: 0x4052ea20, 0x3ce1: 0x4052ec20, 0x3ce2: 0x4052ee20, 0x3ce3: 0x4052f020,
-	0x3ce4: 0x4052f220, 0x3ce5: 0x4052f420, 0x3ce6: 0x4052f620, 0x3ce7: 0x4052f820,
-	0x3ce8: 0x4052fa20, 0x3ce9: 0x4052fc20, 0x3cea: 0x4052fe20, 0x3ceb: 0x40530220,
-	0x3cec: 0x00530284, 0x3ced: 0x40530620, 0x3cee: 0x40530820, 0x3cef: 0x40530a20,
-	0x3cf0: 0x40530c20, 0x3cf1: 0x40530e20, 0x3cf2: 0x40531020, 0x3cf3: 0xa070f102,
-	0x3cf4: 0x40531220, 0x3cf5: 0x40532420, 0x3cf6: 0x40531620, 0x3cf7: 0x40531820,
-	0x3cf8: 0x40531a20, 0x3cf9: 0x40531c20, 0x3cfa: 0x40532020, 0x3cfb: 0x40532220,
-	0x3cfc: 0x40531420, 0x3cfd: 0x40531e20, 0x3cfe: 0x40530020, 0x3cff: 0x40530420,
-	// Block 0xf4, offset 0x3d00
-	0x3d00: 0x82092993, 0x3d01: 0x40036e20, 0x3d02: 0x40037020, 0x3d03: 0x40037220,
-	0x3d04: 0x40037420, 0x3d05: 0x40037620, 0x3d06: 0x40037820, 0x3d07: 0x4002b020,
-	0x3d08: 0x40033620, 0x3d09: 0x40033820, 0x3d0a: 0x40037a20, 0x3d0b: 0x40037c20,
-	0x3d0c: 0x40037e20, 0x3d0d: 0x40038020, 0x3d0f: 0x4027c020,
-	0x3d10: 0xe00001c1, 0x3d11: 0xe0000255, 0x3d12: 0xe000036d, 0x3d13: 0xe0000447,
-	0x3d14: 0xe000051c, 0x3d15: 0xe00005e6, 0x3d16: 0xe00006b1, 0x3d17: 0xe0000759,
-	0x3d18: 0xe0000805, 0x3d19: 0xe00008aa,
-	0x3d1e: 0x4005f620, 0x3d1f: 0x4005f820,
-	// Block 0xf5, offset 0x3d40
-	0x3d40: 0x40519c20, 0x3d41: 0x40519e20, 0x3d42: 0x4051a020, 0x3d43: 0x4051a220,
-	0x3d44: 0x4051a420, 0x3d45: 0x4051a620, 0x3d46: 0x4051a820, 0x3d47: 0x4051aa20,
-	0x3d48: 0x4051ac20, 0x3d49: 0x4051ae20, 0x3d4a: 0x4051b020, 0x3d4b: 0x4051b220,
-	0x3d4c: 0x4051b420, 0x3d4d: 0x4051b620, 0x3d4e: 0x4051b820, 0x3d4f: 0x4051ba20,
-	0x3d50: 0x4051bc20, 0x3d51: 0x4051be20, 0x3d52: 0x4051c020, 0x3d53: 0x4051c220,
-	0x3d54: 0x4051c420, 0x3d55: 0x4051c620, 0x3d56: 0x4051c820, 0x3d57: 0x4051ca20,
-	0x3d58: 0x4051cc20, 0x3d59: 0x4051ce20, 0x3d5a: 0x4051d020, 0x3d5b: 0x4051d220,
-	0x3d5c: 0x4051d420, 0x3d5d: 0x4051d620, 0x3d5e: 0x4051d820, 0x3d5f: 0x4051da20,
-	0x3d60: 0x4051dc20, 0x3d61: 0x4051de20, 0x3d62: 0x4051e020, 0x3d63: 0x4051e220,
-	0x3d64: 0x4051e420, 0x3d65: 0x4051e620, 0x3d66: 0x4051e820, 0x3d67: 0x4051ea20,
-	0x3d68: 0x4051ec20, 0x3d69: 0x4051f620, 0x3d6a: 0x4051f820, 0x3d6b: 0x4051fa20,
-	0x3d6c: 0x4051fc20, 0x3d6d: 0x4051fe20, 0x3d6e: 0x40520020, 0x3d6f: 0x40520220,
-	0x3d70: 0x40520420, 0x3d71: 0x40520620, 0x3d72: 0x40520820, 0x3d73: 0x4051ee20,
-	0x3d74: 0x4051f020, 0x3d75: 0x4051f220, 0x3d76: 0x4051f420,
-	// Block 0xf6, offset 0x3d80
-	0x3d80: 0x40520a20, 0x3d81: 0x40520c20, 0x3d82: 0x40520e20, 0x3d83: 0x40521020,
-	0x3d84: 0x40521220, 0x3d85: 0x40521420, 0x3d86: 0x40521620, 0x3d87: 0x40521820,
-	0x3d88: 0x40521a20, 0x3d89: 0x40521c20, 0x3d8a: 0x40521e20, 0x3d8b: 0x40522020,
-	0x3d8c: 0x40522220, 0x3d8d: 0x40522420,
-	0x3d90: 0xe00001bb, 0x3d91: 0xe000024f, 0x3d92: 0xe0000367, 0x3d93: 0xe0000441,
-	0x3d94: 0xe0000516, 0x3d95: 0xe00005e0, 0x3d96: 0xe00006ab, 0x3d97: 0xe0000753,
-	0x3d98: 0xe00007ff, 0x3d99: 0xe00008a4,
-	0x3d9c: 0x4005fa20, 0x3d9d: 0x40033a20, 0x3d9e: 0x40033c20, 0x3d9f: 0x40033e20,
-	0x3da0: 0x404e2020, 0x3da1: 0x404e2c20, 0x3da2: 0x404e3020, 0x3da3: 0x404e3420,
-	0x3da4: 0x404e3e20, 0x3da5: 0x404e4620, 0x3da6: 0x404e4c20, 0x3da7: 0x404e5020,
-	0x3da8: 0x404e5420, 0x3da9: 0x404e5820, 0x3daa: 0x404e6820, 0x3dab: 0x404e6e20,
-	0x3dac: 0x404ea820, 0x3dad: 0x404eae20, 0x3dae: 0x404eb220, 0x3daf: 0x404e7a20,
-	0x3db0: 0x4027c220, 0x3db1: 0x404eb420, 0x3db2: 0x404e3820, 0x3db3: 0x404e8e20,
-	0x3db4: 0x404f3a20, 0x3db5: 0x404f3c20, 0x3db6: 0x404f3e20, 0x3db7: 0x4007ac20,
-	0x3db8: 0x4007ae20, 0x3db9: 0x4007b020, 0x3dba: 0x404e9020, 0x3dbb: 0x404f3820,
-	// Block 0xf7, offset 0x3dc0
-	0x3dc0: 0x4049f020, 0x3dc1: 0x4049f220, 0x3dc2: 0x4049f420, 0x3dc3: 0x4049f620,
-	0x3dc4: 0x4049f820, 0x3dc5: 0x4049fa20, 0x3dc6: 0x4049fc20, 0x3dc7: 0x4049fe20,
-	0x3dc8: 0x404a0020, 0x3dc9: 0x404a0220, 0x3dca: 0x404a0420, 0x3dcb: 0x404a0620,
-	0x3dcc: 0x404a0820, 0x3dcd: 0x404a0a20, 0x3dce: 0x404a0c20, 0x3dcf: 0x404a0e20,
-	0x3dd0: 0x404a1020, 0x3dd1: 0x404a1220, 0x3dd2: 0x404a1420, 0x3dd3: 0x404a1620,
-	0x3dd4: 0x404a1820, 0x3dd5: 0x404a1a20, 0x3dd6: 0x404a1c20, 0x3dd7: 0x404a1e20,
-	0x3dd8: 0x404a2020, 0x3dd9: 0x404a2220, 0x3dda: 0x404a2420, 0x3ddb: 0x404a2620,
-	0x3ddc: 0x404a2820, 0x3ddd: 0x404a2a20, 0x3dde: 0x404a2c20, 0x3ddf: 0x404a2e20,
-	0x3de0: 0x404a3020, 0x3de1: 0x404a3220, 0x3de2: 0x404a3420, 0x3de3: 0x404a3620,
-	0x3de4: 0x404a3820, 0x3de5: 0x404a3a20, 0x3de6: 0x404a3c20, 0x3de7: 0x404a3e20,
-	0x3de8: 0x404a4020, 0x3de9: 0x404a4220, 0x3dea: 0x404a4420, 0x3deb: 0x404a4620,
-	0x3dec: 0x404a4820, 0x3ded: 0x404a4a20, 0x3dee: 0x404a4c20, 0x3def: 0x404a4e20,
-	0x3df0: 0x82e62528, 0x3df1: 0x404a5220, 0x3df2: 0x82e6252a, 0x3df3: 0x82e6252b,
-	0x3df4: 0x82dc252c, 0x3df5: 0xc20e0671, 0x3df6: 0xc23f0671, 0x3df7: 0x82e6252f,
-	0x3df8: 0x82e62530, 0x3df9: 0xc2700671, 0x3dfa: 0x404a6420, 0x3dfb: 0xc2a10671,
-	0x3dfc: 0xc2d20671, 0x3dfd: 0x404a6a20, 0x3dfe: 0x82e62536, 0x3dff: 0xae610c02,
-	// Block 0xf8, offset 0x3e00
-	0x3e00: 0x404a6e20, 0x3e01: 0xae610d02, 0x3e02: 0x404a7020,
-	0x3e1b: 0x404a7220,
-	0x3e1c: 0x404a7420, 0x3e1d: 0x4027c420, 0x3e1e: 0x40057e20, 0x3e1f: 0x40058020,
-	0x3e20: 0x40456420, 0x3e21: 0x40456620, 0x3e22: 0x40456820, 0x3e23: 0x40456a20,
-	0x3e24: 0x40456c20, 0x3e25: 0x40456e20, 0x3e26: 0x40457020, 0x3e27: 0x40457220,
-	0x3e28: 0x40457420, 0x3e29: 0x40457620, 0x3e2a: 0x40457820, 0x3e2b: 0x40458a20,
-	0x3e2c: 0x40458c20, 0x3e2d: 0x40458e20, 0x3e2e: 0x40459020, 0x3e2f: 0x40459220,
-	0x3e30: 0x40034020, 0x3e31: 0x4002dc20, 0x3e32: 0x40452c20, 0x3e33: 0x4027c620,
-	0x3e34: 0x4027c820, 0x3e35: 0x40459420, 0x3e36: 0x820922d4,
-	// Block 0xf9, offset 0x3e40
-	0x3e41: 0x403cae20, 0x3e42: 0x403cb020, 0x3e43: 0x403cb220,
-	0x3e44: 0x403cb420, 0x3e45: 0x403cb620, 0x3e46: 0x403cb820,
-	0x3e49: 0x403e3c20, 0x3e4a: 0x403e3e20, 0x3e4b: 0x403e4020,
-	0x3e4c: 0x403e4220, 0x3e4d: 0x403e4420, 0x3e4e: 0x403e4620,
-	0x3e51: 0x403dfe20, 0x3e52: 0x403e0020, 0x3e53: 0x403e0220,
-	0x3e54: 0x403e0420, 0x3e55: 0x403e0620, 0x3e56: 0x403e0820,
-	0x3e60: 0x403ec220, 0x3e61: 0x403ec420, 0x3e62: 0x403ec620, 0x3e63: 0x403ec820,
-	0x3e64: 0x403eca20, 0x3e65: 0x403ecc20, 0x3e66: 0x403ece20,
-	0x3e68: 0x403ef220, 0x3e69: 0x403ef420, 0x3e6a: 0x403ef620, 0x3e6b: 0x403ef820,
-	0x3e6c: 0x403efa20, 0x3e6d: 0x403efc20, 0x3e6e: 0x403efe20,
-	// Block 0xfa, offset 0x3e80
-	0x3e80: 0x40452e20, 0x3e81: 0x40453020, 0x3e82: 0x40453220, 0x3e83: 0x40453420,
-	0x3e84: 0x40453620, 0x3e85: 0x40453820, 0x3e86: 0x40453a20, 0x3e87: 0x40453c20,
-	0x3e88: 0x40453e20, 0x3e89: 0x40454020, 0x3e8a: 0x40454220, 0x3e8b: 0x40454420,
-	0x3e8c: 0x40454620, 0x3e8d: 0x40454820, 0x3e8e: 0x40454a20, 0x3e8f: 0x40454c20,
-	0x3e90: 0x40454e20, 0x3e91: 0x40455020, 0x3e92: 0x40455220, 0x3e93: 0x40455420,
-	0x3e94: 0x40455620, 0x3e95: 0x40455820, 0x3e96: 0x40455a20, 0x3e97: 0x40455c20,
-	0x3e98: 0x40455e20, 0x3e99: 0x40456020, 0x3e9a: 0x40456220, 0x3e9b: 0x40459620,
-	0x3e9c: 0x40459820, 0x3e9d: 0x40459a20, 0x3e9e: 0x40459c20, 0x3e9f: 0x40459e20,
-	0x3ea0: 0x4045a020, 0x3ea1: 0x4045a220, 0x3ea2: 0x4045a420, 0x3ea3: 0x40457a20,
-	0x3ea4: 0x40457c20, 0x3ea5: 0x40457e20, 0x3ea6: 0x40458020, 0x3ea7: 0x40458220,
-	0x3ea8: 0x40458420, 0x3ea9: 0x40458620, 0x3eaa: 0x40458820, 0x3eab: 0x40034220,
-	0x3eac: 0xa000fa02, 0x3ead: 0x820922d3,
-	0x3eb0: 0xe0000188, 0x3eb1: 0xe0000219, 0x3eb2: 0xe0000334, 0x3eb3: 0xe000040e,
-	0x3eb4: 0xe00004e3, 0x3eb5: 0xe00005ad, 0x3eb6: 0xe0000678, 0x3eb7: 0xe0000720,
-	0x3eb8: 0xe00007cc, 0x3eb9: 0xe0000871,
-	// Block 0xfb, offset 0x3ec0
-	0x3ef0: 0x40643620, 0x3ef1: 0x40643820, 0x3ef2: 0x40643a20, 0x3ef3: 0x40643c20,
-	0x3ef4: 0x40643e20, 0x3ef5: 0x40644020, 0x3ef6: 0x40644220, 0x3ef7: 0x40644420,
-	0x3ef8: 0x40644620, 0x3ef9: 0x40644820, 0x3efa: 0x40644a20, 0x3efb: 0x40644c20,
-	0x3efc: 0x40644e20, 0x3efd: 0x40645020, 0x3efe: 0x40645220, 0x3eff: 0x40645420,
-	// Block 0xfc, offset 0x3f00
-	0x3f00: 0x40645620, 0x3f01: 0x40645820, 0x3f02: 0x40645a20, 0x3f03: 0x40645c20,
-	0x3f04: 0x40645e20, 0x3f05: 0x40646020, 0x3f06: 0x40646220,
-	0x3f0b: 0x40651420,
-	0x3f0c: 0x40651620, 0x3f0d: 0x40651820, 0x3f0e: 0x40651a20, 0x3f0f: 0x40651c20,
-	0x3f10: 0x40651e20, 0x3f11: 0x40652020, 0x3f12: 0x40652220, 0x3f13: 0x40652420,
-	0x3f14: 0x40652620, 0x3f15: 0x40652820, 0x3f16: 0x40652a20, 0x3f17: 0x40652c20,
-	0x3f18: 0x40652e20, 0x3f19: 0x40653020, 0x3f1a: 0x40653220, 0x3f1b: 0x40653420,
-	0x3f1c: 0x40653620, 0x3f1d: 0x40653820, 0x3f1e: 0x40653a20, 0x3f1f: 0x40653c20,
-	0x3f20: 0x40653e20, 0x3f21: 0x40654020, 0x3f22: 0x40654220, 0x3f23: 0x40654420,
-	0x3f24: 0x40654620, 0x3f25: 0x40654820, 0x3f26: 0x40654a20, 0x3f27: 0x40654c20,
-	0x3f28: 0x40654e20, 0x3f29: 0x40655020, 0x3f2a: 0x40655220, 0x3f2b: 0x40655420,
-	0x3f2c: 0x40655620, 0x3f2d: 0x40655820, 0x3f2e: 0x40655a20, 0x3f2f: 0x40655c20,
-	0x3f30: 0x40655e20, 0x3f31: 0x40656020, 0x3f32: 0x40656220, 0x3f33: 0x40656420,
-	0x3f34: 0x40656620, 0x3f35: 0x40656820, 0x3f36: 0x40656a20, 0x3f37: 0x40656c20,
-	0x3f38: 0x40656e20, 0x3f39: 0x40657020, 0x3f3a: 0x40657220, 0x3f3b: 0x40657420,
-	// Block 0xfd, offset 0x3f40
-	0x3f40: 0x43189020, 0x3f41: 0x42cde820, 0x3f42: 0x431d9420, 0x3f43: 0x43199020,
-	0x3f44: 0x42dda220, 0x3f45: 0x429c6420, 0x3f46: 0x42a7ca20, 0x3f47: 0x433f3820,
-	0x3f48: 0x433f3820, 0x3f49: 0x42b2a220, 0x3f4a: 0x4323a220, 0x3f4b: 0x42ab0e20,
-	0x3f4c: 0x42b29020, 0x3f4d: 0x42c3ec20, 0x3f4e: 0x42ecd220, 0x3f4f: 0x42ff0a20,
-	0x3f50: 0x430c7e20, 0x3f51: 0x430f7420, 0x3f52: 0x4311f020, 0x3f53: 0x43211e20,
-	0x3f54: 0x42d40420, 0x3f55: 0x42da3620, 0x3f56: 0x42e1b220, 0x3f57: 0x42e7bc20,
-	0x3f58: 0x43087a20, 0x3f59: 0x4322d420, 0x3f5a: 0x4333e220, 0x3f5b: 0x429d0420,
-	0x3f5c: 0x42a6ea20, 0x3f5d: 0x42d60820, 0x3f5e: 0x42e43620, 0x3f5f: 0x430c5a20,
-	0x3f60: 0x433c3c20, 0x3f61: 0x42baa020, 0x3f62: 0x42dfd620, 0x3f63: 0x430b9a20,
-	0x3f64: 0x4312c820, 0x3f65: 0x42c59220, 0x3f66: 0x4303b020, 0x3f67: 0x43103e20,
-	0x3f68: 0x42bd9420, 0x3f69: 0x42ce2e20, 0x3f6a: 0x42dad420, 0x3f6b: 0x42e5f820,
-	0x3f6c: 0x43219c20, 0x3f6d: 0x429f0c20, 0x3f6e: 0x42a36e20, 0x3f6f: 0x42a5bc20,
-	0x3f70: 0x42c98820, 0x3f71: 0x42d5a620, 0x3f72: 0x42e42020, 0x3f73: 0x42edce20,
-	0x3f74: 0x43000220, 0x3f75: 0x430c0c20, 0x3f76: 0x430cb820, 0x3f77: 0x431bde20,
-	0x3f78: 0x432e6420, 0x3f79: 0x4336de20, 0x3f7a: 0x433bf420, 0x3f7b: 0x42f11820,
-	0x3f7c: 0x42f2fe20, 0x3f7d: 0x42fb4020, 0x3f7e: 0x43079220, 0x3f7f: 0x43260820,
-	// Block 0xfe, offset 0x3f80
-	0x3f80: 0x433cfe20, 0x3f81: 0x4315ac20, 0x3f82: 0x42b1be20, 0x3f83: 0x42be0820,
-	0x3f84: 0x42f8c020, 0x3f85: 0x4300fc20, 0x3f86: 0x42e4c420, 0x3f87: 0x42f19420,
-	0x3f88: 0x43198420, 0x3f89: 0x432dee20, 0x3f8a: 0x42b1b020, 0x3f8b: 0x42b8c420,
-	0x3f8c: 0x42d42620, 0x3f8d: 0x42dbb420, 0x3f8e: 0x42de1e20, 0x3f8f: 0x42fa5e20,
-	0x3f90: 0x42fc6e20, 0x3f91: 0x432c9620, 0x3f92: 0x42a5a420, 0x3f93: 0x43011620,
-	0x3f94: 0x42a3b820, 0x3f95: 0x42a39820, 0x3f96: 0x42f43820, 0x3f97: 0x42fb7c20,
-	0x3f98: 0x4307e220, 0x3f99: 0x432cea20, 0x3f9a: 0x43170020, 0x3f9b: 0x42c59e20,
-	0x3f9c: 0x42d40420, 0x3f9d: 0x4315fc20, 0x3f9e: 0x429c7220, 0x3f9f: 0x42b7ce20,
-	0x3fa0: 0x42c02420, 0x3fa1: 0x42e70e20, 0x3fa2: 0x42eae020, 0x3fa3: 0x42a62e20,
-	0x3fa4: 0x42f1f620, 0x3fa5: 0x429f7e20, 0x3fa6: 0x42bf5220, 0x3fa7: 0x429c1a20,
-	0x3fa8: 0x42d99820, 0x3fa9: 0x42caf020, 0x3faa: 0x42fa4420, 0x3fab: 0x42a78620,
-	0x3fac: 0x42b0bc20, 0x3fad: 0x42ee0220, 0x3fae: 0x43089220, 0x3faf: 0x43155420,
-	0x3fb0: 0x42d77420, 0x3fb1: 0x431f6020, 0x3fb2: 0x42d91020, 0x3fb3: 0x42c5fc20,
-	0x3fb4: 0x4305ca20, 0x3fb5: 0x42c74020, 0x3fb6: 0x42eaca20, 0x3fb7: 0x429d5c20,
-	0x3fb8: 0x42a2d220, 0x3fb9: 0x42a39220, 0x3fba: 0x42d10220, 0x3fbb: 0x42f9ce20,
-	0x3fbc: 0x4304de20, 0x3fbd: 0x4315a420, 0x3fbe: 0x43239e20, 0x3fbf: 0x42a5ea20,
-	// Block 0xff, offset 0x3fc0
-	0x3fc0: 0x42a88420, 0x3fc1: 0x42b2e620, 0x3fc2: 0x42bdd820, 0x3fc3: 0x42cb8a20,
-	0x3fc4: 0x42dffc20, 0x3fc5: 0x42f25420, 0x3fc6: 0x432b5a20, 0x3fc7: 0x4334d420,
-	0x3fc8: 0x433d2e20, 0x3fc9: 0x433d9c20, 0x3fca: 0x42a53620, 0x3fcb: 0x42cd8c20,
-	0x3fcc: 0x42d6ee20, 0x3fcd: 0x431ec420, 0x3fce: 0x42bce820, 0x3fcf: 0x42c32020,
-	0x3fd0: 0x42c40020, 0x3fd1: 0x42c93420, 0x3fd2: 0x42de4620, 0x3fd3: 0x42e29220,
-	0x3fd4: 0x42e91220, 0x3fd5: 0x42f39420, 0x3fd6: 0x42fbe820, 0x3fd7: 0x4300de20,
-	0x3fd8: 0x431e4c20, 0x3fd9: 0x4309dc20, 0x3fda: 0x43204620, 0x3fdb: 0x43269420,
-	0x3fdc: 0x42a42e20, 0x3fdd: 0x42a54620, 0x3fde: 0x42a97a20, 0x3fdf: 0x42e19020,
-	0x3fe0: 0x43118420, 0x3fe1: 0x43155420, 0x3fe2: 0x42bd9220, 0x3fe3: 0x42bfea20,
-	0x3fe4: 0x42c6f620, 0x3fe5: 0x42d75c20, 0x3fe6: 0x42f87c20, 0x3fe7: 0x42e6ea20,
-	0x3fe8: 0x429dc820, 0x3fe9: 0x42adf220, 0x3fea: 0x42b7ce20, 0x3feb: 0x42bb7420,
-	0x3fec: 0x42c03820, 0x3fed: 0x42e76420, 0x3fee: 0x42e8d220, 0x3fef: 0x42ff3420,
-	0x3ff0: 0x43008c20, 0x3ff1: 0x43246820, 0x3ff2: 0x432dec20, 0x3ff3: 0x432e9020,
-	0x3ff4: 0x43303020, 0x3ff5: 0x429f1620, 0x3ff6: 0x42f35c20, 0x3ff7: 0x43236820,
-	0x3ff8: 0x432d7020, 0x3ff9: 0x42c1c220, 0x3ffa: 0x429d0c20, 0x3ffb: 0x42a1b420,
-	0x3ffc: 0x42b7dc20, 0x3ffd: 0x42b87e20, 0x3ffe: 0x42cb3220, 0x3fff: 0x42d40420,
-	// Block 0x100, offset 0x4000
-	0x4000: 0x42e39c20, 0x4001: 0x42ec8420, 0x4002: 0x4309f820, 0x4003: 0x4320f820,
-	0x4004: 0x433f1a20, 0x4005: 0x42cd1020, 0x4006: 0x432c5c20, 0x4007: 0x42a51220,
-	0x4008: 0x42cef620, 0x4009: 0x42cfe620, 0x400a: 0x42da8220, 0x400b: 0x42dd3820,
-	0x400c: 0x42e81220, 0x400d: 0x42eab220, 0x400e: 0x42f0d620, 0x400f: 0x42fa2020,
-	0x4010: 0x4330bc20, 0x4011: 0x42a2da20, 0x4012: 0x42c45c20, 0x4013: 0x432cf020,
-	0x4014: 0x42a05620, 0x4015: 0x42ba3220, 0x4016: 0x42dbd420, 0x4017: 0x431e5420,
-	0x4018: 0x42bf1620, 0x4019: 0x42c28820, 0x401a: 0x42d02e20, 0x401b: 0x42e70e20,
-	0x401c: 0x432d0c20, 0x401d: 0x42a45220, 0x401e: 0x42a81e20, 0x401f: 0x42b8ca20,
-	0x4020: 0x42cc2620, 0x4021: 0x42ce9c20, 0x4022: 0x42d15020, 0x4023: 0x42d9ca20,
-	0x4024: 0x42e80c20, 0x4025: 0x42ebc420, 0x4026: 0x42fef220, 0x4027: 0x43119e20,
-	0x4028: 0x4311c220, 0x4029: 0x43239820, 0x402a: 0x432dc420, 0x402b: 0x42a67e20,
-	0x402c: 0x42dd7420, 0x402d: 0x42a83a20, 0x402e: 0x42e3a020, 0x402f: 0x42e93020,
-	0x4030: 0x430bf420, 0x4031: 0x432d4620, 0x4032: 0x4338ae20, 0x4033: 0x433d3e20,
-	0x4034: 0x42cf2e20, 0x4035: 0x42db9620, 0x4036: 0x4303d020, 0x4037: 0x42f59620,
-	0x4038: 0x42f64020, 0x4039: 0x42f92420, 0x403a: 0x42e58020, 0x403b: 0x42e13220,
-	0x403c: 0x4316b020, 0x403d: 0x429d8020, 0x403e: 0x43066c20, 0x403f: 0x42a47420,
-	// Block 0x101, offset 0x4040
-	0x4040: 0x42a40e20, 0x4041: 0x42bd4c20, 0x4042: 0x42c5a620, 0x4043: 0x42f9ac20,
-	0x4044: 0x42b70a20, 0x4045: 0x42da3c20, 0x4046: 0x42cd6820, 0x4047: 0x431e7620,
-	0x4048: 0x43109820, 0x4049: 0x432c9a20, 0x404a: 0x43131620, 0x404b: 0x42bda620,
-	0x404c: 0x42a28020, 0x404d: 0x42ab8020, 0x404e: 0x43f41c20, 0x404f: 0x43f41e20,
-	0x4050: 0x42b0b420, 0x4051: 0x43f42220, 0x4052: 0x42cce820, 0x4053: 0x43f42620,
-	0x4054: 0x43f42820, 0x4055: 0x42a3bc20, 0x4056: 0x42e65420, 0x4057: 0x42ed9420,
-	0x4058: 0x42f27820, 0x4059: 0x42f2bc20, 0x405a: 0x42f2ca20, 0x405b: 0x42f31e20,
-	0x405c: 0x432eac20, 0x405d: 0x42f97c20, 0x405e: 0x42ff7a20, 0x405f: 0x43f43e20,
-	0x4060: 0x430c2420, 0x4061: 0x43f44220, 0x4062: 0x4315f020, 0x4063: 0x43f44620,
-	0x4064: 0x43f44820, 0x4065: 0x43207020, 0x4066: 0x4321fa20, 0x4067: 0x43f44e20,
-	0x4068: 0x43f45020, 0x4069: 0x43f45220, 0x406a: 0x4331de20, 0x406b: 0x4331f820,
-	0x406c: 0x43325020, 0x406d: 0x433b6820, 0x406e: 0x4321bc20, 0x406f: 0x432d6e20,
-	0x4070: 0x429f5c20, 0x4071: 0x42a1ce20, 0x4072: 0x42a29a20, 0x4073: 0x42a59220,
-	0x4074: 0x42a5c820, 0x4075: 0x42a6a220, 0x4076: 0x42ab3a20, 0x4077: 0x42ac0c20,
-	0x4078: 0x42acd020, 0x4079: 0x42b08020, 0x407a: 0x42b15020, 0x407b: 0x42b8c820,
-	0x407c: 0x42b8dc20, 0x407d: 0x42c12820, 0x407e: 0x42c2d020, 0x407f: 0x42c31c20,
-	// Block 0x102, offset 0x4080
-	0x4080: 0x42c3e420, 0x4081: 0x42ca9e20, 0x4082: 0x42cbc420, 0x4083: 0x42cd2220,
-	0x4084: 0x42d10a20, 0x4085: 0x42daee20, 0x4086: 0x42dc3420, 0x4087: 0x42de4420,
-	0x4088: 0x42e2dc20, 0x4089: 0x42e45620, 0x408a: 0x42e84420, 0x408b: 0x42f12220,
-	0x408c: 0x42f27c20, 0x408d: 0x42f29220, 0x408e: 0x42f29020, 0x408f: 0x42f2a020,
-	0x4090: 0x42f2ac20, 0x4091: 0x42f2ba20, 0x4092: 0x42f31a20, 0x4093: 0x42f31c20,
-	0x4094: 0x42f48020, 0x4095: 0x42f50220, 0x4096: 0x42f78020, 0x4097: 0x42fbe820,
-	0x4098: 0x42fc1220, 0x4099: 0x42fc8220, 0x409a: 0x42fee420, 0x409b: 0x43000a20,
-	0x409c: 0x4303da20, 0x409d: 0x4304f220, 0x409e: 0x4304f220, 0x409f: 0x4308ae20,
-	0x40a0: 0x43122020, 0x40a1: 0x43132c20, 0x40a2: 0x43160220, 0x40a3: 0x43167220,
-	0x40a4: 0x4319a620, 0x40a5: 0x431a1020, 0x40a6: 0x431f6c20, 0x40a7: 0x43207020,
-	0x40a8: 0x432dc620, 0x40a9: 0x432ffe20, 0x40aa: 0x43307620, 0x40ab: 0x42c0ea20,
-	0x40ac: 0x4885dc20, 0x40ad: 0x43043020,
-	0x40b0: 0x429c4c20, 0x40b1: 0x42a36a20, 0x40b2: 0x42a2d020, 0x40b3: 0x429f0020,
-	0x40b4: 0x42a28a20, 0x40b5: 0x42a30020, 0x40b6: 0x42a58e20, 0x40b7: 0x42a5f420,
-	0x40b8: 0x42ab3a20, 0x40b9: 0x42aaaa20, 0x40ba: 0x42ab3220, 0x40bb: 0x42abc420,
-	0x40bc: 0x42b0b420, 0x40bd: 0x42b16620, 0x40be: 0x42b28820, 0x40bf: 0x42b2a820,
-	// Block 0x103, offset 0x40c0
-	0x40c0: 0x42b4c420, 0x40c1: 0x42b65020, 0x40c2: 0x42bda420, 0x40c3: 0x42bdb220,
-	0x40c4: 0x42bed220, 0x40c5: 0x42bf5a20, 0x40c6: 0x42c1b020, 0x40c7: 0x42c29c20,
-	0x40c8: 0x42c21020, 0x40c9: 0x42c31c20, 0x40ca: 0x42c2c020, 0x40cb: 0x42c3e420,
-	0x40cc: 0x42c46820, 0x40cd: 0x42c78820, 0x40ce: 0x42c83820, 0x40cf: 0x42c8a420,
-	0x40d0: 0x42caac20, 0x40d1: 0x42cce820, 0x40d2: 0x42ce2e20, 0x40d3: 0x42ce3620,
-	0x40d4: 0x42ceac20, 0x40d5: 0x42d6f220, 0x40d6: 0x42d77420, 0x40d7: 0x42da8220,
-	0x40d8: 0x42ddb620, 0x40d9: 0x42dd9620, 0x40da: 0x42de4420, 0x40db: 0x42e03c20,
-	0x40dc: 0x42e2dc20, 0x40dd: 0x42ef4e20, 0x40de: 0x42e46a20, 0x40df: 0x42e55e20,
-	0x40e0: 0x42e65420, 0x40e1: 0x42e8e220, 0x40e2: 0x42ea0c20, 0x40e3: 0x42ea7620,
-	0x40e4: 0x42ec3a20, 0x40e5: 0x42ec3e20, 0x40e6: 0x42ed9420, 0x40e7: 0x42edb620,
-	0x40e8: 0x42ede820, 0x40e9: 0x42ee9420, 0x40ea: 0x42ee8020, 0x40eb: 0x42f19820,
-	0x40ec: 0x42f56220, 0x40ed: 0x42f78020, 0x40ee: 0x42f8f620, 0x40ef: 0x42fab620,
-	0x40f0: 0x42fbe820, 0x40f1: 0x42fe7c20, 0x40f2: 0x43000a20, 0x40f3: 0x4306a420,
-	0x40f4: 0x4307de20, 0x40f5: 0x430ef220, 0x40f6: 0x43128220, 0x40f7: 0x43130c20,
-	0x40f8: 0x43132c20, 0x40f9: 0x43157e20, 0x40fa: 0x4315f020, 0x40fb: 0x43159620,
-	0x40fc: 0x43160220, 0x40fd: 0x4315fc20, 0x40fe: 0x4315da20, 0x40ff: 0x43167220,
-	// Block 0x104, offset 0x4100
-	0x4100: 0x43171420, 0x4101: 0x431a1020, 0x4102: 0x431e7020, 0x4103: 0x4320e420,
-	0x4104: 0x43233220, 0x4105: 0x4324ec20, 0x4106: 0x432cf820, 0x4107: 0x432dc620,
-	0x4108: 0x432eac20, 0x4109: 0x432fb620, 0x410a: 0x432ffe20, 0x410b: 0x43301620,
-	0x410c: 0x43307620, 0x410d: 0x43362420, 0x410e: 0x433f3820, 0x410f: 0x48509420,
-	0x4110: 0x48508820, 0x4111: 0x4867aa20, 0x4112: 0x44773a20, 0x4113: 0x44803020,
-	0x4114: 0x44807220, 0x4115: 0x48a49220, 0x4116: 0x48b9a020, 0x4117: 0x48fda620,
-	0x4118: 0x433e8620, 0x4119: 0x433f1c20,
-	// Block 0x105, offset 0x4140
-	0x4140: 0xf0000404, 0x4141: 0xf0000404, 0x4142: 0xf0000404, 0x4143: 0xe0000b99,
-	0x4144: 0xe0000b9d, 0x4145: 0xe0000f83, 0x4146: 0xf0000404,
-	0x4153: 0xf0000404,
-	0x4154: 0xf0000404, 0x4155: 0xf0000404, 0x4156: 0xf0000404, 0x4157: 0xf0000404,
-	0x415d: 0xe000150b, 0x415e: 0xa1a09602, 0x415f: 0xe0001514,
-	0x4160: 0x0038ae85, 0x4161: 0x00389085, 0x4162: 0x00389685, 0x4163: 0x00389885,
-	0x4164: 0x0038a485, 0x4165: 0x0038a685, 0x4166: 0x0038a885, 0x4167: 0x0038b685,
-	0x4168: 0x0038ba85, 0x4169: 0x00093885, 0x416a: 0xe0001542, 0x416b: 0xe000153f,
-	0x416c: 0xe000154c, 0x416d: 0xe0001548, 0x416e: 0xe00014e1, 0x416f: 0xe00014e4,
-	0x4170: 0xe00014e7, 0x4171: 0xe00014ea, 0x4172: 0xe00014f0, 0x4173: 0xe00014f3,
-	0x4174: 0xe00014f6, 0x4175: 0xe00014fc, 0x4176: 0xe0001505,
-	0x4178: 0xe0001508, 0x4179: 0xe000150e, 0x417a: 0xe000151b, 0x417b: 0xe0001518,
-	0x417c: 0xe0001521, 0x417e: 0xe0001524,
-	// Block 0x106, offset 0x4180
-	0x4180: 0xe0001527, 0x4181: 0xe000152a, 0x4183: 0xe0001530,
-	0x4184: 0xe000152d, 0x4186: 0xe0001536, 0x4187: 0xe0001539,
-	0x4188: 0xe000153c, 0x4189: 0xe0001545, 0x418a: 0xe0001550, 0x418b: 0xe00014f9,
-	0x418c: 0xe00014ed, 0x418d: 0xe000151e, 0x418e: 0xe0001533, 0x418f: 0xf0000404,
-	0x4190: 0x0039249a, 0x4191: 0x00392499, 0x4192: 0x00393e9a, 0x4193: 0x00393e99,
-	0x4194: 0x00393e97, 0x4195: 0x00393e98, 0x4196: 0x0039409a, 0x4197: 0x00394099,
-	0x4198: 0x00394097, 0x4199: 0x00394098, 0x419a: 0x0039429a, 0x419b: 0x00394299,
-	0x419c: 0x00394297, 0x419d: 0x00394298, 0x419e: 0x00395c9a, 0x419f: 0x00395c99,
-	0x41a0: 0x00395c97, 0x41a1: 0x00395c98, 0x41a2: 0x0039629a, 0x41a3: 0x00396299,
-	0x41a4: 0x00396297, 0x41a5: 0x00396298, 0x41a6: 0x00395a9a, 0x41a7: 0x00395a99,
-	0x41a8: 0x00395a97, 0x41a9: 0x00395a98, 0x41aa: 0x003a049a, 0x41ab: 0x003a0499,
-	0x41ac: 0x003a0497, 0x41ad: 0x003a0498, 0x41ae: 0x003a0a9a, 0x41af: 0x003a0a99,
-	0x41b0: 0x003a0a97, 0x41b1: 0x003a0a98, 0x41b2: 0x0039689a, 0x41b3: 0x00396899,
-	0x41b4: 0x00396897, 0x41b5: 0x00396898, 0x41b6: 0x0039669a, 0x41b7: 0x00396699,
-	0x41b8: 0x00396697, 0x41b9: 0x00396698, 0x41ba: 0x00396a9a, 0x41bb: 0x00396a99,
-	0x41bc: 0x00396a97, 0x41bd: 0x00396a98, 0x41be: 0x00396e9a, 0x41bf: 0x00396e99,
-	// Block 0x107, offset 0x41c0
-	0x41c0: 0x00396e97, 0x41c1: 0x00396e98, 0x41c2: 0x0039969a, 0x41c3: 0x00399699,
-	0x41c4: 0x0039949a, 0x41c5: 0x00399499, 0x41c6: 0x0039989a, 0x41c7: 0x00399899,
-	0x41c8: 0x00398c9a, 0x41c9: 0x00398c99, 0x41ca: 0x0039b69a, 0x41cb: 0x0039b699,
-	0x41cc: 0x0039a89a, 0x41cd: 0x0039a899, 0x41ce: 0x003a1c9a, 0x41cf: 0x003a1c99,
-	0x41d0: 0x003a1c97, 0x41d1: 0x003a1c98, 0x41d2: 0x003a2a9a, 0x41d3: 0x003a2a99,
-	0x41d4: 0x003a2a97, 0x41d5: 0x003a2a98, 0x41d6: 0x003a329a, 0x41d7: 0x003a3299,
-	0x41d8: 0x003a3297, 0x41d9: 0x003a3298, 0x41da: 0x003a2e9a, 0x41db: 0x003a2e99,
-	0x41dc: 0x003a2e97, 0x41dd: 0x003a2e98, 0x41de: 0x003a589a, 0x41df: 0x003a5899,
-	0x41e0: 0x003a5a9a, 0x41e1: 0x003a5a99, 0x41e2: 0x003a5a97, 0x41e3: 0x003a5a98,
-	0x41e4: 0xf0001a1a, 0x41e5: 0xf0001919, 0x41e6: 0x003a6c9a, 0x41e7: 0x003a6c99,
-	0x41e8: 0x003a6c97, 0x41e9: 0x003a6c98, 0x41ea: 0x003a6a9a, 0x41eb: 0x003a6a99,
-	0x41ec: 0x003a6a97, 0x41ed: 0x003a6a98, 0x41ee: 0x003aaa9a, 0x41ef: 0x003aaa99,
-	0x41f0: 0xf0001a1a, 0x41f1: 0xf0001919, 0x41f2: 0x40071820, 0x41f3: 0x40071a20,
-	0x41f4: 0x40071c20, 0x41f5: 0x40071e20, 0x41f6: 0x40072020, 0x41f7: 0x40072220,
-	0x41f8: 0x40072420, 0x41f9: 0x40072620, 0x41fa: 0x40072820, 0x41fb: 0x40072a20,
-	0x41fc: 0x40072c20, 0x41fd: 0x40072e20, 0x41fe: 0x40073020, 0x41ff: 0x40073220,
-	// Block 0x108, offset 0x4200
-	0x4200: 0x40073420, 0x4201: 0x40073620,
-	0x4213: 0x003a269a,
-	0x4214: 0x003a2699, 0x4215: 0x003a2697, 0x4216: 0x003a2698, 0x4217: 0x003a7c9a,
-	0x4218: 0x003a7c99, 0x4219: 0x003a7a9a, 0x421a: 0x003a7a99, 0x421b: 0x003a7e9a,
-	0x421c: 0x003a7e99, 0x421d: 0xf0001a1a, 0x421e: 0x003a849a, 0x421f: 0x003a8499,
-	0x4220: 0x003a789a, 0x4221: 0x003a7899, 0x4222: 0x003a809a, 0x4223: 0x003a8099,
-	0x4224: 0x003a989a, 0x4225: 0x003a9899, 0x4226: 0x003a9897, 0x4227: 0x003a9898,
-	0x4228: 0x003a8e97, 0x4229: 0x003a8e98, 0x422a: 0xe0001559, 0x422b: 0xe0001556,
-	0x422c: 0xe0001589, 0x422d: 0xe0001586, 0x422e: 0xe000158f, 0x422f: 0xe000158c,
-	0x4230: 0xe000159b, 0x4231: 0xe0001598, 0x4232: 0xe0001595, 0x4233: 0xe0001592,
-	0x4234: 0xe00015a1, 0x4235: 0xe000159e, 0x4236: 0xe00015bf, 0x4237: 0xe00015bc,
-	0x4238: 0xe00015b9, 0x4239: 0xe00015ad, 0x423a: 0xe00015a7, 0x423b: 0xe00015a4,
-	0x423c: 0x003a929a, 0x423d: 0x003a9299, 0x423e: 0x003a9297, 0x423f: 0x003a9298,
-	// Block 0x109, offset 0x4240
-	0x4240: 0xe000155f, 0x4241: 0xe0001565, 0x4242: 0xe000157a, 0x4243: 0xe00015b0,
-	0x4244: 0xe00015b6, 0x4245: 0xf0001a1a, 0x4246: 0xf0001a1a, 0x4247: 0xf0001a1a,
-	0x4248: 0xf0001a1a, 0x4249: 0xf0001a1a, 0x424a: 0xf0001a1a, 0x424b: 0xf0001a1a,
-	0x424c: 0xf0001a1a, 0x424d: 0xf0001a1a, 0x424e: 0xf0001a1a, 0x424f: 0xf0001a1a,
-	0x4250: 0xf0001a1a, 0x4251: 0xf0001a1a, 0x4252: 0xf0001a1a, 0x4253: 0xf0001a1a,
-	0x4254: 0xf0001a1a, 0x4255: 0xf0001a1a, 0x4256: 0xf0001a1a, 0x4257: 0xf0001a1a,
-	0x4258: 0xf0001a1a, 0x4259: 0xf0001a1a, 0x425a: 0xf0001a1a, 0x425b: 0xf0001a1a,
-	0x425c: 0xf0001a1a, 0x425d: 0xf0001a1a, 0x425e: 0xf0001a1a, 0x425f: 0xf0001a1a,
-	0x4260: 0xf0001a1a, 0x4261: 0xf0001a1a, 0x4262: 0xf0001a1a, 0x4263: 0xf0001a1a,
-	0x4264: 0xf0001a1a, 0x4265: 0xf0001a1a, 0x4266: 0xf0001a1a, 0x4267: 0xf0001a1a,
-	0x4268: 0xf0001a1a, 0x4269: 0xf0001a1a, 0x426a: 0xf0001a1a, 0x426b: 0xf0001a1a,
-	0x426c: 0xf0001a1a, 0x426d: 0xf0001a1a, 0x426e: 0xf0001a1a, 0x426f: 0xf0001a1a,
-	0x4270: 0xf0001a1a, 0x4271: 0xf0001a1a, 0x4272: 0xf0001a1a, 0x4273: 0xf0001a1a,
-	0x4274: 0xf0001a1a, 0x4275: 0xf0001a1a, 0x4276: 0xf0001a1a, 0x4277: 0xf0001a1a,
-	0x4278: 0xf0001a1a, 0x4279: 0xf0001a1a, 0x427a: 0xf0001a1a, 0x427b: 0xf0001a1a,
-	0x427c: 0xf0001a1a, 0x427d: 0xf0001a1a, 0x427e: 0xf0001a1a, 0x427f: 0xf0001a1a,
-	// Block 0x10a, offset 0x4280
-	0x4280: 0xf0001a1a, 0x4281: 0xf0001a1a, 0x4282: 0xf0001a1a, 0x4283: 0xf0001a1a,
-	0x4284: 0xf0001a1a, 0x4285: 0xf0001a1a, 0x4286: 0xf0001a1a, 0x4287: 0xf0001a1a,
-	0x4288: 0xf0001a1a, 0x4289: 0xf0001a1a, 0x428a: 0xf0001a1a, 0x428b: 0xf0001a1a,
-	0x428c: 0xf0001a1a, 0x428d: 0xf0001a1a, 0x428e: 0xf0001a1a, 0x428f: 0xf0001a1a,
-	0x4290: 0xf0001a1a, 0x4291: 0xf0001a1a, 0x4292: 0xf0001a1a, 0x4293: 0xf0001a1a,
-	0x4294: 0xf0001a1a, 0x4295: 0xf0001a1a, 0x4296: 0xf0001a1a, 0x4297: 0xf0001a1a,
-	0x4298: 0xf0001a1a, 0x4299: 0xf0001a1a, 0x429a: 0xf0001a1a, 0x429b: 0xf0001a1a,
-	0x429c: 0xf0001a1a, 0x429d: 0xf0001a1a, 0x429e: 0xe0000003, 0x429f: 0xe0000006,
-	0x42a0: 0xe0000009, 0x42a1: 0xe000000c, 0x42a2: 0xe000000f, 0x42a3: 0xe0000012,
-	0x42a4: 0xe000156b, 0x42a5: 0xe000156e, 0x42a6: 0xe0001577, 0x42a7: 0xe000157d,
-	0x42a8: 0xe00015aa, 0x42a9: 0xe00015b3, 0x42aa: 0xf0001919, 0x42ab: 0xf0001919,
-	0x42ac: 0xf0001919, 0x42ad: 0xf0001919, 0x42ae: 0xf0001919, 0x42af: 0xf0001919,
-	0x42b0: 0xf0001919, 0x42b1: 0xf0001919, 0x42b2: 0xf0001919, 0x42b3: 0xf0001919,
-	0x42b4: 0xf0001919, 0x42b5: 0xf0001919, 0x42b6: 0xf0001919, 0x42b7: 0xf0001919,
-	0x42b8: 0xf0001919, 0x42b9: 0xf0001919, 0x42ba: 0xf0001919, 0x42bb: 0xf0001919,
-	0x42bc: 0xf0001919, 0x42bd: 0xf0001919, 0x42be: 0xf0001919, 0x42bf: 0xf0001919,
-	// Block 0x10b, offset 0x42c0
-	0x42c0: 0xf0001919, 0x42c1: 0xf0001919, 0x42c2: 0xf0001919, 0x42c3: 0xf0001919,
-	0x42c4: 0xf0001919, 0x42c5: 0xf0001919, 0x42c6: 0xf0001919, 0x42c7: 0xf0001919,
-	0x42c8: 0xf0001919, 0x42c9: 0xf0001919, 0x42ca: 0xf0001919, 0x42cb: 0xf0001919,
-	0x42cc: 0xf0001919, 0x42cd: 0xf0001919, 0x42ce: 0xf0001919, 0x42cf: 0xf0001919,
-	0x42d0: 0xf0001919, 0x42d1: 0xf0001919, 0x42d2: 0xf0001919, 0x42d3: 0xf0001919,
-	0x42d4: 0xf0001919, 0x42d5: 0xf0001919, 0x42d6: 0xf0001919, 0x42d7: 0xe000155c,
-	0x42d8: 0xe0001562, 0x42d9: 0xe0001568, 0x42da: 0xe0001571, 0x42db: 0xe0001580,
-	0x42dc: 0xf0001717, 0x42dd: 0xf0001717, 0x42de: 0xf0001717, 0x42df: 0xf0001717,
-	0x42e0: 0xf0001717, 0x42e1: 0xf0001717, 0x42e2: 0xf0001717, 0x42e3: 0xf0001717,
-	0x42e4: 0xf0001717, 0x42e5: 0xf0001717, 0x42e6: 0xf0001717, 0x42e7: 0xf0001717,
-	0x42e8: 0xf0001717, 0x42e9: 0xf0001717, 0x42ea: 0xf0001717, 0x42eb: 0xf0001717,
-	0x42ec: 0xf0001717, 0x42ed: 0xf0001717, 0x42ee: 0xf0001717, 0x42ef: 0xf0001717,
-	0x42f0: 0xf0001717, 0x42f1: 0xf0001717, 0x42f2: 0xf0001717, 0x42f3: 0xf0001717,
-	0x42f4: 0xf0001717, 0x42f5: 0xf0001717, 0x42f6: 0xf0001717, 0x42f7: 0xf0001717,
-	0x42f8: 0xf0001717, 0x42f9: 0xf0001717, 0x42fa: 0xf0001717, 0x42fb: 0xf0001717,
-	0x42fc: 0xf0001717, 0x42fd: 0xf0001717, 0x42fe: 0xf0001717, 0x42ff: 0xf0001717,
-	// Block 0x10c, offset 0x4300
-	0x4300: 0xf0001717, 0x4301: 0xf0001717, 0x4302: 0xf0001717, 0x4303: 0xf0001717,
-	0x4304: 0xf0001717, 0x4305: 0xf0001717, 0x4306: 0xf0001717, 0x4307: 0xf0001717,
-	0x4308: 0xf0001717, 0x4309: 0xf0001717, 0x430a: 0xf0001717, 0x430b: 0xf0001717,
-	0x430c: 0xf0001717, 0x430d: 0xf0001717, 0x430e: 0xf0001717, 0x430f: 0xf0001717,
-	0x4310: 0xf0001717, 0x4311: 0xf0001717, 0x4312: 0xf0001717, 0x4313: 0xf0001717,
-	0x4314: 0xf0001717, 0x4315: 0xf0001717, 0x4316: 0xf0001717, 0x4317: 0xf0001717,
-	0x4318: 0xf0001717, 0x4319: 0xf0001717, 0x431a: 0xf0001717, 0x431b: 0xf0001717,
-	0x431c: 0xf0001717, 0x431d: 0xf0001717, 0x431e: 0xf0001717, 0x431f: 0xe0001574,
-	0x4320: 0xe0001583, 0x4321: 0xf0001818, 0x4322: 0xf0001818, 0x4323: 0xf0001818,
-	0x4324: 0xf0001818, 0x4325: 0xf0001818, 0x4326: 0xf0001818, 0x4327: 0xf0001818,
-	0x4328: 0xf0001818, 0x4329: 0xf0001818, 0x432a: 0xf0001818, 0x432b: 0xf0001818,
-	0x432c: 0xf0001818, 0x432d: 0xf0001818, 0x432e: 0xf0001818, 0x432f: 0xf0001818,
-	0x4330: 0xf0001818, 0x4331: 0xf0001818, 0x4332: 0xf0001818, 0x4333: 0xf0001818,
-	0x4334: 0xf0001818, 0x4335: 0xf0001a1a, 0x4336: 0xf0001a1a, 0x4337: 0xf0001a1a,
-	0x4338: 0xf0001a1a, 0x4339: 0xf0001a1a, 0x433a: 0xf0001a1a, 0x433b: 0xf0001a1a,
-	0x433c: 0xf0001a1a, 0x433d: 0xf0001a1a, 0x433e: 0xf0001a1a, 0x433f: 0xf0001a1a,
-	// Block 0x10d, offset 0x4340
-	0x4340: 0xf0001a1a, 0x4341: 0xf0001a1a, 0x4342: 0xf0001a1a, 0x4343: 0xf0001a1a,
-	0x4344: 0xf0001a1a, 0x4345: 0xf0001a1a, 0x4346: 0xf0001a1a, 0x4347: 0xf0001a1a,
-	0x4348: 0xf0001a1a, 0x4349: 0xf0001a1a, 0x434a: 0xf0001a1a, 0x434b: 0xf0001a1a,
-	0x434c: 0xf0001a1a, 0x434d: 0xf0001a1a, 0x434e: 0xf0001a1a, 0x434f: 0xf0001a1a,
-	0x4350: 0xf0001a1a, 0x4351: 0xf0001919, 0x4352: 0xf0001919, 0x4353: 0xf0001919,
-	0x4354: 0xf0001919, 0x4355: 0xf0001919, 0x4356: 0xf0001919, 0x4357: 0xf0001919,
-	0x4358: 0xf0001919, 0x4359: 0xf0001919, 0x435a: 0xf0001919, 0x435b: 0xf0001919,
-	0x435c: 0xf0001919, 0x435d: 0xf0001919, 0x435e: 0xf0001919, 0x435f: 0xf0001919,
-	0x4360: 0xf0001919, 0x4361: 0xf0001919, 0x4362: 0xf0001919, 0x4363: 0xf0001919,
-	0x4364: 0xf0001919, 0x4365: 0xf0001919, 0x4366: 0xf0001919, 0x4367: 0xf0001919,
-	0x4368: 0xf0001919, 0x4369: 0xf0001919, 0x436a: 0xf0001919, 0x436b: 0xf0001919,
-	0x436c: 0xf0001919, 0x436d: 0xf0001717, 0x436e: 0xf0001717, 0x436f: 0xf0001717,
-	0x4370: 0xf0001717, 0x4371: 0xf0001717, 0x4372: 0xf0001717, 0x4373: 0xf0001717,
-	0x4374: 0xf0001818, 0x4375: 0xf0001818, 0x4376: 0xf0001818, 0x4377: 0xf0001818,
-	0x4378: 0xf0001818, 0x4379: 0xf0001818, 0x437a: 0xf0001818, 0x437b: 0xf0001818,
-	0x437c: 0xf0001919, 0x437d: 0xf0001a1a, 0x437e: 0x4004c020, 0x437f: 0x4004c220,
-	// Block 0x10e, offset 0x4380
-	0x4390: 0xe00015d4, 0x4391: 0xe00015e4, 0x4392: 0xe00015e0, 0x4393: 0xe00015e8,
-	0x4394: 0xe00015ec, 0x4395: 0xe00015f8, 0x4396: 0xe00015fc, 0x4397: 0xe0001600,
-	0x4398: 0xe0001621, 0x4399: 0xe000161d, 0x439a: 0xe0001635, 0x439b: 0xe0001631,
-	0x439c: 0xe0001646, 0x439d: 0xe000163e, 0x439e: 0xe0001642, 0x439f: 0xe000165a,
-	0x43a0: 0xe0001656, 0x43a1: 0xe0001652, 0x43a2: 0xe0001662, 0x43a3: 0xe000165e,
-	0x43a4: 0xe000168a, 0x43a5: 0xe0001686, 0x43a6: 0xe00016b6, 0x43a7: 0xe000166e,
-	0x43a8: 0xe000166a, 0x43a9: 0xe0001666, 0x43aa: 0xe000167a, 0x43ab: 0xe0001676,
-	0x43ac: 0xe0001682, 0x43ad: 0xe000167e, 0x43ae: 0xe00016ba, 0x43af: 0xe00016c6,
-	0x43b0: 0xe00016c2, 0x43b1: 0xe00016ce, 0x43b2: 0xe00016ca, 0x43b3: 0xe00016d2,
-	0x43b4: 0xe00016d6, 0x43b5: 0xe00016de, 0x43b6: 0xe00016eb, 0x43b7: 0xe00016e7,
-	0x43b8: 0xe00016ef, 0x43b9: 0xe00016f7, 0x43ba: 0xe00016ff, 0x43bb: 0xe00016fb,
-	0x43bc: 0xe0001707, 0x43bd: 0xe0001703, 0x43be: 0xe0001717, 0x43bf: 0xe000171b,
-	// Block 0x10f, offset 0x43c0
-	0x43c0: 0xe0001759, 0x43c1: 0xe0001761, 0x43c2: 0xe000175d, 0x43c3: 0xe0001741,
-	0x43c4: 0xe0001745, 0x43c5: 0xe0001769, 0x43c6: 0xe0001765, 0x43c7: 0xe0001771,
-	0x43c8: 0xe000176d, 0x43c9: 0xe000178c, 0x43ca: 0xe0001790, 0x43cb: 0xe0001799,
-	0x43cc: 0xe000177c, 0x43cd: 0xe0001784, 0x43ce: 0xe000179d, 0x43cf: 0xe00017a1,
-	0x43d2: 0xe0001780, 0x43d3: 0xe00017d9,
-	0x43d4: 0xe00017dd, 0x43d5: 0xe00017c5, 0x43d6: 0xe00017c9, 0x43d7: 0xe00017b9,
-	0x43d8: 0xe00017b5, 0x43d9: 0xe00017bd, 0x43da: 0xe00017d5, 0x43db: 0xe00017d1,
-	0x43dc: 0xe00017f8, 0x43dd: 0xe00017f4, 0x43de: 0xe00015d0, 0x43df: 0xe00015dc,
-	0x43e0: 0xe00015d8, 0x43e1: 0xe00015f4, 0x43e2: 0xe00015f0, 0x43e3: 0xe0001608,
-	0x43e4: 0xe0001604, 0x43e5: 0xe0001629, 0x43e6: 0xe000160c, 0x43e7: 0xe0001625,
-	0x43e8: 0xe000164a, 0x43e9: 0xe000168e, 0x43ea: 0xe0001672, 0x43eb: 0xe00016be,
-	0x43ec: 0xe0001751, 0x43ed: 0xe0001775, 0x43ee: 0xe00017f0, 0x43ef: 0xe00017ec,
-	0x43f0: 0xe00017fc, 0x43f1: 0xe00017a9, 0x43f2: 0xe000171f, 0x43f3: 0xe00017cd,
-	0x43f4: 0xe0001713, 0x43f5: 0xe0001755, 0x43f6: 0xe00016f3, 0x43f7: 0xe000172b,
-	0x43f8: 0xe00017ad, 0x43f9: 0xe00017a5, 0x43fa: 0xe0001749, 0x43fb: 0xe0001727,
-	0x43fc: 0xe000174d, 0x43fd: 0xe00017b1, 0x43fe: 0xe0001610, 0x43ff: 0xe000162d,
-	// Block 0x110, offset 0x4400
-	0x4400: 0xe0001788, 0x4401: 0xe000170b, 0x4402: 0xe00015cc, 0x4403: 0xe0001723,
-	0x4404: 0xe00016da, 0x4405: 0xe00016b2, 0x4406: 0xe000164e, 0x4407: 0xe00017c1,
-	0x4430: 0xe00016ae, 0x4431: 0xe000170f, 0x4432: 0xe00015c7, 0x4433: 0xe00015c2,
-	0x4434: 0xe0001794, 0x4435: 0xe0001692, 0x4436: 0xe0001639, 0x4437: 0xe00016e2,
-	0x4438: 0xe00017e7, 0x4439: 0xe0001697, 0x443a: 0xe000169b, 0x443b: 0xe0001614,
-	0x443c: 0x40282e20, 0x443d: 0x40071620,
-	// Block 0x111, offset 0x4440
-	0x4440: 0xa0000000, 0x4441: 0xa0000000, 0x4442: 0xa0000000, 0x4443: 0xa0000000,
-	0x4444: 0xa0000000, 0x4445: 0xa0000000, 0x4446: 0xa0000000, 0x4447: 0xa0000000,
-	0x4448: 0xa0000000, 0x4449: 0xa0000000, 0x444a: 0xa0000000, 0x444b: 0xa0000000,
-	0x444c: 0xa0000000, 0x444d: 0xa0000000, 0x444e: 0xa0000000, 0x444f: 0xa0000000,
-	0x4450: 0x00024096, 0x4451: 0x00025c96, 0x4452: 0x00030496, 0x4453: 0x00026c96,
-	0x4454: 0x00026296, 0x4455: 0x0002ba96, 0x4456: 0x0002c496, 0x4457: 0x0004b496,
-	0x4458: 0x0004b696, 0x4459: 0xf0001616,
-	0x4460: 0xae608202, 0x4461: 0xae600000, 0x4462: 0xae608102, 0x4463: 0xae600000,
-	0x4464: 0xae600000, 0x4465: 0xae600000, 0x4466: 0xae600000,
-	0x4470: 0xf0001f16, 0x4471: 0x00022c96, 0x4472: 0x00022a96, 0x4473: 0x00021696,
-	0x4474: 0x00021696, 0x4475: 0x0003f496, 0x4476: 0x0003f696, 0x4477: 0x0003fc96,
-	0x4478: 0x0003fe96, 0x4479: 0x0004b096, 0x447a: 0x0004b296, 0x447b: 0x0004ac96,
-	0x447c: 0x0004ae96, 0x447d: 0x0004a096, 0x447e: 0x0004a296, 0x447f: 0x00049c96,
-	// Block 0x112, offset 0x4480
-	0x4480: 0x00049e96, 0x4481: 0x0004a496, 0x4482: 0x0004a696, 0x4483: 0x0004a896,
-	0x4484: 0x0004aa96, 0x4485: 0x40025e20, 0x4486: 0x40026020, 0x4487: 0x0003f896,
-	0x4488: 0x0003fa96, 0x4489: 0x00021484, 0x448a: 0x00021484, 0x448b: 0x00021484,
-	0x448c: 0x00021484, 0x448d: 0x00021684, 0x448e: 0x00021684, 0x448f: 0x00021684,
-	0x4490: 0x0002408f, 0x4491: 0x00025c8f, 0x4492: 0x0002e48f,
-	0x4494: 0x0002628f, 0x4495: 0x00026c8f, 0x4496: 0x0002c48f, 0x4497: 0x0002ba8f,
-	0x4498: 0x00022c8f, 0x4499: 0x0003f48f, 0x449a: 0x0003f68f, 0x449b: 0x0003fc8f,
-	0x449c: 0x0003fe8f, 0x449d: 0x0004b08f, 0x449e: 0x0004b28f, 0x449f: 0x0004ea8f,
-	0x44a0: 0x0004e68f, 0x44a1: 0x0004d88f, 0x44a2: 0x0009388f, 0x44a3: 0x00021a8f,
-	0x44a4: 0x0009408f, 0x44a5: 0x0009448f, 0x44a6: 0x0009428f,
-	0x44a8: 0x0004e48f, 0x44a9: 0x0027de8f, 0x44aa: 0x0004ec8f, 0x44ab: 0x0004d68f,
-	0x44b0: 0xa000a21a, 0x44b1: 0xa000a218, 0x44b2: 0xa000a51a, 0x44b3: 0xa0000000,
-	0x44b4: 0xa000a91a, 0x44b6: 0xa000ad1a, 0x44b7: 0xa000ad18,
-	0x44b8: 0xa000b21a, 0x44b9: 0xa000b218, 0x44ba: 0xa000b61a, 0x44bb: 0xa000b618,
-	0x44bc: 0xa000ba1a, 0x44bd: 0xa000ba18, 0x44be: 0xa000bc1a, 0x44bf: 0xa000bc18,
-	// Block 0x113, offset 0x44c0
-	0x44c0: 0x00391c9a, 0x44c1: 0x00391e9a, 0x44c2: 0x00391e99, 0x44c3: 0x0039209a,
-	0x44c4: 0x00392099, 0x44c5: 0x0039269a, 0x44c6: 0x00392699, 0x44c7: 0x0039289a,
-	0x44c8: 0x00392899, 0x44c9: 0x0039309a, 0x44ca: 0x00393099, 0x44cb: 0x00393097,
-	0x44cc: 0x00393098, 0x44cd: 0x0039389a, 0x44ce: 0x00393899, 0x44cf: 0x00393c9a,
-	0x44d0: 0x00393c99, 0x44d1: 0x00393c97, 0x44d2: 0x00393c98, 0x44d3: 0x0039549a,
-	0x44d4: 0x00395499, 0x44d5: 0x0039569a, 0x44d6: 0x00395699, 0x44d7: 0x00395697,
-	0x44d8: 0x00395698, 0x44d9: 0x0039589a, 0x44da: 0x00395899, 0x44db: 0x00395897,
-	0x44dc: 0x00395898, 0x44dd: 0x0039649a, 0x44de: 0x00396499, 0x44df: 0x00396497,
-	0x44e0: 0x00396498, 0x44e1: 0x0039729a, 0x44e2: 0x00397299, 0x44e3: 0x00397297,
-	0x44e4: 0x00397298, 0x44e5: 0x0039749a, 0x44e6: 0x00397499, 0x44e7: 0x00397497,
-	0x44e8: 0x00397498, 0x44e9: 0x0039889a, 0x44ea: 0x00398899, 0x44eb: 0x00398a9a,
-	0x44ec: 0x00398a99, 0x44ed: 0x0039a49a, 0x44ee: 0x0039a499, 0x44ef: 0x0039a69a,
-	0x44f0: 0x0039a699, 0x44f1: 0x0039c69a, 0x44f2: 0x0039c699, 0x44f3: 0x0039c697,
-	0x44f4: 0x0039c698, 0x44f5: 0x0039c89a, 0x44f6: 0x0039c899, 0x44f7: 0x0039c897,
-	0x44f8: 0x0039c898, 0x44f9: 0x0039dc9a, 0x44fa: 0x0039dc99, 0x44fb: 0x0039dc97,
-	0x44fc: 0x0039dc98, 0x44fd: 0x0039de9a, 0x44fe: 0x0039de99, 0x44ff: 0x0039de97,
-	// Block 0x114, offset 0x4500
-	0x4500: 0x0039de98, 0x4501: 0x0039e69a, 0x4502: 0x0039e699, 0x4503: 0x0039e697,
-	0x4504: 0x0039e698, 0x4505: 0x0039e89a, 0x4506: 0x0039e899, 0x4507: 0x0039e897,
-	0x4508: 0x0039e898, 0x4509: 0x0039ee9a, 0x450a: 0x0039ee99, 0x450b: 0x0039ee97,
-	0x450c: 0x0039ee98, 0x450d: 0x0039f09a, 0x450e: 0x0039f099, 0x450f: 0x0039f097,
-	0x4510: 0x0039f098, 0x4511: 0x0039fc9a, 0x4512: 0x0039fc99, 0x4513: 0x0039fc97,
-	0x4514: 0x0039fc98, 0x4515: 0x003a129a, 0x4516: 0x003a1299, 0x4517: 0x003a1297,
-	0x4518: 0x003a1298, 0x4519: 0x003a1a9a, 0x451a: 0x003a1a99, 0x451b: 0x003a1a97,
-	0x451c: 0x003a1a98, 0x451d: 0x003a409a, 0x451e: 0x003a4099, 0x451f: 0x003a4097,
-	0x4520: 0x003a4098, 0x4521: 0x003a4e9a, 0x4522: 0x003a4e99, 0x4523: 0x003a4e97,
-	0x4524: 0x003a4e98, 0x4525: 0x003a569a, 0x4526: 0x003a5699, 0x4527: 0x003a5697,
-	0x4528: 0x003a5698, 0x4529: 0x003a689a, 0x452a: 0x003a6899, 0x452b: 0x003a6897,
-	0x452c: 0x003a6898, 0x452d: 0x003a749a, 0x452e: 0x003a7499, 0x452f: 0x003a8e9a,
-	0x4530: 0x003a8e99, 0x4531: 0x003a909a, 0x4532: 0x003a9099, 0x4533: 0x003a9097,
-	0x4534: 0x003a9098, 0x4535: 0xe0001732, 0x4536: 0xe000172f, 0x4537: 0xe0001738,
-	0x4538: 0xe0001735, 0x4539: 0xe000173e, 0x453a: 0xe000173b, 0x453b: 0xf0001a1a,
-	0x453c: 0xf0001919, 0x453f: 0xa0000000,
-	// Block 0x115, offset 0x4540
-	0x4541: 0x0002ba83, 0x4542: 0x0003e083, 0x4543: 0x0004ea83,
-	0x4544: 0x0027de83, 0x4545: 0x0004ec83, 0x4546: 0x0004e683, 0x4547: 0x0003d283,
-	0x4548: 0x0003f483, 0x4549: 0x0003f683, 0x454a: 0x0004d883, 0x454b: 0x00093883,
-	0x454c: 0x00024083, 0x454d: 0x00021a83, 0x454e: 0x0002e483, 0x454f: 0x0004e283,
-	0x4550: 0x0029cc83, 0x4551: 0x0029ce83, 0x4552: 0x0029d083, 0x4553: 0x0029d283,
-	0x4554: 0x0029d483, 0x4555: 0x0029d683, 0x4556: 0x0029d883, 0x4557: 0x0029da83,
-	0x4558: 0x0029dc83, 0x4559: 0x0029de83, 0x455a: 0x00026c83, 0x455b: 0x00026283,
-	0x455c: 0x00094083, 0x455d: 0x00094283, 0x455e: 0x00094483, 0x455f: 0x0002c483,
-	0x4560: 0x0004d683, 0x4561: 0x002bde89, 0x4562: 0x002c0a89, 0x4563: 0x002c3a89,
-	0x4564: 0x002c6289, 0x4565: 0x002c9889, 0x4566: 0x002d0889, 0x4567: 0x002d2289,
-	0x4568: 0x002d6889, 0x4569: 0x002d9a89, 0x456a: 0x002dcc89, 0x456b: 0x002dfe89,
-	0x456c: 0x002e2289, 0x456d: 0x002e8289, 0x456e: 0x002e9e89, 0x456f: 0x002ee289,
-	0x4570: 0x002f2c89, 0x4571: 0x002f5689, 0x4572: 0x002f7a89, 0x4573: 0x002fe689,
-	0x4574: 0x00302c89, 0x4575: 0x00306c89, 0x4576: 0x0030be89, 0x4577: 0x0030e289,
-	0x4578: 0x0030f689, 0x4579: 0x00310089, 0x457a: 0x00312a89, 0x457b: 0x0003f883,
-	0x457c: 0x0004e483, 0x457d: 0x0003fa83, 0x457e: 0x00062483, 0x457f: 0x00021683,
-	// Block 0x116, offset 0x4580
-	0x4580: 0x00061e83, 0x4581: 0x002bde83, 0x4582: 0x002c0a83, 0x4583: 0x002c3a83,
-	0x4584: 0x002c6283, 0x4585: 0x002c9883, 0x4586: 0x002d0883, 0x4587: 0x002d2283,
-	0x4588: 0x002d6883, 0x4589: 0x002d9a83, 0x458a: 0x002dcc83, 0x458b: 0x002dfe83,
-	0x458c: 0x002e2283, 0x458d: 0x002e8283, 0x458e: 0x002e9e83, 0x458f: 0x002ee283,
-	0x4590: 0x002f2c83, 0x4591: 0x002f5683, 0x4592: 0x002f7a83, 0x4593: 0x002fe683,
-	0x4594: 0x00302c83, 0x4595: 0x00306c83, 0x4596: 0x0030be83, 0x4597: 0x0030e283,
-	0x4598: 0x0030f683, 0x4599: 0x00310083, 0x459a: 0x00312a83, 0x459b: 0x0003fc83,
-	0x459c: 0x00094883, 0x459d: 0x0003fe83, 0x459e: 0x00094c83, 0x459f: 0x00041883,
-	0x45a0: 0x00041a83, 0x45a1: 0x00030492, 0x45a2: 0x0004a492, 0x45a3: 0x0004a692,
-	0x45a4: 0x00025c92, 0x45a5: 0x00023e92, 0x45a6: 0x0065d692, 0x45a7: 0x00657690,
-	0x45a8: 0x00657890, 0x45a9: 0x00657a90, 0x45aa: 0x00657e90, 0x45ab: 0x00658090,
-	0x45ac: 0x0065be90, 0x45ad: 0x0065c090, 0x45ae: 0x0065c490, 0x45af: 0x00659a90,
-	0x45b0: 0x0027d692, 0x45b1: 0x00657692, 0x45b2: 0x00657892, 0x45b3: 0x00657a92,
-	0x45b4: 0x00657e92, 0x45b5: 0x00658092, 0x45b6: 0x00658292, 0x45b7: 0x00658492,
-	0x45b8: 0x00658692, 0x45b9: 0x00658892, 0x45ba: 0x00658a92, 0x45bb: 0x00658c92,
-	0x45bc: 0x00658e92, 0x45bd: 0x00659092, 0x45be: 0x00659292, 0x45bf: 0x00659492,
-	// Block 0x117, offset 0x45c0
-	0x45c0: 0x00659692, 0x45c1: 0x00659892, 0x45c2: 0x00659a92, 0x45c3: 0x00659c92,
-	0x45c4: 0x00659e92, 0x45c5: 0x0065a092, 0x45c6: 0x0065a292, 0x45c7: 0x0065a492,
-	0x45c8: 0x0065a692, 0x45c9: 0x0065a892, 0x45ca: 0x0065aa92, 0x45cb: 0x0065ac92,
-	0x45cc: 0x0065ae92, 0x45cd: 0x0065b092, 0x45ce: 0x0065b292, 0x45cf: 0x0065b492,
-	0x45d0: 0x0065b692, 0x45d1: 0x0065b892, 0x45d2: 0x0065ba92, 0x45d3: 0x0065bc92,
-	0x45d4: 0x0065be92, 0x45d5: 0x0065c092, 0x45d6: 0x0065c492, 0x45d7: 0x0065c692,
-	0x45d8: 0x0065c892, 0x45d9: 0x0065ca92, 0x45da: 0x0065cc92, 0x45db: 0x0065ce92,
-	0x45dc: 0x0065d092, 0x45dd: 0x0065d892, 0x45de: 0xa0012812, 0x45df: 0xa0012912,
-	0x45e0: 0x0063a692, 0x45e1: 0x0062ac92, 0x45e2: 0x0062ae92, 0x45e3: 0x00646892,
-	0x45e4: 0x0062b092, 0x45e5: 0x00646c92, 0x45e6: 0x00646e92, 0x45e7: 0x0062b292,
-	0x45e8: 0x0062b492, 0x45e9: 0x0062b692, 0x45ea: 0x00647492, 0x45eb: 0x00647692,
-	0x45ec: 0x00647892, 0x45ed: 0x00647a92, 0x45ee: 0x00647c92, 0x45ef: 0x00647e92,
-	0x45f0: 0x0062e092, 0x45f1: 0x0062b892, 0x45f2: 0x0062ba92, 0x45f3: 0x0062bc92,
-	0x45f4: 0x0062ee92, 0x45f5: 0x0062be92, 0x45f6: 0x0062c092, 0x45f7: 0x0062c292,
-	0x45f8: 0x0062c492, 0x45f9: 0x0062c692, 0x45fa: 0x0062c892, 0x45fb: 0x0062ca92,
-	0x45fc: 0x0062cc92, 0x45fd: 0x0062ce92, 0x45fe: 0x0062d092,
-	// Block 0x118, offset 0x4600
-	0x4602: 0x0063a892, 0x4603: 0x0063aa92,
-	0x4604: 0x0063ac92, 0x4605: 0x0063ae92, 0x4606: 0x0063b092, 0x4607: 0x0063b292,
-	0x460a: 0x0063b492, 0x460b: 0x0063b692,
-	0x460c: 0x0063b892, 0x460d: 0x0063ba92, 0x460e: 0x0063bc92, 0x460f: 0x0063be92,
-	0x4612: 0x0063c092, 0x4613: 0x0063c292,
-	0x4614: 0x0063c492, 0x4615: 0x0063c692, 0x4616: 0x0063c892, 0x4617: 0x0063ca92,
-	0x461a: 0x0063cc92, 0x461b: 0x0063ce92,
-	0x461c: 0x0063d092,
-	0x4620: 0x0027dc83, 0x4621: 0x0027e083, 0x4622: 0x00094683, 0x4623: 0x00062683,
-	0x4624: 0x00094a83, 0x4625: 0x0027e283, 0x4626: 0x00280883,
-	0x4628: 0x000d3292, 0x4629: 0x00084492, 0x462a: 0x00084892, 0x462b: 0x00084692,
-	0x462c: 0x00084a92, 0x462d: 0x000e6e92, 0x462e: 0x000ec492,
-	0x4639: 0xa0000000, 0x463a: 0xa0000000, 0x463b: 0xa0000000,
-	0x463c: 0x4027ae20, 0x463d: 0x4027b020, 0x463e: 0x00000285, 0x463f: 0x2bfffe85,
-	// Block 0x119, offset 0x4640
-	0x4640: 0x40731a20, 0x4641: 0x40731c20, 0x4642: 0x40731e20, 0x4643: 0x40732020,
-	0x4644: 0x40732220, 0x4645: 0x40732420, 0x4646: 0x40732620, 0x4647: 0x40732820,
-	0x4648: 0x40732a20, 0x4649: 0x40732c20, 0x464a: 0x40732e20, 0x464b: 0x40733020,
-	0x464d: 0x40733220, 0x464e: 0x40733420, 0x464f: 0x40733620,
-	0x4650: 0x40733820, 0x4651: 0x40733a20, 0x4652: 0x40733c20, 0x4653: 0x40733e20,
-	0x4654: 0x40734020, 0x4655: 0x40734220, 0x4656: 0x40734420, 0x4657: 0x40734620,
-	0x4658: 0x40734820, 0x4659: 0x40734a20, 0x465a: 0x40734c20, 0x465b: 0x40734e20,
-	0x465c: 0x40735020, 0x465d: 0x40735220, 0x465e: 0x40735420, 0x465f: 0x40735620,
-	0x4660: 0x40735820, 0x4661: 0x40735a20, 0x4662: 0x40735c20, 0x4663: 0x40735e20,
-	0x4664: 0x40736020, 0x4665: 0x40736220, 0x4666: 0x40736420,
-	0x4668: 0x40736620, 0x4669: 0x40736820, 0x466a: 0x40736a20, 0x466b: 0x40736c20,
-	0x466c: 0x40736e20, 0x466d: 0x40737020, 0x466e: 0x40737220, 0x466f: 0x40737420,
-	0x4670: 0x40737620, 0x4671: 0x40737820, 0x4672: 0x40737a20, 0x4673: 0x40737c20,
-	0x4674: 0x40737e20, 0x4675: 0x40738020, 0x4676: 0x40738220, 0x4677: 0x40738420,
-	0x4678: 0x40738620, 0x4679: 0x40738820, 0x467a: 0x40738a20,
-	0x467c: 0x40738c20, 0x467d: 0x40738e20, 0x467f: 0x40739020,
-	// Block 0x11a, offset 0x4680
-	0x4680: 0x40739220, 0x4681: 0x40739420, 0x4682: 0x40739620, 0x4683: 0x40739820,
-	0x4684: 0x40739a20, 0x4685: 0x40739c20, 0x4686: 0x40739e20, 0x4687: 0x4073a020,
-	0x4688: 0x4073a220, 0x4689: 0x4073a420, 0x468a: 0x4073a620, 0x468b: 0x4073a820,
-	0x468c: 0x4073aa20, 0x468d: 0x4073ac20,
-	0x4690: 0x4073ae20, 0x4691: 0x4073b020, 0x4692: 0x4073b220, 0x4693: 0x4073b420,
-	0x4694: 0x4073b620, 0x4695: 0x4073b820, 0x4696: 0x4073ba20, 0x4697: 0x4073bc20,
-	0x4698: 0x4073be20, 0x4699: 0x4073c020, 0x469a: 0x4073c220, 0x469b: 0x4073c420,
-	0x469c: 0x4073c620, 0x469d: 0x4073c820,
-	// Block 0x11b, offset 0x46c0
-	0x46c0: 0x4073ca20, 0x46c1: 0x4073cc20, 0x46c2: 0x4073ce20, 0x46c3: 0x4073d020,
-	0x46c4: 0x4073d220, 0x46c5: 0x4073d420, 0x46c6: 0x4073d620, 0x46c7: 0x4073d820,
-	0x46c8: 0x4073da20, 0x46c9: 0x4073dc20, 0x46ca: 0x4073de20, 0x46cb: 0x4073e020,
-	0x46cc: 0x4073e220, 0x46cd: 0x4073e420, 0x46ce: 0x4073e620, 0x46cf: 0x4073e820,
-	0x46d0: 0x4073ea20, 0x46d1: 0x4073ec20, 0x46d2: 0x4073ee20, 0x46d3: 0x4073f020,
-	0x46d4: 0x4073f220, 0x46d5: 0x4073f420, 0x46d6: 0x4073f620, 0x46d7: 0x4073f820,
-	0x46d8: 0x4073fa20, 0x46d9: 0x4073fc20, 0x46da: 0x4073fe20, 0x46db: 0x40740020,
-	0x46dc: 0x40740220, 0x46dd: 0x40740420, 0x46de: 0x40740620, 0x46df: 0x40740820,
-	0x46e0: 0x40740a20, 0x46e1: 0x40740c20, 0x46e2: 0x40740e20, 0x46e3: 0x40741020,
-	0x46e4: 0x40741220, 0x46e5: 0x40741420, 0x46e6: 0x40741620, 0x46e7: 0x40741820,
-	0x46e8: 0x40741a20, 0x46e9: 0x40741c20, 0x46ea: 0x40741e20, 0x46eb: 0x40742020,
-	0x46ec: 0x40742220, 0x46ed: 0x40742420, 0x46ee: 0x40742620, 0x46ef: 0x40742820,
-	0x46f0: 0x40742a20, 0x46f1: 0x40742c20, 0x46f2: 0x40742e20, 0x46f3: 0x40743020,
-	0x46f4: 0x40743220, 0x46f5: 0x40743420, 0x46f6: 0x40743620, 0x46f7: 0x40743820,
-	0x46f8: 0x40743a20, 0x46f9: 0x40743c20, 0x46fa: 0x40743e20, 0x46fb: 0x40744020,
-	0x46fc: 0x40744220, 0x46fd: 0x40744420, 0x46fe: 0x40744620, 0x46ff: 0x40744820,
-	// Block 0x11c, offset 0x4700
-	0x4700: 0x40744a20, 0x4701: 0x40744c20, 0x4702: 0x40744e20, 0x4703: 0x40745020,
-	0x4704: 0x40745220, 0x4705: 0x40745420, 0x4706: 0x40745620, 0x4707: 0x40745820,
-	0x4708: 0x40745a20, 0x4709: 0x40745c20, 0x470a: 0x40745e20, 0x470b: 0x40746020,
-	0x470c: 0x40746220, 0x470d: 0x40746420, 0x470e: 0x40746620, 0x470f: 0x40746820,
-	0x4710: 0x40746a20, 0x4711: 0x40746c20, 0x4712: 0x40746e20, 0x4713: 0x40747020,
-	0x4714: 0x40747220, 0x4715: 0x40747420, 0x4716: 0x40747620, 0x4717: 0x40747820,
-	0x4718: 0x40747a20, 0x4719: 0x40747c20, 0x471a: 0x40747e20, 0x471b: 0x40748020,
-	0x471c: 0x40748220, 0x471d: 0x40748420, 0x471e: 0x40748620, 0x471f: 0x40748820,
-	0x4720: 0x40748a20, 0x4721: 0x40748c20, 0x4722: 0x40748e20, 0x4723: 0x40749020,
-	0x4724: 0x40749220, 0x4725: 0x40749420, 0x4726: 0x40749620, 0x4727: 0x40749820,
-	0x4728: 0x40749a20, 0x4729: 0x40749c20, 0x472a: 0x40749e20, 0x472b: 0x4074a020,
-	0x472c: 0x4074a220, 0x472d: 0x4074a420, 0x472e: 0x4074a620, 0x472f: 0x4074a820,
-	0x4730: 0x4074aa20, 0x4731: 0x4074ac20, 0x4732: 0x4074ae20, 0x4733: 0x4074b020,
-	0x4734: 0x4074b220, 0x4735: 0x4074b420, 0x4736: 0x4074b620, 0x4737: 0x4074b820,
-	0x4738: 0x4074ba20, 0x4739: 0x4074bc20, 0x473a: 0x4074be20,
-	// Block 0x11d, offset 0x4740
-	0x4740: 0x4003be20, 0x4741: 0x4003c020, 0x4742: 0x4003c220,
-	0x4747: 0xe000026a,
-	0x4748: 0xe0000382, 0x4749: 0xe000045c, 0x474a: 0xe0000531, 0x474b: 0xe00005fb,
-	0x474c: 0xe00006c6, 0x474d: 0xe000076e, 0x474e: 0xe000081a, 0x474f: 0xe00008bf,
-	0x4750: 0x4028ba20, 0x4751: 0x4028bc20, 0x4752: 0x4028be20, 0x4753: 0x4028c020,
-	0x4754: 0x4028c220, 0x4755: 0x4028c420, 0x4756: 0x4028c620, 0x4757: 0x4028c820,
-	0x4758: 0x4028ca20, 0x4759: 0x4028cc20, 0x475a: 0x4028ce20, 0x475b: 0x4028d020,
-	0x475c: 0x4028d220, 0x475d: 0x4028d420, 0x475e: 0x4028d620, 0x475f: 0x4028d820,
-	0x4760: 0x4028da20, 0x4761: 0x4028dc20, 0x4762: 0x4028de20, 0x4763: 0x4028e020,
-	0x4764: 0x4028e220, 0x4765: 0x4028e420, 0x4766: 0x4028e620, 0x4767: 0x4028e820,
-	0x4768: 0x4028ea20, 0x4769: 0x4028ec20, 0x476a: 0x4028ee20, 0x476b: 0x4028f020,
-	0x476c: 0x4028f220, 0x476d: 0x4028f420, 0x476e: 0x4028f620, 0x476f: 0x4028f820,
-	0x4770: 0x4028fa20, 0x4771: 0x4028fc20, 0x4772: 0x4028fe20, 0x4773: 0x40290020,
-	0x4777: 0x401afe20,
-	0x4778: 0x401b0020, 0x4779: 0x401b0220, 0x477a: 0x401b0420, 0x477b: 0x401b0620,
-	0x477c: 0x401b0820, 0x477d: 0x401b0a20, 0x477e: 0x401b0c20, 0x477f: 0x401b0e20,
-	// Block 0x11e, offset 0x4780
-	0x4780: 0x40290220, 0x4781: 0x40290420, 0x4782: 0xe000026d, 0x4783: 0xe00005fe,
-	0x4784: 0x40290620, 0x4785: 0x40290820, 0x4786: 0x40290a20, 0x4787: 0x40290c20,
-	0x4788: 0xe0000601, 0x4789: 0x40290e20, 0x478a: 0x40291020, 0x478b: 0x40291220,
-	0x478c: 0x40291420, 0x478d: 0x40291620, 0x478e: 0x40291820, 0x478f: 0xe0000604,
-	0x4790: 0x40291a20, 0x4791: 0x40291c20, 0x4792: 0x40291e20, 0x4793: 0x40292020,
-	0x4794: 0x40292220, 0x4795: 0x40292420, 0x4796: 0x40292620, 0x4797: 0x40292820,
-	0x4798: 0xe0000270, 0x4799: 0xe0000273, 0x479a: 0xe0000276, 0x479b: 0xe0000385,
-	0x479c: 0xe0000388, 0x479d: 0xe000038b, 0x479e: 0xe000038e, 0x479f: 0xe0000607,
-	0x47a0: 0x40292a20, 0x47a1: 0x40292c20, 0x47a2: 0x40292e20, 0x47a3: 0x40293020,
-	0x47a4: 0x40293220, 0x47a5: 0x40293420, 0x47a6: 0x40293620, 0x47a7: 0x40293820,
-	0x47a8: 0x40293a20, 0x47a9: 0x40293c20, 0x47aa: 0x40293e20, 0x47ab: 0x40294020,
-	0x47ac: 0x40294220, 0x47ad: 0x40294420, 0x47ae: 0x40294620, 0x47af: 0x40294820,
-	0x47b0: 0x40294a20, 0x47b1: 0x40294c20, 0x47b2: 0x40294e20, 0x47b3: 0xe000060a,
-	0x47b4: 0x40295020, 0x47b5: 0x40295220, 0x47b6: 0x40295420, 0x47b7: 0x40295620,
-	0x47b8: 0x40295820, 0x47b9: 0x401b1020, 0x47ba: 0x401b1220, 0x47bb: 0x401b1420,
-	0x47bc: 0x401b1620, 0x47bd: 0x401b1820, 0x47be: 0x401b1a20, 0x47bf: 0x401b1c20,
-	// Block 0x11f, offset 0x47c0
-	0x47c0: 0x401b1e20, 0x47c1: 0x401b2020, 0x47c2: 0x401b2220, 0x47c3: 0x401b2420,
-	0x47c4: 0x401b2620, 0x47c5: 0x401b2820, 0x47c6: 0x401b2a20, 0x47c7: 0x401b2c20,
-	0x47c8: 0x401b2e20, 0x47c9: 0x401b3020, 0x47ca: 0xe00001d6,
-	0x47d0: 0x401b3220, 0x47d1: 0x401b3420, 0x47d2: 0x401b3620, 0x47d3: 0x401b3820,
-	0x47d4: 0x401b3a20, 0x47d5: 0x401b3c20, 0x47d6: 0x401b3e20, 0x47d7: 0x401b4020,
-	0x47d8: 0x401b4220, 0x47d9: 0x401b4420, 0x47da: 0x401b4620, 0x47db: 0x401b4820,
-	// Block 0x120, offset 0x4800
-	0x4810: 0x401b4a20, 0x4811: 0x401b4c20, 0x4812: 0x401b4e20, 0x4813: 0x401b5020,
-	0x4814: 0x401b5220, 0x4815: 0x401b5420, 0x4816: 0x401b5620, 0x4817: 0x401b5820,
-	0x4818: 0x401b5a20, 0x4819: 0x401b5c20, 0x481a: 0x401b5e20, 0x481b: 0x401b6020,
-	0x481c: 0x401b6220, 0x481d: 0x401b6420, 0x481e: 0x401b6620, 0x481f: 0x401b6820,
-	0x4820: 0x401b6a20, 0x4821: 0x401b6c20, 0x4822: 0x401b6e20, 0x4823: 0x401b7020,
-	0x4824: 0x401b7220, 0x4825: 0x401b7420, 0x4826: 0x401b7620, 0x4827: 0x401b7820,
-	0x4828: 0x401b7a20, 0x4829: 0x401b7c20, 0x482a: 0x401b7e20, 0x482b: 0x401b8020,
-	0x482c: 0x401b8220, 0x482d: 0x401b8420, 0x482e: 0x401b8620, 0x482f: 0x401b8820,
-	0x4830: 0x401b8a20, 0x4831: 0x401b8c20, 0x4832: 0x401b8e20, 0x4833: 0x401b9020,
-	0x4834: 0x401b9220, 0x4835: 0x401b9420, 0x4836: 0x401b9620, 0x4837: 0x401b9820,
-	0x4838: 0x401b9a20, 0x4839: 0x401b9c20, 0x483a: 0x401b9e20, 0x483b: 0x401ba020,
-	0x483c: 0x401ba220, 0x483d: 0xadc13802,
-	// Block 0x121, offset 0x4840
-	0x4840: 0x4070b820, 0x4841: 0x4070ba20, 0x4842: 0x4070bc20, 0x4843: 0x4070be20,
-	0x4844: 0x4070c020, 0x4845: 0x4070c220, 0x4846: 0x4070c420, 0x4847: 0x4070c620,
-	0x4848: 0x4070c820, 0x4849: 0x4070ca20, 0x484a: 0x4070cc20, 0x484b: 0x4070ce20,
-	0x484c: 0x4070d020, 0x484d: 0x4070d220, 0x484e: 0x4070d420, 0x484f: 0x4070d620,
-	0x4850: 0x4070d820, 0x4851: 0x4070da20, 0x4852: 0x4070dc20, 0x4853: 0x4070de20,
-	0x4854: 0x4070e020, 0x4855: 0x4070e220, 0x4856: 0x4070e420, 0x4857: 0x4070e620,
-	0x4858: 0x4070e820, 0x4859: 0x4070ea20, 0x485a: 0x4070ec20, 0x485b: 0x4070ee20,
-	0x485c: 0x4070f020,
-	0x4860: 0x4070f220, 0x4861: 0x4070f420, 0x4862: 0x4070f620, 0x4863: 0x4070f820,
-	0x4864: 0x4070fa20, 0x4865: 0x4070fc20, 0x4866: 0x4070fe20, 0x4867: 0x40710020,
-	0x4868: 0x40710220, 0x4869: 0x40710420, 0x486a: 0x40710620, 0x486b: 0x40710820,
-	0x486c: 0x40710a20, 0x486d: 0x40710c20, 0x486e: 0x40710e20, 0x486f: 0x40711020,
-	0x4870: 0x40711220, 0x4871: 0x40711420, 0x4872: 0x40711620, 0x4873: 0x40711820,
-	0x4874: 0x40711a20, 0x4875: 0x40711c20, 0x4876: 0x40711e20, 0x4877: 0x40712020,
-	0x4878: 0x40712220, 0x4879: 0x40712420, 0x487a: 0x40712620, 0x487b: 0x40712820,
-	0x487c: 0x40712a20, 0x487d: 0x40712c20, 0x487e: 0x40712e20, 0x487f: 0x40713020,
-	// Block 0x122, offset 0x4880
-	0x4880: 0x40713220, 0x4881: 0x40713420, 0x4882: 0x40713620, 0x4883: 0x40713820,
-	0x4884: 0x40713a20, 0x4885: 0x40713c20, 0x4886: 0x40713e20, 0x4887: 0x40714020,
-	0x4888: 0x40714220, 0x4889: 0x40714420, 0x488a: 0x40714620, 0x488b: 0x40714820,
-	0x488c: 0x40714a20, 0x488d: 0x40714c20, 0x488e: 0x40714e20, 0x488f: 0x40715020,
-	0x4890: 0x40715220,
-	// Block 0x123, offset 0x48c0
-	0x48c0: 0x40718820, 0x48c1: 0x40718a20, 0x48c2: 0x40718c20, 0x48c3: 0x40718e20,
-	0x48c4: 0x40719020, 0x48c5: 0x40719220, 0x48c6: 0x40719420, 0x48c7: 0x40719620,
-	0x48c8: 0x40719820, 0x48c9: 0x40719a20, 0x48ca: 0x40719c20, 0x48cb: 0x40719e20,
-	0x48cc: 0x4071a020, 0x48cd: 0x4071a220, 0x48ce: 0x4071a420, 0x48cf: 0x4071a620,
-	0x48d0: 0x4071a820, 0x48d1: 0x4071aa20, 0x48d2: 0x4071ac20, 0x48d3: 0x4071ae20,
-	0x48d4: 0x4071b020, 0x48d5: 0x4071b220, 0x48d6: 0x4071b420, 0x48d7: 0x4071b620,
-	0x48d8: 0x4071b820, 0x48d9: 0x4071ba20, 0x48da: 0x4071bc20, 0x48db: 0x4071be20,
-	0x48dc: 0x4071c020, 0x48dd: 0x4071c220, 0x48de: 0x4071c420,
-	0x48e0: 0xe0000279, 0x48e1: 0xe000060d, 0x48e2: 0x4028b620, 0x48e3: 0x4028b820,
-	0x48f0: 0x4071c620, 0x48f1: 0x4071c820, 0x48f2: 0x4071ca20, 0x48f3: 0x4071cc20,
-	0x48f4: 0x4071ce20, 0x48f5: 0x4071d020, 0x48f6: 0x4071d220, 0x48f7: 0x4071d420,
-	0x48f8: 0x4071d620, 0x48f9: 0x4071d820, 0x48fa: 0x4071da20, 0x48fb: 0x4071dc20,
-	0x48fc: 0x4071de20, 0x48fd: 0x4071e020, 0x48fe: 0x4071e220, 0x48ff: 0x4071e420,
-	// Block 0x124, offset 0x4900
-	0x4900: 0x4071e620, 0x4901: 0x4071e820, 0x4902: 0x4071ea20, 0x4903: 0x4071ec20,
-	0x4904: 0x4071ee20, 0x4905: 0x4071f020, 0x4906: 0x4071f220, 0x4907: 0x4071f420,
-	0x4908: 0x4071f620, 0x4909: 0x4071f820, 0x490a: 0x4071fa20,
-	// Block 0x125, offset 0x4940
-	0x4940: 0x40765020, 0x4941: 0x40765220, 0x4942: 0x40765420, 0x4943: 0x40765620,
-	0x4944: 0x40765820, 0x4945: 0x40765a20, 0x4946: 0x40765c20, 0x4947: 0x40765e20,
-	0x4948: 0x40766020, 0x4949: 0x40766220, 0x494a: 0x40766420, 0x494b: 0x40766620,
-	0x494c: 0x40766820, 0x494d: 0x40766a20, 0x494e: 0x40766c20, 0x494f: 0x40766e20,
-	0x4950: 0x40767020, 0x4951: 0x40767220, 0x4952: 0x40767420, 0x4953: 0x40767620,
-	0x4954: 0x40767820, 0x4955: 0x40767a20, 0x4956: 0x40767c20, 0x4957: 0x40767e20,
-	0x4958: 0x40768020, 0x4959: 0x40768220, 0x495a: 0x40768420, 0x495b: 0x40768620,
-	0x495c: 0x40768820, 0x495d: 0x40768a20, 0x495f: 0x4003c420,
-	0x4960: 0x40768c20, 0x4961: 0x40768e20, 0x4962: 0x40769020, 0x4963: 0x40769220,
-	0x4964: 0x40769420, 0x4965: 0x40769620, 0x4966: 0x40769820, 0x4967: 0x40769a20,
-	0x4968: 0x40769c20, 0x4969: 0x40769e20, 0x496a: 0x4076a020, 0x496b: 0x4076a220,
-	0x496c: 0x4076a420, 0x496d: 0x4076a620, 0x496e: 0x4076a820, 0x496f: 0x4076aa20,
-	0x4970: 0x4076ac20, 0x4971: 0x4076ae20, 0x4972: 0x4076b020, 0x4973: 0x4076b220,
-	0x4974: 0x4076b420, 0x4975: 0x4076b620, 0x4976: 0x4076b820, 0x4977: 0x4076ba20,
-	0x4978: 0x4076bc20, 0x4979: 0x4076be20, 0x497a: 0x4076c020, 0x497b: 0x4076c220,
-	0x497c: 0x4076c420, 0x497d: 0x4076c620, 0x497e: 0x4076c820, 0x497f: 0x4076ca20,
-	// Block 0x126, offset 0x4980
-	0x4980: 0x4076cc20, 0x4981: 0x4076ce20, 0x4982: 0x4076d020, 0x4983: 0x4076d220,
-	0x4988: 0x4076d420, 0x4989: 0x4076d620, 0x498a: 0x4076d820, 0x498b: 0x4076da20,
-	0x498c: 0x4076dc20, 0x498d: 0x4076de20, 0x498e: 0x4076e020, 0x498f: 0x4076e220,
-	0x4990: 0x4003c620, 0x4991: 0xe000027c, 0x4992: 0xe0000391, 0x4993: 0x40295a20,
-	0x4994: 0x40295c20, 0x4995: 0x40295e20,
-	// Block 0x127, offset 0x49c0
-	0x49c0: 0x0071fc88, 0x49c1: 0x0071fe88, 0x49c2: 0x00720088, 0x49c3: 0x00720288,
-	0x49c4: 0x00720488, 0x49c5: 0x00720688, 0x49c6: 0x00720888, 0x49c7: 0x00720a88,
-	0x49c8: 0x00720c88, 0x49c9: 0x00720e88, 0x49ca: 0x00721088, 0x49cb: 0x00721288,
-	0x49cc: 0x00721488, 0x49cd: 0x00721688, 0x49ce: 0x00721888, 0x49cf: 0x00721a88,
-	0x49d0: 0x00721c88, 0x49d1: 0x00721e88, 0x49d2: 0x00722088, 0x49d3: 0x00722288,
-	0x49d4: 0x00722488, 0x49d5: 0x00722688, 0x49d6: 0x00722888, 0x49d7: 0x00722a88,
-	0x49d8: 0x00722c88, 0x49d9: 0x00722e88, 0x49da: 0x00723088, 0x49db: 0x00723288,
-	0x49dc: 0x00723488, 0x49dd: 0x00723688, 0x49de: 0x00723888, 0x49df: 0x00723a88,
-	0x49e0: 0x00723c88, 0x49e1: 0x00723e88, 0x49e2: 0x00724088, 0x49e3: 0x00724288,
-	0x49e4: 0x00724488, 0x49e5: 0x00724688, 0x49e6: 0x00724888, 0x49e7: 0x00724a88,
-	0x49e8: 0x4071fc20, 0x49e9: 0x4071fe20, 0x49ea: 0x40720020, 0x49eb: 0x40720220,
-	0x49ec: 0x40720420, 0x49ed: 0x40720620, 0x49ee: 0x40720820, 0x49ef: 0x40720a20,
-	0x49f0: 0x40720c20, 0x49f1: 0x40720e20, 0x49f2: 0x40721020, 0x49f3: 0x40721220,
-	0x49f4: 0x40721420, 0x49f5: 0x40721620, 0x49f6: 0x40721820, 0x49f7: 0x40721a20,
-	0x49f8: 0x40721c20, 0x49f9: 0x40721e20, 0x49fa: 0x40722020, 0x49fb: 0x40722220,
-	0x49fc: 0x40722420, 0x49fd: 0x40722620, 0x49fe: 0x40722820, 0x49ff: 0x40722a20,
-	// Block 0x128, offset 0x4a00
-	0x4a00: 0x40722c20, 0x4a01: 0x40722e20, 0x4a02: 0x40723020, 0x4a03: 0x40723220,
-	0x4a04: 0x40723420, 0x4a05: 0x40723620, 0x4a06: 0x40723820, 0x4a07: 0x40723a20,
-	0x4a08: 0x40723c20, 0x4a09: 0x40723e20, 0x4a0a: 0x40724020, 0x4a0b: 0x40724220,
-	0x4a0c: 0x40724420, 0x4a0d: 0x40724620, 0x4a0e: 0x40724820, 0x4a0f: 0x40724a20,
-	0x4a10: 0x40724c20, 0x4a11: 0x40724e20, 0x4a12: 0x40725020, 0x4a13: 0x40725220,
-	0x4a14: 0x40725420, 0x4a15: 0x40725620, 0x4a16: 0x40725820, 0x4a17: 0x40725a20,
-	0x4a18: 0x40725c20, 0x4a19: 0x40725e20, 0x4a1a: 0x40726020, 0x4a1b: 0x40726220,
-	0x4a1c: 0x40726420, 0x4a1d: 0x40726620, 0x4a1e: 0x40726820, 0x4a1f: 0x40726a20,
-	0x4a20: 0x40726c20, 0x4a21: 0x40726e20, 0x4a22: 0x40727020, 0x4a23: 0x40727220,
-	0x4a24: 0x40727420, 0x4a25: 0x40727620, 0x4a26: 0x40727820, 0x4a27: 0x40727a20,
-	0x4a28: 0x40727c20, 0x4a29: 0x40727e20, 0x4a2a: 0x40728020, 0x4a2b: 0x40728220,
-	0x4a2c: 0x40728420, 0x4a2d: 0x40728620, 0x4a2e: 0x40728820, 0x4a2f: 0x40728a20,
-	0x4a30: 0x40728c20, 0x4a31: 0x40728e20, 0x4a32: 0x40729020, 0x4a33: 0x40729220,
-	0x4a34: 0x40729420, 0x4a35: 0x40729620, 0x4a36: 0x40729820, 0x4a37: 0x40729a20,
-	0x4a38: 0x40729c20, 0x4a39: 0x40729e20, 0x4a3a: 0x4072a020, 0x4a3b: 0x4072a220,
-	0x4a3c: 0x4072a420, 0x4a3d: 0x4072a620, 0x4a3e: 0x4072a820, 0x4a3f: 0x4072aa20,
-	// Block 0x129, offset 0x4a40
-	0x4a40: 0x4072ac20, 0x4a41: 0x4072ae20, 0x4a42: 0x4072b020, 0x4a43: 0x4072b220,
-	0x4a44: 0x4072b420, 0x4a45: 0x4072b620, 0x4a46: 0x4072b820, 0x4a47: 0x4072ba20,
-	0x4a48: 0x4072bc20, 0x4a49: 0x4072be20, 0x4a4a: 0x4072c020, 0x4a4b: 0x4072c220,
-	0x4a4c: 0x4072c420, 0x4a4d: 0x4072c620, 0x4a4e: 0x4072c820, 0x4a4f: 0x4072ca20,
-	0x4a50: 0x4072cc20, 0x4a51: 0x4072ce20, 0x4a52: 0x4072d020, 0x4a53: 0x4072d220,
-	0x4a54: 0x4072d420, 0x4a55: 0x4072d620, 0x4a56: 0x4072d820, 0x4a57: 0x4072da20,
-	0x4a58: 0x4072dc20, 0x4a59: 0x4072de20, 0x4a5a: 0x4072e020, 0x4a5b: 0x4072e220,
-	0x4a5c: 0x4072e420, 0x4a5d: 0x4072e620,
-	0x4a60: 0xe0000167, 0x4a61: 0xe00001f5, 0x4a62: 0xe0000310, 0x4a63: 0xe00003ea,
-	0x4a64: 0xe00004c5, 0x4a65: 0xe000058f, 0x4a66: 0xe000065a, 0x4a67: 0xe0000702,
-	0x4a68: 0xe00007ae, 0x4a69: 0xe0000853,
-	// Block 0x12a, offset 0x4a80
-	0x4a80: 0x4074c020, 0x4a81: 0x4074c220, 0x4a82: 0x4074c420, 0x4a83: 0x4074c620,
-	0x4a84: 0x4074c820, 0x4a85: 0x4074ca20,
-	0x4a88: 0x4074cc20, 0x4a8a: 0x4074ce20, 0x4a8b: 0x4074d020,
-	0x4a8c: 0x4074d220, 0x4a8d: 0x4074d420, 0x4a8e: 0x4074d620, 0x4a8f: 0x4074d820,
-	0x4a90: 0x4074da20, 0x4a91: 0x4074dc20, 0x4a92: 0x4074de20, 0x4a93: 0x4074e020,
-	0x4a94: 0x4074e220, 0x4a95: 0x4074e420, 0x4a96: 0x4074e620, 0x4a97: 0x4074e820,
-	0x4a98: 0x4074ea20, 0x4a99: 0x4074ec20, 0x4a9a: 0x4074ee20, 0x4a9b: 0x4074f020,
-	0x4a9c: 0x4074f220, 0x4a9d: 0x4074f420, 0x4a9e: 0x4074f620, 0x4a9f: 0x4074f820,
-	0x4aa0: 0x4074fa20, 0x4aa1: 0x4074fc20, 0x4aa2: 0x4074fe20, 0x4aa3: 0x40750020,
-	0x4aa4: 0x40750220, 0x4aa5: 0x40750420, 0x4aa6: 0x40750620, 0x4aa7: 0x40750820,
-	0x4aa8: 0x40750a20, 0x4aa9: 0x40750c20, 0x4aaa: 0x40750e20, 0x4aab: 0x40751020,
-	0x4aac: 0x40751220, 0x4aad: 0x40751420, 0x4aae: 0x40751620, 0x4aaf: 0x40751820,
-	0x4ab0: 0x40751a20, 0x4ab1: 0x40751c20, 0x4ab2: 0x40751e20, 0x4ab3: 0x40752020,
-	0x4ab4: 0x40752220, 0x4ab5: 0x40752420, 0x4ab7: 0x40752620,
-	0x4ab8: 0x40752820,
-	0x4abc: 0x40752a20, 0x4abf: 0x40752c20,
-	// Block 0x12b, offset 0x4ac0
-	0x4ac0: 0x4075d220, 0x4ac1: 0x4075d420, 0x4ac2: 0x4075d620, 0x4ac3: 0x4075d820,
-	0x4ac4: 0x4075da20, 0x4ac5: 0x4075dc20, 0x4ac6: 0x4075de20, 0x4ac7: 0x4075e020,
-	0x4ac8: 0x4075e220, 0x4ac9: 0x4075e420, 0x4aca: 0x4075e620, 0x4acb: 0x4075e820,
-	0x4acc: 0x4075ea20, 0x4acd: 0x4075ec20, 0x4ace: 0x4075ee20, 0x4acf: 0x4075f020,
-	0x4ad0: 0x4075f220, 0x4ad1: 0x4075f420, 0x4ad2: 0x4075f620, 0x4ad3: 0x4075f820,
-	0x4ad4: 0x4075fa20, 0x4ad5: 0x4075fc20, 0x4ad7: 0x40038620,
-	0x4ad8: 0xe0000297, 0x4ad9: 0xe00003b2, 0x4ada: 0xe000048c, 0x4adb: 0x40296820,
-	0x4adc: 0x40296a20, 0x4add: 0x40296c20, 0x4ade: 0x40296e20, 0x4adf: 0x40297020,
-	// Block 0x12c, offset 0x4b00
-	0x4b00: 0x4038bc20, 0x4b01: 0x4038be20, 0x4b02: 0x4038c020, 0x4b03: 0x4038c220,
-	0x4b04: 0x4038c420, 0x4b05: 0x4038c620, 0x4b06: 0x4038c820, 0x4b07: 0x4038ca20,
-	0x4b08: 0x4038cc20, 0x4b09: 0x4038ce20, 0x4b0a: 0x4038d020, 0x4b0b: 0x4038d220,
-	0x4b0c: 0x4038d420, 0x4b0d: 0x4038d620, 0x4b0e: 0x4038d820, 0x4b0f: 0x4038da20,
-	0x4b10: 0x4038dc20, 0x4b11: 0x4038de20, 0x4b12: 0x4038e020, 0x4b13: 0x4038e220,
-	0x4b14: 0x4038e420, 0x4b15: 0x4038e620, 0x4b16: 0xe0000294, 0x4b17: 0x40296220,
-	0x4b18: 0x40296420, 0x4b19: 0x40296620, 0x4b1a: 0xe00003af, 0x4b1b: 0xe0000489,
-	0x4b1f: 0x4003c820,
-	0x4b20: 0x40715420, 0x4b21: 0x40715620, 0x4b22: 0x40715820, 0x4b23: 0x40715a20,
-	0x4b24: 0x40715c20, 0x4b25: 0x40715e20, 0x4b26: 0x40716020, 0x4b27: 0x40716220,
-	0x4b28: 0x40716420, 0x4b29: 0x40716620, 0x4b2a: 0x40716820, 0x4b2b: 0x40716a20,
-	0x4b2c: 0x40716c20, 0x4b2d: 0x40716e20, 0x4b2e: 0x40717020, 0x4b2f: 0x40717220,
-	0x4b30: 0x40717420, 0x4b31: 0x40717620, 0x4b32: 0x40717820, 0x4b33: 0x40717a20,
-	0x4b34: 0x40717c20, 0x4b35: 0x40717e20, 0x4b36: 0x40718020, 0x4b37: 0x40718220,
-	0x4b38: 0x40718420, 0x4b39: 0x40718620,
-	0x4b3f: 0x4003bc20,
-	// Block 0x12d, offset 0x4b40
-	0x4b40: 0xe00023a4, 0x4b41: 0xe00023a7, 0x4b42: 0xe00023aa, 0x4b43: 0xe00023ad,
-	0x4b44: 0xe00023b0, 0x4b45: 0xe00023b3, 0x4b46: 0xe00023b6, 0x4b47: 0xe00023b9,
-	0x4b48: 0xe00023bc, 0x4b49: 0xe00023bf, 0x4b4a: 0xe00023c2, 0x4b4b: 0xe00023c5,
-	0x4b4c: 0xe00023c8, 0x4b4d: 0xe00023cb, 0x4b4e: 0xe00023ce, 0x4b4f: 0xe00023d1,
-	0x4b50: 0xe00023d4, 0x4b51: 0xe00023d7, 0x4b52: 0xe00023da, 0x4b53: 0xe00023e0,
-	0x4b54: 0xe00023e3, 0x4b55: 0xe00023e6, 0x4b56: 0xe00023e9, 0x4b57: 0xe00023ec,
-	0x4b58: 0xe00023ef, 0x4b59: 0xe00023f2, 0x4b5a: 0xe00023f5, 0x4b5b: 0xe00023f8,
-	0x4b5c: 0xe00023fb, 0x4b5d: 0xe00023fe, 0x4b5e: 0x40865220, 0x4b5f: 0x40865420,
-	0x4b60: 0x40862020, 0x4b61: 0x40862220, 0x4b62: 0x40862420, 0x4b63: 0x40862620,
-	0x4b64: 0x40862820, 0x4b65: 0x40862a20, 0x4b66: 0x40862c20, 0x4b67: 0x40862e20,
-	0x4b68: 0x40863020, 0x4b69: 0x40863220, 0x4b6a: 0x40863420, 0x4b6b: 0x40863620,
-	0x4b6c: 0x40863820, 0x4b6d: 0x40863a20, 0x4b6e: 0x40863c20, 0x4b6f: 0x40863e20,
-	0x4b70: 0xe00023dd, 0x4b71: 0x40864020, 0x4b72: 0x40864220, 0x4b73: 0x40864420,
-	0x4b74: 0x40864620, 0x4b75: 0x40864820, 0x4b76: 0x40864a20, 0x4b77: 0x40864c20,
-	0x4b7e: 0x40864e20, 0x4b7f: 0x40865020,
-	// Block 0x12e, offset 0x4b80
-	0x4b80: 0x4048bc20, 0x4b81: 0x4048be20, 0x4b82: 0x4048c020, 0x4b83: 0x4048c220,
-	0x4b85: 0x4048c420, 0x4b86: 0x4048c620,
-	0x4b8c: 0x4048c820, 0x4b8d: 0xadc06002, 0x4b8e: 0xa000f302, 0x4b8f: 0xae60f402,
-	0x4b90: 0x4048ca20, 0x4b91: 0x4048cc20, 0x4b92: 0x4048ce20, 0x4b93: 0x4048d020,
-	0x4b95: 0x4048d220, 0x4b96: 0x4048d420, 0x4b97: 0x4048d620,
-	0x4b99: 0x4048d820, 0x4b9a: 0x4048da20, 0x4b9b: 0x4048dc20,
-	0x4b9c: 0x4048de20, 0x4b9d: 0x4048e020, 0x4b9e: 0x4048e220, 0x4b9f: 0x4048e420,
-	0x4ba0: 0x4048e620, 0x4ba1: 0x4048e820, 0x4ba2: 0x4048ea20, 0x4ba3: 0x4048ec20,
-	0x4ba4: 0x4048ee20, 0x4ba5: 0x4048f020, 0x4ba6: 0x4048f220, 0x4ba7: 0x4048f420,
-	0x4ba8: 0x4048f620, 0x4ba9: 0x4048f820, 0x4baa: 0x4048fa20, 0x4bab: 0x4048fc20,
-	0x4bac: 0x4048fe20, 0x4bad: 0x40490020, 0x4bae: 0x40490220, 0x4baf: 0x40490420,
-	0x4bb0: 0x40490620, 0x4bb1: 0x40490820, 0x4bb2: 0x40490a20, 0x4bb3: 0x40490c20,
-	0x4bb8: 0xae60fb02, 0x4bb9: 0xa010fc02, 0x4bba: 0xadc0fd02,
-	0x4bbf: 0x82092487,
-	// Block 0x12f, offset 0x4bc0
-	0x4bc0: 0xe00002ac, 0x4bc1: 0xe00003c7, 0x4bc2: 0xe00004a1, 0x4bc3: 0xe0000573,
-	0x4bc4: 0x40299820, 0x4bc5: 0x40299a20, 0x4bc6: 0x40299c20, 0x4bc7: 0x40299e20,
-	0x4bd0: 0x40060620, 0x4bd1: 0x40060820, 0x4bd2: 0x40060a20, 0x4bd3: 0x40060c20,
-	0x4bd4: 0x40060e20, 0x4bd5: 0x40061020, 0x4bd6: 0x40034420, 0x4bd7: 0x40034620,
-	0x4bd8: 0x40061220,
-	0x4be0: 0x40752e20, 0x4be1: 0x40753020, 0x4be2: 0x40753220, 0x4be3: 0x40753420,
-	0x4be4: 0x40753620, 0x4be5: 0x40753820, 0x4be6: 0x40753a20, 0x4be7: 0x40753c20,
-	0x4be8: 0x40753e20, 0x4be9: 0x40754020, 0x4bea: 0x40754220, 0x4beb: 0x40754420,
-	0x4bec: 0x40754620, 0x4bed: 0x40754820, 0x4bee: 0x40754a20, 0x4bef: 0x40754c20,
-	0x4bf0: 0x40754e20, 0x4bf1: 0x40755020, 0x4bf2: 0x40755220, 0x4bf3: 0x40755420,
-	0x4bf4: 0x40755620, 0x4bf5: 0x40755820, 0x4bf6: 0x40755a20, 0x4bf7: 0x40755c20,
-	0x4bf8: 0x40755e20, 0x4bf9: 0x40756020, 0x4bfa: 0x40756220, 0x4bfb: 0x40756420,
-	0x4bfc: 0x40756620, 0x4bfd: 0xe0000291, 0x4bfe: 0x40296020, 0x4bff: 0x40061c20,
-	// Block 0x130, offset 0x4c00
-	0x4c00: 0x40756820, 0x4c01: 0x40756a20, 0x4c02: 0x40756c20, 0x4c03: 0x40756e20,
-	0x4c04: 0x40757020, 0x4c05: 0x40757220, 0x4c06: 0x40757420, 0x4c07: 0x40757620,
-	0x4c08: 0x40757820, 0x4c09: 0x40757a20, 0x4c0a: 0x40757c20, 0x4c0b: 0x40757e20,
-	0x4c0c: 0x40758020, 0x4c0d: 0x40758220, 0x4c0e: 0x40758420, 0x4c0f: 0x40758620,
-	0x4c10: 0x40758820, 0x4c11: 0x40758a20, 0x4c12: 0x40758c20, 0x4c13: 0x40758e20,
-	0x4c14: 0x40759020, 0x4c15: 0x40759220, 0x4c16: 0x40759420, 0x4c17: 0x40759620,
-	0x4c18: 0x40759820, 0x4c19: 0x40759a20, 0x4c1a: 0x40759c20, 0x4c1b: 0x40759e20,
-	0x4c1c: 0x4075a020, 0x4c1d: 0x4075a220, 0x4c1e: 0x4075a420, 0x4c1f: 0x4075a620,
-	0x4c20: 0x4075a820, 0x4c21: 0x4075aa20, 0x4c22: 0x4075ac20, 0x4c23: 0x4075ae20,
-	0x4c24: 0x4075b020, 0x4c25: 0x4075b220, 0x4c26: 0x4075b420, 0x4c27: 0x4075b620,
-	0x4c28: 0x4075b820, 0x4c29: 0x4075ba20, 0x4c2a: 0x4075bc20, 0x4c2b: 0x4075be20,
-	0x4c2c: 0x4075c020, 0x4c2d: 0x4075c220, 0x4c2e: 0xe00023a1, 0x4c2f: 0x4075c420,
-	0x4c30: 0x4075c620, 0x4c31: 0x4075c820, 0x4c32: 0x4075ca20, 0x4c33: 0x4075cc20,
-	0x4c34: 0x4075ce20, 0x4c35: 0x4075d020,
-	0x4c39: 0x40061420, 0x4c3a: 0x40038820, 0x4c3b: 0x40038a20,
-	0x4c3c: 0x40038c20, 0x4c3d: 0x40038e20, 0x4c3e: 0x40039020, 0x4c3f: 0x40039220,
-	// Block 0x131, offset 0x4c40
-	0x4c40: 0x4075fe20, 0x4c41: 0x40760020, 0x4c42: 0x40760220, 0x4c43: 0x40760420,
-	0x4c44: 0x40760620, 0x4c45: 0x40760820, 0x4c46: 0x40760a20, 0x4c47: 0x40760c20,
-	0x4c48: 0x40760e20, 0x4c49: 0x40761020, 0x4c4a: 0x40761220, 0x4c4b: 0x40761420,
-	0x4c4c: 0x40761620, 0x4c4d: 0x40761820, 0x4c4e: 0x40761a20, 0x4c4f: 0x40761c20,
-	0x4c50: 0x40761e20, 0x4c51: 0x40762020, 0x4c52: 0x40762220, 0x4c53: 0x40762420,
-	0x4c54: 0x40762620, 0x4c55: 0x40762820,
-	0x4c58: 0xe000029a, 0x4c59: 0xe00003b5, 0x4c5a: 0xe000048f, 0x4c5b: 0xe0000561,
-	0x4c5c: 0x40297220, 0x4c5d: 0x40297420, 0x4c5e: 0x40297620, 0x4c5f: 0x40297820,
-	0x4c60: 0x40762a20, 0x4c61: 0x40762c20, 0x4c62: 0x40762e20, 0x4c63: 0x40763020,
-	0x4c64: 0x40763220, 0x4c65: 0x40763420, 0x4c66: 0x40763620, 0x4c67: 0x40763820,
-	0x4c68: 0x40763a20, 0x4c69: 0x40763c20, 0x4c6a: 0x40763e20, 0x4c6b: 0x40764020,
-	0x4c6c: 0x40764220, 0x4c6d: 0x40764420, 0x4c6e: 0x40764620, 0x4c6f: 0x40764820,
-	0x4c70: 0x40764a20, 0x4c71: 0x40764c20, 0x4c72: 0x40764e20,
-	0x4c78: 0xe000029d, 0x4c79: 0xe00003b8, 0x4c7a: 0xe0000492, 0x4c7b: 0xe0000564,
-	0x4c7c: 0x40297a20, 0x4c7d: 0x40297c20, 0x4c7e: 0x40297e20, 0x4c7f: 0x40298020,
-	// Block 0x132, offset 0x4c80
-	0x4c80: 0x405b2620, 0x4c81: 0xe00020a7, 0x4c82: 0x405b2820, 0x4c83: 0x405b2a20,
-	0x4c84: 0xe00020aa, 0x4c85: 0x405b2c20, 0x4c86: 0x405b2e20, 0x4c87: 0x405b3020,
-	0x4c88: 0xe00020ad, 0x4c89: 0x405b3220, 0x4c8a: 0xe00020b0, 0x4c8b: 0x405b3420,
-	0x4c8c: 0xe00020b3, 0x4c8d: 0x405b3620, 0x4c8e: 0xe00020b6, 0x4c8f: 0x405b3820,
-	0x4c90: 0xe00020b9, 0x4c91: 0x405b3a20, 0x4c92: 0xe00020bc, 0x4c93: 0x405b3c20,
-	0x4c94: 0x405b3e20, 0x4c95: 0xe00020bf, 0x4c96: 0x405b4020, 0x4c97: 0xe00020c2,
-	0x4c98: 0x405b4220, 0x4c99: 0xe00020c5, 0x4c9a: 0x405b4420, 0x4c9b: 0xe00020c8,
-	0x4c9c: 0x405b4620, 0x4c9d: 0xe00020cb, 0x4c9e: 0x405b4820, 0x4c9f: 0xe00020ce,
-	0x4ca0: 0x405b4a20, 0x4ca1: 0x405b4c20, 0x4ca2: 0x405b4e20, 0x4ca3: 0x405b5020,
-	0x4ca4: 0x405b5220, 0x4ca5: 0xe00020d1, 0x4ca6: 0x405b5420, 0x4ca7: 0xe00020d4,
-	0x4ca8: 0x405b5620, 0x4ca9: 0xe00020d7, 0x4caa: 0x405b5820, 0x4cab: 0xe00020da,
-	0x4cac: 0x405b5a20, 0x4cad: 0x405b5c20, 0x4cae: 0xe00020dd, 0x4caf: 0x405b5e20,
-	0x4cb0: 0x405b6020, 0x4cb1: 0x405b6220, 0x4cb2: 0x405b6420, 0x4cb3: 0xe00020e0,
-	0x4cb4: 0x405b6620, 0x4cb5: 0xe00020e3, 0x4cb6: 0x405b6820, 0x4cb7: 0xe00020e6,
-	0x4cb8: 0x405b6a20, 0x4cb9: 0xe00020e9, 0x4cba: 0x405b6c20, 0x4cbb: 0xe00020ec,
-	0x4cbc: 0x405b6e20, 0x4cbd: 0x405b7020, 0x4cbe: 0x405b7220, 0x4cbf: 0x405b7420,
-	// Block 0x133, offset 0x4cc0
-	0x4cc0: 0xe00020ef, 0x4cc1: 0x405b7620, 0x4cc2: 0xe00020f2, 0x4cc3: 0x405b7820,
-	0x4cc4: 0xe00020f5, 0x4cc5: 0x405b7a20, 0x4cc6: 0xe00020f8, 0x4cc7: 0x405b7c20,
-	0x4cc8: 0x405b7e20,
-	// Block 0x134, offset 0x4d00
-	0x4d20: 0xe00001ec, 0x4d21: 0xe0000307, 0x4d22: 0xe00003e1, 0x4d23: 0xe00004bc,
-	0x4d24: 0xe0000586, 0x4d25: 0xe0000651, 0x4d26: 0xe00006f9, 0x4d27: 0xe00007a5,
-	0x4d28: 0xe000084a, 0x4d29: 0x40288820, 0x4d2a: 0x40288a20, 0x4d2b: 0x40288c20,
-	0x4d2c: 0x40288e20, 0x4d2d: 0x40289020, 0x4d2e: 0x40289220, 0x4d2f: 0x40289420,
-	0x4d30: 0x40289620, 0x4d31: 0x40289820, 0x4d32: 0x40289a20, 0x4d33: 0x40289c20,
-	0x4d34: 0x40289e20, 0x4d35: 0x4028a020, 0x4d36: 0x4028a220, 0x4d37: 0x4028a420,
-	0x4d38: 0x4028a620, 0x4d39: 0x4028a820, 0x4d3a: 0x4028aa20, 0x4d3b: 0x4028ac20,
-	0x4d3c: 0x4028ae20, 0x4d3d: 0x4028b020, 0x4d3e: 0x4028b220,
-	// Block 0x135, offset 0x4d40
-	0x4d40: 0xa000f202, 0x4d41: 0xa000f302, 0x4d42: 0xa000f402, 0x4d43: 0x40489220,
-	0x4d44: 0x40489420, 0x4d45: 0x40483420, 0x4d46: 0x40483620, 0x4d47: 0x40483820,
-	0x4d48: 0x40483a20, 0x4d49: 0x40483c20, 0x4d4a: 0x40483e20, 0x4d4b: 0x40484020,
-	0x4d4c: 0x40484220, 0x4d4d: 0x40484420, 0x4d4e: 0x40484620, 0x4d4f: 0x40484820,
-	0x4d50: 0x40484a20, 0x4d51: 0x40484c20, 0x4d52: 0x40484e20, 0x4d53: 0x40485020,
-	0x4d54: 0x40485220, 0x4d55: 0x40485420, 0x4d56: 0x40485620, 0x4d57: 0x40485820,
-	0x4d58: 0x40485a20, 0x4d59: 0x40485c20, 0x4d5a: 0x40485e20, 0x4d5b: 0x40486020,
-	0x4d5c: 0x40486220, 0x4d5d: 0x40486420, 0x4d5e: 0x40486620, 0x4d5f: 0x40486820,
-	0x4d60: 0x40486a20, 0x4d61: 0x40486c20, 0x4d62: 0x40486e20, 0x4d63: 0x40487020,
-	0x4d64: 0x40487220, 0x4d65: 0x40487420, 0x4d66: 0x40487620, 0x4d67: 0x40487820,
-	0x4d68: 0x40487a20, 0x4d69: 0x40487c20, 0x4d6a: 0x40487e20, 0x4d6b: 0x40488020,
-	0x4d6c: 0x40488220, 0x4d6d: 0x40488420, 0x4d6e: 0x40488620, 0x4d6f: 0x40488820,
-	0x4d70: 0x40488a20, 0x4d71: 0x40488c20, 0x4d72: 0x40488e20, 0x4d73: 0x40489020,
-	0x4d74: 0x40489620, 0x4d75: 0x40489820, 0x4d76: 0x40489a20, 0x4d77: 0x40489c20,
-	0x4d78: 0x40489e20, 0x4d79: 0x4048a020, 0x4d7a: 0x4048a220, 0x4d7b: 0x4048a420,
-	0x4d7c: 0x4048a620, 0x4d7d: 0x4048a820, 0x4d7e: 0x4048aa20, 0x4d7f: 0x4048ac20,
-	// Block 0x136, offset 0x4d80
-	0x4d80: 0x4048ae20, 0x4d81: 0x4048b020, 0x4d82: 0x4048b220, 0x4d83: 0x4048b420,
-	0x4d84: 0x4048b620, 0x4d85: 0x4048b820, 0x4d86: 0x8209245d, 0x4d87: 0x40034820,
-	0x4d88: 0x40034a20, 0x4d89: 0x4005fc20, 0x4d8a: 0x4005fe20, 0x4d8b: 0x40060020,
-	0x4d8c: 0x40060220, 0x4d8d: 0x40060420,
-	0x4d92: 0xe00002a9, 0x4d93: 0xe00003c4,
-	0x4d94: 0xe000049e, 0x4d95: 0xe0000570, 0x4d96: 0xe000063a, 0x4d97: 0xe00006ea,
-	0x4d98: 0xe0000792, 0x4d99: 0xe000083b, 0x4d9a: 0xe00008e6, 0x4d9b: 0x40298220,
-	0x4d9c: 0x40298420, 0x4d9d: 0x40298620, 0x4d9e: 0x40298820, 0x4d9f: 0x40298a20,
-	0x4da0: 0x40298c20, 0x4da1: 0x40298e20, 0x4da2: 0x40299020, 0x4da3: 0x40299220,
-	0x4da4: 0x40299420, 0x4da5: 0x40299620, 0x4da6: 0xe00001df, 0x4da7: 0xe00002a6,
-	0x4da8: 0xe00003c1, 0x4da9: 0xe000049b, 0x4daa: 0xe000056d, 0x4dab: 0xe0000637,
-	0x4dac: 0xe00006e7, 0x4dad: 0xe000078f, 0x4dae: 0xe0000838, 0x4daf: 0xe00008e3,
-	// Block 0x137, offset 0x4dc0
-	0x4dc0: 0xa000f202, 0x4dc1: 0xa000f302, 0x4dc2: 0xa000f402, 0x4dc3: 0x40467e20,
-	0x4dc4: 0x40468020, 0x4dc5: 0x40468220, 0x4dc6: 0x40468420, 0x4dc7: 0x40468620,
-	0x4dc8: 0x40468820, 0x4dc9: 0x40468a20, 0x4dca: 0x40468c20, 0x4dcb: 0x40468e20,
-	0x4dcc: 0x40469020, 0x4dcd: 0x40469220, 0x4dce: 0x40469420, 0x4dcf: 0x40469620,
-	0x4dd0: 0x40469820, 0x4dd1: 0x40469a20, 0x4dd2: 0x40469c20, 0x4dd3: 0x40469e20,
-	0x4dd4: 0x4046a020, 0x4dd5: 0x4046a220, 0x4dd6: 0x4046a420, 0x4dd7: 0x4046a620,
-	0x4dd8: 0x4046a820, 0x4dd9: 0x4046aa20, 0x4dda: 0xe0001878, 0x4ddb: 0x4046ac20,
-	0x4ddc: 0xe000187b, 0x4ddd: 0x4046ae20, 0x4dde: 0x4046b020, 0x4ddf: 0x4046b220,
-	0x4de0: 0x4046b420, 0x4de1: 0x4046b620, 0x4de2: 0x4046b820, 0x4de3: 0x4046ba20,
-	0x4de4: 0x4046bc20, 0x4de5: 0x4046be20, 0x4de6: 0x4046c020, 0x4de7: 0x4046c220,
-	0x4de8: 0x4046c420, 0x4de9: 0x4046c620, 0x4dea: 0x4046c820, 0x4deb: 0xe000187e,
-	0x4dec: 0x4046ca20, 0x4ded: 0x4046cc20, 0x4dee: 0x4046ce20, 0x4def: 0x4046d020,
-	0x4df0: 0x4046d220, 0x4df1: 0x4046d420, 0x4df2: 0x4046d620, 0x4df3: 0x4046d820,
-	0x4df4: 0x4046da20, 0x4df5: 0x4046dc20, 0x4df6: 0x4046de20, 0x4df7: 0x4046e020,
-	0x4df8: 0x4046e220, 0x4df9: 0x82092372, 0x4dfa: 0xa070f102, 0x4dfb: 0x40061620,
-	0x4dfc: 0x40061820, 0x4dfd: 0xa0000000, 0x4dfe: 0x40039420, 0x4dff: 0x40039620,
-	// Block 0x138, offset 0x4e00
-	0x4e00: 0x40034c20, 0x4e01: 0x40034e20,
-	0x4e10: 0x4072e820, 0x4e11: 0x4072ea20, 0x4e12: 0x4072ec20, 0x4e13: 0x4072ee20,
-	0x4e14: 0x4072f020, 0x4e15: 0x4072f220, 0x4e16: 0x4072f420, 0x4e17: 0x4072f620,
-	0x4e18: 0x4072f820, 0x4e19: 0x4072fa20, 0x4e1a: 0x4072fc20, 0x4e1b: 0x4072fe20,
-	0x4e1c: 0x40730020, 0x4e1d: 0x40730220, 0x4e1e: 0x40730420, 0x4e1f: 0x40730620,
-	0x4e20: 0x40730820, 0x4e21: 0x40730a20, 0x4e22: 0x40730c20, 0x4e23: 0x40730e20,
-	0x4e24: 0x40731020, 0x4e25: 0x40731220, 0x4e26: 0x40731420, 0x4e27: 0x40731620,
-	0x4e28: 0x40731820,
-	0x4e30: 0xe00001d0, 0x4e31: 0xe0000264, 0x4e32: 0xe000037c, 0x4e33: 0xe0000456,
-	0x4e34: 0xe000052b, 0x4e35: 0xe00005f5, 0x4e36: 0xe00006c0, 0x4e37: 0xe0000768,
-	0x4e38: 0xe0000814, 0x4e39: 0xe00008b9,
-	// Block 0x139, offset 0x4e40
-	0x4e40: 0xae60f202, 0x4e41: 0xae60f302, 0x4e42: 0xae60f402, 0x4e43: 0x404f4020,
-	0x4e44: 0x404f4220, 0x4e45: 0x404f4420, 0x4e46: 0x404f4620, 0x4e47: 0x404f4820,
-	0x4e48: 0x404f4a20, 0x4e49: 0x404f4c20, 0x4e4a: 0x404f4e20, 0x4e4b: 0x404f5020,
-	0x4e4c: 0x404f5220, 0x4e4d: 0x404f5420, 0x4e4e: 0x404f5620, 0x4e4f: 0x404f5820,
-	0x4e50: 0x404f5a20, 0x4e51: 0x404f5c20, 0x4e52: 0x404f5e20, 0x4e53: 0x404f6020,
-	0x4e54: 0x404f6220, 0x4e55: 0x404f6420, 0x4e56: 0x404f6620, 0x4e57: 0x404f6820,
-	0x4e58: 0x404f6a20, 0x4e59: 0x404f6c20, 0x4e5a: 0x404f6e20, 0x4e5b: 0x404f7020,
-	0x4e5c: 0x404f7220, 0x4e5d: 0x404f7420, 0x4e5e: 0x404f7620, 0x4e5f: 0x404f7820,
-	0x4e60: 0x404f7a20, 0x4e61: 0x404f7c20, 0x4e62: 0x404f7e20, 0x4e63: 0x404f8020,
-	0x4e64: 0x404f8220, 0x4e65: 0x404f8420, 0x4e66: 0x404f8620, 0x4e67: 0x404f8820,
-	0x4e68: 0x404f8a20, 0x4e69: 0x404f8c20, 0x4e6a: 0x404f8e20, 0x4e6b: 0x404f9020,
-	0x4e6c: 0x404f9220, 0x4e6d: 0x404f9420, 0x4e6e: 0x404f9620, 0x4e6f: 0x404f9820,
-	0x4e70: 0x404f9a20, 0x4e71: 0xc31507e1, 0x4e72: 0xc31707e1, 0x4e73: 0x820927d0,
-	0x4e74: 0x820927d1, 0x4e76: 0xe00001b2, 0x4e77: 0xe0000246,
-	0x4e78: 0xe000035e, 0x4e79: 0xe0000438, 0x4e7a: 0xe000050d, 0x4e7b: 0xe00005d7,
-	0x4e7c: 0xe00006a2, 0x4e7d: 0xe000074a, 0x4e7e: 0xe00007f6, 0x4e7f: 0xe000089b,
-	// Block 0x13a, offset 0x4e80
-	0x4e80: 0x40039820, 0x4e81: 0x40035020, 0x4e82: 0x40035220, 0x4e83: 0x4002de20,
-	// Block 0x13b, offset 0x4ec0
-	0x4ec0: 0xa000f202, 0x4ec1: 0xa000f302, 0x4ec2: 0xa000f402, 0x4ec3: 0x4046e820,
-	0x4ec4: 0x4046ea20, 0x4ec5: 0x4046ec20, 0x4ec6: 0x4046ee20, 0x4ec7: 0x4046f020,
-	0x4ec8: 0x4046f220, 0x4ec9: 0x4046f420, 0x4eca: 0x4046f620, 0x4ecb: 0x4046f820,
-	0x4ecc: 0x4046fa20, 0x4ecd: 0x4046fc20, 0x4ece: 0x4046fe20, 0x4ecf: 0x40470020,
-	0x4ed0: 0x40470220, 0x4ed1: 0x40470420, 0x4ed2: 0x40470620, 0x4ed3: 0x40470820,
-	0x4ed4: 0x40470a20, 0x4ed5: 0x40470c20, 0x4ed6: 0x40470e20, 0x4ed7: 0x40471020,
-	0x4ed8: 0x40471220, 0x4ed9: 0x40471420, 0x4eda: 0x40471620, 0x4edb: 0x40471820,
-	0x4edc: 0x40471a20, 0x4edd: 0x40471c20, 0x4ede: 0x40471e20, 0x4edf: 0x40472020,
-	0x4ee0: 0x40472220, 0x4ee1: 0x40472420, 0x4ee2: 0x40472620, 0x4ee3: 0x40472820,
-	0x4ee4: 0x40472a20, 0x4ee5: 0x40472c20, 0x4ee6: 0x40472e20, 0x4ee7: 0x40473020,
-	0x4ee8: 0x40473220, 0x4ee9: 0x40473420, 0x4eea: 0x40473620, 0x4eeb: 0x40473820,
-	0x4eec: 0x40473a20, 0x4eed: 0x40473c20, 0x4eee: 0x40473e20, 0x4eef: 0x40474020,
-	0x4ef0: 0x40474220, 0x4ef1: 0x40474420, 0x4ef2: 0x40474620, 0x4ef3: 0x40474820,
-	0x4ef4: 0x40474a20, 0x4ef5: 0x40474c20, 0x4ef6: 0x40474e20, 0x4ef7: 0x40475020,
-	0x4ef8: 0x40475220, 0x4ef9: 0x40475420, 0x4efa: 0x40475620, 0x4efb: 0x40475820,
-	0x4efc: 0x40475a20, 0x4efd: 0x40475c20, 0x4efe: 0x40475e20, 0x4eff: 0x40476020,
-	// Block 0x13c, offset 0x4f00
-	0x4f00: 0x820923b1, 0x4f01: 0x40476420, 0x4f02: 0x40476620, 0x4f03: 0x40476820,
-	0x4f04: 0x4046e620, 0x4f05: 0x40035420, 0x4f06: 0x40035620, 0x4f07: 0x40061a20,
-	0x4f08: 0x40039a20,
-	0x4f10: 0xe00001d9, 0x4f11: 0xe00002a0, 0x4f12: 0xe00003bb, 0x4f13: 0xe0000495,
-	0x4f14: 0xe0000567, 0x4f15: 0xe0000631, 0x4f16: 0xe00006e1, 0x4f17: 0xe0000789,
-	0x4f18: 0xe0000832, 0x4f19: 0xe00008dd,
-	// Block 0x13d, offset 0x4f40
-	0x4f40: 0x40476a20, 0x4f41: 0x40476c20, 0x4f42: 0x40476e20, 0x4f43: 0x40477020,
-	0x4f44: 0x40477220, 0x4f45: 0x40477420, 0x4f46: 0x40477620, 0x4f47: 0x40477820,
-	0x4f48: 0x40477a20, 0x4f49: 0x40477c20, 0x4f4a: 0x40478420, 0x4f4b: 0x40478620,
-	0x4f4c: 0x40478820, 0x4f4d: 0x40478a20, 0x4f4e: 0x40478c20, 0x4f4f: 0x40478e20,
-	0x4f50: 0x40479020, 0x4f51: 0x40479220, 0x4f52: 0x40479420, 0x4f53: 0x40479620,
-	0x4f54: 0x40479820, 0x4f55: 0x40479a20, 0x4f56: 0x40479c20, 0x4f57: 0x40479e20,
-	0x4f58: 0x4047a020, 0x4f59: 0x4047a220, 0x4f5a: 0x4047a420, 0x4f5b: 0x4047a620,
-	0x4f5c: 0x4047a820, 0x4f5d: 0x4047aa20, 0x4f5e: 0x4047ac20, 0x4f5f: 0x4047ae20,
-	0x4f60: 0x4047b020, 0x4f61: 0x4047b220, 0x4f62: 0x4047b420, 0x4f63: 0x4047b620,
-	0x4f64: 0x4047b820, 0x4f65: 0x4047ba20, 0x4f66: 0x4047bc20, 0x4f67: 0x40478020,
-	0x4f68: 0x40477e20, 0x4f69: 0x40478220, 0x4f6a: 0x4047be20, 0x4f6b: 0xa000f302,
-	0x4f6c: 0xa000f402, 0x4f6d: 0x4047c020, 0x4f6e: 0x4047c220, 0x4f6f: 0x4047c420,
-	0x4f70: 0x4047c620, 0x4f71: 0x4047c820, 0x4f72: 0x4047ca20, 0x4f73: 0x4047cc20,
-	0x4f74: 0x4047ce20, 0x4f75: 0x4047d020, 0x4f76: 0x820923e9, 0x4f77: 0xa070f102,
-	// Block 0x13e, offset 0x4f80
-	0x4f80: 0xe00001dc, 0x4f81: 0xe00002a3, 0x4f82: 0xe00003be, 0x4f83: 0xe0000498,
-	0x4f84: 0xe000056a, 0x4f85: 0xe0000634, 0x4f86: 0xe00006e4, 0x4f87: 0xe000078c,
-	0x4f88: 0xe0000835, 0x4f89: 0xe00008e0,
-	// Block 0x13f, offset 0x4fc0
-	0x4fc0: 0x4076e420, 0x4fc1: 0x4076e620, 0x4fc2: 0x4076e820, 0x4fc3: 0x4076ea20,
-	0x4fc4: 0x4076ec20, 0x4fc5: 0x4076ee20, 0x4fc6: 0x4076f020, 0x4fc7: 0x4076f220,
-	0x4fc8: 0x4076f420, 0x4fc9: 0x4076f620, 0x4fca: 0x4076f820, 0x4fcb: 0x4076fa20,
-	0x4fcc: 0x4076fc20, 0x4fcd: 0x4076fe20, 0x4fce: 0x40770020, 0x4fcf: 0x40770220,
-	0x4fd0: 0x40770420, 0x4fd1: 0x40770620, 0x4fd2: 0x40770820, 0x4fd3: 0x40770a20,
-	0x4fd4: 0x40770c20, 0x4fd5: 0x40770e20, 0x4fd6: 0x40771020, 0x4fd7: 0x40771220,
-	0x4fd8: 0x40771420, 0x4fd9: 0x40771620, 0x4fda: 0x40771820, 0x4fdb: 0x40771a20,
-	0x4fdc: 0x40771c20, 0x4fdd: 0x40771e20, 0x4fde: 0x40772020, 0x4fdf: 0x40772220,
-	0x4fe0: 0x40772420, 0x4fe1: 0x40772620, 0x4fe2: 0x40772820, 0x4fe3: 0x40772a20,
-	0x4fe4: 0x40772c20, 0x4fe5: 0x40772e20, 0x4fe6: 0x40773020, 0x4fe7: 0x40773220,
-	0x4fe8: 0x40773420, 0x4fe9: 0x40773620, 0x4fea: 0x40773820, 0x4feb: 0x40773a20,
-	0x4fec: 0x40773c20, 0x4fed: 0x40773e20, 0x4fee: 0x40774020, 0x4fef: 0x40774220,
-	0x4ff0: 0x40774420, 0x4ff1: 0x40774620, 0x4ff2: 0x40774820, 0x4ff3: 0x40774a20,
-	0x4ff4: 0x40774c20, 0x4ff5: 0x40774e20, 0x4ff6: 0x40775020, 0x4ff7: 0x40775220,
-	0x4ff8: 0x40775420, 0x4ff9: 0x40775620, 0x4ffa: 0x40775820, 0x4ffb: 0x40775a20,
-	0x4ffc: 0x40775c20, 0x4ffd: 0x40775e20, 0x4ffe: 0x40776020, 0x4fff: 0x40776220,
-	// Block 0x140, offset 0x5000
-	0x5000: 0x40776420, 0x5001: 0x40776620, 0x5002: 0x40776820, 0x5003: 0x40776a20,
-	0x5004: 0x40776c20, 0x5005: 0x40776e20, 0x5006: 0x40777020, 0x5007: 0x40777220,
-	0x5008: 0x40777420, 0x5009: 0x40777620, 0x500a: 0x40777820, 0x500b: 0x40777a20,
-	0x500c: 0x40777c20, 0x500d: 0x40777e20, 0x500e: 0x40778020, 0x500f: 0x40778220,
-	0x5010: 0x40778420, 0x5011: 0x40778620, 0x5012: 0x40778820, 0x5013: 0x40778a20,
-	0x5014: 0x40778c20, 0x5015: 0x40778e20, 0x5016: 0x40779020, 0x5017: 0x40779220,
-	0x5018: 0x40779420, 0x5019: 0x40779620, 0x501a: 0x40779820, 0x501b: 0x40779a20,
-	0x501c: 0x40779c20, 0x501d: 0x40779e20, 0x501e: 0x4077a020, 0x501f: 0x4077a220,
-	0x5020: 0x4077a420, 0x5021: 0x4077a620, 0x5022: 0x4077a820, 0x5023: 0x4077aa20,
-	0x5024: 0x4077ac20, 0x5025: 0x4077ae20, 0x5026: 0x4077b020, 0x5027: 0x4077b220,
-	0x5028: 0x4077b420, 0x5029: 0x4077b620, 0x502a: 0x4077b820, 0x502b: 0x4077ba20,
-	0x502c: 0x4077bc20, 0x502d: 0x4077be20, 0x502e: 0x4077c020, 0x502f: 0x4077c220,
-	0x5030: 0x4077c420, 0x5031: 0x4077c620, 0x5032: 0x4077c820, 0x5033: 0x4077ca20,
-	0x5034: 0x4077cc20, 0x5035: 0x4077ce20, 0x5036: 0x4077d020, 0x5037: 0x4077d220,
-	0x5038: 0x4077d420, 0x5039: 0x4077d620, 0x503a: 0x4077d820, 0x503b: 0x4077da20,
-	0x503c: 0x4077dc20, 0x503d: 0x4077de20, 0x503e: 0x4077e020, 0x503f: 0x4077e220,
-	// Block 0x141, offset 0x5040
-	0x5040: 0x4077e420, 0x5041: 0x4077e620, 0x5042: 0x4077e820, 0x5043: 0x4077ea20,
-	0x5044: 0x4077ec20, 0x5045: 0x4077ee20, 0x5046: 0x4077f020, 0x5047: 0x4077f220,
-	0x5048: 0x4077f420, 0x5049: 0x4077f620, 0x504a: 0x4077f820, 0x504b: 0x4077fa20,
-	0x504c: 0x4077fc20, 0x504d: 0x4077fe20, 0x504e: 0x40780020, 0x504f: 0x40780220,
-	0x5050: 0x40780420, 0x5051: 0x40780620, 0x5052: 0x40780820, 0x5053: 0x40780a20,
-	0x5054: 0x40780c20, 0x5055: 0x40780e20, 0x5056: 0x40781020, 0x5057: 0x40781220,
-	0x5058: 0x40781420, 0x5059: 0x40781620, 0x505a: 0x40781820, 0x505b: 0x40781a20,
-	0x505c: 0x40781c20, 0x505d: 0x40781e20, 0x505e: 0x40782020, 0x505f: 0x40782220,
-	0x5060: 0x40782420, 0x5061: 0x40782620, 0x5062: 0x40782820, 0x5063: 0x40782a20,
-	0x5064: 0x40782c20, 0x5065: 0x40782e20, 0x5066: 0x40783020, 0x5067: 0x40783220,
-	0x5068: 0x40783420, 0x5069: 0x40783620, 0x506a: 0x40783820, 0x506b: 0x40783a20,
-	0x506c: 0x40783c20, 0x506d: 0x40783e20, 0x506e: 0x40784020, 0x506f: 0x40784220,
-	0x5070: 0x40784420, 0x5071: 0x40784620, 0x5072: 0x40784820, 0x5073: 0x40784a20,
-	0x5074: 0x40784c20, 0x5075: 0x40784e20, 0x5076: 0x40785020, 0x5077: 0x40785220,
-	0x5078: 0x40785420, 0x5079: 0x40785620, 0x507a: 0x40785820, 0x507b: 0x40785a20,
-	0x507c: 0x40785c20, 0x507d: 0x40785e20, 0x507e: 0x40786020, 0x507f: 0x40786220,
-	// Block 0x142, offset 0x5080
-	0x5080: 0x40786420, 0x5081: 0x40786620, 0x5082: 0x40786820, 0x5083: 0x40786a20,
-	0x5084: 0x40786c20, 0x5085: 0x40786e20, 0x5086: 0x40787020, 0x5087: 0x40787220,
-	0x5088: 0x40787420, 0x5089: 0x40787620, 0x508a: 0x40787820, 0x508b: 0x40787a20,
-	0x508c: 0x40787c20, 0x508d: 0x40787e20, 0x508e: 0x40788020, 0x508f: 0x40788220,
-	0x5090: 0x40788420, 0x5091: 0x40788620, 0x5092: 0x40788820, 0x5093: 0x40788a20,
-	0x5094: 0x40788c20, 0x5095: 0x40788e20, 0x5096: 0x40789020, 0x5097: 0x40789220,
-	0x5098: 0x40789420, 0x5099: 0x40789620, 0x509a: 0x40789820, 0x509b: 0x40789a20,
-	0x509c: 0x40789c20, 0x509d: 0x40789e20, 0x509e: 0x4078a020, 0x509f: 0x4078a220,
-	0x50a0: 0x4078a420, 0x50a1: 0x4078a620, 0x50a2: 0x4078a820, 0x50a3: 0x4078aa20,
-	0x50a4: 0x4078ac20, 0x50a5: 0x4078ae20, 0x50a6: 0x4078b020, 0x50a7: 0x4078b220,
-	0x50a8: 0x4078b420, 0x50a9: 0x4078b620, 0x50aa: 0x4078b820, 0x50ab: 0x4078ba20,
-	0x50ac: 0x4078bc20, 0x50ad: 0x4078be20, 0x50ae: 0x4078c020, 0x50af: 0x4078c220,
-	0x50b0: 0x4078c420, 0x50b1: 0x4078c620, 0x50b2: 0x4078c820, 0x50b3: 0x4078ca20,
-	0x50b4: 0x4078cc20, 0x50b5: 0x4078ce20, 0x50b6: 0x4078d020, 0x50b7: 0x4078d220,
-	0x50b8: 0x4078d420, 0x50b9: 0x4078d620, 0x50ba: 0x4078d820, 0x50bb: 0x4078da20,
-	0x50bc: 0x4078dc20, 0x50bd: 0x4078de20, 0x50be: 0x4078e020, 0x50bf: 0x4078e220,
-	// Block 0x143, offset 0x50c0
-	0x50c0: 0x4078e420, 0x50c1: 0x4078e620, 0x50c2: 0x4078e820, 0x50c3: 0x4078ea20,
-	0x50c4: 0x4078ec20, 0x50c5: 0x4078ee20, 0x50c6: 0x4078f020, 0x50c7: 0x4078f220,
-	0x50c8: 0x4078f420, 0x50c9: 0x4078f620, 0x50ca: 0x4078f820, 0x50cb: 0x4078fa20,
-	0x50cc: 0x4078fc20, 0x50cd: 0x4078fe20, 0x50ce: 0x40790020, 0x50cf: 0x40790220,
-	0x50d0: 0x40790420, 0x50d1: 0x40790620, 0x50d2: 0x40790820, 0x50d3: 0x40790a20,
-	0x50d4: 0x40790c20, 0x50d5: 0x40790e20, 0x50d6: 0x40791020, 0x50d7: 0x40791220,
-	0x50d8: 0x40791420, 0x50d9: 0x40791620, 0x50da: 0x40791820, 0x50db: 0x40791a20,
-	0x50dc: 0x40791c20, 0x50dd: 0x40791e20, 0x50de: 0x40792020, 0x50df: 0x40792220,
-	0x50e0: 0x40792420, 0x50e1: 0x40792620, 0x50e2: 0x40792820, 0x50e3: 0x40792a20,
-	0x50e4: 0x40792c20, 0x50e5: 0x40792e20, 0x50e6: 0x40793020, 0x50e7: 0x40793220,
-	0x50e8: 0x40793420, 0x50e9: 0x40793620, 0x50ea: 0x40793820, 0x50eb: 0x40793a20,
-	0x50ec: 0x40793c20, 0x50ed: 0x40793e20, 0x50ee: 0x40794020, 0x50ef: 0x40794220,
-	0x50f0: 0x40794420, 0x50f1: 0x40794620, 0x50f2: 0x40794820, 0x50f3: 0x40794a20,
-	0x50f4: 0x40794c20, 0x50f5: 0x40794e20, 0x50f6: 0x40795020, 0x50f7: 0x40795220,
-	0x50f8: 0x40795420, 0x50f9: 0x40795620, 0x50fa: 0x40795820, 0x50fb: 0x40795a20,
-	0x50fc: 0x40795c20, 0x50fd: 0x40795e20, 0x50fe: 0x40796020, 0x50ff: 0x40796220,
-	// Block 0x144, offset 0x5100
-	0x5100: 0x40796420, 0x5101: 0x40796620, 0x5102: 0x40796820, 0x5103: 0x40796a20,
-	0x5104: 0x40796c20, 0x5105: 0x40796e20, 0x5106: 0x40797020, 0x5107: 0x40797220,
-	0x5108: 0x40797420, 0x5109: 0x40797620, 0x510a: 0x40797820, 0x510b: 0x40797a20,
-	0x510c: 0x40797c20, 0x510d: 0x40797e20, 0x510e: 0x40798020, 0x510f: 0x40798220,
-	0x5110: 0x40798420, 0x5111: 0x40798620, 0x5112: 0x40798820, 0x5113: 0x40798a20,
-	0x5114: 0x40798c20, 0x5115: 0x40798e20, 0x5116: 0x40799020, 0x5117: 0x40799220,
-	0x5118: 0x40799420, 0x5119: 0x40799620, 0x511a: 0x40799820, 0x511b: 0x40799a20,
-	0x511c: 0x40799c20, 0x511d: 0x40799e20, 0x511e: 0x4079a020, 0x511f: 0x4079a220,
-	0x5120: 0x4079a420, 0x5121: 0x4079a620, 0x5122: 0x4079a820, 0x5123: 0x4079aa20,
-	0x5124: 0x4079ac20, 0x5125: 0x4079ae20, 0x5126: 0x4079b020, 0x5127: 0x4079b220,
-	0x5128: 0x4079b420, 0x5129: 0x4079b620, 0x512a: 0x4079b820, 0x512b: 0x4079ba20,
-	0x512c: 0x4079bc20, 0x512d: 0x4079be20, 0x512e: 0x4079c020, 0x512f: 0x4079c220,
-	0x5130: 0x4079c420, 0x5131: 0x4079c620, 0x5132: 0x4079c820, 0x5133: 0x4079ca20,
-	0x5134: 0x4079cc20, 0x5135: 0x4079ce20, 0x5136: 0x4079d020, 0x5137: 0x4079d220,
-	0x5138: 0x4079d420, 0x5139: 0x4079d620, 0x513a: 0x4079d820, 0x513b: 0x4079da20,
-	0x513c: 0x4079dc20, 0x513d: 0x4079de20, 0x513e: 0x4079e020, 0x513f: 0x4079e220,
-	// Block 0x145, offset 0x5140
-	0x5140: 0x4079e420, 0x5141: 0x4079e620, 0x5142: 0x4079e820, 0x5143: 0x4079ea20,
-	0x5144: 0x4079ec20, 0x5145: 0x4079ee20, 0x5146: 0x4079f020, 0x5147: 0x4079f220,
-	0x5148: 0x4079f420, 0x5149: 0x4079f620, 0x514a: 0x4079f820, 0x514b: 0x4079fa20,
-	0x514c: 0x4079fc20, 0x514d: 0x4079fe20, 0x514e: 0x407a0020, 0x514f: 0x407a0220,
-	0x5150: 0x407a0420, 0x5151: 0x407a0620, 0x5152: 0x407a0820, 0x5153: 0x407a0a20,
-	0x5154: 0x407a0c20, 0x5155: 0x407a0e20, 0x5156: 0x407a1020, 0x5157: 0x407a1220,
-	0x5158: 0x407a1420, 0x5159: 0x407a1620, 0x515a: 0x407a1820, 0x515b: 0x407a1a20,
-	0x515c: 0x407a1c20, 0x515d: 0x407a1e20, 0x515e: 0x407a2020, 0x515f: 0x407a2220,
-	0x5160: 0x407a2420, 0x5161: 0x407a2620, 0x5162: 0x407a2820, 0x5163: 0x407a2a20,
-	0x5164: 0x407a2c20, 0x5165: 0x407a2e20, 0x5166: 0x407a3020, 0x5167: 0x407a3220,
-	0x5168: 0x407a3420, 0x5169: 0x407a3620, 0x516a: 0x407a3820, 0x516b: 0x407a3a20,
-	0x516c: 0x407a3c20, 0x516d: 0x407a3e20, 0x516e: 0x407a4020, 0x516f: 0x407a4220,
-	0x5170: 0x407a4420, 0x5171: 0x407a4620, 0x5172: 0x407a4820, 0x5173: 0x407a4a20,
-	0x5174: 0x407a4c20, 0x5175: 0x407a4e20, 0x5176: 0x407a5020, 0x5177: 0x407a5220,
-	0x5178: 0x407a5420, 0x5179: 0x407a5620, 0x517a: 0x407a5820, 0x517b: 0x407a5a20,
-	0x517c: 0x407a5c20, 0x517d: 0x407a5e20, 0x517e: 0x407a6020, 0x517f: 0x407a6220,
-	// Block 0x146, offset 0x5180
-	0x5180: 0x407a6420, 0x5181: 0x407a6620, 0x5182: 0x407a6820, 0x5183: 0x407a6a20,
-	0x5184: 0x407a6c20, 0x5185: 0x407a6e20, 0x5186: 0x407a7020, 0x5187: 0x407a7220,
-	0x5188: 0x407a7420, 0x5189: 0x407a7620, 0x518a: 0x407a7820, 0x518b: 0x407a7a20,
-	0x518c: 0x407a7c20, 0x518d: 0x407a7e20, 0x518e: 0x407a8020, 0x518f: 0x407a8220,
-	0x5190: 0x407a8420, 0x5191: 0x407a8620, 0x5192: 0x407a8820, 0x5193: 0x407a8a20,
-	0x5194: 0x407a8c20, 0x5195: 0x407a8e20, 0x5196: 0x407a9020, 0x5197: 0x407a9220,
-	0x5198: 0x407a9420, 0x5199: 0x407a9620, 0x519a: 0x407a9820, 0x519b: 0x407a9a20,
-	0x519c: 0x407a9c20, 0x519d: 0x407a9e20, 0x519e: 0x407aa020, 0x519f: 0x407aa220,
-	0x51a0: 0x407aa420, 0x51a1: 0x407aa620, 0x51a2: 0x407aa820, 0x51a3: 0x407aaa20,
-	0x51a4: 0x407aac20, 0x51a5: 0x407aae20, 0x51a6: 0x407ab020, 0x51a7: 0x407ab220,
-	0x51a8: 0x407ab420, 0x51a9: 0x407ab620, 0x51aa: 0x407ab820, 0x51ab: 0x407aba20,
-	0x51ac: 0x407abc20, 0x51ad: 0x407abe20, 0x51ae: 0x407ac020, 0x51af: 0x407ac220,
-	0x51b0: 0x407ac420, 0x51b1: 0x407ac620, 0x51b2: 0x407ac820, 0x51b3: 0x407aca20,
-	0x51b4: 0x407acc20, 0x51b5: 0x407ace20, 0x51b6: 0x407ad020, 0x51b7: 0x407ad220,
-	0x51b8: 0x407ad420, 0x51b9: 0x407ad620, 0x51ba: 0x407ad820, 0x51bb: 0x407ada20,
-	0x51bc: 0x407adc20, 0x51bd: 0x407ade20, 0x51be: 0x407ae020, 0x51bf: 0x407ae220,
-	// Block 0x147, offset 0x51c0
-	0x51c0: 0x407ae420, 0x51c1: 0x407ae620, 0x51c2: 0x407ae820, 0x51c3: 0x407aea20,
-	0x51c4: 0x407aec20, 0x51c5: 0x407aee20, 0x51c6: 0x407af020, 0x51c7: 0x407af220,
-	0x51c8: 0x407af420, 0x51c9: 0x407af620, 0x51ca: 0x407af820, 0x51cb: 0x407afa20,
-	0x51cc: 0x407afc20, 0x51cd: 0x407afe20, 0x51ce: 0x407b0020, 0x51cf: 0x407b0220,
-	0x51d0: 0x407b0420, 0x51d1: 0x407b0620, 0x51d2: 0x407b0820, 0x51d3: 0x407b0a20,
-	0x51d4: 0x407b0c20, 0x51d5: 0x407b0e20, 0x51d6: 0x407b1020, 0x51d7: 0x407b1220,
-	0x51d8: 0x407b1420, 0x51d9: 0x407b1620, 0x51da: 0x407b1820, 0x51db: 0x407b1a20,
-	0x51dc: 0x407b1c20, 0x51dd: 0x407b1e20, 0x51de: 0x407b2020, 0x51df: 0x407b2220,
-	0x51e0: 0x407b2420, 0x51e1: 0x407b2620, 0x51e2: 0x407b2820, 0x51e3: 0x407b2a20,
-	0x51e4: 0x407b2c20, 0x51e5: 0x407b2e20, 0x51e6: 0x407b3020, 0x51e7: 0x407b3220,
-	0x51e8: 0x407b3420, 0x51e9: 0x407b3620, 0x51ea: 0x407b3820, 0x51eb: 0x407b3a20,
-	0x51ec: 0x407b3c20, 0x51ed: 0x407b3e20, 0x51ee: 0x407b4020, 0x51ef: 0x407b4220,
-	0x51f0: 0x407b4420, 0x51f1: 0x407b4620, 0x51f2: 0x407b4820, 0x51f3: 0x407b4a20,
-	0x51f4: 0x407b4c20, 0x51f5: 0x407b4e20, 0x51f6: 0x407b5020, 0x51f7: 0x407b5220,
-	0x51f8: 0x407b5420, 0x51f9: 0x407b5620, 0x51fa: 0x407b5820, 0x51fb: 0x407b5a20,
-	0x51fc: 0x407b5c20, 0x51fd: 0x407b5e20, 0x51fe: 0x407b6020, 0x51ff: 0x407b6220,
-	// Block 0x148, offset 0x5200
-	0x5200: 0x407b6420, 0x5201: 0x407b6620, 0x5202: 0x407b6820, 0x5203: 0x407b6a20,
-	0x5204: 0x407b6c20, 0x5205: 0x407b6e20, 0x5206: 0x407b7020, 0x5207: 0x407b7220,
-	0x5208: 0x407b7420, 0x5209: 0x407b7620, 0x520a: 0x407b7820, 0x520b: 0x407b7a20,
-	0x520c: 0x407b7c20, 0x520d: 0x407b7e20, 0x520e: 0x407b8020, 0x520f: 0x407b8220,
-	0x5210: 0x407b8420, 0x5211: 0x407b8620, 0x5212: 0x407b8820, 0x5213: 0x407b8a20,
-	0x5214: 0x407b8c20, 0x5215: 0x407b8e20, 0x5216: 0x407b9020, 0x5217: 0x407b9220,
-	0x5218: 0x407b9420, 0x5219: 0x407b9620, 0x521a: 0x407b9820, 0x521b: 0x407b9a20,
-	0x521c: 0x407b9c20, 0x521d: 0x407b9e20, 0x521e: 0x407ba020, 0x521f: 0x407ba220,
-	0x5220: 0x407ba420, 0x5221: 0x407ba620, 0x5222: 0x407ba820, 0x5223: 0x407baa20,
-	0x5224: 0x407bac20, 0x5225: 0x407bae20, 0x5226: 0x407bb020, 0x5227: 0x407bb220,
-	0x5228: 0x407bb420, 0x5229: 0x407bb620, 0x522a: 0x407bb820, 0x522b: 0x407bba20,
-	0x522c: 0x407bbc20, 0x522d: 0x407bbe20, 0x522e: 0x407bc020, 0x522f: 0x407bc220,
-	0x5230: 0x407bc420, 0x5231: 0x407bc620, 0x5232: 0x407bc820, 0x5233: 0x407bca20,
-	0x5234: 0x407bcc20, 0x5235: 0x407bce20, 0x5236: 0x407bd020, 0x5237: 0x407bd220,
-	0x5238: 0x407bd420, 0x5239: 0x407bd620, 0x523a: 0x407bd820, 0x523b: 0x407bda20,
-	0x523c: 0x407bdc20, 0x523d: 0x407bde20, 0x523e: 0x407be020, 0x523f: 0x407be220,
-	// Block 0x149, offset 0x5240
-	0x5240: 0x407be420, 0x5241: 0x407be620, 0x5242: 0x407be820, 0x5243: 0x407bea20,
-	0x5244: 0x407bec20, 0x5245: 0x407bee20, 0x5246: 0x407bf020, 0x5247: 0x407bf220,
-	0x5248: 0x407bf420, 0x5249: 0x407bf620, 0x524a: 0x407bf820, 0x524b: 0x407bfa20,
-	0x524c: 0x407bfc20, 0x524d: 0x407bfe20, 0x524e: 0x407c0020, 0x524f: 0x407c0220,
-	0x5250: 0x407c0420, 0x5251: 0x407c0620, 0x5252: 0x407c0820, 0x5253: 0x407c0a20,
-	0x5254: 0x407c0c20, 0x5255: 0x407c0e20, 0x5256: 0x407c1020, 0x5257: 0x407c1220,
-	0x5258: 0x407c1420, 0x5259: 0x407c1620, 0x525a: 0x407c1820, 0x525b: 0x407c1a20,
-	0x525c: 0x407c1c20, 0x525d: 0x407c1e20, 0x525e: 0x407c2020, 0x525f: 0x407c2220,
-	0x5260: 0x407c2420, 0x5261: 0x407c2620, 0x5262: 0x407c2820, 0x5263: 0x407c2a20,
-	0x5264: 0x407c2c20, 0x5265: 0x407c2e20, 0x5266: 0x407c3020, 0x5267: 0x407c3220,
-	0x5268: 0x407c3420, 0x5269: 0x407c3620, 0x526a: 0x407c3820, 0x526b: 0x407c3a20,
-	0x526c: 0x407c3c20, 0x526d: 0x407c3e20, 0x526e: 0x407c4020, 0x526f: 0x407c4220,
-	0x5270: 0x407c4420, 0x5271: 0x407c4620, 0x5272: 0x407c4820, 0x5273: 0x407c4a20,
-	0x5274: 0x407c4c20, 0x5275: 0x407c4e20, 0x5276: 0x407c5020, 0x5277: 0x407c5220,
-	0x5278: 0x407c5420, 0x5279: 0x407c5620, 0x527a: 0x407c5820, 0x527b: 0x407c5a20,
-	0x527c: 0x407c5c20, 0x527d: 0x407c5e20, 0x527e: 0x407c6020, 0x527f: 0x407c6220,
-	// Block 0x14a, offset 0x5280
-	0x5280: 0x407c6420, 0x5281: 0x407c6620, 0x5282: 0x407c6820, 0x5283: 0x407c6a20,
-	0x5284: 0x407c6c20, 0x5285: 0x407c6e20, 0x5286: 0x407c7020, 0x5287: 0x407c7220,
-	0x5288: 0x407c7420, 0x5289: 0x407c7620, 0x528a: 0x407c7820, 0x528b: 0x407c7a20,
-	0x528c: 0x407c7c20, 0x528d: 0x407c7e20, 0x528e: 0x407c8020, 0x528f: 0x407c8220,
-	0x5290: 0x407c8420, 0x5291: 0x407c8620, 0x5292: 0x407c8820, 0x5293: 0x407c8a20,
-	0x5294: 0x407c8c20, 0x5295: 0x407c8e20, 0x5296: 0x407c9020, 0x5297: 0x407c9220,
-	0x5298: 0x407c9420, 0x5299: 0x407c9620, 0x529a: 0x407c9820, 0x529b: 0x407c9a20,
-	0x529c: 0x407c9c20, 0x529d: 0x407c9e20, 0x529e: 0x407ca020, 0x529f: 0x407ca220,
-	0x52a0: 0x407ca420, 0x52a1: 0x407ca620, 0x52a2: 0x407ca820, 0x52a3: 0x407caa20,
-	0x52a4: 0x407cac20, 0x52a5: 0x407cae20, 0x52a6: 0x407cb020, 0x52a7: 0x407cb220,
-	0x52a8: 0x407cb420, 0x52a9: 0x407cb620, 0x52aa: 0x407cb820, 0x52ab: 0x407cba20,
-	0x52ac: 0x407cbc20, 0x52ad: 0x407cbe20, 0x52ae: 0x407cc020, 0x52af: 0x407cc220,
-	0x52b0: 0x407cc420, 0x52b1: 0x407cc620, 0x52b2: 0x407cc820, 0x52b3: 0x407cca20,
-	0x52b4: 0x407ccc20, 0x52b5: 0x407cce20, 0x52b6: 0x407cd020, 0x52b7: 0x407cd220,
-	0x52b8: 0x407cd420, 0x52b9: 0x407cd620, 0x52ba: 0x407cd820, 0x52bb: 0x407cda20,
-	0x52bc: 0x407cdc20, 0x52bd: 0x407cde20, 0x52be: 0x407ce020, 0x52bf: 0x407ce220,
-	// Block 0x14b, offset 0x52c0
-	0x52c0: 0x407ce420, 0x52c1: 0x407ce620, 0x52c2: 0x407ce820, 0x52c3: 0x407cea20,
-	0x52c4: 0x407cec20, 0x52c5: 0x407cee20, 0x52c6: 0x407cf020, 0x52c7: 0x407cf220,
-	0x52c8: 0x407cf420, 0x52c9: 0x407cf620, 0x52ca: 0x407cf820, 0x52cb: 0x407cfa20,
-	0x52cc: 0x407cfc20, 0x52cd: 0x407cfe20, 0x52ce: 0x407d0020, 0x52cf: 0x407d0220,
-	0x52d0: 0x407d0420, 0x52d1: 0x407d0620, 0x52d2: 0x407d0820, 0x52d3: 0x407d0a20,
-	0x52d4: 0x407d0c20, 0x52d5: 0x407d0e20, 0x52d6: 0x407d1020, 0x52d7: 0x407d1220,
-	0x52d8: 0x407d1420, 0x52d9: 0x407d1620, 0x52da: 0x407d1820, 0x52db: 0x407d1a20,
-	0x52dc: 0x407d1c20, 0x52dd: 0x407d1e20, 0x52de: 0x407d2020, 0x52df: 0x407d2220,
-	0x52e0: 0x407d2420, 0x52e1: 0x407d2620, 0x52e2: 0x407d2820, 0x52e3: 0x407d2a20,
-	0x52e4: 0x407d2c20, 0x52e5: 0x407d2e20, 0x52e6: 0x407d3020, 0x52e7: 0x407d3220,
-	0x52e8: 0x407d3420, 0x52e9: 0x407d3620, 0x52ea: 0x407d3820, 0x52eb: 0x407d3a20,
-	0x52ec: 0x407d3c20, 0x52ed: 0x407d3e20, 0x52ee: 0x407d4020, 0x52ef: 0x407d4220,
-	0x52f0: 0x407d4420, 0x52f1: 0x407d4620, 0x52f2: 0x407d4820, 0x52f3: 0x407d4a20,
-	0x52f4: 0x407d4c20, 0x52f5: 0x407d4e20, 0x52f6: 0x407d5020, 0x52f7: 0x407d5220,
-	0x52f8: 0x407d5420, 0x52f9: 0x407d5620, 0x52fa: 0x407d5820, 0x52fb: 0x407d5a20,
-	0x52fc: 0x407d5c20, 0x52fd: 0x407d5e20, 0x52fe: 0x407d6020, 0x52ff: 0x407d6220,
-	// Block 0x14c, offset 0x5300
-	0x5300: 0x407d6420, 0x5301: 0x407d6620, 0x5302: 0x407d6820, 0x5303: 0x407d6a20,
-	0x5304: 0x407d6c20, 0x5305: 0x407d6e20, 0x5306: 0x407d7020, 0x5307: 0x407d7220,
-	0x5308: 0x407d7420, 0x5309: 0x407d7620, 0x530a: 0x407d7820, 0x530b: 0x407d7a20,
-	0x530c: 0x407d7c20, 0x530d: 0x407d7e20, 0x530e: 0x407d8020, 0x530f: 0x407d8220,
-	0x5310: 0x407d8420, 0x5311: 0x407d8620, 0x5312: 0x407d8820, 0x5313: 0x407d8a20,
-	0x5314: 0x407d8c20, 0x5315: 0x407d8e20, 0x5316: 0x407d9020, 0x5317: 0x407d9220,
-	0x5318: 0x407d9420, 0x5319: 0x407d9620, 0x531a: 0x407d9820, 0x531b: 0x407d9a20,
-	0x531c: 0x407d9c20, 0x531d: 0x407d9e20, 0x531e: 0x407da020, 0x531f: 0x407da220,
-	0x5320: 0x407da420, 0x5321: 0x407da620, 0x5322: 0x407da820, 0x5323: 0x407daa20,
-	0x5324: 0x407dac20, 0x5325: 0x407dae20, 0x5326: 0x407db020, 0x5327: 0x407db220,
-	0x5328: 0x407db420, 0x5329: 0x407db620, 0x532a: 0x407db820, 0x532b: 0x407dba20,
-	0x532c: 0x407dbc20, 0x532d: 0x407dbe20, 0x532e: 0x407dc020,
-	// Block 0x14d, offset 0x5340
-	0x5340: 0xe0000394, 0x5341: 0xe000045f, 0x5342: 0xe0000534, 0x5343: 0xe0000610,
-	0x5344: 0xe00006cc, 0x5345: 0xe0000771, 0x5346: 0xe000081d, 0x5347: 0xe00008c2,
-	0x5348: 0xe0000462, 0x5349: 0xe0000537, 0x534a: 0xe0000613, 0x534b: 0xe00006cf,
-	0x534c: 0xe0000774, 0x534d: 0xe0000820, 0x534e: 0xe00008c5, 0x534f: 0xe000053a,
-	0x5350: 0xe0000616, 0x5351: 0xe00006d2, 0x5352: 0xe0000777, 0x5353: 0xe0000823,
-	0x5354: 0xe00008c8, 0x5355: 0xe000027f, 0x5356: 0xe0000397, 0x5357: 0xe0000465,
-	0x5358: 0xe000053d, 0x5359: 0xe0000619, 0x535a: 0xe00006d5, 0x535b: 0xe000077a,
-	0x535c: 0xe0000826, 0x535d: 0xe00008cb, 0x535e: 0xe0000282, 0x535f: 0xe000039a,
-	0x5360: 0xe0000468, 0x5361: 0xe0000540, 0x5362: 0xe000061c, 0x5363: 0xe000039d,
-	0x5364: 0xe000046b, 0x5365: 0xe000046e, 0x5366: 0xe0000543, 0x5367: 0xe000061f,
-	0x5368: 0xe00006d8, 0x5369: 0xe000077d, 0x536a: 0xe0000829, 0x536b: 0xe00008ce,
-	0x536c: 0xe0000285, 0x536d: 0xe00003a0, 0x536e: 0xe0000471, 0x536f: 0xe0000474,
-	0x5370: 0xe0000546, 0x5371: 0xe0000622, 0x5372: 0x4029a020, 0x5373: 0x4029a220,
-	0x5374: 0xe0000288, 0x5375: 0xe00003a3, 0x5376: 0xe0000477, 0x5377: 0xe000047a,
-	0x5378: 0xe0000549, 0x5379: 0xe0000625, 0x537a: 0xe000047d, 0x537b: 0xe0000480,
-	0x537c: 0xe000054c, 0x537d: 0xe000054f, 0x537e: 0xe0000552, 0x537f: 0xe0000555,
-	// Block 0x14e, offset 0x5380
-	0x5380: 0xe00006db, 0x5381: 0xe0000780, 0x5382: 0xe0000783, 0x5383: 0xe0000786,
-	0x5384: 0xe000082c, 0x5385: 0xe000082f, 0x5386: 0xe00008d1, 0x5387: 0xe00008d4,
-	0x5388: 0xe00008d7, 0x5389: 0xe00008da, 0x538a: 0xe00003a6, 0x538b: 0xe0000483,
-	0x538c: 0xe0000558, 0x538d: 0xe0000628, 0x538e: 0xe00006de, 0x538f: 0xe000028b,
-	0x5390: 0xe00003a9, 0x5391: 0xe0000486, 0x5392: 0xe000055b, 0x5393: 0xe000055e,
-	0x5394: 0xe000062b, 0x5395: 0xe000062e, 0x5396: 0x4029a420, 0x5397: 0x4029a620,
-	0x5398: 0xe000028e, 0x5399: 0xe00003ac, 0x539a: 0x4029a820, 0x539b: 0x4029aa20,
-	0x539c: 0x4029ac20, 0x539d: 0x4029ae20, 0x539e: 0x4029b020, 0x539f: 0x4029b220,
-	0x53a0: 0x4029b420, 0x53a1: 0x4029b620, 0x53a2: 0x4029b820,
-	0x53b0: 0x4003ca20, 0x53b1: 0x4003cc20, 0x53b2: 0x4003ce20, 0x53b3: 0x4003d020,
-	// Block 0x14f, offset 0x53c0
-	0x53c0: 0x407dc220, 0x53c1: 0x407dc420, 0x53c2: 0x407dc620, 0x53c3: 0x407dc820,
-	0x53c4: 0x407dca20, 0x53c5: 0x407dcc20, 0x53c6: 0x407dce20, 0x53c7: 0x407dd020,
-	0x53c8: 0x407dd220, 0x53c9: 0x407dd420, 0x53ca: 0x407dd620, 0x53cb: 0x407dd820,
-	0x53cc: 0x407dda20, 0x53cd: 0x407ddc20, 0x53ce: 0x407dde20, 0x53cf: 0x407de020,
-	0x53d0: 0x407de220, 0x53d1: 0x407de420, 0x53d2: 0x407de620, 0x53d3: 0x407de820,
-	0x53d4: 0x407dea20, 0x53d5: 0x407dec20, 0x53d6: 0x407dee20, 0x53d7: 0x407df020,
-	0x53d8: 0x407df220, 0x53d9: 0x407df420, 0x53da: 0x407df620, 0x53db: 0x407df820,
-	0x53dc: 0x407dfa20, 0x53dd: 0x407dfc20, 0x53de: 0x407dfe20, 0x53df: 0x407e0020,
-	0x53e0: 0x407e0220, 0x53e1: 0x407e0420, 0x53e2: 0x407e0620, 0x53e3: 0x407e0820,
-	0x53e4: 0x407e0a20, 0x53e5: 0x407e0c20, 0x53e6: 0x407e0e20, 0x53e7: 0x407e1020,
-	0x53e8: 0x407e1220, 0x53e9: 0x407e1420, 0x53ea: 0x407e1620, 0x53eb: 0x407e1820,
-	0x53ec: 0x407e1a20, 0x53ed: 0x407e1c20, 0x53ee: 0x407e1e20, 0x53ef: 0x407e2020,
-	0x53f0: 0x407e2220, 0x53f1: 0x407e2420, 0x53f2: 0x407e2620, 0x53f3: 0x407e2820,
-	0x53f4: 0x407e2a20, 0x53f5: 0x407e2c20, 0x53f6: 0x407e2e20, 0x53f7: 0x407e3020,
-	0x53f8: 0x407e3220, 0x53f9: 0x407e3420, 0x53fa: 0x407e3620, 0x53fb: 0x407e3820,
-	0x53fc: 0x407e3a20, 0x53fd: 0x407e3c20, 0x53fe: 0x407e3e20, 0x53ff: 0x407e4020,
-	// Block 0x150, offset 0x5400
-	0x5400: 0x407e4220, 0x5401: 0x407e4420, 0x5402: 0x407e4620, 0x5403: 0x407e4820,
-	0x5404: 0x407e4a20, 0x5405: 0x407e4c20, 0x5406: 0x407e4e20, 0x5407: 0x407e5020,
-	0x5408: 0x407e5220, 0x5409: 0x407e5420, 0x540a: 0x407e5620, 0x540b: 0x407e5820,
-	0x540c: 0x407e5a20, 0x540d: 0x407e5c20, 0x540e: 0x407e5e20, 0x540f: 0x407e6020,
-	0x5410: 0x407e6220, 0x5411: 0x407e6420, 0x5412: 0x407e6620, 0x5413: 0x407e6820,
-	0x5414: 0x407e6a20, 0x5415: 0x407e6c20, 0x5416: 0x407e6e20, 0x5417: 0x407e7020,
-	0x5418: 0x407e7220, 0x5419: 0x407e7420, 0x541a: 0x407e7620, 0x541b: 0x407e7820,
-	0x541c: 0x407e7a20, 0x541d: 0x407e7c20, 0x541e: 0x407e7e20, 0x541f: 0x407e8020,
-	0x5420: 0x407e8220, 0x5421: 0x407e8420, 0x5422: 0x407e8620, 0x5423: 0x407e8820,
-	0x5424: 0x407e8a20, 0x5425: 0x407e8c20, 0x5426: 0x407e8e20, 0x5427: 0x407e9020,
-	0x5428: 0x407e9220, 0x5429: 0x407e9420, 0x542a: 0x407e9620, 0x542b: 0x407e9820,
-	0x542c: 0x407e9a20, 0x542d: 0x407e9c20, 0x542e: 0x407e9e20, 0x542f: 0x407ea020,
-	0x5430: 0x407ea220, 0x5431: 0x407ea420, 0x5432: 0x407ea620, 0x5433: 0x407ea820,
-	0x5434: 0x407eaa20, 0x5435: 0x407eac20, 0x5436: 0x407eae20, 0x5437: 0x407eb020,
-	0x5438: 0x407eb220, 0x5439: 0x407eb420, 0x543a: 0x407eb620, 0x543b: 0x407eb820,
-	0x543c: 0x407eba20, 0x543d: 0x407ebc20, 0x543e: 0x407ebe20, 0x543f: 0x407ec020,
-	// Block 0x151, offset 0x5440
-	0x5440: 0x407ec220, 0x5441: 0x407ec420, 0x5442: 0x407ec620, 0x5443: 0x407ec820,
-	0x5444: 0x407eca20, 0x5445: 0x407ecc20, 0x5446: 0x407ece20, 0x5447: 0x407ed020,
-	0x5448: 0x407ed220, 0x5449: 0x407ed420, 0x544a: 0x407ed620, 0x544b: 0x407ed820,
-	0x544c: 0x407eda20, 0x544d: 0x407edc20, 0x544e: 0x407ede20, 0x544f: 0x407ee020,
-	0x5450: 0x407ee220, 0x5451: 0x407ee420, 0x5452: 0x407ee620, 0x5453: 0x407ee820,
-	0x5454: 0x407eea20, 0x5455: 0x407eec20, 0x5456: 0x407eee20, 0x5457: 0x407ef020,
-	0x5458: 0x407ef220, 0x5459: 0x407ef420, 0x545a: 0x407ef620, 0x545b: 0x407ef820,
-	0x545c: 0x407efa20, 0x545d: 0x407efc20, 0x545e: 0x407efe20, 0x545f: 0x407f0020,
-	0x5460: 0x407f0220, 0x5461: 0x407f0420, 0x5462: 0x407f0620, 0x5463: 0x407f0820,
-	0x5464: 0x407f0a20, 0x5465: 0x407f0c20, 0x5466: 0x407f0e20, 0x5467: 0x407f1020,
-	0x5468: 0x407f1220, 0x5469: 0x407f1420, 0x546a: 0x407f1620, 0x546b: 0x407f1820,
-	0x546c: 0x407f1a20, 0x546d: 0x407f1c20, 0x546e: 0x407f1e20, 0x546f: 0x407f2020,
-	0x5470: 0x407f2220, 0x5471: 0x407f2420, 0x5472: 0x407f2620, 0x5473: 0x407f2820,
-	0x5474: 0x407f2a20, 0x5475: 0x407f2c20, 0x5476: 0x407f2e20, 0x5477: 0x407f3020,
-	0x5478: 0x407f3220, 0x5479: 0x407f3420, 0x547a: 0x407f3620, 0x547b: 0x407f3820,
-	0x547c: 0x407f3a20, 0x547d: 0x407f3c20, 0x547e: 0x407f3e20, 0x547f: 0x407f4020,
-	// Block 0x152, offset 0x5480
-	0x5480: 0x407f4220, 0x5481: 0x407f4420, 0x5482: 0x407f4620, 0x5483: 0x407f4820,
-	0x5484: 0x407f4a20, 0x5485: 0x407f4c20, 0x5486: 0x407f4e20, 0x5487: 0x407f5020,
-	0x5488: 0x407f5220, 0x5489: 0x407f5420, 0x548a: 0x407f5620, 0x548b: 0x407f5820,
-	0x548c: 0x407f5a20, 0x548d: 0x407f5c20, 0x548e: 0x407f5e20, 0x548f: 0x407f6020,
-	0x5490: 0x407f6220, 0x5491: 0x407f6420, 0x5492: 0x407f6620, 0x5493: 0x407f6820,
-	0x5494: 0x407f6a20, 0x5495: 0x407f6c20, 0x5496: 0x407f6e20, 0x5497: 0x407f7020,
-	0x5498: 0x407f7220, 0x5499: 0x407f7420, 0x549a: 0x407f7620, 0x549b: 0x407f7820,
-	0x549c: 0x407f7a20, 0x549d: 0x407f7c20, 0x549e: 0x407f7e20, 0x549f: 0x407f8020,
-	0x54a0: 0x407f8220, 0x54a1: 0x407f8420, 0x54a2: 0x407f8620, 0x54a3: 0x407f8820,
-	0x54a4: 0x407f8a20, 0x54a5: 0x407f8c20, 0x54a6: 0x407f8e20, 0x54a7: 0x407f9020,
-	0x54a8: 0x407f9220, 0x54a9: 0x407f9420, 0x54aa: 0x407f9620, 0x54ab: 0x407f9820,
-	0x54ac: 0x407f9a20, 0x54ad: 0x407f9c20, 0x54ae: 0x407f9e20, 0x54af: 0x407fa020,
-	0x54b0: 0x407fa220, 0x54b1: 0x407fa420, 0x54b2: 0x407fa620, 0x54b3: 0x407fa820,
-	0x54b4: 0x407faa20, 0x54b5: 0x407fac20, 0x54b6: 0x407fae20, 0x54b7: 0x407fb020,
-	0x54b8: 0x407fb220, 0x54b9: 0x407fb420, 0x54ba: 0x407fb620, 0x54bb: 0x407fb820,
-	0x54bc: 0x407fba20, 0x54bd: 0x407fbc20, 0x54be: 0x407fbe20, 0x54bf: 0x407fc020,
-	// Block 0x153, offset 0x54c0
-	0x54c0: 0x407fc220, 0x54c1: 0x407fc420, 0x54c2: 0x407fc620, 0x54c3: 0x407fc820,
-	0x54c4: 0x407fca20, 0x54c5: 0x407fcc20, 0x54c6: 0x407fce20, 0x54c7: 0x407fd020,
-	0x54c8: 0x407fd220, 0x54c9: 0x407fd420, 0x54ca: 0x407fd620, 0x54cb: 0x407fd820,
-	0x54cc: 0x407fda20, 0x54cd: 0x407fdc20, 0x54ce: 0x407fde20, 0x54cf: 0x407fe020,
-	0x54d0: 0x407fe220, 0x54d1: 0x407fe420, 0x54d2: 0x407fe620, 0x54d3: 0x407fe820,
-	0x54d4: 0x407fea20, 0x54d5: 0x407fec20, 0x54d6: 0x407fee20, 0x54d7: 0x407ff020,
-	0x54d8: 0x407ff220, 0x54d9: 0x407ff420, 0x54da: 0x407ff620, 0x54db: 0x407ff820,
-	0x54dc: 0x407ffa20, 0x54dd: 0x407ffc20, 0x54de: 0x407ffe20, 0x54df: 0x40800020,
-	0x54e0: 0x40800220, 0x54e1: 0x40800420, 0x54e2: 0x40800620, 0x54e3: 0x40800820,
-	0x54e4: 0x40800a20, 0x54e5: 0x40800c20, 0x54e6: 0x40800e20, 0x54e7: 0x40801020,
-	0x54e8: 0x40801220, 0x54e9: 0x40801420, 0x54ea: 0x40801620, 0x54eb: 0x40801820,
-	0x54ec: 0x40801a20, 0x54ed: 0x40801c20, 0x54ee: 0x40801e20, 0x54ef: 0x40802020,
-	0x54f0: 0x40802220, 0x54f1: 0x40802420, 0x54f2: 0x40802620, 0x54f3: 0x40802820,
-	0x54f4: 0x40802a20, 0x54f5: 0x40802c20, 0x54f6: 0x40802e20, 0x54f7: 0x40803020,
-	0x54f8: 0x40803220, 0x54f9: 0x40803420, 0x54fa: 0x40803620, 0x54fb: 0x40803820,
-	0x54fc: 0x40803a20, 0x54fd: 0x40803c20, 0x54fe: 0x40803e20, 0x54ff: 0x40804020,
-	// Block 0x154, offset 0x5500
-	0x5500: 0x40804220, 0x5501: 0x40804420, 0x5502: 0x40804620, 0x5503: 0x40804820,
-	0x5504: 0x40804a20, 0x5505: 0x40804c20, 0x5506: 0x40804e20, 0x5507: 0x40805020,
-	0x5508: 0x40805220, 0x5509: 0x40805420, 0x550a: 0x40805620, 0x550b: 0x40805820,
-	0x550c: 0x40805a20, 0x550d: 0x40805c20, 0x550e: 0x40805e20, 0x550f: 0x40806020,
-	0x5510: 0x40806220, 0x5511: 0x40806420, 0x5512: 0x40806620, 0x5513: 0x40806820,
-	0x5514: 0x40806a20, 0x5515: 0x40806c20, 0x5516: 0x40806e20, 0x5517: 0x40807020,
-	0x5518: 0x40807220, 0x5519: 0x40807420, 0x551a: 0x40807620, 0x551b: 0x40807820,
-	0x551c: 0x40807a20, 0x551d: 0x40807c20, 0x551e: 0x40807e20, 0x551f: 0x40808020,
-	0x5520: 0x40808220, 0x5521: 0x40808420, 0x5522: 0x40808620, 0x5523: 0x40808820,
-	0x5524: 0x40808a20, 0x5525: 0x40808c20, 0x5526: 0x40808e20, 0x5527: 0x40809020,
-	0x5528: 0x40809220, 0x5529: 0x40809420, 0x552a: 0x40809620, 0x552b: 0x40809820,
-	0x552c: 0x40809a20, 0x552d: 0x40809c20, 0x552e: 0x40809e20, 0x552f: 0x4080a020,
-	0x5530: 0x4080a220, 0x5531: 0x4080a420, 0x5532: 0x4080a620, 0x5533: 0x4080a820,
-	0x5534: 0x4080aa20, 0x5535: 0x4080ac20, 0x5536: 0x4080ae20, 0x5537: 0x4080b020,
-	0x5538: 0x4080b220, 0x5539: 0x4080b420, 0x553a: 0x4080b620, 0x553b: 0x4080b820,
-	0x553c: 0x4080ba20, 0x553d: 0x4080bc20, 0x553e: 0x4080be20, 0x553f: 0x4080c020,
-	// Block 0x155, offset 0x5540
-	0x5540: 0x4080c220, 0x5541: 0x4080c420, 0x5542: 0x4080c620, 0x5543: 0x4080c820,
-	0x5544: 0x4080ca20, 0x5545: 0x4080cc20, 0x5546: 0x4080ce20, 0x5547: 0x4080d020,
-	0x5548: 0x4080d220, 0x5549: 0x4080d420, 0x554a: 0x4080d620, 0x554b: 0x4080d820,
-	0x554c: 0x4080da20, 0x554d: 0x4080dc20, 0x554e: 0x4080de20, 0x554f: 0x4080e020,
-	0x5550: 0x4080e220, 0x5551: 0x4080e420, 0x5552: 0x4080e620, 0x5553: 0x4080e820,
-	0x5554: 0x4080ea20, 0x5555: 0x4080ec20, 0x5556: 0x4080ee20, 0x5557: 0x4080f020,
-	0x5558: 0x4080f220, 0x5559: 0x4080f420, 0x555a: 0x4080f620, 0x555b: 0x4080f820,
-	0x555c: 0x4080fa20, 0x555d: 0x4080fc20, 0x555e: 0x4080fe20, 0x555f: 0x40810020,
-	0x5560: 0x40810220, 0x5561: 0x40810420, 0x5562: 0x40810620, 0x5563: 0x40810820,
-	0x5564: 0x40810a20, 0x5565: 0x40810c20, 0x5566: 0x40810e20, 0x5567: 0x40811020,
-	0x5568: 0x40811220, 0x5569: 0x40811420, 0x556a: 0x40811620, 0x556b: 0x40811820,
-	0x556c: 0x40811a20, 0x556d: 0x40811c20, 0x556e: 0x40811e20, 0x556f: 0x40812020,
-	0x5570: 0x40812220, 0x5571: 0x40812420, 0x5572: 0x40812620, 0x5573: 0x40812820,
-	0x5574: 0x40812a20, 0x5575: 0x40812c20, 0x5576: 0x40812e20, 0x5577: 0x40813020,
-	0x5578: 0x40813220, 0x5579: 0x40813420, 0x557a: 0x40813620, 0x557b: 0x40813820,
-	0x557c: 0x40813a20, 0x557d: 0x40813c20, 0x557e: 0x40813e20, 0x557f: 0x40814020,
-	// Block 0x156, offset 0x5580
-	0x5580: 0x40814220, 0x5581: 0x40814420, 0x5582: 0x40814620, 0x5583: 0x40814820,
-	0x5584: 0x40814a20, 0x5585: 0x40814c20, 0x5586: 0x40814e20, 0x5587: 0x40815020,
-	0x5588: 0x40815220, 0x5589: 0x40815420, 0x558a: 0x40815620, 0x558b: 0x40815820,
-	0x558c: 0x40815a20, 0x558d: 0x40815c20, 0x558e: 0x40815e20, 0x558f: 0x40816020,
-	0x5590: 0x40816220, 0x5591: 0x40816420, 0x5592: 0x40816620, 0x5593: 0x40816820,
-	0x5594: 0x40816a20, 0x5595: 0x40816c20, 0x5596: 0x40816e20, 0x5597: 0x40817020,
-	0x5598: 0x40817220, 0x5599: 0x40817420, 0x559a: 0x40817620, 0x559b: 0x40817820,
-	0x559c: 0x40817a20, 0x559d: 0x40817c20, 0x559e: 0x40817e20, 0x559f: 0x40818020,
-	0x55a0: 0x40818220, 0x55a1: 0x40818420, 0x55a2: 0x40818620, 0x55a3: 0x40818820,
-	0x55a4: 0x40818a20, 0x55a5: 0x40818c20, 0x55a6: 0x40818e20, 0x55a7: 0x40819020,
-	0x55a8: 0x40819220, 0x55a9: 0x40819420, 0x55aa: 0x40819620, 0x55ab: 0x40819820,
-	0x55ac: 0x40819a20, 0x55ad: 0x40819c20, 0x55ae: 0x40819e20, 0x55af: 0x4081a020,
-	0x55b0: 0x4081a220, 0x55b1: 0x4081a420, 0x55b2: 0x4081a620, 0x55b3: 0x4081a820,
-	0x55b4: 0x4081aa20, 0x55b5: 0x4081ac20, 0x55b6: 0x4081ae20, 0x55b7: 0x4081b020,
-	0x55b8: 0x4081b220, 0x55b9: 0x4081b420, 0x55ba: 0x4081b620, 0x55bb: 0x4081b820,
-	0x55bc: 0x4081ba20, 0x55bd: 0x4081bc20, 0x55be: 0x4081be20, 0x55bf: 0x4081c020,
-	// Block 0x157, offset 0x55c0
-	0x55c0: 0x4081c220, 0x55c1: 0x4081c420, 0x55c2: 0x4081c620, 0x55c3: 0x4081c820,
-	0x55c4: 0x4081ca20, 0x55c5: 0x4081cc20, 0x55c6: 0x4081ce20, 0x55c7: 0x4081d020,
-	0x55c8: 0x4081d220, 0x55c9: 0x4081d420, 0x55ca: 0x4081d620, 0x55cb: 0x4081d820,
-	0x55cc: 0x4081da20, 0x55cd: 0x4081dc20, 0x55ce: 0x4081de20, 0x55cf: 0x4081e020,
-	0x55d0: 0x4081e220, 0x55d1: 0x4081e420, 0x55d2: 0x4081e620, 0x55d3: 0x4081e820,
-	0x55d4: 0x4081ea20, 0x55d5: 0x4081ec20, 0x55d6: 0x4081ee20, 0x55d7: 0x4081f020,
-	0x55d8: 0x4081f220, 0x55d9: 0x4081f420, 0x55da: 0x4081f620, 0x55db: 0x4081f820,
-	0x55dc: 0x4081fa20, 0x55dd: 0x4081fc20, 0x55de: 0x4081fe20, 0x55df: 0x40820020,
-	0x55e0: 0x40820220, 0x55e1: 0x40820420, 0x55e2: 0x40820620, 0x55e3: 0x40820820,
-	0x55e4: 0x40820a20, 0x55e5: 0x40820c20, 0x55e6: 0x40820e20, 0x55e7: 0x40821020,
-	0x55e8: 0x40821220, 0x55e9: 0x40821420, 0x55ea: 0x40821620, 0x55eb: 0x40821820,
-	0x55ec: 0x40821a20, 0x55ed: 0x40821c20, 0x55ee: 0x40821e20, 0x55ef: 0x40822020,
-	0x55f0: 0x40822220, 0x55f1: 0x40822420, 0x55f2: 0x40822620, 0x55f3: 0x40822820,
-	0x55f4: 0x40822a20, 0x55f5: 0x40822c20, 0x55f6: 0x40822e20, 0x55f7: 0x40823020,
-	0x55f8: 0x40823220, 0x55f9: 0x40823420, 0x55fa: 0x40823620, 0x55fb: 0x40823820,
-	0x55fc: 0x40823a20, 0x55fd: 0x40823c20, 0x55fe: 0x40823e20, 0x55ff: 0x40824020,
-	// Block 0x158, offset 0x5600
-	0x5600: 0x40824220, 0x5601: 0x40824420, 0x5602: 0x40824620, 0x5603: 0x40824820,
-	0x5604: 0x40824a20, 0x5605: 0x40824c20, 0x5606: 0x40824e20, 0x5607: 0x40825020,
-	0x5608: 0x40825220, 0x5609: 0x40825420, 0x560a: 0x40825620, 0x560b: 0x40825820,
-	0x560c: 0x40825a20, 0x560d: 0x40825c20, 0x560e: 0x40825e20, 0x560f: 0x40826020,
-	0x5610: 0x40826220, 0x5611: 0x40826420, 0x5612: 0x40826620, 0x5613: 0x40826820,
-	0x5614: 0x40826a20, 0x5615: 0x40826c20, 0x5616: 0x40826e20, 0x5617: 0x40827020,
-	0x5618: 0x40827220, 0x5619: 0x40827420, 0x561a: 0x40827620, 0x561b: 0x40827820,
-	0x561c: 0x40827a20, 0x561d: 0x40827c20, 0x561e: 0x40827e20, 0x561f: 0x40828020,
-	0x5620: 0x40828220, 0x5621: 0x40828420, 0x5622: 0x40828620, 0x5623: 0x40828820,
-	0x5624: 0x40828a20, 0x5625: 0x40828c20, 0x5626: 0x40828e20, 0x5627: 0x40829020,
-	0x5628: 0x40829220, 0x5629: 0x40829420, 0x562a: 0x40829620, 0x562b: 0x40829820,
-	0x562c: 0x40829a20, 0x562d: 0x40829c20, 0x562e: 0x40829e20, 0x562f: 0x4082a020,
-	0x5630: 0x4082a220, 0x5631: 0x4082a420, 0x5632: 0x4082a620, 0x5633: 0x4082a820,
-	0x5634: 0x4082aa20, 0x5635: 0x4082ac20, 0x5636: 0x4082ae20, 0x5637: 0x4082b020,
-	0x5638: 0x4082b220, 0x5639: 0x4082b420, 0x563a: 0x4082b620, 0x563b: 0x4082b820,
-	0x563c: 0x4082ba20, 0x563d: 0x4082bc20, 0x563e: 0x4082be20, 0x563f: 0x4082c020,
-	// Block 0x159, offset 0x5640
-	0x5640: 0x4082c220, 0x5641: 0x4082c420, 0x5642: 0x4082c620, 0x5643: 0x4082c820,
-	0x5644: 0x4082ca20, 0x5645: 0x4082cc20, 0x5646: 0x4082ce20, 0x5647: 0x4082d020,
-	0x5648: 0x4082d220, 0x5649: 0x4082d420, 0x564a: 0x4082d620, 0x564b: 0x4082d820,
-	0x564c: 0x4082da20, 0x564d: 0x4082dc20, 0x564e: 0x4082de20, 0x564f: 0x4082e020,
-	0x5650: 0x4082e220, 0x5651: 0x4082e420, 0x5652: 0x4082e620, 0x5653: 0x4082e820,
-	0x5654: 0x4082ea20, 0x5655: 0x4082ec20, 0x5656: 0x4082ee20, 0x5657: 0x4082f020,
-	0x5658: 0x4082f220, 0x5659: 0x4082f420, 0x565a: 0x4082f620, 0x565b: 0x4082f820,
-	0x565c: 0x4082fa20, 0x565d: 0x4082fc20, 0x565e: 0x4082fe20, 0x565f: 0x40830020,
-	0x5660: 0x40830220, 0x5661: 0x40830420, 0x5662: 0x40830620, 0x5663: 0x40830820,
-	0x5664: 0x40830a20, 0x5665: 0x40830c20, 0x5666: 0x40830e20, 0x5667: 0x40831020,
-	0x5668: 0x40831220, 0x5669: 0x40831420, 0x566a: 0x40831620, 0x566b: 0x40831820,
-	0x566c: 0x40831a20, 0x566d: 0x40831c20, 0x566e: 0x40831e20, 0x566f: 0x40832020,
-	0x5670: 0x40832220, 0x5671: 0x40832420, 0x5672: 0x40832620, 0x5673: 0x40832820,
-	0x5674: 0x40832a20, 0x5675: 0x40832c20, 0x5676: 0x40832e20, 0x5677: 0x40833020,
-	0x5678: 0x40833220, 0x5679: 0x40833420, 0x567a: 0x40833620, 0x567b: 0x40833820,
-	0x567c: 0x40833a20, 0x567d: 0x40833c20, 0x567e: 0x40833e20, 0x567f: 0x40834020,
-	// Block 0x15a, offset 0x5680
-	0x5680: 0x40834220, 0x5681: 0x40834420, 0x5682: 0x40834620, 0x5683: 0x40834820,
-	0x5684: 0x40834a20, 0x5685: 0x40834c20, 0x5686: 0x40834e20, 0x5687: 0x40835020,
-	0x5688: 0x40835220, 0x5689: 0x40835420, 0x568a: 0x40835620, 0x568b: 0x40835820,
-	0x568c: 0x40835a20, 0x568d: 0x40835c20, 0x568e: 0x40835e20, 0x568f: 0x40836020,
-	0x5690: 0x40836220, 0x5691: 0x40836420, 0x5692: 0x40836620, 0x5693: 0x40836820,
-	0x5694: 0x40836a20, 0x5695: 0x40836c20, 0x5696: 0x40836e20, 0x5697: 0x40837020,
-	0x5698: 0x40837220, 0x5699: 0x40837420, 0x569a: 0x40837620, 0x569b: 0x40837820,
-	0x569c: 0x40837a20, 0x569d: 0x40837c20, 0x569e: 0x40837e20, 0x569f: 0x40838020,
-	0x56a0: 0x40838220, 0x56a1: 0x40838420, 0x56a2: 0x40838620, 0x56a3: 0x40838820,
-	0x56a4: 0x40838a20, 0x56a5: 0x40838c20, 0x56a6: 0x40838e20, 0x56a7: 0x40839020,
-	0x56a8: 0x40839220, 0x56a9: 0x40839420, 0x56aa: 0x40839620, 0x56ab: 0x40839820,
-	0x56ac: 0x40839a20, 0x56ad: 0x40839c20, 0x56ae: 0x40839e20, 0x56af: 0x4083a020,
-	0x56b0: 0x4083a220, 0x56b1: 0x4083a420, 0x56b2: 0x4083a620, 0x56b3: 0x4083a820,
-	0x56b4: 0x4083aa20, 0x56b5: 0x4083ac20, 0x56b6: 0x4083ae20, 0x56b7: 0x4083b020,
-	0x56b8: 0x4083b220, 0x56b9: 0x4083b420, 0x56ba: 0x4083b620, 0x56bb: 0x4083b820,
-	0x56bc: 0x4083ba20, 0x56bd: 0x4083bc20, 0x56be: 0x4083be20, 0x56bf: 0x4083c020,
-	// Block 0x15b, offset 0x56c0
-	0x56c0: 0x4083c220, 0x56c1: 0x4083c420, 0x56c2: 0x4083c620, 0x56c3: 0x4083c820,
-	0x56c4: 0x4083ca20, 0x56c5: 0x4083cc20, 0x56c6: 0x4083ce20, 0x56c7: 0x4083d020,
-	0x56c8: 0x4083d220, 0x56c9: 0x4083d420, 0x56ca: 0x4083d620, 0x56cb: 0x4083d820,
-	0x56cc: 0x4083da20, 0x56cd: 0x4083dc20, 0x56ce: 0x4083de20, 0x56cf: 0x4083e020,
-	0x56d0: 0x4083e220, 0x56d1: 0x4083e420, 0x56d2: 0x4083e620, 0x56d3: 0x4083e820,
-	0x56d4: 0x4083ea20, 0x56d5: 0x4083ec20, 0x56d6: 0x4083ee20, 0x56d7: 0x4083f020,
-	0x56d8: 0x4083f220, 0x56d9: 0x4083f420, 0x56da: 0x4083f620, 0x56db: 0x4083f820,
-	0x56dc: 0x4083fa20, 0x56dd: 0x4083fc20, 0x56de: 0x4083fe20, 0x56df: 0x40840020,
-	0x56e0: 0x40840220, 0x56e1: 0x40840420, 0x56e2: 0x40840620, 0x56e3: 0x40840820,
-	0x56e4: 0x40840a20, 0x56e5: 0x40840c20, 0x56e6: 0x40840e20, 0x56e7: 0x40841020,
-	0x56e8: 0x40841220, 0x56e9: 0x40841420, 0x56ea: 0x40841620, 0x56eb: 0x40841820,
-	0x56ec: 0x40841a20, 0x56ed: 0x40841c20, 0x56ee: 0x40841e20, 0x56ef: 0x40842020,
-	0x56f0: 0x40842220, 0x56f1: 0x40842420, 0x56f2: 0x40842620, 0x56f3: 0x40842820,
-	0x56f4: 0x40842a20, 0x56f5: 0x40842c20, 0x56f6: 0x40842e20, 0x56f7: 0x40843020,
-	0x56f8: 0x40843220, 0x56f9: 0x40843420, 0x56fa: 0x40843620, 0x56fb: 0x40843820,
-	0x56fc: 0x40843a20, 0x56fd: 0x40843c20, 0x56fe: 0x40843e20, 0x56ff: 0x40844020,
-	// Block 0x15c, offset 0x5700
-	0x5700: 0x40844220, 0x5701: 0x40844420, 0x5702: 0x40844620, 0x5703: 0x40844820,
-	0x5704: 0x40844a20, 0x5705: 0x40844c20, 0x5706: 0x40844e20, 0x5707: 0x40845020,
-	0x5708: 0x40845220, 0x5709: 0x40845420, 0x570a: 0x40845620, 0x570b: 0x40845820,
-	0x570c: 0x40845a20, 0x570d: 0x40845c20, 0x570e: 0x40845e20, 0x570f: 0x40846020,
-	0x5710: 0x40846220, 0x5711: 0x40846420, 0x5712: 0x40846620, 0x5713: 0x40846820,
-	0x5714: 0x40846a20, 0x5715: 0x40846c20, 0x5716: 0x40846e20, 0x5717: 0x40847020,
-	0x5718: 0x40847220, 0x5719: 0x40847420, 0x571a: 0x40847620, 0x571b: 0x40847820,
-	0x571c: 0x40847a20, 0x571d: 0x40847c20, 0x571e: 0x40847e20, 0x571f: 0x40848020,
-	0x5720: 0x40848220, 0x5721: 0x40848420, 0x5722: 0x40848620, 0x5723: 0x40848820,
-	0x5724: 0x40848a20, 0x5725: 0x40848c20, 0x5726: 0x40848e20, 0x5727: 0x40849020,
-	0x5728: 0x40849220, 0x5729: 0x40849420, 0x572a: 0x40849620, 0x572b: 0x40849820,
-	0x572c: 0x40849a20, 0x572d: 0x40849c20, 0x572e: 0x40849e20, 0x572f: 0x4084a020,
-	0x5730: 0x4084a220, 0x5731: 0x4084a420, 0x5732: 0x4084a620, 0x5733: 0x4084a820,
-	0x5734: 0x4084aa20, 0x5735: 0x4084ac20, 0x5736: 0x4084ae20, 0x5737: 0x4084b020,
-	0x5738: 0x4084b220, 0x5739: 0x4084b420, 0x573a: 0x4084b620, 0x573b: 0x4084b820,
-	0x573c: 0x4084ba20, 0x573d: 0x4084bc20, 0x573e: 0x4084be20, 0x573f: 0x4084c020,
-	// Block 0x15d, offset 0x5740
-	0x5740: 0x4084c220, 0x5741: 0x4084c420, 0x5742: 0x4084c620, 0x5743: 0x4084c820,
-	0x5744: 0x4084ca20, 0x5745: 0x4084cc20, 0x5746: 0x4084ce20, 0x5747: 0x4084d020,
-	0x5748: 0x4084d220, 0x5749: 0x4084d420, 0x574a: 0x4084d620, 0x574b: 0x4084d820,
-	0x574c: 0x4084da20, 0x574d: 0x4084dc20, 0x574e: 0x4084de20, 0x574f: 0x4084e020,
-	0x5750: 0x4084e220, 0x5751: 0x4084e420, 0x5752: 0x4084e620, 0x5753: 0x4084e820,
-	0x5754: 0x4084ea20, 0x5755: 0x4084ec20, 0x5756: 0x4084ee20, 0x5757: 0x4084f020,
-	0x5758: 0x4084f220, 0x5759: 0x4084f420, 0x575a: 0x4084f620, 0x575b: 0x4084f820,
-	0x575c: 0x4084fa20, 0x575d: 0x4084fc20, 0x575e: 0x4084fe20, 0x575f: 0x40850020,
-	0x5760: 0x40850220, 0x5761: 0x40850420, 0x5762: 0x40850620, 0x5763: 0x40850820,
-	0x5764: 0x40850a20, 0x5765: 0x40850c20, 0x5766: 0x40850e20, 0x5767: 0x40851020,
-	0x5768: 0x40851220, 0x5769: 0x40851420, 0x576a: 0x40851620, 0x576b: 0x40851820,
-	0x576c: 0x40851a20, 0x576d: 0x40851c20, 0x576e: 0x40851e20, 0x576f: 0x40852020,
-	0x5770: 0x40852220, 0x5771: 0x40852420, 0x5772: 0x40852620, 0x5773: 0x40852820,
-	0x5774: 0x40852a20, 0x5775: 0x40852c20, 0x5776: 0x40852e20, 0x5777: 0x40853020,
-	0x5778: 0x40853220, 0x5779: 0x40853420, 0x577a: 0x40853620, 0x577b: 0x40853820,
-	0x577c: 0x40853a20, 0x577d: 0x40853c20, 0x577e: 0x40853e20, 0x577f: 0x40854020,
-	// Block 0x15e, offset 0x5780
-	0x5780: 0x40854220, 0x5781: 0x40854420, 0x5782: 0x40854620, 0x5783: 0x40854820,
-	0x5784: 0x40854a20, 0x5785: 0x40854c20, 0x5786: 0x40854e20, 0x5787: 0x40855020,
-	0x5788: 0x40855220, 0x5789: 0x40855420, 0x578a: 0x40855620, 0x578b: 0x40855820,
-	0x578c: 0x40855a20, 0x578d: 0x40855c20, 0x578e: 0x40855e20, 0x578f: 0x40856020,
-	0x5790: 0x40856220, 0x5791: 0x40856420, 0x5792: 0x40856620, 0x5793: 0x40856820,
-	0x5794: 0x40856a20, 0x5795: 0x40856c20, 0x5796: 0x40856e20, 0x5797: 0x40857020,
-	0x5798: 0x40857220, 0x5799: 0x40857420, 0x579a: 0x40857620, 0x579b: 0x40857820,
-	0x579c: 0x40857a20, 0x579d: 0x40857c20, 0x579e: 0x40857e20, 0x579f: 0x40858020,
-	0x57a0: 0x40858220, 0x57a1: 0x40858420, 0x57a2: 0x40858620, 0x57a3: 0x40858820,
-	0x57a4: 0x40858a20, 0x57a5: 0x40858c20, 0x57a6: 0x40858e20, 0x57a7: 0x40859020,
-	0x57a8: 0x40859220, 0x57a9: 0x40859420, 0x57aa: 0x40859620, 0x57ab: 0x40859820,
-	0x57ac: 0x40859a20, 0x57ad: 0x40859c20, 0x57ae: 0x40859e20, 0x57af: 0x4085a020,
-	0x57b0: 0x4085a220, 0x57b1: 0x4085a420, 0x57b2: 0x4085a620, 0x57b3: 0x4085a820,
-	0x57b4: 0x4085aa20, 0x57b5: 0x4085ac20, 0x57b6: 0x4085ae20, 0x57b7: 0x4085b020,
-	0x57b8: 0x4085b220, 0x57b9: 0x4085b420, 0x57ba: 0x4085b620, 0x57bb: 0x4085b820,
-	0x57bc: 0x4085ba20, 0x57bd: 0x4085bc20, 0x57be: 0x4085be20, 0x57bf: 0x4085c020,
-	// Block 0x15f, offset 0x57c0
-	0x57c0: 0x4085c220, 0x57c1: 0x4085c420, 0x57c2: 0x4085c620, 0x57c3: 0x4085c820,
-	0x57c4: 0x4085ca20, 0x57c5: 0x4085cc20, 0x57c6: 0x4085ce20, 0x57c7: 0x4085d020,
-	0x57c8: 0x4085d220, 0x57c9: 0x4085d420, 0x57ca: 0x4085d620, 0x57cb: 0x4085d820,
-	0x57cc: 0x4085da20, 0x57cd: 0x4085dc20, 0x57ce: 0x4085de20, 0x57cf: 0x4085e020,
-	0x57d0: 0x4085e220, 0x57d1: 0x4085e420, 0x57d2: 0x4085e620, 0x57d3: 0x4085e820,
-	0x57d4: 0x4085ea20, 0x57d5: 0x4085ec20, 0x57d6: 0x4085ee20, 0x57d7: 0x4085f020,
-	0x57d8: 0x4085f220, 0x57d9: 0x4085f420, 0x57da: 0x4085f620, 0x57db: 0x4085f820,
-	0x57dc: 0x4085fa20, 0x57dd: 0x4085fc20, 0x57de: 0x4085fe20, 0x57df: 0x40860020,
-	0x57e0: 0x40860220, 0x57e1: 0x40860420, 0x57e2: 0x40860620, 0x57e3: 0x40860820,
-	0x57e4: 0x40860a20, 0x57e5: 0x40860c20, 0x57e6: 0x40860e20, 0x57e7: 0x40861020,
-	0x57e8: 0x40861220, 0x57e9: 0x40861420, 0x57ea: 0x40861620, 0x57eb: 0x40861820,
-	0x57ec: 0x40861a20, 0x57ed: 0x40861c20, 0x57ee: 0x40861e20,
-	// Block 0x160, offset 0x5800
-	0x5800: 0x405e3a20, 0x5801: 0x405e3c20, 0x5802: 0x405e3e20, 0x5803: 0x405e4020,
-	0x5804: 0x405e4220, 0x5805: 0x405e4420, 0x5806: 0x405e4620, 0x5807: 0x405e4820,
-	0x5808: 0x405e4a20, 0x5809: 0x405e4c20, 0x580a: 0x405e4e20, 0x580b: 0x405e5020,
-	0x580c: 0x405e5220, 0x580d: 0x405e5420, 0x580e: 0x405e5620, 0x580f: 0x405e5820,
-	0x5810: 0x405e5a20, 0x5811: 0x405e5c20, 0x5812: 0x405e5e20, 0x5813: 0x405e6020,
-	0x5814: 0x405e6220, 0x5815: 0x405e6420, 0x5816: 0x405e6620, 0x5817: 0x405e6820,
-	0x5818: 0x405e6a20, 0x5819: 0x405e6c20, 0x581a: 0x405e6e20, 0x581b: 0x405e7020,
-	0x581c: 0x405e7220, 0x581d: 0x405e7420, 0x581e: 0x405e7620, 0x581f: 0x405e7820,
-	0x5820: 0x405e7a20, 0x5821: 0x405e7c20, 0x5822: 0x405e7e20, 0x5823: 0x405e8020,
-	0x5824: 0x405e8220, 0x5825: 0x405e8420, 0x5826: 0x405e8620, 0x5827: 0x405e8820,
-	0x5828: 0x405e8a20, 0x5829: 0x405e8c20, 0x582a: 0x405e8e20, 0x582b: 0x405e9020,
-	0x582c: 0x405e9220, 0x582d: 0x405e9420, 0x582e: 0x405e9620, 0x582f: 0x405e9820,
-	0x5830: 0x405e9a20, 0x5831: 0x405e9c20, 0x5832: 0x405e9e20, 0x5833: 0x405ea020,
-	0x5834: 0x405ea220, 0x5835: 0x405ea420, 0x5836: 0x405ea620, 0x5837: 0x405ea820,
-	0x5838: 0x405eaa20, 0x5839: 0x405eac20, 0x583a: 0x405eae20, 0x583b: 0x405eb020,
-	0x583c: 0x405eb220, 0x583d: 0x405eb420, 0x583e: 0x405eb620, 0x583f: 0x405eb820,
-	// Block 0x161, offset 0x5840
-	0x5840: 0x405eba20, 0x5841: 0x405ebc20, 0x5842: 0x405ebe20, 0x5843: 0x405ec020,
-	0x5844: 0x405ec220, 0x5845: 0x405ec420, 0x5846: 0x405ec620, 0x5847: 0x405ec820,
-	0x5848: 0x405eca20, 0x5849: 0x405ecc20, 0x584a: 0x405ece20, 0x584b: 0x405ed020,
-	0x584c: 0x405ed220, 0x584d: 0x405ed420, 0x584e: 0x405ed620, 0x584f: 0x405ed820,
-	0x5850: 0x405eda20, 0x5851: 0x405edc20, 0x5852: 0x405ede20, 0x5853: 0x405ee020,
-	0x5854: 0x405ee220, 0x5855: 0x405ee420, 0x5856: 0x405ee620, 0x5857: 0x405ee820,
-	0x5858: 0x405eea20, 0x5859: 0x405eec20, 0x585a: 0x405eee20, 0x585b: 0x405ef020,
-	0x585c: 0x405ef220, 0x585d: 0x405ef420, 0x585e: 0x405ef620, 0x585f: 0x405ef820,
-	0x5860: 0x405efa20, 0x5861: 0x405efc20, 0x5862: 0x405efe20, 0x5863: 0x405f0020,
-	0x5864: 0x405f0220, 0x5865: 0x405f0420, 0x5866: 0x405f0620, 0x5867: 0x405f0820,
-	0x5868: 0x405f0a20, 0x5869: 0x405f0c20, 0x586a: 0x405f0e20, 0x586b: 0x405f1020,
-	0x586c: 0x405f1220, 0x586d: 0x405f1420, 0x586e: 0x405f1620, 0x586f: 0x405f1820,
-	0x5870: 0x405f1a20, 0x5871: 0x405f1c20, 0x5872: 0x405f1e20, 0x5873: 0x405f2020,
-	0x5874: 0x405f2220, 0x5875: 0x405f2420, 0x5876: 0x405f2620, 0x5877: 0x405f2820,
-	0x5878: 0x405f2a20, 0x5879: 0x405f2c20, 0x587a: 0x405f2e20, 0x587b: 0x405f3020,
-	0x587c: 0x405f3220, 0x587d: 0x405f3420, 0x587e: 0x405f3620, 0x587f: 0x405f3820,
-	// Block 0x162, offset 0x5880
-	0x5880: 0x405f3a20, 0x5881: 0x405f3c20, 0x5882: 0x405f3e20, 0x5883: 0x405f4020,
-	0x5884: 0x405f4220, 0x5885: 0x405f4420, 0x5886: 0x405f4620, 0x5887: 0x405f4820,
-	0x5888: 0x405f4a20, 0x5889: 0x405f4c20, 0x588a: 0x405f4e20, 0x588b: 0x405f5020,
-	0x588c: 0x405f5220, 0x588d: 0x405f5420, 0x588e: 0x405f5620, 0x588f: 0x405f5820,
-	0x5890: 0x405f5a20, 0x5891: 0x405f5c20, 0x5892: 0x405f5e20, 0x5893: 0x405f6020,
-	0x5894: 0x405f6220, 0x5895: 0x405f6420, 0x5896: 0x405f6620, 0x5897: 0x405f6820,
-	0x5898: 0x405f6a20, 0x5899: 0x405f6c20, 0x589a: 0x405f6e20, 0x589b: 0x405f7020,
-	0x589c: 0x405f7220, 0x589d: 0x405f7420, 0x589e: 0x405f7620, 0x589f: 0x405f7820,
-	0x58a0: 0x405f7a20, 0x58a1: 0x405f7c20, 0x58a2: 0x405f7e20, 0x58a3: 0x405f8020,
-	0x58a4: 0x405f8220, 0x58a5: 0x405f8420, 0x58a6: 0x405f8620, 0x58a7: 0x405f8820,
-	0x58a8: 0x405f8a20, 0x58a9: 0x405f8c20, 0x58aa: 0x405f8e20, 0x58ab: 0x405f9020,
-	0x58ac: 0x405f9220, 0x58ad: 0x405f9420, 0x58ae: 0x405f9620, 0x58af: 0x405f9820,
-	0x58b0: 0x405f9a20, 0x58b1: 0x405f9c20, 0x58b2: 0x405f9e20, 0x58b3: 0x405fa020,
-	0x58b4: 0x405fa220, 0x58b5: 0x405fa420, 0x58b6: 0x405fa620, 0x58b7: 0x405fa820,
-	0x58b8: 0x405faa20, 0x58b9: 0x405fac20, 0x58ba: 0x405fae20, 0x58bb: 0x405fb020,
-	0x58bc: 0x405fb220, 0x58bd: 0x405fb420, 0x58be: 0x405fb620, 0x58bf: 0x405fb820,
-	// Block 0x163, offset 0x58c0
-	0x58c0: 0x405fba20, 0x58c1: 0x405fbc20, 0x58c2: 0x405fbe20, 0x58c3: 0x405fc020,
-	0x58c4: 0x405fc220, 0x58c5: 0x405fc420, 0x58c6: 0x405fc620, 0x58c7: 0x405fc820,
-	0x58c8: 0x405fca20, 0x58c9: 0x405fcc20, 0x58ca: 0x405fce20, 0x58cb: 0x405fd020,
-	0x58cc: 0x405fd220, 0x58cd: 0x405fd420, 0x58ce: 0x405fd620, 0x58cf: 0x405fd820,
-	0x58d0: 0x405fda20, 0x58d1: 0x405fdc20, 0x58d2: 0x405fde20, 0x58d3: 0x405fe020,
-	0x58d4: 0x405fe220, 0x58d5: 0x405fe420, 0x58d6: 0x405fe620, 0x58d7: 0x405fe820,
-	0x58d8: 0x405fea20, 0x58d9: 0x405fec20, 0x58da: 0x405fee20, 0x58db: 0x405ff020,
-	0x58dc: 0x405ff220, 0x58dd: 0x405ff420, 0x58de: 0x405ff620, 0x58df: 0x405ff820,
-	0x58e0: 0x405ffa20, 0x58e1: 0x405ffc20, 0x58e2: 0x405ffe20, 0x58e3: 0x40600020,
-	0x58e4: 0x40600220, 0x58e5: 0x40600420, 0x58e6: 0x40600620, 0x58e7: 0x40600820,
-	0x58e8: 0x40600a20, 0x58e9: 0x40600c20, 0x58ea: 0x40600e20, 0x58eb: 0x40601020,
-	0x58ec: 0x40601220, 0x58ed: 0x40601420, 0x58ee: 0x40601620, 0x58ef: 0x40601820,
-	0x58f0: 0x40601a20, 0x58f1: 0x40601c20, 0x58f2: 0x40601e20, 0x58f3: 0x40602020,
-	0x58f4: 0x40602220, 0x58f5: 0x40602420, 0x58f6: 0x40602620, 0x58f7: 0x40602820,
-	0x58f8: 0x40602a20, 0x58f9: 0x40602c20, 0x58fa: 0x40602e20, 0x58fb: 0x40603020,
-	0x58fc: 0x40603220, 0x58fd: 0x40603420, 0x58fe: 0x40603620, 0x58ff: 0x40603820,
-	// Block 0x164, offset 0x5900
-	0x5900: 0x40603a20, 0x5901: 0x40603c20, 0x5902: 0x40603e20, 0x5903: 0x40604020,
-	0x5904: 0x40604220, 0x5905: 0x40604420, 0x5906: 0x40604620, 0x5907: 0x40604820,
-	0x5908: 0x40604a20, 0x5909: 0x40604c20, 0x590a: 0x40604e20, 0x590b: 0x40605020,
-	0x590c: 0x40605220, 0x590d: 0x40605420, 0x590e: 0x40605620, 0x590f: 0x40605820,
-	0x5910: 0x40605a20, 0x5911: 0x40605c20, 0x5912: 0x40605e20, 0x5913: 0x40606020,
-	0x5914: 0x40606220, 0x5915: 0x40606420, 0x5916: 0x40606620, 0x5917: 0x40606820,
-	0x5918: 0x40606a20, 0x5919: 0x40606c20, 0x591a: 0x40606e20, 0x591b: 0x40607020,
-	0x591c: 0x40607220, 0x591d: 0x40607420, 0x591e: 0x40607620, 0x591f: 0x40607820,
-	0x5920: 0x40607a20, 0x5921: 0x40607c20, 0x5922: 0x40607e20, 0x5923: 0x40608020,
-	0x5924: 0x40608220, 0x5925: 0x40608420, 0x5926: 0x40608620, 0x5927: 0x40608820,
-	0x5928: 0x40608a20, 0x5929: 0x40608c20, 0x592a: 0x40608e20, 0x592b: 0x40609020,
-	0x592c: 0x40609220, 0x592d: 0x40609420, 0x592e: 0x40609620, 0x592f: 0x40609820,
-	0x5930: 0x40609a20, 0x5931: 0x40609c20, 0x5932: 0x40609e20, 0x5933: 0x4060a020,
-	0x5934: 0x4060a220, 0x5935: 0x4060a420, 0x5936: 0x4060a620, 0x5937: 0x4060a820,
-	0x5938: 0x4060aa20, 0x5939: 0x4060ac20, 0x593a: 0x4060ae20, 0x593b: 0x4060b020,
-	0x593c: 0x4060b220, 0x593d: 0x4060b420, 0x593e: 0x4060b620, 0x593f: 0x4060b820,
-	// Block 0x165, offset 0x5940
-	0x5940: 0x4060ba20, 0x5941: 0x4060bc20, 0x5942: 0x4060be20, 0x5943: 0x4060c020,
-	0x5944: 0x4060c220, 0x5945: 0x4060c420, 0x5946: 0x4060c620, 0x5947: 0x4060c820,
-	0x5948: 0x4060ca20, 0x5949: 0x4060cc20, 0x594a: 0x4060ce20, 0x594b: 0x4060d020,
-	0x594c: 0x4060d220, 0x594d: 0x4060d420, 0x594e: 0x4060d620, 0x594f: 0x4060d820,
-	0x5950: 0x4060da20, 0x5951: 0x4060dc20, 0x5952: 0x4060de20, 0x5953: 0x4060e020,
-	0x5954: 0x4060e220, 0x5955: 0x4060e420, 0x5956: 0x4060e620, 0x5957: 0x4060e820,
-	0x5958: 0x4060ea20, 0x5959: 0x4060ec20, 0x595a: 0x4060ee20, 0x595b: 0x4060f020,
-	0x595c: 0x4060f220, 0x595d: 0x4060f420, 0x595e: 0x4060f620, 0x595f: 0x4060f820,
-	0x5960: 0x4060fa20, 0x5961: 0x4060fc20, 0x5962: 0x4060fe20, 0x5963: 0x40610020,
-	0x5964: 0x40610220, 0x5965: 0x40610420, 0x5966: 0x40610620, 0x5967: 0x40610820,
-	0x5968: 0x40610a20, 0x5969: 0x40610c20, 0x596a: 0x40610e20, 0x596b: 0x40611020,
-	0x596c: 0x40611220, 0x596d: 0x40611420, 0x596e: 0x40611620, 0x596f: 0x40611820,
-	0x5970: 0x40611a20, 0x5971: 0x40611c20, 0x5972: 0x40611e20, 0x5973: 0x40612020,
-	0x5974: 0x40612220, 0x5975: 0x40612420, 0x5976: 0x40612620, 0x5977: 0x40612820,
-	0x5978: 0x40612a20, 0x5979: 0x40612c20, 0x597a: 0x40612e20, 0x597b: 0x40613020,
-	0x597c: 0x40613220, 0x597d: 0x40613420, 0x597e: 0x40613620, 0x597f: 0x40613820,
-	// Block 0x166, offset 0x5980
-	0x5980: 0x40613a20, 0x5981: 0x40613c20, 0x5982: 0x40613e20, 0x5983: 0x40614020,
-	0x5984: 0x40614220, 0x5985: 0x40614420, 0x5986: 0x40614620, 0x5987: 0x40614820,
-	0x5988: 0x40614a20, 0x5989: 0x40614c20, 0x598a: 0x40614e20, 0x598b: 0x40615020,
-	0x598c: 0x40615220, 0x598d: 0x40615420, 0x598e: 0x40615620, 0x598f: 0x40615820,
-	0x5990: 0x40615a20, 0x5991: 0x40615c20, 0x5992: 0x40615e20, 0x5993: 0x40616020,
-	0x5994: 0x40616220, 0x5995: 0x40616420, 0x5996: 0x40616620, 0x5997: 0x40616820,
-	0x5998: 0x40616a20, 0x5999: 0x40616c20, 0x599a: 0x40616e20, 0x599b: 0x40617020,
-	0x599c: 0x40617220, 0x599d: 0x40617420, 0x599e: 0x40617620, 0x599f: 0x40617820,
-	0x59a0: 0x40617a20, 0x59a1: 0x40617c20, 0x59a2: 0x40617e20, 0x59a3: 0x40618020,
-	0x59a4: 0x40618220, 0x59a5: 0x40618420, 0x59a6: 0x40618620, 0x59a7: 0x40618820,
-	0x59a8: 0x40618a20, 0x59a9: 0x40618c20, 0x59aa: 0x40618e20, 0x59ab: 0x40619020,
-	0x59ac: 0x40619220, 0x59ad: 0x40619420, 0x59ae: 0x40619620, 0x59af: 0x40619820,
-	0x59b0: 0x40619a20, 0x59b1: 0x40619c20, 0x59b2: 0x40619e20, 0x59b3: 0x4061a020,
-	0x59b4: 0x4061a220, 0x59b5: 0x4061a420, 0x59b6: 0x4061a620, 0x59b7: 0x4061a820,
-	0x59b8: 0x4061aa20, 0x59b9: 0x4061ac20, 0x59ba: 0x4061ae20, 0x59bb: 0x4061b020,
-	0x59bc: 0x4061b220, 0x59bd: 0x4061b420, 0x59be: 0x4061b620, 0x59bf: 0x4061b820,
-	// Block 0x167, offset 0x59c0
-	0x59c0: 0x4061ba20, 0x59c1: 0x4061bc20, 0x59c2: 0x4061be20, 0x59c3: 0x4061c020,
-	0x59c4: 0x4061c220, 0x59c5: 0x4061c420, 0x59c6: 0x4061c620, 0x59c7: 0x4061c820,
-	0x59c8: 0x4061ca20, 0x59c9: 0x4061cc20, 0x59ca: 0x4061ce20, 0x59cb: 0x4061d020,
-	0x59cc: 0x4061d220, 0x59cd: 0x4061d420, 0x59ce: 0x4061d620, 0x59cf: 0x4061d820,
-	0x59d0: 0x4061da20, 0x59d1: 0x4061dc20, 0x59d2: 0x4061de20, 0x59d3: 0x4061e020,
-	0x59d4: 0x4061e220, 0x59d5: 0x4061e420, 0x59d6: 0x4061e620, 0x59d7: 0x4061e820,
-	0x59d8: 0x4061ea20, 0x59d9: 0x4061ec20, 0x59da: 0x4061ee20, 0x59db: 0x4061f020,
-	0x59dc: 0x4061f220, 0x59dd: 0x4061f420, 0x59de: 0x4061f620, 0x59df: 0x4061f820,
-	0x59e0: 0x4061fa20, 0x59e1: 0x4061fc20, 0x59e2: 0x4061fe20, 0x59e3: 0x40620020,
-	0x59e4: 0x40620220, 0x59e5: 0x40620420, 0x59e6: 0x40620620, 0x59e7: 0x40620820,
-	0x59e8: 0x40620a20, 0x59e9: 0x40620c20, 0x59ea: 0x40620e20, 0x59eb: 0x40621020,
-	0x59ec: 0x40621220, 0x59ed: 0x40621420, 0x59ee: 0x40621620, 0x59ef: 0x40621820,
-	0x59f0: 0x40621a20, 0x59f1: 0x40621c20, 0x59f2: 0x40621e20, 0x59f3: 0x40622020,
-	0x59f4: 0x40622220, 0x59f5: 0x40622420, 0x59f6: 0x40622620, 0x59f7: 0x40622820,
-	0x59f8: 0x40622a20, 0x59f9: 0x40622c20, 0x59fa: 0x40622e20, 0x59fb: 0x40623020,
-	0x59fc: 0x40623220, 0x59fd: 0x40623420, 0x59fe: 0x40623620, 0x59ff: 0x40623820,
-	// Block 0x168, offset 0x5a00
-	0x5a00: 0x40623a20, 0x5a01: 0x40623c20, 0x5a02: 0x40623e20, 0x5a03: 0x40624020,
-	0x5a04: 0x40624220, 0x5a05: 0x40624420, 0x5a06: 0x40624620, 0x5a07: 0x40624820,
-	0x5a08: 0x40624a20, 0x5a09: 0x40624c20, 0x5a0a: 0x40624e20, 0x5a0b: 0x40625020,
-	0x5a0c: 0x40625220, 0x5a0d: 0x40625420, 0x5a0e: 0x40625620, 0x5a0f: 0x40625820,
-	0x5a10: 0x40625a20, 0x5a11: 0x40625c20, 0x5a12: 0x40625e20, 0x5a13: 0x40626020,
-	0x5a14: 0x40626220, 0x5a15: 0x40626420, 0x5a16: 0x40626620, 0x5a17: 0x40626820,
-	0x5a18: 0x40626a20, 0x5a19: 0x40626c20, 0x5a1a: 0x40626e20, 0x5a1b: 0x40627020,
-	0x5a1c: 0x40627220, 0x5a1d: 0x40627420, 0x5a1e: 0x40627620, 0x5a1f: 0x40627820,
-	0x5a20: 0x40627a20, 0x5a21: 0x40627c20, 0x5a22: 0x40627e20, 0x5a23: 0x40628020,
-	0x5a24: 0x40628220, 0x5a25: 0x40628420, 0x5a26: 0x40628620, 0x5a27: 0x40628820,
-	0x5a28: 0x40628a20, 0x5a29: 0x40628c20, 0x5a2a: 0x40628e20, 0x5a2b: 0x40629020,
-	0x5a2c: 0x40629220, 0x5a2d: 0x40629420, 0x5a2e: 0x40629620, 0x5a2f: 0x40629820,
-	0x5a30: 0x40629a20, 0x5a31: 0x40629c20, 0x5a32: 0x40629e20, 0x5a33: 0x4062a020,
-	0x5a34: 0x4062a220, 0x5a35: 0x4062a420, 0x5a36: 0x4062a620, 0x5a37: 0x4062a820,
-	0x5a38: 0x4062aa20,
-	// Block 0x169, offset 0x5a40
-	0x5a40: 0x406fb620, 0x5a41: 0x406fb820, 0x5a42: 0x406fba20, 0x5a43: 0x406fbc20,
-	0x5a44: 0x406fbe20, 0x5a45: 0x406fc020, 0x5a46: 0x006fbe84, 0x5a47: 0x406fc220,
-	0x5a48: 0x406fc420, 0x5a49: 0x406fc620, 0x5a4a: 0x406fc820, 0x5a4b: 0x406fca20,
-	0x5a4c: 0x406fcc20, 0x5a4d: 0x406fce20, 0x5a4e: 0x406fd020, 0x5a4f: 0x406fd220,
-	0x5a50: 0x406fd420, 0x5a51: 0x406fd620, 0x5a52: 0x406fd820, 0x5a53: 0x006fd484,
-	0x5a54: 0x406fda20, 0x5a55: 0x406fdc20, 0x5a56: 0x406fde20, 0x5a57: 0x406fe020,
-	0x5a58: 0x406fe220, 0x5a59: 0x406fe420, 0x5a5a: 0x406fe620, 0x5a5b: 0x406fe820,
-	0x5a5c: 0x406fea20, 0x5a5d: 0x406fec20, 0x5a5e: 0x406fee20, 0x5a5f: 0x406ff020,
-	0x5a60: 0x406ff220, 0x5a61: 0x406ff420, 0x5a62: 0x406ff620, 0x5a63: 0x406ff820,
-	0x5a64: 0x406ffa20, 0x5a65: 0x006ff884, 0x5a66: 0x406ffc20, 0x5a67: 0x406ffe20,
-	0x5a68: 0x40700020, 0x5a69: 0x40700220, 0x5a6a: 0x40700420, 0x5a6b: 0x40700620,
-	0x5a6c: 0x40700820, 0x5a6d: 0x40700a20, 0x5a6e: 0x40700c20, 0x5a6f: 0x40700e20,
-	0x5a70: 0x40701020, 0x5a71: 0x40701220, 0x5a72: 0x40701420, 0x5a73: 0x40701620,
-	0x5a74: 0x40701820, 0x5a75: 0x40701a20, 0x5a76: 0x40701c20, 0x5a77: 0x40701e20,
-	0x5a78: 0x40702020, 0x5a79: 0x40702220, 0x5a7a: 0x40702420, 0x5a7b: 0x40702620,
-	0x5a7c: 0x40702820, 0x5a7d: 0x40702a20, 0x5a7e: 0x40702c20, 0x5a7f: 0x00702a84,
-	// Block 0x16a, offset 0x5a80
-	0x5a80: 0x40702e20, 0x5a81: 0x40703020, 0x5a82: 0x40703220, 0x5a83: 0x40703420,
-	0x5a84: 0x40703620,
-	0x5a90: 0x40703820, 0x5a91: 0x40703a20, 0x5a92: 0x40703c20, 0x5a93: 0x40703e20,
-	0x5a94: 0x40704020, 0x5a95: 0x40704220, 0x5a96: 0x40704420, 0x5a97: 0x40704620,
-	0x5a98: 0x40704820, 0x5a99: 0x40704a20, 0x5a9a: 0x40704c20, 0x5a9b: 0x40704e20,
-	0x5a9c: 0x40705020, 0x5a9d: 0x40705220, 0x5a9e: 0x40705420, 0x5a9f: 0x40705620,
-	0x5aa0: 0x40705820, 0x5aa1: 0x40705a20, 0x5aa2: 0x40705c20, 0x5aa3: 0x40705e20,
-	0x5aa4: 0x40706020, 0x5aa5: 0x40706220, 0x5aa6: 0x40706420, 0x5aa7: 0x40706620,
-	0x5aa8: 0x40706820, 0x5aa9: 0x40706a20, 0x5aaa: 0x40706c20, 0x5aab: 0x40706e20,
-	0x5aac: 0x40707020, 0x5aad: 0x40707220, 0x5aae: 0x40707420, 0x5aaf: 0x40707620,
-	0x5ab0: 0x40707820, 0x5ab1: 0x40707a20, 0x5ab2: 0x40707c20, 0x5ab3: 0x40707e20,
-	0x5ab4: 0x40708020, 0x5ab5: 0x40708220, 0x5ab6: 0x40708420, 0x5ab7: 0x40708620,
-	0x5ab8: 0x40708820, 0x5ab9: 0x40708a20, 0x5aba: 0x40708c20, 0x5abb: 0x40708e20,
-	0x5abc: 0x40709020, 0x5abd: 0x40709220, 0x5abe: 0x40709420,
-	// Block 0x16b, offset 0x5ac0
-	0x5acf: 0x40709620,
-	0x5ad0: 0x40709820, 0x5ad1: 0x40709a20, 0x5ad2: 0x40709c20, 0x5ad3: 0x40709e20,
-	0x5ad4: 0x4070a020, 0x5ad5: 0x4070a220, 0x5ad6: 0x4070a420, 0x5ad7: 0x4070a620,
-	0x5ad8: 0x4070a820, 0x5ad9: 0x4070aa20, 0x5ada: 0x4070ac20, 0x5adb: 0x4070ae20,
-	0x5adc: 0x4070b020, 0x5add: 0x4070b220, 0x5ade: 0x4070b420, 0x5adf: 0x4070b620,
-	// Block 0x16c, offset 0x5b00
-	0x5b00: 0x00657c91, 0x5b01: 0x0065c28e,
-	// Block 0x16d, offset 0x5b40
-	0x5b40: 0x401ba420, 0x5b41: 0x401ba620, 0x5b42: 0x401ba820, 0x5b43: 0x401baa20,
-	0x5b44: 0x401bac20, 0x5b45: 0x401bae20, 0x5b46: 0x401bb020, 0x5b47: 0x401bb220,
-	0x5b48: 0x401bb420, 0x5b49: 0x401bb620, 0x5b4a: 0x401bb820, 0x5b4b: 0x401bba20,
-	0x5b4c: 0x401bbc20, 0x5b4d: 0x401bbe20, 0x5b4e: 0x401bc020, 0x5b4f: 0x401bc220,
-	0x5b50: 0x401bc420, 0x5b51: 0x401bc620, 0x5b52: 0x401bc820, 0x5b53: 0x401bca20,
-	0x5b54: 0x401bcc20, 0x5b55: 0x401bce20, 0x5b56: 0x401bd020, 0x5b57: 0x401bd220,
-	0x5b58: 0x401bd420, 0x5b59: 0x401bd620, 0x5b5a: 0x401bd820, 0x5b5b: 0x401bda20,
-	0x5b5c: 0x401bdc20, 0x5b5d: 0x401bde20, 0x5b5e: 0x401be020, 0x5b5f: 0x401be220,
-	0x5b60: 0x401be420, 0x5b61: 0x401be620, 0x5b62: 0x401be820, 0x5b63: 0x401bea20,
-	0x5b64: 0x401bec20, 0x5b65: 0x401bee20, 0x5b66: 0x401bf020, 0x5b67: 0x401bf220,
-	0x5b68: 0x401bf420, 0x5b69: 0x401bf620, 0x5b6a: 0x401bf820, 0x5b6b: 0x401bfa20,
-	0x5b6c: 0x401bfc20, 0x5b6d: 0x401bfe20, 0x5b6e: 0x401c0020, 0x5b6f: 0x401c0220,
-	0x5b70: 0x401c0420, 0x5b71: 0x401c0620, 0x5b72: 0x401c0820, 0x5b73: 0x401c0a20,
-	0x5b74: 0x401c0c20, 0x5b75: 0x401c0e20, 0x5b76: 0x401c1020, 0x5b77: 0x401c1220,
-	0x5b78: 0x401c1420, 0x5b79: 0x401c1620, 0x5b7a: 0x401c1820, 0x5b7b: 0x401c1a20,
-	0x5b7c: 0x401c1c20, 0x5b7d: 0x401c1e20, 0x5b7e: 0x401c2020, 0x5b7f: 0x401c2220,
-	// Block 0x16e, offset 0x5b80
-	0x5b80: 0x401c2420, 0x5b81: 0x401c2620, 0x5b82: 0x401c2820, 0x5b83: 0x401c2a20,
-	0x5b84: 0x401c2c20, 0x5b85: 0x401c2e20, 0x5b86: 0x401c3020, 0x5b87: 0x401c3220,
-	0x5b88: 0x401c3420, 0x5b89: 0x401c3620, 0x5b8a: 0x401c3820, 0x5b8b: 0x401c3a20,
-	0x5b8c: 0x401c3c20, 0x5b8d: 0x401c3e20, 0x5b8e: 0x401c4020, 0x5b8f: 0x401c4220,
-	0x5b90: 0x401c4420, 0x5b91: 0x401c4620, 0x5b92: 0x401c4820, 0x5b93: 0x401c4a20,
-	0x5b94: 0x401c4c20, 0x5b95: 0x401c4e20, 0x5b96: 0x401c5020, 0x5b97: 0x401c5220,
-	0x5b98: 0x401c5420, 0x5b99: 0x401c5620, 0x5b9a: 0x401c5820, 0x5b9b: 0x401c5a20,
-	0x5b9c: 0x401c5c20, 0x5b9d: 0x401c5e20, 0x5b9e: 0x401c6020, 0x5b9f: 0x401c6220,
-	0x5ba0: 0x401c6420, 0x5ba1: 0x401c6620, 0x5ba2: 0x401c6820, 0x5ba3: 0x401c6a20,
-	0x5ba4: 0x401c6c20, 0x5ba5: 0x401c6e20, 0x5ba6: 0x401c7020, 0x5ba7: 0x401c7220,
-	0x5ba8: 0x401c7420, 0x5ba9: 0x401c7620, 0x5baa: 0x401c7820, 0x5bab: 0x401c7a20,
-	0x5bac: 0x401c7c20, 0x5bad: 0x401c7e20, 0x5bae: 0x401c8020, 0x5baf: 0x401c8220,
-	0x5bb0: 0x401c8420, 0x5bb1: 0x401c8620, 0x5bb2: 0x401c8820, 0x5bb3: 0x401c8a20,
-	0x5bb4: 0x401c8c20, 0x5bb5: 0x401c8e20, 0x5bb6: 0x401c9020, 0x5bb7: 0x401c9220,
-	0x5bb8: 0x401c9420, 0x5bb9: 0x401c9620, 0x5bba: 0x401c9820, 0x5bbb: 0x401c9a20,
-	0x5bbc: 0x401c9c20, 0x5bbd: 0x401c9e20, 0x5bbe: 0x401ca020, 0x5bbf: 0x401ca220,
-	// Block 0x16f, offset 0x5bc0
-	0x5bc0: 0x401ca420, 0x5bc1: 0x401ca620, 0x5bc2: 0x401ca820, 0x5bc3: 0x401caa20,
-	0x5bc4: 0x401cac20, 0x5bc5: 0x401cae20, 0x5bc6: 0x401cb020, 0x5bc7: 0x401cb220,
-	0x5bc8: 0x401cb420, 0x5bc9: 0x401cb620, 0x5bca: 0x401cb820, 0x5bcb: 0x401cba20,
-	0x5bcc: 0x401cbc20, 0x5bcd: 0x401cbe20, 0x5bce: 0x401cc020, 0x5bcf: 0x401cc220,
-	0x5bd0: 0x401cc420, 0x5bd1: 0x401cc620, 0x5bd2: 0x401cc820, 0x5bd3: 0x401cca20,
-	0x5bd4: 0x401ccc20, 0x5bd5: 0x401cce20, 0x5bd6: 0x401cd020, 0x5bd7: 0x401cd220,
-	0x5bd8: 0x401cd420, 0x5bd9: 0x401cd620, 0x5bda: 0x401cd820, 0x5bdb: 0x401cda20,
-	0x5bdc: 0x401cdc20, 0x5bdd: 0x401cde20, 0x5bde: 0x401ce020, 0x5bdf: 0x401ce220,
-	0x5be0: 0x401ce420, 0x5be1: 0x401ce620, 0x5be2: 0x401ce820, 0x5be3: 0x401cea20,
-	0x5be4: 0x401cec20, 0x5be5: 0x401cee20, 0x5be6: 0x401cf020, 0x5be7: 0x401cf220,
-	0x5be8: 0x401cf420, 0x5be9: 0x401cf620, 0x5bea: 0x401cf820, 0x5beb: 0x401cfa20,
-	0x5bec: 0x401cfc20, 0x5bed: 0x401cfe20, 0x5bee: 0x401d0020, 0x5bef: 0x401d0220,
-	0x5bf0: 0x401d0420, 0x5bf1: 0x401d0620, 0x5bf2: 0x401d0820, 0x5bf3: 0x401d0a20,
-	0x5bf4: 0x401d0c20, 0x5bf5: 0x401d0e20, 0x5bf6: 0x401d1020, 0x5bf7: 0x401d1220,
-	0x5bf8: 0x401d1420, 0x5bf9: 0x401d1620, 0x5bfa: 0x401d1820, 0x5bfb: 0x401d1a20,
-	0x5bfc: 0x401d1c20, 0x5bfd: 0x401d1e20, 0x5bfe: 0x401d2020, 0x5bff: 0x401d2220,
-	// Block 0x170, offset 0x5c00
-	0x5c00: 0x401d2420, 0x5c01: 0x401d2620, 0x5c02: 0x401d2820, 0x5c03: 0x401d2a20,
-	0x5c04: 0x401d2c20, 0x5c05: 0x401d2e20, 0x5c06: 0x401d3020, 0x5c07: 0x401d3220,
-	0x5c08: 0x401d3420, 0x5c09: 0x401d3620, 0x5c0a: 0x401d3820, 0x5c0b: 0x401d3a20,
-	0x5c0c: 0x401d3c20, 0x5c0d: 0x401d3e20, 0x5c0e: 0x401d4020, 0x5c0f: 0x401d4220,
-	0x5c10: 0x401d4420, 0x5c11: 0x401d4620, 0x5c12: 0x401d4820, 0x5c13: 0x401d4a20,
-	0x5c14: 0x401d4c20, 0x5c15: 0x401d4e20, 0x5c16: 0x401d5020, 0x5c17: 0x401d5220,
-	0x5c18: 0x401d5420, 0x5c19: 0x401d5620, 0x5c1a: 0x401d5820, 0x5c1b: 0x401d5a20,
-	0x5c1c: 0x401d5c20, 0x5c1d: 0x401d5e20, 0x5c1e: 0x401d6020, 0x5c1f: 0x401d6220,
-	0x5c20: 0x401d6420, 0x5c21: 0x401d6620, 0x5c22: 0x401d6820, 0x5c23: 0x401d6a20,
-	0x5c24: 0x401d6c20, 0x5c25: 0x401d6e20, 0x5c26: 0x401d7020, 0x5c27: 0x401d7220,
-	0x5c28: 0x401d7420, 0x5c29: 0x401d7620, 0x5c2a: 0x401d7820, 0x5c2b: 0x401d7a20,
-	0x5c2c: 0x401d7c20, 0x5c2d: 0x401d7e20, 0x5c2e: 0x401d8020, 0x5c2f: 0x401d8220,
-	0x5c30: 0x401d8420, 0x5c31: 0x401d8620, 0x5c32: 0x401d8820, 0x5c33: 0x401d8a20,
-	0x5c34: 0x401d8c20, 0x5c35: 0x401d8e20,
-	// Block 0x171, offset 0x5c40
-	0x5c40: 0x401d9020, 0x5c41: 0x401d9220, 0x5c42: 0x401d9420, 0x5c43: 0x401d9620,
-	0x5c44: 0x401d9820, 0x5c45: 0x401d9a20, 0x5c46: 0x401d9c20, 0x5c47: 0x401d9e20,
-	0x5c48: 0x401da020, 0x5c49: 0x401da220, 0x5c4a: 0x401da420, 0x5c4b: 0x401da620,
-	0x5c4c: 0x401da820, 0x5c4d: 0x401daa20, 0x5c4e: 0x401dac20, 0x5c4f: 0x401dae20,
-	0x5c50: 0x401db020, 0x5c51: 0x401db220, 0x5c52: 0x401db420, 0x5c53: 0x401db620,
-	0x5c54: 0x401db820, 0x5c55: 0x401dba20, 0x5c56: 0x401dbc20, 0x5c57: 0x401dbe20,
-	0x5c58: 0x401dc020, 0x5c59: 0x401dc220, 0x5c5a: 0x401dc420, 0x5c5b: 0x401dc620,
-	0x5c5c: 0x401dc820, 0x5c5d: 0x401dca20, 0x5c5e: 0x401dcc20, 0x5c5f: 0x401dce20,
-	0x5c60: 0x401dd020, 0x5c61: 0x401dd220, 0x5c62: 0x401dd420, 0x5c63: 0x401dd620,
-	0x5c64: 0x401dd820, 0x5c65: 0x401dda20, 0x5c66: 0x401ddc20,
-	0x5c69: 0x401e0420, 0x5c6a: 0x401de420, 0x5c6b: 0x401de620,
-	0x5c6c: 0x401de820, 0x5c6d: 0x401dea20, 0x5c6e: 0x401dec20, 0x5c6f: 0x401dee20,
-	0x5c70: 0x401df020, 0x5c71: 0x401df220, 0x5c72: 0x401df420, 0x5c73: 0x401df620,
-	0x5c74: 0x401df820, 0x5c75: 0x401dfa20, 0x5c76: 0x401dfc20, 0x5c77: 0x401dfe20,
-	0x5c78: 0x401e0020, 0x5c79: 0x401e0220, 0x5c7a: 0x401e0620, 0x5c7b: 0x401e0820,
-	0x5c7c: 0x401e0a20, 0x5c7d: 0x401e0c20, 0x5c7e: 0x401e0e20, 0x5c7f: 0x401e1020,
-	// Block 0x172, offset 0x5c80
-	0x5c80: 0x401e1220, 0x5c81: 0x401e1420, 0x5c82: 0x401e1620, 0x5c83: 0x401e1820,
-	0x5c84: 0x401e1a20, 0x5c85: 0x401e1c20, 0x5c86: 0x401e1e20, 0x5c87: 0x401e2020,
-	0x5c88: 0x401e2220, 0x5c89: 0x401e2420, 0x5c8a: 0x401e2620, 0x5c8b: 0x401e2820,
-	0x5c8c: 0x401e2a20, 0x5c8d: 0x401e2c20, 0x5c8e: 0x401e2e20, 0x5c8f: 0x401e3020,
-	0x5c90: 0x401e3220, 0x5c91: 0x401e3420, 0x5c92: 0x401e3620, 0x5c93: 0x401e3820,
-	0x5c94: 0x401e3a20, 0x5c95: 0x401e3c20, 0x5c96: 0x401e3e20, 0x5c97: 0x401e4020,
-	0x5c98: 0x401e4220, 0x5c99: 0x401e4420, 0x5c9a: 0x401e4620, 0x5c9b: 0x401e4820,
-	0x5c9c: 0x401e4a20, 0x5c9d: 0x401e4c20, 0x5c9e: 0x401e4020, 0x5c9f: 0x401e4220,
-	0x5ca0: 0x401e4220, 0x5ca1: 0x401e4220, 0x5ca2: 0x401e4220, 0x5ca3: 0x401e4220,
-	0x5ca4: 0x401e4220, 0x5ca5: 0xad800000, 0x5ca6: 0xad800000, 0x5ca7: 0xa0100000,
-	0x5ca8: 0xa0100000, 0x5ca9: 0xa0100000, 0x5caa: 0x401e4e20, 0x5cab: 0x401e5020,
-	0x5cac: 0x401e5220, 0x5cad: 0xae200000, 0x5cae: 0xad800000, 0x5caf: 0xad800000,
-	0x5cb0: 0xad800000, 0x5cb1: 0xad800000, 0x5cb2: 0xad800000, 0x5cb3: 0xa0000000,
-	0x5cb4: 0xa0000000, 0x5cb5: 0xa0000000, 0x5cb6: 0xa0000000, 0x5cb7: 0xa0000000,
-	0x5cb8: 0xa0000000, 0x5cb9: 0xa0000000, 0x5cba: 0xa0000000, 0x5cbb: 0xadc00000,
-	0x5cbc: 0xadc00000, 0x5cbd: 0xadc00000, 0x5cbe: 0xadc00000, 0x5cbf: 0xadc00000,
-	// Block 0x173, offset 0x5cc0
-	0x5cc0: 0xadc00000, 0x5cc1: 0xadc00000, 0x5cc2: 0xadc00000, 0x5cc3: 0x401e5420,
-	0x5cc4: 0x401e5620, 0x5cc5: 0xae600000, 0x5cc6: 0xae600000, 0x5cc7: 0xae600000,
-	0x5cc8: 0xae600000, 0x5cc9: 0xae600000, 0x5cca: 0xadc00000, 0x5ccb: 0xadc00000,
-	0x5ccc: 0x401e5820, 0x5ccd: 0x401e5a20, 0x5cce: 0x401e5c20, 0x5ccf: 0x401e5e20,
-	0x5cd0: 0x401e6020, 0x5cd1: 0x401e6220, 0x5cd2: 0x401e6420, 0x5cd3: 0x401e6620,
-	0x5cd4: 0x401e6820, 0x5cd5: 0x401e6a20, 0x5cd6: 0x401e6c20, 0x5cd7: 0x401e6e20,
-	0x5cd8: 0x401e7020, 0x5cd9: 0x401e7220, 0x5cda: 0x401e7420, 0x5cdb: 0x401e7620,
-	0x5cdc: 0x401e7820, 0x5cdd: 0x401e7a20, 0x5cde: 0x401e7c20, 0x5cdf: 0x401e7e20,
-	0x5ce0: 0x401e8020, 0x5ce1: 0x401e8220, 0x5ce2: 0x401e8420, 0x5ce3: 0x401e8620,
-	0x5ce4: 0x401e8820, 0x5ce5: 0x401e8a20, 0x5ce6: 0x401e8c20, 0x5ce7: 0x401e8e20,
-	0x5ce8: 0x401e9020, 0x5ce9: 0x401e9220, 0x5cea: 0xae600000, 0x5ceb: 0xae600000,
-	0x5cec: 0xae600000, 0x5ced: 0xae600000, 0x5cee: 0x401e9420, 0x5cef: 0x401e9620,
-	0x5cf0: 0x401e9820, 0x5cf1: 0x401e9a20, 0x5cf2: 0x401e9c20, 0x5cf3: 0x401e9e20,
-	0x5cf4: 0x401ea020, 0x5cf5: 0x401ea220, 0x5cf6: 0x401ea420, 0x5cf7: 0x401ea620,
-	0x5cf8: 0x401ea820, 0x5cf9: 0x401eaa20, 0x5cfa: 0x401eac20, 0x5cfb: 0x401eaa20,
-	0x5cfc: 0x401eac20, 0x5cfd: 0x401eaa20, 0x5cfe: 0x401eac20, 0x5cff: 0x401eaa20,
-	// Block 0x174, offset 0x5d00
-	0x5d00: 0x401eac20, 0x5d01: 0x401eae20, 0x5d02: 0x401eb020, 0x5d03: 0x401eb220,
-	0x5d04: 0x401eb420, 0x5d05: 0x401eb620, 0x5d06: 0x401eb820, 0x5d07: 0x401eba20,
-	0x5d08: 0x401ebc20, 0x5d09: 0x401ebe20, 0x5d0a: 0x401ec020, 0x5d0b: 0x401ec220,
-	0x5d0c: 0x401ec420, 0x5d0d: 0x401ec620, 0x5d0e: 0x401ec820, 0x5d0f: 0x401eca20,
-	0x5d10: 0x401ecc20, 0x5d11: 0x401ece20, 0x5d12: 0x401ed020, 0x5d13: 0x401ed220,
-	0x5d14: 0x401ed420, 0x5d15: 0x401ed620, 0x5d16: 0x401ed820, 0x5d17: 0x401eda20,
-	0x5d18: 0x401edc20, 0x5d19: 0x401ede20, 0x5d1a: 0x401ee020, 0x5d1b: 0x401ee220,
-	0x5d1c: 0x401ee420, 0x5d1d: 0x401ee620,
-	// Block 0x175, offset 0x5d40
-	0x5d40: 0x401ee820, 0x5d41: 0x401eea20, 0x5d42: 0x401eec20, 0x5d43: 0x401eee20,
-	0x5d44: 0x401ef020, 0x5d45: 0x401ef220, 0x5d46: 0x401ef420, 0x5d47: 0x401ef620,
-	0x5d48: 0x401ef820, 0x5d49: 0x401efa20, 0x5d4a: 0x401efc20, 0x5d4b: 0x401efe20,
-	0x5d4c: 0x401f0020, 0x5d4d: 0x401f0220, 0x5d4e: 0x401f0420, 0x5d4f: 0x401f0620,
-	0x5d50: 0x401f0820, 0x5d51: 0x401f0a20, 0x5d52: 0x401f0c20, 0x5d53: 0x401f0e20,
-	0x5d54: 0x401f1020, 0x5d55: 0x401f1220, 0x5d56: 0x401f1420, 0x5d57: 0x401f1620,
-	0x5d58: 0x401f1820, 0x5d59: 0x401f1a20, 0x5d5a: 0x401f1c20, 0x5d5b: 0x401f1e20,
-	0x5d5c: 0x401f2020, 0x5d5d: 0x401f2220, 0x5d5e: 0x401f2420, 0x5d5f: 0x401f2620,
-	0x5d60: 0x401f2820, 0x5d61: 0x401f2a20, 0x5d62: 0x401f2c20, 0x5d63: 0x401f2e20,
-	0x5d64: 0x401f3020, 0x5d65: 0x401f3220, 0x5d66: 0x401f3420, 0x5d67: 0x401f3620,
-	0x5d68: 0x401f3820, 0x5d69: 0x401f3a20, 0x5d6a: 0x401f3c20, 0x5d6b: 0x401f3e20,
-	0x5d6c: 0x401f4020, 0x5d6d: 0x401f4220, 0x5d6e: 0x401f4420, 0x5d6f: 0x401f4620,
-	0x5d70: 0x401f4820, 0x5d71: 0x401f4a20, 0x5d72: 0x401f4c20, 0x5d73: 0x401f4e20,
-	0x5d74: 0x401f5020, 0x5d75: 0x401f5220, 0x5d76: 0x401f5420, 0x5d77: 0x401f5620,
-	0x5d78: 0x401f5820, 0x5d79: 0x401f5a20, 0x5d7a: 0x401f5c20, 0x5d7b: 0x401f5e20,
-	0x5d7c: 0x401f6020, 0x5d7d: 0x401f6220, 0x5d7e: 0x401f6420, 0x5d7f: 0x401f6620,
-	// Block 0x176, offset 0x5d80
-	0x5d80: 0x401f6820, 0x5d81: 0x401f6a20, 0x5d82: 0xae600000, 0x5d83: 0xae600000,
-	0x5d84: 0xae600000, 0x5d85: 0x401f6c20,
-	// Block 0x177, offset 0x5dc0
-	0x5dc0: 0x4019e220, 0x5dc1: 0x4019e420, 0x5dc2: 0x4019e620, 0x5dc3: 0x4019e820,
-	0x5dc4: 0x4019ea20, 0x5dc5: 0x4019ec20, 0x5dc6: 0x4019ee20, 0x5dc7: 0x4019f020,
-	0x5dc8: 0x4019f220, 0x5dc9: 0x4019f420, 0x5dca: 0x4019f620, 0x5dcb: 0x4019f820,
-	0x5dcc: 0x4019fa20, 0x5dcd: 0x4019fc20, 0x5dce: 0x4019fe20, 0x5dcf: 0x401a0020,
-	0x5dd0: 0x401a0220, 0x5dd1: 0x401a0420, 0x5dd2: 0x401a0620, 0x5dd3: 0x401a0820,
-	0x5dd4: 0x401a0a20, 0x5dd5: 0x401a0c20, 0x5dd6: 0x401a0e20, 0x5dd7: 0x401a1020,
-	0x5dd8: 0x401a1220, 0x5dd9: 0x401a1420, 0x5dda: 0x401a1620, 0x5ddb: 0x401a1820,
-	0x5ddc: 0x401a1a20, 0x5ddd: 0x401a1c20, 0x5dde: 0x401a1e20, 0x5ddf: 0x401a2020,
-	0x5de0: 0x401a2220, 0x5de1: 0x401a2420, 0x5de2: 0x401a2620, 0x5de3: 0x401a2820,
-	0x5de4: 0x401a2a20, 0x5de5: 0x401a2c20, 0x5de6: 0x401a2e20, 0x5de7: 0x401a3020,
-	0x5de8: 0x401a3220, 0x5de9: 0x401a3420, 0x5dea: 0x401a3620, 0x5deb: 0x401a3820,
-	0x5dec: 0x401a3a20, 0x5ded: 0x401a3c20, 0x5dee: 0x401a3e20, 0x5def: 0x401a4020,
-	0x5df0: 0x401a4220, 0x5df1: 0x401a4420, 0x5df2: 0x401a4620, 0x5df3: 0x401a4820,
-	0x5df4: 0x401a4a20, 0x5df5: 0x401a4c20, 0x5df6: 0x401a4e20, 0x5df7: 0x401a5020,
-	0x5df8: 0x401a5220, 0x5df9: 0x401a5420, 0x5dfa: 0x401a5620, 0x5dfb: 0x401a5820,
-	0x5dfc: 0x401a5a20, 0x5dfd: 0x401a5c20, 0x5dfe: 0x401a5e20, 0x5dff: 0x401a6020,
-	// Block 0x178, offset 0x5e00
-	0x5e00: 0x401a6220, 0x5e01: 0x401a6420, 0x5e02: 0x401a6620, 0x5e03: 0x401a6820,
-	0x5e04: 0x401a6a20, 0x5e05: 0x401a6c20, 0x5e06: 0x401a6e20, 0x5e07: 0x401a7020,
-	0x5e08: 0x401a7220, 0x5e09: 0x401a7420, 0x5e0a: 0x401a7620, 0x5e0b: 0x401a7820,
-	0x5e0c: 0x401a7a20, 0x5e0d: 0x401a7c20, 0x5e0e: 0x401a7e20, 0x5e0f: 0x401a8020,
-	0x5e10: 0x401a8220, 0x5e11: 0x401a8420, 0x5e12: 0x401a8620, 0x5e13: 0x401a8820,
-	0x5e14: 0x401a8a20, 0x5e15: 0x401a8c20, 0x5e16: 0x401a8e20,
-	0x5e20: 0xe00002af, 0x5e21: 0xe00003ca, 0x5e22: 0xe00004a4, 0x5e23: 0xe0000576,
-	0x5e24: 0xe000063d, 0x5e25: 0xe00006ed, 0x5e26: 0xe0000795, 0x5e27: 0xe000083e,
-	0x5e28: 0xe00008e9, 0x5e29: 0x4029ba20, 0x5e2a: 0x4029bc20, 0x5e2b: 0x4029be20,
-	0x5e2c: 0x4029c020, 0x5e2d: 0x4029c220, 0x5e2e: 0x4029c420, 0x5e2f: 0x4029c620,
-	0x5e30: 0x4029c820, 0x5e31: 0x4029ca20,
-	// Block 0x179, offset 0x5e40
-	0x5e40: 0x002bde8b, 0x5e41: 0x002c0a8b, 0x5e42: 0x002c3a8b, 0x5e43: 0x002c628b,
-	0x5e44: 0x002c988b, 0x5e45: 0x002d088b, 0x5e46: 0x002d228b, 0x5e47: 0x002d688b,
-	0x5e48: 0x002d9a8b, 0x5e49: 0x002dcc8b, 0x5e4a: 0x002dfe8b, 0x5e4b: 0x002e228b,
-	0x5e4c: 0x002e828b, 0x5e4d: 0x002e9e8b, 0x5e4e: 0x002ee28b, 0x5e4f: 0x002f2c8b,
-	0x5e50: 0x002f568b, 0x5e51: 0x002f7a8b, 0x5e52: 0x002fe68b, 0x5e53: 0x00302c8b,
-	0x5e54: 0x00306c8b, 0x5e55: 0x0030be8b, 0x5e56: 0x0030e28b, 0x5e57: 0x0030f68b,
-	0x5e58: 0x0031008b, 0x5e59: 0x00312a8b, 0x5e5a: 0x002bde85, 0x5e5b: 0x002c0a85,
-	0x5e5c: 0x002c3a85, 0x5e5d: 0x002c6285, 0x5e5e: 0x002c9885, 0x5e5f: 0x002d0885,
-	0x5e60: 0x002d2285, 0x5e61: 0x002d6885, 0x5e62: 0x002d9a85, 0x5e63: 0x002dcc85,
-	0x5e64: 0x002dfe85, 0x5e65: 0x002e2285, 0x5e66: 0x002e8285, 0x5e67: 0x002e9e85,
-	0x5e68: 0x002ee285, 0x5e69: 0x002f2c85, 0x5e6a: 0x002f5685, 0x5e6b: 0x002f7a85,
-	0x5e6c: 0x002fe685, 0x5e6d: 0x00302c85, 0x5e6e: 0x00306c85, 0x5e6f: 0x0030be85,
-	0x5e70: 0x0030e285, 0x5e71: 0x0030f685, 0x5e72: 0x00310085, 0x5e73: 0x00312a85,
-	0x5e74: 0x002bde8b, 0x5e75: 0x002c0a8b, 0x5e76: 0x002c3a8b, 0x5e77: 0x002c628b,
-	0x5e78: 0x002c988b, 0x5e79: 0x002d088b, 0x5e7a: 0x002d228b, 0x5e7b: 0x002d688b,
-	0x5e7c: 0x002d9a8b, 0x5e7d: 0x002dcc8b, 0x5e7e: 0x002dfe8b, 0x5e7f: 0x002e228b,
-	// Block 0x17a, offset 0x5e80
-	0x5e80: 0x002e828b, 0x5e81: 0x002e9e8b, 0x5e82: 0x002ee28b, 0x5e83: 0x002f2c8b,
-	0x5e84: 0x002f568b, 0x5e85: 0x002f7a8b, 0x5e86: 0x002fe68b, 0x5e87: 0x00302c8b,
-	0x5e88: 0x00306c8b, 0x5e89: 0x0030be8b, 0x5e8a: 0x0030e28b, 0x5e8b: 0x0030f68b,
-	0x5e8c: 0x0031008b, 0x5e8d: 0x00312a8b, 0x5e8e: 0x002bde85, 0x5e8f: 0x002c0a85,
-	0x5e90: 0x002c3a85, 0x5e91: 0x002c6285, 0x5e92: 0x002c9885, 0x5e93: 0x002d0885,
-	0x5e94: 0x002d2285, 0x5e96: 0x002d9a85, 0x5e97: 0x002dcc85,
-	0x5e98: 0x002dfe85, 0x5e99: 0x002e2285, 0x5e9a: 0x002e8285, 0x5e9b: 0x002e9e85,
-	0x5e9c: 0x002ee285, 0x5e9d: 0x002f2c85, 0x5e9e: 0x002f5685, 0x5e9f: 0x002f7a85,
-	0x5ea0: 0x002fe685, 0x5ea1: 0x00302c85, 0x5ea2: 0x00306c85, 0x5ea3: 0x0030be85,
-	0x5ea4: 0x0030e285, 0x5ea5: 0x0030f685, 0x5ea6: 0x00310085, 0x5ea7: 0x00312a85,
-	0x5ea8: 0x002bde8b, 0x5ea9: 0x002c0a8b, 0x5eaa: 0x002c3a8b, 0x5eab: 0x002c628b,
-	0x5eac: 0x002c988b, 0x5ead: 0x002d088b, 0x5eae: 0x002d228b, 0x5eaf: 0x002d688b,
-	0x5eb0: 0x002d9a8b, 0x5eb1: 0x002dcc8b, 0x5eb2: 0x002dfe8b, 0x5eb3: 0x002e228b,
-	0x5eb4: 0x002e828b, 0x5eb5: 0x002e9e8b, 0x5eb6: 0x002ee28b, 0x5eb7: 0x002f2c8b,
-	0x5eb8: 0x002f568b, 0x5eb9: 0x002f7a8b, 0x5eba: 0x002fe68b, 0x5ebb: 0x00302c8b,
-	0x5ebc: 0x00306c8b, 0x5ebd: 0x0030be8b, 0x5ebe: 0x0030e28b, 0x5ebf: 0x0030f68b,
-	// Block 0x17b, offset 0x5ec0
-	0x5ec0: 0x0031008b, 0x5ec1: 0x00312a8b, 0x5ec2: 0x002bde85, 0x5ec3: 0x002c0a85,
-	0x5ec4: 0x002c3a85, 0x5ec5: 0x002c6285, 0x5ec6: 0x002c9885, 0x5ec7: 0x002d0885,
-	0x5ec8: 0x002d2285, 0x5ec9: 0x002d6885, 0x5eca: 0x002d9a85, 0x5ecb: 0x002dcc85,
-	0x5ecc: 0x002dfe85, 0x5ecd: 0x002e2285, 0x5ece: 0x002e8285, 0x5ecf: 0x002e9e85,
-	0x5ed0: 0x002ee285, 0x5ed1: 0x002f2c85, 0x5ed2: 0x002f5685, 0x5ed3: 0x002f7a85,
-	0x5ed4: 0x002fe685, 0x5ed5: 0x00302c85, 0x5ed6: 0x00306c85, 0x5ed7: 0x0030be85,
-	0x5ed8: 0x0030e285, 0x5ed9: 0x0030f685, 0x5eda: 0x00310085, 0x5edb: 0x00312a85,
-	0x5edc: 0x002bde8b, 0x5ede: 0x002c3a8b, 0x5edf: 0x002c628b,
-	0x5ee2: 0x002d228b,
-	0x5ee5: 0x002dcc8b, 0x5ee6: 0x002dfe8b,
-	0x5ee9: 0x002e9e8b, 0x5eea: 0x002ee28b, 0x5eeb: 0x002f2c8b,
-	0x5eec: 0x002f568b, 0x5eee: 0x002fe68b, 0x5eef: 0x00302c8b,
-	0x5ef0: 0x00306c8b, 0x5ef1: 0x0030be8b, 0x5ef2: 0x0030e28b, 0x5ef3: 0x0030f68b,
-	0x5ef4: 0x0031008b, 0x5ef5: 0x00312a8b, 0x5ef6: 0x002bde85, 0x5ef7: 0x002c0a85,
-	0x5ef8: 0x002c3a85, 0x5ef9: 0x002c6285, 0x5efb: 0x002d0885,
-	0x5efd: 0x002d6885, 0x5efe: 0x002d9a85, 0x5eff: 0x002dcc85,
-	// Block 0x17c, offset 0x5f00
-	0x5f00: 0x002dfe85, 0x5f01: 0x002e2285, 0x5f02: 0x002e8285, 0x5f03: 0x002e9e85,
-	0x5f05: 0x002f2c85, 0x5f06: 0x002f5685, 0x5f07: 0x002f7a85,
-	0x5f08: 0x002fe685, 0x5f09: 0x00302c85, 0x5f0a: 0x00306c85, 0x5f0b: 0x0030be85,
-	0x5f0c: 0x0030e285, 0x5f0d: 0x0030f685, 0x5f0e: 0x00310085, 0x5f0f: 0x00312a85,
-	0x5f10: 0x002bde8b, 0x5f11: 0x002c0a8b, 0x5f12: 0x002c3a8b, 0x5f13: 0x002c628b,
-	0x5f14: 0x002c988b, 0x5f15: 0x002d088b, 0x5f16: 0x002d228b, 0x5f17: 0x002d688b,
-	0x5f18: 0x002d9a8b, 0x5f19: 0x002dcc8b, 0x5f1a: 0x002dfe8b, 0x5f1b: 0x002e228b,
-	0x5f1c: 0x002e828b, 0x5f1d: 0x002e9e8b, 0x5f1e: 0x002ee28b, 0x5f1f: 0x002f2c8b,
-	0x5f20: 0x002f568b, 0x5f21: 0x002f7a8b, 0x5f22: 0x002fe68b, 0x5f23: 0x00302c8b,
-	0x5f24: 0x00306c8b, 0x5f25: 0x0030be8b, 0x5f26: 0x0030e28b, 0x5f27: 0x0030f68b,
-	0x5f28: 0x0031008b, 0x5f29: 0x00312a8b, 0x5f2a: 0x002bde85, 0x5f2b: 0x002c0a85,
-	0x5f2c: 0x002c3a85, 0x5f2d: 0x002c6285, 0x5f2e: 0x002c9885, 0x5f2f: 0x002d0885,
-	0x5f30: 0x002d2285, 0x5f31: 0x002d6885, 0x5f32: 0x002d9a85, 0x5f33: 0x002dcc85,
-	0x5f34: 0x002dfe85, 0x5f35: 0x002e2285, 0x5f36: 0x002e8285, 0x5f37: 0x002e9e85,
-	0x5f38: 0x002ee285, 0x5f39: 0x002f2c85, 0x5f3a: 0x002f5685, 0x5f3b: 0x002f7a85,
-	0x5f3c: 0x002fe685, 0x5f3d: 0x00302c85, 0x5f3e: 0x00306c85, 0x5f3f: 0x0030be85,
-	// Block 0x17d, offset 0x5f40
-	0x5f40: 0x0030e285, 0x5f41: 0x0030f685, 0x5f42: 0x00310085, 0x5f43: 0x00312a85,
-	0x5f44: 0x002bde8b, 0x5f45: 0x002c0a8b, 0x5f47: 0x002c628b,
-	0x5f48: 0x002c988b, 0x5f49: 0x002d088b, 0x5f4a: 0x002d228b,
-	0x5f4d: 0x002dcc8b, 0x5f4e: 0x002dfe8b, 0x5f4f: 0x002e228b,
-	0x5f50: 0x002e828b, 0x5f51: 0x002e9e8b, 0x5f52: 0x002ee28b, 0x5f53: 0x002f2c8b,
-	0x5f54: 0x002f568b, 0x5f56: 0x002fe68b, 0x5f57: 0x00302c8b,
-	0x5f58: 0x00306c8b, 0x5f59: 0x0030be8b, 0x5f5a: 0x0030e28b, 0x5f5b: 0x0030f68b,
-	0x5f5c: 0x0031008b, 0x5f5e: 0x002bde85, 0x5f5f: 0x002c0a85,
-	0x5f60: 0x002c3a85, 0x5f61: 0x002c6285, 0x5f62: 0x002c9885, 0x5f63: 0x002d0885,
-	0x5f64: 0x002d2285, 0x5f65: 0x002d6885, 0x5f66: 0x002d9a85, 0x5f67: 0x002dcc85,
-	0x5f68: 0x002dfe85, 0x5f69: 0x002e2285, 0x5f6a: 0x002e8285, 0x5f6b: 0x002e9e85,
-	0x5f6c: 0x002ee285, 0x5f6d: 0x002f2c85, 0x5f6e: 0x002f5685, 0x5f6f: 0x002f7a85,
-	0x5f70: 0x002fe685, 0x5f71: 0x00302c85, 0x5f72: 0x00306c85, 0x5f73: 0x0030be85,
-	0x5f74: 0x0030e285, 0x5f75: 0x0030f685, 0x5f76: 0x00310085, 0x5f77: 0x00312a85,
-	0x5f78: 0x002bde8b, 0x5f79: 0x002c0a8b, 0x5f7b: 0x002c628b,
-	0x5f7c: 0x002c988b, 0x5f7d: 0x002d088b, 0x5f7e: 0x002d228b,
-	// Block 0x17e, offset 0x5f80
-	0x5f80: 0x002d9a8b, 0x5f81: 0x002dcc8b, 0x5f82: 0x002dfe8b, 0x5f83: 0x002e228b,
-	0x5f84: 0x002e828b, 0x5f86: 0x002ee28b,
-	0x5f8a: 0x002fe68b, 0x5f8b: 0x00302c8b,
-	0x5f8c: 0x00306c8b, 0x5f8d: 0x0030be8b, 0x5f8e: 0x0030e28b, 0x5f8f: 0x0030f68b,
-	0x5f90: 0x0031008b, 0x5f92: 0x002bde85, 0x5f93: 0x002c0a85,
-	0x5f94: 0x002c3a85, 0x5f95: 0x002c6285, 0x5f96: 0x002c9885, 0x5f97: 0x002d0885,
-	0x5f98: 0x002d2285, 0x5f99: 0x002d6885, 0x5f9a: 0x002d9a85, 0x5f9b: 0x002dcc85,
-	0x5f9c: 0x002dfe85, 0x5f9d: 0x002e2285, 0x5f9e: 0x002e8285, 0x5f9f: 0x002e9e85,
-	0x5fa0: 0x002ee285, 0x5fa1: 0x002f2c85, 0x5fa2: 0x002f5685, 0x5fa3: 0x002f7a85,
-	0x5fa4: 0x002fe685, 0x5fa5: 0x00302c85, 0x5fa6: 0x00306c85, 0x5fa7: 0x0030be85,
-	0x5fa8: 0x0030e285, 0x5fa9: 0x0030f685, 0x5faa: 0x00310085, 0x5fab: 0x00312a85,
-	0x5fac: 0x002bde8b, 0x5fad: 0x002c0a8b, 0x5fae: 0x002c3a8b, 0x5faf: 0x002c628b,
-	0x5fb0: 0x002c988b, 0x5fb1: 0x002d088b, 0x5fb2: 0x002d228b, 0x5fb3: 0x002d688b,
-	0x5fb4: 0x002d9a8b, 0x5fb5: 0x002dcc8b, 0x5fb6: 0x002dfe8b, 0x5fb7: 0x002e228b,
-	0x5fb8: 0x002e828b, 0x5fb9: 0x002e9e8b, 0x5fba: 0x002ee28b, 0x5fbb: 0x002f2c8b,
-	0x5fbc: 0x002f568b, 0x5fbd: 0x002f7a8b, 0x5fbe: 0x002fe68b, 0x5fbf: 0x00302c8b,
-	// Block 0x17f, offset 0x5fc0
-	0x5fc0: 0x00306c8b, 0x5fc1: 0x0030be8b, 0x5fc2: 0x0030e28b, 0x5fc3: 0x0030f68b,
-	0x5fc4: 0x0031008b, 0x5fc5: 0x00312a8b, 0x5fc6: 0x002bde85, 0x5fc7: 0x002c0a85,
-	0x5fc8: 0x002c3a85, 0x5fc9: 0x002c6285, 0x5fca: 0x002c9885, 0x5fcb: 0x002d0885,
-	0x5fcc: 0x002d2285, 0x5fcd: 0x002d6885, 0x5fce: 0x002d9a85, 0x5fcf: 0x002dcc85,
-	0x5fd0: 0x002dfe85, 0x5fd1: 0x002e2285, 0x5fd2: 0x002e8285, 0x5fd3: 0x002e9e85,
-	0x5fd4: 0x002ee285, 0x5fd5: 0x002f2c85, 0x5fd6: 0x002f5685, 0x5fd7: 0x002f7a85,
-	0x5fd8: 0x002fe685, 0x5fd9: 0x00302c85, 0x5fda: 0x00306c85, 0x5fdb: 0x0030be85,
-	0x5fdc: 0x0030e285, 0x5fdd: 0x0030f685, 0x5fde: 0x00310085, 0x5fdf: 0x00312a85,
-	0x5fe0: 0x002bde8b, 0x5fe1: 0x002c0a8b, 0x5fe2: 0x002c3a8b, 0x5fe3: 0x002c628b,
-	0x5fe4: 0x002c988b, 0x5fe5: 0x002d088b, 0x5fe6: 0x002d228b, 0x5fe7: 0x002d688b,
-	0x5fe8: 0x002d9a8b, 0x5fe9: 0x002dcc8b, 0x5fea: 0x002dfe8b, 0x5feb: 0x002e228b,
-	0x5fec: 0x002e828b, 0x5fed: 0x002e9e8b, 0x5fee: 0x002ee28b, 0x5fef: 0x002f2c8b,
-	0x5ff0: 0x002f568b, 0x5ff1: 0x002f7a8b, 0x5ff2: 0x002fe68b, 0x5ff3: 0x00302c8b,
-	0x5ff4: 0x00306c8b, 0x5ff5: 0x0030be8b, 0x5ff6: 0x0030e28b, 0x5ff7: 0x0030f68b,
-	0x5ff8: 0x0031008b, 0x5ff9: 0x00312a8b, 0x5ffa: 0x002bde85, 0x5ffb: 0x002c0a85,
-	0x5ffc: 0x002c3a85, 0x5ffd: 0x002c6285, 0x5ffe: 0x002c9885, 0x5fff: 0x002d0885,
-	// Block 0x180, offset 0x6000
-	0x6000: 0x002d2285, 0x6001: 0x002d6885, 0x6002: 0x002d9a85, 0x6003: 0x002dcc85,
-	0x6004: 0x002dfe85, 0x6005: 0x002e2285, 0x6006: 0x002e8285, 0x6007: 0x002e9e85,
-	0x6008: 0x002ee285, 0x6009: 0x002f2c85, 0x600a: 0x002f5685, 0x600b: 0x002f7a85,
-	0x600c: 0x002fe685, 0x600d: 0x00302c85, 0x600e: 0x00306c85, 0x600f: 0x0030be85,
-	0x6010: 0x0030e285, 0x6011: 0x0030f685, 0x6012: 0x00310085, 0x6013: 0x00312a85,
-	0x6014: 0x002bde8b, 0x6015: 0x002c0a8b, 0x6016: 0x002c3a8b, 0x6017: 0x002c628b,
-	0x6018: 0x002c988b, 0x6019: 0x002d088b, 0x601a: 0x002d228b, 0x601b: 0x002d688b,
-	0x601c: 0x002d9a8b, 0x601d: 0x002dcc8b, 0x601e: 0x002dfe8b, 0x601f: 0x002e228b,
-	0x6020: 0x002e828b, 0x6021: 0x002e9e8b, 0x6022: 0x002ee28b, 0x6023: 0x002f2c8b,
-	0x6024: 0x002f568b, 0x6025: 0x002f7a8b, 0x6026: 0x002fe68b, 0x6027: 0x00302c8b,
-	0x6028: 0x00306c8b, 0x6029: 0x0030be8b, 0x602a: 0x0030e28b, 0x602b: 0x0030f68b,
-	0x602c: 0x0031008b, 0x602d: 0x00312a8b, 0x602e: 0x002bde85, 0x602f: 0x002c0a85,
-	0x6030: 0x002c3a85, 0x6031: 0x002c6285, 0x6032: 0x002c9885, 0x6033: 0x002d0885,
-	0x6034: 0x002d2285, 0x6035: 0x002d6885, 0x6036: 0x002d9a85, 0x6037: 0x002dcc85,
-	0x6038: 0x002dfe85, 0x6039: 0x002e2285, 0x603a: 0x002e8285, 0x603b: 0x002e9e85,
-	0x603c: 0x002ee285, 0x603d: 0x002f2c85, 0x603e: 0x002f5685, 0x603f: 0x002f7a85,
-	// Block 0x181, offset 0x6040
-	0x6040: 0x002fe685, 0x6041: 0x00302c85, 0x6042: 0x00306c85, 0x6043: 0x0030be85,
-	0x6044: 0x0030e285, 0x6045: 0x0030f685, 0x6046: 0x00310085, 0x6047: 0x00312a85,
-	0x6048: 0x002bde8b, 0x6049: 0x002c0a8b, 0x604a: 0x002c3a8b, 0x604b: 0x002c628b,
-	0x604c: 0x002c988b, 0x604d: 0x002d088b, 0x604e: 0x002d228b, 0x604f: 0x002d688b,
-	0x6050: 0x002d9a8b, 0x6051: 0x002dcc8b, 0x6052: 0x002dfe8b, 0x6053: 0x002e228b,
-	0x6054: 0x002e828b, 0x6055: 0x002e9e8b, 0x6056: 0x002ee28b, 0x6057: 0x002f2c8b,
-	0x6058: 0x002f568b, 0x6059: 0x002f7a8b, 0x605a: 0x002fe68b, 0x605b: 0x00302c8b,
-	0x605c: 0x00306c8b, 0x605d: 0x0030be8b, 0x605e: 0x0030e28b, 0x605f: 0x0030f68b,
-	0x6060: 0x0031008b, 0x6061: 0x00312a8b, 0x6062: 0x002bde85, 0x6063: 0x002c0a85,
-	0x6064: 0x002c3a85, 0x6065: 0x002c6285, 0x6066: 0x002c9885, 0x6067: 0x002d0885,
-	0x6068: 0x002d2285, 0x6069: 0x002d6885, 0x606a: 0x002d9a85, 0x606b: 0x002dcc85,
-	0x606c: 0x002dfe85, 0x606d: 0x002e2285, 0x606e: 0x002e8285, 0x606f: 0x002e9e85,
-	0x6070: 0x002ee285, 0x6071: 0x002f2c85, 0x6072: 0x002f5685, 0x6073: 0x002f7a85,
-	0x6074: 0x002fe685, 0x6075: 0x00302c85, 0x6076: 0x00306c85, 0x6077: 0x0030be85,
-	0x6078: 0x0030e285, 0x6079: 0x0030f685, 0x607a: 0x00310085, 0x607b: 0x00312a85,
-	0x607c: 0x002bde8b, 0x607d: 0x002c0a8b, 0x607e: 0x002c3a8b, 0x607f: 0x002c628b,
-	// Block 0x182, offset 0x6080
-	0x6080: 0x002c988b, 0x6081: 0x002d088b, 0x6082: 0x002d228b, 0x6083: 0x002d688b,
-	0x6084: 0x002d9a8b, 0x6085: 0x002dcc8b, 0x6086: 0x002dfe8b, 0x6087: 0x002e228b,
-	0x6088: 0x002e828b, 0x6089: 0x002e9e8b, 0x608a: 0x002ee28b, 0x608b: 0x002f2c8b,
-	0x608c: 0x002f568b, 0x608d: 0x002f7a8b, 0x608e: 0x002fe68b, 0x608f: 0x00302c8b,
-	0x6090: 0x00306c8b, 0x6091: 0x0030be8b, 0x6092: 0x0030e28b, 0x6093: 0x0030f68b,
-	0x6094: 0x0031008b, 0x6095: 0x00312a8b, 0x6096: 0x002bde85, 0x6097: 0x002c0a85,
-	0x6098: 0x002c3a85, 0x6099: 0x002c6285, 0x609a: 0x002c9885, 0x609b: 0x002d0885,
-	0x609c: 0x002d2285, 0x609d: 0x002d6885, 0x609e: 0x002d9a85, 0x609f: 0x002dcc85,
-	0x60a0: 0x002dfe85, 0x60a1: 0x002e2285, 0x60a2: 0x002e8285, 0x60a3: 0x002e9e85,
-	0x60a4: 0x002ee285, 0x60a5: 0x002f2c85, 0x60a6: 0x002f5685, 0x60a7: 0x002f7a85,
-	0x60a8: 0x002fe685, 0x60a9: 0x00302c85, 0x60aa: 0x00306c85, 0x60ab: 0x0030be85,
-	0x60ac: 0x0030e285, 0x60ad: 0x0030f685, 0x60ae: 0x00310085, 0x60af: 0x00312a85,
-	0x60b0: 0x002bde8b, 0x60b1: 0x002c0a8b, 0x60b2: 0x002c3a8b, 0x60b3: 0x002c628b,
-	0x60b4: 0x002c988b, 0x60b5: 0x002d088b, 0x60b6: 0x002d228b, 0x60b7: 0x002d688b,
-	0x60b8: 0x002d9a8b, 0x60b9: 0x002dcc8b, 0x60ba: 0x002dfe8b, 0x60bb: 0x002e228b,
-	0x60bc: 0x002e828b, 0x60bd: 0x002e9e8b, 0x60be: 0x002ee28b, 0x60bf: 0x002f2c8b,
-	// Block 0x183, offset 0x60c0
-	0x60c0: 0x002f568b, 0x60c1: 0x002f7a8b, 0x60c2: 0x002fe68b, 0x60c3: 0x00302c8b,
-	0x60c4: 0x00306c8b, 0x60c5: 0x0030be8b, 0x60c6: 0x0030e28b, 0x60c7: 0x0030f68b,
-	0x60c8: 0x0031008b, 0x60c9: 0x00312a8b, 0x60ca: 0x002bde85, 0x60cb: 0x002c0a85,
-	0x60cc: 0x002c3a85, 0x60cd: 0x002c6285, 0x60ce: 0x002c9885, 0x60cf: 0x002d0885,
-	0x60d0: 0x002d2285, 0x60d1: 0x002d6885, 0x60d2: 0x002d9a85, 0x60d3: 0x002dcc85,
-	0x60d4: 0x002dfe85, 0x60d5: 0x002e2285, 0x60d6: 0x002e8285, 0x60d7: 0x002e9e85,
-	0x60d8: 0x002ee285, 0x60d9: 0x002f2c85, 0x60da: 0x002f5685, 0x60db: 0x002f7a85,
-	0x60dc: 0x002fe685, 0x60dd: 0x00302c85, 0x60de: 0x00306c85, 0x60df: 0x0030be85,
-	0x60e0: 0x0030e285, 0x60e1: 0x0030f685, 0x60e2: 0x00310085, 0x60e3: 0x00312a85,
-	0x60e4: 0x002da285, 0x60e5: 0x002dd485,
-	0x60e8: 0x0032528b, 0x60e9: 0x0032548b, 0x60ea: 0x0032568b, 0x60eb: 0x00325a8b,
-	0x60ec: 0x00325c8b, 0x60ed: 0x0032648b, 0x60ee: 0x0032688b, 0x60ef: 0x00326a8b,
-	0x60f0: 0x00326c8b, 0x60f1: 0x0032708b, 0x60f2: 0x0032728b, 0x60f3: 0x0032768b,
-	0x60f4: 0x0032788b, 0x60f5: 0x00327a8b, 0x60f6: 0x00327c8b, 0x60f7: 0x00327e8b,
-	0x60f8: 0x0032888b, 0x60f9: 0x00326a8b, 0x60fa: 0x00328e8b, 0x60fb: 0x0032968b,
-	0x60fc: 0x0032988b, 0x60fd: 0x00329a8b, 0x60fe: 0x00329c8b, 0x60ff: 0x00329e8b,
-	// Block 0x184, offset 0x6100
-	0x6100: 0x0032a28b, 0x6101: 0x00092485, 0x6102: 0x00325285, 0x6103: 0x00325485,
-	0x6104: 0x00325685, 0x6105: 0x00325a85, 0x6106: 0x00325c85, 0x6107: 0x00326485,
-	0x6108: 0x00326885, 0x6109: 0x00326a85, 0x610a: 0x00326c85, 0x610b: 0x00327085,
-	0x610c: 0x00327285, 0x610d: 0x00327685, 0x610e: 0x00327885, 0x610f: 0x00327a85,
-	0x6110: 0x00327c85, 0x6111: 0x00327e85, 0x6112: 0x00328885, 0x6113: 0x00328e85,
-	0x6114: 0x00328e85, 0x6115: 0x00329685, 0x6116: 0x00329885, 0x6117: 0x00329a85,
-	0x6118: 0x00329c85, 0x6119: 0x00329e85, 0x611a: 0x0032a285, 0x611b: 0x00091c85,
-	0x611c: 0x00325c85, 0x611d: 0x00326a85, 0x611e: 0x00327085, 0x611f: 0x00329a85,
-	0x6120: 0x00328885, 0x6121: 0x00327e85, 0x6122: 0x0032528b, 0x6123: 0x0032548b,
-	0x6124: 0x0032568b, 0x6125: 0x00325a8b, 0x6126: 0x00325c8b, 0x6127: 0x0032648b,
-	0x6128: 0x0032688b, 0x6129: 0x00326a8b, 0x612a: 0x00326c8b, 0x612b: 0x0032708b,
-	0x612c: 0x0032728b, 0x612d: 0x0032768b, 0x612e: 0x0032788b, 0x612f: 0x00327a8b,
-	0x6130: 0x00327c8b, 0x6131: 0x00327e8b, 0x6132: 0x0032888b, 0x6133: 0x00326a8b,
-	0x6134: 0x00328e8b, 0x6135: 0x0032968b, 0x6136: 0x0032988b, 0x6137: 0x00329a8b,
-	0x6138: 0x00329c8b, 0x6139: 0x00329e8b, 0x613a: 0x0032a28b, 0x613b: 0x00092485,
-	0x613c: 0x00325285, 0x613d: 0x00325485, 0x613e: 0x00325685, 0x613f: 0x00325a85,
-	// Block 0x185, offset 0x6140
-	0x6140: 0x00325c85, 0x6141: 0x00326485, 0x6142: 0x00326885, 0x6143: 0x00326a85,
-	0x6144: 0x00326c85, 0x6145: 0x00327085, 0x6146: 0x00327285, 0x6147: 0x00327685,
-	0x6148: 0x00327885, 0x6149: 0x00327a85, 0x614a: 0x00327c85, 0x614b: 0x00327e85,
-	0x614c: 0x00328885, 0x614d: 0x00328e85, 0x614e: 0x00328e85, 0x614f: 0x00329685,
-	0x6150: 0x00329885, 0x6151: 0x00329a85, 0x6152: 0x00329c85, 0x6153: 0x00329e85,
-	0x6154: 0x0032a285, 0x6155: 0x00091c85, 0x6156: 0x00325c85, 0x6157: 0x00326a85,
-	0x6158: 0x00327085, 0x6159: 0x00329a85, 0x615a: 0x00328885, 0x615b: 0x00327e85,
-	0x615c: 0x0032528b, 0x615d: 0x0032548b, 0x615e: 0x0032568b, 0x615f: 0x00325a8b,
-	0x6160: 0x00325c8b, 0x6161: 0x0032648b, 0x6162: 0x0032688b, 0x6163: 0x00326a8b,
-	0x6164: 0x00326c8b, 0x6165: 0x0032708b, 0x6166: 0x0032728b, 0x6167: 0x0032768b,
-	0x6168: 0x0032788b, 0x6169: 0x00327a8b, 0x616a: 0x00327c8b, 0x616b: 0x00327e8b,
-	0x616c: 0x0032888b, 0x616d: 0x00326a8b, 0x616e: 0x00328e8b, 0x616f: 0x0032968b,
-	0x6170: 0x0032988b, 0x6171: 0x00329a8b, 0x6172: 0x00329c8b, 0x6173: 0x00329e8b,
-	0x6174: 0x0032a28b, 0x6175: 0x00092485, 0x6176: 0x00325285, 0x6177: 0x00325485,
-	0x6178: 0x00325685, 0x6179: 0x00325a85, 0x617a: 0x00325c85, 0x617b: 0x00326485,
-	0x617c: 0x00326885, 0x617d: 0x00326a85, 0x617e: 0x00326c85, 0x617f: 0x00327085,
-	// Block 0x186, offset 0x6180
-	0x6180: 0x00327285, 0x6181: 0x00327685, 0x6182: 0x00327885, 0x6183: 0x00327a85,
-	0x6184: 0x00327c85, 0x6185: 0x00327e85, 0x6186: 0x00328885, 0x6187: 0x00328e85,
-	0x6188: 0x00328e85, 0x6189: 0x00329685, 0x618a: 0x00329885, 0x618b: 0x00329a85,
-	0x618c: 0x00329c85, 0x618d: 0x00329e85, 0x618e: 0x0032a285, 0x618f: 0x00091c85,
-	0x6190: 0x00325c85, 0x6191: 0x00326a85, 0x6192: 0x00327085, 0x6193: 0x00329a85,
-	0x6194: 0x00328885, 0x6195: 0x00327e85, 0x6196: 0x0032528b, 0x6197: 0x0032548b,
-	0x6198: 0x0032568b, 0x6199: 0x00325a8b, 0x619a: 0x00325c8b, 0x619b: 0x0032648b,
-	0x619c: 0x0032688b, 0x619d: 0x00326a8b, 0x619e: 0x00326c8b, 0x619f: 0x0032708b,
-	0x61a0: 0x0032728b, 0x61a1: 0x0032768b, 0x61a2: 0x0032788b, 0x61a3: 0x00327a8b,
-	0x61a4: 0x00327c8b, 0x61a5: 0x00327e8b, 0x61a6: 0x0032888b, 0x61a7: 0x00326a8b,
-	0x61a8: 0x00328e8b, 0x61a9: 0x0032968b, 0x61aa: 0x0032988b, 0x61ab: 0x00329a8b,
-	0x61ac: 0x00329c8b, 0x61ad: 0x00329e8b, 0x61ae: 0x0032a28b, 0x61af: 0x00092485,
-	0x61b0: 0x00325285, 0x61b1: 0x00325485, 0x61b2: 0x00325685, 0x61b3: 0x00325a85,
-	0x61b4: 0x00325c85, 0x61b5: 0x00326485, 0x61b6: 0x00326885, 0x61b7: 0x00326a85,
-	0x61b8: 0x00326c85, 0x61b9: 0x00327085, 0x61ba: 0x00327285, 0x61bb: 0x00327685,
-	0x61bc: 0x00327885, 0x61bd: 0x00327a85, 0x61be: 0x00327c85, 0x61bf: 0x00327e85,
-	// Block 0x187, offset 0x61c0
-	0x61c0: 0x00328885, 0x61c1: 0x00328e85, 0x61c2: 0x00328e85, 0x61c3: 0x00329685,
-	0x61c4: 0x00329885, 0x61c5: 0x00329a85, 0x61c6: 0x00329c85, 0x61c7: 0x00329e85,
-	0x61c8: 0x0032a285, 0x61c9: 0x00091c85, 0x61ca: 0x00325c85, 0x61cb: 0x00326a85,
-	0x61cc: 0x00327085, 0x61cd: 0x00329a85, 0x61ce: 0x00328885, 0x61cf: 0x00327e85,
-	0x61d0: 0x0032528b, 0x61d1: 0x0032548b, 0x61d2: 0x0032568b, 0x61d3: 0x00325a8b,
-	0x61d4: 0x00325c8b, 0x61d5: 0x0032648b, 0x61d6: 0x0032688b, 0x61d7: 0x00326a8b,
-	0x61d8: 0x00326c8b, 0x61d9: 0x0032708b, 0x61da: 0x0032728b, 0x61db: 0x0032768b,
-	0x61dc: 0x0032788b, 0x61dd: 0x00327a8b, 0x61de: 0x00327c8b, 0x61df: 0x00327e8b,
-	0x61e0: 0x0032888b, 0x61e1: 0x00326a8b, 0x61e2: 0x00328e8b, 0x61e3: 0x0032968b,
-	0x61e4: 0x0032988b, 0x61e5: 0x00329a8b, 0x61e6: 0x00329c8b, 0x61e7: 0x00329e8b,
-	0x61e8: 0x0032a28b, 0x61e9: 0x00092485, 0x61ea: 0x00325285, 0x61eb: 0x00325485,
-	0x61ec: 0x00325685, 0x61ed: 0x00325a85, 0x61ee: 0x00325c85, 0x61ef: 0x00326485,
-	0x61f0: 0x00326885, 0x61f1: 0x00326a85, 0x61f2: 0x00326c85, 0x61f3: 0x00327085,
-	0x61f4: 0x00327285, 0x61f5: 0x00327685, 0x61f6: 0x00327885, 0x61f7: 0x00327a85,
-	0x61f8: 0x00327c85, 0x61f9: 0x00327e85, 0x61fa: 0x00328885, 0x61fb: 0x00328e85,
-	0x61fc: 0x00328e85, 0x61fd: 0x00329685, 0x61fe: 0x00329885, 0x61ff: 0x00329a85,
-	// Block 0x188, offset 0x6200
-	0x6200: 0x00329c85, 0x6201: 0x00329e85, 0x6202: 0x0032a285, 0x6203: 0x00091c85,
-	0x6204: 0x00325c85, 0x6205: 0x00326a85, 0x6206: 0x00327085, 0x6207: 0x00329a85,
-	0x6208: 0x00328885, 0x6209: 0x00327e85, 0x620a: 0x00325e8b, 0x620b: 0x00325e85,
-	0x620e: 0x0029cc85, 0x620f: 0x0029ce85,
-	0x6210: 0x0029d085, 0x6211: 0x0029d285, 0x6212: 0x0029d485, 0x6213: 0x0029d685,
-	0x6214: 0x0029d885, 0x6215: 0x0029da85, 0x6216: 0x0029dc85, 0x6217: 0x0029de85,
-	0x6218: 0x0029cc85, 0x6219: 0x0029ce85, 0x621a: 0x0029d085, 0x621b: 0x0029d285,
-	0x621c: 0x0029d485, 0x621d: 0x0029d685, 0x621e: 0x0029d885, 0x621f: 0x0029da85,
-	0x6220: 0x0029dc85, 0x6221: 0x0029de85, 0x6222: 0x0029cc85, 0x6223: 0x0029ce85,
-	0x6224: 0x0029d085, 0x6225: 0x0029d285, 0x6226: 0x0029d485, 0x6227: 0x0029d685,
-	0x6228: 0x0029d885, 0x6229: 0x0029da85, 0x622a: 0x0029dc85, 0x622b: 0x0029de85,
-	0x622c: 0x0029cc85, 0x622d: 0x0029ce85, 0x622e: 0x0029d085, 0x622f: 0x0029d285,
-	0x6230: 0x0029d485, 0x6231: 0x0029d685, 0x6232: 0x0029d885, 0x6233: 0x0029da85,
-	0x6234: 0x0029dc85, 0x6235: 0x0029de85, 0x6236: 0x0029cc85, 0x6237: 0x0029ce85,
-	0x6238: 0x0029d085, 0x6239: 0x0029d285, 0x623a: 0x0029d485, 0x623b: 0x0029d685,
-	0x623c: 0x0029d885, 0x623d: 0x0029da85, 0x623e: 0x0029dc85, 0x623f: 0x0029de85,
-	// Block 0x189, offset 0x6240
-	0x6240: 0x00393885, 0x6241: 0x00393c85, 0x6242: 0x00396485, 0x6243: 0x00398885,
-	0x6245: 0x003a7485, 0x6246: 0x0039a685, 0x6247: 0x00397285,
-	0x6248: 0x0039e685, 0x6249: 0x003a9085, 0x624a: 0x003a1a85, 0x624b: 0x003a4085,
-	0x624c: 0x003a4e85, 0x624d: 0x003a5685, 0x624e: 0x0039c685, 0x624f: 0x0039ee85,
-	0x6250: 0x0039fc85, 0x6251: 0x0039dc85, 0x6252: 0x003a1285, 0x6253: 0x0039a485,
-	0x6254: 0x0039c885, 0x6255: 0x00395685, 0x6256: 0x00395885, 0x6257: 0x00397485,
-	0x6258: 0x00398a85, 0x6259: 0x0039de85, 0x625a: 0x0039e885, 0x625b: 0x0039f085,
-	0x625c: 0x00393a85, 0x625d: 0x003a5885, 0x625e: 0x0039fe85, 0x625f: 0x003a1085,
-	0x6261: 0x00393c85, 0x6262: 0x00396485,
-	0x6264: 0x003a6885, 0x6267: 0x00397285,
-	0x6269: 0x003a9085, 0x626a: 0x003a1a85, 0x626b: 0x003a4085,
-	0x626c: 0x003a4e85, 0x626d: 0x003a5685, 0x626e: 0x0039c685, 0x626f: 0x0039ee85,
-	0x6270: 0x0039fc85, 0x6271: 0x0039dc85, 0x6272: 0x003a1285,
-	0x6274: 0x0039c885, 0x6275: 0x00395685, 0x6276: 0x00395885, 0x6277: 0x00397485,
-	0x6279: 0x0039de85, 0x627b: 0x0039f085,
-	// Block 0x18a, offset 0x6280
-	0x6282: 0x00396485,
-	0x6287: 0x00397285,
-	0x6289: 0x003a9085, 0x628b: 0x003a4085,
-	0x628d: 0x003a5685, 0x628e: 0x0039c685, 0x628f: 0x0039ee85,
-	0x6291: 0x0039dc85, 0x6292: 0x003a1285,
-	0x6294: 0x0039c885, 0x6297: 0x00397485,
-	0x6299: 0x0039de85, 0x629b: 0x0039f085,
-	0x629d: 0x003a5885, 0x629f: 0x003a1085,
-	0x62a1: 0x00393c85, 0x62a2: 0x00396485,
-	0x62a4: 0x003a6885, 0x62a7: 0x00397285,
-	0x62a8: 0x0039e685, 0x62a9: 0x003a9085, 0x62aa: 0x003a1a85,
-	0x62ac: 0x003a4e85, 0x62ad: 0x003a5685, 0x62ae: 0x0039c685, 0x62af: 0x0039ee85,
-	0x62b0: 0x0039fc85, 0x62b1: 0x0039dc85, 0x62b2: 0x003a1285,
-	0x62b4: 0x0039c885, 0x62b5: 0x00395685, 0x62b6: 0x00395885, 0x62b7: 0x00397485,
-	0x62b9: 0x0039de85, 0x62ba: 0x0039e885, 0x62bb: 0x0039f085,
-	0x62bc: 0x00393a85, 0x62be: 0x0039fe85,
-	// Block 0x18b, offset 0x62c0
-	0x62c0: 0x00393885, 0x62c1: 0x00393c85, 0x62c2: 0x00396485, 0x62c3: 0x00398885,
-	0x62c4: 0x003a6885, 0x62c5: 0x003a7485, 0x62c6: 0x0039a685, 0x62c7: 0x00397285,
-	0x62c8: 0x0039e685, 0x62c9: 0x003a9085, 0x62cb: 0x003a4085,
-	0x62cc: 0x003a4e85, 0x62cd: 0x003a5685, 0x62ce: 0x0039c685, 0x62cf: 0x0039ee85,
-	0x62d0: 0x0039fc85, 0x62d1: 0x0039dc85, 0x62d2: 0x003a1285, 0x62d3: 0x0039a485,
-	0x62d4: 0x0039c885, 0x62d5: 0x00395685, 0x62d6: 0x00395885, 0x62d7: 0x00397485,
-	0x62d8: 0x00398a85, 0x62d9: 0x0039de85, 0x62da: 0x0039e885, 0x62db: 0x0039f085,
-	0x62e1: 0x00393c85, 0x62e2: 0x00396485, 0x62e3: 0x00398885,
-	0x62e5: 0x003a7485, 0x62e6: 0x0039a685, 0x62e7: 0x00397285,
-	0x62e8: 0x0039e685, 0x62e9: 0x003a9085, 0x62eb: 0x003a4085,
-	0x62ec: 0x003a4e85, 0x62ed: 0x003a5685, 0x62ee: 0x0039c685, 0x62ef: 0x0039ee85,
-	0x62f0: 0x0039fc85, 0x62f1: 0x0039dc85, 0x62f2: 0x003a1285, 0x62f3: 0x0039a485,
-	0x62f4: 0x0039c885, 0x62f5: 0x00395685, 0x62f6: 0x00395885, 0x62f7: 0x00397485,
-	0x62f8: 0x00398a85, 0x62f9: 0x0039de85, 0x62fa: 0x0039e885, 0x62fb: 0x0039f085,
-	// Block 0x18c, offset 0x6300
-	0x6330: 0x40070a20, 0x6331: 0x40070c20,
-	// Block 0x18d, offset 0x6340
-	0x6340: 0x401f6e20, 0x6341: 0x401f7020, 0x6342: 0x401f7220, 0x6343: 0x401f7420,
-	0x6344: 0x401f7620, 0x6345: 0x401f7820, 0x6346: 0x401f7a20, 0x6347: 0x401f7c20,
-	0x6348: 0x401f7e20, 0x6349: 0x401f8020, 0x634a: 0x401f8220, 0x634b: 0x401f8420,
-	0x634c: 0x401f8620, 0x634d: 0x401f8820, 0x634e: 0x401f8a20, 0x634f: 0x401f8c20,
-	0x6350: 0x401f8e20, 0x6351: 0x401f9020, 0x6352: 0x401f9220, 0x6353: 0x401f9420,
-	0x6354: 0x401f9620, 0x6355: 0x401f9820, 0x6356: 0x401f9a20, 0x6357: 0x401f9c20,
-	0x6358: 0x401f9e20, 0x6359: 0x401fa020, 0x635a: 0x401fa220, 0x635b: 0x401fa420,
-	0x635c: 0x401fa620, 0x635d: 0x401fa820, 0x635e: 0x401faa20, 0x635f: 0x401fac20,
-	0x6360: 0x401fae20, 0x6361: 0x401fb020, 0x6362: 0x401fb220, 0x6363: 0x401fb420,
-	0x6364: 0x401fb620, 0x6365: 0x401fb820, 0x6366: 0x401fba20, 0x6367: 0x401fbc20,
-	0x6368: 0x401fbe20, 0x6369: 0x401fc020, 0x636a: 0x401fc220, 0x636b: 0x401fc420,
-	0x6370: 0x401fc620, 0x6371: 0x401fc820, 0x6372: 0x401fca20, 0x6373: 0x401fcc20,
-	0x6374: 0x401fce20, 0x6375: 0x401fd020, 0x6376: 0x401fd220, 0x6377: 0x401fd420,
-	0x6378: 0x401fd620, 0x6379: 0x401fd820, 0x637a: 0x401fda20, 0x637b: 0x401fdc20,
-	0x637c: 0x401fde20, 0x637d: 0x401fe020, 0x637e: 0x401fe220, 0x637f: 0x401fe420,
-	// Block 0x18e, offset 0x6380
-	0x6380: 0x401fe620, 0x6381: 0x401fe820, 0x6382: 0x401fea20, 0x6383: 0x401fec20,
-	0x6384: 0x401fee20, 0x6385: 0x401ff020, 0x6386: 0x401ff220, 0x6387: 0x401ff420,
-	0x6388: 0x401ff620, 0x6389: 0x401ff820, 0x638a: 0x401ffa20, 0x638b: 0x401ffc20,
-	0x638c: 0x401ffe20, 0x638d: 0x40200020, 0x638e: 0x40200220, 0x638f: 0x40200420,
-	0x6390: 0x40200620, 0x6391: 0x40200820, 0x6392: 0x40200a20, 0x6393: 0x40200c20,
-	0x6394: 0x40200e20, 0x6395: 0x40201020, 0x6396: 0x40201220, 0x6397: 0x40201420,
-	0x6398: 0x40201620, 0x6399: 0x40201820, 0x639a: 0x40201a20, 0x639b: 0x40201c20,
-	0x639c: 0x40201e20, 0x639d: 0x40202020, 0x639e: 0x40202220, 0x639f: 0x40202420,
-	0x63a0: 0x40202620, 0x63a1: 0x40202820, 0x63a2: 0x40202a20, 0x63a3: 0x40202c20,
-	0x63a4: 0x40202e20, 0x63a5: 0x40203020, 0x63a6: 0x40203220, 0x63a7: 0x40203420,
-	0x63a8: 0x40203620, 0x63a9: 0x40203820, 0x63aa: 0x40203a20, 0x63ab: 0x40203c20,
-	0x63ac: 0x40203e20, 0x63ad: 0x40204020, 0x63ae: 0x40204220, 0x63af: 0x40204420,
-	0x63b0: 0x40204620, 0x63b1: 0x40204820, 0x63b2: 0x40204a20, 0x63b3: 0x40204c20,
-	0x63b4: 0x40204e20, 0x63b5: 0x40205020, 0x63b6: 0x40205220, 0x63b7: 0x40205420,
-	0x63b8: 0x40205620, 0x63b9: 0x40205820, 0x63ba: 0x40205a20, 0x63bb: 0x40205c20,
-	0x63bc: 0x40205e20, 0x63bd: 0x40206020, 0x63be: 0x40206220, 0x63bf: 0x40206420,
-	// Block 0x18f, offset 0x63c0
-	0x63c0: 0x40206620, 0x63c1: 0x40206820, 0x63c2: 0x40206a20, 0x63c3: 0x40206c20,
-	0x63c4: 0x40206e20, 0x63c5: 0x40207020, 0x63c6: 0x40207220, 0x63c7: 0x40207420,
-	0x63c8: 0x40207620, 0x63c9: 0x40207820, 0x63ca: 0x40207a20, 0x63cb: 0x40207c20,
-	0x63cc: 0x40207e20, 0x63cd: 0x40208020, 0x63ce: 0x40208220, 0x63cf: 0x40208420,
-	0x63d0: 0x40208620, 0x63d1: 0x40208820, 0x63d2: 0x40208a20, 0x63d3: 0x40208c20,
-	0x63e0: 0x40208e20, 0x63e1: 0x40209020, 0x63e2: 0x40209220, 0x63e3: 0x40209420,
-	0x63e4: 0x40209620, 0x63e5: 0x40209820, 0x63e6: 0x40209a20, 0x63e7: 0x40209c20,
-	0x63e8: 0x40209e20, 0x63e9: 0x4020a020, 0x63ea: 0x4020a220, 0x63eb: 0x4020a420,
-	0x63ec: 0x4020a620, 0x63ed: 0x4020a820, 0x63ee: 0x4020aa20,
-	0x63f1: 0x4020ac20, 0x63f2: 0x4020ae20, 0x63f3: 0x4020b020,
-	0x63f4: 0x4020b220, 0x63f5: 0x4020b420, 0x63f6: 0x4020b620, 0x63f7: 0x4020b820,
-	0x63f8: 0x4020ba20, 0x63f9: 0x4020bc20, 0x63fa: 0x4020be20, 0x63fb: 0x4020c020,
-	0x63fc: 0x4020c220, 0x63fd: 0x4020c420, 0x63fe: 0x4020c620,
-	// Block 0x190, offset 0x6400
-	0x6401: 0x4020c820, 0x6402: 0x4020ca20, 0x6403: 0x4020cc20,
-	0x6404: 0x4020ce20, 0x6405: 0x4020d020, 0x6406: 0x4020d220, 0x6407: 0x4020d420,
-	0x6408: 0x4020d620, 0x6409: 0x4020d820, 0x640a: 0x4020da20, 0x640b: 0x4020dc20,
-	0x640c: 0x4020de20, 0x640d: 0x4020e020, 0x640e: 0x4020e220, 0x640f: 0x4020e420,
-	0x6411: 0x4020e620, 0x6412: 0x4020e820, 0x6413: 0x4020ea20,
-	0x6414: 0x4020ec20, 0x6415: 0x4020ee20, 0x6416: 0x4020f020, 0x6417: 0x4020f220,
-	0x6418: 0x4020f420, 0x6419: 0x4020f620, 0x641a: 0x4020f820, 0x641b: 0x4020fa20,
-	0x641c: 0x4020fc20, 0x641d: 0x4020fe20, 0x641e: 0x40210020, 0x641f: 0x40210220,
-	// Block 0x191, offset 0x6440
-	0x6440: 0xf0001f04, 0x6441: 0xf0001f04, 0x6442: 0xf0001f04, 0x6443: 0xf0001f04,
-	0x6444: 0xf0001f04, 0x6445: 0xf0001f04, 0x6446: 0xf0001f04, 0x6447: 0xf0001f04,
-	0x6448: 0xf0001f04, 0x6449: 0xf0001f04, 0x644a: 0xf0001f04,
-	0x6450: 0xf0000a04, 0x6451: 0xf0000a04, 0x6452: 0xf0000a04, 0x6453: 0xf0000a04,
-	0x6454: 0xf0000a04, 0x6455: 0xf0000a04, 0x6456: 0xf0000a04, 0x6457: 0xf0000a04,
-	0x6458: 0xf0000a04, 0x6459: 0xf0000a04, 0x645a: 0xf0000a04, 0x645b: 0xf0000a04,
-	0x645c: 0xf0000a04, 0x645d: 0xf0000a04, 0x645e: 0xf0000a04, 0x645f: 0xf0000a04,
-	0x6460: 0xf0000a04, 0x6461: 0xf0000a04, 0x6462: 0xf0000a04, 0x6463: 0xf0000a04,
-	0x6464: 0xf0000a04, 0x6465: 0xf0000a04, 0x6466: 0xf0000a04, 0x6467: 0xf0000a04,
-	0x6468: 0xf0000a04, 0x6469: 0xf0000a04, 0x646a: 0xf0000a04, 0x646b: 0x002c3a8c,
-	0x646c: 0x002f7a8c, 0x646d: 0xf0000c0c, 0x646e: 0xf0000c0c,
-	0x6470: 0x002bde9d, 0x6471: 0x002c0a9d, 0x6472: 0x002c3a9d, 0x6473: 0x002c629d,
-	0x6474: 0x002c989d, 0x6475: 0x002d089d, 0x6476: 0x002d229d, 0x6477: 0x002d689d,
-	0x6478: 0x002d9a9d, 0x6479: 0x002dcc9d, 0x647a: 0x002dfe9d, 0x647b: 0x002e229d,
-	0x647c: 0x002e829d, 0x647d: 0x002e9e9d, 0x647e: 0x002ee29d, 0x647f: 0x002f2c9d,
-	// Block 0x192, offset 0x6480
-	0x6480: 0x002f569d, 0x6481: 0x002f7a9d, 0x6482: 0x002fe69d, 0x6483: 0x00302c9d,
-	0x6484: 0x00306c9d, 0x6485: 0x0030be9d, 0x6486: 0x0030e29d, 0x6487: 0x0030f69d,
-	0x6488: 0x0031009d, 0x6489: 0x00312a9d, 0x648a: 0xf0001d1d, 0x648b: 0xf0001d1d,
-	0x648c: 0xf0001d1d, 0x648d: 0xf0001d1d, 0x648e: 0xe0000ebc, 0x648f: 0xf0001d1d,
-	0x6490: 0x002bde8c, 0x6491: 0x002c0a8c, 0x6492: 0x002c3a8c, 0x6493: 0x002c628c,
-	0x6494: 0x002c988c, 0x6495: 0x002d088c, 0x6496: 0x002d228c, 0x6497: 0x002d688c,
-	0x6498: 0x002d9a8c, 0x6499: 0x002dcc8c, 0x649a: 0x002dfe8c, 0x649b: 0x002e228c,
-	0x649c: 0x002e828c, 0x649d: 0x002e9e8c, 0x649e: 0x002ee28c, 0x649f: 0x002f2c8c,
-	0x64a0: 0x002f568c, 0x64a1: 0x002f7a8c, 0x64a2: 0x002fe68c, 0x64a3: 0x00302c8c,
-	0x64a4: 0x00306c8c, 0x64a5: 0x0030be8c, 0x64a6: 0x0030e28c, 0x64a7: 0x0030f68c,
-	0x64a8: 0x0031008c, 0x64a9: 0x00312a8c, 0x64aa: 0xf0001414, 0x64ab: 0xf0001414,
-	0x64b0: 0x002bde9d, 0x64b1: 0x002c0a9d, 0x64b2: 0x002c3a9d, 0x64b3: 0x002c629d,
-	0x64b4: 0x002c989d, 0x64b5: 0x002d089d, 0x64b6: 0x002d229d, 0x64b7: 0x002d689d,
-	0x64b8: 0x002d9a9d, 0x64b9: 0x002dcc9d, 0x64ba: 0x002dfe9d, 0x64bb: 0x002e229d,
-	0x64bc: 0x002e829d, 0x64bd: 0x002e9e9d, 0x64be: 0x002ee29d, 0x64bf: 0x002f2c9d,
-	// Block 0x193, offset 0x64c0
-	0x64c0: 0x002f569d, 0x64c1: 0x002f7a9d, 0x64c2: 0x002fe69d, 0x64c3: 0x00302c9d,
-	0x64c4: 0x00306c9d, 0x64c5: 0x0030be9d, 0x64c6: 0x0030e29d, 0x64c7: 0x0030f69d,
-	0x64c8: 0x0031009d, 0x64c9: 0x00312a9d, 0x64ca: 0x002f2c9d, 0x64cb: 0xe0000c81,
-	0x64cc: 0xe0000eb5, 0x64cd: 0xe0000f74, 0x64ce: 0xe00009d2, 0x64cf: 0xe00010f0,
-	0x64d0: 0xf0001d1d, 0x64d1: 0xe0000a6f, 0x64d2: 0xe0000a7e, 0x64d3: 0xe0000ba4,
-	0x64d4: 0xe0000c84, 0x64d5: 0xe0000d8a, 0x64d6: 0xe0000d8e, 0x64d7: 0xe0000e9b,
-	0x64d8: 0xe0000f77, 0x64d9: 0xe00010a2, 0x64da: 0xe00010c0,
-	// Block 0x194, offset 0x6500
-	0x6526: 0x40110c20, 0x6527: 0x40110e20,
-	0x6528: 0x40111020, 0x6529: 0x40111220, 0x652a: 0x40111420, 0x652b: 0x40111620,
-	0x652c: 0x40111820, 0x652d: 0x40111a20, 0x652e: 0x40111c20, 0x652f: 0x40111e20,
-	0x6530: 0x40112020, 0x6531: 0x40112220, 0x6532: 0x40112420, 0x6533: 0x40112620,
-	0x6534: 0x40112820, 0x6535: 0x40112a20, 0x6536: 0x40112c20, 0x6537: 0x40112e20,
-	0x6538: 0x40113020, 0x6539: 0x40113220, 0x653a: 0x40113420, 0x653b: 0x40113620,
-	0x653c: 0x40113820, 0x653d: 0x40113a20, 0x653e: 0x40113c20, 0x653f: 0x40113e20,
-	// Block 0x195, offset 0x6540
-	0x6540: 0xf0001c1c, 0x6541: 0xf0001c1c, 0x6542: 0x00658c9c,
-	0x6550: 0x02c4969c, 0x6551: 0x02b6ae9c, 0x6552: 0x02a7989c, 0x6553: 0xf0001c1c,
-	0x6554: 0x029d189c, 0x6555: 0x02b2349c, 0x6556: 0x0313c69c, 0x6557: 0x02b2529c,
-	0x6558: 0x029d489c, 0x6559: 0x02cc409c, 0x655a: 0x02e2429c, 0x655b: 0x02cb329c,
-	0x655c: 0x02a49a9c, 0x655d: 0x02bf189c, 0x655e: 0x02a31a9c, 0x655f: 0x02cb609c,
-	0x6560: 0x02a43a9c, 0x6561: 0x02fa849c, 0x6562: 0x02ea3e9c, 0x6563: 0x0319529c,
-	0x6564: 0x02b1e09c, 0x6565: 0x02a8729c, 0x6566: 0x02de289c, 0x6567: 0x02c52a9c,
-	0x6568: 0x02c6aa9c, 0x6569: 0x029c009c, 0x656a: 0x029c129c, 0x656b: 0x0320949c,
-	0x656c: 0x02bbcc9c, 0x656d: 0x029c5a9c, 0x656e: 0x02a7e69c, 0x656f: 0x02c60e9c,
-	0x6570: 0x031ae09c, 0x6571: 0x02c4a69c, 0x6572: 0x02f3029c, 0x6573: 0x02f4f49c,
-	0x6574: 0x02a8109c, 0x6575: 0x02dd009c, 0x6576: 0x02ce129c, 0x6577: 0x02ce109c,
-	0x6578: 0x02ea669c, 0x6579: 0x02a4e49c, 0x657a: 0x02ab6c9c,
-	// Block 0x196, offset 0x6580
-	0x6580: 0xf0000404, 0x6581: 0xf0000404, 0x6582: 0xf0000404, 0x6583: 0xf0000404,
-	0x6584: 0xf0000404, 0x6585: 0xf0000404, 0x6586: 0xf0000404, 0x6587: 0xf0000404,
-	0x6588: 0xf0000404,
-	0x6590: 0x02bf2e86, 0x6591: 0x02a7de86,
-	// Block 0x197, offset 0x65c0
-	0x65c0: 0x40210420, 0x65c1: 0x40210620, 0x65c2: 0x40210820, 0x65c3: 0x40210a20,
-	0x65c4: 0x40210c20, 0x65c5: 0x40210e20, 0x65c6: 0x40211020, 0x65c7: 0x40211220,
-	0x65c8: 0x40211420, 0x65c9: 0x40211620, 0x65ca: 0x40211820, 0x65cb: 0x40211a20,
-	0x65cc: 0x40211c20, 0x65cd: 0x40211e20, 0x65ce: 0x40212020, 0x65cf: 0x40212220,
-	0x65d0: 0x40212420, 0x65d1: 0x40212620, 0x65d2: 0x40212820, 0x65d3: 0x40212a20,
-	0x65d4: 0x40212c20, 0x65d5: 0x40212e20, 0x65d6: 0x40213020, 0x65d7: 0x40213220,
-	0x65d8: 0x40213420, 0x65d9: 0x40213620, 0x65da: 0x40213820, 0x65db: 0x40213a20,
-	0x65dc: 0x40213c20, 0x65dd: 0x40213e20, 0x65de: 0x40214020, 0x65df: 0x40214220,
-	0x65e0: 0x40214420,
-	0x65f0: 0x40214620, 0x65f1: 0x40214820, 0x65f2: 0x40214a20, 0x65f3: 0x40214c20,
-	0x65f4: 0x40214e20, 0x65f5: 0x40215020, 0x65f7: 0x40215220,
-	0x65f8: 0x40215420, 0x65f9: 0x40215620, 0x65fa: 0x40215820, 0x65fb: 0x40215a20,
-	0x65fc: 0x40215c20, 0x65fd: 0x40215e20, 0x65fe: 0x40216020, 0x65ff: 0x40216220,
-	// Block 0x198, offset 0x6600
-	0x6600: 0x40216420, 0x6601: 0x40216620, 0x6602: 0x40216820, 0x6603: 0x40216a20,
-	0x6604: 0x40216c20, 0x6605: 0x40216e20, 0x6606: 0x40217020, 0x6607: 0x40217220,
-	0x6608: 0x40217420, 0x6609: 0x40217620, 0x660a: 0x40217820, 0x660b: 0x40217a20,
-	0x660c: 0x40217c20, 0x660d: 0x40217e20, 0x660e: 0x40218020, 0x660f: 0x40218220,
-	0x6610: 0x40218420, 0x6611: 0x40218620, 0x6612: 0x40218820, 0x6613: 0x40218a20,
-	0x6614: 0x40218c20, 0x6615: 0x40218e20, 0x6616: 0x40219020, 0x6617: 0x40219220,
-	0x6618: 0x40219420, 0x6619: 0x40219620, 0x661a: 0x40219820, 0x661b: 0x40219a20,
-	0x661c: 0x40219c20, 0x661d: 0x40219e20, 0x661e: 0x4021a020, 0x661f: 0x4021a220,
-	0x6620: 0x4021a420, 0x6621: 0x4021a620, 0x6622: 0x4021a820, 0x6623: 0x4021aa20,
-	0x6624: 0x4021ac20, 0x6625: 0x4021ae20, 0x6626: 0x4021b020, 0x6627: 0x4021b220,
-	0x6628: 0x4021b420, 0x6629: 0x4021b620, 0x662a: 0x4021b820, 0x662b: 0x4021ba20,
-	0x662c: 0x4021bc20, 0x662d: 0x4021be20, 0x662e: 0x4021c020, 0x662f: 0x4021c220,
-	0x6630: 0x4021c420, 0x6631: 0x4021c620, 0x6632: 0x4021c820, 0x6633: 0x4021ca20,
-	0x6634: 0x4021cc20, 0x6635: 0x4021ce20, 0x6636: 0x4021d020, 0x6637: 0x4021d220,
-	0x6638: 0x4021d420, 0x6639: 0x4021d620, 0x663a: 0x4021d820, 0x663b: 0x4021da20,
-	0x663c: 0x4021dc20,
-	// Block 0x199, offset 0x6640
-	0x6640: 0x4021de20, 0x6641: 0x4021e020, 0x6642: 0x4021e220, 0x6643: 0x4021e420,
-	0x6644: 0x4021e620, 0x6645: 0x4021e820, 0x6646: 0x4021ea20, 0x6647: 0x4021ec20,
-	0x6648: 0x4021ee20, 0x6649: 0x4021f020, 0x664a: 0x4021f220, 0x664b: 0x4021f420,
-	0x664c: 0x4021f620, 0x664d: 0x4021f820, 0x664e: 0x4021fa20, 0x664f: 0x4021fc20,
-	0x6650: 0x4021fe20, 0x6651: 0x40220020, 0x6652: 0x40220220, 0x6653: 0x40220420,
-	0x6660: 0x40220620, 0x6661: 0x40220820, 0x6662: 0x40220a20, 0x6663: 0x40220c20,
-	0x6664: 0x40220e20, 0x6665: 0x40221020, 0x6666: 0x40221220, 0x6667: 0x40221420,
-	0x6668: 0x40221620, 0x6669: 0x40221820, 0x666a: 0x40221a20, 0x666b: 0x40221c20,
-	0x666c: 0x40221e20, 0x666d: 0x40222020, 0x666e: 0x40222220, 0x666f: 0x40222420,
-	0x6670: 0x40222620, 0x6671: 0x40222820, 0x6672: 0x40222a20, 0x6673: 0x40222c20,
-	0x6674: 0x40222e20, 0x6675: 0x40223020, 0x6676: 0x40223220, 0x6677: 0x40223420,
-	0x6678: 0x40223620, 0x6679: 0x40223820, 0x667a: 0x40223a20, 0x667b: 0x40223c20,
-	0x667c: 0x40223e20, 0x667d: 0x40224020, 0x667e: 0x40224220, 0x667f: 0x40224420,
-	// Block 0x19a, offset 0x6680
-	0x6680: 0x40224620, 0x6681: 0x40224820, 0x6682: 0x40224a20, 0x6683: 0x40224c20,
-	0x6684: 0x40224e20, 0x6686: 0x40225020, 0x6687: 0x40225220,
-	0x6688: 0x40225420, 0x6689: 0x40225620, 0x668a: 0x40225820,
-	0x66a0: 0x40225a20, 0x66a1: 0x40225c20, 0x66a2: 0x40225e20, 0x66a3: 0x40226020,
-	0x66a4: 0x40226220, 0x66a5: 0x40226420, 0x66a6: 0x40226620, 0x66a7: 0x40226820,
-	0x66a8: 0x40226a20, 0x66a9: 0x40226c20, 0x66aa: 0x40226e20, 0x66ab: 0x40227020,
-	0x66ac: 0x40227220, 0x66ad: 0x40227420, 0x66ae: 0x40227620, 0x66af: 0x40227820,
-	0x66b0: 0x40227a20,
-	// Block 0x19b, offset 0x66c0
-	0x66c0: 0x40227c20, 0x66c1: 0x40227e20, 0x66c2: 0x40228020, 0x66c3: 0x40228220,
-	0x66c4: 0x40228420, 0x66c5: 0x40228620, 0x66c6: 0x40228820, 0x66c7: 0x40228a20,
-	0x66c8: 0x40228c20, 0x66c9: 0x40228e20, 0x66ca: 0x40229020, 0x66cb: 0x40229220,
-	0x66cc: 0x40229420, 0x66cd: 0x40229620, 0x66ce: 0x40229820, 0x66cf: 0x40229a20,
-	0x66d0: 0x40229c20, 0x66d1: 0x40229e20, 0x66d2: 0x4022a020, 0x66d3: 0x4022a220,
-	0x66d4: 0x4022a420, 0x66d5: 0x4022a620, 0x66d6: 0x4022a820, 0x66d7: 0x4022aa20,
-	0x66d8: 0x4022ac20, 0x66d9: 0x4022ae20, 0x66da: 0x4022b020, 0x66db: 0x4022b220,
-	0x66dc: 0x4022b420, 0x66dd: 0x4022b620, 0x66de: 0x4022b820, 0x66df: 0x4022ba20,
-	0x66e0: 0x4022bc20, 0x66e1: 0x4022be20, 0x66e2: 0x4022c020, 0x66e3: 0x4022c220,
-	0x66e4: 0x4022c420, 0x66e5: 0x4022c620, 0x66e6: 0x4022c820, 0x66e7: 0x4022ca20,
-	0x66e8: 0x4022cc20, 0x66e9: 0x4022ce20, 0x66ea: 0x4022d020, 0x66eb: 0x4022d220,
-	0x66ec: 0x4022d420, 0x66ed: 0x4022d620, 0x66ee: 0x4022d820, 0x66ef: 0x4022da20,
-	0x66f0: 0x4022dc20, 0x66f1: 0x4022de20, 0x66f2: 0x4022e020, 0x66f3: 0x4022e220,
-	0x66f4: 0x4022e420, 0x66f5: 0x4022e620, 0x66f6: 0x4022e820, 0x66f7: 0x4022ea20,
-	0x66f8: 0x4022ec20, 0x66f9: 0x4022ee20, 0x66fa: 0x4022f020, 0x66fb: 0x4022f220,
-	0x66fc: 0x4022f420, 0x66fd: 0x4022f620, 0x66fe: 0x4022f820,
-	// Block 0x19c, offset 0x6700
-	0x6700: 0x4022fa20, 0x6702: 0x4022fc20, 0x6703: 0x4022fe20,
-	0x6704: 0x40230020, 0x6705: 0x40230220, 0x6706: 0x40230420, 0x6707: 0x40230620,
-	0x6708: 0x40230820, 0x6709: 0x40230a20, 0x670a: 0x40230c20, 0x670b: 0x40230e20,
-	0x670c: 0x40231020, 0x670d: 0x40231220, 0x670e: 0x40231420, 0x670f: 0x40231620,
-	0x6710: 0x40231820, 0x6711: 0x40231a20, 0x6712: 0x40231c20, 0x6713: 0x40231e20,
-	0x6714: 0x40232020, 0x6715: 0x40232220, 0x6716: 0x40232420, 0x6717: 0x40232620,
-	0x6718: 0x40232820, 0x6719: 0x40232a20, 0x671a: 0x40232c20, 0x671b: 0x40232e20,
-	0x671c: 0x40233020, 0x671d: 0x40233220, 0x671e: 0x40233420, 0x671f: 0x40233620,
-	0x6720: 0x40233820, 0x6721: 0x40233a20, 0x6722: 0x40233c20, 0x6723: 0x40233e20,
-	0x6724: 0x40234020, 0x6725: 0x40234220, 0x6726: 0x40234420, 0x6727: 0x40234620,
-	0x6728: 0x40234820, 0x6729: 0x40234a20, 0x672a: 0x40234c20, 0x672b: 0x40234e20,
-	0x672c: 0x40235020, 0x672d: 0x40235220, 0x672e: 0x40235420, 0x672f: 0x40235620,
-	0x6730: 0x40235820, 0x6731: 0x40235a20, 0x6732: 0x40235c20, 0x6733: 0x40235e20,
-	0x6734: 0x40236020, 0x6735: 0x40236220, 0x6736: 0x40236420, 0x6737: 0x40236620,
-	0x6738: 0x40236820, 0x6739: 0x40236a20, 0x673a: 0x40236c20, 0x673b: 0x40236e20,
-	0x673c: 0x40237020, 0x673d: 0x40237220, 0x673e: 0x40237420, 0x673f: 0x40237620,
-	// Block 0x19d, offset 0x6740
-	0x6740: 0x40237820, 0x6741: 0x40237a20, 0x6742: 0x40237c20, 0x6743: 0x40237e20,
-	0x6744: 0x40238020, 0x6745: 0x40238220, 0x6746: 0x40238420, 0x6747: 0x40238620,
-	0x6748: 0x40238820, 0x6749: 0x40238a20, 0x674a: 0x40238c20, 0x674b: 0x40238e20,
-	0x674c: 0x40239020, 0x674d: 0x40239220, 0x674e: 0x40239420, 0x674f: 0x40239620,
-	0x6750: 0x40239820, 0x6751: 0x40239a20, 0x6752: 0x40239c20, 0x6753: 0x40239e20,
-	0x6754: 0x4023a020, 0x6755: 0x4023a220, 0x6756: 0x4023a420, 0x6757: 0x4023a620,
-	0x6758: 0x4023a820, 0x6759: 0x4023aa20, 0x675a: 0x4023ac20, 0x675b: 0x4023ae20,
-	0x675c: 0x4023b020, 0x675d: 0x4023b220, 0x675e: 0x4023b420, 0x675f: 0x4023b620,
-	0x6760: 0x4023b820, 0x6761: 0x4023ba20, 0x6762: 0x4023bc20, 0x6763: 0x4023be20,
-	0x6764: 0x4023c020, 0x6765: 0x4023c220, 0x6766: 0x4023c420, 0x6767: 0x4023c620,
-	0x6768: 0x4023c820, 0x6769: 0x4023ca20, 0x676a: 0x4023cc20, 0x676b: 0x4023ce20,
-	0x676c: 0x4023d020, 0x676d: 0x4023d220, 0x676e: 0x4023d420, 0x676f: 0x4023d620,
-	0x6770: 0x4023d820, 0x6771: 0x4023da20, 0x6772: 0x4023dc20, 0x6773: 0x4023de20,
-	0x6774: 0x4023e020, 0x6775: 0x4023e220, 0x6776: 0x4023e420, 0x6777: 0x4023e620,
-	0x6778: 0x4023e820, 0x6779: 0x4023ea20, 0x677a: 0x4023ec20, 0x677b: 0x4023ee20,
-	0x677c: 0x4023f020, 0x677d: 0x4023f220, 0x677e: 0x4023f420, 0x677f: 0x4023f620,
-	// Block 0x19e, offset 0x6780
-	0x6780: 0x4023f820, 0x6781: 0x4023fa20, 0x6782: 0x4023fc20, 0x6783: 0x4023fe20,
-	0x6784: 0x40240020, 0x6785: 0x40240220, 0x6786: 0x40240420, 0x6787: 0x40240620,
-	0x6788: 0x40240820, 0x6789: 0x40240a20, 0x678a: 0x40240c20, 0x678b: 0x40240e20,
-	0x678c: 0x40241020, 0x678d: 0x40241220, 0x678e: 0x40241420, 0x678f: 0x40241620,
-	0x6790: 0x40241820, 0x6791: 0x40241a20, 0x6792: 0x40241c20, 0x6793: 0x40241e20,
-	0x6794: 0x40242020, 0x6795: 0x40242220, 0x6796: 0x40242420, 0x6797: 0x40242620,
-	0x6798: 0x40242820, 0x6799: 0x40242a20, 0x679a: 0x40242c20, 0x679b: 0x40242e20,
-	0x679c: 0x40243020, 0x679d: 0x40243220, 0x679e: 0x40243420, 0x679f: 0x40243620,
-	0x67a0: 0x40243820, 0x67a1: 0x40243a20, 0x67a2: 0x40243c20, 0x67a3: 0x40243e20,
-	0x67a4: 0x40244020, 0x67a5: 0x40244220, 0x67a6: 0x40244420, 0x67a7: 0x40244620,
-	0x67a8: 0x40244820, 0x67a9: 0x40244a20, 0x67aa: 0x40244c20, 0x67ab: 0x40244e20,
-	0x67ac: 0x40245020, 0x67ad: 0x40245220, 0x67ae: 0x40245420, 0x67af: 0x40245620,
-	0x67b0: 0x40245820, 0x67b1: 0x40245a20, 0x67b2: 0x40245c20, 0x67b3: 0x40245e20,
-	0x67b4: 0x40246020, 0x67b5: 0x40246220, 0x67b6: 0x40246420, 0x67b7: 0x40246620,
-	0x67b9: 0x40246820, 0x67ba: 0x40246a20, 0x67bb: 0x40246c20,
-	0x67bc: 0x40246e20,
-	// Block 0x19f, offset 0x67c0
-	0x67c0: 0x40247020, 0x67c1: 0x40247220, 0x67c2: 0x40247420, 0x67c3: 0x40247620,
-	0x67c4: 0x40247820, 0x67c5: 0x40247a20, 0x67c6: 0x40247c20, 0x67c7: 0x40247e20,
-	0x67c8: 0x40248020, 0x67c9: 0x40248220, 0x67ca: 0x40248420, 0x67cb: 0x40248620,
-	0x67cc: 0x40248820, 0x67cd: 0x40248a20, 0x67ce: 0x40248c20, 0x67cf: 0x40248e20,
-	0x67d0: 0x40249020, 0x67d1: 0x40249220, 0x67d2: 0x40249420, 0x67d3: 0x40249620,
-	0x67d4: 0x40249820, 0x67d5: 0x40249a20, 0x67d6: 0x40249c20, 0x67d7: 0x40249e20,
-	0x67d8: 0x4024a020, 0x67d9: 0x4024a220, 0x67da: 0x4024a420, 0x67db: 0x4024a620,
-	0x67dc: 0x4024a820, 0x67dd: 0x4024aa20, 0x67de: 0x4024ac20, 0x67df: 0x4024ae20,
-	0x67e0: 0x4024b020, 0x67e1: 0x4024b220, 0x67e2: 0x4024b420, 0x67e3: 0x4024b620,
-	0x67e4: 0x4024b820, 0x67e5: 0x4024ba20, 0x67e6: 0x4024bc20, 0x67e7: 0x4024be20,
-	0x67e8: 0x4024c020, 0x67e9: 0x4024c220, 0x67ea: 0x4024c420, 0x67eb: 0x4024c620,
-	0x67ec: 0x4024c820, 0x67ed: 0x4024ca20, 0x67ee: 0x4024cc20, 0x67ef: 0x4024ce20,
-	0x67f0: 0x4024d020, 0x67f1: 0x4024d220, 0x67f2: 0x4024d420, 0x67f3: 0x4024d620,
-	0x67f4: 0x4024d820, 0x67f5: 0x4024da20, 0x67f6: 0x4024dc20, 0x67f7: 0x4024de20,
-	0x67f8: 0x4024e020, 0x67f9: 0x4024e220, 0x67fa: 0x4024e420, 0x67fb: 0x4024e620,
-	0x67fc: 0x4024e820, 0x67fd: 0x4024ea20,
-	// Block 0x1a0, offset 0x6800
-	0x6800: 0x4024ec20, 0x6801: 0x4024ee20, 0x6802: 0x4024f020, 0x6803: 0x4024f220,
-	0x6810: 0x4024f420, 0x6811: 0x4024f620, 0x6812: 0x4024f820, 0x6813: 0x4024fa20,
-	0x6814: 0x4024fc20, 0x6815: 0x4024fe20, 0x6816: 0x40250020, 0x6817: 0x40250220,
-	0x6818: 0x40250420, 0x6819: 0x40250620, 0x681a: 0x40250820, 0x681b: 0x40250a20,
-	0x681c: 0x40250c20, 0x681d: 0x40250e20, 0x681e: 0x40251020, 0x681f: 0x40251220,
-	0x6820: 0x40251420, 0x6821: 0x40251620, 0x6822: 0x40251820, 0x6823: 0x40251a20,
-	0x6824: 0x40251c20, 0x6825: 0x40251e20, 0x6826: 0x40252020, 0x6827: 0x40252220,
-	// Block 0x1a1, offset 0x6840
-	0x687b: 0x40252420,
-	0x687c: 0x40252620, 0x687d: 0x40252820, 0x687e: 0x40252a20, 0x687f: 0x40252c20,
-	// Block 0x1a2, offset 0x6880
-	0x6880: 0x40252e20, 0x6881: 0x40253020, 0x6882: 0x40253220, 0x6883: 0x40253420,
-	0x6884: 0x40253620, 0x6885: 0x40253820, 0x6886: 0x40253a20, 0x6887: 0x40253c20,
-	0x6888: 0x40253e20, 0x6889: 0x40254020, 0x688a: 0x40254220, 0x688b: 0x40254420,
-	0x688c: 0x40254620, 0x688d: 0x40254820, 0x688e: 0x40254a20, 0x688f: 0x40254c20,
-	0x6890: 0x40254e20, 0x6891: 0x40255020, 0x6892: 0x40255220, 0x6893: 0x40255420,
-	0x6894: 0x40255620, 0x6895: 0x40255820, 0x6896: 0x40255a20, 0x6897: 0x40255c20,
-	0x6898: 0x40255e20, 0x6899: 0x40256020, 0x689a: 0x40256220, 0x689b: 0x40256420,
-	0x689c: 0x40256620, 0x689d: 0x40256820, 0x689e: 0x40256a20, 0x689f: 0x40256c20,
-	0x68a0: 0x40256e20, 0x68a1: 0x40257020, 0x68a2: 0x40257220, 0x68a3: 0x40257420,
-	0x68a4: 0x40257620, 0x68a5: 0x40257820, 0x68a6: 0x40257a20, 0x68a7: 0x40257c20,
-	0x68a8: 0x40257e20, 0x68a9: 0x40258020, 0x68aa: 0x40258220, 0x68ab: 0x40258420,
-	0x68ac: 0x40258620, 0x68ad: 0x40258820, 0x68ae: 0x40258a20, 0x68af: 0x40258c20,
-	0x68b0: 0x40258e20, 0x68b1: 0x40259020, 0x68b2: 0x40259220, 0x68b3: 0x40259420,
-	0x68b4: 0x40259620, 0x68b5: 0x40259820, 0x68b6: 0x40259a20, 0x68b7: 0x40259c20,
-	0x68b8: 0x40259e20, 0x68b9: 0x4025a020, 0x68ba: 0x4025a220, 0x68bb: 0x4025a420,
-	0x68bc: 0x4025a620, 0x68bd: 0x4025a820, 0x68be: 0x4025aa20, 0x68bf: 0x4025ac20,
-	// Block 0x1a3, offset 0x68c0
-	0x68c0: 0x4025ae20,
-	0x68c5: 0x4025b020, 0x68c6: 0x4025b220, 0x68c7: 0x4025b420,
-	0x68c8: 0x4025b620, 0x68c9: 0x4025b820, 0x68ca: 0x4025ba20, 0x68cb: 0x4025bc20,
-	0x68cc: 0x4025be20, 0x68cd: 0x4025c020, 0x68ce: 0x4025c220, 0x68cf: 0x4025c420,
-	// Block 0x1a4, offset 0x6900
-	0x6900: 0x4025c620, 0x6901: 0x4025c820, 0x6902: 0x4025ca20, 0x6903: 0x4025cc20,
-	0x6904: 0x4025ce20, 0x6905: 0x4025d020, 0x6906: 0x4025d220, 0x6907: 0x4025d420,
-	0x6908: 0x4025d620, 0x6909: 0x4025d820, 0x690a: 0x4025da20, 0x690b: 0x4025dc20,
-	0x690c: 0x4025de20, 0x690d: 0x4025e020, 0x690e: 0x4025e220, 0x690f: 0x4025e420,
-	0x6910: 0x4025e620, 0x6911: 0x4025e820, 0x6912: 0x4025ea20, 0x6913: 0x4025ec20,
-	0x6914: 0x4025ee20, 0x6915: 0x4025f020, 0x6916: 0x4025f220, 0x6917: 0x4025f420,
-	0x6918: 0x4025f620, 0x6919: 0x4025f820, 0x691a: 0x4025fa20, 0x691b: 0x4025fc20,
-	0x691c: 0x4025fe20, 0x691d: 0x40260020, 0x691e: 0x40260220, 0x691f: 0x40260420,
-	0x6920: 0x40260620, 0x6921: 0x40260820, 0x6922: 0x40260a20, 0x6923: 0x40260c20,
-	0x6924: 0x40260e20, 0x6925: 0x40261020, 0x6926: 0x40261220, 0x6927: 0x40261420,
-	0x6928: 0x40261620, 0x6929: 0x40261820, 0x692a: 0x40261a20, 0x692b: 0x40261c20,
-	0x692c: 0x40261e20, 0x692d: 0x40262020, 0x692e: 0x40262220, 0x692f: 0x40262420,
-	0x6930: 0x40262620, 0x6931: 0x40262820, 0x6932: 0x40262a20, 0x6933: 0x40262c20,
-	0x6934: 0x40262e20, 0x6935: 0x40263020, 0x6936: 0x40263220, 0x6937: 0x40263420,
-	0x6938: 0x40263620, 0x6939: 0x40263820, 0x693a: 0x40263a20, 0x693b: 0x40263c20,
-	0x693c: 0x40263e20, 0x693d: 0x40264020, 0x693e: 0x40264220, 0x693f: 0x40264420,
-	// Block 0x1a5, offset 0x6940
-	0x6940: 0x40264620, 0x6941: 0x40264820, 0x6942: 0x40264a20, 0x6943: 0x40264c20,
-	0x6944: 0x40264e20, 0x6945: 0x40265020,
-	// Block 0x1a6, offset 0x6980
-	0x6980: 0x40265220, 0x6981: 0x40265420, 0x6982: 0x40265620, 0x6983: 0x40265820,
-	0x6984: 0x40265a20, 0x6985: 0x40265c20, 0x6986: 0x40265e20, 0x6987: 0x40266020,
-	0x6988: 0x40266220, 0x6989: 0x40266420, 0x698a: 0x40266620, 0x698b: 0x40266820,
-	0x698c: 0x40266a20, 0x698d: 0x40266c20, 0x698e: 0x40266e20, 0x698f: 0x40267020,
-	0x6990: 0x40267220, 0x6991: 0x40267420, 0x6992: 0x40267620, 0x6993: 0x40267820,
-	0x6994: 0x40267a20, 0x6995: 0x40267c20, 0x6996: 0x40267e20, 0x6997: 0x40268020,
-	0x6998: 0x40268220, 0x6999: 0x40268420, 0x699a: 0x40268620, 0x699b: 0x40268820,
-	0x699c: 0x40268a20, 0x699d: 0x40268c20, 0x699e: 0x40268e20, 0x699f: 0x40269020,
-	0x69a0: 0x40269220, 0x69a1: 0x40269420, 0x69a2: 0x40269620, 0x69a3: 0x40269820,
-	0x69a4: 0x40269a20, 0x69a5: 0x40269c20, 0x69a6: 0x40269e20, 0x69a7: 0x4026a020,
-	0x69a8: 0x4026a220, 0x69a9: 0x4026a420, 0x69aa: 0x4026a620, 0x69ab: 0x4026a820,
-	0x69ac: 0x4026aa20, 0x69ad: 0x4026ac20, 0x69ae: 0x4026ae20, 0x69af: 0x4026b020,
-	0x69b0: 0x4026b220, 0x69b1: 0x4026b420, 0x69b2: 0x4026b620, 0x69b3: 0x4026b820,
-	0x69b4: 0x4026ba20, 0x69b5: 0x4026bc20, 0x69b6: 0x4026be20, 0x69b7: 0x4026c020,
-	0x69b8: 0x4026c220, 0x69b9: 0x4026c420, 0x69ba: 0x4026c620, 0x69bb: 0x4026c820,
-	0x69bc: 0x4026ca20, 0x69bd: 0x4026cc20, 0x69be: 0x4026ce20, 0x69bf: 0x4026d020,
-	// Block 0x1a7, offset 0x69c0
-	0x69c0: 0x4026d220, 0x69c1: 0x4026d420, 0x69c2: 0x4026d620, 0x69c3: 0x4026d820,
-	0x69c4: 0x4026da20, 0x69c5: 0x4026dc20, 0x69c6: 0x4026de20, 0x69c7: 0x4026e020,
-	0x69c8: 0x4026e220, 0x69c9: 0x4026e420, 0x69ca: 0x4026e620, 0x69cb: 0x4026e820,
-	0x69cc: 0x4026ea20, 0x69cd: 0x4026ec20, 0x69ce: 0x4026ee20, 0x69cf: 0x4026f020,
-	0x69d0: 0x4026f220, 0x69d1: 0x4026f420, 0x69d2: 0x4026f620, 0x69d3: 0x4026f820,
-	0x69d4: 0x4026fa20, 0x69d5: 0x4026fc20, 0x69d6: 0x4026fe20, 0x69d7: 0x40270020,
-	0x69d8: 0x40270220, 0x69d9: 0x40270420, 0x69da: 0x40270620, 0x69db: 0x40270820,
-	0x69dc: 0x40270a20, 0x69dd: 0x40270c20, 0x69de: 0x40270e20, 0x69df: 0x40271020,
-	0x69e0: 0x40271220, 0x69e1: 0x40271420, 0x69e2: 0x40271620, 0x69e3: 0x40271820,
-	0x69e4: 0x40271a20, 0x69e5: 0x40271c20, 0x69e6: 0x40271e20, 0x69e7: 0x40272020,
-	0x69e8: 0x40272220, 0x69e9: 0x40272420, 0x69ea: 0x40272620, 0x69eb: 0x40272820,
-	0x69ec: 0x40272a20, 0x69ed: 0x40272c20, 0x69ee: 0x40272e20, 0x69ef: 0x40273020,
-	0x69f0: 0x40273220, 0x69f1: 0x40273420, 0x69f2: 0x40273620, 0x69f3: 0x40273820,
-	// Block 0x1a8, offset 0x6a00
-	0x6a00: 0x429c7a20, 0x6a01: 0x429c7020, 0x6a02: 0x429c8220, 0x6a03: 0x48024420,
-	0x6a04: 0x429ec020, 0x6a05: 0x429f5c20, 0x6a06: 0x429f7620, 0x6a07: 0x42a00420,
-	0x6a08: 0x42a0f420, 0x6a09: 0x42a13220, 0x6a0a: 0x42a1ce20, 0x6a0b: 0x42a19e20,
-	0x6a0c: 0x44693c20, 0x6a0d: 0x480c7420, 0x6a0e: 0x42a29a20, 0x6a0f: 0x42a2a820,
-	0x6a10: 0x42a2c820, 0x6a11: 0x42a2ee20, 0x6a12: 0x480a3820, 0x6a13: 0x44697220,
-	0x6a14: 0x42a2ce20, 0x6a15: 0x42a31a20, 0x6a16: 0x480a9620, 0x6a17: 0x42a32e20,
-	0x6a18: 0x42a34820, 0x6a19: 0x429d9820, 0x6a1a: 0x42a35820, 0x6a1b: 0x42a36a20,
-	0x6a1c: 0x4923be20, 0x6a1d: 0x42a3ea20, 0x6a1e: 0x42a40620, 0x6a1f: 0x4469be20,
-	0x6a20: 0x42a47620, 0x6a21: 0x42a48c20, 0x6a22: 0x42a4e420, 0x6a23: 0x42a4ee20,
-	0x6a24: 0x446a2a20, 0x6a25: 0x42a58e20, 0x6a26: 0x42a59220, 0x6a27: 0x42a5c820,
-	0x6a28: 0x42a5f420, 0x6a29: 0x42a60a20, 0x6a2a: 0x42a60c20, 0x6a2b: 0x42a62e20,
-	0x6a2c: 0x42a69220, 0x6a2d: 0x42a6a220, 0x6a2e: 0x42a6b420, 0x6a2f: 0x42a6e620,
-	0x6a30: 0x42a6fa20, 0x6a31: 0x42a6fe20, 0x6a32: 0x42a6fe20, 0x6a33: 0x42a6fe20,
-	0x6a34: 0x48145820, 0x6a35: 0x42e0e020, 0x6a36: 0x42a79420, 0x6a37: 0x42a7be20,
-	0x6a38: 0x4816c620, 0x6a39: 0x42a7d620, 0x6a3a: 0x42a7e220, 0x6a3b: 0x42a80c20,
-	0x6a3c: 0x42a93c20, 0x6a3d: 0x42a87020, 0x6a3e: 0x42a89020, 0x6a3f: 0x42a8d020,
-	// Block 0x1a9, offset 0x6a40
-	0x6a40: 0x42a94420, 0x6a41: 0x42a9ec20, 0x6a42: 0x42aa2020, 0x6a43: 0x42aaa620,
-	0x6a44: 0x42aac620, 0x6a45: 0x42ab0820, 0x6a46: 0x42ab0820, 0x6a47: 0x42ab3220,
-	0x6a48: 0x42ab5620, 0x6a49: 0x42ab6620, 0x6a4a: 0x42ab8420, 0x6a4b: 0x42ae2c20,
-	0x6a4c: 0x42ac0c20, 0x6a4d: 0x42ae2e20, 0x6a4e: 0x42aca220, 0x6a4f: 0x42ace820,
-	0x6a50: 0x42a40e20, 0x6a51: 0x42b1dc20, 0x6a52: 0x42af9c20, 0x6a53: 0x42afe820,
-	0x6a54: 0x42b01a20, 0x6a55: 0x42af1620, 0x6a56: 0x42b06420, 0x6a57: 0x42b06220,
-	0x6a58: 0x42b15820, 0x6a59: 0x4829c820, 0x6a5a: 0x42b1e420, 0x6a5b: 0x42b1ee20,
-	0x6a5c: 0x42b20c20, 0x6a5d: 0x42b23420, 0x6a5e: 0x42b24420, 0x6a5f: 0x42b2c420,
-	0x6a60: 0x482d5020, 0x6a61: 0x482dd420, 0x6a62: 0x42b3d820, 0x6a63: 0x42b43620,
-	0x6a64: 0x42b44e20, 0x6a65: 0x42b3b020, 0x6a66: 0x42b4cc20, 0x6a67: 0x446ddc20,
-	0x6a68: 0x446df820, 0x6a69: 0x42b61020, 0x6a6a: 0x42b67c20, 0x6a6b: 0x42b67c20,
-	0x6a6c: 0x48339020, 0x6a6d: 0x42b78620, 0x6a6e: 0x42b7b020, 0x6a6f: 0x42b7ce20,
-	0x6a70: 0x42b7e620, 0x6a71: 0x48363020, 0x6a72: 0x42b7fe20, 0x6a73: 0x42b80c20,
-	0x6a74: 0x42bea620, 0x6a75: 0x42b84420, 0x6a76: 0x446f0220, 0x6a77: 0x42b8c020,
-	0x6a78: 0x42b8dc20, 0x6a79: 0x42b98020, 0x6a7a: 0x42b91a20, 0x6a7b: 0x483bc820,
-	0x6a7c: 0x42ba8620, 0x6a7d: 0x483bcc20, 0x6a7e: 0x42badc20, 0x6a7f: 0x42bad620,
-	// Block 0x1aa, offset 0x6a80
-	0x6a80: 0x42baf820, 0x6a81: 0x42bbc220, 0x6a82: 0x42bbc420, 0x6a83: 0x44705e20,
-	0x6a84: 0x42bbfa20, 0x6a85: 0x42bc5020, 0x6a86: 0x42bc7a20, 0x6a87: 0x42bcd220,
-	0x6a88: 0x4470c420, 0x6a89: 0x48430620, 0x6a8a: 0x4470f820, 0x6a8b: 0x42bd6020,
-	0x6a8c: 0x42bd6620, 0x6a8d: 0x42bd6c20, 0x6a8e: 0x42bd9420, 0x6a8f: 0x49472420,
-	0x6a90: 0x42bdfc20, 0x6a91: 0x48466220, 0x6a92: 0x48466220, 0x6a93: 0x43040220,
-	0x6a94: 0x42be4420, 0x6a95: 0x42be4420, 0x6a96: 0x44718e20, 0x6a97: 0x48657020,
-	0x6a98: 0x48c3b420, 0x6a99: 0x42bec420, 0x6a9a: 0x42bed620, 0x6a9b: 0x4471c620,
-	0x6a9c: 0x42bf3420, 0x6a9d: 0x42bf9a20, 0x6a9e: 0x42bfae20, 0x6a9f: 0x42bff220,
-	0x6aa0: 0x42c10220, 0x6aa1: 0x44727420, 0x6aa2: 0x44723820, 0x6aa3: 0x42c12820,
-	0x6aa4: 0x484da820, 0x6aa5: 0x42c18e20, 0x6aa6: 0x42c29020, 0x6aa7: 0x42c29820,
-	0x6aa8: 0x42c29c20, 0x6aa9: 0x42c29820, 0x6aaa: 0x42c2f420, 0x6aab: 0x42c31c20,
-	0x6aac: 0x42c36420, 0x6aad: 0x42c34820, 0x6aae: 0x42c35e20, 0x6aaf: 0x42c3bc20,
-	0x6ab0: 0x42c3e420, 0x6ab1: 0x42c3ec20, 0x6ab2: 0x42c42020, 0x6ab3: 0x42c43620,
-	0x6ab4: 0x42c4ba20, 0x6ab5: 0x42c56220, 0x6ab6: 0x42c5a820, 0x6ab7: 0x42c6a020,
-	0x6ab8: 0x48561820, 0x6ab9: 0x42c67a20, 0x6aba: 0x42c5f820, 0x6abb: 0x42c6d020,
-	0x6abc: 0x42c70620, 0x6abd: 0x42c7c820, 0x6abe: 0x4857e220, 0x6abf: 0x42c84420,
-	// Block 0x1ab, offset 0x6ac0
-	0x6ac0: 0x42c78a20, 0x6ac1: 0x42c75220, 0x6ac2: 0x44745c20, 0x6ac3: 0x42c8d220,
-	0x6ac4: 0x42c8fc20, 0x6ac5: 0x42c93a20, 0x6ac6: 0x42c8ee20, 0x6ac7: 0x4474d820,
-	0x6ac8: 0x42ca9e20, 0x6ac9: 0x42cad820, 0x6aca: 0x48601420, 0x6acb: 0x42cbc620,
-	0x6acc: 0x42cdf020, 0x6acd: 0x42cc9220, 0x6ace: 0x44763220, 0x6acf: 0x42cd2220,
-	0x6ad0: 0x44761020, 0x6ad1: 0x4475c820, 0x6ad2: 0x42a32420, 0x6ad3: 0x42a32a20,
-	0x6ad4: 0x42ce0020, 0x6ad5: 0x42cd3820, 0x6ad6: 0x43015a20, 0x6ad7: 0x4487b220,
-	0x6ad8: 0x42ce2e20, 0x6ad9: 0x42ce3620, 0x6ada: 0x42ce4220, 0x6adb: 0x42cebc20,
-	0x6adc: 0x42cea620, 0x6add: 0x48678620, 0x6ade: 0x44769220, 0x6adf: 0x42cff420,
-	0x6ae0: 0x42cf0a20, 0x6ae1: 0x42d0a420, 0x6ae2: 0x42d10a20, 0x6ae3: 0x4868da20,
-	0x6ae4: 0x42d11c20, 0x6ae5: 0x42d03e20, 0x6ae6: 0x42d22820, 0x6ae7: 0x44773a20,
-	0x6ae8: 0x42d28420, 0x6ae9: 0x42d34620, 0x6aea: 0x42d3d420, 0x6aeb: 0x42d55020,
-	0x6aec: 0x486d4620, 0x6aed: 0x42d5b620, 0x6aee: 0x44783020, 0x6aef: 0x42d64220,
-	0x6af0: 0x48714e20, 0x6af1: 0x42d6a820, 0x6af2: 0x44789c20, 0x6af3: 0x42d6e420,
-	0x6af4: 0x42d73e20, 0x6af5: 0x42d77420, 0x6af6: 0x42d77620, 0x6af7: 0x48751a20,
-	0x6af8: 0x483a1620, 0x6af9: 0x4875f420, 0x6afa: 0x42d89c20, 0x6afb: 0x48797820,
-	0x6afc: 0x42d97e20, 0x6afd: 0x42d99a20, 0x6afe: 0x42d8ce20, 0x6aff: 0x42da2c20,
-	// Block 0x1ac, offset 0x6b00
-	0x6b00: 0x42da7c20, 0x6b01: 0x42daee20, 0x6b02: 0x42da8220, 0x6b03: 0x42dad220,
-	0x6b04: 0x42daf020, 0x6b05: 0x42db0a20, 0x6b06: 0x487a3c20, 0x6b07: 0x42da6820,
-	0x6b08: 0x42dc5e20, 0x6b09: 0x42dcdc20, 0x6b0a: 0x447a6620, 0x6b0b: 0x42dd9620,
-	0x6b0c: 0x42dd8e20, 0x6b0d: 0x487da220, 0x6b0e: 0x42dbf220, 0x6b0f: 0x42dedc20,
-	0x6b10: 0x487ebc20, 0x6b11: 0x487f1c20, 0x6b12: 0x42df8c20, 0x6b13: 0x42e07220,
-	0x6b14: 0x42e03c20, 0x6b15: 0x42e03620, 0x6b16: 0x447b2c20, 0x6b17: 0x42e09420,
-	0x6b18: 0x42e0fa20, 0x6b19: 0x42e0ee20, 0x6b1a: 0x42e15a20, 0x6b1b: 0x480a4a20,
-	0x6b1c: 0x42e28a20, 0x6b1d: 0x4884c620, 0x6b1e: 0x42e33820, 0x6b1f: 0x48875620,
-	0x6b20: 0x42e45020, 0x6b21: 0x42e46a20, 0x6b22: 0x42e4a020, 0x6b23: 0x488c1020,
-	0x6b24: 0x42e50020, 0x6b25: 0x42e52a20, 0x6b26: 0x488e6a20, 0x6b27: 0x48902820,
-	0x6b28: 0x42e6f420, 0x6b29: 0x42e71620, 0x6b2a: 0x447d5820, 0x6b2b: 0x42e74a20,
-	0x6b2c: 0x447d7020, 0x6b2d: 0x447d7020, 0x6b2e: 0x42e88e20, 0x6b2f: 0x42e8b820,
-	0x6b30: 0x42e8e220, 0x6b31: 0x42e90a20, 0x6b32: 0x42e99420, 0x6b33: 0x447e3620,
-	0x6b34: 0x42ea4820, 0x6b35: 0x48986c20, 0x6b36: 0x42ea7c20, 0x6b37: 0x48992420,
-	0x6b38: 0x42eae020, 0x6b39: 0x48433e20, 0x6b3a: 0x42ec2020, 0x6b3b: 0x489f4220,
-	0x6b3c: 0x489f7020, 0x6b3d: 0x48a08820, 0x6b3e: 0x447ff820, 0x6b3f: 0x44801020,
-	// Block 0x1ad, offset 0x6b40
-	0x6b40: 0x42ede820, 0x6b41: 0x48a1e620, 0x6b42: 0x48a1e420, 0x6b43: 0x48a23220,
-	0x6b44: 0x48a26620, 0x6b45: 0x42ee3c20, 0x6b46: 0x42ee3e20, 0x6b47: 0x42ee3e20,
-	0x6b48: 0x42ee9420, 0x6b49: 0x44807220, 0x6b4a: 0x42ef1620, 0x6b4b: 0x44808c20,
-	0x6b4c: 0x44812c20, 0x6b4d: 0x48a83a20, 0x6b4e: 0x42f09c20, 0x6b4f: 0x42f11820,
-	0x6b50: 0x42f19820, 0x6b51: 0x4481c620, 0x6b52: 0x48ac4c20, 0x6b53: 0x42f2ac20,
-	0x6b54: 0x48ad3420, 0x6b55: 0x48ad8a20, 0x6b56: 0x42f31e20, 0x6b57: 0x42f3d620,
-	0x6b58: 0x44825e20, 0x6b59: 0x42f48020, 0x6b5a: 0x42f49420, 0x6b5b: 0x42f49e20,
-	0x6b5c: 0x48b2f820, 0x6b5d: 0x48b54e20, 0x6b5e: 0x48b54e20, 0x6b5f: 0x42f5dc20,
-	0x6b60: 0x44840420, 0x6b61: 0x48b75620, 0x6b62: 0x42f78c20, 0x6b63: 0x42f79220,
-	0x6b64: 0x44844e20, 0x6b65: 0x48b90020, 0x6b66: 0x42f9a420, 0x6b67: 0x44854020,
-	0x6b68: 0x42f9d020, 0x6b69: 0x42f9c620, 0x6b6a: 0x42fa0020, 0x6b6b: 0x48bf0c20,
-	0x6b6c: 0x42fac620, 0x6b6d: 0x44860220, 0x6b6e: 0x42fb8e20, 0x6b6f: 0x42fc0420,
-	0x6b70: 0x42fc8a20, 0x6b71: 0x44866820, 0x6b72: 0x48c45020, 0x6b73: 0x48c48e20,
-	0x6b74: 0x4486b220, 0x6b75: 0x48c5b220, 0x6b76: 0x42fef420, 0x6b77: 0x48c67c20,
-	0x6b78: 0x42ff2a20, 0x6b79: 0x42fff420, 0x6b7a: 0x43000a20, 0x6b7b: 0x48c9b420,
-	0x6b7c: 0x48ca4620, 0x6b7d: 0x4300c020, 0x6b7e: 0x48cb5020, 0x6b7f: 0x4300e020,
-	// Block 0x1ae, offset 0x6b80
-	0x6b80: 0x4866be20, 0x6b81: 0x4487aa20, 0x6b82: 0x43016420, 0x6b83: 0x43020620,
-	0x6b84: 0x44881620, 0x6b85: 0x43027c20, 0x6b86: 0x42b56a20, 0x6b87: 0x48cf4e20,
-	0x6b88: 0x48cf6a20, 0x6b89: 0x48672620, 0x6b8a: 0x48673820, 0x6b8b: 0x43040220,
-	0x6b8c: 0x43040820, 0x6b8d: 0x431f3c20, 0x6b8e: 0x4488d620, 0x6b8f: 0x43052220,
-	0x6b90: 0x43051620, 0x6b91: 0x43053a20, 0x6b92: 0x42a56620, 0x6b93: 0x43056220,
-	0x6b94: 0x43056620, 0x6b95: 0x43057a20, 0x6b96: 0x4305cc20, 0x6b97: 0x48d67820,
-	0x6b98: 0x4305ca20, 0x6b99: 0x43063a20, 0x6b9a: 0x4306c620, 0x6b9b: 0x43075a20,
-	0x6b9c: 0x43064620, 0x6b9d: 0x43077a20, 0x6b9e: 0x4307ce20, 0x6b9f: 0x4308ae20,
-	0x6ba0: 0x4306a620, 0x6ba1: 0x43079420, 0x6ba2: 0x43079820, 0x6ba3: 0x4307b820,
-	0x6ba4: 0x48d86c20, 0x6ba5: 0x48dad620, 0x6ba6: 0x48d9aa20, 0x6ba7: 0x448a5620,
-	0x6ba8: 0x4309e220, 0x6ba9: 0x4309e620, 0x6baa: 0x430a2c20, 0x6bab: 0x48e79420,
-	0x6bac: 0x430ac820, 0x6bad: 0x48de5820, 0x6bae: 0x448aba20, 0x6baf: 0x448ac220,
-	0x6bb0: 0x48df6220, 0x6bb1: 0x48e1a420, 0x6bb2: 0x448ad620, 0x6bb3: 0x430ca020,
-	0x6bb4: 0x430cb820, 0x6bb5: 0x430cce20, 0x6bb6: 0x430cd220, 0x6bb7: 0x430d5220,
-	0x6bb8: 0x430d1020, 0x6bb9: 0x430e1c20, 0x6bba: 0x430dc420, 0x6bbb: 0x430ef220,
-	0x6bbc: 0x430e5020, 0x6bbd: 0x430ed620, 0x6bbe: 0x430f0c20, 0x6bbf: 0x448bae20,
-	// Block 0x1af, offset 0x6bc0
-	0x6bc0: 0x430fc220, 0x6bc1: 0x43100220, 0x6bc2: 0x448bf220, 0x6bc3: 0x4310c020,
-	0x6bc4: 0x4310c620, 0x6bc5: 0x48ecce20, 0x6bc6: 0x4311ae20, 0x6bc7: 0x4311bc20,
-	0x6bc8: 0x448c6a20, 0x6bc9: 0x4311f420, 0x6bca: 0x44697620, 0x6bcb: 0x48f15c20,
-	0x6bcc: 0x48f2cc20, 0x6bcd: 0x448d7c20, 0x6bce: 0x448d8e20, 0x6bcf: 0x43154020,
-	0x6bd0: 0x4315da20, 0x6bd1: 0x43171420, 0x6bd2: 0x4318aa20, 0x6bd3: 0x48f95020,
-	0x6bd4: 0x43195620, 0x6bd5: 0x43198220, 0x6bd6: 0x431a3620, 0x6bd7: 0x431aee20,
-	0x6bd8: 0x48fe5e20, 0x6bd9: 0x48100820, 0x6bda: 0x431b9620, 0x6bdb: 0x431b7820,
-	0x6bdc: 0x431be020, 0x6bdd: 0x4811bc20, 0x6bde: 0x431da820, 0x6bdf: 0x431e7020,
-	0x6be0: 0x490ba420, 0x6be1: 0x490bda20, 0x6be2: 0x43212820, 0x6be3: 0x4321e220,
-	0x6be4: 0x43222220, 0x6be5: 0x490e5c20, 0x6be6: 0x43223620, 0x6be7: 0x43247020,
-	0x6be8: 0x4325ae20, 0x6be9: 0x4325b020, 0x6bea: 0x4324f820, 0x6beb: 0x4327f220,
-	0x6bec: 0x43282a20, 0x6bed: 0x4917f420, 0x6bee: 0x432b1620, 0x6bef: 0x44932a20,
-	0x6bf0: 0x432b6e20, 0x6bf1: 0x491aee20, 0x6bf2: 0x4493cc20, 0x6bf3: 0x432d8620,
-	0x6bf4: 0x42bb6420, 0x6bf5: 0x432e4620, 0x6bf6: 0x49228a20, 0x6bf7: 0x49243420,
-	0x6bf8: 0x4494dc20, 0x6bf9: 0x4494ec20, 0x6bfa: 0x432fc020, 0x6bfb: 0x49281420,
-	0x6bfc: 0x44956420, 0x6bfd: 0x49292c20, 0x6bfe: 0x43301620, 0x6bff: 0x43301620,
-	// Block 0x1b0, offset 0x6c00
-	0x6c00: 0x43305220, 0x6c01: 0x492b6c20, 0x6c02: 0x4331c420, 0x6c03: 0x44966620,
-	0x6c04: 0x43325220, 0x6c05: 0x43334e20, 0x6c06: 0x43338420, 0x6c07: 0x4333fc20,
-	0x6c08: 0x44979c20, 0x6c09: 0x49366020, 0x6c0a: 0x43362420, 0x6c0b: 0x43388020,
-	0x6c0c: 0x4339fa20, 0x6c0d: 0x44999c20, 0x6c0e: 0x4499da20, 0x6c0f: 0x433ace20,
-	0x6c10: 0x49419c20, 0x6c11: 0x4499f020, 0x6c12: 0x49420a20, 0x6c13: 0x49441c20,
-	0x6c14: 0x49452220, 0x6c15: 0x433d7620, 0x6c16: 0x449aac20, 0x6c17: 0x433df220,
-	0x6c18: 0x433dfc20, 0x6c19: 0x433e0a20, 0x6c1a: 0x433e1e20, 0x6c1b: 0x433e2c20,
-	0x6c1c: 0x433e7620, 0x6c1d: 0x494c0020,
-	// Block 0x1b1, offset 0x6c40
-	0x6c41: 0xa0000000,
-	0x6c60: 0xa0000000, 0x6c61: 0xa0000000, 0x6c62: 0xa0000000, 0x6c63: 0xa0000000,
-	0x6c64: 0xa0000000, 0x6c65: 0xa0000000, 0x6c66: 0xa0000000, 0x6c67: 0xa0000000,
-	0x6c68: 0xa0000000, 0x6c69: 0xa0000000, 0x6c6a: 0xa0000000, 0x6c6b: 0xa0000000,
-	0x6c6c: 0xa0000000, 0x6c6d: 0xa0000000, 0x6c6e: 0xa0000000, 0x6c6f: 0xa0000000,
-	0x6c70: 0xa0000000, 0x6c71: 0xa0000000, 0x6c72: 0xa0000000, 0x6c73: 0xa0000000,
-	0x6c74: 0xa0000000, 0x6c75: 0xa0000000, 0x6c76: 0xa0000000, 0x6c77: 0xa0000000,
-	0x6c78: 0xa0000000, 0x6c79: 0xa0000000, 0x6c7a: 0xa0000000, 0x6c7b: 0xa0000000,
-	0x6c7c: 0xa0000000, 0x6c7d: 0xa0000000, 0x6c7e: 0xa0000000, 0x6c7f: 0xa0000000,
-	// Block 0x1b2, offset 0x6c80
-	0x6c80: 0xa0000000, 0x6c81: 0xa0000000, 0x6c82: 0xa0000000, 0x6c83: 0xa0000000,
-	0x6c84: 0xa0000000, 0x6c85: 0xa0000000, 0x6c86: 0xa0000000, 0x6c87: 0xa0000000,
-	0x6c88: 0xa0000000, 0x6c89: 0xa0000000, 0x6c8a: 0xa0000000, 0x6c8b: 0xa0000000,
-	0x6c8c: 0xa0000000, 0x6c8d: 0xa0000000, 0x6c8e: 0xa0000000, 0x6c8f: 0xa0000000,
-	0x6c90: 0xa0000000, 0x6c91: 0xa0000000, 0x6c92: 0xa0000000, 0x6c93: 0xa0000000,
-	0x6c94: 0xa0000000, 0x6c95: 0xa0000000, 0x6c96: 0xa0000000, 0x6c97: 0xa0000000,
-	0x6c98: 0xa0000000, 0x6c99: 0xa0000000, 0x6c9a: 0xa0000000, 0x6c9b: 0xa0000000,
-	0x6c9c: 0xa0000000, 0x6c9d: 0xa0000000, 0x6c9e: 0xa0000000, 0x6c9f: 0xa0000000,
-	0x6ca0: 0xa0000000, 0x6ca1: 0xa0000000, 0x6ca2: 0xa0000000, 0x6ca3: 0xa0000000,
-	0x6ca4: 0xa0000000, 0x6ca5: 0xa0000000, 0x6ca6: 0xa0000000, 0x6ca7: 0xa0000000,
-	0x6ca8: 0xa0000000, 0x6ca9: 0xa0000000, 0x6caa: 0xa0000000, 0x6cab: 0xa0000000,
-	0x6cac: 0xa0000000, 0x6cad: 0xa0000000, 0x6cae: 0xa0000000, 0x6caf: 0xa0000000,
-	0x6cb0: 0xa0000000, 0x6cb1: 0xa0000000, 0x6cb2: 0xa0000000, 0x6cb3: 0xa0000000,
-	0x6cb4: 0xa0000000, 0x6cb5: 0xa0000000, 0x6cb6: 0xa0000000, 0x6cb7: 0xa0000000,
-	0x6cb8: 0xa0000000, 0x6cb9: 0xa0000000, 0x6cba: 0xa0000000, 0x6cbb: 0xa0000000,
-	0x6cbc: 0xa0000000, 0x6cbd: 0xa0000000, 0x6cbe: 0xa0000000, 0x6cbf: 0xa0000000,
-	// Block 0x1b3, offset 0x6cc0
-	0x6cc0: 0xa0000000, 0x6cc1: 0xa0000000, 0x6cc2: 0xa0000000, 0x6cc3: 0xa0000000,
-	0x6cc4: 0xa0000000, 0x6cc5: 0xa0000000, 0x6cc6: 0xa0000000, 0x6cc7: 0xa0000000,
-	0x6cc8: 0xa0000000, 0x6cc9: 0xa0000000, 0x6cca: 0xa0000000, 0x6ccb: 0xa0000000,
-	0x6ccc: 0xa0000000, 0x6ccd: 0xa0000000, 0x6cce: 0xa0000000, 0x6ccf: 0xa0000000,
-	0x6cd0: 0xa0000000, 0x6cd1: 0xa0000000, 0x6cd2: 0xa0000000, 0x6cd3: 0xa0000000,
-	0x6cd4: 0xa0000000, 0x6cd5: 0xa0000000, 0x6cd6: 0xa0000000, 0x6cd7: 0xa0000000,
-	0x6cd8: 0xa0000000, 0x6cd9: 0xa0000000, 0x6cda: 0xa0000000, 0x6cdb: 0xa0000000,
-	0x6cdc: 0xa0000000, 0x6cdd: 0xa0000000, 0x6cde: 0xa0000000, 0x6cdf: 0xa0000000,
-	0x6ce0: 0xa0000000, 0x6ce1: 0xa0000000, 0x6ce2: 0xa0000000, 0x6ce3: 0xa0000000,
-	0x6ce4: 0xa0000000, 0x6ce5: 0xa0000000, 0x6ce6: 0xa0000000, 0x6ce7: 0xa0000000,
-	0x6ce8: 0xa0000000, 0x6ce9: 0xa0000000, 0x6cea: 0xa0000000, 0x6ceb: 0xa0000000,
-	0x6cec: 0xa0000000, 0x6ced: 0xa0000000, 0x6cee: 0xa0000000, 0x6cef: 0xa0000000,
-	// Block 0x1b4, offset 0x6d00
-	0x6d00: 0xe0000cfe, 0x6d01: 0xe0000cf8, 0x6d02: 0xe0000cf5, 0x6d03: 0xe0000d51,
-	0x6d04: 0xe0000d4e, 0x6d05: 0xe0000d6f, 0x6d06: 0xe0000d6c, 0x6d07: 0xe0000d5d,
-	0x6d08: 0xe0000d5a, 0x6d09: 0x002e9e89, 0x6d0a: 0x002eda88, 0x6d0b: 0x402eda20,
-	0x6d0c: 0xe0000e2e, 0x6d0d: 0xe0000e2b, 0x6d0e: 0xe0000da0, 0x6d0f: 0xe0000d9d,
-	0x6d10: 0xe0000de0, 0x6d11: 0xe0000ddd, 0x6d12: 0xe0000e93, 0x6d13: 0xe0000e8f,
-	0x6d14: 0xe0000eca, 0x6d15: 0xe0000ec7, 0x6d16: 0xe0000edc, 0x6d17: 0xe0000ed9,
-	0x6d18: 0xe0000ed0, 0x6d19: 0xe0000ecd, 0x6d1a: 0xe0000f1f, 0x6d1b: 0xe0000f1c,
-	0x6d1c: 0xe0000f2d, 0x6d1d: 0xe0000f2a, 0x6d1e: 0xe0000f47, 0x6d1f: 0xe0000f44,
-	0x6d20: 0xe0000f33, 0x6d21: 0xe0000f30, 0x6d22: 0xe0000f99, 0x6d23: 0xe0000f96,
-	0x6d24: 0xe0000f8a, 0x6d25: 0xe0000f87, 0x6d26: 0x00303688, 0x6d27: 0x40303620,
-	0x6d28: 0xe000102b, 0x6d29: 0xe0001028, 0x6d2a: 0xe000103f, 0x6d2b: 0xe000103c,
-	0x6d2c: 0xe0000fe7, 0x6d2d: 0xe0000fe4, 0x6d2e: 0xe0000ff9, 0x6d2f: 0xe0000ff6,
-	0x6d30: 0xe0001025, 0x6d31: 0xe0001022, 0x6d32: 0xe0001039, 0x6d33: 0xe0001036,
-	0x6d34: 0xe00010d8, 0x6d35: 0xe00010d5, 0x6d36: 0xe000110e, 0x6d37: 0xe000110b,
-	0x6d38: 0xe0001117, 0x6d39: 0xe000113b, 0x6d3a: 0xe0001138, 0x6d3b: 0xe000114d,
-	0x6d3c: 0xe000114a, 0x6d3d: 0xe0001147, 0x6d3e: 0xe0001144, 0x6d3f: 0xe0000f64,
-	// Block 0x1b5, offset 0x6d40
-	0x6d40: 0xa0000000, 0x6d41: 0xa0000000, 0x6d42: 0xa0000000, 0x6d43: 0xa0000000,
-	0x6d44: 0xa0000000, 0x6d46: 0x40096620, 0x6d47: 0x40096a20,
-	0x6d48: 0x40070820, 0x6d49: 0x4004f220, 0x6d4a: 0x4004f620, 0x6d4b: 0x4027e620,
-	0x6d4c: 0x40024820, 0x6d4d: 0x40024a20, 0x6d4e: 0x40070e20, 0x6d4f: 0x40071020,
-	0x6d50: 0xae600000, 0x6d51: 0xae600000, 0x6d52: 0xae600000, 0x6d53: 0xae600000,
-	0x6d54: 0xae600000, 0x6d55: 0xae600000, 0x6d56: 0xae600000, 0x6d57: 0xae600000,
-	0x6d58: 0xa1e00000, 0x6d59: 0xa1f00000, 0x6d5a: 0xa2000000, 0x6d5b: 0x40026420,
-	0x6d5e: 0x40027020, 0x6d5f: 0x4002cc20,
-	0x6d60: 0x403aa220, 0x6d61: 0x40391c20, 0x6d62: 0x40391e20, 0x6d63: 0x40392020,
-	0x6d64: 0x40392620, 0x6d65: 0x40392820, 0x6d66: 0x40393020, 0x6d67: 0xc0520151,
-	0x6d68: 0x40393c20, 0x6d69: 0x40395621, 0x6d6a: 0x40395620, 0x6d6b: 0x40395820,
-	0x6d6c: 0x40396420, 0x6d6d: 0x40397220, 0x6d6e: 0x40397420, 0x6d6f: 0x40398820,
-	0x6d70: 0x40398a20, 0x6d71: 0x4039a420, 0x6d72: 0x4039a620, 0x6d73: 0x4039c620,
-	0x6d74: 0x4039c820, 0x6d75: 0x4039dc20, 0x6d76: 0x4039de20, 0x6d77: 0x4039e620,
-	0x6d78: 0x4039e820, 0x6d79: 0x4039ee20, 0x6d7a: 0x4039f020, 0x6d7b: 0x403a3820,
-	0x6d7c: 0x403a3a20, 0x6d7d: 0x403a9c20, 0x6d7e: 0x403a9e20, 0x6d7f: 0x403aa020,
-	// Block 0x1b6, offset 0x6d80
-	0x6d80: 0xa0000000, 0x6d81: 0x4039fc20, 0x6d82: 0x403a1220, 0x6d83: 0x403a1a20,
-	0x6d84: 0x403a4020, 0x6d85: 0x403a4e20, 0x6d86: 0x403a5620, 0x6d87: 0x403a6820,
-	0x6d88: 0xc0560171, 0x6d89: 0x403a9021, 0x6d8a: 0xc0580171, 0x6d8b: 0xa1b0a202,
-	0x6d8c: 0xa1c0a502, 0x6d8d: 0xa1d0a902, 0x6d8e: 0xa1e0ad02, 0x6d8f: 0xa1f0b202,
-	0x6d90: 0xa200b602, 0x6d91: 0xa210ba02, 0x6d92: 0xa220bc02, 0x6d93: 0xae60bd02,
-	0x6d94: 0xae60be02, 0x6d95: 0xadc0bf02, 0x6d96: 0xadc0c102, 0x6d97: 0xae60c202,
-	0x6d98: 0xae60c302, 0x6d99: 0xae60c402, 0x6d9a: 0xae60c502, 0x6d9b: 0xae60c602,
-	0x6d9c: 0xadc0c702, 0x6d9d: 0xae60c802, 0x6d9e: 0xae60c902, 0x6d9f: 0xadc0c002,
-	0x6da0: 0xe000015e, 0x6da1: 0xe00001e6, 0x6da2: 0xe0000301, 0x6da3: 0xe00003db,
-	0x6da4: 0xe00004b6, 0x6da5: 0xe0000580, 0x6da6: 0xe000064b, 0x6da7: 0xe00006f3,
-	0x6da8: 0xe000079f, 0x6da9: 0xe0000844, 0x6daa: 0x4004ee20, 0x6dab: 0x40024c20,
-	0x6dac: 0x40024e20, 0x6dad: 0x4004de20, 0x6dae: 0x40393a20, 0x6daf: 0x403a1020,
-	0x6db0: 0xa230d102, 0x6db1: 0x40392420, 0x6db2: 0x40392220, 0x6db3: 0x40392a20,
-	0x6db4: 0x00391c84, 0x6db5: 0xf0000404, 0x6db6: 0xf0000404, 0x6db7: 0xf0000404,
-	0x6db8: 0xf0000404, 0x6db9: 0x40395a20, 0x6dba: 0x40395c20, 0x6dbb: 0x40393e20,
-	0x6dbc: 0x40395e20, 0x6dbd: 0x40396020, 0x6dbe: 0x40394020, 0x6dbf: 0x40396220,
-	// Block 0x1b7, offset 0x6dc0
-	0x6dc0: 0x40073420, 0x6dc1: 0x40073620,
-	0x6dd3: 0x003a269a,
-	0x6dd4: 0x003a2699, 0x6dd5: 0x003a2697, 0x6dd6: 0x003a2698, 0x6dd7: 0x003a7c9a,
-	0x6dd8: 0x003a7c99, 0x6dd9: 0x003a7a9a, 0x6dda: 0x003a7a99, 0x6ddb: 0x003a7e9a,
-	0x6ddc: 0x003a7e99, 0x6ddd: 0xf0001a1a, 0x6dde: 0x003a849a, 0x6ddf: 0x003a8499,
-	0x6de0: 0x003a789a, 0x6de1: 0x003a7899, 0x6de2: 0x003a809a, 0x6de3: 0x003a8099,
-	0x6de4: 0x003a989a, 0x6de5: 0x003a9899, 0x6de6: 0x003a9897, 0x6de7: 0x003a9898,
-	0x6de8: 0x003a90a3, 0x6de9: 0x003a90a4, 0x6dea: 0xe0001559, 0x6deb: 0xe0001556,
-	0x6dec: 0xe0001589, 0x6ded: 0xe0001586, 0x6dee: 0xe000158f, 0x6def: 0xe000158c,
-	0x6df0: 0xe000159b, 0x6df1: 0xe0001598, 0x6df2: 0xe0001595, 0x6df3: 0xe0001592,
-	0x6df4: 0xe00015a1, 0x6df5: 0xe000159e, 0x6df6: 0xe00015bf, 0x6df7: 0xe00015bc,
-	0x6df8: 0xe00015b9, 0x6df9: 0xe00015ad, 0x6dfa: 0xe00015a7, 0x6dfb: 0xe00015a4,
-	0x6dfc: 0x003a929a, 0x6dfd: 0x003a9299, 0x6dfe: 0x003a9297, 0x6dff: 0x003a9298,
-	// Block 0x1b8, offset 0x6e00
-	0x6e00: 0xe000155f, 0x6e01: 0xe0001565, 0x6e02: 0xe000157a, 0x6e03: 0xe00015b0,
-	0x6e04: 0xe00015b6, 0x6e05: 0xf0001a1a, 0x6e06: 0xf0001a1a, 0x6e07: 0xf0001a1a,
-	0x6e08: 0xf0001a1a, 0x6e09: 0xe00024a2, 0x6e0a: 0xf0001a1a, 0x6e0b: 0xf0001a1a,
-	0x6e0c: 0xf0001a1a, 0x6e0d: 0xf0001a1a, 0x6e0e: 0xf0001a1a, 0x6e0f: 0xe00024a8,
-	0x6e10: 0xf0001a1a, 0x6e11: 0xf0001a1a, 0x6e12: 0xf0001a1a, 0x6e13: 0xe00024ae,
-	0x6e14: 0xf0001a1a, 0x6e15: 0xf0001a1a, 0x6e16: 0xf0001a1a, 0x6e17: 0xf0001a1a,
-	0x6e18: 0xf0001a1a, 0x6e19: 0xf0001a1a, 0x6e1a: 0xf0001a1a, 0x6e1b: 0xf0001a1a,
-	0x6e1c: 0xf0001a1a, 0x6e1d: 0xf0001a1a, 0x6e1e: 0xf0001a1a, 0x6e1f: 0xf0001a1a,
-	0x6e20: 0xf0001a1a, 0x6e21: 0xf0001a1a, 0x6e22: 0xf0001a1a, 0x6e23: 0xf0001a1a,
-	0x6e24: 0xf0001a1a, 0x6e25: 0xf0001a1a, 0x6e26: 0xf0001a1a, 0x6e27: 0xf0001a1a,
-	0x6e28: 0xf0001a1a, 0x6e29: 0xf0001a1a, 0x6e2a: 0xf0001a1a, 0x6e2b: 0xf0001a1a,
-	0x6e2c: 0xf0001a1a, 0x6e2d: 0xf0001a1a, 0x6e2e: 0xf0001a1a, 0x6e2f: 0xf0001a1a,
-	0x6e30: 0xf0001a1a, 0x6e31: 0xe00024f0, 0x6e32: 0xf0001a1a, 0x6e33: 0xf0001a1a,
-	0x6e34: 0xf0001a1a, 0x6e35: 0xe00024f6, 0x6e36: 0xf0001a1a, 0x6e37: 0xf0001a1a,
-	0x6e38: 0xf0001a1a, 0x6e39: 0xf0001a1a, 0x6e3a: 0xf0001a1a, 0x6e3b: 0xf0001a1a,
-	0x6e3c: 0xf0001a1a, 0x6e3d: 0xe00024fc, 0x6e3e: 0xf0001a1a, 0x6e3f: 0xf0001a1a,
-	// Block 0x1b9, offset 0x6e40
-	0x6e40: 0xf0001a1a, 0x6e41: 0xf0001a1a, 0x6e42: 0xf0001a1a, 0x6e43: 0xe0002502,
-	0x6e44: 0xf0001a1a, 0x6e45: 0xf0001a1a, 0x6e46: 0xf0001a1a, 0x6e47: 0xf0001a1a,
-	0x6e48: 0xf0001a1a, 0x6e49: 0xe0002505, 0x6e4a: 0xf0001a1a, 0x6e4b: 0xf0001a1a,
-	0x6e4c: 0xf0001a1a, 0x6e4d: 0xf0001a1a, 0x6e4e: 0xf0001a1a, 0x6e4f: 0xe000250b,
-	0x6e50: 0xf0001a1a, 0x6e51: 0xf0001a1a, 0x6e52: 0xf0001a1a, 0x6e53: 0xe000250e,
-	0x6e54: 0xf0001a1a, 0x6e55: 0xf0001a1a, 0x6e56: 0xf0001a1a, 0x6e57: 0xf0001a1a,
-	0x6e58: 0xf0001a1a, 0x6e59: 0xe0002514, 0x6e5a: 0xf0001a1a, 0x6e5b: 0xf0001a1a,
-	0x6e5c: 0xf0001a1a, 0x6e5d: 0x003a90a8, 0x6e5e: 0xe0000003, 0x6e5f: 0xe0000006,
-	0x6e60: 0xe0000009, 0x6e61: 0xe000000c, 0x6e62: 0xe000000f, 0x6e63: 0xe0000012,
-	0x6e64: 0xe000156b, 0x6e65: 0xe000156e, 0x6e66: 0xe0001577, 0x6e67: 0xe000157d,
-	0x6e68: 0xe00015aa, 0x6e69: 0xe00015b3, 0x6e6a: 0xf0001919, 0x6e6b: 0xf0001919,
-	0x6e6c: 0xf0001919, 0x6e6d: 0xf0001919, 0x6e6e: 0xe000249f, 0x6e6f: 0xf0001919,
-	0x6e70: 0xf0001919, 0x6e71: 0xf0001919, 0x6e72: 0xf0001919, 0x6e73: 0xf0001919,
-	0x6e74: 0xe00024a5, 0x6e75: 0xf0001919, 0x6e76: 0xf0001919, 0x6e77: 0xf0001919,
-	0x6e78: 0xf0001919, 0x6e79: 0xf0001919, 0x6e7a: 0xe00024ab, 0x6e7b: 0xf0001919,
-	0x6e7c: 0xe00024ed, 0x6e7d: 0xf0001919, 0x6e7e: 0xe00024f3, 0x6e7f: 0xf0001919,
-	// Block 0x1ba, offset 0x6e80
-	0x6e80: 0xf0001919, 0x6e81: 0xf0001919, 0x6e82: 0xf0001919, 0x6e83: 0xe00024f9,
-	0x6e84: 0xf0001919, 0x6e85: 0xf0001919, 0x6e86: 0xe00024ff, 0x6e87: 0xf0001919,
-	0x6e88: 0xf0001919, 0x6e89: 0xf0001919, 0x6e8a: 0xf0001919, 0x6e8b: 0xf0001919,
-	0x6e8c: 0xf0001919, 0x6e8d: 0xf0001919, 0x6e8e: 0xe0002508, 0x6e8f: 0xf0001919,
-	0x6e90: 0x003a90a7, 0x6e91: 0xf0001919, 0x6e92: 0xf0001919, 0x6e93: 0xf0001919,
-	0x6e94: 0xf0001919, 0x6e95: 0xe0002511, 0x6e96: 0xf0001919, 0x6e97: 0xe000155c,
-	0x6e98: 0xe0001562, 0x6e99: 0xe0001568, 0x6e9a: 0xe0001571, 0x6e9b: 0xe0001580,
-	0x6e9c: 0xf0001717, 0x6e9d: 0xf0001717, 0x6e9e: 0xf0001717, 0x6e9f: 0xf0001717,
-	0x6ea0: 0xf0001717, 0x6ea1: 0xf0001717, 0x6ea2: 0xf0001717, 0x6ea3: 0xf0001717,
-	0x6ea4: 0xf0001717, 0x6ea5: 0xf0001717, 0x6ea6: 0xf0001717, 0x6ea7: 0xf0001717,
-	0x6ea8: 0xf0001717, 0x6ea9: 0xf0001717, 0x6eaa: 0xf0001717, 0x6eab: 0xf0001717,
-	0x6eac: 0xf0001717, 0x6ead: 0xf0001717, 0x6eae: 0xf0001717, 0x6eaf: 0xf0001717,
-	0x6eb0: 0xf0001717, 0x6eb1: 0xf0001717, 0x6eb2: 0xf0001717, 0x6eb3: 0xf0001717,
-	0x6eb4: 0xf0001717, 0x6eb5: 0xf0001717, 0x6eb6: 0xf0001717, 0x6eb7: 0xf0001717,
-	0x6eb8: 0xf0001717, 0x6eb9: 0xf0001717, 0x6eba: 0xf0001717, 0x6ebb: 0xf0001717,
-	0x6ebc: 0xf0001717, 0x6ebd: 0xf0001717, 0x6ebe: 0xf0001717, 0x6ebf: 0xf0001717,
-	// Block 0x1bb, offset 0x6ec0
-	0x6ec0: 0xf0001717, 0x6ec1: 0xf0001717, 0x6ec2: 0xf0001717, 0x6ec3: 0xf0001717,
-	0x6ec4: 0xf0001717, 0x6ec5: 0xf0001717, 0x6ec6: 0xf0001717, 0x6ec7: 0xf0001717,
-	0x6ec8: 0xf0001717, 0x6ec9: 0xf0001717, 0x6eca: 0xf0001717, 0x6ecb: 0xf0001717,
-	0x6ecc: 0xf0001717, 0x6ecd: 0xf0001717, 0x6ece: 0xf0001717, 0x6ecf: 0xf0001717,
-	0x6ed0: 0xf0001717, 0x6ed1: 0xf0001717, 0x6ed2: 0xf0001717, 0x6ed3: 0xf0001717,
-	0x6ed4: 0xf0001717, 0x6ed5: 0xf0001717, 0x6ed6: 0xf0001717, 0x6ed7: 0xf0001717,
-	0x6ed8: 0xf0001717, 0x6ed9: 0xf0001717, 0x6eda: 0xf0001717, 0x6edb: 0xf0001717,
-	0x6edc: 0xf0001717, 0x6edd: 0xf0001717, 0x6ede: 0xf0001717, 0x6edf: 0xe0001574,
-	0x6ee0: 0xe0001583, 0x6ee1: 0xf0001818, 0x6ee2: 0xf0001818, 0x6ee3: 0xf0001818,
-	0x6ee4: 0xf0001818, 0x6ee5: 0xf0001818, 0x6ee6: 0xf0001818, 0x6ee7: 0xf0001818,
-	0x6ee8: 0xf0001818, 0x6ee9: 0xf0001818, 0x6eea: 0xf0001818, 0x6eeb: 0xf0001818,
-	0x6eec: 0xf0001818, 0x6eed: 0xf0001818, 0x6eee: 0xf0001818, 0x6eef: 0xf0001818,
-	0x6ef0: 0xf0001818, 0x6ef1: 0xf0001818, 0x6ef2: 0xf0001818, 0x6ef3: 0xf0001818,
-	0x6ef4: 0xf0001818, 0x6ef5: 0xe00024de, 0x6ef6: 0xf0001a1a, 0x6ef7: 0xe00024e4,
-	0x6ef8: 0xf0001a1a, 0x6ef9: 0xe00024ea, 0x6efa: 0xf0001a1a, 0x6efb: 0xe00024c6,
-	0x6efc: 0xf0001a1a, 0x6efd: 0xe00024cc, 0x6efe: 0xf0001a1a, 0x6eff: 0xe00024ba,
-	// Block 0x1bc, offset 0x6f00
-	0x6f00: 0xf0001a1a, 0x6f01: 0xe00024b4, 0x6f02: 0xf0001a1a, 0x6f03: 0xe00024c0,
-	0x6f04: 0xf0001a1a, 0x6f05: 0xe00024d2, 0x6f06: 0xf0001a1a, 0x6f07: 0xe00024d8,
-	0x6f08: 0xf0001a1a, 0x6f09: 0xf0001a1a, 0x6f0a: 0xf0001a1a, 0x6f0b: 0xf0001a1a,
-	0x6f0c: 0xf0001a1a, 0x6f0d: 0xf0001a1a, 0x6f0e: 0xf0001a1a, 0x6f0f: 0xf0001a1a,
-	0x6f10: 0xf0001a1a, 0x6f11: 0xe00024db, 0x6f12: 0xf0001919, 0x6f13: 0xe00024e1,
-	0x6f14: 0xf0001919, 0x6f15: 0xe00024e7, 0x6f16: 0xf0001919, 0x6f17: 0xe00024c3,
-	0x6f18: 0xf0001919, 0x6f19: 0xe00024c9, 0x6f1a: 0xf0001919, 0x6f1b: 0xe00024b7,
-	0x6f1c: 0xf0001919, 0x6f1d: 0xe00024b1, 0x6f1e: 0xf0001919, 0x6f1f: 0xe00024bd,
-	0x6f20: 0xf0001919, 0x6f21: 0xe00024cf, 0x6f22: 0xf0001919, 0x6f23: 0xe00024d5,
-	0x6f24: 0xf0001919, 0x6f25: 0xf0001919, 0x6f26: 0xf0001919, 0x6f27: 0xf0001919,
-	0x6f28: 0xf0001919, 0x6f29: 0xf0001919, 0x6f2a: 0xf0001919, 0x6f2b: 0xf0001919,
-	0x6f2c: 0xf0001919, 0x6f2d: 0xf0001717, 0x6f2e: 0xf0001717, 0x6f2f: 0xf0001717,
-	0x6f30: 0xf0001717, 0x6f31: 0xf0001717, 0x6f32: 0xf0001717, 0x6f33: 0xf0001717,
-	0x6f34: 0xf0001818, 0x6f35: 0xf0001818, 0x6f36: 0xf0001818, 0x6f37: 0xf0001818,
-	0x6f38: 0xf0001818, 0x6f39: 0xf0001818, 0x6f3a: 0xf0001818, 0x6f3b: 0xf0001818,
-	0x6f3c: 0xf0001919, 0x6f3d: 0xf0001a1a, 0x6f3e: 0x4004c020, 0x6f3f: 0x4004c220,
-	// Block 0x1bd, offset 0x6f40
-	0x6f40: 0x00391c9a, 0x6f41: 0x00391e9a, 0x6f42: 0x00391e99, 0x6f43: 0x0039209a,
-	0x6f44: 0x00392099, 0x6f45: 0x0039269a, 0x6f46: 0x00392699, 0x6f47: 0x0039289a,
-	0x6f48: 0x00392899, 0x6f49: 0x0039309a, 0x6f4a: 0x00393099, 0x6f4b: 0x00393097,
-	0x6f4c: 0x00393098, 0x6f4d: 0x0039389a, 0x6f4e: 0x00393899, 0x6f4f: 0x00393c9a,
-	0x6f50: 0x00393c99, 0x6f51: 0x00393c97, 0x6f52: 0x00393c98, 0x6f53: 0x003956a4,
-	0x6f54: 0x003956a3, 0x6f55: 0x0039569a, 0x6f56: 0x00395699, 0x6f57: 0x00395697,
-	0x6f58: 0x00395698, 0x6f59: 0x0039589a, 0x6f5a: 0x00395899, 0x6f5b: 0x00395897,
-	0x6f5c: 0x00395898, 0x6f5d: 0x0039649a, 0x6f5e: 0x00396499, 0x6f5f: 0x00396497,
-	0x6f60: 0x00396498, 0x6f61: 0x0039729a, 0x6f62: 0x00397299, 0x6f63: 0x00397297,
-	0x6f64: 0x00397298, 0x6f65: 0x0039749a, 0x6f66: 0x00397499, 0x6f67: 0x00397497,
-	0x6f68: 0x00397498, 0x6f69: 0x0039889a, 0x6f6a: 0x00398899, 0x6f6b: 0x00398a9a,
-	0x6f6c: 0x00398a99, 0x6f6d: 0x0039a49a, 0x6f6e: 0x0039a499, 0x6f6f: 0x0039a69a,
-	0x6f70: 0x0039a699, 0x6f71: 0x0039c69a, 0x6f72: 0x0039c699, 0x6f73: 0x0039c697,
-	0x6f74: 0x0039c698, 0x6f75: 0x0039c89a, 0x6f76: 0x0039c899, 0x6f77: 0x0039c897,
-	0x6f78: 0x0039c898, 0x6f79: 0x0039dc9a, 0x6f7a: 0x0039dc99, 0x6f7b: 0x0039dc97,
-	0x6f7c: 0x0039dc98, 0x6f7d: 0x0039de9a, 0x6f7e: 0x0039de99, 0x6f7f: 0x0039de97,
-	// Block 0x1be, offset 0x6f80
-	0x6f80: 0x0039de98, 0x6f81: 0x0039e69a, 0x6f82: 0x0039e699, 0x6f83: 0x0039e697,
-	0x6f84: 0x0039e698, 0x6f85: 0x0039e89a, 0x6f86: 0x0039e899, 0x6f87: 0x0039e897,
-	0x6f88: 0x0039e898, 0x6f89: 0x0039ee9a, 0x6f8a: 0x0039ee99, 0x6f8b: 0x0039ee97,
-	0x6f8c: 0x0039ee98, 0x6f8d: 0x0039f09a, 0x6f8e: 0x0039f099, 0x6f8f: 0x0039f097,
-	0x6f90: 0x0039f098, 0x6f91: 0x0039fc9a, 0x6f92: 0x0039fc99, 0x6f93: 0x0039fc97,
-	0x6f94: 0x0039fc98, 0x6f95: 0x003a129a, 0x6f96: 0x003a1299, 0x6f97: 0x003a1297,
-	0x6f98: 0x003a1298, 0x6f99: 0x003a1a9a, 0x6f9a: 0x003a1a99, 0x6f9b: 0x003a1a97,
-	0x6f9c: 0x003a1a98, 0x6f9d: 0x003a409a, 0x6f9e: 0x003a4099, 0x6f9f: 0x003a4097,
-	0x6fa0: 0x003a4098, 0x6fa1: 0x003a4e9a, 0x6fa2: 0x003a4e99, 0x6fa3: 0x003a4e97,
-	0x6fa4: 0x003a4e98, 0x6fa5: 0x003a569a, 0x6fa6: 0x003a5699, 0x6fa7: 0x003a5697,
-	0x6fa8: 0x003a5698, 0x6fa9: 0x003a689a, 0x6faa: 0x003a6899, 0x6fab: 0x003a6897,
-	0x6fac: 0x003a6898, 0x6fad: 0x003a749a, 0x6fae: 0x003a7499, 0x6faf: 0x003a90a6,
-	0x6fb0: 0x003a90a5, 0x6fb1: 0x003a909a, 0x6fb2: 0x003a9099, 0x6fb3: 0x003a9097,
-	0x6fb4: 0x003a9098, 0x6fb5: 0xe0001732, 0x6fb6: 0xe000172f, 0x6fb7: 0xe0001738,
-	0x6fb8: 0xe0001735, 0x6fb9: 0xe000173e, 0x6fba: 0xe000173b, 0x6fbb: 0xf0001a1a,
-	0x6fbc: 0xf0001919, 0x6fbf: 0xa0000000,
-	// Block 0x1bf, offset 0x6fc0
-	0x6fc1: 0x40409a20, 0x6fc2: 0x40409820, 0x6fc3: 0x40409c20,
-	0x6fc5: 0x40407c20, 0x6fc6: 0x40407e20, 0x6fc7: 0x40408020,
-	0x6fc8: 0x40408220, 0x6fc9: 0x40408420, 0x6fca: 0x40408620, 0x6fcb: 0x40408820,
-	0x6fcc: 0x40408c20, 0x6fcf: 0x40409020,
-	0x6fd0: 0x40409220, 0x6fd3: 0x40409420,
-	0x6fd4: 0x40409620, 0x6fd5: 0xc33108b1, 0x6fd6: 0x40409a20, 0x6fd7: 0x40409c20,
-	0x6fd8: 0x40409e20, 0x6fd9: 0x4040a020, 0x6fda: 0x4040a220, 0x6fdb: 0x4040a420,
-	0x6fdc: 0x4040a620, 0x6fdd: 0x4040a820, 0x6fde: 0x4040aa20, 0x6fdf: 0x4040ac20,
-	0x6fe0: 0x4040ae20, 0x6fe1: 0x4040b020, 0x6fe2: 0x4040b220, 0x6fe3: 0x4040b420,
-	0x6fe4: 0xc32f0851, 0x6fe5: 0x4040b820, 0x6fe6: 0x4040ba20, 0x6fe7: 0x4040bc20,
-	0x6fe8: 0x4040be20, 0x6fea: 0x4040c020, 0x6feb: 0x4040c220,
-	0x6fec: 0x4040c420, 0x6fed: 0x4040c620, 0x6fee: 0x4040c820, 0x6fef: 0x4040ca20,
-	0x6ff0: 0x4040cc20, 0x6ff2: 0x4040d020,
-	0x6ff6: 0x4040d420, 0x6ff7: 0x4040d620,
-	0x6ff8: 0x4040d820, 0x6ff9: 0x4040da20,
-	0x6ffc: 0xa070f102, 0x6ffd: 0x4040dc20, 0x6ffe: 0x4040de20, 0x6fff: 0x4040e020,
-	// Block 0x1c0, offset 0x7000
-	0x7000: 0xa0000000, 0x7001: 0xa0000000, 0x7002: 0xa0000000, 0x7003: 0xa0000000,
-	0x7004: 0xa0000000, 0x7005: 0xa0000000, 0x7006: 0xa0000000, 0x7007: 0xa0000000,
-	0x7008: 0xa0000000, 0x7009: 0x40020020, 0x700a: 0x40020220, 0x700b: 0x40020420,
-	0x700c: 0x40020620, 0x700d: 0x40020820, 0x700e: 0xa0000000, 0x700f: 0xa0000000,
-	0x7010: 0xa0000000, 0x7011: 0xa0000000, 0x7012: 0xa0000000, 0x7013: 0xa0000000,
-	0x7014: 0xa0000000, 0x7015: 0xa0000000, 0x7016: 0xa0000000, 0x7017: 0xa0000000,
-	0x7018: 0xa0000000, 0x7019: 0xa0000000, 0x701a: 0xa0000000, 0x701b: 0xa0000000,
-	0x701c: 0xa0000000, 0x701d: 0xa0000000, 0x701e: 0xa0000000, 0x701f: 0xa0000000,
-	0x7020: 0x40021220, 0x7021: 0x4002ba20, 0x7022: 0x4003e020, 0x7023: 0x4004ea20,
-	0x7024: 0x4027de20, 0x7025: 0x4004ec20, 0x7026: 0x4004e620, 0x7027: 0x4003d220,
-	0x7028: 0x4003f420, 0x7029: 0x4003f620, 0x702a: 0x4004d820, 0x702b: 0x40093820,
-	0x702c: 0x40024020, 0x702d: 0x40021a20, 0x702e: 0x4002e420, 0x702f: 0x4004e220,
-	0x7030: 0x4029cc20, 0x7031: 0x4029ce20, 0x7032: 0x4029d020, 0x7033: 0x4029d220,
-	0x7034: 0x4029d420, 0x7035: 0x4029d620, 0x7036: 0x4029d820, 0x7037: 0x4029da20,
-	0x7038: 0x4029dc20, 0x7039: 0x4029de20, 0x703a: 0x40026c20, 0x703b: 0x40026220,
-	0x703c: 0x40094020, 0x703d: 0x40094220, 0x703e: 0x40094420, 0x703f: 0x4002c420,
-	// Block 0x1c1, offset 0x7040
-	0x7040: 0x4004d620, 0x7041: 0x002bde88, 0x7042: 0x002c0a88, 0x7043: 0xc3350911,
-	0x7044: 0x002c6288, 0x7045: 0x002c9888, 0x7046: 0x002d0888, 0x7047: 0xc33900d1,
-	0x7048: 0x002d6888, 0x7049: 0xc33b0931, 0x704a: 0x002dcc88, 0x704b: 0x002dfe88,
-	0x704c: 0xc0030002, 0x704d: 0x002e8288, 0x704e: 0x002e9e88, 0x704f: 0xc33f0071,
-	0x7050: 0x002f2c88, 0x7051: 0x002e0083, 0x7052: 0x002f7a88, 0x7053: 0xc3430911,
-	0x7054: 0x00302c88, 0x7055: 0xc3470071, 0x7056: 0x0030be88, 0x7057: 0x0030e288,
-	0x7058: 0x002d6a83, 0x7059: 0x00310088, 0x705a: 0x00312a88, 0x705b: 0x4003f820,
-	0x705c: 0x4004e420, 0x705d: 0x4003fa20, 0x705e: 0x40062420, 0x705f: 0x40021620,
-	0x7060: 0x40061e20, 0x7061: 0x402bde20, 0x7062: 0x402c0a20, 0x7063: 0xc3330911,
-	0x7064: 0x402c6220, 0x7065: 0x402c9820, 0x7066: 0x402d0820, 0x7067: 0xc33700d1,
-	0x7068: 0x402d6820, 0x7069: 0x402d9a20, 0x706a: 0x402dcc20, 0x706b: 0x402dfe20,
-	0x706c: 0xc0000002, 0x706d: 0x402e8220, 0x706e: 0x402e9e20, 0x706f: 0xc33d0071,
-	0x7070: 0x402f2c20, 0x7071: 0x402e0020, 0x7072: 0x402f7a20, 0x7073: 0xc3410911,
-	0x7074: 0x40302c20, 0x7075: 0xc3450071, 0x7076: 0x4030be20, 0x7077: 0x4030e220,
-	0x7078: 0x402d6a20, 0x7079: 0x40310020, 0x707a: 0x40312a20, 0x707b: 0x4003fc20,
-	0x707c: 0x40094820, 0x707d: 0x4003fe20, 0x707e: 0x40094c20, 0x707f: 0xa0000000,
-	// Block 0x1c2, offset 0x7080
-	0x7080: 0xe00008f5, 0x7081: 0xe00008ef, 0x7082: 0xe0000921, 0x7083: 0xe0000969,
-	0x7084: 0xe000095b, 0x7085: 0xe000094d, 0x7086: 0xe00009dd, 0x7087: 0x002c3c83,
-	0x7088: 0xe0000ae8, 0x7089: 0xe0000ae2, 0x708a: 0xe0000af4, 0x708b: 0xe0000b20,
-	0x708c: 0xe0002543, 0x708d: 0xe0002540, 0x708e: 0xe0002549, 0x708f: 0xe000254f,
-	0x7090: 0xe0000ab3, 0x7091: 0xe0000d63, 0x7092: 0xe0000d9a, 0x7093: 0xe0000d94,
-	0x7094: 0xe0000da6, 0x7095: 0xe0000de6, 0x7096: 0x002ee483, 0x7097: 0x40093e20,
-	0x7098: 0xe0000e12, 0x7099: 0xe0000fe1, 0x709a: 0xe0000fdb, 0x709b: 0xe0000fed,
-	0x709c: 0x00306e83, 0x709d: 0xe0001102, 0x709e: 0x00318888, 0x709f: 0xe0000f7b,
-	0x70a0: 0xe00008f2, 0x70a1: 0xe00008ec, 0x70a2: 0xe000091e, 0x70a3: 0xe0000966,
-	0x70a4: 0xe0000958, 0x70a5: 0xe000094a, 0x70a6: 0xe00009d5, 0x70a7: 0x402c3c20,
-	0x70a8: 0xe0000ae5, 0x70a9: 0xe0000adf, 0x70aa: 0xe0000af1, 0x70ab: 0xe0000b1d,
-	0x70ac: 0xe0000c28, 0x70ad: 0xe0000c22, 0x70ae: 0xe0000c34, 0x70af: 0xe0000c40,
-	0x70b0: 0xe0000aad, 0x70b1: 0xe0000d60, 0x70b2: 0xe0000d97, 0x70b3: 0xe0000d91,
-	0x70b4: 0xe0000da3, 0x70b5: 0xe0000de3, 0x70b6: 0x402ee420, 0x70b7: 0x40093c20,
-	0x70b8: 0xe0000e0f, 0x70b9: 0xe0000fde, 0x70ba: 0xe0000fd8, 0x70bb: 0xe0000fea,
-	0x70bc: 0x40306e20, 0x70bd: 0xe00010ff, 0x70be: 0x40318820, 0x70bf: 0xe0001114,
-	// Block 0x1c3, offset 0x70c0
-	0x70c0: 0xe0000983, 0x70c1: 0xe0000980, 0x70c2: 0xe00008fb, 0x70c3: 0xe00008f8,
-	0x70c4: 0xe000097d, 0x70c5: 0xe000097a, 0x70c6: 0xe0000a38, 0x70c7: 0xe0000a35,
-	0x70c8: 0xe0000a3e, 0x70c9: 0xe0000a3b, 0x70ca: 0xe0000a4a, 0x70cb: 0xe0000a47,
-	0x70cc: 0xe0000a44, 0x70cd: 0xe0000a41, 0x70ce: 0xe0000a86, 0x70cf: 0xe0000a83,
-	0x70d0: 0xe0000aaa, 0x70d1: 0xe0000aa7, 0x70d2: 0xe0000b46, 0x70d3: 0xe0000b43,
-	0x70d4: 0xe0000aee, 0x70d5: 0xe0000aeb, 0x70d6: 0xe0000b2c, 0x70d7: 0xe0000b29,
-	0x70d8: 0xe0000b40, 0x70d9: 0xe0000b3d, 0x70da: 0xe0000b1a, 0x70db: 0xe0000b17,
-	0x70dc: 0xe0000bb8, 0x70dd: 0xe0000bb5, 0x70de: 0x002d2483, 0x70df: 0x402d2420,
-	0x70e0: 0xe0000bc4, 0x70e1: 0xe0000bc1, 0x70e2: 0xe0000bca, 0x70e3: 0xe0000bc7,
-	0x70e4: 0xe0000bee, 0x70e5: 0xe0000beb, 0x70e6: 0xe0000c1b, 0x70e7: 0xe0000c18,
-	0x70e8: 0xe0002556, 0x70e9: 0xe0000c4e, 0x70ea: 0xe000255c, 0x70eb: 0xe0000c5d,
-	0x70ec: 0xe0002546, 0x70ed: 0xe0000c2e, 0x70ee: 0xe0002559, 0x70ef: 0xe0000c57,
-	0x70f0: 0x002d9a83, 0x70f1: 0x402d9820, 0x70f2: 0xe0002575, 0x70f3: 0xf0000404,
-	0x70f4: 0xe0000c8a, 0x70f5: 0xe0000c87, 0x70f6: 0xe0000c9f, 0x70f7: 0xe0000c9c,
-	0x70f8: 0x402f7220, 0x70f9: 0xe0000ccc, 0x70fa: 0xe0000cc9, 0x70fb: 0xe0000cd8,
-	0x70fc: 0xe0000cd5, 0x70fd: 0xe0000cd2, 0x70fe: 0xe0000ccf, 0x70ff: 0xe0000d04,
-	// Block 0x1c4, offset 0x7100
-	0x7100: 0xe0000cfe, 0x7101: 0xe0000cf8, 0x7102: 0xe0000cf5, 0x7103: 0xe0000d51,
-	0x7104: 0xe0000d4e, 0x7105: 0xe0000d6f, 0x7106: 0xe0000d6c, 0x7107: 0xe0000d5d,
-	0x7108: 0xe0000d5a, 0x7109: 0xf0000404, 0x710a: 0x002eda88, 0x710b: 0x402eda20,
-	0x710c: 0xe0000e2e, 0x710d: 0xe0000e2b, 0x710e: 0xe0000da0, 0x710f: 0xe0000d9d,
-	0x7110: 0xe0000de0, 0x7111: 0xe0000ddd, 0x7112: 0xe0000e93, 0x7113: 0xe0000e8f,
-	0x7114: 0xe0000eca, 0x7115: 0xe0000ec7, 0x7116: 0xe0000edc, 0x7117: 0xe0000ed9,
-	0x7118: 0xe0000ed0, 0x7119: 0xe0000ecd, 0x711a: 0xe0000f1f, 0x711b: 0xe0000f1c,
-	0x711c: 0xe0000f2d, 0x711d: 0xe0000f2a, 0x711e: 0x002fe883, 0x711f: 0x402fe820,
-	0x7120: 0xe0000f33, 0x7121: 0xe0000f30, 0x7122: 0xe0000f99, 0x7123: 0xe0000f96,
-	0x7124: 0xe0000f8a, 0x7125: 0xe0000f87, 0x7126: 0x00303688, 0x7127: 0x40303620,
-	0x7128: 0xe000102b, 0x7129: 0xe0001028, 0x712a: 0xe000103f, 0x712b: 0xe000103c,
-	0x712c: 0xe0000fe7, 0x712d: 0xe0000fe4, 0x712e: 0xe0000ff9, 0x712f: 0xe0000ff6,
-	0x7130: 0xe0001025, 0x7131: 0xe0001022, 0x7132: 0xe0001039, 0x7133: 0xe0001036,
-	0x7134: 0xe00010d8, 0x7135: 0xe00010d5, 0x7136: 0xe000110e, 0x7137: 0xe000110b,
-	0x7138: 0xe0001117, 0x7139: 0xe000113b, 0x713a: 0xe0001138, 0x713b: 0xe000114d,
-	0x713c: 0xe000114a, 0x713d: 0xe0001147, 0x713e: 0xe0001144, 0x713f: 0xe0000f64,
-	// Block 0x1c5, offset 0x7140
-	0x7140: 0x402c1a20, 0x7141: 0x002c2a88, 0x7142: 0x002c3288, 0x7143: 0x402c3220,
-	0x7144: 0x0031c488, 0x7145: 0x4031c420, 0x7146: 0x002efa88, 0x7147: 0x002c4e88,
-	0x7148: 0x402c4e20, 0x7149: 0x002c7288, 0x714a: 0x002c7a88, 0x714b: 0x002c8488,
-	0x714c: 0x402c8420, 0x714d: 0xe000115c, 0x714e: 0x002cae88, 0x714f: 0x002c9a83,
-	0x7150: 0x002cc288, 0x7151: 0x002d1688, 0x7152: 0x402d1620, 0x7153: 0x002d4488,
-	0x7154: 0x002d5888, 0x7155: 0x402d7820, 0x7156: 0x002dc288, 0x7157: 0x002db688,
-	0x7158: 0x002e0a88, 0x7159: 0x402e0a20, 0x715a: 0x402e3820, 0x715b: 0x402e7220,
-	0x715c: 0x0030a088, 0x715d: 0x002eb488, 0x715e: 0x402ebc20, 0x715f: 0x002f1088,
-	0x7160: 0xe0000e56, 0x7161: 0xe0000e53, 0x7162: 0x002d6088, 0x7163: 0x402d6020,
-	0x7164: 0x002f3e88, 0x7165: 0x402f3e20, 0x7166: 0x002f8288, 0x7167: 0x0031b488,
-	0x7168: 0x4031b420, 0x7169: 0x00300888, 0x716a: 0x40301220, 0x716b: 0x40304220,
-	0x716c: 0x00304a88, 0x716d: 0x40304a20, 0x716e: 0x00305288, 0x716f: 0xe000105f,
-	0x7170: 0xe000105c, 0x7171: 0x0030b488, 0x7172: 0x0030cc88, 0x7173: 0x00311888,
-	0x7174: 0x40311820, 0x7175: 0x00313488, 0x7176: 0x40313420, 0x7177: 0x00316488,
-	0x7178: 0x00316e88, 0x7179: 0x40316e20, 0x717a: 0x40317820, 0x717b: 0x4031a620,
-	0x717c: 0x0031bc88, 0x717d: 0x4031bc20, 0x717e: 0xe0000fc9, 0x717f: 0x40319420,
-	// Block 0x1c6, offset 0x7180
-	0x7180: 0x40321220, 0x7181: 0x40321a20, 0x7182: 0x40322220, 0x7183: 0x40322a20,
-	0x7184: 0xe0000ad5, 0x7185: 0xe0000ad1, 0x7186: 0xe0000acd, 0x7187: 0xf0000a0a,
-	0x7188: 0xf000040a, 0x7189: 0xf0000404, 0x718a: 0xf0000a0a, 0x718b: 0xf000040a,
-	0x718c: 0xf0000404, 0x718d: 0xe0000947, 0x718e: 0xe0000944, 0x718f: 0xe000254c,
-	0x7190: 0xe0000c3a, 0x7191: 0xe0000dcc, 0x7192: 0xe0000dc9, 0x7193: 0xe0000ff3,
-	0x7194: 0xe0000ff0, 0x7195: 0xe00025a8, 0x7196: 0xe00025a5, 0x7197: 0xe0002596,
-	0x7198: 0xe0002593, 0x7199: 0xe00025a2, 0x719a: 0xe000259f, 0x719b: 0xe000259c,
-	0x719c: 0xe0002599, 0x719d: 0x402cae20, 0x719e: 0xe0000962, 0x719f: 0xe000095e,
-	0x71a0: 0xe0000976, 0x71a1: 0xe0000972, 0x71a2: 0xe00009f4, 0x71a3: 0xe00009ef,
-	0x71a4: 0x002d3a88, 0x71a5: 0x402d3a20, 0x71a6: 0xe0000bbe, 0x71a7: 0xe0000bbb,
-	0x71a8: 0xe0000c99, 0x71a9: 0xe0000c96, 0x71aa: 0xe0000e20, 0x71ab: 0xe0000e1d,
-	0x71ac: 0xe0000e27, 0x71ad: 0xe0000e23, 0x71ae: 0xe0001162, 0x71af: 0xe000115f,
-	0x71b0: 0xe0000c8d, 0x71b1: 0xf0000a0a, 0x71b2: 0xf000040a, 0x71b3: 0xf0000404,
-	0x71b4: 0xe0000bac, 0x71b5: 0xe0000ba9, 0x71b6: 0x002d7888, 0x71b7: 0x00319488,
-	0x71b8: 0xe0000d57, 0x71b9: 0xe0000d54, 0x71ba: 0xe0000954, 0x71bb: 0xe0000950,
-	0x71bc: 0xe00009ea, 0x71bd: 0xe00009e5, 0x71be: 0xe0000e19, 0x71bf: 0xe0000e15,
-	// Block 0x1c7, offset 0x71c0
-	0x71c0: 0xe000098f, 0x71c1: 0xe000098c, 0x71c2: 0xe0000995, 0x71c3: 0xe0000992,
-	0x71c4: 0xe0000b62, 0x71c5: 0xe0000b5f, 0x71c6: 0xe0000b68, 0x71c7: 0xe0000b65,
-	0x71c8: 0xe0002562, 0x71c9: 0xe0000c69, 0x71ca: 0xe0002565, 0x71cb: 0xe0000c6f,
-	0x71cc: 0xe0000e4a, 0x71cd: 0xe0000e47, 0x71ce: 0xe0000e50, 0x71cf: 0xe0000e4d,
-	0x71d0: 0xe0000ee8, 0x71d1: 0xe0000ee5, 0x71d2: 0xe0000eee, 0x71d3: 0xe0000eeb,
-	0x71d4: 0xe0001053, 0x71d5: 0xe0001050, 0x71d6: 0xe0001059, 0x71d7: 0xe0001056,
-	0x71d8: 0xe0000f61, 0x71d9: 0xe0000f5e, 0x71da: 0xe0000fa5, 0x71db: 0xe0000fa2,
-	0x71dc: 0x00312288, 0x71dd: 0x40312220, 0x71de: 0xe0000bf4, 0x71df: 0xe0000bf1,
-	0x71e0: 0x002ebc88, 0x71e1: 0x402c8c20, 0x71e2: 0x002f2288, 0x71e3: 0x402f2220,
-	0x71e4: 0x00314088, 0x71e5: 0x40314020, 0x71e6: 0xe000096f, 0x71e7: 0xe000096c,
-	0x71e8: 0xe0000b32, 0x71e9: 0xe0000b2f, 0x71ea: 0xe0002590, 0x71eb: 0xe000258d,
-	0x71ec: 0xe0000dfd, 0x71ed: 0xe0000df9, 0x71ee: 0xe0000e04, 0x71ef: 0xe0000e01,
-	0x71f0: 0xe0000e0b, 0x71f1: 0xe0000e07, 0x71f2: 0xe0001129, 0x71f3: 0xe0001126,
-	0x71f4: 0x402e5e20, 0x71f5: 0x402ed020, 0x71f6: 0x40305a20, 0x71f7: 0x402dd420,
-	0x71f8: 0xe0000abf, 0x71f9: 0xe0000ec4, 0x71fa: 0x002be888, 0x71fb: 0x002c4488,
-	0x71fc: 0x402c4420, 0x71fd: 0x002e3888, 0x71fe: 0x00303e88, 0x71ff: 0x402ffc20,
-	// Block 0x1c8, offset 0x7200
-	0x7200: 0x40315820, 0x7201: 0x0031d488, 0x7202: 0x4031d420, 0x7203: 0x002c1a88,
-	0x7204: 0x00307c88, 0x7205: 0x0030da88, 0x7206: 0x002ca288, 0x7207: 0x402ca220,
-	0x7208: 0x002dde88, 0x7209: 0x402dde20, 0x720a: 0x002f6a88, 0x720b: 0x402f6a20,
-	0x720c: 0x002f8e88, 0x720d: 0x402f8e20, 0x720e: 0x00311088, 0x720f: 0x40311020,
-	0x7210: 0x402bf020, 0x7211: 0x402bf820, 0x7212: 0x402c0220, 0x7213: 0x402c2a20,
-	0x7214: 0x402efa20, 0x7215: 0x402c5620, 0x7216: 0x402c7220, 0x7217: 0x402c7a20,
-	0x7218: 0x402ccc20, 0x7219: 0x402c9a20, 0x721a: 0x402cd420, 0x721b: 0x402cc220,
-	0x721c: 0x402cdc20, 0x721d: 0x402ce820, 0x721e: 0x402cf020, 0x721f: 0x402dee20,
-	0x7220: 0x402d4420, 0x7221: 0x402d2a20, 0x7222: 0x402d3220, 0x7223: 0x402d5820,
-	0x7224: 0x402d0020, 0x7225: 0x40308820, 0x7226: 0x402d8020, 0x7227: 0x402d8e20,
-	0x7228: 0x402db620, 0x7229: 0x402dc220, 0x722a: 0x402daa20, 0x722b: 0x402e4220,
-	0x722c: 0x402e4a20, 0x722d: 0x402e5420, 0x722e: 0x402e6820, 0x722f: 0x4030a020,
-	0x7230: 0x4030ac20, 0x7231: 0x402e9020, 0x7232: 0x402eb420, 0x7233: 0x402ec820,
-	0x7234: 0x402ea620, 0x7235: 0x402f1020, 0x7236: 0x402eee20, 0x7237: 0x402f1a20,
-	0x7238: 0x402f4c20, 0x7239: 0x402f9820, 0x723a: 0x402fa220, 0x723b: 0x402fac20,
-	0x723c: 0x402fb620, 0x723d: 0x402fbe20, 0x723e: 0x402fc620, 0x723f: 0x402fd020,
-	// Block 0x1c9, offset 0x7240
-	0x7240: 0xe00009b1, 0x7241: 0xe00009ae, 0x7242: 0xe0000a22, 0x7243: 0xe0000a1f,
-	0x7244: 0xe0000a28, 0x7245: 0xe0000a25, 0x7246: 0xe0000a2e, 0x7247: 0xe0000a2b,
-	0x7248: 0xe0002531, 0x7249: 0xe000252e, 0x724a: 0xe0000a8c, 0x724b: 0xe0000a89,
-	0x724c: 0xe0000a98, 0x724d: 0xe0000a95, 0x724e: 0xe0000aa4, 0x724f: 0xe0000aa1,
-	0x7250: 0xe0000a92, 0x7251: 0xe0000a8f, 0x7252: 0xe0000a9e, 0x7253: 0xe0000a9b,
-	0x7254: 0xe0000b55, 0x7255: 0xe0000b51, 0x7256: 0xe0000b4d, 0x7257: 0xe0000b49,
-	0x7258: 0xe0000b7c, 0x7259: 0xe0000b79, 0x725a: 0xe0000b82, 0x725b: 0xe0000b7f,
-	0x725c: 0xe0000b39, 0x725d: 0xe0000b35, 0x725e: 0xe0000b8c, 0x725f: 0xe0000b89,
-	0x7260: 0xe0000bd0, 0x7261: 0xe0000bcd, 0x7262: 0xe0000c00, 0x7263: 0xe0000bfd,
-	0x7264: 0xe0000c0c, 0x7265: 0xe0000c09, 0x7266: 0xe0000bfa, 0x7267: 0xe0000bf7,
-	0x7268: 0xe0000c06, 0x7269: 0xe0000c03, 0x726a: 0xe0000c12, 0x726b: 0xe0000c0f,
-	0x726c: 0xe000256b, 0x726d: 0xe0000c7b, 0x726e: 0xe0002552, 0x726f: 0xe0000c46,
-	0x7270: 0xe0000c93, 0x7271: 0xe0000c90, 0x7272: 0xe0000cab, 0x7273: 0xe0000ca8,
-	0x7274: 0xe0000cb1, 0x7275: 0xe0000cae, 0x7276: 0xe0000cde, 0x7277: 0xe0000cdb,
-	0x7278: 0xe0000ce5, 0x7279: 0xe0000ce1, 0x727a: 0xe0000cf2, 0x727b: 0xe0000cef,
-	0x727c: 0xe0000cec, 0x727d: 0xe0000ce9, 0x727e: 0xe0000d1e, 0x727f: 0xe0000d1b,
-	// Block 0x1ca, offset 0x7280
-	0x7280: 0xe0000d24, 0x7281: 0xe0000d21, 0x7282: 0xe0000d2a, 0x7283: 0xe0000d27,
-	0x7284: 0xe0000d69, 0x7285: 0xe0000d66, 0x7286: 0xe0000d7b, 0x7287: 0xe0000d78,
-	0x7288: 0xe0000d87, 0x7289: 0xe0000d84, 0x728a: 0xe0000d81, 0x728b: 0xe0000d7e,
-	0x728c: 0xe0000ded, 0x728d: 0xe0000de9, 0x728e: 0xe000258a, 0x728f: 0xe0002587,
-	0x7290: 0xe0000e3d, 0x7291: 0xe0000e39, 0x7292: 0xe0000e35, 0x7293: 0xe0000e31,
-	0x7294: 0xe0000ea7, 0x7295: 0xe0000ea4, 0x7296: 0xe0000ead, 0x7297: 0xe0000eaa,
-	0x7298: 0xe0000ed6, 0x7299: 0xe0000ed3, 0x729a: 0xe0000ef4, 0x729b: 0xe0000ef1,
-	0x729c: 0xe0000efb, 0x729d: 0xe0000ef7, 0x729e: 0xe0000f02, 0x729f: 0xe0000eff,
-	0x72a0: 0xe0000f41, 0x72a1: 0xe0000f3e, 0x72a2: 0xe0000f53, 0x72a3: 0xe0000f50,
-	0x72a4: 0xe0000f26, 0x72a5: 0xe0000f22, 0x72a6: 0xe0000f3a, 0x72a7: 0xe0000f36,
-	0x72a8: 0xe0000f5a, 0x72a9: 0xe0000f56, 0x72aa: 0xe0000f93, 0x72ab: 0xe0000f90,
-	0x72ac: 0xe0000f9f, 0x72ad: 0xe0000f9c, 0x72ae: 0xe0000fb1, 0x72af: 0xe0000fae,
-	0x72b0: 0xe0000fab, 0x72b1: 0xe0000fa8, 0x72b2: 0xe0001093, 0x72b3: 0xe0001090,
-	0x72b4: 0xe000109f, 0x72b5: 0xe000109c, 0x72b6: 0xe0001099, 0x72b7: 0xe0001096,
-	0x72b8: 0xe0001032, 0x72b9: 0xe000102e, 0x72ba: 0xe00025a8, 0x72bb: 0xe00025a5,
-	0x72bc: 0xe00010a9, 0x72bd: 0xe00010a6, 0x72be: 0xe00010af, 0x72bf: 0xe00010ac,
-	// Block 0x1cb, offset 0x72c0
-	0x72c0: 0xe00010d2, 0x72c1: 0xe00010cf, 0x72c2: 0xe00010cc, 0x72c3: 0xe00010c9,
-	0x72c4: 0xe00010e1, 0x72c5: 0xe00010de, 0x72c6: 0xe00010e7, 0x72c7: 0xe00010e4,
-	0x72c8: 0xe00010ed, 0x72c9: 0xe00010ea, 0x72ca: 0xe000253d, 0x72cb: 0xe000253a,
-	0x72cc: 0xe0002537, 0x72cd: 0xe0002534, 0x72ce: 0xe0001123, 0x72cf: 0xe0001120,
-	0x72d0: 0xe0001141, 0x72d1: 0xe000113e, 0x72d2: 0xe0001153, 0x72d3: 0xe0001150,
-	0x72d4: 0xe0001159, 0x72d5: 0xe0001156, 0x72d6: 0xe0000c15, 0x72d7: 0xe0000f8d,
-	0x72d8: 0xe00010db, 0x72d9: 0xe0001111, 0x72da: 0xf0000404, 0x72db: 0xe0000f70,
-	0x72dc: 0x40300420, 0x72dd: 0x40300620, 0x72de: 0xe0000f7f, 0x72df: 0x402c9620,
-	0x72e0: 0xe000099b, 0x72e1: 0xe0000998, 0x72e2: 0xe0000989, 0x72e3: 0xe0000986,
-	0x72e4: 0xe0000928, 0x72e5: 0xe0000924, 0x72e6: 0xe0000930, 0x72e7: 0xe000092c,
-	0x72e8: 0xe0000940, 0x72e9: 0xe000093c, 0x72ea: 0xe0000938, 0x72eb: 0xe0000934,
-	0x72ec: 0xe00009aa, 0x72ed: 0xe00009a6, 0x72ee: 0xe0000902, 0x72ef: 0xe00008fe,
-	0x72f0: 0xe000090a, 0x72f1: 0xe0000906, 0x72f2: 0xe000091a, 0x72f3: 0xe0000916,
-	0x72f4: 0xe0000912, 0x72f5: 0xe000090e, 0x72f6: 0xe00009a2, 0x72f7: 0xe000099e,
-	0x72f8: 0xe0000b6e, 0x72f9: 0xe0000b6b, 0x72fa: 0xe0000b5c, 0x72fb: 0xe0000b59,
-	0x72fc: 0xe0000b26, 0x72fd: 0xe0000b23, 0x72fe: 0xe0000afb, 0x72ff: 0xe0000af7,
-	// Block 0x1cc, offset 0x7300
-	0x7300: 0xe0000b03, 0x7301: 0xe0000aff, 0x7302: 0xe0000b13, 0x7303: 0xe0000b0f,
-	0x7304: 0xe0000b0b, 0x7305: 0xe0000b07, 0x7306: 0xe0000b75, 0x7307: 0xe0000b71,
-	0x7308: 0xe000255f, 0x7309: 0xe0000c63, 0x730a: 0xe0002568, 0x730b: 0xe0000c75,
-	0x730c: 0xe0000e84, 0x730d: 0xe0000e81, 0x730e: 0xe0000e44, 0x730f: 0xe0000e41,
-	0x7310: 0xe0000dad, 0x7311: 0xe0000da9, 0x7312: 0xe0000db5, 0x7313: 0xe0000db1,
-	0x7314: 0xe0000dc5, 0x7315: 0xe0000dc1, 0x7316: 0xe0000dbd, 0x7317: 0xe0000db9,
-	0x7318: 0xe0000e8b, 0x7319: 0xe0000e87, 0x731a: 0xe0000e5d, 0x731b: 0xe0000e59,
-	0x731c: 0xe0000e65, 0x731d: 0xe0000e61, 0x731e: 0xe0000e75, 0x731f: 0xe0000e71,
-	0x7320: 0xe0000e6d, 0x7321: 0xe0000e69, 0x7322: 0xe0000e7d, 0x7323: 0xe0000e79,
-	0x7324: 0xe000108d, 0x7325: 0xe000108a, 0x7326: 0xe000104d, 0x7327: 0xe000104a,
-	0x7328: 0xe0001066, 0x7329: 0xe0001062, 0x732a: 0xe000106e, 0x732b: 0xe000106a,
-	0x732c: 0xe000107e, 0x732d: 0xe000107a, 0x732e: 0xe0001076, 0x732f: 0xe0001072,
-	0x7330: 0xe0001086, 0x7331: 0xe0001082, 0x7332: 0xe0001108, 0x7333: 0xe0001105,
-	0x7334: 0xe0001135, 0x7335: 0xe0001132, 0x7336: 0xe000112f, 0x7337: 0xe000112c,
-	0x7338: 0xe000111d, 0x7339: 0xe000111a, 0x733a: 0xe0000d0a, 0x733b: 0xe0000d07,
-	0x733c: 0x0030d888, 0x733d: 0x4030d820, 0x733e: 0x00312088, 0x733f: 0x40312020,
-	// Block 0x1cd, offset 0x7340
-	0x7340: 0x00093685, 0x7341: 0x40083620, 0x7342: 0x40083820, 0x7343: 0x40083a20,
-	0x7344: 0x40083c20, 0x7345: 0x002c628b, 0x7346: 0x002c6285, 0x7347: 0x002c9885,
-	0x7348: 0x002d9a85, 0x7349: 0x002dcc85, 0x734a: 0x40083e20, 0x734b: 0x400a6e20,
-	0x734c: 0x40084020, 0x734d: 0xe00009c4, 0x734e: 0x402d1e20, 0x734f: 0x40084220,
-	0x7350: 0xe00002cb, 0x7351: 0xe00002d3, 0x7352: 0xe00002b2, 0x7353: 0xe00002bb,
-	0x7354: 0xe00003cd, 0x7355: 0xe00002c3, 0x7356: 0xe00003d1, 0x7357: 0xe00004ab,
-	0x7358: 0xe0000579, 0x7359: 0xe00002c7, 0x735a: 0xe0000640, 0x735b: 0xe00002cf,
-	0x735c: 0xe00004af, 0x735d: 0xe0000644, 0x735e: 0xe0000798, 0x735f: 0xf0001e1e,
-	0x7360: 0x002d9a8a, 0x7361: 0xe000256e, 0x7362: 0xe0002571, 0x7363: 0xe000257b,
-	0x7364: 0x0030be8a, 0x7365: 0xe00025ab, 0x7366: 0xe00025ae, 0x7367: 0xe00010bb,
-	0x7368: 0xe0002581, 0x7369: 0x0030f68a, 0x736a: 0xe00025b5, 0x736b: 0xe00025bc,
-	0x736c: 0x002e228a, 0x736d: 0x002c3a8a, 0x736e: 0x002c628a, 0x736f: 0x002e828a,
-	0x7370: 0x002d9a84, 0x7371: 0xf0001f04, 0x7372: 0xf0000404, 0x7373: 0xf0001f04,
-	0x7374: 0x0030be84, 0x7375: 0xf0001f04, 0x7376: 0xf0000404, 0x7377: 0xe00010b6,
-	0x7378: 0xe000257e, 0x7379: 0x0030f684, 0x737a: 0xe00025b2, 0x737b: 0xe00025b8,
-	0x737c: 0x002e2284, 0x737d: 0x002c3a84, 0x737e: 0x002c6284, 0x737f: 0x002e8284,
-	// Block 0x1ce, offset 0x7380
-	0x7380: 0xe0000024, 0x7381: 0xe0000029, 0x7382: 0xe000002e, 0x7383: 0xe0000033,
-	0x7384: 0xe0000038, 0x7385: 0xe000003d, 0x7386: 0xe0000042, 0x7387: 0xe0000047,
-	0x7388: 0xf0001f04, 0x7389: 0xf0001f04, 0x738a: 0xf0001f04, 0x738b: 0xf0001f04,
-	0x738c: 0xf0001f04, 0x738d: 0xf0001f04, 0x738e: 0xf0001f04, 0x738f: 0xf0001f04,
-	0x7390: 0xf0001f04, 0x7391: 0xf0000404, 0x7392: 0xf0000404, 0x7393: 0xf0000404,
-	0x7394: 0xf0000404, 0x7395: 0xf0000404, 0x7396: 0xf0000404, 0x7397: 0xf0000404,
-	0x7398: 0xf0000404, 0x7399: 0xf0000404, 0x739a: 0xf0000404, 0x739b: 0xf0000404,
-	0x739c: 0xf0000404, 0x739d: 0xf0000404, 0x739e: 0xf0000404, 0x739f: 0xf0000404,
-	0x73a0: 0xf0000404, 0x73a1: 0xf0000404, 0x73a2: 0xf0000404, 0x73a3: 0xf0000404,
-	0x73a4: 0xf0000404, 0x73a5: 0xf0000404, 0x73a6: 0xf0000404, 0x73a7: 0xf0000404,
-	0x73a8: 0xf0000404, 0x73a9: 0xf0000404, 0x73aa: 0xf0000404, 0x73ab: 0xf0000404,
-	0x73ac: 0xe000251b, 0x73ad: 0xf0000404, 0x73ae: 0xf0000404, 0x73af: 0xf0000404,
-	0x73b0: 0xf0000404, 0x73b1: 0xf0000404, 0x73b2: 0xf0000404, 0x73b3: 0xe0002523,
-	0x73b4: 0xf0000404, 0x73b5: 0xf0000404, 0x73b6: 0x002bde8c, 0x73b7: 0x002c0a8c,
-	0x73b8: 0x002c3a8c, 0x73b9: 0x002c628c, 0x73ba: 0x002c988c, 0x73bb: 0x002d088c,
-	0x73bc: 0x002d228c, 0x73bd: 0x002d688c, 0x73be: 0x002d9a8c, 0x73bf: 0x002dcc8c,
-	// Block 0x1cf, offset 0x73c0
-	0x73c0: 0xe000230b, 0x73c1: 0xe00022f8, 0x73c2: 0xe00022fc, 0x73c3: 0xe0002311,
-	0x73c4: 0xe0002316, 0x73c5: 0xe000231d, 0x73c6: 0xe0002321, 0x73c7: 0xe0002325,
-	0x73c8: 0xe000232b, 0x73c9: 0xf0001c1c, 0x73ca: 0xe0002330, 0x73cb: 0xe000233c,
-	0x73cc: 0xe0002340, 0x73cd: 0xe0002337, 0x73ce: 0xe0002346, 0x73cf: 0xe000234b,
-	0x73d0: 0xe000234f, 0x73d1: 0xe0002353, 0x73d2: 0xf0001c1c, 0x73d3: 0xe000235e,
-	0x73d4: 0xe0002358, 0x73d5: 0xf0001c1c, 0x73d6: 0xe0002363, 0x73d7: 0xe000236d,
-	0x73d8: 0xf0001f04, 0x73d9: 0xf0001f04, 0x73da: 0xf0001f04, 0x73db: 0xf0001f04,
-	0x73dc: 0xf0001f04, 0x73dd: 0xf0001f04, 0x73de: 0xf0001f04, 0x73df: 0xf0001f04,
-	0x73e0: 0xf0001f04, 0x73e1: 0xf0001f04, 0x73e2: 0xf0000404, 0x73e3: 0xf0000404,
-	0x73e4: 0xf0000404, 0x73e5: 0xf0000404, 0x73e6: 0xf0000404, 0x73e7: 0xf0000404,
-	0x73e8: 0xf0000404, 0x73e9: 0xf0000404, 0x73ea: 0xf0000404, 0x73eb: 0xf0000404,
-	0x73ec: 0xf0000404, 0x73ed: 0xf0000404, 0x73ee: 0xf0000404, 0x73ef: 0xf0000404,
-	0x73f0: 0xf0000404, 0x73f1: 0xe0000c1e, 0x73f2: 0xf0001c1c, 0x73f3: 0xf0001d1d,
-	0x73f4: 0xe0000a31, 0x73f5: 0xf0001d1c, 0x73f6: 0xf0001c1c, 0x73f7: 0xf0001c1c,
-	0x73f8: 0xe0000ac2, 0x73f9: 0xe0000ac6, 0x73fa: 0xe0002578, 0x73fb: 0xf0001c1c,
-	0x73fc: 0xf0001c1c, 0x73fd: 0xf0001c1c, 0x73fe: 0xf0001c1c, 0x73ff: 0xe0002431,
-	// Block 0x1d0, offset 0x7400
-	0x7400: 0xf0001d1c, 0x7401: 0xf0001d1d, 0x7402: 0xe00009b7, 0x7403: 0xe000252b,
-	0x7404: 0xf0001c1c, 0x7405: 0xf0001c1c, 0x7406: 0xe0000a66, 0x7407: 0xe0000a7a,
-	0x7408: 0xf0001d1c, 0x7409: 0xf0001c1d, 0x740a: 0xf0001c1c, 0x740b: 0xf0001d1d,
-	0x740c: 0xf0001c1c, 0x740d: 0xf0001d1d, 0x740e: 0xf0001d1d, 0x740f: 0xf0001c1c,
-	0x7410: 0xf0001c1c, 0x7411: 0xf0001c1c, 0x7412: 0xe0000d0d, 0x7413: 0xe0002584,
-	0x7414: 0xf0001c1c, 0x7415: 0xe0000d3a, 0x7416: 0xe0000d46, 0x7417: 0xf0001d1d,
-	0x7418: 0xe0000eb0, 0x7419: 0xe0000eb8, 0x741a: 0xf0001d1d, 0x741b: 0xf0001c1c,
-	0x741c: 0xf0001c1d, 0x741d: 0xf0001c1d, 0x741e: 0xe00010b2, 0x741f: 0xe00009c8,
-	0x7420: 0xf0001f04, 0x7421: 0xf0001f04, 0x7422: 0xf0001f04, 0x7423: 0xf0001f04,
-	0x7424: 0xf0001f04, 0x7425: 0xf0001f04, 0x7426: 0xf0001f04, 0x7427: 0xf0001f04,
-	0x7428: 0xf0001f04, 0x7429: 0xf0000404, 0x742a: 0xf0000404, 0x742b: 0xf0000404,
-	0x742c: 0xf0000404, 0x742d: 0xf0000404, 0x742e: 0xf0000404, 0x742f: 0xf0000404,
-	0x7430: 0xf0000404, 0x7431: 0xf0000404, 0x7432: 0xf0000404, 0x7433: 0xf0000404,
-	0x7434: 0xf0000404, 0x7435: 0xf0000404, 0x7436: 0xf0000404, 0x7437: 0xf0000404,
-	0x7438: 0xf0000404, 0x7439: 0xf0000404, 0x743a: 0xf0000404, 0x743b: 0xf0000404,
-	0x743c: 0xf0000404, 0x743d: 0xf0000404, 0x743e: 0xf0000404, 0x743f: 0xe0000bdf,
-	// Block 0x1d1, offset 0x7440
-	0x7440: 0xf0001f04, 0x7441: 0xf0001f04, 0x7442: 0xf0001f04, 0x7443: 0xf0001f04,
-	0x7444: 0xf0001f04, 0x7445: 0xf0001f04, 0x7446: 0xf0001f04, 0x7447: 0xf0001f04,
-	0x7448: 0xf0001f04, 0x7449: 0xf0001f04, 0x744a: 0xf0001f04,
-	0x7450: 0xf0000a04, 0x7451: 0xf0000a04, 0x7452: 0xf0000a04, 0x7453: 0xf0000a04,
-	0x7454: 0xf0000a04, 0x7455: 0xf0000a04, 0x7456: 0xf0000a04, 0x7457: 0xf0000a04,
-	0x7458: 0xe0002517, 0x7459: 0xf0000a04, 0x745a: 0xf0000a04, 0x745b: 0xf0000a04,
-	0x745c: 0xf0000a04, 0x745d: 0xf0000a04, 0x745e: 0xf0000a04, 0x745f: 0xf0000a04,
-	0x7460: 0xe000251f, 0x7461: 0xf0000a04, 0x7462: 0xf0000a04, 0x7463: 0xf0000a04,
-	0x7464: 0xf0000a04, 0x7465: 0xf0000a04, 0x7466: 0xf0000a04, 0x7467: 0xe0002527,
-	0x7468: 0xf0000a04, 0x7469: 0xf0000a04, 0x746a: 0xf0000a04, 0x746b: 0x002c3a8c,
-	0x746c: 0x002f7a8c, 0x746d: 0xf0000c0c, 0x746e: 0xf0000c0c,
-	0x7470: 0x002bde9d, 0x7471: 0x002c0a9d, 0x7472: 0x002c3a9d, 0x7473: 0x002c629d,
-	0x7474: 0x002c989d, 0x7475: 0x002d089d, 0x7476: 0x002d229d, 0x7477: 0x002d689d,
-	0x7478: 0x002d9a9d, 0x7479: 0x002dcc9d, 0x747a: 0x002dfe9d, 0x747b: 0x002e229d,
-	0x747c: 0x002e829d, 0x747d: 0x002e9e9d, 0x747e: 0x002ee29d, 0x747f: 0x002f2c9d,
-	// Block 0x1d2, offset 0x7480
-	0x7480: 0xe00014bd, 0x7481: 0x0033b483, 0x7482: 0x00339688, 0x7483: 0x0033a288,
-	0x7484: 0x0033c288, 0x7485: 0x0033fc88, 0x7486: 0xc02a0071, 0x7487: 0x00343688,
-	0x7488: 0x00344688, 0x7489: 0x00349a88, 0x748a: 0x0034e488, 0x748b: 0x00356288,
-	0x748c: 0x00356a88, 0x748d: 0xe00014cf, 0x748e: 0x00357a88, 0x748f: 0x00365488,
-	0x7490: 0xc0090041, 0x7491: 0x00335288, 0x7492: 0x00335a88, 0x7493: 0xc0130092,
-	0x7494: 0x00338a88, 0x7495: 0xc34c0041, 0x7496: 0xc01c0071, 0x7497: 0xc0200071,
-	0x7498: 0xc0250041, 0x7499: 0x00343e88, 0x749a: 0xc0370092, 0x749b: 0x00348488,
-	0x749c: 0x0034a888, 0x749d: 0x0034ba88, 0x749e: 0xc02e0071, 0x749f: 0x00350e88,
-	0x74a0: 0x00352888, 0x74a1: 0x00353a88, 0x74a2: 0x00354c88, 0x74a3: 0xc03e00f1,
-	0x74a4: 0x0035ac88, 0x74a5: 0x0035b488, 0x74a6: 0x00360288, 0x74a7: 0xc0440071,
-	0x74a8: 0x00365c88, 0x74a9: 0x00366688, 0x74aa: 0x00367488, 0x74ab: 0xc0480071,
-	0x74ac: 0x00368e88, 0x74ad: 0xc04c0071, 0x74ae: 0x0036b888, 0x74af: 0x0036c488,
-	0x74b0: 0xc0060041, 0x74b1: 0x40335220, 0x74b2: 0x40335a20, 0x74b3: 0xc0100092,
-	0x74b4: 0x40338a20, 0x74b5: 0xc3490041, 0x74b6: 0xc01a0071, 0x74b7: 0xc01e0071,
-	0x74b8: 0xc0220041, 0x74b9: 0x40343e20, 0x74ba: 0xc0340092, 0x74bb: 0x40348420,
-	0x74bc: 0x4034a820, 0x74bd: 0x4034ba20, 0x74be: 0xc02c0071, 0x74bf: 0x40350e20,
-	// Block 0x1d3, offset 0x74c0
-	0x74c0: 0x40352820, 0x74c1: 0x40353a20, 0x74c2: 0x40354c20, 0x74c3: 0xc03a00f1,
-	0x74c4: 0x4035ac20, 0x74c5: 0x4035b420, 0x74c6: 0x40360220, 0x74c7: 0xc0420071,
-	0x74c8: 0x40365c20, 0x74c9: 0x40366620, 0x74ca: 0x40367420, 0x74cb: 0xc0460071,
-	0x74cc: 0x40368e20, 0x74cd: 0xc04a0071, 0x74ce: 0x4036b820, 0x74cf: 0x4036c420,
-	0x74d0: 0xe00014ba, 0x74d1: 0x4033b420, 0x74d2: 0x40339620, 0x74d3: 0x4033a220,
-	0x74d4: 0x4033c220, 0x74d5: 0x4033fc20, 0x74d6: 0xc0280071, 0x74d7: 0x40343620,
-	0x74d8: 0x40344620, 0x74d9: 0x40349a20, 0x74da: 0x4034e420, 0x74db: 0x40356220,
-	0x74dc: 0x40356a20, 0x74dd: 0xe00014cc, 0x74de: 0x40357a20, 0x74df: 0x40365420,
-	0x74e0: 0x0035e088, 0x74e1: 0x4035e020, 0x74e2: 0x00369e88, 0x74e3: 0x40369e20,
-	0x74e4: 0x0036ce88, 0x74e5: 0x4036ce20, 0x74e6: 0x0036d688, 0x74e7: 0x4036d620,
-	0x74e8: 0x0036ea88, 0x74e9: 0x4036ea20, 0x74ea: 0x0036e088, 0x74eb: 0x4036e020,
-	0x74ec: 0x0036f488, 0x74ed: 0x4036f420, 0x74ee: 0x0036fc88, 0x74ef: 0x4036fc20,
-	0x74f0: 0x00370488, 0x74f1: 0x40370420, 0x74f2: 0x00370c88, 0x74f3: 0x40370c20,
-	0x74f4: 0xc0500131, 0x74f5: 0xc04e0131, 0x74f6: 0x00371c88, 0x74f7: 0x40371c20,
-	0x74f8: 0x0035a488, 0x74f9: 0x4035a420, 0x74fa: 0x0035fa88, 0x74fb: 0x4035fa20,
-	0x74fc: 0x0035f288, 0x74fd: 0x4035f220, 0x74fe: 0x0035e888, 0x74ff: 0x4035e820,
-	// Block 0x1d4, offset 0x7500
-	0x7501: 0x40409c20, 0x7502: 0x40409820, 0x7503: 0x40409a20,
-	0x7505: 0x40407c20, 0x7506: 0x40407e20, 0x7507: 0x40408020,
-	0x7508: 0x40408220, 0x7509: 0x40408420, 0x750a: 0x40408620, 0x750b: 0x40408820,
-	0x750c: 0x40408c20, 0x750f: 0x40409020,
-	0x7510: 0x40409220, 0x7513: 0x40409420,
-	0x7514: 0x40409620, 0x7515: 0x40409820, 0x7516: 0x40409a20, 0x7517: 0x40409c20,
-	0x7518: 0x40409e20, 0x7519: 0x4040a020, 0x751a: 0x4040a220, 0x751b: 0x4040a420,
-	0x751c: 0x4040a620, 0x751d: 0x4040a820, 0x751e: 0x4040aa20, 0x751f: 0x4040ac20,
-	0x7520: 0x4040ae20, 0x7521: 0x4040b020, 0x7522: 0x4040b220, 0x7523: 0x4040b420,
-	0x7524: 0x4040b620, 0x7525: 0x4040b820, 0x7526: 0x4040ba20, 0x7527: 0x4040bc20,
-	0x7528: 0x4040be20, 0x752a: 0x4040c020, 0x752b: 0x4040c220,
-	0x752c: 0x4040c420, 0x752d: 0x4040c620, 0x752e: 0x4040c820, 0x752f: 0x4040ca20,
-	0x7530: 0x4040cc20, 0x7532: 0x4040d020,
-	0x7536: 0x4040d420, 0x7537: 0x4040d620,
-	0x7538: 0x4040d820, 0x7539: 0x4040da20,
-	0x753c: 0xa070f102, 0x753d: 0x4040dc20, 0x753e: 0x4040de20, 0x753f: 0x4040e020,
-	// Block 0x1d5, offset 0x7540
-	0x7540: 0xa0000000, 0x7541: 0xa0000000, 0x7542: 0xa0000000, 0x7543: 0xa0000000,
-	0x7544: 0xa0000000, 0x7545: 0xa0000000, 0x7546: 0xa0000000, 0x7547: 0xa0000000,
-	0x7548: 0xa0000000, 0x7549: 0x40020020, 0x754a: 0x40020220, 0x754b: 0x40020420,
-	0x754c: 0x40020620, 0x754d: 0x40020820, 0x754e: 0xa0000000, 0x754f: 0xa0000000,
-	0x7550: 0xa0000000, 0x7551: 0xa0000000, 0x7552: 0xa0000000, 0x7553: 0xa0000000,
-	0x7554: 0xa0000000, 0x7555: 0xa0000000, 0x7556: 0xa0000000, 0x7557: 0xa0000000,
-	0x7558: 0xa0000000, 0x7559: 0xa0000000, 0x755a: 0xa0000000, 0x755b: 0xa0000000,
-	0x755c: 0xa0000000, 0x755d: 0xa0000000, 0x755e: 0xa0000000, 0x755f: 0xa0000000,
-	0x7560: 0x40021220, 0x7561: 0x4002ba20, 0x7562: 0x4003e020, 0x7563: 0x4004ea20,
-	0x7564: 0x4027de20, 0x7565: 0x4004ec20, 0x7566: 0x4004e620, 0x7567: 0x4003d220,
-	0x7568: 0x4003f420, 0x7569: 0x4003f620, 0x756a: 0x4004d820, 0x756b: 0x40093820,
-	0x756c: 0x40024020, 0x756d: 0x40021a20, 0x756e: 0x4002e420, 0x756f: 0x4004e220,
-	0x7570: 0x4029cc20, 0x7571: 0x4029ce20, 0x7572: 0x4029d020, 0x7573: 0x4029d220,
-	0x7574: 0x4029d420, 0x7575: 0x4029d620, 0x7576: 0x4029d820, 0x7577: 0x4029da20,
-	0x7578: 0x4029dc20, 0x7579: 0x4029de20, 0x757a: 0x40026c20, 0x757b: 0x40026220,
-	0x757c: 0x40094020, 0x757d: 0x40094220, 0x757e: 0x40094420, 0x757f: 0x4002c420,
-	// Block 0x1d6, offset 0x7580
-	0x7580: 0x4004d620, 0x7581: 0x002bde88, 0x7582: 0x002c0a88, 0x7583: 0x002c3a88,
-	0x7584: 0x002c6288, 0x7585: 0x002c9888, 0x7586: 0x002d0888, 0x7587: 0x002d2288,
-	0x7588: 0x002d6888, 0x7589: 0x002d9a88, 0x758a: 0x002dcc88, 0x758b: 0x002dfe88,
-	0x758c: 0xc3520002, 0x758d: 0x002e8288, 0x758e: 0x002e9e88, 0x758f: 0x002ee288,
-	0x7590: 0x002f2c88, 0x7591: 0x002f5688, 0x7592: 0x002f7a88, 0x7593: 0x002fe688,
-	0x7594: 0x00302c88, 0x7595: 0x00306c88, 0x7596: 0x0030be88, 0x7597: 0x0030e288,
-	0x7598: 0x0030f688, 0x7599: 0x00310088, 0x759a: 0x00312a88, 0x759b: 0x4003f820,
-	0x759c: 0x4004e420, 0x759d: 0x4003fa20, 0x759e: 0x40062420, 0x759f: 0x40021620,
-	0x75a0: 0x40061e20, 0x75a1: 0x402bde20, 0x75a2: 0x402c0a20, 0x75a3: 0x402c3a20,
-	0x75a4: 0x402c6220, 0x75a5: 0x402c9820, 0x75a6: 0x402d0820, 0x75a7: 0x402d2220,
-	0x75a8: 0x402d6820, 0x75a9: 0x402d9a20, 0x75aa: 0x402dcc20, 0x75ab: 0x402dfe20,
-	0x75ac: 0xc34f0002, 0x75ad: 0x402e8220, 0x75ae: 0x402e9e20, 0x75af: 0x402ee220,
-	0x75b0: 0x402f2c20, 0x75b1: 0x402f5620, 0x75b2: 0x402f7a20, 0x75b3: 0x402fe620,
-	0x75b4: 0x40302c20, 0x75b5: 0x40306c20, 0x75b6: 0x4030be20, 0x75b7: 0x4030e220,
-	0x75b8: 0x4030f620, 0x75b9: 0x40310020, 0x75ba: 0x40312a20, 0x75bb: 0x4003fc20,
-	0x75bc: 0x40094820, 0x75bd: 0x4003fe20, 0x75be: 0x40094c20, 0x75bf: 0xa0000000,
-	// Block 0x1d7, offset 0x75c0
-	0x75c0: 0xe0000983, 0x75c1: 0xe0000980, 0x75c2: 0xe00008fb, 0x75c3: 0xe00008f8,
-	0x75c4: 0xe000097d, 0x75c5: 0xe000097a, 0x75c6: 0xe0000a38, 0x75c7: 0xe0000a35,
-	0x75c8: 0xe0000a3e, 0x75c9: 0xe0000a3b, 0x75ca: 0xe0000a4a, 0x75cb: 0xe0000a47,
-	0x75cc: 0xe0000a44, 0x75cd: 0xe0000a41, 0x75ce: 0xe0000a86, 0x75cf: 0xe0000a83,
-	0x75d0: 0xe0000aaa, 0x75d1: 0xe0000aa7, 0x75d2: 0xe0000b46, 0x75d3: 0xe0000b43,
-	0x75d4: 0xe0000aee, 0x75d5: 0xe0000aeb, 0x75d6: 0xe0000b2c, 0x75d7: 0xe0000b29,
-	0x75d8: 0xe0000b40, 0x75d9: 0xe0000b3d, 0x75da: 0xe0000b1a, 0x75db: 0xe0000b17,
-	0x75dc: 0xe0000bb8, 0x75dd: 0xe0000bb5, 0x75de: 0xe0000bb2, 0x75df: 0xe0000baf,
-	0x75e0: 0xe0000bc4, 0x75e1: 0xe0000bc1, 0x75e2: 0xe0000bca, 0x75e3: 0xe0000bc7,
-	0x75e4: 0xe0000bee, 0x75e5: 0xe0000beb, 0x75e6: 0xe0000c1b, 0x75e7: 0xe0000c18,
-	0x75e8: 0xe0000c51, 0x75e9: 0xe0000c4e, 0x75ea: 0xe0000c60, 0x75eb: 0xe0000c5d,
-	0x75ec: 0xe0000c31, 0x75ed: 0xe0000c2e, 0x75ee: 0xe0000c5a, 0x75ef: 0xe0000c57,
-	0x75f0: 0xe0000c54, 0x75f1: 0x402da220, 0x75f2: 0xf0000a0a, 0x75f3: 0xf0000404,
-	0x75f4: 0xe0000c8a, 0x75f5: 0xe0000c87, 0x75f6: 0xe0000c9f, 0x75f7: 0xe0000c9c,
-	0x75f8: 0x402f7220, 0x75f9: 0xe0000ccc, 0x75fa: 0xe0000cc9, 0x75fb: 0xe0000cd8,
-	0x75fc: 0xe0000cd5, 0x75fd: 0xe0000cd2, 0x75fe: 0xe0000ccf, 0x75ff: 0x002e22a3,
-	// Block 0x1d8, offset 0x7600
-	0x7600: 0x402e2221, 0x7601: 0xe0000cf8, 0x7602: 0xe0000cf5, 0x7603: 0xe0000d51,
-	0x7604: 0xe0000d4e, 0x7605: 0xe0000d6f, 0x7606: 0xe0000d6c, 0x7607: 0xe0000d5d,
-	0x7608: 0xe0000d5a, 0x7609: 0xf0000404, 0x760a: 0x002eda88, 0x760b: 0x402eda20,
-	0x760c: 0xe0000e2e, 0x760d: 0xe0000e2b, 0x760e: 0xe0000da0, 0x760f: 0xe0000d9d,
-	0x7610: 0xe0000de0, 0x7611: 0xe0000ddd, 0x7612: 0xe0000e93, 0x7613: 0xe0000e8f,
-	0x7614: 0xe0000eca, 0x7615: 0xe0000ec7, 0x7616: 0xe0000edc, 0x7617: 0xe0000ed9,
-	0x7618: 0xe0000ed0, 0x7619: 0xe0000ecd, 0x761a: 0xe0000f1f, 0x761b: 0xe0000f1c,
-	0x761c: 0xe0000f2d, 0x761d: 0xe0000f2a, 0x761e: 0xe0000f47, 0x761f: 0xe0000f44,
-	0x7620: 0xe0000f33, 0x7621: 0xe0000f30, 0x7622: 0xe0000f99, 0x7623: 0xe0000f96,
-	0x7624: 0xe0000f8a, 0x7625: 0xe0000f87, 0x7626: 0x00303688, 0x7627: 0x40303620,
-	0x7628: 0xe000102b, 0x7629: 0xe0001028, 0x762a: 0xe000103f, 0x762b: 0xe000103c,
-	0x762c: 0xe0000fe7, 0x762d: 0xe0000fe4, 0x762e: 0xe0000ff9, 0x762f: 0xe0000ff6,
-	0x7630: 0xe0001025, 0x7631: 0xe0001022, 0x7632: 0xe0001039, 0x7633: 0xe0001036,
-	0x7634: 0xe00010d8, 0x7635: 0xe00010d5, 0x7636: 0xe000110e, 0x7637: 0xe000110b,
-	0x7638: 0xe0001117, 0x7639: 0xe000113b, 0x763a: 0xe0001138, 0x763b: 0xe000114d,
-	0x763c: 0xe000114a, 0x763d: 0xe0001147, 0x763e: 0xe0001144, 0x763f: 0xe0000f64,
-	// Block 0x1d9, offset 0x7640
-	0x7640: 0xa0000000, 0x7641: 0xa0000000, 0x7642: 0xa0000000, 0x7643: 0xa0000000,
-	0x7644: 0xa0000000, 0x7645: 0xa0000000, 0x7646: 0xa0000000, 0x7647: 0xa0000000,
-	0x7648: 0xa0000000, 0x7649: 0x40020020, 0x764a: 0x40020220, 0x764b: 0x40020420,
-	0x764c: 0x40020620, 0x764d: 0x40020820, 0x764e: 0xa0000000, 0x764f: 0xa0000000,
-	0x7650: 0xa0000000, 0x7651: 0xa0000000, 0x7652: 0xa0000000, 0x7653: 0xa0000000,
-	0x7654: 0xa0000000, 0x7655: 0xa0000000, 0x7656: 0xa0000000, 0x7657: 0xa0000000,
-	0x7658: 0xa0000000, 0x7659: 0xa0000000, 0x765a: 0xa0000000, 0x765b: 0xa0000000,
-	0x765c: 0xa0000000, 0x765d: 0xa0000000, 0x765e: 0xa0000000, 0x765f: 0xa0000000,
-	0x7660: 0x40021220, 0x7661: 0x4002ba20, 0x7662: 0x4003e020, 0x7663: 0x4004ea20,
-	0x7664: 0x4027de20, 0x7665: 0x4004ec20, 0x7666: 0x4004e620, 0x7667: 0x4003d220,
-	0x7668: 0x4003f420, 0x7669: 0x4003f620, 0x766a: 0x4004d820, 0x766b: 0x40093820,
-	0x766c: 0x40024020, 0x766d: 0x40021a20, 0x766e: 0x4002e420, 0x766f: 0x4004e220,
-	0x7670: 0x4029cc20, 0x7671: 0x4029ce20, 0x7672: 0x4029d020, 0x7673: 0x4029d220,
-	0x7674: 0x4029d420, 0x7675: 0x4029d620, 0x7676: 0x4029d820, 0x7677: 0x4029da20,
-	0x7678: 0x4029dc20, 0x7679: 0x4029de20, 0x767a: 0x40026c20, 0x767b: 0x40026220,
-	0x767c: 0x40094020, 0x767d: 0x40094220, 0x767e: 0x40094420, 0x767f: 0x4002c420,
-	// Block 0x1da, offset 0x7680
-	0x7680: 0x4004d620, 0x7681: 0x002bde88, 0x7682: 0x002c0a88, 0x7683: 0xc3590953,
-	0x7684: 0x002c6288, 0x7685: 0x002c9888, 0x7686: 0x002d0888, 0x7687: 0x002d2288,
-	0x7688: 0x002d6888, 0x7689: 0x002d9a88, 0x768a: 0x002dcc88, 0x768b: 0x002dfe88,
-	0x768c: 0xc0030002, 0x768d: 0x002e8288, 0x768e: 0x002e9e88, 0x768f: 0x002ee288,
-	0x7690: 0x002f2c88, 0x7691: 0x002f5688, 0x7692: 0xc35f0991, 0x7693: 0xc3430991,
-	0x7694: 0x00302c88, 0x7695: 0x00306c88, 0x7696: 0x0030be88, 0x7697: 0x0030e288,
-	0x7698: 0x0030f688, 0x7699: 0x00310088, 0x769a: 0xc3630991, 0x769b: 0x4003f820,
-	0x769c: 0x4004e420, 0x769d: 0x4003fa20, 0x769e: 0x40062420, 0x769f: 0x40021620,
-	0x76a0: 0x40061e20, 0x76a1: 0x402bde20, 0x76a2: 0x402c0a20, 0x76a3: 0xc3550953,
-	0x76a4: 0x402c6220, 0x76a5: 0x402c9820, 0x76a6: 0x402d0820, 0x76a7: 0x402d2220,
-	0x76a8: 0x402d6820, 0x76a9: 0x402d9a20, 0x76aa: 0x402dcc20, 0x76ab: 0x402dfe20,
-	0x76ac: 0xc0000002, 0x76ad: 0x402e8220, 0x76ae: 0x402e9e20, 0x76af: 0x402ee220,
-	0x76b0: 0x402f2c20, 0x76b1: 0x402f5620, 0x76b2: 0xc35d0991, 0x76b3: 0xc3410991,
-	0x76b4: 0x40302c20, 0x76b5: 0x40306c20, 0x76b6: 0x4030be20, 0x76b7: 0x4030e220,
-	0x76b8: 0x4030f620, 0x76b9: 0x40310020, 0x76ba: 0xc3610991, 0x76bb: 0x4003fc20,
-	0x76bc: 0x40094820, 0x76bd: 0x4003fe20, 0x76be: 0x40094c20, 0x76bf: 0xa0000000,
-	// Block 0x1db, offset 0x76c0
-	0x76c0: 0xe0000983, 0x76c1: 0xe0000980, 0x76c2: 0xe00008fb, 0x76c3: 0xe00008f8,
-	0x76c4: 0xe000097d, 0x76c5: 0xe000097a, 0x76c6: 0xe0000a38, 0x76c7: 0xe0000a35,
-	0x76c8: 0xe0000a3e, 0x76c9: 0xe0000a3b, 0x76ca: 0xe0000a4a, 0x76cb: 0xe0000a47,
-	0x76cc: 0x002c3c83, 0x76cd: 0x402c3c20, 0x76ce: 0xe0000a86, 0x76cf: 0xe0000a83,
-	0x76d0: 0xe0000aaa, 0x76d1: 0xe0000aa7, 0x76d2: 0xe0000b46, 0x76d3: 0xe0000b43,
-	0x76d4: 0xe0000aee, 0x76d5: 0xe0000aeb, 0x76d6: 0xe0000b2c, 0x76d7: 0xe0000b29,
-	0x76d8: 0xe0000b40, 0x76d9: 0xe0000b3d, 0x76da: 0xe0000b1a, 0x76db: 0xe0000b17,
-	0x76dc: 0xe0000bb8, 0x76dd: 0xe0000bb5, 0x76de: 0xe0000bb2, 0x76df: 0xe0000baf,
-	0x76e0: 0xe0000bc4, 0x76e1: 0xe0000bc1, 0x76e2: 0xe0000bca, 0x76e3: 0xe0000bc7,
-	0x76e4: 0xe0000bee, 0x76e5: 0xe0000beb, 0x76e6: 0xe0000c1b, 0x76e7: 0xe0000c18,
-	0x76e8: 0xe0000c51, 0x76e9: 0xe0000c4e, 0x76ea: 0xe0000c60, 0x76eb: 0xe0000c5d,
-	0x76ec: 0xe0000c31, 0x76ed: 0xe0000c2e, 0x76ee: 0xe0000c5a, 0x76ef: 0xe0000c57,
-	0x76f0: 0xe0000c54, 0x76f1: 0x402da220, 0x76f2: 0xf0000a0a, 0x76f3: 0xf0000404,
-	0x76f4: 0xe0000c8a, 0x76f5: 0xe0000c87, 0x76f6: 0xe0000c9f, 0x76f7: 0xe0000c9c,
-	0x76f8: 0x402f7220, 0x76f9: 0xe0000ccc, 0x76fa: 0xe0000cc9, 0x76fb: 0xe0000cd8,
-	0x76fc: 0xe0000cd5, 0x76fd: 0xe0000cd2, 0x76fe: 0xe0000ccf, 0x76ff: 0xe0000d04,
-	// Block 0x1dc, offset 0x7700
-	0x7700: 0xe0000cfe, 0x7701: 0xe0000cf8, 0x7702: 0xe0000cf5, 0x7703: 0xe0000d51,
-	0x7704: 0xe0000d4e, 0x7705: 0xe0000d6f, 0x7706: 0xe0000d6c, 0x7707: 0xe0000d5d,
-	0x7708: 0xe0000d5a, 0x7709: 0xf0000404, 0x770a: 0x002eda88, 0x770b: 0x402eda20,
-	0x770c: 0xe0000e2e, 0x770d: 0xe0000e2b, 0x770e: 0xe0000da0, 0x770f: 0xe0000d9d,
-	0x7710: 0xe0000de0, 0x7711: 0xe0000ddd, 0x7712: 0xe0000e93, 0x7713: 0xe0000e8f,
-	0x7714: 0xe0000eca, 0x7715: 0xe0000ec7, 0x7716: 0xe0000edc, 0x7717: 0xe0000ed9,
-	0x7718: 0x002f7c83, 0x7719: 0x402f7c20, 0x771a: 0xe0000f1f, 0x771b: 0xe0000f1c,
-	0x771c: 0xe0000f2d, 0x771d: 0xe0000f2a, 0x771e: 0xe0000f47, 0x771f: 0xe0000f44,
-	0x7720: 0x002fe883, 0x7721: 0x402fe820, 0x7722: 0xe0000f99, 0x7723: 0xe0000f96,
-	0x7724: 0xe0000f8a, 0x7725: 0xe0000f87, 0x7726: 0x00303688, 0x7727: 0x40303620,
-	0x7728: 0xe000102b, 0x7729: 0xe0001028, 0x772a: 0xe000103f, 0x772b: 0xe000103c,
-	0x772c: 0xe0000fe7, 0x772d: 0xe0000fe4, 0x772e: 0xe0000ff9, 0x772f: 0xe0000ff6,
-	0x7730: 0xe0001025, 0x7731: 0xe0001022, 0x7732: 0xe0001039, 0x7733: 0xe0001036,
-	0x7734: 0xe00010d8, 0x7735: 0xe00010d5, 0x7736: 0xe000110e, 0x7737: 0xe000110b,
-	0x7738: 0xe0001117, 0x7739: 0xe000113b, 0x773a: 0xe0001138, 0x773b: 0xe000114d,
-	0x773c: 0xe000114a, 0x773d: 0x00312c83, 0x773e: 0x40312c20, 0x773f: 0xe0000f64,
-	// Block 0x1dd, offset 0x7740
-	0x7740: 0xe0000d24, 0x7741: 0xe0000d21, 0x7742: 0xe0000d2a, 0x7743: 0xe0000d27,
-	0x7744: 0xe0000d69, 0x7745: 0xe0000d66, 0x7746: 0xe0000d7b, 0x7747: 0xe0000d78,
-	0x7748: 0xe0000d87, 0x7749: 0xe0000d84, 0x774a: 0xe0000d81, 0x774b: 0xe0000d7e,
-	0x774c: 0xe0000ded, 0x774d: 0xe0000de9, 0x774e: 0xe0000df5, 0x774f: 0xe0000df1,
-	0x7750: 0xe0000e3d, 0x7751: 0xe0000e39, 0x7752: 0xe0000e35, 0x7753: 0xe0000e31,
-	0x7754: 0xe0000ea7, 0x7755: 0xe0000ea4, 0x7756: 0xe0000ead, 0x7757: 0xe0000eaa,
-	0x7758: 0xe0000ed6, 0x7759: 0xe0000ed3, 0x775a: 0xe0000ef4, 0x775b: 0xe0000ef1,
-	0x775c: 0xe0000efb, 0x775d: 0xe0000ef7, 0x775e: 0xe0000f02, 0x775f: 0xe0000eff,
-	0x7760: 0xe0000f41, 0x7761: 0xe0000f3e, 0x7762: 0xe0000f53, 0x7763: 0xe0000f50,
-	0x7764: 0xe0000f26, 0x7765: 0xe0000f22, 0x7766: 0xe00025c3, 0x7767: 0xe00025c0,
-	0x7768: 0xe0000f5a, 0x7769: 0xe0000f56, 0x776a: 0xe0000f93, 0x776b: 0xe0000f90,
-	0x776c: 0xe0000f9f, 0x776d: 0xe0000f9c, 0x776e: 0xe0000fb1, 0x776f: 0xe0000fae,
-	0x7770: 0xe0000fab, 0x7771: 0xe0000fa8, 0x7772: 0xe0001093, 0x7773: 0xe0001090,
-	0x7774: 0xe000109f, 0x7775: 0xe000109c, 0x7776: 0xe0001099, 0x7777: 0xe0001096,
-	0x7778: 0xe0001032, 0x7779: 0xe000102e, 0x777a: 0xe0001046, 0x777b: 0xe0001042,
-	0x777c: 0xe00010a9, 0x777d: 0xe00010a6, 0x777e: 0xe00010af, 0x777f: 0xe00010ac,
-	// Block 0x1de, offset 0x7780
-	0x7780: 0xa0000000, 0x7781: 0xa0000000, 0x7782: 0xa0000000, 0x7783: 0xa0000000,
-	0x7784: 0xa0000000, 0x7785: 0xa0000000, 0x7786: 0xa0000000, 0x7787: 0xa0000000,
-	0x7788: 0xa0000000, 0x7789: 0x40020020, 0x778a: 0x40020220, 0x778b: 0x40020420,
-	0x778c: 0x40020620, 0x778d: 0x40020820, 0x778e: 0xa0000000, 0x778f: 0xa0000000,
-	0x7790: 0xa0000000, 0x7791: 0xa0000000, 0x7792: 0xa0000000, 0x7793: 0xa0000000,
-	0x7794: 0xa0000000, 0x7795: 0xa0000000, 0x7796: 0xa0000000, 0x7797: 0xa0000000,
-	0x7798: 0xa0000000, 0x7799: 0xa0000000, 0x779a: 0xa0000000, 0x779b: 0xa0000000,
-	0x779c: 0xa0000000, 0x779d: 0xa0000000, 0x779e: 0xa0000000, 0x779f: 0xa0000000,
-	0x77a0: 0x40021220, 0x77a1: 0x4002ba20, 0x77a2: 0x4003e020, 0x77a3: 0x4004ea20,
-	0x77a4: 0x4027de20, 0x77a5: 0x4004ec20, 0x77a6: 0x4004e620, 0x77a7: 0x4003d220,
-	0x77a8: 0x4003f420, 0x77a9: 0x4003f620, 0x77aa: 0x4004d820, 0x77ab: 0x40093820,
-	0x77ac: 0x40024020, 0x77ad: 0x40021a20, 0x77ae: 0x4002e420, 0x77af: 0x4004e220,
-	0x77b0: 0x4029cc20, 0x77b1: 0x4029ce20, 0x77b2: 0x4029d020, 0x77b3: 0x4029d220,
-	0x77b4: 0x4029d420, 0x77b5: 0x4029d620, 0x77b6: 0x4029d820, 0x77b7: 0x4029da20,
-	0x77b8: 0x4029dc20, 0x77b9: 0x4029de20, 0x77ba: 0x40026c20, 0x77bb: 0x40026220,
-	0x77bc: 0x40094020, 0x77bd: 0x40094220, 0x77be: 0x40094420, 0x77bf: 0x4002c420,
-	// Block 0x1df, offset 0x77c0
-	0x77c0: 0x4004d620, 0x77c1: 0x002bde88, 0x77c2: 0x002c0a88, 0x77c3: 0xc36509c2,
-	0x77c4: 0xc36a09f2, 0x77c5: 0x002c9888, 0x77c6: 0xc36f0a22, 0x77c7: 0x002d2288,
-	0x77c8: 0x002d6888, 0x77c9: 0x002d9a88, 0x77ca: 0x002dcc88, 0x77cb: 0x002dfe88,
-	0x77cc: 0xc37b0ac4, 0x77cd: 0x002e8288, 0x77ce: 0xc3740a52, 0x77cf: 0x002ee288,
-	0x77d0: 0xc38209c2, 0x77d1: 0x002f5688, 0x77d2: 0xc38509c2, 0x77d3: 0x002fe688,
-	0x77d4: 0xc38a09c2, 0x77d5: 0x00306c88, 0x77d6: 0x0030be88, 0x77d7: 0x0030e288,
-	0x77d8: 0x0030f688, 0x77d9: 0x00310088, 0x77da: 0x00312a88, 0x77db: 0x4003f820,
-	0x77dc: 0x4004e420, 0x77dd: 0x4003fa20, 0x77de: 0x40062420, 0x77df: 0x40021620,
-	0x77e0: 0x40061e20, 0x77e1: 0x402bde20, 0x77e2: 0x402c0a20, 0x77e3: 0xc33309b1,
-	0x77e4: 0xc36809e1, 0x77e5: 0x402c9820, 0x77e6: 0xc36d0a11, 0x77e7: 0x402d2220,
-	0x77e8: 0x402d6820, 0x77e9: 0x402d9a20, 0x77ea: 0x402dcc20, 0x77eb: 0x402dfe20,
-	0x77ec: 0xc3770a73, 0x77ed: 0x402e8220, 0x77ee: 0xc3720a41, 0x77ef: 0x402ee220,
-	0x77f0: 0xc38009b1, 0x77f1: 0x402f5620, 0x77f2: 0xc35d09b1, 0x77f3: 0x402fe620,
-	0x77f4: 0xc38809b1, 0x77f5: 0x40306c20, 0x77f6: 0x4030be20, 0x77f7: 0x4030e220,
-	0x77f8: 0x4030f620, 0x77f9: 0x40310020, 0x77fa: 0x40312a20, 0x77fb: 0x4003fc20,
-	0x77fc: 0x40094820, 0x77fd: 0x4003fe20, 0x77fe: 0x40094c20, 0x77ff: 0xa0000000,
-	// Block 0x1e0, offset 0x7800
-	0x7800: 0xa0000000, 0x7801: 0xa0000000, 0x7802: 0xa0000000, 0x7803: 0xa0000000,
-	0x7804: 0xa0000000, 0x7805: 0xa0000000, 0x7806: 0xa0000000, 0x7807: 0xa0000000,
-	0x7808: 0xa0000000, 0x7809: 0x40020020, 0x780a: 0x40020220, 0x780b: 0x40020420,
-	0x780c: 0x40020620, 0x780d: 0x40020820, 0x780e: 0xa0000000, 0x780f: 0xa0000000,
-	0x7810: 0xa0000000, 0x7811: 0xa0000000, 0x7812: 0xa0000000, 0x7813: 0xa0000000,
-	0x7814: 0xa0000000, 0x7815: 0xa0000000, 0x7816: 0xa0000000, 0x7817: 0xa0000000,
-	0x7818: 0xa0000000, 0x7819: 0xa0000000, 0x781a: 0xa0000000, 0x781b: 0xa0000000,
-	0x781c: 0xa0000000, 0x781d: 0xa0000000, 0x781e: 0xa0000000, 0x781f: 0xa0000000,
-	0x7820: 0x40021220, 0x7821: 0x4002ba20, 0x7822: 0x4003e020, 0x7823: 0x4004ea20,
-	0x7824: 0x4027de20, 0x7825: 0x4004ec20, 0x7826: 0x4004e620, 0x7827: 0x4003d220,
-	0x7828: 0x4003f420, 0x7829: 0x4003f620, 0x782a: 0x4004d820, 0x782b: 0x40093820,
-	0x782c: 0x40024020, 0x782d: 0x40021a20, 0x782e: 0x4002e420, 0x782f: 0x4004e220,
-	0x7830: 0x4029cc20, 0x7831: 0x4029ce20, 0x7832: 0x4029d020, 0x7833: 0x4029d220,
-	0x7834: 0x4029d420, 0x7835: 0x4029d620, 0x7836: 0x4029d820, 0x7837: 0x4029da20,
-	0x7838: 0x4029dc20, 0x7839: 0x4029de20, 0x783a: 0x40026c20, 0x783b: 0x40026220,
-	0x783c: 0x40094020, 0x783d: 0x40094220, 0x783e: 0x40094420, 0x783f: 0x4002c420,
-	// Block 0x1e1, offset 0x7840
-	0x7840: 0x4004d620, 0x7841: 0xc3970b93, 0x7842: 0x002c0a88, 0x7843: 0x002c3a88,
-	0x7844: 0x002c6288, 0x7845: 0xc39e0be1, 0x7846: 0x002d0888, 0x7847: 0x002d2288,
-	0x7848: 0x002d6888, 0x7849: 0x002d9a88, 0x784a: 0x002dcc88, 0x784b: 0x002dfe88,
-	0x784c: 0xc0030002, 0x784d: 0x002e8288, 0x784e: 0x002e9e88, 0x784f: 0xc3a30b21,
-	0x7850: 0x002f2c88, 0x7851: 0x002f5688, 0x7852: 0x002f7a88, 0x7853: 0x002fe688,
-	0x7854: 0x00302c88, 0x7855: 0xc3900b21, 0x7856: 0x0030be88, 0x7857: 0x0030e288,
-	0x7858: 0x0030f688, 0x7859: 0x00310088, 0x785a: 0x00312a88, 0x785b: 0x4003f820,
-	0x785c: 0x4004e420, 0x785d: 0x4003fa20, 0x785e: 0x40062420, 0x785f: 0x40021620,
-	0x7860: 0x40061e20, 0x7861: 0xc3930b52, 0x7862: 0x402c0a20, 0x7863: 0x402c3a20,
-	0x7864: 0x402c6220, 0x7865: 0xc39c0be1, 0x7866: 0x402d0820, 0x7867: 0x402d2220,
-	0x7868: 0x402d6820, 0x7869: 0x402d9a20, 0x786a: 0x402dcc20, 0x786b: 0x402dfe20,
-	0x786c: 0xc0000002, 0x786d: 0x402e8220, 0x786e: 0x402e9e20, 0x786f: 0xc3a00b21,
-	0x7870: 0x402f2c20, 0x7871: 0x402f5620, 0x7872: 0x402f7a20, 0x7873: 0x402fe620,
-	0x7874: 0x40302c20, 0x7875: 0xc38d0b21, 0x7876: 0x4030be20, 0x7877: 0x4030e220,
-	0x7878: 0x4030f620, 0x7879: 0x40310020, 0x787a: 0x40312a20, 0x787b: 0x4003fc20,
-	0x787c: 0x40094820, 0x787d: 0x4003fe20, 0x787e: 0x40094c20, 0x787f: 0xa0000000,
-	// Block 0x1e2, offset 0x7880
-	0x7880: 0xe00008f5, 0x7881: 0xe00008ef, 0x7882: 0xe0000921, 0x7883: 0xe0000969,
-	0x7884: 0x00320ca3, 0x7885: 0x00321083, 0x7886: 0x00320c83, 0x7887: 0xe0000a53,
-	0x7888: 0xe0000ae8, 0x7889: 0xe0000ae2, 0x788a: 0xe0000af4, 0x788b: 0xe0000b20,
-	0x788c: 0xe0000c2b, 0x788d: 0xe0000c25, 0x788e: 0xe0000c37, 0x788f: 0xe0000c43,
-	0x7890: 0x002c62c3, 0x7891: 0xe0000d63, 0x7892: 0xe0000d9a, 0x7893: 0xe0000d94,
-	0x7894: 0xe0000da6, 0x7895: 0xe0000de6, 0x7896: 0x00320ea3, 0x7897: 0x40093e20,
-	0x7898: 0x00320e83, 0x7899: 0xe0000fe1, 0x789a: 0xe0000fdb, 0x789b: 0xe0000fed,
-	0x789c: 0x003100a3, 0x789d: 0xe0001102, 0x789e: 0xe00025cc, 0x789f: 0xe0000f7b,
-	0x78a0: 0xe00008f2, 0x78a1: 0xe00008ec, 0x78a2: 0xe000091e, 0x78a3: 0xe0000966,
-	0x78a4: 0x40320c21, 0x78a5: 0x40321020, 0x78a6: 0x40320c20, 0x78a7: 0xe0000a4d,
-	0x78a8: 0xe0000ae5, 0x78a9: 0xe0000adf, 0x78aa: 0xe0000af1, 0x78ab: 0xe0000b1d,
-	0x78ac: 0xe0000c28, 0x78ad: 0xe0000c22, 0x78ae: 0xe0000c34, 0x78af: 0xe0000c40,
-	0x78b0: 0x402c6222, 0x78b1: 0xe0000d60, 0x78b2: 0xe0000d97, 0x78b3: 0xe0000d91,
-	0x78b4: 0xe0000da3, 0x78b5: 0xe0000de3, 0x78b6: 0x40320e21, 0x78b7: 0x40093c20,
-	0x78b8: 0x40320e20, 0x78b9: 0xe0000fde, 0x78ba: 0xe0000fd8, 0x78bb: 0xe0000fea,
-	0x78bc: 0x40310021, 0x78bd: 0xe00010ff, 0x78be: 0xe00025c9, 0x78bf: 0xe0001114,
-	// Block 0x1e3, offset 0x78c0
-	0x78c0: 0xe0000983, 0x78c1: 0xe0000980, 0x78c2: 0xe00008fb, 0x78c3: 0xe00008f8,
-	0x78c4: 0xe000097d, 0x78c5: 0xe000097a, 0x78c6: 0xe0000a38, 0x78c7: 0xe0000a35,
-	0x78c8: 0xe0000a3e, 0x78c9: 0xe0000a3b, 0x78ca: 0xe0000a4a, 0x78cb: 0xe0000a47,
-	0x78cc: 0xe0000a44, 0x78cd: 0xe0000a41, 0x78ce: 0xe0000a86, 0x78cf: 0xe0000a83,
-	0x78d0: 0x002c62a3, 0x78d1: 0x402c6221, 0x78d2: 0xe0000b46, 0x78d3: 0xe0000b43,
-	0x78d4: 0xe0000aee, 0x78d5: 0xe0000aeb, 0x78d6: 0xe0000b2c, 0x78d7: 0xe0000b29,
-	0x78d8: 0x00320cc3, 0x78d9: 0x40320c22, 0x78da: 0xe0000b1a, 0x78db: 0xe0000b17,
-	0x78dc: 0xe0000bb8, 0x78dd: 0xe0000bb5, 0x78de: 0xe0000bb2, 0x78df: 0xe0000baf,
-	0x78e0: 0xe0000bc4, 0x78e1: 0xe0000bc1, 0x78e2: 0xe0000bca, 0x78e3: 0xe0000bc7,
-	0x78e4: 0xe0000bee, 0x78e5: 0xe0000beb, 0x78e6: 0xe0000c1b, 0x78e7: 0xe0000c18,
-	0x78e8: 0xe0000c51, 0x78e9: 0xe0000c4e, 0x78ea: 0xe0000c60, 0x78eb: 0xe0000c5d,
-	0x78ec: 0xe0000c31, 0x78ed: 0xe0000c2e, 0x78ee: 0xe0000c5a, 0x78ef: 0xe0000c57,
-	0x78f0: 0xe0000c54, 0x78f1: 0x402da220, 0x78f2: 0xf0000a0a, 0x78f3: 0xf0000404,
-	0x78f4: 0xe0000c8a, 0x78f5: 0xe0000c87, 0x78f6: 0xe0000c9f, 0x78f7: 0xe0000c9c,
-	0x78f8: 0x402f7220, 0x78f9: 0xe0000ccc, 0x78fa: 0xe0000cc9, 0x78fb: 0xe0000cd8,
-	0x78fc: 0xe0000cd5, 0x78fd: 0xe0000cd2, 0x78fe: 0xe0000ccf, 0x78ff: 0xe0000d04,
-	// Block 0x1e4, offset 0x7900
-	0x7900: 0xe0000cfe, 0x7901: 0xe0000cf8, 0x7902: 0xe0000cf5, 0x7903: 0xe0000d51,
-	0x7904: 0xe0000d4e, 0x7905: 0xe0000d6f, 0x7906: 0xe0000d6c, 0x7907: 0xe0000d5d,
-	0x7908: 0xe0000d5a, 0x7909: 0xf0000404, 0x790a: 0x002eda88, 0x790b: 0x402eda20,
-	0x790c: 0xe0000e2e, 0x790d: 0xe0000e2b, 0x790e: 0xe0000da0, 0x790f: 0xe0000d9d,
-	0x7910: 0x00320ec3, 0x7911: 0x40320e22, 0x7912: 0x00320ee3, 0x7913: 0x40320e23,
-	0x7914: 0xe0000eca, 0x7915: 0xe0000ec7, 0x7916: 0xe0000edc, 0x7917: 0xe0000ed9,
-	0x7918: 0xe0000ed0, 0x7919: 0xe0000ecd, 0x791a: 0xe0000f1f, 0x791b: 0xe0000f1c,
-	0x791c: 0xe0000f2d, 0x791d: 0xe0000f2a, 0x791e: 0xe0000f47, 0x791f: 0xe0000f44,
-	0x7920: 0xe0000f33, 0x7921: 0xe0000f30, 0x7922: 0xe0000f99, 0x7923: 0xe0000f96,
-	0x7924: 0xe0000f8a, 0x7925: 0xe0000f87, 0x7926: 0x00303688, 0x7927: 0x40303620,
-	0x7928: 0xe000102b, 0x7929: 0xe0001028, 0x792a: 0xe000103f, 0x792b: 0xe000103c,
-	0x792c: 0xe0000fe7, 0x792d: 0xe0000fe4, 0x792e: 0xe0000ff9, 0x792f: 0xe0000ff6,
-	0x7930: 0x003100c3, 0x7931: 0x40310022, 0x7932: 0xe0001039, 0x7933: 0xe0001036,
-	0x7934: 0xe00010d8, 0x7935: 0xe00010d5, 0x7936: 0xe000110e, 0x7937: 0xe000110b,
-	0x7938: 0xe0001117, 0x7939: 0xe000113b, 0x793a: 0xe0001138, 0x793b: 0xe000114d,
-	0x793c: 0xe000114a, 0x793d: 0xe0001147, 0x793e: 0xe0001144, 0x793f: 0xe0000f64,
-	// Block 0x1e5, offset 0x7940
-	0x7940: 0x40321220, 0x7941: 0x40321a20, 0x7942: 0x40322220, 0x7943: 0x40322a20,
-	0x7944: 0xe0000ad5, 0x7945: 0xe0000ad1, 0x7946: 0xe0000acd, 0x7947: 0xf0000a0a,
-	0x7948: 0xf000040a, 0x7949: 0xf0000404, 0x794a: 0xf0000a0a, 0x794b: 0xf000040a,
-	0x794c: 0xf0000404, 0x794d: 0xe0000947, 0x794e: 0xe0000944, 0x794f: 0xe0000c3d,
-	0x7950: 0xe0000c3a, 0x7951: 0xe0000dcc, 0x7952: 0xe0000dc9, 0x7953: 0xe0000ff3,
-	0x7954: 0xe0000ff0, 0x7955: 0xe00025e4, 0x7956: 0xe00025e1, 0x7957: 0xe00025d2,
-	0x7958: 0xe00025cf, 0x7959: 0xe00025de, 0x795a: 0xe00025db, 0x795b: 0xe00025d8,
-	0x795c: 0xe00025d5, 0x795d: 0x402cae20, 0x795e: 0xe00025f6, 0x795f: 0xe00025f3,
-	0x7960: 0xe0000976, 0x7961: 0xe0000972, 0x7962: 0xe00025f0, 0x7963: 0xe00025ed,
-	0x7964: 0x002d3a88, 0x7965: 0x402d3a20, 0x7966: 0xe0000bbe, 0x7967: 0xe0000bbb,
-	0x7968: 0xe0000c99, 0x7969: 0xe0000c96, 0x796a: 0xe0000e20, 0x796b: 0xe0000e1d,
-	0x796c: 0xe0000e27, 0x796d: 0xe0000e23, 0x796e: 0xe0001162, 0x796f: 0xe000115f,
-	0x7970: 0xe0000c8d, 0x7971: 0xf0000a0a, 0x7972: 0xf000040a, 0x7973: 0xf0000404,
-	0x7974: 0xe0000bac, 0x7975: 0xe0000ba9, 0x7976: 0x002d7888, 0x7977: 0x00319488,
-	0x7978: 0xe0000d57, 0x7979: 0xe0000d54, 0x797a: 0xe000260e, 0x797b: 0xe000260b,
-	0x797c: 0xe00025ea, 0x797d: 0xe00025e7, 0x797e: 0xe00025fc, 0x797f: 0xe00025f9,
-	// Block 0x1e6, offset 0x7980
-	0x7980: 0xe000098f, 0x7981: 0xe000098c, 0x7982: 0xe0000995, 0x7983: 0xe0000992,
-	0x7984: 0xe0000b62, 0x7985: 0xe0000b5f, 0x7986: 0xe0000b68, 0x7987: 0xe0000b65,
-	0x7988: 0xe0000c6c, 0x7989: 0xe0000c69, 0x798a: 0xe0000c72, 0x798b: 0xe0000c6f,
-	0x798c: 0xe0000e4a, 0x798d: 0xe0000e47, 0x798e: 0xe0000e50, 0x798f: 0xe0000e4d,
-	0x7990: 0xe0000ee8, 0x7991: 0xe0000ee5, 0x7992: 0xe0000eee, 0x7993: 0xe0000eeb,
-	0x7994: 0xe0001053, 0x7995: 0xe0001050, 0x7996: 0xe0001059, 0x7997: 0xe0001056,
-	0x7998: 0xe0000f61, 0x7999: 0xe0000f5e, 0x799a: 0xe0000fa5, 0x799b: 0xe0000fa2,
-	0x799c: 0x00312288, 0x799d: 0x40312220, 0x799e: 0xe0000bf4, 0x799f: 0xe0000bf1,
-	0x79a0: 0x002ebc88, 0x79a1: 0x402c8c20, 0x79a2: 0x002f2288, 0x79a3: 0x402f2220,
-	0x79a4: 0x00314088, 0x79a5: 0x40314020, 0x79a6: 0xe000096f, 0x79a7: 0xe000096c,
-	0x79a8: 0xe0000b32, 0x79a9: 0xe0000b2f, 0x79aa: 0xe0002608, 0x79ab: 0xe0002605,
-	0x79ac: 0xe0000dfd, 0x79ad: 0xe0000df9, 0x79ae: 0xe0000e04, 0x79af: 0xe0000e01,
-	0x79b0: 0xe0000e0b, 0x79b1: 0xe0000e07, 0x79b2: 0xe0001129, 0x79b3: 0xe0001126,
-	0x79b4: 0x402e5e20, 0x79b5: 0x402ed020, 0x79b6: 0x40305a20, 0x79b7: 0x402dd420,
-	0x79b8: 0xe0000abf, 0x79b9: 0xe0000ec4, 0x79ba: 0x002be888, 0x79bb: 0x002c4488,
-	0x79bc: 0x402c4420, 0x79bd: 0x002e3888, 0x79be: 0x00303e88, 0x79bf: 0x402ffc20,
-	// Block 0x1e7, offset 0x79c0
-	0x79c0: 0x402c2820, 0x79c1: 0x402c7020, 0x79c2: 0x402d1420, 0x79c3: 0x402d4220,
-	0x79c4: 0x402e0820, 0x79c5: 0x402e5220, 0x79c6: 0x402e8e20, 0x79c7: 0x402ec620,
-	0x79c8: 0x402f3c20, 0x79c9: 0x402faa20, 0x79ca: 0x402ff220, 0x79cb: 0x40301020,
-	0x79cc: 0x4030ca20, 0x79cd: 0x4030fe20, 0x79ce: 0x40313e20, 0x79cf: 0x402bea20,
-	0x79d0: 0x402c0020, 0x79d1: 0x402c8220, 0x79d2: 0x402caa20, 0x79d3: 0x402cca20,
-	0x79d4: 0x402ce420, 0x79d5: 0x402cc020, 0x79d6: 0x402dc020, 0x79d7: 0x402f0620,
-	0x79d8: 0x40302220, 0x79d9: 0x40308620, 0x79da: 0x40317620, 0x79db: 0x002c0294,
-	0x79dc: 0x002c3a94, 0x79dd: 0x002c5694, 0x79de: 0xe00025c6, 0x79df: 0x002cdc94,
-	0x79e0: 0x002d0894, 0x79e1: 0x002dee94, 0x79e2: 0x002d2a94, 0x79e3: 0x00308894,
-	0x79e4: 0x002db694, 0x79e5: 0x002dc294, 0x79e6: 0x002daa94, 0x79e7: 0x002dbe94,
-	0x79e8: 0x002de694, 0x79e9: 0x002e5494, 0x79ea: 0x002e5294, 0x79eb: 0x002e2a94,
-	0x79ec: 0x002e9094, 0x79ed: 0x0030ac94, 0x79ee: 0x002eb494, 0x79ef: 0x002ec894,
-	0x79f0: 0x002ea694, 0x79f1: 0x002f1094, 0x79f2: 0x002f4c94, 0x79f3: 0x002ff494,
-	0x79f4: 0x00300894, 0x79f5: 0x00304294, 0x79f6: 0x00307c94, 0x79f7: 0x0030b494,
-	0x79f8: 0x00307494, 0x79f9: 0x0030cc94, 0x79fa: 0x0030da94, 0x79fb: 0x00312a94,
-	0x79fc: 0x00314894, 0x79fd: 0x00315094, 0x79fe: 0x00316494, 0x79ff: 0x00326a94,
-	// Block 0x1e8, offset 0x7a00
-	0x7a00: 0xe0000d24, 0x7a01: 0xe0000d21, 0x7a02: 0xe0000d2a, 0x7a03: 0xe0000d27,
-	0x7a04: 0xe0000d69, 0x7a05: 0xe0000d66, 0x7a06: 0xe0000d7b, 0x7a07: 0xe0000d78,
-	0x7a08: 0xe0000d87, 0x7a09: 0xe0000d84, 0x7a0a: 0xe0000d81, 0x7a0b: 0xe0000d7e,
-	0x7a0c: 0xe0000ded, 0x7a0d: 0xe0000de9, 0x7a0e: 0xe0002602, 0x7a0f: 0xe00025ff,
-	0x7a10: 0xe0000e3d, 0x7a11: 0xe0000e39, 0x7a12: 0xe0000e35, 0x7a13: 0xe0000e31,
-	0x7a14: 0xe0000ea7, 0x7a15: 0xe0000ea4, 0x7a16: 0xe0000ead, 0x7a17: 0xe0000eaa,
-	0x7a18: 0xe0000ed6, 0x7a19: 0xe0000ed3, 0x7a1a: 0xe0000ef4, 0x7a1b: 0xe0000ef1,
-	0x7a1c: 0xe0000efb, 0x7a1d: 0xe0000ef7, 0x7a1e: 0xe0000f02, 0x7a1f: 0xe0000eff,
-	0x7a20: 0xe0000f41, 0x7a21: 0xe0000f3e, 0x7a22: 0xe0000f53, 0x7a23: 0xe0000f50,
-	0x7a24: 0xe0000f26, 0x7a25: 0xe0000f22, 0x7a26: 0xe0000f3a, 0x7a27: 0xe0000f36,
-	0x7a28: 0xe0000f5a, 0x7a29: 0xe0000f56, 0x7a2a: 0xe0000f93, 0x7a2b: 0xe0000f90,
-	0x7a2c: 0xe0000f9f, 0x7a2d: 0xe0000f9c, 0x7a2e: 0xe0000fb1, 0x7a2f: 0xe0000fae,
-	0x7a30: 0xe0000fab, 0x7a31: 0xe0000fa8, 0x7a32: 0xe0001093, 0x7a33: 0xe0001090,
-	0x7a34: 0xe000109f, 0x7a35: 0xe000109c, 0x7a36: 0xe0001099, 0x7a37: 0xe0001096,
-	0x7a38: 0xe0001032, 0x7a39: 0xe000102e, 0x7a3a: 0xe00025e4, 0x7a3b: 0xe00025e1,
-	0x7a3c: 0xe00010a9, 0x7a3d: 0xe00010a6, 0x7a3e: 0xe00010af, 0x7a3f: 0xe00010ac,
-	// Block 0x1e9, offset 0x7a40
-	0x7a40: 0xe00009bc, 0x7a41: 0xe00009c0, 0x7a42: 0x002c3a8b, 0x7a43: 0xf0000a04,
-	0x7a44: 0x40081c20, 0x7a45: 0xe0000a5e, 0x7a46: 0xe0000a62, 0x7a47: 0x002cc28a,
-	0x7a48: 0x40081e20, 0x7a49: 0xf0000a04, 0x7a4a: 0x002d2285, 0x7a4b: 0x002d688b,
-	0x7a4c: 0x002d688b, 0x7a4d: 0x002d688b, 0x7a4e: 0x002d6885, 0x7a4f: 0xf0000202,
-	0x7a50: 0x002d9a8b, 0x7a51: 0x002d9a8b, 0x7a52: 0x002e228b, 0x7a53: 0x002e2285,
-	0x7a54: 0x40082020, 0x7a55: 0x002e9e8b, 0x7a56: 0xf000040a, 0x7a57: 0x40082220,
-	0x7a58: 0x40082420, 0x7a59: 0x002f2c8b, 0x7a5a: 0x002f568b, 0x7a5b: 0x002f7a8b,
-	0x7a5c: 0x002f7a8b, 0x7a5d: 0x002f7a8b, 0x7a5e: 0x40082620, 0x7a5f: 0x40082820,
-	0x7a60: 0xf0001414, 0x7a61: 0xe0000fbd, 0x7a62: 0xf0001414, 0x7a63: 0x40082a20,
-	0x7a64: 0x00312a8b, 0x7a65: 0x40082c20, 0x7a66: 0x0032a288, 0x7a67: 0x40082e20,
-	0x7a68: 0x00312a8b, 0x7a69: 0x40083020, 0x7a6a: 0x002dfe88, 0x7a6b: 0x00321083,
-	0x7a6c: 0x002c0a8b, 0x7a6d: 0x002c3a8b, 0x7a6e: 0x40083220, 0x7a6f: 0x002c9885,
-	0x7a70: 0x002c988b, 0x7a71: 0x002d088b, 0x7a72: 0x002d1e88, 0x7a73: 0x002e828b,
-	0x7a74: 0x002ee285, 0x7a75: 0x00389084, 0x7a76: 0x00389284, 0x7a77: 0x00389484,
-	0x7a78: 0x00389684, 0x7a79: 0x002d9a85, 0x7a7a: 0x40083420, 0x7a7b: 0xe0000b95,
-	0x7a7c: 0x00327e85, 0x7a7d: 0x00325685, 0x7a7e: 0x0032568b, 0x7a7f: 0x00327e8b,
-	// Block 0x1ea, offset 0x7a80
-	0x7a80: 0x40078220, 0x7a81: 0x40075e20, 0x7a82: 0x40076020, 0x7a83: 0x40076220,
-	0x7a84: 0x40058220, 0x7a85: 0x40058420, 0x7a86: 0x40058620, 0x7a87: 0x40058820,
-	0x7a88: 0x40058a20, 0x7a89: 0x40058c20, 0x7a8a: 0x40058e20, 0x7a8b: 0x4027bc20,
-	0x7a8c: 0x0027bc83, 0x7a8d: 0x4027bc21, 0x7a8e: 0x4027bc22, 0x7a8f: 0x4027bc23,
-	0x7a90: 0x4027bc24, 0x7a91: 0x4027bc25, 0x7a92: 0x4005a020, 0x7a93: 0x40076420,
-	0x7a94: 0x4027bc26, 0x7a95: 0x40076620, 0x7a96: 0x40076820, 0x7a97: 0x40076a20,
-	0x7a98: 0xadc00000, 0x7a99: 0xadc00000, 0x7a9a: 0x40076c20, 0x7a9b: 0x40076e20,
-	0x7a9c: 0x40077020, 0x7a9d: 0x40077220, 0x7a9e: 0x40077420, 0x7a9f: 0x40077620,
-	0x7aa0: 0xe00001a0, 0x7aa1: 0xe0000234, 0x7aa2: 0xe000034c, 0x7aa3: 0xe0000426,
-	0x7aa4: 0xe00004fb, 0x7aa5: 0xe00005c5, 0x7aa6: 0xe0000690, 0x7aa7: 0xe0000738,
-	0x7aa8: 0xe00007e4, 0x7aa9: 0xe0000889, 0x7aaa: 0xe0000237, 0x7aab: 0xe000034f,
-	0x7aac: 0xe0000429, 0x7aad: 0xe00004fe, 0x7aae: 0xe00005c8, 0x7aaf: 0xe0000693,
-	0x7ab0: 0xe000073b, 0x7ab1: 0xe00007e7, 0x7ab2: 0xe000088c, 0x7ab3: 0xe00001a3,
-	0x7ab4: 0x4027bc27, 0x7ab5: 0xadc00000, 0x7ab6: 0x40077a20, 0x7ab7: 0xadc00000,
-	0x7ab8: 0x40077c20, 0x7ab9: 0xae611002, 0x7aba: 0x40040020, 0x7abb: 0x40040220,
-	0x7abc: 0x40040420, 0x7abd: 0x40040620, 0x7abe: 0xa0000000, 0x7abf: 0xa0000000,
-	// Block 0x1eb, offset 0x7ac0
-	0x7ac0: 0x404a7620, 0x7ac1: 0x404a7c20, 0x7ac2: 0xc4cf2161, 0x7ac3: 0xe0002632,
-	0x7ac4: 0x404a8420, 0x7ac5: 0x404a8820, 0x7ac6: 0x404a8c20, 0x7ac7: 0x404a9020,
-	0x7ac9: 0x404a9420, 0x7aca: 0x004aa883, 0x7acb: 0x004aac83,
-	0x7acc: 0x004ab083, 0x7acd: 0xe000266a, 0x7ace: 0x004ab483, 0x7acf: 0x404aa820,
-	0x7ad0: 0x404aac20, 0x7ad1: 0xc3a90c31, 0x7ad2: 0xe0002667, 0x7ad3: 0x404ab420,
-	0x7ad4: 0x404ab820, 0x7ad5: 0x404abc20, 0x7ad6: 0xc3f31211, 0x7ad7: 0xe000268b,
-	0x7ad8: 0xc45418e1, 0x7ad9: 0x404ac820, 0x7ada: 0x404acc20, 0x7adb: 0x404ad020,
-	0x7adc: 0xe00026ac, 0x7add: 0x404ad420, 0x7ade: 0x404ad820, 0x7adf: 0x404adc20,
-	0x7ae0: 0xc48f1d01, 0x7ae1: 0x404ae420, 0x7ae2: 0xc43c1761, 0x7ae3: 0xc4491831,
-	0x7ae4: 0x404af220, 0x7ae5: 0x004af283, 0x7ae6: 0xc4831c51, 0x7ae7: 0x404afe20,
-	0x7ae8: 0x404b0220, 0x7ae9: 0xe0002611, 0x7aea: 0x004ae883, 0x7aeb: 0x404a7a20,
-	0x7aec: 0x404aec20,
-	0x7af1: 0xc51b0751, 0x7af2: 0x8282258c, 0x7af3: 0x8281258d,
-	0x7af4: 0x82842590, 0x7af5: 0x82812591, 0x7af6: 0x404b2420, 0x7af7: 0x404b2620,
-	0x7af8: 0x404b2820, 0x7af9: 0x404b2a20, 0x7afa: 0x82822596, 0x7afb: 0x83822596,
-	0x7afc: 0x82822598, 0x7afd: 0x83822598, 0x7afe: 0x004ac483, 0x7aff: 0xae611102,
-	// Block 0x1ec, offset 0x7b00
-	0x7b00: 0x8382258c, 0x7b01: 0x8281258f, 0x7b02: 0x004ac484, 0x7b03: 0x004ac485,
-	0x7b04: 0xae610e02, 0x7b05: 0xae611202, 0x7b06: 0xae600000, 0x7b07: 0xae600000,
-	0x7b08: 0xc3a60c01, 0x7b09: 0xc5062551, 0x7b0a: 0xae611502, 0x7b0b: 0xc5042521,
-	0x7b0c: 0x404b0e20, 0x7b0d: 0x404b0820, 0x7b0e: 0x404b0c20, 0x7b0f: 0x404b1020,
-	0x7b10: 0x82822599, 0x7b11: 0x8282259a, 0x7b12: 0x8282259b, 0x7b13: 0xe00026d6,
-	0x7b14: 0x8282259c, 0x7b15: 0x8282259d, 0x7b16: 0x8282259e, 0x7b17: 0x8282259f,
-	0x7b19: 0x828225a0, 0x7b1a: 0x838225a1, 0x7b1b: 0x838225a2,
-	0x7b1c: 0x838225a3, 0x7b1d: 0xe00026dc, 0x7b1e: 0x838225a4, 0x7b1f: 0x828225a1,
-	0x7b20: 0x828225a2, 0x7b21: 0x828225a3, 0x7b22: 0xe00026d9, 0x7b23: 0x828225a4,
-	0x7b24: 0x828225a5, 0x7b25: 0x828225a6, 0x7b26: 0x828225a7, 0x7b27: 0xe00026df,
-	0x7b28: 0x828225a8, 0x7b29: 0x828225a9, 0x7b2a: 0x828225aa, 0x7b2b: 0x828225ab,
-	0x7b2c: 0xe00026e2, 0x7b2d: 0x828225ac, 0x7b2e: 0x828225ad, 0x7b2f: 0x828225ae,
-	0x7b30: 0x828225af, 0x7b31: 0x828225b0, 0x7b32: 0xc5092581, 0x7b33: 0xc5122581,
-	0x7b34: 0x828225b3, 0x7b35: 0x838225b3, 0x7b36: 0x828225b4, 0x7b37: 0x828225b5,
-	0x7b38: 0x828225b6, 0x7b39: 0xe00026d3, 0x7b3a: 0x838225ac, 0x7b3b: 0x838225b0,
-	0x7b3c: 0x838225b1, 0x7b3e: 0x40077e20, 0x7b3f: 0x40078020,
-	// Block 0x1ed, offset 0x7b40
-	0x7b40: 0xa0000000, 0x7b41: 0xa0000000, 0x7b42: 0xa0000000, 0x7b43: 0xa0000000,
-	0x7b44: 0xa0000000, 0x7b45: 0xa0000000, 0x7b46: 0xa0000000, 0x7b47: 0xa0000000,
-	0x7b48: 0xa0000000, 0x7b49: 0x40020020, 0x7b4a: 0x40020220, 0x7b4b: 0x40020420,
-	0x7b4c: 0x40020620, 0x7b4d: 0x40020820, 0x7b4e: 0xa0000000, 0x7b4f: 0xa0000000,
-	0x7b50: 0xa0000000, 0x7b51: 0xa0000000, 0x7b52: 0xa0000000, 0x7b53: 0xa0000000,
-	0x7b54: 0xa0000000, 0x7b55: 0xa0000000, 0x7b56: 0xa0000000, 0x7b57: 0xa0000000,
-	0x7b58: 0xa0000000, 0x7b59: 0xa0000000, 0x7b5a: 0xa0000000, 0x7b5b: 0xa0000000,
-	0x7b5c: 0xa0000000, 0x7b5d: 0xa0000000, 0x7b5e: 0xa0000000, 0x7b5f: 0xa0000000,
-	0x7b60: 0x40021220, 0x7b61: 0x4002ba20, 0x7b62: 0x4003e020, 0x7b63: 0x4004ea20,
-	0x7b64: 0x4027de20, 0x7b65: 0x4004ec20, 0x7b66: 0x4004e620, 0x7b67: 0x4003d220,
-	0x7b68: 0x4003f420, 0x7b69: 0x4003f620, 0x7b6a: 0x4004d820, 0x7b6b: 0x40093820,
-	0x7b6c: 0x40024020, 0x7b6d: 0x40021a20, 0x7b6e: 0x4002e420, 0x7b6f: 0x4004e220,
-	0x7b70: 0x4029cc20, 0x7b71: 0x4029ce20, 0x7b72: 0x4029d020, 0x7b73: 0x4029d220,
-	0x7b74: 0x4029d420, 0x7b75: 0x4029d620, 0x7b76: 0x4029d820, 0x7b77: 0x4029da20,
-	0x7b78: 0x4029dc20, 0x7b79: 0x4029de20, 0x7b7a: 0x40026c20, 0x7b7b: 0x40026220,
-	0x7b7c: 0x40094020, 0x7b7d: 0x40094220, 0x7b7e: 0x40094420, 0x7b7f: 0x4002c420,
-	// Block 0x1ee, offset 0x7b80
-	0x7b80: 0x4004d620, 0x7b81: 0x002bde88, 0x7b82: 0x002c0a88, 0x7b83: 0x002c3a88,
-	0x7b84: 0xc36a2662, 0x7b85: 0x002c9888, 0x7b86: 0x002d0888, 0x7b87: 0xc51f2692,
-	0x7b88: 0x002d6888, 0x7b89: 0x002d9a88, 0x7b8a: 0x002dcc88, 0x7b8b: 0xc52426c2,
-	0x7b8c: 0xc0030002, 0x7b8d: 0x002e8288, 0x7b8e: 0xc52926f2, 0x7b8f: 0x002ee288,
-	0x7b90: 0x002f2c88, 0x7b91: 0x002f5688, 0x7b92: 0x002f7a88, 0x7b93: 0x002fe688,
-	0x7b94: 0xc38a2722, 0x7b95: 0x00306c88, 0x7b96: 0x0030be88, 0x7b97: 0x0030e288,
-	0x7b98: 0x002d6a83, 0x7b99: 0x00310088, 0x7b9a: 0x00312a88, 0x7b9b: 0x4003f820,
-	0x7b9c: 0x4004e420, 0x7b9d: 0x4003fa20, 0x7b9e: 0x40062420, 0x7b9f: 0x40021620,
-	0x7ba0: 0x40061e20, 0x7ba1: 0x402bde20, 0x7ba2: 0x402c0a20, 0x7ba3: 0x402c3a20,
-	0x7ba4: 0xc3682651, 0x7ba5: 0x402c9820, 0x7ba6: 0x402d0820, 0x7ba7: 0xc3372681,
-	0x7ba8: 0x402d6820, 0x7ba9: 0x402d9a20, 0x7baa: 0x402dcc20, 0x7bab: 0xc52226b1,
-	0x7bac: 0xc0000002, 0x7bad: 0x402e8220, 0x7bae: 0xc52726e1, 0x7baf: 0x402ee220,
-	0x7bb0: 0x402f2c20, 0x7bb1: 0x402f5620, 0x7bb2: 0x402f7a20, 0x7bb3: 0x402fe620,
-	0x7bb4: 0xc3882711, 0x7bb5: 0x40306c20, 0x7bb6: 0x4030be20, 0x7bb7: 0x4030e220,
-	0x7bb8: 0x402d6a20, 0x7bb9: 0x40310020, 0x7bba: 0x40312a20, 0x7bbb: 0x4003fc20,
-	0x7bbc: 0x40094820, 0x7bbd: 0x4003fe20, 0x7bbe: 0x40094c20, 0x7bbf: 0xa0000000,
-	// Block 0x1ef, offset 0x7bc0
-	0x7bc0: 0xe00008f5, 0x7bc1: 0xe00008ef, 0x7bc2: 0xe00026e8, 0x7bc3: 0xe0000969,
-	0x7bc4: 0xe000095b, 0x7bc5: 0xe000094d, 0x7bc6: 0xe00009dd, 0x7bc7: 0xe0000a53,
-	0x7bc8: 0xe0000ae8, 0x7bc9: 0xe0000ae2, 0x7bca: 0xe000271c, 0x7bcb: 0xe0000b20,
-	0x7bcc: 0xe0000c2b, 0x7bcd: 0xe0000c25, 0x7bce: 0xe0002756, 0x7bcf: 0xe0000c43,
-	0x7bd0: 0xe0000ab3, 0x7bd1: 0xe0000d63, 0x7bd2: 0xe0000d9a, 0x7bd3: 0xe0000d94,
-	0x7bd4: 0xe0002762, 0x7bd5: 0xe0000de6, 0x7bd6: 0xe0000dd2, 0x7bd7: 0x40093e20,
-	0x7bd8: 0xe0000e12, 0x7bd9: 0xe0000fe1, 0x7bda: 0xe0000fdb, 0x7bdb: 0xe0002796,
-	0x7bdc: 0xe0000fff, 0x7bdd: 0xe0001102, 0x7bde: 0x00318888, 0x7bdf: 0xe0000f7b,
-	0x7be0: 0xe00008f2, 0x7be1: 0xe00008ec, 0x7be2: 0xe00026e5, 0x7be3: 0xe0000966,
-	0x7be4: 0xe0000958, 0x7be5: 0xe000094a, 0x7be6: 0xe00009d5, 0x7be7: 0xe0000a4d,
-	0x7be8: 0xe0000ae5, 0x7be9: 0xe0000adf, 0x7bea: 0xe0002719, 0x7beb: 0xe0000b1d,
-	0x7bec: 0xe0000c28, 0x7bed: 0xe0000c22, 0x7bee: 0xe0002753, 0x7bef: 0xe0000c40,
-	0x7bf0: 0xe0000aad, 0x7bf1: 0xe0000d60, 0x7bf2: 0xe0000d97, 0x7bf3: 0xe0000d91,
-	0x7bf4: 0xe000275f, 0x7bf5: 0xe0000de3, 0x7bf6: 0xe0000dcf, 0x7bf7: 0x40093c20,
-	0x7bf8: 0xe0000e0f, 0x7bf9: 0xe0000fde, 0x7bfa: 0xe0000fd8, 0x7bfb: 0xe0002793,
-	0x7bfc: 0xe0000ffc, 0x7bfd: 0xe00010ff, 0x7bfe: 0x40318820, 0x7bff: 0xe0001114,
-	// Block 0x1f0, offset 0x7c00
-	0x7c00: 0xe0000983, 0x7c01: 0xe0000980, 0x7c02: 0xe00008fb, 0x7c03: 0xe00008f8,
-	0x7c04: 0xe000097d, 0x7c05: 0xe000097a, 0x7c06: 0xe0000a38, 0x7c07: 0xe0000a35,
-	0x7c08: 0xe0002716, 0x7c09: 0xe0002713, 0x7c0a: 0xe0000a4a, 0x7c0b: 0xe0000a47,
-	0x7c0c: 0xe0000a44, 0x7c0d: 0xe0000a41, 0x7c0e: 0xe0000a86, 0x7c0f: 0xe0000a83,
-	0x7c10: 0xe0000aaa, 0x7c11: 0xe0000aa7, 0x7c12: 0xe0000b46, 0x7c13: 0xe0000b43,
-	0x7c14: 0xe0000aee, 0x7c15: 0xe0000aeb, 0x7c16: 0xe0000b2c, 0x7c17: 0xe0000b29,
-	0x7c18: 0xe0000b40, 0x7c19: 0xe0000b3d, 0x7c1a: 0xe0000b1a, 0x7c1b: 0xe0000b17,
-	0x7c1c: 0xe000274a, 0x7c1d: 0xe0002747, 0x7c1e: 0xe0000bb2, 0x7c1f: 0xe0000baf,
-	0x7c20: 0xe0000bc4, 0x7c21: 0xe0000bc1, 0x7c22: 0xe0000bca, 0x7c23: 0xe0000bc7,
-	0x7c24: 0xe0002750, 0x7c25: 0xe000274d, 0x7c26: 0xe0000c1b, 0x7c27: 0xe0000c18,
-	0x7c28: 0xe0000c51, 0x7c29: 0xe0000c4e, 0x7c2a: 0xe0000c60, 0x7c2b: 0xe0000c5d,
-	0x7c2c: 0xe0000c31, 0x7c2d: 0xe0000c2e, 0x7c2e: 0xe0000c5a, 0x7c2f: 0xe0000c57,
-	0x7c30: 0xe0000c54, 0x7c31: 0x402da220, 0x7c32: 0xf0000a0a, 0x7c33: 0xf0000404,
-	0x7c34: 0xe000275c, 0x7c35: 0xe0002759, 0x7c36: 0xe0000c9f, 0x7c37: 0xe0000c9c,
-	0x7c38: 0x402f7220, 0x7c39: 0xe0000ccc, 0x7c3a: 0xe0000cc9, 0x7c3b: 0xe0000cd8,
-	0x7c3c: 0xe0000cd5, 0x7c3d: 0xe0000cd2, 0x7c3e: 0xe0000ccf, 0x7c3f: 0xe0000d04,
-	// Block 0x1f1, offset 0x7c40
-	0x7c40: 0xe0000cfe, 0x7c41: 0xe0000cf8, 0x7c42: 0xe0000cf5, 0x7c43: 0xe0000d51,
-	0x7c44: 0xe0000d4e, 0x7c45: 0xe0000d6f, 0x7c46: 0xe0000d6c, 0x7c47: 0xe0000d5d,
-	0x7c48: 0xe0000d5a, 0x7c49: 0xf0000404, 0x7c4a: 0x002ea283, 0x7c4b: 0x402ea220,
-	0x7c4c: 0xe0000e2e, 0x7c4d: 0xe0000e2b, 0x7c4e: 0xe0000da0, 0x7c4f: 0xe0000d9d,
-	0x7c50: 0xe0000de0, 0x7c51: 0xe0000ddd, 0x7c52: 0xe0000e93, 0x7c53: 0xe0000e8f,
-	0x7c54: 0xe0000eca, 0x7c55: 0xe0000ec7, 0x7c56: 0xe0000edc, 0x7c57: 0xe0000ed9,
-	0x7c58: 0xe0000ed0, 0x7c59: 0xe0000ecd, 0x7c5a: 0xe0000f1f, 0x7c5b: 0xe0000f1c,
-	0x7c5c: 0xe0002790, 0x7c5d: 0xe000278d, 0x7c5e: 0xe0000f47, 0x7c5f: 0xe0000f44,
-	0x7c60: 0xe0000f33, 0x7c61: 0xe0000f30, 0x7c62: 0xe0000f99, 0x7c63: 0xe0000f96,
-	0x7c64: 0xe0000f8a, 0x7c65: 0xe0000f87, 0x7c66: 0x00303688, 0x7c67: 0x40303620,
-	0x7c68: 0xe000102b, 0x7c69: 0xe0001028, 0x7c6a: 0xe000103f, 0x7c6b: 0xe000103c,
-	0x7c6c: 0xe0000fe7, 0x7c6d: 0xe0000fe4, 0x7c6e: 0xe0000ff9, 0x7c6f: 0xe0000ff6,
-	0x7c70: 0xe0001025, 0x7c71: 0xe0001022, 0x7c72: 0xe0001039, 0x7c73: 0xe0001036,
-	0x7c74: 0xe000279c, 0x7c75: 0xe0002799, 0x7c76: 0xe00027a2, 0x7c77: 0xe000279f,
-	0x7c78: 0xe0001117, 0x7c79: 0xe000113b, 0x7c7a: 0xe0001138, 0x7c7b: 0xe000114d,
-	0x7c7c: 0xe000114a, 0x7c7d: 0xe0001147, 0x7c7e: 0xe0001144, 0x7c7f: 0xe0000f64,
-	// Block 0x1f2, offset 0x7c80
-	0x7c80: 0x402c1a20, 0x7c81: 0x002c2a88, 0x7c82: 0x002c3288, 0x7c83: 0x402c3220,
-	0x7c84: 0x0031c488, 0x7c85: 0x4031c420, 0x7c86: 0x002ee483, 0x7c87: 0x002c4e88,
-	0x7c88: 0x402c4e20, 0x7c89: 0x002c6683, 0x7c8a: 0x002c7a88, 0x7c8b: 0x002c8488,
-	0x7c8c: 0x402c8420, 0x7c8d: 0xe000115c, 0x7c8e: 0x002cae88, 0x7c8f: 0x002cb888,
-	0x7c90: 0x002c9a83, 0x7c91: 0x002d0a83, 0x7c92: 0x402d0a20, 0x7c93: 0x002d4488,
-	0x7c94: 0x002d2683, 0x7c95: 0x402d7820, 0x7c96: 0x002dc288, 0x7c97: 0x002db688,
-	0x7c98: 0x002e0a88, 0x7c99: 0x402e0a20, 0x7c9a: 0x402e3820, 0x7c9b: 0x402e7220,
-	0x7c9c: 0x0030a088, 0x7c9d: 0x002eb488, 0x7c9e: 0x402ebc20, 0x7c9f: 0x002f1088,
-	0x7ca0: 0xe0000e56, 0x7ca1: 0xe0000e53, 0x7ca2: 0x002d6088, 0x7ca3: 0x402d6020,
-	0x7ca4: 0x002f3e88, 0x7ca5: 0x402f3e20, 0x7ca6: 0x002f8288, 0x7ca7: 0x0031b488,
-	0x7ca8: 0x4031b420, 0x7ca9: 0x00300888, 0x7caa: 0x40301220, 0x7cab: 0x40304220,
-	0x7cac: 0x00304a88, 0x7cad: 0x40304a20, 0x7cae: 0x00305288, 0x7caf: 0xe000105f,
-	0x7cb0: 0xe000105c, 0x7cb1: 0x0030b488, 0x7cb2: 0x0030c083, 0x7cb3: 0x00311888,
-	0x7cb4: 0x40311820, 0x7cb5: 0x00313488, 0x7cb6: 0x40313420, 0x7cb7: 0x00316488,
-	0x7cb8: 0x00316e88, 0x7cb9: 0x40316e20, 0x7cba: 0x40317820, 0x7cbb: 0x4031a620,
-	0x7cbc: 0x0031bc88, 0x7cbd: 0x4031bc20, 0x7cbe: 0xe0000fc9, 0x7cbf: 0x40319420,
-	// Block 0x1f3, offset 0x7cc0
-	0x7cc0: 0x40315820, 0x7cc1: 0x0031d488, 0x7cc2: 0x4031d420, 0x7cc3: 0x002c1a88,
-	0x7cc4: 0x00307c88, 0x7cc5: 0x0030da88, 0x7cc6: 0x002ca288, 0x7cc7: 0x402ca220,
-	0x7cc8: 0x002dde88, 0x7cc9: 0x402dde20, 0x7cca: 0x002f6a88, 0x7ccb: 0x402f6a20,
-	0x7ccc: 0x002f8e88, 0x7ccd: 0x402f8e20, 0x7cce: 0x00311088, 0x7ccf: 0x40311020,
-	0x7cd0: 0x402bf020, 0x7cd1: 0x402bf820, 0x7cd2: 0x402c0220, 0x7cd3: 0x402c2a20,
-	0x7cd4: 0x402ee420, 0x7cd5: 0x402c5620, 0x7cd6: 0x402c6620, 0x7cd7: 0x402c7a20,
-	0x7cd8: 0x402ccc20, 0x7cd9: 0x402cb820, 0x7cda: 0x402cd420, 0x7cdb: 0x402c9a20,
-	0x7cdc: 0x402cdc20, 0x7cdd: 0x402ce820, 0x7cde: 0x402cf020, 0x7cdf: 0x402dee20,
-	0x7ce0: 0x402d4420, 0x7ce1: 0x402d2a20, 0x7ce2: 0x402d3220, 0x7ce3: 0x402d2620,
-	0x7ce4: 0x402d0020, 0x7ce5: 0x40308820, 0x7ce6: 0x402d8020, 0x7ce7: 0x402d8e20,
-	0x7ce8: 0x402db620, 0x7ce9: 0x402dc220, 0x7cea: 0x402daa20, 0x7ceb: 0x402e4220,
-	0x7cec: 0x402e4a20, 0x7ced: 0x402e5420, 0x7cee: 0x402e6820, 0x7cef: 0x4030a020,
-	0x7cf0: 0x4030ac20, 0x7cf1: 0x402e9020, 0x7cf2: 0x402eb420, 0x7cf3: 0x402ec820,
-	0x7cf4: 0x402ea620, 0x7cf5: 0x402f1020, 0x7cf6: 0x402eee20, 0x7cf7: 0x402f1a20,
-	0x7cf8: 0x402f4c20, 0x7cf9: 0x402f9820, 0x7cfa: 0x402fa220, 0x7cfb: 0x402fac20,
-	0x7cfc: 0x402fb620, 0x7cfd: 0x402fbe20, 0x7cfe: 0x402fc620, 0x7cff: 0x402fd020,
-	// Block 0x1f4, offset 0x7d00
-	0x7d00: 0x402f8220, 0x7d01: 0x402fd820, 0x7d02: 0x402ff420, 0x7d03: 0x40300820,
-	0x7d04: 0x402df620, 0x7d05: 0x40301a20, 0x7d06: 0x40302420, 0x7d07: 0x40306420,
-	0x7d08: 0x40305220, 0x7d09: 0x40307c20, 0x7d0a: 0x4030b420, 0x7d0b: 0x4030c020,
-	0x7d0c: 0x4030da20, 0x7d0d: 0x4030ee20, 0x7d0e: 0x402e7a20, 0x7d0f: 0x40310820,
-	0x7d10: 0x40314820, 0x7d11: 0x40315020, 0x7d12: 0x40316420, 0x7d13: 0x40318020,
-	0x7d14: 0x4031cc20, 0x7d15: 0x4031e820, 0x7d16: 0x40320a20, 0x7d17: 0x40323220,
-	0x7d18: 0x40323a20, 0x7d19: 0x402c1220, 0x7d1a: 0x402cf820, 0x7d1b: 0x402d4c20,
-	0x7d1c: 0x402d7020, 0x7d1d: 0x402de620, 0x7d1e: 0x402e1a20, 0x7d1f: 0x402e2a20,
-	0x7d20: 0x402f6220, 0x7d21: 0x4031fa20, 0x7d22: 0x40320220, 0x7d23: 0xe0000aca,
-	0x7d24: 0xe0000adc, 0x7d25: 0xe0000ad9, 0x7d26: 0xe0000fcc, 0x7d27: 0xe0000fcf,
-	0x7d28: 0xe0000fba, 0x7d29: 0xe0000ba1, 0x7d2a: 0xe0000d11, 0x7d2b: 0xe0000d18,
-	0x7d2c: 0x40324220, 0x7d2d: 0x40324a20, 0x7d2e: 0x40309020, 0x7d2f: 0x40309820,
-	0x7d30: 0x002d6894, 0x7d31: 0x002d8094, 0x7d32: 0x002dcc94, 0x7d33: 0x002f7a94,
-	0x7d34: 0x002f9894, 0x7d35: 0x002fac94, 0x7d36: 0x002fd894, 0x7d37: 0x0030e294,
-	0x7d38: 0x00310094, 0x7d39: 0x40064020, 0x7d3a: 0x40064420, 0x7d3b: 0x402d9620,
-	0x7d3c: 0x4031de20, 0x7d3d: 0x402d9820, 0x7d3e: 0x4031e220, 0x7d3f: 0x4031f020,
-	// Block 0x1f5, offset 0x7d40
-	0x7d40: 0xae603502, 0x7d41: 0xae603202, 0x7d42: 0xae604202, 0x7d43: 0xae604e02,
-	0x7d44: 0xae605b02, 0x7d45: 0xae606302, 0x7d46: 0xae603702, 0x7d47: 0xae605202,
-	0x7d48: 0xae604702, 0x7d49: 0xae606402, 0x7d4a: 0xae604302, 0x7d4b: 0xae604d02,
-	0x7d4c: 0xae604102, 0x7d4d: 0xae605f02, 0x7d4e: 0xae605f02, 0x7d4f: 0xae606502,
-	0x7d50: 0xae606602, 0x7d51: 0xae606702, 0x7d52: 0xae605f02, 0x7d53: 0xae602202,
-	0x7d54: 0xae602a02, 0x7d55: 0xae805f02, 0x7d56: 0xadc06002, 0x7d57: 0xadc06002,
-	0x7d58: 0xadc06002, 0x7d59: 0xadc06002, 0x7d5a: 0xae805f02, 0x7d5b: 0xad806802,
-	0x7d5c: 0xadc06002, 0x7d5d: 0xadc06002, 0x7d5e: 0xadc06002, 0x7d5f: 0xadc06002,
-	0x7d60: 0xadc06002, 0x7d61: 0xaca06e02, 0x7d62: 0xaca06f02, 0x7d63: 0xadc07002,
-	0x7d64: 0xadc07502, 0x7d65: 0xadc07602, 0x7d66: 0xadc07702, 0x7d67: 0xaca05602,
-	0x7d68: 0xaca05902, 0x7d69: 0xadc06002, 0x7d6a: 0xadc06002, 0x7d6b: 0xadc06002,
-	0x7d6c: 0xadc06002, 0x7d6d: 0xadc07802, 0x7d6e: 0xadc07902, 0x7d6f: 0xadc06002,
-	0x7d70: 0xadc07a02, 0x7d71: 0xadc07b02, 0x7d72: 0xadc02102, 0x7d73: 0xadc06002,
-	0x7d74: 0xa0107c02, 0x7d75: 0xa0107d02, 0x7d76: 0xa0106102, 0x7d77: 0xa0106102,
-	0x7d78: 0xa0105402, 0x7d79: 0xadc07e02, 0x7d7a: 0xadc06002, 0x7d7b: 0xadc06002,
-	0x7d7c: 0xadc06002, 0x7d7d: 0xae605f02, 0x7d7e: 0xae605f02, 0x7d7f: 0xae605f02,
-	// Block 0x1f6, offset 0x7d80
-	0x7d80: 0xe00010d2, 0x7d81: 0xe00010cf, 0x7d82: 0xe00010cc, 0x7d83: 0xe00010c9,
-	0x7d84: 0xe00010e1, 0x7d85: 0xe00010de, 0x7d86: 0xe00010e7, 0x7d87: 0xe00010e4,
-	0x7d88: 0xe00010ed, 0x7d89: 0xe00010ea, 0x7d8a: 0xe000253d, 0x7d8b: 0xe000253a,
-	0x7d8c: 0xe0002537, 0x7d8d: 0xe0002534, 0x7d8e: 0xe0001123, 0x7d8f: 0xe0001120,
-	0x7d90: 0xe00027a8, 0x7d91: 0xe00027a5, 0x7d92: 0xe0001153, 0x7d93: 0xe0001150,
-	0x7d94: 0xe0001159, 0x7d95: 0xe0001156, 0x7d96: 0xe0000c15, 0x7d97: 0xe0000f8d,
-	0x7d98: 0xe00010db, 0x7d99: 0xe0001111, 0x7d9a: 0xf0000404, 0x7d9b: 0xe0000f70,
-	0x7d9c: 0x40300420, 0x7d9d: 0x40300620, 0x7d9e: 0xe0000f7f, 0x7d9f: 0x402c9620,
-	0x7da0: 0xe000099b, 0x7da1: 0xe0000998, 0x7da2: 0xe0000989, 0x7da3: 0xe0000986,
-	0x7da4: 0xe00026ef, 0x7da5: 0xe00026eb, 0x7da6: 0xe00026f7, 0x7da7: 0xe00026f3,
-	0x7da8: 0xe0002707, 0x7da9: 0xe0002703, 0x7daa: 0xe00026ff, 0x7dab: 0xe00026fb,
-	0x7dac: 0xe000270f, 0x7dad: 0xe000270b, 0x7dae: 0xe0000902, 0x7daf: 0xe00008fe,
-	0x7db0: 0xe000090a, 0x7db1: 0xe0000906, 0x7db2: 0xe000091a, 0x7db3: 0xe0000916,
-	0x7db4: 0xe0000912, 0x7db5: 0xe000090e, 0x7db6: 0xe00009a2, 0x7db7: 0xe000099e,
-	0x7db8: 0xe0000b6e, 0x7db9: 0xe0000b6b, 0x7dba: 0xe0000b5c, 0x7dbb: 0xe0000b59,
-	0x7dbc: 0xe0000b26, 0x7dbd: 0xe0000b23, 0x7dbe: 0xe0002723, 0x7dbf: 0xe000271f,
-	// Block 0x1f7, offset 0x7dc0
-	0x7dc0: 0xe000272b, 0x7dc1: 0xe0002727, 0x7dc2: 0xe000273b, 0x7dc3: 0xe0002737,
-	0x7dc4: 0xe0002733, 0x7dc5: 0xe000272f, 0x7dc6: 0xe0002743, 0x7dc7: 0xe000273f,
-	0x7dc8: 0xe0000c66, 0x7dc9: 0xe0000c63, 0x7dca: 0xe0000c78, 0x7dcb: 0xe0000c75,
-	0x7dcc: 0xe0000e84, 0x7dcd: 0xe0000e81, 0x7dce: 0xe0000e44, 0x7dcf: 0xe0000e41,
-	0x7dd0: 0xe0002769, 0x7dd1: 0xe0002765, 0x7dd2: 0xe0002771, 0x7dd3: 0xe000276d,
-	0x7dd4: 0xe0002781, 0x7dd5: 0xe000277d, 0x7dd6: 0xe0002779, 0x7dd7: 0xe0002775,
-	0x7dd8: 0xe0002789, 0x7dd9: 0xe0002785, 0x7dda: 0xe0000e5d, 0x7ddb: 0xe0000e59,
-	0x7ddc: 0xe0000e65, 0x7ddd: 0xe0000e61, 0x7dde: 0xe0000e75, 0x7ddf: 0xe0000e71,
-	0x7de0: 0xe0000e6d, 0x7de1: 0xe0000e69, 0x7de2: 0xe0000e7d, 0x7de3: 0xe0000e79,
-	0x7de4: 0xe000108d, 0x7de5: 0xe000108a, 0x7de6: 0xe000104d, 0x7de7: 0xe000104a,
-	0x7de8: 0xe0001066, 0x7de9: 0xe0001062, 0x7dea: 0xe000106e, 0x7deb: 0xe000106a,
-	0x7dec: 0xe000107e, 0x7ded: 0xe000107a, 0x7dee: 0xe0001076, 0x7def: 0xe0001072,
-	0x7df0: 0xe0001086, 0x7df1: 0xe0001082, 0x7df2: 0xe0001108, 0x7df3: 0xe0001105,
-	0x7df4: 0xe0001135, 0x7df5: 0xe0001132, 0x7df6: 0xe000112f, 0x7df7: 0xe000112c,
-	0x7df8: 0xe000111d, 0x7df9: 0xe000111a, 0x7dfa: 0xe0000d0a, 0x7dfb: 0xe0000d07,
-	0x7dfc: 0x0030d888, 0x7dfd: 0x4030d820, 0x7dfe: 0x00312088, 0x7dff: 0x40312020,
-	// Block 0x1f8, offset 0x7e00
-	0x7e00: 0x00093685, 0x7e01: 0x40083620, 0x7e02: 0x40083820, 0x7e03: 0x40083a20,
-	0x7e04: 0x40083c20, 0x7e05: 0x002c628b, 0x7e06: 0x002c6285, 0x7e07: 0x002c9885,
-	0x7e08: 0x002d9a85, 0x7e09: 0x002dcc85, 0x7e0a: 0x40083e20, 0x7e0b: 0x400a6e20,
-	0x7e0c: 0x40084020, 0x7e0d: 0xe00009c4, 0x7e0e: 0x402d1e20, 0x7e0f: 0x40084220,
-	0x7e10: 0xe00002cb, 0x7e11: 0xe00002d3, 0x7e12: 0xe00002b2, 0x7e13: 0xe00002bb,
-	0x7e14: 0xe00003cd, 0x7e15: 0xe00002c3, 0x7e16: 0xe00003d1, 0x7e17: 0xe00004ab,
-	0x7e18: 0xe0000579, 0x7e19: 0xe00002c7, 0x7e1a: 0xe0000640, 0x7e1b: 0xe00002cf,
-	0x7e1c: 0xe00004af, 0x7e1d: 0xe0000644, 0x7e1e: 0xe0000798, 0x7e1f: 0xf0001e1e,
-	0x7e20: 0x002d9a8a, 0x7e21: 0xf0001f0a, 0x7e22: 0xf0000a0a, 0x7e23: 0xf0001f0a,
-	0x7e24: 0x0030be8a, 0x7e25: 0xf0001f0a, 0x7e26: 0xf0000a0a, 0x7e27: 0xe00010bb,
-	0x7e28: 0xe0002581, 0x7e29: 0x0030f68a, 0x7e2a: 0xe00025b5, 0x7e2b: 0xe00025bc,
-	0x7e2c: 0x002e228a, 0x7e2d: 0x002c3a8a, 0x7e2e: 0x002c628a, 0x7e2f: 0x002e828a,
-	0x7e30: 0x002d9a84, 0x7e31: 0xf0001f04, 0x7e32: 0xf0000404, 0x7e33: 0xf0001f04,
-	0x7e34: 0x0030be84, 0x7e35: 0xf0001f04, 0x7e36: 0xf0000404, 0x7e37: 0xe00010b6,
-	0x7e38: 0xe000257e, 0x7e39: 0x0030f684, 0x7e3a: 0xe00025b2, 0x7e3b: 0xe00025b8,
-	0x7e3c: 0x002e2284, 0x7e3d: 0x002c3a84, 0x7e3e: 0x002c6284, 0x7e3f: 0x002e8284,
-	// Block 0x1f9, offset 0x7e40
-	0x7e40: 0xe0000024, 0x7e41: 0xe0000029, 0x7e42: 0xe000002e, 0x7e43: 0xe0000033,
-	0x7e44: 0xe0000038, 0x7e45: 0xe000003d, 0x7e46: 0xe0000042, 0x7e47: 0xe0000047,
-	0x7e48: 0xf0001f04, 0x7e49: 0xf0001f04, 0x7e4a: 0xf0001f04, 0x7e4b: 0xf0001f04,
-	0x7e4c: 0xf0001f04, 0x7e4d: 0xf0001f04, 0x7e4e: 0xf0001f04, 0x7e4f: 0xf0001f04,
-	0x7e50: 0xf0001f04, 0x7e51: 0xf0000404, 0x7e52: 0xf0000404, 0x7e53: 0xf0000404,
-	0x7e54: 0xf0000404, 0x7e55: 0xf0000404, 0x7e56: 0xf0000404, 0x7e57: 0xf0000404,
-	0x7e58: 0xf0000404, 0x7e59: 0xf0000404, 0x7e5a: 0xf0000404, 0x7e5b: 0xf0000404,
-	0x7e5c: 0xf0000404, 0x7e5d: 0xf0000404, 0x7e5e: 0xf0000404, 0x7e5f: 0xf0000404,
-	0x7e60: 0xf0000404, 0x7e61: 0xf0000404, 0x7e62: 0xf0000404, 0x7e63: 0xf0000404,
-	0x7e64: 0xf0000404, 0x7e65: 0xf0000404, 0x7e66: 0xf0000404, 0x7e67: 0xf0000404,
-	0x7e68: 0xf0000404, 0x7e69: 0xf0000404, 0x7e6a: 0xf0000404, 0x7e6b: 0xf0000404,
-	0x7e6c: 0xf0000404, 0x7e6d: 0xf0000404, 0x7e6e: 0xf0000404, 0x7e6f: 0xf0000404,
-	0x7e70: 0xf0000404, 0x7e71: 0xf0000404, 0x7e72: 0xf0000404, 0x7e73: 0xe0002523,
-	0x7e74: 0xf0000404, 0x7e75: 0xf0000404, 0x7e76: 0x002bde8c, 0x7e77: 0x002c0a8c,
-	0x7e78: 0x002c3a8c, 0x7e79: 0x002c628c, 0x7e7a: 0x002c988c, 0x7e7b: 0x002d088c,
-	0x7e7c: 0x002d228c, 0x7e7d: 0x002d688c, 0x7e7e: 0x002d9a8c, 0x7e7f: 0x002dcc8c,
-	// Block 0x1fa, offset 0x7e80
-	0x7e80: 0xf0001d1c, 0x7e81: 0xf0001d1d, 0x7e82: 0xe00009b7, 0x7e83: 0xf0001c1d,
-	0x7e84: 0xf0001c1c, 0x7e85: 0xf0001c1c, 0x7e86: 0xe0000a66, 0x7e87: 0xe0000a7a,
-	0x7e88: 0xf0001d1c, 0x7e89: 0xf0001c1d, 0x7e8a: 0xf0001c1c, 0x7e8b: 0xf0001d1d,
-	0x7e8c: 0xf0001c1c, 0x7e8d: 0xf0001d1d, 0x7e8e: 0xf0001d1d, 0x7e8f: 0xf0001c1c,
-	0x7e90: 0xf0001c1c, 0x7e91: 0xf0001c1c, 0x7e92: 0xe0000d0d, 0x7e93: 0xe0002584,
-	0x7e94: 0xf0001c1c, 0x7e95: 0xe0000d3a, 0x7e96: 0xe0000d46, 0x7e97: 0xf0001d1d,
-	0x7e98: 0xe0000eb0, 0x7e99: 0xe0000eb8, 0x7e9a: 0xf0001d1d, 0x7e9b: 0xf0001c1c,
-	0x7e9c: 0xf0001c1d, 0x7e9d: 0xf0001c1d, 0x7e9e: 0xe00010b2, 0x7e9f: 0xe00009c8,
-	0x7ea0: 0xf0001f04, 0x7ea1: 0xf0001f04, 0x7ea2: 0xf0001f04, 0x7ea3: 0xf0001f04,
-	0x7ea4: 0xf0001f04, 0x7ea5: 0xf0001f04, 0x7ea6: 0xf0001f04, 0x7ea7: 0xf0001f04,
-	0x7ea8: 0xf0001f04, 0x7ea9: 0xf0000404, 0x7eaa: 0xf0000404, 0x7eab: 0xf0000404,
-	0x7eac: 0xf0000404, 0x7ead: 0xf0000404, 0x7eae: 0xf0000404, 0x7eaf: 0xf0000404,
-	0x7eb0: 0xf0000404, 0x7eb1: 0xf0000404, 0x7eb2: 0xf0000404, 0x7eb3: 0xf0000404,
-	0x7eb4: 0xf0000404, 0x7eb5: 0xf0000404, 0x7eb6: 0xf0000404, 0x7eb7: 0xf0000404,
-	0x7eb8: 0xf0000404, 0x7eb9: 0xf0000404, 0x7eba: 0xf0000404, 0x7ebb: 0xf0000404,
-	0x7ebc: 0xf0000404, 0x7ebd: 0xf0000404, 0x7ebe: 0xf0000404, 0x7ebf: 0xe0000bdf,
-	// Block 0x1fb, offset 0x7ec0
-	0x7ec0: 0xf0001f04, 0x7ec1: 0xf0001f04, 0x7ec2: 0xf0001f04, 0x7ec3: 0xf0001f04,
-	0x7ec4: 0xf0001f04, 0x7ec5: 0xf0001f04, 0x7ec6: 0xf0001f04, 0x7ec7: 0xf0001f04,
-	0x7ec8: 0xf0001f04, 0x7ec9: 0xf0001f04, 0x7eca: 0xf0001f04,
-	0x7ed0: 0xf0000a04, 0x7ed1: 0xf0000a04, 0x7ed2: 0xf0000a04, 0x7ed3: 0xf0000a04,
-	0x7ed4: 0xf0000a04, 0x7ed5: 0xf0000a04, 0x7ed6: 0xf0000a04, 0x7ed7: 0xf0000a04,
-	0x7ed8: 0xf0000a04, 0x7ed9: 0xf0000a04, 0x7eda: 0xf0000a04, 0x7edb: 0xf0000a04,
-	0x7edc: 0xf0000a04, 0x7edd: 0xf0000a04, 0x7ede: 0xf0000a04, 0x7edf: 0xf0000a04,
-	0x7ee0: 0xf0000a04, 0x7ee1: 0xf0000a04, 0x7ee2: 0xf0000a04, 0x7ee3: 0xf0000a04,
-	0x7ee4: 0xf0000a04, 0x7ee5: 0xf0000a04, 0x7ee6: 0xf0000a04, 0x7ee7: 0xe0002527,
-	0x7ee8: 0xf0000a04, 0x7ee9: 0xf0000a04, 0x7eea: 0xf0000a04, 0x7eeb: 0x002c3a8c,
-	0x7eec: 0x002f7a8c, 0x7eed: 0xf0000c0c, 0x7eee: 0xf0000c0c,
-	0x7ef0: 0x002bde9d, 0x7ef1: 0x002c0a9d, 0x7ef2: 0x002c3a9d, 0x7ef3: 0x002c629d,
-	0x7ef4: 0x002c989d, 0x7ef5: 0x002d089d, 0x7ef6: 0x002d229d, 0x7ef7: 0x002d689d,
-	0x7ef8: 0x002d9a9d, 0x7ef9: 0x002dcc9d, 0x7efa: 0x002dfe9d, 0x7efb: 0x002e229d,
-	0x7efc: 0x002e829d, 0x7efd: 0x002e9e9d, 0x7efe: 0x002ee29d, 0x7eff: 0x002f2c9d,
-	// Block 0x1fc, offset 0x7f00
-	0x7f00: 0xa0000000, 0x7f01: 0xa0000000, 0x7f02: 0xa0000000, 0x7f03: 0xa0000000,
-	0x7f04: 0xa0000000, 0x7f05: 0xa0000000, 0x7f06: 0xa0000000, 0x7f07: 0xa0000000,
-	0x7f08: 0xa0000000, 0x7f09: 0x40020020, 0x7f0a: 0x40020220, 0x7f0b: 0x40020420,
-	0x7f0c: 0x40020620, 0x7f0d: 0x40020820, 0x7f0e: 0xa0000000, 0x7f0f: 0xa0000000,
-	0x7f10: 0xa0000000, 0x7f11: 0xa0000000, 0x7f12: 0xa0000000, 0x7f13: 0xa0000000,
-	0x7f14: 0xa0000000, 0x7f15: 0xa0000000, 0x7f16: 0xa0000000, 0x7f17: 0xa0000000,
-	0x7f18: 0xa0000000, 0x7f19: 0xa0000000, 0x7f1a: 0xa0000000, 0x7f1b: 0xa0000000,
-	0x7f1c: 0xa0000000, 0x7f1d: 0xa0000000, 0x7f1e: 0xa0000000, 0x7f1f: 0xa0000000,
-	0x7f20: 0x402be020, 0x7f21: 0x402be220, 0x7f22: 0x402be420, 0x7f23: 0x402c5a20,
-	0x7f24: 0x402be620, 0x7f25: 0x402be820, 0x7f26: 0x402c5820, 0x7f27: 0x402bea20,
-	0x7f28: 0x402bec20, 0x7f29: 0x402bee20, 0x7f2a: 0x4004d820, 0x7f2b: 0x40093820,
-	0x7f2c: 0x40024020, 0x7f2d: 0x40021a20, 0x7f2e: 0x4002e420, 0x7f2f: 0x4004e220,
-	0x7f30: 0x4029cc20, 0x7f31: 0x4029ce20, 0x7f32: 0x4029d020, 0x7f33: 0x4029d220,
-	0x7f34: 0x4029d420, 0x7f35: 0x4029d620, 0x7f36: 0x4029d820, 0x7f37: 0x402c5e20,
-	0x7f38: 0x4029dc20, 0x7f39: 0x4029de20, 0x7f3a: 0x40026c20, 0x7f3b: 0x402c6220,
-	0x7f3c: 0x40094020, 0x7f3d: 0x40094220, 0x7f3e: 0x40094420, 0x7f3f: 0x4002c420,
-	// Block 0x1fd, offset 0x7f40
-	0x7f40: 0x402bf020, 0x7f41: 0x402bf220, 0x7f42: 0x402bf420, 0x7f43: 0x402bf620,
-	0x7f44: 0x402bf820, 0x7f45: 0x402bfa20, 0x7f46: 0x402bfc20, 0x7f47: 0x402bfe20,
-	0x7f48: 0x402c0020, 0x7f49: 0x402c0220, 0x7f4a: 0x402c0420, 0x7f4b: 0x402c0620,
-	0x7f4c: 0xc52f0002, 0x7f4d: 0x402c0a20, 0x7f4e: 0x402c0c20, 0x7f4f: 0x402c0e20,
-	0x7f50: 0x402c1020, 0x7f51: 0x402c1220, 0x7f52: 0x402c1420, 0x7f53: 0x402c1620,
-	0x7f54: 0x402c1820, 0x7f55: 0x402c1a20, 0x7f56: 0x402c1c20, 0x7f57: 0x402c1e20,
-	0x7f58: 0x402c2020, 0x7f59: 0x402c2220, 0x7f5a: 0x402c2420, 0x7f5b: 0x4003f820,
-	0x7f5c: 0x4004e420, 0x7f5d: 0x4003fa20, 0x7f5e: 0x40062420, 0x7f5f: 0x40021620,
-	0x7f60: 0x402c2620, 0x7f61: 0x402c2820, 0x7f62: 0x402c5020, 0x7f63: 0x402c5220,
-	0x7f64: 0x402c5420, 0x7f65: 0x402c5620, 0x7f66: 0x402c6020, 0x7f67: 0x402c2a20,
-	0x7f68: 0x402c2c20, 0x7f69: 0x402c2e20, 0x7f6a: 0x402c3020, 0x7f6b: 0x402c3220,
-	0x7f6c: 0xc52c0002, 0x7f6d: 0x402c3620, 0x7f6e: 0x402c3820, 0x7f6f: 0x402c3a20,
-	0x7f70: 0x402c3c20, 0x7f71: 0x402c3e20, 0x7f72: 0x402c4020, 0x7f73: 0x402c4220,
-	0x7f74: 0x402c4420, 0x7f75: 0x402c4620, 0x7f76: 0x402c4820, 0x7f77: 0x402c4a20,
-	0x7f78: 0x402c5c20, 0x7f79: 0x402c4c20, 0x7f7a: 0x402c4e20, 0x7f7b: 0x4003fc20,
-	0x7f7c: 0x40094820, 0x7f7d: 0x4003fe20, 0x7f7e: 0x40094c20, 0x7f7f: 0xa0000000,
-	// Block 0x1fe, offset 0x7f80
-	0x7f80: 0xe000299a, 0x7f81: 0xe0002997, 0x7f82: 0xe00029b0, 0x7f83: 0xe00029d4,
-	0x7f84: 0xe00029cd, 0x7f85: 0xe00029c6, 0x7f86: 0xe00009dd, 0x7f87: 0xe0002a10,
-	0x7f88: 0xe0002a2c, 0x7f89: 0xe0002a29, 0x7f8a: 0xe0002a32, 0x7f8b: 0xe0002a48,
-	0x7f8c: 0xe0002aac, 0x7f8d: 0xe0002aa9, 0x7f8e: 0xe0002ab2, 0x7f8f: 0xe0002ab8,
-	0x7f90: 0xe0000ab3, 0x7f91: 0xe0002b14, 0x7f92: 0xe0002b29, 0x7f93: 0xe0002b26,
-	0x7f94: 0xe0002b2f, 0x7f95: 0xe0002b4f, 0x7f96: 0xe0002b45, 0x7f97: 0x40093e20,
-	0x7f98: 0xe0000e12, 0x7f99: 0xe0002bf9, 0x7f9a: 0xe0002bf6, 0x7f9b: 0xe0002bff,
-	0x7f9c: 0xe0002c08, 0x7f9d: 0xe0002c79, 0x7f9e: 0x00318888, 0x7f9f: 0xe0000f7b,
-	0x7fa0: 0xe0002ca9, 0x7fa1: 0xe0002ca6, 0x7fa2: 0xe0002cbf, 0x7fa3: 0xe0002ce3,
-	0x7fa4: 0xe0002cdc, 0x7fa5: 0xe0002cd5, 0x7fa6: 0xe00009d5, 0x7fa7: 0xe0002f58,
-	0x7fa8: 0xe0002f74, 0x7fa9: 0xe0002f71, 0x7faa: 0xe0002f7a, 0x7fab: 0xe0002f90,
-	0x7fac: 0xe0002d3a, 0x7fad: 0xe0002d37, 0x7fae: 0xe0002d40, 0x7faf: 0xe0002d46,
-	0x7fb0: 0xe0000aad, 0x7fb1: 0xe0002da2, 0x7fb2: 0xe0002db7, 0x7fb3: 0xe0002db4,
-	0x7fb4: 0xe0002dbd, 0x7fb5: 0xe0002ddd, 0x7fb6: 0xe0002dd3, 0x7fb7: 0x40093c20,
-	0x7fb8: 0xe0000e0f, 0x7fb9: 0xe0002e96, 0x7fba: 0xe0002e93, 0x7fbb: 0xe0002e9c,
-	0x7fbc: 0xe0002ea5, 0x7fbd: 0xe0002f13, 0x7fbe: 0x40318820, 0x7fbf: 0xe0002f1f,
-	// Block 0x1ff, offset 0x7fc0
-	0x7fc0: 0xe00029e1, 0x7fc1: 0xe0002cf0, 0x7fc2: 0xe000299d, 0x7fc3: 0xe0002cac,
-	0x7fc4: 0xe00029de, 0x7fc5: 0xe0002ced, 0x7fc6: 0xe0002a04, 0x7fc7: 0xe0002f4c,
-	0x7fc8: 0xe0002a07, 0x7fc9: 0xe0002f4f, 0x7fca: 0xe0002a0d, 0x7fcb: 0xe0002f55,
-	0x7fcc: 0xe0002a0a, 0x7fcd: 0xe0002f52, 0x7fce: 0xe0002a17, 0x7fcf: 0xe0002f5f,
-	0x7fd0: 0xe0000aaa, 0x7fd1: 0xe0000aa7, 0x7fd2: 0xe0002a5b, 0x7fd3: 0xe0002fa3,
-	0x7fd4: 0xe0002a2f, 0x7fd5: 0xe0002f77, 0x7fd6: 0xe0002a4e, 0x7fd7: 0xe0002f96,
-	0x7fd8: 0xe0002a58, 0x7fd9: 0xe0002fa0, 0x7fda: 0xe0002a45, 0x7fdb: 0xe0002f8d,
-	0x7fdc: 0xe0002a85, 0x7fdd: 0xe0002d10, 0x7fde: 0xe0002a82, 0x7fdf: 0xe0002d0d,
-	0x7fe0: 0xe0002a8b, 0x7fe1: 0xe0002d16, 0x7fe2: 0xe0002a8e, 0x7fe3: 0xe0002d19,
-	0x7fe4: 0xe0002a94, 0x7fe5: 0xe0002d1f, 0x7fe6: 0xe0000c1b, 0x7fe7: 0xe0000c18,
-	0x7fe8: 0xe0002abf, 0x7fe9: 0xe0002d4d, 0x7fea: 0xe0002ac8, 0x7feb: 0xe0002d53,
-	0x7fec: 0xe0002aaf, 0x7fed: 0xe0002d3d, 0x7fee: 0xe0002ac5, 0x7fef: 0xe0002d50,
-	0x7ff0: 0xe0002ac2, 0x7ff1: 0x402da220, 0x7ff2: 0xe0002575, 0x7ff3: 0xe0003010,
-	0x7ff4: 0xe0002ada, 0x7ff5: 0xe0002d65, 0x7ff6: 0xe0002ae3, 0x7ff7: 0xe0002d71,
-	0x7ff8: 0x402f7220, 0x7ff9: 0xe0002aec, 0x7ffa: 0xe0002d7a, 0x7ffb: 0xe0002af2,
-	0x7ffc: 0xe0002d80, 0x7ffd: 0xe0002aef, 0x7ffe: 0xe0002d7d, 0x7fff: 0xe0000d04,
-	// Block 0x200, offset 0x8000
-	0x8000: 0xe0000cfe, 0x8001: 0xe0000cf8, 0x8002: 0xe0000cf5, 0x8003: 0xe0002b0b,
-	0x8004: 0xe0002d99, 0x8005: 0xe0002b1a, 0x8006: 0xe0002da8, 0x8007: 0xe0002b11,
-	0x8008: 0xe0002d9f, 0x8009: 0xe00030dd, 0x800a: 0x002eda88, 0x800b: 0x402eda20,
-	0x800c: 0xe0002b6c, 0x800d: 0xe0002dfa, 0x800e: 0xe0002b2c, 0x800f: 0xe0002dba,
-	0x8010: 0xe0002b4c, 0x8011: 0xe0002dda, 0x8012: 0xe0000e93, 0x8013: 0xe0000e8f,
-	0x8014: 0xe0002ba4, 0x8015: 0xe0002e3e, 0x8016: 0xe0002bad, 0x8017: 0xe0002e47,
-	0x8018: 0xe0002ba7, 0x8019: 0xe0002e41, 0x801a: 0xe0002bc0, 0x801b: 0xe0002e5a,
-	0x801c: 0xe0002bc7, 0x801d: 0xe0002e61, 0x801e: 0xe0002bd4, 0x801f: 0xe0002e6e,
-	0x8020: 0xe0002bca, 0x8021: 0xe0002e64, 0x8022: 0xe0002be7, 0x8023: 0xe0002e84,
-	0x8024: 0xe0002be1, 0x8025: 0xe0002e7b, 0x8026: 0x00303688, 0x8027: 0x40303620,
-	0x8028: 0xe0002c1e, 0x8029: 0xe0002ebb, 0x802a: 0xe0002c28, 0x802b: 0xe0002ec5,
-	0x802c: 0xe0002bfc, 0x802d: 0xe0002e99, 0x802e: 0xe0002c05, 0x802f: 0xe0002ea2,
-	0x8030: 0xe0002c1b, 0x8031: 0xe0002eb8, 0x8032: 0xe0002c25, 0x8033: 0xe0002ec2,
-	0x8034: 0xe0002c67, 0x8035: 0xe0002f04, 0x8036: 0xe0002c7f, 0x8037: 0xe0002f19,
-	0x8038: 0xe0002c82, 0x8039: 0xe0002c94, 0x803a: 0xe0002f31, 0x803b: 0xe0002c9d,
-	0x803c: 0xe0002f3a, 0x803d: 0xe0002c9a, 0x803e: 0xe0002f37, 0x803f: 0xe0000f64,
-	// Block 0x201, offset 0x8040
-	0x8040: 0x402c1a20, 0x8041: 0x002c2a88, 0x8042: 0x002c3288, 0x8043: 0x402c3220,
-	0x8044: 0x0031c488, 0x8045: 0x4031c420, 0x8046: 0x002efa88, 0x8047: 0x002c4e88,
-	0x8048: 0x402c4e20, 0x8049: 0x002c7288, 0x804a: 0x002c7a88, 0x804b: 0x002c8488,
-	0x804c: 0x402c8420, 0x804d: 0xe000115c, 0x804e: 0x002cae88, 0x804f: 0x002cb888,
-	0x8050: 0x002cc288, 0x8051: 0x002d1688, 0x8052: 0x402d1620, 0x8053: 0x002d4488,
-	0x8054: 0x002d5888, 0x8055: 0x402d7820, 0x8056: 0x002dc288, 0x8057: 0x002db688,
-	0x8058: 0x002e0a88, 0x8059: 0x402e0a20, 0x805a: 0x402e3820, 0x805b: 0x402e7220,
-	0x805c: 0x0030a088, 0x805d: 0x002eb488, 0x805e: 0x402ebc20, 0x805f: 0x002f1088,
-	0x8060: 0xe0002b80, 0x8061: 0xe0002e0e, 0x8062: 0x002d6088, 0x8063: 0x402d6020,
-	0x8064: 0x002f3e88, 0x8065: 0x402f3e20, 0x8066: 0x002f8288, 0x8067: 0x0031b488,
-	0x8068: 0x4031b420, 0x8069: 0x00300888, 0x806a: 0x40301220, 0x806b: 0x40304220,
-	0x806c: 0x00304a88, 0x806d: 0x40304a20, 0x806e: 0x00305288, 0x806f: 0xe0002c38,
-	0x8070: 0xe0002ed5, 0x8071: 0x0030b488, 0x8072: 0x0030cc88, 0x8073: 0x00311888,
-	0x8074: 0x40311820, 0x8075: 0x00313488, 0x8076: 0x40313420, 0x8077: 0x00316488,
-	0x8078: 0x00316e88, 0x8079: 0x40316e20, 0x807a: 0x40317820, 0x807b: 0x4031a620,
-	0x807c: 0x0031bc88, 0x807d: 0x4031bc20, 0x807e: 0xe0000fc9, 0x807f: 0x40319420,
-	// Block 0x202, offset 0x8080
-	0x8080: 0x40321220, 0x8081: 0x40321a20, 0x8082: 0x40322220, 0x8083: 0x40322a20,
-	0x8084: 0xe0000ad5, 0x8085: 0xe0000ad1, 0x8086: 0xe0000acd, 0x8087: 0xe0003040,
-	0x8088: 0xe000303d, 0x8089: 0xe000303a, 0x808a: 0xe0003088, 0x808b: 0xe0003085,
-	0x808c: 0xe0003082, 0x808d: 0xe00029c3, 0x808e: 0xe0002cd2, 0x808f: 0xe0002ab5,
-	0x8090: 0xe0002d43, 0x8091: 0xe0002b42, 0x8092: 0xe0002dd0, 0x8093: 0xe0002c02,
-	0x8094: 0xe0002e9f, 0x8095: 0xe0002c17, 0x8096: 0xe0002eb4, 0x8097: 0xe0002c0b,
-	0x8098: 0xe0002ea8, 0x8099: 0xe0002c13, 0x809a: 0xe0002eb0, 0x809b: 0xe0002c0f,
-	0x809c: 0xe0002eac, 0x809d: 0x402cae20, 0x809e: 0xe00029d0, 0x809f: 0xe0002cdf,
-	0x80a0: 0xe00029da, 0x80a1: 0xe0002ce9, 0x80a2: 0xe00009f4, 0x80a3: 0xe00009ef,
-	0x80a4: 0x002d3a88, 0x80a5: 0x402d3a20, 0x80a6: 0xe0002a88, 0x80a7: 0xe0002d13,
-	0x80a8: 0xe0002ae0, 0x80a9: 0xe0002d6e, 0x80aa: 0xe0002b65, 0x80ab: 0xe0002df3,
-	0x80ac: 0xe0002b68, 0x80ad: 0xe0002df6, 0x80ae: 0xe0001162, 0x80af: 0xe000115f,
-	0x80b0: 0xe0002d68, 0x80b1: 0xe0002fe2, 0x80b2: 0xe0002fdf, 0x80b3: 0xe0002fdc,
-	0x80b4: 0xe0002a7f, 0x80b5: 0xe0002d0a, 0x80b6: 0x002d7888, 0x80b7: 0x00319488,
-	0x80b8: 0xe0002b0e, 0x80b9: 0xe0002d9c, 0x80ba: 0xe00029c9, 0x80bb: 0xe0002cd8,
-	0x80bc: 0xe00009ea, 0x80bd: 0xe00009e5, 0x80be: 0xe0000e19, 0x80bf: 0xe0000e15,
-	// Block 0x203, offset 0x80c0
-	0x80c0: 0xe00029e7, 0x80c1: 0xe0002cf6, 0x80c2: 0xe00029ea, 0x80c3: 0xe0002cf9,
-	0x80c4: 0xe0002a69, 0x80c5: 0xe0002fb1, 0x80c6: 0xe0002a6c, 0x80c7: 0xe0002fb4,
-	0x80c8: 0xe0002ace, 0x80c9: 0xe0002d59, 0x80ca: 0xe0002ad1, 0x80cb: 0xe0002d5c,
-	0x80cc: 0xe0002b7a, 0x80cd: 0xe0002e08, 0x80ce: 0xe0002b7d, 0x80cf: 0xe0002e0b,
-	0x80d0: 0xe0002bb0, 0x80d1: 0xe0002e4a, 0x80d2: 0xe0002bb3, 0x80d3: 0xe0002e4d,
-	0x80d4: 0xe0002c32, 0x80d5: 0xe0002ecf, 0x80d6: 0xe0002c35, 0x80d7: 0xe0002ed2,
-	0x80d8: 0xe0002bde, 0x80d9: 0xe0002e78, 0x80da: 0xe0002bed, 0x80db: 0xe0002e8a,
-	0x80dc: 0x00312288, 0x80dd: 0x40312220, 0x80de: 0xe0002a97, 0x80df: 0xe0002d22,
-	0x80e0: 0x002ebc88, 0x80e1: 0x402c8c20, 0x80e2: 0x002f2288, 0x80e3: 0x402f2220,
-	0x80e4: 0x00314088, 0x80e5: 0x40314020, 0x80e6: 0xe00029d7, 0x80e7: 0xe0002ce6,
-	0x80e8: 0xe0002a51, 0x80e9: 0xe0002f99, 0x80ea: 0xe0002b48, 0x80eb: 0xe0002dd6,
-	0x80ec: 0xe0002b5a, 0x80ed: 0xe0002de8, 0x80ee: 0xe0002b5e, 0x80ef: 0xe0002dec,
-	0x80f0: 0xe0002b61, 0x80f1: 0xe0002def, 0x80f2: 0xe0002c8b, 0x80f3: 0xe0002f28,
-	0x80f4: 0x402e5e20, 0x80f5: 0x402ed020, 0x80f6: 0x40305a20, 0x80f7: 0x402dd420,
-	0x80f8: 0xe0000abf, 0x80f9: 0xe0000ec4, 0x80fa: 0x002be888, 0x80fb: 0x002c4488,
-	0x80fc: 0x402c4420, 0x80fd: 0x002e3888, 0x80fe: 0x00303e88, 0x80ff: 0x402ffc20,
-	// Block 0x204, offset 0x8100
-	0x8100: 0xae603502, 0x8101: 0xae603202, 0x8102: 0xae604502, 0x8103: 0xae602202,
-	0x8104: 0xe0000000, 0x8105: 0xaf007f02, 0x8106: 0xae605f02, 0x8107: 0xadc06002,
-	0x8108: 0xadc06002, 0x8109: 0xadc06002, 0x810a: 0xae605f02, 0x810b: 0xae605f02,
-	0x810c: 0xae605f02, 0x810d: 0xadc06002, 0x810e: 0xadc06002, 0x810f: 0xa0000000,
-	0x8110: 0xae605f02, 0x8111: 0xae605f02, 0x8112: 0xae605f02, 0x8113: 0xadc06002,
-	0x8114: 0xadc06002, 0x8115: 0xadc06002, 0x8116: 0xadc06002, 0x8117: 0xae605f02,
-	0x8118: 0xae808002, 0x8119: 0xadc06002, 0x811a: 0xadc06002, 0x811b: 0xae605f02,
-	0x811c: 0xae906002, 0x811d: 0xaea05f02, 0x811e: 0xaea05f02, 0x811f: 0xae906002,
-	0x8120: 0xaea08102, 0x8121: 0xaea08202, 0x8122: 0xae906002, 0x8123: 0x84e615ef,
-	0x8124: 0x84e6164c, 0x8125: 0x84e616cd, 0x8126: 0x84e61771, 0x8127: 0x84e61836,
-	0x8128: 0x84e6161d, 0x8129: 0x84e61631, 0x812a: 0x84e616b4, 0x812b: 0x84e61741,
-	0x812c: 0x84e617bd, 0x812d: 0x84e61816, 0x812e: 0x84e6185f, 0x812f: 0x84e6187b,
-	0x8130: 0x00326688, 0x8131: 0x40326620, 0x8132: 0x0032a688, 0x8133: 0x4032a620,
-	0x8134: 0x40064020, 0x8135: 0x40064220, 0x8136: 0x00326088, 0x8137: 0x40326020,
-	0x813a: 0x00326c84, 0x813b: 0x40329220,
-	0x813c: 0x40329020, 0x813d: 0x40329420, 0x813e: 0x402c6220,
-	// Block 0x205, offset 0x8140
-	0x8140: 0xe00029f8, 0x8141: 0xe0002d07, 0x8142: 0xe00029fb, 0x8143: 0xe0002f43,
-	0x8144: 0xe00029fe, 0x8145: 0xe0002f46, 0x8146: 0xe0002a01, 0x8147: 0xe0002f49,
-	0x8148: 0xe0002a13, 0x8149: 0xe0002f5b, 0x814a: 0xe0002a1a, 0x814b: 0xe0002f62,
-	0x814c: 0xe0002a20, 0x814d: 0xe0002f68, 0x814e: 0xe0002a26, 0x814f: 0xe0002f6e,
-	0x8150: 0xe0002a1d, 0x8151: 0xe0002f65, 0x8152: 0xe0002a23, 0x8153: 0xe0002f6b,
-	0x8154: 0xe0002a62, 0x8155: 0xe0002faa, 0x8156: 0xe0002a5e, 0x8157: 0xe0002fa6,
-	0x8158: 0xe0002a76, 0x8159: 0xe0002fbe, 0x815a: 0xe0002a79, 0x815b: 0xe0002fc1,
-	0x815c: 0xe0002a54, 0x815d: 0xe0002f9c, 0x815e: 0xe0002a7c, 0x815f: 0xe0002fca,
-	0x8160: 0xe0002a91, 0x8161: 0xe0002d1c, 0x8162: 0xe0002a9d, 0x8163: 0xe0002d28,
-	0x8164: 0xe0002aa3, 0x8165: 0xe0002d2e, 0x8166: 0xe0002a9a, 0x8167: 0xe0002d25,
-	0x8168: 0xe0002aa0, 0x8169: 0xe0002d2b, 0x816a: 0xe0002aa6, 0x816b: 0xe0002d31,
-	0x816c: 0xe0002ad7, 0x816d: 0xe0002d62, 0x816e: 0xe0002abb, 0x816f: 0xe0002d49,
-	0x8170: 0xe0002add, 0x8171: 0xe0002d6b, 0x8172: 0xe0002ae6, 0x8173: 0xe0002d74,
-	0x8174: 0xe0002ae9, 0x8175: 0xe0002d77, 0x8176: 0xe0002af5, 0x8177: 0xe0002d83,
-	0x8178: 0xe0002af8, 0x8179: 0xe0002d86, 0x817a: 0xe0002aff, 0x817b: 0xe0002d8d,
-	0x817c: 0xe0002afc, 0x817d: 0xe0002d8a, 0x817e: 0xe0002b02, 0x817f: 0xe0002d90,
-	// Block 0x206, offset 0x8180
-	0x8180: 0xe0002b05, 0x8181: 0xe0002d93, 0x8182: 0xe0002b08, 0x8183: 0xe0002d96,
-	0x8184: 0xe0002b17, 0x8185: 0xe0002da5, 0x8186: 0xe0002b1d, 0x8187: 0xe0002dab,
-	0x8188: 0xe0002b23, 0x8189: 0xe0002db1, 0x818a: 0xe0002b20, 0x818b: 0xe0002dae,
-	0x818c: 0xe0002b52, 0x818d: 0xe0002de0, 0x818e: 0xe0002b56, 0x818f: 0xe0002de4,
-	0x8190: 0xe0002b73, 0x8191: 0xe0002e01, 0x8192: 0xe0002b6f, 0x8193: 0xe0002dfd,
-	0x8194: 0xe0002b9e, 0x8195: 0xe0002e38, 0x8196: 0xe0002ba1, 0x8197: 0xe0002e3b,
-	0x8198: 0xe0002baa, 0x8199: 0xe0002e44, 0x819a: 0xe0002bb6, 0x819b: 0xe0002e50,
-	0x819c: 0xe0002bb9, 0x819d: 0xe0002e53, 0x819e: 0xe0002bbd, 0x819f: 0xe0002e57,
-	0x81a0: 0xe0002bd1, 0x81a1: 0xe0002e6b, 0x81a2: 0xe0002bd7, 0x81a3: 0xe0002e71,
-	0x81a4: 0xe0002bc3, 0x81a5: 0xe0002e5d, 0x81a6: 0xe0002bcd, 0x81a7: 0xe0002e67,
-	0x81a8: 0xe0002bda, 0x81a9: 0xe0002e74, 0x81aa: 0xe0002be4, 0x81ab: 0xe0002e81,
-	0x81ac: 0xe0002bea, 0x81ad: 0xe0002e87, 0x81ae: 0xe0002bf3, 0x81af: 0xe0002e90,
-	0x81b0: 0xe0002bf0, 0x81b1: 0xe0002e8d, 0x81b2: 0xe0002c52, 0x81b3: 0xe0002eef,
-	0x81b4: 0xe0002c58, 0x81b5: 0xe0002ef5, 0x81b6: 0xe0002c55, 0x81b7: 0xe0002ef2,
-	0x81b8: 0xe0002c21, 0x81b9: 0xe0002ebe, 0x81ba: 0xe0002c2b, 0x81bb: 0xe0002ec8,
-	0x81bc: 0xe0002c5b, 0x81bd: 0xe0002ef8, 0x81be: 0xe0002c5e, 0x81bf: 0xe0002efb,
-	// Block 0x207, offset 0x81c0
-	0x81c0: 0xe0002c64, 0x81c1: 0xe0002f01, 0x81c2: 0xe0002c61, 0x81c3: 0xe0002efe,
-	0x81c4: 0xe0002c6a, 0x81c5: 0xe0002f0a, 0x81c6: 0xe0002c6d, 0x81c7: 0xe0002f0d,
-	0x81c8: 0xe0002c70, 0x81c9: 0xe0002f10, 0x81ca: 0xe0002c76, 0x81cb: 0xe0002fc7,
-	0x81cc: 0xe0002c73, 0x81cd: 0xe0002fc4, 0x81ce: 0xe0002c88, 0x81cf: 0xe0002f25,
-	0x81d0: 0xe0002c97, 0x81d1: 0xe0002f34, 0x81d2: 0xe0002ca0, 0x81d3: 0xe0002f3d,
-	0x81d4: 0xe0002ca3, 0x81d5: 0xe0002f40, 0x81d6: 0xe0002d34, 0x81d7: 0xe0002e7e,
-	0x81d8: 0xe0002f07, 0x81d9: 0xe0002f1c, 0x81da: 0xe0002994, 0x81db: 0xe0000f70,
-	0x81dc: 0x40300420, 0x81dd: 0x40300620, 0x81de: 0xe0000f7f, 0x81df: 0x402c9620,
-	0x81e0: 0xe00029ed, 0x81e1: 0xe0002cfc, 0x81e2: 0xe00029e4, 0x81e3: 0xe0002cf3,
-	0x81e4: 0xe00029b3, 0x81e5: 0xe0002cc2, 0x81e6: 0xe00029b7, 0x81e7: 0xe0002cc6,
-	0x81e8: 0xe00029bf, 0x81e9: 0xe0002cce, 0x81ea: 0xe00029bb, 0x81eb: 0xe0002cca,
-	0x81ec: 0xe00029f4, 0x81ed: 0xe0002d03, 0x81ee: 0xe00029a0, 0x81ef: 0xe0002caf,
-	0x81f0: 0xe00029a4, 0x81f1: 0xe0002cb3, 0x81f2: 0xe00029ac, 0x81f3: 0xe0002cbb,
-	0x81f4: 0xe00029a8, 0x81f5: 0xe0002cb7, 0x81f6: 0xe00029f0, 0x81f7: 0xe0002cff,
-	0x81f8: 0xe0002a6f, 0x81f9: 0xe0002fb7, 0x81fa: 0xe0002a66, 0x81fb: 0xe0002fae,
-	0x81fc: 0xe0002a4b, 0x81fd: 0xe0002f93, 0x81fe: 0xe0002a35, 0x81ff: 0xe0002f7d,
-	// Block 0x208, offset 0x8200
-	0x8200: 0xe0002a39, 0x8201: 0xe0002f81, 0x8202: 0xe0002a41, 0x8203: 0xe0002f89,
-	0x8204: 0xe0002a3d, 0x8205: 0xe0002f85, 0x8206: 0xe0002a72, 0x8207: 0xe0002fba,
-	0x8208: 0xe0002acb, 0x8209: 0xe0002d56, 0x820a: 0xe0002ad4, 0x820b: 0xe0002d5f,
-	0x820c: 0xe0002b97, 0x820d: 0xe0002e25, 0x820e: 0xe0002b77, 0x820f: 0xe0002e05,
-	0x8210: 0xe0002b32, 0x8211: 0xe0002dc0, 0x8212: 0xe0002b36, 0x8213: 0xe0002dc4,
-	0x8214: 0xe0002b3e, 0x8215: 0xe0002dcc, 0x8216: 0xe0002b3a, 0x8217: 0xe0002dc8,
-	0x8218: 0xe0002b9a, 0x8219: 0xe0002e28, 0x821a: 0xe0002b83, 0x821b: 0xe0002e11,
-	0x821c: 0xe0002b87, 0x821d: 0xe0002e15, 0x821e: 0xe0002b8f, 0x821f: 0xe0002e1d,
-	0x8220: 0xe0002b8b, 0x8221: 0xe0002e19, 0x8222: 0xe0002b93, 0x8223: 0xe0002e21,
-	0x8224: 0xe0002c4f, 0x8225: 0xe0002eec, 0x8226: 0xe0002c2f, 0x8227: 0xe0002ecc,
-	0x8228: 0xe0002c3b, 0x8229: 0xe0002ed8, 0x822a: 0xe0002c3f, 0x822b: 0xe0002edc,
-	0x822c: 0xe0002c47, 0x822d: 0xe0002ee4, 0x822e: 0xe0002c43, 0x822f: 0xe0002ee0,
-	0x8230: 0xe0002c4b, 0x8231: 0xe0002ee8, 0x8232: 0xe0002c7c, 0x8233: 0xe0002f16,
-	0x8234: 0xe0002c91, 0x8235: 0xe0002f2e, 0x8236: 0xe0002c8e, 0x8237: 0xe0002f2b,
-	0x8238: 0xe0002c85, 0x8239: 0xe0002f22, 0x823a: 0xe0000d0a, 0x823b: 0xe0000d07,
-	0x823c: 0x0030d888, 0x823d: 0x4030d820, 0x823e: 0x00312088, 0x823f: 0x40312020,
-	// Block 0x209, offset 0x8240
-	0x8240: 0x40063a20, 0x8241: 0xe00000b1, 0x8242: 0xe00012ea, 0x8243: 0xe00012f5,
-	0x8244: 0xe00012e0, 0x8246: 0xe00012ee, 0x8247: 0xe00012f1,
-	0x8248: 0xe000124f, 0x8249: 0xe0001249, 0x824a: 0xe00012e7, 0x824b: 0xe00012dd,
-	0x824c: 0xe00012f8, 0x824d: 0xe00000b7, 0x824e: 0xe00000b4, 0x824f: 0xe00000ba,
-	0x8250: 0xe0001343, 0x8251: 0xe000135e, 0x8252: 0xe0001356, 0x8253: 0xe0001352,
-	0x8256: 0xe0001349, 0x8257: 0xe000135a,
-	0x8258: 0xe0001346, 0x8259: 0xe0001361, 0x825a: 0xe0001340, 0x825b: 0xe000133a,
-	0x825d: 0xe00000c0, 0x825e: 0xe00000bd, 0x825f: 0xe00000c3,
-	0x8260: 0xe00013e6, 0x8261: 0xe0001401, 0x8262: 0xe00013f9, 0x8263: 0xe00013f5,
-	0x8264: 0xe00013a4, 0x8265: 0xe00013a7, 0x8266: 0xe00013ec, 0x8267: 0xe00013fd,
-	0x8268: 0xe00013e9, 0x8269: 0xe0001404, 0x826a: 0xe00013e3, 0x826b: 0xe00013dd,
-	0x826c: 0xe00013aa, 0x826d: 0xe00000ae, 0x826e: 0xe00000ab, 0x826f: 0x402c2620,
-	0x8272: 0xe000149f, 0x8273: 0xe00014aa,
-	0x8274: 0xe0001495, 0x8276: 0xe00014a3, 0x8277: 0xe00014a6,
-	0x8278: 0xe00013a1, 0x8279: 0xe000139b, 0x827a: 0xe000149c, 0x827b: 0xe0001492,
-	0x827c: 0xe00014ad, 0x827d: 0x40062020, 0x827e: 0x40063820,
-	// Block 0x20a, offset 0x8280
-	0x8280: 0x00021284, 0x8281: 0x00021284, 0x8282: 0x00021284, 0x8283: 0x00021284,
-	0x8284: 0x00021284, 0x8285: 0x00021284, 0x8286: 0x00021284, 0x8287: 0x0002129b,
-	0x8288: 0x00021284, 0x8289: 0x00021284, 0x828a: 0x00021284, 0x828b: 0xa0000000,
-	0x828c: 0xa0000000, 0x828d: 0xa0000000, 0x828e: 0xa0000000, 0x828f: 0xa0000000,
-	0x8290: 0x40022620, 0x8291: 0x0002269b, 0x8292: 0x40022820, 0x8293: 0x40022a20,
-	0x8294: 0x40022c20, 0x8295: 0x40022e20, 0x8296: 0x4004c420, 0x8297: 0x40021820,
-	0x8298: 0x4003d420, 0x8299: 0x4003d620, 0x829a: 0x4003d820, 0x829b: 0x4003da20,
-	0x829c: 0x4003e220, 0x829d: 0x4003e420, 0x829e: 0x4003e620, 0x829f: 0x4003e820,
-	0x82a0: 0x4004f820, 0x82a1: 0x4004fa20, 0x82a2: 0x40050220, 0x82a3: 0x40050420,
-	0x82a4: 0x0002e484, 0x82a5: 0xf0001f04, 0x82a6: 0xf0000404, 0x82a7: 0x40050620,
-	0x82a8: 0x40020e20, 0x82a9: 0x40021020, 0x82aa: 0xa0000000, 0x82ab: 0xa0000000,
-	0x82ac: 0xa0000000, 0x82ad: 0xa0000000, 0x82ae: 0xa0000000, 0x82af: 0x0002129b,
-	0x82b0: 0x4004f020, 0x82b1: 0x4004f420, 0x82b2: 0x40050e20, 0x82b3: 0xf0001f04,
-	0x82b4: 0xf0000404, 0x82b5: 0x40051020, 0x82b6: 0xf0001f04, 0x82b7: 0xf0000404,
-	0x82b8: 0x40051620, 0x82b9: 0x4003dc20, 0x82ba: 0x4003de20, 0x82bb: 0x40051820,
-	0x82bc: 0xe00027ab, 0x82bd: 0x4002e020, 0x82be: 0x40021420, 0x82bf: 0x40051a20,
-	// Block 0x20b, offset 0x82c0
-	0x82c0: 0x40051e20, 0x82c1: 0x40052220, 0x82c2: 0x40052420, 0x82c3: 0x40050820,
-	0x82c4: 0x40095820, 0x82c5: 0x40040c20, 0x82c6: 0x40040e20, 0x82c7: 0xf0001f04,
-	0x82c8: 0xe00027b1, 0x82c9: 0xe00027ae, 0x82ca: 0x4004e820, 0x82cb: 0x4004d420,
-	0x82cc: 0x40050a20, 0x82cd: 0x40050c20, 0x82ce: 0x4004da20, 0x82cf: 0x40026620,
-	0x82d0: 0x40052020, 0x82d1: 0x4004dc20, 0x82d2: 0x40095020, 0x82d3: 0x40023420,
-	0x82d4: 0x40051c20, 0x82d5: 0x40039c20, 0x82d6: 0x40039e20, 0x82d7: 0xe00000a6,
-	0x82d8: 0x4003a020, 0x82d9: 0x4003a220, 0x82da: 0x4003a420, 0x82db: 0x4003a620,
-	0x82dc: 0x4003a820, 0x82dd: 0x4003aa20, 0x82de: 0x4003ac20, 0x82df: 0x00021284,
-	0x82e0: 0xa0000000, 0x82e1: 0xa0000000, 0x82e2: 0xa0000000, 0x82e3: 0xa0000000,
-	0x82e4: 0xa0000000,
-	0x82ea: 0xa0000000, 0x82eb: 0xa0000000,
-	0x82ec: 0xa0000000, 0x82ed: 0xa0000000, 0x82ee: 0xa0000000, 0x82ef: 0xa0000000,
-	0x82f0: 0x0029cc94, 0x82f1: 0x002d9a94,
-	0x82f4: 0x0029d494, 0x82f5: 0x0029d694, 0x82f6: 0x0029d894, 0x82f7: 0x0029da94,
-	0x82f8: 0x0029dc94, 0x82f9: 0x0029de94, 0x82fa: 0x00093894, 0x82fb: 0x00094e94,
-	0x82fc: 0x00094294, 0x82fd: 0x0003f494, 0x82fe: 0x0003f694, 0x82ff: 0x002e9e94,
-	// Block 0x20c, offset 0x8300
-	0x8300: 0xe00009bc, 0x8301: 0xe00009c0, 0x8302: 0x002c3a8b, 0x8303: 0xe0002960,
-	0x8304: 0x40081c20, 0x8305: 0xe0000a5e, 0x8306: 0xe0000a62, 0x8307: 0x002cc28a,
-	0x8308: 0x40081e20, 0x8309: 0xe0002963, 0x830a: 0x002d2285, 0x830b: 0x002d688b,
-	0x830c: 0x002d688b, 0x830d: 0x002d688b, 0x830e: 0x002d6885, 0x830f: 0xf0000202,
-	0x8310: 0x002d9a8b, 0x8311: 0x002d9a8b, 0x8312: 0x002e228b, 0x8313: 0x002e2285,
-	0x8314: 0x40082020, 0x8315: 0x002e9e8b, 0x8316: 0xe000308e, 0x8317: 0x40082220,
-	0x8318: 0x40082420, 0x8319: 0x002f2c8b, 0x831a: 0x002f568b, 0x831b: 0x002f7a8b,
-	0x831c: 0x002f7a8b, 0x831d: 0x002f7a8b, 0x831e: 0x40082620, 0x831f: 0x40082820,
-	0x8320: 0xe00030bb, 0x8321: 0xe0000fbd, 0x8322: 0xe00030ca, 0x8323: 0x40082a20,
-	0x8324: 0x00312a8b, 0x8325: 0x40082c20, 0x8326: 0x0032a288, 0x8327: 0x40082e20,
-	0x8328: 0x00312a8b, 0x8329: 0x40083020, 0x832a: 0x402c0620, 0x832b: 0xe00029c6,
-	0x832c: 0x002c0a8b, 0x832d: 0x002c3a8b, 0x832e: 0x40083220, 0x832f: 0x002c9885,
-	0x8330: 0x002c988b, 0x8331: 0x002d088b, 0x8332: 0x002d1e88, 0x8333: 0x002e828b,
-	0x8334: 0x002ee285, 0x8335: 0x00389084, 0x8336: 0x00389284, 0x8337: 0x00389484,
-	0x8338: 0x00389684, 0x8339: 0x002d9a85, 0x833a: 0x40083420, 0x833b: 0xe0000b95,
-	0x833c: 0x00327e85, 0x833d: 0x00325685, 0x833e: 0x0032568b, 0x833f: 0x00327e8b,
-	// Block 0x20d, offset 0x8340
-	0x8340: 0x00093685, 0x8341: 0x40083620, 0x8342: 0x40083820, 0x8343: 0x40083a20,
-	0x8344: 0x40083c20, 0x8345: 0x002c628b, 0x8346: 0x002c6285, 0x8347: 0x002c9885,
-	0x8348: 0x002d9a85, 0x8349: 0x002dcc85, 0x834a: 0x40083e20, 0x834b: 0x400a6e20,
-	0x834c: 0x40084020, 0x834d: 0xe00009c4, 0x834e: 0x402d1e20, 0x834f: 0x40084220,
-	0x8350: 0xe00002cb, 0x8351: 0xe00002d3, 0x8352: 0xe00002b2, 0x8353: 0xe00002bb,
-	0x8354: 0xe00003cd, 0x8355: 0xe00002c3, 0x8356: 0xe00003d1, 0x8357: 0xe00004ab,
-	0x8358: 0xe0000579, 0x8359: 0xe00002c7, 0x835a: 0xe0000640, 0x835b: 0xe00002cf,
-	0x835c: 0xe00004af, 0x835d: 0xe0000644, 0x835e: 0xe0000798, 0x835f: 0xf0001e1e,
-	0x8360: 0x002d9a8a, 0x8361: 0xe000256e, 0x8362: 0xe0002571, 0x8363: 0xe000257b,
-	0x8364: 0x0030be8a, 0x8365: 0xe00025ab, 0x8366: 0xe00025ae, 0x8367: 0xe00010bb,
-	0x8368: 0xe0002581, 0x8369: 0x0030f68a, 0x836a: 0xe00025b5, 0x836b: 0xe00025bc,
-	0x836c: 0x002e228a, 0x836d: 0x002c3a8a, 0x836e: 0x002c628a, 0x836f: 0x002e828a,
-	0x8370: 0x002d9a84, 0x8371: 0xe0003009, 0x8372: 0xe000300c, 0x8373: 0xe0003016,
-	0x8374: 0x0030be84, 0x8375: 0xe00030cd, 0x8376: 0xe00030d0, 0x8377: 0xe00010b6,
-	0x8378: 0xe000257e, 0x8379: 0x0030f684, 0x837a: 0xe00025b2, 0x837b: 0xe00025b8,
-	0x837c: 0x002e2284, 0x837d: 0x002c3a84, 0x837e: 0x002c6284, 0x837f: 0x002e8284,
-	// Block 0x20e, offset 0x8380
-	0x8380: 0x400d1820, 0x8381: 0x400d1a20, 0x8382: 0x400d1c20, 0x8383: 0x400d1e20,
-	0x8384: 0x400d2020, 0x8385: 0x400d2220, 0x8386: 0x400d2420, 0x8387: 0x400d2620,
-	0x8388: 0x400d2820, 0x8389: 0x400d2a20, 0x838a: 0x400d2c20,
-	0x83a0: 0x0029ce86, 0x83a1: 0x0029d086, 0x83a2: 0x0029d286, 0x83a3: 0x0029d486,
-	0x83a4: 0x0029d686, 0x83a5: 0x0029d886, 0x83a6: 0x0029da86, 0x83a7: 0x0029dc86,
-	0x83a8: 0x0029de86, 0x83a9: 0xf0000606, 0x83aa: 0xf0000606, 0x83ab: 0xf0000606,
-	0x83ac: 0xf0000606, 0x83ad: 0xf0000606, 0x83ae: 0xf0000606, 0x83af: 0xf0000606,
-	0x83b0: 0xe0002966, 0x83b1: 0xf0000606, 0x83b2: 0xf0000606, 0x83b3: 0xf0000606,
-	0x83b4: 0xe00027b4, 0x83b5: 0xe00027b8, 0x83b6: 0xe00027bc, 0x83b7: 0xe00027c0,
-	0x83b8: 0xe00027c4, 0x83b9: 0xe00027c8, 0x83ba: 0xe00027cc, 0x83bb: 0xe00027d0,
-	0x83bc: 0xe00027d4, 0x83bd: 0xe0000015, 0x83be: 0xe000001a, 0x83bf: 0xe000001f,
-	// Block 0x20f, offset 0x83c0
-	0x83c0: 0xe0000024, 0x83c1: 0xe0000029, 0x83c2: 0xe000002e, 0x83c3: 0xe0000033,
-	0x83c4: 0xe0000038, 0x83c5: 0xe000003d, 0x83c6: 0xe0000042, 0x83c7: 0xe0000047,
-	0x83c8: 0xf0001f04, 0x83c9: 0xf0001f04, 0x83ca: 0xf0001f04, 0x83cb: 0xf0001f04,
-	0x83cc: 0xf0001f04, 0x83cd: 0xf0001f04, 0x83ce: 0xe0002985, 0x83cf: 0xf0001f04,
-	0x83d0: 0xf0001f04, 0x83d1: 0xf0000404, 0x83d2: 0xf0000404, 0x83d3: 0xf0000404,
-	0x83d4: 0xf0000404, 0x83d5: 0xf0000404, 0x83d6: 0xf0000404, 0x83d7: 0xf0000404,
-	0x83d8: 0xe0002969, 0x83d9: 0xf0000404, 0x83da: 0xf0000404, 0x83db: 0xf0000404,
-	0x83dc: 0xe00027d8, 0x83dd: 0xe00027e0, 0x83de: 0xe00027e8, 0x83df: 0xe00027f0,
-	0x83e0: 0xe00027f8, 0x83e1: 0xe0002800, 0x83e2: 0xe0002808, 0x83e3: 0xe0002810,
-	0x83e4: 0xe0002818, 0x83e5: 0xe000281c, 0x83e6: 0xe0002824, 0x83e7: 0xe000282c,
-	0x83e8: 0xe0002834, 0x83e9: 0xe000283c, 0x83ea: 0xe0002844, 0x83eb: 0xe000284c,
-	0x83ec: 0xe000251b, 0x83ed: 0xe0002854, 0x83ee: 0xe000285c, 0x83ef: 0xe0002864,
-	0x83f0: 0xe000286c, 0x83f1: 0xe0002874, 0x83f2: 0xe000287c, 0x83f3: 0xe0002523,
-	0x83f4: 0xe0002884, 0x83f5: 0xe000288c, 0x83f6: 0x002bde8c, 0x83f7: 0x002c0a8c,
-	0x83f8: 0x002c3a8c, 0x83f9: 0x002c628c, 0x83fa: 0x002c988c, 0x83fb: 0x002d088c,
-	0x83fc: 0x002d228c, 0x83fd: 0x002d688c, 0x83fe: 0x002d9a8c, 0x83ff: 0x002dcc8c,
-	// Block 0x210, offset 0x8400
-	0x8400: 0xe0002894, 0x8401: 0xe0002898, 0x8402: 0xe000289c, 0x8403: 0xe00028a0,
-	0x8404: 0xe00028a4, 0x8405: 0xe00028a8, 0x8406: 0xe00028ac, 0x8407: 0xe00028b0,
-	0x8408: 0xe00028b4, 0x8409: 0xe00028b8, 0x840a: 0xe00028bc, 0x840b: 0xe00028c0,
-	0x840c: 0xe00028c4, 0x840d: 0xe00028c8, 0x840e: 0xe000004c, 0x840f: 0xe0000051,
-	0x8410: 0xe0000056, 0x8411: 0xe000005b, 0x8412: 0xe0000060, 0x8413: 0xe0000065,
-	0x8414: 0xe000006a, 0x8415: 0xe000006f, 0x8416: 0xe0000083, 0x8417: 0xe000008d,
-	0x8418: 0xe0000092, 0x8419: 0xe0000097, 0x841a: 0xe000009c, 0x841b: 0xe00000a1,
-	0x841c: 0xe0000088, 0x841d: 0xe0000074, 0x841e: 0xe000007c,
-	0x8420: 0xe00028cc, 0x8421: 0xe00028dc, 0x8422: 0xe00028d4, 0x8423: 0xe000290c,
-	0x8424: 0xe00028e0, 0x8425: 0xe00028f4, 0x8426: 0xe00028d0, 0x8427: 0xe00028f0,
-	0x8428: 0xe00028d8, 0x8429: 0xe00028fc, 0x842a: 0xe000291c, 0x842b: 0xe0002930,
-	0x842c: 0xe000292c, 0x842d: 0xe0002924, 0x842e: 0xe0002958, 0x842f: 0xe0002910,
-	0x8430: 0xe0002918, 0x8431: 0xe0002928, 0x8432: 0xe0002920, 0x8433: 0xe000293c,
-	0x8434: 0xe0002904, 0x8435: 0xe0002934, 0x8436: 0xe0002950, 0x8437: 0xe0002940,
-	0x8438: 0xe00028f8, 0x8439: 0xe00028e4, 0x843a: 0xe0002908, 0x843b: 0xe0002914,
-	0x843c: 0xe0002938, 0x843d: 0xe00028e8, 0x843e: 0xe0002954, 0x843f: 0xe0002900,
-	// Block 0x211, offset 0x8440
-	0x8440: 0xe0002944, 0x8441: 0xe00028ec, 0x8442: 0xe0002948, 0x8443: 0xe000294c,
-	0x8444: 0x02aa9e86, 0x8445: 0x02bcf886, 0x8446: 0x02cb0e86, 0x8447: 0x02f71e86,
-	0x8448: 0xe00002e3, 0x8449: 0xe00003d8, 0x844a: 0xe00004b3, 0x844b: 0xe000057d,
-	0x844c: 0xe0000648, 0x844d: 0xe00006f0, 0x844e: 0xe000079c, 0x844f: 0xe0000841,
-	0x8450: 0xe0000ec0, 0x8451: 0xf0000606, 0x8452: 0xf0000606, 0x8453: 0xf0000606,
-	0x8454: 0xf0000606, 0x8455: 0xf0000606, 0x8456: 0xf0000606, 0x8457: 0xe0002975,
-	0x8458: 0xf0000606, 0x8459: 0xf0000606, 0x845a: 0xf0000606, 0x845b: 0xf0000606,
-	0x845c: 0xf0000606, 0x845d: 0xf0000606, 0x845e: 0xf0000606, 0x845f: 0xf0000606,
-	0x8460: 0x0062ac86, 0x8461: 0x0062b086, 0x8462: 0x0062b286, 0x8463: 0x0062b686,
-	0x8464: 0x0062b886, 0x8465: 0x0062ba86, 0x8466: 0x0062be86, 0x8467: 0x0062c286,
-	0x8468: 0x0062c486, 0x8469: 0x0062c886, 0x846a: 0x0062ca86, 0x846b: 0x0062cc86,
-	0x846c: 0x0062ce86, 0x846d: 0x0062d086, 0x846e: 0xf0000606, 0x846f: 0xf0000606,
-	0x8470: 0xf0000606, 0x8471: 0xf0000606, 0x8472: 0xf0000606, 0x8473: 0xf0000606,
-	0x8474: 0xf0000606, 0x8475: 0xf0000606, 0x8476: 0xf0000606, 0x8477: 0xf0000606,
-	0x8478: 0xf0000606, 0x8479: 0xf0000606, 0x847a: 0xf0000606, 0x847b: 0xf0000606,
-	0x847c: 0xe0002127, 0x847d: 0xe0002122, 0x847e: 0xf0000606, 0x847f: 0x4027ac20,
-	// Block 0x212, offset 0x8480
-	0x8480: 0x029c0086, 0x8481: 0x029d1886, 0x8482: 0x029c1286, 0x8483: 0x02adb686,
-	0x8484: 0x029d2886, 0x8485: 0x02a2da86, 0x8486: 0x029c0686, 0x8487: 0x02a2d686,
-	0x8488: 0x029cba86, 0x8489: 0x02a68286, 0x848a: 0x02ce1086, 0x848b: 0x02e0d686,
-	0x848c: 0x02d86886, 0x848d: 0x02ce5086, 0x848e: 0x0323a286, 0x848f: 0x02ae3e86,
-	0x8490: 0x02cbca86, 0x8491: 0x02d05486, 0x8492: 0x02ce1286, 0x8493: 0x02f27c86,
-	0x8494: 0x02a81a86, 0x8495: 0x02e4f286, 0x8496: 0x03194286, 0x8497: 0x02f2ba86,
-	0x8498: 0x02a56886, 0x8499: 0x02f3b086, 0x849a: 0x02ea6e86, 0x849b: 0x02b2e686,
-	0x849c: 0x0320d286, 0x849d: 0x02a25486, 0x849e: 0x02a6e086, 0x849f: 0x02d9d086,
-	0x84a0: 0x03300a86, 0x84a1: 0x029e2286, 0x84a2: 0x02a33286, 0x84a3: 0x02d6c686,
-	0x84a4: 0x029c1486, 0x84a5: 0x029c5a86, 0x84a6: 0x029c1686, 0x84a7: 0x02bbcc86,
-	0x84a8: 0x02a7e686, 0x84a9: 0x02a67686, 0x84aa: 0x02b72e86, 0x84ab: 0x02b6cc86,
-	0x84ac: 0x02edc686, 0x84ad: 0x029e0286, 0x84ae: 0x03198e86, 0x84af: 0x02a6a886,
-	0x84b0: 0x02b23886, 0x84b1: 0xf0000606, 0x84b2: 0xe000297c, 0x84b3: 0xf0000606,
-	0x84b4: 0xf0000606, 0x84b5: 0xf0000606, 0x84b6: 0xf0000606, 0x84b7: 0xf0000606,
-	0x84b8: 0xf0000606, 0x84b9: 0xf0000606, 0x84ba: 0xf0000606, 0x84bb: 0xf0000606,
-	0x84bc: 0xe000297f, 0x84bd: 0xf0000606, 0x84be: 0xf0000606, 0x84bf: 0xf0000606,
-	// Block 0x213, offset 0x84c0
-	0x84c0: 0xf0001f04, 0x84c1: 0xf0001f04, 0x84c2: 0xf0001f04, 0x84c3: 0xf0001f04,
-	0x84c4: 0xf0001f04, 0x84c5: 0xf0001f04, 0x84c6: 0xe000298b, 0x84c7: 0xf0001f04,
-	0x84c8: 0xf0001f04, 0x84c9: 0xf0000404, 0x84ca: 0xf0000404, 0x84cb: 0xf0000404,
-	0x84cc: 0xe0002ffd, 0x84cd: 0xe0000b85, 0x84ce: 0xe0002fe5, 0x84cf: 0xe0000d14,
-	0x84d0: 0x00657693, 0x84d1: 0x00657893, 0x84d2: 0x00657a93, 0x84d3: 0x00657e93,
-	0x84d4: 0x00658093, 0x84d5: 0x00658293, 0x84d6: 0x00658493, 0x84d7: 0x00658693,
-	0x84d8: 0x00658893, 0x84d9: 0x00658a93, 0x84da: 0x00658c93, 0x84db: 0x00658e93,
-	0x84dc: 0x00659093, 0x84dd: 0x00659293, 0x84de: 0x00659493, 0x84df: 0x00659693,
-	0x84e0: 0x00659893, 0x84e1: 0x00659a93, 0x84e2: 0x00659c93, 0x84e3: 0x00659e93,
-	0x84e4: 0x0065a093, 0x84e5: 0x0065a293, 0x84e6: 0x0065a493, 0x84e7: 0x0065a693,
-	0x84e8: 0x0065a893, 0x84e9: 0x0065aa93, 0x84ea: 0x0065ac93, 0x84eb: 0x0065ae93,
-	0x84ec: 0x0065b093, 0x84ed: 0x0065b293, 0x84ee: 0x0065b493, 0x84ef: 0x0065b693,
-	0x84f0: 0x0065b893, 0x84f1: 0x0065ba93, 0x84f2: 0x0065bc93, 0x84f3: 0x0065be93,
-	0x84f4: 0x0065c093, 0x84f5: 0x0065c493, 0x84f6: 0x0065c693, 0x84f7: 0x0065c893,
-	0x84f8: 0x0065ca93, 0x84f9: 0x0065cc93, 0x84fa: 0x0065ce93, 0x84fb: 0x0065d093,
-	0x84fc: 0x0065d293, 0x84fd: 0x0065d493, 0x84fe: 0x0065d693,
-	// Block 0x214, offset 0x8500
-	0x8500: 0xe000230b, 0x8501: 0xe00022f8, 0x8502: 0xe00022fc, 0x8503: 0xe0002311,
-	0x8504: 0xe0002316, 0x8505: 0xe000231d, 0x8506: 0xe0002321, 0x8507: 0xe0002325,
-	0x8508: 0xe000232b, 0x8509: 0xf0001c1c, 0x850a: 0xe0002330, 0x850b: 0xe000233c,
-	0x850c: 0xe0002340, 0x850d: 0xe0002337, 0x850e: 0xe0002346, 0x850f: 0xe000234b,
-	0x8510: 0xe000234f, 0x8511: 0xe0002353, 0x8512: 0xf0001c1c, 0x8513: 0xe000235e,
-	0x8514: 0xe0002358, 0x8515: 0xf0001c1c, 0x8516: 0xe0002363, 0x8517: 0xe000236d,
-	0x8518: 0xf0001f04, 0x8519: 0xf0001f04, 0x851a: 0xf0001f04, 0x851b: 0xf0001f04,
-	0x851c: 0xf0001f04, 0x851d: 0xf0001f04, 0x851e: 0xf0001f04, 0x851f: 0xe000298e,
-	0x8520: 0xf0001f04, 0x8521: 0xf0001f04, 0x8522: 0xf0000404, 0x8523: 0xf0000404,
-	0x8524: 0xf0000404, 0x8525: 0xf0000404, 0x8526: 0xf0000404, 0x8527: 0xf0000404,
-	0x8528: 0xf0000404, 0x8529: 0xe0002971, 0x852a: 0xf0000404, 0x852b: 0xf0000404,
-	0x852c: 0xf0000404, 0x852d: 0xf0000404, 0x852e: 0xf0000404, 0x852f: 0xf0000404,
-	0x8530: 0xf0000404, 0x8531: 0xe0000c1e, 0x8532: 0xe0002fcd, 0x8533: 0xe0002991,
-	0x8534: 0xe0000a31, 0x8535: 0xe000309a, 0x8536: 0xe00030a3, 0x8537: 0xe0002fd9,
-	0x8538: 0xe0000ac2, 0x8539: 0xe0000ac6, 0x853a: 0xe0002578, 0x853b: 0xf0001c1c,
-	0x853c: 0xf0001c1c, 0x853d: 0xf0001c1c, 0x853e: 0xf0001c1c, 0x853f: 0xe0002431,
-	// Block 0x215, offset 0x8540
-	0x8540: 0xe000309d, 0x8541: 0xe000307c, 0x8542: 0xe00030e0, 0x8543: 0xe000304f,
-	0x8544: 0xe0003019, 0x8545: 0xe000301c, 0x8546: 0xe0003055, 0x8547: 0xe0002ff4,
-	0x8548: 0xe0000a6b, 0x8549: 0xe0000cb4, 0x854a: 0xe00030a6, 0x854b: 0xe000307f,
-	0x854c: 0xe00030e3, 0x854d: 0xe00030e6, 0x854e: 0xe000305e, 0x854f: 0xe000301f,
-	0x8550: 0xe0003006, 0x8551: 0xe0000cb9, 0x8552: 0xe0000d36, 0x8553: 0xe0000be3,
-	0x8554: 0xe0000fc5, 0x8555: 0xe00030e9, 0x8556: 0xe0003061, 0x8557: 0xe0002fd6,
-	0x8558: 0xe0003025, 0x8559: 0xe0002ff1, 0x855a: 0xe000308b, 0x855b: 0xe00030ec,
-	0x855c: 0xe0003064, 0x855d: 0xe0002e35, 0x855e: 0xe0003028, 0x855f: 0xe0000d3e,
-	0x8560: 0xe0000a72, 0x8561: 0xe0003049, 0x8562: 0xe0000cbd, 0x8563: 0xe0000d42,
-	0x8564: 0xe0000a76, 0x8565: 0xe000304c, 0x8566: 0xe0000cc1, 0x8567: 0xe0000d2d,
-	0x8568: 0xe0000d31, 0x8569: 0xe00030a0, 0x856a: 0xe0000cc5, 0x856b: 0xe0000d4a,
-	0x856c: 0xe0000be7, 0x856d: 0xe0000f0b, 0x856e: 0xe0000f0f, 0x856f: 0xe0000f15,
-	0x8570: 0xe00030af, 0x8571: 0xe0003091, 0x8572: 0xe00030ef, 0x8573: 0xe0003067,
-	0x8574: 0xe00030b2, 0x8575: 0xe0003094, 0x8576: 0xe00030f2, 0x8577: 0xe000306a,
-	0x8578: 0xe0003031, 0x8579: 0xe000306d, 0x857a: 0xe00030b5, 0x857b: 0xe0003097,
-	0x857c: 0xe00030f5, 0x857d: 0xe0003073, 0x857e: 0xe0003034, 0x857f: 0xe0003076,
-	// Block 0x216, offset 0x8580
-	0x8580: 0xe0003037, 0x8581: 0xe0003079, 0x8582: 0xe00009b7, 0x8583: 0xe000252b,
-	0x8584: 0xe0002e2c, 0x8585: 0xe0002e32, 0x8586: 0xe0000a66, 0x8587: 0xe0000a7a,
-	0x8588: 0xe0002fd0, 0x8589: 0xe0002ff7, 0x858a: 0xe0002ffa, 0x858b: 0xe0003000,
-	0x858c: 0xe0003013, 0x858d: 0xe0003022, 0x858e: 0xe000302b, 0x858f: 0xe000302e,
-	0x8590: 0xe0003043, 0x8591: 0xe0003046, 0x8592: 0xe0000d0d, 0x8593: 0xe0002584,
-	0x8594: 0xe0003052, 0x8595: 0xe0000d3a, 0x8596: 0xe0000d46, 0x8597: 0xe00030a9,
-	0x8598: 0xe0000eb0, 0x8599: 0xe0000eb8, 0x859a: 0xe00030ac, 0x859b: 0xe00030be,
-	0x859c: 0xe00030c7, 0x859d: 0xe00030d4, 0x859e: 0xe00010b2, 0x859f: 0xe00009c8,
-	0x85a0: 0xf0001f04, 0x85a1: 0xf0001f04, 0x85a2: 0xf0001f04, 0x85a3: 0xf0001f04,
-	0x85a4: 0xf0001f04, 0x85a5: 0xf0001f04, 0x85a6: 0xe0002988, 0x85a7: 0xf0001f04,
-	0x85a8: 0xf0001f04, 0x85a9: 0xf0000404, 0x85aa: 0xf0000404, 0x85ab: 0xf0000404,
-	0x85ac: 0xf0000404, 0x85ad: 0xf0000404, 0x85ae: 0xf0000404, 0x85af: 0xf0000404,
-	0x85b0: 0xe000296d, 0x85b1: 0xf0000404, 0x85b2: 0xf0000404, 0x85b3: 0xf0000404,
-	0x85b4: 0xf0000404, 0x85b5: 0xf0000404, 0x85b6: 0xf0000404, 0x85b7: 0xf0000404,
-	0x85b8: 0xf0000404, 0x85b9: 0xf0000404, 0x85ba: 0xe0002978, 0x85bb: 0xf0000404,
-	0x85bc: 0xf0000404, 0x85bd: 0xf0000404, 0x85be: 0xf0000404, 0x85bf: 0xe0000bdf,
-	// Block 0x217, offset 0x85c0
-	0x85c0: 0xe0002fe8, 0x85c1: 0xe0002feb, 0x85c2: 0xe0002fee, 0x85c3: 0xe0000b99,
-	0x85c4: 0xe0000b9d, 0x85c5: 0xe0000f83, 0x85c6: 0xe00030c4,
-	0x85d3: 0xf0000404,
-	0x85d4: 0xf0000404, 0x85d5: 0xf0000404, 0x85d6: 0xf0000404, 0x85d7: 0xf0000404,
-	0x85dd: 0xe000150b, 0x85de: 0xa1a09602, 0x85df: 0xe0001514,
-	0x85e0: 0x0038ae85, 0x85e1: 0x00389085, 0x85e2: 0x00389685, 0x85e3: 0x00389885,
-	0x85e4: 0x0038a485, 0x85e5: 0x0038a685, 0x85e6: 0x0038a885, 0x85e7: 0x0038b685,
-	0x85e8: 0x0038ba85, 0x85e9: 0x00093885, 0x85ea: 0xe0001542, 0x85eb: 0xe000153f,
-	0x85ec: 0xe000154c, 0x85ed: 0xe0001548, 0x85ee: 0xe00014e1, 0x85ef: 0xe00014e4,
-	0x85f0: 0xe00014e7, 0x85f1: 0xe00014ea, 0x85f2: 0xe00014f0, 0x85f3: 0xe00014f3,
-	0x85f4: 0xe00014f6, 0x85f5: 0xe00014fc, 0x85f6: 0xe0001505,
-	0x85f8: 0xe0001508, 0x85f9: 0xe000150e, 0x85fa: 0xe000151b, 0x85fb: 0xe0001518,
-	0x85fc: 0xe0001521, 0x85fe: 0xe0001524,
-	// Block 0x218, offset 0x8600
-	0x8600: 0xf0001f04, 0x8601: 0xf0001f04, 0x8602: 0xf0001f04, 0x8603: 0xf0001f04,
-	0x8604: 0xf0001f04, 0x8605: 0xf0001f04, 0x8606: 0xf0001f04, 0x8607: 0xf0001f04,
-	0x8608: 0xe0002982, 0x8609: 0xf0001f04, 0x860a: 0xf0001f04,
-	0x8610: 0xe00027dc, 0x8611: 0xe00027e4, 0x8612: 0xe00027ec, 0x8613: 0xe00027f4,
-	0x8614: 0xe00027fc, 0x8615: 0xe0002804, 0x8616: 0xe000280c, 0x8617: 0xe0002814,
-	0x8618: 0xe0002517, 0x8619: 0xe0002820, 0x861a: 0xe0002828, 0x861b: 0xe0002830,
-	0x861c: 0xe0002838, 0x861d: 0xe0002840, 0x861e: 0xe0002848, 0x861f: 0xe0002850,
-	0x8620: 0xe000251f, 0x8621: 0xe0002858, 0x8622: 0xe0002860, 0x8623: 0xe0002868,
-	0x8624: 0xe0002870, 0x8625: 0xe0002878, 0x8626: 0xe0002880, 0x8627: 0xe0002527,
-	0x8628: 0xe0002888, 0x8629: 0xe0002890, 0x862a: 0xe000295c, 0x862b: 0x002c3a8c,
-	0x862c: 0x002f7a8c, 0x862d: 0xe0002e2f, 0x862e: 0xe00030da,
-	0x8630: 0x002bde9d, 0x8631: 0x002c0a9d, 0x8632: 0x002c3a9d, 0x8633: 0x002c629d,
-	0x8634: 0x002c989d, 0x8635: 0x002d089d, 0x8636: 0x002d229d, 0x8637: 0x002d689d,
-	0x8638: 0x002d9a9d, 0x8639: 0x002dcc9d, 0x863a: 0x002dfe9d, 0x863b: 0x002e229d,
-	0x863c: 0x002e829d, 0x863d: 0x002e9e9d, 0x863e: 0x002ee29d, 0x863f: 0x002f2c9d,
-	// Block 0x219, offset 0x8640
-	0x8640: 0x002f569d, 0x8641: 0x002f7a9d, 0x8642: 0x002fe69d, 0x8643: 0x00302c9d,
-	0x8644: 0x00306c9d, 0x8645: 0x0030be9d, 0x8646: 0x0030e29d, 0x8647: 0x0030f69d,
-	0x8648: 0x0031009d, 0x8649: 0x00312a9d, 0x864a: 0xe0003003, 0x864b: 0xe0003070,
-	0x864c: 0xe00030b8, 0x864d: 0xe00030c1, 0x864e: 0xe0000ebc, 0x864f: 0xe00030d7,
-	0x8650: 0x002bde8c, 0x8651: 0x002c0a8c, 0x8652: 0x002c3a8c, 0x8653: 0x002c628c,
-	0x8654: 0x002c988c, 0x8655: 0x002d088c, 0x8656: 0x002d228c, 0x8657: 0x002d688c,
-	0x8658: 0x002d9a8c, 0x8659: 0x002dcc8c, 0x865a: 0x002dfe8c, 0x865b: 0x002e228c,
-	0x865c: 0x002e828c, 0x865d: 0x002e9e8c, 0x865e: 0x002ee28c, 0x865f: 0x002f2c8c,
-	0x8660: 0x002f568c, 0x8661: 0x002f7a8c, 0x8662: 0x002fe68c, 0x8663: 0x00302c8c,
-	0x8664: 0x00306c8c, 0x8665: 0x0030be8c, 0x8666: 0x0030e28c, 0x8667: 0x0030f68c,
-	0x8668: 0x0031008c, 0x8669: 0x00312a8c, 0x866a: 0xe0003058, 0x866b: 0xe000305b,
-	0x8670: 0x002bde9d, 0x8671: 0x002c0a9d, 0x8672: 0x002c3a9d, 0x8673: 0x002c629d,
-	0x8674: 0x002c989d, 0x8675: 0x002d089d, 0x8676: 0x002d229d, 0x8677: 0x002d689d,
-	0x8678: 0x002d9a9d, 0x8679: 0x002dcc9d, 0x867a: 0x002dfe9d, 0x867b: 0x002e229d,
-	0x867c: 0x002e829d, 0x867d: 0x002e9e9d, 0x867e: 0x002ee29d, 0x867f: 0x002f2c9d,
-	// Block 0x21a, offset 0x8680
-	0x8680: 0x002f569d, 0x8681: 0x002f7a9d, 0x8682: 0x002fe69d, 0x8683: 0x00302c9d,
-	0x8684: 0x00306c9d, 0x8685: 0x0030be9d, 0x8686: 0x0030e29d, 0x8687: 0x0030f69d,
-	0x8688: 0x0031009d, 0x8689: 0x00312a9d, 0x868a: 0x002f2c9d, 0x868b: 0xe0000c81,
-	0x868c: 0xe0000eb5, 0x868d: 0xe0000f74, 0x868e: 0xe00009d2, 0x868f: 0xe00010f0,
-	0x8690: 0xe0002fd3, 0x8691: 0xe0000a6f, 0x8692: 0xe0000a7e, 0x8693: 0xe0000ba4,
-	0x8694: 0xe0000c84, 0x8695: 0xe0000d8a, 0x8696: 0xe0000d8e, 0x8697: 0xe0000e9b,
-	0x8698: 0xe0000f77, 0x8699: 0xe00010a2, 0x869a: 0xe00010c0,
-	// Block 0x21b, offset 0x86c0
-	0x86c0: 0xa0000000, 0x86c1: 0xa0000000, 0x86c2: 0xa0000000, 0x86c3: 0xa0000000,
-	0x86c4: 0xa0000000, 0x86c5: 0xa0000000, 0x86c6: 0xa0000000, 0x86c7: 0xa0000000,
-	0x86c8: 0xa0000000, 0x86c9: 0x40020020, 0x86ca: 0x40020220, 0x86cb: 0x40020420,
-	0x86cc: 0x40020620, 0x86cd: 0x40020820, 0x86ce: 0xa0000000, 0x86cf: 0xa0000000,
-	0x86d0: 0xa0000000, 0x86d1: 0xa0000000, 0x86d2: 0xa0000000, 0x86d3: 0xa0000000,
-	0x86d4: 0xa0000000, 0x86d5: 0xa0000000, 0x86d6: 0xa0000000, 0x86d7: 0xa0000000,
-	0x86d8: 0xa0000000, 0x86d9: 0xa0000000, 0x86da: 0xa0000000, 0x86db: 0xa0000000,
-	0x86dc: 0xa0000000, 0x86dd: 0xa0000000, 0x86de: 0xa0000000, 0x86df: 0xa0000000,
-	0x86e0: 0x40021220, 0x86e1: 0x4002ba20, 0x86e2: 0x4003e020, 0x86e3: 0x4004ea20,
-	0x86e4: 0x4027de20, 0x86e5: 0x4004ec20, 0x86e6: 0x4004e620, 0x86e7: 0x4003d220,
-	0x86e8: 0x4003f420, 0x86e9: 0x4003f620, 0x86ea: 0x4004d820, 0x86eb: 0x40093820,
-	0x86ec: 0x40024020, 0x86ed: 0x40021a20, 0x86ee: 0x4002e420, 0x86ef: 0x4004e220,
-	0x86f0: 0x4029cc20, 0x86f1: 0x4029ce20, 0x86f2: 0x4029d020, 0x86f3: 0x4029d220,
-	0x86f4: 0x4029d420, 0x86f5: 0x4029d620, 0x86f6: 0x4029d820, 0x86f7: 0x4029da20,
-	0x86f8: 0x4029dc20, 0x86f9: 0x4029de20, 0x86fa: 0x40026c20, 0x86fb: 0x40026220,
-	0x86fc: 0x40094020, 0x86fd: 0x40094220, 0x86fe: 0x40094420, 0x86ff: 0x4002c420,
-	// Block 0x21c, offset 0x8700
-	0x8700: 0x4004d620, 0x8701: 0x002bde88, 0x8702: 0x002c0a88, 0x8703: 0xc3352741,
-	0x8704: 0x002c6288, 0x8705: 0x002c9888, 0x8706: 0x002d0888, 0x8707: 0xc3392741,
-	0x8708: 0xc5342741, 0x8709: 0x002d9a88, 0x870a: 0xc5382741, 0x870b: 0x002dfe88,
-	0x870c: 0xc0030002, 0x870d: 0x002e8288, 0x870e: 0x002e9e88, 0x870f: 0x002ee288,
-	0x8710: 0x002f2c88, 0x8711: 0x002f5688, 0x8712: 0x002f7a88, 0x8713: 0xc3432741,
-	0x8714: 0x00302c88, 0x8715: 0xc34700d1, 0x8716: 0x0030be88, 0x8717: 0x0030e288,
-	0x8718: 0x0030f688, 0x8719: 0x00310088, 0x871a: 0x00312a88, 0x871b: 0x4003f820,
-	0x871c: 0x4004e420, 0x871d: 0x4003fa20, 0x871e: 0x40062420, 0x871f: 0x40021620,
-	0x8720: 0x40061e20, 0x8721: 0x402bde20, 0x8722: 0x402c0a20, 0x8723: 0xc3332741,
-	0x8724: 0x402c6220, 0x8725: 0x402c9820, 0x8726: 0x402d0820, 0x8727: 0xc3372741,
-	0x8728: 0xc5322741, 0x8729: 0x402d9a20, 0x872a: 0xc5362741, 0x872b: 0x402dfe20,
-	0x872c: 0xc0000002, 0x872d: 0x402e8220, 0x872e: 0x402e9e20, 0x872f: 0x402ee220,
-	0x8730: 0x402f2c20, 0x8731: 0x402f5620, 0x8732: 0x402f7a20, 0x8733: 0xc3412741,
-	0x8734: 0x40302c20, 0x8735: 0xc34500d1, 0x8736: 0x4030be20, 0x8737: 0x4030e220,
-	0x8738: 0x4030f620, 0x8739: 0x40310020, 0x873a: 0x40312a20, 0x873b: 0x4003fc20,
-	0x873c: 0x40094820, 0x873d: 0x4003fe20, 0x873e: 0x40094c20, 0x873f: 0xa0000000,
-	// Block 0x21d, offset 0x8740
-	0x8740: 0xe0000983, 0x8741: 0xe0000980, 0x8742: 0xe00008fb, 0x8743: 0xe00008f8,
-	0x8744: 0xe000097d, 0x8745: 0xe000097a, 0x8746: 0xe0000a38, 0x8747: 0xe0000a35,
-	0x8748: 0x002c3c83, 0x8749: 0x402c3c20, 0x874a: 0xe0000a4a, 0x874b: 0xe0000a47,
-	0x874c: 0xe0000a44, 0x874d: 0xe0000a41, 0x874e: 0xe0000a86, 0x874f: 0xe0000a83,
-	0x8750: 0xe0000aaa, 0x8751: 0xe0000aa7, 0x8752: 0xe0000b46, 0x8753: 0xe0000b43,
-	0x8754: 0xe0000aee, 0x8755: 0xe0000aeb, 0x8756: 0xe0000b2c, 0x8757: 0xe0000b29,
-	0x8758: 0xe0000b40, 0x8759: 0xe0000b3d, 0x875a: 0xe0000b1a, 0x875b: 0xe0000b17,
-	0x875c: 0x002d2483, 0x875d: 0x402d2420, 0x875e: 0xe0000bb2, 0x875f: 0xe0000baf,
-	0x8760: 0xe0000bc4, 0x8761: 0xe0000bc1, 0x8762: 0xe0000bca, 0x8763: 0xe0000bc7,
-	0x8764: 0x002d6a83, 0x8765: 0x402d6a20, 0x8766: 0xe0000c1b, 0x8767: 0xe0000c18,
-	0x8768: 0xe0000c51, 0x8769: 0xe0000c4e, 0x876a: 0xe0000c60, 0x876b: 0xe0000c5d,
-	0x876c: 0xe0000c31, 0x876d: 0xe0000c2e, 0x876e: 0xe0000c5a, 0x876f: 0xe0000c57,
-	0x8770: 0xe0000c54, 0x8771: 0x402da220, 0x8772: 0xf0000a0a, 0x8773: 0xf0000404,
-	0x8774: 0x002dce83, 0x8775: 0x402dce20, 0x8776: 0xe0000c9f, 0x8777: 0xe0000c9c,
-	0x8778: 0x402f7220, 0x8779: 0xe0000ccc, 0x877a: 0xe0000cc9, 0x877b: 0xe0000cd8,
-	0x877c: 0xe0000cd5, 0x877d: 0xe0000cd2, 0x877e: 0xe0000ccf, 0x877f: 0xe0000d04,
-	// Block 0x21e, offset 0x8780
-	0x8780: 0xe0000cfe, 0x8781: 0xe0000cf8, 0x8782: 0xe0000cf5, 0x8783: 0xe0000d51,
-	0x8784: 0xe0000d4e, 0x8785: 0xe0000d6f, 0x8786: 0xe0000d6c, 0x8787: 0xe0000d5d,
-	0x8788: 0xe0000d5a, 0x8789: 0xf0000404, 0x878a: 0x002eda88, 0x878b: 0x402eda20,
-	0x878c: 0xe0000e2e, 0x878d: 0xe0000e2b, 0x878e: 0xe0000da0, 0x878f: 0xe0000d9d,
-	0x8790: 0xe0000de0, 0x8791: 0xe0000ddd, 0x8792: 0xe0000e93, 0x8793: 0xe0000e8f,
-	0x8794: 0xe0000eca, 0x8795: 0xe0000ec7, 0x8796: 0xe0000edc, 0x8797: 0xe0000ed9,
-	0x8798: 0xe0000ed0, 0x8799: 0xe0000ecd, 0x879a: 0xe0000f1f, 0x879b: 0xe0000f1c,
-	0x879c: 0x002fe883, 0x879d: 0x402fe820, 0x879e: 0xe0000f47, 0x879f: 0xe0000f44,
-	0x87a0: 0xe0000f33, 0x87a1: 0xe0000f30, 0x87a2: 0xe0000f99, 0x87a3: 0xe0000f96,
-	0x87a4: 0xe0000f8a, 0x87a5: 0xe0000f87, 0x87a6: 0x00303688, 0x87a7: 0x40303620,
-	0x87a8: 0xe000102b, 0x87a9: 0xe0001028, 0x87aa: 0xe000103f, 0x87ab: 0xe000103c,
-	0x87ac: 0x00306e83, 0x87ad: 0x40306e20, 0x87ae: 0xe0000ff9, 0x87af: 0xe0000ff6,
-	0x87b0: 0xe0001025, 0x87b1: 0xe0001022, 0x87b2: 0xe0001039, 0x87b3: 0xe0001036,
-	0x87b4: 0xe00010d8, 0x87b5: 0xe00010d5, 0x87b6: 0xe000110e, 0x87b7: 0xe000110b,
-	0x87b8: 0xe0001117, 0x87b9: 0xe000113b, 0x87ba: 0xe0001138, 0x87bb: 0xe000114d,
-	0x87bc: 0xe000114a, 0x87bd: 0xe0001147, 0x87be: 0xe0001144, 0x87bf: 0xe0000f64,
-	// Block 0x21f, offset 0x87c0
-	0x87c0: 0xa0000000, 0x87c1: 0xa0000000, 0x87c2: 0xa0000000, 0x87c3: 0xa0000000,
-	0x87c4: 0xa0000000, 0x87c5: 0xa0000000, 0x87c6: 0xa0000000, 0x87c7: 0xa0000000,
-	0x87c8: 0xa0000000, 0x87c9: 0x40020020, 0x87ca: 0x40020220, 0x87cb: 0x40020420,
-	0x87cc: 0x40020620, 0x87cd: 0x40020820, 0x87ce: 0xa0000000, 0x87cf: 0xa0000000,
-	0x87d0: 0xa0000000, 0x87d1: 0xa0000000, 0x87d2: 0xa0000000, 0x87d3: 0xa0000000,
-	0x87d4: 0xa0000000, 0x87d5: 0xa0000000, 0x87d6: 0xa0000000, 0x87d7: 0xa0000000,
-	0x87d8: 0xa0000000, 0x87d9: 0xa0000000, 0x87da: 0xa0000000, 0x87db: 0xa0000000,
-	0x87dc: 0xa0000000, 0x87dd: 0xa0000000, 0x87de: 0xa0000000, 0x87df: 0xa0000000,
-	0x87e0: 0x40021220, 0x87e1: 0x4002ba20, 0x87e2: 0x4003e020, 0x87e3: 0x4004ea20,
-	0x87e4: 0x4027de20, 0x87e5: 0x4004ec20, 0x87e6: 0x4004e620, 0x87e7: 0x4003d220,
-	0x87e8: 0x4003f420, 0x87e9: 0x4003f620, 0x87ea: 0x4004d820, 0x87eb: 0x40093820,
-	0x87ec: 0x40024020, 0x87ed: 0x40021a20, 0x87ee: 0x4002e420, 0x87ef: 0x4004e220,
-	0x87f0: 0x4029cc20, 0x87f1: 0x4029ce20, 0x87f2: 0x4029d020, 0x87f3: 0x4029d220,
-	0x87f4: 0x4029d420, 0x87f5: 0x4029d620, 0x87f6: 0x4029d820, 0x87f7: 0x4029da20,
-	0x87f8: 0x4029dc20, 0x87f9: 0x4029de20, 0x87fa: 0x40026c20, 0x87fb: 0x40026220,
-	0x87fc: 0x40094020, 0x87fd: 0x40094220, 0x87fe: 0x40094420, 0x87ff: 0x4002c420,
-	// Block 0x220, offset 0x8800
-	0x8800: 0x4004d620, 0x8801: 0x002bde88, 0x8802: 0x002c0a88, 0x8803: 0x002c3a88,
-	0x8804: 0x002c6288, 0x8805: 0x002c9888, 0x8806: 0x002d0888, 0x8807: 0x002d2288,
-	0x8808: 0x002d6888, 0x8809: 0x002d9a88, 0x880a: 0x002dcc88, 0x880b: 0x002dfe88,
-	0x880c: 0xc0030002, 0x880d: 0x002e8288, 0x880e: 0xc53a2761, 0x880f: 0x002ee288,
-	0x8810: 0x002f2c88, 0x8811: 0x002f5688, 0x8812: 0x002f7a88, 0x8813: 0x002fe688,
-	0x8814: 0x00302c88, 0x8815: 0x00306c88, 0x8816: 0x0030be88, 0x8817: 0x0030e288,
-	0x8818: 0x0030f688, 0x8819: 0x00310088, 0x881a: 0x00312a88, 0x881b: 0x4003f820,
-	0x881c: 0x4004e420, 0x881d: 0x4003fa20, 0x881e: 0x40062420, 0x881f: 0x40021620,
-	0x8820: 0x40061e20, 0x8821: 0x402bde20, 0x8822: 0x402c0a20, 0x8823: 0x402c3a20,
-	0x8824: 0x402c6220, 0x8825: 0x402c9820, 0x8826: 0x402d0820, 0x8827: 0x402d2220,
-	0x8828: 0x402d6820, 0x8829: 0x402d9a20, 0x882a: 0x402dcc20, 0x882b: 0x402dfe20,
-	0x882c: 0xc0000002, 0x882d: 0x402e8220, 0x882e: 0xc5272761, 0x882f: 0x402ee220,
-	0x8830: 0x402f2c20, 0x8831: 0x402f5620, 0x8832: 0x402f7a20, 0x8833: 0x402fe620,
-	0x8834: 0x40302c20, 0x8835: 0x40306c20, 0x8836: 0x4030be20, 0x8837: 0x4030e220,
-	0x8838: 0x4030f620, 0x8839: 0x40310020, 0x883a: 0x40312a20, 0x883b: 0x4003fc20,
-	0x883c: 0x40094820, 0x883d: 0x4003fe20, 0x883e: 0x40094c20, 0x883f: 0xa0000000,
-	// Block 0x221, offset 0x8840
-	0x8840: 0xe00008f5, 0x8841: 0xe00008ef, 0x8842: 0xe0000921, 0x8843: 0xe0000969,
-	0x8844: 0xe000095b, 0x8845: 0xe000094d, 0x8846: 0xe00009dd, 0x8847: 0xe0000a53,
-	0x8848: 0xe0000ae8, 0x8849: 0xe0000ae2, 0x884a: 0xe0000af4, 0x884b: 0xe0000b20,
-	0x884c: 0xe0000c2b, 0x884d: 0xe0000c25, 0x884e: 0xe0000c37, 0x884f: 0xe0000c43,
-	0x8850: 0xe0000ab3, 0x8851: 0x002ea083, 0x8852: 0xe0000d9a, 0x8853: 0xe0000d94,
-	0x8854: 0xe0000da6, 0x8855: 0xe0000de6, 0x8856: 0xe0000dd2, 0x8857: 0x40093e20,
-	0x8858: 0xe0000e12, 0x8859: 0xe0000fe1, 0x885a: 0xe0000fdb, 0x885b: 0xe0000fed,
-	0x885c: 0xe0000fff, 0x885d: 0xe0001102, 0x885e: 0x00318888, 0x885f: 0xe0000f7b,
-	0x8860: 0xe00008f2, 0x8861: 0xe00008ec, 0x8862: 0xe000091e, 0x8863: 0xe0000966,
-	0x8864: 0xe0000958, 0x8865: 0xe000094a, 0x8866: 0xe00009d5, 0x8867: 0xe0000a4d,
-	0x8868: 0xe0000ae5, 0x8869: 0xe0000adf, 0x886a: 0xe0000af1, 0x886b: 0xe0000b1d,
-	0x886c: 0xe0000c28, 0x886d: 0xe0000c22, 0x886e: 0xe0000c34, 0x886f: 0xe0000c40,
-	0x8870: 0xe0000aad, 0x8871: 0x402ea020, 0x8872: 0xe0000d97, 0x8873: 0xe0000d91,
-	0x8874: 0xe0000da3, 0x8875: 0xe0000de3, 0x8876: 0xe0000dcf, 0x8877: 0x40093c20,
-	0x8878: 0xe0000e0f, 0x8879: 0xe0000fde, 0x887a: 0xe0000fd8, 0x887b: 0xe0000fea,
-	0x887c: 0xe0000ffc, 0x887d: 0xe00010ff, 0x887e: 0x40318820, 0x887f: 0xe0001114,
-	// Block 0x222, offset 0x8880
-	0x8880: 0xa0000000, 0x8881: 0xa0000000, 0x8882: 0xa0000000, 0x8883: 0xa0000000,
-	0x8884: 0xa0000000, 0x8885: 0xa0000000, 0x8886: 0xa0000000, 0x8887: 0xa0000000,
-	0x8888: 0xa0000000, 0x8889: 0x40020020, 0x888a: 0x40020220, 0x888b: 0x40020420,
-	0x888c: 0x40020620, 0x888d: 0x40020820, 0x888e: 0xa0000000, 0x888f: 0xa0000000,
-	0x8890: 0xa0000000, 0x8891: 0xa0000000, 0x8892: 0xa0000000, 0x8893: 0xa0000000,
-	0x8894: 0xa0000000, 0x8895: 0xa0000000, 0x8896: 0xa0000000, 0x8897: 0xa0000000,
-	0x8898: 0xa0000000, 0x8899: 0xa0000000, 0x889a: 0xa0000000, 0x889b: 0xa0000000,
-	0x889c: 0xa0000000, 0x889d: 0xa0000000, 0x889e: 0xa0000000, 0x889f: 0xa0000000,
-	0x88a0: 0x40021220, 0x88a1: 0x4002ba20, 0x88a2: 0x4003e020, 0x88a3: 0x4004ea20,
-	0x88a4: 0x4027de20, 0x88a5: 0x4004ec20, 0x88a6: 0x4004e620, 0x88a7: 0x4003d220,
-	0x88a8: 0x4003f420, 0x88a9: 0x4003f620, 0x88aa: 0x4004d820, 0x88ab: 0x40093820,
-	0x88ac: 0x40024020, 0x88ad: 0x40021a20, 0x88ae: 0x4002e420, 0x88af: 0x4004e220,
-	0x88b0: 0x4029cc20, 0x88b1: 0x4029ce20, 0x88b2: 0x4029d020, 0x88b3: 0x4029d220,
-	0x88b4: 0x4029d420, 0x88b5: 0x4029d620, 0x88b6: 0x4029d820, 0x88b7: 0x4029da20,
-	0x88b8: 0x4029dc20, 0x88b9: 0x4029de20, 0x88ba: 0x40026c20, 0x88bb: 0x40026220,
-	0x88bc: 0x40094020, 0x88bd: 0x40094220, 0x88be: 0x40094420, 0x88bf: 0x4002c420,
-	// Block 0x223, offset 0x88c0
-	0x88c0: 0x4004d620, 0x88c1: 0xc54c0071, 0x88c2: 0x002c0a88, 0x88c3: 0x002c3a88,
-	0x88c4: 0x002c6288, 0x88c5: 0x002c9888, 0x88c6: 0x002d0888, 0x88c7: 0x002d2288,
-	0x88c8: 0x002d6888, 0x88c9: 0x002d9a88, 0x88ca: 0x002dcc88, 0x88cb: 0x002dfe88,
-	0x88cc: 0xc0030002, 0x88cd: 0x002e8288, 0x88ce: 0x002e9e88, 0x88cf: 0xc5472781,
-	0x88d0: 0x002f2c88, 0x88d1: 0x002f5688, 0x88d2: 0x002f7a88, 0x88d3: 0xc53e0991,
-	0x88d4: 0x00302c88, 0x88d5: 0xc5500071, 0x88d6: 0x0030be88, 0x88d7: 0x0030bea3,
-	0x88d8: 0x0030f688, 0x88d9: 0x00310088, 0x88da: 0xc5420991, 0x88db: 0x4003f820,
-	0x88dc: 0x4004e420, 0x88dd: 0x4003fa20, 0x88de: 0x40062420, 0x88df: 0x40021620,
-	0x88e0: 0x40061e20, 0x88e1: 0xc54a0071, 0x88e2: 0x402c0a20, 0x88e3: 0x402c3a20,
-	0x88e4: 0x402c6220, 0x88e5: 0x402c9820, 0x88e6: 0x402d0820, 0x88e7: 0x402d2220,
-	0x88e8: 0x402d6820, 0x88e9: 0x402d9a20, 0x88ea: 0x402dcc20, 0x88eb: 0x402dfe20,
-	0x88ec: 0xc0000002, 0x88ed: 0x402e8220, 0x88ee: 0x402e9e20, 0x88ef: 0xc5442781,
-	0x88f0: 0x402f2c20, 0x88f1: 0x402f5620, 0x88f2: 0x402f7a20, 0x88f3: 0xc53c0991,
-	0x88f4: 0x40302c20, 0x88f5: 0xc54e0071, 0x88f6: 0x4030be20, 0x88f7: 0x4030be21,
-	0x88f8: 0x4030f620, 0x88f9: 0x40310020, 0x88fa: 0xc5400991, 0x88fb: 0x4003fc20,
-	0x88fc: 0x40094820, 0x88fd: 0x4003fe20, 0x88fe: 0x40094c20, 0x88ff: 0xa0000000,
-	// Block 0x224, offset 0x8900
-	0x8900: 0xe00008f5, 0x8901: 0xe00008ef, 0x8902: 0xe0000921, 0x8903: 0xe0000969,
-	0x8904: 0x0030f083, 0x8905: 0xe000094d, 0x8906: 0xe00009dd, 0x8907: 0xe0000a53,
-	0x8908: 0xe0000ae8, 0x8909: 0xe0000ae2, 0x890a: 0xe0000af4, 0x890b: 0xe0000b20,
-	0x890c: 0xe0000c2b, 0x890d: 0xe0000c25, 0x890e: 0xe0000c37, 0x890f: 0xe0000c43,
-	0x8910: 0xe0000ab3, 0x8911: 0xe0000d63, 0x8912: 0xe0000d9a, 0x8913: 0xe0000d94,
-	0x8914: 0xe0000da6, 0x8915: 0x0030ee83, 0x8916: 0x0030f283, 0x8917: 0x40093e20,
-	0x8918: 0xe0000e12, 0x8919: 0xe0000fe1, 0x891a: 0xe0000fdb, 0x891b: 0xe0000fed,
-	0x891c: 0x0030f483, 0x891d: 0xe0001102, 0x891e: 0x00318888, 0x891f: 0xe0000f7b,
-	0x8920: 0xe00008f2, 0x8921: 0xe00008ec, 0x8922: 0xe000091e, 0x8923: 0xe0000966,
-	0x8924: 0x4030f020, 0x8925: 0xe000094a, 0x8926: 0xe00009d5, 0x8927: 0xe0000a4d,
-	0x8928: 0xe0000ae5, 0x8929: 0xe0000adf, 0x892a: 0xe0000af1, 0x892b: 0xe0000b1d,
-	0x892c: 0xe0000c28, 0x892d: 0xe0000c22, 0x892e: 0xe0000c34, 0x892f: 0xe0000c40,
-	0x8930: 0xe0000aad, 0x8931: 0xe0000d60, 0x8932: 0xe0000d97, 0x8933: 0xe0000d91,
-	0x8934: 0xe0000da3, 0x8935: 0x4030ee20, 0x8936: 0x4030f220, 0x8937: 0x40093c20,
-	0x8938: 0xe0000e0f, 0x8939: 0xe0000fde, 0x893a: 0xe0000fd8, 0x893b: 0xe0000fea,
-	0x893c: 0x4030f420, 0x893d: 0xe00010ff, 0x893e: 0x40318820, 0x893f: 0xe0001114,
-	// Block 0x225, offset 0x8940
-	0x8940: 0xe0000cfe, 0x8941: 0xe0000cf8, 0x8942: 0xe0000cf5, 0x8943: 0xe0000d51,
-	0x8944: 0xe0000d4e, 0x8945: 0xe0000d6f, 0x8946: 0xe0000d6c, 0x8947: 0xe0000d5d,
-	0x8948: 0xe0000d5a, 0x8949: 0xf0000404, 0x894a: 0x002eda88, 0x894b: 0x402eda20,
-	0x894c: 0xe0000e2e, 0x894d: 0xe0000e2b, 0x894e: 0xe0000da0, 0x894f: 0xe0000d9d,
-	0x8950: 0xe0000de0, 0x8951: 0xe0000ddd, 0x8952: 0xe0000e93, 0x8953: 0xe0000e8f,
-	0x8954: 0xe0000eca, 0x8955: 0xe0000ec7, 0x8956: 0xe0000edc, 0x8957: 0xe0000ed9,
-	0x8958: 0xe0000ed0, 0x8959: 0xe0000ecd, 0x895a: 0xe0000f1f, 0x895b: 0xe0000f1c,
-	0x895c: 0xe0000f2d, 0x895d: 0xe0000f2a, 0x895e: 0xe0000f47, 0x895f: 0xe0000f44,
-	0x8960: 0x00302683, 0x8961: 0x40302620, 0x8962: 0xe0000f99, 0x8963: 0xe0000f96,
-	0x8964: 0xe0000f8a, 0x8965: 0xe0000f87, 0x8966: 0x00303688, 0x8967: 0x40303620,
-	0x8968: 0xe000102b, 0x8969: 0xe0001028, 0x896a: 0xe000103f, 0x896b: 0xe000103c,
-	0x896c: 0xe0000fe7, 0x896d: 0xe0000fe4, 0x896e: 0xe0000ff9, 0x896f: 0xe0000ff6,
-	0x8970: 0xe0001025, 0x8971: 0xe0001022, 0x8972: 0xe0001039, 0x8973: 0xe0001036,
-	0x8974: 0xe000312b, 0x8975: 0xe0003128, 0x8976: 0xe000110e, 0x8977: 0xe000110b,
-	0x8978: 0xe0001117, 0x8979: 0xe0003101, 0x897a: 0xe00030fe, 0x897b: 0xe000310d,
-	0x897c: 0xe000310a, 0x897d: 0x00302a83, 0x897e: 0x40302a20, 0x897f: 0xe0000f64,
-	// Block 0x226, offset 0x8980
-	0x8980: 0x40321220, 0x8981: 0x40321a20, 0x8982: 0x40322220, 0x8983: 0x40322a20,
-	0x8984: 0xe0000ad5, 0x8985: 0xe0000ad1, 0x8986: 0xe0000acd, 0x8987: 0xf0000a0a,
-	0x8988: 0xf000040a, 0x8989: 0xf0000404, 0x898a: 0xf0000a0a, 0x898b: 0xf000040a,
-	0x898c: 0xf0000404, 0x898d: 0xe0000947, 0x898e: 0xe0000944, 0x898f: 0xe0000c3d,
-	0x8990: 0xe0000c3a, 0x8991: 0xe0000dcc, 0x8992: 0xe0000dc9, 0x8993: 0xe0000ff3,
-	0x8994: 0xe0000ff0, 0x8995: 0xe0003182, 0x8996: 0xe000317f, 0x8997: 0xe0003170,
-	0x8998: 0xe000316d, 0x8999: 0xe000317c, 0x899a: 0xe0003179, 0x899b: 0xe0003176,
-	0x899c: 0xe0003173, 0x899d: 0x402cae20, 0x899e: 0xe0003164, 0x899f: 0xe0003161,
-	0x89a0: 0xe0000976, 0x89a1: 0xe0000972, 0x89a2: 0xe00009f4, 0x89a3: 0xe00009ef,
-	0x89a4: 0x002d3a88, 0x89a5: 0x402d3a20, 0x89a6: 0xe0000bbe, 0x89a7: 0xe0000bbb,
-	0x89a8: 0xe0000c99, 0x89a9: 0xe0000c96, 0x89aa: 0xe0000e20, 0x89ab: 0xe0000e1d,
-	0x89ac: 0xe0000e27, 0x89ad: 0xe0000e23, 0x89ae: 0xe0001162, 0x89af: 0xe000115f,
-	0x89b0: 0xe0000c8d, 0x89b1: 0xe0002fe2, 0x89b2: 0xe0002fdf, 0x89b3: 0xe0002fdc,
-	0x89b4: 0xe0000bac, 0x89b5: 0xe0000ba9, 0x89b6: 0x002d7888, 0x89b7: 0x00319488,
-	0x89b8: 0xe0000d57, 0x89b9: 0xe0000d54, 0x89ba: 0xe0000954, 0x89bb: 0xe0000950,
-	0x89bc: 0xe00009ea, 0x89bd: 0xe00009e5, 0x89be: 0xe0000e19, 0x89bf: 0xe0000e15,
-	// Block 0x227, offset 0x89c0
-	0x89c0: 0xe000098f, 0x89c1: 0xe000098c, 0x89c2: 0xe0000995, 0x89c3: 0xe0000992,
-	0x89c4: 0xe0000b62, 0x89c5: 0xe0000b5f, 0x89c6: 0xe0000b68, 0x89c7: 0xe0000b65,
-	0x89c8: 0xe0000c6c, 0x89c9: 0xe0000c69, 0x89ca: 0xe0000c72, 0x89cb: 0xe0000c6f,
-	0x89cc: 0xe0000e4a, 0x89cd: 0xe0000e47, 0x89ce: 0xe0000e50, 0x89cf: 0xe0000e4d,
-	0x89d0: 0xe0000ee8, 0x89d1: 0xe0000ee5, 0x89d2: 0xe0000eee, 0x89d3: 0xe0000eeb,
-	0x89d4: 0xe0001053, 0x89d5: 0xe0001050, 0x89d6: 0xe0001059, 0x89d7: 0xe0001056,
-	0x89d8: 0xe0000f61, 0x89d9: 0xe0000f5e, 0x89da: 0xe0000fa5, 0x89db: 0xe0000fa2,
-	0x89dc: 0x00312288, 0x89dd: 0x40312220, 0x89de: 0xe0000bf4, 0x89df: 0xe0000bf1,
-	0x89e0: 0x002ebc88, 0x89e1: 0x402c8c20, 0x89e2: 0x002f2288, 0x89e3: 0x402f2220,
-	0x89e4: 0x00314088, 0x89e5: 0x40314020, 0x89e6: 0xe000096f, 0x89e7: 0xe000096c,
-	0x89e8: 0xe0000b32, 0x89e9: 0xe0000b2f, 0x89ea: 0xe000316a, 0x89eb: 0xe0003167,
-	0x89ec: 0xe0003158, 0x89ed: 0xe0003155, 0x89ee: 0xe0000e04, 0x89ef: 0xe0000e01,
-	0x89f0: 0xe0000e0b, 0x89f1: 0xe0000e07, 0x89f2: 0xe0001129, 0x89f3: 0xe0001126,
-	0x89f4: 0x402e5e20, 0x89f5: 0x402ed020, 0x89f6: 0x40305a20, 0x89f7: 0x402dd420,
-	0x89f8: 0xe0000abf, 0x89f9: 0xe0000ec4, 0x89fa: 0x002be888, 0x89fb: 0x002c4488,
-	0x89fc: 0x402c4420, 0x89fd: 0x002e3888, 0x89fe: 0x00303e88, 0x89ff: 0x402ffc20,
-	// Block 0x228, offset 0x8a00
-	0x8a00: 0xe0000d24, 0x8a01: 0xe0000d21, 0x8a02: 0xe0000d2a, 0x8a03: 0xe0000d27,
-	0x8a04: 0xe0000d69, 0x8a05: 0xe0000d66, 0x8a06: 0xe0000d7b, 0x8a07: 0xe0000d78,
-	0x8a08: 0xe0000d87, 0x8a09: 0xe0000d84, 0x8a0a: 0xe0000d81, 0x8a0b: 0xe0000d7e,
-	0x8a0c: 0xe0003146, 0x8a0d: 0xe0003143, 0x8a0e: 0xe0003152, 0x8a0f: 0xe000314f,
-	0x8a10: 0xe0000e3d, 0x8a11: 0xe0000e39, 0x8a12: 0xe0000e35, 0x8a13: 0xe0000e31,
-	0x8a14: 0xe0000ea7, 0x8a15: 0xe0000ea4, 0x8a16: 0xe0000ead, 0x8a17: 0xe0000eaa,
-	0x8a18: 0xe0000ed6, 0x8a19: 0xe0000ed3, 0x8a1a: 0xe0000ef4, 0x8a1b: 0xe0000ef1,
-	0x8a1c: 0xe0000efb, 0x8a1d: 0xe0000ef7, 0x8a1e: 0xe0000f02, 0x8a1f: 0xe0000eff,
-	0x8a20: 0xe0000f41, 0x8a21: 0xe0000f3e, 0x8a22: 0xe0000f53, 0x8a23: 0xe0000f50,
-	0x8a24: 0xe0000f26, 0x8a25: 0xe0000f22, 0x8a26: 0xe00030fb, 0x8a27: 0xe00030f8,
-	0x8a28: 0xe0000f5a, 0x8a29: 0xe0000f56, 0x8a2a: 0xe0000f93, 0x8a2b: 0xe0000f90,
-	0x8a2c: 0xe0000f9f, 0x8a2d: 0xe0000f9c, 0x8a2e: 0xe0000fb1, 0x8a2f: 0xe0000fae,
-	0x8a30: 0xe0000fab, 0x8a31: 0xe0000fa8, 0x8a32: 0xe0001093, 0x8a33: 0xe0001090,
-	0x8a34: 0xe000109f, 0x8a35: 0xe000109c, 0x8a36: 0xe0001099, 0x8a37: 0xe0001096,
-	0x8a38: 0xe0001032, 0x8a39: 0xe000102e, 0x8a3a: 0xe0003182, 0x8a3b: 0xe000317f,
-	0x8a3c: 0xe00010a9, 0x8a3d: 0xe00010a6, 0x8a3e: 0xe00010af, 0x8a3f: 0xe00010ac,
-	// Block 0x229, offset 0x8a40
-	0x8a40: 0xe0003125, 0x8a41: 0xe0003122, 0x8a42: 0xe000311f, 0x8a43: 0xe000311c,
-	0x8a44: 0xe0003134, 0x8a45: 0xe0003131, 0x8a46: 0xe000313a, 0x8a47: 0xe0003137,
-	0x8a48: 0xe0003140, 0x8a49: 0xe000313d, 0x8a4a: 0xe00010fc, 0x8a4b: 0xe00010f9,
-	0x8a4c: 0xe00010f6, 0x8a4d: 0xe00010f3, 0x8a4e: 0xe0001123, 0x8a4f: 0xe0001120,
-	0x8a50: 0xe0003107, 0x8a51: 0xe0003104, 0x8a52: 0xe0003113, 0x8a53: 0xe0003110,
-	0x8a54: 0xe0003119, 0x8a55: 0xe0003116, 0x8a56: 0xe0000c15, 0x8a57: 0xe0000f8d,
-	0x8a58: 0xe000312e, 0x8a59: 0xe0001111, 0x8a5a: 0xf0000404, 0x8a5b: 0xe0000f70,
-	0x8a5c: 0x40300420, 0x8a5d: 0x40300620, 0x8a5e: 0xe0000f7f, 0x8a5f: 0x402c9620,
-	0x8a60: 0xe000099b, 0x8a61: 0xe0000998, 0x8a62: 0xe0000989, 0x8a63: 0xe0000986,
-	0x8a64: 0xe0000928, 0x8a65: 0xe0000924, 0x8a66: 0xe0000930, 0x8a67: 0xe000092c,
-	0x8a68: 0xe0000940, 0x8a69: 0xe000093c, 0x8a6a: 0xe0000938, 0x8a6b: 0xe0000934,
-	0x8a6c: 0xe00009aa, 0x8a6d: 0xe00009a6, 0x8a6e: 0xe0000902, 0x8a6f: 0xe00008fe,
-	0x8a70: 0xe000090a, 0x8a71: 0xe0000906, 0x8a72: 0xe000091a, 0x8a73: 0xe0000916,
-	0x8a74: 0xe0000912, 0x8a75: 0xe000090e, 0x8a76: 0xe00009a2, 0x8a77: 0xe000099e,
-	0x8a78: 0xe0000b6e, 0x8a79: 0xe0000b6b, 0x8a7a: 0xe0000b5c, 0x8a7b: 0xe0000b59,
-	0x8a7c: 0xe0000b26, 0x8a7d: 0xe0000b23, 0x8a7e: 0xe0000afb, 0x8a7f: 0xe0000af7,
-	// Block 0x22a, offset 0x8a80
-	0x8a80: 0xe0000b03, 0x8a81: 0xe0000aff, 0x8a82: 0xe0000b13, 0x8a83: 0xe0000b0f,
-	0x8a84: 0xe0000b0b, 0x8a85: 0xe0000b07, 0x8a86: 0xe0000b75, 0x8a87: 0xe0000b71,
-	0x8a88: 0xe0000c66, 0x8a89: 0xe0000c63, 0x8a8a: 0xe0000c78, 0x8a8b: 0xe0000c75,
-	0x8a8c: 0xe0000e84, 0x8a8d: 0xe0000e81, 0x8a8e: 0xe0000e44, 0x8a8f: 0xe0000e41,
-	0x8a90: 0xe0000dad, 0x8a91: 0xe0000da9, 0x8a92: 0xe0000db5, 0x8a93: 0xe0000db1,
-	0x8a94: 0xe0000dc5, 0x8a95: 0xe0000dc1, 0x8a96: 0xe000314c, 0x8a97: 0xe0003149,
-	0x8a98: 0xe0000e8b, 0x8a99: 0xe0000e87, 0x8a9a: 0xe0000e5d, 0x8a9b: 0xe0000e59,
-	0x8a9c: 0xe0000e65, 0x8a9d: 0xe0000e61, 0x8a9e: 0xe0000e75, 0x8a9f: 0xe0000e71,
-	0x8aa0: 0xe000315e, 0x8aa1: 0xe000315b, 0x8aa2: 0xe0000e7d, 0x8aa3: 0xe0000e79,
-	0x8aa4: 0xe000108d, 0x8aa5: 0xe000108a, 0x8aa6: 0xe000104d, 0x8aa7: 0xe000104a,
-	0x8aa8: 0xe0001066, 0x8aa9: 0xe0001062, 0x8aaa: 0xe000106e, 0x8aab: 0xe000106a,
-	0x8aac: 0xe000107e, 0x8aad: 0xe000107a, 0x8aae: 0xe0001076, 0x8aaf: 0xe0001072,
-	0x8ab0: 0xe0001086, 0x8ab1: 0xe0001082, 0x8ab2: 0xe0001108, 0x8ab3: 0xe0001105,
-	0x8ab4: 0xe0001135, 0x8ab5: 0xe0001132, 0x8ab6: 0xe000112f, 0x8ab7: 0xe000112c,
-	0x8ab8: 0xe000111d, 0x8ab9: 0xe000111a, 0x8aba: 0xe0000d0a, 0x8abb: 0xe0000d07,
-	0x8abc: 0x0030d888, 0x8abd: 0x4030d820, 0x8abe: 0x00312088, 0x8abf: 0x40312020,
-	// Block 0x22b, offset 0x8ac0
-	0x8ac0: 0xe0000024, 0x8ac1: 0xe0000029, 0x8ac2: 0xe000002e, 0x8ac3: 0xe0000033,
-	0x8ac4: 0xe0000038, 0x8ac5: 0xe000003d, 0x8ac6: 0xe0000042, 0x8ac7: 0xe0000047,
-	0x8ac8: 0xf0001f04, 0x8ac9: 0xf0001f04, 0x8aca: 0xf0001f04, 0x8acb: 0xf0001f04,
-	0x8acc: 0xf0001f04, 0x8acd: 0xf0001f04, 0x8ace: 0xf0001f04, 0x8acf: 0xf0001f04,
-	0x8ad0: 0xf0001f04, 0x8ad1: 0xf0000404, 0x8ad2: 0xf0000404, 0x8ad3: 0xf0000404,
-	0x8ad4: 0xf0000404, 0x8ad5: 0xf0000404, 0x8ad6: 0xf0000404, 0x8ad7: 0xf0000404,
-	0x8ad8: 0xf0000404, 0x8ad9: 0xf0000404, 0x8ada: 0xf0000404, 0x8adb: 0xf0000404,
-	0x8adc: 0xf0000404, 0x8add: 0xf0000404, 0x8ade: 0xf0000404, 0x8adf: 0xf0000404,
-	0x8ae0: 0xf0000404, 0x8ae1: 0xf0000404, 0x8ae2: 0xf0000404, 0x8ae3: 0xf0000404,
-	0x8ae4: 0xf0000404, 0x8ae5: 0xf0000404, 0x8ae6: 0xf0000404, 0x8ae7: 0xf0000404,
-	0x8ae8: 0xf0000404, 0x8ae9: 0xf0000404, 0x8aea: 0xf0000404, 0x8aeb: 0xf0000404,
-	0x8aec: 0xf0000404, 0x8aed: 0xf0000404, 0x8aee: 0xf0000404, 0x8aef: 0xf0000404,
-	0x8af0: 0xf0000404, 0x8af1: 0xf0000404, 0x8af2: 0xe000287c, 0x8af3: 0xf0000404,
-	0x8af4: 0xf0000404, 0x8af5: 0xe000288c, 0x8af6: 0x002bde8c, 0x8af7: 0x002c0a8c,
-	0x8af8: 0x002c3a8c, 0x8af9: 0x002c628c, 0x8afa: 0x002c988c, 0x8afb: 0x002d088c,
-	0x8afc: 0x002d228c, 0x8afd: 0x002d688c, 0x8afe: 0x002d9a8c, 0x8aff: 0x002dcc8c,
-	// Block 0x22c, offset 0x8b00
-	0x8b00: 0xf0001d1c, 0x8b01: 0xf0001d1c, 0x8b02: 0xf0001d1c, 0x8b03: 0xf0001d1c,
-	0x8b04: 0xf0001d1c, 0x8b05: 0xf0001d1d, 0x8b06: 0xf0001d1d, 0x8b07: 0xf0001d1d,
-	0x8b08: 0xe0000a6b, 0x8b09: 0xe0000cb4, 0x8b0a: 0xf0001d1c, 0x8b0b: 0xf0001d1c,
-	0x8b0c: 0xf0001d1c, 0x8b0d: 0xf0001c1c, 0x8b0e: 0xf0001c1c, 0x8b0f: 0xf0001c1c,
-	0x8b10: 0xe0003006, 0x8b11: 0xe0000cb9, 0x8b12: 0xe0000d36, 0x8b13: 0xe0000be3,
-	0x8b14: 0xe0000fc5, 0x8b15: 0xf0001c1c, 0x8b16: 0xf0001c1c, 0x8b17: 0xf0001c1c,
-	0x8b18: 0xf0001c1c, 0x8b19: 0xf0001c1c, 0x8b1a: 0xf0001c1c, 0x8b1b: 0xf0001c1c,
-	0x8b1c: 0xf0001c1c, 0x8b1d: 0xf0001c1c, 0x8b1e: 0xf0001c1c, 0x8b1f: 0xe0000d3e,
-	0x8b20: 0xe0000a72, 0x8b21: 0xf0001c1c, 0x8b22: 0xe0000cbd, 0x8b23: 0xe0000d42,
-	0x8b24: 0xe0000a76, 0x8b25: 0xf0001c1c, 0x8b26: 0xe0000cc1, 0x8b27: 0xe0000d2d,
-	0x8b28: 0xe0000d31, 0x8b29: 0xf0001c1d, 0x8b2a: 0xe0000cc5, 0x8b2b: 0xe0000d4a,
-	0x8b2c: 0xe0000be7, 0x8b2d: 0xe0000f0b, 0x8b2e: 0xe0000f0f, 0x8b2f: 0xe0000f15,
-	0x8b30: 0xf0001c1c, 0x8b31: 0xf0001c1c, 0x8b32: 0xf0001c1c, 0x8b33: 0xf0001c1c,
-	0x8b34: 0xf0001d1c, 0x8b35: 0xf0001d1c, 0x8b36: 0xf0001d1c, 0x8b37: 0xf0001d1c,
-	0x8b38: 0xf0001d1c, 0x8b39: 0xf0001d1d, 0x8b3a: 0xe00030b5, 0x8b3b: 0xe0003097,
-	0x8b3c: 0xe00030f5, 0x8b3d: 0xe0003073, 0x8b3e: 0xe0003034, 0x8b3f: 0xe0003076,
-	// Block 0x22d, offset 0x8b40
-	0x8b40: 0xf0001d1c, 0x8b41: 0xf0001d1d, 0x8b42: 0xe00009b7, 0x8b43: 0xf0001c1d,
-	0x8b44: 0xf0001c1c, 0x8b45: 0xf0001c1c, 0x8b46: 0xe0000a66, 0x8b47: 0xe0000a7a,
-	0x8b48: 0xf0001d1c, 0x8b49: 0xf0001c1d, 0x8b4a: 0xf0001c1c, 0x8b4b: 0xf0001d1d,
-	0x8b4c: 0xf0001c1c, 0x8b4d: 0xf0001d1d, 0x8b4e: 0xf0001d1d, 0x8b4f: 0xf0001c1c,
-	0x8b50: 0xf0001c1c, 0x8b51: 0xf0001c1c, 0x8b52: 0xe0000d0d, 0x8b53: 0xf0001c1c,
-	0x8b54: 0xf0001c1c, 0x8b55: 0xe0000d3a, 0x8b56: 0xe0000d46, 0x8b57: 0xf0001d1d,
-	0x8b58: 0xe0000eb0, 0x8b59: 0xe0000eb8, 0x8b5a: 0xf0001d1d, 0x8b5b: 0xf0001c1c,
-	0x8b5c: 0xf0001c1d, 0x8b5d: 0xe00030d4, 0x8b5e: 0xe00010b2, 0x8b5f: 0xe00009c8,
-	0x8b60: 0xf0001f04, 0x8b61: 0xf0001f04, 0x8b62: 0xf0001f04, 0x8b63: 0xf0001f04,
-	0x8b64: 0xf0001f04, 0x8b65: 0xf0001f04, 0x8b66: 0xf0001f04, 0x8b67: 0xf0001f04,
-	0x8b68: 0xf0001f04, 0x8b69: 0xf0000404, 0x8b6a: 0xf0000404, 0x8b6b: 0xf0000404,
-	0x8b6c: 0xf0000404, 0x8b6d: 0xf0000404, 0x8b6e: 0xf0000404, 0x8b6f: 0xf0000404,
-	0x8b70: 0xf0000404, 0x8b71: 0xf0000404, 0x8b72: 0xf0000404, 0x8b73: 0xf0000404,
-	0x8b74: 0xf0000404, 0x8b75: 0xf0000404, 0x8b76: 0xf0000404, 0x8b77: 0xf0000404,
-	0x8b78: 0xf0000404, 0x8b79: 0xf0000404, 0x8b7a: 0xf0000404, 0x8b7b: 0xf0000404,
-	0x8b7c: 0xf0000404, 0x8b7d: 0xf0000404, 0x8b7e: 0xf0000404, 0x8b7f: 0xe0000bdf,
-	// Block 0x22e, offset 0x8b80
-	0x8b80: 0xf0001f04, 0x8b81: 0xf0001f04, 0x8b82: 0xf0001f04, 0x8b83: 0xf0001f04,
-	0x8b84: 0xf0001f04, 0x8b85: 0xf0001f04, 0x8b86: 0xf0001f04, 0x8b87: 0xf0001f04,
-	0x8b88: 0xf0001f04, 0x8b89: 0xf0001f04, 0x8b8a: 0xf0001f04,
-	0x8b90: 0xf0000a04, 0x8b91: 0xf0000a04, 0x8b92: 0xf0000a04, 0x8b93: 0xf0000a04,
-	0x8b94: 0xf0000a04, 0x8b95: 0xf0000a04, 0x8b96: 0xf0000a04, 0x8b97: 0xf0000a04,
-	0x8b98: 0xf0000a04, 0x8b99: 0xf0000a04, 0x8b9a: 0xf0000a04, 0x8b9b: 0xf0000a04,
-	0x8b9c: 0xf0000a04, 0x8b9d: 0xf0000a04, 0x8b9e: 0xf0000a04, 0x8b9f: 0xf0000a04,
-	0x8ba0: 0xf0000a04, 0x8ba1: 0xf0000a04, 0x8ba2: 0xf0000a04, 0x8ba3: 0xf0000a04,
-	0x8ba4: 0xf0000a04, 0x8ba5: 0xf0000a04, 0x8ba6: 0xe0002880, 0x8ba7: 0xf0000a04,
-	0x8ba8: 0xf0000a04, 0x8ba9: 0xe0002890, 0x8baa: 0xf0000a04, 0x8bab: 0x002c3a8c,
-	0x8bac: 0x002f7a8c, 0x8bad: 0xf0000c0c, 0x8bae: 0xe00030da,
-	0x8bb0: 0x002bde9d, 0x8bb1: 0x002c0a9d, 0x8bb2: 0x002c3a9d, 0x8bb3: 0x002c629d,
-	0x8bb4: 0x002c989d, 0x8bb5: 0x002d089d, 0x8bb6: 0x002d229d, 0x8bb7: 0x002d689d,
-	0x8bb8: 0x002d9a9d, 0x8bb9: 0x002dcc9d, 0x8bba: 0x002dfe9d, 0x8bbb: 0x002e229d,
-	0x8bbc: 0x002e829d, 0x8bbd: 0x002e9e9d, 0x8bbe: 0x002ee29d, 0x8bbf: 0x002f2c9d,
-	// Block 0x22f, offset 0x8bc0
-	0x8bc0: 0x002f569d, 0x8bc1: 0x002f7a9d, 0x8bc2: 0x002fe69d, 0x8bc3: 0x00302c9d,
-	0x8bc4: 0x00306c9d, 0x8bc5: 0x0030be9d, 0x8bc6: 0x0030e29d, 0x8bc7: 0x0030f69d,
-	0x8bc8: 0x0031009d, 0x8bc9: 0x00312a9d, 0x8bca: 0xf0001d1d, 0x8bcb: 0xf0001d1d,
-	0x8bcc: 0xf0001d1d, 0x8bcd: 0xf0001d1d, 0x8bce: 0xe0000ebc, 0x8bcf: 0xe00030d7,
-	0x8bd0: 0x002bde8c, 0x8bd1: 0x002c0a8c, 0x8bd2: 0x002c3a8c, 0x8bd3: 0x002c628c,
-	0x8bd4: 0x002c988c, 0x8bd5: 0x002d088c, 0x8bd6: 0x002d228c, 0x8bd7: 0x002d688c,
-	0x8bd8: 0x002d9a8c, 0x8bd9: 0x002dcc8c, 0x8bda: 0x002dfe8c, 0x8bdb: 0x002e228c,
-	0x8bdc: 0x002e828c, 0x8bdd: 0x002e9e8c, 0x8bde: 0x002ee28c, 0x8bdf: 0x002f2c8c,
-	0x8be0: 0x002f568c, 0x8be1: 0x002f7a8c, 0x8be2: 0x002fe68c, 0x8be3: 0x00302c8c,
-	0x8be4: 0x00306c8c, 0x8be5: 0x0030be8c, 0x8be6: 0x0030e28c, 0x8be7: 0x0030f68c,
-	0x8be8: 0x0031008c, 0x8be9: 0x00312a8c, 0x8bea: 0xf0001414, 0x8beb: 0xf0001414,
-	0x8bf0: 0x002bde9d, 0x8bf1: 0x002c0a9d, 0x8bf2: 0x002c3a9d, 0x8bf3: 0x002c629d,
-	0x8bf4: 0x002c989d, 0x8bf5: 0x002d089d, 0x8bf6: 0x002d229d, 0x8bf7: 0x002d689d,
-	0x8bf8: 0x002d9a9d, 0x8bf9: 0x002dcc9d, 0x8bfa: 0x002dfe9d, 0x8bfb: 0x002e229d,
-	0x8bfc: 0x002e829d, 0x8bfd: 0x002e9e9d, 0x8bfe: 0x002ee29d, 0x8bff: 0x002f2c9d,
-	// Block 0x230, offset 0x8c00
-	0x8c00: 0xa0000000, 0x8c01: 0xa0000000, 0x8c02: 0xa0000000, 0x8c03: 0xa0000000,
-	0x8c04: 0xa0000000, 0x8c06: 0x40096620, 0x8c07: 0x40096a20,
-	0x8c08: 0x40070820, 0x8c09: 0x4004f220, 0x8c0a: 0x4004f620, 0x8c0b: 0x4027e620,
-	0x8c0c: 0x40024820, 0x8c0d: 0x40024a20, 0x8c0e: 0x40070e20, 0x8c0f: 0x40071020,
-	0x8c10: 0xae600000, 0x8c11: 0xae600000, 0x8c12: 0xae600000, 0x8c13: 0xae600000,
-	0x8c14: 0xae600000, 0x8c15: 0xae600000, 0x8c16: 0xae600000, 0x8c17: 0xae600000,
-	0x8c18: 0xa1e00000, 0x8c19: 0xa1f00000, 0x8c1a: 0xa2000000, 0x8c1b: 0x40026420,
-	0x8c1e: 0x40027020, 0x8c1f: 0x4002cc20,
-	0x8c20: 0x403aa220, 0x8c21: 0x40393a20, 0x8c22: 0x40393620, 0x8c23: 0x40393a21,
-	0x8c24: 0x40393a25, 0x8c25: 0x40393a23, 0x8c26: 0x00393b44, 0x8c27: 0xc5520151,
-	0x8c28: 0x40393c20, 0x8c29: 0x403a8823, 0x8c2a: 0x40395620, 0x8c2b: 0x40395820,
-	0x8c2c: 0x40396420, 0x8c2d: 0x40397220, 0x8c2e: 0x40397420, 0x8c2f: 0x40398820,
-	0x8c30: 0x40398a20, 0x8c31: 0x4039a420, 0x8c32: 0x4039a620, 0x8c33: 0x4039c620,
-	0x8c34: 0x4039c820, 0x8c35: 0x4039dc20, 0x8c36: 0x4039de20, 0x8c37: 0x4039e620,
-	0x8c38: 0x4039e820, 0x8c39: 0x4039ee20, 0x8c3a: 0x4039f020, 0x8c3b: 0x403a3820,
-	0x8c3c: 0x403a3a20, 0x8c3d: 0x403a9c20, 0x8c3e: 0x403a9e20, 0x8c3f: 0x403aa020,
-	// Block 0x231, offset 0x8c40
-	0x8c40: 0xa0000000, 0x8c41: 0x4039fc20, 0x8c42: 0x403a1220, 0x8c43: 0x403a1c23,
-	0x8c44: 0x403a4020, 0x8c45: 0x403a4e20, 0x8c46: 0x403a5620, 0x8c47: 0x403a8820,
-	0x8c48: 0xc5560171, 0x8c49: 0xc55a0171, 0x8c4a: 0xc55c0171, 0x8c4b: 0xa000b002,
-	0x8c4c: 0xa000b202, 0x8c4d: 0xa000b102, 0x8c4e: 0xa1e0ad02, 0x8c4f: 0xa000af02,
-	0x8c50: 0xa000ae02, 0x8c51: 0xa210ba02, 0x8c52: 0xa220bc02, 0x8c53: 0xae60bd02,
-	0x8c54: 0xae60be02, 0x8c55: 0xadc0bf02, 0x8c56: 0xadc0c102, 0x8c57: 0xae60c202,
-	0x8c58: 0xae60c302, 0x8c59: 0xae60c402, 0x8c5a: 0xae60c502, 0x8c5b: 0xae60c602,
-	0x8c5c: 0xadc0c702, 0x8c5d: 0xae60c802, 0x8c5e: 0xae60c902, 0x8c5f: 0xadc0c002,
-	0x8c60: 0xe000015e, 0x8c61: 0xe00001e6, 0x8c62: 0xe0000301, 0x8c63: 0xe00003db,
-	0x8c64: 0xe00004b6, 0x8c65: 0xe0000580, 0x8c66: 0xe000064b, 0x8c67: 0xe00006f3,
-	0x8c68: 0xe000079f, 0x8c69: 0xe0000844, 0x8c6a: 0x4004ee20, 0x8c6b: 0x40024c20,
-	0x8c6c: 0x40024e20, 0x8c6d: 0x4004de20, 0x8c6e: 0x40393a20, 0x8c6f: 0x403a1020,
-	0x8c70: 0xa230d102, 0x8c71: 0x40393821, 0x8c72: 0x40393a22, 0x8c73: 0x40393a24,
-	0x8c74: 0x00391c84, 0x8c75: 0xf0000404, 0x8c76: 0xf0000404, 0x8c77: 0xf0000404,
-	0x8c78: 0xe0003275, 0x8c79: 0x40395a20, 0x8c7a: 0x40395c20, 0x8c7b: 0x40393e20,
-	0x8c7c: 0x40395e20, 0x8c7d: 0x40396020, 0x8c7e: 0x40394020, 0x8c7f: 0x40396220,
-	// Block 0x232, offset 0x8c80
-	0x8c80: 0x40394220, 0x8c81: 0x40397620, 0x8c82: 0x40397820, 0x8c83: 0x40396620,
-	0x8c84: 0x40396820, 0x8c85: 0x40397a20, 0x8c86: 0x40396a20, 0x8c87: 0x40396e20,
-	0x8c88: 0x40398c20, 0x8c89: 0x40398e20, 0x8c8a: 0x40399020, 0x8c8b: 0x40399220,
-	0x8c8c: 0x40399420, 0x8c8d: 0x40399620, 0x8c8e: 0x40399820, 0x8c8f: 0x40399a20,
-	0x8c90: 0x40399c20, 0x8c91: 0x4039a820, 0x8c92: 0x4039aa20, 0x8c93: 0x4039ac20,
-	0x8c94: 0x4039ae20, 0x8c95: 0x4039b020, 0x8c96: 0x4039b220, 0x8c97: 0x4039b420,
-	0x8c98: 0x4039b620, 0x8c99: 0x4039b820, 0x8c9a: 0x4039ca20, 0x8c9b: 0x4039cc20,
-	0x8c9c: 0x4039ce20, 0x8c9d: 0x4039e020, 0x8c9e: 0x4039e220, 0x8c9f: 0x4039ea20,
-	0x8ca0: 0x4039f220, 0x8ca1: 0x4039fe20, 0x8ca2: 0x403a0020, 0x8ca3: 0x403a0220,
-	0x8ca4: 0x403a0420, 0x8ca5: 0x403a0820, 0x8ca6: 0x403a0a20, 0x8ca7: 0x403a1420,
-	0x8ca8: 0x403a1620, 0x8ca9: 0x403a1c20, 0x8caa: 0x403a1c21, 0x8cab: 0x403a1c22,
-	0x8cac: 0x403a1c24, 0x8cad: 0x403a1c25, 0x8cae: 0x403a1c26, 0x8caf: 0x403a2a20,
-	0x8cb0: 0x403a2c20, 0x8cb1: 0x403a2e20, 0x8cb2: 0x403a3020, 0x8cb3: 0x403a3220,
-	0x8cb4: 0x403a3420, 0x8cb5: 0x403a4220, 0x8cb6: 0x403a4420, 0x8cb7: 0x403a4620,
-	0x8cb8: 0x403a4820, 0x8cb9: 0x403a6020, 0x8cba: 0x403a5820, 0x8cbb: 0x403a5a20,
-	0x8cbc: 0x403a5c20, 0x8cbd: 0x403a5e20, 0x8cbe: 0x403a8826, 0x8cbf: 0x40396c20,
-	// Block 0x233, offset 0x8cc0
-	0x8cc0: 0x403a8825, 0x8cc1: 0x403a8822, 0x8cc2: 0xe000326c, 0x8cc3: 0x403a8824,
-	0x8cc4: 0x403a7620, 0x8cc5: 0x403a7820, 0x8cc6: 0x403a7a20, 0x8cc7: 0x403a7c20,
-	0x8cc8: 0x403a7e20, 0x8cc9: 0x403a8020, 0x8cca: 0x403a8220, 0x8ccb: 0x403a8420,
-	0x8ccc: 0xc5580171, 0x8ccd: 0x403a9226, 0x8cce: 0x403a9227, 0x8ccf: 0x403a8620,
-	0x8cd0: 0x403a9224, 0x8cd1: 0x403a9225, 0x8cd2: 0x403a9222, 0x8cd3: 0xe00032ab,
-	0x8cd4: 0x4002e820, 0x8cd5: 0xc55e0171, 0x8cd6: 0xae600000, 0x8cd7: 0xae600000,
-	0x8cd8: 0xae600000, 0x8cd9: 0xae600000, 0x8cda: 0xae600000, 0x8cdb: 0xae600000,
-	0x8cdc: 0xae600000, 0x8cdd: 0xa0000000, 0x8cde: 0x40071220, 0x8cdf: 0xae600000,
-	0x8ce0: 0xae600000, 0x8ce1: 0xae600000, 0x8ce2: 0xae600000, 0x8ce3: 0xadc00000,
-	0x8ce4: 0xae600000, 0x8ce5: 0x003a7484, 0x8ce6: 0x003a9084, 0x8ce7: 0xae600000,
-	0x8ce8: 0xae600000, 0x8ce9: 0x40071420, 0x8cea: 0xadc00000, 0x8ceb: 0xae600000,
-	0x8cec: 0xae600000, 0x8ced: 0xadc00000, 0x8cee: 0x40399e20, 0x8cef: 0x4039ba20,
-	0x8cf0: 0xe0000161, 0x8cf1: 0xe00001e9, 0x8cf2: 0xe0000304, 0x8cf3: 0xe00003de,
-	0x8cf4: 0xe00004b9, 0x8cf5: 0xe0000583, 0x8cf6: 0xe000064e, 0x8cf7: 0xe00006f6,
-	0x8cf8: 0xe00007a2, 0x8cf9: 0xe0000847, 0x8cfa: 0x4039d020, 0x8cfb: 0x4039e420,
-	0x8cfc: 0x4039f420, 0x8cfd: 0xe0001553, 0x8cfe: 0xe0001779, 0x8cff: 0x403a7020,
-	// Block 0x234, offset 0x8d00
-	0x8d00: 0x00396e97, 0x8d01: 0x00396e98, 0x8d02: 0x0039969a, 0x8d03: 0x00399699,
-	0x8d04: 0x0039949a, 0x8d05: 0x00399499, 0x8d06: 0x0039989a, 0x8d07: 0x00399899,
-	0x8d08: 0x00398c9a, 0x8d09: 0x00398c99, 0x8d0a: 0x0039b69a, 0x8d0b: 0x0039b699,
-	0x8d0c: 0x0039a89a, 0x8d0d: 0x0039a899, 0x8d0e: 0x003a1c9a, 0x8d0f: 0x003a1c99,
-	0x8d10: 0x003a1c97, 0x8d11: 0x003a1c98, 0x8d12: 0x003a2a9a, 0x8d13: 0x003a2a99,
-	0x8d14: 0x003a2a97, 0x8d15: 0x003a2a98, 0x8d16: 0x003a329a, 0x8d17: 0x003a3299,
-	0x8d18: 0x003a3297, 0x8d19: 0x003a3298, 0x8d1a: 0x003a2e9a, 0x8d1b: 0x003a2e99,
-	0x8d1c: 0x003a2e97, 0x8d1d: 0x003a2e98, 0x8d1e: 0x003a589a, 0x8d1f: 0x003a5899,
-	0x8d20: 0x003a5a9a, 0x8d21: 0x003a5a99, 0x8d22: 0x003a5a97, 0x8d23: 0x003a5a98,
-	0x8d24: 0xe0003269, 0x8d25: 0xe0003266, 0x8d26: 0x003a6c9a, 0x8d27: 0x003a6c99,
-	0x8d28: 0x003a6c97, 0x8d29: 0x003a6c98, 0x8d2a: 0x003a6a9a, 0x8d2b: 0x003a6a99,
-	0x8d2c: 0x003a6a97, 0x8d2d: 0x003a6a98, 0x8d2e: 0x003aaa9a, 0x8d2f: 0x003aaa99,
-	0x8d30: 0xe00032b1, 0x8d31: 0xe00032ae, 0x8d32: 0x40071820, 0x8d33: 0x40071a20,
-	0x8d34: 0x40071c20, 0x8d35: 0x40071e20, 0x8d36: 0x40072020, 0x8d37: 0x40072220,
-	0x8d38: 0x40072420, 0x8d39: 0x40072620, 0x8d3a: 0x40072820, 0x8d3b: 0x40072a20,
-	0x8d3c: 0x40072c20, 0x8d3d: 0x40072e20, 0x8d3e: 0x40073020, 0x8d3f: 0x40073220,
-	// Block 0x235, offset 0x8d40
-	0x8d40: 0xe000155f, 0x8d41: 0xe0001565, 0x8d42: 0xe000157a, 0x8d43: 0xe00015b0,
-	0x8d44: 0xe00015b6, 0x8d45: 0xf0001a1a, 0x8d46: 0xf0001a1a, 0x8d47: 0xf0001a1a,
-	0x8d48: 0xf0001a1a, 0x8d49: 0xe00024a2, 0x8d4a: 0xe000319a, 0x8d4b: 0xf0001a1a,
-	0x8d4c: 0xf0001a1a, 0x8d4d: 0xf0001a1a, 0x8d4e: 0xf0001a1a, 0x8d4f: 0xe00024a8,
-	0x8d50: 0xe00031a6, 0x8d51: 0xf0001a1a, 0x8d52: 0xf0001a1a, 0x8d53: 0xe00024ae,
-	0x8d54: 0xe00031af, 0x8d55: 0xf0001a1a, 0x8d56: 0xf0001a1a, 0x8d57: 0xf0001a1a,
-	0x8d58: 0xf0001a1a, 0x8d59: 0xf0001a1a, 0x8d5a: 0xf0001a1a, 0x8d5b: 0xf0001a1a,
-	0x8d5c: 0xf0001a1a, 0x8d5d: 0xf0001a1a, 0x8d5e: 0xf0001a1a, 0x8d5f: 0xf0001a1a,
-	0x8d60: 0xf0001a1a, 0x8d61: 0xf0001a1a, 0x8d62: 0xf0001a1a, 0x8d63: 0xf0001a1a,
-	0x8d64: 0xf0001a1a, 0x8d65: 0xf0001a1a, 0x8d66: 0xf0001a1a, 0x8d67: 0xf0001a1a,
-	0x8d68: 0xf0001a1a, 0x8d69: 0xf0001a1a, 0x8d6a: 0xf0001a1a, 0x8d6b: 0xf0001a1a,
-	0x8d6c: 0xf0001a1a, 0x8d6d: 0xf0001a1a, 0x8d6e: 0xf0001a1a, 0x8d6f: 0xf0001a1a,
-	0x8d70: 0xf0001a1a, 0x8d71: 0xe00024f0, 0x8d72: 0xe00031fd, 0x8d73: 0xf0001a1a,
-	0x8d74: 0xf0001a1a, 0x8d75: 0xe00024f6, 0x8d76: 0xe0003203, 0x8d77: 0xe0003209,
-	0x8d78: 0xe000320f, 0x8d79: 0xe0003215, 0x8d7a: 0xe000321b, 0x8d7b: 0xe0003227,
-	0x8d7c: 0xe0003233, 0x8d7d: 0xe00024fc, 0x8d7e: 0xe0003239, 0x8d7f: 0xf0001a1a,
-	// Block 0x236, offset 0x8d80
-	0x8d80: 0xf0001a1a, 0x8d81: 0xf0001a1a, 0x8d82: 0xf0001a1a, 0x8d83: 0xe0002502,
-	0x8d84: 0xe0003242, 0x8d85: 0xf0001a1a, 0x8d86: 0xf0001a1a, 0x8d87: 0xf0001a1a,
-	0x8d88: 0xf0001a1a, 0x8d89: 0xe0002505, 0x8d8a: 0xe0003245, 0x8d8b: 0xf0001a1a,
-	0x8d8c: 0xf0001a1a, 0x8d8d: 0xf0001a1a, 0x8d8e: 0xf0001a1a, 0x8d8f: 0xe000250b,
-	0x8d90: 0xe0003251, 0x8d91: 0xe000325a, 0x8d92: 0xe0003260, 0x8d93: 0xe000250e,
-	0x8d94: 0xe0003263, 0x8d95: 0xe000327b, 0x8d96: 0xe0003281, 0x8d97: 0xe0003287,
-	0x8d98: 0xe0003299, 0x8d99: 0xe0002514, 0x8d9a: 0xe00032a8, 0x8d9b: 0xf0001a1a,
-	0x8d9c: 0xf0001a1a, 0x8d9d: 0xe0003272, 0x8d9e: 0xe0000003, 0x8d9f: 0xe0000006,
-	0x8da0: 0xe0000009, 0x8da1: 0xe000000c, 0x8da2: 0xe000000f, 0x8da3: 0xe0000012,
-	0x8da4: 0xe000156b, 0x8da5: 0xe000156e, 0x8da6: 0xe0001577, 0x8da7: 0xe000157d,
-	0x8da8: 0xe00015aa, 0x8da9: 0xe00015b3, 0x8daa: 0xf0001919, 0x8dab: 0xf0001919,
-	0x8dac: 0xf0001919, 0x8dad: 0xf0001919, 0x8dae: 0xe000249f, 0x8daf: 0xe0003197,
-	0x8db0: 0xf0001919, 0x8db1: 0xf0001919, 0x8db2: 0xf0001919, 0x8db3: 0xf0001919,
-	0x8db4: 0xe00024a5, 0x8db5: 0xe00031a3, 0x8db6: 0xf0001919, 0x8db7: 0xf0001919,
-	0x8db8: 0xf0001919, 0x8db9: 0xf0001919, 0x8dba: 0xe00024ab, 0x8dbb: 0xe00031ac,
-	0x8dbc: 0xe00024ed, 0x8dbd: 0xe00031fa, 0x8dbe: 0xe00024f3, 0x8dbf: 0xe0003200,
-	// Block 0x237, offset 0x8dc0
-	0x8dc0: 0xe0003206, 0x8dc1: 0xe0003224, 0x8dc2: 0xe0003230, 0x8dc3: 0xe00024f9,
-	0x8dc4: 0xe0003236, 0x8dc5: 0xf0001919, 0x8dc6: 0xe00024ff, 0x8dc7: 0xe000323f,
-	0x8dc8: 0xf0001919, 0x8dc9: 0xf0001919, 0x8dca: 0xf0001919, 0x8dcb: 0xf0001919,
-	0x8dcc: 0xf0001919, 0x8dcd: 0xf0001919, 0x8dce: 0xe0002508, 0x8dcf: 0xe000324e,
-	0x8dd0: 0xe000326f, 0x8dd1: 0xe000328a, 0x8dd2: 0xe000328d, 0x8dd3: 0xe0003296,
-	0x8dd4: 0xe000329c, 0x8dd5: 0xe0002511, 0x8dd6: 0xe00032a5, 0x8dd7: 0xe000155c,
-	0x8dd8: 0xe0001562, 0x8dd9: 0xe0001568, 0x8dda: 0xe0001571, 0x8ddb: 0xe0001580,
-	0x8ddc: 0xf0001717, 0x8ddd: 0xf0001717, 0x8dde: 0xf0001717, 0x8ddf: 0xf0001717,
-	0x8de0: 0xe0003191, 0x8de1: 0xf0001717, 0x8de2: 0xf0001717, 0x8de3: 0xf0001717,
-	0x8de4: 0xf0001717, 0x8de5: 0xe000319d, 0x8de6: 0xf0001717, 0x8de7: 0xf0001717,
-	0x8de8: 0xf0001717, 0x8de9: 0xf0001717, 0x8dea: 0xf0001717, 0x8deb: 0xf0001717,
-	0x8dec: 0xf0001717, 0x8ded: 0xf0001717, 0x8dee: 0xf0001717, 0x8def: 0xf0001717,
-	0x8df0: 0xf0001717, 0x8df1: 0xf0001717, 0x8df2: 0xf0001717, 0x8df3: 0xf0001717,
-	0x8df4: 0xf0001717, 0x8df5: 0xf0001717, 0x8df6: 0xf0001717, 0x8df7: 0xf0001717,
-	0x8df8: 0xf0001717, 0x8df9: 0xf0001717, 0x8dfa: 0xf0001717, 0x8dfb: 0xf0001717,
-	0x8dfc: 0xf0001717, 0x8dfd: 0xf0001717, 0x8dfe: 0xf0001717, 0x8dff: 0xf0001717,
-	// Block 0x238, offset 0x8e00
-	0x8e00: 0xf0001717, 0x8e01: 0xf0001717, 0x8e02: 0xf0001717, 0x8e03: 0xf0001717,
-	0x8e04: 0xe000320c, 0x8e05: 0xe0003212, 0x8e06: 0xe0003218, 0x8e07: 0xe000321e,
-	0x8e08: 0xe000322a, 0x8e09: 0xf0001717, 0x8e0a: 0xf0001717, 0x8e0b: 0xf0001717,
-	0x8e0c: 0xf0001717, 0x8e0d: 0xe000323c, 0x8e0e: 0xf0001717, 0x8e0f: 0xf0001717,
-	0x8e10: 0xf0001717, 0x8e11: 0xf0001717, 0x8e12: 0xf0001717, 0x8e13: 0xf0001717,
-	0x8e14: 0xf0001717, 0x8e15: 0xf0001717, 0x8e16: 0xe0003248, 0x8e17: 0xe0003257,
-	0x8e18: 0xe000325d, 0x8e19: 0xe0003254, 0x8e1a: 0xe0003278, 0x8e1b: 0xe000327e,
-	0x8e1c: 0xe0003284, 0x8e1d: 0xe0003290, 0x8e1e: 0xe000329f, 0x8e1f: 0xe0001574,
-	0x8e20: 0xe0001583, 0x8e21: 0xf0001818, 0x8e22: 0xe0003194, 0x8e23: 0xf0001818,
-	0x8e24: 0xe00031a0, 0x8e25: 0xf0001818, 0x8e26: 0xe00031a9, 0x8e27: 0xf0001818,
-	0x8e28: 0xe00031c7, 0x8e29: 0xf0001818, 0x8e2a: 0xe00031d3, 0x8e2b: 0xe0003221,
-	0x8e2c: 0xe000322d, 0x8e2d: 0xf0001818, 0x8e2e: 0xf0001818, 0x8e2f: 0xe000324b,
-	0x8e30: 0xe0003293, 0x8e31: 0xe00032a2, 0x8e32: 0xf0001818, 0x8e33: 0xe0003185,
-	0x8e34: 0xe0003188, 0x8e35: 0xe00024de, 0x8e36: 0xe00031eb, 0x8e37: 0xe00024e4,
-	0x8e38: 0xe00031f1, 0x8e39: 0xe00024ea, 0x8e3a: 0xe00031f7, 0x8e3b: 0xe00024c6,
-	0x8e3c: 0xe00031cd, 0x8e3d: 0xe00024cc, 0x8e3e: 0xe00031d9, 0x8e3f: 0xe00024ba,
-	// Block 0x239, offset 0x8e40
-	0x8e40: 0xe00031bb, 0x8e41: 0xe00024b4, 0x8e42: 0xe00031b5, 0x8e43: 0xe00024c0,
-	0x8e44: 0xe00031c1, 0x8e45: 0xe00024d2, 0x8e46: 0xe00031df, 0x8e47: 0xe00024d8,
-	0x8e48: 0xe00031e5, 0x8e49: 0xf0001a1a, 0x8e4a: 0xf0001a1a, 0x8e4b: 0xf0001a1a,
-	0x8e4c: 0xf0001a1a, 0x8e4d: 0xf0001a1a, 0x8e4e: 0xf0001a1a, 0x8e4f: 0xf0001a1a,
-	0x8e50: 0xf0001a1a, 0x8e51: 0xe00024db, 0x8e52: 0xe00031e8, 0x8e53: 0xe00024e1,
-	0x8e54: 0xe00031ee, 0x8e55: 0xe00024e7, 0x8e56: 0xe00031f4, 0x8e57: 0xe00024c3,
-	0x8e58: 0xe00031ca, 0x8e59: 0xe00024c9, 0x8e5a: 0xe00031d6, 0x8e5b: 0xe00024b7,
-	0x8e5c: 0xe00031b8, 0x8e5d: 0xe00024b1, 0x8e5e: 0xe00031b2, 0x8e5f: 0xe00024bd,
-	0x8e60: 0xe00031be, 0x8e61: 0xe00024cf, 0x8e62: 0xe00031dc, 0x8e63: 0xe00024d5,
-	0x8e64: 0xe00031e2, 0x8e65: 0xf0001919, 0x8e66: 0xf0001919, 0x8e67: 0xf0001919,
-	0x8e68: 0xf0001919, 0x8e69: 0xf0001919, 0x8e6a: 0xf0001919, 0x8e6b: 0xf0001919,
-	0x8e6c: 0xf0001919, 0x8e6d: 0xf0001717, 0x8e6e: 0xf0001717, 0x8e6f: 0xf0001717,
-	0x8e70: 0xf0001717, 0x8e71: 0xe00031c4, 0x8e72: 0xe00031d0, 0x8e73: 0xf0001717,
-	0x8e74: 0xf0001818, 0x8e75: 0xf0001818, 0x8e76: 0xf0001818, 0x8e77: 0xf0001818,
-	0x8e78: 0xf0001818, 0x8e79: 0xf0001818, 0x8e7a: 0xf0001818, 0x8e7b: 0xf0001818,
-	0x8e7c: 0xe000318b, 0x8e7d: 0xe000318e, 0x8e7e: 0x4004c020, 0x8e7f: 0x4004c220,
-	// Block 0x23a, offset 0x8e80
-	0x8e80: 0xa0000000, 0x8e81: 0xa0000000, 0x8e82: 0xa0000000, 0x8e83: 0xa0000000,
-	0x8e84: 0xa0000000, 0x8e85: 0xa0000000, 0x8e86: 0xa0000000, 0x8e87: 0xa0000000,
-	0x8e88: 0xa0000000, 0x8e89: 0x40020020, 0x8e8a: 0x40020220, 0x8e8b: 0x40020420,
-	0x8e8c: 0x40020620, 0x8e8d: 0x40020820, 0x8e8e: 0xa0000000, 0x8e8f: 0xa0000000,
-	0x8e90: 0xa0000000, 0x8e91: 0xa0000000, 0x8e92: 0xa0000000, 0x8e93: 0xa0000000,
-	0x8e94: 0xa0000000, 0x8e95: 0xa0000000, 0x8e96: 0xa0000000, 0x8e97: 0xa0000000,
-	0x8e98: 0xa0000000, 0x8e99: 0xa0000000, 0x8e9a: 0xa0000000, 0x8e9b: 0xa0000000,
-	0x8e9c: 0xa0000000, 0x8e9d: 0xa0000000, 0x8e9e: 0xa0000000, 0x8e9f: 0xa0000000,
-	0x8ea0: 0x40021220, 0x8ea1: 0x4002ba20, 0x8ea2: 0x4003e020, 0x8ea3: 0x4004ea20,
-	0x8ea4: 0x4027de20, 0x8ea5: 0x4004ec20, 0x8ea6: 0x4004e620, 0x8ea7: 0x4003d220,
-	0x8ea8: 0x4003f420, 0x8ea9: 0x4003f620, 0x8eaa: 0x4004d820, 0x8eab: 0x40093820,
-	0x8eac: 0x40024020, 0x8ead: 0x40021a20, 0x8eae: 0x4002e420, 0x8eaf: 0x4004e220,
-	0x8eb0: 0x4029cc20, 0x8eb1: 0x4029ce20, 0x8eb2: 0x4029d020, 0x8eb3: 0x4029d220,
-	0x8eb4: 0x4029d420, 0x8eb5: 0x4029d620, 0x8eb6: 0x4029d820, 0x8eb7: 0x4029da20,
-	0x8eb8: 0x4029dc20, 0x8eb9: 0x4029de20, 0x8eba: 0x40026c20, 0x8ebb: 0x40026220,
-	0x8ebc: 0x40094020, 0x8ebd: 0x40094220, 0x8ebe: 0x40094420, 0x8ebf: 0x4002c420,
-	// Block 0x23b, offset 0x8ec0
-	0x8ec0: 0x4004d620, 0x8ec1: 0xc56727b1, 0x8ec2: 0x002c0a88, 0x8ec3: 0x002c3a88,
-	0x8ec4: 0x002c6288, 0x8ec5: 0x002c9888, 0x8ec6: 0x002d0888, 0x8ec7: 0x002d2288,
-	0x8ec8: 0x002d6888, 0x8ec9: 0x002d9a88, 0x8eca: 0x002dcc88, 0x8ecb: 0x002dfe88,
-	0x8ecc: 0xc0030002, 0x8ecd: 0x002e8288, 0x8ece: 0x002e9e88, 0x8ecf: 0xc56c0071,
-	0x8ed0: 0x002f2c88, 0x8ed1: 0x002f5688, 0x8ed2: 0x002f7a88, 0x8ed3: 0x002fe688,
-	0x8ed4: 0x00302c88, 0x8ed5: 0xc5620071, 0x8ed6: 0x0030be88, 0x8ed7: 0x0030e288,
-	0x8ed8: 0x0030f688, 0x8ed9: 0x00310088, 0x8eda: 0x00312a88, 0x8edb: 0x4003f820,
-	0x8edc: 0x4004e420, 0x8edd: 0x4003fa20, 0x8ede: 0x40062420, 0x8edf: 0x40021620,
-	0x8ee0: 0x40061e20, 0x8ee1: 0xc56427b1, 0x8ee2: 0x402c0a20, 0x8ee3: 0x402c3a20,
-	0x8ee4: 0x402c6220, 0x8ee5: 0x402c9820, 0x8ee6: 0x402d0820, 0x8ee7: 0x402d2220,
-	0x8ee8: 0x402d6820, 0x8ee9: 0x402d9a20, 0x8eea: 0x402dcc20, 0x8eeb: 0x402dfe20,
-	0x8eec: 0xc0000002, 0x8eed: 0x402e8220, 0x8eee: 0x402e9e20, 0x8eef: 0xc56a0071,
-	0x8ef0: 0x402f2c20, 0x8ef1: 0x402f5620, 0x8ef2: 0x402f7a20, 0x8ef3: 0x402fe620,
-	0x8ef4: 0x40302c20, 0x8ef5: 0xc5600071, 0x8ef6: 0x4030be20, 0x8ef7: 0x4030e220,
-	0x8ef8: 0x4030f620, 0x8ef9: 0x40310020, 0x8efa: 0x40312a20, 0x8efb: 0x4003fc20,
-	0x8efc: 0x40094820, 0x8efd: 0x4003fe20, 0x8efe: 0x40094c20, 0x8eff: 0xa0000000,
-	// Block 0x23c, offset 0x8f00
-	0x8f00: 0xe00008f5, 0x8f01: 0xe00008ef, 0x8f02: 0xe0000921, 0x8f03: 0xe0000969,
-	0x8f04: 0x00320e83, 0x8f05: 0x00320c83, 0x8f06: 0x00320ea3, 0x8f07: 0xe0000a53,
-	0x8f08: 0xe0000ae8, 0x8f09: 0xe0000ae2, 0x8f0a: 0xe0000af4, 0x8f0b: 0xe0000b20,
-	0x8f0c: 0xe0000c2b, 0x8f0d: 0xe0000c25, 0x8f0e: 0xe0000c37, 0x8f0f: 0xe0000c43,
-	0x8f10: 0xe0000ab3, 0x8f11: 0xe0000d63, 0x8f12: 0xe0000d9a, 0x8f13: 0xe0000d94,
-	0x8f14: 0xe0000da6, 0x8f15: 0xe0000de6, 0x8f16: 0x00321083, 0x8f17: 0x40093e20,
-	0x8f18: 0x003210a3, 0x8f19: 0xe0000fe1, 0x8f1a: 0xe0000fdb, 0x8f1b: 0xe0000fed,
-	0x8f1c: 0x003100a3, 0x8f1d: 0xe0001102, 0x8f1e: 0x00318888, 0x8f1f: 0xe0000f7b,
-	0x8f20: 0xe00008f2, 0x8f21: 0xe00008ec, 0x8f22: 0xe000091e, 0x8f23: 0xe0000966,
-	0x8f24: 0x40320e20, 0x8f25: 0x40320c20, 0x8f26: 0x40320e21, 0x8f27: 0xe0000a4d,
-	0x8f28: 0xe0000ae5, 0x8f29: 0xe0000adf, 0x8f2a: 0xe0000af1, 0x8f2b: 0xe0000b1d,
-	0x8f2c: 0xe0000c28, 0x8f2d: 0xe0000c22, 0x8f2e: 0xe0000c34, 0x8f2f: 0xe0000c40,
-	0x8f30: 0xe0000aad, 0x8f31: 0xe0000d60, 0x8f32: 0xe0000d97, 0x8f33: 0xe0000d91,
-	0x8f34: 0xe0000da3, 0x8f35: 0xe0000de3, 0x8f36: 0x40321020, 0x8f37: 0x40093c20,
-	0x8f38: 0x40321021, 0x8f39: 0xe0000fde, 0x8f3a: 0xe0000fd8, 0x8f3b: 0xe0000fea,
-	0x8f3c: 0x40310021, 0x8f3d: 0xe00010ff, 0x8f3e: 0x40318820, 0x8f3f: 0xe0001114,
-	// Block 0x23d, offset 0x8f40
-	0x8f40: 0xe0000983, 0x8f41: 0xe0000980, 0x8f42: 0xe00008fb, 0x8f43: 0xe00008f8,
-	0x8f44: 0xe000097d, 0x8f45: 0xe000097a, 0x8f46: 0xe0000a38, 0x8f47: 0xe0000a35,
-	0x8f48: 0xe0000a3e, 0x8f49: 0xe0000a3b, 0x8f4a: 0xe0000a4a, 0x8f4b: 0xe0000a47,
-	0x8f4c: 0xe0000a44, 0x8f4d: 0xe0000a41, 0x8f4e: 0xe0000a86, 0x8f4f: 0xe0000a83,
-	0x8f50: 0xe00032b7, 0x8f51: 0xe00032b4, 0x8f52: 0xe0000b46, 0x8f53: 0xe0000b43,
-	0x8f54: 0xe0000aee, 0x8f55: 0xe0000aeb, 0x8f56: 0xe0000b2c, 0x8f57: 0xe0000b29,
-	0x8f58: 0xe0000b40, 0x8f59: 0xe0000b3d, 0x8f5a: 0xe0000b1a, 0x8f5b: 0xe0000b17,
-	0x8f5c: 0xe0000bb8, 0x8f5d: 0xe0000bb5, 0x8f5e: 0xe0000bb2, 0x8f5f: 0xe0000baf,
-	0x8f60: 0xe0000bc4, 0x8f61: 0xe0000bc1, 0x8f62: 0xe0000bca, 0x8f63: 0xe0000bc7,
-	0x8f64: 0xe0000bee, 0x8f65: 0xe0000beb, 0x8f66: 0xe0000c1b, 0x8f67: 0xe0000c18,
-	0x8f68: 0xe0000c51, 0x8f69: 0xe0000c4e, 0x8f6a: 0xe0000c60, 0x8f6b: 0xe0000c5d,
-	0x8f6c: 0xe0000c31, 0x8f6d: 0xe0000c2e, 0x8f6e: 0xe0000c5a, 0x8f6f: 0xe0000c57,
-	0x8f70: 0xe0000c54, 0x8f71: 0x402da220, 0x8f72: 0xf0000a0a, 0x8f73: 0xf0000404,
-	0x8f74: 0xe0000c8a, 0x8f75: 0xe0000c87, 0x8f76: 0xe0000c9f, 0x8f77: 0xe0000c9c,
-	0x8f78: 0x402f7220, 0x8f79: 0xe0000ccc, 0x8f7a: 0xe0000cc9, 0x8f7b: 0xe0000cd8,
-	0x8f7c: 0xe0000cd5, 0x8f7d: 0xe0000cd2, 0x8f7e: 0xe0000ccf, 0x8f7f: 0xe0000d04,
-	// Block 0x23e, offset 0x8f80
-	0x8f80: 0xe0000cfe, 0x8f81: 0xe0000cf8, 0x8f82: 0xe0000cf5, 0x8f83: 0xe0000d51,
-	0x8f84: 0xe0000d4e, 0x8f85: 0xe0000d6f, 0x8f86: 0xe0000d6c, 0x8f87: 0xe0000d5d,
-	0x8f88: 0xe0000d5a, 0x8f89: 0xf0000404, 0x8f8a: 0xe00032c3, 0x8f8b: 0xe00032c0,
-	0x8f8c: 0xe0000e2e, 0x8f8d: 0xe0000e2b, 0x8f8e: 0xe0000da0, 0x8f8f: 0xe0000d9d,
-	0x8f90: 0xe0000de0, 0x8f91: 0xe0000ddd, 0x8f92: 0xe0000e93, 0x8f93: 0xe0000e8f,
-	0x8f94: 0xe0000eca, 0x8f95: 0xe0000ec7, 0x8f96: 0xe0000edc, 0x8f97: 0xe0000ed9,
-	0x8f98: 0xe0000ed0, 0x8f99: 0xe0000ecd, 0x8f9a: 0xe0000f1f, 0x8f9b: 0xe0000f1c,
-	0x8f9c: 0xe0000f2d, 0x8f9d: 0xe0000f2a, 0x8f9e: 0xe0000f47, 0x8f9f: 0xe0000f44,
-	0x8fa0: 0xe0000f33, 0x8fa1: 0xe0000f30, 0x8fa2: 0xe0000f99, 0x8fa3: 0xe0000f96,
-	0x8fa4: 0xe0000f8a, 0x8fa5: 0xe0000f87, 0x8fa6: 0xe00032c9, 0x8fa7: 0xe00032c6,
-	0x8fa8: 0xe000102b, 0x8fa9: 0xe0001028, 0x8faa: 0xe000103f, 0x8fab: 0xe000103c,
-	0x8fac: 0xe0000fe7, 0x8fad: 0xe0000fe4, 0x8fae: 0xe0000ff9, 0x8faf: 0xe0000ff6,
-	0x8fb0: 0xe0001025, 0x8fb1: 0xe0001022, 0x8fb2: 0xe0001039, 0x8fb3: 0xe0001036,
-	0x8fb4: 0xe00010d8, 0x8fb5: 0xe00010d5, 0x8fb6: 0xe000110e, 0x8fb7: 0xe000110b,
-	0x8fb8: 0xe0001117, 0x8fb9: 0xe000113b, 0x8fba: 0xe0001138, 0x8fbb: 0xe000114d,
-	0x8fbc: 0xe000114a, 0x8fbd: 0xe0001147, 0x8fbe: 0xe0001144, 0x8fbf: 0xe0000f64,
-	// Block 0x23f, offset 0x8fc0
-	0x8fc0: 0x402c1a20, 0x8fc1: 0x002c2a88, 0x8fc2: 0x002c3288, 0x8fc3: 0x402c3220,
-	0x8fc4: 0x0031c488, 0x8fc5: 0x4031c420, 0x8fc6: 0x002efa88, 0x8fc7: 0x002c4e88,
-	0x8fc8: 0x402c4e20, 0x8fc9: 0x002c7288, 0x8fca: 0x002c7a88, 0x8fcb: 0x002c8488,
-	0x8fcc: 0x402c8420, 0x8fcd: 0xe000115c, 0x8fce: 0x002cae88, 0x8fcf: 0x002cb888,
-	0x8fd0: 0x002cc288, 0x8fd1: 0x002d1688, 0x8fd2: 0x402d1620, 0x8fd3: 0x002d4488,
-	0x8fd4: 0x002d5888, 0x8fd5: 0x402d7820, 0x8fd6: 0x002dc288, 0x8fd7: 0x002db688,
-	0x8fd8: 0x002e0a88, 0x8fd9: 0x402e0a20, 0x8fda: 0x402e3820, 0x8fdb: 0x402e7220,
-	0x8fdc: 0x0030a088, 0x8fdd: 0x002eb488, 0x8fde: 0x402ebc20, 0x8fdf: 0x002f1088,
-	0x8fe0: 0xe0000e56, 0x8fe1: 0xe0000e53, 0x8fe2: 0x002d6088, 0x8fe3: 0x402d6020,
-	0x8fe4: 0x002f3e88, 0x8fe5: 0x402f3e20, 0x8fe6: 0x002f8288, 0x8fe7: 0x0031b488,
-	0x8fe8: 0x4031b420, 0x8fe9: 0x00300888, 0x8fea: 0x40301220, 0x8feb: 0x40304220,
-	0x8fec: 0x00304a88, 0x8fed: 0x40304a20, 0x8fee: 0x00305288, 0x8fef: 0xe000105f,
-	0x8ff0: 0xe000105c, 0x8ff1: 0x0030b488, 0x8ff2: 0x0030cc88, 0x8ff3: 0x00311888,
-	0x8ff4: 0x40311820, 0x8ff5: 0x00313488, 0x8ff6: 0x40313420, 0x8ff7: 0xe00032cf,
-	0x8ff8: 0x00316e88, 0x8ff9: 0x40316e20, 0x8ffa: 0x40317820, 0x8ffb: 0x4031a620,
-	0x8ffc: 0x0031bc88, 0x8ffd: 0x4031bc20, 0x8ffe: 0xe0000fc9, 0x8fff: 0x40319420,
-	// Block 0x240, offset 0x9000
-	0x9000: 0x40321220, 0x9001: 0x40321a20, 0x9002: 0x40322220, 0x9003: 0x40322a20,
-	0x9004: 0xe0000ad5, 0x9005: 0xe0000ad1, 0x9006: 0xe0000acd, 0x9007: 0xf0000a0a,
-	0x9008: 0xf000040a, 0x9009: 0xf0000404, 0x900a: 0xf0000a0a, 0x900b: 0xf000040a,
-	0x900c: 0xf0000404, 0x900d: 0xe0000947, 0x900e: 0xe0000944, 0x900f: 0xe0000c3d,
-	0x9010: 0xe0000c3a, 0x9011: 0xe0000dcc, 0x9012: 0xe0000dc9, 0x9013: 0xe0000ff3,
-	0x9014: 0xe0000ff0, 0x9015: 0xe00025e4, 0x9016: 0xe00025e1, 0x9017: 0xe00025d2,
-	0x9018: 0xe00025cf, 0x9019: 0xe00025de, 0x901a: 0xe00025db, 0x901b: 0xe00025d8,
-	0x901c: 0xe00025d5, 0x901d: 0x402cae20, 0x901e: 0xe00032dd, 0x901f: 0xe00032da,
-	0x9020: 0xe0000976, 0x9021: 0xe0000972, 0x9022: 0xe0002608, 0x9023: 0xe0002605,
-	0x9024: 0xe00032bd, 0x9025: 0xe00032ba, 0x9026: 0xe0000bbe, 0x9027: 0xe0000bbb,
-	0x9028: 0xe0000c99, 0x9029: 0xe0000c96, 0x902a: 0xe0000e20, 0x902b: 0xe0000e1d,
-	0x902c: 0xe0000e27, 0x902d: 0xe0000e23, 0x902e: 0xe00032d6, 0x902f: 0xe00032d2,
-	0x9030: 0xe0000c8d, 0x9031: 0xf0000a0a, 0x9032: 0xf000040a, 0x9033: 0xf0000404,
-	0x9034: 0xe0000bac, 0x9035: 0xe0000ba9, 0x9036: 0x002d7888, 0x9037: 0x00319488,
-	0x9038: 0xe0000d57, 0x9039: 0xe0000d54, 0x903a: 0xe00025ea, 0x903b: 0xe00025e7,
-	0x903c: 0xe00032e3, 0x903d: 0xe00032e0, 0x903e: 0xe00032f5, 0x903f: 0xe00032f2,
-	// Block 0x241, offset 0x9040
-	0x9040: 0xe000098f, 0x9041: 0xe000098c, 0x9042: 0xe0000995, 0x9043: 0xe0000992,
-	0x9044: 0xe0000b62, 0x9045: 0xe0000b5f, 0x9046: 0xe0000b68, 0x9047: 0xe0000b65,
-	0x9048: 0xe0000c6c, 0x9049: 0xe0000c69, 0x904a: 0xe0000c72, 0x904b: 0xe0000c6f,
-	0x904c: 0xe0000e4a, 0x904d: 0xe0000e47, 0x904e: 0xe0000e50, 0x904f: 0xe0000e4d,
-	0x9050: 0xe0000ee8, 0x9051: 0xe0000ee5, 0x9052: 0xe0000eee, 0x9053: 0xe0000eeb,
-	0x9054: 0xe0001053, 0x9055: 0xe0001050, 0x9056: 0xe0001059, 0x9057: 0xe0001056,
-	0x9058: 0xe0000f61, 0x9059: 0xe0000f5e, 0x905a: 0xe0000fa5, 0x905b: 0xe0000fa2,
-	0x905c: 0x00312288, 0x905d: 0x40312220, 0x905e: 0xe0000bf4, 0x905f: 0xe0000bf1,
-	0x9060: 0x002ebc88, 0x9061: 0x402c8c20, 0x9062: 0x002f2288, 0x9063: 0x402f2220,
-	0x9064: 0x00314088, 0x9065: 0x40314020, 0x9066: 0xe000096f, 0x9067: 0xe000096c,
-	0x9068: 0xe0000b32, 0x9069: 0xe0000b2f, 0x906a: 0xe00032ef, 0x906b: 0xe00032ec,
-	0x906c: 0xe0000dfd, 0x906d: 0xe0000df9, 0x906e: 0xe0000e04, 0x906f: 0xe0000e01,
-	0x9070: 0xe0000e0b, 0x9071: 0xe0000e07, 0x9072: 0xe0001129, 0x9073: 0xe0001126,
-	0x9074: 0x402e5e20, 0x9075: 0x402ed020, 0x9076: 0x40305a20, 0x9077: 0x402dd420,
-	0x9078: 0xe0000abf, 0x9079: 0xe0000ec4, 0x907a: 0x002be888, 0x907b: 0x002c4488,
-	0x907c: 0x402c4420, 0x907d: 0x002e3888, 0x907e: 0x00303e88, 0x907f: 0x402ffc20,
-	// Block 0x242, offset 0x9080
-	0x9080: 0x402f8220, 0x9081: 0x402fd820, 0x9082: 0x402ff420, 0x9083: 0x40300820,
-	0x9084: 0x402df620, 0x9085: 0x40301a20, 0x9086: 0x40302420, 0x9087: 0x40306420,
-	0x9088: 0x40305220, 0x9089: 0x40307c20, 0x908a: 0x4030b420, 0x908b: 0x4030cc20,
-	0x908c: 0x4030da20, 0x908d: 0x4030ee20, 0x908e: 0x402e7a20, 0x908f: 0x40310820,
-	0x9090: 0x40314820, 0x9091: 0x40315020, 0x9092: 0xe00032cc, 0x9093: 0x40318020,
-	0x9094: 0x4031cc20, 0x9095: 0x4031e820, 0x9096: 0x40320a20, 0x9097: 0x40323220,
-	0x9098: 0x40323a20, 0x9099: 0x402c1220, 0x909a: 0x402cf820, 0x909b: 0x402d4c20,
-	0x909c: 0x402d7020, 0x909d: 0x402de620, 0x909e: 0x402e1a20, 0x909f: 0x402e2a20,
-	0x90a0: 0x402f6220, 0x90a1: 0x4031fa20, 0x90a2: 0x40320220, 0x90a3: 0xe0000aca,
-	0x90a4: 0xe0000adc, 0x90a5: 0xe0000ad9, 0x90a6: 0xe0000fcc, 0x90a7: 0xe0000fcf,
-	0x90a8: 0xe0000fba, 0x90a9: 0xe0000ba1, 0x90aa: 0xe0000d11, 0x90ab: 0xe0000d18,
-	0x90ac: 0x40324220, 0x90ad: 0x40324a20, 0x90ae: 0x40309020, 0x90af: 0x40309820,
-	0x90b0: 0x002d6894, 0x90b1: 0x002d8094, 0x90b2: 0x002dcc94, 0x90b3: 0x002f7a94,
-	0x90b4: 0x002f9894, 0x90b5: 0x002fac94, 0x90b6: 0x002fd894, 0x90b7: 0x0030e294,
-	0x90b8: 0x00310094, 0x90b9: 0x40064020, 0x90ba: 0x40064420, 0x90bb: 0x402d9620,
-	0x90bc: 0x4031de20, 0x90bd: 0x402d9820, 0x90be: 0x4031e220, 0x90bf: 0x4031f020,
-	// Block 0x243, offset 0x90c0
-	0x90c0: 0xe0000d24, 0x90c1: 0xe0000d21, 0x90c2: 0xe0000d2a, 0x90c3: 0xe0000d27,
-	0x90c4: 0xe0000d69, 0x90c5: 0xe0000d66, 0x90c6: 0xe0000d7b, 0x90c7: 0xe0000d78,
-	0x90c8: 0xe0000d87, 0x90c9: 0xe0000d84, 0x90ca: 0xe0000d81, 0x90cb: 0xe0000d7e,
-	0x90cc: 0xe0000ded, 0x90cd: 0xe0000de9, 0x90ce: 0xe00032e9, 0x90cf: 0xe00032e6,
-	0x90d0: 0xe0000e3d, 0x90d1: 0xe0000e39, 0x90d2: 0xe0000e35, 0x90d3: 0xe0000e31,
-	0x90d4: 0xe0000ea7, 0x90d5: 0xe0000ea4, 0x90d6: 0xe0000ead, 0x90d7: 0xe0000eaa,
-	0x90d8: 0xe0000ed6, 0x90d9: 0xe0000ed3, 0x90da: 0xe0000ef4, 0x90db: 0xe0000ef1,
-	0x90dc: 0xe0000efb, 0x90dd: 0xe0000ef7, 0x90de: 0xe0000f02, 0x90df: 0xe0000eff,
-	0x90e0: 0xe0000f41, 0x90e1: 0xe0000f3e, 0x90e2: 0xe0000f53, 0x90e3: 0xe0000f50,
-	0x90e4: 0xe0000f26, 0x90e5: 0xe0000f22, 0x90e6: 0xe0000f3a, 0x90e7: 0xe0000f36,
-	0x90e8: 0xe0000f5a, 0x90e9: 0xe0000f56, 0x90ea: 0xe0000f93, 0x90eb: 0xe0000f90,
-	0x90ec: 0xe0000f9f, 0x90ed: 0xe0000f9c, 0x90ee: 0xe0000fb1, 0x90ef: 0xe0000fae,
-	0x90f0: 0xe0000fab, 0x90f1: 0xe0000fa8, 0x90f2: 0xe0001093, 0x90f3: 0xe0001090,
-	0x90f4: 0xe000109f, 0x90f5: 0xe000109c, 0x90f6: 0xe0001099, 0x90f7: 0xe0001096,
-	0x90f8: 0xe0001032, 0x90f9: 0xe000102e, 0x90fa: 0xe00025e4, 0x90fb: 0xe00025e1,
-	0x90fc: 0xe00010a9, 0x90fd: 0xe00010a6, 0x90fe: 0xe00010af, 0x90ff: 0xe00010ac,
-	// Block 0x244, offset 0x9100
-	0x9100: 0xe00009bc, 0x9101: 0xe00009c0, 0x9102: 0x002c3a8b, 0x9103: 0xf0000a04,
-	0x9104: 0x40081c20, 0x9105: 0xe0000a5e, 0x9106: 0xe0000a62, 0x9107: 0x002cc28a,
-	0x9108: 0x40081e20, 0x9109: 0xf0000a04, 0x910a: 0x002d2285, 0x910b: 0x002d688b,
-	0x910c: 0x002d688b, 0x910d: 0x002d688b, 0x910e: 0x002d6885, 0x910f: 0xf0000202,
-	0x9110: 0x002d9a8b, 0x9111: 0x002d9a8b, 0x9112: 0x002e228b, 0x9113: 0x002e2285,
-	0x9114: 0x40082020, 0x9115: 0x002e9e8b, 0x9116: 0xf000040a, 0x9117: 0x40082220,
-	0x9118: 0x40082420, 0x9119: 0x002f2c8b, 0x911a: 0x002f568b, 0x911b: 0x002f7a8b,
-	0x911c: 0x002f7a8b, 0x911d: 0x002f7a8b, 0x911e: 0x40082620, 0x911f: 0x40082820,
-	0x9120: 0xf0001414, 0x9121: 0xe0000fbd, 0x9122: 0xf0001414, 0x9123: 0x40082a20,
-	0x9124: 0x00312a8b, 0x9125: 0x40082c20, 0x9126: 0x0032a288, 0x9127: 0x40082e20,
-	0x9128: 0x00312a8b, 0x9129: 0x40083020, 0x912a: 0x002dfe88, 0x912b: 0x00320c83,
-	0x912c: 0x002c0a8b, 0x912d: 0x002c3a8b, 0x912e: 0x40083220, 0x912f: 0x002c9885,
-	0x9130: 0x002c988b, 0x9131: 0x002d088b, 0x9132: 0x002d1e88, 0x9133: 0x002e828b,
-	0x9134: 0x002ee285, 0x9135: 0x00389084, 0x9136: 0x00389284, 0x9137: 0x00389484,
-	0x9138: 0x00389684, 0x9139: 0x002d9a85, 0x913a: 0x40083420, 0x913b: 0xe0000b95,
-	0x913c: 0x00327e85, 0x913d: 0x00325685, 0x913e: 0x0032568b, 0x913f: 0x00327e8b,
-	// Block 0x245, offset 0x9140
-	0x9140: 0xa0000000, 0x9141: 0xa0000000, 0x9142: 0xa0000000, 0x9143: 0xa0000000,
-	0x9144: 0xa0000000, 0x9145: 0xa0000000, 0x9146: 0xa0000000, 0x9147: 0xa0000000,
-	0x9148: 0xa0000000, 0x9149: 0x40020020, 0x914a: 0x40020220, 0x914b: 0x40020420,
-	0x914c: 0x40020620, 0x914d: 0x40020820, 0x914e: 0xa0000000, 0x914f: 0xa0000000,
-	0x9150: 0xa0000000, 0x9151: 0xa0000000, 0x9152: 0xa0000000, 0x9153: 0xa0000000,
-	0x9154: 0xa0000000, 0x9155: 0xa0000000, 0x9156: 0xa0000000, 0x9157: 0xa0000000,
-	0x9158: 0xa0000000, 0x9159: 0xa0000000, 0x915a: 0xa0000000, 0x915b: 0xa0000000,
-	0x915c: 0xa0000000, 0x915d: 0xa0000000, 0x915e: 0xa0000000, 0x915f: 0xa0000000,
-	0x9160: 0x40021220, 0x9161: 0x4002ba20, 0x9162: 0x4003e020, 0x9163: 0x4004ea20,
-	0x9164: 0x4027de20, 0x9165: 0x4004ec20, 0x9166: 0x4004e620, 0x9167: 0x4003d220,
-	0x9168: 0x4003f420, 0x9169: 0x4003f620, 0x916a: 0x4004d820, 0x916b: 0x40093820,
-	0x916c: 0x40024020, 0x916d: 0x40021a20, 0x916e: 0x4002e420, 0x916f: 0x4004e220,
-	0x9170: 0x4029cc20, 0x9171: 0x4029ce20, 0x9172: 0x4029d020, 0x9173: 0x4029d220,
-	0x9174: 0x4029d420, 0x9175: 0x4029d620, 0x9176: 0x4029d820, 0x9177: 0x4029da20,
-	0x9178: 0x4029dc20, 0x9179: 0x4029de20, 0x917a: 0x40026c20, 0x917b: 0x40026220,
-	0x917c: 0x40094020, 0x917d: 0x40094220, 0x917e: 0x40094420, 0x917f: 0x4002c420,
-	// Block 0x246, offset 0x9180
-	0x9180: 0x4004d620, 0x9181: 0x002bde88, 0x9182: 0x002c0a88, 0x9183: 0x002c3a88,
-	0x9184: 0x002c6288, 0x9185: 0x002c9888, 0x9186: 0x002d0888, 0x9187: 0x002d2288,
-	0x9188: 0x002d6888, 0x9189: 0x002d9a88, 0x918a: 0x002dcc88, 0x918b: 0x002dfe88,
-	0x918c: 0xc0030002, 0x918d: 0x002e8288, 0x918e: 0xc5712813, 0x918f: 0x002ee288,
-	0x9190: 0x002f2c88, 0x9191: 0x002f5688, 0x9192: 0x002f7a88, 0x9193: 0x002fe688,
-	0x9194: 0x00302c88, 0x9195: 0x00306c88, 0x9196: 0x0030be88, 0x9197: 0x0030e288,
-	0x9198: 0x0030f688, 0x9199: 0x00310088, 0x919a: 0x00312a88, 0x919b: 0x4003f820,
-	0x919c: 0x4004e420, 0x919d: 0x4003fa20, 0x919e: 0x40062420, 0x919f: 0x40021620,
-	0x91a0: 0x40061e20, 0x91a1: 0x402bde20, 0x91a2: 0x402c0a20, 0x91a3: 0x402c3a20,
-	0x91a4: 0x402c6220, 0x91a5: 0x402c9820, 0x91a6: 0x402d0820, 0x91a7: 0x402d2220,
-	0x91a8: 0x402d6820, 0x91a9: 0x402d9a20, 0x91aa: 0x402dcc20, 0x91ab: 0x402dfe20,
-	0x91ac: 0xc0000002, 0x91ad: 0x402e8220, 0x91ae: 0xc56e27e2, 0x91af: 0x402ee220,
-	0x91b0: 0x402f2c20, 0x91b1: 0x402f5620, 0x91b2: 0x402f7a20, 0x91b3: 0x402fe620,
-	0x91b4: 0x40302c20, 0x91b5: 0x40306c20, 0x91b6: 0x4030be20, 0x91b7: 0x4030e220,
-	0x91b8: 0x4030f620, 0x91b9: 0x40310020, 0x91ba: 0x40312a20, 0x91bb: 0x4003fc20,
-	0x91bc: 0x40094820, 0x91bd: 0x4003fe20, 0x91be: 0x40094c20, 0x91bf: 0xa0000000,
-	// Block 0x247, offset 0x91c0
-	0x91c1: 0x40417021, 0x91c2: 0x40417020, 0x91c3: 0x40417220,
-	0x91c5: 0x40417020, 0x91c6: 0x40417220, 0x91c7: 0x40417420,
-	0x91c8: 0x40417620, 0x91c9: 0x40417820, 0x91ca: 0x40417a20, 0x91cb: 0x40417c20,
-	0x91cc: 0x40418020, 0x91cd: 0x40418420, 0x91cf: 0x40418620,
-	0x91d0: 0x40418820, 0x91d1: 0x40418a20, 0x91d3: 0x40418c20,
-	0x91d4: 0x40418e20, 0x91d5: 0x40419020, 0x91d6: 0x40419220, 0x91d7: 0x40419420,
-	0x91d8: 0x40419620, 0x91d9: 0x40419820, 0x91da: 0x40419a20, 0x91db: 0x40419c20,
-	0x91dc: 0x40419e20, 0x91dd: 0x4041a020, 0x91de: 0x4041a220, 0x91df: 0x4041a420,
-	0x91e0: 0x4041a620, 0x91e1: 0x4041a820, 0x91e2: 0x4041aa20, 0x91e3: 0x4041ac20,
-	0x91e4: 0x4041ae20, 0x91e5: 0x4041b020, 0x91e6: 0x4041b220, 0x91e7: 0x4041b420,
-	0x91e8: 0x4041b620, 0x91ea: 0x4041b820, 0x91eb: 0x4041ba20,
-	0x91ec: 0x4041bc20, 0x91ed: 0x4041be20, 0x91ee: 0x4041c020, 0x91ef: 0x4041c220,
-	0x91f0: 0x4041c420, 0x91f2: 0x4041c620, 0x91f3: 0x4041d220,
-	0x91f5: 0x4041c820, 0x91f6: 0x4041ca20, 0x91f7: 0x4041cc20,
-	0x91f8: 0x4041ce20, 0x91f9: 0x4041d020,
-	0x91fc: 0xa070f102, 0x91fd: 0x4041d420, 0x91fe: 0x4041d620, 0x91ff: 0x4041d820,
-	// Block 0x248, offset 0x9200
-	0x9200: 0xa0000000, 0x9201: 0xa0000000, 0x9202: 0xa0000000, 0x9203: 0xa0000000,
-	0x9204: 0xa0000000, 0x9205: 0xa0000000, 0x9206: 0xa0000000, 0x9207: 0xa0000000,
-	0x9208: 0xa0000000, 0x9209: 0x40020020, 0x920a: 0x40020220, 0x920b: 0x40020420,
-	0x920c: 0x40020620, 0x920d: 0x40020820, 0x920e: 0xa0000000, 0x920f: 0xa0000000,
-	0x9210: 0xa0000000, 0x9211: 0xa0000000, 0x9212: 0xa0000000, 0x9213: 0xa0000000,
-	0x9214: 0xa0000000, 0x9215: 0xa0000000, 0x9216: 0xa0000000, 0x9217: 0xa0000000,
-	0x9218: 0xa0000000, 0x9219: 0xa0000000, 0x921a: 0xa0000000, 0x921b: 0xa0000000,
-	0x921c: 0xa0000000, 0x921d: 0xa0000000, 0x921e: 0xa0000000, 0x921f: 0xa0000000,
-	0x9220: 0x40021220, 0x9221: 0x4002ba20, 0x9222: 0x4003e020, 0x9223: 0x4004ea20,
-	0x9224: 0x4027de20, 0x9225: 0x4004ec20, 0x9226: 0x4004e620, 0x9227: 0xc57b26f2,
-	0x9228: 0x4003f420, 0x9229: 0x4003f620, 0x922a: 0x4004d820, 0x922b: 0x40093820,
-	0x922c: 0x40024020, 0x922d: 0x40021a20, 0x922e: 0x4002e420, 0x922f: 0x4004e220,
-	0x9230: 0x4029cc20, 0x9231: 0x4029ce20, 0x9232: 0x4029d020, 0x9233: 0x4029d220,
-	0x9234: 0x4029d420, 0x9235: 0x4029d620, 0x9236: 0x4029d820, 0x9237: 0x4029da20,
-	0x9238: 0x4029dc20, 0x9239: 0x4029de20, 0x923a: 0x40026c20, 0x923b: 0x40026220,
-	0x923c: 0x40094020, 0x923d: 0x40094220, 0x923e: 0x40094420, 0x923f: 0x4002c420,
-	// Block 0x249, offset 0x9240
-	0x9240: 0x4004d620, 0x9241: 0x002bde88, 0x9242: 0x002c0a88, 0x9243: 0x002c3a88,
-	0x9244: 0x002c6288, 0x9245: 0x002c9888, 0x9246: 0x002d0888, 0x9247: 0x002d2288,
-	0x9248: 0x002d6888, 0x9249: 0x002d9a88, 0x924a: 0x002dcc88, 0x924b: 0x002dfe88,
-	0x924c: 0xc0030002, 0x924d: 0x002e8288, 0x924e: 0x002e9e88, 0x924f: 0x002ee288,
-	0x9250: 0x002f2c88, 0x9251: 0x002f5688, 0x9252: 0x002f7a88, 0x9253: 0xc57509c2,
-	0x9254: 0xc38a2722, 0x9255: 0x00306c88, 0x9256: 0x0030be88, 0x9257: 0x0030e288,
-	0x9258: 0x0030f688, 0x9259: 0x00310088, 0x925a: 0x00312a88, 0x925b: 0x4003f820,
-	0x925c: 0x4004e420, 0x925d: 0x4003fa20, 0x925e: 0x40062420, 0x925f: 0x40021620,
-	0x9260: 0x40061e20, 0x9261: 0x402bde20, 0x9262: 0x402c0a20, 0x9263: 0x402c3a20,
-	0x9264: 0x402c6220, 0x9265: 0x402c9820, 0x9266: 0x402d0820, 0x9267: 0x402d2220,
-	0x9268: 0x402d6820, 0x9269: 0x402d9a20, 0x926a: 0x402dcc20, 0x926b: 0x402dfe20,
-	0x926c: 0xc0000002, 0x926d: 0x402e8220, 0x926e: 0x402e9e20, 0x926f: 0x402ee220,
-	0x9270: 0x402f2c20, 0x9271: 0x402f5620, 0x9272: 0x402f7a20, 0x9273: 0xc34109b1,
-	0x9274: 0xc3882711, 0x9275: 0x40306c20, 0x9276: 0x4030be20, 0x9277: 0x4030e220,
-	0x9278: 0x4030f620, 0x9279: 0x40310020, 0x927a: 0x40312a20, 0x927b: 0x4003fc20,
-	0x927c: 0x40094820, 0x927d: 0x4003fe20, 0x927e: 0x40094c20, 0x927f: 0xa0000000,
-	// Block 0x24a, offset 0x9280
-	0x9280: 0x402c1a20, 0x9281: 0x002c0c83, 0x9282: 0x002c3288, 0x9283: 0x402c3220,
-	0x9284: 0x0031c488, 0x9285: 0x4031c420, 0x9286: 0x002efa88, 0x9287: 0x002c4e88,
-	0x9288: 0x402c4e20, 0x9289: 0x002c7288, 0x928a: 0x002c6483, 0x928b: 0x002c8488,
-	0x928c: 0x402c8420, 0x928d: 0xe000115c, 0x928e: 0x002cae88, 0x928f: 0x002cb888,
-	0x9290: 0x002cc288, 0x9291: 0x002d1688, 0x9292: 0x402d1620, 0x9293: 0x002d4488,
-	0x9294: 0x002d5888, 0x9295: 0x402d7820, 0x9296: 0x002dc288, 0x9297: 0x002db688,
-	0x9298: 0x002e0083, 0x9299: 0x402e0020, 0x929a: 0x402e3820, 0x929b: 0x402e7220,
-	0x929c: 0x0030a088, 0x929d: 0x002eb488, 0x929e: 0x402ebc20, 0x929f: 0x002f1088,
-	0x92a0: 0xe0000e56, 0x92a1: 0xe0000e53, 0x92a2: 0x002d6088, 0x92a3: 0x402d6020,
-	0x92a4: 0x002f3e88, 0x92a5: 0x402f3e20, 0x92a6: 0x002f8288, 0x92a7: 0x0031b488,
-	0x92a8: 0x4031b420, 0x92a9: 0x00300888, 0x92aa: 0x40301220, 0x92ab: 0x40304220,
-	0x92ac: 0x00304a88, 0x92ad: 0x40304a20, 0x92ae: 0x00305288, 0x92af: 0xe000105f,
-	0x92b0: 0xe000105c, 0x92b1: 0x0030b488, 0x92b2: 0x0030cc88, 0x92b3: 0x00310285,
-	0x92b4: 0x40310220, 0x92b5: 0x00313488, 0x92b6: 0x40313420, 0x92b7: 0x00316488,
-	0x92b8: 0x00316e88, 0x92b9: 0x40316e20, 0x92ba: 0x40317820, 0x92bb: 0x4031a620,
-	0x92bc: 0x0031bc88, 0x92bd: 0x4031bc20, 0x92be: 0xe0000fc9, 0x92bf: 0x40319420,
-	// Block 0x24b, offset 0x92c0
-	0x92c0: 0x40315820, 0x92c1: 0x0031d488, 0x92c2: 0x4031d420, 0x92c3: 0x002c1a88,
-	0x92c4: 0x00307c88, 0x92c5: 0x0030da88, 0x92c6: 0x002ca288, 0x92c7: 0x402ca220,
-	0x92c8: 0x002dde88, 0x92c9: 0x402dde20, 0x92ca: 0x002f6a88, 0x92cb: 0x402f6a20,
-	0x92cc: 0x002f8e88, 0x92cd: 0x402f8e20, 0x92ce: 0x00311088, 0x92cf: 0x40311020,
-	0x92d0: 0x402bf020, 0x92d1: 0x402bf820, 0x92d2: 0x402c0220, 0x92d3: 0x402c0c20,
-	0x92d4: 0x402efa20, 0x92d5: 0x402c5620, 0x92d6: 0x402c7220, 0x92d7: 0x402c6420,
-	0x92d8: 0x402ccc20, 0x92d9: 0x402cb820, 0x92da: 0x402cd420, 0x92db: 0x402cc220,
-	0x92dc: 0x402cdc20, 0x92dd: 0x402ce820, 0x92de: 0x402cf020, 0x92df: 0x402dee20,
-	0x92e0: 0x402d4420, 0x92e1: 0x402d2a20, 0x92e2: 0x402d3220, 0x92e3: 0x402d5820,
-	0x92e4: 0x402d0020, 0x92e5: 0x40308820, 0x92e6: 0x402d8020, 0x92e7: 0x402d8e20,
-	0x92e8: 0x402db620, 0x92e9: 0x402dc220, 0x92ea: 0x402daa20, 0x92eb: 0x402e4220,
-	0x92ec: 0x402e4a20, 0x92ed: 0x402e5420, 0x92ee: 0x402e6820, 0x92ef: 0x4030a020,
-	0x92f0: 0x4030ac20, 0x92f1: 0x402e9020, 0x92f2: 0x402eb420, 0x92f3: 0x402ec820,
-	0x92f4: 0x402ea620, 0x92f5: 0x402f1020, 0x92f6: 0x402eee20, 0x92f7: 0x402f1a20,
-	0x92f8: 0x402f4c20, 0x92f9: 0x402f9820, 0x92fa: 0x402fa220, 0x92fb: 0x402fac20,
-	0x92fc: 0x402fb620, 0x92fd: 0x402fbe20, 0x92fe: 0x402fc620, 0x92ff: 0x402fd020,
-	// Block 0x24c, offset 0x9300
-	0x9300: 0x402f8220, 0x9301: 0x402fd820, 0x9302: 0x402ff420, 0x9303: 0x40300820,
-	0x9304: 0x402df620, 0x9305: 0x40301a20, 0x9306: 0x40302420, 0x9307: 0x40306420,
-	0x9308: 0x40305220, 0x9309: 0x40307c20, 0x930a: 0x4030b420, 0x930b: 0x4030cc20,
-	0x930c: 0x4030da20, 0x930d: 0x4030ee20, 0x930e: 0x402e7a20, 0x930f: 0x40310820,
-	0x9310: 0x40314820, 0x9311: 0x40315020, 0x9312: 0x40316420, 0x9313: 0x40318020,
-	0x9314: 0x4031cc20, 0x9315: 0x4031e820, 0x9316: 0x40320a20, 0x9317: 0x40323220,
-	0x9318: 0x40323a20, 0x9319: 0x402c1220, 0x931a: 0x402cf820, 0x931b: 0x402d4c20,
-	0x931c: 0x402d7020, 0x931d: 0x402de620, 0x931e: 0x402e1a20, 0x931f: 0x402e2a20,
-	0x9320: 0x402f6220, 0x9321: 0x4031fa20, 0x9322: 0x40320220, 0x9323: 0xe0000aca,
-	0x9324: 0xe0000adc, 0x9325: 0xe0000ad9, 0x9326: 0xe0000fcc, 0x9327: 0xe0000fcf,
-	0x9328: 0xe0000fba, 0x9329: 0xe0000ba1, 0x932a: 0xe0000d11, 0x932b: 0xe0000d18,
-	0x932c: 0x40324220, 0x932d: 0x40324a20, 0x932e: 0x40309020, 0x932f: 0x40309820,
-	0x9330: 0x002d6894, 0x9331: 0x002d8094, 0x9332: 0x002dcc94, 0x9333: 0x002f7a94,
-	0x9334: 0x002f9894, 0x9335: 0x002fac94, 0x9336: 0x002fd894, 0x9337: 0x0030e294,
-	0x9338: 0x00310094, 0x9339: 0x40064020, 0x933a: 0x40064420, 0x933b: 0x402d9620,
-	0x933c: 0xc57826f2, 0x933d: 0x402d9820, 0x933e: 0x4031e220, 0x933f: 0x4031f020,
-	// Block 0x24d, offset 0x9340
-	0x9340: 0xa0000000, 0x9341: 0xa0000000, 0x9342: 0xa0000000, 0x9343: 0xa0000000,
-	0x9344: 0xa0000000, 0x9345: 0xa0000000, 0x9346: 0xa0000000, 0x9347: 0xa0000000,
-	0x9348: 0xa0000000, 0x9349: 0x40020020, 0x934a: 0x40020220, 0x934b: 0x40020420,
-	0x934c: 0x40020620, 0x934d: 0x40020820, 0x934e: 0xa0000000, 0x934f: 0xa0000000,
-	0x9350: 0xa0000000, 0x9351: 0xa0000000, 0x9352: 0xa0000000, 0x9353: 0xa0000000,
-	0x9354: 0xa0000000, 0x9355: 0xa0000000, 0x9356: 0xa0000000, 0x9357: 0xa0000000,
-	0x9358: 0xa0000000, 0x9359: 0xa0000000, 0x935a: 0xa0000000, 0x935b: 0xa0000000,
-	0x935c: 0xa0000000, 0x935d: 0xa0000000, 0x935e: 0xa0000000, 0x935f: 0xa0000000,
-	0x9360: 0x40021220, 0x9361: 0x4002ba20, 0x9362: 0x4003e020, 0x9363: 0x4004ea20,
-	0x9364: 0x4027de20, 0x9365: 0x4004ec20, 0x9366: 0x4004e620, 0x9367: 0x4003d220,
-	0x9368: 0x4003f420, 0x9369: 0x4003f620, 0x936a: 0x4004d820, 0x936b: 0x40093820,
-	0x936c: 0x40024020, 0x936d: 0x40021a20, 0x936e: 0x4002e420, 0x936f: 0x4004e220,
-	0x9370: 0x4029cc20, 0x9371: 0x4029ce20, 0x9372: 0x4029d020, 0x9373: 0x4029d220,
-	0x9374: 0x4029d420, 0x9375: 0x4029d620, 0x9376: 0x4029d820, 0x9377: 0x4029da20,
-	0x9378: 0x4029dc20, 0x9379: 0x4029de20, 0x937a: 0x40026c20, 0x937b: 0x40026220,
-	0x937c: 0x40094020, 0x937d: 0x40094220, 0x937e: 0x40094420, 0x937f: 0x4002c420,
-	// Block 0x24e, offset 0x9380
-	0x9380: 0x4004d620, 0x9381: 0x002bde83, 0x9382: 0x002c0a88, 0x9383: 0x002c3a88,
-	0x9384: 0x002c6288, 0x9385: 0x002be083, 0x9386: 0x002d0888, 0x9387: 0x002d2288,
-	0x9388: 0x002be883, 0x9389: 0x002be283, 0x938a: 0x002dcc88, 0x938b: 0x002bea83,
-	0x938c: 0xc5810002, 0x938d: 0x002bee83, 0x938e: 0x002bf083, 0x938f: 0x002be483,
-	0x9390: 0x002bf283, 0x9391: 0x002f5688, 0x9392: 0x002f7a88, 0x9393: 0x002fe688,
-	0x9394: 0x00302c88, 0x9395: 0x002be683, 0x9396: 0x0030be88, 0x9397: 0x002bf483,
-	0x9398: 0x0030f688, 0x9399: 0x00310088, 0x939a: 0x00312a88, 0x939b: 0x4003f820,
-	0x939c: 0x4004e420, 0x939d: 0x4003fa20, 0x939e: 0x40062420, 0x939f: 0x40021620,
-	0x93a0: 0x40061e20, 0x93a1: 0x402bde20, 0x93a2: 0x402c0a20, 0x93a3: 0x402c3a20,
-	0x93a4: 0x402c6220, 0x93a5: 0x402be020, 0x93a6: 0x402d0820, 0x93a7: 0x402d2220,
-	0x93a8: 0x402be820, 0x93a9: 0x402be220, 0x93aa: 0x402dcc20, 0x93ab: 0x402bea20,
-	0x93ac: 0xc57e0002, 0x93ad: 0x402bee20, 0x93ae: 0x402bf020, 0x93af: 0x402be420,
-	0x93b0: 0x402bf220, 0x93b1: 0x402f5620, 0x93b2: 0x402f7a20, 0x93b3: 0x402fe620,
-	0x93b4: 0x40302c20, 0x93b5: 0x402be620, 0x93b6: 0x4030be20, 0x93b7: 0x402bf420,
-	0x93b8: 0x4030f620, 0x93b9: 0x40310020, 0x93ba: 0x40312a20, 0x93bb: 0x4003fc20,
-	0x93bc: 0x40094820, 0x93bd: 0x4003fe20, 0x93be: 0x40094c20, 0x93bf: 0xa0000000,
-	// Block 0x24f, offset 0x93c0
-	0x93c0: 0xe00032fb, 0x93c1: 0xe00032f8, 0x93c2: 0xe0003311, 0x93c3: 0xe0003335,
-	0x93c4: 0xe000332e, 0x93c5: 0xe0003327, 0x93c6: 0xe00009dd, 0x93c7: 0xe0000a53,
-	0x93c8: 0xe0003365, 0x93c9: 0xe000335f, 0x93ca: 0xe0003371, 0x93cb: 0xe000339d,
-	0x93cc: 0xe000340b, 0x93cd: 0xe0003405, 0x93ce: 0xe0003417, 0x93cf: 0xe0003423,
-	0x93d0: 0xe0000ab3, 0x93d1: 0xe00036b9, 0x93d2: 0xe000346a, 0x93d3: 0xe0003464,
-	0x93d4: 0xe0003476, 0x93d5: 0xe00034b6, 0x93d6: 0xe00034a2, 0x93d7: 0x40093e20,
-	0x93d8: 0xe0000e12, 0x93d9: 0xe000355a, 0x93da: 0xe0003554, 0x93db: 0xe0003566,
-	0x93dc: 0xe0003578, 0x93dd: 0xe0001102, 0x93de: 0x00318888, 0x93df: 0xe0000f7b,
-	0x93e0: 0xe00008f2, 0x93e1: 0xe00008ec, 0x93e2: 0xe000091e, 0x93e3: 0xe0000966,
-	0x93e4: 0xe0000958, 0x93e5: 0xe000094a, 0x93e6: 0xe00009d5, 0x93e7: 0xe0000a4d,
-	0x93e8: 0xe0003362, 0x93e9: 0xe000335c, 0x93ea: 0xe000336e, 0x93eb: 0xe000339a,
-	0x93ec: 0xe0003408, 0x93ed: 0xe0003402, 0x93ee: 0xe0003414, 0x93ef: 0xe0003420,
-	0x93f0: 0xe0000aad, 0x93f1: 0xe00036b6, 0x93f2: 0xe0003467, 0x93f3: 0xe0003461,
-	0x93f4: 0xe0003473, 0x93f5: 0xe00034b3, 0x93f6: 0xe000349f, 0x93f7: 0x40093c20,
-	0x93f8: 0xe0000e0f, 0x93f9: 0xe0003557, 0x93fa: 0xe0003551, 0x93fb: 0xe0003563,
-	0x93fc: 0xe0003575, 0x93fd: 0xe00010ff, 0x93fe: 0x40318820, 0x93ff: 0xe0001114,
-	// Block 0x250, offset 0x9400
-	0x9400: 0xe0003342, 0x9401: 0xe0000980, 0x9402: 0xe00032fe, 0x9403: 0xe00008f8,
-	0x9404: 0xe000333f, 0x9405: 0xe000097a, 0x9406: 0xe0000a38, 0x9407: 0xe0000a35,
-	0x9408: 0xe0000a3e, 0x9409: 0xe0000a3b, 0x940a: 0xe0000a4a, 0x940b: 0xe0000a47,
-	0x940c: 0xe0000a44, 0x940d: 0xe0000a41, 0x940e: 0xe0000a86, 0x940f: 0xe0000a83,
-	0x9410: 0xe0000aaa, 0x9411: 0xe0000aa7, 0x9412: 0xe00033c3, 0x9413: 0xe00033c0,
-	0x9414: 0xe000336b, 0x9415: 0xe0003368, 0x9416: 0xe00033a9, 0x9417: 0xe00033a6,
-	0x9418: 0xe00033bd, 0x9419: 0xe00033ba, 0x941a: 0xe0003397, 0x941b: 0xe0003394,
-	0x941c: 0xe0000bb8, 0x941d: 0xe0000bb5, 0x941e: 0xe0000bb2, 0x941f: 0xe0000baf,
-	0x9420: 0xe0000bc4, 0x9421: 0xe0000bc1, 0x9422: 0xe0000bca, 0x9423: 0xe0000bc7,
-	0x9424: 0xe000361e, 0x9425: 0xe000361b, 0x9426: 0xe0000c1b, 0x9427: 0xe0000c18,
-	0x9428: 0xe0003431, 0x9429: 0xe000342e, 0x942a: 0xe0003440, 0x942b: 0xe000343d,
-	0x942c: 0xe0003411, 0x942d: 0xe000340e, 0x942e: 0xe000343a, 0x942f: 0xe0003437,
-	0x9430: 0xe0003434, 0x9431: 0x402da220, 0x9432: 0xe0002575, 0x9433: 0xe0003010,
-	0x9434: 0xe0000c8a, 0x9435: 0xe0000c87, 0x9436: 0xe0003657, 0x9437: 0xe0003654,
-	0x9438: 0x402f7220, 0x9439: 0xe0003669, 0x943a: 0xe0003666, 0x943b: 0xe0003675,
-	0x943c: 0xe0003672, 0x943d: 0xe000366f, 0x943e: 0xe000366c, 0x943f: 0xe0000d04,
-	// Block 0x251, offset 0x9440
-	0x9440: 0xe0000cfe, 0x9441: 0xe0000cf8, 0x9442: 0xe0000cf5, 0x9443: 0xe00036a7,
-	0x9444: 0xe00036a4, 0x9445: 0xe00036c5, 0x9446: 0xe00036c2, 0x9447: 0xe00036b3,
-	0x9448: 0xe00036b0, 0x9449: 0xe00030dd, 0x944a: 0x002eda88, 0x944b: 0x402eda20,
-	0x944c: 0xe00034f0, 0x944d: 0xe00034ed, 0x944e: 0xe0003470, 0x944f: 0xe000346d,
-	0x9450: 0xe00034b0, 0x9451: 0xe00034ad, 0x9452: 0xe0000e93, 0x9453: 0xe0000e8f,
-	0x9454: 0xe0000eca, 0x9455: 0xe0000ec7, 0x9456: 0xe0000edc, 0x9457: 0xe0000ed9,
-	0x9458: 0xe0000ed0, 0x9459: 0xe0000ecd, 0x945a: 0xe0000f1f, 0x945b: 0xe0000f1c,
-	0x945c: 0xe0000f2d, 0x945d: 0xe0000f2a, 0x945e: 0xe0000f47, 0x945f: 0xe0000f44,
-	0x9460: 0xe0000f33, 0x9461: 0xe0000f30, 0x9462: 0xe0000f99, 0x9463: 0xe0000f96,
-	0x9464: 0xe0000f8a, 0x9465: 0xe0000f87, 0x9466: 0x00303688, 0x9467: 0x40303620,
-	0x9468: 0xe00035a4, 0x9469: 0xe00035a1, 0x946a: 0xe00035b8, 0x946b: 0xe00035b5,
-	0x946c: 0xe0003560, 0x946d: 0xe000355d, 0x946e: 0xe0003572, 0x946f: 0xe000356f,
-	0x9470: 0xe000359e, 0x9471: 0xe000359b, 0x9472: 0xe00035b2, 0x9473: 0xe00035af,
-	0x9474: 0xe00036ef, 0x9475: 0xe00036ec, 0x9476: 0xe000110e, 0x9477: 0xe000110b,
-	0x9478: 0xe0001117, 0x9479: 0xe000113b, 0x947a: 0xe0001138, 0x947b: 0xe000114d,
-	0x947c: 0xe000114a, 0x947d: 0xe0001147, 0x947e: 0xe0001144, 0x947f: 0xe0000f64,
-	// Block 0x252, offset 0x9480
-	0x9480: 0x402c1a20, 0x9481: 0x002c2a88, 0x9482: 0x002c3288, 0x9483: 0x402c3220,
-	0x9484: 0x0031c488, 0x9485: 0x4031c420, 0x9486: 0x002efa88, 0x9487: 0x002c4e88,
-	0x9488: 0x402c4e20, 0x9489: 0x002c7288, 0x948a: 0x002c7a88, 0x948b: 0x002c8488,
-	0x948c: 0x402c8420, 0x948d: 0xe000115c, 0x948e: 0x002cae88, 0x948f: 0x002cb888,
-	0x9490: 0x002cc288, 0x9491: 0x002d1688, 0x9492: 0x402d1620, 0x9493: 0x002d4488,
-	0x9494: 0x002d5888, 0x9495: 0x402d7820, 0x9496: 0x002dc288, 0x9497: 0x002db688,
-	0x9498: 0x002e0a88, 0x9499: 0x402e0a20, 0x949a: 0x402e3820, 0x949b: 0x402e7220,
-	0x949c: 0x0030a088, 0x949d: 0x002eb488, 0x949e: 0x402ebc20, 0x949f: 0x002f1088,
-	0x94a0: 0xe0003518, 0x94a1: 0xe0003515, 0x94a2: 0x002d6088, 0x94a3: 0x402d6020,
-	0x94a4: 0x002f3e88, 0x94a5: 0x402f3e20, 0x94a6: 0x002f8288, 0x94a7: 0x0031b488,
-	0x94a8: 0x4031b420, 0x94a9: 0x00300888, 0x94aa: 0x40301220, 0x94ab: 0x40304220,
-	0x94ac: 0x00304a88, 0x94ad: 0x40304a20, 0x94ae: 0x00305288, 0x94af: 0xe00035d8,
-	0x94b0: 0xe00035d5, 0x94b1: 0x0030b488, 0x94b2: 0x0030cc88, 0x94b3: 0x00311888,
-	0x94b4: 0x40311820, 0x94b5: 0x00313488, 0x94b6: 0x40313420, 0x94b7: 0x00316488,
-	0x94b8: 0x00316e88, 0x94b9: 0x40316e20, 0x94ba: 0x40317820, 0x94bb: 0x4031a620,
-	0x94bc: 0x0031bc88, 0x94bd: 0x4031bc20, 0x94be: 0xe0000fc9, 0x94bf: 0x40319420,
-	// Block 0x253, offset 0x94c0
-	0x94c0: 0x40321220, 0x94c1: 0x40321a20, 0x94c2: 0x40322220, 0x94c3: 0x40322a20,
-	0x94c4: 0xe0000ad5, 0x94c5: 0xe0000ad1, 0x94c6: 0xe0000acd, 0x94c7: 0xe0003040,
-	0x94c8: 0xe000303d, 0x94c9: 0xe000303a, 0x94ca: 0xe0003088, 0x94cb: 0xe0003085,
-	0x94cc: 0xe0003082, 0x94cd: 0xe0003324, 0x94ce: 0xe0000944, 0x94cf: 0xe000341d,
-	0x94d0: 0xe000341a, 0x94d1: 0xe000349c, 0x94d2: 0xe0003499, 0x94d3: 0xe000356c,
-	0x94d4: 0xe0003569, 0x94d5: 0xe0003597, 0x94d6: 0xe0003593, 0x94d7: 0xe000357f,
-	0x94d8: 0xe000357b, 0x94d9: 0xe000358f, 0x94da: 0xe000358b, 0x94db: 0xe0003587,
-	0x94dc: 0xe0003583, 0x94dd: 0x402cae20, 0x94de: 0xe0003331, 0x94df: 0xe000095e,
-	0x94e0: 0xe000333b, 0x94e1: 0xe0000972, 0x94e2: 0xe00009f4, 0x94e3: 0xe00009ef,
-	0x94e4: 0x002d3a88, 0x94e5: 0x402d3a20, 0x94e6: 0xe0000bbe, 0x94e7: 0xe0000bbb,
-	0x94e8: 0xe0003651, 0x94e9: 0xe000364e, 0x94ea: 0xe00034e2, 0x94eb: 0xe00034df,
-	0x94ec: 0xe00034e9, 0x94ed: 0xe00034e5, 0x94ee: 0xe0001162, 0x94ef: 0xe000115f,
-	0x94f0: 0xe0000c8d, 0x94f1: 0xf0000a0a, 0x94f2: 0xf000040a, 0x94f3: 0xf0000404,
-	0x94f4: 0xe0000bac, 0x94f5: 0xe0000ba9, 0x94f6: 0x002d7888, 0x94f7: 0x00319488,
-	0x94f8: 0xe00036ad, 0x94f9: 0xe00036aa, 0x94fa: 0xe000332a, 0x94fb: 0xe0000950,
-	0x94fc: 0xe00009ea, 0x94fd: 0xe00009e5, 0x94fe: 0xe0000e19, 0x94ff: 0xe0000e15,
-	// Block 0x254, offset 0x9500
-	0x9500: 0xe0003348, 0x9501: 0xe000098c, 0x9502: 0xe000334b, 0x9503: 0xe0000992,
-	0x9504: 0xe00033df, 0x9505: 0xe00033dc, 0x9506: 0xe00033e5, 0x9507: 0xe00033e2,
-	0x9508: 0xe000344c, 0x9509: 0xe0003449, 0x950a: 0xe0003452, 0x950b: 0xe000344f,
-	0x950c: 0xe000350c, 0x950d: 0xe0003509, 0x950e: 0xe0003512, 0x950f: 0xe000350f,
-	0x9510: 0xe0000ee8, 0x9511: 0xe0000ee5, 0x9512: 0xe0000eee, 0x9513: 0xe0000eeb,
-	0x9514: 0xe00035cc, 0x9515: 0xe00035c9, 0x9516: 0xe00035d2, 0x9517: 0xe00035cf,
-	0x9518: 0xe0000f61, 0x9519: 0xe0000f5e, 0x951a: 0xe0000fa5, 0x951b: 0xe0000fa2,
-	0x951c: 0x00312288, 0x951d: 0x40312220, 0x951e: 0xe0003624, 0x951f: 0xe0003621,
-	0x9520: 0x002ebc88, 0x9521: 0x402c8c20, 0x9522: 0x002f2288, 0x9523: 0x402f2220,
-	0x9524: 0x00314088, 0x9525: 0x40314020, 0x9526: 0xe0003338, 0x9527: 0xe000096c,
-	0x9528: 0xe00033af, 0x9529: 0xe00033ac, 0x952a: 0xe00034a9, 0x952b: 0xe00034a5,
-	0x952c: 0xe00034cd, 0x952d: 0xe00034c9, 0x952e: 0xe00034d4, 0x952f: 0xe00034d1,
-	0x9530: 0xe00034db, 0x9531: 0xe00034d7, 0x9532: 0xe0001129, 0x9533: 0xe0001126,
-	0x9534: 0x402e5e20, 0x9535: 0x402ed020, 0x9536: 0x40305a20, 0x9537: 0x402dd420,
-	0x9538: 0xe0000abf, 0x9539: 0xe0000ec4, 0x953a: 0x002be888, 0x953b: 0x002c4488,
-	0x953c: 0x402c4420, 0x953d: 0x002e3888, 0x953e: 0x00303e88, 0x953f: 0x402ffc20,
-	// Block 0x255, offset 0x9540
-	0x9540: 0x402f8220, 0x9541: 0x402fd820, 0x9542: 0x402ff420, 0x9543: 0x40300820,
-	0x9544: 0x402df620, 0x9545: 0x40301a20, 0x9546: 0x40302420, 0x9547: 0x40306420,
-	0x9548: 0x40305220, 0x9549: 0x40307c20, 0x954a: 0x4030b420, 0x954b: 0x4030cc20,
-	0x954c: 0x4030da20, 0x954d: 0x4030ee20, 0x954e: 0x402e7a20, 0x954f: 0x40310820,
-	0x9550: 0x40314820, 0x9551: 0x40315020, 0x9552: 0x40316420, 0x9553: 0x40318020,
-	0x9554: 0x4031cc20, 0x9555: 0x4031e820, 0x9556: 0x40320a20, 0x9557: 0x40323220,
-	0x9558: 0x40323a20, 0x9559: 0x402c1220, 0x955a: 0x402cf820, 0x955b: 0x402d4c20,
-	0x955c: 0x402d7020, 0x955d: 0x402de620, 0x955e: 0x402e1a20, 0x955f: 0x402e2a20,
-	0x9560: 0x402f6220, 0x9561: 0x4031fa20, 0x9562: 0x40320220, 0x9563: 0xe0000aca,
-	0x9564: 0xe0000adc, 0x9565: 0xe0000ad9, 0x9566: 0xe0000fcc, 0x9567: 0xe0000fcf,
-	0x9568: 0xe0000fba, 0x9569: 0xe0000ba1, 0x956a: 0xe0000d11, 0x956b: 0xe0000d18,
-	0x956c: 0x40324220, 0x956d: 0x40324a20, 0x956e: 0x40309020, 0x956f: 0x40309820,
-	0x9570: 0x002d6894, 0x9571: 0x002d8094, 0x9572: 0x002dcc94, 0x9573: 0x002f7a94,
-	0x9574: 0x002f9894, 0x9575: 0x002fac94, 0x9576: 0x002fd894, 0x9577: 0x0030e294,
-	0x9578: 0x00310094, 0x9579: 0x40064020, 0x957a: 0x40064420, 0x957b: 0x402bf620,
-	0x957c: 0x4031de20, 0x957d: 0x402d9820, 0x957e: 0x4031e220, 0x957f: 0x4031f020,
-	// Block 0x256, offset 0x9580
-	0x9580: 0xe0003359, 0x9581: 0xe00009ae, 0x9582: 0xe0000a22, 0x9583: 0xe0000a1f,
-	0x9584: 0xe0000a28, 0x9585: 0xe0000a25, 0x9586: 0xe0000a2e, 0x9587: 0xe0000a2b,
-	0x9588: 0xe0000a5a, 0x9589: 0xe0000a56, 0x958a: 0xe0000a8c, 0x958b: 0xe0000a89,
-	0x958c: 0xe0000a98, 0x958d: 0xe0000a95, 0x958e: 0xe0000aa4, 0x958f: 0xe0000aa1,
-	0x9590: 0xe0000a92, 0x9591: 0xe0000a8f, 0x9592: 0xe0000a9e, 0x9593: 0xe0000a9b,
-	0x9594: 0xe00033d2, 0x9595: 0xe00033ce, 0x9596: 0xe00033ca, 0x9597: 0xe00033c6,
-	0x9598: 0xe00033f9, 0x9599: 0xe00033f6, 0x959a: 0xe00033ff, 0x959b: 0xe00033fc,
-	0x959c: 0xe00033b6, 0x959d: 0xe00033b2, 0x959e: 0xe0000b8c, 0x959f: 0xe0000b89,
-	0x95a0: 0xe0000bd0, 0x95a1: 0xe0000bcd, 0x95a2: 0xe0003630, 0x95a3: 0xe000362d,
-	0x95a4: 0xe000363c, 0x95a5: 0xe0003639, 0x95a6: 0xe000362a, 0x95a7: 0xe0003627,
-	0x95a8: 0xe0003636, 0x95a9: 0xe0003633, 0x95aa: 0xe0003642, 0x95ab: 0xe000363f,
-	0x95ac: 0xe000345e, 0x95ad: 0xe000345b, 0x95ae: 0xe000342a, 0x95af: 0xe0003426,
-	0x95b0: 0xe000364b, 0x95b1: 0xe0003648, 0x95b2: 0xe000365d, 0x95b3: 0xe000365a,
-	0x95b4: 0xe0003663, 0x95b5: 0xe0003660, 0x95b6: 0xe000367b, 0x95b7: 0xe0003678,
-	0x95b8: 0xe0003682, 0x95b9: 0xe000367e, 0x95ba: 0xe000368f, 0x95bb: 0xe000368c,
-	0x95bc: 0xe0003689, 0x95bd: 0xe0003686, 0x95be: 0xe0003695, 0x95bf: 0xe0003692,
-	// Block 0x257, offset 0x95c0
-	0x95c0: 0xe000369b, 0x95c1: 0xe0003698, 0x95c2: 0xe00036a1, 0x95c3: 0xe000369e,
-	0x95c4: 0xe00036bf, 0x95c5: 0xe00036bc, 0x95c6: 0xe00036cb, 0x95c7: 0xe00036c8,
-	0x95c8: 0xe00036d7, 0x95c9: 0xe00036d4, 0x95ca: 0xe00036d1, 0x95cb: 0xe00036ce,
-	0x95cc: 0xe00034bd, 0x95cd: 0xe00034b9, 0x95ce: 0xe00034c5, 0x95cf: 0xe00034c1,
-	0x95d0: 0xe00034ff, 0x95d1: 0xe00034fb, 0x95d2: 0xe00034f7, 0x95d3: 0xe00034f3,
-	0x95d4: 0xe00036da, 0x95d5: 0xe0002997, 0x95d6: 0xe00036dd, 0x95d7: 0xe00029d7,
-	0x95d8: 0xe0000ed6, 0x95d9: 0xe0000ed3, 0x95da: 0xe0000ef4, 0x95db: 0xe0000ef1,
-	0x95dc: 0xe0000efb, 0x95dd: 0xe0000ef7, 0x95de: 0xe0000f02, 0x95df: 0xe0000eff,
-	0x95e0: 0xe0000f41, 0x95e1: 0xe0000f3e, 0x95e2: 0xe0000f53, 0x95e3: 0xe0000f50,
-	0x95e4: 0xe0000f26, 0x95e5: 0xe0000f22, 0x95e6: 0xe0000f3a, 0x95e7: 0xe0000f36,
-	0x95e8: 0xe0000f5a, 0x95e9: 0xe0000f56, 0x95ea: 0xe0000f93, 0x95eb: 0xe0000f90,
-	0x95ec: 0xe0000f9f, 0x95ed: 0xe0000f9c, 0x95ee: 0xe0000fb1, 0x95ef: 0xe0000fae,
-	0x95f0: 0xe0000fab, 0x95f1: 0xe0000fa8, 0x95f2: 0xe000360c, 0x95f3: 0xe0003609,
-	0x95f4: 0xe0003618, 0x95f5: 0xe0003615, 0x95f6: 0xe0003612, 0x95f7: 0xe000360f,
-	0x95f8: 0xe00035ab, 0x95f9: 0xe00035a7, 0x95fa: 0xe00035bf, 0x95fb: 0xe00035bb,
-	0x95fc: 0xe00010a9, 0x95fd: 0xe00010a6, 0x95fe: 0xe00010af, 0x95ff: 0xe00010ac,
-	// Block 0x258, offset 0x9600
-	0x9600: 0xe00036e9, 0x9601: 0xe00036e6, 0x9602: 0xe00036e3, 0x9603: 0xe00036e0,
-	0x9604: 0xe00036f8, 0x9605: 0xe00036f5, 0x9606: 0xe00036fb, 0x9607: 0xe00029fb,
-	0x9608: 0xe00036fe, 0x9609: 0xe00029fe, 0x960a: 0xe00010fc, 0x960b: 0xe00010f9,
-	0x960c: 0xe00010f6, 0x960d: 0xe00010f3, 0x960e: 0xe0001123, 0x960f: 0xe0001120,
-	0x9610: 0xe0001141, 0x9611: 0xe000113e, 0x9612: 0xe0001153, 0x9613: 0xe0001150,
-	0x9614: 0xe0001159, 0x9615: 0xe0001156, 0x9616: 0xe0003645, 0x9617: 0xe0000f8d,
-	0x9618: 0xe00036f2, 0x9619: 0xe0001111, 0x961a: 0xf0000404, 0x961b: 0xe0000f70,
-	0x961c: 0x40300420, 0x961d: 0x40300620, 0x961e: 0xe0000f7f, 0x961f: 0x402c9620,
-	0x9620: 0xe000334e, 0x9621: 0xe0000998, 0x9622: 0xe0003345, 0x9623: 0xe0000986,
-	0x9624: 0xe0003314, 0x9625: 0xe0000924, 0x9626: 0xe0003318, 0x9627: 0xe000092c,
-	0x9628: 0xe0003320, 0x9629: 0xe000093c, 0x962a: 0xe000331c, 0x962b: 0xe0000934,
-	0x962c: 0xe0003355, 0x962d: 0xe00009a6, 0x962e: 0xe0003301, 0x962f: 0xe00008fe,
-	0x9630: 0xe0003305, 0x9631: 0xe0000906, 0x9632: 0xe000330d, 0x9633: 0xe0000916,
-	0x9634: 0xe0003309, 0x9635: 0xe000090e, 0x9636: 0xe0003351, 0x9637: 0xe000099e,
-	0x9638: 0xe00033eb, 0x9639: 0xe00033e8, 0x963a: 0xe00033d9, 0x963b: 0xe00033d6,
-	0x963c: 0xe00033a3, 0x963d: 0xe00033a0, 0x963e: 0xe0003378, 0x963f: 0xe0003374,
-	// Block 0x259, offset 0x9640
-	0x9640: 0xe0003380, 0x9641: 0xe000337c, 0x9642: 0xe0003390, 0x9643: 0xe000338c,
-	0x9644: 0xe0003388, 0x9645: 0xe0003384, 0x9646: 0xe00033f2, 0x9647: 0xe00033ee,
-	0x9648: 0xe0003446, 0x9649: 0xe0003443, 0x964a: 0xe0003458, 0x964b: 0xe0003455,
-	0x964c: 0xe0003546, 0x964d: 0xe0003543, 0x964e: 0xe0003506, 0x964f: 0xe0003503,
-	0x9650: 0xe000347d, 0x9651: 0xe0003479, 0x9652: 0xe0003485, 0x9653: 0xe0003481,
-	0x9654: 0xe0003495, 0x9655: 0xe0003491, 0x9656: 0xe000348d, 0x9657: 0xe0003489,
-	0x9658: 0xe000354d, 0x9659: 0xe0003549, 0x965a: 0xe000351f, 0x965b: 0xe000351b,
-	0x965c: 0xe0003527, 0x965d: 0xe0003523, 0x965e: 0xe0003537, 0x965f: 0xe0003533,
-	0x9660: 0xe000352f, 0x9661: 0xe000352b, 0x9662: 0xe000353f, 0x9663: 0xe000353b,
-	0x9664: 0xe0003606, 0x9665: 0xe0003603, 0x9666: 0xe00035c6, 0x9667: 0xe00035c3,
-	0x9668: 0xe00035df, 0x9669: 0xe00035db, 0x966a: 0xe00035e7, 0x966b: 0xe00035e3,
-	0x966c: 0xe00035f7, 0x966d: 0xe00035f3, 0x966e: 0xe00035ef, 0x966f: 0xe00035eb,
-	0x9670: 0xe00035ff, 0x9671: 0xe00035fb, 0x9672: 0xe0001108, 0x9673: 0xe0001105,
-	0x9674: 0xe0001135, 0x9675: 0xe0001132, 0x9676: 0xe000112f, 0x9677: 0xe000112c,
-	0x9678: 0xe000111d, 0x9679: 0xe000111a, 0x967a: 0xe0000d0a, 0x967b: 0xe0000d07,
-	0x967c: 0x0030d888, 0x967d: 0x4030d820, 0x967e: 0x00312088, 0x967f: 0x40312020,
-	// Block 0x25a, offset 0x9680
-	0x9680: 0xe00009bc, 0x9681: 0xe00009c0, 0x9682: 0x002c3a8b, 0x9683: 0xf0000a04,
-	0x9684: 0x40081c20, 0x9685: 0xe0000a5e, 0x9686: 0xe0000a62, 0x9687: 0x002cc28a,
-	0x9688: 0x40081e20, 0x9689: 0xf0000a04, 0x968a: 0x002d2285, 0x968b: 0x002d688b,
-	0x968c: 0x002d688b, 0x968d: 0x002d688b, 0x968e: 0x002d6885, 0x968f: 0xf0000202,
-	0x9690: 0x002d9a8b, 0x9691: 0x002d9a8b, 0x9692: 0x002e228b, 0x9693: 0x002e2285,
-	0x9694: 0x40082020, 0x9695: 0x002e9e8b, 0x9696: 0xe000308e, 0x9697: 0x40082220,
-	0x9698: 0x40082420, 0x9699: 0x002f2c8b, 0x969a: 0x002f568b, 0x969b: 0x002f7a8b,
-	0x969c: 0x002f7a8b, 0x969d: 0x002f7a8b, 0x969e: 0x40082620, 0x969f: 0x40082820,
-	0x96a0: 0xe00030bb, 0x96a1: 0xe0000fbd, 0x96a2: 0xe00030ca, 0x96a3: 0x40082a20,
-	0x96a4: 0x00312a8b, 0x96a5: 0x40082c20, 0x96a6: 0x0032a288, 0x96a7: 0x40082e20,
-	0x96a8: 0x00312a8b, 0x96a9: 0x40083020, 0x96aa: 0x002bea83, 0x96ab: 0xe0003327,
-	0x96ac: 0x002c0a8b, 0x96ad: 0x002c3a8b, 0x96ae: 0x40083220, 0x96af: 0x002c9885,
-	0x96b0: 0x002c988b, 0x96b1: 0x002d088b, 0x96b2: 0x002d1e88, 0x96b3: 0x002e828b,
-	0x96b4: 0x002ee285, 0x96b5: 0x00389084, 0x96b6: 0x00389284, 0x96b7: 0x00389484,
-	0x96b8: 0x00389684, 0x96b9: 0x002d9a85, 0x96ba: 0x40083420, 0x96bb: 0xe0000b95,
-	0x96bc: 0x00327e85, 0x96bd: 0x00325685, 0x96be: 0x0032568b, 0x96bf: 0x00327e8b,
-	// Block 0x25b, offset 0x96c0
-	0x96c0: 0xe0000024, 0x96c1: 0xe0000029, 0x96c2: 0xe000002e, 0x96c3: 0xe0000033,
-	0x96c4: 0xe0000038, 0x96c5: 0xe000003d, 0x96c6: 0xe0000042, 0x96c7: 0xe0000047,
-	0x96c8: 0xf0001f04, 0x96c9: 0xf0001f04, 0x96ca: 0xf0001f04, 0x96cb: 0xf0001f04,
-	0x96cc: 0xf0001f04, 0x96cd: 0xf0001f04, 0x96ce: 0xf0001f04, 0x96cf: 0xf0001f04,
-	0x96d0: 0xf0001f04, 0x96d1: 0xf0000404, 0x96d2: 0xf0000404, 0x96d3: 0xf0000404,
-	0x96d4: 0xf0000404, 0x96d5: 0xf0000404, 0x96d6: 0xf0000404, 0x96d7: 0xf0000404,
-	0x96d8: 0xf0000404, 0x96d9: 0xf0000404, 0x96da: 0xf0000404, 0x96db: 0xf0000404,
-	0x96dc: 0xf0000404, 0x96dd: 0xf0000404, 0x96de: 0xf0000404, 0x96df: 0xf0000404,
-	0x96e0: 0xe00027f8, 0x96e1: 0xf0000404, 0x96e2: 0xf0000404, 0x96e3: 0xe0002810,
-	0x96e4: 0xe0002818, 0x96e5: 0xf0000404, 0x96e6: 0xe0002824, 0x96e7: 0xe000282c,
-	0x96e8: 0xe0002834, 0x96e9: 0xe000283c, 0x96ea: 0xe0002844, 0x96eb: 0xe000284c,
-	0x96ec: 0xf0000404, 0x96ed: 0xf0000404, 0x96ee: 0xf0000404, 0x96ef: 0xf0000404,
-	0x96f0: 0xe000286c, 0x96f1: 0xf0000404, 0x96f2: 0xe000287c, 0x96f3: 0xf0000404,
-	0x96f4: 0xf0000404, 0x96f5: 0xf0000404, 0x96f6: 0x002bde8c, 0x96f7: 0x002c0a8c,
-	0x96f8: 0x002c3a8c, 0x96f9: 0x002c628c, 0x96fa: 0x002c988c, 0x96fb: 0x002d088c,
-	0x96fc: 0x002d228c, 0x96fd: 0x002d688c, 0x96fe: 0x002d9a8c, 0x96ff: 0x002dcc8c,
-	// Block 0x25c, offset 0x9700
-	0x9700: 0xf0001f04, 0x9701: 0xf0001f04, 0x9702: 0xf0001f04, 0x9703: 0xf0001f04,
-	0x9704: 0xf0001f04, 0x9705: 0xf0001f04, 0x9706: 0xf0001f04, 0x9707: 0xf0001f04,
-	0x9708: 0xf0001f04, 0x9709: 0xf0000404, 0x970a: 0xf0000404, 0x970b: 0xf0000404,
-	0x970c: 0xe0002ffd, 0x970d: 0xe0000b85, 0x970e: 0xe0002fe5, 0x970f: 0xe0000d14,
-	0x9710: 0x00657693, 0x9711: 0x00657893, 0x9712: 0x00657a93, 0x9713: 0x00657e93,
-	0x9714: 0x00658093, 0x9715: 0x00658293, 0x9716: 0x00658493, 0x9717: 0x00658693,
-	0x9718: 0x00658893, 0x9719: 0x00658a93, 0x971a: 0x00658c93, 0x971b: 0x00658e93,
-	0x971c: 0x00659093, 0x971d: 0x00659293, 0x971e: 0x00659493, 0x971f: 0x00659693,
-	0x9720: 0x00659893, 0x9721: 0x00659a93, 0x9722: 0x00659c93, 0x9723: 0x00659e93,
-	0x9724: 0x0065a093, 0x9725: 0x0065a293, 0x9726: 0x0065a493, 0x9727: 0x0065a693,
-	0x9728: 0x0065a893, 0x9729: 0x0065aa93, 0x972a: 0x0065ac93, 0x972b: 0x0065ae93,
-	0x972c: 0x0065b093, 0x972d: 0x0065b293, 0x972e: 0x0065b493, 0x972f: 0x0065b693,
-	0x9730: 0x0065b893, 0x9731: 0x0065ba93, 0x9732: 0x0065bc93, 0x9733: 0x0065be93,
-	0x9734: 0x0065c093, 0x9735: 0x0065c493, 0x9736: 0x0065c693, 0x9737: 0x0065c893,
-	0x9738: 0x0065ca93, 0x9739: 0x0065cc93, 0x973a: 0x0065ce93, 0x973b: 0x0065d093,
-	0x973c: 0x0065d293, 0x973d: 0x0065d493, 0x973e: 0x0065d693,
-	// Block 0x25d, offset 0x9740
-	0x9740: 0xe000230b, 0x9741: 0xe00022f8, 0x9742: 0xe00022fc, 0x9743: 0xe0002311,
-	0x9744: 0xe0002316, 0x9745: 0xe000231d, 0x9746: 0xe0002321, 0x9747: 0xe0002325,
-	0x9748: 0xe000232b, 0x9749: 0xf0001c1c, 0x974a: 0xe0002330, 0x974b: 0xe000233c,
-	0x974c: 0xe0002340, 0x974d: 0xe0002337, 0x974e: 0xe0002346, 0x974f: 0xe000234b,
-	0x9750: 0xe000234f, 0x9751: 0xe0002353, 0x9752: 0xf0001c1c, 0x9753: 0xe000235e,
-	0x9754: 0xe0002358, 0x9755: 0xf0001c1c, 0x9756: 0xe0002363, 0x9757: 0xe000236d,
-	0x9758: 0xf0001f04, 0x9759: 0xf0001f04, 0x975a: 0xf0001f04, 0x975b: 0xf0001f04,
-	0x975c: 0xf0001f04, 0x975d: 0xf0001f04, 0x975e: 0xf0001f04, 0x975f: 0xf0001f04,
-	0x9760: 0xf0001f04, 0x9761: 0xf0001f04, 0x9762: 0xf0000404, 0x9763: 0xf0000404,
-	0x9764: 0xf0000404, 0x9765: 0xf0000404, 0x9766: 0xf0000404, 0x9767: 0xf0000404,
-	0x9768: 0xf0000404, 0x9769: 0xf0000404, 0x976a: 0xf0000404, 0x976b: 0xf0000404,
-	0x976c: 0xf0000404, 0x976d: 0xf0000404, 0x976e: 0xf0000404, 0x976f: 0xf0000404,
-	0x9770: 0xf0000404, 0x9771: 0xe0000c1e, 0x9772: 0xf0001c1c, 0x9773: 0xe0002991,
-	0x9774: 0xe0000a31, 0x9775: 0xe000309a, 0x9776: 0xe00030a3, 0x9777: 0xe0002fd9,
-	0x9778: 0xe0000ac2, 0x9779: 0xe0000ac6, 0x977a: 0xe0002578, 0x977b: 0xf0001c1c,
-	0x977c: 0xf0001c1c, 0x977d: 0xf0001c1c, 0x977e: 0xf0001c1c, 0x977f: 0xe0002431,
-	// Block 0x25e, offset 0x9780
-	0x9780: 0xe000309d, 0x9781: 0xe000307c, 0x9782: 0xf0001d1c, 0x9783: 0xe000304f,
-	0x9784: 0xe0003019, 0x9785: 0xe000301c, 0x9786: 0xe0003055, 0x9787: 0xf0001d1d,
-	0x9788: 0xe0000a6b, 0x9789: 0xe0000cb4, 0x978a: 0xe00030a6, 0x978b: 0xe000307f,
-	0x978c: 0xf0001d1c, 0x978d: 0xf0001c1c, 0x978e: 0xe000305e, 0x978f: 0xe000301f,
-	0x9790: 0xe0003006, 0x9791: 0xe0000cb9, 0x9792: 0xe0000d36, 0x9793: 0xe0000be3,
-	0x9794: 0xe0000fc5, 0x9795: 0xe00030e9, 0x9796: 0xe0003061, 0x9797: 0xe0002fd6,
-	0x9798: 0xe0003025, 0x9799: 0xe0002ff1, 0x979a: 0xe000308b, 0x979b: 0xe00030ec,
-	0x979c: 0xe0003064, 0x979d: 0xe0002e35, 0x979e: 0xe0003028, 0x979f: 0xe0000d3e,
-	0x97a0: 0xe0000a72, 0x97a1: 0xe0003049, 0x97a2: 0xe0000cbd, 0x97a3: 0xe0000d42,
-	0x97a4: 0xe0000a76, 0x97a5: 0xe000304c, 0x97a6: 0xe0000cc1, 0x97a7: 0xe0000d2d,
-	0x97a8: 0xe0000d31, 0x97a9: 0xe00030a0, 0x97aa: 0xe0000cc5, 0x97ab: 0xe0000d4a,
-	0x97ac: 0xe0000be7, 0x97ad: 0xe0000f0b, 0x97ae: 0xe0000f0f, 0x97af: 0xe0000f15,
-	0x97b0: 0xe00030af, 0x97b1: 0xe0003091, 0x97b2: 0xf0001c1c, 0x97b3: 0xe0003067,
-	0x97b4: 0xe00030b2, 0x97b5: 0xe0003094, 0x97b6: 0xf0001d1c, 0x97b7: 0xe000306a,
-	0x97b8: 0xe0003031, 0x97b9: 0xe000306d, 0x97ba: 0xe00030b5, 0x97bb: 0xe0003097,
-	0x97bc: 0xe00030f5, 0x97bd: 0xe0003073, 0x97be: 0xe0003034, 0x97bf: 0xe0003076,
-	// Block 0x25f, offset 0x97c0
-	0x97c0: 0xe0003037, 0x97c1: 0xe0003079, 0x97c2: 0xe00009b7, 0x97c3: 0xf0001c1d,
-	0x97c4: 0xf0001c1c, 0x97c5: 0xf0001c1c, 0x97c6: 0xe0000a66, 0x97c7: 0xe0000a7a,
-	0x97c8: 0xf0001d1c, 0x97c9: 0xf0001c1d, 0x97ca: 0xe0002ffa, 0x97cb: 0xe0003000,
-	0x97cc: 0xe0003013, 0x97cd: 0xe0003022, 0x97ce: 0xe000302b, 0x97cf: 0xe000302e,
-	0x97d0: 0xe0003043, 0x97d1: 0xe0003046, 0x97d2: 0xe0000d0d, 0x97d3: 0xe0002584,
-	0x97d4: 0xe0003052, 0x97d5: 0xe0000d3a, 0x97d6: 0xe0000d46, 0x97d7: 0xe00030a9,
-	0x97d8: 0xe0000eb0, 0x97d9: 0xe0000eb8, 0x97da: 0xe00030ac, 0x97db: 0xf0001c1c,
-	0x97dc: 0xf0001c1d, 0x97dd: 0xe00030d4, 0x97de: 0xe00010b2, 0x97df: 0xe00009c8,
-	0x97e0: 0xf0001f04, 0x97e1: 0xf0001f04, 0x97e2: 0xf0001f04, 0x97e3: 0xf0001f04,
-	0x97e4: 0xf0001f04, 0x97e5: 0xf0001f04, 0x97e6: 0xf0001f04, 0x97e7: 0xf0001f04,
-	0x97e8: 0xf0001f04, 0x97e9: 0xf0000404, 0x97ea: 0xf0000404, 0x97eb: 0xf0000404,
-	0x97ec: 0xf0000404, 0x97ed: 0xf0000404, 0x97ee: 0xf0000404, 0x97ef: 0xf0000404,
-	0x97f0: 0xf0000404, 0x97f1: 0xf0000404, 0x97f2: 0xf0000404, 0x97f3: 0xf0000404,
-	0x97f4: 0xf0000404, 0x97f5: 0xf0000404, 0x97f6: 0xf0000404, 0x97f7: 0xf0000404,
-	0x97f8: 0xf0000404, 0x97f9: 0xf0000404, 0x97fa: 0xf0000404, 0x97fb: 0xf0000404,
-	0x97fc: 0xf0000404, 0x97fd: 0xf0000404, 0x97fe: 0xf0000404, 0x97ff: 0xe0000bdf,
-	// Block 0x260, offset 0x9800
-	0x9800: 0xf0000404, 0x9801: 0xe0002feb, 0x9802: 0xe0002fee, 0x9803: 0xe0000b99,
-	0x9804: 0xe0000b9d, 0x9805: 0xe0000f83, 0x9806: 0xf0000404,
-	0x9813: 0xf0000404,
-	0x9814: 0xf0000404, 0x9815: 0xf0000404, 0x9816: 0xf0000404, 0x9817: 0xf0000404,
-	0x981d: 0xe000150b, 0x981e: 0xa1a09602, 0x981f: 0xe0001514,
-	0x9820: 0x0038ae85, 0x9821: 0x00389085, 0x9822: 0x00389685, 0x9823: 0x00389885,
-	0x9824: 0x0038a485, 0x9825: 0x0038a685, 0x9826: 0x0038a885, 0x9827: 0x0038b685,
-	0x9828: 0x0038ba85, 0x9829: 0x00093885, 0x982a: 0xe0001542, 0x982b: 0xe000153f,
-	0x982c: 0xe000154c, 0x982d: 0xe0001548, 0x982e: 0xe00014e1, 0x982f: 0xe00014e4,
-	0x9830: 0xe00014e7, 0x9831: 0xe00014ea, 0x9832: 0xe00014f0, 0x9833: 0xe00014f3,
-	0x9834: 0xe00014f6, 0x9835: 0xe00014fc, 0x9836: 0xe0001505,
-	0x9838: 0xe0001508, 0x9839: 0xe000150e, 0x983a: 0xe000151b, 0x983b: 0xe0001518,
-	0x983c: 0xe0001521, 0x983e: 0xe0001524,
-	// Block 0x261, offset 0x9840
-	0x9840: 0xf0001f04, 0x9841: 0xf0001f04, 0x9842: 0xf0001f04, 0x9843: 0xf0001f04,
-	0x9844: 0xf0001f04, 0x9845: 0xf0001f04, 0x9846: 0xf0001f04, 0x9847: 0xf0001f04,
-	0x9848: 0xf0001f04, 0x9849: 0xf0001f04, 0x984a: 0xf0001f04,
-	0x9850: 0xf0000a04, 0x9851: 0xf0000a04, 0x9852: 0xf0000a04, 0x9853: 0xf0000a04,
-	0x9854: 0xe00027fc, 0x9855: 0xf0000a04, 0x9856: 0xf0000a04, 0x9857: 0xe0002814,
-	0x9858: 0xe0002517, 0x9859: 0xf0000a04, 0x985a: 0xe0002828, 0x985b: 0xe0002830,
-	0x985c: 0xe0002838, 0x985d: 0xe0002840, 0x985e: 0xe0002848, 0x985f: 0xe0002850,
-	0x9860: 0xf0000a04, 0x9861: 0xf0000a04, 0x9862: 0xf0000a04, 0x9863: 0xf0000a04,
-	0x9864: 0xe0002870, 0x9865: 0xf0000a04, 0x9866: 0xe0002880, 0x9867: 0xf0000a04,
-	0x9868: 0xf0000a04, 0x9869: 0xf0000a04, 0x986a: 0xf0000a04, 0x986b: 0x002c3a8c,
-	0x986c: 0x002f7a8c, 0x986d: 0xf0000c0c, 0x986e: 0xe00030da,
-	0x9870: 0x002bde9d, 0x9871: 0x002c0a9d, 0x9872: 0x002c3a9d, 0x9873: 0x002c629d,
-	0x9874: 0x002c989d, 0x9875: 0x002d089d, 0x9876: 0x002d229d, 0x9877: 0x002d689d,
-	0x9878: 0x002d9a9d, 0x9879: 0x002dcc9d, 0x987a: 0x002dfe9d, 0x987b: 0x002e229d,
-	0x987c: 0x002e829d, 0x987d: 0x002e9e9d, 0x987e: 0x002ee29d, 0x987f: 0x002f2c9d,
-	// Block 0x262, offset 0x9880
-	0x9880: 0x002f569d, 0x9881: 0x002f7a9d, 0x9882: 0x002fe69d, 0x9883: 0x00302c9d,
-	0x9884: 0x00306c9d, 0x9885: 0x0030be9d, 0x9886: 0x0030e29d, 0x9887: 0x0030f69d,
-	0x9888: 0x0031009d, 0x9889: 0x00312a9d, 0x988a: 0xe0003003, 0x988b: 0xe0003070,
-	0x988c: 0xf0001d1d, 0x988d: 0xf0001d1d, 0x988e: 0xe0000ebc, 0x988f: 0xe00030d7,
-	0x9890: 0x002bde8c, 0x9891: 0x002c0a8c, 0x9892: 0x002c3a8c, 0x9893: 0x002c628c,
-	0x9894: 0x002c988c, 0x9895: 0x002d088c, 0x9896: 0x002d228c, 0x9897: 0x002d688c,
-	0x9898: 0x002d9a8c, 0x9899: 0x002dcc8c, 0x989a: 0x002dfe8c, 0x989b: 0x002e228c,
-	0x989c: 0x002e828c, 0x989d: 0x002e9e8c, 0x989e: 0x002ee28c, 0x989f: 0x002f2c8c,
-	0x98a0: 0x002f568c, 0x98a1: 0x002f7a8c, 0x98a2: 0x002fe68c, 0x98a3: 0x00302c8c,
-	0x98a4: 0x00306c8c, 0x98a5: 0x0030be8c, 0x98a6: 0x0030e28c, 0x98a7: 0x0030f68c,
-	0x98a8: 0x0031008c, 0x98a9: 0x00312a8c, 0x98aa: 0xe0003058, 0x98ab: 0xe000305b,
-	0x98b0: 0x002bde9d, 0x98b1: 0x002c0a9d, 0x98b2: 0x002c3a9d, 0x98b3: 0x002c629d,
-	0x98b4: 0x002c989d, 0x98b5: 0x002d089d, 0x98b6: 0x002d229d, 0x98b7: 0x002d689d,
-	0x98b8: 0x002d9a9d, 0x98b9: 0x002dcc9d, 0x98ba: 0x002dfe9d, 0x98bb: 0x002e229d,
-	0x98bc: 0x002e829d, 0x98bd: 0x002e9e9d, 0x98be: 0x002ee29d, 0x98bf: 0x002f2c9d,
-	// Block 0x263, offset 0x98c0
-	0x98c0: 0xa000f202, 0x98c1: 0x403fba21, 0x98c2: 0x403fba20, 0x98c3: 0x403fbc20,
-	0x98c4: 0x403fbc20, 0x98c5: 0x403fbe20, 0x98c6: 0x403fc020, 0x98c7: 0x403fcc20,
-	0x98c8: 0x403fce20, 0x98c9: 0x403fd020, 0x98ca: 0x403fd220, 0x98cb: 0x403fd420,
-	0x98cc: 0x403fd820, 0x98cd: 0x403fdc20, 0x98ce: 0x403fde20, 0x98cf: 0x403fe020,
-	0x98d0: 0x403fe220, 0x98d1: 0x403fe420, 0x98d2: 0x403fe620, 0x98d3: 0x403fe820,
-	0x98d4: 0x403fea20, 0x98d5: 0x403fec20, 0x98d6: 0x403fee20, 0x98d7: 0x403ff020,
-	0x98d8: 0x403ff420, 0x98d9: 0x403ff620, 0x98da: 0x403ff820, 0x98db: 0x403ffa20,
-	0x98dc: 0x403ffc20, 0x98dd: 0x40400220, 0x98de: 0x40400420, 0x98df: 0x40400620,
-	0x98e0: 0x40400820, 0x98e1: 0x40400a20, 0x98e2: 0x40400e20, 0x98e3: 0x40401020,
-	0x98e4: 0x40401220, 0x98e5: 0x40401420, 0x98e6: 0x40401620, 0x98e7: 0x40401820,
-	0x98e8: 0x40401a20, 0x98e9: 0xe0001830, 0x98ea: 0x40401c20, 0x98eb: 0x40401e20,
-	0x98ec: 0x40402020, 0x98ed: 0x40402420, 0x98ee: 0x40402620, 0x98ef: 0x40402820,
-	0x98f0: 0x40402c20, 0x98f1: 0xe0001839, 0x98f2: 0x40402e20, 0x98f3: 0x40403020,
-	0x98f4: 0xe000183c, 0x98f5: 0x40403220, 0x98f6: 0x40403420, 0x98f7: 0x40403620,
-	0x98f8: 0x40403820, 0x98f9: 0x40403a20, 0x98fa: 0x40404c20, 0x98fb: 0x40404e20,
-	0x98fc: 0xa070f102, 0x98fd: 0x40403c20, 0x98fe: 0x40404a20, 0x98ff: 0x40405620,
-	// Block 0x264, offset 0x9900
-	0x9900: 0xa0000000, 0x9901: 0xa0000000, 0x9902: 0xa0000000, 0x9903: 0xa0000000,
-	0x9904: 0xa0000000, 0x9905: 0xa0000000, 0x9906: 0xa0000000, 0x9907: 0xa0000000,
-	0x9908: 0xa0000000, 0x9909: 0x40020020, 0x990a: 0x40020220, 0x990b: 0x40020420,
-	0x990c: 0x40020620, 0x990d: 0x40020820, 0x990e: 0xa0000000, 0x990f: 0xa0000000,
-	0x9910: 0xa0000000, 0x9911: 0xa0000000, 0x9912: 0xa0000000, 0x9913: 0xa0000000,
-	0x9914: 0xa0000000, 0x9915: 0xa0000000, 0x9916: 0xa0000000, 0x9917: 0xa0000000,
-	0x9918: 0xa0000000, 0x9919: 0xa0000000, 0x991a: 0xa0000000, 0x991b: 0xa0000000,
-	0x991c: 0xa0000000, 0x991d: 0xa0000000, 0x991e: 0xa0000000, 0x991f: 0xa0000000,
-	0x9920: 0x40021220, 0x9921: 0x4002ba20, 0x9922: 0x4003e020, 0x9923: 0x4004ea20,
-	0x9924: 0x4027de20, 0x9925: 0x4004ec20, 0x9926: 0x4004e620, 0x9927: 0x4003d220,
-	0x9928: 0x4003f420, 0x9929: 0x4003f620, 0x992a: 0x4004d820, 0x992b: 0x40093820,
-	0x992c: 0x40024020, 0x992d: 0x40021a20, 0x992e: 0x4002e420, 0x992f: 0x4004e220,
-	0x9930: 0x4029cc20, 0x9931: 0x4029ce20, 0x9932: 0x4029d020, 0x9933: 0x4029d220,
-	0x9934: 0x4029d420, 0x9935: 0x4029d620, 0x9936: 0x4029d820, 0x9937: 0x4029da20,
-	0x9938: 0x4029dc20, 0x9939: 0x4029de20, 0x993a: 0x40026c20, 0x993b: 0x40026220,
-	0x993c: 0x40094020, 0x993d: 0x40094220, 0x993e: 0x40094420, 0x993f: 0x4002c420,
-	// Block 0x265, offset 0x9940
-	0x9940: 0x4004d620, 0x9941: 0x002bde88, 0x9942: 0x002c0a88, 0x9943: 0xc5872851,
-	0x9944: 0xc58d28d3, 0x9945: 0x002c9888, 0x9946: 0x002d0888, 0x9947: 0x002d2288,
-	0x9948: 0x002d6888, 0x9949: 0x002d9a88, 0x994a: 0x002dcc88, 0x994b: 0x002dfe88,
-	0x994c: 0xc59229a4, 0x994d: 0x002e8288, 0x994e: 0xc5972a12, 0x994f: 0x002ee288,
-	0x9950: 0x002f2c88, 0x9951: 0x002f5688, 0x9952: 0x002f7a88, 0x9953: 0xc3430991,
-	0x9954: 0x00302c88, 0x9955: 0x00306c88, 0x9956: 0x0030be88, 0x9957: 0x0030e288,
-	0x9958: 0x0030f688, 0x9959: 0x00310088, 0x995a: 0xc3630991, 0x995b: 0x4003f820,
-	0x995c: 0x4004e420, 0x995d: 0x4003fa20, 0x995e: 0x40062420, 0x995f: 0x40021620,
-	0x9960: 0x40061e20, 0x9961: 0x402bde20, 0x9962: 0x402c0a20, 0x9963: 0xc5842851,
-	0x9964: 0xc58a2882, 0x9965: 0x402c9820, 0x9966: 0x402d0820, 0x9967: 0x402d2220,
-	0x9968: 0x402d6820, 0x9969: 0x402d9a20, 0x996a: 0x402dcc20, 0x996b: 0x402dfe20,
-	0x996c: 0xc3772953, 0x996d: 0x402e8220, 0x996e: 0xc5272a01, 0x996f: 0x402ee220,
-	0x9970: 0x402f2c20, 0x9971: 0x402f5620, 0x9972: 0x402f7a20, 0x9973: 0xc3410991,
-	0x9974: 0x40302c20, 0x9975: 0x40306c20, 0x9976: 0x4030be20, 0x9977: 0x4030e220,
-	0x9978: 0x4030f620, 0x9979: 0x40310020, 0x997a: 0xc3610991, 0x997b: 0x4003fc20,
-	0x997c: 0x40094820, 0x997d: 0x4003fe20, 0x997e: 0x40094c20, 0x997f: 0xa0000000,
-	// Block 0x266, offset 0x9980
-	0x9980: 0xe0000983, 0x9981: 0xe0000980, 0x9982: 0xe00008fb, 0x9983: 0xe00008f8,
-	0x9984: 0xe000097d, 0x9985: 0xe000097a, 0x9986: 0x002c3e83, 0x9987: 0x402c3e20,
-	0x9988: 0xe0000a3e, 0x9989: 0xe0000a3b, 0x998a: 0xe0000a4a, 0x998b: 0xe0000a47,
-	0x998c: 0x002c3c83, 0x998d: 0x402c3c20, 0x998e: 0xe0000a86, 0x998f: 0xe0000a83,
-	0x9990: 0x002c6683, 0x9991: 0x402c6620, 0x9992: 0xe0000b46, 0x9993: 0xe0000b43,
-	0x9994: 0xe0000aee, 0x9995: 0xe0000aeb, 0x9996: 0xe0000b2c, 0x9997: 0xe0000b29,
-	0x9998: 0xe0000b40, 0x9999: 0xe0000b3d, 0x999a: 0xe0000b1a, 0x999b: 0xe0000b17,
-	0x999c: 0xe0000bb8, 0x999d: 0xe0000bb5, 0x999e: 0xe0000bb2, 0x999f: 0xe0000baf,
-	0x99a0: 0xe0000bc4, 0x99a1: 0xe0000bc1, 0x99a2: 0xe0000bca, 0x99a3: 0xe0000bc7,
-	0x99a4: 0xe0000bee, 0x99a5: 0xe0000beb, 0x99a6: 0xe0000c1b, 0x99a7: 0xe0000c18,
-	0x99a8: 0xe0000c51, 0x99a9: 0xe0000c4e, 0x99aa: 0xe0000c60, 0x99ab: 0xe0000c5d,
-	0x99ac: 0xe0000c31, 0x99ad: 0xe0000c2e, 0x99ae: 0xe0000c5a, 0x99af: 0xe0000c57,
-	0x99b0: 0xe0000c54, 0x99b1: 0x402da220, 0x99b2: 0xf0000a0a, 0x99b3: 0xf0000404,
-	0x99b4: 0xe0000c8a, 0x99b5: 0xe0000c87, 0x99b6: 0xe0000c9f, 0x99b7: 0xe0000c9c,
-	0x99b8: 0x402f7220, 0x99b9: 0xe0000ccc, 0x99ba: 0xe0000cc9, 0x99bb: 0xe0000cd8,
-	0x99bc: 0xe0000cd5, 0x99bd: 0xe0000cd2, 0x99be: 0xe0000ccf, 0x99bf: 0xe0000d04,
-	// Block 0x267, offset 0x99c0
-	0x99c0: 0xe0000cfe, 0x99c1: 0xe0000cf8, 0x99c2: 0xe0000cf5, 0x99c3: 0xe0000d51,
-	0x99c4: 0xe0000d4e, 0x99c5: 0xe0000d6f, 0x99c6: 0xe0000d6c, 0x99c7: 0xe0000d5d,
-	0x99c8: 0xe0000d5a, 0x99c9: 0xf0000404, 0x99ca: 0x002eda88, 0x99cb: 0x402eda20,
-	0x99cc: 0xe0000e2e, 0x99cd: 0xe0000e2b, 0x99ce: 0xe0000da0, 0x99cf: 0xe0000d9d,
-	0x99d0: 0xe0000de0, 0x99d1: 0xe0000ddd, 0x99d2: 0xe0000e93, 0x99d3: 0xe0000e8f,
-	0x99d4: 0xe0000eca, 0x99d5: 0xe0000ec7, 0x99d6: 0xe0000edc, 0x99d7: 0xe0000ed9,
-	0x99d8: 0xe0000ed0, 0x99d9: 0xe0000ecd, 0x99da: 0xe0000f1f, 0x99db: 0xe0000f1c,
-	0x99dc: 0xe0000f2d, 0x99dd: 0xe0000f2a, 0x99de: 0xe0000f47, 0x99df: 0xe0000f44,
-	0x99e0: 0x002fe883, 0x99e1: 0x402fe820, 0x99e2: 0xe0000f99, 0x99e3: 0xe0000f96,
-	0x99e4: 0xe0000f8a, 0x99e5: 0xe0000f87, 0x99e6: 0x00303688, 0x99e7: 0x40303620,
-	0x99e8: 0xe000102b, 0x99e9: 0xe0001028, 0x99ea: 0xe000103f, 0x99eb: 0xe000103c,
-	0x99ec: 0xe0000fe7, 0x99ed: 0xe0000fe4, 0x99ee: 0xe0000ff9, 0x99ef: 0xe0000ff6,
-	0x99f0: 0xe0001025, 0x99f1: 0xe0001022, 0x99f2: 0xe0001039, 0x99f3: 0xe0001036,
-	0x99f4: 0xe00010d8, 0x99f5: 0xe00010d5, 0x99f6: 0xe000110e, 0x99f7: 0xe000110b,
-	0x99f8: 0xe0001117, 0x99f9: 0xe000113b, 0x99fa: 0xe0001138, 0x99fb: 0xe000114d,
-	0x99fc: 0xe000114a, 0x99fd: 0x00312c83, 0x99fe: 0x40312c20, 0x99ff: 0xe0000f64,
-	// Block 0x268, offset 0x9a00
-	0x9a00: 0x40321220, 0x9a01: 0x40321a20, 0x9a02: 0x40322220, 0x9a03: 0x40322a20,
-	0x9a04: 0x002c6487, 0x9a05: 0x002c6485, 0x9a06: 0x002c6483, 0x9a07: 0x002e2487,
-	0x9a08: 0x002e2485, 0x9a09: 0x002e2483, 0x9a0a: 0x002ea087, 0x9a0b: 0x002ea085,
-	0x9a0c: 0x002ea083, 0x9a0d: 0xe0000947, 0x9a0e: 0xe0000944, 0x9a0f: 0xe0000c3d,
-	0x9a10: 0xe0000c3a, 0x9a11: 0xe0000dcc, 0x9a12: 0xe0000dc9, 0x9a13: 0xe0000ff3,
-	0x9a14: 0xe0000ff0, 0x9a15: 0xe000101e, 0x9a16: 0xe000101a, 0x9a17: 0xe0001006,
-	0x9a18: 0xe0001002, 0x9a19: 0xe0001016, 0x9a1a: 0xe0001012, 0x9a1b: 0xe000100e,
-	0x9a1c: 0xe000100a, 0x9a1d: 0x402cae20, 0x9a1e: 0xe0000962, 0x9a1f: 0xe000095e,
-	0x9a20: 0xe0000976, 0x9a21: 0xe0000972, 0x9a22: 0xe00009f4, 0x9a23: 0xe00009ef,
-	0x9a24: 0x002d3a88, 0x9a25: 0x402d3a20, 0x9a26: 0xe0000bbe, 0x9a27: 0xe0000bbb,
-	0x9a28: 0xe0000c99, 0x9a29: 0xe0000c96, 0x9a2a: 0xe0000e20, 0x9a2b: 0xe0000e1d,
-	0x9a2c: 0xe0000e27, 0x9a2d: 0xe0000e23, 0x9a2e: 0xe0001162, 0x9a2f: 0xe000115f,
-	0x9a30: 0xe0000c8d, 0x9a31: 0xf0000a0a, 0x9a32: 0xf000040a, 0x9a33: 0xf0000404,
-	0x9a34: 0xe0000bac, 0x9a35: 0xe0000ba9, 0x9a36: 0x002d7888, 0x9a37: 0x00319488,
-	0x9a38: 0xe0000d57, 0x9a39: 0xe0000d54, 0x9a3a: 0xe0000954, 0x9a3b: 0xe0000950,
-	0x9a3c: 0xe00009ea, 0x9a3d: 0xe00009e5, 0x9a3e: 0xe0000e19, 0x9a3f: 0xe0000e15,
-	// Block 0x269, offset 0x9a40
-	0x9a40: 0xe00009b1, 0x9a41: 0xe00009ae, 0x9a42: 0xe0000a22, 0x9a43: 0xe0000a1f,
-	0x9a44: 0xe0000a28, 0x9a45: 0xe0000a25, 0x9a46: 0xe0000a2e, 0x9a47: 0xe0000a2b,
-	0x9a48: 0xe0003704, 0x9a49: 0xe0003701, 0x9a4a: 0xe0000a8c, 0x9a4b: 0xe0000a89,
-	0x9a4c: 0xe0000a98, 0x9a4d: 0xe0000a95, 0x9a4e: 0xe0000aa4, 0x9a4f: 0xe0000aa1,
-	0x9a50: 0xe0000a92, 0x9a51: 0xe0000a8f, 0x9a52: 0xe0000a9e, 0x9a53: 0xe0000a9b,
-	0x9a54: 0xe0000b55, 0x9a55: 0xe0000b51, 0x9a56: 0xe0000b4d, 0x9a57: 0xe0000b49,
-	0x9a58: 0xe0000b7c, 0x9a59: 0xe0000b79, 0x9a5a: 0xe0000b82, 0x9a5b: 0xe0000b7f,
-	0x9a5c: 0xe0000b39, 0x9a5d: 0xe0000b35, 0x9a5e: 0xe0000b8c, 0x9a5f: 0xe0000b89,
-	0x9a60: 0xe0000bd0, 0x9a61: 0xe0000bcd, 0x9a62: 0xe0000c00, 0x9a63: 0xe0000bfd,
-	0x9a64: 0xe0000c0c, 0x9a65: 0xe0000c09, 0x9a66: 0xe0000bfa, 0x9a67: 0xe0000bf7,
-	0x9a68: 0xe0000c06, 0x9a69: 0xe0000c03, 0x9a6a: 0xe0000c12, 0x9a6b: 0xe0000c0f,
-	0x9a6c: 0xe0000c7e, 0x9a6d: 0xe0000c7b, 0x9a6e: 0xe0000c4a, 0x9a6f: 0xe0000c46,
-	0x9a70: 0xe0000c93, 0x9a71: 0xe0000c90, 0x9a72: 0xe0000cab, 0x9a73: 0xe0000ca8,
-	0x9a74: 0xe0000cb1, 0x9a75: 0xe0000cae, 0x9a76: 0xe0000cde, 0x9a77: 0xe0000cdb,
-	0x9a78: 0xe0000ce5, 0x9a79: 0xe0000ce1, 0x9a7a: 0xe0000cf2, 0x9a7b: 0xe0000cef,
-	0x9a7c: 0xe0000cec, 0x9a7d: 0xe0000ce9, 0x9a7e: 0xe0000d1e, 0x9a7f: 0xe0000d1b,
-	// Block 0x26a, offset 0x9a80
-	0x9a80: 0xa0000000, 0x9a81: 0xa0000000, 0x9a82: 0xa0000000, 0x9a83: 0xa0000000,
-	0x9a84: 0xa0000000, 0x9a85: 0xa0000000, 0x9a86: 0xa0000000, 0x9a87: 0xa0000000,
-	0x9a88: 0xa0000000, 0x9a89: 0x40020020, 0x9a8a: 0x40020220, 0x9a8b: 0x40020420,
-	0x9a8c: 0x40020620, 0x9a8d: 0x40020820, 0x9a8e: 0xa0000000, 0x9a8f: 0xa0000000,
-	0x9a90: 0xa0000000, 0x9a91: 0xa0000000, 0x9a92: 0xa0000000, 0x9a93: 0xa0000000,
-	0x9a94: 0xa0000000, 0x9a95: 0xa0000000, 0x9a96: 0xa0000000, 0x9a97: 0xa0000000,
-	0x9a98: 0xa0000000, 0x9a99: 0xa0000000, 0x9a9a: 0xa0000000, 0x9a9b: 0xa0000000,
-	0x9a9c: 0xa0000000, 0x9a9d: 0xa0000000, 0x9a9e: 0xa0000000, 0x9a9f: 0xa0000000,
-	0x9aa0: 0x40021220, 0x9aa1: 0x4002ba20, 0x9aa2: 0x4003e020, 0x9aa3: 0x4004ea20,
-	0x9aa4: 0x4027de20, 0x9aa5: 0x4004ec20, 0x9aa6: 0x4004e620, 0x9aa7: 0x4003d220,
-	0x9aa8: 0x4003f420, 0x9aa9: 0x4003f620, 0x9aaa: 0x4004d820, 0x9aab: 0x40093820,
-	0x9aac: 0x40024020, 0x9aad: 0x40021a20, 0x9aae: 0x4002e420, 0x9aaf: 0x4004e220,
-	0x9ab0: 0x4029cc20, 0x9ab1: 0x4029ce20, 0x9ab2: 0x4029d020, 0x9ab3: 0x4029d220,
-	0x9ab4: 0x4029d420, 0x9ab5: 0x4029d620, 0x9ab6: 0x4029d820, 0x9ab7: 0x4029da20,
-	0x9ab8: 0x4029dc20, 0x9ab9: 0x4029de20, 0x9aba: 0x40026c20, 0x9abb: 0x40026220,
-	0x9abc: 0x40094020, 0x9abd: 0x40094220, 0x9abe: 0x40094420, 0x9abf: 0x4002c420,
-	// Block 0x26b, offset 0x9ac0
-	0x9ac0: 0x4004d620, 0x9ac1: 0x002bde88, 0x9ac2: 0x002c0a88, 0x9ac3: 0xc59d2a64,
-	0x9ac4: 0xc5a72b14, 0x9ac5: 0x002c9888, 0x9ac6: 0x002d0888, 0x9ac7: 0xc5b32be4,
-	0x9ac8: 0x002d6888, 0x9ac9: 0x002d9a88, 0x9aca: 0x002dcc88, 0x9acb: 0x002dfe88,
-	0x9acc: 0xc5bd2cb6, 0x9acd: 0x002e8288, 0x9ace: 0xc5c72d84, 0x9acf: 0xc5cf0b21,
-	0x9ad0: 0x002f2c88, 0x9ad1: 0x002f5688, 0x9ad2: 0x002f7a88, 0x9ad3: 0xc5d52e14,
-	0x9ad4: 0xc5dd2ea4, 0x9ad5: 0xc5e50b21, 0x9ad6: 0x0030be88, 0x9ad7: 0x0030e288,
-	0x9ad8: 0x0030f688, 0x9ad9: 0x00310088, 0x9ada: 0xc5eb2f34, 0x9adb: 0x4003f820,
-	0x9adc: 0x4004e420, 0x9add: 0x4003fa20, 0x9ade: 0x40062420, 0x9adf: 0x40021620,
-	0x9ae0: 0x40061e20, 0x9ae1: 0x402bde20, 0x9ae2: 0x402c0a20, 0x9ae3: 0xc59a2a32,
-	0x9ae4: 0xc5a22ac2, 0x9ae5: 0x402c9820, 0x9ae6: 0x402d0820, 0x9ae7: 0xc5b02bb2,
-	0x9ae8: 0x402d6820, 0x9ae9: 0x402d9a20, 0x9aea: 0x402dcc20, 0x9aeb: 0x402dfe20,
-	0x9aec: 0xc5b82c44, 0x9aed: 0x402e8220, 0x9aee: 0xc5c42d52, 0x9aef: 0xc5cc0b21,
-	0x9af0: 0x402f2c20, 0x9af1: 0x402f5620, 0x9af2: 0x402f7a20, 0x9af3: 0xc5d22de2,
-	0x9af4: 0xc5da2e72, 0x9af5: 0xc5e20b21, 0x9af6: 0x4030be20, 0x9af7: 0x4030e220,
-	0x9af8: 0x4030f620, 0x9af9: 0x40310020, 0x9afa: 0xc5e82f02, 0x9afb: 0x4003fc20,
-	0x9afc: 0x40094820, 0x9afd: 0x4003fe20, 0x9afe: 0x40094c20, 0x9aff: 0xa0000000,
-	// Block 0x26c, offset 0x9b00
-	0x9b00: 0xe00008f5, 0x9b01: 0xe00008ef, 0x9b02: 0xe0000921, 0x9b03: 0xe0000969,
-	0x9b04: 0xe000095b, 0x9b05: 0xe000094d, 0x9b06: 0xe00009dd, 0x9b07: 0xe0000a53,
-	0x9b08: 0xe0000ae8, 0x9b09: 0xe0000ae2, 0x9b0a: 0xe0000af4, 0x9b0b: 0xe0000b20,
-	0x9b0c: 0xe0000c2b, 0x9b0d: 0xe0000c25, 0x9b0e: 0xe0000c37, 0x9b0f: 0xe0000c43,
-	0x9b10: 0xe0000ab3, 0x9b11: 0xe0000d63, 0x9b12: 0xe0000d9a, 0x9b13: 0xe0000d94,
-	0x9b14: 0xe0000da6, 0x9b15: 0xe0000de6, 0x9b16: 0x002ee483, 0x9b17: 0x40093e20,
-	0x9b18: 0xe0000e12, 0x9b19: 0xe0000fe1, 0x9b1a: 0xe0000fdb, 0x9b1b: 0xe0000fed,
-	0x9b1c: 0x00306e83, 0x9b1d: 0xe0001102, 0x9b1e: 0x00318888, 0x9b1f: 0xe0000f7b,
-	0x9b20: 0xe00008f2, 0x9b21: 0xe00008ec, 0x9b22: 0xe000091e, 0x9b23: 0xe0000966,
-	0x9b24: 0xe0000958, 0x9b25: 0xe000094a, 0x9b26: 0xe00009d5, 0x9b27: 0xe0000a4d,
-	0x9b28: 0xe0000ae5, 0x9b29: 0xe0000adf, 0x9b2a: 0xe0000af1, 0x9b2b: 0xe0000b1d,
-	0x9b2c: 0xe0000c28, 0x9b2d: 0xe0000c22, 0x9b2e: 0xe0000c34, 0x9b2f: 0xe0000c40,
-	0x9b30: 0xe0000aad, 0x9b31: 0xe0000d60, 0x9b32: 0xe0000d97, 0x9b33: 0xe0000d91,
-	0x9b34: 0xe0000da3, 0x9b35: 0xe0000de3, 0x9b36: 0x402ee420, 0x9b37: 0x40093c20,
-	0x9b38: 0xe0000e0f, 0x9b39: 0xe0000fde, 0x9b3a: 0xe0000fd8, 0x9b3b: 0xe0000fea,
-	0x9b3c: 0x40306e20, 0x9b3d: 0xe00010ff, 0x9b3e: 0x40318820, 0x9b3f: 0xe0001114,
-	// Block 0x26d, offset 0x9b40
-	0x9b40: 0xe0000cfe, 0x9b41: 0xe0000cf8, 0x9b42: 0xe0000cf5, 0x9b43: 0xe0000d51,
-	0x9b44: 0xe0000d4e, 0x9b45: 0xe0000d6f, 0x9b46: 0xe0000d6c, 0x9b47: 0xe0000d5d,
-	0x9b48: 0xe0000d5a, 0x9b49: 0xf0000404, 0x9b4a: 0x002eda88, 0x9b4b: 0x402eda20,
-	0x9b4c: 0xe0000e2e, 0x9b4d: 0xe0000e2b, 0x9b4e: 0xe0000da0, 0x9b4f: 0xe0000d9d,
-	0x9b50: 0x002ee4a3, 0x9b51: 0x402ee421, 0x9b52: 0xe0000e93, 0x9b53: 0xe0000e8f,
-	0x9b54: 0xe0000eca, 0x9b55: 0xe0000ec7, 0x9b56: 0xe0000edc, 0x9b57: 0xe0000ed9,
-	0x9b58: 0xe0000ed0, 0x9b59: 0xe0000ecd, 0x9b5a: 0xe0000f1f, 0x9b5b: 0xe0000f1c,
-	0x9b5c: 0xe0000f2d, 0x9b5d: 0xe0000f2a, 0x9b5e: 0xe0000f47, 0x9b5f: 0xe0000f44,
-	0x9b60: 0xe0000f33, 0x9b61: 0xe0000f30, 0x9b62: 0xe0000f99, 0x9b63: 0xe0000f96,
-	0x9b64: 0xe0000f8a, 0x9b65: 0xe0000f87, 0x9b66: 0x00303688, 0x9b67: 0x40303620,
-	0x9b68: 0xe000102b, 0x9b69: 0xe0001028, 0x9b6a: 0xe000103f, 0x9b6b: 0xe000103c,
-	0x9b6c: 0xe0000fe7, 0x9b6d: 0xe0000fe4, 0x9b6e: 0xe0000ff9, 0x9b6f: 0xe0000ff6,
-	0x9b70: 0x00306ea3, 0x9b71: 0x40306e21, 0x9b72: 0xe0001039, 0x9b73: 0xe0001036,
-	0x9b74: 0xe00010d8, 0x9b75: 0xe00010d5, 0x9b76: 0xe000110e, 0x9b77: 0xe000110b,
-	0x9b78: 0xe0001117, 0x9b79: 0xe000113b, 0x9b7a: 0xe0001138, 0x9b7b: 0xe000114d,
-	0x9b7c: 0xe000114a, 0x9b7d: 0xe0001147, 0x9b7e: 0xe0001144, 0x9b7f: 0xe0000f64,
-	// Block 0x26e, offset 0x9b80
-	0x9b80: 0x40321220, 0x9b81: 0x40321a20, 0x9b82: 0x40322220, 0x9b83: 0x40322a20,
-	0x9b84: 0xe0000ad5, 0x9b85: 0xe0000ad1, 0x9b86: 0xe0000acd, 0x9b87: 0xf0000a0a,
-	0x9b88: 0xf000040a, 0x9b89: 0xf0000404, 0x9b8a: 0xf0000a0a, 0x9b8b: 0xf000040a,
-	0x9b8c: 0xf0000404, 0x9b8d: 0xe0000947, 0x9b8e: 0xe0000944, 0x9b8f: 0xe0000c3d,
-	0x9b90: 0xe0000c3a, 0x9b91: 0xe0000dcc, 0x9b92: 0xe0000dc9, 0x9b93: 0xe0000ff3,
-	0x9b94: 0xe0000ff0, 0x9b95: 0xe00025a8, 0x9b96: 0xe00025a5, 0x9b97: 0xe0002596,
-	0x9b98: 0xe0002593, 0x9b99: 0xe00025a2, 0x9b9a: 0xe000259f, 0x9b9b: 0xe000259c,
-	0x9b9c: 0xe0002599, 0x9b9d: 0x402cae20, 0x9b9e: 0xe0000962, 0x9b9f: 0xe000095e,
-	0x9ba0: 0xe0000976, 0x9ba1: 0xe0000972, 0x9ba2: 0xe00009f4, 0x9ba3: 0xe00009ef,
-	0x9ba4: 0x002d3a88, 0x9ba5: 0x402d3a20, 0x9ba6: 0xe0000bbe, 0x9ba7: 0xe0000bbb,
-	0x9ba8: 0xe0000c99, 0x9ba9: 0xe0000c96, 0x9baa: 0xe0000e20, 0x9bab: 0xe0000e1d,
-	0x9bac: 0xe0000e27, 0x9bad: 0xe0000e23, 0x9bae: 0xe0001162, 0x9baf: 0xe000115f,
-	0x9bb0: 0xe0000c8d, 0x9bb1: 0xf0000a0a, 0x9bb2: 0xf000040a, 0x9bb3: 0xf0000404,
-	0x9bb4: 0xe0000bac, 0x9bb5: 0xe0000ba9, 0x9bb6: 0x002d7888, 0x9bb7: 0x00319488,
-	0x9bb8: 0xe0000d57, 0x9bb9: 0xe0000d54, 0x9bba: 0xe0000954, 0x9bbb: 0xe0000950,
-	0x9bbc: 0xe00009ea, 0x9bbd: 0xe00009e5, 0x9bbe: 0xe0000e19, 0x9bbf: 0xe0000e15,
-	// Block 0x26f, offset 0x9bc0
-	0x9bc0: 0xe000098f, 0x9bc1: 0xe000098c, 0x9bc2: 0xe0000995, 0x9bc3: 0xe0000992,
-	0x9bc4: 0xe0000b62, 0x9bc5: 0xe0000b5f, 0x9bc6: 0xe0000b68, 0x9bc7: 0xe0000b65,
-	0x9bc8: 0xe0000c6c, 0x9bc9: 0xe0000c69, 0x9bca: 0xe0000c72, 0x9bcb: 0xe0000c6f,
-	0x9bcc: 0xe0000e4a, 0x9bcd: 0xe0000e47, 0x9bce: 0xe0000e50, 0x9bcf: 0xe0000e4d,
-	0x9bd0: 0xe0000ee8, 0x9bd1: 0xe0000ee5, 0x9bd2: 0xe0000eee, 0x9bd3: 0xe0000eeb,
-	0x9bd4: 0xe0001053, 0x9bd5: 0xe0001050, 0x9bd6: 0xe0001059, 0x9bd7: 0xe0001056,
-	0x9bd8: 0xe0000f61, 0x9bd9: 0xe0000f5e, 0x9bda: 0xe0000fa5, 0x9bdb: 0xe0000fa2,
-	0x9bdc: 0x00312288, 0x9bdd: 0x40312220, 0x9bde: 0xe0000bf4, 0x9bdf: 0xe0000bf1,
-	0x9be0: 0x002ebc88, 0x9be1: 0x402c8c20, 0x9be2: 0x002f2288, 0x9be3: 0x402f2220,
-	0x9be4: 0x00314088, 0x9be5: 0x40314020, 0x9be6: 0xe000096f, 0x9be7: 0xe000096c,
-	0x9be8: 0xe0000b32, 0x9be9: 0xe0000b2f, 0x9bea: 0xe0002590, 0x9beb: 0xe000258d,
-	0x9bec: 0xe0000dfd, 0x9bed: 0xe0000df9, 0x9bee: 0xe0000e04, 0x9bef: 0xe0000e01,
-	0x9bf0: 0xe0000e0b, 0x9bf1: 0xe0000e07, 0x9bf2: 0xe0001129, 0x9bf3: 0xe0001126,
-	0x9bf4: 0x402e5e20, 0x9bf5: 0x402ed020, 0x9bf6: 0x40305a20, 0x9bf7: 0x402dd420,
-	0x9bf8: 0xe0000abf, 0x9bf9: 0xe0000ec4, 0x9bfa: 0x002be888, 0x9bfb: 0x002c4488,
-	0x9bfc: 0x402c4420, 0x9bfd: 0x002e3888, 0x9bfe: 0x00303e88, 0x9bff: 0x402ffc20,
-	// Block 0x270, offset 0x9c00
-	0x9c00: 0x00339288, 0x9c01: 0x40339220, 0x9c02: 0x0033a088, 0x9c03: 0x4033a020,
-	0x9c04: 0x0033ee88, 0x9c05: 0x4033ee20, 0x9c06: 0x00341088, 0x9c07: 0x40341020,
-	0x9c08: 0x0034a488, 0x9c09: 0x4034a420, 0x9c0a: 0x0034ec88, 0x9c0b: 0x4034ec20,
-	0x9c0c: 0x00354288, 0x9c0d: 0x40354220, 0x9c0e: 0x00355688, 0x9c0f: 0x40355620,
-	0x9c10: 0x0033f088, 0x9c11: 0x4033f020, 0x9c12: 0x00349688, 0x9c13: 0x40349620,
-	0x9c14: 0x0034a688, 0x9c15: 0x4034a620, 0x9c16: 0x00353888, 0x9c17: 0x40353820,
-	0x9c18: 0x0036cc88, 0x9c19: 0x4036cc20, 0x9c1a: 0x00348288, 0x9c1b: 0x40348220,
-	0x9c1c: 0x00372e88, 0x9c1d: 0x40372e20, 0x9c1e: 0x00348088, 0x9c1f: 0x40348020,
-	0x9c20: 0x00349888, 0x9c21: 0x40349820, 0x9c22: 0x0034da88, 0x9c23: 0x4034da20,
-	0x9c24: 0x00351688, 0x9c25: 0x40351620, 0x9c26: 0x0035dc88, 0x9c27: 0x4035dc20,
-	0x9c31: 0x00384288, 0x9c32: 0x00384488, 0x9c33: 0x00384688,
-	0x9c34: 0x00384888, 0x9c35: 0xc5f02f91, 0x9c36: 0x00384c88, 0x9c37: 0x00384e88,
-	0x9c38: 0x00385088, 0x9c39: 0x00385288, 0x9c3a: 0x00385488, 0x9c3b: 0x00385688,
-	0x9c3c: 0x00385888, 0x9c3d: 0x00385a88, 0x9c3e: 0x00385c88, 0x9c3f: 0x00385e88,
-	// Block 0x271, offset 0x9c40
-	0x9c40: 0x40388020, 0x9c41: 0x40388220, 0x9c42: 0x40388420, 0x9c43: 0x40388620,
-	0x9c44: 0x40388820, 0x9c45: 0x40388a20, 0x9c46: 0x40388c20, 0x9c47: 0x40388a20,
-	0x9c49: 0x40026e20, 0x9c4a: 0x40021c20,
-	0x9c4f: 0x4027e420,
-	0x9c51: 0xadc00000, 0x9c52: 0xae600000, 0x9c53: 0xae600000,
-	0x9c54: 0xae600000, 0x9c55: 0xae600000, 0x9c56: 0xadc00000, 0x9c57: 0xae600000,
-	0x9c58: 0xae600000, 0x9c59: 0xae600000, 0x9c5a: 0xade00000, 0x9c5b: 0xadc00000,
-	0x9c5c: 0xae600000, 0x9c5d: 0xae600000, 0x9c5e: 0xae600000, 0x9c5f: 0xae600000,
-	0x9c60: 0xae600000, 0x9c61: 0xae600000, 0x9c62: 0xadc00000, 0x9c63: 0xadc00000,
-	0x9c64: 0xadc00000, 0x9c65: 0xadc00000, 0x9c66: 0xadc00000, 0x9c67: 0xadc00000,
-	0x9c68: 0xae600000, 0x9c69: 0xae600000, 0x9c6a: 0xadc00000, 0x9c6b: 0xae600000,
-	0x9c6c: 0xae600000, 0x9c6d: 0xade00000, 0x9c6e: 0xae400000, 0x9c6f: 0xae600000,
-	0x9c70: 0xa0a08502, 0x9c71: 0xa0b08602, 0x9c72: 0xa0c08702, 0x9c73: 0xa0d08802,
-	0x9c74: 0xa0e08902, 0x9c75: 0xa0f08a02, 0x9c76: 0xa1008b02, 0x9c77: 0xa1108c02,
-	0x9c78: 0xa1208d02, 0x9c79: 0xa1308e02, 0x9c7a: 0xa1308e02, 0x9c7b: 0xa1408f02,
-	0x9c7c: 0xa1509202, 0x9c7d: 0xa1600000, 0x9c7e: 0x40055420, 0x9c7f: 0xa1709502,
-	// Block 0x272, offset 0x9c80
-	0x9c80: 0xa0000000, 0x9c81: 0xa0000000, 0x9c82: 0xa0000000, 0x9c83: 0xa0000000,
-	0x9c84: 0xa0000000, 0x9c85: 0xa0000000, 0x9c86: 0xa0000000, 0x9c87: 0xa0000000,
-	0x9c88: 0xa0000000, 0x9c89: 0x40020020, 0x9c8a: 0x40020220, 0x9c8b: 0x40020420,
-	0x9c8c: 0x40020620, 0x9c8d: 0x40020820, 0x9c8e: 0xa0000000, 0x9c8f: 0xa0000000,
-	0x9c90: 0xa0000000, 0x9c91: 0xa0000000, 0x9c92: 0xa0000000, 0x9c93: 0xa0000000,
-	0x9c94: 0xa0000000, 0x9c95: 0xa0000000, 0x9c96: 0xa0000000, 0x9c97: 0xa0000000,
-	0x9c98: 0xa0000000, 0x9c99: 0xa0000000, 0x9c9a: 0xa0000000, 0x9c9b: 0xa0000000,
-	0x9c9c: 0xa0000000, 0x9c9d: 0xa0000000, 0x9c9e: 0xa0000000, 0x9c9f: 0xa0000000,
-	0x9ca0: 0x40021220, 0x9ca1: 0x4002ba20, 0x9ca2: 0x4003e020, 0x9ca3: 0x4004ea20,
-	0x9ca4: 0x4027de20, 0x9ca5: 0x4004ec20, 0x9ca6: 0x4004e620, 0x9ca7: 0x4003d220,
-	0x9ca8: 0x4003f420, 0x9ca9: 0x4003f620, 0x9caa: 0x4004d820, 0x9cab: 0x40093820,
-	0x9cac: 0x40024020, 0x9cad: 0x40021a20, 0x9cae: 0x4002e420, 0x9caf: 0x4004e220,
-	0x9cb0: 0x4029cc20, 0x9cb1: 0x4029ce20, 0x9cb2: 0x4029d020, 0x9cb3: 0x4029d220,
-	0x9cb4: 0x4029d420, 0x9cb5: 0x4029d620, 0x9cb6: 0x4029d820, 0x9cb7: 0x4029da20,
-	0x9cb8: 0x4029dc20, 0x9cb9: 0x4029de20, 0x9cba: 0x40026c20, 0x9cbb: 0x40026220,
-	0x9cbc: 0x40094020, 0x9cbd: 0x40094220, 0x9cbe: 0x40094420, 0x9cbf: 0x4002c420,
-	// Block 0x273, offset 0x9cc0
-	0x9cc0: 0x4004d620, 0x9cc1: 0x002bde88, 0x9cc2: 0x002c0a88, 0x9cc3: 0xc5f409c2,
-	0x9cc4: 0x002c6288, 0x9cc5: 0x002c9888, 0x9cc6: 0x002d0888, 0x9cc7: 0xc5fb2fe6,
-	0x9cc8: 0x002d6888, 0x9cc9: 0xc6043041, 0x9cca: 0x002dcc88, 0x9ccb: 0xc6093084,
-	0x9ccc: 0xc0030002, 0x9ccd: 0x002e8288, 0x9cce: 0xc6123105, 0x9ccf: 0xc33f3041,
-	0x9cd0: 0x002f2c88, 0x9cd1: 0x002f5688, 0x9cd2: 0x002f7a88, 0x9cd3: 0xc57509c2,
-	0x9cd4: 0x00302c88, 0x9cd5: 0xc3473041, 0x9cd6: 0x0030be88, 0x9cd7: 0x0030e288,
-	0x9cd8: 0x0030f688, 0x9cd9: 0x00310088, 0x9cda: 0x00312a88, 0x9cdb: 0x4003f820,
-	0x9cdc: 0x4004e420, 0x9cdd: 0x4003fa20, 0x9cde: 0x40062420, 0x9cdf: 0x40021620,
-	0x9ce0: 0x40061e20, 0x9ce1: 0x402bde20, 0x9ce2: 0x402c0a20, 0x9ce3: 0xc5f209b1,
-	0x9ce4: 0x402c6220, 0x9ce5: 0x402c9820, 0x9ce6: 0x402d0820, 0x9ce7: 0xc5f72fb3,
-	0x9ce8: 0x402d6820, 0x9ce9: 0xc6023041, 0x9cea: 0x402dcc20, 0x9ceb: 0xc6063062,
-	0x9cec: 0xc0000002, 0x9ced: 0x402e8220, 0x9cee: 0xc60e30c3, 0x9cef: 0xc33d3041,
-	0x9cf0: 0x402f2c20, 0x9cf1: 0x402f5620, 0x9cf2: 0x402f7a20, 0x9cf3: 0xc34109b1,
-	0x9cf4: 0x40302c20, 0x9cf5: 0xc3453041, 0x9cf6: 0x4030be20, 0x9cf7: 0x4030e220,
-	0x9cf8: 0x4030f620, 0x9cf9: 0x40310020, 0x9cfa: 0x40312a20, 0x9cfb: 0x4003fc20,
-	0x9cfc: 0x40094820, 0x9cfd: 0x4003fe20, 0x9cfe: 0x40094c20, 0x9cff: 0xa0000000,
-	// Block 0x274, offset 0x9d00
-	0x9d00: 0xe0000d24, 0x9d01: 0xe0000d21, 0x9d02: 0xe0000d2a, 0x9d03: 0xe0000d27,
-	0x9d04: 0x002ea083, 0x9d05: 0x402ea020, 0x9d06: 0xe0000d7b, 0x9d07: 0xe0000d78,
-	0x9d08: 0xe0000d87, 0x9d09: 0xe0000d84, 0x9d0a: 0xe0000d81, 0x9d0b: 0xe0000d7e,
-	0x9d0c: 0xe0000ded, 0x9d0d: 0xe0000de9, 0x9d0e: 0xe0000df5, 0x9d0f: 0xe0000df1,
-	0x9d10: 0xe0000e3d, 0x9d11: 0xe0000e39, 0x9d12: 0xe0000e35, 0x9d13: 0xe0000e31,
-	0x9d14: 0xe0000ea7, 0x9d15: 0xe0000ea4, 0x9d16: 0xe0000ead, 0x9d17: 0xe0000eaa,
-	0x9d18: 0xe0000ed6, 0x9d19: 0xe0000ed3, 0x9d1a: 0xe0000ef4, 0x9d1b: 0xe0000ef1,
-	0x9d1c: 0xe0000efb, 0x9d1d: 0xe0000ef7, 0x9d1e: 0xe0000f02, 0x9d1f: 0xe0000eff,
-	0x9d20: 0xe0000f41, 0x9d21: 0xe0000f3e, 0x9d22: 0xe0000f53, 0x9d23: 0xe0000f50,
-	0x9d24: 0xe0000f26, 0x9d25: 0xe0000f22, 0x9d26: 0xe0000f3a, 0x9d27: 0xe0000f36,
-	0x9d28: 0xe0000f5a, 0x9d29: 0xe0000f56, 0x9d2a: 0xe0000f93, 0x9d2b: 0xe0000f90,
-	0x9d2c: 0xe0000f9f, 0x9d2d: 0xe0000f9c, 0x9d2e: 0xe0000fb1, 0x9d2f: 0xe0000fae,
-	0x9d30: 0xe0000fab, 0x9d31: 0xe0000fa8, 0x9d32: 0xe0001093, 0x9d33: 0xe0001090,
-	0x9d34: 0xe000109f, 0x9d35: 0xe000109c, 0x9d36: 0xe0001099, 0x9d37: 0xe0001096,
-	0x9d38: 0xe0001032, 0x9d39: 0xe000102e, 0x9d3a: 0xe0001046, 0x9d3b: 0xe0001042,
-	0x9d3c: 0xe00010a9, 0x9d3d: 0xe00010a6, 0x9d3e: 0xe00010af, 0x9d3f: 0xe00010ac,
-	// Block 0x275, offset 0x9d40
-	0x9d40: 0xe0000b03, 0x9d41: 0xe0000aff, 0x9d42: 0xe0000b13, 0x9d43: 0xe0000b0f,
-	0x9d44: 0xe0000b0b, 0x9d45: 0xe0000b07, 0x9d46: 0xe0000b75, 0x9d47: 0xe0000b71,
-	0x9d48: 0xe0000c66, 0x9d49: 0xe0000c63, 0x9d4a: 0x002d9c83, 0x9d4b: 0x402d9c20,
-	0x9d4c: 0x002ee483, 0x9d4d: 0x402ee420, 0x9d4e: 0xe0000e44, 0x9d4f: 0xe0000e41,
-	0x9d50: 0xe0000dad, 0x9d51: 0xe0000da9, 0x9d52: 0xe0000db5, 0x9d53: 0xe0000db1,
-	0x9d54: 0xe0000dc5, 0x9d55: 0xe0000dc1, 0x9d56: 0xe0000dbd, 0x9d57: 0xe0000db9,
-	0x9d58: 0xe000375b, 0x9d59: 0xe0003758, 0x9d5a: 0xe0000e5d, 0x9d5b: 0xe0000e59,
-	0x9d5c: 0xe0000e65, 0x9d5d: 0xe0000e61, 0x9d5e: 0xe0000e75, 0x9d5f: 0xe0000e71,
-	0x9d60: 0xe0000e6d, 0x9d61: 0xe0000e69, 0x9d62: 0xe0003761, 0x9d63: 0xe000375e,
-	0x9d64: 0x00306e83, 0x9d65: 0x40306e20, 0x9d66: 0xe000104d, 0x9d67: 0xe000104a,
-	0x9d68: 0xe0001066, 0x9d69: 0xe0001062, 0x9d6a: 0xe000106e, 0x9d6b: 0xe000106a,
-	0x9d6c: 0xe000107e, 0x9d6d: 0xe000107a, 0x9d6e: 0xe0001076, 0x9d6f: 0xe0001072,
-	0x9d70: 0xe0003767, 0x9d71: 0xe0003764, 0x9d72: 0xe0001108, 0x9d73: 0xe0001105,
-	0x9d74: 0xe0001135, 0x9d75: 0xe0001132, 0x9d76: 0xe000112f, 0x9d77: 0xe000112c,
-	0x9d78: 0xe000111d, 0x9d79: 0xe000111a, 0x9d7a: 0xe0000d0a, 0x9d7b: 0xe0000d07,
-	0x9d7c: 0x0030d888, 0x9d7d: 0x4030d820, 0x9d7e: 0x00312088, 0x9d7f: 0x40312020,
-	// Block 0x276, offset 0x9d80
-	0x9d80: 0xa0000000, 0x9d81: 0xa0000000, 0x9d82: 0xa0000000, 0x9d83: 0xa0000000,
-	0x9d84: 0xa0000000, 0x9d85: 0xa0000000, 0x9d86: 0xa0000000, 0x9d87: 0xa0000000,
-	0x9d88: 0xa0000000, 0x9d89: 0x40020020, 0x9d8a: 0x40020220, 0x9d8b: 0x40020420,
-	0x9d8c: 0x40020620, 0x9d8d: 0x40020820, 0x9d8e: 0xa0000000, 0x9d8f: 0xa0000000,
-	0x9d90: 0xa0000000, 0x9d91: 0xa0000000, 0x9d92: 0xa0000000, 0x9d93: 0xa0000000,
-	0x9d94: 0xa0000000, 0x9d95: 0xa0000000, 0x9d96: 0xa0000000, 0x9d97: 0xa0000000,
-	0x9d98: 0xa0000000, 0x9d99: 0xa0000000, 0x9d9a: 0xa0000000, 0x9d9b: 0xa0000000,
-	0x9d9c: 0xa0000000, 0x9d9d: 0xa0000000, 0x9d9e: 0xa0000000, 0x9d9f: 0xa0000000,
-	0x9da0: 0x40021220, 0x9da1: 0x4002ba20, 0x9da2: 0x4003e020, 0x9da3: 0x4004ea20,
-	0x9da4: 0x4027de20, 0x9da5: 0x4004ec20, 0x9da6: 0x4004e620, 0x9da7: 0x4003d220,
-	0x9da8: 0x4003f420, 0x9da9: 0x4003f620, 0x9daa: 0x4004d820, 0x9dab: 0x40093820,
-	0x9dac: 0x40024020, 0x9dad: 0x40021a20, 0x9dae: 0x4002e420, 0x9daf: 0x4004e220,
-	0x9db0: 0x4029cc20, 0x9db1: 0x4029ce20, 0x9db2: 0x4029d020, 0x9db3: 0x4029d220,
-	0x9db4: 0x4029d420, 0x9db5: 0x4029d620, 0x9db6: 0x4029d820, 0x9db7: 0x4029da20,
-	0x9db8: 0x4029dc20, 0x9db9: 0x4029de20, 0x9dba: 0x40026c20, 0x9dbb: 0x40026220,
-	0x9dbc: 0x40094020, 0x9dbd: 0x40094220, 0x9dbe: 0x40094420, 0x9dbf: 0x4002c420,
-	// Block 0x277, offset 0x9dc0
-	0x9dc0: 0x4004d620, 0x9dc1: 0xc61c3161, 0x9dc2: 0x002c0a88, 0x9dc3: 0x002c3a88,
-	0x9dc4: 0x002c6288, 0x9dc5: 0xc62231a1, 0x9dc6: 0x002d0888, 0x9dc7: 0x002d2288,
-	0x9dc8: 0x002d6888, 0x9dc9: 0xc62631a1, 0x9dca: 0x002dcc88, 0x9dcb: 0x002dfe88,
-	0x9dcc: 0xc0030002, 0x9dcd: 0x002e8288, 0x9dce: 0x002e9e88, 0x9dcf: 0xc62b31c1,
-	0x9dd0: 0x002f2c88, 0x9dd1: 0x002f5688, 0x9dd2: 0x002f7a88, 0x9dd3: 0x002fe688,
-	0x9dd4: 0x00302c88, 0x9dd5: 0xc63031a1, 0x9dd6: 0x0030be88, 0x9dd7: 0x0030e288,
-	0x9dd8: 0x0030f688, 0x9dd9: 0xc63431a1, 0x9dda: 0x00312a88, 0x9ddb: 0x4003f820,
-	0x9ddc: 0x4004e420, 0x9ddd: 0x4003fa20, 0x9dde: 0x40062420, 0x9ddf: 0x40021620,
-	0x9de0: 0x40061e20, 0x9de1: 0xc6183161, 0x9de2: 0x402c0a20, 0x9de3: 0x402c3a20,
-	0x9de4: 0x402c6220, 0x9de5: 0xc62031a1, 0x9de6: 0x402d0820, 0x9de7: 0x402d2220,
-	0x9de8: 0x402d6820, 0x9de9: 0xc62431a1, 0x9dea: 0x402dcc20, 0x9deb: 0x402dfe20,
-	0x9dec: 0xc0000002, 0x9ded: 0x402e8220, 0x9dee: 0x402e9e20, 0x9def: 0xc62831c1,
-	0x9df0: 0x402f2c20, 0x9df1: 0x402f5620, 0x9df2: 0x402f7a20, 0x9df3: 0x402fe620,
-	0x9df4: 0x40302c20, 0x9df5: 0xc62e31a1, 0x9df6: 0x4030be20, 0x9df7: 0x4030e220,
-	0x9df8: 0x4030f620, 0x9df9: 0xc63231a1, 0x9dfa: 0x40312a20, 0x9dfb: 0x4003fc20,
-	0x9dfc: 0x40094820, 0x9dfd: 0x4003fe20, 0x9dfe: 0x40094c20, 0x9dff: 0xa0000000,
-	// Block 0x278, offset 0x9e00
-	0x9e00: 0xe00008f5, 0x9e01: 0x002c0883, 0x9e02: 0xe0000921, 0x9e03: 0xe0000969,
-	0x9e04: 0x00320ca3, 0x9e05: 0x00321083, 0x9e06: 0x00320c83, 0x9e07: 0xe0000a53,
-	0x9e08: 0xe0000ae8, 0x9e09: 0x002d0683, 0x9e0a: 0xe0000af4, 0x9e0b: 0xe0000b20,
-	0x9e0c: 0xe0000c2b, 0x9e0d: 0x002dca83, 0x9e0e: 0xe0000c37, 0x9e0f: 0xe0000c43,
-	0x9e10: 0x002c6483, 0x9e11: 0xe0000d63, 0x9e12: 0xe0000d9a, 0x9e13: 0x002f2a83,
-	0x9e14: 0xe0000da6, 0x9e15: 0xe0000de6, 0x9e16: 0x00320e83, 0x9e17: 0x40093e20,
-	0x9e18: 0x00320ea3, 0x9e19: 0xe0000fe1, 0x9e1a: 0x0030bc83, 0x9e1b: 0xe0000fed,
-	0x9e1c: 0xe0000fff, 0x9e1d: 0x00312883, 0x9e1e: 0x00318888, 0x9e1f: 0xe0000f7b,
-	0x9e20: 0xe00008f2, 0x9e21: 0x402c0820, 0x9e22: 0xe000091e, 0x9e23: 0xe0000966,
-	0x9e24: 0x40320c21, 0x9e25: 0x40321020, 0x9e26: 0x40320c20, 0x9e27: 0xe0000a4d,
-	0x9e28: 0xe0000ae5, 0x9e29: 0x402d0620, 0x9e2a: 0xe0000af1, 0x9e2b: 0xe0000b1d,
-	0x9e2c: 0xe0000c28, 0x9e2d: 0x402dca20, 0x9e2e: 0xe0000c34, 0x9e2f: 0xe0000c40,
-	0x9e30: 0x402c6420, 0x9e31: 0xe0000d60, 0x9e32: 0xe0000d97, 0x9e33: 0x402f2a20,
-	0x9e34: 0xe0000da3, 0x9e35: 0xe0000de3, 0x9e36: 0x40320e20, 0x9e37: 0x40093c20,
-	0x9e38: 0x40320e21, 0x9e39: 0xe0000fde, 0x9e3a: 0x4030bc20, 0x9e3b: 0xe0000fea,
-	0x9e3c: 0xe0000ffc, 0x9e3d: 0x40312820, 0x9e3e: 0x40318820, 0x9e3f: 0xe0001114,
-	// Block 0x279, offset 0x9e40
-	0x9e40: 0xe0000983, 0x9e41: 0xe0000980, 0x9e42: 0xe00008fb, 0x9e43: 0xe00008f8,
-	0x9e44: 0xe000097d, 0x9e45: 0xe000097a, 0x9e46: 0xe0000a38, 0x9e47: 0xe0000a35,
-	0x9e48: 0xe0000a3e, 0x9e49: 0xe0000a3b, 0x9e4a: 0xe0000a4a, 0x9e4b: 0xe0000a47,
-	0x9e4c: 0xe0000a44, 0x9e4d: 0xe0000a41, 0x9e4e: 0xe0000a86, 0x9e4f: 0xe0000a83,
-	0x9e50: 0x002c62a3, 0x9e51: 0x402c6221, 0x9e52: 0xe0000b46, 0x9e53: 0xe0000b43,
-	0x9e54: 0xe0000aee, 0x9e55: 0xe0000aeb, 0x9e56: 0xe0000b2c, 0x9e57: 0xe0000b29,
-	0x9e58: 0xe0000b40, 0x9e59: 0xe0000b3d, 0x9e5a: 0xe0000b1a, 0x9e5b: 0xe0000b17,
-	0x9e5c: 0xe0000bb8, 0x9e5d: 0xe0000bb5, 0x9e5e: 0xe0000bb2, 0x9e5f: 0xe0000baf,
-	0x9e60: 0xe0000bc4, 0x9e61: 0xe0000bc1, 0x9e62: 0xe0000bca, 0x9e63: 0xe0000bc7,
-	0x9e64: 0xe0000bee, 0x9e65: 0xe0000beb, 0x9e66: 0xe0000c1b, 0x9e67: 0xe0000c18,
-	0x9e68: 0xe0000c51, 0x9e69: 0xe0000c4e, 0x9e6a: 0xe0000c60, 0x9e6b: 0xe0000c5d,
-	0x9e6c: 0xe0000c31, 0x9e6d: 0xe0000c2e, 0x9e6e: 0xe0000c5a, 0x9e6f: 0xe0000c57,
-	0x9e70: 0xe0000c54, 0x9e71: 0x402da220, 0x9e72: 0xf0000a0a, 0x9e73: 0xf0000404,
-	0x9e74: 0xe0000c8a, 0x9e75: 0xe0000c87, 0x9e76: 0xe0000c9f, 0x9e77: 0xe0000c9c,
-	0x9e78: 0x402f7220, 0x9e79: 0xe0000ccc, 0x9e7a: 0xe0000cc9, 0x9e7b: 0xe0000cd8,
-	0x9e7c: 0xe0000cd5, 0x9e7d: 0xe0000cd2, 0x9e7e: 0xe0000ccf, 0x9e7f: 0xe0000d04,
-	// Block 0x27a, offset 0x9e80
-	0x9e80: 0x40321220, 0x9e81: 0x40321a20, 0x9e82: 0x40322220, 0x9e83: 0x40322a20,
-	0x9e84: 0xe0000ad5, 0x9e85: 0xe0000ad1, 0x9e86: 0xe0000acd, 0x9e87: 0xf0000a0a,
-	0x9e88: 0xf000040a, 0x9e89: 0xf0000404, 0x9e8a: 0xf0000a0a, 0x9e8b: 0xf000040a,
-	0x9e8c: 0xf0000404, 0x9e8d: 0xe0000947, 0x9e8e: 0xe0000944, 0x9e8f: 0xe0000c3d,
-	0x9e90: 0xe0000c3a, 0x9e91: 0xe0000dcc, 0x9e92: 0xe0000dc9, 0x9e93: 0xe0000ff3,
-	0x9e94: 0xe0000ff0, 0x9e95: 0xe000101e, 0x9e96: 0xe000101a, 0x9e97: 0xe00037a3,
-	0x9e98: 0xe00037a0, 0x9e99: 0xe0001016, 0x9e9a: 0xe0001012, 0x9e9b: 0xe000100e,
-	0x9e9c: 0xe000100a, 0x9e9d: 0x402cae20, 0x9e9e: 0xe00025f6, 0x9e9f: 0xe00025f3,
-	0x9ea0: 0xe0000976, 0x9ea1: 0xe0000972, 0x9ea2: 0xe00025f0, 0x9ea3: 0xe00025ed,
-	0x9ea4: 0x002d3a88, 0x9ea5: 0x402d3a20, 0x9ea6: 0xe0000bbe, 0x9ea7: 0xe0000bbb,
-	0x9ea8: 0xe0000c99, 0x9ea9: 0xe0000c96, 0x9eaa: 0xe0000e20, 0x9eab: 0xe0000e1d,
-	0x9eac: 0xe0000e27, 0x9ead: 0xe0000e23, 0x9eae: 0xe0001162, 0x9eaf: 0xe000115f,
-	0x9eb0: 0xe0000c8d, 0x9eb1: 0xf0000a0a, 0x9eb2: 0xf000040a, 0x9eb3: 0xf0000404,
-	0x9eb4: 0xe0000bac, 0x9eb5: 0xe0000ba9, 0x9eb6: 0x002d7888, 0x9eb7: 0x00319488,
-	0x9eb8: 0xe0000d57, 0x9eb9: 0xe0000d54, 0x9eba: 0xe000260e, 0x9ebb: 0xe000260b,
-	0x9ebc: 0xe00025ea, 0x9ebd: 0xe00025e7, 0x9ebe: 0xe00032e3, 0x9ebf: 0xe00032e0,
-	// Block 0x27b, offset 0x9ec0
-	0x9ec0: 0xe000098f, 0x9ec1: 0xe000098c, 0x9ec2: 0xe0000995, 0x9ec3: 0xe0000992,
-	0x9ec4: 0xe0000b62, 0x9ec5: 0xe0000b5f, 0x9ec6: 0xe0000b68, 0x9ec7: 0xe0000b65,
-	0x9ec8: 0xe0000c6c, 0x9ec9: 0xe0000c69, 0x9eca: 0xe0000c72, 0x9ecb: 0xe0000c6f,
-	0x9ecc: 0xe0000e4a, 0x9ecd: 0xe0000e47, 0x9ece: 0xe0000e50, 0x9ecf: 0xe0000e4d,
-	0x9ed0: 0xe0000ee8, 0x9ed1: 0xe0000ee5, 0x9ed2: 0xe0000eee, 0x9ed3: 0xe0000eeb,
-	0x9ed4: 0xe0001053, 0x9ed5: 0xe0001050, 0x9ed6: 0xe0001059, 0x9ed7: 0xe0001056,
-	0x9ed8: 0xe0000f61, 0x9ed9: 0xe0000f5e, 0x9eda: 0xe0000fa5, 0x9edb: 0xe0000fa2,
-	0x9edc: 0x00312288, 0x9edd: 0x40312220, 0x9ede: 0xe0000bf4, 0x9edf: 0xe0000bf1,
-	0x9ee0: 0x002ebc88, 0x9ee1: 0x402c8c20, 0x9ee2: 0x002f2288, 0x9ee3: 0x402f2220,
-	0x9ee4: 0x00314088, 0x9ee5: 0x40314020, 0x9ee6: 0xe000096f, 0x9ee7: 0xe000096c,
-	0x9ee8: 0xe0000b32, 0x9ee9: 0xe0000b2f, 0x9eea: 0xe00032dd, 0x9eeb: 0xe00032da,
-	0x9eec: 0xe0000dfd, 0x9eed: 0xe0000df9, 0x9eee: 0xe0000e04, 0x9eef: 0xe0000e01,
-	0x9ef0: 0xe0000e0b, 0x9ef1: 0xe0000e07, 0x9ef2: 0xe0001129, 0x9ef3: 0xe0001126,
-	0x9ef4: 0x402e5e20, 0x9ef5: 0x402ed020, 0x9ef6: 0x40305a20, 0x9ef7: 0x402dd420,
-	0x9ef8: 0xe0000abf, 0x9ef9: 0xe0000ec4, 0x9efa: 0x002be888, 0x9efb: 0x002c4488,
-	0x9efc: 0x402c4420, 0x9efd: 0x002e3888, 0x9efe: 0x00303e88, 0x9eff: 0x402ffc20,
-	// Block 0x27c, offset 0x9f00
-	0x9f00: 0xe00009b1, 0x9f01: 0xe00009ae, 0x9f02: 0xe0000a22, 0x9f03: 0xe0000a1f,
-	0x9f04: 0xe0000a28, 0x9f05: 0xe0000a25, 0x9f06: 0xe0000a2e, 0x9f07: 0xe0000a2b,
-	0x9f08: 0xe0000a5a, 0x9f09: 0xe0000a56, 0x9f0a: 0xe0000a8c, 0x9f0b: 0xe0000a89,
-	0x9f0c: 0xe0000a98, 0x9f0d: 0xe0000a95, 0x9f0e: 0xe0000aa4, 0x9f0f: 0xe0000aa1,
-	0x9f10: 0xe0000a92, 0x9f11: 0xe0000a8f, 0x9f12: 0xe0000a9e, 0x9f13: 0xe0000a9b,
-	0x9f14: 0xe0000b55, 0x9f15: 0xe0000b51, 0x9f16: 0xe000377f, 0x9f17: 0xe000377c,
-	0x9f18: 0xe0000b7c, 0x9f19: 0xe0000b79, 0x9f1a: 0xe0000b82, 0x9f1b: 0xe0000b7f,
-	0x9f1c: 0xe0000b39, 0x9f1d: 0xe0000b35, 0x9f1e: 0xe0000b8c, 0x9f1f: 0xe0000b89,
-	0x9f20: 0xe0000bd0, 0x9f21: 0xe0000bcd, 0x9f22: 0xe0000c00, 0x9f23: 0xe0000bfd,
-	0x9f24: 0xe0000c0c, 0x9f25: 0xe0000c09, 0x9f26: 0xe0000bfa, 0x9f27: 0xe0000bf7,
-	0x9f28: 0xe0000c06, 0x9f29: 0xe0000c03, 0x9f2a: 0xe0000c12, 0x9f2b: 0xe0000c0f,
-	0x9f2c: 0xe0000c7e, 0x9f2d: 0xe0000c7b, 0x9f2e: 0xe0003785, 0x9f2f: 0xe0003782,
-	0x9f30: 0xe0000c93, 0x9f31: 0xe0000c90, 0x9f32: 0xe0000cab, 0x9f33: 0xe0000ca8,
-	0x9f34: 0xe0000cb1, 0x9f35: 0xe0000cae, 0x9f36: 0xe0000cde, 0x9f37: 0xe0000cdb,
-	0x9f38: 0xe0000ce5, 0x9f39: 0xe0000ce1, 0x9f3a: 0xe0000cf2, 0x9f3b: 0xe0000cef,
-	0x9f3c: 0xe0000cec, 0x9f3d: 0xe0000ce9, 0x9f3e: 0xe0000d1e, 0x9f3f: 0xe0000d1b,
-	// Block 0x27d, offset 0x9f40
-	0x9f40: 0xe0000d24, 0x9f41: 0xe0000d21, 0x9f42: 0xe0000d2a, 0x9f43: 0xe0000d27,
-	0x9f44: 0xe0000d69, 0x9f45: 0xe0000d66, 0x9f46: 0xe0000d7b, 0x9f47: 0xe0000d78,
-	0x9f48: 0xe0000d87, 0x9f49: 0xe0000d84, 0x9f4a: 0xe0000d81, 0x9f4b: 0xe0000d7e,
-	0x9f4c: 0xe0003791, 0x9f4d: 0xe000378e, 0x9f4e: 0xe00037b5, 0x9f4f: 0xe00037b2,
-	0x9f50: 0xe0000e3d, 0x9f51: 0xe0000e39, 0x9f52: 0xe0003797, 0x9f53: 0xe0003794,
-	0x9f54: 0xe0000ea7, 0x9f55: 0xe0000ea4, 0x9f56: 0xe0000ead, 0x9f57: 0xe0000eaa,
-	0x9f58: 0xe0000ed6, 0x9f59: 0xe0000ed3, 0x9f5a: 0xe0000ef4, 0x9f5b: 0xe0000ef1,
-	0x9f5c: 0xe0000efb, 0x9f5d: 0xe0000ef7, 0x9f5e: 0xe0000f02, 0x9f5f: 0xe0000eff,
-	0x9f60: 0xe0000f41, 0x9f61: 0xe0000f3e, 0x9f62: 0xe0000f53, 0x9f63: 0xe0000f50,
-	0x9f64: 0xe0000f26, 0x9f65: 0xe0000f22, 0x9f66: 0xe0000f3a, 0x9f67: 0xe0000f36,
-	0x9f68: 0xe0000f5a, 0x9f69: 0xe0000f56, 0x9f6a: 0xe0000f93, 0x9f6b: 0xe0000f90,
-	0x9f6c: 0xe0000f9f, 0x9f6d: 0xe0000f9c, 0x9f6e: 0xe0000fb1, 0x9f6f: 0xe0000fae,
-	0x9f70: 0xe0000fab, 0x9f71: 0xe0000fa8, 0x9f72: 0xe0001093, 0x9f73: 0xe0001090,
-	0x9f74: 0xe000109f, 0x9f75: 0xe000109c, 0x9f76: 0xe0001099, 0x9f77: 0xe0001096,
-	0x9f78: 0xe00037a9, 0x9f79: 0xe00037a6, 0x9f7a: 0xe0001046, 0x9f7b: 0xe0001042,
-	0x9f7c: 0xe00010a9, 0x9f7d: 0xe00010a6, 0x9f7e: 0xe00010af, 0x9f7f: 0xe00010ac,
-	// Block 0x27e, offset 0x9f80
-	0x9f80: 0xe00010d2, 0x9f81: 0xe00010cf, 0x9f82: 0xe00010cc, 0x9f83: 0xe00010c9,
-	0x9f84: 0xe00010e1, 0x9f85: 0xe00010de, 0x9f86: 0xe00010e7, 0x9f87: 0xe00010e4,
-	0x9f88: 0xe00010ed, 0x9f89: 0xe00010ea, 0x9f8a: 0xe00010fc, 0x9f8b: 0xe00010f9,
-	0x9f8c: 0xe00010f6, 0x9f8d: 0xe00010f3, 0x9f8e: 0xe0001123, 0x9f8f: 0xe0001120,
-	0x9f90: 0xe0001141, 0x9f91: 0xe000113e, 0x9f92: 0xe0001153, 0x9f93: 0xe0001150,
-	0x9f94: 0xe0001159, 0x9f95: 0xe0001156, 0x9f96: 0xe0000c15, 0x9f97: 0xe0000f8d,
-	0x9f98: 0xe00010db, 0x9f99: 0xe0001111, 0x9f9a: 0xf0000404, 0x9f9b: 0xe0000f70,
-	0x9f9c: 0x40300420, 0x9f9d: 0x40300620, 0x9f9e: 0xe0000f7f, 0x9f9f: 0x402c9620,
-	0x9fa0: 0xe000099b, 0x9fa1: 0xe0000998, 0x9fa2: 0xe0000989, 0x9fa3: 0xe0000986,
-	0x9fa4: 0xe0003773, 0x9fa5: 0xe0003770, 0x9fa6: 0xe0000930, 0x9fa7: 0xe000092c,
-	0x9fa8: 0xe0000940, 0x9fa9: 0xe000093c, 0x9faa: 0xe0000938, 0x9fab: 0xe0000934,
-	0x9fac: 0xe00009aa, 0x9fad: 0xe00009a6, 0x9fae: 0xe000376d, 0x9faf: 0xe000376a,
-	0x9fb0: 0xe000090a, 0x9fb1: 0xe0000906, 0x9fb2: 0xe000091a, 0x9fb3: 0xe0000916,
-	0x9fb4: 0xe0000912, 0x9fb5: 0xe000090e, 0x9fb6: 0xe00009a2, 0x9fb7: 0xe000099e,
-	0x9fb8: 0xe0000b6e, 0x9fb9: 0xe0000b6b, 0x9fba: 0xe0000b5c, 0x9fbb: 0xe0000b59,
-	0x9fbc: 0xe0000b26, 0x9fbd: 0xe0000b23, 0x9fbe: 0xe0003779, 0x9fbf: 0xe0003776,
-	// Block 0x27f, offset 0x9fc0
-	0x9fc0: 0xe0000b03, 0x9fc1: 0xe0000aff, 0x9fc2: 0xe0000b13, 0x9fc3: 0xe0000b0f,
-	0x9fc4: 0xe0000b0b, 0x9fc5: 0xe0000b07, 0x9fc6: 0xe0000b75, 0x9fc7: 0xe0000b71,
-	0x9fc8: 0xe0000c66, 0x9fc9: 0xe0000c63, 0x9fca: 0xe0000c78, 0x9fcb: 0xe0000c75,
-	0x9fcc: 0xe0000e84, 0x9fcd: 0xe0000e81, 0x9fce: 0xe0000e44, 0x9fcf: 0xe0000e41,
-	0x9fd0: 0xe000378b, 0x9fd1: 0xe0003788, 0x9fd2: 0xe0000db5, 0x9fd3: 0xe0000db1,
-	0x9fd4: 0xe0000dc5, 0x9fd5: 0xe0000dc1, 0x9fd6: 0xe0000dbd, 0x9fd7: 0xe0000db9,
-	0x9fd8: 0xe0000e8b, 0x9fd9: 0xe0000e87, 0x9fda: 0xe000379d, 0x9fdb: 0xe000379a,
-	0x9fdc: 0xe0000e65, 0x9fdd: 0xe0000e61, 0x9fde: 0xe0000e75, 0x9fdf: 0xe0000e71,
-	0x9fe0: 0xe0000e6d, 0x9fe1: 0xe0000e69, 0x9fe2: 0xe0000e7d, 0x9fe3: 0xe0000e79,
-	0x9fe4: 0xe000108d, 0x9fe5: 0xe000108a, 0x9fe6: 0xe000104d, 0x9fe7: 0xe000104a,
-	0x9fe8: 0xe00037af, 0x9fe9: 0xe00037ac, 0x9fea: 0xe000106e, 0x9feb: 0xe000106a,
-	0x9fec: 0xe000107e, 0x9fed: 0xe000107a, 0x9fee: 0xe0001076, 0x9fef: 0xe0001072,
-	0x9ff0: 0xe0001086, 0x9ff1: 0xe0001082, 0x9ff2: 0xe0001108, 0x9ff3: 0xe0001105,
-	0x9ff4: 0xe0001135, 0x9ff5: 0xe0001132, 0x9ff6: 0xe000112f, 0x9ff7: 0xe000112c,
-	0x9ff8: 0xe000111d, 0x9ff9: 0xe000111a, 0x9ffa: 0xe0000d0a, 0x9ffb: 0xe0000d07,
-	0x9ffc: 0x0030d888, 0x9ffd: 0x4030d820, 0x9ffe: 0x00312088, 0x9fff: 0x40312020,
-	// Block 0x280, offset 0xa000
-	0xa000: 0x40021220, 0xa001: 0x40025c20, 0xa002: 0x40030420, 0xa003: 0x40051220,
-	0xa004: 0x40279a20, 0xa005: 0x4027ca20, 0xa006: 0xe0002206, 0xa007: 0xe00001d3,
-	0xa008: 0x40049c20, 0xa009: 0x40049e20, 0xa00a: 0x4004a020, 0xa00b: 0x4004a220,
-	0xa00c: 0x4004a420, 0xa00d: 0x4004a620, 0xa00e: 0x4004a820, 0xa00f: 0x4004aa20,
-	0xa010: 0x4004ac20, 0xa011: 0x4004ae20, 0xa012: 0x40279c20, 0xa013: 0x40279e20,
-	0xa014: 0x4004b020, 0xa015: 0x4004b220, 0xa016: 0x4004b420, 0xa017: 0x4004b620,
-	0xa018: 0x4004b820, 0xa019: 0x4004ba20, 0xa01a: 0x4004bc20, 0xa01b: 0x4004be20,
-	0xa01c: 0x40023820, 0xa01d: 0x4003ea20, 0xa01e: 0x4003ec20, 0xa01f: 0x4003ee20,
-	0xa020: 0x4027a020, 0xa021: 0xe0000267, 0xa022: 0xe000037f, 0xa023: 0xe0000459,
-	0xa024: 0xe000052e, 0xa025: 0xe00005f8, 0xa026: 0xe00006c3, 0xa027: 0xe000076b,
-	0xa028: 0xe0000817, 0xa029: 0xe00008bc, 0xa02a: 0xada12202, 0xa02b: 0xae412302,
-	0xa02c: 0xae812402, 0xa02d: 0xade12502, 0xa02e: 0xae012602, 0xa02f: 0xae012702,
-	0xa030: 0x40023a20, 0xa031: 0x4027ce20, 0xa032: 0xe0000152, 0xa033: 0x4027d020,
-	0xa034: 0xe0000155, 0xa035: 0x4027d220, 0xa036: 0x00279c84, 0xa037: 0x4027a220,
-	0xa038: 0x02a68284, 0xa039: 0x02a68884, 0xa03a: 0x02a68a84, 0xa03b: 0x4027cc20,
-	0xa03c: 0xe000231a, 0xa03d: 0x40051420, 0xa03e: 0x4027a420, 0xa03f: 0x4027a620,
-	// Block 0x281, offset 0xa040
-	0xa041: 0xc63631f1, 0xa042: 0xc63c31f1, 0xa043: 0xc70631f1,
-	0xa044: 0xc70c31f1, 0xa045: 0xc7c439e1, 0xa046: 0xc7ce33a1, 0xa047: 0xc8ad31f1,
-	0xa048: 0xc8b331f1, 0xa049: 0xc96231f1, 0xa04a: 0xc96831f1, 0xa04b: 0xc6483271,
-	0xa04c: 0xc65531f1, 0xa04d: 0xc71233a1, 0xa04e: 0xc7273631, 0xa04f: 0xc7f033a1,
-	0xa050: 0xc8053631, 0xa051: 0xc8bf3271, 0xa052: 0xc8cc31f1, 0xa053: 0xc96e33a1,
-	0xa054: 0xc9833631, 0xa055: 0xc65b33a1, 0xa056: 0xc6703631, 0xa057: 0xc73433a1,
-	0xa058: 0xc7493631, 0xa059: 0xc81233a1, 0xa05a: 0xc8273631, 0xa05b: 0xc8d233a1,
-	0xa05c: 0xc8e73631, 0xa05d: 0xc98b33a1, 0xa05e: 0xc9a03631, 0xa05f: 0xc67833a1,
-	0xa060: 0xc68d3631, 0xa061: 0xc75133a1, 0xa062: 0xc7663631, 0xa063: 0xc82f39e1,
-	0xa064: 0xc83933a1, 0xa065: 0xc84e3631, 0xa066: 0xc8ef33a1, 0xa067: 0xc9043631,
-	0xa068: 0xc9ad33a1, 0xa069: 0xc9c23631, 0xa06a: 0xc69531f1, 0xa06b: 0xc76e31f1,
-	0xa06c: 0xc85931f1, 0xa06d: 0xc90c31f1, 0xa06e: 0xc9ca31f1, 0xa06f: 0xc6a036b1,
-	0xa070: 0xc6bb3631, 0xa071: 0xc6c33631, 0xa072: 0xc77936b1, 0xa073: 0xc7943631,
-	0xa074: 0xc79c3631, 0xa075: 0xc86436b1, 0xa076: 0xc87f3631, 0xa077: 0xc8873631,
-	0xa078: 0xc91736b1, 0xa079: 0xc9323631, 0xa07a: 0xc93a3631, 0xa07b: 0xc9d536b1,
-	0xa07c: 0xc9f03631, 0xa07d: 0xc9f83631, 0xa07e: 0xc6cb31f1, 0xa07f: 0xc7a431f1,
-	// Block 0x282, offset 0xa080
-	0xa080: 0xc89231f1, 0xa081: 0xc94231f1, 0xa082: 0xca0031f1, 0xa083: 0xc6d131f1,
-	0xa084: 0xc6d731f1, 0xa085: 0xc89831f1, 0xa086: 0xc89e31f1, 0xa087: 0xca0631f1,
-	0xa088: 0xca0c31f1, 0xa089: 0xc6e031f1, 0xa08a: 0xc7ad31f1, 0xa08b: 0xc8a731f1,
-	0xa08c: 0xc94b31f1, 0xa08d: 0xca1531f1, 0xa08e: 0xc6e639e1, 0xa08f: 0xc6f039e1,
-	0xa090: 0xc7b339e1, 0xa091: 0xc95139e1, 0xa092: 0xca1b39e1, 0xa093: 0xca313a71,
-	0xa094: 0xc7e33631, 0xa095: 0xc64231f1, 0xa096: 0xc8b931f1,
-	0xa099: 0xa0812802, 0xa09a: 0xa0812902, 0xa09b: 0x40063c20,
-	0xa09c: 0x40063e20, 0xa09d: 0x4027d820, 0xa09e: 0xe000015b, 0xa09f: 0xe0003bee,
-	0xa0a0: 0x40023c20, 0xa0a1: 0xc6393241, 0xa0a2: 0xc63f3241, 0xa0a3: 0xc7093241,
-	0xa0a4: 0xc70f3241, 0xa0a5: 0xc7c935c1, 0xa0a6: 0xc7d634c1, 0xa0a7: 0xc8b03241,
-	0xa0a8: 0xc8b63241, 0xa0a9: 0xc9653241, 0xa0aa: 0xc96b3241, 0xa0ab: 0xc64d3321,
-	0xa0ac: 0xc6583241, 0xa0ad: 0xc71a34c1, 0xa0ae: 0xc72b3681, 0xa0af: 0xc7f834c1,
-	0xa0b0: 0xc8093681, 0xa0b1: 0xc8c43321, 0xa0b2: 0xc8cf3241, 0xa0b3: 0xc97634c1,
-	0xa0b4: 0xc9873681, 0xa0b5: 0xc66334c1, 0xa0b6: 0xc6743681, 0xa0b7: 0xc73c34c1,
-	0xa0b8: 0xc74d3681, 0xa0b9: 0xc81a34c1, 0xa0ba: 0xc82b3681, 0xa0bb: 0xc8da34c1,
-	0xa0bc: 0xc8eb3681, 0xa0bd: 0xc99334c1, 0xa0be: 0xc9a43681, 0xa0bf: 0xc68034c1,
-	// Block 0x283, offset 0xa0c0
-	0xa0c0: 0xc6913681, 0xa0c1: 0xc75934c1, 0xa0c2: 0xc76a3681, 0xa0c3: 0xc83435c1,
-	0xa0c4: 0xc84134c1, 0xa0c5: 0xc8523681, 0xa0c6: 0xc8f734c1, 0xa0c7: 0xc9083681,
-	0xa0c8: 0xc9b534c1, 0xa0c9: 0xc9c63681, 0xa0ca: 0xc6983241, 0xa0cb: 0xc7713241,
-	0xa0cc: 0xc85c3241, 0xa0cd: 0xc90f3241, 0xa0ce: 0xc9cd3241, 0xa0cf: 0xc6ab3861,
-	0xa0d0: 0xc6bf3681, 0xa0d1: 0xc6c73681, 0xa0d2: 0xc7843861, 0xa0d3: 0xc7983681,
-	0xa0d4: 0xc7a03681, 0xa0d5: 0xc86f3861, 0xa0d6: 0xc8833681, 0xa0d7: 0xc88b3681,
-	0xa0d8: 0xc9223861, 0xa0d9: 0xc9363681, 0xa0da: 0xc93e3681, 0xa0db: 0xc9e03861,
-	0xa0dc: 0xc9f43681, 0xa0dd: 0xc9fc3681, 0xa0de: 0xc6ce3241, 0xa0df: 0xc7a73241,
-	0xa0e0: 0xc8953241, 0xa0e1: 0xc9453241, 0xa0e2: 0xca033241, 0xa0e3: 0xc6d43241,
-	0xa0e4: 0xc6da3241, 0xa0e5: 0xc89b3241, 0xa0e6: 0xc8a13241, 0xa0e7: 0xca093241,
-	0xa0e8: 0xca0f3241, 0xa0e9: 0xc6e33241, 0xa0ea: 0xc7b03241, 0xa0eb: 0xc8aa3241,
-	0xa0ec: 0xc94e3241, 0xa0ed: 0xca183241, 0xa0ee: 0xc6eb35c1, 0xa0ef: 0xc6f534c1,
-	0xa0f0: 0xc7b834c1, 0xa0f1: 0xc95634c1, 0xa0f2: 0xca2034c1, 0xa0f3: 0xca313aa1,
-	0xa0f4: 0xc7e73681, 0xa0f5: 0xc6453241, 0xa0f6: 0xc8bc3241, 0xa0f7: 0xc7023681,
-	0xa0f8: 0xc7c03681, 0xa0f9: 0xc95e3681, 0xa0fa: 0xca2d3681, 0xa0fb: 0x40023e20,
-	0xa0fc: 0x4027d620, 0xa0fd: 0x4027d820, 0xa0fe: 0xe000015b, 0xa0ff: 0xe0003a95,
-	// Block 0x284, offset 0xa100
-	0xa105: 0x4065da20, 0xa106: 0x4065dc20, 0xa107: 0x4065de20,
-	0xa108: 0x4065e020, 0xa109: 0x4065e420, 0xa10a: 0x4065e620, 0xa10b: 0x4065e820,
-	0xa10c: 0x4065ea20, 0xa10d: 0x4065ec20, 0xa10e: 0x4065ee20, 0xa10f: 0x4065f420,
-	0xa110: 0x4065f620, 0xa111: 0x4065f820, 0xa112: 0x4065fa20, 0xa113: 0x4065fe20,
-	0xa114: 0x40660020, 0xa115: 0x40660220, 0xa116: 0x40660420, 0xa117: 0x40660620,
-	0xa118: 0x40660820, 0xa119: 0x40660a20, 0xa11a: 0x40661220, 0xa11b: 0x40661420,
-	0xa11c: 0x40661820, 0xa11d: 0x40661a20, 0xa11e: 0x40661e20, 0xa11f: 0x40662020,
-	0xa120: 0x40662220, 0xa121: 0x40662420, 0xa122: 0x40662620, 0xa123: 0x40662820,
-	0xa124: 0x40662a20, 0xa125: 0x40662e20, 0xa126: 0x40663620, 0xa127: 0x40663820,
-	0xa128: 0x40663a20, 0xa129: 0x40663c20, 0xa12a: 0x4065e220, 0xa12b: 0x4065f020,
-	0xa12c: 0x4065fc20, 0xa12d: 0x40663e20,
-	0xa131: 0x4062ac20, 0xa132: 0x4062ae20, 0xa133: 0x40646820,
-	0xa134: 0x4062b020, 0xa135: 0x40646c20, 0xa136: 0x40646e20, 0xa137: 0x4062b220,
-	0xa138: 0x4062b420, 0xa139: 0x4062b620, 0xa13a: 0x40647420, 0xa13b: 0x40647620,
-	0xa13c: 0x40647820, 0xa13d: 0x40647a20, 0xa13e: 0x40647c20, 0xa13f: 0x40647e20,
-	// Block 0x285, offset 0xa140
-	0xa140: 0x4062e020, 0xa141: 0x4062b820, 0xa142: 0x4062ba20, 0xa143: 0x4062bc20,
-	0xa144: 0x4062ee20, 0xa145: 0x4062be20, 0xa146: 0x4062c020, 0xa147: 0x4062c220,
-	0xa148: 0x4062c420, 0xa149: 0x4062c620, 0xa14a: 0x4062c820, 0xa14b: 0x4062ca20,
-	0xa14c: 0x4062cc20, 0xa14d: 0x4062ce20, 0xa14e: 0x4062d020, 0xa14f: 0x4063a820,
-	0xa150: 0x4063aa20, 0xa151: 0x4063ac20, 0xa152: 0x4063ae20, 0xa153: 0x4063b020,
-	0xa154: 0x4063b220, 0xa155: 0x4063b420, 0xa156: 0x4063b620, 0xa157: 0x4063b820,
-	0xa158: 0x4063ba20, 0xa159: 0x4063bc20, 0xa15a: 0x4063be20, 0xa15b: 0x4063c020,
-	0xa15c: 0x4063c220, 0xa15d: 0x4063c420, 0xa15e: 0x4063c620, 0xa15f: 0x4063c820,
-	0xa160: 0x4063ca20, 0xa161: 0x4063cc20, 0xa162: 0x4063ce20, 0xa163: 0x4063d020,
-	0xa164: 0x4063a620, 0xa165: 0x0062d484, 0xa166: 0x0062d684, 0xa167: 0x0064a284,
-	0xa168: 0x0064a484, 0xa169: 0x0064ac84, 0xa16a: 0x0064b084, 0xa16b: 0x0064ba84,
-	0xa16c: 0x0064c284, 0xa16d: 0x0064c684, 0xa16e: 0x0062e484, 0xa16f: 0x0064ce84,
-	0xa170: 0x0064d284, 0xa171: 0x0062e684, 0xa172: 0x0062e884, 0xa173: 0x0062ec84,
-	0xa174: 0x0062f084, 0xa175: 0x0062f284, 0xa176: 0x0062fa84, 0xa177: 0x0062fe84,
-	0xa178: 0x00630284, 0xa179: 0x00630484, 0xa17a: 0x00630684, 0xa17b: 0x00630884,
-	0xa17c: 0x00630a84, 0xa17d: 0x00631084, 0xa17e: 0x00631884, 0xa17f: 0x00632c84,
-	// Block 0x286, offset 0xa180
-	0xa180: 0x40275220, 0xa181: 0x40275420, 0xa182: 0x40275620, 0xa183: 0x40275820,
-	0xa184: 0x40275a20, 0xa185: 0x40275c20, 0xa186: 0x40275e20, 0xa187: 0x40276020,
-	0xa188: 0x40276220, 0xa189: 0x40276420, 0xa18a: 0x40276620, 0xa18b: 0x40276820,
-	0xa18c: 0x40276a20, 0xa18d: 0x40276c20, 0xa18e: 0x40276e20, 0xa18f: 0x40277020,
-	0xa190: 0x40277220, 0xa191: 0x40277420, 0xa192: 0x40277620, 0xa193: 0x40277820,
-	0xa194: 0x40277a20, 0xa195: 0x40277c20, 0xa196: 0x40277e20, 0xa197: 0x40278020,
-	0xa198: 0x40278220, 0xa199: 0x40278420, 0xa19a: 0x40278620, 0xa19b: 0x40278820,
-	0xa19c: 0x40278a20, 0xa19d: 0x40278c20, 0xa19e: 0x40278e20, 0xa19f: 0x40279020,
-	0xa1a0: 0x40279220, 0xa1a1: 0x40279420, 0xa1a2: 0x40279620, 0xa1a3: 0x40279820,
-	0xa1b0: 0xc7eb35c1, 0xa1b1: 0xc72f35c1, 0xa1b2: 0xc80d35c1, 0xa1b3: 0xc9a835c1,
-	0xa1b4: 0xc8563241, 0xa1b5: 0xc69b35c1, 0xa1b6: 0xc77435c1, 0xa1b7: 0xc85f35c1,
-	0xa1b8: 0xc91235c1, 0xa1b9: 0xc9d035c1, 0xa1ba: 0xc88f3241, 0xa1bb: 0xc6dd3241,
-	0xa1bc: 0xc7aa3241, 0xa1bd: 0xc8a43241, 0xa1be: 0xc9483241, 0xa1bf: 0xca123241,
-	// Block 0x287, offset 0xa1c0
-	0xa1c0: 0xf0000404, 0xa1c1: 0xf0000404, 0xa1c2: 0xf0000404, 0xa1c3: 0xf0000404,
-	0xa1c4: 0xf0000404, 0xa1c5: 0xf0000404, 0xa1c6: 0xf0000404, 0xa1c7: 0xf0000404,
-	0xa1c8: 0xf0000404, 0xa1c9: 0xf0000404, 0xa1ca: 0xf0000404, 0xa1cb: 0xf0000404,
-	0xa1cc: 0xf0000404, 0xa1cd: 0xf0000404, 0xa1ce: 0xe000004c, 0xa1cf: 0xe0000051,
-	0xa1d0: 0xe0000056, 0xa1d1: 0xe000005b, 0xa1d2: 0xe0000060, 0xa1d3: 0xe0000065,
-	0xa1d4: 0xe000006a, 0xa1d5: 0xe000006f, 0xa1d6: 0xe0000083, 0xa1d7: 0xe000008d,
-	0xa1d8: 0xe0000092, 0xa1d9: 0xe0000097, 0xa1da: 0xe000009c, 0xa1db: 0xe00000a1,
-	0xa1dc: 0xe0000088, 0xa1dd: 0xe0000074, 0xa1de: 0xe000007c,
-	0xa1e0: 0xe00028cc, 0xa1e1: 0xe00028dc, 0xa1e2: 0xe00028d4, 0xa1e3: 0xe000290c,
-	0xa1e4: 0xe00028e0, 0xa1e5: 0xe00028f4, 0xa1e6: 0xe00028d0, 0xa1e7: 0xe00028f0,
-	0xa1e8: 0xe00028d8, 0xa1e9: 0xe00028fc, 0xa1ea: 0xe000291c, 0xa1eb: 0xe0002930,
-	0xa1ec: 0xe000292c, 0xa1ed: 0xe0002924, 0xa1ee: 0xe0002958, 0xa1ef: 0xe0002910,
-	0xa1f0: 0xe0002918, 0xa1f1: 0xe0002928, 0xa1f2: 0xe0002920, 0xa1f3: 0xe000293c,
-	0xa1f4: 0xe0002904, 0xa1f5: 0xe0002934, 0xa1f6: 0xe0002950, 0xa1f7: 0xe0002940,
-	0xa1f8: 0xe00028f8, 0xa1f9: 0xe00028e4, 0xa1fa: 0xe0002908, 0xa1fb: 0xe0002914,
-	0xa1fc: 0xe0002938, 0xa1fd: 0xe00028e8, 0xa1fe: 0xe0002954, 0xa1ff: 0xe0002900,
-	// Block 0x288, offset 0xa200
-	0xa200: 0xe0002944, 0xa201: 0xe00028ec, 0xa202: 0xe0002948, 0xa203: 0xe000294c,
-	0xa204: 0x02aa9e86, 0xa205: 0x02bcf886, 0xa206: 0x02cb0e86, 0xa207: 0x02f71e86,
-	0xa208: 0xe00002e3, 0xa209: 0xe00003d8, 0xa20a: 0xe00004b3, 0xa20b: 0xe000057d,
-	0xa20c: 0xe0000648, 0xa20d: 0xe00006f0, 0xa20e: 0xe000079c, 0xa20f: 0xe0000841,
-	0xa210: 0xe0000ec0, 0xa211: 0xf0000606, 0xa212: 0xf0000606, 0xa213: 0xf0000606,
-	0xa214: 0xf0000606, 0xa215: 0xf0000606, 0xa216: 0xf0000606, 0xa217: 0xf0000606,
-	0xa218: 0xf0000606, 0xa219: 0xf0000606, 0xa21a: 0xf0000606, 0xa21b: 0xf0000606,
-	0xa21c: 0xf0000606, 0xa21d: 0xf0000606, 0xa21e: 0xf0000606, 0xa21f: 0xf0000606,
-	0xa220: 0x0062ac86, 0xa221: 0x0062b086, 0xa222: 0x0062b286, 0xa223: 0x0062b686,
-	0xa224: 0x0062b886, 0xa225: 0x0062ba86, 0xa226: 0x0062be86, 0xa227: 0x0062c286,
-	0xa228: 0x0062c486, 0xa229: 0x0062c886, 0xa22a: 0x0062ca86, 0xa22b: 0x0062cc86,
-	0xa22c: 0x0062ce86, 0xa22d: 0x0062d086, 0xa22e: 0xf0000606, 0xa22f: 0xf0000606,
-	0xa230: 0xf0000606, 0xa231: 0xf0000606, 0xa232: 0xf0000606, 0xa233: 0xf0000606,
-	0xa234: 0xf0000606, 0xa235: 0xf0000606, 0xa236: 0xf0000606, 0xa237: 0xf0000606,
-	0xa238: 0xf0000606, 0xa239: 0xf0000606, 0xa23a: 0xf0000606, 0xa23b: 0xf0000606,
-	0xa23c: 0xe0002127, 0xa23d: 0xe0002122, 0xa23e: 0xf0000606, 0xa23f: 0x4027ac20,
-	// Block 0x289, offset 0xa240
-	0xa240: 0xe000384d, 0xa241: 0xe000388e, 0xa242: 0xe000389f, 0xa243: 0xe00038a8,
-	0xa244: 0xe00038b1, 0xa245: 0xe00038ba, 0xa246: 0xe000298b, 0xa247: 0xe00038c3,
-	0xa248: 0xe00038cc, 0xa249: 0xe00037fa, 0xa24a: 0xe0003806, 0xa24b: 0xe0003812,
-	0xa24c: 0xf0001c1d, 0xa24d: 0xe0000b85, 0xa24e: 0xf0001d1c, 0xa24f: 0xe0000d14,
-	0xa250: 0x00657693, 0xa251: 0x00657893, 0xa252: 0x00657a93, 0xa253: 0x00657e93,
-	0xa254: 0x00658093, 0xa255: 0x00658293, 0xa256: 0x00658493, 0xa257: 0x00658693,
-	0xa258: 0x00658893, 0xa259: 0x00658a93, 0xa25a: 0x00658c93, 0xa25b: 0x00658e93,
-	0xa25c: 0x00659093, 0xa25d: 0x00659293, 0xa25e: 0x00659493, 0xa25f: 0x00659693,
-	0xa260: 0x00659893, 0xa261: 0x00659a93, 0xa262: 0x00659c93, 0xa263: 0x00659e93,
-	0xa264: 0x0065a093, 0xa265: 0x0065a293, 0xa266: 0x0065a493, 0xa267: 0x0065a693,
-	0xa268: 0x0065a893, 0xa269: 0x0065aa93, 0xa26a: 0x0065ac93, 0xa26b: 0x0065ae93,
-	0xa26c: 0x0065b093, 0xa26d: 0x0065b293, 0xa26e: 0x0065b493, 0xa26f: 0x0065b693,
-	0xa270: 0x0065b893, 0xa271: 0x0065ba93, 0xa272: 0x0065bc93, 0xa273: 0x0065be93,
-	0xa274: 0x0065c093, 0xa275: 0x0065c493, 0xa276: 0x0065c693, 0xa277: 0x0065c893,
-	0xa278: 0x0065ca93, 0xa279: 0x0065cc93, 0xa27a: 0x0065ce93, 0xa27b: 0x0065d093,
-	0xa27c: 0x0065d293, 0xa27d: 0x0065d493, 0xa27e: 0x0065d693,
-	// Block 0x28a, offset 0xa280
-	0xa280: 0xe000230b, 0xa281: 0xe00022f8, 0xa282: 0xe00022fc, 0xa283: 0xe0002311,
-	0xa284: 0xe0002316, 0xa285: 0xe000231d, 0xa286: 0xe0002321, 0xa287: 0xe0002325,
-	0xa288: 0xe000232b, 0xa289: 0xf0001c1c, 0xa28a: 0xe0002330, 0xa28b: 0xe000233c,
-	0xa28c: 0xe0002340, 0xa28d: 0xe0002337, 0xa28e: 0xe0002346, 0xa28f: 0xe000234b,
-	0xa290: 0xe000234f, 0xa291: 0xe0002353, 0xa292: 0xf0001c1c, 0xa293: 0xe000235e,
-	0xa294: 0xe0002358, 0xa295: 0xf0001c1c, 0xa296: 0xe0002363, 0xa297: 0xe000236d,
-	0xa298: 0xe00037f3, 0xa299: 0xe0003850, 0xa29a: 0xe0003891, 0xa29b: 0xe00038a2,
-	0xa29c: 0xe00038ab, 0xa29d: 0xe00038b4, 0xa29e: 0xe00038bd, 0xa29f: 0xe000298e,
-	0xa2a0: 0xe00038c6, 0xa2a1: 0xe00038cf, 0xa2a2: 0xe00037fe, 0xa2a3: 0xe000380a,
-	0xa2a4: 0xe0003816, 0xa2a5: 0xe000381e, 0xa2a6: 0xe0003826, 0xa2a7: 0xe000382e,
-	0xa2a8: 0xe0003836, 0xa2a9: 0xe0002971, 0xa2aa: 0xe000383e, 0xa2ab: 0xe0003846,
-	0xa2ac: 0xe0003857, 0xa2ad: 0xe000385f, 0xa2ae: 0xe0003867, 0xa2af: 0xe000386f,
-	0xa2b0: 0xe0003877, 0xa2b1: 0xe0000c1e, 0xa2b2: 0xf0001c1c, 0xa2b3: 0xf0001d1d,
-	0xa2b4: 0xe0000a31, 0xa2b5: 0xf0001d1c, 0xa2b6: 0xf0001c1c, 0xa2b7: 0xf0001c1c,
-	0xa2b8: 0xe0000ac2, 0xa2b9: 0xe0000ac6, 0xa2ba: 0xf0001d1d, 0xa2bb: 0xe0003c4c,
-	0xa2bc: 0xe0003c52, 0xa2bd: 0xe0003c49, 0xa2be: 0xe0003c4f, 0xa2bf: 0xe0002431,
-	// Block 0x28b, offset 0xa2c0
-	0xa2c0: 0xf0001d1c, 0xa2c1: 0xf0001d1d, 0xa2c2: 0xe00009b7, 0xa2c3: 0xf0001c1d,
-	0xa2c4: 0xf0001c1c, 0xa2c5: 0xf0001c1c, 0xa2c6: 0xe0000a66, 0xa2c7: 0xe0000a7a,
-	0xa2c8: 0xf0001d1c, 0xa2c9: 0xf0001c1d, 0xa2ca: 0xf0001c1c, 0xa2cb: 0xf0001d1d,
-	0xa2cc: 0xf0001c1c, 0xa2cd: 0xf0001d1d, 0xa2ce: 0xf0001d1d, 0xa2cf: 0xf0001c1c,
-	0xa2d0: 0xf0001c1c, 0xa2d1: 0xf0001c1c, 0xa2d2: 0xe0000d0d, 0xa2d3: 0xf0001c1c,
-	0xa2d4: 0xf0001c1c, 0xa2d5: 0xe0000d3a, 0xa2d6: 0xe0000d46, 0xa2d7: 0xf0001d1d,
-	0xa2d8: 0xe0000eb0, 0xa2d9: 0xe0000eb8, 0xa2da: 0xf0001d1d, 0xa2db: 0xf0001c1c,
-	0xa2dc: 0xf0001c1d, 0xa2dd: 0xf0001c1d, 0xa2de: 0xe00010b2, 0xa2df: 0xe00009c8,
-	0xa2e0: 0xe000384a, 0xa2e1: 0xe000388b, 0xa2e2: 0xe000389c, 0xa2e3: 0xe00038a5,
-	0xa2e4: 0xe00038ae, 0xa2e5: 0xe00038b7, 0xa2e6: 0xe0002988, 0xa2e7: 0xe00038c0,
-	0xa2e8: 0xe00038c9, 0xa2e9: 0xe00037f6, 0xa2ea: 0xe0003802, 0xa2eb: 0xe000380e,
-	0xa2ec: 0xe000381a, 0xa2ed: 0xe0003822, 0xa2ee: 0xe000382a, 0xa2ef: 0xe0003832,
-	0xa2f0: 0xe000296d, 0xa2f1: 0xe000383a, 0xa2f2: 0xe0003842, 0xa2f3: 0xe0003853,
-	0xa2f4: 0xe000385b, 0xa2f5: 0xe0003863, 0xa2f6: 0xe000386b, 0xa2f7: 0xe0003873,
-	0xa2f8: 0xe000387b, 0xa2f9: 0xe000387f, 0xa2fa: 0xe0002978, 0xa2fb: 0xe0003883,
-	0xa2fc: 0xe0003887, 0xa2fd: 0xe0003894, 0xa2fe: 0xe0003898, 0xa2ff: 0xe0000bdf,
-	// Block 0x28c, offset 0xa300
-	0xa300: 0x6c009820, 0xa301: 0x6c0ea820, 0xa303: 0x6c08fe20,
-	0xa307: 0x6c148c20,
-	0xa308: 0x6c0ad420, 0xa309: 0x6c083420, 0xa30a: 0x6c0ad220, 0xa30b: 0x6c01b020,
-	0xa30d: 0x6c12c420, 0xa30e: 0x6c158a20,
-	0xa310: 0x6c172e20, 0xa311: 0x6c00da20,
-	0xa314: 0x6c02d020, 0xa315: 0x6c173020, 0xa316: 0x6c0bc820, 0xa317: 0x6c18e620,
-	0xa318: 0x6c041820, 0xa319: 0x6c134c20,
-	0xa31e: 0x6c0ad620,
-	0xa321: 0x6c164420,
-	0xa326: 0x6c135c20,
-	0xa32a: 0x6c173220,
-	0xa32d: 0x6c0e8020,
-	0xa331: 0x6c173420, 0xa332: 0x6c051c20,
-	0xa336: 0x6c173620,
-	0xa338: 0x6c036a20, 0xa339: 0x6c0e1420, 0xa33b: 0x6c095e20,
-	0xa33c: 0x6c173820, 0xa33f: 0x6c173a20,
-	// Block 0x28d, offset 0xa340
-	0xa342: 0x6c173c20, 0xa343: 0x6c110e20,
-	0xa345: 0x6c041a20,
-	0xa34b: 0x6c111220,
-	0xa34d: 0x6c10ae20, 0xa34e: 0x6c062620, 0xa34f: 0x6c13fa20,
-	0xa355: 0x6c29d820, 0xa356: 0x6c173e20, 0xa357: 0x6c0ad820,
-	0xa358: 0x6c174020, 0xa359: 0x6c01a220,
-	0xa35d: 0x6c04f220, 0xa35e: 0x6c068020, 0xa35f: 0x6c152220,
-	0xa362: 0x6c1b9e20,
-	0xa371: 0x6c15ec20, 0xa373: 0x6c10e220,
-	0xa37e: 0x6c02fa20,
-	// Block 0x28e, offset 0xa380
-	0xa380: 0x6c03d620, 0xa382: 0x6c174220,
-	0xa385: 0x6c174420, 0xa386: 0x6c163e20,
-	0xa388: 0x6c158620, 0xa389: 0x6c0d0c20, 0xa38a: 0x6c174820, 0xa38b: 0x6c08c020,
-	0xa38c: 0x6c10ce20, 0xa38e: 0x6c174e20,
-	0xa391: 0x6c00f820, 0xa392: 0x6c065e20,
-	0xa394: 0x6c065c20, 0xa395: 0x6c008c20,
-	0xa398: 0x6c171a20, 0xa399: 0x6c171820, 0xa39b: 0x6c077e20,
-	0xa39c: 0x6c000220, 0xa39e: 0x6c175020, 0xa39f: 0x6c175220,
-	0xa3a0: 0x6c175420, 0xa3a1: 0x6c13fc20, 0xa3a2: 0x6c175620,
-	0xa3a4: 0x6c068420, 0xa3a5: 0x6c008e20, 0xa3a6: 0x6c147820,
-	0xa3a8: 0x6c046420, 0xa3ab: 0x6c046620,
-	0xa3ac: 0x6c046820, 0xa3ad: 0x6c0f3420, 0xa3ae: 0x6c164020,
-	0xa3b0: 0x6c175820, 0xa3b3: 0x6c175a20,
-	0xa3b6: 0x6c175c20,
-	0xa3ba: 0x6c0b5e20,
-	// Block 0x28f, offset 0xa3c0
-	0xa3c0: 0x6c09c020, 0xa3c1: 0x6c0b6020, 0xa3c2: 0x6c176620,
-	0xa3c4: 0x6c176220, 0xa3c6: 0x6c176420, 0xa3c7: 0x6c041c20,
-	0xa3ca: 0x6c075e20, 0xa3cb: 0x6c021820,
-	0xa3cd: 0x6c176020, 0xa3ce: 0x6c175e20, 0xa3cf: 0x6c132a20,
-	0xa3d4: 0x6c086020, 0xa3d5: 0x6c085e20, 0xa3d6: 0x6c0d7420, 0xa3d7: 0x6c176820,
-	0xa3d8: 0x6c12c620, 0xa3d9: 0x6c0c4e20,
-	0xa3de: 0x6c176a20, 0xa3df: 0x6c176e20,
-	0xa3e3: 0x6c0dc220,
-	0xa3e4: 0x6c168a20, 0xa3e5: 0x6c005420,
-	0xa3ed: 0x6c176c20, 0xa3ee: 0x6c01b420,
-	0xa3f0: 0x6c04b020, 0xa3f2: 0x6c0e8220,
-	0xa3f6: 0x6c05c220, 0xa3f7: 0x6c177020,
-	0xa3fb: 0x6c10ec20,
-	// Block 0x290, offset 0xa400
-	0xa401: 0x6c038620,
-	0xa409: 0x6c177220, 0xa40a: 0x6c005620,
-	0xa40d: 0x6c066020, 0xa40e: 0x6c038820, 0xa40f: 0x6c131020,
-	0xa410: 0x6c11c420, 0xa411: 0x6c041e20,
-	0xa41a: 0x6c021a20,
-	0xa41c: 0x6c17b820, 0xa41d: 0x6c0fae20,
-	0xa42f: 0x6c117c20,
-	0xa430: 0x6c177620,
-	0xa434: 0x6c11d820, 0xa436: 0x6c168c20,
-	0xa438: 0x6c0b1e20, 0xa43a: 0x6c086220,
-	0xa43c: 0x6c08c220, 0xa43d: 0x6c01b820,
-	// Block 0x291, offset 0xa440
-	0xa443: 0x6c0f1220,
-	0xa446: 0x6c0df820, 0xa447: 0x6c177e20,
-	0xa44d: 0x6c005820, 0xa44e: 0x6c0f3620, 0xa44f: 0x6c09c220,
-	0xa450: 0x6c078020, 0xa451: 0x6c155420, 0xa453: 0x6c0d9420,
-	0xa455: 0x6c01b620, 0xa457: 0x6c177c20,
-	0xa459: 0x6c158820, 0xa45a: 0x6c177420, 0xa45b: 0x6c177820,
-	0xa45c: 0x6c07f420, 0xa45d: 0x6c177a20, 0xa45e: 0x6c1ade20,
-	0xa469: 0x6c178a20,
-	0xa46f: 0x6c179020,
-	0xa470: 0x6c178c20, 0xa473: 0x6c01bc20,
-	0xa475: 0x6c134e20, 0xa476: 0x6c178020,
-	0xa47b: 0x6c178820,
-	0xa47c: 0x6c068620, 0xa47f: 0x6c086420,
-	// Block 0x292, offset 0xa480
-	0xa483: 0x6c02fc20,
-	0xa486: 0x6c179220,
-	0xa488: 0x6c178220, 0xa48b: 0x6c168e20,
-	0xa48d: 0x6c08c420, 0xa48f: 0x6c178420,
-	0xa491: 0x6c178e20,
-	0xa496: 0x6c179420,
-	0xa498: 0x6c178620, 0xa49b: 0x6c046a20,
-	0xa49d: 0x6c005a20,
-	0xa4a0: 0x6c046c20, 0xa4a1: 0x6c01ba20,
-	0xa4ab: 0x6c1ae020,
-	0xa4ad: 0x6c148620, 0xa4ae: 0x6c12f820, 0xa4af: 0x6c068820,
-	0xa4b5: 0x6c0b2220, 0xa4b6: 0x6c163620,
-	0xa4bf: 0x6c138820,
-	// Block 0x293, offset 0xa4c0
-	0xa4c2: 0x6c055420, 0xa4c3: 0x6c0d4220,
-	0xa4c4: 0x6c020020,
-	0xa4ca: 0x6c09f220,
-	0xa4ce: 0x6c179c20,
-	0xa4d0: 0x6c17a620, 0xa4d1: 0x6c17a220,
-	0xa4d4: 0x6c179820, 0xa4d7: 0x6c0d5620,
-	0xa4d8: 0x6c179e20, 0xa4da: 0x6c17a420, 0xa4db: 0x6c17a020,
-	0xa4dd: 0x6c139220, 0xa4df: 0x6c179a20,
-	0xa4e1: 0x6c0b2020, 0xa4e3: 0x6c147a20,
-	0xa4e4: 0x6c17a820, 0xa4e5: 0x6c17aa20,
-	0xa4ee: 0x6c099420, 0xa4ef: 0x6c17c420,
-	0xa4f3: 0x6c114420,
-	0xa4f5: 0x6c128820, 0xa4f6: 0x6c17ba20,
-	0xa4f8: 0x6c13b820, 0xa4fa: 0x6c01a420,
-	0xa4fe: 0x6c17c220,
-	// Block 0x294, offset 0xa500
-	0xa505: 0x6c17b620, 0xa506: 0x6c17c820,
-	0xa509: 0x6c0ce020, 0xa50b: 0x6c062820,
-	0xa50d: 0x6c115c20, 0xa50f: 0x6c233820,
-	0xa511: 0x6c17c620, 0xa512: 0x6c0fe620,
-	0xa514: 0x6c17b020, 0xa516: 0x6c068c20,
-	0xa519: 0x6c068a20, 0xa51a: 0x6c17ac20,
-	0xa51f: 0x6c094420,
-	0xa521: 0x6c17bc20, 0xa523: 0x6c13b620,
-	0xa524: 0x6c0e4e20, 0xa525: 0x6c17b420, 0xa526: 0x6c05c620,
-	0xa528: 0x6c17ae20, 0xa529: 0x6c17be20, 0xa52a: 0x6c17b220, 0xa52b: 0x6c166a20,
-	0xa52c: 0x6c17c020, 0xa52d: 0x6c170620,
-	0xa536: 0x6c04f420,
-	0xa539: 0x6c05c420,
-	// Block 0x295, offset 0xa540
-	0xa543: 0x6c17ca20,
-	0xa547: 0x6c17cc20,
-	0xa548: 0x6c17d420, 0xa549: 0x6c005c20,
-	0xa54f: 0x6c137820,
-	0xa550: 0x6c17d220,
-	0xa555: 0x6c17d020, 0xa556: 0x6c17d820,
-	0xa55a: 0x6c17d620,
-	0xa55c: 0x6c0f3820,
-	0xa565: 0x6c05c820,
-	0xa56c: 0x6c17da20,
-	0xa572: 0x6c091a20,
-	0xa574: 0x6c0d4420, 0xa575: 0x6c0f3a20, 0xa576: 0x6c051420,
-	0xa578: 0x6c17dc20,
-	0xa57d: 0x6c03d820,
-	// Block 0x296, offset 0xa580
-	0xa580: 0x6c17de20,
-	0xa585: 0x6c17e220,
-	0xa58d: 0x6c13fe20,
-	0xa591: 0x6c05b020,
-	0xa598: 0x6c083620, 0xa599: 0x6c124e20, 0xa59a: 0x6c17e020,
-	0xa5ac: 0x6c07a220, 0xa5ad: 0x6c159220,
-	0xa5b2: 0x6c17e620, 0xa5b3: 0x6c17ec20,
-	0xa5b4: 0x6c17e420, 0xa5b5: 0x6c07a020, 0xa5b7: 0x6c0a4620,
-	0xa5be: 0x6c055620,
-	// Block 0x297, offset 0xa5c0
-	0xa5c2: 0x6c17ee20,
-	0xa5c5: 0x6c04c620,
-	0xa5c9: 0x6c17e820, 0xa5ca: 0x6c17ea20,
-	0xa5cd: 0x6c104620, 0xa5cf: 0x6c0d3420,
-	0xa5d1: 0x6c046e20,
-	0xa5d5: 0x6c142e20, 0xa5d6: 0x6c17f020,
-	0xa5da: 0x6c164220,
-	0xa5de: 0x6c17f220,
-	0xa5e3: 0x6c17f820,
-	0xa5e5: 0x6c17f420, 0xa5e7: 0x6c0cd820,
-	0xa5ed: 0x6c17f620, 0xa5ee: 0x6c17fa20,
-	0xa5f5: 0x6c17fe20,
-	0xa5f9: 0x6c17fc20, 0xa5fb: 0x6c136820,
-	// Block 0x298, offset 0xa600
-	0xa600: 0x6c03da20, 0xa601: 0x6c180220, 0xa602: 0x6c180420,
-	0xa604: 0x6c019620,
-	0xa609: 0x6c180020,
-	0xa612: 0x6c097820,
-	0xa614: 0x6c180a20, 0xa615: 0x6c180820, 0xa616: 0x6c180620,
-	0xa618: 0x6c179620, 0xa61a: 0x6c180c20,
-	0xa61f: 0x6c0a4820,
-	0xa621: 0x6c180e20,
-	0xa62a: 0x6c155620,
-	0xa632: 0x6c150220,
-	0xa637: 0x6c181220,
-	0xa63a: 0x6c181020, 0xa63b: 0x6c181620,
-	0xa63c: 0x6c181420, 0xa63f: 0x6c181820,
-	// Block 0x299, offset 0xa640
-	0xa640: 0x6c181a20, 0xa641: 0x6c00a820, 0xa643: 0x6c060a20,
-	0xa644: 0x6c055a20, 0xa645: 0x6c09c420, 0xa646: 0x6c0eaa20, 0xa647: 0x6c047020,
-	0xa648: 0x6c0c5020, 0xa649: 0x6c068e20, 0xa64b: 0x6c073820,
-	0xa64c: 0x6c181e20, 0xa64d: 0x6c14e020, 0xa64e: 0x6c0fb820,
-	0xa650: 0x6c08c620, 0xa652: 0x6c181c20,
-	0xa654: 0x6c182020,
-	0xa65a: 0x6c0fe820,
-	0xa65c: 0x6c02de20,
-	0xa662: 0x6c182220,
-	0xa665: 0x6c10e420,
-	0xa668: 0x6c0ca420, 0xa669: 0x6c182620, 0xa66a: 0x6c182820, 0xa66b: 0x6c11b820,
-	0xa66c: 0x6c069020, 0xa66d: 0x6c16fa20, 0xa66e: 0x6c182a20,
-	0xa671: 0x6c047420,
-	0xa675: 0x6c135020, 0xa676: 0x6c0d6420, 0xa677: 0x6c050a20,
-	0xa678: 0x6c0f9620,
-	0xa67c: 0x6c05ca20,
-	// Block 0x29a, offset 0xa680
-	0xa680: 0x6c182c20, 0xa682: 0x6c182e20,
-	0xa685: 0x6c10ac20, 0xa686: 0x6c013a20,
-	0xa689: 0x6c183420, 0xa68a: 0x6c081220,
-	0xa68c: 0x6c183220, 0xa68d: 0x6c07a420, 0xa68f: 0x6c183620,
-	0xa690: 0x6c27ee20, 0xa691: 0x6c183820, 0xa692: 0x6c141620, 0xa693: 0x6c183a20,
-	0xa695: 0x6c183c20, 0xa696: 0x6c183e20, 0xa697: 0x6c0ada20,
-	0xa699: 0x6c092820,
-	0xa6a0: 0x6c02fe20, 0xa6a2: 0x6c184420,
-	0xa6a4: 0x6c184020, 0xa6a5: 0x6c14ca20, 0xa6a6: 0x6c184220,
-	0xa6a8: 0x6c12d020, 0xa6a9: 0x6c184620, 0xa6aa: 0x6c184820, 0xa6ab: 0x6c184a20,
-	0xa6ac: 0x6c0fea20,
-	0xa6b0: 0x6c185220, 0xa6b1: 0x6c184e20, 0xa6b2: 0x6c185020, 0xa6b3: 0x6c184c20,
-	0xa6b4: 0x6c07de20, 0xa6b5: 0x6c185420, 0xa6b6: 0x6c152420, 0xa6b7: 0x6c169020,
-	0xa6bd: 0x6c185620,
-	// Block 0x29b, offset 0xa6c0
-	0xa6c4: 0x6c0bd020, 0xa6c5: 0x6c185820, 0xa6c6: 0x6c0a0020,
-	0xa6c9: 0x6c185a20, 0xa6cb: 0x6c0eac20,
-	0xa6cc: 0x6c164620, 0xa6cd: 0x6c0fec20,
-	0xa6d6: 0x6c18ec20,
-	0xa6db: 0x6c185c20,
-	0xa6dc: 0x6c31a420, 0xa6dd: 0x6c04b220,
-	0xa6e0: 0x6c185e20, 0xa6e1: 0x6c145020,
-	0xa6e6: 0x6c0a1c20, 0xa6e7: 0x6c0df020,
-	0xa6e9: 0x6c186220, 0xa6ea: 0x6c10b020,
-	0xa6ed: 0x6c186420,
-	0xa6f0: 0x6c186620, 0xa6f1: 0x6c025020,
-	0xa6f5: 0x6c186820, 0xa6f6: 0x6c047620,
-	0xa6f8: 0x6c108020, 0xa6f9: 0x6c017020, 0xa6fa: 0x6c09ec20,
-	0xa6fd: 0x6c11a220, 0xa6fe: 0x6c186a20,
-	// Block 0x29c, offset 0xa700
-	0xa700: 0x6c0fee20, 0xa703: 0x6c0b6220,
-	0xa704: 0x6c186c20, 0xa706: 0x6c133020, 0xa707: 0x6c0c3420,
-	0xa708: 0x6c02f420, 0xa70a: 0x6c030220, 0xa70b: 0x6c186e20,
-	0xa70e: 0x6c187220,
-	0xa711: 0x6c055820,
-	0xa714: 0x6c187020, 0xa717: 0x6c16ae20,
-	0xa71d: 0x6c0a1e20,
-	0xa724: 0x6c11da20, 0xa725: 0x6c137020, 0xa727: 0x6c187420,
-	0xa729: 0x6c15fc20, 0xa72a: 0x6c187620,
-	0xa72e: 0x6c187820,
-	0xa730: 0x6c102820, 0xa733: 0x6c187a20,
-	0xa736: 0x6c0bd220, 0xa737: 0x6c081420,
-	0xa738: 0x6c05cc20, 0xa739: 0x6c187c20, 0xa73a: 0x6c086620, 0xa73b: 0x6c073a20,
-	// Block 0x29d, offset 0xa740
-	0xa743: 0x6c0f3c20,
-	0xa744: 0x6c188020, 0xa747: 0x6c0d4620,
-	0xa74a: 0x6c07f620, 0xa74b: 0x6c188220,
-	0xa74c: 0x6c188420, 0xa74d: 0x6c0c9c20, 0xa74f: 0x6c187e20,
-	0xa754: 0x6c188820, 0xa756: 0x6c140020,
-	0xa75b: 0x6c072420,
-	0xa75e: 0x6c188620,
-	0xa763: 0x6c05ce20,
-	0xa764: 0x6c07d420, 0xa765: 0x6c117e20,
-	0xa769: 0x6c188e20, 0xa76a: 0x6c188a20,
-	0xa76f: 0x6c131220,
-	0xa770: 0x6c0adc20, 0xa771: 0x6c189c20, 0xa772: 0x6c02bc20, 0xa773: 0x6c189020,
-	0xa774: 0x6c188c20, 0xa775: 0x6c0cda20,
-	0xa77d: 0x6c189420, 0xa77f: 0x6c189220,
-	// Block 0x29e, offset 0xa780
-	0xa783: 0x6c027c20,
-	0xa787: 0x6c05a420,
-	0xa788: 0x6c189e20, 0xa789: 0x6c162220,
-	0xa78d: 0x6c189620,
-	0xa791: 0x6c18a020, 0xa792: 0x6c189a20,
-	0xa794: 0x6c189820,
-	0xa79b: 0x6c166620,
-	0xa79f: 0x6c069220,
-	0xa7a0: 0x6c01be20, 0xa7a3: 0x6c16b020,
-	0xa7a9: 0x6c0a3620, 0xa7aa: 0x6c0fdc20, 0xa7ab: 0x6c072620,
-	0xa7ac: 0x6c18a620, 0xa7ad: 0x6c18a820,
-	0xa7b1: 0x6c169220,
-	0xa7b4: 0x6c16da20, 0xa7b5: 0x6c18ac20,
-	0xa7b9: 0x6c069420,
-	0xa7bc: 0x6c18aa20, 0xa7be: 0x6c025220,
-	// Block 0x29f, offset 0xa7c0
-	0xa7c1: 0x6c18ae20, 0xa7c3: 0x6c144020,
-	0xa7c5: 0x6c0ee820, 0xa7c7: 0x6c155820,
-	0xa7c9: 0x6c138a20,
-	0xa7cd: 0x6c18b020,
-	0xa7d2: 0x6c2f1420,
-	0xa7d5: 0x6c104820, 0xa7d7: 0x6c18b220,
-	0xa7d8: 0x6c030420, 0xa7d9: 0x6c14b620,
-	0xa7dd: 0x6c0a4a20, 0xa7de: 0x6c18b420, 0xa7df: 0x6c13a620,
-	0xa7e0: 0x6c18bc20, 0xa7e2: 0x6c0bd420, 0xa7e3: 0x6c18b620,
-	0xa7e4: 0x6c04c820, 0xa7e6: 0x6c18b820, 0xa7e7: 0x6c030620,
-	0xa7f2: 0x6c054020, 0xa7f3: 0x6c18be20,
-	0xa7f5: 0x6c18c020,
-	0xa7f8: 0x6c18c220, 0xa7f9: 0x6c18c420, 0xa7fa: 0x6c094620,
-	0xa7fe: 0x6c069620, 0xa7ff: 0x6c150c20,
-	// Block 0x2a0, offset 0xa800
-	0xa801: 0x6c152020, 0xa802: 0x6c10d620,
-	0xa805: 0x6c13ba20, 0xa806: 0x6c18c620,
-	0xa808: 0x6c18c820,
-	0xa80d: 0x6c18cc20, 0xa80f: 0x6c18d020,
-	0xa810: 0x6c18ce20,
-	0xa815: 0x6c18d220, 0xa816: 0x6c01b220, 0xa817: 0x6c142c20,
-	0xa819: 0x6c081020, 0xa81a: 0x6c18d420,
-	0xa81d: 0x6c0cee20,
-	0xa820: 0x6c0a4c20, 0xa821: 0x6c047a20, 0xa823: 0x6c18d620,
-	0xa82a: 0x6c121620,
-	0xa82f: 0x6c18d820,
-	0xa831: 0x6c18da20, 0xa833: 0x6c18dc20,
-	0xa838: 0x6c18de20, 0xa839: 0x6c126420, 0xa83a: 0x6c04f820, 0xa83b: 0x6c008a20,
-	0xa83f: 0x6c106620,
-	// Block 0x2a1, offset 0xa840
-	0xa840: 0x6c18e020, 0xa841: 0x6c09c620, 0xa843: 0x6c0c5220,
-	0xa845: 0x6c18e420, 0xa846: 0x6c18e220, 0xa847: 0x6c0a4e20,
-	0xa848: 0x6c066220, 0xa849: 0x6c18e820, 0xa84a: 0x6c11dc20,
-	0xa84d: 0x6c18ea20,
-	0xa851: 0x6c121820, 0xa852: 0x6c0d6020, 0xa853: 0x6c0dd420,
-	0xa854: 0x6c047820, 0xa857: 0x6c10c420,
-	0xa858: 0x6c0e1620, 0xa85a: 0x6c118020,
-	0xa85c: 0x6c143020, 0xa85e: 0x6c18ee20,
-	0xa860: 0x6c0c5420,
-	0xa866: 0x6c054e20,
-	0xa869: 0x6c18f020,
-	0xa86e: 0x6c18f220, 0xa86f: 0x6c00d420,
-	0xa870: 0x6c00aa20, 0xa871: 0x6c038a20, 0xa873: 0x6c0d4820,
-	0xa874: 0x6c040e20, 0xa875: 0x6c15ee20, 0xa877: 0x6c18f820,
-	0xa878: 0x6c01a620, 0xa87b: 0x6c18f620,
-	0xa87f: 0x6c047c20,
-	// Block 0x2a2, offset 0xa880
-	0xa882: 0x6c18fa20,
-	0xa884: 0x6c153220,
-	0xa896: 0x6c18fc20,
-	0xa898: 0x6c166c20, 0xa89a: 0x6c069820,
-	0xa89f: 0x6c060c20,
-	0xa8a0: 0x6c18fe20,
-	0xa8a5: 0x6c190220, 0xa8a6: 0x6c190020,
-	0xa8a8: 0x6c0b8220, 0xa8a9: 0x6c00ee20,
-	0xa8ad: 0x6c013820, 0xa8ae: 0x6c190420,
-	0xa8b0: 0x6c190620, 0xa8b3: 0x6c060e20,
-	0xa8b6: 0x6c190820,
-	0xa8bb: 0x6c044820,
-	// Block 0x2a3, offset 0xa8c0
-	0xa8c2: 0x6c083820, 0xa8c3: 0x6c190a20,
-	0xa8c8: 0x6c147c20, 0xa8c9: 0x6c078220, 0xa8ca: 0x6c042020, 0xa8cb: 0x6c155a20,
-	0xa8cc: 0x6c0cdc20, 0xa8cd: 0x6c11de20, 0xa8ce: 0x6c098a20,
-	0xa8d4: 0x6c09da20, 0xa8d6: 0x6c096020, 0xa8d7: 0x6c097a20,
-	0xa8d9: 0x6c0a3820, 0xa8db: 0x6c11e020,
-	0xa8df: 0x6c191020,
-	0xa8e1: 0x6c010220, 0xa8e2: 0x6c0cde20, 0xa8e3: 0x6c069a20,
-	0xa8e4: 0x6c062a20, 0xa8e5: 0x6c04f620,
-	0xa8e8: 0x6c191820, 0xa8e9: 0x6c0df620, 0xa8ea: 0x6c0df420, 0xa8eb: 0x6c047e20,
-	0xa8ec: 0x6c0a5020, 0xa8ed: 0x6c191a20, 0xa8ee: 0x6c191620, 0xa8ef: 0x6c01c020,
-	0xa8f0: 0x6c0dc420, 0xa8f1: 0x6c090020, 0xa8f2: 0x6c086a20, 0xa8f3: 0x6c00c820,
-	0xa8f6: 0x6c02d420, 0xa8f7: 0x6c072820,
-	0xa8f8: 0x6c086820, 0xa8fa: 0x6c191c20,
-	// Block 0x2a4, offset 0xa900
-	0xa901: 0x6c191e20, 0xa903: 0x6c03fe20,
-	0xa904: 0x6c028020,
-	0xa908: 0x6c072a20, 0xa909: 0x6c03fc20, 0xa90a: 0x6c0f2e20, 0xa90b: 0x6c00c620,
-	0xa90c: 0x6c104a20, 0xa90d: 0x6c14cc20, 0xa90e: 0x6c069e20, 0xa90f: 0x6c15fe20,
-	0xa910: 0x6c0fba20, 0xa911: 0x6c069c20,
-	0xa91b: 0x6c054220,
-	0xa91d: 0x6c193020, 0xa91f: 0x6c04ee20,
-	0xa920: 0x6c142820,
-	0xa926: 0x6c121a20,
-	0xa929: 0x6c192e20, 0xa92b: 0x6c036c20,
-	0xa92c: 0x6c192420, 0xa92d: 0x6c192620, 0xa92e: 0x6c192a20,
-	0xa936: 0x6c192c20,
-	0xa938: 0x6c042220, 0xa939: 0x6c0b8620, 0xa93b: 0x6c133220,
-	0xa93c: 0x6c192820, 0xa93d: 0x6c192020, 0xa93e: 0x6c066620,
-	// Block 0x2a5, offset 0xa940
-	0xa940: 0x6c192220, 0xa942: 0x6c16cc20,
-	0xa946: 0x6c13bc20,
-	0xa948: 0x6c0f4020, 0xa949: 0x6c066420, 0xa94a: 0x6c073c20,
-	0xa94e: 0x6c193220,
-	0xa951: 0x6c10a220,
-	0xa95f: 0x6c193a20,
-	0xa968: 0x6c098c20, 0xa96a: 0x6c097c20,
-	0xa970: 0x6c194020, 0xa971: 0x6c193c20, 0xa973: 0x6c149620,
-	0xa975: 0x6c193620, 0xa976: 0x6c194820, 0xa977: 0x6c193e20,
-	0xa97b: 0x6c194420,
-	0xa97c: 0x6c062c20, 0xa97d: 0x6c14ce20,
-	// Block 0x2a6, offset 0xa980
-	0xa980: 0x6c194620,
-	0xa984: 0x6c194a20, 0xa986: 0x6c194e20,
-	0xa98b: 0x6c07f820,
-	0xa98c: 0x6c170820, 0xa98e: 0x6c193820, 0xa98f: 0x6c193420,
-	0xa990: 0x6c194c20, 0xa992: 0x6c194220,
-	0xa9a2: 0x6c195220,
-	0xa9a4: 0x6c196420, 0xa9a5: 0x6c195620,
-	0xa9a8: 0x6c195e20, 0xa9ab: 0x6c196020,
-	0xa9ac: 0x6c195820, 0xa9af: 0x6c199a20,
-	0xa9b2: 0x6c07ea20, 0xa9b3: 0x6c025620,
-	0xa9b8: 0x6c195420,
-	0xa9bc: 0x6c196820, 0xa9bd: 0x6c00ac20, 0xa9be: 0x6c196620,
-	// Block 0x2a7, offset 0xa9c0
-	0xa9c0: 0x6c000a20, 0xa9c1: 0x6c12b020, 0xa9c2: 0x6c196220,
-	0xa9c4: 0x6c195a20, 0xa9c7: 0x6c195020,
-	0xa9c8: 0x6c195c20, 0xa9c9: 0x6c07a820,
-	0xa9d8: 0x6c196a20,
-	0xa9e1: 0x6c00ae20, 0xa9e2: 0x6c197c20,
-	0xa9e5: 0x6c196c20, 0xa9e6: 0x6c196e20,
-	0xa9e8: 0x6c0a5220, 0xa9e9: 0x6c146620,
-	0xa9ed: 0x6c197820, 0xa9ee: 0x6c197620,
-	0xa9f2: 0x6c0f8a20,
-	0xa9fa: 0x6c197a20,
-	0xa9fd: 0x6c197420,
-	// Block 0x2a8, offset 0xaa00
-	0xaa04: 0x6c00e420, 0xaa06: 0x6c078420, 0xaa07: 0x6c0b2420,
-	0xaa0f: 0x6c197020,
-	0xaa10: 0x6c0ff020,
-	0xaa14: 0x6c197220, 0xaa16: 0x6c000420,
-	0xaa2e: 0x6c198620, 0xaa2f: 0x6c155220,
-	0xaa31: 0x6c0a5620, 0xaa33: 0x6c199220,
-	0xaa38: 0x6c199020, 0xaa39: 0x6c197e20,
-	0xaa3e: 0x6c0d7e20,
-	// Block 0x2a9, offset 0xaa40
-	0xaa40: 0x6c198020,
-	0xaa44: 0x6c0dd620, 0xaa45: 0x6c198a20, 0xaa46: 0x6c0a5420,
-	0xaa4c: 0x6c198420, 0xaa4f: 0x6c151820,
-	0xaa53: 0x6c055c20,
-	0xaa56: 0x6c198c20, 0xaa57: 0x6c198e20,
-	0xaa5c: 0x6c198820, 0xaa5d: 0x6c199420,
-	0xaa63: 0x6c198220,
-	0xaa7b: 0x6c19a020,
-	0xaa7c: 0x6c19aa20, 0xaa7e: 0x6c19a220,
-	// Block 0x2aa, offset 0xaa80
-	0xaa80: 0x6c199820, 0xaa83: 0x6c19ac20,
-	0xaa84: 0x6c0c9e20, 0xaa87: 0x6c19b020,
-	0xaa89: 0x6c06a020, 0xaa8a: 0x6c199c20, 0xaa8b: 0x6c0eae20,
-	0xaa98: 0x6c19a420, 0xaa99: 0x6c199620, 0xaa9a: 0x6c030a20,
-	0xaa9c: 0x6c038c20, 0xaa9d: 0x6c02be20, 0xaa9e: 0x6c19a620, 0xaa9f: 0x6c199e20,
-	0xaaa7: 0x6c05d020,
-	0xaaa8: 0x6c19b220, 0xaaa9: 0x6c19ae20, 0xaaaa: 0x6c0ce220, 0xaaab: 0x6c040020,
-	0xaaac: 0x6c048020, 0xaaae: 0x6c19a820,
-	0xaab0: 0x6c051020,
-	0xaab6: 0x6c010420,
-	// Block 0x2ab, offset 0xaac0
-	0xaac4: 0x6c19ba20, 0xaac5: 0x6c19b620, 0xaac7: 0x6c1a2820,
-	0xaad4: 0x6c19c020,
-	0xaada: 0x6c19b420,
-	0xaadc: 0x6c19bc20, 0xaadf: 0x6c19b820,
-	0xaae3: 0x6c086c20,
-	0xaae4: 0x6c19be20,
-	0xaaf7: 0x6c19c420,
-	0xaaf9: 0x6c19ce20,
-	0xaafd: 0x6c19ca20, 0xaafe: 0x6c19c820,
-	// Block 0x2ac, offset 0xab00
-	0xab06: 0x6c0e1820,
-	0xab09: 0x6c01c220,
-	0xab14: 0x6c19c220, 0xab16: 0x6c19c620, 0xab17: 0x6c0a5820,
-	0xab18: 0x6c00e220, 0xab1b: 0x6c19cc20,
-	0xab29: 0x6c01f420,
-	0xab2f: 0x6c19e220,
-	0xab31: 0x6c0b0020, 0xab32: 0x6c19da20,
-	0xab34: 0x6c19d620, 0xab36: 0x6c19d820,
-	0xab38: 0x6c19dc20,
-	// Block 0x2ad, offset 0xab40
-	0xab42: 0x6c00f620,
-	0xab4c: 0x6c0cae20, 0xab4e: 0x6c19d020,
-	0xab50: 0x6c19d220,
-	0xab5b: 0x6c02e820,
-	0xab64: 0x6c19e020,
-	0xab68: 0x6c038e20, 0xab6a: 0x6c19e620, 0xab6b: 0x6c19de20,
-	0xab6c: 0x6c19e420,
-	0xab74: 0x6c133420,
-	0xab78: 0x6c109220, 0xab7a: 0x6c11d020,
-	// Block 0x2ae, offset 0xab80
-	0xab80: 0x6c19ea20,
-	0xab86: 0x6c19e820, 0xab87: 0x6c027e20,
-	0xab8a: 0x6c19ec20,
-	0xab8f: 0x6c19f220,
-	0xab94: 0x6c19f020,
-	0xaba0: 0x6c19ee20, 0xaba2: 0x6c111620,
-	0xaba5: 0x6c19f420,
-	0xabae: 0x6c19f620,
-	0xabb4: 0x6c19fa20, 0xabb6: 0x6c19f820,
-	0xabbc: 0x6c19fe20,
-	// Block 0x2af, offset 0xabc0
-	0xabc0: 0x6c1a0420, 0xabc1: 0x6c1a0020, 0xabc2: 0x6c19fc20, 0xabc3: 0x6c1a0220,
-	0xabc8: 0x6c1a0620,
-	0xabce: 0x6c1a0820,
-	0xabd1: 0x6c1a0a20, 0xabd3: 0x6c1a0c20,
-	0xabd7: 0x6c1a0e20,
-	0xabd8: 0x6c183020, 0xabda: 0x6c098820, 0xabdb: 0x6c086e20,
-	0xabde: 0x6c021e20,
-	0xabe0: 0x6c00b020, 0xabe3: 0x6c0e3c20,
-	0xabee: 0x6c1a1020,
-	0xabf0: 0x6c076020, 0xabf2: 0x6c005e20, 0xabf3: 0x6c0b8020,
-	0xabf9: 0x6c1a1220, 0xabfa: 0x6c062e20,
-	0xabfd: 0x6c073e20, 0xabff: 0x6c1a1620,
-	// Block 0x2b0, offset 0xac00
-	0xac00: 0x6c1a1420, 0xac03: 0x6c139820,
-	0xac04: 0x6c1a1820,
-	0xac08: 0x6c1a1c20, 0xac09: 0x6c1a1a20, 0xac0b: 0x6c1a1e20,
-	0xac0d: 0x6c1a2020, 0xac0f: 0x6c05d220,
-	0xac12: 0x6c013c20, 0xac13: 0x6c1a2220,
-	0xac16: 0x6c1a2620,
-	0xac18: 0x6c1a2420,
-	0xac1c: 0x6c1a2a20, 0xac1f: 0x6c0fe020,
-	0xac26: 0x6c1a2c20, 0xac27: 0x6c002a20,
-	0xac28: 0x6c07d620,
-	0xac2d: 0x6c055e20,
-	0xac30: 0x6c0e5220,
-	0xac37: 0x6c1a2e20,
-	0xac38: 0x6c1a3020, 0xac3b: 0x6c1a3420,
-	// Block 0x2b1, offset 0xac40
-	0xac40: 0x6c1a3620, 0xac42: 0x6c07e020,
-	0xac47: 0x6c04ca20,
-	0xac4a: 0x6c140220,
-	0xac4e: 0x6c1a3220, 0xac4f: 0x6c1a3820,
-	0xac50: 0x6c079a20, 0xac51: 0x6c06a220,
-	0xac61: 0x6c1a4020,
-	0xac64: 0x6c076220, 0xac66: 0x6c0e1a20,
-	0xac69: 0x6c1a3a20, 0xac6a: 0x6c0f2420,
-	0xac7f: 0x6c1a4220,
-	// Block 0x2b2, offset 0xac80
-	0xac82: 0x6c0b8820,
-	0xac88: 0x6c1a3e20, 0xac89: 0x6c1a4420, 0xac8b: 0x6c056220,
-	0xac93: 0x6c1a4620,
-	0xaca0: 0x6c1a4820, 0xaca2: 0x6c06a420, 0xaca3: 0x6c027420,
-	0xaca4: 0x6c1a4c20,
-	0xacaa: 0x6c1a4e20,
-	0xacb0: 0x6c1a5020, 0xacb3: 0x6c1a4a20,
-	// Block 0x2b3, offset 0xacc0
-	0xacc0: 0x6c1a3c20, 0xacc3: 0x6c1a5220,
-	0xacc6: 0x6c1a5420,
-	0xaccb: 0x6c145c20,
-	0xacce: 0x6c0ade20,
-	0xacd2: 0x6c1a5820, 0xacd3: 0x6c1a5a20,
-	0xacd4: 0x6c1a5620, 0xacd6: 0x6c1a5e20,
-	0xacdc: 0x6c111420, 0xacdf: 0x6c009020,
-	0xace0: 0x6c12c820, 0xace3: 0x6c1a6020,
-	0xacf4: 0x6c0b0220, 0xacf7: 0x6c090220,
-	0xacf9: 0x6c115e20, 0xacfa: 0x6c039020,
-	0xacfc: 0x6c07ee20,
-	// Block 0x2b4, offset 0xad00
-	0xad00: 0x6c144620, 0xad02: 0x6c104c20,
-	0xad05: 0x6c05d420, 0xad06: 0x6c0d9620,
-	0xad0a: 0x6c1a5c20, 0xad0b: 0x6c1a6220,
-	0xad15: 0x6c0d8020,
-	0xad19: 0x6c1a6420,
-	0xad1d: 0x6c1a6620,
-	0xad21: 0x6c1a6a20,
-	0xad24: 0x6c0f4220,
-	0xad2a: 0x6c030c20,
-	0xad2f: 0x6c319c20,
-	0xad30: 0x6c013e20, 0xad31: 0x6c13be20,
-	0xad34: 0x6c0ae020, 0xad35: 0x6c0fbc20,
-	0xad3a: 0x6c07e420,
-	0xad3d: 0x6c1a7620,
-	// Block 0x2b5, offset 0xad40
-	0xad40: 0x6c135220, 0xad41: 0x6c168220,
-	0xad4a: 0x6c022020, 0xad4b: 0x6c1a6e20,
-	0xad51: 0x6c0cb020, 0xad52: 0x6c1a7420,
-	0xad54: 0x6c0ff220, 0xad57: 0x6c0fbe20,
-	0xad58: 0x6c0ff420, 0xad59: 0x6c11d220, 0xad5a: 0x6c0f0a20,
-	0xad5e: 0x6c07aa20,
-	0xad62: 0x6c1a6c20,
-	0xad69: 0x6c016820, 0xad6b: 0x6c0f9820,
-	0xad70: 0x6c1a7020, 0xad72: 0x6c1a6820,
-	0xad75: 0x6c0b6420,
-	0xad79: 0x6c1a7820,
-	0xad7e: 0x6c09e820,
-	// Block 0x2b6, offset 0xad80
-	0xad83: 0x6c048220,
-	0xad85: 0x6c1a7a20,
-	0xad93: 0x6c13a820,
-	0xad97: 0x6c0d3620,
-	0xad9c: 0x6c0efc20, 0xad9f: 0x6c1a7e20,
-	0xada8: 0x6c143220, 0xadab: 0x6c1a8020,
-	0xadae: 0x6c1a8a20,
-	0xadb3: 0x6c133620,
-	0xadb8: 0x6c1a8820, 0xadb9: 0x6c1a7c20, 0xadba: 0x6c1a8220, 0xadbb: 0x6c1a8620,
-	0xadbe: 0x6c076420,
-	// Block 0x2b7, offset 0xadc0
-	0xadc1: 0x6c136a20,
-	0xadc5: 0x6c1a8c20, 0xadc7: 0x6c0e3e20,
-	0xadca: 0x6c022220,
-	0xadcc: 0x6c0ae220,
-	0xadd1: 0x6c1a9020, 0xadd3: 0x6c1a8e20,
-	0xadd5: 0x6c072c20, 0xadd7: 0x6c1a9220,
-	0xadd8: 0x6c1a9620, 0xadd9: 0x6c1a9420,
-	0xaddc: 0x6c1a9a20, 0xadde: 0x6c1a8420, 0xaddf: 0x6c1a9e20,
-	0xade4: 0x6c1a9c20, 0xade5: 0x6c1a9820,
-	0xadeb: 0x6c087020,
-	0xadec: 0x6c0b6620, 0xadee: 0x6c0ce420, 0xadef: 0x6c1aa020,
-	0xadf0: 0x6c0bf820, 0xadf1: 0x6c009a20, 0xadf2: 0x6c116c20,
-	0xadf7: 0x6c0f2620,
-	0xadf9: 0x6c1aa420, 0xadfa: 0x6c1aa220, 0xadfb: 0x6c1aa620,
-	0xadfc: 0x6c1aa820, 0xadfd: 0x6c1aaa20,
-	// Block 0x2b8, offset 0xae00
-	0xae02: 0x6c1aac20,
-	0xae09: 0x6c137a20, 0xae0a: 0x6c1aae20,
-	0xae0f: 0x6c01c420,
-	0xae10: 0x6c1ab020,
-	0xae15: 0x6c158420, 0xae16: 0x6c025420,
-	0xae18: 0x6c18f420, 0xae19: 0x6c09dc20, 0xae1a: 0x6c0d7620, 0xae1b: 0x6c1ab220,
-	0xae1c: 0x6c152620,
-	0xae22: 0x6c14b820,
-	0xae25: 0x6c1ab620, 0xae27: 0x6c0dc620,
-	0xae29: 0x6c0f9a20, 0xae2a: 0x6c0d7820, 0xae2b: 0x6c12ca20,
-	0xae2c: 0x6c1ab820, 0xae2d: 0x6c1aba20, 0xae2e: 0x6c017220,
-	0xae31: 0x6c090420, 0xae32: 0x6c1abc20,
-	0xae37: 0x6c006020,
-	0xae38: 0x6c1abe20,
-	0xae3e: 0x6c1ac020,
-	// Block 0x2b9, offset 0xae40
-	0xae44: 0x6c014020, 0xae47: 0x6c039220,
-	0xae48: 0x6c10a820, 0xae49: 0x6c13c020,
-	0xae4e: 0x6c1ac820, 0xae4f: 0x6c0ce620,
-	0xae50: 0x6c1ac620, 0xae51: 0x6c056420,
-	0xae54: 0x6c144a20, 0xae55: 0x6c1ac420, 0xae57: 0x6c0ff620,
-	0xae58: 0x6c1acc20, 0xae5a: 0x6c1aca20,
-	0xae60: 0x6c1ad020, 0xae62: 0x6c1ace20,
-	0xae65: 0x6c017420, 0xae67: 0x6c1ad220,
-	0xae68: 0x6c0a5a20, 0xae69: 0x6c1ad620, 0xae6a: 0x6c0dfe20,
-	0xae6c: 0x6c1ad420, 0xae6e: 0x6c133e20,
-	0xae73: 0x6c0a3a20,
-	0xae74: 0x6c0fe220,
-	0xae78: 0x6c1ad820,
-	0xae7d: 0x6c06a620,
-	// Block 0x2ba, offset 0xae80
-	0xae81: 0x6c1ada20, 0xae82: 0x6c10e620, 0xae83: 0x6c121c20,
-	0xae84: 0x6c14f220,
-	0xae8a: 0x6c10ee20,
-	0xae8d: 0x6c1aec20,
-	0xae93: 0x6c03dc20,
-	0xae96: 0x6c159620,
-	0xae99: 0x6c14ae20, 0xae9b: 0x6c1baa20,
-	0xae9d: 0x6c1adc20,
-	0xaea3: 0x6c1ae220,
-	0xaea5: 0x6c0d8220,
-	0xaea8: 0x6c140420,
-	0xaeac: 0x6c0fc020,
-	0xaeb2: 0x6c1ae420,
-	0xaeb9: 0x6c145e20, 0xaebb: 0x6c07ac20,
-	0xaebe: 0x6c0a5c20,
-	// Block 0x2bb, offset 0xaec0
-	0xaec6: 0x6c1ae620,
-	0xaec9: 0x6c087420, 0xaecb: 0x6c087220,
-	0xaed0: 0x6c003220, 0xaed1: 0x6c063020, 0xaed3: 0x6c0bd620,
-	0xaed4: 0x6c006220,
-	0xaed9: 0x6c1aee20, 0xaeda: 0x6c1af020,
-	0xaedc: 0x6c1aea20,
-	0xaee5: 0x6c00ec20, 0xaee6: 0x6c030e20,
-	0xaee8: 0x6c1ae820, 0xaeea: 0x6c14da20, 0xaeeb: 0x6c127e20,
-	0xaef6: 0x6c001020,
-	0xaefb: 0x6c00b220,
-	0xaeff: 0x6c087620,
-	// Block 0x2bc, offset 0xaf00
-	0xaf01: 0x6c006420, 0xaf03: 0x6c000620,
-	0xaf09: 0x6c1afa20,
-	0xaf11: 0x6c1af620,
-	0xaf18: 0x6c14c820, 0xaf1a: 0x6c1afc20,
-	0xaf1c: 0x6c1af820, 0xaf1f: 0x6c1af420,
-	0xaf20: 0x6c0b2620,
-	0xaf25: 0x6c1af220,
-	0xaf29: 0x6c138c20,
-	0xaf2f: 0x6c066820,
-	0xaf35: 0x6c1b0420, 0xaf36: 0x6c1b0620,
-	0xaf3c: 0x6c0a5e20,
-	// Block 0x2bd, offset 0xaf40
-	0xaf40: 0x6c1afe20, 0xaf41: 0x6c16dc20,
-	0xaf46: 0x6c113c20,
-	0xaf49: 0x6c1b0220,
-	0xaf5a: 0x6c076620,
-	0xaf62: 0x6c1b0820,
-	0xaf66: 0x6c12cc20,
-	0xaf6a: 0x6c1b0a20,
-	0xaf6c: 0x6c1b0020,
-	0xaf7f: 0x6c14c620,
-	// Block 0x2be, offset 0xaf80
-	0xaf92: 0x6c116020,
-	0xaf9a: 0x6c1b0c20, 0xaf9b: 0x6c128020,
-	0xafbc: 0x6c1b0e20, 0xafbd: 0x6c1b1620, 0xafbe: 0x6c1b1020,
-	// Block 0x2bf, offset 0xafc0
-	0xafc1: 0x6c01c620, 0xafc2: 0x6c1b1420,
-	0xafc9: 0x6c090620, 0xafcb: 0x6c1b1220,
-	0xafcc: 0x6c05d620,
-	0xafd0: 0x6c1b2e20,
-	0xafd6: 0x6c1b2020, 0xafd7: 0x6c1b1a20,
-	0xafe1: 0x6c0e7c20, 0xafe3: 0x6c1b1820,
-	0xafe6: 0x6c1b1c20,
-	0xafe9: 0x6c1b1e20,
-	0xaffa: 0x6c1b2220, 0xaffb: 0x6c1b2420,
-	// Block 0x2c0, offset 0xb000
-	0xb009: 0x6c039420, 0xb00b: 0x6c1b2820,
-	0xb00c: 0x6c1b2620,
-	0xb016: 0x6c1b2a20,
-	0xb022: 0x6c0ae420,
-	0xb02a: 0x6c1b3020,
-	0xb02c: 0x6c0f2820,
-	0xb030: 0x6c010620, 0xb032: 0x6c1b2c20,
-	0xb036: 0x6c1b3220,
-	0xb03e: 0x6c1b3420,
-	// Block 0x2c1, offset 0xb040
-	0xb040: 0x6c1b3a20, 0xb043: 0x6c1b3620,
-	0xb045: 0x6c1b3820,
-	0xb050: 0x6c087820, 0xb051: 0x6c1b3c20,
-	0xb054: 0x6c06a820, 0xb055: 0x6c1b3e20, 0xb057: 0x6c08c820,
-	0xb058: 0x6c0d6820, 0xb05a: 0x6c1b4020, 0xb05b: 0x6c1b4220,
-	0xb05c: 0x6c088820, 0xb05d: 0x6c06aa20, 0xb05f: 0x6c14f420,
-	0xb063: 0x6c03bc20,
-	0xb064: 0x6c063220, 0xb065: 0x6c1b4420, 0xb066: 0x6c02a420,
-	0xb069: 0x6c1b4620, 0xb06b: 0x6c0d6a20,
-	0xb070: 0x6c1b4820, 0xb071: 0x6c1b9820, 0xb073: 0x6c1b4a20,
-	0xb075: 0x6c1b4c20,
-	0xb078: 0x6c1b4e20, 0xb07a: 0x6c1b5220,
-	// Block 0x2c2, offset 0xb080
-	0xb080: 0x6c1b5420, 0xb083: 0x6c1b5620,
-	0xb085: 0x6c0dd820, 0xb087: 0x6c00ca20,
-	0xb088: 0x6c096220, 0xb089: 0x6c004420, 0xb08b: 0x6c0cea20,
-	0xb08c: 0x6c031020, 0xb08d: 0x6c08fa20, 0xb08f: 0x6c06ac20,
-	0xb095: 0x6c0ff820, 0xb097: 0x6c098e20,
-	0xb098: 0x6c031220, 0xb099: 0x6c0e8420, 0xb09a: 0x6c0f4420, 0xb09b: 0x6c003020,
-	0xb09c: 0x6c03de20, 0xb09d: 0x6c13c220, 0xb09f: 0x6c091420,
-	0xb0a2: 0x6c041020, 0xb0a3: 0x6c0c5620,
-	0xb0a4: 0x6c090820, 0xb0a5: 0x6c155c20, 0xb0a6: 0x6c1b5820,
-	0xb0ae: 0x6c042420,
-	0xb0b0: 0x6c07ae20, 0xb0b3: 0x6c025820,
-	0xb0b4: 0x6c014220, 0xb0b5: 0x6c0a6020, 0xb0b6: 0x6c01c820,
-	0xb0b8: 0x6c1b5a20, 0xb0b9: 0x6c159820,
-	0xb0bf: 0x6c09de20,
-	// Block 0x2c3, offset 0xb0c0
-	0xb0c2: 0x6c095820, 0xb0c3: 0x6c1b5c20,
-	0xb0c4: 0x6c039620, 0xb0c5: 0x6c108c20, 0xb0c6: 0x6c14a220, 0xb0c7: 0x6c1b5e20,
-	0xb0c9: 0x6c1b6020,
-	0xb0cc: 0x6c12ce20,
-	0xb0d0: 0x6c1b6420, 0xb0d2: 0x6c030020, 0xb0d3: 0x6c051620,
-	0xb0d4: 0x6c1b6220,
-	0xb0db: 0x6c031420,
-	0xb0dd: 0x6c0b2820, 0xb0de: 0x6c1b6c20, 0xb0df: 0x6c081620,
-	0xb0e1: 0x6c01ca20, 0xb0e2: 0x6c1b6a20,
-	0xb0e4: 0x6c1b6620, 0xb0e5: 0x6c1b6e20, 0xb0e6: 0x6c1b6820, 0xb0e7: 0x6c10fa20,
-	0xb0e8: 0x6c205420, 0xb0e9: 0x6c0b2a20, 0xb0eb: 0x6c1b7020,
-	0xb0ee: 0x6c164820,
-	0xb0f0: 0x6c1b7220, 0xb0f3: 0x6c1b7620,
-	0xb0f5: 0x6c0eb020, 0xb0f6: 0x6c1b7420,
-	0xb0f8: 0x6c0bc620, 0xb0fa: 0x6c08ca20,
-	0xb0fe: 0x6c0d9820, 0xb0ff: 0x6c097e20,
-	// Block 0x2c4, offset 0xb100
-	0xb101: 0x6c130620, 0xb102: 0x6c0c5820,
-	0xb104: 0x6c092a20, 0xb105: 0x6c1b7820, 0xb106: 0x6c0a6220, 0xb107: 0x6c1b7a20,
-	0xb108: 0x6c1b7c20, 0xb109: 0x6c006620, 0xb10a: 0x6c0d6c20, 0xb10b: 0x6c0b6820,
-	0xb10d: 0x6c1b7e20, 0xb10e: 0x6c104e20, 0xb10f: 0x6c0a6420,
-	0xb111: 0x6c0a6620, 0xb113: 0x6c1b8020,
-	0xb116: 0x6c0c5a20,
-	0xb11a: 0x6c0a6820,
-	0xb120: 0x6c1b8220, 0xb122: 0x6c1b8420,
-	0xb124: 0x6c151020,
-	0xb128: 0x6c1b8620,
-	0xb12d: 0x6c04b420,
-	0xb131: 0x6c099020,
-	0xb138: 0x6c1b8820, 0xb139: 0x6c1b8a20, 0xb13a: 0x6c094820, 0xb13b: 0x6c0b1c20,
-	0xb13c: 0x6c10d020, 0xb13d: 0x6c0b6c20, 0xb13e: 0x6c125020, 0xb13f: 0x6c10e820,
-	// Block 0x2c5, offset 0xb140
-	0xb140: 0x6c04ba20, 0xb141: 0x6c1b8c20,
-	0xb145: 0x6c044a20, 0xb146: 0x6c1b8e20,
-	0xb148: 0x6c052420, 0xb14a: 0x6c108620, 0xb14b: 0x6c019820,
-	0xb14d: 0x6c087a20, 0xb14e: 0x6c1b9020, 0xb14f: 0x6c1b9620,
-	0xb150: 0x6c1b9420, 0xb151: 0x6c052220, 0xb153: 0x6c1b9220,
-	0xb155: 0x6c0f9c20,
-	0xb15e: 0x6c0d5820,
-	0xb160: 0x6c0fc220, 0xb161: 0x6c092020,
-	0xb164: 0x6c0cec20, 0xb165: 0x6c160020,
-	0xb16c: 0x6c1b9a20, 0xb16e: 0x6c1b9c20, 0xb16f: 0x6c109420,
-	0xb171: 0x6c083a20,
-	0xb176: 0x6c1ba020,
-	0xb179: 0x6c1ba220,
-	// Block 0x2c6, offset 0xb180
-	0xb18c: 0x6c1ba420,
-	0xb190: 0x6c039820, 0xb191: 0x6c1ba620,
-	0xb194: 0x6c1ba820,
-	0xb1a1: 0x6c019020,
-	0xb1a8: 0x6c0cb220, 0xb1a9: 0x6c037820, 0xb1ab: 0x6c1bac20,
-	0xb1ac: 0x6c14a020,
-	0xb1b1: 0x6c0d9c20, 0xb1b3: 0x6c02a620,
-	0xb1b6: 0x6c1bb020, 0xb1b7: 0x6c1bb420,
-	0xb1b8: 0x6c036e20, 0xb1bb: 0x6c1bae20,
-	0xb1bc: 0x6c1bb220, 0xb1be: 0x6c1bb820,
-	// Block 0x2c7, offset 0xb1c0
-	0xb1c5: 0x6c1bb620, 0xb1c7: 0x6c1bba20,
-	0xb1d9: 0x6c1bbc20,
-	0xb1e0: 0x6c106220, 0xb1e1: 0x6c048420,
-	0xb1e8: 0x6c020220, 0xb1e9: 0x6c1bbe20, 0xb1ea: 0x6c1bc820,
-	0xb1ed: 0x6c1bc420, 0xb1ef: 0x6c13c620,
-	0xb1f0: 0x6c13c420,
-	0xb1f6: 0x6c0ffa20,
-	0xb1fa: 0x6c1bc220, 0xb1fb: 0x6c09f420,
-	0xb1fd: 0x6c1bc020,
-	// Block 0x2c8, offset 0xb200
-	0xb207: 0x6c0ba820,
-	0xb20b: 0x6c1bca20,
-	0xb20e: 0x6c07ec20,
-	0xb211: 0x6c1bd620,
-	0xb214: 0x6c1bd820, 0xb215: 0x6c1bcc20, 0xb216: 0x6c025a20, 0xb217: 0x6c1bce20,
-	0xb218: 0x6c1be020, 0xb219: 0x6c1bde20, 0xb21a: 0x6c1bdc20, 0xb21b: 0x6c1bd420,
-	0xb21f: 0x6c1bd220,
-	0xb222: 0x6c1bda20,
-	0xb229: 0x6c13c820,
-	// Block 0x2c9, offset 0xb240
-	0xb24b: 0x6c1be820,
-	0xb24c: 0x6c1be220, 0xb24e: 0x6c1be620,
-	0xb250: 0x6c15f020, 0xb252: 0x6c1be420,
-	0xb25c: 0x6c1bd020,
-	0xb269: 0x6c0baa20,
-	0xb26c: 0x6c1bea20, 0xb26f: 0x6c078620,
-	0xb273: 0x6c1bec20,
-	0xb276: 0x6c1bee20,
-	// Block 0x2ca, offset 0xb280
-	0xb282: 0x6c1bf420,
-	0xb284: 0x6c1bf220, 0xb287: 0x6c1bf020,
-	0xb28b: 0x6c0ffc20,
-	0xb28c: 0x6c1bc620,
-	0xb290: 0x6c1c0020,
-	0xb29d: 0x6c1bf820,
-	0xb2a2: 0x6c1bf620,
-	0xb2ac: 0x6c1bfa20, 0xb2ae: 0x6c1bfc20,
-	0xb2b7: 0x6c1c0220,
-	0xb2ba: 0x6c169420,
-	0xb2bc: 0x6c1c0420, 0xb2bd: 0x6c1bfe20,
-	// Block 0x2cb, offset 0xb2c0
-	0xb2c9: 0x6c1c0620,
-	0xb2cc: 0x6c037020, 0xb2cd: 0x6c1c0820,
-	0xb2d2: 0x6c1c0c20, 0xb2d3: 0x6c1c0a20,
-	0xb2d6: 0x6c1c0e20,
-	0xb2db: 0x6c1c1020,
-	0xb2dd: 0x6c0c5c20, 0xb2de: 0x6c099220,
-	0xb2e1: 0x6c0a1420, 0xb2e3: 0x6c0d0220,
-	0xb2e5: 0x6c06ae20, 0xb2e6: 0x6c078820, 0xb2e7: 0x6c06b020,
-	0xb2e8: 0x6c044c20, 0xb2eb: 0x6c1c1220,
-	0xb2ee: 0x6c078a20,
-	0xb2f1: 0x6c063420, 0xb2f2: 0x6c1c1420, 0xb2f3: 0x6c149c20,
-	0xb2f4: 0x6c112a20, 0xb2f5: 0x6c1c1620, 0xb2f7: 0x6c06b220,
-	0xb2fb: 0x6c030820,
-	0xb2fd: 0x6c0e0220, 0xb2fe: 0x6c04cc20,
-	// Block 0x2cc, offset 0xb300
-	0xb302: 0x6c087c20, 0xb303: 0x6c12d220,
-	0xb306: 0x6c11e220,
-	0xb30b: 0x6c1c1820,
-	0xb30c: 0x6c039a20,
-	0xb311: 0x6c1c1e20,
-	0xb316: 0x6c0eb220,
-	0xb319: 0x6c1c1c20, 0xb31a: 0x6c1c1a20, 0xb31b: 0x6c1c2020,
-	0xb31d: 0x6c0f4620,
-	0xb325: 0x6c0b8a20,
-	0xb32b: 0x6c087e20,
-	0xb32d: 0x6c0c1420, 0xb32f: 0x6c0d9e20,
-	0xb330: 0x6c03b020, 0xb333: 0x6c0eb420,
-	0xb336: 0x6c1c2220, 0xb337: 0x6c1c2420,
-	0xb338: 0x6c0ae620,
-	0xb33d: 0x6c140620,
-	// Block 0x2cd, offset 0xb340
-	0xb340: 0x6c1c2a20, 0xb343: 0x6c1c2820,
-	0xb344: 0x6c1c2620, 0xb345: 0x6c131620, 0xb347: 0x6c1c3820,
-	0xb34c: 0x6c144820, 0xb34e: 0x6c1c2c20,
-	0xb354: 0x6c1c3020, 0xb355: 0x6c146a20, 0xb357: 0x6c1c2e20,
-	0xb35f: 0x6c1c3220,
-	0xb361: 0x6c11b020, 0xb362: 0x6c1c3420, 0xb363: 0x6c135420,
-	0xb364: 0x6c1c3620,
-	0xb372: 0x6c031620, 0xb373: 0x6c135620,
-	0xb374: 0x6c110220, 0xb375: 0x6c1c3a20, 0xb376: 0x6c1c3c20,
-	0xb378: 0x6c06b420, 0xb379: 0x6c031820, 0xb37a: 0x6c1c3e20, 0xb37b: 0x6c061020,
-	0xb37c: 0x6c159420, 0xb37d: 0x6c155e20, 0xb37e: 0x6c039c20, 0xb37f: 0x6c1c4220,
-	// Block 0x2ce, offset 0xb380
-	0xb381: 0x6c0eb620, 0xb383: 0x6c06b620,
-	0xb384: 0x6c0a6a20, 0xb387: 0x6c121e20,
-	0xb38a: 0x6c0a6c20,
-	0xb38f: 0x6c0a3c20,
-	0xb395: 0x6c0f4820, 0xb396: 0x6c13ca20, 0xb397: 0x6c0f9e20,
-	0xb39a: 0x6c06b820,
-	0xb39c: 0x6c12d420,
-	0xb3a0: 0x6c1c4420,
-	0xb3a6: 0x6c0fde20, 0xb3a7: 0x6c079c20,
-	0xb3ab: 0x6c063620,
-	0xb3ad: 0x6c0f4a20,
-	0xb3b5: 0x6c004620, 0xb3b6: 0x6c0a2820, 0xb3b7: 0x6c06ba20,
-	0xb3b8: 0x6c159a20,
-	// Block 0x2cf, offset 0xb3c0
-	0xb3c1: 0x6c1c4620, 0xb3c2: 0x6c1c4820, 0xb3c3: 0x6c114620,
-	0xb3c8: 0x6c1c4a20, 0xb3c9: 0x6c16b620, 0xb3ca: 0x6c16de20,
-	0xb3cf: 0x6c1c4e20,
-	0xb3d0: 0x6c1c4c20, 0xb3d3: 0x6c028220,
-	0xb3d6: 0x6c1c5020,
-	0xb3da: 0x6c1c5620, 0xb3db: 0x6c1c5820,
-	0xb3dd: 0x6c1c5420, 0xb3df: 0x6c129c20,
-	0xb3e0: 0x6c0a6e20, 0xb3e1: 0x6c1c5c20, 0xb3e2: 0x6c1c5a20, 0xb3e3: 0x6c1c5220,
-	0xb3e8: 0x6c1c5e20, 0xb3e9: 0x6c1c6020,
-	0xb3ec: 0x6c1c6220,
-	0xb3f0: 0x6c1c6820, 0xb3f1: 0x6c1c6420, 0xb3f3: 0x6c1c6620,
-	0xb3f4: 0x6c1c6a20, 0xb3f6: 0x6c014420, 0xb3f7: 0x6c0f4c20,
-	0xb3f8: 0x6c1c6c20, 0xb3fa: 0x6c05d820, 0xb3fb: 0x6c022420,
-	0xb3fc: 0x6c111020, 0xb3fe: 0x6c1c6e20, 0xb3ff: 0x6c10de20,
-	// Block 0x2d0, offset 0xb400
-	0xb401: 0x6c138e20, 0xb403: 0x6c1c7020,
-	0xb404: 0x6c16e020,
-	0xb409: 0x6c1c7220, 0xb40a: 0x6c135820, 0xb40b: 0x6c1c7820,
-	0xb40c: 0x6c172c20, 0xb40d: 0x6c174c20, 0xb40f: 0x6c08f020,
-	0xb410: 0x6c10d220, 0xb411: 0x6c1c7a20, 0xb413: 0x6c042620,
-	0xb414: 0x6c0eb820, 0xb415: 0x6c00b420, 0xb416: 0x6c1c7c20, 0xb417: 0x6c132420,
-	0xb418: 0x6c06bc20, 0xb41b: 0x6c0e5420,
-	0xb41f: 0x6c0f4e20,
-	0xb425: 0x6c152e20, 0xb426: 0x6c061220, 0xb427: 0x6c063820,
-	0xb429: 0x6c1c7e20,
-	0xb42d: 0x6c1c8020, 0xb42f: 0x6c1c8c20,
-	0xb431: 0x6c095a20,
-	0xb435: 0x6c0eba20, 0xb437: 0x6c048620,
-	0xb438: 0x6c1c8220,
-	0xb43c: 0x6c127220, 0xb43e: 0x6c0e4020,
-	// Block 0x2d1, offset 0xb440
-	0xb441: 0x6c1c8420,
-	0xb448: 0x6c1c8620, 0xb44a: 0x6c048820,
-	0xb44c: 0x6c1c8820, 0xb44e: 0x6c1c8a20,
-	0xb451: 0x6c1c8e20, 0xb453: 0x6c101820,
-	0xb456: 0x6c1c9020, 0xb457: 0x6c1c9220,
-	0xb459: 0x6c1c9420,
-	0xb45c: 0x6c1c7620, 0xb45d: 0x6c1c7420,
-	0xb461: 0x6c1c9620, 0xb462: 0x6c056620,
-	0xb466: 0x6c126a20,
-	0xb469: 0x6c07b020, 0xb46a: 0x6c128a20, 0xb46b: 0x6c0ebc20,
-	0xb46c: 0x6c12b220, 0xb46d: 0x6c1c9820,
-	0xb470: 0x6c0a7020, 0xb471: 0x6c010820, 0xb473: 0x6c1c9a20,
-	0xb477: 0x6c1c9c20,
-	0xb479: 0x6c153420,
-	0xb47c: 0x6c122020, 0xb47f: 0x6c1ca220,
-	// Block 0x2d2, offset 0xb480
-	0xb480: 0x6c017620, 0xb481: 0x6c0bd820, 0xb482: 0x6c1ca020, 0xb483: 0x6c1c9e20,
-	0xb484: 0x6c056820, 0xb485: 0x6c0da020, 0xb487: 0x6c1caa20,
-	0xb488: 0x6c1ca620, 0xb48a: 0x6c1ca420, 0xb48b: 0x6c161620,
-	0xb48c: 0x6c066a20,
-	0xb490: 0x6c0a3e20, 0xb491: 0x6c1ca820, 0xb492: 0x6c0fc420, 0xb493: 0x6c09c820,
-	0xb497: 0x6c106820,
-	0xb498: 0x6c1cb020, 0xb499: 0x6c1cae20,
-	0xb49e: 0x6c1cac20,
-	0xb4a0: 0x6c1cb220, 0xb4a1: 0x6c066c20,
-	0xb4a8: 0x6c1cb420, 0xb4a9: 0x6c131420, 0xb4aa: 0x6c0a0220,
-	0xb4ad: 0x6c1cb620, 0xb4ae: 0x6c125220,
-	0xb4b3: 0x6c106a20,
-	0xb4b4: 0x6c0ebe20,
-	0xb4b9: 0x6c0f8c20,
-	0xb4bc: 0x6c1cb820, 0xb4bd: 0x6c03c220,
-	// Block 0x2d3, offset 0xb4c0
-	0xb4c3: 0x6c0b2c20,
-	0xb4c5: 0x6c127420,
-	0xb4cc: 0x6c039e20, 0xb4cd: 0x6c10f020,
-	0xb4d6: 0x6c1cba20, 0xb4d7: 0x6c088020,
-	0xb4d8: 0x6c140820, 0xb4d9: 0x6c140a20,
-	0xb4dc: 0x6c017820, 0xb4dd: 0x6c1cc420,
-	0xb4e0: 0x6c0e8620,
-	0xb4e4: 0x6c1cbe20,
-	0xb4eb: 0x6c022620,
-	0xb4f0: 0x6c1d2420, 0xb4f1: 0x6c1cc220,
-	0xb4f5: 0x6c110420,
-	0xb4f8: 0x6c1cc020, 0xb4fb: 0x6c1cbc20,
-	0xb4fd: 0x6c075020, 0xb4ff: 0x6c1cc820,
-	// Block 0x2d4, offset 0xb500
-	0xb50e: 0x6c1cd420, 0xb50f: 0x6c1ce020,
-	0xb510: 0x6c1cd020, 0xb512: 0x6c0fe420,
-	0xb515: 0x6c1cda20, 0xb516: 0x6c12d620,
-	0xb519: 0x6c1cce20, 0xb51b: 0x6c1cd820,
-	0xb51c: 0x6c169620, 0xb51d: 0x6c088220,
-	0xb520: 0x6c0da220, 0xb521: 0x6c1cca20,
-	0xb525: 0x6c042820, 0xb526: 0x6c1cde20, 0xb527: 0x6c0bda20,
-	0xb528: 0x6c014620, 0xb529: 0x6c1cd220, 0xb52a: 0x6c022820, 0xb52b: 0x6c1cdc20,
-	0xb52f: 0x6c048a20,
-	0xb531: 0x6c1cd620,
-	0xb53a: 0x6c1ce220,
-	// Block 0x2d5, offset 0xb540
-	0xb541: 0x6c1ce620, 0xb542: 0x6c1cfa20, 0xb543: 0x6c1cf620,
-	0xb546: 0x6c1cf020,
-	0xb54a: 0x6c1cee20, 0xb54b: 0x6c16b820,
-	0xb54d: 0x6c1cf220,
-	0xb550: 0x6c048c20, 0xb552: 0x6c06be20,
-	0xb555: 0x6c0a4020,
-	0xb559: 0x6c1d0020, 0xb55a: 0x6c1ce420,
-	0xb55f: 0x6c1cec20,
-	0xb560: 0x6c1ccc20, 0xb562: 0x6c022c20, 0xb563: 0x6c1cf420,
-	0xb564: 0x6c1cf820, 0xb565: 0x6c0e5620,
-	0xb568: 0x6c076820, 0xb569: 0x6c01a820, 0xb56a: 0x6c1ce820, 0xb56b: 0x6c1cfe20,
-	0xb56c: 0x6c1cfc20, 0xb56d: 0x6c048e20, 0xb56f: 0x6c0d4a20,
-	0xb570: 0x6c02c020,
-	0xb575: 0x6c056a20, 0xb577: 0x6c1cea20,
-	// Block 0x2d6, offset 0xb580
-	0xb581: 0x6c1d0220, 0xb583: 0x6c1d0820,
-	0xb584: 0x6c1d0c20,
-	0xb589: 0x6c090a20, 0xb58b: 0x6c1d1820,
-	0xb58c: 0x6c0f5020, 0xb58d: 0x6c1d0420,
-	0xb592: 0x6c1d1420,
-	0xb594: 0x6c022a20, 0xb596: 0x6c1d1020, 0xb597: 0x6c1d1220,
-	0xb59a: 0x6c1d0a20, 0xb59b: 0x6c1d0e20,
-	0xb59f: 0x6c066e20,
-	0xb5a0: 0x6c156020, 0xb5a3: 0x6c031a20,
-	0xb5a6: 0x6c012e20, 0xb5a7: 0x6c1d1620,
-	0xb5a9: 0x6c111820, 0xb5aa: 0x6c001a20,
-	0xb5b2: 0x6c122220, 0xb5b3: 0x6c1cc620,
-	0xb5b4: 0x6c1d2220, 0xb5b5: 0x6c1d2a20, 0xb5b6: 0x6c151a20,
-	0xb5b8: 0x6c1d1c20,
-	0xb5bc: 0x6c0ffe20, 0xb5bd: 0x6c1d2620,
-	// Block 0x2d7, offset 0xb5c0
-	0xb5c5: 0x6c0ae820, 0xb5c6: 0x6c1d2820, 0xb5c7: 0x6c109620,
-	0xb5d1: 0x6c171220, 0xb5d3: 0x6c1d2020,
-	0xb5d8: 0x6c1d2c20, 0xb5da: 0x6c075220,
-	0xb5dc: 0x6c0c1620, 0xb5df: 0x6c006820,
-	0xb5e0: 0x6c1d1e20, 0xb5e1: 0x6c1d1a20, 0xb5e3: 0x6c0cf020,
-	0xb5e7: 0x6c1d0620,
-	0xb5e8: 0x6c083c20,
-	0xb5f0: 0x6c0d8420, 0xb5f1: 0x6c1d4420, 0xb5f3: 0x6c0cf220,
-	0xb5f4: 0x6c1d3a20, 0xb5f6: 0x6c1d3420, 0xb5f7: 0x6c1d3620,
-	0xb5f9: 0x6c095c20, 0xb5fa: 0x6c1d3c20, 0xb5fb: 0x6c1d4220,
-	// Block 0x2d8, offset 0xb600
-	0xb600: 0x6c1d3820, 0xb601: 0x6c099620, 0xb603: 0x6c1d3e20,
-	0xb606: 0x6c1d3220,
-	0xb608: 0x6c154820, 0xb609: 0x6c154620,
-	0xb60d: 0x6c1d4620, 0xb60e: 0x6c1d4820, 0xb60f: 0x6c006a20,
-	0xb615: 0x6c1d3020,
-	0xb61a: 0x6c050c20, 0xb61b: 0x6c000c20,
-	0xb61f: 0x6c031c20,
-	0xb621: 0x6c1d4020,
-	0xb627: 0x6c1d5020,
-	0xb628: 0x6c1d4e20,
-	0xb62c: 0x6c1d5820,
-	0xb634: 0x6c1d5a20,
-	0xb63c: 0x6c1d5620, 0xb63d: 0x6c1d5c20, 0xb63e: 0x6c1d4c20, 0xb63f: 0x6c1d5420,
-	// Block 0x2d9, offset 0xb640
-	0xb642: 0x6c1d5e20,
-	0xb644: 0x6c1d6020, 0xb647: 0x6c1d4a20,
-	0xb648: 0x6c08cc20, 0xb64a: 0x6c1d5220, 0xb64b: 0x6c0da420,
-	0xb64c: 0x6c06c020, 0xb64d: 0x6c1d2e20, 0xb64e: 0x6c0b2e20,
-	0xb653: 0x6c1d7a20,
-	0xb655: 0x6c13aa20,
-	0xb658: 0x6c1d6620, 0xb659: 0x6c1d6820, 0xb65a: 0x6c1d6a20,
-	0xb65d: 0x6c1d7820, 0xb65f: 0x6c1d7620,
-	0xb662: 0x6c148e20, 0xb663: 0x6c031e20,
-	0xb665: 0x6c1d7220, 0xb667: 0x6c056e20,
-	0xb668: 0x6c025c20, 0xb66b: 0x6c1d6c20,
-	0xb66e: 0x6c163820, 0xb66f: 0x6c1d7020,
-	0xb670: 0x6c006c20, 0xb671: 0x6c1d7420, 0xb673: 0x6c1d6220,
-	0xb674: 0x6c1d6e20, 0xb675: 0x6c1d7c20, 0xb676: 0x6c056c20, 0xb677: 0x6c1d6420,
-	0xb67e: 0x6c15c620,
-	// Block 0x2da, offset 0xb680
-	0xb682: 0x6c156220,
-	0xb687: 0x6c1d8220,
-	0xb68a: 0x6c1d8a20,
-	0xb68e: 0x6c0d3820,
-	0xb690: 0x6c16ba20, 0xb691: 0x6c1d8c20,
-	0xb694: 0x6c1d8620, 0xb696: 0x6c1d8020,
-	0xb699: 0x6c1d7e20, 0xb69a: 0x6c1d8820,
-	0xb6a4: 0x6c133820, 0xb6a7: 0x6c105020,
-	0xb6a9: 0x6c057020, 0xb6ab: 0x6c1d8e20,
-	0xb6ac: 0x6c1d8420, 0xb6ae: 0x6c1d9020,
-	0xb6b2: 0x6c05da20,
-	0xb6b6: 0x6c019a20,
-	0xb6ba: 0x6c1da020,
-	0xb6be: 0x6c032020,
-	// Block 0x2db, offset 0xb6c0
-	0xb6c3: 0x6c1d9c20,
-	0xb6c6: 0x6c1d9e20, 0xb6c7: 0x6c076a20,
-	0xb6c8: 0x6c1d9a20, 0xb6c9: 0x6c1d9620, 0xb6ca: 0x6c1d9420, 0xb6cb: 0x6c1da220,
-	0xb6cc: 0x6c1d9220, 0xb6cd: 0x6c1da620,
-	0xb6d0: 0x6c022e20,
-	0xb6e3: 0x6c1daa20,
-	0xb6e6: 0x6c1da820,
-	0xb6f2: 0x6c0ec020,
-	0xb6f4: 0x6c1db020, 0xb6f6: 0x6c1dac20, 0xb6f7: 0x6c1d9820,
-	0xb6f8: 0x6c05dc20, 0xb6fa: 0x6c1dae20,
-	0xb6fc: 0x6c1db620, 0xb6fd: 0x6c1db420, 0xb6fe: 0x6c1db820, 0xb6ff: 0x6c1db220,
-	// Block 0x2dc, offset 0xb700
-	0xb700: 0x6c1dba20,
-	0xb708: 0x6c1dbc20, 0xb709: 0x6c1dbe20, 0xb70a: 0x6c13ac20,
-	0xb70c: 0x6c1dc220, 0xb70d: 0x6c1dc020, 0xb70e: 0x6c09ca20,
-	0xb710: 0x6c0bdc20, 0xb711: 0x6c020420, 0xb712: 0x6c023020,
-	0xb714: 0x6c1dc420, 0xb716: 0x6c003e20,
-	0xb71a: 0x6c0c1820, 0xb71b: 0x6c1dc620,
-	0xb71d: 0x6c2c0020, 0xb71e: 0x6c1dc820, 0xb71f: 0x6c05a620,
-	0xb721: 0x6c1dca20,
-	0xb726: 0x6c0c5e20,
-	0xb72a: 0x6c1dcc20,
-	0xb72e: 0x6c1dce20, 0xb72f: 0x6c03e020,
-	0xb730: 0x6c1dd020, 0xb732: 0x6c1dd220, 0xb733: 0x6c1dd420,
-	0xb734: 0x6c0da620,
-	0xb738: 0x6c063a20, 0xb73b: 0x6c151220,
-	0xb73f: 0x6c140c20,
-	// Block 0x2dd, offset 0xb740
-	0xb740: 0x6c0a2020, 0xb741: 0x6c1dd620,
-	0xb747: 0x6c0c6020,
-	0xb748: 0x6c2d6c20, 0xb749: 0x6c122420, 0xb74b: 0x6c096420,
-	0xb74d: 0x6c07b220, 0xb74e: 0x6c1dd820,
-	0xb753: 0x6c0d8620,
-	0xb755: 0x6c132620,
-	0xb758: 0x6c0dda20, 0xb75b: 0x6c1dde20,
-	0xb75e: 0x6c1dda20,
-	0xb760: 0x6c1de020, 0xb763: 0x6c1ddc20,
-	0xb768: 0x6c1de220,
-	0xb76e: 0x6c133a20,
-	0xb771: 0x6c002e20,
-	0xb776: 0x6c12d820,
-	0xb779: 0x6c122620,
-	0xb77c: 0x6c1de420, 0xb77e: 0x6c1dea20, 0xb77f: 0x6c0a7220,
-	// Block 0x2de, offset 0xb780
-	0xb780: 0x6c03e220, 0xb782: 0x6c1de620, 0xb783: 0x6c1df420,
-	0xb784: 0x6c0a7420,
-	0xb789: 0x6c1de820, 0xb78a: 0x6c112c20,
-	0xb791: 0x6c15c820, 0xb792: 0x6c1dec20, 0xb793: 0x6c1dee20,
-	0xb794: 0x6c1df620, 0xb795: 0x6c100020, 0xb796: 0x6c1df020, 0xb797: 0x6c06c220,
-	0xb798: 0x6c0c3c20, 0xb79b: 0x6c1e1220,
-	0xb79c: 0x6c11c820, 0xb79e: 0x6c0ddc20,
-	0xb7ab: 0x6c122820,
-	0xb7ac: 0x6c1e9c20,
-	0xb7b1: 0x6c13cc20,
-	0xb7b5: 0x6c0f5220,
-	0xb7b9: 0x6c147e20, 0xb7bb: 0x6c1dfc20,
-	0xb7bc: 0x6c017a20, 0xb7bd: 0x6c0e8820,
-	// Block 0x2df, offset 0xb7c0
-	0xb7c2: 0x6c1e0e20,
-	0xb7c5: 0x6c0e1c20, 0xb7c6: 0x6c1e0220, 0xb7c7: 0x6c1e1020,
-	0xb7c8: 0x6c1e0620, 0xb7c9: 0x6c1e1420, 0xb7ca: 0x6c1e0c20,
-	0xb7cc: 0x6c1e0a20, 0xb7cd: 0x6c118220, 0xb7cf: 0x6c1dfe20,
-	0xb7d0: 0x6c023220, 0xb7d1: 0x6c1dfa20, 0xb7d2: 0x6c044e20, 0xb7d3: 0x6c0dde20,
-	0xb7d4: 0x6c1df220, 0xb7d7: 0x6c1df820,
-	0xb7d8: 0x6c06c420, 0xb7d9: 0x6c0c3620, 0xb7db: 0x6c0a7620,
-	0xb7dc: 0x6c1e0820, 0xb7dd: 0x6c114820,
-	0xb7e0: 0x6c045020, 0xb7e1: 0x6c028420,
-	0xb7ec: 0x6c02c220, 0xb7ed: 0x6c0b0620, 0xb7ee: 0x6c1e1820, 0xb7ef: 0x6c1e2220,
-	0xb7f1: 0x6c1e1a20, 0xb7f3: 0x6c05de20,
-	0xb7f5: 0x6c1e2420, 0xb7f6: 0x6c081820, 0xb7f7: 0x6c072e20,
-	0xb7fe: 0x6c099820, 0xb7ff: 0x6c1e0020,
-	// Block 0x2e0, offset 0xb800
-	0xb801: 0x6c08ce20, 0xb802: 0x6c1e1e20,
-	0xb807: 0x6c088420,
-	0xb808: 0x6c1e2020, 0xb809: 0x6c004820,
-	0xb80c: 0x6c1e1620,
-	0xb811: 0x6c0ec220,
-	0xb819: 0x6c045220,
-	0xb81f: 0x6c049020,
-	0xb827: 0x6c1e1c20,
-	0xb828: 0x6c000e20, 0xb82b: 0x6c079e20,
-	0xb82f: 0x6c0b3020,
-	0xb83a: 0x6c0f5420,
-	0xb83d: 0x6c120820, 0xb83e: 0x6c1e2820, 0xb83f: 0x6c0cf820,
-	// Block 0x2e1, offset 0xb840
-	0xb849: 0x6c0d4c20,
-	0xb84c: 0x6c082a20, 0xb84d: 0x6c1e2a20, 0xb84f: 0x6c1e2e20,
-	0xb850: 0x6c1e2620,
-	0xb855: 0x6c139a20, 0xb857: 0x6c0eea20,
-	0xb85c: 0x6c0cf420,
-	0xb867: 0x6c13ce20,
-	0xb868: 0x6c092c20, 0xb869: 0x6c1e4620, 0xb86b: 0x6c1e4420,
-	0xb86e: 0x6c0bb420,
-	0xb872: 0x6c05e020,
-	0xb876: 0x6c1e3820, 0xb877: 0x6c0a7a20,
-	0xb87a: 0x6c10b820, 0xb87b: 0x6c110620,
-	// Block 0x2e2, offset 0xb880
-	0xb880: 0x6c1e3420, 0xb883: 0x6c0cf620,
-	0xb888: 0x6c098020, 0xb889: 0x6c1e3e20,
-	0xb88c: 0x6c0a7820, 0xb88e: 0x6c1e3220, 0xb88f: 0x6c1e3c20,
-	0xb892: 0x6c114a20,
-	0xb896: 0x6c1e3020,
-	0xb898: 0x6c052620, 0xb89b: 0x6c02ae20,
-	0xb89f: 0x6c1e4020,
-	0xb8a0: 0x6c161e20, 0xb8a1: 0x6c07b420, 0xb8a2: 0x6c0e1e20, 0xb8a3: 0x6c1e3a20,
-	0xb8a5: 0x6c0c3820, 0xb8a7: 0x6c06c620,
-	0xb8a8: 0x6c0b8c20, 0xb8a9: 0x6c014820, 0xb8aa: 0x6c0cb420, 0xb8ab: 0x6c1e3620,
-	0xb8ac: 0x6c03f620,
-	0xb8b2: 0x6c057220,
-	0xb8b4: 0x6c0f0e20, 0xb8b5: 0x6c1e4220,
-	0xb8bb: 0x6c0cfa20,
-	0xb8be: 0x6c1e4820,
-	// Block 0x2e3, offset 0xb8c0
-	0xb8c0: 0x6c1e4c20, 0xb8c3: 0x6c0d6620,
-	0xb8c4: 0x6c1e5820, 0xb8c6: 0x6c1e4e20,
-	0xb8c9: 0x6c1e5220,
-	0xb8cf: 0x6c129e20,
-	0xb8d0: 0x6c0f5620, 0xb8d2: 0x6c1e5420,
-	0xb8d6: 0x6c156420,
-	0xb8da: 0x6c159c20, 0xb8db: 0x6c032220,
-	0xb8e1: 0x6c001c20, 0xb8e3: 0x6c1e5020,
-	0xb8e9: 0x6c1e4a20,
-	0xb8ee: 0x6c03a020,
-	0xb8f4: 0x6c014a20, 0xb8f6: 0x6c1e5620,
-	0xb8fa: 0x6c159e20,
-	// Block 0x2e4, offset 0xb900
-	0xb906: 0x6c1e5e20,
-	0xb90d: 0x6c0d6e20, 0xb90f: 0x6c1e6c20,
-	0xb913: 0x6c1e6020,
-	0xb916: 0x6c1e5a20, 0xb917: 0x6c1e6820,
-	0xb91c: 0x6c1e2c20,
-	0xb926: 0x6c1e6220,
-	0xb928: 0x6c1e6a20,
-	0xb92c: 0x6c11e420, 0xb92d: 0x6c100220,
-	0xb934: 0x6c1e5c20, 0xb936: 0x6c1e6420,
-	0xb93a: 0x6c057420,
-	0xb93e: 0x6c07fa20,
-	// Block 0x2e5, offset 0xb940
-	0xb942: 0x6c0c3a20,
-	0xb94e: 0x6c1e7420,
-	0xb958: 0x6c0f7820,
-	0xb967: 0x6c1e6e20,
-	0xb969: 0x6c145420,
-	0xb96f: 0x6c1e7020,
-	0xb976: 0x6c1e7220,
-	0xb978: 0x6c14ec20, 0xb97a: 0x6c0bc420,
-	// Block 0x2e6, offset 0xb980
-	0xb983: 0x6c05a820,
-	0xb988: 0x6c1e8020,
-	0xb992: 0x6c083e20, 0xb993: 0x6c1e7a20,
-	0xb995: 0x6c1e7820,
-	0xb99a: 0x6c110820,
-	0xb99e: 0x6c105220,
-	0xb9a4: 0x6c0f8e20, 0xb9a5: 0x6c1e7c20,
-	0xb9a9: 0x6c1e7e20, 0xb9ab: 0x6c12fa20,
-	0xb9ad: 0x6c112e20, 0xb9ae: 0x6c081a20,
-	0xb9b0: 0x6c0c6220, 0xb9b2: 0x6c143420,
-	0xb9b9: 0x6c028620, 0xb9bb: 0x6c1e8c20,
-	0xb9bc: 0x6c1e8220,
-	// Block 0x2e7, offset 0xb9c0
-	0xb9c1: 0x6c15a020, 0xb9c2: 0x6c1e9020,
-	0xb9c5: 0x6c1e8820, 0xb9c7: 0x6c1e8a20,
-	0xb9cd: 0x6c0cfc20,
-	0xb9d2: 0x6c1e8620,
-	0xb9d4: 0x6c1e0420,
-	0xb9d8: 0x6c1e8e20, 0xb9da: 0x6c1e8420,
-	0xb9e0: 0x6c1e9820, 0xb9e1: 0x6c1e9a20, 0xb9e2: 0x6c0f7a20, 0xb9e3: 0x6c1e9e20,
-	0xb9e6: 0x6c081c20, 0xb9e7: 0x6c1e9420,
-	0xb9ec: 0x6c03e420, 0xb9ef: 0x6c1ea020,
-	0xb9f1: 0x6c1e9220, 0xb9f2: 0x6c1ea820,
-	0xb9f4: 0x6c1ea620, 0xb9f6: 0x6c1ea420,
-	0xb9fa: 0x6c1eaa20,
-	0xb9fd: 0x6c1eae20, 0xb9fe: 0x6c0aea20,
-	// Block 0x2e8, offset 0xba00
-	0xba00: 0x6c1eac20,
-	0xba05: 0x6c1eb420,
-	0xba18: 0x6c1eb020,
-	0xba1c: 0x6c1eb220, 0xba1d: 0x6c1e6620,
-	0xba23: 0x6c1eb820,
-	0xba24: 0x6c1eb620,
-	0xba2a: 0x6c1e7620, 0xba2b: 0x6c1eba20,
-	0xba2c: 0x6c1ea220, 0xba2f: 0x6c088620,
-	0xba34: 0x6c1ebc20, 0xba35: 0x6c1ebe20, 0xba36: 0x6c1ec220, 0xba37: 0x6c1ec020,
-	0xba38: 0x6c1ec420, 0xba39: 0x6c023420, 0xba3b: 0x6c06c820,
-	0xba3e: 0x6c13d020, 0xba3f: 0x6c0bde20,
-	// Block 0x2e9, offset 0xba40
-	0xba45: 0x6c063c20,
-	0xba48: 0x6c1ec820,
-	0xba4d: 0x6c1ece20, 0xba4f: 0x6c12c020,
-	0xba51: 0x6c042a20,
-	0xba55: 0x6c1ecc20, 0xba56: 0x6c1eca20, 0xba57: 0x6c114c20,
-	0xba58: 0x6c1ed020, 0xba59: 0x6c049220,
-	0xba5d: 0x6c1ed420, 0xba5e: 0x6c1ed220,
-	0xba62: 0x6c032420, 0xba63: 0x6c084020,
-	0xba66: 0x6c109820,
-	0xba6c: 0x6c057620,
-	0xba70: 0x6c0bac20, 0xba72: 0x6c1ed620,
-	0xba74: 0x6c0be020, 0xba75: 0x6c0f7c20, 0xba77: 0x6c12da20,
-	0xba78: 0x6c1ed820,
-	// Block 0x2ea, offset 0xba80
-	0xba82: 0x6c1eda20, 0xba83: 0x6c1edc20,
-	0xba87: 0x6c134820,
-	0xba88: 0x6c1b5020, 0xba89: 0x6c0c0c20,
-	0xba8c: 0x6c12b420, 0xba8e: 0x6c07c820,
-	0xba90: 0x6c122a20, 0xba91: 0x6c11e620,
-	0xba97: 0x6c0fc620,
-	0xba99: 0x6c164a20, 0xba9b: 0x6c1ee020,
-	0xba9c: 0x6c093020, 0xba9f: 0x6c1ee220,
-	0xbaa1: 0x6c002c20,
-	0xbaa4: 0x6c04d020, 0xbaa5: 0x6c0c1a20, 0xbaa7: 0x6c12dc20,
-	0xbaab: 0x6c1ee420,
-	0xbaac: 0x6c085820, 0xbaad: 0x6c0e4220, 0xbaaf: 0x6c088a20,
-	0xbab0: 0x6c0b3220,
-	0xbab7: 0x6c1ee620,
-	0xbab9: 0x6c13d220,
-	0xbabc: 0x6c016a20, 0xbabd: 0x6c088c20,
-	// Block 0x2eb, offset 0xbac0
-	0xbac1: 0x6c1eec20, 0xbac3: 0x6c1ee820,
-	0xbac4: 0x6c1eee20, 0xbac5: 0x6c163a20, 0xbac6: 0x6c1eea20,
-	0xbacb: 0x6c0c7620,
-	0xbacc: 0x6c1ef020, 0xbacf: 0x6c0d5c20,
-	0xbad2: 0x6c1ef220,
-	0xbad7: 0x6c03a420,
-	0xbad9: 0x6c1ef620, 0xbadb: 0x6c1ef420,
-	0xbae0: 0x6c1ef820, 0xbae1: 0x6c1efa20, 0xbae2: 0x6c03a620,
-	0xbae5: 0x6c10e020, 0xbae6: 0x6c0e2020, 0xbae7: 0x6c044420,
-	0xbae8: 0x6c088e20, 0xbae9: 0x6c0cfe20,
-	0xbaec: 0x6c0a0420, 0xbaed: 0x6c002020,
-	0xbaf1: 0x6c1efc20,
-	0xbafa: 0x6c017c20, 0xbafb: 0x6c1f0420,
-	// Block 0x2ec, offset 0xbb00
-	0xbb02: 0x6c06ca20, 0xbb03: 0x6c1f0220,
-	0xbb06: 0x6c076e20, 0xbb07: 0x6c0a7c20,
-	0xbb0a: 0x6c1f0020,
-	0xbb0c: 0x6c0a7e20, 0xbb0e: 0x6c14d020, 0xbb0f: 0x6c076c20,
-	0xbb13: 0x6c006e20,
-	0xbb14: 0x6c0c1c20,
-	0xbb1c: 0x6c1f0e20, 0xbb1f: 0x6c0be220,
-	0xbb20: 0x6c010a20,
-	0xbb25: 0x6c09f620, 0xbb27: 0x6c146020,
-	0xbb28: 0x6c07fc20,
-	0xbb2d: 0x6c0a8020, 0xbb2f: 0x6c0bce20,
-	0xbb34: 0x6c1f0c20, 0xbb35: 0x6c1f0820, 0xbb36: 0x6c1f0a20,
-	0xbb3c: 0x6c0e8a20, 0xbb3f: 0x6c1f4a20,
-	// Block 0x2ed, offset 0xbb40
-	0xbb41: 0x6c1f1620, 0xbb42: 0x6c08d020, 0xbb43: 0x6c06cc20,
-	0xbb44: 0x6c1f1220,
-	0xbb49: 0x6c1f1420, 0xbb4b: 0x6c0b3420,
-	0xbb4f: 0x6c1f1020,
-	0xbb52: 0x6c083220,
-	0xbb5d: 0x6c1f1a20, 0xbb5e: 0x6c1f1820, 0xbb5f: 0x6c1f2220,
-	0xbb62: 0x6c1f2420,
-	0xbb64: 0x6c1f1c20, 0xbb66: 0x6c023820, 0xbb67: 0x6c1f1e20,
-	0xbb68: 0x6c1f2020, 0xbb69: 0x6c120a20,
-	0xbb6e: 0x6c12de20, 0xbb6f: 0x6c057820,
-	0xbb70: 0x6c1f2620,
-	0xbb74: 0x6c0be420, 0xbb76: 0x6c0a8220,
-	0xbb7a: 0x6c0e5820,
-	// Block 0x2ee, offset 0xbb80
-	0xbb81: 0x6c04b620, 0xbb83: 0x6c1f2820,
-	0xbb84: 0x6c1f3020, 0xbb87: 0x6c01ce20,
-	0xbb88: 0x6c1f2a20, 0xbb89: 0x6c1f2e20,
-	0xbb8e: 0x6c1f2c20,
-	0xbb91: 0x6c0a2220,
-	0xbb96: 0x6c0e4420, 0xbb97: 0x6c004a20,
-	0xbb98: 0x6c1f3220,
-	0xbb9d: 0x6c1f3420,
-	0xbba2: 0x6c0ec420,
-	0xbba6: 0x6c16aa20,
-	0xbbab: 0x6c085a20,
-	0xbbae: 0x6c13ae20,
-	0xbbb4: 0x6c140e20,
-	0xbbb8: 0x6c1f4220, 0xbbb9: 0x6c1f3820,
-	0xbbbc: 0x6c1f3e20, 0xbbbe: 0x6c1f3c20,
-	// Block 0x2ef, offset 0xbbc0
-	0xbbc1: 0x6c1f3620,
-	0xbbc4: 0x6c1f4020, 0xbbc7: 0x6c10a420,
-	0xbbc9: 0x6c1f3a20,
-	0xbbd6: 0x6c1f4420,
-	0xbbd9: 0x6c0a2420, 0xbbda: 0x6c1f4620,
-	0xbbdc: 0x6c15a220, 0xbbdd: 0x6c119420,
-	0xbbe0: 0x6c1f4820,
-	0xbbe6: 0x6c1f4c20,
-	0xbbe9: 0x6c1f4e20,
-	0xbbf0: 0x6c1f5020, 0xbbf2: 0x6c04bc20, 0xbbf3: 0x6c010c20,
-	0xbbf4: 0x6c06ce20, 0xbbf5: 0x6c1f5220, 0xbbf7: 0x6c1f5420,
-	0xbbf8: 0x6c0a2e20, 0xbbf9: 0x6c0d0020,
-	0xbbfc: 0x6c191220, 0xbbfd: 0x6c0cb820, 0xbbfe: 0x6c0cb620, 0xbbff: 0x6c0da820,
-	// Block 0x2f0, offset 0xbc00
-	0xbc00: 0x6c07a620, 0xbc03: 0x6c17ce20,
-	0xbc08: 0x6c05c020, 0xbc09: 0x6c156620, 0xbc0b: 0x6c13d420,
-	0xbc0d: 0x6c131820, 0xbc0f: 0x6c1f5620,
-	0xbc14: 0x6c07fe20, 0xbc15: 0x6c0eee20, 0xbc16: 0x6c1f5820, 0xbc17: 0x6c16e220,
-	0xbc1b: 0x6c141020,
-	0xbc1d: 0x6c0ec620, 0xbc1e: 0x6c1f5a20, 0xbc1f: 0x6c03a820,
-	0xbc26: 0x6c1f5c20, 0xbc27: 0x6c1f5e20,
-	0xbc28: 0x6c150420, 0xbc2a: 0x6c149820, 0xbc2b: 0x6c148020,
-	0xbc2c: 0x6c144c20, 0xbc2d: 0x6c081e20, 0xbc2e: 0x6c1f6220,
-	0xbc31: 0x6c096620,
-	0xbc34: 0x6c143620, 0xbc36: 0x6c1f6620, 0xbc37: 0x6c1f6c20,
-	0xbc38: 0x6c1f6a20, 0xbc3a: 0x6c03a220,
-	0xbc3d: 0x6c042c20, 0xbc3f: 0x6c1f6420,
-	// Block 0x2f1, offset 0xbc40
-	0xbc41: 0x6c1f6820,
-	0xbc46: 0x6c1f6e20,
-	0xbc49: 0x6c0bb620,
-	0xbc4e: 0x6c160220, 0xbc4f: 0x6c005220,
-	0xbc50: 0x6c07d820, 0xbc51: 0x6c0d7020, 0xbc53: 0x6c094a20,
-	0xbc56: 0x6c0aee20,
-	0xbc59: 0x6c1f7420,
-	0xbc5c: 0x6c0fc820, 0xbc5e: 0x6c1f7020, 0xbc5f: 0x6c0d4e20,
-	0xbc60: 0x6c1f7220, 0xbc61: 0x6c0aec20, 0xbc62: 0x6c150a20, 0xbc63: 0x6c1f7620,
-	0xbc64: 0x6c1f7820, 0xbc65: 0x6c15dc20,
-	0xbc6a: 0x6c1f8220,
-	0xbc6d: 0x6c06d020, 0xbc6f: 0x6c114e20,
-	0xbc70: 0x6c1f7c20, 0xbc71: 0x6c100420, 0xbc72: 0x6c1efe20, 0xbc73: 0x6c1f0620,
-	0xbc75: 0x6c040a20, 0xbc77: 0x6c113220,
-	0xbc7c: 0x6c1f8020, 0xbc7e: 0x6c0a8420, 0xbc7f: 0x6c11e820,
-	// Block 0x2f2, offset 0xbc80
-	0xbc85: 0x6c1f8c20, 0xbc87: 0x6c125420,
-	0xbc89: 0x6c1f7a20, 0xbc8b: 0x6c1f8620,
-	0xbc8c: 0x6c1f8420,
-	0xbc90: 0x6c0c1e20,
-	0xbc95: 0x6c146e20, 0xbc97: 0x6c166e20,
-	0xbc9a: 0x6c146220,
-	0xbc9c: 0x6c01d020, 0xbc9d: 0x6c089020,
-	0xbca0: 0x6c171420, 0xbca1: 0x6c1f8a20, 0xbca2: 0x6c0bae20,
-	0xbca6: 0x6c1f8820,
-	0xbca9: 0x6c1f7e20,
-	0xbcaf: 0x6c063e20,
-	0xbcb3: 0x6c1f9620,
-	0xbcb4: 0x6c1f9220, 0xbcb6: 0x6c01d220, 0xbcb7: 0x6c1f8e20,
-	0xbcb8: 0x6c1f9a20, 0xbcb9: 0x6c1fa620,
-	// Block 0x2f3, offset 0xbcc0
-	0xbcc1: 0x6c0d8820,
-	0xbcc4: 0x6c135a20, 0xbcc6: 0x6c1faa20,
-	0xbcca: 0x6c126020,
-	0xbcce: 0x6c1fa820, 0xbccf: 0x6c118420,
-	0xbcd0: 0x6c141220, 0xbcd1: 0x6c032620, 0xbcd3: 0x6c0c6e20,
-	0xbcd4: 0x6c09cc20,
-	0xbcd8: 0x6c0f1620, 0xbcda: 0x6c156820,
-	0xbcdd: 0x6c1fa020, 0xbcde: 0x6c1f9e20,
-	0xbce2: 0x6c1fa220,
-	0xbce4: 0x6c1f9c20, 0xbce7: 0x6c1fac20,
-	0xbce9: 0x6c1f9820,
-	0xbcec: 0x6c1f9420, 0xbcee: 0x6c1fa420, 0xbcef: 0x6c1f9020,
-	0xbcf1: 0x6c0e8c20, 0xbcf3: 0x6c154020,
-	0xbcf4: 0x6c091c20, 0xbcf5: 0x6c080020,
-	0xbcfb: 0x6c078c20,
-	0xbcfe: 0x6c147220, 0xbcff: 0x6c027620,
-	// Block 0x2f4, offset 0xbd00
-	0xbd02: 0x6c0f0c20, 0xbd03: 0x6c107c20,
-	0xbd04: 0x6c010e20,
-	0xbd13: 0x6c0c6420,
-	0xbd16: 0x6c0be820, 0xbd17: 0x6c053820,
-	0xbd1e: 0x6c1fb020,
-	0xbd21: 0x6c06d220, 0xbd22: 0x6c02ec20,
-	0xbd29: 0x6c1fb420, 0xbd2a: 0x6c02dc20, 0xbd2b: 0x6c1fc020,
-	0xbd32: 0x6c1fba20,
-	0xbd34: 0x6c0c6620,
-	0xbd38: 0x6c028a20, 0xbd39: 0x6c077020,
-	0xbd3c: 0x6c028820, 0xbd3d: 0x6c07b620,
-	// Block 0x2f5, offset 0xbd40
-	0xbd40: 0x6c1fb620, 0xbd41: 0x6c05ae20, 0xbd42: 0x6c057a20, 0xbd43: 0x6c100620,
-	0xbd46: 0x6c1fb220,
-	0xbd48: 0x6c004c20,
-	0xbd4d: 0x6c1fb820, 0xbd4e: 0x6c1fbc20,
-	0xbd50: 0x6c04c220, 0xbd51: 0x6c053c20, 0xbd53: 0x6c032820,
-	0xbd54: 0x6c040220,
-	0xbd59: 0x6c1fc220,
-	0xbd5c: 0x6c080a20, 0xbd5d: 0x6c147620, 0xbd5f: 0x6c084220,
-	0xbd63: 0x6c1fc420,
-	0xbd67: 0x6c127c20,
-	0xbd74: 0x6c1fdc20, 0xbd76: 0x6c019e20, 0xbd77: 0x6c1fc620,
-	0xbd7e: 0x6c1fe820, 0xbd7f: 0x6c1fc820,
-	// Block 0x2f6, offset 0xbd80
-	0xbd81: 0x6c164c20, 0xbd83: 0x6c1fd620,
-	0xbd85: 0x6c116220,
-	0xbd8d: 0x6c1fe620, 0xbd8f: 0x6c1fcc20,
-	0xbd93: 0x6c002820,
-	0xbd94: 0x6c1fd020, 0xbd97: 0x6c06d420,
-	0xbd9b: 0x6c1fd420,
-	0xbd9d: 0x6c1fd220, 0xbd9f: 0x6c1fca20,
-	0xbda0: 0x6c1fe020, 0xbda2: 0x6c0a8620,
-	0xbda6: 0x6c1ab420, 0xbda7: 0x6c067020,
-	0xbda8: 0x6c160420,
-	0xbdad: 0x6c1fce20, 0xbdaf: 0x6c0f5820,
-	0xbdb0: 0x6c023a20, 0xbdb1: 0x6c077220, 0xbdb3: 0x6c1fbe20,
-	0xbdb5: 0x6c1fde20, 0xbdb6: 0x6c02b620,
-	0xbdb9: 0x6c1fda20, 0xbdba: 0x6c1fe220,
-	0xbdbc: 0x6c100820,
-	// Block 0x2f7, offset 0xbdc0
-	0xbdc4: 0x6c03ac20, 0xbdc6: 0x6c201e20,
-	0xbdc9: 0x6c14e220, 0xbdca: 0x6c1fec20, 0xbdcb: 0x6c03aa20,
-	0xbdcd: 0x6c1ffa20,
-	0xbdd2: 0x6c141420,
-	0xbdd4: 0x6c1ffc20, 0xbdd5: 0x6c200020, 0xbdd7: 0x6c200820,
-	0xbdd8: 0x6c1ff020, 0xbdda: 0x6c0e0820,
-	0xbddf: 0x6c100a20,
-	0xbde0: 0x6c201020, 0xbde1: 0x6c1ff620, 0xbde3: 0x6c200a20,
-	0xbde7: 0x6c1ffe20,
-	0xbdee: 0x6c0b3620, 0xbdef: 0x6c201220,
-	0xbdf2: 0x6c0be620,
-	0xbdf9: 0x6c200e20, 0xbdfa: 0x6c032a20,
-	// Block 0x2f8, offset 0xbe00
-	0xbe00: 0x6c172420, 0xbe01: 0x6c1fea20,
-	0xbe04: 0x6c200620, 0xbe05: 0x6c007020,
-	0xbe08: 0x6c1fee20, 0xbe0b: 0x6c14c420,
-	0xbe0c: 0x6c1ff820, 0xbe0d: 0x6c0b0820, 0xbe0e: 0x6c0efe20, 0xbe0f: 0x6c1fe420,
-	0xbe12: 0x6c200420,
-	0xbe19: 0x6c0bb820, 0xbe1a: 0x6c201820, 0xbe1b: 0x6c02d620,
-	0xbe1c: 0x6c05e220,
-	0xbe21: 0x6c201c20, 0xbe22: 0x6c1ff220, 0xbe23: 0x6c201a20,
-	0xbe25: 0x6c200c20, 0xbe26: 0x6c1ff420,
-	0xbe28: 0x6c201420, 0xbe2a: 0x6c201620,
-	0xbe30: 0x6c203820,
-	0xbe34: 0x6c108420, 0xbe36: 0x6c200220,
-	0xbe39: 0x6c203020,
-	0xbe3d: 0x6c203420, 0xbe3f: 0x6c0f2020,
-	// Block 0x2f9, offset 0xbe40
-	0xbe4a: 0x6c15a420,
-	0xbe53: 0x6c130820,
-	0xbe54: 0x6c202a20, 0xbe55: 0x6c0d8c20,
-	0xbe59: 0x6c203620, 0xbe5a: 0x6c0cba20,
-	0xbe5c: 0x6c202420, 0xbe5d: 0x6c203e20, 0xbe5e: 0x6c203c20,
-	0xbe60: 0x6c10c620, 0xbe61: 0x6c203a20, 0xbe62: 0x6c10bc20,
-	0xbe6a: 0x6c204220, 0xbe6b: 0x6c202820,
-	0xbe6d: 0x6c04b820, 0xbe6e: 0x6c202e20, 0xbe6f: 0x6c0a0620,
-	0xbe73: 0x6c116420,
-	0xbe74: 0x6c203220, 0xbe75: 0x6c04be20, 0xbe77: 0x6c202220,
-	0xbe78: 0x6c202620, 0xbe79: 0x6c202020,
-	0xbe7c: 0x6c16e420, 0xbe7d: 0x6c02a820, 0xbe7e: 0x6c202c20,
-	// Block 0x2fa, offset 0xbe80
-	0xbe81: 0x6c204020, 0xbe82: 0x6c025e20,
-	0xbe8a: 0x6c07e620,
-	0xbe8e: 0x6c013620,
-	0xbe91: 0x6c206220,
-	0xbe94: 0x6c16e620, 0xbe95: 0x6c206820,
-	0xbe9b: 0x6c0b3820,
-	0xbe9c: 0x6c206620,
-	0xbea0: 0x6c206420,
-	0xbea7: 0x6c205e20,
-	0xbeae: 0x6c204620,
-	0xbeb1: 0x6c208020, 0xbeb2: 0x6c204420,
-	0xbeb4: 0x6c206a20,
-	0xbebb: 0x6c205a20,
-	0xbebe: 0x6c205020, 0xbebf: 0x6c204a20,
-	// Block 0x2fb, offset 0xbec0
-	0xbec1: 0x6c204c20, 0xbec3: 0x6c205c20,
-	0xbec7: 0x6c319e20,
-	0xbeca: 0x6c205620, 0xbecb: 0x6c06d620,
-	0xbecc: 0x6c0f0020, 0xbecd: 0x6c0d0420, 0xbece: 0x6c205220,
-	0xbed0: 0x6c204820, 0xbed3: 0x6c204e20,
-	0xbed8: 0x6c15a620, 0xbed9: 0x6c146820,
-	0xbedd: 0x6c205820, 0xbede: 0x6c206c20,
-	0xbee7: 0x6c207c20,
-	0xbee8: 0x6c206e20, 0xbeeb: 0x6c208820,
-	0xbeed: 0x6c208420,
-	0xbef2: 0x6c207a20,
-	0xbef9: 0x6c207820, 0xbefb: 0x6c0f1020,
-	0xbefd: 0x6c0d0620, 0xbeff: 0x6c207420,
-	// Block 0x2fc, offset 0xbf00
-	0xbf02: 0x6c207020,
-	0xbf05: 0x6c207e20,
-	0xbf0a: 0x6c208a20, 0xbf0b: 0x6c124a20,
-	0xbf0c: 0x6c209620,
-	0xbf12: 0x6c208c20, 0xbf13: 0x6c209220,
-	0xbf14: 0x6c208620, 0xbf17: 0x6c0e9c20,
-	0xbf19: 0x6c128c20, 0xbf1b: 0x6c207220,
-	0xbf1e: 0x6c208220, 0xbf1f: 0x6c0a8820,
-	0xbf21: 0x6c14ee20, 0xbf22: 0x6c20aa20, 0xbf23: 0x6c209020,
-	0xbf29: 0x6c05e420, 0xbf2a: 0x6c017e20, 0xbf2b: 0x6c02b220,
-	0xbf2e: 0x6c206020,
-	0xbf35: 0x6c0a8a20, 0xbf36: 0x6c209a20,
-	0xbf38: 0x6c20a820, 0xbf39: 0x6c098220, 0xbf3a: 0x6c02d820,
-	0xbf3d: 0x6c0e1020,
-	// Block 0x2fd, offset 0xbf40
-	0xbf44: 0x6c209420, 0xbf47: 0x6c209e20,
-	0xbf48: 0x6c20a620, 0xbf4b: 0x6c049420,
-	0xbf58: 0x6c040420, 0xbf59: 0x6c20a220,
-	0xbf5f: 0x6c03ae20,
-	0xbf61: 0x6c107e20, 0xbf62: 0x6c20a020,
-	0xbf66: 0x6c20a420,
-	0xbf72: 0x6c209820,
-	0xbf78: 0x6c209c20,
-	0xbf7f: 0x6c02b420,
-	// Block 0x2fe, offset 0xbf80
-	0xbf80: 0x6c0e4620,
-	0xbf84: 0x6c20b220,
-	0xbf8d: 0x6c20ae20, 0xbf8e: 0x6c067220,
-	0xbf90: 0x6c20ac20,
-	0xbf97: 0x6c20b820,
-	0xbf9c: 0x6c1fae20,
-	0xbfa0: 0x6c20b020, 0xbfa2: 0x6c20b420, 0xbfa3: 0x6c20b620,
-	0xbfaa: 0x6c20ce20,
-	0xbfac: 0x6c20c620, 0xbfae: 0x6c1fd820,
-	0xbfb3: 0x6c20c420,
-	0xbfb8: 0x6c20c220, 0xbfbb: 0x6c20bc20,
-	// Block 0x2ff, offset 0xbfc0
-	0xbfc1: 0x6c208e20, 0xbfc2: 0x6c20c020, 0xbfc3: 0x6c20be20,
-	0xbfd1: 0x6c20ca20, 0xbfd3: 0x6c16d020,
-	0xbfda: 0x6c20d020, 0xbfdb: 0x6c051e20,
-	0xbfde: 0x6c20c820, 0xbfdf: 0x6c20cc20,
-	0xbfe8: 0x6c11ae20, 0xbfea: 0x6c20d220,
-	0xbffa: 0x6c20da20, 0xbffb: 0x6c20d420,
-	// Block 0x300, offset 0xc000
-	0xc004: 0x6c15f220, 0xc005: 0x6c20d620,
-	0xc00a: 0x6c207620,
-	0xc012: 0x6c20dc20,
-	0xc016: 0x6c20de20,
-	0xc01d: 0x6c00e620, 0xc01f: 0x6c20e220,
-	0xc020: 0x6c05b220, 0xc021: 0x6c08d220, 0xc023: 0x6c04d220,
-	0xc027: 0x6c018020,
-	0xc032: 0x6c15ca20,
-	0xc037: 0x6c20e620,
-	0xc038: 0x6c20e420, 0xc039: 0x6c20ea20, 0xc03a: 0x6c03e620,
-	0xc03d: 0x6c04d420, 0xc03e: 0x6c032c20,
-	// Block 0x301, offset 0xc040
-	0xc043: 0x6c20f020,
-	0xc047: 0x6c20ee20,
-	0xc049: 0x6c20f220,
-	0xc04c: 0x6c01d420, 0xc04e: 0x6c0e2220,
-	0xc050: 0x6c20f420, 0xc053: 0x6c032e20,
-	0xc054: 0x6c20f820,
-	0xc059: 0x6c20f620, 0xc05b: 0x6c20fa20,
-	0xc05f: 0x6c20fc20,
-	0xc061: 0x6c20fe20, 0xc062: 0x6c089220, 0xc063: 0x6c0bea20,
-	0xc064: 0x6c075a20, 0xc066: 0x6c12fc20,
-	0xc069: 0x6c139c20, 0xc06a: 0x6c170c20,
-	0xc06f: 0x6c08be20,
-	0xc073: 0x6c07b820,
-	0xc074: 0x6c16ac20,
-	0xc078: 0x6c210020, 0xc079: 0x6c210220, 0xc07b: 0x6c089420,
-	0xc07f: 0x6c210420,
-	// Block 0x302, offset 0xc080
-	0xc080: 0x6c210620, 0xc083: 0x6c210a20,
-	0xc084: 0x6c210820, 0xc086: 0x6c144420,
-	0xc089: 0x6c0a0820, 0xc08a: 0x6c096820, 0xc08b: 0x6c085c20,
-	0xc08d: 0x6c210c20,
-	0xc095: 0x6c211020, 0xc096: 0x6c0b0a20,
-	0xc098: 0x6c210e20,
-	0xc09e: 0x6c211220,
-	0xc0a4: 0x6c211420,
-	0xc0aa: 0x6c211620, 0xc0ab: 0x6c211820,
-	0xc0af: 0x6c211a20,
-	0xc0b1: 0x6c211e20, 0xc0b2: 0x6c211c20, 0xc0b3: 0x6c212020,
-	0xc0b4: 0x6c018220, 0xc0b5: 0x6c0e4820, 0xc0b7: 0x6c212220,
-	0xc0ba: 0x6c082020, 0xc0bb: 0x6c028c20,
-	0xc0bc: 0x6c212420, 0xc0bf: 0x6c0fb020,
-	// Block 0x303, offset 0xc0c0
-	0xc0c0: 0x6c1a7220,
-	0xc0c5: 0x6c03b220, 0xc0c6: 0x6c212620,
-	0xc0cb: 0x6c212820,
-	0xc0cd: 0x6c13b020, 0xc0ce: 0x6c146420,
-	0xc0d2: 0x6c107620, 0xc0d3: 0x6c212a20,
-	0xc0d4: 0x6c122c20,
-	0xc0d8: 0x6c125620, 0xc0db: 0x6c14f620,
-	0xc0df: 0x6c212c20,
-	0xc0eb: 0x6c213020,
-	0xc0ec: 0x6c212e20, 0xc0ef: 0x6c213420,
-	0xc0f3: 0x6c213220,
-	// Block 0x304, offset 0xc100
-	0xc108: 0x6c213820,
-	0xc10f: 0x6c089620,
-	0xc111: 0x6c14b220, 0xc113: 0x6c213a20,
-	0xc114: 0x6c213c20, 0xc117: 0x6c03b420,
-	0xc11b: 0x6c213e20,
-	0xc123: 0x6c214220,
-	0xc124: 0x6c214020,
-	0xc134: 0x6c0b8e20, 0xc137: 0x6c128e20,
-	0xc138: 0x6c011020,
-	0xc13e: 0x6c11ea20,
-	// Block 0x305, offset 0xc140
-	0xc140: 0x6c0f5a20, 0xc141: 0x6c09ce20, 0xc142: 0x6c042e20,
-	0xc14e: 0x6c11ec20,
-	0xc150: 0x6c08ec20,
-	0xc155: 0x6c214620, 0xc157: 0x6c033020,
-	0xc15a: 0x6c016c20,
-	0xc15d: 0x6c10cc20, 0xc15e: 0x6c214420, 0xc15f: 0x6c06d820,
-	0xc160: 0x6c0e5a20, 0xc162: 0x6c214820,
-	0xc168: 0x6c215820, 0xc16a: 0x6c214a20,
-	0xc170: 0x6c0d7a20, 0xc172: 0x6c043020, 0xc173: 0x6c215a20,
-	0xc17a: 0x6c05b420,
-	0xc17d: 0x6c03b620, 0xc17e: 0x6c215620,
-	// Block 0x306, offset 0xc180
-	0xc181: 0x6c215220, 0xc182: 0x6c214c20, 0xc183: 0x6c15cc20,
-	0xc188: 0x6c0ef020,
-	0xc18c: 0x6c109a20, 0xc18d: 0x6c214e20,
-	0xc190: 0x6c215e20, 0xc192: 0x6c215c20, 0xc193: 0x6c052a20,
-	0xc196: 0x6c019220,
-	0xc199: 0x6c078e20, 0xc19a: 0x6c215020, 0xc19b: 0x6c215420,
-	0xc1a1: 0x6c144220, 0xc1a2: 0x6c0de020,
-	0xc1ab: 0x6c148220,
-	0xc1ae: 0x6c216e20,
-	0xc1b1: 0x6c217020, 0xc1b3: 0x6c01d620,
-	0xc1b8: 0x6c132820, 0xc1b9: 0x6c154a20, 0xc1ba: 0x6c217420, 0xc1bb: 0x6c08d620,
-	0xc1bc: 0x6c0a8c20, 0xc1bd: 0x6c216620, 0xc1be: 0x6c217220, 0xc1bf: 0x6c014c20,
-	// Block 0x307, offset 0xc1c0
-	0xc1c1: 0x6c049620,
-	0xc1c4: 0x6c216020, 0xc1c5: 0x6c216a20,
-	0xc1c9: 0x6c0c6820, 0xc1ca: 0x6c118620,
-	0xc1cc: 0x6c122e20,
-	0xc1d3: 0x6c216420,
-	0xc1d5: 0x6c13d620, 0xc1d7: 0x6c216820,
-	0xc1d9: 0x6c217a20, 0xc1db: 0x6c217620,
-	0xc1dd: 0x6c216c20,
-	0xc1e1: 0x6c13d820, 0xc1e2: 0x6c113420, 0xc1e3: 0x6c043220,
-	0xc1e5: 0x6c0f7620,
-	0xc1e8: 0x6c0e8e20, 0xc1ea: 0x6c217c20,
-	0xc1ef: 0x6c217820,
-	0xc1f0: 0x6c0daa20, 0xc1f1: 0x6c216220, 0xc1f3: 0x6c011220,
-	// Block 0x308, offset 0xc200
-	0xc20b: 0x6c15a820,
-	0xc20c: 0x6c219220,
-	0xc212: 0x6c219020,
-	0xc217: 0x6c0c6c20,
-	0xc219: 0x6c218a20, 0xc21b: 0x6c15e420,
-	0xc21e: 0x6c105420, 0xc21f: 0x6c217e20,
-	0xc225: 0x6c0efa20,
-	0xc229: 0x6c011420, 0xc22a: 0x6c06da20, 0xc22b: 0x6c218420,
-	0xc232: 0x6c099a20, 0xc233: 0x6c218e20,
-	0xc235: 0x6c218c20, 0xc236: 0x6c218220,
-	0xc238: 0x6c218820, 0xc23b: 0x6c02c420,
-	0xc23d: 0x6c218620, 0xc23e: 0x6c113620,
-	// Block 0x309, offset 0xc240
-	0xc241: 0x6c162420,
-	0xc244: 0x6c0af020, 0xc245: 0x6c0c6a20,
-	0xc259: 0x6c219e20, 0xc25a: 0x6c219a20,
-	0xc25c: 0x6c12b620,
-	0xc263: 0x6c219420,
-	0xc264: 0x6c219820, 0xc266: 0x6c00f020,
-	0xc269: 0x6c06dc20, 0xc26a: 0x6c16e820,
-	0xc26c: 0x6c026e20, 0xc26e: 0x6c12e020,
-	0xc274: 0x6c15ce20, 0xc277: 0x6c023c20,
-	0xc278: 0x6c0b3a20, 0xc279: 0x6c219c20,
-	// Block 0x30a, offset 0xc280
-	0xc285: 0x6c21a620,
-	0xc288: 0x6c0a8e20,
-	0xc28c: 0x6c156c20, 0xc28e: 0x6c21a020,
-	0xc293: 0x6c219620,
-	0xc295: 0x6c21a220,
-	0xc299: 0x6c168420, 0xc29b: 0x6c101220,
-	0xc29c: 0x6c106c20,
-	0xc2af: 0x6c026020,
-	0xc2b2: 0x6c012620,
-	0xc2b5: 0x6c21ae20,
-	0xc2b8: 0x6c21b420,
-	0xc2bc: 0x6c164e20,
-	// Block 0x30b, offset 0xc2c0
-	0xc2c0: 0x6c15d420,
-	0xc2c5: 0x6c21c220, 0xc2c6: 0x6c21b620, 0xc2c7: 0x6c21b020,
-	0xc2cb: 0x6c167020,
-	0xc2cc: 0x6c21bc20,
-	0xc2d1: 0x6c09e020, 0xc2d2: 0x6c21c020,
-	0xc2d5: 0x6c21ca20,
-	0xc2d8: 0x6c100e20, 0xc2d9: 0x6c21c620,
-	0xc2de: 0x6c21ba20,
-	0xc2e1: 0x6c0e2420,
-	0xc2e4: 0x6c21c820, 0xc2e6: 0x6c21b220,
-	0xc2e8: 0x6c21be20, 0xc2ea: 0x6c21cc20, 0xc2eb: 0x6c00b820,
-	0xc2ec: 0x6c21b820, 0xc2ee: 0x6c21ce20,
-	0xc2f1: 0x6c0b3c20, 0xc2f3: 0x6c0a0a20,
-	0xc2f5: 0x6c132220, 0xc2f7: 0x6c077420,
-	0xc2f9: 0x6c21a820, 0xc2fa: 0x6c21c420, 0xc2fb: 0x6c0fa020,
-	// Block 0x30c, offset 0xc300
-	0xc305: 0x6c0bec20, 0xc307: 0x6c02c620,
-	0xc308: 0x6c07ba20, 0xc309: 0x6c0a9020, 0xc30a: 0x6c21ac20, 0xc30b: 0x6c09d020,
-	0xc313: 0x6c057c20,
-	0xc315: 0x6c21aa20,
-	0xc319: 0x6c21d620, 0xc31a: 0x6c0a2620, 0xc31b: 0x6c061420,
-	0xc31d: 0x6c21f420, 0xc31f: 0x6c21e820,
-	0xc320: 0x6c045420, 0xc321: 0x6c0fca20, 0xc323: 0x6c21de20,
-	0xc324: 0x6c21f020, 0xc325: 0x6c001e20, 0xc326: 0x6c00e020,
-	0xc329: 0x6c01aa20, 0xc32b: 0x6c21e220,
-	0xc32c: 0x6c0d5020, 0xc32d: 0x6c21d020, 0xc32e: 0x6c21d420, 0xc32f: 0x6c06de20,
-	0xc338: 0x6c21f620, 0xc33a: 0x6c21ec20,
-	0xc33e: 0x6c21dc20,
-	// Block 0x30d, offset 0xc340
-	0xc343: 0x6c21ea20,
-	0xc34a: 0x6c14a620,
-	0xc34d: 0x6c21e620, 0xc34e: 0x6c21ee20,
-	0xc356: 0x6c064020,
-	0xc358: 0x6c0a9220, 0xc35b: 0x6c0e2620,
-	0xc35f: 0x6c21da20,
-	0xc367: 0x6c156a20,
-	0xc36b: 0x6c21e020,
-	0xc36e: 0x6c21d220, 0xc36f: 0x6c101020,
-	0xc372: 0x6c21d820,
-	0xc376: 0x6c21e420,
-	0xc37e: 0x6c172620, 0xc37f: 0x6c090c20,
-	// Block 0x30e, offset 0xc380
-	0xc380: 0x6c149020, 0xc382: 0x6c21f820,
-	0xc38c: 0x6c11bc20, 0xc38f: 0x6c221020,
-	0xc390: 0x6c061620,
-	0xc396: 0x6c0a0c20,
-	0xc398: 0x6c21fc20,
-	0xc39c: 0x6c162620, 0xc39d: 0x6c06e020, 0xc39f: 0x6c221620,
-	0xc3a2: 0x6c009c20,
-	0xc3a5: 0x6c221220,
-	0xc3aa: 0x6c21fa20,
-	0xc3af: 0x6c220620,
-	0xc3b2: 0x6c220a20,
-	0xc3b6: 0x6c15aa20, 0xc3b7: 0x6c220020,
-	0xc3ba: 0x6c0f8820,
-	0xc3bd: 0x6c220420,
-	// Block 0x30f, offset 0xc3c0
-	0xc3c2: 0x6c221420,
-	0xc3c4: 0x6c220820, 0xc3c5: 0x6c14de20,
-	0xc3c9: 0x6c21fe20, 0xc3cb: 0x6c08d420,
-	0xc3cc: 0x6c222e20,
-	0xc3d1: 0x6c02c820, 0xc3d3: 0x6c220220,
-	0xc3d4: 0x6c220c20, 0xc3d5: 0x6c220e20,
-	0xc3dd: 0x6c0dd020, 0xc3de: 0x6c0dac20,
-	0xc3ec: 0x6c221e20, 0xc3ef: 0x6c222a20,
-	0xc3f2: 0x6c222620,
-	0xc3f4: 0x6c0f7e20, 0xc3f7: 0x6c223420,
-	0xc3f8: 0x6c222020,
-	0xc3fe: 0x6c222220, 0xc3ff: 0x6c21f220,
-	// Block 0x310, offset 0xc400
-	0xc401: 0x6c045e20, 0xc402: 0x6c129020,
-	0xc406: 0x6c090e20,
-	0xc409: 0x6c074a20,
-	0xc40f: 0x6c16ea20,
-	0xc411: 0x6c221a20, 0xc413: 0x6c223220,
-	0xc414: 0x6c014e20, 0xc415: 0x6c0d0820,
-	0xc420: 0x6c119620, 0xc422: 0x6c033220, 0xc423: 0x6c16bc20,
-	0xc42b: 0x6c149220,
-	0xc42c: 0x6c0f1420,
-	0xc431: 0x6c222820, 0xc432: 0x6c222c20,
-	0xc438: 0x6c0ca020,
-	0xc43e: 0x6c223020, 0xc43f: 0x6c222420,
-	// Block 0x311, offset 0xc440
-	0xc441: 0x6c221820,
-	0xc445: 0x6c033620,
-	0xc454: 0x6c05b620,
-	0xc458: 0x6c224c20, 0xc45b: 0x6c224220,
-	0xc45c: 0x6c0c7020, 0xc45f: 0x6c02ba20,
-	0xc464: 0x6c0a0e20, 0xc466: 0x6c225420,
-	0xc46d: 0x6c224620, 0xc46e: 0x6c0ec820, 0xc46f: 0x6c224020,
-	0xc470: 0x6c0f2220,
-	0xc474: 0x6c228620,
-	0xc478: 0x6c223a20, 0xc47a: 0x6c223820,
-	0xc47c: 0x6c224a20,
-	// Block 0x312, offset 0xc480
-	0xc480: 0x6c223e20, 0xc481: 0x6c223c20, 0xc482: 0x6c224820,
-	0xc484: 0x6c0bc220, 0xc486: 0x6c223620,
-	0xc48e: 0x6c224e20,
-	0xc491: 0x6c225020,
-	0xc497: 0x6c033420,
-	0xc4a1: 0x6c225a20, 0xc4a3: 0x6c225820,
-	0xc4a4: 0x6c225c20,
-	0xc4aa: 0x6c226220,
-	0xc4b1: 0x6c0fb220, 0xc4b3: 0x6c225620,
-	0xc4b9: 0x6c225e20,
-	// Block 0x313, offset 0xc4c0
-	0xc4c0: 0x6c05aa20, 0xc4c1: 0x6c0dea20, 0xc4c2: 0x6c225220, 0xc4c3: 0x6c111a20,
-	0xc4c6: 0x6c226020,
-	0xc4d4: 0x6c226a20, 0xc4d5: 0x6c226620,
-	0xc4d8: 0x6c226c20, 0xc4db: 0x6c227220,
-	0xc4df: 0x6c226420,
-	0xc4e0: 0x6c073020, 0xc4e1: 0x6c10f420,
-	0xc4e4: 0x6c21a420,
-	0xc4eb: 0x6c15f420,
-	0xc4ec: 0x6c226820, 0xc4ee: 0x6c227020, 0xc4ef: 0x6c0de220,
-	0xc4f1: 0x6c226e20, 0xc4f3: 0x6c224420,
-	0xc4f6: 0x6c2e8020,
-	0xc4fa: 0x6c227820,
-	0xc4fe: 0x6c228020,
-	// Block 0x314, offset 0xc500
-	0xc501: 0x6c227c20,
-	0xc509: 0x6c227420, 0xc50b: 0x6c227620,
-	0xc50f: 0x6c227e20,
-	0xc511: 0x6c227a20,
-	0xc515: 0x6c12b820,
-	0xc518: 0x6c228a20, 0xc51a: 0x6c228420, 0xc51b: 0x6c228220,
-	0xc51d: 0x6c228820, 0xc51e: 0x6c109020, 0xc51f: 0x6c228c20,
-	0xc526: 0x6c0e9e20, 0xc527: 0x6c0dd220,
-	0xc52c: 0x6c0bca20,
-	0xc530: 0x6c228e20, 0xc532: 0x6c229220,
-	0xc53e: 0x6c229020,
-	// Block 0x315, offset 0xc540
-	0xc54c: 0x6c221c20,
-	0xc551: 0x6c229420,
-	0xc558: 0x6c10b620,
-	0xc563: 0x6c229620,
-	0xc56b: 0x6c01d820,
-	0xc56f: 0x6c101420,
-	0xc570: 0x6c023e20,
-	0xc578: 0x6c043420,
-	0xc57c: 0x6c094c20, 0xc57d: 0x6c07bc20,
-	// Block 0x316, offset 0xc580
-	0xc589: 0x6c16d220, 0xc58a: 0x6c0b9020,
-	0xc58e: 0x6c015020,
-	0xc592: 0x6c229a20,
-	0xc599: 0x6c229820,
-	0xc5ac: 0x6c22a020, 0xc5ad: 0x6c0e2820, 0xc5ae: 0x6c22a620, 0xc5af: 0x6c229c20,
-	0xc5b3: 0x6c22a420,
-	0xc5b8: 0x6c22a220, 0xc5b9: 0x6c0fac20, 0xc5ba: 0x6c007220,
-	// Block 0x317, offset 0xc5c0
-	0xc5c8: 0x6c16b220, 0xc5cb: 0x6c22aa20,
-	0xc5cf: 0x6c00cc20,
-	0xc5d9: 0x6c22ae20,
-	0xc5dd: 0x6c22ac20, 0xc5df: 0x6c22a820,
-	0xc5f1: 0x6c229e20,
-	0xc5f9: 0x6c13da20,
-	0xc5fd: 0x6c22b220,
-	// Block 0x318, offset 0xc600
-	0xc609: 0x6c22b020,
-	0xc614: 0x6c015220,
-	0xc619: 0x6c22b620, 0xc61a: 0x6c133c20,
-	0xc61c: 0x6c22b420,
-	0xc621: 0x6c14ba20,
-	0xc626: 0x6c0a9620,
-	0xc636: 0x6c0ca220,
-	0xc63c: 0x6c0a9420,
-	// Block 0x319, offset 0xc640
-	0xc649: 0x6c16be20,
-	0xc64c: 0x6c22c220, 0xc64e: 0x6c0c7220,
-	0xc655: 0x6c22ba20, 0xc656: 0x6c22c420,
-	0xc659: 0x6c015420,
-	0xc662: 0x6c22c020,
-	0xc664: 0x6c116620, 0xc665: 0x6c22b820, 0xc666: 0x6c22be20, 0xc667: 0x6c0a9820,
-	0xc669: 0x6c120220,
-	0xc66c: 0x6c22c620, 0xc66e: 0x6c093220,
-	0xc67d: 0x6c0c7420,
-	// Block 0x31a, offset 0xc680
-	0xc684: 0x6c22cc20,
-	0xc688: 0x6c22bc20, 0xc68a: 0x6c053220,
-	0xc68f: 0x6c22c820,
-	0xc694: 0x6c15ac20, 0xc695: 0x6c22ce20,
-	0xc699: 0x6c31a620,
-	0xc69f: 0x6c09ea20,
-	0xc6a8: 0x6c22d020,
-	0xc6ac: 0x6c22d220,
-	0xc6b1: 0x6c110020,
-	0xc6b9: 0x6c22d620,
-	0xc6be: 0x6c22d820,
-	// Block 0x31b, offset 0xc6c0
-	0xc6c3: 0x6c110a20,
-	0xc6c8: 0x6c101620, 0xc6c9: 0x6c22dc20,
-	0xc6ce: 0x6c22e020,
-	0xc6d0: 0x6c167220, 0xc6d2: 0x6c22da20,
-	0xc6d4: 0x6c22de20, 0xc6d5: 0x6c015620, 0xc6d7: 0x6c22d420,
-	0xc6df: 0x6c19d420,
-	0xc6e0: 0x6c22e220,
-	0xc6e5: 0x6c0d0a20, 0xc6e6: 0x6c084420, 0xc6e7: 0x6c22e620,
-	0xc6ec: 0x6c22e420, 0xc6ed: 0x6c0b0c20, 0xc6ee: 0x6c191420,
-	0xc6f5: 0x6c22e820,
-	0xc6f9: 0x6c22ec20, 0xc6fb: 0x6c22ca20,
-	0xc6fc: 0x6c22ea20, 0xc6ff: 0x6c22ee20,
-	// Block 0x31c, offset 0xc700
-	0xc706: 0x6c119820,
-	0xc70d: 0x6c22f020,
-	0xc710: 0x6c22f220,
-	0xc71b: 0x6c22f420,
-	0xc728: 0x6c22f620, 0xc72a: 0x6c0f2c20,
-	0xc72c: 0x6c22fa20, 0xc72d: 0x6c22f820,
-	0xc730: 0x6c22fc20, 0xc732: 0x6c22fe20,
-	0xc735: 0x6c094e20, 0xc736: 0x6c12e220,
-	0xc73a: 0x6c152820, 0xc73b: 0x6c230020,
-	0xc73c: 0x6c230220, 0xc73d: 0x6c0ce820, 0xc73e: 0x6c08d820, 0xc73f: 0x6c230420,
-	// Block 0x31d, offset 0xc740
-	0xc740: 0x6c230620,
-	0xc746: 0x6c230820, 0xc747: 0x6c137c20,
-	0xc748: 0x6c11ee20, 0xc74b: 0x6c230a20,
-	0xc74c: 0x6c115220,
-	0xc752: 0x6c0eca20,
-	0xc758: 0x6c230c20, 0xc759: 0x6c020620, 0xc75b: 0x6c044620,
-	0xc75d: 0x6c14dc20, 0xc75f: 0x6c14bc20,
-	0xc761: 0x6c01a020, 0xc762: 0x6c16ec20,
-	0xc767: 0x6c143820,
-	0xc769: 0x6c132c20,
-	0xc772: 0x6c0bee20,
-	0xc774: 0x6c230e20,
-	0xc779: 0x6c106e20,
-	0xc77d: 0x6c05e620, 0xc77e: 0x6c231020,
-	// Block 0x31e, offset 0xc780
-	0xc780: 0x6c07c020, 0xc781: 0x6c231420, 0xc782: 0x6c231220,
-	0xc787: 0x6c231620,
-	0xc792: 0x6c231820,
-	0xc796: 0x6c231a20,
-	0xc7a0: 0x6c03e820, 0xc7a2: 0x6c231c20,
-	0xc7a7: 0x6c231e20,
-	0xc7ac: 0x6c05e820, 0xc7af: 0x6c11f020,
-	0xc7b2: 0x6c232220,
-	0xc7b6: 0x6c0af220,
-	0xc7b9: 0x6c232020,
-	// Block 0x31f, offset 0xc7c0
-	0xc7c2: 0x6c049820, 0xc7c3: 0x6c232420,
-	0xc7c4: 0x6c232820, 0xc7c6: 0x6c232620,
-	0xc7ce: 0x6c232a20,
-	0xc7d0: 0x6c064220, 0xc7d2: 0x6c232c20,
-	0xc7d7: 0x6c04fa20,
-	0xc7d9: 0x6c0cbc20, 0xc7db: 0x6c075620,
-	0xc7e0: 0x6c233020, 0xc7e1: 0x6c233220, 0xc7e2: 0x6c232e20,
-	0xc7e9: 0x6c096a20,
-	0xc7ec: 0x6c107820, 0xc7ed: 0x6c049a20,
-	0xc7f7: 0x6c233620,
-	0xc7f8: 0x6c0e0c20, 0xc7f9: 0x6c233420,
-	0xc7fc: 0x6c16ee20, 0xc7fd: 0x6c116820,
-	// Block 0x320, offset 0xc800
-	0xc80a: 0x6c233c20,
-	0xc816: 0x6c234020, 0xc817: 0x6c233a20,
-	0xc81b: 0x6c14f820,
-	0xc81c: 0x6c233e20, 0xc81d: 0x6c234220, 0xc81f: 0x6c165020,
-	0xc825: 0x6c234a20,
-	0xc829: 0x6c234820, 0xc82a: 0x6c0ea020, 0xc82b: 0x6c10fe20,
-	0xc82e: 0x6c05ea20, 0xc82f: 0x6c234620,
-	0xc834: 0x6c234420, 0xc836: 0x6c156e20, 0xc837: 0x6c157020,
-	0xc83e: 0x6c234c20, 0xc83f: 0x6c015820,
-	// Block 0x321, offset 0xc840
-	0xc844: 0x6c074820, 0xc845: 0x6c089820,
-	0xc84e: 0x6c234e20, 0xc84f: 0x6c235020,
-	0xc857: 0x6c235420,
-	0xc863: 0x6c09d220,
-	0xc868: 0x6c235820, 0xc86a: 0x6c235620,
-	0xc870: 0x6c235a20, 0xc872: 0x6c028e20,
-	0xc875: 0x6c235e20,
-	0xc878: 0x6c235c20, 0xc87a: 0x6c236220, 0xc87b: 0x6c236020,
-	// Block 0x322, offset 0xc880
-	0xc884: 0x6c061820, 0xc887: 0x6c161820,
-	0xc889: 0x6c04c020, 0xc88b: 0x6c018420,
-	0xc896: 0x6c04fc20,
-	0xc8a9: 0x6c037220,
-	0xc8b2: 0x6c169820, 0xc8b3: 0x6c236620,
-	0xc8bb: 0x6c236a20,
-	// Block 0x323, offset 0xc8c0
-	0xc8c0: 0x6c236c20, 0xc8c2: 0x6c01da20,
-	0xc8c8: 0x6c236420, 0xc8ca: 0x6c084620,
-	0xc8cd: 0x6c0ef220, 0xc8ce: 0x6c236820,
-	0xc8de: 0x6c237220,
-	0xc8e0: 0x6c096c20,
-	0xc8e5: 0x6c236e20,
-	0xc8ea: 0x6c056020,
-	0xc8ed: 0x6c11f220, 0xc8ee: 0x6c237020,
-	0xc8f1: 0x6c23a620,
-	0xc8f8: 0x6c237c20,
-	0xc8fe: 0x6c061a20,
-	// Block 0x324, offset 0xc900
-	0xc903: 0x6c043620,
-	0xc905: 0x6c237620, 0xc906: 0x6c160620,
-	0xc909: 0x6c162820,
-	0xc922: 0x6c0de420,
-	0xc925: 0x6c237a20,
-	0xc932: 0x6c237e20, 0xc933: 0x6c167420,
-	0xc934: 0x6c04d620, 0xc935: 0x6c125820, 0xc936: 0x6c113820,
-	0xc93a: 0x6c238020,
-	0xc93f: 0x6c238420,
-	// Block 0x325, offset 0xc940
-	0xc941: 0x6c238a20,
-	0xc955: 0x6c238220,
-	0xc959: 0x6c238820, 0xc95a: 0x6c067420, 0xc95b: 0x6c011620,
-	0xc95c: 0x6c238c20, 0xc95e: 0x6c0ba420, 0xc95f: 0x6c238620,
-	0xc960: 0x6c168020, 0xc963: 0x6c239220,
-	0xc964: 0x6c31a220,
-	0xc969: 0x6c238e20, 0xc96a: 0x6c239420,
-	0xc96f: 0x6c237820,
-	0xc970: 0x6c239020, 0xc973: 0x6c079020,
-	0xc976: 0x6c239620,
-	0xc97e: 0x6c239820,
-	// Block 0x326, offset 0xc980
-	0xc983: 0x6c160820,
-	0xc98b: 0x6c239a20,
-	0xc99e: 0x6c239c20,
-	0xc9a2: 0x6c237420,
-	0xc9a7: 0x6c239e20,
-	0xc9b0: 0x6c033820,
-	0xc9bd: 0x6c08da20,
-	// Block 0x327, offset 0xc9c0
-	0xc9ca: 0x6c23a020,
-	0xc9cf: 0x6c23a220,
-	0xc9d4: 0x6c23a420,
-	0xc9dc: 0x6c00f220,
-	0xc9e0: 0x6c23a820, 0xc9e2: 0x6c129220, 0xc9e3: 0x6c23aa20,
-	0xc9e6: 0x6c02f820, 0xc9e7: 0x6c23ac20,
-	0xc9e9: 0x6c23ae20,
-	0xc9ee: 0x6c23b020,
-	0xc9f0: 0x6c23b420, 0xc9f1: 0x6c23b620, 0xc9f2: 0x6c23b220,
-	0xc9f6: 0x6c12c220, 0xc9f7: 0x6c23ba20,
-	0xc9f8: 0x6c23b820,
-	// Block 0x328, offset 0xca00
-	0xca03: 0x6c23be20,
-	0xca04: 0x6c23bc20, 0xca05: 0x6c23c020,
-	0xca0c: 0x6c23c220, 0xca0d: 0x6c23c620, 0xca0e: 0x6c23c420,
-	0xca11: 0x6c074e20, 0xca13: 0x6c23ca20,
-	0xca15: 0x6c23c820,
-	0xca18: 0x6c033a20, 0xca1a: 0x6c0b6a20,
-	0xca1c: 0x6c0fa420, 0xca1e: 0x6c23cc20, 0xca1f: 0x6c0bf020,
-	0xca23: 0x6c084820,
-	0xca25: 0x6c016e20, 0xca26: 0x6c23ce20,
-	0xca28: 0x6c15ae20, 0xca2b: 0x6c139e20,
-	0xca2c: 0x6c23d020,
-	0xca30: 0x6c0fb420, 0xca31: 0x6c157220, 0xca32: 0x6c06e220, 0xca33: 0x6c0b3e20,
-	0xca37: 0x6c0e4a20,
-	0xca38: 0x6c18ca20, 0xca3a: 0x6c0ecc20, 0xca3b: 0x6c020820,
-	0xca3c: 0x6c23d220,
-	// Block 0x329, offset 0xca40
-	0xca44: 0x6c23d420, 0xca46: 0x6c23de20,
-	0xca49: 0x6c23da20, 0xca4a: 0x6c23d820, 0xca4b: 0x6c1ec620,
-	0xca4c: 0x6c024020, 0xca4d: 0x6c23d620, 0xca4f: 0x6c007420,
-	0xca51: 0x6c11b420,
-	0xca54: 0x6c11f420,
-	0xca59: 0x6c162a20, 0xca5a: 0x6c23e020, 0xca5b: 0x6c23dc20,
-	0xca5c: 0x6c0e6c20, 0xca5d: 0x6c0bcc20,
-	0xca60: 0x6c11b620, 0xca62: 0x6c127620,
-	0xca64: 0x6c23e420, 0xca65: 0x6c162020, 0xca66: 0x6c057e20, 0xca67: 0x6c23e620,
-	0xca69: 0x6c23e220, 0xca6a: 0x6c120c20, 0xca6b: 0x6c23e820,
-	0xca6d: 0x6c23ea20,
-	0xca70: 0x6c007620, 0xca73: 0x6c0af420,
-	0xca74: 0x6c23f420, 0xca76: 0x6c23ee20, 0xca77: 0x6c10c220,
-	0xca78: 0x6c23ec20,
-	0xca7f: 0x6c03b820,
-	// Block 0x32a, offset 0xca80
-	0xca82: 0x6c23fa20,
-	0xca86: 0x6c23f020, 0xca87: 0x6c23f220,
-	0xca89: 0x6c23f820, 0xca8a: 0x6c23f620, 0xca8b: 0x6c126620,
-	0xca8e: 0x6c0cc020, 0xca8f: 0x6c0cbe20,
-	0xca91: 0x6c03ea20,
-	0xca94: 0x6c23fc20,
-	0xca9a: 0x6c23fe20,
-	0xca9d: 0x6c240020,
-	0xcaa3: 0x6c240420,
-	0xcaa5: 0x6c240220,
-	0xcaab: 0x6c012820,
-	0xcab1: 0x6c241420, 0xcab2: 0x6c123020, 0xcab3: 0x6c240820,
-	0xcab5: 0x6c240c20,
-	0xcab8: 0x6c241020, 0xcab9: 0x6c0b4020,
-	0xcabc: 0x6c241220, 0xcabd: 0x6c240e20, 0xcabe: 0x6c091020,
-	// Block 0x32b, offset 0xcac0
-	0xcac2: 0x6c240620, 0xcac3: 0x6c240a20,
-	0xcac5: 0x6c12a020, 0xcac7: 0x6c0a9a20,
-	0xcaca: 0x6c241820,
-	0xcacd: 0x6c241620,
-	0xcad2: 0x6c241a20,
-	0xcad4: 0x6c08dc20, 0xcad5: 0x6c077620,
-	0xcad8: 0x6c101a20, 0xcad9: 0x6c241c20, 0xcadb: 0x6c0f0620,
-	0xcade: 0x6c242020,
-	0xcae2: 0x6c160a20, 0xcae3: 0x6c241e20,
-	0xcae9: 0x6c0d0e20,
-	0xcaf0: 0x6c242a20, 0xcaf2: 0x6c242e20, 0xcaf3: 0x6c243020,
-	0xcaf4: 0x6c0e5c20,
-	0xcafa: 0x6c242c20,
-	0xcafc: 0x6c242620, 0xcafe: 0x6c242220, 0xcaff: 0x6c242420,
-	// Block 0x32c, offset 0xcb00
-	0xcb01: 0x6c242820,
-	0xcb09: 0x6c243620, 0xcb0b: 0x6c243220,
-	0xcb0d: 0x6c243420,
-	0xcb1f: 0x6c243820,
-	0xcb20: 0x6c243c20, 0xcb21: 0x6c243e20, 0xcb22: 0x6c244020,
-	0xcb24: 0x6c244220, 0xcb27: 0x6c243a20,
-	0xcb30: 0x6c244620,
-	0xcb34: 0x6c244420,
-	0xcb3b: 0x6c244820,
-	// Block 0x32d, offset 0xcb40
-	0xcb42: 0x6c165220,
-	0xcb46: 0x6c244e20, 0xcb47: 0x6c244a20,
-	0xcb48: 0x6c244c20,
-	0xcb4c: 0x6c037420,
-	0xcb52: 0x6c154c20,
-	0xcb56: 0x6c136c20,
-	0xcb58: 0x6c245220,
-	0xcb5c: 0x6c245020,
-	0xcb61: 0x6c245420, 0xcb62: 0x6c245620,
-	0xcb67: 0x6c245e20,
-	0xcb68: 0x6c245820, 0xcb69: 0x6c245a20, 0xcb6a: 0x6c245c20,
-	0xcb6c: 0x6c246020,
-	0xcb70: 0x6c246220, 0xcb72: 0x6c246420,
-	0xcb76: 0x6c246620,
-	0xcb78: 0x6c246820, 0xcb7a: 0x6c11be20, 0xcb7b: 0x6c0fcc20,
-	0xcb7c: 0x6c246a20, 0xcb7d: 0x6c118820, 0xcb7e: 0x6c128420,
-	// Block 0x32e, offset 0xcb80
-	0xcb80: 0x6c246c20, 0xcb83: 0x6c246e20,
-	0xcb84: 0x6c0f8020, 0xcb86: 0x6c024220, 0xcb87: 0x6c06e420,
-	0xcb88: 0x6c247020, 0xcb8b: 0x6c247220,
-	0xcb8e: 0x6c247420,
-	0xcb90: 0x6c082620, 0xcb93: 0x6c247820,
-	0xcb96: 0x6c247620,
-	0xcb99: 0x6c247a20, 0xcb9a: 0x6c247c20,
-	0xcbae: 0x6c123220,
-	0xcbb0: 0x6c247e20,
-	0xcbb4: 0x6c248020, 0xcbb7: 0x6c317020,
-	0xcbb8: 0x6c248220, 0xcbb9: 0x6c248420, 0xcbba: 0x6c248620,
-	0xcbbf: 0x6c083020,
-	// Block 0x32f, offset 0xcbc0
-	0xcbc2: 0x6c248820, 0xcbc3: 0x6c115020,
-	0xcbc6: 0x6c145220,
-	0xcbc8: 0x6c011820, 0xcbca: 0x6c012a20,
-	0xcbcd: 0x6c248a20,
-	0xcbd2: 0x6c248e20,
-	0xcbd6: 0x6c248c20, 0xcbd7: 0x6c100c20,
-	0xcbdb: 0x6c0bf220,
-	0xcbdc: 0x6c20e820, 0xcbde: 0x6c249020, 0xcbdf: 0x6c14d220,
-	0xcbe1: 0x6c249220, 0xcbe3: 0x6c033c20,
-	0xcbe4: 0x6c120e20, 0xcbe5: 0x6c249420, 0xcbe7: 0x6c249620,
-	0xcbea: 0x6c249820,
-	0xcbee: 0x6c150820,
-	0xcbf2: 0x6c14fa20,
-	0xcbf4: 0x6c0eec20,
-	0xcbf8: 0x6c0d1020, 0xcbfb: 0x6c249c20,
-	0xcbfe: 0x6c0a1020,
-	// Block 0x330, offset 0xcc00
-	0xcc01: 0x6c0a9c20,
-	0xcc04: 0x6c24a220, 0xcc07: 0x6c24a020,
-	0xcc08: 0x6c249e20, 0xcc09: 0x6c125a20, 0xcc0b: 0x6c033e20,
-	0xcc0c: 0x6c05f220,
-	0xcc1b: 0x6c24ae20,
-	0xcc1e: 0x6c24a820, 0xcc1f: 0x6c0b4220,
-	0xcc20: 0x6c14b420,
-	0xcc24: 0x6c24a620, 0xcc25: 0x6c24aa20, 0xcc26: 0x6c24ac20,
-	0xcc29: 0x6c24a420,
-	0xcc37: 0x6c24b020,
-	0xcc38: 0x6c24b220, 0xcc3a: 0x6c0ece20,
-	0xcc3c: 0x6c037620,
-	// Block 0x331, offset 0xcc40
-	0xcc40: 0x6c0e7e20,
-	0xcc47: 0x6c24b420,
-	0xcc5a: 0x6c24b620, 0xcc5b: 0x6c24bc20,
-	0xcc61: 0x6c0b9220, 0xcc63: 0x6c107020,
-	0xcc65: 0x6c24be20, 0xcc66: 0x6c143a20,
-	0xcc68: 0x6c24b820, 0xcc6b: 0x6c24ba20,
-	0xcc79: 0x6c24c420,
-	0xcc7e: 0x6c24c220, 0xcc7f: 0x6c24c020,
-	// Block 0x332, offset 0xcc80
-	0xcc8b: 0x6c24c820,
-	0xcc8e: 0x6c24c620,
-	0xcc91: 0x6c24ca20,
-	0xcc9e: 0x6c24ce20,
-	0xcca0: 0x6c24cc20,
-	0xcca5: 0x6c137220,
-	0xccac: 0x6c09f820, 0xccad: 0x6c165420,
-	0xccb0: 0x6c24d020, 0xccb3: 0x6c105620,
-	0xccb6: 0x6c24d220,
-	0xccb9: 0x6c24d420, 0xccbb: 0x6c24dc20,
-	0xccbc: 0x6c24d820, 0xccbd: 0x6c24da20, 0xccbf: 0x6c24d620,
-	// Block 0x333, offset 0xccc0
-	0xccc7: 0x6c24de20,
-	0xcccd: 0x6c24e020,
-	0xccd7: 0x6c24e220,
-	0xccda: 0x6c24e420, 0xccdb: 0x6c14be20,
-	0xccdc: 0x6c24e620,
-	0xcce2: 0x6c153020, 0xcce3: 0x6c24e820,
-	0xcce5: 0x6c0e5020, 0xcce7: 0x6c117820,
-	0xcce9: 0x6c04fe20,
-	0xcced: 0x6c0e2a20, 0xccee: 0x6c24ea20, 0xccef: 0x6c049c20,
-	0xccf3: 0x6c0c2020,
-	0xccfc: 0x6c24ec20,
-	// Block 0x334, offset 0xcd00
-	0xcd02: 0x6c079220,
-	0xcd0c: 0x6c24ee20,
-	0xcd12: 0x6c24f020,
-	0xcd14: 0x6c05ec20, 0xcd15: 0x6c07c220,
-	0xcd20: 0x6c24f420,
-	0xcd25: 0x6c0fd820, 0xcd26: 0x6c07c420, 0xcd27: 0x6c040820,
-	0xcd32: 0x6c13dc20,
-	0xcd34: 0x6c113a20,
-	0xcd3a: 0x6c0fda20,
-	0xcd3f: 0x6c071420,
-	// Block 0x335, offset 0xcd40
-	0xcd45: 0x6c24f820,
-	0xcd5d: 0x6c0a9e20,
-	0xcd6b: 0x6c162c20,
-	0xcd6c: 0x6c06e620, 0xcd6f: 0x6c05ee20,
-	0xcd72: 0x6c11a620,
-	0xcd74: 0x6c24fc20,
-	0xcd7c: 0x6c250020,
-	// Block 0x336, offset 0xcd80
-	0xcd81: 0x6c067620,
-	0xcd86: 0x6c24fe20, 0xcd87: 0x6c0f5c20,
-	0xcd8c: 0x6c250420, 0xcd8d: 0x6c026220, 0xcd8e: 0x6c24fa20,
-	0xcd91: 0x6c123420, 0xcd93: 0x6c00dc20,
-	0xcd95: 0x6c07f020, 0xcd97: 0x6c172820,
-	0xcd9a: 0x6c250220,
-	0xcda3: 0x6c250620,
-	0xcda7: 0x6c136e20,
-	0xcda9: 0x6c0c3220, 0xcdaa: 0x6c250a20,
-	0xcdaf: 0x6c250c20,
-	0xcdb5: 0x6c250820,
-	0xcdba: 0x6c029020,
-	0xcdbc: 0x6c251820, 0xcdbe: 0x6c251620,
-	// Block 0x337, offset 0xcdc0
-	0xcdc1: 0x6c08de20,
-	0xcdc5: 0x6c251a20, 0xcdc6: 0x6c251020,
-	0xcdca: 0x6c251c20, 0xcdcb: 0x6c251220,
-	0xcdd0: 0x6c121020, 0xcdd1: 0x6c250e20,
-	0xcdd4: 0x6c251420,
-	0xcdda: 0x6c252220,
-	0xcde7: 0x6c252020,
-	0xcde8: 0x6c145620,
-	0xcdec: 0x6c251e20, 0xcdef: 0x6c009620,
-	0xcdf4: 0x6c252620,
-	0xcdfd: 0x6c252420,
-	// Block 0x338, offset 0xce00
-	0xce01: 0x6c0aa020,
-	0xce07: 0x6c252820,
-	0xce0e: 0x6c0cc220,
-	0xce11: 0x6c252c20, 0xce12: 0x6c252a20,
-	0xce19: 0x6c252e20,
-	0xce26: 0x6c24f220,
-	0xce2a: 0x6c24f620, 0xce2b: 0x6c253220,
-	0xce2c: 0x6c253020,
-	0xce3a: 0x6c08e020,
-	0xce3c: 0x6c169a20, 0xce3e: 0x6c093420,
-	// Block 0x339, offset 0xce40
-	0xce40: 0x6c253420, 0xce41: 0x6c055220,
-	0xce47: 0x6c03ec20,
-	0xce48: 0x6c03ba20, 0xce49: 0x6c089a20,
-	0xce50: 0x6c157420, 0xce53: 0x6c254020,
-	0xce55: 0x6c253e20, 0xce56: 0x6c0cc420, 0xce57: 0x6c253820,
-	0xce5a: 0x6c253c20,
-	0xce5d: 0x6c09e220, 0xce5e: 0x6c0b4420, 0xce5f: 0x6c253a20,
-	0xce60: 0x6c253620, 0xce62: 0x6c10f820,
-	0xce65: 0x6c0aa220,
-	0xce68: 0x6c129420,
-	0xce6d: 0x6c07c620,
-	0xce77: 0x6c101c20,
-	0xce7a: 0x6c254220,
-	0xce7f: 0x6c254420,
-	// Block 0x33a, offset 0xce80
-	0xce80: 0x6c257020, 0xce81: 0x6c04d820,
-	0xce84: 0x6c16fe20, 0xce85: 0x6c0ca620,
-	0xce8a: 0x6c254620,
-	0xce8d: 0x6c01dc20, 0xce8e: 0x6c0f5e20, 0xce8f: 0x6c131a20,
-	0xce9d: 0x6c254820,
-	0xcea6: 0x6c046020, 0xcea7: 0x6c254a20,
-	0xceaa: 0x6c254e20,
-	0xceae: 0x6c255020,
-	0xceb0: 0x6c10f620, 0xceb3: 0x6c255220,
-	0xceb9: 0x6c255420, 0xceba: 0x6c255620,
-	0xcebd: 0x6c04da20, 0xcebe: 0x6c01de20, 0xcebf: 0x6c107220,
-	// Block 0x33b, offset 0xcec0
-	0xcec0: 0x6c099c20, 0xcec1: 0x6c089c20,
-	0xcec9: 0x6c255820, 0xcecb: 0x6c099e20,
-	0xced1: 0x6c01cc20, 0xced2: 0x6c12a220,
-	0xced5: 0x6c255a20,
-	0xced8: 0x6c123620,
-	0xcedf: 0x6c0cc620,
-	0xcee1: 0x6c256020, 0xcee3: 0x6c256220,
-	0xcee4: 0x6c117620, 0xcee6: 0x6c0b4620, 0xcee7: 0x6c255c20,
-	0xcee9: 0x6c0e7620,
-	0xceec: 0x6c255e20,
-	0xcef0: 0x6c0aa420,
-	0xcefb: 0x6c007820,
-	// Block 0x33c, offset 0xcf00
-	0xcf00: 0x6c03be20,
-	0xcf08: 0x6c256420, 0xcf0b: 0x6c0f6020,
-	0xcf0d: 0x6c256620, 0xcf0e: 0x6c0c0e20,
-	0xcf14: 0x6c14aa20, 0xcf17: 0x6c126220,
-	0xcf18: 0x6c256820, 0xcf19: 0x6c256a20, 0xcf1a: 0x6c0e5e20,
-	0xcf1c: 0x6c165620, 0xcf1f: 0x6c256e20,
-	0xcf20: 0x6c256c20,
-	0xcf2e: 0x6c096e20,
-	0xcf31: 0x6c257220, 0xcf32: 0x6c00a020,
-	0xcf37: 0x6c257820,
-	0xcf3b: 0x6c257420,
-	0xcf3c: 0x6c01e020, 0xcf3d: 0x6c058020, 0xcf3e: 0x6c257620, 0xcf3f: 0x6c06e820,
-	// Block 0x33d, offset 0xcf40
-	0xcf40: 0x6c074020, 0xcf42: 0x6c13a420, 0xcf43: 0x6c257a20,
-	0xcf46: 0x6c143c20,
-	0xcf49: 0x6c257e20,
-	0xcf4d: 0x6c0c2220, 0xcf4e: 0x6c011a20, 0xcf4f: 0x6c01ac20,
-	0xcf50: 0x6c001820,
-	0xcf57: 0x6c257c20,
-	0xcf61: 0x6c258020, 0xcf62: 0x6c258220, 0xcf63: 0x6c0af620,
-	0xcf69: 0x6c258420, 0xcf6b: 0x6c029220,
-	0xcf70: 0x6c258820,
-	0xcf74: 0x6c05b820, 0xcf76: 0x6c043820,
-	0xcf79: 0x6c258a20, 0xcf7a: 0x6c051220,
-	0xcf7d: 0x6c258c20, 0xcf7f: 0x6c0c7820,
-	// Block 0x33e, offset 0xcf80
-	0xcf81: 0x6c108220, 0xcf83: 0x6c0c4020,
-	0xcf84: 0x6c080220,
-	0xcf88: 0x6c258e20,
-	0xcf92: 0x6c0e7820, 0xcf93: 0x6c0d1220,
-	0xcf95: 0x6c259220, 0xcf96: 0x6c259620, 0xcf97: 0x6c259020,
-	0xcf98: 0x6c259420,
-	0xcf9f: 0x6c052820,
-	0xcfa9: 0x6c259820, 0xcfaa: 0x6c053020,
-	0xcfae: 0x6c043a20, 0xcfaf: 0x6c15b020,
-	0xcfb0: 0x6c259c20,
-	0xcfb6: 0x6c259e20,
-	0xcfba: 0x6c00d820,
-	0xcfbf: 0x6c25a420,
-	// Block 0x33f, offset 0xcfc0
-	0xcfc3: 0x6c02e020,
-	0xcfc4: 0x6c25a220, 0xcfc5: 0x6c25a020, 0xcfc7: 0x6c25a820,
-	0xcfc8: 0x6c259a20, 0xcfca: 0x6c25aa20, 0xcfcb: 0x6c161a20,
-	0xcfcd: 0x6c25ac20, 0xcfcf: 0x6c25ae20,
-	0xcfd2: 0x6c1ac220, 0xcfd3: 0x6c25b220,
-	0xcfd5: 0x6c25b020,
-	0xcfd9: 0x6c25b420, 0xcfda: 0x6c25b620,
-	0xcfdc: 0x6c163220, 0xcfdd: 0x6c25b820, 0xcfdf: 0x6c2f4820,
-	0xcfe0: 0x6c0aa620, 0xcfe1: 0x6c25ba20, 0xcfe2: 0x6c25bc20, 0xcfe3: 0x6c09fa20,
-	0xcfe5: 0x6c105820, 0xcfe6: 0x6c25be20,
-	0xcfea: 0x6c0e0420,
-	0xcfed: 0x6c25c020, 0xcfef: 0x6c0e2c20,
-	0xcff0: 0x6c25c220,
-	0xcff6: 0x6c047220,
-	0xcff8: 0x6c182420, 0xcff9: 0x6c0e6e20, 0xcffa: 0x6c08f620,
-	0xcfff: 0x6c034020,
-	// Block 0x340, offset 0xd000
-	0xd002: 0x6c25c420,
-	0xd004: 0x6c25de20, 0xd006: 0x6c25ca20,
-	0xd008: 0x6c043c20, 0xd00a: 0x6c25c820, 0xd00b: 0x6c25e220,
-	0xd00f: 0x6c25c620,
-	0xd011: 0x6c0aa820,
-	0xd018: 0x6c25ce20, 0xd019: 0x6c25d020, 0xd01b: 0x6c0f8220,
-	0xd01e: 0x6c25d220,
-	0xd020: 0x6c02b020,
-	0xd025: 0x6c0b7820, 0xd026: 0x6c12e420,
-	0xd028: 0x6c25d620,
-	0xd02c: 0x6c0dc820,
-	0xd033: 0x6c25cc20,
-	0xd035: 0x6c25d420, 0xd036: 0x6c25d820,
-	0xd039: 0x6c080e20,
-	// Block 0x341, offset 0xd040
-	0xd045: 0x6c25e620, 0xd046: 0x6c127820,
-	0xd048: 0x6c11ac20, 0xd049: 0x6c101e20, 0xd04b: 0x6c04dc20,
-	0xd04c: 0x6c25e420, 0xd04d: 0x6c25e020, 0xd04f: 0x6c11ca20,
-	0xd050: 0x6c25da20, 0xd051: 0x6c0e7020, 0xd052: 0x6c102220,
-	0xd054: 0x6c102020, 0xd056: 0x6c080420,
-	0xd05d: 0x6c260a20,
-	0xd065: 0x6c25ea20, 0xd067: 0x6c25ee20,
-	0xd06c: 0x6c25f420, 0xd06e: 0x6c25f620,
-	0xd070: 0x6c25f020, 0xd071: 0x6c25f220,
-	0xd074: 0x6c25ec20, 0xd075: 0x6c25e820,
-	0xd07a: 0x6c25dc20,
-	// Block 0x342, offset 0xd080
-	0xd086: 0x6c137620, 0xd087: 0x6c01e220,
-	0xd08b: 0x6c260420,
-	0xd08d: 0x6c25fe20, 0xd08f: 0x6c260820,
-	0xd092: 0x6c260620,
-	0xd094: 0x6c118a20, 0xd095: 0x6c149e20, 0xd097: 0x6c084a20,
-	0xd098: 0x6c25fa20, 0xd099: 0x6c260c20, 0xd09a: 0x6c260220,
-	0xd09c: 0x6c260020, 0xd09d: 0x6c25f820, 0xd09f: 0x6c25fc20,
-	0xd0a1: 0x6c034220,
-	0xd0aa: 0x6c0e2e20,
-	0xd0ad: 0x6c0c7a20,
-	0xd0b1: 0x6c11a420,
-	0xd0b4: 0x6c261620,
-	0xd0b8: 0x6c11a820,
-	// Block 0x343, offset 0xd0c0
-	0xd0c0: 0x6c0c4220, 0xd0c1: 0x6c261020,
-	0xd0c4: 0x6c11fe20, 0xd0c6: 0x6c261820, 0xd0c7: 0x6c137e20,
-	0xd0c9: 0x6c0e6a20, 0xd0cb: 0x6c260e20,
-	0xd0cc: 0x6c261220, 0xd0cf: 0x6c261420,
-	0xd0dd: 0x6c261a20,
-	0xd0e0: 0x6c091820,
-	0xd0e4: 0x6c107420, 0xd0e5: 0x6c262420, 0xd0e6: 0x6c262220,
-	0xd0e9: 0x6c261c20,
-	0xd0ed: 0x6c16f020,
-	0xd0f3: 0x6c262e20,
-	0xd0f6: 0x6c263620, 0xd0f7: 0x6c263020,
-	// Block 0x344, offset 0xd100
-	0xd100: 0x6c262820,
-	0xd107: 0x6c262a20,
-	0xd10d: 0x6c263420,
-	0xd111: 0x6c261e20, 0xd112: 0x6c190c20, 0xd113: 0x6c262c20,
-	0xd114: 0x6c262020, 0xd117: 0x6c263220,
-	0xd11f: 0x6c263e20,
-	0xd121: 0x6c034420, 0xd123: 0x6c263820,
-	0xd127: 0x6c263a20,
-	0xd12a: 0x6c263c20, 0xd12b: 0x6c264220,
-	0xd137: 0x6c264020,
-	0xd138: 0x6c124c20,
-	0xd13d: 0x6c264420, 0xd13e: 0x6c16c020, 0xd13f: 0x6c13b220,
-	// Block 0x345, offset 0xd140
-	0xd140: 0x6c264e20, 0xd143: 0x6c264820,
-	0xd14c: 0x6c264620, 0xd14d: 0x6c0c2420, 0xd14f: 0x6c264c20,
-	0xd150: 0x6c265020,
-	0xd154: 0x6c264a20, 0xd156: 0x6c265820,
-	0xd158: 0x6c265220,
-	0xd15f: 0x6c265420,
-	0xd160: 0x6c262620,
-	0xd164: 0x6c265620, 0xd165: 0x6c265a20,
-	0xd16c: 0x6c265c20,
-	0xd173: 0x6c136420,
-	0xd175: 0x6c265e20,
-	0xd17e: 0x6c151420,
-	// Block 0x346, offset 0xd180
-	0xd181: 0x6c04c420, 0xd182: 0x6c053620, 0xd183: 0x6c266020,
-	0xd189: 0x6c134020, 0xd18b: 0x6c0b9420,
-	0xd18d: 0x6c14b020,
-	0xd190: 0x6c266220, 0xd192: 0x6c162e20,
-	0xd195: 0x6c118c20, 0xd197: 0x6c0cc820,
-	0xd198: 0x6c110c20, 0xd19b: 0x6c09e620,
-	0xd19f: 0x6c004020,
-	0xd1a1: 0x6c266c20, 0xd1a2: 0x6c266820,
-	0xd1a4: 0x6c266420, 0xd1a5: 0x6c02f220, 0xd1a7: 0x6c0aaa20,
-	0xd1a8: 0x6c266e20, 0xd1ab: 0x6c266a20,
-	0xd1ad: 0x6c266620, 0xd1ae: 0x6c267620,
-	0xd1b1: 0x6c267420, 0xd1b2: 0x6c267220, 0xd1b3: 0x6c267020,
-	0xd1b9: 0x6c267820,
-	0xd1bd: 0x6c267a20, 0xd1be: 0x6c0bf420,
-	// Block 0x347, offset 0xd1c0
-	0xd1c0: 0x6c267c20, 0xd1c2: 0x6c268020,
-	0xd1c5: 0x6c267e20,
-	0xd1ca: 0x6c064420,
-	0xd1ce: 0x6c0cac20,
-	0xd1d2: 0x6c268420,
-	0xd1d6: 0x6c102420,
-	0xd1d8: 0x6c268220,
-	0xd1dc: 0x6c268620, 0xd1de: 0x6c134220, 0xd1df: 0x6c0d1420,
-	0xd1e0: 0x6c06ea20, 0xd1e2: 0x6c268820,
-	0xd1e7: 0x6c165820,
-	0xd1ef: 0x6c268c20,
-	0xd1f2: 0x6c268e20,
-	0xd1f4: 0x6c269020, 0xd1f6: 0x6c269220,
-	0xd1f8: 0x6c089e20, 0xd1fa: 0x6c269420, 0xd1fb: 0x6c058220,
-	0xd1fe: 0x6c044020,
-	// Block 0x348, offset 0xd200
-	0xd200: 0x6c03c020, 0xd202: 0x6c269820,
-	0xd204: 0x6c153620, 0xd205: 0x6c06ec20, 0xd206: 0x6c269620,
-	0xd20a: 0x6c269e20, 0xd20b: 0x6c151c20,
-	0xd20d: 0x6c111c20,
-	0xd210: 0x6c128220,
-	0xd214: 0x6c0a1220, 0xd215: 0x6c269c20, 0xd217: 0x6c093620,
-	0xd218: 0x6c06ee20, 0xd219: 0x6c08a020, 0xd21a: 0x6c043e20, 0xd21b: 0x6c134420,
-	0xd21c: 0x6c269a20,
-	0xd220: 0x6c0cca20, 0xd221: 0x6c141820, 0xd222: 0x6c080620,
-	0xd22b: 0x6c08a220,
-	0xd22c: 0x6c0f2a20, 0xd22e: 0x6c26a420, 0xd22f: 0x6c168620,
-	0xd230: 0x6c07ca20, 0xd232: 0x6c26a620, 0xd233: 0x6c0b4820,
-	0xd235: 0x6c26aa20,
-	0xd239: 0x6c0aac20, 0xd23a: 0x6c077820,
-	0xd23f: 0x6c26a820,
-	// Block 0x349, offset 0xd240
-	0xd242: 0x6c09a020, 0xd243: 0x6c061c20,
-	0xd244: 0x6c0ccc20, 0xd245: 0x6c26a020, 0xd246: 0x6c26ac20,
-	0xd24b: 0x6c26a220,
-	0xd24c: 0x6c058420, 0xd24e: 0x6c26b220, 0xd24f: 0x6c26ba20,
-	0xd250: 0x6c05ba20,
-	0xd256: 0x6c26b020,
-	0xd25b: 0x6c26c220,
-	0xd25e: 0x6c06f020,
-	0xd261: 0x6c15e620, 0xd262: 0x6c003820, 0xd263: 0x6c26bc20,
-	0xd266: 0x6c044220,
-	0xd268: 0x6c26b620,
-	0xd26e: 0x6c26b820,
-	0xd271: 0x6c102620, 0xd272: 0x6c26b420, 0xd273: 0x6c26ae20,
-	0xd275: 0x6c024420, 0xd276: 0x6c0c4820,
-	0xd279: 0x6c05f020,
-	0xd27d: 0x6c26c620,
-	// Block 0x34a, offset 0xd280
-	0xd289: 0x6c26c020,
-	0xd28f: 0x6c26c420,
-	0xd293: 0x6c26be20,
-	0xd299: 0x6c058620, 0xd29a: 0x6c0d5e20, 0xd29b: 0x6c26c820,
-	0xd29c: 0x6c0d1820, 0xd29f: 0x6c26e220,
-	0xd2a2: 0x6c26da20, 0xd2a3: 0x6c26ce20,
-	0xd2ab: 0x6c26d620,
-	0xd2ac: 0x6c098420, 0xd2ad: 0x6c007a20, 0xd2ae: 0x6c26cc20, 0xd2af: 0x6c26dc20,
-	0xd2b0: 0x6c26e420, 0xd2b1: 0x6c06f220, 0xd2b2: 0x6c14fc20,
-	0xd2b4: 0x6c0f1c20, 0xd2b5: 0x6c26d020,
-	0xd2b8: 0x6c26e020, 0xd2ba: 0x6c26ca20, 0xd2bb: 0x6c0e3020,
-	0xd2bd: 0x6c26d420, 0xd2be: 0x6c003a20, 0xd2bf: 0x6c14e420,
-	// Block 0x34b, offset 0xd2c0
-	0xd2c7: 0x6c26d220,
-	0xd2ca: 0x6c04de20, 0xd2cb: 0x6c123820,
-	0xd2cf: 0x6c0d1620,
-	0xd2d1: 0x6c166820, 0xd2d2: 0x6c0a2a20,
-	0xd2d5: 0x6c273220,
-	0xd2d8: 0x6c26e620, 0xd2da: 0x6c0c7c20,
-	0xd2dc: 0x6c26de20, 0xd2dd: 0x6c26e820, 0xd2de: 0x6c26ec20,
-	0xd2e0: 0x6c0f6220, 0xd2e1: 0x6c26f220,
-	0xd2e4: 0x6c26ea20,
-	0xd2e8: 0x6c138020, 0xd2e9: 0x6c034620,
-	0xd2ec: 0x6c14e620, 0xd2ef: 0x6c007c20,
-	0xd2f2: 0x6c26f020,
-	0xd2f4: 0x6c16c220,
-	0xd2fb: 0x6c26ee20,
-	// Block 0x34c, offset 0xd300
-	0xd301: 0x6c015a20,
-	0xd304: 0x6c10c020, 0xd305: 0x6c26f420,
-	0xd309: 0x6c270220, 0xd30a: 0x6c26f620, 0xd30b: 0x6c270420,
-	0xd312: 0x6c26fc20,
-	0xd31b: 0x6c119a20,
-	0xd31e: 0x6c092420, 0xd31f: 0x6c270020,
-	0xd321: 0x6c26fa20, 0xd322: 0x6c270620, 0xd323: 0x6c26f820,
-	0xd326: 0x6c09d420,
-	0xd32b: 0x6c13de20,
-	0xd32e: 0x6c09e420,
-	0xd331: 0x6c26fe20, 0xd332: 0x6c271620,
-	0xd335: 0x6c270e20, 0xd337: 0x6c271420,
-	0xd339: 0x6c271020, 0xd33a: 0x6c271820, 0xd33b: 0x6c270c20,
-	0xd33d: 0x6c26d820, 0xd33e: 0x6c0c2620,
-	// Block 0x34d, offset 0xd340
-	0xd341: 0x6c11f620, 0xd343: 0x6c271220,
-	0xd346: 0x6c270820,
-	0xd34a: 0x6c0c7e20, 0xd34b: 0x6c058820,
-	0xd34d: 0x6c09a220,
-	0xd354: 0x6c0b0e20, 0xd355: 0x6c0ca820, 0xd356: 0x6c271e20,
-	0xd359: 0x6c272220, 0xd35a: 0x6c272420,
-	0xd35d: 0x6c271c20, 0xd35e: 0x6c272020,
-	0xd366: 0x6c270a20, 0xd367: 0x6c271a20,
-	0xd369: 0x6c272a20, 0xd36a: 0x6c272820,
-	0xd36d: 0x6c148820,
-	0xd370: 0x6c053a20,
-	0xd379: 0x6c272620, 0xd37b: 0x6c272e20,
-	0xd37c: 0x6c272c20, 0xd37d: 0x6c273420, 0xd37f: 0x6c273820,
-	// Block 0x34e, offset 0xd380
-	0xd382: 0x6c084c20, 0xd383: 0x6c273020,
-	0xd388: 0x6c273a20, 0xd389: 0x6c273c20,
-	0xd38c: 0x6c273e20, 0xd38e: 0x6c274a20, 0xd38f: 0x6c0fa220,
-	0xd390: 0x6c274220, 0xd392: 0x6c274020, 0xd393: 0x6c274420,
-	0xd394: 0x6c274620, 0xd396: 0x6c274820,
-	0xd39b: 0x6c274c20,
-	0xd39c: 0x6c274e20,
-	// Block 0x34f, offset 0xd3c0
-	0xd3f6: 0x6c034820,
-	0xd3f8: 0x6c275020, 0xd3fa: 0x6c275220,
-	// Block 0x350, offset 0xd400
-	0xd405: 0x6c275420,
-	0xd40c: 0x6c275620, 0xd40d: 0x6c275820, 0xd40e: 0x6c275a20,
-	0xd410: 0x6c275c20, 0xd411: 0x6c275e20,
-	0xd414: 0x6c276220, 0xd415: 0x6c276020,
-	0xd418: 0x6c276420,
-	0xd41f: 0x6c276620,
-	0xd420: 0x6c276820,
-	0xd427: 0x6c276e20,
-	0xd428: 0x6c276a20, 0xd429: 0x6c276c20, 0xd42a: 0x6c07da20, 0xd42b: 0x6c058a20,
-	0xd42e: 0x6c0e6020,
-	0xd430: 0x6c11c620, 0xd432: 0x6c0a2c20,
-	0xd435: 0x6c113e20, 0xd437: 0x6c123a20,
-	0xd438: 0x6c277020, 0xd439: 0x6c1da420,
-	// Block 0x351, offset 0xd440
-	0xd442: 0x6c277220, 0xd443: 0x6c277620,
-	0xd445: 0x6c15d620, 0xd446: 0x6c277420, 0xd447: 0x6c277a20,
-	0xd448: 0x6c277820, 0xd44a: 0x6c15b220,
-	0xd44c: 0x6c277c20, 0xd44e: 0x6c125c20,
-	0xd454: 0x6c277e20,
-	0xd45a: 0x6c278420,
-	0xd45d: 0x6c278220, 0xd45e: 0x6c278020,
-	0xd463: 0x6c278620,
-	0xd464: 0x6c054820,
-	0xd468: 0x6c0c8020, 0xd469: 0x6c03ee20,
-	0xd46e: 0x6c278e20, 0xd46f: 0x6c278820,
-	0xd472: 0x6c278a20,
-	0xd476: 0x6c279020,
-	0xd478: 0x6c279220, 0xd479: 0x6c278c20,
-	0xd47d: 0x6c00ce20,
-	// Block 0x352, offset 0xd480
-	0xd481: 0x6c018620,
-	0xd485: 0x6c279620, 0xd486: 0x6c279820,
-	0xd48a: 0x6c279a20,
-	0xd48c: 0x6c15d020,
-	0xd492: 0x6c09a420,
-	0xd494: 0x6c279e20, 0xd495: 0x6c279c20,
-	0xd4a0: 0x6c0b9620, 0xd4a1: 0x6c27a020,
-	0xd4a6: 0x6c27a220,
-	0xd4a9: 0x6c27a420, 0xd4ab: 0x6c037a20,
-	0xd4b0: 0x6c034a20, 0xd4b3: 0x6c27a620,
-	0xd4b9: 0x6c27a820, 0xd4bb: 0x6c144e20,
-	0xd4bc: 0x6c15d220,
-	// Block 0x353, offset 0xd4c0
-	0xd4c0: 0x6c15b420, 0xd4c1: 0x6c16f220, 0xd4c3: 0x6c06f620,
-	0xd4c4: 0x6c27ae20, 0xd4c5: 0x6c093820, 0xd4c6: 0x6c27ac20,
-	0xd4cb: 0x6c27b020,
-	0xd4cc: 0x6c08e220,
-	0xd4d0: 0x6c0d9a20, 0xd4d2: 0x6c27b220,
-	0xd4d5: 0x6c06f420, 0xd4d7: 0x6c14fe20,
-	0xd4d8: 0x6c27b420, 0xd4d9: 0x6c27b620,
-	0xd4dc: 0x6c27b820,
-	0xd4e1: 0x6c27ba20,
-	0xd4e8: 0x6c27bc20,
-	0xd4f3: 0x6c08e420,
-	0xd4f6: 0x6c152a20,
-	0xd4fb: 0x6c27c020,
-	0xd4fd: 0x6c0e3220, 0xd4ff: 0x6c27be20,
-	// Block 0x354, offset 0xd500
-	0xd506: 0x6c27c420,
-	0xd50a: 0x6c27c220,
-	0xd512: 0x6c27c620,
-	0xd516: 0x6c0bf620,
-	0xd518: 0x6c27c820, 0xd51a: 0x6c27ca20,
-	0xd51e: 0x6c134a20, 0xd51f: 0x6c27cc20,
-	0xd521: 0x6c0d1a20, 0xd522: 0x6c27ce20,
-	0xd528: 0x6c27d020,
-	0xd52f: 0x6c16c420,
-	0xd530: 0x6c27d620, 0xd532: 0x6c27d420, 0xd533: 0x6c27d220,
-	0xd534: 0x6c0ed020, 0xd536: 0x6c27d820, 0xd537: 0x6c0b1020,
-	0xd539: 0x6c27da20,
-	0xd53d: 0x6c27dc20, 0xd53e: 0x6c16f420, 0xd53f: 0x6c27de20,
-	// Block 0x355, offset 0xd540
-	0xd544: 0x6c27e020, 0xd545: 0x6c27e420, 0xd546: 0x6c27e220, 0xd547: 0x6c11aa20,
-	0xd549: 0x6c10da20, 0xd54b: 0x6c170020,
-	0xd54c: 0x6c11b220,
-	0xd553: 0x6c27e820,
-	0xd556: 0x6c0aae20,
-	0xd558: 0x6c127020, 0xd55a: 0x6c27ea20, 0xd55b: 0x6c27e620,
-	0xd55d: 0x6c034c20,
-	0xd561: 0x6c064820, 0xd562: 0x6c08a420,
-	0xd565: 0x6c123c20,
-	0xd569: 0x6c05f420, 0xd56a: 0x6c141a20,
-	0xd56c: 0x6c27f020, 0xd56d: 0x6c27ec20, 0xd56f: 0x6c06f820,
-	0xd571: 0x6c06fa20, 0xd572: 0x6c009220,
-	0xd574: 0x6c07e820,
-	0xd57a: 0x6c115620,
-	// Block 0x356, offset 0xd580
-	0xd583: 0x6c007e20,
-	0xd584: 0x6c27fa20, 0xd586: 0x6c0e3420,
-	0xd58c: 0x6c115420, 0xd58e: 0x6c0dae20,
-	0xd596: 0x6c27fe20,
-	0xd599: 0x6c27f620, 0xd59a: 0x6c27fc20, 0xd59b: 0x6c27f220,
-	0xd59d: 0x6c27f820, 0xd59e: 0x6c13e020,
-	0xd5a1: 0x6c064a20,
-	0xd5a4: 0x6c00ba20, 0xd5a5: 0x6c27f420,
-	0xd5af: 0x6c280220,
-	0xd5b1: 0x6c280420,
-	0xd5b4: 0x6c105a20,
-	0xd5b8: 0x6c049e20,
-	0xd5bc: 0x6c281a20, 0xd5bd: 0x6c111e20,
-	// Block 0x357, offset 0xd5c0
-	0xd5c2: 0x6c08a620,
-	0xd5c5: 0x6c04a020, 0xd5c6: 0x6c0c1020, 0xd5c7: 0x6c171020,
-	0xd5c8: 0x6c14ac20, 0xd5c9: 0x6c280020, 0xd5ca: 0x6c0c2820,
-	0xd5da: 0x6c041220, 0xd5db: 0x6c280620,
-	0xd5e3: 0x6c280a20,
-	0xd5e9: 0x6c280820,
-	0xd5ef: 0x6c280c20,
-	0xd5f1: 0x6c0e0020, 0xd5f3: 0x6c112020,
-	0xd5f9: 0x6c0ed220,
-	0xd5fe: 0x6c281420,
-	// Block 0x358, offset 0xd600
-	0xd606: 0x6c281220,
-	0xd60b: 0x6c280e20,
-	0xd60e: 0x6c0b6e20,
-	0xd610: 0x6c12e620, 0xd611: 0x6c281820, 0xd613: 0x6c281620,
-	0xd614: 0x6c06fc20, 0xd615: 0x6c172a20,
-	0xd61f: 0x6c283820,
-	0xd625: 0x6c282020, 0xd626: 0x6c282220,
-	0xd62b: 0x6c097020,
-	0xd62e: 0x6c281e20,
-	0xd630: 0x6c074c20, 0xd631: 0x6c281c20,
-	0xd634: 0x6c282420,
-	0xd638: 0x6c0ed420, 0xd639: 0x6c131c20, 0xd63a: 0x6c0c8220,
-	0xd63f: 0x6c0db020,
-	// Block 0x359, offset 0xd640
-	0xd640: 0x6c282c20, 0xd642: 0x6c282e20, 0xd643: 0x6c282620,
-	0xd648: 0x6c282820, 0xd64a: 0x6c282a20,
-	0xd64f: 0x6c06fe20,
-	0xd653: 0x6c283a20,
-	0xd655: 0x6c283220,
-	0xd65a: 0x6c12e820,
-	0xd65c: 0x6c146c20, 0xd65d: 0x6c126c20,
-	0xd660: 0x6c283020, 0xd663: 0x6c283620,
-	0xd664: 0x6c283420,
-	0xd668: 0x6c141c20, 0xd669: 0x6c283c20,
-	0xd670: 0x6c283e20, 0xd673: 0x6c0caa20,
-	0xd675: 0x6c284020,
-	0xd678: 0x6c284420, 0xd67a: 0x6c284c20,
-	0xd67d: 0x6c284620, 0xd67e: 0x6c284220, 0xd67f: 0x6c112220,
-	// Block 0x35a, offset 0xd680
-	0xd680: 0x6c284820, 0xd682: 0x6c284a20,
-	0xd686: 0x6c019c20,
-	0xd688: 0x6c285820, 0xd689: 0x6c284e20,
-	0xd68d: 0x6c285020,
-	0xd691: 0x6c285220, 0xd693: 0x6c0d3a20,
-	0xd698: 0x6c285620, 0xd699: 0x6c285420, 0xd69a: 0x6c285a20,
-	0xd69f: 0x6c285c20,
-	0xd6a0: 0x6c285e20, 0xd6a3: 0x6c0b4a20,
-	0xd6a5: 0x6c020a20, 0xd6a7: 0x6c286020,
-	0xd6a8: 0x6c167620, 0xd6aa: 0x6c08e620,
-	0xd6ad: 0x6c09a620,
-	0xd6b3: 0x6c08a820,
-	0xd6b4: 0x6c0e6220,
-	0xd6ba: 0x6c286220, 0xd6bb: 0x6c286420,
-	0xd6bc: 0x6c00de20, 0xd6be: 0x6c286620,
-	// Block 0x35b, offset 0xd6c0
-	0xd6c1: 0x6c286820, 0xd6c2: 0x6c286a20,
-	0xd6c5: 0x6c286c20, 0xd6c7: 0x6c286e20,
-	0xd6c8: 0x6c04a220, 0xd6c9: 0x6c1e9620, 0xd6ca: 0x6c287020,
-	0xd6cc: 0x6c0c4a20, 0xd6cd: 0x6c287220, 0xd6ce: 0x6c092620,
-	0xd6d0: 0x6c287420, 0xd6d2: 0x6c174a20,
-	0xd6d6: 0x6c287620, 0xd6d7: 0x6c139420,
-	0xd6d8: 0x6c036820, 0xd6db: 0x6c0c8420,
-	0xd6dc: 0x6c09fc20, 0xd6de: 0x6c12fe20, 0xd6df: 0x6c09a820,
-	0xd6e9: 0x6c287820, 0xd6ea: 0x6c070020, 0xd6eb: 0x6c287a20,
-	0xd6ec: 0x6c11f820, 0xd6ee: 0x6c289620,
-	0xd6f3: 0x6c287e20,
-	0xd6f5: 0x6c0d8a20, 0xd6f6: 0x6c118e20, 0xd6f7: 0x6c061e20,
-	0xd6f8: 0x6c287c20, 0xd6f9: 0x6c0c8620,
-	// Block 0x35c, offset 0xd700
-	0xd700: 0x6c288020,
-	0xd707: 0x6c0f6420,
-	0xd718: 0x6c288420, 0xd719: 0x6c288220, 0xd71a: 0x6c288820,
-	0xd71d: 0x6c288620, 0xd71f: 0x6c288a20,
-	0xd722: 0x6c288e20,
-	0xd724: 0x6c288c20, 0xd726: 0x6c034e20,
-	0xd728: 0x6c289020, 0xd72a: 0x6c289220, 0xd72b: 0x6c289420,
-	0xd72e: 0x6c077a20, 0xd72f: 0x6c165a20,
-	0xd731: 0x6c289820, 0xd732: 0x6c0b1220,
-	0xd736: 0x6c015c20, 0xd737: 0x6c289a20,
-	0xd738: 0x6c289c20,
-	0xd73e: 0x6c289e20,
-	// Block 0x35d, offset 0xd740
-	0xd74b: 0x6c00a420,
-	0xd74d: 0x6c28a020,
-	0xd752: 0x6c28a220,
-	0xd759: 0x6c12ea20,
-	0xd75d: 0x6c091e20, 0xd75f: 0x6c28a620,
-	0xd765: 0x6c024620, 0xd766: 0x6c002420,
-	0xd76b: 0x6c28a420,
-	0xd76c: 0x6c28aa20, 0xd76d: 0x6c114020, 0xd76f: 0x6c0b4c20,
-	0xd771: 0x6c01e420, 0xd773: 0x6c13e220,
-	0xd778: 0x6c059e20, 0xd779: 0x6c04e020, 0xd77b: 0x6c28a820,
-	0xd77d: 0x6c020c20,
-	// Block 0x35e, offset 0xd780
-	0xd785: 0x6c02f620,
-	0xd791: 0x6c015e20, 0xd792: 0x6c28b220, 0xd793: 0x6c169c20,
-	0xd794: 0x6c0db220, 0xd797: 0x6c12a420,
-	0xd799: 0x6c28ca20, 0xd79b: 0x6c01e620,
-	0xd79c: 0x6c28c620, 0xd79e: 0x6c28c220, 0xd79f: 0x6c28b020,
-	0xd7a1: 0x6c28ac20, 0xd7a3: 0x6c28ae20,
-	0xd7a5: 0x6c095620, 0xd7a6: 0x6c050020, 0xd7a7: 0x6c0ea220,
-	0xd7ab: 0x6c108a20,
-	0xd7b1: 0x6c011e20, 0xd7b3: 0x6c28b620,
-	0xd7b4: 0x6c28b420,
-	0xd7b9: 0x6c28c020, 0xd7ba: 0x6c28b820, 0xd7bb: 0x6c28be20,
-	// Block 0x35f, offset 0xd7c0
-	0xd7c2: 0x6c14f020, 0xd7c3: 0x6c28bc20,
-	0xd7c4: 0x6c01e820, 0xd7c5: 0x6c02ee20, 0xd7c6: 0x6c28c420,
-	0xd7c9: 0x6c28c820,
-	0xd7ce: 0x6c058c20,
-	0xd7d6: 0x6c28d020, 0xd7d7: 0x6c28e220,
-	0xd7d8: 0x6c28e420,
-	0xd7dc: 0x6c001620,
-	0xd7e3: 0x6c28f220,
-	0xd7e8: 0x6c00a220, 0xd7eb: 0x6c28e020,
-	0xd7ef: 0x6c28de20,
-	0xd7f1: 0x6c28d420, 0xd7f2: 0x6c28d220,
-	0xd7f4: 0x6c28ce20, 0xd7f5: 0x6c28cc20, 0xd7f6: 0x6c0e7a20,
-	0xd7f8: 0x6c0dee20, 0xd7f9: 0x6c28d820,
-	// Block 0x360, offset 0xd800
-	0xd800: 0x6c28d620,
-	0xd805: 0x6c28dc20,
-	0xd809: 0x6c0d1c20, 0xd80a: 0x6c058e20,
-	0xd80f: 0x6c00fe20,
-	0xd810: 0x6c28da20, 0xd812: 0x6c070220,
-	0xd818: 0x6c0d1e20,
-	0xd833: 0x6c28fe20,
-	0xd835: 0x6c290020, 0xd837: 0x6c01ea20,
-	0xd83b: 0x6c019420,
-	0xd83c: 0x6c28fa20,
-	// Block 0x361, offset 0xd840
-	0xd845: 0x6c28e620, 0xd847: 0x6c28f620,
-	0xd849: 0x6c290420, 0xd84a: 0x6c28f820,
-	0xd84e: 0x6c28f420,
-	0xd853: 0x6c28ba20,
-	0xd856: 0x6c28f020,
-	0xd85a: 0x6c28e820,
-	0xd85e: 0x6c035020, 0xd85f: 0x6c28ec20,
-	0xd860: 0x6c290220, 0xd862: 0x6c28ee20,
-	0xd868: 0x6c290620, 0xd86a: 0x6c28ea20, 0xd86b: 0x6c119c20,
-	0xd871: 0x6c15de20,
-	0xd875: 0x6c28fc20,
-	0xd87d: 0x6c292820,
-	// Block 0x362, offset 0xd880
-	0xd881: 0x6c291820,
-	0xd885: 0x6c0bba20,
-	0xd88a: 0x6c03f820,
-	0xd88c: 0x6c04e220, 0xd88e: 0x6c290e20,
-	0xd893: 0x6c01ee20,
-	0xd896: 0x6c0ab020,
-	0xd898: 0x6c291420,
-	0xd89c: 0x6c07cc20, 0xd89f: 0x6c0fce20,
-	0xd8a0: 0x6c291e20,
-	0xd8a9: 0x6c13b420, 0xd8ab: 0x6c290c20,
-	0xd8af: 0x6c01ec20,
-	0xd8b0: 0x6c064c20, 0xd8b1: 0x6c126e20, 0xd8b2: 0x6c292020,
-	0xd8b4: 0x6c290820, 0xd8b7: 0x6c291a20,
-	0xd8bb: 0x6c292e20,
-	0xd8bd: 0x6c291020,
-	// Block 0x363, offset 0xd8c0
-	0xd8c3: 0x6c291220,
-	0xd8c4: 0x6c105c20, 0xd8c7: 0x6c291c20,
-	0xd8cb: 0x6c291620,
-	0xd8cc: 0x6c13e420, 0xd8cd: 0x6c292220, 0xd8ce: 0x6c008020,
-	0xd8d3: 0x6c290a20,
-	0xd8e0: 0x6c292620, 0xd8e2: 0x6c292420,
-	0xd8e9: 0x6c117a20, 0xd8ea: 0x6c293220,
-	0xd8ec: 0x6c294820,
-	0xd8f1: 0x6c02f020,
-	0xd8f5: 0x6c294e20,
-	0xd8f8: 0x6c292a20,
-	0xd8fc: 0x6c293420, 0xd8fd: 0x6c15e820,
-	// Block 0x364, offset 0xd900
-	0xd906: 0x6c294620,
-	0xd909: 0x6c15b620,
-	0xd90e: 0x6c161c20,
-	0xd917: 0x6c0ea420,
-	0xd91b: 0x6c02ca20,
-	0xd921: 0x6c130020, 0xd922: 0x6c295220, 0xd923: 0x6c102a20,
-	0xd926: 0x6c002220,
-	0xd929: 0x6c294420, 0xd92b: 0x6c293c20,
-	0xd92c: 0x6c0d2020, 0xd92d: 0x6c293020, 0xd92e: 0x6c294020, 0xd92f: 0x6c294a20,
-	0xd931: 0x6c10fc20,
-	0xd935: 0x6c001420, 0xd937: 0x6c293a20,
-	0xd939: 0x6c294c20, 0xd93a: 0x6c130c20,
-	// Block 0x365, offset 0xd940
-	0xd942: 0x6c294220,
-	0xd944: 0x6c293820,
-	0xd94b: 0x6c0ab220,
-	0xd950: 0x6c09aa20,
-	0xd954: 0x6c08e820,
-	0xd959: 0x6c150020,
-	0xd95c: 0x6c12aa20, 0xd95f: 0x6c295820,
-	0xd961: 0x6c296a20,
-	0xd96d: 0x6c293e20,
-	0xd972: 0x6c02e220,
-	0xd978: 0x6c0af820, 0xd979: 0x6c295420, 0xd97b: 0x6c295e20,
-	0xd97c: 0x6c0d2220, 0xd97f: 0x6c295620,
-	// Block 0x366, offset 0xd980
-	0xd981: 0x6c296420,
-	0xd984: 0x6c0e7220, 0xd986: 0x6c296620,
-	0xd989: 0x6c15b820, 0xd98a: 0x6c295020, 0xd98b: 0x6c026420,
-	0xd98d: 0x6c295c20,
-	0xd990: 0x6c296220, 0xd991: 0x6c14a820,
-	0xd996: 0x6c296820,
-	0xd999: 0x6c295a20, 0xd99a: 0x6c296020,
-	0xd9ac: 0x6c13e620, 0xd9ae: 0x6c16c620,
-	0xd9b4: 0x6c297020,
-	0xd9bc: 0x6c297e20, 0xd9bf: 0x6c296e20,
-	// Block 0x367, offset 0xd9c0
-	0xd9c0: 0x6c091620,
-	0xd9c6: 0x6c292c20,
-	0xd9d1: 0x6c137420, 0xd9d3: 0x6c149420,
-	0xd9d4: 0x6c297c20, 0xd9d5: 0x6c297a20, 0xd9d7: 0x6c297220,
-	0xd9d8: 0x6c297420, 0xd9da: 0x6c00e820,
-	0xd9df: 0x6c297820,
-	0xd9e1: 0x6c296c20,
-	0xd9e6: 0x6c0f1a20,
-	0xd9ec: 0x6c297620, 0xd9ed: 0x6c00bc20,
-	0xd9f5: 0x6c0d3c20,
-	0xd9fd: 0x6c135e20,
-	// Block 0x368, offset 0xda00
-	0xda00: 0x6c298020, 0xda01: 0x6c298820, 0xda03: 0x6c121220,
-	0xda08: 0x6c298620, 0xda09: 0x6c0ab420, 0xda0a: 0x6c092220, 0xda0b: 0x6c298c20,
-	0xda0e: 0x6c04a420,
-	0xda15: 0x6c298e20, 0xda17: 0x6c130e20,
-	0xda18: 0x6c298420, 0xda1a: 0x6c293620,
-	0xda23: 0x6c298220,
-	0xda28: 0x6c172220, 0xda29: 0x6c102c20, 0xda2a: 0x6c130220,
-	0xda2d: 0x6c299c20,
-	0xda37: 0x6c29a820,
-	0xda3e: 0x6c29aa20,
-	// Block 0x369, offset 0xda40
-	0xda40: 0x6c299020,
-	0xda44: 0x6c119020, 0xda47: 0x6c29a420,
-	0xda48: 0x6c299420, 0xda4a: 0x6c299820,
-	0xda50: 0x6c29ac20, 0xda51: 0x6c299620,
-	0xda54: 0x6c299e20, 0xda57: 0x6c016020,
-	0xda59: 0x6c10b220, 0xda5b: 0x6c29a020,
-	0xda5c: 0x6c29a620,
-	0xda64: 0x6c299220, 0xda66: 0x6c0c8820,
-	0xda68: 0x6c299a20, 0xda69: 0x6c082220, 0xda6a: 0x6c0b4e20, 0xda6b: 0x6c054420,
-	0xda6c: 0x6c153820, 0xda6e: 0x6c154220, 0xda6f: 0x6c0a3020,
-	0xda79: 0x6c29b420, 0xda7a: 0x6c29b020,
-	// Block 0x36a, offset 0xda80
-	0xda81: 0x6c172020,
-	0xda89: 0x6c29ae20,
-	0xda8d: 0x6c15f620, 0xda8f: 0x6c29b220,
-	0xda90: 0x6c29b620,
-	0xda95: 0x6c29b820,
-	0xda9c: 0x6c29be20, 0xda9d: 0x6c29ba20,
-	0xdaa4: 0x6c102e20, 0xdaa5: 0x6c29bc20,
-	0xdaa9: 0x6c11fa20, 0xdaaa: 0x6c29a220,
-	0xdab7: 0x6c0a3220,
-	0xdab9: 0x6c29c020, 0xdaba: 0x6c29ca20, 0xdabb: 0x6c0d2420,
-	0xdabe: 0x6c29c820,
-	// Block 0x36b, offset 0xdac0
-	0xdac2: 0x6c298a20,
-	0xdac6: 0x6c29cc20, 0xdac7: 0x6c0cce20,
-	0xdaca: 0x6c29c220, 0xdacb: 0x6c29c620,
-	0xdad3: 0x6c29c420,
-	0xdad6: 0x6c20d820, 0xdad7: 0x6c20ba20,
-	0xdada: 0x6c29d020,
-	0xdae2: 0x6c29ce20,
-	0xdaed: 0x6c15f820, 0xdaef: 0x6c249a20,
-	0xdaf0: 0x6c29d220,
-	0xdaff: 0x6c29d420,
-	// Block 0x36c, offset 0xdb00
-	0xdb0d: 0x6c29d620, 0xdb0e: 0x6c064e20,
-	0xdb10: 0x6c041420,
-	0xdb14: 0x6c29da20, 0xdb15: 0x6c186020,
-	0xdb1a: 0x6c045620,
-	0xdb1c: 0x6c163c20, 0xdb1e: 0x6c050e20, 0xdb1f: 0x6c29dc20,
-	0xdb27: 0x6c29de20,
-	0xdb2b: 0x6c0e9020,
-	0xdb31: 0x6c29e020,
-	0xdb39: 0x6c10dc20, 0xdb3b: 0x6c003420,
-	// Block 0x36d, offset 0xdb40
-	0xdb4a: 0x6c01fe20, 0xdb4b: 0x6c29ea20,
-	0xdb4c: 0x6c29ec20,
-	0xdb53: 0x6c29e220,
-	0xdb55: 0x6c084e20,
-	0xdb63: 0x6c29e420,
-	0xdb64: 0x6c112820,
-	0xdb69: 0x6c29e620, 0xdb6a: 0x6c29e820, 0xdb6b: 0x6c29fc20,
-	0xdb6f: 0x6c29f020,
-	0xdb70: 0x6c29f620,
-	0xdb76: 0x6c29ee20,
-	// Block 0x36e, offset 0xdb80
-	0xdb84: 0x6c29f220, 0xdb86: 0x6c29f420, 0xdb87: 0x6c094020,
-	0xdb89: 0x6c29f820, 0xdb8b: 0x6c0e3620,
-	0xdb8d: 0x6c059020, 0xdb8e: 0x6c027820,
-	0xdb94: 0x6c29fe20,
-	0xdb99: 0x6c027220, 0xdb9b: 0x6c2a0820,
-	0xdb9e: 0x6c2a0020, 0xdb9f: 0x6c2a0620,
-	0xdba4: 0x6c11d420,
-	0xdba9: 0x6c2a0220,
-	0xdbac: 0x6c2a0420, 0xdbad: 0x6c12ac20, 0xdbae: 0x6c121420, 0xdbaf: 0x6c2a0a20,
-	0xdbb8: 0x6c0df220, 0xdbb9: 0x6c2a1e20, 0xdbbb: 0x6c2a1620,
-	0xdbbe: 0x6c020e20,
-	// Block 0x36f, offset 0xdbc0
-	0xdbc0: 0x6c2a1220, 0xdbc2: 0x6c13e820, 0xdbc3: 0x6c2a1420,
-	0xdbc6: 0x6c2a0e20,
-	0xdbc8: 0x6c2a1020, 0xdbc9: 0x6c2a1a20, 0xdbca: 0x6c2a2020,
-	0xdbcd: 0x6c2a1c20,
-	0xdbd1: 0x6c2a1820, 0xdbd2: 0x6c2a0c20,
-	0xdbd8: 0x6c0e6420, 0xdbda: 0x6c2a2e20,
-	0xdbdc: 0x6c14a420,
-	0xdbe5: 0x6c2a2a20,
-	0xdbe9: 0x6c2a2c20,
-	0xdbf4: 0x6c2a2220, 0xdbf7: 0x6c2a2620,
-	0xdbfb: 0x6c2a2820,
-	0xdbff: 0x6c2a2420,
-	// Block 0x370, offset 0xdc00
-	0xdc09: 0x6c0c4c20, 0xdc0b: 0x6c16f620,
-	0xdc0c: 0x6c2a3620, 0xdc0e: 0x6c2a3820,
-	0xdc13: 0x6c2a4420,
-	0xdc15: 0x6c0b1820, 0xdc17: 0x6c2a3c20,
-	0xdc19: 0x6c2a4220,
-	0xdc1f: 0x6c2a3220,
-	0xdc20: 0x6c2a3020, 0xdc23: 0x6c2a4620,
-	0xdc26: 0x6c01f020,
-	0xdc28: 0x6c2a3e20, 0xdc2a: 0x6c2a4820,
-	0xdc2e: 0x6c2a4020,
-	0xdc34: 0x6c2a3a20, 0xdc36: 0x6c0ed620,
-	0xdc38: 0x6c2a3420,
-	0xdc3f: 0x6c117420,
-	// Block 0x371, offset 0xdc40
-	0xdc42: 0x6c2a5020,
-	0xdc4d: 0x6c158220,
-	0xdc5f: 0x6c2a4e20,
-	0xdc62: 0x6c2a4c20,
-	0xdc6b: 0x6c2a5e20,
-	0xdc6f: 0x6c2a5220,
-	0xdc73: 0x6c2a6220,
-	0xdc7a: 0x6c15d820, 0xdc7b: 0x6c2a6820,
-	0xdc7d: 0x6c2a5620,
-	// Block 0x372, offset 0xdc80
-	0xdc80: 0x6c2a5820,
-	0xdc84: 0x6c2a6020, 0xdc86: 0x6c2a6620, 0xdc87: 0x6c2a6420,
-	0xdc8b: 0x6c2a5420,
-	0xdc90: 0x6c2a5a20, 0xdc92: 0x6c2a7c20,
-	0xdca0: 0x6c2a6e20,
-	0xdcaf: 0x6c2a6a20,
-	0xdcb2: 0x6c2a6c20,
-	0xdcb6: 0x6c2a7620, 0xdcb7: 0x6c2a7820,
-	0xdcb9: 0x6c024820, 0xdcbb: 0x6c03f020,
-	0xdcbe: 0x6c2a7420,
-	// Block 0x373, offset 0xdcc0
-	0xdcc5: 0x6c2a4a20,
-	0xdccd: 0x6c2a7220, 0xdcce: 0x6c2a7a20, 0xdccf: 0x6c2a7020,
-	0xdcd1: 0x6c2a7e20,
-	0xdcd5: 0x6c2a8220, 0xdcd6: 0x6c2a8020,
-	0xdce1: 0x6c2a8620, 0xdce2: 0x6c2a8420, 0xdce3: 0x6c29fa20,
-	0xdce7: 0x6c2a8e20,
-	0xdcf1: 0x6c2a8820,
-	0xdcf6: 0x6c2a8a20,
-	0xdcf9: 0x6c2a8c20, 0xdcfb: 0x6c2a9020,
-	// Block 0x374, offset 0xdd00
-	0xdd00: 0x6c05bc20, 0xdd02: 0x6c2a9420,
-	0xdd04: 0x6c2a9220, 0xdd06: 0x6c09ac20,
-	0xdd0c: 0x6c070420, 0xdd0d: 0x6c218020,
-	0xdd12: 0x6c2a9620, 0xdd13: 0x6c09ee20,
-	0xdd17: 0x6c026620,
-	0xdd19: 0x6c2a9820, 0xdd1b: 0x6c012020,
-	0xdd1d: 0x6c0ab620, 0xdd1e: 0x6c2a9a20,
-	0xdd21: 0x6c070620, 0xdd22: 0x6c2a9c20, 0xdd23: 0x6c008220,
-	0xdd28: 0x6c129620, 0xdd2b: 0x6c2a9e20,
-	0xdd30: 0x6c0b9820, 0xdd32: 0x6c2aac20,
-	0xdd35: 0x6c2aa620, 0xdd37: 0x6c0e9220,
-	0xdd3d: 0x6c2aa820, 0xdd3e: 0x6c2aa220, 0xdd3f: 0x6c04e420,
-	// Block 0x375, offset 0xdd40
-	0xdd41: 0x6c2aa020, 0xdd42: 0x6c2aae20,
-	0xdd48: 0x6c055020, 0xdd4b: 0x6c0db420,
-	0xdd4d: 0x6c2aba20,
-	0xdd52: 0x6c2ab220,
-	0xdd56: 0x6c0d6220, 0xdd57: 0x6c2ab020,
-	0xdd59: 0x6c2ab620,
-	0xdd5e: 0x6c2aa420,
-	0xdd62: 0x6c2ab820,
-	0xdd64: 0x6c2abc20,
-	0xdd6b: 0x6c123e20,
-	0xdd6e: 0x6c2ab420,
-	0xdd70: 0x6c2abe20, 0xdd71: 0x6c2ac220,
-	0xdd74: 0x6c064620, 0xdd75: 0x6c2aaa20, 0xdd77: 0x6c004220,
-	0xdd7f: 0x6c2ac020,
-	// Block 0x376, offset 0xdd80
-	0xdd81: 0x6c07ce20, 0xdd82: 0x6c16b420, 0xdd83: 0x6c2ac420,
-	0xdd84: 0x6c2ac620, 0xdd85: 0x6c0d2620,
-	0xdd8f: 0x6c160c20,
-	0xdd94: 0x6c2ac820, 0xdd95: 0x6c157620,
-	0xdd98: 0x6c2aca20, 0xdd99: 0x6c2acc20,
-	0xdd9c: 0x6c13a020, 0xdd9d: 0x6c2ace20, 0xdd9f: 0x6c079820,
-	0xdda1: 0x6c160e20,
-	0xdda8: 0x6c2ad820,
-	0xddb2: 0x6c2ada20, 0xddb3: 0x6c0ab820,
-	0xddb4: 0x6c2ad620,
-	0xddb8: 0x6c15da20, 0xddb9: 0x6c2ad020,
-	0xddbc: 0x6c2ad420, 0xddbd: 0x6c0bfa20, 0xddbe: 0x6c0bc020,
-	// Block 0x377, offset 0xddc0
-	0xddc2: 0x6c2ad220,
-	0xddc4: 0x6c2adc20, 0xddc7: 0x6c131e20,
-	0xddca: 0x6c2ae020,
-	0xddcc: 0x6c2ade20,
-	0xddd0: 0x6c02cc20, 0xddd2: 0x6c13ea20, 0xddd3: 0x6c2ae220,
-	0xdddd: 0x6c2afa20, 0xddde: 0x6c2ae620,
-	0xdde5: 0x6c2ae820,
-	0xddea: 0x6c2aea20, 0xddeb: 0x6c2aec20,
-	0xddf6: 0x6c2af420,
-	0xddf8: 0x6c2af620, 0xddfb: 0x6c2af220,
-	// Block 0x378, offset 0xde00
-	0xde01: 0x6c2aee20, 0xde03: 0x6c2ae420,
-	0xde04: 0x6c2af020,
-	0xde0c: 0x6c2af820, 0xde0d: 0x6c2ed820,
-	0xde16: 0x6c018820,
-	0xde1e: 0x6c2afe20, 0xde1f: 0x6c04e620,
-	0xde20: 0x6c2afc20,
-	0xde24: 0x6c2b0220, 0xde26: 0x6c2b0020,
-	0xde2a: 0x6c2b0620,
-	0xde2d: 0x6c2b0420, 0xde2f: 0x6c2b0820,
-	0xde32: 0x6c09ae20,
-	0xde34: 0x6c2b0a20, 0xde37: 0x6c2b0c20,
-	0xde3e: 0x6c2b0e20, 0xde3f: 0x6c0bfc20,
-	// Block 0x379, offset 0xde40
-	0xde41: 0x6c15ba20, 0xde43: 0x6c2b1020,
-	0xde46: 0x6c132020, 0xde47: 0x6c113020,
-	0xde48: 0x6c2b1220, 0xde4a: 0x6c2b1420, 0xde4b: 0x6c05f620,
-	0xde4f: 0x6c03c420,
-	0xde53: 0x6c2b1620,
-	0xde56: 0x6c08aa20, 0xde57: 0x6c112620,
-	0xde58: 0x6c2b1820, 0xde5a: 0x6c029420,
-	0xde61: 0x6c2b1a20,
-	0xde66: 0x6c2b1e20, 0xde67: 0x6c15fa20,
-	0xde69: 0x6c2b1c20, 0xde6a: 0x6c0b5020,
-	0xde6c: 0x6c2b2020, 0xde6f: 0x6c2b2220,
-	0xde72: 0x6c2b2420, 0xde73: 0x6c035220,
-	0xde7a: 0x6c2b2620,
-	0xde7d: 0x6c2b2820, 0xde7f: 0x6c2b2a20,
-	// Block 0x37a, offset 0xde80
-	0xde80: 0x6c2b2c20,
-	0xde92: 0x6c029620,
-	0xde9a: 0x6c2b2e20,
-	0xde9c: 0x6c2b3020, 0xde9d: 0x6c2b3220,
-	0xdea3: 0x6c021c20,
-	0xdea6: 0x6c0b1420, 0xdea7: 0x6c2b3420,
-	0xdeb4: 0x6c2b3620,
-	0xdeb8: 0x6c2b3820,
-	// Block 0x37b, offset 0xdec0
-	0xdec0: 0x6c062020, 0xdec2: 0x6c0f6620, 0xdec3: 0x6c2b3a20,
-	0xdec8: 0x6c059220, 0xdeca: 0x6c0b7020,
-	0xdecc: 0x6c2b4020, 0xdece: 0x6c103020,
-	0xded0: 0x6c2b3e20, 0xded3: 0x6c054620,
-	0xded6: 0x6c2b3c20, 0xded7: 0x6c0de620,
-	0xded8: 0x6c03c620, 0xdedb: 0x6c2b4220,
-	0xdedd: 0x6c2b4420, 0xdedf: 0x6c0aba20,
-	0xdee3: 0x6c05be20,
-	0xdee5: 0x6c2b4620,
-	0xdeea: 0x6c13ec20,
-	0xdeed: 0x6c0c3e20,
-	0xdef1: 0x6c045820, 0xdef3: 0x6c153a20,
-	0xdef4: 0x6c0cd020, 0xdef6: 0x6c2b4820,
-	0xdefa: 0x6c0b5220, 0xdefb: 0x6c0e9420,
-	0xdefc: 0x6c0abc20,
-	// Block 0x37c, offset 0xdf00
-	0xdf01: 0x6c2b4a20,
-	0xdf06: 0x6c2b5020,
-	0xdf08: 0x6c2b5220,
-	0xdf10: 0x6c079420, 0xdf11: 0x6c0d7c20, 0xdf12: 0x6c2b4e20,
-	0xdf14: 0x6c0abe20, 0xdf15: 0x6c129820,
-	0xdf1b: 0x6c2b4c20,
-	0xdf1e: 0x6c08ac20,
-	0xdf20: 0x6c012220, 0xdf22: 0x6c2b5a20, 0xdf23: 0x6c059420,
-	0xdf26: 0x6c08b020,
-	0xdf29: 0x6c08ae20, 0xdf2b: 0x6c171e20,
-	0xdf2c: 0x6c2b5820, 0xdf2d: 0x6c2b5620, 0xdf2e: 0x6c0c8a20,
-	0xdf30: 0x6c040620, 0xdf31: 0x6c170a20, 0xdf32: 0x6c026820, 0xdf33: 0x6c0ac020,
-	0xdf3c: 0x6c2b5420,
-	// Block 0x37d, offset 0xdf40
-	0xdf42: 0x6c2b5e20,
-	0xdf44: 0x6c2b6020, 0xdf45: 0x6c2b5c20, 0xdf47: 0x6c065020,
-	0xdf49: 0x6c158c20,
-	0xdf4c: 0x6c08b220, 0xdf4d: 0x6c10f220,
-	0xdf51: 0x6c2b6620, 0xdf53: 0x6c0c0020,
-	0xdf55: 0x6c0e3820,
-	0xdf58: 0x6c157820, 0xdf5a: 0x6c2b6c20,
-	0xdf5e: 0x6c067820,
-	0xdf60: 0x6c0bfe20, 0xdf61: 0x6c2b6420, 0xdf63: 0x6c2b6e20,
-	0xdf64: 0x6c067a20, 0xdf65: 0x6c2b6820, 0xdf66: 0x6c2b6a20,
-	0xdf68: 0x6c2b6220,
-	0xdf6c: 0x6c0c4420, 0xdf6d: 0x6c107a20,
-	0xdf70: 0x6c0e1220, 0xdf72: 0x6c01f220,
-	0xdf79: 0x6c124020,
-	0xdf7c: 0x6c03f220, 0xdf7f: 0x6c0ed820,
-	// Block 0x37e, offset 0xdf80
-	0xdf82: 0x6c2b7420,
-	0xdf84: 0x6c2b7020, 0xdf87: 0x6c0e4c20,
-	0xdf8b: 0x6c0c0220,
-	0xdf8c: 0x6c035420, 0xdf8d: 0x6c2b7220, 0xdf8f: 0x6c0b7a20,
-	0xdf92: 0x6c165c20,
-	0xdf96: 0x6c170420,
-	0xdf9a: 0x6c2b7620, 0xdf9b: 0x6c2b8c20,
-	0xdf9c: 0x6c0eda20, 0xdf9e: 0x6c2b8a20,
-	0xdfa0: 0x6c2b8420, 0xdfa1: 0x6c2b9420, 0xdfa2: 0x6c2b8620,
-	0xdfa4: 0x6c2b7e20, 0xdfa6: 0x6c0f6820, 0xdfa7: 0x6c2b7c20,
-	0xdfab: 0x6c2b7820,
-	0xdfad: 0x6c154e20, 0xdfae: 0x6c08b420,
-	0xdfb1: 0x6c2b8020, 0xdfb3: 0x6c2b7a20,
-	0xdfb7: 0x6c2b8820,
-	0xdfb8: 0x6c0a3420, 0xdfba: 0x6c062220,
-	0xdfbe: 0x6c0dec20,
-	// Block 0x37f, offset 0xdfc0
-	0xdfc0: 0x6c141e20, 0xdfc1: 0x6c013020, 0xdfc2: 0x6c008420,
-	0xdfc4: 0x6c103220, 0xdfc7: 0x6c2b9020,
-	0xdfcc: 0x6c2b8e20, 0xdfce: 0x6c10b420,
-	0xdfd0: 0x6c2b9820,
-	0xdfd4: 0x6c2b8220, 0xdfd6: 0x6c2b9620, 0xdfd7: 0x6c2b9a20,
-	0xdfd9: 0x6c05f820, 0xdfda: 0x6c2b9220, 0xdfdb: 0x6c070820,
-	0xdfdd: 0x6c093a20,
-	0xdfe0: 0x6c2b9c20, 0xdfe1: 0x6c15bc20,
-	0xdfe6: 0x6c2ba220,
-	0xdfe8: 0x6c2ba820, 0xdfeb: 0x6c2ba420,
-	0xdfec: 0x6c128620,
-	0xdff3: 0x6c2b9e20,
-	0xdff9: 0x6c04e820,
-	0xdffe: 0x6c2ba620,
-	// Block 0x380, offset 0xe000
-	0xe001: 0x6c2baa20,
-	0xe009: 0x6c2bb220,
-	0xe00c: 0x6c2bac20, 0xe00e: 0x6c2bb020, 0xe00f: 0x6c2bae20,
-	0xe016: 0x6c2bb420,
-	0xe018: 0x6c08f220, 0xe01a: 0x6c2bb820, 0xe01b: 0x6c2bb620,
-	0xe01c: 0x6c12ec20, 0xe01f: 0x6c2bbc20,
-	0xe026: 0x6c059620,
-	0xe02b: 0x6c2bba20,
-	0xe02c: 0x6c2bbe20, 0xe02f: 0x6c2bc020,
-	0xe030: 0x6c03f420, 0xe031: 0x6c279420, 0xe032: 0x6c0afa20,
-	0xe034: 0x6c2bc220, 0xe037: 0x6c067c20,
-	0xe03d: 0x6c2bc420,
-	// Block 0x381, offset 0xe040
-	0xe040: 0x6c2bc620, 0xe043: 0x6c085020,
-	0xe04a: 0x6c1ede20,
-	0xe04c: 0x6c2bc820, 0xe04e: 0x6c2bca20,
-	0xe050: 0x6c09b020, 0xe052: 0x6c2bcc20, 0xe053: 0x6c2bce20,
-	0xe056: 0x6c2bd020,
-	0xe059: 0x6c2bd220, 0xe05a: 0x6c2bd420,
-	// Block 0x382, offset 0xe080
-	0xe0b7: 0x6c0e0a20,
-	0xe0ba: 0x6c2bd620,
-	0xe0bf: 0x6c2bda20,
-	// Block 0x383, offset 0xe0c0
-	0xe0c1: 0x6c2bd820,
-	0xe0c6: 0x6c103420,
-	0xe0c8: 0x6c2bdc20, 0xe0ca: 0x6c13ee20,
-	0xe0cc: 0x6c2bde20, 0xe0ce: 0x6c2be020,
-	0xe0d0: 0x6c2be220,
-	0xe0d5: 0x6c2be420,
-	0xe0da: 0x6c109c20,
-	0xe0e1: 0x6c0ac220, 0xe0e2: 0x6c2be620,
-	0xe0ea: 0x6c073220, 0xe0eb: 0x6c174620,
-	0xe0ec: 0x6c2be820,
-	0xe0f8: 0x6c2bea20, 0xe0f9: 0x6c129a20, 0xe0fa: 0x6c2bec20,
-	0xe0fc: 0x6c2bfc20,
-	// Block 0x384, offset 0xe100
-	0xe102: 0x6c2bee20,
-	0xe105: 0x6c2bf220,
-	0xe109: 0x6c2bf020, 0xe10a: 0x6c2bf420,
-	0xe10c: 0x6c142020, 0xe10d: 0x6c2bf620, 0xe10e: 0x6c2bf820,
-	0xe114: 0x6c2bfa20,
-	0xe118: 0x6c2bfe20,
-	0xe11d: 0x6c024e20, 0xe11e: 0x6c0f3e20,
-	0xe120: 0x6c12ee20, 0xe121: 0x6c07dc20, 0xe122: 0x6c070a20,
-	0xe127: 0x6c12ba20,
-	0xe128: 0x6c01f620, 0xe129: 0x6c11fc20, 0xe12a: 0x6c2c0420, 0xe12b: 0x6c035620,
-	0xe12c: 0x6c0c2a20, 0xe12d: 0x6c2c0220, 0xe12e: 0x6c2c0c20, 0xe12f: 0x6c0ea620,
-	0xe130: 0x6c151620, 0xe132: 0x6c2c0820, 0xe133: 0x6c2c0a20,
-	0xe134: 0x6c03c820, 0xe136: 0x6c2c0e20, 0xe137: 0x6c116a20,
-	0xe138: 0x6c0db620, 0xe13b: 0x6c124220,
-	0xe13c: 0x6c0fa620, 0xe13d: 0x6c2c0620, 0xe13f: 0x6c142220,
-	// Block 0x385, offset 0xe140
-	0xe140: 0x6c021020, 0xe141: 0x6c2c1220, 0xe142: 0x6c16d420, 0xe143: 0x6c0ef420,
-	0xe144: 0x6c170e20, 0xe147: 0x6c08b620,
-	0xe148: 0x6c2c1020, 0xe14a: 0x6c0d5a20,
-	0xe14d: 0x6c2c3220, 0xe14e: 0x6c0c8c20,
-	0xe151: 0x6c10d820, 0xe153: 0x6c12bc20,
-	0xe15a: 0x6c2c1820, 0xe15b: 0x6c085220,
-	0xe15c: 0x6c08b820, 0xe15e: 0x6c0ac420,
-	0xe160: 0x6c116e20, 0xe162: 0x6c05fa20, 0xe163: 0x6c2c1620,
-	0xe164: 0x6c2c1420, 0xe166: 0x6c12f020,
-	0xe16a: 0x6c091220,
-	0xe16d: 0x6c0fd020,
-	0xe17a: 0x6c2c1c20, 0xe17b: 0x6c2c1e20,
-	0xe17c: 0x6c070c20, 0xe17d: 0x6c2c1a20,
-	// Block 0x386, offset 0xe180
-	0xe184: 0x6c2c2020, 0xe185: 0x6c2c2220, 0xe187: 0x6c2c2620,
-	0xe188: 0x6c0d3e20, 0xe18a: 0x6c2c2420, 0xe18b: 0x6c037c20,
-	0xe18d: 0x6c2c2a20, 0xe18f: 0x6c2c2820,
-	0xe190: 0x6c2c2c20, 0xe193: 0x6c2c3020,
-	0xe194: 0x6c2c3420, 0xe196: 0x6c2c3620,
-	// Block 0x387, offset 0xe1c0
-	0xe1e4: 0x6c0c2c20, 0xe1e6: 0x6c092e20, 0xe1e7: 0x6c2c3820,
-	0xe1eb: 0x6c029820,
-	0xe1ed: 0x6c2c3a20,
-	0xe1f0: 0x6c0d2820, 0xe1f1: 0x6c2c3c20, 0xe1f3: 0x6c2c3e20,
-	0xe1f4: 0x6c12f220, 0xe1f7: 0x6c03ca20,
-	// Block 0x388, offset 0xe200
-	0xe201: 0x6c2c4020,
-	0xe205: 0x6c0edc20,
-	0xe20a: 0x6c013220,
-	0xe219: 0x6c2c4220,
-	0xe223: 0x6c097220,
-	0xe228: 0x6c0bb020,
-	0xe233: 0x6c0d5220,
-	0xe23a: 0x6c2c4820,
-	0xe23e: 0x6c2c4620,
-	// Block 0x389, offset 0xe240
-	0xe242: 0x6c2c4420,
-	0xe24b: 0x6c2c5420,
-	0xe24c: 0x6c2c5020, 0xe24f: 0x6c2c4a20,
-	0xe256: 0x6c2c4e20,
-	0xe25a: 0x6c2c4c20, 0xe25b: 0x6c2c5220,
-	0xe25d: 0x6c045a20, 0xe25f: 0x6c2c5a20,
-	0xe261: 0x6c0c2e20, 0xe263: 0x6c2c5c20,
-	0xe268: 0x6c065220, 0xe26a: 0x6c2c5620, 0xe26b: 0x6c2c5820,
-	0xe26f: 0x6c16d620,
-	0xe273: 0x6c0ede20,
-	0xe275: 0x6c0c8e20,
-	0xe27c: 0x6c2c5e20, 0xe27f: 0x6c2c6420,
-	// Block 0x38a, offset 0xe280
-	0xe288: 0x6c2c6020, 0xe289: 0x6c2c6220, 0xe28a: 0x6c15be20,
-	0xe28f: 0x6c103620,
-	0xe290: 0x6c2c6a20,
-	0xe29d: 0x6c2c6620, 0xe29e: 0x6c2c6820, 0xe29f: 0x6c2c6c20,
-	0xe2aa: 0x6c2c8820,
-	0xe2b0: 0x6c2c7220,
-	0xe2b4: 0x6c2c7420, 0xe2b5: 0x6c2c7020,
-	// Block 0x38b, offset 0xe2c0
-	0xe2c2: 0x6c2c6e20,
-	0xe2c4: 0x6c0f6a20, 0xe2c7: 0x6c2c7820,
-	0xe2c8: 0x6c2c8020, 0xe2c9: 0x6c2c7a20, 0xe2ca: 0x6c2c7620,
-	0xe2cc: 0x6c2c7c20,
-	0xe2d0: 0x6c2c7e20,
-	0xe2d5: 0x6c2c8c20,
-	0xe2d9: 0x6c2c8220,
-	0xe2df: 0x6c0c3020,
-	0xe2e0: 0x6c2c8620, 0xe2e3: 0x6c2c8a20,
-	0xe2e4: 0x6c2c8420,
-	0xe2f2: 0x6c2c9020,
-	0xe2f4: 0x6c09b220, 0xe2f6: 0x6c2c8e20,
-	0xe2fc: 0x6c2c9220,
-	// Block 0x38c, offset 0xe300
-	0xe301: 0x6c2c9420,
-	0xe304: 0x6c2c9a20, 0xe305: 0x6c2c9820, 0xe307: 0x6c2c9620,
-	0xe30a: 0x6c2c9e20, 0xe30b: 0x6c2c9c20,
-	0xe30d: 0x6c153c20,
-	0xe311: 0x6c2ca220, 0xe313: 0x6c2ca020,
-	0xe314: 0x6c2ca420,
-	0xe319: 0x6c2ca620,
-	0xe321: 0x6c2caa20,
-	0xe32a: 0x6c2ca820, 0xe32b: 0x6c0b5420,
-	0xe32c: 0x6c2cac20, 0xe32f: 0x6c050220,
-	0xe330: 0x6c2cae20, 0xe331: 0x6c2cb220,
-	0xe33e: 0x6c2cb420,
-	// Block 0x38d, offset 0xe340
-	0xe345: 0x6c2cb620, 0xe346: 0x6c2cb020,
-	0xe348: 0x6c2cb820, 0xe34a: 0x6c093c20, 0xe34b: 0x6c2cba20,
-	0xe34c: 0x6c03cc20, 0xe34d: 0x6c054a20,
-	0xe352: 0x6c05fc20,
-	0xe35b: 0x6c2cbc20,
-	0xe35f: 0x6c10c820,
-	0xe362: 0x6c0fa820, 0xe363: 0x6c2cbe20,
-	0xe36b: 0x6c2cc420,
-	0xe378: 0x6c08f820, 0xe37b: 0x6c2cc220,
-	0xe37c: 0x6c2cc020, 0xe37d: 0x6c059820, 0xe37e: 0x6c2cc620,
-	// Block 0x38e, offset 0xe380
-	0xe383: 0x6c029a20,
-	0xe385: 0x6c2cca20,
-	0xe389: 0x6c07d020, 0xe38a: 0x6c2cc820,
-	0xe38c: 0x6c2cda20,
-	0xe392: 0x6c2cce20, 0xe393: 0x6c2cd220,
-	0xe394: 0x6c13a220, 0xe395: 0x6c2ccc20,
-	0xe399: 0x6c2cd020, 0xe39b: 0x6c2cd820,
-	0xe39c: 0x6c2cd420, 0xe39d: 0x6c03ce20, 0xe39f: 0x6c2cd620,
-	0xe3a6: 0x6c2cdc20,
-	0xe3a9: 0x6c115820, 0xe3aa: 0x6c167820,
-	0xe3af: 0x6c09b420,
-	0xe3b3: 0x6c2cde20,
-	0xe3b8: 0x6c155020, 0xe3b9: 0x6c2ce220, 0xe3bb: 0x6c2ce020,
-	0xe3be: 0x6c2ce820, 0xe3bf: 0x6c158e20,
-	// Block 0x38f, offset 0xe3c0
-	0xe3c2: 0x6c2ce620,
-	0xe3c4: 0x6c02ce20, 0xe3c5: 0x6c2ce420, 0xe3c6: 0x6c2cee20,
-	0xe3c9: 0x6c2cec20,
-	0xe3cc: 0x6c2cea20, 0xe3cd: 0x6c0f9020, 0xe3ce: 0x6c2cf020,
-	0xe3d7: 0x6c2cf220,
-	0xe3dc: 0x6c2cf420, 0xe3df: 0x6c073420,
-	0xe3e1: 0x6c052e20, 0xe3e2: 0x6c2cf620, 0xe3e3: 0x6c2cf820,
-	0xe3e4: 0x6c2cfa20,
-	// Block 0x390, offset 0xe400
-	0xe41b: 0x6c0b5620,
-	0xe41c: 0x6c2cfc20, 0xe41e: 0x6c08ea20, 0xe41f: 0x6c2cfe20,
-	0xe423: 0x6c2d0020,
-	0xe427: 0x6c18a420,
-	0xe428: 0x6c18a220,
-	0xe42d: 0x6c2d0220, 0xe42e: 0x6c273620, 0xe42f: 0x6c2d0420,
-	0xe430: 0x6c0dfc20, 0xe431: 0x6c0b1a20, 0xe432: 0x6c112420,
-	0xe437: 0x6c2d0620,
-	0xe43a: 0x6c138220, 0xe43b: 0x6c0f1820,
-	0xe43c: 0x6c075820, 0xe43f: 0x6c0e0620,
-	// Block 0x391, offset 0xe440
-	0xe442: 0x6c00d020,
-	0xe444: 0x6c148420, 0xe445: 0x6c0b7220,
-	0xe44e: 0x6c05a020,
-	0xe451: 0x6c04ea20,
-	0xe454: 0x6c138420,
-	0xe45a: 0x6c2d0820,
-	0xe462: 0x6c2d0c20,
-	0xe465: 0x6c2d0a20, 0xe466: 0x6c01f820,
-	0xe469: 0x6c10d420, 0xe46a: 0x6c2d0e20, 0xe46b: 0x6c119220,
-	0xe46d: 0x6c0f9220, 0xe46f: 0x6c2d1020,
-	0xe470: 0x6c09f020,
-	0xe474: 0x6c2d1420, 0xe477: 0x6c14d420,
-	0xe478: 0x6c2d3220, 0xe479: 0x6c2d1820, 0xe47a: 0x6c2d1a20,
-	0xe47d: 0x6c0f0220,
-	// Block 0x392, offset 0xe480
-	0xe480: 0x6c0db820, 0xe481: 0x6c0d2a20, 0xe483: 0x6c103820,
-	0xe485: 0x6c2d1620, 0xe486: 0x6c041620,
-	0xe48b: 0x6c2d2820,
-	0xe48d: 0x6c2d2220, 0xe48e: 0x6c2d3c20, 0xe48f: 0x6c103a20,
-	0xe490: 0x6c0e7420, 0xe491: 0x6c2d1c20, 0xe493: 0x6c0f6c20,
-	0xe494: 0x6c0fd220, 0xe495: 0x6c2d1e20, 0xe496: 0x6c2d2620, 0xe497: 0x6c0b8420,
-	0xe499: 0x6c117220, 0xe49a: 0x6c0f0820,
-	0xe49d: 0x6c0c0420, 0xe49e: 0x6c2d2420, 0xe49f: 0x6c0d5420,
-	0xe4a0: 0x6c0d4020, 0xe4a1: 0x6c2d2020, 0xe4a2: 0x6c001220, 0xe4a3: 0x6c16c820,
-	0xe4a7: 0x6c2d2a20,
-	0xe4ae: 0x6c0dba20,
-	0xe4b1: 0x6c09b620, 0xe4b2: 0x6c0b5820,
-	0xe4b5: 0x6c2d2e20, 0xe4b6: 0x6c2d2c20,
-	0xe4b8: 0x6c009e20, 0xe4b9: 0x6c2d3020,
-	0xe4bc: 0x6c127a20, 0xe4be: 0x6c2d4020,
-	// Block 0x393, offset 0xe4c0
-	0xe4c1: 0x6c109e20, 0xe4c2: 0x6c0b9a20,
-	0xe4c5: 0x6c0e6620, 0xe4c7: 0x6c051820,
-	0xe4c9: 0x6c2d3e20, 0xe4ca: 0x6c157a20, 0xe4cb: 0x6c00fa20,
-	0xe4cd: 0x6c138620, 0xe4ce: 0x6c01fa20, 0xe4cf: 0x6c2d3420,
-	0xe4d0: 0x6c2d3620, 0xe4d1: 0x6c2d3820, 0xe4d2: 0x6c2d3a20, 0xe4d3: 0x6c105e20,
-	0xe4d4: 0x6c0dfa20, 0xe4d5: 0x6c008620, 0xe4d6: 0x6c2d4220,
-	0xe4d8: 0x6c2d4420, 0xe4d9: 0x6c31a020,
-	0xe4dc: 0x6c0d7220, 0xe4de: 0x6c2d4620,
-	0xe4e0: 0x6c016220, 0xe4e1: 0x6c0cd420, 0xe4e3: 0x6c05fe20,
-	0xe4e5: 0x6c15c020,
-	0xe4e8: 0x6c2d4820, 0xe4e9: 0x6c0f8420,
-	0xe4ed: 0x6c0d2c20, 0xe4ee: 0x6c093e20, 0xe4ef: 0x6c2d4a20,
-	0xe4f2: 0x6c2d5020,
-	0xe4f5: 0x6c0a1620, 0xe4f6: 0x6c2d4c20, 0xe4f7: 0x6c0c9220,
-	0xe4f8: 0x6c0c9020, 0xe4fa: 0x6c008820,
-	0xe4fc: 0x6c165e20, 0xe4fd: 0x6c2d5420, 0xe4ff: 0x6c124420,
-	// Block 0x394, offset 0xe500
-	0xe500: 0x6c2d5820, 0xe501: 0x6c2d5620, 0xe502: 0x6c2d5220, 0xe503: 0x6c25a620,
-	0xe504: 0x6c035820, 0xe507: 0x6c2d1220,
-	0xe509: 0x6c2d5c20, 0xe50a: 0x6c2d5a20,
-	0xe50f: 0x6c2d5e20,
-	0xe511: 0x6c157c20,
-	0xe523: 0x6c10aa20,
-	0xe526: 0x6c13f020,
-	0xe528: 0x6c2d6020, 0xe52a: 0x6c094220,
-	0xe52f: 0x6c2d6220,
-	0xe531: 0x6c2d6420,
-	0xe535: 0x6c2d6620,
-	0xe538: 0x6c0f6e20,
-	// Block 0x395, offset 0xe540
-	0xe541: 0x6c009420,
-	0xe54a: 0x6c070e20,
-	0xe54e: 0x6c16f820,
-	0xe55b: 0x6c2d6e20,
-	0xe561: 0x6c054c20, 0xe562: 0x6c2d6820,
-	0xe564: 0x6c2d6a20,
-	0xe568: 0x6c130420,
-	0xe56d: 0x6c029c20,
-	0xe575: 0x6c157e20, 0xe577: 0x6c04a620,
-	0xe57d: 0x6c0fd420,
-	// Block 0x396, offset 0xe580
-	0xe582: 0x6c2d7020,
-	0xe592: 0x6c2d7220,
-	0xe599: 0x6c2d7420,
-	0xe5ad: 0x6c0f7020,
-	0xe5b0: 0x6c2d7820, 0xe5b2: 0x6c2d7620,
-	// Block 0x397, offset 0xe5c0
-	0xe5c9: 0x6c108e20, 0xe5ca: 0x6c2d7a20, 0xe5cb: 0x6c09b820,
-	0xe5cc: 0x6c095020, 0xe5cd: 0x6c115a20, 0xe5ce: 0x6c0e9620,
-	0xe5d2: 0x6c097420,
-	0xe5d4: 0x6c0b9c20, 0xe5d6: 0x6c2d7c20,
-	0xe5d8: 0x6c2d7e20,
-	0xe5e2: 0x6c0b7e20, 0xe5e3: 0x6c2d8020,
-	0xe5e5: 0x6c2d8220,
-	0xe5e9: 0x6c2d8420, 0xe5ea: 0x6c15ea20,
-	0xe5ec: 0x6c09ba20,
-	0xe5f2: 0x6c2d8820, 0xe5f3: 0x6c2d8620,
-	0xe5f5: 0x6c071020, 0xe5f7: 0x6c074220,
-	0xe5f8: 0x6c085420,
-	// Block 0x398, offset 0xe600
-	0xe602: 0x6c2d8e20,
-	0xe607: 0x6c0a1820,
-	0xe609: 0x6c2d8c20, 0xe60b: 0x6c2d8a20,
-	0xe60d: 0x6c0dca20,
-	0xe610: 0x6c067e20, 0xe612: 0x6c0c0620,
-	0xe617: 0x6c11c020,
-	0xe61c: 0x6c09be20,
-	0xe622: 0x6c2d9020,
-	0xe624: 0x6c0ac620,
-	0xe62a: 0x6c2d9620, 0xe62b: 0x6c2d9220,
-	0xe62f: 0x6c2d9420,
-	0xe634: 0x6c2d9a20, 0xe635: 0x6c2d9820,
-	0xe638: 0x6c0afc20, 0xe63a: 0x6c2d9c20,
-	// Block 0x399, offset 0xe640
-	0xe640: 0x6c2d9e20, 0xe641: 0x6c2da020,
-	0xe646: 0x6c120020, 0xe647: 0x6c07be20,
-	0xe648: 0x6c095220, 0xe649: 0x6c2da220, 0xe64b: 0x6c2da420,
-	0xe64c: 0x6c161020, 0xe64d: 0x6c09d620, 0xe64e: 0x6c152c20, 0xe64f: 0x6c166020,
-	0xe650: 0x6c2da620, 0xe651: 0x6c04ec20,
-	0xe656: 0x6c2da820,
-	0xe658: 0x6c0f7220, 0xe65b: 0x6c2dae20,
-	0xe65c: 0x6c02e420, 0xe65d: 0x6c0b5a20, 0xe65f: 0x6c2daa20,
-	0xe661: 0x6c2dac20, 0xe663: 0x6c0f3020,
-	0xe666: 0x6c143e20, 0xe667: 0x6c052020,
-	0xe675: 0x6c2db220, 0xe676: 0x6c2db420,
-	0xe67c: 0x6c2db020, 0xe67f: 0x6c2db820,
-	// Block 0x39a, offset 0xe680
-	0xe68d: 0x6c10a620, 0xe68e: 0x6c027a20,
-	0xe691: 0x6c2dc020,
-	0xe694: 0x6c2dba20, 0xe695: 0x6c2dbe20,
-	0xe69e: 0x6c2db620,
-	0xe6a9: 0x6c2e4c20,
-	0xe6ac: 0x6c2dbc20,
-	0xe6b4: 0x6c169e20, 0xe6b7: 0x6c065420,
-	0xe6bf: 0x6c2dd020,
-	// Block 0x39b, offset 0xe6c0
-	0xe6c4: 0x6c0f9420, 0xe6c5: 0x6c2dc620,
-	0xe6c8: 0x6c2dcc20, 0xe6c9: 0x6c2dc820, 0xe6cb: 0x6c2dd220,
-	0xe6d0: 0x6c2dd420,
-	0xe6d7: 0x6c2dc420,
-	0xe6da: 0x6c2dde20, 0xe6db: 0x6c016420,
-	0xe6de: 0x6c2dc220,
-	0xe6e2: 0x6c11ba20,
-	0xe6e4: 0x6c2dca20, 0xe6e6: 0x6c0ac820,
-	0xe6f1: 0x6c071220,
-	0xe6fe: 0x6c142420,
-	// Block 0x39c, offset 0xe700
-	0xe700: 0x6c04f020, 0xe703: 0x6c09d820,
-	0xe705: 0x6c106020,
-	0xe711: 0x6c0c9620, 0xe713: 0x6c2dda20,
-	0xe715: 0x6c2dce20, 0xe716: 0x6c2dd820,
-	0xe718: 0x6c14d620, 0xe71a: 0x6c0ee020, 0xe71b: 0x6c2ddc20,
-	0xe71c: 0x6c2dd620,
-	0xe72d: 0x6c0c9420,
-	0xe737: 0x6c2de420,
-	0xe739: 0x6c2de220,
-	// Block 0x39d, offset 0xe740
-	0xe74f: 0x6c2de020,
-	0xe752: 0x6c13f220,
-	0xe764: 0x6c0a4220,
-	0xe769: 0x6c2de620, 0xe76a: 0x6c139620,
-	0xe76d: 0x6c012420,
-	0xe772: 0x6c12a820, 0xe773: 0x6c0e9820,
-	0xe778: 0x6c045c20, 0xe77a: 0x6c2dea20,
-	0xe77c: 0x6c071620,
-	// Block 0x39e, offset 0xe780
-	0xe786: 0x6c082c20,
-	0xe78f: 0x6c2de820,
-	0xe790: 0x6c0b9e20,
-	0xe798: 0x6c0ba020, 0xe799: 0x6c2df020, 0xe79a: 0x6c2df420,
-	0xe7a0: 0x6c0afe20, 0xe7a2: 0x6c2df220, 0xe7a3: 0x6c2df620,
-	0xe7a6: 0x6c04ce20,
-	0xe7a8: 0x6c12a620, 0xe7ab: 0x6c095420,
-	0xe7ac: 0x6c16ca20, 0xe7ae: 0x6c2dee20, 0xe7af: 0x6c080820,
-	0xe7b2: 0x6c170220,
-	0xe7b5: 0x6c2dfa20,
-	0xe7ba: 0x6c2df820, 0xe7bb: 0x6c2dfc20,
-	// Block 0x39f, offset 0xe7c0
-	0xe7c4: 0x6c2dec20,
-	0xe7cb: 0x6c10ba20,
-	0xe7cd: 0x6c0fd620,
-	0xe7d4: 0x6c0f1e20, 0xe7d6: 0x6c2e0620,
-	0xe7db: 0x6c0e3a20,
-	0xe7dc: 0x6c2dfe20,
-	0xe7e0: 0x6c2e0020,
-	0xe7ec: 0x6c053e20, 0xe7ee: 0x6c2e0420,
-	0xe7f5: 0x6c060020,
-	0xe7fc: 0x6c2e0220, 0xe7fe: 0x6c0aca20,
-	// Block 0x3a0, offset 0xe800
-	0xe80c: 0x6c02e620,
-	0xe814: 0x6c2e0e20, 0xe816: 0x6c079620, 0xe817: 0x6c0d2e20,
-	0xe81a: 0x6c0f0420,
-	0xe827: 0x6c026a20,
-	0xe82c: 0x6c2e0a20, 0xe82d: 0x6c2e0c20, 0xe82e: 0x6c0ef620,
-	0xe830: 0x6c2e0820,
-	0xe839: 0x6c2e1020,
-	// Block 0x3a1, offset 0xe840
-	0xe843: 0x6c2e1c20,
-	0xe848: 0x6c2e2220,
-	0xe850: 0x6c2e2020, 0xe851: 0x6c0f8620,
-	0xe856: 0x6c2e1220, 0xe857: 0x6c2e1420,
-	0xe858: 0x6c2e1a20,
-	0xe85d: 0x6c2e1e20,
-	0xe861: 0x6c04a820,
-	0xe864: 0x6c2e2420, 0xe865: 0x6c2e1820,
-	0xe868: 0x6c2e1620,
-	// Block 0x3a2, offset 0xe880
-	0xe883: 0x6c2e2c20,
-	0xe887: 0x6c2e2e20,
-	0xe890: 0x6c2e3020, 0xe893: 0x6c2e2a20,
-	0xe894: 0x6c2e2820,
-	0xe898: 0x6c0acc20, 0xe899: 0x6c103c20, 0xe89a: 0x6c2e2620,
-	0xe8a1: 0x6c2e3820,
-	0xe8ab: 0x6c2e3420,
-	0xe8b5: 0x6c2e3620, 0xe8b6: 0x6c2e3220,
-	0xe8b8: 0x6c0de820, 0xe8ba: 0x6c2e3a20,
-	// Block 0x3a3, offset 0xe8c0
-	0xe8c1: 0x6c2e3c20,
-	0xe8c4: 0x6c2e4020,
-	0xe8d1: 0x6c035a20, 0xe8d2: 0x6c2e3e20, 0xe8d3: 0x6c154420,
-	0xe8da: 0x6c2e5620, 0xe8db: 0x6c2e4220,
-	0xe8de: 0x6c2e4820,
-	0xe8e0: 0x6c2e4420, 0xe8e2: 0x6c2e4620,
-	0xe8ea: 0x6c2e4a20,
-	0xe8f0: 0x6c2e4e20,
-	0xe8f5: 0x6c2e5020, 0xe8f7: 0x6c2e5220,
-	0xe8fc: 0x6c2e5820, 0xe8fd: 0x6c2e5420, 0xe8fe: 0x6c2e5a20, 0xe8ff: 0x6c2e5e20,
-	// Block 0x3a4, offset 0xe900
-	0xe901: 0x6c2e5c20,
-	// Block 0x3a5, offset 0xe940
-	0xe977: 0x6c0ee220,
-	// Block 0x3a6, offset 0xe980
-	0xe980: 0x6c151e20, 0xe982: 0x6c2e6020, 0xe983: 0x6c0c9820,
-	0xe987: 0x6c2e6220,
-	0xe989: 0x6c136020, 0xe98a: 0x6c2e6420, 0xe98b: 0x6c024a20,
-	0xe98f: 0x6c00f420,
-	0xe991: 0x6c035e20, 0xe993: 0x6c035c20,
-	0xe994: 0x6c2e6620, 0xe996: 0x6c2e6820,
-	0xe998: 0x6c2e6a20, 0xe999: 0x6c2e6c20,
-	0xe9a0: 0x6c2e6e20, 0xe9a2: 0x6c036020, 0xe9a3: 0x6c029e20,
-	0xe9a4: 0x6c071820, 0xe9a5: 0x6c11cc20, 0xe9a7: 0x6c2e7220,
-	0xe9a8: 0x6c2e7020,
-	0xe9ad: 0x6c2e7420,
-	0xe9b2: 0x6c013420,
-	0xe9b9: 0x6c2e7a20, 0xe9bb: 0x6c2e7820,
-	0xe9bc: 0x6c2e7620, 0xe9be: 0x6c2e7c20,
-	// Block 0x3a7, offset 0xe9c0
-	0xe9c3: 0x6c2e8220,
-	0xe9c7: 0x6c004e20,
-	0xe9ca: 0x6c2e7e20,
-	0xe9cc: 0x6c2e8620, 0xe9cd: 0x6c2e8420,
-	0xe9d4: 0x6c2e8a20, 0xe9d5: 0x6c2e8820, 0xe9d6: 0x6c2e8c20,
-	0xe9d8: 0x6c104420,
-	0xe9dc: 0x6c2e8e20,
-	0xe9e1: 0x6c2e9020, 0xe9e2: 0x6c2e9420,
-	0xe9e5: 0x6c2e9220,
-	// Block 0x3a8, offset 0xea00
-	0xea1c: 0x6c12f420,
-	0xea21: 0x6c2e9620,
-	0xea28: 0x6c2e9820, 0xea2a: 0x6c07e220,
-	0xea2e: 0x6c2e9a20, 0xea2f: 0x6c2e9c20,
-	0xea32: 0x6c142620,
-	0xea3b: 0x6c0cd220,
-	0xea3f: 0x6c000820,
-	// Block 0x3a9, offset 0xea40
-	0xea40: 0x6c0d8e20, 0xea42: 0x6c2e9e20,
-	0xea44: 0x6c12f620,
-	0xea4b: 0x6c2ea420,
-	0xea4c: 0x6c2ea020, 0xea4d: 0x6c071a20, 0xea4f: 0x6c2ea220,
-	0xea50: 0x6c062420,
-	0xea5b: 0x6c136220,
-	0xea5c: 0x6c2ea820, 0xea5d: 0x6c2eac20, 0xea5e: 0x6c2eaa20, 0xea5f: 0x6c2eae20,
-	0xea62: 0x6c00be20, 0xea63: 0x6c0b7420,
-	0xea64: 0x6c0a4420, 0xea65: 0x6c036220, 0xea66: 0x6c2eb020,
-	0xea6a: 0x6c117020,
-	0xea6c: 0x6c2eb420,
-	0xea70: 0x6c00c020, 0xea72: 0x6c2eb220, 0xea73: 0x6c0ef820,
-	0xea75: 0x6c166220, 0xea76: 0x6c103e20, 0xea77: 0x6c2ea620,
-	0xea78: 0x6c161420, 0xea7a: 0x6c060220,
-	0xea7d: 0x6c15c220,
-	// Block 0x3aa, offset 0xea80
-	0xea85: 0x6c051a20, 0xea86: 0x6c163020,
-	0xea88: 0x6c053420, 0xea8a: 0x6c0dbc20, 0xea8b: 0x6c281020,
-	0xea8d: 0x6c2eb620, 0xea8e: 0x6c024c20, 0xea8f: 0x6c0ba220,
-	0xea94: 0x6c02a020, 0xea95: 0x6c2eba20, 0xea97: 0x6c2ebc20,
-	0xea98: 0x6c2eb820, 0xea99: 0x6c05ac20, 0xea9b: 0x6c07d220,
-	0xea9c: 0x6c0ace20,
-	0xeaa0: 0x6c00c220, 0xeaa3: 0x6c167a20,
-	0xeaa7: 0x6c2ec020,
-	0xeaa8: 0x6c2d4e20, 0xeaaa: 0x6c2ebe20,
-	0xeab0: 0x6c2ec620, 0xeab1: 0x6c2ec220, 0xeab2: 0x6c2ec420,
-	0xeab4: 0x6c2ec820, 0xeab6: 0x6c2eca20, 0xeab7: 0x6c16a020,
-	0xeab8: 0x6c2ecc20, 0xeab9: 0x6c2ece20, 0xeabb: 0x6c0c1220,
-	0xeabc: 0x6c11d620,
-	// Block 0x3ab, offset 0xeac0
-	0xeac0: 0x6c0bbe20, 0xeac1: 0x6c037e20,
-	0xeac4: 0x6c158020, 0xeac5: 0x6c021220, 0xeac6: 0x6c09bc20, 0xeac7: 0x6c065620,
-	0xeac9: 0x6c2ed420, 0xeacb: 0x6c2ed220,
-	0xeacc: 0x6c08ba20, 0xeacd: 0x6c2ed620, 0xeace: 0x6c2ed020,
-	0xead1: 0x6c082420,
-	0xead5: 0x6c2ede20, 0xead6: 0x6c2a5c20,
-	0xead9: 0x6c190e20, 0xeadb: 0x6c0bb220,
-	0xeadc: 0x6c2eda20,
-	0xeae2: 0x6c161220, 0xeae3: 0x6c10ca20,
-	0xeae8: 0x6c00d220, 0xeaea: 0x6c0c4620, 0xeaeb: 0x6c08fc20,
-	0xeaf0: 0x6c134620, 0xeaf2: 0x6c00fc20,
-	0xeaf6: 0x6c16a220, 0xeaf7: 0x6c15e220,
-	0xeaf9: 0x6c2ee020, 0xeafb: 0x6c0fb620,
-	// Block 0x3ac, offset 0xeb00
-	0xeb00: 0x6c098620,
-	0xeb04: 0x6c2ee220, 0xeb06: 0x6c2ee420, 0xeb07: 0x6c0b5c20,
-	0xeb08: 0x6c2ee620, 0xeb0a: 0x6c16a420,
-	0xeb0d: 0x6c2edc20, 0xeb0e: 0x6c2eea20, 0xeb0f: 0x6c2eee20,
-	0xeb11: 0x6c2eec20, 0xeb13: 0x6c2ee820,
-	0xeb16: 0x6c2ef020,
-	0xeb19: 0x6c2ef220,
-	0xeb1c: 0x6c0d3020, 0xeb1e: 0x6c01fc20,
-	0xeb24: 0x6c2ef420, 0xeb27: 0x6c14c020,
-	0xeb2a: 0x6c2ef620,
-	0xeb30: 0x6c2ef820, 0xeb32: 0x6c16d820,
-	0xeb38: 0x6c1f6020, 0xeb39: 0x6c2efa20,
-	0xeb3d: 0x6c2efc20, 0xeb3e: 0x6c2efe20,
-	// Block 0x3ad, offset 0xeb40
-	0xeb42: 0x6c2f0620,
-	0xeb44: 0x6c2f0020, 0xeb46: 0x6c2f0220,
-	0xeb48: 0x6c2f0420, 0xeb49: 0x6c2f0820,
-	0xeb52: 0x6c0c0820,
-	0xeb56: 0x6c153e20,
-	0xeb59: 0x6c0c0a20,
-	0xeb5c: 0x6c2f0a20, 0xeb5e: 0x6c124620,
-	0xeb60: 0x6c2f0c20, 0xeb61: 0x6c314420, 0xeb62: 0x6c14e820,
-	0xeb64: 0x6c2f0e20, 0xeb66: 0x6c2f1020,
-	0xeb68: 0x6c2f1220, 0xeb69: 0x6c02a220, 0xeb6b: 0x6c2f1620,
-	0xeb6d: 0x6c0b7620,
-	0xeb71: 0x6c2f1820,
-	0xeb74: 0x6c052c20,
-	0xeb79: 0x6c2f1a20, 0xeb7a: 0x6c2f2220,
-	0xeb7c: 0x6c2f1e20,
-	// Block 0x3ae, offset 0xeb80
-	0xeb81: 0x6c2f2020,
-	0xeb84: 0x6c02da20, 0xeb85: 0x6c2f1c20, 0xeb86: 0x6c2f2420,
-	0xeb8b: 0x6c2f2620,
-	0xeb8d: 0x6c005020, 0xeb8f: 0x6c2f2820,
-	0xeb90: 0x6c2f2a20,
-	0xeb98: 0x6c0ad020,
-	0xeb9c: 0x6c2f2c20,
-	0xeba0: 0x6c03fa20, 0xeba3: 0x6c2f3220,
-	0xeba6: 0x6c2f3020,
-	0xeba8: 0x6c2f2e20, 0xebab: 0x6c2ba020,
-	0xebad: 0x6c139020,
-	0xebb3: 0x6c2f3420,
-	0xebb4: 0x6c2f3620,
-	// Block 0x3af, offset 0xebc0
-	0xebc3: 0x6c2f3820,
-	0xebc6: 0x6c2f3a20,
-	0xebc8: 0x6c2f3c20, 0xebcb: 0x6c2f3e20,
-	0xebd3: 0x6c036420,
-	0xebdc: 0x6c2f4020,
-	0xebed: 0x6c2f4220, 0xebee: 0x6c10ea20,
-	0xebf2: 0x6c2f4620, 0xebf3: 0x6c01ae20,
-	0xebf5: 0x6c2f4c20, 0xebf6: 0x6c2f4a20,
-	0xebfb: 0x6c00c420,
-	0xebff: 0x6c04aa20,
-	// Block 0x3b0, offset 0xec00
-	0xec01: 0x6c136620, 0xec02: 0x6c0ee420, 0xec03: 0x6c075c20,
-	0xec05: 0x6c071c20, 0xec06: 0x6c0a1a20,
-	0xec08: 0x6c0b7c20,
-	0xec0c: 0x6c2f5020, 0xec0f: 0x6c2f4e20,
-	0xec10: 0x6c159020, 0xec11: 0x6c038020, 0xec12: 0x6c120420, 0xec13: 0x6c10a020,
-	0xec17: 0x6c0bbc20,
-	0xec18: 0x6c166420, 0xec1a: 0x6c059a20,
-	0xec21: 0x6c2f5620,
-	0xec24: 0x6c2f5420,
-	0xec2c: 0x6c142a20, 0xec2d: 0x6c104020,
-	0xec34: 0x6c011c20, 0xec37: 0x6c2f5820,
-	0xec38: 0x6c2f5220, 0xec3b: 0x6c12be20,
-	0xec3c: 0x6c15e020, 0xec3d: 0x6c2f5a20,
-	// Block 0x3b1, offset 0xec40
-	0xec46: 0x6c2f5c20,
-	0xec4b: 0x6c2f6020,
-	0xec4c: 0x6c0dcc20, 0xec4d: 0x6c02aa20, 0xec4e: 0x6c02ac20, 0xec4f: 0x6c2f5e20,
-	0xec54: 0x6c038220, 0xec55: 0x6c060420,
-	0xec58: 0x6c038420, 0xec5b: 0x6c0faa20,
-	0xec5e: 0x6c168820,
-	0xec67: 0x6c065820,
-	0xec6b: 0x6c2f6220,
-	0xec6f: 0x6c2f6420,
-	0xec70: 0x6c2f6620, 0xec71: 0x6c2f6820, 0xec73: 0x6c2f6c20,
-	0xec74: 0x6c2f6a20,
-	// Block 0x3b2, offset 0xec80
-	0xeca8: 0x6c130a20, 0xecaa: 0x6c2f6e20,
-	0xecaf: 0x6c2f7020,
-	0xecb1: 0x6c2f7220,
-	0xecb6: 0x6c2f7420,
-	// Block 0x3b3, offset 0xecc0
-	0xecc3: 0x6c2f7820,
-	0xecc4: 0x6c2f7620, 0xecc6: 0x6c2f7a20,
-	0xecdb: 0x6c124820,
-	0xecdc: 0x6c27aa20, 0xecdf: 0x6c0b1620,
-	0xece2: 0x6c03d020,
-	0xece9: 0x6c2f7c20, 0xeceb: 0x6c2f7e20,
-	0xeced: 0x6c18ba20, 0xecee: 0x6c20ec20, 0xecef: 0x6c120620,
-	0xecf2: 0x6c00b620,
-	0xecf4: 0x6c003620,
-	0xecfc: 0x6c08bc20, 0xecfd: 0x6c13f420, 0xecfe: 0x6c0b0420,
-	// Block 0x3b4, offset 0xed00
-	0xed03: 0x6c2f8020,
-	0xed05: 0x6c150e20,
-	0xed09: 0x6c2f8220, 0xed0a: 0x6c15c420,
-	0xed0c: 0x6c010020,
-	0xed10: 0x6c085620, 0xed12: 0x6c2f8420, 0xed13: 0x6c021420,
-	0xed14: 0x6c2f8620,
-	0xed18: 0x6c2f8820,
-	0xed1d: 0x6c2f8c20, 0xed1e: 0x6c2f8e20,
-	0xed20: 0x6c2f9220, 0xed21: 0x6c2f8a20,
-	0xed24: 0x6c2f9020,
-	0xed28: 0x6c036620,
-	0xed2c: 0x6c2f9420, 0xed2e: 0x6c2f9620,
-	0xed3d: 0x6c2f9820, 0xed3e: 0x6c2f9a20,
-	// Block 0x3b5, offset 0xed40
-	0xed42: 0x6c2f9c20,
-	0xed45: 0x6c2fa020,
-	0xed49: 0x6c2f9e20, 0xed4b: 0x6c2fa420,
-	0xed4c: 0x6c2faa20,
-	0xed50: 0x6c2fa220, 0xed51: 0x6c2fa620, 0xed52: 0x6c2fa820,
-	0xed55: 0x6c2fac20, 0xed57: 0x6c04ac20,
-	// Block 0x3b6, offset 0xed80
-	0xed96: 0x6c097620, 0xed97: 0x6c2fae20,
-	0xed98: 0x6c2fb020, 0xed99: 0x6c071e20,
-	0xeda5: 0x6c2fb220,
-	0xeda8: 0x6c027020,
-	0xedac: 0x6c114220, 0xedad: 0x6c2fb420, 0xedae: 0x6c2fb620,
-	0xedb3: 0x6c0e6820,
-	0xedb4: 0x6c10be20,
-	0xedbc: 0x6c2fb820,
-	// Block 0x3b7, offset 0xedc0
-	0xedc1: 0x6c119e20,
-	0xedc4: 0x6c0d9020, 0xedc5: 0x6c012c20, 0xedc6: 0x6c050420,
-	0xedc8: 0x6c050620,
-	0xedd0: 0x6c0e9a20, 0xedd1: 0x6c2fc220, 0xedd2: 0x6c050820,
-	0xedd5: 0x6c021620,
-	0xedd8: 0x6c2fc020, 0xeddb: 0x6c2fbc20,
-	0xeddd: 0x6c2fbe20, 0xeddf: 0x6c2fba20,
-	0xede2: 0x6c2fd620,
-	0xeded: 0x6c2fc420, 0xedee: 0x6c2fc620,
-	0xedf1: 0x6c2fc820, 0xedf2: 0x6c2fca20,
-	0xedf8: 0x6c2fce20, 0xedfb: 0x6c2fcc20,
-	0xedff: 0x6c09fe20,
-	// Block 0x3b8, offset 0xee00
-	0xee01: 0x6c2fd020,
-	0xee05: 0x6c2fd420,
-	0xee0e: 0x6c03d220, 0xee0f: 0x6c2fd220,
-	0xee12: 0x6c0d3220, 0xee13: 0x6c060620,
-	0xee19: 0x6c2fd820,
-	0xee28: 0x6c0d9220, 0xee2b: 0x6c2fda20,
-	0xee30: 0x6c104220,
-	0xee37: 0x6c2fdc20,
-	0xee3e: 0x6c2fe620,
-	// Block 0x3b9, offset 0xee40
-	0xee40: 0x6c2fe220, 0xee42: 0x6c2fe020, 0xee43: 0x6c2fe420,
-	0xee45: 0x6c2fde20,
-	0xee4d: 0x6c2fea20,
-	0xee55: 0x6c2fe820, 0xee57: 0x6c2fee20,
-	0xee5a: 0x6c04ae20, 0xee5b: 0x6c2fec20,
-	0xee5f: 0x6c2ff020,
-	0xee62: 0x6c2ff220,
-	0xee64: 0x6c2ff620, 0xee65: 0x6c2ff420,
-	0xee69: 0x6c2ff820, 0xee6a: 0x6c2ffc20, 0xee6b: 0x6c2ffa20,
-	// Block 0x3ba, offset 0xee80
-	0xeea8: 0x6c075420,
-	0xeead: 0x6c2ffe20,
-	0xeeb0: 0x6c300020,
-	0xeeb8: 0x6c026c20,
-	0xeebc: 0x6c300220,
-	// Block 0x3bb, offset 0xeec0
-	0xeec0: 0x6c300420,
-	0xeec4: 0x6c0ba620,
-	0xeecf: 0x6c300620,
-	0xeed1: 0x6c300820, 0xeed3: 0x6c300a20,
-	0xeed4: 0x6c300c20,
-	0xeed8: 0x6c072020,
-	0xeede: 0x6c300e20, 0xeedf: 0x6c301020,
-	0xeee2: 0x6c301220, 0xeee3: 0x6c301420,
-	0xeee6: 0x6c301620,
-	0xeeea: 0x6c11c220, 0xeeeb: 0x6c301a20,
-	0xeeed: 0x6c126820, 0xeeee: 0x6c301c20, 0xeeef: 0x6c301820,
-	0xeef1: 0x6c302020,
-	0xeef4: 0x6c301e20, 0xeef7: 0x6c302220,
-	0xeefb: 0x6c302420,
-	// Block 0x3bc, offset 0xef00
-	0xef06: 0x6c302620,
-	0xef18: 0x6c302820, 0xef1a: 0x6c302a20,
-	0xef1f: 0x6c302c20,
-	0xef22: 0x6c302e20, 0xef23: 0x6c303020,
-	0xef25: 0x6c303220, 0xef27: 0x6c303420,
-	0xef28: 0x6c303620, 0xef29: 0x6c303820, 0xef2a: 0x6c303a20,
-	0xef2e: 0x6c303c20, 0xef2f: 0x6c303e20,
-	0xef31: 0x6c20e020, 0xef32: 0x6c304020,
-	0xef3b: 0x6c268a20,
-	0xef3c: 0x6c03d420,
-	// Block 0x3bd, offset 0xef40
-	0xef41: 0x6c023620, 0xef42: 0x6c077c20, 0xef43: 0x6c304420,
-	0xef44: 0x6c304220, 0xef45: 0x6c149a20,
-	0xef4d: 0x6c304820, 0xef4e: 0x6c304a20, 0xef4f: 0x6c304620,
-	0xef51: 0x6c304c20,
-	0xef54: 0x6c145820,
-	0xef58: 0x6c304e20, 0xef5a: 0x6c046220,
-	0xef6f: 0x6c16ce20,
-	0xef74: 0x6c305020,
-	// Block 0x3be, offset 0xef80
-	0xef83: 0x6c305420,
-	0xef8e: 0x6c003c20,
-	0xef91: 0x6c305620, 0xef92: 0x6c132e20, 0xef93: 0x6c305220,
-	0xef96: 0x6c305820, 0xef97: 0x6c305a20,
-	0xef9f: 0x6c305c20,
-	0xefa0: 0x6c305e20,
-	0xefa8: 0x6c306020, 0xefaa: 0x6c147020, 0xefab: 0x6c082e20,
-	0xefad: 0x6c080c20, 0xefae: 0x6c0c9a20,
-	0xefb4: 0x6c306220,
-	0xefb9: 0x6c306820,
-	// Block 0x3bf, offset 0xefc0
-	0xefc0: 0x6c306420,
-	0xefc6: 0x6c306a20,
-	0xefc9: 0x6c068220, 0xefca: 0x6c306620,
-	0xefcf: 0x6c306c20,
-	0xefd1: 0x6c306e20, 0xefd2: 0x6c307020,
-	0xefd4: 0x6c307820, 0xefd6: 0x6c082820,
-	0xefdb: 0x6c0dc020,
-	0xefe1: 0x6c307a20, 0xefe2: 0x6c307420, 0xefe3: 0x6c307220,
-	0xefe4: 0x6c307620,
-	0xefe8: 0x6c05a220,
-	0xeff0: 0x6c308220, 0xeff1: 0x6c308020, 0xeff2: 0x6c307e20,
-	0xeff5: 0x6c002620,
-	// Block 0x3c0, offset 0xf000
-	0xf004: 0x6c309620, 0xf006: 0x6c308e20,
-	0xf008: 0x6c309020, 0xf009: 0x6c308820, 0xf00a: 0x6c309420,
-	0xf00c: 0x6c308c20, 0xf00d: 0x6c02b820,
-	0xf010: 0x6c171c20, 0xf012: 0x6c309220, 0xf013: 0x6c308a20,
-	0xf014: 0x6c308620, 0xf015: 0x6c308420,
-	0xf01b: 0x6c309a20,
-	0xf021: 0x6c30a020,
-	0xf024: 0x6c309e20, 0xf025: 0x6c309c20,
-	0xf02d: 0x6c12ae20, 0xf02e: 0x6c309820, 0xf02f: 0x6c00a620,
-	0xf030: 0x6c30a220, 0xf032: 0x6c30a620,
-	0xf039: 0x6c02d220, 0xf03a: 0x6c307c20, 0xf03b: 0x6c00ea20,
-	0xf03e: 0x6c30aa20,
-	// Block 0x3c1, offset 0xf040
-	0xf046: 0x6c30a820, 0xf047: 0x6c30a420,
-	0xf048: 0x6c0e0e20,
-	0xf052: 0x6c147420,
-	0xf057: 0x6c167c20,
-	0xf05a: 0x6c30ac20,
-	0xf060: 0x6c30ae20,
-	0xf067: 0x6c30b020,
-	0xf076: 0x6c30b220,
-	0xf078: 0x6c30b420,
-	// Block 0x3c2, offset 0xf080
-	0xf0a5: 0x6c0ee620, 0xf0a7: 0x6c30b620,
-	0xf0a9: 0x6c11ce20, 0xf0ab: 0x6c30c020,
-	0xf0ac: 0x6c30b820,
-	0xf0b0: 0x6c30ba20, 0xf0b3: 0x6c13f620,
-	0xf0b4: 0x6c14d820, 0xf0b6: 0x6c108820,
-	// Block 0x3c3, offset 0xf0c0
-	0xf0c3: 0x6c30c220,
-	0xf0c6: 0x6c30c420, 0xf0c7: 0x6c106420,
-	0xf0c8: 0x6c30be20, 0xf0c9: 0x6c30bc20,
-	0xf0ce: 0x6c018c20,
-	0xf0d2: 0x6c30d420,
-	0xf0d5: 0x6c30d220,
-	0xf0db: 0x6c016620,
-	0xf0df: 0x6c30ce20,
-	0xf0e3: 0x6c30cc20,
-	0xf0e6: 0x6c30c820,
-	0xf0e8: 0x6c02ea20, 0xf0ea: 0x6c30c620, 0xf0eb: 0x6c08f420,
-	0xf0ec: 0x6c018a20,
-	0xf0fb: 0x6c072220,
-	0xf0fe: 0x6c30da20, 0xf0ff: 0x6c30d820,
-	// Block 0x3c4, offset 0xf100
-	0xf101: 0x6c30d620,
-	0xf104: 0x6c30d020, 0xf106: 0x6c30dc20,
-	0xf108: 0x6c30de20,
-	0xf110: 0x6c30e820, 0xf111: 0x6c30e620,
-	0xf119: 0x6c30ea20,
-	0xf11c: 0x6c00d620, 0xf11d: 0x6c30e020, 0xf11e: 0x6c30e220,
-	0xf120: 0x6c074420, 0xf121: 0x6c14c220,
-	0xf124: 0x6c30e420,
-	0xf12c: 0x6c13f820, 0xf12f: 0x6c30f420,
-	0xf132: 0x6c30ec20,
-	0xf13a: 0x6c30f620,
-	// Block 0x3c5, offset 0xf140
-	0xf147: 0x6c30f020,
-	0xf149: 0x6c30ee20,
-	0xf14f: 0x6c059c20,
-	0xf15a: 0x6c30f820,
-	0xf164: 0x6c30fa20,
-	0xf169: 0x6c30fc20, 0xf16b: 0x6c30f220,
-	0xf16f: 0x6c30ca20,
-	0xf172: 0x6c30fe20,
-	0xf174: 0x6c0f3220,
-	0xf178: 0x6c310620, 0xf17a: 0x6c310820, 0xf17b: 0x6c310420,
-	// Block 0x3c6, offset 0xf180
-	0xf181: 0x6c310220, 0xf182: 0x6c310e20,
-	0xf184: 0x6c310020, 0xf186: 0x6c310a20,
-	0xf18f: 0x6c310c20,
-	0xf193: 0x6c311220,
-	0xf199: 0x6c311020,
-	0xf1a6: 0x6c311620,
-	0xf1ad: 0x6c311820, 0xf1af: 0x6c311a20,
-	0xf1b2: 0x6c171620,
-	0xf1b8: 0x6c311420, 0xf1b9: 0x6c0dce20, 0xf1ba: 0x6c07f220,
-	0xf1bd: 0x6c311c20,
-	// Block 0x3c7, offset 0xf1c0
-	0xf1da: 0x6c311e20, 0xf1db: 0x6c312020,
-	0xf1de: 0x6c312220,
-	// Block 0x3c8, offset 0xf200
-	0xf235: 0x6c312420,
-	0xf238: 0x6c060820, 0xf239: 0x6c312620,
-	0xf23d: 0x6c312820, 0xf23f: 0x6c08ee20,
-	// Block 0x3c9, offset 0xf240
-	0xf241: 0x6c312a20,
-	0xf248: 0x6c312c20, 0xf24b: 0x6c312e20,
-	0xf24c: 0x6c313020,
-	0xf251: 0x6c313620, 0xf252: 0x6c313220, 0xf253: 0x6c16fc20,
-	0xf255: 0x6c313420, 0xf257: 0x6c16a620,
-	0xf25d: 0x6c313820, 0xf25f: 0x6c167e20,
-	0xf265: 0x6c313a20, 0xf266: 0x6c11a020,
-	0xf269: 0x6c313c20, 0xf26a: 0x6c314020,
-	0xf26d: 0x6c314220,
-	0xf278: 0x6c313e20, 0xf279: 0x6c073620, 0xf27a: 0x6c14ea20, 0xf27b: 0x6c145a20,
-	0xf27c: 0x6c1c4020, 0xf27e: 0x6c213620, 0xf27f: 0x6c148a20,
-	// Block 0x3ca, offset 0xf280
-	0xf284: 0x6c018e20,
-	0xf28c: 0x6c314620, 0xf28d: 0x6c040c20, 0xf28e: 0x6c314820, 0xf28f: 0x6c314a20,
-	0xf290: 0x6c314c20, 0xf292: 0x6c074620,
-	0xf294: 0x6c314e20,
-	0xf298: 0x6c235220, 0xf299: 0x6c150620, 0xf29b: 0x6c0dbe20,
-	0xf29c: 0x6c315020, 0xf29d: 0x6c315420, 0xf29e: 0x6c315220,
-	0xf2a0: 0x6c315620,
-	0xf2a5: 0x6c315820,
-	0xf2a8: 0x6c315a20,
-	0xf2af: 0x6c315c20,
-	0xf2b4: 0x6c315e20, 0xf2b6: 0x6c316020, 0xf2b7: 0x6c316220,
-	0xf2b9: 0x6c316420, 0xf2bb: 0x6c316620,
-	0xf2bc: 0x6c316820, 0xf2bd: 0x6c316a20,
-	// Block 0x3cb, offset 0xf2c0
-	0xf2c7: 0x6c316c20,
-	0xf2c8: 0x6c316e20,
-	0xf2ce: 0x6c0f7420,
-	0xf2d3: 0x6c065a20,
-	0xf2d5: 0x6c317220,
-	0xf2e0: 0x6c0cd620, 0xf2e1: 0x6c317420,
-	0xf2ec: 0x6c317620,
-	0xf2fb: 0x6c125e20,
-	0xf2fe: 0x6c317820,
-	// Block 0x3cc, offset 0xf300
-	0xf30a: 0x6c317a20, 0xf30b: 0x6c254c20,
-	0xf30e: 0x6c2c2e20, 0xf30f: 0x6c2f4420,
-	0xf312: 0x6c317c20,
-	0xf314: 0x6c317e20,
-	0xf31f: 0x6c318220,
-	0xf320: 0x6c318420, 0xf321: 0x6c318620, 0xf322: 0x6c16a820, 0xf323: 0x6c318020,
-	0xf326: 0x6c318820, 0xf327: 0x6c318a20,
-	0xf32a: 0x6c318e20,
-	0xf32c: 0x6c318c20,
-	0xf332: 0x6c319220,
-	0xf336: 0x6c319420, 0xf337: 0x6c319020,
-	// Block 0x3cd, offset 0xf340
-	0xf34d: 0x6c163420,
-	0xf355: 0x6c319620,
-	0xf35c: 0x6c319820, 0xf35d: 0x6c258620,
-	0xf360: 0x6c319a20,
-	// Block 0x3ce, offset 0xf380
-	0xf380: 0x6c2bdc20, 0xf381: 0x6c06ce20, 0xf382: 0x6c093c20, 0xf383: 0x6c2c1020,
-	0xf384: 0x6c02c820, 0xf385: 0x6c051c20, 0xf386: 0x6c04f620, 0xf387: 0x6c319820,
-	0xf388: 0x6c319820, 0xf389: 0x6c056420, 0xf38a: 0x6c04ec20, 0xf38b: 0x6c19b020,
-	0xf38c: 0x6c10a820, 0xf38d: 0x6c1dac20, 0xf38e: 0x6c245a20, 0xf38f: 0x6c15d620,
-	0xf390: 0x6c29d420, 0xf391: 0x6c15d820, 0xf392: 0x6c15da20, 0xf393: 0x6c2d5e20,
-	0xf394: 0x6c207020, 0xf395: 0x6c15e420, 0xf396: 0x6c22ae20, 0xf397: 0x6c237220,
-	0xf398: 0x6c15e820, 0xf399: 0x6c15ea20, 0xf39a: 0x6c2fc820, 0xf39b: 0x6c174220,
-	0xf39c: 0x6c15ee20, 0xf39d: 0x6c15f220, 0xf39e: 0x6c22f420, 0xf39f: 0x6c15f820,
-	0xf3a0: 0x6c312220, 0xf3a1: 0x6c15f020, 0xf3a2: 0x6c15f420, 0xf3a3: 0x6c15f620,
-	0xf3a4: 0x6c2b0220, 0xf3a5: 0x6c1e1420, 0xf3a6: 0x6c285620, 0xf3a7: 0x43103e20,
-	0xf3a8: 0x6c16de20, 0xf3a9: 0x6c16e220, 0xf3aa: 0x6c16e820, 0xf3ab: 0x6c16ee20,
-	0xf3ac: 0x6c16f820, 0xf3ad: 0x6c179220, 0xf3ae: 0x6c169020, 0xf3af: 0x6c18b420,
-	0xf3b0: 0x42c98820, 0xf3b1: 0x6c16d020, 0xf3b2: 0x6c22f220, 0xf3b3: 0x6c249620,
-	0xf3b4: 0x6c16f220, 0xf3b5: 0x6c29cc20, 0xf3b6: 0x6c163c20, 0xf3b7: 0x6c16d620,
-	0xf3b8: 0x6c16d820, 0xf3b9: 0x6c16ce20, 0xf3ba: 0x6c07f220, 0xf3bb: 0x6c250420,
-	0xf3bc: 0x6c254420, 0xf3bd: 0x42fb4020, 0xf3be: 0x43079220, 0xf3bf: 0x43260820,
-	// Block 0x3cf, offset 0xf3c0
-	0xf3c0: 0x6c08ee20, 0xf3c1: 0x6c170420, 0xf3c2: 0x6c1a9e20, 0xf3c3: 0x6c16e020,
-	0xf3c4: 0x6c262620, 0xf3c5: 0x6c16f420, 0xf3c6: 0x6c16ec20, 0xf3c7: 0x6c251c20,
-	0xf3c8: 0x6c16d420, 0xf3c9: 0x6c15e220, 0xf3ca: 0x6c1a9620, 0xf3cb: 0x42b8c420,
-	0xf3cc: 0x6c209220, 0xf3cd: 0x42dbb420, 0xf3ce: 0x6c16ea20, 0xf3cf: 0x6c168620,
-	0xf3d0: 0x6c271420, 0xf3d1: 0x6c2ea420, 0xf3d2: 0x6c2f1420, 0xf3d3: 0x6c170020,
-	0xf3d4: 0x6c31a420, 0xf3d5: 0x6c164620, 0xf3d6: 0x6c165620, 0xf3d7: 0x6c003a20,
-	0xf3d8: 0x6c126e20, 0xf3d9: 0x6c166220, 0xf3da: 0x6c2bc620, 0xf3db: 0x6c1dfe20,
-	0xf3dc: 0x6c207020, 0xf3dd: 0x6c0dec20, 0xf3de: 0x6c0e1420, 0xf3df: 0x6c10fa20,
-	0xf3e0: 0x6c0fe420, 0xf3e1: 0x6c161820, 0xf3e2: 0x6c007620, 0xf3e3: 0x6c142c20,
-	0xf3e4: 0x42f1f620, 0xf3e5: 0x6c138820, 0xf3e6: 0x6c131420, 0xf3e7: 0x6c12c420,
-	0xf3e8: 0x6c122e20, 0xf3e9: 0x6c1ed820, 0xf3ea: 0x6c080620, 0xf3eb: 0x6c190a20,
-	0xf3ec: 0x6c07aa20, 0xf3ed: 0x6c0a9c20, 0xf3ee: 0x6c15b620, 0xf3ef: 0x43155420,
-	0xf3f0: 0x6c082020, 0xf3f1: 0x6c0dfc20, 0xf3f2: 0x6c0ef020, 0xf3f3: 0x6c099820,
-	0xf3f4: 0x6c095620, 0xf3f5: 0x6c161e20, 0xf3f6: 0x6c162020, 0xf3f7: 0x6c164020,
-	0xf3f8: 0x6c182620, 0xf3f9: 0x6c185a20, 0xf3fa: 0x6c164c20, 0xf3fb: 0x6c165820,
-	0xf3fc: 0x6c165a20, 0xf3fd: 0x6c165c20, 0xf3fe: 0x6c166020, 0xf3ff: 0x6c18c020,
-	// Block 0x3d0, offset 0xf400
-	0xf400: 0x6c16cc20, 0xf401: 0x6c0a3a20, 0xf402: 0x6c1c6220, 0xf403: 0x6c163a20,
-	0xf404: 0x6c228020, 0xf405: 0x6c24f620, 0xf406: 0x6c2e7420, 0xf407: 0x6c2ffc20,
-	0xf408: 0x6c16a620, 0xf409: 0x6c314820, 0xf40a: 0x6c166620, 0xf40b: 0x42cd8c20,
-	0xf40c: 0x42d6ee20, 0xf40d: 0x6c2cf620, 0xf40e: 0x6c110220, 0xf40f: 0x6c16ba20,
-	0xf410: 0x6c1dba20, 0xf411: 0x6c110820, 0xf412: 0x6c16bc20, 0xf413: 0x6c16be20,
-	0xf414: 0x42e91220, 0xf415: 0x42f39420, 0xf416: 0x6c16c220, 0xf417: 0x6c16c420,
-	0xf418: 0x6c2cdc20, 0xf419: 0x6c16c620, 0xf41a: 0x6c16c820, 0xf41b: 0x43269420,
-	0xf41c: 0x6c16ae20, 0xf41d: 0x6c16b020, 0xf41e: 0x6c00ac20, 0xf41f: 0x6c16b220,
-	0xf420: 0x6c16b420, 0xf421: 0x43155420, 0xf422: 0x6c16b620, 0xf423: 0x6c110420,
-	0xf424: 0x6c110620, 0xf425: 0x42d75c20, 0xf426: 0x6c16c020, 0xf427: 0x6c235e20,
-	0xf428: 0x6c168a20, 0xf429: 0x6c1a1220, 0xf42a: 0x6c10fa20, 0xf42b: 0x6c169420,
-	0xf42c: 0x6c169620, 0xf42d: 0x6c169820, 0xf42e: 0x6c238e20, 0xf42f: 0x6c278420,
-	0xf430: 0x6c27c420, 0xf431: 0x6c169e20, 0xf432: 0x6c16a220, 0xf433: 0x6c2f0420,
-	0xf434: 0x6c166420, 0xf435: 0x6c168e20, 0xf436: 0x6c255020, 0xf437: 0x6c2d9a20,
-	0xf438: 0x6c2ecc20, 0xf439: 0x6c1d1a20, 0xf43a: 0x6c163e20, 0xf43b: 0x6c164220,
-	0xf43c: 0x6c164820, 0xf43d: 0x6c10e820, 0xf43e: 0x6c164a20, 0xf43f: 0x6c207020,
-	// Block 0x3d1, offset 0xf440
-	0xf440: 0x6c22e020, 0xf441: 0x6c165220, 0xf442: 0x6c297e20, 0xf443: 0x6c165e20,
-	0xf444: 0x6c163420, 0xf445: 0x6c1f2a20, 0xf446: 0x6c2e9a20, 0xf447: 0x6c162220,
-	0xf448: 0x42cef620, 0xf449: 0x6c154020, 0xf44a: 0x6c162420, 0xf44b: 0x6c162620,
-	0xf44c: 0x6c162820, 0xf44d: 0x6c162a20, 0xf44e: 0x6c162c20, 0xf44f: 0x6c128220,
-	0xf450: 0x6c168820, 0xf451: 0x6c16fa20, 0xf452: 0x6c1dce20, 0xf453: 0x6c161420,
-	0xf454: 0x6c166a20, 0xf455: 0x6c1bde20, 0xf456: 0x6c21cc20, 0xf457: 0x6c167820,
-	0xf458: 0x6c161620, 0xf459: 0x6c1d6020, 0xf45a: 0x6c053820, 0xf45b: 0x6c161820,
-	0xf45c: 0x6c163020, 0xf45d: 0x6c15fc20, 0xf45e: 0x6c15fe20, 0xf45f: 0x6c160020,
-	0xf460: 0x6c006e20, 0xf461: 0x6c160220, 0xf462: 0x6c160420, 0xf463: 0x6c0f7620,
-	0xf464: 0x6c160620, 0xf465: 0x6c160a20, 0xf466: 0x6c1da420, 0xf467: 0x6c160c20,
-	0xf468: 0x6c160e20, 0xf469: 0x6c161020, 0xf46a: 0x6c161220, 0xf46b: 0x6c106620,
-	0xf46c: 0x6c0f8820, 0xf46d: 0x6c193020, 0xf46e: 0x6c167220, 0xf46f: 0x42e93020,
-	0xf470: 0x6c29ca20, 0xf471: 0x6c167a20, 0xf472: 0x6c167c20, 0xf473: 0x6c167e20,
-	0xf474: 0x6c166e20, 0xf475: 0x6c167020, 0xf476: 0x6c167620, 0xf477: 0x6c161a20,
-	0xf478: 0x6c02b020, 0xf479: 0x6c162e20, 0xf47a: 0x42e58020, 0xf47b: 0x6c229820,
-	0xf47c: 0x6c08f220, 0xf47d: 0x6c09c020, 0xf47e: 0x6c0e7a20, 0xf47f: 0x6c086620,
-	// Block 0x3d2, offset 0xf480
-	0xf480: 0x6c0c3420, 0xf481: 0x6c0fde20, 0xf482: 0x6c0dde20, 0xf483: 0x6c102420,
-	0xf484: 0x6c0dd820, 0xf485: 0x6c105420, 0xf486: 0x6c140e20, 0xf487: 0x6c2ce020,
-	0xf488: 0x6c070420, 0xf489: 0x6c071a20, 0xf48a: 0x6c05f620, 0xf48b: 0x6c028220,
-	0xf48c: 0x6c181a20, 0xf48d: 0x42ab8020, 0xf48e: 0x43f41c20, 0xf48f: 0x43f41e20,
-	0xf490: 0x6c0f0a20, 0xf491: 0x43f42220, 0xf492: 0x6c0be420, 0xf493: 0x43f42620,
-	0xf494: 0x43f42820, 0xf495: 0x42a3bc20, 0xf496: 0x6c0ea020, 0xf497: 0x6c012a20,
-	0xf498: 0x6c169a20, 0xf499: 0x6c0b4420, 0xf49a: 0x6c0aa220, 0xf49b: 0x6c131a20,
-	0xf49c: 0x6c153e20, 0xf49d: 0x6c0bf420, 0xf49e: 0x6c00ce20, 0xf49f: 0x43f43e20,
-	0xf4a0: 0x430c2420, 0xf4a1: 0x43f44220, 0xf4a2: 0x6c0a3420, 0xf4a3: 0x43f44620,
-	0xf4a4: 0x43f44820, 0xf4a5: 0x6c009e20, 0xf4a6: 0x6c0fd420, 0xf4a7: 0x43f44e20,
-	0xf4a8: 0x43f45020, 0xf4a9: 0x43f45220, 0xf4aa: 0x6c120620, 0xf4ab: 0x6c08bc20,
-	0xf4ac: 0x6c036620, 0xf4ad: 0x6c0f3220, 0xf4ae: 0x4321bc20, 0xf4af: 0x6c16a020,
-	0xf4b0: 0x6c12f820, 0xf4b1: 0x6c0cd820, 0xf4b2: 0x6c14e020, 0xf4b3: 0x6c138a20,
-	0xf4b4: 0x6c04c820, 0xf4b5: 0x6c121820, 0xf4b6: 0x6c02be20, 0xf4b7: 0x6c0e1820,
-	0xf4b8: 0x6c038e20, 0xf4b9: 0x6c135220, 0xf4ba: 0x6c143220, 0xf4bb: 0x6c0cec20,
-	0xf4bc: 0x6c1b9c20, 0xf4bd: 0x6c022a20, 0xf4be: 0x6c025c20, 0xf4bf: 0x6c0d3820,
-	// Block 0x3d3, offset 0xf4c0
-	0xf4c0: 0x6c0ec020, 0xf4c1: 0x6c12c020, 0xf4c2: 0x6c03a620, 0xf4c3: 0x6c0a2220,
-	0xf4c4: 0x6c116220, 0xf4c5: 0x6c023c20, 0xf4c6: 0x6c0a2620, 0xf4c7: 0x6c033220,
-	0xf4c8: 0x6c093220, 0xf4c9: 0x42e45620, 0xf4ca: 0x6c0de420, 0xf4cb: 0x6c123420,
-	0xf4cc: 0x6c093420, 0xf4cd: 0x6c089a20, 0xf4ce: 0x6c03ba20, 0xf4cf: 0x6c157420,
-	0xf4d0: 0x6c0cc420, 0xf4d1: 0x6c09e220, 0xf4d2: 0x6c01dc20, 0xf4d3: 0x6c0f5e20,
-	0xf4d4: 0x6c074020, 0xf4d5: 0x6c108220, 0xf4d6: 0x6c0c4220, 0xf4d7: 0x6c16c220,
-	0xf4d8: 0x6c270220, 0xf4d9: 0x6c11f620, 0xf4da: 0x6c0a2c20, 0xf4db: 0x6c093820,
-	0xf4dc: 0x6c09a620, 0xf4dd: 0x4304f220, 0xf4de: 0x4304f220, 0xf4df: 0x6c0ea420,
-	0xf4e0: 0x6c02cc20, 0xf4e1: 0x6c08aa20, 0xf4e2: 0x6c013020, 0xf4e3: 0x6c04e820,
-	0xf4e4: 0x6c12bc20, 0xf4e5: 0x6c0d3e20, 0xf4e6: 0x431f6c20, 0xf4e7: 0x6c009e20,
-	0xf4e8: 0x6c10ca20, 0xf4e9: 0x6c04aa20, 0xf4ea: 0x6c12be20, 0xf4eb: 0x6c056a20,
-	0xf4ec: 0x4885dc20, 0xf4ed: 0x6c036820,
-	0xf4f0: 0x6c135c20, 0xf4f1: 0x6c185420, 0xf4f2: 0x6c0ca420, 0xf4f3: 0x429f0020,
-	0xf4f4: 0x6c09c420, 0xf4f5: 0x6c182c20, 0xf4f6: 0x6c155820, 0xf4f7: 0x6c094620,
-	0xf4f8: 0x6c02be20, 0xf4f9: 0x42aaaa20, 0xf4fa: 0x6c199620, 0xf4fb: 0x42abc420,
-	0xf4fc: 0x6c0f0a20, 0xf4fd: 0x6c133620, 0xf4fe: 0x6c014020, 0xf4ff: 0x6c144a20,
-	// Block 0x3d4, offset 0xf500
-	0xf500: 0x6c1b0820, 0xf501: 0x42b65020, 0xf502: 0x42bda420, 0xf503: 0x42bdb220,
-	0xf504: 0x6c07b020, 0xf505: 0x6c1cb620, 0xf506: 0x6c1d2c20, 0xf507: 0x6c0b2e20,
-	0xf508: 0x6c154820, 0xf509: 0x6c0d3820, 0xf50a: 0x42c2c020, 0xf50b: 0x6c0ec020,
-	0xf50c: 0x6c0da620, 0xf50d: 0x6c1e5820, 0xf50e: 0x6c1e2c20, 0xf50f: 0x42c8a420,
-	0xf510: 0x6c1eca20, 0xf511: 0x6c0be420, 0xf512: 0x6c16e220, 0xf513: 0x6c141020,
-	0xf514: 0x6c0aee20, 0xf515: 0x6c210220, 0xf516: 0x6c082020, 0xf517: 0x6c162420,
-	0xf518: 0x42ddb620, 0xf519: 0x6c08d420, 0xf51a: 0x6c033220, 0xf51b: 0x6c109020,
-	0xf51c: 0x6c093220, 0xf51d: 0x42ef4e20, 0xf51e: 0x6c094e20, 0xf51f: 0x6c11f020,
-	0xf520: 0x6c0ea020, 0xf521: 0x42e8e220, 0xf522: 0x42ea0c20, 0xf523: 0x6c020820,
-	0xf524: 0x42ec3a20, 0xf525: 0x6c243820, 0xf526: 0x6c012a20, 0xf527: 0x6c0bf220,
-	0xf528: 0x6c0eec20, 0xf529: 0x42ee9420, 0xf52a: 0x6c0e7e20, 0xf52b: 0x42f19820,
-	0xf52c: 0x42f56220, 0xf52d: 0x6c0c4220, 0xf52e: 0x42f8f620, 0xf52f: 0x6c26c220,
-	0xf530: 0x6c16c220, 0xf531: 0x42fe7c20, 0xf532: 0x6c093820, 0xf533: 0x6c070220,
-	0xf534: 0x6c01ec20, 0xf535: 0x430ef220, 0xf536: 0x6c2aee20, 0xf537: 0x6c132020,
-	0xf538: 0x6c08aa20, 0xf539: 0x6c0ed820, 0xf53a: 0x6c0a3420, 0xf53b: 0x6c0c0220,
-	0xf53c: 0x6c013020, 0xf53d: 0x6c0dec20, 0xf53e: 0x6c154e20, 0xf53f: 0x6c04e820,
-	// Block 0x3d5, offset 0xf540
-	0xf540: 0x6c1ede20, 0xf541: 0x6c0d3e20, 0xf542: 0x6c155020, 0xf543: 0x6c2d5020,
-	0xf544: 0x43233220, 0xf545: 0x4324ec20, 0xf546: 0x432cf820, 0xf547: 0x6c10ca20,
-	0xf548: 0x6c153e20, 0xf549: 0x432fb620, 0xf54a: 0x6c04aa20, 0xf54b: 0x43301620,
-	0xf54c: 0x6c12be20, 0xf54d: 0x43362420, 0xf54e: 0x6c319820, 0xf54f: 0x48509420,
-	0xf550: 0x48508820, 0xf551: 0x4867aa20, 0xf552: 0x44773a20, 0xf553: 0x44803020,
-	0xf554: 0x44807220, 0xf555: 0x48a49220, 0xf556: 0x48b9a020, 0xf557: 0x48fda620,
-	0xf558: 0x433e8620, 0xf559: 0x433f1c20,
-	// Block 0x3d6, offset 0xf580
-	0xf581: 0x4002ba20, 0xf582: 0xe00037ec, 0xf583: 0x4004ea20,
-	0xf584: 0x4027de20, 0xf585: 0x4004ec20, 0xf586: 0xe00037dc, 0xf587: 0x4003d220,
-	0xf588: 0x4003f420, 0xf589: 0x4003f620, 0xf58a: 0x4004d820, 0xf58b: 0x40093820,
-	0xf58c: 0x40024020, 0xf58d: 0x40021a20, 0xf58e: 0x4002e420, 0xf58f: 0x4004e220,
-	0xf590: 0x4029cc20, 0xf591: 0x4029ce20, 0xf592: 0x4029d020, 0xf593: 0x4029d220,
-	0xf594: 0x4029d420, 0xf595: 0x4029d620, 0xf596: 0x4029d820, 0xf597: 0x4029da20,
-	0xf598: 0x4029dc20, 0xf599: 0x4029de20, 0xf59a: 0x40026c20, 0xf59b: 0x40026220,
-	0xf59c: 0xe00037e7, 0xf59d: 0x40094220, 0xf59e: 0xe00037e2, 0xf59f: 0x4002c420,
-	0xf5a0: 0x4004d620, 0xf5a1: 0x002bde88, 0xf5a2: 0x002c0a88, 0xf5a3: 0x002c3a88,
-	0xf5a4: 0x002c6288, 0xf5a5: 0x002c9888, 0xf5a6: 0x002d0888, 0xf5a7: 0x002d2288,
-	0xf5a8: 0x002d6888, 0xf5a9: 0x002d9a88, 0xf5aa: 0x002dcc88, 0xf5ab: 0x002dfe88,
-	0xf5ac: 0x002e2288, 0xf5ad: 0x002e8288, 0xf5ae: 0x002e9e88, 0xf5af: 0x002ee288,
-	0xf5b0: 0x002f2c88, 0xf5b1: 0x002f5688, 0xf5b2: 0x002f7a88, 0xf5b3: 0x002fe688,
-	0xf5b4: 0x00302c88, 0xf5b5: 0x00306c88, 0xf5b6: 0x0030be88, 0xf5b7: 0x0030e288,
-	0xf5b8: 0x0030f688, 0xf5b9: 0x00310088, 0xf5ba: 0x00312a88, 0xf5bb: 0x4003f820,
-	0xf5bc: 0x4003d220, 0xf5bd: 0x4003fa20, 0xf5be: 0x40062420, 0xf5bf: 0x40021620,
-	// Block 0x3d7, offset 0xf5c0
-	0xf5c0: 0x40061e20, 0xf5c1: 0x402bde20, 0xf5c2: 0x402c0a20, 0xf5c3: 0x402c3a20,
-	0xf5c4: 0x402c6220, 0xf5c5: 0x402c9820, 0xf5c6: 0x402d0820, 0xf5c7: 0x402d2220,
-	0xf5c8: 0x402d6820, 0xf5c9: 0x402d9a20, 0xf5ca: 0x402dcc20, 0xf5cb: 0x402dfe20,
-	0xf5cc: 0x402e2220, 0xf5cd: 0x402e8220, 0xf5ce: 0x402e9e20, 0xf5cf: 0x402ee220,
-	0xf5d0: 0x402f2c20, 0xf5d1: 0x402f5620, 0xf5d2: 0x402f7a20, 0xf5d3: 0x402fe620,
-	0xf5d4: 0x40302c20, 0xf5d5: 0x40306c20, 0xf5d6: 0x4030be20, 0xf5d7: 0x4030e220,
-	0xf5d8: 0x4030f620, 0xf5d9: 0x40310020, 0xf5da: 0x40312a20, 0xf5db: 0x4003fc20,
-	0xf5dc: 0x40094820, 0xf5dd: 0x4003fe20, 0xf5de: 0x40094c20, 0xf5df: 0x00041883,
-	0xf5e0: 0x00041a83, 0xf5e1: 0x40030420, 0xf5e2: 0x4004a420, 0xf5e3: 0x4004a620,
-	0xf5e4: 0x40025c20, 0xf5e5: 0x00023e92, 0xf5e6: 0xca2835c1, 0xf5e7: 0xc6393241,
-	0xf5e8: 0xc7093241, 0xf5e9: 0xc7c935c1, 0xf5ea: 0xc8b03241, 0xf5eb: 0xc9653241,
-	0xf5ec: 0xc6d43241, 0xf5ed: 0xc89b3241, 0xf5ee: 0xca093241, 0xf5ef: 0xc83435c1,
-	0xf5f0: 0x0027d692, 0xf5f1: 0xc63f3241, 0xf5f2: 0xc70f3241, 0xf5f3: 0xc7de35c1,
-	0xf5f4: 0xc8b63241, 0xf5f5: 0xc96b3241, 0xf5f6: 0xc6523241, 0xf5f7: 0xc72235c1,
-	0xf5f8: 0xc80035c1, 0xf5f9: 0xc8c93241, 0xf5fa: 0xc97e35c1, 0xf5fb: 0xc66b35c1,
-	0xf5fc: 0xc74435c1, 0xf5fd: 0xc82235c1, 0xf5fe: 0xc8e235c1, 0xf5ff: 0xc99b35c1,
-	// Block 0x3d8, offset 0xf600
-	0xf600: 0xc68835c1, 0xf601: 0xc76135c1, 0xf602: 0xc84935c1, 0xf603: 0xc8ff35c1,
-	0xf604: 0xc9bd35c1, 0xf605: 0xc6983241, 0xf606: 0xc7713241, 0xf607: 0xc85c3241,
-	0xf608: 0xc90f3241, 0xf609: 0xc9cd3241, 0xf60a: 0xc6b635c1, 0xf60b: 0xc78f35c1,
-	0xf60c: 0xc87a35c1, 0xf60d: 0xc92d35c1, 0xf60e: 0xc9eb35c1, 0xf60f: 0xc6ce3241,
-	0xf610: 0xc7a73241, 0xf611: 0xc8953241, 0xf612: 0xc9453241, 0xf613: 0xca033241,
-	0xf614: 0xc6da3241, 0xf615: 0xc8a13241, 0xf616: 0xca0f3241, 0xf617: 0xc6e33241,
-	0xf618: 0xc7b03241, 0xf619: 0xc8aa3241, 0xf61a: 0xc94e3241, 0xf61b: 0xca183241,
-	0xf61c: 0xc6fd35c1, 0xf61d: 0xca313aa1, 0xf61e: 0xa0012812, 0xf61f: 0xa0012912,
-	0xf620: 0x4063a620, 0xf621: 0x4062ac20, 0xf622: 0x4062ae20, 0xf623: 0x40646820,
-	0xf624: 0x4062b020, 0xf625: 0x40646c20, 0xf626: 0x40646e20, 0xf627: 0x4062b220,
-	0xf628: 0x4062b420, 0xf629: 0x4062b620, 0xf62a: 0x40647420, 0xf62b: 0x40647620,
-	0xf62c: 0x40647820, 0xf62d: 0x40647a20, 0xf62e: 0x40647c20, 0xf62f: 0x40647e20,
-	0xf630: 0x4062e020, 0xf631: 0x4062b820, 0xf632: 0x4062ba20, 0xf633: 0x4062bc20,
-	0xf634: 0x4062ee20, 0xf635: 0x4062be20, 0xf636: 0x4062c020, 0xf637: 0x4062c220,
-	0xf638: 0x4062c420, 0xf639: 0x4062c620, 0xf63a: 0x4062c820, 0xf63b: 0x4062ca20,
-	0xf63c: 0x4062cc20, 0xf63d: 0x4062ce20, 0xf63e: 0x4062d020,
-	// Block 0x3d9, offset 0xf640
-	0xf642: 0x4063a820, 0xf643: 0x4063aa20,
-	0xf644: 0x4063ac20, 0xf645: 0x4063ae20, 0xf646: 0x4063b020, 0xf647: 0x4063b220,
-	0xf64a: 0x4063b420, 0xf64b: 0x4063b620,
-	0xf64c: 0x4063b820, 0xf64d: 0x4063ba20, 0xf64e: 0x4063bc20, 0xf64f: 0x4063be20,
-	0xf652: 0x4063c020, 0xf653: 0x4063c220,
-	0xf654: 0x4063c420, 0xf655: 0x4063c620, 0xf656: 0x4063c820, 0xf657: 0x4063ca20,
-	0xf65a: 0x4063cc20, 0xf65b: 0x4063ce20,
-	0xf65c: 0x4063d020,
-	0xf660: 0x4027dc20, 0xf661: 0x4027e020, 0xf662: 0x40094620, 0xf663: 0x40021220,
-	0xf664: 0x40094a20, 0xf665: 0x4027e220, 0xf666: 0x40280820,
-	0xf668: 0x400d3220, 0xf669: 0x40084420, 0xf66a: 0x40084820, 0xf66b: 0x40084620,
-	0xf66c: 0x40084a20, 0xf66d: 0x400e6e20, 0xf66e: 0x400ec420,
-	0xf679: 0xa0000000, 0xf67a: 0xa0000000, 0xf67b: 0xa0000000,
-	0xf67c: 0x4027ae20, 0xf67d: 0x4027b020, 0xf67e: 0x00000285, 0xf67f: 0x2bfffe85,
-	// Block 0x3da, offset 0xf680
-	0xf680: 0xe00037d0, 0xf681: 0xe00037b8, 0xf682: 0xe00037bc, 0xf683: 0xe00037c4,
-	0xf684: 0xe00037d4, 0xf685: 0xe00037c8, 0xf686: 0xe00037d8, 0xf687: 0xe00037c0,
-	0xf688: 0xe00037cc,
-	0xf690: 0x02bf2e86, 0xf691: 0x02a7de86,
-	// Block 0x3db, offset 0xf6c0
-	0xf6c0: 0x429c7a20, 0xf6c1: 0x6c036a20, 0xf6c2: 0x429c8220, 0xf6c3: 0x48024420,
-	0xf6c4: 0x429ec020, 0xf6c5: 0x6c12f820, 0xf6c6: 0x429f7620, 0xf6c7: 0x42a00420,
-	0xf6c8: 0x42a0f420, 0xf6c9: 0x6c124e20, 0xf6ca: 0x6c0cd820, 0xf6cb: 0x6c0d3420,
-	0xf6cc: 0x44693c20, 0xf6cd: 0x480c7420, 0xf6ce: 0x6c14e020, 0xf6cf: 0x6c182020,
-	0xf6d0: 0x42a2c820, 0xf6d1: 0x6c050a20, 0xf6d2: 0x480a3820, 0xf6d3: 0x44697220,
-	0xf6d4: 0x42a2ce20, 0xf6d5: 0x6c07a420, 0xf6d6: 0x480a9620, 0xf6d7: 0x6c0ada20,
-	0xf6d8: 0x6c184020, 0xf6d9: 0x429d9820, 0xf6da: 0x6c0fea20, 0xf6db: 0x6c185420,
-	0xf6dc: 0x4923be20, 0xf6dd: 0x6c186820, 0xf6de: 0x6c0b6220, 0xf6df: 0x4469be20,
-	0xf6e0: 0x6c073a20, 0xf6e1: 0x42a48c20, 0xf6e2: 0x6c02bc20, 0xf6e3: 0x42a4ee20,
-	0xf6e4: 0x446a2a20, 0xf6e5: 0x6c155820, 0xf6e6: 0x6c138a20, 0xf6e7: 0x6c04c820,
-	0xf6e8: 0x6c094620, 0xf6e9: 0x6c13ba20, 0xf6ea: 0x6c18c620, 0xf6eb: 0x6c142c20,
-	0xf6ec: 0x6c18e820, 0xf6ed: 0x6c121820, 0xf6ee: 0x6c118020, 0xf6ef: 0x6c0d4820,
-	0xf6f0: 0x42a6fa20, 0xf6f1: 0x6c047c20, 0xf6f2: 0x6c047c20, 0xf6f3: 0x6c047c20,
-	0xf6f4: 0x48145820, 0xf6f5: 0x6c023e20, 0xf6f6: 0x6c042020, 0xf6f7: 0x6c191020,
-	0xf6f8: 0x4816c620, 0xf6f9: 0x6c047e20, 0xf6fa: 0x6c090020, 0xf6fb: 0x42a80c20,
-	0xf6fc: 0x42a93c20, 0xf6fd: 0x6c042220, 0xf6fe: 0x6c0f4020, 0xf6ff: 0x6c098c20,
-	// Block 0x3dc, offset 0xf700
-	0xf700: 0x6c195220, 0xf701: 0x42a9ec20, 0xf702: 0x6c0ff020, 0xf703: 0x6c055c20,
-	0xf704: 0x6c198220, 0xf705: 0x6c0c9e20, 0xf706: 0x6c0c9e20, 0xf707: 0x6c199620,
-	0xf708: 0x6c040020, 0xf709: 0x42ab6620, 0xf70a: 0x42ab8420, 0xf70b: 0x6c1a2620,
-	0xf70c: 0x6c0e1820, 0xf70d: 0x42ae2e20, 0xf70e: 0x42aca220, 0xf70f: 0x6c133420,
-	0xf710: 0x6c0c3420, 0xf711: 0x6c0ce420, 0xf712: 0x6c0ade20, 0xf713: 0x6c0b0220,
-	0xf714: 0x42b01a20, 0xf715: 0x6c056220, 0xf716: 0x42b06420, 0xf717: 0x6c13be20,
-	0xf718: 0x42b15820, 0xf719: 0x4829c820, 0xf71a: 0x6c116c20, 0xf71b: 0x6c0f2620,
-	0xf71c: 0x42b20c20, 0xf71d: 0x6c0d7620, 0xf71e: 0x6c14b820, 0xf71f: 0x6c1ace20,
-	0xf720: 0x482d5020, 0xf721: 0x482dd420, 0xf722: 0x42b3d820, 0xf723: 0x42b43620,
-	0xf724: 0x42b44e20, 0xf725: 0x42b3b020, 0xf726: 0x6c12cc20, 0xf727: 0x446ddc20,
-	0xf728: 0x446df820, 0xf729: 0x42b61020, 0xf72a: 0x6c1b3420, 0xf72b: 0x6c1b3420,
-	0xf72c: 0x48339020, 0xf72d: 0x6c1b5c20, 0xf72e: 0x42b7b020, 0xf72f: 0x6c10fa20,
-	0xf730: 0x6c1b7620, 0xf731: 0x48363020, 0xf732: 0x6c097e20, 0xf733: 0x6c0a6220,
-	0xf734: 0x6c101820, 0xf735: 0x6c1b8420, 0xf736: 0x446f0220, 0xf737: 0x6c0fc220,
-	0xf738: 0x6c1b9c20, 0xf739: 0x42b98020, 0xf73a: 0x42b91a20, 0xf73b: 0x483bc820,
-	0xf73c: 0x42ba8620, 0xf73d: 0x483bcc20, 0xf73e: 0x42badc20, 0xf73f: 0x42bad620,
-	// Block 0x3dd, offset 0xf740
-	0xf740: 0x42baf820, 0xf741: 0x6c0a1420, 0xf742: 0x42bbc420, 0xf743: 0x44705e20,
-	0xf744: 0x6c0e0220, 0xf745: 0x42bc5020, 0xf746: 0x6c140620, 0xf747: 0x42bcd220,
-	0xf748: 0x4470c420, 0xf749: 0x48430620, 0xf74a: 0x4470f820, 0xf74b: 0x42bd6020,
-	0xf74c: 0x42bd6620, 0xf74d: 0x6c0a2820, 0xf74e: 0x6c16de20, 0xf74f: 0x49472420,
-	0xf750: 0x6c1c6e20, 0xf751: 0x48466220, 0xf752: 0x48466220, 0xf753: 0x6c286820,
-	0xf754: 0x42be4420, 0xf755: 0x42be4420, 0xf756: 0x44718e20, 0xf757: 0x48657020,
-	0xf758: 0x48c3b420, 0xf759: 0x6c056620, 0xf75a: 0x6c0ebc20, 0xf75b: 0x4471c620,
-	0xf75c: 0x42bf3420, 0xf75d: 0x6c10f020, 0xf75e: 0x6c088020, 0xf75f: 0x42bff220,
-	0xf760: 0x6c1d0220, 0xf761: 0x44727420, 0xf762: 0x44723820, 0xf763: 0x6c022a20,
-	0xf764: 0x484da820, 0xf765: 0x6c109620, 0xf766: 0x6c08cc20, 0xf767: 0x6c06c020,
-	0xf768: 0x6c0b2e20, 0xf769: 0x6c06c020, 0xf76a: 0x42c2f420, 0xf76b: 0x6c0d3820,
-	0xf76c: 0x6c05da20, 0xf76d: 0x6c133820, 0xf76e: 0x42c35e20, 0xf76f: 0x42c3bc20,
-	0xf770: 0x6c0ec020, 0xf771: 0x6c1dac20, 0xf772: 0x6c0bdc20, 0xf773: 0x6c1dc620,
-	0xf774: 0x42c4ba20, 0xf775: 0x6c13cc20, 0xf776: 0x6c1df220, 0xf777: 0x6c1e2620,
-	0xf778: 0x48561820, 0xf779: 0x6c120820, 0xf77a: 0x42c5f820, 0xf77b: 0x6c092c20,
-	0xf77c: 0x6c0cf620, 0xf77d: 0x42c7c820, 0xf77e: 0x4857e220, 0xf77f: 0x42c84420,
-	// Block 0x3de, offset 0xf780
-	0xf780: 0x42c78a20, 0xf781: 0x6c014820, 0xf782: 0x44745c20, 0xf783: 0x6c145420,
-	0xf784: 0x42c8fc20, 0xf785: 0x42c93a20, 0xf786: 0x42c8ee20, 0xf787: 0x4474d820,
-	0xf788: 0x6c12c020, 0xf789: 0x6c057620, 0xf78a: 0x48601420, 0xf78b: 0x42cbc620,
-	0xf78c: 0x6c0a2e20, 0xf78d: 0x6c1f1420, 0xf78e: 0x44763220, 0xf78f: 0x6c0a2220,
-	0xf790: 0x44761020, 0xf791: 0x4475c820, 0xf792: 0x6c141620, 0xf793: 0x6c183c20,
-	0xf794: 0x6c07a620, 0xf795: 0x42cd3820, 0xf796: 0x6c27ec20, 0xf797: 0x4487b220,
-	0xf798: 0x6c16e220, 0xf799: 0x6c141020, 0xf79a: 0x42ce4220, 0xf79b: 0x6c1f7020,
-	0xf79c: 0x6c094a20, 0xf79d: 0x48678620, 0xf79e: 0x44769220, 0xf79f: 0x42cff420,
-	0xf7a0: 0x6c1f8c20, 0xf7a1: 0x42d0a420, 0xf7a2: 0x6c116220, 0xf7a3: 0x4868da20,
-	0xf7a4: 0x42d11c20, 0xf7a5: 0x42d03e20, 0xf7a6: 0x42d22820, 0xf7a7: 0x44773a20,
-	0xf7a8: 0x42d28420, 0xf7a9: 0x42d34620, 0xf7aa: 0x42d3d420, 0xf7ab: 0x42d55020,
-	0xf7ac: 0x486d4620, 0xf7ad: 0x6c051e20, 0xf7ae: 0x44783020, 0xf7af: 0x6c08d220,
-	0xf7b0: 0x48714e20, 0xf7b1: 0x6c20f820, 0xf7b2: 0x44789c20, 0xf7b3: 0x42d6e420,
-	0xf7b4: 0x42d73e20, 0xf7b5: 0x6c082020, 0xf7b6: 0x6c028c20, 0xf7b7: 0x48751a20,
-	0xf7b8: 0x483a1620, 0xf7b9: 0x4875f420, 0xf7ba: 0x6c11ec20, 0xf7bb: 0x48797820,
-	0xf7bc: 0x6c014c20, 0xf7bd: 0x42d99a20, 0xf7be: 0x42d8ce20, 0xf7bf: 0x42da2c20,
-	// Block 0x3df, offset 0xf7c0
-	0xf7c0: 0x6c113620, 0xf7c1: 0x6c023c20, 0xf7c2: 0x6c162420, 0xf7c3: 0x6c06dc20,
-	0xf7c4: 0x6c0b3a20, 0xf7c5: 0x6c21a620, 0xf7c6: 0x487a3c20, 0xf7c7: 0x42da6820,
-	0xf7c8: 0x6c06de20, 0xf7c9: 0x6c21d220, 0xf7ca: 0x447a6620, 0xf7cb: 0x6c08d420,
-	0xf7cc: 0x42dd8e20, 0xf7cd: 0x487da220, 0xf7ce: 0x6c21a820, 0xf7cf: 0x6c0ec820,
-	0xf7d0: 0x487ebc20, 0xf7d1: 0x487f1c20, 0xf7d2: 0x6c226020, 0xf7d3: 0x42e07220,
-	0xf7d4: 0x6c109020, 0xf7d5: 0x6c228220, 0xf7d6: 0x447b2c20, 0xf7d7: 0x42e09420,
-	0xf7d8: 0x6c07bc20, 0xf7d9: 0x42e0ee20, 0xf7da: 0x6c0e2820, 0xf7db: 0x480a4a20,
-	0xf7dc: 0x42e28a20, 0xf7dd: 0x4884c620, 0xf7de: 0x42e33820, 0xf7df: 0x48875620,
-	0xf7e0: 0x6c22f620, 0xf7e1: 0x6c094e20, 0xf7e2: 0x42e4a020, 0xf7e3: 0x488c1020,
-	0xf7e4: 0x6c07c020, 0xf7e5: 0x42e52a20, 0xf7e6: 0x488e6a20, 0xf7e7: 0x48902820,
-	0xf7e8: 0x6c236220, 0xf7e9: 0x6c018420, 0xf7ea: 0x447d5820, 0xf7eb: 0x42e74a20,
-	0xf7ec: 0x447d7020, 0xf7ed: 0x447d7020, 0xf7ee: 0x42e88e20, 0xf7ef: 0x6c238c20,
-	0xf7f0: 0x42e8e220, 0xf7f1: 0x42e90a20, 0xf7f2: 0x6c23a020, 0xf7f3: 0x447e3620,
-	0xf7f4: 0x42ea4820, 0xf7f5: 0x48986c20, 0xf7f6: 0x42ea7c20, 0xf7f7: 0x48992420,
-	0xf7f8: 0x6c007620, 0xf7f9: 0x48433e20, 0xf7fa: 0x42ec2020, 0xf7fb: 0x489f4220,
-	0xf7fc: 0x489f7020, 0xf7fd: 0x48a08820, 0xf7fe: 0x447ff820, 0xf7ff: 0x44801020,
-	// Block 0x3e0, offset 0xf800
-	0xf800: 0x6c0eec20, 0xf801: 0x48a1e620, 0xf802: 0x48a1e420, 0xf803: 0x48a23220,
-	0xf804: 0x48a26620, 0xf805: 0x6c24a820, 0xf806: 0x6c0b4220, 0xf807: 0x6c0b4220,
-	0xf808: 0x42ee9420, 0xf809: 0x44807220, 0xf80a: 0x6c24c820, 0xf80b: 0x44808c20,
-	0xf80c: 0x44812c20, 0xf80d: 0x48a83a20, 0xf80e: 0x42f09c20, 0xf80f: 0x6c250420,
-	0xf810: 0x42f19820, 0xf811: 0x4481c620, 0xf812: 0x48ac4c20, 0xf813: 0x6c0cc420,
-	0xf814: 0x48ad3420, 0xf815: 0x48ad8a20, 0xf816: 0x6c131a20, 0xf817: 0x42f3d620,
-	0xf818: 0x44825e20, 0xf819: 0x6c074020, 0xf81a: 0x42f49420, 0xf81b: 0x6c01ac20,
-	0xf81c: 0x48b2f820, 0xf81d: 0x48b54e20, 0xf81e: 0x48b54e20, 0xf81f: 0x42f5dc20,
-	0xf820: 0x44840420, 0xf821: 0x48b75620, 0xf822: 0x6c261820, 0xf823: 0x6c0e6a20,
-	0xf824: 0x44844e20, 0xf825: 0x48b90020, 0xf826: 0x6c268420, 0xf827: 0x44854020,
-	0xf828: 0x42f9d020, 0xf829: 0x42f9c620, 0xf82a: 0x6c03c020, 0xf82b: 0x48bf0c20,
-	0xf82c: 0x6c26bc20, 0xf82d: 0x44860220, 0xf82e: 0x6c26d220, 0xf82f: 0x42fc0420,
-	0xf830: 0x42fc8a20, 0xf831: 0x44866820, 0xf832: 0x48c45020, 0xf833: 0x48c48e20,
-	0xf834: 0x4486b220, 0xf835: 0x48c5b220, 0xf836: 0x42fef420, 0xf837: 0x48c67c20,
-	0xf838: 0x42ff2a20, 0xf839: 0x42fff420, 0xf83a: 0x6c093820, 0xf83b: 0x48c9b420,
-	0xf83c: 0x48ca4620, 0xf83d: 0x4300c020, 0xf83e: 0x48cb5020, 0xf83f: 0x6c27d620,
-	// Block 0x3e1, offset 0xf840
-	0xf840: 0x4866be20, 0xf841: 0x4487aa20, 0xf842: 0x6c009220, 0xf843: 0x43020620,
-	0xf844: 0x44881620, 0xf845: 0x6c281420, 0xf846: 0x42b56a20, 0xf847: 0x48cf4e20,
-	0xf848: 0x48cf6a20, 0xf849: 0x48672620, 0xf84a: 0x48673820, 0xf84b: 0x6c286820,
-	0xf84c: 0x43040820, 0xf84d: 0x6c08ea20, 0xf84e: 0x4488d620, 0xf84f: 0x43052220,
-	0xf850: 0x6c00a420, 0xf851: 0x6c091e20, 0xf852: 0x42a56620, 0xf853: 0x6c01e420,
-	0xf854: 0x6c13e220, 0xf855: 0x6c020c20, 0xf856: 0x6c050020, 0xf857: 0x48d67820,
-	0xf858: 0x6c095620, 0xf859: 0x43063a20, 0xf85a: 0x4306c620, 0xf85b: 0x43075a20,
-	0xf85c: 0x6c28f220, 0xf85d: 0x6c292820, 0xf85e: 0x4307ce20, 0xf85f: 0x6c0ea420,
-	0xf860: 0x4306a620, 0xf861: 0x6c03f820, 0xf862: 0x6c04e220, 0xf863: 0x6c07cc20,
-	0xf864: 0x48d86c20, 0xf865: 0x48dad620, 0xf866: 0x48d9aa20, 0xf867: 0x448a5620,
-	0xf868: 0x4309e220, 0xf869: 0x4309e620, 0xf86a: 0x430a2c20, 0xf86b: 0x48e79420,
-	0xf86c: 0x430ac820, 0xf86d: 0x48de5820, 0xf86e: 0x448aba20, 0xf86f: 0x448ac220,
-	0xf870: 0x48df6220, 0xf871: 0x48e1a420, 0xf872: 0x448ad620, 0xf873: 0x6c041420,
-	0xf874: 0x6c163c20, 0xf875: 0x6c29de20, 0xf876: 0x430cd220, 0xf877: 0x6c29e620,
-	0xf878: 0x430d1020, 0xf879: 0x430e1c20, 0xf87a: 0x430dc420, 0xf87b: 0x430ef220,
-	0xf87c: 0x430e5020, 0xf87d: 0x430ed620, 0xf87e: 0x430f0c20, 0xf87f: 0x448bae20,
-	// Block 0x3e2, offset 0xf880
-	0xf880: 0x430fc220, 0xf881: 0x43100220, 0xf882: 0x448bf220, 0xf883: 0x4310c020,
-	0xf884: 0x6c008220, 0xf885: 0x48ecce20, 0xf886: 0x4311ae20, 0xf887: 0x4311bc20,
-	0xf888: 0x448c6a20, 0xf889: 0x4311f420, 0xf88a: 0x44697620, 0xf88b: 0x48f15c20,
-	0xf88c: 0x48f2cc20, 0xf88d: 0x448d7c20, 0xf88e: 0x448d8e20, 0xf88f: 0x6c0bfe20,
-	0xf890: 0x6c154e20, 0xf891: 0x6c1ede20, 0xf892: 0x6c2be420, 0xf893: 0x48f95020,
-	0xf894: 0x6c035620, 0xf895: 0x6c2c1220, 0xf896: 0x431a3620, 0xf897: 0x6c03ca20,
-	0xf898: 0x48fe5e20, 0xf899: 0x48100820, 0xf89a: 0x6c2c5420, 0xf89b: 0x431b7820,
-	0xf89c: 0x431be020, 0xf89d: 0x4811bc20, 0xf89e: 0x431da820, 0xf89f: 0x6c155020,
-	0xf8a0: 0x490ba420, 0xf8a1: 0x490bda20, 0xf8a2: 0x43212820, 0xf8a3: 0x4321e220,
-	0xf8a4: 0x43222220, 0xf8a5: 0x490e5c20, 0xf8a6: 0x43223620, 0xf8a7: 0x43247020,
-	0xf8a8: 0x4325ae20, 0xf8a9: 0x4325b020, 0xf8aa: 0x4324f820, 0xf8ab: 0x4327f220,
-	0xf8ac: 0x43282a20, 0xf8ad: 0x4917f420, 0xf8ae: 0x6c024a20, 0xf8af: 0x44932a20,
-	0xf8b0: 0x432b6e20, 0xf8b1: 0x491aee20, 0xf8b2: 0x4493cc20, 0xf8b3: 0x432d8620,
-	0xf8b4: 0x42bb6420, 0xf8b5: 0x432e4620, 0xf8b6: 0x49228a20, 0xf8b7: 0x49243420,
-	0xf8b8: 0x4494dc20, 0xf8b9: 0x4494ec20, 0xf8ba: 0x432fc020, 0xf8bb: 0x49281420,
-	0xf8bc: 0x44956420, 0xf8bd: 0x49292c20, 0xf8be: 0x43301620, 0xf8bf: 0x43301620,
-	// Block 0x3e3, offset 0xf8c0
-	0xf8c0: 0x43305220, 0xf8c1: 0x492b6c20, 0xf8c2: 0x6c03d020, 0xf8c3: 0x44966620,
-	0xf8c4: 0x43325220, 0xf8c5: 0x43334e20, 0xf8c6: 0x43338420, 0xf8c7: 0x4333fc20,
-	0xf8c8: 0x44979c20, 0xf8c9: 0x49366020, 0xf8ca: 0x43362420, 0xf8cb: 0x43388020,
-	0xf8cc: 0x4339fa20, 0xf8cd: 0x44999c20, 0xf8ce: 0x4499da20, 0xf8cf: 0x433ace20,
-	0xf8d0: 0x49419c20, 0xf8d1: 0x4499f020, 0xf8d2: 0x49420a20, 0xf8d3: 0x49441c20,
-	0xf8d4: 0x49452220, 0xf8d5: 0x6c145a20, 0xf8d6: 0x449aac20, 0xf8d7: 0x6c316420,
-	0xf8d8: 0x433dfc20, 0xf8d9: 0x433e0a20, 0xf8da: 0x433e1e20, 0xf8db: 0x433e2c20,
-	0xf8dc: 0x6c125e20, 0xf8dd: 0x494c0020,
-	// Block 0x3e4, offset 0xf900
-	0xf900: 0xe00014bd, 0xf901: 0x0033b483, 0xf902: 0x00339688, 0xf903: 0x0033a288,
-	0xf904: 0x0033c288, 0xf905: 0x0033fc88, 0xf906: 0xca350071, 0xf907: 0x00343688,
-	0xf908: 0x00344688, 0xf909: 0x00349a88, 0xf90a: 0x0034e488, 0xf90b: 0x00356288,
-	0xf90c: 0x00356a88, 0xf90d: 0xe00014cf, 0xf90e: 0x00357a88, 0xf90f: 0x00365488,
-	0xf910: 0xc0090041, 0xf911: 0x00335288, 0xf912: 0x00335a88, 0xf913: 0xc0130092,
-	0xf914: 0x00338a88, 0xf915: 0xc34c0041, 0xf916: 0xc01c0071, 0xf917: 0xc0200071,
-	0xf918: 0xc0250041, 0xf919: 0x00343e88, 0xf91a: 0xc0370092, 0xf91b: 0x00348488,
-	0xf91c: 0x0034a888, 0xf91d: 0x0034ba88, 0xf91e: 0xc02e0071, 0xf91f: 0x00350e88,
-	0xf920: 0x00352888, 0xf921: 0x00353a88, 0xf922: 0x00354c88, 0xf923: 0xc03e00f1,
-	0xf924: 0x0035ac88, 0xf925: 0x0035b488, 0xf926: 0x00360288, 0xf927: 0xc0440071,
-	0xf928: 0x00365c88, 0xf929: 0x00366688, 0xf92a: 0x00367488, 0xf92b: 0xc0480071,
-	0xf92c: 0x00368e88, 0xf92d: 0xc04c0071, 0xf92e: 0x0036b888, 0xf92f: 0x0036c488,
-	0xf930: 0xc0060041, 0xf931: 0x40335220, 0xf932: 0x40335a20, 0xf933: 0xc0100092,
-	0xf934: 0x40338a20, 0xf935: 0xc3490041, 0xf936: 0xc01a0071, 0xf937: 0xc01e0071,
-	0xf938: 0xc0220041, 0xf939: 0x40343e20, 0xf93a: 0xc0340092, 0xf93b: 0x40348420,
-	0xf93c: 0x4034a820, 0xf93d: 0x4034ba20, 0xf93e: 0xc02c0071, 0xf93f: 0x40350e20,
-	// Block 0x3e5, offset 0xf940
-	0xf940: 0x40352820, 0xf941: 0x40353a20, 0xf942: 0x40354c20, 0xf943: 0xc03a00f1,
-	0xf944: 0x4035ac20, 0xf945: 0x4035b420, 0xf946: 0x40360220, 0xf947: 0xc0420071,
-	0xf948: 0x40365c20, 0xf949: 0x40366620, 0xf94a: 0x40367420, 0xf94b: 0xc0460071,
-	0xf94c: 0x40368e20, 0xf94d: 0xc04a0071, 0xf94e: 0x4036b820, 0xf94f: 0x4036c420,
-	0xf950: 0xe00014ba, 0xf951: 0x4033b420, 0xf952: 0x40339620, 0xf953: 0x4033a220,
-	0xf954: 0x4033c220, 0xf955: 0x4033fc20, 0xf956: 0xca330071, 0xf957: 0x40343620,
-	0xf958: 0x40344620, 0xf959: 0x40349a20, 0xf95a: 0x4034e420, 0xf95b: 0x40356220,
-	0xf95c: 0x40356a20, 0xf95d: 0xe00014cc, 0xf95e: 0x40357a20, 0xf95f: 0x40365420,
-	0xf960: 0x0035e088, 0xf961: 0x4035e020, 0xf962: 0x00369e88, 0xf963: 0x40369e20,
-	0xf964: 0x0036ce88, 0xf965: 0x4036ce20, 0xf966: 0x0036d688, 0xf967: 0x4036d620,
-	0xf968: 0x0036ea88, 0xf969: 0x4036ea20, 0xf96a: 0x0036e088, 0xf96b: 0x4036e020,
-	0xf96c: 0x0036f488, 0xf96d: 0x4036f420, 0xf96e: 0x0036fc88, 0xf96f: 0x4036fc20,
-	0xf970: 0x00370488, 0xf971: 0x40370420, 0xf972: 0x00370c88, 0xf973: 0x40370c20,
-	0xf974: 0xc0500131, 0xf975: 0xc04e0131, 0xf976: 0x00371c88, 0xf977: 0x40371c20,
-	0xf978: 0x0035a488, 0xf979: 0x4035a420, 0xf97a: 0x0035fa88, 0xf97b: 0x4035fa20,
-	0xf97c: 0x0035f288, 0xf97d: 0x4035f220, 0xf97e: 0x0035e888, 0xf97f: 0x4035e820,
-	// Block 0x3e6, offset 0xf980
-	0xf980: 0x00352088, 0xf981: 0x40352020, 0xf982: 0x40070620, 0xf983: 0xae608302,
-	0xf984: 0xae605f02, 0xf985: 0xae602a02, 0xf986: 0xae602202, 0xf987: 0xae605f02,
-	0xf988: 0xa0000000, 0xf989: 0xa0000000, 0xf98a: 0x00341c88, 0xf98b: 0x40341c20,
-	0xf98c: 0x00369688, 0xf98d: 0x40369620, 0xf98e: 0x00353088, 0xf98f: 0x40353020,
-	0xf990: 0xe00014b7, 0xf991: 0xe00014b4, 0xf992: 0x00336a88, 0xf993: 0x40336a20,
-	0xf994: 0x00337a88, 0xf995: 0x40337a20, 0xf996: 0x0033dc88, 0xf997: 0x4033dc20,
-	0xf998: 0x0033aa88, 0xf999: 0x4033aa20, 0xf99a: 0x00345888, 0xf99b: 0x40345820,
-	0xf99c: 0x00347888, 0xf99d: 0x40347820, 0xf99e: 0x00347088, 0xf99f: 0x40347020,
-	0xf9a0: 0x00346888, 0xf9a1: 0x40346820, 0xf9a2: 0x0034ca88, 0xf9a3: 0x4034ca20,
-	0xf9a4: 0x0034dc88, 0xf9a5: 0x4034dc20, 0xf9a6: 0x00351888, 0xf9a7: 0x40351820,
-	0xf9a8: 0x00372688, 0xf9a9: 0x40372620, 0xf9aa: 0x00354488, 0xf9ab: 0x40354420,
-	0xf9ac: 0x00355888, 0xf9ad: 0x40355820, 0xf9ae: 0x00359c83, 0xf9af: 0x40359c20,
-	0xf9b0: 0x00359a88, 0xf9b1: 0x40359a20, 0xf9b2: 0x0035cc88, 0xf9b3: 0x4035cc20,
-	0xf9b4: 0x00360e88, 0xf9b5: 0x40360e20, 0xf9b6: 0x00362a88, 0xf9b7: 0x40362a20,
-	0xf9b8: 0x00363a88, 0xf9b9: 0x40363a20, 0xf9ba: 0x0035d488, 0xf9bb: 0x4035d420,
-	0xf9bc: 0x00364488, 0xf9bd: 0x40364420, 0xf9be: 0x00364c88, 0xf9bf: 0x40364c20,
-	// Block 0x3e7, offset 0xf9c0
-	0xf9c0: 0xa0000000, 0xf9c1: 0xa0000000, 0xf9c2: 0xa0000000, 0xf9c3: 0xa0000000,
-	0xf9c4: 0xa0000000, 0xf9c5: 0xa0000000, 0xf9c6: 0xa0000000, 0xf9c7: 0xa0000000,
-	0xf9c8: 0xa0000000, 0xf9c9: 0x40020020, 0xf9ca: 0x40020220, 0xf9cb: 0x40020420,
-	0xf9cc: 0x40020620, 0xf9cd: 0x40020820, 0xf9ce: 0xa0000000, 0xf9cf: 0xa0000000,
-	0xf9d0: 0xa0000000, 0xf9d1: 0xa0000000, 0xf9d2: 0xa0000000, 0xf9d3: 0xa0000000,
-	0xf9d4: 0xa0000000, 0xf9d5: 0xa0000000, 0xf9d6: 0xa0000000, 0xf9d7: 0xa0000000,
-	0xf9d8: 0xa0000000, 0xf9d9: 0xa0000000, 0xf9da: 0xa0000000, 0xf9db: 0xa0000000,
-	0xf9dc: 0xa0000000, 0xf9dd: 0xa0000000, 0xf9de: 0xa0000000, 0xf9df: 0xa0000000,
-	0xf9e0: 0x40021220, 0xf9e1: 0x4002ba20, 0xf9e2: 0x4003e020, 0xf9e3: 0x4004ea20,
-	0xf9e4: 0x4027de20, 0xf9e5: 0x4004ec20, 0xf9e6: 0x4004e620, 0xf9e7: 0x4003d220,
-	0xf9e8: 0x4003f420, 0xf9e9: 0x4003f620, 0xf9ea: 0x4004d820, 0xf9eb: 0x40093820,
-	0xf9ec: 0x40024020, 0xf9ed: 0x40021a20, 0xf9ee: 0x4002e420, 0xf9ef: 0x4004e220,
-	0xf9f0: 0x4029cc20, 0xf9f1: 0x4029ce20, 0xf9f2: 0x4029d020, 0xf9f3: 0x4029d220,
-	0xf9f4: 0x4029d420, 0xf9f5: 0x4029d620, 0xf9f6: 0x4029d820, 0xf9f7: 0x4029da20,
-	0xf9f8: 0x4029dc20, 0xf9f9: 0x4029de20, 0xf9fa: 0x40026c20, 0xf9fb: 0x40026220,
-	0xf9fc: 0x40094020, 0xf9fd: 0x40094220, 0xf9fe: 0x40094420, 0xf9ff: 0x4002c420,
-	// Block 0x3e8, offset 0xfa00
-	0xfa00: 0x4004d620, 0xfa01: 0xca3c27b1, 0xfa02: 0x002c0a88, 0xfa03: 0x002c3a88,
-	0xfa04: 0x002c6288, 0xfa05: 0xc39e0be1, 0xfa06: 0x002d0888, 0xfa07: 0x002d2288,
-	0xfa08: 0x002d6888, 0xfa09: 0x002d9a88, 0xfa0a: 0x002dcc88, 0xfa0b: 0xca373ad1,
-	0xfa0c: 0xc0030002, 0xfa0d: 0x002e8288, 0xfa0e: 0x002e9e88, 0xfa0f: 0xc3a30b21,
-	0xfa10: 0x002f2c88, 0xfa11: 0x002f5688, 0xfa12: 0x002f7a88, 0xfa13: 0x002fe688,
-	0xfa14: 0x00302c88, 0xfa15: 0xc3900b21, 0xfa16: 0x0030be88, 0xfa17: 0x0030e288,
-	0xfa18: 0x0030f688, 0xfa19: 0x00310088, 0xfa1a: 0x00312a88, 0xfa1b: 0x4003f820,
-	0xfa1c: 0x4004e420, 0xfa1d: 0x4003fa20, 0xfa1e: 0x40062420, 0xfa1f: 0x40021620,
-	0xfa20: 0x40061e20, 0xfa21: 0xca3927b1, 0xfa22: 0x402c0a20, 0xfa23: 0x402c3a20,
-	0xfa24: 0x402c6220, 0xfa25: 0xc39c0be1, 0xfa26: 0x402d0820, 0xfa27: 0x402d2220,
-	0xfa28: 0x402d6820, 0xfa29: 0x402d9a20, 0xfa2a: 0x402dcc20, 0xfa2b: 0x402dfe20,
-	0xfa2c: 0xc0000002, 0xfa2d: 0x402e8220, 0xfa2e: 0x402e9e20, 0xfa2f: 0xc3a00b21,
-	0xfa30: 0x402f2c20, 0xfa31: 0x402f5620, 0xfa32: 0x402f7a20, 0xfa33: 0x402fe620,
-	0xfa34: 0x40302c20, 0xfa35: 0xc38d0b21, 0xfa36: 0x4030be20, 0xfa37: 0x4030e220,
-	0xfa38: 0x4030f620, 0xfa39: 0x40310020, 0xfa3a: 0x40312a20, 0xfa3b: 0x4003fc20,
-	0xfa3c: 0x40094820, 0xfa3d: 0x4003fe20, 0xfa3e: 0x40094c20, 0xfa3f: 0xa0000000,
-	// Block 0x3e9, offset 0xfa40
-	0xfa40: 0xe0000983, 0xfa41: 0xe0000980, 0xfa42: 0xe00008fb, 0xfa43: 0xe00008f8,
-	0xfa44: 0xe000097d, 0xfa45: 0xe000097a, 0xfa46: 0xe0000a38, 0xfa47: 0xe0000a35,
-	0xfa48: 0xe0000a3e, 0xfa49: 0xe0000a3b, 0xfa4a: 0xe0000a4a, 0xfa4b: 0xe0000a47,
-	0xfa4c: 0xe0000a44, 0xfa4d: 0xe0000a41, 0xfa4e: 0xe0000a86, 0xfa4f: 0xe0000a83,
-	0xfa50: 0x002c62a3, 0xfa51: 0x402c6221, 0xfa52: 0xe0000b46, 0xfa53: 0xe0000b43,
-	0xfa54: 0xe0000aee, 0xfa55: 0xe0000aeb, 0xfa56: 0xe0000b2c, 0xfa57: 0xe0000b29,
-	0xfa58: 0x00320cc3, 0xfa59: 0x40320c22, 0xfa5a: 0xe0000b1a, 0xfa5b: 0xe0000b17,
-	0xfa5c: 0xe0000bb8, 0xfa5d: 0xe0000bb5, 0xfa5e: 0xe0000bb2, 0xfa5f: 0xe0000baf,
-	0xfa60: 0xe0000bc4, 0xfa61: 0xe0000bc1, 0xfa62: 0xe0000bca, 0xfa63: 0xe0000bc7,
-	0xfa64: 0xe0000bee, 0xfa65: 0xe0000beb, 0xfa66: 0xe0000c1b, 0xfa67: 0xe0000c18,
-	0xfa68: 0xe0000c51, 0xfa69: 0xe0000c4e, 0xfa6a: 0xe0000c60, 0xfa6b: 0xe0000c5d,
-	0xfa6c: 0xe0000c31, 0xfa6d: 0xe0000c2e, 0xfa6e: 0xe0000c5a, 0xfa6f: 0xe0000c57,
-	0xfa70: 0xe0000c54, 0xfa71: 0x402da220, 0xfa72: 0xf0000a0a, 0xfa73: 0xf0000404,
-	0xfa74: 0xe0000c8a, 0xfa75: 0xe0000c87, 0xfa76: 0xe0000c9f, 0xfa77: 0xe0000c9c,
-	0xfa78: 0x402f5621, 0xfa79: 0xe0000ccc, 0xfa7a: 0xe0000cc9, 0xfa7b: 0xe0000cd8,
-	0xfa7c: 0xe0000cd5, 0xfa7d: 0xe0000cd2, 0xfa7e: 0xe0000ccf, 0xfa7f: 0xe0000d04,
-	// Block 0x3ea, offset 0xfa80
-	0xfa80: 0xca3f3ae1, 0xfa81: 0xca413ae1, 0xfa82: 0xca433ae1, 0xfa83: 0xca453ae1,
-	0xfa84: 0xca473ae1, 0xfa85: 0xca493ae1, 0xfa86: 0xca4b3ae1, 0xfa87: 0xca4d3ae1,
-	0xfa88: 0xca4f3ae1, 0xfa89: 0xca513ae1, 0xfa8a: 0xca533ae1, 0xfa8b: 0xca553ae1,
-	0xfa8c: 0xca573ae1, 0xfa8d: 0xca593ae1, 0xfa8e: 0xca5b3ae1, 0xfa8f: 0xca5d3ae1,
-	0xfa90: 0xca5f3ae1, 0xfa91: 0xca613ae1, 0xfa92: 0xca633ae1, 0xfa93: 0xca653ae1,
-	0xfa94: 0xca673ae1, 0xfa95: 0xca693ae1, 0xfa96: 0xca6b3ae1, 0xfa97: 0xca6d3ae1,
-	0xfa98: 0xca6f3ae1, 0xfa99: 0xca713ae1, 0xfa9a: 0xca733ae1, 0xfa9b: 0xca773ae1,
-	0xfa9c: 0xca7d3ae1, 0xfa9d: 0xca813ae1, 0xfa9e: 0xca833ae1, 0xfa9f: 0xca853ae1,
-	0xfaa0: 0xca873ae1, 0xfaa1: 0xca893ae1, 0xfaa2: 0xca8b3ae1, 0xfaa3: 0xca8b3ae1,
-	0xfaa4: 0xe0003cf5, 0xfaa5: 0xe0003cf8, 0xfaa6: 0xe0003cfb, 0xfaa7: 0xe0003cfe,
-	0xfaa8: 0xe0003d01, 0xfaa9: 0xe0003d05, 0xfaaa: 0xe0003d08, 0xfaab: 0xca753ae1,
-	0xfaac: 0xca793ae1, 0xfaad: 0xca7b3ae1, 0xfaae: 0xca7f3ae1, 0xfaaf: 0xe0003d0c,
-	0xfab0: 0xe0003d0f, 0xfab1: 0xe0003d12, 0xfab2: 0xe0003d15, 0xfab3: 0xe0003d18,
-	0xfab4: 0xa0000000, 0xfab5: 0xa0000000, 0xfab6: 0xca903b41, 0xfab7: 0xca923b71,
-	0xfab8: 0x40501220, 0xfab9: 0x40501420, 0xfaba: 0x40501620, 0xfabb: 0xca8d3b11,
-	0xfabc: 0x40501a20, 0xfabd: 0x40501c20, 0xfabe: 0x40501e20, 0xfabf: 0x40502020,
-	// Block 0x3eb, offset 0xfac0
-	0xfac0: 0x40502220, 0xfac1: 0xca943b71, 0xfac2: 0x40502620, 0xfac3: 0x40502820,
-	0xfac4: 0xca963b71, 0xfac5: 0x40502c20, 0xfac6: 0x40503020, 0xfac7: 0x40503420,
-	0xfac8: 0xadc11802, 0xfac9: 0xadc11b02, 0xfaca: 0xadc11c02, 0xfacb: 0xadc11a02,
-	0xfacc: 0xa0005f02, 0xfacd: 0xadc11d02, 0xface: 0xadc11402, 0xfacf: 0xadc11502,
-	0xfad0: 0xadc11702, 0xfad1: 0xadc11602, 0xfad2: 0x82092817, 0xfad3: 0xa0000000,
-	0xfad4: 0x40032620, 0xfad5: 0x40032820, 0xfad6: 0x4002ac20, 0xfad7: 0x4027bc20,
-	0xfad8: 0xe0003c55, 0xfad9: 0x4005be20, 0xfada: 0x4005c020, 0xfadb: 0x4027f620,
-	0xfadc: 0x404fea20, 0xfadd: 0xadc11902,
-	0xfae0: 0xe00001b5, 0xfae1: 0xe0000249, 0xfae2: 0xe0000361, 0xfae3: 0xe000043b,
-	0xfae4: 0xe0000510, 0xfae5: 0xe00005da, 0xfae6: 0xe00006a5, 0xfae7: 0xe000074d,
-	0xfae8: 0xe00007f9, 0xfae9: 0xe000089e,
-	0xfaf0: 0xe00001b8, 0xfaf1: 0xe000024c, 0xfaf2: 0xe0000364, 0xfaf3: 0xe000043e,
-	0xfaf4: 0xe0000513, 0xfaf5: 0xe00005dd, 0xfaf6: 0xe00006a8, 0xfaf7: 0xe0000750,
-	0xfaf8: 0xe00007fc, 0xfaf9: 0xe00008a1,
-	// Block 0x3ec, offset 0xfb00
-	0xfb02: 0x40439020, 0xfb03: 0x40439220,
-	0xfb05: 0x40437020, 0xfb06: 0x40437220, 0xfb07: 0x40437420,
-	0xfb08: 0x40437620, 0xfb09: 0x40437820, 0xfb0a: 0x40437a20, 0xfb0b: 0x40437c20,
-	0xfb0c: 0x40438020, 0xfb0e: 0x40438420, 0xfb0f: 0x40438620,
-	0xfb10: 0x40438820, 0xfb12: 0x40438a20, 0xfb13: 0x40438c20,
-	0xfb14: 0x40438e20, 0xfb15: 0x40439020, 0xfb16: 0x40439220, 0xfb17: 0x40439420,
-	0xfb18: 0x40439620, 0xfb19: 0x40439820, 0xfb1a: 0x40439a20, 0xfb1b: 0x40439c20,
-	0xfb1c: 0x40439e20, 0xfb1d: 0x4043a020, 0xfb1e: 0x4043a220, 0xfb1f: 0x4043a420,
-	0xfb20: 0x4043a620, 0xfb21: 0x4043a820, 0xfb22: 0x4043aa20, 0xfb23: 0x4043ac20,
-	0xfb24: 0x4043ae20, 0xfb25: 0x4043b020, 0xfb26: 0x4043b220, 0xfb27: 0x4043b420,
-	0xfb28: 0x4043b620, 0xfb2a: 0x4043b820, 0xfb2b: 0x4043ba20,
-	0xfb2c: 0x4043bc20, 0xfb2d: 0x4043be20, 0xfb2e: 0x4043c020, 0xfb2f: 0x4043c220,
-	0xfb30: 0x4043c420, 0xfb31: 0x4043c620, 0xfb32: 0x4043c820, 0xfb33: 0x4043d420,
-	0xfb35: 0x4043ca20, 0xfb36: 0x4043cc20, 0xfb37: 0x4043ce20,
-	0xfb38: 0x4043d020, 0xfb39: 0x4043d220,
-	0xfb3c: 0xa070f102, 0xfb3d: 0x4043d820, 0xfb3e: 0x4043de20, 0xfb3f: 0xc06a0311,
-	// Block 0x3ed, offset 0xfb40
-	0xfb40: 0x4043e220, 0xfb41: 0x4043e420, 0xfb42: 0x4043e620, 0xfb43: 0x4043e820,
-	0xfb44: 0x4043ea20, 0xfb46: 0xc06c0341, 0xfb47: 0x4043f220,
-	0xfb48: 0x4043f420, 0xfb4a: 0xc0710311, 0xfb4b: 0x4043f820,
-	0xfb4c: 0x4043fa20, 0xfb4d: 0x820921fe,
-	0xfb55: 0x4043fe20, 0xfb56: 0x40440020,
-	0xfb5e: 0x4043d620,
-	0xfb60: 0x40437e20, 0xfb61: 0x40438220, 0xfb62: 0x4043ec20, 0xfb63: 0x4043ee20,
-	0xfb66: 0xe0000182, 0xfb67: 0xe0000213,
-	0xfb68: 0xe000032e, 0xfb69: 0xe0000408, 0xfb6a: 0xe00004dd, 0xfb6b: 0xe00005a7,
-	0xfb6c: 0xe0000672, 0xfb6d: 0xe000071a, 0xfb6e: 0xe00007c6, 0xfb6f: 0xe000086b,
-	0xfb71: 0x40439420, 0xfb72: 0x40439620,
-	// Block 0x3ee, offset 0xfb80
-	0xfb80: 0xf0000404, 0xfb81: 0xf0000404, 0xfb82: 0xf0000404, 0xfb83: 0xf0000404,
-	0xfb84: 0xf0000404, 0xfb85: 0xf0000404, 0xfb86: 0xf0000404, 0xfb87: 0xf0000404,
-	0xfb88: 0xf0000404, 0xfb89: 0xf0000404, 0xfb8a: 0xf0000404, 0xfb8b: 0xf0000404,
-	0xfb8c: 0xf0000404, 0xfb8d: 0xf0000404, 0xfb8e: 0xe000004c, 0xfb8f: 0xe0000051,
-	0xfb90: 0xe0000056, 0xfb91: 0xe000005b, 0xfb92: 0xe0000060, 0xfb93: 0xe0000065,
-	0xfb94: 0xe000006a, 0xfb95: 0xe000006f, 0xfb96: 0xe0000083, 0xfb97: 0xe000008d,
-	0xfb98: 0xe0000092, 0xfb99: 0xe0000097, 0xfb9a: 0xe000009c, 0xfb9b: 0xe00000a1,
-	0xfb9c: 0xe0000088, 0xfb9d: 0xe0000074, 0xfb9e: 0xe000007c,
-	0xfba0: 0xe00028cc, 0xfba1: 0xe00028dc, 0xfba2: 0xe00028d4, 0xfba3: 0xe000290c,
-	0xfba4: 0xe00028e0, 0xfba5: 0xe00028f4, 0xfba6: 0xe00028d0, 0xfba7: 0xe00028f0,
-	0xfba8: 0xe00028d8, 0xfba9: 0xe00028fc, 0xfbaa: 0xe000291c, 0xfbab: 0xe0002930,
-	0xfbac: 0xe000292c, 0xfbad: 0xe0002924, 0xfbae: 0xe0002958, 0xfbaf: 0xe0002910,
-	0xfbb0: 0xe0002918, 0xfbb1: 0xe0002928, 0xfbb2: 0xe0002920, 0xfbb3: 0xe000293c,
-	0xfbb4: 0xe0002904, 0xfbb5: 0xe0002934, 0xfbb6: 0xe0002950, 0xfbb7: 0xe0002940,
-	0xfbb8: 0xf0000404, 0xfbb9: 0xe00028e4, 0xfbba: 0xe0002908, 0xfbbb: 0xf0000404,
-	0xfbbc: 0xe0002938, 0xfbbd: 0xe00028e8, 0xfbbe: 0xe0002954, 0xfbbf: 0xe0002900,
-	// Block 0x3ef, offset 0xfbc0
-	0xfbc0: 0xe0008111, 0xfbc1: 0xe0008704, 0xfbc3: 0xe0009605,
-	0xfbc7: 0xe00059e2,
-	0xfbc8: 0xe00082d9, 0xfbc9: 0xe0006807, 0xfbca: 0xe000685b, 0xfbcb: 0xe0009ba8,
-	0xfbcd: 0xe0006344,
-	0xfbd1: 0xe0009471,
-	0xfbd4: 0xe0008e00, 0xfbd5: 0xe0006503, 0xfbd6: 0xe0006bd3,
-	0xfbd8: 0xe0004805, 0xfbd9: 0xe00061d3,
-	0xfbde: 0xe0006f79, 0xfbdf: 0xe0008ac2,
-	0xfbe6: 0xe0006217,
-	0xfbeb: 0xe0007199,
-	0xfbed: 0xe0008b9c,
-	0xfbf0: 0xe000632c, 0xfbf1: 0xe0004654, 0xfbf2: 0xe00045a1,
-	0xfbf8: 0xe000a16b, 0xfbf9: 0xe0004ee5, 0xfbfb: 0xe0008a4a,
-	// Block 0x3f0, offset 0xfc00
-	0xfc02: 0xe000779e, 0xfc03: 0xe0004dcf,
-	0xfc05: 0xe0004808,
-	0xfc0b: 0xe0008c10,
-	0xfc0d: 0xe000668e, 0xfc0e: 0xe0009fd3, 0xfc0f: 0xe0009b9c,
-	0xfc16: 0xe000472d,
-	0xfc18: 0xe0006f7d, 0xfc19: 0xe0007f61,
-	0xfc1d: 0xe000480b, 0xfc1e: 0xe000410f, 0xfc1f: 0xe00073bb,
-	0xfc27: 0xe00052c3,
-	0xfc2b: 0xe0003e6f,
-	0xfc2c: 0xe000411f, 0xfc2d: 0xe00051dc,
-	0xfc33: 0xe0007dca,
-	0xfc36: 0xe00062e8, 0xfc37: 0xe00067f3,
-	0xfc3c: 0xe0008b98, 0xfc3e: 0xe00040c7,
-	// Block 0x3f1, offset 0xfc40
-	0xfc42: 0xe0005366,
-	0xfc46: 0xe0005756,
-	0xfc48: 0xe000756c, 0xfc4b: 0xe0006691,
-	0xfc4c: 0xe0008014, 0xfc4e: 0xe0007b81, 0xfc4f: 0xe0007be1,
-	0xfc50: 0xe0007c95, 0xfc51: 0xe0007c45, 0xfc52: 0xe0009fd6,
-	0xfc54: 0xe0007813, 0xfc55: 0xe0008708,
-	0xfc58: 0xe0004bee, 0xfc59: 0xe0004bfe, 0xfc5b: 0xe0006694,
-	0xfc5e: 0xe0007163, 0xfc5f: 0xe0004afe,
-	0xfc61: 0xe0005a76, 0xfc62: 0xe0009cfa,
-	0xfc64: 0xe0004781, 0xfc65: 0xe0009d4a, 0xfc66: 0xe0007596,
-	0xfc68: 0xe0009f3c, 0xfc6b: 0xe0009dc9,
-	0xfc6c: 0xe0004250, 0xfc6d: 0xe000870c, 0xfc6e: 0xe000544c,
-	0xfc73: 0xe0005ec7,
-	0xfc74: 0xe0007be4, 0xfc76: 0xe0004ee9,
-	0xfc79: 0xe0005de1, 0xfc7a: 0xe00080a1,
-	// Block 0x3f2, offset 0xfc80
-	0xfc80: 0xe0007150, 0xfc81: 0xe00080a5,
-	0xfc84: 0xe0009547, 0xfc86: 0xe00063c2, 0xfc87: 0xe000480e,
-	0xfc8a: 0xe0004b72, 0xfc8b: 0xe0003ffb,
-	0xfc8d: 0xe0008179,
-	0xfc94: 0xe000818d, 0xfc95: 0xe0006697, 0xfc96: 0xe0009666, 0xfc97: 0xe00082dd,
-	0xfc98: 0xe0006347, 0xfc99: 0xe0006a0b,
-	0xfc9d: 0xe00051ec, 0xfc9e: 0xe00080e5, 0xfc9f: 0xe00090b7,
-	0xfca1: 0xe000a492, 0xfca3: 0xe0005079,
-	0xfca4: 0xe00055bf, 0xfca5: 0xe0008017,
-	0xfcae: 0xe0003d72,
-	0xfcb0: 0xe00072e2, 0xfcb2: 0xe0008ba0, 0xfcb3: 0xe0006581,
-	0xfcb5: 0xe000786a, 0xfcb6: 0xe00040cb, 0xfcb7: 0xe0003ffe,
-	0xfcbb: 0xe000813d,
-	0xfcbf: 0xe0006013,
-	// Block 0x3f3, offset 0xfcc0
-	0xfcc0: 0xe0008a04, 0xfcc1: 0xe0004c06,
-	0xfcc9: 0xe0009cfe, 0xfcca: 0xe000801a, 0xfccb: 0xe0004bba,
-	0xfccd: 0xe0007816, 0xfcce: 0xe0004c09, 0xfccf: 0xe000627c,
-	0xfcd0: 0xe00060eb, 0xfcd1: 0xe000a40c,
-	0xfcef: 0xe000608f,
-	0xfcf0: 0xe0004432,
-	0xfcf4: 0xe0005edf, 0xfcf6: 0xe00055c3,
-	0xfcf8: 0xe0007078, 0xfcfa: 0xe000669a,
-	0xfcfc: 0xe000669d, 0xfcfd: 0xe0003d1b,
-	// Block 0x3f4, offset 0xfd00
-	0xfd02: 0xe00087e0, 0xfd03: 0xe0008520,
-	0xfd06: 0xe0004eed, 0xfd07: 0xe000841a,
-	0xfd08: 0xe0009a1d, 0xfd09: 0xe00048a7, 0xfd0b: 0xe0006c66,
-	0xfd0d: 0xe0007d55, 0xfd0e: 0xe000841d, 0xfd0f: 0xe0008a4d,
-	0xfd10: 0xe0008a2c, 0xfd11: 0xe0007b84, 0xfd13: 0xe0006463,
-	0xfd14: 0xe00086b4, 0xfd15: 0xe0009bab, 0xfd16: 0xe0009b6c, 0xfd17: 0xe0009690,
-	0xfd19: 0xe000756f, 0xfd1a: 0xe0008115, 0xfd1b: 0xe00064af,
-	0xfd1c: 0xe0008229, 0xfd1d: 0xe00048aa, 0xfd1e: 0xe0004e1c, 0xfd1f: 0xe0009871,
-	0xfd29: 0xe000991b, 0xfd2a: 0xe000a2af,
-	0xfd2f: 0xe0007418,
-	0xfd30: 0xe0006093, 0xfd33: 0xe0003d1e,
-	0xfd36: 0xe0004d36,
-	0xfd38: 0xe00046a0, 0xfd39: 0xe0004a28, 0xfd3a: 0xe0008524, 0xfd3b: 0xe000892e,
-	0xfd3c: 0xe00047cc, 0xfd3d: 0xe0008e2a, 0xfd3e: 0xe0008119, 0xfd3f: 0xe00066a0,
-	// Block 0x3f5, offset 0xfd40
-	0xfd41: 0xe000707c, 0xfd43: 0xe0003de3,
-	0xfd44: 0xe0008d68, 0xfd46: 0xe000542a,
-	0xfd48: 0xe0009563, 0xfd49: 0xe00045c9, 0xfd4a: 0xe00046b8, 0xfd4b: 0xe0005637,
-	0xfd4d: 0xe0006fa9, 0xfd4f: 0xe0008a50,
-	0xfd51: 0xe0007dcd,
-	0xfd54: 0xe0005c36, 0xfd56: 0xe000582b, 0xfd57: 0xe0005230,
-	0xfd58: 0xe0008e03, 0xfd5a: 0xe0006ef8, 0xfd5b: 0xe0004531,
-	0xfd5c: 0xe0008ac5, 0xfd5d: 0xe0007fbd,
-	0xfd6e: 0xe0005bee, 0xfd6f: 0xe000a32d,
-	0xfd72: 0xe0008d44,
-	0xfd75: 0xe0009611, 0xfd76: 0xe0005498,
-	0xfd7b: 0xe0009757,
-	0xfd7f: 0xe000996f,
-	// Block 0x3f6, offset 0xfd80
-	0xfd81: 0xe0007be7, 0xfd82: 0xe0004354, 0xfd83: 0xe0009333,
-	0xfd84: 0xe0007166, 0xfd85: 0xe00048ad,
-	0xfd89: 0xe0007819, 0xfd8a: 0xe0008b0c,
-	0xfd8c: 0xe0006267, 0xfd8e: 0xe00088a4, 0xfd8f: 0xe0006c69,
-	0xfd90: 0xe00058ee, 0xfd91: 0xe0007afd, 0xfd93: 0xe0004254,
-	0xfd94: 0xe0009e54, 0xfd97: 0xe0006cab,
-	0xfd98: 0xe00063c5, 0xfd9a: 0xe00058a3, 0xfd9b: 0xe0005b87,
-	0xfd9d: 0xe0006237, 0xfd9f: 0xe00066a3,
-	0xfda0: 0xe0009ef0, 0xfda1: 0xe0007080, 0xfda3: 0xe000786d,
-	0xfdae: 0xe0006d4a, 0xfdaf: 0xe000634a,
-	0xfdb0: 0xe000a132, 0xfdb1: 0xe0004811, 0xfdb3: 0xe000604a,
-	0xfdb4: 0xe0009103, 0xfdb5: 0xe0009aa6, 0xfdb6: 0xe0006e70,
-	0xfdb8: 0xe00062ec, 0xfdba: 0xe0007522,
-	0xfdbe: 0xe0006584,
-	// Block 0x3f7, offset 0xfdc0
-	0xfdc0: 0xe0008fa2, 0xfdc2: 0xe00061d7,
-	0xfdc5: 0xe0006f40, 0xfdc6: 0xe0005450,
-	0xfdc9: 0xe0008f4a, 0xfdcb: 0xe0004001,
-	0xfdcd: 0xe0006047, 0xfdcf: 0xe0006e74,
-	0xfdd1: 0xe0005d50, 0xfdd2: 0xe00050c7,
-	0xfdd4: 0xe0004996, 0xfdd6: 0xe0009db1,
-	0xfdd8: 0xe0005035, 0xfdd9: 0xe000a330, 0xfdda: 0xe0007fc0,
-	0xfddc: 0xe000905b, 0xfdde: 0xe0004258, 0xfddf: 0xe0008e06,
-	0xfde1: 0xe0008f4e, 0xfde2: 0xe000920b, 0xfde3: 0xe0005fa3,
-	0xfde4: 0xe0009566, 0xfde5: 0xe0004571, 0xfde6: 0xe00049c2, 0xfde7: 0xe00089c0,
-	0xfde8: 0xe000406d, 0xfde9: 0xe0009107, 0xfdea: 0xe00077a1, 0xfdeb: 0xe000582f,
-	0xfdec: 0xe00096b7, 0xfded: 0xe0007a20, 0xfdee: 0xe0005327,
-	0xfdf0: 0xe000589b,
-	0xfdfb: 0xe00073be,
-	// Block 0x3f8, offset 0xfe00
-	0xfe03: 0xe00074e2,
-	0xfe04: 0xe0004d87, 0xfe07: 0xe0003d21,
-	0xfe08: 0xe0004163, 0xfe09: 0xe0007d58, 0xfe0a: 0xe0007bea,
-	0xfe0e: 0xe0007a3e, 0xfe0f: 0xe0009973,
-	0xfe13: 0xe00071f2,
-	0xfe15: 0xe0009d4d, 0xfe16: 0xe0008e2d,
-	0xfe18: 0xe0003e43, 0xfe1a: 0xe0008a53,
-	0xfe1c: 0xe0008710,
-	0xfe20: 0xe0007aad, 0xfe22: 0xe00092dc,
-	0xfe25: 0xe00040cf,
-	0xfe2a: 0xe0009ba4,
-	0xfe30: 0xe0006aff, 0xfe32: 0xe0006ffd,
-	0xfe34: 0xe0009543, 0xfe35: 0xe0008714, 0xfe36: 0xe0007b87,
-	0xfe38: 0xe0009856,
-	// Block 0x3f9, offset 0xfe40
-	0xfe40: 0xe0004730,
-	0xfe45: 0xe000634d,
-	0xfe4b: 0xe0003fb7,
-	0xfe4d: 0xe0005fa7,
-	0xfe51: 0xe0004113, 0xfe52: 0xe0009fbb,
-	0xfe54: 0xe000422c, 0xfe56: 0xe0008fa6,
-	0xfe58: 0xe0006793, 0xfe59: 0xe0006506, 0xfe5a: 0xe000a315, 0xfe5b: 0xe0007b59,
-	0xfe5d: 0xe0009783, 0xfe5e: 0xe0006742,
-	0xfe62: 0xe0003d75,
-	0xfe6c: 0xe00093b7, 0xfe6d: 0xe0007b01, 0xfe6e: 0xe0008931,
-	0xfe72: 0xe000781c, 0xfe73: 0xe0008528,
-	0xfe74: 0xe00048b0, 0xfe75: 0xe0008fee, 0xfe77: 0xe000685f,
-	0xfe7d: 0xe0008369, 0xfe7e: 0xe000425c, 0xfe7f: 0xe00074fa,
-	// Block 0x3fa, offset 0xfe80
-	0xfe82: 0xe00057cd,
-	0xfe84: 0xe0009ad0, 0xfe85: 0xe0004b0e,
-	0xfe89: 0xe000919b, 0xfe8a: 0xe0006a0f,
-	0xfe8f: 0xe0006863,
-	0xfe91: 0xe0004784,
-	0xfe95: 0xe0006280, 0xfe96: 0xe000a4da,
-	0xfe9a: 0xe0005759, 0xfe9b: 0xe0004cc6,
-	0xfe9e: 0xe0007d5b,
-	0xfea2: 0xe000910b,
-	0xfea5: 0xe0007a59, 0xfea6: 0xe000941d, 0xfea7: 0xe0006f81,
-	0xfea9: 0xe0009c4e,
-	0xfeac: 0xe00092df, 0xfead: 0xe0008ee2, 0xfeae: 0xe0005234,
-	0xfeb5: 0xe0003fbb,
-	0xfeb9: 0xe0003d24, 0xfebb: 0xe000613b,
-	0xfebe: 0xe0007333, 0xfebf: 0xe00066a6,
-	// Block 0x3fb, offset 0xfec0
-	0xfec0: 0xe0007fc3, 0xfec1: 0xe0008b10, 0xfec2: 0xe0004e5c, 0xfec3: 0xe000910f,
-	0xfec4: 0xe00074ca, 0xfec6: 0xe0004260, 0xfec7: 0xe0009ea4,
-	0xfec9: 0xe000412b, 0xfecb: 0xe0004fc5,
-	0xfed0: 0xe000663a, 0xfed2: 0xe0007dd0, 0xfed3: 0xe00050a9,
-	0xfed4: 0xe0008ac8, 0xfed5: 0xe0008871, 0xfed7: 0xe0007ff6,
-	0xfed8: 0xe0008d48, 0xfeda: 0xe0005b3b, 0xfedb: 0xe0005d35,
-	0xfedc: 0xe0004e20, 0xfedf: 0xe0006867,
-	0xfee1: 0xe000571d, 0xfee2: 0xe00054ce,
-	0xfee4: 0xe0009a6e, 0xfee5: 0xe0007ec1, 0xfee7: 0xe0008ea6,
-	0xfeea: 0xe0007b8a, 0xfeeb: 0xe000a04e,
-	0xfef1: 0xe0005701, 0xfef2: 0xe0008420, 0xfef3: 0xe0008f0a,
-	0xfef5: 0xe0006e78, 0xfef7: 0xe000549b,
-	0xfef9: 0xe0008eaa, 0xfefa: 0xe0004d56, 0xfefb: 0xe0005039,
-	0xfefc: 0xe0007526,
-	// Block 0x3fc, offset 0xff00
-	0xff00: 0xe000790d, 0xff01: 0xe0007ec5, 0xff03: 0xe0007ca1,
-	0xff04: 0xe0009f40, 0xff05: 0xe00094d1, 0xff06: 0xe00088a7, 0xff07: 0xe000a43a,
-	0xff08: 0xe0006a13, 0xff09: 0xe00046bc, 0xff0b: 0xe0004ae2,
-	0xff0c: 0xe00097af, 0xff0d: 0xe0005b5b, 0xff0e: 0xe0009805,
-	0xff12: 0xe0007169,
-	0xff15: 0xe0007000, 0xff17: 0xe000763e,
-	0xff1a: 0xe000503d,
-	0xff1c: 0xe0005270,
-	0xff22: 0xe0004bf2,
-	0xff25: 0xe000816d, 0xff27: 0xe0004dd2,
-	0xff28: 0xe000852c, 0xff29: 0xe0005454, 0xff2a: 0xe0007dd3, 0xff2b: 0xe0009907,
-	0xff2c: 0xe0004535, 0xff2d: 0xe000581b, 0xff2e: 0xe0009fa0,
-	0xff31: 0xe0004539,
-	0xff35: 0xe00061db, 0xff36: 0xe0004c0c, 0xff37: 0xe0004814,
-	0xff38: 0xe0008530,
-	0xff3c: 0xe0004214,
-	// Block 0x3fd, offset 0xff40
-	0xff40: 0xe0004c0f,
-	0xff46: 0xe0007568,
-	0xff49: 0xe00076b6, 0xff4a: 0xe0009018,
-	0xff4d: 0xe00083b5, 0xff4f: 0xe0004304,
-	0xff52: 0xe0005bf1, 0xff53: 0xe00048b3,
-	0xff55: 0xe0005b5f, 0xff57: 0xe0007b05,
-	0xff58: 0xe0007e54,
-	0xff60: 0xe0004614, 0xff63: 0xe000953a,
-	0xff64: 0xe0007d09, 0xff65: 0xe0005bab,
-	0xff6a: 0xe0005b4b,
-	0xff6c: 0xe00051f0,
-	0xff70: 0xe000667e, 0xff71: 0xe000a051, 0xff72: 0xe00094e9,
-	0xff76: 0xe00073c1, 0xff77: 0xe000543c,
-	0xff7d: 0xe000556f,
-	// Block 0x3fe, offset 0xff80
-	0xff84: 0xe0009040, 0xff85: 0xe0004435, 0xff86: 0xe0008b14,
-	0xff89: 0xe0005458, 0xff8a: 0xe000923f, 0xff8b: 0xe00088aa,
-	0xff8c: 0xe0005883, 0xff8d: 0xe00051f4,
-	0xff92: 0xe0007ff9,
-	0xff94: 0xe0008faa,
-	0xff9b: 0xe0005877,
-	0xff9c: 0xe0005873, 0xff9d: 0xe0007fad, 0xff9e: 0xe000a4dd,
-	0xffa0: 0xe0004a2b, 0xffa1: 0xe0006103,
-	0xffa9: 0xe0005c7f,
-	0xffad: 0xe0006682,
-	0xffb0: 0xe000a1f7, 0xffb1: 0xe0004004, 0xffb3: 0xe00052ef,
-	0xffb4: 0xe0006686, 0xffb6: 0xe000a43e,
-	0xffb8: 0xe000914b, 0xffb9: 0xe0007a5c, 0xffba: 0xe00094c1,
-	0xffbd: 0xe0009c7e,
-	// Block 0x3ff, offset 0xffc0
-	0xffc0: 0xe00050ca, 0xffc1: 0xe0008934, 0xffc3: 0xe00080a9,
-	0xffc6: 0xe0006417, 0xffc7: 0xe0008664,
-	0xffc8: 0xe00077a4, 0xffca: 0xe0003de7,
-	0xffce: 0xe0005d54,
-	0xffd1: 0xe0009f44, 0xffd3: 0xe00079dc,
-	0xffd6: 0xe0007d4d, 0xffd7: 0xe0005573,
-	0xffdd: 0xe000928b,
-	0xffe4: 0xe00098df, 0xffe5: 0xe00061bb, 0xffe6: 0xe000415b, 0xffe7: 0xe000415f,
-	0xffe9: 0xe00058a6, 0xffea: 0xe0006797,
-	0xffee: 0xe0004690,
-	0xfff0: 0xe00050cd, 0xfff1: 0xe0008fae, 0xfff2: 0xe0004a8b, 0xfff3: 0xe0004438,
-	0xfff6: 0xe000882c, 0xfff7: 0xe0006d2f,
-	0xfff8: 0xe00049c6, 0xfff9: 0xe0008ec6, 0xfffa: 0xe0008190, 0xfffb: 0xe0003d9f,
-	// Block 0x400, offset 0x10000
-	0x10003: 0xe000924f,
-	0x10004: 0xe0004308, 0x10007: 0xe00095e1,
-	0x10009: 0xe0008a3b, 0x1000a: 0xe000677b, 0x1000b: 0xe0004ae6,
-	0x1000c: 0xe00053a2, 0x1000d: 0xe0008534,
-	0x10014: 0xe000905f, 0x10015: 0xe0006587, 0x10016: 0xe0006350, 0x10017: 0xe0008291,
-	0x1001a: 0xe0006745, 0x1001b: 0xe0003f57,
-	0x1001d: 0xe0005e7b, 0x1001e: 0xe0004cc9, 0x1001f: 0xe0009173,
-	0x10021: 0xe0006b1f,
-	0x10029: 0xe000817d, 0x1002a: 0xe0008538,
-	0x1002f: 0xe0006353,
-	0x10032: 0xe0009c72,
-	0x10034: 0xe0004034, 0x10035: 0xe0008f52, 0x10037: 0xe00067c3,
-	0x1003a: 0xe00058f1,
-	0x1003d: 0xe0009aa9, 0x1003f: 0xe000928e,
-	// Block 0x401, offset 0x10040
-	0x10042: 0xe0004a2e, 0x10043: 0xe000a2ca,
-	0x10047: 0xe0004aea,
-	0x10048: 0xe000613f, 0x10049: 0xe00057e2,
-	0x1004d: 0xe000412f,
-	0x10051: 0xe000882f, 0x10052: 0xe0004133, 0x10053: 0xe0007ffc,
-	0x10057: 0xe0008eae,
-	0x10058: 0xe00059b0, 0x1005b: 0xe00054ef,
-	0x1005f: 0xe000453d,
-	0x10060: 0xe0003d27, 0x10063: 0xe0005577,
-	0x10064: 0xe0004b12,
-	0x10069: 0xe00088ad, 0x1006a: 0xe0004e2c, 0x1006b: 0xe000414f,
-	0x1006c: 0xe00048b6, 0x1006d: 0xe00092e2,
-	0x1007e: 0xe0009da1,
-	// Block 0x402, offset 0x10080
-	0x10081: 0xe0004264, 0x10083: 0xe0005f63,
-	0x10085: 0xe00095e5, 0x10087: 0xe0007b09,
-	0x10089: 0xe0005b63,
-	0x1008c: 0xe00049ea, 0x1008d: 0xe0004268,
-	0x10092: 0xe0005867,
-	0x10095: 0xe00051f8, 0x10096: 0xe0007c1d,
-	0x10098: 0xe0003eaf, 0x10099: 0xe0005cf3, 0x1009b: 0xe000a375,
-	0x1009d: 0xe0006f85, 0x1009e: 0xe000564c, 0x1009f: 0xe0005bf4,
-	0x100a0: 0xe0005827, 0x100a1: 0xe0009ad3, 0x100a2: 0xe0006bd6, 0x100a3: 0xe00084a4,
-	0x100a4: 0xe0004b16, 0x100a6: 0xe00092e5,
-	0x100b3: 0xe000a379,
-	0x100b5: 0xe000549e,
-	0x100b8: 0xe00049ca, 0x100ba: 0xe000822d, 0x100bb: 0xe0004abe,
-	0x100be: 0xe0004817, 0x100bf: 0xe0005d9c,
-	// Block 0x403, offset 0x100c0
-	0x100c1: 0xe0005d80, 0x100c2: 0xe0004dde, 0x100c3: 0xe0004037,
-	0x100c5: 0xe0009a20,
-	0x100c8: 0xe000a442, 0x100ca: 0xe0004952,
-	0x100cc: 0xe0009cde, 0x100cd: 0xe0009a23, 0x100cf: 0xe0009a26,
-	0x100d0: 0xe0006284,
-	0x100d5: 0xe0006509, 0x100d6: 0xe000a108, 0x100d7: 0xe0006413,
-	0x100d9: 0xe0006fac,
-	0x100e0: 0xe00082e1, 0x100e1: 0xe00046c0, 0x100e3: 0xe0003f3b,
-	0x100e7: 0xe0009f20,
-	0x100ea: 0xe000650c,
-	0x100ef: 0xe000a273,
-	0x100f1: 0xe0004a31,
-	0x100f6: 0xe00048b9,
-	0x100f9: 0xe0009b44,
-	0x100fd: 0xe00074fe, 0x100fe: 0xe0009997, 0x100ff: 0xe0004ecc,
-	// Block 0x404, offset 0x10100
-	0x10100: 0xe000481a, 0x10101: 0xe0007154, 0x10103: 0xe00090bb,
-	0x10104: 0xe0008171, 0x10105: 0xe000683f, 0x10107: 0xe0006f89,
-	0x10108: 0xe000781f, 0x10109: 0xe000a3d9, 0x1010a: 0xe0005ee3,
-	0x1010d: 0xe00059e6,
-	0x10111: 0xe000650f, 0x10112: 0xe00089b4, 0x10113: 0xe00096bb,
-	0x10114: 0xe0009ef4, 0x10117: 0xe0004d9f,
-	0x1011a: 0xe0005e7f,
-	0x1011c: 0xe0006288, 0x1011e: 0xe000617f,
-	0x10120: 0xe0008690, 0x10121: 0xe00082c5,
-	0x10126: 0xe0004718,
-	0x10128: 0xe0006acb,
-	0x1012c: 0xe00072fe, 0x1012e: 0xe00095ab, 0x1012f: 0xe0005cc3,
-	0x10130: 0xe00080ad, 0x10131: 0xe0007d5e, 0x10132: 0xe0006c6c, 0x10133: 0xe0008bb4,
-	0x10134: 0xe0003da3, 0x10135: 0xe000536a, 0x10137: 0xe00049ce,
-	0x10138: 0xe0006748, 0x10139: 0xe000a436, 0x1013a: 0xe0004b4a, 0x1013b: 0xe0003dcb,
-	0x1013d: 0xe0008bb0, 0x1013e: 0xe00071f6, 0x1013f: 0xe000426c,
-	// Block 0x405, offset 0x10140
-	0x10144: 0xe000736f,
-	0x10153: 0xe0007312,
-	0x10156: 0xe0006017,
-	0x10158: 0xe00058a9, 0x1015a: 0xe000a333,
-	0x1015d: 0xe0008937, 0x1015f: 0xe0007ca5,
-	0x10160: 0xe000954b,
-	0x10165: 0xe0004a02, 0x10166: 0xe0009bae,
-	0x1016a: 0xe0004b4e,
-	0x1016d: 0xe000768e, 0x1016e: 0xe0007003,
-	0x10172: 0xe00054d1,
-	0x10179: 0xe00048bc, 0x1017b: 0xe0004070,
-	// Block 0x406, offset 0x10180
-	0x10183: 0xe0008ee6,
-	0x10185: 0xe0008f0e,
-	0x10188: 0xe0007b8d, 0x10189: 0xe0008e09, 0x1018a: 0xe0004bbe, 0x1018b: 0xe0007b90,
-	0x1018d: 0xe0005ee7,
-	0x10194: 0xe0006e40, 0x10196: 0xe0009510, 0x10197: 0xe0006d4d,
-	0x1019b: 0xe0005eeb,
-	0x1019f: 0xe0006e01,
-	0x101a1: 0xe00077a7, 0x101a2: 0xe0009377, 0x101a3: 0xe000481d,
-	0x101a4: 0xe00043c0, 0x101a5: 0xe0004820, 0x101a6: 0xe0005603,
-	0x101a8: 0xe000513f, 0x101a9: 0xe00043c3, 0x101aa: 0xe0008c13, 0x101ab: 0xe0004a5e,
-	0x101ac: 0xe0006bf7, 0x101ad: 0xe000990b, 0x101ae: 0xe00087e4, 0x101af: 0xe0003d2a,
-	0x101b0: 0xe00097b2, 0x101b1: 0xe0008d6c, 0x101b2: 0xe00066a9, 0x101b3: 0xe0007b93,
-	0x101b4: 0xe00048bf, 0x101b5: 0xe00098b5, 0x101b6: 0xe0009f24,
-	0x101b8: 0xe00066ac,
-	// Block 0x407, offset 0x101c0
-	0x101c1: 0xe0007bed, 0x101c3: 0xe000a482,
-	0x101c4: 0xe0003da7,
-	0x101c8: 0xe0009cc2, 0x101c9: 0xe0004d3a, 0x101ca: 0xe00084a8, 0x101cb: 0xe0009373,
-	0x101cc: 0xe00051fc, 0x101cd: 0xe0005baf, 0x101ce: 0xe000a336, 0x101cf: 0xe00058ac,
-	0x101d0: 0xe0009808, 0x101d1: 0xe0009dcd,
-	0x101db: 0xe0004962,
-	0x101dd: 0xe0005918, 0x101df: 0xe0007f69,
-	0x101e0: 0xe00099f3,
-	0x101e6: 0xe0006356,
-	0x101e9: 0xe000641b, 0x101eb: 0xe0009c82,
-	0x101ec: 0xe0007f2d, 0x101ee: 0xe00085c4,
-	0x101f3: 0xe0007825,
-	0x101f6: 0xe0004e98,
-	0x101f8: 0xe000a4b6, 0x101f9: 0xe0009513, 0x101fb: 0xe0005d58,
-	0x101fc: 0xe000a339, 0x101fd: 0xe000a354, 0x101fe: 0xe0007822,
-	// Block 0x408, offset 0x10200
-	0x10200: 0xe0009bd2, 0x10202: 0xe00054a1,
-	0x10206: 0xe0005ae8,
-	0x10208: 0xe0008718, 0x1020a: 0xe00043c6,
-	0x1020e: 0xe0009093,
-	0x10211: 0xe0009713,
-	0x1021d: 0xe000738b,
-	0x10222: 0xe0004eba,
-	0x10224: 0xe0005607, 0x10226: 0xe0007e57,
-	0x10228: 0xe0008a5f, 0x1022a: 0xe0008a5c, 0x1022b: 0xe000920f,
-	0x10230: 0xe00081db, 0x10231: 0xe00043c9, 0x10233: 0xe0005da8,
-	0x10235: 0xe0003d2d, 0x10236: 0xe0004e3e,
-	0x1023b: 0xe0007084,
-	0x1023c: 0xe0009fd9, 0x1023d: 0xe0005bb3, 0x1023f: 0xe000409d,
-	// Block 0x409, offset 0x10240
-	0x10240: 0xe0008423,
-	0x10244: 0xe00051e4, 0x10246: 0xe0009a29, 0x10247: 0xe0009b70,
-	0x1024b: 0xe000674b,
-	0x1024c: 0xe000a10b, 0x1024d: 0xe0009d80, 0x1024e: 0xe0004823, 0x1024f: 0xe000776e,
-	0x10250: 0xe0006359,
-	0x10256: 0xe0003d78,
-	0x10260: 0xe0008ddc, 0x10262: 0xe00071fa,
-	0x10264: 0xe0009669, 0x10265: 0xe000a516,
-	0x10268: 0xe0008193, 0x1026b: 0xe0008c16,
-	0x1026c: 0xe0004787, 0x1026f: 0xe0003dcf,
-	0x10273: 0xe0009d50,
-	0x10278: 0xe0009c86, 0x1027b: 0xe000a41b,
-	0x1027c: 0xe0004721, 0x1027d: 0xe00080b1, 0x1027f: 0xe000805c,
-	// Block 0x40a, offset 0x10280
-	0x10280: 0xe0007315, 0x10281: 0xe0009af7, 0x10282: 0xe00070d4, 0x10283: 0xe0005238,
-	0x10284: 0xe000a0cc, 0x10286: 0xe00095ae, 0x10287: 0xe0007979,
-	0x10288: 0xe0009cc6, 0x10289: 0xe00083b8,
-	0x102a1: 0xe0007ca9,
-	0x102a5: 0xe0003d30, 0x102a6: 0xe000719c,
-	0x102a8: 0xe0009291, 0x102a9: 0xe00058f4,
-	0x102ad: 0xe0004489, 0x102ae: 0xe000a2ee,
-	0x102b1: 0xe0005f8f, 0x102b2: 0xe000914f,
-	0x102ba: 0xe0009a2c,
-	0x102bd: 0xe000430c, 0x102bf: 0xe0003d7b,
-	// Block 0x40b, offset 0x102c0
-	0x102c4: 0xe000991e, 0x102c6: 0xe00066af, 0x102c7: 0xe0008cb8,
-	0x102c9: 0xe0007336,
-	0x102ce: 0xe00058af, 0x102cf: 0xe000a519,
-	0x102d0: 0xe0005009,
-	0x102d4: 0xe0007870,
-	0x102dc: 0xe0005a52,
-	0x102eb: 0xe0004ba6,
-	0x102ee: 0xe0006e04, 0x102ef: 0xe0007dd6,
-	0x102f1: 0xe0008f56, 0x102f3: 0xe00054d4,
-	0x102f5: 0xe0007286,
-	0x102fc: 0xe0006843, 0x102fe: 0xe000966c,
-	// Block 0x40c, offset 0x10300
-	0x10300: 0xe0007339, 0x10302: 0xe0004e8a,
-	0x10304: 0xe00096bf, 0x10306: 0xe000686b,
-	0x1030f: 0xe0005d5c,
-	0x10313: 0xe0004357,
-	0x10316: 0xe0004f81, 0x10317: 0xe0004fc9,
-	0x1031c: 0xe0009177, 0x1031e: 0xe000716c,
-	0x10323: 0xe0009c8a,
-	0x1033b: 0xe0007006,
-	0x1033c: 0xe0008832, 0x1033d: 0xe00072a6, 0x1033e: 0xe0009420,
-	// Block 0x40d, offset 0x10340
-	0x10340: 0xe0004049, 0x10341: 0xe000793d, 0x10343: 0xe0004db3,
-	0x10344: 0xe0006a17, 0x10346: 0xe0009153, 0x10347: 0xe000530f,
-	0x10349: 0xe000a33c, 0x1034a: 0xe0009c8e, 0x1034b: 0xe0009213,
-	0x10351: 0xe0007f81, 0x10353: 0xe0007ab0,
-	0x10354: 0xe00071fe,
-	0x10358: 0xe00090bf, 0x10359: 0xe000a3dc, 0x1035a: 0xe000a16f,
-	0x1035c: 0xe000a4e0, 0x1035d: 0xe0003e73, 0x1035e: 0xe0008bb8, 0x1035f: 0xe0007da0,
-	0x10363: 0xe000a357,
-	0x10364: 0xe000a257, 0x10367: 0xe000a3bd,
-	0x10368: 0xe0005480, 0x10369: 0xe0007dd9, 0x1036a: 0xe000686f, 0x1036b: 0xe0004d52,
-	0x1036c: 0xe000478a, 0x1036e: 0xe0004ef1,
-	0x10370: 0xe000706c,
-	// Block 0x40e, offset 0x10380
-	0x10385: 0xe000a33f, 0x10387: 0xe0006907,
-	0x10389: 0xe0006c6f,
-	0x10391: 0xe0009ce2,
-	0x10394: 0xe0008cbc,
-	0x1039a: 0xe0007828, 0x1039b: 0xe0004230,
-	0x1039c: 0xe0004c12, 0x1039f: 0xe0008e0c,
-	0x103a0: 0xe000535e, 0x103a2: 0xe0007911, 0x103a3: 0xe00066b2,
-	0x103a4: 0xe0009569,
-	0x103b7: 0xe0007873,
-	0x103bd: 0xe0006d50, 0x103be: 0xe0008a62, 0x103bf: 0xe000976b,
-	// Block 0x40f, offset 0x103c0
-	0x103c4: 0xe00047cf, 0x103c6: 0xe0009717,
-	0x103c8: 0xe000893a, 0x103c9: 0xe0003d33,
-	0x103cc: 0xe0009ad6, 0x103cd: 0xe00057d0, 0x103ce: 0xe0007266,
-	0x103d0: 0xe00047d2, 0x103d2: 0xe0009fbe,
-	0x103d4: 0xe0004826, 0x103d6: 0xe0009028, 0x103d7: 0xe0006873,
-	0x103e9: 0xe000a135,
-	0x103ec: 0xe00093c0, 0x103ef: 0xe0006bfa,
-	0x103f2: 0xe00088b0,
-	0x103f4: 0xe0009516, 0x103f6: 0xe0006faf, 0x103f7: 0xe000a054,
-	0x103f8: 0xe0005d38, 0x103f9: 0xe000577a, 0x103fb: 0xe000a51c,
-	0x103ff: 0xe0005d4c,
-	// Block 0x410, offset 0x10400
-	0x10401: 0xe0007876, 0x10402: 0xe0008b58,
-	0x10409: 0xe0004fcd, 0x1040b: 0xe0009811,
-	0x1040d: 0xe00092e8, 0x1040e: 0xe000768a, 0x1040f: 0xe000a4c6,
-	0x10413: 0xe0009df1,
-	0x10424: 0xe0004baa, 0x10425: 0xe0004e60,
-	0x10428: 0xe0004c15, 0x10429: 0xe0007202, 0x1042a: 0xe000893d, 0x1042b: 0xe000a4e3,
-	0x1042c: 0xe0006995, 0x1042d: 0xe00047d5, 0x1042f: 0xe000733c,
-	0x10432: 0xe0009660,
-	0x10434: 0xe000641f, 0x10436: 0xe0003e97,
-	0x10438: 0xe0009815, 0x1043a: 0xe00070d8,
-	// Block 0x411, offset 0x10440
-	0x10440: 0xe0004e24,
-	0x10444: 0xe000a2d2, 0x10446: 0xe000a2f1, 0x10447: 0xe0009bd5,
-	0x1044f: 0xe000926a,
-	0x10459: 0xe00047d8, 0x1045a: 0xe0007f31,
-	0x10465: 0xe00075ca,
-	0x1046c: 0xe0006602, 0x1046e: 0xe0009dd1,
-	0x10473: 0xe00044a5,
-	0x10474: 0xe000752a, 0x10476: 0xe00073ab,
-	0x1047c: 0xe0008231,
-	// Block 0x412, offset 0x10480
-	0x10480: 0xe00085c8, 0x10481: 0xe0006b67, 0x10482: 0xe000a318, 0x10483: 0xe00082c9,
-	0x10488: 0xe00077da, 0x10489: 0xe000532a, 0x1048a: 0xe0004dc3,
-	0x1048d: 0xe000a4e6,
-	0x10491: 0xe0009337,
-	0x1049a: 0xe0006d53, 0x1049b: 0xe00066b5,
-	0x1049e: 0xe000a276, 0x1049f: 0xe00070dc,
-	0x104a0: 0xe00080b5,
-	0x104a6: 0xe0007642,
-	0x104ab: 0xe000a0c8,
-	0x104ae: 0xe000797c,
-	0x104b0: 0xe00044b9,
-	0x104b7: 0xe0004ad6,
-	0x104b9: 0xe00055c7, 0x104ba: 0xe00043cc,
-	0x104bf: 0xe0007e5a,
-	// Block 0x413, offset 0x104c0
-	0x104c1: 0xe0007f35, 0x104c2: 0xe000a0a8, 0x104c3: 0xe0009a2f,
-	0x104c4: 0xe00074a0,
-	0x104c8: 0xe00049d2, 0x104c9: 0xe00074be, 0x104ca: 0xe0009243, 0x104cb: 0xe000493a,
-	0x104cd: 0xe0007d61,
-	0x104d2: 0xe0007cb1, 0x104d3: 0xe0007cad,
-	0x104d6: 0xe00050d0,
-	0x104d8: 0xe0004ef5,
-	0x104dc: 0xe0007d0d, 0x104df: 0xe000980b,
-	0x104e5: 0xe00056c5,
-	0x104e8: 0xe00083bb,
-	0x104ec: 0xe0007879, 0x104ed: 0xe0004a61, 0x104ee: 0xe000658a,
-	0x104f0: 0xe0008c19,
-	0x104fb: 0xe0004c18,
-	0x104fe: 0xe0004bd6,
-	// Block 0x414, offset 0x10500
-	0x10500: 0xe0008c1c, 0x10502: 0xe00098e3,
-	0x10507: 0xe0004ac2,
-	0x1050a: 0xe0005fab,
-	0x1050c: 0xe0006467, 0x1050d: 0xe0004f85, 0x1050e: 0xe0003eb3, 0x1050f: 0xe0006080,
-	0x10510: 0xe0008a2f, 0x10511: 0xe0004051,
-	0x10521: 0xe0009885,
-	0x10524: 0xe00044bd, 0x10526: 0xe000971b, 0x10527: 0xe0009097,
-	0x10528: 0xe000805f, 0x10529: 0xe0003eff, 0x1052a: 0xe00099c7,
-	0x1052e: 0xe000507f, 0x1052f: 0xe0006083,
-	0x10530: 0xe0004270, 0x10531: 0xe0007302, 0x10533: 0xe0007ab3,
-	0x10535: 0xe0004829, 0x10537: 0xe0003d7e,
-	0x10538: 0xe00048c2, 0x1053b: 0xe0008c73,
-	0x1053c: 0xe00096c3,
-	// Block 0x415, offset 0x10540
-	0x10542: 0xe0006d56,
-	0x10548: 0xe000507c, 0x1054b: 0xe0009f48,
-	0x1054c: 0xe000523c,
-	0x10553: 0xe0009d53,
-	0x10555: 0xe000a35a,
-	0x1055e: 0xe0009693,
-	0x10560: 0xe0007f11, 0x10562: 0xe000482c, 0x10563: 0xe0007cb5,
-	0x10564: 0xe0008da4,
-	0x10578: 0xe00079e0,
-	0x1057d: 0xe0007f39,
-	// Block 0x416, offset 0x10580
-	0x10583: 0xe0007318,
-	0x10586: 0xe0003dd3, 0x10587: 0xe0007b0d,
-	0x10588: 0xe0008b18, 0x10589: 0xe0009f28, 0x1058b: 0xe0005abe,
-	0x1058e: 0xe0006b83, 0x1058f: 0xe0007646,
-	0x10591: 0xe000917b, 0x10592: 0xe00053aa,
-	0x1059c: 0xe00073d9, 0x1059f: 0xe000759a,
-	0x105a0: 0xe000635c,
-	0x105a4: 0xe000658d,
-	0x105ad: 0xe00097d9,
-	0x105b0: 0xe0008ff1, 0x105b3: 0xe0003f03,
-	0x105b4: 0xe0007030, 0x105b7: 0xe0008dc4,
-	0x105b9: 0xe000604d, 0x105ba: 0xe0004c1b, 0x105bb: 0xe0008b5c,
-	0x105bc: 0xe0004c1e, 0x105bd: 0xe0006c72,
-	// Block 0x417, offset 0x105c0
-	0x105c0: 0xe0004986, 0x105c2: 0xe000500d, 0x105c3: 0xe00044e1,
-	0x105c5: 0xe00041a0, 0x105c6: 0xe0009841,
-	0x105c8: 0xe0003f5b, 0x105c9: 0xe0007eb1, 0x105ca: 0xe00071ba, 0x105cb: 0xe00064f7,
-	0x105d7: 0xe00051e8,
-	0x105d9: 0xe00080e9,
-	0x105dd: 0xe00045cc, 0x105de: 0xe00091e3,
-	0x105e0: 0xe000a35d, 0x105e1: 0xe000623a, 0x105e3: 0xe0007bf0,
-	0x105e4: 0xe0008835, 0x105e6: 0xe000439c, 0x105e7: 0xe00075ce,
-	0x105ea: 0xe0003eb7,
-	0x105ef: 0xe0007a5f,
-	0x105f0: 0xe00074e6, 0x105f1: 0xe000623d,
-	0x105f4: 0xe00082e5, 0x105f5: 0xe00050d3,
-	0x105fa: 0xe000435a,
-	// Block 0x418, offset 0x10600
-	0x10600: 0xe000621b,
-	0x10609: 0xe000909b, 0x1060a: 0xe0004733, 0x1060b: 0xe0007702,
-	0x1060c: 0xe0009787, 0x1060d: 0xe0006fa1, 0x1060f: 0xe0004007,
-	0x10610: 0xe0006c75, 0x10611: 0xe0006bfd, 0x10612: 0xe0007009,
-	0x10614: 0xe0009777, 0x10617: 0xe00050d6,
-	0x10618: 0xe0005011, 0x10619: 0xe000443b, 0x1061a: 0xe000937b,
-	0x1061e: 0xe00068fb,
-	0x10621: 0xe000853c, 0x10622: 0xe000782b,
-	0x10624: 0xe000a37d,
-	0x10629: 0xe00076ba,
-	0x10635: 0xe0008cc0,
-	0x10639: 0xe0008eea,
-	0x1063c: 0xe0008540, 0x1063d: 0xe00068d7, 0x1063e: 0xe0006e44,
-	// Block 0x419, offset 0x10640
-	0x10640: 0xe0008c76, 0x10641: 0xe0005a2e, 0x10643: 0xe0004274,
-	0x10645: 0xe000693b,
-	0x10649: 0xe0007b11, 0x1064a: 0xe00086b8,
-	0x1064d: 0xe0004ccc,
-	0x10650: 0xe0004b52, 0x10653: 0xe0005cc6,
-	0x1065c: 0xe00093d8, 0x1065d: 0xe0007ab6, 0x1065e: 0xe0008bd8, 0x1065f: 0xe0009df4,
-	0x10661: 0xe0006a8b, 0x10663: 0xe00062c0,
-	0x10668: 0xe0005d44, 0x10669: 0xe00051a8, 0x1066b: 0xe0008b60,
-	0x1066e: 0xe000966f,
-	0x10670: 0xe0004fd1, 0x10671: 0xe00052f3, 0x10673: 0xe0006423,
-	0x1067a: 0xe000782e, 0x1067b: 0xe00082e9,
-	0x1067e: 0xe0003deb,
-	// Block 0x41a, offset 0x10680
-	0x10681: 0xe0006143, 0x10683: 0xe0003fbf,
-	0x10685: 0xe0007919, 0x10687: 0xe0004ef9,
-	0x1068e: 0xe000a381,
-	0x10691: 0xe0009bea, 0x10693: 0xe00072d2,
-	0x10694: 0xe0005142, 0x10695: 0xe0009fdc,
-	0x10698: 0xe00057a6, 0x10699: 0xe00046c4, 0x1069a: 0xe000567f,
-	0x1069c: 0xe0004fd5, 0x1069d: 0xe0007e5d, 0x1069e: 0xe0004736, 0x1069f: 0xe00056e5,
-	0x106a4: 0xe000741c,
-	0x106ab: 0xe00066b8,
-	0x106ac: 0xe0008141, 0x106af: 0xe00082ed,
-	0x106b9: 0xe000811d, 0x106ba: 0xe0009fdf, 0x106bb: 0xe000693e,
-	0x106bd: 0xe0006d59,
-	// Block 0x41b, offset 0x106c0
-	0x106c6: 0xe0006330,
-	0x106c8: 0xe00083e8,
-	0x106cf: 0xe0009bb1,
-	0x106d0: 0xe0009f8c,
-	0x106d4: 0xe0004c21, 0x106d5: 0xe00069b3, 0x106d6: 0xe0007a2f,
-	0x106d9: 0xe0006e48, 0x106da: 0xe0004edc,
-	0x106dc: 0xe00073c4,
-	0x106e2: 0xe0005c8f,
-	0x106e4: 0xe00080ed, 0x106e5: 0xe00045cf, 0x106e7: 0xe0005082,
-	0x106e9: 0xe00090c3, 0x106ea: 0xe00097b5, 0x106eb: 0xe000635f,
-	0x106ec: 0xe0009663, 0x106ed: 0xe0007a62, 0x106ee: 0xe00072e6, 0x106ef: 0xe0009d36,
-	0x106f1: 0xe00070fc,
-	0x106f7: 0xe000801d,
-	0x106f8: 0xe00045d2,
-	0x106fe: 0xe0009ef8,
-	// Block 0x41c, offset 0x10700
-	0x10704: 0xe000752e, 0x10707: 0xe0004c24,
-	0x10708: 0xe0004dd5, 0x10709: 0xe00062f0,
-	0x1070e: 0xe0004a64, 0x1070f: 0xe0008a65,
-	0x10710: 0xe000a173, 0x10711: 0xe000435d, 0x10713: 0xe0008e30,
-	0x10714: 0xe0006427, 0x10715: 0xe0009e34, 0x10717: 0xe0009859,
-	0x10718: 0xe000836d, 0x1071a: 0xe0009d56,
-	0x10720: 0xe0008544, 0x10722: 0xe00066bb,
-	0x10727: 0xe0007831,
-	0x10729: 0xe00055a7, 0x1072a: 0xe000974f, 0x1072b: 0xe0007ec9,
-	0x1072c: 0xe00082f1, 0x1072d: 0xe00069b7, 0x1072e: 0xe000642b,
-	0x10733: 0xe0004ded,
-	0x10734: 0xe0004e2f, 0x10736: 0xe0004de1,
-	0x10738: 0xe0003def,
-	0x1073d: 0xe0009fe2,
-	// Block 0x41d, offset 0x10740
-	0x10742: 0xe0007572, 0x10743: 0xe0006512,
-	0x10744: 0xe0005a7a,
-	0x1074a: 0xe0008145,
-	0x10751: 0xe00098b8, 0x10752: 0xe0009868, 0x10753: 0xe0004c27,
-	0x10756: 0xe0007a65, 0x10757: 0xe0004b76,
-	0x10759: 0xe0005cc9,
-	0x1075d: 0xe0008371,
-	0x10763: 0xe0006590,
-	0x10765: 0xe0009672, 0x10767: 0xe00079e4,
-	0x10768: 0xe0005faf,
-	0x1076c: 0xe000985c, 0x1076f: 0xe00094a1,
-	0x10772: 0xe0004f6d,
-	0x10779: 0xe0005ac1, 0x1077b: 0xe0009043,
-	0x1077e: 0xe00091e7,
-	// Block 0x41e, offset 0x10780
-	0x10783: 0xe000871c,
-	0x10786: 0xe0005bf7,
-	0x10788: 0xe000560b, 0x10789: 0xe0008196, 0x1078b: 0xe0006fb2,
-	0x1078d: 0xe00067c7,
-	0x10790: 0xe0008426, 0x10791: 0xe00043cf, 0x10792: 0xe000674e, 0x10793: 0xe0006b87,
-	0x10794: 0xe0007d64,
-	0x10799: 0xe0008149, 0x1079a: 0xe0007a68,
-	0x1079c: 0xe0003f5f, 0x1079d: 0xe0008a56, 0x1079e: 0xe0004d46,
-	0x107a3: 0xe00047db,
-	0x107a4: 0xe00048c5, 0x107a5: 0xe0005c39, 0x107a6: 0xe0003df3,
-	0x107a8: 0xe0008020, 0x107aa: 0xe0008d70,
-	0x107ac: 0xe000a4e9, 0x107ae: 0xe0009d02,
-	0x107b8: 0xe00075d2, 0x107ba: 0xe00070e0, 0x107bb: 0xe00080b9,
-	0x107bf: 0xe0008199,
-	// Block 0x41f, offset 0x107c0
-	0x107c1: 0xe0007d67, 0x107c3: 0xe0007a23,
-	0x107c9: 0xe000668a,
-	0x107d1: 0xe00066be, 0x107d3: 0xe0005de4,
-	0x107d8: 0xe0004dc7, 0x107d9: 0xe0009f90, 0x107db: 0xe0007834,
-	0x107dc: 0xe0004d59, 0x107df: 0xe00075d6,
-	0x107e0: 0xe0007088, 0x107e3: 0xe0008874,
-	0x107e5: 0xe000716f, 0x107e7: 0xe00097dc,
-	0x107e9: 0xe00059ea,
-	0x107ed: 0xe000733f,
-	0x107f5: 0xe0009423, 0x107f6: 0xe0009519,
-	0x107fc: 0xe0008f5a, 0x107ff: 0xe000719f,
-	// Block 0x420, offset 0x10800
-	0x10800: 0xe00071a2, 0x10801: 0xe00057a9,
-	0x10806: 0xe0009888,
-	0x10809: 0xe0007994,
-	0x1080c: 0xe0006e7c,
-	0x10810: 0xe000797f,
-	0x1081a: 0xe000a090,
-	0x10822: 0xe0006515, 0x10823: 0xe00080f1,
-	0x10826: 0xe0006362, 0x10827: 0xe00087e8,
-	0x1082a: 0xe00053da,
-	0x10832: 0xe000a138,
-	0x10837: 0xe00087ec,
-	0x1083f: 0xe0006998,
-	// Block 0x421, offset 0x10840
-	0x10844: 0xe0005de7,
-	0x1084d: 0xe00063c8,
-	0x10852: 0xe0005ac4, 0x10853: 0xe000a25b,
-	0x10855: 0xe00072aa,
-	0x1085a: 0xe0005dab, 0x1085b: 0xe0007cb9,
-	0x1085f: 0xe0006b03,
-	0x10862: 0xe0005c3c,
-	0x10864: 0xe0006fb5, 0x10867: 0xe0007a2c,
-	0x1086a: 0xe000787c,
-	0x10873: 0xe0007070,
-	0x10875: 0xe0008189,
-	0x1087a: 0xe0005dea, 0x1087b: 0xe0005f43,
-	0x1087c: 0xe00078e1, 0x1087d: 0xe00059b3, 0x1087e: 0xe00048c8, 0x1087f: 0xe0004748,
-	// Block 0x422, offset 0x10880
-	0x10881: 0xe0003d36, 0x10882: 0xe0006d5c,
-	0x10884: 0xe0007cbd,
-	0x10888: 0xe00073af, 0x10889: 0xe0008d74, 0x1088b: 0xe0004e78,
-	0x1088c: 0xe0009eec,
-	0x10896: 0xe0009ad9, 0x10897: 0xe00048cb,
-	0x10899: 0xe0006a8f, 0x1089a: 0xe0005a32, 0x1089b: 0xe00077dd,
-	0x108a0: 0xe00058f7, 0x108a1: 0xe00084ac, 0x108a2: 0xe0004a8e, 0x108a3: 0xe0007502,
-	0x108a5: 0xe00085cc, 0x108a6: 0xe0009d06,
-	0x108a9: 0xe0004e90, 0x108ab: 0xe0005c3f,
-	0x108ad: 0xe000a057, 0x108ae: 0xe000a05a, 0x108af: 0xe000787f,
-	0x108b6: 0xe00092eb,
-	0x108ba: 0xe0009c52, 0x108bb: 0xe0009c56,
-	0x108bd: 0xe000577d,
-	// Block 0x423, offset 0x108c0
-	0x108c0: 0xe0004a91,
-	0x108c5: 0xe000a10e,
-	0x108c8: 0xe0007ab9, 0x108c9: 0xe000a4ec, 0x108cb: 0xe0006a1b,
-	0x108cc: 0xe000478d,
-	0x108d6: 0xe00099f6,
-	0x108d9: 0xe0008375, 0x108db: 0xe0009ea8,
-	0x108e5: 0xe0008940,
-	0x108e8: 0xe00081de, 0x108ea: 0xe0006606,
-	0x108ed: 0xe0004de4,
-	0x108f0: 0xe0007776, 0x108f2: 0xe0004e7b,
-	0x108f4: 0xe0007772,
-	0x108fe: 0xe0005386, 0x108ff: 0xe000764a,
-	// Block 0x424, offset 0x10900
-	0x10900: 0xe0006877, 0x10903: 0xe0007420,
-	0x10905: 0xe0006b3f,
-	0x1090c: 0xe0005553,
-	0x10910: 0xe000819c, 0x10911: 0xe0009ed4,
-	0x10914: 0xe0004541, 0x10915: 0xe0008181, 0x10916: 0xe00081e1, 0x10917: 0xe000819f,
-	0x10918: 0xe00089a8, 0x1091a: 0xe0006365, 0x1091b: 0xe000993c,
-	0x1091c: 0xe00081a2, 0x1091d: 0xe000a2f4, 0x1091f: 0xe0005b23,
-	0x10921: 0xe00097df, 0x10923: 0xe0004360,
-	0x10924: 0xe00043d2, 0x10925: 0xe0004e41,
-	0x10929: 0xe0009d59, 0x1092b: 0xe0006cd7,
-	0x10930: 0xe0006e4c, 0x10931: 0xe000827d,
-	0x10935: 0xe0006368, 0x10936: 0xe00081e4,
-	0x10938: 0xe0009bee, 0x1093a: 0xe0007ddc,
-	0x1093c: 0xe0007516, 0x1093f: 0xe00067cb,
-	// Block 0x425, offset 0x10940
-	0x10941: 0xe000846e, 0x10942: 0xe0007b5d,
-	0x10945: 0xe00050bb, 0x10947: 0xe0007b96,
-	0x10948: 0xe0006d5f, 0x10949: 0xe000721e, 0x1094a: 0xe0003d81, 0x1094b: 0xe0006d03,
-	0x1094c: 0xe0007998, 0x1094f: 0xe0004761,
-	0x10953: 0xe000628c,
-	0x10955: 0xe000978f, 0x10956: 0xe000a2d6, 0x10957: 0xe00089c4,
-	0x10958: 0xe0004618, 0x10959: 0xe0008a68, 0x1095a: 0xe0008720, 0x1095b: 0xe000799c,
-	0x1095c: 0xe0007fc6,
-	0x10962: 0xe000404d, 0x10963: 0xe0006a1f,
-	0x10964: 0xe0007100, 0x10965: 0xe0007ddf, 0x10966: 0xe000a177,
-	0x1096c: 0xe0006b8b, 0x1096e: 0xe00049a6,
-	0x10970: 0xe00083be, 0x10973: 0xe0009d5c,
-	0x10974: 0xe00075da, 0x10975: 0xe0006c00, 0x10976: 0xe0003d39,
-	0x10978: 0xe000708c, 0x10979: 0xe0007b15,
-	0x1097f: 0xe0006e50,
-	// Block 0x426, offset 0x10980
-	0x10980: 0xe0008ff4, 0x10982: 0xe00084b0, 0x10983: 0xe0007cc1,
-	0x10984: 0xe0004c2a, 0x10985: 0xe00080bd, 0x10986: 0xe0005e67, 0x10987: 0xe000482f,
-	0x1098c: 0xe000636b,
-	0x10990: 0xe0005ac7, 0x10992: 0xe0009c16, 0x10993: 0xe0007b99,
-	0x10994: 0xe0007034, 0x10996: 0xe0009635, 0x10997: 0xe0004e18,
-	0x10998: 0xe00095b1,
-	0x1099e: 0xe00059c2, 0x1099f: 0xe0008eca,
-	0x109a1: 0xe00045a5, 0x109a2: 0xe0009615,
-	0x109a4: 0xe0007837, 0x109a5: 0xe0007a6b, 0x109a6: 0xe0007104, 0x109a7: 0xe0004e14,
-	0x109a8: 0xe0008ff7, 0x109a9: 0xe0007114, 0x109ab: 0xe00066c1,
-	0x109ac: 0xe000461c, 0x109ad: 0xe0009fc1, 0x109ae: 0xe000575c, 0x109af: 0xe0008b1c,
-	0x109b0: 0xe000a1af,
-	0x109b5: 0xe000937f, 0x109b6: 0xe0006240,
-	0x109b8: 0xe0009363, 0x109ba: 0xe00066c4,
-	// Block 0x427, offset 0x109c0
-	0x109c1: 0xe00062f4,
-	0x109c4: 0xe00066c7, 0x109c5: 0xe0004b02, 0x109c7: 0xe00082f5,
-	0x109c8: 0xe0008548, 0x109c9: 0xe0007d6a, 0x109ca: 0xe00089ac, 0x109cb: 0xe0007118,
-	0x109cc: 0xe0008acb, 0x109cd: 0xe0005085, 0x109ce: 0xe00050d9, 0x109cf: 0xe0006c03,
-	0x109d1: 0xe0006c06,
-	0x109d4: 0xe0008062, 0x109d6: 0xe000919f,
-	0x109d9: 0xe000687b,
-	0x109df: 0xe0006a93,
-	0x109e0: 0xe0006a97,
-	0x109e4: 0xe0007b9c,
-	0x109e8: 0xe0005fb3, 0x109eb: 0xe0007a14,
-	0x109f1: 0xe000951c,
-	0x109f8: 0xe0006fb8, 0x109f9: 0xe0007ecd, 0x109fa: 0xe0009063, 0x109fb: 0xe00043d5,
-	0x109fc: 0xe0004eb4, 0x109fe: 0xe0005dae, 0x109ff: 0xe0004e75,
-	// Block 0x428, offset 0x10a00
-	0x10a00: 0xe000493e, 0x10a01: 0xe0006593,
-	0x10a05: 0xe0004073, 0x10a06: 0xe0004363, 0x10a07: 0xe00085d0,
-	0x10a08: 0xe000498a, 0x10a0b: 0xe00078b5,
-	0x10a0d: 0xe0006fbe, 0x10a0e: 0xe0006fbb,
-	0x10a10: 0xe0004b06, 0x10a11: 0xe0006acf,
-	0x10a15: 0xe000854c,
-	0x10a1b: 0xe00061df,
-	0x10a20: 0xe00050dc, 0x10a22: 0xe00057ac,
-	0x10a24: 0xe000955f, 0x10a25: 0xe00058b2,
-	0x10a28: 0xe00048ce,
-	0x10a2c: 0xe0006caf, 0x10a2f: 0xe00052a3,
-	0x10a31: 0xe000679b, 0x10a33: 0xe0006a9b,
-	0x10a39: 0xe000a486, 0x10a3a: 0xe0004ccf,
-	// Block 0x429, offset 0x10a40
-	0x10a48: 0xe0009bd8, 0x10a4a: 0xe0008684,
-	0x10a4c: 0xe0004bda, 0x10a4f: 0xe00079e8,
-	0x10a50: 0xe0004c2d, 0x10a51: 0xe000829d, 0x10a52: 0xe0004234,
-	0x10a54: 0xe0008e33,
-	0x10a5d: 0xe000825d,
-	0x10a61: 0xe0003f63, 0x10a63: 0xe00048d1,
-	0x10a65: 0xe00098bb, 0x10a66: 0xe0005994, 0x10a67: 0xe00092ee,
-	0x10a68: 0xe0008471, 0x10a69: 0xe000728a, 0x10a6a: 0xe00064bf, 0x10a6b: 0xe0006d62,
-	0x10a6c: 0xe0003f3f, 0x10a6d: 0xe000560f,
-	0x10a71: 0xe0005088, 0x10a73: 0xe00071be,
-	0x10a75: 0xe0009fe5, 0x10a77: 0xe0005e0b,
-	0x10a78: 0xe0007222, 0x10a7a: 0xe00055cb,
-	0x10a7e: 0xe0008694,
-	// Block 0x42a, offset 0x10a80
-	0x10a80: 0xe0006d65,
-	0x10a92: 0xe0005240,
-	0x10a99: 0xe000956c,
-	0x10aa0: 0xe000687f,
-	0x10aa8: 0xe0007172, 0x10aa9: 0xe00071a5,
-	0x10aad: 0xe00092f1, 0x10aaf: 0xe00062f8,
-	0x10ab0: 0xe00062fc, 0x10ab1: 0xe0004e44,
-	0x10ab4: 0xe0009e58, 0x10ab6: 0xe00050df,
-	0x10abb: 0xe0008b20,
-	0x10abd: 0xe0009efc,
-	// Block 0x42b, offset 0x10ac0
-	0x10ac6: 0xe0004575, 0x10ac7: 0xe0006f30,
-	0x10acd: 0xe000542d, 0x10ace: 0xe0004c30,
-	0x10ad0: 0xe00044e5, 0x10ad1: 0xe00044c1,
-	0x10ad4: 0xe00093ba, 0x10ad5: 0xe0007342, 0x10ad6: 0xe000731b, 0x10ad7: 0xe0003f67,
-	0x10ad9: 0xe0005833, 0x10adb: 0xe000499a,
-	0x10adf: 0xe0007f85,
-	0x10ae2: 0xe000840a,
-	0x10ae4: 0xe000a31b, 0x10ae6: 0xe000753a, 0x10ae7: 0xe0006f34,
-	0x10ae9: 0xe00064df,
-	0x10af4: 0xe0007a41,
-	0x10afd: 0xe00083eb,
-	// Block 0x42c, offset 0x10b00
-	0x10b01: 0xe0003f07, 0x10b02: 0xe0005853,
-	0x10b0b: 0xe0005db1,
-	0x10b0c: 0xe0003ebb, 0x10b0e: 0xe0007bf3,
-	0x10b10: 0xe00053b2, 0x10b13: 0xe00072ae,
-	0x10b14: 0xe0007a44,
-	0x10b29: 0xe0006f38,
-	0x10b2c: 0xe0007a32, 0x10b2f: 0xe0008e0f,
-	0x10b31: 0xe0007b61,
-	// Block 0x42d, offset 0x10b40
-	0x10b41: 0xe00057d3, 0x10b42: 0xe0008379,
-	0x10b44: 0xe0008f12, 0x10b47: 0xe0004832,
-	0x10b4b: 0xe00050e2,
-	0x10b52: 0xe0008c04,
-	0x10b54: 0xe0004bae, 0x10b55: 0xe00092f4,
-	0x10b59: 0xe000593c,
-	0x10b5d: 0xe00052cb,
-	0x10b60: 0xe0004790, 0x10b62: 0xe0007a6e,
-	0x10b67: 0xe00075ba,
-	0x10b6a: 0xe0007552, 0x10b6b: 0xe000755a,
-	0x10b6e: 0xe0009e28,
-	0x10b70: 0xe0009d83,
-	0x10b77: 0xe0007fff,
-	0x10b78: 0xe0007706, 0x10b7a: 0xe00055cf,
-	0x10b7c: 0xe0006941, 0x10b7d: 0xe00071c2,
-	// Block 0x42e, offset 0x10b80
-	0x10b89: 0xe0008f16, 0x10b8b: 0xe0004a94,
-	0x10b8d: 0xe0007a35,
-	0x10b91: 0xe0008eb2, 0x10b92: 0xe00059ee, 0x10b93: 0xe00085d4,
-	0x10b96: 0xe000728e,
-	0x10b9a: 0xe0009e10,
-	0x10b9d: 0xe00090c7, 0x10b9e: 0xe0008a6b,
-	0x10ba1: 0xe0006e8c, 0x10ba2: 0xe0006c09,
-	0x10ba5: 0xe0004545, 0x10ba6: 0xe0008a32, 0x10ba7: 0xe0004793,
-	0x10ba8: 0xe0004076, 0x10bab: 0xe0005cf6,
-	0x10bae: 0xe0008e12,
-	0x10bb1: 0xe0004c33, 0x10bb2: 0xe0008023, 0x10bb3: 0xe00066ca,
-	0x10bb4: 0xe000988b, 0x10bb5: 0xe00095b4, 0x10bb7: 0xe0009d0a,
-	0x10bb9: 0xe0004b56,
-	0x10bbd: 0xe0006cdb, 0x10bbe: 0xe00040d3,
-	// Block 0x42f, offset 0x10bc0
-	0x10bc2: 0xe0006fc1, 0x10bc3: 0xe0009a32,
-	0x10bc6: 0xe0006107,
-	0x10bc9: 0xe000646b,
-	0x10bcc: 0xe000a4ef,
-	0x10bd1: 0xe0009793,
-	0x10bd5: 0xe0005a6e, 0x10bd6: 0xe00091eb,
-	0x10bd9: 0xe0008d78, 0x10bda: 0xe0009426, 0x10bdb: 0xe0006097,
-	0x10bdd: 0xe0008838,
-	0x10be5: 0xe0006d68,
-	0x10be8: 0xe0006beb, 0x10beb: 0xe00066cd,
-	0x10bed: 0xe00069bb,
-	0x10bf3: 0xe00082f9,
-	0x10bf6: 0xe000508b, 0x10bf7: 0xe0007e60,
-	0x10bf8: 0xe0006883,
-	0x10bfd: 0xe0005bfa, 0x10bff: 0xe000a342,
-	// Block 0x430, offset 0x10c00
-	0x10c00: 0xe0008724, 0x10c03: 0xe0007da3,
-	0x10c04: 0xe00071c6, 0x10c05: 0xe0009a92, 0x10c07: 0xe0005fb7,
-	0x10c0c: 0xe000a1fb, 0x10c0e: 0xe0005b53,
-	0x10c14: 0xe0005a36, 0x10c15: 0xe00059c6,
-	0x10c18: 0xe000902c,
-	0x10c1e: 0xe00062c4, 0x10c1f: 0xe000956f,
-	0x10c21: 0xe00060b3, 0x10c22: 0xe0005015, 0x10c23: 0xe00099f9,
-	0x10c28: 0xe00091c3, 0x10c2a: 0xe0005c9b, 0x10c2b: 0xe000601b,
-	0x10c2c: 0xe0008ace,
-	0x10c30: 0xe0009e14, 0x10c31: 0xe000538a, 0x10c32: 0xe0003df7, 0x10c33: 0xe00099cb,
-	0x10c34: 0xe0004df4, 0x10c37: 0xe00061e3,
-	0x10c38: 0xe0009db5, 0x10c39: 0xe0003dfb, 0x10c3a: 0xe0007abc, 0x10c3b: 0xe000a17b,
-	0x10c3c: 0xe0007de2, 0x10c3d: 0xe0007de5, 0x10c3e: 0xe0004c36, 0x10c3f: 0xe000753e,
-	// Block 0x431, offset 0x10c40
-	0x10c44: 0xe00082fd, 0x10c47: 0xe0006518,
-	0x10c4a: 0xe0006887, 0x10c4b: 0xe0004cd2,
-	0x10c4f: 0xe0006944,
-	0x10c55: 0xe0008429, 0x10c56: 0xe0009a71, 0x10c57: 0xe0008698,
-	0x10c5a: 0xe0004278,
-	0x10c5c: 0xe000636e,
-	0x10c60: 0xe000688b,
-	0x10c66: 0xe00050e5, 0x10c67: 0xe0008a35,
-	0x10c6b: 0xe00043d8,
-	0x10c6d: 0xe0008728,
-	0x10c73: 0xe0006596,
-	0x10c75: 0xe0007292, 0x10c76: 0xe0006947, 0x10c77: 0xe0003f6b,
-	0x10c78: 0xe0007b19,
-	0x10c7d: 0xe0007bf6, 0x10c7e: 0xe0007de8,
-	// Block 0x432, offset 0x10c80
-	0x10c81: 0xe0009557, 0x10c82: 0xe000688f,
-	0x10c88: 0xe0009bb4, 0x10c89: 0xe0005593, 0x10c8a: 0xe00053f2, 0x10c8b: 0xe0006e07,
-	0x10c90: 0xe0004835, 0x10c91: 0xe0004b5a, 0x10c93: 0xe00045f0,
-	0x10c95: 0xe0007f89, 0x10c96: 0xe000575f,
-	0x10c9a: 0xe0008a6e, 0x10c9b: 0xe0008550,
-	0x10c9d: 0xe000700c, 0x10c9e: 0xe000a4b2, 0x10c9f: 0xe0005ccc,
-	0x10ca0: 0xe0008f5e, 0x10ca1: 0xe0005d3b, 0x10ca2: 0xe00099fc, 0x10ca3: 0xe00046c8,
-	0x10ca5: 0xe000474b, 0x10ca7: 0xe000837d,
-	0x10ca8: 0xe0009d86, 0x10ca9: 0xe000587b,
-	0x10cac: 0xe00054a4,
-	0x10cb1: 0xe0007941, 0x10cb3: 0xe000921f,
-	0x10cb6: 0xe00075de, 0x10cb7: 0xe000872c,
-	0x10cba: 0xe00040d7, 0x10cbb: 0xe000a279,
-	0x10cbf: 0xe0008175,
-	// Block 0x433, offset 0x10cc0
-	0x10cc1: 0xe0006183, 0x10cc3: 0xe0004cd5,
-	0x10cc4: 0xe00056e9, 0x10cc7: 0xe0003f0b,
-	0x10cc8: 0xe0009e44, 0x10cca: 0xe00099ff, 0x10ccb: 0xe0008095,
-	0x10ccf: 0xe0007038,
-	0x10cd1: 0xe0006fc4, 0x10cd3: 0xe00049aa,
-	0x10cd4: 0xe00088b3, 0x10cd5: 0xe00080c1, 0x10cd7: 0xe00064b3,
-	0x10cd8: 0xe000a0d0, 0x10cdb: 0xe0008026,
-	0x10cdf: 0xe000883b,
-	0x10ce2: 0xe0005145,
-	0x10ce5: 0xe0005ded, 0x10ce6: 0xe0009e5c, 0x10ce7: 0xe0009fe8,
-	0x10ce9: 0xe0004e32,
-	0x10ced: 0xe0005df0,
-	0x10cf1: 0xe00073dc,
-	0x10cf4: 0xe00051d0, 0x10cf5: 0xe0008301,
-	0x10cfa: 0xe0003f6f,
-	0x10cfc: 0xe0009b48,
-	// Block 0x434, offset 0x10d00
-	0x10d00: 0xe00048d4,
-	0x10d06: 0xe00061cb,
-	0x10d08: 0xe000971f, 0x10d0a: 0xe0003f73,
-	0x10d0c: 0xe0005db4, 0x10d0e: 0xe00059f2,
-	0x10d14: 0xe00056c9, 0x10d16: 0xe0004efd, 0x10d17: 0xe0009fa3,
-	0x10d18: 0xe000926d, 0x10d19: 0xe000a3ee, 0x10d1b: 0xe0008029,
-	0x10d1d: 0xe0008065,
-	0x10d22: 0xe0009f4c,
-	0x10d24: 0xe0005244, 0x10d26: 0xe00074ea, 0x10d27: 0xe0007c21,
-	0x10d29: 0xe0008ffa, 0x10d2a: 0xe0009aac, 0x10d2b: 0xe00088b6,
-	0x10d2c: 0xe000660a, 0x10d2d: 0xe000994b,
-	0x10d30: 0xe0008f62, 0x10d31: 0xe000770a,
-	0x10d37: 0xe0005fbb,
-	0x10d39: 0xe000759e,
-	0x10d3c: 0xe0009b1f, 0x10d3f: 0xe00064b7,
-	// Block 0x435, offset 0x10d40
-	0x10d40: 0xe0007a00, 0x10d41: 0xe0008730, 0x10d42: 0xe0008943,
-	0x10d45: 0xe000508e, 0x10d47: 0xe0006e90,
-	0x10d48: 0xe000a46a, 0x10d49: 0xe0007474, 0x10d4a: 0xe000a27c, 0x10d4b: 0xe0005847,
-	0x10d4c: 0xe000a345,
-	0x10d50: 0xe000694a, 0x10d51: 0xe000427c, 0x10d52: 0xe00050e8,
-	0x10d57: 0xe00052c7,
-	0x10d58: 0xe0006050, 0x10d59: 0xe00066d0,
-	0x10d5c: 0xe00068db, 0x10d5e: 0xe00089c8,
-	0x10d60: 0xe0005430, 0x10d61: 0xe00074a3, 0x10d63: 0xe0008e36,
-	0x10d67: 0xe000999b,
-	0x10d68: 0xe000a1ff, 0x10d69: 0xe0006290, 0x10d6a: 0xe0006e94,
-	0x10d6c: 0xe000601f, 0x10d6d: 0xe0007abf, 0x10d6e: 0xe0005db7, 0x10d6f: 0xe0009fc4,
-	0x10d75: 0xe0008de4, 0x10d77: 0xe00050bf,
-	0x10d79: 0xe0009157,
-	0x10d7c: 0xe0007ac2, 0x10d7d: 0xe000a3f1,
-	// Block 0x436, offset 0x10d80
-	0x10d83: 0xe000711c,
-	0x10d85: 0xe0009b4c,
-	0x10d89: 0xe0005148,
-	0x10d8c: 0xe0004c39, 0x10d8d: 0xe00080c5,
-	0x10d90: 0xe000976f, 0x10d92: 0xe000987d,
-	0x10d96: 0xe0009367, 0x10d97: 0xe0008c1f,
-	0x10d98: 0xe0005a7e, 0x10d99: 0xe0005a82,
-	0x10d9d: 0xe00091c7, 0x10d9e: 0xe0005e3f, 0x10d9f: 0xe0005e43,
-	0x10da0: 0xe00094d5, 0x10da1: 0xe00094ed,
-	0x10da4: 0xe0007882,
-	0x10da8: 0xe00079ec, 0x10dab: 0xe000965d,
-	0x10dad: 0xe0006197, 0x10dae: 0xe0004cd8,
-	0x10db1: 0xe0009639,
-	0x10db5: 0xe0004e04,
-	0x10db8: 0xe0004ea6, 0x10dbb: 0xe000a46e,
-	0x10dbc: 0xe0003fc3, 0x10dbd: 0xe000a0bc, 0x10dbf: 0xe000642f,
-	// Block 0x437, offset 0x10dc0
-	0x10dca: 0xe00092f7,
-	0x10dcd: 0xe0008261, 0x10dcf: 0xe00072ea,
-	0x10dd2: 0xe0004e35,
-	0x10dd4: 0xe00087f0, 0x10dd5: 0xe00098be, 0x10dd6: 0xe0009a35, 0x10dd7: 0xe0009217,
-	0x10dd9: 0xe000a05d, 0x10ddb: 0xe0004f71,
-	0x10ddc: 0xe00055d3, 0x10ddd: 0xe00066d3,
-	0x10de0: 0xe00097b8, 0x10de1: 0xe000802c,
-	0x10de5: 0xe0004bc2, 0x10de6: 0xe00099db, 0x10de7: 0xe0006b8f,
-	0x10de8: 0xe0007cc5, 0x10de9: 0xe0004ebd, 0x10dea: 0xe0004739,
-	0x10def: 0xe0004153,
-	0x10df3: 0xe000a25f,
-	// Block 0x438, offset 0x10e00
-	0x10e01: 0xe000814d, 0x10e02: 0xe0006e98, 0x10e03: 0xe0006fc7,
-	0x10e06: 0xe0009d3a, 0x10e07: 0xe00046ec,
-	0x10e08: 0xe0005c42, 0x10e0a: 0xe0009f2c,
-	0x10e0d: 0xe000a203,
-	0x10e10: 0xe0004549, 0x10e12: 0xe0009d0e,
-	0x10e15: 0xe000694d,
-	0x10e19: 0xe0007424, 0x10e1a: 0xe0007562,
-	0x10e1d: 0xe0004694, 0x10e1f: 0xe000a44e,
-	0x10e20: 0xe000474e, 0x10e22: 0xe000a27f, 0x10e23: 0xe00081a5,
-	0x10e24: 0xe000a42a, 0x10e25: 0xe0009572,
-	0x10e28: 0xe0009c1a, 0x10e29: 0xe0007f15, 0x10e2a: 0xe0003dab, 0x10e2b: 0xe0009835,
-	0x10e2c: 0xe0004e08, 0x10e2d: 0xe000454d, 0x10e2f: 0xe000703c,
-	0x10e30: 0xe000a4ba,
-	// Block 0x439, offset 0x10e40
-	0x10e41: 0xe000764e, 0x10e43: 0xe00044e9,
-	0x10e44: 0xe00092fa, 0x10e45: 0xe000767a,
-	0x10e49: 0xe0007108, 0x10e4b: 0xe0005940,
-	0x10e4c: 0xe000883e, 0x10e4d: 0xe0009c1e, 0x10e4f: 0xe0009f30,
-	0x10e52: 0xe0007fa1,
-	0x10e54: 0xe000a282, 0x10e55: 0xe000a51f, 0x10e56: 0xe0009921, 0x10e57: 0xe0005d84,
-	0x10e5a: 0xe0006d07, 0x10e5b: 0xe0008554,
-	0x10e5f: 0xe000783a,
-	0x10e60: 0xe0007deb, 0x10e62: 0xe0005484, 0x10e63: 0xe000a17f,
-	0x10e64: 0xe0009383, 0x10e67: 0xe00058b5,
-	0x10e70: 0xe00089cc, 0x10e71: 0xe0006599, 0x10e72: 0xe000651b, 0x10e73: 0xe00050c3,
-	0x10e74: 0xe00094f5, 0x10e75: 0xe0008fb2, 0x10e76: 0xe0005e0f,
-	0x10e78: 0xe0004366, 0x10e7b: 0xe0009dc5,
-	0x10e7c: 0xe00050eb, 0x10e7d: 0xe0009046, 0x10e7e: 0xe0004579,
-	// Block 0x43a, offset 0x10e80
-	0x10e84: 0xe0004df0, 0x10e85: 0xe0008734, 0x10e86: 0xe0009429, 0x10e87: 0xe00051ac,
-	0x10e89: 0xe00091cb, 0x10e8b: 0xe00079f0,
-	0x10e8f: 0xe00053de,
-	0x10e91: 0xe000a084, 0x10e93: 0xe00049ee,
-	0x10e95: 0xe000909f,
-	0x10e98: 0xe0005aa6, 0x10e99: 0xe000917f, 0x10e9a: 0xe000a0c0, 0x10e9b: 0xe000a0ac,
-	0x10e9c: 0xe00069bf, 0x10e9d: 0xe0008fb6, 0x10e9f: 0xe0007dee,
-	0x10ea0: 0xe0009fa6, 0x10ea1: 0xe00071ca, 0x10ea2: 0xe0006d3b,
-	0x10eb0: 0xe0009675, 0x10eb1: 0xe0004e6c, 0x10eb2: 0xe0007c75, 0x10eb3: 0xe0006893,
-	0x10eb4: 0xe0009501, 0x10eb6: 0xe000a207, 0x10eb7: 0xe0008b64,
-	0x10eb8: 0xe0004310, 0x10eb9: 0xe00073c7, 0x10eba: 0xe0006b93, 0x10ebb: 0xe000954f,
-	0x10ebc: 0xe000999f,
-	// Block 0x43b, offset 0x10ec0
-	0x10ec0: 0xe00092fd, 0x10ec1: 0xe0006d6b, 0x10ec3: 0xe0006a9f,
-	0x10ec6: 0xe00040db,
-	0x10ec8: 0xe0007df1, 0x10ec9: 0xe0007df4,
-	0x10ecd: 0xe0005e13, 0x10ece: 0xe000996b, 0x10ecf: 0xe0007fc9,
-	0x10ed4: 0xe0007f8d, 0x10ed5: 0xe00071ce,
-	0x10eda: 0xe0007b9f, 0x10edb: 0xe000731e,
-	0x10edc: 0xe0009f34, 0x10edf: 0xe0003ebf,
-	0x10ee7: 0xe000473c,
-	0x10eec: 0xe0006c78, 0x10eed: 0xe0004cdb,
-	0x10ef0: 0xe000a20b,
-	0x10ef4: 0xe0008f66, 0x10ef7: 0xe000400a,
-	0x10efc: 0xe0007090, 0x10efe: 0xe000400d, 0x10eff: 0xe0007cc9,
-	// Block 0x43c, offset 0x10f00
-	0x10f02: 0xe0007b1d,
-	0x10f04: 0xe000584b, 0x10f06: 0xe000514b, 0x10f07: 0xe0007f19,
-	0x10f08: 0xe00081a8, 0x10f0a: 0xe0004218, 0x10f0b: 0xe00097bb,
-	0x10f0c: 0xe000a20f, 0x10f0d: 0xe00078e5,
-	0x10f12: 0xe0008a08, 0x10f13: 0xe0009aaf,
-	0x10f15: 0xe0005bfd,
-	0x10f18: 0xe0008eee, 0x10f19: 0xe0008ef2, 0x10f1a: 0xe0008f1a,
-	0x10f1d: 0xe0009875, 0x10f1f: 0xe000981d,
-	0x10f20: 0xe0007885, 0x10f22: 0xe00059f6, 0x10f23: 0xe0004620,
-	0x10f24: 0xe0003daf, 0x10f27: 0xe0009fa9,
-	0x10f28: 0xe0004010, 0x10f2b: 0xe00089d0,
-	0x10f2e: 0xe00054a7,
-	0x10f30: 0xe0007d6d, 0x10f31: 0xe0004f35, 0x10f33: 0xe0003e47,
-	0x10f34: 0xe0006f6d, 0x10f35: 0xe0007b65, 0x10f36: 0xe0004280, 0x10f37: 0xe0003f77,
-	0x10f3a: 0xe00057d6,
-	0x10f3d: 0xe0009067, 0x10f3e: 0xe0007add,
-	// Block 0x43d, offset 0x10f40
-	0x10f41: 0xe0009387, 0x10f42: 0xe0007ba2, 0x10f43: 0xe0007b69,
-	0x10f4a: 0xe000651e,
-	0x10f4d: 0xe00047de, 0x10f4e: 0xe0008bdc,
-	0x10f50: 0xe0005523, 0x10f51: 0xe000666e, 0x10f52: 0xe0004a34,
-	0x10f54: 0xe0009294, 0x10f56: 0xe0007f3d,
-	0x10f58: 0xe000a4f5, 0x10f59: 0xe000a4f2, 0x10f5a: 0xe0009723,
-	0x10f64: 0xe0006433, 0x10f67: 0xe0005200,
-	0x10f68: 0xe0003f0f, 0x10f69: 0xe0004166, 0x10f6b: 0xe0005e17,
-	0x10f6c: 0xe0004284, 0x10f6e: 0xe0005cf9, 0x10f6f: 0xe0008f1e,
-	0x10f72: 0xe0009e00,
-	0x10f76: 0xe00074ce,
-	0x10f78: 0xe0006b43, 0x10f7a: 0xe0004f89, 0x10f7b: 0xe000973b,
-	0x10f7c: 0xe0004314, 0x10f7e: 0xe0003ec3,
-	// Block 0x43e, offset 0x10f80
-	0x10f83: 0xe0004b1a,
-	0x10f86: 0xe0008946, 0x10f87: 0xe0003dff,
-	0x10f88: 0xe0009d5f, 0x10f89: 0xe0007fb1, 0x10f8a: 0xe000783d, 0x10f8b: 0xe0005cfc,
-	0x10f8c: 0xe00075be,
-	0x10f95: 0xe00076be, 0x10f97: 0xe0009bdb,
-	0x10f9e: 0xe0005c9f, 0x10f9f: 0xe00050ac,
-	0x10fa3: 0xe0005d88,
-	0x10fa6: 0xe0004d5c,
-	0x10fb2: 0xe0008de8,
-	0x10fb6: 0xe0005312, 0x10fb7: 0xe000a285,
-	0x10fb8: 0xe0009e60, 0x10fba: 0xe0008ef6,
-	0x10fbc: 0xe0004838, 0x10fbd: 0xe000a1b3, 0x10fbe: 0xe0006b6b, 0x10fbf: 0xe0007fcc,
-	// Block 0x43f, offset 0x10fc0
-	0x10fc0: 0xe0005527,
-	0x10fc7: 0xe0005019,
-	0x10fc8: 0xe00045a8, 0x10fca: 0xe0005cff,
-	0x10fcc: 0xe0006f1c, 0x10fcd: 0xe0006d6e, 0x10fce: 0xe0007efd,
-	0x10fd0: 0xe0006b97, 0x10fd1: 0xe0007175, 0x10fd2: 0xe0004369,
-	0x10fd4: 0xe0008295, 0x10fd5: 0xe0008381, 0x10fd6: 0xe000a088,
-	0x10fda: 0xe000906b,
-	0x10fde: 0xe000726a, 0x10fdf: 0xe0004aee,
-	0x10fe1: 0xe0003ec7, 0x10fe2: 0xe0008de0,
-	0x10fe7: 0xe0008fba,
-	0x10fe9: 0xe00085d8, 0x10fea: 0xe0008668,
-	0x10fee: 0xe000581f,
-	0x10ff0: 0xe0008558, 0x10ff1: 0xe000a4f8, 0x10ff2: 0xe000a522, 0x10ff3: 0xe0008e5e,
-	0x10ff4: 0xe0005091, 0x10ff5: 0xe00048d7, 0x10ff6: 0xe0009feb,
-	0x10ff9: 0xe000738f,
-	0x10ffe: 0xe00054aa, 0x10fff: 0xe0005fbf,
-	// Block 0x440, offset 0x11000
-	0x11000: 0xe0006c0c, 0x11001: 0xe0009977, 0x11003: 0xe0004318,
-	0x11007: 0xe0006a23,
-	0x11008: 0xe0009fee, 0x11009: 0xe0006521, 0x1100a: 0xe00076c2, 0x1100b: 0xe0006d71,
-	0x1100d: 0xe00083c1, 0x1100e: 0xe0008eda,
-	0x11011: 0xe00062c8, 0x11012: 0xe0006086, 0x11013: 0xe0009678,
-	0x11017: 0xe00083ee,
-	0x11018: 0xe00096c7, 0x1101b: 0xe0003fc7,
-	0x11023: 0xe00048da,
-	0x11028: 0xe00080f5,
-	0x1102e: 0xe0006437,
-	0x11031: 0xe0004bc6, 0x11033: 0xe0005f47,
-	0x11036: 0xe0006371,
-	0x11039: 0xe0006524, 0x1103a: 0xe0008c79,
-	0x1103c: 0xe0007373, 0x1103e: 0xe0008949, 0x1103f: 0xe0006f8d,
-	// Block 0x441, offset 0x11040
-	0x11040: 0xe0004c3c, 0x11043: 0xe000619b,
-	0x11044: 0xe0009297, 0x11046: 0xe0005d8c,
-	0x11049: 0xe00041f0, 0x1104a: 0xe000988e,
-	0x11051: 0xe00074d2, 0x11052: 0xe0006950,
-	0x11054: 0xe00063cb, 0x11055: 0xe000985f, 0x11056: 0xe000528e, 0x11057: 0xe0009d12,
-	0x11058: 0xe000866c, 0x1105b: 0xe0009a38,
-	0x11068: 0xe00099df, 0x1106b: 0xe0009b22,
-	0x1106c: 0xe00097e2,
-	0x11071: 0xe0009a3b,
-	0x11075: 0xe000842c,
-	0x11079: 0xe0005a56,
-	0x1107c: 0xe00072d6, 0x1107d: 0xe00093db,
-	// Block 0x442, offset 0x11080
-	0x11082: 0xe00064bb,
-	0x11084: 0xe0008ad1, 0x11085: 0xe0004f39, 0x11086: 0xe00096ef, 0x11087: 0xe0005d02,
-	0x11088: 0xe0004e0c, 0x11089: 0xe00053e2, 0x1108a: 0xe00063ce,
-	0x1108c: 0xe0005eef, 0x1108d: 0xe0005e83, 0x1108f: 0xe0004d5f,
-	0x11090: 0xe000473f, 0x11091: 0xe0004238, 0x11092: 0xe0004079, 0x11093: 0xe000906f,
-	0x11094: 0xe0005f67, 0x11095: 0xe0009696, 0x11096: 0xe000967b, 0x11097: 0xe0007a71,
-	0x11098: 0xe000483b, 0x11099: 0xe00089b8, 0x1109b: 0xe000929a,
-	0x1109c: 0xe0006053,
-	0x110ac: 0xe0004698, 0x110ad: 0xe0007040, 0x110ae: 0xe0004d3e, 0x110af: 0xe0008be4,
-	0x110b1: 0xe0004551, 0x110b3: 0xe00049d6,
-	0x110b5: 0xe00089b0, 0x110b6: 0xe0008ede, 0x110b7: 0xe00043db,
-	0x110bd: 0xe00077e0, 0x110be: 0xe0006f5d, 0x110bf: 0xe0004d62,
-	// Block 0x443, offset 0x110c0
-	0x110c1: 0xe0008c22, 0x110c2: 0xe0004724,
-	0x110c7: 0xe0008c25,
-	0x110c9: 0xe0007226,
-	0x110cc: 0xe0004188,
-	0x110d0: 0xe0004d68, 0x110d1: 0xe00050ee, 0x110d2: 0xe0005587,
-	0x110e8: 0xe0007345, 0x110ea: 0xe0004d6b, 0x110eb: 0xe0008a38,
-	0x110ef: 0xe0008cc4,
-	0x110f9: 0xe0007fa5, 0x110fa: 0xe0008738, 0x110fb: 0xe00075e6,
-	0x110fd: 0xe00059fa, 0x110fe: 0xe0009f00,
-	// Block 0x444, offset 0x11100
-	0x11102: 0xe0007888, 0x11103: 0xe000497a,
-	0x11104: 0xe00048dd, 0x11106: 0xe00044ed,
-	0x11109: 0xe0008e42,
-	0x1110c: 0xe000990f, 0x1110d: 0xe0009c5a, 0x1110e: 0xe0006c7b, 0x1110f: 0xe0004d97,
-	0x11110: 0xe00075e2,
-	0x11115: 0xe0009a3e, 0x11117: 0xe00090a3,
-	0x11127: 0xe0006300,
-	0x11128: 0xe00066d6, 0x11129: 0xe000558b, 0x1112b: 0xe0005d90,
-	0x1112e: 0xe000407c,
-	0x11131: 0xe0007348, 0x11132: 0xe00049da,
-	0x11136: 0xe000942c, 0x11137: 0xe00091ef,
-	0x1113a: 0xe0004d9b, 0x1113b: 0xe0004e10,
-	0x1113f: 0xe0006953,
-	// Block 0x445, offset 0x11140
-	0x11140: 0xe000a472, 0x11143: 0xe0006c0f,
-	0x11144: 0xe0005843, 0x11147: 0xe0009183,
-	0x11148: 0xe0006d74, 0x11149: 0xe00050f1, 0x1114a: 0xe00063d1,
-	0x1114c: 0xe0008305, 0x1114e: 0xe0004cde, 0x1114f: 0xe000514e,
-	0x11152: 0xe0006056,
-	0x11156: 0xe0007377,
-	0x11158: 0xe000498e, 0x1115b: 0xe000471b,
-	0x1115c: 0xe00077e3, 0x1115f: 0xe00087f4,
-	0x11160: 0xe0005440, 0x11161: 0xe0008ffd, 0x11162: 0xe000975b,
-	0x11165: 0xe00086e0, 0x11167: 0xe0004555,
-	0x11168: 0xe00093de, 0x11169: 0xe0007532, 0x1116a: 0xe00088b9,
-	0x1116c: 0xe0004956,
-	0x1117e: 0xe0007652,
-	// Block 0x446, offset 0x11180
-	0x11180: 0xe0003e03, 0x11183: 0xe00085dc,
-	0x11184: 0xe0007df7, 0x11186: 0xe0004a67,
-	0x11189: 0xe0007e63,
-	0x1118f: 0xe0005ccf,
-	0x11190: 0xe0008841,
-	0x11196: 0xe0007f95,
-	0x1119a: 0xe0007428, 0x1119b: 0xe000a183,
-	0x1119f: 0xe000699b,
-	0x111a0: 0xe000726e, 0x111a1: 0xe00071d2, 0x111a3: 0xe0009504,
-	0x111a9: 0xe000403a, 0x111ab: 0xe000942f,
-	0x111ad: 0xe0004169, 0x111ae: 0xe000a3f4,
-	0x111b2: 0xe0006b07,
-	0x111b4: 0xe0007ccd, 0x111b5: 0xe00040f7, 0x111b6: 0xe00073ca, 0x111b7: 0xe000682f,
-	// Block 0x447, offset 0x111c0
-	0x111c6: 0xe00048e0,
-	0x111c9: 0xe0003dd7,
-	0x111cd: 0xe0006cdf, 0x111cf: 0xe0005e87,
-	0x111d2: 0xe0006023,
-	0x111d4: 0xe0006c12, 0x111d6: 0xe0007a74, 0x111d7: 0xe00050f4,
-	0x111dc: 0xe0006d77,
-	0x111e2: 0xe0008cc8,
-	0x111e4: 0xe0007393, 0x111e5: 0xe0009432,
-	0x111e8: 0xe000978b, 0x111ea: 0xe0005041, 0x111eb: 0xe0005f4b,
-	0x111ec: 0xe0005ef3, 0x111ed: 0xe000977b, 0x111ef: 0xe0005151,
-	0x111f0: 0xe0004521,
-	0x111f6: 0xe0008fbe,
-	0x111fa: 0xe000a40f,
-	0x111fe: 0xe0008e46,
-	// Block 0x448, offset 0x11200
-	0x11218: 0xe00084b4,
-	0x11220: 0xe000938b,
-	0x11227: 0xe00093c3,
-	0x11229: 0xe0005998,
-	0x1122d: 0xe00090a7, 0x1122f: 0xe0008c28,
-	0x11233: 0xe00048e3,
-	0x11238: 0xe0005c00, 0x11239: 0xe0005c03, 0x1123a: 0xe00086e4, 0x1123b: 0xe0006b47,
-	0x1123d: 0xe0009adc,
-	// Block 0x449, offset 0x11240
-	0x11245: 0xe0004a37,
-	0x11248: 0xe000564f,
-	0x11250: 0xe00097fa, 0x11251: 0xe00097f6, 0x11252: 0xe00067f7, 0x11253: 0xe0007a77,
-	0x11255: 0xe000699e,
-	0x11259: 0xe0008b68, 0x1125a: 0xe0004df8,
-	0x1125d: 0xe000a406, 0x1125e: 0xe000501d, 0x1125f: 0xe00047e1,
-	0x11264: 0xe000915b, 0x11265: 0xe0005f6b,
-	0x11269: 0xe0005780, 0x1126b: 0xe0005d05,
-	0x1126d: 0xe0009891, 0x1126e: 0xe00093b3,
-	0x11270: 0xe0008e6a, 0x11272: 0xe0005e8b,
-	0x1127b: 0xe0004f59,
-	0x1127c: 0xe0003f13, 0x1127e: 0xe00045d5, 0x1127f: 0xe0004147,
-	// Block 0x44a, offset 0x11280
-	0x11281: 0xe000791d,
-	0x11284: 0xe0005652, 0x11285: 0xe00090cb, 0x11287: 0xe00097ee,
-	0x11289: 0xe0008e62, 0x1128a: 0xe000416c,
-	0x1128d: 0xe00088bc, 0x1128e: 0xe0004288,
-	0x11290: 0xe000a1b7, 0x11292: 0xe0004b7a,
-	0x11294: 0xe0004f8d, 0x11295: 0xe000a41e, 0x11297: 0xe0006167,
-	0x11298: 0xe0006147, 0x1129a: 0xe000407f,
-	0x112a0: 0xe0008877, 0x112a1: 0xe0005094, 0x112a2: 0xe00096cb, 0x112a3: 0xe0005154,
-	0x112a5: 0xe00053b6, 0x112a6: 0xe0008ece, 0x112a7: 0xe0004082,
-	0x112ac: 0xe0007fcf, 0x112ad: 0xe000a13b, 0x112af: 0xe000663e,
-	0x112b1: 0xe0003ddb, 0x112b2: 0xe0009073,
-	0x112b4: 0xe000a147,
-	0x112ba: 0xe0009894,
-	0x112be: 0xe0007a7a,
-	// Block 0x44b, offset 0x112c0
-	0x112c0: 0xe0005ef7, 0x112c2: 0xe0005735,
-	0x112c4: 0xe0009802, 0x112c7: 0xe0009e18,
-	0x112ca: 0xe000550b,
-	0x112cf: 0xe0005705,
-	0x112d4: 0xe000538e,
-	0x112d8: 0xe000742c, 0x112d9: 0xe0008f22,
-	0x112dd: 0xe0006b5b,
-	0x112e2: 0xe0008eb6, 0x112e3: 0xe000552b,
-	0x112e4: 0xe000973f,
-	0x112ea: 0xe0004796, 0x112eb: 0xe000a14b,
-	0x112ec: 0xe00053ba, 0x112ef: 0xe0008c2b,
-	0x112f2: 0xe0004ce1,
-	0x112f6: 0xe0006d7a, 0x112f7: 0xe00043de,
-	0x112f8: 0xe0007dfa, 0x112f9: 0xe0004013, 0x112fb: 0xe0004559,
-	0x112fd: 0xe0005f4f, 0x112fe: 0xe0005fc3, 0x112ff: 0xe000873c,
-	// Block 0x44c, offset 0x11300
-	0x11305: 0xe00043e1,
-	0x11308: 0xe000a2f7, 0x11309: 0xe0005df3,
-	0x1130d: 0xe0006956, 0x1130e: 0xe0004799, 0x1130f: 0xe0005e1b,
-	0x11311: 0xe000483e,
-	0x11314: 0xe00074c1, 0x11315: 0xe00095ed, 0x11316: 0xe0007840, 0x11317: 0xe0009924,
-	0x1131d: 0xe0009a11, 0x1131e: 0xe0008f6a,
-	0x11322: 0xe0003ecb, 0x11323: 0xe000679f,
-	0x11326: 0xe00051b0,
-	0x1132c: 0xe000428c, 0x1132d: 0xe0007430,
-	0x11332: 0xe00043e4,
-	0x11334: 0xe0008740, 0x11335: 0xe00084b8, 0x11337: 0xe0006374,
-	0x11338: 0xe0006d7d,
-	0x1133e: 0xe0006a27,
-	// Block 0x44d, offset 0x11340
-	0x11341: 0xe0005291, 0x11342: 0xe0005597, 0x11343: 0xe0009a02,
-	0x11345: 0xe000a2fa, 0x11347: 0xe0005d60,
-	0x1134c: 0xe000660e,
-	0x11350: 0xe0006527, 0x11351: 0xe0005efb,
-	0x11357: 0xe0005273,
-	0x11359: 0xe0005762, 0x1135b: 0xe000448d,
-	0x1135c: 0xe00066d9, 0x1135d: 0xe0003d84, 0x1135f: 0xe0008db8,
-	0x11361: 0xe0007256,
-	0x11364: 0xe0004b1e, 0x11365: 0xe0009077, 0x11367: 0xe0006377,
-	0x1136b: 0xe0008235,
-	0x1136c: 0xe0008efa, 0x1136f: 0xe00066dc,
-	0x11370: 0xe0007094, 0x11371: 0xe0008265, 0x11372: 0xe0008e66,
-	0x11377: 0xe0004f01,
-	0x11379: 0xe0005fc7,
-	0x1137c: 0xe00074a6, 0x1137d: 0xe0006fca, 0x1137f: 0xe0007e66,
-	// Block 0x44e, offset 0x11380
-	0x11381: 0xe0005fcb, 0x11382: 0xe0004ce4, 0x11383: 0xe00085e0,
-	0x11384: 0xe0005c45, 0x11385: 0xe00054ad, 0x11386: 0xe000993f,
-	0x1138a: 0xe0006027, 0x1138b: 0xe0006a2b,
-	0x1138c: 0xe0008744, 0x1138f: 0xe0008994,
-	0x11392: 0xe00057e5,
-	0x11397: 0xe0004c3f,
-	0x113a0: 0xe0005d08, 0x113a3: 0xe0004c42,
-	0x113a5: 0xe0008121, 0x113a6: 0xe0004f05,
-	0x113a8: 0xe0008c2e, 0x113a9: 0xe00088bf,
-	0x113ac: 0xe0006e9c, 0x113ad: 0xe0007c25,
-	0x113b1: 0xe0009c22, 0x113b2: 0xe00050af,
-	0x113b4: 0xe0007ba5,
-	0x113ba: 0xe0007a04, 0x113bb: 0xe0005e1f,
-	0x113bc: 0xe0005e23, 0x113bd: 0xe00051b4, 0x113bf: 0xe0007843,
-	// Block 0x44f, offset 0x113c0
-	0x113c0: 0xe0007ee9, 0x113c3: 0xe000955b,
-	0x113c6: 0xe00044c5, 0x113c7: 0xe0006f91,
-	0x113c9: 0xe0005fcf, 0x113ca: 0xe0009ff1,
-	0x113cc: 0xe0008f6e, 0x113ce: 0xe0005bb7, 0x113cf: 0xe000a094,
-	0x113d0: 0xe000643b, 0x113d1: 0xe0004b7e, 0x113d3: 0xe00075a2,
-	0x113d4: 0xe00069c3, 0x113d5: 0xe000a45a,
-	0x113db: 0xe00040a0,
-	0x113de: 0xe00061e7, 0x113df: 0xe0006b9b,
-	0x113e0: 0xe000770e, 0x113e1: 0xe0009eac,
-	0x113e4: 0xe0005613, 0x113e5: 0xe00094b5, 0x113e7: 0xe0005aca,
-	0x113e8: 0xe0008239, 0x113eb: 0xe00048e6,
-	0x113ed: 0xe0006c15, 0x113ef: 0xe0006fcd,
-	0x113f0: 0xe0009bb7, 0x113f1: 0xe0007c29,
-	0x113f4: 0xe0005cd2, 0x113f5: 0xe0004ed4, 0x113f6: 0xe0008f72, 0x113f7: 0xe00078e9,
-	0x113fa: 0xe00061eb, 0x113fb: 0xe00072ee,
-	// Block 0x450, offset 0x11400
-	0x11401: 0xe00088c2, 0x11402: 0xe0006fd0, 0x11403: 0xe000a213,
-	0x11404: 0xe000a217,
-	0x11408: 0xe00047e4, 0x11409: 0xe0008ccc, 0x1140b: 0xe0008cd0,
-	0x1140c: 0xe00068df, 0x1140e: 0xe000a0f4, 0x1140f: 0xe000722a,
-	0x11419: 0xe0008b24, 0x1141b: 0xe0009e64,
-	0x1141d: 0xe0008a71, 0x1141e: 0xe000a4fb, 0x1141f: 0xe0006b9f,
-	0x11421: 0xe0009a74, 0x11422: 0xe0008688,
-	0x11424: 0xe0007846, 0x11425: 0xe000a18b, 0x11426: 0xe000a288, 0x11427: 0xe0009ff4,
-	0x11428: 0xe0007098, 0x11429: 0xe00059fe, 0x1142b: 0xe00096cf,
-	0x1142c: 0xe0006e0a, 0x1142e: 0xe0006243, 0x1142f: 0xe0004290,
-	0x11430: 0xe00069ef, 0x11433: 0xe00069c7,
-	0x11434: 0xe0009223, 0x11436: 0xe0008748, 0x11437: 0xe0004a52,
-	0x11438: 0xe000874c, 0x1143a: 0xe0008c31, 0x1143b: 0xe00072b2,
-	// Block 0x451, offset 0x11440
-	0x11444: 0xe000a3c1, 0x11447: 0xe0003d3c,
-	0x11448: 0xe000a399, 0x11449: 0xe000a3f7, 0x1144b: 0xe0005e47,
-	0x1144c: 0xe0004a97, 0x1144e: 0xe0007712,
-	0x11450: 0xe0007d70, 0x11451: 0xe0006959,
-	0x11456: 0xe0004d7b, 0x11457: 0xe0007296,
-	0x11458: 0xe0007434,
-	0x1145d: 0xe0005bbb, 0x1145e: 0xe00047e7,
-	0x11460: 0xe00043e7, 0x11462: 0xe0008f76, 0x11463: 0xe0004ce7,
-	0x1146b: 0xe00082a1,
-	0x1146c: 0xe0006b0b, 0x1146e: 0xe0005c06,
-	0x11471: 0xe0004ed8, 0x11472: 0xe0008309, 0x11473: 0xe0009fac,
-	0x11474: 0xe0009a96, 0x11475: 0xe0009c5e,
-	0x11478: 0xe0005783, 0x11479: 0xe0006b23, 0x1147b: 0xe0004294,
-	0x1147e: 0xe00051b8, 0x1147f: 0xe000a525,
-	// Block 0x452, offset 0x11480
-	0x11480: 0xe0007565, 0x11481: 0xe0004cea,
-	0x11484: 0xe00076e6, 0x11485: 0xe00076f2, 0x11486: 0xe00054f3, 0x11487: 0xe0004f91,
-	0x11489: 0xe000a2fd,
-	0x11493: 0xe0009a77,
-	0x11496: 0xe0007321,
-	0x11499: 0xe000695c, 0x1149a: 0xe0005ca3, 0x1149b: 0xe000a39d,
-	0x1149c: 0xe0007a7d, 0x1149d: 0xe0009a9a,
-	0x114a0: 0xe00046cc, 0x114a3: 0xe0007656,
-	0x114a6: 0xe000a4fe,
-	0x114a8: 0xe0005709, 0x114a9: 0xe0004dcb, 0x114aa: 0xe000532d,
-	0x114ac: 0xe0006d3e, 0x114ae: 0xe0007542, 0x114af: 0xe000934b,
-	0x114b0: 0xe00079fc, 0x114b2: 0xe0004491, 0x114b3: 0xe00077aa,
-	0x114b4: 0xe0004298, 0x114b7: 0xe0003e77,
-	0x114b8: 0xe000695f, 0x114b9: 0xe00088c8, 0x114ba: 0xe00088c5,
-	0x114bc: 0xe0005a02, 0x114be: 0xe0008be0, 0x114bf: 0xe0009252,
-	// Block 0x453, offset 0x114c0
-	0x114c0: 0xe00093bd, 0x114c3: 0xe000a28b,
-	0x114c5: 0xe0004123,
-	0x114c8: 0xe0007d41, 0x114c9: 0xe0007dfd, 0x114cb: 0xe00064e3,
-	0x114cc: 0xe0005f53, 0x114cd: 0xe0006294,
-	0x114d4: 0xe000677f, 0x114d5: 0xe0008dbc, 0x114d7: 0xe00053f6,
-	0x114db: 0xe0005a86,
-	0x114dd: 0xe00088cb, 0x114de: 0xe0004c45, 0x114df: 0xe0004c48,
-	0x114e3: 0xe0005248,
-	0x114e6: 0xe0005c93, 0x114e7: 0xe00056ed,
-	0x114e8: 0xe0005c63, 0x114ea: 0xe0005dba, 0x114eb: 0xe0005a5a,
-	0x114ec: 0xe00062e4, 0x114ed: 0xe0008ed2, 0x114ee: 0xe00094c5,
-	0x114f1: 0xe0008a74, 0x114f3: 0xe0009913,
-	0x114f4: 0xe0005e8f, 0x114f6: 0xe000967e,
-	0x114fa: 0xe0004a16,
-	0x114fd: 0xe000a348,
-	// Block 0x454, offset 0x11500
-	0x11505: 0xe0007bf9, 0x11506: 0xe0003e07,
-	0x11509: 0xe000680b,
-	0x1150e: 0xe00058b8, 0x1150f: 0xe0009db9,
-	0x11510: 0xe00083c4, 0x11511: 0xe000936b, 0x11513: 0xe0009ab2,
-	0x11516: 0xe000830d,
-	0x1151c: 0xe0005276, 0x1151e: 0xe0004c4b, 0x1151f: 0xe0006cb3,
-	0x11520: 0xe0003fcb,
-	0x1152a: 0xe0009300,
-	0x1152c: 0xe0007d11, 0x1152d: 0xe0009d16, 0x1152f: 0xe0006059,
-	0x11530: 0xe0004117, 0x11531: 0xe0005204, 0x11532: 0xe000443e, 0x11533: 0xe0005cd5,
-	0x11535: 0xe000842f, 0x11537: 0xe0009897,
-	0x1153b: 0xe0004ea0,
-	0x1153c: 0xe0008474, 0x1153e: 0xe0006d0b, 0x1153f: 0xe00098e7,
-	// Block 0x455, offset 0x11540
-	0x11547: 0xe000652a,
-	0x11549: 0xe0007a08, 0x1154b: 0xe0005fd3,
-	0x1154c: 0xe000646f, 0x1154f: 0xe0004da3,
-	0x11550: 0xe00069cb, 0x11553: 0xe0005279,
-	0x11555: 0xe0009619, 0x11557: 0xe000596c,
-	0x11558: 0xe00077e6, 0x11559: 0xe0007982, 0x1155a: 0xe0005acd,
-	0x1155c: 0xe00045ab, 0x1155d: 0xe0008c34,
-	0x1156f: 0xe00043ea,
-	0x11570: 0xe00099cf, 0x11572: 0xe000700f, 0x11573: 0xe0008c37,
-	0x11576: 0xe0003d3f, 0x11577: 0xe0003d42,
-	0x11578: 0xe0004841,
-	0x1157e: 0xe0006fd3,
-	// Block 0x456, offset 0x11580
-	0x11581: 0xe0009699,
-	0x11584: 0xe00061ef, 0x11585: 0xe0004ec0,
-	0x1158a: 0xe0008a0c,
-	0x1158f: 0xe000609b,
-	0x11590: 0xe0005c09, 0x11591: 0xe0003ecf, 0x11592: 0xe0009609, 0x11593: 0xe0007692,
-	0x11594: 0xe0007e00, 0x11597: 0xe0006d23,
-	0x11598: 0xe00081e7, 0x11599: 0xe0009ce6, 0x1159a: 0xe0007e03,
-	0x1159d: 0xe00096d3, 0x1159e: 0xe0008269, 0x1159f: 0xe0004db7,
-	0x115a2: 0xe0008477,
-	0x115a9: 0xe0004844,
-	0x115ac: 0xe0003e0b, 0x115af: 0xe0003d45,
-	0x115b0: 0xe0004dd8, 0x115b1: 0xe0008a77, 0x115b3: 0xe00057e8,
-	0x115b4: 0xe0006fd6, 0x115b5: 0xe000901c, 0x115b6: 0xe00066df,
-	0x115b9: 0xe0007012, 0x115bb: 0xe00066e2,
-	0x115be: 0xe0008750,
-	// Block 0x457, offset 0x115c0
-	0x115c3: 0xe000a2b2,
-	0x115d2: 0xe0006ea0, 0x115d3: 0xe000855c,
-	0x115d6: 0xe0006962, 0x115d7: 0xe000584f,
-	0x115dd: 0xe00046a4, 0x115de: 0xe0003e4b,
-	0x115e1: 0xe000479c, 0x115e2: 0xe000609f,
-	0x115ea: 0xe0008a7a,
-	0x115ee: 0xe0008068, 0x115ef: 0xe0007c2d,
-	0x115f1: 0xe000457d, 0x115f2: 0xe0004441,
-	0x115f4: 0xe00085e4,
-	0x115f8: 0xe0009da5, 0x115f9: 0xe0004b22, 0x115fb: 0xe0007074,
-	0x115fc: 0xe0004170, 0x115fd: 0xe00083c7,
-	// Block 0x458, offset 0x11600
-	0x11600: 0xe000411b, 0x11601: 0xe0009d1a, 0x11602: 0xe000436c, 0x11603: 0xe00050f7,
-	0x11604: 0xe00046f0, 0x11606: 0xe00046f4,
-	0x11608: 0xe000722e, 0x11609: 0xe0007246,
-	0x1160e: 0xe0008d7c,
-	0x11610: 0xe0005208, 0x11611: 0xe0006897, 0x11613: 0xe000a18f,
-	0x11614: 0xe0004d42,
-	0x1162d: 0xe0008cd4, 0x1162f: 0xe00087f8,
-	0x11634: 0xe00063d4, 0x11636: 0xe0009821, 0x11637: 0xe0003ddf,
-	0x1163e: 0xe000497e, 0x1163f: 0xe0003e0f,
-	// Block 0x459, offset 0x11640
-	0x11641: 0xe000545c, 0x11643: 0xe00087fc,
-	0x11645: 0xe0005ad0, 0x11646: 0xe000602b,
-	0x1164f: 0xe0004495,
-	0x11653: 0xe00083ca,
-	0x11654: 0xe0009575, 0x11657: 0xe000429c,
-	0x1165b: 0xe0004d6e,
-	0x1165d: 0xe00088ce, 0x1165f: 0xe000a300,
-	0x11660: 0xe00054d7, 0x11661: 0xe00079a0, 0x11662: 0xe000929d, 0x11663: 0xe0007138,
-	0x11667: 0xe0007849,
-	0x11668: 0xe00058bb,
-	0x1166d: 0xe00066e5, 0x1166f: 0xe0008844,
-	0x11670: 0xe000436f, 0x11671: 0xe00044c9, 0x11673: 0xe0006c18,
-	0x11675: 0xe000610b, 0x11676: 0xe0005dbd,
-	// Block 0x45a, offset 0x11680
-	0x11684: 0xe0004c51, 0x11685: 0xe00061f3,
-	0x11689: 0xe0005b67, 0x1168a: 0xe0004ced, 0x1168b: 0xe0004c4e,
-	0x1168c: 0xe0009012, 0x1168d: 0xe00044cd,
-	0x11690: 0xe000659c, 0x11692: 0xe0006304,
-	0x11695: 0xe00089d4, 0x11696: 0xe0008800, 0x11697: 0xe00088d1,
-	0x11698: 0xe0004af2, 0x1169a: 0xe00064e7,
-	0x1169f: 0xe000520c,
-	0x116a0: 0xe0005021, 0x116a3: 0xe0009270,
-	0x116a7: 0xe0008281,
-	0x116a8: 0xe0004372,
-	0x116ac: 0xe00049f2, 0x116ae: 0xe000680f,
-	0x116b2: 0xe0006965,
-	0x116b9: 0xe00050fa, 0x116ba: 0xe0004624, 0x116bb: 0xe0006473,
-	0x116bc: 0xe0006477,
-	// Block 0x45b, offset 0x116c0
-	0x116c0: 0xe00079a4, 0x116c1: 0xe0004600,
-	0x116c4: 0xe00086ec, 0x116c5: 0xe0007fd2,
-	0x116cb: 0xe0005488,
-	0x116cd: 0xe0007044, 0x116ce: 0xe00093e1,
-	0x116d1: 0xe000659f, 0x116d2: 0xe00092a0,
-	0x116d9: 0xe0008fc2,
-	0x116e7: 0xe0005bbf,
-	0x116f0: 0xe00073cd,
-	0x116f4: 0xe0004f3d, 0x116f6: 0xe0008a10,
-	0x116f9: 0xe000963d,
-	0x116fd: 0xe00075ea, 0x116ff: 0xe00094b9,
-	// Block 0x45c, offset 0x11700
-	0x11702: 0xe0006751,
-	0x1170a: 0xe0007438,
-	0x1170f: 0xe0004a9a,
-	0x11713: 0xe0009b03,
-	0x11714: 0xe0006ad3, 0x11715: 0xe0009681, 0x11717: 0xe00040df,
-	0x11719: 0xe0005d0b, 0x1171a: 0xe00092a3,
-	0x1171d: 0xe0005557, 0x1171e: 0xe0005887,
-	0x11720: 0xe0004da7, 0x11721: 0xe0007e06, 0x11722: 0xe0007e09, 0x11723: 0xe0005dc0,
-	0x11725: 0xe0007d15,
-	0x11728: 0xe0008754, 0x1172a: 0xe00086f0, 0x1172b: 0xe0008bc4,
-	0x1172c: 0xe0003e9b, 0x1172d: 0xe0007556, 0x1172e: 0xe0008432, 0x1172f: 0xe0006ea4,
-	0x11733: 0xe0005aeb,
-	0x11735: 0xe0004af6, 0x11737: 0xe0009d62,
-	0x11738: 0xe00093e4, 0x11739: 0xe0007716,
-	// Block 0x45d, offset 0x11740
-	0x1174e: 0xe0003d87,
-	0x11751: 0xe00063d7,
-	0x11754: 0xe0005412, 0x11755: 0xe0007b21,
-	0x11758: 0xe00048e9, 0x1175b: 0xe0008cd8,
-	0x1175c: 0xe0005fd7, 0x1175f: 0xe00083f1,
-	0x11764: 0xe0004127, 0x11765: 0xe000a21b, 0x11766: 0xe0003e4f, 0x11767: 0xe000652d,
-	0x1176d: 0xe0006754, 0x1176e: 0xe000771a,
-	0x11770: 0xe0008c7c, 0x11771: 0xe00093c6,
-	0x11774: 0xe00057eb, 0x11777: 0xe00047ea,
-	0x1177b: 0xe000977f,
-	0x1177c: 0xe0009cea, 0x1177e: 0xe0004525,
-	// Block 0x45e, offset 0x11780
-	0x11780: 0xe0004444, 0x11781: 0xe00043ed, 0x11783: 0xe0005eff,
-	0x11787: 0xe00085e8,
-	0x1178a: 0xe0006783, 0x1178b: 0xe0004847,
-	0x1178c: 0xe0009844, 0x1178d: 0xe0008f7a, 0x1178e: 0xe0008e39,
-	0x11790: 0xe0004742, 0x11793: 0xe0004581,
-	0x117a5: 0xe0009fc7, 0x117a6: 0xe0007b6d, 0x117a7: 0xe0008f26,
-	0x117a8: 0xe00045f4, 0x117a9: 0xe000403d, 0x117aa: 0xe0004016,
-	0x117ad: 0xe0006917,
-	0x117b2: 0xe00044a9,
-	0x117b9: 0xe0004447, 0x117bb: 0xe0004a6a,
-	0x117bd: 0xe00088d4, 0x117bf: 0xe0004b26,
-	// Block 0x45f, offset 0x117c0
-	0x117c0: 0xe0008504, 0x117c2: 0xe00071d6,
-	0x117c5: 0xe0008a14,
-	0x117ca: 0xe00060b7, 0x117cb: 0xe0009839,
-	0x117d1: 0xe0005460, 0x117d2: 0xe0005e73, 0x117d3: 0xe00057af,
-	0x117d4: 0xe0006c7e, 0x117d7: 0xe0008435,
-	0x117d9: 0xe0009ab5, 0x117db: 0xe0004a9d,
-	0x117de: 0xe00093e7, 0x117df: 0xe0008311,
-	0x117e1: 0xe0005c0c, 0x117e3: 0xe000743c,
-	0x117eb: 0xe00041cc,
-	0x117f5: 0xe00092a6,
-	0x117f8: 0xe0005e93, 0x117f9: 0xe0006d80, 0x117fa: 0xe000a111, 0x117fb: 0xe0004a3a,
-	0x117fd: 0xe0008b28,
-	// Block 0x460, offset 0x11800
-	0x11803: 0xe00060fb,
-	0x11804: 0xe0003ed3, 0x11807: 0xe000953d,
-	0x11808: 0xe0007a80, 0x1180a: 0xe000580c, 0x1180b: 0xe000479f,
-	0x11810: 0xe00096f3, 0x11812: 0xe0007c49, 0x11813: 0xe0006ea8,
-	0x11818: 0xe0004ade, 0x11819: 0xe00052cf, 0x1181a: 0xe0006e80,
-	0x1181f: 0xe0004c54,
-	0x11821: 0xe000689b, 0x11822: 0xe000969c,
-	0x11826: 0xe000524c,
-	0x1182b: 0xe000a2da,
-	0x11835: 0xe00067cf,
-	0x1183f: 0xe0003fcf,
-	// Block 0x461, offset 0x11840
-	0x11840: 0xe0004f09,
-	0x11844: 0xe0004174,
-	0x11849: 0xe0008758,
-	0x1184d: 0xe00074d6, 0x1184e: 0xe0004b82,
-	0x11850: 0xe00091cf,
-	0x11854: 0xe0005045, 0x11857: 0xe000614b,
-	0x1185c: 0xe000a28e, 0x1185d: 0xe0008bd0, 0x1185f: 0xe0003d8a,
-	0x11860: 0xe000431c, 0x11862: 0xe0004137, 0x11863: 0xe0008315,
-	0x1186e: 0xe0005157,
-	0x11873: 0xe0006612,
-	0x11876: 0xe00076ca,
-	0x1187b: 0xe0009c92,
-	0x1187c: 0xe0007f41, 0x1187f: 0xe00076c6,
-	// Block 0x462, offset 0x11880
-	0x11882: 0xe00050fd, 0x11883: 0xe0004a19,
-	0x11893: 0xe0005655,
-	0x1189a: 0xe00054b0, 0x1189b: 0xe0008bbc,
-	0x1189c: 0xe000444a, 0x1189d: 0xe00051a0, 0x1189e: 0xe000765a, 0x1189f: 0xe000550f,
-	0x118aa: 0xe0005513,
-	0x118ac: 0xe00095f5,
-	0x118b6: 0xe0009e04,
-	0x118bb: 0xe000739b,
-	0x118bc: 0xe00091d3,
-	// Block 0x463, offset 0x118c0
-	0x118c2: 0xe0005ecb, 0x118c3: 0xe0008f2a,
-	0x118c4: 0xe000536e,
-	0x118ca: 0xe00049de,
-	0x118cc: 0xe0008319,
-	0x118d1: 0xe0008eba, 0x118d2: 0xe0005372,
-	0x118d6: 0xe00053be,
-	0x118de: 0xe0005617,
-	0x118e0: 0xe000a4a6, 0x118e1: 0xe0008e15, 0x118e3: 0xe000a45e,
-	0x118ec: 0xe0009d89,
-	0x118f2: 0xe0007ae1,
-	0x118f7: 0xe000a528,
-	0x118f8: 0xe000734b, 0x118f9: 0xe0008002, 0x118fa: 0xe0004c57, 0x118fb: 0xe000a3b5,
-	0x118fd: 0xe000a4aa, 0x118fe: 0xe0004628, 0x118ff: 0xe0003f17,
-	// Block 0x464, offset 0x11900
-	0x11903: 0xe0006847,
-	0x11906: 0xe000a4ae, 0x11907: 0xe0009e1c,
-	0x11909: 0xe000423c,
-	0x1190c: 0xe0003d48, 0x1190e: 0xe0009727,
-	0x11910: 0xe000484a,
-	0x11914: 0xe0009dfd,
-	0x11919: 0xe000a4ca, 0x1191a: 0xe0006aa3, 0x1191b: 0xe0003f1b,
-	0x1191f: 0xe0007575,
-	0x11920: 0xe0009187, 0x11921: 0xe000a187, 0x11922: 0xe0008c3a, 0x11923: 0xe000875c,
-	0x11924: 0xe0008e18, 0x11925: 0xe0006246, 0x11926: 0xe0005d0e, 0x11927: 0xe0004cf0,
-	0x1192a: 0xe0007a26,
-	0x11932: 0xe0006bd9,
-	0x11937: 0xe00054f7,
-	0x11938: 0xe0004a55, 0x1193b: 0xe00066e8,
-	0x1193f: 0xe0005c87,
-	// Block 0x465, offset 0x11940
-	0x11940: 0xe0007ac5, 0x11942: 0xe000894c, 0x11943: 0xe00072f2,
-	0x11944: 0xe0008cdc, 0x11946: 0xe00097be,
-	0x11949: 0xe0006eac, 0x1194a: 0xe0006d83,
-	0x1194d: 0xe0009adf,
-	0x11951: 0xe0004c02,
-	0x11956: 0xe0007048,
-	0x11958: 0xe0008285,
-	0x1195e: 0xe0007c4d,
-	0x11962: 0xe0009273,
-	0x11964: 0xe00068e3,
-	0x1196b: 0xe0009743,
-	0x1196d: 0xe0003fd3, 0x1196e: 0xe000559b, 0x1196f: 0xe0006616,
-	0x11972: 0xe0006b27, 0x11973: 0xe0006e0d,
-	0x11975: 0xe0004f0d, 0x11977: 0xe0007f1d,
-	0x1197a: 0xe00067fb,
-	0x1197c: 0xe0003db3, 0x1197d: 0xe000a31e, 0x1197f: 0xe0008560,
-	// Block 0x466, offset 0x11980
-	0x11981: 0xe000a3df,
-	0x11984: 0xe000418c, 0x11985: 0xe0007fd5, 0x11986: 0xe000484d,
-	0x1198b: 0xe0005d11,
-	0x1198d: 0xe0005c0f, 0x1198f: 0xe0005ad3,
-	0x11992: 0xe0005178, 0x11993: 0xe0007eb5,
-	0x11994: 0xe0006530, 0x11996: 0xe0006533, 0x11997: 0xe0006536,
-	0x11998: 0xe0006539, 0x1199a: 0xe0008f2e, 0x1199b: 0xe0005c12,
-	0x119ab: 0xe0009ff7,
-	0x119ac: 0xe0004850, 0x119af: 0xe0004fd9,
-	0x119b3: 0xe0009540,
-	0x119bf: 0xe00067ef,
-	// Block 0x467, offset 0x119c0
-	0x119c5: 0xe0008fc6,
-	0x119c8: 0xe0008564,
-	0x119cf: 0xe0007160,
-	0x119d0: 0xe000847a, 0x119d1: 0xe0005e27, 0x119d3: 0xe0005b27,
-	0x119db: 0xe000647b,
-	0x119e3: 0xe0004c5a,
-	0x119e4: 0xe00080f9,
-	0x119f3: 0xe00078ed,
-	0x119f4: 0xe0006d86, 0x119f7: 0xe0006672,
-	0x119f8: 0xe000771e,
-	0x119fe: 0xe000610f, 0x119ff: 0xe0004a3d,
-	// Block 0x468, offset 0x11a00
-	0x11a00: 0xe0008760, 0x11a01: 0xe0008bc8, 0x11a02: 0xe0004853, 0x11a03: 0xe0009917,
-	0x11a0b: 0xe000826d,
-	0x11a0e: 0xe0006113, 0x11a0f: 0xe00050b2,
-	0x11a10: 0xe00069cf, 0x11a12: 0xe0005aaa,
-	0x11a14: 0xe000a496, 0x11a15: 0xe00067a3, 0x11a17: 0xe0009c26,
-	0x11a19: 0xe000788b, 0x11a1a: 0xe000784c, 0x11a1b: 0xe00070e4,
-	0x11a1c: 0xe0006757, 0x11a1d: 0xe0007578, 0x11a1e: 0xe000a0d4, 0x11a1f: 0xe0003f7b,
-	0x11a20: 0xe0008c3d,
-	0x11a28: 0xe0004519, 0x11a2a: 0xe0007a0c,
-	0x11a2d: 0xe00077ad,
-	0x11a30: 0xe00097c1, 0x11a32: 0xe0004bca,
-	0x11a34: 0xe0009903, 0x11a36: 0xe0005d64,
-	0x11a3a: 0xe00041f4,
-	0x11a3d: 0xe0004c5d, 0x11a3e: 0xe000643f,
-	// Block 0x469, offset 0x11a40
-	0x11a41: 0xe0007120, 0x11a42: 0xe0004c60, 0x11a43: 0xe00078b9,
-	0x11a44: 0xe0007c79, 0x11a45: 0xe0007cd1, 0x11a46: 0xe0009d1e, 0x11a47: 0xe00075ee,
-	0x11a48: 0xe000961d, 0x11a49: 0xe0009641,
-	0x11a4c: 0xe00051bc, 0x11a4d: 0xe000a060,
-	0x11a50: 0xe0005c67, 0x11a52: 0xe0005c8b, 0x11a53: 0xe0004ff5,
-	0x11a54: 0xe0005b6b, 0x11a55: 0xe0005da0, 0x11a56: 0xe00094d9,
-	0x11a58: 0xe00065a2, 0x11a59: 0xe00066eb, 0x11a5a: 0xe0008c40, 0x11a5b: 0xe0009927,
-	0x11a6b: 0xe0005a5e,
-	0x11a6c: 0xe0005aee, 0x11a6e: 0xe0008438,
-	0x11a70: 0xe00096f7, 0x11a71: 0xe000969f, 0x11a73: 0xe0009bba,
-	0x11a78: 0xe000653c, 0x11a79: 0xe0007e0c, 0x11a7b: 0xe0009578,
-	0x11a7c: 0xe0006c1b, 0x11a7d: 0xe00043f0, 0x11a7e: 0xe00091a3, 0x11a7f: 0xe00075f2,
-	// Block 0x46a, offset 0x11a80
-	0x11a81: 0xe000a21f, 0x11a82: 0xe0009f50,
-	0x11a84: 0xe0006ad7, 0x11a85: 0xe0006e10, 0x11a86: 0xe0008135,
-	0x11a89: 0xe00090cf, 0x11a8a: 0xe0005e97,
-	0x11a8c: 0xe0009b50,
-	0x11a90: 0xe000586f, 0x11a91: 0xe0007e69, 0x11a93: 0xe000a0d8,
-	0x11a94: 0xe0003f1f, 0x11a95: 0xe0006133, 0x11a97: 0xe00066ee,
-	0x11a99: 0xe00099e3, 0x11a9a: 0xe00081ea, 0x11a9b: 0xe0006117,
-	0x11a9c: 0xe0008c7f, 0x11a9d: 0xe0006c81,
-	0x11aa0: 0xe000561b, 0x11aa1: 0xe0009a41, 0x11aa2: 0xe000989a, 0x11aa3: 0xe0007f99,
-	0x11aa5: 0xe0004eb7,
-	0x11aa8: 0xe0008a7d, 0x11aab: 0xe0009e68,
-	0x11aae: 0xe0005f03, 0x11aaf: 0xe0005e2b,
-	0x11ab0: 0xe00097c4, 0x11ab1: 0xe0007306, 0x11ab3: 0xe0007722,
-	// Block 0x46b, offset 0x11ac0
-	0x11ac4: 0xe000a2b5, 0x11ac7: 0xe00080fd,
-	0x11aca: 0xe0009113, 0x11acb: 0xe0007440,
-	0x11acc: 0xe000557b,
-	0x11ad1: 0xe0006249, 0x11ad2: 0xe0006bee,
-	0x11ad7: 0xe0006bdc,
-	0x11ad9: 0xe0006d89, 0x11adb: 0xe0005342,
-	0x11ade: 0xe0005210, 0x11adf: 0xe000806b,
-	0x11ae5: 0xe0008ce0, 0x11ae7: 0xe0007e0f,
-	0x11ae9: 0xe0006adb, 0x11aea: 0xe000a0dc, 0x11aeb: 0xe0009e48,
-	0x11aec: 0xe0006ccf, 0x11aee: 0xe000515a,
-	0x11af2: 0xe0008a80,
-	0x11af5: 0xe0006eb0, 0x11af6: 0xe000a446,
-	0x11af8: 0xe00046d0, 0x11af9: 0xe0007cd5, 0x11afa: 0xe0005be7, 0x11afb: 0xe000a1df,
-	0x11afc: 0xe0007985, 0x11afd: 0xe000a4be, 0x11afe: 0xe000989d,
-	// Block 0x46c, offset 0x11b00
-	0x11b01: 0xe00057ee,
-	0x11b19: 0xe0008670, 0x11b1a: 0xe0008b2c,
-	0x11b1c: 0xe000661a,
-	0x11b21: 0xe0005f93, 0x11b23: 0xe00079a8,
-	0x11b24: 0xe0004771, 0x11b25: 0xe0007fa9, 0x11b26: 0xe0009a44, 0x11b27: 0xe000777a,
-	0x11b29: 0xe0009ffa, 0x11b2a: 0xe00053fa,
-	0x11b2c: 0xe00058be, 0x11b2e: 0xe000637a,
-	0x11b34: 0xe0007ae5, 0x11b37: 0xe0009d65,
-	0x11b38: 0xe0009621, 0x11b39: 0xe0009f04,
-	0x11b3f: 0xe000992a,
-	// Block 0x46d, offset 0x11b40
-	0x11b42: 0xe000515d,
-	0x11b45: 0xe000767e, 0x11b47: 0xe00042a0,
-	0x11b48: 0xe0006c1e, 0x11b49: 0xe0006b5f,
-	0x11b4c: 0xe0007b25, 0x11b4d: 0xe000a303, 0x11b4e: 0xe00075f6,
-	0x11b51: 0xe0006cb7, 0x11b53: 0xe00075fa,
-	0x11b54: 0xe00082b5, 0x11b55: 0xe0009255, 0x11b56: 0xe00058fa,
-	0x11b6a: 0xe00063da, 0x11b6b: 0xe0004658,
-	0x11b6f: 0xe0007324,
-	0x11b72: 0xe000737b,
-	0x11b74: 0xe00079f4, 0x11b75: 0xe0009c96, 0x11b77: 0xe0005250,
-	0x11b78: 0xe000a360,
-	0x11b7c: 0xe000548c, 0x11b7f: 0xe00096fb,
-	// Block 0x46e, offset 0x11b80
-	0x11b80: 0xe0008764, 0x11b83: 0xe00049e2,
-	0x11b84: 0xe000957b, 0x11b85: 0xe00069d3, 0x11b86: 0xe000a306, 0x11b87: 0xe0004c63,
-	0x11b88: 0xe000499e, 0x11b8b: 0xe0005970,
-	0x11b8f: 0xe0009ffd,
-	0x11b91: 0xe0006e54, 0x11b92: 0xe000904c,
-	0x11b96: 0xe0004e7e,
-	0x11b98: 0xe0005100, 0x11b99: 0xe00089d8, 0x11b9a: 0xe00057b2,
-	0x11b9d: 0xe00065a5, 0x11b9e: 0xe0006d0f,
-	0x11ba0: 0xe00065a8, 0x11ba1: 0xe0004f95, 0x11ba2: 0xe00075c2,
-	0x11ba4: 0xe00074c4, 0x11ba5: 0xe00056cd, 0x11ba6: 0xe0003f23,
-	0x11ba8: 0xe0008768, 0x11baa: 0xe0005837, 0x11bab: 0xe0007f6d,
-	0x11bac: 0xe0006f43, 0x11bae: 0xe000a291,
-	0x11bb1: 0xe0007124, 0x11bb3: 0xe0006eb4,
-	0x11bb5: 0xe00075fe, 0x11bb6: 0xe0005436, 0x11bb7: 0xe000a098,
-	0x11bb8: 0xe0009227, 0x11bb9: 0xe0007536, 0x11bba: 0xe00090d3, 0x11bbb: 0xe00091a7,
-	0x11bbc: 0xe0005ce7,
-	// Block 0x46f, offset 0x11bc0
-	0x11bd7: 0xe0006813,
-	0x11bd9: 0xe000a193, 0x11bda: 0xe000843b, 0x11bdb: 0xe0003ed7,
-	0x11bdd: 0xe000986b, 0x11bdf: 0xe000876c,
-	0x11be0: 0xe0004085, 0x11be1: 0xe0005103, 0x11be3: 0xe00066f1,
-	0x11be4: 0xe0005f6f, 0x11be5: 0xe00071da, 0x11be6: 0xe0007961,
-	0x11be8: 0xe0007a47, 0x11beb: 0xe0006adf,
-	0x11bec: 0xe0009553, 0x11bed: 0xe0007d73, 0x11bef: 0xe0009d22,
-	0x11bf2: 0xe0006a2f,
-	0x11bf4: 0xe0003e7b, 0x11bf6: 0xe0007726, 0x11bf7: 0xe000765e,
-	0x11bf8: 0xe0007e12, 0x11bfa: 0xe0005cd8,
-	0x11bfc: 0xe0005dc3, 0x11bfd: 0xe00083cd, 0x11bfe: 0xe000a09c,
-	// Block 0x470, offset 0x11c00
-	0x11c03: 0xe000605c,
-	0x11c04: 0xe0005dc6, 0x11c05: 0xe000555b,
-	0x11c0a: 0xe0008a83,
-	0x11c0d: 0xe0004f11, 0x11c0e: 0xe0005b8b,
-	0x11c11: 0xe00069a1, 0x11c13: 0xe000647f,
-	0x11c14: 0xe00085ec, 0x11c16: 0xe000a000,
-	0x11c18: 0xe000689f, 0x11c1b: 0xe0004f99,
-	0x11c1c: 0xe000704c, 0x11c1e: 0xe0008770, 0x11c1f: 0xe000a223,
-	0x11c23: 0xe0005e4b,
-	0x11c27: 0xe0007b29,
-	0x11c2b: 0xe00093ea,
-	0x11c2e: 0xe00080c9, 0x11c2f: 0xe0009797,
-	0x11c32: 0xe0007cd9, 0x11c33: 0xe0004dab,
-	0x11c3a: 0xe000624c,
-	// Block 0x471, offset 0x11c40
-	0x11c4f: 0xe0005049,
-	0x11c50: 0xe0007cdd,
-	0x11c55: 0xe0005ca7, 0x11c56: 0xe0008b30,
-	0x11c58: 0xe0009cee,
-	0x11c5c: 0xe00057f1, 0x11c5d: 0xe0004856, 0x11c5f: 0xe0005bc3,
-	0x11c62: 0xe0008125,
-	0x11c65: 0xe000637d, 0x11c67: 0xe0005857,
-	0x11c6a: 0xe0004375, 0x11c6b: 0xe00078c9,
-	0x11c6f: 0xe0006c21,
-	0x11c71: 0xe0008ce4, 0x11c72: 0xe0006e13,
-	0x11c75: 0xe0007f45, 0x11c76: 0xe0007b2d, 0x11c77: 0xe000a0b0,
-	0x11c7a: 0xe0004ed0,
-	0x11c7d: 0xe0007af5,
-	// Block 0x472, offset 0x11c80
-	0x11c82: 0xe0005fdb, 0x11c83: 0xe0007945,
-	0x11c84: 0xe0008f7e, 0x11c85: 0xe0005b9b,
-	0x11c88: 0xe000a063, 0x11c89: 0xe000a227, 0x11c8b: 0xe00081ab,
-	0x11c8c: 0xe000907b, 0x11c8e: 0xe0009f54,
-	0x11c91: 0xe000a1e3, 0x11c93: 0xe00083d0,
-	0x11c94: 0xe0005106, 0x11c95: 0xe00052f7,
-	0x11c99: 0xe000a2b8,
-	0x11cac: 0xe000a066, 0x11cad: 0xe0009b74, 0x11caf: 0xe0009258,
-	0x11cb4: 0xe00084bc, 0x11cb5: 0xe0005e77, 0x11cb7: 0xe0005682,
-	0x11cb8: 0xe000a003,
-	0x11cbe: 0xe00044d1, 0x11cbf: 0xe0005a06,
-	// Block 0x473, offset 0x11cc0
-	0x11cc1: 0xe00074a9, 0x11cc2: 0xe0009ab8,
-	0x11cc4: 0xe000734e, 0x11cc6: 0xe000960d,
-	0x11cc9: 0xe00056d1,
-	0x11ccc: 0xe0004b5e, 0x11ccf: 0xe00057b5,
-	0x11cd1: 0xe0004019, 0x11cd3: 0xe00058fd,
-	0x11cd4: 0xe0007602, 0x11cd5: 0xe00088d7,
-	0x11cd9: 0xe0004f41, 0x11cda: 0xe00048ec,
-	0x11ce0: 0xe00059ca, 0x11ce2: 0xe0009c2a, 0x11ce3: 0xe000552f,
-	0x11cea: 0xe0008005, 0x11ceb: 0xe0005a0a,
-	0x11cec: 0xe0008c43, 0x11ced: 0xe0005aae,
-	0x11cf0: 0xe00064fb, 0x11cf1: 0xe0006d8c, 0x11cf2: 0xe0008f82, 0x11cf3: 0xe0008385,
-	0x11cf8: 0xe000869c,
-	0x11cfc: 0xe00093c9, 0x11cfe: 0xe0007478, 0x11cff: 0xe000831d,
-	// Block 0x474, offset 0x11d00
-	0x11d01: 0xe000772a,
-	0x11d0f: 0xe0007ef5,
-	0x11d11: 0xe0005f73,
-	0x11d14: 0xe00041f8, 0x11d17: 0xe0008dc8,
-	0x11d18: 0xe0005f07, 0x11d19: 0xe0004aa0, 0x11d1a: 0xe0006e58, 0x11d1b: 0xe00082a5,
-	0x11d1c: 0xe00082b9, 0x11d1d: 0xe000a4ce, 0x11d1e: 0xe0005658, 0x11d1f: 0xe00069d7,
-	0x11d21: 0xe00051d4, 0x11d22: 0xe000a22b,
-	0x11d24: 0xe0007ed1, 0x11d26: 0xe0005786,
-	0x11d2d: 0xe0004f9d, 0x11d2e: 0xe00088da, 0x11d2f: 0xe000713c,
-	0x11d30: 0xe0004a1c,
-	0x11d34: 0xe000847d,
-	0x11d38: 0xe00067d3, 0x11d3a: 0xe0008289,
-	0x11d3c: 0xe0005214, 0x11d3d: 0xe000624f, 0x11d3e: 0xe000591c,
-	// Block 0x475, offset 0x11d40
-	0x11d41: 0xe0006833, 0x11d42: 0xe0008df0,
-	0x11d44: 0xe0008dec, 0x11d46: 0xe0007ac8,
-	0x11d48: 0xe000915f, 0x11d49: 0xe0003f27, 0x11d4b: 0xe000a2e2,
-	0x11d4c: 0xe0007015, 0x11d4d: 0xe0008a86, 0x11d4e: 0xe000994f,
-	0x11d50: 0xe0007c51, 0x11d52: 0xe000a0f8,
-	0x11d54: 0xe000a006, 0x11d57: 0xe0003e13,
-	0x11d58: 0xe00067d7,
-	0x11d5f: 0xe000587f,
-	0x11d61: 0xe000894f, 0x11d63: 0xe0009c2e,
-	0x11d64: 0xe00097f2, 0x11d67: 0xe000563a,
-	0x11d68: 0xe00069a4,
-	0x11d6e: 0xe000a294, 0x11d6f: 0xe0008e6e,
-	0x11d71: 0xe0008568, 0x11d73: 0xe000784f,
-	0x11d76: 0xe00085f0,
-	0x11d79: 0xe0004fa1,
-	0x11d7e: 0xe0004f5d,
-	// Block 0x476, offset 0x11d80
-	0x11d80: 0xe0004178, 0x11d81: 0xe00096d7, 0x11d82: 0xe000559f, 0x11d83: 0xe0004e50,
-	0x11d86: 0xe0006483, 0x11d87: 0xe000691b,
-	0x11d89: 0xe0006e16, 0x11d8a: 0xe00077b0,
-	0x11d95: 0xe0006f59,
-	0x11d98: 0xe0004e28, 0x11d9a: 0xe000772e, 0x11d9b: 0xe0005cab,
-	0x11d9e: 0xe00065ab, 0x11d9f: 0xe0008847,
-	0x11da0: 0xe000a009, 0x11da1: 0xe0007e15,
-	0x11da4: 0xe0005109,
-	0x11da9: 0xe000a00c, 0x11dab: 0xe00053c2,
-	0x11dac: 0xe0008b34, 0x11dae: 0xe00062cc, 0x11daf: 0xe00096db,
-	0x11db1: 0xe000661e, 0x11db3: 0xe00082bd,
-	0x11db4: 0xe000777e,
-	0x11dba: 0xe0009117,
-	0x11dbe: 0xe00054b3,
-	// Block 0x477, offset 0x11dc0
-	0x11dc1: 0xe0007444,
-	0x11dc5: 0xe0009f58, 0x11dc6: 0xe000517c, 0x11dc7: 0xe0007a18,
-	0x11dc9: 0xe00066f4, 0x11dcb: 0xe0007128,
-	0x11dcf: 0xe00057f4,
-	0x11dd1: 0xe0009a9e, 0x11dd2: 0xe000691f, 0x11dd3: 0xe0008df4,
-	0x11dd5: 0xe0006622,
-	0x11dd8: 0xe000565b, 0x11dda: 0xe0009c32, 0x11ddb: 0xe0007732,
-	0x11ddc: 0xe0007f01, 0x11ddd: 0xe00054fb, 0x11dde: 0xe0008774, 0x11ddf: 0xe0006c24,
-	0x11de3: 0xe0009d68,
-	0x11de6: 0xe0008480, 0x11de7: 0xe00056f1,
-	0x11de8: 0xe0005720,
-	0x11def: 0xe0007736,
-	0x11df0: 0xe0005df6, 0x11df2: 0xe00055ab,
-	0x11df7: 0xe000807d,
-	0x11df8: 0xe00091d7,
-	0x11dfc: 0xe000747c, 0x11dfe: 0xe0005376,
-	// Block 0x478, offset 0x11e00
-	0x11e04: 0xe0006b6f,
-	0x11e0c: 0xe000462c, 0x11e0e: 0xe00076ce,
-	0x11e10: 0xe0009f5c, 0x11e11: 0xe0006d32, 0x11e13: 0xe0005392,
-	0x11e18: 0xe000972b,
-	0x11e1d: 0xe000a00f, 0x11e1e: 0xe00098c1,
-	0x11e23: 0xe0005a0e,
-	0x11e29: 0xe00076d2, 0x11e2b: 0xe000a114,
-	0x11e2f: 0xe0008804,
-	0x11e30: 0xe000a297,
-	0x11e38: 0xe0004859,
-	0x11e3c: 0xe000823d, 0x11e3d: 0xe00083d3, 0x11e3e: 0xe00083f4,
-	// Block 0x479, offset 0x11e40
-	0x11e41: 0xe0004cf3,
-	0x11e45: 0xe00042a4, 0x11e46: 0xe0005d94,
-	0x11e4a: 0xe000951f,
-	0x11e4e: 0xe0007696,
-	0x11e52: 0xe00092a9,
-	0x11e55: 0xe0009d3e,
-	0x11e58: 0xe000a462, 0x11e59: 0xe00081ae, 0x11e5a: 0xe00046d4,
-	0x11e61: 0xe0008778,
-	0x11e64: 0xe0006c27,
-	0x11e6b: 0xe0009e6c,
-	0x11e6c: 0xe0004088, 0x11e6d: 0xe000972f, 0x11e6e: 0xe0009a7a, 0x11e6f: 0xe0009f60,
-	0x11e70: 0xe0009a7d, 0x11e73: 0xe00061f7,
-	0x11e77: 0xe0008a89,
-	0x11e78: 0xe0008241, 0x11e79: 0xe00086a0,
-	// Block 0x47a, offset 0x11e80
-	0x11e88: 0xe000557f, 0x11e8a: 0xe0007480, 0x11e8b: 0xe000a412,
-	0x11e8f: 0xe0007852,
-	0x11e93: 0xe000439f,
-	0x11e98: 0xe000a0e0, 0x11e99: 0xe0005346,
-	0x11e9c: 0xe000a3cd, 0x11e9d: 0xe0008be8, 0x11e9f: 0xe0007606,
-	0x11eb1: 0xe00042a8,
-	0x11eb9: 0xe0009953,
-	0x11ebd: 0xe0006308,
-	// Block 0x47b, offset 0x11ec0
-	0x11ec4: 0xe000a385,
-	0x11ec9: 0xe00074ee,
-	0x11ecc: 0xe0008b38,
-	0x11ed9: 0xe000605f, 0x11eda: 0xe0006443,
-	0x11edc: 0xe000a0b4, 0x11ede: 0xe00051c0,
-	0x11ee0: 0xe0006f46, 0x11ee1: 0xe0005d14,
-	0x11ee6: 0xe00092ac,
-	0x11eed: 0xe0004324, 0x11eee: 0xe000a476, 0x11eef: 0xe0008271,
-	0x11ef0: 0xe000769a, 0x11ef1: 0xe0009e4c,
-	0x11ef6: 0xe000760a,
-	// Block 0x47c, offset 0x11f00
-	0x11f06: 0xe0009bde, 0x11f07: 0xe000a3fa,
-	0x11f09: 0xe0005533, 0x11f0a: 0xe000a3c5,
-	0x11f0c: 0xe000a22f, 0x11f0e: 0xe000856c,
-	0x11f10: 0xe000773a, 0x11f12: 0xe0007da6,
-	0x11f16: 0xe0004d7f, 0x11f17: 0xe0004d8b,
-	0x11f19: 0xe000760e,
-	0x11f1c: 0xe0007c31, 0x11f1e: 0xe00067ff,
-	0x11f22: 0xe0004320,
-	0x11f24: 0xe0005ad6, 0x11f25: 0xe000a197, 0x11f26: 0xe000a34b, 0x11f27: 0xe00088dd,
-	0x11f28: 0xe0007a4a, 0x11f29: 0xe00060bb,
-	0x11f2c: 0xe0007448, 0x11f2e: 0xe00081b1,
-	0x11f3d: 0xe0006a33,
-	// Block 0x47d, offset 0x11f40
-	0x11f40: 0xe00076f6,
-	0x11f44: 0xe0007050, 0x11f45: 0xe00078f1, 0x11f47: 0xe000a321,
-	0x11f49: 0xe0007c55, 0x11f4a: 0xe0007c99,
-	0x11f4f: 0xe000a389,
-	0x11f52: 0xe0009f64,
-	0x11f54: 0xe0007b31,
-	0x11f59: 0xe000a501, 0x11f5b: 0xe0009ae2,
-	0x11f5f: 0xe0006e5c,
-	0x11f60: 0xe0006f71, 0x11f62: 0xe000630c,
-	0x11f64: 0xe0008099,
-	0x11f68: 0xe0007da9,
-	0x11f6c: 0xe0007855, 0x11f6f: 0xe0006aa7,
-	0x11f71: 0xe0007682, 0x11f72: 0xe0004328,
-	0x11f79: 0xe000a504, 0x11f7a: 0xe000a507,
-	0x11f7e: 0xe000957e,
-	// Block 0x47e, offset 0x11f80
-	0x11f81: 0xe00076ea, 0x11f83: 0xe0007612,
-	0x11f88: 0xe00052d3, 0x11f89: 0xe00051c4, 0x11f8b: 0xe0009303,
-	0x11f8e: 0xe0005765,
-	0x11f90: 0xe0005920, 0x11f92: 0xe0006c2a,
-	0x11f94: 0xe00060bf, 0x11f95: 0xe0007616, 0x11f96: 0xe0007140,
-	0x11f99: 0xe000979f,
-	0x11f9f: 0xe000773e,
-	0x11fa0: 0xe0007c41,
-	0x11fa5: 0xe00088e0, 0x11fa6: 0xe0008e72, 0x11fa7: 0xe0006d8f,
-	0x11fac: 0xe000a3e2, 0x11fad: 0xe000933b, 0x11fae: 0xe0006b63,
-	0x11fb9: 0xe000a52b, 0x11fbb: 0xe000a38d,
-	0x11fbc: 0xe000709c, 0x11fbe: 0xe000510c, 0x11fbf: 0xe0007a83,
-	// Block 0x47f, offset 0x11fc0
-	0x11fc0: 0xe0009e38,
-	0x11fc6: 0xe0009aa2, 0x11fc7: 0xe0006b0f,
-	0x11fcb: 0xe000a3a1,
-	0x11fcc: 0xe00046f8, 0x11fcd: 0xe0006787,
-	0x11fd0: 0xe000565e,
-	0x11fd4: 0xe000a52e, 0x11fd7: 0xe00076fa,
-	0x11fda: 0xe00073f8, 0x11fdb: 0xe000537a,
-	0x11fdf: 0xe000465c,
-	0x11fe5: 0xe000934f,
-	0x11fe8: 0xe0008ebe, 0x11fea: 0xe00088e3,
-	0x11fec: 0xe00098a0, 0x11fed: 0xe00083fa,
-	0x11ff0: 0xe0007ce1, 0x11ff2: 0xe0007d76,
-	0x11ff5: 0xe0008245, 0x11ff6: 0xe0006380,
-	0x11ff8: 0xe00098c4, 0x11ff9: 0xe0004ee2, 0x11ffa: 0xe00073d0, 0x11ffb: 0xe000a309,
-	0x11ffd: 0xe00068a3, 0x11ffe: 0xe000802f,
-	// Block 0x480, offset 0x12000
-	0x12000: 0xe00068a7, 0x12002: 0xe0008389,
-	0x12006: 0xe0008321, 0x12007: 0xe000997b,
-	0x12008: 0xe00098eb, 0x1200b: 0xe00085f4,
-	0x1200c: 0xe000992d,
-	0x12012: 0xe00091f3, 0x12013: 0xe000602f,
-	0x12014: 0xe0005ecf, 0x12016: 0xe0007e6c,
-	0x12018: 0xe0005180, 0x12019: 0xe0007178, 0x1201a: 0xe00097fe, 0x1201b: 0xe0007ba8,
-	0x1201d: 0xe0006626, 0x1201f: 0xe0005c15,
-	0x12021: 0xe0005c18, 0x12022: 0xe0005723,
-	0x12027: 0xe0005c6b,
-	0x12029: 0xe0005da4,
-	0x1202f: 0xe000444d,
-	0x12032: 0xe0006923,
-	0x12034: 0xe0008483,
-	0x12038: 0xe00081ed, 0x12039: 0xe0009879,
-	0x1203d: 0xe00041a4,
-	// Block 0x481, offset 0x12040
-	0x12040: 0xe0006968, 0x12041: 0xe00058c1,
-	0x12047: 0xe0006487,
-	0x1204d: 0xe00040fb,
-	0x12052: 0xe000a069,
-	0x12056: 0xe0005362,
-	0x12062: 0xe0005184,
-	0x12067: 0xe000a50a,
-	0x1206c: 0xe00041a8, 0x1206f: 0xe000611b,
-	0x12073: 0xe0008275,
-	0x12074: 0xe000724a, 0x12075: 0xe000a53b,
-	// Block 0x482, offset 0x12080
-	0x12080: 0xe00068ab, 0x12082: 0xe00046d8,
-	0x12084: 0xe00084c0,
-	0x12089: 0xe00065ae,
-	0x1208e: 0xe00072da,
-	0x12090: 0xe000a012, 0x12092: 0xe00065b1,
-	0x12097: 0xe000485c,
-	0x12099: 0xe000843e,
-	0x120a1: 0xe00047a2, 0x120a2: 0xe0009bfe,
-	0x120a5: 0xe0006efc,
-	0x120a8: 0xe0007f0d, 0x120a9: 0xe0006d92,
-	0x120b4: 0xe0009a14, 0x120b7: 0xe00041d0,
-	0x120b8: 0xe00058c4, 0x120b9: 0xe0009f08, 0x120ba: 0xe0007f49, 0x120bb: 0xe00067db,
-	0x120bc: 0xe00053fe, 0x120bd: 0xe0009930,
-	// Block 0x483, offset 0x120c0
-	0x120c9: 0xe0004cf6, 0x120ca: 0xe00077b3,
-	0x120d3: 0xe00045d8,
-	0x120d6: 0xe0008f86, 0x120d7: 0xe0008008,
-	0x120d8: 0xe000887a, 0x120d9: 0xe000840e, 0x120db: 0xe0005b2b,
-	0x120dc: 0xe0006fd9, 0x120dd: 0xe00089bc,
-	0x120e2: 0xe000a06c,
-	0x120e5: 0xe0007a38, 0x120e7: 0xe0007988,
-	0x120e8: 0xe0007d19, 0x120e9: 0xe0006ba3, 0x120ea: 0xe0008441, 0x120eb: 0xe0005cdb,
-	0x120f1: 0xe0004e47,
-	0x120f4: 0xe000a363, 0x120f6: 0xe0007e18, 0x120f7: 0xe0007e1b,
-	0x120fe: 0xe000a1e7, 0x120ff: 0xe0007ce5,
-	// Block 0x484, offset 0x12100
-	0x12103: 0xe0007351,
-	0x12104: 0xe00078bd, 0x12105: 0xe00066f7,
-	0x12110: 0xe0008325, 0x12112: 0xe0007858,
-	0x12117: 0xe0004a06,
-	0x12118: 0xe0009a17,
-	0x1211c: 0xe0005944,
-	0x12120: 0xe0005789,
-	0x12128: 0xe0005188, 0x12129: 0xe00077e9, 0x1212a: 0xe000a29a, 0x1212b: 0xe0009e2c,
-	0x1212c: 0xe0009d8c, 0x1212f: 0xe000a3a5,
-	0x12130: 0xe0007742, 0x12132: 0xe000a2ce,
-	0x12135: 0xe00055b3, 0x12137: 0xe00046fc,
-	0x12138: 0xe0006d95, 0x1213a: 0xe0004f61, 0x1213b: 0xe0009e08,
-	0x1213c: 0xe0005df9,
-	// Block 0x485, offset 0x12140
-	0x12141: 0xe0009e30,
-	0x12144: 0xe0009e70, 0x12146: 0xe00081b4, 0x12147: 0xe0006cf7,
-	0x12148: 0xe0005685, 0x12149: 0xe00078c1, 0x1214b: 0xe0007a10,
-	0x1214e: 0xe000877c,
-	0x12154: 0xe00090d7, 0x12155: 0xe0003e53, 0x12156: 0xe000485f, 0x12157: 0xe0007bab,
-	0x12158: 0xe0004c66,
-	0x1215e: 0xe00063dd, 0x1215f: 0xe0005e2f,
-	0x12160: 0xe0004040,
-	0x12166: 0xe0004208, 0x12167: 0xe0007ed5,
-	0x12169: 0xe00079ac, 0x1216b: 0xe0005af1,
-	0x1216d: 0xe000662a,
-	0x12172: 0xe00055d7, 0x12173: 0xe0005097,
-	0x12177: 0xe00086bc,
-	0x12179: 0xe0009e74, 0x1217b: 0xe00098c7,
-	// Block 0x486, offset 0x12180
-	0x12180: 0xe0005e9b, 0x12182: 0xe0003d4b,
-	0x12186: 0xe000806e,
-	0x12188: 0xe0003d8d, 0x12189: 0xe0005e33, 0x1218a: 0xe00067a7,
-	0x1218c: 0xe0009b54, 0x1218d: 0xe0008ce8, 0x1218f: 0xe0003db7,
-	0x12192: 0xe0008d4c,
-	0x12196: 0xe00046dc,
-	0x12199: 0xe000455d,
-	0x1219d: 0xe000a34e, 0x1219e: 0xe000534a,
-	0x121a0: 0xe0008a8c, 0x121a2: 0xe0007f4d, 0x121a3: 0xe0006eb8,
-	0x121a4: 0xe0006252, 0x121a5: 0xe0008032, 0x121a6: 0xe0009dd5,
-	0x121a9: 0xe0009f68, 0x121aa: 0xe0004a6d, 0x121ab: 0xe00094f1,
-	0x121ad: 0xe0005f0b, 0x121ae: 0xe0009942,
-	0x121b5: 0xe0008808, 0x121b7: 0xe0005d17,
-	0x121b9: 0xe0006ba7,
-	0x121bd: 0xe0008780, 0x121be: 0xe0009e78,
-	// Block 0x487, offset 0x121c0
-	0x121c1: 0xe0006a37, 0x121c3: 0xe0004862,
-	0x121c4: 0xe0009eb0, 0x121c5: 0xe0005402, 0x121c6: 0xe00058c7, 0x121c7: 0xe0006d98,
-	0x121c9: 0xe00057f7,
-	0x121d3: 0xe00079b0,
-	0x121db: 0xe0009625,
-	0x121e0: 0xe0008570, 0x121e1: 0xe0006e60, 0x121e2: 0xe00096df,
-	0x121e4: 0xe0008412, 0x121e5: 0xe000a015, 0x121e6: 0xe0004c69,
-	0x121e8: 0xe00044d5, 0x121ea: 0xe0004c6c, 0x121eb: 0xe0006310,
-	0x121ec: 0xe00079b4, 0x121ee: 0xe00089dc, 0x121ef: 0xe0004630,
-	0x121f0: 0xe000769e, 0x121f1: 0xe0008952, 0x121f2: 0xe0006089, 0x121f3: 0xe0005974,
-	0x121f4: 0xe0004b86, 0x121f5: 0xe000653f, 0x121f6: 0xe00098a3,
-	0x121f8: 0xe00096e3, 0x121fa: 0xe0006137,
-	0x121ff: 0xe000a0a0,
-	// Block 0x488, offset 0x12200
-	0x12200: 0xe0007bae, 0x12201: 0xe0005c1b, 0x12203: 0xe00094bd,
-	0x12204: 0xe0006a3b, 0x12205: 0xe000887d, 0x12206: 0xe0006bcb,
-	0x1220b: 0xe0007d79,
-	0x1220e: 0xe0009d8f,
-	0x12215: 0xe0009bbd, 0x12217: 0xe0007ce9,
-	0x12219: 0xe0004e38, 0x1221a: 0xe000a018, 0x1221b: 0xe0007746,
-	0x1221c: 0xe0007e1e, 0x1221d: 0xe000a263, 0x1221e: 0xe000696b, 0x1221f: 0xe0006f49,
-	0x12220: 0xe00057fa, 0x12222: 0xe0007b35, 0x12223: 0xe0006d41,
-	0x12224: 0xe0007a86, 0x12225: 0xe00078cd,
-	0x12228: 0xe0008cec, 0x12229: 0xe0009f6c, 0x1222a: 0xe000599b,
-	0x1222d: 0xe000504d, 0x1222f: 0xe0005406,
-	0x12230: 0xe0004751, 0x12231: 0xe00085f8, 0x12232: 0xe0008fca, 0x12233: 0xe0008e3c,
-	0x1223d: 0xe0008a18, 0x1223e: 0xe0004b2a,
-	// Block 0x489, offset 0x12240
-	0x12240: 0xe00093cc, 0x12242: 0xe0004c6f, 0x12243: 0xe00058ca,
-	0x12246: 0xe00048ef, 0x12247: 0xe0006a3f,
-	0x12249: 0xe0005537, 0x1224a: 0xe0005d98, 0x1224b: 0xe0008329,
-	0x12258: 0xe0005924,
-	0x1225c: 0xe000a233, 0x1225d: 0xe0004754, 0x1225e: 0xe0005e9f, 0x1225f: 0xe00042ac,
-	0x12261: 0xe0008cf0, 0x12263: 0xe0004c72,
-	0x12265: 0xe00042b0, 0x12267: 0xe000614f,
-	0x12268: 0xe0008e76, 0x1226a: 0xe00088e6, 0x1226b: 0xe0005051,
-	0x12270: 0xe000a19b, 0x12272: 0xe0006d9b,
-	0x12275: 0xe000757b,
-	0x12279: 0xe0006e64,
-	0x1227d: 0xe00068fe, 0x1227f: 0xe0006a43,
-	// Block 0x48a, offset 0x12280
-	0x12286: 0xe0008d80,
-	0x1228a: 0xe00042b4,
-	0x1228f: 0xe00056f5,
-	0x12294: 0xe000774a,
-	0x12298: 0xe0004634, 0x1229a: 0xe0008e7a, 0x1229b: 0xe000a1bb,
-	0x1229c: 0xe00045ae,
-	0x122a0: 0xe000a01b, 0x122a2: 0xe0009abb, 0x122a3: 0xe00098ef,
-	0x122a6: 0xe0007964,
-	0x122a9: 0xe000911b,
-	0x122ae: 0xe0007921,
-	0x122b2: 0xe0009819,
-	0x122b7: 0xe00081b7,
-	// Block 0x48b, offset 0x122c0
-	0x122c1: 0xe00061fb, 0x122c3: 0xe0009435,
-	0x122c4: 0xe00041ac,
-	0x122cc: 0xe00048f2, 0x122cd: 0xe0005b3f, 0x122ce: 0xe00085fc,
-	0x122d1: 0xe0008bec, 0x122d3: 0xe000616b,
-	0x122d5: 0xe0007925,
-	0x122d8: 0xe0003edb, 0x122da: 0xe000712c, 0x122db: 0xe00091ab,
-	0x122de: 0xe00068e7, 0x122df: 0xe0006927,
-	0x122e3: 0xe00067ab,
-	0x122e5: 0xe000692b, 0x122e6: 0xe0006c2d,
-	0x122e8: 0xe0007b39, 0x122eb: 0xe0006255,
-	0x122ec: 0xe0007b3d,
-	0x122f0: 0xe0008574, 0x122f1: 0xe0007e21, 0x122f2: 0xe0003f43, 0x122f3: 0xe00070a0,
-	0x122f7: 0xe0004daf,
-	0x122f8: 0xe0008578, 0x122fa: 0xe0008784,
-	0x122ff: 0xe0005b43,
-	// Block 0x48c, offset 0x12300
-	0x12307: 0xe0004ac6,
-	0x1230a: 0xe000432c, 0x1230b: 0xe0008600,
-	0x1230c: 0xe0004378, 0x1230e: 0xe00041d4, 0x1230f: 0xe0007a3b,
-	0x12311: 0xe000857c, 0x12313: 0xe0004ff9,
-	0x12314: 0xe0005f0f,
-	0x12319: 0xe00057fd, 0x1231a: 0xe000648b, 0x1231b: 0xe0008cf4,
-	0x1231c: 0xe0009475, 0x1231d: 0xe0005d1a,
-	0x12320: 0xe0008604, 0x12322: 0xe0009b58,
-	0x12324: 0xe00095b7, 0x12325: 0xe0005444, 0x12326: 0xe000a415, 0x12327: 0xe0005448,
-	0x1232a: 0xe00060c3, 0x1232b: 0xe000a13e,
-	0x1232f: 0xe0008b3c,
-	0x12330: 0xe0008035,
-	0x12335: 0xe000a117, 0x12336: 0xe0005025,
-	0x12338: 0xe0004c75, 0x1233a: 0xe0003f7f,
-	0x1233f: 0xe0004c78,
-	// Block 0x48d, offset 0x12340
-	0x12346: 0xe0003f83, 0x12347: 0xe0008a8f,
-	0x12348: 0xe000616f, 0x1234a: 0xe00091f7, 0x1234b: 0xe0009b5c,
-	0x1234e: 0xe0006c33, 0x1234f: 0xe0006c30,
-	0x12351: 0xe0007fd8,
-	0x12354: 0xe000880c,
-	0x12359: 0xe000a49a, 0x1235a: 0xe00048f5,
-	0x1235d: 0xe00067af,
-	0x12363: 0xe0007bfc,
-	0x12365: 0xe000401c,
-	0x12369: 0xe0009507, 0x1236b: 0xe00075a6,
-	0x12371: 0xe0009a47, 0x12372: 0xe0009b25, 0x12373: 0xe0003edf,
-	0x12374: 0xe00071a8, 0x12375: 0xe00081ba,
-	0x12378: 0xe0004f65, 0x12379: 0xe0008cf8,
-	0x1237c: 0xe0005218, 0x1237d: 0xe0008444, 0x1237e: 0xe0008d84,
-	// Block 0x48e, offset 0x12380
-	0x12380: 0xe00048f8, 0x12382: 0xe0003d4e, 0x12383: 0xe0009eb4,
-	0x12385: 0xe00061ff, 0x12387: 0xe0008bf0,
-	0x1238a: 0xe0008608,
-	0x1238d: 0xe0008038, 0x1238e: 0xe0009d92,
-	0x12392: 0xe000744c, 0x12393: 0xe00095ba,
-	0x12394: 0xe0009581, 0x12395: 0xe000a466,
-	0x12398: 0xe000527c, 0x12399: 0xe00042b8, 0x1239b: 0xe0009825,
-	0x1239e: 0xe00065b4,
-	0x123a2: 0xe00058cd, 0x123a3: 0xe0008c82,
-	0x123a4: 0xe0008a3e, 0x123a7: 0xe000675a,
-	0x123b0: 0xe0004fa5, 0x123b2: 0xe000599e, 0x123b3: 0xe0005980,
-	0x123b4: 0xe0009584,
-	0x123b9: 0xe00065b7, 0x123ba: 0xe0006542,
-	0x123bc: 0xe00043f3, 0x123bf: 0xe0007dac,
-	// Block 0x48f, offset 0x123c0
-	0x123c0: 0xe00074ac, 0x123c1: 0xe000950a,
-	0x123c7: 0xe0008a1c,
-	0x123c8: 0xe00043a2, 0x123c9: 0xe0007e6f, 0x123cb: 0xe0009b17,
-	0x123cd: 0xe0007450,
-	0x123d0: 0xe0007e72,
-	0x123d5: 0xe0009be1,
-	0x123d9: 0xe0006c36,
-	0x123df: 0xe00078d1,
-	0x123e0: 0xe000907f, 0x123e1: 0xe0008f8a, 0x123e2: 0xe0005f13,
-	0x123e4: 0xe0005800, 0x123e6: 0xe0006d9e, 0x123e7: 0xe0009c02,
-	0x123ef: 0xe00089a4,
-	0x123f0: 0xe0005330, 0x123f3: 0xe0009438,
-	0x123f4: 0xe000838d,
-	0x123fb: 0xe00057b8,
-	// Block 0x490, offset 0x12400
-	0x12402: 0xe0005768, 0x12403: 0xe000585f,
-	0x12406: 0xe0005688,
-	0x12408: 0xe0009a1a, 0x12409: 0xe0004f45,
-	0x1240c: 0xe000729a, 0x1240e: 0xe0003e17,
-	0x12412: 0xe0007e24,
-	0x12415: 0xe0007949, 0x12416: 0xe0006153,
-	0x12418: 0xe00054da,
-	0x1241c: 0xe000860c,
-	0x12421: 0xe0009587, 0x12422: 0xe0007484,
-	0x12424: 0xe0008674, 0x12425: 0xe0008df8, 0x12427: 0xe0005517,
-	0x12428: 0xe0004604, 0x12429: 0xe0005315,
-	0x1242c: 0xe0006a47, 0x1242d: 0xe0007782, 0x1242e: 0xe0007f51, 0x1242f: 0xe00048fb,
-	0x12430: 0xe0007929, 0x12431: 0xe0009747, 0x12432: 0xe0008580,
-	0x12438: 0xe000437b, 0x1243b: 0xe00052d7,
-	0x1243c: 0xe0005f77, 0x1243d: 0xe00060a3, 0x1243e: 0xe00060a7,
-	// Block 0x491, offset 0x12440
-	0x12440: 0xe0004bde, 0x12441: 0xe0008955, 0x12443: 0xe0005c48,
-	0x12444: 0xe00084c4, 0x12446: 0xe000401f, 0x12447: 0xe000a237,
-	0x1244b: 0xe0004450,
-	0x1244e: 0xe00047a5,
-	0x12450: 0xe00043f6, 0x12453: 0xe000a01e,
-	0x12456: 0xe000a1bf,
-	0x1245a: 0xe0007354, 0x1245b: 0xe000a324,
-	0x1245c: 0xe000a06f, 0x1245e: 0xe000a072,
-	0x12464: 0xe00098ca,
-	0x1246c: 0xe0009c06, 0x1246e: 0xe0009b28,
-	0x12474: 0xe0008b6c, 0x12476: 0xe000675d,
-	0x12478: 0xe0004982, 0x1247a: 0xe00093ed,
-	0x1247f: 0xe0005bc7,
-	// Block 0x492, offset 0x12480
-	0x12482: 0xe0007bb1, 0x12483: 0xe0006062,
-	0x12486: 0xe0006447,
-	0x12488: 0xe000774e, 0x1248a: 0xe0008081,
-	0x1248c: 0xe00079f8, 0x1248d: 0xe0009cf2, 0x1248e: 0xe000730a,
-	0x12492: 0xe0009cca,
-	0x12494: 0xe000a2bb, 0x12496: 0xe0004022,
-	0x12499: 0xe000626a, 0x1249b: 0xe0006bab,
-	0x1249c: 0xe000510f, 0x1249e: 0xe000828d, 0x1249f: 0xe0005b33,
-	0x124a1: 0xe0008cfc, 0x124a3: 0xe0003ee3,
-	0x124a4: 0xe0005f17, 0x124a5: 0xe0004660, 0x124a7: 0xe0005661,
-	0x124aa: 0xe00097a3,
-	0x124ac: 0xe0004453, 0x124ae: 0xe0005c6f,
-	0x124b1: 0xe0007bff, 0x124b2: 0xe0005b2f,
-	0x124b4: 0xe0008ca0,
-	0x124b8: 0xe00068af, 0x124b9: 0xe0006f00, 0x124bb: 0xe0009fca,
-	0x124bc: 0xe0005f1b, 0x124be: 0xe0006ebc,
-	// Block 0x493, offset 0x124c0
-	0x124c1: 0xe0006baf,
-	0x124c4: 0xe0005b6f, 0x124c7: 0xe0005cea,
-	0x124c8: 0xe000975f, 0x124c9: 0xe0005dc9, 0x124ca: 0xe0005c4b, 0x124cb: 0xe0003e1b,
-	0x124cc: 0xe0009eb8,
-	0x124da: 0xe0006933, 0x124db: 0xe0005af4,
-	0x124de: 0xe0008d00,
-	0x124e0: 0xe0005b73,
-	0x124e5: 0xe00081f0, 0x124e6: 0xe00081f3,
-	0x124e8: 0xe00082cd, 0x124e9: 0xe0009e7c,
-	0x124f4: 0xe0006f04, 0x124f7: 0xe00049e6,
-	0x124f8: 0xe0005c1e, 0x124fa: 0xe00088e9, 0x124fb: 0xe0007488,
-	0x124fc: 0xe0007232, 0x124fe: 0xe0008bac,
-	// Block 0x494, offset 0x12500
-	0x12500: 0xe0008e4a,
-	0x12506: 0xe000a1c3, 0x12507: 0xe0008880,
-	0x1250d: 0xe0009e80,
-	0x12512: 0xe0006b4b,
-	0x1251a: 0xe0007357, 0x1251b: 0xe0008788,
-	0x1251f: 0xe0006e19,
-	0x12520: 0xe00049f6, 0x12521: 0xe0006da1, 0x12522: 0xe0006e1c, 0x12523: 0xe000518c,
-	0x12525: 0xe00065ba, 0x12526: 0xe0005c73,
-	0x12528: 0xe00077ec, 0x1252b: 0xe00091fb,
-	0x12537: 0xe00040ff,
-	0x12539: 0xe0005112,
-	0x1253d: 0xe0004aa3, 0x1253e: 0xe00043f9, 0x1253f: 0xe00077b6,
-	// Block 0x495, offset 0x12540
-	0x1254b: 0xe0008d04,
-	0x1254d: 0xe0006e1f, 0x1254e: 0xe0009c7a,
-	0x12551: 0xe0005bcb,
-	0x12556: 0xe00077ef,
-	0x12559: 0xe00059da,
-	0x1255e: 0xe0005a12,
-	0x12560: 0xe0005055, 0x12562: 0xe0005caf,
-	0x12565: 0xe00061bf,
-	0x1256a: 0xe0008dfc,
-	0x1256c: 0xe0006ec0, 0x1256d: 0xe000576b,
-	0x12570: 0xe0003ee7, 0x12573: 0xe000521c,
-	0x12579: 0xe000735a, 0x1257b: 0xe00091af,
-	0x1257c: 0xe000413b, 0x1257d: 0xe0004456, 0x1257f: 0xe0004865,
-	// Block 0x496, offset 0x12580
-	0x12587: 0xe0005cb3,
-	0x12589: 0xe0006642,
-	0x1258d: 0xe000a15b,
-	0x12597: 0xe000933f,
-	0x12599: 0xe0003f2b, 0x1259a: 0xe0009353, 0x1259b: 0xe0005c21,
-	0x1259c: 0xe0004bf6, 0x1259e: 0xe0007ef9,
-	0x125a1: 0xe000a15f, 0x125a2: 0xe0006fdc, 0x125a3: 0xe0007fdb,
-	0x125a5: 0xe0008c46, 0x125a7: 0xe00070e8,
-	0x125a9: 0xe0004868,
-	0x125ad: 0xe0004f15, 0x125ae: 0xe0007a29, 0x125af: 0xe00047a8,
-	0x125b0: 0xe0008c08, 0x125b3: 0xe00069db,
-	0x125ba: 0xe00096ff, 0x125bb: 0xe0004529,
-	0x125bc: 0xe0003fd7, 0x125bd: 0xe00069f3,
-	// Block 0x497, offset 0x125c0
-	0x125c2: 0xe00066fa,
-	0x125cc: 0xe0009276, 0x125cf: 0xe000648f,
-	0x125d1: 0xe00071ab, 0x125d2: 0xe0006545,
-	0x125e2: 0xe0005333,
-	0x125e5: 0xe0008c49, 0x125e6: 0xe0009000, 0x125e7: 0xe0009629,
-	0x125ec: 0xe0005984, 0x125ed: 0xe00099bf,
-	0x125f0: 0xe000995b, 0x125f2: 0xe0009a4a,
-	0x125f4: 0xe00098a6,
-	// Block 0x498, offset 0x12600
-	0x12603: 0xe0008ad4,
-	0x12605: 0xe0004a70,
-	0x1260f: 0xe000761a,
-	0x1261c: 0xe000405d, 0x1261d: 0xe00092af,
-	0x12620: 0xe0005416,
-	0x12627: 0xe0007b71,
-	0x12628: 0xe0008e3f, 0x1262b: 0xe0005803,
-	0x1262c: 0xe00042bc, 0x1262e: 0xe0009c0a, 0x1262f: 0xe000761e,
-	0x1263c: 0xe00064eb,
-	// Block 0x499, offset 0x12640
-	0x12641: 0xe0004c7b,
-	0x12647: 0xe000878c,
-	0x1264c: 0xe00056a9, 0x1264d: 0xe0007327, 0x1264e: 0xe0006d35, 0x1264f: 0xe0008279,
-	0x12651: 0xe0006548, 0x12653: 0xe00050b5,
-	0x12657: 0xe00079b8,
-	0x1265f: 0xe0006b13,
-	0x12663: 0xe0003e7f,
-	0x12664: 0xe0007786, 0x12667: 0xe0006157,
-	0x12668: 0xe0007a4d, 0x12669: 0xe00069df,
-	0x1266d: 0xe00097a7,
-	0x1267a: 0xe000a14f, 0x1267b: 0xe000a153,
-	0x1267c: 0xe00059a1, 0x1267e: 0xe0004e00,
-	// Block 0x49a, offset 0x12680
-	0x12681: 0xe00081bd,
-	0x12685: 0xe0005fdf,
-	0x12688: 0xe0007a50, 0x1268a: 0xe0005726, 0x1268b: 0xe0008e1b,
-	0x1268e: 0xe000437e, 0x1268f: 0xe00055af,
-	0x12690: 0xe0005f1f, 0x12691: 0xe000735d,
-	0x12694: 0xe0009030, 0x12695: 0xe0004043,
-	0x1269a: 0xe0008610,
-	0x126a0: 0xe0004e81,
-	0x126a7: 0xe0008508,
-	0x126a8: 0xe00059a4, 0x126aa: 0xe00093cf,
-	0x126ac: 0xe00042c0, 0x126af: 0xe0004c7e,
-	0x126b4: 0xe00052fb, 0x126b5: 0xe0003e1f, 0x126b7: 0xe0005948,
-	0x126ba: 0xe0004700, 0x126bb: 0xe0005f23,
-	0x126bc: 0xe00082d1, 0x126bd: 0xe00047ed,
-	// Block 0x49b, offset 0x126c0
-	0x126c1: 0xe00092b2,
-	0x126cc: 0xe0005738, 0x126ce: 0xe00092b5, 0x126cf: 0xe0004be2,
-	0x126d1: 0xe0005059, 0x126d2: 0xe000800b,
-	0x126d6: 0xe000757e,
-	0x126d9: 0xe0007360,
-	0x126e7: 0xe000573b,
-	0x126ea: 0xe00054b6, 0x126eb: 0xe00054ff,
-	0x126ec: 0xe0005f27, 0x126ed: 0xe000a163,
-	0x126f1: 0xe000570d,
-	0x126fa: 0xe0006fdf,
-	0x126fe: 0xe00066fd,
-	// Block 0x49c, offset 0x12700
-	0x12700: 0xe0006700, 0x12701: 0xe0004c81,
-	0x12705: 0xe0007acb, 0x12706: 0xe000911f, 0x12707: 0xe0004c84,
-	0x12708: 0xe0004c87, 0x12709: 0xe0008c4c, 0x1270a: 0xe000995f,
-	0x12710: 0xe0007bb4, 0x12713: 0xe00064c3,
-	0x12714: 0xe00063e0, 0x12715: 0xe00065bd, 0x12716: 0xe00088ec, 0x12717: 0xe0008c4f,
-	0x1271a: 0xe00088ef, 0x1271b: 0xe000408b,
-	0x1271c: 0xe000a021, 0x1271d: 0xe0009479, 0x1271e: 0xe00070a4, 0x1271f: 0xe0006e22,
-	0x12720: 0xe0006703, 0x12722: 0xe0004ec3,
-	0x12725: 0xe00068b3, 0x12727: 0xe0008958,
-	0x12728: 0xe0009abe,
-	0x1272d: 0xe000884a,
-	0x1273a: 0xe0004c8a,
-	0x1273c: 0xe0004664, 0x1273f: 0xe00056ad,
-	// Block 0x49d, offset 0x12740
-	0x12740: 0xe0009aff, 0x12741: 0xe0004b8a,
-	0x1274a: 0xe00043a5, 0x1274b: 0xe0008101,
-	0x1274d: 0xe000a11a, 0x1274e: 0xe0008790, 0x1274f: 0xe0006298,
-	0x12751: 0xe0007bb7,
-	0x12754: 0xe0008883,
-	0x1275d: 0xe0008cb4,
-	0x12766: 0xe00074af, 0x12767: 0xe000a50d,
-	0x12768: 0xe0004cf9, 0x1276a: 0xe0006a4b, 0x1276b: 0xe0004fdd,
-	0x1276e: 0xe000563d,
-	0x12770: 0xe0004ec6, 0x12771: 0xe0005115, 0x12773: 0xe0007454,
-	0x12774: 0xe00073fc,
-	0x12779: 0xe0007bba, 0x1277a: 0xe000794d, 0x1277b: 0xe0005900,
-	0x1277d: 0xe0004b8e, 0x1277e: 0xe000a11d, 0x1277f: 0xe0005190,
-	// Block 0x49e, offset 0x12780
-	0x12780: 0xe0006da4, 0x12781: 0xe0006706,
-	0x12786: 0xe0003e57,
-	0x12789: 0xe0006203, 0x1278a: 0xe0004dfc, 0x1278b: 0xe00093f0,
-	0x12791: 0xe00045b1, 0x12792: 0xe00092b8,
-	0x12795: 0xe000654b,
-	0x12798: 0xe000654e,
-	0x1279f: 0xe00088f2,
-	0x127a2: 0xe000561f, 0x127a3: 0xe0005a72,
-	0x127a4: 0xe0009655, 0x127a6: 0xe0008d08, 0x127a7: 0xe00072f6,
-	0x127a9: 0xe0008d88, 0x127aa: 0xe0008c85, 0x127ab: 0xe00094cd,
-	0x127ac: 0xe00040a3,
-	0x127b8: 0xe0003e9f, 0x127bb: 0xe000803b,
-	// Block 0x49f, offset 0x127c0
-	0x127c0: 0xe000a510, 0x127c1: 0xe0004459, 0x127c2: 0xe000541a,
-	0x127c5: 0xe0006bdf,
-	0x127c8: 0xe0003e23, 0x127ca: 0xe0008886, 0x127cb: 0xe0008794,
-	0x127cc: 0xe0005160, 0x127cd: 0xe00092bb,
-	0x127d4: 0xe0008151, 0x127d7: 0xe0009933,
-	0x127d9: 0xe0008ca4, 0x127da: 0xe000958a,
-	0x127dc: 0xe000588b, 0x127de: 0xe00045db, 0x127df: 0xe0009afb,
-	0x127e0: 0xe00088f5,
-	0x127e7: 0xe0006b17,
-	0x127ee: 0xe00089e0,
-	0x127f1: 0xe0009659,
-	0x127f6: 0xe0007c35, 0x127f7: 0xe0008ca8,
-	0x127f9: 0xe0008d50, 0x127fb: 0xe0005118,
-	0x127fc: 0xe0003d51, 0x127fd: 0xe0004381, 0x127ff: 0xe00043fc,
-	// Block 0x4a0, offset 0x12800
-	0x12800: 0xe0004499,
-	0x12805: 0xe0003fdb, 0x12806: 0xe0005c77,
-	0x12809: 0xe000958d,
-	0x1280d: 0xe00084c8, 0x1280e: 0xe0007752,
-	0x12817: 0xe0006da7,
-	0x12820: 0xe0004e64, 0x12821: 0xe000690b, 0x12822: 0xe00077b9,
-	0x12829: 0xe00078d5, 0x1282b: 0xe000a157,
-	0x12830: 0xe0007458,
-	0x12834: 0xe0009ed8, 0x12835: 0xe0007272, 0x12836: 0xe000486b,
-	0x12839: 0xe00049ae, 0x1283a: 0xe0004561,
-	0x1283d: 0xe0008798, 0x1283e: 0xe0007ace, 0x1283f: 0xe00090db,
-	// Block 0x4a1, offset 0x12840
-	0x12840: 0xe00052bb, 0x12841: 0xe00051e0, 0x12842: 0xe000568b, 0x12843: 0xe000868c,
-	0x12844: 0xe0008e4e, 0x12845: 0xe0007ad1, 0x12846: 0xe00099c3,
-	0x12848: 0xe0007a89, 0x1284a: 0xe000798b,
-	0x12852: 0xe0008d8c, 0x12853: 0xe0008f8e,
-	0x12855: 0xe00088f8, 0x12856: 0xe00047f0, 0x12857: 0xe0008fce,
-	0x12858: 0xe0004966, 0x1285b: 0xe00048fe,
-	0x1285f: 0xe0004992,
-	0x12860: 0xe00045de, 0x12863: 0xe0006cfb,
-	0x12869: 0xe0007967, 0x1286a: 0xe000796a,
-	0x1286c: 0xe0007e75, 0x1286e: 0xe00049b2, 0x1286f: 0xe0007a8c,
-	0x12873: 0xe0007e78,
-	0x12876: 0xe0004901,
-	0x12879: 0xe000788e, 0x1287a: 0xe0004a73, 0x1287b: 0xe0008fd2,
-	0x1287e: 0xe0004668, 0x1287f: 0xe0005863,
-	// Block 0x4a2, offset 0x12880
-	0x12884: 0xe0008e7e, 0x12885: 0xe0004a76, 0x12887: 0xe000527f,
-	0x12888: 0xe000895b, 0x1288a: 0xe0008678, 0x1288b: 0xe0005988,
-	0x12897: 0xe0005cde,
-	0x12899: 0xe0008efe,
-	0x1289d: 0xe0006207, 0x1289f: 0xe00042c4,
-	0x128a0: 0xe000832d, 0x128a2: 0xe0006760, 0x128a3: 0xe0008b40,
-	0x128a5: 0xe0005220, 0x128a6: 0xe0006d27,
-	0x128aa: 0xe0006daa,
-	0x128ad: 0xe0003e83, 0x128af: 0xe0004f19,
-	0x128b6: 0xe00042c8,
-	0x128b8: 0xe0004330, 0x128b9: 0xe0008b04, 0x128ba: 0xe000947d,
-	0x128bd: 0xe0007c02, 0x128bf: 0xe0003e27,
-	// Block 0x4a3, offset 0x128c0
-	0x128c6: 0xe00098cd,
-	0x128c8: 0xe0004be6, 0x128ca: 0xe000895e,
-	0x128cc: 0xe00071ae, 0x128cf: 0xe000a0c4,
-	0x128d1: 0xe0006c39, 0x128d2: 0xe0004bb2,
-	0x128d8: 0xe00086c0, 0x128d9: 0xe000692f, 0x128db: 0xe00084cc,
-	0x128de: 0xe00097c7,
-	0x128e0: 0xe000598c,
-	0x128e5: 0xe0006763, 0x128e6: 0xe0006383, 0x128e7: 0xe0009034,
-	0x128e8: 0xe0006493,
-	0x128ec: 0xe000884d, 0x128ed: 0xe00055db, 0x128ef: 0xe0004e4a,
-	0x128f3: 0xe0003d90,
-	0x128f5: 0xe0006127,
-	0x128f9: 0xe0006be2,
-	// Block 0x4a4, offset 0x12900
-	0x12905: 0xe0006aab, 0x12906: 0xe0009b60,
-	0x12908: 0xe00046a8, 0x12909: 0xe00052db, 0x1290b: 0xe0004b2e,
-	0x1290c: 0xe0008584, 0x1290d: 0xe0006ec4, 0x1290f: 0xe00060ef,
-	0x12910: 0xe00046e0, 0x12911: 0xe0009481, 0x12912: 0xe0009829, 0x12913: 0xe00043a8,
-	0x12914: 0xe0004ffd, 0x12916: 0xe0009020,
-	0x1291f: 0xe00063e3,
-	0x12920: 0xe0004aca,
-	0x12925: 0xe00040a6, 0x12926: 0xe000466c, 0x12927: 0xe00041d8,
-	0x12929: 0xe000983d,
-	0x1292c: 0xe0006bb3, 0x1292e: 0xe000696e,
-	0x12931: 0xe0006c84, 0x12933: 0xe0008810,
-	0x12935: 0xe0007622,
-	0x1293d: 0xe000785b,
-	// Block 0x4a5, offset 0x12940
-	0x12947: 0xe0004025,
-	0x1294b: 0xe0008588,
-	0x1294d: 0xe000445c, 0x1294e: 0xe000a075, 0x1294f: 0xe00083fe,
-	0x12952: 0xe000943e,
-	0x12954: 0xe0005ea3, 0x12955: 0xe0004c8d, 0x12957: 0xe00067b3,
-	0x12959: 0xe00062d0, 0x1295a: 0xe0008e1e,
-	0x1295c: 0xe0004585, 0x1295d: 0xe000421c,
-	0x12960: 0xe0009441, 0x12961: 0xe0004638,
-	0x1296d: 0xe000858c,
-	0x12971: 0xe00068b7,
-	0x12974: 0xe00082a9,
-	0x12978: 0xe0008447,
-	0x1297e: 0xe0006c87,
-	// Block 0x4a6, offset 0x12980
-	0x12980: 0xe000867c, 0x12981: 0xe000a23b,
-	0x12984: 0xe000611f, 0x12986: 0xe0008590, 0x12987: 0xe000997f,
-	0x12989: 0xe0009485, 0x1298a: 0xe000a0fc, 0x1298b: 0xe0009f38,
-	0x1298c: 0xe000a366,
-	0x12992: 0xe0007054,
-	0x12994: 0xe0007c7d,
-	0x12999: 0xe000445f, 0x1299b: 0xe0007400,
-	0x1299d: 0xe0004904,
-	0x129a0: 0xe0006c3c,
-	0x129a4: 0xe0005194, 0x129a6: 0xe00065c0,
-	0x129a9: 0xe0006709, 0x129aa: 0xe0008c88,
-	0x129b3: 0xe0009b78,
-	0x129b7: 0xe0006334,
-	0x129be: 0xe0005ba3,
-	// Block 0x4a7, offset 0x129c0
-	0x129c0: 0xe0009038,
-	0x129c7: 0xe0008998,
-	0x129c9: 0xe0009444, 0x129cb: 0xe0004a40,
-	0x129cf: 0xe00056d5,
-	0x129d2: 0xe0008e82,
-	0x129de: 0xe0004f1d, 0x129df: 0xe00086c4,
-	0x129e0: 0xe000626d, 0x129e1: 0xe0003e2b,
-	0x129e7: 0xe000a23f,
-	0x129ea: 0xe00082ad, 0x129eb: 0xe0006c3f,
-	0x129f7: 0xe00091db,
-	0x129f8: 0xe00098d0,
-	0x129fd: 0xe00091b3, 0x129fe: 0xe00055a3, 0x129ff: 0xe0006386,
-	// Block 0x4a8, offset 0x12a00
-	0x12a03: 0xe00053c6,
-	0x12a0c: 0xe0008a92, 0x12a0d: 0xe00084d0,
-	0x12a10: 0xe00052ff, 0x12a12: 0xe0008ad7,
-	0x12a14: 0xe0006e25,
-	0x12a1b: 0xe0008614,
-	0x12a1c: 0xe0009703, 0x12a1f: 0xe000573e,
-	0x12a20: 0xe00056f9,
-	0x12a24: 0xe00091b7, 0x12a25: 0xe0007404, 0x12a27: 0xe00040a9,
-	0x12a29: 0xe000619f,
-	0x12a2c: 0xe00058d0,
-	0x12a32: 0xe0007e7b, 0x12a33: 0xe0005dcc,
-	0x12a3e: 0xe0008105,
-	// Block 0x4a9, offset 0x12a40
-	0x12a41: 0xe0009123, 0x12a43: 0xe0006551,
-	0x12a49: 0xe000644b,
-	0x12a4d: 0xe0005c4e,
-	0x12a52: 0xe0005990,
-	0x12a55: 0xe0005ea7, 0x12a57: 0xe00088fb,
-	0x12a58: 0xe00086a4,
-	0x12a5f: 0xe0006cbb,
-	0x12a62: 0xe00081f6,
-	0x12a64: 0xe0007d51, 0x12a65: 0xe0008b08, 0x12a66: 0xe000594c, 0x12a67: 0xe0008331,
-	0x12a68: 0xe00060af,
-	0x12a6e: 0xe0005464,
-	0x12a71: 0xe0005468, 0x12a72: 0xe0008e8a, 0x12a73: 0xe0004055,
-	0x12a79: 0xe0006dad,
-	0x12a7c: 0xe0005950, 0x12a7d: 0xe0008a20, 0x12a7e: 0xe000879c,
-	// Block 0x4aa, offset 0x12a80
-	0x12a85: 0xe0007e7e, 0x12a86: 0xe0005b8f,
-	0x12a8a: 0xe000a024,
-	0x12a95: 0xe0004462, 0x12a96: 0xe0005029, 0x12a97: 0xe0004907,
-	0x12a99: 0xe0008961, 0x12a9a: 0xe0008391,
-	0x12a9c: 0xe0005dfc, 0x12a9d: 0xe0006823, 0x12a9e: 0xe000644f, 0x12a9f: 0xe00088fe,
-	0x12aa0: 0xe0003f87, 0x12aa2: 0xe0005c51,
-	0x12aa5: 0xe0004d71, 0x12aa7: 0xe000546c,
-	0x12aaf: 0xe0004d74,
-	0x12ab2: 0xe00054dd,
-	0x12ab4: 0xe000850c, 0x12ab6: 0xe0008964,
-	0x12ab8: 0xe0005b57, 0x12aba: 0xe0004aa6, 0x12abb: 0xe0004384,
-	0x12abe: 0xe0004a79,
-	// Block 0x4ab, offset 0x12ac0
-	0x12ac0: 0xe0004c90, 0x12ac2: 0xe0008a95, 0x12ac3: 0xe0006f08,
-	0x12ac4: 0xe00073e0, 0x12ac5: 0xe000a0e4, 0x12ac6: 0xe0007bbd, 0x12ac7: 0xe000a48a,
-	0x12ac8: 0xe000a19f, 0x12aca: 0xe0005d68, 0x12acb: 0xe0005d6c,
-	0x12acd: 0xe0004dbb,
-	0x12ad0: 0xe0004ea3, 0x12ad3: 0xe00069a7,
-	0x12ad4: 0xe0006ec8, 0x12ad5: 0xe00065c3, 0x12ad7: 0xe000670c,
-	0x12ad8: 0xe0004765, 0x12ad9: 0xe0008c52, 0x12ada: 0xe0004bce, 0x12adb: 0xe0006453,
-	0x12adc: 0xe0007c81,
-	0x12ae0: 0xe0006c42, 0x12ae1: 0xe0005fe3, 0x12ae2: 0xe000690f,
-	0x12aeb: 0xe00081c0,
-	0x12aec: 0xe0008a98, 0x12aee: 0xe0008ed6, 0x12aef: 0xe00057bb,
-	0x12af0: 0xe0006be5, 0x12af1: 0xe00064c7, 0x12af2: 0xe0006b1b, 0x12af3: 0xe00070a8,
-	0x12af5: 0xe000844a,
-	0x12af9: 0xe0006c45, 0x12afa: 0xe0003eeb,
-	// Block 0x4ac, offset 0x12b00
-	0x12b02: 0xe00089e4, 0x12b03: 0xe0009e84,
-	0x12b04: 0xe0008901, 0x12b05: 0xe00042cc, 0x12b06: 0xe0005f2b,
-	0x12b09: 0xe0006f2c,
-	0x12b0d: 0xe000815d,
-	0x12b10: 0xe00041fc,
-	0x12b16: 0xe0004704,
-	0x12b19: 0xe000a1c7, 0x12b1b: 0xe000896a,
-	0x12b1c: 0xe0009ee4, 0x12b1e: 0xe00047ab,
-	0x12b21: 0xe000534e, 0x12b22: 0xe0009e88, 0x12b23: 0xe000621f,
-	0x12b26: 0xe0004bd2,
-	0x12b28: 0xe0007f05, 0x12b29: 0xe0008967, 0x12b2a: 0xe00080cd,
-	0x12b2e: 0xe0006971,
-	0x12b30: 0xe0008da8, 0x12b31: 0xe000982d, 0x12b32: 0xe000670f, 0x12b33: 0xe0003f8b,
-	0x12b36: 0xe0008680,
-	0x12b39: 0xe00041b0, 0x12b3a: 0xe00095bd,
-	0x12b3f: 0xe000486e,
-	// Block 0x4ad, offset 0x12b40
-	0x12b43: 0xe0009306,
-	0x12b46: 0xe0004334,
-	0x12b4e: 0xe00087a0, 0x12b4f: 0xe0006db0,
-	0x12b53: 0xe00042d0,
-	0x12b58: 0xe0006338,
-	0x12b5c: 0xe00089e8,
-	0x12b60: 0xe00056b1, 0x12b62: 0xe0008a9b, 0x12b63: 0xe00049fa,
-	0x12b65: 0xe0004cfc, 0x12b66: 0xe0004cff, 0x12b67: 0xe0008b70,
-	0x12b69: 0xe0007d1d, 0x12b6b: 0xe0006aaf,
-	0x12b6c: 0xe0006db3, 0x12b6d: 0xe0007e27, 0x12b6e: 0xe00043ab,
-	0x12b70: 0xe0004670, 0x12b71: 0xe0003f8f, 0x12b72: 0xe0005a8a,
-	0x12b74: 0xe0009163, 0x12b75: 0xe0009003,
-	0x12b78: 0xe000583b, 0x12b7a: 0xe0004c93, 0x12b7b: 0xe0009733,
-	0x12b7d: 0xe0008249, 0x12b7e: 0xe000588f, 0x12b7f: 0xe0005b77,
-	// Block 0x4ae, offset 0x12b80
-	0x12b84: 0xe00044f1, 0x12b87: 0xe0009590,
-	0x12b8a: 0xe0004d32, 0x12b8b: 0xe0006554,
-	0x12b8c: 0xe0007e81, 0x12b8d: 0xe0005e4f,
-	0x12b96: 0xe0006974, 0x12b97: 0xe00068eb,
-	0x12b98: 0xe0009c9a, 0x12b9a: 0xe0006a4f,
-	0x12b9c: 0xe0005b93, 0x12b9d: 0xe0008dcc, 0x12b9e: 0xe0004f21,
-	0x12ba0: 0xe000925b, 0x12ba1: 0xe0005e37, 0x12ba3: 0xe0007626,
-	0x12ba6: 0xe0007018,
-	0x12ba8: 0xe0009983, 0x12ba9: 0xe00079bc,
-	0x12bac: 0xe0005b7b, 0x12baf: 0xe0007d7c,
-	0x12bb4: 0xe000553b, 0x12bb6: 0xe00099a3,
-	0x12bb9: 0xe0008889, 0x12bbb: 0xe0009593,
-	// Block 0x4af, offset 0x12bc0
-	0x12bc8: 0xe000778a, 0x12bc9: 0xe0008d0c, 0x12bca: 0xe000737f, 0x12bcb: 0xe0009447,
-	0x12bd0: 0xe000944a, 0x12bd1: 0xe0004240,
-	0x12bd5: 0xe00078d9, 0x12bd7: 0xe00093d2,
-	0x12bd8: 0xe00043ae, 0x12bdb: 0xe0005eab,
-	0x12bdd: 0xe0008d10, 0x12bde: 0xe000a027, 0x12bdf: 0xe0007ae9,
-	0x12be0: 0xe00044ad, 0x12be1: 0xe00083d6, 0x12be2: 0xe0005303, 0x12be3: 0xe0009e8c,
-	0x12beb: 0xe0006314,
-	0x12bee: 0xe0009489, 0x12bef: 0xe000762a,
-	0x12bf1: 0xe00089ec, 0x12bf2: 0xe000580f, 0x12bf3: 0xe00041dc,
-	0x12bf5: 0xe0005a3a, 0x12bf7: 0xe00057be,
-	0x12bf9: 0xe0009ae5, 0x12bfb: 0xe0005dff,
-	0x12bfd: 0xe000938f, 0x12bfe: 0xe00084d4,
-	// Block 0x4b0, offset 0x12c00
-	0x12c01: 0xe00060c7, 0x12c03: 0xe00064ef,
-	0x12c04: 0xe00077f2, 0x12c05: 0xe0006c8a, 0x12c06: 0xe0005d1d, 0x12c07: 0xe0007a8f,
-	0x12c08: 0xe0003fdf,
-	0x12c10: 0xe0006bf1, 0x12c12: 0xe0008bf4,
-	0x12c14: 0xe0008cac, 0x12c15: 0xe0006a53, 0x12c16: 0xe00067df, 0x12c17: 0xe0005954,
-	0x12c19: 0xe00060d7, 0x12c1a: 0xe000578c,
-	0x12c1e: 0xe0007a92,
-	0x12c21: 0xe0006db6, 0x12c22: 0xe0004a43,
-	0x12c29: 0xe0006f95, 0x12c2a: 0xe000a29d, 0x12c2b: 0xe0004387,
-	0x12c2d: 0xe00041b4, 0x12c2f: 0xe0009ebc,
-	0x12c30: 0xe0008904,
-	0x12c36: 0xe00074de,
-	0x12c39: 0xe00075aa,
-	0x12c3c: 0xe000438a, 0x12c3d: 0xe0006646, 0x12c3e: 0xe00041e0,
-	// Block 0x4b1, offset 0x12c40
-	0x12c41: 0xe000a3a9, 0x12c42: 0xe0008e86,
-	0x12c47: 0xe0005741,
-	0x12c48: 0xe000a53f, 0x12c4a: 0xe0004708,
-	0x12c4c: 0xe0006cbf, 0x12c4d: 0xe0005812, 0x12c4f: 0xe0008594,
-	0x12c53: 0xe0007756,
-	0x12c54: 0xe00083f7, 0x12c56: 0xe0006b2b,
-	0x12c58: 0xe0008e8e, 0x12c5b: 0xe0005198,
-	0x12c5c: 0xe00053ca,
-	// Block 0x4b2, offset 0x12c80
-	0x12cb6: 0xe0006389, 0x12cb7: 0xe0006766,
-	0x12cb8: 0xe0009d26, 0x12cba: 0xe0004200,
-	0x12cbe: 0xe0006223, 0x12cbf: 0xe0009d42,
-	// Block 0x4b3, offset 0x12cc0
-	0x12cc3: 0xe00073b3,
-	0x12cc4: 0xe000433c, 0x12cc5: 0xe0009be4, 0x12cc7: 0xe0008b74,
-	0x12ccb: 0xe0007951,
-	0x12ccc: 0xe000739f, 0x12ccd: 0xe0005744, 0x12cce: 0xe0004fe1,
-	0x12cd0: 0xe000463c,
-	0x12cd4: 0xe0005a8e, 0x12cd5: 0xe0009c36,
-	0x12cd8: 0xe00063e6,
-	0x12cdd: 0xe0008486, 0x12cdf: 0xe0004465,
-	0x12ce0: 0xe0005e53, 0x12ce1: 0xe0003fe3, 0x12ce3: 0xe0004727,
-	0x12ce6: 0xe00063e9,
-	0x12ce8: 0xe0007546, 0x12cea: 0xe0008a47, 0x12ceb: 0xe000471e,
-	0x12cee: 0xe0009596,
-	0x12cf0: 0xe00060f3, 0x12cf2: 0xe0006977,
-	0x12cf5: 0xe0005ad9, 0x12cf7: 0xe00098a9,
-	0x12cf8: 0xe00060ff, 0x12cf9: 0xe00058d3,
-	0x12cfc: 0xe0009b7c, 0x12cfd: 0xe00043b1, 0x12cfe: 0xe0008c0c,
-	// Block 0x4b4, offset 0x12d00
-	0x12d02: 0xe00041e4,
-	0x12d05: 0xe0005318, 0x12d06: 0xe00065c6, 0x12d07: 0xe0004d02,
-	0x12d08: 0xe0004c96, 0x12d0a: 0xe000745c,
-	0x12d0c: 0xe0003f93, 0x12d0e: 0xe0005dcf,
-	0x12d14: 0xe00043ff, 0x12d16: 0xe0004468, 0x12d17: 0xe0003fe7,
-	0x12d18: 0xe0008395, 0x12d1a: 0xe00055df,
-	0x12d1d: 0xe0008489, 0x12d1e: 0xe0006db9,
-	0x12d24: 0xe000496a,
-	0x12d28: 0xe0006a57, 0x12d29: 0xe0007fde, 0x12d2b: 0xe0003feb,
-	0x12d2f: 0xe0003ea3,
-	0x12d32: 0xe000a513,
-	0x12d36: 0xe0008618,
-	0x12d38: 0xe00058d6, 0x12d39: 0xe0004059,
-	0x12d3d: 0xe0007bc0,
-	// Block 0x4b5, offset 0x12d40
-	0x12d41: 0xe000792d,
-	0x12d45: 0xe0006fe2,
-	0x12d4a: 0xe0008085,
-	0x12d4c: 0xe0008089, 0x12d4e: 0xe00055e3,
-	0x12d52: 0xe0006f61,
-	0x12d54: 0xe00068bb, 0x12d55: 0xe000a4c2, 0x12d56: 0xe000a4d2,
-	0x12d5b: 0xe0006c8d,
-	0x12d5f: 0xe00084d8,
-	0x12d60: 0xe0009522, 0x12d61: 0xe0006557, 0x12d63: 0xe000684b,
-	0x12d64: 0xe000701b, 0x12d66: 0xe000861c,
-	0x12d69: 0xe0009987, 0x12d6b: 0xe00079c0,
-	0x12d6c: 0xe000a409, 0x12d6e: 0xe0009da9,
-	0x12d70: 0xe0009c3a, 0x12d73: 0xe00077f5,
-	0x12d79: 0xe00047ae, 0x12d7a: 0xe000446b, 0x12d7b: 0xe00060db,
-	0x12d7c: 0xe000808d, 0x12d7e: 0xe0009ec0,
-	// Block 0x4b6, offset 0x12d80
-	0x12d80: 0xe0007a95, 0x12d81: 0xe0005664, 0x12d83: 0xe0004402,
-	0x12d84: 0xe0005c54, 0x12d85: 0xe00081c3, 0x12d86: 0xe0004c99,
-	0x12d89: 0xe0004871,
-	0x12d8c: 0xe000803e,
-	0x12d90: 0xe0004ddb, 0x12d91: 0xe0004f49, 0x12d92: 0xe0005747,
-	0x12d94: 0xe00081f9, 0x12d95: 0xe00042d4, 0x12d96: 0xe0009309, 0x12d97: 0xe0005c24,
-	0x12d98: 0xe0007c59, 0x12d99: 0xe00098d3,
-	0x12d9e: 0xe0003d93,
-	0x12da1: 0xe00069aa,
-	0x12da6: 0xe0007c05,
-	0x12da8: 0xe0004e8d,
-	0x12dac: 0xe00057d9, 0x12dad: 0xe0004c9c,
-	0x12db0: 0xe0007c08, 0x12db3: 0xe0008041,
-	0x12db6: 0xe00073d3,
-	0x12dbd: 0xe0009763, 0x12dbf: 0xe00042d8,
-	// Block 0x4b7, offset 0x12dc0
-	0x12dc3: 0xe0004fa9,
-	0x12dc6: 0xe00055e7,
-	0x12dca: 0xe000576e,
-	0x12dd2: 0xe00046ac,
-	0x12dd5: 0xe000a078, 0x12dd6: 0xe0006bb7,
-	0x12dd8: 0xe0006676, 0x12dda: 0xe0009525,
-	0x12dde: 0xe0005d70,
-	0x12def: 0xe000553f,
-	0x12df0: 0xe0009393, 0x12df1: 0xe0007891, 0x12df2: 0xe0006bbb, 0x12df3: 0xe0007b41,
-	0x12df5: 0xe0007a53, 0x12df6: 0xe0006b73, 0x12df7: 0xe0008cb0,
-	0x12dfd: 0xe000922b, 0x12dfe: 0xe00056fd, 0x12dff: 0xe0007ef1,
-	// Block 0x4b8, offset 0x12e00
-	0x12e04: 0xe0008044, 0x12e05: 0xe0006e68, 0x12e06: 0xe0006712, 0x12e07: 0xe0008907,
-	0x12e09: 0xe0007eb9, 0x12e0b: 0xe000586b,
-	0x12e0c: 0xe0004c9f,
-	0x12e13: 0xe000a267,
-	0x12e16: 0xe00092be,
-	0x12e18: 0xe0008ada, 0x12e1a: 0xe0005294, 0x12e1b: 0xe0009d2a,
-	0x12e1d: 0xe0003e2f,
-	0x12e21: 0xe0004405, 0x12e22: 0xe0008c55,
-	0x12e25: 0xe000655a, 0x12e26: 0xe0006497,
-	0x12e29: 0xe00041b8, 0x12e2a: 0xe0005fe7, 0x12e2b: 0xe0006f0c,
-	0x12e2d: 0xe0004e9c, 0x12e2f: 0xe0004bfa,
-	0x12e31: 0xe0004769, 0x12e32: 0xe0007ebd,
-	0x12e34: 0xe000a30c, 0x12e35: 0xe0004d05,
-	0x12e3a: 0xe0009a05,
-	// Block 0x4b9, offset 0x12e40
-	0x12e43: 0xe0007d7f,
-	0x12e44: 0xe0008a59, 0x12e46: 0xe0004f4d,
-	0x12e4a: 0xe000490a,
-	0x12e4c: 0xe0006065, 0x12e4e: 0xe00097ca,
-	0x12e55: 0xe00063ec, 0x12e56: 0xe0005f57,
-	0x12e59: 0xe000896d, 0x12e5a: 0xe0006068, 0x12e5b: 0xe0003f47,
-	0x12e5e: 0xe0009a4d,
-	0x12e60: 0xe00040ac, 0x12e61: 0xe000a02a,
-	0x12e64: 0xe0007ed9, 0x12e65: 0xe000697a,
-	0x12e6f: 0xe000446e,
-	0x12e71: 0xe00046e4,
-	0x12e74: 0xe0005224, 0x12e77: 0xe000a452,
-	0x12e78: 0xe000a44a,
-	0x12e7d: 0xe0004eb0, 0x12e7e: 0xe00081fc,
-	// Block 0x4ba, offset 0x12e80
-	0x12e82: 0xe0008c58,
-	0x12e85: 0xe0009f0c, 0x12e86: 0xe0009528, 0x12e87: 0xe0009f10,
-	0x12e88: 0xe0005b03, 0x12e89: 0xe0005b17, 0x12e8a: 0xe0009083,
-	0x12e96: 0xe0005f97,
-	0x12e98: 0xe00079c4, 0x12e9a: 0xe0003dbb, 0x12e9b: 0xe00042dc,
-	0x12ea3: 0xe0006ecc,
-	0x12ea4: 0xe00070ec, 0x12ea7: 0xe00093d5,
-	0x12ea9: 0xe0006dbc, 0x12eab: 0xe0009753,
-	0x12eaf: 0xe0009a50,
-	0x12eb0: 0xe0005297,
-	0x12eb9: 0xe0008f92, 0x12eba: 0xe0006e28,
-	0x12ebe: 0xe000655d,
-	// Block 0x4bb, offset 0x12ec0
-	0x12ec1: 0xe00061a7,
-	0x12ec6: 0xe0008620,
-	0x12eca: 0xe00069f7, 0x12ecb: 0xe0007383,
-	0x12ece: 0xe00070ac,
-	0x12ed0: 0xe000638c, 0x12ed1: 0xe000638f, 0x12ed2: 0xe00040af, 0x12ed3: 0xe00065c9,
-	0x12ed4: 0xe0003f97, 0x12ed5: 0xe00079c8,
-	0x12ee0: 0xe0008add,
-	0x12ee4: 0xe00072b6, 0x12ee5: 0xe0006bbf, 0x12ee6: 0xe0004e6f,
-	0x12eeb: 0xe00089f0,
-	0x12eed: 0xe0007206,
-	0x12ef0: 0xe0007a98, 0x12ef1: 0xe00040e3,
-	0x12ef4: 0xe0007e84, 0x12ef6: 0xe0004f51, 0x12ef7: 0xe0009b40,
-	0x12ef8: 0xe0008335, 0x12ef9: 0xe000629c, 0x12efa: 0xe0006a5b,
-	0x12eff: 0xe0009847,
-	// Block 0x4bc, offset 0x12f00
-	0x12f00: 0xe0005feb, 0x12f02: 0xe00054e0, 0x12f03: 0xe0007915,
-	0x12f04: 0xe0006e2b, 0x12f06: 0xe0006c90,
-	0x12f08: 0xe000417c, 0x12f0a: 0xe0005eaf, 0x12f0b: 0xe000578f,
-	0x12f0f: 0xe0004408,
-	0x12f1a: 0xe0006392,
-	0x12f1c: 0xe00059ce, 0x12f1d: 0xe0006f4d, 0x12f1e: 0xe0008624,
-	0x12f20: 0xe00047b1, 0x12f23: 0xe0008d90,
-	0x12f28: 0xe0009957, 0x12f29: 0xe0004ec9,
-	0x12f30: 0xe00060df, 0x12f33: 0xe0006a5f,
-	0x12f34: 0xe0005d3e, 0x12f35: 0xe00094f8,
-	0x12f38: 0xe0006e2e, 0x12f39: 0xe000649b, 0x12f3a: 0xe0007fb5,
-	0x12f3d: 0xe0004fad, 0x12f3e: 0xe000a2a0, 0x12f3f: 0xe0004e54,
-	// Block 0x4bd, offset 0x12f40
-	0x12f40: 0xe00052a7, 0x12f42: 0xe0006560,
-	0x12f46: 0xe00074da,
-	0x12f4a: 0xe0008970,
-	0x12f4d: 0xe0008850, 0x12f4f: 0xe000664a,
-	0x12f51: 0xe0004e4d,
-	0x12f58: 0xe00053e6, 0x12f59: 0xe0007662, 0x12f5a: 0xe00054e3,
-	0x12f5d: 0xe0005336, 0x12f5f: 0xe0008339,
-	0x12f60: 0xe000555f, 0x12f63: 0xe00070b0,
-	0x12f65: 0xe000796d, 0x12f67: 0xe000833d,
-	0x12f68: 0xe0005978, 0x12f6a: 0xe00081c6,
-	0x12f6c: 0xe000751e, 0x12f6d: 0xe000952b,
-	0x12f73: 0xe0008c5b,
-	0x12f74: 0xe0009599, 0x12f76: 0xe0009127,
-	0x12f7a: 0xe000509a, 0x12f7b: 0xe0008d14,
-	0x12f7c: 0xe0004874, 0x12f7e: 0xe0007e2a,
-	// Block 0x4be, offset 0x12f80
-	0x12f81: 0xe0007593, 0x12f82: 0xe0007b75, 0x12f83: 0xe00069fb,
-	0x12f85: 0xe0004877, 0x12f87: 0xe0007581,
-	0x12f88: 0xe000a4d6, 0x12f8a: 0xe000487a,
-	0x12f8c: 0xe0006ae3, 0x12f8d: 0xe0006715,
-	0x12f90: 0xe0008c8b, 0x12f92: 0xe000697d,
-	0x12f96: 0xe0009a80,
-	0x12f9b: 0xe00090df,
-	0x12f9c: 0xe0006ed0, 0x12f9e: 0xe0005d20, 0x12f9f: 0xe0008a9e,
-	0x12fa1: 0xe0003f9b,
-	0x12faa: 0xe0009d2e, 0x12fab: 0xe0005fef,
-	0x12fac: 0xe0005f2f,
-	0x12fb3: 0xe00094a5,
-	0x12fb5: 0xe0009684, 0x12fb6: 0xe0005eb3, 0x12fb7: 0xe0009e90,
-	0x12fb8: 0xe0003d96, 0x12fb9: 0xe0006a63,
-	0x12fbd: 0xe0006033,
-	// Block 0x4bf, offset 0x12fc0
-	0x12fc0: 0xe0006395,
-	0x12fc5: 0xe0007584, 0x12fc7: 0xe00087a4,
-	0x12fd1: 0xe00099a7,
-	0x12fd8: 0xe0006c93, 0x12fd9: 0xe0008f96, 0x12fda: 0xe0008973,
-	0x12fdf: 0xe0005254,
-	0x12fe4: 0xe0007fe1, 0x12fe6: 0xe0009c9e,
-	0x12fe8: 0xe0005cb7, 0x12fea: 0xe000568e, 0x12feb: 0xe0005691,
-	0x12fee: 0xe0003e33, 0x12fef: 0xe0005470,
-	0x12ff1: 0xe0003e37, 0x12ff2: 0xe0006913,
-	0x12ff4: 0xe00064cb, 0x12ff6: 0xe00076a2,
-	0x12ff8: 0xe00092c1,
-	0x12ffe: 0xe000732a,
-	// Block 0x4c0, offset 0x13000
-	0x1300a: 0xe000912b, 0x1300b: 0xe0007bc3,
-	0x1300d: 0xe000824d, 0x1300e: 0xe00049b6,
-	0x13012: 0xe0005a92,
-	0x13014: 0xe000a3e5,
-	0x13018: 0xe00065cc, 0x13019: 0xe0006398, 0x1301a: 0xe00052ab,
-	0x1301d: 0xe0008c5e, 0x1301f: 0xe0006817,
-	0x13021: 0xe000414b, 0x13022: 0xe0008109, 0x13023: 0xe00063ef,
-	0x13025: 0xe0004028, 0x13026: 0xe000a02d, 0x13027: 0xe00069ad,
-	0x13028: 0xe0004bea, 0x13029: 0xe0004b92, 0x1302a: 0xe0004d08, 0x1302b: 0xe0007d21,
-	0x1302c: 0xe0006457, 0x1302d: 0xe00098ac, 0x1302e: 0xe00077bc, 0x1302f: 0xe0007130,
-	0x13030: 0xe0004d0b, 0x13031: 0xe000a120, 0x13033: 0xe0005ff3,
-	0x13037: 0xe0008c61,
-	0x13038: 0xe0007c5d, 0x13039: 0xe0004b32, 0x1303b: 0xe00093f3,
-	0x1303c: 0xe0005c27, 0x1303d: 0xe000717b, 0x1303e: 0xe00065cf, 0x1303f: 0xe0008185,
-	// Block 0x4c1, offset 0x13040
-	0x13045: 0xe00077f8,
-	0x13051: 0xe0007ced, 0x13052: 0xe00076a6, 0x13053: 0xe0005623,
-	0x13054: 0xe00097cd, 0x13055: 0xe00092c4, 0x13057: 0xe0005ce1,
-	0x1305b: 0xe0003d54,
-	0x1305c: 0xe0005c83, 0x1305e: 0xe0009a53, 0x1305f: 0xe000487d,
-	0x13060: 0xe0005e57, 0x13061: 0xe0008047, 0x13063: 0xe00040b2,
-	0x13065: 0xe00073e4, 0x13066: 0xe000440b, 0x13067: 0xe000844d,
-	0x1306b: 0xe00086c8,
-	0x13071: 0xe000775a, 0x13073: 0xe0005258,
-	0x13074: 0xe000848c,
-	0x13079: 0xe00099e7, 0x1307a: 0xe0005af7, 0x1307b: 0xe00063f2,
-	0x1307d: 0xe000440e, 0x1307e: 0xe0009b64, 0x1307f: 0xe0005e02,
-	// Block 0x4c2, offset 0x13080
-	0x13080: 0xe00064cf, 0x13081: 0xe0008b94, 0x13082: 0xe0005d23, 0x13083: 0xe0006123,
-	0x13084: 0xe0003d57, 0x13085: 0xe0005c2a,
-	0x13088: 0xe00081ff, 0x13089: 0xe0005a62,
-	0x13097: 0xe0005bcf,
-	0x1309b: 0xe0003e5b,
-	0x1309c: 0xe000912f, 0x1309d: 0xe0009015,
-	0x130a3: 0xe0007894,
-	0x130a8: 0xe00081c9, 0x130aa: 0xe000470c, 0x130ab: 0xe0005a96,
-	0x130af: 0xe00062a0,
-	0x130b1: 0xe0006dbf, 0x130b2: 0xe0008202, 0x130b3: 0xe0003fef,
-	0x130b4: 0xe000a2a3, 0x130b5: 0xe00080d1, 0x130b6: 0xe0004edf,
-	0x130b8: 0xe0007b45, 0x130b9: 0xe0007587,
-	0x130bc: 0xe000525c,
-	// Block 0x4c3, offset 0x130c0
-	0x130c0: 0xe0006ed4, 0x130c3: 0xe0008628,
-	0x130c7: 0xe0009dbd,
-	0x130c9: 0xe00092c7, 0x130ca: 0xe0009f70,
-	0x130cf: 0xe0008155,
-	0x130d0: 0xe0009133, 0x130d1: 0xe000804a, 0x130d2: 0xe000a243,
-	0x130f3: 0xe0005282,
-	0x130f7: 0xe0009bc0,
-	0x130fb: 0xe00084dc,
-	// Block 0x4c4, offset 0x13100
-	0x13105: 0xe0005903,
-	0x13109: 0xe00058d9, 0x1310a: 0xe0008341,
-	0x1310e: 0xe0006718,
-	0x13112: 0xe00040b5, 0x13113: 0xe0005afa,
-	0x13116: 0xe00042e0,
-	0x13118: 0xe00070b4, 0x1311a: 0xe0007666, 0x1311b: 0xe0008814,
-	0x1311d: 0xe0008a41, 0x1311e: 0xe00079cc, 0x1311f: 0xe0009cae,
-	0x13120: 0xe0007e87, 0x13122: 0xe0009f14,
-	0x13128: 0xe000541e, 0x13129: 0xe000639b, 0x1312a: 0xe000717e, 0x1312b: 0xe00059d2,
-	0x1313d: 0xe0005a9a, 0x1313e: 0xe0005ab2, 0x1313f: 0xe0008205,
-	// Block 0x4c5, offset 0x13140
-	0x13141: 0xe000922f, 0x13142: 0xe0008510,
-	0x13145: 0xe0004640,
-	0x13149: 0xe00056b5, 0x1314a: 0xe0004942,
-	0x1314c: 0xe0004ace,
-	0x13151: 0xe00095c0, 0x13153: 0xe00045b4,
-	0x13154: 0xe00062d4, 0x13156: 0xe0008f9a,
-	0x13158: 0xe0006f3c,
-	0x1315c: 0xe0009006, 0x1315f: 0xe0005163,
-	0x13160: 0xe00098d6, 0x13161: 0xe0009cb2,
-	0x13169: 0xe0006258, 0x1316b: 0xe0004b36,
-	0x1316f: 0xe000a123,
-	0x13170: 0xe0004411, 0x13171: 0xe0005893, 0x13172: 0xe0006563,
-	0x13174: 0xe000729e, 0x13176: 0xe000633c,
-	0x13179: 0xe0008450,
-	0x1317d: 0xe0006e6c,
-	// Block 0x4c6, offset 0x13180
-	0x13183: 0xe00094fb,
-	0x13184: 0xe000511b, 0x13186: 0xe00065d2, 0x13187: 0xe0008399,
-	0x1318a: 0xe0005433, 0x1318b: 0xe000904f,
-	0x1318c: 0xe0005b37, 0x1318d: 0xe00099d3, 0x1318e: 0xe0007d82,
-	0x131a9: 0xe00093f6,
-	0x131ac: 0xe0005a16,
-	0x131b1: 0xe000a3c9,
-	0x131b5: 0xe000798e,
-	0x131b8: 0xe0007e2d, 0x131b9: 0xe00099ab,
-	0x131bc: 0xe000720a, 0x131bd: 0xe0005352,
-	// Block 0x4c7, offset 0x131c0
-	0x131c6: 0xe0006270,
-	0x131c9: 0xe00076ee, 0x131ca: 0xe00072ba,
-	0x131d1: 0xe0009b1b,
-	0x131d7: 0xe0008453,
-	0x131da: 0xe0007144, 0x131db: 0xe0003e87,
-	0x131e1: 0xe0009a56, 0x131e3: 0xe0005228,
-	0x131e6: 0xe0007d85,
-	0x131e9: 0xe00098d9, 0x131ea: 0xe00043b4, 0x131eb: 0xe000a030,
-	0x131ec: 0xe0008345, 0x131ed: 0xe0003d99, 0x131ef: 0xe00073e8,
-	0x131f1: 0xe000939f, 0x131f3: 0xe0007daf,
-	0x131f5: 0xe0004a7c, 0x131f7: 0xe000a3ad,
-	0x131fa: 0xe0008bcc,
-	// Block 0x4c8, offset 0x13200
-	0x13202: 0xe0009279,
-	0x13210: 0xe0006dc2,
-	0x13214: 0xe0006fe5,
-	0x13219: 0xe0005c97,
-	0x1321c: 0xe00067b7, 0x1321f: 0xe000490d,
-	0x13221: 0xe0005ff7,
-	0x13228: 0xe0009137,
-	0x1322d: 0xe000944d, 0x1322f: 0xe0004757,
-	0x13232: 0xe0009a59,
-	0x13234: 0xe000678b,
-	0x13238: 0xe0008bf8, 0x13239: 0xe0004244, 0x1323a: 0xe0008dac, 0x1323b: 0xe00073ec,
-	0x1323c: 0xe0008f9e, 0x1323f: 0xe000a033,
-	// Block 0x4c9, offset 0x13240
-	0x13240: 0xe0006ce3, 0x13241: 0xe0008d54, 0x13242: 0xe0005bd3,
-	0x13244: 0xe000948d, 0x13246: 0xe00069e3,
-	0x13249: 0xe0007b49, 0x1324a: 0xe0007955, 0x1324b: 0xe000402b,
-	0x1324d: 0xe0006fe8,
-	0x13250: 0xe0007af9, 0x13251: 0xe000671b, 0x13253: 0xe000608c,
-	0x13256: 0xe00065d5,
-	0x1325a: 0xe0006dc5,
-	0x1326c: 0xe0006318, 0x1326d: 0xe00072be, 0x1326e: 0xe0005543, 0x1326f: 0xe00093a3,
-	0x13271: 0xe00099eb,
-	0x13274: 0xe0006ed8,
-	0x1327c: 0xe0005771, 0x1327d: 0xe0009b80,
-	// Block 0x4ca, offset 0x13280
-	0x13280: 0xe00063f5,
-	0x13286: 0xe000589f,
-	0x13291: 0xe0005b9f, 0x13293: 0xe0005a1a,
-	0x13294: 0xe00062a4, 0x13295: 0xe000927c, 0x13297: 0xe00081cc,
-	0x13298: 0xe000681b, 0x1329a: 0xe0007c8d,
-	0x1329e: 0xe00057c1, 0x1329f: 0xe0008ae0,
-	0x132a1: 0xe0009009, 0x132a3: 0xe0008349,
-	0x132a5: 0xe0009397, 0x132a6: 0xe0008976,
-	0x132aa: 0xe00086cc,
-	0x132ac: 0xe0006c48, 0x132ad: 0xe0007f71, 0x132af: 0xe0008d18,
-	0x132bd: 0xe0009a08, 0x132bf: 0xe0007d88,
-	// Block 0x4cb, offset 0x132c0
-	0x132c1: 0xe0004fb1, 0x132c3: 0xe00060cb,
-	0x132c6: 0xe000913b,
-	0x132c9: 0xe00092ca, 0x132ca: 0xe00077fb, 0x132cb: 0xe00077fe,
-	0x132ce: 0xe00047b4,
-	0x132d3: 0xe0007c61,
-	0x132d5: 0xe0007e8a, 0x132d6: 0xe00040b8,
-	0x132d8: 0xe0007ad4, 0x132d9: 0xe0009faf,
-	0x132de: 0xe000927f,
-	0x132e1: 0xe000649f, 0x132e3: 0xe0006edc,
-	0x132e4: 0xe0007e8d,
-	0x132e8: 0xe0004a0a, 0x132e9: 0xe000979b, 0x132ea: 0xe0005d26, 0x132eb: 0xe0005260,
-	0x132ed: 0xe0006c4b,
-	0x132fa: 0xe0008bd4,
-	0x132fe: 0xe000574a,
-	// Block 0x4cc, offset 0x13300
-	0x13300: 0xe00078f5,
-	0x13304: 0xe0005eb7, 0x13306: 0xe0007363, 0x13307: 0xe0005dd2,
-	0x13309: 0xe0007801, 0x1330a: 0xe00043b7,
-	0x1330c: 0xe0009ded, 0x1330f: 0xe0007fe4,
-	0x13311: 0xe0003f9f,
-	0x13314: 0xe000834d, 0x13317: 0xe0007d25,
-	0x13319: 0xe00095c3, 0x1331b: 0xe0006ae7,
-	0x1331d: 0xe0004fe5,
-	0x13324: 0xe0009d95, 0x13325: 0xe0009357, 0x13326: 0xe00090e3,
-	0x13328: 0xe000a3b9, 0x13329: 0xe0006803, 0x1332a: 0xe00070b8,
-	0x1332f: 0xe0006980,
-	0x13330: 0xe000a391,
-	0x1333a: 0xe0008853,
-	// Block 0x4cd, offset 0x13340
-	0x13341: 0xe0004414,
-	0x13349: 0xe00081cf,
-	0x1334d: 0xe00053ce, 0x1334e: 0xe00070bc, 0x1334f: 0xe0008351,
-	0x13350: 0xe0005ced,
-	0x13355: 0xe0007bc6,
-	0x1335c: 0xe00054b9, 0x1335d: 0xe00077bf,
-	0x13364: 0xe00052df, 0x13365: 0xe00073f0,
-	0x13369: 0xe00060cf, 0x1336a: 0xe0006dc8,
-	0x13377: 0xe0008456,
-	0x13379: 0xe0007366, 0x1337a: 0xe0005928, 0x1337b: 0xe000890a,
-	0x1337d: 0xe00095f9, 0x1337f: 0xe00045f8,
-	// Block 0x4ce, offset 0x13380
-	0x13380: 0xe0009707, 0x13382: 0xe00077c2,
-	0x13384: 0xe0004d0e, 0x13386: 0xe0005667, 0x13387: 0xe0006c4e,
-	0x1338a: 0xe00078dd, 0x1338b: 0xe000664e,
-	0x13396: 0xe000751a, 0x13397: 0xe000615b,
-	0x13398: 0xe000748c, 0x1339a: 0xe0006a67,
-	0x133a2: 0xe0005711,
-	0x133a7: 0xe00040bb,
-	0x133a9: 0xe00060e3,
-	0x133ad: 0xe000537e, 0x133af: 0xe00097ab,
-	0x133bc: 0xe0005e05, 0x133bf: 0xe000531b,
-	// Block 0x4cf, offset 0x133c0
-	0x133c1: 0xe0004d11,
-	0x133ce: 0xe000a036,
-	0x133d0: 0xe0009bf2, 0x133d3: 0xe000a327,
-	0x133d4: 0xe00040e7, 0x133d5: 0xe0009049,
-	0x133db: 0xe0009df7,
-	0x133dc: 0xe000566a, 0x133de: 0xe0007bc9, 0x133df: 0xe000a039,
-	0x133e7: 0xe000a418,
-	0x133eb: 0xe000a3e8,
-	0x133ec: 0xe0004aa9, 0x133ef: 0xe0004aac,
-	0x133f1: 0xe0006f55,
-	0x133f8: 0xe0008208, 0x133f9: 0xe000a0e8, 0x133fa: 0xe000a3eb, 0x133fb: 0xe0005b47,
-	// Block 0x4d0, offset 0x13400
-	0x1340a: 0xe0005d74, 0x1340b: 0xe0007804,
-	0x1340c: 0xe0005ffb, 0x1340d: 0xe00065d8,
-	0x13413: 0xe00080d5,
-	0x13415: 0xe000913f,
-	0x13423: 0xe0004565,
-	0x13424: 0xe000890d,
-	0x13428: 0xe00063f8, 0x13429: 0xe000959c, 0x1342a: 0xe000529a,
-	0x1342f: 0xe0004910,
-	0x13430: 0xe0007e90, 0x13431: 0xe000903c,
-	0x13434: 0xe0007e93,
-	// Block 0x4d1, offset 0x13440
-	0x13440: 0xe0008ae3,
-	0x13445: 0xe00086d0, 0x13446: 0xe000848f, 0x13447: 0xe000671e,
-	0x13449: 0xe0005627, 0x1344b: 0xe0004f25,
-	0x13454: 0xe000a2a6,
-	0x13459: 0xe0007970, 0x1345b: 0xe0008aa1,
-	0x1345e: 0xe000a1f3, 0x1345f: 0xe00047b7,
-	0x13463: 0xe0004d4a,
-	0x13464: 0xe0009cce,
-	0x13469: 0xe0004589,
-	0x1346c: 0xe000458d, 0x1346d: 0xe0008d94,
-	0x13478: 0xe0006c96, 0x13479: 0xe0007b79, 0x1347b: 0xe0006bf4,
-	0x1347e: 0xe0007181,
-	// Block 0x4d2, offset 0x13480
-	0x13480: 0xe0009343, 0x13482: 0xe000631c, 0x13483: 0xe00070c0,
-	0x13486: 0xe0009ec4,
-	0x13488: 0xe000785e, 0x13489: 0xe00063fb, 0x1348a: 0xe0005906, 0x1348b: 0xe0005422,
-	0x13491: 0xe0004f55,
-	0x13498: 0xe0008c64, 0x1349a: 0xe0006566,
-	0x1349c: 0xe0005e6b, 0x1349d: 0xe0004d14,
-	0x134a1: 0xe0006769,
-	0x134a5: 0xe00069ff,
-	0x134a8: 0xe00086f4, 0x134a9: 0xe0008979,
-	0x134b4: 0xe00090ab, 0x134b5: 0xe000766a, 0x134b7: 0xe00049fe,
-	0x134ba: 0xe0007807, 0x134bb: 0xe0009247,
-	0x134bf: 0xe0007d29,
-	// Block 0x4d3, offset 0x134c0
-	0x134c0: 0xe0005264,
-	0x134cc: 0xe00045e1, 0x134ce: 0xe0003e8f,
-	0x134d5: 0xe0007058, 0x134d7: 0xe000a247,
-	0x134d9: 0xe00099af,
-	0x134df: 0xe0007d8b,
-	0x134e0: 0xe00062d8,
-	0x134e4: 0xe0007e96, 0x134e5: 0xe0005c57, 0x134e6: 0xe0009bc3,
-	0x134e8: 0xe0006f51,
-	0x134ee: 0xe00062dc,
-	0x134f4: 0xe000a03c, 0x134f6: 0xe00086e8,
-	0x134f8: 0xe0007973,
-	// Block 0x4d4, offset 0x13500
-	0x13502: 0xe000540a, 0x13503: 0xe0006037,
-	0x1350c: 0xe0005f5b, 0x1350d: 0xe0007f09,
-	0x13518: 0xe000800e,
-	0x1351e: 0xe00059b6, 0x1351f: 0xe0005bd7,
-	0x13522: 0xe0009f74, 0x13523: 0xe0005307,
-	0x1352d: 0xe0005909,
-	0x13533: 0xe000502d,
-	0x13534: 0xe0008d58,
-	0x1353a: 0xe000531e, 0x1353b: 0xe00057dc,
-	0x1353d: 0xe0008a24,
-	// Block 0x4d5, offset 0x13540
-	0x13540: 0xe0006cff,
-	0x13544: 0xe0009651, 0x13547: 0xe00059b9,
-	0x1354a: 0xe0005c5a, 0x1354b: 0xe000710c,
-	0x13552: 0xe0005ab6,
-	0x1355a: 0xe0009963, 0x1355b: 0xe0009967,
-	0x13560: 0xe0005f33, 0x13563: 0xe0004d17,
-	0x1356c: 0xe0006a6b, 0x1356f: 0xe0007a9b,
-	0x13572: 0xe00094dd,
-	0x13577: 0xe000505d,
-	0x13579: 0xe0009d6b, 0x1357b: 0xe0007fe7,
-	0x1357e: 0xe0006b2f,
-	// Block 0x4d6, offset 0x13580
-	0x13585: 0xe0006f99,
-	0x1358d: 0xe0003ea7,
-	0x13591: 0xe000778e,
-	0x13595: 0xe000766e,
-	0x1359f: 0xe00053ea,
-	0x135a1: 0xe00054e6, 0x135a2: 0xe0008b44, 0x135a3: 0xe00054bc,
-	0x135b1: 0xe0004417, 0x135b2: 0xe00041e8,
-	0x135b6: 0xe00082b1,
-	0x135b9: 0xe000529d, 0x135bb: 0xe0005a1e,
-	// Block 0x4d7, offset 0x135c0
-	0x135c0: 0xe0009edc,
-	0x135c4: 0xe0004eac, 0x135c6: 0xe0008ba4,
-	0x135ca: 0xe0005ba7,
-	0x135cc: 0xe0009dc1, 0x135cd: 0xe000762e, 0x135ce: 0xe0003e5f,
-	0x135d2: 0xe0009e94, 0x135d3: 0xe0006f20,
-	0x135d7: 0xe0003d5a,
-	0x135d9: 0xe0007184, 0x135db: 0xe0007d8e,
-	0x135dd: 0xe00094e1, 0x135de: 0xe0007db2,
-	0x135e1: 0xe0009f78, 0x135e2: 0xe0004880, 0x135e3: 0xe0007fea,
-	0x135e8: 0xe0009ac1, 0x135eb: 0xe000681f,
-	0x135ee: 0xe00044f5,
-	0x135f0: 0xe0006d44, 0x135f2: 0xe0004dbf,
-	0x135f7: 0xe00094e5,
-	0x135fd: 0xe0008161, 0x135fe: 0xe0004b96, 0x135ff: 0xe0004b9a,
-	// Block 0x4d8, offset 0x13600
-	0x13601: 0xe0007cf1, 0x13602: 0xe0005beb,
-	0x13608: 0xe0003d5d, 0x1360b: 0xe000509d,
-	0x1360d: 0xe0009a5c,
-	0x13612: 0xe0004f29,
-	0x13616: 0xe0006dcb, 0x13617: 0xe0008d1c,
-	0x1361b: 0xe0008492,
-	0x1361d: 0xe00063fe, 0x1361e: 0xe00044d9,
-	0x13622: 0xe00060e7,
-	0x1362a: 0xe00040be, 0x1362b: 0xe0009b2b,
-	0x13634: 0xe000441a,
-	// Block 0x4d9, offset 0x13640
-	0x13640: 0xe000810d, 0x13641: 0xe00083d9, 0x13642: 0xe0005583,
-	0x13645: 0xe000839d,
-	0x1364a: 0xe0004e84,
-	0x1364d: 0xe00044f9, 0x1364f: 0xe00058dc,
-	0x13652: 0xe0006401,
-	0x13654: 0xe00077c5, 0x13655: 0xe0007e30,
-	0x13658: 0xe0004913, 0x13659: 0xe000496e,
-	0x1365c: 0xe000625b, 0x1365d: 0xe0008355, 0x1365f: 0xe0006721,
-	0x13661: 0xe00058df,
-	0x13668: 0xe0006569,
-	0x1366f: 0xe0008ae6,
-	0x13671: 0xe0009ae8, 0x13673: 0xe00068bf,
-	0x13674: 0xe000606b, 0x13675: 0xe000606e,
-	0x13678: 0xe0005321, 0x13679: 0xe00045e4,
-	0x1367d: 0xe0008856, 0x1367e: 0xe00040c1,
-	// Block 0x4da, offset 0x13680
-	0x13684: 0xe0009052, 0x13687: 0xe00062a8,
-	0x1368a: 0xe00099b3,
-	0x1368c: 0xe00044fd,
-	0x13690: 0xe0003e8b, 0x13692: 0xe0009a5f, 0x13693: 0xe000625e,
-	0x13695: 0xe0007e99,
-	0x13698: 0xe0007d91, 0x13699: 0xe0006071, 0x1369a: 0xe0008495,
-	0x136a5: 0xe0007aed, 0x136a7: 0xe0004340,
-	0x136aa: 0xe000984a, 0x136ab: 0xe00095c6,
-	0x136b0: 0xe0004103,
-	0x136b6: 0xe0006f65,
-	0x136b8: 0xe00057c4, 0x136ba: 0xe000921b, 0x136bb: 0xe0006aeb,
-	// Block 0x4db, offset 0x136c0
-	0x136c1: 0xe0003fa3,
-	0x136c4: 0xe0007460,
-	0x136cd: 0xe00082d5,
-	0x136d6: 0xe0007897,
-	0x136d8: 0xe000475a,
-	0x136dc: 0xe00091df, 0x136de: 0xe0006173, 0x136df: 0xe0004b9e,
-	0x136e0: 0xe0005061,
-	0x136e4: 0xe00053d2,
-	0x136ea: 0xe0005a66,
-	0x136ed: 0xe000a543, 0x136ef: 0xe00095fd,
-	0x136f2: 0xe0006f69,
-	0x136f4: 0xe0005396,
-	0x136ff: 0xe0006983,
-	// Block 0x4dc, offset 0x13700
-	0x13701: 0xe0007a9e, 0x13703: 0xe0004fb5,
-	0x13706: 0xe00062ac, 0x13707: 0xe0009936,
-	0x13708: 0xe0009dad, 0x13709: 0xe0004d1a, 0x1370b: 0xe00041bc,
-	0x1370f: 0xe0004a7f,
-	0x13713: 0xe0005b4f,
-	0x13716: 0xe0006feb, 0x13717: 0xe000676c,
-	0x13718: 0xe00086d4,
-	0x13721: 0xe0004180,
-	0x13728: 0xe000720e, 0x13729: 0xe000511e, 0x1372a: 0xe00095f1,
-	0x1372c: 0xe0004d1d, 0x1372f: 0xe0004916,
-	0x13732: 0xe0004b3a,
-	0x13737: 0xe0009055,
-	0x1373a: 0xe0003dbf,
-	0x1373d: 0xe00053d6, 0x1373f: 0xe0008514,
-	// Block 0x4dd, offset 0x13740
-	0x13740: 0xe0004644,
-	0x13752: 0xe0003dc3,
-	0x13754: 0xe0004b62, 0x13756: 0xe000420c,
-	0x1375a: 0xe0004471,
-	0x1375c: 0xe000820b, 0x1375d: 0xe0008498,
-	0x13763: 0xe0009d6e,
-	0x13765: 0xe0004775,
-	0x13771: 0xe0009b84, 0x13773: 0xe00044b1,
-	0x13774: 0xe00068c3,
-	0x13778: 0xe0009347,
-	// Block 0x4de, offset 0x13780
-	0x13780: 0xe00074f2, 0x13782: 0xe00087a8, 0x13783: 0xe000639e,
-	0x13787: 0xe0004779,
-	0x13788: 0xe000438d, 0x13789: 0xe000612b, 0x1378a: 0xe00070c4,
-	0x1378c: 0xe000a0ec, 0x1378e: 0xe000980e,
-	0x13790: 0xe0007276, 0x13791: 0xe0008071, 0x13793: 0xe000a395,
-	0x13794: 0xe0007f55, 0x13795: 0xe00067e3, 0x13796: 0xe000a48e, 0x13797: 0xe00096e7,
-	0x13798: 0xe0004ca2, 0x1379b: 0xe0007976,
-	0x1379d: 0xe0007187, 0x1379f: 0xe0006d13,
-	0x137a2: 0xe000a47a, 0x137a3: 0xe0004204,
-	0x137a5: 0xe0004e94,
-	0x137aa: 0xe0005fff,
-	0x137ad: 0xe0006aef,
-	0x137b1: 0xe0009dfa,
-	0x137b4: 0xe0006c51, 0x137b6: 0xe0003d60,
-	0x137ba: 0xe0008d20, 0x137bb: 0xe0008aa4,
-	0x137bc: 0xe0008818, 0x137be: 0xe000820e,
-	// Block 0x4df, offset 0x137c0
-	0x137c1: 0xe0004474,
-	0x137c6: 0xe000849b,
-	0x137cb: 0xe0008ae9,
-	0x137d0: 0xe0006724, 0x137d1: 0xe0008074,
-	0x137d4: 0xe0008910, 0x137d5: 0xe00099d7, 0x137d6: 0xe0009b34, 0x137d7: 0xe0009f94,
-	0x137d8: 0xe00049a2, 0x137db: 0xe0008459,
-	0x137de: 0xe0006727,
-	0x137e0: 0xe000775e, 0x137e1: 0xe000a369, 0x137e2: 0xe0006ee0, 0x137e3: 0xe00077c8,
-	0x137e6: 0xe0006fee,
-	0x137e9: 0xe0006ff1, 0x137eb: 0xe00096a2,
-	0x137ec: 0xe0004919, 0x137ed: 0xe0004a1f, 0x137ee: 0xe0008598,
-	0x137f0: 0xe000a537, 0x137f1: 0xe000a126, 0x137f2: 0xe0009d71, 0x137f3: 0xe00068c7,
-	0x137f5: 0xe0006a6f,
-	0x137f9: 0xe00091bb,
-	0x137fc: 0xe000a2be, 0x137ff: 0xe000472a,
-	// Block 0x4e0, offset 0x13800
-	0x13802: 0xe000897c,
-	0x13804: 0xe000574d, 0x13805: 0xe0008aa7, 0x13806: 0xe0004710, 0x13807: 0xe00045b7,
-	0x1380c: 0xe0008c67, 0x1380d: 0xe00080d9,
-	0x13811: 0xe0004714, 0x13813: 0xe0006986,
-	0x13815: 0xe0009737,
-	0x13818: 0xe0007e33, 0x1381a: 0xe000930c,
-	0x1381e: 0xe00074b2,
-	0x13820: 0xe0006bc3, 0x13821: 0xe0004390, 0x13822: 0xe0009ec8, 0x13823: 0xe0005d29,
-	0x13824: 0xe0007861, 0x13825: 0xe000441d, 0x13826: 0xe0006d17, 0x13827: 0xe0009a83,
-	0x13828: 0xe000a2a9, 0x1382a: 0xe0006af3,
-	0x13830: 0xe0006dce, 0x13832: 0xe00045ba,
-	0x13839: 0xe000656c,
-	0x1383c: 0xe0007fed, 0x1383e: 0xe0007f21, 0x1383f: 0xe0008913,
-	// Block 0x4e1, offset 0x13840
-	0x13842: 0xe00091bf,
-	0x13844: 0xe0006ee4, 0x13847: 0xe0004fb9,
-	0x13849: 0xe0007db5, 0x1384b: 0xe0009233,
-	0x1384d: 0xe0008402, 0x1384f: 0xe00093f9,
-	0x13852: 0xe0005474,
-	0x13856: 0xe00056e1,
-	0x1385b: 0xe0007e36,
-	0x1385c: 0xe00091ff, 0x1385e: 0xe00099b7, 0x1385f: 0xe000701e,
-	0x13860: 0xe000a3d1, 0x13861: 0xe0006ff4,
-	0x13864: 0xe0007212, 0x13866: 0xe000925e, 0x13867: 0xe0009d74,
-	0x1386a: 0xe00087ac, 0x1386b: 0xe0003e3b,
-	0x1386d: 0xe0007e39, 0x1386e: 0xe00081d2,
-	0x13870: 0xe0007021, 0x13871: 0xe000a3fd, 0x13873: 0xe00072c2,
-	0x13874: 0xe0009cb6, 0x13876: 0xe0007134, 0x13877: 0xe0009b07,
-	0x13878: 0xe0008859, 0x1387a: 0xe00074f6,
-	0x1387c: 0xe000a3d5, 0x1387e: 0xe0004d77,
-	// Block 0x4e2, offset 0x13880
-	0x13880: 0xe0005c2d, 0x13881: 0xe000725a, 0x13882: 0xe0007d94,
-	0x13884: 0xe00052e3, 0x13887: 0xe0004107,
-	0x1388c: 0xe0003d9c, 0x1388e: 0xe0005dd5,
-	0x13890: 0xe0005e6f, 0x13891: 0xe0009fcd,
-	0x13894: 0xe0009bf6, 0x13896: 0xe0006cc3, 0x13897: 0xe0006003,
-	0x13899: 0xe0004220, 0x1389a: 0xe0008091, 0x1389b: 0xe0003fa7,
-	0x1389c: 0xe0007d2d, 0x1389d: 0xe000672a,
-	0x138a0: 0xe0007aa1, 0x138a3: 0xe0007c0b,
-	0x138a6: 0xe0004344,
-	0x138a8: 0xe0005c30, 0x138ab: 0xe00084e0,
-	0x138ac: 0xe0005806,
-	0x138b3: 0xe0004883,
-	0x138b7: 0xe000789a,
-	0x138b9: 0xe0004b3e,
-	0x138be: 0xe0005a3e,
-	// Block 0x4e3, offset 0x138c0
-	0x138c1: 0xe000a129, 0x138c3: 0xe000a36c,
-	0x138c9: 0xe0008bfc,
-	0x138cc: 0xe0007991, 0x138ce: 0xe000a42e, 0x138cf: 0xe0004ca5,
-	0x138d4: 0xe0006ab3, 0x138d6: 0xe0008f32,
-	0x138d8: 0xe000705c, 0x138d9: 0xe000930f, 0x138da: 0xe0004fbd,
-	0x138dc: 0xe0006261, 0x138df: 0xe000897f,
-	0x138e6: 0xe00042e4,
-	0x138eb: 0xe0006b4f,
-	0x138ec: 0xe000656f, 0x138ef: 0xe00075ae,
-	0x138f0: 0xe0007ff0, 0x138f1: 0xe0006ab7,
-	0x138f4: 0xe00041c0, 0x138f7: 0xe000a03f,
-	0x138fd: 0xe00077cb, 0x138ff: 0xe0009fd0,
-	// Block 0x4e4, offset 0x13900
-	0x13900: 0xe000519c,
-	0x13909: 0xe0007e9c, 0x1390a: 0xe0006187,
-	0x1390c: 0xe0007672, 0x1390e: 0xe0006e31,
-	0x13910: 0xe0006dd1, 0x13912: 0xe0008f02, 0x13913: 0xe0007464,
-	0x13916: 0xe0008f06,
-	0x1391a: 0xe0008e92,
-	0x1391c: 0xe0005065, 0x1391e: 0xe0007506,
-	// Block 0x4e5, offset 0x13940
-	0x13977: 0xe000449d,
-	0x1397f: 0xe0004393,
-	// Block 0x4e6, offset 0x13980
-	0x13981: 0xe000a1eb,
-	0x13986: 0xe0005285, 0x13987: 0xe0003ff3,
-	0x13988: 0xe0004ca8, 0x13989: 0xe0007024, 0x1398a: 0xe0009b0b,
-	0x1398c: 0xe00079d0, 0x1398e: 0xe0006e34,
-	0x13995: 0xe0006ff7, 0x13996: 0xe00094a9,
-	0x1399a: 0xe00051c8,
-	0x139a1: 0xe00068cb, 0x139a2: 0xe000a1cb,
-	0x139a8: 0xe000a531, 0x139aa: 0xe000a042, 0x139ab: 0xe00077ce,
-	0x139ac: 0xe000849e,
-	0x139b3: 0xe0006652,
-	0x139b8: 0xe00095c9, 0x139b9: 0xe0009ac4, 0x139ba: 0xe0006ffa,
-	// Block 0x4e7, offset 0x139c0
-	0x139c2: 0xe00092cd, 0x139c3: 0xe0005b1b,
-	0x139ca: 0xe0005b07,
-	0x139cc: 0xe0005c33, 0x139cd: 0xe000590c,
-	0x139d3: 0xe0005cf0,
-	0x139d4: 0xe00065db,
-	0x139d8: 0xe0005b1f,
-	0x139dd: 0xe0009939, 0x139de: 0xe00087b0,
-	0x139e0: 0xe00063a1, 0x139e1: 0xe00083dc, 0x139e2: 0xe0004569,
-	0x139e7: 0xe000662e,
-	0x139e8: 0xe000a12c, 0x139e9: 0xe00098f3, 0x139ea: 0xe0009767, 0x139eb: 0xe0004648,
-	0x139ec: 0xe0009024, 0x139ef: 0xe000845c,
-	0x139f0: 0xe0006be8, 0x139f2: 0xe0008211, 0x139f3: 0xe0008050,
-	0x139f4: 0xe0004a58, 0x139f6: 0xe00099bb, 0x139f7: 0xe0005adc,
-	0x139f8: 0xe00050a0, 0x139fa: 0xe000a26b, 0x139fb: 0xe0006572,
-	0x139fc: 0xe0009203, 0x139fd: 0xe000804d, 0x139ff: 0xe0005d2c,
-	// Block 0x4e8, offset 0x13a00
-	0x13a00: 0xe0009bc6, 0x13a01: 0xe000645b, 0x13a02: 0xe0005729, 0x13a03: 0xe0008159,
-	0x13a04: 0xe000a2ac, 0x13a06: 0xe00061ab, 0x13a07: 0xe00081d5,
-	0x13a08: 0xe0003d63, 0x13a0a: 0xe00084e4,
-	0x13a11: 0xe0008d24, 0x13a13: 0xe0006632,
-	0x13a19: 0xe0008aec, 0x13a1a: 0xe000572c,
-	0x13a1c: 0xe000672d, 0x13a1e: 0xe00068cf,
-	0x13a20: 0xe0006074, 0x13a21: 0xe0004061, 0x13a22: 0xe0009e98, 0x13a23: 0xe0005adf,
-	0x13a24: 0xe00090e7, 0x13a26: 0xe00063a4,
-	0x13a2a: 0xe0008d98,
-	0x13a2c: 0xe00083a1, 0x13a2d: 0xe0005121,
-	0x13a34: 0xe000572f,
-	0x13a3b: 0xe00063a7,
-	0x13a3c: 0xe0004886, 0x13a3d: 0xe0006901,
-	// Block 0x4e9, offset 0x13a40
-	0x13a44: 0xe0008c6a, 0x13a45: 0xe00094fe, 0x13a47: 0xe0007edd,
-	0x13a48: 0xe0008c00, 0x13a4a: 0xe0008e96, 0x13a4b: 0xe000724e,
-	0x13a4d: 0xe0006b33, 0x13a4f: 0xe0007792,
-	0x13a50: 0xe00070f0, 0x13a53: 0xe0008359,
-	0x13a54: 0xe00065de, 0x13a56: 0xe0006cc7,
-	0x13a5b: 0xe0004591,
-	// Block 0x4ea, offset 0x13a80
-	0x13aa4: 0xe00084e8, 0x13aa6: 0xe0006730, 0x13aa7: 0xe0004d8f,
-	0x13aab: 0xe0009e3c,
-	0x13aad: 0xe0008214,
-	0x13ab0: 0xe0008aaa, 0x13ab3: 0xe0004a82,
-	0x13ab4: 0xe00063aa, 0x13ab6: 0xe0003e63, 0x13ab7: 0xe0004cab,
-	// Block 0x4eb, offset 0x13ac0
-	0x13ac1: 0xe0008d5c,
-	0x13ac5: 0xe00092d0,
-	0x13aca: 0xe0007d45,
-	0x13ace: 0xe0008aef,
-	0x13ad0: 0xe0009ee8,
-	0x13ad9: 0xe0008916,
-	0x13ae0: 0xe0009312, 0x13ae3: 0xe000952e,
-	0x13ae8: 0xe00093fc, 0x13aeb: 0xe00047f3,
-	0x13af2: 0xe0008ec2, 0x13af3: 0xe000899c,
-	0x13afa: 0xe00063ad,
-	0x13afe: 0xe0008c6d,
-	// Block 0x4ec, offset 0x13b00
-	0x13b02: 0xe0004d20,
-	0x13b06: 0xe00097d0,
-	0x13b0b: 0xe0005f7b,
-	0x13b0c: 0xe0008d9c, 0x13b0e: 0xe00096a5, 0x13b0f: 0xe0003d66,
-	0x13b15: 0xe00086f8, 0x13b16: 0xe00090af, 0x13b17: 0xe0006404,
-	0x13b1b: 0xe00098af,
-	0x13b1d: 0xe000408e, 0x13b1f: 0xe0004b66,
-	0x13b21: 0xe00084ec, 0x13b23: 0xe0006a73,
-	0x13b28: 0xe00045bd, 0x13b2a: 0xe0004a46, 0x13b2b: 0xe0004595,
-	0x13b2c: 0xe0004aaf, 0x13b2f: 0xe000566d,
-	0x13b31: 0xe00095cc, 0x13b33: 0xe0005124,
-	0x13b3c: 0xe000495a,
-	// Block 0x4ed, offset 0x13b40
-	0x13b46: 0xe0008b78,
-	0x13b48: 0xe0006c99, 0x13b49: 0xe0005490, 0x13b4a: 0xe0007b4d,
-	0x13b4f: 0xe0005001,
-	0x13b50: 0xe00090eb,
-	0x13b54: 0xe000970b,
-	0x13b5d: 0xe00045e7, 0x13b5e: 0xe0004091, 0x13b5f: 0xe0008c8e,
-	0x13b6a: 0xe00089f4,
-	0x13b70: 0xe0007e3c,
-	0x13b74: 0xe0007b7d, 0x13b75: 0xe00089f8, 0x13b76: 0xe000888c,
-	0x13b7d: 0xe0007c0e,
-	// Block 0x4ee, offset 0x13b80
-	0x13b80: 0xe00086fc, 0x13b82: 0xe0007e3f,
-	0x13b84: 0xe000885c, 0x13b87: 0xe00040eb,
-	0x13b88: 0xe0005127, 0x13b89: 0xe0008e21, 0x13b8a: 0xe0009fb2,
-	0x13b8c: 0xe0008fd6, 0x13b8f: 0xe000888f,
-	0x13b95: 0xe0009b88,
-	0x13b99: 0xe0009491,
-	0x13b9c: 0xe00094ad, 0x13b9f: 0xe00084f0,
-	0x13ba0: 0xe0009087, 0x13ba3: 0xe0005a42,
-	0x13ba4: 0xe0008a28,
-	0x13bb2: 0xe0008b7c,
-	0x13bb4: 0xe0009495, 0x13bb6: 0xe0004a0e,
-	0x13bbb: 0xe00047f6,
-	// Block 0x4ef, offset 0x13bc0
-	0x13bc1: 0xe0008919,
-	0x13bc5: 0xe000935b, 0x13bc7: 0xe000845f,
-	0x13bc9: 0xe00051d8, 0x13bca: 0xe0008aad, 0x13bcb: 0xe0008892,
-	0x13bcd: 0xe00073f4,
-	0x13bd0: 0xe00055b7, 0x13bd1: 0xe00090b3, 0x13bd3: 0xe0008c91,
-	0x13bd4: 0xe000862c,
-	0x13bd9: 0xe0005958,
-	0x13be1: 0xe0006b77,
-	0x13be9: 0xe0004608, 0x13bea: 0xe000592c, 0x13beb: 0xe00070c8,
-	0x13bec: 0xe00049ba,
-	0x13bf1: 0xe00096a8, 0x13bf3: 0xe00049be,
-	// Block 0x4f0, offset 0x13c00
-	0x13c00: 0xe0004889,
-	0x13c06: 0xe0009282,
-	0x13c0a: 0xe0008e24, 0x13c0b: 0xe000725e,
-	0x13c0c: 0xe0004a22, 0x13c0d: 0xe0004972,
-	0x13c12: 0xe0009e0c,
-	0x13c1f: 0xe0007632,
-	0x13c28: 0xe000562b, 0x13c2b: 0xe0008d28,
-	0x13c38: 0xe0009499, 0x13c39: 0xe0008c94, 0x13c3a: 0xe0009315, 0x13c3b: 0xe0003d69,
-	0x13c3c: 0xe0008139, 0x13c3e: 0xe0007060,
-	// Block 0x4f1, offset 0x13c40
-	0x13c43: 0xe00047ba,
-	0x13c45: 0xe0005670, 0x13c47: 0xe0008630,
-	0x13c48: 0xe0008af2, 0x13c49: 0xe00083df,
-	0x13c52: 0xe0009207, 0x13c53: 0xe0005a22,
-	0x13c54: 0xe0006264, 0x13c55: 0xe00042e8,
-	0x13c5b: 0xe0005478,
-	0x13c5c: 0xe000959f, 0x13c5d: 0xe000a400, 0x13c5e: 0xe0005a9e, 0x13c5f: 0xe0009167,
-	0x13c66: 0xe0005547, 0x13c67: 0xe000620b,
-	0x13c68: 0xe0004674, 0x13c69: 0xe0006077, 0x13c6a: 0xe000583f,
-	0x13c6f: 0xe0008dd0,
-	0x13c70: 0xe0007490, 0x13c73: 0xe0008ab0,
-	0x13c78: 0xe0006dd4, 0x13c79: 0xe00062b0, 0x13c7b: 0xe00062b4,
-	0x13c7e: 0xe000859c, 0x13c7f: 0xe000758a,
-	// Block 0x4f2, offset 0x13c80
-	0x13c80: 0xe00078f9, 0x13c82: 0xe00044b5,
-	0x13c84: 0xe0009c76, 0x13c85: 0xe0007cf5, 0x13c86: 0xe00056d9,
-	0x13c89: 0xe00085a0,
-	0x13c8d: 0xe000916b, 0x13c8e: 0xe00047bd,
-	0x13c92: 0xe00064a3,
-	0x13c94: 0xe000595c, 0x13c97: 0xe0003f2f,
-	0x13c98: 0xe000a1cf,
-	0x13c9d: 0xe000758d, 0x13c9e: 0xe0009cba, 0x13c9f: 0xe000476d,
-	0x13ca1: 0xe00065e1, 0x13ca2: 0xe0005503, 0x13ca3: 0xe000551b,
-	0x13ca4: 0xe0005694,
-	// Block 0x4f3, offset 0x13cc0
-	0x13cdb: 0xe00070cc,
-	0x13cdc: 0xe0004420, 0x13cdf: 0xe0009b37,
-	0x13ce2: 0xe00053ae, 0x13ce3: 0xe00053a6,
-	0x13ce6: 0xe00098f7,
-	0x13ce8: 0xe000618b,
-	0x13ced: 0xe0006733, 0x13cee: 0xe00061a3, 0x13cef: 0xe000618f,
-	0x13cf0: 0xe0008d2c, 0x13cf1: 0xe0007af1, 0x13cf2: 0xe0004e58,
-	0x13cfb: 0xe0007158,
-	0x13cff: 0xe0009143,
-	// Block 0x4f4, offset 0x13d00
-	0x13d00: 0xe0003e67, 0x13d02: 0xe0007bcc, 0x13d03: 0xe000789d,
-	0x13d04: 0xe000a49e, 0x13d05: 0xe00070d0,
-	0x13d0d: 0xe00052bf, 0x13d0e: 0xe0007762,
-	0x13d11: 0xe0004b42, 0x13d13: 0xe00071b1,
-	0x13d14: 0xe0005f37, 0x13d15: 0xe00078a0,
-	0x13d22: 0xe0009318,
-	0x13d24: 0xe0008077, 0x13d25: 0xe0009f98, 0x13d26: 0xe0003d6c,
-	0x13d28: 0xe00097e5, 0x13d2a: 0xe00084f4, 0x13d2b: 0xe0005ebb,
-	0x13d2c: 0xe0007a1c, 0x13d2d: 0xe0008da0,
-	0x13d30: 0xe0006f24, 0x13d32: 0xe0004157,
-	0x13d34: 0xe000a2c1, 0x13d37: 0xe0005dd8,
-	0x13d38: 0xe0006227, 0x13d39: 0xe00084f8, 0x13d3a: 0xe0004de7,
-	0x13d3d: 0xe00093ff,
-	// Block 0x4f5, offset 0x13d40
-	0x13d40: 0xe000984d, 0x13d41: 0xe0006d1b, 0x13d42: 0xe000469c, 0x13d43: 0xe000512a,
-	0x13d45: 0xe000a351, 0x13d46: 0xe00075b2,
-	0x13d48: 0xe0009f7c, 0x13d4b: 0xe0009a62,
-	0x13d4c: 0xe0007e9f, 0x13d4d: 0xe0006c54, 0x13d4f: 0xe0009862,
-	0x13d50: 0xe000949d, 0x13d51: 0xe000488c,
-	0x13d54: 0xe000512d, 0x13d55: 0xe00042ec, 0x13d56: 0xe0008518, 0x13d57: 0xe0005288,
-	0x13d59: 0xe0008462, 0x13d5a: 0xe0009831,
-	0x13d5d: 0xe0006989, 0x13d5e: 0xe00055eb, 0x13d5f: 0xe0006ccb,
-	0x13d60: 0xe000891c, 0x13d61: 0xe0008b48, 0x13d62: 0xe0006320, 0x13d63: 0xe000554b,
-	0x13d6e: 0xe0009261,
-	0x13d71: 0xe0008ab3, 0x13d72: 0xe0008d30,
-	0x13d74: 0xe000970f, 0x13d75: 0xe0004a85, 0x13d76: 0xe0007db8,
-	0x13d78: 0xe0008129,
-	0x13d7c: 0xe0009ba0, 0x13d7e: 0xe0007e45,
-	// Block 0x4f6, offset 0x13d80
-	0x13d81: 0xe00052af, 0x13d82: 0xe0006dd7,
-	0x13d87: 0xe0007bcf,
-	0x13d89: 0xe000881c, 0x13d8a: 0xe0007e42, 0x13d8b: 0xe0007c65,
-	0x13d8d: 0xe000998b, 0x13d8e: 0xe00045c0, 0x13d8f: 0xe000727a,
-	0x13d90: 0xe0009bc9, 0x13d91: 0xe000a24b, 0x13d92: 0xe0008af5, 0x13d93: 0xe0005130,
-	0x13d94: 0xe0004f69, 0x13d95: 0xe0007d97,
-	0x13d98: 0xe000491c, 0x13d99: 0xe0007aa4, 0x13d9b: 0xe0005815,
-	0x13d9c: 0xe0006ce7, 0x13d9d: 0xe0005005, 0x13d9e: 0xe0009264,
-	0x13da0: 0xe0007cf9, 0x13da1: 0xe0006c57, 0x13da3: 0xe00041c4,
-	0x13da8: 0xe00078a3, 0x13da9: 0xe00084fc,
-	0x13dac: 0xe0006cd3, 0x13dad: 0xe000891f, 0x13dae: 0xe0008e27, 0x13daf: 0xe00052b3,
-	0x13db2: 0xe0008c70,
-	0x13db5: 0xe0008b4c, 0x13db6: 0xe0007ad7, 0x13db7: 0xe00090ef,
-	0x13db8: 0xe0006a77, 0x13dba: 0xe0007e48,
-	0x13dbc: 0xe0005774, 0x13dbd: 0xe0004094, 0x13dbf: 0xe0009b2e,
-	// Block 0x4f7, offset 0x13dc0
-	0x13dc0: 0xe0007aa7, 0x13dc1: 0xe0005ae2, 0x13dc2: 0xe0009d77, 0x13dc3: 0xe0006dda,
-	0x13dc4: 0xe000a1a3, 0x13dc5: 0xe0008634, 0x13dc7: 0xe0008053,
-	0x13dc8: 0xe00059d6, 0x13dca: 0xe0006193,
-	0x13dcc: 0xe00054e9, 0x13dcf: 0xe0005324,
-	0x13dd0: 0xe000590f, 0x13dd1: 0xe0007f9d,
-	0x13dd5: 0xe0007931,
-	0x13dd9: 0xe0005aa2,
-	0x13de0: 0xe0006656, 0x13de2: 0xe0009f80, 0x13de3: 0xe0004d65,
-	0x13de6: 0xe0006007,
-	0x13de8: 0xe000936f, 0x13dea: 0xe0006736,
-	0x13def: 0xe0003eef,
-	0x13df0: 0xe00097d3, 0x13df1: 0xe000488f, 0x13df3: 0xe00065e4,
-	0x13df5: 0xe0006c5a,
-	0x13df8: 0xe0008465,
-	0x13dfd: 0xe0004ab2,
-	// Block 0x4f8, offset 0x13e00
-	0x13e01: 0xe0007c39, 0x13e03: 0xe0009cf6,
-	0x13e04: 0xe0004b0a, 0x13e05: 0xe0008db0,
-	0x13e0a: 0xe00047c0,
-	0x13e1c: 0xe0004477, 0x13e1d: 0xe0009c0e, 0x13e1e: 0xe000540e,
-	0x13e21: 0xe0004976, 0x13e22: 0xe0007796,
-	0x13e28: 0xe00063b0, 0x13e2a: 0xe0009058, 0x13e2b: 0xe00065e7,
-	0x13e2d: 0xe00045fc, 0x13e2f: 0xe0004fe9,
-	0x13e34: 0xe0009645, 0x13e35: 0xe0007bd2,
-	0x13e3d: 0xe0005133,
-	// Block 0x4f9, offset 0x13e40
-	0x13e42: 0xe00071de,
-	0x13e52: 0xe0009402,
-	0x13e55: 0xe0009dd9,
-	0x13e59: 0xe0006575,
-	0x13e5e: 0xe0007f59,
-	0x13e62: 0xe000750a, 0x13e63: 0xe00083a5,
-	0x13e67: 0xe00052e7,
-	0x13e6d: 0xe00087b4,
-	0x13e70: 0xe0005960, 0x13e71: 0xe00098dc, 0x13e72: 0xe0004f2d,
-	0x13e74: 0xe000755e,
-	0x13e7d: 0xe0008638,
-	// Block 0x4fa, offset 0x13e80
-	0x13e88: 0xe000551f, 0x13e89: 0xe0007e4b, 0x13e8a: 0xe00087b8, 0x13e8b: 0xe0009405,
-	0x13e8c: 0xe0008251, 0x13e8d: 0xe000607a, 0x13e8e: 0xe0008ab6,
-	0x13e92: 0xe0008ab9,
-	0x13e96: 0xe0009773, 0x13e97: 0xe000a36f,
-	0x13ea2: 0xe00092d3, 0x13ea3: 0xe0003f33,
-	0x13ea4: 0xe000447a, 0x13ea5: 0xe0006c9c,
-	0x13ea9: 0xe0005bdb, 0x13eaa: 0xe0005356,
-	0x13eac: 0xe0006ddd,
-	0x13eb2: 0xe0008820,
-	0x13eb4: 0xe0005166, 0x13eb5: 0xe000a30f, 0x13eb6: 0xe0005afd, 0x13eb7: 0xe000a08c,
-	0x13eb8: 0xe00067bb, 0x13eb9: 0xe0005750,
-	// Block 0x4fb, offset 0x13ec0
-	0x13ec3: 0xe000754a,
-	0x13ec7: 0xe0006ee8,
-	0x13ec9: 0xe0009531, 0x13ecb: 0xe00092d6,
-	0x13ecd: 0xe000885f,
-	0x13ed0: 0xe000a07b, 0x13ed2: 0xe0006bc7,
-	0x13edc: 0xe0009408, 0x13ede: 0xe00078fd,
-	0x13ee2: 0xe0009d98,
-	0x13eea: 0xe0005792, 0x13eeb: 0xe0007ff3,
-	0x13eec: 0xe000835d, 0x13eee: 0xe00092d9, 0x13eef: 0xe0009fb5,
-	0x13ef1: 0xe0005f7f, 0x13ef2: 0xe0004e68,
-	0x13ef4: 0xe0005640, 0x13ef5: 0xe0004069,
-	// Block 0x4fc, offset 0x13f00
-	0x13f00: 0xe0007468, 0x13f01: 0xe000a47e, 0x13f03: 0xe0007027,
-	0x13f05: 0xe00076d6, 0x13f07: 0xe000900c,
-	0x13f09: 0xe0007e4e, 0x13f0b: 0xe00069e7,
-	0x13f0c: 0xe00058e2, 0x13f0d: 0xe0008ba8, 0x13f0e: 0xe00073d6, 0x13f0f: 0xe000547c,
-	0x13f10: 0xe00058e5, 0x13f11: 0xe0004d4e,
-	0x13f17: 0xe0006d47,
-	0x13f18: 0xe00087bc,
-	0x13f1c: 0xe00063b3, 0x13f1d: 0xe000962d,
-	0x13f23: 0xe0008922,
-	0x13f24: 0xe0006827, 0x13f26: 0xe000491f, 0x13f27: 0xe00090f3,
-	0x13f2a: 0xe0007bd5,
-	0x13f2d: 0xe0004599,
-	0x13f35: 0xe000900f,
-	0x13f3f: 0xe0004b6a,
-	// Block 0x4fd, offset 0x13f40
-	0x13f47: 0xe0006407,
-	0x13f4d: 0xe00052b7,
-	0x13f50: 0xe000413f, 0x13f51: 0xe00098fb, 0x13f52: 0xe0006837,
-	0x13f54: 0xe000931b, 0x13f57: 0xe0007ee1,
-	0x13f5c: 0xe000a2e6, 0x13f5e: 0xe0004ad2, 0x13f5f: 0xe0008982,
-	0x13f74: 0xe00055ef, 0x13f75: 0xe000622b, 0x13f77: 0xe000447d,
-	0x13f78: 0xe0005f9b, 0x13f7a: 0xe00078c5,
-	0x13f7f: 0xe00085a4,
-	// Block 0x4fe, offset 0x13f80
-	0x13f80: 0xe0003f4b, 0x13f81: 0xe0008d60,
-	0x13f85: 0xe0004097,
-	0x13f89: 0xe0009e9c, 0x13f8b: 0xe0009a86,
-	0x13f8e: 0xe0006937, 0x13f8f: 0xe00069b0,
-	0x13f90: 0xe0006a03, 0x13f92: 0xe0008af8,
-	0x13f97: 0xe0004224,
-	0x13f9b: 0xe0007636,
-	0x13f9e: 0xe0007d49,
-	0x13fa2: 0xe0005f83,
-	0x13fa4: 0xe0004892, 0x13fa5: 0xe0006f28, 0x13fa6: 0xe00087c0,
-	0x13fb7: 0xe000a100,
-	0x13fb8: 0xe00047f9,
-	0x13fbc: 0xe0006233, 0x13fbe: 0xe0005c5d,
-	// Block 0x4ff, offset 0x13fc0
-	0x13fc0: 0xe0007f25, 0x13fc3: 0xe000939b,
-	0x13fc5: 0xe000522c,
-	0x13fcb: 0xe0008165,
-	0x13fd1: 0xe0006a7b, 0x13fd3: 0xe00085a8,
-	0x13fd5: 0xe000918b, 0x13fd6: 0xe0006de0,
-	0x13fd8: 0xe0005bdf, 0x13fd9: 0xe00045ea, 0x13fda: 0xe0008985, 0x13fdb: 0xe0006b53,
-	0x13fdc: 0xe0009ca2,
-	0x13ff3: 0xe00077d1,
-	0x13ff6: 0xe0004895, 0x13ff7: 0xe0006c5d,
-	0x13ff9: 0xe0006de3,
-	// Block 0x500, offset 0x14000
-	0x14006: 0xe0007eed,
-	0x1400c: 0xe00087c4, 0x1400f: 0xe0009f18,
-	0x14011: 0xe000863c, 0x14012: 0xe0006324,
-	0x14017: 0xe0009ecc,
-	0x1401f: 0xe0009649,
-	0x14024: 0xe000698c, 0x14025: 0xe0008824,
-	0x1402a: 0xe0009a65,
-	0x14032: 0xe000622f,
-	0x14038: 0xe000409a, 0x14039: 0xe0008fda, 0x1403a: 0xe0007d31,
-	0x1403c: 0xe0003fab, 0x1403d: 0xe0008988,
-	// Block 0x501, offset 0x14040
-	0x14044: 0xe00056b9, 0x14046: 0xe0008fde,
-	0x1404f: 0xe00071b4,
-	0x14050: 0xe000940b,
-	0x14055: 0xe0004501,
-	0x14058: 0xe000940e, 0x14059: 0xe00095cf, 0x1405a: 0xe0008406,
-	0x1405e: 0xe0006eec, 0x1405f: 0xe0004fc1,
-	0x14060: 0xe00087c8, 0x14061: 0xe0004cae, 0x14062: 0xe00085ac, 0x14063: 0xe000918f,
-	0x14064: 0xe0004cb1, 0x14066: 0xe0004ba2, 0x14067: 0xe0004678,
-	0x14068: 0xe0005ce4, 0x1406a: 0xe0008640, 0x1406b: 0xe00069eb,
-	0x1406c: 0xe0005268, 0x1406e: 0xe0004423, 0x1406f: 0xe0008e52,
-	// Block 0x502, offset 0x14080
-	0x14088: 0xe0007766, 0x14089: 0xe000702a, 0x1408a: 0xe000554f, 0x1408b: 0xe00045c3,
-	0x1408d: 0xe0005136,
-	0x14094: 0xe00071e2, 0x14097: 0xe0008895,
-	0x1409b: 0xe0004f31,
-	0x1409c: 0xe0009be7, 0x1409d: 0xe0007c11,
-	0x140a4: 0xe000684f,
-	0x140ab: 0xe000931e,
-	0x140ac: 0xe0009321, 0x140ae: 0xe0007e51,
-	0x140b0: 0xe000a1d3,
-	0x140b5: 0xe00040ef,
-	0x140bc: 0xe0009631, 0x140be: 0xe00089fc,
-	// Block 0x503, offset 0x140c0
-	0x140ca: 0xe000603b,
-	0x140cc: 0xe0004228,
-	0x140d4: 0xe0007b51, 0x140d6: 0xe0006d38, 0x140d7: 0xe0008416,
-	0x140da: 0xe0009411, 0x140db: 0xe0005ed3,
-	0x140df: 0xe00068ef,
-	0x140e1: 0xe0008217, 0x140e3: 0xe0009f84,
-	0x140e4: 0xe000a26f, 0x140e7: 0xe000402e,
-	0x140ec: 0xe000a045, 0x140ed: 0xe0008d34,
-	0x140f0: 0xe000812d,
-	// Block 0x504, offset 0x14100
-	0x14103: 0xe00089a0,
-	0x14107: 0xe0006abb,
-	0x14108: 0xe0005563, 0x1410a: 0xe00078a6, 0x1410b: 0xe0005a46,
-	0x1410c: 0xe00059de,
-	0x14111: 0xe0008500,
-	0x14116: 0xe00078a9, 0x14117: 0xe0004065,
-	0x14118: 0xe00083a9,
-	0x1411c: 0xe0005069, 0x1411d: 0xe0005a4a, 0x1411e: 0xe0007b55, 0x1411f: 0xe00067e7,
-	0x14121: 0xe00042f0, 0x14122: 0xe0009aeb,
-	0x14124: 0xe00057c7, 0x14126: 0xe00093a7,
-	0x14128: 0xe0008f36,
-	0x14136: 0xe0008dd4,
-	0x1413b: 0xe0005964,
-	// Block 0x505, offset 0x14140
-	0x14143: 0xe0004e87,
-	0x14144: 0xe000a2de,
-	0x1414f: 0xe0008b80,
-	0x14150: 0xe0005795, 0x14153: 0xe00050b8,
-	0x14154: 0xe0007148,
-	0x14158: 0xe0008a00, 0x14159: 0xe000530b,
-	0x14165: 0xe0006a7f,
-	0x1416a: 0xe0005697, 0x1416b: 0xe00085b0,
-	0x14175: 0xe000916f, 0x14176: 0xe000a1d7,
-	0x14178: 0xe00096eb, 0x1417a: 0xe000506d,
-	// Block 0x506, offset 0x14180
-	0x14182: 0xe000a3b1,
-	0x14184: 0xe0008abc,
-	0x1418a: 0xe000a167,
-	0x1418c: 0xe000665a,
-	0x14191: 0xe0003ef3, 0x14192: 0xe0003ef7,
-	0x14195: 0xe0008db4,
-	0x1419b: 0xe00046e8,
-	0x1419e: 0xe00053ee,
-	0x141a0: 0xe000678f, 0x141a2: 0xe00054ec, 0x141a3: 0xe0009aee,
-	0x141aa: 0xe000569a,
-	0x141b0: 0xe0007408, 0x141b1: 0xe0008f3a, 0x141b2: 0xe0007494,
-	0x141b5: 0xe000467c, 0x141b7: 0xe0006b7b,
-	0x141bc: 0xe0005339, 0x141bd: 0xe0008e9a, 0x141be: 0xe000539a, 0x141bf: 0xe0008e56,
-	// Block 0x507, offset 0x141c0
-	0x141f7: 0xe0008361,
-	// Block 0x508, offset 0x14200
-	0x14200: 0xe0005d78, 0x14203: 0xe0006b37,
-	0x14208: 0xe0009c62, 0x14209: 0xe0009a0b, 0x1420a: 0xe00067eb, 0x1420b: 0xe0004031,
-	0x1420e: 0xe000477d, 0x1420f: 0xe0007ee5,
-	0x14211: 0xe0009c3e, 0x14212: 0xe0009c42, 0x14213: 0xe0003e3f,
-	0x14214: 0xe0005e3b,
-	0x14218: 0xe0003f4f,
-	0x1421f: 0xe00065ea,
-	0x14223: 0xe0003dc7,
-	0x14224: 0xe0009cd2, 0x14225: 0xe00060f7,
-	0x14228: 0xe0004a88, 0x14229: 0xe0005e5b, 0x1422b: 0xe0004505,
-	0x1422c: 0xe0005426, 0x1422d: 0xe00054bf,
-	0x14231: 0xe0007686,
-	0x14236: 0xe0008fe2,
-	0x14239: 0xe000754e, 0x1423b: 0xe00076aa,
-	0x1423c: 0xe0007262, 0x1423d: 0xe000a0b8, 0x1423e: 0xe00075c6,
-	// Block 0x509, offset 0x14240
-	0x14243: 0xe0004190,
-	0x14247: 0xe00072a2,
-	0x14248: 0xe0007dbb, 0x1424a: 0xe000a1ef, 0x1424b: 0xe0004210,
-	0x1424c: 0xe000539e, 0x1424d: 0xe0005169,
-	0x14253: 0xe0004046,
-	0x14254: 0xe0009cd6, 0x14255: 0xe0004a12, 0x14256: 0xe0009881,
-	0x1425a: 0xe0004ab5,
-	0x1425c: 0xe000464c, 0x1425e: 0xe0009cbe,
-	0x14260: 0xe0004a49, 0x14261: 0xe00090f7, 0x14262: 0xe000615f,
-	0x14265: 0xe0004f75,
-	// Block 0x50a, offset 0x14280
-	0x1429c: 0xe00063b6,
-	0x142a1: 0xe00090fb,
-	0x142a4: 0xe00095d2,
-	0x142a8: 0xe0007397, 0x142aa: 0xe00098ff,
-	0x142ae: 0xe00079d4, 0x142af: 0xe0008c97,
-	0x142b2: 0xe000600b,
-	0x142bb: 0xe0008925,
-	0x142bf: 0xe000718a,
-	// Block 0x50b, offset 0x142c0
-	0x142c0: 0xe0009687, 0x142c2: 0xe0009b31,
-	0x142c4: 0xe00063b9,
-	0x142cb: 0xe00057ca,
-	0x142cc: 0xe0005b0b, 0x142cd: 0xe0003faf,
-	0x142d0: 0xe0009c46,
-	0x142d8: 0xe0009f9c, 0x142db: 0xe0009a0e,
-	0x142dc: 0xe0009cda, 0x142dd: 0xe0006b3b, 0x142de: 0xe0006f9d, 0x142df: 0xe000908b,
-	0x142e1: 0xe00052a0, 0x142e2: 0xe0007cfd, 0x142e3: 0xe0008d38,
-	0x142e4: 0xe0008862,
-	0x142ea: 0xe000607d,
-	0x142ec: 0xe0009450,
-	0x142f0: 0xe0007f75, 0x142f2: 0xe0006e37, 0x142f3: 0xe0008d3c,
-	0x142f4: 0xe00065ed, 0x142f5: 0xe0005897, 0x142f6: 0xe0005139, 0x142f7: 0xe0009ca6,
-	0x142f8: 0xe0005823,
-	0x142fc: 0xe00084a1, 0x142fd: 0xe000746c,
-	// Block 0x50c, offset 0x14300
-	0x14304: 0xe0008898, 0x14305: 0xe0007bd8, 0x14306: 0xe000585b,
-	0x1430a: 0xe00050a3, 0x1430b: 0xe0006de6,
-	0x1430d: 0xe000a24f, 0x1430e: 0xe0004396,
-	0x14311: 0xe0004d23,
-	0x14314: 0xe0004184, 0x14315: 0xe0007c69, 0x14317: 0xe0007a56,
-	0x14318: 0xe000732d, 0x14319: 0xe0004afa, 0x1431b: 0xe0008865,
-	0x1431c: 0xe0008365,
-	0x14323: 0xe0005930,
-	0x14324: 0xe0009853, 0x14327: 0xe0006de9,
-	0x14328: 0xe0006dec, 0x14329: 0xe00078ac, 0x1432a: 0xe0009e20,
-	0x14330: 0xe0006f75, 0x14331: 0xe0007f29, 0x14333: 0xe000a421,
-	0x14334: 0xe0005715, 0x14336: 0xe000807a, 0x14337: 0xe0005643,
-	0x14338: 0xe0005646, 0x14339: 0xe0009453, 0x1433b: 0xe000908f,
-	0x1433c: 0xe0008b84,
-	// Block 0x50d, offset 0x14340
-	0x14340: 0xe0008255, 0x14341: 0xe0007236,
-	0x14344: 0xe0007c9d, 0x14345: 0xe000718d, 0x14346: 0xe0008dd8, 0x14347: 0xe0004426,
-	0x14349: 0xe00095a2, 0x1434b: 0xe0008b50,
-	0x1434c: 0xe00081d8, 0x1434d: 0xe0007935, 0x1434e: 0xe0008468,
-	0x14355: 0xe0008928, 0x14356: 0xe0006def,
-	0x14359: 0xe000715c, 0x1435a: 0xe0004680, 0x1435b: 0xe0009414,
-	0x1435c: 0xe00082c1, 0x1435d: 0xe0007959, 0x1435e: 0xe00043ba,
-	0x14362: 0xe00058e8, 0x14363: 0xe0004d83,
-	0x14368: 0xe0007bdb, 0x14369: 0xe0007bde, 0x1436a: 0xe0006af7,
-	0x1436f: 0xe0005d7c,
-	0x14370: 0xe000645f, 0x14372: 0xe0007c6d,
-	0x14376: 0xe00055f3, 0x14377: 0xe0005732,
-	0x14379: 0xe0005ebf, 0x1437a: 0xe0005cbb, 0x1437b: 0xe00085b4,
-	// Block 0x50e, offset 0x14380
-	0x14380: 0xe0006df2,
-	0x14384: 0xe0006c9f, 0x14385: 0xe0006853, 0x14386: 0xe00087cc, 0x14387: 0xe0008d40,
-	0x14388: 0xe0009945, 0x14389: 0xe0005b00,
-	0x1438c: 0xe0008afb, 0x1438d: 0xe000460c, 0x1438e: 0xe0006857, 0x1438f: 0xe00065f0,
-	0x14391: 0xe00086a8, 0x14393: 0xe00077d4,
-	0x14394: 0xe0008afe, 0x14396: 0xe000597c,
-	0x14399: 0xe000776a,
-	0x1439c: 0xe00068d3, 0x1439e: 0xe0009bcc,
-	0x143a3: 0xe0007c85,
-	0x143a6: 0xe000665e, 0x143a7: 0xe0005d2f,
-	0x143aa: 0xe0007f91,
-	0x143b0: 0xe00067bf, 0x143b2: 0xe0005673,
-	0x143b8: 0xe0009948, 0x143b9: 0xe0006163,
-	0x143bd: 0xe0008868,
-	// Block 0x50f, offset 0x143c0
-	0x143c2: 0xe0005507,
-	0x143c4: 0xe0007330, 0x143c6: 0xe0009285,
-	0x143c8: 0xe00055f7, 0x143c9: 0xe0007369,
-	0x143cc: 0xe0006273,
-	0x143d1: 0xe0009237,
-	0x143d6: 0xe00087d0,
-	0x143da: 0xe0008828, 0x143db: 0xe0008644,
-	0x143dc: 0xe00087d4, 0x143dd: 0xe0009147, 0x143de: 0xe0006578,
-	0x143e0: 0xe0004480, 0x143e1: 0xe0005ddb, 0x143e2: 0xe0005b7f,
-	0x143e6: 0xe0008648,
-	0x143e8: 0xe00076fe, 0x143e9: 0xe0009e40,
-	0x143ed: 0xe00080dd,
-	0x143f3: 0xe0004b6e,
-	0x143f4: 0xe000a12f, 0x143f5: 0xe0004ea9, 0x143f7: 0xe00080e1,
-	0x143fa: 0xe0005a6a,
-	0x143fc: 0xe0004f79,
-	// Block 0x510, offset 0x14400
-	0x14400: 0xe000516c, 0x14401: 0xe0009b3a,
-	0x14404: 0xe0009a89, 0x14405: 0xe000730e,
-	0x1440b: 0xe0009fb8,
-	0x1440d: 0xe000723a, 0x1440f: 0xe000456d,
-	0x14418: 0xe0009324,
-	0x14420: 0xe0004946, 0x14423: 0xe0007ea2,
-	0x14426: 0xe0009456,
-	0x14428: 0xe0003e93, 0x1442b: 0xe000494a,
-	0x1442c: 0xe000410b, 0x1442d: 0xe000998f,
-	0x14431: 0xe000516f,
-	0x14434: 0xe00065f3,
-	0x14438: 0xe0009b8c, 0x14439: 0xe0004610,
-	// Block 0x511, offset 0x14440
-	0x14441: 0xe0003ff7, 0x14443: 0xe0004f7d,
-	0x14446: 0xe00090ff,
-	0x1444b: 0xe0007d9a,
-	0x1444d: 0xe00064d3,
-	0x14450: 0xe0003f53, 0x14453: 0xe0009c4a,
-	0x14459: 0xe0007dbe,
-	0x1445c: 0xe000513c, 0x1445d: 0xe0004922, 0x1445e: 0xe0007901,
-	0x14460: 0xe0009b90, 0x14461: 0xe0007dc1,
-	0x1446d: 0xe0004925, 0x1446e: 0xe0004928,
-	0x14471: 0xe0006b57, 0x14472: 0xe000889b, 0x14473: 0xe0007f79,
-	0x14475: 0xe0007c89, 0x14476: 0xe0006c60,
-	0x1447a: 0xe000779a, 0x1447b: 0xe0007c71,
-	0x1447f: 0xe0009ddd,
-	// Block 0x512, offset 0x14480
-	0x14480: 0xe000a048, 0x14481: 0xe0009ee0, 0x14482: 0xe00087d8, 0x14483: 0xe00042f4,
-	0x14485: 0xe0009d32, 0x14486: 0xe0006ef0,
-	0x14488: 0xe0006df5, 0x1448a: 0xe0007c3d,
-	0x1448c: 0xe0006d1f, 0x1448d: 0xe0004ab8, 0x1448e: 0xe0004d26, 0x1448f: 0xe0009d46,
-	0x14490: 0xe00077d7, 0x14491: 0xe00079d8, 0x14492: 0xe0005f3b, 0x14493: 0xe00051cc,
-	0x14496: 0xe0005f5f, 0x14497: 0xe00098b2,
-	0x14498: 0xe00055fb,
-	0x1449e: 0xe000727e,
-	0x144a1: 0xe000a547, 0x144a3: 0xe00070f4,
-	0x144a6: 0xe0009d9b,
-	0x144ab: 0xe000640a,
-	0x144ad: 0xe000528b, 0x144ae: 0xe000a2c4,
-	0x144b0: 0xe0009f1c,
-	0x144b7: 0xe00072c6,
-	0x144b8: 0xe00042f8, 0x144b9: 0xe0009850, 0x144bb: 0xe0006636,
-	0x144bf: 0xe000821a,
-	// Block 0x513, offset 0x144c0
-	0x144c2: 0xe0005753,
-	0x144c6: 0xe00045c6, 0x144c7: 0xe000950d,
-	0x144c8: 0xe0004338, 0x144cb: 0xe000702d,
-	0x144cc: 0xe000886b, 0x144cd: 0xe0007387, 0x144ce: 0xe00071e6,
-	0x144d2: 0xe000795d, 0x144d3: 0xe000864c,
-	0x144d4: 0xe000723e,
-	0x144d8: 0xe0007d01, 0x144d9: 0xe00068f3, 0x144da: 0xe00085b8,
-	0x144de: 0xe0005809,
-	0x144e5: 0xe000a04b, 0x144e6: 0xe0009327, 0x144e7: 0xe0004429,
-	0x144eb: 0xe00085bc,
-	0x144ef: 0xe0009ea0,
-	0x144f0: 0xe0006662, 0x144f1: 0xe000569d, 0x144f3: 0xe0006b7f,
-	0x144f4: 0xe0004684,
-	// Block 0x514, offset 0x14500
-	0x14528: 0xe0009b0f,
-	0x1452d: 0xe00086d8, 0x1452f: 0xe000683b,
-	0x14531: 0xe00097d6, 0x14532: 0xe000558f,
-	0x14536: 0xe000492b,
-	0x1453a: 0xe0007498,
-	0x1453c: 0xe0006e3a, 0x1453f: 0xe000612f,
-	// Block 0x515, offset 0x14540
-	0x14542: 0xe0005798,
-	0x14544: 0xe0009aca, 0x14547: 0xe0009ac7,
-	0x14549: 0xe000579b, 0x1454b: 0xe0007110,
-	0x1455b: 0xe000657b,
-	0x1455c: 0xe00060d3, 0x1455f: 0xe0007064,
-	0x14561: 0xe0006ceb, 0x14562: 0xe0004cb4,
-	0x14566: 0xe0008650, 0x14567: 0xe0006cef,
-	0x1456a: 0xe0008169, 0x1456b: 0xe00074c7,
-	0x1456d: 0xe00095e9, 0x1456e: 0xe0007f7d, 0x1456f: 0xe0005f3f,
-	0x14571: 0xe0006cf3,
-	0x14574: 0xe0008056,
-	0x1457b: 0xe0009193,
-	0x1457c: 0xe0006739, 0x1457d: 0xe0009a68, 0x1457e: 0xe0007068,
-	// Block 0x516, offset 0x14580
-	0x14583: 0xe00047c3,
-	0x14589: 0xe0009de1, 0x1458a: 0xe0007470,
-	0x1458c: 0xe0008059,
-	0x14590: 0xe0008e9e, 0x14592: 0xe0004e72, 0x14593: 0xe0007190,
-	0x14594: 0xe0009a8c, 0x14595: 0xe0008b88,
-	0x14598: 0xe0007590, 0x1459a: 0xe000a32a,
-	0x1459e: 0xe00085c0,
-	0x145a0: 0xe000620f,
-	0x145a6: 0xe00083ad, 0x145a7: 0xe0007dc4,
-	0x145a8: 0xe0004650, 0x145aa: 0xe0004d93,
-	0x145ac: 0xe000a07e, 0x145ae: 0xe0009197,
-	0x145b0: 0xe0008654, 0x145b1: 0xe000a372, 0x145b3: 0xe0005071,
-	0x145b9: 0xe0005075,
-	0x145bc: 0xe000a534, 0x145bd: 0xe0004a4c,
-	// Block 0x517, offset 0x145c0
-	0x145c2: 0xe0007905,
-	0x145c5: 0xe0005a26,
-	0x145c8: 0xe0006e3d, 0x145c9: 0xe0004b46, 0x145cb: 0xe0004a25,
-	0x145cc: 0xe0008ea2, 0x145cd: 0xe0006a83,
-	0x145d0: 0xe0008011, 0x145d1: 0xe0004cb7, 0x145d2: 0xe0007aaa,
-	0x145d4: 0xe0007939, 0x145d5: 0xe0005172, 0x145d7: 0xe0009de5,
-	0x145dc: 0xe00076da, 0x145de: 0xe0008f3e,
-	// Block 0x518, offset 0x14600
-	0x14616: 0xe0006df8, 0x14617: 0xe0004abb,
-	0x14618: 0xe000475d, 0x14619: 0xe0009de9,
-	0x1461d: 0xe0009b68,
-	0x14623: 0xe00072ca,
-	0x14625: 0xe00062b8,
-	0x14628: 0xe0009f88,
-	0x1462c: 0xe00059a7, 0x1462d: 0xe00074b5, 0x1462e: 0xe0009b13,
-	0x14630: 0xe000851c, 0x14631: 0xe000968a, 0x14633: 0xe00095a5,
-	0x14634: 0xe0006ef4,
-	0x14639: 0xe0008131,
-	// Block 0x519, offset 0x14640
-	0x14641: 0xe0005ec3,
-	0x14644: 0xe00097e8,
-	0x14648: 0xe000492e, 0x14649: 0xe0004348,
-	0x1464f: 0xe00040c4,
-	0x14650: 0xe0008abf, 0x14651: 0xe0004e3b, 0x14652: 0xe0004898,
-	0x14655: 0xe0003d6f,
-	0x14658: 0xe00097eb, 0x14659: 0xe00063bc, 0x1465b: 0xe000676f,
-	0x1465c: 0xe0009b94, 0x1465d: 0xe000968d, 0x1465e: 0xe00096ab, 0x1465f: 0xe000673c,
-	0x14662: 0xe00061af,
-	0x14668: 0xe0006f10, 0x1466a: 0xe00070f8,
-	0x1466d: 0xe0009d7a, 0x1466e: 0xe0005ed7,
-	0x14671: 0xe000535a,
-	0x14678: 0xe000964d, 0x1467b: 0xe0009c66,
-	0x1467d: 0xe0009ed0, 0x1467f: 0xe0008b54,
-	// Block 0x51a, offset 0x14680
-	0x14681: 0xe000667a, 0x14682: 0xe0006bcf, 0x14683: 0xe000736c,
-	0x14684: 0xe00056dd, 0x14685: 0xe0009459,
-	0x14688: 0xe0006213, 0x1468b: 0xe0005439,
-	0x1468d: 0xe00045ed, 0x1468e: 0xe0004cba, 0x1468f: 0xe0004cbd,
-	0x14691: 0xe00065f6,
-	0x14696: 0xe0005d41,
-	0x14698: 0xe00093ab, 0x14699: 0xe0009993, 0x1469b: 0xe00065f9,
-	0x146ab: 0xe00040f3,
-	0x146ad: 0xe0008bc0,
-	0x146b0: 0xe00052eb,
-	0x146b5: 0xe0007d35, 0x146b6: 0xe0009417, 0x146b7: 0xe0006c63,
-	0x146b8: 0xe0006abf,
-	0x146be: 0xe000533c,
-	// Block 0x51b, offset 0x146c0
-	0x146c0: 0xe0005b0f, 0x146c1: 0xe00078af, 0x146c2: 0xe0008f42, 0x146c3: 0xe0009acd,
-	0x146c4: 0xe00093af, 0x146c5: 0xe000489b,
-	0x146ca: 0xe000a141,
-	0x146cc: 0xe0006e84, 0x146cd: 0xe000a312, 0x146ce: 0xe0005968, 0x146cf: 0xe0008299,
-	0x146d2: 0xe000974b,
-	0x146d5: 0xe00047c6, 0x146d7: 0xe0009e24,
-	0x146d8: 0xe000533f, 0x146da: 0xe00042fc, 0x146db: 0xe00075b6,
-	0x146df: 0xe0009534,
-	0x146e2: 0xe00054c2,
-	0x146e4: 0xe000749c, 0x146e5: 0xe0004cc0,
-	0x146e9: 0xe000a1a7, 0x146ea: 0xe00054c5,
-	// Block 0x51c, offset 0x14700
-	0x14728: 0xe000451d, 0x1472a: 0xe0007dc7,
-	0x14730: 0xe000986e,
-	0x14738: 0xe0009d7d, 0x14739: 0xe00047fc,
-	0x1473c: 0xe0004194, 0x1473f: 0xe00061b3,
-	// Block 0x51d, offset 0x14740
-	0x14740: 0xe00065fc,
-	0x14746: 0xe0005edb,
-	0x1474f: 0xe00057df,
-	0x14751: 0xe000935f, 0x14753: 0xe0006dfb,
-	0x14754: 0xe0009267, 0x14756: 0xe0004688, 0x14757: 0xe00056a0,
-	0x14758: 0xe000442c,
-	0x1475f: 0xe0009af1,
-	0x14761: 0xe0004509, 0x14763: 0xe000603f,
-	0x14765: 0xe00076ae, 0x14766: 0xe0005c60,
-	0x1476b: 0xe000932a,
-	0x1476d: 0xe000821d, 0x1476e: 0xe0005f87,
-	0x14770: 0xe0009288, 0x14772: 0xe0009b3d,
-	0x14774: 0xe00064d7,
-	0x14779: 0xe000a424, 0x1477a: 0xe00046b0, 0x1477b: 0xe00043bd,
-	0x1477d: 0xe0008a44,
-	// Block 0x51e, offset 0x14780
-	0x14782: 0xe0006666,
-	0x14785: 0xe00064ff, 0x14786: 0xe0006d2b,
-	0x1478a: 0xe0006f14, 0x1478b: 0xe0008658,
-	0x1478d: 0xe000a081,
-	0x14790: 0xe0004d29, 0x14792: 0xe0008d64,
-	0x14796: 0xe000682b,
-	0x14798: 0xe0005a4e, 0x14799: 0xe0006fa5, 0x1479a: 0xe0006dfe,
-	0x1479f: 0xe000a1db,
-	0x147a2: 0xe000666a, 0x147a3: 0xe00055bb,
-	0x147a7: 0xe0005777,
-	0x147a8: 0xe000a104, 0x147a9: 0xe0009e50, 0x147aa: 0xe0009865,
-	0x147ae: 0xe0004931, 0x147af: 0xe0008fe6,
-	0x147b1: 0xe0007c91, 0x147b2: 0xe0004198,
-	0x147ba: 0xe00068f7,
-	0x147bc: 0xe0004a5b,
-	// Block 0x51f, offset 0x147c0
-	0x147c1: 0xe0004745, 0x147c2: 0xe000a0a4, 0x147c3: 0xe0005f8b,
-	0x147c4: 0xe00060ab, 0x147c5: 0xe0005ae5,
-	0x147c8: 0xe0006ca2, 0x147cb: 0xe000945c,
-	0x147cd: 0xe0005aba, 0x147ce: 0xe0005494, 0x147cf: 0xe0007d9d,
-	0x147d1: 0xe0005912,
-	0x147d4: 0xe00059aa,
-	0x147d8: 0xe00076de, 0x147da: 0xe00074b8,
-	0x147e6: 0xe0006772,
-	0x147ef: 0xe0005676,
-	0x147f4: 0xe0006043,
-	// Block 0x520, offset 0x14800
-	0x14800: 0xe00096ae, 0x14803: 0xe00099ef,
-	0x1480e: 0xe00086ac,
-	0x14811: 0xe0009a6b, 0x14812: 0xe000640d, 0x14813: 0xe0008220,
-	0x14817: 0xe000526c,
-	0x1481f: 0xe0007242,
-	0x14827: 0xe000889e,
-	0x14828: 0xe0008c9a, 0x1482a: 0xe0007ea5, 0x1482b: 0xe00047c9,
-	0x1482d: 0xe0009d9e, 0x1482e: 0xe0006a87,
-	0x14839: 0xe0006ca5,
-	// Block 0x521, offset 0x14840
-	0x14841: 0xe000434c,
-	0x14846: 0xe0009a8f,
-	0x14849: 0xe00058eb, 0x1484a: 0xe0006775,
-	0x14854: 0xe00095d5, 0x14856: 0xe000923b,
-	0x1485b: 0xe000898b,
-	0x14862: 0xe000780a,
-	0x14864: 0xe00044dd,
-	0x14868: 0xe0004300,
-	0x14877: 0xe00088a1,
-	// Block 0x522, offset 0x14880
-	0x14888: 0xe0008700, 0x1488a: 0xe0005567,
-	0x1488c: 0xe000945f, 0x1488d: 0xe000941a,
-	0x14890: 0xe00071ea, 0x14892: 0xe00062bc, 0x14893: 0xe0006904,
-	0x14895: 0xe0009bcf,
-	0x148a4: 0xe0006778, 0x148a5: 0xe000a1ab,
-	0x148ad: 0xe0004d2c, 0x148ae: 0xe0007909, 0x148af: 0xe000740c,
-	0x148b1: 0xe000556b, 0x148b2: 0xe0007864,
-	0x148b5: 0xe0005e5f,
-	0x148b9: 0xe00041ec, 0x148ba: 0xe0006ca8, 0x148bb: 0xe0005a2a,
-	0x148be: 0xe0009af4,
-	// Block 0x523, offset 0x148c0
-	0x148c7: 0xe0003fb3,
-	0x148c9: 0xe00061c3,
-	0x148cf: 0xe000714c,
-	0x148d2: 0xe0008b8c, 0x148d3: 0xe0006ac3,
-	0x148d7: 0xe0005934,
-	0x148e0: 0xe000a2c7, 0x148e3: 0xe000865c,
-	0x148e7: 0xe0005649,
-	0x148f8: 0xe00056a3, 0x148fb: 0xe0006ac7,
-	// Block 0x524, offset 0x14900
-	0x14925: 0xe000892b, 0x14926: 0xe0007f65, 0x14927: 0xe00063bf,
-	0x14929: 0xe000489e,
-	0x14933: 0xe0006328,
-	0x14934: 0xe0005be3, 0x14936: 0xe000763a,
-	// Block 0x525, offset 0x14940
-	0x14943: 0xe000419c,
-	0x14946: 0xe0008dc0, 0x14947: 0xe0006276,
-	0x14948: 0xe0007252, 0x14949: 0xe0007193,
-	0x1494c: 0xe0006340,
-	0x14952: 0xe000562f,
-	0x14955: 0xe00096b1,
-	0x14958: 0xe00061b7, 0x14959: 0xe00095d8, 0x1495b: 0xe0007d05,
-	0x1495f: 0xe00095db,
-	0x14963: 0xe0004483,
-	0x14966: 0xe00072fa,
-	0x14968: 0xe00072de,
-	0x14970: 0xe00046b4,
-	0x14976: 0xe0007282,
-	0x1497b: 0xe000a0f0,
-	// Block 0x526, offset 0x14980
-	0x14981: 0xe00047ff, 0x14982: 0xe000a427,
-	0x14984: 0xe00095de,
-	0x14991: 0xe00041c8, 0x14993: 0xe0005f9f,
-	0x14994: 0xe0008b90,
-	0x1499d: 0xe0007196, 0x1499e: 0xe00071b7,
-	0x149a0: 0xe00044a1, 0x149a1: 0xe0005d32,
-	0x149a9: 0xe00062e0,
-	0x149ac: 0xe00064f3, 0x149af: 0xe0009b98,
-	0x149b0: 0xe000898e, 0x149b2: 0xe0008259,
-	0x149b7: 0xe0007d39,
-	0x149bb: 0xe0009462,
-	0x149be: 0xe000450d,
-	// Block 0x527, offset 0x149c0
-	0x149c4: 0xe000924b,
-	0x149c9: 0xe0006f18,
-	0x149d6: 0xe0009465,
-	0x149da: 0xe0007216,
-	0x149e1: 0xe0003eab,
-	0x149e4: 0xe0004511,
-	0x149e9: 0xe0005c7b,
-	0x149ec: 0xe0008fea, 0x149ef: 0xe00073a3,
-	0x149f4: 0xe0009bfa, 0x149f5: 0xe0009468,
-	0x149f8: 0xe0007410, 0x149f9: 0xe0005818, 0x149fb: 0xe000452d,
-	0x149ff: 0xe0008223,
-	// Block 0x528, offset 0x14a00
-	0x14a01: 0xe000809d, 0x14a02: 0xe0007ada,
-	0x14a04: 0xe0004399, 0x14a07: 0xe0004934,
-	0x14a13: 0xe0008226,
-	0x14a16: 0xe000780d, 0x14a17: 0xe00048a1,
-	0x14a19: 0xe0008c9d,
-	0x14a26: 0xe000932d,
-	0x14a29: 0xe00061cf, 0x14a2a: 0xe00073b7, 0x14a2b: 0xe0006e88,
-	0x14a30: 0xe0007676, 0x14a31: 0xe0004486, 0x14a32: 0xe0009537, 0x14a33: 0xe0009c6a,
-	0x14a38: 0xe000a432, 0x14a39: 0xe0007fb9, 0x14a3a: 0xe0005679,
-	0x14a3d: 0xe0009c12, 0x14a3f: 0xe0006177,
-	// Block 0x529, offset 0x14a40
-	0x14a47: 0xe0008660,
-	0x14a4f: 0xe0005cbf,
-	0x14a55: 0xe00056a6,
-	0x14a5a: 0xe00073a7, 0x14a5b: 0xe000468c,
-	0x14a5c: 0xe0004937, 0x14a5e: 0xe0005382,
-	// Block 0x52a, offset 0x14a80
-	0x14ab5: 0xe000567c, 0x14ab7: 0xe0005633,
-	0x14ab9: 0xe0009caa, 0x14abb: 0xe0003f37,
-	0x14abd: 0xe00076b2, 0x14abf: 0xe00056bd,
-	// Block 0x52b, offset 0x14ac0
-	0x14ac0: 0xe0007c14, 0x14ac2: 0xe0004a4f,
-	0x14ac4: 0xe000946b,
-	0x14acb: 0xe0005e08,
-	0x14acc: 0xe0007c17, 0x14acf: 0xe0004ada,
-	0x14ad1: 0xe0007810, 0x14ad2: 0xe0004cc3, 0x14ad3: 0xe00056c1,
-	0x14ad7: 0xe00054c8,
-	0x14add: 0xe000673f, 0x14ade: 0xe00083b1, 0x14adf: 0xe0005938,
-	0x14ae4: 0xe000946e, 0x14ae5: 0xe0005b13,
-	0x14ae9: 0xe0006410, 0x14aea: 0xe0005b97,
-	0x14aef: 0xe000495e,
-	0x14af4: 0xe000494e, 0x14af5: 0xe0005b83,
-	0x14afb: 0xe00059ad,
-	0x14afd: 0xe00059bc, 0x14afe: 0xe000a403, 0x14aff: 0xe00059bf,
-	// Block 0x52c, offset 0x14b00
-	0x14b03: 0xe000a253,
-	0x14b05: 0xe0004bb6,
-	0x14b0c: 0xe000a2ea, 0x14b0d: 0xe000698f, 0x14b0e: 0xe00054cb, 0x14b0f: 0xe00086dc,
-	0x14b10: 0xe0005915, 0x14b11: 0xe000a456,
-	0x14b14: 0xe0004143, 0x14b16: 0xe0004d2f,
-	0x14b18: 0xe0005d48, 0x14b1a: 0xe0004248, 0x14b1b: 0xe00050a6,
-	0x14b1c: 0xe00094c9, 0x14b1d: 0xe0007ea8, 0x14b1e: 0xe00086b0,
-	0x14b20: 0xe000a54b,
-	0x14b25: 0xe0004350,
-	0x14b28: 0xe0005031,
-	0x14b2e: 0xe0004fed, 0x14b2f: 0xe00072ce,
-	0x14b32: 0xe0008f46,
-	0x14b34: 0xe0005dde, 0x14b35: 0xe0004ff1, 0x14b36: 0xe00076e2, 0x14b37: 0xe00051a4,
-	0x14b3a: 0xe00064a7, 0x14b3b: 0xe00064db,
-	0x14b3c: 0xe0006279, 0x14b3d: 0xe0005e63, 0x14b3f: 0xe0007d3d,
-	// Block 0x52d, offset 0x14b40
-	0x14b40: 0xe00094b1, 0x14b42: 0xe0008991,
-	0x14b44: 0xe0008b01, 0x14b47: 0xe0007867,
-	0x14b48: 0xe00061c7, 0x14b49: 0xe00096b4, 0x14b4a: 0xe000617b,
-	0x14b4e: 0xe00087dc,
-	0x14b50: 0xe0004dea, 0x14b53: 0xe000442f,
-	0x14b57: 0xe0005175,
-	0x14b59: 0xe00065ff,
-	0x14b60: 0xe0006992, 0x14b62: 0xe00064ab,
-	0x14b6b: 0xe0006a07,
-	0x14b6c: 0xe0007eab, 0x14b6f: 0xe00078b2,
-	0x14b74: 0xe000750e,
-	0x14b78: 0xe000424c, 0x14b79: 0xe0007512, 0x14b7b: 0xe000657e,
-	0x14b7e: 0xe0009c6e,
-	// Block 0x52e, offset 0x14b80
-	0x14b8a: 0xe000886e, 0x14b8b: 0xe00083e2,
-	0x14b8e: 0xe00083e5,
-	0x14b92: 0xe00095a8,
-	0x14b94: 0xe0009601, 0x14b95: 0xe000a4a2, 0x14b97: 0xe0007f5d,
-	0x14b9f: 0xe000846b,
-	0x14ba0: 0xe0009330, 0x14ba1: 0xe00055ff,
-	0x14ba6: 0xe0003e6b, 0x14ba7: 0xe0006afb,
-	0x14ba9: 0xe0004802, 0x14baa: 0xe0008e5a, 0x14bab: 0xe0004515,
-	0x14bac: 0xe00074bb,
-	0x14bb2: 0xe0007c1a,
-	0x14bb6: 0xe000721a, 0x14bb7: 0xe00071ee,
-	// Block 0x52f, offset 0x14bc0
-	0x14bcd: 0xe000579e, 0x14bce: 0xe0005719,
-	0x14bd0: 0xe000600f, 0x14bd2: 0xe00057a2,
-	0x14bd4: 0xe000459d, 0x14bd5: 0xe0003efb,
-	0x14bdc: 0xe00048a4, 0x14bdd: 0xe000943b,
-	0x14be0: 0xe0007414, 0x14be2: 0xe000a144,
-	0x14be5: 0xe0007eae,
-	// Block 0x530, offset 0x14c00
-	0x14c00: 0xe0004ca8, 0x14c01: 0xe0004298, 0x14c02: 0xe0008e24, 0x14c03: 0xe0003d63,
-	0x14c04: 0xe000a1e3, 0x14c05: 0xe00045a1, 0x14c06: 0xe0004820, 0x14c07: 0xe00048a4,
-	0x14c08: 0xe00048a4, 0x14c09: 0xe000435d, 0x14c0a: 0xe0004d4e, 0x14c0b: 0xe000530f,
-	0x14c0c: 0xe0004dd5, 0x14c0d: 0xe0005312, 0x14c0e: 0xe0005315, 0x14c0f: 0xe0005318,
-	0x14c10: 0xe000531b, 0x14c11: 0xe000531e, 0x14c12: 0xe0005321, 0x14c13: 0xe0005324,
-	0x14c14: 0xe00071d6, 0x14c15: 0xe0005342, 0x14c16: 0xe0005346, 0x14c17: 0xe000534a,
-	0x14c18: 0xe0005352, 0x14c19: 0xe0005356, 0x14c1a: 0xe000535a, 0x14c1b: 0xe0005366,
-	0x14c1c: 0xe000536a, 0x14c1d: 0xe000536e, 0x14c1e: 0xe000537a, 0x14c1f: 0xe000537e,
-	0x14c20: 0xe0005382, 0x14c21: 0xe00053b2, 0x14c22: 0xe00053c2, 0x14c23: 0xe00053ce,
-	0x14c24: 0xe00053d2, 0x14c25: 0xe00053e2, 0x14c26: 0xe00053e6, 0x14c27: 0xe00053ea,
-	0x14c28: 0xe00053f2, 0x14c29: 0xe00053f6, 0x14c2a: 0xe00053fa, 0x14c2b: 0xe00053fe,
-	0x14c2c: 0x43219c20, 0x14c2d: 0xe000542a, 0x14c2e: 0xe000543c, 0x14c2f: 0xe000564c,
-	0x14c30: 0xe0005652, 0x14c31: 0xe0005655, 0x14c32: 0xe000565e, 0x14c33: 0xe0005661,
-	0x14c34: 0xe0005664, 0x14c35: 0xe0005667, 0x14c36: 0xe000566a, 0x14c37: 0xe000566d,
-	0x14c38: 0xe0005673, 0x14c39: 0xe0005676, 0x14c3a: 0xe0005679, 0x14c3b: 0xe00056a9,
-	0x14c3c: 0xe00056ad, 0x14c3d: 0xe00056b1, 0x14c3e: 0xe00056b5, 0x14c3f: 0xe00056b9,
-	// Block 0x531, offset 0x14c40
-	0x14c40: 0xe00056bd, 0x14c41: 0xe00056e1, 0x14c42: 0xe00056e5, 0x14c43: 0xe00056e9,
-	0x14c44: 0xe00056f9, 0x14c45: 0xe00056fd, 0x14c46: 0xe0005723, 0x14c47: 0xe0005726,
-	0x14c48: 0xe0005729, 0x14c49: 0xe0005732, 0x14c4a: 0xe00057a6, 0x14c4b: 0xe00057ac,
-	0x14c4c: 0xe00057af, 0x14c4d: 0xe00057b2, 0x14c4e: 0xe00057b5, 0x14c4f: 0xe00057bb,
-	0x14c50: 0xe00057be, 0x14c51: 0xe00057ca, 0x14c52: 0xe0005867, 0x14c53: 0xe000586b,
-	0x14c54: 0xe0005873, 0x14c55: 0xe0005883, 0x14c56: 0xe000588b, 0x14c57: 0xe000588f,
-	0x14c58: 0xe0005893, 0x14c59: 0xe0005897, 0x14c5a: 0xe000519c, 0x14c5b: 0xe0004d5f,
-	0x14c5c: 0xe00071d6, 0x14c5d: 0xe0004d77, 0x14c5e: 0xe0004ee5, 0x14c5f: 0xe0004e14,
-	0x14c60: 0xe0004e35, 0x14c61: 0xe0006cf7, 0x14c62: 0xe0008035, 0x14c63: 0xe0006413,
-	0x14c64: 0xe0005f23, 0x14c65: 0xe000996f, 0x14c66: 0xe0006290, 0x14c67: 0xe0006344,
-	0x14c68: 0xe0009b50, 0x14c69: 0xe0006d7d, 0x14c6a: 0xe000690f, 0x14c6b: 0xe0008ee6,
-	0x14c6c: 0xe00068fb, 0x14c6d: 0xe0006baf, 0x14c6e: 0xe00076ee, 0x14c6f: 0xe0006af3,
-	0x14c70: 0xe00067fb, 0x14c71: 0xe0008d2c, 0x14c72: 0xe000961d, 0x14c73: 0xe0006f5d,
-	0x14c74: 0xe00073e4, 0x14c75: 0xe0005440, 0x14c76: 0xe0005444, 0x14c77: 0xe000544c,
-	0x14c78: 0xe0005454, 0x14c79: 0xe0005458, 0x14c7a: 0xe000545c, 0x14c7b: 0xe000546c,
-	0x14c7c: 0xe0005470, 0x14c7d: 0xe0005474, 0x14c7e: 0xe000547c, 0x14c7f: 0xe000549e,
-	// Block 0x532, offset 0x14c80
-	0x14c80: 0xe00054a1, 0x14c81: 0xe0004ded, 0x14c82: 0xe00054a4, 0x14c83: 0xe00054ad,
-	0x14c84: 0xe00054b3, 0x14c85: 0xe00054b6, 0x14c86: 0xe00054bf, 0x14c87: 0xe00054c5,
-	0x14c88: 0xe00054c8, 0x14c89: 0xe00054cb, 0x14c8a: 0xe00054ef, 0x14c8b: 0xe00054f3,
-	0x14c8c: 0xe00054f7, 0x14c8d: 0xe0005503, 0x14c8e: 0xe0004df4, 0x14c8f: 0xe0005523,
-	0x14c90: 0xe0005527, 0x14c91: 0xe0004df8, 0x14c92: 0xe000552f, 0x14c93: 0xe0005533,
-	0x14c94: 0xe0005537, 0x14c95: 0xe0004dfc, 0x14c96: 0xe000553b, 0x14c97: 0xe000553f,
-	0x14c98: 0xe0005547, 0x14c99: 0xe0005543, 0x14c9a: 0xe000554b, 0x14c9b: 0xe000554f,
-	0x14c9c: 0xe0005573, 0x14c9d: 0xe0005577, 0x14c9e: 0xe00080b1, 0x14c9f: 0xe000557f,
-	0x14ca0: 0xe0005583, 0x14ca1: 0xe0006af3, 0x14ca2: 0xe0005593, 0x14ca3: 0xe0004e04,
-	0x14ca4: 0xe0004e10, 0x14ca5: 0xe000559b, 0x14ca6: 0xe00055a3, 0x14ca7: 0xe00055b3,
-	0x14ca8: 0xe00055bf, 0x14ca9: 0xe00055c7, 0x14caa: 0xe0004e14, 0x14cab: 0xe00055cf,
-	0x14cac: 0xe00055d3, 0x14cad: 0xe00055d7, 0x14cae: 0xe0009f6c, 0x14caf: 0xe00055df,
-	0x14cb0: 0xe00055e7, 0x14cb1: 0xe00055ef, 0x14cb2: 0xe00055f3, 0x14cb3: 0xe00055f7,
-	0x14cb4: 0xe00055fb, 0x14cb5: 0xe0005637, 0x14cb6: 0xe000563d, 0x14cb7: 0xe0005640,
-	0x14cb8: 0xe0005646, 0x14cb9: 0xe00071ca, 0x14cba: 0xe0005756, 0x14cbb: 0xe0005759,
-	0x14cbc: 0xe000575c, 0x14cbd: 0xe0004e75, 0x14cbe: 0xe0005762, 0x14cbf: 0xe00071d6,
-	// Block 0x533, offset 0x14cc0
-	0x14cc0: 0xe0005765, 0x14cc1: 0xe0005768, 0x14cc2: 0xe0005771, 0x14cc3: 0xe0005774,
-	0x14cc4: 0xe000579e, 0x14cc5: 0xe000a399, 0x14cc6: 0xe00079d4, 0x14cc7: 0xe00057e2,
-	0x14cc8: 0xe0004ea0, 0x14cc9: 0xe00057e8, 0x14cca: 0xe00057ee, 0x14ccb: 0xe00057f1,
-	0x14ccc: 0xe00057f7, 0x14ccd: 0xe00057fd, 0x14cce: 0xe0005803, 0x14ccf: 0xe0004ea3,
-	0x14cd0: 0xe0005809, 0x14cd1: 0xe000581b, 0x14cd2: 0xe000581f, 0x14cd3: 0xe0005823,
-	0x14cd4: 0xe000582f, 0x14cd5: 0xe0005833, 0x14cd6: 0xe0005837, 0x14cd7: 0xe000583f,
-	0x14cd8: 0xe0005847, 0x14cd9: 0xe000584b, 0x14cda: 0xe000584f, 0x14cdb: 0xe0006cf7,
-	0x14cdc: 0xe000585b, 0x14cdd: 0xe00058a6, 0x14cde: 0xe00058ac, 0x14cdf: 0xe00058b2,
-	0x14ce0: 0xe00075a2, 0x14ce1: 0xe00058b8, 0x14ce2: 0xe00058bb, 0x14ce3: 0xe0004eb7,
-	0x14ce4: 0xe00058c7, 0x14ce5: 0xe00058cd, 0x14ce6: 0xe00058d3, 0x14ce7: 0xe00058dc,
-	0x14ce8: 0xe00058df, 0x14ce9: 0xe00058e2, 0x14cea: 0xe00058e8, 0x14ceb: 0xe0004ecc,
-	0x14cec: 0xe0004ed0, 0x14ced: 0xe0005918, 0x14cee: 0xe0005920, 0x14cef: 0xe0005924,
-	0x14cf0: 0xe0005928, 0x14cf1: 0xe0005930, 0x14cf2: 0xe0005934, 0x14cf3: 0xe0005938,
-	0x14cf4: 0xe000596c, 0x14cf5: 0xe0005970, 0x14cf6: 0xe0005978, 0x14cf7: 0xe0005988,
-	0x14cf8: 0xe000598c, 0x14cf9: 0xe0005990, 0x14cfa: 0xe00068ab, 0x14cfb: 0xe00081ae,
-	0x14cfc: 0xe000705c, 0x14cfd: 0xe0007150, 0x14cfe: 0xe0004edf, 0x14cff: 0xe0008190,
-	// Block 0x534, offset 0x14d00
-	0x14d00: 0xe0008664, 0x14d01: 0xe00050e5, 0x14d02: 0xe000906f, 0x14d03: 0xe0005029,
-	0x14d04: 0xe00050bb, 0x14d05: 0xe0005210, 0x14d06: 0xe0009a96, 0x14d07: 0xe00062b4,
-	0x14d08: 0xe0009dc1, 0x14d09: 0xe0003faf, 0x14d0a: 0xe00041bc, 0x14d0b: 0xe00045f0,
-	0x14d0c: 0xe000790d, 0x14d0d: 0x42ab8020, 0x14d0e: 0x43f41c20, 0x14d0f: 0x43f41e20,
-	0x14d10: 0xe000937b, 0x14d11: 0x43f42220, 0x14d12: 0xe0009223, 0x14d13: 0x43f42620,
-	0x14d14: 0x43f42820, 0x14d15: 0xe000a4dd, 0x14d16: 0xe0008441, 0x14d17: 0xe0008081,
-	0x14d18: 0x42f27820, 0x14d19: 0xe00070a4, 0x14d1a: 0xe00068b3, 0x14d1b: 0xe0006298,
-	0x14d1c: 0xe00087d0, 0x14d1d: 0xe000879c, 0x14d1e: 0xe0007bc0, 0x14d1f: 0x43f43e20,
-	0x14d20: 0x430c2420, 0x14d21: 0x43f44220, 0x14d22: 0xe0008859, 0x14d23: 0x43f44620,
-	0x14d24: 0x43f44820, 0x14d25: 0xe0008129, 0x14d26: 0xe0005133, 0x14d27: 0x43f44e20,
-	0x14d28: 0x43f45020, 0x14d29: 0x43f45220, 0x14d2a: 0xe0005f3f, 0x14d2b: 0xe0006739,
-	0x14d2c: 0xe0004650, 0x14d2d: 0xe0009bfa, 0x14d2e: 0xe000540e, 0x14d2f: 0xe0005643,
-	0x14d30: 0xe0005bee, 0x14d31: 0xe0006f81, 0x14d32: 0xe0005b5b, 0x14d33: 0xe0005b63,
-	0x14d34: 0xe0004b16, 0x14d35: 0xe000650f, 0x14d36: 0xe0003e73, 0x14d37: 0xe0009717,
-	0x14d38: 0xe0004c15, 0x14d39: 0xe000621b, 0x14d3a: 0xe0005d44, 0x14d3b: 0xe000955f,
-	0x14d3c: 0x42b8dc20, 0x14d3d: 0xe000a282, 0x14d3e: 0xe0004010, 0x14d3f: 0xe0008bdc,
-	// Block 0x535, offset 0x14d40
-	0x14d40: 0xe0008de8, 0x14d41: 0xe0005e1b, 0x14d42: 0x42cbc420, 0x14d43: 0xe0006959,
-	0x14d44: 0xe0005ad0, 0x14d45: 0xe0009d65, 0x14d46: 0xe000843b, 0x14d47: 0xe0009c2a,
-	0x14d48: 0xe00081b1, 0x14d49: 0x42e45620, 0x14d4a: 0xe00096df, 0x14d4b: 0xe0006548,
-	0x14d4c: 0xe00066fd, 0x14d4d: 0xe0008c4c, 0x14d4e: 0xe0004c87, 0x14d4f: 0xe0007bb4,
-	0x14d50: 0xe00088ec, 0x14d51: 0xe0009479, 0x14d52: 0xe000a11a, 0x14d53: 0xe0008790,
-	0x14d54: 0xe0004499, 0x14d55: 0xe00051e0, 0x14d56: 0xe000867c, 0x14d57: 0xe000553b,
-	0x14d58: 0xe0008d0c, 0x14d59: 0xe00060c7, 0x14d5a: 0xe0006977, 0x14d5b: 0xe00081c3,
-	0x14d5c: 0xe000952b, 0x14d5d: 0x4304f220, 0x14d5e: 0x4304f220, 0x14d5f: 0xe0008453,
-	0x14d60: 0xe0003e8b, 0x14d61: 0xe0006feb, 0x14d62: 0xe000725a, 0x14d63: 0xe0004b3e,
-	0x14d64: 0xe0006632, 0x14d65: 0xe0008c00, 0x14d66: 0x431f6c20, 0x14d67: 0xe0008129,
-	0x14d68: 0xe0004d83, 0x14d69: 0xe0009ddd, 0x14d6a: 0xe0006636, 0x14d6b: 0x42c0ea20,
-	0x14d6c: 0x4885dc20, 0x14d6d: 0x43043020,
-	0x14d70: 0xe0006217, 0x14d71: 0x42a36a20, 0x14d72: 0xe000852c, 0x14d73: 0x429f0020,
-	0x14d74: 0xe00094d1, 0x14d75: 0xe0004c0f, 0x14d76: 0xe0007b09, 0x14d77: 0xe000822d,
-	0x14d78: 0xe0003e73, 0x14d79: 0x42aaaa20, 0x14d7a: 0xe000a3dc, 0x14d7b: 0xe0007911,
-	0x14d7c: 0xe000937b, 0x14d7d: 0xe0006423, 0x14d7e: 0xe000752e, 0x14d7f: 0xe0006427,
-	// Block 0x536, offset 0x14d80
-	0x14d80: 0xe0006515, 0x14d81: 0xe00081de, 0x14d82: 0x42bda420, 0x14d83: 0x42bdb220,
-	0x14d84: 0xe0008ffa, 0x14d85: 0xe0007abf, 0x14d86: 0xe0005aa6, 0x14d87: 0x42c29c20,
-	0x14d88: 0xe0007df1, 0x14d89: 0xe0008bdc, 0x14d8a: 0xe0007885, 0x14d8b: 0xe0008de8,
-	0x14d8c: 0xe0005091, 0x14d8d: 0xe0007df7, 0x14d8e: 0xe0006d77, 0x14d8f: 0x42c8a420,
-	0x14d90: 0xe0007840, 0x14d91: 0xe0009223, 0x14d92: 0xe00053f6, 0x14d93: 0xe0005a86,
-	0x14d94: 0xe000830d, 0x14d95: 0x42d6f220, 0x14d96: 0xe00067fb, 0x14d97: 0xe00057ee,
-	0x14d98: 0x42ddb620, 0x14d99: 0xe00081ab, 0x14d9a: 0xe0009c2a, 0x14d9b: 0xe0008774,
-	0x14d9c: 0xe00081b1, 0x14d9d: 0x42ef4e20, 0x14d9e: 0xe0008245, 0x14d9f: 0xe000611b,
-	0x14da0: 0xe0008441, 0x14da1: 0xe00085f8, 0x14da2: 0x42ea0c20, 0x14da3: 0x42ea7620,
-	0x14da4: 0x42ec3a20, 0x14da5: 0xe00078d1, 0x14da6: 0xe0008081, 0x14da7: 0xe0006bab,
-	0x14da8: 0xe0008ca0, 0x14da9: 0x42ee9420, 0x14daa: 0xe0008e4a, 0x14dab: 0x42f19820,
-	0x14dac: 0x42f56220, 0x14dad: 0xe000867c, 0x14dae: 0x42f8f620, 0x14daf: 0xe000896a,
-	0x14db0: 0xe000553b, 0x14db1: 0xe0006223, 0x14db2: 0xe00081c3, 0x14db3: 0xe000a243,
-	0x14db4: 0xe000a123, 0x14db5: 0x430ef220, 0x14db6: 0xe0003fa3, 0x14db7: 0xe00062ac,
-	0x14db8: 0xe0006feb, 0x14db9: 0xe0008913, 0x14dba: 0xe0008859, 0x14dbb: 0xe0009233,
-	0x14dbc: 0xe000725a, 0x14dbd: 0xe0004d77, 0x14dbe: 0xe0007e39, 0x14dbf: 0xe0004b3e,
-	// Block 0x537, offset 0x14dc0
-	0x14dc0: 0xe0006187, 0x14dc1: 0xe0008c00, 0x14dc2: 0xe0006dd4, 0x14dc3: 0xe0008c70,
-	0x14dc4: 0x43233220, 0x14dc5: 0x4324ec20, 0x14dc6: 0xe00084a1, 0x14dc7: 0xe0004d83,
-	0x14dc8: 0xe00087d0, 0x14dc9: 0x432fb620, 0x14dca: 0xe0009ddd, 0x14dcb: 0x43301620,
-	0x14dcc: 0xe0006636, 0x14dcd: 0xe0008d64, 0x14dce: 0xe00048a4, 0x14dcf: 0x48509420,
-	0x14dd0: 0x48508820, 0x14dd1: 0x4867aa20, 0x14dd2: 0x44773a20, 0x14dd3: 0x44803020,
-	0x14dd4: 0x44807220, 0x14dd5: 0x48a49220, 0x14dd6: 0x48b9a020, 0x14dd7: 0x48fda620,
-	0x14dd8: 0x433e8620, 0x14dd9: 0xe0005719,
-	// Block 0x538, offset 0x14e00
-	0x14e00: 0xe00037d0, 0x14e01: 0xe00037b8, 0x14e02: 0xe00037bc, 0x14e03: 0xe00037c4,
-	0x14e04: 0xe00037d4, 0x14e05: 0xe00037c8, 0x14e06: 0xf0000404, 0x14e07: 0xe00037c0,
-	0x14e08: 0xe00037cc,
-	0x14e10: 0x02bf2e86, 0x14e11: 0x02a7de86,
-	// Block 0x539, offset 0x14e40
-	0x14e40: 0x429c7a20, 0x14e41: 0xe000a16b, 0x14e42: 0x429c8220, 0x14e43: 0x48024420,
-	0x14e44: 0x429ec020, 0x14e45: 0xe0005bee, 0x14e46: 0xe0009757, 0x14e47: 0xe00061d7,
-	0x14e48: 0x42a0f420, 0x14e49: 0xe0006506, 0x14e4a: 0xe0006f81, 0x14e4b: 0xe0006863,
-	0x14e4c: 0x44693c20, 0x14e4d: 0x480c7420, 0x14e4e: 0xe0005b5b, 0x14e4f: 0x42a2a820,
-	0x14e50: 0x42a2c820, 0x14e51: 0xe0004814, 0x14e52: 0x480a3820, 0x14e53: 0x44697220,
-	0x14e54: 0xe0004dd2, 0x14e55: 0xe00083b5, 0x14e56: 0x480a9620, 0x14e57: 0xe0007b05,
-	0x14e58: 0xe0007d09, 0x14e59: 0x429d9820, 0x14e5a: 0xe00051f0, 0x14e5b: 0x42a36a20,
-	0x14e5c: 0x4923be20, 0x14e5d: 0x42a3ea20, 0x14e5e: 0xe00080a9, 0x14e5f: 0x4469be20,
-	0x14e60: 0xe0003d9f, 0x14e61: 0x42a48c20, 0x14e62: 0xe0009c72, 0x14e63: 0xe00067c3,
-	0x14e64: 0x446a2a20, 0x14e65: 0xe0007b09, 0x14e66: 0xe0005b63, 0x14e67: 0xe0004b16,
-	0x14e68: 0xe000822d, 0x14e69: 0xe0009a20, 0x14e6a: 0x42a60c20, 0x14e6b: 0xe0006413,
-	0x14e6c: 0xe000a3d9, 0x14e6d: 0xe000650f, 0x14e6e: 0xe0005e7f, 0x14e6f: 0xe0008bb4,
-	0x14e70: 0xe0008bb0, 0x14e71: 0xe000426c, 0x14e72: 0xe000426c, 0x14e73: 0xe000426c,
-	0x14e74: 0x48145820, 0x14e75: 0xe000a297, 0x14e76: 0xe0004bbe, 0x14e77: 0xe0006e01,
-	0x14e78: 0x4816c620, 0x14e79: 0xe0004a5e, 0x14e7a: 0xe0008d6c, 0x14e7b: 0x42a80c20,
-	0x14e7c: 0x42a93c20, 0x14e7d: 0xe000a4b6, 0x14e7e: 0xe0008718, 0x14e7f: 0xe0008a5f,
-	// Block 0x53a, offset 0x14e80
-	0x14e80: 0xe00071fa, 0x14e81: 0x42a9ec20, 0x14e82: 0xe0005009, 0x14e83: 0xe0004357,
-	0x14e84: 0xe0009c8a, 0x14e85: 0xe0006a17, 0x14e86: 0xe0006a17, 0x14e87: 0xe000a3dc,
-	0x14e88: 0xe0004d52, 0x14e89: 0x42ab6620, 0x14e8a: 0x42ab8420, 0x14e8b: 0xe00050d0,
-	0x14e8c: 0xe0009717, 0x14e8d: 0x42ae2e20, 0x14e8e: 0x42aca220, 0x14e8f: 0xe000641f,
-	0x14e90: 0xe0008664, 0x14e91: 0x42b1dc20, 0x14e92: 0xe0006b83, 0x14e93: 0xe0007030,
-	0x14e94: 0x42b01a20, 0x14e95: 0xe0009f48, 0x14e96: 0x42b06420, 0x14e97: 0xe000623d,
-	0x14e98: 0x42b15820, 0x14e99: 0x4829c820, 0x14e9a: 0x42b1e420, 0x14e9b: 0x42b1ee20,
-	0x14e9c: 0xe0006330, 0x14e9d: 0xe0004edc, 0x14e9e: 0xe0005c8f, 0x14e9f: 0xe00066bb,
-	0x14ea0: 0x482d5020, 0x14ea1: 0x482dd420, 0x14ea2: 0xe000a4e9, 0x14ea3: 0xe0007834,
-	0x14ea4: 0xe00097dc, 0x14ea5: 0x42b3b020, 0x14ea6: 0xe0006362, 0x14ea7: 0x446ddc20,
-	0x14ea8: 0x446df820, 0x14ea9: 0xe0007ab9, 0x14eaa: 0xe0005386, 0x14eab: 0xe0005386,
-	0x14eac: 0x48339020, 0x14ead: 0xe0007cc1, 0x14eae: 0xe00095b1, 0x14eaf: 0xe0004e14,
-	0x14eb0: 0x42b7e620, 0x14eb1: 0x48363020, 0x14eb2: 0x42b7fe20, 0x14eb3: 0x42b80c20,
-	0x14eb4: 0x42bea620, 0x14eb5: 0x42b84420, 0x14eb6: 0x446f0220, 0x14eb7: 0xe00050dc,
-	0x14eb8: 0x42b8dc20, 0x14eb9: 0xe0006d65, 0x14eba: 0x42b91a20, 0x14ebb: 0x483bc820,
-	0x14ebc: 0x42ba8620, 0x14ebd: 0x483bcc20, 0x14ebe: 0x42badc20, 0x14ebf: 0x42bad620,
-	// Block 0x53b, offset 0x14ec0
-	0x14ec0: 0x42baf820, 0x14ec1: 0xe0006e8c, 0x14ec2: 0xe0006c09, 0x14ec3: 0x44705e20,
-	0x14ec4: 0xe0006cdb, 0x14ec5: 0xe0006beb, 0x14ec6: 0xe0005bfa, 0x14ec7: 0x42bcd220,
-	0x14ec8: 0x4470c420, 0x14ec9: 0x48430620, 0x14eca: 0x4470f820, 0x14ecb: 0x42bd6020,
-	0x14ecc: 0xe0006596, 0x14ecd: 0xe0006947, 0x14ece: 0xe00053f2, 0x14ecf: 0x49472420,
-	0x14ed0: 0x42bdfc20, 0x14ed1: 0x48466220, 0x14ed2: 0x48466220, 0x14ed3: 0xe0007593,
-	0x14ed4: 0xe0005145, 0x14ed5: 0xe0005145, 0x14ed6: 0x44718e20, 0x14ed7: 0x48657020,
-	0x14ed8: 0x48c3b420, 0x14ed9: 0xe0009f4c, 0x14eda: 0xe00088b6, 0x14edb: 0x4471c620,
-	0x14edc: 0x42bf3420, 0x14edd: 0xe00080c5, 0x14ede: 0xe0008c1f, 0x14edf: 0x42bff220,
-	0x14ee0: 0xe000764e, 0x14ee1: 0x44727420, 0x14ee2: 0x44723820, 0x14ee3: 0xe000a282,
-	0x14ee4: 0x484da820, 0x14ee5: 0xe00051ac, 0x14ee6: 0xe00081a8, 0x14ee7: 0xe000a20f,
-	0x14ee8: 0x42c29c20, 0x14ee9: 0xe000a20f, 0x14eea: 0xe00057d6, 0x14eeb: 0xe0008bdc,
-	0x14eec: 0xe0009e00, 0x14eed: 0xe0006433, 0x14eee: 0xe0008f1e, 0x14eef: 0xe0005c9f,
-	0x14ef0: 0xe0008de8, 0x14ef1: 0xe0005312, 0x14ef2: 0xe0006b97, 0x14ef3: 0x42c43620,
-	0x14ef4: 0x42c4ba20, 0x14ef5: 0xe0009a3b, 0x14ef6: 0xe0005f67, 0x14ef7: 0xe00075e2,
-	0x14ef8: 0x48561820, 0x14ef9: 0xe00059fa, 0x14efa: 0x42c5f820, 0x14efb: 0xe00066d6,
-	0x14efc: 0xe0006c0f, 0x14efd: 0x42c7c820, 0x14efe: 0x4857e220, 0x14eff: 0xe0008cc8,
-	// Block 0x53c, offset 0x14f00
-	0x14f00: 0x42c78a20, 0x14f01: 0xe0007532, 0x14f02: 0x44745c20, 0x14f03: 0xe0005998,
-	0x14f04: 0x42c8fc20, 0x14f05: 0xe000a406, 0x14f06: 0x42c8ee20, 0x14f07: 0x4474d820,
-	0x14f08: 0xe0005e1b, 0x14f09: 0xe000428c, 0x14f0a: 0x48601420, 0x14f0b: 0xe0004c42,
-	0x14f0c: 0xe000695f, 0x14f0d: 0xe0008ccc, 0x14f0e: 0x44763220, 0x14f0f: 0xe0006959,
-	0x14f10: 0x44761020, 0x14f11: 0x4475c820, 0x14f12: 0xe0005bf1, 0x14f13: 0xe0005b5f,
-	0x14f14: 0xe00093bd, 0x14f15: 0x42cd3820, 0x14f16: 0xe0004e9c, 0x14f17: 0x4487b220,
-	0x14f18: 0xe00053f6, 0x14f19: 0xe0005a86, 0x14f1a: 0x42ce4220, 0x14f1b: 0xe0004c4b,
-	0x14f1c: 0xe0009ab2, 0x14f1d: 0x48678620, 0x14f1e: 0x44769220, 0x14f1f: 0x42cff420,
-	0x14f20: 0x42cf0a20, 0x14f21: 0x42d0a420, 0x14f22: 0xe0005ad0, 0x14f23: 0x4868da20,
-	0x14f24: 0x42d11c20, 0x14f25: 0x42d03e20, 0x14f26: 0x42d22820, 0x14f27: 0x44773a20,
-	0x14f28: 0xe0006751, 0x14f29: 0x42d34620, 0x14f2a: 0xe0004016, 0x14f2b: 0x42d55020,
-	0x14f2c: 0x486d4620, 0x14f2d: 0xe0008bbc, 0x14f2e: 0x44783020, 0x14f2f: 0xe0008e15,
-	0x14f30: 0x48714e20, 0x14f31: 0xe0009dfd, 0x14f32: 0x44789c20, 0x14f33: 0xe0006bd9,
-	0x14f34: 0x42d73e20, 0x14f35: 0xe00067fb, 0x14f36: 0x42d77620, 0x14f37: 0x48751a20,
-	0x14f38: 0x483a1620, 0x14f39: 0x4875f420, 0x14f3a: 0xe0006113, 0x14f3b: 0x48797820,
-	0x14f3c: 0xe00075f2, 0x14f3d: 0x42d99a20, 0x14f3e: 0x42d8ce20, 0x14f3f: 0x42da2c20,
-	// Block 0x53d, offset 0x14f40
-	0x14f40: 0xe000989d, 0x14f41: 0xe0009d65, 0x14f42: 0xe00057ee, 0x14f43: 0xe0009ffa,
-	0x14f44: 0xe0009621, 0x14f45: 0xe000767e, 0x14f46: 0x487a3c20, 0x14f47: 0x42da6820,
-	0x14f48: 0xe0009d22, 0x14f49: 0xe00080c9, 0x14f4a: 0x447a6620, 0x14f4b: 0xe00081ab,
-	0x14f4c: 0x42dd8e20, 0x14f4d: 0x487da220, 0x14f4e: 0xe0007536, 0x14f4f: 0xe00088da,
-	0x14f50: 0x487ebc20, 0x14f51: 0x487f1c20, 0x14f52: 0xe0006483, 0x14f53: 0x42e07220,
-	0x14f54: 0xe0008774, 0x14f55: 0xe0007732, 0x14f56: 0x447b2c20, 0x14f57: 0x42e09420,
-	0x14f58: 0xe00083d3, 0x14f59: 0x42e0ee20, 0x14f5a: 0xe000972f, 0x14f5b: 0x480a4a20,
-	0x14f5c: 0x42e28a20, 0x14f5d: 0x4884c620, 0x14f5e: 0x42e33820, 0x14f5f: 0x48875620,
-	0x14f60: 0xe0008ebe, 0x14f61: 0xe0008245, 0x14f62: 0x42e4a020, 0x14f63: 0x488c1020,
-	0x14f64: 0xe0006968, 0x14f65: 0x42e52a20, 0x14f66: 0x488e6a20, 0x14f67: 0x48902820,
-	0x14f68: 0xe0004f61, 0x14f69: 0xe0007a10, 0x14f6a: 0x447d5820, 0x14f6b: 0x42e74a20,
-	0x14f6c: 0x447d7020, 0x14f6d: 0x447d7020, 0x14f6e: 0x42e88e20, 0x14f6f: 0xe0007e1e,
-	0x14f70: 0xe00085f8, 0x14f71: 0x42e90a20, 0x14f72: 0xe00042b4, 0x14f73: 0x447e3620,
-	0x14f74: 0x42ea4820, 0x14f75: 0x48986c20, 0x14f76: 0x42ea7c20, 0x14f77: 0x48992420,
-	0x14f78: 0xe0008035, 0x14f79: 0x48433e20, 0x14f7a: 0xe0007e72, 0x14f7b: 0x489f4220,
-	0x14f7c: 0x489f7020, 0x14f7d: 0x48a08820, 0x14f7e: 0x447ff820, 0x14f7f: 0x44801020,
-	// Block 0x53e, offset 0x14f80
-	0x14f80: 0xe0008ca0, 0x14f81: 0x48a1e620, 0x14f82: 0x48a1e420, 0x14f83: 0x48a23220,
-	0x14f84: 0x48a26620, 0x14f85: 0xe0008d00, 0x14f86: 0x42ee3e20, 0x14f87: 0x42ee3e20,
-	0x14f88: 0x42ee9420, 0x14f89: 0x44807220, 0x14f8a: 0xe0008d04, 0x14f8b: 0x44808c20,
-	0x14f8c: 0x44812c20, 0x14f8d: 0x48a83a20, 0x14f8e: 0x42f09c20, 0x14f8f: 0xe00056a9,
-	0x14f90: 0x42f19820, 0x14f91: 0x4481c620, 0x14f92: 0x48ac4c20, 0x14f93: 0xe00088ec,
-	0x14f94: 0x48ad3420, 0x14f95: 0x48ad8a20, 0x14f96: 0xe0006298, 0x14f97: 0xe00094cd,
-	0x14f98: 0x44825e20, 0x14f99: 0xe0004499, 0x14f9a: 0x42f49420, 0x14f9b: 0x42f49e20,
-	0x14f9c: 0x48b2f820, 0x14f9d: 0x48b54e20, 0x14f9e: 0x48b54e20, 0x14f9f: 0x42f5dc20,
-	0x14fa0: 0x44840420, 0x14fa1: 0x48b75620, 0x14fa2: 0xe0008590, 0x14fa3: 0xe0009485,
-	0x14fa4: 0x44844e20, 0x14fa5: 0x48b90020, 0x14fa6: 0x42f9a420, 0x14fa7: 0x44854020,
-	0x14fa8: 0x42f9d020, 0x14fa9: 0x42f9c620, 0x14faa: 0xe0004c90, 0x14fab: 0x48bf0c20,
-	0x14fac: 0xe000621f, 0x14fad: 0x44860220, 0x14fae: 0xe0009590, 0x14faf: 0x42fc0420,
-	0x14fb0: 0xe0006c8a, 0x14fb1: 0x44866820, 0x14fb2: 0x48c45020, 0x14fb3: 0x48c48e20,
-	0x14fb4: 0x4486b220, 0x14fb5: 0x48c5b220, 0x14fb6: 0x42fef420, 0x14fb7: 0x48c67c20,
-	0x14fb8: 0x42ff2a20, 0x14fb9: 0xe000446b, 0x14fba: 0xe00081c3, 0x14fbb: 0x48c9b420,
-	0x14fbc: 0x48ca4620, 0x14fbd: 0x4300c020, 0x14fbe: 0x48cb5020, 0x14fbf: 0xe0009393,
-	// Block 0x53f, offset 0x14fc0
-	0x14fc0: 0x4866be20, 0x14fc1: 0x4487aa20, 0x14fc2: 0xe0007ebd, 0x14fc3: 0x43020620,
-	0x14fc4: 0x44881620, 0x14fc5: 0xe000655d, 0x14fc6: 0xe0008189, 0x14fc7: 0x48cf4e20,
-	0x14fc8: 0x48cf6a20, 0x14fc9: 0x48672620, 0x14fca: 0x48673820, 0x14fcb: 0xe0007593,
-	0x14fcc: 0x43040820, 0x14fcd: 0x431f3c20, 0x14fce: 0x4488d620, 0x14fcf: 0x43052220,
-	0x14fd0: 0xe0007bc3, 0x14fd1: 0xe0008c5e, 0x14fd2: 0x42a56620, 0x14fd3: 0xe000a120,
-	0x14fd4: 0xe0005ff3, 0x14fd5: 0xe000717b, 0x14fd6: 0xe000440b, 0x14fd7: 0x48d67820,
-	0x14fd8: 0xe00073e4, 0x14fd9: 0xe0009015, 0x14fda: 0x4306c620, 0x14fdb: 0x43075a20,
-	0x14fdc: 0xe0007894, 0x14fdd: 0xe0005a9a, 0x14fde: 0x4307ce20, 0x14fdf: 0xe0008453,
-	0x14fe0: 0x4306a620, 0x14fe1: 0xe0004942, 0x14fe2: 0xe0004ace, 0x14fe3: 0xe0009006,
-	0x14fe4: 0x48d86c20, 0x14fe5: 0x48dad620, 0x14fe6: 0x48d9aa20, 0x14fe7: 0x448a5620,
-	0x14fe8: 0xe00099eb, 0x14fe9: 0x4309e620, 0x14fea: 0x430a2c20, 0x14feb: 0x48e79420,
-	0x14fec: 0xe0007e8d, 0x14fed: 0x48de5820, 0x14fee: 0x448aba20, 0x14fef: 0x448ac220,
-	0x14ff0: 0x48df6220, 0x14ff1: 0x48e1a420, 0x14ff2: 0x448ad620, 0x14ff3: 0xe0009bf2,
-	0x14ff4: 0xe000566a, 0x14ff5: 0xe000a418, 0x14ff6: 0x430cd220, 0x14ff7: 0xe000959c,
-	0x14ff8: 0x430d1020, 0x14ff9: 0x430e1c20, 0x14ffa: 0x430dc420, 0x14ffb: 0x430ef220,
-	0x14ffc: 0xe00086f4, 0x14ffd: 0x430ed620, 0x14ffe: 0x430f0c20, 0x14fff: 0x448bae20,
-	// Block 0x540, offset 0x15000
-	0x15000: 0x430fc220, 0x15001: 0x43100220, 0x15002: 0x448bf220, 0x15003: 0x4310c020,
-	0x15004: 0xe0007fea, 0x15005: 0x48ecce20, 0x15006: 0x4311ae20, 0x15007: 0x4311bc20,
-	0x15008: 0x448c6a20, 0x15009: 0x4311f420, 0x1500a: 0x44697620, 0x1500b: 0x48f15c20,
-	0x1500c: 0x48f2cc20, 0x1500d: 0x448d7c20, 0x1500e: 0x448d8e20, 0x1500f: 0xe0006bc3,
-	0x15010: 0xe0007e39, 0x15011: 0xe0006187, 0x15012: 0xe0006ff7, 0x15013: 0x48f95020,
-	0x15014: 0xe0004648, 0x15015: 0xe000645b, 0x15016: 0xe0004591, 0x15017: 0xe0004cab,
-	0x15018: 0x48fe5e20, 0x15019: 0x48100820, 0x1501a: 0xe0005f7b, 0x1501b: 0x431b7820,
-	0x1501c: 0x431be020, 0x1501d: 0x4811bc20, 0x1501e: 0x431da820, 0x1501f: 0xe0006dd4,
-	0x15020: 0x490ba420, 0x15021: 0x490bda20, 0x15022: 0x43212820, 0x15023: 0x4321e220,
-	0x15024: 0x43222220, 0x15025: 0x490e5c20, 0x15026: 0x43223620, 0x15027: 0xe0005f9b,
-	0x15028: 0xe0009ecc, 0x15029: 0x4325b020, 0x1502a: 0xe0006233, 0x1502b: 0x4327f220,
-	0x1502c: 0x43282a20, 0x1502d: 0x4917f420, 0x1502e: 0xe0004031, 0x1502f: 0x44932a20,
-	0x15030: 0x432b6e20, 0x15031: 0x491aee20, 0x15032: 0x4493cc20, 0x15033: 0x432d8620,
-	0x15034: 0x42bb6420, 0x15035: 0xe0007c85, 0x15036: 0x49228a20, 0x15037: 0x49243420,
-	0x15038: 0x4494dc20, 0x15039: 0x4494ec20, 0x1503a: 0xe0009b90, 0x1503b: 0x49281420,
-	0x1503c: 0x44956420, 0x1503d: 0x49292c20, 0x1503e: 0x43301620, 0x1503f: 0x43301620,
-	// Block 0x541, offset 0x15040
-	0x15040: 0x43305220, 0x15041: 0x492b6c20, 0x15042: 0xe0004cb4, 0x15043: 0x44966620,
-	0x15044: 0x43325220, 0x15045: 0x43334e20, 0x15046: 0x43338420, 0x15047: 0x4333fc20,
-	0x15048: 0x44979c20, 0x15049: 0x49366020, 0x1504a: 0xe0008d64, 0x1504b: 0x43388020,
-	0x1504c: 0x4339fa20, 0x1504d: 0x44999c20, 0x1504e: 0x4499da20, 0x1504f: 0x433ace20,
-	0x15050: 0x49419c20, 0x15051: 0x4499f020, 0x15052: 0x49420a20, 0x15053: 0x49441c20,
-	0x15054: 0x49452220, 0x15055: 0xe00059ad, 0x15056: 0x449aac20, 0x15057: 0x433df220,
-	0x15058: 0x433dfc20, 0x15059: 0x433e0a20, 0x1505a: 0x433e1e20, 0x1505b: 0x433e2c20,
-	0x1505c: 0xe000657e, 0x1505d: 0x494c0020,
-	// Block 0x542, offset 0x15080
-	0x15080: 0xa000f202, 0x15081: 0x403fba21, 0x15082: 0x403fba20, 0x15083: 0x403fbc20,
-	0x15084: 0x403fbc20, 0x15085: 0x403fbe20, 0x15086: 0x403fc020, 0x15087: 0x403fcc20,
-	0x15088: 0x403fce20, 0x15089: 0x403fd020, 0x1508a: 0x403fd220, 0x1508b: 0x403fd420,
-	0x1508c: 0x403fd820, 0x1508d: 0x403fdc20, 0x1508e: 0x403fde20, 0x1508f: 0x403fe020,
-	0x15090: 0x403fe220, 0x15091: 0x403fe420, 0x15092: 0x403fe620, 0x15093: 0x403fe820,
-	0x15094: 0x403fea20, 0x15095: 0xca983ba1, 0x15096: 0x403fee20, 0x15097: 0x403ff020,
-	0x15098: 0x403ff420, 0x15099: 0x403ff620, 0x1509a: 0x403ff820, 0x1509b: 0x403ffa20,
-	0x1509c: 0x403ffc20, 0x1509d: 0x40400220, 0x1509e: 0x40400420, 0x1509f: 0x40400620,
-	0x150a0: 0x40400820, 0x150a1: 0x40400a20, 0x150a2: 0x40400e20, 0x150a3: 0x40401020,
-	0x150a4: 0x40401220, 0x150a5: 0x40401420, 0x150a6: 0x40401620, 0x150a7: 0x40401820,
-	0x150a8: 0x40401a20, 0x150a9: 0xe0001830, 0x150aa: 0x40401c20, 0x150ab: 0x40401e20,
-	0x150ac: 0x40402020, 0x150ad: 0x40402420, 0x150ae: 0x40402620, 0x150af: 0x40402820,
-	0x150b0: 0x40402c20, 0x150b1: 0xe0001839, 0x150b2: 0x40402e20, 0x150b3: 0x40403c20,
-	0x150b4: 0xe000a54f, 0x150b5: 0x40403220, 0x150b6: 0x40403420, 0x150b7: 0x40403620,
-	0x150b8: 0x40403820, 0x150b9: 0x40403a20, 0x150ba: 0x40404c20, 0x150bb: 0x40404e20,
-	0x150bc: 0xa070f102, 0x150bd: 0x40403c20, 0x150be: 0x40404a20, 0x150bf: 0x40405620,
-	// Block 0x543, offset 0x150c0
-	0x150c0: 0x402c1a20, 0x150c1: 0x002c2a88, 0x150c2: 0x002c3288, 0x150c3: 0x402c3220,
-	0x150c4: 0x0031c488, 0x150c5: 0x4031c420, 0x150c6: 0x002ee2a3, 0x150c7: 0x002c4e88,
-	0x150c8: 0x402c4e20, 0x150c9: 0x002c7288, 0x150ca: 0x002c7a88, 0x150cb: 0x002c8488,
-	0x150cc: 0x402c8420, 0x150cd: 0xe000115c, 0x150ce: 0x002cae88, 0x150cf: 0x002cb888,
-	0x150d0: 0x002c9a83, 0x150d1: 0x002d1688, 0x150d2: 0x402d1620, 0x150d3: 0x002d4488,
-	0x150d4: 0x002d5888, 0x150d5: 0x402d7820, 0x150d6: 0x002dc288, 0x150d7: 0x002db688,
-	0x150d8: 0x002e0a88, 0x150d9: 0x402e0a20, 0x150da: 0x402e3820, 0x150db: 0x402e7220,
-	0x150dc: 0x0030a088, 0x150dd: 0x002eb488, 0x150de: 0x402ebc20, 0x150df: 0x002f1088,
-	0x150e0: 0xe0000e56, 0x150e1: 0xe0000e53, 0x150e2: 0x002d6088, 0x150e3: 0x402d6020,
-	0x150e4: 0x002f3e88, 0x150e5: 0x402f3e20, 0x150e6: 0x002f8288, 0x150e7: 0x0031b488,
-	0x150e8: 0x4031b420, 0x150e9: 0x00300888, 0x150ea: 0x40301220, 0x150eb: 0x40304220,
-	0x150ec: 0x00304a88, 0x150ed: 0x40304a20, 0x150ee: 0x00305288, 0x150ef: 0xe000105f,
-	0x150f0: 0xe000105c, 0x150f1: 0x0030b488, 0x150f2: 0x0030cc88, 0x150f3: 0x00311888,
-	0x150f4: 0x40311820, 0x150f5: 0x00313488, 0x150f6: 0x40313420, 0x150f7: 0x00316488,
-	0x150f8: 0x00316e88, 0x150f9: 0x40316e20, 0x150fa: 0x40317820, 0x150fb: 0x4031a620,
-	0x150fc: 0x0031bc88, 0x150fd: 0x4031bc20, 0x150fe: 0xe0000fc9, 0x150ff: 0x40319420,
-	// Block 0x544, offset 0x15100
-	0x15100: 0x40315820, 0x15101: 0x0031d488, 0x15102: 0x4031d420, 0x15103: 0x002c1a88,
-	0x15104: 0x00307c88, 0x15105: 0x0030da88, 0x15106: 0x002ca288, 0x15107: 0x402ca220,
-	0x15108: 0x002dde88, 0x15109: 0x402dde20, 0x1510a: 0x002f6a88, 0x1510b: 0x402f6a20,
-	0x1510c: 0x002f8e88, 0x1510d: 0x402f8e20, 0x1510e: 0x00311088, 0x1510f: 0x40311020,
-	0x15110: 0x402bf020, 0x15111: 0x402bf820, 0x15112: 0x402c0220, 0x15113: 0x402c2a20,
-	0x15114: 0x402ee221, 0x15115: 0x402c5620, 0x15116: 0x402c7220, 0x15117: 0x402c7a20,
-	0x15118: 0x402ccc20, 0x15119: 0x402cb820, 0x1511a: 0x402cd420, 0x1511b: 0x402c9a20,
-	0x1511c: 0x402cdc20, 0x1511d: 0x402ce820, 0x1511e: 0x402cf020, 0x1511f: 0x402dee20,
-	0x15120: 0x402d4420, 0x15121: 0x402d2a20, 0x15122: 0x402d3220, 0x15123: 0x402d5820,
-	0x15124: 0x402d0020, 0x15125: 0x40308820, 0x15126: 0x402d8020, 0x15127: 0x402d8e20,
-	0x15128: 0x402db620, 0x15129: 0x402dc220, 0x1512a: 0x402daa20, 0x1512b: 0x402e4220,
-	0x1512c: 0x402e4a20, 0x1512d: 0x402e5420, 0x1512e: 0x402e6820, 0x1512f: 0x4030a020,
-	0x15130: 0x4030ac20, 0x15131: 0x402e9020, 0x15132: 0x402eb420, 0x15133: 0x402ec820,
-	0x15134: 0x402ea620, 0x15135: 0x402f1020, 0x15136: 0x402eee20, 0x15137: 0x402f1a20,
-	0x15138: 0x402f4c20, 0x15139: 0x402f9820, 0x1513a: 0x402fa220, 0x1513b: 0x402fac20,
-	0x1513c: 0x402fb620, 0x1513d: 0x402fbe20, 0x1513e: 0x402fc620, 0x1513f: 0x402fd020,
-	// Block 0x545, offset 0x15140
-	0x15140: 0xa0000000, 0x15141: 0xa0000000, 0x15142: 0xa0000000, 0x15143: 0xa0000000,
-	0x15144: 0xa0000000, 0x15145: 0xa0000000, 0x15146: 0xa0000000, 0x15147: 0xa0000000,
-	0x15148: 0xa0000000, 0x15149: 0x40020020, 0x1514a: 0x40020220, 0x1514b: 0x40020420,
-	0x1514c: 0x40020620, 0x1514d: 0x40020820, 0x1514e: 0xa0000000, 0x1514f: 0xa0000000,
-	0x15150: 0xa0000000, 0x15151: 0xa0000000, 0x15152: 0xa0000000, 0x15153: 0xa0000000,
-	0x15154: 0xa0000000, 0x15155: 0xa0000000, 0x15156: 0xa0000000, 0x15157: 0xa0000000,
-	0x15158: 0xa0000000, 0x15159: 0xa0000000, 0x1515a: 0xa0000000, 0x1515b: 0xa0000000,
-	0x1515c: 0xa0000000, 0x1515d: 0xa0000000, 0x1515e: 0xa0000000, 0x1515f: 0xa0000000,
-	0x15160: 0x40021220, 0x15161: 0x4002ba20, 0x15162: 0x4003e020, 0x15163: 0x4004ea20,
-	0x15164: 0x4027de20, 0x15165: 0x4004ec20, 0x15166: 0x4004e620, 0x15167: 0x4003d220,
-	0x15168: 0x4003f420, 0x15169: 0x4003f620, 0x1516a: 0x4004d820, 0x1516b: 0x40093820,
-	0x1516c: 0x40024020, 0x1516d: 0x40021a20, 0x1516e: 0x4002e420, 0x1516f: 0x4004e220,
-	0x15170: 0x4029cc20, 0x15171: 0x4029ce20, 0x15172: 0x4029d020, 0x15173: 0x4029d220,
-	0x15174: 0x4029d420, 0x15175: 0x4029d620, 0x15176: 0x4029d820, 0x15177: 0x4029da20,
-	0x15178: 0x4029dc20, 0x15179: 0x4029de20, 0x1517a: 0x40026c20, 0x1517b: 0x40026220,
-	0x1517c: 0x40094020, 0x1517d: 0x40094220, 0x1517e: 0x40094420, 0x1517f: 0x4002c420,
-	// Block 0x546, offset 0x15180
-	0x15180: 0x4004d620, 0x15181: 0xcaa00be1, 0x15182: 0x002c0a88, 0x15183: 0xc3350991,
-	0x15184: 0x002c6288, 0x15185: 0xcaa53c31, 0x15186: 0x002d0888, 0x15187: 0x002d2288,
-	0x15188: 0x002d6888, 0x15189: 0xcaaa0be1, 0x1518a: 0x002dcc88, 0x1518b: 0x002dfe88,
-	0x1518c: 0xc0030002, 0x1518d: 0x002e8288, 0x1518e: 0x002e9e88, 0x1518f: 0x002ee288,
-	0x15190: 0x002f2c88, 0x15191: 0x002f5688, 0x15192: 0x002f7a88, 0x15193: 0xc3430991,
-	0x15194: 0x00302c88, 0x15195: 0xcaaf3c61, 0x15196: 0x0030be88, 0x15197: 0x0030e288,
-	0x15198: 0x0030f688, 0x15199: 0x002d9ac3, 0x1519a: 0xc3630991, 0x1519b: 0x4003f820,
-	0x1519c: 0x4004e420, 0x1519d: 0x4003fa20, 0x1519e: 0x40062420, 0x1519f: 0x40021620,
-	0x151a0: 0x40061e20, 0x151a1: 0xca9e0be1, 0x151a2: 0x402c0a20, 0x151a3: 0xc3330991,
-	0x151a4: 0x402c6220, 0x151a5: 0xcaa23c31, 0x151a6: 0x402d0820, 0x151a7: 0x402d2220,
-	0x151a8: 0x402d6820, 0x151a9: 0xcaa80be1, 0x151aa: 0x402dcc20, 0x151ab: 0x402dfe20,
-	0x151ac: 0xc0000002, 0x151ad: 0x402e8220, 0x151ae: 0x402e9e20, 0x151af: 0x402ee220,
-	0x151b0: 0x402f2c20, 0x151b1: 0x402f5620, 0x151b2: 0x402f7a20, 0x151b3: 0xc3410991,
-	0x151b4: 0x40302c20, 0x151b5: 0xcaac3c61, 0x151b6: 0x4030be20, 0x151b7: 0x4030e220,
-	0x151b8: 0x4030f620, 0x151b9: 0x402d9a22, 0x151ba: 0xc3610991, 0x151bb: 0x4003fc20,
-	0x151bc: 0x40094820, 0x151bd: 0x4003fe20, 0x151be: 0x40094c20, 0x151bf: 0xa0000000,
-	// Block 0x547, offset 0x151c0
-	0x151c0: 0xe00008f5, 0x151c1: 0xe00008ef, 0x151c2: 0xe0000921, 0x151c3: 0xe0000969,
-	0x151c4: 0xe000095b, 0x151c5: 0xe000094d, 0x151c6: 0xe00009dd, 0x151c7: 0xe0000a53,
-	0x151c8: 0xe0000ae8, 0x151c9: 0xe0000ae2, 0x151ca: 0xe0000af4, 0x151cb: 0xe0000b20,
-	0x151cc: 0xe0000c2b, 0x151cd: 0xe0000c25, 0x151ce: 0xe0000c37, 0x151cf: 0xe0000c43,
-	0x151d0: 0xe0000ab3, 0x151d1: 0xe0000d63, 0x151d2: 0xe0000d9a, 0x151d3: 0xe0000d94,
-	0x151d4: 0xe0000da6, 0x151d5: 0xe0000de6, 0x151d6: 0xe0000dd2, 0x151d7: 0x40093e20,
-	0x151d8: 0xe0000e12, 0x151d9: 0xe0000fe1, 0x151da: 0xe0000fdb, 0x151db: 0xe0000fed,
-	0x151dc: 0xe0000fff, 0x151dd: 0xe000a555, 0x151de: 0x00318888, 0x151df: 0xe0000f7b,
-	0x151e0: 0xe00008f2, 0x151e1: 0xe00008ec, 0x151e2: 0xe000091e, 0x151e3: 0xe0000966,
-	0x151e4: 0xe0000958, 0x151e5: 0xe000094a, 0x151e6: 0xe00009d5, 0x151e7: 0xe0000a4d,
-	0x151e8: 0xe0000ae5, 0x151e9: 0xe0000adf, 0x151ea: 0xe0000af1, 0x151eb: 0xe0000b1d,
-	0x151ec: 0xe0000c28, 0x151ed: 0xe0000c22, 0x151ee: 0xe0000c34, 0x151ef: 0xe0000c40,
-	0x151f0: 0xe0000aad, 0x151f1: 0xe0000d60, 0x151f2: 0xe0000d97, 0x151f3: 0xe0000d91,
-	0x151f4: 0xe0000da3, 0x151f5: 0xe0000de3, 0x151f6: 0xe0000dcf, 0x151f7: 0x40093c20,
-	0x151f8: 0xe0000e0f, 0x151f9: 0xe0000fde, 0x151fa: 0xe0000fd8, 0x151fb: 0xe0000fea,
-	0x151fc: 0xe0000ffc, 0x151fd: 0xe000a552, 0x151fe: 0x40318820, 0x151ff: 0xe000a567,
-	// Block 0x548, offset 0x15200
-	0x15200: 0xe0000983, 0x15201: 0xe0000980, 0x15202: 0xe00008fb, 0x15203: 0xe00008f8,
-	0x15204: 0x002bdea3, 0x15205: 0x402bde21, 0x15206: 0xe0000a38, 0x15207: 0xe0000a35,
-	0x15208: 0xe0000a3e, 0x15209: 0xe0000a3b, 0x1520a: 0xe0000a4a, 0x1520b: 0xe0000a47,
-	0x1520c: 0x002c3c83, 0x1520d: 0x402c3c20, 0x1520e: 0xe0000a86, 0x1520f: 0xe0000a83,
-	0x15210: 0xe0000aaa, 0x15211: 0xe0000aa7, 0x15212: 0xe0000b46, 0x15213: 0xe0000b43,
-	0x15214: 0xe0000aee, 0x15215: 0xe0000aeb, 0x15216: 0x002c98c3, 0x15217: 0x402c9822,
-	0x15218: 0x002c98a3, 0x15219: 0x402c9821, 0x1521a: 0xe0000b1a, 0x1521b: 0xe0000b17,
-	0x1521c: 0xe0000bb8, 0x1521d: 0xe0000bb5, 0x1521e: 0xe0000bb2, 0x1521f: 0xe0000baf,
-	0x15220: 0xe0000bc4, 0x15221: 0xe0000bc1, 0x15222: 0xe0000bca, 0x15223: 0xe0000bc7,
-	0x15224: 0xe0000bee, 0x15225: 0xe0000beb, 0x15226: 0xe0000c1b, 0x15227: 0xe0000c18,
-	0x15228: 0xe0000c51, 0x15229: 0xe0000c4e, 0x1522a: 0xe0000c60, 0x1522b: 0xe0000c5d,
-	0x1522c: 0xe0000c31, 0x1522d: 0xe0000c2e, 0x1522e: 0x002d9aa3, 0x1522f: 0x402d9a21,
-	0x15230: 0xe0000c54, 0x15231: 0x402da220, 0x15232: 0xf0000a0a, 0x15233: 0xf0000404,
-	0x15234: 0xe0000c8a, 0x15235: 0xe0000c87, 0x15236: 0xe0000c9f, 0x15237: 0xe0000c9c,
-	0x15238: 0x402f7220, 0x15239: 0xe0000ccc, 0x1523a: 0xe0000cc9, 0x1523b: 0xe0000cd8,
-	0x1523c: 0xe0000cd5, 0x1523d: 0xe0000cd2, 0x1523e: 0xe0000ccf, 0x1523f: 0xe0000d04,
-	// Block 0x549, offset 0x15240
-	0x15240: 0xe0000cfe, 0x15241: 0xe0000cf8, 0x15242: 0xe0000cf5, 0x15243: 0xe0000d51,
-	0x15244: 0xe0000d4e, 0x15245: 0xe0000d6f, 0x15246: 0xe0000d6c, 0x15247: 0xe0000d5d,
-	0x15248: 0xe0000d5a, 0x15249: 0xf0000404, 0x1524a: 0x002eda88, 0x1524b: 0x402eda20,
-	0x1524c: 0xe0000e2e, 0x1524d: 0xe0000e2b, 0x1524e: 0xe0000da0, 0x1524f: 0xe0000d9d,
-	0x15250: 0xe0000de0, 0x15251: 0xe0000ddd, 0x15252: 0xe0000e93, 0x15253: 0xe0000e8f,
-	0x15254: 0xe0000eca, 0x15255: 0xe0000ec7, 0x15256: 0xe0000edc, 0x15257: 0xe0000ed9,
-	0x15258: 0xe0000ed0, 0x15259: 0xe0000ecd, 0x1525a: 0xe0000f1f, 0x1525b: 0xe0000f1c,
-	0x1525c: 0xe0000f2d, 0x1525d: 0xe0000f2a, 0x1525e: 0xe0000f47, 0x1525f: 0xe0000f44,
-	0x15260: 0x002fe883, 0x15261: 0x402fe820, 0x15262: 0xe0000f99, 0x15263: 0xe0000f96,
-	0x15264: 0xe0000f8a, 0x15265: 0xe0000f87, 0x15266: 0x00303688, 0x15267: 0x40303620,
-	0x15268: 0xe000102b, 0x15269: 0xe0001028, 0x1526a: 0x00306cc3, 0x1526b: 0x40306c22,
-	0x1526c: 0xe0000fe7, 0x1526d: 0xe0000fe4, 0x1526e: 0xe0000ff9, 0x1526f: 0xe0000ff6,
-	0x15270: 0xe0001025, 0x15271: 0xe0001022, 0x15272: 0x00306ca3, 0x15273: 0x40306c21,
-	0x15274: 0xe00010d8, 0x15275: 0xe00010d5, 0x15276: 0xe000a561, 0x15277: 0xe000a55e,
-	0x15278: 0xe000a56a, 0x15279: 0xe000113b, 0x1527a: 0xe0001138, 0x1527b: 0xe000114d,
-	0x1527c: 0xe000114a, 0x1527d: 0x00312c83, 0x1527e: 0x40312c20, 0x1527f: 0xe0000f64,
-	// Block 0x54a, offset 0x15280
-	0x15280: 0x40321220, 0x15281: 0x40321a20, 0x15282: 0x40322220, 0x15283: 0x40322a20,
-	0x15284: 0xe0000ad5, 0x15285: 0xe0000ad1, 0x15286: 0xe0000acd, 0x15287: 0xf0000a0a,
-	0x15288: 0xf000040a, 0x15289: 0xf0000404, 0x1528a: 0xf0000a0a, 0x1528b: 0xf000040a,
-	0x1528c: 0xf0000404, 0x1528d: 0xe0000947, 0x1528e: 0xe0000944, 0x1528f: 0xe0000c3d,
-	0x15290: 0xe0000c3a, 0x15291: 0xe0000dcc, 0x15292: 0xe0000dc9, 0x15293: 0xe0000ff3,
-	0x15294: 0xe0000ff0, 0x15295: 0xe000a58e, 0x15296: 0xe000a58b, 0x15297: 0xe0001006,
-	0x15298: 0xe0001002, 0x15299: 0xe0001016, 0x1529a: 0xe0001012, 0x1529b: 0xe000100e,
-	0x1529c: 0xe000100a, 0x1529d: 0x402cae20, 0x1529e: 0xe0000962, 0x1529f: 0xe000095e,
-	0x152a0: 0xe0000976, 0x152a1: 0xe0000972, 0x152a2: 0xe00009f4, 0x152a3: 0xe00009ef,
-	0x152a4: 0x002d3a88, 0x152a5: 0x402d3a20, 0x152a6: 0xe0000bbe, 0x152a7: 0xe0000bbb,
-	0x152a8: 0xe0000c99, 0x152a9: 0xe0000c96, 0x152aa: 0xe0000e20, 0x152ab: 0xe0000e1d,
-	0x152ac: 0xe0000e27, 0x152ad: 0xe0000e23, 0x152ae: 0xe0001162, 0x152af: 0xe000115f,
-	0x152b0: 0xe0000c8d, 0x152b1: 0xf0000a0a, 0x152b2: 0xf000040a, 0x152b3: 0xf0000404,
-	0x152b4: 0xe0000bac, 0x152b5: 0xe0000ba9, 0x152b6: 0x002d7888, 0x152b7: 0x00319488,
-	0x152b8: 0xe0000d57, 0x152b9: 0xe0000d54, 0x152ba: 0xe0000954, 0x152bb: 0xe0000950,
-	0x152bc: 0xe00009ea, 0x152bd: 0xe00009e5, 0x152be: 0xe0000e19, 0x152bf: 0xe0000e15,
-	// Block 0x54b, offset 0x152c0
-	0x152c0: 0xe000098f, 0x152c1: 0xe000098c, 0x152c2: 0xe0000995, 0x152c3: 0xe0000992,
-	0x152c4: 0xe0000b62, 0x152c5: 0xe0000b5f, 0x152c6: 0xe0000b68, 0x152c7: 0xe0000b65,
-	0x152c8: 0xe0000c6c, 0x152c9: 0xe0000c69, 0x152ca: 0xe0000c72, 0x152cb: 0xe0000c6f,
-	0x152cc: 0xe0000e4a, 0x152cd: 0xe0000e47, 0x152ce: 0xe0000e50, 0x152cf: 0xe0000e4d,
-	0x152d0: 0xe0000ee8, 0x152d1: 0xe0000ee5, 0x152d2: 0xe0000eee, 0x152d3: 0xe0000eeb,
-	0x152d4: 0xe0001053, 0x152d5: 0xe0001050, 0x152d6: 0xe0001059, 0x152d7: 0xe0001056,
-	0x152d8: 0xe0000f61, 0x152d9: 0xe0000f5e, 0x152da: 0xe0000fa5, 0x152db: 0xe0000fa2,
-	0x152dc: 0x00312288, 0x152dd: 0x40312220, 0x152de: 0xe0000bf4, 0x152df: 0xe0000bf1,
-	0x152e0: 0x002ebc88, 0x152e1: 0x402c8c20, 0x152e2: 0x002f2288, 0x152e3: 0x402f2220,
-	0x152e4: 0x00314088, 0x152e5: 0x40314020, 0x152e6: 0xe000096f, 0x152e7: 0xe000096c,
-	0x152e8: 0xe0000b32, 0x152e9: 0xe0000b2f, 0x152ea: 0xe0000dd9, 0x152eb: 0xe0000dd5,
-	0x152ec: 0xe0000dfd, 0x152ed: 0xe0000df9, 0x152ee: 0xe0000e04, 0x152ef: 0xe0000e01,
-	0x152f0: 0xe0000e0b, 0x152f1: 0xe0000e07, 0x152f2: 0xe000a57c, 0x152f3: 0xe000a579,
-	0x152f4: 0x402e5e20, 0x152f5: 0x402ed020, 0x152f6: 0x40305a20, 0x152f7: 0x402dd420,
-	0x152f8: 0xe0000abf, 0x152f9: 0xe0000ec4, 0x152fa: 0x002be888, 0x152fb: 0x002c4488,
-	0x152fc: 0x402c4420, 0x152fd: 0x002e3888, 0x152fe: 0x00303e88, 0x152ff: 0x402ffc20,
-	// Block 0x54c, offset 0x15300
-	0x15300: 0xae603502, 0x15301: 0xae603202, 0x15302: 0xae603c02, 0x15303: 0xae604e02,
-	0x15304: 0xae605b02, 0x15305: 0xae606302, 0x15306: 0xae603702, 0x15307: 0xca9a3c01,
-	0x15308: 0xae604702, 0x15309: 0xae606402, 0x1530a: 0xae604302, 0x1530b: 0xae604d02,
-	0x1530c: 0xae604102, 0x1530d: 0xae605f02, 0x1530e: 0xae605f02, 0x1530f: 0xae606502,
-	0x15310: 0xae606602, 0x15311: 0xae606702, 0x15312: 0xae605f02, 0x15313: 0xae602202,
-	0x15314: 0xae602a02, 0x15315: 0xae805f02, 0x15316: 0xadc06002, 0x15317: 0xadc06002,
-	0x15318: 0xadc06002, 0x15319: 0xadc06002, 0x1531a: 0xae805f02, 0x1531b: 0xad806802,
-	0x1531c: 0xadc06002, 0x1531d: 0xadc06002, 0x1531e: 0xadc06002, 0x1531f: 0xadc06002,
-	0x15320: 0xadc06002, 0x15321: 0xaca06e02, 0x15322: 0xaca06f02, 0x15323: 0xadc07002,
-	0x15324: 0xadc07502, 0x15325: 0xadc07602, 0x15326: 0xadc07702, 0x15327: 0xaca05602,
-	0x15328: 0xaca05902, 0x15329: 0xadc06002, 0x1532a: 0xadc06002, 0x1532b: 0xadc06002,
-	0x1532c: 0xadc06002, 0x1532d: 0xadc07802, 0x1532e: 0xadc07902, 0x1532f: 0xadc06002,
-	0x15330: 0xadc07a02, 0x15331: 0xadc07b02, 0x15332: 0xadc02102, 0x15333: 0xadc06002,
-	0x15334: 0xa0107c02, 0x15335: 0xa0107d02, 0x15336: 0xa0106102, 0x15337: 0xa0106102,
-	0x15338: 0xa0105402, 0x15339: 0xadc07e02, 0x1533a: 0xadc06002, 0x1533b: 0xadc06002,
-	0x1533c: 0xadc06002, 0x1533d: 0xae605f02, 0x1533e: 0xae605f02, 0x1533f: 0xae605f02,
-	// Block 0x54d, offset 0x15340
-	0x15340: 0xe0000d24, 0x15341: 0xe0000d21, 0x15342: 0xe0000d2a, 0x15343: 0xe0000d27,
-	0x15344: 0xe0000d69, 0x15345: 0xe0000d66, 0x15346: 0xe0000d7b, 0x15347: 0xe0000d78,
-	0x15348: 0xe0000d87, 0x15349: 0xe0000d84, 0x1534a: 0xe0000d81, 0x1534b: 0xe0000d7e,
-	0x1534c: 0xe0000ded, 0x1534d: 0xe0000de9, 0x1534e: 0xe0000df5, 0x1534f: 0xe0000df1,
-	0x15350: 0xe0000e3d, 0x15351: 0xe0000e39, 0x15352: 0xe0000e35, 0x15353: 0xe0000e31,
-	0x15354: 0xe0000ea7, 0x15355: 0xe0000ea4, 0x15356: 0xe0000ead, 0x15357: 0xe0000eaa,
-	0x15358: 0xe0000ed6, 0x15359: 0xe0000ed3, 0x1535a: 0xe0000ef4, 0x1535b: 0xe0000ef1,
-	0x1535c: 0xe0000efb, 0x1535d: 0xe0000ef7, 0x1535e: 0xe0000f02, 0x1535f: 0xe0000eff,
-	0x15360: 0xe0000f41, 0x15361: 0xe0000f3e, 0x15362: 0xe0000f53, 0x15363: 0xe0000f50,
-	0x15364: 0xe0000f26, 0x15365: 0xe0000f22, 0x15366: 0xe00025c3, 0x15367: 0xe00025c0,
-	0x15368: 0xe0000f5a, 0x15369: 0xe0000f56, 0x1536a: 0xe0000f93, 0x1536b: 0xe0000f90,
-	0x1536c: 0xe0000f9f, 0x1536d: 0xe0000f9c, 0x1536e: 0xe0000fb1, 0x1536f: 0xe0000fae,
-	0x15370: 0xe0000fab, 0x15371: 0xe0000fa8, 0x15372: 0xe0001093, 0x15373: 0xe0001090,
-	0x15374: 0xe000109f, 0x15375: 0xe000109c, 0x15376: 0xe0001099, 0x15377: 0xe0001096,
-	0x15378: 0xe0001032, 0x15379: 0xe000102e, 0x1537a: 0xe000a58e, 0x1537b: 0xe000a58b,
-	0x1537c: 0xe00010a9, 0x1537d: 0xe00010a6, 0x1537e: 0xe00010af, 0x1537f: 0xe00010ac,
-	// Block 0x54e, offset 0x15380
-	0x15380: 0xe00010d2, 0x15381: 0xe00010cf, 0x15382: 0xe00010cc, 0x15383: 0xe00010c9,
-	0x15384: 0xe00010e1, 0x15385: 0xe00010de, 0x15386: 0xe00010e7, 0x15387: 0xe00010e4,
-	0x15388: 0xe00010ed, 0x15389: 0xe00010ea, 0x1538a: 0xe00010fc, 0x1538b: 0xe00010f9,
-	0x1538c: 0xe00010f6, 0x1538d: 0xe00010f3, 0x1538e: 0xe000a576, 0x1538f: 0xe000a573,
-	0x15390: 0xe0001141, 0x15391: 0xe000113e, 0x15392: 0xe0001153, 0x15393: 0xe0001150,
-	0x15394: 0xe0001159, 0x15395: 0xe0001156, 0x15396: 0xe0000c15, 0x15397: 0xe0000f8d,
-	0x15398: 0xe00010db, 0x15399: 0xe000a564, 0x1539a: 0xf0000404, 0x1539b: 0xe0000f70,
-	0x1539c: 0x40300420, 0x1539d: 0x40300620, 0x1539e: 0xe0000f7f, 0x1539f: 0x402c9620,
-	0x153a0: 0xe000099b, 0x153a1: 0xe0000998, 0x153a2: 0xe0000989, 0x153a3: 0xe0000986,
-	0x153a4: 0xe0000928, 0x153a5: 0xe0000924, 0x153a6: 0xe0000930, 0x153a7: 0xe000092c,
-	0x153a8: 0xe0000940, 0x153a9: 0xe000093c, 0x153aa: 0xe0000938, 0x153ab: 0xe0000934,
-	0x153ac: 0xe00009aa, 0x153ad: 0xe00009a6, 0x153ae: 0xe0000902, 0x153af: 0xe00008fe,
-	0x153b0: 0xe000090a, 0x153b1: 0xe0000906, 0x153b2: 0xe000091a, 0x153b3: 0xe0000916,
-	0x153b4: 0xe0000912, 0x153b5: 0xe000090e, 0x153b6: 0xe00009a2, 0x153b7: 0xe000099e,
-	0x153b8: 0xe0000b6e, 0x153b9: 0xe0000b6b, 0x153ba: 0xe0000b5c, 0x153bb: 0xe0000b59,
-	0x153bc: 0xe0000b26, 0x153bd: 0xe0000b23, 0x153be: 0xe0000afb, 0x153bf: 0xe0000af7,
-	// Block 0x54f, offset 0x153c0
-	0x153c0: 0xe0000b03, 0x153c1: 0xe0000aff, 0x153c2: 0xe0000b13, 0x153c3: 0xe0000b0f,
-	0x153c4: 0xe0000b0b, 0x153c5: 0xe0000b07, 0x153c6: 0xe0000b75, 0x153c7: 0xe0000b71,
-	0x153c8: 0xe0000c66, 0x153c9: 0xe0000c63, 0x153ca: 0xe0000c78, 0x153cb: 0xe0000c75,
-	0x153cc: 0xe0000e84, 0x153cd: 0xe0000e81, 0x153ce: 0xe0000e44, 0x153cf: 0xe0000e41,
-	0x153d0: 0xe0000dad, 0x153d1: 0xe0000da9, 0x153d2: 0xe0000db5, 0x153d3: 0xe0000db1,
-	0x153d4: 0xe0000dc5, 0x153d5: 0xe0000dc1, 0x153d6: 0xe0000dbd, 0x153d7: 0xe0000db9,
-	0x153d8: 0xe0000e8b, 0x153d9: 0xe0000e87, 0x153da: 0xe0000e5d, 0x153db: 0xe0000e59,
-	0x153dc: 0xe0000e65, 0x153dd: 0xe0000e61, 0x153de: 0xe0000e75, 0x153df: 0xe0000e71,
-	0x153e0: 0xe0000e6d, 0x153e1: 0xe0000e69, 0x153e2: 0xe0000e7d, 0x153e3: 0xe0000e79,
-	0x153e4: 0xe000108d, 0x153e5: 0xe000108a, 0x153e6: 0xe000104d, 0x153e7: 0xe000104a,
-	0x153e8: 0xe0001066, 0x153e9: 0xe0001062, 0x153ea: 0xe000106e, 0x153eb: 0xe000106a,
-	0x153ec: 0xe000107e, 0x153ed: 0xe000107a, 0x153ee: 0xe0001076, 0x153ef: 0xe0001072,
-	0x153f0: 0xe0001086, 0x153f1: 0xe0001082, 0x153f2: 0xe000a55b, 0x153f3: 0xe000a558,
-	0x153f4: 0xe000a588, 0x153f5: 0xe000a585, 0x153f6: 0xe000a582, 0x153f7: 0xe000a57f,
-	0x153f8: 0xe000a570, 0x153f9: 0xe000a56d, 0x153fa: 0xe0000d0a, 0x153fb: 0xe0000d07,
-	0x153fc: 0x0030d888, 0x153fd: 0x4030d820, 0x153fe: 0x00312088, 0x153ff: 0x40312020,
-	// Block 0x550, offset 0x15400
-	0x15400: 0xe0000024, 0x15401: 0xe0000029, 0x15402: 0xe000002e, 0x15403: 0xe0000033,
-	0x15404: 0xe0000038, 0x15405: 0xe000003d, 0x15406: 0xe0000042, 0x15407: 0xe0000047,
-	0x15408: 0xf0001f04, 0x15409: 0xf0001f04, 0x1540a: 0xf0001f04, 0x1540b: 0xf0001f04,
-	0x1540c: 0xf0001f04, 0x1540d: 0xf0001f04, 0x1540e: 0xf0001f04, 0x1540f: 0xf0001f04,
-	0x15410: 0xf0001f04, 0x15411: 0xf0000404, 0x15412: 0xf0000404, 0x15413: 0xf0000404,
-	0x15414: 0xf0000404, 0x15415: 0xf0000404, 0x15416: 0xf0000404, 0x15417: 0xf0000404,
-	0x15418: 0xf0000404, 0x15419: 0xf0000404, 0x1541a: 0xf0000404, 0x1541b: 0xf0000404,
-	0x1541c: 0xf0000404, 0x1541d: 0xf0000404, 0x1541e: 0xf0000404, 0x1541f: 0xf0000404,
-	0x15420: 0xf0000404, 0x15421: 0xf0000404, 0x15422: 0xf0000404, 0x15423: 0xf0000404,
-	0x15424: 0xf0000404, 0x15425: 0xf0000404, 0x15426: 0xf0000404, 0x15427: 0xf0000404,
-	0x15428: 0xf0000404, 0x15429: 0xf0000404, 0x1542a: 0xf0000404, 0x1542b: 0xf0000404,
-	0x1542c: 0xf0000404, 0x1542d: 0xf0000404, 0x1542e: 0xf0000404, 0x1542f: 0xf0000404,
-	0x15430: 0xf0000404, 0x15431: 0xf0000404, 0x15432: 0xf0000404, 0x15433: 0xf0000404,
-	0x15434: 0xe0002884, 0x15435: 0xf0000404, 0x15436: 0x002bde8c, 0x15437: 0x002c0a8c,
-	0x15438: 0x002c3a8c, 0x15439: 0x002c628c, 0x1543a: 0x002c988c, 0x1543b: 0x002d088c,
-	0x1543c: 0x002d228c, 0x1543d: 0x002d688c, 0x1543e: 0x002d9a8c, 0x1543f: 0x002dcc8c,
-	// Block 0x551, offset 0x15440
-	0x15440: 0xf0001d1c, 0x15441: 0xf0001d1d, 0x15442: 0xe00009b7, 0x15443: 0xf0001c1d,
-	0x15444: 0xf0001c1c, 0x15445: 0xf0001c1c, 0x15446: 0xe0000a66, 0x15447: 0xe0000a7a,
-	0x15448: 0xf0001d1c, 0x15449: 0xe0002ff7, 0x1544a: 0xf0001c1c, 0x1544b: 0xf0001d1d,
-	0x1544c: 0xf0001c1c, 0x1544d: 0xf0001d1d, 0x1544e: 0xf0001d1d, 0x1544f: 0xf0001c1c,
-	0x15450: 0xf0001c1c, 0x15451: 0xf0001c1c, 0x15452: 0xe0000d0d, 0x15453: 0xf0001c1c,
-	0x15454: 0xf0001c1c, 0x15455: 0xe0000d3a, 0x15456: 0xe0000d46, 0x15457: 0xf0001d1d,
-	0x15458: 0xe0000eb0, 0x15459: 0xe0000eb8, 0x1545a: 0xf0001d1d, 0x1545b: 0xf0001c1c,
-	0x1545c: 0xf0001c1d, 0x1545d: 0xf0001c1d, 0x1545e: 0xe00010b2, 0x1545f: 0xe00009c8,
-	0x15460: 0xf0001f04, 0x15461: 0xf0001f04, 0x15462: 0xf0001f04, 0x15463: 0xf0001f04,
-	0x15464: 0xf0001f04, 0x15465: 0xf0001f04, 0x15466: 0xf0001f04, 0x15467: 0xf0001f04,
-	0x15468: 0xf0001f04, 0x15469: 0xf0000404, 0x1546a: 0xf0000404, 0x1546b: 0xf0000404,
-	0x1546c: 0xf0000404, 0x1546d: 0xf0000404, 0x1546e: 0xf0000404, 0x1546f: 0xf0000404,
-	0x15470: 0xf0000404, 0x15471: 0xf0000404, 0x15472: 0xf0000404, 0x15473: 0xf0000404,
-	0x15474: 0xf0000404, 0x15475: 0xf0000404, 0x15476: 0xf0000404, 0x15477: 0xf0000404,
-	0x15478: 0xf0000404, 0x15479: 0xf0000404, 0x1547a: 0xf0000404, 0x1547b: 0xf0000404,
-	0x1547c: 0xf0000404, 0x1547d: 0xf0000404, 0x1547e: 0xf0000404, 0x1547f: 0xe0000bdf,
-	// Block 0x552, offset 0x15480
-	0x15480: 0xf0001f04, 0x15481: 0xf0001f04, 0x15482: 0xf0001f04, 0x15483: 0xf0001f04,
-	0x15484: 0xf0001f04, 0x15485: 0xf0001f04, 0x15486: 0xf0001f04, 0x15487: 0xf0001f04,
-	0x15488: 0xf0001f04, 0x15489: 0xf0001f04, 0x1548a: 0xf0001f04,
-	0x15490: 0xf0000a04, 0x15491: 0xf0000a04, 0x15492: 0xf0000a04, 0x15493: 0xf0000a04,
-	0x15494: 0xf0000a04, 0x15495: 0xf0000a04, 0x15496: 0xf0000a04, 0x15497: 0xf0000a04,
-	0x15498: 0xf0000a04, 0x15499: 0xf0000a04, 0x1549a: 0xf0000a04, 0x1549b: 0xf0000a04,
-	0x1549c: 0xf0000a04, 0x1549d: 0xf0000a04, 0x1549e: 0xf0000a04, 0x1549f: 0xf0000a04,
-	0x154a0: 0xf0000a04, 0x154a1: 0xf0000a04, 0x154a2: 0xf0000a04, 0x154a3: 0xf0000a04,
-	0x154a4: 0xf0000a04, 0x154a5: 0xf0000a04, 0x154a6: 0xf0000a04, 0x154a7: 0xf0000a04,
-	0x154a8: 0xe0002888, 0x154a9: 0xf0000a04, 0x154aa: 0xf0000a04, 0x154ab: 0x002c3a8c,
-	0x154ac: 0x002f7a8c, 0x154ad: 0xf0000c0c, 0x154ae: 0xf0000c0c,
-	0x154b0: 0x002bde9d, 0x154b1: 0x002c0a9d, 0x154b2: 0x002c3a9d, 0x154b3: 0x002c629d,
-	0x154b4: 0x002c989d, 0x154b5: 0x002d089d, 0x154b6: 0x002d229d, 0x154b7: 0x002d689d,
-	0x154b8: 0x002d9a9d, 0x154b9: 0x002dcc9d, 0x154ba: 0x002dfe9d, 0x154bb: 0x002e229d,
-	0x154bc: 0x002e829d, 0x154bd: 0x002e9e9d, 0x154be: 0x002ee29d, 0x154bf: 0x002f2c9d,
-	// Block 0x553, offset 0x154c0
-	0x154c0: 0xa0000000, 0x154c1: 0xa0000000, 0x154c2: 0xa0000000, 0x154c3: 0xa0000000,
-	0x154c4: 0xa0000000, 0x154c5: 0xa0000000, 0x154c6: 0xa0000000, 0x154c7: 0xa0000000,
-	0x154c8: 0xa0000000, 0x154c9: 0x40020020, 0x154ca: 0x40020220, 0x154cb: 0x40020420,
-	0x154cc: 0x40020620, 0x154cd: 0x40020820, 0x154ce: 0xa0000000, 0x154cf: 0xa0000000,
-	0x154d0: 0xa0000000, 0x154d1: 0xa0000000, 0x154d2: 0xa0000000, 0x154d3: 0xa0000000,
-	0x154d4: 0xa0000000, 0x154d5: 0xa0000000, 0x154d6: 0xa0000000, 0x154d7: 0xa0000000,
-	0x154d8: 0xa0000000, 0x154d9: 0xa0000000, 0x154da: 0xa0000000, 0x154db: 0xa0000000,
-	0x154dc: 0xa0000000, 0x154dd: 0xa0000000, 0x154de: 0xa0000000, 0x154df: 0xa0000000,
-	0x154e0: 0x40021220, 0x154e1: 0x4002ba20, 0x154e2: 0x4003e020, 0x154e3: 0x4004ea20,
-	0x154e4: 0x4027de20, 0x154e5: 0x4004ec20, 0x154e6: 0x4004e620, 0x154e7: 0x4003d220,
-	0x154e8: 0x4003f420, 0x154e9: 0x4003f620, 0x154ea: 0x4004d820, 0x154eb: 0x40093820,
-	0x154ec: 0x40024020, 0x154ed: 0x40021a20, 0x154ee: 0x4002e420, 0x154ef: 0x4004e220,
-	0x154f0: 0x4029cc20, 0x154f1: 0x4029ce20, 0x154f2: 0x4029d020, 0x154f3: 0x4029d220,
-	0x154f4: 0x4029d420, 0x154f5: 0x4029d620, 0x154f6: 0x4029d820, 0x154f7: 0x4029da20,
-	0x154f8: 0x4029dc20, 0x154f9: 0x4029de20, 0x154fa: 0x40026c20, 0x154fb: 0x40026220,
-	0x154fc: 0x40094020, 0x154fd: 0x40094220, 0x154fe: 0x40094420, 0x154ff: 0x4002c420,
-	// Block 0x554, offset 0x15500
-	0x15500: 0x4004d620, 0x15501: 0x002bde88, 0x15502: 0x002c0a88, 0x15503: 0xcab40991,
-	0x15504: 0x002c6288, 0x15505: 0x002c9888, 0x15506: 0x002d0888, 0x15507: 0xcab80911,
-	0x15508: 0x002d6888, 0x15509: 0x002d9a88, 0x1550a: 0x002dcc88, 0x1550b: 0xcabc0911,
-	0x1550c: 0xcac23c93, 0x1550d: 0x002e8288, 0x1550e: 0xcac80911, 0x1550f: 0x002ee288,
-	0x15510: 0x002f2c88, 0x15511: 0x002f5688, 0x15512: 0xcacc0911, 0x15513: 0xcad00991,
-	0x15514: 0x00302c88, 0x15515: 0x00306c88, 0x15516: 0x0030be88, 0x15517: 0x0030e288,
-	0x15518: 0x0030f688, 0x15519: 0x00310088, 0x1551a: 0xcad40991, 0x1551b: 0x4003f820,
-	0x1551c: 0x4004e420, 0x1551d: 0x4003fa20, 0x1551e: 0x40062420, 0x1551f: 0x40021620,
-	0x15520: 0x40061e20, 0x15521: 0x402bde20, 0x15522: 0x402c0a20, 0x15523: 0xcab20991,
-	0x15524: 0x402c6220, 0x15525: 0x402c9820, 0x15526: 0x402d0820, 0x15527: 0xcab60911,
-	0x15528: 0x402d6820, 0x15529: 0x402d9a20, 0x1552a: 0x402dcc20, 0x1552b: 0xcaba0911,
-	0x1552c: 0xcabe3c93, 0x1552d: 0x402e8220, 0x1552e: 0xcac60911, 0x1552f: 0x402ee220,
-	0x15530: 0x402f2c20, 0x15531: 0x402f5620, 0x15532: 0xcaca0911, 0x15533: 0xcace0991,
-	0x15534: 0x40302c20, 0x15535: 0x40306c20, 0x15536: 0x4030be20, 0x15537: 0x4030e220,
-	0x15538: 0x4030f620, 0x15539: 0x40310020, 0x1553a: 0xcad20991, 0x1553b: 0x4003fc20,
-	0x1553c: 0x40094820, 0x1553d: 0x4003fe20, 0x1553e: 0x40094c20, 0x1553f: 0xa0000000,
-	// Block 0x555, offset 0x15540
-	0x15540: 0xe0000983, 0x15541: 0xe0000980, 0x15542: 0xe00008fb, 0x15543: 0xe00008f8,
-	0x15544: 0xe000097d, 0x15545: 0xe000097a, 0x15546: 0xe0000a38, 0x15547: 0xe0000a35,
-	0x15548: 0xe0000a3e, 0x15549: 0xe0000a3b, 0x1554a: 0xe0000a4a, 0x1554b: 0xe0000a47,
-	0x1554c: 0x002c6083, 0x1554d: 0x402c6020, 0x1554e: 0xe0000a86, 0x1554f: 0xe0000a83,
-	0x15550: 0xe0000aaa, 0x15551: 0xe0000aa7, 0x15552: 0xe0000b46, 0x15553: 0xe0000b43,
-	0x15554: 0xe0000aee, 0x15555: 0xe0000aeb, 0x15556: 0xe0000b2c, 0x15557: 0xe0000b29,
-	0x15558: 0xe0000b40, 0x15559: 0xe0000b3d, 0x1555a: 0xe0000b1a, 0x1555b: 0xe0000b17,
-	0x1555c: 0xe0000bb8, 0x1555d: 0xe0000bb5, 0x1555e: 0xe0000bb2, 0x1555f: 0xe0000baf,
-	0x15560: 0xe0000bc4, 0x15561: 0xe0000bc1, 0x15562: 0x002d6683, 0x15563: 0x402d6620,
-	0x15564: 0xe0000bee, 0x15565: 0xe0000beb, 0x15566: 0xe0000c1b, 0x15567: 0xe0000c18,
-	0x15568: 0xe0000c51, 0x15569: 0xe0000c4e, 0x1556a: 0xe0000c60, 0x1556b: 0xe0000c5d,
-	0x1556c: 0xe0000c31, 0x1556d: 0xe0000c2e, 0x1556e: 0xe0000c5a, 0x1556f: 0xe0000c57,
-	0x15570: 0xe0000c54, 0x15571: 0x402da220, 0x15572: 0xf0000a0a, 0x15573: 0xf0000404,
-	0x15574: 0xe0000c8a, 0x15575: 0xe0000c87, 0x15576: 0x002e2083, 0x15577: 0x402e2020,
-	0x15578: 0x402f7220, 0x15579: 0xe0000ccc, 0x1557a: 0xe0000cc9, 0x1557b: 0x002e8083,
-	0x1557c: 0x402e8020, 0x1557d: 0xe0000cd2, 0x1557e: 0xe0000ccf, 0x1557f: 0xe0000d04,
-	// Block 0x556, offset 0x15580
-	0x15580: 0xe0000cfe, 0x15581: 0xe0000cf8, 0x15582: 0xe0000cf5, 0x15583: 0xe0000d51,
-	0x15584: 0xe0000d4e, 0x15585: 0x002ee083, 0x15586: 0x402ee020, 0x15587: 0xe0000d5d,
-	0x15588: 0xe0000d5a, 0x15589: 0xf0000404, 0x1558a: 0x002eda88, 0x1558b: 0x402eda20,
-	0x1558c: 0xe0000e2e, 0x1558d: 0xe0000e2b, 0x1558e: 0xe0000da0, 0x1558f: 0xe0000d9d,
-	0x15590: 0xe0000de0, 0x15591: 0xe0000ddd, 0x15592: 0xe0000e93, 0x15593: 0xe0000e8f,
-	0x15594: 0xe0000eca, 0x15595: 0xe0000ec7, 0x15596: 0x002fe483, 0x15597: 0x402fe420,
-	0x15598: 0xe0000ed0, 0x15599: 0xe0000ecd, 0x1559a: 0xe0000f1f, 0x1559b: 0xe0000f1c,
-	0x1559c: 0xe0000f2d, 0x1559d: 0xe0000f2a, 0x1559e: 0xe0000f47, 0x1559f: 0xe0000f44,
-	0x155a0: 0x00302a83, 0x155a1: 0x40302a20, 0x155a2: 0xe0000f99, 0x155a3: 0xe0000f96,
-	0x155a4: 0xe0000f8a, 0x155a5: 0xe0000f87, 0x155a6: 0x00303688, 0x155a7: 0x40303620,
-	0x155a8: 0xe000102b, 0x155a9: 0xe0001028, 0x155aa: 0xe000103f, 0x155ab: 0xe000103c,
-	0x155ac: 0xe0000fe7, 0x155ad: 0xe0000fe4, 0x155ae: 0xe0000ff9, 0x155af: 0xe0000ff6,
-	0x155b0: 0xe0001025, 0x155b1: 0xe0001022, 0x155b2: 0xe0001039, 0x155b3: 0xe0001036,
-	0x155b4: 0xe00010d8, 0x155b5: 0xe00010d5, 0x155b6: 0xe000110e, 0x155b7: 0xe000110b,
-	0x155b8: 0xe0001117, 0x155b9: 0xe000113b, 0x155ba: 0xe0001138, 0x155bb: 0xe000114d,
-	0x155bc: 0xe000114a, 0x155bd: 0x00316283, 0x155be: 0x40316220, 0x155bf: 0xe0000f64,
-	// Block 0x557, offset 0x155c0
-	0x155c0: 0xe0000d24, 0x155c1: 0xe0000d21, 0x155c2: 0xe0000d2a, 0x155c3: 0xe0000d27,
-	0x155c4: 0xe0000d69, 0x155c5: 0xe0000d66, 0x155c6: 0xe0000d7b, 0x155c7: 0xe0000d78,
-	0x155c8: 0xe0000d87, 0x155c9: 0xe0000d84, 0x155ca: 0xe0000d81, 0x155cb: 0xe0000d7e,
-	0x155cc: 0xe0000ded, 0x155cd: 0xe0000de9, 0x155ce: 0xe0000df5, 0x155cf: 0xe0000df1,
-	0x155d0: 0xe0000e3d, 0x155d1: 0xe0000e39, 0x155d2: 0xe0000e35, 0x155d3: 0xe0000e31,
-	0x155d4: 0xe0000ea7, 0x155d5: 0xe0000ea4, 0x155d6: 0xe0000ead, 0x155d7: 0xe0000eaa,
-	0x155d8: 0xe0000ed6, 0x155d9: 0xe0000ed3, 0x155da: 0xe0000ef4, 0x155db: 0xe0000ef1,
-	0x155dc: 0xe0000efb, 0x155dd: 0xe0000ef7, 0x155de: 0xe0000f02, 0x155df: 0xe0000eff,
-	0x155e0: 0xe0000f41, 0x155e1: 0xe0000f3e, 0x155e2: 0xe0000f53, 0x155e3: 0xe0000f50,
-	0x155e4: 0xe0000f26, 0x155e5: 0xe0000f22, 0x155e6: 0xe000a594, 0x155e7: 0xe000a591,
-	0x155e8: 0xe0000f5a, 0x155e9: 0xe0000f56, 0x155ea: 0xe0000f93, 0x155eb: 0xe0000f90,
-	0x155ec: 0xe0000f9f, 0x155ed: 0xe0000f9c, 0x155ee: 0xe0000fb1, 0x155ef: 0xe0000fae,
-	0x155f0: 0xe0000fab, 0x155f1: 0xe0000fa8, 0x155f2: 0xe0001093, 0x155f3: 0xe0001090,
-	0x155f4: 0xe000109f, 0x155f5: 0xe000109c, 0x155f6: 0xe0001099, 0x155f7: 0xe0001096,
-	0x155f8: 0xe0001032, 0x155f9: 0xe000102e, 0x155fa: 0xe0001046, 0x155fb: 0xe0001042,
-	0x155fc: 0xe00010a9, 0x155fd: 0xe00010a6, 0x155fe: 0xe00010af, 0x155ff: 0xe00010ac,
-	// Block 0x558, offset 0x15600
-	0x15602: 0xe000a5ac, 0x15603: 0xa000f402,
-	0x15605: 0x40440220, 0x15606: 0x40440420, 0x15607: 0x40440620,
-	0x15608: 0x40440820, 0x15609: 0x40440a20, 0x1560a: 0x40440c20, 0x1560b: 0x40440e20,
-	0x1560c: 0x40441220, 0x1560e: 0x40441620, 0x1560f: 0x40441820,
-	0x15610: 0x40441a20, 0x15612: 0x40441c20, 0x15613: 0x40441e20,
-	0x15614: 0x40442020, 0x15615: 0xcad63cf1, 0x15616: 0x40442420, 0x15617: 0x40442620,
-	0x15618: 0x40442820, 0x15619: 0x40442a20, 0x1561a: 0x40442c20, 0x1561b: 0x40442e20,
-	0x1561c: 0x40443020, 0x1561d: 0x40443220, 0x1561e: 0x40443420, 0x1561f: 0x40443620,
-	0x15620: 0x40443820, 0x15621: 0x40443a20, 0x15622: 0x40443c20, 0x15623: 0xcad83d51,
-	0x15624: 0x40444020, 0x15625: 0x40444220, 0x15626: 0x40444420, 0x15627: 0x40444620,
-	0x15628: 0xcadc3cf1, 0x15629: 0x40444a20, 0x1562a: 0x40444c20, 0x1562b: 0x40444e20,
-	0x1562c: 0x40445020, 0x1562d: 0x40445220, 0x1562e: 0x40445420, 0x1562f: 0x40445620,
-	0x15630: 0xcade3cf1, 0x15631: 0x40446a20, 0x15632: 0xcae03cf1, 0x15633: 0xcae23cf1,
-	0x15634: 0x40446820, 0x15635: 0x40445c20, 0x15636: 0x40445e20, 0x15637: 0x40446020,
-	0x15638: 0x40446220, 0x15639: 0x40446420, 0x1563a: 0x40446c20,
-	0x1563d: 0xa000f502, 0x1563e: 0x40447020, 0x1563f: 0x40447220,
-	// Block 0x559, offset 0x15640
-	0x15640: 0x40447420, 0x15641: 0x40447620, 0x15642: 0x40447820, 0x15643: 0x40447a20,
-	0x15644: 0x40447c20, 0x15646: 0xcae403b1, 0x15647: 0xc0760401,
-	0x15648: 0x40448620, 0x1564a: 0x40448820, 0x1564b: 0x40448a20,
-	0x1564c: 0x00448c83, 0x1564d: 0x82092248, 0x1564e: 0xe000186c,
-	0x15657: 0x40448c20,
-	0x15660: 0x40441020, 0x15661: 0x40441420, 0x15662: 0x40447e20, 0x15663: 0x40448020,
-	0x15666: 0xe0000185, 0x15667: 0xe0000216,
-	0x15668: 0xe0000331, 0x15669: 0xe000040b, 0x1566a: 0xe00004e0, 0x1566b: 0xe00005aa,
-	0x1566c: 0xe0000675, 0x1566d: 0xe000071d, 0x1566e: 0xe00007c9, 0x1566f: 0xe000086e,
-	0x15670: 0x40285a20, 0x15671: 0x40285c20, 0x15672: 0x40285e20, 0x15673: 0x40286020,
-	0x15674: 0x40286220, 0x15675: 0x40286420,
-	0x15679: 0x40074e20, 0x1567a: 0xe000a5a0, 0x1567b: 0xcada3dc1,
-	0x1567c: 0xe000a5b2, 0x1567d: 0xe000a5b8, 0x1567e: 0xe000a5be, 0x1567f: 0xe000a59a,
-	// Block 0x55a, offset 0x15680
-	0x15680: 0xa000f202, 0x15681: 0x403fba21, 0x15682: 0x403fba20, 0x15683: 0x403fbc20,
-	0x15684: 0x403fbc20, 0x15685: 0x403fbe20, 0x15686: 0x403fc020, 0x15687: 0x403fcc20,
-	0x15688: 0x403fce20, 0x15689: 0x403fd020, 0x1568a: 0x403fd220, 0x1568b: 0x403fd420,
-	0x1568c: 0x403fd820, 0x1568d: 0x403fdc20, 0x1568e: 0x403fde20, 0x1568f: 0x403fe020,
-	0x15690: 0x403fe220, 0x15691: 0x403fe420, 0x15692: 0x403fe620, 0x15693: 0x403fe820,
-	0x15694: 0x403fea20, 0x15695: 0xca983ba1, 0x15696: 0x403fee20, 0x15697: 0x403ff020,
-	0x15698: 0x403ff420, 0x15699: 0x403ff620, 0x1569a: 0x403ff820, 0x1569b: 0x403ffa20,
-	0x1569c: 0xcae73df1, 0x1569d: 0x40400220, 0x1569e: 0x40400420, 0x1569f: 0x40400620,
-	0x156a0: 0x40400820, 0x156a1: 0x40400a20, 0x156a2: 0x40400e20, 0x156a3: 0x40401020,
-	0x156a4: 0x40401220, 0x156a5: 0x40401420, 0x156a6: 0x40401620, 0x156a7: 0x40401820,
-	0x156a8: 0x40401a20, 0x156a9: 0xe0001830, 0x156aa: 0x40401c20, 0x156ab: 0x40401e20,
-	0x156ac: 0x40402020, 0x156ad: 0x40402420, 0x156ae: 0x40402620, 0x156af: 0x40402820,
-	0x156b0: 0x40402c20, 0x156b1: 0xe0001839, 0x156b2: 0x40402e20, 0x156b3: 0x40403c20,
-	0x156b4: 0xe000a54f, 0x156b5: 0x40403220, 0x156b6: 0x40403420, 0x156b7: 0x40403620,
-	0x156b8: 0x40403820, 0x156b9: 0x40403a20, 0x156ba: 0x40404c20, 0x156bb: 0x40404e20,
-	0x156bc: 0xa070f102, 0x156bd: 0x40403c20, 0x156be: 0x40404a20, 0x156bf: 0x40405620,
-	// Block 0x55b, offset 0x156c0
-	0x156c0: 0xa0000000, 0x156c1: 0xa0000000, 0x156c2: 0xa0000000, 0x156c3: 0xa0000000,
-	0x156c4: 0xa0000000, 0x156c5: 0xa0000000, 0x156c6: 0xa0000000, 0x156c7: 0xa0000000,
-	0x156c8: 0xa0000000, 0x156c9: 0x40020020, 0x156ca: 0x40020220, 0x156cb: 0x40020420,
-	0x156cc: 0x40020620, 0x156cd: 0x40020820, 0x156ce: 0xa0000000, 0x156cf: 0xa0000000,
-	0x156d0: 0xa0000000, 0x156d1: 0xa0000000, 0x156d2: 0xa0000000, 0x156d3: 0xa0000000,
-	0x156d4: 0xa0000000, 0x156d5: 0xa0000000, 0x156d6: 0xa0000000, 0x156d7: 0xa0000000,
-	0x156d8: 0xa0000000, 0x156d9: 0xa0000000, 0x156da: 0xa0000000, 0x156db: 0xa0000000,
-	0x156dc: 0xa0000000, 0x156dd: 0xa0000000, 0x156de: 0xa0000000, 0x156df: 0xa0000000,
-	0x156e0: 0x40021220, 0x156e1: 0x4002ba20, 0x156e2: 0x4003e020, 0x156e3: 0x4004ea20,
-	0x156e4: 0x4027de20, 0x156e5: 0x4004ec20, 0x156e6: 0x4004e620, 0x156e7: 0x4003d220,
-	0x156e8: 0x4003f420, 0x156e9: 0x4003f620, 0x156ea: 0x4004d820, 0x156eb: 0x40093820,
-	0x156ec: 0x40024020, 0x156ed: 0x40021a20, 0x156ee: 0x4002e420, 0x156ef: 0x4004e220,
-	0x156f0: 0x4029cc20, 0x156f1: 0x4029ce20, 0x156f2: 0x4029d020, 0x156f3: 0x4029d220,
-	0x156f4: 0x4029d420, 0x156f5: 0x4029d620, 0x156f6: 0x4029d820, 0x156f7: 0x4029da20,
-	0x156f8: 0x4029dc20, 0x156f9: 0x4029de20, 0x156fa: 0x40026c20, 0x156fb: 0x40026220,
-	0x156fc: 0x40094020, 0x156fd: 0x40094220, 0x156fe: 0x40094420, 0x156ff: 0x4002c420,
-	// Block 0x55c, offset 0x15700
-	0x15700: 0x4004d620, 0x15701: 0x002bde88, 0x15702: 0x002c0a88, 0x15703: 0xcae90931,
-	0x15704: 0x002c6288, 0x15705: 0x002c9888, 0x15706: 0x002d0888, 0x15707: 0xcaed3e52,
-	0x15708: 0x002d6888, 0x15709: 0x002d9a88, 0x1570a: 0x002dcc88, 0x1570b: 0x002dfe88,
-	0x1570c: 0xc0030002, 0x1570d: 0x002e8288, 0x1570e: 0x002e9e88, 0x1570f: 0x002ee288,
-	0x15710: 0x002f2c88, 0x15711: 0x002f5688, 0x15712: 0x002f7a88, 0x15713: 0x002fe688,
-	0x15714: 0x00302c88, 0x15715: 0x00306c88, 0x15716: 0x0030be88, 0x15717: 0x0030e288,
-	0x15718: 0x0030f688, 0x15719: 0x00310088, 0x1571a: 0xcaf50931, 0x1571b: 0x4003f820,
-	0x1571c: 0x4004e420, 0x1571d: 0x4003fa20, 0x1571e: 0x40062420, 0x1571f: 0x40021620,
-	0x15720: 0x40061e20, 0x15721: 0x402bde20, 0x15722: 0x402c0a20, 0x15723: 0xcaeb0931,
-	0x15724: 0x402c6220, 0x15725: 0x402c9820, 0x15726: 0x402d0820, 0x15727: 0xcaf13e52,
-	0x15728: 0x402d6820, 0x15729: 0x402d9a20, 0x1572a: 0x402dcc20, 0x1572b: 0x402dfe20,
-	0x1572c: 0xc0000002, 0x1572d: 0x402e8220, 0x1572e: 0x402e9e20, 0x1572f: 0x402ee220,
-	0x15730: 0x402f2c20, 0x15731: 0x402f5620, 0x15732: 0x402f7a20, 0x15733: 0x402fe620,
-	0x15734: 0x40302c20, 0x15735: 0x40306c20, 0x15736: 0x4030be20, 0x15737: 0x4030e220,
-	0x15738: 0x4030f620, 0x15739: 0x40310020, 0x1573a: 0xcaf70931, 0x1573b: 0x4003fc20,
-	0x1573c: 0x40094820, 0x1573d: 0x4003fe20, 0x1573e: 0x40094c20, 0x1573f: 0xa0000000,
-	// Block 0x55d, offset 0x15740
-	0x15740: 0xe0000983, 0x15741: 0xe0000980, 0x15742: 0xe00008fb, 0x15743: 0xe00008f8,
-	0x15744: 0xe000097d, 0x15745: 0xe000097a, 0x15746: 0xe0000a38, 0x15747: 0xe0000a35,
-	0x15748: 0xe0000a3e, 0x15749: 0xe0000a3b, 0x1574a: 0x402c3820, 0x1574b: 0x002c3883,
-	0x1574c: 0xe0000a44, 0x1574d: 0xe0000a41, 0x1574e: 0xe0000a86, 0x1574f: 0xe0000a83,
-	0x15750: 0xe0000aaa, 0x15751: 0xe0000aa7, 0x15752: 0xe0000b46, 0x15753: 0xe0000b43,
-	0x15754: 0xe0000aee, 0x15755: 0xe0000aeb, 0x15756: 0xe0000b2c, 0x15757: 0xe0000b29,
-	0x15758: 0xe0000b40, 0x15759: 0xe0000b3d, 0x1575a: 0xe0000b1a, 0x1575b: 0xe0000b17,
-	0x1575c: 0xe0000bb8, 0x1575d: 0xe0000bb5, 0x1575e: 0xe0000bb2, 0x1575f: 0xe0000baf,
-	0x15760: 0x402d2020, 0x15761: 0x002d2083, 0x15762: 0xe0000bca, 0x15763: 0xe0000bc7,
-	0x15764: 0xe0000bee, 0x15765: 0xe0000beb, 0x15766: 0x402d9820, 0x15767: 0x002d9883,
-	0x15768: 0xe0000c51, 0x15769: 0xe0000c4e, 0x1576a: 0xe0000c60, 0x1576b: 0xe0000c5d,
-	0x1576c: 0xe0000c31, 0x1576d: 0xe0000c2e, 0x1576e: 0xe0000c5a, 0x1576f: 0xe0000c57,
-	0x15770: 0xe0000c54, 0x15771: 0x402da220, 0x15772: 0xf0000a0a, 0x15773: 0xf0000404,
-	0x15774: 0xe0000c8a, 0x15775: 0xe0000c87, 0x15776: 0xe0000c9f, 0x15777: 0xe0000c9c,
-	0x15778: 0x402f7220, 0x15779: 0xe0000ccc, 0x1577a: 0xe0000cc9, 0x1577b: 0xe0000cd8,
-	0x1577c: 0xe0000cd5, 0x1577d: 0xe0000cd2, 0x1577e: 0xe0000ccf, 0x1577f: 0xe0000d04,
-	// Block 0x55e, offset 0x15780
-	0x15780: 0xe0000cfe, 0x15781: 0xe0000cf8, 0x15782: 0xe0000cf5, 0x15783: 0xe0000d51,
-	0x15784: 0xe0000d4e, 0x15785: 0xe0000d6f, 0x15786: 0xe0000d6c, 0x15787: 0xe0000d5d,
-	0x15788: 0xe0000d5a, 0x15789: 0xf0000404, 0x1578a: 0x002eda88, 0x1578b: 0x402eda20,
-	0x1578c: 0xe0000e2e, 0x1578d: 0xe0000e2b, 0x1578e: 0xe0000da0, 0x1578f: 0xe0000d9d,
-	0x15790: 0xe0000de0, 0x15791: 0xe0000ddd, 0x15792: 0xe0000e93, 0x15793: 0xe0000e8f,
-	0x15794: 0xe0000eca, 0x15795: 0xe0000ec7, 0x15796: 0xe0000edc, 0x15797: 0xe0000ed9,
-	0x15798: 0xe0000ed0, 0x15799: 0xe0000ecd, 0x1579a: 0xe0000f1f, 0x1579b: 0xe0000f1c,
-	0x1579c: 0xe0000f2d, 0x1579d: 0xe0000f2a, 0x1579e: 0xe0000f47, 0x1579f: 0xe0000f44,
-	0x157a0: 0xe0000f33, 0x157a1: 0xe0000f30, 0x157a2: 0xe0000f99, 0x157a3: 0xe0000f96,
-	0x157a4: 0xe0000f8a, 0x157a5: 0xe0000f87, 0x157a6: 0x00303688, 0x157a7: 0x40303620,
-	0x157a8: 0xe000102b, 0x157a9: 0xe0001028, 0x157aa: 0xe000103f, 0x157ab: 0xe000103c,
-	0x157ac: 0xe0000fe7, 0x157ad: 0xe0000fe4, 0x157ae: 0xe0000ff9, 0x157af: 0xe0000ff6,
-	0x157b0: 0xe0001025, 0x157b1: 0xe0001022, 0x157b2: 0xe0001039, 0x157b3: 0xe0001036,
-	0x157b4: 0xe00010d8, 0x157b5: 0xe00010d5, 0x157b6: 0xe000110e, 0x157b7: 0xe000110b,
-	0x157b8: 0xe0001117, 0x157b9: 0xe000113b, 0x157ba: 0xe0001138, 0x157bb: 0x40312820,
-	0x157bc: 0x00312883, 0x157bd: 0xe0001147, 0x157be: 0xe0001144, 0x157bf: 0xe0000f64,
-	// Block 0x55f, offset 0x157c0
-	0x157c0: 0xe00009bc, 0x157c1: 0xe00009c0, 0x157c2: 0x002c3a8b, 0x157c3: 0xf0000a04,
-	0x157c4: 0x40081c20, 0x157c5: 0xe0000a5e, 0x157c6: 0xe0000a62, 0x157c7: 0x002cc28a,
-	0x157c8: 0x40081e20, 0x157c9: 0xf0000a04, 0x157ca: 0x002d2285, 0x157cb: 0x002d688b,
-	0x157cc: 0x002d688b, 0x157cd: 0x002d688b, 0x157ce: 0x002d6885, 0x157cf: 0xe000a5c1,
-	0x157d0: 0x002d9a8b, 0x157d1: 0x002d9a8b, 0x157d2: 0x002e228b, 0x157d3: 0x002e2285,
-	0x157d4: 0x40082020, 0x157d5: 0x002e9e8b, 0x157d6: 0xf000040a, 0x157d7: 0x40082220,
-	0x157d8: 0x40082420, 0x157d9: 0x002f2c8b, 0x157da: 0x002f568b, 0x157db: 0x002f7a8b,
-	0x157dc: 0x002f7a8b, 0x157dd: 0x002f7a8b, 0x157de: 0x40082620, 0x157df: 0x40082820,
-	0x157e0: 0xf0001414, 0x157e1: 0xe0000fbd, 0x157e2: 0xf0001414, 0x157e3: 0x40082a20,
-	0x157e4: 0x00312a8b, 0x157e5: 0x40082c20, 0x157e6: 0x0032a288, 0x157e7: 0x40082e20,
-	0x157e8: 0x00312a8b, 0x157e9: 0x40083020, 0x157ea: 0x002dfe88, 0x157eb: 0xe000094d,
-	0x157ec: 0x002c0a8b, 0x157ed: 0x002c3a8b, 0x157ee: 0x40083220, 0x157ef: 0x002c9885,
-	0x157f0: 0x002c988b, 0x157f1: 0x002d088b, 0x157f2: 0x002d1e88, 0x157f3: 0x002e828b,
-	0x157f4: 0x002ee285, 0x157f5: 0x00389084, 0x157f6: 0x00389284, 0x157f7: 0x00389484,
-	0x157f8: 0x00389684, 0x157f9: 0x002d9a85, 0x157fa: 0x40083420, 0x157fb: 0xe0000b95,
-	0x157fc: 0x00327e85, 0x157fd: 0x00325685, 0x157fe: 0x0032568b, 0x157ff: 0x00327e8b,
-	// Block 0x560, offset 0x15800
-	0x15838: 0xe000a5c4, 0x15839: 0xe0000e97, 0x1583a: 0x4030a820, 0x1583b: 0x402d2020,
-	0x1583c: 0x402f4a20, 0x1583d: 0x402e9820, 0x1583e: 0x402db220, 0x1583f: 0x402e9a20,
-	// Block 0x561, offset 0x15840
-	0x15840: 0xccd58051, 0x15841: 0xcda08051, 0x15842: 0xcda38051, 0x15843: 0xcda88051,
-	0x15844: 0xcdab9311, 0x15845: 0xcdae8051, 0x15846: 0xcdb18051, 0x15847: 0xcdb48051,
-	0x15848: 0xcdb79371, 0x15849: 0xcdb98051, 0x1584a: 0xcdbc8051, 0x1584b: 0xcdbf8051,
-	0x1584c: 0xcdc28051, 0x1584d: 0xcdc58051, 0x1584e: 0xcdc88051, 0x1584f: 0xcdcb8051,
-	0x15850: 0xcdce8051, 0x15851: 0xcaf93e91, 0x15852: 0xcdd18051, 0x15853: 0xcdd48051,
-	0x15854: 0xcafd3f91, 0x15855: 0xcdd78051, 0x15856: 0xcdda8051, 0x15857: 0xcddd8051,
-	0x15858: 0xcde08051, 0x15859: 0xcde38051, 0x1585a: 0xcde68051, 0x1585b: 0xcde98051,
-	0x1585c: 0xcb014061, 0x1585d: 0xcdec9371, 0x1585e: 0xcb084261, 0x1585f: 0xcdee8051,
-	0x15860: 0xcdf19371, 0x15861: 0xcdf39371, 0x15862: 0x404ec420, 0x15863: 0xe000a600,
-	0x15864: 0xe000a606, 0x15865: 0xcb0c4301, 0x15866: 0xe000a610, 0x15867: 0xe000a613,
-	0x15868: 0xe000a616, 0x15869: 0xcb0f4371, 0x1586a: 0xe000a8ed, 0x1586b: 0xcd198081,
-	0x1586c: 0xccd88081, 0x1586d: 0xcc4e6de1, 0x1586e: 0x404eea20, 0x1586f: 0xcd5a8951,
-	0x15870: 0x404ef420, 0x15871: 0xcb8852f1, 0x15872: 0x404f0620, 0x15873: 0x404eec20,
-	0x15874: 0x404f0a20, 0x15875: 0x404f0220, 0x15876: 0x404f0c20, 0x15877: 0xcda692e1,
-	0x15878: 0x404f3020, 0x15879: 0x8209278a, 0x1587a: 0x8209278b, 0x1587b: 0xcdf593a1,
-	0x1587c: 0xcdf993a1, 0x1587d: 0xcdfd9411, 0x1587e: 0x40510e20, 0x1587f: 0xe000a5fc,
-	// Block 0x562, offset 0x15880
-	0x15880: 0xe00001ac, 0x15881: 0xe0000240, 0x15882: 0xe0000358, 0x15883: 0xe0000432,
-	0x15884: 0xe0000507, 0x15885: 0xe00005d1, 0x15886: 0xe000069c, 0x15887: 0xe0000744,
-	0x15888: 0xe00007f0, 0x15889: 0xe0000895, 0x1588a: 0x40032220, 0x1588b: 0x40032420,
-	0x1588c: 0xe000a5d4, 0x1588d: 0xe000a5db, 0x1588e: 0xcb0641d1, 0x1588f: 0xe000a603,
-	0x15890: 0x404ea020, 0x15891: 0x404ea220, 0x15892: 0x404ece20, 0x15893: 0x404ed020,
-	0x15894: 0x404ed220, 0x15895: 0x404ed420, 0x15896: 0x404ef620, 0x15897: 0x404ef820,
-	0x15898: 0x404efa20, 0x15899: 0x404efc20, 0x1589a: 0x404e2620, 0x1589b: 0x404e3c20,
-	0x1589c: 0x404eb820, 0x1589d: 0x404eba20, 0x1589e: 0x40510020, 0x1589f: 0x40510220,
-	0x158a0: 0x40510820, 0x158a1: 0x404e4020, 0x158a2: 0x404f0c20, 0x158a3: 0x404f1820,
-	0x158a4: 0x404f1a20, 0x158a5: 0x404ea420, 0x158a6: 0x404ec020, 0x158a7: 0x404f0e20,
-	0x158a8: 0x404f1020, 0x158a9: 0x404f1c20, 0x158aa: 0x404f1e20, 0x158ab: 0x404f2020,
-	0x158ac: 0x404f2220, 0x158ad: 0x404f2420, 0x158ae: 0x404e5c20, 0x158af: 0x404ebc20,
-	0x158b0: 0x404ebe20, 0x158b1: 0x404ee820, 0x158b2: 0x404ee220, 0x158b3: 0x404ef020,
-	0x158b4: 0x404ef220, 0x158b5: 0x404e1620, 0x158b6: 0x404e1a20, 0x158b7: 0x404e1e20,
-	0x158b8: 0x404e2a20, 0x158b9: 0x404e3620, 0x158ba: 0x404e4420, 0x158bb: 0x404e6420,
-	0x158bc: 0x404e6c20, 0x158bd: 0x404e7620, 0x158be: 0x404e7820, 0x158bf: 0x404e8020,
-	// Block 0x563, offset 0x158c0
-	0x158c0: 0x404e9e20, 0x158c1: 0x404eac20, 0x158c2: 0x40510c20, 0x158c3: 0x404ee020,
-	0x158c4: 0x404f0020, 0x158c5: 0x404f0420, 0x158c6: 0x404f1220, 0x158c7: 0x404f2620,
-	0x158c8: 0x404f2a20, 0x158c9: 0x404f2e20, 0x158ca: 0x404f3020, 0x158cb: 0x404f2820,
-	0x158cc: 0x404f2c20, 0x158cd: 0xadc11302, 0x158ce: 0x404e7c20, 0x158cf: 0x404f3220,
-	0x158d0: 0xe00001af, 0x158d1: 0xe0000243, 0x158d2: 0xe000035b, 0x158d3: 0xe0000435,
-	0x158d4: 0xe000050a, 0x158d5: 0xe00005d4, 0x158d6: 0xe000069f, 0x158d7: 0xe0000747,
-	0x158d8: 0xe00007f3, 0x158d9: 0xe0000898, 0x158da: 0x404f3420, 0x158db: 0x404f3620,
-	0x158dc: 0x404ee420, 0x158dd: 0x404f0820, 0x158de: 0x4007a820, 0x158df: 0x4007aa20,
-	0x158e0: 0x00379888, 0x158e1: 0x00379c88, 0x158e2: 0x0037a088, 0x158e3: 0x0037a488,
-	0x158e4: 0x0037a888, 0x158e5: 0x0037ac88, 0x158e6: 0x0037b088, 0x158e7: 0x0037b888,
-	0x158e8: 0x0037bc88, 0x158e9: 0x0037c088, 0x158ea: 0x0037c488, 0x158eb: 0x0037c888,
-	0x158ec: 0x0037cc88, 0x158ed: 0x0037d488, 0x158ee: 0x0037d888, 0x158ef: 0x0037dc88,
-	0x158f0: 0x0037e088, 0x158f1: 0x0037e488, 0x158f2: 0x0037e888, 0x158f3: 0x0037f088,
-	0x158f4: 0x0037f488, 0x158f5: 0x0037f888, 0x158f6: 0x0037fc88, 0x158f7: 0x00380088,
-	0x158f8: 0x00380488, 0x158f9: 0x00380888, 0x158fa: 0x00380c88, 0x158fb: 0x00381088,
-	0x158fc: 0x00381488, 0x158fd: 0x00381888, 0x158fe: 0x00381c88, 0x158ff: 0x00382488,
-	// Block 0x564, offset 0x15900
-	0x15900: 0xa0000000, 0x15901: 0xa0000000, 0x15902: 0xa0000000, 0x15903: 0xa0000000,
-	0x15904: 0xa0000000, 0x15905: 0xa0000000, 0x15906: 0xa0000000, 0x15907: 0xa0000000,
-	0x15908: 0xa0000000, 0x15909: 0x40020020, 0x1590a: 0x40020220, 0x1590b: 0x40020420,
-	0x1590c: 0x40020620, 0x1590d: 0x40020820, 0x1590e: 0xa0000000, 0x1590f: 0xa0000000,
-	0x15910: 0xa0000000, 0x15911: 0xa0000000, 0x15912: 0xa0000000, 0x15913: 0xa0000000,
-	0x15914: 0xa0000000, 0x15915: 0xa0000000, 0x15916: 0xa0000000, 0x15917: 0xa0000000,
-	0x15918: 0xa0000000, 0x15919: 0xa0000000, 0x1591a: 0xa0000000, 0x1591b: 0xa0000000,
-	0x1591c: 0xa0000000, 0x1591d: 0xa0000000, 0x1591e: 0xa0000000, 0x1591f: 0xa0000000,
-	0x15920: 0x40021220, 0x15921: 0x4002ba20, 0x15922: 0x4003e020, 0x15923: 0x4004ea20,
-	0x15924: 0x4027de20, 0x15925: 0x4004ec20, 0x15926: 0x4004e620, 0x15927: 0x4003d220,
-	0x15928: 0x4003f420, 0x15929: 0x4003f620, 0x1592a: 0x4004d820, 0x1592b: 0x40093820,
-	0x1592c: 0x40024020, 0x1592d: 0x40021a20, 0x1592e: 0x4002e420, 0x1592f: 0x4004e220,
-	0x15930: 0x4029cc20, 0x15931: 0x4029ce20, 0x15932: 0x4029d020, 0x15933: 0x4029d220,
-	0x15934: 0x4029d420, 0x15935: 0x4029d620, 0x15936: 0x4029d820, 0x15937: 0x4029da20,
-	0x15938: 0x4029dc20, 0x15939: 0x4029de20, 0x1593a: 0x40026c20, 0x1593b: 0x40026220,
-	0x1593c: 0x40094020, 0x1593d: 0x40094220, 0x1593e: 0x40094420, 0x1593f: 0x4002c420,
-	// Block 0x565, offset 0x15940
-	0x15940: 0x4004d620, 0x15941: 0xce030b93, 0x15942: 0x002c0a88, 0x15943: 0x002c3a88,
-	0x15944: 0x002c6288, 0x15945: 0xc39e0be1, 0x15946: 0x002d0888, 0x15947: 0x002d2288,
-	0x15948: 0x002d6888, 0x15949: 0x002d9a88, 0x1594a: 0x002dcc88, 0x1594b: 0x002dfe88,
-	0x1594c: 0xc0030002, 0x1594d: 0x002e8288, 0x1594e: 0x002e9e88, 0x1594f: 0xc3a30b21,
-	0x15950: 0x002f2c88, 0x15951: 0x002f5688, 0x15952: 0x002f7a88, 0x15953: 0x002fe688,
-	0x15954: 0x00302c88, 0x15955: 0xc3900b21, 0x15956: 0x0030be88, 0x15957: 0x0030e288,
-	0x15958: 0x0030f688, 0x15959: 0x00310088, 0x1595a: 0x00312a88, 0x1595b: 0x4003f820,
-	0x1595c: 0x4004e420, 0x1595d: 0x4003fa20, 0x1595e: 0x40062420, 0x1595f: 0x40021620,
-	0x15960: 0x40061e20, 0x15961: 0xcdff0b52, 0x15962: 0x402c0a20, 0x15963: 0x402c3a20,
-	0x15964: 0x402c6220, 0x15965: 0xc39c0be1, 0x15966: 0x402d0820, 0x15967: 0x402d2220,
-	0x15968: 0x402d6820, 0x15969: 0x402d9a20, 0x1596a: 0x402dcc20, 0x1596b: 0x402dfe20,
-	0x1596c: 0xc0000002, 0x1596d: 0x402e8220, 0x1596e: 0x402e9e20, 0x1596f: 0xc3a00b21,
-	0x15970: 0x402f2c20, 0x15971: 0x402f5620, 0x15972: 0x402f7a20, 0x15973: 0x402fe620,
-	0x15974: 0x40302c20, 0x15975: 0xc38d0b21, 0x15976: 0x4030be20, 0x15977: 0x4030e220,
-	0x15978: 0x4030f620, 0x15979: 0x40310020, 0x1597a: 0x40312a20, 0x1597b: 0x4003fc20,
-	0x1597c: 0x40094820, 0x1597d: 0x4003fe20, 0x1597e: 0x40094c20, 0x1597f: 0xa0000000,
-	// Block 0x566, offset 0x15980
-	0x15980: 0xa0000000, 0x15981: 0xa0000000, 0x15982: 0xa0000000, 0x15983: 0xa0000000,
-	0x15984: 0xa0000000, 0x15985: 0xa0000000, 0x15986: 0xa0000000, 0x15987: 0xa0000000,
-	0x15988: 0xa0000000, 0x15989: 0x40020020, 0x1598a: 0x40020220, 0x1598b: 0x40020420,
-	0x1598c: 0x40020620, 0x1598d: 0x40020820, 0x1598e: 0xa0000000, 0x1598f: 0xa0000000,
-	0x15990: 0xa0000000, 0x15991: 0xa0000000, 0x15992: 0xa0000000, 0x15993: 0xa0000000,
-	0x15994: 0xa0000000, 0x15995: 0xa0000000, 0x15996: 0xa0000000, 0x15997: 0xa0000000,
-	0x15998: 0xa0000000, 0x15999: 0xa0000000, 0x1599a: 0xa0000000, 0x1599b: 0xa0000000,
-	0x1599c: 0xa0000000, 0x1599d: 0xa0000000, 0x1599e: 0xa0000000, 0x1599f: 0xa0000000,
-	0x159a0: 0x40021220, 0x159a1: 0x4002ba20, 0x159a2: 0x4003e020, 0x159a3: 0x4004ea20,
-	0x159a4: 0x4027de20, 0x159a5: 0x4004ec20, 0x159a6: 0x4004e620, 0x159a7: 0x4003d220,
-	0x159a8: 0x4003f420, 0x159a9: 0x4003f620, 0x159aa: 0x4004d820, 0x159ab: 0x40093820,
-	0x159ac: 0x40024020, 0x159ad: 0x40021a20, 0x159ae: 0x4002e420, 0x159af: 0x4004e220,
-	0x159b0: 0x4029cc20, 0x159b1: 0x4029ce20, 0x159b2: 0x4029d020, 0x159b3: 0x4029d220,
-	0x159b4: 0x4029d420, 0x159b5: 0x4029d620, 0x159b6: 0x4029d820, 0x159b7: 0x4029da20,
-	0x159b8: 0x4029dc20, 0x159b9: 0x4029de20, 0x159ba: 0x40026c20, 0x159bb: 0x40026220,
-	0x159bc: 0x40094020, 0x159bd: 0x40094220, 0x159be: 0x40094420, 0x159bf: 0x4002c420,
-	// Block 0x567, offset 0x159c0
-	0x159c0: 0x4004d620, 0x159c1: 0x002bde88, 0x159c2: 0x002c0a88, 0x159c3: 0x002c3a88,
-	0x159c4: 0x002c6288, 0x159c5: 0xce0a2741, 0x159c6: 0x002d0888, 0x159c7: 0x002d2288,
-	0x159c8: 0x002d6888, 0x159c9: 0x002d9a88, 0x159ca: 0x002dcc88, 0x159cb: 0x002dfe88,
-	0x159cc: 0xc0030002, 0x159cd: 0x002e8288, 0x159ce: 0x002e9e88, 0x159cf: 0xc33f2741,
-	0x159d0: 0x002f2c88, 0x159d1: 0x002f5688, 0x159d2: 0x002f7a88, 0x159d3: 0xc3430991,
-	0x159d4: 0x00302c88, 0x159d5: 0x00306c88, 0x159d6: 0x0030be88, 0x159d7: 0x0030e288,
-	0x159d8: 0x0030f688, 0x159d9: 0x00310088, 0x159da: 0x00312a88, 0x159db: 0x4003f820,
-	0x159dc: 0x4004e420, 0x159dd: 0x4003fa20, 0x159de: 0x40062420, 0x159df: 0x40021620,
-	0x159e0: 0x40061e20, 0x159e1: 0x402bde20, 0x159e2: 0x402c0a20, 0x159e3: 0x402c3a20,
-	0x159e4: 0x402c6220, 0x159e5: 0xce082741, 0x159e6: 0x402d0820, 0x159e7: 0x402d2220,
-	0x159e8: 0x402d6820, 0x159e9: 0x402d9a20, 0x159ea: 0x402dcc20, 0x159eb: 0x402dfe20,
-	0x159ec: 0xc0000002, 0x159ed: 0x402e8220, 0x159ee: 0x402e9e20, 0x159ef: 0xc33d2741,
-	0x159f0: 0x402f2c20, 0x159f1: 0x402f5620, 0x159f2: 0x402f7a20, 0x159f3: 0xc3410991,
-	0x159f4: 0x40302c20, 0x159f5: 0x40306c20, 0x159f6: 0x4030be20, 0x159f7: 0x4030e220,
-	0x159f8: 0x4030f620, 0x159f9: 0x40310020, 0x159fa: 0x40312a20, 0x159fb: 0x4003fc20,
-	0x159fc: 0x40094820, 0x159fd: 0x4003fe20, 0x159fe: 0x40094c20, 0x159ff: 0xa0000000,
-	// Block 0x568, offset 0x15a00
-	0x15a00: 0xe00008f5, 0x15a01: 0xe00008ef, 0x15a02: 0xe0000921, 0x15a03: 0xe0000969,
-	0x15a04: 0xe000095b, 0x15a05: 0xe000094d, 0x15a06: 0xe00009dd, 0x15a07: 0xe0000a53,
-	0x15a08: 0xe0000ae8, 0x15a09: 0xe0000ae2, 0x15a0a: 0x002c9a83, 0x15a0b: 0xe0000b20,
-	0x15a0c: 0xe0000c2b, 0x15a0d: 0xe0000c25, 0x15a0e: 0xe0000c37, 0x15a0f: 0xe0000c43,
-	0x15a10: 0xe0000ab3, 0x15a11: 0xe0000d63, 0x15a12: 0xe0000d9a, 0x15a13: 0xe0000d94,
-	0x15a14: 0x002ee483, 0x15a15: 0xe0000de6, 0x15a16: 0xe0000dd2, 0x15a17: 0x40093e20,
-	0x15a18: 0xe0000e12, 0x15a19: 0xe0000fe1, 0x15a1a: 0xe0000fdb, 0x15a1b: 0xe0000fed,
-	0x15a1c: 0xe0000fff, 0x15a1d: 0xe0001102, 0x15a1e: 0x00318888, 0x15a1f: 0xe0000f7b,
-	0x15a20: 0xe00008f2, 0x15a21: 0xe00008ec, 0x15a22: 0xe000091e, 0x15a23: 0xe0000966,
-	0x15a24: 0xe0000958, 0x15a25: 0xe000094a, 0x15a26: 0xe00009d5, 0x15a27: 0xe0000a4d,
-	0x15a28: 0xe0000ae5, 0x15a29: 0xe0000adf, 0x15a2a: 0x402c9a20, 0x15a2b: 0xe0000b1d,
-	0x15a2c: 0xe0000c28, 0x15a2d: 0xe0000c22, 0x15a2e: 0xe0000c34, 0x15a2f: 0xe0000c40,
-	0x15a30: 0xe0000aad, 0x15a31: 0xe0000d60, 0x15a32: 0xe0000d97, 0x15a33: 0xe0000d91,
-	0x15a34: 0x402ee420, 0x15a35: 0xe0000de3, 0x15a36: 0xe0000dcf, 0x15a37: 0x40093c20,
-	0x15a38: 0xe0000e0f, 0x15a39: 0xe0000fde, 0x15a3a: 0xe0000fd8, 0x15a3b: 0xe0000fea,
-	0x15a3c: 0xe0000ffc, 0x15a3d: 0xe00010ff, 0x15a3e: 0x40318820, 0x15a3f: 0xe0001114,
-	// Block 0x569, offset 0x15a40
-	0x15a40: 0xe0000cfe, 0x15a41: 0xe0000cf8, 0x15a42: 0xe0000cf5, 0x15a43: 0xe0000d51,
-	0x15a44: 0xe0000d4e, 0x15a45: 0xe0000d6f, 0x15a46: 0xe0000d6c, 0x15a47: 0xe0000d5d,
-	0x15a48: 0xe0000d5a, 0x15a49: 0xf0000404, 0x15a4a: 0x002eda88, 0x15a4b: 0x402eda20,
-	0x15a4c: 0xe0000e2e, 0x15a4d: 0xe0000e2b, 0x15a4e: 0xe0000da0, 0x15a4f: 0xe0000d9d,
-	0x15a50: 0xe0000de0, 0x15a51: 0xe0000ddd, 0x15a52: 0xe0000e93, 0x15a53: 0xe0000e8f,
-	0x15a54: 0xe0000eca, 0x15a55: 0xe0000ec7, 0x15a56: 0xe0000edc, 0x15a57: 0xe0000ed9,
-	0x15a58: 0xe0000ed0, 0x15a59: 0xe0000ecd, 0x15a5a: 0xe0000f1f, 0x15a5b: 0xe0000f1c,
-	0x15a5c: 0xe0000f2d, 0x15a5d: 0xe0000f2a, 0x15a5e: 0xe0000f47, 0x15a5f: 0xe0000f44,
-	0x15a60: 0x002fe883, 0x15a61: 0x402fe820, 0x15a62: 0xe0000f99, 0x15a63: 0xe0000f96,
-	0x15a64: 0xe0000f8a, 0x15a65: 0xe0000f87, 0x15a66: 0x00303688, 0x15a67: 0x40303620,
-	0x15a68: 0xe000102b, 0x15a69: 0xe0001028, 0x15a6a: 0xe000103f, 0x15a6b: 0xe000103c,
-	0x15a6c: 0xe0000fe7, 0x15a6d: 0xe0000fe4, 0x15a6e: 0xe0000ff9, 0x15a6f: 0xe0000ff6,
-	0x15a70: 0xe0001025, 0x15a71: 0xe0001022, 0x15a72: 0xe0001039, 0x15a73: 0xe0001036,
-	0x15a74: 0xe00010d8, 0x15a75: 0xe00010d5, 0x15a76: 0xe000110e, 0x15a77: 0xe000110b,
-	0x15a78: 0xe0001117, 0x15a79: 0xe000113b, 0x15a7a: 0xe0001138, 0x15a7b: 0xe000114d,
-	0x15a7c: 0xe000114a, 0x15a7d: 0xe0001147, 0x15a7e: 0xe0001144, 0x15a7f: 0xe0000f64,
-	// Block 0x56a, offset 0x15a80
-	0x15a80: 0xe00010d2, 0x15a81: 0xe00010cf, 0x15a82: 0xe00010cc, 0x15a83: 0xe00010c9,
-	0x15a84: 0xe00010e1, 0x15a85: 0xe00010de, 0x15a86: 0xe00010e7, 0x15a87: 0xe00010e4,
-	0x15a88: 0xe00010ed, 0x15a89: 0xe00010ea, 0x15a8a: 0xe00010fc, 0x15a8b: 0xe00010f9,
-	0x15a8c: 0xe00010f6, 0x15a8d: 0xe00010f3, 0x15a8e: 0xe0001123, 0x15a8f: 0xe0001120,
-	0x15a90: 0xe0001141, 0x15a91: 0xe000113e, 0x15a92: 0xe0001153, 0x15a93: 0xe0001150,
-	0x15a94: 0xe0001159, 0x15a95: 0xe0001156, 0x15a96: 0xe0000c15, 0x15a97: 0xe0000f8d,
-	0x15a98: 0xe00010db, 0x15a99: 0xe0001111, 0x15a9a: 0xf0000404, 0x15a9b: 0xe0000f70,
-	0x15a9c: 0x40300420, 0x15a9d: 0x40300620, 0x15a9e: 0xe0000f7f, 0x15a9f: 0x402c9620,
-	0x15aa0: 0xe000099b, 0x15aa1: 0xe0000998, 0x15aa2: 0xe0000989, 0x15aa3: 0xe0000986,
-	0x15aa4: 0xe0000928, 0x15aa5: 0xe0000924, 0x15aa6: 0xe0000930, 0x15aa7: 0xe000092c,
-	0x15aa8: 0xe0000940, 0x15aa9: 0xe000093c, 0x15aaa: 0xe0000938, 0x15aab: 0xe0000934,
-	0x15aac: 0xe00009aa, 0x15aad: 0xe00009a6, 0x15aae: 0xe0000902, 0x15aaf: 0xe00008fe,
-	0x15ab0: 0xe000090a, 0x15ab1: 0xe0000906, 0x15ab2: 0xe000091a, 0x15ab3: 0xe0000916,
-	0x15ab4: 0xe0000912, 0x15ab5: 0xe000090e, 0x15ab6: 0xe00009a2, 0x15ab7: 0xe000099e,
-	0x15ab8: 0xe0000b6e, 0x15ab9: 0xe0000b6b, 0x15aba: 0xe0000b5c, 0x15abb: 0xe0000b59,
-	0x15abc: 0xe0000b26, 0x15abd: 0xe0000b23, 0x15abe: 0xe000a8fc, 0x15abf: 0xe000a8f9,
-	// Block 0x56b, offset 0x15ac0
-	0x15ac0: 0xe000a902, 0x15ac1: 0xe000a8ff, 0x15ac2: 0xe000a90e, 0x15ac3: 0xe000a90b,
-	0x15ac4: 0xe000a908, 0x15ac5: 0xe000a905, 0x15ac6: 0xe000a914, 0x15ac7: 0xe000a911,
-	0x15ac8: 0xe0000c66, 0x15ac9: 0xe0000c63, 0x15aca: 0xe0000c78, 0x15acb: 0xe0000c75,
-	0x15acc: 0xe0000e84, 0x15acd: 0xe0000e81, 0x15ace: 0xe0000e44, 0x15acf: 0xe0000e41,
-	0x15ad0: 0xe000a91a, 0x15ad1: 0xe000a917, 0x15ad2: 0xe000a920, 0x15ad3: 0xe000a91d,
-	0x15ad4: 0xe000a926, 0x15ad5: 0xe000a923, 0x15ad6: 0xe000258a, 0x15ad7: 0xe0002587,
-	0x15ad8: 0xe000a92c, 0x15ad9: 0xe000a929, 0x15ada: 0xe0000e5d, 0x15adb: 0xe0000e59,
-	0x15adc: 0xe0000e65, 0x15add: 0xe0000e61, 0x15ade: 0xe0000e75, 0x15adf: 0xe0000e71,
-	0x15ae0: 0xe0000e6d, 0x15ae1: 0xe0000e69, 0x15ae2: 0xe0000e7d, 0x15ae3: 0xe0000e79,
-	0x15ae4: 0xe000108d, 0x15ae5: 0xe000108a, 0x15ae6: 0xe000104d, 0x15ae7: 0xe000104a,
-	0x15ae8: 0xe0001066, 0x15ae9: 0xe0001062, 0x15aea: 0xe000106e, 0x15aeb: 0xe000106a,
-	0x15aec: 0xe000107e, 0x15aed: 0xe000107a, 0x15aee: 0xe0001076, 0x15aef: 0xe0001072,
-	0x15af0: 0xe0001086, 0x15af1: 0xe0001082, 0x15af2: 0xe0001108, 0x15af3: 0xe0001105,
-	0x15af4: 0xe0001135, 0x15af5: 0xe0001132, 0x15af6: 0xe000112f, 0x15af7: 0xe000112c,
-	0x15af8: 0xe000111d, 0x15af9: 0xe000111a, 0x15afa: 0xe0000d0a, 0x15afb: 0xe0000d07,
-	0x15afc: 0x0030d888, 0x15afd: 0x4030d820, 0x15afe: 0x00312088, 0x15aff: 0x40312020,
-	// Block 0x56c, offset 0x15b00
-	0x15b00: 0xa0000000, 0x15b01: 0xa0000000, 0x15b02: 0xa0000000, 0x15b03: 0xa0000000,
-	0x15b04: 0xa0000000, 0x15b05: 0xa0000000, 0x15b06: 0xa0000000, 0x15b07: 0xa0000000,
-	0x15b08: 0xa0000000, 0x15b09: 0x40020020, 0x15b0a: 0x40020220, 0x15b0b: 0x40020420,
-	0x15b0c: 0x40020620, 0x15b0d: 0x40020820, 0x15b0e: 0xa0000000, 0x15b0f: 0xa0000000,
-	0x15b10: 0xa0000000, 0x15b11: 0xa0000000, 0x15b12: 0xa0000000, 0x15b13: 0xa0000000,
-	0x15b14: 0xa0000000, 0x15b15: 0xa0000000, 0x15b16: 0xa0000000, 0x15b17: 0xa0000000,
-	0x15b18: 0xa0000000, 0x15b19: 0xa0000000, 0x15b1a: 0xa0000000, 0x15b1b: 0xa0000000,
-	0x15b1c: 0xa0000000, 0x15b1d: 0xa0000000, 0x15b1e: 0xa0000000, 0x15b1f: 0xa0000000,
-	0x15b20: 0x40021220, 0x15b21: 0x4002ba20, 0x15b22: 0x4003e020, 0x15b23: 0x4004ea20,
-	0x15b24: 0x4027de20, 0x15b25: 0x4004ec20, 0x15b26: 0x4004e620, 0x15b27: 0x4003d220,
-	0x15b28: 0x4003f420, 0x15b29: 0x4003f620, 0x15b2a: 0x4004d820, 0x15b2b: 0x40093820,
-	0x15b2c: 0x40024020, 0x15b2d: 0x40021a20, 0x15b2e: 0x4002e420, 0x15b2f: 0x4004e220,
-	0x15b30: 0x4029cc20, 0x15b31: 0x4029ce20, 0x15b32: 0x4029d020, 0x15b33: 0x4029d220,
-	0x15b34: 0x4029d420, 0x15b35: 0x4029d620, 0x15b36: 0x4029d820, 0x15b37: 0x4029da20,
-	0x15b38: 0x4029dc20, 0x15b39: 0x4029de20, 0x15b3a: 0x40026c20, 0x15b3b: 0x40026220,
-	0x15b3c: 0x40094020, 0x15b3d: 0x40094220, 0x15b3e: 0x40094420, 0x15b3f: 0x4002c420,
-	// Block 0x56d, offset 0x15b40
-	0x15b40: 0x4004d620, 0x15b41: 0x002bde88, 0x15b42: 0x002c0a88, 0x15b43: 0xce0e09c2,
-	0x15b44: 0xce1309c2, 0x15b45: 0x002c9888, 0x15b46: 0x002d0888, 0x15b47: 0x002d2288,
-	0x15b48: 0x002d6888, 0x15b49: 0x002d9a88, 0x15b4a: 0x002dcc88, 0x15b4b: 0xce1809c2,
-	0x15b4c: 0xc0030002, 0x15b4d: 0x002e8288, 0x15b4e: 0xce1d26f2, 0x15b4f: 0x002ee288,
-	0x15b50: 0xce2209c2, 0x15b51: 0x002f5688, 0x15b52: 0x002f7a88, 0x15b53: 0xce2709b1,
-	0x15b54: 0x00302c88, 0x15b55: 0x00306c88, 0x15b56: 0x0030be88, 0x15b57: 0x0030e288,
-	0x15b58: 0x0030f688, 0x15b59: 0x00310088, 0x15b5a: 0x00312a88, 0x15b5b: 0x4003f820,
-	0x15b5c: 0x4004e420, 0x15b5d: 0x4003fa20, 0x15b5e: 0x40062420, 0x15b5f: 0x40021620,
-	0x15b60: 0x40061e20, 0x15b61: 0x402bde20, 0x15b62: 0x402c0a20, 0x15b63: 0xce0c09b1,
-	0x15b64: 0xce1109b1, 0x15b65: 0x402c9820, 0x15b66: 0x402d0820, 0x15b67: 0x402d2220,
-	0x15b68: 0x402d6820, 0x15b69: 0x402d9a20, 0x15b6a: 0x402dcc20, 0x15b6b: 0xce1609b1,
-	0x15b6c: 0xc0000002, 0x15b6d: 0x402e8220, 0x15b6e: 0xce1b26e1, 0x15b6f: 0x402ee220,
-	0x15b70: 0xce2009b1, 0x15b71: 0x402f5620, 0x15b72: 0x402f7a20, 0x15b73: 0xce2509b1,
-	0x15b74: 0x40302c20, 0x15b75: 0x40306c20, 0x15b76: 0x4030be20, 0x15b77: 0x4030e220,
-	0x15b78: 0x4030f620, 0x15b79: 0x40310020, 0x15b7a: 0x40312a20, 0x15b7b: 0x4003fc20,
-	0x15b7c: 0x40094820, 0x15b7d: 0x4003fe20, 0x15b7e: 0x40094c20, 0x15b7f: 0xa0000000,
-	// Block 0x56e, offset 0x15b80
-	0x15b81: 0x40421220, 0x15b82: 0x40421420, 0x15b83: 0x40421620,
-	0x15b85: 0x4041f620, 0x15b86: 0x4041f820, 0x15b87: 0x4041fa20,
-	0x15b88: 0x4041fc20, 0x15b89: 0x4041fe20, 0x15b8a: 0x40420020, 0x15b8b: 0x40420220,
-	0x15b8c: 0x40420620, 0x15b8f: 0x40420a20,
-	0x15b90: 0x40420c20, 0x15b93: 0x40420e20,
-	0x15b94: 0x40421020, 0x15b95: 0xce299441, 0x15b96: 0x40421420, 0x15b97: 0x40421620,
-	0x15b98: 0x40421820, 0x15b99: 0x40421a20, 0x15b9a: 0x40421c20, 0x15b9b: 0x40421e20,
-	0x15b9c: 0x40422020, 0x15b9d: 0x40422220, 0x15b9e: 0x40422420, 0x15b9f: 0x40422620,
-	0x15ba0: 0x40422820, 0x15ba1: 0x40422a20, 0x15ba2: 0x40422c20, 0x15ba3: 0x40422e20,
-	0x15ba4: 0x40423020, 0x15ba5: 0x40423220, 0x15ba6: 0x40423420, 0x15ba7: 0x40423620,
-	0x15ba8: 0x40423820, 0x15baa: 0x40423a20, 0x15bab: 0x40423c20,
-	0x15bac: 0x40423e20, 0x15bad: 0x40424020, 0x15bae: 0x40424220, 0x15baf: 0x40424420,
-	0x15bb0: 0x40424820, 0x15bb2: 0x40424a20, 0x15bb3: 0x40424c20,
-	0x15bb5: 0x40424e20, 0x15bb6: 0x40425220, 0x15bb7: 0x40425420,
-	0x15bb8: 0x40425620, 0x15bb9: 0x40425820,
-	0x15bbc: 0xa070f102, 0x15bbd: 0x40425a20, 0x15bbe: 0x40425c20, 0x15bbf: 0x40425e20,
-	// Block 0x56f, offset 0x15bc0
-	0x15bc0: 0x40426020, 0x15bc1: 0x40426220, 0x15bc2: 0x40426420, 0x15bc3: 0x40426620,
-	0x15bc4: 0x40426820, 0x15bc7: 0xc05d01e1,
-	0x15bc8: 0x40427020, 0x15bcb: 0x40427220,
-	0x15bcc: 0x40427420, 0x15bcd: 0x8209213b,
-	0x15bd6: 0x40427820, 0x15bd7: 0x40427a20,
-	0x15bdc: 0xe000185d, 0x15bdd: 0xe0001860, 0x15bdf: 0x40424421,
-	0x15be0: 0x40420420, 0x15be1: 0x40420820, 0x15be2: 0x40426a20, 0x15be3: 0x40426c20,
-	0x15be6: 0xe0000176, 0x15be7: 0xe0000204,
-	0x15be8: 0xe000031f, 0x15be9: 0xe00003f9, 0x15bea: 0xe00004d4, 0x15beb: 0xe000059e,
-	0x15bec: 0xe0000669, 0x15bed: 0xe0000711, 0x15bee: 0xe00007bd, 0x15bef: 0xe0000862,
-	0x15bf0: 0x40073c20, 0x15bf1: 0x40425020, 0x15bf2: 0x40283c20, 0x15bf3: 0x40283e20,
-	0x15bf4: 0x40284020, 0x15bf5: 0x40284220, 0x15bf6: 0x40284420, 0x15bf7: 0x40284620,
-	// Block 0x570, offset 0x15c00
-	0x15c01: 0xa000f902, 0x15c02: 0xa000f802, 0x15c03: 0xa000f402,
-	0x15c05: 0x40410620, 0x15c06: 0x40410820, 0x15c07: 0x40411020,
-	0x15c08: 0x40411220, 0x15c09: 0x40410020, 0x15c0a: 0x40410220,
-	0x15c0f: 0x40411420,
-	0x15c10: 0x40410a20, 0x15c13: 0x40410420,
-	0x15c14: 0x40410c20, 0x15c15: 0x40411c20, 0x15c16: 0x40411e20, 0x15c17: 0x40412020,
-	0x15c18: 0x40412220, 0x15c19: 0x40412420, 0x15c1a: 0x40412620, 0x15c1b: 0x40412820,
-	0x15c1c: 0x40412a20, 0x15c1d: 0x40412c20, 0x15c1e: 0x40412e20, 0x15c1f: 0x40413020,
-	0x15c20: 0x40413220, 0x15c21: 0x40413420, 0x15c22: 0x40413620, 0x15c23: 0x40413820,
-	0x15c24: 0x40413a20, 0x15c25: 0x40413c20, 0x15c26: 0x40413e20, 0x15c27: 0x40414020,
-	0x15c28: 0x40414220, 0x15c2a: 0x40414420, 0x15c2b: 0x40414620,
-	0x15c2c: 0x40414820, 0x15c2d: 0x40414a20, 0x15c2e: 0x40414c20, 0x15c2f: 0x40414e20,
-	0x15c30: 0x40415220, 0x15c32: 0x40415420, 0x15c33: 0xe000a93e,
-	0x15c35: 0x40415620, 0x15c36: 0xe000a92f,
-	0x15c38: 0x40411620, 0x15c39: 0x40411820,
-	0x15c3c: 0xa000fa02, 0x15c3e: 0x40415a20, 0x15c3f: 0x40415c20,
-	// Block 0x571, offset 0x15c40
-	0x15c40: 0x40415e20, 0x15c41: 0x40416020, 0x15c42: 0x40416220,
-	0x15c47: 0x40416420,
-	0x15c48: 0x40416620, 0x15c4b: 0x40416820,
-	0x15c4c: 0x40416a20, 0x15c4d: 0x40415a20,
-	0x15c51: 0x40411a20,
-	0x15c59: 0xe000a932, 0x15c5a: 0xe000a935, 0x15c5b: 0xe000a938,
-	0x15c5c: 0x40415820, 0x15c5e: 0xe000a93b,
-	0x15c66: 0xe0000170, 0x15c67: 0xe00001fe,
-	0x15c68: 0xe0000319, 0x15c69: 0xe00003f3, 0x15c6a: 0xe00004ce, 0x15c6b: 0xe0000598,
-	0x15c6c: 0xe0000663, 0x15c6d: 0xe000070b, 0x15c6e: 0xe00007b7, 0x15c6f: 0xe000085c,
-	0x15c70: 0xa000f702, 0x15c71: 0xa000f602, 0x15c72: 0x40410e20, 0x15c73: 0x4040fe20,
-	0x15c74: 0x4040fc20, 0x15c75: 0x40415020,
-	// Block 0x572, offset 0x15c80
-	0x15c80: 0xa0000000, 0x15c81: 0xa0000000, 0x15c82: 0xa0000000, 0x15c83: 0xa0000000,
-	0x15c84: 0xa0000000, 0x15c85: 0xa0000000, 0x15c86: 0xa0000000, 0x15c87: 0xa0000000,
-	0x15c88: 0xa0000000, 0x15c89: 0x40020020, 0x15c8a: 0x40020220, 0x15c8b: 0x40020420,
-	0x15c8c: 0x40020620, 0x15c8d: 0x40020820, 0x15c8e: 0xa0000000, 0x15c8f: 0xa0000000,
-	0x15c90: 0xa0000000, 0x15c91: 0xa0000000, 0x15c92: 0xa0000000, 0x15c93: 0xa0000000,
-	0x15c94: 0xa0000000, 0x15c95: 0xa0000000, 0x15c96: 0xa0000000, 0x15c97: 0xa0000000,
-	0x15c98: 0xa0000000, 0x15c99: 0xa0000000, 0x15c9a: 0xa0000000, 0x15c9b: 0xa0000000,
-	0x15c9c: 0xa0000000, 0x15c9d: 0xa0000000, 0x15c9e: 0xa0000000, 0x15c9f: 0xa0000000,
-	0x15ca0: 0x40021220, 0x15ca1: 0x4002ba20, 0x15ca2: 0x4003e020, 0x15ca3: 0x4004ea20,
-	0x15ca4: 0x4027de20, 0x15ca5: 0x4004ec20, 0x15ca6: 0x4004e620, 0x15ca7: 0x4003d220,
-	0x15ca8: 0x4003f420, 0x15ca9: 0x4003f620, 0x15caa: 0x4004d820, 0x15cab: 0x40093820,
-	0x15cac: 0x40024020, 0x15cad: 0x40021a20, 0x15cae: 0x4002e420, 0x15caf: 0x4004e220,
-	0x15cb0: 0x4029cc20, 0x15cb1: 0x4029ce20, 0x15cb2: 0x4029d020, 0x15cb3: 0x4029d220,
-	0x15cb4: 0x4029d420, 0x15cb5: 0x4029d620, 0x15cb6: 0x4029d820, 0x15cb7: 0x4029da20,
-	0x15cb8: 0x4029dc20, 0x15cb9: 0x4029de20, 0x15cba: 0x40026c20, 0x15cbb: 0x40026220,
-	0x15cbc: 0x40094020, 0x15cbd: 0x40094220, 0x15cbe: 0x40094420, 0x15cbf: 0x4002c420,
-	// Block 0x573, offset 0x15cc0
-	0x15cc0: 0x4004d620, 0x15cc1: 0xce2d0be1, 0x15cc2: 0x002c0a88, 0x15cc3: 0xc33531a1,
-	0x15cc4: 0x002c6288, 0x15cc5: 0xce0a0be1, 0x15cc6: 0x002d0888, 0x15cc7: 0x002d2288,
-	0x15cc8: 0x002d6888, 0x15cc9: 0x002d9a88, 0x15cca: 0x002dcc88, 0x15ccb: 0x002dfe88,
-	0x15ccc: 0xc0030002, 0x15ccd: 0x002e8288, 0x15cce: 0xc53a31a1, 0x15ccf: 0xc33f31a1,
-	0x15cd0: 0x002f2c88, 0x15cd1: 0x002f5688, 0x15cd2: 0x002f7a88, 0x15cd3: 0xc34331a1,
-	0x15cd4: 0x00302c88, 0x15cd5: 0x00306c88, 0x15cd6: 0x0030be88, 0x15cd7: 0x0030e288,
-	0x15cd8: 0x0030f688, 0x15cd9: 0x00310088, 0x15cda: 0xce3294a1, 0x15cdb: 0x4003f820,
-	0x15cdc: 0x4004e420, 0x15cdd: 0x4003fa20, 0x15cde: 0x40062420, 0x15cdf: 0x40021620,
-	0x15ce0: 0x40061e20, 0x15ce1: 0xce2b0be1, 0x15ce2: 0x402c0a20, 0x15ce3: 0xc33331a1,
-	0x15ce4: 0x402c6220, 0x15ce5: 0xce080be1, 0x15ce6: 0x402d0820, 0x15ce7: 0x402d2220,
-	0x15ce8: 0x402d6820, 0x15ce9: 0x402d9a20, 0x15cea: 0x402dcc20, 0x15ceb: 0x402dfe20,
-	0x15cec: 0xc0000002, 0x15ced: 0x402e8220, 0x15cee: 0xc52731a1, 0x15cef: 0xc33d31a1,
-	0x15cf0: 0x402f2c20, 0x15cf1: 0x402f5620, 0x15cf2: 0x402f7a20, 0x15cf3: 0xc34131a1,
-	0x15cf4: 0x40302c20, 0x15cf5: 0x40306c20, 0x15cf6: 0x4030be20, 0x15cf7: 0x4030e220,
-	0x15cf8: 0x4030f620, 0x15cf9: 0x40310020, 0x15cfa: 0xce2f94a1, 0x15cfb: 0x4003fc20,
-	0x15cfc: 0x40094820, 0x15cfd: 0x4003fe20, 0x15cfe: 0x40094c20, 0x15cff: 0xa0000000,
-	// Block 0x574, offset 0x15d00
-	0x15d00: 0xe00008f5, 0x15d01: 0xe00008ef, 0x15d02: 0xe0000921, 0x15d03: 0xe0000969,
-	0x15d04: 0xe000095b, 0x15d05: 0xe000094d, 0x15d06: 0xe00009dd, 0x15d07: 0xe0000a53,
-	0x15d08: 0xe0000ae8, 0x15d09: 0xe0000ae2, 0x15d0a: 0xe0000af4, 0x15d0b: 0xe0000b20,
-	0x15d0c: 0xe0000c2b, 0x15d0d: 0xe0000c25, 0x15d0e: 0xe0000c37, 0x15d0f: 0xe0000c43,
-	0x15d10: 0xe0000ab3, 0x15d11: 0xe0000d63, 0x15d12: 0xe0000d9a, 0x15d13: 0x002ee483,
-	0x15d14: 0xe0000da6, 0x15d15: 0xe0000de6, 0x15d16: 0xe0000dd2, 0x15d17: 0x40093e20,
-	0x15d18: 0xe0000e12, 0x15d19: 0xe0000fe1, 0x15d1a: 0xe0000fdb, 0x15d1b: 0xe0000fed,
-	0x15d1c: 0xe0000fff, 0x15d1d: 0xe0001102, 0x15d1e: 0x00318888, 0x15d1f: 0xe0000f7b,
-	0x15d20: 0xe00008f2, 0x15d21: 0xe00008ec, 0x15d22: 0xe000091e, 0x15d23: 0xe0000966,
-	0x15d24: 0xe0000958, 0x15d25: 0xe000094a, 0x15d26: 0xe00009d5, 0x15d27: 0xe0000a4d,
-	0x15d28: 0xe0000ae5, 0x15d29: 0xe0000adf, 0x15d2a: 0xe0000af1, 0x15d2b: 0xe0000b1d,
-	0x15d2c: 0xe0000c28, 0x15d2d: 0xe0000c22, 0x15d2e: 0xe0000c34, 0x15d2f: 0xe0000c40,
-	0x15d30: 0xe0000aad, 0x15d31: 0xe0000d60, 0x15d32: 0xe0000d97, 0x15d33: 0x402ee420,
-	0x15d34: 0xe0000da3, 0x15d35: 0xe0000de3, 0x15d36: 0xe0000dcf, 0x15d37: 0x40093c20,
-	0x15d38: 0xe0000e0f, 0x15d39: 0xe0000fde, 0x15d3a: 0xe0000fd8, 0x15d3b: 0xe0000fea,
-	0x15d3c: 0xe0000ffc, 0x15d3d: 0xe00010ff, 0x15d3e: 0x40318820, 0x15d3f: 0xe0001114,
-	// Block 0x575, offset 0x15d40
-	0x15d40: 0xe0000983, 0x15d41: 0xe0000980, 0x15d42: 0xe00008fb, 0x15d43: 0xe00008f8,
-	0x15d44: 0x002be083, 0x15d45: 0x402be020, 0x15d46: 0x002c3c83, 0x15d47: 0x402c3c20,
-	0x15d48: 0xe0000a3e, 0x15d49: 0xe0000a3b, 0x15d4a: 0xe0000a4a, 0x15d4b: 0xe0000a47,
-	0x15d4c: 0xe0000a44, 0x15d4d: 0xe0000a41, 0x15d4e: 0xe0000a86, 0x15d4f: 0xe0000a83,
-	0x15d50: 0xe0000aaa, 0x15d51: 0xe0000aa7, 0x15d52: 0xe0000b46, 0x15d53: 0xe0000b43,
-	0x15d54: 0xe0000aee, 0x15d55: 0xe0000aeb, 0x15d56: 0xe0000b2c, 0x15d57: 0xe0000b29,
-	0x15d58: 0x002c9a83, 0x15d59: 0x402c9a20, 0x15d5a: 0xe0000b1a, 0x15d5b: 0xe0000b17,
-	0x15d5c: 0xe0000bb8, 0x15d5d: 0xe0000bb5, 0x15d5e: 0xe0000bb2, 0x15d5f: 0xe0000baf,
-	0x15d60: 0xe0000bc4, 0x15d61: 0xe0000bc1, 0x15d62: 0xe0000bca, 0x15d63: 0xe0000bc7,
-	0x15d64: 0xe0000bee, 0x15d65: 0xe0000beb, 0x15d66: 0xe0000c1b, 0x15d67: 0xe0000c18,
-	0x15d68: 0xe0000c51, 0x15d69: 0xe0000c4e, 0x15d6a: 0xe0000c60, 0x15d6b: 0xe0000c5d,
-	0x15d6c: 0xe0000c31, 0x15d6d: 0xe0000c2e, 0x15d6e: 0xe0000c5a, 0x15d6f: 0xe0000c57,
-	0x15d70: 0xe0000c54, 0x15d71: 0x402da220, 0x15d72: 0xf0000a0a, 0x15d73: 0xf0000404,
-	0x15d74: 0xe0000c8a, 0x15d75: 0xe0000c87, 0x15d76: 0xe0000c9f, 0x15d77: 0xe0000c9c,
-	0x15d78: 0x402f7220, 0x15d79: 0xe0000ccc, 0x15d7a: 0xe0000cc9, 0x15d7b: 0xe0000cd8,
-	0x15d7c: 0xe0000cd5, 0x15d7d: 0xe0000cd2, 0x15d7e: 0xe0000ccf, 0x15d7f: 0xe0000d04,
-	// Block 0x576, offset 0x15d80
-	0x15d80: 0xe0000cfe, 0x15d81: 0x002e2483, 0x15d82: 0x402e2420, 0x15d83: 0x002ea083,
-	0x15d84: 0x402ea020, 0x15d85: 0xe0000d6f, 0x15d86: 0xe0000d6c, 0x15d87: 0xe0000d5d,
-	0x15d88: 0xe0000d5a, 0x15d89: 0xf0000404, 0x15d8a: 0x002eda88, 0x15d8b: 0x402eda20,
-	0x15d8c: 0xe0000e2e, 0x15d8d: 0xe0000e2b, 0x15d8e: 0xe0000da0, 0x15d8f: 0xe0000d9d,
-	0x15d90: 0xe0000de0, 0x15d91: 0xe0000ddd, 0x15d92: 0xe0000e93, 0x15d93: 0xe0000e8f,
-	0x15d94: 0xe0000eca, 0x15d95: 0xe0000ec7, 0x15d96: 0xe0000edc, 0x15d97: 0xe0000ed9,
-	0x15d98: 0xe0000ed0, 0x15d99: 0xe0000ecd, 0x15d9a: 0x002fe883, 0x15d9b: 0x402fe820,
-	0x15d9c: 0xe0000f2d, 0x15d9d: 0xe0000f2a, 0x15d9e: 0xe0000f47, 0x15d9f: 0xe0000f44,
-	0x15da0: 0xe0000f33, 0x15da1: 0xe0000f30, 0x15da2: 0xe0000f99, 0x15da3: 0xe0000f96,
-	0x15da4: 0xe0000f8a, 0x15da5: 0xe0000f87, 0x15da6: 0x00303688, 0x15da7: 0x40303620,
-	0x15da8: 0xe000102b, 0x15da9: 0xe0001028, 0x15daa: 0xe000103f, 0x15dab: 0xe000103c,
-	0x15dac: 0xe0000fe7, 0x15dad: 0xe0000fe4, 0x15dae: 0xe0000ff9, 0x15daf: 0xe0000ff6,
-	0x15db0: 0xe0001025, 0x15db1: 0xe0001022, 0x15db2: 0xe0001039, 0x15db3: 0xe0001036,
-	0x15db4: 0xe00010d8, 0x15db5: 0xe00010d5, 0x15db6: 0xe000110e, 0x15db7: 0xe000110b,
-	0x15db8: 0xe0001117, 0x15db9: 0x00312c83, 0x15dba: 0x40312c20, 0x15dbb: 0x00312e83,
-	0x15dbc: 0x40312e20, 0x15dbd: 0xe0001147, 0x15dbe: 0xe0001144, 0x15dbf: 0xe0000f64,
-	// Block 0x577, offset 0x15dc0
-	0x15dc0: 0xe00009b1, 0x15dc1: 0xe00009ae, 0x15dc2: 0xe0000a22, 0x15dc3: 0xe0000a1f,
-	0x15dc4: 0xe0000a28, 0x15dc5: 0xe0000a25, 0x15dc6: 0xe0000a2e, 0x15dc7: 0xe0000a2b,
-	0x15dc8: 0xe000a944, 0x15dc9: 0xe000a941, 0x15dca: 0xe0000a8c, 0x15dcb: 0xe0000a89,
-	0x15dcc: 0xe0000a98, 0x15dcd: 0xe0000a95, 0x15dce: 0xe0000aa4, 0x15dcf: 0xe0000aa1,
-	0x15dd0: 0xe0000a92, 0x15dd1: 0xe0000a8f, 0x15dd2: 0xe0000a9e, 0x15dd3: 0xe0000a9b,
-	0x15dd4: 0xe0000b55, 0x15dd5: 0xe0000b51, 0x15dd6: 0xe0000b4d, 0x15dd7: 0xe0000b49,
-	0x15dd8: 0xe0000b7c, 0x15dd9: 0xe0000b79, 0x15dda: 0xe0000b82, 0x15ddb: 0xe0000b7f,
-	0x15ddc: 0xe0000b39, 0x15ddd: 0xe0000b35, 0x15dde: 0xe0000b8c, 0x15ddf: 0xe0000b89,
-	0x15de0: 0xe0000bd0, 0x15de1: 0xe0000bcd, 0x15de2: 0xe0000c00, 0x15de3: 0xe0000bfd,
-	0x15de4: 0xe0000c0c, 0x15de5: 0xe0000c09, 0x15de6: 0xe0000bfa, 0x15de7: 0xe0000bf7,
-	0x15de8: 0xe0000c06, 0x15de9: 0xe0000c03, 0x15dea: 0xe0000c12, 0x15deb: 0xe0000c0f,
-	0x15dec: 0xe0000c7e, 0x15ded: 0xe0000c7b, 0x15dee: 0xe0000c4a, 0x15def: 0xe0000c46,
-	0x15df0: 0xe0000c93, 0x15df1: 0xe0000c90, 0x15df2: 0xe0000cab, 0x15df3: 0xe0000ca8,
-	0x15df4: 0xe0000cb1, 0x15df5: 0xe0000cae, 0x15df6: 0xe0000cde, 0x15df7: 0xe0000cdb,
-	0x15df8: 0xe0000ce5, 0x15df9: 0xe0000ce1, 0x15dfa: 0xe0000cf2, 0x15dfb: 0xe0000cef,
-	0x15dfc: 0xe0000cec, 0x15dfd: 0xe0000ce9, 0x15dfe: 0xe0000d1e, 0x15dff: 0xe0000d1b,
-	// Block 0x578, offset 0x15e00
-	0x15e00: 0xe0000d24, 0x15e01: 0xe0000d21, 0x15e02: 0xe0000d2a, 0x15e03: 0xe0000d27,
-	0x15e04: 0xe0000d69, 0x15e05: 0xe0000d66, 0x15e06: 0xe0000d7b, 0x15e07: 0xe0000d78,
-	0x15e08: 0xe0000d87, 0x15e09: 0xe0000d84, 0x15e0a: 0xe0000d81, 0x15e0b: 0xe0000d7e,
-	0x15e0c: 0xe000258a, 0x15e0d: 0xe0002587, 0x15e0e: 0xe0000df5, 0x15e0f: 0xe0000df1,
-	0x15e10: 0xe0000e3d, 0x15e11: 0xe0000e39, 0x15e12: 0xe0002590, 0x15e13: 0xe000258d,
-	0x15e14: 0xe0000ea7, 0x15e15: 0xe0000ea4, 0x15e16: 0xe0000ead, 0x15e17: 0xe0000eaa,
-	0x15e18: 0xe0000ed6, 0x15e19: 0xe0000ed3, 0x15e1a: 0xe0000ef4, 0x15e1b: 0xe0000ef1,
-	0x15e1c: 0xe0000efb, 0x15e1d: 0xe0000ef7, 0x15e1e: 0xe0000f02, 0x15e1f: 0xe0000eff,
-	0x15e20: 0xe0000f41, 0x15e21: 0xe0000f3e, 0x15e22: 0xe0000f53, 0x15e23: 0xe0000f50,
-	0x15e24: 0xe00025c3, 0x15e25: 0xe00025c0, 0x15e26: 0xe0000f3a, 0x15e27: 0xe0000f36,
-	0x15e28: 0xe0000f5a, 0x15e29: 0xe0000f56, 0x15e2a: 0xe0000f93, 0x15e2b: 0xe0000f90,
-	0x15e2c: 0xe0000f9f, 0x15e2d: 0xe0000f9c, 0x15e2e: 0xe0000fb1, 0x15e2f: 0xe0000fae,
-	0x15e30: 0xe0000fab, 0x15e31: 0xe0000fa8, 0x15e32: 0xe0001093, 0x15e33: 0xe0001090,
-	0x15e34: 0xe000109f, 0x15e35: 0xe000109c, 0x15e36: 0xe0001099, 0x15e37: 0xe0001096,
-	0x15e38: 0xe0001032, 0x15e39: 0xe000102e, 0x15e3a: 0xe0001046, 0x15e3b: 0xe0001042,
-	0x15e3c: 0xe00010a9, 0x15e3d: 0xe00010a6, 0x15e3e: 0xe00010af, 0x15e3f: 0xe00010ac,
-	// Block 0x579, offset 0x15e40
-	0x15e40: 0xe0000b03, 0x15e41: 0xe0000aff, 0x15e42: 0xe0000b13, 0x15e43: 0xe0000b0f,
-	0x15e44: 0xe0000b0b, 0x15e45: 0xe0000b07, 0x15e46: 0xe0000b75, 0x15e47: 0xe0000b71,
-	0x15e48: 0xe0000c66, 0x15e49: 0xe0000c63, 0x15e4a: 0xe0000c78, 0x15e4b: 0xe0000c75,
-	0x15e4c: 0xe0000e84, 0x15e4d: 0xe0000e81, 0x15e4e: 0xe0000e44, 0x15e4f: 0xe0000e41,
-	0x15e50: 0xe000375b, 0x15e51: 0xe0003758, 0x15e52: 0xe0000db5, 0x15e53: 0xe0000db1,
-	0x15e54: 0xe0000dc5, 0x15e55: 0xe0000dc1, 0x15e56: 0xe0000dbd, 0x15e57: 0xe0000db9,
-	0x15e58: 0xe0000e8b, 0x15e59: 0xe0000e87, 0x15e5a: 0xe0003761, 0x15e5b: 0xe000375e,
-	0x15e5c: 0xe0000e65, 0x15e5d: 0xe0000e61, 0x15e5e: 0xe0000e75, 0x15e5f: 0xe0000e71,
-	0x15e60: 0xe0000e6d, 0x15e61: 0xe0000e69, 0x15e62: 0xe0000e7d, 0x15e63: 0xe0000e79,
-	0x15e64: 0xe000108d, 0x15e65: 0xe000108a, 0x15e66: 0xe000104d, 0x15e67: 0xe000104a,
-	0x15e68: 0xe0001066, 0x15e69: 0xe0001062, 0x15e6a: 0xe000106e, 0x15e6b: 0xe000106a,
-	0x15e6c: 0xe000107e, 0x15e6d: 0xe000107a, 0x15e6e: 0xe0001076, 0x15e6f: 0xe0001072,
-	0x15e70: 0xe0001086, 0x15e71: 0xe0001082, 0x15e72: 0xe0001108, 0x15e73: 0xe0001105,
-	0x15e74: 0xe0001135, 0x15e75: 0xe0001132, 0x15e76: 0xe000112f, 0x15e77: 0xe000112c,
-	0x15e78: 0xe000111d, 0x15e79: 0xe000111a, 0x15e7a: 0xe0000d0a, 0x15e7b: 0xe0000d07,
-	0x15e7c: 0x0030d888, 0x15e7d: 0x4030d820, 0x15e7e: 0x00312088, 0x15e7f: 0x40312020,
-	// Block 0x57a, offset 0x15e80
-	0x15e80: 0xa0000000, 0x15e81: 0xa0000000, 0x15e82: 0xa0000000, 0x15e83: 0xa0000000,
-	0x15e84: 0xa0000000, 0x15e86: 0x40096620, 0x15e87: 0x40096a20,
-	0x15e88: 0x40070820, 0x15e89: 0x4004f220, 0x15e8a: 0x4004f620, 0x15e8b: 0x4027e620,
-	0x15e8c: 0x40024820, 0x15e8d: 0x40024a20, 0x15e8e: 0x40070e20, 0x15e8f: 0x40071020,
-	0x15e90: 0xae600000, 0x15e91: 0xae600000, 0x15e92: 0xae600000, 0x15e93: 0xae600000,
-	0x15e94: 0xae600000, 0x15e95: 0xae600000, 0x15e96: 0xae600000, 0x15e97: 0xae600000,
-	0x15e98: 0xa1e00000, 0x15e99: 0xa1f00000, 0x15e9a: 0xa2000000, 0x15e9b: 0x40026420,
-	0x15e9e: 0x40027020, 0x15e9f: 0x4002cc20,
-	0x15ea0: 0x403aa220, 0x15ea1: 0x40393a20, 0x15ea2: 0x40393620, 0x15ea3: 0x40393821,
-	0x15ea4: 0x403a7421, 0x15ea5: 0x40393824, 0x15ea6: 0x003a9344, 0x15ea7: 0xce350151,
-	0x15ea8: 0x40393c20, 0x15ea9: 0x403a6824, 0x15eaa: 0x40395620, 0x15eab: 0x40395820,
-	0x15eac: 0x40396420, 0x15ead: 0xce390171, 0x15eae: 0x40397420, 0x15eaf: 0x40398820,
-	0x15eb0: 0x40398a20, 0x15eb1: 0x4039a420, 0x15eb2: 0x4039a620, 0x15eb3: 0x4039c620,
-	0x15eb4: 0x4039c820, 0x15eb5: 0x4039dc20, 0x15eb6: 0x4039de20, 0x15eb7: 0x4039e620,
-	0x15eb8: 0x4039e820, 0x15eb9: 0x4039ee20, 0x15eba: 0x4039f020, 0x15ebb: 0x403a3820,
-	0x15ebc: 0x403a3a20, 0x15ebd: 0x403a9c20, 0x15ebe: 0x403a9e20, 0x15ebf: 0x403aa020,
-	// Block 0x57b, offset 0x15ec0
-	0x15ec0: 0xa0000000, 0x15ec1: 0x4039fc20, 0x15ec2: 0x403a1220, 0x15ec3: 0x403a1c22,
-	0x15ec4: 0x403a4020, 0x15ec5: 0x403a4e20, 0x15ec6: 0x403a5620, 0x15ec7: 0xce3d0171,
-	0x15ec8: 0xce3f0171, 0x15ec9: 0xce430171, 0x15eca: 0xce450171, 0x15ecb: 0xa000b002,
-	0x15ecc: 0xa000b202, 0x15ecd: 0xa000b102, 0x15ece: 0xa1e0ad02, 0x15ecf: 0xa000af02,
-	0x15ed0: 0xa000ae02, 0x15ed1: 0xa210ba02, 0x15ed2: 0xa220bc02, 0x15ed3: 0xae60bd02,
-	0x15ed4: 0xae60be02, 0x15ed5: 0xadc0bf02, 0x15ed6: 0xadc0c102, 0x15ed7: 0xae60c202,
-	0x15ed8: 0xae60c302, 0x15ed9: 0xae60c402, 0x15eda: 0xae60c502, 0x15edb: 0xae60c602,
-	0x15edc: 0xadc0c702, 0x15edd: 0xae60c802, 0x15ede: 0xae60c902, 0x15edf: 0xadc0c002,
-	0x15ee0: 0xe000015e, 0x15ee1: 0xe00001e6, 0x15ee2: 0xe0000301, 0x15ee3: 0xe00003db,
-	0x15ee4: 0xe00004b6, 0x15ee5: 0xe0000580, 0x15ee6: 0xe000064b, 0x15ee7: 0xe00006f3,
-	0x15ee8: 0xe000079f, 0x15ee9: 0xe0000844, 0x15eea: 0x4004ee20, 0x15eeb: 0x40024c20,
-	0x15eec: 0x40024e20, 0x15eed: 0x4004de20, 0x15eee: 0x40393a20, 0x15eef: 0x403a1020,
-	0x15ef0: 0xa230d102, 0x15ef1: 0x40393823, 0x15ef2: 0x40393822, 0x15ef3: 0x40393825,
-	0x15ef4: 0x00391c84, 0x15ef5: 0xf0000404, 0x15ef6: 0xf0000404, 0x15ef7: 0xe000a94a,
-	0x15ef8: 0xe0003275, 0x15ef9: 0x40395821, 0x15efa: 0x40395c20, 0x15efb: 0x40393e20,
-	0x15efc: 0x40395820, 0x15efd: 0x40396020, 0x15efe: 0x40394020, 0x15eff: 0x40396220,
-	// Block 0x57c, offset 0x15f00
-	0x15f00: 0x40394220, 0x15f01: 0x40396620, 0x15f02: 0x40397820, 0x15f03: 0x40396620,
-	0x15f04: 0x40396820, 0x15f05: 0x40396c20, 0x15f06: 0x40396a20, 0x15f07: 0x40396e20,
-	0x15f08: 0x40398a21, 0x15f09: 0x40398a20, 0x15f0a: 0x40399020, 0x15f0b: 0x40399220,
-	0x15f0c: 0x40399420, 0x15f0d: 0x40399620, 0x15f0e: 0x40399820, 0x15f0f: 0x40399a20,
-	0x15f10: 0x40399c20, 0x15f11: 0x4039a621, 0x15f12: 0x4039aa20, 0x15f13: 0x4039a620,
-	0x15f14: 0x4039ae20, 0x15f15: 0x4039b020, 0x15f16: 0x4039b820, 0x15f17: 0x4039b420,
-	0x15f18: 0x4039b620, 0x15f19: 0x4039b820, 0x15f1a: 0x4039ca20, 0x15f1b: 0x4039cc20,
-	0x15f1c: 0x4039ce20, 0x15f1d: 0x4039e020, 0x15f1e: 0x4039e220, 0x15f1f: 0x4039ea20,
-	0x15f20: 0x4039f220, 0x15f21: 0x4039fe20, 0x15f22: 0x403a0020, 0x15f23: 0x403a0220,
-	0x15f24: 0x403a0420, 0x15f25: 0x403a0820, 0x15f26: 0x403a0a20, 0x15f27: 0x403a1420,
-	0x15f28: 0x403a1620, 0x15f29: 0x403a1c20, 0x15f2a: 0x403a1c21, 0x15f2b: 0x403a2020,
-	0x15f2c: 0x403a2220, 0x15f2d: 0x403a2620, 0x15f2e: 0x403a2820, 0x15f2f: 0x403a2021,
-	0x15f30: 0x403a2c20, 0x15f31: 0x403a2e20, 0x15f32: 0x403a3020, 0x15f33: 0x403a3220,
-	0x15f34: 0x403a3420, 0x15f35: 0x403a4220, 0x15f36: 0x403a4420, 0x15f37: 0x403a4620,
-	0x15f38: 0x403a4820, 0x15f39: 0x403a6020, 0x15f3a: 0x403a5820, 0x15f3b: 0x403a5c21,
-	0x15f3c: 0x403a5c20, 0x15f3d: 0x403a5e20, 0x15f3e: 0x403a6823, 0x15f3f: 0x40396c20,
-	// Block 0x57d, offset 0x15f40
-	0x15f40: 0x003a6883, 0x15f41: 0x403a6822, 0x15f42: 0xe000a947, 0x15f43: 0x403a6825,
-	0x15f44: 0x403a7620, 0x15f45: 0x403a7820, 0x15f46: 0x403a7a20, 0x15f47: 0x403a7422,
-	0x15f48: 0x403a7e20, 0x15f49: 0x403a7423, 0x15f4a: 0x403a8220, 0x15f4b: 0x403a8420,
-	0x15f4c: 0xce410171, 0x15f4d: 0x403a9225, 0x15f4e: 0x403a9620, 0x15f4f: 0x403a8620,
-	0x15f50: 0x403a9224, 0x15f51: 0x403a9a20, 0x15f52: 0x403a9222, 0x15f53: 0xe00032ab,
-	0x15f54: 0x4002e820, 0x15f55: 0xce3b0171, 0x15f56: 0xae600000, 0x15f57: 0xae600000,
-	0x15f58: 0xae600000, 0x15f59: 0xae600000, 0x15f5a: 0xae600000, 0x15f5b: 0xae600000,
-	0x15f5c: 0xae600000, 0x15f5d: 0xa0000000, 0x15f5e: 0x40071220, 0x15f5f: 0xae600000,
-	0x15f60: 0xae600000, 0x15f61: 0xae600000, 0x15f62: 0xae600000, 0x15f63: 0xadc00000,
-	0x15f64: 0xae600000, 0x15f65: 0x003a7484, 0x15f66: 0x003a9084, 0x15f67: 0xae600000,
-	0x15f68: 0xae600000, 0x15f69: 0x40071420, 0x15f6a: 0xadc00000, 0x15f6b: 0xae600000,
-	0x15f6c: 0xae600000, 0x15f6d: 0xadc00000, 0x15f6e: 0x40399e20, 0x15f6f: 0x4039ba20,
-	0x15f70: 0xe0000161, 0x15f71: 0xe00001e9, 0x15f72: 0xe0000304, 0x15f73: 0xe00003de,
-	0x15f74: 0xe00004b9, 0x15f75: 0xe0000583, 0x15f76: 0xe000064e, 0x15f77: 0xe00006f6,
-	0x15f78: 0xe00007a2, 0x15f79: 0xe0000847, 0x15f7a: 0x4039d020, 0x15f7b: 0x4039e420,
-	0x15f7c: 0x4039f420, 0x15f7d: 0xe0001553, 0x15f7e: 0xe0001779, 0x15f7f: 0x403a7020,
-	// Block 0x57e, offset 0x15f80
-	0x15f80: 0x00021284, 0x15f81: 0x00021284, 0x15f82: 0x00021284, 0x15f83: 0x00021284,
-	0x15f84: 0x00021284, 0x15f85: 0x00021284, 0x15f86: 0x00021284, 0x15f87: 0x0002129b,
-	0x15f88: 0x00021284, 0x15f89: 0x00021284, 0x15f8a: 0x00021284, 0x15f8b: 0xa0000000,
-	0x15f8c: 0x40021221, 0x15f8d: 0x40021222, 0x15f8e: 0xa0000000, 0x15f8f: 0xa0000000,
-	0x15f90: 0x40022620, 0x15f91: 0x0002269b, 0x15f92: 0x40022820, 0x15f93: 0x40022a20,
-	0x15f94: 0x40022c20, 0x15f95: 0x40022e20, 0x15f96: 0x4004c420, 0x15f97: 0x40021820,
-	0x15f98: 0x4003d420, 0x15f99: 0x4003d620, 0x15f9a: 0x4003d820, 0x15f9b: 0x4003da20,
-	0x15f9c: 0x4003e220, 0x15f9d: 0x4003e420, 0x15f9e: 0x4003e620, 0x15f9f: 0x4003e820,
-	0x15fa0: 0x4004f820, 0x15fa1: 0x4004fa20, 0x15fa2: 0x40050220, 0x15fa3: 0x40050420,
-	0x15fa4: 0x0002e484, 0x15fa5: 0xf0001f04, 0x15fa6: 0xf0000404, 0x15fa7: 0x40050620,
-	0x15fa8: 0x40020e20, 0x15fa9: 0x40021020, 0x15faa: 0xa0000000, 0x15fab: 0xa0000000,
-	0x15fac: 0xa0000000, 0x15fad: 0xa0000000, 0x15fae: 0xa0000000, 0x15faf: 0x0002129b,
-	0x15fb0: 0x4004f020, 0x15fb1: 0x4004f420, 0x15fb2: 0x40050e20, 0x15fb3: 0xf0001f04,
-	0x15fb4: 0xf0000404, 0x15fb5: 0x40051020, 0x15fb6: 0xf0001f04, 0x15fb7: 0xf0000404,
-	0x15fb8: 0x40051620, 0x15fb9: 0x4003dc20, 0x15fba: 0x4003de20, 0x15fbb: 0x40051820,
-	0x15fbc: 0xf0001f04, 0x15fbd: 0x4002e020, 0x15fbe: 0x40021420, 0x15fbf: 0x40051a20,
-	// Block 0x57f, offset 0x15fc0
-	0x15fc0: 0x40073420, 0x15fc1: 0x40073620,
-	0x15fd3: 0x003a269a,
-	0x15fd4: 0x003a2699, 0x15fd5: 0x003a2697, 0x15fd6: 0x003a2698, 0x15fd7: 0x003a7c9a,
-	0x15fd8: 0x003a7c99, 0x15fd9: 0x003a7a9a, 0x15fda: 0x003a7a99, 0x15fdb: 0x003a7e9a,
-	0x15fdc: 0x003a7e99, 0x15fdd: 0xe000a94d, 0x15fde: 0x003a849a, 0x15fdf: 0x003a8499,
-	0x15fe0: 0x003a789a, 0x15fe1: 0x003a7899, 0x15fe2: 0x003a809a, 0x15fe3: 0x003a8099,
-	0x15fe4: 0x003a989a, 0x15fe5: 0x003a9899, 0x15fe6: 0x003a9897, 0x15fe7: 0x003a9898,
-	0x15fe8: 0x003a8e97, 0x15fe9: 0x003a8e98, 0x15fea: 0xe0001559, 0x15feb: 0xe0001556,
-	0x15fec: 0xe0001589, 0x15fed: 0xe0001586, 0x15fee: 0xe000158f, 0x15fef: 0xe000158c,
-	0x15ff0: 0xe000159b, 0x15ff1: 0xe0001598, 0x15ff2: 0xe0001595, 0x15ff3: 0xe0001592,
-	0x15ff4: 0xe00015a1, 0x15ff5: 0xe000159e, 0x15ff6: 0xe00015bf, 0x15ff7: 0xe00015bc,
-	0x15ff8: 0xe00015b9, 0x15ff9: 0xe00015ad, 0x15ffa: 0xe00015a7, 0x15ffb: 0xe00015a4,
-	0x15ffc: 0x003a929a, 0x15ffd: 0x003a9299, 0x15ffe: 0x003a9297, 0x15fff: 0x003a9298,
-	// Block 0x580, offset 0x16000
-	0x16000: 0xf0001a1a, 0x16001: 0xf0001a1a, 0x16002: 0xf0001a1a, 0x16003: 0xe0002502,
-	0x16004: 0xe0003242, 0x16005: 0xf0001a1a, 0x16006: 0xf0001a1a, 0x16007: 0xf0001a1a,
-	0x16008: 0xf0001a1a, 0x16009: 0xe0002505, 0x1600a: 0xe0003245, 0x1600b: 0xf0001a1a,
-	0x1600c: 0xf0001a1a, 0x1600d: 0xf0001a1a, 0x1600e: 0xf0001a1a, 0x1600f: 0xe000250b,
-	0x16010: 0xe0003251, 0x16011: 0xf0001a1a, 0x16012: 0xf0001a1a, 0x16013: 0xe000250e,
-	0x16014: 0xe0003263, 0x16015: 0xe000327b, 0x16016: 0xe0003281, 0x16017: 0xe0003287,
-	0x16018: 0xe0003299, 0x16019: 0xe0002514, 0x1601a: 0xe00032a8, 0x1601b: 0xf0001a1a,
-	0x1601c: 0xf0001a1a, 0x1601d: 0xe0003272, 0x1601e: 0xe0000003, 0x1601f: 0xe0000006,
-	0x16020: 0xe0000009, 0x16021: 0xe000000c, 0x16022: 0xe000000f, 0x16023: 0xe0000012,
-	0x16024: 0xe000156b, 0x16025: 0xe000156e, 0x16026: 0xe0001577, 0x16027: 0xe000157d,
-	0x16028: 0xe00015aa, 0x16029: 0xe00015b3, 0x1602a: 0xf0001919, 0x1602b: 0xf0001919,
-	0x1602c: 0xf0001919, 0x1602d: 0xf0001919, 0x1602e: 0xe000249f, 0x1602f: 0xe0003197,
-	0x16030: 0xf0001919, 0x16031: 0xf0001919, 0x16032: 0xf0001919, 0x16033: 0xf0001919,
-	0x16034: 0xe00024a5, 0x16035: 0xe00031a3, 0x16036: 0xf0001919, 0x16037: 0xf0001919,
-	0x16038: 0xf0001919, 0x16039: 0xf0001919, 0x1603a: 0xe00024ab, 0x1603b: 0xe00031ac,
-	0x1603c: 0xe00024ed, 0x1603d: 0xe00031fa, 0x1603e: 0xe00024f3, 0x1603f: 0xe0003200,
-	// Block 0x581, offset 0x16040
-	0x16040: 0xe0003206, 0x16041: 0xe0003224, 0x16042: 0xe0003230, 0x16043: 0xe00024f9,
-	0x16044: 0xe0003236, 0x16045: 0xf0001919, 0x16046: 0xe00024ff, 0x16047: 0xe000323f,
-	0x16048: 0xf0001919, 0x16049: 0xf0001919, 0x1604a: 0xf0001919, 0x1604b: 0xf0001919,
-	0x1604c: 0xf0001919, 0x1604d: 0xf0001919, 0x1604e: 0xe0002508, 0x1604f: 0xe000324e,
-	0x16050: 0xe000326f, 0x16051: 0xe000328a, 0x16052: 0xe000328d, 0x16053: 0xe0003296,
-	0x16054: 0xe000329c, 0x16055: 0xe0002511, 0x16056: 0xe00032a5, 0x16057: 0xe000155c,
-	0x16058: 0xe0001562, 0x16059: 0xe0001568, 0x1605a: 0xe0001571, 0x1605b: 0xe0001580,
-	0x1605c: 0xf0001717, 0x1605d: 0xf0001717, 0x1605e: 0xf0001717, 0x1605f: 0xf0001717,
-	0x16060: 0xf0001717, 0x16061: 0xf0001717, 0x16062: 0xf0001717, 0x16063: 0xf0001717,
-	0x16064: 0xf0001717, 0x16065: 0xf0001717, 0x16066: 0xf0001717, 0x16067: 0xf0001717,
-	0x16068: 0xf0001717, 0x16069: 0xf0001717, 0x1606a: 0xf0001717, 0x1606b: 0xf0001717,
-	0x1606c: 0xf0001717, 0x1606d: 0xf0001717, 0x1606e: 0xf0001717, 0x1606f: 0xf0001717,
-	0x16070: 0xf0001717, 0x16071: 0xf0001717, 0x16072: 0xf0001717, 0x16073: 0xf0001717,
-	0x16074: 0xf0001717, 0x16075: 0xf0001717, 0x16076: 0xf0001717, 0x16077: 0xf0001717,
-	0x16078: 0xf0001717, 0x16079: 0xf0001717, 0x1607a: 0xf0001717, 0x1607b: 0xf0001717,
-	0x1607c: 0xf0001717, 0x1607d: 0xf0001717, 0x1607e: 0xf0001717, 0x1607f: 0xf0001717,
-	// Block 0x582, offset 0x16080
-	0x16080: 0xf0001717, 0x16081: 0xf0001717, 0x16082: 0xf0001717, 0x16083: 0xf0001717,
-	0x16084: 0xe000320c, 0x16085: 0xe0003212, 0x16086: 0xe0003218, 0x16087: 0xe000321e,
-	0x16088: 0xe000322a, 0x16089: 0xf0001717, 0x1608a: 0xf0001717, 0x1608b: 0xf0001717,
-	0x1608c: 0xf0001717, 0x1608d: 0xf0001717, 0x1608e: 0xf0001717, 0x1608f: 0xf0001717,
-	0x16090: 0xf0001717, 0x16091: 0xf0001717, 0x16092: 0xf0001717, 0x16093: 0xf0001717,
-	0x16094: 0xf0001717, 0x16095: 0xf0001717, 0x16096: 0xf0001717, 0x16097: 0xf0001717,
-	0x16098: 0xf0001717, 0x16099: 0xf0001717, 0x1609a: 0xe0003278, 0x1609b: 0xe000327e,
-	0x1609c: 0xe0003284, 0x1609d: 0xe0003290, 0x1609e: 0xe000329f, 0x1609f: 0xe0001574,
-	0x160a0: 0xe0001583, 0x160a1: 0xf0001818, 0x160a2: 0xf0001818, 0x160a3: 0xf0001818,
-	0x160a4: 0xf0001818, 0x160a5: 0xf0001818, 0x160a6: 0xf0001818, 0x160a7: 0xf0001818,
-	0x160a8: 0xf0001818, 0x160a9: 0xf0001818, 0x160aa: 0xf0001818, 0x160ab: 0xe0003221,
-	0x160ac: 0xe000322d, 0x160ad: 0xf0001818, 0x160ae: 0xf0001818, 0x160af: 0xf0001818,
-	0x160b0: 0xe0003293, 0x160b1: 0xe00032a2, 0x160b2: 0xf0001818, 0x160b3: 0xe0003185,
-	0x160b4: 0xe0003188, 0x160b5: 0xe00024de, 0x160b6: 0xe00031eb, 0x160b7: 0xe00024e4,
-	0x160b8: 0xe00031f1, 0x160b9: 0xe00024ea, 0x160ba: 0xe00031f7, 0x160bb: 0xe00024c6,
-	0x160bc: 0xe00031cd, 0x160bd: 0xe00024cc, 0x160be: 0xe00031d9, 0x160bf: 0xe00024ba,
-	// Block 0x583, offset 0x160c0
-	0x160c0: 0xe00031bb, 0x160c1: 0xe00024b4, 0x160c2: 0xe00031b5, 0x160c3: 0xe00024c0,
-	0x160c4: 0xe00031c1, 0x160c5: 0xe00024d2, 0x160c6: 0xe00031df, 0x160c7: 0xe00024d8,
-	0x160c8: 0xe00031e5, 0x160c9: 0xf0001a1a, 0x160ca: 0xf0001a1a, 0x160cb: 0xf0001a1a,
-	0x160cc: 0xf0001a1a, 0x160cd: 0xf0001a1a, 0x160ce: 0xf0001a1a, 0x160cf: 0xf0001a1a,
-	0x160d0: 0xf0001a1a, 0x160d1: 0xe00024db, 0x160d2: 0xe00031e8, 0x160d3: 0xe00024e1,
-	0x160d4: 0xe00031ee, 0x160d5: 0xe00024e7, 0x160d6: 0xe00031f4, 0x160d7: 0xe00024c3,
-	0x160d8: 0xe00031ca, 0x160d9: 0xe00024c9, 0x160da: 0xe00031d6, 0x160db: 0xe00024b7,
-	0x160dc: 0xe00031b8, 0x160dd: 0xe00024b1, 0x160de: 0xe00031b2, 0x160df: 0xe00024bd,
-	0x160e0: 0xe00031be, 0x160e1: 0xe00024cf, 0x160e2: 0xe00031dc, 0x160e3: 0xe00024d5,
-	0x160e4: 0xe00031e2, 0x160e5: 0xf0001919, 0x160e6: 0xf0001919, 0x160e7: 0xf0001919,
-	0x160e8: 0xf0001919, 0x160e9: 0xf0001919, 0x160ea: 0xf0001919, 0x160eb: 0xf0001919,
-	0x160ec: 0xf0001919, 0x160ed: 0xf0001717, 0x160ee: 0xf0001717, 0x160ef: 0xf0001717,
-	0x160f0: 0xf0001717, 0x160f1: 0xf0001717, 0x160f2: 0xf0001717, 0x160f3: 0xf0001717,
-	0x160f4: 0xf0001818, 0x160f5: 0xf0001818, 0x160f6: 0xf0001818, 0x160f7: 0xf0001818,
-	0x160f8: 0xf0001818, 0x160f9: 0xf0001818, 0x160fa: 0xf0001818, 0x160fb: 0xf0001818,
-	0x160fc: 0xe000318b, 0x160fd: 0xe000318e, 0x160fe: 0x4004c020, 0x160ff: 0x4004c220,
-	// Block 0x584, offset 0x16100
-	0x16100: 0xa0000000, 0x16101: 0xa0000000, 0x16102: 0xa0000000, 0x16103: 0xa0000000,
-	0x16104: 0xa0000000, 0x16105: 0xa0000000, 0x16106: 0xa0000000, 0x16107: 0xa0000000,
-	0x16108: 0xa0000000, 0x16109: 0x40020020, 0x1610a: 0x40020220, 0x1610b: 0x40020420,
-	0x1610c: 0x40020620, 0x1610d: 0x40020820, 0x1610e: 0xa0000000, 0x1610f: 0xa0000000,
-	0x16110: 0xa0000000, 0x16111: 0xa0000000, 0x16112: 0xa0000000, 0x16113: 0xa0000000,
-	0x16114: 0xa0000000, 0x16115: 0xa0000000, 0x16116: 0xa0000000, 0x16117: 0xa0000000,
-	0x16118: 0xa0000000, 0x16119: 0xa0000000, 0x1611a: 0xa0000000, 0x1611b: 0xa0000000,
-	0x1611c: 0xa0000000, 0x1611d: 0xa0000000, 0x1611e: 0xa0000000, 0x1611f: 0xa0000000,
-	0x16120: 0x40021220, 0x16121: 0x4002ba20, 0x16122: 0x4003e020, 0x16123: 0x4004ea20,
-	0x16124: 0x4027de20, 0x16125: 0x4004ec20, 0x16126: 0x4004e620, 0x16127: 0x4003d220,
-	0x16128: 0x4003f420, 0x16129: 0x4003f620, 0x1612a: 0x4004d820, 0x1612b: 0x40093820,
-	0x1612c: 0x40024020, 0x1612d: 0x40021a20, 0x1612e: 0x4002e420, 0x1612f: 0x4004e220,
-	0x16130: 0x4029cc20, 0x16131: 0x4029ce20, 0x16132: 0x4029d020, 0x16133: 0x4029d220,
-	0x16134: 0x4029d420, 0x16135: 0x4029d620, 0x16136: 0x4029d820, 0x16137: 0x4029da20,
-	0x16138: 0x4029dc20, 0x16139: 0x4029de20, 0x1613a: 0x40026c20, 0x1613b: 0x40026220,
-	0x1613c: 0x40094020, 0x1613d: 0x40094220, 0x1613e: 0x40094420, 0x1613f: 0x4002c420,
-	// Block 0x585, offset 0x16140
-	0x16140: 0x4004d620, 0x16141: 0xce4a94d1, 0x16142: 0x002c0a88, 0x16143: 0x002c3a88,
-	0x16144: 0x002c6288, 0x16145: 0x002c9888, 0x16146: 0x002d0888, 0x16147: 0x002d2288,
-	0x16148: 0x002d6888, 0x16149: 0xc6042741, 0x1614a: 0x002dcc88, 0x1614b: 0x002dfe88,
-	0x1614c: 0xc0030002, 0x1614d: 0x002e8288, 0x1614e: 0x002e9e88, 0x1614f: 0x002ee288,
-	0x16150: 0x002f2c88, 0x16151: 0x002f5688, 0x16152: 0x002f7a88, 0x16153: 0xce509501,
-	0x16154: 0xce569501, 0x16155: 0x00306c88, 0x16156: 0x0030be88, 0x16157: 0x0030e288,
-	0x16158: 0x0030f688, 0x16159: 0x00310088, 0x1615a: 0x00312a88, 0x1615b: 0x4003f820,
-	0x1615c: 0x4004e420, 0x1615d: 0x4003fa20, 0x1615e: 0x40062420, 0x1615f: 0x40021620,
-	0x16160: 0x40061e20, 0x16161: 0xce4794d1, 0x16162: 0x402c0a20, 0x16163: 0x402c3a20,
-	0x16164: 0x402c6220, 0x16165: 0x402c9820, 0x16166: 0x402d0820, 0x16167: 0x402d2220,
-	0x16168: 0x402d6820, 0x16169: 0xc6022741, 0x1616a: 0x402dcc20, 0x1616b: 0x402dfe20,
-	0x1616c: 0xc0000002, 0x1616d: 0x402e8220, 0x1616e: 0x402e9e20, 0x1616f: 0x402ee220,
-	0x16170: 0x402f2c20, 0x16171: 0x402f5620, 0x16172: 0x402f7a20, 0x16173: 0xce4d9501,
-	0x16174: 0xce539501, 0x16175: 0x40306c20, 0x16176: 0x4030be20, 0x16177: 0x4030e220,
-	0x16178: 0x4030f620, 0x16179: 0x40310020, 0x1617a: 0x40312a20, 0x1617b: 0x4003fc20,
-	0x1617c: 0x40094820, 0x1617d: 0x4003fe20, 0x1617e: 0x40094c20, 0x1617f: 0xa0000000,
-	// Block 0x586, offset 0x16180
-	0x16180: 0xe00008f5, 0x16181: 0xe00008ef, 0x16182: 0x002be283, 0x16183: 0xe0000969,
-	0x16184: 0xe000095b, 0x16185: 0xe000094d, 0x16186: 0xe00009dd, 0x16187: 0xe0000a53,
-	0x16188: 0xe0000ae8, 0x16189: 0xe0000ae2, 0x1618a: 0xe0000af4, 0x1618b: 0xe0000b20,
-	0x1618c: 0xe0000c2b, 0x1618d: 0xe0000c25, 0x1618e: 0x002d9c83, 0x1618f: 0xe0000c43,
-	0x16190: 0xe0000ab3, 0x16191: 0xe0000d63, 0x16192: 0xe0000d9a, 0x16193: 0xe0000d94,
-	0x16194: 0xe0000da6, 0x16195: 0xe0000de6, 0x16196: 0xe0000dd2, 0x16197: 0x40093e20,
-	0x16198: 0xe0000e12, 0x16199: 0xe0000fe1, 0x1619a: 0xe0000fdb, 0x1619b: 0xe0000fed,
-	0x1619c: 0xe0000fff, 0x1619d: 0xe0001102, 0x1619e: 0x00318888, 0x1619f: 0xe0000f7b,
-	0x161a0: 0xe00008f2, 0x161a1: 0xe00008ec, 0x161a2: 0x402be220, 0x161a3: 0xe0000966,
-	0x161a4: 0xe0000958, 0x161a5: 0xe000094a, 0x161a6: 0xe00009d5, 0x161a7: 0xe0000a4d,
-	0x161a8: 0xe0000ae5, 0x161a9: 0xe0000adf, 0x161aa: 0xe0000af1, 0x161ab: 0xe0000b1d,
-	0x161ac: 0xe0000c28, 0x161ad: 0xe0000c22, 0x161ae: 0x402d9c20, 0x161af: 0xe0000c40,
-	0x161b0: 0xe0000aad, 0x161b1: 0xe0000d60, 0x161b2: 0xe0000d97, 0x161b3: 0xe0000d91,
-	0x161b4: 0xe0000da3, 0x161b5: 0xe0000de3, 0x161b6: 0xe0000dcf, 0x161b7: 0x40093c20,
-	0x161b8: 0xe0000e0f, 0x161b9: 0xe0000fde, 0x161ba: 0xe0000fd8, 0x161bb: 0xe0000fea,
-	0x161bc: 0xe0000ffc, 0x161bd: 0xe00010ff, 0x161be: 0x40318820, 0x161bf: 0xe0001114,
-	// Block 0x587, offset 0x161c0
-	0x161c0: 0xe0000983, 0x161c1: 0xe0000980, 0x161c2: 0x002be083, 0x161c3: 0x402be020,
-	0x161c4: 0xe000097d, 0x161c5: 0xe000097a, 0x161c6: 0xe0000a38, 0x161c7: 0xe0000a35,
-	0x161c8: 0xe0000a3e, 0x161c9: 0xe0000a3b, 0x161ca: 0xe0000a4a, 0x161cb: 0xe0000a47,
-	0x161cc: 0xe0000a44, 0x161cd: 0xe0000a41, 0x161ce: 0xe0000a86, 0x161cf: 0xe0000a83,
-	0x161d0: 0xe0000aaa, 0x161d1: 0xe0000aa7, 0x161d2: 0xe0000b46, 0x161d3: 0xe0000b43,
-	0x161d4: 0xe0000aee, 0x161d5: 0xe0000aeb, 0x161d6: 0xe0000b2c, 0x161d7: 0xe0000b29,
-	0x161d8: 0xe0000b40, 0x161d9: 0xe0000b3d, 0x161da: 0xe0000b1a, 0x161db: 0xe0000b17,
-	0x161dc: 0xe0000bb8, 0x161dd: 0xe0000bb5, 0x161de: 0xe0000bb2, 0x161df: 0xe0000baf,
-	0x161e0: 0xe0000bc4, 0x161e1: 0xe0000bc1, 0x161e2: 0xe0000bca, 0x161e3: 0xe0000bc7,
-	0x161e4: 0xe0000bee, 0x161e5: 0xe0000beb, 0x161e6: 0xe0000c1b, 0x161e7: 0xe0000c18,
-	0x161e8: 0xe0000c51, 0x161e9: 0xe0000c4e, 0x161ea: 0xe0000c60, 0x161eb: 0xe0000c5d,
-	0x161ec: 0xe0000c31, 0x161ed: 0xe0000c2e, 0x161ee: 0xe0000c5a, 0x161ef: 0xe0000c57,
-	0x161f0: 0xe0000c54, 0x161f1: 0x402da220, 0x161f2: 0xf0000a0a, 0x161f3: 0xf0000404,
-	0x161f4: 0xe0000c8a, 0x161f5: 0xe0000c87, 0x161f6: 0xe0000c9f, 0x161f7: 0xe0000c9c,
-	0x161f8: 0x402f7220, 0x161f9: 0xe0000ccc, 0x161fa: 0xe0000cc9, 0x161fb: 0xe0000cd8,
-	0x161fc: 0xe0000cd5, 0x161fd: 0xe0000cd2, 0x161fe: 0xe0000ccf, 0x161ff: 0xe0000d04,
-	// Block 0x588, offset 0x16200
-	0x16200: 0xe0000cfe, 0x16201: 0xe0000cf8, 0x16202: 0xe0000cf5, 0x16203: 0xe0000d51,
-	0x16204: 0xe0000d4e, 0x16205: 0xe0000d6f, 0x16206: 0xe0000d6c, 0x16207: 0xe0000d5d,
-	0x16208: 0xe0000d5a, 0x16209: 0xf0000404, 0x1620a: 0x002eda88, 0x1620b: 0x402eda20,
-	0x1620c: 0xe0000e2e, 0x1620d: 0xe0000e2b, 0x1620e: 0xe0000da0, 0x1620f: 0xe0000d9d,
-	0x16210: 0xe0000de0, 0x16211: 0xe0000ddd, 0x16212: 0xe0000e93, 0x16213: 0xe0000e8f,
-	0x16214: 0xe0000eca, 0x16215: 0xe0000ec7, 0x16216: 0xe0000edc, 0x16217: 0xe0000ed9,
-	0x16218: 0xe0000ed0, 0x16219: 0xe0000ecd, 0x1621a: 0xe0000f1f, 0x1621b: 0xe0000f1c,
-	0x1621c: 0xe0000f2d, 0x1621d: 0xe0000f2a, 0x1621e: 0x002fe883, 0x1621f: 0x402fe820,
-	0x16220: 0xe0000f33, 0x16221: 0xe0000f30, 0x16222: 0x00302e83, 0x16223: 0x40302e20,
-	0x16224: 0xe0000f8a, 0x16225: 0xe0000f87, 0x16226: 0x00303688, 0x16227: 0x40303620,
-	0x16228: 0xe000102b, 0x16229: 0xe0001028, 0x1622a: 0xe000103f, 0x1622b: 0xe000103c,
-	0x1622c: 0xe0000fe7, 0x1622d: 0xe0000fe4, 0x1622e: 0xe0000ff9, 0x1622f: 0xe0000ff6,
-	0x16230: 0xe0001025, 0x16231: 0xe0001022, 0x16232: 0xe0001039, 0x16233: 0xe0001036,
-	0x16234: 0xe00010d8, 0x16235: 0xe00010d5, 0x16236: 0xe000110e, 0x16237: 0xe000110b,
-	0x16238: 0xe0001117, 0x16239: 0xe000113b, 0x1623a: 0xe0001138, 0x1623b: 0xe000114d,
-	0x1623c: 0xe000114a, 0x1623d: 0xe0001147, 0x1623e: 0xe0001144, 0x1623f: 0xe0000f64,
-	// Block 0x589, offset 0x16240
-	0x16240: 0xe000098f, 0x16241: 0xe000098c, 0x16242: 0xe0000995, 0x16243: 0xe0000992,
-	0x16244: 0xe0000b62, 0x16245: 0xe0000b5f, 0x16246: 0xe0000b68, 0x16247: 0xe0000b65,
-	0x16248: 0xe0000c6c, 0x16249: 0xe0000c69, 0x1624a: 0xe0000c72, 0x1624b: 0xe0000c6f,
-	0x1624c: 0xe0000e4a, 0x1624d: 0xe0000e47, 0x1624e: 0xe0000e50, 0x1624f: 0xe0000e4d,
-	0x16250: 0xe0000ee8, 0x16251: 0xe0000ee5, 0x16252: 0xe0000eee, 0x16253: 0xe0000eeb,
-	0x16254: 0xe0001053, 0x16255: 0xe0001050, 0x16256: 0xe0001059, 0x16257: 0xe0001056,
-	0x16258: 0x002fe883, 0x16259: 0x402fe820, 0x1625a: 0x00302e83, 0x1625b: 0x40302e20,
-	0x1625c: 0x00312288, 0x1625d: 0x40312220, 0x1625e: 0xe0000bf4, 0x1625f: 0xe0000bf1,
-	0x16260: 0x002ebc88, 0x16261: 0x402c8c20, 0x16262: 0x002f2288, 0x16263: 0x402f2220,
-	0x16264: 0x00314088, 0x16265: 0x40314020, 0x16266: 0xe000096f, 0x16267: 0xe000096c,
-	0x16268: 0xe0000b32, 0x16269: 0xe0000b2f, 0x1626a: 0xe0000dd9, 0x1626b: 0xe0000dd5,
-	0x1626c: 0xe0000dfd, 0x1626d: 0xe0000df9, 0x1626e: 0xe0000e04, 0x1626f: 0xe0000e01,
-	0x16270: 0xe0000e0b, 0x16271: 0xe0000e07, 0x16272: 0xe0001129, 0x16273: 0xe0001126,
-	0x16274: 0x402e5e20, 0x16275: 0x402ed020, 0x16276: 0x40305a20, 0x16277: 0x402dd420,
-	0x16278: 0xe0000abf, 0x16279: 0xe0000ec4, 0x1627a: 0x002be888, 0x1627b: 0x002c4488,
-	0x1627c: 0x402c4420, 0x1627d: 0x002e3888, 0x1627e: 0x00303e88, 0x1627f: 0x402ffc20,
-	// Block 0x58a, offset 0x16280
-	0x16280: 0xe00010d2, 0x16281: 0xe00010cf, 0x16282: 0xe00010cc, 0x16283: 0xe00010c9,
-	0x16284: 0xe00010e1, 0x16285: 0xe00010de, 0x16286: 0xe00010e7, 0x16287: 0xe00010e4,
-	0x16288: 0xe00010ed, 0x16289: 0xe00010ea, 0x1628a: 0xe00010fc, 0x1628b: 0xe00010f9,
-	0x1628c: 0xe00010f6, 0x1628d: 0xe00010f3, 0x1628e: 0xe0001123, 0x1628f: 0xe0001120,
-	0x16290: 0xe0001141, 0x16291: 0xe000113e, 0x16292: 0xe0001153, 0x16293: 0xe0001150,
-	0x16294: 0xe0001159, 0x16295: 0xe0001156, 0x16296: 0xe0000c15, 0x16297: 0xe0000f8d,
-	0x16298: 0xe00010db, 0x16299: 0xe0001111, 0x1629a: 0xf0000404, 0x1629b: 0xe0000f70,
-	0x1629c: 0x40300420, 0x1629d: 0x40300620, 0x1629e: 0xe0000f7f, 0x1629f: 0x402c9620,
-	0x162a0: 0xe000099b, 0x162a1: 0xe0000998, 0x162a2: 0xe0000989, 0x162a3: 0xe0000986,
-	0x162a4: 0xe0003405, 0x162a5: 0xe0003402, 0x162a6: 0xe000340b, 0x162a7: 0xe0003408,
-	0x162a8: 0xe0003446, 0x162a9: 0xe0003443, 0x162aa: 0xe0003431, 0x162ab: 0xe000342e,
-	0x162ac: 0xe0003458, 0x162ad: 0xe0003455, 0x162ae: 0xe000335f, 0x162af: 0xe000335c,
-	0x162b0: 0xe0003365, 0x162b1: 0xe0003362, 0x162b2: 0xe00033d9, 0x162b3: 0xe00033d6,
-	0x162b4: 0xe00033a3, 0x162b5: 0xe00033a0, 0x162b6: 0xe00033eb, 0x162b7: 0xe00033e8,
-	0x162b8: 0xe0000b6e, 0x162b9: 0xe0000b6b, 0x162ba: 0xe0000b5c, 0x162bb: 0xe0000b59,
-	0x162bc: 0xe0000b26, 0x162bd: 0xe0000b23, 0x162be: 0xe0000afb, 0x162bf: 0xe0000af7,
-	// Block 0x58b, offset 0x162c0
-	0x162c0: 0xa0000000, 0x162c1: 0xa0000000, 0x162c2: 0xa0000000, 0x162c3: 0xa0000000,
-	0x162c4: 0xa0000000, 0x162c5: 0xa0000000, 0x162c6: 0xa0000000, 0x162c7: 0xa0000000,
-	0x162c8: 0xa0000000, 0x162c9: 0x40020020, 0x162ca: 0x40020220, 0x162cb: 0x40020420,
-	0x162cc: 0x40020620, 0x162cd: 0x40020820, 0x162ce: 0xa0000000, 0x162cf: 0xa0000000,
-	0x162d0: 0xa0000000, 0x162d1: 0xa0000000, 0x162d2: 0xa0000000, 0x162d3: 0xa0000000,
-	0x162d4: 0xa0000000, 0x162d5: 0xa0000000, 0x162d6: 0xa0000000, 0x162d7: 0xa0000000,
-	0x162d8: 0xa0000000, 0x162d9: 0xa0000000, 0x162da: 0xa0000000, 0x162db: 0xa0000000,
-	0x162dc: 0xa0000000, 0x162dd: 0xa0000000, 0x162de: 0xa0000000, 0x162df: 0xa0000000,
-	0x162e0: 0x40021220, 0x162e1: 0x4002ba20, 0x162e2: 0x4003e020, 0x162e3: 0x4004ea20,
-	0x162e4: 0x4027de20, 0x162e5: 0x4004ec20, 0x162e6: 0x4004e620, 0x162e7: 0x4003d220,
-	0x162e8: 0x4003f420, 0x162e9: 0x4003f620, 0x162ea: 0x4004d820, 0x162eb: 0x40093820,
-	0x162ec: 0x40024020, 0x162ed: 0x40021a20, 0x162ee: 0x4002e420, 0x162ef: 0x4004e220,
-	0x162f0: 0x4029cc20, 0x162f1: 0x4029ce20, 0x162f2: 0x4029d020, 0x162f3: 0x4029d220,
-	0x162f4: 0x4029d420, 0x162f5: 0x4029d620, 0x162f6: 0x4029d820, 0x162f7: 0x4029da20,
-	0x162f8: 0x4029dc20, 0x162f9: 0x4029de20, 0x162fa: 0x40026c20, 0x162fb: 0x40026220,
-	0x162fc: 0x40094020, 0x162fd: 0x40094220, 0x162fe: 0x40094420, 0x162ff: 0x4002c420,
-	// Block 0x58c, offset 0x16300
-	0x16300: 0x4004d620, 0x16301: 0xce5f9521, 0x16302: 0x002c0a88, 0x16303: 0xce670991,
-	0x16304: 0x002c6288, 0x16305: 0x002c9888, 0x16306: 0x002d0888, 0x16307: 0xce6f0991,
-	0x16308: 0x002d6888, 0x16309: 0x002d9a88, 0x1630a: 0x002dcc88, 0x1630b: 0xcabc0991,
-	0x1630c: 0xc0030002, 0x1630d: 0x002e8288, 0x1630e: 0xce749571, 0x1630f: 0xce8195a1,
-	0x16310: 0x002f2c88, 0x16311: 0x002f5688, 0x16312: 0x002f7a88, 0x16313: 0xcad00991,
-	0x16314: 0x00302c88, 0x16315: 0xc3900b21, 0x16316: 0x0030be88, 0x16317: 0x0030e288,
-	0x16318: 0x0030f688, 0x16319: 0x00310088, 0x1631a: 0xce790991, 0x1631b: 0x4003f820,
-	0x1631c: 0x4004e420, 0x1631d: 0x4003fa20, 0x1631e: 0x40062420, 0x1631f: 0x40021620,
-	0x16320: 0x40061e20, 0x16321: 0xce599521, 0x16322: 0x402c0a20, 0x16323: 0xce650991,
-	0x16324: 0x402c6220, 0x16325: 0x402c9820, 0x16326: 0x402d0820, 0x16327: 0xce6d0991,
-	0x16328: 0x402d6820, 0x16329: 0x402d9a20, 0x1632a: 0x402dcc20, 0x1632b: 0xcaba0991,
-	0x1632c: 0xc0000002, 0x1632d: 0x402e8220, 0x1632e: 0xce719571, 0x1632f: 0xce7b95a1,
-	0x16330: 0x402f2c20, 0x16331: 0x402f5620, 0x16332: 0x402f7a20, 0x16333: 0xcace0991,
-	0x16334: 0x40302c20, 0x16335: 0xc38d0b21, 0x16336: 0x4030be20, 0x16337: 0x4030e220,
-	0x16338: 0x4030f620, 0x16339: 0x40310020, 0x1633a: 0xce770991, 0x1633b: 0x4003fc20,
-	0x1633c: 0x40094820, 0x1633d: 0x4003fe20, 0x1633e: 0x40094c20, 0x1633f: 0xa0000000,
-	// Block 0x58d, offset 0x16340
-	0x16340: 0xe00008f5, 0x16341: 0x002c0883, 0x16342: 0xe0000921, 0x16343: 0x00320ea3,
-	0x16344: 0x00320e83, 0x16345: 0x00320c83, 0x16346: 0x00320a83, 0x16347: 0xe0000a53,
-	0x16348: 0xe0000ae8, 0x16349: 0xe0000ae2, 0x1634a: 0xe0000af4, 0x1634b: 0xe0000b20,
-	0x1634c: 0xe0000c2b, 0x1634d: 0xe0000c25, 0x1634e: 0xe0000c37, 0x1634f: 0xe0000c43,
-	0x16350: 0x002c96a3, 0x16351: 0x002ee0c3, 0x16352: 0xe0000d9a, 0x16353: 0xe0000d94,
-	0x16354: 0x003210e3, 0x16355: 0x003210c3, 0x16356: 0x00321083, 0x16357: 0x40093e20,
-	0x16358: 0x00320883, 0x16359: 0xe0000fe1, 0x1635a: 0xe0000fdb, 0x1635b: 0xe0000fed,
-	0x1635c: 0x003100a3, 0x1635d: 0xe0001102, 0x1635e: 0x00306aa3, 0x1635f: 0xe0000f7b,
-	0x16360: 0xe00008f2, 0x16361: 0x402c0820, 0x16362: 0xe000091e, 0x16363: 0x40320e21,
-	0x16364: 0x40320e20, 0x16365: 0x40320c20, 0x16366: 0x40320a20, 0x16367: 0xe0000a4d,
-	0x16368: 0xe0000ae5, 0x16369: 0xe0000adf, 0x1636a: 0xe0000af1, 0x1636b: 0xe0000b1d,
-	0x1636c: 0xe0000c28, 0x1636d: 0xe0000c22, 0x1636e: 0xe0000c34, 0x1636f: 0xe0000c40,
-	0x16370: 0x402c9621, 0x16371: 0x402ee022, 0x16372: 0xe0000d97, 0x16373: 0xe0000d91,
-	0x16374: 0x40321023, 0x16375: 0x40321022, 0x16376: 0x40321020, 0x16377: 0x40093c20,
-	0x16378: 0x40320820, 0x16379: 0xe0000fde, 0x1637a: 0xe0000fd8, 0x1637b: 0xe0000fea,
-	0x1637c: 0x40310021, 0x1637d: 0xe00010ff, 0x1637e: 0x40306a21, 0x1637f: 0xe0001114,
-	// Block 0x58e, offset 0x16380
-	0x16380: 0xe0000983, 0x16381: 0xe0000980, 0x16382: 0xe00008fb, 0x16383: 0xe00008f8,
-	0x16384: 0xe000097d, 0x16385: 0xe000097a, 0x16386: 0xe0000a38, 0x16387: 0xe0000a35,
-	0x16388: 0xe0000a3e, 0x16389: 0xe0000a3b, 0x1638a: 0xe0000a4a, 0x1638b: 0xe0000a47,
-	0x1638c: 0x002c5c83, 0x1638d: 0x402c5c20, 0x1638e: 0xe0000a86, 0x1638f: 0xe0000a83,
-	0x16390: 0x002c9683, 0x16391: 0x402c9620, 0x16392: 0xe0000b46, 0x16393: 0xe0000b43,
-	0x16394: 0xe0000aee, 0x16395: 0xe0000aeb, 0x16396: 0xe0000b2c, 0x16397: 0xe0000b29,
-	0x16398: 0xe0000b40, 0x16399: 0xe0000b3d, 0x1639a: 0xe0000b1a, 0x1639b: 0xe0000b17,
-	0x1639c: 0xe0000bb8, 0x1639d: 0xe0000bb5, 0x1639e: 0xe0000bb2, 0x1639f: 0xe0000baf,
-	0x163a0: 0xe0000bc4, 0x163a1: 0xe0000bc1, 0x163a2: 0xe0000bca, 0x163a3: 0xe0000bc7,
-	0x163a4: 0xe0000bee, 0x163a5: 0xe0000beb, 0x163a6: 0xe0000c1b, 0x163a7: 0xe0000c18,
-	0x163a8: 0xe0000c51, 0x163a9: 0xe0000c4e, 0x163aa: 0xe0000c60, 0x163ab: 0xe0000c5d,
-	0x163ac: 0xe0000c31, 0x163ad: 0xe0000c2e, 0x163ae: 0xe0000c5a, 0x163af: 0xe0000c57,
-	0x163b0: 0xe0000c54, 0x163b1: 0x402da220, 0x163b2: 0xf0000a0a, 0x163b3: 0xf0000404,
-	0x163b4: 0xe0000c8a, 0x163b5: 0xe0000c87, 0x163b6: 0xe0000c9f, 0x163b7: 0xe0000c9c,
-	0x163b8: 0x402f7220, 0x163b9: 0xe0000ccc, 0x163ba: 0xe0000cc9, 0x163bb: 0xe0000cd8,
-	0x163bc: 0xe0000cd5, 0x163bd: 0xe0000cd2, 0x163be: 0xe0000ccf, 0x163bf: 0xe0000d04,
-	// Block 0x58f, offset 0x163c0
-	0x163c0: 0xe0000cfe, 0x163c1: 0xe0000cf8, 0x163c2: 0xe0000cf5, 0x163c3: 0x002ee0a3,
-	0x163c4: 0x402ee021, 0x163c5: 0xe0000d6f, 0x163c6: 0xe0000d6c, 0x163c7: 0xe0000d5d,
-	0x163c8: 0xe0000d5a, 0x163c9: 0xf0000404, 0x163ca: 0x002ee083, 0x163cb: 0x402ee020,
-	0x163cc: 0xe0000e2e, 0x163cd: 0xe0000e2b, 0x163ce: 0xe0000da0, 0x163cf: 0xe0000d9d,
-	0x163d0: 0x003210a3, 0x163d1: 0x40321021, 0x163d2: 0x003208a3, 0x163d3: 0x40320821,
-	0x163d4: 0xe0000eca, 0x163d5: 0xe0000ec7, 0x163d6: 0xe0000edc, 0x163d7: 0xe0000ed9,
-	0x163d8: 0xe0000ed0, 0x163d9: 0xe0000ecd, 0x163da: 0xe0000f1f, 0x163db: 0xe0000f1c,
-	0x163dc: 0xe0000f2d, 0x163dd: 0xe0000f2a, 0x163de: 0xe0000f47, 0x163df: 0xe0000f44,
-	0x163e0: 0x00302a83, 0x163e1: 0x40302a20, 0x163e2: 0xe0000f99, 0x163e3: 0xe0000f96,
-	0x163e4: 0xe0000f8a, 0x163e5: 0xe0000f87, 0x163e6: 0x00306a83, 0x163e7: 0x40306a20,
-	0x163e8: 0xe000102b, 0x163e9: 0xe0001028, 0x163ea: 0xe000103f, 0x163eb: 0xe000103c,
-	0x163ec: 0xe0000fe7, 0x163ed: 0xe0000fe4, 0x163ee: 0xe0000ff9, 0x163ef: 0xe0000ff6,
-	0x163f0: 0x003100c3, 0x163f1: 0x40310022, 0x163f2: 0xe0001039, 0x163f3: 0xe0001036,
-	0x163f4: 0xe00010d8, 0x163f5: 0xe00010d5, 0x163f6: 0xe000110e, 0x163f7: 0xe000110b,
-	0x163f8: 0xe0001117, 0x163f9: 0xe000113b, 0x163fa: 0xe0001138, 0x163fb: 0xe000114d,
-	0x163fc: 0xe000114a, 0x163fd: 0x00320683, 0x163fe: 0x40320620, 0x163ff: 0xe0000f64,
-	// Block 0x590, offset 0x16400
-	0x16400: 0x402c1a20, 0x16401: 0x002c2a88, 0x16402: 0x002c3288, 0x16403: 0x402c3220,
-	0x16404: 0x0031c488, 0x16405: 0x4031c420, 0x16406: 0x002efa88, 0x16407: 0x002c4e88,
-	0x16408: 0x402c4e20, 0x16409: 0x002c7288, 0x1640a: 0x002c7a88, 0x1640b: 0x002c8488,
-	0x1640c: 0x402c8420, 0x1640d: 0xe000115c, 0x1640e: 0x002cae88, 0x1640f: 0x002cb888,
-	0x16410: 0x002cc288, 0x16411: 0x002d1688, 0x16412: 0x402d1620, 0x16413: 0x002d4488,
-	0x16414: 0x002d5888, 0x16415: 0x402d7820, 0x16416: 0x002dc288, 0x16417: 0x002db688,
-	0x16418: 0x002e0a88, 0x16419: 0x402e0a20, 0x1641a: 0x402e3820, 0x1641b: 0x402e7220,
-	0x1641c: 0x0030a088, 0x1641d: 0x002eb488, 0x1641e: 0x402ebc20, 0x1641f: 0x002f1088,
-	0x16420: 0xe0000e56, 0x16421: 0xe0000e53, 0x16422: 0x002d6088, 0x16423: 0x402d6020,
-	0x16424: 0x002f3e88, 0x16425: 0x402f3e20, 0x16426: 0x002f8288, 0x16427: 0x0031b488,
-	0x16428: 0x4031b420, 0x16429: 0x00300888, 0x1642a: 0x40301220, 0x1642b: 0x40304220,
-	0x1642c: 0x00304a88, 0x1642d: 0x40304a20, 0x1642e: 0x00305288, 0x1642f: 0xe000105f,
-	0x16430: 0xe000105c, 0x16431: 0x0030b488, 0x16432: 0x0030cc88, 0x16433: 0x00311888,
-	0x16434: 0x40311820, 0x16435: 0x00313488, 0x16436: 0x40313420, 0x16437: 0xce6b0991,
-	0x16438: 0x00316e88, 0x16439: 0x40316e20, 0x1643a: 0x40317820, 0x1643b: 0x4031a620,
-	0x1643c: 0x0031bc88, 0x1643d: 0x4031bc20, 0x1643e: 0xe0000fc9, 0x1643f: 0x40319420,
-	// Block 0x591, offset 0x16440
-	0x16440: 0x40321220, 0x16441: 0x40321a20, 0x16442: 0x40322220, 0x16443: 0x40322a20,
-	0x16444: 0xe0000ad5, 0x16445: 0xe0000ad1, 0x16446: 0xe0000acd, 0x16447: 0xf0000a0a,
-	0x16448: 0xf000040a, 0x16449: 0xf0000404, 0x1644a: 0xf0000a0a, 0x1644b: 0xf000040a,
-	0x1644c: 0xf0000404, 0x1644d: 0xe0000947, 0x1644e: 0xe0000944, 0x1644f: 0xe0000c3d,
-	0x16450: 0xe0000c3a, 0x16451: 0xe0000dcc, 0x16452: 0xe0000dc9, 0x16453: 0xe0000ff3,
-	0x16454: 0xe0000ff0, 0x16455: 0xe00025e4, 0x16456: 0xe00025e1, 0x16457: 0xe00025d2,
-	0x16458: 0xe00025cf, 0x16459: 0xe00025de, 0x1645a: 0xe00025db, 0x1645b: 0xe00025d8,
-	0x1645c: 0xe00025d5, 0x1645d: 0x402cae20, 0x1645e: 0xe00032dd, 0x1645f: 0xe00032da,
-	0x16460: 0xe00025f6, 0x16461: 0xe00025f3, 0x16462: 0xe000a95f, 0x16463: 0xe000a95c,
-	0x16464: 0x002d6683, 0x16465: 0x402d6620, 0x16466: 0x002d6483, 0x16467: 0x402d6420,
-	0x16468: 0x002e2083, 0x16469: 0x402e2020, 0x1646a: 0x00321103, 0x1646b: 0x40321024,
-	0x1646c: 0xe000a9a7, 0x1646d: 0xe000a9a4, 0x1646e: 0x002c6083, 0x1646f: 0x402c6020,
-	0x16470: 0xe0000c8d, 0x16471: 0xf0000a0a, 0x16472: 0xf000040a, 0x16473: 0xf0000404,
-	0x16474: 0xe0000bac, 0x16475: 0xe0000ba9, 0x16476: 0x002d7888, 0x16477: 0x00319488,
-	0x16478: 0xe0000d57, 0x16479: 0xe0000d54, 0x1647a: 0xe00025ea, 0x1647b: 0xe00025e7,
-	0x1647c: 0xe000a959, 0x1647d: 0xe000a956, 0x1647e: 0xe000a953, 0x1647f: 0xe000a950,
-	// Block 0x592, offset 0x16480
-	0x16480: 0xe000098f, 0x16481: 0xe000098c, 0x16482: 0xe0000995, 0x16483: 0xe0000992,
-	0x16484: 0xe0000b62, 0x16485: 0xe0000b5f, 0x16486: 0xe0000b68, 0x16487: 0xe0000b65,
-	0x16488: 0xe0000c6c, 0x16489: 0xe0000c69, 0x1648a: 0xe0000c72, 0x1648b: 0xe0000c6f,
-	0x1648c: 0xe0000e4a, 0x1648d: 0xe0000e47, 0x1648e: 0xe0000e50, 0x1648f: 0xe0000e4d,
-	0x16490: 0xe0000ee8, 0x16491: 0xe0000ee5, 0x16492: 0xe0000eee, 0x16493: 0xe0000eeb,
-	0x16494: 0xe0001053, 0x16495: 0xe0001050, 0x16496: 0xe0001059, 0x16497: 0xe0001056,
-	0x16498: 0xe0000f61, 0x16499: 0xe0000f5e, 0x1649a: 0xe0000fa5, 0x1649b: 0xe0000fa2,
-	0x1649c: 0x00312288, 0x1649d: 0x40312220, 0x1649e: 0xe0000bf4, 0x1649f: 0xe0000bf1,
-	0x164a0: 0x002ebc88, 0x164a1: 0x402c8c20, 0x164a2: 0x002f2288, 0x164a3: 0x402f2220,
-	0x164a4: 0x00314088, 0x164a5: 0x40314020, 0x164a6: 0x00320ca3, 0x164a7: 0x40320c21,
-	0x164a8: 0xe0000b32, 0x164a9: 0xe0000b2f, 0x164aa: 0xe00032ef, 0x164ab: 0xe00032ec,
-	0x164ac: 0xe000a97d, 0x164ad: 0xe000a97a, 0x164ae: 0xe0000e04, 0x164af: 0xe0000e01,
-	0x164b0: 0xe0000e0b, 0x164b1: 0xe0000e07, 0x164b2: 0xe0001129, 0x164b3: 0xe0001126,
-	0x164b4: 0x402e5e20, 0x164b5: 0x402ed020, 0x164b6: 0x40305a20, 0x164b7: 0x402dd420,
-	0x164b8: 0xe0000abf, 0x164b9: 0xe0000ec4, 0x164ba: 0x002be888, 0x164bb: 0x002c4488,
-	0x164bc: 0x402c4420, 0x164bd: 0x002e3888, 0x164be: 0x00303e88, 0x164bf: 0x402ffc20,
-	// Block 0x593, offset 0x164c0
-	0x164c0: 0x402f8220, 0x164c1: 0x402fd820, 0x164c2: 0x402ff420, 0x164c3: 0x40300820,
-	0x164c4: 0x402df620, 0x164c5: 0x40301a20, 0x164c6: 0x40302420, 0x164c7: 0x40306420,
-	0x164c8: 0x40305220, 0x164c9: 0x40307c20, 0x164ca: 0x4030b420, 0x164cb: 0x4030cc20,
-	0x164cc: 0x4030da20, 0x164cd: 0x4030ee20, 0x164ce: 0x402e7a20, 0x164cf: 0x40310820,
-	0x164d0: 0x40314820, 0x164d1: 0x40315020, 0x164d2: 0xce690991, 0x164d3: 0x40318020,
-	0x164d4: 0x4031cc20, 0x164d5: 0x4031e820, 0x164d6: 0x40320a20, 0x164d7: 0x40323220,
-	0x164d8: 0x40323a20, 0x164d9: 0x402c1220, 0x164da: 0x402cf820, 0x164db: 0x402d4c20,
-	0x164dc: 0x402d7020, 0x164dd: 0x402de620, 0x164de: 0x402e1a20, 0x164df: 0x402e2a20,
-	0x164e0: 0x402f6220, 0x164e1: 0x4031fa20, 0x164e2: 0x40320220, 0x164e3: 0xe0000aca,
-	0x164e4: 0xe0000adc, 0x164e5: 0xe0000ad9, 0x164e6: 0xe0000fcc, 0x164e7: 0xe0000fcf,
-	0x164e8: 0xe0000fba, 0x164e9: 0xe0000ba1, 0x164ea: 0xe0000d11, 0x164eb: 0xe0000d18,
-	0x164ec: 0x40324220, 0x164ed: 0x40324a20, 0x164ee: 0x40309020, 0x164ef: 0x40309820,
-	0x164f0: 0x002d6894, 0x164f1: 0x002d8094, 0x164f2: 0x002dcc94, 0x164f3: 0x002f7a94,
-	0x164f4: 0x002f9894, 0x164f5: 0x002fac94, 0x164f6: 0x002fd894, 0x164f7: 0x0030e294,
-	0x164f8: 0x00310094, 0x164f9: 0x40064020, 0x164fa: 0x40064420, 0x164fb: 0x402d9620,
-	0x164fc: 0x4031de20, 0x164fd: 0x402d9820, 0x164fe: 0x4031e220, 0x164ff: 0x4031f020,
-	// Block 0x594, offset 0x16500
-	0x16500: 0xe0000d24, 0x16501: 0xe0000d21, 0x16502: 0xe0000d2a, 0x16503: 0xe0000d27,
-	0x16504: 0xe0000d69, 0x16505: 0xe0000d66, 0x16506: 0xe0000d7b, 0x16507: 0xe0000d78,
-	0x16508: 0xe0000d87, 0x16509: 0xe0000d84, 0x1650a: 0xe0000d81, 0x1650b: 0xe0000d7e,
-	0x1650c: 0xe000a971, 0x1650d: 0xe000a96e, 0x1650e: 0xe000a977, 0x1650f: 0xe000a974,
-	0x16510: 0xe0000e3d, 0x16511: 0xe0000e39, 0x16512: 0xe0000e35, 0x16513: 0xe0000e31,
-	0x16514: 0xe0000ea7, 0x16515: 0xe0000ea4, 0x16516: 0xe0000ead, 0x16517: 0xe0000eaa,
-	0x16518: 0xe0000ed6, 0x16519: 0xe0000ed3, 0x1651a: 0xe0000ef4, 0x1651b: 0xe0000ef1,
-	0x1651c: 0xe0000efb, 0x1651d: 0xe0000ef7, 0x1651e: 0xe0000f02, 0x1651f: 0xe0000eff,
-	0x16520: 0xe0000f41, 0x16521: 0xe0000f3e, 0x16522: 0xe0000f53, 0x16523: 0xe0000f50,
-	0x16524: 0xe0000f26, 0x16525: 0xe0000f22, 0x16526: 0xe000a594, 0x16527: 0xe000a591,
-	0x16528: 0xe0000f5a, 0x16529: 0xe0000f56, 0x1652a: 0xe0000f93, 0x1652b: 0xe0000f90,
-	0x1652c: 0xe0000f9f, 0x1652d: 0xe0000f9c, 0x1652e: 0xe0000fb1, 0x1652f: 0xe0000fae,
-	0x16530: 0xe0000fab, 0x16531: 0xe0000fa8, 0x16532: 0xe0001093, 0x16533: 0xe0001090,
-	0x16534: 0xe000109f, 0x16535: 0xe000109c, 0x16536: 0xe0001099, 0x16537: 0xe0001096,
-	0x16538: 0xe0001032, 0x16539: 0xe000102e, 0x1653a: 0xe00025e4, 0x1653b: 0xe00025e1,
-	0x1653c: 0xe00010a9, 0x1653d: 0xe00010a6, 0x1653e: 0xe00010af, 0x1653f: 0xe00010ac,
-	// Block 0x595, offset 0x16540
-	0x16540: 0xe00010d2, 0x16541: 0xe00010cf, 0x16542: 0xe00010cc, 0x16543: 0xe00010c9,
-	0x16544: 0xe00010e1, 0x16545: 0xe00010de, 0x16546: 0xe00010e7, 0x16547: 0xe00010e4,
-	0x16548: 0xe00010ed, 0x16549: 0xe00010ea, 0x1654a: 0xe00010fc, 0x1654b: 0xe00010f9,
-	0x1654c: 0xe00010f6, 0x1654d: 0xe00010f3, 0x1654e: 0xe0001123, 0x1654f: 0xe0001120,
-	0x16550: 0xe0001141, 0x16551: 0xe000113e, 0x16552: 0xe0001153, 0x16553: 0xe0001150,
-	0x16554: 0xe0001159, 0x16555: 0xe0001156, 0x16556: 0xe0000c15, 0x16557: 0xe0000f8d,
-	0x16558: 0xe00010db, 0x16559: 0xe0001111, 0x1655a: 0xf0000404, 0x1655b: 0xe0000f70,
-	0x1655c: 0x40300420, 0x1655d: 0x40300620, 0x1655e: 0xe0000f7f, 0x1655f: 0x402c9620,
-	0x16560: 0xe000099b, 0x16561: 0xe0000998, 0x16562: 0xe0000989, 0x16563: 0xe0000986,
-	0x16564: 0xe0003773, 0x16565: 0xe0003770, 0x16566: 0xe0000930, 0x16567: 0xe000092c,
-	0x16568: 0xe0000940, 0x16569: 0xe000093c, 0x1656a: 0xe000a96b, 0x1656b: 0xe000a968,
-	0x1656c: 0xe00009aa, 0x1656d: 0xe00009a6, 0x1656e: 0xe000376d, 0x1656f: 0xe000376a,
-	0x16570: 0xe000090a, 0x16571: 0xe0000906, 0x16572: 0xe000091a, 0x16573: 0xe0000916,
-	0x16574: 0xe000a965, 0x16575: 0xe000a962, 0x16576: 0xe00009a2, 0x16577: 0xe000099e,
-	0x16578: 0xe0000b6e, 0x16579: 0xe0000b6b, 0x1657a: 0xe0000b5c, 0x1657b: 0xe0000b59,
-	0x1657c: 0xe0000b26, 0x1657d: 0xe0000b23, 0x1657e: 0xe0000afb, 0x1657f: 0xe0000af7,
-	// Block 0x596, offset 0x16580
-	0x16580: 0xe0000b03, 0x16581: 0xe0000aff, 0x16582: 0xe0000b13, 0x16583: 0xe0000b0f,
-	0x16584: 0xe0000b0b, 0x16585: 0xe0000b07, 0x16586: 0xe0000b75, 0x16587: 0xe0000b71,
-	0x16588: 0xe0000c66, 0x16589: 0xe0000c63, 0x1658a: 0xe0000c78, 0x1658b: 0xe0000c75,
-	0x1658c: 0xe0000e84, 0x1658d: 0xe0000e81, 0x1658e: 0xe0000e44, 0x1658f: 0xe0000e41,
-	0x16590: 0xe000a989, 0x16591: 0xe000a986, 0x16592: 0xe000a98f, 0x16593: 0xe000a98c,
-	0x16594: 0xe000a99b, 0x16595: 0xe000a998, 0x16596: 0xe000a995, 0x16597: 0xe000a992,
-	0x16598: 0xe000a9a1, 0x16599: 0xe000a99e, 0x1659a: 0xe0000e5d, 0x1659b: 0xe0000e59,
-	0x1659c: 0xe0000e65, 0x1659d: 0xe0000e61, 0x1659e: 0xe0000e75, 0x1659f: 0xe0000e71,
-	0x165a0: 0xe000a983, 0x165a1: 0xe000a980, 0x165a2: 0xe0000e7d, 0x165a3: 0xe0000e79,
-	0x165a4: 0xe000108d, 0x165a5: 0xe000108a, 0x165a6: 0xe000104d, 0x165a7: 0xe000104a,
-	0x165a8: 0xe0001066, 0x165a9: 0xe0001062, 0x165aa: 0xe000106e, 0x165ab: 0xe000106a,
-	0x165ac: 0xe000107e, 0x165ad: 0xe000107a, 0x165ae: 0xe0001076, 0x165af: 0xe0001072,
-	0x165b0: 0xe0001086, 0x165b1: 0xe0001082, 0x165b2: 0xe0001108, 0x165b3: 0xe0001105,
-	0x165b4: 0xe0001135, 0x165b5: 0xe0001132, 0x165b6: 0xe000112f, 0x165b7: 0xe000112c,
-	0x165b8: 0xe000111d, 0x165b9: 0xe000111a, 0x165ba: 0xe0000d0a, 0x165bb: 0xe0000d07,
-	0x165bc: 0x0030d888, 0x165bd: 0x4030d820, 0x165be: 0x00312088, 0x165bf: 0x40312020,
-	// Block 0x597, offset 0x165c0
-	0x165c2: 0x4044b620, 0x165c3: 0x4044b820,
-	0x165c5: 0x40449220, 0x165c6: 0x40449420, 0x165c7: 0x40449620,
-	0x165c8: 0x40449820, 0x165c9: 0x40449a20, 0x165ca: 0x40449c20, 0x165cb: 0x40449e20,
-	0x165cc: 0x4044a020, 0x165cd: 0x4044a220, 0x165ce: 0x4044a420, 0x165cf: 0x4044a620,
-	0x165d0: 0x4044a820, 0x165d1: 0x4044aa20, 0x165d2: 0x4044ac20, 0x165d3: 0x4044ae20,
-	0x165d4: 0x4044b020, 0x165d5: 0x4044b220, 0x165d6: 0x4044b420,
-	0x165da: 0x4044b620, 0x165db: 0x4044b820,
-	0x165dc: 0x4044ba20, 0x165dd: 0x4044bc20, 0x165de: 0x4044be20, 0x165df: 0x4044c020,
-	0x165e0: 0x4044c220, 0x165e1: 0x4044c420, 0x165e2: 0x4044c620, 0x165e3: 0x4044c820,
-	0x165e4: 0x4044ce20, 0x165e5: 0x4044cc20, 0x165e6: 0x4044ce20, 0x165e7: 0x4044d020,
-	0x165e8: 0x4044d220, 0x165e9: 0x4044d420, 0x165ea: 0x4044d620, 0x165eb: 0x4044d820,
-	0x165ec: 0x4044da20, 0x165ed: 0x4044dc20, 0x165ee: 0x4044de20, 0x165ef: 0x4044e020,
-	0x165f0: 0x4044e220, 0x165f1: 0x4044e420, 0x165f3: 0x4044e620,
-	0x165f4: 0x4044e820, 0x165f5: 0x4044ea20, 0x165f6: 0x4044ec20, 0x165f7: 0x4044ee20,
-	0x165f8: 0x4044f020, 0x165f9: 0x4044f220, 0x165fa: 0x4044f420, 0x165fb: 0x4044f620,
-	0x165fd: 0x4044f820,
-	// Block 0x598, offset 0x16600
-	0x16600: 0xa0000000, 0x16601: 0xa0000000, 0x16602: 0xa0000000, 0x16603: 0xa0000000,
-	0x16604: 0xa0000000, 0x16605: 0xa0000000, 0x16606: 0xa0000000, 0x16607: 0xa0000000,
-	0x16608: 0xa0000000, 0x16609: 0x40020020, 0x1660a: 0x40020220, 0x1660b: 0x40020420,
-	0x1660c: 0x40020620, 0x1660d: 0x40020820, 0x1660e: 0xa0000000, 0x1660f: 0xa0000000,
-	0x16610: 0xa0000000, 0x16611: 0xa0000000, 0x16612: 0xa0000000, 0x16613: 0xa0000000,
-	0x16614: 0xa0000000, 0x16615: 0xa0000000, 0x16616: 0xa0000000, 0x16617: 0xa0000000,
-	0x16618: 0xa0000000, 0x16619: 0xa0000000, 0x1661a: 0xa0000000, 0x1661b: 0xa0000000,
-	0x1661c: 0xa0000000, 0x1661d: 0xa0000000, 0x1661e: 0xa0000000, 0x1661f: 0xa0000000,
-	0x16620: 0x40021220, 0x16621: 0x4002ba20, 0x16622: 0x4003e020, 0x16623: 0x4004ea20,
-	0x16624: 0x4027de20, 0x16625: 0x4004ec20, 0x16626: 0x4004e620, 0x16627: 0x4003d220,
-	0x16628: 0x4003f420, 0x16629: 0x4003f620, 0x1662a: 0x4004d820, 0x1662b: 0x40093820,
-	0x1662c: 0x40024020, 0x1662d: 0x40021a20, 0x1662e: 0x4002e420, 0x1662f: 0x4004e220,
-	0x16630: 0x4029cc20, 0x16631: 0x4029ce20, 0x16632: 0x4029d020, 0x16633: 0x4029d220,
-	0x16634: 0x4029d420, 0x16635: 0x4029d620, 0x16636: 0x4029d820, 0x16637: 0x4029da20,
-	0x16638: 0x4029dc20, 0x16639: 0x4029de20, 0x1663a: 0x40026c20, 0x1663b: 0x40026220,
-	0x1663c: 0x40094020, 0x1663d: 0x40094220, 0x1663e: 0x40094420, 0x1663f: 0x4002c420,
-	// Block 0x599, offset 0x16640
-	0x16640: 0x4004d620, 0x16641: 0xce2d0071, 0x16642: 0x002c0a88, 0x16643: 0xc3590953,
-	0x16644: 0x002c6288, 0x16645: 0x002c9888, 0x16646: 0x002d0888, 0x16647: 0x002d2288,
-	0x16648: 0x002d6888, 0x16649: 0x002d9a88, 0x1664a: 0x002dcc88, 0x1664b: 0x002dfe88,
-	0x1664c: 0xc0030002, 0x1664d: 0x002e8288, 0x1664e: 0x002e9e88, 0x1664f: 0xc33f2741,
-	0x16650: 0x002f2c88, 0x16651: 0x002f5688, 0x16652: 0xc35f0991, 0x16653: 0xc3430991,
-	0x16654: 0x00302c88, 0x16655: 0x00306c88, 0x16656: 0x0030be88, 0x16657: 0x0030e288,
-	0x16658: 0x0030f688, 0x16659: 0x00310088, 0x1665a: 0xc3630991, 0x1665b: 0x4003f820,
-	0x1665c: 0x4004e420, 0x1665d: 0x4003fa20, 0x1665e: 0x40062420, 0x1665f: 0x40021620,
-	0x16660: 0x40061e20, 0x16661: 0xce2b0071, 0x16662: 0x402c0a20, 0x16663: 0xc3550953,
-	0x16664: 0x402c6220, 0x16665: 0x402c9820, 0x16666: 0x402d0820, 0x16667: 0x402d2220,
-	0x16668: 0x402d6820, 0x16669: 0x402d9a20, 0x1666a: 0x402dcc20, 0x1666b: 0x402dfe20,
-	0x1666c: 0xc0000002, 0x1666d: 0x402e8220, 0x1666e: 0x402e9e20, 0x1666f: 0xc33d2741,
-	0x16670: 0x402f2c20, 0x16671: 0x402f5620, 0x16672: 0xc35d0991, 0x16673: 0xc3410991,
-	0x16674: 0x40302c20, 0x16675: 0x40306c20, 0x16676: 0x4030be20, 0x16677: 0x4030e220,
-	0x16678: 0x4030f620, 0x16679: 0x40310020, 0x1667a: 0xc3610991, 0x1667b: 0x4003fc20,
-	0x1667c: 0x40094820, 0x1667d: 0x4003fe20, 0x1667e: 0x40094c20, 0x1667f: 0xa0000000,
-	// Block 0x59a, offset 0x16680
-	0x16680: 0xe00008f5, 0x16681: 0xe00008ef, 0x16682: 0xe0000921, 0x16683: 0xe0000969,
-	0x16684: 0x002be083, 0x16685: 0xe000094d, 0x16686: 0xe00009dd, 0x16687: 0xe0000a53,
-	0x16688: 0xe0000ae8, 0x16689: 0xe0000ae2, 0x1668a: 0xe0000af4, 0x1668b: 0xe0000b20,
-	0x1668c: 0xe0000c2b, 0x1668d: 0xe0000c25, 0x1668e: 0xe0000c37, 0x1668f: 0xe0000c43,
-	0x16690: 0xe0000ab3, 0x16691: 0xe0000d63, 0x16692: 0xe0000d9a, 0x16693: 0xe0000d94,
-	0x16694: 0x002ee483, 0x16695: 0xe0000de6, 0x16696: 0xe0000dd2, 0x16697: 0x40093e20,
-	0x16698: 0xe0000e12, 0x16699: 0xe0000fe1, 0x1669a: 0xe0000fdb, 0x1669b: 0xe0000fed,
-	0x1669c: 0xe0000fff, 0x1669d: 0xe0001102, 0x1669e: 0x00318888, 0x1669f: 0xe0000f7b,
-	0x166a0: 0xe00008f2, 0x166a1: 0xe00008ec, 0x166a2: 0xe000091e, 0x166a3: 0xe0000966,
-	0x166a4: 0x402be020, 0x166a5: 0xe000094a, 0x166a6: 0xe00009d5, 0x166a7: 0xe0000a4d,
-	0x166a8: 0xe0000ae5, 0x166a9: 0xe0000adf, 0x166aa: 0xe0000af1, 0x166ab: 0xe0000b1d,
-	0x166ac: 0xe0000c28, 0x166ad: 0xe0000c22, 0x166ae: 0xe0000c34, 0x166af: 0xe0000c40,
-	0x166b0: 0xe0000aad, 0x166b1: 0xe0000d60, 0x166b2: 0xe0000d97, 0x166b3: 0xe0000d91,
-	0x166b4: 0x402ee420, 0x166b5: 0xe0000de3, 0x166b6: 0xe0000dcf, 0x166b7: 0x40093c20,
-	0x166b8: 0xe0000e0f, 0x166b9: 0xe0000fde, 0x166ba: 0xe0000fd8, 0x166bb: 0xe0000fea,
-	0x166bc: 0xe0000ffc, 0x166bd: 0xe00010ff, 0x166be: 0x40318820, 0x166bf: 0xe0001114,
-	// Block 0x59b, offset 0x166c0
-	0x166c0: 0x40321220, 0x166c1: 0x40321a20, 0x166c2: 0x40322220, 0x166c3: 0x40322a20,
-	0x166c4: 0xe0000ad5, 0x166c5: 0xe0000ad1, 0x166c6: 0xe0000acd, 0x166c7: 0xf0000a0a,
-	0x166c8: 0xf000040a, 0x166c9: 0xf0000404, 0x166ca: 0xf0000a0a, 0x166cb: 0xf000040a,
-	0x166cc: 0xf0000404, 0x166cd: 0xe0000947, 0x166ce: 0xe0000944, 0x166cf: 0xe0000c3d,
-	0x166d0: 0xe0000c3a, 0x166d1: 0xe0000dcc, 0x166d2: 0xe0000dc9, 0x166d3: 0xe0000ff3,
-	0x166d4: 0xe0000ff0, 0x166d5: 0xe000101e, 0x166d6: 0xe000101a, 0x166d7: 0xe0001006,
-	0x166d8: 0xe0001002, 0x166d9: 0xe0001016, 0x166da: 0xe0001012, 0x166db: 0xe000100e,
-	0x166dc: 0xe000100a, 0x166dd: 0x402cae20, 0x166de: 0xe00033c3, 0x166df: 0xe00033c0,
-	0x166e0: 0xe0000976, 0x166e1: 0xe0000972, 0x166e2: 0xe00009f4, 0x166e3: 0xe00009ef,
-	0x166e4: 0x002d3a88, 0x166e5: 0x402d3a20, 0x166e6: 0xe0000bbe, 0x166e7: 0xe0000bbb,
-	0x166e8: 0xe0000c99, 0x166e9: 0xe0000c96, 0x166ea: 0xe0000e20, 0x166eb: 0xe0000e1d,
-	0x166ec: 0xe0000e27, 0x166ed: 0xe0000e23, 0x166ee: 0xe0001162, 0x166ef: 0xe000115f,
-	0x166f0: 0xe0000c8d, 0x166f1: 0xf0000a0a, 0x166f2: 0xf000040a, 0x166f3: 0xf0000404,
-	0x166f4: 0xe0000bac, 0x166f5: 0xe0000ba9, 0x166f6: 0x002d7888, 0x166f7: 0x00319488,
-	0x166f8: 0xe0000d57, 0x166f9: 0xe0000d54, 0x166fa: 0xe0000954, 0x166fb: 0xe0000950,
-	0x166fc: 0xe00009ea, 0x166fd: 0xe00009e5, 0x166fe: 0xe0000e19, 0x166ff: 0xe0000e15,
-	// Block 0x59c, offset 0x16700
-	0x16700: 0xe0000b03, 0x16701: 0xe0000aff, 0x16702: 0xe0000b13, 0x16703: 0xe0000b0f,
-	0x16704: 0xe0000b0b, 0x16705: 0xe0000b07, 0x16706: 0xe0000b75, 0x16707: 0xe0000b71,
-	0x16708: 0xe0000c66, 0x16709: 0xe0000c63, 0x1670a: 0xe0000c78, 0x1670b: 0xe0000c75,
-	0x1670c: 0xe0000e84, 0x1670d: 0xe0000e81, 0x1670e: 0xe0000e44, 0x1670f: 0xe0000e41,
-	0x16710: 0xe000a91a, 0x16711: 0xe000a917, 0x16712: 0xe000a920, 0x16713: 0xe000a91d,
-	0x16714: 0xe000a926, 0x16715: 0xe000a923, 0x16716: 0xe000258a, 0x16717: 0xe0002587,
-	0x16718: 0xe000a92c, 0x16719: 0xe000a929, 0x1671a: 0xe0000e5d, 0x1671b: 0xe0000e59,
-	0x1671c: 0xe0000e65, 0x1671d: 0xe0000e61, 0x1671e: 0xe0000e75, 0x1671f: 0xe0000e71,
-	0x16720: 0xe0000e6d, 0x16721: 0xe0000e69, 0x16722: 0xe0000e7d, 0x16723: 0xe0000e79,
-	0x16724: 0xe000108d, 0x16725: 0xe000108a, 0x16726: 0xe000104d, 0x16727: 0xe000104a,
-	0x16728: 0xe0001066, 0x16729: 0xe0001062, 0x1672a: 0xe000106e, 0x1672b: 0xe000106a,
-	0x1672c: 0xe000107e, 0x1672d: 0xe000107a, 0x1672e: 0xe0001076, 0x1672f: 0xe0001072,
-	0x16730: 0xe0001086, 0x16731: 0xe0001082, 0x16732: 0xe0001108, 0x16733: 0xe0001105,
-	0x16734: 0xe0001135, 0x16735: 0xe0001132, 0x16736: 0xe000112f, 0x16737: 0xe000112c,
-	0x16738: 0xe000111d, 0x16739: 0xe000111a, 0x1673a: 0xe0000d0a, 0x1673b: 0xe0000d07,
-	0x1673c: 0x0030d888, 0x1673d: 0x4030d820, 0x1673e: 0x00312088, 0x1673f: 0x40312020,
-	// Block 0x59d, offset 0x16740
-	0x16740: 0xa0000000, 0x16741: 0xa0000000, 0x16742: 0xa0000000, 0x16743: 0xa0000000,
-	0x16744: 0xa0000000, 0x16745: 0xa0000000, 0x16746: 0xa0000000, 0x16747: 0xa0000000,
-	0x16748: 0xa0000000, 0x16749: 0x40020020, 0x1674a: 0x40020220, 0x1674b: 0x40020420,
-	0x1674c: 0x40020620, 0x1674d: 0x40020820, 0x1674e: 0xa0000000, 0x1674f: 0xa0000000,
-	0x16750: 0xa0000000, 0x16751: 0xa0000000, 0x16752: 0xa0000000, 0x16753: 0xa0000000,
-	0x16754: 0xa0000000, 0x16755: 0xa0000000, 0x16756: 0xa0000000, 0x16757: 0xa0000000,
-	0x16758: 0xa0000000, 0x16759: 0xa0000000, 0x1675a: 0xa0000000, 0x1675b: 0xa0000000,
-	0x1675c: 0xa0000000, 0x1675d: 0xa0000000, 0x1675e: 0xa0000000, 0x1675f: 0xa0000000,
-	0x16760: 0x40021220, 0x16761: 0x4002ba20, 0x16762: 0x4003e020, 0x16763: 0x4004ea20,
-	0x16764: 0x4027de20, 0x16765: 0x4004ec20, 0x16766: 0x4004e620, 0x16767: 0x4003d220,
-	0x16768: 0x4003f420, 0x16769: 0x4003f620, 0x1676a: 0x4004d820, 0x1676b: 0x40093820,
-	0x1676c: 0x40024020, 0x1676d: 0x40021a20, 0x1676e: 0x4002e420, 0x1676f: 0x4004e220,
-	0x16770: 0x4029cc20, 0x16771: 0x4029ce20, 0x16772: 0x4029d020, 0x16773: 0x4029d220,
-	0x16774: 0x4029d420, 0x16775: 0x4029d620, 0x16776: 0x4029d820, 0x16777: 0x4029da20,
-	0x16778: 0x4029dc20, 0x16779: 0x4029de20, 0x1677a: 0x40026c20, 0x1677b: 0x40026220,
-	0x1677c: 0x40094020, 0x1677d: 0x40094220, 0x1677e: 0x40094420, 0x1677f: 0x4002c420,
-	// Block 0x59e, offset 0x16780
-	0x16780: 0x4004d620, 0x16781: 0x002bde88, 0x16782: 0x002c0a88, 0x16783: 0xc5872851,
-	0x16784: 0x002c6288, 0x16785: 0x002c9888, 0x16786: 0x002d0888, 0x16787: 0x002d2288,
-	0x16788: 0x002d6888, 0x16789: 0x002d9a88, 0x1678a: 0x002dcc88, 0x1678b: 0x002dfe88,
-	0x1678c: 0xc0030002, 0x1678d: 0x002e8288, 0x1678e: 0x002e9e88, 0x1678f: 0x002ee288,
-	0x16790: 0x002f2c88, 0x16791: 0x002f5688, 0x16792: 0x002f7a88, 0x16793: 0xc3430991,
-	0x16794: 0x00302c88, 0x16795: 0x00306c88, 0x16796: 0x0030be88, 0x16797: 0x0030e288,
-	0x16798: 0x0030f688, 0x16799: 0x00310088, 0x1679a: 0xc3630991, 0x1679b: 0x4003f820,
-	0x1679c: 0x4004e420, 0x1679d: 0x4003fa20, 0x1679e: 0x40062420, 0x1679f: 0x40021620,
-	0x167a0: 0x40061e20, 0x167a1: 0x402bde20, 0x167a2: 0x402c0a20, 0x167a3: 0xc5842851,
-	0x167a4: 0x402c6220, 0x167a5: 0x402c9820, 0x167a6: 0x402d0820, 0x167a7: 0x402d2220,
-	0x167a8: 0x402d6820, 0x167a9: 0x402d9a20, 0x167aa: 0x402dcc20, 0x167ab: 0x402dfe20,
-	0x167ac: 0xc0000002, 0x167ad: 0x402e8220, 0x167ae: 0x402e9e20, 0x167af: 0x402ee220,
-	0x167b0: 0x402f2c20, 0x167b1: 0x402f5620, 0x167b2: 0x402f7a20, 0x167b3: 0xc3410991,
-	0x167b4: 0x40302c20, 0x167b5: 0x40306c20, 0x167b6: 0x4030be20, 0x167b7: 0x4030e220,
-	0x167b8: 0x4030f620, 0x167b9: 0x40310020, 0x167ba: 0xc3610991, 0x167bb: 0x4003fc20,
-	0x167bc: 0x40094820, 0x167bd: 0x4003fe20, 0x167be: 0x40094c20, 0x167bf: 0xa0000000,
-	// Block 0x59f, offset 0x167c0
-	0x167c0: 0xe0000983, 0x167c1: 0xe0000980, 0x167c2: 0xe00008fb, 0x167c3: 0xe00008f8,
-	0x167c4: 0xe000097d, 0x167c5: 0xe000097a, 0x167c6: 0x002c3e83, 0x167c7: 0x402c3e20,
-	0x167c8: 0xe0000a3e, 0x167c9: 0xe0000a3b, 0x167ca: 0xe0000a4a, 0x167cb: 0xe0000a47,
-	0x167cc: 0x002c3c83, 0x167cd: 0x402c3c20, 0x167ce: 0xe0000a86, 0x167cf: 0xe0000a83,
-	0x167d0: 0x002c6483, 0x167d1: 0x402c6420, 0x167d2: 0xe0000b46, 0x167d3: 0xe0000b43,
-	0x167d4: 0xe0000aee, 0x167d5: 0xe0000aeb, 0x167d6: 0xe0000b2c, 0x167d7: 0xe0000b29,
-	0x167d8: 0xe0000b40, 0x167d9: 0xe0000b3d, 0x167da: 0xe0000b1a, 0x167db: 0xe0000b17,
-	0x167dc: 0xe0000bb8, 0x167dd: 0xe0000bb5, 0x167de: 0xe0000bb2, 0x167df: 0xe0000baf,
-	0x167e0: 0xe0000bc4, 0x167e1: 0xe0000bc1, 0x167e2: 0xe0000bca, 0x167e3: 0xe0000bc7,
-	0x167e4: 0xe0000bee, 0x167e5: 0xe0000beb, 0x167e6: 0xe0000c1b, 0x167e7: 0xe0000c18,
-	0x167e8: 0xe0000c51, 0x167e9: 0xe0000c4e, 0x167ea: 0xe0000c60, 0x167eb: 0xe0000c5d,
-	0x167ec: 0xe0000c31, 0x167ed: 0xe0000c2e, 0x167ee: 0xe0000c5a, 0x167ef: 0xe0000c57,
-	0x167f0: 0xe0000c54, 0x167f1: 0x402da220, 0x167f2: 0xf0000a0a, 0x167f3: 0xf0000404,
-	0x167f4: 0xe0000c8a, 0x167f5: 0xe0000c87, 0x167f6: 0xe0000c9f, 0x167f7: 0xe0000c9c,
-	0x167f8: 0x402f7220, 0x167f9: 0xe0000ccc, 0x167fa: 0xe0000cc9, 0x167fb: 0xe0000cd8,
-	0x167fc: 0xe0000cd5, 0x167fd: 0xe0000cd2, 0x167fe: 0xe0000ccf, 0x167ff: 0xe0000d04,
-	// Block 0x5a0, offset 0x16800
-	0x16800: 0xa0000000, 0x16801: 0xa0000000, 0x16802: 0xa0000000, 0x16803: 0xa0000000,
-	0x16804: 0xa0000000, 0x16805: 0xa0000000, 0x16806: 0xa0000000, 0x16807: 0xa0000000,
-	0x16808: 0xa0000000, 0x16809: 0x40020020, 0x1680a: 0x40020220, 0x1680b: 0x40020420,
-	0x1680c: 0x40020620, 0x1680d: 0x40020820, 0x1680e: 0xa0000000, 0x1680f: 0xa0000000,
-	0x16810: 0xa0000000, 0x16811: 0xa0000000, 0x16812: 0xa0000000, 0x16813: 0xa0000000,
-	0x16814: 0xa0000000, 0x16815: 0xa0000000, 0x16816: 0xa0000000, 0x16817: 0xa0000000,
-	0x16818: 0xa0000000, 0x16819: 0xa0000000, 0x1681a: 0xa0000000, 0x1681b: 0xa0000000,
-	0x1681c: 0xa0000000, 0x1681d: 0xa0000000, 0x1681e: 0xa0000000, 0x1681f: 0xa0000000,
-	0x16820: 0x40021220, 0x16821: 0x4002ba20, 0x16822: 0x4003e020, 0x16823: 0x4004ea20,
-	0x16824: 0x4027de20, 0x16825: 0x4004ec20, 0x16826: 0x4004e620, 0x16827: 0x4003d220,
-	0x16828: 0x4003f420, 0x16829: 0x4003f620, 0x1682a: 0x4004d820, 0x1682b: 0x40093820,
-	0x1682c: 0x40024020, 0x1682d: 0x40021a20, 0x1682e: 0x4002e420, 0x1682f: 0x4004e220,
-	0x16830: 0x4029cc20, 0x16831: 0x4029ce20, 0x16832: 0x4029d020, 0x16833: 0x4029d220,
-	0x16834: 0x4029d420, 0x16835: 0x4029d620, 0x16836: 0x4029d820, 0x16837: 0x4029da20,
-	0x16838: 0x4029dc20, 0x16839: 0x4029de20, 0x1683a: 0x40026c20, 0x1683b: 0x40026220,
-	0x1683c: 0x40094020, 0x1683d: 0x40094220, 0x1683e: 0x40094420, 0x1683f: 0x4002c420,
-	// Block 0x5a1, offset 0x16840
-	0x16840: 0x4004d620, 0x16841: 0x002bde88, 0x16842: 0x002c0a88, 0x16843: 0xcab40911,
-	0x16844: 0xce8909c2, 0x16845: 0xc6220071, 0x16846: 0x002d0888, 0x16847: 0xce8c2a12,
-	0x16848: 0x002d6888, 0x16849: 0x002d9a88, 0x1684a: 0x002dcc88, 0x1684b: 0x002dfe88,
-	0x1684c: 0xce930ac4, 0x1684d: 0x002e8288, 0x1684e: 0xce982a12, 0x1684f: 0x002ee288,
-	0x16850: 0x002f2c88, 0x16851: 0x002f5688, 0x16852: 0xce9b9602, 0x16853: 0xce9e09c2,
-	0x16854: 0xcea309c2, 0x16855: 0x00306c88, 0x16856: 0x0030be88, 0x16857: 0x0030e288,
-	0x16858: 0xcea809c2, 0x16859: 0x00310088, 0x1685a: 0xceab09c2, 0x1685b: 0x4003f820,
-	0x1685c: 0x4004e420, 0x1685d: 0x4003fa20, 0x1685e: 0x40062420, 0x1685f: 0x40021620,
-	0x16860: 0x40061e20, 0x16861: 0x402bde20, 0x16862: 0x402c0a20, 0x16863: 0xcab20911,
-	0x16864: 0xce8709b1, 0x16865: 0xc6200071, 0x16866: 0x402d0820, 0x16867: 0xcab62a01,
-	0x16868: 0x402d6820, 0x16869: 0x402d9a20, 0x1686a: 0x402dcc20, 0x1686b: 0x402dfe20,
-	0x1686c: 0xce8f0a73, 0x1686d: 0x402e8220, 0x1686e: 0xcac62a01, 0x1686f: 0x402ee220,
-	0x16870: 0x402f2c20, 0x16871: 0x402f5620, 0x16872: 0xcaca95f1, 0x16873: 0xcace09b1,
-	0x16874: 0xcea109b1, 0x16875: 0x40306c20, 0x16876: 0x4030be20, 0x16877: 0x4030e220,
-	0x16878: 0xcea609b1, 0x16879: 0x40310020, 0x1687a: 0xcad209b1, 0x1687b: 0x4003fc20,
-	0x1687c: 0x40094820, 0x1687d: 0x4003fe20, 0x1687e: 0x40094c20, 0x1687f: 0xa0000000,
-	// Block 0x5a2, offset 0x16880
-	0x16880: 0xe00008f5, 0x16881: 0xe00008ef, 0x16882: 0xe0000921, 0x16883: 0xe0000969,
-	0x16884: 0xe000095b, 0x16885: 0xe000094d, 0x16886: 0xe00009dd, 0x16887: 0x002c6083,
-	0x16888: 0xe0000ae8, 0x16889: 0xe0000ae2, 0x1688a: 0xe0000af4, 0x1688b: 0x002d0683,
-	0x1688c: 0xe0000c2b, 0x1688d: 0xe0000c25, 0x1688e: 0xe0000c37, 0x1688f: 0xe0000c43,
-	0x16890: 0xe0000ab3, 0x16891: 0xe0000d63, 0x16892: 0xe0000d9a, 0x16893: 0xe0000d94,
-	0x16894: 0xe0000da6, 0x16895: 0xe0000de6, 0x16896: 0xe0000dd2, 0x16897: 0x40093e20,
-	0x16898: 0xe0000e12, 0x16899: 0xe0000fe1, 0x1689a: 0xe0000fdb, 0x1689b: 0xe0000fed,
-	0x1689c: 0xe0000fff, 0x1689d: 0xe0001102, 0x1689e: 0x00318888, 0x1689f: 0xe0000f7b,
-	0x168a0: 0xe00008f2, 0x168a1: 0xe00008ec, 0x168a2: 0xe000091e, 0x168a3: 0xe0000966,
-	0x168a4: 0xe0000958, 0x168a5: 0xe000094a, 0x168a6: 0xe00009d5, 0x168a7: 0x402c6020,
-	0x168a8: 0xe0000ae5, 0x168a9: 0xe0000adf, 0x168aa: 0xe0000af1, 0x168ab: 0x402d0620,
-	0x168ac: 0xe0000c28, 0x168ad: 0xe0000c22, 0x168ae: 0xe0000c34, 0x168af: 0xe0000c40,
-	0x168b0: 0xe0000aad, 0x168b1: 0xe0000d60, 0x168b2: 0xe0000d97, 0x168b3: 0xe0000d91,
-	0x168b4: 0xe0000da3, 0x168b5: 0xe0000de3, 0x168b6: 0xe0000dcf, 0x168b7: 0x40093c20,
-	0x168b8: 0xe0000e0f, 0x168b9: 0xe0000fde, 0x168ba: 0xe0000fd8, 0x168bb: 0xe0000fea,
-	0x168bc: 0xe0000ffc, 0x168bd: 0xe00010ff, 0x168be: 0x40318820, 0x168bf: 0xe0001114,
-	// Block 0x5a3, offset 0x168c0
-	0x168c0: 0xe00009b1, 0x168c1: 0xe00009ae, 0x168c2: 0xe0000a22, 0x168c3: 0xe0000a1f,
-	0x168c4: 0xe0000a28, 0x168c5: 0xe0000a25, 0x168c6: 0xe0000a2e, 0x168c7: 0xe0000a2b,
-	0x168c8: 0xe000a9ad, 0x168c9: 0xe000a9aa, 0x168ca: 0xe0000a8c, 0x168cb: 0xe0000a89,
-	0x168cc: 0xe0000a98, 0x168cd: 0xe0000a95, 0x168ce: 0xe0000aa4, 0x168cf: 0xe0000aa1,
-	0x168d0: 0xe0000a92, 0x168d1: 0xe0000a8f, 0x168d2: 0xe0000a9e, 0x168d3: 0xe0000a9b,
-	0x168d4: 0xe0000b55, 0x168d5: 0xe0000b51, 0x168d6: 0xe0000b4d, 0x168d7: 0xe0000b49,
-	0x168d8: 0xe0000b7c, 0x168d9: 0xe0000b79, 0x168da: 0xe0000b82, 0x168db: 0xe0000b7f,
-	0x168dc: 0xe0000b39, 0x168dd: 0xe0000b35, 0x168de: 0xe0000b8c, 0x168df: 0xe0000b89,
-	0x168e0: 0xe0000bd0, 0x168e1: 0xe0000bcd, 0x168e2: 0xe0000c00, 0x168e3: 0xe0000bfd,
-	0x168e4: 0xe0000c0c, 0x168e5: 0xe0000c09, 0x168e6: 0xe0000bfa, 0x168e7: 0xe0000bf7,
-	0x168e8: 0xe0000c06, 0x168e9: 0xe0000c03, 0x168ea: 0xe0000c12, 0x168eb: 0xe0000c0f,
-	0x168ec: 0xe0000c7e, 0x168ed: 0xe0000c7b, 0x168ee: 0xe0000c4a, 0x168ef: 0xe0000c46,
-	0x168f0: 0xe0000c93, 0x168f1: 0xe0000c90, 0x168f2: 0xe0000cab, 0x168f3: 0xe0000ca8,
-	0x168f4: 0xe0000cb1, 0x168f5: 0xe0000cae, 0x168f6: 0xe0000cde, 0x168f7: 0xe0000cdb,
-	0x168f8: 0xe0000ce5, 0x168f9: 0xe0000ce1, 0x168fa: 0xe0000cf2, 0x168fb: 0xe0000cef,
-	0x168fc: 0xe0000cec, 0x168fd: 0xe0000ce9, 0x168fe: 0xe0000d1e, 0x168ff: 0xe0000d1b,
-	// Block 0x5a4, offset 0x16900
-	0x16900: 0xa0000000, 0x16901: 0xa0000000, 0x16902: 0xa0000000, 0x16903: 0xa0000000,
-	0x16904: 0xa0000000, 0x16905: 0xa0000000, 0x16906: 0xa0000000, 0x16907: 0xa0000000,
-	0x16908: 0xa0000000, 0x16909: 0x40020020, 0x1690a: 0x40020220, 0x1690b: 0x40020420,
-	0x1690c: 0x40020620, 0x1690d: 0x40020820, 0x1690e: 0xa0000000, 0x1690f: 0xa0000000,
-	0x16910: 0xa0000000, 0x16911: 0xa0000000, 0x16912: 0xa0000000, 0x16913: 0xa0000000,
-	0x16914: 0xa0000000, 0x16915: 0xa0000000, 0x16916: 0xa0000000, 0x16917: 0xa0000000,
-	0x16918: 0xa0000000, 0x16919: 0xa0000000, 0x1691a: 0xa0000000, 0x1691b: 0xa0000000,
-	0x1691c: 0xa0000000, 0x1691d: 0xa0000000, 0x1691e: 0xa0000000, 0x1691f: 0xa0000000,
-	0x16920: 0x40021220, 0x16921: 0x4002ba20, 0x16922: 0x4003e020, 0x16923: 0x4004ea20,
-	0x16924: 0x4027de20, 0x16925: 0x4004ec20, 0x16926: 0x4004e620, 0x16927: 0x4003d220,
-	0x16928: 0x4003f420, 0x16929: 0x4003f620, 0x1692a: 0x4004d820, 0x1692b: 0x40093820,
-	0x1692c: 0x40024020, 0x1692d: 0x40021a20, 0x1692e: 0x4002e420, 0x1692f: 0x4004e220,
-	0x16930: 0x4029cc20, 0x16931: 0x4029ce20, 0x16932: 0x4029d020, 0x16933: 0x4029d220,
-	0x16934: 0x4029d420, 0x16935: 0x4029d620, 0x16936: 0x4029d820, 0x16937: 0x4029da20,
-	0x16938: 0x4029dc20, 0x16939: 0x4029de20, 0x1693a: 0x40026c20, 0x1693b: 0x40026220,
-	0x1693c: 0x40094020, 0x1693d: 0x40094220, 0x1693e: 0x40094420, 0x1693f: 0x4002c420,
-	// Block 0x5a5, offset 0x16940
-	0x16940: 0x4004d620, 0x16941: 0xc56727b1, 0x16942: 0x002c0a88, 0x16943: 0x002c3a88,
-	0x16944: 0x002c6288, 0x16945: 0xceb00be1, 0x16946: 0x002d0888, 0x16947: 0x002d2288,
-	0x16948: 0x002d6888, 0x16949: 0x002d9a88, 0x1694a: 0x002dcc88, 0x1694b: 0x002dfe88,
-	0x1694c: 0xc0030002, 0x1694d: 0x002e8288, 0x1694e: 0x002e9e88, 0x1694f: 0xceb69621,
-	0x16950: 0x002f2c88, 0x16951: 0x002f5688, 0x16952: 0x002f7a88, 0x16953: 0x002fe688,
-	0x16954: 0x00302c88, 0x16955: 0xc3900b21, 0x16956: 0x0030be88, 0x16957: 0x0030e288,
-	0x16958: 0x0030f688, 0x16959: 0x00310088, 0x1695a: 0x00312a88, 0x1695b: 0x4003f820,
-	0x1695c: 0x4004e420, 0x1695d: 0x4003fa20, 0x1695e: 0x40062420, 0x1695f: 0x40021620,
-	0x16960: 0x40061e20, 0x16961: 0xc56427b1, 0x16962: 0x402c0a20, 0x16963: 0x402c3a20,
-	0x16964: 0x402c6220, 0x16965: 0xceae0be1, 0x16966: 0x402d0820, 0x16967: 0x402d2220,
-	0x16968: 0x402d6820, 0x16969: 0x402d9a20, 0x1696a: 0x402dcc20, 0x1696b: 0x402dfe20,
-	0x1696c: 0xc0000002, 0x1696d: 0x402e8220, 0x1696e: 0x402e9e20, 0x1696f: 0xceb29621,
-	0x16970: 0x402f2c20, 0x16971: 0x402f5620, 0x16972: 0x402f7a20, 0x16973: 0x402fe620,
-	0x16974: 0x40302c20, 0x16975: 0xc38d0b21, 0x16976: 0x4030be20, 0x16977: 0x4030e220,
-	0x16978: 0x4030f620, 0x16979: 0x40310020, 0x1697a: 0x40312a20, 0x1697b: 0x4003fc20,
-	0x1697c: 0x40094820, 0x1697d: 0x4003fe20, 0x1697e: 0x40094c20, 0x1697f: 0xa0000000,
-	// Block 0x5a6, offset 0x16980
-	0x16980: 0xe00008f5, 0x16981: 0xe00008ef, 0x16982: 0xe0000921, 0x16983: 0xe0000969,
-	0x16984: 0x00320e83, 0x16985: 0x00320c83, 0x16986: 0x00320ea3, 0x16987: 0xe0000a53,
-	0x16988: 0xe0000ae8, 0x16989: 0xe0000ae2, 0x1698a: 0xe0000af4, 0x1698b: 0xe0000b20,
-	0x1698c: 0xe0000c2b, 0x1698d: 0xe0000c25, 0x1698e: 0xe0000c37, 0x1698f: 0xe0000c43,
-	0x16990: 0x002c62c3, 0x16991: 0xe0000d63, 0x16992: 0xe0000d9a, 0x16993: 0xe0000d94,
-	0x16994: 0x00321103, 0x16995: 0xe0000de6, 0x16996: 0x00321083, 0x16997: 0x40093e20,
-	0x16998: 0x003210a3, 0x16999: 0xe0000fe1, 0x1699a: 0xe0000fdb, 0x1699b: 0xe0000fed,
-	0x1699c: 0x003100a3, 0x1699d: 0xe0001102, 0x1699e: 0xe00025cc, 0x1699f: 0xe0000f7b,
-	0x169a0: 0xe00008f2, 0x169a1: 0xe00008ec, 0x169a2: 0xe000091e, 0x169a3: 0xe0000966,
-	0x169a4: 0x40320e20, 0x169a5: 0x40320c20, 0x169a6: 0x40320e21, 0x169a7: 0xe0000a4d,
-	0x169a8: 0xe0000ae5, 0x169a9: 0xe0000adf, 0x169aa: 0xe0000af1, 0x169ab: 0xe0000b1d,
-	0x169ac: 0xe0000c28, 0x169ad: 0xe0000c22, 0x169ae: 0xe0000c34, 0x169af: 0xe0000c40,
-	0x169b0: 0x402c6222, 0x169b1: 0xe0000d60, 0x169b2: 0xe0000d97, 0x169b3: 0xe0000d91,
-	0x169b4: 0x40321024, 0x169b5: 0xe0000de3, 0x169b6: 0x40321020, 0x169b7: 0x40093c20,
-	0x169b8: 0x40321021, 0x169b9: 0xe0000fde, 0x169ba: 0xe0000fd8, 0x169bb: 0xe0000fea,
-	0x169bc: 0x40310021, 0x169bd: 0xe00010ff, 0x169be: 0xe00025c9, 0x169bf: 0xe0001114,
-	// Block 0x5a7, offset 0x169c0
-	0x169c0: 0xe0000983, 0x169c1: 0xe0000980, 0x169c2: 0xe00008fb, 0x169c3: 0xe00008f8,
-	0x169c4: 0xe000097d, 0x169c5: 0xe000097a, 0x169c6: 0xe0000a38, 0x169c7: 0xe0000a35,
-	0x169c8: 0xe0000a3e, 0x169c9: 0xe0000a3b, 0x169ca: 0xe0000a4a, 0x169cb: 0xe0000a47,
-	0x169cc: 0xe0000a44, 0x169cd: 0xe0000a41, 0x169ce: 0xe0000a86, 0x169cf: 0xe0000a83,
-	0x169d0: 0x002c62a3, 0x169d1: 0x402c6221, 0x169d2: 0xe0000b46, 0x169d3: 0xe0000b43,
-	0x169d4: 0xe0000aee, 0x169d5: 0xe0000aeb, 0x169d6: 0xe0000b2c, 0x169d7: 0xe0000b29,
-	0x169d8: 0x00320ec3, 0x169d9: 0x40320e22, 0x169da: 0xe0000b1a, 0x169db: 0xe0000b17,
-	0x169dc: 0xe0000bb8, 0x169dd: 0xe0000bb5, 0x169de: 0xe0000bb2, 0x169df: 0xe0000baf,
-	0x169e0: 0xe0000bc4, 0x169e1: 0xe0000bc1, 0x169e2: 0xe0000bca, 0x169e3: 0xe0000bc7,
-	0x169e4: 0xe0000bee, 0x169e5: 0xe0000beb, 0x169e6: 0xe0000c1b, 0x169e7: 0xe0000c18,
-	0x169e8: 0xe0000c51, 0x169e9: 0xe0000c4e, 0x169ea: 0xe0000c60, 0x169eb: 0xe0000c5d,
-	0x169ec: 0xe0000c31, 0x169ed: 0xe0000c2e, 0x169ee: 0xe0000c5a, 0x169ef: 0xe0000c57,
-	0x169f0: 0xe0000c54, 0x169f1: 0x402da220, 0x169f2: 0xf0000a0a, 0x169f3: 0xf0000404,
-	0x169f4: 0xe0000c8a, 0x169f5: 0xe0000c87, 0x169f6: 0xe0000c9f, 0x169f7: 0xe0000c9c,
-	0x169f8: 0x402f7220, 0x169f9: 0xe0000ccc, 0x169fa: 0xe0000cc9, 0x169fb: 0xe0000cd8,
-	0x169fc: 0xe0000cd5, 0x169fd: 0xe0000cd2, 0x169fe: 0xe0000ccf, 0x169ff: 0xe0000d04,
-	// Block 0x5a8, offset 0x16a00
-	0x16a00: 0xe0000cfe, 0x16a01: 0xe0000cf8, 0x16a02: 0xe0000cf5, 0x16a03: 0xe0000d51,
-	0x16a04: 0xe0000d4e, 0x16a05: 0xe0000d6f, 0x16a06: 0xe0000d6c, 0x16a07: 0xe0000d5d,
-	0x16a08: 0xe0000d5a, 0x16a09: 0xf0000404, 0x16a0a: 0x002eda88, 0x16a0b: 0x402eda20,
-	0x16a0c: 0xe0000e2e, 0x16a0d: 0xe0000e2b, 0x16a0e: 0xe0000da0, 0x16a0f: 0xe0000d9d,
-	0x16a10: 0x003210c3, 0x16a11: 0x40321022, 0x16a12: 0x003210e3, 0x16a13: 0x40321023,
-	0x16a14: 0xe0000eca, 0x16a15: 0xe0000ec7, 0x16a16: 0xe0000edc, 0x16a17: 0xe0000ed9,
-	0x16a18: 0xe0000ed0, 0x16a19: 0xe0000ecd, 0x16a1a: 0xe0000f1f, 0x16a1b: 0xe0000f1c,
-	0x16a1c: 0xe0000f2d, 0x16a1d: 0xe0000f2a, 0x16a1e: 0xe0000f47, 0x16a1f: 0xe0000f44,
-	0x16a20: 0xe0000f33, 0x16a21: 0xe0000f30, 0x16a22: 0xe0000f99, 0x16a23: 0xe0000f96,
-	0x16a24: 0xe0000f8a, 0x16a25: 0xe0000f87, 0x16a26: 0x00303688, 0x16a27: 0x40303620,
-	0x16a28: 0xe000102b, 0x16a29: 0xe0001028, 0x16a2a: 0xe000103f, 0x16a2b: 0xe000103c,
-	0x16a2c: 0xe0000fe7, 0x16a2d: 0xe0000fe4, 0x16a2e: 0xe0000ff9, 0x16a2f: 0xe0000ff6,
-	0x16a30: 0x003100c3, 0x16a31: 0x40310022, 0x16a32: 0xe0001039, 0x16a33: 0xe0001036,
-	0x16a34: 0xe00010d8, 0x16a35: 0xe00010d5, 0x16a36: 0xe000110e, 0x16a37: 0xe000110b,
-	0x16a38: 0xe0001117, 0x16a39: 0xe000113b, 0x16a3a: 0xe0001138, 0x16a3b: 0xe000114d,
-	0x16a3c: 0xe000114a, 0x16a3d: 0xe0001147, 0x16a3e: 0xe0001144, 0x16a3f: 0xe0000f64,
-	// Block 0x5a9, offset 0x16a40
-	0x16a40: 0x40321220, 0x16a41: 0x40321a20, 0x16a42: 0x40322220, 0x16a43: 0x40322a20,
-	0x16a44: 0xe0000ad5, 0x16a45: 0xe0000ad1, 0x16a46: 0xe0000acd, 0x16a47: 0xf0000a0a,
-	0x16a48: 0xf000040a, 0x16a49: 0xf0000404, 0x16a4a: 0xf0000a0a, 0x16a4b: 0xf000040a,
-	0x16a4c: 0xf0000404, 0x16a4d: 0xe0000947, 0x16a4e: 0xe0000944, 0x16a4f: 0xe0000c3d,
-	0x16a50: 0xe0000c3a, 0x16a51: 0xe0000dcc, 0x16a52: 0xe0000dc9, 0x16a53: 0xe0000ff3,
-	0x16a54: 0xe0000ff0, 0x16a55: 0xe00025e4, 0x16a56: 0xe00025e1, 0x16a57: 0xe00025d2,
-	0x16a58: 0xe00025cf, 0x16a59: 0xe00025de, 0x16a5a: 0xe00025db, 0x16a5b: 0xe00025d8,
-	0x16a5c: 0xe00025d5, 0x16a5d: 0x402cae20, 0x16a5e: 0xe00032dd, 0x16a5f: 0xe00032da,
-	0x16a60: 0xe0000976, 0x16a61: 0xe0000972, 0x16a62: 0xe0002608, 0x16a63: 0xe0002605,
-	0x16a64: 0x002d3a88, 0x16a65: 0x402d3a20, 0x16a66: 0xe0000bbe, 0x16a67: 0xe0000bbb,
-	0x16a68: 0xe0000c99, 0x16a69: 0xe0000c96, 0x16a6a: 0xe0000e20, 0x16a6b: 0xe0000e1d,
-	0x16a6c: 0xe0000e27, 0x16a6d: 0xe0000e23, 0x16a6e: 0xe0001162, 0x16a6f: 0xe000115f,
-	0x16a70: 0xe0000c8d, 0x16a71: 0xf0000a0a, 0x16a72: 0xf000040a, 0x16a73: 0xf0000404,
-	0x16a74: 0xe0000bac, 0x16a75: 0xe0000ba9, 0x16a76: 0x002d7888, 0x16a77: 0x00319488,
-	0x16a78: 0xe0000d57, 0x16a79: 0xe0000d54, 0x16a7a: 0xe00025ea, 0x16a7b: 0xe00025e7,
-	0x16a7c: 0xe00032e3, 0x16a7d: 0xe00032e0, 0x16a7e: 0xe00032f5, 0x16a7f: 0xe00032f2,
-	// Block 0x5aa, offset 0x16a80
-	0x16a80: 0xe0000b03, 0x16a81: 0xe0000aff, 0x16a82: 0xe0000b13, 0x16a83: 0xe0000b0f,
-	0x16a84: 0xe0000b0b, 0x16a85: 0xe0000b07, 0x16a86: 0xe0000b75, 0x16a87: 0xe0000b71,
-	0x16a88: 0xe0000c66, 0x16a89: 0xe0000c63, 0x16a8a: 0xe0000c78, 0x16a8b: 0xe0000c75,
-	0x16a8c: 0xe0000e84, 0x16a8d: 0xe0000e81, 0x16a8e: 0xe0000e44, 0x16a8f: 0xe0000e41,
-	0x16a90: 0xe000a9b3, 0x16a91: 0xe000a9b0, 0x16a92: 0xe000a9b9, 0x16a93: 0xe000a9b6,
-	0x16a94: 0xe000a9c5, 0x16a95: 0xe000a9c2, 0x16a96: 0xe000a9bf, 0x16a97: 0xe000a9bc,
-	0x16a98: 0xe000a9cb, 0x16a99: 0xe000a9c8, 0x16a9a: 0xe0000e5d, 0x16a9b: 0xe0000e59,
-	0x16a9c: 0xe0000e65, 0x16a9d: 0xe0000e61, 0x16a9e: 0xe0000e75, 0x16a9f: 0xe0000e71,
-	0x16aa0: 0xe0000e6d, 0x16aa1: 0xe0000e69, 0x16aa2: 0xe0000e7d, 0x16aa3: 0xe0000e79,
-	0x16aa4: 0xe000108d, 0x16aa5: 0xe000108a, 0x16aa6: 0xe000104d, 0x16aa7: 0xe000104a,
-	0x16aa8: 0xe0001066, 0x16aa9: 0xe0001062, 0x16aaa: 0xe000106e, 0x16aab: 0xe000106a,
-	0x16aac: 0xe000107e, 0x16aad: 0xe000107a, 0x16aae: 0xe0001076, 0x16aaf: 0xe0001072,
-	0x16ab0: 0xe0001086, 0x16ab1: 0xe0001082, 0x16ab2: 0xe0001108, 0x16ab3: 0xe0001105,
-	0x16ab4: 0xe0001135, 0x16ab5: 0xe0001132, 0x16ab6: 0xe000112f, 0x16ab7: 0xe000112c,
-	0x16ab8: 0xe000111d, 0x16ab9: 0xe000111a, 0x16aba: 0xe0000d0a, 0x16abb: 0xe0000d07,
-	0x16abc: 0x0030d888, 0x16abd: 0x4030d820, 0x16abe: 0x00312088, 0x16abf: 0x40312020,
-	// Block 0x5ab, offset 0x16ac0
-	0x16ac2: 0x40429620, 0x16ac3: 0x40429820,
-	0x16ac5: 0x40427e20, 0x16ac6: 0x40428020, 0x16ac7: 0x40428220,
-	0x16ac8: 0x40428420, 0x16ac9: 0x40428620, 0x16aca: 0x40428820,
-	0x16ace: 0x40428a20, 0x16acf: 0x40428c20,
-	0x16ad0: 0x40428e20, 0x16ad2: 0xc0610231, 0x16ad3: 0x40429220,
-	0x16ad4: 0x40429420, 0x16ad5: 0xceba9661,
-	0x16ad9: 0xcebe96f1, 0x16ada: 0xcec096f1,
-	0x16adc: 0xcee096f1, 0x16ade: 0xcec296f1, 0x16adf: 0xcec496f1,
-	0x16ae3: 0xcec696f1,
-	0x16ae4: 0xcec896f1,
-	0x16ae8: 0xceca96f1, 0x16ae9: 0xcede96f1, 0x16aea: 0xcecc96f1,
-	0x16aee: 0xcece96f1, 0x16aef: 0xced096f1,
-	0x16af0: 0xced296f1, 0x16af1: 0xcedc96f1, 0x16af2: 0xced496f1, 0x16af3: 0xceda96f1,
-	0x16af4: 0xced896f1, 0x16af5: 0xced696f1, 0x16af6: 0xcee296f1, 0x16af7: 0xcee496f1,
-	0x16af8: 0xcee696f1, 0x16af9: 0xcee896f1,
-	0x16afe: 0x4042c620, 0x16aff: 0x4042c820,
-	// Block 0x5ac, offset 0x16b00
-	0x16b01: 0x40430020, 0x16b02: 0x40430220, 0x16b03: 0x40430420,
-	0x16b05: 0x4042e020, 0x16b06: 0x4042e220, 0x16b07: 0x4042e420,
-	0x16b08: 0x4042e620, 0x16b09: 0x4042e820, 0x16b0a: 0x4042ea20, 0x16b0b: 0x4042ec20,
-	0x16b0c: 0x4042f020, 0x16b0e: 0x4042f420, 0x16b0f: 0x4042f620,
-	0x16b10: 0x4042f820, 0x16b12: 0x4042fa20, 0x16b13: 0x4042fc20,
-	0x16b14: 0x4042fe20, 0x16b15: 0x40430020, 0x16b16: 0x40430220, 0x16b17: 0x40430420,
-	0x16b18: 0x40430620, 0x16b19: 0x40430820, 0x16b1a: 0x40430a20, 0x16b1b: 0x40430e20,
-	0x16b1c: 0x40431020, 0x16b1d: 0x40431420, 0x16b1e: 0x40431620, 0x16b1f: 0x40431820,
-	0x16b20: 0x40431a20, 0x16b21: 0x40431c20, 0x16b22: 0x40431e20, 0x16b23: 0x40432020,
-	0x16b24: 0x40432220, 0x16b25: 0x40432420, 0x16b26: 0x40432620, 0x16b27: 0x40432820,
-	0x16b28: 0x40432a20, 0x16b2a: 0x40432c20, 0x16b2b: 0x40432e20,
-	0x16b2c: 0x40433020, 0x16b2d: 0x40433220, 0x16b2e: 0x40433420, 0x16b2f: 0x40433620,
-	0x16b30: 0x40433820, 0x16b31: 0x40433a20, 0x16b32: 0x40433c20, 0x16b33: 0x40434820,
-	0x16b35: 0x40433e20, 0x16b36: 0x40434020, 0x16b37: 0x40434220,
-	0x16b38: 0x40434420, 0x16b39: 0x40434620,
-	0x16b3d: 0x40434a20, 0x16b3e: 0x40434c20, 0x16b3f: 0x40434e20,
-	// Block 0x5ad, offset 0x16b40
-	0x16b41: 0x40491020, 0x16b42: 0x40491220, 0x16b43: 0x40491420,
-	0x16b44: 0x40491620, 0x16b45: 0x40491820, 0x16b46: 0x40491a20, 0x16b47: 0x40491c20,
-	0x16b48: 0x40491e20, 0x16b49: 0x40492020, 0x16b4a: 0x40492220, 0x16b4b: 0x40492420,
-	0x16b4c: 0x40492620, 0x16b4d: 0x40492820, 0x16b4e: 0x40492a20, 0x16b4f: 0x40492c20,
-	0x16b50: 0x40492e20, 0x16b51: 0x40493020, 0x16b52: 0x40493220, 0x16b53: 0x40493420,
-	0x16b54: 0x40493620, 0x16b55: 0x40493820, 0x16b56: 0x40493a20, 0x16b57: 0x40493c20,
-	0x16b58: 0x40493e20, 0x16b59: 0x40494020, 0x16b5a: 0x40494220, 0x16b5b: 0x40494420,
-	0x16b5c: 0x40494620, 0x16b5d: 0x40494820, 0x16b5e: 0x40494a20, 0x16b5f: 0x40494c20,
-	0x16b60: 0x40494e20, 0x16b61: 0x40495020, 0x16b62: 0x40495220, 0x16b63: 0x40495420,
-	0x16b64: 0x40495620, 0x16b65: 0x40495820, 0x16b66: 0x40495a20, 0x16b67: 0x40495c20,
-	0x16b68: 0x40495e20, 0x16b69: 0x40496020, 0x16b6a: 0x40496220, 0x16b6b: 0x40496420,
-	0x16b6c: 0x40496620, 0x16b6d: 0x40496820, 0x16b6e: 0x40496a20, 0x16b6f: 0x40057820,
-	0x16b70: 0x40496e20, 0x16b71: 0x40497020, 0x16b72: 0x40497220, 0x16b73: 0xe000a9d1,
-	0x16b74: 0x40497620, 0x16b75: 0x40497820, 0x16b76: 0x40497a20, 0x16b77: 0x40497c20,
-	0x16b78: 0x826724bf, 0x16b79: 0x826724c0, 0x16b7a: 0x40498e20,
-	0x16b7f: 0x4027f420,
-	// Block 0x5ae, offset 0x16b80
-	0x16b80: 0xc07f04e1, 0x16b81: 0xc0ae04e1, 0x16b82: 0xc0dd04e1, 0x16b83: 0xc10c04e1,
-	0x16b84: 0xc13b04e1, 0x16b85: 0x00497283, 0x16b86: 0x40057e20, 0x16b87: 0xa000ff02,
-	0x16b88: 0xa6b10002, 0x16b89: 0xa6b10102, 0x16b8a: 0xa6b10202, 0x16b8b: 0xa6b10302,
-	0x16b8c: 0xa000ff02, 0x16b8d: 0xceea9721, 0x16b8e: 0xa000fe02, 0x16b8f: 0x40057820,
-	0x16b90: 0xe000019a, 0x16b91: 0xe000022e, 0x16b92: 0xe0000346, 0x16b93: 0xe0000420,
-	0x16b94: 0xe00004f5, 0x16b95: 0xe00005bf, 0x16b96: 0xe000068a, 0x16b97: 0xe0000732,
-	0x16b98: 0xe00007de, 0x16b99: 0xe0000883, 0x16b9a: 0x40057a20, 0x16b9b: 0x40057c20,
-	// Block 0x5af, offset 0x16bc0
-	0x16bc0: 0xa0000000, 0x16bc1: 0xa0000000, 0x16bc2: 0xa0000000, 0x16bc3: 0xa0000000,
-	0x16bc4: 0xa0000000, 0x16bc5: 0xa0000000, 0x16bc6: 0xa0000000, 0x16bc7: 0xa0000000,
-	0x16bc8: 0xa0000000, 0x16bc9: 0x40020020, 0x16bca: 0x40020220, 0x16bcb: 0x40020420,
-	0x16bcc: 0x40020620, 0x16bcd: 0x40020820, 0x16bce: 0xa0000000, 0x16bcf: 0xa0000000,
-	0x16bd0: 0xa0000000, 0x16bd1: 0xa0000000, 0x16bd2: 0xa0000000, 0x16bd3: 0xa0000000,
-	0x16bd4: 0xa0000000, 0x16bd5: 0xa0000000, 0x16bd6: 0xa0000000, 0x16bd7: 0xa0000000,
-	0x16bd8: 0xa0000000, 0x16bd9: 0xa0000000, 0x16bda: 0xa0000000, 0x16bdb: 0xa0000000,
-	0x16bdc: 0xa0000000, 0x16bdd: 0xa0000000, 0x16bde: 0xa0000000, 0x16bdf: 0xa0000000,
-	0x16be0: 0x40021220, 0x16be1: 0x4002ba20, 0x16be2: 0x4003e020, 0x16be3: 0x4004ea20,
-	0x16be4: 0x4027de20, 0x16be5: 0x4004ec20, 0x16be6: 0x4004e620, 0x16be7: 0x4003d220,
-	0x16be8: 0x4003f420, 0x16be9: 0x4003f620, 0x16bea: 0x4004d820, 0x16beb: 0x40093820,
-	0x16bec: 0x40024020, 0x16bed: 0x40021a20, 0x16bee: 0x4002e420, 0x16bef: 0x4004e220,
-	0x16bf0: 0x4029cc20, 0x16bf1: 0x4029ce20, 0x16bf2: 0x4029d020, 0x16bf3: 0x4029d220,
-	0x16bf4: 0x4029d420, 0x16bf5: 0x4029d620, 0x16bf6: 0x4029d820, 0x16bf7: 0x4029da20,
-	0x16bf8: 0x4029dc20, 0x16bf9: 0x4029de20, 0x16bfa: 0x40026c20, 0x16bfb: 0x40026220,
-	0x16bfc: 0x40094020, 0x16bfd: 0x40094220, 0x16bfe: 0x40094420, 0x16bff: 0x4002c420,
-	// Block 0x5b0, offset 0x16c00
-	0x16c00: 0x4004d620, 0x16c01: 0xcef09771, 0x16c02: 0x002c0a88, 0x16c03: 0x002c3a88,
-	0x16c04: 0x002c6288, 0x16c05: 0xcef69771, 0x16c06: 0x002d0888, 0x16c07: 0x002d2288,
-	0x16c08: 0x002d6888, 0x16c09: 0xcefc9771, 0x16c0a: 0x002dcc88, 0x16c0b: 0x002dfe88,
-	0x16c0c: 0xc0030002, 0x16c0d: 0x002e8288, 0x16c0e: 0xc5290a52, 0x16c0f: 0xcf029771,
-	0x16c10: 0x002f2c88, 0x16c11: 0x002f5688, 0x16c12: 0x002f7a88, 0x16c13: 0x002fe688,
-	0x16c14: 0x00302c88, 0x16c15: 0xcf089771, 0x16c16: 0x0030be88, 0x16c17: 0x0030e288,
-	0x16c18: 0x0030f688, 0x16c19: 0x00310088, 0x16c1a: 0x00312a88, 0x16c1b: 0x4003f820,
-	0x16c1c: 0x4004e420, 0x16c1d: 0x4003fa20, 0x16c1e: 0x40062420, 0x16c1f: 0x40021620,
-	0x16c20: 0x40061e20, 0x16c21: 0xceed9771, 0x16c22: 0x402c0a20, 0x16c23: 0x402c3a20,
-	0x16c24: 0x402c6220, 0x16c25: 0xcef39771, 0x16c26: 0x402d0820, 0x16c27: 0x402d2220,
-	0x16c28: 0x402d6820, 0x16c29: 0xcef99771, 0x16c2a: 0x402dcc20, 0x16c2b: 0x402dfe20,
-	0x16c2c: 0xc0000002, 0x16c2d: 0x402e8220, 0x16c2e: 0xc5270a41, 0x16c2f: 0xceff9771,
-	0x16c30: 0x402f2c20, 0x16c31: 0x402f5620, 0x16c32: 0x402f7a20, 0x16c33: 0x402fe620,
-	0x16c34: 0x40302c20, 0x16c35: 0xcf059771, 0x16c36: 0x4030be20, 0x16c37: 0x4030e220,
-	0x16c38: 0x4030f620, 0x16c39: 0x40310020, 0x16c3a: 0x40312a20, 0x16c3b: 0x4003fc20,
-	0x16c3c: 0x40094820, 0x16c3d: 0x4003fe20, 0x16c3e: 0x40094c20, 0x16c3f: 0xa0000000,
-	// Block 0x5b1, offset 0x16c40
-	0x16c40: 0xe00008f5, 0x16c41: 0x002bdea3, 0x16c42: 0xe0000921, 0x16c43: 0xe0000969,
-	0x16c44: 0xe000095b, 0x16c45: 0xe000094d, 0x16c46: 0xe00009dd, 0x16c47: 0xe0000a53,
-	0x16c48: 0xe0000ae8, 0x16c49: 0x002c98a3, 0x16c4a: 0xe0000af4, 0x16c4b: 0xe0000b20,
-	0x16c4c: 0xe0000c2b, 0x16c4d: 0x002d9aa3, 0x16c4e: 0xe0000c37, 0x16c4f: 0xe0000c43,
-	0x16c50: 0xe0000ab3, 0x16c51: 0xe0000d63, 0x16c52: 0xe0000d9a, 0x16c53: 0x002ee2a3,
-	0x16c54: 0xe0000da6, 0x16c55: 0xe0000de6, 0x16c56: 0xe0000dd2, 0x16c57: 0x40093e20,
-	0x16c58: 0xe0000e12, 0x16c59: 0xe0000fe1, 0x16c5a: 0x00306ca3, 0x16c5b: 0xe0000fed,
-	0x16c5c: 0xe0000fff, 0x16c5d: 0xe0001102, 0x16c5e: 0x00318888, 0x16c5f: 0xe0000f7b,
-	0x16c60: 0xe00008f2, 0x16c61: 0x402bde21, 0x16c62: 0xe000091e, 0x16c63: 0xe0000966,
-	0x16c64: 0xe0000958, 0x16c65: 0xe000094a, 0x16c66: 0xe00009d5, 0x16c67: 0xe0000a4d,
-	0x16c68: 0xe0000ae5, 0x16c69: 0x402c9821, 0x16c6a: 0xe0000af1, 0x16c6b: 0xe0000b1d,
-	0x16c6c: 0xe0000c28, 0x16c6d: 0x402d9a21, 0x16c6e: 0xe0000c34, 0x16c6f: 0xe0000c40,
-	0x16c70: 0xe0000aad, 0x16c71: 0xe0000d60, 0x16c72: 0xe0000d97, 0x16c73: 0x402ee221,
-	0x16c74: 0xe0000da3, 0x16c75: 0xe0000de3, 0x16c76: 0xe0000dcf, 0x16c77: 0x40093c20,
-	0x16c78: 0xe0000e0f, 0x16c79: 0xe0000fde, 0x16c7a: 0x40306c21, 0x16c7b: 0xe0000fea,
-	0x16c7c: 0xe0000ffc, 0x16c7d: 0xe00010ff, 0x16c7e: 0x40318820, 0x16c7f: 0xe0001114,
-	// Block 0x5b2, offset 0x16c80
-	0x16c80: 0x002bdec3, 0x16c81: 0x402bde22, 0x16c82: 0xe00008fb, 0x16c83: 0xe00008f8,
-	0x16c84: 0xe000097d, 0x16c85: 0xe000097a, 0x16c86: 0xe0000a38, 0x16c87: 0xe0000a35,
-	0x16c88: 0xe0000a3e, 0x16c89: 0xe0000a3b, 0x16c8a: 0xe0000a4a, 0x16c8b: 0xe0000a47,
-	0x16c8c: 0xe0000a44, 0x16c8d: 0xe0000a41, 0x16c8e: 0xe0000a86, 0x16c8f: 0xe0000a83,
-	0x16c90: 0xe0000aaa, 0x16c91: 0xe0000aa7, 0x16c92: 0x002c98c3, 0x16c93: 0x402c9822,
-	0x16c94: 0xe0000aee, 0x16c95: 0xe0000aeb, 0x16c96: 0xe0000b2c, 0x16c97: 0xe0000b29,
-	0x16c98: 0xe0000b40, 0x16c99: 0xe0000b3d, 0x16c9a: 0xe0000b1a, 0x16c9b: 0xe0000b17,
-	0x16c9c: 0xe0000bb8, 0x16c9d: 0xe0000bb5, 0x16c9e: 0xe0000bb2, 0x16c9f: 0xe0000baf,
-	0x16ca0: 0xe0000bc4, 0x16ca1: 0xe0000bc1, 0x16ca2: 0xe0000bca, 0x16ca3: 0xe0000bc7,
-	0x16ca4: 0xe0000bee, 0x16ca5: 0xe0000beb, 0x16ca6: 0xe0000c1b, 0x16ca7: 0xe0000c18,
-	0x16ca8: 0xe0000c51, 0x16ca9: 0xe0000c4e, 0x16caa: 0x002d9ac3, 0x16cab: 0x402d9a22,
-	0x16cac: 0xe0000c31, 0x16cad: 0xe0000c2e, 0x16cae: 0xe0000c5a, 0x16caf: 0xe0000c57,
-	0x16cb0: 0xe0000c54, 0x16cb1: 0x402da220, 0x16cb2: 0xf0000a0a, 0x16cb3: 0xf0000404,
-	0x16cb4: 0xe0000c8a, 0x16cb5: 0xe0000c87, 0x16cb6: 0xe0000c9f, 0x16cb7: 0xe0000c9c,
-	0x16cb8: 0x402f7220, 0x16cb9: 0xe0000ccc, 0x16cba: 0xe0000cc9, 0x16cbb: 0xe0000cd8,
-	0x16cbc: 0xe0000cd5, 0x16cbd: 0xe0000cd2, 0x16cbe: 0xe0000ccf, 0x16cbf: 0xe0000d04,
-	// Block 0x5b3, offset 0x16cc0
-	0x16cc0: 0xe0000cfe, 0x16cc1: 0xe0000cf8, 0x16cc2: 0xe0000cf5, 0x16cc3: 0xe0000d51,
-	0x16cc4: 0xe0000d4e, 0x16cc5: 0xe0000d6f, 0x16cc6: 0xe0000d6c, 0x16cc7: 0xe0000d5d,
-	0x16cc8: 0xe0000d5a, 0x16cc9: 0xf0000404, 0x16cca: 0x002ea086, 0x16ccb: 0x002ea085,
-	0x16ccc: 0x002ee2c3, 0x16ccd: 0x402ee222, 0x16cce: 0xe0000da0, 0x16ccf: 0xe0000d9d,
-	0x16cd0: 0xe0000de0, 0x16cd1: 0xe0000ddd, 0x16cd2: 0xe0000e93, 0x16cd3: 0xe0000e8f,
-	0x16cd4: 0xe0000eca, 0x16cd5: 0xe0000ec7, 0x16cd6: 0xe0000edc, 0x16cd7: 0xe0000ed9,
-	0x16cd8: 0xe0000ed0, 0x16cd9: 0xe0000ecd, 0x16cda: 0xe0000f1f, 0x16cdb: 0xe0000f1c,
-	0x16cdc: 0xe0000f2d, 0x16cdd: 0xe0000f2a, 0x16cde: 0xe0000f47, 0x16cdf: 0xe0000f44,
-	0x16ce0: 0xe0000f33, 0x16ce1: 0xe0000f30, 0x16ce2: 0xe0000f99, 0x16ce3: 0xe0000f96,
-	0x16ce4: 0xe0000f8a, 0x16ce5: 0xe0000f87, 0x16ce6: 0x00303688, 0x16ce7: 0x40303620,
-	0x16ce8: 0xe000102b, 0x16ce9: 0xe0001028, 0x16cea: 0x00306cc3, 0x16ceb: 0x40306c22,
-	0x16cec: 0xe0000fe7, 0x16ced: 0xe0000fe4, 0x16cee: 0xe0000ff9, 0x16cef: 0xe0000ff6,
-	0x16cf0: 0xe0001025, 0x16cf1: 0xe0001022, 0x16cf2: 0xe0001039, 0x16cf3: 0xe0001036,
-	0x16cf4: 0xe00010d8, 0x16cf5: 0xe00010d5, 0x16cf6: 0xe000110e, 0x16cf7: 0xe000110b,
-	0x16cf8: 0xe0001117, 0x16cf9: 0xe000113b, 0x16cfa: 0xe0001138, 0x16cfb: 0xe000114d,
-	0x16cfc: 0xe000114a, 0x16cfd: 0xe0001147, 0x16cfe: 0xe0001144, 0x16cff: 0xe0000f64,
-	// Block 0x5b4, offset 0x16d00
-	0x16d00: 0x40321220, 0x16d01: 0x40321a20, 0x16d02: 0x40322220, 0x16d03: 0x40322a20,
-	0x16d04: 0xe0000ad5, 0x16d05: 0xe0000ad1, 0x16d06: 0xe0000acd, 0x16d07: 0xf0000a0a,
-	0x16d08: 0xf000040a, 0x16d09: 0xf0000404, 0x16d0a: 0xf0000a0a, 0x16d0b: 0xf000040a,
-	0x16d0c: 0xf0000404, 0x16d0d: 0xe0000947, 0x16d0e: 0xe0000944, 0x16d0f: 0xe0000c3d,
-	0x16d10: 0xe0000c3a, 0x16d11: 0xe0000dcc, 0x16d12: 0xe0000dc9, 0x16d13: 0xe0000ff3,
-	0x16d14: 0xe0000ff0, 0x16d15: 0xe000a58e, 0x16d16: 0xe000a58b, 0x16d17: 0xe000aa43,
-	0x16d18: 0xe000aa40, 0x16d19: 0xe0001016, 0x16d1a: 0xe0001012, 0x16d1b: 0xe000100e,
-	0x16d1c: 0xe000100a, 0x16d1d: 0x402cae20, 0x16d1e: 0xe000a9e9, 0x16d1f: 0xe000a9e6,
-	0x16d20: 0xe000a9ef, 0x16d21: 0xe000a9ec, 0x16d22: 0xe00009f4, 0x16d23: 0xe00009ef,
-	0x16d24: 0x002d3a88, 0x16d25: 0x402d3a20, 0x16d26: 0xe0000bbe, 0x16d27: 0xe0000bbb,
-	0x16d28: 0xe0000c99, 0x16d29: 0xe0000c96, 0x16d2a: 0xe0000e20, 0x16d2b: 0xe0000e1d,
-	0x16d2c: 0xe000aa3d, 0x16d2d: 0xe000aa3a, 0x16d2e: 0xe0001162, 0x16d2f: 0xe000115f,
-	0x16d30: 0xe0000c8d, 0x16d31: 0xf0000a0a, 0x16d32: 0xf000040a, 0x16d33: 0xf0000404,
-	0x16d34: 0xe0000bac, 0x16d35: 0xe0000ba9, 0x16d36: 0x002d7888, 0x16d37: 0x00319488,
-	0x16d38: 0xe0000d57, 0x16d39: 0xe0000d54, 0x16d3a: 0xe000a9e3, 0x16d3b: 0xe000a9e0,
-	0x16d3c: 0xe00009ea, 0x16d3d: 0xe00009e5, 0x16d3e: 0xe0000e19, 0x16d3f: 0xe0000e15,
-	// Block 0x5b5, offset 0x16d40
-	0x16d40: 0xe000098f, 0x16d41: 0xe000098c, 0x16d42: 0xe0000995, 0x16d43: 0xe0000992,
-	0x16d44: 0xe0000b62, 0x16d45: 0xe0000b5f, 0x16d46: 0xe0000b68, 0x16d47: 0xe0000b65,
-	0x16d48: 0xe0000c6c, 0x16d49: 0xe0000c69, 0x16d4a: 0xe0000c72, 0x16d4b: 0xe0000c6f,
-	0x16d4c: 0xe0000e4a, 0x16d4d: 0xe0000e47, 0x16d4e: 0xe0000e50, 0x16d4f: 0xe0000e4d,
-	0x16d50: 0xe0000ee8, 0x16d51: 0xe0000ee5, 0x16d52: 0xe0000eee, 0x16d53: 0xe0000eeb,
-	0x16d54: 0xe0001053, 0x16d55: 0xe0001050, 0x16d56: 0xe0001059, 0x16d57: 0xe0001056,
-	0x16d58: 0xe0000f61, 0x16d59: 0xe0000f5e, 0x16d5a: 0xe0000fa5, 0x16d5b: 0xe0000fa2,
-	0x16d5c: 0x00312288, 0x16d5d: 0x40312220, 0x16d5e: 0xe0000bf4, 0x16d5f: 0xe0000bf1,
-	0x16d60: 0x002ebc88, 0x16d61: 0x402c8c20, 0x16d62: 0x002f2288, 0x16d63: 0x402f2220,
-	0x16d64: 0x00314088, 0x16d65: 0x40314020, 0x16d66: 0xe000096f, 0x16d67: 0xe000096c,
-	0x16d68: 0xe0000b32, 0x16d69: 0xe0000b2f, 0x16d6a: 0xe000aa2b, 0x16d6b: 0xe000aa28,
-	0x16d6c: 0xe000aa31, 0x16d6d: 0xe000aa2e, 0x16d6e: 0xe0000e04, 0x16d6f: 0xe0000e01,
-	0x16d70: 0xe000aa37, 0x16d71: 0xe000aa34, 0x16d72: 0xe0001129, 0x16d73: 0xe0001126,
-	0x16d74: 0x402e5e20, 0x16d75: 0x402ed020, 0x16d76: 0x40305a20, 0x16d77: 0x402dd420,
-	0x16d78: 0xe0000abf, 0x16d79: 0xe0000ec4, 0x16d7a: 0x002be888, 0x16d7b: 0x002c4488,
-	0x16d7c: 0x402c4420, 0x16d7d: 0x002e3888, 0x16d7e: 0x00303e88, 0x16d7f: 0x402ffc20,
-	// Block 0x5b6, offset 0x16d80
-	0x16d80: 0x402f8220, 0x16d81: 0x402fd820, 0x16d82: 0x402ff420, 0x16d83: 0x40300820,
-	0x16d84: 0x402df620, 0x16d85: 0x40301a20, 0x16d86: 0x40302420, 0x16d87: 0x40306420,
-	0x16d88: 0x40305220, 0x16d89: 0x40307c20, 0x16d8a: 0x4030b420, 0x16d8b: 0x4030cc20,
-	0x16d8c: 0x4030da20, 0x16d8d: 0x4030ee20, 0x16d8e: 0x402e7a20, 0x16d8f: 0x40310820,
-	0x16d90: 0x40314820, 0x16d91: 0x40315020, 0x16d92: 0x40316420, 0x16d93: 0x40318020,
-	0x16d94: 0x4031cc20, 0x16d95: 0x4031e820, 0x16d96: 0x40320a20, 0x16d97: 0x40323220,
-	0x16d98: 0x40323a20, 0x16d99: 0x402c1220, 0x16d9a: 0x402cf820, 0x16d9b: 0x402d4c20,
-	0x16d9c: 0x402d7020, 0x16d9d: 0x402de620, 0x16d9e: 0x402e1a20, 0x16d9f: 0x402e2a20,
-	0x16da0: 0x402f6220, 0x16da1: 0x4031fa20, 0x16da2: 0x40320220, 0x16da3: 0xe0000aca,
-	0x16da4: 0xe0000adc, 0x16da5: 0xe0000ad9, 0x16da6: 0xe0000fcc, 0x16da7: 0xe0000fcf,
-	0x16da8: 0xe0000fba, 0x16da9: 0xe0000ba1, 0x16daa: 0xe0000d11, 0x16dab: 0xe0000d18,
-	0x16dac: 0x40324220, 0x16dad: 0x40324a20, 0x16dae: 0x40309020, 0x16daf: 0x40309820,
-	0x16db0: 0x002d6894, 0x16db1: 0x002d8094, 0x16db2: 0x002dcc94, 0x16db3: 0x002f7a94,
-	0x16db4: 0x002f9894, 0x16db5: 0x002fac94, 0x16db6: 0x002fd894, 0x16db7: 0x0030e294,
-	0x16db8: 0x00310094, 0x16db9: 0x40064020, 0x16dba: 0x40064420, 0x16dbb: 0x40312c20,
-	0x16dbc: 0x4031de20, 0x16dbd: 0x00312c83, 0x16dbe: 0x4031e220, 0x16dbf: 0x4031f020,
-	// Block 0x5b7, offset 0x16dc0
-	0x16dc0: 0xe00009b1, 0x16dc1: 0xe00009ae, 0x16dc2: 0xe0000a22, 0x16dc3: 0xe0000a1f,
-	0x16dc4: 0xe0000a28, 0x16dc5: 0xe0000a25, 0x16dc6: 0xe0000a2e, 0x16dc7: 0xe0000a2b,
-	0x16dc8: 0xe0000a5a, 0x16dc9: 0xe0000a56, 0x16dca: 0xe0000a8c, 0x16dcb: 0xe0000a89,
-	0x16dcc: 0xe0000a98, 0x16dcd: 0xe0000a95, 0x16dce: 0xe0000aa4, 0x16dcf: 0xe0000aa1,
-	0x16dd0: 0xe0000a92, 0x16dd1: 0xe0000a8f, 0x16dd2: 0xe0000a9e, 0x16dd3: 0xe0000a9b,
-	0x16dd4: 0xe000aa01, 0x16dd5: 0xe000a9fe, 0x16dd6: 0xe000a9fb, 0x16dd7: 0xe000a9f8,
-	0x16dd8: 0xe0000b7c, 0x16dd9: 0xe0000b79, 0x16dda: 0xe0000b82, 0x16ddb: 0xe0000b7f,
-	0x16ddc: 0xe0000b39, 0x16ddd: 0xe0000b35, 0x16dde: 0xe0000b8c, 0x16ddf: 0xe0000b89,
-	0x16de0: 0xe0000bd0, 0x16de1: 0xe0000bcd, 0x16de2: 0xe0000c00, 0x16de3: 0xe0000bfd,
-	0x16de4: 0xe0000c0c, 0x16de5: 0xe0000c09, 0x16de6: 0xe0000bfa, 0x16de7: 0xe0000bf7,
-	0x16de8: 0xe0000c06, 0x16de9: 0xe0000c03, 0x16dea: 0xe0000c12, 0x16deb: 0xe0000c0f,
-	0x16dec: 0xe0000c7e, 0x16ded: 0xe0000c7b, 0x16dee: 0xe000aa07, 0x16def: 0xe000aa04,
-	0x16df0: 0xe0000c93, 0x16df1: 0xe0000c90, 0x16df2: 0xe0000cab, 0x16df3: 0xe0000ca8,
-	0x16df4: 0xe0000cb1, 0x16df5: 0xe0000cae, 0x16df6: 0xe0000cde, 0x16df7: 0xe0000cdb,
-	0x16df8: 0xe0000ce5, 0x16df9: 0xe0000ce1, 0x16dfa: 0xe0000cf2, 0x16dfb: 0xe0000cef,
-	0x16dfc: 0xe0000cec, 0x16dfd: 0xe0000ce9, 0x16dfe: 0xe0000d1e, 0x16dff: 0xe0000d1b,
-	// Block 0x5b8, offset 0x16e00
-	0x16e00: 0xe0000d24, 0x16e01: 0xe0000d21, 0x16e02: 0xe0000d2a, 0x16e03: 0xe0000d27,
-	0x16e04: 0xe0000d69, 0x16e05: 0xe0000d66, 0x16e06: 0xe0000d7b, 0x16e07: 0xe0000d78,
-	0x16e08: 0xe0000d87, 0x16e09: 0xe0000d84, 0x16e0a: 0xe0000d81, 0x16e0b: 0xe0000d7e,
-	0x16e0c: 0xe000aa13, 0x16e0d: 0xe000aa10, 0x16e0e: 0xe0000df5, 0x16e0f: 0xe0000df1,
-	0x16e10: 0xe000aa25, 0x16e11: 0xe000aa22, 0x16e12: 0xe000aa1f, 0x16e13: 0xe000aa1c,
-	0x16e14: 0xe0000ea7, 0x16e15: 0xe0000ea4, 0x16e16: 0xe0000ead, 0x16e17: 0xe0000eaa,
-	0x16e18: 0xe0000ed6, 0x16e19: 0xe0000ed3, 0x16e1a: 0xe0000ef4, 0x16e1b: 0xe0000ef1,
-	0x16e1c: 0xe0000efb, 0x16e1d: 0xe0000ef7, 0x16e1e: 0xe0000f02, 0x16e1f: 0xe0000eff,
-	0x16e20: 0xe0000f41, 0x16e21: 0xe0000f3e, 0x16e22: 0xe0000f53, 0x16e23: 0xe0000f50,
-	0x16e24: 0xe0000f26, 0x16e25: 0xe0000f22, 0x16e26: 0xe0000f3a, 0x16e27: 0xe0000f36,
-	0x16e28: 0xe0000f5a, 0x16e29: 0xe0000f56, 0x16e2a: 0xe0000f93, 0x16e2b: 0xe0000f90,
-	0x16e2c: 0xe0000f9f, 0x16e2d: 0xe0000f9c, 0x16e2e: 0xe0000fb1, 0x16e2f: 0xe0000fae,
-	0x16e30: 0xe0000fab, 0x16e31: 0xe0000fa8, 0x16e32: 0xe0001093, 0x16e33: 0xe0001090,
-	0x16e34: 0xe000109f, 0x16e35: 0xe000109c, 0x16e36: 0xe0001099, 0x16e37: 0xe0001096,
-	0x16e38: 0xe000aa49, 0x16e39: 0xe000aa46, 0x16e3a: 0xe000a58e, 0x16e3b: 0xe000a58b,
-	0x16e3c: 0xe00010a9, 0x16e3d: 0xe00010a6, 0x16e3e: 0xe00010af, 0x16e3f: 0xe00010ac,
-	// Block 0x5b9, offset 0x16e40
-	0x16e40: 0xe00010d2, 0x16e41: 0xe00010cf, 0x16e42: 0xe00010cc, 0x16e43: 0xe00010c9,
-	0x16e44: 0xe00010e1, 0x16e45: 0xe00010de, 0x16e46: 0xe00010e7, 0x16e47: 0xe00010e4,
-	0x16e48: 0xe00010ed, 0x16e49: 0xe00010ea, 0x16e4a: 0xe00010fc, 0x16e4b: 0xe00010f9,
-	0x16e4c: 0xe00010f6, 0x16e4d: 0xe00010f3, 0x16e4e: 0xe0001123, 0x16e4f: 0xe0001120,
-	0x16e50: 0xe0001141, 0x16e51: 0xe000113e, 0x16e52: 0xe0001153, 0x16e53: 0xe0001150,
-	0x16e54: 0xe0001159, 0x16e55: 0xe0001156, 0x16e56: 0xe0000c15, 0x16e57: 0xe0000f8d,
-	0x16e58: 0xe00010db, 0x16e59: 0xe0001111, 0x16e5a: 0xf0000404, 0x16e5b: 0xe0000f70,
-	0x16e5c: 0x40300420, 0x16e5d: 0x40300620, 0x16e5e: 0xe0000f7f, 0x16e5f: 0x402c9620,
-	0x16e60: 0xe000099b, 0x16e61: 0xe0000998, 0x16e62: 0xe0000989, 0x16e63: 0xe0000986,
-	0x16e64: 0xe000a9dd, 0x16e65: 0xe000a9da, 0x16e66: 0xe0000930, 0x16e67: 0xe000092c,
-	0x16e68: 0xe0000940, 0x16e69: 0xe000093c, 0x16e6a: 0xe0000938, 0x16e6b: 0xe0000934,
-	0x16e6c: 0xe00009aa, 0x16e6d: 0xe00009a6, 0x16e6e: 0xe000a9d7, 0x16e6f: 0xe000a9d4,
-	0x16e70: 0xe000090a, 0x16e71: 0xe0000906, 0x16e72: 0xe000091a, 0x16e73: 0xe0000916,
-	0x16e74: 0xe0000912, 0x16e75: 0xe000090e, 0x16e76: 0xe00009a2, 0x16e77: 0xe000099e,
-	0x16e78: 0xe0000b6e, 0x16e79: 0xe0000b6b, 0x16e7a: 0xe0000b5c, 0x16e7b: 0xe0000b59,
-	0x16e7c: 0xe0000b26, 0x16e7d: 0xe0000b23, 0x16e7e: 0xe000a9f5, 0x16e7f: 0xe000a9f2,
-	// Block 0x5ba, offset 0x16e80
-	0x16e80: 0xe0000b03, 0x16e81: 0xe0000aff, 0x16e82: 0xe0000b13, 0x16e83: 0xe0000b0f,
-	0x16e84: 0xe0000b0b, 0x16e85: 0xe0000b07, 0x16e86: 0xe0000b75, 0x16e87: 0xe0000b71,
-	0x16e88: 0xe0000c66, 0x16e89: 0xe0000c63, 0x16e8a: 0xe0000c78, 0x16e8b: 0xe0000c75,
-	0x16e8c: 0xe0000e84, 0x16e8d: 0xe0000e81, 0x16e8e: 0xe0000e44, 0x16e8f: 0xe0000e41,
-	0x16e90: 0xe000aa0d, 0x16e91: 0xe000aa0a, 0x16e92: 0xe0000db5, 0x16e93: 0xe0000db1,
-	0x16e94: 0xe0000dc5, 0x16e95: 0xe0000dc1, 0x16e96: 0xe0000dbd, 0x16e97: 0xe0000db9,
-	0x16e98: 0xe0000e8b, 0x16e99: 0xe0000e87, 0x16e9a: 0xe000aa19, 0x16e9b: 0xe000aa16,
-	0x16e9c: 0xe0000e65, 0x16e9d: 0xe0000e61, 0x16e9e: 0xe0000e75, 0x16e9f: 0xe0000e71,
-	0x16ea0: 0xe0000e6d, 0x16ea1: 0xe0000e69, 0x16ea2: 0xe0000e7d, 0x16ea3: 0xe0000e79,
-	0x16ea4: 0xe000108d, 0x16ea5: 0xe000108a, 0x16ea6: 0xe000104d, 0x16ea7: 0xe000104a,
-	0x16ea8: 0xe000aa4f, 0x16ea9: 0xe000aa4c, 0x16eaa: 0xe000106e, 0x16eab: 0xe000106a,
-	0x16eac: 0xe000107e, 0x16ead: 0xe000107a, 0x16eae: 0xe0001076, 0x16eaf: 0xe0001072,
-	0x16eb0: 0xe0001086, 0x16eb1: 0xe0001082, 0x16eb2: 0xe0001108, 0x16eb3: 0xe0001105,
-	0x16eb4: 0xe0001135, 0x16eb5: 0xe0001132, 0x16eb6: 0xe000112f, 0x16eb7: 0xe000112c,
-	0x16eb8: 0xe000111d, 0x16eb9: 0xe000111a, 0x16eba: 0xe0000d0a, 0x16ebb: 0xe0000d07,
-	0x16ebc: 0x0030d888, 0x16ebd: 0x4030d820, 0x16ebe: 0x00312088, 0x16ebf: 0x40312020,
-	// Block 0x5bb, offset 0x16ec0
-	0x16ec0: 0xa0000000, 0x16ec1: 0xa0000000, 0x16ec2: 0xa0000000, 0x16ec3: 0xa0000000,
-	0x16ec4: 0xa0000000, 0x16ec5: 0xa0000000, 0x16ec6: 0xa0000000, 0x16ec7: 0xa0000000,
-	0x16ec8: 0xa0000000, 0x16ec9: 0x40020020, 0x16eca: 0x40020220, 0x16ecb: 0x40020420,
-	0x16ecc: 0x40020620, 0x16ecd: 0x40020820, 0x16ece: 0xa0000000, 0x16ecf: 0xa0000000,
-	0x16ed0: 0xa0000000, 0x16ed1: 0xa0000000, 0x16ed2: 0xa0000000, 0x16ed3: 0xa0000000,
-	0x16ed4: 0xa0000000, 0x16ed5: 0xa0000000, 0x16ed6: 0xa0000000, 0x16ed7: 0xa0000000,
-	0x16ed8: 0xa0000000, 0x16ed9: 0xa0000000, 0x16eda: 0xa0000000, 0x16edb: 0xa0000000,
-	0x16edc: 0xa0000000, 0x16edd: 0xa0000000, 0x16ede: 0xa0000000, 0x16edf: 0xa0000000,
-	0x16ee0: 0x40021220, 0x16ee1: 0x4002ba20, 0x16ee2: 0x4003e020, 0x16ee3: 0x4004ea20,
-	0x16ee4: 0x4027de20, 0x16ee5: 0x4004ec20, 0x16ee6: 0x4004e620, 0x16ee7: 0x4003d220,
-	0x16ee8: 0x4003f420, 0x16ee9: 0x4003f620, 0x16eea: 0x4004d820, 0x16eeb: 0x40093820,
-	0x16eec: 0x40024020, 0x16eed: 0x40021a20, 0x16eee: 0x4002e420, 0x16eef: 0x4004e220,
-	0x16ef0: 0x4029cc20, 0x16ef1: 0x4029ce20, 0x16ef2: 0x4029d020, 0x16ef3: 0x4029d220,
-	0x16ef4: 0x4029d420, 0x16ef5: 0x4029d620, 0x16ef6: 0x4029d820, 0x16ef7: 0x4029da20,
-	0x16ef8: 0x4029dc20, 0x16ef9: 0x4029de20, 0x16efa: 0x40026c20, 0x16efb: 0x40026220,
-	0x16efc: 0x40094020, 0x16efd: 0x40094220, 0x16efe: 0x40094420, 0x16eff: 0x4002c420,
-	// Block 0x5bc, offset 0x16f00
-	0x16f00: 0x4004d620, 0x16f01: 0x002bde88, 0x16f02: 0x002c0a88, 0x16f03: 0xc3350911,
-	0x16f04: 0x002c6288, 0x16f05: 0x002c9888, 0x16f06: 0x002d0888, 0x16f07: 0xc33900d1,
-	0x16f08: 0x002d6888, 0x16f09: 0xc33b0931, 0x16f0a: 0x002dcc88, 0x16f0b: 0x002dfe88,
-	0x16f0c: 0xc0030002, 0x16f0d: 0x002e8288, 0x16f0e: 0x002e9e88, 0x16f0f: 0xc33f0071,
-	0x16f10: 0x002f2c88, 0x16f11: 0x002f5688, 0x16f12: 0x002f7a88, 0x16f13: 0xc3430911,
-	0x16f14: 0x00302c88, 0x16f15: 0xc3470071, 0x16f16: 0x0030be88, 0x16f17: 0x0030e288,
-	0x16f18: 0x0030f688, 0x16f19: 0x00310088, 0x16f1a: 0x00312a88, 0x16f1b: 0x4003f820,
-	0x16f1c: 0x4004e420, 0x16f1d: 0x4003fa20, 0x16f1e: 0x40062420, 0x16f1f: 0x40021620,
-	0x16f20: 0x40061e20, 0x16f21: 0x402bde20, 0x16f22: 0x402c0a20, 0x16f23: 0xc3330911,
-	0x16f24: 0x402c6220, 0x16f25: 0x402c9820, 0x16f26: 0x402d0820, 0x16f27: 0xc33700d1,
-	0x16f28: 0x402d6820, 0x16f29: 0x402d9a20, 0x16f2a: 0x402dcc20, 0x16f2b: 0x402dfe20,
-	0x16f2c: 0xc0000002, 0x16f2d: 0x402e8220, 0x16f2e: 0x402e9e20, 0x16f2f: 0xc33d0071,
-	0x16f30: 0x402f2c20, 0x16f31: 0x402f5620, 0x16f32: 0x402f7a20, 0x16f33: 0xc3410911,
-	0x16f34: 0x40302c20, 0x16f35: 0xc3450071, 0x16f36: 0x4030be20, 0x16f37: 0x4030e220,
-	0x16f38: 0x4030f620, 0x16f39: 0x40310020, 0x16f3a: 0x40312a20, 0x16f3b: 0x4003fc20,
-	0x16f3c: 0x40094820, 0x16f3d: 0x4003fe20, 0x16f3e: 0x40094c20, 0x16f3f: 0xa0000000,
-	// Block 0x5bd, offset 0x16f40
-	0x16f40: 0x00093685, 0x16f41: 0x40083620, 0x16f42: 0x40083820, 0x16f43: 0x40083a20,
-	0x16f44: 0x40083c20, 0x16f45: 0x002c628b, 0x16f46: 0x002c6285, 0x16f47: 0x002c9885,
-	0x16f48: 0x002d9a85, 0x16f49: 0x002dcc85, 0x16f4a: 0x40083e20, 0x16f4b: 0x400a6e20,
-	0x16f4c: 0x40084020, 0x16f4d: 0xe00009c4, 0x16f4e: 0x402d1e20, 0x16f4f: 0x40084220,
-	0x16f50: 0xe00002cb, 0x16f51: 0xe00002d3, 0x16f52: 0xe00002b2, 0x16f53: 0xe00002bb,
-	0x16f54: 0xe00003cd, 0x16f55: 0xe00002c3, 0x16f56: 0xe00003d1, 0x16f57: 0xe00004ab,
-	0x16f58: 0xe0000579, 0x16f59: 0xe00002c7, 0x16f5a: 0xe0000640, 0x16f5b: 0xe00002cf,
-	0x16f5c: 0xe00004af, 0x16f5d: 0xe0000644, 0x16f5e: 0xe0000798, 0x16f5f: 0xf0001e1e,
-	0x16f60: 0x002d9a8a, 0x16f61: 0xe000256e, 0x16f62: 0xe0002571, 0x16f63: 0xe000257b,
-	0x16f64: 0x0030be8a, 0x16f65: 0xe00025ab, 0x16f66: 0xe00025ae, 0x16f67: 0xe00010bb,
-	0x16f68: 0xe0002581, 0x16f69: 0x0030f68a, 0x16f6a: 0xe00025b5, 0x16f6b: 0xe00025bc,
-	0x16f6c: 0x002e228a, 0x16f6d: 0x002c3a8a, 0x16f6e: 0x002c628a, 0x16f6f: 0x002e828a,
-	0x16f70: 0x002d9a84, 0x16f71: 0xf0001f04, 0x16f72: 0xf0000404, 0x16f73: 0xf0001f04,
-	0x16f74: 0x0030be84, 0x16f75: 0xf0001f04, 0x16f76: 0xf0000404, 0x16f77: 0xe00010b6,
-	0x16f78: 0xf0001f04, 0x16f79: 0x0030f684, 0x16f7a: 0xf0001f04, 0x16f7b: 0xf0000404,
-	0x16f7c: 0x002e2284, 0x16f7d: 0x002c3a84, 0x16f7e: 0x002c6284, 0x16f7f: 0x002e8284,
-	// Block 0x5be, offset 0x16f80
-	0x16f80: 0xf0001f04, 0x16f81: 0xf0001f04, 0x16f82: 0xf0001f04, 0x16f83: 0xf0001f04,
-	0x16f84: 0xf0001f04, 0x16f85: 0xf0001f04, 0x16f86: 0xf0001f04, 0x16f87: 0xf0001f04,
-	0x16f88: 0xf0001f04, 0x16f89: 0xf0001f04, 0x16f8a: 0xf0001f04,
-	0x16f90: 0xf0000a04, 0x16f91: 0xf0000a04, 0x16f92: 0xf0000a04, 0x16f93: 0xf0000a04,
-	0x16f94: 0xf0000a04, 0x16f95: 0xf0000a04, 0x16f96: 0xf0000a04, 0x16f97: 0xf0000a04,
-	0x16f98: 0xe0002517, 0x16f99: 0xf0000a04, 0x16f9a: 0xf0000a04, 0x16f9b: 0xf0000a04,
-	0x16f9c: 0xf0000a04, 0x16f9d: 0xf0000a04, 0x16f9e: 0xf0000a04, 0x16f9f: 0xf0000a04,
-	0x16fa0: 0xf0000a04, 0x16fa1: 0xf0000a04, 0x16fa2: 0xf0000a04, 0x16fa3: 0xf0000a04,
-	0x16fa4: 0xf0000a04, 0x16fa5: 0xf0000a04, 0x16fa6: 0xf0000a04, 0x16fa7: 0xf0000a04,
-	0x16fa8: 0xf0000a04, 0x16fa9: 0xf0000a04, 0x16faa: 0xf0000a04, 0x16fab: 0x002c3a8c,
-	0x16fac: 0x002f7a8c, 0x16fad: 0xf0000c0c, 0x16fae: 0xf0000c0c,
-	0x16fb0: 0x002bde9d, 0x16fb1: 0x002c0a9d, 0x16fb2: 0x002c3a9d, 0x16fb3: 0x002c629d,
-	0x16fb4: 0x002c989d, 0x16fb5: 0x002d089d, 0x16fb6: 0x002d229d, 0x16fb7: 0x002d689d,
-	0x16fb8: 0x002d9a9d, 0x16fb9: 0x002dcc9d, 0x16fba: 0x002dfe9d, 0x16fbb: 0x002e229d,
-	0x16fbc: 0x002e829d, 0x16fbd: 0x002e9e9d, 0x16fbe: 0x002ee29d, 0x16fbf: 0x002f2c9d,
-	// Block 0x5bf, offset 0x16fc0
-	0x16fc0: 0x00352088, 0x16fc1: 0x40352020, 0x16fc2: 0x40070620, 0x16fc3: 0xae608302,
-	0x16fc4: 0xae605f02, 0x16fc5: 0xae602a02, 0x16fc6: 0xae602202, 0x16fc7: 0xae605f02,
-	0x16fc8: 0xa0000000, 0x16fc9: 0xa0000000, 0x16fca: 0x00341c88, 0x16fcb: 0x40341c20,
-	0x16fcc: 0x00369688, 0x16fcd: 0x40369620, 0x16fce: 0x00353088, 0x16fcf: 0x40353020,
-	0x16fd0: 0x00336483, 0x16fd1: 0x40336420, 0x16fd2: 0x00336a88, 0x16fd3: 0x40336a20,
-	0x16fd4: 0x00337a88, 0x16fd5: 0x40337a20, 0x16fd6: 0x0033dc88, 0x16fd7: 0x4033dc20,
-	0x16fd8: 0x0033aa88, 0x16fd9: 0x4033aa20, 0x16fda: 0x00345888, 0x16fdb: 0x40345820,
-	0x16fdc: 0x00347888, 0x16fdd: 0x40347820, 0x16fde: 0x00347088, 0x16fdf: 0x40347020,
-	0x16fe0: 0x00346888, 0x16fe1: 0x40346820, 0x16fe2: 0x0034ca88, 0x16fe3: 0x4034ca20,
-	0x16fe4: 0x0034dc88, 0x16fe5: 0x4034dc20, 0x16fe6: 0x00351888, 0x16fe7: 0x40351820,
-	0x16fe8: 0x00372688, 0x16fe9: 0x40372620, 0x16fea: 0x00354488, 0x16feb: 0x40354420,
-	0x16fec: 0x00355888, 0x16fed: 0x40355820, 0x16fee: 0x00359288, 0x16fef: 0x40359220,
-	0x16ff0: 0x00359a88, 0x16ff1: 0x40359a20, 0x16ff2: 0x0035cc88, 0x16ff3: 0x4035cc20,
-	0x16ff4: 0x00360e88, 0x16ff5: 0x40360e20, 0x16ff6: 0x00362a88, 0x16ff7: 0x40362a20,
-	0x16ff8: 0x00363a88, 0x16ff9: 0x40363a20, 0x16ffa: 0x0035d488, 0x16ffb: 0x4035d420,
-	0x16ffc: 0x00364488, 0x16ffd: 0x40364420, 0x16ffe: 0x00364c88, 0x16fff: 0x40364c20,
-	// Block 0x5c0, offset 0x17000
-	0x17000: 0xa0000000, 0x17001: 0xa0000000, 0x17002: 0xa0000000, 0x17003: 0xa0000000,
-	0x17004: 0xa0000000, 0x17006: 0x40096620, 0x17007: 0x40096a20,
-	0x17008: 0x40070820, 0x17009: 0x4004f220, 0x1700a: 0x4004f620, 0x1700b: 0x4027e620,
-	0x1700c: 0x40024820, 0x1700d: 0x40024a20, 0x1700e: 0x40070e20, 0x1700f: 0x40071020,
-	0x17010: 0xa0000001, 0x17011: 0xa0000002, 0x17012: 0xa0000004, 0x17013: 0xa0000003,
-	0x17014: 0xa0000005, 0x17015: 0xae600000, 0x17016: 0xae600000, 0x17017: 0xae600000,
-	0x17018: 0xa1e00000, 0x17019: 0xa1f00000, 0x1701a: 0xa2000000, 0x1701b: 0x40026420,
-	0x1701e: 0x40027020, 0x1701f: 0x4002cc20,
-	0x17020: 0x403aa220, 0x17021: 0x4039a620, 0x17022: 0x40393a20, 0x17023: 0x40393821,
-	0x17024: 0x40399c21, 0x17025: 0x40392820, 0x17026: 0x4039a821, 0x17027: 0xcf0b0151,
-	0x17028: 0xcf0f97a1, 0x17029: 0x40395420, 0x1702a: 0xcf1397a1, 0x1702b: 0x40394c20,
-	0x1702c: 0xcf1797a1, 0x1702d: 0x40395620, 0x1702e: 0x40395820, 0x1702f: 0xcf1b97a1,
-	0x17030: 0x40396220, 0x17031: 0xcf1f97a1, 0x17032: 0x40396c20, 0x17033: 0x40397020,
-	0x17034: 0x40397220, 0x17035: 0x40397420, 0x17036: 0x40397620, 0x17037: 0x40397820,
-	0x17038: 0x40397a20, 0x17039: 0x40397c20, 0x1703a: 0x40397e20, 0x1703b: 0x403a3820,
-	0x1703c: 0x403a3a20, 0x1703d: 0x403a9c20, 0x1703e: 0x403a9e20, 0x1703f: 0x403aa020,
-	// Block 0x5c1, offset 0x17040
-	0x17040: 0xa0000000, 0x17041: 0x40398020, 0x17042: 0x40398220, 0x17043: 0x403a1a20,
-	0x17044: 0xcf2797a1, 0x17045: 0xcf2997a1, 0x17046: 0xcf2b97a1, 0x17047: 0x403a6820,
-	0x17048: 0xcf2f97c2, 0x17049: 0x403a8e20, 0x1704a: 0xcf340171, 0x1704b: 0xa000c302,
-	0x1704c: 0xa000c502, 0x1704d: 0xa000c402, 0x1704e: 0xa000bd02, 0x1704f: 0xa000bf02,
-	0x17050: 0xa000be02, 0x17051: 0xa000c702, 0x17052: 0xa220bc02, 0x17053: 0xa000c902,
-	0x17054: 0xa000c602, 0x17055: 0xadc0bf02, 0x17056: 0xa000c102, 0x17057: 0xa000c202,
-	0x17058: 0xa000c802, 0x17059: 0xae60c402, 0x1705a: 0xae60c502, 0x1705b: 0xae60c602,
-	0x1705c: 0xadc0c702, 0x1705d: 0xae60c802, 0x1705e: 0xae60c902, 0x1705f: 0xadc0c002,
-	0x17060: 0xe000015e, 0x17061: 0xe00001e6, 0x17062: 0xe0000301, 0x17063: 0xe00003db,
-	0x17064: 0xe00004b6, 0x17065: 0xe0000580, 0x17066: 0xe000064b, 0x17067: 0xe00006f3,
-	0x17068: 0xe000079f, 0x17069: 0xe0000844, 0x1706a: 0x4004ee20, 0x1706b: 0x40024c20,
-	0x1706c: 0x40024e20, 0x1706d: 0x4004de20, 0x1706e: 0x40393a20, 0x1706f: 0x403a1020,
-	0x17070: 0xa000c002, 0x17071: 0x40392420, 0x17072: 0x40392220, 0x17073: 0x40392a20,
-	0x17074: 0x00391c84, 0x17075: 0xf0000404, 0x17076: 0xe000ac3b, 0x17077: 0xf0000404,
-	0x17078: 0xf0000404, 0x17079: 0xcf1597a1, 0x1707a: 0x40395c20, 0x1707b: 0x40393e20,
-	0x1707c: 0x40395e20, 0x1707d: 0x40396020, 0x1707e: 0xcf1197a1, 0x1707f: 0x40396220,
-	// Block 0x5c2, offset 0x17080
-	0x17080: 0x40394220, 0x17081: 0x40397620, 0x17082: 0x40397820, 0x17083: 0x40396620,
-	0x17084: 0x40396820, 0x17085: 0x40397a20, 0x17086: 0xcf1997a1, 0x17087: 0x40396e20,
-	0x17088: 0xcf1d97a1, 0x17089: 0x40398e20, 0x1708a: 0x40399020, 0x1708b: 0x40399220,
-	0x1708c: 0x40399420, 0x1708d: 0x40399620, 0x1708e: 0x40399820, 0x1708f: 0x40399a20,
-	0x17090: 0x40399c20, 0x17091: 0xcf2197a1, 0x17092: 0x4039aa20, 0x17093: 0x4039ac20,
-	0x17094: 0x4039ae20, 0x17095: 0x4039b020, 0x17096: 0x4039b220, 0x17097: 0x4039b420,
-	0x17098: 0x40396e20, 0x17099: 0x4039b820, 0x1709a: 0x4039ca20, 0x1709b: 0x4039cc20,
-	0x1709c: 0x4039ce20, 0x1709d: 0x4039e020, 0x1709e: 0x4039e220, 0x1709f: 0x4039ea20,
-	0x170a0: 0x4039f220, 0x170a1: 0x4039fe20, 0x170a2: 0x403a0020, 0x170a3: 0x403a0220,
-	0x170a4: 0x403a0420, 0x170a5: 0x403a0820, 0x170a6: 0x403a0a20, 0x170a7: 0x403a1420,
-	0x170a8: 0x403a1620, 0x170a9: 0xcf2397a1, 0x170aa: 0x403a1e20, 0x170ab: 0x403a2020,
-	0x170ac: 0x403a2220, 0x170ad: 0x403a2620, 0x170ae: 0x403a2820, 0x170af: 0xcf2597a1,
-	0x170b0: 0x403a2c20, 0x170b1: 0x403a2e20, 0x170b2: 0x403a3020, 0x170b3: 0x403a3220,
-	0x170b4: 0x403a3420, 0x170b5: 0x403a4220, 0x170b6: 0x403a4420, 0x170b7: 0x403a4620,
-	0x170b8: 0x403a4820, 0x170b9: 0x403a6020, 0x170ba: 0xcf2d97a1, 0x170bb: 0x403a5a20,
-	0x170bc: 0x403a5c20, 0x170bd: 0x403a5e20, 0x170be: 0x4039a220, 0x170bf: 0x40396c20,
-	// Block 0x5c3, offset 0x170c0
-	0x170c0: 0xe000ac38, 0x170c1: 0xcf320171, 0x170c2: 0x4039a021, 0x170c3: 0x4039a420,
-	0x170c4: 0x403a7620, 0x170c5: 0x403a7820, 0x170c6: 0x403a7a20, 0x170c7: 0x403a7c20,
-	0x170c8: 0x403a7e20, 0x170c9: 0x403a8020, 0x170ca: 0x403a8220, 0x170cb: 0x403a8420,
-	0x170cc: 0xcf3697a1, 0x170cd: 0x403a9420, 0x170ce: 0x403a9620, 0x170cf: 0x403a8620,
-	0x170d0: 0x403a9820, 0x170d1: 0x403a9a20, 0x170d2: 0xcf380171, 0x170d3: 0x4039ac21,
-	0x170d4: 0x4002e820, 0x170d5: 0x403a7220, 0x170d6: 0xae600000, 0x170d7: 0xae600000,
-	0x170d8: 0xae600000, 0x170d9: 0xae600000, 0x170da: 0xae600000, 0x170db: 0xae600000,
-	0x170dc: 0xae600000, 0x170dd: 0xa0000000, 0x170de: 0x40071220, 0x170df: 0xae600000,
-	0x170e0: 0xae600000, 0x170e1: 0xae600000, 0x170e2: 0xae600000, 0x170e3: 0xadc00000,
-	0x170e4: 0xae600000, 0x170e5: 0x003a7484, 0x170e6: 0x003a9084, 0x170e7: 0xae600000,
-	0x170e8: 0xae600000, 0x170e9: 0x40071420, 0x170ea: 0xadc00000, 0x170eb: 0xae600000,
-	0x170ec: 0xae600000, 0x170ed: 0xadc00000, 0x170ee: 0x40399e20, 0x170ef: 0x4039ba20,
-	0x170f0: 0xe0000161, 0x170f1: 0xe00001e9, 0x170f2: 0xe0000304, 0x170f3: 0xe00003de,
-	0x170f4: 0xe00004b9, 0x170f5: 0xe0000583, 0x170f6: 0xe000064e, 0x170f7: 0xe00006f6,
-	0x170f8: 0xe00007a2, 0x170f9: 0xe0000847, 0x170fa: 0x4039d020, 0x170fb: 0x4039e420,
-	0x170fc: 0x4039f420, 0x170fd: 0xe0001553, 0x170fe: 0xe0001779, 0x170ff: 0x403a7020,
-	// Block 0x5c4, offset 0x17100
-	0x17100: 0xe000155f, 0x17101: 0xe0001565, 0x17102: 0xe000157a, 0x17103: 0xe00015b0,
-	0x17104: 0xe00015b6, 0x17105: 0xe000aa58, 0x17106: 0xe000aa5e, 0x17107: 0xe000aa64,
-	0x17108: 0xe000aa76, 0x17109: 0xf0001a1a, 0x1710a: 0xf0001a1a, 0x1710b: 0xe000aa7f,
-	0x1710c: 0xe000aa85, 0x1710d: 0xe000aa8b, 0x1710e: 0xe000aa9d, 0x1710f: 0xe00024a8,
-	0x17110: 0xe00031a6, 0x17111: 0xe000aaa3, 0x17112: 0xe000aab5, 0x17113: 0xe00024ae,
-	0x17114: 0xe00031af, 0x17115: 0xe000aabe, 0x17116: 0xe000aac4, 0x17117: 0xe000aaca,
-	0x17118: 0xe000aad0, 0x17119: 0xe000aad6, 0x1711a: 0xe000aad9, 0x1711b: 0xe000aadf,
-	0x1711c: 0xe000aaee, 0x1711d: 0xe000aaf7, 0x1711e: 0xe000ab00, 0x1711f: 0xe000ab0f,
-	0x17120: 0xe000ab4b, 0x17121: 0xe000ab5a, 0x17122: 0xe000ab60, 0x17123: 0xe000ab66,
-	0x17124: 0xe000ab6c, 0x17125: 0xe000ab78, 0x17126: 0xe000ab7e, 0x17127: 0xe000ab87,
-	0x17128: 0xe000ab90, 0x17129: 0xe000ab96, 0x1712a: 0xe000ab9c, 0x1712b: 0xe000aba2,
-	0x1712c: 0xe000aba8, 0x1712d: 0xe000abae, 0x1712e: 0xe000abb4, 0x1712f: 0xe000abba,
-	0x17130: 0xe000abc0, 0x17131: 0xe00024f0, 0x17132: 0xe00031fd, 0x17133: 0xe000abc6,
-	0x17134: 0xe000abcc, 0x17135: 0xe00024f6, 0x17136: 0xe0003203, 0x17137: 0xf0001a1a,
-	0x17138: 0xe000320f, 0x17139: 0xe0003215, 0x1713a: 0xe000321b, 0x1713b: 0xe0003227,
-	0x1713c: 0xe0003233, 0x1713d: 0xf0001a1a, 0x1713e: 0xf0001a1a, 0x1713f: 0xe000abd8,
-	// Block 0x5c5, offset 0x17140
-	0x17140: 0xe000abde, 0x17141: 0xe000abe4, 0x17142: 0xe000abf0, 0x17143: 0xe0002502,
-	0x17144: 0xe0003242, 0x17145: 0xe000abf9, 0x17146: 0xe000abff, 0x17147: 0xe000ac05,
-	0x17148: 0xe000ac0e, 0x17149: 0xe0002505, 0x1714a: 0xe0003245, 0x1714b: 0xe000ac14,
-	0x1714c: 0xe000ac1a, 0x1714d: 0xe000ac20, 0x1714e: 0xe000ac32, 0x1714f: 0xe000250b,
-	0x17150: 0xe0003251, 0x17151: 0xe000325a, 0x17152: 0xe0003260, 0x17153: 0xf0001a1a,
-	0x17154: 0xf0001a1a, 0x17155: 0xe000327b, 0x17156: 0xe0003281, 0x17157: 0xe0003287,
-	0x17158: 0xe0003299, 0x17159: 0xf0001a1a, 0x1715a: 0xf0001a1a, 0x1715b: 0xe000aae2,
-	0x1715c: 0xe000aae5, 0x1715d: 0xe0003272, 0x1715e: 0xe0000003, 0x1715f: 0xe0000006,
-	0x17160: 0xe0000009, 0x17161: 0xe000000c, 0x17162: 0xe000000f, 0x17163: 0xe0000012,
-	0x17164: 0xe000156b, 0x17165: 0xe000156e, 0x17166: 0xe0001577, 0x17167: 0xe000157d,
-	0x17168: 0xe00015aa, 0x17169: 0xe00015b3, 0x1716a: 0xe000aa67, 0x1716b: 0xe000aa6a,
-	0x1716c: 0xe000aa73, 0x1716d: 0xe000aa79, 0x1716e: 0xf0001919, 0x1716f: 0xf0001919,
-	0x17170: 0xe000aa8e, 0x17171: 0xe000aa91, 0x17172: 0xe000aa9a, 0x17173: 0xe000aaa0,
-	0x17174: 0xe00024a5, 0x17175: 0xe00031a3, 0x17176: 0xe000aaa6, 0x17177: 0xe000aaa9,
-	0x17178: 0xe000aab2, 0x17179: 0xe000aab8, 0x1717a: 0xe00024ab, 0x1717b: 0xe00031ac,
-	0x1717c: 0xe00024ed, 0x1717d: 0xe00031fa, 0x1717e: 0xe00024f3, 0x1717f: 0xe0003200,
-	// Block 0x5c6, offset 0x17180
-	0x17180: 0xf0001919, 0x17181: 0xe0003224, 0x17182: 0xe0003230, 0x17183: 0xf0001919,
-	0x17184: 0xf0001919, 0x17185: 0xe000abed, 0x17186: 0xe00024ff, 0x17187: 0xe000323f,
-	0x17188: 0xe000abf3, 0x17189: 0xe000ac0b, 0x1718a: 0xe000ac23, 0x1718b: 0xe000ac26,
-	0x1718c: 0xe000ac2f, 0x1718d: 0xe000ac35, 0x1718e: 0xe0002508, 0x1718f: 0xe000324e,
-	0x17190: 0xe000326f, 0x17191: 0xe000328a, 0x17192: 0xe000328d, 0x17193: 0xe0003296,
-	0x17194: 0xe000329c, 0x17195: 0xf0001919, 0x17196: 0xf0001919, 0x17197: 0xe000155c,
-	0x17198: 0xe0001562, 0x17199: 0xe0001568, 0x1719a: 0xe0001571, 0x1719b: 0xe0001580,
-	0x1719c: 0xe000aa55, 0x1719d: 0xe000aa5b, 0x1719e: 0xe000aa61, 0x1719f: 0xe000aa6d,
-	0x171a0: 0xf0001717, 0x171a1: 0xe000aa7c, 0x171a2: 0xe000aa82, 0x171a3: 0xe000aa88,
-	0x171a4: 0xe000aa94, 0x171a5: 0xe000319d, 0x171a6: 0xe000aaac, 0x171a7: 0xe000aabb,
-	0x171a8: 0xe000aac1, 0x171a9: 0xe000aac7, 0x171aa: 0xe000aacd, 0x171ab: 0xe000aad3,
-	0x171ac: 0xe000aadc, 0x171ad: 0xe000aae8, 0x171ae: 0xe000aaf1, 0x171af: 0xe000aafa,
-	0x171b0: 0xe000ab09, 0x171b1: 0xe000ab48, 0x171b2: 0xe000ab4e, 0x171b3: 0xe000ab57,
-	0x171b4: 0xe000ab5d, 0x171b5: 0xe000ab63, 0x171b6: 0xe000ab69, 0x171b7: 0xe000ab75,
-	0x171b8: 0xe000ab7b, 0x171b9: 0xe000ab8a, 0x171ba: 0xe000ab93, 0x171bb: 0xe000ab99,
-	0x171bc: 0xe000ab9f, 0x171bd: 0xe000aba5, 0x171be: 0xe000abab, 0x171bf: 0xe000abb1,
-	// Block 0x5c7, offset 0x171c0
-	0x171c0: 0xe000abb7, 0x171c1: 0xe000abbd, 0x171c2: 0xe000abc3, 0x171c3: 0xe000abc9,
-	0x171c4: 0xe000320c, 0x171c5: 0xe0003212, 0x171c6: 0xe0003218, 0x171c7: 0xe000321e,
-	0x171c8: 0xe000322a, 0x171c9: 0xe000abd5, 0x171ca: 0xe000abdb, 0x171cb: 0xe000abe1,
-	0x171cc: 0xe000abe7, 0x171cd: 0xe000323c, 0x171ce: 0xe000abf6, 0x171cf: 0xe000abfc,
-	0x171d0: 0xe000ac02, 0x171d1: 0xe000ac08, 0x171d2: 0xe000ac11, 0x171d3: 0xe000ac17,
-	0x171d4: 0xe000ac1d, 0x171d5: 0xe000ac29, 0x171d6: 0xe0003248, 0x171d7: 0xe0003257,
-	0x171d8: 0xe000325d, 0x171d9: 0xe0003254, 0x171da: 0xe0003278, 0x171db: 0xe000327e,
-	0x171dc: 0xe0003284, 0x171dd: 0xe0003290, 0x171de: 0xf0001717, 0x171df: 0xe0001574,
-	0x171e0: 0xe0001583, 0x171e1: 0xe000aa70, 0x171e2: 0xf0001818, 0x171e3: 0xe000aa97,
-	0x171e4: 0xe00031a0, 0x171e5: 0xe000aaaf, 0x171e6: 0xe00031a9, 0x171e7: 0xe000ab0c,
-	0x171e8: 0xe00031c7, 0x171e9: 0xe000ab3f, 0x171ea: 0xe00031d3, 0x171eb: 0xe0003221,
-	0x171ec: 0xe000322d, 0x171ed: 0xe000abea, 0x171ee: 0xe000ac2c, 0x171ef: 0xe000324b,
-	0x171f0: 0xe0003293, 0x171f1: 0xf0001818, 0x171f2: 0xe000aa52, 0x171f3: 0xe0003185,
-	0x171f4: 0xe0003188, 0x171f5: 0xe00024de, 0x171f6: 0xe00031eb, 0x171f7: 0xe00024e4,
-	0x171f8: 0xe00031f1, 0x171f9: 0xe00024ea, 0x171fa: 0xe00031f7, 0x171fb: 0xe00024c6,
-	0x171fc: 0xe00031cd, 0x171fd: 0xe00024cc, 0x171fe: 0xe00031d9, 0x171ff: 0xe00024ba,
-	// Block 0x5c8, offset 0x17200
-	0x17200: 0xe00031bb, 0x17201: 0xe00024b4, 0x17202: 0xe00031b5, 0x17203: 0xe00024c0,
-	0x17204: 0xe00031c1, 0x17205: 0xe00024d2, 0x17206: 0xe00031df, 0x17207: 0xe00024d8,
-	0x17208: 0xe00031e5, 0x17209: 0xe000ab1b, 0x1720a: 0xe000ab27, 0x1720b: 0xe000ab33,
-	0x1720c: 0xe000ab45, 0x1720d: 0xe000ab39, 0x1720e: 0xe000ab06, 0x1720f: 0xe000ab54,
-	0x17210: 0xe000ab72, 0x17211: 0xe00024db, 0x17212: 0xe00031e8, 0x17213: 0xe00024e1,
-	0x17214: 0xe00031ee, 0x17215: 0xe00024e7, 0x17216: 0xe00031f4, 0x17217: 0xe00024c3,
-	0x17218: 0xe00031ca, 0x17219: 0xe00024c9, 0x1721a: 0xe00031d6, 0x1721b: 0xe00024b7,
-	0x1721c: 0xe00031b8, 0x1721d: 0xe00024b1, 0x1721e: 0xe00031b2, 0x1721f: 0xe00024bd,
-	0x17220: 0xe00031be, 0x17221: 0xe00024cf, 0x17222: 0xe00031dc, 0x17223: 0xe00024d5,
-	0x17224: 0xe00031e2, 0x17225: 0xe000ab18, 0x17226: 0xe000ab24, 0x17227: 0xe000ab30,
-	0x17228: 0xe000ab42, 0x17229: 0xe000ab36, 0x1722a: 0xe000ab03, 0x1722b: 0xe000ab51,
-	0x1722c: 0xe000ab6f, 0x1722d: 0xe000ab12, 0x1722e: 0xe000ab1e, 0x1722f: 0xe000ab2a,
-	0x17230: 0xe000ab3c, 0x17231: 0xe00031c4, 0x17232: 0xe00031d0, 0x17233: 0xe000ab81,
-	0x17234: 0xe000aaeb, 0x17235: 0xe000aaf4, 0x17236: 0xe000aafd, 0x17237: 0xe000ab15,
-	0x17238: 0xe000ab21, 0x17239: 0xe000ab2d, 0x1723a: 0xe000ab84, 0x1723b: 0xe000ab8d,
-	0x1723c: 0xe000318b, 0x1723d: 0xe000318e, 0x1723e: 0x4004c020, 0x1723f: 0x4004c220,
-	// Block 0x5c9, offset 0x17240
-	0x17240: 0x0039de98, 0x17241: 0x0039e69a, 0x17242: 0x0039e699, 0x17243: 0x0039e697,
-	0x17244: 0x0039e698, 0x17245: 0x0039e89a, 0x17246: 0x0039e899, 0x17247: 0x0039e897,
-	0x17248: 0x0039e898, 0x17249: 0x0039ee9a, 0x1724a: 0x0039ee99, 0x1724b: 0x0039ee97,
-	0x1724c: 0x0039ee98, 0x1724d: 0x0039f09a, 0x1724e: 0x0039f099, 0x1724f: 0x0039f097,
-	0x17250: 0x0039f098, 0x17251: 0x0039fc9a, 0x17252: 0x0039fc99, 0x17253: 0x0039fc97,
-	0x17254: 0x0039fc98, 0x17255: 0x003a129a, 0x17256: 0x003a1299, 0x17257: 0x003a1297,
-	0x17258: 0x003a1298, 0x17259: 0x003a1a9a, 0x1725a: 0x003a1a99, 0x1725b: 0x003a1a97,
-	0x1725c: 0x003a1a98, 0x1725d: 0x003a409a, 0x1725e: 0x003a4099, 0x1725f: 0x003a4097,
-	0x17260: 0x003a4098, 0x17261: 0x003a4e9a, 0x17262: 0x003a4e99, 0x17263: 0x003a4e97,
-	0x17264: 0x003a4e98, 0x17265: 0x003a569a, 0x17266: 0x003a5699, 0x17267: 0x003a5697,
-	0x17268: 0x003a5698, 0x17269: 0x003a689a, 0x1726a: 0x003a6899, 0x1726b: 0x003a6897,
-	0x1726c: 0x003a6898, 0x1726d: 0x003a749a, 0x1726e: 0x003a7499, 0x1726f: 0x003a8e9a,
-	0x17270: 0x003a8e99, 0x17271: 0x003a909a, 0x17272: 0x003a9099, 0x17273: 0x003a9097,
-	0x17274: 0x003a9098, 0x17275: 0xe0001732, 0x17276: 0xe000172f, 0x17277: 0xe0001738,
-	0x17278: 0xe0001735, 0x17279: 0xe000173e, 0x1727a: 0xe000173b, 0x1727b: 0xe000abd2,
-	0x1727c: 0xe000abcf, 0x1727f: 0xa0000000,
-	// Block 0x5ca, offset 0x17280
-	0x17280: 0xa0000000, 0x17281: 0xa0000000, 0x17282: 0xa0000000, 0x17283: 0xa0000000,
-	0x17284: 0xa0000000, 0x17285: 0xa0000000, 0x17286: 0xa0000000, 0x17287: 0xa0000000,
-	0x17288: 0xa0000000, 0x17289: 0x40020020, 0x1728a: 0x40020220, 0x1728b: 0x40020420,
-	0x1728c: 0x40020620, 0x1728d: 0x40020820, 0x1728e: 0xa0000000, 0x1728f: 0xa0000000,
-	0x17290: 0xa0000000, 0x17291: 0xa0000000, 0x17292: 0xa0000000, 0x17293: 0xa0000000,
-	0x17294: 0xa0000000, 0x17295: 0xa0000000, 0x17296: 0xa0000000, 0x17297: 0xa0000000,
-	0x17298: 0xa0000000, 0x17299: 0xa0000000, 0x1729a: 0xa0000000, 0x1729b: 0xa0000000,
-	0x1729c: 0xa0000000, 0x1729d: 0xa0000000, 0x1729e: 0xa0000000, 0x1729f: 0xa0000000,
-	0x172a0: 0x40021220, 0x172a1: 0x4002ba20, 0x172a2: 0x4003e020, 0x172a3: 0x4004ea20,
-	0x172a4: 0x4027de20, 0x172a5: 0x4004ec20, 0x172a6: 0x4004e620, 0x172a7: 0x4003d220,
-	0x172a8: 0x4003f420, 0x172a9: 0x4003f620, 0x172aa: 0x4004d820, 0x172ab: 0x40093820,
-	0x172ac: 0x40024020, 0x172ad: 0x40021a20, 0x172ae: 0x4002e420, 0x172af: 0x4004e220,
-	0x172b0: 0x4029cc20, 0x172b1: 0x4029ce20, 0x172b2: 0x4029d020, 0x172b3: 0x4029d220,
-	0x172b4: 0x4029d420, 0x172b5: 0x4029d620, 0x172b6: 0x4029d820, 0x172b7: 0x4029da20,
-	0x172b8: 0x4029dc20, 0x172b9: 0x4029de20, 0x172ba: 0x40026c20, 0x172bb: 0x40026220,
-	0x172bc: 0x40094020, 0x172bd: 0x40094220, 0x172be: 0x40094420, 0x172bf: 0x4002c420,
-	// Block 0x5cb, offset 0x172c0
-	0x172c0: 0x4004d620, 0x172c1: 0xce4a94d1, 0x172c2: 0x002c0a88, 0x172c3: 0x002c3a88,
-	0x172c4: 0x002c6288, 0x172c5: 0xce0a2741, 0x172c6: 0x002d0888, 0x172c7: 0x002d2288,
-	0x172c8: 0x002d6888, 0x172c9: 0x002d9a88, 0x172ca: 0x002dcc88, 0x172cb: 0x002dfe88,
-	0x172cc: 0xc0030002, 0x172cd: 0x002e8288, 0x172ce: 0x002e9e88, 0x172cf: 0xcf3d9801,
-	0x172d0: 0x002f2c88, 0x172d1: 0x002f5688, 0x172d2: 0x002f7a88, 0x172d3: 0x002fe688,
-	0x172d4: 0x00302c88, 0x172d5: 0xc3479831, 0x172d6: 0x0030be88, 0x172d7: 0x0030e288,
-	0x172d8: 0x0030f688, 0x172d9: 0x00310088, 0x172da: 0x00312a88, 0x172db: 0x4003f820,
-	0x172dc: 0x4004e420, 0x172dd: 0x4003fa20, 0x172de: 0x40062420, 0x172df: 0x40021620,
-	0x172e0: 0x40061e20, 0x172e1: 0xce4794d1, 0x172e2: 0x402c0a20, 0x172e3: 0x402c3a20,
-	0x172e4: 0x402c6220, 0x172e5: 0xce082741, 0x172e6: 0x402d0820, 0x172e7: 0x402d2220,
-	0x172e8: 0x402d6820, 0x172e9: 0x402d9a20, 0x172ea: 0x402dcc20, 0x172eb: 0x402dfe20,
-	0x172ec: 0xc0000002, 0x172ed: 0x402e8220, 0x172ee: 0x402e9e20, 0x172ef: 0xcf3a9801,
-	0x172f0: 0x402f2c20, 0x172f1: 0x402f5620, 0x172f2: 0x402f7a20, 0x172f3: 0x402fe620,
-	0x172f4: 0x40302c20, 0x172f5: 0xc3459831, 0x172f6: 0x4030be20, 0x172f7: 0x4030e220,
-	0x172f8: 0x4030f620, 0x172f9: 0x40310020, 0x172fa: 0x40312a20, 0x172fb: 0x4003fc20,
-	0x172fc: 0x40094820, 0x172fd: 0x4003fe20, 0x172fe: 0x40094c20, 0x172ff: 0xa0000000,
-	// Block 0x5cc, offset 0x17300
-	0x17300: 0xe00008f5, 0x17301: 0xe000ac59, 0x17302: 0x002be283, 0x17303: 0xe000ac53,
-	0x17304: 0xe000095b, 0x17305: 0xe000094d, 0x17306: 0xe00009dd, 0x17307: 0xe0000a53,
-	0x17308: 0xe0000ae8, 0x17309: 0xe000accd, 0x1730a: 0x002c9a83, 0x1730b: 0xe0000b20,
-	0x1730c: 0xe0000c2b, 0x1730d: 0xe000ad11, 0x1730e: 0xe0000c37, 0x1730f: 0xe0000c43,
-	0x17310: 0xe0000ab3, 0x17311: 0xe000ad51, 0x17312: 0xe0000d9a, 0x17313: 0xe000ad87,
-	0x17314: 0x002ee483, 0x17315: 0xe000ad69, 0x17316: 0xe0000dd2, 0x17317: 0x40093e20,
-	0x17318: 0xe0000e12, 0x17319: 0xe0000fe1, 0x1731a: 0xe000ae29, 0x1731b: 0xe0000fed,
-	0x1731c: 0xe0000fff, 0x1731d: 0xe000ae79, 0x1731e: 0x00318888, 0x1731f: 0xe0000f7b,
-	0x17320: 0xe00008f2, 0x17321: 0xe000ac56, 0x17322: 0x402be220, 0x17323: 0xe000ac50,
-	0x17324: 0xe0000958, 0x17325: 0xe000094a, 0x17326: 0xe00009d5, 0x17327: 0xe0000a4d,
-	0x17328: 0xe0000ae5, 0x17329: 0xe000acca, 0x1732a: 0x402c9a20, 0x1732b: 0xe0000b1d,
-	0x1732c: 0xe0000c28, 0x1732d: 0xe000ad0e, 0x1732e: 0xe0000c34, 0x1732f: 0xe0000c40,
-	0x17330: 0xe0000aad, 0x17331: 0xe000ad4e, 0x17332: 0xe0000d97, 0x17333: 0xe000ad84,
-	0x17334: 0x402ee420, 0x17335: 0xe000ad66, 0x17336: 0xe0000dcf, 0x17337: 0x40093c20,
-	0x17338: 0xe0000e0f, 0x17339: 0xe0000fde, 0x1733a: 0xe000ae26, 0x1733b: 0xe0000fea,
-	0x1733c: 0xe0000ffc, 0x1733d: 0xe000ae76, 0x1733e: 0x40318820, 0x1733f: 0xe0001114,
-	// Block 0x5cd, offset 0x17340
-	0x17340: 0xe0000983, 0x17341: 0xe0000980, 0x17342: 0x002be083, 0x17343: 0x402be020,
-	0x17344: 0xe000097d, 0x17345: 0xe000097a, 0x17346: 0xe000acad, 0x17347: 0xe000acaa,
-	0x17348: 0xe0000a3e, 0x17349: 0xe0000a3b, 0x1734a: 0xe0000a4a, 0x1734b: 0xe0000a47,
-	0x1734c: 0xe0000a44, 0x1734d: 0xe0000a41, 0x1734e: 0xe0000a86, 0x1734f: 0xe0000a83,
-	0x17350: 0x002c6483, 0x17351: 0x402c6420, 0x17352: 0xe0000b46, 0x17353: 0xe0000b43,
-	0x17354: 0xe0000aee, 0x17355: 0xe0000aeb, 0x17356: 0xe0000b2c, 0x17357: 0xe0000b29,
-	0x17358: 0xe0000b40, 0x17359: 0xe0000b3d, 0x1735a: 0xe0000b1a, 0x1735b: 0xe0000b17,
-	0x1735c: 0xe0000bb8, 0x1735d: 0xe0000bb5, 0x1735e: 0xe0000bb2, 0x1735f: 0xe0000baf,
-	0x17360: 0xe0000bc4, 0x17361: 0xe0000bc1, 0x17362: 0xe0000bca, 0x17363: 0xe0000bc7,
-	0x17364: 0xe0000bee, 0x17365: 0xe0000beb, 0x17366: 0xe0000c1b, 0x17367: 0xe0000c18,
-	0x17368: 0xe000ad0b, 0x17369: 0xe000ad08, 0x1736a: 0xe0000c60, 0x1736b: 0xe0000c5d,
-	0x1736c: 0xe0000c31, 0x1736d: 0xe0000c2e, 0x1736e: 0xe0000c5a, 0x1736f: 0xe0000c57,
-	0x17370: 0xe0000c54, 0x17371: 0x402da220, 0x17372: 0xf0000a0a, 0x17373: 0xf0000404,
-	0x17374: 0xe0000c8a, 0x17375: 0xe0000c87, 0x17376: 0xe0000c9f, 0x17377: 0xe0000c9c,
-	0x17378: 0x402f7220, 0x17379: 0xe000ad31, 0x1737a: 0xe000ad2e, 0x1737b: 0xe0000cd8,
-	0x1737c: 0xe0000cd5, 0x1737d: 0xe0000cd2, 0x1737e: 0xe0000ccf, 0x1737f: 0xe0000d04,
-	// Block 0x5ce, offset 0x17380
-	0x17380: 0xe0000cfe, 0x17381: 0xe0000cf8, 0x17382: 0xe0000cf5, 0x17383: 0xe000ad57,
-	0x17384: 0xe000ad54, 0x17385: 0xe0000d6f, 0x17386: 0xe0000d6c, 0x17387: 0xe0000d5d,
-	0x17388: 0xe0000d5a, 0x17389: 0xf0000404, 0x1738a: 0x002eda88, 0x1738b: 0x402eda20,
-	0x1738c: 0xe0000e2e, 0x1738d: 0xe0000e2b, 0x1738e: 0xe0000da0, 0x1738f: 0xe0000d9d,
-	0x17390: 0xe0000de0, 0x17391: 0xe0000ddd, 0x17392: 0xe0000e93, 0x17393: 0xe0000e8f,
-	0x17394: 0xe000addf, 0x17395: 0xe000addc, 0x17396: 0xe0000edc, 0x17397: 0xe0000ed9,
-	0x17398: 0xe0000ed0, 0x17399: 0xe0000ecd, 0x1739a: 0xe000adf3, 0x1739b: 0xe000adf0,
-	0x1739c: 0xe0000f2d, 0x1739d: 0xe0000f2a, 0x1739e: 0xe0000f47, 0x1739f: 0xe0000f44,
-	0x173a0: 0xe0000f33, 0x173a1: 0xe0000f30, 0x173a2: 0xe0000f99, 0x173a3: 0xe0000f96,
-	0x173a4: 0xe0000f8a, 0x173a5: 0xe0000f87, 0x173a6: 0x00303688, 0x173a7: 0x40303620,
-	0x173a8: 0xe000ae1b, 0x173a9: 0xe000ae18, 0x173aa: 0xe000103f, 0x173ab: 0xe000103c,
-	0x173ac: 0xe0000fe7, 0x173ad: 0xe0000fe4, 0x173ae: 0xe0000ff9, 0x173af: 0xe0000ff6,
-	0x173b0: 0xe0001025, 0x173b1: 0xe0001022, 0x173b2: 0xe0001039, 0x173b3: 0xe0001036,
-	0x173b4: 0xe00010d8, 0x173b5: 0xe00010d5, 0x173b6: 0xe000110e, 0x173b7: 0xe000110b,
-	0x173b8: 0xe0001117, 0x173b9: 0xe000ae85, 0x173ba: 0xe000ae82, 0x173bb: 0xe000114d,
-	0x173bc: 0xe000114a, 0x173bd: 0xe0001147, 0x173be: 0xe0001144, 0x173bf: 0xe0000f64,
-	// Block 0x5cf, offset 0x173c0
-	0x173c0: 0x402c1a20, 0x173c1: 0x002c2a88, 0x173c2: 0x002c3288, 0x173c3: 0x402c3220,
-	0x173c4: 0x0031c488, 0x173c5: 0x4031c420, 0x173c6: 0x002efa88, 0x173c7: 0x002c4e88,
-	0x173c8: 0x402c4e20, 0x173c9: 0x002c7288, 0x173ca: 0x002c7a88, 0x173cb: 0x002c8488,
-	0x173cc: 0x402c8420, 0x173cd: 0xe000115c, 0x173ce: 0x002cae88, 0x173cf: 0x002cb888,
-	0x173d0: 0x002cc288, 0x173d1: 0x002d1688, 0x173d2: 0x402d1620, 0x173d3: 0x002d4488,
-	0x173d4: 0x002d5888, 0x173d5: 0x402d7820, 0x173d6: 0x002dc288, 0x173d7: 0x002db688,
-	0x173d8: 0x002e0a88, 0x173d9: 0x402e0a20, 0x173da: 0x402e3820, 0x173db: 0x402e7220,
-	0x173dc: 0x0030a088, 0x173dd: 0x002eb488, 0x173de: 0x402ebc20, 0x173df: 0x002f1088,
-	0x173e0: 0x002ee683, 0x173e1: 0x402ee620, 0x173e2: 0x002d6088, 0x173e3: 0x402d6020,
-	0x173e4: 0x002f3e88, 0x173e5: 0x402f3e20, 0x173e6: 0x002f8288, 0x173e7: 0x0031b488,
-	0x173e8: 0x4031b420, 0x173e9: 0x00300888, 0x173ea: 0x40301220, 0x173eb: 0x40304220,
-	0x173ec: 0x00304a88, 0x173ed: 0x40304a20, 0x173ee: 0x00305288, 0x173ef: 0x00306e83,
-	0x173f0: 0x40306e20, 0x173f1: 0x0030b488, 0x173f2: 0x0030cc88, 0x173f3: 0x00311888,
-	0x173f4: 0x40311820, 0x173f5: 0x00313488, 0x173f6: 0x40313420, 0x173f7: 0x00316488,
-	0x173f8: 0x00316e88, 0x173f9: 0x40316e20, 0x173fa: 0x40317820, 0x173fb: 0x4031a620,
-	0x173fc: 0x0031bc88, 0x173fd: 0x4031bc20, 0x173fe: 0xe0000fc9, 0x173ff: 0x40319420,
-	// Block 0x5d0, offset 0x17400
-	0x17400: 0x40321220, 0x17401: 0x40321a20, 0x17402: 0x40322220, 0x17403: 0x40322a20,
-	0x17404: 0xe0000ad5, 0x17405: 0xe0000ad1, 0x17406: 0xe0000acd, 0x17407: 0xf0000a0a,
-	0x17408: 0xf000040a, 0x17409: 0xf0000404, 0x1740a: 0xf0000a0a, 0x1740b: 0xf000040a,
-	0x1740c: 0xf0000404, 0x1740d: 0xe0000947, 0x1740e: 0xe0000944, 0x1740f: 0xe0000c3d,
-	0x17410: 0xe0000c3a, 0x17411: 0xe0000dcc, 0x17412: 0xe0000dc9, 0x17413: 0xe0000ff3,
-	0x17414: 0xe0000ff0, 0x17415: 0xe000101e, 0x17416: 0xe000101a, 0x17417: 0xe000ae36,
-	0x17418: 0xe000ae32, 0x17419: 0xe0001016, 0x1741a: 0xe0001012, 0x1741b: 0xe000100e,
-	0x1741c: 0xe000100a, 0x1741d: 0x402cae20, 0x1741e: 0xe0000962, 0x1741f: 0xe000095e,
-	0x17420: 0xe0000976, 0x17421: 0xe0000972, 0x17422: 0xe00009f4, 0x17423: 0xe00009ef,
-	0x17424: 0x002d3a88, 0x17425: 0x402d3a20, 0x17426: 0xe0000bbe, 0x17427: 0xe0000bbb,
-	0x17428: 0xe0000c99, 0x17429: 0xe0000c96, 0x1742a: 0xe0000e20, 0x1742b: 0xe0000e1d,
-	0x1742c: 0xe0000e27, 0x1742d: 0xe0000e23, 0x1742e: 0xe0001162, 0x1742f: 0xe000115f,
-	0x17430: 0xe0000c8d, 0x17431: 0xf0000a0a, 0x17432: 0xf000040a, 0x17433: 0xf0000404,
-	0x17434: 0xe000acf9, 0x17435: 0xe000acf6, 0x17436: 0x002d7888, 0x17437: 0x00319488,
-	0x17438: 0xe0000d57, 0x17439: 0xe0000d54, 0x1743a: 0xe000ac66, 0x1743b: 0xe000ac62,
-	0x1743c: 0xe000ac6f, 0x1743d: 0xe000ac6a, 0x1743e: 0xe000ad94, 0x1743f: 0xe000ad90,
-	// Block 0x5d1, offset 0x17440
-	0x17440: 0xe000098f, 0x17441: 0xe000098c, 0x17442: 0xe0000995, 0x17443: 0xe0000992,
-	0x17444: 0xe0000b62, 0x17445: 0xe0000b5f, 0x17446: 0xe0000b68, 0x17447: 0xe0000b65,
-	0x17448: 0xe0000c6c, 0x17449: 0xe0000c69, 0x1744a: 0xe0000c72, 0x1744b: 0xe0000c6f,
-	0x1744c: 0xe0000e4a, 0x1744d: 0xe0000e47, 0x1744e: 0xe0000e50, 0x1744f: 0xe0000e4d,
-	0x17450: 0xe0000ee8, 0x17451: 0xe0000ee5, 0x17452: 0xe0000eee, 0x17453: 0xe0000eeb,
-	0x17454: 0xe0001053, 0x17455: 0xe0001050, 0x17456: 0xe0001059, 0x17457: 0xe0001056,
-	0x17458: 0xe0000f61, 0x17459: 0xe0000f5e, 0x1745a: 0xe0000fa5, 0x1745b: 0xe0000fa2,
-	0x1745c: 0x00312288, 0x1745d: 0x40312220, 0x1745e: 0xe0000bf4, 0x1745f: 0xe0000bf1,
-	0x17460: 0x002ebc88, 0x17461: 0x402c8c20, 0x17462: 0x002f2288, 0x17463: 0x402f2220,
-	0x17464: 0x00314088, 0x17465: 0x40314020, 0x17466: 0xe000096f, 0x17467: 0xe000096c,
-	0x17468: 0xe0000b32, 0x17469: 0xe0000b2f, 0x1746a: 0xe0000dd9, 0x1746b: 0xe0000dd5,
-	0x1746c: 0xe000ad80, 0x1746d: 0xe000ad7c, 0x1746e: 0xe0000e04, 0x1746f: 0xe0000e01,
-	0x17470: 0xe0000e0b, 0x17471: 0xe0000e07, 0x17472: 0xe0001129, 0x17473: 0xe0001126,
-	0x17474: 0x402e5e20, 0x17475: 0x402ed020, 0x17476: 0x40305a20, 0x17477: 0x402dd420,
-	0x17478: 0xe0000abf, 0x17479: 0xe0000ec4, 0x1747a: 0x002be888, 0x1747b: 0x002c4488,
-	0x1747c: 0x402c4420, 0x1747d: 0x002e3888, 0x1747e: 0x00303e88, 0x1747f: 0x402ffc20,
-	// Block 0x5d2, offset 0x17480
-	0x17480: 0xae603502, 0x17481: 0xae603802, 0x17482: 0xae603c02, 0x17483: 0xae603702,
-	0x17484: 0xae605b02, 0x17485: 0xae606302, 0x17486: 0xae603702, 0x17487: 0xae605202,
-	0x17488: 0xae604702, 0x17489: 0xae603602, 0x1748a: 0xae604302, 0x1748b: 0xae604d02,
-	0x1748c: 0xae604102, 0x1748d: 0xae605f02, 0x1748e: 0xae605f02, 0x1748f: 0xae606502,
-	0x17490: 0xae606602, 0x17491: 0xae606702, 0x17492: 0xae605f02, 0x17493: 0xae602202,
-	0x17494: 0xae602a02, 0x17495: 0xae805f02, 0x17496: 0xadc06002, 0x17497: 0xadc06002,
-	0x17498: 0xadc06002, 0x17499: 0xadc06002, 0x1749a: 0xae805f02, 0x1749b: 0xad806802,
-	0x1749c: 0xadc06002, 0x1749d: 0xadc06002, 0x1749e: 0xadc06002, 0x1749f: 0xadc06002,
-	0x174a0: 0xadc06002, 0x174a1: 0xaca06e02, 0x174a2: 0xaca06f02, 0x174a3: 0xae603902,
-	0x174a4: 0xadc07502, 0x174a5: 0xadc07602, 0x174a6: 0xadc07702, 0x174a7: 0xaca05602,
-	0x174a8: 0xaca05902, 0x174a9: 0xadc06002, 0x174aa: 0xadc06002, 0x174ab: 0xadc06002,
-	0x174ac: 0xadc06002, 0x174ad: 0xadc07802, 0x174ae: 0xadc07902, 0x174af: 0xadc06002,
-	0x174b0: 0xadc07a02, 0x174b1: 0xadc07b02, 0x174b2: 0xadc02102, 0x174b3: 0xadc06002,
-	0x174b4: 0xa0107c02, 0x174b5: 0xa0107d02, 0x174b6: 0xa0106102, 0x174b7: 0xa0106102,
-	0x174b8: 0xa0105402, 0x174b9: 0xadc07e02, 0x174ba: 0xadc06002, 0x174bb: 0xadc06002,
-	0x174bc: 0xadc06002, 0x174bd: 0xae605f02, 0x174be: 0xae605f02, 0x174bf: 0xae605f02,
-	// Block 0x5d3, offset 0x174c0
-	0x174c0: 0xae603502, 0x174c1: 0xae603802, 0x174c2: 0xae604502, 0x174c3: 0xae602202,
-	0x174c4: 0xe000ac3e, 0x174c5: 0xaf007f02, 0x174c6: 0xae605f02, 0x174c7: 0xadc06002,
-	0x174c8: 0xadc06002, 0x174c9: 0xadc06002, 0x174ca: 0xae605f02, 0x174cb: 0xae605f02,
-	0x174cc: 0xae605f02, 0x174cd: 0xadc06002, 0x174ce: 0xadc06002, 0x174cf: 0xa0000000,
-	0x174d0: 0xae605f02, 0x174d1: 0xae605f02, 0x174d2: 0xae605f02, 0x174d3: 0xadc06002,
-	0x174d4: 0xadc06002, 0x174d5: 0xadc06002, 0x174d6: 0xadc06002, 0x174d7: 0xae605f02,
-	0x174d8: 0xae808002, 0x174d9: 0xadc06002, 0x174da: 0xadc06002, 0x174db: 0xae605f02,
-	0x174dc: 0xae906002, 0x174dd: 0xaea05f02, 0x174de: 0xaea05f02, 0x174df: 0xae906002,
-	0x174e0: 0xaea08102, 0x174e1: 0xaea08202, 0x174e2: 0xae906002, 0x174e3: 0x84e615ef,
-	0x174e4: 0x84e6164c, 0x174e5: 0x84e616cd, 0x174e6: 0x84e61771, 0x174e7: 0x84e61836,
-	0x174e8: 0x84e6161d, 0x174e9: 0x84e61631, 0x174ea: 0x84e616b4, 0x174eb: 0x84e61741,
-	0x174ec: 0x84e617bd, 0x174ed: 0x84e61816, 0x174ee: 0x84e6185f, 0x174ef: 0x84e6187b,
-	0x174f0: 0x00326688, 0x174f1: 0x40326620, 0x174f2: 0x0032a688, 0x174f3: 0x4032a620,
-	0x174f4: 0x40064020, 0x174f5: 0x40064220, 0x174f6: 0x00326088, 0x174f7: 0x40326020,
-	0x174fa: 0x00326c84, 0x174fb: 0x40329220,
-	0x174fc: 0x40329020, 0x174fd: 0x40329420, 0x174fe: 0x40026220,
-	// Block 0x5d4, offset 0x17500
-	0x17504: 0x40062020, 0x17505: 0xe000ac41, 0x17506: 0xe000aeb5, 0x17507: 0x40030620,
-	0x17508: 0xe000aecf, 0x17509: 0xe000aef9, 0x1750a: 0xe000af13,
-	0x1750c: 0xe000af2d, 0x1750e: 0xe000af3f, 0x1750f: 0xe000af6d,
-	0x17510: 0xe000af16, 0x17511: 0x00325288, 0x17512: 0x00325488, 0x17513: 0x00325688,
-	0x17514: 0x00325a88, 0x17515: 0x00325c88, 0x17516: 0x00326488, 0x17517: 0x00326888,
-	0x17518: 0x00326a88, 0x17519: 0x00326c88, 0x1751a: 0x00327088, 0x1751b: 0x00327288,
-	0x1751c: 0x00327688, 0x1751d: 0x00327888, 0x1751e: 0x00327a88, 0x1751f: 0x00327c88,
-	0x17520: 0x00327e88, 0x17521: 0x00328888, 0x17523: 0x00328e88,
-	0x17524: 0x00329688, 0x17525: 0x00329888, 0x17526: 0x00329a88, 0x17527: 0x00329c88,
-	0x17528: 0x00329e88, 0x17529: 0x0032a288, 0x1752a: 0xe000134f, 0x1752b: 0xe00013f2,
-	0x1752c: 0xe000aeb2, 0x1752d: 0xe000aecc, 0x1752e: 0xe000aef6, 0x1752f: 0xe000af10,
-	0x17530: 0xe000af42, 0x17531: 0x40325220, 0x17532: 0x40325420, 0x17533: 0x40325620,
-	0x17534: 0x40325a20, 0x17535: 0x40325c20, 0x17536: 0x40326420, 0x17537: 0x40326820,
-	0x17538: 0x40326a20, 0x17539: 0x40326c20, 0x1753a: 0x40327020, 0x1753b: 0x40327220,
-	0x1753c: 0x40327620, 0x1753d: 0x40327820, 0x1753e: 0x40327a20, 0x1753f: 0x40327c20,
-	// Block 0x5d5, offset 0x17540
-	0x17540: 0x40327e20, 0x17541: 0x40328820, 0x17542: 0x00328e99, 0x17543: 0x40328e20,
-	0x17544: 0x40329620, 0x17545: 0x40329820, 0x17546: 0x40329a20, 0x17547: 0x40329c20,
-	0x17548: 0x40329e20, 0x17549: 0x4032a220, 0x1754a: 0xe000134c, 0x1754b: 0xe00013ef,
-	0x1754c: 0xe000af2a, 0x1754d: 0xe000af3c, 0x1754e: 0xe000af6a, 0x1754f: 0xe0001368,
-	0x17550: 0x00325484, 0x17551: 0x00326a84, 0x17552: 0x0032988a, 0x17553: 0xf000020a,
-	0x17554: 0xf000020a, 0x17555: 0x00329a84, 0x17556: 0x00327e84, 0x17557: 0xe0001364,
-	0x17558: 0x00328688, 0x17559: 0x40328620, 0x1755a: 0x00326288, 0x1755b: 0x40326220,
-	0x1755c: 0x00325e88, 0x1755d: 0x40325e20, 0x1755e: 0x00328488, 0x1755f: 0x40328420,
-	0x17560: 0x0032a488, 0x17561: 0x4032a420, 0x17562: 0x0032e888, 0x17563: 0x4032e820,
-	0x17564: 0x0032f288, 0x17565: 0x4032f220, 0x17566: 0x0032f488, 0x17567: 0x4032f420,
-	0x17568: 0x0032fa88, 0x17569: 0x4032fa20, 0x1756a: 0x00330888, 0x1756b: 0x40330820,
-	0x1756c: 0x00330e88, 0x1756d: 0x40330e20, 0x1756e: 0x00331688, 0x1756f: 0x40331620,
-	0x17570: 0x00327084, 0x17571: 0x00328884, 0x17572: 0x00328e84, 0x17573: 0x40326e20,
-	0x17574: 0x00326a8a, 0x17575: 0x00325c84, 0x17576: 0x40092e20, 0x17577: 0x0032a888,
-	0x17578: 0x4032a820, 0x17579: 0x00328e8a, 0x1757a: 0x00328288, 0x1757b: 0x40328220,
-	0x1757c: 0x40328c20, 0x1757d: 0x00329288, 0x1757e: 0x00329088, 0x1757f: 0x00329488,
-	// Block 0x5d6, offset 0x17580
-	0x17580: 0xe00009b1, 0x17581: 0xe00009ae, 0x17582: 0xe0000a22, 0x17583: 0xe0000a1f,
-	0x17584: 0xe000aca7, 0x17585: 0xe000aca4, 0x17586: 0xe0000a2e, 0x17587: 0xe0000a2b,
-	0x17588: 0xe000acb4, 0x17589: 0xe000acb0, 0x1758a: 0xe0000a8c, 0x1758b: 0xe0000a89,
-	0x1758c: 0xe000acbb, 0x1758d: 0xe000acb8, 0x1758e: 0xe0000aa4, 0x1758f: 0xe0000aa1,
-	0x17590: 0xe0000a92, 0x17591: 0xe0000a8f, 0x17592: 0xe0000a9e, 0x17593: 0xe0000a9b,
-	0x17594: 0xe0000b55, 0x17595: 0xe0000b51, 0x17596: 0xe000acda, 0x17597: 0xe000acd6,
-	0x17598: 0xe0000b7c, 0x17599: 0xe0000b79, 0x1759a: 0xe0000b82, 0x1759b: 0xe0000b7f,
-	0x1759c: 0xe0000b39, 0x1759d: 0xe0000b35, 0x1759e: 0xe0000b8c, 0x1759f: 0xe0000b89,
-	0x175a0: 0xe0000bd0, 0x175a1: 0xe0000bcd, 0x175a2: 0xe0000c00, 0x175a3: 0xe0000bfd,
-	0x175a4: 0xe000acff, 0x175a5: 0xe000acfc, 0x175a6: 0xe0000bfa, 0x175a7: 0xe0000bf7,
-	0x175a8: 0xe0000c06, 0x175a9: 0xe0000c03, 0x175aa: 0xe0000c12, 0x175ab: 0xe0000c0f,
-	0x175ac: 0xe0000c7e, 0x175ad: 0xe0000c7b, 0x175ae: 0xe000ad1e, 0x175af: 0xe000ad1a,
-	0x175b0: 0xe000ad25, 0x175b1: 0xe000ad22, 0x175b2: 0xe000ad2b, 0x175b3: 0xe000ad28,
-	0x175b4: 0xe0000cb1, 0x175b5: 0xe0000cae, 0x175b6: 0xe000ad37, 0x175b7: 0xe000ad34,
-	0x175b8: 0xe000ad3e, 0x175b9: 0xe000ad3a, 0x175ba: 0xe0000cf2, 0x175bb: 0xe0000cef,
-	0x175bc: 0xe0000cec, 0x175bd: 0xe0000ce9, 0x175be: 0xe000ad45, 0x175bf: 0xe000ad42,
-	// Block 0x5d7, offset 0x175c0
-	0x175c0: 0xe0000d24, 0x175c1: 0xe0000d21, 0x175c2: 0xe000ad4b, 0x175c3: 0xe000ad48,
-	0x175c4: 0xe0000d69, 0x175c5: 0xe0000d66, 0x175c6: 0xe000ad5d, 0x175c7: 0xe000ad5a,
-	0x175c8: 0xe0000d87, 0x175c9: 0xe0000d84, 0x175ca: 0xe0000d81, 0x175cb: 0xe0000d7e,
-	0x175cc: 0xe000ad70, 0x175cd: 0xe000ad6c, 0x175ce: 0xe000ad78, 0x175cf: 0xe000ad74,
-	0x175d0: 0xe0000e3d, 0x175d1: 0xe0000e39, 0x175d2: 0xe000ad9c, 0x175d3: 0xe000ad98,
-	0x175d4: 0xe000add9, 0x175d5: 0xe000add6, 0x175d6: 0xe0000ead, 0x175d7: 0xe0000eaa,
-	0x175d8: 0xe0000ed6, 0x175d9: 0xe0000ed3, 0x175da: 0xe000ade5, 0x175db: 0xe000ade2,
-	0x175dc: 0xe000adec, 0x175dd: 0xe000ade8, 0x175de: 0xe0000f02, 0x175df: 0xe0000eff,
-	0x175e0: 0xe0000f41, 0x175e1: 0xe0000f3e, 0x175e2: 0xe000ae01, 0x175e3: 0xe000adfe,
-	0x175e4: 0xe000adfa, 0x175e5: 0xe000adf6, 0x175e6: 0xe0000f3a, 0x175e7: 0xe0000f36,
-	0x175e8: 0xe000ae08, 0x175e9: 0xe000ae04, 0x175ea: 0xe0000f93, 0x175eb: 0xe0000f90,
-	0x175ec: 0xe000ae0f, 0x175ed: 0xe000ae0c, 0x175ee: 0xe0000fb1, 0x175ef: 0xe0000fae,
-	0x175f0: 0xe0000fab, 0x175f1: 0xe0000fa8, 0x175f2: 0xe0001093, 0x175f3: 0xe0001090,
-	0x175f4: 0xe000109f, 0x175f5: 0xe000109c, 0x175f6: 0xe0001099, 0x175f7: 0xe0001096,
-	0x175f8: 0xe000ae22, 0x175f9: 0xe000ae1e, 0x175fa: 0xe0001046, 0x175fb: 0xe0001042,
-	0x175fc: 0xe000ae55, 0x175fd: 0xe000ae52, 0x175fe: 0xe000ae5b, 0x175ff: 0xe000ae58,
-	// Block 0x5d8, offset 0x17600
-	0x17600: 0xe00010d2, 0x17601: 0xe00010cf, 0x17602: 0xe000ae61, 0x17603: 0xe000ae5e,
-	0x17604: 0xe00010e1, 0x17605: 0xe00010de, 0x17606: 0xe00010e7, 0x17607: 0xe00010e4,
-	0x17608: 0xe000ae67, 0x17609: 0xe000ae64, 0x1760a: 0xe00010fc, 0x1760b: 0xe00010f9,
-	0x1760c: 0xe00010f6, 0x1760d: 0xe00010f3, 0x1760e: 0xe0001123, 0x1760f: 0xe0001120,
-	0x17610: 0xe0001141, 0x17611: 0xe000113e, 0x17612: 0xe000ae8b, 0x17613: 0xe000ae88,
-	0x17614: 0xe0001159, 0x17615: 0xe0001156, 0x17616: 0xe0000c15, 0x17617: 0xe0000f8d,
-	0x17618: 0xe00010db, 0x17619: 0xe0001111, 0x1761a: 0xf0000404, 0x1761b: 0xe0000f70,
-	0x1761c: 0x40300420, 0x1761d: 0x40300620, 0x1761e: 0xe0000f7f, 0x1761f: 0x402c9620,
-	0x17620: 0xe000ac5f, 0x17621: 0xe000ac5c, 0x17622: 0xe000ac4d, 0x17623: 0xe000ac4a,
-	0x17624: 0xe000ac9b, 0x17625: 0xe000ac98, 0x17626: 0xe000340b, 0x17627: 0xe0003408,
-	0x17628: 0xe000ac8f, 0x17629: 0xe000ac8c, 0x1762a: 0xe000ac95, 0x1762b: 0xe000ac92,
-	0x1762c: 0xe000aca1, 0x1762d: 0xe000ac9e, 0x1762e: 0xe000ac83, 0x1762f: 0xe000ac80,
-	0x17630: 0xe0003365, 0x17631: 0xe0003362, 0x17632: 0xe000ac77, 0x17633: 0xe000ac74,
-	0x17634: 0xe000ac7d, 0x17635: 0xe000ac7a, 0x17636: 0xe000ac89, 0x17637: 0xe000ac86,
-	0x17638: 0xe000acd3, 0x17639: 0xe000acd0, 0x1763a: 0xe000acc1, 0x1763b: 0xe000acbe,
-	0x1763c: 0xe000acc7, 0x1763d: 0xe000acc4, 0x1763e: 0xe000aced, 0x1763f: 0xe000acea,
-	// Block 0x5d9, offset 0x17640
-	0x17640: 0xe000a902, 0x17641: 0xe000a8ff, 0x17642: 0xe000ace1, 0x17643: 0xe000acde,
-	0x17644: 0xe000ace7, 0x17645: 0xe000ace4, 0x17646: 0xe000acf3, 0x17647: 0xe000acf0,
-	0x17648: 0xe000ad05, 0x17649: 0xe000ad02, 0x1764a: 0xe000ad17, 0x1764b: 0xe000ad14,
-	0x1764c: 0xe000ad8d, 0x1764d: 0xe000ad8a, 0x1764e: 0xe000ad63, 0x1764f: 0xe000ad60,
-	0x17650: 0xe000adaf, 0x17651: 0xe000adac, 0x17652: 0xe000a920, 0x17653: 0xe000a91d,
-	0x17654: 0xe000ada3, 0x17655: 0xe000ada0, 0x17656: 0xe000ada9, 0x17657: 0xe000ada6,
-	0x17658: 0xe000adb5, 0x17659: 0xe000adb2, 0x1765a: 0xe000adcd, 0x1765b: 0xe000adca,
-	0x1765c: 0xe000adbb, 0x1765d: 0xe000adb8, 0x1765e: 0xe000adc1, 0x1765f: 0xe000adbe,
-	0x17660: 0xe000adc7, 0x17661: 0xe000adc4, 0x17662: 0xe000add3, 0x17663: 0xe000add0,
-	0x17664: 0xe000ae2f, 0x17665: 0xe000ae2c, 0x17666: 0xe000ae15, 0x17667: 0xe000ae12,
-	0x17668: 0xe000ae49, 0x17669: 0xe000ae46, 0x1766a: 0xe000259c, 0x1766b: 0xe0002599,
-	0x1766c: 0xe000ae3d, 0x1766d: 0xe000ae3a, 0x1766e: 0xe000ae43, 0x1766f: 0xe000ae40,
-	0x17670: 0xe000ae4f, 0x17671: 0xe000ae4c, 0x17672: 0xe0001108, 0x17673: 0xe0001105,
-	0x17674: 0xe000ae7f, 0x17675: 0xe000ae7c, 0x17676: 0xe000ae6d, 0x17677: 0xe000ae6a,
-	0x17678: 0xe000ae73, 0x17679: 0xe000ae70, 0x1767a: 0xe0000d0a, 0x1767b: 0xe0000d07,
-	0x1767c: 0x0030d888, 0x1767d: 0x4030d820, 0x1767e: 0x00312088, 0x1767f: 0x40312020,
-	// Block 0x5da, offset 0x17680
-	0x17680: 0xe0001165, 0x17681: 0xe00011a9, 0x17682: 0xe000117d, 0x17683: 0xe00011c1,
-	0x17684: 0xe000ae8e, 0x17685: 0xe000aea0, 0x17686: 0xe000118f, 0x17687: 0xe00011d3,
-	0x17688: 0xe0001168, 0x17689: 0xe00011ac, 0x1768a: 0xe0001181, 0x1768b: 0xe00011c5,
-	0x1768c: 0xe000ae92, 0x1768d: 0xe000aea4, 0x1768e: 0xe0001193, 0x1768f: 0xe00011d7,
-	0x17690: 0xe000121a, 0x17691: 0xe0001230, 0x17692: 0xe0001228, 0x17693: 0xe000123e,
-	0x17694: 0xe000aebc, 0x17695: 0xe000aec4,
-	0x17698: 0xe000121d, 0x17699: 0xe0001233, 0x1769a: 0xe000122c, 0x1769b: 0xe0001242,
-	0x1769c: 0xe000aec0, 0x1769d: 0xe000aec8,
-	0x176a0: 0xe0001252, 0x176a1: 0xe0001296, 0x176a2: 0xe000126a, 0x176a3: 0xe00012ae,
-	0x176a4: 0xe000aed2, 0x176a5: 0xe000aee4, 0x176a6: 0xe000127c, 0x176a7: 0xe00012c0,
-	0x176a8: 0xe0001255, 0x176a9: 0xe0001299, 0x176aa: 0xe000126e, 0x176ab: 0xe00012b2,
-	0x176ac: 0xe000aed6, 0x176ad: 0xe000aee8, 0x176ae: 0xe0001280, 0x176af: 0xe00012c4,
-	0x176b0: 0xe00012fb, 0x176b1: 0xe0001319, 0x176b2: 0xe0001309, 0x176b3: 0xe0001327,
-	0x176b4: 0xe000af00, 0x176b5: 0xe000af08, 0x176b6: 0xe0001311, 0x176b7: 0xe000132f,
-	0x176b8: 0xe00012fe, 0x176b9: 0xe000131c, 0x176ba: 0xe000130d, 0x176bb: 0xe000132b,
-	0x176bc: 0xe000af04, 0x176bd: 0xe000af0c, 0x176be: 0xe0001315, 0x176bf: 0xe0001333,
-	// Block 0x5db, offset 0x176c0
-	0x176c0: 0xe000136c, 0x176c1: 0xe0001382, 0x176c2: 0xe000137a, 0x176c3: 0xe0001390,
-	0x176c4: 0xe000af1a, 0x176c5: 0xe000af22,
-	0x176c8: 0xe000136f, 0x176c9: 0xe0001385, 0x176ca: 0xe000137e, 0x176cb: 0xe0001394,
-	0x176cc: 0xe000af1e, 0x176cd: 0xe000af26,
-	0x176d0: 0xe00013ad, 0x176d1: 0xe00013bc, 0x176d2: 0xe00013b4, 0x176d3: 0xe00013ca,
-	0x176d4: 0xe000af30, 0x176d5: 0xe000af34, 0x176d6: 0xe00013b8, 0x176d7: 0xe00013d2,
-	0x176d9: 0xe00013bf, 0x176db: 0xe00013ce,
-	0x176dd: 0xe000af38, 0x176df: 0xe00013d6,
-	0x176e0: 0xe0001407, 0x176e1: 0xe000144b, 0x176e2: 0xe000141f, 0x176e3: 0xe0001463,
-	0x176e4: 0xe000af46, 0x176e5: 0xe000af58, 0x176e6: 0xe0001431, 0x176e7: 0xe0001475,
-	0x176e8: 0xe000140a, 0x176e9: 0xe000144e, 0x176ea: 0xe0001423, 0x176eb: 0xe0001467,
-	0x176ec: 0xe000af4a, 0x176ed: 0xe000af5c, 0x176ee: 0xe0001435, 0x176ef: 0xe0001479,
-	0x176f0: 0xe00011f7, 0x176f1: 0xe000aeb2, 0x176f2: 0xe000124c, 0x176f3: 0xe000aecc,
-	0x176f4: 0xe00012e4, 0x176f5: 0xe000aef6, 0x176f6: 0xe000133d, 0x176f7: 0xe000af10,
-	0x176f8: 0xe000139e, 0x176f9: 0xe000af2a, 0x176fa: 0xe00013e0, 0x176fb: 0xe000af3c,
-	0x176fc: 0xe0001499, 0x176fd: 0xe000af6a,
-	// Block 0x5dc, offset 0x17700
-	0x17700: 0xe00011a1, 0x17701: 0xe00011e5, 0x17702: 0xe0001185, 0x17703: 0xe00011c9,
-	0x17704: 0xe000ae96, 0x17705: 0xe000aea8, 0x17706: 0xe0001197, 0x17707: 0xe00011db,
-	0x17708: 0xe00011a5, 0x17709: 0xe00011e9, 0x1770a: 0xe000118a, 0x1770b: 0xe00011ce,
-	0x1770c: 0xe000ae9b, 0x1770d: 0xe000aead, 0x1770e: 0xe000119c, 0x1770f: 0xe00011e0,
-	0x17710: 0xe000128e, 0x17711: 0xe00012d2, 0x17712: 0xe0001272, 0x17713: 0xe00012b6,
-	0x17714: 0xe000aeda, 0x17715: 0xe000aeec, 0x17716: 0xe0001284, 0x17717: 0xe00012c8,
-	0x17718: 0xe0001292, 0x17719: 0xe00012d6, 0x1771a: 0xe0001277, 0x1771b: 0xe00012bb,
-	0x1771c: 0xe000aedf, 0x1771d: 0xe000aef1, 0x1771e: 0xe0001289, 0x1771f: 0xe00012cd,
-	0x17720: 0xe0001443, 0x17721: 0xe0001487, 0x17722: 0xe0001427, 0x17723: 0xe000146b,
-	0x17724: 0xe000af4e, 0x17725: 0xe000af60, 0x17726: 0xe0001439, 0x17727: 0xe000147d,
-	0x17728: 0xe0001447, 0x17729: 0xe000148b, 0x1772a: 0xe000142c, 0x1772b: 0xe0001470,
-	0x1772c: 0xe000af53, 0x1772d: 0xe000af65, 0x1772e: 0xe000143e, 0x1772f: 0xe0001482,
-	0x17730: 0xe0001201, 0x17731: 0xe000120e, 0x17732: 0xe00011fd, 0x17733: 0xe0001214,
-	0x17734: 0xe000aeb8, 0x17736: 0xe0001207, 0x17737: 0xe000120a,
-	0x17738: 0xe0001204, 0x17739: 0xe0001211, 0x1773a: 0xe00011fa, 0x1773b: 0xe000aeb5,
-	0x1773c: 0xe0001217, 0x1773d: 0x40063620, 0x1773e: 0x40326c20, 0x1773f: 0x40063620,
-	// Block 0x5dd, offset 0x17740
-	0x17740: 0x40063a20, 0x17741: 0xe00000b1, 0x17742: 0xe00012ea, 0x17743: 0xe00012f5,
-	0x17744: 0xe000aefc, 0x17746: 0xe00012ee, 0x17747: 0xe00012f1,
-	0x17748: 0xe000124f, 0x17749: 0xe000aecf, 0x1774a: 0xe00012e7, 0x1774b: 0xe000aef9,
-	0x1774c: 0xe00012f8, 0x1774d: 0xe00000b7, 0x1774e: 0xe000ac44, 0x1774f: 0xe00000ba,
-	0x17750: 0xe0001343, 0x17751: 0xe000135e, 0x17752: 0xe0001356, 0x17753: 0xe000af16,
-	0x17756: 0xe0001349, 0x17757: 0xe000135a,
-	0x17758: 0xe0001346, 0x17759: 0xe0001361, 0x1775a: 0xe0001340, 0x1775b: 0xe000af13,
-	0x1775d: 0xe00000c0, 0x1775e: 0xe000ac47, 0x1775f: 0xe00000c3,
-	0x17760: 0xe00013e6, 0x17761: 0xe0001401, 0x17762: 0xe00013f9, 0x17763: 0xe000af42,
-	0x17764: 0xe00013a4, 0x17765: 0xe00013a7, 0x17766: 0xe00013ec, 0x17767: 0xe00013fd,
-	0x17768: 0xe00013e9, 0x17769: 0xe0001404, 0x1776a: 0xe00013e3, 0x1776b: 0xe000af3f,
-	0x1776c: 0xe00013aa, 0x1776d: 0xe00000ae, 0x1776e: 0xe000ac41, 0x1776f: 0x40061e20,
-	0x17772: 0xe000149f, 0x17773: 0xe00014aa,
-	0x17774: 0xe000af70, 0x17776: 0xe00014a3, 0x17777: 0xe00014a6,
-	0x17778: 0xe00013a1, 0x17779: 0xe000af2d, 0x1777a: 0xe000149c, 0x1777b: 0xe000af6d,
-	0x1777c: 0xe00014ad, 0x1777d: 0x40062020, 0x1777e: 0x40063820,
-	// Block 0x5de, offset 0x17780
-	0x17780: 0xa0000000, 0x17781: 0xa0000000, 0x17782: 0xa0000000, 0x17783: 0xa0000000,
-	0x17784: 0xa0000000, 0x17785: 0xa0000000, 0x17786: 0xa0000000, 0x17787: 0xa0000000,
-	0x17788: 0xa0000000, 0x17789: 0x40020020, 0x1778a: 0x40020220, 0x1778b: 0x40020420,
-	0x1778c: 0x40020620, 0x1778d: 0x40020820, 0x1778e: 0xa0000000, 0x1778f: 0xa0000000,
-	0x17790: 0xa0000000, 0x17791: 0xa0000000, 0x17792: 0xa0000000, 0x17793: 0xa0000000,
-	0x17794: 0xa0000000, 0x17795: 0xa0000000, 0x17796: 0xa0000000, 0x17797: 0xa0000000,
-	0x17798: 0xa0000000, 0x17799: 0xa0000000, 0x1779a: 0xa0000000, 0x1779b: 0xa0000000,
-	0x1779c: 0xa0000000, 0x1779d: 0xa0000000, 0x1779e: 0xa0000000, 0x1779f: 0xa0000000,
-	0x177a0: 0x40021220, 0x177a1: 0x4002ba20, 0x177a2: 0x4003e020, 0x177a3: 0x4004ea20,
-	0x177a4: 0x4027de20, 0x177a5: 0x4004ec20, 0x177a6: 0x4004e620, 0x177a7: 0x4003d220,
-	0x177a8: 0x4003f420, 0x177a9: 0x4003f620, 0x177aa: 0x4004d820, 0x177ab: 0x40093820,
-	0x177ac: 0x40024020, 0x177ad: 0x40021a20, 0x177ae: 0x4002e420, 0x177af: 0x4004e220,
-	0x177b0: 0x4029cc20, 0x177b1: 0x4029ce20, 0x177b2: 0x4029d020, 0x177b3: 0x4029d220,
-	0x177b4: 0x4029d420, 0x177b5: 0x4029d620, 0x177b6: 0x4029d820, 0x177b7: 0x4029da20,
-	0x177b8: 0x4029dc20, 0x177b9: 0x4029de20, 0x177ba: 0x40026c20, 0x177bb: 0x40026220,
-	0x177bc: 0x40094020, 0x177bd: 0x40094220, 0x177be: 0x40094420, 0x177bf: 0x4002c420,
-	// Block 0x5df, offset 0x177c0
-	0x177c0: 0x4004d620, 0x177c1: 0x002bde88, 0x177c2: 0x002c0a88, 0x177c3: 0x002c3a88,
-	0x177c4: 0x002c6288, 0x177c5: 0x002c9888, 0x177c6: 0x002d0888, 0x177c7: 0x002d2288,
-	0x177c8: 0x002d6888, 0x177c9: 0x002d9a88, 0x177ca: 0x002dcc88, 0x177cb: 0x002dfe88,
-	0x177cc: 0xc0030002, 0x177cd: 0x002e8288, 0x177ce: 0x002e9e88, 0x177cf: 0x002ee288,
-	0x177d0: 0x002f2c88, 0x177d1: 0x002f5688, 0x177d2: 0x002f7a88, 0x177d3: 0x002fe688,
-	0x177d4: 0x00302c88, 0x177d5: 0x00306c88, 0x177d6: 0x0030be88, 0x177d7: 0x0030e288,
-	0x177d8: 0x0030f688, 0x177d9: 0x00310088, 0x177da: 0x00312a88, 0x177db: 0x4003f820,
-	0x177dc: 0x4004e420, 0x177dd: 0x4003fa20, 0x177de: 0x40062420, 0x177df: 0x40021620,
-	0x177e0: 0x40061e20, 0x177e1: 0xcf409852, 0x177e2: 0x402c0a20, 0x177e3: 0xcf4509b1,
-	0x177e4: 0x402c6220, 0x177e5: 0xcf4798d1, 0x177e6: 0x402d0820, 0x177e7: 0x402d2220,
-	0x177e8: 0x402d6820, 0x177e9: 0xcf4998e1, 0x177ea: 0x402dcc20, 0x177eb: 0x402dfe20,
-	0x177ec: 0xc0000002, 0x177ed: 0x402e8220, 0x177ee: 0x402e9e20, 0x177ef: 0xcf4b98f2,
-	0x177f0: 0x402f2c20, 0x177f1: 0x402f5620, 0x177f2: 0x402f7a20, 0x177f3: 0xcf509971,
-	0x177f4: 0x40302c20, 0x177f5: 0xcf529992, 0x177f6: 0x4030be20, 0x177f7: 0x4030e220,
-	0x177f8: 0x4030f620, 0x177f9: 0x40310020, 0x177fa: 0x40312a20, 0x177fb: 0x4003fc20,
-	0x177fc: 0x40094820, 0x177fd: 0x4003fe20, 0x177fe: 0x40094c20, 0x177ff: 0xa0000000,
-	// Block 0x5e0, offset 0x17800
-	0x17800: 0xe00008f5, 0x17801: 0xe00008ef, 0x17802: 0xe0000921, 0x17803: 0xe0000969,
-	0x17804: 0xe000095b, 0x17805: 0xe000094d, 0x17806: 0xe00009dd, 0x17807: 0xe0000a53,
-	0x17808: 0xe0000ae8, 0x17809: 0xe0000ae2, 0x1780a: 0xe0000af4, 0x1780b: 0xe0000b20,
-	0x1780c: 0xe0000c2b, 0x1780d: 0xe0000c25, 0x1780e: 0xe0000c37, 0x1780f: 0xe0000c43,
-	0x17810: 0xe0000ab3, 0x17811: 0xe0000d63, 0x17812: 0xe0000d9a, 0x17813: 0xe0000d94,
-	0x17814: 0xe0000da6, 0x17815: 0xe0000de6, 0x17816: 0xe0000dd2, 0x17817: 0x40093e20,
-	0x17818: 0xe0000e12, 0x17819: 0xe0000fe1, 0x1781a: 0xe0000fdb, 0x1781b: 0xe0000fed,
-	0x1781c: 0xe0000fff, 0x1781d: 0xe0001102, 0x1781e: 0x00318888, 0x1781f: 0xe0000f7b,
-	0x17820: 0xe00008f2, 0x17821: 0xe00008ec, 0x17822: 0xe000091e, 0x17823: 0xe0000966,
-	0x17824: 0xcf4398b1, 0x17825: 0xe000094a, 0x17826: 0xe00009d5, 0x17827: 0xe0000a4d,
-	0x17828: 0xe0000ae5, 0x17829: 0xe0000adf, 0x1782a: 0xe0000af1, 0x1782b: 0xe0000b1d,
-	0x1782c: 0xe0000c28, 0x1782d: 0xe0000c22, 0x1782e: 0xe0000c34, 0x1782f: 0xe0000c40,
-	0x17830: 0xe0000aad, 0x17831: 0xe0000d60, 0x17832: 0xe0000d97, 0x17833: 0xe0000d91,
-	0x17834: 0xe0000da3, 0x17835: 0xe0000de3, 0x17836: 0xcf4e9951, 0x17837: 0x40093c20,
-	0x17838: 0xe0000e0f, 0x17839: 0xe0000fde, 0x1783a: 0xe0000fd8, 0x1783b: 0xe0000fea,
-	0x1783c: 0xcf5599f1, 0x1783d: 0xe00010ff, 0x1783e: 0x40318820, 0x1783f: 0xe0001114,
-	// Block 0x5e1, offset 0x17840
-	0x17840: 0xa0000000, 0x17841: 0xa0000000, 0x17842: 0xa0000000, 0x17843: 0xa0000000,
-	0x17844: 0xa0000000, 0x17845: 0xa0000000, 0x17846: 0xa0000000, 0x17847: 0xa0000000,
-	0x17848: 0xa0000000, 0x17849: 0x40020020, 0x1784a: 0x40020220, 0x1784b: 0x40020420,
-	0x1784c: 0x40020620, 0x1784d: 0x40020820, 0x1784e: 0xa0000000, 0x1784f: 0xa0000000,
-	0x17850: 0xa0000000, 0x17851: 0xa0000000, 0x17852: 0xa0000000, 0x17853: 0xa0000000,
-	0x17854: 0xa0000000, 0x17855: 0xa0000000, 0x17856: 0xa0000000, 0x17857: 0xa0000000,
-	0x17858: 0xa0000000, 0x17859: 0xa0000000, 0x1785a: 0xa0000000, 0x1785b: 0xa0000000,
-	0x1785c: 0xa0000000, 0x1785d: 0xa0000000, 0x1785e: 0xa0000000, 0x1785f: 0xa0000000,
-	0x17860: 0x40021220, 0x17861: 0x4002ba20, 0x17862: 0x4003e020, 0x17863: 0x4004ea20,
-	0x17864: 0x4027de20, 0x17865: 0x4004ec20, 0x17866: 0x4004e620, 0x17867: 0x4003d220,
-	0x17868: 0x4003f420, 0x17869: 0x4003f620, 0x1786a: 0x4004d820, 0x1786b: 0x40093820,
-	0x1786c: 0x40024020, 0x1786d: 0x40021a20, 0x1786e: 0x4002e420, 0x1786f: 0x4004e220,
-	0x17870: 0x4029cc20, 0x17871: 0x4029ce20, 0x17872: 0x4029d020, 0x17873: 0x4029d220,
-	0x17874: 0x4029d420, 0x17875: 0x4029d620, 0x17876: 0x4029d820, 0x17877: 0x4029da20,
-	0x17878: 0x4029dc20, 0x17879: 0x4029de20, 0x1787a: 0x40026c20, 0x1787b: 0x40026220,
-	0x1787c: 0x40094020, 0x1787d: 0x40094220, 0x1787e: 0x40094420, 0x1787f: 0x4002c420,
-	// Block 0x5e2, offset 0x17880
-	0x17880: 0x4004d620, 0x17881: 0x002bde88, 0x17882: 0x002c0a88, 0x17883: 0x002c3a88,
-	0x17884: 0x002c6288, 0x17885: 0xce0a3041, 0x17886: 0x002d0888, 0x17887: 0xc51f2692,
-	0x17888: 0x002d6888, 0x17889: 0x002d9a88, 0x1788a: 0x002dcc88, 0x1788b: 0x002dfe88,
-	0x1788c: 0xc0030002, 0x1788d: 0x002e8288, 0x1788e: 0x002e9e88, 0x1788f: 0xc33f3041,
-	0x17890: 0x002f2c88, 0x17891: 0x002f5688, 0x17892: 0x002f7a88, 0x17893: 0xc3433041,
-	0x17894: 0x00302c88, 0x17895: 0x00306c88, 0x17896: 0x0030be88, 0x17897: 0x0030e288,
-	0x17898: 0x0030f688, 0x17899: 0x00310088, 0x1789a: 0x00312a88, 0x1789b: 0x4003f820,
-	0x1789c: 0x4004e420, 0x1789d: 0x4003fa20, 0x1789e: 0x40062420, 0x1789f: 0x40021620,
-	0x178a0: 0x40061e20, 0x178a1: 0x402bde20, 0x178a2: 0x402c0a20, 0x178a3: 0x402c3a20,
-	0x178a4: 0x402c6220, 0x178a5: 0xce083041, 0x178a6: 0x402d0820, 0x178a7: 0xc3372681,
-	0x178a8: 0x402d6820, 0x178a9: 0x402d9a20, 0x178aa: 0x402dcc20, 0x178ab: 0x402dfe20,
-	0x178ac: 0xc0000002, 0x178ad: 0x402e8220, 0x178ae: 0x402e9e20, 0x178af: 0xc33d3041,
-	0x178b0: 0x402f2c20, 0x178b1: 0x402f5620, 0x178b2: 0x402f7a20, 0x178b3: 0xc3413041,
-	0x178b4: 0x40302c20, 0x178b5: 0x40306c20, 0x178b6: 0x4030be20, 0x178b7: 0x4030e220,
-	0x178b8: 0x4030f620, 0x178b9: 0x40310020, 0x178ba: 0x40312a20, 0x178bb: 0x4003fc20,
-	0x178bc: 0x40094820, 0x178bd: 0x4003fe20, 0x178be: 0x40094c20, 0x178bf: 0xa0000000,
-	// Block 0x5e3, offset 0x178c0
-	0x178c0: 0xe0000d24, 0x178c1: 0xe0000d21, 0x178c2: 0xe0000d2a, 0x178c3: 0xe0000d27,
-	0x178c4: 0xe0000d69, 0x178c5: 0xe0000d66, 0x178c6: 0xe0000d7b, 0x178c7: 0xe0000d78,
-	0x178c8: 0xe0000d87, 0x178c9: 0xe0000d84, 0x178ca: 0xe0000d81, 0x178cb: 0xe0000d7e,
-	0x178cc: 0xe0000ded, 0x178cd: 0xe0000de9, 0x178ce: 0xe0000df5, 0x178cf: 0xe0000df1,
-	0x178d0: 0xe0000e3d, 0x178d1: 0xe0000e39, 0x178d2: 0xe0000e35, 0x178d3: 0xe0000e31,
-	0x178d4: 0xe0000ea7, 0x178d5: 0xe0000ea4, 0x178d6: 0xe0000ead, 0x178d7: 0xe0000eaa,
-	0x178d8: 0xe0000ed6, 0x178d9: 0xe0000ed3, 0x178da: 0xe0000ef4, 0x178db: 0xe0000ef1,
-	0x178dc: 0xe0000efb, 0x178dd: 0xe0000ef7, 0x178de: 0xe0000f02, 0x178df: 0xe0000eff,
-	0x178e0: 0xe0000f41, 0x178e1: 0xe0000f3e, 0x178e2: 0x002fe883, 0x178e3: 0x402fe820,
-	0x178e4: 0xe0000f26, 0x178e5: 0xe0000f22, 0x178e6: 0xe0000f3a, 0x178e7: 0xe0000f36,
-	0x178e8: 0xe00025c3, 0x178e9: 0xe00025c0, 0x178ea: 0xe0000f93, 0x178eb: 0xe0000f90,
-	0x178ec: 0xe0000f9f, 0x178ed: 0xe0000f9c, 0x178ee: 0xe0000fb1, 0x178ef: 0xe0000fae,
-	0x178f0: 0xe0000fab, 0x178f1: 0xe0000fa8, 0x178f2: 0xe0001093, 0x178f3: 0xe0001090,
-	0x178f4: 0xe000109f, 0x178f5: 0xe000109c, 0x178f6: 0xe0001099, 0x178f7: 0xe0001096,
-	0x178f8: 0xe0001032, 0x178f9: 0xe000102e, 0x178fa: 0xe0001046, 0x178fb: 0xe0001042,
-	0x178fc: 0xe00010a9, 0x178fd: 0xe00010a6, 0x178fe: 0xe00010af, 0x178ff: 0xe00010ac,
-	// Block 0x5e4, offset 0x17900
-	0x17900: 0xe00010d2, 0x17901: 0xe00010cf, 0x17902: 0xe00010cc, 0x17903: 0xe00010c9,
-	0x17904: 0xe00010e1, 0x17905: 0xe00010de, 0x17906: 0xe00010e7, 0x17907: 0xe00010e4,
-	0x17908: 0xe00010ed, 0x17909: 0xe00010ea, 0x1790a: 0xe00010fc, 0x1790b: 0xe00010f9,
-	0x1790c: 0xe00010f6, 0x1790d: 0xe00010f3, 0x1790e: 0xe0001123, 0x1790f: 0xe0001120,
-	0x17910: 0xe0001141, 0x17911: 0xe000113e, 0x17912: 0xe0001153, 0x17913: 0xe0001150,
-	0x17914: 0xe0001159, 0x17915: 0xe0001156, 0x17916: 0xe0000c15, 0x17917: 0xe0000f8d,
-	0x17918: 0xe00010db, 0x17919: 0xe0001111, 0x1791a: 0xf0000404, 0x1791b: 0xe0000f70,
-	0x1791c: 0x40300420, 0x1791d: 0x40300620, 0x1791e: 0xe0000f7f, 0x1791f: 0x402c9620,
-	0x17920: 0xe000099b, 0x17921: 0xe0000998, 0x17922: 0xe0000989, 0x17923: 0xe0000986,
-	0x17924: 0xe0000928, 0x17925: 0xe0000924, 0x17926: 0xe0000930, 0x17927: 0xe000092c,
-	0x17928: 0xe0000940, 0x17929: 0xe000093c, 0x1792a: 0xe0000938, 0x1792b: 0xe0000934,
-	0x1792c: 0xe00009aa, 0x1792d: 0xe00009a6, 0x1792e: 0xe0000902, 0x1792f: 0xe00008fe,
-	0x17930: 0xe000090a, 0x17931: 0xe0000906, 0x17932: 0xe000091a, 0x17933: 0xe0000916,
-	0x17934: 0xe0000912, 0x17935: 0xe000090e, 0x17936: 0xe00009a2, 0x17937: 0xe000099e,
-	0x17938: 0x002c9a83, 0x17939: 0x402c9a20, 0x1793a: 0xe0000b5c, 0x1793b: 0xe0000b59,
-	0x1793c: 0xe0000b26, 0x1793d: 0xe0000b23, 0x1793e: 0xe0000afb, 0x1793f: 0xe0000af7,
-	// Block 0x5e5, offset 0x17940
-	0x17940: 0xe0000b03, 0x17941: 0xe0000aff, 0x17942: 0xe0000b13, 0x17943: 0xe0000b0f,
-	0x17944: 0xe0000b0b, 0x17945: 0xe0000b07, 0x17946: 0xe000af86, 0x17947: 0xe000af83,
-	0x17948: 0xe0000c66, 0x17949: 0xe0000c63, 0x1794a: 0xe0000c78, 0x1794b: 0xe0000c75,
-	0x1794c: 0x002ee483, 0x1794d: 0x402ee420, 0x1794e: 0xe0000e44, 0x1794f: 0xe0000e41,
-	0x17950: 0xe0000dad, 0x17951: 0xe0000da9, 0x17952: 0xe0000db5, 0x17953: 0xe0000db1,
-	0x17954: 0xe0000dc5, 0x17955: 0xe0000dc1, 0x17956: 0xe0000dbd, 0x17957: 0xe0000db9,
-	0x17958: 0xe000375b, 0x17959: 0xe0003758, 0x1795a: 0xe0000e5d, 0x1795b: 0xe0000e59,
-	0x1795c: 0xe0000e65, 0x1795d: 0xe0000e61, 0x1795e: 0xe0000e75, 0x1795f: 0xe0000e71,
-	0x17960: 0xe0000e6d, 0x17961: 0xe0000e69, 0x17962: 0xe0003761, 0x17963: 0xe000375e,
-	0x17964: 0xe000108d, 0x17965: 0xe000108a, 0x17966: 0xe000104d, 0x17967: 0xe000104a,
-	0x17968: 0xe0001066, 0x17969: 0xe0001062, 0x1796a: 0xe000106e, 0x1796b: 0xe000106a,
-	0x1796c: 0xe000107e, 0x1796d: 0xe000107a, 0x1796e: 0xe0001076, 0x1796f: 0xe0001072,
-	0x17970: 0xe0001086, 0x17971: 0xe0001082, 0x17972: 0xe0001108, 0x17973: 0xe0001105,
-	0x17974: 0xe0001135, 0x17975: 0xe0001132, 0x17976: 0xe000112f, 0x17977: 0xe000112c,
-	0x17978: 0xe000111d, 0x17979: 0xe000111a, 0x1797a: 0xe0000d0a, 0x1797b: 0xe0000d07,
-	0x1797c: 0x0030d888, 0x1797d: 0x4030d820, 0x1797e: 0x00312088, 0x1797f: 0x40312020,
-	// Block 0x5e6, offset 0x17980
-	0x17980: 0xa0000000, 0x17981: 0xa0000000, 0x17982: 0xa0000000, 0x17983: 0xa0000000,
-	0x17984: 0xa0000000, 0x17985: 0xa0000000, 0x17986: 0xa0000000, 0x17987: 0xa0000000,
-	0x17988: 0xa0000000, 0x17989: 0x40020020, 0x1798a: 0x40020220, 0x1798b: 0x40020420,
-	0x1798c: 0x40020620, 0x1798d: 0x40020820, 0x1798e: 0xa0000000, 0x1798f: 0xa0000000,
-	0x17990: 0xa0000000, 0x17991: 0xa0000000, 0x17992: 0xa0000000, 0x17993: 0xa0000000,
-	0x17994: 0xa0000000, 0x17995: 0xa0000000, 0x17996: 0xa0000000, 0x17997: 0xa0000000,
-	0x17998: 0xa0000000, 0x17999: 0xa0000000, 0x1799a: 0xa0000000, 0x1799b: 0xa0000000,
-	0x1799c: 0xa0000000, 0x1799d: 0xa0000000, 0x1799e: 0xa0000000, 0x1799f: 0xa0000000,
-	0x179a0: 0x40021220, 0x179a1: 0x4002ba20, 0x179a2: 0x4003e020, 0x179a3: 0x4004ea20,
-	0x179a4: 0x4027de20, 0x179a5: 0x4004ec20, 0x179a6: 0x4004e620, 0x179a7: 0x4003d220,
-	0x179a8: 0x4003f420, 0x179a9: 0x4003f620, 0x179aa: 0x4004d820, 0x179ab: 0x40093820,
-	0x179ac: 0x40024020, 0x179ad: 0x40021a20, 0x179ae: 0x4002e420, 0x179af: 0x4004e220,
-	0x179b0: 0x4029cc20, 0x179b1: 0x4029ce20, 0x179b2: 0x4029d020, 0x179b3: 0x4029d220,
-	0x179b4: 0x4029d420, 0x179b5: 0x4029d620, 0x179b6: 0x4029d820, 0x179b7: 0x4029da20,
-	0x179b8: 0x4029dc20, 0x179b9: 0x4029de20, 0x179ba: 0x40026c20, 0x179bb: 0x40026220,
-	0x179bc: 0x40094020, 0x179bd: 0x40094220, 0x179be: 0x40094420, 0x179bf: 0x4002c420,
-	// Block 0x5e7, offset 0x179c0
-	0x179c0: 0x4004d620, 0x179c1: 0xcf5c9a11, 0x179c2: 0x002c0a88, 0x179c3: 0x002c3a88,
-	0x179c4: 0x002c6288, 0x179c5: 0xcf6a9a51, 0x179c6: 0x002d0888, 0x179c7: 0x002d2288,
-	0x179c8: 0x002d6888, 0x179c9: 0xcf7e9a11, 0x179ca: 0x002dcc88, 0x179cb: 0x002dfe88,
-	0x179cc: 0xc0030002, 0x179cd: 0xcf889a11, 0x179ce: 0xcf929a11, 0x179cf: 0xcf9c9a11,
-	0x179d0: 0x002f2c88, 0x179d1: 0x002f5688, 0x179d2: 0x002f7a88, 0x179d3: 0x002fe688,
-	0x179d4: 0x00302c88, 0x179d5: 0xcfab9b11, 0x179d6: 0x0030be88, 0x179d7: 0x0030e288,
-	0x179d8: 0x0030f688, 0x179d9: 0x00310088, 0x179da: 0x00312a88, 0x179db: 0x4003f820,
-	0x179dc: 0x4004e420, 0x179dd: 0x4003fa20, 0x179de: 0x40062420, 0x179df: 0x40021620,
-	0x179e0: 0x40061e20, 0x179e1: 0xcf579a11, 0x179e2: 0x402c0a20, 0x179e3: 0x402c3a20,
-	0x179e4: 0x402c6220, 0x179e5: 0xcf619a51, 0x179e6: 0x402d0820, 0x179e7: 0x402d2220,
-	0x179e8: 0x402d6820, 0x179e9: 0xcf799a11, 0x179ea: 0x402dcc20, 0x179eb: 0x402dfe20,
-	0x179ec: 0xc0000002, 0x179ed: 0xcf839a11, 0x179ee: 0xcf8d9a11, 0x179ef: 0xcf979a11,
-	0x179f0: 0x402f2c20, 0x179f1: 0x402f5620, 0x179f2: 0x402f7a20, 0x179f3: 0x402fe620,
-	0x179f4: 0x40302c20, 0x179f5: 0xcfa19b11, 0x179f6: 0x4030be20, 0x179f7: 0x4030e220,
-	0x179f8: 0x4030f620, 0x179f9: 0x40310020, 0x179fa: 0x40312a20, 0x179fb: 0x4003fc20,
-	0x179fc: 0x40094820, 0x179fd: 0x4003fe20, 0x179fe: 0x40094c20, 0x179ff: 0xa0000000,
-	// Block 0x5e8, offset 0x17a00
-	0x17a00: 0x002bde63, 0x17a01: 0x002bde23, 0x17a02: 0xe0000921, 0x17a03: 0xe0000969,
-	0x17a04: 0xe000095b, 0x17a05: 0xe000094d, 0x17a06: 0xe00009dd, 0x17a07: 0xe0000a53,
-	0x17a08: 0x002c9863, 0x17a09: 0x002c9823, 0x17a0a: 0xcf769ae1, 0x17a0b: 0xe0000b20,
-	0x17a0c: 0x002d9a63, 0x17a0d: 0x002d9a23, 0x17a0e: 0xe0000c37, 0x17a0f: 0xe0000c43,
-	0x17a10: 0xe0000ab3, 0x17a11: 0xe0000d63, 0x17a12: 0x002ee263, 0x17a13: 0x002ee223,
-	0x17a14: 0xe0000da6, 0x17a15: 0xe0000de6, 0x17a16: 0xe0000dd2, 0x17a17: 0x40093e20,
-	0x17a18: 0xe0000e12, 0x17a19: 0x00306c63, 0x17a1a: 0x00306c23, 0x17a1b: 0xe0000fed,
-	0x17a1c: 0x00306d23, 0x17a1d: 0xe0001102, 0x17a1e: 0x00318888, 0x17a1f: 0xe0000f7b,
-	0x17a20: 0x402bde1f, 0x17a21: 0x402bde1d, 0x17a22: 0xe000091e, 0x17a23: 0xe0000966,
-	0x17a24: 0xe0000958, 0x17a25: 0xe000094a, 0x17a26: 0xe00009d5, 0x17a27: 0xe0000a4d,
-	0x17a28: 0x402c981f, 0x17a29: 0x402c981d, 0x17a2a: 0xcf739ae1, 0x17a2b: 0xe0000b1d,
-	0x17a2c: 0x402d9a1f, 0x17a2d: 0x402d9a1d, 0x17a2e: 0xe0000c34, 0x17a2f: 0xe0000c40,
-	0x17a30: 0xe0000aad, 0x17a31: 0xe0000d60, 0x17a32: 0x402ee21f, 0x17a33: 0x402ee21d,
-	0x17a34: 0xe0000da3, 0x17a35: 0xe0000de3, 0x17a36: 0xe0000dcf, 0x17a37: 0x40093c20,
-	0x17a38: 0xe0000e0f, 0x17a39: 0x40306c1f, 0x17a3a: 0x40306c1d, 0x17a3b: 0xe0000fea,
-	0x17a3c: 0x40306c25, 0x17a3d: 0xe00010ff, 0x17a3e: 0x40318820, 0x17a3f: 0xe0001114,
-	// Block 0x5e9, offset 0x17a40
-	0x17a40: 0x002bde03, 0x17a41: 0x402bde1c, 0x17a42: 0xe00008fb, 0x17a43: 0xe00008f8,
-	0x17a44: 0xe000097d, 0x17a45: 0xe000097a, 0x17a46: 0xe0000a38, 0x17a47: 0xe0000a35,
-	0x17a48: 0xe0000a3e, 0x17a49: 0xe0000a3b, 0x17a4a: 0xe0000a4a, 0x17a4b: 0xe0000a47,
-	0x17a4c: 0xe0000a44, 0x17a4d: 0xe0000a41, 0x17a4e: 0xe0000a86, 0x17a4f: 0xe0000a83,
-	0x17a50: 0xe0000aaa, 0x17a51: 0xe0000aa7, 0x17a52: 0x002c9803, 0x17a53: 0x402c981c,
-	0x17a54: 0xe0000aee, 0x17a55: 0xe0000aeb, 0x17a56: 0xe0000b2c, 0x17a57: 0xe0000b29,
-	0x17a58: 0xe0000b40, 0x17a59: 0xe0000b3d, 0x17a5a: 0x002c9843, 0x17a5b: 0x402c981e,
-	0x17a5c: 0xe0000bb8, 0x17a5d: 0xe0000bb5, 0x17a5e: 0xe0000bb2, 0x17a5f: 0xe0000baf,
-	0x17a60: 0xe0000bc4, 0x17a61: 0xe0000bc1, 0x17a62: 0xe0000bca, 0x17a63: 0xe0000bc7,
-	0x17a64: 0xe0000bee, 0x17a65: 0xe0000beb, 0x17a66: 0xe0000c1b, 0x17a67: 0xe0000c18,
-	0x17a68: 0xe0000c51, 0x17a69: 0xe0000c4e, 0x17a6a: 0x002d9a03, 0x17a6b: 0x402d9a1c,
-	0x17a6c: 0xe0000c31, 0x17a6d: 0xe0000c2e, 0x17a6e: 0xe0000c5a, 0x17a6f: 0xe0000c57,
-	0x17a70: 0xe0000c54, 0x17a71: 0x402da220, 0x17a72: 0xf0000a0a, 0x17a73: 0xf0000404,
-	0x17a74: 0xe0000c8a, 0x17a75: 0xe0000c87, 0x17a76: 0xe0000c9f, 0x17a77: 0xe0000c9c,
-	0x17a78: 0x402f7220, 0x17a79: 0xe0000ccc, 0x17a7a: 0xe0000cc9, 0x17a7b: 0xe0000cd8,
-	0x17a7c: 0xe0000cd5, 0x17a7d: 0xe0000cd2, 0x17a7e: 0xe0000ccf, 0x17a7f: 0xe0000d04,
-	// Block 0x5ea, offset 0x17a80
-	0x17a80: 0xe0000cfe, 0x17a81: 0xe0000cf8, 0x17a82: 0xe0000cf5, 0x17a83: 0x002e9e23,
-	0x17a84: 0x402e9e1d, 0x17a85: 0xe0000d6f, 0x17a86: 0xe0000d6c, 0x17a87: 0x002e9e43,
-	0x17a88: 0x402e9e1e, 0x17a89: 0xf0000404, 0x17a8a: 0x002eda88, 0x17a8b: 0x402eda20,
-	0x17a8c: 0x002ee203, 0x17a8d: 0x402ee21c, 0x17a8e: 0xe0000da0, 0x17a8f: 0xe0000d9d,
-	0x17a90: 0xe0000de0, 0x17a91: 0xe0000ddd, 0x17a92: 0xe0000e93, 0x17a93: 0xe0000e8f,
-	0x17a94: 0xe0000eca, 0x17a95: 0xe0000ec7, 0x17a96: 0xe0000edc, 0x17a97: 0xe0000ed9,
-	0x17a98: 0xe0000ed0, 0x17a99: 0xe0000ecd, 0x17a9a: 0xe0000f1f, 0x17a9b: 0xe0000f1c,
-	0x17a9c: 0xe0000f2d, 0x17a9d: 0xe0000f2a, 0x17a9e: 0xe0000f47, 0x17a9f: 0xe0000f44,
-	0x17aa0: 0xe0000f33, 0x17aa1: 0xe0000f30, 0x17aa2: 0xe0000f99, 0x17aa3: 0xe0000f96,
-	0x17aa4: 0xe0000f8a, 0x17aa5: 0xe0000f87, 0x17aa6: 0x00303688, 0x17aa7: 0x40303620,
-	0x17aa8: 0xe000102b, 0x17aa9: 0xe0001028, 0x17aaa: 0x00306c03, 0x17aab: 0x40306c1c,
-	0x17aac: 0xe0000fe7, 0x17aad: 0xe0000fe4, 0x17aae: 0xe0000ff9, 0x17aaf: 0xe0000ff6,
-	0x17ab0: 0xe0001025, 0x17ab1: 0xe0001022, 0x17ab2: 0xe0001039, 0x17ab3: 0xe0001036,
-	0x17ab4: 0xe00010d8, 0x17ab5: 0xe00010d5, 0x17ab6: 0xe000110e, 0x17ab7: 0xe000110b,
-	0x17ab8: 0xe0001117, 0x17ab9: 0xe000113b, 0x17aba: 0xe0001138, 0x17abb: 0xe000114d,
-	0x17abc: 0xe000114a, 0x17abd: 0xe0001147, 0x17abe: 0xe0001144, 0x17abf: 0xe0000f64,
-	// Block 0x5eb, offset 0x17ac0
-	0x17ac0: 0x40321220, 0x17ac1: 0x40321a20, 0x17ac2: 0x40322220, 0x17ac3: 0x40322a20,
-	0x17ac4: 0xe0000ad5, 0x17ac5: 0xe0000ad1, 0x17ac6: 0xe0000acd, 0x17ac7: 0xf0000a0a,
-	0x17ac8: 0xf000040a, 0x17ac9: 0xf0000404, 0x17aca: 0xf0000a0a, 0x17acb: 0xf000040a,
-	0x17acc: 0xf0000404, 0x17acd: 0x002bde43, 0x17ace: 0x402bde1e, 0x17acf: 0x002d9a43,
-	0x17ad0: 0x402d9a1e, 0x17ad1: 0x002ee243, 0x17ad2: 0x402ee21e, 0x17ad3: 0x00306c43,
-	0x17ad4: 0x40306c1e, 0x17ad5: 0x00306ca3, 0x17ad6: 0x40306c21, 0x17ad7: 0x00306cc3,
-	0x17ad8: 0x40306c22, 0x17ad9: 0x00306ce3, 0x17ada: 0x40306c23, 0x17adb: 0x00306d03,
-	0x17adc: 0x40306c24, 0x17add: 0x402cae20, 0x17ade: 0xe000b0e0, 0x17adf: 0xe000b0dd,
-	0x17ae0: 0xe000b0e6, 0x17ae1: 0xe000b0e3, 0x17ae2: 0xe00009f4, 0x17ae3: 0xe00009ef,
-	0x17ae4: 0x002d3a88, 0x17ae5: 0x402d3a20, 0x17ae6: 0xe0000bbe, 0x17ae7: 0xe0000bbb,
-	0x17ae8: 0xe0000c99, 0x17ae9: 0xe0000c96, 0x17aea: 0xe0000e20, 0x17aeb: 0xe0000e1d,
-	0x17aec: 0xe000b13a, 0x17aed: 0xe000b137, 0x17aee: 0xe0001162, 0x17aef: 0xe000115f,
-	0x17af0: 0xe0000c8d, 0x17af1: 0xf0000a0a, 0x17af2: 0xf000040a, 0x17af3: 0xf0000404,
-	0x17af4: 0xe0000bac, 0x17af5: 0xe0000ba9, 0x17af6: 0x002d7888, 0x17af7: 0x00319488,
-	0x17af8: 0x002e9e63, 0x17af9: 0x402e9e1f, 0x17afa: 0xe000b0f8, 0x17afb: 0xe000b0f5,
-	0x17afc: 0xe00009ea, 0x17afd: 0xe00009e5, 0x17afe: 0xe0000e19, 0x17aff: 0xe0000e15,
-	// Block 0x5ec, offset 0x17b00
-	0x17b00: 0xe000098f, 0x17b01: 0xe000098c, 0x17b02: 0xe0000995, 0x17b03: 0xe0000992,
-	0x17b04: 0xe0000b62, 0x17b05: 0xe0000b5f, 0x17b06: 0xe0000b68, 0x17b07: 0xe0000b65,
-	0x17b08: 0xe0000c6c, 0x17b09: 0xe0000c69, 0x17b0a: 0xe0000c72, 0x17b0b: 0xe0000c6f,
-	0x17b0c: 0xe0000e4a, 0x17b0d: 0xe0000e47, 0x17b0e: 0xe0000e50, 0x17b0f: 0xe0000e4d,
-	0x17b10: 0xe0000ee8, 0x17b11: 0xe0000ee5, 0x17b12: 0xe0000eee, 0x17b13: 0xe0000eeb,
-	0x17b14: 0xe0001053, 0x17b15: 0xe0001050, 0x17b16: 0xe0001059, 0x17b17: 0xe0001056,
-	0x17b18: 0xe0000f61, 0x17b19: 0xe0000f5e, 0x17b1a: 0xe0000fa5, 0x17b1b: 0xe0000fa2,
-	0x17b1c: 0x00312288, 0x17b1d: 0x40312220, 0x17b1e: 0xe0000bf4, 0x17b1f: 0xe0000bf1,
-	0x17b20: 0x002ebc88, 0x17b21: 0x402c8c20, 0x17b22: 0x002f2288, 0x17b23: 0x402f2220,
-	0x17b24: 0x00314088, 0x17b25: 0x40314020, 0x17b26: 0xe000096f, 0x17b27: 0xe000096c,
-	0x17b28: 0xe0000b32, 0x17b29: 0xe0000b2f, 0x17b2a: 0xe000b128, 0x17b2b: 0xe000b125,
-	0x17b2c: 0xe000b12e, 0x17b2d: 0xe000b12b, 0x17b2e: 0xe0000e04, 0x17b2f: 0xe0000e01,
-	0x17b30: 0xe000b134, 0x17b31: 0xe000b131, 0x17b32: 0xe0001129, 0x17b33: 0xe0001126,
-	0x17b34: 0x402e5e20, 0x17b35: 0x402ed020, 0x17b36: 0x40305a20, 0x17b37: 0x402dd420,
-	0x17b38: 0xe0000abf, 0x17b39: 0xe0000ec4, 0x17b3a: 0x002be888, 0x17b3b: 0x002c4488,
-	0x17b3c: 0x402c4420, 0x17b3d: 0x002e3888, 0x17b3e: 0x00303e88, 0x17b3f: 0x402ffc20,
-	// Block 0x5ed, offset 0x17b40
-	0x17b40: 0xe00009b1, 0x17b41: 0xe00009ae, 0x17b42: 0xe0000a22, 0x17b43: 0xe0000a1f,
-	0x17b44: 0xe0000a28, 0x17b45: 0xe0000a25, 0x17b46: 0xe0000a2e, 0x17b47: 0xe0000a2b,
-	0x17b48: 0xe0000a5a, 0x17b49: 0xe0000a56, 0x17b4a: 0xe0000a8c, 0x17b4b: 0xe0000a89,
-	0x17b4c: 0xe0000a98, 0x17b4d: 0xe0000a95, 0x17b4e: 0xe0000aa4, 0x17b4f: 0xe0000aa1,
-	0x17b50: 0xe0000a92, 0x17b51: 0xe0000a8f, 0x17b52: 0xe0000a9e, 0x17b53: 0xe0000a9b,
-	0x17b54: 0xe000b110, 0x17b55: 0xe000b10d, 0x17b56: 0xe000b10a, 0x17b57: 0xe000b107,
-	0x17b58: 0xe0000b7c, 0x17b59: 0xe0000b79, 0x17b5a: 0xe0000b82, 0x17b5b: 0xe0000b7f,
-	0x17b5c: 0xe0000b39, 0x17b5d: 0xe0000b35, 0x17b5e: 0xe0000b8c, 0x17b5f: 0xe0000b89,
-	0x17b60: 0xe0000bd0, 0x17b61: 0xe0000bcd, 0x17b62: 0xe0000c00, 0x17b63: 0xe0000bfd,
-	0x17b64: 0xe0000c0c, 0x17b65: 0xe0000c09, 0x17b66: 0xe0000bfa, 0x17b67: 0xe0000bf7,
-	0x17b68: 0xe0000c06, 0x17b69: 0xe0000c03, 0x17b6a: 0xe0000c12, 0x17b6b: 0xe0000c0f,
-	0x17b6c: 0xe0000c7e, 0x17b6d: 0xe0000c7b, 0x17b6e: 0xe000b116, 0x17b6f: 0xe000b113,
-	0x17b70: 0xe0000c93, 0x17b71: 0xe0000c90, 0x17b72: 0xe0000cab, 0x17b73: 0xe0000ca8,
-	0x17b74: 0xe0000cb1, 0x17b75: 0xe0000cae, 0x17b76: 0xe0000cde, 0x17b77: 0xe0000cdb,
-	0x17b78: 0xe0000ce5, 0x17b79: 0xe0000ce1, 0x17b7a: 0xe0000cf2, 0x17b7b: 0xe0000cef,
-	0x17b7c: 0xe0000cec, 0x17b7d: 0xe0000ce9, 0x17b7e: 0x002e8223, 0x17b7f: 0x402e821d,
-	// Block 0x5ee, offset 0x17b80
-	0x17b80: 0xe0000d24, 0x17b81: 0xe0000d21, 0x17b82: 0xe0000d2a, 0x17b83: 0xe0000d27,
-	0x17b84: 0xe0000d69, 0x17b85: 0xe0000d66, 0x17b86: 0xe0000d7b, 0x17b87: 0xe0000d78,
-	0x17b88: 0xe0000d87, 0x17b89: 0xe0000d84, 0x17b8a: 0xe0000d81, 0x17b8b: 0xe0000d7e,
-	0x17b8c: 0xe000b146, 0x17b8d: 0xe000b143, 0x17b8e: 0xe0000df5, 0x17b8f: 0xe0000df1,
-	0x17b90: 0xe000b122, 0x17b91: 0xe000b11f, 0x17b92: 0xe000b11c, 0x17b93: 0xe000b119,
-	0x17b94: 0xe0000ea7, 0x17b95: 0xe0000ea4, 0x17b96: 0xe0000ead, 0x17b97: 0xe0000eaa,
-	0x17b98: 0xe0000ed6, 0x17b99: 0xe0000ed3, 0x17b9a: 0xe0000ef4, 0x17b9b: 0xe0000ef1,
-	0x17b9c: 0xe0000efb, 0x17b9d: 0xe0000ef7, 0x17b9e: 0xe0000f02, 0x17b9f: 0xe0000eff,
-	0x17ba0: 0xe0000f41, 0x17ba1: 0xe0000f3e, 0x17ba2: 0xe0000f53, 0x17ba3: 0xe0000f50,
-	0x17ba4: 0xe0000f26, 0x17ba5: 0xe0000f22, 0x17ba6: 0xe0000f3a, 0x17ba7: 0xe0000f36,
-	0x17ba8: 0xe0000f5a, 0x17ba9: 0xe0000f56, 0x17baa: 0xe0000f93, 0x17bab: 0xe0000f90,
-	0x17bac: 0xe0000f9f, 0x17bad: 0xe0000f9c, 0x17bae: 0xe0000fb1, 0x17baf: 0xe0000fae,
-	0x17bb0: 0xe0000fab, 0x17bb1: 0xe0000fa8, 0x17bb2: 0xe0001093, 0x17bb3: 0xe0001090,
-	0x17bb4: 0xe000109f, 0x17bb5: 0xe000109c, 0x17bb6: 0xe0001099, 0x17bb7: 0xe0001096,
-	0x17bb8: 0xe000b164, 0x17bb9: 0xe000b161, 0x17bba: 0xe000b15e, 0x17bbb: 0xe000b15b,
-	0x17bbc: 0xe00010a9, 0x17bbd: 0xe00010a6, 0x17bbe: 0xe00010af, 0x17bbf: 0xe00010ac,
-	// Block 0x5ef, offset 0x17bc0
-	0x17bc0: 0xe00010d2, 0x17bc1: 0xe00010cf, 0x17bc2: 0xe00010cc, 0x17bc3: 0xe00010c9,
-	0x17bc4: 0xe00010e1, 0x17bc5: 0xe00010de, 0x17bc6: 0xe00010e7, 0x17bc7: 0xe00010e4,
-	0x17bc8: 0xe00010ed, 0x17bc9: 0xe00010ea, 0x17bca: 0xe00010fc, 0x17bcb: 0xe00010f9,
-	0x17bcc: 0xe00010f6, 0x17bcd: 0xe00010f3, 0x17bce: 0xe0001123, 0x17bcf: 0xe0001120,
-	0x17bd0: 0xe0001141, 0x17bd1: 0xe000113e, 0x17bd2: 0xe0001153, 0x17bd3: 0xe0001150,
-	0x17bd4: 0xe0001159, 0x17bd5: 0xe0001156, 0x17bd6: 0xe0000c15, 0x17bd7: 0xe0000f8d,
-	0x17bd8: 0xe00010db, 0x17bd9: 0xe0001111, 0x17bda: 0xf0000404, 0x17bdb: 0xe0000f70,
-	0x17bdc: 0x40300420, 0x17bdd: 0x40300620, 0x17bde: 0xe0000f7f, 0x17bdf: 0x402c9620,
-	0x17be0: 0xe000099b, 0x17be1: 0xe0000998, 0x17be2: 0xe0000989, 0x17be3: 0xe0000986,
-	0x17be4: 0xe000b0f2, 0x17be5: 0xe000b0ef, 0x17be6: 0xe000b104, 0x17be7: 0xe000b101,
-	0x17be8: 0xe0000940, 0x17be9: 0xe000093c, 0x17bea: 0xe0000938, 0x17beb: 0xe0000934,
-	0x17bec: 0xe00009aa, 0x17bed: 0xe00009a6, 0x17bee: 0xe000b0ec, 0x17bef: 0xe000b0e9,
-	0x17bf0: 0xe000b0fe, 0x17bf1: 0xe000b0fb, 0x17bf2: 0xe000091a, 0x17bf3: 0xe0000916,
-	0x17bf4: 0xe0000912, 0x17bf5: 0xe000090e, 0x17bf6: 0xe00009a2, 0x17bf7: 0xe000099e,
-	0x17bf8: 0xe0000b6e, 0x17bf9: 0xe0000b6b, 0x17bfa: 0xe0000b5c, 0x17bfb: 0xe0000b59,
-	0x17bfc: 0xe0000b26, 0x17bfd: 0xe0000b23, 0x17bfe: 0x002c98c3, 0x17bff: 0x402c9822,
-	// Block 0x5f0, offset 0x17c00
-	0x17c00: 0x002c9903, 0x17c01: 0x402c9824, 0x17c02: 0xe0000b13, 0x17c03: 0xe0000b0f,
-	0x17c04: 0xe0000b0b, 0x17c05: 0xe0000b07, 0x17c06: 0xe0000b75, 0x17c07: 0xe0000b71,
-	0x17c08: 0xe0000c66, 0x17c09: 0xe0000c63, 0x17c0a: 0xe0000c78, 0x17c0b: 0xe0000c75,
-	0x17c0c: 0xe0000e84, 0x17c0d: 0xe0000e81, 0x17c0e: 0xe0000e44, 0x17c0f: 0xe0000e41,
-	0x17c10: 0xe000b140, 0x17c11: 0xe000b13d, 0x17c12: 0xe000b152, 0x17c13: 0xe000b14f,
-	0x17c14: 0xe0000dc5, 0x17c15: 0xe0000dc1, 0x17c16: 0xe0000dbd, 0x17c17: 0xe0000db9,
-	0x17c18: 0xe0000e8b, 0x17c19: 0xe0000e87, 0x17c1a: 0xe000b14c, 0x17c1b: 0xe000b149,
-	0x17c1c: 0xe000b158, 0x17c1d: 0xe000b155, 0x17c1e: 0xe0000e75, 0x17c1f: 0xe0000e71,
-	0x17c20: 0xe0000e6d, 0x17c21: 0xe0000e69, 0x17c22: 0xe0000e7d, 0x17c23: 0xe0000e79,
-	0x17c24: 0xe000108d, 0x17c25: 0xe000108a, 0x17c26: 0xe000104d, 0x17c27: 0xe000104a,
-	0x17c28: 0xe000b16a, 0x17c29: 0xe000b167, 0x17c2a: 0xe000b170, 0x17c2b: 0xe000b16d,
-	0x17c2c: 0xe000107e, 0x17c2d: 0xe000107a, 0x17c2e: 0xe0001076, 0x17c2f: 0xe0001072,
-	0x17c30: 0xe0001086, 0x17c31: 0xe0001082, 0x17c32: 0xe0001108, 0x17c33: 0xe0001105,
-	0x17c34: 0xe0001135, 0x17c35: 0xe0001132, 0x17c36: 0xe000112f, 0x17c37: 0xe000112c,
-	0x17c38: 0xe000111d, 0x17c39: 0xe000111a, 0x17c3a: 0xe0000d0a, 0x17c3b: 0xe0000d07,
-	0x17c3c: 0x0030d888, 0x17c3d: 0x4030d820, 0x17c3e: 0x00312088, 0x17c3f: 0x40312020,
-	// Block 0x5f1, offset 0x17c40
-	0x17c40: 0x6d200220, 0x17c41: 0x6c16fe20, 0x17c42: 0x6d0bdc20, 0x17c43: 0x6d1b3420,
-	0x17c44: 0x6d0bd620, 0x17c45: 0x6cc58020, 0x17c46: 0x6c6ece20, 0x17c47: 0xe000240a,
-	0x17c48: 0x6c29ae20, 0x17c49: 0x6c29ca20, 0x17c4a: 0x6c100220, 0x17c4b: 0x6c6b9220,
-	0x17c4c: 0x6cff9e20, 0x17c4d: 0x6cffa020, 0x17c4e: 0x6cf39620, 0x17c4f: 0x6cedd020,
-	0x17c50: 0x6cedd220, 0x17c51: 0x6cf39820, 0x17c52: 0x6cd8fa20, 0x17c53: 0x6d10c420,
-	0x17c54: 0x6c630820, 0x17c55: 0x6c616620, 0x17c56: 0x6d036620, 0x17c57: 0x6d036820,
-	0x17c58: 0x6cd49220, 0x17c59: 0x6cdbee20, 0x17c5b: 0x6cc64c20,
-	0x17c5c: 0x6cc63420, 0x17c5d: 0x6d266620, 0x17c5e: 0x6c271e20, 0x17c5f: 0x2ca22083,
-	0x17c60: 0x6c9f8820, 0x17c61: 0x6cd74220, 0x17c62: 0x6cd74420, 0x17c63: 0x6c0c6c20,
-	0x17c64: 0x6d2ff820, 0x17c65: 0x6d2ff220, 0x17c66: 0x6cbb3620, 0x17c67: 0x6ca96420,
-	0x17c68: 0x6cc38820, 0x17c69: 0xe000243f, 0x17c6a: 0xe0002442, 0x17c6b: 0x6ca2c020,
-	0x17c6c: 0x6cd2f220, 0x17c6d: 0x6cd40820, 0x17c6e: 0x6cd30220, 0x17c6f: 0x6cd86820,
-	0x17c70: 0x6cd86a20, 0x17c71: 0x6c429620, 0x17c72: 0x6cee4220, 0x17c73: 0xe0002451,
-	0x17c74: 0x6cee4020, 0x17c75: 0xe000244e, 0x17c76: 0x6cc5ba20, 0x17c77: 0x6cc60a20,
-	0x17c78: 0x02ff1684, 0x17c79: 0x03000484, 0x17c7a: 0x6d24ba20, 0x17c7b: 0x6d24bc20,
-	0x17c7c: 0x6cc78020, 0x17c7d: 0x6c719e20, 0x17c7e: 0x6c12be20, 0x17c7f: 0x6c12c220,
-	// Block 0x5f2, offset 0x17c80
-	0x17c80: 0x6c12c420, 0x17c81: 0x6c562e20, 0x17c82: 0x6d199a20, 0x17c83: 0x6cf76620,
-	0x17c84: 0x6cf94e20, 0x17c85: 0x6c673620, 0x17c86: 0x0313a484, 0x17c87: 0xe000246c,
-	0x17c88: 0x6d0d2e20, 0x17c89: 0x6c077420, 0x17c8a: 0xe000246f, 0x17c8b: 0x6c17e220,
-	0x17c8c: 0x6c21a220, 0x17c8d: 0x6c21a620, 0x17c8e: 0x6c21f020, 0x17c8f: 0x6c3f9a20,
-	0x17c90: 0x6c6c7c20, 0x17c91: 0x6c16dc20, 0x17c92: 0x6c16de20, 0x17c93: 0x6d2f1620,
-	0x17c94: 0x6c9ae820, 0x17c95: 0xe000247b, 0x17c96: 0x6c3f9c20, 0x17c97: 0x6d222020,
-	0x17c98: 0x6cbe6a20, 0x17c99: 0x6cef7e20, 0x17c9a: 0x6d13ae20, 0x17c9b: 0x6c3c9820,
-	0x17c9c: 0x6c3a3020, 0x17c9d: 0x6cd29c20, 0x17c9e: 0xe0002481, 0x17c9f: 0x6cd29e20,
-	0x17ca0: 0x6cd2a020, 0x17ca1: 0xe0002484, 0x17ca2: 0x6c96ae20, 0x17ca3: 0x6c476c20,
-	0x17ca4: 0x6c4b2420, 0x17ca5: 0x6d220e20, 0x17ca6: 0x6ca7ce20, 0x17ca7: 0x6c920a20,
-	0x17ca8: 0x6c975620, 0x17ca9: 0x6c5a4020, 0x17caa: 0x6c9e4820, 0x17cab: 0x6cb6bc20,
-	0x17cac: 0x6cb6be20, 0x17cad: 0x6c1bd020, 0x17cae: 0x6c1bd220, 0x17caf: 0x6c902820,
-	0x17cb0: 0x6c902a20, 0x17cb1: 0x6c4ab620, 0x17cb2: 0x6c4ab420, 0x17cb3: 0x2c4a3883,
-	// Block 0x5f3, offset 0x17cc0
-	0x17cc0: 0x2d13b686, 0x17cc1: 0x2c4bb683, 0x17cc2: 0x2d3a5283, 0x17cc3: 0x2cb1dc83,
-	0x17cc4: 0x2d15aa84, 0x17cc5: 0x2c73be83, 0x17cc6: 0x2c37b486, 0x17cc7: 0x2ce7e283,
-	0x17cc8: 0x2cc55a84, 0x17cc9: 0x2c372e83, 0x17cca: 0x2cc80e83, 0x17ccb: 0x2c030a84,
-	0x17ccc: 0x2c6ed083, 0x17ccd: 0x2c9d1683, 0x17cce: 0x2c0d9e83, 0x17ccf: 0x2c610c83,
-	0x17cd0: 0x2cb9ec83, 0x17cd1: 0x2c29b083, 0x17cd2: 0x2c855c83, 0x17cd3: 0x2c059c83,
-	0x17cd4: 0x2c08aa83, 0x17cd5: 0x2c397e83, 0x17cd6: 0x2cf83483, 0x17cd7: 0x2cd22485,
-	0x17cd8: 0x2c100483, 0x17cd9: 0x2c6a4e83, 0x17cda: 0x2c16e083, 0x17cdb: 0x2cd7b483,
-	0x17cdc: 0x2d200483, 0x17cdd: 0x2c79c883, 0x17cde: 0x2ceed683, 0x17cdf: 0x2ce91084,
-	0x17ce0: 0x2cd2e283, 0x17ce1: 0x2d34ca83, 0x17ce2: 0x2cdba683, 0x17ce3: 0x2cf55a83,
-	0x17ce4: 0x2c26e483, 0x17ce5: 0x2caa6e84, 0x17ce6: 0x2d3f6883, 0x17ce7: 0x2c9db683,
-	0x17ce8: 0x2c25b083, 0x17ce9: 0x2cffa283, 0x17cea: 0x2d1edc83, 0x17ceb: 0x2cd18a83,
-	0x17cec: 0x2c17fa83, 0x17ced: 0x2cccb083, 0x17cee: 0x2c1fd683, 0x17cef: 0x2c454a83,
-	0x17cf0: 0x2c610e83, 0x17cf1: 0x2c6c1a83, 0x17cf2: 0x2c420a83, 0x17cf3: 0x2d107e83,
-	0x17cf4: 0x2c4a0283, 0x17cf5: 0x2d1ac083, 0x17cf6: 0x2c45cc83, 0x17cf7: 0x2d163c83,
-	0x17cf8: 0x2c454c83, 0x17cf9: 0x2c616883, 0x17cfa: 0x2cccb283, 0x17cfb: 0x2c1bd483,
-	0x17cfc: 0x2d02a283, 0x17cfd: 0x2c436083, 0x17cfe: 0x2c563883, 0x17cff: 0x2cd43684,
-	// Block 0x5f4, offset 0x17d00
-	0x17d00: 0x2d337e83, 0x17d01: 0x2cb3fc83, 0x17d02: 0x2cf17a84, 0x17d03: 0x2c30f883,
-	0x17d04: 0x2c6c1e83, 0x17d05: 0x2c398083, 0x17d06: 0x2cf39a83, 0x17d07: 0x2cc63684,
-	0x17d08: 0x2d264283, 0x17d09: 0x2d266885, 0x17d0a: 0x2ca25c84, 0x17d0b: 0x2cba3883,
-	0x17d0c: 0x2d34cc83, 0x17d0d: 0x2c271283, 0x17d0e: 0x2cd49883, 0x17d0f: 0x2cf39c83,
-	0x17d10: 0x2c08ac83, 0x17d11: 0x2c98c083, 0x17d12: 0x2cd2e483, 0x17d13: 0x2cb72683,
-	0x17d14: 0x2cd70284, 0x17d15: 0x2c5d8484, 0x17d16: 0x2d2f8083, 0x17d17: 0x2c3fa083,
-	0x17d18: 0x2d10c683, 0x17d19: 0x2cac5083, 0x17d1a: 0x2cb14483, 0x17d1b: 0x2d0b0883,
-	0x17d1c: 0x2ca96683, 0x17d1d: 0x2cc34c83, 0x17d1e: 0x2d07fa83, 0x17d1f: 0x2d22b883,
-	0x17d20: 0x2c483e83, 0x17d21: 0x2cec0c83, 0x17d22: 0x2c415c83, 0x17d23: 0x2cd0d284,
-	0x17d24: 0x2d1e6c83, 0x17d25: 0x2ce47e83, 0x17d26: 0x2cb04483, 0x17d27: 0x2ca54083,
-	0x17d28: 0x2c0e4683, 0x17d29: 0x2c040883, 0x17d2a: 0x2cafa883, 0x17d2b: 0x2c9f8a83,
-	0x17d2c: 0x2ca26483, 0x17d2d: 0x2c98c283, 0x17d2e: 0x2cd2a883, 0x17d2f: 0x2cd22c83,
-	0x17d30: 0x2cd2f483, 0x17d31: 0x2cc74083, 0x17d32: 0x2c50b283, 0x17d33: 0x2d08f283,
-	0x17d34: 0x2c856c83, 0x17d35: 0x2d39f083, 0x17d36: 0x2c9cd683, 0x17d37: 0x2c9d1a83,
-	0x17d38: 0x2c3d1a83, 0x17d39: 0x2cedf483, 0x17d3a: 0x2d0f7683, 0x17d3b: 0x2d221c83,
-	0x17d3c: 0x2c819a83, 0x17d3d: 0x2c373083, 0x17d3e: 0x2c82b283, 0x17d3f: 0x2c378483,
-	// Block 0x5f5, offset 0x17d40
-	0x17d40: 0x2d22c683, 0x17d41: 0x2cc78283, 0x17d42: 0x2c189483, 0x17d43: 0x2d3f2a83,
-	0x17d44: 0x2d357083, 0x17d45: 0x2c6fd083, 0x17d46: 0x2ccf0683, 0x17d47: 0x2c201683,
-	0x17d48: 0x2d385283, 0x17d49: 0x2c449e83, 0x17d4a: 0x2ccb1483, 0x17d4b: 0x2c12aa83,
-	0x17d4c: 0x2c549483, 0x17d4d: 0x2c1d0883, 0x17d4e: 0x2d093883, 0x17d4f: 0x2d03ba83,
-	0x17d50: 0x2d13be83, 0x17d51: 0x2d0b7083, 0x17d52: 0x2c665283, 0x17d53: 0x2c68c683,
-	0x17d54: 0x2d0c5c83, 0x17d55: 0x2c475c83, 0x17d56: 0x2c30fa83, 0x17d57: 0x2cd2b083,
-	0x17d58: 0x2d357c83, 0x17d59: 0x2c06dc83, 0x17d5a: 0x2c1be883, 0x17d5b: 0x2d407e84,
-	0x17d5c: 0x2d40a683, 0x17d5d: 0x2ccfa483, 0x17d5e: 0x2c17ce83, 0x17d5f: 0x2d02ae83,
-	0x17d60: 0x2c18a083, 0x17d61: 0x2c21a883, 0x17d62: 0x2d169e83, 0x17d63: 0x2d1fa483,
-	0x17d64: 0x2c0b7883, 0x17d65: 0x2c84fc83, 0x17d66: 0x2c6c2e84, 0x17d67: 0x2d2f0083,
-	0x17d68: 0x2c9ac683, 0x17d69: 0x2c3fba83, 0x17d6a: 0x2c859883, 0x17d6b: 0x2d3c5683,
-	0x17d6c: 0x2d222283, 0x17d6d: 0x2cbe3083, 0x17d6e: 0x2c39f283, 0x17d6f: 0x2c9e5683,
-	0x17d70: 0x2c43d083, 0x17d71: 0x2ceeee83, 0x17d72: 0x2c6fb483, 0x17d73: 0x2d19ba83,
-	0x17d74: 0x2d12dc83, 0x17d75: 0x2c3c2c83, 0x17d76: 0x2c39f483, 0x17d77: 0x2cd25883,
-	0x17d78: 0x2cd44283, 0x17d79: 0x2cfd6683, 0x17d7a: 0x2c969883, 0x17d7b: 0x2c476e83,
-	0x17d7c: 0x2c42bc83, 0x17d7d: 0x2c0bf483, 0x17d7e: 0x2c310e83, 0x17d7f: 0x2c170e83,
-	// Block 0x5f6, offset 0x17d80
-	0x17d80: 0x2c43e083, 0x17d81: 0x2c4ae283, 0x17d82: 0x2d211283, 0x17d83: 0x2ca79a83,
-	0x17d84: 0x2c91bc83, 0x17d85: 0x2c924c83, 0x17d86: 0x2c973283, 0x17d87: 0x2c966883,
-	0x17d88: 0x2c59ce83, 0x17d89: 0x2cd56083, 0x17d8a: 0x2c521c83, 0x17d8b: 0x2d353483,
-	0x17d8c: 0x2c9e3283, 0x17d8d: 0x2c2f7483, 0x17d8e: 0x2c47a683, 0x17d8f: 0x2cd56683,
-	0x17d90: 0x2c08a283, 0x17d91: 0x2cb63483, 0x17d92: 0x2c1bc283, 0x17d93: 0x2c8fb083,
-	0x17d94: 0x2c4a9683, 0x17d95: 0x2d26f683,
-	0x17db0: 0x40273a20, 0x17db1: 0x40273c20, 0x17db2: 0x40273e20, 0x17db3: 0x40274020,
-	0x17db4: 0x40274220, 0x17db5: 0x40274420, 0x17db6: 0x40274620, 0x17db7: 0x40274820,
-	0x17db8: 0x40274a20, 0x17db9: 0x40274c20, 0x17dba: 0x40274e20, 0x17dbb: 0x40275020,
-	// Block 0x5f7, offset 0x17dc0
-	0x17dc0: 0x00021283, 0x17dc1: 0x40025c20, 0x17dc2: 0x40030420, 0x17dc3: 0x40051220,
-	0x17dc4: 0x40279a20, 0x17dc5: 0x4027ca20, 0x17dc6: 0xe0002206, 0x17dc7: 0x6c8c9620,
-	0x17dc8: 0x40049c20, 0x17dc9: 0x40049e20, 0x17dca: 0x4004a020, 0x17dcb: 0x4004a220,
-	0x17dcc: 0x4004a420, 0x17dcd: 0x4004a620, 0x17dce: 0x4004a820, 0x17dcf: 0x4004aa20,
-	0x17dd0: 0x4004ac20, 0x17dd1: 0x4004ae20, 0x17dd2: 0x40279c20, 0x17dd3: 0x40279e20,
-	0x17dd4: 0x4004b020, 0x17dd5: 0x4004b220, 0x17dd6: 0x4004b420, 0x17dd7: 0x4004b620,
-	0x17dd8: 0x4004b820, 0x17dd9: 0x4004ba20, 0x17dda: 0x4004bc20, 0x17ddb: 0x4004be20,
-	0x17ddc: 0x40023820, 0x17ddd: 0x4003ea20, 0x17dde: 0x4003ec20, 0x17ddf: 0x4003ee20,
-	0x17de0: 0x4027a020, 0x17de1: 0xe0000267, 0x17de2: 0xe000037f, 0x17de3: 0xe0000459,
-	0x17de4: 0xe000052e, 0x17de5: 0xe00005f8, 0x17de6: 0xe00006c3, 0x17de7: 0xe000076b,
-	0x17de8: 0xe0000817, 0x17de9: 0xe00008bc, 0x17dea: 0xada12202, 0x17deb: 0xae412302,
-	0x17dec: 0xae812402, 0x17ded: 0xade12502, 0x17dee: 0xae012602, 0x17def: 0xae012702,
-	0x17df0: 0x40023a20, 0x17df1: 0x4027ce20, 0x17df2: 0xe0000152, 0x17df3: 0x4027d020,
-	0x17df4: 0xe0000155, 0x17df5: 0x4027d220, 0x17df6: 0x00279c84, 0x17df7: 0x4027a220,
-	0x17df8: 0x2cd22484, 0x17df9: 0x2ca75483, 0x17dfa: 0x2cc96283, 0x17dfb: 0x4027cc20,
-	0x17dfc: 0xe000231a, 0x17dfd: 0x40051420, 0x17dfe: 0x4027a420, 0x17dff: 0x4027a620,
-	// Block 0x5f8, offset 0x17e00
-	0x17e00: 0x00633a84, 0x17e01: 0x00634484, 0x17e02: 0x0064f684, 0x17e03: 0x0064f884,
-	0x17e04: 0x00635a84, 0x17e05: 0x00635c84, 0x17e06: 0x00635e84, 0x17e07: 0x0063ee84,
-	0x17e08: 0x0063f084, 0x17e09: 0x0063f684, 0x17e0a: 0x00640884, 0x17e0b: 0x00640a84,
-	0x17e0c: 0x00640e84, 0x17e0d: 0x00642284, 0x17e0e: 0x00642884,
-	0x17e10: 0x4027a820, 0x17e11: 0x4027aa20, 0x17e12: 0x2d13b685, 0x17e13: 0x2c37b485,
-	0x17e14: 0x2cc9f285, 0x17e15: 0x2cd87484, 0x17e16: 0x2cce4884, 0x17e17: 0x2d378285,
-	0x17e18: 0x2cfa2684, 0x17e19: 0x2c63fc83, 0x17e1a: 0x2d15aa83, 0x17e1b: 0x2c0dba83,
-	0x17e1c: 0x2c2f4083, 0x17e1d: 0x2ce45484, 0x17e1e: 0x2c2a8a83, 0x17e1f: 0x2cc55a83,
-	0x17e20: 0xe000237a, 0x17e21: 0xe0002383, 0x17e22: 0xe0002380, 0x17e23: 0xe000237d,
-	0x17e24: 0x40661c20, 0x17e25: 0xe000238c, 0x17e26: 0x40661620, 0x17e27: 0xe0002389,
-	0x17e28: 0xe000239e, 0x17e29: 0xe0002386, 0x17e2a: 0xe0002395, 0x17e2b: 0xe000239b,
-	0x17e2c: 0x40663420, 0x17e2d: 0x4065f220, 0x17e2e: 0xe000238f, 0x17e2f: 0xe0002392,
-	0x17e30: 0x40663020, 0x17e31: 0x40663220, 0x17e32: 0x40662c20, 0x17e33: 0xe0002398,
-	0x17e34: 0x0065dc99, 0x17e35: 0x0065e699, 0x17e36: 0x0065ee99, 0x17e37: 0x0065f499,
-	0x17e38: 0x40660c20, 0x17e39: 0x40660e20, 0x17e3a: 0x40661020,
-	// Block 0x5f9, offset 0x17e40
-	0x17e40: 0xf0000404, 0x17e41: 0xf0000404, 0x17e42: 0xf0000404, 0x17e43: 0xf0000404,
-	0x17e44: 0xf0000404, 0x17e45: 0xf0000404, 0x17e46: 0xf0000404, 0x17e47: 0xf0000404,
-	0x17e48: 0xf0000404, 0x17e49: 0xf0000404, 0x17e4a: 0xf0000404, 0x17e4b: 0xf0000404,
-	0x17e4c: 0xf0000404, 0x17e4d: 0xf0000404, 0x17e4e: 0xe000004c, 0x17e4f: 0xe0000051,
-	0x17e50: 0xe0000056, 0x17e51: 0xe000005b, 0x17e52: 0xe0000060, 0x17e53: 0xe0000065,
-	0x17e54: 0xe000006a, 0x17e55: 0xe000006f, 0x17e56: 0xe0000083, 0x17e57: 0xe000008d,
-	0x17e58: 0xe0000092, 0x17e59: 0xe0000097, 0x17e5a: 0xe000009c, 0x17e5b: 0xe00000a1,
-	0x17e5c: 0xe0000088, 0x17e5d: 0xe0000074, 0x17e5e: 0xe000007c,
-	0x17e60: 0xe000aff9, 0x17e61: 0xe000af95, 0x17e62: 0xe000afcd, 0x17e63: 0xe000afdd,
-	0x17e64: 0xe000afe9, 0x17e65: 0xe000afb5, 0x17e66: 0xe000afc1, 0x17e67: 0xe000af89,
-	0x17e68: 0xe000afad, 0x17e69: 0xe000afd5, 0x17e6a: 0xe000b001, 0x17e6b: 0xe000af9d,
-	0x17e6c: 0xe000afd9, 0x17e6d: 0xe000afbd, 0x17e6e: 0xe000afa9, 0x17e6f: 0xe000afe5,
-	0x17e70: 0xe000afc9, 0x17e71: 0xe000b009, 0x17e72: 0xe000affd, 0x17e73: 0xe000afd1,
-	0x17e74: 0xe000afb9, 0x17e75: 0xe000afe1, 0x17e76: 0xe000af8d, 0x17e77: 0xe000b00d,
-	0x17e78: 0xe000afb1, 0x17e79: 0xe000af91, 0x17e7a: 0xe000af99, 0x17e7b: 0xe000aff5,
-	0x17e7c: 0xe000afa5, 0x17e7d: 0xe000afc5, 0x17e7e: 0xe000b011, 0x17e7f: 0xe000afed,
-	// Block 0x5fa, offset 0x17e80
-	0x17e80: 0xe000afa1, 0x17e81: 0xe000aff1, 0x17e82: 0xe000b015, 0x17e83: 0xe000b005,
-	0x17e84: 0x2cf20683, 0x17e85: 0x2d200c83, 0x17e86: 0x2cf17a83, 0x17e87: 0x2d32e283,
-	0x17e88: 0xe00002e3, 0x17e89: 0xe00003d8, 0x17e8a: 0xe00004b3, 0x17e8b: 0xe000057d,
-	0x17e8c: 0xe0000648, 0x17e8d: 0xe00006f0, 0x17e8e: 0xe000079c, 0x17e8f: 0xe0000841,
-	0x17e90: 0xe0000ec0, 0x17e91: 0xf0000606, 0x17e92: 0xf0000606, 0x17e93: 0xf0000606,
-	0x17e94: 0xf0000606, 0x17e95: 0xf0000606, 0x17e96: 0xf0000606, 0x17e97: 0xf0000606,
-	0x17e98: 0xf0000606, 0x17e99: 0xf0000606, 0x17e9a: 0xf0000606, 0x17e9b: 0xf0000606,
-	0x17e9c: 0xf0000606, 0x17e9d: 0xf0000606, 0x17e9e: 0xf0000606, 0x17e9f: 0xf0000606,
-	0x17ea0: 0x0062ac86, 0x17ea1: 0x0062b086, 0x17ea2: 0x0062b286, 0x17ea3: 0x0062b686,
-	0x17ea4: 0x0062b886, 0x17ea5: 0x0062ba86, 0x17ea6: 0x0062be86, 0x17ea7: 0x0062c286,
-	0x17ea8: 0x0062c486, 0x17ea9: 0x0062c886, 0x17eaa: 0x0062ca86, 0x17eab: 0x0062cc86,
-	0x17eac: 0x0062ce86, 0x17ead: 0x0062d086, 0x17eae: 0xf0000606, 0x17eaf: 0xf0000606,
-	0x17eb0: 0xf0000606, 0x17eb1: 0xf0000606, 0x17eb2: 0xf0000606, 0x17eb3: 0xf0000606,
-	0x17eb4: 0xf0000606, 0x17eb5: 0xf0000606, 0x17eb6: 0xf0000606, 0x17eb7: 0xf0000606,
-	0x17eb8: 0xf0000606, 0x17eb9: 0xf0000606, 0x17eba: 0xf0000606, 0x17ebb: 0xf0000606,
-	0x17ebc: 0xe0002127, 0x17ebd: 0xe0002122, 0x17ebe: 0xf0000606, 0x17ebf: 0x4027ac20,
-	// Block 0x5fb, offset 0x17ec0
-	0x17ec0: 0x2d13b684, 0x17ec1: 0x2c37b484, 0x17ec2: 0x2cc9f284, 0x17ec3: 0x2cd87483,
-	0x17ec4: 0x2cf41483, 0x17ec5: 0x2c8f2483, 0x17ec6: 0x2cb4c683, 0x17ec7: 0x2c030a83,
-	0x17ec8: 0x2c6f9a83, 0x17ec9: 0x2cd22483, 0x17eca: 0x2d266884, 0x17ecb: 0x2c5d8483,
-	0x17ecc: 0x2cd70283, 0x17ecd: 0x2ca25c83, 0x17ece: 0x2c6c2e83, 0x17ecf: 0x2ce91083,
-	0x17ed0: 0x2cc63683, 0x17ed1: 0x2d399283, 0x17ed2: 0x2d1f9884, 0x17ed3: 0x2ccf3683,
-	0x17ed4: 0x2c9fe683, 0x17ed5: 0x2ce27083, 0x17ed6: 0x2c110e83, 0x17ed7: 0x2d3ac683,
-	0x17ed8: 0x2c814083, 0x17ed9: 0x2c9d3483, 0x17eda: 0x2ca3e283, 0x17edb: 0x2caa6e83,
-	0x17edc: 0x2cd3bc83, 0x17edd: 0x2d1eb483, 0x17ede: 0x2d1b3683, 0x17edf: 0x2d3ab083,
-	0x17ee0: 0x2cfe3a83, 0x17ee1: 0x2d04b283, 0x17ee2: 0x2d013e83, 0x17ee3: 0x2d333683,
-	0x17ee4: 0x2cce4883, 0x17ee5: 0x2d378284, 0x17ee6: 0x2cfa2683, 0x17ee7: 0x2d426084,
-	0x17ee8: 0x2d200884, 0x17ee9: 0x2d13c083, 0x17eea: 0x2d3f7083, 0x17eeb: 0x2d08f883,
-	0x17eec: 0x2c64ca83, 0x17eed: 0x2cb6c883, 0x17eee: 0x2d3e6083, 0x17eef: 0x2d007083,
-	0x17ef0: 0x2d12ca83, 0x17ef1: 0xf0000606, 0x17ef2: 0xf0000606, 0x17ef3: 0xf0000606,
-	0x17ef4: 0xf0000606, 0x17ef5: 0xf0000606, 0x17ef6: 0xf0000606, 0x17ef7: 0xf0000606,
-	0x17ef8: 0xf0000606, 0x17ef9: 0xf0000606, 0x17efa: 0xf0000606, 0x17efb: 0xf0000606,
-	0x17efc: 0xf0000606, 0x17efd: 0xf0000606, 0x17efe: 0xf0000606, 0x17eff: 0xf0000606,
-	// Block 0x5fc, offset 0x17f00
-	0x17f00: 0xf0000203, 0x17f01: 0xf0000203, 0x17f02: 0xf0000203, 0x17f03: 0xf0000203,
-	0x17f04: 0xf0000203, 0x17f05: 0xf0000203, 0x17f06: 0xf0000203, 0x17f07: 0xf0000203,
-	0x17f08: 0xf0000203, 0x17f09: 0xe000b045, 0x17f0a: 0xe000b051, 0x17f0b: 0xe000b05d,
-	0x17f0c: 0xf0001c1d, 0x17f0d: 0xe0000b85, 0x17f0e: 0xf0001d1c, 0x17f0f: 0xe0000d14,
-	0x17f10: 0x00657693, 0x17f11: 0x00657893, 0x17f12: 0x00657a93, 0x17f13: 0x00657e93,
-	0x17f14: 0x00658093, 0x17f15: 0x00658293, 0x17f16: 0x00658493, 0x17f17: 0x00658693,
-	0x17f18: 0x00658893, 0x17f19: 0x00658a93, 0x17f1a: 0x00658c93, 0x17f1b: 0x00658e93,
-	0x17f1c: 0x00659093, 0x17f1d: 0x00659293, 0x17f1e: 0x00659493, 0x17f1f: 0x00659693,
-	0x17f20: 0x00659893, 0x17f21: 0x00659a93, 0x17f22: 0x00659c93, 0x17f23: 0x00659e93,
-	0x17f24: 0x0065a093, 0x17f25: 0x0065a293, 0x17f26: 0x0065a493, 0x17f27: 0x0065a693,
-	0x17f28: 0x0065a893, 0x17f29: 0x0065aa93, 0x17f2a: 0x0065ac93, 0x17f2b: 0x0065ae93,
-	0x17f2c: 0x0065b093, 0x17f2d: 0x0065b293, 0x17f2e: 0x0065b493, 0x17f2f: 0x0065b693,
-	0x17f30: 0x0065b893, 0x17f31: 0x0065ba93, 0x17f32: 0x0065bc93, 0x17f33: 0x0065be93,
-	0x17f34: 0x0065c093, 0x17f35: 0x0065c493, 0x17f36: 0x0065c693, 0x17f37: 0x0065c893,
-	0x17f38: 0x0065ca93, 0x17f39: 0x0065cc93, 0x17f3a: 0x0065ce93, 0x17f3b: 0x0065d093,
-	0x17f3c: 0x0065d293, 0x17f3d: 0x0065d493, 0x17f3e: 0x0065d693,
-	// Block 0x5fd, offset 0x17f40
-	0x17f40: 0xe000230b, 0x17f41: 0xe00022f8, 0x17f42: 0xe00022fc, 0x17f43: 0xe0002311,
-	0x17f44: 0xe0002316, 0x17f45: 0xe000231d, 0x17f46: 0xe0002321, 0x17f47: 0xe0002325,
-	0x17f48: 0xe000232b, 0x17f49: 0xf0001c1c, 0x17f4a: 0xe0002330, 0x17f4b: 0xe000233c,
-	0x17f4c: 0xe0002340, 0x17f4d: 0xe0002337, 0x17f4e: 0xe0002346, 0x17f4f: 0xe000234b,
-	0x17f50: 0xe000234f, 0x17f51: 0xe0002353, 0x17f52: 0xf0001c1c, 0x17f53: 0xe000235e,
-	0x17f54: 0xe0002358, 0x17f55: 0xf0001c1c, 0x17f56: 0xe0002363, 0x17f57: 0xe000236d,
-	0x17f58: 0xf0000203, 0x17f59: 0xf0000203, 0x17f5a: 0xf0000203, 0x17f5b: 0xf0000203,
-	0x17f5c: 0xf0000203, 0x17f5d: 0xf0000203, 0x17f5e: 0xf0000203, 0x17f5f: 0xf0000203,
-	0x17f60: 0xf0000203, 0x17f61: 0xf0000203, 0x17f62: 0xe000b03d, 0x17f63: 0xe000b049,
-	0x17f64: 0xe000b055, 0x17f65: 0xe000b061, 0x17f66: 0xe000b069, 0x17f67: 0xe000b071,
-	0x17f68: 0xe000b079, 0x17f69: 0xe000b081, 0x17f6a: 0xe000b089, 0x17f6b: 0xe000b091,
-	0x17f6c: 0xe000b099, 0x17f6d: 0xe000b0a1, 0x17f6e: 0xe000b0a9, 0x17f6f: 0xe000b0b1,
-	0x17f70: 0xe000b0b9, 0x17f71: 0xe0000c1e, 0x17f72: 0xf0001c1c, 0x17f73: 0xf0001d1d,
-	0x17f74: 0xe0000a31, 0x17f75: 0xf0001d1c, 0x17f76: 0xf0001c1c, 0x17f77: 0xf0001c1c,
-	0x17f78: 0xe0000ac2, 0x17f79: 0xe0000ac6, 0x17f7a: 0xf0001d1d, 0x17f7b: 0xf0000203,
-	0x17f7c: 0xf0000203, 0x17f7d: 0xf0000203, 0x17f7e: 0xf0000203, 0x17f7f: 0xe000b173,
-	// Block 0x5fe, offset 0x17f80
-	0x17f80: 0xf0001d1c, 0x17f81: 0xf0001d1d, 0x17f82: 0xe00009b7, 0x17f83: 0xf0001c1d,
-	0x17f84: 0xf0001c1c, 0x17f85: 0xf0001c1c, 0x17f86: 0xe0000a66, 0x17f87: 0xe0000a7a,
-	0x17f88: 0xf0001d1c, 0x17f89: 0xf0001c1d, 0x17f8a: 0xf0001c1c, 0x17f8b: 0xf0001d1d,
-	0x17f8c: 0xf0001c1c, 0x17f8d: 0xf0001d1d, 0x17f8e: 0xf0001d1d, 0x17f8f: 0xf0001c1c,
-	0x17f90: 0xf0001c1c, 0x17f91: 0xf0001c1c, 0x17f92: 0xe0000d0d, 0x17f93: 0xf0001c1c,
-	0x17f94: 0xf0001c1c, 0x17f95: 0xe0000d3a, 0x17f96: 0xe0000d46, 0x17f97: 0xf0001d1d,
-	0x17f98: 0xe0000eb0, 0x17f99: 0xe0000eb8, 0x17f9a: 0xf0001d1d, 0x17f9b: 0xf0001c1c,
-	0x17f9c: 0xf0001c1d, 0x17f9d: 0xf0001c1d, 0x17f9e: 0xe00010b2, 0x17f9f: 0xe00009c8,
-	0x17fa0: 0xf0000203, 0x17fa1: 0xf0000203, 0x17fa2: 0xf0000203, 0x17fa3: 0xf0000203,
-	0x17fa4: 0xf0000203, 0x17fa5: 0xf0000203, 0x17fa6: 0xf0000203, 0x17fa7: 0xf0000203,
-	0x17fa8: 0xf0000203, 0x17fa9: 0xe000b041, 0x17faa: 0xe000b04d, 0x17fab: 0xe000b059,
-	0x17fac: 0xe000b065, 0x17fad: 0xe000b06d, 0x17fae: 0xe000b075, 0x17faf: 0xe000b07d,
-	0x17fb0: 0xe000b085, 0x17fb1: 0xe000b08d, 0x17fb2: 0xe000b095, 0x17fb3: 0xe000b09d,
-	0x17fb4: 0xe000b0a5, 0x17fb5: 0xe000b0ad, 0x17fb6: 0xe000b0b5, 0x17fb7: 0xe000b0bd,
-	0x17fb8: 0xe000b0c1, 0x17fb9: 0xe000b0c5, 0x17fba: 0xe000b0c9, 0x17fbb: 0xe000b0cd,
-	0x17fbc: 0xe000b0d1, 0x17fbd: 0xe000b0d5, 0x17fbe: 0xe000b0d9, 0x17fbf: 0xe0000bdf,
-	// Block 0x5ff, offset 0x17fc0
-	0x17fc0: 0x6cbf9220, 0x17fc1: 0x6ce52c20,
-	0x17fc4: 0x6c7ae020, 0x17fc5: 0x6cf41220, 0x17fc6: 0x6d1ac620,
-	0x17fcc: 0x6d144820,
-	0x17fd6: 0x6d006c20,
-	0x17fdc: 0x6c1d9020,
-	0x17fe1: 0x6caae820,
-	0x17fe4: 0x6c27da20,
-	0x17fe8: 0x6d067820, 0x17fe9: 0x6d03c420, 0x17feb: 0x6d044c20,
-	0x17fec: 0x6c8e4020, 0x17fed: 0x6c8c1820, 0x17fee: 0x6cfd7e20, 0x17fef: 0x6d1dbe20,
-	0x17ff0: 0x6d030e20, 0x17ff1: 0x6d31ac20, 0x17ff2: 0x6c272020, 0x17ff3: 0x6cf49420,
-	0x17ff4: 0x6cac3820, 0x17ff7: 0x6c968e20,
-	0x17ff8: 0x6cba3c20, 0x17ff9: 0x6d165420, 0x17ffa: 0x6d1a2020, 0x17ffb: 0x6ca58220,
-	0x17ffc: 0x6c1a7e20, 0x17ffd: 0x6c3c1020,
-	// Block 0x600, offset 0x18000
-	0x18001: 0x6d3cec20, 0x18002: 0x6c39ba20, 0x18003: 0x6c029620,
-	0x18004: 0x6cf41c20, 0x18005: 0x6d427220, 0x18007: 0x6d38f620,
-	0x18008: 0x6c304e20, 0x18009: 0x6cda7e20, 0x1800a: 0x6d16a020, 0x1800b: 0x6cbefc20,
-	0x1800c: 0x6c7b8220, 0x1800d: 0x6c831e20, 0x1800e: 0x6ca4da20, 0x1800f: 0x6d3aa820,
-	0x18010: 0x6cd4a220,
-	0x18014: 0x6d062820, 0x18017: 0x6ccfb620,
-	0x18018: 0x6c6bc820, 0x18019: 0x6c2e6620, 0x1801a: 0x6caab620, 0x1801b: 0x6cda8420,
-	0x1801c: 0x6d16d820, 0x1801d: 0x6c905020, 0x1801e: 0x6d1d3220, 0x1801f: 0x6c081020,
-	0x18023: 0x6c7f9220,
-	0x18024: 0x6c9e7220, 0x18025: 0x6d171820, 0x18026: 0x6c85be20, 0x18027: 0x6c61c020,
-	0x18028: 0x6d223420, 0x18029: 0x6c953c20, 0x1802a: 0x6c147420,
-	0x1802e: 0x6c5ce420, 0x1802f: 0x6d063820,
-	0x18030: 0x6c5bb220, 0x18031: 0x6cc53820, 0x18033: 0x6d392620,
-	0x18035: 0x6c4ebe20, 0x18036: 0x6cf88220, 0x18037: 0x6cdf7420,
-	0x18038: 0x6d10f020, 0x18039: 0x6c5bba20, 0x1803a: 0x6c75b820, 0x1803b: 0x6c96c020,
-	0x1803c: 0x6c94ac20, 0x1803d: 0x6ce0fa20, 0x1803e: 0x6d110220, 0x1803f: 0x6d2fba20,
-	// Block 0x601, offset 0x18040
-	0x18040: 0x6d2cf420, 0x18041: 0x6d226420, 0x18042: 0x6d3d7620, 0x18043: 0x6c37d620,
-	0x18044: 0x6cc4cc20, 0x18045: 0x6cb70820, 0x18046: 0x6c1c3e20, 0x18047: 0x6cf45620,
-	0x18048: 0x6c4eda20, 0x18049: 0x6ce17820, 0x1804a: 0x6ccb3220,
-	0x1804c: 0x6cbf4820, 0x1804d: 0x6c824020, 0x1804e: 0x6cc97c20,
-	0x18051: 0x6c7cda20, 0x18052: 0x6cb44620, 0x18053: 0x6cde8a20,
-	0x18054: 0x6cd53020, 0x18055: 0x6d0f6820, 0x18056: 0x6cab8a20, 0x18057: 0x6cdf3620,
-	0x18059: 0x6c9dd220, 0x1805a: 0x6d1b7820, 0x1805b: 0x6c2e3a20,
-	0x1805c: 0x6d228820, 0x1805d: 0x6c9eec20, 0x1805e: 0x6c75ee20, 0x1805f: 0x6ca7b820,
-	0x18060: 0x6d023a20, 0x18061: 0x6d1f8820,
-	0x18064: 0x6c185420, 0x18065: 0x6c3c7620, 0x18066: 0x6c82f820, 0x18067: 0x6c874020,
-	0x18069: 0x6c95d420, 0x1806b: 0x6c617420,
-	0x18070: 0x6cc2b020, 0x18072: 0x6c110220, 0x18073: 0x6c898420,
-	0x18074: 0x6c475620, 0x18075: 0x6c994020, 0x18077: 0x6c489020,
-	0x18078: 0x6cdc2820, 0x1807b: 0x6c996a20,
-	0x1807c: 0x6c976220, 0x1807d: 0x6cc29820, 0x1807e: 0x6cd39420, 0x1807f: 0x6c84b620,
-	// Block 0x602, offset 0x18080
-	0x18081: 0x6cedee20, 0x18082: 0x6c79d820, 0x18083: 0x6c325420,
-	0x18084: 0x6d325a20, 0x18085: 0x6ce62020,
-	0x18088: 0x6c0e0620, 0x18089: 0x6c5d9e20, 0x1808a: 0x6c305420, 0x1808b: 0x6c460e20,
-	0x1808c: 0x6c195220, 0x1808e: 0x6cbd2020, 0x1808f: 0x6c6f0020,
-	0x18090: 0x6c922620, 0x18091: 0x6d042020, 0x18093: 0x6ca3f820,
-	0x18094: 0x6d01a220, 0x18096: 0x6c09be20, 0x18097: 0x6c6b0420,
-	0x18098: 0x6cda9c20, 0x1809a: 0x6c455220,
-	0x1809c: 0x6d200620, 0x1809d: 0x6d03b620, 0x1809e: 0x6cb83c20, 0x1809f: 0x6cafae20,
-	0x180a0: 0x6c2d3620, 0x180a1: 0x6c3f3c20, 0x180a2: 0x6c95de20, 0x180a3: 0x6cb84220,
-	0x180a4: 0x6cb84420, 0x180a5: 0x6ce0ba20, 0x180a6: 0x6c03fa20, 0x180a7: 0x6c418420,
-	0x180a8: 0x6c222420, 0x180a9: 0x6d077e20, 0x180aa: 0x6c80f620,
-	0x180ad: 0x6ccf0c20, 0x180af: 0x6c83a820,
-	0x180b0: 0x6c578820, 0x180b1: 0x6ce7ea20, 0x180b2: 0x6cb0f020, 0x180b3: 0x6c2b2420,
-	0x180b4: 0x6cc85e20, 0x180b5: 0x6c360820, 0x180b6: 0x6cbcb020, 0x180b7: 0x6d178c20,
-	0x180b8: 0x6d3d0020, 0x180b9: 0x6cc8cc20, 0x180ba: 0x6c649420,
-	0x180bc: 0x6c1c2e20, 0x180bd: 0x6c1d1820, 0x180be: 0x6cf66220,
-	// Block 0x603, offset 0x180c0
-	0x180c0: 0x6c94b420, 0x180c1: 0x6c2aa020, 0x180c2: 0x6c8bbe20, 0x180c3: 0x6c747020,
-	0x180c4: 0x6cdae020, 0x180c5: 0x6cfffa20, 0x180c6: 0x6d299020,
-	0x180c9: 0x6d3a7620, 0x180ca: 0x6d2e0e20, 0x180cb: 0x6c64f020,
-	0x180cc: 0x6d408c20, 0x180cd: 0x6c1fa020, 0x180ce: 0x6d022a20, 0x180cf: 0x6c869820,
-	0x180d1: 0x6c1c8e20, 0x180d2: 0x6cf7b820, 0x180d3: 0x6c656020,
-	0x180d5: 0x6c5fc020, 0x180d7: 0x6c3a7c20,
-	0x180d8: 0x6c1f0620, 0x180d9: 0x6c07d420, 0x180da: 0x6c6a7820,
-	0x180dc: 0x6c036c20, 0x180dd: 0x6c898a20, 0x180de: 0x6c7b1e20,
-	0x180e0: 0x6cf95e20, 0x180e1: 0x6c0ca420, 0x180e2: 0x6c747420, 0x180e3: 0x6c825c20,
-	0x180e4: 0x6d035020, 0x180e5: 0x6c045820, 0x180e6: 0x6d103220, 0x180e7: 0x6c940a20,
-	0x180e8: 0x6c070a20, 0x180e9: 0x6c362420, 0x180ea: 0x6c91c220,
-	0x180ed: 0x6c181220, 0x180ee: 0x6caad020, 0x180ef: 0x6d07fe20,
-	0x180f0: 0x6c525220, 0x180f1: 0x6d224420, 0x180f3: 0x6c4b0620,
-	0x180f4: 0x6d17dc20, 0x180f5: 0x6d085020, 0x180f6: 0x6c462c20, 0x180f7: 0x6c910020,
-	0x180f8: 0x6ce2f020, 0x180f9: 0x6c820420, 0x180fa: 0x6cd2f820,
-	0x180fc: 0x6cdcee20, 0x180fd: 0x6d11ec20, 0x180fe: 0x6cfa6820, 0x180ff: 0x6d408420,
-	// Block 0x604, offset 0x18100
-	0x18101: 0x6cc3a220, 0x18102: 0x6d1a2220, 0x18103: 0x6cf56420,
-	0x18104: 0x6d34d420, 0x18105: 0x6c639620, 0x18106: 0x6c564e20, 0x18107: 0x6c7e3620,
-	0x18108: 0x6d15c620, 0x18109: 0x6c788020, 0x1810a: 0x6c3d4620, 0x1810b: 0x6cbd6020,
-	0x1810c: 0x6c009220, 0x1810e: 0x6c78ac20, 0x1810f: 0x6c1e8820,
-	0x18110: 0x6d014620, 0x18111: 0x6c1e9a20, 0x18112: 0x6ceeac20,
-	0x18115: 0x6c58ea20, 0x18116: 0x6cda8a20, 0x18117: 0x6d203a20,
-	0x18119: 0x6c75e020, 0x1811a: 0x6d2f7e20, 0x1811b: 0x6d066620,
-	0x1811c: 0x6cd2ac20, 0x1811e: 0x6cd64220, 0x1811f: 0x6c7cea20,
-	0x18120: 0x6cd6a220, 0x18121: 0x6c515420, 0x18122: 0x6c414e20, 0x18123: 0x6d0d3020,
-	0x18124: 0x6cbfec20, 0x18125: 0x6ccf9820, 0x18126: 0x6c577a20, 0x18127: 0x6cf56820,
-	0x18128: 0x6c391820, 0x18129: 0x6cad2420, 0x1812a: 0x6c281e20, 0x1812b: 0x6c39bc20,
-	0x1812c: 0x6c455c20, 0x1812d: 0x6c022620, 0x1812e: 0x6c3f3020, 0x1812f: 0x6ca54420,
-	0x18130: 0x6d093a20, 0x18131: 0x6d1ee420, 0x18132: 0x6c572620,
-	0x18134: 0x6c189620, 0x18135: 0x6c4c5420, 0x18136: 0x6ca2c820, 0x18137: 0x6c577e20,
-	0x18138: 0x6c858820, 0x18139: 0x6c37fa20, 0x1813a: 0x6cfe8020, 0x1813b: 0x6cb3ea20,
-	0x1813d: 0x6cd88820,
-	// Block 0x605, offset 0x18140
-	0x18140: 0x6c821c20, 0x18141: 0x6c8c4820, 0x18142: 0x6d16dc20, 0x18143: 0x6c544c20,
-	0x18145: 0x6d068c20, 0x18146: 0x6cc17620, 0x18147: 0x6c373a20,
-	0x1814a: 0x6d09e220,
-	0x1814f: 0x6ca80020,
-	0x18150: 0x6cef9a20, 0x18151: 0x6d017820, 0x18152: 0x6ce31420, 0x18153: 0x6c532620,
-	0x18154: 0x6cea7820, 0x18155: 0x6ca80220, 0x18156: 0x6ca80420, 0x18157: 0x6d1a4020,
-	0x18158: 0x6d313420,
-	0x1815e: 0x6cec5020, 0x1815f: 0x6cd45a20,
-	0x18160: 0x6caaea20, 0x18161: 0x6d12e420, 0x18162: 0x6cb5b620, 0x18163: 0x6ce82620,
-	0x18164: 0x6c4df820, 0x18165: 0x6c75ac20, 0x18166: 0x6c302c20, 0x18167: 0x6c5cba20,
-	0x18168: 0x6c923220, 0x18169: 0x6c707a20, 0x1816a: 0x6c5db820, 0x1816b: 0x6c8cdc20,
-	0x1816d: 0x6ce4e420, 0x1816e: 0x6c94e820,
-	0x18175: 0x6c43e220, 0x18176: 0x6d0c0620, 0x18177: 0x6cd26420,
-	0x18178: 0x6d090c20, 0x18179: 0x6cae3020, 0x1817a: 0x6c217820, 0x1817b: 0x6ca96c20,
-	0x1817c: 0x6c348a20, 0x1817d: 0x6d2aca20, 0x1817e: 0x6c362820, 0x1817f: 0x6d00a820,
-	// Block 0x606, offset 0x18180
-	0x18180: 0x6d1ea020, 0x18181: 0x6c362a20, 0x18182: 0x6cd13420, 0x18183: 0x6cf1dc20,
-	0x18184: 0x6c7a3e20, 0x18185: 0x6c555020, 0x18186: 0x6c43e620, 0x18187: 0x6cf9c020,
-	0x18188: 0x6c97dc20, 0x18189: 0x6c94a820, 0x1818a: 0x6c602a20, 0x1818b: 0x6c53f620,
-	0x1818c: 0x6d361620, 0x1818f: 0x6cec5420,
-	0x18191: 0x6c046820, 0x18192: 0x6c00a020, 0x18193: 0x6d3c6220,
-	0x18194: 0x6cb8ec20, 0x18195: 0x6c46ac20, 0x18196: 0x6c289220, 0x18197: 0x6c06a820,
-	0x18198: 0x6c0f0e20, 0x18199: 0x6c1e6020, 0x1819a: 0x6c862820, 0x1819b: 0x6cfff620,
-	0x1819c: 0x6d054020,
-	0x181a2: 0x6c537020, 0x181a3: 0x6ce40620,
-	0x181a4: 0x6c244220, 0x181a5: 0x6c7e0a20, 0x181a6: 0x6c816020, 0x181a7: 0x6d367820,
-	0x181a8: 0x6d004e20, 0x181a9: 0x6cf66620, 0x181ab: 0x6cbcce20,
-	0x181ac: 0x6d2be820, 0x181ad: 0x6cf66820,
-	0x181b0: 0x6c23a220, 0x181b1: 0x6c607a20, 0x181b2: 0x6c5dec20, 0x181b3: 0x6cde1220,
-	0x181b4: 0x6d0cbe20, 0x181b5: 0x6d072420, 0x181b6: 0x6cb31c20, 0x181b7: 0x6cc9dc20,
-	0x181bb: 0x6c4c3a20,
-	0x181bc: 0x6d133620, 0x181bd: 0x6cfdfe20, 0x181be: 0x6d08e620, 0x181bf: 0x6c516c20,
-	// Block 0x607, offset 0x181c0
-	0x181c0: 0x6d42aa20, 0x181c1: 0x6d188020, 0x181c2: 0x6c226620,
-	0x181c4: 0x6c837020, 0x181c5: 0x6cfba620, 0x181c6: 0x6cdf5620, 0x181c7: 0x6cc6bc20,
-	0x181c8: 0x6d18be20, 0x181c9: 0x6d372220, 0x181ca: 0x6cf6fe20, 0x181cb: 0x6cfbb420,
-	0x181cc: 0x6c72aa20, 0x181cd: 0x6c60d620, 0x181ce: 0x6c4e6820,
-	0x181d0: 0x6cad9e20, 0x181d1: 0x6c86e620, 0x181d3: 0x6c7fe020,
-	0x181d4: 0x6cc9e020, 0x181d5: 0x6c4e7020, 0x181d6: 0x6d0cfe20, 0x181d7: 0x6cc16020,
-	0x181d9: 0x6d0d1620, 0x181da: 0x6c4e7420, 0x181db: 0x6c76ba20,
-	0x181dc: 0x6c1bce20, 0x181dd: 0x6ca7e820, 0x181de: 0x6c5d9620,
-	0x181e0: 0x6c092820, 0x181e1: 0x6cf98a20, 0x181e2: 0x6cf24820, 0x181e3: 0x6d080420,
-	0x181e4: 0x6cec9420, 0x181e5: 0x6d1f8a20, 0x181e6: 0x6cbd4c20, 0x181e7: 0x6d066c20,
-	0x181e8: 0x6ca7f020, 0x181e9: 0x6c091620, 0x181ea: 0x6c501020, 0x181eb: 0x6c6e0820,
-	0x181ec: 0x6c02bc20, 0x181ed: 0x6c02be20,
-	0x181f0: 0x6d311e20, 0x181f1: 0x6cdf8a20, 0x181f2: 0x6c70f220,
-	0x181f4: 0x6d427a20, 0x181f5: 0x6c106220, 0x181f6: 0x6c6a8a20, 0x181f7: 0x6c009020,
-	0x181f8: 0x6d29fc20, 0x181f9: 0x6c222620, 0x181fa: 0x6c37fc20,
-	0x181ff: 0x6ca80620,
-	// Block 0x608, offset 0x18200
-	0x18200: 0x6c8f2a20, 0x18201: 0x6c99e220, 0x18202: 0x6c334420, 0x18203: 0x6c052020,
-	0x18204: 0x6c095a20, 0x18205: 0x6c05ee20, 0x18207: 0x6c1f2c20,
-	0x18208: 0x6cfa3620, 0x18209: 0x6ce4e820, 0x1820a: 0x6c16a220,
-	0x1820d: 0x6c342420, 0x1820e: 0x6cee7e20, 0x1820f: 0x6c3fea20,
-	0x18210: 0x6c348c20, 0x18211: 0x6d225420, 0x18212: 0x6d12ac20, 0x18213: 0x6c7c7620,
-	0x18214: 0x6cefb620, 0x18215: 0x6c7b2220, 0x18217: 0x6cee8020,
-	0x18218: 0x6d10a420, 0x18219: 0x6c903420, 0x1821a: 0x6d037a20, 0x1821b: 0x6d3b7c20,
-	0x1821c: 0x6c1b3020, 0x1821d: 0x6d00b420, 0x1821e: 0x6ca83a20, 0x1821f: 0x6c810020,
-	0x18220: 0x6d13fe20, 0x18221: 0x6d3f9e20, 0x18222: 0x6c976a20, 0x18223: 0x6d2f3820,
-	0x18224: 0x6cfa4220, 0x18225: 0x6c4bfe20, 0x18226: 0x6d00c820,
-	0x18228: 0x6c625c20, 0x18229: 0x6c8a0220, 0x1822a: 0x6d184820, 0x1822b: 0x6c607c20,
-	0x1822c: 0x6d1a8e20, 0x1822e: 0x6c266020, 0x1822f: 0x6d184a20,
-	0x18230: 0x6d020a20, 0x18231: 0x6c506220, 0x18232: 0x6d1e5c20, 0x18233: 0x6c76ea20,
-	0x18234: 0x6c163220, 0x18235: 0x6cdf3e20, 0x18236: 0x6ce13020, 0x18237: 0x6d34a220,
-	0x18238: 0x6c066e20, 0x18239: 0x6c9b5220, 0x1823a: 0x6c7ca220, 0x1823b: 0x6c153620,
-	0x1823c: 0x6c82e020, 0x1823e: 0x6cf91220,
-	// Block 0x609, offset 0x18240
-	0x18240: 0x6cf72820, 0x18241: 0x6cbc7220, 0x18242: 0x6ca47e20, 0x18243: 0x6d274e20,
-	0x18245: 0x6c8f7220, 0x18246: 0x6c3fbe20, 0x18247: 0x6d3f7220,
-	0x18249: 0x6c475e20, 0x1824a: 0x6c762820, 0x1824b: 0x6c2dd420,
-	0x1824c: 0x6c57aa20, 0x1824d: 0x6c7ce020, 0x1824f: 0x6c42fc20,
-	0x18250: 0x6ce26020, 0x18252: 0x6ccd2a20, 0x18253: 0x6c7f3a20,
-	0x18254: 0x6ca7f420, 0x18255: 0x6c3de220, 0x18256: 0x6c42fe20, 0x18257: 0x6cbc8420,
-	0x18258: 0x6c04e420, 0x18259: 0x6c632620, 0x1825a: 0x6c796a20, 0x1825b: 0x6cf85620,
-	0x1825c: 0x6d230820, 0x1825d: 0x6d3c5a20, 0x1825e: 0x6cd05820, 0x1825f: 0x6c21ba20,
-	0x18260: 0x6cfed420, 0x18261: 0x6c615220, 0x18262: 0x6caa3820, 0x18263: 0x6cff6a20,
-	0x18264: 0x6d165a20, 0x18265: 0x6d20a820, 0x18266: 0x6d145420, 0x18267: 0x6d0d3620,
-	0x18268: 0x6cd04020, 0x18269: 0x6cc4aa20, 0x1826a: 0x6c501220, 0x1826b: 0x6cc96620,
-	0x1826c: 0x6c755820, 0x1826d: 0x6d1ee820, 0x1826f: 0x6d02fc20,
-	0x18270: 0x6cadae20, 0x18271: 0x6cbfa020, 0x18272: 0x6c14b820,
-	0x18274: 0x6c106420, 0x18275: 0x6c2fdc20, 0x18276: 0x6cd88a20, 0x18277: 0x6c378620,
-	0x18279: 0x6c992820, 0x1827a: 0x6d281820, 0x1827b: 0x6c5e8a20,
-	0x1827d: 0x6cbc1e20, 0x1827e: 0x6d045820, 0x1827f: 0x6cad4a20,
-	// Block 0x60a, offset 0x18280
-	0x18280: 0x6c1e7420, 0x18281: 0x6cae5220, 0x18282: 0x6caad620, 0x18283: 0x6c6a8c20,
-	0x18284: 0x6d13d420, 0x18285: 0x6c37c220, 0x18286: 0x6c34d420,
-	0x1828a: 0x6c347c20,
-	0x1828d: 0x6cbca420, 0x1828e: 0x6c938220, 0x1828f: 0x6cc02620,
-	0x18290: 0x6cda1020, 0x18291: 0x6c11f020, 0x18292: 0x6c310020, 0x18293: 0x6cf5b820,
-	0x18294: 0x6c3c2e20, 0x18295: 0x6d172220, 0x18296: 0x6cdd0e20, 0x18297: 0x6cbc7a20,
-	0x18298: 0x6cb37620, 0x18299: 0x6d02c020, 0x1829a: 0x6ce7b020, 0x1829b: 0x6d032820,
-	0x1829c: 0x6d1f1220, 0x1829d: 0x6c06fe20, 0x1829e: 0x6c905820,
-	0x182a3: 0x6d279820,
-	0x182a4: 0x6c83ac20, 0x182a5: 0x6cde4420, 0x182a6: 0x6c802620, 0x182a7: 0x6c97b820,
-	0x182a8: 0x6cbb3a20, 0x182a9: 0x6d38d220, 0x182aa: 0x6d0e5c20, 0x182ab: 0x6cf5de20,
-	0x182ac: 0x6c923620, 0x182ad: 0x6cf5e020, 0x182ae: 0x6ccae220, 0x182af: 0x6c395220,
-	0x182b1: 0x6cefb820, 0x182b2: 0x6c383a20, 0x182b3: 0x6d179020,
-	0x182b4: 0x6ca4f420, 0x182b5: 0x6c196c20, 0x182b6: 0x6ce09820, 0x182b7: 0x6c5ec620,
-	0x182b8: 0x6cd5d020, 0x182b9: 0x6cb10e20, 0x182ba: 0x6c012e20, 0x182bb: 0x6c7ac420,
-	0x182bc: 0x6c139820, 0x182be: 0x6cfb5a20, 0x182bf: 0x6d361c20,
-	// Block 0x60b, offset 0x182c0
-	0x182c2: 0x6c3c4820, 0x182c3: 0x6c88f420,
-	0x182c4: 0x6d0a0a20, 0x182c5: 0x6d06ee20, 0x182c6: 0x6c9d5020, 0x182c7: 0x6c5bd620,
-	0x182c8: 0x6ca29220, 0x182c9: 0x6d1d8c20, 0x182ca: 0x6d2df420, 0x182cb: 0x6d17de20,
-	0x182cc: 0x6caa1e20, 0x182cd: 0x6ce10020, 0x182ce: 0x6cf63e20, 0x182cf: 0x6d27ac20,
-	0x182d0: 0x6cd5e220, 0x182d1: 0x6c3e9420, 0x182d2: 0x6d17e020, 0x182d3: 0x6c26b020,
-	0x182d5: 0x6c881e20, 0x182d6: 0x6c127a20, 0x182d7: 0x6c116e20,
-	0x182d8: 0x6c725e20, 0x182d9: 0x6c927a20, 0x182da: 0x6cdae220, 0x182db: 0x6ca59a20,
-	0x182dc: 0x6c02dc20, 0x182dd: 0x6c018c20, 0x182de: 0x6cba6420,
-	0x182e0: 0x6c24d420, 0x182e1: 0x6c232420, 0x182e3: 0x6cc48220,
-	0x182e4: 0x6ca73220, 0x182e5: 0x6c96fe20, 0x182e6: 0x6d030220, 0x182e7: 0x6d26e020,
-	0x182e8: 0x6ca38220, 0x182e9: 0x6c02ee20, 0x182ea: 0x6cd01620, 0x182eb: 0x6c96dc20,
-	0x182ee: 0x6c807a20, 0x182ef: 0x6cf6e620,
-	0x182f0: 0x6d26f820, 0x182f1: 0x6d372620, 0x182f2: 0x6cf26420, 0x182f3: 0x6c57f620,
-	0x182f4: 0x6c9c1820, 0x182f5: 0x6ca7bc20, 0x182f6: 0x6ced6620, 0x182f7: 0x6c9c9c20,
-	0x182f8: 0x6ca89e20, 0x182f9: 0x6cc1f820, 0x182fa: 0x6d29b820, 0x182fb: 0x6c893e20,
-	0x182fc: 0x6d34c620, 0x182fd: 0x6d3eda20, 0x182fe: 0x6c4d1a20, 0x182ff: 0x6d066e20,
-	// Block 0x60c, offset 0x18300
-	0x18300: 0x6c501820, 0x18301: 0x6d078020, 0x18302: 0x6d35b020, 0x18303: 0x6c9e1220,
-	0x18304: 0x6c214820, 0x18305: 0x6c46b020, 0x18307: 0x6c216020,
-	0x18308: 0x6c946a20, 0x18309: 0x6d3a9820, 0x1830a: 0x6cd43820, 0x1830b: 0x6c8a5e20,
-	0x1830c: 0x6c6fcc20, 0x1830d: 0x6d014020, 0x1830e: 0x6c2f9220, 0x1830f: 0x6c6bae20,
-	0x18310: 0x6cc65220, 0x18311: 0x6c982e20, 0x18313: 0x6c788a20,
-	0x18314: 0x6d119620, 0x18315: 0x6ca8fc20, 0x18316: 0x6d148e20, 0x18317: 0x6c80a620,
-	0x18318: 0x6d1df020, 0x18319: 0x6d1a4420, 0x1831a: 0x6d0c7e20, 0x1831b: 0x6cda9e20,
-	0x1831d: 0x6c8baa20, 0x1831e: 0x6d0aec20, 0x1831f: 0x6c98d820,
-	0x18320: 0x6c9ff420, 0x18321: 0x6d41aa20, 0x18322: 0x6d225620, 0x18323: 0x6d179220,
-	0x18324: 0x6c46b220, 0x18325: 0x6c9cfa20, 0x18326: 0x6c75c820, 0x18327: 0x6cf1e420,
-	0x18329: 0x6c773a20, 0x1832a: 0x6c2d7020, 0x1832b: 0x6c8f9820,
-	0x1832d: 0x6d040620, 0x1832e: 0x6c255420, 0x1832f: 0x6cbbec20,
-	0x18330: 0x6c9dde20, 0x18331: 0x6c9c1c20, 0x18332: 0x6cbdf420,
-	0x18334: 0x6cecc220, 0x18335: 0x6c2a5e20, 0x18336: 0x6c009420,
-	0x18338: 0x6c0b8c20, 0x18339: 0x6ca9fe20, 0x1833a: 0x6c882020, 0x1833b: 0x6c6caa20,
-	0x1833c: 0x6d207020, 0x1833d: 0x6c20bc20, 0x1833e: 0x6d426420, 0x1833f: 0x6c0fe020,
-	// Block 0x60d, offset 0x18340
-	0x18340: 0x6c5a9020, 0x18341: 0x6d11f020, 0x18342: 0x6ce9e020, 0x18343: 0x6c61e220,
-	0x18344: 0x6c012420, 0x18345: 0x6c95fa20, 0x18346: 0x6c613220, 0x18347: 0x6cefba20,
-	0x18348: 0x6c0e7420, 0x18349: 0x6d289020, 0x1834a: 0x6d06f020, 0x1834b: 0x6ca71220,
-	0x1834c: 0x6d281420, 0x1834e: 0x6c039820, 0x1834f: 0x6d301a20,
-	0x18350: 0x6c705420, 0x18351: 0x6cef9020, 0x18352: 0x6d016e20, 0x18353: 0x6cb75420,
-	0x18354: 0x6d149020, 0x18355: 0x6d017020, 0x18356: 0x6c222a20, 0x18357: 0x6cc02820,
-	0x18358: 0x6c316a20, 0x18359: 0x6ca7d420, 0x1835a: 0x6cb78a20, 0x1835b: 0x6c613c20,
-	0x1835c: 0x6ce99420, 0x1835e: 0x6cd94c20, 0x1835f: 0x6c2d7420,
-	0x18360: 0x6c816820, 0x18361: 0x6d2e2c20,
-	0x18364: 0x6d1a1c20, 0x18365: 0x6c132620, 0x18366: 0x6c611220, 0x18367: 0x6c5b8620,
-	0x18368: 0x6d3ede20, 0x18369: 0x6c7f8820, 0x1836a: 0x6ca49020, 0x1836b: 0x6c71f020,
-	0x1836c: 0x6cbdfc20, 0x1836d: 0x6c272620, 0x1836f: 0x6c6a6020,
-	0x18370: 0x6d062620, 0x18371: 0x6c22fa20, 0x18372: 0x6d1e6e20, 0x18373: 0x6c30d820,
-	0x18374: 0x6c1afe20, 0x18376: 0x6c9f9020, 0x18377: 0x6c59a820,
-	0x18378: 0x6cdc2020, 0x18379: 0x6c785620, 0x1837a: 0x6d40aa20, 0x1837b: 0x6c501a20,
-	0x1837c: 0x6c19ba20, 0x1837d: 0x6d094220, 0x1837e: 0x6ca5bc20, 0x1837f: 0x6c1bec20,
-	// Block 0x60e, offset 0x18380
-	0x18380: 0x6c87f020, 0x18381: 0x6c01a020, 0x18382: 0x6ca22a20, 0x18383: 0x6cd7ca20,
-	0x18384: 0x6cfdb220, 0x18385: 0x6d0f9020, 0x18386: 0x6c572c20, 0x18387: 0x6c261620,
-	0x18388: 0x6cc02a20, 0x18389: 0x6c814c20, 0x1838a: 0x6c3e2e20, 0x1838b: 0x6c334620,
-	0x1838c: 0x6c984c20, 0x1838d: 0x6c80a820, 0x1838e: 0x6ceb7220, 0x1838f: 0x6c4df220,
-	0x18390: 0x6c988820, 0x18391: 0x6c0ed220, 0x18392: 0x6cc43220, 0x18393: 0x6cb59e20,
-	0x18394: 0x6c4df420, 0x18396: 0x6c905c20,
-	0x18398: 0x6ce57e20, 0x18399: 0x6d2aba20, 0x1839a: 0x6cb5ba20, 0x1839b: 0x6d298a20,
-	0x1839c: 0x6c9c4620, 0x1839d: 0x6cadd220, 0x1839e: 0x6d2e5620, 0x1839f: 0x6cfe2c20,
-	0x183a0: 0x6c429c20, 0x183a2: 0x6cb5bc20,
-	0x183a4: 0x6c923820, 0x183a6: 0x6d283020, 0x183a7: 0x6c362e20,
-	0x183a8: 0x6c329a20, 0x183a9: 0x6c9f5020, 0x183aa: 0x6cee8420, 0x183ab: 0x6cc2ec20,
-	0x183ac: 0x6cda1c20, 0x183ad: 0x6c9f5220, 0x183ae: 0x6ce85e20,
-	0x183b0: 0x6ca03620, 0x183b1: 0x6d11b420, 0x183b2: 0x6c746220, 0x183b3: 0x6c862c20,
-	0x183b4: 0x6c7b2620, 0x183b5: 0x6c42a420, 0x183b6: 0x6d257e20, 0x183b7: 0x6c26fa20,
-	0x183b9: 0x6c816220, 0x183ba: 0x6c909c20, 0x183bb: 0x6cba6620,
-	0x183bc: 0x6c025c20, 0x183bd: 0x6c0c7620, 0x183be: 0x6d1d9a20, 0x183bf: 0x6c989820,
-	// Block 0x60f, offset 0x183c0
-	0x183c0: 0x6c29e020, 0x183c2: 0x6c025e20,
-	0x183c4: 0x6cf78e20, 0x183c5: 0x6c3ed420, 0x183c6: 0x6c27f820, 0x183c7: 0x6c701420,
-	0x183c8: 0x6cc90220, 0x183c9: 0x6ce77a20, 0x183ca: 0x6cc13220, 0x183cb: 0x6c368220,
-	0x183cc: 0x6cb51a20, 0x183cd: 0x6c607e20, 0x183ce: 0x6c608020, 0x183cf: 0x6c574c20,
-	0x183d0: 0x6c69b820, 0x183d1: 0x6d41cc20, 0x183d2: 0x6c0c7a20, 0x183d3: 0x6c9b4620,
-	0x183d4: 0x6c045620, 0x183d5: 0x6cf01420, 0x183d6: 0x6d160e20, 0x183d7: 0x6c02f020,
-	0x183d8: 0x6d229e20, 0x183d9: 0x6c4ff020, 0x183da: 0x6c336620, 0x183db: 0x6cf31a20,
-	0x183dc: 0x6ca6d620, 0x183dd: 0x6c249e20, 0x183df: 0x6c846e20,
-	0x183e0: 0x6c916c20, 0x183e1: 0x6ca7be20, 0x183e2: 0x6c57f820, 0x183e3: 0x6c86f020,
-	0x183e5: 0x6c941c20, 0x183e6: 0x6c3c7e20, 0x183e7: 0x6c9d0c20,
-	0x183e8: 0x6d249e20, 0x183ea: 0x6c71e620,
-	0x183ed: 0x6d2dec20, 0x183ee: 0x6cae8220, 0x183ef: 0x6d15b220,
-	0x183f1: 0x6c61e420, 0x183f2: 0x6c08ae20,
-	0x183f4: 0x6cc5b420, 0x183f5: 0x6c597220, 0x183f6: 0x6c388020, 0x183f7: 0x6c43c220,
-	0x183f8: 0x6c7a8020, 0x183f9: 0x6c6bb420, 0x183fa: 0x6ccbc220,
-	0x183fc: 0x6cd7c220, 0x183fd: 0x6ce71620, 0x183fe: 0x6d24c820, 0x183ff: 0x6d3e0420,
-	// Block 0x610, offset 0x18400
-	0x18400: 0x6c092c20, 0x18401: 0x6c7ad820, 0x18402: 0x6c859e20, 0x18403: 0x6c598220,
-	0x18404: 0x6d09e620, 0x18405: 0x6caad820, 0x18407: 0x6d303820,
-	0x18408: 0x6cf20220, 0x18409: 0x6cfb4420, 0x1840a: 0x6cb85a20, 0x1840b: 0x6d127a20,
-	0x1840c: 0x6c996c20, 0x1840f: 0x6cd5d420,
-	0x18411: 0x6cbb7a20, 0x18412: 0x6d3cd220, 0x18413: 0x6c7d6020,
-	0x18414: 0x6cf4ea20, 0x18415: 0x6d1bb820, 0x18416: 0x6c207220, 0x18417: 0x6ce33e20,
-	0x18418: 0x6c880e20, 0x18419: 0x6c087820, 0x1841a: 0x6c464e20, 0x1841b: 0x6c986820,
-	0x1841c: 0x6d01d020, 0x1841d: 0x6c3cec20, 0x1841e: 0x6c909e20, 0x1841f: 0x6d2a1820,
-	0x18420: 0x6d335e20, 0x18421: 0x6c1ea220, 0x18422: 0x6c980020, 0x18423: 0x6c8faa20,
-	0x18425: 0x6d1b8620, 0x18426: 0x6cb1f020, 0x18427: 0x6d337020,
-	0x18428: 0x6c653020, 0x18429: 0x6c945420, 0x1842a: 0x6ca7e420, 0x1842b: 0x6d179a20,
-	0x1842d: 0x6c623420, 0x1842e: 0x6c60a420, 0x1842f: 0x6d2d1a20,
-	0x18430: 0x6d221a20, 0x18431: 0x6c6fa620, 0x18432: 0x6c585620, 0x18433: 0x6d34e220,
-	0x18434: 0x6c7e3c20, 0x18435: 0x6c8ca820, 0x18436: 0x6d34f020, 0x18437: 0x6c079420,
-	0x18438: 0x6d2cae20, 0x18439: 0x6c705820, 0x1843a: 0x6c286620, 0x1843b: 0x6c8a9020,
-	0x1843c: 0x6d16e820, 0x1843d: 0x6d2fa020, 0x1843e: 0x6cfc8e20, 0x1843f: 0x6c1bf820,
-	// Block 0x611, offset 0x18440
-	0x18440: 0x6c22ba20, 0x18441: 0x6c1b8420, 0x18442: 0x6d0d5420, 0x18443: 0x6c80aa20,
-	0x18444: 0x6c310220, 0x18445: 0x6c905e20, 0x18446: 0x6c14ec20,
-	0x18448: 0x6ce9a020, 0x18449: 0x6c13da20, 0x1844a: 0x6c006620, 0x1844b: 0x6c1b9c20,
-	0x1844d: 0x6d1cec20, 0x1844e: 0x6d305a20, 0x1844f: 0x6ce7ee20,
-	0x18451: 0x6ce9a620, 0x18452: 0x6c13f420, 0x18453: 0x6d11be20,
-	0x18454: 0x6d3ffe20, 0x18456: 0x6cac4020, 0x18457: 0x6cbc5620,
-	0x18458: 0x6c883220, 0x18459: 0x6cbd9c20, 0x1845a: 0x6c91d820, 0x1845b: 0x6d0eb820,
-	0x1845c: 0x6c778e20, 0x1845d: 0x6cda5e20, 0x1845e: 0x6d192820, 0x1845f: 0x6c14b420,
-	0x18460: 0x6c6ef620, 0x18461: 0x6c67b020, 0x18463: 0x6c6ea820,
-	0x18465: 0x6c305c20, 0x18467: 0x6c733620,
-	0x18468: 0x6c4e8420, 0x18469: 0x6c2c1020,
-	0x1846c: 0x6c52f620, 0x1846e: 0x6c1b0820, 0x1846f: 0x6c2dae20,
-	0x18470: 0x6c093020, 0x18472: 0x6d0a6e20, 0x18473: 0x6c913e20,
-	0x18475: 0x6d007e20, 0x18476: 0x6c094420,
-	0x18478: 0x6c095c20, 0x1847a: 0x6cfb4620, 0x1847b: 0x6cc8c820,
-	0x1847c: 0x6c0d1420, 0x1847d: 0x6c379620, 0x1847e: 0x6c736220,
-	// Block 0x612, offset 0x18480
-	0x18480: 0x6d324820, 0x18481: 0x6c072e20, 0x18482: 0x6c365620, 0x18483: 0x6d227a20,
-	0x18484: 0x6cc1b220, 0x18485: 0x6d299420, 0x18486: 0x6c9ca820, 0x18487: 0x6d16b220,
-	0x18488: 0x6cd8e620,
-	0x1848c: 0x6ccd6e20, 0x1848d: 0x6cdf1620, 0x1848e: 0x6ca28220, 0x1848f: 0x6c6e8220,
-	0x18490: 0x6c0b9620, 0x18491: 0x6cc68e20, 0x18492: 0x6c136e20, 0x18493: 0x6c120220,
-	0x18494: 0x6c2f4820,
-	0x18499: 0x6c2b5620, 0x1849a: 0x6ce7ac20, 0x1849b: 0x6cde3220,
-	0x1849c: 0x6d03ce20, 0x1849d: 0x6cd90a20, 0x1849e: 0x6c343e20, 0x1849f: 0x6cf85e20,
-	0x184a0: 0x6ce1b220, 0x184a2: 0x6ce31620, 0x184a3: 0x6ccd7820,
-	0x184a4: 0x6c667620, 0x184a5: 0x6d35da20, 0x184a6: 0x6cee7220, 0x184a7: 0x6d1b4620,
-	0x184aa: 0x6c58d620, 0x184ab: 0x6d37f220,
-	0x184ac: 0x6cb78c20, 0x184ad: 0x6d3f8820, 0x184af: 0x6d01c220,
-	0x184b0: 0x6d01d220, 0x184b1: 0x6d2ade20, 0x184b2: 0x6cef1e20,
-	0x184b5: 0x6cde9820, 0x184b6: 0x6d2d9820, 0x184b7: 0x6ca95820,
-	0x184bb: 0x6d166620,
-	0x184bc: 0x6cc58420, 0x184bd: 0x6cd59620, 0x184be: 0x6c142a20, 0x184bf: 0x6d3d1e20,
-	// Block 0x613, offset 0x184c0
-	0x184c1: 0x6c9e0620, 0x184c2: 0x6c5fdc20, 0x184c3: 0x6c39a420,
-	0x184c4: 0x6cadfe20, 0x184c5: 0x6c008e20, 0x184c6: 0x6c392020, 0x184c7: 0x6c029a20,
-	0x184c8: 0x6cbe0220, 0x184c9: 0x6cb82220, 0x184ca: 0x6cffd020, 0x184cb: 0x6c3b1020,
-	0x184cc: 0x6c417420, 0x184cd: 0x6cbb6620, 0x184ce: 0x6c437a20, 0x184cf: 0x6ce71c20,
-	0x184d0: 0x6c14ba20, 0x184d1: 0x6d201620, 0x184d2: 0x6c42b420, 0x184d3: 0x6c07a820,
-	0x184d4: 0x6c3fb420, 0x184d5: 0x6c1f0c20, 0x184d6: 0x6d3aac20,
-	0x184d8: 0x6d390020, 0x184da: 0x6c4f6220, 0x184db: 0x6ca8e420,
-	0x184dc: 0x6c73f820, 0x184dd: 0x6c1cb020, 0x184de: 0x6c143820, 0x184df: 0x6c799c20,
-	0x184e0: 0x6c8ae820, 0x184e1: 0x6c85a020, 0x184e2: 0x6d22e020,
-	0x184e4: 0x6d20d620, 0x184e5: 0x6c4d5820, 0x184e6: 0x6c85a220, 0x184e7: 0x6c53ee20,
-	0x184e8: 0x6c45d820, 0x184e9: 0x6c789820, 0x184ea: 0x6d260c20, 0x184eb: 0x6c2a6220,
-	0x184ec: 0x6c5b9a20, 0x184ee: 0x6c4a2220, 0x184ef: 0x6c6f0620,
-	0x184f0: 0x6d429a20, 0x184f1: 0x6c3fce20, 0x184f2: 0x6cbcb220, 0x184f3: 0x6c06c820,
-	0x184f4: 0x6c180a20, 0x184f5: 0x6c223e20, 0x184f6: 0x6c985020, 0x184f7: 0x6c4d9820,
-	0x184f8: 0x6cf86a20, 0x184f9: 0x6cc02e20, 0x184fa: 0x6c5a4620,
-	0x184fd: 0x6c1d9620, 0x184fe: 0x6cca4c20, 0x184ff: 0x6d0bf420,
-	// Block 0x614, offset 0x18500
-	0x18500: 0x6d345620, 0x18501: 0x6c2a6c20, 0x18502: 0x6ce27420, 0x18503: 0x6c9aec20,
-	0x18504: 0x6c8ce220, 0x18505: 0x6cd45e20, 0x18506: 0x6ce9fa20, 0x18507: 0x6c119220,
-	0x18508: 0x6c2ea020, 0x18509: 0x6c181420, 0x1850a: 0x6cae9c20, 0x1850b: 0x6d13f020,
-	0x1850c: 0x6c711220, 0x1850d: 0x6c61e820, 0x1850e: 0x6c7f0620, 0x1850f: 0x6ce4ea20,
-	0x18510: 0x6d261a20, 0x18512: 0x6c112820, 0x18513: 0x6cb4e420,
-	0x18514: 0x6d230e20, 0x18515: 0x6c880220, 0x18516: 0x6c231420,
-	0x1851a: 0x6d212020, 0x1851b: 0x6c603220,
-	0x1851c: 0x6cf09420, 0x1851d: 0x6c9cf020, 0x1851e: 0x6cdc3e20, 0x1851f: 0x6d00aa20,
-	0x18520: 0x6d059620, 0x18521: 0x6c1c1c20, 0x18522: 0x6cc06020, 0x18523: 0x6c5bde20,
-	0x18525: 0x6d212220, 0x18526: 0x6cbcc620, 0x18527: 0x6cd74e20,
-	0x18528: 0x6cd72620, 0x18529: 0x6c349020, 0x1852a: 0x6c908820,
-	0x1852c: 0x6cad0620, 0x1852d: 0x6cdf7820, 0x1852e: 0x6d393020, 0x1852f: 0x6d1af420,
-	0x18530: 0x6ccab420, 0x18531: 0x6c3a5a20, 0x18532: 0x6c187620, 0x18533: 0x6d258020,
-	0x18534: 0x6d151620, 0x18535: 0x6c5d2a20, 0x18536: 0x6ccb3420, 0x18537: 0x6d131020,
-	0x18538: 0x6c9fbc20, 0x18539: 0x6c3bbe20, 0x1853a: 0x6c513620,
-	0x1853c: 0x6d1b6420, 0x1853d: 0x6c130220, 0x1853e: 0x6ca6b620, 0x1853f: 0x6c02e820,
-	// Block 0x615, offset 0x18540
-	0x18540: 0x6c3cb420, 0x18541: 0x6c883420, 0x18542: 0x6c16be20, 0x18543: 0x6c15c820,
-	0x18544: 0x6c967020, 0x18545: 0x6c2e5a20, 0x18546: 0x6c54e620, 0x18547: 0x6c928020,
-	0x18549: 0x6d184c20, 0x1854a: 0x6c574e20, 0x1854b: 0x6d2bf220,
-	0x1854c: 0x6c550020, 0x1854d: 0x6c368420, 0x1854e: 0x6c5dee20, 0x1854f: 0x6cdcf820,
-	0x18550: 0x6ca6bc20, 0x18551: 0x6cfcf620, 0x18552: 0x6c842620, 0x18553: 0x6cfcf820,
-	0x18554: 0x6d0eba20, 0x18555: 0x6c8fa420, 0x18556: 0x6c9af620, 0x18557: 0x6c6c5c20,
-	0x18558: 0x6c5f5020, 0x1855a: 0x6c0b5a20, 0x1855b: 0x6d22a420,
-	0x1855c: 0x6c5e0620, 0x1855d: 0x6c9ea420, 0x1855e: 0x6c1df220, 0x1855f: 0x6c970620,
-	0x18561: 0x6c822c20, 0x18562: 0x6c6b5620, 0x18563: 0x6cf10a20,
-	0x18564: 0x6d192a20, 0x18565: 0x6d07e020, 0x18566: 0x6cf91420, 0x18567: 0x6c11e220,
-	0x18568: 0x6c7fe420, 0x18569: 0x6d1b2220, 0x1856a: 0x6d027220, 0x1856b: 0x6d28a620,
-	0x1856c: 0x6c95d220, 0x1856d: 0x6c8dd220, 0x1856e: 0x6cb97020, 0x1856f: 0x6c5d9a20,
-	0x18570: 0x6c646a20, 0x18571: 0x6cf2a820,
-	0x18574: 0x6c43d420, 0x18575: 0x6d399020, 0x18576: 0x6c2e8220, 0x18577: 0x6d1e2c20,
-	0x18578: 0x6c614220, 0x18579: 0x6d0fc020, 0x1857a: 0x6cc82220, 0x1857b: 0x6cf79a20,
-	0x1857c: 0x6cd6f020, 0x1857d: 0x6d240820, 0x1857e: 0x6d146020, 0x1857f: 0x6cb9f220,
-	// Block 0x616, offset 0x18580
-	0x18580: 0x6c5fde20, 0x18581: 0x6cc26420, 0x18582: 0x6ce48a20, 0x18583: 0x6cd42820,
-	0x18584: 0x6cb9ee20, 0x18585: 0x6ca26020, 0x18586: 0x6c6c2620, 0x18587: 0x6c992420,
-	0x18588: 0x6d1ac820, 0x18589: 0x6c412a20, 0x1858a: 0x6cb2ee20, 0x1858b: 0x6d084020,
-	0x1858c: 0x6c994220, 0x1858d: 0x6c39c020, 0x1858e: 0x6d0b1020, 0x1858f: 0x6c425420,
-	0x18590: 0x6cd95020, 0x18591: 0x6c5a8a20, 0x18592: 0x6d22d620, 0x18593: 0x6c484820,
-	0x18594: 0x6c48e820, 0x18595: 0x6c8ef820, 0x18596: 0x6c35de20, 0x18597: 0x6d3eec20,
-	0x18598: 0x6d3f3220, 0x18599: 0x6c093820, 0x1859a: 0x6cec1620,
-	0x1859c: 0x6c8acc20, 0x1859f: 0x6c7af620,
-	0x185a1: 0x6c4d5a20, 0x185a2: 0x6d19b020, 0x185a3: 0x6d398820,
-	0x185a4: 0x6c1d4820, 0x185a5: 0x6cfbea20, 0x185a6: 0x6d087420,
-	0x185a8: 0x6cc01420, 0x185a9: 0x6cae0c20, 0x185aa: 0x6c4ad620, 0x185ab: 0x6c373e20,
-	0x185ac: 0x6c45dc20, 0x185ad: 0x6cbf0820, 0x185ae: 0x6c54ac20, 0x185af: 0x6c81a620,
-	0x185b0: 0x6c85a420, 0x185b1: 0x6c192220, 0x185b2: 0x6cca1620, 0x185b3: 0x6d3df420,
-	0x185b4: 0x6cf2ae20, 0x185b5: 0x6cb3d420, 0x185b6: 0x6c793020, 0x185b7: 0x6cea8820,
-	0x185b8: 0x6cae5c20, 0x185b9: 0x6ce27620, 0x185ba: 0x6cde4a20, 0x185bb: 0x6d3d4c20,
-	0x185bc: 0x6c0c8e20, 0x185bd: 0x6c480e20, 0x185be: 0x6c54be20,
-	// Block 0x617, offset 0x185c0
-	0x185c0: 0x6c0de020, 0x185c1: 0x6d35de20, 0x185c2: 0x6c302e20, 0x185c3: 0x6c332220,
-	0x185c4: 0x6d387220, 0x185c5: 0x6ca58a20, 0x185c6: 0x6c8c1c20, 0x185c7: 0x6cb32a20,
-	0x185c8: 0x6c613420, 0x185c9: 0x6c9f5420, 0x185ca: 0x6cefc220, 0x185cb: 0x6c17ea20,
-	0x185cc: 0x6c46b620, 0x185cd: 0x6c053220, 0x185ce: 0x6cc7aa20, 0x185cf: 0x6cdfa820,
-	0x185d0: 0x6c103a20, 0x185d1: 0x6d3f8c20, 0x185d2: 0x6c7c3c20, 0x185d3: 0x6c815820,
-	0x185d4: 0x6c4ec220, 0x185d5: 0x6d1c7020, 0x185d6: 0x6d362620, 0x185d7: 0x6c6ac620,
-	0x185d8: 0x6d040220, 0x185d9: 0x6d00b820, 0x185da: 0x6d0a1620, 0x185db: 0x6ccd4620,
-	0x185dc: 0x6cb9a620, 0x185dd: 0x6d004620, 0x185de: 0x6cdacc20, 0x185df: 0x6c4d1820,
-	0x185e0: 0x6c9d5820, 0x185e1: 0x6c5cee20, 0x185e2: 0x6caf7220,
-	0x185e4: 0x6c5be020, 0x185e5: 0x6ca34c20, 0x185e6: 0x6cd96220, 0x185e7: 0x6c07bc20,
-	0x185e8: 0x6c1d7220, 0x185e9: 0x6c6ae220, 0x185ea: 0x6c5a6e20, 0x185eb: 0x6c802c20,
-	0x185ed: 0x6c56b420, 0x185ee: 0x6c30b620, 0x185ef: 0x6c5de420,
-	0x185f0: 0x6c4bd420, 0x185f1: 0x6d111c20, 0x185f2: 0x6c130420, 0x185f3: 0x6c4b1220,
-	0x185f4: 0x6c66a620, 0x185f5: 0x6c65c020, 0x185f6: 0x6c29e620, 0x185f7: 0x6c6d2420,
-	0x185f8: 0x6c96cc20, 0x185f9: 0x6c5bf820, 0x185fa: 0x6c9e3420, 0x185fb: 0x6c11a820,
-	0x185fc: 0x6c94ba20, 0x185fd: 0x6cb0aa20, 0x185fe: 0x6d105a20, 0x185ff: 0x6c726420,
-	// Block 0x618, offset 0x18600
-	0x18600: 0x6c726620, 0x18601: 0x6cc3dc20, 0x18603: 0x6cb91220,
-	0x18604: 0x6ccc8e20, 0x18606: 0x6c701820, 0x18607: 0x6c5df020,
-	0x18608: 0x6d27fa20, 0x18609: 0x6c26b820, 0x1860a: 0x6d07ba20, 0x1860b: 0x6cff0420,
-	0x1860c: 0x6c3ac620, 0x1860d: 0x6c131020, 0x1860e: 0x6d132420,
-	0x18610: 0x6c2a9820, 0x18612: 0x6cbda020, 0x18613: 0x6c5b6a20,
-	0x18614: 0x6cea6c20, 0x18616: 0x6cbb2420, 0x18617: 0x6cf7a020,
-	0x18618: 0x6ca64a20, 0x18619: 0x6cc9ce20, 0x1861a: 0x6c9b5620, 0x1861b: 0x6ce95e20,
-	0x1861c: 0x6c804220, 0x1861d: 0x6c4ff220, 0x1861e: 0x6c22e620, 0x1861f: 0x6d2d4e20,
-	0x18620: 0x6c023220, 0x18621: 0x6c95c420, 0x18622: 0x6c9efa20,
-	0x18624: 0x6c3daa20, 0x18626: 0x6d010c20, 0x18627: 0x6c0f8c20,
-	0x18628: 0x6c5c6820, 0x18629: 0x6cbeb820, 0x1862a: 0x6d010e20,
-	0x1862d: 0x6c0fa220, 0x1862e: 0x6cb9dc20, 0x1862f: 0x6cb34020,
-	0x18630: 0x6c696820, 0x18631: 0x6c750a20, 0x18632: 0x6c7dc620, 0x18633: 0x6cd97a20,
-	0x18634: 0x6c718e20, 0x18635: 0x6c36f020, 0x18636: 0x6ca8c020, 0x18637: 0x6cb95a20,
-	0x18638: 0x6c2f1a20, 0x18639: 0x6c2f1c20, 0x1863b: 0x6cb4da20,
-	0x1863c: 0x6d33c220, 0x1863d: 0x6cb5c620, 0x1863e: 0x6d3c8620, 0x1863f: 0x6c7a1c20,
-	// Block 0x619, offset 0x18640
-	0x18640: 0x6d20b420, 0x18641: 0x6cbd5820, 0x18642: 0x6c7a2620, 0x18643: 0x6c50d420,
-	0x18644: 0x6c3e0a20, 0x18646: 0x6c2be220, 0x18647: 0x6cfca620,
-	0x18648: 0x6c4b3c20, 0x18649: 0x6c50ee20, 0x1864a: 0x6cc44620, 0x1864b: 0x6c4eaa20,
-	0x1864c: 0x6ce7b420, 0x1864d: 0x6c0ee620, 0x1864e: 0x6ccd3e20, 0x1864f: 0x6c08de20,
-	0x18650: 0x6c924e20, 0x18651: 0x6d12f020, 0x18652: 0x6ca5e220, 0x18653: 0x6c1fba20,
-	0x18654: 0x6cca5020, 0x18655: 0x6c2e2820, 0x18656: 0x6c925020, 0x18657: 0x6ce81220,
-	0x18658: 0x6c88bc20, 0x18659: 0x6c786620, 0x1865a: 0x6cca5220, 0x1865b: 0x6d31e420,
-	0x1865c: 0x6c1fc020, 0x1865d: 0x6c890220, 0x1865e: 0x6c998c20,
-	0x18660: 0x6cb90620, 0x18661: 0x6c769220, 0x18662: 0x6cceb620, 0x18663: 0x6cfeea20,
-	0x18664: 0x6c0a2020, 0x18665: 0x6d2bf420, 0x18666: 0x6d1b7220, 0x18667: 0x6cf6bc20,
-	0x18668: 0x6ccdaa20, 0x18669: 0x6cdb1220, 0x1866a: 0x6cc98e20, 0x1866b: 0x6cc8e820,
-	0x1866c: 0x6c219c20, 0x1866d: 0x6c917c20, 0x1866e: 0x6c8d9820, 0x1866f: 0x6c13c620,
-	0x18671: 0x6c593020,
-	0x18674: 0x6c63a220, 0x18675: 0x6c04ee20, 0x18676: 0x6c553220, 0x18677: 0x6c30ec20,
-	0x18679: 0x6c90f020, 0x1867a: 0x6c70d220, 0x1867b: 0x6c73a620,
-	0x1867c: 0x6c785c20, 0x1867d: 0x6cdd5220, 0x1867e: 0x6c95f020, 0x1867f: 0x6d303c20,
-	// Block 0x61a, offset 0x18680
-	0x18680: 0x6c2f7220, 0x18681: 0x6c32d220, 0x18682: 0x6d3b1c20, 0x18683: 0x6d0d3a20,
-	0x18684: 0x6cacf420, 0x18685: 0x6c13d820,
-	0x1868a: 0x6d15e620,
-	0x1868d: 0x6d1f3420, 0x1868e: 0x6c5ae620, 0x1868f: 0x6d11c820,
-	0x18690: 0x6d118020, 0x18691: 0x6d34d620, 0x18692: 0x6c45d220, 0x18693: 0x6cb6d420,
-	0x18694: 0x6c44ac20, 0x18697: 0x6c545c20,
-	0x18698: 0x6c9d2420, 0x18699: 0x6c3df020, 0x1869a: 0x6c54a020, 0x1869b: 0x6c4a1a20,
-	0x1869c: 0x6ce05620, 0x1869d: 0x6c2b1a20, 0x1869f: 0x6d0c7220,
-	0x186a2: 0x6cc26620,
-	0x186a4: 0x6c16e420, 0x186a5: 0x6ca02e20, 0x186a6: 0x6ce1bc20, 0x186a7: 0x6c063c20,
-	0x186a8: 0x6c011e20, 0x186ab: 0x6cfbf620,
-	0x186af: 0x6c996e20,
-	0x186b0: 0x6c811c20, 0x186b1: 0x6ca42220, 0x186b2: 0x6c070c20, 0x186b3: 0x6c18be20,
-	0x186b5: 0x6c3a0420, 0x186b6: 0x6d38e620, 0x186b7: 0x6c5ece20,
-	0x186b8: 0x6c6a1420, 0x186b9: 0x6cd5d620, 0x186bb: 0x6c7dd220,
-	0x186bc: 0x6c2ea620, 0x186bd: 0x6c925220,
-	// Block 0x61b, offset 0x186c0
-	0x186c2: 0x6d215020, 0x186c3: 0x6cdf2620,
-	0x186c4: 0x6c162e20, 0x186c5: 0x6c97de20, 0x186c6: 0x6c9fb820, 0x186c7: 0x6c593220,
-	0x186c8: 0x6cf15420, 0x186c9: 0x6caa9220, 0x186ca: 0x6c593420, 0x186cb: 0x6c540a20,
-	0x186cc: 0x6c6e8e20, 0x186cd: 0x6c0f2620, 0x186ce: 0x6cfc2020, 0x186cf: 0x6c864820,
-	0x186d0: 0x6c6d2620, 0x186d2: 0x6c989c20, 0x186d3: 0x6cb1ba20,
-	0x186d4: 0x6c4fde20, 0x186d5: 0x6d0fd620, 0x186d7: 0x6cfd0a20,
-	0x186d8: 0x6cdb1420, 0x186d9: 0x6cf01620, 0x186da: 0x6c183c20, 0x186db: 0x6cf6be20,
-	0x186dc: 0x6c6d4c20, 0x186dd: 0x6c135a20, 0x186de: 0x6c51e420, 0x186df: 0x6c3b4020,
-	0x186e0: 0x6ccca620, 0x186e1: 0x6c8d6a20, 0x186e3: 0x6c337220,
-	0x186e4: 0x6cb54220, 0x186e5: 0x6cb4b820, 0x186e6: 0x6d26fa20, 0x186e7: 0x6c0f8e20,
-	0x186e9: 0x6c5c7820, 0x186ea: 0x6c2f0220, 0x186eb: 0x6d0ef620,
-	0x186ec: 0x6c72d020, 0x186ed: 0x6c69e020, 0x186ee: 0x6ca44c20, 0x186ef: 0x6c8b8620,
-	0x186f0: 0x6d20aa20, 0x186f1: 0x6ce41c20, 0x186f2: 0x6ce47620, 0x186f3: 0x6cf42a20,
-	0x186f4: 0x6c53a220, 0x186f5: 0x6cff7220, 0x186f6: 0x6c503620,
-	0x186f8: 0x6ce55c20, 0x186f9: 0x6d32ca20, 0x186fb: 0x6c59a020,
-	0x186fc: 0x6c403420, 0x186ff: 0x6cea2c20,
-	// Block 0x61c, offset 0x18700
-	0x18701: 0x6cc61a20, 0x18702: 0x6c68ba20,
-	0x18704: 0x6d031c20, 0x18707: 0x6d260020,
-	0x18708: 0x6c73ee20, 0x18709: 0x6c572820, 0x1870b: 0x6c056020,
-	0x1870c: 0x6ca1c420, 0x1870e: 0x6c425e20, 0x1870f: 0x6cef9220,
-	0x18711: 0x6c9a8020, 0x18712: 0x6cd89c20, 0x18713: 0x6c0b8820,
-	0x18714: 0x6c914220, 0x18715: 0x6cc0e620,
-	0x18718: 0x6c43da20, 0x18719: 0x6d303e20, 0x1871a: 0x6c938c20, 0x1871b: 0x6cac2020,
-	0x1871c: 0x6cc66220, 0x1871d: 0x6cc03020, 0x1871e: 0x6c8aea20, 0x1871f: 0x6c45e020,
-	0x18720: 0x6cfbf820, 0x18721: 0x6cf86e20, 0x18722: 0x6d02c620,
-	0x18724: 0x6ca79620,
-	0x18728: 0x6d00a220, 0x18729: 0x6c8afe20, 0x1872a: 0x6c3d6420, 0x1872b: 0x6c25d620,
-	0x1872c: 0x6d3d4e20, 0x1872d: 0x6c034820, 0x1872e: 0x6d429c20, 0x1872f: 0x6d305020,
-	0x18730: 0x6d416e20, 0x18731: 0x6c510620, 0x18732: 0x6c601a20,
-	0x18734: 0x6c648620,
-	0x18738: 0x6ce8b020, 0x18739: 0x6cfb5c20, 0x1873a: 0x6d0d8620, 0x1873b: 0x6ce0f420,
-	0x1873c: 0x6cde5620, 0x1873d: 0x6c2bf620, 0x1873e: 0x6c744c20, 0x1873f: 0x6c01fc20,
-	// Block 0x61d, offset 0x18740
-	0x18740: 0x6c4e1020, 0x18741: 0x6cff8820, 0x18742: 0x6c712020, 0x18743: 0x6cee8c20,
-	0x18744: 0x6c054c20, 0x18745: 0x6d3c5e20, 0x18746: 0x6ca82e20, 0x18747: 0x6ce53820,
-	0x18748: 0x6ca3c020, 0x1874b: 0x6d1fd420,
-	0x1874c: 0x6c9dc620, 0x1874f: 0x6ca3c820,
-	0x18750: 0x6cd13c20, 0x18751: 0x6c13a220, 0x18752: 0x6d0c1020, 0x18753: 0x6c44b620,
-	0x18754: 0x6c1d5420, 0x18755: 0x6cc86420, 0x18756: 0x6c63ca20, 0x18757: 0x6cbd8220,
-	0x18758: 0x6c98e620, 0x18759: 0x6c365c20, 0x1875a: 0x6c863220, 0x1875b: 0x6c1b3420,
-	0x1875c: 0x6d29da20, 0x1875d: 0x6c513820, 0x1875e: 0x6c6ae420, 0x1875f: 0x6ca72c20,
-	0x18761: 0x6c499020, 0x18762: 0x6c540c20, 0x18763: 0x6c414220,
-	0x18765: 0x6c07be20, 0x18766: 0x6cdd8020, 0x18767: 0x6cf37220,
-	0x18768: 0x6c623820, 0x18769: 0x6cf66a20, 0x1876a: 0x6cbf4a20, 0x1876b: 0x6c515820,
-	0x1876c: 0x6cf23020, 0x1876d: 0x6cfb7220, 0x1876e: 0x6c6b0820, 0x1876f: 0x6c5cf820,
-	0x18770: 0x6cb00420, 0x18771: 0x6cd00620, 0x18772: 0x6c1d7620, 0x18773: 0x6d324e20,
-	0x18775: 0x6d2d8a20, 0x18776: 0x6cd78a20, 0x18777: 0x6c5f0420,
-	0x18778: 0x6cd99420, 0x18779: 0x6d354220, 0x1877a: 0x6c07a220,
-	0x1877e: 0x6c810e20, 0x1877f: 0x6c0a2220,
-	// Block 0x61e, offset 0x18780
-	0x18780: 0x6d08ae20, 0x18781: 0x6cade820, 0x18782: 0x6c278a20,
-	0x18784: 0x6d340e20, 0x18785: 0x6cb00e20, 0x18786: 0x6c15d420, 0x18787: 0x6c0a2420,
-	0x18788: 0x6cdafa20, 0x18789: 0x6c5df220, 0x1878a: 0x6c523420, 0x1878b: 0x6c6f2a20,
-	0x1878c: 0x6c200620, 0x1878d: 0x6c67b420, 0x1878e: 0x6ca5a020, 0x1878f: 0x6c47be20,
-	0x18790: 0x6c39de20, 0x18793: 0x6cde9a20,
-	0x18794: 0x6c256020, 0x18795: 0x6cf6c220, 0x18796: 0x6c2a8420, 0x18797: 0x6cfb9020,
-	0x18798: 0x6c7b7220, 0x18799: 0x6d308a20, 0x1879a: 0x6cddfc20, 0x1879b: 0x6c55ae20,
-	0x1879c: 0x6c256220, 0x1879d: 0x6c92c820, 0x1879e: 0x6c738c20, 0x1879f: 0x6c92ca20,
-	0x187a0: 0x6cba7220, 0x187a1: 0x6cad9620, 0x187a2: 0x6d326c20,
-	0x187a4: 0x6c867a20, 0x187a5: 0x6c128e20, 0x187a6: 0x6cb64a20,
-	0x187a9: 0x6ce41e20, 0x187aa: 0x6c8d6c20, 0x187ab: 0x6cc1d420,
-	0x187ac: 0x6c88cc20, 0x187ad: 0x6c91e020, 0x187ae: 0x6cd54020, 0x187af: 0x6c462620,
-	0x187b0: 0x6d309a20, 0x187b1: 0x6cad3c20, 0x187b2: 0x6c6d5a20, 0x187b3: 0x6cbe9020,
-	0x187b6: 0x6d3fc420, 0x187b7: 0x6cb46620,
-	0x187b8: 0x6c6cbc20, 0x187b9: 0x6c0c8620, 0x187ba: 0x6c66ee20, 0x187bb: 0x6c4bf220,
-	0x187be: 0x6d2a3020, 0x187bf: 0x6c8b5a20,
-	// Block 0x61f, offset 0x187c0
-	0x187c0: 0x6c848a20, 0x187c1: 0x6c95c620, 0x187c2: 0x6cd08620, 0x187c3: 0x6c9de220,
-	0x187c4: 0x6c66fc20, 0x187c5: 0x6c2bb020, 0x187c6: 0x6c076a20,
-	0x187c8: 0x6c88d420, 0x187ca: 0x6cfbc620, 0x187cb: 0x6cb22220,
-	0x187cc: 0x6cc41620, 0x187cd: 0x6c8fda20, 0x187ce: 0x6d41e020,
-	0x187d0: 0x6c74fe20, 0x187d1: 0x6ccd2020, 0x187d2: 0x6d092620,
-	0x187d4: 0x6d027820, 0x187d6: 0x6c804e20, 0x187d7: 0x6cb6aa20,
-	0x187d8: 0x6d159820, 0x187d9: 0x6caad420, 0x187da: 0x6c84ca20, 0x187db: 0x6d271e20,
-	0x187dd: 0x6d15be20, 0x187de: 0x6c1a9220, 0x187df: 0x6c619620,
-	0x187e0: 0x6c4f4a20, 0x187e1: 0x6d015e20, 0x187e2: 0x6c792a20, 0x187e3: 0x6d3e1020,
-	0x187e4: 0x6c509220, 0x187e5: 0x6cf86220, 0x187e6: 0x6cc26820, 0x187e7: 0x6c4d1020,
-	0x187e8: 0x6cf95220, 0x187e9: 0x6c4d1220, 0x187ea: 0x6c4a4820, 0x187eb: 0x6c14c220,
-	0x187ec: 0x6d09fa20, 0x187ed: 0x6d058220, 0x187ee: 0x6cd09c20, 0x187ef: 0x6c79e820,
-	0x187f0: 0x6cf96020, 0x187f1: 0x6ccc4a20, 0x187f2: 0x6d208a20, 0x187f3: 0x6d0bae20,
-	0x187f4: 0x6cb3f220, 0x187f5: 0x6d40bc20, 0x187f6: 0x6d1fc820, 0x187f7: 0x6d3f3e20,
-	0x187f8: 0x6c88be20, 0x187f9: 0x6cfaaa20, 0x187fa: 0x6cfa3e20, 0x187fb: 0x6d15f620,
-	0x187fc: 0x6ccc5820, 0x187fd: 0x6d0e8420, 0x187fe: 0x6c69a220, 0x187ff: 0x6cf66e20,
-	// Block 0x620, offset 0x18800
-	0x18800: 0x6c1bb620, 0x18801: 0x6cd3b220, 0x18802: 0x6c774620, 0x18803: 0x6d1afc20,
-	0x18804: 0x6c522420, 0x18805: 0x6d189620, 0x18806: 0x6cf6e820, 0x18807: 0x6ccb6a20,
-	0x18808: 0x6c6d5c20, 0x18809: 0x6d135e20, 0x1880a: 0x6d1ec420, 0x1880b: 0x6cc41820,
-	0x1880c: 0x6d129a20, 0x1880d: 0x6c945e20, 0x1880e: 0x6c7d9c20, 0x1880f: 0x6d333820,
-	0x18814: 0x6d003a20, 0x18816: 0x6c253a20, 0x18817: 0x6d04e420,
-	0x18818: 0x6c01d820, 0x18819: 0x6d051e20, 0x1881a: 0x6c118820, 0x1881b: 0x6c201820,
-	0x1881c: 0x6d2c1e20, 0x1881e: 0x6d16f420, 0x1881f: 0x6caf4420,
-	0x18820: 0x6c7a3020, 0x18821: 0x6cd0fa20, 0x18822: 0x6c80bc20, 0x18823: 0x6ce9e420,
-	0x18824: 0x6cf61020, 0x18825: 0x6c8d0620, 0x18826: 0x6cb4f820, 0x18827: 0x6cf2f020,
-	0x18828: 0x6c88fa20, 0x18829: 0x6c319e20, 0x1882a: 0x6c9af420, 0x1882b: 0x6c807220,
-	0x1882c: 0x6cefdc20, 0x1882d: 0x6c32ca20, 0x1882e: 0x6c7b2a20, 0x1882f: 0x6c004c20,
-	0x18830: 0x6d291a20, 0x18831: 0x6c5bfa20, 0x18832: 0x6d182620, 0x18833: 0x6ca14c20,
-	0x18834: 0x6d3f5e20, 0x18835: 0x6c3be820, 0x18836: 0x6caec420,
-	0x18838: 0x6c0a6c20, 0x18839: 0x6c871e20, 0x1883a: 0x6c918220, 0x1883b: 0x6c964620,
-	0x1883c: 0x6c4d0a20, 0x1883d: 0x6d31bc20, 0x1883e: 0x6c40ee20, 0x1883f: 0x6cc3ac20,
-	// Block 0x621, offset 0x18840
-	0x18840: 0x6d315220, 0x18841: 0x6c797a20, 0x18842: 0x6c1a0420, 0x18843: 0x6c6ffe20,
-	0x18844: 0x6c746420, 0x18845: 0x6c623a20, 0x18846: 0x6c8d5620,
-	0x18848: 0x6cceaa20, 0x18849: 0x6cc40020, 0x1884a: 0x6cc8ea20, 0x1884b: 0x6c21ac20,
-	0x1884c: 0x6ca5b220, 0x1884d: 0x6d339820, 0x1884e: 0x6c907a20, 0x1884f: 0x6cad3620,
-	0x18852: 0x6c063820, 0x18853: 0x6cc66420,
-	0x18854: 0x6cfa9a20, 0x18855: 0x6c832c20, 0x18856: 0x6cfeb420, 0x18857: 0x6c3d6620,
-	0x18858: 0x6cc18620, 0x1885a: 0x6ccbe820, 0x1885b: 0x6d352c20,
-	0x1885c: 0x6cdfe020, 0x1885d: 0x6cc70e20, 0x1885e: 0x6cda4a20, 0x1885f: 0x6d1cf620,
-	0x18860: 0x6c98e820, 0x18861: 0x6ca3ca20, 0x18862: 0x6c0baa20,
-	0x18864: 0x6cd65820, 0x18865: 0x6ce11020, 0x18866: 0x6c4ee220, 0x18867: 0x6ccaf620,
-	0x18868: 0x6cc69420, 0x1886a: 0x6c2aa820, 0x1886b: 0x6cb44e20,
-	0x1886c: 0x6c687820, 0x1886d: 0x6ce07620, 0x1886f: 0x6cc48e20,
-	0x18870: 0x6ca92c20, 0x18871: 0x6c8b5c20, 0x18872: 0x6c2f2020, 0x18873: 0x6c2e8620,
-	0x18874: 0x6d381620, 0x18876: 0x6c93f420, 0x18877: 0x6c28b020,
-	0x18878: 0x6cf56020, 0x18879: 0x6c4aba20, 0x1887a: 0x6c5fbe20, 0x1887b: 0x6ca67620,
-	0x1887c: 0x6d164a20, 0x1887d: 0x6ca75820, 0x1887e: 0x6d221e20, 0x1887f: 0x6cedf220,
-	// Block 0x622, offset 0x18880
-	0x18880: 0x6c4ce620, 0x18881: 0x6d2b3c20, 0x18882: 0x6d0c5820, 0x18883: 0x6c251a20,
-	0x18884: 0x6cfb2620, 0x18885: 0x6c68be20, 0x18886: 0x6ce80620, 0x18887: 0x6c3fac20,
-	0x18888: 0x6cae0020, 0x1888a: 0x6d1e9220, 0x1888b: 0x6cbfa220,
-	0x1888c: 0x6d0ad620, 0x1888d: 0x6c107220, 0x1888e: 0x6c0b7c20, 0x1888f: 0x6cd31c20,
-	0x18890: 0x6d2c2220, 0x18891: 0x6d16c020, 0x18892: 0x6c0b7e20,
-	0x18894: 0x6c333820, 0x18895: 0x6c7f8e20, 0x18896: 0x6d13d820, 0x18897: 0x6c149220,
-	0x18898: 0x6c1cb220, 0x18899: 0x6d087820, 0x1889a: 0x6d069220, 0x1889b: 0x6d20d820,
-	0x1889c: 0x6d04c020,
-	0x188a0: 0x6cde3620, 0x188a1: 0x6c4c1620,
-	0x188a5: 0x6c906420, 0x188a6: 0x6d018220, 0x188a7: 0x6c180c20,
-	0x188a8: 0x6c657e20, 0x188a9: 0x6cdf9820, 0x188aa: 0x6cb08c20, 0x188ab: 0x6d296820,
-	0x188ac: 0x6d080620, 0x188ad: 0x6cfb3c20, 0x188ae: 0x6ca7d220,
-	0x188b4: 0x6c9d3820, 0x188b5: 0x6c61f020, 0x188b6: 0x6caa1c20, 0x188b7: 0x6c54c020,
-	0x188b8: 0x6c571020, 0x188b9: 0x6cee1020, 0x188ba: 0x6d1f2a20, 0x188bb: 0x6d2ac020,
-	0x188bc: 0x6c09a020, 0x188bd: 0x6c9cee20, 0x188be: 0x6cbab020, 0x188bf: 0x6d019220,
-	// Block 0x623, offset 0x188c0
-	0x188c0: 0x6c394420, 0x188c1: 0x6d176020, 0x188c2: 0x6cdfa020, 0x188c3: 0x6c832e20,
-	0x188c4: 0x6d1e2e20, 0x188c6: 0x6c6d0220, 0x188c7: 0x6ccf4a20,
-	0x188c8: 0x6d1b4820, 0x188c9: 0x6c613820, 0x188cb: 0x6cdaa620,
-	0x188cf: 0x6cee1c20,
-	0x188d0: 0x6c9e5820, 0x188d1: 0x6cdab420, 0x188d2: 0x6d17a620, 0x188d3: 0x6ccc8820,
-	0x188d4: 0x6cf61420, 0x188d5: 0x6c603e20, 0x188d6: 0x6c960020, 0x188d7: 0x6d1ea620,
-	0x188d8: 0x6c998220, 0x188d9: 0x6d2c7c20, 0x188da: 0x6cdc4020, 0x188db: 0x6d362a20,
-	0x188dc: 0x6c0b9c20, 0x188dd: 0x6c83d820,
-	0x188e5: 0x6cbc4820, 0x188e6: 0x6c498e20, 0x188e7: 0x6cf64a20,
-	0x188e8: 0x6d324a20, 0x188e9: 0x6d1d9020, 0x188ea: 0x6ca84020, 0x188eb: 0x6c75ca20,
-	0x188ec: 0x6d01c620, 0x188ed: 0x6d11b620, 0x188ee: 0x6d01c820, 0x188ef: 0x6d33f020,
-	0x188f0: 0x6ca5a820, 0x188f2: 0x6cd7f420, 0x188f3: 0x6c903620,
-	0x188f4: 0x6c18d220, 0x188f5: 0x6c9d5c20, 0x188f6: 0x6cc3cc20, 0x188f7: 0x6c27e420,
-	0x188f8: 0x6ccd4820,
-	0x188fc: 0x6cdae820, 0x188fd: 0x6d01da20, 0x188fe: 0x6c0f2820, 0x188ff: 0x6c2f7a20,
-	// Block 0x624, offset 0x18900
-	0x18900: 0x6d40ca20, 0x18902: 0x6cd5f220, 0x18903: 0x6ccf2220,
-	0x18904: 0x6c4ee420, 0x18905: 0x6cdfb220, 0x18906: 0x6c431420,
-	0x1890a: 0x6ca36420, 0x1890b: 0x6c9d7a20,
-	0x1890c: 0x6d0a3020, 0x1890d: 0x6c9afa20, 0x1890e: 0x6c66b420, 0x1890f: 0x6c24fe20,
-	0x18910: 0x6c749220, 0x18911: 0x6c51de20, 0x18912: 0x6c3ac820, 0x18913: 0x6cd28220,
-	0x18914: 0x6c17f220, 0x18915: 0x6cd0c220, 0x18916: 0x6caa8a20, 0x18917: 0x6cb2c420,
-	0x18918: 0x6c980220,
-	0x1891d: 0x6d189a20, 0x1891e: 0x6c1dda20,
-	0x18920: 0x6c7a6220, 0x18921: 0x6c05d420, 0x18922: 0x6c825a20, 0x18923: 0x6c787020,
-	0x18924: 0x6ccc7820, 0x18925: 0x6c0a4e20, 0x18926: 0x6cdbfc20, 0x18927: 0x6c443420,
-	0x18928: 0x6cb0c020, 0x18929: 0x6d189c20, 0x1892a: 0x6cfb9220, 0x1892b: 0x6ca6c820,
-	0x1892c: 0x6d1c9820, 0x1892d: 0x6d3a8020, 0x1892e: 0x6c216220, 0x1892f: 0x6c3cbc20,
-	0x18930: 0x6d074620, 0x18931: 0x6cb19c20, 0x18932: 0x6cf48020, 0x18933: 0x6c8a2420,
-	0x18934: 0x6c124c20, 0x18935: 0x6d409020, 0x18936: 0x6d422a20, 0x18937: 0x6c0bc620,
-	0x18938: 0x6d122a20, 0x18939: 0x6c58a420, 0x1893a: 0x6cac3220, 0x1893b: 0x6d04fa20,
-	0x1893d: 0x6c82ea20, 0x1893e: 0x6cbee420, 0x1893f: 0x6d001220,
-	// Block 0x625, offset 0x18940
-	0x18940: 0x6c689620, 0x18941: 0x6c4c9420,
-	0x18944: 0x6d0cf020, 0x18945: 0x6d092420, 0x18946: 0x6d39e220, 0x18947: 0x6c527e20,
-	0x18948: 0x6d1cb820, 0x18949: 0x6cf71620,
-	0x1894c: 0x6c889220, 0x1894d: 0x6cfc4820, 0x1894e: 0x6c58bc20, 0x1894f: 0x6d1a1620,
-	0x18951: 0x6c892a20, 0x18952: 0x6ccd6020, 0x18953: 0x6c125220,
-	0x18954: 0x6c077020, 0x18955: 0x6c662220, 0x18956: 0x6cd63020, 0x18957: 0x6c397a20,
-	0x18958: 0x6c2d9820, 0x1895a: 0x6c03d820, 0x1895b: 0x6d21fe20,
-	0x1895e: 0x6ca47420, 0x1895f: 0x6c831420,
-	0x18960: 0x6d198220, 0x18961: 0x6c272820, 0x18963: 0x6c14ea20,
-	0x18964: 0x6c178e20, 0x18965: 0x6c416a20, 0x18966: 0x6c6cdc20, 0x18967: 0x6ca59220,
-	0x1896b: 0x6c8a6a20,
-	0x1896c: 0x6ca0e620, 0x1896d: 0x6d1fb220, 0x1896f: 0x6c8f2820,
-	0x18970: 0x6c4de620, 0x18972: 0x6d1e7420, 0x18973: 0x6c6cf020,
-	0x18974: 0x6c1b8c20, 0x18975: 0x6cc5dc20, 0x18976: 0x6ca9b620,
-	0x18979: 0x6c53ba20, 0x1897a: 0x6ce53620,
-	0x1897c: 0x6c002420, 0x1897d: 0x6c485620, 0x1897e: 0x6c0bf820, 0x1897f: 0x6c0eea20,
-	// Block 0x626, offset 0x18980
-	0x18980: 0x6cbf1420, 0x18982: 0x6cd5d820, 0x18983: 0x6c20ee20,
-	0x18984: 0x6c5b5420, 0x18985: 0x6c179a20, 0x18986: 0x6c3ff220, 0x18987: 0x6c5ab620,
-	0x18988: 0x6c363a20, 0x18989: 0x6cf09a20, 0x1898a: 0x6c3b7820, 0x1898b: 0x6cdfe220,
-	0x1898d: 0x6c94fa20, 0x1898e: 0x6c51cc20, 0x1898f: 0x6d1e4a20,
-	0x18990: 0x6c5b5a20, 0x18992: 0x6d215820, 0x18993: 0x6d3ff820,
-	0x18994: 0x6d0e8a20, 0x18995: 0x6cc07420, 0x18996: 0x6d2fbc20, 0x18997: 0x6c6f1a20,
-	0x18998: 0x6cdf2820,
-	0x1899f: 0x6cea0820,
-	0x189a0: 0x6c8bc220, 0x189a1: 0x6c6f2620, 0x189a2: 0x6d2c8220, 0x189a3: 0x6d038620,
-	0x189a4: 0x6c56ba20, 0x189a6: 0x6d071020,
-	0x189aa: 0x6c254c20, 0x189ab: 0x6cbeb020,
-	0x189ac: 0x6ca14e20, 0x189ae: 0x6d2a2220, 0x189af: 0x6c084c20,
-	0x189b0: 0x6c1ace20, 0x189b3: 0x6d0ebc20,
-	0x189b4: 0x6c443620, 0x189b5: 0x6ca16220, 0x189b6: 0x6c075c20, 0x189b7: 0x6c732820,
-	0x189b8: 0x6c2ee620, 0x189b9: 0x6d2fe020, 0x189bb: 0x6cf3ea20,
-	0x189bc: 0x6d0ebe20, 0x189be: 0x6c74c620, 0x189bf: 0x6cfade20,
-	// Block 0x627, offset 0x189c0
-	0x189c0: 0x6cdf4a20, 0x189c1: 0x6c4e6620, 0x189c3: 0x6c2d2c20,
-	0x189c4: 0x6c62ac20, 0x189c5: 0x6c6b6020, 0x189c7: 0x6d414c20,
-	0x189c9: 0x6d025820, 0x189ca: 0x6c7f7620, 0x189cb: 0x6c38e220,
-	0x189cc: 0x6c5e4020, 0x189cd: 0x6cf92820, 0x189ce: 0x6ca8b620, 0x189cf: 0x6c9cb820,
-	0x189d0: 0x6cc49c20, 0x189d1: 0x6c24c220, 0x189d2: 0x6d1a3220, 0x189d3: 0x6c9d2820,
-	0x189d5: 0x6c747e20, 0x189d6: 0x6cc0ea20, 0x189d7: 0x6ce73820,
-	0x189d8: 0x6ced7a20, 0x189d9: 0x6d2ffc20, 0x189da: 0x6c84fe20, 0x189db: 0x6cce9c20,
-	0x189dc: 0x6c79a620, 0x189dd: 0x6cfa7e20, 0x189de: 0x6d301e20, 0x189df: 0x6d33c420,
-	0x189e0: 0x6ce5be20, 0x189e1: 0x6cd4bc20, 0x189e2: 0x6c073e20, 0x189e3: 0x6d136220,
-	0x189e4: 0x6cb14c20, 0x189e5: 0x6c164420, 0x189e6: 0x6c563e20, 0x189e7: 0x6c791620,
-	0x189e8: 0x6c6f4a20, 0x189e9: 0x6c011620, 0x189ea: 0x6c213020, 0x189eb: 0x6cb97620,
-	0x189ec: 0x6c06ea20, 0x189ed: 0x6c032620, 0x189ee: 0x6c3b6020, 0x189ef: 0x6c77d620,
-	0x189f0: 0x6ceafc20, 0x189f1: 0x6ceafe20, 0x189f2: 0x6d423020, 0x189f3: 0x6c8cbc20,
-	0x189f5: 0x6c4aea20, 0x189f6: 0x6d0be620, 0x189f7: 0x6cd35420,
-	0x189f8: 0x6c545220, 0x189f9: 0x6c8b0020, 0x189fa: 0x6ccbee20, 0x189fb: 0x6cd8b220,
-	0x189fd: 0x6c071020, 0x189fe: 0x6cc5e820, 0x189ff: 0x6c319820,
-	// Block 0x628, offset 0x18a00
-	0x18a00: 0x6c0eec20, 0x18a01: 0x6c895620, 0x18a02: 0x6cba0c20, 0x18a03: 0x6c3aac20,
-	0x18a04: 0x6c624220, 0x18a05: 0x6d3ffa20, 0x18a06: 0x6c5ac820, 0x18a07: 0x6c514020,
-	0x18a08: 0x6c83e420, 0x18a09: 0x6d259620, 0x18a0a: 0x6d26ce20, 0x18a0b: 0x6d04e620,
-	0x18a0c: 0x6c15d620, 0x18a0d: 0x6c2b8c20, 0x18a0e: 0x6c825020, 0x18a0f: 0x6c6cae20,
-	0x18a10: 0x6c1d1c20, 0x18a11: 0x6cd8ec20, 0x18a12: 0x6cb49a20, 0x18a13: 0x6d11d420,
-	0x18a14: 0x6c678620, 0x18a15: 0x6c583620, 0x18a16: 0x6c595620, 0x18a17: 0x6ce1f620,
-	0x18a18: 0x6cc82c20, 0x18a19: 0x6cf26620, 0x18a1a: 0x6d1ccc20, 0x18a1b: 0x6cc53420,
-	0x18a1c: 0x6d1a3420, 0x18a1d: 0x6cd30e20, 0x18a1e: 0x6d1a2620, 0x18a1f: 0x6c73e220,
-	0x18a20: 0x6cea4020, 0x18a21: 0x6d080020, 0x18a22: 0x6c632e20, 0x18a23: 0x6d379e20,
-	0x18a24: 0x6cbc9820, 0x18a25: 0x6d3ab220, 0x18a26: 0x6c2db020,
-	0x18a28: 0x6d201820, 0x18a2b: 0x6d14a420,
-	0x18a2c: 0x6cd2c220, 0x18a2d: 0x6d16fa20, 0x18a2e: 0x6ca0e820,
-	0x18a31: 0x6cc3ae20, 0x18a32: 0x6cfea420, 0x18a33: 0x6cf3ba20,
-	0x18a34: 0x6c44c020, 0x18a35: 0x6d1ce620, 0x18a36: 0x6ce66820, 0x18a37: 0x6cd2c620,
-	0x18a38: 0x6ca5cc20, 0x18a39: 0x6c44c620, 0x18a3a: 0x6cde5020, 0x18a3b: 0x6cf28a20,
-	0x18a3c: 0x6c711820, 0x18a3d: 0x6c15a820, 0x18a3e: 0x6cb19620, 0x18a3f: 0x6d3d5420,
-	// Block 0x629, offset 0x18a40
-	0x18a40: 0x6c54c420, 0x18a41: 0x6ca4fa20, 0x18a42: 0x6d0c9820, 0x18a43: 0x6c468620,
-	0x18a44: 0x6d225c20, 0x18a45: 0x6c540420, 0x18a47: 0x6cd7f620,
-	0x18a48: 0x6c1aba20, 0x18a49: 0x6c56a420, 0x18a4a: 0x6d105220, 0x18a4b: 0x6cf22e20,
-	0x18a4c: 0x6cfcd020, 0x18a4d: 0x6cb21020, 0x18a4e: 0x6cc69c20, 0x18a4f: 0x6c90a820,
-	0x18a50: 0x6c81b420, 0x18a51: 0x6cccfe20, 0x18a52: 0x6cfef020, 0x18a53: 0x6d2ae220,
-	0x18a54: 0x6c4d7820, 0x18a55: 0x6c38b420, 0x18a56: 0x6c4e6220, 0x18a57: 0x6c14d420,
-	0x18a58: 0x6d2e7620, 0x18a5a: 0x6cde1620, 0x18a5b: 0x6d3b2a20,
-	0x18a5c: 0x6ca9c820, 0x18a5d: 0x6c4f1820, 0x18a5e: 0x6d21b620, 0x18a5f: 0x6d3db420,
-	0x18a60: 0x6d205c20, 0x18a61: 0x6c86fc20, 0x18a62: 0x6c5e2a20, 0x18a63: 0x6cf73e20,
-	0x18a64: 0x6cfb0020, 0x18a65: 0x6c155820, 0x18a66: 0x6c889420,
-	0x18a68: 0x6cd7be20, 0x18a69: 0x6c6fce20, 0x18a6a: 0x6cb42820, 0x18a6b: 0x6cbffc20,
-	0x18a6c: 0x6c45d620, 0x18a6d: 0x6d3ee820, 0x18a6e: 0x6d20bc20,
-	0x18a71: 0x6cc62820, 0x18a72: 0x6ca98420, 0x18a73: 0x6c99d820,
-	0x18a74: 0x6c032820, 0x18a75: 0x6c6f9820, 0x18a77: 0x6d069620,
-	0x18a78: 0x6cb29020, 0x18a79: 0x6c0b8a20, 0x18a7a: 0x6c995420,
-	0x18a7f: 0x6d14ce20,
-	// Block 0x62a, offset 0x18a80
-	0x18a80: 0x6d20f620, 0x18a82: 0x6cb29220, 0x18a83: 0x6cc0f220,
-	0x18a84: 0x6c05f420, 0x18a85: 0x6c5bae20,
-	0x18a89: 0x6c109420, 0x18a8a: 0x6c985820, 0x18a8b: 0x6c7e7020,
-	0x18a8c: 0x6ce8a820, 0x18a8d: 0x6cf3c220, 0x18a8e: 0x6c85ec20, 0x18a8f: 0x6c8cea20,
-	0x18a91: 0x6c620220, 0x18a92: 0x6c75bc20, 0x18a93: 0x6d405620,
-	0x18a94: 0x6c349220, 0x18a95: 0x6c745020, 0x18a96: 0x6c277020, 0x18a97: 0x6c073220,
-	0x18a9d: 0x6c7e8020, 0x18a9e: 0x6c0d3e20, 0x18a9f: 0x6cdbf820,
-	0x18aa0: 0x6ce8c220, 0x18aa1: 0x6d08e220,
-	0x18aa7: 0x6c350c20,
-	0x18aaa: 0x6cdc5420, 0x18aab: 0x6c0a2e20,
-	0x18aac: 0x6ce87420, 0x18aad: 0x6ccb4a20, 0x18aae: 0x6c120020, 0x18aaf: 0x6ce8e420,
-	0x18ab0: 0x6c9e3620, 0x18ab1: 0x6c6c5220, 0x18ab2: 0x6c93b020,
-	0x18ab5: 0x6d2e8020, 0x18ab6: 0x6c08f620, 0x18ab7: 0x6c60ac20,
-	0x18ab8: 0x6d2b7420, 0x18ab9: 0x6d07d620, 0x18aba: 0x6c86a020,
-	0x18abd: 0x6cdc8220, 0x18abe: 0x6d1dc220, 0x18abf: 0x6cd57620,
-	// Block 0x62b, offset 0x18ac0
-	0x18ac2: 0x6c358620,
-	0x18ac7: 0x6cbf8620,
-	0x18ac8: 0x6c958020, 0x18ac9: 0x6d322220, 0x18aca: 0x6cea4620, 0x18acb: 0x6c46fe20,
-	0x18acc: 0x6d223c20, 0x18acd: 0x6c82be20, 0x18ace: 0x6c0eee20, 0x18acf: 0x6ca56e20,
-	0x18ad0: 0x6cb12020, 0x18ad1: 0x6c890e20, 0x18ad2: 0x6ce17a20, 0x18ad3: 0x6c883820,
-	0x18ad4: 0x6cf16220, 0x18ad5: 0x6c291020, 0x18ad6: 0x6c87be20, 0x18ad7: 0x6ce65e20,
-	0x18ad8: 0x6cec1820, 0x18ad9: 0x6d390220, 0x18ada: 0x6c426620, 0x18adb: 0x6d03d220,
-	0x18adc: 0x6c021420, 0x18add: 0x6c393820, 0x18ade: 0x6caf0e20, 0x18adf: 0x6c0eda20,
-	0x18ae0: 0x6ceb0620, 0x18ae1: 0x6cd4d020, 0x18ae2: 0x6d14e420, 0x18ae3: 0x6c0ef020,
-	0x18ae4: 0x6cbcb820, 0x18ae5: 0x6ce80e20, 0x18ae6: 0x6c45e820, 0x18ae7: 0x6ce74820,
-	0x18ae8: 0x6c4e1220, 0x18ae9: 0x6c1a0820, 0x18aea: 0x6c6ace20, 0x18aeb: 0x6c593a20,
-	0x18aec: 0x6d042c20, 0x18aed: 0x6c2d6220, 0x18aee: 0x6c146a20, 0x18aef: 0x6c308020,
-	0x18af0: 0x6caffc20, 0x18af1: 0x6cc86a20, 0x18af2: 0x6c8b2220, 0x18af3: 0x6cd14020,
-	0x18af4: 0x6cab8420, 0x18af5: 0x6c2c8020, 0x18af6: 0x6d217020, 0x18af7: 0x6c200220,
-	0x18af8: 0x6cc6a220, 0x18af9: 0x6c774820, 0x18afa: 0x6ce12420, 0x18afb: 0x6c23b620,
-	0x18afc: 0x6cb18220, 0x18afd: 0x6c209820, 0x18afe: 0x6c92ce20, 0x18aff: 0x6ce79020,
-	// Block 0x62c, offset 0x18b00
-	0x18b00: 0x6d336620, 0x18b01: 0x6c86a420, 0x18b02: 0x6cc9a020, 0x18b03: 0x6cac4420,
-	0x18b04: 0x6cd82e20, 0x18b06: 0x6c291220, 0x18b07: 0x6c55de20,
-	0x18b08: 0x6d190c20, 0x18b09: 0x6cfd3220, 0x18b0a: 0x6d028020, 0x18b0b: 0x6c958820,
-	0x18b0c: 0x6c8f5e20, 0x18b0e: 0x6cdfea20, 0x18b0f: 0x6c422e20,
-	0x18b11: 0x6ce01c20,
-	0x18b15: 0x6d1ef020, 0x18b16: 0x6ca3e020,
-	0x18b18: 0x6c429a20, 0x18b19: 0x6c759820, 0x18b1a: 0x6c1bfe20, 0x18b1b: 0x6c464020,
-	0x18b1c: 0x6cecfa20, 0x18b1d: 0x6c85ee20, 0x18b1e: 0x6c8e5420, 0x18b1f: 0x6c8b0a20,
-	0x18b20: 0x6cf9c420, 0x18b21: 0x6c06ac20, 0x18b22: 0x6c018a20, 0x18b23: 0x6d237220,
-	0x18b24: 0x6c713220, 0x18b25: 0x6cc75820, 0x18b26: 0x6d0a3420, 0x18b27: 0x6d3e7a20,
-	0x18b28: 0x6c25ee20, 0x18b29: 0x6c120620, 0x18b2a: 0x6d2baa20, 0x18b2b: 0x6d1dc420,
-	0x18b2c: 0x6c407420, 0x18b2d: 0x6cc88a20, 0x18b2f: 0x6cf7cc20,
-	0x18b30: 0x6cd5e620, 0x18b31: 0x6c68c020, 0x18b32: 0x6c68c220, 0x18b33: 0x6d057020,
-	0x18b34: 0x6d2f2620, 0x18b37: 0x6cd71220,
-	0x18b38: 0x6c18a820, 0x18b39: 0x6c390820, 0x18b3a: 0x6c5ff820, 0x18b3b: 0x6d33a820,
-	0x18b3d: 0x6c480420, 0x18b3e: 0x6cf4d620,
-	// Block 0x62d, offset 0x18b40
-	0x18b40: 0x6cbcae20, 0x18b41: 0x6cd5bc20, 0x18b42: 0x6c4d1420, 0x18b43: 0x6ceb0820,
-	0x18b44: 0x6c319020, 0x18b45: 0x6d3f0220, 0x18b46: 0x6cc46e20, 0x18b47: 0x6ca27820,
-	0x18b48: 0x6c3fd020, 0x18b49: 0x6c8cca20, 0x18b4a: 0x6c601e20, 0x18b4b: 0x6d04ce20,
-	0x18b4c: 0x6d084c20, 0x18b4d: 0x6ca37820, 0x18b4e: 0x6d0aee20, 0x18b4f: 0x6c6be020,
-	0x18b50: 0x6c85f020, 0x18b51: 0x6c269c20, 0x18b52: 0x6cc7a020, 0x18b53: 0x6d24ee20,
-	0x18b54: 0x6c939c20, 0x18b55: 0x6cd06220, 0x18b56: 0x6c851820, 0x18b57: 0x6c89bc20,
-	0x18b58: 0x6c450e20, 0x18b59: 0x6d033820, 0x18b5a: 0x6d004420, 0x18b5b: 0x6cbdd820,
-	0x18b5c: 0x6cbcc220, 0x18b5d: 0x6c182020, 0x18b5e: 0x6d1f3c20, 0x18b5f: 0x6c109a20,
-	0x18b60: 0x6c7bc220, 0x18b61: 0x6cc3be20, 0x18b62: 0x6c00aa20, 0x18b63: 0x6cbd3420,
-	0x18b64: 0x6cbac020, 0x18b65: 0x6c1f5220, 0x18b66: 0x6cae1e20, 0x18b67: 0x6c7e0620,
-	0x18b68: 0x6d13fa20, 0x18b69: 0x6c48ce20, 0x18b6a: 0x6cd14220, 0x18b6b: 0x6cb0fa20,
-	0x18b6d: 0x6d393820, 0x18b6e: 0x6c59de20, 0x18b6f: 0x6c5ad620,
-	0x18b70: 0x6c557e20, 0x18b71: 0x6c074220,
-	0x18b74: 0x6d2bec20, 0x18b75: 0x6c624620, 0x18b76: 0x6c47c220, 0x18b77: 0x6cf6a420,
-	0x18b78: 0x6c431620, 0x18b79: 0x6c148620, 0x18b7a: 0x6c96d620, 0x18b7b: 0x6d3b2020,
-	0x18b7c: 0x6ce9ea20, 0x18b7d: 0x6d3ca020, 0x18b7e: 0x6cface20, 0x18b7f: 0x6c80de20,
-	// Block 0x62e, offset 0x18b80
-	0x18b83: 0x6d36e820,
-	0x18b84: 0x6c00cc20, 0x18b85: 0x6cfc2e20, 0x18b86: 0x6c4c3c20, 0x18b87: 0x6cf7a220,
-	0x18b89: 0x6ce9f020, 0x18b8a: 0x6c11de20, 0x18b8b: 0x6ccb0420,
-	0x18b8c: 0x6cfaea20, 0x18b8d: 0x6c6c0e20, 0x18b8e: 0x6c3bfa20, 0x18b8f: 0x6cc45a20,
-	0x18b91: 0x6d123a20, 0x18b92: 0x6c29fa20, 0x18b93: 0x6c63f420,
-	0x18b94: 0x6c82fc20, 0x18b95: 0x6d0d0220, 0x18b96: 0x6c918e20, 0x18b97: 0x6ce9d620,
-	0x18b98: 0x6d1cd220, 0x18b99: 0x6cb0de20, 0x18b9a: 0x6c964a20, 0x18b9b: 0x6c87a420,
-	0x18b9c: 0x6c0d1220, 0x18b9e: 0x6c995620, 0x18b9f: 0x6c040e20,
-	0x18ba0: 0x6c5a6a20, 0x18ba2: 0x6d121220, 0x18ba3: 0x6c50a420,
-	0x18ba4: 0x6c218420, 0x18ba5: 0x6c516420, 0x18ba6: 0x6ca95620, 0x18ba7: 0x6c1e0220,
-	0x18ba8: 0x6c874620, 0x18ba9: 0x6ce19420, 0x18baa: 0x6c585a20, 0x18bab: 0x6c095420,
-	0x18bac: 0x6c033420, 0x18bad: 0x6c181020, 0x18bae: 0x6d104620, 0x18baf: 0x6c269e20,
-	0x18bb0: 0x6c024420, 0x18bb1: 0x6d091020, 0x18bb3: 0x6d3e5220,
-	0x18bb4: 0x6c265a20, 0x18bb5: 0x6cc4ce20, 0x18bb6: 0x6c053820, 0x18bb7: 0x6c25f020,
-	0x18bb8: 0x6ced4e20, 0x18bb9: 0x6cdebe20, 0x18bba: 0x6c05dc20, 0x18bbb: 0x6c417a20,
-	0x18bbc: 0x6d0c7620, 0x18bbd: 0x6cf5a620, 0x18bbe: 0x6d3ad420, 0x18bbf: 0x6d0b4e20,
-	// Block 0x62f, offset 0x18bc0
-	0x18bc0: 0x6c393a20, 0x18bc1: 0x6d203c20, 0x18bc2: 0x6c012820, 0x18bc3: 0x6ce9a420,
-	0x18bc4: 0x6c9b2020, 0x18bc5: 0x6ccf5c20, 0x18bc6: 0x6c6d2e20, 0x18bc7: 0x6c47ce20,
-	0x18bc8: 0x6c627820, 0x18bc9: 0x6cbc0020, 0x18bca: 0x6c695820, 0x18bcb: 0x6d0d0420,
-	0x18bcc: 0x6cf92e20, 0x18bcd: 0x6c772020, 0x18bce: 0x6c9e0220, 0x18bcf: 0x6d086a20,
-	0x18bd0: 0x6cccc420, 0x18bd1: 0x6cf2d820, 0x18bd2: 0x6cb8b420, 0x18bd3: 0x6c58f620,
-	0x18bd4: 0x6cc5d020, 0x18bd5: 0x6d322420, 0x18bd6: 0x6ce45c20, 0x18bd7: 0x6c740020,
-	0x18bd8: 0x6d008620, 0x18bd9: 0x6cb75820, 0x18bda: 0x6c01f820, 0x18bdb: 0x6c9a8220,
-	0x18bdc: 0x6c476820, 0x18bde: 0x6ce1b820, 0x18bdf: 0x6c389220,
-	0x18be0: 0x6c722c20, 0x18be1: 0x6c162820, 0x18be2: 0x6cd74c20, 0x18be3: 0x6c096820,
-	0x18be4: 0x6c996220, 0x18be5: 0x6cd77820, 0x18be6: 0x6c477220, 0x18be7: 0x6c53a420,
-	0x18be8: 0x6c579620, 0x18be9: 0x6c95fe20, 0x18bea: 0x6c4f7420, 0x18beb: 0x6c63b820,
-	0x18bec: 0x6cc2e220, 0x18bed: 0x6c40f420, 0x18bee: 0x6c599020, 0x18bef: 0x6c103c20,
-	0x18bf0: 0x6c478e20, 0x18bf1: 0x6c3c4e20, 0x18bf2: 0x6ca28820, 0x18bf3: 0x6c009c20,
-	0x18bf4: 0x6d1cee20, 0x18bf5: 0x6cd75020, 0x18bf6: 0x6c89be20, 0x18bf7: 0x6c6ad020,
-	0x18bf8: 0x6c1c2220, 0x18bf9: 0x6c6ad220, 0x18bfa: 0x6c1d7020, 0x18bfb: 0x6cb2e820,
-	0x18bfc: 0x6c186a20, 0x18bfd: 0x6d0c9a20, 0x18bfe: 0x6c321c20, 0x18bff: 0x6c2c5a20,
-	// Block 0x630, offset 0x18c00
-	0x18c01: 0x6c89c220, 0x18c02: 0x6cfcd220, 0x18c03: 0x6c0c0420,
-	0x18c04: 0x6d042e20, 0x18c05: 0x6c9bda20, 0x18c06: 0x6d130220, 0x18c07: 0x6c9d5e20,
-	0x18c08: 0x6cb7a020, 0x18c09: 0x6cb7a220, 0x18c0a: 0x6cf30620, 0x18c0b: 0x6d01dc20,
-	0x18c0c: 0x6d239820, 0x18c0d: 0x6cb87020, 0x18c0e: 0x6c1a2820, 0x18c0f: 0x6d11c220,
-	0x18c10: 0x6d1bd420, 0x18c11: 0x6d0fd420, 0x18c12: 0x6c606820, 0x18c13: 0x6d3fa220,
-	0x18c14: 0x6d07b220, 0x18c15: 0x6c9f6e20, 0x18c16: 0x6c907620, 0x18c17: 0x6c766e20,
-	0x18c18: 0x6d11ca20, 0x18c19: 0x6d0dcc20, 0x18c1a: 0x6cdcfa20, 0x18c1b: 0x6c4b6c20,
-	0x18c1c: 0x6c5a7a20, 0x18c1d: 0x6d1c8e20, 0x18c1e: 0x6cd14420, 0x18c1f: 0x6c140220,
-	0x18c20: 0x6c883c20, 0x18c22: 0x6d082420, 0x18c23: 0x6c200e20,
-	0x18c24: 0x6c184220, 0x18c25: 0x6ca6ca20, 0x18c26: 0x6cc27820, 0x18c27: 0x6c9e7e20,
-	0x18c28: 0x6c5dfe20, 0x18c29: 0x6d21a420, 0x18c2a: 0x6d2e1620, 0x18c2b: 0x6c55c820,
-	0x18c2c: 0x6c136020, 0x18c2d: 0x6c0c2c20, 0x18c2e: 0x6cb9d020, 0x18c2f: 0x6cf6ee20,
-	0x18c30: 0x6c67c220, 0x18c31: 0x6c79c620, 0x18c32: 0x6c970220, 0x18c33: 0x6c98a220,
-	0x18c34: 0x6d2e2220, 0x18c35: 0x6c0b5c20, 0x18c36: 0x6c5f6c20, 0x18c37: 0x6c74d820,
-	0x18c38: 0x6ca45820, 0x18c39: 0x6c0a9020, 0x18c3a: 0x6cd3f420, 0x18c3b: 0x6cd7ac20,
-	0x18c3c: 0x6ca18820, 0x18c3d: 0x6c8b6420, 0x18c3e: 0x6c9f0820, 0x18c3f: 0x6ca19420,
-	// Block 0x631, offset 0x18c40
-	0x18c40: 0x6cf74820, 0x18c41: 0x6c156820, 0x18c42: 0x6cc21620, 0x18c43: 0x6c69e620,
-	0x18c44: 0x6c5e5a20, 0x18c45: 0x6cfb1a20, 0x18c46: 0x6d068820, 0x18c47: 0x6ca98820,
-	0x18c48: 0x6ce74020, 0x18c49: 0x6c542220, 0x18c4a: 0x6d240e20,
-	0x18c4c: 0x6c1ce220, 0x18c4d: 0x6c0fbc20, 0x18c4e: 0x6d415820, 0x18c4f: 0x6c2dba20,
-	0x18c50: 0x6d3cfa20, 0x18c51: 0x6c5ea620, 0x18c52: 0x6cb86220,
-	0x18c54: 0x6d043020, 0x18c55: 0x6c5c0020, 0x18c56: 0x6cd23420, 0x18c57: 0x6c7a1e20,
-	0x18c59: 0x6c32f220, 0x18c5a: 0x6d10da20, 0x18c5b: 0x6d20da20,
-	0x18c5c: 0x6c056420, 0x18c5d: 0x6c6a9220, 0x18c5e: 0x6d30e820, 0x18c5f: 0x6c634620,
-	0x18c60: 0x6cd2c820, 0x18c61: 0x6c2bea20, 0x18c62: 0x6c302a20, 0x18c63: 0x6c223a20,
-	0x18c64: 0x6c3fd220, 0x18c65: 0x6c9f4020, 0x18c66: 0x6d314020, 0x18c67: 0x6d31d020,
-	0x18c69: 0x6d0e6420, 0x18c6a: 0x6cbc2020, 0x18c6b: 0x6c4f4e20,
-	0x18c6c: 0x6c45ea20, 0x18c6d: 0x6cbb6e20, 0x18c6e: 0x6c94a220, 0x18c6f: 0x6c48f620,
-	0x18c70: 0x6c7e7620, 0x18c71: 0x6cc8ce20, 0x18c72: 0x6c383420, 0x18c73: 0x6c260a20,
-	0x18c74: 0x6d0c9c20, 0x18c75: 0x6c458a20, 0x18c76: 0x6c6ad420, 0x18c77: 0x6c48d020,
-	0x18c78: 0x6c4c7020, 0x18c79: 0x6cdd7c20, 0x18c7a: 0x6cf2ba20, 0x18c7b: 0x6d335220,
-	0x18c7c: 0x6ca84220, 0x18c7d: 0x6c2e2c20, 0x18c7e: 0x6c7f3c20, 0x18c7f: 0x6cde6420,
-	// Block 0x632, offset 0x18c80
-	0x18c80: 0x6c254620, 0x18c81: 0x6d0af420, 0x18c82: 0x6c4bd020,
-	0x18c85: 0x6c2b3420, 0x18c87: 0x6c9dc820,
-	0x18c88: 0x6c6a2a20, 0x18c89: 0x6c9f7020, 0x18c8a: 0x6c71ca20, 0x18c8b: 0x6d217420,
-	0x18c8c: 0x6d318020, 0x18c8d: 0x6d2fc820, 0x18c8e: 0x6d2cd220, 0x18c8f: 0x6d038820,
-	0x18c91: 0x6c049420, 0x18c92: 0x6c516620, 0x18c93: 0x6c46d220,
-	0x18c94: 0x6c538220, 0x18c95: 0x6c816e20, 0x18c96: 0x6cf51620, 0x18c97: 0x6c0e8c20,
-	0x18c98: 0x6c795420, 0x18c99: 0x6c92d420, 0x18c9a: 0x6c246420, 0x18c9b: 0x6c885020,
-	0x18c9c: 0x6d141820, 0x18c9d: 0x6cbc6020, 0x18c9e: 0x6cd53820,
-	0x18ca0: 0x6d08b220, 0x18ca1: 0x6c6c6220, 0x18ca2: 0x6cbd4220, 0x18ca3: 0x6c5b7020,
-	0x18ca4: 0x6cdb3620, 0x18ca5: 0x6c207c20, 0x18ca6: 0x6c33b420, 0x18ca7: 0x6c8fb220,
-	0x18ca9: 0x6ca4c820, 0x18caa: 0x6ce02220, 0x18cab: 0x6c285220,
-	0x18cac: 0x6cf03e20, 0x18cad: 0x6c41f220, 0x18cae: 0x6c26c620, 0x18caf: 0x6c86d420,
-	0x18cb0: 0x6c10de20, 0x18cb1: 0x6cfd3e20, 0x18cb2: 0x6cac8c20, 0x18cb3: 0x6c7eb620,
-	0x18cb4: 0x6d39ec20, 0x18cb5: 0x6ca7c420, 0x18cb6: 0x6c580220, 0x18cb7: 0x6d1cce20,
-	0x18cb8: 0x6cfd4620, 0x18cb9: 0x6c809020, 0x18cba: 0x6ca0a020, 0x18cbb: 0x6c03e220,
-	0x18cbd: 0x6c4adc20, 0x18cbe: 0x6c08c620, 0x18cbf: 0x6c3d5020,
-	// Block 0x633, offset 0x18cc0
-	0x18cc0: 0x6c5da820, 0x18cc1: 0x6d173c20, 0x18cc2: 0x6c8f2c20,
-	0x18cc4: 0x6d19cc20, 0x18cc5: 0x6c735c20, 0x18cc6: 0x6c5d7420, 0x18cc7: 0x6c1a0a20,
-	0x18cc8: 0x6c311c20, 0x18cc9: 0x6c356a20, 0x18ccb: 0x6d0da620,
-	0x18ccc: 0x6d3c9420, 0x18ccd: 0x6d2cce20, 0x18cce: 0x6cb70420, 0x18ccf: 0x6d216220,
-	0x18cd0: 0x6cc37620, 0x18cd1: 0x6c5d7a20, 0x18cd2: 0x6ca84420, 0x18cd3: 0x6c59e220,
-	0x18cd4: 0x6c71cc20, 0x18cd5: 0x6ccf6820,
-	0x18cd8: 0x6caebe20, 0x18cd9: 0x6ca01820, 0x18cda: 0x6c129220, 0x18cdb: 0x6c90ba20,
-	0x18cdc: 0x6c843e20, 0x18cdd: 0x6c205e20, 0x18cdf: 0x6c24f020,
-	0x18ce0: 0x6ccdc820, 0x18ce1: 0x6c280a20, 0x18ce2: 0x6cb68220,
-	0x18ce4: 0x6c7f7a20, 0x18ce5: 0x6c8de620, 0x18ce6: 0x6c8a6220, 0x18ce7: 0x6cc62220,
-	0x18ce8: 0x6d20c820, 0x18ce9: 0x6d16ca20, 0x18cea: 0x6c2df820, 0x18ceb: 0x6cb6dc20,
-	0x18cec: 0x6d147820, 0x18ced: 0x6ca6f420, 0x18cee: 0x6c3d5220, 0x18cef: 0x6c657420,
-	0x18cf0: 0x6d0b1c20, 0x18cf1: 0x6c398c20, 0x18cf2: 0x6cc8c420, 0x18cf3: 0x6cfa8c20,
-	0x18cf6: 0x6c096a20, 0x18cf7: 0x6cd25e20,
-	0x18cf8: 0x6cb38020, 0x18cf9: 0x6ca6fc20, 0x18cfa: 0x6d35f620, 0x18cfb: 0x6ce22020,
-	0x18cfc: 0x6ce4f020, 0x18cfd: 0x6ce4f220, 0x18cfe: 0x6cc81620, 0x18cff: 0x6d176a20,
-	// Block 0x634, offset 0x18d00
-	0x18d00: 0x6c8b0420, 0x18d01: 0x6c01bc20, 0x18d02: 0x6c511020, 0x18d03: 0x6cbf1620,
-	0x18d04: 0x6c85f420, 0x18d05: 0x6c4a5c20, 0x18d06: 0x6d3f4a20, 0x18d07: 0x6cdaaa20,
-	0x18d08: 0x6d261020, 0x18d09: 0x6d0ba220, 0x18d0a: 0x6c13dc20, 0x18d0b: 0x6ced2420,
-	0x18d0c: 0x6c72f420, 0x18d0d: 0x6ce6cc20, 0x18d0e: 0x6d1fd020, 0x18d0f: 0x6c5bc620,
-	0x18d10: 0x6c659c20, 0x18d11: 0x6cc89e20, 0x18d12: 0x6c986420, 0x18d13: 0x6c71b820,
-	0x18d14: 0x6d3e5620, 0x18d15: 0x6c70a820, 0x18d16: 0x6c013a20, 0x18d17: 0x6cdc5020,
-	0x18d18: 0x6c7f1620, 0x18d19: 0x6c5d3020, 0x18d1a: 0x6cc35e20, 0x18d1b: 0x6c167220,
-	0x18d1c: 0x6c34fa20, 0x18d1d: 0x6c798020, 0x18d1e: 0x6ca55020, 0x18d1f: 0x6c11d220,
-	0x18d20: 0x6ce35620, 0x18d21: 0x6d064c20, 0x18d22: 0x6c701020, 0x18d23: 0x6c59e420,
-	0x18d24: 0x6cb7b820, 0x18d25: 0x6c6b0e20, 0x18d26: 0x6c98f220, 0x18d27: 0x6d0c2020,
-	0x18d29: 0x6d354820, 0x18d2a: 0x6ce9b020,
-	0x18d2c: 0x6c00c220, 0x18d2d: 0x6cad0a20, 0x18d2e: 0x6c125a20, 0x18d2f: 0x6ce12820,
-	0x18d30: 0x6c372220, 0x18d31: 0x6c5d3c20, 0x18d32: 0x6cb63e20, 0x18d33: 0x6c1ea620,
-	0x18d34: 0x6cdd9020, 0x18d35: 0x6d3d8820, 0x18d36: 0x6caa2620, 0x18d37: 0x6ce8f220,
-	0x18d38: 0x6cd01a20, 0x18d39: 0x6c90f820, 0x18d3a: 0x6c0c2020, 0x18d3b: 0x6c844020,
-	0x18d3c: 0x6c977c20, 0x18d3d: 0x6d02f020, 0x18d3e: 0x6c133c20, 0x18d3f: 0x6c5a0a20,
-	// Block 0x635, offset 0x18d40
-	0x18d40: 0x6c9a6c20, 0x18d41: 0x6c42e620, 0x18d42: 0x6c887620, 0x18d43: 0x6c2a3e20,
-	0x18d44: 0x6d2e2420, 0x18d45: 0x6d3eaa20,
-	0x18d48: 0x6d375620, 0x18d49: 0x6c03d020, 0x18d4a: 0x6c258a20, 0x18d4b: 0x6cbfe420,
-	0x18d4d: 0x6c8fea20, 0x18d4e: 0x6cfb0a20, 0x18d4f: 0x6c3afa20,
-	0x18d50: 0x6c4cac20, 0x18d51: 0x6c19b820, 0x18d52: 0x6c6fda20, 0x18d53: 0x6c35f620,
-	0x18d54: 0x6c1cb420, 0x18d55: 0x6d269220, 0x18d56: 0x6c531620, 0x18d57: 0x6d119e20,
-	0x18d58: 0x6d0ae220, 0x18d59: 0x6d10e620, 0x18d5a: 0x6ce74420, 0x18d5b: 0x6d2cc020,
-	0x18d5c: 0x6d204020, 0x18d5d: 0x6d095620, 0x18d5e: 0x6d11aa20, 0x18d5f: 0x6c78a820,
-	0x18d60: 0x6c591620, 0x18d61: 0x6c80cc20, 0x18d62: 0x6d26ba20, 0x18d63: 0x6c18ca20,
-	0x18d66: 0x6cd0b220,
-	0x18d68: 0x6ca90e20, 0x18d69: 0x6ca00a20, 0x18d6a: 0x6c52ba20, 0x18d6b: 0x6c205820,
-	0x18d6c: 0x6d27fe20, 0x18d6d: 0x6d07be20, 0x18d6e: 0x6c6d4420, 0x18d6f: 0x6d3d9c20,
-	0x18d70: 0x6d209c20, 0x18d71: 0x6cdfbc20, 0x18d72: 0x6c775420, 0x18d73: 0x6cbf6420,
-	0x18d75: 0x6c1a4c20, 0x18d76: 0x6c6f8820, 0x18d77: 0x6d097620,
-	0x18d78: 0x6d32fa20, 0x18d79: 0x6c1ce420, 0x18d7a: 0x6cac4a20, 0x18d7b: 0x6cbc6620,
-	0x18d7d: 0x6cc1e620, 0x18d7e: 0x6c7fd620, 0x18d7f: 0x6d190e20,
-	// Block 0x636, offset 0x18d80
-	0x18d80: 0x6cc6de20, 0x18d81: 0x6cd84e20, 0x18d82: 0x6cb89c20, 0x18d83: 0x6cd89220,
-	0x18d85: 0x6c380420, 0x18d87: 0x6c9b1020,
-	0x18d88: 0x6c578e20, 0x18d8b: 0x6c4d6620,
-	0x18d8c: 0x6cbc4420, 0x18d8d: 0x6c1f4620, 0x18d8e: 0x6cc3d420, 0x18d8f: 0x6c334e20,
-	0x18d90: 0x6c863820, 0x18d91: 0x6c03b820, 0x18d92: 0x6c6c0420, 0x18d93: 0x6d05ee20,
-	0x18d94: 0x6c963620, 0x18d96: 0x6d27de20, 0x18d97: 0x6d37ae20,
-	0x18d98: 0x6c568220, 0x18d99: 0x6d1ad220, 0x18d9b: 0x6d351020,
-	0x18d9c: 0x6cb9fa20, 0x18d9e: 0x6c419420, 0x18d9f: 0x6c667c20,
-	0x18da0: 0x6d3ae220, 0x18da1: 0x6d3ae420, 0x18da2: 0x6c7a7820, 0x18da3: 0x6ca81a20,
-	0x18da4: 0x6cc8ca20, 0x18da5: 0x6d2ac220, 0x18da6: 0x6c020820, 0x18da7: 0x6d363820,
-	0x18da8: 0x6c461a20, 0x18da9: 0x6d17b220, 0x18daa: 0x6c1ab020, 0x18dab: 0x6c5ed620,
-	0x18dac: 0x6d39a620, 0x18dad: 0x6c81b220, 0x18dae: 0x6cc5ee20, 0x18daf: 0x6cc67620,
-	0x18db0: 0x6d32c620, 0x18db1: 0x6ca34220, 0x18db2: 0x6c12ec20,
-	0x18db5: 0x6d151e20, 0x18db6: 0x6c746820, 0x18db7: 0x6c0cee20,
-	0x18db8: 0x6c1a1e20, 0x18db9: 0x6c75ce20, 0x18dba: 0x6c312620, 0x18dbb: 0x6cefe420,
-	0x18dbc: 0x6d17fa20, 0x18dbd: 0x6d306020, 0x18dbe: 0x6d0cae20,
-	// Block 0x637, offset 0x18dc0
-	0x18dc0: 0x6cca0220, 0x18dc1: 0x6c950220, 0x18dc2: 0x6cb2be20, 0x18dc3: 0x6d2f9020,
-	0x18dc4: 0x6c4e2020, 0x18dc5: 0x6d239a20, 0x18dc6: 0x6c278220, 0x18dc7: 0x6d2fca20,
-	0x18dc8: 0x6c3a3e20, 0x18dc9: 0x6ccc6620, 0x18dca: 0x6c8d3820, 0x18dcb: 0x6cde7a20,
-	0x18dcc: 0x6cc12220, 0x18dcd: 0x6c986e20, 0x18dce: 0x6d132c20, 0x18dcf: 0x6c05d220,
-	0x18dd0: 0x6c4b6e20, 0x18dd1: 0x6c489e20, 0x18dd2: 0x6ca43620, 0x18dd3: 0x6c442420,
-	0x18dd5: 0x6cd28420, 0x18dd6: 0x6c782820, 0x18dd7: 0x6cdd9220,
-	0x18dd8: 0x6c225c20, 0x18dd9: 0x6d394620, 0x18dda: 0x6cdf3820, 0x18ddb: 0x6c7b3420,
-	0x18ddc: 0x6cbe2420, 0x18ddd: 0x6d05d820, 0x18dde: 0x6c322820, 0x18ddf: 0x6c131220,
-	0x18de0: 0x6c58da20, 0x18de1: 0x6c234420, 0x18de2: 0x6cc9de20, 0x18de3: 0x6d336020,
-	0x18de4: 0x6cb9be20, 0x18de5: 0x6c6c5420, 0x18de6: 0x6d3fb420, 0x18de7: 0x6cf00020,
-	0x18dea: 0x6cf8de20, 0x18deb: 0x6ca36c20,
-	0x18dec: 0x6cb45420, 0x18ded: 0x6cd9e020, 0x18dee: 0x6c729420, 0x18def: 0x6d319620,
-	0x18df0: 0x6cce8620, 0x18df1: 0x6ce1e820, 0x18df2: 0x6c049c20, 0x18df3: 0x6cdea020,
-	0x18df4: 0x6cba7c20, 0x18df5: 0x6cf23a20, 0x18df6: 0x6cc6ae20, 0x18df7: 0x6c962820,
-	0x18df8: 0x6c55ca20, 0x18df9: 0x6cda2e20, 0x18dfa: 0x6d37cc20, 0x18dfb: 0x6cb46020,
-	0x18dfc: 0x6c9ef620, 0x18dfd: 0x6c6c6420, 0x18dfe: 0x6cce8a20, 0x18dff: 0x6c9d8e20,
-	// Block 0x638, offset 0x18e00
-	0x18e00: 0x6cd61c20, 0x18e01: 0x6c8d7020, 0x18e02: 0x6c82de20, 0x18e03: 0x6c67c420,
-	0x18e04: 0x6c838a20, 0x18e05: 0x6d370e20, 0x18e06: 0x6c2e0020,
-	0x18e08: 0x6cca2e20, 0x18e09: 0x6c473e20, 0x18e0a: 0x6c397220, 0x18e0b: 0x6c9ab220,
-	0x18e0c: 0x6cdc9e20, 0x18e0d: 0x6c65f620, 0x18e0e: 0x6ce15020, 0x18e0f: 0x6d025e20,
-	0x18e10: 0x6c7a6a20, 0x18e11: 0x6cf3fe20, 0x18e12: 0x6c38d220, 0x18e13: 0x6c963820,
-	0x18e14: 0x6c117820, 0x18e15: 0x6c136620, 0x18e16: 0x6c8d7a20, 0x18e17: 0x6d142620,
-	0x18e18: 0x6c23be20, 0x18e19: 0x6d27ce20, 0x18e1a: 0x6c9b7420, 0x18e1b: 0x6d245020,
-	0x18e1c: 0x6d374220, 0x18e1d: 0x6d162020, 0x18e1e: 0x6c285620, 0x18e1f: 0x6c5e2c20,
-	0x18e20: 0x6cef5a20, 0x18e21: 0x6ce03220, 0x18e22: 0x6ccb7e20, 0x18e23: 0x6d024420,
-	0x18e24: 0x6cda3620, 0x18e25: 0x6cd97620, 0x18e26: 0x6cb94c20, 0x18e27: 0x6c8eda20,
-	0x18e28: 0x6d194620, 0x18e2a: 0x6c835a20, 0x18e2b: 0x6c84aa20,
-	0x18e2c: 0x6c3af420, 0x18e2d: 0x6c8b6a20, 0x18e2e: 0x6c8c8820, 0x18e2f: 0x6cfd4820,
-	0x18e30: 0x6d002c20, 0x18e31: 0x6cab6420, 0x18e32: 0x6c9cbc20, 0x18e33: 0x6cfb1220,
-	0x18e34: 0x6cc4f820, 0x18e35: 0x6d3c0220, 0x18e36: 0x6cd6be20, 0x18e37: 0x6d0d1e20,
-	0x18e38: 0x6c0be020, 0x18e39: 0x6c8df020, 0x18e3a: 0x6c531a20, 0x18e3b: 0x6cb5a620,
-	0x18e3c: 0x6c8a9620, 0x18e3d: 0x6c04ca20, 0x18e3e: 0x6c097e20, 0x18e3f: 0x6c554820,
-	// Block 0x639, offset 0x18e40
-	0x18e40: 0x6c554a20, 0x18e42: 0x6c12f220, 0x18e43: 0x6cae1c20,
-	0x18e44: 0x6cbf2c20, 0x18e45: 0x6c9ffe20, 0x18e46: 0x6c700220, 0x18e47: 0x6c10a220,
-	0x18e48: 0x6c9a1420, 0x18e49: 0x6cca1e20, 0x18e4a: 0x6cf0a820,
-	0x18e4d: 0x6c841e20, 0x18e4e: 0x6cc36220,
-	0x18e50: 0x6c5cfa20, 0x18e51: 0x6cfdf220, 0x18e53: 0x6cd3c620,
-	0x18e54: 0x6d1c9020, 0x18e56: 0x6ca43820, 0x18e57: 0x6c59f220,
-	0x18e58: 0x6c701a20, 0x18e59: 0x6d0c2620, 0x18e5b: 0x6cc99020,
-	0x18e5c: 0x6ce96220, 0x18e5d: 0x6d022e20, 0x18e5e: 0x6d309c20, 0x18e5f: 0x6c9ada20,
-	0x18e60: 0x6cf8f420, 0x18e61: 0x6c978a20, 0x18e63: 0x6c5a1820,
-	0x18e64: 0x6ce02420, 0x18e65: 0x6d001420, 0x18e66: 0x6d137220, 0x18e67: 0x6c0a9420,
-	0x18e68: 0x6c955a20, 0x18e69: 0x6c38d420, 0x18e6a: 0x6c870620, 0x18e6b: 0x6c251220,
-	0x18e6c: 0x6c1fa620, 0x18e6d: 0x6c2a4620, 0x18e6e: 0x6c2bb620, 0x18e6f: 0x6c7c1c20,
-	0x18e70: 0x6c1ecc20, 0x18e71: 0x6cfb1420, 0x18e72: 0x6c165220, 0x18e73: 0x6c9cce20,
-	0x18e74: 0x6cba8e20, 0x18e75: 0x6cc00820, 0x18e76: 0x6d322620,
-	0x18e7a: 0x6c568620, 0x18e7b: 0x6c418c20,
-	0x18e7c: 0x6c1b9220, 0x18e7d: 0x6c48f220, 0x18e7e: 0x6ca27a20, 0x18e7f: 0x6c0ede20,
-	// Block 0x63a, offset 0x18e80
-	0x18e80: 0x6c579020, 0x18e81: 0x6c44fc20, 0x18e82: 0x6d10e820, 0x18e83: 0x6c996420,
-	0x18e84: 0x6cee0820,
-	0x18e88: 0x6cc7a420, 0x18e89: 0x6d090820, 0x18e8a: 0x6d32b820, 0x18e8b: 0x6c9f4a20,
-	0x18e8c: 0x6c67a420, 0x18e8e: 0x6d2e5a20, 0x18e8f: 0x6d423820,
-	0x18e90: 0x6d26a620, 0x18e91: 0x6c8b0620, 0x18e93: 0x6d392420,
-	0x18e94: 0x6c098020, 0x18e95: 0x6cc5f020, 0x18e96: 0x6d234e20,
-	0x18e98: 0x6c21c020, 0x18e99: 0x6c379820, 0x18e9a: 0x6d17b420, 0x18e9b: 0x6c9cf620,
-	0x18e9c: 0x6cbeca20, 0x18e9e: 0x6cee1e20, 0x18e9f: 0x6c621e20,
-	0x18ea0: 0x6c104020, 0x18ea2: 0x6c0cae20, 0x18ea3: 0x6c38a820,
-	0x18ea4: 0x6d26c820, 0x18ea5: 0x6c83ee20, 0x18ea6: 0x6c38aa20, 0x18ea7: 0x6cc1a820,
-	0x18ea8: 0x6c3f7620, 0x18ea9: 0x6c376220, 0x18eaa: 0x6c354420, 0x18eab: 0x6d32e420,
-	0x18eac: 0x6ce47020, 0x18ead: 0x6d239c20, 0x18eae: 0x6c6d3020, 0x18eaf: 0x6cb70c20,
-	0x18eb0: 0x6c714220, 0x18eb1: 0x6c7f1e20, 0x18eb2: 0x6c17f020, 0x18eb3: 0x6c06d020,
-	0x18eb4: 0x6ca9a820, 0x18eb5: 0x6d186020, 0x18eb6: 0x6d065420, 0x18eb7: 0x6ca1e020,
-	0x18eb8: 0x6d0a3620, 0x18eb9: 0x6c3eda20, 0x18ebb: 0x6ca8ec20,
-	0x18ebc: 0x6ce64820, 0x18ebd: 0x6c082c20, 0x18ebe: 0x6d2c8a20, 0x18ebf: 0x6ceeae20,
-	// Block 0x63b, offset 0x18ec0
-	0x18ec0: 0x6c782a20, 0x18ec1: 0x6d10b020, 0x18ec2: 0x6caba420, 0x18ec3: 0x6cff0820,
-	0x18ec4: 0x6c451a20, 0x18ec5: 0x6ce13820, 0x18ec6: 0x6c4b7620, 0x18ec7: 0x6c5c3a20,
-	0x18ec8: 0x6cddfe20, 0x18eca: 0x6d114620, 0x18ecb: 0x6c266820,
-	0x18ecc: 0x6cb7ea20, 0x18ecd: 0x6c6cba20, 0x18ece: 0x6c94c220, 0x18ecf: 0x6c9d9020,
-	0x18ed0: 0x6c9d9220, 0x18ed1: 0x6c64fe20, 0x18ed2: 0x6c92ec20, 0x18ed3: 0x6c38c820,
-	0x18ed4: 0x6cab5620, 0x18ed5: 0x6c9c7e20, 0x18ed6: 0x6c6b6420, 0x18ed7: 0x6c3f9220,
-	0x18ed8: 0x6c0d1a20, 0x18ed9: 0x6c5a7c20, 0x18eda: 0x6cda5c20, 0x18edb: 0x6d115e20,
-	0x18edc: 0x6ca89620, 0x18edd: 0x6c6c6c20, 0x18ede: 0x6c88d620, 0x18edf: 0x6c0faa20,
-	0x18ee0: 0x6c652420, 0x18ee1: 0x6ce3ca20, 0x18ee2: 0x6c8d8220, 0x18ee3: 0x6d415220,
-	0x18ee4: 0x6cd20e20, 0x18ee5: 0x6d1b2620, 0x18ee6: 0x6c2a4820, 0x18ee7: 0x6c1e0620,
-	0x18ee8: 0x6c10e220, 0x18ee9: 0x6c9f1220, 0x18eea: 0x6d0e1620, 0x18eeb: 0x6c805620,
-	0x18eec: 0x6c1d3420, 0x18eed: 0x6c68b020, 0x18eee: 0x6cd6bc20, 0x18eef: 0x6cc2ac20,
-	0x18ef0: 0x6ca8c820, 0x18ef1: 0x6c964c20, 0x18ef3: 0x6cd21e20,
-	0x18ef4: 0x6c965020, 0x18ef5: 0x6d3a4c20, 0x18ef7: 0x6c1d6e20,
-	0x18ef8: 0x6c734e20, 0x18ef9: 0x6c6f0c20, 0x18efa: 0x6c379a20, 0x18efb: 0x6d17b820,
-	0x18efc: 0x6cc8d620, 0x18efd: 0x6c113c20, 0x18efe: 0x6cc57a20, 0x18eff: 0x6c3edc20,
-	// Block 0x63c, offset 0x18f00
-	0x18f00: 0x6c7fb820, 0x18f01: 0x6cdcaa20, 0x18f02: 0x6d20e220, 0x18f03: 0x6d1f1c20,
-	0x18f04: 0x6c2d1820, 0x18f05: 0x6c8cf420, 0x18f06: 0x6d3aec20, 0x18f07: 0x6cde5220,
-	0x18f08: 0x6cb29e20, 0x18f09: 0x6d2d2a20, 0x18f0a: 0x6c684c20, 0x18f0b: 0x6c20de20,
-	0x18f0c: 0x6c10ac20, 0x18f0d: 0x6c7a0620, 0x18f0e: 0x6c25b620,
-	0x18f10: 0x6c4e5220, 0x18f11: 0x6c4e5420, 0x18f12: 0x6ca20020, 0x18f13: 0x6c567420,
-	0x18f14: 0x6c457220, 0x18f15: 0x6c2b2020, 0x18f16: 0x6c3e3c20, 0x18f17: 0x6d088020,
-	0x18f18: 0x6c9c4c20, 0x18f19: 0x6c9a0420, 0x18f1a: 0x6c811e20, 0x18f1b: 0x6c481e20,
-	0x18f1c: 0x6d2fc020, 0x18f1d: 0x6cde6620, 0x18f1e: 0x6d23a220, 0x18f1f: 0x6d402820,
-	0x18f20: 0x6c844820, 0x18f21: 0x6c92d820, 0x18f22: 0x6cf3f620, 0x18f23: 0x6c826c20,
-	0x18f24: 0x6c615e20, 0x18f25: 0x6c875220, 0x18f26: 0x6c84d820,
-	0x18f28: 0x6cb30420, 0x18f29: 0x6d101020, 0x18f2a: 0x6cec2e20, 0x18f2b: 0x6ceb1a20,
-	0x18f2c: 0x6cae6e20, 0x18f2e: 0x6d2fb420, 0x18f2f: 0x6c4b0220,
-	0x18f31: 0x6d061e20, 0x18f32: 0x6ca38020, 0x18f33: 0x6cc3e420,
-	0x18f34: 0x6ceff620, 0x18f35: 0x6d32e620, 0x18f36: 0x6c300e20, 0x18f37: 0x6cf00820,
-	0x18f38: 0x6c0f6020, 0x18f3a: 0x6c595820, 0x18f3b: 0x6d08c020,
-	0x18f3c: 0x6d295620, 0x18f3d: 0x6c877220, 0x18f3e: 0x6d0d6020, 0x18f3f: 0x6c59ae20,
-	// Block 0x63d, offset 0x18f40
-	0x18f40: 0x6d095820, 0x18f41: 0x6c554c20, 0x18f42: 0x6c05f820, 0x18f43: 0x6cc4c220,
-	0x18f44: 0x6cfeba20, 0x18f45: 0x6cb38620, 0x18f46: 0x6c8a9820, 0x18f47: 0x6d388a20,
-	0x18f48: 0x6d17ba20, 0x18f49: 0x6d06e220, 0x18f4a: 0x6c960820, 0x18f4b: 0x6c77be20,
-	0x18f4c: 0x6c1f5620, 0x18f4e: 0x6ca35620, 0x18f4f: 0x6c4e2220,
-	0x18f50: 0x6c17a220, 0x18f51: 0x6c929220, 0x18f52: 0x6d2e0620, 0x18f53: 0x6cde7c20,
-	0x18f54: 0x6c3da220, 0x18f55: 0x6c52c820, 0x18f56: 0x6d2ba020, 0x18f57: 0x6cbc0620,
-	0x18f58: 0x6cdb5020, 0x18f59: 0x6cb1fa20, 0x18f5a: 0x6c49ba20,
-	0x18f5c: 0x6c5cd020, 0x18f5d: 0x6c1e8020, 0x18f5f: 0x6c374420,
-	0x18f60: 0x6c374620, 0x18f61: 0x6cc85a20, 0x18f62: 0x6cb6e220, 0x18f63: 0x6cd8ba20,
-	0x18f64: 0x6c713620, 0x18f66: 0x6d0dbe20, 0x18f67: 0x6c058220,
-	0x18f68: 0x6d131e20, 0x18f69: 0x6d3e6c20, 0x18f6a: 0x6ca55220, 0x18f6b: 0x6c20b220,
-	0x18f6c: 0x6c03c220, 0x18f6d: 0x6c126c20, 0x18f6e: 0x6ce42c20, 0x18f6f: 0x6c4f1c20,
-	0x18f70: 0x6d425220, 0x18f71: 0x6c03d420, 0x18f72: 0x6d301420, 0x18f73: 0x6cec2820,
-	0x18f74: 0x6c44c420, 0x18f75: 0x6c098220, 0x18f76: 0x6c37ca20, 0x18f77: 0x6d3af820,
-	0x18f78: 0x6cf50220, 0x18f79: 0x6cf19a20, 0x18f7a: 0x6d369820, 0x18f7b: 0x6d393c20,
-	0x18f7c: 0x6c929420, 0x18f7d: 0x6cf1a020, 0x18f7e: 0x6c4bdc20, 0x18f7f: 0x6cc08e20,
-	// Block 0x63e, offset 0x18f80
-	0x18f80: 0x6c7e9420, 0x18f81: 0x6d292020, 0x18f82: 0x6cda2820, 0x18f83: 0x6c9dd420,
-	0x18f84: 0x6c2c0620, 0x18f85: 0x6cb7ec20, 0x18f86: 0x6c129a20, 0x18f87: 0x6cb1bc20,
-	0x18f88: 0x6c887820, 0x18f89: 0x6cd21020, 0x18f8a: 0x6c8ff620, 0x18f8b: 0x6cdad620,
-	0x18f8c: 0x6cb73220, 0x18f8d: 0x6d25fa20, 0x18f8e: 0x6c3c9e20, 0x18f8f: 0x6d056820,
-	0x18f90: 0x6c73f620, 0x18f91: 0x6c2c3020, 0x18f92: 0x6cb14820, 0x18f93: 0x6c494a20,
-	0x18f94: 0x6ca98620, 0x18f95: 0x6cc5d220, 0x18f96: 0x6d321c20, 0x18f97: 0x6c412e20,
-	0x18f98: 0x6cb08a20, 0x18f99: 0x6ce05420, 0x18f9a: 0x6c179220, 0x18f9b: 0x6c217220,
-	0x18f9c: 0x6c508e20, 0x18f9d: 0x6d3b7220, 0x18f9e: 0x6ca0ec20, 0x18f9f: 0x6c0ce020,
-	0x18fa0: 0x6cb75e20, 0x18fa1: 0x6cd34620, 0x18fa2: 0x6c08ca20, 0x18fa3: 0x6c740620,
-	0x18fa4: 0x6cd8a420, 0x18fa6: 0x6c485220, 0x18fa7: 0x6ca32a20,
-	0x18fa8: 0x6c5b4e20, 0x18fa9: 0x6cf5ca20, 0x18faa: 0x6c37c820, 0x18fab: 0x6d04ca20,
-	0x18fac: 0x6ca1ca20, 0x18fae: 0x6cf77220, 0x18faf: 0x6d360220,
-	0x18fb0: 0x6cc8fc20, 0x18fb1: 0x6c711a20, 0x18fb2: 0x6c2e9420, 0x18fb3: 0x6d30f420,
-	0x18fb4: 0x6cced820, 0x18fb5: 0x6c9bd220, 0x18fb6: 0x6c098420, 0x18fb7: 0x6c4eb420,
-	0x18fb8: 0x6d210420, 0x18fb9: 0x6cfcb820, 0x18fba: 0x6cacd420, 0x18fbb: 0x6ca5a620,
-	0x18fbc: 0x6c119820, 0x18fbd: 0x6c109c20, 0x18fbf: 0x6cb70020,
-	// Block 0x63f, offset 0x18fc0
-	0x18fc0: 0x6c620820, 0x18fc1: 0x6d3d6420, 0x18fc2: 0x6c925e20, 0x18fc3: 0x6c75c220,
-	0x18fc4: 0x6cfccc20, 0x18fc5: 0x6cf62620, 0x18fc6: 0x6c113220, 0x18fc7: 0x6cf1e220,
-	0x18fc8: 0x6d346a20, 0x18fc9: 0x6d3f5820, 0x18fca: 0x6c7d6820, 0x18fcb: 0x6c231a20,
-	0x18fcc: 0x6ce4f820, 0x18fcd: 0x6c1f5820, 0x18fce: 0x6c2b3620, 0x18fcf: 0x6c218220,
-	0x18fd0: 0x6cbfb620, 0x18fd1: 0x6d306220, 0x18fd2: 0x6d2be220, 0x18fd3: 0x6cc75420,
-	0x18fd4: 0x6c0d7c20, 0x18fd5: 0x6c605c20, 0x18fd6: 0x6cf65420, 0x18fd7: 0x6d39b220,
-	0x18fd8: 0x6c746a20, 0x18fd9: 0x6c440a20, 0x18fda: 0x6c5eee20, 0x18fdb: 0x6c265620,
-	0x18fdc: 0x6c187c20, 0x18fdd: 0x6cddce20, 0x18fde: 0x6cc92820, 0x18fdf: 0x6cfdf420,
-	0x18fe0: 0x6c5a5c20, 0x18fe1: 0x6cb65020, 0x18fe2: 0x6d3b1820, 0x18fe3: 0x6cdcf620,
-	0x18fe4: 0x6c146c20, 0x18fe5: 0x6cf25a20, 0x18fe6: 0x6c781a20, 0x18fe7: 0x6c77c420,
-	0x18fe8: 0x6c47b820, 0x18fe9: 0x6c410220, 0x18fea: 0x6c396620, 0x18feb: 0x6c234c20,
-	0x18fec: 0x6c128c20, 0x18fed: 0x6d36bc20, 0x18fee: 0x6c15d820, 0x18fef: 0x6c825420,
-	0x18ff0: 0x6d04ee20, 0x18ff1: 0x6d2d4820, 0x18ff2: 0x6d308220, 0x18ff3: 0x6d218a20,
-	0x18ff4: 0x6c4b7020, 0x18ff5: 0x6c45ae20, 0x18ff6: 0x6d295020, 0x18ff7: 0x6c27fe20,
-	0x18ff8: 0x6c5e0020, 0x18ff9: 0x6cd9e220, 0x18ffa: 0x6ce0ac20, 0x18ffb: 0x6c473020,
-	0x18ffc: 0x6cf8e620, 0x18ffd: 0x6c978020, 0x18ffe: 0x6c346620, 0x18fff: 0x6c02f420,
-	// Block 0x640, offset 0x19000
-	0x19000: 0x6cb0c420, 0x19001: 0x6cf52a20, 0x19002: 0x6c007c20, 0x19003: 0x6c9b7620,
-	0x19004: 0x6cb0d220, 0x19005: 0x6c9b7820, 0x19006: 0x6d103a20, 0x19007: 0x6d374420,
-	0x19008: 0x6c0fac20, 0x19009: 0x6d1cc820, 0x1900a: 0x6cef6020, 0x1900b: 0x6cc50e20,
-	0x1900c: 0x6c7ffa20, 0x1900d: 0x6d0c4620, 0x1900e: 0x6c161220, 0x1900f: 0x6cc33620,
-	0x19010: 0x6d31d820, 0x19011: 0x6cb46a20, 0x19013: 0x6cdf2a20,
-	0x19014: 0x6c3a9e20, 0x19015: 0x6cd55620, 0x19017: 0x6c298820,
-	0x19018: 0x6c25f220, 0x19019: 0x6cdf9c20, 0x1901a: 0x6ce49820, 0x1901b: 0x6c1ba020,
-	0x1901c: 0x6cde9020, 0x1901d: 0x6c642a20, 0x1901e: 0x6cd75e20, 0x1901f: 0x6c5a3220,
-	0x19020: 0x6c8a6820, 0x19023: 0x6c185e20,
-	0x19024: 0x6c6cf820, 0x19025: 0x6c360020, 0x19026: 0x6c464620, 0x19027: 0x6c3e6420,
-	0x19028: 0x6c34f020, 0x1902a: 0x6c363e20, 0x1902b: 0x6c07f020,
-	0x1902c: 0x6ce1ca20, 0x1902d: 0x6c2c6020, 0x1902f: 0x6c2c7020,
-	0x19030: 0x6c10a620, 0x19031: 0x6ced3820, 0x19032: 0x6d2fd020, 0x19033: 0x6c950620,
-	0x19034: 0x6cb62620, 0x19035: 0x6ca2a420, 0x19036: 0x6cba6c20,
-	0x19038: 0x6d3fae20, 0x19039: 0x6cd9d620, 0x1903b: 0x6d1f6220,
-	0x1903c: 0x6d38ac20, 0x1903d: 0x6cdea620, 0x1903f: 0x6cdb3c20,
-	// Block 0x641, offset 0x19040
-	0x19040: 0x6c10c220, 0x19041: 0x6cf7aa20, 0x19042: 0x6c67c620, 0x19043: 0x6c12ba20,
-	0x19044: 0x6c406620, 0x19045: 0x6ce2b820, 0x19046: 0x6c185220, 0x19047: 0x6c407820,
-	0x19048: 0x6c3ae020, 0x19049: 0x6cf48c20, 0x1904a: 0x6cf5ac20, 0x1904b: 0x6d101620,
-	0x1904c: 0x6ca04820, 0x1904d: 0x6cad2020, 0x1904e: 0x6c98a620, 0x1904f: 0x6ccbba20,
-	0x19050: 0x6c9bb420, 0x19051: 0x6c12a820, 0x19052: 0x6ce57220, 0x19053: 0x6c764820,
-	0x19054: 0x6c043620, 0x19055: 0x6cffa620, 0x19056: 0x6d032620, 0x19057: 0x6cb76220,
-	0x1905a: 0x6cceb020, 0x1905b: 0x6c590a20,
-	0x1905c: 0x6ca96a20, 0x1905d: 0x6cff7820, 0x1905e: 0x6c18b220, 0x1905f: 0x6c27ce20,
-	0x19060: 0x6c3c3820, 0x19061: 0x6d1ad420, 0x19062: 0x6c01fa20, 0x19063: 0x6cc4be20,
-	0x19064: 0x6cc64420, 0x19065: 0x6c976020, 0x19066: 0x6c394c20, 0x19067: 0x6cc10220,
-	0x19068: 0x6cd2ce20, 0x19069: 0x6c511820, 0x1906a: 0x6c0b9220, 0x1906b: 0x6c276220,
-	0x1906c: 0x6ca11420, 0x1906d: 0x6c2aca20,
-	0x19070: 0x6c7ba020, 0x19072: 0x6c144220, 0x19073: 0x6c349620,
-	0x19074: 0x6d1fd220, 0x19075: 0x6c504020, 0x19077: 0x6c486020,
-	0x19078: 0x6d095c20, 0x19079: 0x6c833620, 0x1907a: 0x6c6c9220, 0x1907b: 0x6cb70220,
-	0x1907c: 0x6cc11020, 0x1907d: 0x6cee2220, 0x1907e: 0x6d13f620, 0x1907f: 0x6c89e620,
-	// Block 0x642, offset 0x19080
-	0x19082: 0x6d0cb020, 0x19083: 0x6d180220,
-	0x19084: 0x6d1a7620, 0x19085: 0x6cb60020, 0x19086: 0x6d306420, 0x19087: 0x6cf8a620,
-	0x19088: 0x6d180420, 0x19089: 0x6d128620, 0x1908a: 0x6cf3d820, 0x1908b: 0x6d33fa20,
-	0x1908c: 0x6d366a20, 0x1908d: 0x6c4e5a20, 0x1908e: 0x6c21c820, 0x1908f: 0x6c3d8420,
-	0x19090: 0x6c215220, 0x19091: 0x6cb2b620, 0x19092: 0x6c7afa20, 0x19093: 0x6c1dc220,
-	0x19095: 0x6ceb8a20, 0x19096: 0x6cbf4220, 0x19097: 0x6c233020,
-	0x19098: 0x6c42d220, 0x19099: 0x6c7acc20, 0x1909a: 0x6cc12620, 0x1909b: 0x6cc12820,
-	0x1909c: 0x6d340020, 0x1909d: 0x6c9c0a20, 0x1909e: 0x6c865220, 0x1909f: 0x6d389c20,
-	0x190a0: 0x6cde8420, 0x190a1: 0x6d340220, 0x190a2: 0x6c482420, 0x190a3: 0x6c899c20,
-	0x190a4: 0x6c54ee20, 0x190a5: 0x6c7e8820, 0x190a6: 0x6c2d2620, 0x190a7: 0x6c22d820,
-	0x190a8: 0x6d1bde20, 0x190ab: 0x6cb62a20,
-	0x190ad: 0x6c144620, 0x190ae: 0x6c99b020, 0x190af: 0x6c31b020,
-	0x190b0: 0x6d19fe20, 0x190b1: 0x6c148820, 0x190b2: 0x6cc8dc20, 0x190b3: 0x6c524020,
-	0x190b4: 0x6cc87820, 0x190b5: 0x6c3d9420, 0x190b6: 0x6c7f4e20, 0x190b7: 0x6d043420,
-	0x190b8: 0x6c64e020, 0x190b9: 0x6d186220, 0x190ba: 0x6c9a6820,
-	0x190bc: 0x6c987620, 0x190bd: 0x6c627e20, 0x190be: 0x6cdd3a20, 0x190bf: 0x6c4f0c20,
-	// Block 0x643, offset 0x190c0
-	0x190c1: 0x6c868420, 0x190c2: 0x6d3f2220, 0x190c3: 0x6d412820,
-	0x190c4: 0x6d114820, 0x190c5: 0x6c43a820, 0x190c6: 0x6c844c20, 0x190c7: 0x6cb71c20,
-	0x190c8: 0x6c462420, 0x190c9: 0x6c868620, 0x190ca: 0x6c0db220, 0x190cb: 0x6cdd3c20,
-	0x190ce: 0x6cdb3e20, 0x190cf: 0x6c1e4c20,
-	0x190d0: 0x6c650220, 0x190d1: 0x6d010020, 0x190d2: 0x6c076420, 0x190d3: 0x6d066020,
-	0x190d4: 0x6c6eb620, 0x190d5: 0x6cb46220, 0x190d6: 0x6c8d7220, 0x190d7: 0x6cfdd620,
-	0x190d8: 0x6d42ac20, 0x190d9: 0x6c2e4420, 0x190da: 0x6c216a20, 0x190db: 0x6cbeb620,
-	0x190dc: 0x6ca41020, 0x190dd: 0x6d2cfe20, 0x190de: 0x6c940820, 0x190df: 0x6d157420,
-	0x190e0: 0x6cceba20, 0x190e1: 0x6d21ba20, 0x190e2: 0x6c575c20, 0x190e3: 0x6c845e20,
-	0x190e4: 0x6cabce20, 0x190e7: 0x6c846020,
-	0x190ea: 0x6cd6e620,
-	0x190ec: 0x6d18d620, 0x190ed: 0x6ca95c20, 0x190ee: 0x6cd83820, 0x190ef: 0x6c7ab020,
-	0x190f0: 0x6c407a20, 0x190f1: 0x6d142820, 0x190f2: 0x6c2ab820, 0x190f3: 0x6cc49620,
-	0x190f4: 0x6c131e20, 0x190f6: 0x6ce39820, 0x190f7: 0x6cbdb420,
-	0x190f8: 0x6c0c8820, 0x190f9: 0x6cdca420, 0x190fa: 0x6cef4c20, 0x190fb: 0x6c33bc20,
-	0x190fc: 0x6ccb7a20, 0x190fd: 0x6c00f620, 0x190fe: 0x6cb7f420, 0x190ff: 0x6d420e20,
-	// Block 0x644, offset 0x19100
-	0x19100: 0x6c7b7620, 0x19101: 0x6c3a7420, 0x19103: 0x6d1b9620,
-	0x19105: 0x6ccaea20, 0x19106: 0x6c314820, 0x19107: 0x6c5c8220,
-	0x19108: 0x6d026220, 0x19109: 0x6d2b1c20, 0x1910a: 0x6ce03420, 0x1910b: 0x6ce15a20,
-	0x1910c: 0x6d374620, 0x1910d: 0x6d191620, 0x1910e: 0x6c3f1c20, 0x1910f: 0x6c359420,
-	0x19111: 0x6c75fc20, 0x19112: 0x6c638e20, 0x19113: 0x6c141220,
-	0x19114: 0x6cfbca20, 0x19115: 0x6c981420, 0x19117: 0x6c0aba20,
-	0x19118: 0x6c8d9220, 0x19119: 0x6c6b7620, 0x1911a: 0x6c7d3620, 0x1911b: 0x6c63f620,
-	0x1911d: 0x6c19a420, 0x1911e: 0x6c813420, 0x1911f: 0x6d03b420,
-	0x19120: 0x6c3af620, 0x19121: 0x6c936e20, 0x19122: 0x6d2c9e20, 0x19123: 0x6c51a420,
-	0x19124: 0x6c5f9420, 0x19125: 0x6ca66220, 0x19126: 0x6d1cd620, 0x19127: 0x6d002e20,
-	0x19128: 0x6ce2d820, 0x19129: 0x6c81c820, 0x1912a: 0x6d2b2820, 0x1912b: 0x6c7cba20,
-	0x1912d: 0x6cb9e620, 0x1912e: 0x6c719020, 0x1912f: 0x6cb18c20,
-	0x19130: 0x6c38f220, 0x19131: 0x6ce80020, 0x19132: 0x6c8c4020, 0x19133: 0x6c9cc020,
-	0x19134: 0x6d3de820, 0x19135: 0x6d013020, 0x19136: 0x6c56ee20, 0x19137: 0x6c9cc220,
-	0x19138: 0x6c6a4820, 0x19139: 0x6d28e220, 0x1913a: 0x6c23d620, 0x1913b: 0x6c87b220,
-	0x1913c: 0x6cc4a020, 0x1913d: 0x6d3a4a20, 0x1913e: 0x6d1ab820, 0x1913f: 0x6c4f4020,
-	// Block 0x645, offset 0x19140
-	0x19141: 0x6d198620, 0x19142: 0x6c948020, 0x19143: 0x6d274420,
-	0x19144: 0x6cc4a420, 0x19145: 0x6c8df620, 0x19146: 0x6ca78620, 0x19147: 0x6d24b620,
-	0x19148: 0x6caaa020, 0x1914a: 0x6d174020, 0x1914b: 0x6caaa420,
-	0x1914c: 0x6d174220, 0x1914d: 0x6cb98020, 0x1914e: 0x6cf9b620, 0x1914f: 0x6c1edc20,
-	0x19150: 0x6d1a6820, 0x19151: 0x6c9d4820, 0x19152: 0x6cf65820, 0x19153: 0x6ca35a20,
-	0x19154: 0x6c76de20, 0x19155: 0x6d412020, 0x19156: 0x6cf9da20, 0x19157: 0x6d0cc620,
-	0x19158: 0x6ce8f420, 0x19159: 0x6ce30020, 0x1915a: 0x6cf38820, 0x1915b: 0x6cdda820,
-	0x1915c: 0x6d1aaa20, 0x1915d: 0x6c1d0a20, 0x1915e: 0x6d38de20, 0x1915f: 0x6c988620,
-	0x19160: 0x6d254820, 0x19161: 0x6caa8020, 0x19162: 0x6c9e7020, 0x19163: 0x6d2a4820,
-	0x19164: 0x6ced1420, 0x19165: 0x6c83ca20, 0x19166: 0x6cc10420, 0x19167: 0x6ca33a20,
-	0x19168: 0x6cd26220, 0x19169: 0x6c098c20, 0x1916a: 0x6d3e2a20, 0x1916b: 0x6c056c20,
-	0x1916d: 0x6c736c20, 0x1916e: 0x6cfde620, 0x1916f: 0x6c7c7c20,
-	0x19170: 0x6cac2c20, 0x19171: 0x6c7ba220, 0x19172: 0x6d0a1220, 0x19173: 0x6d2cc620,
-	0x19174: 0x6d10fc20, 0x19175: 0x6c7d6a20, 0x19176: 0x6c5acc20, 0x19177: 0x6cf65a20,
-	0x19178: 0x6c357420, 0x19179: 0x6d0fcc20, 0x1917a: 0x6ce59020, 0x1917b: 0x6d1f4e20,
-	0x1917c: 0x6c746c20, 0x1917d: 0x6c83f620, 0x1917f: 0x6c842020,
-	// Block 0x646, offset 0x19180
-	0x19180: 0x6c198020, 0x19181: 0x6c624e20, 0x19182: 0x6c562a20, 0x19183: 0x6d2e7020,
-	0x19184: 0x6c3f7a20, 0x19185: 0x6c16ba20, 0x19186: 0x6c495c20, 0x19187: 0x6c714420,
-	0x19188: 0x6c9b3220, 0x19189: 0x6c167820, 0x1918a: 0x6ce0a620, 0x1918b: 0x6ca1e220,
-	0x1918c: 0x6d039e20, 0x1918d: 0x6c852620, 0x1918e: 0x6d0c2a20, 0x1918f: 0x6cd9da20,
-	0x19190: 0x6cd1ee20, 0x19191: 0x6d186420, 0x19192: 0x6c0e2a20, 0x19193: 0x6c234e20,
-	0x19194: 0x6c542c20, 0x19195: 0x6ced3a20, 0x19196: 0x6c2c9620, 0x19197: 0x6c5f4420,
-	0x19198: 0x6c443820, 0x19199: 0x6c4e3420, 0x1919a: 0x6c0f6220, 0x1919b: 0x6d04f420,
-	0x1919c: 0x6c8ea220, 0x1919d: 0x6c11ae20, 0x1919e: 0x6c11b020, 0x1919f: 0x6d18d820,
-	0x191a0: 0x6d082c20, 0x191a1: 0x6d0ce020, 0x191a2: 0x6d2a5c20, 0x191a3: 0x6c4f1e20,
-	0x191a4: 0x6d1e0020, 0x191a5: 0x6d3fc820, 0x191a7: 0x6c775820,
-	0x191a8: 0x6d21bc20, 0x191a9: 0x6cb53820, 0x191aa: 0x6d310620, 0x191ab: 0x6c967e20,
-	0x191ae: 0x6cd6e820, 0x191af: 0x6c6d6a20,
-	0x191b0: 0x6c49b020, 0x191b1: 0x6cb46c20, 0x191b2: 0x6c8c7220,
-	0x191b4: 0x6ce69c20, 0x191b5: 0x6c679420, 0x191b6: 0x6c7eac20, 0x191b7: 0x6d191820,
-	0x191b8: 0x6d1dce20, 0x191b9: 0x6c22ec20, 0x191ba: 0x6d0dfe20, 0x191bb: 0x6c6b7020,
-	0x191bc: 0x6d09c820, 0x191bd: 0x6cf11020, 0x191be: 0x6cfc4c20, 0x191bf: 0x6ca93620,
-	// Block 0x647, offset 0x191c0
-	0x191c0: 0x6c408c20, 0x191c1: 0x6c445c20, 0x191c3: 0x6ca19c20,
-	0x191c4: 0x6d3b4620, 0x191c5: 0x6ca38a20, 0x191c6: 0x6cfc5620, 0x191c7: 0x6cf1c420,
-	0x191c8: 0x6c877820, 0x191c9: 0x6c11c220, 0x191ca: 0x6c9f1c20, 0x191cb: 0x6c655220,
-	0x191cc: 0x6ca6e220, 0x191cd: 0x6c14b020, 0x191ce: 0x6cecb020, 0x191cf: 0x6d069c20,
-	0x191d0: 0x6caa8220, 0x191d1: 0x6c973020, 0x191d2: 0x6d417020, 0x191d3: 0x6c770c20,
-	0x191d4: 0x6c761620, 0x191d5: 0x6c4f7020,
-	0x191d8: 0x6d23f420, 0x191d9: 0x6cf11220, 0x191da: 0x6d39fa20,
-	0x191dd: 0x6d170a20, 0x191df: 0x6c2dbc20,
-	0x191e0: 0x6c3e4420, 0x191e1: 0x6c08d620, 0x191e2: 0x6d3a6820, 0x191e3: 0x6d3f0c20,
-	0x191e4: 0x6cd5cc20, 0x191e5: 0x6cf9ba20, 0x191e6: 0x6ca5e020,
-	0x191e8: 0x6c68fe20, 0x191e9: 0x6d0a1420, 0x191ea: 0x6c1cc620, 0x191eb: 0x6caa2220,
-	0x191ec: 0x6cc67e20, 0x191ed: 0x6d364220, 0x191ee: 0x6cca6e20,
-	0x191f0: 0x6cccf020, 0x191f1: 0x6d237e20, 0x191f3: 0x6c6c4e20,
-	0x191f5: 0x6c929c20, 0x191f6: 0x6c4db020, 0x191f7: 0x6c0cb220,
-	0x191f8: 0x6d183a20, 0x191f9: 0x6d41c020, 0x191fa: 0x6d2e7220, 0x191fb: 0x6d23ac20,
-	0x191fc: 0x6ced3c20, 0x191fd: 0x6ca5fe20, 0x191fe: 0x6c495e20, 0x191ff: 0x6c748420,
-	// Block 0x648, offset 0x19200
-	0x19200: 0x6c082820, 0x19201: 0x6c11a220, 0x19203: 0x6c351220,
-	0x19204: 0x6cb7c620, 0x19205: 0x6d10b420, 0x19206: 0x6c7d1820, 0x19207: 0x6cc84820,
-	0x19208: 0x6c542e20, 0x19209: 0x6d0a3820, 0x1920a: 0x6d020020,
-	0x1920c: 0x6c7d1a20, 0x1920e: 0x6d00f020, 0x1920f: 0x6c0f6420,
-	0x19210: 0x6c78d820, 0x19211: 0x6c24ec20, 0x19212: 0x6d074020, 0x19213: 0x6c042820,
-	0x19214: 0x6cab5820, 0x19215: 0x6d400c20, 0x19217: 0x6ce42e20,
-	0x19218: 0x6c1ef220, 0x19219: 0x6c1b5820, 0x1921a: 0x6ca7b420, 0x1921b: 0x6c49ac20,
-	0x1921c: 0x6c3cbe20, 0x1921d: 0x6d023020, 0x1921e: 0x6c2aba20, 0x1921f: 0x6cef4e20,
-	0x19220: 0x6c74e220, 0x19221: 0x6c7d2e20, 0x19222: 0x6d2bb420, 0x19223: 0x6cc9ac20,
-	0x19224: 0x6c34bc20, 0x19225: 0x6c8d8420, 0x19226: 0x6c9b9a20,
-	0x19228: 0x6c4cde20, 0x19229: 0x6c9b9c20, 0x1922a: 0x6c8fec20,
-	0x1922c: 0x6d1d5e20, 0x1922e: 0x6c49c620, 0x1922f: 0x6c248820,
-	0x19230: 0x6c84e620, 0x19231: 0x6c320c20, 0x19233: 0x6c0bf220,
-	0x19235: 0x6cf62c20, 0x19237: 0x6c2a6620,
-	0x19238: 0x6c2a6820, 0x19239: 0x6cfcba20, 0x1923a: 0x6c880020,
-	0x1923c: 0x6ccedc20, 0x1923d: 0x6d00b020, 0x1923e: 0x6cd1c420, 0x1923f: 0x6cf09e20,
-	// Block 0x649, offset 0x19240
-	0x19242: 0x6c51d820, 0x19243: 0x6d1f5a20,
-	0x19244: 0x6c92b220, 0x19245: 0x6c7f5020, 0x19246: 0x6d1d0e20, 0x19247: 0x6cd14c20,
-	0x19248: 0x6c739220, 0x19249: 0x6cb7e420, 0x1924a: 0x6c65ea20, 0x1924b: 0x6d285c20,
-	0x1924d: 0x6cb7f620, 0x1924f: 0x6c8c7c20,
-	0x19250: 0x6c60ea20, 0x19251: 0x6c970a20, 0x19252: 0x6c208220, 0x19253: 0x6ca74620,
-	0x19254: 0x6c0d6e20, 0x19255: 0x6c87c020, 0x19256: 0x6c8dfa20, 0x19257: 0x6c427a20,
-	0x19258: 0x6c1a2020, 0x19259: 0x6d07b020, 0x1925a: 0x6cfc1a20, 0x1925b: 0x6c558620,
-	0x1925c: 0x6c088620, 0x1925d: 0x6d40d020, 0x1925e: 0x6c271a20, 0x1925f: 0x6c271c20,
-	0x19260: 0x6c5d3e20, 0x19261: 0x6cc9d020, 0x19262: 0x6c184420, 0x19263: 0x6ce37c20,
-	0x19265: 0x6cab1a20, 0x19266: 0x6d371420, 0x19267: 0x6c8ebe20,
-	0x19268: 0x6c3aea20, 0x19269: 0x6c695e20, 0x1926a: 0x6c493620, 0x1926b: 0x6cf7ba20,
-	0x1926c: 0x6c8bf820, 0x1926d: 0x6d07f820, 0x1926e: 0x6cc62a20, 0x1926f: 0x6ce25a20,
-	0x19270: 0x6cb05820, 0x19271: 0x6d032a20, 0x19272: 0x6ccd7c20, 0x19273: 0x6d360e20,
-	0x19274: 0x6cec3220, 0x19275: 0x6ce81020, 0x19276: 0x6ce46620, 0x19277: 0x6d13e820,
-	0x19278: 0x6d019c20, 0x19279: 0x6cb05c20, 0x1927a: 0x6d10ec20, 0x1927b: 0x6d10ee20,
-	0x1927c: 0x6caa8620, 0x1927d: 0x6c503a20, 0x1927e: 0x6ca8e820, 0x1927f: 0x6d1b4a20,
-	// Block 0x64a, offset 0x19280
-	0x19280: 0x6c390a20, 0x19281: 0x6ca3fa20, 0x19282: 0x6d109c20, 0x19283: 0x6ced7e20,
-	0x19284: 0x6d25e820, 0x19285: 0x6cf9c820, 0x19286: 0x6d392c20, 0x19287: 0x6d25ea20,
-	0x19288: 0x6cd38a20, 0x19289: 0x6c9e5a20, 0x1928a: 0x6cf62e20, 0x1928b: 0x6c621220,
-	0x1928c: 0x6ce22a20, 0x1928d: 0x6c3ab020, 0x1928e: 0x6d096020, 0x1928f: 0x6ca5e820,
-	0x19290: 0x6c224620, 0x19291: 0x6c9d4a20, 0x19292: 0x6c0ba220,
-	0x19294: 0x6ca2e620, 0x19295: 0x6d238020, 0x19296: 0x6c366220, 0x19297: 0x6d353a20,
-	0x19298: 0x6cc57420, 0x19299: 0x6d070020, 0x1929a: 0x6c94b020, 0x1929b: 0x6c5be820,
-	0x1929c: 0x6d0a9620, 0x1929d: 0x6ca4b820, 0x1929e: 0x6c4eee20, 0x1929f: 0x6c63d620,
-	0x192a0: 0x6c312e20, 0x192a1: 0x6c57b420, 0x192a2: 0x6ce86c20, 0x192a3: 0x6cb26220,
-	0x192a4: 0x6c244c20, 0x192a5: 0x6cf68220, 0x192a6: 0x6cd99820, 0x192a7: 0x6c9c6c20,
-	0x192a8: 0x6d034420, 0x192a9: 0x6cf51a20, 0x192aa: 0x6cbf5420, 0x192ab: 0x6d2edc20,
-	0x192ac: 0x6ce23620, 0x192ad: 0x6d043620, 0x192ae: 0x6c701e20, 0x192af: 0x6c728220,
-	0x192b0: 0x6c5d4020, 0x192b1: 0x6ce36e20, 0x192b2: 0x6c977420, 0x192b3: 0x6d0ea420,
-	0x192b4: 0x6c5f2020, 0x192b5: 0x6cd47a20, 0x192b6: 0x6c82d620, 0x192b7: 0x6ced4420,
-	0x192b8: 0x6c183820, 0x192b9: 0x6c120a20, 0x192ba: 0x6c6c0620, 0x192bb: 0x6d205820,
-	0x192bc: 0x6c5b6620, 0x192bd: 0x6d2c9420, 0x192be: 0x6cdb4820, 0x192bf: 0x6c444220,
-	// Block 0x64b, offset 0x192c0
-	0x192c0: 0x6ca51a20, 0x192c1: 0x6cf8f820, 0x192c3: 0x6c331a20,
-	0x192c4: 0x6c1b6420, 0x192c5: 0x6cef5020, 0x192c6: 0x6d30ae20, 0x192c7: 0x6c4bf420,
-	0x192c8: 0x6c175620, 0x192c9: 0x6c1ae020, 0x192ca: 0x6d2a2820, 0x192cb: 0x6c5c8420,
-	0x192cc: 0x6c944820, 0x192cd: 0x6c8a4620, 0x192ce: 0x6c818a20, 0x192cf: 0x6cead820,
-	0x192d0: 0x6c5b0420, 0x192d1: 0x6cf54620, 0x192d2: 0x6c02fa20, 0x192d3: 0x6ccf8620,
-	0x192d4: 0x6cdc0220, 0x192d5: 0x6c974c20, 0x192d6: 0x6ce0b620, 0x192d7: 0x6d035a20,
-	0x192d8: 0x6c6e4020, 0x192d9: 0x6c017620, 0x192da: 0x6cdee220, 0x192db: 0x6c156420,
-	0x192dc: 0x6cf11a20, 0x192dd: 0x6ce98420, 0x192de: 0x6c62dc20, 0x192df: 0x6c18fa20,
-	0x192e0: 0x6c185820, 0x192e1: 0x6d247c20, 0x192e2: 0x6cfc6020, 0x192e3: 0x6d02d020,
-	0x192e7: 0x6ca51c20,
-	0x192e9: 0x6d0f1020, 0x192ea: 0x6cc01e20, 0x192eb: 0x6c675820,
-	0x192ec: 0x6cd95c20, 0x192ed: 0x6c75c420, 0x192ee: 0x6c89fc20, 0x192ef: 0x6c714e20,
-	0x192f1: 0x6c97d220, 0x192f2: 0x6c8b7220,
-	0x192f4: 0x6c1f3820, 0x192f5: 0x6c1bae20, 0x192f6: 0x6cfdcc20, 0x192f7: 0x6cbd3a20,
-	0x192f8: 0x6c9a6220, 0x192f9: 0x6cd5fa20, 0x192fa: 0x6c149020, 0x192fb: 0x6c1bc420,
-	0x192fc: 0x6c474620, 0x192fd: 0x6d21a820, 0x192fe: 0x6d1a0420,
-	// Block 0x64c, offset 0x19300
-	0x19300: 0x6c8eac20, 0x19301: 0x6c818020, 0x19302: 0x6cd61e20, 0x19303: 0x6d30be20,
-	0x19304: 0x6cd6c420, 0x19305: 0x6c5aac20,
-	0x19308: 0x6c364620, 0x1930a: 0x6ccc7020, 0x1930b: 0x6d402e20,
-	0x1930c: 0x6c74a620, 0x1930d: 0x6c75ec20, 0x1930e: 0x6ce93820, 0x1930f: 0x6c90ca20,
-	0x19310: 0x6cef5c20, 0x19311: 0x6c1cf420, 0x19312: 0x6d3b4820, 0x19313: 0x6c8b7420,
-	0x19315: 0x6d30cc20, 0x19316: 0x6d2f8c20,
-	0x19318: 0x6d178020, 0x19319: 0x6c1e5c20, 0x1931a: 0x6ca5ea20, 0x1931b: 0x6c0e7820,
-	0x1931c: 0x6cdb8620, 0x1931d: 0x6d160620, 0x1931e: 0x6c506020, 0x1931f: 0x6d0bc820,
-	0x19320: 0x6c58ac20, 0x19321: 0x6c980a20, 0x19322: 0x6c980c20, 0x19323: 0x6cc1f220,
-	0x19324: 0x6c81c420, 0x19325: 0x6c4ffe20, 0x19326: 0x6d37d620, 0x19327: 0x6c9f4e20,
-	0x19328: 0x6cfb5620, 0x19329: 0x6d324420, 0x1932a: 0x6cd55e20, 0x1932b: 0x6d423e20,
-	0x1932c: 0x6d3afc20, 0x1932d: 0x6c46aa20, 0x1932e: 0x6d089820, 0x1932f: 0x6d17c620,
-	0x19330: 0x6d366e20, 0x19331: 0x6d00c620, 0x19332: 0x6c6d1e20, 0x19333: 0x6c11a420,
-	0x19335: 0x6c10ae20, 0x19336: 0x6c896a20, 0x19337: 0x6d341020,
-	0x19338: 0x6c626c20, 0x19339: 0x6ced4620, 0x1933a: 0x6c49a420, 0x1933b: 0x6c70bc20,
-	0x1933c: 0x6c6ea220, 0x1933d: 0x6c00c420, 0x1933e: 0x6c404220, 0x1933f: 0x6c4b7220,
-	// Block 0x64d, offset 0x19340
-	0x19340: 0x6c548020, 0x19341: 0x6d0ec620, 0x19342: 0x6cc87e20, 0x19343: 0x6d36ee20,
-	0x19344: 0x6c0c9420, 0x19345: 0x6d157620, 0x19346: 0x6cdd9e20, 0x19347: 0x6c2efa20,
-	0x19348: 0x6c4b9620, 0x19349: 0x6cd18020, 0x1934a: 0x6d0ab820, 0x1934b: 0x6c194620,
-	0x1934c: 0x6ccf2020, 0x1934d: 0x6cbe8a20,
-	0x19350: 0x6c218a20, 0x19351: 0x6c533820, 0x19352: 0x6c308220, 0x19353: 0x6c198220,
-	0x19354: 0x6ceff820, 0x19355: 0x6cc7ea20, 0x19356: 0x6cd55420, 0x19357: 0x6c10f220,
-	0x19358: 0x6c600e20, 0x19359: 0x6d28b620, 0x1935a: 0x6cb5d420, 0x1935b: 0x6d0c0220,
-	0x1935c: 0x6c3fe820, 0x1935d: 0x6d235820, 0x1935e: 0x6c3e9020, 0x1935f: 0x6cb39220,
-	0x19360: 0x6d33e620, 0x19361: 0x6ce06220, 0x19362: 0x6d424020, 0x19363: 0x6c17ec20,
-	0x19364: 0x6cc19a20, 0x19365: 0x6d204e20, 0x19366: 0x6c514a20, 0x19367: 0x6c547420,
-	0x19368: 0x6c4b0e20, 0x19369: 0x6c366620, 0x1936a: 0x6c67ea20, 0x1936b: 0x6d27f620,
-	0x1936c: 0x6ce83020, 0x1936d: 0x6c259820, 0x1936e: 0x6ce87020, 0x1936f: 0x6c402a20,
-	0x19370: 0x6d424c20, 0x19371: 0x6c558820, 0x19373: 0x6c0f4a20,
-	0x19374: 0x6d2f6e20, 0x19375: 0x6c754a20, 0x19376: 0x6ce0d020, 0x19377: 0x6c74aa20,
-	0x19378: 0x6c404620, 0x19379: 0x6c5a0220, 0x1937a: 0x6c211820, 0x1937b: 0x6d1e5e20,
-	0x1937c: 0x6c20f020, 0x1937d: 0x6cdda020, 0x1937e: 0x6c1b5c20, 0x1937f: 0x6cb92a20,
-	// Block 0x64e, offset 0x19380
-	0x19380: 0x6c10fc20, 0x19381: 0x6cff9c20, 0x19382: 0x6c979220, 0x19383: 0x6c117c20,
-	0x19384: 0x6cb7f820, 0x19385: 0x6c66f620, 0x19386: 0x6c0a9a20, 0x19387: 0x6c5f8420,
-	0x19388: 0x6d34b820, 0x19389: 0x6d3a3620, 0x1938a: 0x6cc1f420, 0x1938b: 0x6d2e3420,
-	0x1938c: 0x6c60fa20, 0x1938d: 0x6c0b2420, 0x1938f: 0x6c878020,
-	0x19390: 0x6c879420, 0x19391: 0x6d272a20, 0x19392: 0x6cc34020, 0x19393: 0x6c195a20,
-	0x19394: 0x6c3fcc20, 0x19395: 0x6c144020, 0x19396: 0x6ce19c20, 0x19397: 0x6cd37420,
-	0x19398: 0x6c4f9620, 0x19399: 0x6cbcbe20, 0x1939a: 0x6cb5d620, 0x1939b: 0x6c0efc20,
-	0x1939c: 0x6ca33e20, 0x1939d: 0x6ce82a20, 0x1939e: 0x6c1e7a20, 0x1939f: 0x6c243c20,
-	0x193a0: 0x6d26c020, 0x193a1: 0x6d33e820, 0x193a2: 0x6c18cc20, 0x193a3: 0x6c1f4a20,
-	0x193a4: 0x6c09b420, 0x193a5: 0x6c9b1c20, 0x193a6: 0x6c038020, 0x193a7: 0x6ce4a220,
-	0x193a8: 0x6c9f5a20, 0x193a9: 0x6c8aba20, 0x193aa: 0x6c3ccc20, 0x193ab: 0x6c197420,
-	0x193ac: 0x6cc0b820, 0x193ad: 0x6ce58820, 0x193ae: 0x6c3eac20, 0x193af: 0x6c7e0820,
-	0x193b0: 0x6c65b820,
-	0x193b4: 0x6d325620, 0x193b5: 0x6cc08a20, 0x193b6: 0x6d42a820, 0x193b7: 0x6c1c4c20,
-	0x193b8: 0x6c7c9420, 0x193b9: 0x6c8b2420, 0x193ba: 0x6c074a20, 0x193bb: 0x6c326e20,
-	0x193bc: 0x6cf46c20, 0x193be: 0x6d3d9220, 0x193bf: 0x6c92ba20,
-	// Block 0x64f, offset 0x193c0
-	0x193c0: 0x6ce0d220, 0x193c2: 0x6c1eaa20, 0x193c3: 0x6c89a020,
-	0x193c4: 0x6ce51820, 0x193c5: 0x6c7dbe20, 0x193c6: 0x6c16c420, 0x193c7: 0x6c74ac20,
-	0x193c8: 0x6ce8ec20, 0x193c9: 0x6c594e20, 0x193ca: 0x6c3aca20, 0x193cb: 0x6c0a3c20,
-	0x193cd: 0x6cf97c20, 0x193ce: 0x6cf31820, 0x193cf: 0x6c628a20,
-	0x193d0: 0x6cc27a20, 0x193d1: 0x6c7cdc20, 0x193d2: 0x6c55c220, 0x193d3: 0x6cbfca20,
-	0x193d4: 0x6cdc7c20, 0x193d5: 0x6c10fa20, 0x193d7: 0x6cc0bc20,
-	0x193d8: 0x6cb0c820, 0x193d9: 0x6cad1020, 0x193da: 0x6cec4020, 0x193db: 0x6d115620,
-	0x193dc: 0x6cc6c220, 0x193dd: 0x6d09b620, 0x193de: 0x6c246c20, 0x193df: 0x6c2efc20,
-	0x193e0: 0x6c1c8a20, 0x193e1: 0x6c25f620, 0x193e2: 0x6c9c1220, 0x193e3: 0x6d086420,
-	0x193e4: 0x6c34be20, 0x193e5: 0x6c0d0420, 0x193e6: 0x6d310a20, 0x193e7: 0x6c1ec620,
-	0x193e8: 0x6c164220, 0x193e9: 0x6c4b9e20, 0x193ea: 0x6c32e620, 0x193eb: 0x6d409420,
-	0x193ec: 0x6c2afe20, 0x193ed: 0x6c7f3820, 0x193ee: 0x6ce2da20, 0x193ef: 0x6d272c20,
-	0x193f0: 0x6cc34220, 0x193f1: 0x6d3a5020, 0x193f2: 0x6c8d1020, 0x193f3: 0x6c186c20,
-	0x193f4: 0x6d31e020, 0x193f5: 0x6c400220, 0x193f6: 0x6ccf4e20, 0x193f7: 0x6ce5c620,
-	0x193f8: 0x6c7ac820, 0x193f9: 0x6c004420, 0x193fb: 0x6cbf5620,
-	0x193fc: 0x6cd61220, 0x193fd: 0x6c4d3420, 0x193fe: 0x6ccd5e20, 0x193ff: 0x6cec7620,
-	// Block 0x650, offset 0x19400
-	0x19400: 0x6d2e3620, 0x19401: 0x6c904a20, 0x19402: 0x6c6f6220, 0x19403: 0x6c85b820,
-	0x19405: 0x6c210220, 0x19406: 0x6cc66c20, 0x19407: 0x6d26ac20,
-	0x19408: 0x6c743a20, 0x19409: 0x6c776c20, 0x1940a: 0x6c390c20, 0x1940b: 0x6cb5da20,
-	0x1940c: 0x6c534220, 0x1940d: 0x6c3e7220, 0x1940e: 0x6c915220, 0x1940f: 0x6c535820,
-	0x19410: 0x6ceb2a20, 0x19411: 0x6c9f5c20, 0x19412: 0x6ce4a420, 0x19413: 0x6c737c20,
-	0x19414: 0x6cb70620, 0x19415: 0x6d332620, 0x19416: 0x6cbece20, 0x19417: 0x6c45f220,
-	0x19418: 0x6ce4b620, 0x19419: 0x6c80dc20, 0x1941a: 0x6c99a620, 0x1941b: 0x6d1b6a20,
-	0x1941c: 0x6c92c020, 0x1941d: 0x6d250e20, 0x1941e: 0x6c715420, 0x1941f: 0x6cb0b820,
-	0x19421: 0x6d00f420, 0x19422: 0x6c0bbe20, 0x19423: 0x6c5cd820,
-	0x19424: 0x6d39cc20, 0x19425: 0x6cc6c820, 0x19426: 0x6cca8e20, 0x19427: 0x6cf38420,
-	0x19428: 0x6c144e20, 0x19429: 0x6c795820, 0x1942a: 0x6ccdc420, 0x1942b: 0x6caede20,
-	0x1942c: 0x6c980e20, 0x1942d: 0x6d050620, 0x1942f: 0x6c237020,
-	0x19430: 0x6c796020, 0x19431: 0x6d3bb220, 0x19432: 0x6c154620, 0x19433: 0x6cd84220,
-	0x19434: 0x6c1cf620, 0x19435: 0x6cdcae20, 0x19436: 0x6c076e20, 0x19437: 0x6c769e20,
-	0x19439: 0x6d376020, 0x1943a: 0x6cf12620, 0x1943b: 0x6c9f8420,
-	0x1943c: 0x6c8db220, 0x1943d: 0x6d414220, 0x1943e: 0x6ca8d420, 0x1943f: 0x6c8dfc20,
-	// Block 0x651, offset 0x19440
-	0x19440: 0x6cb77420, 0x19441: 0x6d26b020, 0x19443: 0x6d186820,
-	0x19444: 0x6cf82220, 0x19445: 0x6c18d820, 0x19447: 0x6cc71e20,
-	0x19448: 0x6c18f820, 0x19449: 0x6ca9da20, 0x1944a: 0x6d1ef220, 0x1944b: 0x6c618c20,
-	0x1944c: 0x6c0ebe20, 0x1944d: 0x6c39ca20,
-	0x19450: 0x6c242220, 0x19451: 0x6c2be820, 0x19452: 0x6c684020, 0x19453: 0x6d20fc20,
-	0x19454: 0x6c50fe20, 0x19455: 0x6d06b220, 0x19456: 0x6d22f820, 0x19457: 0x6cc0f620,
-	0x19459: 0x6c044420, 0x1945a: 0x6c44cc20, 0x1945b: 0x6c6f0e20,
-	0x1945d: 0x6d0bb820, 0x1945e: 0x6cd5de20, 0x1945f: 0x6d1f3e20,
-	0x19460: 0x6cd98e20, 0x19461: 0x6d130820, 0x19462: 0x6c125820, 0x19463: 0x6d112a20,
-	0x19464: 0x6cd5fc20, 0x19465: 0x6d0cba20, 0x19466: 0x6cd67220, 0x19467: 0x6c8aa220,
-	0x19468: 0x6c235020, 0x19469: 0x6d23d420, 0x1946a: 0x6c0f6620, 0x1946b: 0x6cdbfe20,
-	0x1946d: 0x6d0eca20, 0x1946e: 0x6c834820, 0x1946f: 0x6c8bf420,
-	0x19470: 0x6ce30220, 0x19471: 0x6c31de20, 0x19472: 0x6d272e20, 0x19473: 0x6c611620,
-	0x19475: 0x6d278620,
-	0x19478: 0x6c706220, 0x19479: 0x6c71a820, 0x1947a: 0x6c1e5820, 0x1947b: 0x6c18ac20,
-	0x1947c: 0x6c457820, 0x1947d: 0x6cfe4220, 0x1947e: 0x6cfbee20, 0x1947f: 0x6c011c20,
-	// Block 0x652, offset 0x19480
-	0x19480: 0x6c4ae020, 0x19481: 0x6d223220, 0x19482: 0x6c82bc20,
-	0x19484: 0x6ce89c20, 0x19485: 0x6c18b820, 0x19486: 0x6d03e020, 0x19487: 0x6cc03e20,
-	0x19488: 0x6c4f9a20, 0x1948a: 0x6c292c20, 0x1948b: 0x6c112e20,
-	0x1948c: 0x6c2bf420, 0x1948d: 0x6d0d7020, 0x1948e: 0x6d3e3020,
-	0x19490: 0x6d1bc020, 0x19491: 0x6c14fa20, 0x19493: 0x6c840020,
-	0x19494: 0x6cdd7e20, 0x19495: 0x6c969c20, 0x19496: 0x6c96a620,
-	0x19498: 0x6ce11e20, 0x19499: 0x6cade620, 0x1949a: 0x6c90ae20, 0x1949b: 0x6cb51820,
-	0x1949c: 0x6c25ec20, 0x1949d: 0x6ce8ee20, 0x1949e: 0x6c369a20, 0x1949f: 0x6c11aa20,
-	0x194a0: 0x6c6b2c20, 0x194a1: 0x6d156420, 0x194a2: 0x6c60d020, 0x194a3: 0x6c294220,
-	0x194a4: 0x6c752220, 0x194a5: 0x6c08cc20, 0x194a6: 0x6c832620, 0x194a7: 0x6d174a20,
-	0x194a8: 0x6c214020, 0x194a9: 0x6c214620, 0x194aa: 0x6cb38820, 0x194ab: 0x6c83cc20,
-	0x194ac: 0x6d291420, 0x194ad: 0x6cdf7020, 0x194ae: 0x6cb39420, 0x194af: 0x6c242620,
-	0x194b0: 0x6c725020, 0x194b1: 0x6d070620, 0x194b2: 0x6c395820,
-	0x194b4: 0x6d070820, 0x194b5: 0x6c37d420, 0x194b6: 0x6c5d7e20, 0x194b7: 0x6d39b820,
-	0x194b8: 0x6cc4c820, 0x194b9: 0x6c381c20, 0x194ba: 0x6c72fc20, 0x194bb: 0x6c4db620,
-	0x194bc: 0x6c896e20, 0x194bd: 0x6d341220, 0x194be: 0x6c9d8220, 0x194bf: 0x6d209a20,
-	// Block 0x653, offset 0x194c0
-	0x194c1: 0x6c133a20, 0x194c2: 0x6c9a2c20, 0x194c3: 0x6d1a0620,
-	0x194c4: 0x6c9e4220, 0x194c5: 0x6ce8f620, 0x194c6: 0x6c7c9e20,
-	0x194c9: 0x6c9d9a20, 0x194ca: 0x6cc6ca20, 0x194cb: 0x6d241c20,
-	0x194cc: 0x6cbae620, 0x194cd: 0x6c9c8c20, 0x194ce: 0x6c718020, 0x194cf: 0x6cb07e20,
-	0x194d0: 0x6c6cc620, 0x194d1: 0x6cee5e20, 0x194d2: 0x6c62c020, 0x194d3: 0x6c9baa20,
-	0x194d4: 0x6c672020, 0x194d5: 0x6d098020, 0x194d6: 0x6c068220, 0x194d7: 0x6c420220,
-	0x194d8: 0x6c161e20, 0x194d9: 0x6c87cc20, 0x194da: 0x6c851620, 0x194db: 0x6cc04020,
-	0x194dc: 0x6c33ee20, 0x194dd: 0x6d1d3e20, 0x194de: 0x6d27ea20, 0x194df: 0x6c18ce20,
-	0x194e0: 0x6d353220, 0x194e1: 0x6cc4ca20, 0x194e3: 0x6c94b220,
-	0x194e4: 0x6c763a20, 0x194e5: 0x6c4b1420, 0x194e6: 0x6d26d620, 0x194e7: 0x6c5c0820,
-	0x194e8: 0x6cb0b220, 0x194e9: 0x6c13f820, 0x194ea: 0x6c34a820, 0x194eb: 0x6c152220,
-	0x194ec: 0x6ccc1020, 0x194ed: 0x6cd3c820, 0x194ee: 0x6ccf7620, 0x194ef: 0x6d03fa20,
-	0x194f0: 0x6d1c9420, 0x194f1: 0x6cd3ca20, 0x194f2: 0x6c1c6420, 0x194f3: 0x6d134820,
-	0x194f4: 0x6c4e3620, 0x194f5: 0x6c3ad420, 0x194f6: 0x6d134a20, 0x194f7: 0x6d0de220,
-	0x194f8: 0x6d416220, 0x194f9: 0x6cd9ee20, 0x194fa: 0x6c6c6620, 0x194fb: 0x6c351a20,
-	0x194fc: 0x6cfd2220, 0x194fd: 0x6c492e20, 0x194fe: 0x6ce1f820, 0x194ff: 0x6cbcfa20,
-	// Block 0x654, offset 0x19500
-	0x19500: 0x6c15f420, 0x19501: 0x6c4e4420, 0x19502: 0x6c9c1420, 0x19503: 0x6d26fc20,
-	0x19504: 0x6c247020, 0x19505: 0x6cba8420, 0x19506: 0x6c6cc420, 0x19507: 0x6ccdd020,
-	0x19508: 0x6ca25820, 0x19509: 0x6d251e20, 0x1950b: 0x6cae8a20,
-	0x1950c: 0x6d336e20, 0x1950d: 0x6d374a20, 0x1950e: 0x6c216c20, 0x1950f: 0x6d22aa20,
-	0x19510: 0x6ca1f820, 0x19511: 0x6cedae20, 0x19512: 0x6c681020, 0x19513: 0x6cb54c20,
-	0x19514: 0x6cdb5e20, 0x19515: 0x6cb1e220, 0x19516: 0x6ce4d020, 0x19517: 0x6c7b7820,
-	0x19518: 0x6c247a20, 0x19519: 0x6cdcb820, 0x1951b: 0x6c6a4220,
-	0x1951c: 0x6c671420, 0x1951d: 0x6c028820, 0x1951e: 0x6c696e20, 0x1951f: 0x6d138e20,
-	0x19521: 0x6d139020, 0x19522: 0x6c8ff020, 0x19523: 0x6d2a3620,
-	0x19524: 0x6c05de20, 0x19525: 0x6c889a20, 0x19527: 0x6c58c620,
-	0x19528: 0x6c942620, 0x19529: 0x6cef7820, 0x1952a: 0x6cfc5820, 0x1952b: 0x6ce60a20,
-	0x1952c: 0x6c0fc820, 0x1952d: 0x6d337620, 0x1952e: 0x6d3a3e20, 0x1952f: 0x6c06c420,
-	0x19530: 0x6c9bba20, 0x19531: 0x6d015220, 0x19532: 0x6cab6820, 0x19533: 0x6d1ed820,
-	0x19535: 0x6cffc820, 0x19536: 0x6c87aa20, 0x19537: 0x6d2c6e20,
-	0x19538: 0x6c9cd020, 0x1953a: 0x6d128420,
-	0x1953d: 0x6cb31620, 0x1953e: 0x6d014220,
-	// Block 0x655, offset 0x19540
-	0x19542: 0x6ccdd220, 0x19543: 0x6d3d1420,
-	0x19545: 0x6ccddc20, 0x19546: 0x6c754020, 0x19547: 0x6c61fc20,
-	0x19548: 0x6c6a2620, 0x1954a: 0x6ca7a420, 0x1954b: 0x6c028420,
-	0x1954c: 0x6c1f3a20, 0x1954d: 0x6cf4e420, 0x1954e: 0x6c495420, 0x1954f: 0x6d01b820,
-	0x19550: 0x6ce6d020, 0x19551: 0x6d096220, 0x19552: 0x6c297220, 0x19553: 0x6d2d8620,
-	0x19554: 0x6ce06620, 0x19555: 0x6cae7c20, 0x19556: 0x6d00d420, 0x19557: 0x6d072020,
-	0x19558: 0x6cfcf220, 0x19559: 0x6cd8d820, 0x1955a: 0x6c7aee20, 0x1955b: 0x6d335a20,
-	0x1955c: 0x6cf3e620, 0x1955d: 0x6c5d5c20, 0x1955e: 0x6cc90620, 0x1955f: 0x6cf1ee20,
-	0x19560: 0x6c317a20, 0x19561: 0x6c58a020, 0x19562: 0x6c7e1420, 0x19563: 0x6c405a20,
-	0x19564: 0x6c1fd020, 0x19565: 0x6cfba420, 0x19566: 0x6cbdae20, 0x19567: 0x6cbc8820,
-	0x19568: 0x6c7fba20, 0x1956a: 0x6d0bca20, 0x1956b: 0x6d1c0220,
-	0x1956c: 0x6cc40820, 0x1956d: 0x6c4f5620, 0x1956e: 0x6c218c20, 0x1956f: 0x6d371e20,
-	0x19571: 0x6cf05620, 0x19572: 0x6d0d0620, 0x19573: 0x6cfe6a20,
-	0x19574: 0x6d194c20, 0x19575: 0x6ca66a20, 0x19576: 0x6d335c20, 0x19577: 0x6c1fca20,
-	0x19579: 0x6cd23020, 0x1957a: 0x6c2f4a20, 0x1957b: 0x6d3ee020,
-	0x1957c: 0x6c73e820, 0x1957d: 0x6d067620, 0x1957e: 0x6d255a20,
-	// Block 0x656, offset 0x19580
-	0x19581: 0x6d063020, 0x19582: 0x6c2a0220, 0x19583: 0x6ce48620,
-	0x19584: 0x6c448020, 0x19585: 0x6d14b420, 0x19586: 0x6c532420, 0x19587: 0x6d13dc20,
-	0x19589: 0x6c851220, 0x1958a: 0x6c7a3820, 0x1958b: 0x6cfc0820,
-	0x1958c: 0x6cdbbe20, 0x1958d: 0x6cf87620, 0x1958e: 0x6d088620,
-	0x19591: 0x6c2b2a20, 0x19592: 0x6c7f0420, 0x19593: 0x6d387e20,
-	0x19594: 0x6ca76420, 0x19595: 0x6c19f820, 0x19596: 0x6c668620, 0x19597: 0x6c09ba20,
-	0x19598: 0x6d3bc820, 0x19599: 0x6c8d1620, 0x1959a: 0x6c504e20, 0x1959b: 0x6c058020,
-	0x1959c: 0x6ce10a20, 0x1959d: 0x6c1ac220, 0x1959e: 0x6c96c820, 0x1959f: 0x6cfce420,
-	0x195a0: 0x6cd69420, 0x195a1: 0x6d1da020, 0x195a2: 0x6cc12c20,
-	0x195a4: 0x6cb44c20, 0x195a5: 0x6c5c2020, 0x195a6: 0x6cef3620, 0x195a7: 0x6d161620,
-	0x195a8: 0x6d134c20, 0x195aa: 0x6c184820, 0x195ab: 0x6c4ff820,
-	0x195ac: 0x6c0d5a20, 0x195ae: 0x6cfd3620, 0x195af: 0x6c155e20,
-	0x195b0: 0x6c5d4e20, 0x195b2: 0x6c4ebc20, 0x195b3: 0x6c224220,
-	0x195b4: 0x6d33ec20, 0x195b5: 0x6cb5f220, 0x195b6: 0x6c7c7e20, 0x195b7: 0x6cc75620,
-	0x195b9: 0x6d1bca20, 0x195ba: 0x6d047e20,
-	0x195bc: 0x6c55a020, 0x195bd: 0x6c250620, 0x195bf: 0x6cc3fc20,
-	// Block 0x657, offset 0x195c0
-	0x195c0: 0x6c2b9220, 0x195c1: 0x6cf53020, 0x195c2: 0x6cbfd020,
-	0x195c4: 0x6d0eee20, 0x195c5: 0x6c8a5020, 0x195c6: 0x6c08a620,
-	0x195c8: 0x6c0d7220, 0x195ca: 0x6d252c20, 0x195cb: 0x6caaa620,
-	0x195cc: 0x6c05c620, 0x195cd: 0x6d1cf220, 0x195ce: 0x6c536c20, 0x195cf: 0x6c225820,
-	0x195d0: 0x6cb87220, 0x195d1: 0x6ce35a20, 0x195d2: 0x6d23b220, 0x195d3: 0x6c824c20,
-	0x195d4: 0x6c05d020, 0x195d6: 0x6c625620, 0x195d7: 0x6c3ee820,
-	0x195d8: 0x6cfd0420, 0x195d9: 0x6c133820, 0x195da: 0x6c550620, 0x195db: 0x6ccb6620,
-	0x195dc: 0x6c080a20, 0x195dd: 0x6cbe5620, 0x195de: 0x6d22a020, 0x195df: 0x6cebf620,
-	0x195e0: 0x6c007a20, 0x195e1: 0x6c4e3c20, 0x195e2: 0x6c28d020, 0x195e3: 0x6c444620,
-	0x195e4: 0x6c2b9c20, 0x195e5: 0x6c5e2020, 0x195e6: 0x6cace420,
-	0x195e8: 0x6d3c6a20, 0x195e9: 0x6c8d7c20, 0x195ea: 0x6c970820, 0x195eb: 0x6c974820,
-	0x195ec: 0x6c888c20, 0x195ed: 0x6cff4220, 0x195ee: 0x6d093220, 0x195ef: 0x6d327820,
-	0x195f0: 0x6cb3b820, 0x195f1: 0x6c408e20, 0x195f2: 0x6caa0e20, 0x195f3: 0x6cf93220,
-	0x195f4: 0x6c338e20, 0x195f5: 0x6c28f020, 0x195f6: 0x6d280c20, 0x195f7: 0x6cfd5220,
-	0x195f8: 0x6d1b3020, 0x195f9: 0x6cd52220, 0x195fa: 0x6c339420, 0x195fb: 0x6c086820,
-	0x195fc: 0x6c56e620, 0x195fd: 0x6c3a5420, 0x195fe: 0x6c3aa820, 0x195ff: 0x6d28be20,
-	// Block 0x658, offset 0x19600
-	0x19600: 0x6c075620, 0x19601: 0x6c3a2820, 0x19602: 0x6cfab820, 0x19603: 0x6cd3ae20,
-	0x19604: 0x6c9e3020, 0x19605: 0x6d2e0820, 0x19606: 0x6d2e0a20, 0x19607: 0x6d2d8c20,
-	0x19608: 0x6c5c4820, 0x19609: 0x6c3f8820, 0x1960a: 0x6ced5a20, 0x1960b: 0x6ca0b420,
-	0x1960c: 0x6cbc1020, 0x1960d: 0x6c8a8a20, 0x1960f: 0x6c9f1e20,
-	0x19610: 0x6c54d820, 0x19611: 0x6c535e20, 0x19612: 0x6d213c20, 0x19613: 0x6cb60820,
-	0x19614: 0x6c350420, 0x19615: 0x6c020020, 0x19617: 0x6c03ba20,
-	0x19618: 0x6c2c7820, 0x19619: 0x6d08aa20, 0x1961a: 0x6c2c8a20, 0x1961b: 0x6c0a0e20,
-	0x1961c: 0x6d393e20, 0x1961d: 0x6cad6020, 0x1961e: 0x6ce5f620, 0x1961f: 0x6d155020,
-	0x19621: 0x6c63ea20, 0x19622: 0x6d36f220, 0x19623: 0x6ce8f820,
-	0x19624: 0x6d00f820, 0x19625: 0x6c28ba20, 0x19626: 0x6ce5a620, 0x19627: 0x6d022620,
-	0x19628: 0x6c172620, 0x19629: 0x6d25f220, 0x1962a: 0x6c496a20, 0x1962b: 0x6c89a420,
-	0x1962c: 0x6c083220, 0x1962e: 0x6c930020, 0x1962f: 0x6c60e420,
-	0x19630: 0x6d08c220, 0x19631: 0x6cd62420, 0x19632: 0x6c318220, 0x19633: 0x6cd9f420,
-	0x19634: 0x6c55e220, 0x19635: 0x6d286420, 0x19636: 0x6c160820, 0x19637: 0x6c054620,
-	0x19638: 0x6cc6da20, 0x19639: 0x6c359c20, 0x1963a: 0x6cf24020, 0x1963b: 0x6c03ca20,
-	0x1963c: 0x6c3cc220, 0x1963d: 0x6d209e20, 0x1963e: 0x6d310c20, 0x1963f: 0x6c3bae20,
-	// Block 0x659, offset 0x19640
-	0x19640: 0x6c496c20, 0x19641: 0x6c104c20, 0x19642: 0x6c446220, 0x19643: 0x6c33c420,
-	0x19644: 0x6c5a3420, 0x19645: 0x6c31f820, 0x19646: 0x6ce3ce20, 0x19647: 0x6c0fcc20,
-	0x19648: 0x6cba8a20, 0x19649: 0x6c8b8220, 0x1964a: 0x6c901620, 0x1964b: 0x6cf13420,
-	0x1964c: 0x6d2eac20, 0x1964d: 0x6c801820, 0x1964e: 0x6cdbea20, 0x1964f: 0x6ca36020,
-	0x19650: 0x6c0a1020, 0x19651: 0x6ceb3e20, 0x19652: 0x6d3b1a20, 0x19653: 0x6c2e5c20,
-	0x19654: 0x6c104620, 0x19655: 0x6c716820, 0x19656: 0x6cb3b020, 0x19657: 0x6cfa0c20,
-	0x19658: 0x6cf04420, 0x19659: 0x6cb3b420, 0x1965a: 0x6c267420, 0x1965b: 0x6c387220,
-	0x1965c: 0x6c14e420, 0x1965d: 0x6c56f020, 0x1965e: 0x6d28c020,
-	0x19664: 0x6c38f020, 0x19665: 0x6d028a20, 0x19666: 0x6c536020, 0x19667: 0x6c1b2e20,
-	0x19668: 0x6c05c820, 0x19669: 0x6d1a7a20, 0x1966b: 0x6c6dd220,
-	0x1966c: 0x6c0f6820, 0x1966d: 0x6cc88820, 0x1966e: 0x6c1e3a20, 0x1966f: 0x6d1c1220,
-	0x19670: 0x6d143a20, 0x19671: 0x6c411820, 0x19672: 0x6c7d6c20, 0x19673: 0x6d27f020,
-	0x19674: 0x6d31ec20, 0x19675: 0x6d0b5a20, 0x19676: 0x6c70b820, 0x19677: 0x6c547a20,
-	0x19678: 0x6c9f7620, 0x19679: 0x6c040220, 0x1967a: 0x6c441c20, 0x1967b: 0x6c0bb220,
-	0x1967c: 0x6d3d0820, 0x1967d: 0x6c505420, 0x1967e: 0x6d31ee20, 0x1967f: 0x6cd14a20,
-	// Block 0x65a, offset 0x19680
-	0x19680: 0x6c44a020, 0x19681: 0x6c0a3e20, 0x19682: 0x6c34b220, 0x19683: 0x6c216820,
-	0x19684: 0x6c1fb220, 0x19685: 0x6cca5a20, 0x19686: 0x6c1a4620, 0x19687: 0x6cc48a20,
-	0x19688: 0x6c191220, 0x19689: 0x6c99b820, 0x1968a: 0x6cadf220, 0x1968b: 0x6ceec220,
-	0x1968c: 0x6cb07420, 0x1968d: 0x6c3f8c20, 0x1968e: 0x6d3d0e20, 0x1968f: 0x6cb53c20,
-	0x19690: 0x6c8bec20, 0x19691: 0x6d142020, 0x19692: 0x6c9adc20, 0x19693: 0x6cf3f820,
-	0x19694: 0x6cb7fa20, 0x19695: 0x6c2f0020, 0x19696: 0x6c191a20, 0x19697: 0x6cfa0e20,
-	0x19698: 0x6c518e20, 0x19699: 0x6cca9220, 0x1969a: 0x6c487e20, 0x1969b: 0x6c543e20,
-	0x1969c: 0x6c023420, 0x1969d: 0x6c3f9420, 0x1969e: 0x6cbbc620, 0x1969f: 0x6c5d4c20,
-	0x196a0: 0x6cafa220, 0x196a1: 0x6d0cf820, 0x196a2: 0x6cd84420, 0x196a3: 0x6cf7b420,
-	0x196a4: 0x6ca02420, 0x196a5: 0x6c7ce420, 0x196a6: 0x6c445620,
-	0x196a8: 0x6c02fc20, 0x196a9: 0x6cca4220, 0x196aa: 0x6cd6ee20, 0x196ab: 0x6c90d820,
-	0x196ac: 0x6d320620, 0x196ad: 0x6c5c9a20, 0x196ae: 0x6c156620,
-	0x196b0: 0x6c8c8420, 0x196b1: 0x6ca2ee20, 0x196b2: 0x6c4f3c20, 0x196b3: 0x6c31fc20,
-	0x196b4: 0x6c6d7820, 0x196b5: 0x6c9df420, 0x196b6: 0x6c38fa20, 0x196b7: 0x6c370020,
-	0x196b8: 0x6c174220, 0x196b9: 0x6c536220, 0x196ba: 0x6c536e20, 0x196bb: 0x6d238820,
-	0x196bc: 0x6d096a20, 0x196bd: 0x6cad3a20, 0x196be: 0x6c088220, 0x196bf: 0x6c175220,
-	// Block 0x65b, offset 0x196c0
-	0x196c0: 0x6d1fe220, 0x196c1: 0x6d153a20, 0x196c2: 0x6d096e20, 0x196c3: 0x6cc97e20,
-	0x196c4: 0x6d073420, 0x196c5: 0x6c866820, 0x196c6: 0x6c868a20, 0x196c7: 0x6d263220,
-	0x196c8: 0x6c336220, 0x196c9: 0x6c5e0420, 0x196ca: 0x6ccc7e20, 0x196cb: 0x6c838c20,
-	0x196cc: 0x6cb3ce20, 0x196cd: 0x6c550e20, 0x196ce: 0x6c4c8e20, 0x196cf: 0x6c10c420,
-	0x196d0: 0x6cc8a620, 0x196d1: 0x6cf0fa20, 0x196d2: 0x6cd9f620, 0x196d3: 0x6c01dc20,
-	0x196d4: 0x6d21cc20, 0x196d5: 0x6cfd8e20, 0x196d6: 0x6c527c20, 0x196d7: 0x6d0fea20,
-	0x196d8: 0x6cff4420, 0x196d9: 0x6d116820, 0x196db: 0x6c0ac020,
-	0x196dd: 0x6c528420, 0x196de: 0x6ce25620, 0x196df: 0x6c8eee20,
-	0x196e1: 0x6d3b3420, 0x196e3: 0x6cf89a20,
-	0x196e4: 0x6d298e20, 0x196e5: 0x6d17d420, 0x196e6: 0x6c312a20, 0x196e7: 0x6d259020,
-	0x196e8: 0x6c700820, 0x196ea: 0x6c0f2020, 0x196eb: 0x6ce35c20,
-	0x196ec: 0x6d1d0220, 0x196ee: 0x6d154020, 0x196ef: 0x6ca70420,
-	0x196f0: 0x6ccee220, 0x196f1: 0x6c07c020, 0x196f2: 0x6c465620, 0x196f3: 0x6c04d420,
-	0x196f4: 0x6ca14820, 0x196f5: 0x6c410420, 0x196f6: 0x6c372620, 0x196f7: 0x6ccf2e20,
-	0x196f9: 0x6d36d620, 0x196fa: 0x6d106c20, 0x196fb: 0x6c66ca20,
-	0x196fc: 0x6d263420, 0x196fd: 0x6cd73020, 0x196fe: 0x6ce38420, 0x196ff: 0x6cf02020,
-	// Block 0x65c, offset 0x19700
-	0x19700: 0x6d0aaa20, 0x19701: 0x6d36f620, 0x19702: 0x6d18bc20, 0x19703: 0x6cc59c20,
-	0x19704: 0x6cd3ee20, 0x19705: 0x6c55d420, 0x19706: 0x6ca55620, 0x19707: 0x6d126a20,
-	0x19708: 0x6c66f820, 0x19709: 0x6cdc1220, 0x1970a: 0x6d1d1e20, 0x1970b: 0x6c061a20,
-	0x1970c: 0x6c55e420, 0x1970d: 0x6c55e620, 0x1970e: 0x6d137a20,
-	0x19710: 0x6d107420, 0x19711: 0x6c888e20, 0x19712: 0x6cf72620, 0x19713: 0x6c372820,
-	0x19714: 0x6c331c20, 0x19715: 0x6d297e20, 0x19716: 0x6d3b4420, 0x19717: 0x6d1d2820,
-	0x19718: 0x6d1d2c20, 0x19719: 0x6c6cca20, 0x1971a: 0x6c208820, 0x1971b: 0x6c28ec20,
-	0x1971d: 0x6c7b4a20, 0x1971e: 0x6d196020, 0x1971f: 0x6d139a20,
-	0x19720: 0x6c662e20, 0x19721: 0x6c372a20, 0x19722: 0x6ca93e20, 0x19723: 0x6c228820,
-	0x19724: 0x6cba3420, 0x19725: 0x6d098220, 0x19726: 0x6c0ea420, 0x19727: 0x6c9d1420,
-	0x19728: 0x6cd73a20, 0x19729: 0x6ca0a620, 0x1972a: 0x6c897c20, 0x1972b: 0x6cb71820,
-	0x1972c: 0x6cb71a20, 0x1972d: 0x6cd44c20, 0x1972e: 0x6c3f2020, 0x1972f: 0x6c0f3a20,
-	0x19730: 0x6c085820, 0x19731: 0x6c0d0020, 0x19732: 0x6d161c20, 0x19733: 0x6cf13a20,
-	0x19734: 0x6c587e20, 0x19735: 0x6c38ac20, 0x19736: 0x6cb60e20, 0x19737: 0x6c98f620,
-	0x19738: 0x6c060820, 0x19739: 0x6c020420, 0x1973a: 0x6c020a20, 0x1973b: 0x6c403020,
-	0x1973c: 0x6cb63020, 0x1973d: 0x6cc45020, 0x1973e: 0x6ceb4020, 0x1973f: 0x6d187420,
-	// Block 0x65d, offset 0x19740
-	0x19740: 0x6c0f5420, 0x19741: 0x6cb12820, 0x19742: 0x6c039220,
-	0x19744: 0x6d082220, 0x19747: 0x6d23fe20,
-	0x19748: 0x6c1b5620, 0x19749: 0x6c915e20, 0x1974a: 0x6d156820, 0x1974b: 0x6c868c20,
-	0x1974d: 0x6ca7b020, 0x1974e: 0x6cf90220, 0x1974f: 0x6cf3fa20,
-	0x19751: 0x6c834a20, 0x19752: 0x6cb41a20, 0x19753: 0x6d3d1220,
-	0x19754: 0x6d417e20, 0x19755: 0x6d3dc620, 0x19756: 0x6c168220, 0x19757: 0x6c01de20,
-	0x19758: 0x6c377220, 0x19759: 0x6d244620, 0x1975a: 0x6c839c20, 0x1975b: 0x6c408220,
-	0x1975c: 0x6d2c6420, 0x1975d: 0x6c5d0a20, 0x1975e: 0x6c218e20, 0x1975f: 0x6cd9fe20,
-	0x19760: 0x6c089a20, 0x19761: 0x6c0ab420, 0x19762: 0x6d2c6620,
-	0x19764: 0x6c519e20, 0x19765: 0x6c873a20, 0x19767: 0x6c4f3220,
-	0x19768: 0x6d292220, 0x19769: 0x6c474a20, 0x1976a: 0x6c1a5e20, 0x1976b: 0x6c90dc20,
-	0x1976c: 0x6ca19e20, 0x1976d: 0x6c9daa20, 0x1976e: 0x6c975020, 0x1976f: 0x6c030420,
-	0x19770: 0x6d30c020, 0x19771: 0x6d3a3a20, 0x19772: 0x6c5a3820, 0x19773: 0x6c38f620,
-	0x19774: 0x6c2b0220, 0x19775: 0x6ce7a420, 0x19777: 0x6c320220,
-	0x19778: 0x6cf33620, 0x19779: 0x6cf13020, 0x1977a: 0x6c62f620, 0x1977b: 0x6c1ca020,
-	0x1977c: 0x6c8c1220, 0x1977d: 0x6c0c6420, 0x1977e: 0x6c901e20, 0x1977f: 0x6c664a20,
-	// Block 0x65e, offset 0x19780
-	0x19780: 0x6ca8da20, 0x19781: 0x6c959e20, 0x19782: 0x6cd03420,
-	0x19784: 0x6c487a20, 0x19785: 0x6ca8a820, 0x19786: 0x6d178a20, 0x19787: 0x6c7a4820,
-	0x19788: 0x6cece220, 0x19789: 0x6cebee20, 0x1978a: 0x6cb87620, 0x1978b: 0x6c0f5620,
-	0x1978c: 0x6c779220, 0x1978d: 0x6c8d5020, 0x1978e: 0x6c423020, 0x1978f: 0x6c487820,
-	0x19790: 0x6c4d2c20, 0x19791: 0x6c7bb020, 0x19792: 0x6c527420, 0x19793: 0x6c7c4620,
-	0x19794: 0x6d2b0a20, 0x19795: 0x6ce64e20, 0x19796: 0x6c80ee20, 0x19797: 0x6c0a8020,
-	0x19798: 0x6c595a20, 0x19799: 0x6cb3aa20, 0x1979a: 0x6d11de20, 0x1979b: 0x6cedaa20,
-	0x1979c: 0x6ce43c20, 0x1979d: 0x6cdc1620, 0x1979e: 0x6c7ad020, 0x1979f: 0x6c337e20,
-	0x197a0: 0x6c02b620, 0x197a1: 0x6c671620, 0x197a2: 0x6ca09c20, 0x197a3: 0x6c7d4220,
-	0x197a4: 0x6c7b4c20, 0x197a5: 0x6c01e620, 0x197a6: 0x6c96ea20, 0x197a7: 0x6cbeaa20,
-	0x197a8: 0x6cbb8820, 0x197aa: 0x6c77b820, 0x197ab: 0x6c508220,
-	0x197ac: 0x6c34c820, 0x197ad: 0x6cfaa820, 0x197ae: 0x6ca37c20, 0x197af: 0x6cdd3420,
-	0x197b0: 0x6c6bf820, 0x197b1: 0x6caf8220, 0x197b2: 0x6cabcc20, 0x197b3: 0x6cd93020,
-	0x197b4: 0x6c16bc20, 0x197b5: 0x6ca86c20, 0x197b6: 0x6c977620, 0x197b7: 0x6cd93e20,
-	0x197b8: 0x6c22e420, 0x197b9: 0x6cfae420, 0x197ba: 0x6c7e2420,
-	0x197bc: 0x6c2b9e20, 0x197bd: 0x6cb3e420, 0x197be: 0x6ce5ac20, 0x197bf: 0x6d40f420,
-	// Block 0x65f, offset 0x197c0
-	0x197c0: 0x6cf2c820, 0x197c1: 0x6c3ae420, 0x197c2: 0x6c115020, 0x197c3: 0x6caee220,
-	0x197c4: 0x6cc9d620, 0x197c6: 0x6cc76e20, 0x197c7: 0x6cb68620,
-	0x197c8: 0x6c25fc20, 0x197c9: 0x6cac8e20, 0x197ca: 0x6c0fc020, 0x197cb: 0x6c979c20,
-	0x197cc: 0x6d401420, 0x197cd: 0x6c22f220, 0x197ce: 0x6c7d4420, 0x197cf: 0x6c62f820,
-	0x197d0: 0x6c801420, 0x197d2: 0x6c9bc220, 0x197d3: 0x6c9df820,
-	0x197d4: 0x6cac9620, 0x197d5: 0x6c91aa20, 0x197d6: 0x6d416020,
-	0x197d8: 0x6c8ee220, 0x197d9: 0x6d160020, 0x197da: 0x6cf1a820, 0x197db: 0x6c866c20,
-	0x197dc: 0x6c868e20, 0x197dd: 0x6d2bb820, 0x197de: 0x6d3a9220, 0x197df: 0x6c5cfc20,
-	0x197e0: 0x6cd03c20, 0x197e1: 0x6c1c6620, 0x197e2: 0x6d043c20, 0x197e3: 0x6cee3a20,
-	0x197e4: 0x6c302020, 0x197e5: 0x6c5e2220, 0x197e6: 0x6cb07a20, 0x197e7: 0x6c551420,
-	0x197e8: 0x6c9ab420, 0x197e9: 0x6c17f420, 0x197ea: 0x6c9ab820, 0x197eb: 0x6c175820,
-	0x197ec: 0x6c719620, 0x197ed: 0x6caa3420, 0x197ef: 0x6d197620,
-	0x197f0: 0x6cc7f020, 0x197f1: 0x6c8e0420, 0x197f2: 0x6d0bba20,
-	0x197f4: 0x6cb7bc20, 0x197f5: 0x6d3e7620, 0x197f7: 0x6c058c20,
-	0x197f8: 0x6c45aa20, 0x197f9: 0x6d2af620, 0x197fa: 0x6c6bfe20, 0x197fb: 0x6d219a20,
-	0x197fc: 0x6cbd9820, 0x197fd: 0x6c075820, 0x197fe: 0x6c035820, 0x197ff: 0x6ceb5020,
-	// Block 0x660, offset 0x19800
-	0x19800: 0x6d0f6c20, 0x19801: 0x6cbbfc20, 0x19802: 0x6d1ff220, 0x19803: 0x6d36fa20,
-	0x19804: 0x6c6c0a20, 0x19805: 0x6ca16a20, 0x19806: 0x6cd12420, 0x19807: 0x6ccdb820,
-	0x19808: 0x6cb65620, 0x19809: 0x6ccdba20, 0x1980a: 0x6c9d0420, 0x1980b: 0x6c460220,
-	0x1980c: 0x6d157c20, 0x1980d: 0x6c453e20, 0x1980e: 0x6c454020, 0x1980f: 0x6ce82020,
-	0x19810: 0x6c3dac20, 0x19811: 0x6d092220, 0x19812: 0x6d137e20, 0x19813: 0x6ce69a20,
-	0x19814: 0x6ce5ae20, 0x19815: 0x6ca1f620, 0x19816: 0x6c8ec620, 0x19817: 0x6c117e20,
-	0x19818: 0x6c848020, 0x19819: 0x6cd51820, 0x1981a: 0x6c932420, 0x1981b: 0x6c5e3a20,
-	0x1981c: 0x6c263c20, 0x1981d: 0x6cac1220, 0x1981e: 0x6c8ed420, 0x1981f: 0x6c72b820,
-	0x19820: 0x6d2e9220, 0x19821: 0x6c718220, 0x19822: 0x6d330a20, 0x19823: 0x6d40f820,
-	0x19824: 0x6cfd3820, 0x19825: 0x6d375020,
-	0x19828: 0x6c7eb020, 0x1982b: 0x6c7ebe20,
-	0x1982c: 0x6d060a20, 0x1982d: 0x6c454220, 0x1982e: 0x6c35a220, 0x1982f: 0x6ca21e20,
-	0x19830: 0x6d384a20, 0x19831: 0x6ce3aa20, 0x19832: 0x6d25ce20, 0x19833: 0x6d2dc020,
-	0x19834: 0x6c454420, 0x19835: 0x6cf24420, 0x19836: 0x6c80f420, 0x19837: 0x6d21f620,
-	0x19838: 0x6cda0820, 0x19839: 0x6d2ca020, 0x1983a: 0x6c4d3620, 0x1983b: 0x6c576e20,
-	0x1983c: 0x6d2e3e20, 0x1983e: 0x6c90de20, 0x1983f: 0x6c165020,
-	// Block 0x661, offset 0x19840
-	0x19840: 0x6d376c20, 0x19841: 0x6cf12820, 0x19842: 0x6d083c20, 0x19843: 0x6d2a6420,
-	0x19844: 0x6c9f8620, 0x19845: 0x6c4aac20, 0x19846: 0x6cda7020,
-	0x19849: 0x6cd85420, 0x1984a: 0x6c352820, 0x1984b: 0x6c134220,
-	0x1984c: 0x6c7b7a20, 0x1984d: 0x6ce2dc20, 0x1984e: 0x6ca57c20, 0x1984f: 0x6c819620,
-	0x19850: 0x6c920820, 0x19851: 0x6d159e20, 0x19852: 0x6d029220, 0x19853: 0x6d0e2a20,
-	0x19854: 0x6cbe9820, 0x19855: 0x6cb42420, 0x19856: 0x6c1e1220, 0x19857: 0x6cfbe020,
-	0x19858: 0x6c497020, 0x19859: 0x6c6b8a20, 0x1985a: 0x6c7f8220, 0x1985b: 0x6c9bca20,
-	0x1985c: 0x6d13ac20, 0x1985e: 0x6c869420, 0x1985f: 0x6d1b8420,
-	0x19860: 0x6c212620, 0x19861: 0x6cbfde20, 0x19862: 0x6ce2d220, 0x19863: 0x6d21f820,
-	0x19866: 0x6c278420, 0x19867: 0x6c327420,
-	0x19868: 0x6c537e20, 0x1986a: 0x6cf8c220,
-	0x1986c: 0x6cb64820, 0x1986e: 0x6d25a620, 0x1986f: 0x6c609e20,
-	0x19870: 0x6d285020, 0x19871: 0x6c39dc20, 0x19872: 0x6c45ac20, 0x19873: 0x6c4f8820,
-	0x19874: 0x6d326620, 0x19875: 0x6cc3f620,
-	0x19878: 0x6c6c0220, 0x19879: 0x6cb02020, 0x1987a: 0x6c423220, 0x1987b: 0x6d082820,
-	0x1987c: 0x6cd11420, 0x1987d: 0x6cd28c20, 0x1987e: 0x6cbc2a20, 0x1987f: 0x6c227020,
-	// Block 0x662, offset 0x19880
-	0x19880: 0x6c2eee20, 0x19881: 0x6c0f7220, 0x19882: 0x6c2de620, 0x19883: 0x6ced5020,
-	0x19884: 0x6c227220, 0x19885: 0x6d355420, 0x19886: 0x6c041220, 0x19887: 0x6cf47e20,
-	0x19888: 0x6c061820, 0x19889: 0x6c28be20, 0x1988a: 0x6c039420, 0x1988b: 0x6ce79620,
-	0x1988d: 0x6c45bc20, 0x1988e: 0x6c702e20, 0x1988f: 0x6c4b8620,
-	0x19890: 0x6c22e820, 0x19891: 0x6d1ff420, 0x19892: 0x6d25ba20, 0x19893: 0x6c81be20,
-	0x19894: 0x6c716e20, 0x19895: 0x6c3f1820, 0x19896: 0x6ca88e20, 0x19897: 0x6c358c20,
-	0x19898: 0x6c358e20, 0x19899: 0x6d040e20, 0x1989a: 0x6c771620, 0x1989b: 0x6d0ee220,
-	0x1989c: 0x6ce90220, 0x1989d: 0x6cb3f820, 0x1989e: 0x6c083820, 0x1989f: 0x6ca02620,
-	0x198a0: 0x6cd73620, 0x198a1: 0x6d0ef220, 0x198a2: 0x6cb68c20, 0x198a3: 0x6d25ca20,
-	0x198a4: 0x6c0cca20, 0x198a6: 0x6d07f220, 0x198a7: 0x6c544220,
-	0x198a8: 0x6c5a3020, 0x198a9: 0x6d10c220, 0x198aa: 0x6c73a220, 0x198ab: 0x6c7cb220,
-	0x198ac: 0x6c36de20, 0x198ad: 0x6c60f620, 0x198ae: 0x6ca19220, 0x198af: 0x6c1d2e20,
-	0x198b0: 0x6c062220, 0x198b1: 0x6cf54e20, 0x198b2: 0x6d327a20, 0x198b3: 0x6d076620,
-	0x198b4: 0x6cdee820, 0x198b5: 0x6c1c9620, 0x198b6: 0x6cf74a20, 0x198b7: 0x6c23d220,
-	0x198b8: 0x6c968620, 0x198b9: 0x6c7a1020, 0x198ba: 0x6d0f0820, 0x198bb: 0x6c11c420,
-	0x198bd: 0x6c520e20, 0x198be: 0x6c2ac620, 0x198bf: 0x6cc49e20,
-	// Block 0x663, offset 0x198c0
-	0x198c0: 0x6ce7a820, 0x198c1: 0x6d248c20, 0x198c2: 0x6cfe7020, 0x198c3: 0x6ca4d820,
-	0x198c4: 0x6cd76420, 0x198c5: 0x6c3bb220, 0x198c6: 0x6cb47820, 0x198c7: 0x6c8dba20,
-	0x198c8: 0x6c02ba20, 0x198c9: 0x6c58d020, 0x198ca: 0x6d15a020, 0x198cb: 0x6c58d220,
-	0x198cc: 0x6c9bc620, 0x198cd: 0x6d1c4e20, 0x198ce: 0x6c831820, 0x198cf: 0x6d0f2e20,
-	0x198d0: 0x6c062820, 0x198d1: 0x6c2f2c20, 0x198d2: 0x6c8e0620, 0x198d3: 0x6cd1f820,
-	0x198d4: 0x6c689020, 0x198d5: 0x6c8b4420, 0x198d6: 0x6c6dee20, 0x198d7: 0x6c718c20,
-	0x198d8: 0x6ce30a20, 0x198d9: 0x6cb0e620, 0x198da: 0x6c42a620, 0x198db: 0x6cff3420,
-	0x198dc: 0x6cec5e20, 0x198dd: 0x6c1fd420, 0x198de: 0x6c2bc420, 0x198df: 0x6c588e20,
-	0x198e0: 0x6d11d220, 0x198e1: 0x6c866e20, 0x198e2: 0x6c9c7020, 0x198e3: 0x6c550a20,
-	0x198e4: 0x6cd11620, 0x198e5: 0x6c638a20, 0x198e6: 0x6d1aa620, 0x198e7: 0x6ceec620,
-	0x198e9: 0x6cb18e20, 0x198ea: 0x6c934420, 0x198eb: 0x6c8dbc20,
-	0x198ec: 0x6d184420, 0x198ed: 0x6c111620, 0x198ee: 0x6ccd9820, 0x198ef: 0x6c54fe20,
-	0x198f0: 0x6cd53620, 0x198f1: 0x6cead420, 0x198f2: 0x6ca16e20, 0x198f3: 0x6c575820,
-	0x198f4: 0x6ce61a20, 0x198f5: 0x6c0dfe20, 0x198f6: 0x6caee620, 0x198f7: 0x6c5d0820,
-	0x198f8: 0x6c3dae20, 0x198f9: 0x6c4cdc20, 0x198fa: 0x6c10d020, 0x198fb: 0x6c849820,
-	0x198fc: 0x6c163e20, 0x198fd: 0x6cb03420, 0x198fe: 0x6c260020, 0x198ff: 0x6c9bb220,
-	// Block 0x664, offset 0x19900
-	0x19900: 0x6cddc020, 0x19901: 0x6cbb6020, 0x19902: 0x6d34c420, 0x19903: 0x6c7c2420,
-	0x19904: 0x6c08a820, 0x19905: 0x6c029220, 0x19906: 0x6c9bc820, 0x19907: 0x6cfd0620,
-	0x19908: 0x6c7ab420, 0x19909: 0x6ce7fc20, 0x1990a: 0x6ce93c20, 0x1990b: 0x6cf04a20,
-	0x1990c: 0x6cfaf820, 0x1990e: 0x6ce94220, 0x1990f: 0x6c81cc20,
-	0x19910: 0x6c162220, 0x19911: 0x6ca6c420, 0x19912: 0x6ca6d020, 0x19913: 0x6c845220,
-	0x19914: 0x6c304620, 0x19915: 0x6c72c620, 0x19916: 0x6cba8620, 0x19917: 0x6c0fc620,
-	0x19918: 0x6cccac20, 0x19919: 0x6d2c0e20, 0x1991a: 0x6ce25e20, 0x1991b: 0x6cba8c20,
-	0x1991c: 0x6ca9ee20, 0x1991d: 0x6d181620, 0x1991e: 0x6c6e9e20, 0x1991f: 0x6c41e820,
-	0x19920: 0x6c2ba020, 0x19921: 0x6c65de20, 0x19922: 0x6c9ab020, 0x19923: 0x6c26c420,
-	0x19924: 0x6c660620, 0x19925: 0x6d244a20, 0x19926: 0x6d024c20, 0x19927: 0x6d294820,
-	0x19928: 0x6c988020, 0x19929: 0x6c849a20, 0x1992a: 0x6c4c0a20, 0x1992b: 0x6d09ca20,
-	0x1992c: 0x6cdedc20, 0x1992d: 0x6d310e20, 0x1992e: 0x6d107620, 0x1992f: 0x6ce98620,
-	0x19930: 0x6cce2e20, 0x19931: 0x6cf93e20, 0x19932: 0x6cbbcc20, 0x19933: 0x6cf13620,
-	0x19934: 0x6d1d6220, 0x19935: 0x6c1fa820, 0x19936: 0x6cc1ec20, 0x19937: 0x6cebfa20,
-	0x19939: 0x6d343220, 0x1993a: 0x6ce6e420, 0x1993b: 0x6c47f820,
-	0x1993c: 0x6cce3020, 0x1993d: 0x6c10ec20, 0x1993e: 0x6c3f1a20, 0x1993f: 0x6ce61e20,
-	// Block 0x665, offset 0x19940
-	0x19940: 0x6cded220, 0x19941: 0x6cdeea20, 0x19942: 0x6d3da620, 0x19943: 0x6c4e4020,
-	0x19944: 0x6cb2da20, 0x19945: 0x6c519a20, 0x19946: 0x6d3c7420, 0x19947: 0x6d396e20,
-	0x19948: 0x6c0fd220, 0x19949: 0x6c8eec20, 0x1994a: 0x6caa8c20, 0x1994b: 0x6cf71220,
-	0x1994c: 0x6cada220, 0x1994d: 0x6c2cb420, 0x1994e: 0x6c50ac20, 0x1994f: 0x6ce44620,
-	0x19950: 0x6cec8020, 0x19951: 0x6ce44a20, 0x19952: 0x6cb66a20, 0x19953: 0x6c62a820,
-	0x19954: 0x6c1b6620, 0x19955: 0x6c03cc20, 0x19956: 0x6c6d7020, 0x19957: 0x6c78e820,
-	0x19958: 0x6c873e20, 0x19959: 0x6c72c820, 0x1995a: 0x6cc25620, 0x1995b: 0x6c7ec820,
-	0x1995c: 0x6c47f020, 0x1995d: 0x6cb88620, 0x1995e: 0x6cb6b420, 0x1995f: 0x6cfd5020,
-	0x19960: 0x6c664220, 0x19961: 0x6cd29a20, 0x19962: 0x6c655420, 0x19963: 0x6c005e20,
-	0x19964: 0x6c577220, 0x19965: 0x6d2c1420, 0x19966: 0x6d2b2e20, 0x19967: 0x6d11e820,
-	0x19968: 0x6d2dd820, 0x19969: 0x6c630420, 0x1996a: 0x6c145c20, 0x1996b: 0x6d0f3420,
-	0x1996c: 0x6c654c20, 0x1996e: 0x6d0e1020,
-	0x19970: 0x6c68a820, 0x19971: 0x6ce7a220, 0x19972: 0x6ca41820, 0x19973: 0x6d271a20,
-	0x19975: 0x6c1b6e20,
-	// Block 0x666, offset 0x19980
-	0x19980: 0x6d13b620, 0x19981: 0x6c2f4020, 0x19982: 0x6c779820, 0x19983: 0x6cb4c620,
-	0x19984: 0x6cce4620, 0x19985: 0x6cfa2420, 0x19986: 0x6c4e4c20, 0x19987: 0x6ced6820,
-	0x19988: 0x6d2f1820, 0x19989: 0x6cc9f220, 0x1998a: 0x6cce4820, 0x1998b: 0x6cfa2620,
-	0x1998c: 0x6c5e6220, 0x1998d: 0x6c105620, 0x1998e: 0x6d221020, 0x1998f: 0x6c9dfa20,
-	0x19990: 0x6c411e20, 0x19991: 0x6c1e1820, 0x19992: 0x6c1e1a20, 0x19993: 0x6d3b6c20,
-	0x19994: 0x6cbc8e20, 0x19995: 0x6caf2220, 0x19996: 0x6cd2ea20, 0x19997: 0x6cd2e820,
-	0x19998: 0x6cbf9420, 0x19999: 0x6c0dba20, 0x1999a: 0x6d12b820, 0x1999b: 0x6c237e20,
-	0x1999c: 0x6c2fd620, 0x1999d: 0x6cd7b820, 0x1999e: 0x6c19b020, 0x1999f: 0x6c2fca20,
-	0x199a0: 0x6cbf9620, 0x199a1: 0x6c898020, 0x199a2: 0x6c2fcc20, 0x199a3: 0x6d1f9a20,
-	0x199a4: 0x6c898220, 0x199a5: 0x6d0c5420, 0x199a6: 0x6c0e0820, 0x199a7: 0x6cca9c20,
-	0x199a8: 0x6c4bb620, 0x199a9: 0x6c6f3620, 0x199aa: 0x6c447a20, 0x199ab: 0x6d0ac420,
-	0x199ac: 0x6cbb0220, 0x199ad: 0x6d378220, 0x199ae: 0x6c611020, 0x199af: 0x6c6ba220,
-	0x199b0: 0x6c3c0c20, 0x199b1: 0x6c497420, 0x199b2: 0x6c202c20, 0x199b3: 0x6c159620,
-	0x199b4: 0x6c8ba220, 0x199b5: 0x6d3d3620, 0x199b6: 0x6d3a5220, 0x199b7: 0x6c4d0420,
-	0x199b8: 0x6cecb420, 0x199b9: 0x6c27b220, 0x199ba: 0x6cf06a20, 0x199bb: 0x6d3a5420,
-	0x199bc: 0x6c6e0020, 0x199bd: 0x6c857420, 0x199be: 0x6c71aa20, 0x199bf: 0x6cb1dc20,
-	// Block 0x667, offset 0x199c0
-	0x199c0: 0x6c3dc220, 0x199c1: 0x6d144620, 0x199c2: 0x6d163420, 0x199c3: 0x6ca38c20,
-	0x199c4: 0x6cf55020, 0x199c5: 0x6c6f9c20, 0x199c6: 0x6c6f9e20, 0x199c7: 0x6cea9020,
-	0x199c8: 0x6c99c220, 0x199c9: 0x6d163820, 0x199ca: 0x6d13b820, 0x199cb: 0x6d337c20,
-	0x199cc: 0x6cf33c20, 0x199cd: 0x6d2ca620, 0x199ce: 0x6c56f820, 0x199cf: 0x6c37f420,
-	0x199d0: 0x6c820820, 0x199d1: 0x6d1a1e20, 0x199d2: 0x6cb24620, 0x199d3: 0x6caccc20,
-	0x199d4: 0x6cbbce20, 0x199d5: 0x6c560e20, 0x199d6: 0x6c48c220, 0x199d7: 0x6c19c420,
-	0x199d8: 0x6c19d420, 0x199d9: 0x6d15aa20, 0x199da: 0x6d1abc20, 0x199db: 0x6d0bd820,
-	0x199dc: 0x6c9ebc20, 0x199dd: 0x6c6f9a20, 0x199de: 0x6cb6c020, 0x199df: 0x6d129c20,
-	0x199e0: 0x6cf76820, 0x199e1: 0x6cfd5e20, 0x199e2: 0x6c412020, 0x199e3: 0x6c6fa020,
-	0x199e4: 0x6cfa2820, 0x199e5: 0x6c563020, 0x199e6: 0x6cd49620, 0x199e7: 0x6c315a20,
-	0x199e8: 0x6cd2aa20, 0x199e9: 0x6c5e7020, 0x199ea: 0x6ca45420, 0x199eb: 0x6c631a20,
-	0x199ec: 0x6c71ec20, 0x199ed: 0x6cd23220, 0x199ee: 0x6c992220, 0x199ef: 0x6c549020,
-	0x199f0: 0x6c971020, 0x199f1: 0x6c949020, 0x199f2: 0x6d3dfe20, 0x199f3: 0x6cc7f820,
-	0x199f4: 0x6d08f620, 0x199f5: 0x6d0d4220, 0x199f6: 0x6c3f3a20, 0x199f7: 0x6ccbcc20,
-	0x199f8: 0x6ca2f020, 0x199f9: 0x6c418220, 0x199fa: 0x6cdd5020, 0x199fb: 0x6d20d020,
-	0x199fc: 0x6c258c20, 0x199fd: 0x6d30d420, 0x199fe: 0x6c419020, 0x199ff: 0x6d35d220,
-	// Block 0x668, offset 0x19a00
-	0x19a00: 0x6c4a5020, 0x19a01: 0x6c419820, 0x19a02: 0x6c949a20, 0x19a03: 0x6c8c2220,
-	0x19a04: 0x6d17d820, 0x19a05: 0x6c73be20, 0x19a06: 0x6c823620, 0x19a07: 0x6c96ec20,
-	0x19a08: 0x6d221220, 0x19a09: 0x6d328020, 0x19a0a: 0x6cd30620, 0x19a0b: 0x6cd31020,
-	0x19a0c: 0x6c37b420, 0x19a0d: 0x6c1f0020, 0x19a0e: 0x6d20a220, 0x19a0f: 0x6c7c3020,
-	0x19a10: 0x6d20a020, 0x19a11: 0x6d277420, 0x19a12: 0x6c563220, 0x19a13: 0x6cb56020,
-	0x19a14: 0x6cf41420, 0x19a15: 0x6c6dfe20, 0x19a16: 0x6cd87220, 0x19a17: 0x6cdc1c20,
-	0x19a18: 0x6c44a620, 0x19a19: 0x6c44a820, 0x19a1a: 0x6d0b6c20, 0x19a1b: 0x6d003620,
-	0x19a1c: 0x6d0b7420, 0x19a1d: 0x6cb57820, 0x19a1e: 0x6d0b7c20, 0x19a1f: 0x6c5fd820,
-	0x19a20: 0x6ce7e220, 0x19a21: 0x6cedd420, 0x19a22: 0x6c777420, 0x19a23: 0x6cde2a20,
-	0x19a24: 0x6c682220, 0x19a25: 0x6c4d4e20, 0x19a26: 0x6d165220, 0x19a27: 0x6c158c20,
-	0x19a28: 0x6c524420, 0x19a29: 0x6ca22220, 0x19a2a: 0x6d13b220, 0x19a2b: 0x6cfdd820,
-	0x19a2c: 0x6c6d8e20, 0x19a2d: 0x6ce66220, 0x19a2e: 0x6c89aa20, 0x19a2f: 0x6cfdda20,
-	0x19a30: 0x6c6d9620, 0x19a31: 0x6d12d420, 0x19a32: 0x6cbd1c20, 0x19a33: 0x6c0ece20,
-	0x19a34: 0x6d204420, 0x19a35: 0x6d01a020, 0x19a36: 0x6c283820, 0x19a37: 0x6c880820,
-	0x19a38: 0x6c34b420, 0x19a39: 0x6c9ae020, 0x19a3a: 0x6cc55a20, 0x19a3b: 0x6cc55c20,
-	0x19a3c: 0x6c5fb620, 0x19a3d: 0x6c630a20, 0x19a3e: 0x6cedd620, 0x19a3f: 0x6d163a20,
-	// Block 0x669, offset 0x19a40
-	0x19a40: 0x6cd03620, 0x19a41: 0x6cc55e20, 0x19a42: 0x6c820220, 0x19a43: 0x6c2f4220,
-	0x19a44: 0x6d2b3220, 0x19a45: 0x6c6c7e20, 0x19a46: 0x6cb3fa20, 0x19a47: 0x6c1d8c20,
-	0x19a48: 0x6c030c20, 0x19a49: 0x6d2ef620, 0x19a4a: 0x6c6c1c20, 0x19a4b: 0x6c6ba420,
-	0x19a4c: 0x6c0da020, 0x19a4d: 0x6cc61220, 0x19a4e: 0x6c237c20, 0x19a4f: 0x6c3d0820,
-	0x19a50: 0x6cca1220, 0x19a51: 0x6c94d420, 0x19a52: 0x6c0da220, 0x19a53: 0x6c121c20,
-	0x19a54: 0x6d3ed620, 0x19a55: 0x6cd2ee20, 0x19a56: 0x6cddda20, 0x19a57: 0x6d2f1a20,
-	0x19a58: 0x6c3fa420, 0x19a59: 0x6cfd5620, 0x19a5a: 0x6cfa6a20, 0x19a5b: 0x6cea9220,
-	0x19a5c: 0x6c52e820, 0x19a5d: 0x6ce70a20, 0x19a5e: 0x6cc5a620, 0x19a5f: 0x6cb88e20,
-	0x19a60: 0x6c41c220, 0x19a61: 0x6c436220, 0x19a62: 0x6c0ea620, 0x19a63: 0x6c272220,
-	0x19a64: 0x6c8e1820, 0x19a65: 0x6d15ae20, 0x19a66: 0x6c17b020, 0x19a67: 0x6c169020,
-	0x19a68: 0x6cc93e20, 0x19a69: 0x6cce5a20, 0x19a6a: 0x6d144a20, 0x19a6b: 0x6ca25e20,
-	0x19a6c: 0x6c9b0220, 0x19a6d: 0x6cc5a820, 0x19a6e: 0x6c63fe20, 0x19a6f: 0x6c17b220,
-	0x19a70: 0x6d0ffc20, 0x19a71: 0x6cb96820, 0x19a72: 0x6d380e20, 0x19a73: 0x6cb04620,
-	0x19a74: 0x6cf2cc20, 0x19a75: 0x6cf41820, 0x19a76: 0x6c665020, 0x19a77: 0x6c643620,
-	0x19a78: 0x6d117e20, 0x19a79: 0x6c3c1220, 0x19a7a: 0x6c121e20, 0x19a7b: 0x6cc5ac20,
-	0x19a7c: 0x6ceddc20, 0x19a7d: 0x6c3bc420, 0x19a7e: 0x6c2b0c20, 0x19a7f: 0x6c39b620,
-	// Block 0x66a, offset 0x19a80
-	0x19a80: 0x6d378420, 0x19a81: 0x6cb6c820, 0x19a82: 0x6cadf820, 0x19a83: 0x6d20a620,
-	0x19a84: 0x6c2e0620, 0x19a85: 0x6c33d220, 0x19a86: 0x6cf49c20, 0x19a87: 0x6d165620,
-	0x19a88: 0x6d030a20, 0x19a89: 0x6c777620, 0x19a8a: 0x6d13bc20, 0x19a8b: 0x6c5fbc20,
-	0x19a8c: 0x6c008620, 0x19a8d: 0x6cf55420, 0x19a8e: 0x6c617220, 0x19a8f: 0x6c3dca20,
-	0x19a90: 0x6c37f620, 0x19a91: 0x6d04b220, 0x19a92: 0x6c6ccc20, 0x19a93: 0x6caf2420,
-	0x19a94: 0x6c281820, 0x19a95: 0x6c3d3420, 0x19a96: 0x6ce16c20, 0x19a97: 0x6d381020,
-	0x19a98: 0x6d1e8820, 0x19a99: 0x6c5d8620, 0x19a9a: 0x6c5b8a20, 0x19a9b: 0x6d221420,
-	0x19a9c: 0x6c251620, 0x19a9d: 0x6c1fee20, 0x19a9e: 0x6cca1420, 0x19a9f: 0x6cef8220,
-	0x19aa0: 0x6c1ff020, 0x19aa1: 0x6c17cc20, 0x19aa2: 0x6d0b0a20, 0x19aa3: 0x6cfc7020,
-	0x19aa4: 0x6ccdfe20, 0x19aa5: 0x6c165e20, 0x19aa6: 0x6c94d620, 0x19aa7: 0x6c122020,
-	0x19aa8: 0x6d0a6420, 0x19aa9: 0x6d031220, 0x19aaa: 0x6cef8420, 0x19aab: 0x6d3a9a20,
-	0x19aac: 0x6d2b5820, 0x19aad: 0x6cfb2220, 0x19aae: 0x6caa4820, 0x19aaf: 0x6c0eaa20,
-	0x19ab0: 0x6c46e620, 0x19ab1: 0x6ca62020, 0x19ab2: 0x6ca67a20, 0x19ab3: 0x6d015420,
-	0x19ab4: 0x6c04de20, 0x19ab5: 0x6d066a20, 0x19ab6: 0x6c8e2c20, 0x19ab7: 0x6d38f820,
-	0x19ab8: 0x6ccfa020, 0x19ab9: 0x6cc0ca20, 0x19aba: 0x6c22ac20, 0x19abb: 0x6c07ce20,
-	0x19abc: 0x6cd2f620, 0x19abd: 0x6c631e20, 0x19abe: 0x6caf2620, 0x19abf: 0x6d167220,
-	// Block 0x66b, offset 0x19ac0
-	0x19ac0: 0x6cd87c20, 0x19ac1: 0x6d15b620, 0x19ac2: 0x6d328220, 0x19ac3: 0x6c2d3420,
-	0x19ac4: 0x6c4d9020, 0x19ac5: 0x6c972220, 0x19ac6: 0x6c286220, 0x19ac7: 0x6d3a9c20,
-	0x19ac8: 0x6c105a20, 0x19ac9: 0x6cc0cc20, 0x19aca: 0x6c08b420, 0x19acb: 0x6d2f5020,
-	0x19acc: 0x6c228c20, 0x19acd: 0x6cf06e20, 0x19ace: 0x6c2b0e20, 0x19acf: 0x6d3a9e20,
-	0x19ad0: 0x6d426220, 0x19ad1: 0x6d200e20, 0x19ad2: 0x6d0ffe20, 0x19ad3: 0x6ce3ba20,
-	0x19ad4: 0x6d2e4820, 0x19ad5: 0x6c50b820, 0x19ad6: 0x6c091020, 0x19ad7: 0x6ceae420,
-	0x19ad8: 0x6ccf0820, 0x19ad9: 0x6d20ac20, 0x19ada: 0x6d167420, 0x19adb: 0x6c3dd020,
-	0x19adc: 0x6d427420, 0x19add: 0x6c463420, 0x19ade: 0x6ca95020, 0x19adf: 0x6ce70e20,
-	0x19ae0: 0x6ca62220, 0x19ae1: 0x6cfa7620, 0x19ae2: 0x6cc17220, 0x19ae3: 0x6d1d7c20,
-	0x19ae4: 0x6cec0e20, 0x19ae5: 0x6cb8a220, 0x19ae6: 0x6cd40a20, 0x19ae7: 0x6c761a20,
-	0x19ae8: 0x6c068820, 0x19ae9: 0x6cae0420, 0x19aea: 0x6c5b1a20, 0x19aeb: 0x6c51b620,
-	0x19aec: 0x6c819c20, 0x19aed: 0x6cfdac20, 0x19aee: 0x6c43c420, 0x19aef: 0x6d0f8420,
-	0x19af0: 0x6c041820, 0x19af1: 0x6c382c20, 0x19af2: 0x6ca02a20, 0x19af3: 0x6c632420,
-	0x19af4: 0x6c37bc20, 0x19af5: 0x6c0e0a20, 0x19af6: 0x6c5fda20, 0x19af7: 0x6c523820,
-	0x19af8: 0x6c5d6c20, 0x19af9: 0x6c4ac420, 0x19afa: 0x6cc2b620, 0x19afb: 0x6ce54820,
-	0x19afc: 0x6c68c820, 0x19afd: 0x6c22b020, 0x19afe: 0x6d16a220, 0x19aff: 0x6cd2b220,
-	// Block 0x66c, offset 0x19b00
-	0x19b00: 0x6d03c620, 0x19b01: 0x6ccfa620, 0x19b02: 0x6ceaa620, 0x19b03: 0x6c76c020,
-	0x19b04: 0x6d343a20, 0x19b05: 0x6c40dc20, 0x19b06: 0x6c7ee220, 0x19b07: 0x6d146c20,
-	0x19b08: 0x6c1b7a20, 0x19b09: 0x6c7ad220, 0x19b0a: 0x6c49d420, 0x19b0b: 0x6c858620,
-	0x19b0c: 0x6d19a820, 0x19b0d: 0x6cd31220, 0x19b0e: 0x6c9cda20, 0x19b0f: 0x6d398220,
-	0x19b10: 0x6d067a20, 0x19b11: 0x6d201420, 0x19b12: 0x6c011820, 0x19b13: 0x6c921620,
-	0x19b14: 0x6ca1c020, 0x19b15: 0x6c373420, 0x19b16: 0x6c94de20, 0x19b17: 0x6c305220,
-	0x19b18: 0x6c143020, 0x19b19: 0x6c1a9420, 0x19b1a: 0x6d0a6a20, 0x19b1b: 0x6c456220,
-	0x19b1c: 0x6d385620, 0x19b1d: 0x6d13ca20, 0x19b1e: 0x6cc78c20, 0x19b1f: 0x6c25a220,
-	0x19b20: 0x6cf98820, 0x19b21: 0x6cd88620, 0x19b22: 0x6d292c20, 0x19b23: 0x6c937820,
-	0x19b24: 0x6cdefc20, 0x19b25: 0x6c68ca20, 0x19b26: 0x6d312220, 0x19b27: 0x6c12ca20,
-	0x19b28: 0x6cbbd020, 0x19b29: 0x6c7b1220, 0x19b2a: 0x6c147020, 0x19b2b: 0x6ca95220,
-	0x19b2c: 0x6ca9b020, 0x19b2d: 0x6c6c8420, 0x19b2e: 0x6cf43220, 0x19b2f: 0x6c53ec20,
-	0x19b30: 0x6c6efe20, 0x19b31: 0x6c1a6420, 0x19b32: 0x6d321e20, 0x19b33: 0x6d428220,
-	0x19b34: 0x6c1e2620, 0x19b35: 0x6cbd1e20, 0x19b36: 0x6c937a20, 0x19b37: 0x6c70f820,
-	0x19b38: 0x6cd5a420, 0x19b39: 0x6ce6b420, 0x19b3a: 0x6cd09220, 0x19b3b: 0x6ce9f420,
-	0x19b3c: 0x6c0ec020, 0x19b3d: 0x6ca3e820, 0x19b3e: 0x6cfe8820, 0x19b3f: 0x6c0b8220,
-	// Block 0x66d, offset 0x19b40
-	0x19b40: 0x6ce9de20, 0x19b41: 0x6d222420, 0x19b42: 0x6cf85220, 0x19b43: 0x6c242e20,
-	0x19b44: 0x6c354e20, 0x19b45: 0x6cc01020, 0x19b46: 0x6d061620, 0x19b47: 0x6c4a1820,
-	0x19b48: 0x6c7a8420, 0x19b49: 0x6cf43420, 0x19b4a: 0x6c759620, 0x19b4b: 0x6d16da20,
-	0x19b4c: 0x6c3f4620, 0x19b4d: 0x6c894820, 0x19b4e: 0x6d410e20, 0x19b4f: 0x6cbc3020,
-	0x19b50: 0x6c859a20, 0x19b51: 0x6d1e1620, 0x19b52: 0x6c5d1c20, 0x19b53: 0x6c6e5220,
-	0x19b54: 0x6cba4220, 0x19b55: 0x6cca4820, 0x19b56: 0x6cadf420, 0x19b57: 0x6cda7220,
-	0x19b58: 0x6c3e0620, 0x19b59: 0x6cf59820, 0x19b5a: 0x6c850020, 0x19b5b: 0x6c3f4820,
-	0x19b5c: 0x6cb24a20, 0x19b5d: 0x6c05ea20, 0x19b5e: 0x6d20d220, 0x19b5f: 0x6cb59020,
-	0x19b60: 0x6cf99020, 0x19b61: 0x6d032220, 0x19b62: 0x6d04b620, 0x19b63: 0x6d222620,
-	0x19b64: 0x6c2c2420, 0x19b65: 0x6c17d020, 0x19b66: 0x6c1d9220, 0x19b67: 0x6d377c20,
-	0x19b68: 0x6d0d4e20, 0x19b69: 0x6c87e820, 0x19b6a: 0x6c859c20, 0x19b6b: 0x6c7ee420,
-	0x19b6c: 0x6cd8fc20, 0x19b6d: 0x6c656a20, 0x19b6e: 0x6d04b820, 0x19b6f: 0x6c3f5220,
-	0x19b70: 0x6c5daa20, 0x19b71: 0x6c721e20, 0x19b72: 0x6cffd820, 0x19b73: 0x6cabf620,
-	0x19b74: 0x6c666420, 0x19b75: 0x6c0c8c20, 0x19b76: 0x6c1f2020, 0x19b77: 0x6c3a9420,
-	0x19b78: 0x6c3cde20, 0x19b79: 0x6d0b8a20, 0x19b7a: 0x6c017a20, 0x19b7b: 0x6c06f820,
-	0x19b7c: 0x6d22ea20, 0x19b7d: 0x6d02bc20, 0x19b7e: 0x6c08ce20, 0x19b7f: 0x6c561620,
-	// Block 0x66e, offset 0x19b80
-	0x19b80: 0x6c166220, 0x19b81: 0x6d33be20, 0x19b82: 0x6c0e1020, 0x19b83: 0x6c6fe420,
-	0x19b84: 0x6d10de20, 0x19b85: 0x6c252020, 0x19b86: 0x6c87ea20, 0x19b87: 0x6cecf420,
-	0x19b88: 0x6c7ee620, 0x19b89: 0x6c122820, 0x19b8a: 0x6d401c20, 0x19b8b: 0x6c448220,
-	0x19b8c: 0x6c490a20, 0x19b8d: 0x6c06fa20, 0x19b8e: 0x6ce4dc20, 0x19b8f: 0x6cd4b420,
-	0x19b90: 0x6cd4b620, 0x19b91: 0x6c9b0420, 0x19b92: 0x6c2a0620, 0x19b93: 0x6cdfd420,
-	0x19b94: 0x6c740e20, 0x19b95: 0x6c20c220, 0x19b96: 0x6d041e20, 0x19b97: 0x6cae9420,
-	0x19b98: 0x6ce17020, 0x19b99: 0x6c548e20, 0x19b9a: 0x6d15da20, 0x19b9b: 0x6cb4d620,
-	0x19b9c: 0x6ce3de20, 0x19b9d: 0x6c421420, 0x19b9e: 0x6c6e5e20, 0x19b9f: 0x6c6bd620,
-	0x19ba0: 0x6cdbb220, 0x19ba1: 0x6c170a20, 0x19ba2: 0x6c6a9e20, 0x19ba3: 0x6c39ce20,
-	0x19ba4: 0x6d344420, 0x19ba5: 0x6c796c20, 0x19ba6: 0x6c734220, 0x19ba7: 0x6d3f7420,
-	0x19ba8: 0x6c722020, 0x19ba9: 0x6cba4620, 0x19baa: 0x6ca5c820, 0x19bab: 0x6c94e420,
-	0x19bac: 0x6d3cf420, 0x19bad: 0x6cf27e20, 0x19bae: 0x6c95a820, 0x19baf: 0x6cd91020,
-	0x19bb0: 0x6c839220, 0x19bb1: 0x6c5d1e20, 0x19bb2: 0x6c2fea20, 0x19bb3: 0x6d3f3620,
-	0x19bb4: 0x6c07aa20, 0x19bb5: 0x6cf43820, 0x19bb6: 0x6c722220, 0x19bb7: 0x6ca39e20,
-	0x19bb8: 0x6c112020, 0x19bb9: 0x6c657820, 0x19bba: 0x6d2d3820, 0x19bbb: 0x6d125a20,
-	0x19bbc: 0x6d344620, 0x19bbd: 0x6ccc4020, 0x19bbe: 0x6cbe3820, 0x19bbf: 0x6cbd1220,
-	// Block 0x66f, offset 0x19bc0
-	0x19bc0: 0x6d1ba420, 0x19bc1: 0x6c196620, 0x19bc2: 0x6c648020, 0x19bc3: 0x6d0d6220,
-	0x19bc4: 0x6cc85c20, 0x19bc5: 0x6d382420, 0x19bc6: 0x6c217620, 0x19bc7: 0x6c641220,
-	0x19bc8: 0x6c61da20, 0x19bc9: 0x6cefa820, 0x19bca: 0x6d224220, 0x19bcb: 0x6c0e1820,
-	0x19bcc: 0x6cc91620, 0x19bcd: 0x6ce31a20, 0x19bce: 0x6cee7020, 0x19bcf: 0x6cb0ee20,
-	0x19bd0: 0x6d0e5a20, 0x19bd1: 0x6c3c3a20, 0x19bd2: 0x6ce17220, 0x19bd3: 0x6cf2e020,
-	0x19bd4: 0x6c360620, 0x19bd5: 0x6d009a20, 0x19bd6: 0x6c17e820, 0x19bd7: 0x6cd13020,
-	0x19bd8: 0x6c76ca20, 0x19bd9: 0x6c2c3820, 0x19bda: 0x6d429620, 0x19bdb: 0x6c138e20,
-	0x19bdc: 0x6ce66c20, 0x19bdd: 0x6c070620, 0x19bde: 0x6d018820, 0x19bdf: 0x6c59b020,
-	0x19be0: 0x6d11a820, 0x19be1: 0x6d2e5420, 0x19be2: 0x6c1e2a20, 0x19be3: 0x6d0bec20,
-	0x19be4: 0x6d1f2820, 0x19be5: 0x6c666820, 0x19be6: 0x6d063a20, 0x19be7: 0x6d2bd220,
-	0x19be8: 0x6c220220, 0x19be9: 0x6c3fdc20, 0x19bea: 0x6c087020, 0x19beb: 0x6d35d420,
-	0x19bec: 0x6d3fea20, 0x19bed: 0x6c9e1620, 0x19bee: 0x6c601020, 0x19bef: 0x6d15e420,
-	0x19bf0: 0x6d018a20, 0x19bf1: 0x6d0a0420, 0x19bf2: 0x6c10f420, 0x19bf3: 0x6c329420,
-	0x19bf4: 0x6c12da20, 0x19bf5: 0x6d314c20, 0x19bf6: 0x6cab7c20, 0x19bf7: 0x6ce7d420,
-	0x19bf8: 0x6ce7d620, 0x19bf9: 0x6c070820, 0x19bfa: 0x6d28b220, 0x19bfb: 0x6c908420,
-	0x19bfc: 0x6c6aac20, 0x19bfd: 0x6cefaa20, 0x19bfe: 0x6c3bd620, 0x19bff: 0x6c16a020,
-	// Block 0x670, offset 0x19c00
-	0x19c00: 0x6c4a5220, 0x19c01: 0x6cda1420, 0x19c02: 0x6d361420, 0x19c03: 0x6cdab020,
-	0x19c04: 0x6cf96620, 0x19c05: 0x6c40b020, 0x19c06: 0x6d261420, 0x19c07: 0x6cc70420,
-	0x19c08: 0x6c860420, 0x19c09: 0x6caa6420, 0x19c0a: 0x6d282c20, 0x19c0b: 0x6c67a620,
-	0x19c0c: 0x6c96bc20, 0x19c0d: 0x6c056e20, 0x19c0e: 0x6c2cc820, 0x19c0f: 0x6ce0ee20,
-	0x19c10: 0x6c503c20, 0x19c11: 0x6c6ac220, 0x19c12: 0x6cf60820, 0x19c13: 0x6ccd8820,
-	0x19c14: 0x6cba5020, 0x19c15: 0x6c744020, 0x19c16: 0x6c122c20, 0x19c17: 0x6c1f3c20,
-	0x19c18: 0x6cca1820, 0x19c19: 0x6c071c20, 0x19c1a: 0x6cffe820, 0x19c1b: 0x6d1e3420,
-	0x19c1c: 0x6d10f220, 0x19c1d: 0x6ce09620, 0x19c1e: 0x6cdd1420, 0x19c1f: 0x6d101c20,
-	0x19c20: 0x6c37ea20, 0x19c21: 0x6c0e1c20, 0x19c22: 0x6c635a20, 0x19c23: 0x6c271820,
-	0x19c24: 0x6d293620, 0x19c25: 0x6ce17620, 0x19c26: 0x6c483820, 0x19c27: 0x6c0d3420,
-	0x19c28: 0x6c1ede20, 0x19c29: 0x6caabc20, 0x19c2a: 0x6c116c20, 0x19c2b: 0x6c82c820,
-	0x19c2c: 0x6c24ca20, 0x19c2d: 0x6d1d8820, 0x19c2e: 0x6d2a1420, 0x19c2f: 0x6d3ff620,
-	0x19c30: 0x6c07f420, 0x19c31: 0x6cd95e20, 0x19c32: 0x6c02ce20, 0x19c33: 0x6c1ffe20,
-	0x19c34: 0x6d226620, 0x19c35: 0x6d2d4220, 0x19c36: 0x6d40c220, 0x19c37: 0x6cce0620,
-	0x19c38: 0x6c208e20, 0x19c39: 0x6c6e8c20, 0x19c3a: 0x6c1c2c20, 0x19c3b: 0x6ccc3220,
-	0x19c3c: 0x6c4ecc20, 0x19c3d: 0x6d2eb820, 0x19c3e: 0x6cbe4c20, 0x19c3f: 0x6d0e8020,
-	// Block 0x671, offset 0x19c40
-	0x19c40: 0x6c2c6620, 0x19c41: 0x6d01bc20, 0x19c42: 0x6c909220, 0x19c43: 0x6c072020,
-	0x19c44: 0x6cb1b020, 0x19c45: 0x6c6c9420, 0x19c46: 0x6c88f020, 0x19c47: 0x6c926020,
-	0x19c48: 0x6c976620, 0x19c49: 0x6cb8ea20, 0x19c4a: 0x6cfaba20, 0x19c4b: 0x6ce09c20,
-	0x19c4c: 0x6d1c7a20, 0x19c4d: 0x6c307e20, 0x19c4e: 0x6d3bd220, 0x19c4f: 0x6cfe3c20,
-	0x19c50: 0x6ccd9220, 0x19c51: 0x6cbbe220, 0x19c52: 0x6c6f2220, 0x19c53: 0x6ce9e820,
-	0x19c54: 0x6d420620, 0x19c55: 0x6cb44220, 0x19c56: 0x6cf66020, 0x19c57: 0x6c815e20,
-	0x19c58: 0x6c16f020, 0x19c59: 0x6c49ec20, 0x19c5a: 0x6c89ec20, 0x19c5b: 0x6cb50420,
-	0x19c5c: 0x6c197820, 0x19c5d: 0x6c150820, 0x19c5e: 0x6cefee20, 0x19c5f: 0x6c5efe20,
-	0x19c60: 0x6c0e8220, 0x19c61: 0x6c5bf020, 0x19c62: 0x6c202420, 0x19c63: 0x6ce5fc20,
-	0x19c64: 0x6c289a20, 0x19c65: 0x6c691220, 0x19c66: 0x6c700a20, 0x19c67: 0x6ccbb820,
-	0x19c68: 0x6c3be020, 0x19c69: 0x6cfce620, 0x19c6a: 0x6c713c20, 0x19c6b: 0x6c366c20,
-	0x19c6c: 0x6c685820, 0x19c6d: 0x6c66a420, 0x19c6e: 0x6ce76420, 0x19c6f: 0x6c8c5620,
-	0x19c70: 0x6c0f2420, 0x19c71: 0x6c482220, 0x19c72: 0x6cfd5820, 0x19c73: 0x6cdade20,
-	0x19c74: 0x6cfce820, 0x19c75: 0x6c676e20, 0x19c76: 0x6c9fc020, 0x19c77: 0x6d130e20,
-	0x19c78: 0x6c6d3220, 0x19c79: 0x6c644e20, 0x19c7a: 0x6cbc5220, 0x19c7b: 0x6cb0b420,
-	0x19c7c: 0x6c3c6020, 0x19c7d: 0x6d394220, 0x19c7e: 0x6c00c020, 0x19c7f: 0x6cc9e820,
-	// Block 0x672, offset 0x19c80
-	0x19c80: 0x6d154220, 0x19c81: 0x6c75d220, 0x19c82: 0x6ca9be20, 0x19c83: 0x6c151620,
-	0x19c84: 0x6d184620, 0x19c85: 0x6c297c20, 0x19c86: 0x6c6e2420, 0x19c87: 0x6d07b620,
-	0x19c88: 0x6c7b3020, 0x19c89: 0x6c65c820, 0x19c8a: 0x6c1f6820, 0x19c8b: 0x6c27f420,
-	0x19c8c: 0x6c692020, 0x19c8d: 0x6ccc3420, 0x19c8e: 0x6d294020, 0x19c8f: 0x6c121820,
-	0x19c90: 0x6c0d5020, 0x19c91: 0x6c017220, 0x19c92: 0x6cc7c420, 0x19c93: 0x6cdf3c20,
-	0x19c94: 0x6c1dd820, 0x19c95: 0x6c148a20, 0x19c96: 0x6c7fb220, 0x19c97: 0x6ca64620,
-	0x19c98: 0x6c6cb420, 0x19c99: 0x6cba7020, 0x19c9a: 0x6c9b3420, 0x19c9b: 0x6cf47620,
-	0x19c9c: 0x6ca91820, 0x19c9d: 0x6cbf5a20, 0x19c9e: 0x6ca64820, 0x19c9f: 0x6c16c820,
-	0x19ca0: 0x6c8b2e20, 0x19ca1: 0x6c82dc20, 0x19ca2: 0x6c93b820, 0x19ca3: 0x6c7bd020,
-	0x19ca4: 0x6c066c20, 0x19ca5: 0x6d240420, 0x19ca6: 0x6c0c2a20, 0x19ca7: 0x6d297820,
-	0x19ca8: 0x6d349e20, 0x19ca9: 0x6cd8f220, 0x19caa: 0x6d1eb420, 0x19cab: 0x6c4fe820,
-	0x19cac: 0x6c193220, 0x19cad: 0x6c193620, 0x19cae: 0x6c86bc20, 0x19caf: 0x6ce2be20,
-	0x19cb0: 0x6cf02420, 0x19cb1: 0x6c903a20, 0x19cb2: 0x6c1eee20, 0x19cb3: 0x6c154020,
-	0x19cb4: 0x6cc4e020, 0x19cb5: 0x6cd51220, 0x19cb6: 0x6c5c8820, 0x19cb7: 0x6c874220,
-	0x19cb8: 0x6c956820, 0x19cb9: 0x6d298020, 0x19cba: 0x6caace20, 0x19cbb: 0x6ce18820,
-	0x19cbc: 0x6d0e1220, 0x19cbd: 0x6c829420, 0x19cbe: 0x6ca47c20, 0x19cbf: 0x6c372e20,
-	// Block 0x673, offset 0x19cc0
-	0x19cc0: 0x6cf49020, 0x19cc1: 0x6d27d220, 0x19cc2: 0x6d294a20, 0x19cc3: 0x6d252e20,
-	0x19cc4: 0x6d044a20, 0x19cc5: 0x6c1ca820, 0x19cc6: 0x6d2f9620, 0x19cc7: 0x6d044e20,
-	0x19cc8: 0x6cfa6e20, 0x19cc9: 0x6c49d020, 0x19cca: 0x6c332e20, 0x19ccb: 0x6c787820,
-	0x19ccc: 0x6c333020, 0x19ccd: 0x6c9dfe20, 0x19cce: 0x6ce91c20, 0x19ccf: 0x6c169420,
-	0x19cd0: 0x6c373220, 0x19cd1: 0x6c333220, 0x19cd2: 0x6c373620, 0x19cd3: 0x6c6c2c20,
-	0x19cd4: 0x6ce92020, 0x19cd5: 0x6cd87e20, 0x19cd6: 0x6d0d4420, 0x19cd7: 0x6d0d5020,
-	0x19cd8: 0x6cd2bc20, 0x19cda: 0x6c292a20, 0x19cdb: 0x6cb8c220,
-	0x19cdc: 0x6c30a820, 0x19cdd: 0x6c3b2820, 0x19cde: 0x6c98d620, 0x19cdf: 0x6ccfe220,
-	0x19ce0: 0x6c30aa20, 0x19ce2: 0x6c6dc620, 0x19ce3: 0x6c852e20,
-	0x19ce4: 0x6c5a2a20, 0x19ce5: 0x6cc80e20, 0x19ce6: 0x6cedd820, 0x19ce7: 0x6ca57e20,
-	0x19ce8: 0x6cc2b220, 0x19ce9: 0x6c898820, 0x19cea: 0x6d20d420, 0x19ceb: 0x6c030a20,
-	0x19cec: 0x6c454e20, 0x19ced: 0x6c8f2420, 0x19cee: 0x6cf55c20, 0x19cef: 0x6c4f4220,
-	0x19cf0: 0x6c7f8620, 0x19cf1: 0x6c460a20, 0x19cf2: 0x6ce45620, 0x19cf3: 0x6c490020,
-	0x19cf4: 0x6d041020, 0x19cf5: 0x6c0daa20, 0x19cf6: 0x6cb57a20, 0x19cf7: 0x6c720620,
-	0x19cf8: 0x6c2d0620, 0x19cf9: 0x6d3e0820, 0x19cfa: 0x6c3b2020, 0x19cfb: 0x6d100620,
-	0x19cfc: 0x6c647a20, 0x19cfd: 0x6cd45820, 0x19cfe: 0x6c621420, 0x19cff: 0x6d17da20,
-	// Block 0x674, offset 0x19d00
-	0x19d00: 0x6c627020, 0x19d01: 0x6c15ec20, 0x19d02: 0x6c6ed020, 0x19d03: 0x6c993e20,
-	0x19d04: 0x6cc4a620, 0x19d05: 0x6ca58020, 0x19d06: 0x6d253020, 0x19d07: 0x6c991c20,
-	0x19d08: 0x6c424c20, 0x19d09: 0x6cc4a820, 0x19d0a: 0x6c12c620, 0x19d0b: 0x6c6ed220,
-	0x19d0c: 0x6c12c820, 0x19d0d: 0x6d292620, 0x19d0e: 0x6c488820, 0x19d0f: 0x6c6ef020,
-	0x19d10: 0x6c994820, 0x19d11: 0x6d390820, 0x19d12: 0x6c994e20, 0x19d13: 0x6c46a020,
-	0x19d14: 0x6d063220, 0x19d15: 0x6c9e1820, 0x19d16: 0x6c9d1620, 0x19d17: 0x6cc6ec20,
-	0x19d18: 0x6d1a1a20, 0x19d19: 0x6d013e20, 0x19d1a: 0x6c76bc20, 0x19d1b: 0x6c755020,
-	0x19d1c: 0x6ca9ae20, 0x19d1d: 0x6d145a20, 0x19d1e: 0x6c9c3420, 0x19d1f: 0x6cd32820,
-	0x19d20: 0x6c490620, 0x19d21: 0x6c9b0e20, 0x19d22: 0x6d37ec20, 0x19d23: 0x6c722620,
-	0x19d24: 0x6d24d020, 0x19d25: 0x6c9ff220, 0x19d26: 0x6c79de20, 0x19d27: 0x6c8ba420,
-	0x19d28: 0x6c3fe020, 0x19d29: 0x6d014420, 0x19d2a: 0x6c9d7620, 0x19d2b: 0x6c0d9e20,
-	0x19d2c: 0x6c2fd820, 0x19d2d: 0x6cdf0c20, 0x19d2e: 0x6c425020, 0x19d2f: 0x6c3c9a20,
-	0x19d30: 0x6c0da620, 0x19d31: 0x6c564620, 0x19d32: 0x6c1caa20, 0x19d33: 0x6c73cc20,
-	0x19d34: 0x6c564820, 0x19d35: 0x6c7bdc20, 0x19d36: 0x6d12a220, 0x19d37: 0x6c839020,
-	0x19d38: 0x6cac9a20, 0x19d39: 0x6c3dd220, 0x19d3a: 0x6c9f8c20, 0x19d3b: 0x6c305020,
-	0x19d3c: 0x6cfbe620, 0x19d3d: 0x6c8ac620, 0x19d3e: 0x6cb84020, 0x19d3f: 0x6c646820,
-	// Block 0x675, offset 0x19d40
-	0x19d40: 0x6c6e4a20, 0x19d41: 0x6cd5a620, 0x19d42: 0x6c9a4c20, 0x19d43: 0x6ce88a20,
-	0x19d44: 0x6cb4d820, 0x19d45: 0x6c480220, 0x19d46: 0x6d3cda20, 0x19d47: 0x6cd91220,
-	0x19d48: 0x6c6e6020, 0x19d49: 0x6c894a20, 0x19d4a: 0x6cbec420, 0x19d4b: 0x6c2db820,
-	0x19d4c: 0x6c8cc420, 0x19d4d: 0x6c306c20, 0x19d4e: 0x6c421620, 0x19d4f: 0x6c658220,
-	0x19d50: 0x6d19c620, 0x19d51: 0x6c23ea20, 0x19d52: 0x6d14f220, 0x19d53: 0x6c860620,
-	0x19d54: 0x6c20a820, 0x19d55: 0x6ca03420, 0x19d56: 0x6d3ce820, 0x19d57: 0x6c24cc20,
-	0x19d58: 0x6cd7fe20, 0x19d59: 0x6c345c20, 0x19d5a: 0x6c6d3420, 0x19d5b: 0x6c8c2620,
-	0x19d5c: 0x6c8c2820, 0x19d5d: 0x6ca91a20, 0x19d5e: 0x6cf6b620, 0x19d5f: 0x6c31be20,
-	0x19d60: 0x6c610c20, 0x19d61: 0x6c387820, 0x19d62: 0x6c387a20, 0x19d63: 0x6c387c20,
-	0x19d64: 0x6c3cd620, 0x19d65: 0x6c704a20, 0x19d66: 0x6c1ed220, 0x19d67: 0x6d337a20,
-	0x19d68: 0x6c3c1420, 0x19d69: 0x6ca2c220, 0x19d6a: 0x6d377a20, 0x19d6b: 0x6c3dcc20,
-	0x19d6c: 0x6c3c1620, 0x19d6d: 0x6cb27220, 0x19d6e: 0x6c3c2020, 0x19d6f: 0x6c764420,
-	0x19d70: 0x6c59b220, 0x19d71: 0x6c765220, 0x19d72: 0x6c419a20, 0x19d73: 0x6c2ad820,
-	0x19d74: 0x6cb2bc20, 0x19d75: 0x6cb9ec20, 0x19d76: 0x6d044820, 0x19d77: 0x6c7b0a20,
-	0x19d78: 0x6ce83620, 0x19d79: 0x6c022420, 0x19d7a: 0x6c1e5020, 0x19d7b: 0x6c5e6820,
-	0x19d7c: 0x6c295020, 0x19d7d: 0x6c4dd220, 0x19d7e: 0x6c4dda20, 0x19d7f: 0x6d2a3420,
-	// Block 0x676, offset 0x19d80
-	0x19d80: 0x6c29b020, 0x19d81: 0x6c2da220, 0x19d82: 0x6c29b220, 0x19d83: 0x6cc5a020,
-	0x19d84: 0x6cc5a220, 0x19d85: 0x6c204a20, 0x19d86: 0x6c3b0820, 0x19d87: 0x6cbc9020,
-	0x19d88: 0x6d163e20, 0x19d89: 0x6c5e6a20, 0x19d8a: 0x6c76a020, 0x19d8b: 0x6cba3a20,
-	0x19d8c: 0x6c25ac20, 0x19d8d: 0x6c1e7220, 0x19d8e: 0x6cf1c620, 0x19d8f: 0x6c5e7220,
-	0x19d90: 0x6c281c20, 0x19d91: 0x6d03b820, 0x19d92: 0x6c577820, 0x19d93: 0x6cecb620,
-	0x19d94: 0x6c73ce20, 0x19d95: 0x6c839e20, 0x19d96: 0x6d267020, 0x19d97: 0x6c8abc20,
-	0x19d98: 0x6c8e3e20, 0x19d99: 0x6d2aa220, 0x19d9a: 0x6c425220, 0x19d9b: 0x6c209e20,
-	0x19d9c: 0x6c3dd420, 0x19d9d: 0x6c1e5420, 0x19d9e: 0x6cc26020, 0x19d9f: 0x6c704c20,
-	0x19da0: 0x6cccb820, 0x19da1: 0x6c9f8e20, 0x19da2: 0x6c8c9a20, 0x19da3: 0x6d378a20,
-	0x19da4: 0x6cac9c20, 0x19da5: 0x6c0cd820, 0x19da6: 0x6c6a6420, 0x19da7: 0x6c6a6620,
-	0x19da8: 0x6cad4420, 0x19da9: 0x6c857620, 0x19daa: 0x6cccba20, 0x19dab: 0x6c0cda20,
-	0x19dac: 0x6c158e20, 0x19dad: 0x6c6e0620, 0x19dae: 0x6c484420, 0x19daf: 0x6c44b820,
-	0x19db0: 0x6c2a0020, 0x19db1: 0x6c20a220, 0x19db2: 0x6c7c3220, 0x19db3: 0x6c7a2020,
-	0x19db4: 0x6c34ca20, 0x19db5: 0x6c37be20, 0x19db6: 0x6d358020, 0x19db7: 0x6cd64020,
-	0x19db8: 0x6cc36e20, 0x19db9: 0x6ccbce20, 0x19dba: 0x6c22b220, 0x19dbb: 0x6c787a20,
-	0x19dbc: 0x6c6a7620, 0x19dbd: 0x6c4b2a20, 0x19dbe: 0x6c22b420, 0x19dbf: 0x6c4b2c20,
-	// Block 0x677, offset 0x19dc0
-	0x19dc0: 0x6c764620, 0x19dc1: 0x6c34cc20, 0x19dc2: 0x6c619020, 0x19dc3: 0x6ce3d820,
-	0x19dc4: 0x6c6e1420, 0x19dc5: 0x6c907c20, 0x19dc6: 0x6c95a620, 0x19dc7: 0x6d2ab220,
-	0x19dc8: 0x6d24cc20, 0x19dc9: 0x6c260c20, 0x19dca: 0x6d08da20, 0x19dcb: 0x6c788220,
-	0x19dcc: 0x6c7e5a20, 0x19dcd: 0x6cb97820, 0x19dce: 0x6ccbd020, 0x19dcf: 0x6c20a420,
-	0x19dd0: 0x6c489420, 0x19dd1: 0x6c665820, 0x19dd2: 0x6c261020, 0x19dd3: 0x6c83aa20,
-	0x19dd4: 0x6ce2e820, 0x19dd5: 0x6c3a9620, 0x19dd6: 0x6cb3c620, 0x19dd7: 0x6c15a020,
-	0x19dd8: 0x6cb59c20, 0x19dd9: 0x6c20a620, 0x19dda: 0x6d3f3820, 0x19ddb: 0x6c426c20,
-	0x19ddc: 0x6cec8420, 0x19ddd: 0x6c0e5a20, 0x19dde: 0x6c5e9e20, 0x19ddf: 0x6c342220,
-	0x19de0: 0x6cbe7220, 0x19de1: 0x6ccd7420, 0x19de2: 0x6c316620, 0x19de3: 0x6c666a20,
-	0x19de4: 0x6c61c220, 0x19de5: 0x6c0e5c20, 0x19de6: 0x6d0be220, 0x19de7: 0x6c722820,
-	0x19de8: 0x6c5d5420, 0x19de9: 0x6cd16220, 0x19dea: 0x6c658420, 0x19deb: 0x6c344420,
-	0x19dec: 0x6c329620, 0x19ded: 0x6cf36220, 0x19dee: 0x6c489820, 0x19def: 0x6c3fe220,
-	0x19df0: 0x6cd15a20, 0x19df1: 0x6c667420, 0x19df2: 0x6c438c20, 0x19df3: 0x6c269420,
-	0x19df4: 0x6c765420, 0x19df5: 0x6c20aa20, 0x19df6: 0x6c1fe220, 0x19df7: 0x6c15bc20,
-	0x19df8: 0x6ce94e20, 0x19df9: 0x6c926220, 0x19dfa: 0x6c83de20, 0x19dfb: 0x6caf0a20,
-	0x19dfc: 0x6ccce820, 0x19dfd: 0x6cb15620, 0x19dfe: 0x6c79bc20, 0x19dff: 0x6c690220,
-	// Block 0x678, offset 0x19e00
-	0x19e00: 0x6c486620, 0x19e01: 0x6cbb8a20, 0x19e02: 0x6c747220, 0x19e03: 0x6c57a820,
-	0x19e04: 0x6d2be620, 0x19e05: 0x6d3df620, 0x19e06: 0x6c882a20, 0x19e07: 0x6c727420,
-	0x19e08: 0x6caf8420, 0x19e09: 0x6c8e8020, 0x19e0a: 0x6c4b5e20, 0x19e0b: 0x6c692220,
-	0x19e0c: 0x6c4b6020, 0x19e0d: 0x6c66b020, 0x19e0e: 0x6c66b220, 0x19e0f: 0x6ce0c820,
-	0x19e10: 0x6c5d5a20, 0x19e11: 0x6c627220, 0x19e12: 0x6c66cc20, 0x19e13: 0x6d187e20,
-	0x19e14: 0x6c66ce20, 0x19e15: 0x6d370020, 0x19e16: 0x6c154220, 0x19e17: 0x6c662020,
-	0x19e18: 0x6ca09820, 0x19e19: 0x6c84c820, 0x19e1a: 0x6d3a8c20, 0x19e1b: 0x6c855c20,
-	0x19e1c: 0x6d0b6220, 0x19e1d: 0x6cc36c20, 0x19e1e: 0x6c04da20, 0x19e1f: 0x6c455420,
-	0x19e20: 0x6c631620, 0x19e21: 0x6cf55220, 0x19e22: 0x6c971e20, 0x19e23: 0x6c8abe20,
-	0x19e24: 0x6c6cce20, 0x19e25: 0x6c792020, 0x19e26: 0x6d006420, 0x19e27: 0x6d34d220,
-	0x19e28: 0x6c304c20, 0x19e29: 0x6d3aa020, 0x19e2a: 0x6caa4a20, 0x19e2b: 0x6c6a6820,
-	0x19e2c: 0x6cc17420, 0x19e2d: 0x6ccec020, 0x19e2e: 0x6d167620, 0x19e2f: 0x6d398020,
-	0x19e30: 0x6ca0c020, 0x19e31: 0x6c857a20, 0x19e32: 0x6c6cd020, 0x19e33: 0x6c813e20,
-	0x19e34: 0x6c814020, 0x19e35: 0x6c733e20, 0x19e36: 0x6c79ce20, 0x19e37: 0x6d0f8620,
-	0x19e38: 0x6cebc620, 0x19e39: 0x6cffd420, 0x19e3a: 0x6ca1c220, 0x19e3b: 0x6c7b8420,
-	0x19e3c: 0x6c6a7a20, 0x19e3d: 0x6c8aca20, 0x19e3e: 0x6c50ba20, 0x19e3f: 0x6cd31420,
-	// Block 0x679, offset 0x19e40
-	0x19e40: 0x6c788420, 0x19e41: 0x6c6ce020, 0x19e42: 0x6c433620, 0x19e43: 0x6c0ec220,
-	0x19e44: 0x6c9f9820, 0x19e45: 0x6c1bf420, 0x19e46: 0x6c80a020, 0x19e47: 0x6d1e1820,
-	0x19e48: 0x6d1e1a20, 0x19e49: 0x6c9e0c20, 0x19e4a: 0x6c788620, 0x19e4b: 0x6d099220,
-	0x19e4c: 0x6c734420, 0x19e4d: 0x6cbe7420, 0x19e4e: 0x6c922820, 0x19e4f: 0x6c107c20,
-	0x19e50: 0x6c9bcc20, 0x19e51: 0x6c1c0420, 0x19e52: 0x6c823c20, 0x19e53: 0x6c768620,
-	0x19e54: 0x6c9e1a20, 0x19e55: 0x6c307220, 0x19e56: 0x6d06b420, 0x19e57: 0x6d06ba20,
-	0x19e58: 0x6c76a620, 0x19e59: 0x6cf55620, 0x19e5a: 0x6d175020, 0x19e5b: 0x6d099820,
-	0x19e5c: 0x6cf24a20, 0x19e5d: 0x6cd16420, 0x19e5e: 0x6c815620, 0x19e5f: 0x6ca28420,
-	0x19e60: 0x6c926420, 0x19e61: 0x6cb1b220, 0x19e62: 0x6cd39620, 0x19e63: 0x6c5ee220,
-	0x19e64: 0x6cbd7c20, 0x19e65: 0x6c67ee20, 0x19e66: 0x6c174c20, 0x19e67: 0x6cc37420,
-	0x19e68: 0x6cfe3e20, 0x19e69: 0x6d181c20, 0x19e6a: 0x6c747620, 0x19e6b: 0x6c385220,
-	0x19e6c: 0x6c72fa20, 0x19e6d: 0x6ce76620, 0x19e6e: 0x6c727620, 0x19e6f: 0x6c27f620,
-	0x19e70: 0x6d00d620, 0x19e71: 0x6c973820, 0x19e72: 0x6d09a420, 0x19e73: 0x6d09a820,
-	0x19e74: 0x6c940220, 0x19e75: 0x6c867020, 0x19e76: 0x6c184e20, 0x19e77: 0x6cc4e220,
-	0x19e78: 0x6cc37c20, 0x19e79: 0x6c059c20, 0x19e7a: 0x6cce9420, 0x19e7b: 0x6d277620,
-	0x19e7c: 0x6c6f4220, 0x19e7d: 0x6c062c20, 0x19e7e: 0x6c463220, 0x19e7f: 0x6cf49220,
-	// Block 0x67a, offset 0x19e80
-	0x19e80: 0x6d277820, 0x19e81: 0x6cf17820, 0x19e82: 0x6c0ade20, 0x19e83: 0x6c412220,
-	0x19e84: 0x6c412420, 0x19e85: 0x6c059e20, 0x19e86: 0x6c22f420, 0x19e87: 0x6d198a20,
-	0x19e88: 0x6d045020, 0x19e89: 0x6cae5020, 0x19e8a: 0x6c705020, 0x19e8b: 0x6ce20420,
-	0x19e8c: 0x6c43c620, 0x19e8d: 0x6cb42c20, 0x19e8e: 0x6c35f820, 0x19e8f: 0x6cad5a20,
-	0x19e90: 0x6c3e4820, 0x19e91: 0x6c458820, 0x19e92: 0x6c269620, 0x19e93: 0x6c6fee20,
-	0x19e94: 0x6cbef220, 0x19e95: 0x6c08aa20, 0x19e96: 0x6c577620, 0x19e97: 0x6c06c620,
-	0x19e98: 0x6ca4ea20, 0x19e99: 0x6cd41420, 0x19e9a: 0x6c397e20, 0x19e9b: 0x6c6fc620,
-	0x19e9c: 0x6d144c20, 0x19e9d: 0x6d288020, 0x19e9e: 0x6c67d020, 0x19e9f: 0x6c777820,
-	0x19ea0: 0x6c681820, 0x19ea1: 0x6c7b8020, 0x19ea2: 0x6c549220, 0x19ea3: 0x6cf98420,
-	0x19ea4: 0x6cc0ce20, 0x19ea5: 0x6c0b6820, 0x19ea6: 0x6c4ac620, 0x19ea7: 0x6cbc9c20,
-	0x19ea8: 0x6d29d020, 0x19ea9: 0x6c7b8a20, 0x19eaa: 0x6c3a4c20, 0x19eab: 0x6c54b420,
-	0x19eac: 0x6d224620, 0x19ead: 0x6c4aee20, 0x19eae: 0x6c7cf020, 0x19eaf: 0x6c5bd220,
-	0x19eb0: 0x6c27ea20, 0x19eb1: 0x6c4b5c20, 0x19eb2: 0x6c881a20, 0x19eb3: 0x6c882c20,
-	0x19eb4: 0x6cdb9420, 0x19eb5: 0x6c31c220, 0x19eb6: 0x6c703420, 0x19eb7: 0x6c74fa20,
-	0x19eb8: 0x6cf83420, 0x19eb9: 0x6cb04020, 0x19eba: 0x6cc0c420, 0x19ebb: 0x6d13c020,
-	0x19ebc: 0x6c77d420, 0x19ebd: 0x6d0d5220, 0x19ebe: 0x6c0b3220, 0x19ebf: 0x6ca68c20,
-	// Block 0x67b, offset 0x19ec0
-	0x19ec0: 0x6cc0f820, 0x19ec1: 0x6cd22420, 0x19ec2: 0x6d0a6020, 0x19ec3: 0x6cb88c20,
-	0x19ec4: 0x6ca75420, 0x19ec5: 0x6cc96220, 0x19ec6: 0x6d40a220, 0x19ec7: 0x6cd0d020,
-	0x19ec8: 0x6cf41620, 0x19ec9: 0x6c5b8420, 0x19eca: 0x6c04dc20, 0x19ecb: 0x6cd2fa20,
-	0x19ecc: 0x6cf83620, 0x19ecd: 0x6ced6a20, 0x19ece: 0x6c572420, 0x19ecf: 0x6d006620,
-	0x19ed0: 0x6ced6c20, 0x19ed1: 0x6c068e20, 0x19ed2: 0x6d40a820, 0x19ed3: 0x6d3cee20,
-	0x19ed4: 0x6d007020, 0x19ed5: 0x6c27ba20, 0x19ed6: 0x6c972820, 0x19ed7: 0x6ca3ea20,
-	0x19ed8: 0x6c27c020, 0x19ed9: 0x6c601220, 0x19eda: 0x6c0efe20, 0x19edb: 0x6cd67c20,
-	0x19edc: 0x6c100420, 0x19edd: 0x6c7bd420, 0x19ede: 0x6c0b6420, 0x19edf: 0x6c102a20,
-	0x19ee0: 0x6d2e4620, 0x19ee1: 0x6c761820, 0x19ee2: 0x6c913020, 0x19ee3: 0x6d1f9c20,
-	0x19ee4: 0x6c91b420, 0x19ee5: 0x6cf58420, 0x19ee6: 0x6c48a620, 0x19ee7: 0x6cf2d420,
-	0x19ee8: 0x6d017620, 0x19ee9: 0x6c6a4e20, 0x19eea: 0x6c6a5020, 0x19eeb: 0x6cf06820,
-	0x19eec: 0x6c01f020, 0x19eed: 0x6cbef420, 0x19eee: 0x6d338020, 0x19eef: 0x6c991e20,
-	0x19ef0: 0x6d1b3620, 0x19ef1: 0x6cee6620, 0x19ef2: 0x6ccec420, 0x19ef3: 0x6c5fd220,
-	0x19ef4: 0x6cc3a020, 0x19ef5: 0x6c948c20, 0x19ef6: 0x6c1b7c20, 0x19ef7: 0x6c731020,
-	0x19ef8: 0x6d016a20, 0x19ef9: 0x6d067e20, 0x19efa: 0x6c6c8620, 0x19efb: 0x6cc3a620,
-	0x19efc: 0x6cf4be20, 0x19efd: 0x6c5fec20, 0x19efe: 0x6c360a20, 0x19eff: 0x6cbe3a20,
-	// Block 0x67c, offset 0x19f00
-	0x19f00: 0x6cf63820, 0x19f01: 0x6cca6620, 0x19f02: 0x6c16e020, 0x19f03: 0x6cef8020,
-	0x19f04: 0x6c35c020, 0x19f05: 0x6ce62220, 0x19f06: 0x6c856020, 0x19f07: 0x6d300c20,
-	0x19f08: 0x6c4e4e20, 0x19f09: 0x6c856420, 0x19f0a: 0x6d0b4620, 0x19f0b: 0x6d0ac820,
-	0x19f0c: 0x6d0e3620, 0x19f0d: 0x6ccf3020, 0x19f0e: 0x6c2bca20, 0x19f0f: 0x6d2c7020,
-	0x19f10: 0x6cacf020, 0x19f11: 0x6d0b0c20, 0x19f12: 0x6c50bc20, 0x19f13: 0x6d0b1620,
-	0x19f14: 0x6d358220, 0x19f15: 0x6c12cc20, 0x19f16: 0x6cacf620, 0x19f17: 0x6ce31020,
-	0x19f18: 0x6c83a420, 0x19f19: 0x6ccf3820, 0x19f1a: 0x6c546020, 0x19f1b: 0x6ce63420,
-	0x19f1c: 0x6d416820, 0x19f1d: 0x6c261220, 0x19f1e: 0x6c3a9820, 0x19f1f: 0x6d254c20,
-	0x19f20: 0x6c12dc20, 0x19f21: 0x6d255e20, 0x19f22: 0x6cfd6a20, 0x19f23: 0x6d0d6420,
-	0x19f24: 0x6c860c20, 0x19f25: 0x6c744220, 0x19f26: 0x6ccc5020, 0x19f27: 0x6c2cca20,
-	0x19f28: 0x6c1e7c20, 0x19f29: 0x6c6ff020, 0x19f2a: 0x6c6c9620, 0x19f2b: 0x6c024620,
-	0x19f2c: 0x6c4b1020, 0x19f2d: 0x6d0e9020, 0x19f2e: 0x6cd80020, 0x19f2f: 0x6c862620,
-	0x19f30: 0x6c16f220, 0x19f31: 0x6c7faa20, 0x19f32: 0x6c864620, 0x19f33: 0x6d0cd020,
-	0x19f34: 0x6d0df620, 0x19f35: 0x6d25dc20, 0x19f36: 0x6cd7b420, 0x19f37: 0x6c455020,
-	0x19f38: 0x6c8b9c20, 0x19f39: 0x6cc73e20, 0x19f3a: 0x6cc25a20, 0x19f3b: 0x6cc25c20,
-	0x19f3c: 0x6c377c20, 0x19f3d: 0x6c82b020, 0x19f3e: 0x6c315e20, 0x19f3f: 0x6cfc7420,
-	// Block 0x67d, offset 0x19f40
-	0x19f40: 0x6d3b6e20, 0x19f41: 0x6cc9fa20, 0x19f42: 0x6c115a20, 0x19f43: 0x6c115e20,
-	0x19f44: 0x6c116020, 0x19f45: 0x6c116620, 0x19f46: 0x6c00b420, 0x19f47: 0x6c278620,
-	0x19f48: 0x6d200420, 0x19f49: 0x6c137220, 0x19f4a: 0x6c5fb820, 0x19f4b: 0x6d206820,
-	0x19f4c: 0x6cd6a020, 0x19f4d: 0x6c390020, 0x19f4e: 0x6cd42620, 0x19f4f: 0x6c48e420,
-	0x19f50: 0x6c035c20, 0x19f51: 0x6c37e220, 0x19f52: 0x6cc91020, 0x19f53: 0x6cd30820,
-	0x19f54: 0x6cd4a620, 0x19f55: 0x6d3d2a20, 0x19f56: 0x6cc23c20, 0x19f57: 0x6cd45220,
-	0x19f58: 0x6c0b7a20, 0x19f59: 0x6d068a20, 0x19f5a: 0x6c640420, 0x19f5b: 0x6cacaa20,
-	0x19f5c: 0x6cda0c20, 0x19f5d: 0x6c433820, 0x19f5e: 0x6cf08020, 0x19f5f: 0x6cda0e20,
-	0x19f60: 0x6c2ebc20, 0x19f61: 0x6cc8e220, 0x19f62: 0x6c23bc20, 0x19f63: 0x6c79c820,
-	0x19f64: 0x6c475020, 0x19f65: 0x6c71ea20, 0x19f66: 0x6c8e1a20, 0x19f67: 0x6c488a20,
-	0x19f68: 0x6c29b420, 0x19f69: 0x6c79d420, 0x19f6a: 0x6d34ce20, 0x19f6b: 0x6c697a20,
-	0x19f6c: 0x6d2f9420, 0x19f6d: 0x6c03e820, 0x19f6e: 0x6c2f4420, 0x19f6f: 0x6c785220,
-	0x19f70: 0x6cdf0e20, 0x19f71: 0x6c1bd620, 0x19f72: 0x6cd2a420, 0x19f73: 0x6d200820,
-	0x19f74: 0x6cbfee20, 0x19f75: 0x6cb34620, 0x19f76: 0x6d12ba20, 0x19f77: 0x6c500e20,
-	0x19f78: 0x6cd7bc20, 0x19f79: 0x6ce08a20, 0x19f7a: 0x6c1b7220, 0x19f7b: 0x6c820a20,
-	0x19f7c: 0x6c2daa20, 0x19f7d: 0x6c5e6c20, 0x19f7e: 0x6c8a5c20, 0x19f7f: 0x6c529020,
-	// Block 0x67e, offset 0x19f80
-	0x19f80: 0x6c9ebe20, 0x19f81: 0x6d056020, 0x19f82: 0x6c982420, 0x19f83: 0x6c1a9020,
-	0x19f84: 0x6c447c20, 0x19f85: 0x6d077820, 0x19f86: 0x6d108620, 0x19f87: 0x6d3ed820,
-	0x19f88: 0x6c50b620, 0x19f89: 0x6c5fc220, 0x19f8a: 0x6c2e0820, 0x19f8b: 0x6c25b220,
-	0x19f8c: 0x6ce70c20, 0x19f8d: 0x6c9fe620, 0x19f8e: 0x6c545a20, 0x19f8f: 0x6c856e20,
-	0x19f90: 0x6ce91620, 0x19f91: 0x6cfe1620, 0x19f92: 0x6d2bc220, 0x19f93: 0x6cfa2a20,
-	0x19f94: 0x6d12a020, 0x19f95: 0x6c937420, 0x19f96: 0x6d0aca20, 0x19f97: 0x6c96ee20,
-	0x19f98: 0x6cab7420, 0x19f99: 0x6c5d5220, 0x19f9a: 0x6d13c220, 0x19f9b: 0x6c755420,
-	0x19f9c: 0x6c1e1c20, 0x19f9d: 0x6c8c4420, 0x19f9e: 0x6cea1620, 0x19f9f: 0x6d1a2420,
-	0x19fa0: 0x6c3a7e20, 0x19fa1: 0x6c08b820, 0x19fa2: 0x6cbdfe20, 0x19fa3: 0x6cbe0020,
-	0x19fa4: 0x6c6ba820, 0x19fa5: 0x6c105c20, 0x19fa6: 0x6c3d1c20, 0x19fa7: 0x6c03ea20,
-	0x19fa8: 0x6c339620, 0x19fa9: 0x6c3b0c20, 0x19faa: 0x6c354820, 0x19fab: 0x6c4dce20,
-	0x19fac: 0x6ce62c20, 0x19fad: 0x6c792420, 0x19fae: 0x6cd74620, 0x19faf: 0x6cb6d020,
-	0x19fb0: 0x6c52f020, 0x19fb1: 0x6d338620, 0x19fb2: 0x6d1aca20, 0x19fb3: 0x6cf3a020,
-	0x19fb4: 0x6cf3a220, 0x19fb5: 0x6c178c20, 0x19fb6: 0x6ca55820, 0x19fb7: 0x6d093c20,
-	0x19fb8: 0x6cf56a20, 0x19fb9: 0x6c20b420, 0x19fba: 0x6c309e20, 0x19fbb: 0x6cf1c820,
-	0x19fbc: 0x6c544820, 0x19fbd: 0x6c529220, 0x19fbe: 0x6cf3a420, 0x19fbf: 0x6c433220,
-	// Block 0x67f, offset 0x19fc0
-	0x19fc0: 0x6d0bda20, 0x19fc1: 0x6c759420, 0x19fc2: 0x6c937620, 0x19fc3: 0x6c35d020,
-	0x19fc4: 0x6c43c020, 0x19fc5: 0x6c99ce20, 0x19fc6: 0x6c270420, 0x19fc7: 0x6cb6d220,
-	0x19fc8: 0x6c19b620, 0x19fc9: 0x6cf3a620, 0x19fca: 0x6c433420, 0x19fcb: 0x6c3d3820,
-	0x19fcc: 0x6c698020, 0x19fcd: 0x6c529420, 0x19fce: 0x6c1b7820, 0x19fcf: 0x6cd0da20,
-	0x19fd0: 0x6ca55a20, 0x19fd1: 0x6cea1820, 0x19fd2: 0x6c3f3220, 0x19fd3: 0x6d167820,
-	0x19fd4: 0x6c270620, 0x19fd5: 0x6cab7620, 0x19fd6: 0x6c857c20, 0x19fd7: 0x6c077620,
-	0x19fd8: 0x6d253820, 0x19fd9: 0x6c4c0e20, 0x19fda: 0x6cf21a20, 0x19fdb: 0x6cba9c20,
-	0x19fdc: 0x6cf35020, 0x19fdd: 0x6c35da20, 0x19fde: 0x6cd19820, 0x19fdf: 0x6c731220,
-	0x19fe0: 0x6cae4620, 0x19fe1: 0x6cf1ce20, 0x19fe2: 0x6ca55c20, 0x19fe3: 0x6c965a20,
-	0x19fe4: 0x6c8e1c20, 0x19fe5: 0x6cc46020, 0x19fe6: 0x6d1e9420, 0x19fe7: 0x6c2bd420,
-	0x19fe8: 0x6d385a20, 0x19fe9: 0x6cd31620, 0x19fea: 0x6d38fa20, 0x19feb: 0x6ce60e20,
-	0x19fec: 0x6cf84420, 0x19fed: 0x6d16a820, 0x19fee: 0x6cb74220, 0x19fef: 0x6cb27420,
-	0x19ff0: 0x6d3ef420, 0x19ff1: 0x6c46ea20, 0x19ff2: 0x6c21f420, 0x19ff3: 0x6cf07220,
-	0x19ff4: 0x6d062a20, 0x19ff5: 0x6c000420, 0x19ff6: 0x6ca49220, 0x19ff7: 0x6c40be20,
-	0x19ff8: 0x6cadac20, 0x19ff9: 0x6d16aa20, 0x19ffa: 0x6cfe8220, 0x19ffb: 0x6ccfa820,
-	0x19ffc: 0x6c549820, 0x19ffd: 0x6ca04020, 0x19ffe: 0x6c267a20, 0x19fff: 0x6cc26220,
-	// Block 0x680, offset 0x1a000
-	0x1a000: 0x6c71a220, 0x1a001: 0x6c4dd420, 0x1a002: 0x6d288820, 0x1a003: 0x6ceaa820,
-	0x1a004: 0x6c341a20, 0x1a005: 0x6cb3ec20, 0x1a006: 0x6cad4620, 0x1a007: 0x6c0cdc20,
-	0x1a008: 0x6c3de020, 0x1a009: 0x6d0f4420, 0x1a00a: 0x6c50be20, 0x1a00b: 0x6d28e820,
-	0x1a00c: 0x6c50c020, 0x1a00d: 0x6c4d0c20, 0x1a00e: 0x6c6fd420, 0x1a00f: 0x6d1e1220,
-	0x1a010: 0x6c40aa20, 0x1a011: 0x6c264020, 0x1a012: 0x6d38fc20, 0x1a013: 0x6cec1220,
-	0x1a014: 0x6c760c20, 0x1a015: 0x6c483220, 0x1a016: 0x6c760e20, 0x1a017: 0x6d42b820,
-	0x1a018: 0x6c106020, 0x1a019: 0x6c8f6a20, 0x1a01a: 0x6c2fda20, 0x1a01b: 0x6ca8f420,
-	0x1a01c: 0x6cdefe20, 0x1a01d: 0x6cd7c820, 0x1a01e: 0x6cfc7820, 0x1a01f: 0x6c5da420,
-	0x1a020: 0x6cb75020, 0x1a021: 0x6c37c020, 0x1a022: 0x6c35e420, 0x1a023: 0x6c49da20,
-	0x1a024: 0x6d2cb220, 0x1a025: 0x6cf85420, 0x1a026: 0x6d148a20, 0x1a027: 0x6c8b9220,
-	0x1a028: 0x6d3e0a20, 0x1a029: 0x6c9ec020, 0x1a02a: 0x6c9c2e20, 0x1a02b: 0x6d34fa20,
-	0x1a02c: 0x6d119420, 0x1a02d: 0x6c5e9220, 0x1a02e: 0x6d390a20, 0x1a02f: 0x6c437820,
-	0x1a030: 0x6cd5a820, 0x1a031: 0x6d295e20, 0x1a032: 0x6cffd620, 0x1a033: 0x6c4d0e20,
-	0x1a034: 0x6c5a8e20, 0x1a035: 0x6c7ad420, 0x1a036: 0x6c580c20, 0x1a037: 0x6ce20820,
-	0x1a038: 0x6cfb3020, 0x1a039: 0x6c35e620, 0x1a03a: 0x6d084220, 0x1a03b: 0x6d04ba20,
-	0x1a03c: 0x6c4c1020, 0x1a03d: 0x6d0e4220, 0x1a03e: 0x6c81a020, 0x1a03f: 0x6d13ce20,
-	// Block 0x681, offset 0x1a040
-	0x1a040: 0x6c001620, 0x1a041: 0x6cb23820, 0x1a042: 0x6cd04a20, 0x1a043: 0x6ce72020,
-	0x1a044: 0x6c529a20, 0x1a045: 0x6d045c20, 0x1a046: 0x6c341c20, 0x1a047: 0x6cec4c20,
-	0x1a048: 0x6c4cf820, 0x1a049: 0x6d28f820, 0x1a04a: 0x6d201e20, 0x1a04b: 0x6c2f3020,
-	0x1a04c: 0x6cac1c20, 0x1a04d: 0x6cfddc20, 0x1a04e: 0x6c001420, 0x1a04f: 0x6c449c20,
-	0x1a050: 0x6c7b8c20, 0x1a051: 0x6d0b4a20, 0x1a052: 0x6c264220, 0x1a053: 0x6cfe8a20,
-	0x1a054: 0x6c094220, 0x1a055: 0x6c5b9620, 0x1a056: 0x6ca77420, 0x1a057: 0x6c570a20,
-	0x1a058: 0x6d044220, 0x1a059: 0x6c7b1820, 0x1a05a: 0x6c347620, 0x1a05b: 0x6c3b1c20,
-	0x1a05c: 0x6c619c20, 0x1a05d: 0x6ca9b220, 0x1a05e: 0x6ca1ba20, 0x1a05f: 0x6d1d7620,
-	0x1a060: 0x6c502420, 0x1a061: 0x6d254e20, 0x1a062: 0x6c905620, 0x1a063: 0x6cb3ee20,
-	0x1a064: 0x6c984820, 0x1a065: 0x6c438020, 0x1a066: 0x6cab2820, 0x1a067: 0x6c1a9a20,
-	0x1a068: 0x6ccece20, 0x1a069: 0x6c87dc20, 0x1a06a: 0x6ca2f420, 0x1a06b: 0x6d40ae20,
-	0x1a06c: 0x6c50ea20, 0x1a06d: 0x6c7a3420, 0x1a06e: 0x6cfe9220, 0x1a06f: 0x6cfc9a20,
-	0x1a070: 0x6c814820, 0x1a071: 0x6c0e5e20, 0x1a072: 0x6d302c20, 0x1a073: 0x6d2bd020,
-	0x1a074: 0x6c89ac20, 0x1a075: 0x6c033620, 0x1a076: 0x6c9ec220, 0x1a077: 0x6c8ae220,
-	0x1a078: 0x6cdbb420, 0x1a079: 0x6c3e2a20, 0x1a07a: 0x6c103420, 0x1a07b: 0x6c4e9020,
-	0x1a07c: 0x6c524620, 0x1a07d: 0x6c44f220, 0x1a07e: 0x6cd76820, 0x1a07f: 0x6c447420,
-	// Block 0x682, offset 0x1a080
-	0x1a080: 0x6d203620, 0x1a081: 0x6d0e4c20, 0x1a082: 0x6c46fc20, 0x1a083: 0x6c477020,
-	0x1a084: 0x6c077820, 0x1a085: 0x6c4dec20, 0x1a086: 0x6cdd0c20, 0x1a087: 0x6c213820,
-	0x1a088: 0x6d171c20, 0x1a089: 0x6c001820, 0x1a08a: 0x6c63ae20, 0x1a08b: 0x6ce84620,
-	0x1a08c: 0x6cfb3220, 0x1a08d: 0x6cecf620, 0x1a08e: 0x6c85c420, 0x1a08f: 0x6cf5b220,
-	0x1a090: 0x6ce0e820, 0x1a091: 0x6d428a20, 0x1a092: 0x6cc02420, 0x1a093: 0x6c17d420,
-	0x1a094: 0x6cf3ac20, 0x1a095: 0x6d2a6e20, 0x1a096: 0x6d0b4c20, 0x1a097: 0x6c30a420,
-	0x1a098: 0x6cb6e420, 0x1a099: 0x6c2b6020, 0x1a09a: 0x6cbe0c20, 0x1a09b: 0x6c96ba20,
-	0x1a09c: 0x6ca0ee20, 0x1a09d: 0x6c461220, 0x1a09e: 0x6c30e620, 0x1a09f: 0x6cc26c20,
-	0x1a0a0: 0x6c814a20, 0x1a0a1: 0x6c898c20, 0x1a0a2: 0x6cdd5420, 0x1a0a3: 0x6d2a7020,
-	0x1a0a4: 0x6c58fe20, 0x1a0a5: 0x6c813620, 0x1a0a6: 0x6ccbd620, 0x1a0a7: 0x6c5ea020,
-	0x1a0a8: 0x6d426820, 0x1a0a9: 0x6cf28420, 0x1a0aa: 0x6c3cca20, 0x1a0ab: 0x6c6cfc20,
-	0x1a0ac: 0x6c56fc20, 0x1a0ad: 0x6cb77620, 0x1a0ae: 0x6cd45c20, 0x1a0af: 0x6ceefa20,
-	0x1a0b0: 0x6cd64420, 0x1a0b1: 0x6c171020, 0x1a0b2: 0x6c374e20, 0x1a0b3: 0x6c85e620,
-	0x1a0b4: 0x6cbb5620, 0x1a0b5: 0x6c017e20, 0x1a0b6: 0x6d2ab620, 0x1a0b7: 0x6d1d7820,
-	0x1a0b8: 0x6ca75e20, 0x1a0b9: 0x6d208420, 0x1a0ba: 0x6ce4e620, 0x1a0bb: 0x6c7f4420,
-	0x1a0bc: 0x6ccc4220, 0x1a0bd: 0x6cf5d820, 0x1a0be: 0x6ceba020, 0x1a0bf: 0x6c54b820,
-	// Block 0x683, offset 0x1a0c0
-	0x1a0c0: 0x6c003c20, 0x1a0c1: 0x6d2f6420, 0x1a0c2: 0x6caa1420, 0x1a0c3: 0x6c790220,
-	0x1a0c4: 0x6d3d4420, 0x1a0c5: 0x6d3d4620, 0x1a0c6: 0x6cce0220, 0x1a0c7: 0x6c2c3a20,
-	0x1a0c8: 0x6c524a20, 0x1a0c9: 0x6c8ba820, 0x1a0ca: 0x6c001020, 0x1a0cb: 0x6c112220,
-	0x1a0cc: 0x6cfd6c20, 0x1a0cd: 0x6cea1e20, 0x1a0ce: 0x6cf43e20, 0x1a0cf: 0x6cf20620,
-	0x1a0d0: 0x6c253020, 0x1a0d1: 0x6ccc4420, 0x1a0d2: 0x6c477a20, 0x1a0d3: 0x6cb6ec20,
-	0x1a0d4: 0x6cb6ee20, 0x1a0d5: 0x6ce21620, 0x1a0d6: 0x6c287420, 0x1a0d7: 0x6c287620,
-	0x1a0d8: 0x6d12e620, 0x1a0d9: 0x6d3f1020, 0x1a0da: 0x6c08d820, 0x1a0db: 0x6c253220,
-	0x1a0dc: 0x6c1fc220, 0x1a0dd: 0x6c510220, 0x1a0de: 0x6d0b5020, 0x1a0df: 0x6cb6f420,
-	0x1a0e0: 0x6d304820, 0x1a0e1: 0x6c39f620, 0x1a0e2: 0x6c898e20, 0x1a0e3: 0x6cfb5820,
-	0x1a0e4: 0x6cafd820, 0x1a0e5: 0x6ccc4620, 0x1a0e6: 0x6c7ed420, 0x1a0e7: 0x6d2ab820,
-	0x1a0e8: 0x6d1baa20, 0x1a0e9: 0x6c48ae20, 0x1a0ea: 0x6cabc220, 0x1a0eb: 0x6d30d620,
-	0x1a0ec: 0x6ccb2020, 0x1a0ed: 0x6d3bc220, 0x1a0ee: 0x6ca81020, 0x1a0ef: 0x6c4cf620,
-	0x1a0f0: 0x6c953020, 0x1a0f1: 0x6d0bf020, 0x1a0f2: 0x6c2c3c20, 0x1a0f3: 0x6cc2d220,
-	0x1a0f4: 0x6c15a420, 0x1a0f5: 0x6c100620, 0x1a0f6: 0x6c2fa020, 0x1a0f7: 0x6c809e20,
-	0x1a0f8: 0x6cffe420, 0x1a0f9: 0x6c710c20, 0x1a0fa: 0x6ce0f220, 0x1a0fb: 0x6c1c1a20,
-	0x1a0fc: 0x6ce31e20, 0x1a0fd: 0x6c016c20, 0x1a0fe: 0x6c6f7020, 0x1a0ff: 0x6c288620,
-	// Block 0x684, offset 0x1a100
-	0x1a100: 0x6c761020, 0x1a101: 0x6d1df420, 0x1a102: 0x6cf08a20, 0x1a103: 0x6ca3fc20,
-	0x1a104: 0x6ccd8a20, 0x1a105: 0x6d232a20, 0x1a106: 0x6d305820, 0x1a107: 0x6c7e6220,
-	0x1a108: 0x6c6a0820, 0x1a109: 0x6c53f820, 0x1a10a: 0x6c4e5820, 0x1a10b: 0x6c2e9820,
-	0x1a10c: 0x6d388220, 0x1a10d: 0x6c147e20, 0x1a10e: 0x6cec5220, 0x1a10f: 0x6caaec20,
-	0x1a110: 0x6d230020, 0x1a111: 0x6d19d820, 0x1a112: 0x6d28b820, 0x1a113: 0x6d10a220,
-	0x1a114: 0x6cab2420, 0x1a115: 0x6c9e2020, 0x1a116: 0x6c555220, 0x1a117: 0x6d27e820,
-	0x1a118: 0x6c201e20, 0x1a119: 0x6c5bbc20, 0x1a11a: 0x6c591a20, 0x1a11b: 0x6c591c20,
-	0x1a11c: 0x6cf7e620, 0x1a11d: 0x6c509c20, 0x1a11e: 0x6c5ec220, 0x1a11f: 0x6c7cf420,
-	0x1a120: 0x6d37ee20, 0x1a121: 0x6cef0620, 0x1a122: 0x6ccc5220, 0x1a123: 0x6d06cc20,
-	0x1a124: 0x6c59ba20, 0x1a125: 0x6c344a20, 0x1a126: 0x6ca82620, 0x1a127: 0x6d079020,
-	0x1a128: 0x6c89b420, 0x1a129: 0x6d232c20, 0x1a12a: 0x6cca9e20, 0x1a12b: 0x6c1aae20,
-	0x1a12c: 0x6cbbe020, 0x1a12d: 0x6d0e6a20, 0x1a12e: 0x6c27dc20, 0x1a12f: 0x6cae4a20,
-	0x1a130: 0x6c116820, 0x1a131: 0x6c83d020, 0x1a132: 0x6d1d7a20, 0x1a133: 0x6d2bd620,
-	0x1a134: 0x6cee7c20, 0x1a135: 0x6c9e6c20, 0x1a136: 0x6d1c6220, 0x1a137: 0x6cae3220,
-	0x1a138: 0x6c103820, 0x1a139: 0x6c7c7420, 0x1a13a: 0x6cf88420, 0x1a13b: 0x6d232e20,
-	0x1a13c: 0x6c6ac420, 0x1a13d: 0x6c912820, 0x1a13e: 0x6c7a9620, 0x1a13f: 0x6d2a8220,
-	// Block 0x685, offset 0x1a140
-	0x1a140: 0x6c56a220, 0x1a141: 0x6ce33c20, 0x1a142: 0x6d110420, 0x1a143: 0x6c51ca20,
-	0x1a144: 0x6c000e20, 0x1a145: 0x6d054220, 0x1a146: 0x6cbabe20, 0x1a147: 0x6ccb2e20,
-	0x1a148: 0x6d1d8a20, 0x1a149: 0x6cdabe20, 0x1a14a: 0x6c53a620, 0x1a14b: 0x6d00b220,
-	0x1a14c: 0x6c00a220, 0x1a14d: 0x6cdd2420, 0x1a14e: 0x6c96f020, 0x1a14f: 0x6c139620,
-	0x1a150: 0x6c4d6c20, 0x1a151: 0x6c780420, 0x1a152: 0x6c264c20, 0x1a153: 0x6cca7e20,
-	0x1a154: 0x6c187220, 0x1a155: 0x6cc81820, 0x1a156: 0x6cd9aa20, 0x1a157: 0x6cebdc20,
-	0x1a158: 0x6c5ee420, 0x1a159: 0x6cad1c20, 0x1a15a: 0x6cf36e20, 0x1a15b: 0x6cba1020,
-	0x1a15c: 0x6cd39820, 0x1a15d: 0x6c440020, 0x1a15e: 0x6d3e3220, 0x1a15f: 0x6c6a0a20,
-	0x1a160: 0x6c960c20, 0x1a161: 0x6cf22820, 0x1a162: 0x6cec3420, 0x1a163: 0x6cd8c820,
-	0x1a164: 0x6c1ab420, 0x1a165: 0x6c4fca20, 0x1a166: 0x6cddd820,
-	0x1a168: 0x6c4d1620, 0x1a169: 0x6cdd7020, 0x1a16a: 0x6cbd7e20, 0x1a16b: 0x6ca83820,
-	0x1a16c: 0x6c50a020, 0x1a16d: 0x6d347020, 0x1a16e: 0x6cc9e220, 0x1a16f: 0x6ca2c620,
-	0x1a170: 0x6c448a20, 0x1a171: 0x6ca2e420, 0x1a172: 0x6c2cb820, 0x1a173: 0x6c002c20,
-	0x1a174: 0x6cbb6220, 0x1a175: 0x6ce6f620, 0x1a176: 0x6c09c220, 0x1a177: 0x6c024a20,
-	0x1a178: 0x6c024c20, 0x1a179: 0x6c880c20, 0x1a17a: 0x6d417420, 0x1a17b: 0x6d300020,
-	0x1a17c: 0x6ca12420, 0x1a17d: 0x6cda4620, 0x1a17e: 0x6cda2020, 0x1a17f: 0x6ce06820,
-	// Block 0x686, offset 0x1a180
-	0x1a180: 0x6c2b7820, 0x1a181: 0x6cb50820, 0x1a182: 0x6c69aa20, 0x1a183: 0x6c1cd020,
-	0x1a184: 0x6c685a20, 0x1a185: 0x6c765620, 0x1a186: 0x6ce0a020, 0x1a187: 0x6cccf820,
-	0x1a188: 0x6c127820, 0x1a189: 0x6c637620, 0x1a18a: 0x6c004620, 0x1a18b: 0x6cfee620,
-	0x1a18c: 0x6cb1b420, 0x1a18d: 0x6c912a20, 0x1a18e: 0x6c40c020, 0x1a18f: 0x6c47aa20,
-	0x1a190: 0x6cfee820, 0x1a191: 0x6c54e220, 0x1a192: 0x6c5bf220, 0x1a193: 0x6c4c2c20,
-	0x1a194: 0x6cab8220, 0x1a195: 0x6cfabc20, 0x1a196: 0x6d2ad820, 0x1a197: 0x6c16b420,
-	0x1a198: 0x6d05b820, 0x1a199: 0x6cb32e20, 0x1a19a: 0x6c2a5c20, 0x1a19b: 0x6c96f420,
-	0x1a19c: 0x6c96ca20, 0x1a19d: 0x6c557820, 0x1a19e: 0x6c836c20, 0x1a19f: 0x6c317220,
-	0x1a1a0: 0x6c40c220, 0x1a1a1: 0x6ce0c420, 0x1a1a2: 0x6d12ae20, 0x1a1a3: 0x6c07fe20,
-	0x1a1a4: 0x6d1bcc20, 0x1a1a5: 0x6cc9f020, 0x1a1a6: 0x6c69ac20, 0x1a1a7: 0x6c9d6420,
-	0x1a1a8: 0x6cfffc20, 0x1a1a9: 0x6c571220, 0x1a1aa: 0x6c971620, 0x1a1ab: 0x6cc48020,
-	0x1a1ac: 0x6c1fc420, 0x1a1ad: 0x6cae7e20, 0x1a1ae: 0x6c816420, 0x1a1af: 0x6d000420,
-	0x1a1b0: 0x6c5f1020, 0x1a1b1: 0x6d3a7c20, 0x1a1b2: 0x6c177020, 0x1a1b3: 0x6c7d0820,
-	0x1a1b4: 0x6d419820, 0x1a1b5: 0x6cfefe20, 0x1a1b6: 0x6cd80c20, 0x1a1b7: 0x6c4fdc20,
-	0x1a1b8: 0x6c3f7e20, 0x1a1b9: 0x6c8a0020, 0x1a1ba: 0x6cbbe820, 0x1a1bb: 0x6cf68e20,
-	0x1a1bc: 0x6c1f6a20, 0x1a1bd: 0x6c15d020, 0x1a1be: 0x6c28a420, 0x1a1bf: 0x6c521e20,
-	// Block 0x687, offset 0x1a1c0
-	0x1a1c0: 0x6d0aa020, 0x1a1c1: 0x6c35b620, 0x1a1c2: 0x6d420a20, 0x1a1c3: 0x6c385420,
-	0x1a1c4: 0x6c1acc20, 0x1a1c5: 0x6c5ae220, 0x1a1c6: 0x6d297220, 0x1a1c7: 0x6c207420,
-	0x1a1c8: 0x6c245220, 0x1a1c9: 0x6c289c20, 0x1a1ca: 0x6d23ba20, 0x1a1cb: 0x6cea2420,
-	0x1a1cc: 0x6c134a20, 0x1a1cd: 0x6c69b620, 0x1a1ce: 0x6d126220, 0x1a1cf: 0x6cf69020,
-	0x1a1d0: 0x6cb7be20, 0x1a1d1: 0x6c4fd020, 0x1a1d2: 0x6c882e20, 0x1a1d3: 0x6d05ca20,
-	0x1a1d4: 0x6c2aa420, 0x1a1d5: 0x6c5ae820, 0x1a1d6: 0x6d1a8c20, 0x1a1d7: 0x6cb40c20,
-	0x1a1d8: 0x6c73b220, 0x1a1d9: 0x6cbd9220, 0x1a1da: 0x6d0a2e20, 0x1a1db: 0x6ca85a20,
-	0x1a1dc: 0x6c912c20, 0x1a1dd: 0x6cd80e20, 0x1a1de: 0x6d0dd420, 0x1a1df: 0x6d1d4820,
-	0x1a1e0: 0x6c265e20, 0x1a1e1: 0x6d2d9420, 0x1a1e2: 0x6cab2620, 0x1a1e3: 0x6d394e20,
-	0x1a1e4: 0x6c6d4820, 0x1a1e5: 0x6ca9c420, 0x1a1e6: 0x6c5c2620, 0x1a1e7: 0x6d01f420,
-	0x1a1e8: 0x6cb7ce20, 0x1a1e9: 0x6c36a620, 0x1a1ea: 0x6d2a8e20, 0x1a1eb: 0x6d140e20,
-	0x1a1ec: 0x6cd3d620, 0x1a1ed: 0x6c69c220, 0x1a1ee: 0x6d263020, 0x1a1ef: 0x6c003420,
-	0x1a1f0: 0x6d1dac20, 0x1a1f1: 0x6c74b420, 0x1a1f2: 0x6c7b3820, 0x1a1f3: 0x6d228a20,
-	0x1a1f4: 0x6cae3420, 0x1a1f5: 0x6c2a2820, 0x1a1f6: 0x6c40c820, 0x1a1f7: 0x6c528e20,
-	0x1a1f8: 0x6c33aa20, 0x1a1f9: 0x6c290220, 0x1a1fa: 0x6d036420, 0x1a1fb: 0x6cc9cc20,
-	0x1a1fc: 0x6caf8e20, 0x1a1fd: 0x6cb07220, 0x1a1fe: 0x6d1a0e20, 0x1a1ff: 0x6d41a020,
-	// Block 0x688, offset 0x1a200
-	0x1a200: 0x6ca92020, 0x1a201: 0x6c2b9620, 0x1a202: 0x6c807820, 0x1a203: 0x6cddfa20,
-	0x1a204: 0x6c5d5e20, 0x1a205: 0x6cc7cc20, 0x1a206: 0x6c4fac20, 0x1a207: 0x6cfa4820,
-	0x1a208: 0x6d135220, 0x1a209: 0x6c343820, 0x1a20a: 0x6cb0be20, 0x1a20b: 0x6c1de020,
-	0x1a20c: 0x6c629020, 0x1a20d: 0x6c6d5620, 0x1a20e: 0x6c4fec20, 0x1a20f: 0x6ce42820,
-	0x1a210: 0x6c16ca20, 0x1a211: 0x6d0ac220, 0x1a212: 0x6c99c620, 0x1a213: 0x6c10d820,
-	0x1a214: 0x6ce43820, 0x1a215: 0x6c91e420, 0x1a216: 0x6c5c6420, 0x1a217: 0x6c0f8820,
-	0x1a218: 0x6d1eba20, 0x1a219: 0x6ca88620, 0x1a21a: 0x6d1a9e20, 0x1a21b: 0x6c56d620,
-	0x1a21c: 0x6c99ca20, 0x1a21d: 0x6c52d220, 0x1a21e: 0x6d30a820, 0x1a21f: 0x6c846c20,
-	0x1a220: 0x6c8eb220, 0x1a221: 0x6c4d8e20, 0x1a222: 0x6ca45620, 0x1a223: 0x6cff2e20,
-	0x1a224: 0x6ca08220, 0x1a225: 0x6d0ee620, 0x1a226: 0x6c86e820, 0x1a227: 0x6c916820,
-	0x1a228: 0x6c8fba20, 0x1a229: 0x6ca08c20, 0x1a22a: 0x6c28dc20, 0x1a22b: 0x6c193a20,
-	0x1a22c: 0x6cb21e20, 0x1a22d: 0x6cb07c20, 0x1a22e: 0x6cfe5c20, 0x1a22f: 0x6c5e2420,
-	0x1a230: 0x6ca08e20, 0x1a231: 0x6cf91e20, 0x1a232: 0x6c34c220, 0x1a233: 0x6c7ab220,
-	0x1a234: 0x6d0ce820, 0x1a235: 0x6c154e20, 0x1a236: 0x6d1c1820, 0x1a237: 0x6cc50420,
-	0x1a238: 0x6c2d3020, 0x1a239: 0x6c7ede20, 0x1a23a: 0x6cded620, 0x1a23b: 0x6cff4c20,
-	0x1a23c: 0x6c74fc20, 0x1a23d: 0x6c21e420, 0x1a23e: 0x6c583c20, 0x1a23f: 0x6c5e3c20,
-	// Block 0x689, offset 0x1a240
-	0x1a240: 0x6d3bfe20, 0x1a241: 0x6ca8aa20, 0x1a242: 0x6cff4e20, 0x1a243: 0x6c10ee20,
-	0x1a244: 0x6c84a420, 0x1a245: 0x6c161620, 0x1a246: 0x6c14a820, 0x1a247: 0x6c876020,
-	0x1a248: 0x6d194020, 0x1a249: 0x6c953620, 0x1a24a: 0x6ca45e20, 0x1a24b: 0x6d28dc20,
-	0x1a24c: 0x6cda6e20, 0x1a24d: 0x6cf82420, 0x1a24e: 0x6d2b7e20, 0x1a24f: 0x6c654e20,
-	0x1a250: 0x6d28de20, 0x1a251: 0x6d3a8e20, 0x1a252: 0x6c800620, 0x1a253: 0x6ca8c220,
-	0x1a254: 0x6ca45220, 0x1a255: 0x6c806220, 0x1a256: 0x6c8f6420, 0x1a257: 0x6ceed620,
-	0x1a258: 0x6c5b1220, 0x1a259: 0x6d199c20, 0x1a25a: 0x6cbff020, 0x1a25b: 0x6cd87420,
-	0x1a25c: 0x6ca8e220, 0x1a25d: 0x6c656220, 0x1a25e: 0x6c5b1420, 0x1a25f: 0x6d031420,
-	0x1a260: 0x6d199e20, 0x1a261: 0x6ca3dc20, 0x1a262: 0x6ce94420, 0x1a263: 0x6ce94620,
-	0x1a264: 0x6c33d620, 0x1a265: 0x6c777c20, 0x1a266: 0x6d24c620, 0x1a267: 0x6c6ef420,
-	0x1a268: 0x6cb0ec20, 0x1a269: 0x6d277c20, 0x1a26a: 0x6c22f620, 0x1a26b: 0x6c551c20,
-	0x1a26c: 0x6c5b1820, 0x1a26d: 0x6d253a20, 0x1a26e: 0x6c354a20, 0x1a26f: 0x6c4c5620,
-	0x1a270: 0x6c7dca20, 0x1a271: 0x6c22f820, 0x1a272: 0x6ce6ee20, 0x1a273: 0x6ce88420,
-	0x1a274: 0x6ceedc20, 0x1a275: 0x6c94d820, 0x1a276: 0x6c4c5a20, 0x1a277: 0x6cc43020,
-	0x1a278: 0x6cc64020, 0x1a279: 0x6c8c9e20, 0x1a27a: 0x6c47fe20, 0x1a27b: 0x6c4c5c20,
-	0x1a27c: 0x6cdf0020, 0x1a27d: 0x6c4c5e20, 0x1a27e: 0x6ce88820, 0x1a27f: 0x6d202020,
-	// Block 0x68a, offset 0x1a280
-	0x1a280: 0x6c4c6220, 0x1a281: 0x6d1a4220, 0x1a282: 0x6c5d2020, 0x1a283: 0x6cb48620,
-	0x1a284: 0x6d223820, 0x1a285: 0x6c4dee20, 0x1a286: 0x6d255020, 0x1a287: 0x6c94ea20,
-	0x1a288: 0x6cc29620, 0x1a289: 0x6d224820, 0x1a28a: 0x6cbe3e20, 0x1a28b: 0x6c4c6620,
-	0x1a28c: 0x6c1ffa20, 0x1a28d: 0x6cef0820, 0x1a28e: 0x6d256020, 0x1a28f: 0x6cc29a20,
-	0x1a290: 0x6c7a4020, 0x1a291: 0x6c400a20, 0x1a292: 0x6d257420, 0x1a293: 0x6d257620,
-	0x1a294: 0x6d0bbc20, 0x1a295: 0x6ce8b620, 0x1a296: 0x6ce8d420, 0x1a297: 0x6ce8d620,
-	0x1a298: 0x6ce95020, 0x1a299: 0x6c94b820, 0x1a29a: 0x6c5c0c20, 0x1a29b: 0x6d188220,
-	0x1a29c: 0x6c589220, 0x1a29d: 0x6c944a20, 0x1a29e: 0x6c946e20, 0x1a29f: 0x6ce91020,
-	0x1a2a0: 0x6d0b6620, 0x1a2a1: 0x6ce91220, 0x1a2a2: 0x6ce6aa20, 0x1a2a3: 0x6cd15220,
-	0x1a2a4: 0x6cb48020, 0x1a2a5: 0x6c920c20, 0x1a2a6: 0x6c7b5020, 0x1a2a7: 0x6d0ac620,
-	0x1a2a8: 0x6d292820, 0x1a2a9: 0x6ceeda20, 0x1a2aa: 0x6c436620, 0x1a2ab: 0x6d22be20,
-	0x1a2ac: 0x6cf34020, 0x1a2ad: 0x6c4a3420, 0x1a2ae: 0x6cb04820, 0x1a2af: 0x6d145020,
-	0x1a2b0: 0x6c2a8a20, 0x1a2b1: 0x6cb89220, 0x1a2b2: 0x6cb89420, 0x1a2b3: 0x6d320e20,
-	0x1a2b4: 0x6d3d1a20, 0x1a2b5: 0x6c295220, 0x1a2b6: 0x6cb83e20, 0x1a2b7: 0x6cfa6220,
-	0x1a2b8: 0x6ccdf620, 0x1a2b9: 0x6c7bd820, 0x1a2ba: 0x6c16e220, 0x1a2bb: 0x6cb56e20,
-	0x1a2bc: 0x6ca7f220, 0x1a2bd: 0x6ca0c220, 0x1a2be: 0x6c5e7620, 0x1a2bf: 0x6c639820,
-	// Block 0x68b, offset 0x1a2c0
-	0x1a2c0: 0x6d34dc20, 0x1a2c1: 0x6d34de20, 0x1a2c2: 0x6c04b420, 0x1a2c3: 0x6d098e20,
-	0x1a2c4: 0x6d167a20, 0x1a2c5: 0x6cbdc620, 0x1a2c6: 0x6c99d020, 0x1a2c7: 0x6c755620,
-	0x1a2c8: 0x6cc6f220, 0x1a2c9: 0x6cea3c20, 0x1a2ca: 0x6c39e820, 0x1a2cb: 0x6c07a420,
-	0x1a2cc: 0x6c07a620, 0x1a2cd: 0x6cdf8820, 0x1a2ce: 0x6c76be20, 0x1a2cf: 0x6c580a20,
-	0x1a2d0: 0x6d427620, 0x1a2d1: 0x6c792620, 0x1a2d2: 0x6c091820, 0x1a2d3: 0x6c6e0a20,
-	0x1a2d4: 0x6c2c1220, 0x1a2d5: 0x6c6d8620, 0x1a2d6: 0x6c617c20, 0x1a2d7: 0x6c7b0c20,
-	0x1a2d8: 0x6c2bcc20, 0x1a2d9: 0x6c6d8820, 0x1a2da: 0x6c646220, 0x1a2db: 0x6cdfca20,
-	0x1a2dc: 0x6c857e20, 0x1a2dd: 0x6c03a620, 0x1a2de: 0x6cf4a420, 0x1a2df: 0x6c3b5020,
-	0x1a2e0: 0x6d3c7a20, 0x1a2e1: 0x6cb2f620, 0x1a2e2: 0x6c04e220, 0x1a2e3: 0x6ce0bc20,
-	0x1a2e4: 0x6c7d4a20, 0x1a2e5: 0x6cc0da20, 0x1a2e6: 0x6ce05220, 0x1a2e7: 0x6d339420,
-	0x1a2e8: 0x6ceaea20, 0x1a2e9: 0x6c417020, 0x1a2ea: 0x6cb27620, 0x1a2eb: 0x6c2d3a20,
-	0x1a2ec: 0x6c48a820, 0x1a2ed: 0x6ca5ba20, 0x1a2ee: 0x6cdf1420, 0x1a2ef: 0x6caf3020,
-	0x1a2f0: 0x6c6ed620, 0x1a2f1: 0x6d100020, 0x1a2f2: 0x6c3d0a20, 0x1a2f3: 0x6c02c420,
-	0x1a2f4: 0x6c921820, 0x1a2f5: 0x6cbf9c20, 0x1a2f6: 0x6ca22620, 0x1a2f7: 0x6c785420,
-	0x1a2f8: 0x6c469220, 0x1a2f9: 0x6d094020, 0x1a2fa: 0x6c036220, 0x1a2fb: 0x6c1b0420,
-	0x1a2fc: 0x6c180020, 0x1a2fd: 0x6c8ca020, 0x1a2fe: 0x6d3aaa20, 0x1a2ff: 0x6c3fb020,
-	// Block 0x68c, offset 0x1a300
-	0x1a300: 0x6c549a20, 0x1a301: 0x6d358420, 0x1a302: 0x6c20be20, 0x1a303: 0x6c7e3a20,
-	0x1a304: 0x6c902e20, 0x1a305: 0x6c903020, 0x1a306: 0x6c913820, 0x1a307: 0x6c02c620,
-	0x1a308: 0x6c272e20, 0x1a309: 0x6cad4820, 0x1a30a: 0x6c9fe220, 0x1a30b: 0x6d03ca20,
-	0x1a30c: 0x6c305620, 0x1a30d: 0x6c619e20, 0x1a30e: 0x6c51ba20, 0x1a30f: 0x6c93ce20,
-	0x1a310: 0x6c222820, 0x1a311: 0x6c1b8220, 0x1a312: 0x6c82ba20, 0x1a313: 0x6c40e420,
-	0x1a314: 0x6d19aa20, 0x1a315: 0x6c546220, 0x1a316: 0x6c32f420, 0x1a317: 0x6d2f9c20,
-	0x1a318: 0x6c3e0820, 0x1a319: 0x6c49dc20, 0x1a31a: 0x6d10d420, 0x1a31b: 0x6c347820,
-	0x1a31c: 0x6c347a20, 0x1a31d: 0x6c4ad020, 0x1a31e: 0x6c13ca20, 0x1a31f: 0x6d0f8e20,
-	0x1a320: 0x6d1a3820, 0x1a321: 0x6c37fe20, 0x1a322: 0x6c469a20, 0x1a323: 0x6d254420,
-	0x1a324: 0x6c2e6a20, 0x1a325: 0x6d007620, 0x1a326: 0x6c78fa20, 0x1a327: 0x6cce3220,
-	0x1a328: 0x6cd43e20, 0x1a329: 0x6c35ec20, 0x1a32a: 0x6c0e4020, 0x1a32b: 0x6c2d4020,
-	0x1a32c: 0x6c530c20, 0x1a32d: 0x6d0ad820, 0x1a32e: 0x6c7ad620, 0x1a32f: 0x6c26f820,
-	0x1a330: 0x6c762020, 0x1a331: 0x6c295a20, 0x1a332: 0x6c764a20, 0x1a333: 0x6c4f9e20,
-	0x1a334: 0x6ca4dc20, 0x1a335: 0x6c017820, 0x1a336: 0x6d036c20, 0x1a337: 0x6cfc9c20,
-	0x1a338: 0x6d260820, 0x1a339: 0x6c051a20, 0x1a33a: 0x6c3d5a20, 0x1a33b: 0x6c03ae20,
-	0x1a33c: 0x6d172020, 0x1a33d: 0x6d1b4220, 0x1a33e: 0x6c4e9220, 0x1a33f: 0x6d06a020,
-	// Block 0x68d, offset 0x1a340
-	0x1a340: 0x6c20c420, 0x1a341: 0x6cbd6220, 0x1a342: 0x6c44f420, 0x1a343: 0x6c001c20,
-	0x1a344: 0x6c081620, 0x1a345: 0x6c39aa20, 0x1a346: 0x6cc3a820, 0x1a347: 0x6d1e2020,
-	0x1a348: 0x6c75a020, 0x1a349: 0x6c633e20, 0x1a34a: 0x6c2c2a20, 0x1a34b: 0x6c96fa20,
-	0x1a34c: 0x6c811420, 0x1a34d: 0x6c731820, 0x1a34e: 0x6c19c620, 0x1a34f: 0x6ccccc20,
-	0x1a350: 0x6c6c3c20, 0x1a351: 0x6d303020, 0x1a352: 0x6c8ae420, 0x1a353: 0x6c8ae620,
-	0x1a354: 0x6c107e20, 0x1a355: 0x6c19d820, 0x1a356: 0x6c57d820, 0x1a357: 0x6c108020,
-	0x1a358: 0x6cd25a20, 0x1a359: 0x6d099420, 0x1a35a: 0x6c4c1820, 0x1a35b: 0x6c6eda20,
-	0x1a35c: 0x6d12a820, 0x1a35d: 0x6ca76020, 0x1a35e: 0x6c2bee20, 0x1a35f: 0x6d230420,
-	0x1a360: 0x6c109220, 0x1a361: 0x6d0ae820, 0x1a362: 0x6cc2d420, 0x1a363: 0x6cdc3420,
-	0x1a364: 0x6cafdc20, 0x1a365: 0x6cbe4020, 0x1a366: 0x6cecfe20, 0x1a367: 0x6c723820,
-	0x1a368: 0x6c951420, 0x1a369: 0x6d329220, 0x1a36a: 0x6c796e20, 0x1a36b: 0x6c1d3820,
-	0x1a36c: 0x6c2fee20, 0x1a36d: 0x6c275a20, 0x1a36e: 0x6ce09220, 0x1a36f: 0x6c018020,
-	0x1a370: 0x6c114220, 0x1a371: 0x6c1f2e20, 0x1a372: 0x6c081820, 0x1a373: 0x6c76ce20,
-	0x1a374: 0x6d344c20, 0x1a375: 0x6c348420, 0x1a376: 0x6d175220, 0x1a377: 0x6d344e20,
-	0x1a378: 0x6d175420, 0x1a379: 0x6cadd020, 0x1a37a: 0x6c5eb420, 0x1a37b: 0x6d3cdc20,
-	0x1a37c: 0x6cb5b820, 0x1a37d: 0x6ccaee20, 0x1a37e: 0x6c723a20, 0x1a37f: 0x6ca5d420,
-	// Block 0x68e, offset 0x1a380
-	0x1a380: 0x6c7a3a20, 0x1a381: 0x6c78a020, 0x1a382: 0x6ce0ec20, 0x1a383: 0x6c7d5020,
-	0x1a384: 0x6ca69620, 0x1a385: 0x6c648220, 0x1a386: 0x6c32fa20, 0x1a387: 0x6c6c8e20,
-	0x1a388: 0x6c427620, 0x1a389: 0x6d230620, 0x1a38a: 0x6c360c20, 0x1a38b: 0x6cae9820,
-	0x1a38c: 0x6c480820, 0x1a38d: 0x6ce92220, 0x1a38e: 0x6c839420, 0x1a38f: 0x6c39ea20,
-	0x1a390: 0x6d0b2420, 0x1a391: 0x6cba4c20, 0x1a392: 0x6c7ddc20, 0x1a393: 0x6c01b620,
-	0x1a394: 0x6cd0ca20, 0x1a395: 0x6c34e620, 0x1a396: 0x6ca4f220, 0x1a397: 0x6ce85c20,
-	0x1a398: 0x6c19fa20, 0x1a399: 0x6d19da20, 0x1a39a: 0x6c5cea20, 0x1a39b: 0x6c099420,
-	0x1a39c: 0x6c88f220, 0x1a39d: 0x6c4c1c20, 0x1a39e: 0x6c2e9a20, 0x1a39f: 0x6d3bc420,
-	0x1a3a0: 0x6c547020, 0x1a3a1: 0x6c05fa20, 0x1a3a2: 0x6c05fc20, 0x1a3a3: 0x6d211420,
-	0x1a3a4: 0x6c2b2e20, 0x1a3a5: 0x6c98e220, 0x1a3a6: 0x6c6a0c20, 0x1a3a7: 0x6cc83c20,
-	0x1a3a8: 0x6d12ec20, 0x1a3a9: 0x6c452e20, 0x1a3aa: 0x6c76aa20, 0x1a3ab: 0x6d3f8020,
-	0x1a3ac: 0x6d211620, 0x1a3ad: 0x6c59bc20, 0x1a3ae: 0x6c362c20, 0x1a3af: 0x6d10f620,
-	0x1a3b0: 0x6d0e6c20, 0x1a3b1: 0x6c064c20, 0x1a3b2: 0x6c223620, 0x1a3b3: 0x6c99f620,
-	0x1a3b4: 0x6c16ec20, 0x1a3b5: 0x6c321420, 0x1a3b6: 0x6ceb1c20, 0x1a3b7: 0x6d1b5020,
-	0x1a3b8: 0x6c3ca620, 0x1a3b9: 0x6d382820, 0x1a3ba: 0x6c6be820, 0x1a3bb: 0x6c6c4420,
-	0x1a3bc: 0x6c528820, 0x1a3bd: 0x6c428620, 0x1a3be: 0x6c210620, 0x1a3bf: 0x6c658e20,
-	// Block 0x68f, offset 0x1a3c0
-	0x1a3c0: 0x6cb2ec20, 0x1a3c1: 0x6c836a20, 0x1a3c2: 0x6cfe3220, 0x1a3c3: 0x6c599220,
-	0x1a3c4: 0x6c837620, 0x1a3c5: 0x6c32c020, 0x1a3c6: 0x6cec8e20, 0x1a3c7: 0x6d079220,
-	0x1a3c8: 0x6c61fe20, 0x1a3c9: 0x6c604a20, 0x1a3ca: 0x6c7b2420, 0x1a3cb: 0x6d1c7c20,
-	0x1a3cc: 0x6cddee20, 0x1a3cd: 0x6c1a1620, 0x1a3ce: 0x6d1e4220, 0x1a3cf: 0x6c765c20,
-	0x1a3d0: 0x6cdac020, 0x1a3d1: 0x6cdac220, 0x1a3d2: 0x6cd26e20, 0x1a3d3: 0x6c9d4e20,
-	0x1a3d4: 0x6cde0820, 0x1a3d5: 0x6cf24e20, 0x1a3d6: 0x6c1a1820, 0x1a3d7: 0x6ce8b820,
-	0x1a3d8: 0x6ce0fe20, 0x1a3d9: 0x6cc3c820, 0x1a3da: 0x6d37f420, 0x1a3db: 0x6c862a20,
-	0x1a3dc: 0x6d37f620, 0x1a3dd: 0x6c057620, 0x1a3de: 0x6cc9c620, 0x1a3df: 0x6d2a0620,
-	0x1a3e0: 0x6c330020, 0x1a3e1: 0x6ce4a820, 0x1a3e2: 0x6cf4f820, 0x1a3e3: 0x6d335020,
-	0x1a3e4: 0x6d099c20, 0x1a3e5: 0x6c440420, 0x1a3e6: 0x6d324020, 0x1a3e7: 0x6c00a420,
-	0x1a3e8: 0x6c459020, 0x1a3e9: 0x6d0ca620, 0x1a3ea: 0x6c76da20, 0x1a3eb: 0x6ce4aa20,
-	0x1a3ec: 0x6d257820, 0x1a3ed: 0x6cf14e20, 0x1a3ee: 0x6d01be20, 0x1a3ef: 0x6c8f3220,
-	0x1a3f0: 0x6c4d8c20, 0x1a3f1: 0x6c810220, 0x1a3f2: 0x6c16b620, 0x1a3f3: 0x6caea820,
-	0x1a3f4: 0x6c084820, 0x1a3f5: 0x6c18da20, 0x1a3f6: 0x6c927820, 0x1a3f7: 0x6c91c620,
-	0x1a3f8: 0x6cab3c20, 0x1a3f9: 0x6cba6220, 0x1a3fa: 0x6c9a1620, 0x1a3fb: 0x6ca12620,
-	0x1a3fc: 0x6d3b8220, 0x1a3fd: 0x6cd6d420, 0x1a3fe: 0x6cd52e20, 0x1a3ff: 0x6c90e820,
-	// Block 0x690, offset 0x1a400
-	0x1a400: 0x6c1b4620, 0x1a401: 0x6c97e220, 0x1a402: 0x6c0c0620, 0x1a403: 0x6c6e9420,
-	0x1a404: 0x6c130020, 0x1a405: 0x6cd5ee20, 0x1a406: 0x6d367a20, 0x1a407: 0x6d2ec020,
-	0x1a408: 0x6c770a20, 0x1a409: 0x6d1d9620, 0x1a40a: 0x6c2d6e20, 0x1a40b: 0x6c190820,
-	0x1a40c: 0x6d347c20, 0x1a40d: 0x6cf8ac20, 0x1a40e: 0x6c4c2420, 0x1a40f: 0x6cbb4620,
-	0x1a410: 0x6c6d2220, 0x1a411: 0x6c2c7a20, 0x1a412: 0x6cce0a20, 0x1a413: 0x6ca29020,
-	0x1a414: 0x6c24d220, 0x1a415: 0x6d0e9220, 0x1a416: 0x6cde1020, 0x1a417: 0x6d2b8220,
-	0x1a418: 0x6cb9ac20, 0x1a419: 0x6cbb1020, 0x1a41a: 0x6c895e20, 0x1a41b: 0x6cf14220,
-	0x1a41c: 0x6d3c9a20, 0x1a41d: 0x6cbb9820, 0x1a41e: 0x6d2b8620, 0x1a41f: 0x6d05ba20,
-	0x1a420: 0x6ccd9a20, 0x1a421: 0x6ccd9c20, 0x1a422: 0x6c038e20, 0x1a423: 0x6cb44820,
-	0x1a424: 0x6c7b3220, 0x1a425: 0x6c303220, 0x1a426: 0x6c38b020, 0x1a427: 0x6cc3e820,
-	0x1a428: 0x6ca16020, 0x1a429: 0x6c33a020, 0x1a42a: 0x6c33a220, 0x1a42b: 0x6d41ea20,
-	0x1a42c: 0x6c2c7c20, 0x1a42d: 0x6cd17220, 0x1a42e: 0x6c350820, 0x1a42f: 0x6c350e20,
-	0x1a430: 0x6cdffc20, 0x1a431: 0x6c2ae020, 0x1a432: 0x6ca21820, 0x1a433: 0x6c3b8420,
-	0x1a434: 0x6c59d820, 0x1a435: 0x6cdffe20, 0x1a436: 0x6c26fe20, 0x1a437: 0x6d12fa20,
-	0x1a438: 0x6d3b5220, 0x1a439: 0x6c673a20, 0x1a43a: 0x6c02e420, 0x1a43b: 0x6cbb1e20,
-	0x1a43c: 0x6c5f2c20, 0x1a43d: 0x6cbba220, 0x1a43e: 0x6c790a20, 0x1a43f: 0x6d188420,
-	// Block 0x691, offset 0x1a440
-	0x1a440: 0x6cb01a20, 0x1a441: 0x6c0a4420, 0x1a442: 0x6c2d7c20, 0x1a443: 0x6c677820,
-	0x1a444: 0x6d12b420, 0x1a445: 0x6d1dae20, 0x1a446: 0x6d091620, 0x1a447: 0x6ce00c20,
-	0x1a448: 0x6c803820, 0x1a449: 0x6c728820, 0x1a44a: 0x6c581420, 0x1a44b: 0x6c298e20,
-	0x1a44c: 0x6cc50220, 0x1a44d: 0x6cba8020, 0x1a44e: 0x6d09ae20, 0x1a44f: 0x6cfd1820,
-	0x1a450: 0x6cf81620, 0x1a451: 0x6c51ee20, 0x1a452: 0x6c00c620, 0x1a453: 0x6d0b0020,
-	0x1a454: 0x6c29ee20, 0x1a455: 0x6c4fee20, 0x1a456: 0x6cc84a20, 0x1a457: 0x6c6d8220,
-	0x1a458: 0x6c82e220, 0x1a459: 0x6c7c0620, 0x1a45a: 0x6c916a20, 0x1a45b: 0x6d0cea20,
-	0x1a45c: 0x6ce03020, 0x1a45d: 0x6cf03820, 0x1a45e: 0x6c581820, 0x1a45f: 0x6c903e20,
-	0x1a460: 0x6c904020, 0x1a461: 0x6cc8ec20, 0x1a462: 0x6c86ea20, 0x1a463: 0x6c8bfe20,
-	0x1a464: 0x6cc50620, 0x1a465: 0x6c165c20, 0x1a466: 0x6d09c420, 0x1a467: 0x6d0d0c20,
-	0x1a468: 0x6c829620, 0x1a469: 0x6c03da20, 0x1a46a: 0x6ceca620, 0x1a46b: 0x6cd2e220,
-	0x1a46c: 0x6cc56020, 0x1a46d: 0x6cca6220, 0x1a46e: 0x6d3c2c20, 0x1a46f: 0x6d3c2e20,
-	0x1a470: 0x6cd0dc20, 0x1a471: 0x6d13c620, 0x1a472: 0x6c972420, 0x1a473: 0x6c784a20,
-	0x1a474: 0x6d3aba20, 0x1a475: 0x6d3c3620, 0x1a476: 0x6c553020, 0x1a477: 0x6c554020,
-	0x1a478: 0x6c7da620, 0x1a479: 0x6d13ee20, 0x1a47a: 0x6c555420, 0x1a47b: 0x6d06d020,
-	0x1a47c: 0x6c7db220, 0x1a47d: 0x6cd46e20, 0x1a47e: 0x6c989420, 0x1a47f: 0x6d41ec20,
-	// Block 0x692, offset 0x1a480
-	0x1a480: 0x6cd47020, 0x1a481: 0x6d141220, 0x1a482: 0x6d34ca20, 0x1a483: 0x6c474e20,
-	0x1a484: 0x6c1f0220, 0x1a485: 0x6c67d220, 0x1a486: 0x6c3c9c20, 0x1a487: 0x6c06e020,
-	0x1a488: 0x6d2d5820, 0x1a489: 0x6c0b8420, 0x1a48a: 0x6cdba620, 0x1a48b: 0x6cc42e20,
-	0x1a48c: 0x6c8ca220, 0x1a48d: 0x6c3fc020, 0x1a48e: 0x6c261420, 0x1a48f: 0x6cfa3220,
-	0x1a490: 0x6d049a20, 0x1a491: 0x6d02a020, 0x1a492: 0x6ca4cc20, 0x1a493: 0x6cfa5a20,
-	0x1a494: 0x6c7cb420, 0x1a495: 0x6cf55a20, 0x1a496: 0x6cec6820, 0x1a497: 0x6d25f820,
-	0x1a498: 0x6c992020, 0x1a499: 0x6cda7c20, 0x1a49a: 0x6c341620, 0x1a49b: 0x6c341820,
-	0x1a49c: 0x6d12ca20, 0x1a49d: 0x6cbe6c20, 0x1a49e: 0x6cec6e20, 0x1a49f: 0x6c46a220,
-	0x1a4a0: 0x6c46a420, 0x1a4a1: 0x6cb78820, 0x1a4a2: 0x6c9c0420, 0x1a4a3: 0x6c9c0820,
-	0x1a4a4: 0x6d1a8020, 0x1a4a5: 0x6c5d9420, 0x1a4a6: 0x6c190c20, 0x1a4a7: 0x6c26e420,
-	0x1a4a8: 0x6d2b3020, 0x1a4a9: 0x6ce45420, 0x1a4aa: 0x6cdf5a20, 0x1a4ab: 0x6c40a620,
-	0x1a4ac: 0x6c48e220, 0x1a4ad: 0x6d108020, 0x1a4ae: 0x6d0f4020, 0x1a4af: 0x6c4f4620,
-	0x1a4b0: 0x6c42fa20, 0x1a4b1: 0x6cd18e20, 0x1a4b2: 0x6ce1aa20, 0x1a4b3: 0x6cdf5c20,
-	0x1a4b4: 0x6ce7e420, 0x1a4b5: 0x6d0d3420, 0x1a4b6: 0x6c08b020, 0x1a4b7: 0x6d145220,
-	0x1a4b8: 0x6c7ab820, 0x1a4b9: 0x6c631c20, 0x1a4ba: 0x6c343a20, 0x1a4bb: 0x6c577c20,
-	0x1a4bc: 0x6c7bce20, 0x1a4bd: 0x6d27d620, 0x1a4be: 0x6c632020, 0x1a4bf: 0x6c031820,
-	// Block 0x693, offset 0x1a4c0
-	0x1a4c0: 0x6c370e20, 0x1a4c1: 0x6c87ec20, 0x1a4c2: 0x6c58ee20, 0x1a4c3: 0x6c2b1220,
-	0x1a4c4: 0x6d0d4620, 0x1a4c5: 0x6cad7e20, 0x1a4c6: 0x6c733c20, 0x1a4c7: 0x6cb57c20,
-	0x1a4c8: 0x6ca3ac20, 0x1a4c9: 0x6c3cd820, 0x1a4ca: 0x6d007820, 0x1a4cb: 0x6c3bcc20,
-	0x1a4cc: 0x6c2d0820, 0x1a4cd: 0x6d107820, 0x1a4ce: 0x6c7c5e20, 0x1a4cf: 0x6d408620,
-	0x1a4d0: 0x6c58f820, 0x1a4d1: 0x6cb75220, 0x1a4d2: 0x6c762620, 0x1a4d3: 0x6d2bc820,
-	0x1a4d4: 0x6c077c20, 0x1a4d5: 0x6d16e020, 0x1a4d6: 0x6c679e20, 0x1a4d7: 0x6ce26220,
-	0x1a4d8: 0x6d29fe20, 0x1a4d9: 0x6c079820, 0x1a4da: 0x6cf5b420, 0x1a4db: 0x6c5a5020,
-	0x1a4dc: 0x6c3a5020, 0x1a4dd: 0x6c2dc020, 0x1a4de: 0x6d0a8620, 0x1a4df: 0x6c07e020,
-	0x1a4e0: 0x6c2d5620, 0x1a4e1: 0x6c02d020, 0x1a4e2: 0x6cceea20, 0x1a4e3: 0x6cf24c20,
-	0x1a4e4: 0x6c4d0220, 0x1a4e5: 0x6c02d220, 0x1a4e6: 0x6cf4fa20, 0x1a4e7: 0x6c02d420,
-	0x1a4e8: 0x6c67ac20, 0x1a4e9: 0x6c881c20, 0x1a4ea: 0x6c345a20, 0x1a4eb: 0x6d275e20,
-	0x1a4ec: 0x6c67ae20, 0x1a4ed: 0x6cd3c420, 0x1a4ee: 0x6c3be620, 0x1a4ef: 0x6c5df620,
-	0x1a4f0: 0x6c0a8620, 0x1a4f1: 0x6c944c20, 0x1a4f2: 0x6c34c620, 0x1a4f3: 0x6caa6e20,
-	0x1a4f4: 0x6caa3a20, 0x1a4f5: 0x6c2f6820, 0x1a4f6: 0x6ca38e20, 0x1a4f7: 0x6cb89620,
-	0x1a4f8: 0x6c645c20, 0x1a4f9: 0x6cddde20, 0x1a4fa: 0x6c6fa220, 0x1a4fb: 0x6caa8e20,
-	0x1a4fc: 0x6c142820, 0x1a4fd: 0x6c500620, 0x1a4fe: 0x6cfa7020, 0x1a4ff: 0x6c391a20,
-	// Block 0x694, offset 0x1a500
-	0x1a500: 0x6c611a20, 0x1a501: 0x6cd76e20, 0x1a502: 0x6cc78a20, 0x1a503: 0x6c39f020,
-	0x1a504: 0x6cee4420, 0x1a505: 0x6c52ec20, 0x1a506: 0x6d3c0620, 0x1a507: 0x6c3fa620,
-	0x1a508: 0x6c965c20, 0x1a509: 0x6c27b420, 0x1a50a: 0x6cc5be20, 0x1a50b: 0x6c3d3a20,
-	0x1a50c: 0x6c6e4820, 0x1a50d: 0x6d0c5620, 0x1a50e: 0x6c4d5420, 0x1a50f: 0x6cf1fc20,
-	0x1a510: 0x6d378e20, 0x1a511: 0x6cabb020, 0x1a512: 0x6c323220, 0x1a513: 0x6c617e20,
-	0x1a514: 0x6c792820, 0x1a515: 0x6d381220, 0x1a516: 0x6d108a20, 0x1a517: 0x6c6cd420,
-	0x1a518: 0x6d277e20, 0x1a519: 0x6c9eaa20, 0x1a51a: 0x6c3d1e20, 0x1a51b: 0x6c1ca420,
-	0x1a51c: 0x6d267a20, 0x1a51d: 0x6d3c0a20, 0x1a51e: 0x6ca96220, 0x1a51f: 0x6d0e3a20,
-	0x1a520: 0x6ca30620, 0x1a521: 0x6d02a820, 0x1a522: 0x6c3b5220, 0x1a523: 0x6c08ba20,
-	0x1a524: 0x6d20ae20, 0x1a525: 0x6ceb6e20, 0x1a526: 0x6c3c1820, 0x1a527: 0x6ced7220,
-	0x1a528: 0x6c39a220, 0x1a529: 0x6cf41e20, 0x1a52a: 0x6d22cc20, 0x1a52b: 0x6c4a3620,
-	0x1a52c: 0x6c323a20, 0x1a52d: 0x6c036420, 0x1a52e: 0x6ca5b420, 0x1a52f: 0x6d38cc20,
-	0x1a530: 0x6d3d2c20, 0x1a531: 0x6d2f5620, 0x1a532: 0x6c267c20, 0x1a533: 0x6ca39820,
-	0x1a534: 0x6d25fe20, 0x1a535: 0x6ce80820, 0x1a536: 0x6cfb2a20, 0x1a537: 0x6d343c20,
-	0x1a538: 0x6c353020, 0x1a539: 0x6c9a7420, 0x1a53a: 0x6ca0c620, 0x1a53b: 0x6cb4d020,
-	0x1a53c: 0x6c092a20, 0x1a53d: 0x6ccfaa20, 0x1a53e: 0x6cbc9420, 0x1a53f: 0x6c353220,
-	// Block 0x695, offset 0x1a540
-	0x1a540: 0x6c50c420, 0x1a541: 0x6d062c20, 0x1a542: 0x6c37f820, 0x1a543: 0x6d328420,
-	0x1a544: 0x6c9f2820, 0x1a545: 0x6c04e620, 0x1a546: 0x6ca22820, 0x1a547: 0x6c3d3e20,
-	0x1a548: 0x6c8ca420, 0x1a549: 0x6d3ee220, 0x1a54a: 0x6d3ee420, 0x1a54b: 0x6cd2b420,
-	0x1a54c: 0x6cc4ac20, 0x1a54d: 0x6cccc020, 0x1a54e: 0x6d0f4620, 0x1a54f: 0x6c975c20,
-	0x1a550: 0x6c6c1620, 0x1a551: 0x6c46ee20, 0x1a552: 0x6cd88020, 0x1a553: 0x6d041420,
-	0x1a554: 0x6cef8e20, 0x1a555: 0x6d3e0c20, 0x1a556: 0x6c71f620, 0x1a557: 0x6cccc220,
-	0x1a558: 0x6cb1e820, 0x1a559: 0x6cc5d420, 0x1a55a: 0x6d10d620, 0x1a55b: 0x6c305820,
-	0x1a55c: 0x6c674c20, 0x1a55d: 0x6cd4b020, 0x1a55e: 0x6c5ff020, 0x1a55f: 0x6c40e620,
-	0x1a560: 0x6cfe1c20, 0x1a561: 0x6c572a20, 0x1a562: 0x6c72da20, 0x1a563: 0x6c682c20,
-	0x1a564: 0x6c469c20, 0x1a565: 0x6c81a220, 0x1a566: 0x6c647420, 0x1a567: 0x6c647620,
-	0x1a568: 0x6d148c20, 0x1a569: 0x6ca75c20, 0x1a56a: 0x6d344220, 0x1a56b: 0x6c5e9820,
-	0x1a56c: 0x6c5ea220, 0x1a56d: 0x6cfc8a20, 0x1a56e: 0x6c525620, 0x1a56f: 0x6c49de20,
-	0x1a570: 0x6c756020, 0x1a571: 0x6c7ac020, 0x1a572: 0x6d0e4420, 0x1a573: 0x6ca02c20,
-	0x1a574: 0x6c8ad020, 0x1a575: 0x6cae0a20, 0x1a576: 0x6c35ee20, 0x1a577: 0x6d202220,
-	0x1a578: 0x6d0c6e20, 0x1a579: 0x6c143420, 0x1a57a: 0x6ccfb820, 0x1a57b: 0x6d19ae20,
-	0x1a57c: 0x6cd24e20, 0x1a57d: 0x6c4ad220, 0x1a57e: 0x6cc2be20, 0x1a57f: 0x6d3e0e20,
-	// Block 0x696, offset 0x1a580
-	0x1a580: 0x6cd90820, 0x1a581: 0x6cee6820, 0x1a582: 0x6c530e20, 0x1a583: 0x6cec0420,
-	0x1a584: 0x6c907e20, 0x1a585: 0x6d0b8420, 0x1a586: 0x6cc52020, 0x1a587: 0x6c682e20,
-	0x1a588: 0x6c942e20, 0x1a589: 0x6cb24e20, 0x1a58a: 0x6cfc9e20, 0x1a58b: 0x6cced020,
-	0x1a58c: 0x6c850820, 0x1a58d: 0x6c19c820, 0x1a58e: 0x6d017a20, 0x1a58f: 0x6c984a20,
-	0x1a590: 0x6c3d5c20, 0x1a591: 0x6cdd1020, 0x1a592: 0x6c99e420, 0x1a593: 0x6cef9c20,
-	0x1a594: 0x6c789420, 0x1a595: 0x6c21ae20, 0x1a596: 0x6c21b020, 0x1a597: 0x6ce6b820,
-	0x1a598: 0x6ca78820, 0x1a599: 0x6d03da20, 0x1a59a: 0x6ca3ee20, 0x1a59b: 0x6d20ec20,
-	0x1a59c: 0x6ca31a20, 0x1a59d: 0x6cb3c820, 0x1a59e: 0x6ca56820, 0x1a59f: 0x6c72e220,
-	0x1a5a0: 0x6ccfc620, 0x1a5a1: 0x6d35ae20, 0x1a5a2: 0x6c4df020, 0x1a5a3: 0x6c2c2c20,
-	0x1a5a4: 0x6d3c1020, 0x1a5a5: 0x6c355220, 0x1a5a6: 0x6cb20820, 0x1a5a7: 0x6ce9f820,
-	0x1a5a8: 0x6cfca020, 0x1a5a9: 0x6c9e1020, 0x1a5aa: 0x6cf3ae20, 0x1a5ab: 0x6d0c7020,
-	0x1a5ac: 0x6cf44220, 0x1a5ad: 0x6c001e20, 0x1a5ae: 0x6d0c7c20, 0x1a5af: 0x6d20ee20,
-	0x1a5b0: 0x6cd89a20, 0x1a5b1: 0x6d20f020, 0x1a5b2: 0x6cebd020, 0x1a5b3: 0x6c87de20,
-	0x1a5b4: 0x6cfb3a20, 0x1a5b5: 0x6c707c20, 0x1a5b6: 0x6cc24220, 0x1a5b7: 0x6d3c8020,
-	0x1a5b8: 0x6cb4e220, 0x1a5b9: 0x6cfb4020, 0x1a5ba: 0x6d3d4820, 0x1a5bb: 0x6c2ff020,
-	0x1a5bc: 0x6c166420, 0x1a5bd: 0x6c923420, 0x1a5be: 0x6c006420, 0x1a5bf: 0x6c353620,
-	// Block 0x697, offset 0x1a5c0
-	0x1a5c0: 0x6c353820, 0x1a5c1: 0x6c908620, 0x1a5c2: 0x6c9dbe20, 0x1a5c3: 0x6c239020,
-	0x1a5c4: 0x6cb3f020, 0x1a5c5: 0x6c710e20, 0x1a5c6: 0x6cb32820, 0x1a5c7: 0x6c10f620,
-	0x1a5c8: 0x6c8cde20, 0x1a5c9: 0x6ced0020, 0x1a5ca: 0x6c0c7220, 0x1a5cb: 0x6cfeb020,
-	0x1a5cc: 0x6cd52620, 0x1a5cd: 0x6cb6f020, 0x1a5ce: 0x6c5ab020, 0x1a5cf: 0x6c394020,
-	0x1a5d0: 0x6cf2b220, 0x1a5d1: 0x6cc89820, 0x1a5d2: 0x6cdfda20, 0x1a5d3: 0x6c39f820,
-	0x1a5d4: 0x6c3b0420, 0x1a5d5: 0x6c6aae20, 0x1a5d6: 0x6ce46020, 0x1a5d7: 0x6ca5d620,
-	0x1a5d8: 0x6cc2d820, 0x1a5d9: 0x6c6e5820, 0x1a5da: 0x6c5cbc20, 0x1a5db: 0x6c6da420,
-	0x1a5dc: 0x6cb8d220, 0x1a5dd: 0x6c2d4c20, 0x1a5de: 0x6d042620, 0x1a5df: 0x6c568a20,
-	0x1a5e0: 0x6cec8820, 0x1a5e1: 0x6c7ef220, 0x1a5e2: 0x6c097420, 0x1a5e3: 0x6d19dc20,
-	0x1a5e4: 0x6c1d6820, 0x1a5e5: 0x6ca52e20, 0x1a5e6: 0x6c3fe420, 0x1a5e7: 0x6c6e6e20,
-	0x1a5e8: 0x6c94ec20, 0x1a5e9: 0x6c01b820, 0x1a5ea: 0x6c7f9420, 0x1a5eb: 0x6c7d5220,
-	0x1a5ec: 0x6d1a5220, 0x1a5ed: 0x6d0b9220, 0x1a5ee: 0x6c707e20, 0x1a5ef: 0x6c85e820,
-	0x1a5f0: 0x6c2d1220, 0x1a5f1: 0x6cfb4220, 0x1a5f2: 0x6c57da20, 0x1a5f3: 0x6c579220,
-	0x1a5f4: 0x6d1bac20, 0x1a5f5: 0x6c14ee20, 0x1a5f6: 0x6cd05a20, 0x1a5f7: 0x6ce66e20,
-	0x1a5f8: 0x6c296420, 0x1a5f9: 0x6d11ac20, 0x1a5fa: 0x6cf4e620, 0x1a5fb: 0x6ca44820,
-	0x1a5fc: 0x6c21b220, 0x1a5fd: 0x6c641420, 0x1a5fe: 0x6ce7d820, 0x1a5ff: 0x6d06d220,
-	// Block 0x698, offset 0x1a600
-	0x1a600: 0x6d233020, 0x1a601: 0x6cef0a20, 0x1a602: 0x6c2c5420, 0x1a603: 0x6cc74820,
-	0x1a604: 0x6c9a5620, 0x1a605: 0x6c27de20, 0x1a606: 0x6cc86220, 0x1a607: 0x6cbd2c20,
-	0x1a608: 0x6c5ab220, 0x1a609: 0x6cf2ea20, 0x1a60a: 0x6cb99420, 0x1a60b: 0x6c210820,
-	0x1a60c: 0x6c9e7420, 0x1a60d: 0x6c3fec20, 0x1a60e: 0x6c6b9620, 0x1a60f: 0x6c329820,
-	0x1a610: 0x6d151420, 0x1a611: 0x6d382a20, 0x1a612: 0x6c99f820, 0x1a613: 0x6c59be20,
-	0x1a614: 0x6c9dc220, 0x1a615: 0x6c013020, 0x1a616: 0x6d1bae20, 0x1a617: 0x6d079420,
-	0x1a618: 0x6c6a0e20, 0x1a619: 0x6cee8220, 0x1a61a: 0x6c9a8e20, 0x1a61b: 0x6d261620,
-	0x1a61c: 0x6d32c220, 0x1a61d: 0x6cbfae20, 0x1a61e: 0x6cd37a20, 0x1a61f: 0x6d01a820,
-	0x1a620: 0x6ceb7c20, 0x1a621: 0x6c88f620, 0x1a622: 0x6c997820, 0x1a623: 0x6cc4c420,
-	0x1a624: 0x6cd7e620, 0x1a625: 0x6cb0f220, 0x1a626: 0x6cf08e20, 0x1a627: 0x6cebd820,
-	0x1a628: 0x6c6ff420, 0x1a629: 0x6c555620, 0x1a62a: 0x6c02a620, 0x1a62b: 0x6cbd1420,
-	0x1a62c: 0x6c05fe20, 0x1a62d: 0x6d059220, 0x1a62e: 0x6ce7da20, 0x1a62f: 0x6c4a6420,
-	0x1a630: 0x6c1e8a20, 0x1a631: 0x6d110620, 0x1a632: 0x6cb09e20, 0x1a633: 0x6cf78420,
-	0x1a634: 0x6d257a20, 0x1a635: 0x6d1d4020, 0x1a636: 0x6cc67020, 0x1a637: 0x6cc81a20,
-	0x1a638: 0x6c1ab620, 0x1a639: 0x6c8e6620, 0x1a63a: 0x6c9a5e20, 0x1a63b: 0x6cac5c20,
-	0x1a63c: 0x6c02a820, 0x1a63d: 0x6c966020, 0x1a63e: 0x6c46ae20, 0x1a63f: 0x6c7cf620,
-	// Block 0x699, offset 0x1a640
-	0x1a640: 0x6cbd8020, 0x1a641: 0x6c644820, 0x1a642: 0x6ccae420, 0x1a643: 0x6d315e20,
-	0x1a644: 0x6d257c20, 0x1a645: 0x6c6a1020, 0x1a646: 0x6cc68020, 0x1a647: 0x6ca00420,
-	0x1a648: 0x6d1bc220, 0x1a649: 0x6c604c20, 0x1a64a: 0x6cdac820, 0x1a64b: 0x6ca79c20,
-	0x1a64c: 0x6cfb6c20, 0x1a64d: 0x6ce1ce20, 0x1a64e: 0x6cad0020, 0x1a64f: 0x6c80b220,
-	0x1a650: 0x6ca4fc20, 0x1a651: 0x6c05ca20, 0x1a652: 0x6c00a620, 0x1a653: 0x6cb0a020,
-	0x1a654: 0x6cb20e20, 0x1a655: 0x6d182020, 0x1a656: 0x6cb17e20, 0x1a657: 0x6d238a20,
-	0x1a658: 0x6c824220, 0x1a659: 0x6d081820, 0x1a65a: 0x6c975820, 0x1a65b: 0x6d140020,
-	0x1a65c: 0x6d2ec220, 0x1a65d: 0x6c773820, 0x1a65e: 0x6d1d9820, 0x1a65f: 0x6ca6a820,
-	0x1a660: 0x6c840e20, 0x1a661: 0x6c2b7a20, 0x1a662: 0x6c4a7820, 0x1a663: 0x6d0c1a20,
-	0x1a664: 0x6c6c9c20, 0x1a665: 0x6d3b8420, 0x1a666: 0x6c16b820, 0x1a667: 0x6d2ada20,
-	0x1a668: 0x6c4dac20, 0x1a669: 0x6ca59c20, 0x1a66a: 0x6c81d820, 0x1a66b: 0x6ca05c20,
-	0x1a66c: 0x6d300220, 0x1a66d: 0x6c56ae20, 0x1a66e: 0x6c56b020, 0x1a66f: 0x6c02d620,
-	0x1a670: 0x6ca59e20, 0x1a671: 0x6cbb1220, 0x1a672: 0x6c96f620, 0x1a673: 0x6cb1e420,
-	0x1a674: 0x6c472a20, 0x1a675: 0x6cf46020, 0x1a676: 0x6cbbea20, 0x1a677: 0x6ceb8820,
-	0x1a678: 0x6d2e1020, 0x1a679: 0x6c98f020, 0x1a67a: 0x6cfb7820, 0x1a67b: 0x6cfb7a20,
-	0x1a67c: 0x6ca14a20, 0x1a67d: 0x6c8a0420, 0x1a67e: 0x6c883020, 0x1a67f: 0x6c57b820,
-	// Block 0x69a, offset 0x1a680
-	0x1a680: 0x6c4a8420, 0x1a681: 0x6c2aa620, 0x1a682: 0x6d348c20, 0x1a683: 0x6d05ce20,
-	0x1a684: 0x6d140a20, 0x1a685: 0x6c579c20, 0x1a686: 0x6cf69220, 0x1a687: 0x6c7d0a20,
-	0x1a688: 0x6cc52820, 0x1a689: 0x6cf69420, 0x1a68a: 0x6d0ea020, 0x1a68b: 0x6c151820,
-	0x1a68c: 0x6c686420, 0x1a68d: 0x6c9a6620, 0x1a68e: 0x6c396820, 0x1a68f: 0x6c385620,
-	0x1a690: 0x6cfad420, 0x1a691: 0x6d188620, 0x1a692: 0x6c5c2a20, 0x1a693: 0x6c69c420,
-	0x1a694: 0x6c405220, 0x1a695: 0x6cd3d820, 0x1a696: 0x6c0a4620, 0x1a697: 0x6ccda420,
-	0x1a698: 0x6cdc5a20, 0x1a699: 0x6cbb2020, 0x1a69a: 0x6c88c820, 0x1a69b: 0x6c589420,
-	0x1a69c: 0x6d02ec20, 0x1a69d: 0x6ca7aa20, 0x1a69e: 0x6c303420, 0x1a69f: 0x6d188820,
-	0x1a6a0: 0x6c117020, 0x1a6a1: 0x6c00c820, 0x1a6a2: 0x6ca77820, 0x1a6a3: 0x6ca92220,
-	0x1a6a4: 0x6c966420, 0x1a6a5: 0x6ce5ce20, 0x1a6a6: 0x6c1de220, 0x1a6a7: 0x6c6d5820,
-	0x1a6a8: 0x6c226820, 0x1a6a9: 0x6d219e20, 0x1a6aa: 0x6cb21620, 0x1a6ab: 0x6cc6be20,
-	0x1a6ac: 0x6cc7ce20, 0x1a6ad: 0x6ca3a820, 0x1a6ae: 0x6d0c3220, 0x1a6af: 0x6cdf4620,
-	0x1a6b0: 0x6d1bfc20, 0x1a6b1: 0x6c11b620, 0x1a6b2: 0x6ca7b220, 0x1a6b3: 0x6d26ea20,
-	0x1a6b4: 0x6d1c9620, 0x1a6b5: 0x6c9dd620, 0x1a6b6: 0x6c0ae620, 0x1a6b7: 0x6c966620,
-	0x1a6b8: 0x6cd08020, 0x1a6b9: 0x6d043e20, 0x1a6ba: 0x6ca6d420, 0x1a6bb: 0x6c31c820,
-	0x1a6bc: 0x6c8f2020, 0x1a6bd: 0x6d251c20, 0x1a6be: 0x6c804820, 0x1a6bf: 0x6d0ee820,
-	// Block 0x69b, offset 0x1a6c0
-	0x1a6c0: 0x6cd6a820, 0x1a6c1: 0x6c8d8c20, 0x1a6c2: 0x6c696620, 0x1a6c3: 0x6ca77a20,
-	0x1a6c4: 0x6c804c20, 0x1a6c5: 0x6cb94420, 0x1a6c6: 0x6d1c1a20, 0x1a6c7: 0x6cd6ae20,
-	0x1a6c8: 0x6c5c9020, 0x1a6c9: 0x6cc32620, 0x1a6ca: 0x6c9d0a20, 0x1a6cb: 0x6c84b820,
-	0x1a6cc: 0x6c944e20, 0x1a6cd: 0x6d0d0e20, 0x1a6ce: 0x6d3a4020, 0x1a6cf: 0x6c805820,
-	0x1a6d0: 0x6d3f6820, 0x1a6d1: 0x6c6a5220, 0x1a6d2: 0x6c73c420, 0x1a6d3: 0x6c73c620,
-	0x1a6d4: 0x6c799220, 0x1a6d5: 0x6d281220, 0x1a6d6: 0x6c965e20, 0x1a6d7: 0x6d3f2820,
-	0x1a6d8: 0x6c25a020, 0x1a6d9: 0x6cdcca20, 0x1a6da: 0x6c3dd620, 0x1a6db: 0x6c06d620,
-	0x1a6dc: 0x6d3e0020, 0x1a6dd: 0x6cffcc20, 0x1a6de: 0x6d031a20, 0x1a6df: 0x6c9bfe20,
-	0x1a6e0: 0x6cd88c20, 0x1a6e1: 0x6cdf0220, 0x1a6e2: 0x6c05a420, 0x1a6e3: 0x6c619220,
-	0x1a6e4: 0x6c46f020, 0x1a6e5: 0x6caa3c20, 0x1a6e6: 0x6d08f820, 0x1a6e7: 0x6d206a20,
-	0x1a6e8: 0x6d3ba220, 0x1a6e9: 0x6c4d1e20, 0x1a6ea: 0x6c943020, 0x1a6eb: 0x6cdcd020,
-	0x1a6ec: 0x6ca48e20, 0x1a6ed: 0x6c9ec420, 0x1a6ee: 0x6c239220, 0x1a6ef: 0x6cb8d420,
-	0x1a6f0: 0x6cd52820, 0x1a6f1: 0x6c11f620, 0x1a6f2: 0x6d0aea20, 0x1a6f3: 0x6d3e3420,
-	0x1a6f4: 0x6ca63e20, 0x1a6f5: 0x6c3d8820, 0x1a6f6: 0x6d3e4e20, 0x1a6f7: 0x6c841020,
-	0x1a6f8: 0x6d091820, 0x1a6f9: 0x6c0ff620, 0x1a6fa: 0x6cc7d020, 0x1a6fb: 0x6ca38820,
-	0x1a6fc: 0x6ca89020, 0x1a6fd: 0x6ca89220, 0x1a6fe: 0x6d1c1c20, 0x1a6ff: 0x6c945020,
-	// Block 0x69c, offset 0x1a700
-	0x1a700: 0x6c9db620, 0x1a701: 0x6ca8f220, 0x1a702: 0x6cc6ee20, 0x1a703: 0x6cdddc20,
-	0x1a704: 0x6c4ab820, 0x1a705: 0x6d2d1820, 0x1a706: 0x6cbef820, 0x1a707: 0x6d221620,
-	0x1a708: 0x6cd43a20, 0x1a709: 0x6c011220, 0x1a70a: 0x6ce83820, 0x1a70b: 0x6cd97e20,
-	0x1a70c: 0x6cecc020, 0x1a70d: 0x6cc78420, 0x1a70e: 0x6d118220, 0x1a70f: 0x6c52f220,
-	0x1a710: 0x6d145e20, 0x1a711: 0x6c6e0c20, 0x1a712: 0x6d3cc820, 0x1a713: 0x6c9d2220,
-	0x1a714: 0x6d3a5820, 0x1a715: 0x6c295620, 0x1a716: 0x6c530020, 0x1a717: 0x6d3f7020,
-	0x1a718: 0x6c490420, 0x1a719: 0x6d38fe20, 0x1a71a: 0x6c2f9620, 0x1a71b: 0x6cecee20,
-	0x1a71c: 0x6d198e20, 0x1a71d: 0x6c05e220, 0x1a71e: 0x6cd24220, 0x1a71f: 0x6cd24420,
-	0x1a720: 0x6c1d3620, 0x1a721: 0x6cd04620, 0x1a722: 0x6c788c20, 0x1a723: 0x6d078220,
-	0x1a724: 0x6cd32c20, 0x1a725: 0x6d202420, 0x1a726: 0x6c58fa20, 0x1a727: 0x6d14b820,
-	0x1a728: 0x6ce5b820, 0x1a729: 0x6cd2be20, 0x1a72a: 0x6cfc8c20, 0x1a72b: 0x6c456e20,
-	0x1a72c: 0x6c19ca20, 0x1a72d: 0x6cc44220, 0x1a72e: 0x6c457a20, 0x1a72f: 0x6cfe9420,
-	0x1a730: 0x6d291220, 0x1a731: 0x6d2cba20, 0x1a732: 0x6c05f020, 0x1a733: 0x6c4d5e20,
-	0x1a734: 0x6d0e4e20, 0x1a735: 0x6cfe9620, 0x1a736: 0x6c634020, 0x1a737: 0x6cd05020,
-	0x1a738: 0x6c18ae20, 0x1a739: 0x6cc66020, 0x1a73a: 0x6c5a4c20, 0x1a73b: 0x6c9d3020,
-	0x1a73c: 0x6c79e020, 0x1a73d: 0x6c7b5220, 0x1a73e: 0x6c0d2e20, 0x1a73f: 0x6cdaa020,
-	// Block 0x69d, offset 0x1a740
-	0x1a740: 0x6c112420, 0x1a741: 0x6d296620, 0x1a742: 0x6c61de20, 0x1a743: 0x6d24da20,
-	0x1a744: 0x6c61e020, 0x1a745: 0x6d1a5420, 0x1a746: 0x6c9d3620, 0x1a747: 0x6c79e620,
-	0x1a748: 0x6cbe4220, 0x1a749: 0x6cc3b420, 0x1a74a: 0x6d315620, 0x1a74b: 0x6c668820,
-	0x1a74c: 0x6c3fee20, 0x1a74d: 0x6ca90420, 0x1a74e: 0x6c0e1e20, 0x1a74f: 0x6c587420,
-	0x1a750: 0x6c9a9020, 0x1a751: 0x6cbdd620, 0x1a752: 0x6c4e0c20, 0x1a753: 0x6d233220,
-	0x1a754: 0x6cd26620, 0x1a755: 0x6ca90620, 0x1a756: 0x6c6d1020, 0x1a757: 0x6ca90a20,
-	0x1a758: 0x6d365020, 0x1a759: 0x6d226820, 0x1a75a: 0x6c060220, 0x1a75b: 0x6c7b5620,
-	0x1a75c: 0x6ca90c20, 0x1a75d: 0x6cbddc20, 0x1a75e: 0x6ca12820, 0x1a75f: 0x6c13f220,
-	0x1a760: 0x6c726020, 0x1a761: 0x6c489c20, 0x1a762: 0x6cbde220, 0x1a763: 0x6c54e420,
-	0x1a764: 0x6cf50a20, 0x1a765: 0x6c89f020, 0x1a766: 0x6cd27a20, 0x1a767: 0x6ca91020,
-	0x1a768: 0x6d2d4620, 0x1a769: 0x6cd06820, 0x1a76a: 0x6ceffc20, 0x1a76b: 0x6d014820,
-	0x1a76c: 0x6c7b5820, 0x1a76d: 0x6c5c0e20, 0x1a76e: 0x6c8a0620, 0x1a76f: 0x6c75e220,
-	0x1a770: 0x6c589620, 0x1a771: 0x6d18c020, 0x1a772: 0x6d156a20, 0x1a773: 0x6c061c20,
-	0x1a774: 0x6cbd4a20, 0x1a775: 0x6c1d4620, 0x1a776: 0x6c062020, 0x1a777: 0x6c3c7c20,
-	0x1a778: 0x6c25b020, 0x1a779: 0x6c332c20, 0x1a77a: 0x6cd87820, 0x1a77b: 0x6d09d420,
-	0x1a77c: 0x6c29ce20, 0x1a77d: 0x6c93ca20, 0x1a77e: 0x6c333620, 0x1a77f: 0x6cd45020,
-	// Block 0x69e, offset 0x1a780
-	0x1a780: 0x6cb34a20, 0x1a781: 0x6c3c2420, 0x1a782: 0x6d3b7420, 0x1a783: 0x6c3d5e20,
-	0x1a784: 0x6ccf3a20, 0x1a785: 0x6c789620, 0x1a786: 0x6c674e20, 0x1a787: 0x6c675c20,
-	0x1a788: 0x6d3b7a20, 0x1a789: 0x6cf08420, 0x1a78a: 0x6d41e820, 0x1a78b: 0x6d0a0c20,
-	0x1a78c: 0x6cd5d220, 0x1a78d: 0x6c335420, 0x1a78e: 0x6c29e820, 0x1a78f: 0x6cffa220,
-	0x1a790: 0x6c6a5420, 0x1a791: 0x6cceac20, 0x1a792: 0x6c377e20, 0x1a793: 0x6c378020,
-	0x1a794: 0x6c378220, 0x1a795: 0x6c40d020, 0x1a796: 0x6c645e20, 0x1a797: 0x6cd49a20,
-	0x1a798: 0x6c189220, 0x1a799: 0x6cce4a20, 0x1a79a: 0x6cce4c20, 0x1a79b: 0x6ca1b420,
-	0x1a79c: 0x6c40c620, 0x1a79d: 0x6c169e20, 0x1a79e: 0x6c8a9a20, 0x1a79f: 0x6cfc1020,
-	0x1a7a0: 0x6cfc1220, 0x1a7a1: 0x6c7dde20, 0x1a7a2: 0x6d1edc20, 0x1a7a3: 0x6cedbc20,
-	0x1a7a4: 0x6d1ede20, 0x1a7a5: 0x6c8a8c20, 0x1a7a6: 0x6c8a8e20, 0x1a7a7: 0x6d10ca20,
-	0x1a7a8: 0x6c983020, 0x1a7a9: 0x6cedc620, 0x1a7aa: 0x6cedc020, 0x1a7ab: 0x6cedc220,
-	0x1a7ac: 0x6c40d420, 0x1a7ad: 0x6d10cc20, 0x1a7ae: 0x6c34d620, 0x1a7af: 0x6c7cec20,
-	0x1a7b0: 0x6d37f020, 0x1a7b1: 0x6c6ff620, 0x1a7b2: 0x6c419c20, 0x1a7b3: 0x6c478820,
-	0x1a7b4: 0x6c419e20, 0x1a7b5: 0x6ce9b420, 0x1a7b6: 0x6c41b620, 0x1a7b7: 0x6c41b820,
-	0x1a7b8: 0x6cd18a20, 0x1a7b9: 0x6d1ac220, 0x1a7ba: 0x6c1b7020, 0x1a7bb: 0x6c779020,
-	0x1a7bc: 0x6ca5b620, 0x1a7bd: 0x6c6c8020, 0x1a7be: 0x6cef8620, 0x1a7bf: 0x6ca7d020,
-	// Block 0x69f, offset 0x1a7c0
-	0x1a7c0: 0x6c70f020, 0x1a7c1: 0x6cb08620, 0x1a7c2: 0x6c134e20, 0x1a7c3: 0x6cf83c20,
-	0x1a7c4: 0x6c086c20, 0x1a7c5: 0x6c705620, 0x1a7c6: 0x6c6bbe20, 0x1a7c7: 0x6ce48020,
-	0x1a7c8: 0x6cc0dc20, 0x1a7c9: 0x6ce44c20, 0x1a7ca: 0x6c6bc020, 0x1a7cb: 0x6cf35620,
-	0x1a7cc: 0x6c2dfa20, 0x1a7cd: 0x6cd1a220, 0x1a7ce: 0x6cd2c020, 0x1a7cf: 0x6cb28020,
-	0x1a7d0: 0x6c5ea420, 0x1a7d1: 0x6d017c20, 0x1a7d2: 0x6d31c620, 0x1a7d3: 0x6d017e20,
-	0x1a7d4: 0x6ca5ca20, 0x1a7d5: 0x6d2de020, 0x1a7d6: 0x6cf5ba20, 0x1a7d7: 0x6cef9e20,
-	0x1a7d8: 0x6c97b420, 0x1a7d9: 0x6c353a20, 0x1a7da: 0x6c910620, 0x1a7db: 0x6cb29820,
-	0x1a7dc: 0x6ce44e20, 0x1a7dd: 0x6c3aa420, 0x1a7de: 0x6cd55820, 0x1a7df: 0x6d01aa20,
-	0x1a7e0: 0x6ce8a020, 0x1a7e1: 0x6c939a20, 0x1a7e2: 0x6c93a620, 0x1a7e3: 0x6cf7f820,
-	0x1a7e4: 0x6c135420, 0x1a7e5: 0x6c93ae20, 0x1a7e6: 0x6c727820, 0x1a7e7: 0x6d01f620,
-	0x1a7e8: 0x6c72a420, 0x1a7e9: 0x6c73ba20, 0x1a7ea: 0x6c8a3020, 0x1a7eb: 0x6c74e620,
-	0x1a7ec: 0x6cd58820, 0x1a7ed: 0x6cf93a20, 0x1a7ee: 0x6c17fa20, 0x1a7ef: 0x6cea3620,
-	0x1a7f0: 0x6ca67420, 0x1a7f1: 0x6cccb020, 0x1a7f2: 0x6cec4820, 0x1a7f3: 0x6cfa6c20,
-	0x1a7f4: 0x6c856820, 0x1a7f5: 0x6c35c620, 0x1a7f6: 0x6c2a5420, 0x1a7f7: 0x6c5ca820,
-	0x1a7f8: 0x6c8f6820, 0x1a7f9: 0x6d165c20, 0x1a7fa: 0x6cb6ca20, 0x1a7fb: 0x6cc5b020,
-	0x1a7fc: 0x6cf49e20, 0x1a7fd: 0x6c4e8020, 0x1a7fe: 0x6ccf9c20, 0x1a7ff: 0x6d221820,
-	// Block 0x6a0, offset 0x1a800
-	0x1a800: 0x6c1e5220, 0x1a801: 0x6cdc1e20, 0x1a802: 0x6cb6cc20, 0x1a803: 0x6cc5b220,
-	0x1a804: 0x6d267c20, 0x1a805: 0x6c04b820, 0x1a806: 0x6d118420, 0x1a807: 0x6c01f220,
-	0x1a808: 0x6d0b0e20, 0x1a809: 0x6cf4a620, 0x1a80a: 0x6c6a6e20, 0x1a80b: 0x6c35cc20,
-	0x1a80c: 0x6c5fc620, 0x1a80d: 0x6cb8a420, 0x1a80e: 0x6c3b5420, 0x1a80f: 0x6cecc420,
-	0x1a810: 0x6cb57020, 0x1a811: 0x6c132820, 0x1a812: 0x6cb96a20, 0x1a813: 0x6cb57220,
-	0x1a814: 0x6c142e20, 0x1a815: 0x6c6bb020, 0x1a816: 0x6cc0d020, 0x1a817: 0x6c429820,
-	0x1a818: 0x6cfc7a20, 0x1a819: 0x6c02c020, 0x1a81a: 0x6c7f8a20, 0x1a81b: 0x6c29d020,
-	0x1a81c: 0x6c031a20, 0x1a81d: 0x6d427c20, 0x1a81e: 0x6d427e20, 0x1a81f: 0x6d100220,
-	0x1a820: 0x6c71f820, 0x1a821: 0x6c425c20, 0x1a822: 0x6c785820, 0x1a823: 0x6c466e20,
-	0x1a824: 0x6d08fa20, 0x1a825: 0x6cb2fa20, 0x1a826: 0x6c858a20, 0x1a827: 0x6ce56e20,
-	0x1a828: 0x6cc0e020, 0x1a829: 0x6d0c6220, 0x1a82a: 0x6c3de420, 0x1a82b: 0x6d052e20,
-	0x1a82c: 0x6c640020, 0x1a82d: 0x6c8e0a20, 0x1a82e: 0x6ceaec20, 0x1a82f: 0x6cafb220,
-	0x1a830: 0x6c02c820, 0x1a831: 0x6c273020, 0x1a832: 0x6c7be020, 0x1a833: 0x6d268620,
-	0x1a834: 0x6cc0e220, 0x1a835: 0x6c566220, 0x1a836: 0x6cb36620, 0x1a837: 0x6c9f2a20,
-	0x1a838: 0x6c01a220, 0x1a839: 0x6ce57020, 0x1a83a: 0x6c8ca620, 0x1a83b: 0x6c1b0620,
-	0x1a83c: 0x6cb2ea20, 0x1a83d: 0x6c2fde20, 0x1a83e: 0x6c4e8c20, 0x1a83f: 0x6c7c3420,
-	// Block 0x6a1, offset 0x1a840
-	0x1a840: 0x6d053020, 0x1a841: 0x6c992a20, 0x1a842: 0x6ce71420, 0x1a843: 0x6d08fc20,
-	0x1a844: 0x6d16ae20, 0x1a845: 0x6c0be220, 0x1a846: 0x6c50d220, 0x1a847: 0x6c032c20,
-	0x1a848: 0x6c95e620, 0x1a849: 0x6c35f020, 0x1a84a: 0x6c3fc220, 0x1a84b: 0x6d09e420,
-	0x1a84c: 0x6c2e6c20, 0x1a84d: 0x6c921e20, 0x1a84e: 0x6c371e20, 0x1a84f: 0x6c373c20,
-	0x1a850: 0x6c40e820, 0x1a851: 0x6cc28c20, 0x1a852: 0x6c305a20, 0x1a853: 0x6d149420,
-	0x1a854: 0x6ca22e20, 0x1a855: 0x6cd25020, 0x1a856: 0x6c011a20, 0x1a857: 0x6ceee820,
-	0x1a858: 0x6c586220, 0x1a859: 0x6d359620, 0x1a85a: 0x6c9d2c20, 0x1a85b: 0x6c850220,
-	0x1a85c: 0x6c61a420, 0x1a85d: 0x6ce72220, 0x1a85e: 0x6ceeea20, 0x1a85f: 0x6d202620,
-	0x1a860: 0x6c483420, 0x1a861: 0x6cf99420, 0x1a862: 0x6c850420, 0x1a863: 0x6d10d820,
-	0x1a864: 0x6c698620, 0x1a865: 0x6d329420, 0x1a866: 0x6c943220, 0x1a867: 0x6c683020,
-	0x1a868: 0x6c355420, 0x1a869: 0x6c355620, 0x1a86a: 0x6d22ee20, 0x1a86b: 0x6d007a20,
-	0x1a86c: 0x6c100e20, 0x1a86d: 0x6cbc3620, 0x1a86e: 0x6cc43420, 0x1a86f: 0x6c3c3220,
-	0x1a870: 0x6c3c3420, 0x1a871: 0x6ca4a220, 0x1a872: 0x6c850a20, 0x1a873: 0x6d1f1420,
-	0x1a874: 0x6cfca220, 0x1a875: 0x6c532820, 0x1a876: 0x6c29d220, 0x1a877: 0x6ccfc820,
-	0x1a878: 0x6c19cc20, 0x1a879: 0x6ce88e20, 0x1a87a: 0x6c44f620, 0x1a87b: 0x6c75a220,
-	0x1a87c: 0x6c502620, 0x1a87d: 0x6cf9a020, 0x1a87e: 0x6d1a4620, 0x1a87f: 0x6d223a20,
-	// Block 0x6a2, offset 0x1a880
-	0x1a880: 0x6c811620, 0x1a881: 0x6c770820, 0x1a882: 0x6c814e20, 0x1a883: 0x6c7ee820,
-	0x1a884: 0x6cfbf220, 0x1a885: 0x6cc3aa20, 0x1a886: 0x6c797020, 0x1a887: 0x6c1d1020,
-	0x1a888: 0x6c1d1220, 0x1a889: 0x6cde4620, 0x1a88a: 0x6c8bac20, 0x1a88b: 0x6c578a20,
-	0x1a88c: 0x6c708420, 0x1a88d: 0x6c7ef420, 0x1a88e: 0x6cb5be20, 0x1a88f: 0x6c9f4420,
-	0x1a890: 0x6c7d5420, 0x1a891: 0x6c7d5620, 0x1a892: 0x6d40b420, 0x1a893: 0x6c480a20,
-	0x1a894: 0x6c24c820, 0x1a895: 0x6d0b2620, 0x1a896: 0x6d0b2820, 0x1a897: 0x6c429e20,
-	0x1a898: 0x6c94ee20, 0x1a899: 0x6c94f020, 0x1a89a: 0x6c837420, 0x1a89b: 0x6c742020,
-	0x1a89c: 0x6c342820, 0x1a89d: 0x6d32ac20, 0x1a89e: 0x6c4c1e20, 0x1a89f: 0x6d1a5620,
-	0x1a8a0: 0x6c2ff220, 0x1a8a1: 0x6c4dfa20, 0x1a8a2: 0x6d32ae20, 0x1a8a3: 0x6cefac20,
-	0x1a8a4: 0x6cff7e20, 0x1a8a5: 0x6cafde20, 0x1a8a6: 0x6d0bf220, 0x1a8a7: 0x6cd91420,
-	0x1a8a8: 0x6c6ab220, 0x1a8a9: 0x6c07e220, 0x1a8aa: 0x6d40b620, 0x1a8ab: 0x6c7a3c20,
-	0x1a8ac: 0x6c2ff420, 0x1a8ad: 0x6d2de420, 0x1a8ae: 0x6c480c20, 0x1a8af: 0x6d1a5820,
-	0x1a8b0: 0x6d3f6a20, 0x1a8b1: 0x6d2b4e20, 0x1a8b2: 0x6c59c020, 0x1a8b3: 0x6d211820,
-	0x1a8b4: 0x6cec6220, 0x1a8b5: 0x6d0fb220, 0x1a8b6: 0x6c3c4a20, 0x1a8b7: 0x6cc05c20,
-	0x1a8b8: 0x6d0fb420, 0x1a8b9: 0x6ce32020, 0x1a8ba: 0x6d15ec20, 0x1a8bb: 0x6d361e20,
-	0x1a8bc: 0x6cd37c20, 0x1a8bd: 0x6d291620, 0x1a8be: 0x6d11ae20, 0x1a8bf: 0x6c363020,
-	// Block 0x6a3, offset 0x1a8c0
-	0x1a8c0: 0x6d3af220, 0x1a8c1: 0x6c76ac20, 0x1a8c2: 0x6c93dc20, 0x1a8c3: 0x6d0d7a20,
-	0x1a8c4: 0x6c9a5820, 0x1a8c5: 0x6c4e0e20, 0x1a8c6: 0x6c5ec820, 0x1a8c7: 0x6c5eca20,
-	0x1a8c8: 0x6c591e20, 0x1a8c9: 0x6ce67020, 0x1a8ca: 0x6cd16a20, 0x1a8cb: 0x6c99fa20,
-	0x1a8cc: 0x6cba5220, 0x1a8cd: 0x6cf4e820, 0x1a8ce: 0x6d211a20, 0x1a8cf: 0x6d3f8420,
-	0x1a8d0: 0x6c7f9a20, 0x1a8d1: 0x6c786420, 0x1a8d2: 0x6d0c9220, 0x1a8d3: 0x6d0c9420,
-	0x1a8d4: 0x6cefbc20, 0x1a8d5: 0x6d3f8620, 0x1a8d6: 0x6c13e020, 0x1a8d7: 0x6cdc3c20,
-	0x1a8d8: 0x6cc67220, 0x1a8d9: 0x6c78ee20, 0x1a8da: 0x6cbd2e20, 0x1a8db: 0x6d211c20,
-	0x1a8dc: 0x6ce45220, 0x1a8dd: 0x6c90e220, 0x1a8de: 0x6ce8ba20, 0x1a8df: 0x6c330420,
-	0x1a8e0: 0x6cf64220, 0x1a8e1: 0x6cf25220, 0x1a8e2: 0x6c123020, 0x1a8e3: 0x6c296c20,
-	0x1a8e4: 0x6cc68220, 0x1a8e5: 0x6c6ae020, 0x1a8e6: 0x6c765e20, 0x1a8e7: 0x6c8e6820,
-	0x1a8e8: 0x6cf4fc20, 0x1a8e9: 0x6cd92420, 0x1a8ea: 0x6cbb7c20, 0x1a8eb: 0x6d3e3620,
-	0x1a8ec: 0x6cef0c20, 0x1a8ed: 0x6c07f620, 0x1a8ee: 0x6c2ccc20, 0x1a8ef: 0x6c25da20,
-	0x1a8f0: 0x6cba1220, 0x1a8f1: 0x6d1e4420, 0x1a8f2: 0x6ca83e20, 0x1a8f3: 0x6c25dc20,
-	0x1a8f4: 0x6c614820, 0x1a8f5: 0x6cd41620, 0x1a8f6: 0x6cc93c20, 0x1a8f7: 0x6cd96820,
-	0x1a8f8: 0x6d3fa020, 0x1a8f9: 0x6c67f420, 0x1a8fa: 0x6c89f220, 0x1a8fb: 0x6c773c20,
-	0x1a8fc: 0x6c15c620, 0x1a8fd: 0x6c2ec820, 0x1a8fe: 0x6c132420, 0x1a8ff: 0x6c2f7820,
-	// Block 0x6a4, offset 0x1a900
-	0x1a900: 0x6ce86820, 0x1a901: 0x6c90ec20, 0x1a902: 0x6d2f3a20, 0x1a903: 0x6d2dfe20,
-	0x1a904: 0x6d2e0020, 0x1a905: 0x6c024e20, 0x1a906: 0x6c127c20, 0x1a907: 0x6cc11e20,
-	0x1a908: 0x6cbac820, 0x1a909: 0x6c24d620, 0x1a90a: 0x6d418e20, 0x1a90b: 0x6c29e220,
-	0x1a90c: 0x6c29e420, 0x1a90d: 0x6cf79020, 0x1a90e: 0x6d238c20, 0x1a90f: 0x6cae2620,
-	0x1a910: 0x6c8f9a20, 0x1a911: 0x6cfe4420, 0x1a912: 0x6c135620, 0x1a913: 0x6c0e8620,
-	0x1a914: 0x6cbd3c20, 0x1a915: 0x6c686620, 0x1a916: 0x6d0dc620, 0x1a917: 0x6c816a20,
-	0x1a918: 0x6d2e7420, 0x1a919: 0x6c8bcc20, 0x1a91a: 0x6c8a0820, 0x1a91b: 0x6c8a0a20,
-	0x1a91c: 0x6c6c5020, 0x1a91d: 0x6c2ae220, 0x1a91e: 0x6c350a20, 0x1a91f: 0x6d41ee20,
-	0x1a920: 0x6c69ba20, 0x1a921: 0x6c4b6220, 0x1a922: 0x6d113420, 0x1a923: 0x6c686820,
-	0x1a924: 0x6d113620, 0x1a925: 0x6c748e20, 0x1a926: 0x6d2d9620, 0x1a927: 0x6d188a20,
-	0x1a928: 0x6d091a20, 0x1a929: 0x6ca4be20, 0x1a92a: 0x6d133820, 0x1a92b: 0x6d133a20,
-	0x1a92c: 0x6d155a20, 0x1a92d: 0x6ca87020, 0x1a92e: 0x6cfc2a20, 0x1a92f: 0x6c608220,
-	0x1a930: 0x6d020c20, 0x1a931: 0x6c786e20, 0x1a932: 0x6cf69820, 0x1a933: 0x6c2c9a20,
-	0x1a934: 0x6c02e620, 0x1a935: 0x6d419c20, 0x1a936: 0x6cf14820, 0x1a937: 0x6d156c20,
-	0x1a938: 0x6cc6c020, 0x1a939: 0x6c29f020, 0x1a93a: 0x6c8e1420, 0x1a93b: 0x6d28cc20,
-	0x1a93c: 0x6d228c20, 0x1a93d: 0x6d26f220, 0x1a93e: 0x6d1b0c20, 0x1a93f: 0x6cc83820,
-	// Block 0x6a5, offset 0x1a940
-	0x1a940: 0x6c6b5420, 0x1a941: 0x6c869c20, 0x1a942: 0x6c4a9820, 0x1a943: 0x6c8fbe20,
-	0x1a944: 0x6c8fc020, 0x1a945: 0x6c2ce420, 0x1a946: 0x6cc6d620, 0x1a947: 0x6cf72a20,
-	0x1a948: 0x6c718620, 0x1a949: 0x6c155020, 0x1a94a: 0x6d1d2220, 0x1a94b: 0x6c7c5420,
-	0x1a94c: 0x6d0cee20, 0x1a94d: 0x6ceec820, 0x1a94e: 0x6ca4d420, 0x1a94f: 0x6cc32820,
-	0x1a950: 0x6c17ac20, 0x1a951: 0x6c24a420, 0x1a952: 0x6c945220, 0x1a953: 0x6c2cf420,
-	0x1a954: 0x6c2cf620, 0x1a955: 0x6ca8e020, 0x1a956: 0x6d0d1220, 0x1a957: 0x6d0d1020,
-	0x1a958: 0x6d0e2020, 0x1a959: 0x6c7cbc20, 0x1a95a: 0x6d0e2220, 0x1a95b: 0x6c1fd620,
-	0x1a95c: 0x6c7b0820, 0x1a95d: 0x6c1fd820, 0x1a95e: 0x6d385020, 0x1a95f: 0x6c597020,
-	0x1a960: 0x6c6d8a20, 0x1a961: 0x6d09d820, 0x1a962: 0x6c175e20, 0x1a963: 0x6c176020,
-	0x1a964: 0x6c8b2620, 0x1a965: 0x6c454a20, 0x1a966: 0x6d426020, 0x1a967: 0x6cbc1a20,
-	0x1a968: 0x6c71e820, 0x1a969: 0x6c45ce20, 0x1a96a: 0x6c71f220, 0x1a96b: 0x6cf35220,
-	0x1a96c: 0x6cb4be20, 0x1a96d: 0x6cb4c020, 0x1a96e: 0x6c143620, 0x1a96f: 0x6cc05e20,
-	0x1a970: 0x6cc08220, 0x1a971: 0x6c610e20, 0x1a972: 0x6d15ac20, 0x1a973: 0x6cd87020,
-	0x1a974: 0x6c03e620, 0x1a975: 0x6d338a20, 0x1a976: 0x6d2f5820, 0x1a977: 0x6cfe1e20,
-	0x1a978: 0x6d14bc20, 0x1a979: 0x6c6c8820, 0x1a97a: 0x6d0a6c20, 0x1a97b: 0x6c734020,
-	0x1a97c: 0x6c033820, 0x1a97d: 0x6d0a8c20, 0x1a97e: 0x6c6c1a20, 0x1a97f: 0x6c3dc620,
-	// Block 0x6a6, offset 0x1a980
-	0x1a980: 0x6d287e20, 0x1a981: 0x6c090220, 0x1a982: 0x6cd2f020, 0x1a983: 0x6c105820,
-	0x1a984: 0x6c2f4620, 0x1a985: 0x6cd66220, 0x1a986: 0x6c384a20, 0x1a987: 0x6ca7ec20,
-	0x1a988: 0x6cd19020, 0x1a989: 0x6c3b0e20, 0x1a98a: 0x6cabe420, 0x1a98b: 0x6d34e020,
-	0x1a98c: 0x6cf57a20, 0x1a98d: 0x6c565420, 0x1a98e: 0x6c286420, 0x1a98f: 0x6ceede20,
-	0x1a990: 0x6d2f2020, 0x1a991: 0x6ce16e20, 0x1a992: 0x6c273220, 0x1a993: 0x6ca0c820,
-	0x1a994: 0x6cae0620, 0x1a995: 0x6cabe620, 0x1a996: 0x6ce5e820, 0x1a997: 0x6c0e4c20,
-	0x1a998: 0x6c87f220, 0x1a999: 0x6d358620, 0x1a99a: 0x6d397620, 0x1a99b: 0x6c0eb420,
-	0x1a99c: 0x6d358820, 0x1a99d: 0x6c2c2620, 0x1a99e: 0x6ca0de20, 0x1a99f: 0x6d16e220,
-	0x1a9a0: 0x6d16e420, 0x1a9a1: 0x6cb28220, 0x1a9a2: 0x6cb84820, 0x1a9a3: 0x6c731420,
-	0x1a9a4: 0x6cc79220, 0x1a9a5: 0x6cd66420, 0x1a9a6: 0x6c274020, 0x1a9a7: 0x6d334020,
-	0x1a9a8: 0x6cd71420, 0x1a9a9: 0x6cbc3820, 0x1a9aa: 0x6d313620, 0x1a9ab: 0x6cd1b020,
-	0x1a9ac: 0x6cc44420, 0x1a9ad: 0x6cf77020, 0x1a9ae: 0x6c051c20, 0x1a9af: 0x6c275020,
-	0x1a9b0: 0x6c4a4420, 0x1a9b1: 0x6c1d9420, 0x1a9b2: 0x6cb29a20, 0x1a9b3: 0x6d2f2c20,
-	0x1a9b4: 0x6cca4a20, 0x1a9b5: 0x6cec8a20, 0x1a9b6: 0x6c275c20, 0x1a9b7: 0x6ceefc20,
-	0x1a9b8: 0x6c16a420, 0x1a9b9: 0x6ccc4820, 0x1a9ba: 0x6cb5c220, 0x1a9bb: 0x6d2abe20,
-	0x1a9bc: 0x6c4c6820, 0x1a9bd: 0x6c997a20, 0x1a9be: 0x6c321620, 0x1a9bf: 0x6c540020,
-	// Block 0x6a7, offset 0x1a9c0
-	0x1a9c0: 0x6d334c20, 0x1a9c1: 0x6d059420, 0x1a9c2: 0x6c9d4420, 0x1a9c3: 0x6cef0e20,
-	0x1a9c4: 0x6cf2ec20, 0x1a9c5: 0x6c3e7620, 0x1a9c6: 0x6d179620, 0x1a9c7: 0x6c052e20,
-	0x1a9c8: 0x6cb2a420, 0x1a9c9: 0x6c2f3a20, 0x1a9ca: 0x6c459220, 0x1a9cb: 0x6cac5e20,
-	0x1a9cc: 0x6c5a5420, 0x1a9cd: 0x6ce1d220, 0x1a9ce: 0x6c9d5420, 0x1a9cf: 0x6c644a20,
-	0x1a9d0: 0x6ce2a020, 0x1a9d1: 0x6c5ad020, 0x1a9d2: 0x6d37c020, 0x1a9d3: 0x6cccfa20,
-	0x1a9d4: 0x6c97e620, 0x1a9d5: 0x6ca29420, 0x1a9d6: 0x6c0c0820, 0x1a9d7: 0x6c4c7220,
-	0x1a9d8: 0x6d2adc20, 0x1a9d9: 0x6ca29620, 0x1a9da: 0x6c053420, 0x1a9db: 0x6d2f3c20,
-	0x1a9dc: 0x6c6e2820, 0x1a9dd: 0x6c15d220, 0x1a9de: 0x6c3ed620, 0x1a9df: 0x6d36a620,
-	0x1a9e0: 0x6c54f420, 0x1a9e1: 0x6c385820, 0x1a9e2: 0x6c207620, 0x1a9e3: 0x6c09f220,
-	0x1a9e4: 0x6c0ae220, 0x1a9e5: 0x6d2f4820, 0x1a9e6: 0x6c9d8420, 0x1a9e7: 0x6cbba420,
-	0x1a9e8: 0x6c14d820, 0x1a9e9: 0x6c3b8620, 0x1a9ea: 0x6c9b4820, 0x1a9eb: 0x6c053e20,
-	0x1a9ec: 0x6c1de420, 0x1a9ed: 0x6c9eee20, 0x1a9ee: 0x6c1eb820, 0x1a9ef: 0x6c6b3220,
-	0x1a9f0: 0x6cfc3e20, 0x1a9f1: 0x6c7fe220, 0x1a9f2: 0x6c420a20, 0x1a9f3: 0x6cb26e20,
-	0x1a9f4: 0x6ca6f220, 0x1a9f5: 0x6c646020, 0x1a9f6: 0x6c0e0420, 0x1a9f7: 0x6c0e0c20,
-	0x1a9f8: 0x6d041620, 0x1a9f9: 0x6c422620, 0x1a9fa: 0x6d107e20, 0x1a9fb: 0x6c58ec20,
-	0x1a9fc: 0x6d200c20, 0x1a9fd: 0x6d1e9a20, 0x1a9fe: 0x6c613e20, 0x1a9ff: 0x6c4a0220,
-	// Block 0x6a8, offset 0x1aa00
-	0x1aa00: 0x6cb04220, 0x1aa01: 0x6ce62420, 0x1aa02: 0x6d2b3420, 0x1aa03: 0x6c4a0420,
-	0x1aa04: 0x6d3c0820, 0x1aa05: 0x6ca1b020, 0x1aa06: 0x6cbec220, 0x1aa07: 0x6c091c20,
-	0x1aa08: 0x6cbd5220, 0x1aa09: 0x6c33d820, 0x1aa0a: 0x6c206c20, 0x1aa0b: 0x6c4ac220,
-	0x1aa0c: 0x6d0b4820, 0x1aa0d: 0x6c043020, 0x1aa0e: 0x6c6bb620, 0x1aa0f: 0x6d067020,
-	0x1aa10: 0x6c913420, 0x1aa11: 0x6cf42020, 0x1aa12: 0x6d3c5420, 0x1aa13: 0x6c7a8220,
-	0x1aa14: 0x6d1b9e20, 0x1aa15: 0x6c2bd620, 0x1aa16: 0x6cad4c20, 0x1aa17: 0x6c2d3c20,
-	0x1aa18: 0x6d0ad020, 0x1aa19: 0x6c9eac20, 0x1aa1a: 0x6c44ba20, 0x1aa1b: 0x6c22b820,
-	0x1aa1c: 0x6c3f3e20, 0x1aa1d: 0x6ce71820, 0x1aa1e: 0x6cacf220, 0x1aa1f: 0x6c3a8220,
-	0x1aa20: 0x6cfdb420, 0x1aa21: 0x6d15ce20, 0x1aa22: 0x6d359820, 0x1aa23: 0x6ce54e20,
-	0x1aa24: 0x6d359a20, 0x1aa25: 0x6d04be20, 0x1aa26: 0x6c324420, 0x1aa27: 0x6d428e20,
-	0x1aa28: 0x6cfe9c20, 0x1aa29: 0x6ce89020, 0x1aa2a: 0x6c4ae620, 0x1aa2b: 0x6c7a8820,
-	0x1aa2c: 0x6c984e20, 0x1aa2d: 0x6ce66420, 0x1aa2e: 0x6d1fb620, 0x1aa2f: 0x6c101020,
-	0x1aa30: 0x6c0e0e20, 0x1aa31: 0x6c1a6e20, 0x1aa32: 0x6c7ef620, 0x1aa33: 0x6c097620,
-	0x1aa34: 0x6c601620, 0x1aa35: 0x6c012620, 0x1aa36: 0x6cd5c220, 0x1aa37: 0x6c772c20,
-	0x1aa38: 0x6d1d8420, 0x1aa39: 0x6ceb7820, 0x1aa3a: 0x6cd91620, 0x1aa3b: 0x6cd5c420,
-	0x1aa3c: 0x6cbea620, 0x1aa3d: 0x6d233620, 0x1aa3e: 0x6d224a20, 0x1aa3f: 0x6c9eb420,
-	// Block 0x6a9, offset 0x1aa40
-	0x1aa40: 0x6cd9ac20, 0x1aa41: 0x6c12e620, 0x1aa42: 0x6cfd7220, 0x1aa43: 0x6c3aaa20,
-	0x1aa44: 0x6c6ff820, 0x1aa45: 0x6c365420, 0x1aa46: 0x6c4a6620, 0x1aa47: 0x6c8f3420,
-	0x1aa48: 0x6ccc5620, 0x1aa49: 0x6c881020, 0x1aa4a: 0x6c80b420, 0x1aa4b: 0x6cd9ae20,
-	0x1aa4c: 0x6d365220, 0x1aa4d: 0x6cb3f620, 0x1aa4e: 0x6cbeac20, 0x1aa4f: 0x6c700e20,
-	0x1aa50: 0x6c6ffa20, 0x1aa51: 0x6c6c9e20, 0x1aa52: 0x6c025020, 0x1aa53: 0x6c7e0420,
-	0x1aa54: 0x6c90a020, 0x1aa55: 0x6d1b5e20, 0x1aa56: 0x6c8a9e20, 0x1aa57: 0x6c277e20,
-	0x1aa58: 0x6c927c20, 0x1aa59: 0x6d182220, 0x1aa5a: 0x6c1ea420, 0x1aa5b: 0x6c151a20,
-	0x1aa5c: 0x6ce8d820, 0x1aa5d: 0x6cd81220, 0x1aa5e: 0x6d02e420, 0x1aa5f: 0x6c9eb820,
-	0x1aa60: 0x6c16f420, 0x1aa61: 0x6cf46220, 0x1aa62: 0x6c3ac420, 0x1aa63: 0x6c4a0820,
-	0x1aa64: 0x6c7aa620, 0x1aa65: 0x6c7b3c20, 0x1aa66: 0x6c0a4820, 0x1aa67: 0x6cbb2220,
-	0x1aa68: 0x6d021020, 0x1aa69: 0x6c8c2c20, 0x1aa6a: 0x6c8c2e20, 0x1aa6b: 0x6c8a3220,
-	0x1aa6c: 0x6c916e20, 0x1aa6d: 0x6c631220, 0x1aa6e: 0x6d1d2420, 0x1aa6f: 0x6cfafa20,
-	0x1aa70: 0x6ce65420, 0x1aa71: 0x6d1dd820, 0x1aa72: 0x6c84bc20, 0x1aa73: 0x6ce65820,
-	0x1aa74: 0x6d1ac020, 0x1aa75: 0x6d09d220, 0x1aa76: 0x6d0c5220, 0x1aa77: 0x6ce65c20,
-	0x1aa78: 0x6c2b5220, 0x1aa79: 0x6cac1420, 0x1aa7a: 0x6c665420, 0x1aa7b: 0x6c5b1c20,
-	0x1aa7c: 0x6ca39a20, 0x1aa7d: 0x6c5b2220, 0x1aa7e: 0x6c45cc20, 0x1aa7f: 0x6ca75620,
-	// Block 0x6aa, offset 0x1aa80
-	0x1aa80: 0x6c762420, 0x1aa81: 0x6c0b6620, 0x1aa82: 0x6d166220, 0x1aa83: 0x6cb73620,
-	0x1aa84: 0x6ca9f020, 0x1aa85: 0x6c3bc620, 0x1aa86: 0x6c71a420, 0x1aa87: 0x6d0d5620,
-	0x1aa88: 0x6d16ea20, 0x1aa89: 0x6d2a0020, 0x1aa8a: 0x6c09f420, 0x1aa8b: 0x6d163c20,
-	0x1aa8c: 0x6d13ba20, 0x1aa8d: 0x6c37b820, 0x1aa8e: 0x6cc9f820, 0x1aa8f: 0x6cd2fc20,
-	0x1aa90: 0x6c37ba20, 0x1aa91: 0x6cd38020, 0x1aa92: 0x6cd39a20, 0x1aa93: 0x6c454c20,
-	0x1aa94: 0x6c2e0420, 0x1aa95: 0x6d1ac420, 0x1aa96: 0x6c563620, 0x1aa97: 0x6c3dc820,
-	0x1aa98: 0x6c52ea20, 0x1aa99: 0x6cf34420, 0x1aa9a: 0x6ce99c20, 0x1aa9b: 0x6c1af420,
-	0x1aa9c: 0x6c67d420, 0x1aa9d: 0x6c03a820, 0x1aa9e: 0x6cd04420, 0x1aa9f: 0x6c2c1420,
-	0x1aaa0: 0x6d2eb020, 0x1aaa1: 0x6c73dc20, 0x1aaa2: 0x6ce1b020, 0x1aaa3: 0x6c3f4020,
-	0x1aaa4: 0x6c2bd820, 0x1aaa5: 0x6c9c3820, 0x1aaa6: 0x6cfb2c20, 0x1aaa7: 0x6c552220,
-	0x1aaa8: 0x6c173820, 0x1aaa9: 0x6caa4e20, 0x1aaaa: 0x6c6e4c20, 0x1aaab: 0x6d31be20,
-	0x1aaac: 0x6d14be20, 0x1aaad: 0x6c9ce020, 0x1aaae: 0x6cc28e20, 0x1aaaf: 0x6cec8220,
-	0x1aab0: 0x6cce5e20, 0x1aab1: 0x6cc91820, 0x1aab2: 0x6d078620, 0x1aab3: 0x6c6e6420,
-	0x1aab4: 0x6c2dc220, 0x1aab5: 0x6d2eb420, 0x1aab6: 0x6c67de20, 0x1aab7: 0x6cbb0820,
-	0x1aab8: 0x6cae9a20, 0x1aab9: 0x6c287820, 0x1aaba: 0x6cbb0e20, 0x1aabb: 0x6c099620,
-	0x1aabc: 0x6c099820, 0x1aabd: 0x6ccf4820, 0x1aabe: 0x6c288820, 0x1aabf: 0x6c65aa20,
-	// Block 0x6ab, offset 0x1aac0
-	0x1aac0: 0x6c46b420, 0x1aac1: 0x6c448e20, 0x1aac2: 0x6c37f020, 0x1aac3: 0x6c09c420,
-	0x1aac4: 0x6c79c020, 0x1aac5: 0x6c673820, 0x1aac6: 0x6c0d1820, 0x1aac7: 0x6cff1420,
-	0x1aac8: 0x6c28a620, 0x1aac9: 0x6c4c2e20, 0x1aaca: 0x6c67f820, 0x1aacb: 0x6c538620,
-	0x1aacc: 0x6c9c7820, 0x1aacd: 0x6c4c4420, 0x1aace: 0x6ceca420, 0x1aacf: 0x6c751620,
-	0x1aad0: 0x6c616820, 0x1aad1: 0x6c616a20, 0x1aad2: 0x6c4a3220, 0x1aad3: 0x6c28f820,
-	0x1aad4: 0x6c921a20, 0x1aad5: 0x6c921c20, 0x1aad6: 0x6ce98820, 0x1aad7: 0x6c5bb420,
-	0x1aad8: 0x6d362220, 0x1aad9: 0x6c5bda20, 0x1aada: 0x6c5bdc20, 0x1aadb: 0x6d155c20,
-	0x1aadc: 0x6d155e20, 0x1aadd: 0x6d158020, 0x1aade: 0x6d158220, 0x1aadf: 0x6d265e20,
-	0x1aae0: 0x6d266220, 0x1aae1: 0x6cccb220, 0x1aae2: 0x6d03c020, 0x1aae3: 0x6cf17c20,
-	0x1aae4: 0x6ce71020, 0x1aae5: 0x6d0e4620, 0x1aae6: 0x6d0e4820, 0x1aae7: 0x6d22f020,
-	0x1aae8: 0x6c1a9c20, 0x1aae9: 0x6c112620, 0x1aaea: 0x6c0bfa20, 0x1aaeb: 0x6c2dc420,
-	0x1aaec: 0x6c0d3020, 0x1aaed: 0x6cae9e20, 0x1aaee: 0x6d1e4620, 0x1aaef: 0x6cb19820,
-	0x1aaf0: 0x6d2ec420, 0x1aaf1: 0x6d1d0420, 0x1aaf2: 0x6c1af020, 0x1aaf3: 0x6c1bd420,
-	0x1aaf4: 0x6d3d1c20, 0x1aaf5: 0x6ceb6c20, 0x1aaf6: 0x6c5fc820, 0x1aaf7: 0x6c39be20,
-	0x1aaf8: 0x6d379220, 0x1aaf9: 0x6d168420, 0x1aafa: 0x6cedde20, 0x1aafb: 0x6c17fe20,
-	0x1aafc: 0x6c08c020, 0x1aafd: 0x6c2b1620, 0x1aafe: 0x6c8caa20, 0x1aaff: 0x6c3dea20,
-	// Block 0x6ac, offset 0x1ab00
-	0x1ab00: 0x6cedfa20, 0x1ab01: 0x6d328820, 0x1ab02: 0x6c241e20, 0x1ab03: 0x6cedfc20,
-	0x1ab04: 0x6c6e4e20, 0x1ab05: 0x6c274220, 0x1ab06: 0x6cf59e20, 0x1ab07: 0x6d0a7020,
-	0x1ab08: 0x6c523a20, 0x1ab09: 0x6d0f9420, 0x1ab0a: 0x6c57e820, 0x1ab0b: 0x6c93d020,
-	0x1ab0c: 0x6c546420, 0x1ab0d: 0x6cee0220, 0x1ab0e: 0x6c1a6620, 0x1ab0f: 0x6d35b220,
-	0x1ab10: 0x6d061820, 0x1ab11: 0x6c6e6620, 0x1ab12: 0x6ce89220, 0x1ab13: 0x6c238e20,
-	0x1ab14: 0x6d377e20, 0x1ab15: 0x6c7eea20, 0x1ab16: 0x6c239620, 0x1ab17: 0x6c2a9020,
-	0x1ab18: 0x6cabf820, 0x1ab19: 0x6cf7dc20, 0x1ab1a: 0x6c300020, 0x1ab1b: 0x6c61e620,
-	0x1ab1c: 0x6c16a620, 0x1ab1d: 0x6d35dc20, 0x1ab1e: 0x6c239820, 0x1ab1f: 0x6d387020,
-	0x1ab20: 0x6c7ef820, 0x1ab21: 0x6d233820, 0x1ab22: 0x6d018e20, 0x1ab23: 0x6c6bdc20,
-	0x1ab24: 0x6c667820, 0x1ab25: 0x6cd38220, 0x1ab26: 0x6c641620, 0x1ab27: 0x6c0b9820,
-	0x1ab28: 0x6c59c220, 0x1ab29: 0x6c3ff020, 0x1ab2a: 0x6d0a0e20, 0x1ab2b: 0x6cefbe20,
-	0x1ab2c: 0x6cad0420, 0x1ab2d: 0x6d110c20, 0x1ab2e: 0x6cee9820, 0x1ab2f: 0x6cf64820,
-	0x1ab30: 0x6d32d020, 0x1ab31: 0x6cb1b620, 0x1ab32: 0x6ce36220, 0x1ab33: 0x6c2a7c20,
-	0x1ab34: 0x6d32de20, 0x1ab35: 0x6d32f020, 0x1ab36: 0x6c0cf420, 0x1ab37: 0x6c2a7e20,
-	0x1ab38: 0x6c1cd420, 0x1ab39: 0x6c183020, 0x1ab3a: 0x6c692620, 0x1ab3b: 0x6c5c2c20,
-	0x1ab3c: 0x6c693c20, 0x1ab3d: 0x6c5af220, 0x1ab3e: 0x6c9a2e20, 0x1ab3f: 0x6c906c20,
-	// Block 0x6ad, offset 0x1ab40
-	0x1ab40: 0x6cfd9220, 0x1ab41: 0x6c067a20, 0x1ab42: 0x6cc1fe20, 0x1ab43: 0x6d02a220,
-	0x1ab44: 0x6d036220, 0x1ab45: 0x6c090420, 0x1ab46: 0x6d164020, 0x1ab47: 0x6c820c20,
-	0x1ab48: 0x6cc56420, 0x1ab49: 0x6c29b620, 0x1ab4a: 0x6c2f8e20, 0x1ab4b: 0x6c410820,
-	0x1ab4c: 0x6c618020, 0x1ab4d: 0x6cc58620, 0x1ab4e: 0x6cc56a20, 0x1ab4f: 0x6c162620,
-	0x1ab50: 0x6ce05020, 0x1ab51: 0x6ce26820, 0x1ab52: 0x6ce26a20, 0x1ab53: 0x6c416020,
-	0x1ab54: 0x6cb72a20, 0x1ab55: 0x6cd2fe20, 0x1ab56: 0x6c25ae20, 0x1ab57: 0x6d357420,
-	0x1ab58: 0x6cee4620, 0x1ab59: 0x6c982820, 0x1ab5a: 0x6cf56e20, 0x1ab5b: 0x6c388220,
-	0x1ab5c: 0x6d1ba020, 0x1ab5d: 0x6ce4d820, 0x1ab5e: 0x6c9f2c20, 0x1ab5f: 0x6cf1ca20,
-	0x1ab60: 0x6d379620, 0x1ab61: 0x6c1cac20, 0x1ab62: 0x6cf4b620, 0x1ab63: 0x6c5fca20,
-	0x1ab64: 0x6cf42220, 0x1ab65: 0x6cf84620, 0x1ab66: 0x6c639a20, 0x1ab67: 0x6d1e8e20,
-	0x1ab68: 0x6ced7420, 0x1ab69: 0x6c230220, 0x1ab6a: 0x6cd90220, 0x1ab6b: 0x6c7b0e20,
-	0x1ab6c: 0x6d22d020, 0x1ab6d: 0x6c0b6c20, 0x1ab6e: 0x6d357620, 0x1ab6f: 0x6cb57420,
-	0x1ab70: 0x6c251820, 0x1ab71: 0x6c189a20, 0x1ab72: 0x6cdf5e20, 0x1ab73: 0x6cea3e20,
-	0x1ab74: 0x6cb96e20, 0x1ab75: 0x6ca75a20, 0x1ab76: 0x6c5cde20, 0x1ab77: 0x6d045420,
-	0x1ab78: 0x6ca97620, 0x1ab79: 0x6c7bb620, 0x1ab7a: 0x6cfa7820, 0x1ab7b: 0x6d02aa20,
-	0x1ab7c: 0x6c772420, 0x1ab7d: 0x6c549e20, 0x1ab7e: 0x6c767c20, 0x1ab7f: 0x6c3bce20,
-	// Block 0x6ae, offset 0x1ab80
-	0x1ab80: 0x6c57e620, 0x1ab81: 0x6cdf6220, 0x1ab82: 0x6cd95220, 0x1ab83: 0x6cf42420,
-	0x1ab84: 0x6cab9a20, 0x1ab85: 0x6c170220, 0x1ab86: 0x6c20a020, 0x1ab87: 0x6c71fa20,
-	0x1ab88: 0x6d16b420, 0x1ab89: 0x6c05e620, 0x1ab8a: 0x6c173a20, 0x1ab8b: 0x6c9f2e20,
-	0x1ab8c: 0x6cadb020, 0x1ab8d: 0x6d428020, 0x1ab8e: 0x6d2b7620, 0x1ab8f: 0x6d104020,
-	0x1ab90: 0x6c720a20, 0x1ab91: 0x6c04e820, 0x1ab92: 0x6caa5e20, 0x1ab93: 0x6ca49420,
-	0x1ab94: 0x6d328a20, 0x1ab95: 0x6cabe820, 0x1ab96: 0x6c106a20, 0x1ab97: 0x6ce5ea20,
-	0x1ab98: 0x6c567020, 0x1ab99: 0x6c566420, 0x1ab9a: 0x6c720c20, 0x1ab9b: 0x6c267e20,
-	0x1ab9c: 0x6c87f420, 0x1ab9d: 0x6cd7d420, 0x1ab9e: 0x6c1d8e20, 0x1ab9f: 0x6c2c2020,
-	0x1aba0: 0x6c274420, 0x1aba1: 0x6d147020, 0x1aba2: 0x6ce84020, 0x1aba3: 0x6d1f0620,
-	0x1aba4: 0x6c3d4820, 0x1aba5: 0x6c5ff420, 0x1aba6: 0x6cae5420, 0x1aba7: 0x6d041820,
-	0x1aba8: 0x6d260420, 0x1aba9: 0x6ca5be20, 0x1abaa: 0x6c48e620, 0x1abab: 0x6c3dec20,
-	0x1abac: 0x6cf84820, 0x1abad: 0x6c093220, 0x1abae: 0x6d1e9620, 0x1abaf: 0x6cbc9620,
-	0x1abb0: 0x6d086e20, 0x1abb1: 0x6c230820, 0x1abb2: 0x6c0dc220, 0x1abb3: 0x6c5a4220,
-	0x1abb4: 0x6d068020, 0x1abb5: 0x6c1f0e20, 0x1abb6: 0x6c093420, 0x1abb7: 0x6cd5ac20,
-	0x1abb8: 0x6cf5a020, 0x1abb9: 0x6cdf9620, 0x1abba: 0x6d1e8220, 0x1abbb: 0x6d3fe820,
-	0x1abbc: 0x6c334220, 0x1abbd: 0x6ca1b220, 0x1abbe: 0x6d34f220, 0x1abbf: 0x6d16b620,
-	// Block 0x6af, offset 0x1abc0
-	0x1abc0: 0x6cd33220, 0x1abc1: 0x6ca59420, 0x1abc2: 0x6d09e820, 0x1abc3: 0x6cd33420,
-	0x1abc4: 0x6cf86020, 0x1abc5: 0x6c81a420, 0x1abc6: 0x6c525820, 0x1abc7: 0x6c7b8e20,
-	0x1abc8: 0x6ca1c620, 0x1abc9: 0x6d34fe20, 0x1abca: 0x6d008020, 0x1abcb: 0x6c88e820,
-	0x1abcc: 0x6ce55220, 0x1abcd: 0x6c5a4820, 0x1abce: 0x6c2e7020, 0x1abcf: 0x6c502820,
-	0x1abd0: 0x6c799e20, 0x1abd1: 0x6c4ad420, 0x1abd2: 0x6c525a20, 0x1abd3: 0x6cf5a220,
-	0x1abd4: 0x6c68ce20, 0x1abd5: 0x6cd5b820, 0x1abd6: 0x6cd8fe20, 0x1abd7: 0x6c54aa20,
-	0x1abd8: 0x6cbfa420, 0x1abd9: 0x6d104220, 0x1abda: 0x6c5ba820, 0x1abdb: 0x6c5b2420,
-	0x1abdc: 0x6c1bfa20, 0x1abdd: 0x6c63b020, 0x1abde: 0x6d149a20, 0x1abdf: 0x6d045e20,
-	0x1abe0: 0x6c48ec20, 0x1abe1: 0x6c8c4c20, 0x1abe2: 0x6c5a9220, 0x1abe3: 0x6d3f3a20,
-	0x1abe4: 0x6d068e20, 0x1abe5: 0x6c1b8a20, 0x1abe6: 0x6cce4e20, 0x1abe7: 0x6caa7c20,
-	0x1abe8: 0x6c524220, 0x1abe9: 0x6c371020, 0x1abea: 0x6c788e20, 0x1abeb: 0x6c305e20,
-	0x1abec: 0x6ce48820, 0x1abed: 0x6c457c20, 0x1abee: 0x6cc29020, 0x1abef: 0x6cf94220,
-	0x1abf0: 0x6cb84a20, 0x1abf1: 0x6d268c20, 0x1abf2: 0x6cae5820, 0x1abf3: 0x6c790020,
-	0x1abf4: 0x6c2a6420, 0x1abf5: 0x6c5baa20, 0x1abf6: 0x6c35fa20, 0x1abf7: 0x6d003220,
-	0x1abf8: 0x6ce7c620, 0x1abf9: 0x6d0be020, 0x1abfa: 0x6c764c20, 0x1abfb: 0x6c12ce20,
-	0x1abfc: 0x6ca4e020, 0x1abfd: 0x6d282020, 0x1abfe: 0x6c984020, 0x1abff: 0x6d1e2a20,
-	// Block 0x6b0, offset 0x1ac00
-	0x1ac00: 0x6d1e2220, 0x1ac01: 0x6d24d420, 0x1ac02: 0x6caf5220, 0x1ac03: 0x6c7da020,
-	0x1ac04: 0x6cbb6a20, 0x1ac05: 0x6d269420, 0x1ac06: 0x6d230c20, 0x1ac07: 0x6ce89420,
-	0x1ac08: 0x6c6bd820, 0x1ac09: 0x6cf5e220, 0x1ac0a: 0x6d304a20, 0x1ac0b: 0x6c8c4e20,
-	0x1ac0c: 0x6ce3e020, 0x1ac0d: 0x6c4e9620, 0x1ac0e: 0x6c502a20, 0x1ac0f: 0x6cbca820,
-	0x1ac10: 0x6ce3ea20, 0x1ac11: 0x6c108220, 0x1ac12: 0x6d172620, 0x1ac13: 0x6cba4a20,
-	0x1ac14: 0x6c5b4c20, 0x1ac15: 0x6cf5bc20, 0x1ac16: 0x6c070020, 0x1ac17: 0x6c975e20,
-	0x1ac18: 0x6d13e420, 0x1ac19: 0x6c524820, 0x1ac1a: 0x6cd95620, 0x1ac1b: 0x6cc29420,
-	0x1ac1c: 0x6c1a6820, 0x1ac1d: 0x6c7c3820, 0x1ac1e: 0x6cf4d020, 0x1ac1f: 0x6cf4d220,
-	0x1ac20: 0x6d1e9e20, 0x1ac21: 0x6c83b620, 0x1ac22: 0x6c89ae20, 0x1ac23: 0x6c590e20,
-	0x1ac24: 0x6c230c20, 0x1ac25: 0x6d175a20, 0x1ac26: 0x6d269620, 0x1ac27: 0x6c85c820,
-	0x1ac28: 0x6ca8e620, 0x1ac29: 0x6ca4e620, 0x1ac2a: 0x6c360e20, 0x1ac2b: 0x6cc3b620,
-	0x1ac2c: 0x6d080e20, 0x1ac2d: 0x6cb8c420, 0x1ac2e: 0x6cf4d420, 0x1ac2f: 0x6c9fa420,
-	0x1ac30: 0x6c239a20, 0x1ac31: 0x6c3a5220, 0x1ac32: 0x6c069c20, 0x1ac33: 0x6c344c20,
-	0x1ac34: 0x6c253420, 0x1ac35: 0x6c171220, 0x1ac36: 0x6c9af220, 0x1ac37: 0x6cca4e20,
-	0x1ac38: 0x6c61ea20, 0x1ac39: 0x6c498820, 0x1ac3a: 0x6c497e20, 0x1ac3b: 0x6d042820,
-	0x1ac3c: 0x6c2a0e20, 0x1ac3d: 0x6cb4e620, 0x1ac3e: 0x6c797420, 0x1ac3f: 0x6ce4ec20,
-	// Block 0x6b1, offset 0x1ac40
-	0x1ac40: 0x6c94f220, 0x1ac41: 0x6cf60a20, 0x1ac42: 0x6c76d220, 0x1ac43: 0x6c4bc020,
-	0x1ac44: 0x6ca6a020, 0x1ac45: 0x6cbe7620, 0x1ac46: 0x6c1da020, 0x1ac47: 0x6c339820,
-	0x1ac48: 0x6c4cb620, 0x1ac49: 0x6d2d7420, 0x1ac4a: 0x6c6da820, 0x1ac4b: 0x6ced0420,
-	0x1ac4c: 0x6d24ea20, 0x1ac4d: 0x6c6c4220, 0x1ac4e: 0x6c620020, 0x1ac4f: 0x6c7f9620,
-	0x1ac50: 0x6d231020, 0x1ac51: 0x6c5dca20, 0x1ac52: 0x6c512620, 0x1ac53: 0x6cc2da20,
-	0x1ac54: 0x6cdfdc20, 0x1ac55: 0x6ce3ec20, 0x1ac56: 0x6ce3f420, 0x1ac57: 0x6ca81620,
-	0x1ac58: 0x6cee0e20, 0x1ac59: 0x6c21b420, 0x1ac5a: 0x6c54bc20, 0x1ac5b: 0x6c5cc020,
-	0x1ac5c: 0x6cf5e420, 0x1ac5d: 0x6c16ea20, 0x1ac5e: 0x6d02ca20, 0x1ac5f: 0x6ceefe20,
-	0x1ac60: 0x6c5bc020, 0x1ac61: 0x6c363420, 0x1ac62: 0x6cdd6620, 0x1ac63: 0x6d3fee20,
-	0x1ac64: 0x6c648420, 0x1ac65: 0x6d1e3620, 0x1ac66: 0x6c2d4e20, 0x1ac67: 0x6c723c20,
-	0x1ac68: 0x6c11ce20, 0x1ac69: 0x6c19fc20, 0x1ac6a: 0x6c2a6e20, 0x1ac6b: 0x6c072220,
-	0x1ac6c: 0x6cbcb420, 0x1ac6d: 0x6c119420, 0x1ac6e: 0x6c287a20, 0x1ac6f: 0x6c498020,
-	0x1ac70: 0x6c34f420, 0x1ac71: 0x6ca4f820, 0x1ac72: 0x6d283220, 0x1ac73: 0x6cfdea20,
-	0x1ac74: 0x6d3c8420, 0x1ac75: 0x6c2ea220, 0x1ac76: 0x6c59c420, 0x1ac77: 0x6c217e20,
-	0x1ac78: 0x6cbf2220, 0x1ac79: 0x6cc54c20, 0x1ac7a: 0x6d037220, 0x1ac7b: 0x6c12e820,
-	0x1ac7c: 0x6c0b3e20, 0x1ac7d: 0x6c9fac20, 0x1ac7e: 0x6d3f8a20, 0x1ac7f: 0x6ce32220,
-	// Block 0x6b2, offset 0x1ac80
-	0x1ac80: 0x6cbc2620, 0x1ac81: 0x6c1db820, 0x1ac82: 0x6c073020, 0x1ac83: 0x6d079820,
-	0x1ac84: 0x6cee8620, 0x1ac85: 0x6c43ea20, 0x1ac86: 0x6cb8ee20, 0x1ac87: 0x6cefc020,
-	0x1ac88: 0x6d236a20, 0x1ac89: 0x6d212420, 0x1ac8a: 0x6c099a20, 0x1ac8b: 0x6d079a20,
-	0x1ac8c: 0x6c592020, 0x1ac8d: 0x6c9fb620, 0x1ac8e: 0x6c099c20, 0x1ac8f: 0x6d17e220,
-	0x1ac90: 0x6c9e2420, 0x1ac91: 0x6d1e3820, 0x1ac92: 0x6c768820, 0x1ac93: 0x6c296620,
-	0x1ac94: 0x6d19e020, 0x1ac95: 0x6c363620, 0x1ac96: 0x6c18c620, 0x1ac97: 0x6c998a20,
-	0x1ac98: 0x6cb86820, 0x1ac99: 0x6c78b820, 0x1ac9a: 0x6d214820, 0x1ac9b: 0x6c00a820,
-	0x1ac9c: 0x6cbcc020, 0x1ac9d: 0x6d0d7e20, 0x1ac9e: 0x6caaf620, 0x1ac9f: 0x6c41dc20,
-	0x1aca0: 0x6d283420, 0x1aca1: 0x6d3ff020, 0x1aca2: 0x6cc9c220, 0x1aca3: 0x6c839620,
-	0x1aca4: 0x6c3bd820, 0x1aca5: 0x6d1d6620, 0x1aca6: 0x6c7cf820, 0x1aca7: 0x6c7cfa20,
-	0x1aca8: 0x6cc3d820, 0x1aca9: 0x6c459420, 0x1acaa: 0x6d27ae20, 0x1acab: 0x6cdaca20,
-	0x1acac: 0x6cdae420, 0x1acad: 0x6cb5f820, 0x1acae: 0x6d110e20, 0x1acaf: 0x6cd96020,
-	0x1acb0: 0x6c5a6c20, 0x1acb1: 0x6c604e20, 0x1acb2: 0x6c478c20, 0x1acb3: 0x6c726220,
-	0x1acb4: 0x6c20ae20, 0x1acb5: 0x6ca6aa20, 0x1acb6: 0x6d00b620, 0x1acb7: 0x6c766020,
-	0x1acb8: 0x6d332a20, 0x1acb9: 0x6d1e4820, 0x1acba: 0x6c12ae20, 0x1acbb: 0x6d0a9a20,
-	0x1acbc: 0x6cd0aa20, 0x1acbd: 0x6c0f1020, 0x1acbe: 0x6c768e20, 0x1acbf: 0x6d262820,
-	// Block 0x6b3, offset 0x1acc0
-	0x1acc0: 0x6cf89e20, 0x1acc1: 0x6c5d3420, 0x1acc2: 0x6d1e5020, 0x1acc3: 0x6d102420,
-	0x1acc4: 0x6c862e20, 0x1acc5: 0x6ccaaa20, 0x1acc6: 0x6ce1d420, 0x1acc7: 0x6d19f220,
-	0x1acc8: 0x6c224e20, 0x1acc9: 0x6d06f220, 0x1acca: 0x6cba5820, 0x1accb: 0x6cdf7c20,
-	0x1accc: 0x6c599420, 0x1accd: 0x6d283a20, 0x1acce: 0x6cd0ac20, 0x1accf: 0x6ca03820,
-	0x1acd0: 0x6c463020, 0x1acd1: 0x6ccf5020, 0x1acd2: 0x6c23a420, 0x1acd3: 0x6cb15820,
-	0x1acd4: 0x6ca29820, 0x1acd5: 0x6ca2a020, 0x1acd6: 0x6c4c7620, 0x1acd7: 0x6c1c5620,
-	0x1acd8: 0x6c11d420, 0x1acd9: 0x6c11a620, 0x1acda: 0x6c119c20, 0x1acdb: 0x6c24da20,
-	0x1acdc: 0x6c9fc220, 0x1acdd: 0x6ce27e20, 0x1acde: 0x6d2ec820, 0x1acdf: 0x6ce7ce20,
-	0x1ace0: 0x6c02d820, 0x1ace1: 0x6cd6d620, 0x1ace2: 0x6c97e820, 0x1ace3: 0x6c499620,
-	0x1ace4: 0x6cc3ea20, 0x1ace5: 0x6d2a8420, 0x1ace6: 0x6c701620, 0x1ace7: 0x6c5c1020,
-	0x1ace8: 0x6c765820, 0x1ace9: 0x6c881220, 0x1acea: 0x6cab9e20, 0x1aceb: 0x6cd96c20,
-	0x1acec: 0x6cbd8e20, 0x1aced: 0x6d1b7020, 0x1acee: 0x6c93f220, 0x1acef: 0x6cce0c20,
-	0x1acf0: 0x6cf0b820, 0x1acf1: 0x6ce95220, 0x1acf2: 0x6c976c20, 0x1acf3: 0x6cb8fe20,
-	0x1acf4: 0x6ccf6220, 0x1acf5: 0x6d1d9c20, 0x1acf6: 0x6cbed620, 0x1acf7: 0x6c773e20,
-	0x1acf8: 0x6c2c8e20, 0x1acf9: 0x6d348e20, 0x1acfa: 0x6c90a220, 0x1acfb: 0x6c738220,
-	0x1acfc: 0x6cb51c20, 0x1acfd: 0x6cb50c20, 0x1acfe: 0x6d23c020, 0x1acff: 0x6cb2c220,
-	// Block 0x6b4, offset 0x1ad00
-	0x1ad00: 0x6c89f620, 0x1ad01: 0x6c23da20, 0x1ad02: 0x6d1eae20, 0x1ad03: 0x6c1cd620,
-	0x1ad04: 0x6d36aa20, 0x1ad05: 0x6ce7d020, 0x1ad06: 0x6c197a20, 0x1ad07: 0x6cb7c020,
-	0x1ad08: 0x6cc12020, 0x1ad09: 0x6caebc20, 0x1ad0a: 0x6c075a20, 0x1ad0b: 0x6c0cb820,
-	0x1ad0c: 0x6cbf5c20, 0x1ad0d: 0x6c686a20, 0x1ad0e: 0x6d2b8a20, 0x1ad0f: 0x6c1c4220,
-	0x1ad10: 0x6c883620, 0x1ad11: 0x6cb2cc20, 0x1ad12: 0x6c7d0c20, 0x1ad13: 0x6c5c1220,
-	0x1ad14: 0x6cbbf020, 0x1ad15: 0x6c1a3620, 0x1ad16: 0x6d1b7a20, 0x1ad17: 0x6d1b7c20,
-	0x1ad18: 0x6cf80620, 0x1ad19: 0x6cf6ba20, 0x1ad1a: 0x6c28a820, 0x1ad1b: 0x6ce00220,
-	0x1ad1c: 0x6c34a220, 0x1ad1d: 0x6c335e20, 0x1ad1e: 0x6c335a20, 0x1ad1f: 0x6cdaf820,
-	0x1ad20: 0x6c74b620, 0x1ad21: 0x6c130e20, 0x1ad22: 0x6cff0220, 0x1ad23: 0x6c385a20,
-	0x1ad24: 0x6c3be420, 0x1ad25: 0x6c817220, 0x1ad26: 0x6c81da20, 0x1ad27: 0x6c1cd820,
-	0x1ad28: 0x6c4db820, 0x1ad29: 0x6cb7d220, 0x1ad2a: 0x6cfb7c20, 0x1ad2b: 0x6c9fc420,
-	0x1ad2c: 0x6c6e2a20, 0x1ad2d: 0x6c8a7420, 0x1ad2e: 0x6cf46420, 0x1ad2f: 0x6c11da20,
-	0x1ad30: 0x6c749020, 0x1ad31: 0x6c245420, 0x1ad32: 0x6cfd0820, 0x1ad33: 0x6ce06e20,
-	0x1ad34: 0x6cd12220, 0x1ad35: 0x6caf9820, 0x1ad36: 0x6d188e20, 0x1ad37: 0x6c1f7420,
-	0x1ad38: 0x6cfad620, 0x1ad39: 0x6ca4c020, 0x1ad3a: 0x6c28ac20, 0x1ad3b: 0x6ce07420,
-	0x1ad3c: 0x6c6e2c20, 0x1ad3d: 0x6cd93220, 0x1ad3e: 0x6c4f0220, 0x1ad3f: 0x6c693e20,
-	// Block 0x6b5, offset 0x1ad40
-	0x1ad40: 0x6cf0cc20, 0x1ad41: 0x6d07cc20, 0x1ad42: 0x6c303620, 0x1ad43: 0x6cbdb020,
-	0x1ad44: 0x6cbd9e20, 0x1ad45: 0x6c728a20, 0x1ad46: 0x6c12b220, 0x1ad47: 0x6c791020,
-	0x1ad48: 0x6d021420, 0x1ad49: 0x6d1bfe20, 0x1ad4a: 0x6c02ea20, 0x1ad4b: 0x6c99ba20,
-	0x1ad4c: 0x6d189020, 0x1ad4d: 0x6c8c3020, 0x1ad4e: 0x6ccb5420, 0x1ad4f: 0x6c75e420,
-	0x1ad50: 0x6c57f220, 0x1ad51: 0x6c9afe20, 0x1ad52: 0x6c803c20, 0x1ad53: 0x6c00ca20,
-	0x1ad54: 0x6c8c3220, 0x1ad55: 0x6d0c3c20, 0x1ad56: 0x6c7e2620, 0x1ad57: 0x6cfa4a20,
-	0x1ad58: 0x6c1c8420, 0x1ad59: 0x6d228e20, 0x1ad5a: 0x6d1b8820, 0x1ad5b: 0x6c270e20,
-	0x1ad5c: 0x6c9be420, 0x1ad5d: 0x6c00d820, 0x1ad5e: 0x6c9b4a20, 0x1ad5f: 0x6c337020,
-	0x1ad60: 0x6cb65c20, 0x1ad61: 0x6ca0ac20, 0x1ad62: 0x6c7fbe20, 0x1ad63: 0x6c9b0020,
-	0x1ad64: 0x6c1de620, 0x1ad65: 0x6d370220, 0x1ad66: 0x6cab1620, 0x1ad67: 0x6cab1820,
-	0x1ad68: 0x6d0c3420, 0x1ad69: 0x6d103420, 0x1ad6a: 0x6c0f8a20, 0x1ad6b: 0x6d372820,
-	0x1ad6c: 0x6c7c0c20, 0x1ad6d: 0x6c7bd220, 0x1ad6e: 0x6d1ff820, 0x1ad6f: 0x6c3db220,
-	0x1ad70: 0x6c8eb420, 0x1ad71: 0x6c9ef020, 0x1ad72: 0x6c1a5420, 0x1ad73: 0x6c5cb020,
-	0x1ad74: 0x6c163820, 0x1ad75: 0x6c9bea20, 0x1ad76: 0x6c804a20, 0x1ad77: 0x6c57fa20,
-	0x1ad78: 0x6d083620, 0x1ad79: 0x6cc51a20, 0x1ad7a: 0x6c164020, 0x1ad7b: 0x6c62b820,
-	0x1ad7c: 0x6c72ca20, 0x1ad7d: 0x6c583e20, 0x1ad7e: 0x6ccf8820, 0x1ad7f: 0x6d195a20,
-	// Block 0x6b6, offset 0x1ad80
-	0x1ad80: 0x6c893820, 0x1ad81: 0x6ca44020, 0x1ad82: 0x6c9cb020, 0x1ad83: 0x6ce18c20,
-	0x1ad84: 0x6c751a20, 0x1ad85: 0x6c42b020, 0x1ad86: 0x6c42b220, 0x1ad87: 0x6d3c5220,
-	0x1ad88: 0x6c436020, 0x1ad89: 0x6d266e20, 0x1ad8a: 0x6cf49820, 0x1ad8b: 0x6c645a20,
-	0x1ad8c: 0x6d056420, 0x1ad8d: 0x6cd59420, 0x1ad8e: 0x6cc65020, 0x1ad8f: 0x6cf83820,
-	0x1ad90: 0x6c19b220, 0x1ad91: 0x6cf2a620, 0x1ad92: 0x6c6bb820, 0x1ad93: 0x6c436e20,
-	0x1ad94: 0x6c646c20, 0x1ad95: 0x6cbaa020, 0x1ad96: 0x6c5da020, 0x1ad97: 0x6cbaa220,
-	0x1ad98: 0x6d2e4a20, 0x1ad99: 0x6c306e20, 0x1ad9a: 0x6cb81220, 0x1ad9b: 0x6c63b620,
-	0x1ad9c: 0x6c2e9220, 0x1ad9d: 0x6d2b5e20, 0x1ad9e: 0x6c63be20, 0x1ad9f: 0x6c614420,
-	0x1ada0: 0x6d33de20, 0x1ada1: 0x6c76b020, 0x1ada2: 0x6c603420, 0x1ada3: 0x6c7c8620,
-	0x1ada4: 0x6c414020, 0x1ada5: 0x6c2ace20, 0x1ada6: 0x6d2e6820, 0x1ada7: 0x6cbaca20,
-	0x1ada8: 0x6c439e20, 0x1ada9: 0x6c65bc20, 0x1adaa: 0x6c6b0620, 0x1adab: 0x6d238e20,
-	0x1adac: 0x6c65be20, 0x1adad: 0x6d0dc820, 0x1adae: 0x6c92a020, 0x1adaf: 0x6c54f620,
-	0x1adb0: 0x6d2e7e20, 0x1adb1: 0x6cf8da20, 0x1adb2: 0x6cf8ec20, 0x1adb3: 0x6c219a20,
-	0x1adb4: 0x6c279420, 0x1adb5: 0x6cc20420, 0x1adb6: 0x6c563820, 0x1adb7: 0x6c563a20,
-	0x1adb8: 0x6c563c20, 0x1adb9: 0x6c35c820, 0x1adba: 0x6cd30c20, 0x1adbb: 0x6ce3d220,
-	0x1adbc: 0x6c992620, 0x1adbd: 0x6c566620, 0x1adbe: 0x6c858c20, 0x1adbf: 0x6c39a620,
-	// Block 0x6b7, offset 0x1adc0
-	0x1adc0: 0x6cdd4e20, 0x1adc1: 0x6c0b2e20, 0x1adc2: 0x6c2d4220, 0x1adc3: 0x6c6ed820,
-	0x1adc4: 0x6cce3420, 0x1adc5: 0x6d14c020, 0x1adc6: 0x6d15dc20, 0x1adc7: 0x6ccd7a20,
-	0x1adc8: 0x6c568c20, 0x1adc9: 0x6c3a0220, 0x1adca: 0x6d0d8020, 0x1adcb: 0x6cd43620,
-	0x1adcc: 0x6cd48e20, 0x1adcd: 0x6c10fe20, 0x1adce: 0x6d2bc020, 0x1adcf: 0x6cbff220,
-	0x1add0: 0x6c820e20, 0x1add1: 0x6cb3fe20, 0x1add2: 0x6c031020, 0x1add3: 0x6c26e020,
-	0x1add4: 0x6cc61020, 0x1add5: 0x6c390220, 0x1add6: 0x6cc83020, 0x1add7: 0x6d292a20,
-	0x1add8: 0x6cea9620, 0x1add9: 0x6d2f1e20, 0x1adda: 0x6c2df620, 0x1addb: 0x6c776620,
-	0x1addc: 0x6d207220, 0x1addd: 0x6c7a1820, 0x1adde: 0x6c41c420, 0x1addf: 0x6ccf9e20,
-	0x1ade0: 0x6c137820, 0x1ade1: 0x6cea9820, 0x1ade2: 0x6c475420, 0x1ade3: 0x6c79d620,
-	0x1ade4: 0x6cf4a220, 0x1ade5: 0x6c2a9420, 0x1ade6: 0x6cb89820, 0x1ade7: 0x6d343620,
-	0x1ade8: 0x6cc5b620, 0x1ade9: 0x6c7de620, 0x1adea: 0x6c9ac020, 0x1adeb: 0x6ccade20,
-	0x1adec: 0x6d0f7420, 0x1aded: 0x6ca97820, 0x1adee: 0x6c051220, 0x1adef: 0x6c17e620,
-	0x1adf0: 0x6cc53620, 0x1adf1: 0x6cf57020, 0x1adf2: 0x6cb97220, 0x1adf3: 0x6c047020,
-	0x1adf4: 0x6c639c20, 0x1adf5: 0x6d20b220, 0x1adf6: 0x6c3dda20, 0x1adf7: 0x6c02c220,
-	0x1adf8: 0x6cf57e20, 0x1adf9: 0x6caf2a20, 0x1adfa: 0x6d34e620, 0x1adfb: 0x6d357820,
-	0x1adfc: 0x6c35d220, 0x1adfd: 0x6c2a9620, 0x1adfe: 0x6d2f8420, 0x1adff: 0x6c19bc20,
-	// Block 0x6b8, offset 0x1ae00
-	0x1ae00: 0x6c618420, 0x1ae01: 0x6d0d3c20, 0x1ae02: 0x6c7bb820, 0x1ae03: 0x6c0b6e20,
-	0x1ae04: 0x6c173220, 0x1ae05: 0x6c704e20, 0x1ae06: 0x6cf1cc20, 0x1ae07: 0x6c551e20,
-	0x1ae08: 0x6d267e20, 0x1ae09: 0x6c73de20, 0x1ae0a: 0x6c039a20, 0x1ae0b: 0x6cbe0420,
-	0x1ae0c: 0x6c282020, 0x1ae0d: 0x6d331820, 0x1ae0e: 0x6d27d820, 0x1ae0f: 0x6cecc820,
-	0x1ae10: 0x6ca54820, 0x1ae11: 0x6d168820, 0x1ae12: 0x6cd49e20, 0x1ae13: 0x6d3b5420,
-	0x1ae14: 0x6cb3d020, 0x1ae15: 0x6ce7e620, 0x1ae16: 0x6c30da20, 0x1ae17: 0x6c777e20,
-	0x1ae18: 0x6d301220, 0x1ae19: 0x6cb3d220, 0x1ae1a: 0x6c3f3620, 0x1ae1b: 0x6cad3220,
-	0x1ae1c: 0x6c036020, 0x1ae1d: 0x6c029c20, 0x1ae1e: 0x6d2aa420, 0x1ae1f: 0x6ce94820,
-	0x1ae20: 0x6c79b220, 0x1ae21: 0x6c94d020, 0x1ae22: 0x6cbb3820, 0x1ae23: 0x6d287a20,
-	0x1ae24: 0x6c565620, 0x1ae25: 0x6c063020, 0x1ae26: 0x6c0dc420, 0x1ae27: 0x6d34f420,
-	0x1ae28: 0x6cae5620, 0x1ae29: 0x6cdf8c20, 0x1ae2a: 0x6c106c20, 0x1ae2b: 0x6caf3620,
-	0x1ae2c: 0x6cdf1820, 0x1ae2d: 0x6d118c20, 0x1ae2e: 0x6d31b820, 0x1ae2f: 0x6d2bc620,
-	0x1ae30: 0x6d0f4820, 0x1ae31: 0x6c063220, 0x1ae32: 0x6c508c20, 0x1ae33: 0x6ca62820,
-	0x1ae34: 0x6d12ce20, 0x1ae35: 0x6c2bda20, 0x1ae36: 0x6c1bee20, 0x1ae37: 0x6caf3820,
-	0x1ae38: 0x6c632220, 0x1ae39: 0x6ca0a820, 0x1ae3a: 0x6c9a7620, 0x1ae3b: 0x6c185a20,
-	0x1ae3c: 0x6d0ad220, 0x1ae3d: 0x6c1d6420, 0x1ae3e: 0x6cc0e420, 0x1ae3f: 0x6c9f9420,
-	// Block 0x6b9, offset 0x1ae40
-	0x1ae40: 0x6c1f1020, 0x1ae41: 0x6c632a20, 0x1ae42: 0x6c3dee20, 0x1ae43: 0x6d2c7220,
-	0x1ae44: 0x6d3a5c20, 0x1ae45: 0x6c27bc20, 0x1ae46: 0x6c146020, 0x1ae47: 0x6ca2c420,
-	0x1ae48: 0x6ca6ec20, 0x1ae49: 0x6c7e3e20, 0x1ae4a: 0x6c3f4220, 0x1ae4b: 0x6cad3420,
-	0x1ae4c: 0x6c04ea20, 0x1ae4d: 0x6cabee20, 0x1ae4e: 0x6c8b9a20, 0x1ae4f: 0x6ca2d020,
-	0x1ae50: 0x6c48d820, 0x1ae51: 0x6cb97420, 0x1ae52: 0x6c71fc20, 0x1ae53: 0x6cde2e20,
-	0x1ae54: 0x6c036820, 0x1ae55: 0x6ceaac20, 0x1ae56: 0x6ceaae20, 0x1ae57: 0x6c02a020,
-	0x1ae58: 0x6c705a20, 0x1ae59: 0x6d3cf020, 0x1ae5a: 0x6caca020, 0x1ae5b: 0x6d2f5a20,
-	0x1ae5c: 0x6c043c20, 0x1ae5d: 0x6c043220, 0x1ae5e: 0x6c2bdc20, 0x1ae5f: 0x6ca62420,
-	0x1ae60: 0x6c720e20, 0x1ae61: 0x6c7de820, 0x1ae62: 0x6c903220, 0x1ae63: 0x6c656420,
-	0x1ae64: 0x6cb83420, 0x1ae65: 0x6d1d7e20, 0x1ae66: 0x6c7f8c20, 0x1ae67: 0x6ca8f620,
-	0x1ae68: 0x6c0e5020, 0x1ae69: 0x6d2aa820, 0x1ae6a: 0x6cb8bc20, 0x1ae6b: 0x6c522e20,
-	0x1ae6c: 0x6c7dea20, 0x1ae6d: 0x6cd33620, 0x1ae6e: 0x6c6a8e20, 0x1ae6f: 0x6d331e20,
-	0x1ae70: 0x6ca8ee20, 0x1ae71: 0x6c45da20, 0x1ae72: 0x6c45de20, 0x1ae73: 0x6cc2ca20,
-	0x1ae74: 0x6cd68020, 0x1ae75: 0x6c25a620, 0x1ae76: 0x6d288a20, 0x1ae77: 0x6c77a020,
-	0x1ae78: 0x6d149c20, 0x1ae79: 0x6d008220, 0x1ae7a: 0x6c12d020, 0x1ae7b: 0x6c5a9420,
-	0x1ae7c: 0x6cb1ea20, 0x1ae7d: 0x6d3b6620, 0x1ae7e: 0x6cd41020, 0x1ae7f: 0x6ca2d620,
-	// Block 0x6ba, offset 0x1ae80
-	0x1ae80: 0x6c03fc20, 0x1ae81: 0x6c1b0c20, 0x1ae82: 0x6c48ac20, 0x1ae83: 0x6d359c20,
-	0x1ae84: 0x6c7dec20, 0x1ae85: 0x6c348020, 0x1ae86: 0x6c348220, 0x1ae87: 0x6d350020,
-	0x1ae88: 0x6cbcaa20, 0x1ae89: 0x6c01a420, 0x1ae8a: 0x6ca9f220, 0x1ae8b: 0x6d322020,
-	0x1ae8c: 0x6c43ca20, 0x1ae8d: 0x6c698820, 0x1ae8e: 0x6c7ae620, 0x1ae8f: 0x6c306020,
-	0x1ae90: 0x6ca2d820, 0x1ae91: 0x6ce55420, 0x1ae92: 0x6c8ad220, 0x1ae93: 0x6d2bca20,
-	0x1ae94: 0x6c937c20, 0x1ae95: 0x6c2e7220, 0x1ae96: 0x6cebca20, 0x1ae97: 0x6c73fa20,
-	0x1ae98: 0x6c8b9420, 0x1ae99: 0x6c71b020, 0x1ae9a: 0x6d35b820, 0x1ae9b: 0x6c943420,
-	0x1ae9c: 0x6d0b8620, 0x1ae9d: 0x6cf27c20, 0x1ae9e: 0x6cde3420, 0x1ae9f: 0x6d008420,
-	0x1aea0: 0x6ca49c20, 0x1aea1: 0x6c292820, 0x1aea2: 0x6c68d020, 0x1aea3: 0x6d329820,
-	0x1aea4: 0x6c612a20, 0x1aea5: 0x6c5a9620, 0x1aea6: 0x6cfb3420, 0x1aea7: 0x6d24be20,
-	0x1aea8: 0x6c002020, 0x1aea9: 0x6ceab420, 0x1aeaa: 0x6caab820, 0x1aeab: 0x6c261c20,
-	0x1aeac: 0x6c0ed420, 0x1aead: 0x6c44fa20, 0x1aeae: 0x6ce3be20, 0x1aeaf: 0x6d322c20,
-	0x1aeb0: 0x6c19dc20, 0x1aeb1: 0x6cc94220, 0x1aeb2: 0x6cc94420, 0x1aeb3: 0x6c793220,
-	0x1aeb4: 0x6c9a5020, 0x1aeb5: 0x6c906220, 0x1aeb6: 0x6c706820, 0x1aeb7: 0x6cae9020,
-	0x1aeb8: 0x6c657a20, 0x1aeb9: 0x6d172820, 0x1aeba: 0x6ce6ba20, 0x1aebb: 0x6cccce20,
-	0x1aebc: 0x6cc83a20, 0x1aebd: 0x6cecf820, 0x1aebe: 0x6d008a20, 0x1aebf: 0x6c138820,
-	// Block 0x6bb, offset 0x1aec0
-	0x1aec0: 0x6c3ca020, 0x1aec1: 0x6c68da20, 0x1aec2: 0x6cf43c20, 0x1aec3: 0x6c75a420,
-	0x1aec4: 0x6c6fe820, 0x1aec5: 0x6ce7b220, 0x1aec6: 0x6c7da220, 0x1aec7: 0x6c5dac20,
-	0x1aec8: 0x6ce89620, 0x1aec9: 0x6d3cf620, 0x1aeca: 0x6cb3d620, 0x1aecb: 0x6c938820,
-	0x1aecc: 0x6c033a20, 0x1aecd: 0x6c4e9820, 0x1aece: 0x6cce6020, 0x1aecf: 0x6ca7da20,
-	0x1aed0: 0x6c72e420, 0x1aed1: 0x6d2b4620, 0x1aed2: 0x6cd5ba20, 0x1aed3: 0x6d127620,
-	0x1aed4: 0x6c741220, 0x1aed5: 0x6c103620, 0x1aed6: 0x6cecd020, 0x1aed7: 0x6c108420,
-	0x1aed8: 0x6d421620, 0x1aed9: 0x6d172a20, 0x1aeda: 0x6d2ce820, 0x1aedb: 0x6c937e20,
-	0x1aedc: 0x6cd9a420, 0x1aedd: 0x6ceab620, 0x1aede: 0x6c813a20, 0x1aedf: 0x6cdce620,
-	0x1aee0: 0x6c052220, 0x1aee1: 0x6c657c20, 0x1aee2: 0x6c590220, 0x1aee3: 0x6c29d420,
-	0x1aee4: 0x6cf13c20, 0x1aee5: 0x6ced7820, 0x1aee6: 0x6cbd6e20, 0x1aee7: 0x6caf0220,
-	0x1aee8: 0x6ccf2c20, 0x1aee9: 0x6c8af820, 0x1aeea: 0x6c9f4620, 0x1aeeb: 0x6c9aca20,
-	0x1aeec: 0x6c3f5a20, 0x1aeed: 0x6c041e20, 0x1aeee: 0x6c723e20, 0x1aeef: 0x6c29cc20,
-	0x1aef0: 0x6cf2b420, 0x1aef1: 0x6c003e20, 0x1aef2: 0x6c731c20, 0x1aef3: 0x6d26a420,
-	0x1aef4: 0x6d3fec20, 0x1aef5: 0x6c186420, 0x1aef6: 0x6c20c820, 0x1aef7: 0x6c6ab620,
-	0x1aef8: 0x6ce85420, 0x1aef9: 0x6c07ae20, 0x1aefa: 0x6ca33220, 0x1aefb: 0x6ca72020,
-	0x1aefc: 0x6cc90e20, 0x1aefd: 0x6d423620, 0x1aefe: 0x6cf2e220, 0x1aeff: 0x6cf5e820,
-	// Block 0x6bc, offset 0x1af00
-	0x1af00: 0x6cfa9820, 0x1af01: 0x6c19e620, 0x1af02: 0x6c2cc420, 0x1af03: 0x6ccae020,
-	0x1af04: 0x6c94d220, 0x1af05: 0x6cbec620, 0x1af06: 0x6c427820, 0x1af07: 0x6c342a20,
-	0x1af08: 0x6cd46020, 0x1af09: 0x6c2e1820, 0x1af0a: 0x6cb3d820, 0x1af0b: 0x6c2bf020,
-	0x1af0c: 0x6d2f0420, 0x1af0d: 0x6c5d2420, 0x1af0e: 0x6c613620, 0x1af0f: 0x6ce1c220,
-	0x1af10: 0x6cb82820, 0x1af11: 0x6cb5c420, 0x1af12: 0x6cabfa20, 0x1af13: 0x6cd4c820,
-	0x1af14: 0x6cb8e220, 0x1af15: 0x6c8ce420, 0x1af16: 0x6d125c20, 0x1af17: 0x6d0b9c20,
-	0x1af18: 0x6c742420, 0x1af19: 0x6d32b020, 0x1af1a: 0x6c899020, 0x1af1b: 0x6c48b020,
-	0x1af1c: 0x6d175c20, 0x1af1d: 0x6c5dc220, 0x1af1e: 0x6ccd8220, 0x1af1f: 0x6d332020,
-	0x1af20: 0x6c361020, 0x1af21: 0x6c112a20, 0x1af22: 0x6ce09420, 0x1af23: 0x6c181e20,
-	0x1af24: 0x6c0db020, 0x1af25: 0x6c69fa20, 0x1af26: 0x6ce3ee20, 0x1af27: 0x6c79a420,
-	0x1af28: 0x6ce99020, 0x1af29: 0x6d0d6620, 0x1af2a: 0x6c262220, 0x1af2b: 0x6d387420,
-	0x1af2c: 0x6c708a20, 0x1af2d: 0x6ce53420, 0x1af2e: 0x6cb98820, 0x1af2f: 0x6c791820,
-	0x1af30: 0x6c040020, 0x1af31: 0x6cabd420, 0x1af32: 0x6c69fc20, 0x1af33: 0x6c91ba20,
-	0x1af34: 0x6c48cc20, 0x1af35: 0x6ca04e20, 0x1af36: 0x6c454620, 0x1af37: 0x6d35e020,
-	0x1af38: 0x6c283420, 0x1af39: 0x6c9c2a20, 0x1af3a: 0x6c11f220, 0x1af3b: 0x6ccaa620,
-	0x1af3c: 0x6c498220, 0x1af3d: 0x6caf1020, 0x1af3e: 0x6d261c20, 0x1af3f: 0x6caaee20,
-	// Block 0x6bd, offset 0x1af40
-	0x1af40: 0x6c659020, 0x1af41: 0x6d32c420, 0x1af42: 0x6c6f7220, 0x1af43: 0x6c659220,
-	0x1af44: 0x6d212620, 0x1af45: 0x6d0ca820, 0x1af46: 0x6c7c7820, 0x1af47: 0x6ca42620,
-	0x1af48: 0x6c52a420, 0x1af49: 0x6cc74a20, 0x1af4a: 0x6cb09620, 0x1af4b: 0x6cee8820,
-	0x1af4c: 0x6cc9c420, 0x1af4d: 0x6d408820, 0x1af4e: 0x6d079c20, 0x1af4f: 0x6c9e7620,
-	0x1af50: 0x6ce32420, 0x1af51: 0x6ca7dc20, 0x1af52: 0x6c139c20, 0x1af53: 0x6cd38620,
-	0x1af54: 0x6d3ff220, 0x1af55: 0x6d324220, 0x1af56: 0x6d13f220, 0x1af57: 0x6d0a1020,
-	0x1af58: 0x6d1df620, 0x1af59: 0x6c0af220, 0x1af5a: 0x6d0fb620, 0x1af5b: 0x6c592220,
-	0x1af5c: 0x6d0d8220, 0x1af5d: 0x6d296a20, 0x1af5e: 0x6c018620, 0x1af5f: 0x6d059a20,
-	0x1af60: 0x6d0bac20, 0x1af61: 0x6cf2ee20, 0x1af62: 0x6c784c20, 0x1af63: 0x6c1fb420,
-	0x1af64: 0x6c600020, 0x1af65: 0x6ce3fa20, 0x1af66: 0x6c7e5e20, 0x1af67: 0x6c7e7a20,
-	0x1af68: 0x6c18c820, 0x1af69: 0x6c762e20, 0x1af6a: 0x6c6f7420, 0x1af6b: 0x6c6f7c20,
-	0x1af6c: 0x6ce8ae20, 0x1af6d: 0x6c6a1220, 0x1af6e: 0x6c5ab420, 0x1af6f: 0x6c44b420,
-	0x1af70: 0x6c1d5020, 0x1af71: 0x6cfed620, 0x1af72: 0x6c2ea420, 0x1af73: 0x6d004020,
-	0x1af74: 0x6d256220, 0x1af75: 0x6cb98a20, 0x1af76: 0x6d127c20, 0x1af77: 0x6c139e20,
-	0x1af78: 0x6d2bda20, 0x1af79: 0x6c069e20, 0x1af7a: 0x6d10f820, 0x1af7b: 0x6cee8a20,
-	0x1af7c: 0x6c086a20, 0x1af7d: 0x6c802820, 0x1af7e: 0x6cf20c20, 0x1af7f: 0x6cbe1420,
-	// Block 0x6be, offset 0x1af80
-	0x1af80: 0x6c14ca20, 0x1af81: 0x6c439220, 0x1af82: 0x6c90e420, 0x1af83: 0x6d3ff420,
-	0x1af84: 0x6c44ce20, 0x1af85: 0x6c68f220, 0x1af86: 0x6c46b820, 0x1af87: 0x6cbe1a20,
-	0x1af88: 0x6cc68420, 0x1af89: 0x6cc3ca20, 0x1af8a: 0x6c1d7420, 0x1af8b: 0x6c1fb620,
-	0x1af8c: 0x6d2df620, 0x1af8d: 0x6cdcf020, 0x1af8e: 0x6cdcd420, 0x1af8f: 0x6c0f1220,
-	0x1af90: 0x6c1f4e20, 0x1af91: 0x6cc67420, 0x1af92: 0x6c057a20, 0x1af93: 0x6c25ba20,
-	0x1af94: 0x6ccaac20, 0x1af95: 0x6c780620, 0x1af96: 0x6d111020, 0x1af97: 0x6c29dc20,
-	0x1af98: 0x6d33ee20, 0x1af99: 0x6caa6620, 0x1af9a: 0x6c7e4820, 0x1af9b: 0x6c64b020,
-	0x1af9c: 0x6cd9b020, 0x1af9d: 0x6cc0ae20, 0x1af9e: 0x6c430820, 0x1af9f: 0x6cfc1420,
-	0x1afa0: 0x6cd78620, 0x1afa1: 0x6cca8020, 0x1afa2: 0x6c6d1420, 0x1afa3: 0x6c9edc20,
-	0x1afa4: 0x6c365820, 0x1afa5: 0x6c20ce20, 0x1afa6: 0x6caafc20, 0x1afa7: 0x6cccea20,
-	0x1afa8: 0x6cde5c20, 0x1afa9: 0x6d2c7e20, 0x1afaa: 0x6ce10220, 0x1afab: 0x6cac6420,
-	0x1afac: 0x6c048620, 0x1afad: 0x6c265020, 0x1afae: 0x6c863020, 0x1afaf: 0x6ce1d620,
-	0x1afb0: 0x6c555c20, 0x1afb1: 0x6d365620, 0x1afb2: 0x6cebe220, 0x1afb3: 0x6c574220,
-	0x1afb4: 0x6cb90220, 0x1afb5: 0x6cf20e20, 0x1afb6: 0x6cbb3e20, 0x1afb7: 0x6ce4ac20,
-	0x1afb8: 0x6d316220, 0x1afb9: 0x6c365a20, 0x1afba: 0x6d00ba20, 0x1afbb: 0x6cab0220,
-	0x1afbc: 0x6cc2fc20, 0x1afbd: 0x6c13e220, 0x1afbe: 0x6d2ccc20, 0x1afbf: 0x6c441020,
-	// Block 0x6bf, offset 0x1afc0
-	0x1afc0: 0x6cf44e20, 0x1afc1: 0x6c372420, 0x1afc2: 0x6ccf5220, 0x1afc3: 0x6c776820,
-	0x1afc4: 0x6ccf5420, 0x1afc5: 0x6cd4e820, 0x1afc6: 0x6c042620, 0x1afc7: 0x6d111220,
-	0x1afc8: 0x6c0d8020, 0x1afc9: 0x6cd9be20, 0x1afca: 0x6cdfae20, 0x1afcb: 0x6cc97820,
-	0x1afcc: 0x6c15ca20, 0x1afcd: 0x6cdd2a20, 0x1afce: 0x6c6f8020, 0x1afcf: 0x6c1cd220,
-	0x1afd0: 0x6c205620, 0x1afd1: 0x6c48d220, 0x1afd2: 0x6c0de620, 0x1afd3: 0x6c3cac20,
-	0x1afd4: 0x6cd65620, 0x1afd5: 0x6c2c7e20, 0x1afd6: 0x6cb7ae20, 0x1afd7: 0x6cd9cc20,
-	0x1afd8: 0x6d2cf820, 0x1afd9: 0x6c88c220, 0x1afda: 0x6c197c20, 0x1afdb: 0x6c1ab820,
-	0x1afdc: 0x6c499820, 0x1afdd: 0x6c928220, 0x1afde: 0x6c961420, 0x1afdf: 0x6c90ee20,
-	0x1afe0: 0x6d400020, 0x1afe1: 0x6c413420, 0x1afe2: 0x6c56b620, 0x1afe3: 0x6d2bea20,
-	0x1afe4: 0x6c209420, 0x1afe5: 0x6ce19e20, 0x1afe6: 0x6c57ac20, 0x1afe7: 0x6c24dc20,
-	0x1afe8: 0x6ca38420, 0x1afe9: 0x6ca07220, 0x1afea: 0x6c676820, 0x1afeb: 0x6c4a7a20,
-	0x1afec: 0x6d1cfc20, 0x1afed: 0x6d348020, 0x1afee: 0x6c026020, 0x1afef: 0x6d36ae20,
-	0x1aff0: 0x6ca85c20, 0x1aff1: 0x6c97ea20, 0x1aff2: 0x6c163020, 0x1aff3: 0x6c79c220,
-	0x1aff4: 0x6c1e6220, 0x1aff5: 0x6ccf6420, 0x1aff6: 0x6ce95420, 0x1aff7: 0x6c691420,
-	0x1aff8: 0x6ca05620, 0x1aff9: 0x6ca06820, 0x1affa: 0x6d306c20, 0x1affb: 0x6c11fc20,
-	0x1affc: 0x6c794820, 0x1affd: 0x6c0c0a20, 0x1affe: 0x6c67f620, 0x1afff: 0x6d19f420,
-	// Block 0x6c0, offset 0x1b000
-	0x1b000: 0x6c46ce20, 0x1b001: 0x6cb90420, 0x1b002: 0x6c8aa020, 0x1b003: 0x6c608420,
-	0x1b004: 0x6d1bce20, 0x1b005: 0x6c73b420, 0x1b006: 0x6cb1d020, 0x1b007: 0x6cb1ca20,
-	0x1b008: 0x6c813c20, 0x1b009: 0x6c33ac20, 0x1b00a: 0x6cfcfa20, 0x1b00b: 0x6cc84420,
-	0x1b00c: 0x6c4b6620, 0x1b00d: 0x6d297420, 0x1b00e: 0x6d185020, 0x1b00f: 0x6cfb7e20,
-	0x1b010: 0x6c198820, 0x1b011: 0x6c198a20, 0x1b012: 0x6cc94620, 0x1b013: 0x6ca4ba20,
-	0x1b014: 0x6c53ca20, 0x1b015: 0x6cd81620, 0x1b016: 0x6c4ee020, 0x1b017: 0x6c4a2620,
-	0x1b018: 0x6c266420, 0x1b019: 0x6d420c20, 0x1b01a: 0x6ca73420, 0x1b01b: 0x6c8c2a20,
-	0x1b01c: 0x6d332c20, 0x1b01d: 0x6c5ae420, 0x1b01e: 0x6d3c4820, 0x1b01f: 0x6c692820,
-	0x1b020: 0x6c615020, 0x1b021: 0x6c126620, 0x1b022: 0x6c283c20, 0x1b023: 0x6c283e20,
-	0x1b024: 0x6c183220, 0x1b025: 0x6c0e8820, 0x1b026: 0x6c17ee20, 0x1b027: 0x6c73b620,
-	0x1b028: 0x6c3f8020, 0x1b029: 0x6c89d220, 0x1b02a: 0x6c07c220, 0x1b02b: 0x6c3f8220,
-	0x1b02c: 0x6cbc5820, 0x1b02d: 0x6c0e8a20, 0x1b02e: 0x6c25c620, 0x1b02f: 0x6d3d7a20,
-	0x1b030: 0x6d3bda20, 0x1b031: 0x6ceff020, 0x1b032: 0x6cb40e20, 0x1b033: 0x6cbe2220,
-	0x1b034: 0x6c33a620, 0x1b035: 0x6ca73620, 0x1b036: 0x6c574420, 0x1b037: 0x6d00d820,
-	0x1b038: 0x6c912e20, 0x1b039: 0x6c692a20, 0x1b03a: 0x6c249020, 0x1b03b: 0x6cde8c20,
-	0x1b03c: 0x6c4f0420, 0x1b03d: 0x6cbc5c20, 0x1b03e: 0x6cf29a20, 0x1b03f: 0x6c65d620,
-	// Block 0x6c1, offset 0x1b040
-	0x1b040: 0x6c41ea20, 0x1b041: 0x6d1db220, 0x1b042: 0x6c825620, 0x1b043: 0x6ca46e20,
-	0x1b044: 0x6c91da20, 0x1b045: 0x6ccda820, 0x1b046: 0x6d3d7c20, 0x1b047: 0x6d2afa20,
-	0x1b048: 0x6cb41420, 0x1b049: 0x6c21d620, 0x1b04a: 0x6c5f5220, 0x1b04b: 0x6c293420,
-	0x1b04c: 0x6ccb5620, 0x1b04d: 0x6c126820, 0x1b04e: 0x6cbe8c20, 0x1b04f: 0x6cbe8420,
-	0x1b050: 0x6c595220, 0x1b051: 0x6c6a3020, 0x1b052: 0x6cbd9420, 0x1b053: 0x6c7b0220,
-	0x1b054: 0x6c27fa20, 0x1b055: 0x6d00dc20, 0x1b056: 0x6c761420, 0x1b057: 0x6cb06e20,
-	0x1b058: 0x6c040620, 0x1b059: 0x6c02f220, 0x1b05a: 0x6c728c20, 0x1b05b: 0x6d132620,
-	0x1b05c: 0x6c370620, 0x1b05d: 0x6c9c2c20, 0x1b05e: 0x6cda2620, 0x1b05f: 0x6c9c7a20,
-	0x1b060: 0x6c615420, 0x1b061: 0x6cdf4820, 0x1b062: 0x6d3da820, 0x1b063: 0x6c29f220,
-	0x1b064: 0x6d040a20, 0x1b065: 0x6c804420, 0x1b066: 0x6c10da20, 0x1b067: 0x6c71d820,
-	0x1b068: 0x6d129220, 0x1b069: 0x6cc80620, 0x1b06a: 0x6d136820, 0x1b06b: 0x6d135a20,
-	0x1b06c: 0x6ca65220, 0x1b06d: 0x6cf31420, 0x1b06e: 0x6c60bc20, 0x1b06f: 0x6c0d8820,
-	0x1b070: 0x6ca92420, 0x1b071: 0x6c43b420, 0x1b072: 0x6d370420, 0x1b073: 0x6d36de20,
-	0x1b074: 0x6c7e1a20, 0x1b075: 0x6ca08620, 0x1b076: 0x6c66ec20, 0x1b077: 0x6d011020,
-	0x1b078: 0x6c8b4c20, 0x1b079: 0x6cdfc020, 0x1b07a: 0x6c042a20, 0x1b07b: 0x6cda3020,
-	0x1b07c: 0x6c91e820, 0x1b07d: 0x6c94ca20, 0x1b07e: 0x6cc54220, 0x1b07f: 0x6ce2fe20,
-	// Block 0x6c2, offset 0x1b080
-	0x1b080: 0x6cac4c20, 0x1b081: 0x6d103620, 0x1b082: 0x6c834c20, 0x1b083: 0x6c10dc20,
-	0x1b084: 0x6cd51420, 0x1b085: 0x6d297a20, 0x1b086: 0x6ca74220, 0x1b087: 0x6cfc4020,
-	0x1b088: 0x6c75fa20, 0x1b089: 0x6c5d6620, 0x1b08a: 0x6c86f420, 0x1b08b: 0x6c7ea420,
-	0x1b08c: 0x6c58e420, 0x1b08d: 0x6d1cb620, 0x1b08e: 0x6c917020, 0x1b08f: 0x6c904420,
-	0x1b090: 0x6cb93a20, 0x1b091: 0x6cb93c20, 0x1b092: 0x6d297c20, 0x1b093: 0x6cb94620,
-	0x1b094: 0x6c7fe620, 0x1b095: 0x6cfafc20, 0x1b096: 0x6d1c1e20, 0x1b097: 0x6c9a3a20,
-	0x1b098: 0x6cc50820, 0x1b099: 0x6c14e020, 0x1b09a: 0x6d1d6c20, 0x1b09b: 0x6c249820,
-	0x1b09c: 0x6d012420, 0x1b09d: 0x6ccf8a20, 0x1b09e: 0x6c957420, 0x1b09f: 0x6c760820,
-	0x1b0a0: 0x6c9cb220, 0x1b0a1: 0x6c84a620, 0x1b0a2: 0x6d298220, 0x1b0a3: 0x6c945820,
-	0x1b0a4: 0x6cdfc420, 0x1b0a5: 0x6d416420, 0x1b0a6: 0x6c876620, 0x1b0a7: 0x6c2cf820,
-	0x1b0a8: 0x6cec0020, 0x1b0a9: 0x6c293c20, 0x1b0aa: 0x6c697420, 0x1b0ab: 0x6c751c20,
-	0x1b0ac: 0x6c805c20, 0x1b0ad: 0x6c879e20, 0x1b0ae: 0x6ca47620, 0x1b0af: 0x6d337e20,
-	0x1b0b0: 0x6c4b2820, 0x1b0b1: 0x6c4ad820, 0x1b0b2: 0x6cb4f020, 0x1b0b3: 0x6d0a3a20,
-	0x1b0b4: 0x6cb3fc20, 0x1b0b5: 0x6cdba820, 0x1b0b6: 0x6cd42a20, 0x1b0b7: 0x6c779a20,
-	0x1b0b8: 0x6d1e9020, 0x1b0b9: 0x6c410c20, 0x1b0ba: 0x6d15bc20, 0x1b0bb: 0x6c455e20,
-	0x1b0bc: 0x6c416620, 0x1b0bd: 0x6c047220, 0x1b0be: 0x6c39e220, 0x1b0bf: 0x6d334220,
-	// Block 0x6c3, offset 0x1b0c0
-	0x1b0c0: 0x6cb36c20, 0x1b0c1: 0x6c2cc020, 0x1b0c2: 0x6c79da20, 0x1b0c3: 0x6c9f9a20,
-	0x1b0c4: 0x6cf4c420, 0x1b0c5: 0x6c480020, 0x1b0c6: 0x6c50f020, 0x1b0c7: 0x6c12d620,
-	0x1b0c8: 0x6cffdc20, 0x1b0c9: 0x6c9ce620, 0x1b0ca: 0x6c1f2420, 0x1b0cb: 0x6c43d620,
-	0x1b0cc: 0x6c2b6220, 0x1b0cd: 0x6d06b620, 0x1b0ce: 0x6c699a20, 0x1b0cf: 0x6c9fa820,
-	0x1b0d0: 0x6c18bc20, 0x1b0d1: 0x6c6ff220, 0x1b0d2: 0x6ccfda20, 0x1b0d3: 0x6c344620,
-	0x1b0d4: 0x6d224e20, 0x1b0d5: 0x6c1c0e20, 0x1b0d6: 0x6c024020, 0x1b0d7: 0x6c044020,
-	0x1b0d8: 0x6d06b820, 0x1b0d9: 0x6c699c20, 0x1b0da: 0x6c344820, 0x1b0db: 0x6c88b420,
-	0x1b0dc: 0x6ca82c20, 0x1b0dd: 0x6c097820, 0x1b0de: 0x6c172c20, 0x1b0df: 0x6c2d1a20,
-	0x1b0e0: 0x6c342e20, 0x1b0e1: 0x6d179c20, 0x1b0e2: 0x6c41d420, 0x1b0e3: 0x6cca5420,
-	0x1b0e4: 0x6c786820, 0x1b0e5: 0x6d0e7020, 0x1b0e6: 0x6c339a20, 0x1b0e7: 0x6c5ecc20,
-	0x1b0e8: 0x6ce81420, 0x1b0e9: 0x6cffea20, 0x1b0ea: 0x6c345020, 0x1b0eb: 0x6c690620,
-	0x1b0ec: 0x6c6e8420, 0x1b0ed: 0x6d0fc220, 0x1b0ee: 0x6cf9ce20, 0x1b0ef: 0x6c9f5e20,
-	0x1b0f0: 0x6cd5e420, 0x1b0f1: 0x6c004820, 0x1b0f2: 0x6cbb8c20, 0x1b0f3: 0x6c004a20,
-	0x1b0f4: 0x6d333220, 0x1b0f5: 0x6c2b8820, 0x1b0f6: 0x6d324c20, 0x1b0f7: 0x6c3d8e20,
-	0x1b0f8: 0x6cd60020, 0x1b0f9: 0x6c8a1020, 0x1b0fa: 0x6cc13620, 0x1b0fb: 0x6d049e20,
-	0x1b0fc: 0x6d161020, 0x1b0fd: 0x6c694020, 0x1b0fe: 0x6ccdfc20, 0x1b0ff: 0x6c694220,
-	// Block 0x6c4, offset 0x1b100
-	0x1b100: 0x6d3daa20, 0x1b101: 0x6d18c220, 0x1b102: 0x6c88ca20, 0x1b103: 0x6c0a6820,
-	0x1b104: 0x6c848820, 0x1b105: 0x6d002220, 0x1b106: 0x6d002420, 0x1b107: 0x6cf17a20,
-	0x1b108: 0x6d08f420, 0x1b109: 0x6cb58220, 0x1b10a: 0x6cb5a220, 0x1b10b: 0x6d2cea20,
-	0x1b10c: 0x6c0d3620, 0x1b10d: 0x6c742620, 0x1b10e: 0x6d2cf020, 0x1b10f: 0x6c80b820,
-	0x1b110: 0x6c3a5620, 0x1b111: 0x6c048020, 0x1b112: 0x6c048820, 0x1b113: 0x6c7fb420,
-	0x1b114: 0x6d22a620, 0x1b115: 0x6c7ff620, 0x1b116: 0x6cf06420, 0x1b117: 0x6c30f820,
-	0x1b118: 0x6cd0de20, 0x1b119: 0x6c8a9420, 0x1b11a: 0x6c640a20, 0x1b11b: 0x6c554420,
-	0x1b11c: 0x6d00a020, 0x1b11d: 0x6c641820, 0x1b11e: 0x6d225820, 0x1b11f: 0x6d316420,
-	0x1b120: 0x6c69ae20, 0x1b121: 0x6cf30220, 0x1b122: 0x6ce5ca20, 0x1b123: 0x6c313a20,
-	0x1b124: 0x6c6c1e20, 0x1b125: 0x6c1bdc20, 0x1b126: 0x6d1a2e20, 0x1b127: 0x6c3f4420,
-	0x1b128: 0x6cbaa420, 0x1b129: 0x6d2ddc20, 0x1b12a: 0x6cc17820, 0x1b12b: 0x6d3d3220,
-	0x1b12c: 0x6d2de620, 0x1b12d: 0x6c32ba20, 0x1b12e: 0x6c262820, 0x1b12f: 0x6cd7e820,
-	0x1b130: 0x6d02dc20, 0x1b131: 0x6d3d5c20, 0x1b132: 0x6d3d7e20, 0x1b133: 0x6cbd9620,
-	0x1b134: 0x6c8bda20, 0x1b135: 0x6d3dac20, 0x1b136: 0x6c1f7c20, 0x1b137: 0x6c32e020,
-	0x1b138: 0x6d3a9020, 0x1b139: 0x6c398020, 0x1b13a: 0x6c159820, 0x1b13b: 0x6c4f5e20,
-	0x1b13c: 0x6d20c220, 0x1b13d: 0x6cd1aa20, 0x1b13e: 0x6cae0e20, 0x1b13f: 0x6d1f0820,
-	// Block 0x6c5, offset 0x1b140
-	0x1b140: 0x6c9a7c20, 0x1b141: 0x6cacfa20, 0x1b142: 0x6cb5a420, 0x1b143: 0x6d2d6820,
-	0x1b144: 0x6c98d020, 0x1b145: 0x6c938a20, 0x1b146: 0x6cae1220, 0x1b147: 0x6caf6020,
-	0x1b148: 0x6c8e4e20, 0x1b149: 0x6c3d6220, 0x1b14a: 0x6c39d020, 0x1b14b: 0x6d081020,
-	0x1b14c: 0x6c6daa20, 0x1b14d: 0x6c6dac20, 0x1b14e: 0x6ca63620, 0x1b14f: 0x6d40b820,
-	0x1b150: 0x6d2fb020, 0x1b151: 0x6d15ee20, 0x1b152: 0x6c8e6a20, 0x1b153: 0x6cce7420,
-	0x1b154: 0x6c668a20, 0x1b155: 0x6d214c20, 0x1b156: 0x6d15fe20, 0x1b157: 0x6cb61a20,
-	0x1b158: 0x6d36e020, 0x1b159: 0x6c385e20, 0x1b15a: 0x6cb16620, 0x1b15b: 0x6c386020,
-	0x1b15c: 0x6d2db220, 0x1b15d: 0x6c7b4420, 0x1b15e: 0x6cdc9a20, 0x1b15f: 0x6d21d420,
-	0x1b160: 0x6cf39a20, 0x1b161: 0x6c616c20, 0x1b162: 0x6c61a820, 0x1b163: 0x6c61ec20,
-	0x1b164: 0x6c5dce20, 0x1b165: 0x6cc63620, 0x1b166: 0x6c285e20, 0x1b167: 0x6c6fca20,
-	0x1b168: 0x6d34d820, 0x1b169: 0x6d2a3a20, 0x1b16a: 0x6d006820, 0x1b16b: 0x6ce54620,
-	0x1b16c: 0x6d09d620, 0x1b16d: 0x6d066820, 0x1b16e: 0x6c40bc20, 0x1b16f: 0x6c7e5820,
-	0x1b170: 0x6c420c20, 0x1b171: 0x6c4e8a20, 0x1b172: 0x6cdf1020, 0x1b173: 0x6c2c1620,
-	0x1b174: 0x6d056620, 0x1b175: 0x6c159420, 0x1b176: 0x6cd23a20, 0x1b177: 0x6c7bde20,
-	0x1b178: 0x6d0f7c20, 0x1b179: 0x6cd24620, 0x1b17a: 0x6cee4c20, 0x1b17b: 0x6c9f3020,
-	0x1b17c: 0x6c9f3220, 0x1b17d: 0x6cea8620, 0x1b17e: 0x6c20fc20, 0x1b17f: 0x6cf42820,
-	// Block 0x6c6, offset 0x1b180
-	0x1b180: 0x6d278820, 0x1b181: 0x6c06e620, 0x1b182: 0x6c01f420, 0x1b183: 0x6d2b3e20,
-	0x1b184: 0x6c04ba20, 0x1b185: 0x6c6a7420, 0x1b186: 0x6c7d4c20, 0x1b187: 0x6cd0e020,
-	0x1b188: 0x6c566820, 0x1b189: 0x6c39c420, 0x1b18a: 0x6c501c20, 0x1b18b: 0x6c4b2e20,
-	0x1b18c: 0x6c166020, 0x1b18d: 0x6d077c20, 0x1b18e: 0x6c9fe820, 0x1b18f: 0x6c5cb220,
-	0x1b190: 0x6c3b1620, 0x1b191: 0x6cbdc820, 0x1b192: 0x6c54a220, 0x1b193: 0x6d16ba20,
-	0x1b194: 0x6cf58620, 0x1b195: 0x6d02b220, 0x1b196: 0x6d0c6420, 0x1b197: 0x6d2b4020,
-	0x1b198: 0x6c39c620, 0x1b199: 0x6cdfd220, 0x1b19a: 0x6cd09420, 0x1b19b: 0x6c721020,
-	0x1b19c: 0x6d0f9620, 0x1b19d: 0x6d296020, 0x1b19e: 0x6c0dcc20, 0x1b19f: 0x6d036a20,
-	0x1b1a0: 0x6d1d3420, 0x1b1a1: 0x6d087620, 0x1b1a2: 0x6cb36e20, 0x1b1a3: 0x6d31c020,
-	0x1b1a4: 0x6c8cb420, 0x1b1a5: 0x6c210020, 0x1b1a6: 0x6c502020, 0x1b1a7: 0x6c9a7e20,
-	0x1b1a8: 0x6d422e20, 0x1b1a9: 0x6ca0e020, 0x1b1aa: 0x6c0b8620, 0x1b1ab: 0x6d069020,
-	0x1b1ac: 0x6c5cb420, 0x1b1ad: 0x6d2f5c20, 0x1b1ae: 0x6d401820, 0x1b1af: 0x6cd33820,
-	0x1b1b0: 0x6cd33a20, 0x1b1b1: 0x6d22e220, 0x1b1b2: 0x6c3a8e20, 0x1b1b3: 0x6c2e7420,
-	0x1b1b4: 0x6c993220, 0x1b1b5: 0x6ca68620, 0x1b1b6: 0x6c16e620, 0x1b1b7: 0x6cf14a20,
-	0x1b1b8: 0x6c2fe420, 0x1b1b9: 0x6c006220, 0x1b1ba: 0x6c0dce20, 0x1b1bb: 0x6c01f620,
-	0x1b1bc: 0x6d390e20, 0x1b1bd: 0x6c8f7420, 0x1b1be: 0x6cfbec20, 0x1b1bf: 0x6c7be820,
-	// Block 0x6c7, offset 0x1b1c0
-	0x1b1c0: 0x6ce5ba20, 0x1b1c1: 0x6c175c20, 0x1b1c2: 0x6cd25c20, 0x1b1c3: 0x6c5a8220,
-	0x1b1c4: 0x6c5a4e20, 0x1b1c5: 0x6d084820, 0x1b1c6: 0x6c7c6220, 0x1b1c7: 0x6d058020,
-	0x1b1c8: 0x6c68dc20, 0x1b1c9: 0x6c6cea20, 0x1b1ca: 0x6d35ba20, 0x1b1cb: 0x6c6cec20,
-	0x1b1cc: 0x6cce3620, 0x1b1cd: 0x6ce72e20, 0x1b1ce: 0x6c53a020, 0x1b1cf: 0x6d0e5020,
-	0x1b1d0: 0x6c40ec20, 0x1b1d1: 0x6cfde020, 0x1b1d2: 0x6ccc9c20, 0x1b1d3: 0x6cffa820,
-	0x1b1d4: 0x6d12de20, 0x1b1d5: 0x6d274c20, 0x1b1d6: 0x6c5aa220, 0x1b1d7: 0x6c4dfe20,
-	0x1b1d8: 0x6c4eac20, 0x1b1d9: 0x6c75ae20, 0x1b1da: 0x6ced0820, 0x1b1db: 0x6cfcb020,
-	0x1b1dc: 0x6c7d5820, 0x1b1dd: 0x6d392020, 0x1b1de: 0x6cf5ea20, 0x1b1df: 0x6c19de20,
-	0x1b1e0: 0x6cd15820, 0x1b1e1: 0x6c101420, 0x1b1e2: 0x6d304c20, 0x1b1e3: 0x6d304e20,
-	0x1b1e4: 0x6cf4dc20, 0x1b1e5: 0x6c4eae20, 0x1b1e6: 0x6c5bb620, 0x1b1e7: 0x6c503420,
-	0x1b1e8: 0x6c194e20, 0x1b1e9: 0x6ced1820, 0x1b1ea: 0x6ce4f420, 0x1b1eb: 0x6d3d5e20,
-	0x1b1ec: 0x6d41b220, 0x1b1ed: 0x6d38e820, 0x1b1ee: 0x6cb48c20, 0x1b1ef: 0x6c6e2020,
-	0x1b1f0: 0x6cf60c20, 0x1b1f1: 0x6ccd4020, 0x1b1f2: 0x6ca63820, 0x1b1f3: 0x6cf60e20,
-	0x1b1f4: 0x6cbe7a20, 0x1b1f5: 0x6cb6fc20, 0x1b1f6: 0x6c6db420, 0x1b1f7: 0x6c4afc20,
-	0x1b1f8: 0x6d332220, 0x1b1f9: 0x6d179e20, 0x1b1fa: 0x6d362820, 0x1b1fb: 0x6c01c220,
-	0x1b1fc: 0x6ced1a20, 0x1b1fd: 0x6c8bb220, 0x1b1fe: 0x6c89b820, 0x1b1ff: 0x6c166e20,
-	// Block 0x6c8, offset 0x1b200
-	0x1b200: 0x6cee1820, 0x1b201: 0x6cffac20, 0x1b202: 0x6d298c20, 0x1b203: 0x6c3b0620,
-	0x1b204: 0x6d07a620, 0x1b205: 0x6c453420, 0x1b206: 0x6d151820, 0x1b207: 0x6cf9d020,
-	0x1b208: 0x6d275420, 0x1b209: 0x6c5ac220, 0x1b20a: 0x6d064220, 0x1b20b: 0x6c9fba20,
-	0x1b20c: 0x6c7c8820, 0x1b20d: 0x6d126020, 0x1b20e: 0x6d1d3a20, 0x1b20f: 0x6cd55c20,
-	0x1b210: 0x6cefd820, 0x1b211: 0x6cd55a20, 0x1b212: 0x6cbe8220, 0x1b213: 0x6c998e20,
-	0x1b214: 0x6ca40020, 0x1b215: 0x6c65ac20, 0x1b216: 0x6caa9420, 0x1b217: 0x6c01c620,
-	0x1b218: 0x6d0fc420, 0x1b219: 0x6c210a20, 0x1b21a: 0x6d111e20, 0x1b21b: 0x6cdd7820,
-	0x1b21c: 0x6c6d2820, 0x1b21d: 0x6ca00e20, 0x1b21e: 0x6c691620, 0x1b21f: 0x6c766620,
-	0x1b220: 0x6c430e20, 0x1b221: 0x6cf25620, 0x1b222: 0x6c171c20, 0x1b223: 0x6cb7b020,
-	0x1b224: 0x6c505220, 0x1b225: 0x6d0e9420, 0x1b226: 0x6c864a20, 0x1b227: 0x6c00ba20,
-	0x1b228: 0x6c623620, 0x1b229: 0x6c626020, 0x1b22a: 0x6c9af820, 0x1b22b: 0x6d299620,
-	0x1b22c: 0x6d01f820, 0x1b22d: 0x6c505820, 0x1b22e: 0x6ca2a220, 0x1b22f: 0x6ca14020,
-	0x1b230: 0x6c233820, 0x1b231: 0x6ca6b820, 0x1b232: 0x6d2ed420, 0x1b233: 0x6c5c1420,
-	0x1b234: 0x6c066220, 0x1b235: 0x6c4ef820, 0x1b236: 0x6d081e20, 0x1b237: 0x6c200420,
-	0x1b238: 0x6c8a1820, 0x1b239: 0x6cfacc20, 0x1b23a: 0x6c28ae20, 0x1b23b: 0x6c6e2e20,
-	0x1b23c: 0x6cb1d220, 0x1b23d: 0x6c8bdc20, 0x1b23e: 0x6cea2820, 0x1b23f: 0x6cf80e20,
-	// Block 0x6c9, offset 0x1b240
-	0x1b240: 0x6d189220, 0x1b241: 0x6c627620, 0x1b242: 0x6c5a7620, 0x1b243: 0x6c278820,
-	0x1b244: 0x6d131220, 0x1b245: 0x6d131420, 0x1b246: 0x6c867820, 0x1b247: 0x6ce00e20,
-	0x1b248: 0x6ce78220, 0x1b249: 0x6cffba20, 0x1b24a: 0x6c3ace20, 0x1b24b: 0x6cd07420,
-	0x1b24c: 0x6d2fde20, 0x1b24d: 0x6c506620, 0x1b24e: 0x6d18c420, 0x1b24f: 0x6cfdfc20,
-	0x1b250: 0x6d03a220, 0x1b251: 0x6cd02620, 0x1b252: 0x6c694a20, 0x1b253: 0x6c067020,
-	0x1b254: 0x6c6eaa20, 0x1b255: 0x6d0ed020, 0x1b256: 0x6c00de20, 0x1b257: 0x6d135c20,
-	0x1b258: 0x6cc7dc20, 0x1b259: 0x6cd57420, 0x1b25a: 0x6c9b5820, 0x1b25b: 0x6d09b820,
-	0x1b25c: 0x6d122e20, 0x1b25d: 0x6cb4bc20, 0x1b25e: 0x6c86ca20, 0x1b25f: 0x6c18f620,
-	0x1b260: 0x6c7c0e20, 0x1b261: 0x6c2f0420, 0x1b262: 0x6c8a7e20, 0x1b263: 0x6d0ef820,
-	0x1b264: 0x6c5e3e20, 0x1b265: 0x6c917e20, 0x1b266: 0x6cf73220, 0x1b267: 0x6cc6dc20,
-	0x1b268: 0x6c8fd620, 0x1b269: 0x6ca47220, 0x1b26a: 0x6c95d620, 0x1b26b: 0x6c945a20,
-	0x1b26c: 0x6cccae20, 0x1b26d: 0x6ce18e20, 0x1b26e: 0x6d0e2420, 0x1b26f: 0x6d3a4420,
-	0x1b270: 0x6d264220, 0x1b271: 0x6d264420, 0x1b272: 0x6cc0c620, 0x1b273: 0x6d12bc20,
-	0x1b274: 0x6c452620, 0x1b275: 0x6d12c420, 0x1b276: 0x6c54a420, 0x1b277: 0x6c50d620,
-	0x1b278: 0x6cd4b820, 0x1b279: 0x6c127420, 0x1b27a: 0x6c127020, 0x1b27b: 0x6cd18620,
-	0x1b27c: 0x6c97da20, 0x1b27d: 0x6c134820, 0x1b27e: 0x6c135020, 0x1b27f: 0x6ce3fc20,
-	// Block 0x6ca, offset 0x1b280
-	0x1b280: 0x6d41b020, 0x1b281: 0x6c11d020, 0x1b282: 0x6d06d620, 0x1b283: 0x6c5be220,
-	0x1b284: 0x6d1af620, 0x1b285: 0x6cbcd220, 0x1b286: 0x6c3b4220, 0x1b287: 0x6cb03820,
-	0x1b288: 0x6d266820, 0x1b289: 0x6d1f9820, 0x1b28a: 0x6cc85020, 0x1b28b: 0x6cae8e20,
-	0x1b28c: 0x6c3b5a20, 0x1b28d: 0x6c3df220, 0x1b28e: 0x6c8cb620, 0x1b28f: 0x6c3a4820,
-	0x1b290: 0x6cc17a20, 0x1b291: 0x6ce3da20, 0x1b292: 0x6caa7e20, 0x1b293: 0x6ce5bc20,
-	0x1b294: 0x6cd77620, 0x1b295: 0x6d322e20, 0x1b296: 0x6c80fa20, 0x1b297: 0x6c80f820,
-	0x1b298: 0x6d416c20, 0x1b299: 0x6c9ff620, 0x1b29a: 0x6c598c20, 0x1b29b: 0x6cee5220,
-	0x1b29c: 0x6cea2020, 0x1b29d: 0x6c176220, 0x1b29e: 0x6c5ed220, 0x1b29f: 0x6cb4f220,
-	0x1b2a0: 0x6d1bba20, 0x1b2a1: 0x6d3f9820, 0x1b2a2: 0x6cee5820, 0x1b2a3: 0x6ce78420,
-	0x1b2a4: 0x6c811220, 0x1b2a5: 0x6c81fa20, 0x1b2a6: 0x6c9b5a20, 0x1b2a7: 0x6c8fd820,
-	0x1b2a8: 0x6ca25c20, 0x1b2a9: 0x6c2ac820, 0x1b2aa: 0x6cf06c20, 0x1b2ab: 0x6ca0bc20,
-	0x1b2ac: 0x6c079220, 0x1b2ad: 0x6d2c1620, 0x1b2ae: 0x6cd59020, 0x1b2af: 0x6cd59220,
-	0x1b2b0: 0x6ca26220, 0x1b2b1: 0x6d397e20, 0x1b2b2: 0x6cc56620, 0x1b2b3: 0x6c031420,
-	0x1b2b4: 0x6cb48220, 0x1b2b5: 0x6c352a20, 0x1b2b6: 0x6c347020, 0x1b2b7: 0x6c29ba20,
-	0x1b2b8: 0x6c857220, 0x1b2b9: 0x6c4abe20, 0x1b2ba: 0x6c5e7820, 0x1b2bb: 0x6c6f4820,
-	0x1b2bc: 0x6c08b220, 0x1b2bd: 0x6d051c20, 0x1b2be: 0x6c19b420, 0x1b2bf: 0x6c22a820,
-	// Block 0x6cb, offset 0x1b2c0
-	0x1b2c0: 0x6ccbc020, 0x1b2c1: 0x6cc83420, 0x1b2c2: 0x6d28ac20, 0x1b2c3: 0x6cc2b420,
-	0x1b2c4: 0x6cb8a620, 0x1b2c5: 0x6d20b620, 0x1b2c6: 0x6c416820, 0x1b2c7: 0x6cf35420,
-	0x1b2c8: 0x6c137c20, 0x1b2c9: 0x6cccbc20, 0x1b2ca: 0x6d09dc20, 0x1b2cb: 0x6c388420,
-	0x1b2cc: 0x6cf4aa20, 0x1b2cd: 0x6d3ee620, 0x1b2ce: 0x6c87d820, 0x1b2cf: 0x6d041220,
-	0x1b2d0: 0x6c110820, 0x1b2d1: 0x6c259220, 0x1b2d2: 0x6cc5c220, 0x1b2d3: 0x6c0bea20,
-	0x1b2d4: 0x6ceaa220, 0x1b2d5: 0x6c2c1820, 0x1b2d6: 0x6d2f2220, 0x1b2d7: 0x6c983220,
-	0x1b2d8: 0x6c1be220, 0x1b2d9: 0x6d168a20, 0x1b2da: 0x6c412c20, 0x1b2db: 0x6c456020,
-	0x1b2dc: 0x6c323420, 0x1b2dd: 0x6c83a220, 0x1b2de: 0x6cb6d620, 0x1b2df: 0x6cd59820,
-	0x1b2e0: 0x6c425620, 0x1b2e1: 0x6ce56a20, 0x1b2e2: 0x6c681a20, 0x1b2e3: 0x6ccdf820,
-	0x1b2e4: 0x6cedb620, 0x1b2e5: 0x6c7ee020, 0x1b2e6: 0x6c704420, 0x1b2e7: 0x6c983420,
-	0x1b2e8: 0x6d0f7e20, 0x1b2e9: 0x6c96b220, 0x1b2ea: 0x6c9e8820, 0x1b2eb: 0x6cd88e20,
-	0x1b2ec: 0x6d254020, 0x1b2ed: 0x6c4f6020, 0x1b2ee: 0x6c3a8620, 0x1b2ef: 0x6c069020,
-	0x1b2f0: 0x6c6a7e20, 0x1b2f1: 0x6c2fe020, 0x1b2f2: 0x6c430020, 0x1b2f3: 0x6d118e20,
-	0x1b2f4: 0x6cfa7c20, 0x1b2f5: 0x6c1ed620, 0x1b2f6: 0x6c20fe20, 0x1b2f7: 0x6cabd020,
-	0x1b2f8: 0x6cd4a820, 0x1b2f9: 0x6c578220, 0x1b2fa: 0x6d02b420, 0x1b2fb: 0x6c1e2020,
-	0x1b2fc: 0x6d3aae20, 0x1b2fd: 0x6c1e2220, 0x1b2fe: 0x6cd90420, 0x1b2ff: 0x6c04bc20,
-	// Block 0x6cc, offset 0x1b300
-	0x1b300: 0x6cd90620, 0x1b301: 0x6c5fd420, 0x1b302: 0x6cf2d620, 0x1b303: 0x6c6cda20,
-	0x1b304: 0x6c469420, 0x1b305: 0x6c5e8e20, 0x1b306: 0x6c98c620, 0x1b307: 0x6cafb820,
-	0x1b308: 0x6c093a20, 0x1b309: 0x6cee6220, 0x1b30a: 0x6c021220, 0x1b30b: 0x6c398820,
-	0x1b30c: 0x6c3b5c20, 0x1b30d: 0x6d16bc20, 0x1b30e: 0x6c3df420, 0x1b30f: 0x6ca3e420,
-	0x1b310: 0x6cf58820, 0x1b311: 0x6c566a20, 0x1b312: 0x6d0ad420, 0x1b313: 0x6c30dc20,
-	0x1b314: 0x6d02fe20, 0x1b315: 0x6d31ba20, 0x1b316: 0x6d109020, 0x1b317: 0x6c8ba020,
-	0x1b318: 0x6cc8c220, 0x1b319: 0x6c35ac20, 0x1b31a: 0x6c99d620, 0x1b31b: 0x6d2f9a20,
-	0x1b31c: 0x6c4cae20, 0x1b31d: 0x6d339620, 0x1b31e: 0x6c230420, 0x1b31f: 0x6d281c20,
-	0x1b320: 0x6d41e420, 0x1b321: 0x6c30de20, 0x1b322: 0x6cd4aa20, 0x1b323: 0x6d2a3c20,
-	0x1b324: 0x6c352c20, 0x1b325: 0x6c858e20, 0x1b326: 0x6c934620, 0x1b327: 0x6c656620,
-	0x1b328: 0x6c19be20, 0x1b329: 0x6cd9a020, 0x1b32a: 0x6cbaa620, 0x1b32b: 0x6c3c2220,
-	0x1b32c: 0x6ca3e620, 0x1b32d: 0x6cfe8620, 0x1b32e: 0x6cfa8a20, 0x1b32f: 0x6c7a2e20,
-	0x1b330: 0x6cb28420, 0x1b331: 0x6cdf1c20, 0x1b332: 0x6cf7d420, 0x1b333: 0x6d350220,
-	0x1b334: 0x6c48da20, 0x1b335: 0x6cfe8c20, 0x1b336: 0x6c643a20, 0x1b337: 0x6c633420,
-	0x1b338: 0x6c467620, 0x1b339: 0x6c05aa20, 0x1b33a: 0x6ca0e220, 0x1b33b: 0x6d16f220,
-	0x1b33c: 0x6d12d820, 0x1b33d: 0x6d12e020, 0x1b33e: 0x6cd33c20, 0x1b33f: 0x6ca7fa20,
-	// Block 0x6cd, offset 0x1b340
-	0x1b340: 0x6c08c220, 0x1b341: 0x6c34d820, 0x1b342: 0x6d149e20, 0x1b343: 0x6c8cb820,
-	0x1b344: 0x6c0dd020, 0x1b345: 0x6ca63020, 0x1b346: 0x6c7e4020, 0x1b347: 0x6c50d820,
-	0x1b348: 0x6c04f020, 0x1b349: 0x6c388620, 0x1b34a: 0x6d37a420, 0x1b34b: 0x6c274620,
-	0x1b34c: 0x6c222c20, 0x1b34d: 0x6d100a20, 0x1b34e: 0x6c3d4a20, 0x1b34f: 0x6c041a20,
-	0x1b350: 0x6ca1fe20, 0x1b351: 0x6c418620, 0x1b352: 0x6cb4d420, 0x1b353: 0x6cc4ba20,
-	0x1b354: 0x6cc74220, 0x1b355: 0x6c995220, 0x1b356: 0x6cce9a20, 0x1b357: 0x6cd90e20,
-	0x1b358: 0x6d30e620, 0x1b359: 0x6cf99620, 0x1b35a: 0x6d202a20, 0x1b35b: 0x6ccfba20,
-	0x1b35c: 0x6c4b3020, 0x1b35d: 0x6ceb9a20, 0x1b35e: 0x6d2cb420, 0x1b35f: 0x6ca3ec20,
-	0x1b360: 0x6ca8fe20, 0x1b361: 0x6d1e2420, 0x1b362: 0x6c2be420, 0x1b363: 0x6d359e20,
-	0x1b364: 0x6d2bcc20, 0x1b365: 0x6c13cc20, 0x1b366: 0x6c287020, 0x1b367: 0x6c46f820,
-	0x1b368: 0x6c107620, 0x1b369: 0x6c6fdc20, 0x1b36a: 0x6c022820, 0x1b36b: 0x6c3e0c20,
-	0x1b36c: 0x6c657020, 0x1b36d: 0x6c032e20, 0x1b36e: 0x6c34da20, 0x1b36f: 0x6c77de20,
-	0x1b370: 0x6ca3b020, 0x1b371: 0x6d3abe20, 0x1b372: 0x6c094820, 0x1b373: 0x6c8efa20,
-	0x1b374: 0x6c147620, 0x1b375: 0x6cccd020, 0x1b376: 0x6cd89e20, 0x1b377: 0x6c1f1820,
-	0x1b378: 0x6cadb620, 0x1b379: 0x6cd31a20, 0x1b37a: 0x6c48dc20, 0x1b37b: 0x6d2bce20,
-	0x1b37c: 0x6d119820, 0x1b37d: 0x6c195620, 0x1b37e: 0x6c6fde20, 0x1b37f: 0x6cd33e20,
-	// Block 0x6ce, offset 0x1b380
-	0x1b380: 0x6d33a620, 0x1b381: 0x6c8efc20, 0x1b382: 0x6c99de20, 0x1b383: 0x6c87da20,
-	0x1b384: 0x6cc65620, 0x1b385: 0x6d2cb620, 0x1b386: 0x6d2aa020, 0x1b387: 0x6c0bec20,
-	0x1b388: 0x6d2e4c20, 0x1b389: 0x6d35a020, 0x1b38a: 0x6c8f7620, 0x1b38b: 0x6c306220,
-	0x1b38c: 0x6c914420, 0x1b38d: 0x6cd0ea20, 0x1b38e: 0x6c85a620, 0x1b38f: 0x6c7f9020,
-	0x1b390: 0x6d1e1c20, 0x1b391: 0x6cd5ae20, 0x1b392: 0x6d09f620, 0x1b393: 0x6cd68420,
-	0x1b394: 0x6cb76820, 0x1b395: 0x6d313820, 0x1b396: 0x6cb4dc20, 0x1b397: 0x6c85ca20,
-	0x1b398: 0x6d14c220, 0x1b399: 0x6cfdba20, 0x1b39a: 0x6d323020, 0x1b39b: 0x6c85cc20,
-	0x1b39c: 0x6ccb1a20, 0x1b39d: 0x6c484e20, 0x1b39e: 0x6c76a420, 0x1b39f: 0x6c078420,
-	0x1b3a0: 0x6cc58e20, 0x1b3a1: 0x6cffde20, 0x1b3a2: 0x6c041c20, 0x1b3a3: 0x6cc59020,
-	0x1b3a4: 0x6c0e1220, 0x1b3a5: 0x6d3e1620, 0x1b3a6: 0x6c1d9820, 0x1b3a7: 0x6d172c20,
-	0x1b3a8: 0x6c22be20, 0x1b3a9: 0x6d063420, 0x1b3aa: 0x6d399220, 0x1b3ab: 0x6c666c20,
-	0x1b3ac: 0x6d41a820, 0x1b3ad: 0x6c374a20, 0x1b3ae: 0x6c378e20, 0x1b3af: 0x6d1fb820,
-	0x1b3b0: 0x6c380c20, 0x1b3b1: 0x6c45e220, 0x1b3b2: 0x6c77a620, 0x1b3b3: 0x6c81ac20,
-	0x1b3b4: 0x6d2d6a20, 0x1b3b5: 0x6c8aec20, 0x1b3b6: 0x6d19be20, 0x1b3b7: 0x6d104420,
-	0x1b3b8: 0x6c50f220, 0x1b3b9: 0x6c449820, 0x1b3ba: 0x6d172e20, 0x1b3bb: 0x6cd34e20,
-	0x1b3bc: 0x6c43dc20, 0x1b3bd: 0x6d28fc20, 0x1b3be: 0x6c943620, 0x1b3bf: 0x6c3e3420,
-	// Block 0x6cf, offset 0x1b3c0
-	0x1b3c0: 0x6c6aa620, 0x1b3c1: 0x6c525c20, 0x1b3c2: 0x6c4b3e20, 0x1b3c3: 0x6ce21020,
-	0x1b3c4: 0x6c49e420, 0x1b3c5: 0x6ceef420, 0x1b3c6: 0x6c7b9820, 0x1b3c7: 0x6cc79620,
-	0x1b3c8: 0x6c01ac20, 0x1b3c9: 0x6c012020, 0x1b3ca: 0x6c734a20, 0x1b3cb: 0x6d14c420,
-	0x1b3cc: 0x6d3cf820, 0x1b3cd: 0x6c7a3620, 0x1b3ce: 0x6d35bc20, 0x1b3cf: 0x6cbf0420,
-	0x1b3d0: 0x6ce73020, 0x1b3d1: 0x6cca6c20, 0x1b3d2: 0x6cca6a20, 0x1b3d3: 0x6c586a20,
-	0x1b3d4: 0x6c710420, 0x1b3d5: 0x6c6fea20, 0x1b3d6: 0x6d094c20, 0x1b3d7: 0x6c34e020,
-	0x1b3d8: 0x6d3c7c20, 0x1b3d9: 0x6d20f220, 0x1b3da: 0x6d296420,
-	0x1b3dc: 0x6d1ba620, 0x1b3dd: 0x6c6c1820, 0x1b3de: 0x6c8f6220, 0x1b3df: 0x6d2e5020,
-	0x1b3e0: 0x6d0ade20, 0x1b3e1: 0x6cc52620, 0x1b3e2: 0x6d313a20, 0x1b3e3: 0x6c295e20,
-	0x1b3e4: 0x6cb4de20, 0x1b3e5: 0x6cbbd820, 0x1b3e6: 0x6c578c20, 0x1b3e7: 0x6c4b4020,
-	0x1b3e8: 0x6c67a220, 0x1b3e9: 0x6d3c1220, 0x1b3ea: 0x6d09f820, 0x1b3eb: 0x6cdd1620,
-	0x1b3ec: 0x6ccbe620, 0x1b3ed: 0x6d314e20, 0x1b3ee: 0x6c069a20, 0x1b3ef: 0x6ce64020,
-	0x1b3f0: 0x6c7df220, 0x1b3f1: 0x6c6e7020, 0x1b3f2: 0x6cb3c220, 0x1b3f3: 0x6c07b020,
-	0x1b3f4: 0x6c3e4e20, 0x1b3f5: 0x6cc89a20, 0x1b3f6: 0x6ce7b620, 0x1b3f7: 0x6c742820,
-	0x1b3f8: 0x6cf5ec20, 0x1b3f9: 0x6c80ba20, 0x1b3fa: 0x6c8f0420, 0x1b3fb: 0x6c3c3c20,
-	0x1b3fc: 0x6cb4e820, 0x1b3fd: 0x6cf1d420, 0x1b3fe: 0x6c756c20, 0x1b3ff: 0x6c41d620,
-	// Block 0x6d0, offset 0x1b400
-	0x1b400: 0x6cdaa220, 0x1b401: 0x6c894c20, 0x1b402: 0x6cc04620, 0x1b403: 0x6ce6be20,
-	0x1b404: 0x6d1fc020, 0x1b405: 0x6c99ec20, 0x1b406: 0x6c052420, 0x1b407: 0x6c906620,
-	0x1b408: 0x6cae6820, 0x1b409: 0x6d3c1620, 0x1b40a: 0x6c2c4020, 0x1b40b: 0x6d078c20,
-	0x1b40c: 0x6ce8a220, 0x1b40d: 0x6d2a7e20, 0x1b40e: 0x6c022a20, 0x1b40f: 0x6c481020,
-	0x1b410: 0x6c097a20, 0x1b411: 0x6c2b6820, 0x1b412: 0x6c4e0020, 0x1b413: 0x6d3f0820,
-	0x1b414: 0x6d33d420, 0x1b415: 0x6cc5e620, 0x1b416: 0x6c070e20, 0x1b417: 0x6c450820,
-	0x1b418: 0x6c658620, 0x1b419: 0x6c591020, 0x1b41a: 0x6ced0a20, 0x1b41b: 0x6caaba20,
-	0x1b41c: 0x6c634a20, 0x1b41d: 0x6ce57c20, 0x1b41e: 0x6c61ee20, 0x1b41f: 0x6cfeb220,
-	0x1b420: 0x6c938e20, 0x1b421: 0x6c5ce620, 0x1b422: 0x6cce6820, 0x1b423: 0x6c133020,
-	0x1b424: 0x6c3b6c20, 0x1b425: 0x6cd91a20, 0x1b426: 0x6c9c0220, 0x1b427: 0x6cf3c020,
-	0x1b428: 0x6c83bc20, 0x1b429: 0x6c83be20, 0x1b42a: 0x6c311020, 0x1b42b: 0x6cbdd020,
-	0x1b42c: 0x6d1cea20, 0x1b42d: 0x6cdd1820, 0x1b42e: 0x6c708c20, 0x1b42f: 0x6ce2ea20,
-	0x1b430: 0x6d019020, 0x1b431: 0x6c7da820, 0x1b432: 0x6d3d5020, 0x1b433: 0x6cd4ca20,
-	0x1b434: 0x6c14c020, 0x1b435: 0x6c394220, 0x1b436: 0x6cefae20, 0x1b437: 0x6c6e7220,
-	0x1b438: 0x6c83c020, 0x1b439: 0x6c0d3220, 0x1b43a: 0x6cfa6420, 0x1b43b: 0x6c3d1020,
-	0x1b43c: 0x6ce21c20, 0x1b43d: 0x6d35e220, 0x1b43e: 0x6c7efa20, 0x1b43f: 0x6c87fc20,
-	// Block 0x6d1, offset 0x1b440
-	0x1b440: 0x6c658820, 0x1b441: 0x6d3cfc20, 0x1b442: 0x6c8ce620, 0x1b443: 0x6c83d420,
-	0x1b444: 0x6cb79220, 0x1b445: 0x6c0e2220, 0x1b446: 0x6c94f820, 0x1b447: 0x6c231620,
-	0x1b448: 0x6cba5420, 0x1b449: 0x6c9dc420, 0x1b44a: 0x6cb5e620, 0x1b44b: 0x6cb5e820,
-	0x1b44c: 0x6c114620, 0x1b44d: 0x6c4bf820, 0x1b44e: 0x6c14f420, 0x1b44f: 0x6c2a7020,
-	0x1b450: 0x6c3a5820, 0x1b451: 0x6cabfe20, 0x1b452: 0x6c057020, 0x1b453: 0x6c057220,
-	0x1b454: 0x6c5cca20, 0x1b455: 0x6d3f8e20, 0x1b456: 0x6c1a0020, 0x1b457: 0x6d2a4c20,
-	0x1b458: 0x6c603820, 0x1b459: 0x6c861020, 0x1b45a: 0x6caea020, 0x1b45b: 0x6d233e20,
-	0x1b45c: 0x6d234020, 0x1b45d: 0x6c481420, 0x1b45e: 0x6c75ba20, 0x1b45f: 0x6c307620,
-	0x1b460: 0x6ce0f620, 0x1b461: 0x6c428020, 0x1b462: 0x6cee1a20, 0x1b463: 0x6c2c5620,
-	0x1b464: 0x6c262a20, 0x1b465: 0x6c389c20, 0x1b466: 0x6c195c20, 0x1b467: 0x6d2e6220,
-	0x1b468: 0x6cb6fe20, 0x1b469: 0x6d24f620, 0x1b46a: 0x6d0d8820, 0x1b46b: 0x6d234220,
-	0x1b46c: 0x6cc29e20, 0x1b46d: 0x6d17a020, 0x1b46e: 0x6ccbaa20, 0x1b46f: 0x6cc59820,
-	0x1b470: 0x6c20d220, 0x1b471: 0x6c837820, 0x1b472: 0x6cb4f420, 0x1b473: 0x6d3d0220,
-	0x1b474: 0x6c3e7a20, 0x1b475: 0x6c77f820, 0x1b476: 0x6c7f0820, 0x1b477: 0x6d405220,
-	0x1b478: 0x6d405420, 0x1b479: 0x6d2fb220, 0x1b47a: 0x6c491620, 0x1b47b: 0x6c3b2a20,
-	0x1b47c: 0x6c3b7420, 0x1b47d: 0x6ccfe620, 0x1b47e: 0x6cbe7c20, 0x1b47f: 0x6ca5e420,
-	// Block 0x6d2, offset 0x1b480
-	0x1b480: 0x6ced1c20, 0x1b481: 0x6c4cc020, 0x1b482: 0x6c925420, 0x1b483: 0x6c4fc620,
-	0x1b484: 0x6c6a1620, 0x1b485: 0x6d15f020, 0x1b486: 0x6c1dae20, 0x1b487: 0x6c71b620,
-	0x1b488: 0x6c712220, 0x1b489: 0x6c1a0220, 0x1b48a: 0x6d423a20, 0x1b48b: 0x6c895420,
-	0x1b48c: 0x6cbab820, 0x1b48d: 0x6d346020, 0x1b48e: 0x6c20d420, 0x1b48f: 0x6d0af020,
-	0x1b490: 0x6c709220, 0x1b491: 0x6c06a020, 0x1b492: 0x6c684620, 0x1b493: 0x6d3d6020,
-	0x1b494: 0x6d3e3a20, 0x1b495: 0x6c0d3820, 0x1b496: 0x6caea220, 0x1b497: 0x6c2fa620,
-	0x1b498: 0x6c1eda20, 0x1b499: 0x6c172e20, 0x1b49a: 0x6c9b0620, 0x1b49b: 0x6c57dc20,
-	0x1b49c: 0x6c659420, 0x1b49d: 0x6c4a6820, 0x1b49e: 0x6cf88820, 0x1b49f: 0x6c319c20,
-	0x1b4a0: 0x6cba5620, 0x1b4a1: 0x6c2a5820, 0x1b4a2: 0x6c4bb420, 0x1b4a3: 0x6c2da020,
-	0x1b4a4: 0x6c954620, 0x1b4a5: 0x6d33e020, 0x1b4a6: 0x6cc38220, 0x1b4a7: 0x6ca04420,
-	0x1b4a8: 0x6c40b220, 0x1b4a9: 0x6c454820, 0x1b4aa: 0x6caf1220, 0x1b4ab: 0x6d2dee20,
-	0x1b4ac: 0x6d199420, 0x1b4ad: 0x6ceb7e20, 0x1b4ae: 0x6ccbac20, 0x1b4af: 0x6c349a20,
-	0x1b4b0: 0x6d125e20, 0x1b4b1: 0x6c400c20, 0x1b4b2: 0x6cefda20, 0x1b4b3: 0x6cee9a20,
-	0x1b4b4: 0x6c32c820, 0x1b4b5: 0x6c641a20, 0x1b4b6: 0x6d3f9a20, 0x1b4b7: 0x6c64b220,
-	0x1b4b8: 0x6d151a20, 0x1b4b9: 0x6cd0ae20, 0x1b4ba: 0x6cf78620, 0x1b4bb: 0x6d0e8220,
-	0x1b4bc: 0x6d0da220, 0x1b4bd: 0x6c200020, 0x1b4be: 0x6c64b420, 0x1b4bf: 0x6c210c20,
-	// Block 0x6d3, offset 0x1b4c0
-	0x1b4c0: 0x6d226a20, 0x1b4c1: 0x6c513a20, 0x1b4c2: 0x6d2be020, 0x1b4c3: 0x6cf2fa20,
-	0x1b4c4: 0x6cb11420, 0x1b4c5: 0x6c087a20, 0x1b4c6: 0x6d10ac20, 0x1b4c7: 0x6c5dd020,
-	0x1b4c8: 0x6d05b220, 0x1b4c9: 0x6cc92020, 0x1b4ca: 0x6d0fc620, 0x1b4cb: 0x6c7e7c20,
-	0x1b4cc: 0x6d0caa20, 0x1b4cd: 0x6c079e20, 0x1b4ce: 0x6c5ac420, 0x1b4cf: 0x6c7c8a20,
-	0x1b4d0: 0x6c6bea20, 0x1b4d1: 0x6c7c8c20, 0x1b4d2: 0x6cd7f220, 0x1b4d3: 0x6c3c5420,
-	0x1b4d4: 0x6d004820, 0x1b4d5: 0x6ceb8220, 0x1b4d6: 0x6d35e420, 0x1b4d7: 0x6c668c20,
-	0x1b4d8: 0x6ca29a20, 0x1b4d9: 0x6c999020, 0x1b4da: 0x6c1f9420, 0x1b4db: 0x6c569e20,
-	0x1b4dc: 0x6c556c20, 0x1b4dd: 0x6c890420, 0x1b4de: 0x6c837a20, 0x1b4df: 0x6ce67e20,
-	0x1b4e0: 0x6ca40220, 0x1b4e1: 0x6d215220, 0x1b4e2: 0x6d1f4620, 0x1b4e3: 0x6c9a0820,
-	0x1b4e4: 0x6cd96620, 0x1b4e5: 0x6d089a20, 0x1b4e6: 0x6d089c20, 0x1b4e7: 0x6d101e20,
-	0x1b4e8: 0x6d316620, 0x1b4e9: 0x6cb11620, 0x1b4ea: 0x6d12fe20, 0x1b4eb: 0x6c605220,
-	0x1b4ec: 0x6c6ae620, 0x1b4ed: 0x6d130020, 0x1b4ee: 0x6c1ee020, 0x1b4ef: 0x6c33fa20,
-	0x1b4f0: 0x6d212820, 0x1b4f1: 0x6d408a20, 0x1b4f2: 0x6cee9c20, 0x1b4f3: 0x6c9a0a20,
-	0x1b4f4: 0x6ce40220, 0x1b4f5: 0x6c603a20, 0x1b4f6: 0x6c6ae820, 0x1b4f7: 0x6c766220,
-	0x1b4f8: 0x6cbfb420, 0x1b4f9: 0x6d1c7e20, 0x1b4fa: 0x6cc77a20, 0x1b4fb: 0x6c59d020,
-	0x1b4fc: 0x6c909620, 0x1b4fd: 0x6c822220, 0x1b4fe: 0x6cc38420, 0x1b4ff: 0x6cfe7620,
-	// Block 0x6d4, offset 0x1b500
-	0x1b500: 0x6cb23c20, 0x1b501: 0x6cd41820, 0x1b502: 0x6c414420, 0x1b503: 0x6cdfe820,
-	0x1b504: 0x6c802e20, 0x1b505: 0x6cf15620, 0x1b506: 0x6d215420, 0x1b507: 0x6c192c20,
-	0x1b508: 0x6c935620, 0x1b509: 0x6c71be20, 0x1b50a: 0x6cd0cc20, 0x1b50b: 0x6c1f9620,
-	0x1b50c: 0x6cb0ea20, 0x1b50d: 0x6d01d420, 0x1b50e: 0x6c642420, 0x1b50f: 0x6d182420,
-	0x1b510: 0x6d2e0220, 0x1b511: 0x6c3ec020, 0x1b512: 0x6cab0620, 0x1b513: 0x6c9d6620,
-	0x1b514: 0x6c80c220, 0x1b515: 0x6cc69020, 0x1b516: 0x6c47ae20, 0x1b517: 0x6c66a820,
-	0x1b518: 0x6c71c020, 0x1b519: 0x6cddf220, 0x1b51a: 0x6d11c020, 0x1b51b: 0x6d317a20,
-	0x1b51c: 0x6c055220, 0x1b51d: 0x6ccc0820, 0x1b51e: 0x6d259220, 0x1b51f: 0x6d3f2020,
-	0x1b520: 0x6ca01020, 0x1b521: 0x6cdae620, 0x1b522: 0x6c644c20, 0x1b523: 0x6d112020,
-	0x1b524: 0x6c6b0a20, 0x1b525: 0x6c5a7420, 0x1b526: 0x6c422a20, 0x1b527: 0x6c3a6220,
-	0x1b528: 0x6d2cd020, 0x1b529: 0x6cb9ae20, 0x1b52a: 0x6c96ce20, 0x1b52b: 0x6cdcf420,
-	0x1b52c: 0x6d259420, 0x1b52d: 0x6d01d620, 0x1b52e: 0x6cc69220, 0x1b52f: 0x6cd27c20,
-	0x1b530: 0x6d33fe20, 0x1b531: 0x6c24de20, 0x1b532: 0x6d27ba20, 0x1b533: 0x6ce68020,
-	0x1b534: 0x6c8e7a20, 0x1b535: 0x6cc68620, 0x1b536: 0x6ce10e20, 0x1b537: 0x6cc3de20,
-	0x1b538: 0x6d2cfa20, 0x1b539: 0x6cd80220, 0x1b53a: 0x6cd17420, 0x1b53b: 0x6cde7020,
-	0x1b53c: 0x6c781420, 0x1b53d: 0x6cf66c20, 0x1b53e: 0x6c479c20, 0x1b53f: 0x6cb51020,
-	// Block 0x6d5, offset 0x1b540
-	0x1b540: 0x6c431020, 0x1b541: 0x6c431220, 0x1b542: 0x6cdcdc20, 0x1b543: 0x6cac6620,
-	0x1b544: 0x6ce1da20, 0x1b545: 0x6c441220, 0x1b546: 0x6d0a1a20, 0x1b547: 0x6c2cd420,
-	0x1b548: 0x6caa2420, 0x1b549: 0x6c606420, 0x1b54a: 0x6cd78c20, 0x1b54b: 0x6c46c220,
-	0x1b54c: 0x6c20d820, 0x1b54d: 0x6cbacc20, 0x1b54e: 0x6c13ec20, 0x1b54f: 0x6cba1620,
-	0x1b550: 0x6c57ec20, 0x1b551: 0x6c9a1820, 0x1b552: 0x6d070a20, 0x1b553: 0x6c42ac20,
-	0x1b554: 0x6c42cc20, 0x1b555: 0x6d3d8020, 0x1b556: 0x6ceb3620, 0x1b557: 0x6cbc7420,
-	0x1b558: 0x6d105c20, 0x1b559: 0x6c2cd620, 0x1b55a: 0x6c642620, 0x1b55b: 0x6c76e220,
-	0x1b55c: 0x6d41be20, 0x1b55d: 0x6c2a5a20, 0x1b55e: 0x6c907220, 0x1b55f: 0x6c0d4420,
-	0x1b560: 0x6d39ba20, 0x1b561: 0x6ccaa420, 0x1b562: 0x6cf79c20, 0x1b563: 0x6c5f1420,
-	0x1b564: 0x6c882220, 0x1b565: 0x6c5c1620, 0x1b566: 0x6d1da420, 0x1b567: 0x6cba7420,
-	0x1b568: 0x6c4cc220, 0x1b569: 0x6c414620, 0x1b56a: 0x6c415020, 0x1b56b: 0x6ce95820,
-	0x1b56c: 0x6c57bc20, 0x1b56d: 0x6cb52020, 0x1b56e: 0x6ccbae20, 0x1b56f: 0x6c24e220,
-	0x1b570: 0x6caeb220, 0x1b571: 0x6d1fe420, 0x1b572: 0x6c559020, 0x1b573: 0x6c67b620,
-	0x1b574: 0x6c56be20, 0x1b575: 0x6c594a20, 0x1b576: 0x6c4b6820, 0x1b577: 0x6ca85e20,
-	0x1b578: 0x6d185220, 0x1b579: 0x6c42d820, 0x1b57a: 0x6c774420, 0x1b57b: 0x6c4a8620,
-	0x1b57c: 0x6c4a8820, 0x1b57d: 0x6c128a20, 0x1b57e: 0x6c97fa20, 0x1b57f: 0x6c6cac20,
-	// Block 0x6d6, offset 0x1b580
-	0x1b580: 0x6c2b4020, 0x1b581: 0x6d3c2220, 0x1b582: 0x6c822620, 0x1b583: 0x6c810a20,
-	0x1b584: 0x6c18dc20, 0x1b585: 0x6c233a20, 0x1b586: 0x6c841820, 0x1b587: 0x6d04e220,
-	0x1b588: 0x6cbe8620, 0x1b589: 0x6cd6da20, 0x1b58a: 0x6c38b220, 0x1b58b: 0x6ce7c220,
-	0x1b58c: 0x6c499e20, 0x1b58d: 0x6d2ae820, 0x1b58e: 0x6cdafc20, 0x1b58f: 0x6c82d020,
-	0x1b590: 0x6c91d220, 0x1b591: 0x6c896620, 0x1b592: 0x6c9d7820, 0x1b593: 0x6c90b020,
-	0x1b594: 0x6c177420, 0x1b595: 0x6cdafe20, 0x1b596: 0x6c782220, 0x1b597: 0x6c1e6620,
-	0x1b598: 0x6ce12020, 0x1b599: 0x6c0c1620, 0x1b59a: 0x6c92a220, 0x1b59b: 0x6c6f8420,
-	0x1b59c: 0x6d30fc20, 0x1b59d: 0x6d2bf620, 0x1b59e: 0x6cd50020, 0x1b59f: 0x6d2ed620,
-	0x1b5a0: 0x6c977020, 0x1b5a1: 0x6ca06a20, 0x1b5a2: 0x6ca7a820, 0x1b5a3: 0x6d106a20,
-	0x1b5a4: 0x6ce59820, 0x1b5a5: 0x6caeb420, 0x1b5a6: 0x6d3b1e20, 0x1b5a7: 0x6ccc0e20,
-	0x1b5a8: 0x6cf6c020, 0x1b5a9: 0x6cc31020, 0x1b5aa: 0x6c526c20, 0x1b5ab: 0x6c64ce20,
-	0x1b5ac: 0x6c233c20, 0x1b5ad: 0x6c630e20, 0x1b5ae: 0x6d0f3a20, 0x1b5af: 0x6cbb1820,
-	0x1b5b0: 0x6d098820, 0x1b5b1: 0x6d1be420, 0x1b5b2: 0x6c37de20, 0x1b5b3: 0x6d0a3c20,
-	0x1b5b4: 0x6d349820, 0x1b5b5: 0x6cbbf620, 0x1b5b6: 0x6d417c20, 0x1b5b7: 0x6c23b420,
-	0x1b5b8: 0x6cb49620, 0x1b5b9: 0x6cd60a20, 0x1b5ba: 0x6c57ae20, 0x1b5bb: 0x6c7d1e20,
-	0x1b5bc: 0x6d319020, 0x1b5bd: 0x6d41f220, 0x1b5be: 0x6d26ec20, 0x1b5bf: 0x6ccdac20,
-	// Block 0x6d7, offset 0x1b5c0
-	0x1b5c0: 0x6cf6c420, 0x1b5c1: 0x6c211420, 0x1b5c2: 0x6c2d8020, 0x1b5c3: 0x6c382620,
-	0x1b5c4: 0x6c41e620, 0x1b5c5: 0x6ca07620, 0x1b5c6: 0x6cf47a20, 0x1b5c7: 0x6cbbaa20,
-	0x1b5c8: 0x6cc52c20, 0x1b5c9: 0x6c8c6020, 0x1b5ca: 0x6c8e9620, 0x1b5cb: 0x6cbbf820,
-	0x1b5cc: 0x6cfd0c20, 0x1b5cd: 0x6cc90820, 0x1b5ce: 0x6c38ba20, 0x1b5cf: 0x6d2e1420,
-	0x1b5d0: 0x6ceb4820, 0x1b5d1: 0x6c81bc20, 0x1b5d2: 0x6d27c620, 0x1b5d3: 0x6cd75a20,
-	0x1b5d4: 0x6c33ae20, 0x1b5d5: 0x6c199220, 0x1b5d6: 0x6ce13220, 0x1b5d7: 0x6c9b3820,
-	0x1b5d8: 0x6c715a20, 0x1b5d9: 0x6c1a4220, 0x1b5da: 0x6cdb3020, 0x1b5db: 0x6c74ba20,
-	0x1b5dc: 0x6c74bc20, 0x1b5dd: 0x6c2d8220, 0x1b5de: 0x6c5c3020, 0x1b5df: 0x6c5f3020,
-	0x1b5e0: 0x6caae020, 0x1b5e1: 0x6cfe4e20, 0x1b5e2: 0x6ceb8e20, 0x1b5e3: 0x6ca94620,
-	0x1b5e4: 0x6cc8b020, 0x1b5e5: 0x6d39c420, 0x1b5e6: 0x6ce78620, 0x1b5e7: 0x6d2b8e20,
-	0x1b5e8: 0x6c3b9420, 0x1b5e9: 0x6cbf6020, 0x1b5ea: 0x6cc4d220, 0x1b5eb: 0x6c526e20,
-	0x1b5ec: 0x6cb9c820, 0x1b5ed: 0x6c472e20, 0x1b5ee: 0x6c8f1a20, 0x1b5ef: 0x6c81e020,
-	0x1b5f0: 0x6c42dc20, 0x1b5f1: 0x6c1eae20, 0x1b5f2: 0x6cf94620, 0x1b5f3: 0x6cd18820,
-	0x1b5f4: 0x6d3f6c20, 0x1b5f5: 0x6cca6820, 0x1b5f6: 0x6c60a620, 0x1b5f7: 0x6c30c620,
-	0x1b5f8: 0x6c6eca20, 0x1b5f9: 0x6c91dc20, 0x1b5fa: 0x6c673c20, 0x1b5fb: 0x6c1f9820,
-	0x1b5fc: 0x6d25aa20, 0x1b5fd: 0x6cde9c20, 0x1b5fe: 0x6cd50c20, 0x1b5ff: 0x6c678220,
-	// Block 0x6d8, offset 0x1b600
-	0x1b600: 0x6ce01820, 0x1b601: 0x6c8c3820, 0x1b602: 0x6ca9cc20, 0x1b603: 0x6d1b0620,
-	0x1b604: 0x6cf7a820, 0x1b605: 0x6cdc8020, 0x1b606: 0x6ccd1020, 0x1b607: 0x6d41d020,
-	0x1b608: 0x6d082a20, 0x1b609: 0x6c199a20, 0x1b60a: 0x6c423420, 0x1b60b: 0x6c716220,
-	0x1b60c: 0x6d41d820, 0x1b60d: 0x6d18c620, 0x1b60e: 0x6cbda220, 0x1b60f: 0x6cb49c20,
-	0x1b610: 0x6d0cd620, 0x1b611: 0x6c826020, 0x1b612: 0x6c3c6a20, 0x1b613: 0x6c5b6c20,
-	0x1b614: 0x6c299220, 0x1b615: 0x6c629620, 0x1b616: 0x6cdc7020, 0x1b617: 0x6c0ff820,
-	0x1b618: 0x6cb2d420, 0x1b619: 0x6c1a4420, 0x1b61a: 0x6c1ef020, 0x1b61b: 0x6d3b5a20,
-	0x1b61c: 0x6c4b7c20, 0x1b61d: 0x6c60aa20, 0x1b61e: 0x6c6ba020, 0x1b61f: 0x6c643020,
-	0x1b620: 0x6cbe8e20, 0x1b621: 0x6d2d2020, 0x1b622: 0x6c65e020, 0x1b623: 0x6cbb2820,
-	0x1b624: 0x6c2a3420, 0x1b625: 0x6d161a20, 0x1b626: 0x6c0c8220, 0x1b627: 0x6cd93a20,
-	0x1b628: 0x6ccefe20, 0x1b629: 0x6c8c3a20, 0x1b62a: 0x6c87e420, 0x1b62b: 0x6c140e20,
-	0x1b62c: 0x6c9b5c20, 0x1b62d: 0x6d1aa020, 0x1b62e: 0x6ce24820, 0x1b62f: 0x6cdf4e20,
-	0x1b630: 0x6c9de020, 0x1b631: 0x6cb67020, 0x1b632: 0x6ce96820, 0x1b633: 0x6c0d5c20,
-	0x1b634: 0x6c5e0820, 0x1b635: 0x6c62aa20, 0x1b636: 0x6cb93420, 0x1b637: 0x6ca65820,
-	0x1b638: 0x6ca92a20, 0x1b639: 0x6d142220, 0x1b63a: 0x6c432a20, 0x1b63b: 0x6c76f620,
-	0x1b63c: 0x6d1b9220, 0x1b63d: 0x6caa2c20, 0x1b63e: 0x6cbeba20, 0x1b63f: 0x6d0de620,
-	// Block 0x6d9, offset 0x1b640
-	0x1b640: 0x6cb67220, 0x1b641: 0x6c9d9e20, 0x1b642: 0x6d2fe820, 0x1b643: 0x6c4b8820,
-	0x1b644: 0x6c212220, 0x1b645: 0x6c5f6a20, 0x1b646: 0x6c7ca420, 0x1b647: 0x6cb33c20,
-	0x1b648: 0x6c2af020, 0x1b649: 0x6c1eba20, 0x1b64a: 0x6c449020, 0x1b64b: 0x6c9de420,
-	0x1b64c: 0x6d1ec220, 0x1b64d: 0x6d373e20, 0x1b64e: 0x6c5a6620, 0x1b64f: 0x6cb93e20,
-	0x1b650: 0x6c82f420, 0x1b651: 0x6c827020, 0x1b652: 0x6cc9a820, 0x1b653: 0x6c91f220,
-	0x1b654: 0x6c86cc20, 0x1b655: 0x6c24a220, 0x1b656: 0x6c941220, 0x1b657: 0x6c9efc20,
-	0x1b658: 0x6c5c7a20, 0x1b659: 0x6cab5c20, 0x1b65a: 0x6c916220, 0x1b65b: 0x6d370620,
-	0x1b65c: 0x6c42ea20, 0x1b65d: 0x6c31d020, 0x1b65e: 0x6d25c620, 0x1b65f: 0x6c86f620,
-	0x1b660: 0x6c3ae820, 0x1b661: 0x6d3dba20, 0x1b662: 0x6cda3420, 0x1b663: 0x6c886020,
-	0x1b664: 0x6c681c20, 0x1b665: 0x6c1ec420, 0x1b666: 0x6cbeec20, 0x1b667: 0x6d39e020,
-	0x1b668: 0x6c918020, 0x1b669: 0x6d0cfc20, 0x1b66a: 0x6c871a20, 0x1b66b: 0x6d39de20,
-	0x1b66c: 0x6c193e20, 0x1b66d: 0x6c6b5a20, 0x1b66e: 0x6c36d820, 0x1b66f: 0x6cda6820,
-	0x1b670: 0x6c580020, 0x1b671: 0x6ca8a220, 0x1b672: 0x6d244e20, 0x1b673: 0x6c8fdc20,
-	0x1b674: 0x6c7f7420, 0x1b675: 0x6c69f020, 0x1b676: 0x6cfc4620, 0x1b677: 0x6c4aa820,
-	0x1b678: 0x6c71de20, 0x1b679: 0x6cff4820, 0x1b67a: 0x6c8d9a20, 0x1b67b: 0x6d1c2a20,
-	0x1b67c: 0x6c653c20, 0x1b67d: 0x6d1b2420, 0x1b67e: 0x6d1f9620, 0x1b67f: 0x6d1cc420,
-	// Block 0x6da, offset 0x1b680
-	0x1b680: 0x6cfd9a20, 0x1b681: 0x6ca9e020, 0x1b682: 0x6c0fb620, 0x1b683: 0x6c156020,
-	0x1b684: 0x6c7ff820, 0x1b685: 0x6c71e220, 0x1b686: 0x6cd6b220, 0x1b687: 0x6ccf9020,
-	0x1b688: 0x6cef7420, 0x1b689: 0x6c23cc20, 0x1b68a: 0x6cc33020, 0x1b68b: 0x6cc20620,
-	0x1b68c: 0x6c126220, 0x1b68d: 0x6c704820, 0x1b68e: 0x6d247a20, 0x1b68f: 0x6c957e20,
-	0x1b690: 0x6c878a20, 0x1b691: 0x6c24a820, 0x1b692: 0x6c945c20, 0x1b693: 0x6c294420,
-	0x1b694: 0x6c752820, 0x1b695: 0x6d0f3e20, 0x1b696: 0x6c806420, 0x1b697: 0x6c800e20,
-	0x1b698: 0x6d3a4620, 0x1b699: 0x6c82a220, 0x1b69a: 0x6c855420, 0x1b69b: 0x6c03e020,
-	0x1b69c: 0x6ca46620, 0x1b69d: 0x6d249220, 0x1b69e: 0x6c8dd820, 0x1b69f: 0x6c4a3020,
-	0x1b6a0: 0x6cba3820, 0x1b6a1: 0x6c22aa20, 0x1b6a2: 0x6c596a20, 0x1b6a3: 0x6d02b620,
-	0x1b6a4: 0x6d20b820, 0x1b6a5: 0x6d16be20, 0x1b6a6: 0x6cb8b220, 0x1b6a7: 0x6cab3020,
-	0x1b6a8: 0x6d057820, 0x1b6a9: 0x6c173c20, 0x1b6aa: 0x6c1f1a20, 0x1b6ab: 0x6cb78020,
-	0x1b6ac: 0x6c768220, 0x1b6ad: 0x6d173020, 0x1b6ae: 0x6c741420, 0x1b6af: 0x6cf87020,
-	0x1b6b0: 0x6d06a420, 0x1b6b1: 0x6c509820, 0x1b6b2: 0x6d231420, 0x1b6b3: 0x6c7cf220,
-	0x1b6b4: 0x6c80ac20, 0x1b6b5: 0x6c7b6220, 0x1b6b6: 0x6cd77c20, 0x1b6b7: 0x6cf5ee20,
-	0x1b6b8: 0x6c002220, 0x1b6b9: 0x6d13f420, 0x1b6ba: 0x6cb4f620, 0x1b6bb: 0x6c1f9e20,
-	0x1b6bc: 0x6c1ba620, 0x1b6bd: 0x6cbd3020, 0x1b6be: 0x6c7b6620, 0x1b6bf: 0x6c76d420,
-	// Block 0x6db, offset 0x1b6c0
-	0x1b6c0: 0x6c7b6820, 0x1b6c1: 0x6c76dc20, 0x1b6c2: 0x6c202220, 0x1b6c3: 0x6ccc5a20,
-	0x1b6c4: 0x6c485a20, 0x1b6c5: 0x6d19ea20, 0x1b6c6: 0x6d02de20, 0x1b6c7: 0x6d004a20,
-	0x1b6c8: 0x6d215620, 0x1b6c9: 0x6cba6820, 0x1b6ca: 0x6cfeec20, 0x1b6cb: 0x6d131620,
-	0x1b6cc: 0x6c43a020, 0x1b6cd: 0x6cf37420, 0x1b6ce: 0x6ce0a820, 0x1b6cf: 0x6c6d3e20,
-	0x1b6d0: 0x6cab4820, 0x1b6d1: 0x6c54f820, 0x1b6d2: 0x6ce40e20, 0x1b6d3: 0x6c582c20,
-	0x1b6d4: 0x6d05d420, 0x1b6d5: 0x6cae3820, 0x1b6d6: 0x6cf81020, 0x1b6d7: 0x6d000820,
-	0x1b6d8: 0x6c1fa220, 0x1b6d9: 0x6ccf7820, 0x1b6da: 0x6ccdae20, 0x1b6db: 0x6c4dbe20,
-	0x1b6dc: 0x6c1f7e20, 0x1b6dd: 0x6d18c820, 0x1b6de: 0x6c36c420, 0x1b6df: 0x6d21b420,
-	0x1b6e0: 0x6c21e220, 0x1b6e1: 0x6c596e20, 0x1b6e2: 0x6d34cc20, 0x1b6e3: 0x6d333620,
-	0x1b6e4: 0x6c228a20, 0x1b6e5: 0x6c105e20, 0x1b6e6: 0x6cf42c20, 0x1b6e7: 0x6cb58420,
-	0x1b6e8: 0x6c106e20, 0x1b6e9: 0x6c107020, 0x1b6ea: 0x6cec4e20, 0x1b6eb: 0x6c721220,
-	0x1b6ec: 0x6cb97e20, 0x1b6ed: 0x6c1b1620, 0x1b6ee: 0x6ccb2a20, 0x1b6ef: 0x6c1ba820,
-	0x1b6f0: 0x6ccb3620, 0x1b6f1: 0x6d37fa20, 0x1b6f2: 0x6cdc4620, 0x1b6f3: 0x6cdc4820,
-	0x1b6f4: 0x6c864c20, 0x1b6f5: 0x6c263420, 0x1b6f6: 0x6d218220, 0x1b6f7: 0x6c867c20,
-	0x1b6f8: 0x6c4a9a20, 0x1b6f9: 0x6c271220, 0x1b6fa: 0x6c35ca20, 0x1b6fb: 0x6cd86c20,
-	0x1b6fc: 0x6c646420, 0x1b6fd: 0x6d301c20, 0x1b6fe: 0x6ca0cc20, 0x1b6ff: 0x6ca0ce20,
-	// Block 0x6dc, offset 0x1b700
-	0x1b700: 0x6d109220, 0x1b701: 0x6ca0d020, 0x1b702: 0x6c242020, 0x1b703: 0x6d0f5020,
-	0x1b704: 0x6ce4da20, 0x1b705: 0x6cd0ee20, 0x1b706: 0x6c274820, 0x1b707: 0x6cce0020,
-	0x1b708: 0x6d06a620, 0x1b709: 0x6d0a7c20, 0x1b70a: 0x6cd4ba20, 0x1b70b: 0x6c118c20,
-	0x1b70c: 0x6c742a20, 0x1b70d: 0x6cb19420, 0x1b70e: 0x6cb85c20, 0x1b70f: 0x6cc04820,
-	0x1b710: 0x6cdaa420, 0x1b711: 0x6cbe7820, 0x1b712: 0x6d27e620, 0x1b713: 0x6c88ee20,
-	0x1b714: 0x6d17a220, 0x1b715: 0x6c3d2a20, 0x1b716: 0x6d346220, 0x1b717: 0x6d12f220,
-	0x1b718: 0x6c119620, 0x1b719: 0x6c5cce20, 0x1b71a: 0x6c27e020, 0x1b71b: 0x6c603c20,
-	0x1b71c: 0x6c2ebe20, 0x1b71d: 0x6d317c20, 0x1b71e: 0x6d27f220, 0x1b71f: 0x6cf15820,
-	0x1b720: 0x6c1e4820, 0x1b721: 0x6c0d8220, 0x1b722: 0x6ce41220, 0x1b723: 0x6c6d4020,
-	0x1b724: 0x6cce1620, 0x1b725: 0x6d1a9220, 0x1b726: 0x6c2dda20, 0x1b727: 0x6c702220,
-	0x1b728: 0x6c5c3220, 0x1b729: 0x6c24b020, 0x1b72a: 0x6d189820, 0x1b72b: 0x6c27fc20,
-	0x1b72c: 0x6c327e20, 0x1b72d: 0x6c678420, 0x1b72e: 0x6c892020, 0x1b72f: 0x6c0d8c20,
-	0x1b730: 0x6c31d220, 0x1b731: 0x6c674020, 0x1b732: 0x6c653e20, 0x1b733: 0x6cd49820,
-	0x1b734: 0x6cab3220, 0x1b735: 0x6c32b620, 0x1b736: 0x6d3ac020, 0x1b737: 0x6d19c020,
-	0x1b738: 0x6cbec820, 0x1b739: 0x6d175e20, 0x1b73a: 0x6ccbda20, 0x1b73b: 0x6cbc4020,
-	0x1b73c: 0x6c784e20, 0x1b73d: 0x6cff8a20, 0x1b73e: 0x6d0a8e20, 0x1b73f: 0x6c2d5e20,
-	// Block 0x6dd, offset 0x1b740
-	0x1b740: 0x6c5b5620, 0x1b741: 0x6c5b5820, 0x1b742: 0x6c47a020, 0x1b743: 0x6cbb9020,
-	0x1b744: 0x6c5f0620, 0x1b745: 0x6d185420, 0x1b746: 0x6cab4a20, 0x1b747: 0x6c5b6220,
-	0x1b748: 0x6c32da20, 0x1b749: 0x6d142420, 0x1b74a: 0x6cff5c20, 0x1b74b: 0x6cf39c20,
-	0x1b74c: 0x6c497220, 0x1b74d: 0x6ca22020, 0x1b74e: 0x6c9a4820, 0x1b74f: 0x6c9a4a20,
-	0x1b750: 0x6c006020, 0x1b751: 0x6c6b9420, 0x1b752: 0x6c318820, 0x1b753: 0x6d239020,
-	0x1b754: 0x6c08ac20, 0x1b755: 0x6c090a20, 0x1b756: 0x6c094e20, 0x1b757: 0x6cafc220,
-	0x1b758: 0x6cafc420, 0x1b759: 0x6c095e20, 0x1b75a: 0x6c152c20, 0x1b75b: 0x6c98c020,
-	0x1b75c: 0x6c4fbc20, 0x1b75d: 0x6c111a20, 0x1b75e: 0x6cafba20, 0x1b75f: 0x6c8b9020,
-	0x1b760: 0x6c633820, 0x1b761: 0x6d2d6420, 0x1b762: 0x6cc9c020, 0x1b763: 0x6ca27620,
-	0x1b764: 0x6ceb9e20, 0x1b765: 0x6d09fc20, 0x1b766: 0x6c379020, 0x1b767: 0x6cc66620,
-	0x1b768: 0x6cfbfa20, 0x1b769: 0x6c710620, 0x1b76a: 0x6ca21020, 0x1b76b: 0x6c4fc420,
-	0x1b76c: 0x6cc04a20, 0x1b76d: 0x6c311220, 0x1b76e: 0x6ccbea20, 0x1b76f: 0x6ce06020,
-	0x1b770: 0x6cadd620, 0x1b771: 0x6c712420, 0x1b772: 0x6c343020, 0x1b773: 0x6c253c20,
-	0x1b774: 0x6c087220, 0x1b775: 0x6cca0020, 0x1b776: 0x6cca6420, 0x1b777: 0x6c999420,
-	0x1b778: 0x6cc9c820, 0x1b779: 0x6cd4ea20, 0x1b77a: 0x6d208e20, 0x1b77b: 0x6cebac20,
-	0x1b77c: 0x6c513c20, 0x1b77d: 0x6c668e20, 0x1b77e: 0x6cde7420, 0x1b77f: 0x6cca0620,
-	// Block 0x6de, offset 0x1b780
-	0x1b780: 0x6c935e20, 0x1b781: 0x6ca21620, 0x1b782: 0x6c98fa20, 0x1b783: 0x6ce78820,
-	0x1b784: 0x6cc72220, 0x1b785: 0x6c16f820, 0x1b786: 0x6cb49820, 0x1b787: 0x6c934e20,
-	0x1b788: 0x6d2da820, 0x1b789: 0x6ccafc20, 0x1b78a: 0x6d2daa20, 0x1b78b: 0x6c9b5e20,
-	0x1b78c: 0x6c91f420, 0x1b78d: 0x6cc20820, 0x1b78e: 0x6c2f2220, 0x1b78f: 0x6cd2e420,
-	0x1b790: 0x6c2b0a20, 0x1b791: 0x6c9f2620, 0x1b792: 0x6c73d220, 0x1b793: 0x6c983620,
-	0x1b794: 0x6cb72620, 0x1b795: 0x6cb1c420, 0x1b796: 0x6ca39220, 0x1b797: 0x6cb72e20,
-	0x1b798: 0x6c29bc20, 0x1b799: 0x6cfa7a20, 0x1b79a: 0x6c1fde20, 0x1b79b: 0x6c3b1a20,
-	0x1b79c: 0x6d0f8820, 0x1b79d: 0x6ca58620, 0x1b79e: 0x6c0d9a20, 0x1b79f: 0x6c3e1020,
-	0x1b7a0: 0x6ccfbc20, 0x1b7a1: 0x6c2fe620, 0x1b7a2: 0x6cbe3420, 0x1b7a3: 0x6cb76a20,
-	0x1b7a4: 0x6d19c220, 0x1b7a5: 0x6cf5c020, 0x1b7a6: 0x6c4d6020, 0x1b7a7: 0x6d100e20,
-	0x1b7a8: 0x6c012220, 0x1b7a9: 0x6d0b8e20, 0x1b7aa: 0x6c78a620, 0x1b7ab: 0x6cbe4420,
-	0x1b7ac: 0x6d0bb020, 0x1b7ad: 0x6c300220, 0x1b7ae: 0x6c288a20, 0x1b7af: 0x6c93e020,
-	0x1b7b0: 0x6cbe7e20, 0x1b7b1: 0x6d102620, 0x1b7b2: 0x6d275620, 0x1b7b3: 0x6d275c20,
-	0x1b7b4: 0x6cd70220, 0x1b7b5: 0x6cd73c20, 0x1b7b6: 0x6d331620, 0x1b7b7: 0x6c0da420,
-	0x1b7b8: 0x6d1e0c20, 0x1b7b9: 0x6c294e20, 0x1b7ba: 0x6cd73e20, 0x1b7bb: 0x6c821020,
-	0x1b7bc: 0x6ca67820, 0x1b7bd: 0x6cea7620, 0x1b7be: 0x6c391420, 0x1b7bf: 0x6c4abc20,
-	// Block 0x6df, offset 0x1b7c0
-	0x1b7c0: 0x6ce62620, 0x1b7c1: 0x6d338220, 0x1b7c2: 0x6cc00020, 0x1b7c3: 0x6c0d1e20,
-	0x1b7c4: 0x6d2b3620, 0x1b7c5: 0x6c9dfc20, 0x1b7c6: 0x6c248c20, 0x1b7c7: 0x6c5b8820,
-	0x1b7c8: 0x6c2dac20, 0x1b7c9: 0x6c4e7c20, 0x1b7ca: 0x6c142c20, 0x1b7cb: 0x6d3d2020,
-	0x1b7cc: 0x6c202a20, 0x1b7cd: 0x6cecba20, 0x1b7ce: 0x6c391c20, 0x1b7cf: 0x6c26e820,
-	0x1b7d0: 0x6cf57220, 0x1b7d1: 0x6cea9c20, 0x1b7d2: 0x6c982a20, 0x1b7d3: 0x6cbffa20,
-	0x1b7d4: 0x6cb73020, 0x1b7d5: 0x6ccd6a20, 0x1b7d6: 0x6cb24220, 0x1b7d7: 0x6c4e8620,
-	0x1b7d8: 0x6cb89a20, 0x1b7d9: 0x6cf34620, 0x1b7da: 0x6cf34820, 0x1b7db: 0x6d0a6620,
-	0x1b7dc: 0x6cd87a20, 0x1b7dd: 0x6cc7f420, 0x1b7de: 0x6c45d420, 0x1b7df: 0x6c674220,
-	0x1b7e0: 0x6c1af620, 0x1b7e1: 0x6cf34a20, 0x1b7e2: 0x6ce92c20, 0x1b7e3: 0x6c704220,
-	0x1b7e4: 0x6ce0b820, 0x1b7e5: 0x6d338c20, 0x1b7e6: 0x6d34e820, 0x1b7e7: 0x6cb8a820,
-	0x1b7e8: 0x6c9d1c20, 0x1b7e9: 0x6c475820, 0x1b7ea: 0x6cedc420, 0x1b7eb: 0x6c6e0e20,
-	0x1b7ec: 0x6c6e1020, 0x1b7ed: 0x6cc8be20, 0x1b7ee: 0x6c755a20, 0x1b7ef: 0x6c52f820,
-	0x1b7f0: 0x6cdf6020, 0x1b7f1: 0x6cc34e20, 0x1b7f2: 0x6c5fcc20, 0x1b7f3: 0x6c0b7020,
-	0x1b7f4: 0x6c0b7220, 0x1b7f5: 0x6c420e20, 0x1b7f6: 0x6cf1fe20, 0x1b7f7: 0x6d378820,
-	0x1b7f8: 0x6c398420, 0x1b7f9: 0x6d045620, 0x1b7fa: 0x6c73e020, 0x1b7fb: 0x6c561020,
-	0x1b7fc: 0x6ca96820, 0x1b7fd: 0x6cb73820, 0x1b7fe: 0x6c3b5620, 0x1b7ff: 0x6d067220,
-	// Block 0x6e0, offset 0x1b800
-	0x1b800: 0x6d068420, 0x1b801: 0x6cbe0620, 0x1b802: 0x6d146220, 0x1b803: 0x6cf2ce20,
-	0x1b804: 0x6d278020, 0x1b805: 0x6d253e20, 0x1b806: 0x6c4f9020, 0x1b807: 0x6d0d3e20,
-	0x1b808: 0x6c189c20, 0x1b809: 0x6c189e20, 0x1b80a: 0x6c286820, 0x1b80b: 0x6d1eec20,
-	0x1b80c: 0x6c33da20, 0x1b80d: 0x6c565820, 0x1b80e: 0x6c5d9c20, 0x1b80f: 0x6cb4cc20,
-	0x1b810: 0x6ca26820, 0x1b811: 0x6caa7620, 0x1b812: 0x6c99d220, 0x1b813: 0x6c268220,
-	0x1b814: 0x6c9e0020, 0x1b815: 0x6c9d1e20, 0x1b816: 0x6c1cae20, 0x1b817: 0x6cacce20,
-	0x1b818: 0x6c08bc20, 0x1b819: 0x6ccbc420, 0x1b81a: 0x6d34ea20, 0x1b81b: 0x6cae0220,
-	0x1b81c: 0x6cac9e20, 0x1b81d: 0x6d3c7620, 0x1b81e: 0x6d288420, 0x1b81f: 0x6c463820,
-	0x1b820: 0x6c8e4220, 0x1b821: 0x6c99d420, 0x1b822: 0x6d2aa620, 0x1b823: 0x6c3c1c20,
-	0x1b824: 0x6cab2e20, 0x1b825: 0x6c858020, 0x1b826: 0x6c94da20, 0x1b827: 0x6c122220,
-	0x1b828: 0x6c3c1e20, 0x1b829: 0x6ceee020, 0x1b82a: 0x6c565a20, 0x1b82b: 0x6ca0d220,
-	0x1b82c: 0x6c9a7820, 0x1b82d: 0x6cd59e20, 0x1b82e: 0x6c71a620, 0x1b82f: 0x6d296220,
-	0x1b830: 0x6ceab020, 0x1b831: 0x6ceaee20, 0x1b832: 0x6ceaf020, 0x1b833: 0x6c50c820,
-	0x1b834: 0x6c859020, 0x1b835: 0x6c9cdc20, 0x1b836: 0x6d147220, 0x1b837: 0x6c37e420,
-	0x1b838: 0x6c3a8820, 0x1b839: 0x6d1efe20, 0x1b83a: 0x6ce48420, 0x1b83b: 0x6d358a20,
-	0x1b83c: 0x6d2f8820, 0x1b83d: 0x6c46f220, 0x1b83e: 0x6d2d6020, 0x1b83f: 0x6d0c6820,
-	// Block 0x6e1, offset 0x1b840
-	0x1b840: 0x6cd7ce20, 0x1b841: 0x6c7be420, 0x1b842: 0x6c6ef820, 0x1b843: 0x6c705c20,
-	0x1b844: 0x6d016020, 0x1b845: 0x6cc00620, 0x1b846: 0x6d16c220, 0x1b847: 0x6c632c20,
-	0x1b848: 0x6d379a20, 0x1b849: 0x6cc2c220, 0x1b84a: 0x6cb2fc20, 0x1b84b: 0x6c5b9020,
-	0x1b84c: 0x6c9d2620, 0x1b84d: 0x6c077e20, 0x1b84e: 0x6d2aaa20, 0x1b84f: 0x6d39f420,
-	0x1b850: 0x6c821820, 0x1b851: 0x6d1e9820, 0x1b852: 0x6c46f420, 0x1b853: 0x6c530420,
-	0x1b854: 0x6c417620, 0x1b855: 0x6c382e20, 0x1b856: 0x6c992e20, 0x1b857: 0x6cd89020,
-	0x1b858: 0x6c54a620, 0x1b859: 0x6cb27a20, 0x1b85a: 0x6c229220, 0x1b85b: 0x6c392220,
-	0x1b85c: 0x6d339a20, 0x1b85d: 0x6cda8020, 0x1b85e: 0x6ca95420, 0x1b85f: 0x6c195420,
-	0x1b860: 0x6c8cac20, 0x1b861: 0x6cad8220, 0x1b862: 0x6c0e5220, 0x1b863: 0x6cb74620,
-	0x1b864: 0x6cd88220, 0x1b865: 0x6ca5c020, 0x1b866: 0x6c70f620, 0x1b867: 0x6cc96a20,
-	0x1b868: 0x6d3ab020, 0x1b869: 0x6cd0e220, 0x1b86a: 0x6c832020, 0x1b86b: 0x6d087020,
-	0x1b86c: 0x6c73f020, 0x1b86d: 0x6c3df620, 0x1b86e: 0x6caca220, 0x1b86f: 0x6c9f9620,
-	0x1b870: 0x6cdf6820, 0x1b871: 0x6d0f4a20, 0x1b872: 0x6c612020, 0x1b873: 0x6d1e1420,
-	0x1b874: 0x6c497c20, 0x1b875: 0x6c083a20, 0x1b876: 0x6d090020, 0x1b877: 0x6c8f6c20,
-	0x1b878: 0x6c913a20, 0x1b879: 0x6c28f420, 0x1b87a: 0x6c95e020, 0x1b87b: 0x6d016220,
-	0x1b87c: 0x6cb3c020, 0x1b87d: 0x6d2aac20, 0x1b87e: 0x6c6d9020, 0x1b87f: 0x6d1a3c20,
-	// Block 0x6e2, offset 0x1b880
-	0x1b880: 0x6cac5420, 0x1b881: 0x6c6a9020, 0x1b882: 0x6d16f620, 0x1b883: 0x6c5a9820,
-	0x1b884: 0x6c5b2620, 0x1b885: 0x6d293020, 0x1b886: 0x6c19ce20, 0x1b887: 0x6d19b420,
-	0x1b888: 0x6ceeec20, 0x1b889: 0x6c546620, 0x1b88a: 0x6c665a20, 0x1b88b: 0x6d0f9820,
-	0x1b88c: 0x6c8ad420, 0x1b88d: 0x6cd8a820, 0x1b88e: 0x6c61aa20, 0x1b88f: 0x6c374020,
-	0x1b890: 0x6d03d020, 0x1b891: 0x6c3e1220, 0x1b892: 0x6cc94c20, 0x1b893: 0x6ccb1820,
-	0x1b894: 0x6d350420, 0x1b895: 0x6d1b3e20, 0x1b896: 0x6cf3b620, 0x1b897: 0x6cf7d620,
-	0x1b898: 0x6c77a420, 0x1b899: 0x6d398a20, 0x1b89a: 0x6c67da20, 0x1b89b: 0x6c95e820,
-	0x1b89c: 0x6c95f420, 0x1b89d: 0x6c01a620, 0x1b89e: 0x6c306420, 0x1b89f: 0x6ce3dc20,
-	0x1b8a0: 0x6ca1c820, 0x1b8a1: 0x6c832220, 0x1b8a2: 0x6d13da20, 0x1b8a3: 0x6c9ce420,
-	0x1b8a4: 0x6cc2c420, 0x1b8a5: 0x6c6c3020, 0x1b8a6: 0x6cb37020, 0x1b8a7: 0x6cef9820,
-	0x1b8a8: 0x6cff7020, 0x1b8a9: 0x6d017220, 0x1b8aa: 0x6c531420, 0x1b8ab: 0x6d069420,
-	0x1b8ac: 0x6cda8620, 0x1b8ad: 0x6c7b9220, 0x1b8ae: 0x6ce20a20, 0x1b8af: 0x6cbcac20,
-	0x1b8b0: 0x6c71fe20, 0x1b8b1: 0x6c378a20, 0x1b8b2: 0x6d386020, 0x1b8b3: 0x6cc81220,
-	0x1b8b4: 0x6cb28620, 0x1b8b5: 0x6d09ec20, 0x1b8b6: 0x6d046020, 0x1b8b7: 0x6d35a220,
-	0x1b8b8: 0x6c49e020, 0x1b8b9: 0x6c586420, 0x1b8ba: 0x6c9fec20, 0x1b8bb: 0x6c5d7020,
-	0x1b8bc: 0x6cebcc20, 0x1b8bd: 0x6cb84c20, 0x1b8be: 0x6cac1e20, 0x1b8bf: 0x6cf35820,
-	// Block 0x6e3, offset 0x1b8c0
-	0x1b8c0: 0x6cc0e820, 0x1b8c1: 0x6c8e4a20, 0x1b8c2: 0x6d16f820, 0x1b8c3: 0x6c633a20,
-	0x1b8c4: 0x6c6e5a20, 0x1b8c5: 0x6cb9f420, 0x1b8c6: 0x6c675420, 0x1b8c7: 0x6c683220,
-	0x1b8c8: 0x6d312a20, 0x1b8c9: 0x6cd1ac20, 0x1b8ca: 0x6d3d3420, 0x1b8cb: 0x6c12d420,
-	0x1b8cc: 0x6c380020, 0x1b8cd: 0x6c5b9c20, 0x1b8ce: 0x6c61ac20, 0x1b8cf: 0x6c8e4620,
-	0x1b8d0: 0x6c159c20, 0x1b8d1: 0x6c5ce020, 0x1b8d2: 0x6c561420, 0x1b8d3: 0x6ca9b420,
-	0x1b8d4: 0x6d09ee20, 0x1b8d5: 0x6c6ce220, 0x1b8d6: 0x6c8aee20, 0x1b8d7: 0x6cc03220,
-	0x1b8d8: 0x6cefa220, 0x1b8d9: 0x6d30ea20, 0x1b8da: 0x6c75a620, 0x1b8db: 0x6c4df620,
-	0x1b8dc: 0x6c052620, 0x1b8dd: 0x6c985220, 0x1b8de: 0x6d3d3a20, 0x1b8df: 0x6d1f1820,
-	0x1b8e0: 0x6cf5c220, 0x1b8e1: 0x6c0ed620, 0x1b8e2: 0x6c310420, 0x1b8e3: 0x6c590420,
-	0x1b8e4: 0x6c532a20, 0x1b8e5: 0x6d173220, 0x1b8e6: 0x6cb48820, 0x1b8e7: 0x6d1ce420,
-	0x1b8e8: 0x6c802420, 0x1b8e9: 0x6c502e20, 0x1b8ea: 0x6c811820, 0x1b8eb: 0x6c4e5620,
-	0x1b8ec: 0x6c850c20, 0x1b8ed: 0x6c44be20, 0x1b8ee: 0x6c3e3620, 0x1b8ef: 0x6cf3b820,
-	0x1b8f0: 0x6c88ea20, 0x1b8f1: 0x6c213a20, 0x1b8f2: 0x6c3ca220, 0x1b8f3: 0x6d173420,
-	0x1b8f4: 0x6d22f220, 0x1b8f5: 0x6ce73420, 0x1b8f6: 0x6c815420, 0x1b8f7: 0x6c4d3a20,
-	0x1b8f8: 0x6c6cee20, 0x1b8f9: 0x6c634220, 0x1b8fa: 0x6c1cb820, 0x1b8fb: 0x6c6f0820,
-	0x1b8fc: 0x6c9a5220, 0x1b8fd: 0x6cdbb820, 0x1b8fe: 0x6c195e20, 0x1b8ff: 0x6cae1420,
-	// Block 0x6e4, offset 0x1b900
-	0x1b900: 0x6cfcaa20, 0x1b901: 0x6cd09820, 0x1b902: 0x6ce92e20, 0x1b903: 0x6c7dd020,
-	0x1b904: 0x6cb25020, 0x1b905: 0x6ca80820, 0x1b906: 0x6c4e9c20, 0x1b907: 0x6c6da020,
-	0x1b908: 0x6cfea220, 0x1b909: 0x6ccf3c20, 0x1b90a: 0x6ca71e20, 0x1b90b: 0x6ce84e20,
-	0x1b90c: 0x6d1e2620, 0x1b90d: 0x6cffe020, 0x1b90e: 0x6cfb3620, 0x1b90f: 0x6ce6bc20,
-	0x1b910: 0x6c355820, 0x1b911: 0x6cda8e20, 0x1b912: 0x6cea1c20, 0x1b913: 0x6c72e620,
-	0x1b914: 0x6c132c20, 0x1b915: 0x6ce3e220, 0x1b916: 0x6c85d020, 0x1b917: 0x6cd71620,
-	0x1b918: 0x6cd8aa20, 0x1b919: 0x6c832820, 0x1b91a: 0x6cd71820, 0x1b91b: 0x6ce1be20,
-	0x1b91c: 0x6c318e20, 0x1b91d: 0x6c81ce20, 0x1b91e: 0x6c7eec20, 0x1b91f: 0x6c87f620,
-	0x1b920: 0x6ceef620, 0x1b921: 0x6cf28020, 0x1b922: 0x6d279a20, 0x1b923: 0x6c590620,
-	0x1b924: 0x6c2b6420, 0x1b925: 0x6c528a20, 0x1b926: 0x6cc8fa20, 0x1b927: 0x6c666e20,
-	0x1b928: 0x6d2f0220, 0x1b929: 0x6ccb1c20, 0x1b92a: 0x6c3e5220, 0x1b92b: 0x6c498420,
-	0x1b92c: 0x6d042a20, 0x1b92d: 0x6cd46420, 0x1b92e: 0x6cd69020, 0x1b92f: 0x6d0b2a20,
-	0x1b930: 0x6c21b620, 0x1b931: 0x6d2f2e20, 0x1b932: 0x6d12e820, 0x1b933: 0x6c797620,
-	0x1b934: 0x6cf2e420, 0x1b935: 0x6c4e0220, 0x1b936: 0x6ceac020, 0x1b937: 0x6c2ffa20,
-	0x1b938: 0x6c510820, 0x1b939: 0x6cf28620, 0x1b93a: 0x6c708e20, 0x1b93b: 0x6ccf4020,
-	0x1b93c: 0x6c894e20, 0x1b93d: 0x6c5cc220, 0x1b93e: 0x6cde4e20, 0x1b93f: 0x6d3cfe20,
-	// Block 0x6e5, offset 0x1b940
-	0x1b940: 0x6c2d5220, 0x1b941: 0x6cbcb620, 0x1b942: 0x6c2a6a20, 0x1b943: 0x6c735620,
-	0x1b944: 0x6d3e2420, 0x1b945: 0x6cf5f020, 0x1b946: 0x6cff8220, 0x1b947: 0x6cb5ca20,
-	0x1b948: 0x6c477e20, 0x1b949: 0x6c4cb820, 0x1b94a: 0x6d0bf620, 0x1b94b: 0x6c8bb020,
-	0x1b94c: 0x6ce17420, 0x1b94d: 0x6d387620, 0x1b94e: 0x6caf0420, 0x1b94f: 0x6c503820,
-	0x1b950: 0x6c166620, 0x1b951: 0x6cd4cc20, 0x1b952: 0x6cb4ea20, 0x1b953: 0x6c399020,
-	0x1b954: 0x6d345820, 0x1b955: 0x6c923c20, 0x1b956: 0x6ca53020, 0x1b957: 0x6c711420,
-	0x1b958: 0x6ce21e20, 0x1b959: 0x6c239c20, 0x1b95a: 0x6c833020, 0x1b95b: 0x6d30f020,
-	0x1b95c: 0x6cb29c20, 0x1b95d: 0x6c3a3420, 0x1b95e: 0x6cd91c20, 0x1b95f: 0x6ce4ee20,
-	0x1b960: 0x6cb09020, 0x1b961: 0x6c288020, 0x1b962: 0x6d231620, 0x1b963: 0x6ca5d820,
-	0x1b964: 0x6d208620, 0x1b965: 0x6c923e20, 0x1b966: 0x6c421a20, 0x1b967: 0x6c9d3a20,
-	0x1b968: 0x6c6e7420, 0x1b969: 0x6c8ce820, 0x1b96a: 0x6c94f420, 0x1b96b: 0x6d1a5c20,
-	0x1b96c: 0x6c253620, 0x1b96d: 0x6cc18820, 0x1b96e: 0x6c57ea20, 0x1b96f: 0x6d231820,
-	0x1b970: 0x6ca72220, 0x1b971: 0x6ccfde20, 0x1b972: 0x6c0bf620, 0x1b973: 0x6c214220,
-	0x1b974: 0x6c54c220, 0x1b975: 0x6d24ec20, 0x1b976: 0x6c7efc20, 0x1b977: 0x6c5d2620,
-	0x1b978: 0x6cbe4620, 0x1b979: 0x6d0bf820, 0x1b97a: 0x6cba0220, 0x1b97b: 0x6ce46220,
-	0x1b97c: 0x6c9e9020, 0x1b97d: 0x6d350c20, 0x1b97e: 0x6d1ae420, 0x1b97f: 0x6c9d3c20,
-	// Block 0x6e6, offset 0x1b980
-	0x1b980: 0x6c07b220, 0x1b981: 0x6d24de20, 0x1b982: 0x6cf20820, 0x1b983: 0x6cc91c20,
-	0x1b984: 0x6c39fa20, 0x1b985: 0x6cbe4820, 0x1b986: 0x6d24e020, 0x1b987: 0x6c786220,
-	0x1b988: 0x6c61f220, 0x1b989: 0x6ccf4220, 0x1b98a: 0x6d24e220, 0x1b98b: 0x6ccba420,
-	0x1b98c: 0x6c924020, 0x1b98d: 0x6d3f4420, 0x1b98e: 0x6c319620, 0x1b98f: 0x6cb81420,
-	0x1b990: 0x6c667a20, 0x1b991: 0x6c9e1c20, 0x1b992: 0x6cb09220, 0x1b993: 0x6cf94420,
-	0x1b994: 0x6d210220, 0x1b995: 0x6d24e420, 0x1b996: 0x6cd05c20, 0x1b997: 0x6cd09e20,
-	0x1b998: 0x6cc74c20, 0x1b999: 0x6c592420, 0x1b99a: 0x6d3a6420, 0x1b99b: 0x6c659620,
-	0x1b99c: 0x6caa9020, 0x1b99d: 0x6d212a20, 0x1b99e: 0x6cc06220, 0x1b99f: 0x6ce67220,
-	0x1b9a0: 0x6cc18a20, 0x1b9a1: 0x6c325c20, 0x1b9a2: 0x6c389e20, 0x1b9a3: 0x6d2bdc20,
-	0x1b9a4: 0x6c0f0420, 0x1b9a5: 0x6cf2f220, 0x1b9a6: 0x6cf28820, 0x1b9a7: 0x6c2c5820,
-	0x1b9a8: 0x6cee8e20, 0x1b9a9: 0x6cf15020, 0x1b9aa: 0x6cc7ac20, 0x1b9ab: 0x6d01ae20,
-	0x1b9ac: 0x6c12ea20, 0x1b9ad: 0x6cf09820, 0x1b9ae: 0x6c510a20, 0x1b9af: 0x6c42a220,
-	0x1b9b0: 0x6d0d8a20, 0x1b9b1: 0x6c534a20, 0x1b9b2: 0x6d089420, 0x1b9b3: 0x6c9cf220,
-	0x1b9b4: 0x6c786a20, 0x1b9b5: 0x6c98da20, 0x1b9b6: 0x6d1bb020, 0x1b9b7: 0x6d0d8c20,
-	0x1b9b8: 0x6d1f3820, 0x1b9b9: 0x6c52a620, 0x1b9ba: 0x6c9e9220, 0x1b9bb: 0x6cd13a20,
-	0x1b9bc: 0x6c9a5a20, 0x1b9bd: 0x6d290420, 0x1b9be: 0x6c5cec20, 0x1b9bf: 0x6ca3c420,
-	// Block 0x6e7, offset 0x1b9c0
-	0x1b9c0: 0x6c4afe20, 0x1b9c1: 0x6c1c2020, 0x1b9c2: 0x6c363820, 0x1b9c3: 0x6cac2620,
-	0x1b9c4: 0x6c99fc20, 0x1b9c5: 0x6c88fc20, 0x1b9c6: 0x6cb79620, 0x1b9c7: 0x6cb79820,
-	0x1b9c8: 0x6c99fe20, 0x1b9c9: 0x6ce4a020, 0x1b9ca: 0x6c23ec20, 0x1b9cb: 0x6cef1020,
-	0x1b9cc: 0x6c116a20, 0x1b9cd: 0x6ce93220, 0x1b9ce: 0x6c9e2620, 0x1b9cf: 0x6c5bc420,
-	0x1b9d0: 0x6ca11a20, 0x1b9d1: 0x6d059c20, 0x1b9d2: 0x6c604020, 0x1b9d3: 0x6cae4020,
-	0x1b9d4: 0x6c649e20, 0x1b9d5: 0x6c658a20, 0x1b9d6: 0x6c555e20, 0x1b9d7: 0x6c3ce020,
-	0x1b9d8: 0x6cfd7420, 0x1b9d9: 0x6d17a820, 0x1b9da: 0x6d1b5420, 0x1b9db: 0x6d2e6420,
-	0x1b9dc: 0x6cd26a20, 0x1b9dd: 0x6c6a1820, 0x1b9de: 0x6c197020, 0x1b9df: 0x6c59c620,
-	0x1b9e0: 0x6ce09a20, 0x1b9e1: 0x6d212c20, 0x1b9e2: 0x6c09a220, 0x1b9e3: 0x6c9fb020,
-	0x1b9e4: 0x6cd1be20, 0x1b9e5: 0x6ce86020, 0x1b9e6: 0x6cd10220, 0x1b9e7: 0x6d1e3a20,
-	0x1b9e8: 0x6c712620, 0x1b9e9: 0x6c307820, 0x1b9ea: 0x6ce98a20, 0x1b9eb: 0x6c68f620,
-	0x1b9ec: 0x6c690820, 0x1b9ed: 0x6cc06420, 0x1b9ee: 0x6d0c0820, 0x1b9ef: 0x6ce0c020,
-	0x1b9f0: 0x6c8f9420, 0x1b9f1: 0x6c5dd220, 0x1b9f2: 0x6d256420, 0x1b9f3: 0x6ca42820,
-	0x1b9f4: 0x6c04f620, 0x1b9f5: 0x6d1fcc20, 0x1b9f6: 0x6cc2f020, 0x1b9f7: 0x6d3c1820,
-	0x1b9f8: 0x6c89ba20, 0x1b9f9: 0x6c14f620, 0x1b9fa: 0x6d0c9620, 0x1b9fb: 0x6c214c20,
-	0x1b9fc: 0x6ca83020, 0x1b9fd: 0x6d3e3e20, 0x1b9fe: 0x6cec9020, 0x1b9ff: 0x6cd1c020,
-	// Block 0x6e8, offset 0x1ba00
-	0x1ba00: 0x6c97ba20, 0x1ba01: 0x6d1c7220, 0x1ba02: 0x6c7ed620, 0x1ba03: 0x6c7cfc20,
-	0x1ba04: 0x6c3d0020, 0x1ba05: 0x6c669020, 0x1ba06: 0x6d06da20, 0x1ba07: 0x6c908a20,
-	0x1ba08: 0x6cef1220, 0x1ba09: 0x6c413620, 0x1ba0a: 0x6cfa6620, 0x1ba0b: 0x6d1c7420,
-	0x1ba0c: 0x6cb31020, 0x1ba0d: 0x6c6d1820, 0x1ba0e: 0x6d0e8620, 0x1ba0f: 0x6ce10420,
-	0x1ba10: 0x6d258220, 0x1ba11: 0x6cdd7a20, 0x1ba12: 0x6d258420, 0x1ba13: 0x6c881420,
-	0x1ba14: 0x6d11b820, 0x1ba15: 0x6c9c0620, 0x1ba16: 0x6d3cde20, 0x1ba17: 0x6c1a1c20,
-	0x1ba18: 0x6c78ba20, 0x1ba19: 0x6cdf7a20, 0x1ba1a: 0x6cde0a20, 0x1ba1b: 0x6cebe420,
-	0x1ba1c: 0x6c8e3620, 0x1ba1d: 0x6c465220, 0x1ba1e: 0x6ccaae20, 0x1ba1f: 0x6ca00620,
-	0x1ba20: 0x6d2cc420, 0x1ba21: 0x6cd27220, 0x1ba22: 0x6d17e820, 0x1ba23: 0x6c952220,
-	0x1ba24: 0x6c969a20, 0x1ba25: 0x6cb48e20, 0x1ba26: 0x6cee9e20, 0x1ba27: 0x6c863420,
-	0x1ba28: 0x6c111220, 0x1ba29: 0x6cf50020, 0x1ba2a: 0x6cf64c20, 0x1ba2b: 0x6cf15a20,
-	0x1ba2c: 0x6cbaba20, 0x1ba2d: 0x6d2ace20, 0x1ba2e: 0x6cd1ce20, 0x1ba2f: 0x6cdace20,
-	0x1ba30: 0x6c004220, 0x1ba31: 0x6cbd8420, 0x1ba32: 0x6cd9b220, 0x1ba33: 0x6d27b220,
-	0x1ba34: 0x6d054420, 0x1ba35: 0x6d19ec20, 0x1ba36: 0x6cc68a20, 0x1ba37: 0x6c5d2e20,
-	0x1ba38: 0x6cdad020, 0x1ba39: 0x6cddcc20, 0x1ba3a: 0x6ca6ac20, 0x1ba3b: 0x6cddf420,
-	0x1ba3c: 0x6cd1d020, 0x1ba3d: 0x6cc81c20, 0x1ba3e: 0x6c002a20, 0x1ba3f: 0x6cacba20,
-	// Block 0x6e9, offset 0x1ba40
-	0x1ba40: 0x6c1f5020, 0x1ba41: 0x6c1e7e20, 0x1ba42: 0x6cacdc20, 0x1ba43: 0x6cf22c20,
-	0x1ba44: 0x6c123220, 0x1ba45: 0x6c9ede20, 0x1ba46: 0x6c440620, 0x1ba47: 0x6c2cce20,
-	0x1ba48: 0x6c504420, 0x1ba49: 0x6c5a7020, 0x1ba4a: 0x6cf8a020, 0x1ba4b: 0x6d3e4020,
-	0x1ba4c: 0x6c2b7220, 0x1ba4d: 0x6d365a20, 0x1ba4e: 0x6d03f220, 0x1ba4f: 0x6c3f6c20,
-	0x1ba50: 0x6c6aea20, 0x1ba51: 0x6c573e20, 0x1ba52: 0x6c439a20, 0x1ba53: 0x6d3f1a20,
-	0x1ba54: 0x6ce1d820, 0x1ba55: 0x6ce2aa20, 0x1ba56: 0x6cdbc820, 0x1ba57: 0x6c09c820,
-	0x1ba58: 0x6c69a420, 0x1ba59: 0x6c5be620, 0x1ba5a: 0x6c4bce20, 0x1ba5b: 0x6d1a7020,
-	0x1ba5c: 0x6c42ca20, 0x1ba5d: 0x6c8f9620, 0x1ba5e: 0x6d362c20, 0x1ba5f: 0x6d0e8820,
-	0x1ba60: 0x6ccf5820, 0x1ba61: 0x6c97be20, 0x1ba62: 0x6d1c8020, 0x1ba63: 0x6c215020,
-	0x1ba64: 0x6c93e620, 0x1ba65: 0x6c807420, 0x1ba66: 0x6c943e20, 0x1ba67: 0x6d003420,
-	0x1ba68: 0x6c0d3c20, 0x1ba69: 0x6cdfb020, 0x1ba6a: 0x6d236e20, 0x1ba6b: 0x6d052420,
-	0x1ba6c: 0x6c56b820, 0x1ba6d: 0x6c09ca20, 0x1ba6e: 0x6c0c0c20, 0x1ba6f: 0x6d368e20,
-	0x1ba70: 0x6c67f220, 0x1ba71: 0x6c79f620, 0x1ba72: 0x6cd0be20, 0x1ba73: 0x6cce0e20,
-	0x1ba74: 0x6c2b3a20, 0x1ba75: 0x6c9d6820, 0x1ba76: 0x6c025220, 0x1ba77: 0x6c91cc20,
-	0x1ba78: 0x6c562820, 0x1ba79: 0x6c54e820, 0x1ba7a: 0x6d1eac20, 0x1ba7b: 0x6c15cc20,
-	0x1ba7c: 0x6c396420, 0x1ba7d: 0x6d1d9e20, 0x1ba7e: 0x6c4bd620, 0x1ba7f: 0x6c97c420,
-	// Block 0x6ea, offset 0x1ba80
-	0x1ba80: 0x6cbeae20, 0x1ba81: 0x6d216e20, 0x1ba82: 0x6cb1b820, 0x1ba83: 0x6c623e20,
-	0x1ba84: 0x6d0b3420, 0x1ba85: 0x6c176e20, 0x1ba86: 0x6cb51220, 0x1ba87: 0x6cf7fe20,
-	0x1ba88: 0x6c624020, 0x1ba89: 0x6c928620, 0x1ba8a: 0x6c90a620, 0x1ba8b: 0x6c8f9c20,
-	0x1ba8c: 0x6c6ca020, 0x1ba8d: 0x6c4c7a20, 0x1ba8e: 0x6c23a620, 0x1ba8f: 0x6c910e20,
-	0x1ba90: 0x6d349020, 0x1ba91: 0x6c414c20, 0x1ba92: 0x6cbb1a20, 0x1ba93: 0x6c83e220,
-	0x1ba94: 0x6d0db420, 0x1ba95: 0x6c127e20, 0x1ba96: 0x6c69b020, 0x1ba97: 0x6c232a20,
-	0x1ba98: 0x6c215620, 0x1ba99: 0x6ce95620, 0x1ba9a: 0x6cab4020, 0x1ba9b: 0x6ce2a820,
-	0x1ba9c: 0x6d12b020, 0x1ba9d: 0x6cf79220, 0x1ba9e: 0x6c9d6a20, 0x1ba9f: 0x6ce11220,
-	0x1baa0: 0x6ca12c20, 0x1baa1: 0x6cce1020, 0x1baa2: 0x6c4ee620, 0x1baa3: 0x6c881620,
-	0x1baa4: 0x6c803220, 0x1baa5: 0x6cebe820, 0x1baa6: 0x6c1b4820, 0x1baa7: 0x6c41aa20,
-	0x1baa8: 0x6c3cae20, 0x1baa9: 0x6d081a20, 0x1baaa: 0x6d140420, 0x1baab: 0x6c97ec20,
-	0x1baac: 0x6d3f5c20, 0x1baad: 0x6c989620, 0x1baae: 0x6c774020, 0x1baaf: 0x6c961620,
-	0x1bab0: 0x6cae7a20, 0x1bab1: 0x6cd5f420, 0x1bab2: 0x6d2f0620, 0x1bab3: 0x6d2eca20,
-	0x1bab4: 0x6d3c4620, 0x1bab5: 0x6d070c20, 0x1bab6: 0x6c594020, 0x1bab7: 0x6c5d9020,
-	0x1bab8: 0x6c66aa20, 0x1bab9: 0x6d0c1c20, 0x1baba: 0x6cd6d820, 0x1babb: 0x6c89f820,
-	0x1babc: 0x6c24fa20, 0x1babd: 0x6ce36420, 0x1babe: 0x6d106020, 0x1babf: 0x6c677220,
-	// Block 0x6eb, offset 0x1bac0
-	0x1bac0: 0x6c23a820, 0x1bac1: 0x6d1d0620, 0x1bac2: 0x6c537220, 0x1bac3: 0x6d0a1c20,
-	0x1bac4: 0x6cd5f620, 0x1bac5: 0x6c499a20, 0x1bac6: 0x6d1c8620, 0x1bac7: 0x6cfeee20,
-	0x1bac8: 0x6d404220, 0x1bac9: 0x6c7de020, 0x1baca: 0x6d070e20, 0x1bacb: 0x6c890c20,
-	0x1bacc: 0x6d369020, 0x1bacd: 0x6cef2020, 0x1bace: 0x6cb0ac20, 0x1bacf: 0x6d23c420,
-	0x1bad0: 0x6c69be20, 0x1bad1: 0x6cb3c420, 0x1bad2: 0x6c297820, 0x1bad3: 0x6c5c1820,
-	0x1bad4: 0x6c6b1c20, 0x1bad5: 0x6cf46820, 0x1bad6: 0x6cabdc20, 0x1bad7: 0x6c608620,
-	0x1bad8: 0x6cac4220, 0x1bad9: 0x6cef2c20, 0x1bada: 0x6cdb1820, 0x1badb: 0x6cb9b820,
-	0x1badc: 0x6cb9ba20, 0x1badd: 0x6cf69c20, 0x1bade: 0x6c92cc20, 0x1badf: 0x6cf8c620,
-	0x1bae0: 0x6d0aa220, 0x1bae1: 0x6c340620, 0x1bae2: 0x6c59da20, 0x1bae3: 0x6c9fc620,
-	0x1bae4: 0x6cc90420, 0x1bae5: 0x6cdb0020, 0x1bae6: 0x6c81b820, 0x1bae7: 0x6d318a20,
-	0x1bae8: 0x6c23aa20, 0x1bae9: 0x6d182820, 0x1baea: 0x6d30fe20, 0x1baeb: 0x6cec9820,
-	0x1baec: 0x6ccd9e20, 0x1baed: 0x6ce00420, 0x1baee: 0x6c177620, 0x1baef: 0x6d0a3220,
-	0x1baf0: 0x6c7d0e20, 0x1baf1: 0x6d126420, 0x1baf2: 0x6ccee420, 0x1baf3: 0x6ce8da20,
-	0x1baf4: 0x6d39bc20, 0x1baf5: 0x6cc95820, 0x1baf6: 0x6c522220, 0x1baf7: 0x6c0a2a20,
-	0x1baf8: 0x6ccd0820, 0x1baf9: 0x6c151c20, 0x1bafa: 0x6c151e20, 0x1bafb: 0x6cd56820,
-	0x1bafc: 0x6ce77c20, 0x1bafd: 0x6cb41020, 0x1bafe: 0x6c8bce20, 0x1baff: 0x6cef2e20,
-	// Block 0x6ec, offset 0x1bb00
-	0x1bb00: 0x6ccb6c20, 0x1bb01: 0x6ccb4620, 0x1bb02: 0x6c1a3820, 0x1bb03: 0x6c6f3020,
-	0x1bb04: 0x6c1a3a20, 0x1bb05: 0x6c57be20, 0x1bb06: 0x6c686c20, 0x1bb07: 0x6c81dc20,
-	0x1bb08: 0x6c183420, 0x1bb09: 0x6c41e020, 0x1bb0a: 0x6c259c20, 0x1bb0b: 0x6c53cc20,
-	0x1bb0c: 0x6cd81820, 0x1bb0d: 0x6cd60220, 0x1bb0e: 0x6cae8420, 0x1bb0f: 0x6c4e2a20,
-	0x1bb10: 0x6d27c020, 0x1bb11: 0x6c8f3c20, 0x1bb12: 0x6c53ce20, 0x1bb13: 0x6c3ed820,
-	0x1bb14: 0x6c505a20, 0x1bb15: 0x6c513e20, 0x1bb16: 0x6cfb8020, 0x1bb17: 0x6c66b620,
-	0x1bb18: 0x6ccd0a20, 0x1bb19: 0x6cf8c820, 0x1bb1a: 0x6d24c220, 0x1bb1b: 0x6c934c20,
-	0x1bb1c: 0x6c7fac20, 0x1bb1d: 0x6ca96020, 0x1bb1e: 0x6d21a220, 0x1bb1f: 0x6c8c3420,
-	0x1bb20: 0x6c9e4020, 0x1bb21: 0x6d2a5020, 0x1bb22: 0x6c290420, 0x1bb23: 0x6c595420,
-	0x1bb24: 0x6d2afc20, 0x1bb25: 0x6d021620, 0x1bb26: 0x6d23ea20, 0x1bb27: 0x6c853020,
-	0x1bb28: 0x6cd3da20, 0x1bb29: 0x6d091c20, 0x1bb2a: 0x6c8d5820, 0x1bb2b: 0x6ced9420,
-	0x1bb2c: 0x6d3e8a20, 0x1bb2d: 0x6d1db420, 0x1bb2e: 0x6c5c3420, 0x1bb2f: 0x6c120420,
-	0x1bb30: 0x6c891620, 0x1bb31: 0x6c2d8420, 0x1bb32: 0x6d134020, 0x1bb33: 0x6c02ec20,
-	0x1bb34: 0x6c589820, 0x1bb35: 0x6d319220, 0x1bb36: 0x6c152420, 0x1bb37: 0x6c980420,
-	0x1bb38: 0x6c284420, 0x1bb39: 0x6c28b220, 0x1bb3a: 0x6d189e20, 0x1bb3b: 0x6cdc5c20,
-	0x1bb3c: 0x6cb0ba20, 0x1bb3d: 0x6c728e20, 0x1bb3e: 0x6cde8e20, 0x1bb3f: 0x6cbda420,
-	// Block 0x6ed, offset 0x1bb40
-	0x1bb40: 0x6c5f3420, 0x1bb41: 0x6d3d9a20, 0x1bb42: 0x6c884c20, 0x1bb43: 0x6ca9c620,
-	0x1bb44: 0x6c4c3020, 0x1bb45: 0x6c6d4e20, 0x1bb46: 0x6c3b8c20, 0x1bb47: 0x6ccb5a20,
-	0x1bb48: 0x6c608820, 0x1bb49: 0x6cdbda20, 0x1bb4a: 0x6c5c3620, 0x1bb4b: 0x6c1eea20,
-	0x1bb4c: 0x6cdeac20, 0x1bb4d: 0x6cd93620, 0x1bb4e: 0x6c2f7e20, 0x1bb4f: 0x6ccba620,
-	0x1bb50: 0x6d3a7e20, 0x1bb51: 0x6c7f5620, 0x1bb52: 0x6c0d5220, 0x1bb53: 0x6c884e20,
-	0x1bb54: 0x6c9d0220, 0x1bb55: 0x6cd20220, 0x1bb56: 0x6cd60c20, 0x1bb57: 0x6c9d8620,
-	0x1bb58: 0x6ca95a20, 0x1bb59: 0x6d1ca220, 0x1bb5a: 0x6d1ca420, 0x1bb5b: 0x6c9b4c20,
-	0x1bb5c: 0x6c6d5e20, 0x1bb5d: 0x6cb65e20, 0x1bb5e: 0x6c0a7020, 0x1bb5f: 0x6c629820,
-	0x1bb60: 0x6c4ff420, 0x1bb61: 0x6cc7d220, 0x1bb62: 0x6c256a20, 0x1bb63: 0x6cf31c20,
-	0x1bb64: 0x6ce1f020, 0x1bb65: 0x6d1b0e20, 0x1bb66: 0x6d1b1020, 0x1bb67: 0x6c336820,
-	0x1bb68: 0x6c226c20, 0x1bb69: 0x6c5df820, 0x1bb6a: 0x6c6eb220, 0x1bb6b: 0x6c807c20,
-	0x1bb6c: 0x6c75f020, 0x1bb6d: 0x6c007820, 0x1bb6e: 0x6cb45820, 0x1bb6f: 0x6d3db020,
-	0x1bb70: 0x6cef4020, 0x1bb71: 0x6c0d5420, 0x1bb72: 0x6c47d620, 0x1bb73: 0x6cb9d620,
-	0x1bb74: 0x6d1ca620, 0x1bb75: 0x6c0d9c20, 0x1bb76: 0x6c7e1c20, 0x1bb77: 0x6c3ade20,
-	0x1bb78: 0x6c125e20, 0x1bb79: 0x6c99c820, 0x1bb7a: 0x6c66f020, 0x1bb7b: 0x6cf02620,
-	0x1bb7c: 0x6c963420, 0x1bb7d: 0x6d29a420, 0x1bb7e: 0x6c940e20, 0x1bb7f: 0x6c869e20,
-	// Block 0x6ee, offset 0x1bb80
-	0x1bb80: 0x6d1ebe20, 0x1bb81: 0x6d106e20, 0x1bb82: 0x6c91ea20, 0x1bb83: 0x6cd8f420,
-	0x1bb84: 0x6d36e220, 0x1bb85: 0x6d1cb220, 0x1bb86: 0x6c31cc20, 0x1bb87: 0x6cee3c20,
-	0x1bb88: 0x6c5afc20, 0x1bb89: 0x6d024020, 0x1bb8a: 0x6cac8020, 0x1bb8b: 0x6cd08420,
-	0x1bb8c: 0x6c0c3820, 0x1bb8d: 0x6c153820, 0x1bb8e: 0x6ca17220, 0x1bb8f: 0x6c8eba20,
-	0x1bb90: 0x6c651620, 0x1bb91: 0x6cb4ba20, 0x1bb92: 0x6ccb7420, 0x1bb93: 0x6c1a4e20,
-	0x1bb94: 0x6c47e220, 0x1bb95: 0x6c0d6820, 0x1bb96: 0x6c5e2820, 0x1bb97: 0x6cfd3020,
-	0x1bb98: 0x6c917220, 0x1bb99: 0x6cbe2620, 0x1bb9a: 0x6c4f2c20, 0x1bb9b: 0x6d1cba20,
-	0x1bb9c: 0x6cc6d820, 0x1bb9d: 0x6c86f820, 0x1bb9e: 0x6c6eb420, 0x1bb9f: 0x6cff3a20,
-	0x1bba0: 0x6d1cbc20, 0x1bba1: 0x6cdc0e20, 0x1bba2: 0x6cf03c20, 0x1bba3: 0x6d025620,
-	0x1bba4: 0x6c57fc20, 0x1bba5: 0x6d097820, 0x1bba6: 0x6d39d420, 0x1bba7: 0x6c8fc620,
-	0x1bba8: 0x6c7f6a20, 0x1bba9: 0x6c337820, 0x1bbaa: 0x6c38de20, 0x1bbab: 0x6c55ee20,
-	0x1bbac: 0x6c7f6c20, 0x1bbad: 0x6cd63420, 0x1bbae: 0x6c8e3220, 0x1bbaf: 0x6d1cbe20,
-	0x1bbb0: 0x6c9ca020, 0x1bbb1: 0x6c62c820, 0x1bbb2: 0x6c892c20, 0x1bbb3: 0x6c66fe20,
-	0x1bbb4: 0x6d1cc620, 0x1bbb5: 0x6c3c0220, 0x1bbb6: 0x6c8c0020, 0x1bbb7: 0x6d192c20,
-	0x1bbb8: 0x6c653220, 0x1bbb9: 0x6d270a20, 0x1bbba: 0x6c155620, 0x1bbbb: 0x6c27a620,
-	0x1bbbc: 0x6cc4e620, 0x1bbbd: 0x6c661820, 0x1bbbe: 0x6c7fe820, 0x1bbbf: 0x6c38e020,
-	// Block 0x6ef, offset 0x1bbc0
-	0x1bbc0: 0x6cd6f420, 0x1bbc1: 0x6d252620, 0x1bbc2: 0x6d3dd420, 0x1bbc3: 0x6c3c8020,
-	0x1bbc4: 0x6ccf8c20, 0x1bbc5: 0x6c830220, 0x1bbc6: 0x6c7fea20, 0x1bbc7: 0x6c23c620,
-	0x1bbc8: 0x6cc20020, 0x1bbc9: 0x6d1dda20, 0x1bbca: 0x6cb9e020, 0x1bbcb: 0x6c383620,
-	0x1bbcc: 0x6c49b420, 0x1bbcd: 0x6cc41a20, 0x1bbce: 0x6d0f2220, 0x1bbcf: 0x6c507c20,
-	0x1bbd0: 0x6d1d7020, 0x1bbd1: 0x6cc95c20, 0x1bbd2: 0x6d29ba20, 0x1bbd3: 0x6c946020,
-	0x1bbd4: 0x6d0f0420, 0x1bbd5: 0x6c84a820, 0x1bbd6: 0x6c9d0e20, 0x1bbd7: 0x6ccde820,
-	0x1bbd8: 0x6cdfc620, 0x1bbd9: 0x6c293e20, 0x1bbda: 0x6c697620, 0x1bbdb: 0x6c161820,
-	0x1bbdc: 0x6d1d7220, 0x1bbdd: 0x6c508420, 0x1bbde: 0x6c03dc20, 0x1bbdf: 0x6d3a4220,
-	0x1bbe0: 0x6c805e20, 0x1bbe1: 0x6c800820, 0x1bbe2: 0x6ca47820, 0x1bbe3: 0x6cecac20,
-	0x1bbe4: 0x6c947020, 0x1bbe5: 0x6d0a5e20, 0x1bbe6: 0x6cfc6a20, 0x1bbe7: 0x6d0f2820,
-	0x1bbe8: 0x6c424820, 0x1bbe9: 0x6d0f3220, 0x1bbea: 0x6d24ac20, 0x1bbeb: 0x6c5d8420,
-	0x1bbec: 0x6c0be820, 0x1bbed: 0x6c9eca20, 0x1bbee: 0x6c49d220, 0x1bbef: 0x6c2a9a20,
-	0x1bbf0: 0x6c5a8620, 0x1bbf1: 0x6cfe7a20, 0x1bbf2: 0x6cfe7c20, 0x1bbf3: 0x6c5caa20,
-	0x1bbf4: 0x6c529620, 0x1bbf5: 0x6c8c9c20, 0x1bbf6: 0x6d2a6620, 0x1bbf7: 0x6d3bbe20,
-	0x1bbf8: 0x6c6faa20, 0x1bbf9: 0x6d2ca820, 0x1bbfa: 0x6d015820, 0x1bbfb: 0x6c1be420,
-	0x1bbfc: 0x6d3d2420, 0x1bbfd: 0x6d28f220, 0x1bbfe: 0x6d28f420, 0x1bbff: 0x6c11ec20,
-	// Block 0x6f0, offset 0x1bc00
-	0x1bc00: 0x6d0f8020, 0x1bc01: 0x6cb74820, 0x1bc02: 0x6d379c20, 0x1bc03: 0x6c3b5e20,
-	0x1bc04: 0x6ca98220, 0x1bc05: 0x6c6efa20, 0x1bc06: 0x6cf18220, 0x1bc07: 0x6cb36820,
-	0x1bc08: 0x6d16c420, 0x1bc09: 0x6c913c20, 0x1bc0a: 0x6c20b620, 0x1bc0b: 0x6caf4020,
-	0x1bc0c: 0x6c767e20, 0x1bc0d: 0x6caca420, 0x1bc0e: 0x6d0c6a20, 0x1bc0f: 0x6c768020,
-	0x1bc10: 0x6cad2620, 0x1bc11: 0x6ca26e20, 0x1bc12: 0x6c179020, 0x1bc13: 0x6c8a9220,
-	0x1bc14: 0x6c4b3420, 0x1bc15: 0x6c778220, 0x1bc16: 0x6c33dc20, 0x1bc17: 0x6c49d620,
-	0x1bc18: 0x6d02b820, 0x1bc19: 0x6d358c20, 0x1bc1a: 0x6c4a2e20, 0x1bc1b: 0x6c49d820,
-	0x1bc1c: 0x6cef9420, 0x1bc1d: 0x6cbb5420, 0x1bc1e: 0x6c0be420, 0x1bc1f: 0x6c268420,
-	0x1bc20: 0x6cf99820, 0x1bc21: 0x6d329a20, 0x1bc22: 0x6d39fc20, 0x1bc23: 0x6c785e20,
-	0x1bc24: 0x6d2fa220, 0x1bc25: 0x6c3e1420, 0x1bc26: 0x6c036e20, 0x1bc27: 0x6d017420,
-	0x1bc28: 0x6c34dc20, 0x1bc29: 0x6c8e1e20, 0x1bc2a: 0x6d3cf220, 0x1bc2b: 0x6d087a20,
-	0x1bc2c: 0x6c721420, 0x1bc2d: 0x6ce08e20, 0x1bc2e: 0x6cad8420, 0x1bc2f: 0x6c6f0220,
-	0x1bc30: 0x6cad5020, 0x1bc31: 0x6cdf1e20, 0x1bc32: 0x6cdf2020, 0x1bc33: 0x6c0dd220,
-	0x1bc34: 0x6d100c20, 0x1bc35: 0x6ce6f020, 0x1bc36: 0x6c4d9420, 0x1bc37: 0x6d3ac220,
-	0x1bc38: 0x6d2cb820, 0x1bc39: 0x6c2d0a20, 0x1bc3a: 0x6cf07a20, 0x1bc3b: 0x6cd25220,
-	0x1bc3c: 0x6c88e620, 0x1bc3d: 0x6c1bfc20, 0x1bc3e: 0x6c5a4a20, 0x1bc3f: 0x6d397820,
-	// Block 0x6f1, offset 0x1bc40
-	0x1bc40: 0x6c54ae20, 0x1bc41: 0x6cd77020, 0x1bc42: 0x6c806e20, 0x1bc43: 0x6ce63620,
-	0x1bc44: 0x6c68de20, 0x1bc45: 0x6d06a820, 0x1bc46: 0x6c525e20, 0x1bc47: 0x6cc35420,
-	0x1bc48: 0x6c8af020, 0x1bc49: 0x6c590820, 0x1bc4a: 0x6d0fa020, 0x1bc4b: 0x6d04c420,
-	0x1bc4c: 0x6d04c620, 0x1bc4d: 0x6cfbfe20, 0x1bc4e: 0x6d1a3020, 0x1bc4f: 0x6cf36020,
-	0x1bc50: 0x6d386620, 0x1bc51: 0x6d10e220, 0x1bc52: 0x6cd35020, 0x1bc53: 0x6cee6e20,
-	0x1bc54: 0x6ce73620, 0x1bc55: 0x6c9ece20, 0x1bc56: 0x6d28fe20, 0x1bc57: 0x6c768420,
-	0x1bc58: 0x6c529e20, 0x1bc59: 0x6c81d020, 0x1bc5a: 0x6cf9a820, 0x1bc5b: 0x6d3a0420,
-	0x1bc5c: 0x6d084a20, 0x1bc5d: 0x6d32a020, 0x1bc5e: 0x6cb37820, 0x1bc5f: 0x6d0be420,
-	0x1bc60: 0x6c5b2e20, 0x1bc61: 0x6c49e620, 0x1bc62: 0x6c180e20, 0x1bc63: 0x6c5aa420,
-	0x1bc64: 0x6c77a820, 0x1bc65: 0x6c194c20, 0x1bc66: 0x6c389020, 0x1bc67: 0x6cce6220,
-	0x1bc68: 0x6d12e220, 0x1bc69: 0x6c5bac20, 0x1bc6b: 0x6ce19a20,
-	0x1bc6c: 0x6c6cf220, 0x1bc6d: 0x6cc55020, 0x1bc6e: 0x6c8b9620, 0x1bc6f: 0x6cf5f220,
-	0x1bc70: 0x6c3e5420, 0x1bc71: 0x6c6f0a20, 0x1bc72: 0x6d019420, 0x1bc73: 0x6cb48a20,
-	0x1bc74: 0x6ce64220, 0x1bc75: 0x6d3d3c20, 0x1bc76: 0x6ce6c020, 0x1bc77: 0x6cecd420,
-	0x1bc78: 0x6c4d4020, 0x1bc79: 0x6cae6a20, 0x1bc7a: 0x6c80fc20, 0x1bc7b: 0x6d0e5220,
-	0x1bc7c: 0x6d06bc20, 0x1bc7d: 0x6c3c3e20, 0x1bc7e: 0x6c1c1020, 0x1bc7f: 0x6cc66820,
-	// Block 0x6f2, offset 0x1bc80
-	0x1bc80: 0x6c554620, 0x1bc81: 0x6cf5f420, 0x1bc82: 0x6cd4ce20, 0x1bc83: 0x6c51c420,
-	0x1bc84: 0x6d099620, 0x1bc85: 0x6c7a9220, 0x1bc86: 0x6c72e820, 0x1bc87: 0x6cfeb620,
-	0x1bc88: 0x6cf5f620, 0x1bc89: 0x6d0bfa20, 0x1bc8a: 0x6c4eb220, 0x1bc8b: 0x6d3c3c20,
-	0x1bc8c: 0x6c75b020, 0x1bc8d: 0x6c2c4220, 0x1bc8e: 0x6d019620, 0x1bc8f: 0x6c601c20,
-	0x1bc90: 0x6cf4e020, 0x1bc91: 0x6d0bfc20, 0x1bc92: 0x6c942c20, 0x1bc93: 0x6c4e0620,
-	0x1bc94: 0x6d0e6220, 0x1bc95: 0x6c591220, 0x1bc96: 0x6c9aee20, 0x1bc97: 0x6c711620,
-	0x1bc98: 0x6c2a1020, 0x1bc99: 0x6c072420, 0x1bc9a: 0x6c3b7a20, 0x1bc9b: 0x6c8c5220,
-	0x1bc9c: 0x6c7d6220, 0x1bc9d: 0x6c5d2820, 0x1bc9e: 0x6cea2220, 0x1bc9f: 0x6cf61620,
-	0x1bca0: 0x6c253e20, 0x1bca1: 0x6cf3c820, 0x1bca2: 0x6c52a820, 0x1bca3: 0x6c179c20,
-	0x1bca4: 0x6c3f6220, 0x1bca5: 0x6cf2f420, 0x1bca6: 0x6c684820, 0x1bca7: 0x6c231820,
-	0x1bca8: 0x6c3ce220, 0x1bca9: 0x6cb2a620, 0x1bcaa: 0x6cbf2620, 0x1bcab: 0x6cc91e20,
-	0x1bcac: 0x6cf61820, 0x1bcad: 0x6cbf2820, 0x1bcae: 0x6d033420, 0x1bcaf: 0x6c174420,
-	0x1bcb0: 0x6d0e7420, 0x1bcb1: 0x6d0e7620, 0x1bcb2: 0x6d17aa20, 0x1bcb3: 0x6c744e20,
-	0x1bcb4: 0x6d234620, 0x1bcb5: 0x6c42a820, 0x1bcb6: 0x6cc47820, 0x1bcb7: 0x6caff020,
-	0x1bcb8: 0x6d049420, 0x1bcb9: 0x6cee6420, 0x1bcba: 0x6cd10420, 0x1bcbb: 0x6c171420,
-	0x1bcbc: 0x6cce6e20, 0x1bcbd: 0x6d048420, 0x1bcbe: 0x6ca72420, 0x1bcbf: 0x6c44d020,
-	// Block 0x6f3, offset 0x1bcc0
-	0x1bcc0: 0x6cf13e20, 0x1bcc1: 0x6c18d420, 0x1bcc2: 0x6c51ce20, 0x1bcc3: 0x6c7cd220,
-	0x1bcc4: 0x6d37fe20, 0x1bcc5: 0x6c32cc20, 0x1bcc6: 0x6cf96a20, 0x1bcc7: 0x6c5ac620,
-	0x1bcc8: 0x6c3ce420, 0x1bcc9: 0x6c890620, 0x1bcca: 0x6d07a820, 0x1bccb: 0x6d037e20,
-	0x1bccc: 0x6c59d220, 0x1bccd: 0x6c690a20, 0x1bcce: 0x6c64b620, 0x1bccf: 0x6c09cc20,
-	0x1bcd0: 0x6d1bbc20, 0x1bcd1: 0x6d3a7020, 0x1bcd2: 0x6cefde20, 0x1bcd3: 0x6ce93620,
-	0x1bcd4: 0x6ccd4a20, 0x1bcd5: 0x6cf67020, 0x1bcd6: 0x6caa9620, 0x1bcd7: 0x6caa9820,
-	0x1bcd8: 0x6c150220, 0x1bcd9: 0x6d0c1220, 0x1bcda: 0x6c6f1020, 0x1bcdb: 0x6c6f2420,
-	0x1bcdc: 0x6d237020, 0x1bcdd: 0x6c9a9c20, 0x1bcde: 0x6ccbfc20, 0x1bcdf: 0x6cf0a620,
-	0x1bce0: 0x6d2c3820, 0x1bce1: 0x6d033620, 0x1bce2: 0x6cbf3e20, 0x1bce3: 0x6cc75020,
-	0x1bce4: 0x6c9a0c20, 0x1bce5: 0x6c593620, 0x1bce6: 0x6d06f420, 0x1bce7: 0x6d2fbe20,
-	0x1bce8: 0x6ceea020, 0x1bce9: 0x6c38a620, 0x1bcea: 0x6cc07620, 0x1bceb: 0x6cdc4a20,
-	0x1bcec: 0x6d0fc820, 0x1bced: 0x6c8b1620, 0x1bcee: 0x6d3a6e20, 0x1bcef: 0x6c6a2220,
-	0x1bcf0: 0x6c434e20, 0x1bcf1: 0x6c485c20, 0x1bcf2: 0x6c05b420, 0x1bcf3: 0x6c557020,
-	0x1bcf4: 0x6d275820, 0x1bcf5: 0x6cf96c20, 0x1bcf6: 0x6cd41a20, 0x1bcf7: 0x6c89ce20,
-	0x1bcf8: 0x6c0afa20, 0x1bcf9: 0x6c46c420, 0x1bcfa: 0x6cea0020, 0x1bcfb: 0x6ce11420,
-	0x1bcfc: 0x6c17a020, 0x1bcfd: 0x6cccfc20, 0x1bcfe: 0x6c371a20, 0x1bcff: 0x6c0f2a20,
-	// Block 0x6f4, offset 0x1bd00
-	0x1bd00: 0x6c5a5a20, 0x1bd01: 0x6d00ce20, 0x1bd02: 0x6cf8ae20, 0x1bd03: 0x6cf50e20,
-	0x1bd04: 0x6cf67220, 0x1bd05: 0x6d284220, 0x1bd06: 0x6c515a20, 0x1bd07: 0x6c51d220,
-	0x1bd08: 0x6cf67420, 0x1bd09: 0x6d27bc20, 0x1bd0a: 0x6d048020, 0x1bd0b: 0x6ca37e20,
-	0x1bd0c: 0x6ccd5020, 0x1bd0d: 0x6cbf8e20, 0x1bd0e: 0x6d121620, 0x1bd0f: 0x6d099e20,
-	0x1bd10: 0x6c9d6c20, 0x1bd11: 0x6c882420, 0x1bd12: 0x6d1c8820, 0x1bd13: 0x6cf45a20,
-	0x1bd14: 0x6cc69a20, 0x1bd15: 0x6c459e20, 0x1bd16: 0x6d0f3820, 0x1bd17: 0x6cbb5820,
-	0x1bd18: 0x6c8e3820, 0x1bd19: 0x6cf67620, 0x1bd1a: 0x6c09f820, 0x1bd1b: 0x6c0c1820,
-	0x1bd1c: 0x6c233e20, 0x1bd1d: 0x6c92a620, 0x1bd1e: 0x6c64d620, 0x1bd1f: 0x6cd53420,
-	0x1bd20: 0x6d185620, 0x1bd21: 0x6c90b220, 0x1bd22: 0x6caeb620, 0x1bd23: 0x6cdbd420,
-	0x1bd24: 0x6d185820, 0x1bd25: 0x6ce28e20, 0x1bd26: 0x6c749420, 0x1bd27: 0x6d3fb220,
-	0x1bd28: 0x6d284620, 0x1bd29: 0x6c56c020, 0x1bd2a: 0x6d154820, 0x1bd2b: 0x6d36b420,
-	0x1bd2c: 0x6c026220, 0x1bd2d: 0x6cf0bc20, 0x1bd2e: 0x6c8f1420, 0x1bd2f: 0x6c4efa20,
-	0x1bd30: 0x6cab4c20, 0x1bd31: 0x6cc55420, 0x1bd32: 0x6c6f2c20, 0x1bd33: 0x6c97fc20,
-	0x1bd34: 0x6c7de220, 0x1bd35: 0x6cce1820, 0x1bd36: 0x6c24b220, 0x1bd37: 0x6d2b9020,
-	0x1bd38: 0x6c64f620, 0x1bd39: 0x6cf6c620, 0x1bd3a: 0x6cf6c820, 0x1bd3b: 0x6cf6ca20,
-	0x1bd3c: 0x6d185a20, 0x1bd3d: 0x6d000c20, 0x1bd3e: 0x6c1c6e20, 0x1bd3f: 0x6c59ea20,
-	// Block 0x6f5, offset 0x1bd40
-	0x1bd40: 0x6c15e420, 0x1bd41: 0x6d131820, 0x1bd42: 0x6ce01020, 0x1bd43: 0x6cc48820,
-	0x1bd44: 0x6d0ec020, 0x1bd45: 0x6cfb9420, 0x1bd46: 0x6cbbae20, 0x1bd47: 0x6c75e820,
-	0x1bd48: 0x6c2aaa20, 0x1bd49: 0x6c340a20, 0x1bd4a: 0x6cd01820, 0x1bd4b: 0x6c687a20,
-	0x1bd4c: 0x6c3b9620, 0x1bd4d: 0x6cd82a20, 0x1bd4e: 0x6c8a1a20, 0x1bd4f: 0x6d23ee20,
-	0x1bd50: 0x6c8bde20, 0x1bd51: 0x6ce78a20, 0x1bd52: 0x6cce8420, 0x1bd53: 0x6c3b4620,
-	0x1bd54: 0x6c38bc20, 0x1bd55: 0x6d0ec220, 0x1bd56: 0x6d0a3e20, 0x1bd57: 0x6c807620,
-	0x1bd58: 0x6c9a6a20, 0x1bd59: 0x6ce1a220, 0x1bd5a: 0x6d18a220, 0x1bd5b: 0x6c6e3020,
-	0x1bd5c: 0x6c9afc20, 0x1bd5d: 0x6c6ecc20, 0x1bd5e: 0x6c694420, 0x1bd5f: 0x6d1c9a20,
-	0x1bd60: 0x6d23f020, 0x1bd61: 0x6d18ca20, 0x1bd62: 0x6d091e20, 0x1bd63: 0x6c7fc020,
-	0x1bd64: 0x6cdf8020, 0x1bd65: 0x6d2a9220, 0x1bd66: 0x6c120c20, 0x1bd67: 0x6cdc7420,
-	0x1bd68: 0x6cf6ea20, 0x1bd69: 0x6cc40220, 0x1bd6a: 0x6c235420, 0x1bd6b: 0x6c886220,
-	0x1bd6c: 0x6c5b6e20, 0x1bd6d: 0x6d3a2c20, 0x1bd6e: 0x6d022c20, 0x1bd6f: 0x6c8d6e20,
-	0x1bd70: 0x6ceec020, 0x1bd71: 0x6d18cc20, 0x1bd72: 0x6d00fc20, 0x1bd73: 0x6d2fe220,
-	0x1bd74: 0x6c5c5220, 0x1bd75: 0x6c270020, 0x1bd76: 0x6ca9ce20, 0x1bd77: 0x6c7fc220,
-	0x1bd78: 0x6cc7de20, 0x1bd79: 0x6cfc3a20, 0x1bd7a: 0x6c77b620, 0x1bd7b: 0x6d09ba20,
-	0x1bd7c: 0x6c6d6620, 0x1bd7d: 0x6c1df820, 0x1bd7e: 0x6c2a3a20, 0x1bd7f: 0x6d123020,
-	// Block 0x6f6, offset 0x1bd80
-	0x1bd80: 0x6c51fc20, 0x1bd81: 0x6c807e20, 0x1bd82: 0x6c0c4220, 0x1bd83: 0x6cc6ce20,
-	0x1bd84: 0x6c86d020, 0x1bd85: 0x6ca18220, 0x1bd86: 0x6c067820, 0x1bd87: 0x6cc93220,
-	0x1bd88: 0x6c941420, 0x1bd89: 0x6c7ea620, 0x1bd8a: 0x6c023620, 0x1bd8b: 0x6d0ab020,
-	0x1bd8c: 0x6c7c1020, 0x1bd8d: 0x6cd7aa20, 0x1bd8e: 0x6c8ab420, 0x1bd8f: 0x6c872020,
-	0x1bd90: 0x6c918420, 0x1bd91: 0x6c74ea20, 0x1bd92: 0x6c8a8620, 0x1bd93: 0x6d0efa20,
-	0x1bd94: 0x6cf73a20, 0x1bd95: 0x6d025a20, 0x1bd96: 0x6c8fde20, 0x1bd97: 0x6d136e20,
-	0x1bd98: 0x6c121a20, 0x1bd99: 0x6cc50c20, 0x1bd9a: 0x6d271420, 0x1bd9b: 0x6c808820,
-	0x1bd9c: 0x6c23ce20, 0x1bd9d: 0x6c750c20, 0x1bd9e: 0x6c1d3220, 0x1bd9f: 0x6c49b620,
-	0x1bda0: 0x6c72d620, 0x1bda1: 0x6c185620, 0x1bda2: 0x6c9cba20, 0x1bda3: 0x6ce19220,
-	0x1bda4: 0x6c809220, 0x1bda5: 0x6d3a4820, 0x1bda6: 0x6c809a20, 0x1bda7: 0x6c8dda20,
-	0x1bda8: 0x6c24c420, 0x1bda9: 0x6d24b220, 0x1bdaa: 0x6d2f8020, 0x1bdab: 0x6d2ff420,
-	0x1bdac: 0x6cabd220, 0x1bdad: 0x6d328c20, 0x1bdae: 0x6cad5220, 0x1bdaf: 0x6c195820,
-	0x1bdb0: 0x6d254620, 0x1bdb1: 0x6c009620, 0x1bdb2: 0x6cf09c20, 0x1bdb3: 0x6c4f4420,
-	0x1bdb4: 0x6c749620, 0x1bdb5: 0x6c74c820, 0x1bdb6: 0x6c3fa020, 0x1bdb7: 0x6d13b020,
-	0x1bdb8: 0x6c03aa20, 0x1bdb9: 0x6c2e5620, 0x1bdba: 0x6d13b420, 0x1bdbb: 0x6d10c620,
-	0x1bdbc: 0x6d411020, 0x1bdbd: 0x6cd6d020, 0x1bdbe: 0x6c379e20, 0x1bdbf: 0x6cac5020,
-	// Block 0x6f7, offset 0x1bdc0
-	0x1bdc0: 0x6c206e20, 0x1bdc1: 0x6c77e220, 0x1bdc2: 0x6d29d420, 0x1bdc3: 0x6c2ec020,
-	0x1bdc4: 0x6cbace20, 0x1bdc5: 0x6d1dfc20, 0x1bdc6: 0x6cbb2a20, 0x1bdc7: 0x6cb14420,
-	0x1bdc8: 0x6c04be20, 0x1bdc9: 0x6cacac20, 0x1bdca: 0x6c175a20, 0x1bdcb: 0x6c64a020,
-	0x1bdcc: 0x6cac0020, 0x1bdcd: 0x6c31a020, 0x1bdce: 0x6c205420, 0x1bdcf: 0x6d215a20,
-	0x1bdd0: 0x6d2c3a20, 0x1bdd1: 0x6c0afc20, 0x1bdd2: 0x6c2ec220, 0x1bdd3: 0x6c055420,
-	0x1bdd4: 0x6c0f2c20, 0x1bdd5: 0x6c205a20, 0x1bdd6: 0x6d1fea20, 0x1bdd7: 0x6d206e20,
-	0x1bdd8: 0x6c31d620, 0x1bdd9: 0x6d0b0820, 0x1bdda: 0x6c197220, 0x1bddb: 0x6ca96620,
-	0x1bddc: 0x6ca9ac20, 0x1bddd: 0x6cb24020, 0x1bdde: 0x6c6f4c20, 0x1bddf: 0x6ca1be20,
-	0x1bde0: 0x6cdde020, 0x1bde1: 0x6ca22420, 0x1bde2: 0x6c814220, 0x1bde3: 0x6cc5c420,
-	0x1bde4: 0x6c981a20, 0x1bde5: 0x6c398a20, 0x1bde6: 0x6c98ca20, 0x1bde7: 0x6ca27020,
-	0x1bde8: 0x6c426020, 0x1bde9: 0x6cf4b820, 0x1bdea: 0x6d0e4020, 0x1bdeb: 0x6c437420,
-	0x1bdec: 0x6c06ec20, 0x1bded: 0x6cd8a020, 0x1bdee: 0x6c665e20, 0x1bdef: 0x6c476620,
-	0x1bdf0: 0x6d202c20, 0x1bdf1: 0x6c437e20, 0x1bdf2: 0x6cd0f220, 0x1bdf3: 0x6ca23020,
-	0x1bdf4: 0x6c2be620, 0x1bdf5: 0x6cb8be20, 0x1bdf6: 0x6cc37020, 0x1bdf7: 0x6cc2cc20,
-	0x1bdf8: 0x6d3f4020, 0x1bdf9: 0x6ce27020, 0x1bdfa: 0x6cf5c420, 0x1bdfb: 0x6c985620,
-	0x1bdfc: 0x6c793820, 0x1bdfd: 0x6cb8d820, 0x1bdfe: 0x6cf44620, 0x1bdff: 0x6c481220,
-	// Block 0x6f8, offset 0x1be00
-	0x1be00: 0x6cf61a20, 0x1be01: 0x6c83c220, 0x1be02: 0x6c83da20, 0x1be03: 0x6cb3f420,
-	0x1be04: 0x6c5ed420, 0x1be05: 0x6c428220, 0x1be06: 0x6d346420, 0x1be07: 0x6c078820,
-	0x1be08: 0x6cc2f220, 0x1be09: 0x6c214e20, 0x1be0a: 0x6c31a220, 0x1be0b: 0x6c724a20,
-	0x1be0c: 0x6c636e20, 0x1be0d: 0x6c64a220, 0x1be0e: 0x6c3c5620, 0x1be0f: 0x6cb0f820,
-	0x1be10: 0x6c780820, 0x1be11: 0x6c713020, 0x1be12: 0x6c77c220, 0x1be13: 0x6c1e9c20,
-	0x1be14: 0x6cf8b220, 0x1be15: 0x6c074020, 0x1be16: 0x6c961820, 0x1be17: 0x6c6bf220,
-	0x1be18: 0x6c967220, 0x1be19: 0x6cca0820, 0x1be1a: 0x6cf0be20, 0x1be1b: 0x6c98fc20,
-	0x1be1c: 0x6c33b020, 0x1be1d: 0x6ce78c20, 0x1be1e: 0x6cbc7620, 0x1be1f: 0x6c67fc20,
-	0x1be20: 0x6cf94820, 0x1be21: 0x6c86d220, 0x1be22: 0x6c31d820, 0x1be23: 0x6c8b5e20,
-	0x1be24: 0x6cac1020, 0x1be25: 0x6cb16e20, 0x1be26: 0x6c0fa620, 0x1be27: 0x6cf73c20,
-	0x1be28: 0x6c1d8620, 0x1be29: 0x6cef6820, 0x1be2a: 0x6c7cc220, 0x1be2b: 0x6c1d8a20,
-	0x1be2c: 0x6cc34c20, 0x1be2d: 0x6cc38020, 0x1be2e: 0x6c035e20, 0x1be2f: 0x6c391620,
-	0x1be30: 0x6cbff420, 0x1be31: 0x6c611c20, 0x1be32: 0x6c110420, 0x1be33: 0x6d3d2220,
-	0x1be34: 0x6c019c20, 0x1be35: 0x6c436820, 0x1be36: 0x6d3c3020, 0x1be37: 0x6c4a0620,
-	0x1be38: 0x6c96b020, 0x1be39: 0x6d1eee20, 0x1be3a: 0x6c778020, 0x1be3b: 0x6c0eae20,
-	0x1be3c: 0x6c544a20, 0x1be3d: 0x6d0b7620, 0x1be3e: 0x6d1a2820, 0x1be3f: 0x6c582620,
-	// Block 0x6f9, offset 0x1be40
-	0x1be40: 0x6d3c3420, 0x1be41: 0x6d27da20, 0x1be42: 0x6c7bba20, 0x1be43: 0x6ca97a20,
-	0x1be44: 0x6c2b5420, 0x1be45: 0x6cbe2e20, 0x1be46: 0x6d381420, 0x1be47: 0x6ca26a20,
-	0x1be48: 0x6c06d820, 0x1be49: 0x6caf4220, 0x1be4a: 0x6c70fc20, 0x1be4b: 0x6d147420,
-	0x1be4c: 0x6cd0e420, 0x1be4d: 0x6cad4e20, 0x1be4e: 0x6cf98e20, 0x1be4f: 0x6ceaf220,
-	0x1be50: 0x6c552620, 0x1be51: 0x6c8cae20, 0x1be52: 0x6c3a8a20, 0x1be53: 0x6cafbe20,
-	0x1be54: 0x6ca62a20, 0x1be55: 0x6d119020, 0x1be56: 0x6d201a20, 0x1be57: 0x6c467020,
-	0x1be58: 0x6d094620, 0x1be59: 0x6c705e20, 0x1be5a: 0x6c286a20, 0x1be5b: 0x6c0eb820,
-	0x1be5c: 0x6c7a7420, 0x1be5d: 0x6cfbe820, 0x1be5e: 0x6ca8f820, 0x1be5f: 0x6c586620,
-	0x1be60: 0x6c523c20, 0x1be61: 0x6c68d420, 0x1be62: 0x6c50dc20, 0x1be63: 0x6d2fa420,
-	0x1be64: 0x6c5ff620, 0x1be65: 0x6d0a7220, 0x1be66: 0x6cccd220, 0x1be67: 0x6cde3820,
-	0x1be68: 0x6cc65820, 0x1be69: 0x6cd45620, 0x1be6a: 0x6ce72820, 0x1be6b: 0x6c81a820,
-	0x1be6c: 0x6c318a20, 0x1be6d: 0x6cf99c20, 0x1be6e: 0x6cd1ae20, 0x1be6f: 0x6c7b1a20,
-	0x1be70: 0x6d329c20, 0x1be71: 0x6d22e420, 0x1be72: 0x6cdccc20, 0x1be73: 0x6d20f420,
-	0x1be74: 0x6c096220, 0x1be75: 0x6c985420, 0x1be76: 0x6cf5c620, 0x1be77: 0x6c734c20,
-	0x1be78: 0x6c87e020, 0x1be79: 0x6cf9aa20, 0x1be7a: 0x6d1a4820, 0x1be7b: 0x6cdb7e20,
-	0x1be7c: 0x6c80ae20, 0x1be7d: 0x6c070220, 0x1be7e: 0x6d35c020, 0x1be7f: 0x6d0c7420,
-	// Block 0x6fa, offset 0x1be80
-	0x1be80: 0x6ccbdc20, 0x1be81: 0x6c85d220, 0x1be82: 0x6c4e9e20, 0x1be83: 0x6cfc0020,
-	0x1be84: 0x6c6dae20, 0x1be85: 0x6cabfc20, 0x1be86: 0x6c3a0620, 0x1be87: 0x6cfeb820,
-	0x1be88: 0x6c044220, 0x1be89: 0x6cb5cc20, 0x1be8a: 0x6ca5da20, 0x1be8b: 0x6c0bfc20,
-	0x1be8c: 0x6d1b5620, 0x1be8d: 0x6c7efe20, 0x1be8e: 0x6c8b0220, 0x1be8f: 0x6c648820,
-	0x1be90: 0x6cbaac20, 0x1be91: 0x6c7d5a20, 0x1be92: 0x6d0c0a20, 0x1be93: 0x6c4cba20,
-	0x1be94: 0x6d402020, 0x1be95: 0x6c9c4820, 0x1be96: 0x6c166820, 0x1be97: 0x6d13e620,
-	0x1be98: 0x6d35e820, 0x1be99: 0x6d32b420, 0x1be9a: 0x6d0b2c20, 0x1be9b: 0x6c9bce20,
-	0x1be9c: 0x6c10f820, 0x1be9d: 0x6c243620, 0x1be9e: 0x6cceec20, 0x1be9f: 0x6c8b9820,
-	0x1bea0: 0x6c2d1620, 0x1bea1: 0x6c953e20, 0x1bea2: 0x6c556020, 0x1bea3: 0x6d3f9020,
-	0x1bea4: 0x6c4b4620, 0x1bea5: 0x6cefc820, 0x1bea6: 0x6c3c4c20, 0x1bea7: 0x6cf28c20,
-	0x1bea8: 0x6d256620, 0x1bea9: 0x6d037420, 0x1beaa: 0x6d399820, 0x1beab: 0x6c98ba20,
-	0x1beac: 0x6cf14020, 0x1bead: 0x6c1fe420, 0x1beae: 0x6cfcce20, 0x1beaf: 0x6ce93420,
-	0x1beb0: 0x6d0bb220, 0x1beb1: 0x6ca4ac20, 0x1beb2: 0x6d004220, 0x1beb3: 0x6c636020,
-	0x1beb4: 0x6c540620, 0x1beb5: 0x6c0af420, 0x1beb6: 0x6d1f3a20, 0x1beb7: 0x6d1f4820,
-	0x1beb8: 0x6c9a0020, 0x1beb9: 0x6c13e420, 0x1beba: 0x6d111420, 0x1bebb: 0x6cdcd620,
-	0x1bebc: 0x6c0f1420, 0x1bebd: 0x6ca00820, 0x1bebe: 0x6c574020, 0x1bebf: 0x6d258620,
-	// Block 0x6fb, offset 0x1bec0
-	0x1bec0: 0x6cd9b420, 0x1bec1: 0x6c96c420, 0x1bec2: 0x6d258820, 0x1bec3: 0x6c270c20,
-	0x1bec4: 0x6d239220, 0x1bec5: 0x6cd1d220, 0x1bec6: 0x6c4fcc20, 0x1bec7: 0x6cbb6420,
-	0x1bec8: 0x6d17ea20, 0x1bec9: 0x6d316a20, 0x1beca: 0x6c123420, 0x1becb: 0x6c4fe220,
-	0x1becc: 0x6c97ee20, 0x1becd: 0x6c6e9620, 0x1bece: 0x6c67b820, 0x1becf: 0x6ca12e20,
-	0x1bed0: 0x6d2ecc20, 0x1bed1: 0x6c150a20, 0x1bed2: 0x6c026420, 0x1bed3: 0x6c025420,
-	0x1bed4: 0x6c4fd420, 0x1bed5: 0x6c24e020, 0x1bed6: 0x6c07c420, 0x1bed7: 0x6c749820,
-	0x1bed8: 0x6c0a2c20, 0x1bed9: 0x6c09fe20, 0x1beda: 0x6c59dc20, 0x1bedb: 0x6cb44a20,
-	0x1bedc: 0x6c8bd020, 0x1bedd: 0x6d072620, 0x1bede: 0x6ce77e20, 0x1bedf: 0x6d121e20,
-	0x1bee0: 0x6c8a1220, 0x1bee1: 0x6cd79020, 0x1bee2: 0x6cff0620, 0x1bee3: 0x6cd49020,
-	0x1bee4: 0x6c33a820, 0x1bee5: 0x6c69c620, 0x1bee6: 0x6c442020, 0x1bee7: 0x6c739020,
-	0x1bee8: 0x6c31b420, 0x1bee9: 0x6c5c3820, 0x1beea: 0x6c7b3e20, 0x1beeb: 0x6cfc2c20,
-	0x1beec: 0x6d021820, 0x1beed: 0x6cde1820, 0x1beee: 0x6cfc3220, 0x1beef: 0x6d09b020,
-	0x1bef0: 0x6ca92620, 0x1bef1: 0x6cb21820, 0x1bef2: 0x6c5dfc20, 0x1bef3: 0x6caa2a20,
-	0x1bef4: 0x6c9be620, 0x1bef5: 0x6c8b5420, 0x1bef6: 0x6ca51e20, 0x1bef7: 0x6c4a0c20,
-	0x1bef8: 0x6cd48420, 0x1bef9: 0x6c917420, 0x1befa: 0x6cde2020, 0x1befb: 0x6cfd3c20,
-	0x1befc: 0x6c9ca220, 0x1befd: 0x6cc4e820, 0x1befe: 0x6c584020, 0x1beff: 0x6ca52820,
-	// Block 0x6fc, offset 0x1bf00
-	0x1bf00: 0x6c957820, 0x1bf01: 0x6cfc5420, 0x1bf02: 0x6cb6ac20, 0x1bf03: 0x6c751e20,
-	0x1bf04: 0x6d07fa20, 0x1bf05: 0x6c9eae20, 0x1bf06: 0x6d3e1a20, 0x1bf07: 0x6c93d620,
-	0x1bf08: 0x6c914c20, 0x1bf09: 0x6d22b820, 0x1bf0a: 0x6cda7a20, 0x1bf0b: 0x6cedda20,
-	0x1bf0c: 0x6cbff620, 0x1bf0d: 0x6c40d220, 0x1bf0e: 0x6c2f4c20, 0x1bf0f: 0x6c821620,
-	0x1bf10: 0x6c031620, 0x1bf11: 0x6c5e7c20, 0x1bf12: 0x6c52fa20, 0x1bf13: 0x6c2c1a20,
-	0x1bf14: 0x6c202e20, 0x1bf15: 0x6c416c20, 0x1bf16: 0x6c6fac20, 0x1bf17: 0x6d20be20,
-	0x1bf18: 0x6cb6d820, 0x1bf19: 0x6d20c020, 0x1bf1a: 0x6c170620, 0x1bf1b: 0x6c969020,
-	0x1bf1c: 0x6c456420, 0x1bf1d: 0x6cf43020, 0x1bf1e: 0x6c3d4220, 0x1bf1f: 0x6cf18420,
-	0x1bf20: 0x6c6bc620, 0x1bf21: 0x6d0b1a20, 0x1bf22: 0x6c0d2620, 0x1bf23: 0x6c0b8020,
-	0x1bf24: 0x6c056220, 0x1bf25: 0x6d268820, 0x1bf26: 0x6c73f220, 0x1bf27: 0x6c9ac220,
-	0x1bf28: 0x6c73f420, 0x1bf29: 0x6cecca20, 0x1bf2a: 0x6c646e20, 0x1bf2b: 0x6c99da20,
-	0x1bf2c: 0x6c282420, 0x1bf2d: 0x6cb20420, 0x1bf2e: 0x6cef9620, 0x1bf2f: 0x6c585820,
-	0x1bf30: 0x6cfc8020, 0x1bf31: 0x6cbaa820, 0x1bf32: 0x6c8cbe20, 0x1bf33: 0x6c274a20,
-	0x1bf34: 0x6d16fc20, 0x1bf35: 0x6c016820, 0x1bf36: 0x6cb28820, 0x1bf37: 0x6c2d4620,
-	0x1bf38: 0x6c3e1620, 0x1bf39: 0x6d080220, 0x1bf3a: 0x6cf7da20, 0x1bf3b: 0x6c0e5820,
-	0x1bf3c: 0x6c229420, 0x1bf3d: 0x6c467820, 0x1bf3e: 0x6c640620, 0x1bf3f: 0x6cce9e20,
-	// Block 0x6fd, offset 0x1bf40
-	0x1bf40: 0x6cb37220, 0x1bf41: 0x6c222220, 0x1bf42: 0x6c77e420, 0x1bf43: 0x6cc4bc20,
-	0x1bf44: 0x6cd0f420, 0x1bf45: 0x6ccfbe20, 0x1bf46: 0x6d14a820, 0x1bf47: 0x6d411220,
-	0x1bf48: 0x6c633c20, 0x1bf49: 0x6c9f3a20, 0x1bf4a: 0x6cccd420, 0x1bf4b: 0x6c8efe20,
-	0x1bf4c: 0x6c095020, 0x1bf4d: 0x6d312c20, 0x1bf4e: 0x6d312e20, 0x1bf4f: 0x6c73fc20,
-	0x1bf50: 0x6c383820, 0x1bf51: 0x6c8f7820, 0x1bf52: 0x6c6c3e20, 0x1bf53: 0x6c698e20,
-	0x1bf54: 0x6c667020, 0x1bf55: 0x6c85d420, 0x1bf56: 0x6c4a1e20, 0x1bf57: 0x6cfa9220,
-	0x1bf58: 0x6d386820, 0x1bf59: 0x6c45e420, 0x1bf5a: 0x6d0be820, 0x1bf5b: 0x6d053420,
-	0x1bf5c: 0x6d0fa420, 0x1bf5d: 0x6d063620, 0x1bf5e: 0x6c95f620, 0x1bf5f: 0x6cda9020,
-	0x1bf60: 0x6d399420, 0x1bf61: 0x6cbd6420, 0x1bf62: 0x6d1a4a20, 0x1bf63: 0x6d09fe20,
-	0x1bf64: 0x6c05f620, 0x1bf65: 0x6c379220, 0x1bf66: 0x6cfe2a20, 0x1bf67: 0x6d10e420,
-	0x1bf68: 0x6cf9ac20, 0x1bf69: 0x6c4f6620, 0x1bf6a: 0x6c4a4a20, 0x1bf6b: 0x6c1cba20,
-	0x1bf6c: 0x6d06ac20, 0x1bf6d: 0x6c047820, 0x1bf6e: 0x6cae1620, 0x1bf6f: 0x6c81f020,
-	0x1bf70: 0x6c28fa20, 0x1bf71: 0x6d1d6420, 0x1bf72: 0x6c5aa620, 0x1bf73: 0x6cf19220,
-	0x1bf74: 0x6c355c20, 0x1bf75: 0x6c19e820, 0x1bf76: 0x6c2c4420, 0x1bf77: 0x6cf44c20,
-	0x1bf78: 0x6cf3c420, 0x1bf79: 0x6c19e020, 0x1bf7a: 0x6c75b220, 0x1bf7b: 0x6c99ee20,
-	0x1bf7c: 0x6c071220, 0x1bf7d: 0x6ce6c220, 0x1bf7e: 0x6cfcb420, 0x1bf7f: 0x6c1f3220,
-	// Block 0x6fe, offset 0x1bf80
-	0x1bf80: 0x6c4e0820, 0x1bf81: 0x6d081220, 0x1bf82: 0x6d0c8820, 0x1bf83: 0x6cc05020,
-	0x1bf84: 0x6d088a20, 0x1bf85: 0x6c80be20, 0x1bf86: 0x6c851420, 0x1bf87: 0x6d053c20,
-	0x1bf88: 0x6c3e5620, 0x1bf89: 0x6c8e5020, 0x1bf8a: 0x6d0b1e20, 0x1bf8b: 0x6cf5f820,
-	0x1bf8c: 0x6c8cec20, 0x1bf8d: 0x6c83c420, 0x1bf8e: 0x6c6d0420, 0x1bf8f: 0x6c88b620,
-	0x1bf90: 0x6cdd6020, 0x1bf91: 0x6cddd620, 0x1bf92: 0x6c3cfe20, 0x1bf93: 0x6cecd620,
-	0x1bf94: 0x6c2d5a20, 0x1bf95: 0x6cb20c20, 0x1bf96: 0x6d2df020, 0x1bf97: 0x6ccb2c20,
-	0x1bf98: 0x6c9f5620, 0x1bf99: 0x6d234820, 0x1bf9a: 0x6c709420, 0x1bf9b: 0x6c186820,
-	0x1bf9c: 0x6c7f0a20, 0x1bf9d: 0x6cf19620, 0x1bf9e: 0x6cd16c20, 0x1bf9f: 0x6cef1420,
-	0x1bfa0: 0x6ce4f620, 0x1bfa1: 0x6c1f4020, 0x1bfa2: 0x6d423c20, 0x1bfa3: 0x6c081e20,
-	0x1bfa4: 0x6c196020, 0x1bfa5: 0x6c562220, 0x1bfa6: 0x6cb5ea20, 0x1bfa7: 0x6c365e20,
-	0x1bfa8: 0x6c7d6420, 0x1bfa9: 0x6c167020, 0x1bfaa: 0x6cb5ec20, 0x1bfab: 0x6c082020,
-	0x1bfac: 0x6ced2020, 0x1bfad: 0x6c925620, 0x1bfae: 0x6c239e20, 0x1bfaf: 0x6c495220,
-	0x1bfb0: 0x6d0d9020, 0x1bfb1: 0x6c2dca20, 0x1bfb2: 0x6c072620, 0x1bfb3: 0x6c8bb620,
-	0x1bfb4: 0x6cbd7220, 0x1bfb5: 0x6caff220, 0x1bfb6: 0x6cabd620, 0x1bfb7: 0x6cc3b820,
-	0x1bfb8: 0x6d3d6220, 0x1bfb9: 0x6cbd7420, 0x1bfba: 0x6c383c20, 0x1bfbb: 0x6c6d8020,
-	0x1bfbc: 0x6cbf2a20, 0x1bfbd: 0x6c321a20, 0x1bfbe: 0x6c6bec20, 0x1bfbf: 0x6c5cf220,
-	// Block 0x6ff, offset 0x1bfc0
-	0x1bfc0: 0x6d226c20, 0x1bfc1: 0x6c999820, 0x1bfc2: 0x6c9a1020, 0x1bfc3: 0x6c210e20,
-	0x1bfc4: 0x6d07aa20, 0x1bfc5: 0x6ce34a20, 0x1bfc6: 0x6d038020, 0x1bfc7: 0x6c277a20,
-	0x1bfc8: 0x6cc75220, 0x1bfc9: 0x6c9f6020, 0x1bfca: 0x6c64b820, 0x1bfcb: 0x6cefe020,
-	0x1bfcc: 0x6cc86620, 0x1bfcd: 0x6c593820, 0x1bfce: 0x6d00be20, 0x1bfcf: 0x6c1fe820,
-	0x1bfd0: 0x6c65ae20, 0x1bfd1: 0x6d3bce20, 0x1bfd2: 0x6c171620, 0x1bfd3: 0x6c890a20,
-	0x1bfd4: 0x6cc2fe20, 0x1bfd5: 0x6cf9d420, 0x1bfd6: 0x6c32ce20, 0x1bfd7: 0x6d262220,
-	0x1bfd8: 0x6d0b2e20, 0x1bfd9: 0x6ca50220, 0x1bfda: 0x6c557220, 0x1bfdb: 0x6d1bbe20,
-	0x1bfdc: 0x6d215e20, 0x1bfdd: 0x6c59d620, 0x1bfde: 0x6cc8d420, 0x1bfdf: 0x6ccb3020,
-	0x1bfe0: 0x6c8e7c20, 0x1bfe1: 0x6cd1de20, 0x1bfe2: 0x6cc69e20, 0x1bfe3: 0x6cdd8220,
-	0x1bfe4: 0x6d112620, 0x1bfe5: 0x6cf15c20, 0x1bfe6: 0x6cf45c20, 0x1bfe7: 0x6d317e20,
-	0x1bfe8: 0x6c6d2a20, 0x1bfe9: 0x6d1c8a20, 0x1bfea: 0x6c969e20, 0x1bfeb: 0x6ce1dc20,
-	0x1bfec: 0x6c8e8220, 0x1bfed: 0x6ce11820, 0x1bfee: 0x6c864e20, 0x1bfef: 0x6c80c420,
-	0x1bff0: 0x6c4a7020, 0x1bff1: 0x6d325020, 0x1bff2: 0x6cbad020, 0x1bff3: 0x6c25be20,
-	0x1bff4: 0x6c748020, 0x1bff5: 0x6d2f8e20, 0x1bff6: 0x6d112820, 0x1bff7: 0x6c00bc20,
-	0x1bff8: 0x6c0d4620, 0x1bff9: 0x6cd4f620, 0x1bffa: 0x6c16c020, 0x1bffb: 0x6c7d8020,
-	0x1bffc: 0x6d3b8820, 0x1bffd: 0x6c234020, 0x1bffe: 0x6c6cb020, 0x1bfff: 0x6d141620,
-	// Block 0x700, offset 0x1c000
-	0x1c000: 0x6c250020, 0x1c001: 0x6c234220, 0x1c002: 0x6cb63820, 0x1c003: 0x6c841a20,
-	0x1c004: 0x6d1d0820, 0x1c005: 0x6cdd8a20, 0x1c006: 0x6cc08c20, 0x1c007: 0x6d082020,
-	0x1c008: 0x6c026620, 0x1c009: 0x6c88c420, 0x1c00a: 0x6c9ad420, 0x1c00b: 0x6d2eda20,
-	0x1c00c: 0x6d1a9620, 0x1c00d: 0x6c57e220, 0x1c00e: 0x6d1be620, 0x1c00f: 0x6cf0ce20,
-	0x1c010: 0x6c92e620, 0x1c011: 0x6cf3ec20, 0x1c012: 0x6c2aac20, 0x1c013: 0x6d054820,
-	0x1c014: 0x6d2b9420, 0x1c015: 0x6d0a4220, 0x1c016: 0x6cc1b420, 0x1c017: 0x6c299420,
-	0x1c018: 0x6c8be020, 0x1c019: 0x6c8a1c20, 0x1c01a: 0x6cbf6220, 0x1c01b: 0x6cdb3420,
-	0x1c01c: 0x6c59ec20, 0x1c01d: 0x6c4a8c20, 0x1c01e: 0x6cb45220, 0x1c01f: 0x6c6e3220,
-	0x1c020: 0x6c38be20, 0x1c021: 0x6c6d4220, 0x1c022: 0x6c8e9820, 0x1c023: 0x6c5f3620,
-	0x1c024: 0x6c5cae20, 0x1c025: 0x6c6e3420, 0x1c026: 0x6c00e220, 0x1c027: 0x6c0a8e20,
-	0x1c028: 0x6c120e20, 0x1c029: 0x6cc1d820, 0x1c02a: 0x6d2a5820, 0x1c02b: 0x6c290c20,
-	0x1c02c: 0x6c694c20, 0x1c02d: 0x6c4c0420, 0x1c02e: 0x6ce07e20, 0x1c02f: 0x6c5c5420,
-	0x1c030: 0x6c58a620, 0x1c031: 0x6ccb7020, 0x1c032: 0x6cdc7620, 0x1c033: 0x6ce4c620,
-	0x1c034: 0x6c1f9a20, 0x1c035: 0x6d21b820, 0x1c036: 0x6c6d6820, 0x1c037: 0x6c917620,
-	0x1c038: 0x6c0d6020, 0x1c039: 0x6cd54220, 0x1c03a: 0x6cf21820, 0x1c03b: 0x6d41a220,
-	0x1c03c: 0x6c7fd020, 0x1c03d: 0x6cf82020, 0x1c03e: 0x6d3ea820, 0x1c03f: 0x6d083020,
-	// Block 0x701, offset 0x1c040
-	0x1c040: 0x6cc88420, 0x1c041: 0x6cf31e20, 0x1c042: 0x6c415820, 0x1c043: 0x6c827220,
-	0x1c044: 0x6c31da20, 0x1c045: 0x6c86fe20, 0x1c046: 0x6d374020, 0x1c047: 0x6cc76a20,
-	0x1c048: 0x6c848e20, 0x1c049: 0x6d29ac20, 0x1c04a: 0x6cbf7620, 0x1c04b: 0x6ce43a20,
-	0x1c04c: 0x6c4aa420, 0x1c04d: 0x6cdc0020, 0x1c04e: 0x6c7eb220, 0x1c04f: 0x6c8fe020,
-	0x1c050: 0x6c918620, 0x1c051: 0x6c872620, 0x1c052: 0x6d29b220, 0x1c053: 0x6c808a20,
-	0x1c054: 0x6d1c2e20, 0x1c055: 0x6c9cb420, 0x1c056: 0x6cfd9c20, 0x1c057: 0x6cbf8820,
-	0x1c058: 0x6c49b820, 0x1c059: 0x6c2a5020, 0x1c05a: 0x6d29c020, 0x1c05b: 0x6c58ce20,
-	0x1c05c: 0x6c483e20, 0x1c05d: 0x6c0eba20, 0x1c05e: 0x6c2e8820, 0x1c05f: 0x6c0ed820,
-	0x1c060: 0x6c568e20, 0x1c061: 0x6d347620, 0x1c062: 0x6cb18020, 0x1c063: 0x6c050c20,
-	0x1c064: 0x6cc4f020, 0x1c065: 0x6c87a220, 0x1c066: 0x6cec0c20,
-	0x1c068: 0x6cfdaa20, 0x1c069: 0x6cb8aa20, 0x1c06a: 0x6c04c020, 0x1c06b: 0x6cae3a20,
-	0x1c06c: 0x6c39c820, 0x1c06d: 0x6c282620, 0x1c06e: 0x6cf26c20, 0x1c06f: 0x6cab3420,
-	0x1c072: 0x6cec4a20, 0x1c073: 0x6c552a20,
-	0x1c074: 0x6c8cc020, 0x1c075: 0x6d14aa20, 0x1c076: 0x6cb29420, 0x1c077: 0x6c223820,
-	0x1c078: 0x6c042020, 0x1c079: 0x6c72ea20, 0x1c07a: 0x6c16a820, 0x1c07b: 0x6c1aa820,
-	0x1c07d: 0x6c296820, 0x1c07e: 0x6c9bd620, 0x1c07f: 0x6c109820,
-	// Block 0x702, offset 0x1c080
-	0x1c080: 0x6d3c8820, 0x1c081: 0x6cb2aa20, 0x1c082: 0x6c0afe20, 0x1c083: 0x6d393220,
-	0x1c084: 0x6d316c20, 0x1c086: 0x6c225020, 0x1c087: 0x6d1bd220,
-	0x1c088: 0x6cb7b220, 0x1c089: 0x6cfb7420, 0x1c08a: 0x6c90f220, 0x1c08b: 0x6c2c9220,
-	0x1c08c: 0x6cab5020, 0x1c08d: 0x6c9b2e20, 0x1c08e: 0x6d3b8a20, 0x1c08f: 0x6c084e20,
-	0x1c090: 0x6c8c6420, 0x1c091: 0x6d2bb020, 0x1c092: 0x6cf47c20, 0x1c093: 0x6cb0c220,
-	0x1c094: 0x6c280220, 0x1c095: 0x6cf27420, 0x1c096: 0x6d1c0820, 0x1c097: 0x6d0e0420,
-	0x1c098: 0x6c415c20, 0x1c099: 0x6c273420, 0x1c09a: 0x6cd03820, 0x1c09b: 0x6ce49a20,
-	0x1c09c: 0x6ce49c20, 0x1c09d: 0x6c4e1c20, 0x1c09e: 0x6c16b020, 0x1c09f: 0x6cd0d220,
-	0x1c0a0: 0x6cbe6e20, 0x1c0a1: 0x6ccfcc20, 0x1c0a2: 0x6c15aa20, 0x1c0a3: 0x6c15ac20,
-	0x1c0a4: 0x6cc89c20, 0x1c0a5: 0x6cd10620, 0x1c0a6: 0x6cda4c20, 0x1c0a7: 0x6cd00820,
-	0x1c0a8: 0x6d1e6c20, 0x1c0a9: 0x6cd66020, 0x1c0aa: 0x6c920e20, 0x1c0ab: 0x6c40a820,
-	0x1c0ac: 0x6d1e1020, 0x1c0ad: 0x6c080e20, 0x1c0ae: 0x6c3cdc20, 0x1c0af: 0x6ca90820,
-	0x1c0b0: 0x6ce47e20, 0x1c0b1: 0x6d1ee020, 0x1c0b2: 0x6c63fc20, 0x1c0b3: 0x6ccf9a20,
-	0x1c0b4: 0x6d2c1820, 0x1c0b5: 0x6c2d3220, 0x1c0b6: 0x6c3dce20, 0x1c0b7: 0x6ca3e220,
-	0x1c0b8: 0x6c2cbc20, 0x1c0b9: 0x6cb24820, 0x1c0ba: 0x6ce62e20, 0x1c0bb: 0x6c578420,
-	0x1c0bc: 0x6ce6b220, 0x1c0bd: 0x6d321a20, 0x1c0be: 0x6d28f620, 0x1c0bf: 0x6c9b0820,
-	// Block 0x703, offset 0x1c0c0
-	0x1c0c0: 0x6c093c20, 0x1c0c1: 0x6cb58620, 0x1c0c2: 0x6c8f2620, 0x1c0c3: 0x6d09de20,
-	0x1c0c4: 0x6c8e4420, 0x1c0c5: 0x6c170820, 0x1c0c6: 0x6ca23220, 0x1c0c7: 0x6d278a20,
-	0x1c0c8: 0x6c393620, 0x1c0c9: 0x6c3e1820, 0x1c0ca: 0x6c44bc20, 0x1c0cb: 0x6ce48e20,
-	0x1c0cc: 0x6c6bca20, 0x1c0cd: 0x6c6bcc20, 0x1c0ce: 0x6cc35220, 0x1c0cf: 0x6cf07c20,
-	0x1c0d0: 0x6c3e1a20, 0x1c0d1: 0x6ce49020, 0x1c0d2: 0x6ca23420, 0x1c0d3: 0x6c341e20,
-	0x1c0d4: 0x6cacb020, 0x1c0d5: 0x6c675620, 0x1c0d6: 0x6cebd220, 0x1c0d7: 0x6c269020,
-	0x1c0d8: 0x6ca3f020, 0x1c0d9: 0x6c8e4c20, 0x1c0da: 0x6c079a20, 0x1c0db: 0x6d31c820,
-	0x1c0dc: 0x6c1f2820, 0x1c0dd: 0x6ca23820, 0x1c0de: 0x6ca23a20, 0x1c0df: 0x6c12d820,
-	0x1c0e0: 0x6ce49620, 0x1c0e1: 0x6c40f220, 0x1c0e2: 0x6c096420, 0x1c0e3: 0x6c269a20,
-	0x1c0e4: 0x6d35ea20, 0x1c0e5: 0x6c361220, 0x1c0e6: 0x6cb5ce20, 0x1c0e7: 0x6c94a020,
-	0x1c0e8: 0x6cac3e20, 0x1c0e9: 0x6d199020, 0x1c0ea: 0x6c384e20, 0x1c0eb: 0x6c579820,
-	0x1c0ec: 0x6ccef220, 0x1c0ed: 0x6d212e20, 0x1c0ee: 0x6ca24220, 0x1c0ef: 0x6c75be20,
-	0x1c0f0: 0x6d176620, 0x1c0f1: 0x6c8e5820, 0x1c0f2: 0x6ccef420, 0x1c0f3: 0x6c2eac20,
-	0x1c0f4: 0x6c1db020, 0x1c0f5: 0x6c579e20, 0x1c0f6: 0x6c290020, 0x1c0f7: 0x6d3c9020,
-	0x1c0f8: 0x6c5eea20, 0x1c0f9: 0x6ced2a20, 0x1c0fa: 0x6c676620, 0x1c0fb: 0x6c1a2620,
-	0x1c0fc: 0x6c171e20, 0x1c0fd: 0x6cea8020, 0x1c0fe: 0x6c825220, 0x1c0ff: 0x6c5f1620,
-	// Block 0x704, offset 0x1c100
-	0x1c100: 0x6c13b020, 0x1c101: 0x6c8e9a20, 0x1c102: 0x6c2f3c20, 0x1c103: 0x6ce98220,
-	0x1c104: 0x6c8c6c20, 0x1c105: 0x6c678c20, 0x1c106: 0x6c679020, 0x1c107: 0x6c1e0020,
-	0x1c108: 0x6cb0d620, 0x1c109: 0x6c2f0620, 0x1c10a: 0x6c2f1020, 0x1c10b: 0x6cb04420,
-	0x1c10c: 0x6c6a8220, 0x1c10d: 0x6c287220, 0x1c10e: 0x6cd4da20, 0x1c10f: 0x6cd4dc20,
-	0x1c110: 0x6d369220, 0x1c111: 0x6d153420, 0x1c112: 0x6ca54020, 0x1c113: 0x6ca39420,
-	0x1c114: 0x6c2f4e20, 0x1c115: 0x6c08be20, 0x1c116: 0x6c69f620, 0x1c117: 0x6c89da20,
-	0x1c118: 0x6c426220, 0x1c119: 0x6c437620, 0x1c11a: 0x6c6fd620, 0x1c11b: 0x6d38da20,
-	0x1c11c: 0x6cfa3020, 0x1c11d: 0x6ccd7220, 0x1c11e: 0x6d057220, 0x1c11f: 0x6caa9e20,
-	0x1c120: 0x6c859220, 0x1c121: 0x6d0f8a20, 0x1c122: 0x6c192020, 0x1c123: 0x6d1f0c20,
-	0x1c124: 0x6c033220, 0x1c125: 0x6c6bce20, 0x1c126: 0x6c73fe20, 0x1c127: 0x6cb59620,
-	0x1c128: 0x6cf95620, 0x1c129: 0x6c251e20, 0x1c12a: 0x6c095220, 0x1c12b: 0x6d16fe20,
-	0x1c12c: 0x6c85aa20, 0x1c12d: 0x6d401a20, 0x1c12e: 0x6c204e20, 0x1c12f: 0x6c3c2620,
-	0x1c130: 0x6d3ad220, 0x1c131: 0x6cad8620, 0x1c132: 0x6cafd020, 0x1c133: 0x6c418a20,
-	0x1c134: 0x6c77ee20, 0x1c135: 0x6c21fa20, 0x1c136: 0x6d08de20, 0x1c137: 0x6d33c620,
-	0x1c138: 0x6c283020, 0x1c139: 0x6d31ca20, 0x1c13a: 0x6c380220, 0x1c13b: 0x6d350e20,
-	0x1c13c: 0x6ce29c20, 0x1c13d: 0x6c706a20, 0x1c13e: 0x6c600220, 0x1c13f: 0x6c3a9a20,
-	// Block 0x705, offset 0x1c140
-	0x1c140: 0x6c706c20, 0x1c141: 0x6cccda20, 0x1c142: 0x6c634420, 0x1c143: 0x6d080820,
-	0x1c144: 0x6d2cbc20, 0x1c145: 0x6c0e1420, 0x1c146: 0x6ca80a20, 0x1c147: 0x6d334620,
-	0x1c148: 0x6d1d8020, 0x1c149: 0x6c6e6820, 0x1c14a: 0x6cc2e020, 0x1c14b: 0x6ce29e20,
-	0x1c14c: 0x6ce6f420, 0x1c14d: 0x6d14e620, 0x1c14e: 0x6c6a0020, 0x1c14f: 0x6cefb020,
-	0x1c150: 0x6c5b3620, 0x1c151: 0x6cdfa220, 0x1c152: 0x6d101220, 0x1c153: 0x6c1c1220,
-	0x1c154: 0x6d35ec20, 0x1c155: 0x6c523220, 0x1c156: 0x6d0b5220, 0x1c157: 0x6c9a9220,
-	0x1c158: 0x6c311a20, 0x1c159: 0x6c6e8620, 0x1c15a: 0x6cfec020, 0x1c15b: 0x6ce7c820,
-	0x1c15c: 0x6ce86220, 0x1c15d: 0x6c986020, 0x1c15e: 0x6cb05e20, 0x1c15f: 0x6cfec220,
-	0x1c160: 0x6cdb8020, 0x1c161: 0x6c3d7020, 0x1c162: 0x6c861220, 0x1c163: 0x6d363420,
-	0x1c164: 0x6c25de20, 0x1c165: 0x6c345220, 0x1c166: 0x6cf4ee20, 0x1c167: 0x6ccbf420,
-	0x1c168: 0x6c815a20, 0x1c169: 0x6cd46a20, 0x1c16a: 0x6c592620, 0x1c16b: 0x6cfb5e20,
-	0x1c16c: 0x6d17ee20, 0x1c16d: 0x6c07f820, 0x1c16e: 0x6d2f3420, 0x1c16f: 0x6c495620,
-	0x1c170: 0x6cdfec20, 0x1c171: 0x6c3ab820, 0x1c172: 0x6c966a20, 0x1c173: 0x6c8bba20,
-	0x1c174: 0x6c1abc20, 0x1c175: 0x6c621a20, 0x1c176: 0x6ce50220, 0x1c177: 0x6c013820,
-	0x1c178: 0x6c1c3220, 0x1c179: 0x6c09d020, 0x1c17a: 0x6c09d220, 0x1c17b: 0x6c9f6220,
-	0x1c17c: 0x6c481a20, 0x1c17d: 0x6c330820, 0x1c17e: 0x6c354220, 0x1c17f: 0x6cefe220,
-	// Block 0x706, offset 0x1c180
-	0x1c180: 0x6d209220, 0x1c181: 0x6c254420, 0x1c182: 0x6d0b5620, 0x1c183: 0x6d3a1620,
-	0x1c184: 0x6c244020, 0x1c185: 0x6c27e620, 0x1c186: 0x6cd0b020, 0x1c187: 0x6d380220,
-	0x1c188: 0x6c1c4620, 0x1c189: 0x6d239420, 0x1c18a: 0x6c541c20, 0x1c18b: 0x6c3c5c20,
-	0x1c18c: 0x6c7e8420, 0x1c18d: 0x6d0fd220, 0x1c18e: 0x6c18de20, 0x1c18f: 0x6ce8c420,
-	0x1c190: 0x6d226e20, 0x1c191: 0x6c4c2820, 0x1c192: 0x6cf19e20, 0x1c193: 0x6c594420,
-	0x1c194: 0x6c7aa220, 0x1c195: 0x6c642820, 0x1c196: 0x6d19f620, 0x1c197: 0x6d182c20,
-	0x1c198: 0x6c911020, 0x1c199: 0x6ccaf820, 0x1c19a: 0x6c749a20, 0x1c19b: 0x6c1c5a20,
-	0x1c19c: 0x6cf6a620, 0x1c19d: 0x6c492220, 0x1c19e: 0x6d185c20, 0x1c19f: 0x6cf16020,
-	0x1c1a0: 0x6c608c20, 0x1c1a1: 0x6c205c20, 0x1c1a2: 0x6c049220, 0x1c1a3: 0x6c5bfe20,
-	0x1c1a4: 0x6c8e8420, 0x1c1a5: 0x6c149c20, 0x1c1a6: 0x6cd47220, 0x1c1a7: 0x6caaaa20,
-	0x1c1a8: 0x6c2cd820, 0x1c1a9: 0x6c26fc20, 0x1c1aa: 0x6c0d0e20, 0x1c1ab: 0x6cdfb820,
-	0x1c1ac: 0x6d2f4020, 0x1c1ad: 0x6c0c1c20, 0x1c1ae: 0x6cd0c620, 0x1c1af: 0x6c246220,
-	0x1c1b0: 0x6c95c020, 0x1c1b1: 0x6d18a420, 0x1c1b2: 0x6d403220, 0x1c1b3: 0x6c1d7c20,
-	0x1c1b4: 0x6d2f4220, 0x1c1b5: 0x6d2d4a20, 0x1c1b6: 0x6cda4220, 0x1c1b7: 0x6ccb5e20,
-	0x1c1b8: 0x6cc39c20, 0x1c1b9: 0x6c2e3c20, 0x1c1ba: 0x6c911a20, 0x1c1bb: 0x6c911c20,
-	0x1c1bc: 0x6ca15220, 0x1c1bd: 0x6cbda620, 0x1c1be: 0x6d1b0820, 0x1c1bf: 0x6d1d0a20,
-	// Block 0x707, offset 0x1c1c0
-	0x1c1c0: 0x6c59fa20, 0x1c1c1: 0x6c3f0820, 0x1c1c2: 0x6c8a2620, 0x1c1c3: 0x6c8fac20,
-	0x1c1c4: 0x6cbbfe20, 0x1c1c5: 0x6c8ea820, 0x1c1c6: 0x6c817a20, 0x1c1c7: 0x6cfba820,
-	0x1c1c8: 0x6c3ad620, 0x1c1c9: 0x6c280420, 0x1c1ca: 0x6d1b7420, 0x1c1cb: 0x6c51f020,
-	0x1c1cc: 0x6c005420, 0x1c1cd: 0x6c04a620, 0x1c1ce: 0x6cfbaa20, 0x1c1cf: 0x6c492a20,
-	0x1c1d0: 0x6c4b8c20, 0x1c1d1: 0x6ca9f620, 0x1c1d2: 0x6d242e20, 0x1c1d3: 0x6cef4a20,
-	0x1c1d4: 0x6d18e820, 0x1c1d5: 0x6d1dc620, 0x1c1d6: 0x6cb07820, 0x1c1d7: 0x6c82ee20,
-	0x1c1d8: 0x6c86a820, 0x1c1d9: 0x6cd57820, 0x1c1da: 0x6c28d820, 0x1c1db: 0x6c8c3c20,
-	0x1c1dc: 0x6c2d8c20, 0x1c1dd: 0x6c8c3e20, 0x1c1de: 0x6c7f6420, 0x1c1df: 0x6c0d1020,
-	0x1c1e0: 0x6c62ba20, 0x1c1e1: 0x6c1ae820, 0x1c1e2: 0x6d103820, 0x1c1e3: 0x6d086220,
-	0x1c1e4: 0x6c6a3820, 0x1c1e5: 0x6d330e20, 0x1c1e6: 0x6c99cc20, 0x1c1e7: 0x6c874420,
-	0x1c1e8: 0x6c5e4820, 0x1c1e9: 0x6c7f7820, 0x1c1ea: 0x6c631420, 0x1c1eb: 0x6c2cf220,
-	0x1c1ec: 0x6d086620, 0x1c1ed: 0x6d1d2e20, 0x1c1ee: 0x6d1b2820, 0x1c1ef: 0x6cc21420,
-	0x1c1f0: 0x6d1dea20, 0x1c1f1: 0x6cdfc820, 0x1c1f2: 0x6c2cfe20, 0x1c1f3: 0x6c95da20,
-	0x1c1f4: 0x6c947c20, 0x1c1f5: 0x6c948420, 0x1c1f6: 0x6c0e4620, 0x1c1f7: 0x6c0e5420,
-	0x1c1f8: 0x6c4ada20, 0x1c1f9: 0x6c037020, 0x1c1fa: 0x6c37e620, 0x1c1fb: 0x6c2a9c20,
-	0x1c1fc: 0x6c37ec20, 0x1c1fd: 0x6c040820, 0x1c1fe: 0x6c041620, 0x1c1ff: 0x6cbc8020,
-	// Block 0x708, offset 0x1c200
-	0x1c200: 0x6c5fd620, 0x1c201: 0x6d2a6820, 0x1c202: 0x6d2a6a20, 0x1c203: 0x6c994420,
-	0x1c204: 0x6c2a8c20, 0x1c205: 0x6cabb820, 0x1c206: 0x6c69f820, 0x1c207: 0x6c59ac20,
-	0x1c208: 0x6c4a3e20, 0x1c209: 0x6c229620, 0x1c20a: 0x6c8ccc20, 0x1c20b: 0x6c42b620,
-	0x1c20c: 0x6ca0f020, 0x1c20d: 0x6c5ffa20, 0x1c20e: 0x6c68e420, 0x1c20f: 0x6caf0620,
-	0x1c210: 0x6c42be20, 0x1c211: 0x6c004020, 0x1c212: 0x6c356620, 0x1c213: 0x6c503e20,
-	0x1c214: 0x6c4ec420, 0x1c215: 0x6c09a420, 0x1c216: 0x6ced2220, 0x1c217: 0x6c1dbc20,
-	0x1c218: 0x6cba5c20, 0x1c219: 0x6cf65220, 0x1c21a: 0x6c005020, 0x1c21b: 0x6cffb820,
-	0x1c21c: 0x6c505c20, 0x1c21d: 0x6c5a7820, 0x1c21e: 0x6c505e20, 0x1c21f: 0x6d2b0220,
-	0x1c220: 0x6c251020, 0x1c221: 0x6c506c20, 0x1c222: 0x6cffc220, 0x1c223: 0x6d132820,
-	0x1c224: 0x6cb33820, 0x1c225: 0x6c507220, 0x1c226: 0x6c695220, 0x1c227: 0x6c00f220,
-	0x1c228: 0x6d03ae20, 0x1c229: 0x6c5a8020, 0x1c22a: 0x6c872820, 0x1c22b: 0x6cb1a620,
-	0x1c22c: 0x6c51a220, 0x1c22d: 0x6c69e220, 0x1c22e: 0x6cafa820, 0x1c22f: 0x6c41ca20,
-	0x1c230: 0x6cad8820, 0x1c231: 0x6d391c20, 0x1c232: 0x6c756e20, 0x1c233: 0x6cc06620,
-	0x1c234: 0x6c259420, 0x1c235: 0x6cc3ce20, 0x1c236: 0x6d2bee20, 0x1c237: 0x6c47b420,
-	0x1c238: 0x6c757620, 0x1c239: 0x6c757820, 0x1c23a: 0x6d394420, 0x1c23b: 0x6d2bfe20,
-	0x1c23c: 0x6c47d820, 0x1c23d: 0x6d2f7c20, 0x1c23e: 0x6c31e020, 0x1c23f: 0x6c9f8a20,
-	// Block 0x709, offset 0x1c240
-	0x1c240: 0x6cb6da20, 0x1c241: 0x6d1c5620, 0x1c242: 0x6d20c620, 0x1c243: 0x6c069220,
-	0x1c244: 0x6d2f5e20, 0x1c245: 0x6d37a820, 0x1c246: 0x6cae3c20, 0x1c247: 0x6c50de20,
-	0x1c248: 0x6d1c5c20, 0x1c249: 0x6c50f420, 0x1c24a: 0x6d173820, 0x1c24b: 0x6c0e6020,
-	0x1c24c: 0x6cecfc20, 0x1c24d: 0x6c50f620, 0x1c24e: 0x6c021620, 0x1c24f: 0x6d2de220,
-	0x1c250: 0x6d0c8020, 0x1c251: 0x6c647e20, 0x1c252: 0x6c510e20, 0x1c253: 0x6d208820,
-	0x1c254: 0x6c7c3a20, 0x1c255: 0x6c394620, 0x1c256: 0x6c413220, 0x1c257: 0x6c2a1220,
-	0x1c258: 0x6cac5620, 0x1c259: 0x6c3f6620, 0x1c25a: 0x6cc06820, 0x1c25b: 0x6cd15e20,
-	0x1c25c: 0x6c2a1620, 0x1c25d: 0x6c926a20, 0x1c25e: 0x6d2df820, 0x1c25f: 0x6c9b2220,
-	0x1c260: 0x6c841c20, 0x1c261: 0x6c6ca220, 0x1c262: 0x6d071220, 0x1c263: 0x6c64ca20,
-	0x1c264: 0x6cac6a20, 0x1c265: 0x6c49a620, 0x1c266: 0x6c014e20, 0x1c267: 0x6c915c20,
-	0x1c268: 0x6d065e20, 0x1c269: 0x6d38b420, 0x1c26a: 0x6c299620, 0x1c26b: 0x6c015620,
-	0x1c26c: 0x6c47e420, 0x1c26d: 0x6c872a20, 0x1c26e: 0x6ca26420, 0x1c26f: 0x6c2f5020,
-	0x1c270: 0x6c421020, 0x1c271: 0x6d057420, 0x1c272: 0x6c983a20, 0x1c273: 0x6cee4e20,
-	0x1c274: 0x6d344020, 0x1c275: 0x6cb74a20, 0x1c276: 0x6d25e020, 0x1c277: 0x6ce49220,
-	0x1c278: 0x6cfd6420, 0x1c279: 0x6c33ca20, 0x1c27a: 0x6d02ba20, 0x1c27b: 0x6cf86620,
-	0x1c27c: 0x6cacae20, 0x1c27d: 0x6c3c2820, 0x1c27e: 0x6c33de20, 0x1c27f: 0x6c9f3c20,
-	// Block 0x70a, offset 0x1c280
-	0x1c280: 0x6c9fee20, 0x1c281: 0x6cd12c20, 0x1c282: 0x6cd34420, 0x1c283: 0x6d278c20,
-	0x1c284: 0x6c9e0e20, 0x1c285: 0x6cac3a20, 0x1c286: 0x6c39cc20, 0x1c287: 0x6c9e8a20,
-	0x1c288: 0x6c27c220, 0x1c289: 0x6c99e020, 0x1c28a: 0x6c995820, 0x1c28b: 0x6c770420,
-	0x1c28c: 0x6cfc9020, 0x1c28d: 0x6c79ba20, 0x1c28e: 0x6cd35620, 0x1c28f: 0x6d0f5420,
-	0x1c290: 0x6d32a220, 0x1c291: 0x6d119c20, 0x1c292: 0x6ccfce20, 0x1c293: 0x6c5dae20,
-	0x1c294: 0x6c26ec20, 0x1c295: 0x6d31cc20, 0x1c296: 0x6c7bee20, 0x1c297: 0x6c706e20,
-	0x1c298: 0x6cd09a20, 0x1c299: 0x6d14d020, 0x1c29a: 0x6cd12e20, 0x1c29b: 0x6c9a8a20,
-	0x1c29c: 0x6ca0f420, 0x1c29d: 0x6d3ad620, 0x1c29e: 0x6d313c20, 0x1c29f: 0x6d313e20,
-	0x1c2a0: 0x6c9dbc20, 0x1c2a1: 0x6cd35820, 0x1c2a2: 0x6d24d620, 0x1c2a3: 0x6c2e8a20,
-	0x1c2a4: 0x6ca69020, 0x1c2a5: 0x6d3f4620, 0x1c2a6: 0x6d3f4820, 0x1c2a7: 0x6c179620,
-	0x1c2a8: 0x6d2c7620, 0x1c2a9: 0x6d087e20, 0x1c2aa: 0x6c0dda20, 0x1c2ab: 0x6c9cea20,
-	0x1c2ac: 0x6c8f7e20, 0x1c2ad: 0x6cdbc220, 0x1c2ae: 0x6ce73e20, 0x1c2af: 0x6c9c3020,
-	0x1c2b0: 0x6c2f3620, 0x1c2b1: 0x6c2c4620, 0x1c2b2: 0x6ca54c20, 0x1c2b3: 0x6c9ff820,
-	0x1c2b4: 0x6d088c20, 0x1c2b5: 0x6c1aaa20, 0x1c2b6: 0x6c7bf420, 0x1c2b7: 0x6c735a20,
-	0x1c2b8: 0x6ca1ce20, 0x1c2b9: 0x6d323a20, 0x1c2ba: 0x6ce5d220, 0x1c2bb: 0x6d0fac20,
-	0x1c2bc: 0x6d0d6c20, 0x1c2bd: 0x6ca10620, 0x1c2be: 0x6d382620, 0x1c2bf: 0x6ca0f620,
-	// Block 0x70b, offset 0x1c2c0
-	0x1c2c0: 0x6d311220, 0x1c2c1: 0x6d32b620, 0x1c2c2: 0x6c9a0220, 0x1c2c3: 0x6cdd1e20,
-	0x1c2c4: 0x6cceda20, 0x1c2c5: 0x6c4ec820, 0x1c2c6: 0x6c592820, 0x1c2c7: 0x6c2c5c20,
-	0x1c2c8: 0x6c1a7620, 0x1c2c9: 0x6c25e020, 0x1c2ca: 0x6c736420, 0x1c2cb: 0x6c356820,
-	0x1c2cc: 0x6c97bc20, 0x1c2cd: 0x6cfcc420, 0x1c2ce: 0x6cf61e20, 0x1c2cf: 0x6c7dd420,
-	0x1c2d0: 0x6c7f4820, 0x1c2d1: 0x6c659820, 0x1c2d2: 0x6ccd4e20, 0x1c2d3: 0x6ce50420,
-	0x1c2d4: 0x6c4bfc20, 0x1c2d5: 0x6ced2c20, 0x1c2d6: 0x6c839820, 0x1c2d7: 0x6cd39c20,
-	0x1c2d8: 0x6cbf4020, 0x1c2d9: 0x6c8b1820, 0x1c2da: 0x6d0b3020, 0x1c2db: 0x6c6ec820,
-	0x1c2dc: 0x6d32d420, 0x1c2dd: 0x6c83ea20, 0x1c2de: 0x6c7f4a20, 0x1c2df: 0x6cdc4c20,
-	0x1c2e0: 0x6c737420, 0x1c2e1: 0x6cd72820, 0x1c2e2: 0x6cdbca20, 0x1c2e3: 0x6c317420,
-	0x1c2e4: 0x6c09d420, 0x1c2e5: 0x6cb0a620, 0x1c2e6: 0x6ca29c20, 0x1c2e7: 0x6c5cd420,
-	0x1c2e8: 0x6ca6ae20, 0x1c2e9: 0x6c926c20, 0x1c2ea: 0x6d17f220, 0x1c2eb: 0x6c6aec20,
-	0x1c2ec: 0x6c113620, 0x1c2ed: 0x6d38ea20, 0x1c2ee: 0x6d217220, 0x1c2ef: 0x6c5cd620,
-	0x1c2f0: 0x6c96c620, 0x1c2f1: 0x6cfa4420, 0x1c2f2: 0x6d040420, 0x1c2f3: 0x6c5ada20,
-	0x1c2f4: 0x6c4c0220, 0x1c2f5: 0x6d290a20, 0x1c2f6: 0x6c218620, 0x1c2f7: 0x6c64ba20,
-	0x1c2f8: 0x6c9a9e20, 0x1c2f9: 0x6c322620, 0x1c2fa: 0x6c541e20, 0x1c2fb: 0x6d07b420,
-	0x1c2fc: 0x6ce53c20, 0x1c2fd: 0x6c7c9220, 0x1c2fe: 0x6c42ce20, 0x1c2ff: 0x6cc8da20,
-	// Block 0x70c, offset 0x1c300
-	0x1c300: 0x6c99a020, 0x1c301: 0x6d071420, 0x1c302: 0x6c381e20, 0x1c303: 0x6cf30820,
-	0x1c304: 0x6c9e7820, 0x1c305: 0x6c1e2e20, 0x1c306: 0x6c7d0620, 0x1c307: 0x6c9c3220,
-	0x1c308: 0x6cf25e20, 0x1c309: 0x6c7a0020, 0x1c30a: 0x6c298420, 0x1c30b: 0x6c188220,
-	0x1c30c: 0x6c782420, 0x1c30d: 0x6cda2420, 0x1c30e: 0x6cf97620, 0x1c30f: 0x6cbf5020,
-	0x1c310: 0x6ca15420, 0x1c311: 0x6ca01620, 0x1c312: 0x6c977220, 0x1c313: 0x6cd72c20,
-	0x1c314: 0x6d2b0420, 0x1c315: 0x6d2f4420, 0x1c316: 0x6d18a620, 0x1c317: 0x6c2dde20,
-	0x1c318: 0x6c79c420, 0x1c319: 0x6ca15620, 0x1c31a: 0x6cd75c20, 0x1c31b: 0x6c235620,
-	0x1c31c: 0x6c907820, 0x1c31d: 0x6c1ad020, 0x1c31e: 0x6c977820, 0x1c31f: 0x6cb19a20,
-	0x1c320: 0x6c199420, 0x1c321: 0x6c4b1a20, 0x1c322: 0x6c9b3a20, 0x1c323: 0x6c596c20,
-	0x1c324: 0x6cc8f220, 0x1c325: 0x6cb1d420, 0x1c326: 0x6cf6f020, 0x1c327: 0x6cbc0220,
-	0x1c328: 0x6cb45a20, 0x1c329: 0x6d3a8420, 0x1c32a: 0x6c2aea20, 0x1c32b: 0x6cd07e20,
-	0x1c32c: 0x6cd76020, 0x1c32d: 0x6c8a7c20, 0x1c32e: 0x6c185020, 0x1c32f: 0x6cfbac20,
-	0x1c330: 0x6c771220, 0x1c331: 0x6d132a20, 0x1c332: 0x6d074820, 0x1c333: 0x6ce79220,
-	0x1c334: 0x6ca1ea20, 0x1c335: 0x6c8be620, 0x1c336: 0x6c4b7e20, 0x1c337: 0x6c66e020,
-	0x1c338: 0x6d136420, 0x1c339: 0x6c00f420, 0x1c33a: 0x6c5c6a20, 0x1c33b: 0x6d2dac20,
-	0x1c33c: 0x6c65f220, 0x1c33d: 0x6c47e620, 0x1c33e: 0x6d2fea20, 0x1c33f: 0x6cc1e420,
-	// Block 0x70d, offset 0x1c340
-	0x1c340: 0x6c9a3420, 0x1c341: 0x6c1e3620, 0x1c342: 0x6ccb0620, 0x1c343: 0x6ca94c20,
-	0x1c344: 0x6d09c020, 0x1c345: 0x6d123e20, 0x1c346: 0x6c5e1820, 0x1c347: 0x6c9b7020,
-	0x1c348: 0x6c9de620, 0x1c349: 0x6cb22020, 0x1c34a: 0x6c9de820, 0x1c34b: 0x6c870220,
-	0x1c34c: 0x6c7c1420, 0x1c34d: 0x6c750020, 0x1c34e: 0x6d07e220, 0x1c34f: 0x6c9dee20,
-	0x1c350: 0x6c5e4a20, 0x1c351: 0x6c919220, 0x1c352: 0x6c9b8e20, 0x1c353: 0x6c8fe420,
-	0x1c354: 0x6c49bc20, 0x1c355: 0x6c97d620, 0x1c356: 0x6cf82e20, 0x1c357: 0x6c1f9020,
-	0x1c358: 0x6ce19620, 0x1c359: 0x6c771c20, 0x1c35a: 0x6d3a9620, 0x1c35b: 0x6c98c220,
-	0x1c35c: 0x6c6c3220, 0x1c35d: 0x6c8ba620, 0x1c35e: 0x6d234a20, 0x1c35f: 0x6cd78420,
-	0x1c360: 0x6d2ad220, 0x1c361: 0x6c752c20, 0x1c362: 0x6cd2a820, 0x1c363: 0x6d15c020,
-	0x1c364: 0x6cd04820, 0x1c365: 0x6d339c20, 0x1c366: 0x6c53f020, 0x1c367: 0x6cd04e20,
-	0x1c368: 0x6d1ce020, 0x1c369: 0x6c72d420, 0x1c36a: 0x6d387820, 0x1c36b: 0x6c68e820,
-	0x1c36c: 0x6c25e220, 0x1c36d: 0x6c32ae20, 0x1c36e: 0x6c006820, 0x1c36f: 0x6c695020,
-	0x1c370: 0x6d2b9820, 0x1c371: 0x6d265c20, 0x1c372: 0x6c03ce20, 0x1c373: 0x6cd22c20,
-	0x1c374: 0x6c2f9420, 0x1c375: 0x6cb73a20, 0x1c376: 0x6c5e8620, 0x1c377: 0x6d3eee20,
-	0x1c378: 0x6c417c20, 0x1c379: 0x6cf4ba20, 0x1c37a: 0x6d302020, 0x1c37b: 0x6c7a2a20,
-	0x1c37c: 0x6c426420, 0x1c37d: 0x6cf84c20, 0x1c37e: 0x6c388820, 0x1c37f: 0x6c7be620,
-	// Block 0x70e, offset 0x1c380
-	0x1c380: 0x6c295820, 0x1c381: 0x6c969220, 0x1c382: 0x6ccbd220, 0x1c383: 0x6c27c420,
-	0x1c384: 0x6c740220, 0x1c385: 0x6c85ac20, 0x1c386: 0x6c3d4e20, 0x1c387: 0x6c9f3e20,
-	0x1c388: 0x6c35b020, 0x1c389: 0x6c5da620, 0x1c38a: 0x6c772820, 0x1c38b: 0x6d350620,
-	0x1c38c: 0x6cb75c20, 0x1c38d: 0x6c76c420, 0x1c38e: 0x6c6bd020, 0x1c38f: 0x6c0d2a20,
-	0x1c390: 0x6c35e020, 0x1c391: 0x6d0b8820, 0x1c392: 0x6caf4e20, 0x1c393: 0x6d302420,
-	0x1c394: 0x6d0c7820, 0x1c395: 0x6cdc2a20, 0x1c396: 0x6d3b7820, 0x1c397: 0x6c17d220,
-	0x1c398: 0x6c33e020, 0x1c399: 0x6cac3c20, 0x1c39a: 0x6d0e4a20, 0x1c39b: 0x6c6d7e20,
-	0x1c39c: 0x6c3c2a20, 0x1c39d: 0x6c381020, 0x1c39e: 0x6ca0f820, 0x1c39f: 0x6d2c7820,
-	0x1c3a0: 0x6c707020, 0x1c3a1: 0x6d22f620, 0x1c3a2: 0x6c77f020, 0x1c3a3: 0x6ceb0a20,
-	0x1c3a4: 0x6ceb0c20, 0x1c3a5: 0x6c2bec20, 0x1c3a6: 0x6d2d3c20, 0x1c3a7: 0x6d314220,
-	0x1c3a8: 0x6c35fc20, 0x1c3a9: 0x6c3e3820, 0x1c3aa: 0x6ca23e20, 0x1c3ab: 0x6d3ad820,
-	0x1c3ac: 0x6c7e5c20, 0x1c3ad: 0x6c0aee20, 0x1c3ae: 0x6caa5620, 0x1c3af: 0x6cb25220,
-	0x1c3b0: 0x6cae6020, 0x1c3b1: 0x6c8cce20, 0x1c3b2: 0x6cad8a20, 0x1c3b3: 0x6c821e20,
-	0x1c3b4: 0x6cb37c20, 0x1c3b5: 0x6c0e6220, 0x1c3b6: 0x6cb37e20, 0x1c3b7: 0x6ccfd020,
-	0x1c3b8: 0x6d28b020, 0x1c3b9: 0x6c009820, 0x1c3ba: 0x6c85d620, 0x1c3bb: 0x6c8f8020,
-	0x1c3bc: 0x6ce73a20, 0x1c3bd: 0x6d1e8420, 0x1c3be: 0x6c85d820, 0x1c3bf: 0x6c7c2a20,
-	// Block 0x70f, offset 0x1c3c0
-	0x1c3c0: 0x6c1ed820, 0x1c3c1: 0x6c793620, 0x1c3c2: 0x6cc2e420, 0x1c3c3: 0x6d399c20,
-	0x1c3c4: 0x6c7b9c20, 0x1c3c5: 0x6c4a5a20, 0x1c3c6: 0x6c361420, 0x1c3c7: 0x6ca4a620,
-	0x1c3c8: 0x6cb86420, 0x1c3c9: 0x6c924420, 0x1c3ca: 0x6cefb220, 0x1c3cb: 0x6c009a20,
-	0x1c3cc: 0x6c448420, 0x1c3cd: 0x6cfcb620, 0x1c3ce: 0x6d03e220, 0x1c3cf: 0x6d0c8a20,
-	0x1c3d0: 0x6c307420, 0x1c3d1: 0x6cae6c20, 0x1c3d2: 0x6cf5fc20, 0x1c3d3: 0x6c81f220,
-	0x1c3d4: 0x6c533c20, 0x1c3d5: 0x6cd78020, 0x1c3d6: 0x6cf9b020, 0x1c3d7: 0x6cbb7020,
-	0x1c3d8: 0x6cbeea20, 0x1c3d9: 0x6cef0220, 0x1c3da: 0x6cbbdc20, 0x1c3db: 0x6d176820,
-	0x1c3dc: 0x6c793e20, 0x1c3dd: 0x6cfec620, 0x1c3de: 0x6cc3c220, 0x1c3df: 0x6c162a20,
-	0x1c3e0: 0x6c80c820, 0x1c3e1: 0x6c52ac20, 0x1c3e2: 0x6d213020, 0x1c3e3: 0x6cfec820,
-	0x1c3e4: 0x6cf9c620, 0x1c3e5: 0x6c988e20, 0x1c3e6: 0x6c960220, 0x1c3e7: 0x6d1e3c20,
-	0x1c3e8: 0x6c17dc20, 0x1c3e9: 0x6c182220, 0x1c3ea: 0x6cf2f620, 0x1c3eb: 0x6c8e5c20,
-	0x1c3ec: 0x6d1d3c20, 0x1c3ed: 0x6c985a20, 0x1c3ee: 0x6cc3c420, 0x1c3ef: 0x6d0e7820,
-	0x1c3f0: 0x6ccbf620, 0x1c3f1: 0x6c7dac20, 0x1c3f2: 0x6d234c20, 0x1c3f3: 0x6c1c2420,
-	0x1c3f4: 0x6c57de20, 0x1c3f5: 0x6c91be20, 0x1c3f6: 0x6c190420, 0x1c3f7: 0x6c659a20,
-	0x1c3f8: 0x6caaa820, 0x1c3f9: 0x6cd92620, 0x1c3fa: 0x6d3d6e20, 0x1c3fb: 0x6c794620,
-	0x1c3fc: 0x6caeaa20, 0x1c3fd: 0x6d0c1420, 0x1c3fe: 0x6d3c9220, 0x1c3ff: 0x6c797e20,
-	// Block 0x710, offset 0x1c400
-	0x1c400: 0x6c19ec20, 0x1c401: 0x6cb5fc20, 0x1c402: 0x6d402220, 0x1c403: 0x6cbecc20,
-	0x1c404: 0x6c8bbc20, 0x1c405: 0x6c757420, 0x1c406: 0x6c0e7e20, 0x1c407: 0x6c2fac20,
-	0x1c408: 0x6c9f6420, 0x1c409: 0x6c2dce20, 0x1c40a: 0x6c64bc20, 0x1c40b: 0x6c51d020,
-	0x1c40c: 0x6c926e20, 0x1c40d: 0x6c00ac20, 0x1c40e: 0x6cdc4e20, 0x1c40f: 0x6cc3d220,
-	0x1c410: 0x6c837c20, 0x1c411: 0x6c06b020, 0x1c412: 0x6d1a7420, 0x1c413: 0x6c334c20,
-	0x1c414: 0x6cf45220, 0x1c415: 0x6cb5fe20, 0x1c416: 0x6c951820, 0x1c417: 0x6ced2e20,
-	0x1c418: 0x6c2d2020, 0x1c419: 0x6ca4b220, 0x1c41a: 0x6c073420, 0x1c41b: 0x6cb7a420,
-	0x1c41c: 0x6c190620, 0x1c41d: 0x6cc87020, 0x1c41e: 0x6d0cb620, 0x1c41f: 0x6c2ed220,
-	0x1c420: 0x6c2fb020, 0x1c421: 0x6c31a820, 0x1c422: 0x6ceb2e20, 0x1c423: 0x6c6b0c20,
-	0x1c424: 0x6d1bc620, 0x1c425: 0x6c0b4420, 0x1c426: 0x6c78c620, 0x1c427: 0x6c0a0220,
-	0x1c428: 0x6cf0b020, 0x1c429: 0x6cd79220, 0x1c42a: 0x6d318220, 0x1c42b: 0x6c32d420,
-	0x1c42c: 0x6cf9de20, 0x1c42d: 0x6c297a20, 0x1c42e: 0x6ce35420, 0x1c42f: 0x6ca50c20,
-	0x1c430: 0x6caf1420, 0x1c431: 0x6c65c420, 0x1c432: 0x6c2c8220, 0x1c433: 0x6ce0a220,
-	0x1c434: 0x6c13f620, 0x1c435: 0x6ce54220, 0x1c436: 0x6cb7b420, 0x1c437: 0x6c341420,
-	0x1c438: 0x6c3c5e20, 0x1c439: 0x6d08a420, 0x1c43a: 0x6cc3f020, 0x1c43b: 0x6cc3f220,
-	0x1c43c: 0x6c96a020, 0x1c43d: 0x6c45a620, 0x1c43e: 0x6ca73820, 0x1c43f: 0x6cdb0820,
-	// Block 0x711, offset 0x1c440
-	0x1c440: 0x6c357820, 0x1c441: 0x6c225420, 0x1c442: 0x6c8e8820, 0x1c443: 0x6cd81a20,
-	0x1c444: 0x6ce12620, 0x1c445: 0x6c058820, 0x1c446: 0x6c574620, 0x1c447: 0x6caf8620,
-	0x1c448: 0x6ceff420, 0x1c449: 0x6cca8820, 0x1c44a: 0x6c82d220, 0x1c44b: 0x6c25c420,
-	0x1c44c: 0x6ce4ba20, 0x1c44d: 0x6cf9e620, 0x1c44e: 0x6cf6aa20, 0x1c44f: 0x6c883e20,
-	0x1c450: 0x6cac7020, 0x1c451: 0x6cef3020, 0x1c452: 0x6d27fc20, 0x1c453: 0x6c330e20,
-	0x1c454: 0x6d307e20, 0x1c455: 0x6c782620, 0x1c456: 0x6c7e6020, 0x1c457: 0x6d3b8c20,
-	0x1c458: 0x6cbed820, 0x1c459: 0x6c4be420, 0x1c45a: 0x6d3b9220, 0x1c45b: 0x6c152620,
-	0x1c45c: 0x6cb7da20, 0x1c45d: 0x6c026c20, 0x1c45e: 0x6cae8620, 0x1c45f: 0x6c8f4020,
-	0x1c460: 0x6c91de20, 0x1c461: 0x6c771420, 0x1c462: 0x6c209a20, 0x1c463: 0x6c190e20,
-	0x1c464: 0x6d1afe20, 0x1c465: 0x6c82d820, 0x1c466: 0x6c0c1e20, 0x1c467: 0x6cb7dc20,
-	0x1c468: 0x6ca07c20, 0x1c469: 0x6cb7de20, 0x1c46a: 0x6c24e820, 0x1c46b: 0x6d3fc220,
-	0x1c46c: 0x6cbeda20, 0x1c46d: 0x6c21da20, 0x1c46e: 0x6c952a20, 0x1c46f: 0x6c5f5420,
-	0x1c470: 0x6ccdbe20, 0x1c471: 0x6c817c20, 0x1c472: 0x6cc1c020, 0x1c473: 0x6d2b9a20,
-	0x1c474: 0x6c2aec20, 0x1c475: 0x6c66e220, 0x1c476: 0x6cf8f220, 0x1c477: 0x6c8be820,
-	0x1c478: 0x6c2fbe20, 0x1c479: 0x6ce01e20, 0x1c47a: 0x6c59fc20, 0x1c47b: 0x6cac7620,
-	0x1c47c: 0x6d28ce20, 0x1c47d: 0x6cbbb820, 0x1c47e: 0x6c2b4820, 0x1c47f: 0x6c86aa20,
-	// Block 0x712, offset 0x1c480
-	0x1c480: 0x6c673e20, 0x1c481: 0x6c688220, 0x1c482: 0x6cf94a20, 0x1c483: 0x6d2f0e20,
-	0x1c484: 0x6cbc0420, 0x1c485: 0x6c33b620, 0x1c486: 0x6c65f420, 0x1c487: 0x6d241220,
-	0x1c488: 0x6d3cb420, 0x1c489: 0x6c518420, 0x1c48a: 0x6c78e020, 0x1c48b: 0x6d2b1420,
-	0x1c48c: 0x6c826a20, 0x1c48d: 0x6c787220, 0x1c48e: 0x6c1ef620, 0x1c48f: 0x6d137020,
-	0x1c490: 0x6cc40c20, 0x1c491: 0x6c299a20, 0x1c492: 0x6d161e20, 0x1c493: 0x6c678e20,
-	0x1c494: 0x6caf9e20, 0x1c495: 0x6cafa020, 0x1c496: 0x6d243020, 0x1c497: 0x6cb1f420,
-	0x1c498: 0x6c36d020, 0x1c499: 0x6c00fe20, 0x1c49a: 0x6c783e20, 0x1c49b: 0x6c652220,
-	0x1c49c: 0x6d243220, 0x1c49d: 0x6cc88e20, 0x1c49e: 0x6c9b7220, 0x1c49f: 0x6cada020,
-	0x1c4a0: 0x6c227820, 0x1c4a1: 0x6c0f9020, 0x1c4a2: 0x6d107c20, 0x1c4a3: 0x6c96e420,
-	0x1c4a4: 0x6c10e620, 0x1c4a5: 0x6cfbc820, 0x1c4a6: 0x6c7c1620, 0x1c4a7: 0x6c828020,
-	0x1c4a8: 0x6c82fe20, 0x1c4a9: 0x6d375420, 0x1c4aa: 0x6c870420, 0x1c4ab: 0x6c872e20,
-	0x1c4ac: 0x6c38e420, 0x1c4ad: 0x6cc41c20, 0x1c4ae: 0x6cada620, 0x1c4af: 0x6d1c3020,
-	0x1c4b0: 0x6c874a20, 0x1c4b1: 0x6c8fe620, 0x1c4b2: 0x6c8fe820, 0x1c4b3: 0x6ca19620,
-	0x1c4b4: 0x6c0fc220, 0x1c4b5: 0x6cd6b420, 0x1c4b6: 0x6c49be20, 0x1c4b7: 0x6c800020,
-	0x1c4b8: 0x6d298620, 0x1c4b9: 0x6d0d1820, 0x1c4ba: 0x6cd2f420, 0x1c4bb: 0x6cd2e620,
-	0x1c4bc: 0x6c84f420, 0x1c4bd: 0x6cc61c20, 0x1c4be: 0x6ccf3620, 0x1c4bf: 0x6d268020,
-	// Block 0x713, offset 0x1c4c0
-	0x1c4c0: 0x6cd88420, 0x1c4c1: 0x6cb56820, 0x1c4c2: 0x6cdde220, 0x1c4c3: 0x6c96b420,
-	0x1c4c4: 0x6d016420, 0x1c4c5: 0x6d109420, 0x1c4c6: 0x6cfa8020, 0x1c4c7: 0x6cb58820,
-	0x1c4c8: 0x6cb58a20, 0x1c4c9: 0x6d34f820, 0x1c4ca: 0x6c07d820, 0x1c4cb: 0x6c333a20,
-	0x1c4cc: 0x6d381820, 0x1c4cd: 0x6cc5d620, 0x1c4ce: 0x6d13cc20, 0x1c4cf: 0x6cd25420,
-	0x1c4d0: 0x6d203020, 0x1c4d1: 0x6d35a820, 0x1c4d2: 0x6ce57a20, 0x1c4d3: 0x6c3e1e20,
-	0x1c4d4: 0x6c3fc420, 0x1c4d5: 0x6c9d2e20, 0x1c4d6: 0x6d411420, 0x1c4d7: 0x6d33ac20,
-	0x1c4d8: 0x6cdb9620, 0x1c4d9: 0x6c9a8420, 0x1c4da: 0x6d428620, 0x1c4db: 0x6cc0ec20,
-	0x1c4dc: 0x6c567220, 0x1c4dd: 0x6d3ac620, 0x1c4de: 0x6cd03a20, 0x1c4df: 0x6cdc3020,
-	0x1c4e0: 0x6c223020, 0x1c4e1: 0x6c147a20, 0x1c4e2: 0x6c9c3e20, 0x1c4e3: 0x6c939020,
-	0x1c4e4: 0x6d223e20, 0x1c4e5: 0x6cfdbc20, 0x1c4e6: 0x6cf3c620, 0x1c4e7: 0x6ce55620,
-	0x1c4e8: 0x6cb1ae20, 0x1c4e9: 0x6d3ada20, 0x1c4ea: 0x6c4aec20, 0x1c4eb: 0x6cf9ae20,
-	0x1c4ec: 0x6d33c820, 0x1c4ed: 0x6c61f420, 0x1c4ee: 0x6c434620, 0x1c4ef: 0x6d314420,
-	0x1c4f0: 0x6c434820, 0x1c4f1: 0x6cd71e20, 0x1c4f2: 0x6c6d0620, 0x1c4f3: 0x6cd0a020,
-	0x1c4f4: 0x6c40f620, 0x1c4f5: 0x6c7daa20, 0x1c4f6: 0x6c2c4820, 0x1c4f7: 0x6c29d820,
-	0x1c4f8: 0x6c5dc620, 0x1c4f9: 0x6ce22820, 0x1c4fa: 0x6cb5ee20, 0x1c4fb: 0x6c481620,
-	0x1c4fc: 0x6c498a20, 0x1c4fd: 0x6d41b420, 0x1c4fe: 0x6c8d0820, 0x1c4ff: 0x6c925a20,
-	// Block 0x714, offset 0x1c500
-	0x1c500: 0x6c0de820, 0x1c501: 0x6c6d1a20, 0x1c502: 0x6c29da20, 0x1c503: 0x6d346620,
-	0x1c504: 0x6c925820, 0x1c505: 0x6c14f820, 0x1c506: 0x6c06a620, 0x1c507: 0x6d30d820,
-	0x1c508: 0x6c5aca20, 0x1c509: 0x6d1fd620, 0x1c50a: 0x6cf8a220, 0x1c50b: 0x6d19ee20,
-	0x1c50c: 0x6d3e5420, 0x1c50d: 0x6c5dd420, 0x1c50e: 0x6d316e20, 0x1c50f: 0x6c3e9c20,
-	0x1c510: 0x6d262420, 0x1c511: 0x6cf3d020, 0x1c512: 0x6cfc1820, 0x1c513: 0x6d0fca20,
-	0x1c514: 0x6d33f420, 0x1c515: 0x6d13fc20, 0x1c516: 0x6c9a1220, 0x1c517: 0x6cd7f820,
-	0x1c518: 0x6c2c6c20, 0x1c519: 0x6c077a20, 0x1c51a: 0x6d3d8220, 0x1c51b: 0x6d318420,
-	0x1c51c: 0x6d1e5620, 0x1c51d: 0x6c606c20, 0x1c51e: 0x6c435220, 0x1c51f: 0x6ce11a20,
-	0x1c520: 0x6cd80420, 0x1c521: 0x6c96d020, 0x1c522: 0x6cde7820, 0x1c523: 0x6c40b620,
-	0x1c524: 0x6d07bc20, 0x1c525: 0x6cb63c20, 0x1c526: 0x6d241420, 0x1c527: 0x6cf81220,
-	0x1c528: 0x6c5f3a20, 0x1c529: 0x6cd8e020, 0x1c52a: 0x6c152820, 0x1c52b: 0x6c28b420,
-	0x1c52c: 0x6c4b8020, 0x1c52d: 0x6cdc7820, 0x1c52e: 0x6c853820, 0x1c52f: 0x6ca9d020,
-	0x1c530: 0x6c9c8a20, 0x1c531: 0x6c29f820, 0x1c532: 0x6c86d620, 0x1c533: 0x6cc4ee20,
-	0x1c534: 0x6d271620, 0x1c535: 0x6ce3b420, 0x1c536: 0x6d29c220, 0x1c537: 0x6c836420,
-	0x1c538: 0x6cc74020, 0x1c539: 0x6d222e20, 0x1c53a: 0x6d20dc20, 0x1c53b: 0x6c83ae20,
-	0x1c53c: 0x6d019820, 0x1c53d: 0x6cbd7620, 0x1c53e: 0x6c50b220, 0x1c53f: 0x6ce83c20,
-	// Block 0x715, offset 0x1c540
-	0x1c540: 0x6d052c20, 0x1c541: 0x6cd7c620, 0x1c542: 0x6cc56c20, 0x1c543: 0x6ce83e20,
-	0x1c544: 0x6d3ef020, 0x1c545: 0x6c13c820, 0x1c546: 0x6c41cc20, 0x1c547: 0x6d16cc20,
-	0x1c548: 0x6cfa8220, 0x1c549: 0x6c0dc620, 0x1c54a: 0x6ca6f620, 0x1c54b: 0x6cbfa620,
-	0x1c54c: 0x6cbfa820, 0x1c54d: 0x6d37e820, 0x1c54e: 0x6c3bd420, 0x1c54f: 0x6c502220,
-	0x1c550: 0x6d279020, 0x1c551: 0x6c77e620, 0x1c552: 0x6c9e8c20, 0x1c553: 0x6d33ae20,
-	0x1c554: 0x6c6d9820, 0x1c555: 0x6c08c820, 0x1c556: 0x6d33b020, 0x1c557: 0x6d22e620,
-	0x1c558: 0x6c9d3420, 0x1c559: 0x6c7a8a20, 0x1c55a: 0x6c04f420, 0x1c55b: 0x6caf5620,
-	0x1c55c: 0x6ca5ce20, 0x1c55d: 0x6c85da20, 0x1c55e: 0x6d1f1a20, 0x1c55f: 0x6d409a20,
-	0x1c560: 0x6caf5820, 0x1c561: 0x6c0edc20, 0x1c562: 0x6c8cd020, 0x1c563: 0x6ca0fc20,
-	0x1c564: 0x6c1a8020, 0x1c565: 0x6ca6fe20, 0x1c566: 0x6cbd6620, 0x1c567: 0x6d0f5620,
-	0x1c568: 0x6d423220, 0x1c569: 0x6d35c420, 0x1c56a: 0x6d33ca20, 0x1c56b: 0x6cd52420,
-	0x1c56c: 0x6c721a20, 0x1c56d: 0x6d3ef620, 0x1c56e: 0x6c5d7220, 0x1c56f: 0x6c5ea820,
-	0x1c570: 0x6c196220, 0x1c571: 0x6ce74220, 0x1c572: 0x6d35f820, 0x1c573: 0x6c5d7620,
-	0x1c574: 0x6c511220, 0x1c575: 0x6d19ce20, 0x1c576: 0x6d3e2620, 0x1c577: 0x6d35fa20,
-	0x1c578: 0x6c6a0220, 0x1c579: 0x6cc59420, 0x1c57a: 0x6c325020, 0x1c57b: 0x6d14e820,
-	0x1c57c: 0x6d399e20, 0x1c57d: 0x6c5bb820, 0x1c57e: 0x6ca9ba20, 0x1c57f: 0x6c3ff420,
-	// Block 0x716, offset 0x1c580
-	0x1c580: 0x6cf62020, 0x1c581: 0x6c77aa20, 0x1c582: 0x6c80ca20, 0x1c583: 0x6c3d7420,
-	0x1c584: 0x6d0a9020, 0x1c585: 0x6cd72020, 0x1c586: 0x6c939420, 0x1c587: 0x6c7dae20,
-	0x1c588: 0x6c41da20, 0x1c589: 0x6c6db820, 0x1c58a: 0x6ce32e20, 0x1c58b: 0x6c1a0c20,
-	0x1c58c: 0x6ce8b420, 0x1c58d: 0x6cce7020, 0x1c58e: 0x6cd72220, 0x1c58f: 0x6d0bc020,
-	0x1c590: 0x6c951a20, 0x1c591: 0x6c927020, 0x1c592: 0x6c481c20, 0x1c593: 0x6d424420,
-	0x1c594: 0x6cc59a20, 0x1c595: 0x6d3ce620, 0x1c596: 0x6c057c20, 0x1c597: 0x6c044a20,
-	0x1c598: 0x6c5eec20, 0x1c599: 0x6d33f620, 0x1c59a: 0x6d366020, 0x1c59b: 0x6c7db420,
-	0x1c59c: 0x6c837e20, 0x1c59d: 0x6caeac20, 0x1c59e: 0x6c780a20, 0x1c59f: 0x6c0dea20,
-	0x1c5a0: 0x6c1dbe20, 0x1c5a1: 0x6d41b620, 0x1c5a2: 0x6d237420, 0x1c5a3: 0x6cda5220,
-	0x1c5a4: 0x6c94ae20, 0x1c5a5: 0x6cfd8020, 0x1c5a6: 0x6d140620, 0x1c5a7: 0x6cf8b620,
-	0x1c5a8: 0x6c0b4620, 0x1c5a9: 0x6c624820, 0x1c5aa: 0x6c3ec420, 0x1c5ab: 0x6cb0b020,
-	0x1c5ac: 0x6cab0820, 0x1c5ad: 0x6c6a2c20, 0x1c5ae: 0x6d380420, 0x1c5af: 0x6d3fa820,
-	0x1c5b0: 0x6d064e20, 0x1c5b1: 0x6c197e20, 0x1c5b2: 0x6c2a2220, 0x1c5b3: 0x6cf1e820,
-	0x1c5b4: 0x6cfb8220, 0x1c5b5: 0x6d3e6820, 0x1c5b6: 0x6d23c820, 0x1c5b7: 0x6c626420,
-	0x1c5b8: 0x6d072e20, 0x1c5b9: 0x6d31f420, 0x1c5ba: 0x6d36b820, 0x1c5bb: 0x6c2a2a20,
-	0x1c5bc: 0x6c645420, 0x1c5bd: 0x6c5f1820, 0x1c5be: 0x6c431820, 0x1c5bf: 0x6c431a20,
-	// Block 0x717, offset 0x1c5c0
-	0x1c5c0: 0x6c47c420, 0x1c5c1: 0x6cc6a020, 0x1c5c2: 0x6cdc6020, 0x1c5c3: 0x6cc73c20,
-	0x1c5c4: 0x6c627a20, 0x1c5c5: 0x6c775220, 0x1c5c6: 0x6ca2ac20, 0x1c5c7: 0x6c11dc20,
-	0x1c5c8: 0x6c9a2620, 0x1c5c9: 0x6d370c20, 0x1c5ca: 0x6c624a20, 0x1c5cb: 0x6c92d620,
-	0x1c5cc: 0x6cda5a20, 0x1c5cd: 0x6c5f3c20, 0x1c5ce: 0x6d1d0c20, 0x1c5cf: 0x6cf1f020,
-	0x1c5d0: 0x6cbfc420, 0x1c5d1: 0x6ccb6020, 0x1c5d2: 0x6c51e620, 0x1c5d3: 0x6d18aa20,
-	0x1c5d4: 0x6c59fe20, 0x1c5d5: 0x6cbce620, 0x1c5d6: 0x6c615620, 0x1c5d7: 0x6cdc8820,
-	0x1c5d8: 0x6cff2020, 0x1c5d9: 0x6cb45e20, 0x1c5da: 0x6c688420, 0x1c5db: 0x6d3d0c20,
-	0x1c5dc: 0x6d380c20, 0x1c5dd: 0x6d41e620, 0x1c5de: 0x6c93ba20, 0x1c5df: 0x6cdc8c20,
-	0x1c5e0: 0x6ca9d420, 0x1c5e1: 0x6ccb7820, 0x1c5e2: 0x6c5c6c20, 0x1c5e3: 0x6cc4de20,
-	0x1c5e4: 0x6cab1e20, 0x1c5e5: 0x6d243420, 0x1c5e6: 0x6cb1f820, 0x1c5e7: 0x6c62bc20,
-	0x1c5e8: 0x6ce9ce20, 0x1c5e9: 0x6cf1f420, 0x1c5ea: 0x6c199e20, 0x1c5eb: 0x6c5e1a20,
-	0x1c5ec: 0x6c7c1820, 0x1c5ed: 0x6c93c020, 0x1c5ee: 0x6c0c4c20, 0x1c5ef: 0x6ccba820,
-	0x1c5f0: 0x6cc4f420, 0x1c5f1: 0x6d3d1620, 0x1c5f2: 0x6c84d420, 0x1c5f3: 0x6c24aa20,
-	0x1c5f4: 0x6d08f220, 0x1c5f5: 0x6cebc420, 0x1c5f6: 0x6c6f5620, 0x1c5f7: 0x6cbefa20,
-	0x1c5f8: 0x6cf59020, 0x1c5f9: 0x6cbefe20, 0x1c5fa: 0x6c796820, 0x1c5fb: 0x6d207a20,
-	0x1c5fc: 0x6ccfc020, 0x1c5fd: 0x6c6e1a20, 0x1c5fe: 0x6d11f220, 0x1c5ff: 0x6c1fe020,
-	// Block 0x718, offset 0x1c600
-	0x1c600: 0x6d3cce20, 0x1c601: 0x6ce84420, 0x1c602: 0x6c814620, 0x1c603: 0x6cbca020,
-	0x1c604: 0x6d2d2820, 0x1c605: 0x6d11a020, 0x1c606: 0x6c0b3020, 0x1c607: 0x6c05c420,
-	0x1c608: 0x6d11a220, 0x1c609: 0x6c0ddc20, 0x1c60a: 0x6cebd420, 0x1c60b: 0x6d3a0820,
-	0x1c60c: 0x6c699020, 0x1c60d: 0x6cbc3a20, 0x1c60e: 0x6c2e1020, 0x1c60f: 0x6cf36620,
-	0x1c610: 0x6c4a5e20, 0x1c611: 0x6d10ea20, 0x1c612: 0x6d35fc20, 0x1c613: 0x6c205020,
-	0x1c614: 0x6d120220, 0x1c615: 0x6ce5c220, 0x1c616: 0x6c69a020, 0x1c617: 0x6c205220,
-	0x1c618: 0x6c6f1220, 0x1c619: 0x6cfeca20, 0x1c61a: 0x6c19f020, 0x1c61b: 0x6c79ec20,
-	0x1c61c: 0x6c24ac20, 0x1c61d: 0x6cf29420, 0x1c61e: 0x6c289420, 0x1c61f: 0x6c7a4a20,
-	0x1c620: 0x6c780c20, 0x1c621: 0x6d3d7020, 0x1c622: 0x6d05b420, 0x1c623: 0x6cda5420,
-	0x1c624: 0x6c491c20, 0x1c625: 0x6c7c3e20, 0x1c626: 0x6c312420, 0x1c627: 0x6d3dfa20,
-	0x1c628: 0x6d09a020, 0x1c629: 0x6cf29620, 0x1c62a: 0x6cebea20, 0x1c62b: 0x6d0bc620,
-	0x1c62c: 0x6d217820, 0x1c62d: 0x6c726a20, 0x1c62e: 0x6cbf5220, 0x1c62f: 0x6d113a20,
-	0x1c630: 0x6d113c20, 0x1c631: 0x6ce5cc20, 0x1c632: 0x6c177820, 0x1c633: 0x6d228020,
-	0x1c634: 0x6ce4bc20, 0x1c635: 0x6c2e3e20, 0x1c636: 0x6c729220, 0x1c637: 0x6c8aa820,
-	0x1c638: 0x6cf6ce20, 0x1c639: 0x6cf52220, 0x1c63a: 0x6c7c4420, 0x1c63b: 0x6c206220,
-	0x1c63c: 0x6d2f7220, 0x1c63d: 0x6c7b7c20, 0x1c63e: 0x6c7b7420, 0x1c63f: 0x6c907420,
-	// Block 0x719, offset 0x1c640
-	0x1c640: 0x6c199c20, 0x1c641: 0x6c256c20, 0x1c642: 0x6cb18420, 0x1c643: 0x6d2a9420,
-	0x1c644: 0x6c24ba20, 0x1c645: 0x6cbc6820, 0x1c646: 0x6cbf7820, 0x1c647: 0x6c314c20,
-	0x1c648: 0x6d2a9e20, 0x1c649: 0x6c904620, 0x1c64a: 0x6cbd0a20, 0x1c64b: 0x6c856c20,
-	0x1c64c: 0x6c1f0a20, 0x1c64d: 0x6cd40c20, 0x1c64e: 0x6c3fb820, 0x1c64f: 0x6cba9220,
-	0x1c650: 0x6c1f1c20, 0x1c651: 0x6c531820, 0x1c652: 0x6cb59820, 0x1c653: 0x6c508620,
-	0x1c654: 0x6cd18420, 0x1c655: 0x6c3c0820, 0x1c656: 0x6cd5b220, 0x1c657: 0x6c9eb020,
-	0x1c658: 0x6cc24020, 0x1c659: 0x6d2e5220, 0x1c65a: 0x6d3adc20, 0x1c65b: 0x6c8cd420,
-	0x1c65c: 0x6c8f8220, 0x1c65d: 0x6c0e1620, 0x1c65e: 0x6c6e6a20, 0x1c65f: 0x6c6e7e20,
-	0x1c660: 0x6d2eb620, 0x1c661: 0x6c046620, 0x1c662: 0x6cd8c220, 0x1c663: 0x6c75c020,
-	0x1c664: 0x6c534e20, 0x1c665: 0x6ce74a20, 0x1c666: 0x6cd95a20, 0x1c667: 0x6c6e8820,
-	0x1c668: 0x6c2e2e20, 0x1c669: 0x6d17f820, 0x1c66a: 0x6cd5e820, 0x1c66b: 0x6c6e7820,
-	0x1c66c: 0x6cc24c20, 0x1c66d: 0x6c6b1020, 0x1c66e: 0x6cb26020, 0x1c66f: 0x6c329e20,
-	0x1c670: 0x6ccea620, 0x1c671: 0x6d3bac20, 0x1c672: 0x6c136220, 0x1c673: 0x6c2ab020,
-	0x1c674: 0x6c259e20, 0x1c675: 0x6cec5a20, 0x1c676: 0x6c6ec020, 0x1c677: 0x6c76fa20,
-	0x1c678: 0x6c6ec420, 0x1c679: 0x6d39f020, 0x1c67a: 0x6d39f620, 0x1c67b: 0x6c821a20,
-	0x1c67c: 0x6cae9220, 0x1c67d: 0x6d20e020, 0x1c67e: 0x6c1b0e20, 0x1c67f: 0x6c418820,
-	// Block 0x71a, offset 0x1c680
-	0x1c680: 0x6c984220, 0x1c681: 0x6d39fe20, 0x1c682: 0x6cedb820, 0x1c683: 0x6c321220,
-	0x1c684: 0x6c5eac20, 0x1c685: 0x6cff7420, 0x1c686: 0x6c03f020, 0x1c687: 0x6cdb9820,
-	0x1c688: 0x6c5ffc20, 0x1c689: 0x6cbdce20, 0x1c68a: 0x6d2faa20, 0x1c68b: 0x6cdce820,
-	0x1c68c: 0x6d0b2020, 0x1c68d: 0x6d3c7e20, 0x1c68e: 0x6d255220, 0x1c68f: 0x6c568420,
-	0x1c690: 0x6c4f6820, 0x1c691: 0x6cffe220, 0x1c692: 0x6c132e20, 0x1c693: 0x6c096c20,
-	0x1c694: 0x6c08d020, 0x1c695: 0x6c658020, 0x1c696: 0x6d15de20, 0x1c697: 0x6c2ffc20,
-	0x1c698: 0x6ccce220, 0x1c699: 0x6cd0fe20, 0x1c69a: 0x6c264820, 0x1c69b: 0x6c2b6c20,
-	0x1c69c: 0x6d3a0e20, 0x1c69d: 0x6ca33420, 0x1c69e: 0x6c1aac20, 0x1c69f: 0x6c470620,
-	0x1c6a0: 0x6c85f620, 0x1c6a1: 0x6cbcba20, 0x1c6a2: 0x6c9faa20, 0x1c6a3: 0x6c05ae20,
-	0x1c6a4: 0x6ce58220, 0x1c6a5: 0x6cd8b620, 0x1c6a6: 0x6c3e5820, 0x1c6a7: 0x6c12de20,
-	0x1c6a8: 0x6c07b420, 0x1c6a9: 0x6cae1a20, 0x1c6aa: 0x6c26a020, 0x1c6ab: 0x6d3f0620,
-	0x1c6ac: 0x6c2c4a20, 0x1c6ad: 0x6c8cee20, 0x1c6ae: 0x6d2ac420, 0x1c6af: 0x6caa4220,
-	0x1c6b0: 0x6c3e5a20, 0x1c6b1: 0x6c467e20, 0x1c6b2: 0x6c389620, 0x1c6b3: 0x6c634e20,
-	0x1c6b4: 0x6c41d820, 0x1c6b5: 0x6c394820, 0x1c6b6: 0x6cd2cc20, 0x1c6b7: 0x6c993820,
-	0x1c6b8: 0x6cb35620, 0x1c6b9: 0x6ce45020, 0x1c6ba: 0x6c648a20, 0x1c6bb: 0x6cbf1820,
-	0x1c6bc: 0x6c8f8a20, 0x1c6bd: 0x6c9fe420, 0x1c6be: 0x6c0af020, 0x1c6bf: 0x6c960420,
-	// Block 0x71b, offset 0x1c6c0
-	0x1c6c0: 0x6c4b4c20, 0x1c6c1: 0x6cc10c20, 0x1c6c2: 0x6c1b2620, 0x1c6c3: 0x6d19e220,
-	0x1c6c4: 0x6d120820, 0x1c6c5: 0x6cfc0e20, 0x1c6c6: 0x6c08e220, 0x1c6c7: 0x6cbf1a20,
-	0x1c6c8: 0x6c7dfa20, 0x1c6c9: 0x6c2acc20, 0x1c6ca: 0x6cff8c20, 0x1c6cb: 0x6c6c4620,
-	0x1c6cc: 0x6cc2f420, 0x1c6cd: 0x6cdcec20, 0x1c6ce: 0x6cc7ae20, 0x1c6cf: 0x6c381420,
-	0x1c6d0: 0x6c7b9e20, 0x1c6d1: 0x6d3af620, 0x1c6d2: 0x6ce7b820, 0x1c6d3: 0x6c5ed820,
-	0x1c6d4: 0x6c26a820, 0x1c6d5: 0x6c4f7a20, 0x1c6d6: 0x6c12ee20, 0x1c6d7: 0x6d383020,
-	0x1c6d8: 0x6c79ee20, 0x1c6d9: 0x6c7f0e20, 0x1c6da: 0x6c09a820, 0x1c6db: 0x6ccc8a20,
-	0x1c6dc: 0x6c28fe20, 0x1c6dd: 0x6d32c820, 0x1c6de: 0x6c12fa20, 0x1c6df: 0x6c3d7e20,
-	0x1c6e0: 0x6d27b420, 0x1c6e1: 0x6ce8c620, 0x1c6e2: 0x6cabd820, 0x1c6e3: 0x6c83ec20,
-	0x1c6e4: 0x6c80d020, 0x1c6e5: 0x6c71ba20, 0x1c6e6: 0x6c495820, 0x1c6e7: 0x6c65b020,
-	0x1c6e8: 0x6c4e1e20, 0x1c6e9: 0x6ce75620, 0x1c6ea: 0x6cf9d620, 0x1c6eb: 0x6d366220,
-	0x1c6ec: 0x6c1a0e20, 0x1c6ed: 0x6cdb9a20, 0x1c6ee: 0x6cd39e20, 0x1c6ef: 0x6d3b0c20,
-	0x1c6f0: 0x6d424620, 0x1c6f1: 0x6cffb020, 0x1c6f2: 0x6cce7620, 0x1c6f3: 0x6ce67620,
-	0x1c6f4: 0x6c12fc20, 0x1c6f5: 0x6d0c9e20, 0x1c6f6: 0x6c435020, 0x1c6f7: 0x6c7b2c20,
-	0x1c6f8: 0x6c41a020, 0x1c6f9: 0x6c1dc020, 0x1c6fa: 0x6c7c2e20, 0x1c6fb: 0x6c42aa20,
-	0x1c6fc: 0x6d27b620, 0x1c6fd: 0x6cab2a20, 0x1c6fe: 0x6cb8f420, 0x1c6ff: 0x6cffb220,
-	// Block 0x71c, offset 0x1c700
-	0x1c700: 0x6c65b220, 0x1c701: 0x6cb3de20, 0x1c702: 0x6c7f1c20, 0x1c703: 0x6d405c20,
-	0x1c704: 0x6c08ec20, 0x1c705: 0x6c0a0420, 0x1c706: 0x6c0a0620, 0x1c707: 0x6c448c20,
-	0x1c708: 0x6cdf3020, 0x1c709: 0x6c48e020, 0x1c70a: 0x6d209420, 0x1c70b: 0x6c64cc20,
-	0x1c70c: 0x6c2a2420, 0x1c70d: 0x6c472420, 0x1c70e: 0x6c1b4420, 0x1c70f: 0x6d32e220,
-	0x1c710: 0x6cbed220, 0x1c711: 0x6ccc6820, 0x1c712: 0x6d38ec20, 0x1c713: 0x6c928e20,
-	0x1c714: 0x6c0f3020, 0x1c715: 0x6c5f0a20, 0x1c716: 0x6c8bc420, 0x1c717: 0x6cdb9e20,
-	0x1c718: 0x6c75d420, 0x1c719: 0x6c3ec820, 0x1c71a: 0x6d2c4220, 0x1c71b: 0x6c472620,
-	0x1c71c: 0x6c798620, 0x1c71d: 0x6cb9b220, 0x1c71e: 0x6cb90a20, 0x1c71f: 0x6c75d620,
-	0x1c720: 0x6c20dc20, 0x1c721: 0x6c495a20, 0x1c722: 0x6d250420, 0x1c723: 0x6c130820,
-	0x1c724: 0x6d40cc20, 0x1c725: 0x6c0fe620, 0x1c726: 0x6d2ae420, 0x1c727: 0x6cbcd620,
-	0x1c728: 0x6cebb020, 0x1c729: 0x6c954e20, 0x1c72a: 0x6c27ec20, 0x1c72b: 0x6cfef420,
-	0x1c72c: 0x6cc92620, 0x1c72d: 0x6c66ba20, 0x1c72e: 0x6d07c020, 0x1c72f: 0x6c0b0020,
-	0x1c730: 0x6cdcfc20, 0x1c731: 0x6cfd8620, 0x1c732: 0x6cfc2420, 0x1c733: 0x6cb2c620,
-	0x1c734: 0x6d318c20, 0x1c735: 0x6d039420, 0x1c736: 0x6c559420, 0x1c737: 0x6d154a20,
-	0x1c738: 0x6d3b1420, 0x1c739: 0x6d265820, 0x1c73a: 0x6c211020, 0x1c73b: 0x6c93f620,
-	0x1c73c: 0x6cf37e20, 0x1c73d: 0x6c303820, 0x1c73e: 0x6cd79a20, 0x1c73f: 0x6c609020,
-	// Block 0x71d, offset 0x1c740
-	0x1c740: 0x6c6af220, 0x1c741: 0x6c59ee20, 0x1c742: 0x6d039620, 0x1c743: 0x6c9aa820,
-	0x1c744: 0x6c396a20, 0x1c745: 0x6c200a20, 0x1c746: 0x6d3bde20, 0x1c747: 0x6cb0fc20,
-	0x1c748: 0x6c3c6220, 0x1c749: 0x6d3a2820, 0x1c74a: 0x6c59f020, 0x1c74b: 0x6cbce020,
-	0x1c74c: 0x6c542420, 0x1c74d: 0x6cbfbe20, 0x1c74e: 0x6c9e9a20, 0x1c74f: 0x6cba7620,
-	0x1c750: 0x6c483c20, 0x1c751: 0x6c7d1020, 0x1c752: 0x6cd41c20, 0x1c753: 0x6c90f420,
-	0x1c754: 0x6d27c820, 0x1c755: 0x6c517020, 0x1c756: 0x6ce13420, 0x1c757: 0x6d26ee20,
-	0x1c758: 0x6c1d7e20, 0x1c759: 0x6c42de20, 0x1c75a: 0x6c3a7020, 0x1c75b: 0x6cc92e20,
-	0x1c75c: 0x6d32f420, 0x1c75d: 0x6c465e20, 0x1c75e: 0x6ca87220, 0x1c75f: 0x6cba7e20,
-	0x1c760: 0x6cffbc20, 0x1c761: 0x6c24b420, 0x1c762: 0x6c903820, 0x1c763: 0x6caec620,
-	0x1c764: 0x6c322e20, 0x1c765: 0x6c867e20, 0x1c766: 0x6c0a5420, 0x1c767: 0x6d3d9e20,
-	0x1c768: 0x6c1ea820, 0x1c769: 0x6ccc9020, 0x1c76a: 0x6c1b5220, 0x1c76b: 0x6d3b2c20,
-	0x1c76c: 0x6cbada20, 0x1c76d: 0x6c8fae20, 0x1c76e: 0x6c7fb620, 0x1c76f: 0x6c64fa20,
-	0x1c770: 0x6c10ba20, 0x1c771: 0x6c844220, 0x1c772: 0x6c5c5820, 0x1c773: 0x6c0a5620,
-	0x1c774: 0x6c2b9020, 0x1c775: 0x6c236420, 0x1c776: 0x6d0c3620, 0x1c777: 0x6caf2020,
-	0x1c778: 0x6c11e020, 0x1c779: 0x6d3be620, 0x1c77a: 0x6cb02220, 0x1c77b: 0x6cb19e20,
-	0x1c77c: 0x6c30c820, 0x1c77d: 0x6d243620, 0x1c77e: 0x6c9ef820, 0x1c77f: 0x6ce96020,
-	// Block 0x71e, offset 0x1c780
-	0x1c780: 0x6d2b1020, 0x1c781: 0x6ccc9220, 0x1c782: 0x6c4b8420, 0x1c783: 0x6d156e20,
-	0x1c784: 0x6c56cc20, 0x1c785: 0x6c15e620, 0x1c786: 0x6c7a0820, 0x1c787: 0x6c246820,
-	0x1c788: 0x6cb2d620, 0x1c789: 0x6d2a9020, 0x1c78a: 0x6c5f5620, 0x1c78b: 0x6c4b1c20,
-	0x1c78c: 0x6cdb3820, 0x1c78d: 0x6c90fc20, 0x1c78e: 0x6c131a20, 0x1c78f: 0x6c92e820,
-	0x1c790: 0x6ca73e20, 0x1c791: 0x6cdd3820, 0x1c792: 0x6c24b620, 0x1c793: 0x6c2e5420,
-	0x1c794: 0x6cdd4020, 0x1c795: 0x6c822a20, 0x1c796: 0x6c32dc20, 0x1c797: 0x6c89d020,
-	0x1c798: 0x6cff2220, 0x1c799: 0x6c0f9420, 0x1c79a: 0x6c9da020, 0x1c79b: 0x6ccc9420,
-	0x1c79c: 0x6c299c20, 0x1c79d: 0x6c8a3620, 0x1c79e: 0x6c280c20, 0x1c79f: 0x6c2d8e20,
-	0x1c7a0: 0x6c3f9020, 0x1c7a1: 0x6c65f820, 0x1c7a2: 0x6c9fd020, 0x1c7a3: 0x6c7d2820,
-	0x1c7a4: 0x6c27a020, 0x1c7a5: 0x6c689820, 0x1c7a6: 0x6c2ab620, 0x1c7a7: 0x6c5a0c20,
-	0x1c7a8: 0x6cdd0020, 0x1c7a9: 0x6c818220, 0x1c7aa: 0x6d295220, 0x1c7ab: 0x6cff3c20,
-	0x1c7ac: 0x6c931e20, 0x1c7ad: 0x6cd3f620, 0x1c7ae: 0x6d295420, 0x1c7af: 0x6cb81c20,
-	0x1c7b0: 0x6cac0a20, 0x1c7b1: 0x6cb81e20, 0x1c7b2: 0x6cac0c20, 0x1c7b3: 0x6c41f620,
-	0x1c7b4: 0x6c72b220, 0x1c7b5: 0x6c328a20, 0x1c7b6: 0x6c930620, 0x1c7b7: 0x6d0cf220,
-	0x1c7b8: 0x6c0fea20, 0x1c7b9: 0x6c291820, 0x1c7ba: 0x6cc9ec20, 0x1c7bb: 0x6d3b5e20,
-	0x1c7bc: 0x6c8fca20, 0x1c7bd: 0x6cb94020, 0x1c7be: 0x6c888420, 0x1c7bf: 0x6c10cc20,
-	// Block 0x71f, offset 0x1c7c0
-	0x1c7c0: 0x6d396220, 0x1c7c1: 0x6c7f6e20, 0x1c7c2: 0x6cd42020, 0x1c7c3: 0x6c7fec20,
-	0x1c7c4: 0x6c7d3420, 0x1c7c5: 0x6d21d620, 0x1c7c6: 0x6d270420, 0x1c7c7: 0x6c500020,
-	0x1c7c8: 0x6d31a220, 0x1c7c9: 0x6cdf5020, 0x1c7ca: 0x6ce43e20, 0x1c7cb: 0x6ca8a420,
-	0x1c7cc: 0x6c1e0420, 0x1c7cd: 0x6c60ec20, 0x1c7ce: 0x6d199820, 0x1c7cf: 0x6cb82020,
-	0x1c7d0: 0x6ce2ca20, 0x1c7d1: 0x6d3c0020, 0x1c7d2: 0x6d396820, 0x1c7d3: 0x6c387020,
-	0x1c7d4: 0x6cda3c20, 0x1c7d5: 0x6d396620, 0x1c7d6: 0x6cba9820, 0x1c7d7: 0x6d3de020,
-	0x1c7d8: 0x6ce2d420, 0x1c7d9: 0x6c933a20, 0x1c7da: 0x6c919420, 0x1c7db: 0x6c662a20,
-	0x1c7dc: 0x6cebbe20, 0x1c7dd: 0x6d1cd420, 0x1c7de: 0x6d248620, 0x1c7df: 0x6c7f7e20,
-	0x1c7e0: 0x6c8ff420, 0x1c7e1: 0x6cbd1620, 0x1c7e2: 0x6c88a220, 0x1c7e3: 0x6c800a20,
-	0x1c7e4: 0x6cb95c20, 0x1c7e5: 0x6d272020, 0x1c7e6: 0x6d37e420, 0x1c7e7: 0x6cc20e20,
-	0x1c7e8: 0x6c88a420, 0x1c7e9: 0x6c0b2820, 0x1c7ea: 0x6c32ea20, 0x1c7eb: 0x6d415a20,
-	0x1c7ec: 0x6c84d620, 0x1c7ed: 0x6cd86220, 0x1c7ee: 0x6c958e20, 0x1c7ef: 0x6d1cde20,
-	0x1c7f0: 0x6d273820, 0x1c7f1: 0x6d3df220, 0x1c7f2: 0x6d24ae20, 0x1c7f3: 0x6c9cd620,
-	0x1c7f4: 0x6c2b5820, 0x1c7f5: 0x6c388a20, 0x1c7f6: 0x6ccfb020, 0x1c7f7: 0x6d302820,
-	0x1c7f8: 0x6ccfc220, 0x1c7f9: 0x6caa7220, 0x1c7fa: 0x6c50e220, 0x1c7fb: 0x6c832420,
-	0x1c7fc: 0x6cfa8e20, 0x1c7fd: 0x6d3efa20, 0x1c7fe: 0x6ca5c620, 0x1c7ff: 0x6c25b420,
-	// Block 0x720, offset 0x1c800
-	0x1c800: 0x6d2f4620, 0x1c801: 0x6cb8c020, 0x1c802: 0x6d2d5a20, 0x1c803: 0x6c08d220,
-	0x1c804: 0x6c04c620, 0x1c805: 0x6cf4d820, 0x1c806: 0x6ccbde20, 0x1c807: 0x6c772a20,
-	0x1c808: 0x6cc77620, 0x1c809: 0x6c3bba20, 0x1c80a: 0x6c096e20, 0x1c80b: 0x6c252620,
-	0x1c80c: 0x6d1b9a20, 0x1c80d: 0x6d304020, 0x1c80e: 0x6c1b9020, 0x1c80f: 0x6cdf8620,
-	0x1c810: 0x6c56fa20, 0x1c811: 0x6c033c20, 0x1c812: 0x6c85f820, 0x1c813: 0x6c419620,
-	0x1c814: 0x6c722e20, 0x1c815: 0x6cb38420, 0x1c816: 0x6ca10c20, 0x1c817: 0x6c241020,
-	0x1c818: 0x6d2d6e20, 0x1c819: 0x6d392220, 0x1c81a: 0x6c83c620, 0x1c81b: 0x6cdaac20,
-	0x1c81c: 0x6ce5d620, 0x1c81d: 0x6c85fa20, 0x1c81e: 0x6cf62220, 0x1c81f: 0x6cdab620,
-	0x1c820: 0x6c535020, 0x1c821: 0x6ce74c20, 0x1c822: 0x6d3e4420, 0x1c823: 0x6c12e020,
-	0x1c824: 0x6d26bc20, 0x1c825: 0x6d388620, 0x1c826: 0x6c8bb820, 0x1c827: 0x6d3c1a20,
-	0x1c828: 0x6c042220, 0x1c829: 0x6c81f620, 0x1c82a: 0x6c3bda20, 0x1c82b: 0x6c375820,
-	0x1c82c: 0x6cc10e20, 0x1c82d: 0x6c521620, 0x1c82e: 0x6c895a20, 0x1c82f: 0x6cfcd820,
-	0x1c830: 0x6c3ea020, 0x1c831: 0x6c895c20, 0x1c832: 0x6c11fa20, 0x1c833: 0x6c6dc220,
-	0x1c834: 0x6c851c20, 0x1c835: 0x6d26c620, 0x1c836: 0x6c929020, 0x1c837: 0x6c714020,
-	0x1c838: 0x6cb61e20, 0x1c839: 0x6c254e20, 0x1c83a: 0x6c045220, 0x1c83b: 0x6d2ece20,
-	0x1c83c: 0x6c8bc620, 0x1c83d: 0x6d402620, 0x1c83e: 0x6c6dcc20, 0x1c83f: 0x6c4cc420,
-	// Block 0x721, offset 0x1c840
-	0x1c840: 0x6c57e020, 0x1c841: 0x6cca2220, 0x1c842: 0x6cca2620, 0x1c843: 0x6ce12a20,
-	0x1c844: 0x6c0b4c20, 0x1c845: 0x6cc75c20, 0x1c846: 0x6c9e5c20, 0x1c847: 0x6c542620,
-	0x1c848: 0x6d065220, 0x1c849: 0x6d402a20, 0x1c84a: 0x6c56fe20, 0x1c84b: 0x6c66be20,
-	0x1c84c: 0x6d294e20, 0x1c84d: 0x6c225e20, 0x1c84e: 0x6c843020, 0x1c84f: 0x6d021a20,
-	0x1c850: 0x6c3da020, 0x1c851: 0x6cab1220, 0x1c852: 0x6c076020, 0x1c853: 0x6c47d020,
-	0x1c854: 0x6d052820, 0x1c855: 0x6c42e020, 0x1c856: 0x6ce13620, 0x1c857: 0x6cc0b220,
-	0x1c858: 0x6c645620, 0x1c859: 0x6c126a20, 0x1c85a: 0x6d3c2420, 0x1c85b: 0x6ce14020,
-	0x1c85c: 0x6c9c7c20, 0x1c85d: 0x6cca2c20, 0x1c85e: 0x6c3bf420, 0x1c85f: 0x6d2a2620,
-	0x1c860: 0x6c775620, 0x1c861: 0x6c67fe20, 0x1c862: 0x6ca07e20, 0x1c863: 0x6cca3020,
-	0x1c864: 0x6cca3220, 0x1c865: 0x6cab1c20, 0x1c866: 0x6cf70820, 0x1c867: 0x6c897420,
-	0x1c868: 0x6c680820, 0x1c869: 0x6c7b4620, 0x1c86a: 0x6c0ffa20, 0x1c86b: 0x6c58b620,
-	0x1c86c: 0x6cd63620, 0x1c86d: 0x6d403e20, 0x1c86e: 0x6cfd4020, 0x1c86f: 0x6cab2020,
-	0x1c870: 0x6ce97020, 0x1c871: 0x6ca8b820, 0x1c872: 0x6c873020, 0x1c873: 0x6d42b220,
-	0x1c874: 0x6c2bb820, 0x1c875: 0x6ca8ba20, 0x1c876: 0x6ce5e420, 0x1c877: 0x6c809820,
-	0x1c878: 0x6c9d1a20, 0x1c879: 0x6cd7c020, 0x1c87a: 0x6c6f5820, 0x1c87b: 0x6cf83e20,
-	0x1c87c: 0x6c456620, 0x1c87d: 0x6d331c20, 0x1c87e: 0x6c6f5e20, 0x1c87f: 0x6d201c20,
-	// Block 0x722, offset 0x1c880
-	0x1c880: 0x6c61b020, 0x1c881: 0x6c143a20, 0x1c882: 0x6d391020, 0x1c883: 0x6d09f020,
-	0x1c884: 0x6d264a20, 0x1c885: 0x6c531c20, 0x1c886: 0x6d207e20, 0x1c887: 0x6c50e420,
-	0x1c888: 0x6cecce20, 0x1c889: 0x6cc5d820, 0x1c88a: 0x6cf1d220, 0x1c88b: 0x6cf18c20,
-	0x1c88c: 0x6cc03620, 0x1c88d: 0x6ca32820, 0x1c88e: 0x6d3e1c20, 0x1c88f: 0x6ce80c20,
-	0x1c890: 0x6ca99020, 0x1c891: 0x6c3d1420, 0x1c892: 0x6c61d020, 0x1c893: 0x6cd4c020,
-	0x1c894: 0x6c213c20, 0x1c895: 0x6caf5a20, 0x1c896: 0x6d323220, 0x1c897: 0x6ccbe020,
-	0x1c898: 0x6c532e20, 0x1c899: 0x6d351220, 0x1c89a: 0x6c5ffe20, 0x1c89b: 0x6c3b2220,
-	0x1c89c: 0x6d279e20, 0x1c89d: 0x6cc5de20, 0x1c89e: 0x6c283220, 0x1c89f: 0x6c6c4020,
-	0x1c8a0: 0x6cda9420, 0x1c8a1: 0x6c39d220, 0x1c8a2: 0x6cdd5a20, 0x1c8a3: 0x6c252820,
-	0x1c8a4: 0x6c6fb820, 0x1c8a5: 0x6d288c20, 0x1c8a6: 0x6c03f220, 0x1c8a7: 0x6c6c8c20,
-	0x1c8a8: 0x6c3d6a20, 0x1c8a9: 0x6d35fe20, 0x1c8aa: 0x6c229820, 0x1c8ab: 0x6d3f1620,
-	0x1c8ac: 0x6c1da620, 0x1c8ad: 0x6c533e20, 0x1c8ae: 0x6d288e20, 0x1c8af: 0x6c833420,
-	0x1c8b0: 0x6cf87a20, 0x1c8b1: 0x6c3e5c20, 0x1c8b2: 0x6d019a20, 0x1c8b3: 0x6ccfe020,
-	0x1c8b4: 0x6c0e6c20, 0x1c8b5: 0x6d3ae820, 0x1c8b6: 0x6cc0fc20, 0x1c8b7: 0x6c8cf020,
-	0x1c8b8: 0x6d3aea20, 0x1c8b9: 0x6cced620, 0x1c8ba: 0x6c421e20, 0x1c8bb: 0x6d101420,
-	0x1c8bc: 0x6c3e5e20, 0x1c8bd: 0x6ceb1820, 0x1c8be: 0x6d31d420, 0x1c8bf: 0x6c275e20,
-	// Block 0x723, offset 0x1c8c0
-	0x1c8c0: 0x6c1f3420, 0x1c8c1: 0x6cd1b420, 0x1c8c2: 0x6d37b620, 0x1c8c3: 0x6cfb4e20,
-	0x1c8c4: 0x6d411a20, 0x1c8c5: 0x6c6ede20, 0x1c8c6: 0x6c04f820, 0x1c8c7: 0x6cc18c20,
-	0x1c8c8: 0x6ca10e20, 0x1c8c9: 0x6cd5c620, 0x1c8ca: 0x6d41ac20, 0x1c8cb: 0x6c7c2c20,
-	0x1c8cc: 0x6c6db020, 0x1c8cd: 0x6cc5f220, 0x1c8ce: 0x6c4f7c20, 0x1c8cf: 0x6d01b220,
-	0x1c8d0: 0x6c6ad620, 0x1c8d1: 0x6d39a820, 0x1c8d2: 0x6c1db420, 0x1c8d3: 0x6c48b620,
-	0x1c8d4: 0x6c042420, 0x1c8d5: 0x6c745420, 0x1c8d6: 0x6c7bf620, 0x1c8d7: 0x6c556220,
-	0x1c8d8: 0x6c22c620, 0x1c8d9: 0x6c587820, 0x1c8da: 0x6c44d220, 0x1c8db: 0x6ce1c820,
-	0x1c8dc: 0x6c6ad820, 0x1c8dd: 0x6c7a9a20, 0x1c8de: 0x6c68fc20, 0x1c8df: 0x6cc2f620,
-	0x1c8e0: 0x6c411620, 0x1c8e1: 0x6c960620, 0x1c8e2: 0x6d089620, 0x1c8e3: 0x6c07ee20,
-	0x1c8e4: 0x6cfcc620, 0x1c8e5: 0x6c3e8620, 0x1c8e6: 0x6c449420, 0x1c8e7: 0x6c307a20,
-	0x1c8e8: 0x6cc67a20, 0x1c8e9: 0x6ce5d820, 0x1c8ea: 0x6d19e420, 0x1c8eb: 0x6c82c220,
-	0x1c8ec: 0x6d01b420, 0x1c8ed: 0x6c736820, 0x1c8ee: 0x6d06e020, 0x1c8ef: 0x6c40f820,
-	0x1c8f0: 0x6c2eae20, 0x1c8f1: 0x6ce7ba20, 0x1c8f2: 0x6cd7ea20, 0x1c8f3: 0x6c67e820,
-	0x1c8f4: 0x6cfdc420, 0x1c8f5: 0x6c5bc820, 0x1c8f6: 0x6c745620, 0x1c8f7: 0x6d346820,
-	0x1c8f8: 0x6c65b420, 0x1c8f9: 0x6c737620, 0x1c8fa: 0x6c1ac020, 0x1c8fb: 0x6c9e2c20,
-	0x1c8fc: 0x6d31e820, 0x1c8fd: 0x6c939e20, 0x1c8fe: 0x6c1a1020, 0x1c8ff: 0x6cc07a20,
-	// Block 0x724, offset 0x1c900
-	0x1c900: 0x6cd4ec20, 0x1c901: 0x6c055020, 0x1c902: 0x6ce7bc20, 0x1c903: 0x6cfedc20,
-	0x1c904: 0x6c588020, 0x1c905: 0x6cbd3620, 0x1c906: 0x6c451220, 0x1c907: 0x6d052620,
-	0x1c908: 0x6ce34c20, 0x1c909: 0x6ce82e20, 0x1c90a: 0x6d00c020, 0x1c90b: 0x6c536420,
-	0x1c90c: 0x6cf8a420, 0x1c90d: 0x6c3ea220, 0x1c90e: 0x6ce64620, 0x1c90f: 0x6cdbcc20,
-	0x1c910: 0x6c335220, 0x1c911: 0x6c7db620, 0x1c912: 0x6c3d8020, 0x1c913: 0x6c6dc420,
-	0x1c914: 0x6c56a620, 0x1c915: 0x6d33f820, 0x1c916: 0x6d0ca020, 0x1c917: 0x6c6f1c20,
-	0x1c918: 0x6c3cb020, 0x1c919: 0x6c622020, 0x1c91a: 0x6d077420, 0x1c91b: 0x6cc60c20,
-	0x1c91c: 0x6d3faa20, 0x1c91d: 0x6c187820, 0x1c91e: 0x6c34a420, 0x1c91f: 0x6c865020,
-	0x1c920: 0x6c93ec20, 0x1c921: 0x6c896020, 0x1c922: 0x6c1dcc20, 0x1c923: 0x6cc36420,
-	0x1c924: 0x6ccede20, 0x1c925: 0x6cb62020, 0x1c926: 0x6cb62220, 0x1c927: 0x6d3ce020,
-	0x1c928: 0x6cb62420, 0x1c929: 0x6ced3420, 0x1c92a: 0x6cba6a20, 0x1c92b: 0x6cfcec20,
-	0x1c92c: 0x6cd47420, 0x1c92d: 0x6cef2220, 0x1c92e: 0x6cb70e20, 0x1c92f: 0x6ce23020,
-	0x1c930: 0x6ced3620, 0x1c931: 0x6c428c20, 0x1c932: 0x6cee3020, 0x1c933: 0x6c080420,
-	0x1c934: 0x6d3cc620, 0x1c935: 0x6c113a20, 0x1c936: 0x6c4cc620, 0x1c937: 0x6c255020,
-	0x1c938: 0x6c950420, 0x1c939: 0x6c8f1020, 0x1c93a: 0x6cb71020, 0x1c93b: 0x6d2e6e20,
-	0x1c93c: 0x6c0a0820, 0x1c93d: 0x6c21cc20, 0x1c93e: 0x6c8d3c20, 0x1c93f: 0x6c9dca20,
-	// Block 0x725, offset 0x1c940
-	0x1c940: 0x6cb51420, 0x1c941: 0x6cbcd820, 0x1c942: 0x6ce4b420, 0x1c943: 0x6d3fac20,
-	0x1c944: 0x6c4bd820, 0x1c945: 0x6d405e20, 0x1c946: 0x6cf67c20, 0x1c947: 0x6d3e6a20,
-	0x1c948: 0x6d043220, 0x1c949: 0x6c899a20, 0x1c94a: 0x6c6ca420, 0x1c94b: 0x6c3a1220,
-	0x1c94c: 0x6cc8a020, 0x1c94d: 0x6c9f7220, 0x1c94e: 0x6d239e20, 0x1c94f: 0x6d400420,
-	0x1c950: 0x6c38ae20, 0x1c951: 0x6c93ee20, 0x1c952: 0x6d071620, 0x1c953: 0x6d1bd820,
-	0x1c954: 0x6cce5620, 0x1c955: 0x6cb81820, 0x1c956: 0x6d073020, 0x1c957: 0x6cfd8820,
-	0x1c958: 0x6c64dc20, 0x1c959: 0x6c78ce20, 0x1c95a: 0x6cfcfe20, 0x1c95b: 0x6cc87620,
-	0x1c95c: 0x6c9dcc20, 0x1c95d: 0x6c5f1c20, 0x1c95e: 0x6c32d820, 0x1c95f: 0x6c1d1e20,
-	0x1c960: 0x6c2c9420, 0x1c961: 0x6c9f7820, 0x1c962: 0x6c9e7c20, 0x1c963: 0x6d259c20,
-	0x1c964: 0x6d01fe20, 0x1c965: 0x6c060e20, 0x1c966: 0x6cd82020, 0x1c967: 0x6cbfc020,
-	0x1c968: 0x6c0b0220, 0x1c969: 0x6c58dc20, 0x1c96a: 0x6c44d820, 0x1c96b: 0x6c234620,
-	0x1c96c: 0x6c9e3820, 0x1c96d: 0x6cf0c420, 0x1c96e: 0x6c403620, 0x1c96f: 0x6cf00620,
-	0x1c970: 0x6ce7f420, 0x1c971: 0x6c465a20, 0x1c972: 0x6c9e9c20, 0x1c973: 0x6d00de20,
-	0x1c974: 0x6c891220, 0x1c975: 0x6d3fb620, 0x1c976: 0x6c0bb620, 0x1c977: 0x6d284a20,
-	0x1c978: 0x6d19fc20, 0x1c979: 0x6ce36820, 0x1c97a: 0x6c486c20, 0x1c97b: 0x6d36ea20,
-	0x1c97c: 0x6d284c20, 0x1c97d: 0x6c198c20, 0x1c97e: 0x6c152020, 0x1c97f: 0x6c278c20,
-	// Block 0x726, offset 0x1c980
-	0x1c980: 0x6cf9ea20, 0x1c981: 0x6d259e20, 0x1c982: 0x6d400620, 0x1c983: 0x6d05da20,
-	0x1c984: 0x6d1d6a20, 0x1c985: 0x6cf14420, 0x1c986: 0x6c44da20, 0x1c987: 0x6d07c220,
-	0x1c988: 0x6d1c9c20, 0x1c989: 0x6c6d5220, 0x1c98a: 0x6d18ae20, 0x1c98b: 0x6d3ca220,
-	0x1c98c: 0x6ca6c020, 0x1c98d: 0x6c053c20, 0x1c98e: 0x6c47c820, 0x1c98f: 0x6cac7220,
-	0x1c990: 0x6d395420, 0x1c991: 0x6c64fc20, 0x1c992: 0x6c220a20, 0x1c993: 0x6cc31620,
-	0x1c994: 0x6cd6e020, 0x1c995: 0x6d276620, 0x1c996: 0x6cf9f220, 0x1c997: 0x6c24ea20,
-	0x1c998: 0x6cf6d220, 0x1c999: 0x6cc6a620, 0x1c99a: 0x6ce1ea20, 0x1c99b: 0x6c405420,
-	0x1c99c: 0x6d27ca20, 0x1c99d: 0x6c188820, 0x1c99e: 0x6c432020, 0x1c99f: 0x6cc82820,
-	0x1c9a0: 0x6c55b820, 0x1c9a1: 0x6d294620, 0x1c9a2: 0x6ce2b420, 0x1c9a3: 0x6cfd1020,
-	0x1c9a4: 0x6cdb1e20, 0x1c9a5: 0x6d31fc20, 0x1c9a6: 0x6d403420, 0x1c9a7: 0x6ce1ec20,
-	0x1c9a8: 0x6c5a8420, 0x1c9a9: 0x6c114a20, 0x1c9aa: 0x6c0a5820, 0x1c9ab: 0x6c3cf620,
-	0x1c9ac: 0x6c246a20, 0x1c9ad: 0x6c844620, 0x1c9ae: 0x6cdd4220, 0x1c9af: 0x6d0ddc20,
-	0x1c9b0: 0x6cf81820, 0x1c9b1: 0x6d403820, 0x1c9b2: 0x6c826420, 0x1c9b3: 0x6c739820,
-	0x1c9b4: 0x6cba8220, 0x1c9b5: 0x6c980820, 0x1c9b6: 0x6d34a420, 0x1c9b7: 0x6c93bc20,
-	0x1c9b8: 0x6ca2b220, 0x1c9b9: 0x6cb1a020, 0x1c9ba: 0x6c885220, 0x1c9bb: 0x6c9c8020,
-	0x1c9bc: 0x6d08bc20, 0x1c9bd: 0x6d400a20, 0x1c9be: 0x6c5f5820, 0x1c9bf: 0x6ccd1220,
-	// Block 0x727, offset 0x1c9c0
-	0x1c9c0: 0x6cdc8e20, 0x1c9c1: 0x6c38ca20, 0x1c9c2: 0x6c940620, 0x1c9c3: 0x6c083020,
-	0x1c9c4: 0x6d141e20, 0x1c9c5: 0x6ccac220, 0x1c9c6: 0x6ca1ec20, 0x1c9c7: 0x6d114c20,
-	0x1c9c8: 0x6cbb4a20, 0x1c9c9: 0x6c5d0220, 0x1c9ca: 0x6cfd5a20, 0x1c9cb: 0x6c629a20,
-	0x1c9cc: 0x6ccc8620, 0x1c9cd: 0x6d055220, 0x1c9ce: 0x6cc49420, 0x1c9cf: 0x6d08be20,
-	0x1c9d0: 0x6cdca020, 0x1c9d1: 0x6cbbc020, 0x1c9d2: 0x6d2b9e20, 0x1c9d3: 0x6d427020,
-	0x1c9d4: 0x6d341e20, 0x1c9d5: 0x6ccdca20, 0x1c9d6: 0x6cca3420, 0x1c9d7: 0x6c8bf020,
-	0x1c9d8: 0x6d243820, 0x1c9d9: 0x6c386220, 0x1c9da: 0x6c8a3820, 0x1c9db: 0x6c21e020,
-	0x1c9dc: 0x6d41f820, 0x1c9dd: 0x6c66f220, 0x1c9de: 0x6cc54a20, 0x1c9df: 0x6c15f020,
-	0x1c9e0: 0x6cc8b620, 0x1c9e1: 0x6d055620, 0x1c9e2: 0x6c5c6e20, 0x1c9e3: 0x6c57ca20,
-	0x1c9e4: 0x6d414a20, 0x1c9e5: 0x6cf70a20, 0x1c9e6: 0x6cbb4e20, 0x1c9e7: 0x6d287c20,
-	0x1c9e8: 0x6c270220, 0x1c9e9: 0x6cd12620, 0x1c9ea: 0x6c5c7e20, 0x1c9eb: 0x6cf91620,
-	0x1c9ec: 0x6ccb8020, 0x1c9ed: 0x6c660020, 0x1c9ee: 0x6c679220, 0x1c9ef: 0x6c58b820,
-	0x1c9f0: 0x6d2a5e20, 0x1c9f1: 0x6c236e20, 0x1c9f2: 0x6d026020, 0x1c9f3: 0x6c695a20,
-	0x1c9f4: 0x6c0aa820, 0x1c9f5: 0x6c28de20, 0x1c9f6: 0x6d191020, 0x1c9f7: 0x6ca9ec20,
-	0x1c9f8: 0x6cdca220, 0x1c9f9: 0x6d191220, 0x1c9fa: 0x6ccc9a20, 0x1c9fb: 0x6d060420,
-	0x1c9fc: 0x6c62cc20, 0x1c9fd: 0x6c0d6c20, 0x1c9fe: 0x6cba3020, 0x1c9ff: 0x6c7fee20,
-	// Block 0x728, offset 0x1ca00
-	0x1ca00: 0x6cb47020, 0x1ca01: 0x6d09c620, 0x1ca02: 0x6d415420, 0x1ca03: 0x6cb69620,
-	0x1ca04: 0x6caee820, 0x1ca05: 0x6d124620, 0x1ca06: 0x6ca19a20, 0x1ca07: 0x6c835c20,
-	0x1ca08: 0x6d012820, 0x1ca09: 0x6d415620, 0x1ca0a: 0x6c7c1a20, 0x1ca0b: 0x6d1ed220,
-	0x1ca0c: 0x6d076220, 0x1ca0d: 0x6c828420, 0x1ca0e: 0x6cfb0420, 0x1ca0f: 0x6c156220,
-	0x1ca10: 0x6c69f220, 0x1ca11: 0x6c919620, 0x1ca12: 0x6c156a20, 0x1ca13: 0x6d1c4020,
-	0x1ca14: 0x6c111820, 0x1ca15: 0x6cc51620, 0x1ca16: 0x6cfb1620, 0x1ca17: 0x6d418620,
-	0x1ca18: 0x6d415c20, 0x1ca19: 0x6c965220, 0x1ca1a: 0x6c84e020, 0x1ca1b: 0x6c2a5220,
-	0x1ca1c: 0x6c806a20, 0x1ca1d: 0x6c82ac20, 0x1ca1e: 0x6c894020, 0x1ca1f: 0x6cd7b620,
-	0x1ca20: 0x6c6f4620, 0x1ca21: 0x6d207420, 0x1ca22: 0x6c52ee20, 0x1ca23: 0x6d38f420,
-	0x1ca24: 0x6cfa7420, 0x1ca25: 0x6c436a20, 0x1ca26: 0x6d264820, 0x1ca27: 0x6c5fce20,
-	0x1ca28: 0x6cecbc20, 0x1ca29: 0x6c7bda20, 0x1ca2a: 0x6c617a20, 0x1ca2b: 0x6cc5b820,
-	0x1ca2c: 0x6cef8820, 0x1ca2d: 0x6d278220, 0x1ca2e: 0x6c52fc20, 0x1ca2f: 0x6c213420,
-	0x1ca30: 0x6caf2c20, 0x1ca31: 0x6ccbca20, 0x1ca32: 0x6c425820, 0x1ca33: 0x6ca30820,
-	0x1ca34: 0x6cc5c620, 0x1ca35: 0x6d401620, 0x1ca36: 0x6c94dc20, 0x1ca37: 0x6c3b1220,
-	0x1ca38: 0x6d34ec20, 0x1ca39: 0x6cf17e20, 0x1ca3a: 0x6c39c220, 0x1ca3b: 0x6d3aa420,
-	0x1ca3c: 0x6d321420, 0x1ca3d: 0x6ca97c20, 0x1ca3e: 0x6cd4a020, 0x1ca3f: 0x6cfc8220,
-	// Block 0x729, offset 0x1ca40
-	0x1ca40: 0x6c421220, 0x1ca41: 0x6d016620, 0x1ca42: 0x6c3dfa20, 0x1ca43: 0x6c88e420,
-	0x1ca44: 0x6d410c20, 0x1ca45: 0x6ccfb220, 0x1ca46: 0x6cf84e20, 0x1ca47: 0x6d33a020,
-	0x1ca48: 0x6d37a020, 0x1ca49: 0x6d390420, 0x1ca4a: 0x6c04ec20, 0x1ca4b: 0x6c3dfc20,
-	0x1ca4c: 0x6c1f1420, 0x1ca4d: 0x6ccec820, 0x1ca4e: 0x6d16ce20, 0x1ca4f: 0x6c6d9220,
-	0x1ca50: 0x6c273820, 0x1ca51: 0x6c054a20, 0x1ca52: 0x6cc65a20, 0x1ca53: 0x6c6a9820,
-	0x1ca54: 0x6c7a8620, 0x1ca55: 0x6cc54620, 0x1ca56: 0x6c2e7620, 0x1ca57: 0x6c4f6420,
-	0x1ca58: 0x6c5b9e20, 0x1ca59: 0x6c449220, 0x1ca5a: 0x6d087c20, 0x1ca5b: 0x6c67dc20,
-	0x1ca5c: 0x6c95ea20, 0x1ca5d: 0x6c740420, 0x1ca5e: 0x6c68d620, 0x1ca5f: 0x6ce7ae20,
-	0x1ca60: 0x6c450020, 0x1ca61: 0x6cfea820, 0x1ca62: 0x6c735020, 0x1ca63: 0x6d053620,
-	0x1ca64: 0x6cf87220, 0x1ca65: 0x6cdbf020, 0x1ca66: 0x6ce1c020, 0x1ca67: 0x6c61d220,
-	0x1ca68: 0x6ce31820, 0x1ca69: 0x6c5eb820, 0x1ca6a: 0x6d06be20, 0x1ca6b: 0x6c8cf220,
-	0x1ca6c: 0x6d1bb220, 0x1ca6d: 0x6d06c020, 0x1ca6e: 0x6cb6f620, 0x1ca6f: 0x6c39fc20,
-	0x1ca70: 0x6c21b820, 0x1ca71: 0x6cce5220, 0x1ca72: 0x6c4bc220, 0x1ca73: 0x6cd11e20,
-	0x1ca74: 0x6cef0420, 0x1ca75: 0x6c9dc020, 0x1ca76: 0x6cd46820, 0x1ca77: 0x6c081a20,
-	0x1ca78: 0x6c1da820, 0x1ca79: 0x6ce22220, 0x1ca7a: 0x6c8f0620, 0x1ca7b: 0x6cc35a20,
-	0x1ca7c: 0x6d3f7820, 0x1ca7d: 0x6d2e5c20, 0x1ca7e: 0x6ced0c20, 0x1ca7f: 0x6c93d820,
-	// Block 0x72a, offset 0x1ca80
-	0x1ca80: 0x6d3cc420, 0x1ca81: 0x6d3e2820, 0x1ca82: 0x6c78b420, 0x1ca83: 0x6cfd7820,
-	0x1ca84: 0x6c64a420, 0x1ca85: 0x6c9e2820, 0x1ca86: 0x6c802a20, 0x1ca87: 0x6ce33020,
-	0x1ca88: 0x6c9e9420, 0x1ca89: 0x6c5eda20, 0x1ca8a: 0x6d275020, 0x1ca8b: 0x6c5bca20,
-	0x1ca8c: 0x6cd7ec20, 0x1ca8d: 0x6c348620, 0x1ca8e: 0x6c32c420, 0x1ca8f: 0x6c0ba020,
-	0x1ca90: 0x6cfcc820, 0x1ca91: 0x6c464a20, 0x1ca92: 0x6d3c8a20, 0x1ca93: 0x6c58d820,
-	0x1ca94: 0x6c2c5e20, 0x1ca95: 0x6c93a020, 0x1ca96: 0x6c0af620, 0x1ca97: 0x6c9f5820,
-	0x1ca98: 0x6d256820, 0x1ca99: 0x6c6d1c20, 0x1ca9a: 0x6c401020, 0x1ca9b: 0x6cc81e20,
-	0x1ca9c: 0x6d31ea20, 0x1ca9d: 0x6c3ce620, 0x1ca9e: 0x6c24ce20, 0x1ca9f: 0x6c430c20,
-	0x1caa0: 0x6c150420, 0x1caa1: 0x6c83f020, 0x1caa2: 0x6d17fc20, 0x1caa3: 0x6c64be20,
-	0x1caa4: 0x6c0d4020, 0x1caa5: 0x6cb15a20, 0x1caa6: 0x6c97f020, 0x1caa7: 0x6c824820,
-	0x1caa8: 0x6d1bda20, 0x1caa9: 0x6cdd2e20, 0x1caaa: 0x6ca1d820, 0x1caab: 0x6ccaba20,
-	0x1caac: 0x6d00e020, 0x1caad: 0x6c8a1420, 0x1caae: 0x6ccda220, 0x1caaf: 0x6d2b8c20,
-	0x1cab0: 0x6c677a20, 0x1cab1: 0x6cba2420, 0x1cab2: 0x6cbbb220, 0x1cab3: 0x6c589a20,
-	0x1cab4: 0x6c694620, 0x1cab5: 0x6d415020, 0x1cab6: 0x6c3d1a20, 0x1cab7: 0x6d016820,
-	0x1cab8: 0x6c426820, 0x1cab9: 0x6c3d2420, 0x1caba: 0x6cc38a20, 0x1cabb: 0x6c3d2620,
-	0x1cabc: 0x6cb81020, 0x1cabd: 0x6c0e6e20, 0x1cabe: 0x6cb2ac20, 0x1cabf: 0x6cfe3420,
-	// Block 0x72b, offset 0x1cac0
-	0x1cac0: 0x6d2ff620, 0x1cac1: 0x6c428e20, 0x1cac2: 0x6d1bdc20, 0x1cac3: 0x6d1bea20,
-	0x1cac4: 0x6cbee020, 0x1cac5: 0x6cfa4c20, 0x1cac6: 0x6c49aa20, 0x1cac7: 0x6d41fa20,
-	0x1cac8: 0x6ce02a20, 0x1cac9: 0x6c126020, 0x1caca: 0x6cb7fe20, 0x1cacb: 0x6cf27620,
-	0x1cacc: 0x6d1c2220, 0x1cacd: 0x6c828620, 0x1cace: 0x6ce04820, 0x1cacf: 0x6c919820,
-	0x1cad0: 0x6c49c420, 0x1cad1: 0x6cedf420, 0x1cad2: 0x6cedf020, 0x1cad3: 0x6c424e20,
-	0x1cad4: 0x6cedfe20, 0x1cad5: 0x6c4e5020, 0x1cad6: 0x6c953820, 0x1cad7: 0x6c952c20,
-	0x1cad8: 0x6c3e2220, 0x1cad9: 0x6c9c3a20, 0x1cada: 0x6c380620, 0x1cadb: 0x6c470020,
-	0x1cadc: 0x6d3a6020, 0x1cadd: 0x6c707220, 0x1cade: 0x6c98d420, 0x1cadf: 0x6c477420,
-	0x1cae0: 0x6c9f4220, 0x1cae1: 0x6c427220, 0x1cae2: 0x6c03f420, 0x1cae3: 0x6c48b220,
-	0x1cae4: 0x6ce33220, 0x1cae5: 0x6c736a20, 0x1cae6: 0x6c3e8820, 0x1cae7: 0x6cd0b420,
-	0x1cae8: 0x6d0da820, 0x1cae9: 0x6d2fc220, 0x1caea: 0x6d41b820, 0x1caeb: 0x6c48b820,
-	0x1caec: 0x6d3d7220, 0x1caed: 0x6d237620, 0x1caee: 0x6d366620, 0x1caef: 0x6c018e20,
-	0x1caf0: 0x6c382020, 0x1caf1: 0x6c803420, 0x1caf2: 0x6cd56220, 0x1caf3: 0x6cd80620,
-	0x1caf4: 0x6cb00820, 0x1caf5: 0x6c96da20, 0x1caf6: 0x6c8f1620, 0x1caf7: 0x6c03f820,
-	0x1caf8: 0x6c382420, 0x1caf9: 0x6c844a20, 0x1cafa: 0x6c177e20, 0x1cafb: 0x6cf0d020,
-	0x1cafc: 0x6c0a3420, 0x1cafd: 0x6c629c20, 0x1cafe: 0x6d2b9c20, 0x1caff: 0x6c1ce620,
-	// Block 0x72c, offset 0x1cb00
-	0x1cb00: 0x6c8f2220, 0x1cb01: 0x6c5f5a20, 0x1cb02: 0x6c739e20, 0x1cb03: 0x6c9da220,
-	0x1cb04: 0x6d2fec20, 0x1cb05: 0x6c956220, 0x1cb06: 0x6cb03220, 0x1cb07: 0x6c5f9e20,
-	0x1cb08: 0x6c5fb020, 0x1cb09: 0x6c946820, 0x1cb0a: 0x6d0f7620, 0x1cb0b: 0x6c9cde20,
-	0x1cb0c: 0x6cba9e20, 0x1cb0d: 0x6c268820, 0x1cb0e: 0x6c9a4e20, 0x1cb0f: 0x6d0f9a20,
-	0x1cb10: 0x6d1fbc20, 0x1cb11: 0x6d1fb420, 0x1cb12: 0x6c3b6620, 0x1cb13: 0x6c033e20,
-	0x1cb14: 0x6c42b820, 0x1cb15: 0x6d104a20, 0x1cb16: 0x6c477620, 0x1cb17: 0x6cbaaa20,
-	0x1cb18: 0x6d29d620, 0x1cb19: 0x6c42ba20, 0x1cb1a: 0x6c8cf620, 0x1cb1b: 0x6d176e20,
-	0x1cb1c: 0x6d3aee20, 0x1cb1d: 0x6c2b2820, 0x1cb1e: 0x6d04c820, 0x1cb1f: 0x6cbb3c20,
-	0x1cb20: 0x6d14fa20, 0x1cb21: 0x6cfcca20, 0x1cb22: 0x6cc67c20, 0x1cb23: 0x6cc44a20,
-	0x1cb24: 0x6cc44c20, 0x1cb25: 0x6cbb4420, 0x1cb26: 0x6c588220, 0x1cb27: 0x6cdd2620,
-	0x1cb28: 0x6cfcdc20, 0x1cb29: 0x6d17fe20, 0x1cb2a: 0x6d107a20, 0x1cb2b: 0x6cbad220,
-	0x1cb2c: 0x6cb9c220, 0x1cb2d: 0x6d218820, 0x1cb2e: 0x6c44dc20, 0x1cb2f: 0x6c6b2220,
-	0x1cb30: 0x6ce0cc20, 0x1cb31: 0x6d25ac20, 0x1cb32: 0x6cf6d420, 0x1cb33: 0x6c38d820,
-	0x1cb34: 0x6ccd1a20, 0x1cb35: 0x6c3ba220, 0x1cb36: 0x6ccd1e20, 0x1cb37: 0x6c88d820,
-	0x1cb38: 0x6c827420, 0x1cb39: 0x6c44e420, 0x1cb3a: 0x6caa0820, 0x1cb3b: 0x6cbb5e20,
-	0x1cb3c: 0x6c164620, 0x1cb3d: 0x6d221c20, 0x1cb3e: 0x6c461020, 0x1cb3f: 0x6d170420,
-	// Block 0x72d, offset 0x1cb40
-	0x1cb40: 0x6c1cbe20, 0x1cb41: 0x6cf22220, 0x1cb42: 0x6c3b2420, 0x1cb43: 0x6c533020,
-	0x1cb44: 0x6c1c0820, 0x1cb45: 0x6c1c0a20, 0x1cb46: 0x6c252a20, 0x1cb47: 0x6c3e6020,
-	0x1cb48: 0x6cf9b220, 0x1cb49: 0x6c079c20, 0x1cb4a: 0x6d177020, 0x1cb4b: 0x6c7e4220,
-	0x1cb4c: 0x6d177220, 0x1cb4d: 0x6caf6220, 0x1cb4e: 0x6c8cf820, 0x1cb4f: 0x6c8f2e20,
-	0x1cb50: 0x6d360020, 0x1cb51: 0x6cc18e20, 0x1cb52: 0x6cf77a20, 0x1cb53: 0x6d00ae20,
-	0x1cb54: 0x6cfdc620, 0x1cb55: 0x6cf62420, 0x1cb56: 0x6cf88e20, 0x1cb57: 0x6c785020,
-	0x1cb58: 0x6cbc4620, 0x1cb59: 0x6c5bcc20, 0x1cb5a: 0x6c5aba20, 0x1cb5b: 0x6cfecc20,
-	0x1cb5c: 0x6ccc5e20, 0x1cb5d: 0x6c536620, 0x1cb5e: 0x6c676c20, 0x1cb5f: 0x6c2b7e20,
-	0x1cb60: 0x6c255220, 0x1cb61: 0x6c3a6420, 0x1cb62: 0x6c2a2620, 0x1cb63: 0x6ccc6a20,
-	0x1cb64: 0x6c1c4a20, 0x1cb65: 0x6d3b1620, 0x1cb66: 0x6c65d220, 0x1cb67: 0x6d07c420,
-	0x1cb68: 0x6c1c6220, 0x1cb69: 0x6cb0fe20, 0x1cb6a: 0x6d3fb820, 0x1cb6b: 0x6cece620,
-	0x1cb6c: 0x6c5aea20, 0x1cb6d: 0x6c542820, 0x1cb6e: 0x6c517420, 0x1cb6f: 0x6c51e820,
-	0x1cb70: 0x6c4f0a20, 0x1cb71: 0x6c027220, 0x1cb72: 0x6cb16820, 0x1cb73: 0x6d18d020,
-	0x1cb74: 0x6c885420, 0x1cb75: 0x6c543420, 0x1cb76: 0x6c030820, 0x1cb77: 0x6c8bf220,
-	0x1cb78: 0x6cae4820, 0x1cb79: 0x6cbc6a20, 0x1cb7a: 0x6c027e20, 0x1cb7b: 0x6c386420,
-	0x1cb7c: 0x6d18d220, 0x1cb7d: 0x6c5c8020, 0x1cb7e: 0x6d07e420, 0x1cb7f: 0x6c2a4a20,
-	// Block 0x72e, offset 0x1cb80
-	0x1cb80: 0x6d124420, 0x1cb81: 0x6c819a20, 0x1cb82: 0x6c819820, 0x1cb83: 0x6c779c20,
-	0x1cb84: 0x6c996620, 0x1cb85: 0x6d30d220, 0x1cb86: 0x6cb5a820, 0x1cb87: 0x6c467a20,
-	0x1cb88: 0x6c468020, 0x1cb89: 0x6c467c20, 0x1cb8a: 0x6c2f3420, 0x1cb8b: 0x6c2eb020,
-	0x1cb8c: 0x6c373020, 0x1cb8d: 0x6cd64620, 0x1cb8e: 0x6cc85620, 0x1cb8f: 0x6ca3b220,
-	0x1cb90: 0x6ca3b420, 0x1cb91: 0x6c329220, 0x1cb92: 0x6c82b220, 0x1cb93: 0x6ce63220,
-	0x1cb94: 0x6d3efc20, 0x1cb95: 0x6c44c220, 0x1cb96: 0x6c17b620, 0x1cb97: 0x6c503220,
-	0x1cb98: 0x6d27a020, 0x1cb99: 0x6c03b020, 0x1cb9a: 0x6caf6420, 0x1cb9b: 0x6d14ec20,
-	0x1cb9c: 0x6cd8bc20, 0x1cb9d: 0x6cc26e20, 0x1cb9e: 0x6c635220, 0x1cb9f: 0x6c723220,
-	0x1cba0: 0x6c5d5620, 0x1cba1: 0x6c1e8e20, 0x1cba2: 0x6c81d420, 0x1cba3: 0x6c951c20,
-	0x1cba4: 0x6c607020, 0x1cba5: 0x6ce0c620, 0x1cba6: 0x6cab8e20, 0x1cba7: 0x6c90b420,
-	0x1cba8: 0x6caa2820, 0x1cba9: 0x6c67be20, 0x1cbaa: 0x6cad1e20, 0x1cbab: 0x6d2c5620,
-	0x1cbac: 0x6c90be20, 0x1cbad: 0x6c5f7020, 0x1cbae: 0x6c81e420, 0x1cbaf: 0x6c5e2e20,
-	0x1cbb0: 0x6d1ed420, 0x1cbb1: 0x6ca1a020, 0x1cbb2: 0x6c580420, 0x1cbb3: 0x6c378420,
-	0x1cbb4: 0x6d169620, 0x1cbb5: 0x6c2f5420, 0x1cbb6: 0x6d127420, 0x1cbb7: 0x6c264420,
-	0x1cbb8: 0x6cd95820, 0x1cbb9: 0x6cbd6820, 0x1cbba: 0x6d27a220, 0x1cbbb: 0x6c1b9420,
-	0x1cbbc: 0x6c27ca20, 0x1cbbd: 0x6c27cc20, 0x1cbbe: 0x6c533420, 0x1cbbf: 0x6c450220,
-	// Block 0x72f, offset 0x1cbc0
-	0x1cbc0: 0x6d344820, 0x1cbc1: 0x6cacb220, 0x1cbc2: 0x6ca80c20, 0x1cbc3: 0x6c27d420,
-	0x1cbc4: 0x6d31d620, 0x1cbc5: 0x6c181a20, 0x1cbc6: 0x6c8cfa20, 0x1cbc7: 0x6d32ba20,
-	0x1cbc8: 0x6d1fc220, 0x1cbc9: 0x6cec3020, 0x1cbca: 0x6c89e420, 0x1cbcb: 0x6c8f8c20,
-	0x1cbcc: 0x6d345c20, 0x1cbcd: 0x6ca90220, 0x1cbce: 0x6ce55e20, 0x1cbcf: 0x6c375c20,
-	0x1cbd0: 0x6d0bb420, 0x1cbd1: 0x6ce5f020, 0x1cbd2: 0x6c485e20, 0x1cbd3: 0x6d077220,
-	0x1cbd4: 0x6c880420, 0x1cbd5: 0x6c504620, 0x1cbd6: 0x6cd16e20, 0x1cbd7: 0x6c8b1a20,
-	0x1cbd8: 0x6cb24420, 0x1cbd9: 0x6c6dce20, 0x1cbda: 0x6c726c20, 0x1cbdb: 0x6c08ee20,
-	0x1cbdc: 0x6c2bfe20, 0x1cbdd: 0x6c4c7c20, 0x1cbde: 0x6cf1a220, 0x1cbdf: 0x6d071a20,
-	0x1cbe0: 0x6cb25820, 0x1cbe1: 0x6c232e20, 0x1cbe2: 0x6c2fc820, 0x1cbe3: 0x6ca5f820,
-	0x1cbe4: 0x6ce68c20, 0x1cbe5: 0x6c71d020, 0x1cbe6: 0x6c234820, 0x1cbe7: 0x6c7c4220,
-	0x1cbe8: 0x6c894420, 0x1cbe9: 0x6c7d1220, 0x1cbea: 0x6c234a20, 0x1cbeb: 0x6c884020,
-	0x1cbec: 0x6cf26020, 0x1cbed: 0x6c7d1420, 0x1cbee: 0x6c885820, 0x1cbef: 0x6c886820,
-	0x1cbf0: 0x6c236620, 0x1cbf1: 0x6c027420, 0x1cbf2: 0x6cd11820, 0x1cbf3: 0x6cd96e20,
-	0x1cbf4: 0x6ce64c20, 0x1cbf5: 0x6c7d2a20, 0x1cbf6: 0x6ca88820, 0x1cbf7: 0x6d34aa20,
-	0x1cbf8: 0x6c281020, 0x1cbf9: 0x6ca93420, 0x1cbfa: 0x6cbc8a20, 0x1cbfb: 0x6ca65e20,
-	0x1cbfc: 0x6ce65220, 0x1cbfd: 0x6ce65620, 0x1cbfe: 0x6c8ff820, 0x1cbff: 0x6d22c620,
-	// Block 0x730, offset 0x1cc00
-	0x1cc00: 0x6d22b620, 0x1cc01: 0x6d2fac20, 0x1cc02: 0x6cd8ac20, 0x1cc03: 0x6cda8220,
-	0x1cc04: 0x6d180020, 0x1cc05: 0x6cdad820, 0x1cc06: 0x6cd8ca20, 0x1cc07: 0x6d2fcc20,
-	0x1cc08: 0x6d2fce20, 0x1cc09: 0x6cc78220, 0x1cc0a: 0x6d164c20, 0x1cc0b: 0x6c81fe20,
-	0x1cc0c: 0x6c5e8020, 0x1cc0d: 0x6cbffe20, 0x1cc0e: 0x6c78f220, 0x1cc0f: 0x6c12b620,
-	0x1cc10: 0x6c437020, 0x1cc11: 0x6c0eb020, 0x1cc12: 0x6c58f020, 0x1cc13: 0x6c597a20,
-	0x1cc14: 0x6d15c220, 0x1cc15: 0x6cc5c820, 0x1cc16: 0x6cffd220, 0x1cc17: 0x6cc7f620,
-	0x1cc18: 0x6d38d820, 0x1cc19: 0x6d25fc20, 0x1cc1a: 0x6c323820, 0x1cc1b: 0x6c425a20,
-	0x1cc1c: 0x6cc65420, 0x1cc1d: 0x6c416e20, 0x1cc1e: 0x6c138020, 0x1cc1f: 0x6cf2d220,
-	0x1cc20: 0x6c169820, 0x1cc21: 0x6c476020, 0x1cc22: 0x6d33a220, 0x1cc23: 0x6c4dd620,
-	0x1cc24: 0x6c3d4420, 0x1cc25: 0x6c3a3220, 0x1cc26: 0x6c3b6420, 0x1cc27: 0x6cadb220,
-	0x1cc28: 0x6cad2820, 0x1cc29: 0x6c647020, 0x1cc2a: 0x6c39a820, 0x1cc2b: 0x6d3ccc20,
-	0x1cc2c: 0x6d1f0220, 0x1cc2d: 0x6ca31420, 0x1cc2e: 0x6c01e820, 0x1cc2f: 0x6c78f620,
-	0x1cc30: 0x6cc46420, 0x1cc31: 0x6c456820, 0x1cc32: 0x6d22da20, 0x1cc33: 0x6cf1d020,
-	0x1cc34: 0x6d10d020, 0x1cc35: 0x6cb58c20, 0x1cc36: 0x6cafc020, 0x1cc37: 0x6cb9f620,
-	0x1cc38: 0x6cf59220, 0x1cc39: 0x6cf59420, 0x1cc3a: 0x6c3a8c20, 0x1cc3b: 0x6c78f820,
-	0x1cc3c: 0x6c6e1220, 0x1cc3d: 0x6cdf6420, 0x1cc3e: 0x6cd09020, 0x1cc3f: 0x6d37e620,
-	// Block 0x731, offset 0x1cc40
-	0x1cc40: 0x6d2f2820, 0x1cc41: 0x6d007220, 0x1cc42: 0x6cd09620, 0x1cc43: 0x6cf07e20,
-	0x1cc44: 0x6d391220, 0x1cc45: 0x6c2e7820, 0x1cc46: 0x6c282c20, 0x1cc47: 0x6c3a9020,
-	0x1cc48: 0x6c037220, 0x1cc49: 0x6c0ec820, 0x1cc4a: 0x6cc17c20, 0x1cc4b: 0x6ce49420,
-	0x1cc4c: 0x6c06f220, 0x1cc4d: 0x6c484a20, 0x1cc4e: 0x6cdf0420, 0x1cc4f: 0x6d3ef220,
-	0x1cc50: 0x6c7a3220, 0x1cc51: 0x6d33b420, 0x1cc52: 0x6ca68820, 0x1cc53: 0x6cb28a20,
-	0x1cc54: 0x6d3f5420, 0x1cc55: 0x6c3f4c20, 0x1cc56: 0x6cad2a20, 0x1cc57: 0x6d313020,
-	0x1cc58: 0x6cfb3820, 0x1cc59: 0x6d428820, 0x1cc5a: 0x6cadb820, 0x1cc5b: 0x6c640820,
-	0x1cc5c: 0x6cd15620, 0x1cc5d: 0x6d33b620, 0x1cc5e: 0x6c05ac20, 0x1cc5f: 0x6ca23620,
-	0x1cc60: 0x6cc0ee20, 0x1cc61: 0x6c552e20, 0x1cc62: 0x6c77ea20, 0x1cc63: 0x6c1b8620,
-	0x1cc64: 0x6d1b4020, 0x1cc65: 0x6d057a20, 0x1cc66: 0x6d0f5220, 0x1cc67: 0x6c8f7a20,
-	0x1cc68: 0x6c306620, 0x1cc69: 0x6c761c20, 0x1cc6a: 0x6c914620, 0x1cc6b: 0x6c6e5c20,
-	0x1cc6c: 0x6caa5820, 0x1cc6d: 0x6d0bea20, 0x1cc6e: 0x6cacd020, 0x1cc6f: 0x6c7ae820,
-	0x1cc70: 0x6d14d620, 0x1cc71: 0x6c49e820, 0x1cc72: 0x6c4d3e20, 0x1cc73: 0x6c438220,
-	0x1cc74: 0x6c307020, 0x1cc75: 0x6c1aa220, 0x1cc76: 0x6c683e20, 0x1cc77: 0x6d046420,
-	0x1cc78: 0x6d046620, 0x1cc79: 0x6c374c20, 0x1cc7a: 0x6c01b020, 0x1cc7b: 0x6c526020,
-	0x1cc7c: 0x6cb10a20, 0x1cc7d: 0x6ca5a420, 0x1cc7e: 0x6d3f5620, 0x1cc7f: 0x6c4a4c20,
-	// Block 0x732, offset 0x1cc80
-	0x1cc80: 0x6c19e220, 0x1cc81: 0x6ce5c020, 0x1cc82: 0x6d33ce20, 0x1cc83: 0x6c252c20,
-	0x1cc84: 0x6c99e620, 0x1cc85: 0x6d009220, 0x1cc86: 0x6c252e20, 0x1cc87: 0x6d009420,
-	0x1cc88: 0x6c972e20, 0x1cc89: 0x6c972a20, 0x1cc8a: 0x6c600420, 0x1cc8b: 0x6d029e20,
-	0x1cc8c: 0x6ca8f020, 0x1cc8d: 0x6c7b2020, 0x1cc8e: 0x6cc97220, 0x1cc8f: 0x6d2a0420,
-	0x1cc90: 0x6cb5aa20, 0x1cc91: 0x6ca4e820, 0x1cc92: 0x6c9cec20, 0x1cc93: 0x6ca9b820,
-	0x1cc94: 0x6c943a20, 0x1cc95: 0x6ced7c20, 0x1cc96: 0x6c0ef420, 0x1cc97: 0x6cf1d820,
-	0x1cc98: 0x6ced0e20, 0x1cc99: 0x6d04d020, 0x1cc9a: 0x6c68ea20, 0x1cc9b: 0x6c6e7a20,
-	0x1cc9c: 0x6d1fc420, 0x1cc9d: 0x6c524e20, 0x1cc9e: 0x6c260820, 0x1cc9f: 0x6c8b0820,
-	0x1cca0: 0x6cccdc20, 0x1cca1: 0x6ce6c420, 0x1cca2: 0x6c99f020, 0x1cca3: 0x6c214420,
-	0x1cca4: 0x6cd0a220, 0x1cca5: 0x6cba0420, 0x1cca6: 0x6c2a9220, 0x1cca7: 0x6c72ee20,
-	0x1cca8: 0x6c243820, 0x1cca9: 0x6d04cc20, 0x1ccaa: 0x6d032e20, 0x1ccab: 0x6ceac220,
-	0x1ccac: 0x6cad3820, 0x1ccad: 0x6c19f220, 0x1ccae: 0x6ca56c20, 0x1ccaf: 0x6cb43620,
-	0x1ccb0: 0x6c311420, 0x1ccb1: 0x6ceac420, 0x1ccb2: 0x6ca7d620, 0x1ccb3: 0x6ca53e20,
-	0x1ccb4: 0x6cb05a20, 0x1ccb5: 0x6c478220, 0x1ccb6: 0x6c954020, 0x1ccb7: 0x6c85fc20,
-	0x1ccb8: 0x6c88b820, 0x1ccb9: 0x6d2f3020, 0x1ccba: 0x6c254020, 0x1ccbb: 0x6c6a1c20,
-	0x1ccbc: 0x6c899420, 0x1ccbd: 0x6cd6fc20, 0x1ccbe: 0x6caff420, 0x1ccbf: 0x6c0bfe20,
-	// Block 0x733, offset 0x1ccc0
-	0x1ccc0: 0x6c94fc20, 0x1ccc1: 0x6cb11020, 0x1ccc2: 0x6c82c420, 0x1ccc3: 0x6c7cfe20,
-	0x1ccc4: 0x6c20d620, 0x1ccc5: 0x6c288c20, 0x1ccc6: 0x6ce4fa20, 0x1ccc7: 0x6ca57020,
-	0x1ccc8: 0x6c6dbc20, 0x1ccc9: 0x6ca37a20, 0x1ccca: 0x6c7e7820, 0x1cccb: 0x6d12f420,
-	0x1cccc: 0x6d0c0e20, 0x1cccd: 0x6cc5f420, 0x1ccce: 0x6cd0a420, 0x1cccf: 0x6c21c220,
-	0x1ccd0: 0x6c3f7820, 0x1ccd1: 0x6c3f6a20, 0x1ccd2: 0x6c709620, 0x1ccd3: 0x6c3a3620,
-	0x1ccd4: 0x6cbabc20, 0x1ccd5: 0x6ced8820, 0x1ccd6: 0x6c307c20, 0x1ccd7: 0x6caff620,
-	0x1ccd8: 0x6c4c6e20, 0x1ccd9: 0x6d3f9220, 0x1ccda: 0x6c2fa820, 0x1ccdb: 0x6cf2fe20,
-	0x1ccdc: 0x6c9a6020, 0x1ccdd: 0x6ca5f420, 0x1ccde: 0x6d3bd020, 0x1ccdf: 0x6c1c3420,
-	0x1cce0: 0x6c23f020, 0x1cce1: 0x6c954820, 0x1cce2: 0x6cab8020, 0x1cce3: 0x6c2c6e20,
-	0x1cce4: 0x6c013c20, 0x1cce5: 0x6d038220, 0x1cce6: 0x6ca50420, 0x1cce7: 0x6cd5ea20,
-	0x1cce8: 0x6cd69220, 0x1cce9: 0x6ca42e20, 0x1ccea: 0x6d283c20, 0x1cceb: 0x6d380020,
-	0x1ccec: 0x6cc78620, 0x1cced: 0x6c366020, 0x1ccee: 0x6cc9ca20, 0x1ccef: 0x6ce8c820,
-	0x1ccf0: 0x6d10ae20, 0x1ccf1: 0x6c669220, 0x1ccf2: 0x6cefe620, 0x1ccf3: 0x6c690e20,
-	0x1ccf4: 0x6d213220, 0x1ccf5: 0x6c637220, 0x1ccf6: 0x6c32d020, 0x1ccf7: 0x6c09d820,
-	0x1ccf8: 0x6c16b220, 0x1ccf9: 0x6c401220, 0x1ccfa: 0x6cfcde20, 0x1ccfb: 0x6ca6b020,
-	0x1ccfc: 0x6c9e2e20, 0x1ccfd: 0x6cec3820, 0x1ccfe: 0x6ce2a220, 0x1ccff: 0x6ce9e620,
-	// Block 0x734, offset 0x1cd00
-	0x1cd00: 0x6c055620, 0x1cd01: 0x6cba1820, 0x1cd02: 0x6c93a820, 0x1cd03: 0x6cec3a20,
-	0x1cd04: 0x6cda3e20, 0x1cd05: 0x6ce11c20, 0x1cd06: 0x6cdaee20, 0x1cd07: 0x6d3c9820,
-	0x1cd08: 0x6c441420, 0x1cd09: 0x6d183220, 0x1cd0a: 0x6c100a20, 0x1cd0b: 0x6c89fa20,
-	0x1cd0c: 0x6c607220, 0x1cd0d: 0x6cb00a20, 0x1cd0e: 0x6d00d020, 0x1cd0f: 0x6c42d020,
-	0x1cd10: 0x6c93b420, 0x1cd11: 0x6c0d8420, 0x1cd12: 0x6cab6c20, 0x1cd13: 0x6c16c220,
-	0x1cd14: 0x6c92ae20, 0x1cd15: 0x6c4c8220, 0x1cd16: 0x6cace020, 0x1cd17: 0x6c1fbc20,
-	0x1cd18: 0x6c0c1a20, 0x1cd19: 0x6c67c020, 0x1cd1a: 0x6c3d9220, 0x1cd1b: 0x6ce12c20,
-	0x1cd1c: 0x6ca06e20, 0x1cd1d: 0x6cf6ac20, 0x1cd1e: 0x6d3b8e20, 0x1cd1f: 0x6c93f820,
-	0x1cd20: 0x6c686e20, 0x1cd21: 0x6d1d4420, 0x1cd22: 0x6c936220, 0x1cd23: 0x6d36be20,
-	0x1cd24: 0x6d098620, 0x1cd25: 0x6c211e20, 0x1cd26: 0x6c8c6620, 0x1cd27: 0x6ce78e20,
-	0x1cd28: 0x6caec820, 0x1cd29: 0x6ca6cc20, 0x1cd2a: 0x6c1fcc20, 0x1cd2b: 0x6c8a1e20,
-	0x1cd2c: 0x6c256620, 0x1cd2d: 0x6c4a8e20, 0x1cd2e: 0x6cff1620, 0x1cd2f: 0x6ce29020,
-	0x1cd30: 0x6c38c220, 0x1cd31: 0x6d349a20, 0x1cd32: 0x6c688020, 0x1cd33: 0x6ccdb420,
-	0x1cd34: 0x6c550420, 0x1cd35: 0x6c255c20, 0x1cd36: 0x6cc90a20, 0x1cd37: 0x6cfd8a20,
-	0x1cd38: 0x6cdc1020, 0x1cd39: 0x6c3bf020, 0x1cd3a: 0x6d1c0020, 0x1cd3b: 0x6ccd1620,
-	0x1cd3c: 0x6d3b5c20, 0x1cd3d: 0x6c284c20, 0x1cd3e: 0x6c7b4020, 0x1cd3f: 0x6ca9d220,
-	// Block 0x735, offset 0x1cd40
-	0x1cd40: 0x6cea7020, 0x1cd41: 0x6c886a20, 0x1cd42: 0x6c0a7620, 0x1cd43: 0x6d1dc020,
-	0x1cd44: 0x6c74cc20, 0x1cd45: 0x6c1f8020, 0x1cd46: 0x6d18d420, 0x1cd47: 0x6c732c20,
-	0x1cd48: 0x6c7e9820, 0x1cd49: 0x6c88ce20, 0x1cd4a: 0x6ccac420, 0x1cd4b: 0x6cea7420,
-	0x1cd4c: 0x6c47da20, 0x1cd4d: 0x6cb67820, 0x1cd4e: 0x6c257c20, 0x1cd4f: 0x6c0d8e20,
-	0x1cd50: 0x6d09bc20, 0x1cd51: 0x6ca53a20, 0x1cd52: 0x6cf32020, 0x1cd53: 0x6d2a0e20,
-	0x1cd54: 0x6cfd3420, 0x1cd55: 0x6c0c4420, 0x1cd56: 0x6d044020, 0x1cd57: 0x6c7b5c20,
-	0x1cd58: 0x6c7eaa20, 0x1cd59: 0x6d0c4220, 0x1cd5a: 0x6c918820, 0x1cd5b: 0x6c5e4220,
-	0x1cd5c: 0x6d28a020, 0x1cd5d: 0x6c95cc20, 0x1cd5e: 0x6cc21020, 0x1cd5f: 0x6d2a1020,
-	0x1cd60: 0x6c946c20, 0x1cd61: 0x6ca61e20, 0x1cd62: 0x6d28aa20, 0x1cd63: 0x6c189420,
-	0x1cd64: 0x6cb8b620, 0x1cd65: 0x6cf2da20, 0x1cd66: 0x6c4a2420, 0x1cd67: 0x6d29e220,
-	0x1cd68: 0x6c8bea20, 0x1cd69: 0x6c4a0e20, 0x1cd6a: 0x6d3f2a20, 0x1cd6b: 0x6c68c420,
-	0x1cd6c: 0x6ca80e20, 0x1cd6d: 0x6c1e4020, 0x1cd6e: 0x6c620c20, 0x1cd6f: 0x6c42c820,
-	0x1cd70: 0x6c1e4420, 0x1cd71: 0x6c9dce20, 0x1cd72: 0x6ca87420, 0x1cd73: 0x6d357020,
-	0x1cd74: 0x6d35c620, 0x1cd75: 0x6c43f220, 0x1cd76: 0x6c669420, 0x1cd77: 0x6c2eb220,
-	0x1cd78: 0x6d33e420, 0x1cd79: 0x6d04d820, 0x1cd7a: 0x6cdf3220, 0x1cd7b: 0x6d319820,
-	0x1cd7c: 0x6c6fd020, 0x1cd7d: 0x6cfc8420, 0x1cd7e: 0x6d20ca20, 0x1cd7f: 0x6c138620,
-	// Block 0x736, offset 0x1cd80
-	0x1cd80: 0x6d11a420, 0x1cd81: 0x6d20e820, 0x1cd82: 0x6c1cc220, 0x1cd83: 0x6cf89020,
-	0x1cd84: 0x6cf89220, 0x1cd85: 0x6c700620, 0x1cd86: 0x6d217a20, 0x1cd87: 0x6d227220,
-	0x1cd88: 0x6d043820, 0x1cd89: 0x6c71d420, 0x1cd8a: 0x6c702a20, 0x1cd8b: 0x6d035820,
-	0x1cd8c: 0x6ccf0620, 0x1cd8d: 0x6ccf2820, 0x1cd8e: 0x6ccf9620, 0x1cd8f: 0x6c6fb220,
-	0x1cd90: 0x6cd36020, 0x1cd91: 0x6cdfa420, 0x1cd92: 0x6cd4e220, 0x1cd93: 0x6cd3b620,
-	0x1cd94: 0x6ce50820, 0x1cd95: 0x6ce0a420, 0x1cd96: 0x6cb4b020, 0x1cd97: 0x6cb4b220,
-	0x1cd98: 0x6c496420, 0x1cd99: 0x6c57cc20, 0x1cd9a: 0x6ce54020, 0x1cd9b: 0x6c201620,
-	0x1cd9c: 0x6cd75220, 0x1cd9d: 0x6cf9d820, 0x1cd9e: 0x6cf45e20, 0x1cd9f: 0x6d385220,
-	0x1cda0: 0x6c29be20, 0x1cda1: 0x6c1ff420, 0x1cda2: 0x6cccd620, 0x1cda3: 0x6d15d420,
-	0x1cda4: 0x6c397c20, 0x1cda5: 0x6cabc020, 0x1cda6: 0x6cdf6a20, 0x1cda7: 0x6c389420,
-	0x1cda8: 0x6c04c820, 0x1cda9: 0x6c1ff620, 0x1cdaa: 0x6c4f6c20, 0x1cdab: 0x6c39d420,
-	0x1cdac: 0x6c047a20, 0x1cdad: 0x6c08d420, 0x1cdae: 0x6c934820, 0x1cdaf: 0x6d37b020,
-	0x1cdb0: 0x6c667220, 0x1cdb1: 0x6c122a20, 0x1cdb2: 0x6c8cfc20, 0x1cdb3: 0x6d3a1020,
-	0x1cdb4: 0x6d2ac620, 0x1cdb5: 0x6c34f220, 0x1cdb6: 0x6c0ef620, 0x1cdb7: 0x6cfb5020,
-	0x1cdb8: 0x6c447620, 0x1cdb9: 0x6c1ff820, 0x1cdba: 0x6cf9b420, 0x1cdbb: 0x6c914e20,
-	0x1cdbc: 0x6cbf2e20, 0x1cdbd: 0x6cacfc20, 0x1cdbe: 0x6cf62a20, 0x1cdbf: 0x6c7af420,
-	// Block 0x737, offset 0x1cdc0
-	0x1cdc0: 0x6c3ea420, 0x1cdc1: 0x6d2a8620, 0x1cdc2: 0x6c3cb220, 0x1cdc3: 0x6c83f220,
-	0x1cdc4: 0x6cce7820, 0x1cdc5: 0x6d216420, 0x1cdc6: 0x6c80d220, 0x1cdc7: 0x6ce6ce20,
-	0x1cdc8: 0x6d237820, 0x1cdc9: 0x6cefe820, 0x1cdca: 0x6c0f3220, 0x1cdcb: 0x6c9be020,
-	0x1cdcc: 0x6ca76c20, 0x1cdcd: 0x6c70b420, 0x1cdce: 0x6c59f420, 0x1cdcf: 0x6cd44a20,
-	0x1cdd0: 0x6c78d020, 0x1cdd1: 0x6c0bb820, 0x1cdd2: 0x6ca2a620, 0x1cdd3: 0x6c2ede20,
-	0x1cdd4: 0x6c315c20, 0x1cdd5: 0x6c059020, 0x1cdd6: 0x6c13ae20, 0x1cdd7: 0x6d18b220,
-	0x1cdd8: 0x6cd9d820, 0x1cdd9: 0x6c123a20, 0x1cdda: 0x6c129c20, 0x1cddb: 0x6c90c020,
-	0x1cddc: 0x6c279820, 0x1cddd: 0x6d098a20, 0x1cdde: 0x6d123420, 0x1cddf: 0x6c1cee20,
-	0x1cde0: 0x6c2b0820, 0x1cde1: 0x6c291c20, 0x1cde2: 0x6cbb2c20, 0x1cde3: 0x6c91f620,
-	0x1cde4: 0x6d162220, 0x1cde5: 0x6c60e020, 0x1cde6: 0x6c670e20, 0x1cde7: 0x6c5e3020,
-	0x1cde8: 0x6c9b8620, 0x1cde9: 0x6cb69820, 0x1cdea: 0x6c91fe20, 0x1cdeb: 0x6c919a20,
-	0x1cdec: 0x6c157220, 0x1cded: 0x6cd6c020, 0x1cdee: 0x6c449e20, 0x1cdef: 0x6c894620,
-	0x1cdf0: 0x6c647220, 0x1cdf1: 0x6c650020, 0x1cdf2: 0x6ccb1420, 0x1cdf3: 0x6d0e5420,
-	0x1cdf4: 0x6c3e6820, 0x1cdf5: 0x6cb25a20, 0x1cdf6: 0x6d0eea20, 0x1cdf7: 0x6d0f1c20,
-	0x1cdf8: 0x6c12aa20, 0x1cdf9: 0x6c12c020, 0x1cdfa: 0x6d164220, 0x1cdfb: 0x6c821220,
-	0x1cdfc: 0x6ce62820, 0x1cdfd: 0x6c681e20, 0x1cdfe: 0x6c008420, 0x1cdff: 0x6ca39020,
-	// Block 0x738, offset 0x1ce00
-	0x1ce00: 0x6ce56820, 0x1ce01: 0x6c682020, 0x1ce02: 0x6c6a5a20, 0x1ce03: 0x6cae8c20,
-	0x1ce04: 0x6cecbe20, 0x1ce05: 0x6d167020, 0x1ce06: 0x6c145e20, 0x1ce07: 0x6c9db820,
-	0x1ce08: 0x6c9cd820, 0x1ce09: 0x6c416220, 0x1ce0a: 0x6cb89e20, 0x1ce0b: 0x6d22c820,
-	0x1ce0c: 0x6d22ca20, 0x1ce0d: 0x6cce9620, 0x1ce0e: 0x6cbeee20, 0x1ce0f: 0x6c323020,
-	0x1ce10: 0x6c564c20, 0x1ce11: 0x6cb6ce20, 0x1ce12: 0x6c982c20, 0x1ce13: 0x6d3f2e20,
-	0x1ce14: 0x6c5ba020, 0x1ce15: 0x6cdbaa20, 0x1ce16: 0x6d357220, 0x1ce17: 0x6cfd6020,
-	0x1ce18: 0x6cafb020, 0x1ce19: 0x6c3ddc20, 0x1ce1a: 0x6cea4220, 0x1ce1b: 0x6cef8a20,
-	0x1ce1c: 0x6cf3a820, 0x1ce1d: 0x6d338420, 0x1ce1e: 0x6cb73e20, 0x1ce1f: 0x6cccbe20,
-	0x1ce20: 0x6cf18020, 0x1ce21: 0x6cba3e20, 0x1ce22: 0x6cc56e20, 0x1ce23: 0x6c3dde20,
-	0x1ce24: 0x6c79b620, 0x1ce25: 0x6c6bba20, 0x1ce26: 0x6c913620, 0x1ce27: 0x6d067420,
-	0x1ce28: 0x6c5e8220, 0x1ce29: 0x6cbd5420, 0x1ce2a: 0x6cb57620, 0x1ce2b: 0x6d0c5a20,
-	0x1ce2c: 0x6c3b1420, 0x1ce2d: 0x6c032020, 0x1ce2e: 0x6cc8c020, 0x1ce2f: 0x6d02ac20,
-	0x1ce30: 0x6c618a20, 0x1ce31: 0x6c570620, 0x1ce32: 0x6c570820, 0x1ce33: 0x6c398620,
-	0x1ce34: 0x6cf4ae20, 0x1ce35: 0x6c73e420, 0x1ce36: 0x6c466c20, 0x1ce37: 0x6d34ee20,
-	0x1ce38: 0x6d278420, 0x1ce39: 0x6cbd5620, 0x1ce3a: 0x6c029e20, 0x1ce3b: 0x6c1e7820,
-	0x1ce3c: 0x6c994620, 0x1ce3d: 0x6d0b1420, 0x1ce3e: 0x6c3a8020, 0x1ce3f: 0x6cc63220,
-	// Block 0x739, offset 0x1ce40
-	0x1ce40: 0x6c4f5a20, 0x1ce41: 0x6c22fc20, 0x1ce42: 0x6d1a2a20, 0x1ce43: 0x6d1fa220,
-	0x1ce44: 0x6c0b7420, 0x1ce45: 0x6d169a20, 0x1ce46: 0x6cbd1020, 0x1ce47: 0x6cef8c20,
-	0x1ce48: 0x6c858420, 0x1ce49: 0x6cb05420, 0x1ce4a: 0x6c35d420, 0x1ce4b: 0x6cfc7c20,
-	0x1ce4c: 0x6c169a20, 0x1ce4d: 0x6c122420, 0x1ce4e: 0x6d3aa620, 0x1ce4f: 0x6cda4820,
-	0x1ce50: 0x6ce30e20, 0x1ce51: 0x6d260220, 0x1ce52: 0x6cc4ae20, 0x1ce53: 0x6c8cb020,
-	0x1ce54: 0x6cdf1a20, 0x1ce55: 0x6cce9820, 0x1ce56: 0x6c2b5c20, 0x1ce57: 0x6c9e6e20,
-	0x1ce58: 0x6cbe9c20, 0x1ce59: 0x6c859620, 0x1ce5a: 0x6d1e7220, 0x1ce5b: 0x6c77d820,
-	0x1ce5c: 0x6ca27220, 0x1ce5d: 0x6c06ee20, 0x1ce5e: 0x6c05a820, 0x1ce5f: 0x6c467220,
-	0x1ce60: 0x6c9f3420, 0x1ce61: 0x6d15c420, 0x1ce62: 0x6d15ca20, 0x1ce63: 0x6c720020,
-	0x1ce64: 0x6cb1de20, 0x1ce65: 0x6cc91420, 0x1ce66: 0x6c7a7620, 0x1ce67: 0x6ca8fa20,
-	0x1ce68: 0x6ca62c20, 0x1ce69: 0x6c0ebc20, 0x1ce6a: 0x6c0dc820, 0x1ce6b: 0x6cccc620,
-	0x1ce6c: 0x6d051a20, 0x1ce6d: 0x6d119220, 0x1ce6e: 0x6cfa8420, 0x1ce6f: 0x6c079620,
-	0x1ce70: 0x6c530620, 0x1ce71: 0x6d1ba220, 0x1ce72: 0x6d2c7420, 0x1ce73: 0x6c2fe220,
-	0x1ce74: 0x6c706020, 0x1ce75: 0x6c2e6220, 0x1ce76: 0x6ca7de20, 0x1ce77: 0x6c417e20,
-	0x1ce78: 0x6c54a820, 0x1ce79: 0x6cb27c20, 0x1ce7a: 0x6c99dc20, 0x1ce7b: 0x6c3e0220,
-	0x1ce7c: 0x6cd0e820, 0x1ce7d: 0x6c46f620, 0x1ce7e: 0x6c093e20, 0x1ce7f: 0x6cf07620,
-	// Block 0x73a, offset 0x1ce80
-	0x1ce80: 0x6c3e0420, 0x1ce81: 0x6d3d2e20, 0x1ce82: 0x6c994c20, 0x1ce83: 0x6c393220,
-	0x1ce84: 0x6c633020, 0x1ce85: 0x6c98cc20, 0x1ce86: 0x6c98ce20, 0x1ce87: 0x6c036a20,
-	0x1ce88: 0x6c223220, 0x1ce89: 0x6ca0d620, 0x1ce8a: 0x6d3e0620, 0x1ce8b: 0x6c2be020,
-	0x1ce8c: 0x6c1b0a20, 0x1ce8d: 0x6c61b220, 0x1ce8e: 0x6c6d9420, 0x1ce8f: 0x6c8f6e20,
-	0x1ce90: 0x6c23e220, 0x1ce91: 0x6ca78e20, 0x1ce92: 0x6d256c20, 0x1ce93: 0x6d08fe20,
-	0x1ce94: 0x6d1c5a20, 0x1ce95: 0x6cbf0020, 0x1ce96: 0x6c43cc20, 0x1ce97: 0x6c9ff020,
-	0x1ce98: 0x6c85ae20, 0x1ce99: 0x6cc65c20, 0x1ce9a: 0x6d1b3c20, 0x1ce9b: 0x6c44b020,
-	0x1ce9c: 0x6cba4420, 0x1ce9d: 0x6c148e20, 0x1ce9e: 0x6c18aa20, 0x1ce9f: 0x6d22e820,
-	0x1cea0: 0x6c4fa220, 0x1cea1: 0x6d3f3420, 0x1cea2: 0x6c8adc20, 0x1cea3: 0x6cf3bc20,
-	0x1cea4: 0x6c61b420, 0x1cea5: 0x6c4a4020, 0x1cea6: 0x6c22bc20, 0x1cea7: 0x6c657620,
-	0x1cea8: 0x6c223420, 0x1cea9: 0x6c469e20, 0x1ceaa: 0x6c49e220, 0x1ceab: 0x6c984420,
-	0x1ceac: 0x6c13ce20, 0x1cead: 0x6c683620, 0x1ceae: 0x6c683820, 0x1ceaf: 0x6c3e2420,
-	0x1ceb0: 0x6d20ea20, 0x1ceb1: 0x6d398e20, 0x1ceb2: 0x6d3e1420, 0x1ceb3: 0x6c675220,
-	0x1ceb4: 0x6c5b2820, 0x1ceb5: 0x6d19b620, 0x1ceb6: 0x6c13d020, 0x1ceb7: 0x6c380820,
-	0x1ceb8: 0x6cc64e20, 0x1ceb9: 0x6cc79420, 0x1ceba: 0x6c1cb620, 0x1cebb: 0x6c989220,
-	0x1cebc: 0x6ce72c20, 0x1cebd: 0x6d381c20, 0x1cebe: 0x6cb8ac20, 0x1cebf: 0x6d3a0220,
-	// Block 0x73b, offset 0x1cec0
-	0x1cec0: 0x6d09f220, 0x1cec1: 0x6c586820, 0x1cec2: 0x6c3d5420, 0x1cec3: 0x6cc2c620,
-	0x1cec4: 0x6c40ea20, 0x1cec5: 0x6c264620, 0x1cec6: 0x6c6d9a20, 0x1cec7: 0x6d041c20,
-	0x1cec8: 0x6c201c20, 0x1cec9: 0x6c12ac20, 0x1ceca: 0x6c6d9c20, 0x1cecb: 0x6c374820,
-	0x1cecc: 0x6c01a820, 0x1cecd: 0x6cbbd420, 0x1cece: 0x6c1b1220, 0x1cecf: 0x6cc58c20,
-	0x1ced0: 0x6c666020, 0x1ced1: 0x6ce31220, 0x1ced2: 0x6c598420, 0x1ced3: 0x6cb28e20,
-	0x1ced4: 0x6c85b020, 0x1ced5: 0x6c6c3620, 0x1ced6: 0x6c81aa20, 0x1ced7: 0x6cd5b620,
-	0x1ced8: 0x6d3c0e20, 0x1ced9: 0x6c268c20, 0x1ceda: 0x6c63a820, 0x1cedb: 0x6cc52220,
-	0x1cedc: 0x6c095620, 0x1cedd: 0x6d2ab420, 0x1cede: 0x6cbbd620, 0x1cedf: 0x6c5ba220,
-	0x1cee0: 0x6c61b620, 0x1cee1: 0x6c295c20, 0x1cee2: 0x6d24c020, 0x1cee3: 0x6cc65e20,
-	0x1cee4: 0x6c5cb620, 0x1cee5: 0x6d03d420, 0x1cee6: 0x6c95ec20, 0x1cee7: 0x6d1c5e20,
-	0x1cee8: 0x6d09f420, 0x1cee9: 0x6c6ce420, 0x1ceea: 0x6cdcce20, 0x1ceeb: 0x6d19b820,
-	0x1ceec: 0x6c971220, 0x1ceed: 0x6c532020, 0x1ceee: 0x6d391420, 0x1ceef: 0x6d11f620,
-	0x1cef0: 0x6c324c20, 0x1cef1: 0x6cefa420, 0x1cef2: 0x6c83b020, 0x1cef3: 0x6c310820,
-	0x1cef4: 0x6c3d6020, 0x1cef5: 0x6cc59220, 0x1cef6: 0x6d1a4c20, 0x1cef7: 0x6c50fc20,
-	0x1cef8: 0x6c08a020, 0x1cef9: 0x6c108820, 0x1cefa: 0x6d27e220, 0x1cefb: 0x6c2b6620,
-	0x1cefc: 0x6ce89820, 0x1cefd: 0x6cdbba20, 0x1cefe: 0x6cdbbc20, 0x1ceff: 0x6c19d020,
-	// Block 0x73c, offset 0x1cf00
-	0x1cf00: 0x6c18b420, 0x1cf01: 0x6cf3be20, 0x1cf02: 0x6c0ce420, 0x1cf03: 0x6cf5d020,
-	0x1cf04: 0x6c450420, 0x1cf05: 0x6c85de20, 0x1cf06: 0x6cb43420, 0x1cf07: 0x6d3ae020,
-	0x1cf08: 0x6ca10020, 0x1cf09: 0x6c85e020, 0x1cf0a: 0x6d3c1420, 0x1cf0b: 0x6d423420,
-	0x1cf0c: 0x6ceab820, 0x1cf0d: 0x6cc03820, 0x1cf0e: 0x6ccbe420, 0x1cf0f: 0x6cdd1220,
-	0x1cf10: 0x6c18b620, 0x1cf11: 0x6cae9620, 0x1cf12: 0x6c71ae20, 0x1cf13: 0x6c99e820,
-	0x1cf14: 0x6c9b1220, 0x1cf15: 0x6d042420, 0x1cf16: 0x6c6da220, 0x1cf17: 0x6c17d820,
-	0x1cf18: 0x6ccfd420, 0x1cf19: 0x6c756820, 0x1cf1a: 0x6d0c7a20, 0x1cf1b: 0x6ce66620,
-	0x1cf1c: 0x6d1f2020, 0x1cf1d: 0x6c261e20, 0x1cf1e: 0x6c494c20, 0x1cf1f: 0x6c4ea020,
-	0x1cf20: 0x6d1fbe20, 0x1cf21: 0x6c262020, 0x1cf22: 0x6c63b420, 0x1cf23: 0x6cede220,
-	0x1cf24: 0x6cda9620, 0x1cf25: 0x6ca99220, 0x1cf26: 0x6cce6420, 0x1cf27: 0x6cfcac20,
-	0x1cf28: 0x6c811a20, 0x1cf29: 0x6c3e4020, 0x1cf2a: 0x6c355a20, 0x1cf2b: 0x6ca10220,
-	0x1cf2c: 0x6cf20420, 0x1cf2d: 0x6c6aa820, 0x1cf2e: 0x6ca3f420, 0x1cf2f: 0x6ca27c20,
-	0x1cf30: 0x6c76c820, 0x1cf31: 0x6c7eee20, 0x1cf32: 0x6c87f820, 0x1cf33: 0x6cd26020,
-	0x1cf34: 0x6cf28220, 0x1cf35: 0x6ce93020, 0x1cf36: 0x6cfa9620, 0x1cf37: 0x6c5db220,
-	0x1cf38: 0x6d1f2220, 0x1cf39: 0x6d1c6020, 0x1cf3a: 0x6d1ba820, 0x1cf3b: 0x6c461e20,
-	0x1cf3c: 0x6c213e20, 0x1cf3d: 0x6c988a20, 0x1cf3e: 0x6c988c20, 0x1cf3f: 0x6c22c220,
-	// Block 0x73d, offset 0x1cf40
-	0x1cf40: 0x6ced1020, 0x1cf41: 0x6c6db220, 0x1cf42: 0x6c2c4e20, 0x1cf43: 0x6cc18020,
-	0x1cf44: 0x6c2ffe20, 0x1cf45: 0x6c648c20, 0x1cf46: 0x6d405020, 0x1cf47: 0x6c483a20,
-	0x1cf48: 0x6c7e4420, 0x1cf49: 0x6c924820, 0x1cf4a: 0x6c711c20, 0x1cf4b: 0x6cf08620,
-	0x1cf4c: 0x6c757020, 0x1cf4d: 0x6ca82220, 0x1cf4e: 0x6c7d5c20, 0x1cf4f: 0x6c511a20,
-	0x1cf50: 0x6cb43a20, 0x1cf51: 0x6d290020, 0x1cf52: 0x6c430420, 0x1cf53: 0x6c4cbc20,
-	0x1cf54: 0x6c3e6c20, 0x1cf55: 0x6c94f620, 0x1cf56: 0x6c166a20, 0x1cf57: 0x6c1daa20,
-	0x1cf58: 0x6cd91e20, 0x1cf59: 0x6c20ca20, 0x1cf5a: 0x6d2e5e20, 0x1cf5b: 0x6c9acc20,
-	0x1cf5c: 0x6c114420, 0x1cf5d: 0x6c037820, 0x1cf5e: 0x6c83c820, 0x1cf5f: 0x6ce8aa20,
-	0x1cf60: 0x6c0e7020, 0x1cf61: 0x6c4eb620, 0x1cf62: 0x6c064620, 0x1cf63: 0x6cbe1220,
-	0x1cf64: 0x6c731e20, 0x1cf65: 0x6cf60020, 0x1cf66: 0x6cbd6a20, 0x1cf67: 0x6c2bf220,
-	0x1cf68: 0x6c6a0420, 0x1cf69: 0x6cb43820, 0x1cf6a: 0x6c296220, 0x1cf6b: 0x6c6c9020,
-	0x1cf6c: 0x6cbbde20, 0x1cf6d: 0x6cdf2220, 0x1cf6e: 0x6c44c820, 0x1cf6f: 0x6c573420,
-	0x1cf70: 0x6c470c20, 0x1cf71: 0x6c8cfe20, 0x1cf72: 0x6c39fe20, 0x1cf73: 0x6cbd7020,
-	0x1cf74: 0x6c012a20, 0x1cf75: 0x6cee1620, 0x1cf76: 0x6c081c20, 0x1cf77: 0x6d38e220,
-	0x1cf78: 0x6d0c0020, 0x1cf79: 0x6c709020, 0x1cf7a: 0x6c648e20, 0x1cf7b: 0x6c8c1e20,
-	0x1cf7c: 0x6ce05c20, 0x1cf7d: 0x6cd4d420, 0x1cf7e: 0x6ce49e20, 0x1cf7f: 0x6c2a1420,
-	// Block 0x73e, offset 0x1cf80
-	0x1cf80: 0x6c561c20, 0x1cf81: 0x6cb5d020, 0x1cf82: 0x6c511c20, 0x1cf83: 0x6c253820,
-	0x1cf84: 0x6ce22420, 0x1cf85: 0x6c210420, 0x1cf86: 0x6c098a20, 0x1cf87: 0x6c16aa20,
-	0x1cf88: 0x6c586e20, 0x1cf89: 0x6c3aa620, 0x1cf8a: 0x6c7f0020, 0x1cf8b: 0x6cb4ee20,
-	0x1cf8c: 0x6c9b1420, 0x1cf8d: 0x6cb2a020, 0x1cf8e: 0x6cee7420, 0x1cf8f: 0x6c288220,
-	0x1cf90: 0x6ccc4e20, 0x1cf91: 0x6c587020, 0x1cf92: 0x6d0d6e20, 0x1cf93: 0x6d14ee20,
-	0x1cf94: 0x6ce58420, 0x1cf95: 0x6cb5d220, 0x1cf96: 0x6ced1220, 0x1cf97: 0x6c12e220,
-	0x1cf98: 0x6ca3bc20, 0x1cf99: 0x6d327c20, 0x1cf9a: 0x6ceba420, 0x1cf9b: 0x6c6f6c20,
-	0x1cf9c: 0x6ce5ee20, 0x1cf9d: 0x6c954220, 0x1cf9e: 0x6c0ae020, 0x1cf9f: 0x6d199220,
-	0x1cfa0: 0x6c9b1620, 0x1cfa1: 0x6c100820, 0x1cfa2: 0x6cada820, 0x1cfa3: 0x6c2fc620,
-	0x1cfa4: 0x6d1c6420, 0x1cfa5: 0x6d1c6620, 0x1cfa6: 0x6d1c6820, 0x1cfa7: 0x6cfebc20,
-	0x1cfa8: 0x6cc97420, 0x1cfa9: 0x6cbfb020, 0x1cfaa: 0x6c77fc20, 0x1cfab: 0x6cfe3620,
-	0x1cfac: 0x6ced8620, 0x1cfad: 0x6d226020, 0x1cfae: 0x6d213620, 0x1cfaf: 0x6c3ffa20,
-	0x1cfb0: 0x6c88fe20, 0x1cfb1: 0x6d07a220, 0x1cfb2: 0x6d07a420, 0x1cfb3: 0x6ca42a20,
-	0x1cfb4: 0x6c12f620, 0x1cfb5: 0x6cf28e20, 0x1cfb6: 0x6c217a20, 0x1cfb7: 0x6cfece20,
-	0x1cfb8: 0x6d210620, 0x1cfb9: 0x6c0b4020, 0x1cfba: 0x6c998420, 0x1cfbb: 0x6c013420,
-	0x1cfbc: 0x6c364020, 0x1cfbd: 0x6c960a20, 0x1cfbe: 0x6d1c7820, 0x1cfbf: 0x6c7dfc20,
-	// Block 0x73f, offset 0x1cfc0
-	0x1cfc0: 0x6c7dfe20, 0x1cfc1: 0x6c676420, 0x1cfc2: 0x6c9e2a20, 0x1cfc3: 0x6d42a020,
-	0x1cfc4: 0x6d42a220, 0x1cfc5: 0x6d409c20, 0x1cfc6: 0x6c060020, 0x1cfc7: 0x6cc74e20,
-	0x1cfc8: 0x6cf7ec20, 0x1cfc9: 0x6d12f620, 0x1cfca: 0x6c013620, 0x1cfcb: 0x6cc19420,
-	0x1cfcc: 0x6c64a820, 0x1cfcd: 0x6c3e8e20, 0x1cfce: 0x6c93e420, 0x1cfcf: 0x6c6dbe20,
-	0x1cfd0: 0x6cae4220, 0x1cfd1: 0x6c3c5020, 0x1cfd2: 0x6c535220, 0x1cfd3: 0x6c535420,
-	0x1cfd4: 0x6c540820, 0x1cfd5: 0x6d0e7a20, 0x1cfd6: 0x6ce86420, 0x1cfd7: 0x6d311420,
-	0x1cfd8: 0x6d3e4620, 0x1cfd9: 0x6cfd7a20, 0x1cfda: 0x6cc5f620, 0x1cfdb: 0x6c43f420,
-	0x1cfdc: 0x6cb82c20, 0x1cfdd: 0x6cbe8020, 0x1cfde: 0x6c9cf820, 0x1cfdf: 0x6c59c820,
-	0x1cfe0: 0x6ccff220, 0x1cfe1: 0x6cb43c20, 0x1cfe2: 0x6c413820, 0x1cfe3: 0x6c303020,
-	0x1cfe4: 0x6d392a20, 0x1cfe5: 0x6c669620, 0x1cfe6: 0x6cefcc20, 0x1cfe7: 0x6c0f0820,
-	0x1cfe8: 0x6cee9220, 0x1cfe9: 0x6cabc620, 0x1cfea: 0x6c620e20, 0x1cfeb: 0x6c556620,
-	0x1cfec: 0x6d2a0820, 0x1cfed: 0x6c636220, 0x1cfee: 0x6c32c620, 0x1cfef: 0x6d120a20,
-	0x1cff0: 0x6cdbc420, 0x1cff1: 0x6c231c20, 0x1cff2: 0x6cc2fa20, 0x1cff3: 0x6cee9420,
-	0x1cff4: 0x6d315820, 0x1cff5: 0x6c7c7a20, 0x1cff6: 0x6ce67820, 0x1cff7: 0x6c5cd220,
-	0x1cff8: 0x6cf7ee20, 0x1cff9: 0x6cd1c220, 0x1cffa: 0x6cb79a20, 0x1cffb: 0x6c7f9e20,
-	0x1cffc: 0x6d3f9420, 0x1cffd: 0x6d10a820, 0x1cffe: 0x6d24f020, 0x1cfff: 0x6c9a0620,
-	// Block 0x740, offset 0x1d000
-	0x1d000: 0x6d275220, 0x1d001: 0x6cd5c820, 0x1d002: 0x6c2c6220, 0x1d003: 0x6d3bc620,
-	0x1d004: 0x6c491820, 0x1d005: 0x6cc4dc20, 0x1d006: 0x6d08e020, 0x1d007: 0x6c15b820,
-	0x1d008: 0x6c765a20, 0x1d009: 0x6c7d0020, 0x1d00a: 0x6c571620, 0x1d00b: 0x6c67a820,
-	0x1d00c: 0x6c908e20, 0x1d00d: 0x6cefce20, 0x1d00e: 0x6cac2a20, 0x1d00f: 0x6d206c20,
-	0x1d010: 0x6cd9b620, 0x1d011: 0x6d1b6220, 0x1d012: 0x6cd1d420, 0x1d013: 0x6c215420,
-	0x1d014: 0x6cd27620, 0x1d015: 0x6d275a20, 0x1d016: 0x6d317220, 0x1d017: 0x6c812220,
-	0x1d018: 0x6cc7b420, 0x1d019: 0x6c9b2a20, 0x1d01a: 0x6c863a20, 0x1d01b: 0x6cc38e20,
-	0x1d01c: 0x6cdb9c20, 0x1d01d: 0x6d258a20, 0x1d01e: 0x6c863c20, 0x1d01f: 0x6c71c420,
-	0x1d020: 0x6cf65620, 0x1d021: 0x6c057e20, 0x1d022: 0x6c1e8220, 0x1d023: 0x6d062020,
-	0x1d024: 0x6ce8cc20, 0x1d025: 0x6c8e7020, 0x1d026: 0x6c5de020, 0x1d027: 0x6c2d2220,
-	0x1d028: 0x6cba5e20, 0x1d029: 0x6d409e20, 0x1d02a: 0x6cb39820, 0x1d02b: 0x6c25e420,
-	0x1d02c: 0x6d24fa20, 0x1d02d: 0x6c1e9020, 0x1d02e: 0x6d237a20, 0x1d02f: 0x6c7afe20,
-	0x1d030: 0x6cac6220, 0x1d031: 0x6cb43e20, 0x1d032: 0x6cb44020, 0x1d033: 0x6ca35820,
-	0x1d034: 0x6cd78820, 0x1d035: 0x6cf78820, 0x1d036: 0x6c3b7c20, 0x1d037: 0x6d27b820,
-	0x1d038: 0x6d32d220, 0x1d039: 0x6c64c020, 0x1d03a: 0x6c605e20, 0x1d03b: 0x6cc92220,
-	0x1d03c: 0x6c123620, 0x1d03d: 0x6c371820, 0x1d03e: 0x6c9c5820, 0x1d03f: 0x6c4fa820,
-	// Block 0x741, offset 0x1d040
-	0x1d040: 0x6cdcd820, 0x1d041: 0x6d317420, 0x1d042: 0x6ca00c20, 0x1d043: 0x6cd9b820,
-	0x1d044: 0x6d06fe20, 0x1d045: 0x6c8e7220, 0x1d046: 0x6cf78a20, 0x1d047: 0x6c479220,
-	0x1d048: 0x6c80c020, 0x1d049: 0x6cc68c20, 0x1d04a: 0x6cf25420, 0x1d04b: 0x6c414820,
-	0x1d04c: 0x6c263020, 0x1d04d: 0x6cd1d620, 0x1d04e: 0x6ce10820, 0x1d04f: 0x6c95b620,
-	0x1d050: 0x6cc82020, 0x1d051: 0x6cdd2820, 0x1d052: 0x6d07ae20, 0x1d053: 0x6c073620,
-	0x1d054: 0x6d11ba20, 0x1d055: 0x6c4b5620, 0x1d056: 0x6c09da20, 0x1d057: 0x6d3ffc20,
-	0x1d058: 0x6c4bd220, 0x1d059: 0x6d42ba20, 0x1d05a: 0x6ce58620, 0x1d05b: 0x6c12fe20,
-	0x1d05c: 0x6cae2e20, 0x1d05d: 0x6c7fa420, 0x1d05e: 0x6c28b620, 0x1d05f: 0x6c622420,
-	0x1d060: 0x6c83f420, 0x1d061: 0x6ccffa20, 0x1d062: 0x6c810620, 0x1d063: 0x6d237c20,
-	0x1d064: 0x6c8e2e20, 0x1d065: 0x6d1c8420, 0x1d066: 0x6ca13020, 0x1d067: 0x6c2e3020,
-	0x1d068: 0x6ce58e20, 0x1d069: 0x6c993c20, 0x1d06a: 0x6ce6fa20, 0x1d06b: 0x6c1f5a20,
-	0x1d06c: 0x6caeae20, 0x1d06d: 0x6c014020, 0x1d06e: 0x6c881820, 0x1d06f: 0x6c233220,
-	0x1d070: 0x6cf80220, 0x1d071: 0x6cb2ae20, 0x1d072: 0x6cbfb820, 0x1d073: 0x6c6ca620,
-	0x1d074: 0x6c215820, 0x1d075: 0x6c6b1420, 0x1d076: 0x6cef2420, 0x1d077: 0x6ce99620,
-	0x1d078: 0x6c128220, 0x1d079: 0x6d23ca20, 0x1d07a: 0x6d183620, 0x1d07b: 0x6d3ed220,
-	0x1d07c: 0x6c8a7220, 0x1d07d: 0x6c09dc20, 0x1d07e: 0x6c91ce20, 0x1d07f: 0x6d077620,
-	// Block 0x742, offset 0x1d080
-	0x1d080: 0x6c10a820, 0x1d081: 0x6d2ed020, 0x1d082: 0x6c824a20, 0x1d083: 0x6cbb1c20,
-	0x1d084: 0x6c97f220, 0x1d085: 0x6d0cb820, 0x1d086: 0x6c8d3e20, 0x1d087: 0x6c621020,
-	0x1d088: 0x6c0c0e20, 0x1d089: 0x6c4bde20, 0x1d08a: 0x6c4e5c20, 0x1d08b: 0x6c2b8220,
-	0x1d08c: 0x6cdaf020, 0x1d08d: 0x6c929620, 0x1d08e: 0x6ccf6c20, 0x1d08f: 0x6cce1420,
-	0x1d090: 0x6c2b8420, 0x1d091: 0x6c9ee420, 0x1d092: 0x6d09a220, 0x1d093: 0x6c97f420,
-	0x1d094: 0x6c0f3420, 0x1d095: 0x6c2c8420, 0x1d096: 0x6c25ea20, 0x1d097: 0x6d311620,
-	0x1d098: 0x6cd00a20, 0x1d099: 0x6d08a620, 0x1d09a: 0x6cf0b220, 0x1d09b: 0x6c558220,
-	0x1d09c: 0x6c025620, 0x1d09d: 0x6c9cfc20, 0x1d09e: 0x6c90aa20, 0x1d09f: 0x6c244a20,
-	0x1d0a0: 0x6d37c220, 0x1d0a1: 0x6c114820, 0x1d0a2: 0x6cb33220, 0x1d0a3: 0x6c67b220,
-	0x1d0a4: 0x6c9d6e20, 0x1d0a5: 0x6c233420, 0x1d0a6: 0x6ca7a220, 0x1d0a7: 0x6c5c0220,
-	0x1d0a8: 0x6c738620, 0x1d0a9: 0x6d1a8420, 0x1d0aa: 0x6c66ac20, 0x1d0ab: 0x6ca6f020,
-	0x1d0ac: 0x6cd50220, 0x1d0ad: 0x6d19f020, 0x1d0ae: 0x6c4c7e20, 0x1d0af: 0x6c18d620,
-	0x1d0b0: 0x6c56bc20, 0x1d0b1: 0x6ccc0020, 0x1d0b2: 0x6c79fc20, 0x1d0b3: 0x6cba6e20,
-	0x1d0b4: 0x6c966e20, 0x1d0b5: 0x6d29e420, 0x1d0b6: 0x6d2b5a20, 0x1d0b7: 0x6cbb1620,
-	0x1d0b8: 0x6c30ba20, 0x1d0b9: 0x6c88c620, 0x1d0ba: 0x6c8c5a20, 0x1d0bb: 0x6c79fe20,
-	0x1d0bc: 0x6c007020, 0x1d0bd: 0x6c0a0a20, 0x1d0be: 0x6c843220, 0x1d0bf: 0x6cf00a20,
-	// Block 0x743, offset 0x1d0c0
-	0x1d0c0: 0x6c609620, 0x1d0c1: 0x6cb9c420, 0x1d0c2: 0x6cd17620, 0x1d0c3: 0x6c385c20,
-	0x1d0c4: 0x6c9b3c20, 0x1d0c5: 0x6cab9020, 0x1d0c6: 0x6c15dc20, 0x1d0c7: 0x6c2d2820,
-	0x1d0c8: 0x6d0aa420, 0x1d0c9: 0x6c687020, 0x1d0ca: 0x6cc8ac20, 0x1d0cb: 0x6cc8ae20,
-	0x1d0cc: 0x6c82d420, 0x1d0cd: 0x6d218e20, 0x1d0ce: 0x6cbbf220, 0x1d0cf: 0x6c1ea020,
-	0x1d0d0: 0x6c575220, 0x1d0d1: 0x6c64e220, 0x1d0d2: 0x6c971a20, 0x1d0d3: 0x6d27c220,
-	0x1d0d4: 0x6c05b820, 0x1d0d5: 0x6d1f6820, 0x1d0d6: 0x6cc1aa20, 0x1d0d7: 0x6c92da20,
-	0x1d0d8: 0x6cc52a20, 0x1d0d9: 0x6c5c1e20, 0x1d0da: 0x6c369020, 0x1d0db: 0x6ce36a20,
-	0x1d0dc: 0x6c3a6a20, 0x1d0dd: 0x6c749e20, 0x1d0de: 0x6d41c820, 0x1d0df: 0x6c384020,
-	0x1d0e0: 0x6cc7c020, 0x1d0e1: 0x6c3b8e20, 0x1d0e2: 0x6c7d1620, 0x1d0e3: 0x6cd75820,
-	0x1d0e4: 0x6cc8a220, 0x1d0e5: 0x6d0b5e20, 0x1d0e6: 0x6d05dc20, 0x1d0e7: 0x6c403c20,
-	0x1d0e8: 0x6c74a020, 0x1d0e9: 0x6c298a20, 0x1d0ea: 0x6cf3e420, 0x1d0eb: 0x6c303a20,
-	0x1d0ec: 0x6cd82420, 0x1d0ed: 0x6cff1820, 0x1d0ee: 0x6cf8d020, 0x1d0ef: 0x6c8fa020,
-	0x1d0f0: 0x6cf16420, 0x1d0f1: 0x6ccee820, 0x1d0f2: 0x6cb64220, 0x1d0f3: 0x6c64e420,
-	0x1d0f4: 0x6d284e20, 0x1d0f5: 0x6cdcde20, 0x1d0f6: 0x6c8d5a20, 0x1d0f7: 0x6d23f220,
-	0x1d0f8: 0x6cf9ec20, 0x1d0f9: 0x6cf27220, 0x1d0fa: 0x6c609820, 0x1d0fb: 0x6c538820,
-	0x1d0fc: 0x6cd8ee20, 0x1d0fd: 0x6ca9ca20, 0x1d0fe: 0x6c82da20, 0x1d0ff: 0x6d07ce20,
-	// Block 0x744, offset 0x1d100
-	0x1d100: 0x6d285620, 0x1d101: 0x6d23cc20, 0x1d102: 0x6cf7a420, 0x1d103: 0x6c506e20,
-	0x1d104: 0x6c05d620, 0x1d105: 0x6c4fae20, 0x1d106: 0x6c00d220, 0x1d107: 0x6ceeba20,
-	0x1d108: 0x6c5c3c20, 0x1d109: 0x6c5c3e20, 0x1d10a: 0x6c628220, 0x1d10b: 0x6c226e20,
-	0x1d10c: 0x6cfd8420, 0x1d10d: 0x6ced9a20, 0x1d10e: 0x6c9ee820, 0x1d10f: 0x6d18b420,
-	0x1d110: 0x6c838820, 0x1d111: 0x6c677e20, 0x1d112: 0x6c120820, 0x1d113: 0x6cd01e20,
-	0x1d114: 0x6cbb2620, 0x1d115: 0x6c885a20, 0x1d116: 0x6c781c20, 0x1d117: 0x6d25ae20,
-	0x1d118: 0x6c26c020, 0x1d119: 0x6ce42220, 0x1d11a: 0x6ce0d420, 0x1d11b: 0x6d08e820,
-	0x1d11c: 0x6c0a5c20, 0x1d11d: 0x6d2d9a20, 0x1d11e: 0x6cdce020, 0x1d11f: 0x6cfad820,
-	0x1d120: 0x6c38c420, 0x1d121: 0x6c2f8220, 0x1d122: 0x6d021c20, 0x1d123: 0x6c47d220,
-	0x1d124: 0x6d021e20, 0x1d125: 0x6cd56e20, 0x1d126: 0x6c66d420, 0x1d127: 0x6c4fb020,
-	0x1d128: 0x6c52ca20, 0x1d129: 0x6cc99820, 0x1d12a: 0x6d02f220, 0x1d12b: 0x6d09aa20,
-	0x1d12c: 0x6d122420, 0x1d12d: 0x6c046a20, 0x1d12e: 0x6cda2c20, 0x1d12f: 0x6cd57020,
-	0x1d130: 0x6d09b420, 0x1d131: 0x6c336a20, 0x1d132: 0x6cb21a20, 0x1d133: 0x6cf01820,
-	0x1d134: 0x6ca92820, 0x1d135: 0x6c1df020, 0x1d136: 0x6c970420, 0x1d137: 0x6cc7d420,
-	0x1d138: 0x6cb18620, 0x1d139: 0x6cdf4c20, 0x1d13a: 0x6c62a020, 0x1d13b: 0x6d2a5a20,
-	0x1d13c: 0x6c18f020, 0x1d13d: 0x6d319a20, 0x1d13e: 0x6c37a820, 0x1d13f: 0x6ca65420,
-	// Block 0x745, offset 0x1d140
-	0x1d140: 0x6d1ca820, 0x1d141: 0x6c432620, 0x1d142: 0x6c23b820, 0x1d143: 0x6cff2420,
-	0x1d144: 0x6cb66020, 0x1d145: 0x6c382820, 0x1d146: 0x6c65e420, 0x1d147: 0x6d073e20,
-	0x1d148: 0x6c7ca620, 0x1d149: 0x6c60c620, 0x1d14a: 0x6c0b5820, 0x1d14b: 0x6c2e4620,
-	0x1d14c: 0x6c9d9420, 0x1d14d: 0x6c7fc420, 0x1d14e: 0x6c6d6420, 0x1d14f: 0x6c124e20,
-	0x1d150: 0x6c9ea020, 0x1d151: 0x6cbf6e20, 0x1d152: 0x6cbcec20, 0x1d153: 0x6cfc3420,
-	0x1d154: 0x6c8a5420, 0x1d155: 0x6cab9820, 0x1d156: 0x6cfbb620, 0x1d157: 0x6cdb4020,
-	0x1d158: 0x6c936a20, 0x1d159: 0x6d18f020, 0x1d15a: 0x6d075220, 0x1d15b: 0x6d014c20,
-	0x1d15c: 0x6c847220, 0x1d15d: 0x6d18f220, 0x1d15e: 0x6c7e6620, 0x1d15f: 0x6c82f020,
-	0x1d160: 0x6c69ca20, 0x1d161: 0x6c2b9a20, 0x1d162: 0x6d355a20, 0x1d163: 0x6c06bc20,
-	0x1d164: 0x6ce2c220, 0x1d165: 0x6d123620, 0x1d166: 0x6ca17c20, 0x1d167: 0x6c595e20,
-	0x1d168: 0x6c0c3e20, 0x1d169: 0x6c386820, 0x1d16a: 0x6cda3220, 0x1d16b: 0x6ce02e20,
-	0x1d16c: 0x6ce99a20, 0x1d16d: 0x6cbf8020, 0x1d16e: 0x6cbc0820, 0x1d16f: 0x6cf0f620,
-	0x1d170: 0x6c8ebc20, 0x1d171: 0x6c5c5c20, 0x1d172: 0x6cabac20, 0x1d173: 0x6c432c20,
-	0x1d174: 0x6d286220, 0x1d175: 0x6c068a20, 0x1d176: 0x6c870a20, 0x1d177: 0x6cd57e20,
-	0x1d178: 0x6c1ebe20, 0x1d179: 0x6c007e20, 0x1d17a: 0x6c8c7a20, 0x1d17b: 0x6d2a6020,
-	0x1d17c: 0x6d07e620, 0x1d17d: 0x6cbe2820, 0x1d17e: 0x6c7f7220, 0x1d17f: 0x6c5e3220,
-	// Block 0x746, offset 0x1d180
-	0x1d180: 0x6cebb620, 0x1d181: 0x6cf54420, 0x1d182: 0x6cc8b820, 0x1d183: 0x6cc8ba20,
-	0x1d184: 0x6cb68420, 0x1d185: 0x6c528020, 0x1d186: 0x6c917820, 0x1d187: 0x6cda6420,
-	0x1d188: 0x6ce9d020, 0x1d189: 0x6c9b8a20, 0x1d18a: 0x6d287020, 0x1d18b: 0x6cb2dc20,
-	0x1d18c: 0x6d22b020, 0x1d18d: 0x6d09c220, 0x1d18e: 0x6c62be20, 0x1d18f: 0x6c6eec20,
-	0x1d190: 0x6d07e820, 0x1d191: 0x6ca09020, 0x1d192: 0x6cc0c220, 0x1d193: 0x6cda6620,
-	0x1d194: 0x6c6eee20, 0x1d195: 0x6c3d0420, 0x1d196: 0x6ca8a620, 0x1d197: 0x6c0ffe20,
-	0x1d198: 0x6cc4ea20, 0x1d199: 0x6d193020, 0x1d19a: 0x6cfc4a20, 0x1d19b: 0x6d21e420,
-	0x1d19c: 0x6c718820, 0x1d19d: 0x6c892e20, 0x1d19e: 0x6c88dc20, 0x1d19f: 0x6d1b1e20,
-	0x1d1a0: 0x6cbb2e20, 0x1d1a1: 0x6d1c2420, 0x1d1a2: 0x6c8fcc20, 0x1d1a3: 0x6ce82220,
-	0x1d1a4: 0x6cf05420, 0x1d1a5: 0x6d270c20, 0x1d1a6: 0x6c8d9420, 0x1d1a7: 0x6cc1f020,
-	0x1d1a8: 0x6d117020, 0x1d1a9: 0x6c38e620, 0x1d1aa: 0x6c9a3c20, 0x1d1ab: 0x6c4f3020,
-	0x1d1ac: 0x6c7c5620, 0x1d1ad: 0x6c7ff020, 0x1d1ae: 0x6c62d220, 0x1d1af: 0x6c29a220,
-	0x1d1b0: 0x6c981820, 0x1d1b1: 0x6c836220, 0x1d1b2: 0x6c828820, 0x1d1b3: 0x6c5b0a20,
-	0x1d1b4: 0x6c3c8220, 0x1d1b5: 0x6d342820, 0x1d1b6: 0x6cf10e20, 0x1d1b7: 0x6c7cb620,
-	0x1d1b8: 0x6d2ea220, 0x1d1b9: 0x6c580620, 0x1d1ba: 0x6c84ac20, 0x1d1bb: 0x6c62e220,
-	0x1d1bc: 0x6c9cb620, 0x1d1bd: 0x6c830a20, 0x1d1be: 0x6c582220, 0x1d1bf: 0x6c957a20,
-	// Block 0x747, offset 0x1d1c0
-	0x1d1c0: 0x6c5fa020, 0x1d1c1: 0x6c7cbe20, 0x1d1c2: 0x6c934020, 0x1d1c3: 0x6c655020,
-	0x1d1c4: 0x6cc9ba20, 0x1d1c5: 0x6ce2e620, 0x1d1c6: 0x6c829e20, 0x1d1c7: 0x6cc36820,
-	0x1d1c8: 0x6cff6020, 0x1d1c9: 0x6d197420, 0x1d1ca: 0x6c947220, 0x1d1cb: 0x6c9ae620,
-	0x1d1cc: 0x6c0cd420, 0x1d1cd: 0x6c549420, 0x1d1ce: 0x6c561220, 0x1d1cf: 0x6c91b820,
-	0x1d1d0: 0x6caaa220, 0x1d1d1: 0x6c93d420, 0x1d1d2: 0x6cd7da20, 0x1d1d3: 0x6cfeaa20,
-	0x1d1d4: 0x6cb98220, 0x1d1d5: 0x6c1f3620, 0x1d1d6: 0x6c54c620, 0x1d1d7: 0x6d058a20,
-	0x1d1d8: 0x6c25d820, 0x1d1d9: 0x6c3e6e20, 0x1d1da: 0x6d058c20, 0x1d1db: 0x6d05a820,
-	0x1d1dc: 0x6c91c420, 0x1d1dd: 0x6c562420, 0x1d1de: 0x6d216620, 0x1d1df: 0x6c504a20,
-	0x1d1e0: 0x6c686020, 0x1d1e1: 0x6c725820, 0x1d1e2: 0x6c4c8620, 0x1d1e3: 0x6c066820,
-	0x1d1e4: 0x6d0cd220, 0x1d1e5: 0x6d2e8220, 0x1d1e6: 0x6d2e8420, 0x1d1e7: 0x6c7c4820,
-	0x1d1e8: 0x6c0d5620, 0x1d1e9: 0x6cf90620, 0x1d1ea: 0x6cd63220, 0x1d1eb: 0x6c1d0820,
-	0x1d1ec: 0x6cc00220, 0x1d1ed: 0x6c2db220, 0x1d1ee: 0x6c612620, 0x1d1ef: 0x6cc00c20,
-	0x1d1f0: 0x6c2f5820, 0x1d1f1: 0x6cd19a20, 0x1d1f2: 0x6cf95020, 0x1d1f3: 0x6c740820,
-	0x1d1f4: 0x6d302a20, 0x1d1f5: 0x6ccf0a20, 0x1d1f6: 0x6d208020, 0x1d1f7: 0x6c4dea20,
-	0x1d1f8: 0x6d3efe20, 0x1d1f9: 0x6c532220, 0x1d1fa: 0x6c5a9a20, 0x1d1fb: 0x6c9b0c20,
-	0x1d1fc: 0x6c447e20, 0x1d1fd: 0x6cdbb020, 0x1d1fe: 0x6cf95a20, 0x1d1ff: 0x6c149420,
-	// Block 0x748, offset 0x1d200
-	0x1d200: 0x6cd25620, 0x1d201: 0x6d15d620, 0x1d202: 0x6c969620, 0x1d203: 0x6cfe2020,
-	0x1d204: 0x6c399420, 0x1d205: 0x6c360220, 0x1d206: 0x6c034020, 0x1d207: 0x6c1b9620,
-	0x1d208: 0x6cb8ca20, 0x1d209: 0x6cf18e20, 0x1d20a: 0x6cf19020, 0x1d20b: 0x6cc8c620,
-	0x1d20c: 0x6c056620, 0x1d20d: 0x6cafd220, 0x1d20e: 0x6d269a20, 0x1d20f: 0x6d269c20,
-	0x1d210: 0x6c756a20, 0x1d211: 0x6cb5ae20, 0x1d212: 0x6ce73c20, 0x1d213: 0x6d1ad620,
-	0x1d214: 0x6cb5b020, 0x1d215: 0x6c119020, 0x1d216: 0x6d255420, 0x1d217: 0x6c741a20,
-	0x1d218: 0x6c5b3020, 0x1d219: 0x6cbd6c20, 0x1d21a: 0x6cb5b220, 0x1d21b: 0x6d382220,
-	0x1d21c: 0x6d0b2220, 0x1d21d: 0x6c4fc220, 0x1d21e: 0x6ca27e20, 0x1d21f: 0x6cede420,
-	0x1d220: 0x6c3b6820, 0x1d221: 0x6c3b6a20, 0x1d222: 0x6c4f6e20, 0x1d223: 0x6c462e20,
-	0x1d224: 0x6d2a4620, 0x1d225: 0x6c3fd420, 0x1d226: 0x6cc47020, 0x1d227: 0x6c6bda20,
-	0x1d228: 0x6c3e4220, 0x1d229: 0x6c1aa420, 0x1d22a: 0x6c30ea20, 0x1d22b: 0x6c064820,
-	0x1d22c: 0x6cfc0620, 0x1d22d: 0x6ca5de20, 0x1d22e: 0x6ce27820, 0x1d22f: 0x6cbfac20,
-	0x1d230: 0x6d1f2c20, 0x1d231: 0x6d2cc220, 0x1d232: 0x6cb2a220, 0x1d233: 0x6c1b1e20,
-	0x1d234: 0x6d204220, 0x1d235: 0x6c511e20, 0x1d236: 0x6c4da020, 0x1d237: 0x6c723420,
-	0x1d238: 0x6c85fe20, 0x1d239: 0x6c3fe620, 0x1d23a: 0x6cc47620, 0x1d23b: 0x6d2c2a20,
-	0x1d23c: 0x6c468220, 0x1d23d: 0x6cafe220, 0x1d23e: 0x6cafe420, 0x1d23f: 0x6cfb5220,
-	// Block 0x749, offset 0x1d240
-	0x1d240: 0x6d3af020, 0x1d241: 0x6c2dc820, 0x1d242: 0x6c0ce820, 0x1d243: 0x6c0de220,
-	0x1d244: 0x6c470e20, 0x1d245: 0x6d2d7020, 0x1d246: 0x6cc10620, 0x1d247: 0x6ccf1220,
-	0x1d248: 0x6ce5fa20, 0x1d249: 0x6c8d0020, 0x1d24a: 0x6c478420, 0x1d24b: 0x6c288420,
-	0x1d24c: 0x6c478620, 0x1d24d: 0x6d1c6a20, 0x1d24e: 0x6c860020, 0x1d24f: 0x6c196a20,
-	0x1d250: 0x6cc11220, 0x1d251: 0x6ca1d620, 0x1d252: 0x6c43f620, 0x1d253: 0x6c22ca20,
-	0x1d254: 0x6c5b3820, 0x1d255: 0x6c5b3a20, 0x1d256: 0x6c986a20, 0x1d257: 0x6c3ffc20,
-	0x1d258: 0x6d0fbc20, 0x1d259: 0x6cebde20, 0x1d25a: 0x6c8b0e20, 0x1d25b: 0x6d39ac20,
-	0x1d25c: 0x6d13f820, 0x1d25d: 0x6cfb6220, 0x1d25e: 0x6c7e0020, 0x1d25f: 0x6c684e20,
-	0x1d260: 0x6c861a20, 0x1d261: 0x6d17be20, 0x1d262: 0x6cb2b020, 0x1d263: 0x6cb4fc20,
-	0x1d264: 0x6c4cfe20, 0x1d265: 0x6ccf1a20, 0x1d266: 0x6d14fc20, 0x1d267: 0x6cee2420,
-	0x1d268: 0x6ca11c20, 0x1d269: 0x6cbf3220, 0x1d26a: 0x6cbcc420, 0x1d26b: 0x6c4b0420,
-	0x1d26c: 0x6cbf3420, 0x1d26d: 0x6d364020, 0x1d26e: 0x6c976420, 0x1d26f: 0x6c81f820,
-	0x1d270: 0x6d305c20, 0x1d271: 0x6c63c220, 0x1d272: 0x6ca4ae20, 0x1d273: 0x6cd7ee20,
-	0x1d274: 0x6cb5f020, 0x1d275: 0x6d038420, 0x1d276: 0x6c6bee20, 0x1d277: 0x6cc07c20,
-	0x1d278: 0x6cce7a20, 0x1d279: 0x6d1e4c20, 0x1d27a: 0x6c63ce20, 0x1d27b: 0x6cea0220,
-	0x1d27c: 0x6c17de20, 0x1d27d: 0x6c044e20, 0x1d27e: 0x6c357620, 0x1d27f: 0x6c4ed420,
-	// Block 0x74a, offset 0x1d280
-	0x1d280: 0x6cd56420, 0x1d281: 0x6d081620, 0x1d282: 0x6c3c5820, 0x1d283: 0x6cd0b820,
-	0x1d284: 0x6cd0ba20, 0x1d285: 0x6c3f7020, 0x1d286: 0x6cfce020, 0x1d287: 0x6d2ffe20,
-	0x1d288: 0x6cf3da20, 0x1d289: 0x6c3ea820, 0x1d28a: 0x6c83f820, 0x1d28b: 0x6c80d420,
-	0x1d28c: 0x6c09de20, 0x1d28d: 0x6c1e9220, 0x1d28e: 0x6d24fc20, 0x1d28f: 0x6d1fd820,
-	0x1d290: 0x6c6af820, 0x1d291: 0x6c288e20, 0x1d292: 0x6d0ca220, 0x1d293: 0x6ce67a20,
-	0x1d294: 0x6c2d6820, 0x1d295: 0x6cea0420, 0x1d296: 0x6c5b3c20, 0x1d297: 0x6cf29820,
-	0x1d298: 0x6d340420, 0x1d299: 0x6cd92c20, 0x1d29a: 0x6c3a1420, 0x1d29b: 0x6c70b620,
-	0x1d29c: 0x6c9d7020, 0x1d29d: 0x6cb62c20, 0x1d29e: 0x6cb62e20, 0x1d29f: 0x6d23a820,
-	0x1d2a0: 0x6c75da20, 0x1d2a1: 0x6c7e8a20, 0x1d2a2: 0x6c9be220, 0x1d2a3: 0x6cbac420,
-	0x1d2a4: 0x6cd80820, 0x1d2a5: 0x6cf68020, 0x1d2a6: 0x6c950820, 0x1d2a7: 0x6c865420,
-	0x1d2a8: 0x6c2ed620, 0x1d2a9: 0x6ce59a20, 0x1d2aa: 0x6ce23220, 0x1d2ab: 0x6c7d7a20,
-	0x1d2ac: 0x6c4e2620, 0x1d2ad: 0x6c4eec20, 0x1d2ae: 0x6d23aa20, 0x1d2af: 0x6c058420,
-	0x1d2b0: 0x6c3a4020, 0x1d2b1: 0x6cb00c20, 0x1d2b2: 0x6ceea820, 0x1d2b3: 0x6c339e20,
-	0x1d2b4: 0x6d183820, 0x1d2b5: 0x6d250c20, 0x1d2b6: 0x6cddd020, 0x1d2b7: 0x6cc30c20,
-	0x1d2b8: 0x6cba1a20, 0x1d2b9: 0x6cc8d820, 0x1d2ba: 0x6ca5fc20, 0x1d2bb: 0x6cbe5220,
-	0x1d2bc: 0x6cf0b420, 0x1d2bd: 0x6c899e20, 0x1d2be: 0x6c4cc820, 0x1d2bf: 0x6cec9620,
-	// Block 0x74b, offset 0x1d2c0
-	0x1d2c0: 0x6c301020, 0x1d2c1: 0x6c367220, 0x1d2c2: 0x6c04d020, 0x1d2c3: 0x6c2c8620,
-	0x1d2c4: 0x6cee3420, 0x1d2c5: 0x6c11a020, 0x1d2c6: 0x6d102820, 0x1d2c7: 0x6d1d6820,
-	0x1d2c8: 0x6c4c3220, 0x1d2c9: 0x6c150e20, 0x1d2ca: 0x6c2fb420, 0x1d2cb: 0x6c7e8c20,
-	0x1d2cc: 0x6c782c20, 0x1d2cd: 0x6c6afa20, 0x1d2ce: 0x6d005020, 0x1d2cf: 0x6ce68e20,
-	0x1d2d0: 0x6c99b220, 0x1d2d1: 0x6d05de20, 0x1d2d2: 0x6c9dd020, 0x1d2d3: 0x6d219020,
-	0x1d2d4: 0x6c6a3220, 0x1d2d5: 0x6cd28020, 0x1d2d6: 0x6d07c820, 0x1d2d7: 0x6c59f620,
-	0x1d2d8: 0x6d0dce20, 0x1d2d9: 0x6c0b0420, 0x1d2da: 0x6cc75e20, 0x1d2db: 0x6ceeb220,
-	0x1d2dc: 0x6c403e20, 0x1d2dd: 0x6d25a020, 0x1d2de: 0x6c9aaa20, 0x1d2df: 0x6cf14620,
-	0x1d2e0: 0x6c3ee220, 0x1d2e1: 0x6cc7c220, 0x1d2e2: 0x6d00e220, 0x1d2e3: 0x6d1f6a20,
-	0x1d2e4: 0x6cc09020, 0x1d2e5: 0x6c990020, 0x1d2e6: 0x6cf97820, 0x1d2e7: 0x6d1be020,
-	0x1d2e8: 0x6cd1f020, 0x1d2e9: 0x6c1d2020, 0x1d2ea: 0x6ce0ce20, 0x1d2eb: 0x6d39be20,
-	0x1d2ec: 0x6d3fba20, 0x1d2ed: 0x6ce36c20, 0x1d2ee: 0x6c404020, 0x1d2ef: 0x6d25a220,
-	0x1d2f0: 0x6c7c9820, 0x1d2f1: 0x6c9b3e20, 0x1d2f2: 0x6c7e9620, 0x1d2f3: 0x6c31b220,
-	0x1d2f4: 0x6c559620, 0x1d2f5: 0x6cbfc220, 0x1d2f6: 0x6c2ee020, 0x1d2f7: 0x6c866420,
-	0x1d2f8: 0x6cf29c20, 0x1d2f9: 0x6d276220, 0x1d2fa: 0x6cc24e20, 0x1d2fb: 0x6ca43a20,
-	0x1d2fc: 0x6c90b620, 0x1d2fd: 0x6c211220, 0x1d2fe: 0x6cc6a820, 0x1d2ff: 0x6d1c9220,
-	// Block 0x74c, offset 0x1d300
-	0x1d300: 0x6c677620, 0x1d301: 0x6c051420, 0x1d302: 0x6c80d820, 0x1d303: 0x6cad0e20,
-	0x1d304: 0x6cd82c20, 0x1d305: 0x6cf6da20, 0x1d306: 0x6c22de20, 0x1d307: 0x6cf6dc20,
-	0x1d308: 0x6d25b020, 0x1d309: 0x6cf23c20, 0x1d30a: 0x6c885c20, 0x1d30b: 0x6cd9dc20,
-	0x1d30c: 0x6c04a020, 0x1d30d: 0x6cc6b220, 0x1d30e: 0x6cc6b420, 0x1d30f: 0x6c60b220,
-	0x1d310: 0x6cf38220, 0x1d311: 0x6d055020, 0x1d312: 0x6c4f0e20, 0x1d313: 0x6cbdac20,
-	0x1d314: 0x6d156020, 0x1d315: 0x6c089020, 0x1d316: 0x6c575420, 0x1d317: 0x6ce13c20,
-	0x1d318: 0x6d161420, 0x1d319: 0x6c327c20, 0x1d31a: 0x6ca3d620, 0x1d31b: 0x6c517820,
-	0x1d31c: 0x6c55c020, 0x1d31d: 0x6c4a8a20, 0x1d31e: 0x6c96a420, 0x1d31f: 0x6ca01a20,
-	0x1d320: 0x6d18b620, 0x1d321: 0x6cf1b020, 0x1d322: 0x6d1ca020, 0x1d323: 0x6ce28420,
-	0x1d324: 0x6d37ca20, 0x1d325: 0x6c123c20, 0x1d326: 0x6ccb1020, 0x1d327: 0x6cb81a20,
-	0x1d328: 0x6c97c820, 0x1d329: 0x6ce5e620, 0x1d32a: 0x6cce2020, 0x1d32b: 0x6cd3e620,
-	0x1d32c: 0x6c129e20, 0x1d32d: 0x6c1ad620, 0x1d32e: 0x6c2ca620, 0x1d32f: 0x6c027620,
-	0x1d330: 0x6c92fa20, 0x1d331: 0x6cf0e820, 0x1d332: 0x6d371220, 0x1d333: 0x6ce14220,
-	0x1d334: 0x6c18ea20, 0x1d335: 0x6cb16a20, 0x1d336: 0x6cc1c420, 0x1d337: 0x6cb02420,
-	0x1d338: 0x6d21be20, 0x1d339: 0x6c66e420, 0x1d33a: 0x6c955820, 0x1d33b: 0x6c90c220,
-	0x1d33c: 0x6cbdea20, 0x1d33d: 0x6d37ce20, 0x1d33e: 0x6d1b1420, 0x1d33f: 0x6c678820,
-	// Block 0x74d, offset 0x1d340
-	0x1d340: 0x6cd67620, 0x1d341: 0x6cf1b820, 0x1d342: 0x6cff2620, 0x1d343: 0x6ceda020,
-	0x1d344: 0x6d30a220, 0x1d345: 0x6d310820, 0x1d346: 0x6c96f820, 0x1d347: 0x6c967a20,
-	0x1d348: 0x6c4c4820, 0x1d349: 0x6c8eaa20, 0x1d34a: 0x6c990a20, 0x1d34b: 0x6cf6f220,
-	0x1d34c: 0x6c236a20, 0x1d34d: 0x6c846220, 0x1d34e: 0x6c97d020, 0x1d34f: 0x6cff2820,
-	0x1d350: 0x6c173020, 0x1d351: 0x6d2ee220, 0x1d352: 0x6c98a020, 0x1d353: 0x6cfe5e20,
-	0x1d354: 0x6ca17e20, 0x1d355: 0x6d418220, 0x1d356: 0x6cd83c20, 0x1d357: 0x6cbfd420,
-	0x1d358: 0x6ce28820, 0x1d359: 0x6d34ac20, 0x1d35a: 0x6caed820, 0x1d35b: 0x6caeda20,
-	0x1d35c: 0x6c695620, 0x1d35d: 0x6cc1dc20, 0x1d35e: 0x6c0cc220, 0x1d35f: 0x6c8a3c20,
-	0x1d360: 0x6cac8220, 0x1d361: 0x6c4b2220, 0x1d362: 0x6cf81c20, 0x1d363: 0x6c615a20,
-	0x1d364: 0x6d3b9620, 0x1d365: 0x6c5a0e20, 0x1d366: 0x6c3a4220, 0x1d367: 0x6c818420,
-	0x1d368: 0x6c74de20, 0x1d369: 0x6c74e020, 0x1d36a: 0x6c5c7220, 0x1d36b: 0x6d1aa220,
-	0x1d36c: 0x6c153a20, 0x1d36d: 0x6c689c20, 0x1d36e: 0x6ccdcc20, 0x1d36f: 0x6ca4ca20,
-	0x1d370: 0x6cff3e20, 0x1d371: 0x6cf40020, 0x1d372: 0x6c1d2620, 0x1d373: 0x6d0a5020,
-	0x1d374: 0x6cd83e20, 0x1d375: 0x6c1f9c20, 0x1d376: 0x6c19a020, 0x1d377: 0x6c291e20,
-	0x1d378: 0x6c854420, 0x1d379: 0x6d026620, 0x1d37a: 0x6ccdd420, 0x1d37b: 0x6d162420,
-	0x1d37c: 0x6c6e3a20, 0x1d37d: 0x6c26c820, 0x1d37e: 0x6c154420, 0x1d37f: 0x6cb80020,
-	// Block 0x74e, offset 0x1d380
-	0x1d380: 0x6c221820, 0x1d381: 0x6cfe0220, 0x1d382: 0x6ccf7e20, 0x1d383: 0x6c95c820,
-	0x1d384: 0x6cbdb620, 0x1d385: 0x6d1d6e20, 0x1d386: 0x6c14a220, 0x1d387: 0x6c86da20,
-	0x1d388: 0x6d2b6a20, 0x1d389: 0x6d07ea20, 0x1d38a: 0x6c888820, 0x1d38b: 0x6d3a3220,
-	0x1d38c: 0x6d2b1e20, 0x1d38d: 0x6d005a20, 0x1d38e: 0x6c98a420, 0x1d38f: 0x6d026820,
-	0x1d390: 0x6cb69a20, 0x1d391: 0x6cc6e220, 0x1d392: 0x6c661a20, 0x1d393: 0x6c9bf220,
-	0x1d394: 0x6c500220, 0x1d395: 0x6cc7e420, 0x1d396: 0x6c5e3420, 0x1d397: 0x6d3dda20,
-	0x1d398: 0x6c6b7820, 0x1d399: 0x6cb22420, 0x1d39a: 0x6c50aa20, 0x1d39b: 0x6c9f0e20,
-	0x1d39c: 0x6c38ee20, 0x1d39d: 0x6c828a20, 0x1d39e: 0x6c6b7220, 0x1d39f: 0x6c7ec420,
-	0x1d3a0: 0x6c9fda20, 0x1d3a1: 0x6c84ae20, 0x1d3a2: 0x6c219020, 0x1d3a3: 0x6c873220,
-	0x1d3a4: 0x6cbfe620, 0x1d3a5: 0x6ca8bc20, 0x1d3a6: 0x6c919c20, 0x1d3a7: 0x6c328c20,
-	0x1d3a8: 0x6cff5620, 0x1d3a9: 0x6d39ee20, 0x1d3aa: 0x6c8ffc20, 0x1d3ab: 0x6c875620,
-	0x1d3ac: 0x6c8ffe20, 0x1d3ad: 0x6c3c8620, 0x1d3ae: 0x6d127220, 0x1d3af: 0x6c086620,
-	0x1d3b0: 0x6ca46020, 0x1d3b1: 0x6c47f220, 0x1d3b2: 0x6c730e20, 0x1d3b3: 0x6d1c4220,
-	0x1d3b4: 0x6cd63820, 0x1d3b5: 0x6cf75820, 0x1d3b6: 0x6c11c820, 0x1d3b7: 0x6cc22420,
-	0x1d3b8: 0x6cc33c20, 0x1d3b9: 0x6c329020, 0x1d3ba: 0x6c11ca20, 0x1d3bb: 0x6c97ae20,
-	0x1d3bc: 0x6cc22e20, 0x1d3bd: 0x6c6b8e20, 0x1d3be: 0x6d3a4e20, 0x1d3bf: 0x6d3d1820,
-	// Block 0x74f, offset 0x1d3c0
-	0x1d3c0: 0x6d093820, 0x1d3c1: 0x6c598620, 0x1d3c2: 0x6ca9a420, 0x1d3c3: 0x6cadba20,
-	0x1d3c4: 0x6caa8420, 0x1d3c5: 0x6d033020, 0x1d3c6: 0x6d383220, 0x1d3c7: 0x6c973420,
-	0x1d3c8: 0x6c37ce20, 0x1d3c9: 0x6c761220, 0x1d3ca: 0x6c9f1020, 0x1d3cb: 0x6cf93c20,
-	0x1d3cc: 0x6d03ba20, 0x1d3cd: 0x6d0d5c20, 0x1d3ce: 0x6c770620, 0x1d3cf: 0x6d260e20,
-	0x1d3d0: 0x6cc28820, 0x1d3d1: 0x6c8d0220, 0x1d3d2: 0x6d089020, 0x1d3d3: 0x6cd5ca20,
-	0x1d3d4: 0x6cfb5420, 0x1d3d5: 0x6ce7cc20, 0x1d3d6: 0x6cfe3820, 0x1d3d7: 0x6c6a1e20,
-	0x1d3d8: 0x6cfb7020, 0x1d3d9: 0x6d0b3220, 0x1d3da: 0x6c559a20, 0x1d3db: 0x6cf0ca20,
-	0x1d3dc: 0x6c2a2c20, 0x1d3dd: 0x6c1cdc20, 0x1d3de: 0x6cf0d420, 0x1d3df: 0x6c2a3620,
-	0x1d3e0: 0x6d3cd820, 0x1d3e1: 0x6c527020, 0x1d3e2: 0x6cc22620, 0x1d3e3: 0x6d13be20,
-	0x1d3e4: 0x6d198c20, 0x1d3e5: 0x6c103220, 0x1d3e6: 0x6c41ce20, 0x1d3e7: 0x6d20cc20,
-	0x1d3e8: 0x6c0c7020, 0x1d3e9: 0x6c141820, 0x1d3ea: 0x6d147a20, 0x1d3eb: 0x6cccc820,
-	0x1d3ec: 0x6c191e20, 0x1d3ed: 0x6c3d5620, 0x1d3ee: 0x6c4bbc20, 0x1d3ef: 0x6c3b1e20,
-	0x1d3f0: 0x6cd65220, 0x1d3f1: 0x6c6a8820, 0x1d3f2: 0x6ca32020, 0x1d3f3: 0x6d37aa20,
-	0x1d3f4: 0x6c282e20, 0x1d3f5: 0x6d170c20, 0x1d3f6: 0x6d381e20, 0x1d3f7: 0x6d37b220,
-	0x1d3f8: 0x6c6bd220, 0x1d3f9: 0x6d350820, 0x1d3fa: 0x6d009820, 0x1d3fb: 0x6cc46820,
-	0x1d3fc: 0x6d33ba20, 0x1d3fd: 0x6cc5da20, 0x1d3fe: 0x6cbd2620, 0x1d3ff: 0x6c6c3820,
-	// Block 0x750, offset 0x1d400
-	0x1d400: 0x6c756220, 0x1d401: 0x6d255820, 0x1d402: 0x6c9a8620, 0x1d403: 0x6c149620,
-	0x1d404: 0x6c02a220, 0x1d405: 0x6ca79820, 0x1d406: 0x6c5a9e20, 0x1d407: 0x6cc46a20,
-	0x1d408: 0x6c635620, 0x1d409: 0x6ceb1020, 0x1d40a: 0x6c8e0e20, 0x1d40b: 0x6c276620,
-	0x1d40c: 0x6c064a20, 0x1d40d: 0x6cad5620, 0x1d40e: 0x6d120020, 0x1d40f: 0x6d429420,
-	0x1d410: 0x6c097020, 0x1d411: 0x6cced220, 0x1d412: 0x6ce05820, 0x1d413: 0x6c723620,
-	0x1d414: 0x6c51c220, 0x1d415: 0x6d090220, 0x1d416: 0x6d053820, 0x1d417: 0x6d31d220,
-	0x1d418: 0x6d14da20, 0x1d419: 0x6cabea20, 0x1d41a: 0x6c0e6420, 0x1d41b: 0x6c2b2220,
-	0x1d41c: 0x6cec2a20, 0x1d41d: 0x6c3fd620, 0x1d41e: 0x6c4bc420, 0x1d41f: 0x6d35ca20,
-	0x1d420: 0x6d360a20, 0x1d421: 0x6cc47220, 0x1d422: 0x6cacb420, 0x1d423: 0x6d174620,
-	0x1d424: 0x6c997420, 0x1d425: 0x6ceaba20, 0x1d426: 0x6ca32e20, 0x1d427: 0x6c464420,
-	0x1d428: 0x6d088220, 0x1d429: 0x6d304220, 0x1d42a: 0x6cc0f420, 0x1d42b: 0x6c070420,
-	0x1d42c: 0x6c4bc620, 0x1d42d: 0x6cf77c20, 0x1d42e: 0x6ca6ea20, 0x1d42f: 0x6c0ee020,
-	0x1d430: 0x6c0e7220, 0x1d431: 0x6c40ac20, 0x1d432: 0x6c1bac20, 0x1d433: 0x6c1ba220,
-	0x1d434: 0x6c7a9420, 0x1d435: 0x6cc5ea20, 0x1d436: 0x6c67e220, 0x1d437: 0x6c63ba20,
-	0x1d438: 0x6c667e20, 0x1d439: 0x6c0efa20, 0x1d43a: 0x6c6aba20, 0x1d43b: 0x6c375420,
-	0x1d43c: 0x6c438620, 0x1d43d: 0x6cc7a620, 0x1d43e: 0x6d39a020, 0x1d43f: 0x6c4a6020,
-	// Block 0x751, offset 0x1d440
-	0x1d440: 0x6d19d020, 0x1d441: 0x6c111020, 0x1d442: 0x6c8b1020, 0x1d443: 0x6c762220,
-	0x1d444: 0x6d044420, 0x1d445: 0x6d3c1c20, 0x1d446: 0x6c28fc20, 0x1d447: 0x6d05aa20,
-	0x1d448: 0x6c7d5e20, 0x1d449: 0x6c791a20, 0x1d44a: 0x6ca79e20, 0x1d44b: 0x6cd5dc20,
-	0x1d44c: 0x6c63c420, 0x1d44d: 0x6c7db020, 0x1d44e: 0x6c1a1220, 0x1d44f: 0x6c852220,
-	0x1d450: 0x6c72f620, 0x1d451: 0x6ccff420, 0x1d452: 0x6cb3da20, 0x1d453: 0x6c43fa20,
-	0x1d454: 0x6d180820, 0x1d455: 0x6d235620, 0x1d456: 0x6d31da20, 0x1d457: 0x6c8e6020,
-	0x1d458: 0x6cc07e20, 0x1d459: 0x6cc44820, 0x1d45a: 0x6c622620, 0x1d45b: 0x6d180a20,
-	0x1d45c: 0x6c103e20, 0x1d45d: 0x6d3c1e20, 0x1d45e: 0x6cd72420, 0x1d45f: 0x6ccc0420,
-	0x1d460: 0x6cc44e20, 0x1d461: 0x6c87e220, 0x1d462: 0x6c880620, 0x1d463: 0x6c88c020,
-	0x1d464: 0x6c7a9e20, 0x1d465: 0x6c659e20, 0x1d466: 0x6c3d1820, 0x1d467: 0x6c14d020,
-	0x1d468: 0x6c09e020, 0x1d469: 0x6c7d7020, 0x1d46a: 0x6ce22e20, 0x1d46b: 0x6d262a20,
-	0x1d46c: 0x6c8d2220, 0x1d46d: 0x6c1bb420, 0x1d46e: 0x6c167420, 0x1d46f: 0x6c1dc420,
-	0x1d470: 0x6c343220, 0x1d471: 0x6c0c7420, 0x1d472: 0x6c899620, 0x1d473: 0x6cce5c20,
-	0x1d474: 0x6cade020, 0x1d475: 0x6cade220, 0x1d476: 0x6c3a0e20, 0x1d477: 0x6d24fe20,
-	0x1d478: 0x6c95b820, 0x1d479: 0x6c4cca20, 0x1d47a: 0x6d0daa20, 0x1d47b: 0x6c31aa20,
-	0x1d47c: 0x6ce40420, 0x1d47d: 0x6d369a20, 0x1d47e: 0x6c70ae20, 0x1d47f: 0x6d15fa20,
-	// Block 0x752, offset 0x1d480
-	0x1d480: 0x6c622820, 0x1d481: 0x6d346c20, 0x1d482: 0x6c48ba20, 0x1d483: 0x6c791c20,
-	0x1d484: 0x6cb81620, 0x1d485: 0x6ce40a20, 0x1d486: 0x6ce35820, 0x1d487: 0x6c402420,
-	0x1d488: 0x6c1d1a20, 0x1d489: 0x6d01f020, 0x1d48a: 0x6c0b4820, 0x1d48b: 0x6c2ed820,
-	0x1d48c: 0x6c7d7c20, 0x1d48d: 0x6c32a020, 0x1d48e: 0x6d054a20, 0x1d48f: 0x6d054c20,
-	0x1d490: 0x6c51d620, 0x1d491: 0x6d262c20, 0x1d492: 0x6c05ba20, 0x1d493: 0x6c060620,
-	0x1d494: 0x6c402620, 0x1d495: 0x6d217c20, 0x1d496: 0x6ce98c20, 0x1d497: 0x6d0dc420,
-	0x1d498: 0x6c5adc20, 0x1d499: 0x6c074420, 0x1d49a: 0x6c1ee220, 0x1d49b: 0x6c93aa20,
-	0x1d49c: 0x6cadaa20, 0x1d49d: 0x6c27ee20, 0x1d49e: 0x6d27f420, 0x1d49f: 0x6cddf820,
-	0x1d4a0: 0x6c465c20, 0x1d4a1: 0x6c265c20, 0x1d4a2: 0x6c57ee20, 0x1d4a3: 0x6cc6aa20,
-	0x1d4a4: 0x6d262e20, 0x1d4a5: 0x6cc82620, 0x1d4a6: 0x6ca3d420, 0x1d4a7: 0x6c6f3220,
-	0x1d4a8: 0x6cdd8620, 0x1d4a9: 0x6c04a220, 0x1d4aa: 0x6cea0a20, 0x1d4ab: 0x6c1bbe20,
-	0x1d4ac: 0x6cca8a20, 0x1d4ad: 0x6ca7ae20, 0x1d4ae: 0x6d1bec20, 0x1d4af: 0x6c6bfa20,
-	0x1d4b0: 0x6cb91e20, 0x1d4b1: 0x6c57f420, 0x1d4b2: 0x6c7aa820, 0x1d4b3: 0x6c884220,
-	0x1d4b4: 0x6c7fae20, 0x1d4b5: 0x6c843420, 0x1d4b6: 0x6d30de20, 0x1d4b7: 0x6cd1fc20,
-	0x1d4b8: 0x6c93b620, 0x1d4b9: 0x6d18b820, 0x1d4ba: 0x6c2e5e20, 0x1d4bb: 0x6d023220,
-	0x1d4bc: 0x6cfae020, 0x1d4bd: 0x6cf0ea20, 0x1d4be: 0x6c0c7e20, 0x1d4bf: 0x6c129620,
-	// Block 0x753, offset 0x1d4c0
-	0x1d4c0: 0x6c5f4620, 0x1d4c1: 0x6cbb4c20, 0x1d4c2: 0x6ccbb020, 0x1d4c3: 0x6c05bc20,
-	0x1d4c4: 0x6cfd8c20, 0x1d4c5: 0x6c0ae420, 0x1d4c6: 0x6c3f0c20, 0x1d4c7: 0x6c65e620,
-	0x1d4c8: 0x6d3bea20, 0x1d4c9: 0x6c65e820, 0x1d4ca: 0x6c257020, 0x1d4cb: 0x6c60c820,
-	0x1d4cc: 0x6c280620, 0x1d4cd: 0x6d28d020, 0x1d4ce: 0x6c38cc20, 0x1d4cf: 0x6c0f7e20,
-	0x1d4d0: 0x6cfe5a20, 0x1d4d1: 0x6d030420, 0x1d4d2: 0x6c0cf820, 0x1d4d3: 0x6cc52e20,
-	0x1d4d4: 0x6c97ca20, 0x1d4d5: 0x6c7fc620, 0x1d4d6: 0x6c02b220, 0x1d4d7: 0x6d2b1620,
-	0x1d4d8: 0x6c4b8e20, 0x1d4d9: 0x6c12bc20, 0x1d4da: 0x6cdc9220, 0x1d4db: 0x6ca9d620,
-	0x1d4dc: 0x6c14dc20, 0x1d4dd: 0x6c88d220, 0x1d4de: 0x6c0aac20, 0x1d4df: 0x6c6c6a20,
-	0x1d4e0: 0x6c291620, 0x1d4e1: 0x6cd58220, 0x1d4e2: 0x6ce08020, 0x1d4e3: 0x6c0aae20,
-	0x1d4e4: 0x6c7fd820, 0x1d4e5: 0x6cb46e20, 0x1d4e6: 0x6cc7e020, 0x1d4e7: 0x6d355e20,
-	0x1d4e8: 0x6c32ec20, 0x1d4e9: 0x6cd58620, 0x1d4ea: 0x6cec4220, 0x1d4eb: 0x6cd40020,
-	0x1d4ec: 0x6c042c20, 0x1d4ed: 0x6d012020, 0x1d4ee: 0x6c0fbe20, 0x1d4ef: 0x6c194220,
-	0x1d4f0: 0x6c7f7c20, 0x1d4f1: 0x6c8fee20, 0x1d4f2: 0x6cf7c420, 0x1d4f3: 0x6cfb0c20,
-	0x1d4f4: 0x6c800220, 0x1d4f5: 0x6d30e220, 0x1d4f6: 0x6c27aa20, 0x1d4f7: 0x6c72d820,
-	0x1d4f8: 0x6d29c620, 0x1d4f9: 0x6cd21c20, 0x1d4fa: 0x6c663820, 0x1d4fb: 0x6cacc620,
-	0x1d4fc: 0x6d196820, 0x1d4fd: 0x6c809c20, 0x1d4fe: 0x6d0b7020, 0x1d4ff: 0x6cf94020,
-	// Block 0x754, offset 0x1d500
-	0x1d500: 0x6cf57420, 0x1d501: 0x6d11f820, 0x1d502: 0x6c3cc820, 0x1d503: 0x6cdfe620,
-	0x1d504: 0x6c40b420, 0x1d505: 0x6c3d0620, 0x1d506: 0x6c407e20, 0x1d507: 0x6c03c820,
-	0x1d508: 0x6c519620, 0x1d509: 0x6c5fa420, 0x1d50a: 0x6c5fb420, 0x1d50b: 0x6c665220,
-	0x1d50c: 0x6c490820, 0x1d50d: 0x6c0b9020, 0x1d50e: 0x6d0e5620, 0x1d50f: 0x6c4a6220,
-	0x1d510: 0x6c743020, 0x1d511: 0x6cb13a20, 0x1d512: 0x6c997620, 0x1d513: 0x6c9d4020,
-	0x1d514: 0x6c9d4220, 0x1d515: 0x6c9ed620, 0x1d516: 0x6cd36c20, 0x1d517: 0x6cd8c420,
-	0x1d518: 0x6c14cc20, 0x1d519: 0x6c954a20, 0x1d51a: 0x6c745a20, 0x1d51b: 0x6c9d6020,
-	0x1d51c: 0x6ce5da20, 0x1d51d: 0x6c882620, 0x1d51e: 0x6d121820, 0x1d51f: 0x6d369c20,
-	0x1d520: 0x6c757a20, 0x1d521: 0x6cf79620, 0x1d522: 0x6ccd5a20, 0x1d523: 0x6ceeb620,
-	0x1d524: 0x6cf8d220, 0x1d525: 0x6ce51220, 0x1d526: 0x6d21a620, 0x1d527: 0x6c803e20,
-	0x1d528: 0x6c36aa20, 0x1d529: 0x6c322a20, 0x1d52a: 0x6cbd3e20, 0x1d52b: 0x6cad2220,
-	0x1d52c: 0x6c62a220, 0x1d52d: 0x6ca01e20, 0x1d52e: 0x6d1caa20, 0x1d52f: 0x6c46dc20,
-	0x1d530: 0x6cc15020, 0x1d531: 0x6d2e8c20, 0x1d532: 0x6c6d6c20, 0x1d533: 0x6c492c20,
-	0x1d534: 0x6c2abc20, 0x1d535: 0x6c670420, 0x1d536: 0x6c956420, 0x1d537: 0x6cc28220,
-	0x1d538: 0x6c652620, 0x1d539: 0x6cef6220, 0x1d53a: 0x6c750220, 0x1d53b: 0x6cc15c20,
-	0x1d53c: 0x6c956a20, 0x1d53d: 0x6c805420, 0x1d53e: 0x6cd08a20, 0x1d53f: 0x6c2bba20,
-	// Block 0x755, offset 0x1d540
-	0x1d540: 0x6c494420, 0x1d541: 0x6c664e20, 0x1d542: 0x6c490220, 0x1d543: 0x6d0e3e20,
-	0x1d544: 0x6c4a3a20, 0x1d545: 0x6c9d2a20, 0x1d546: 0x6cd32020, 0x1d547: 0x6c14be20,
-	0x1d548: 0x6c802020, 0x1d549: 0x6c740a20, 0x1d54a: 0x6c61d620, 0x1d54b: 0x6cf77e20,
-	0x1d54c: 0x6c2b6e20, 0x1d54d: 0x6ce4fc20, 0x1d54e: 0x6d216820, 0x1d54f: 0x6c46cc20,
-	0x1d550: 0x6c6d4620, 0x1d551: 0x6cc27220, 0x1d552: 0x6c68c620, 0x1d553: 0x6cc01820,
-	0x1d554: 0x6c6c3a20, 0x1d555: 0x6c241220, 0x1d556: 0x6c743220, 0x1d557: 0x6d360c20,
-	0x1d558: 0x6c17bc20, 0x1d559: 0x6c600a20, 0x1d55a: 0x6c471220, 0x1d55b: 0x6c289020,
-	0x1d55c: 0x6d3e5820, 0x1d55d: 0x6c2bf820, 0x1d55e: 0x6cce0420, 0x1d55f: 0x6c57a020,
-	0x1d560: 0x6cc30220, 0x1d561: 0x6c440c20, 0x1d562: 0x6cd3a020, 0x1d563: 0x6c6b9820,
-	0x1d564: 0x6c4b0a20, 0x1d565: 0x6c459820, 0x1d566: 0x6c1f5c20, 0x1d567: 0x6c6b9a20,
-	0x1d568: 0x6c5d3a20, 0x1d569: 0x6cc08420, 0x1d56a: 0x6d039020, 0x1d56b: 0x6cdaf220,
-	0x1d56c: 0x6ca60220, 0x1d56d: 0x6c5f1e20, 0x1d56e: 0x6c92b420, 0x1d56f: 0x6d36c020,
-	0x1d570: 0x6d2bfa20, 0x1d571: 0x6c0a5e20, 0x1d572: 0x6d03a620, 0x1d573: 0x6c55cc20,
-	0x1d574: 0x6cce2220, 0x1d575: 0x6c45be20, 0x1d576: 0x6d374820, 0x1d577: 0x6d092820,
-	0x1d578: 0x6c1f8a20, 0x1d579: 0x6cf71a20, 0x1d57a: 0x6d159420, 0x1d57b: 0x6c877e20,
-	0x1d57c: 0x6c750e20, 0x1d57d: 0x6cf75020, 0x1d57e: 0x6d0f0c20, 0x1d57f: 0x6cf75e20,
-	// Block 0x756, offset 0x1d580
-	0x1d580: 0x6d0c5c20, 0x1d581: 0x6d0f3620, 0x1d582: 0x6c2f9a20, 0x1d583: 0x6c3fc620,
-	0x1d584: 0x6cc01a20, 0x1d585: 0x6cc01c20, 0x1d586: 0x6c698a20, 0x1d587: 0x6c529c20,
-	0x1d588: 0x6c61b820, 0x1d589: 0x6c384c20, 0x1d58a: 0x6d0a7e20, 0x1d58b: 0x6c2e1420,
-	0x1d58c: 0x6c53b820, 0x1d58d: 0x6c149820, 0x1d58e: 0x6ce25c20, 0x1d58f: 0x6d058620,
-	0x1d590: 0x6c6aaa20, 0x1d591: 0x6d14dc20, 0x1d592: 0x6cc5e020, 0x1d593: 0x6d0ac020,
-	0x1d594: 0x6d1a4e20, 0x1d595: 0x6ccd7e20, 0x1d596: 0x6cb77020, 0x1d597: 0x6ceabc20,
-	0x1d598: 0x6c61d820, 0x1d599: 0x6d0a8020, 0x1d59a: 0x6d1a5020, 0x1d59b: 0x6c356020,
-	0x1d59c: 0x6c3b2c20, 0x1d59d: 0x6d0ba420, 0x1d59e: 0x6d109e20, 0x1d59f: 0x6cd98c20,
-	0x1d5a0: 0x6cd06020, 0x1d5a1: 0x6d1a5e20, 0x1d5a2: 0x6d02ce20, 0x1d5a3: 0x6c743420,
-	0x1d5a4: 0x6cff8620, 0x1d5a5: 0x6ca54e20, 0x1d5a6: 0x6c18c020, 0x1d5a7: 0x6d1f2e20,
-	0x1d5a8: 0x6d352220, 0x1d5a9: 0x6d046820, 0x1d5aa: 0x6c39d620, 0x1d5ab: 0x6d033220,
-	0x1d5ac: 0x6c174020, 0x1d5ad: 0x6ccf4420, 0x1d5ae: 0x6cfaa220, 0x1d5af: 0x6cc94e20,
-	0x1d5b0: 0x6d3ce220, 0x1d5b1: 0x6d063c20, 0x1d5b2: 0x6d177820, 0x1d5b3: 0x6d177a20,
-	0x1d5b4: 0x6cdb7a20, 0x1d5b5: 0x6c1ab220, 0x1d5b6: 0x6c509e20, 0x1d5b7: 0x6ccff620,
-	0x1d5b8: 0x6c512c20, 0x1d5b9: 0x6d06e620, 0x1d5ba: 0x6d31de20, 0x1d5bb: 0x6d3afa20,
-	0x1d5bc: 0x6d334e20, 0x1d5bd: 0x6c46a820, 0x1d5be: 0x6d3e5c20, 0x1d5bf: 0x6d3f1c20,
-	// Block 0x757, offset 0x1d5c0
-	0x1d5c0: 0x6d2d7820, 0x1d5c1: 0x6c479420, 0x1d5c2: 0x6c3ffe20, 0x1d5c3: 0x6c65a020,
-	0x1d5c4: 0x6c2eb420, 0x1d5c5: 0x6c8d0a20, 0x1d5c6: 0x6c2bfa20, 0x1d5c7: 0x6d104e20,
-	0x1d5c8: 0x6c861c20, 0x1d5c9: 0x6ca4b020, 0x1d5ca: 0x6cacb820, 0x1d5cb: 0x6d392e20,
-	0x1d5cc: 0x6c422220, 0x1d5cd: 0x6d17c420, 0x1d5ce: 0x6c724420, 0x1d5cf: 0x6d120c20,
-	0x1d5d0: 0x6d2cc820, 0x1d5d1: 0x6d150020, 0x1d5d2: 0x6d150220, 0x1d5d3: 0x6cc24a20,
-	0x1d5d4: 0x6d2fb620, 0x1d5d5: 0x6cb2b220, 0x1d5d6: 0x6c09ac20, 0x1d5d7: 0x6d049620,
-	0x1d5d8: 0x6cc11620, 0x1d5d9: 0x6c037c20, 0x1d5da: 0x6c26aa20, 0x1d5db: 0x6d411e20,
-	0x1d5dc: 0x6ce1cc20, 0x1d5dd: 0x6d3a7220, 0x1d5de: 0x6c224820, 0x1d5df: 0x6d305e20,
-	0x1d5e0: 0x6d1e3e20, 0x1d5e1: 0x6d064620, 0x1d5e2: 0x6d0a2020, 0x1d5e3: 0x6d180c20,
-	0x1d5e4: 0x6c5a5620, 0x1d5e5: 0x6c514420, 0x1d5e6: 0x6cd3a220, 0x1d5e7: 0x6c13f020,
-	0x1d5e8: 0x6cfff820, 0x1d5e9: 0x6cd1d820, 0x1d5ea: 0x6c523e20, 0x1d5eb: 0x6c144420,
-	0x1d5ec: 0x6c46ba20, 0x1d5ed: 0x6c4b0c20, 0x1d5ee: 0x6cc30420, 0x1d5ef: 0x6c5bea20,
-	0x1d5f0: 0x6c6afc20, 0x1d5f1: 0x6c57a220, 0x1d5f2: 0x6c40fc20, 0x1d5f3: 0x6cfdca20,
-	0x1d5f4: 0x6ceea420, 0x1d5f5: 0x6ccffc20, 0x1d5f6: 0x6d393420, 0x1d5f7: 0x6ce75c20,
-	0x1d5f8: 0x6c9c6220, 0x1d5f9: 0x6d2d8420, 0x1d5fa: 0x6ca04620, 0x1d5fb: 0x6c366420,
-	0x1d5fc: 0x6c5ace20, 0x1d5fd: 0x6d0cb220, 0x1d5fe: 0x6d046e20, 0x1d5ff: 0x6c48bc20,
-	// Block 0x758, offset 0x1d600
-	0x1d600: 0x6c37d220, 0x1d601: 0x6c0e2420, 0x1d602: 0x6ce5c420, 0x1d603: 0x6d152020,
-	0x1d604: 0x6c82ca20, 0x1d605: 0x6d39b420, 0x1d606: 0x6c7ba420, 0x1d607: 0x6c7ac620,
-	0x1d608: 0x6cf3dc20, 0x1d609: 0x6d238220, 0x1d60a: 0x6ce2a420, 0x1d60b: 0x6c625220,
-	0x1d60c: 0x6d36a020, 0x1d60d: 0x6cc60220, 0x1d60e: 0x6c244e20, 0x1d60f: 0x6c810c20,
-	0x1d610: 0x6c357a20, 0x1d611: 0x6c7bc620, 0x1d612: 0x6c370c20, 0x1d613: 0x6cd3b820,
-	0x1d614: 0x6ce6d820, 0x1d615: 0x6c289620, 0x1d616: 0x6c074620, 0x1d617: 0x6c151020,
-	0x1d618: 0x6d205620, 0x1d619: 0x6c794a20, 0x1d61a: 0x6cbc4e20, 0x1d61b: 0x6cbd3820,
-	0x1d61c: 0x6cd65020, 0x1d61d: 0x6c014220, 0x1d61e: 0x6d227c20, 0x1d61f: 0x6cfffe20,
-	0x1d620: 0x6c1a2220, 0x1d621: 0x6c6bf420, 0x1d622: 0x6cfcee20, 0x1d623: 0x6cf37a20,
-	0x1d624: 0x6cf51020, 0x1d625: 0x6c435620, 0x1d626: 0x6cd99a20, 0x1d627: 0x6c101a20,
-	0x1d628: 0x6c5c0420, 0x1d629: 0x6c6e9820, 0x1d62a: 0x6cd76a20, 0x1d62b: 0x6d325220,
-	0x1d62c: 0x6cd76c20, 0x1d62d: 0x6c31ae20, 0x1d62e: 0x6c57e420, 0x1d62f: 0x6c172420,
-	0x1d630: 0x6cd6fe20, 0x1d631: 0x6c6b2820, 0x1d632: 0x6c78d420, 0x1d633: 0x6cc13a20,
-	0x1d634: 0x6c23ac20, 0x1d635: 0x6cff9820, 0x1d636: 0x6cdc6420, 0x1d637: 0x6cee3620,
-	0x1d638: 0x6cfb8620, 0x1d639: 0x6c3a6c20, 0x1d63a: 0x6c1ad220, 0x1d63b: 0x6cde9220,
-	0x1d63c: 0x6d186620, 0x1d63d: 0x6ca6c220, 0x1d63e: 0x6d1a9a20, 0x1d63f: 0x6c2e3820,
-	// Block 0x759, offset 0x1d640
-	0x1d640: 0x6cb06820, 0x1d641: 0x6d3d8c20, 0x1d642: 0x6c15de20, 0x1d643: 0x6c188420,
-	0x1d644: 0x6d3cd620, 0x1d645: 0x6c626a20, 0x1d646: 0x6cb52820, 0x1d647: 0x6ce00820,
-	0x1d648: 0x6d3ca420, 0x1d649: 0x6cf00c20, 0x1d64a: 0x6c714c20, 0x1d64b: 0x6cbeb220,
-	0x1d64c: 0x6c303c20, 0x1d64d: 0x6d335420, 0x1d64e: 0x6d2af220, 0x1d64f: 0x6d406020,
-	0x1d650: 0x6cb91620, 0x1d651: 0x6d3d8e20, 0x1d652: 0x6c89c820, 0x1d653: 0x6c66c020,
-	0x1d654: 0x6c1f6e20, 0x1d655: 0x6c4fe420, 0x1d656: 0x6c952620, 0x1d657: 0x6cd06e20,
-	0x1d658: 0x6c0c7820, 0x1d659: 0x6c581220, 0x1d65a: 0x6cb12620, 0x1d65b: 0x6d219420,
-	0x1d65c: 0x6c2eea20, 0x1d65d: 0x6d05e820, 0x1d65e: 0x6cb14220, 0x1d65f: 0x6cd3de20,
-	0x1d660: 0x6d07d220, 0x1d661: 0x6cd3e020, 0x1d662: 0x6c5d4220, 0x1d663: 0x6c57c020,
-	0x1d664: 0x6c36ac20, 0x1d665: 0x6d384020, 0x1d666: 0x6c2c9c20, 0x1d667: 0x6d00f220,
-	0x1d668: 0x6c3ef620, 0x1d669: 0x6cb49420, 0x1d66a: 0x6ce69020, 0x1d66b: 0x6c66d620,
-	0x1d66c: 0x6cb71e20, 0x1d66d: 0x6d23f620, 0x1d66e: 0x6d3e9020, 0x1d66f: 0x6d3b9420,
-	0x1d670: 0x6cf81420, 0x1d671: 0x6c5c4220, 0x1d672: 0x6d1a0220, 0x1d673: 0x6c015020,
-	0x1d674: 0x6cfb9e20, 0x1d675: 0x6ca40e20, 0x1d676: 0x6c18ec20, 0x1d677: 0x6c3cce20,
-	0x1d678: 0x6d39c620, 0x1d679: 0x6d0fd820, 0x1d67a: 0x6d0ec420, 0x1d67b: 0x6c5a0020,
-	0x1d67c: 0x6d07d420, 0x1d67d: 0x6c443a20, 0x1d67e: 0x6cab0e20, 0x1d67f: 0x6cb53220,
-	// Block 0x75a, offset 0x1d680
-	0x1d680: 0x6ca1e820, 0x1d681: 0x6d134620, 0x1d682: 0x6cf0d620, 0x1d683: 0x6d044620,
-	0x1d684: 0x6ce2ba20, 0x1d685: 0x6d38b620, 0x1d686: 0x6ccdc020, 0x1d687: 0x6c65ec20,
-	0x1d688: 0x6cb33a20, 0x1d689: 0x6c7d2220, 0x1d68a: 0x6c5a6420, 0x1d68b: 0x6c5e0c20,
-	0x1d68c: 0x6c43b620, 0x1d68d: 0x6d1cac20, 0x1d68e: 0x6c9c7420, 0x1d68f: 0x6cffc020,
-	0x1d690: 0x6c9d9820, 0x1d691: 0x6cf81a20, 0x1d692: 0x6cbae220, 0x1d693: 0x6c188c20,
-	0x1d694: 0x6d097220, 0x1d695: 0x6ce38820, 0x1d696: 0x6cdb4a20, 0x1d697: 0x6c059420,
-	0x1d698: 0x6c1b5a20, 0x1d699: 0x6cb92820, 0x1d69a: 0x6cd3ea20, 0x1d69b: 0x6c67c820,
-	0x1d69c: 0x6d25b620, 0x1d69d: 0x6d023620, 0x1d69e: 0x6c51f620, 0x1d69f: 0x6ce1f220,
-	0x1d6a0: 0x6d115020, 0x1d6a1: 0x6d115220, 0x1d6a2: 0x6d378020, 0x1d6a3: 0x6d21c820,
-	0x1d6a4: 0x6c0c4020, 0x1d6a5: 0x6c23e020, 0x1d6a6: 0x6cbee620, 0x1d6a7: 0x6c846420,
-	0x1d6a8: 0x6ca08020, 0x1d6a9: 0x6ca17620, 0x1d6aa: 0x6cce2420, 0x1d6ab: 0x6d30b020,
-	0x1d6ac: 0x6ca05420, 0x1d6ad: 0x6c660420, 0x1d6ae: 0x6d2b1820, 0x1d6af: 0x6c6a3a20,
-	0x1d6b0: 0x6c886e20, 0x1d6b1: 0x6c90c620, 0x1d6b2: 0x6c121020, 0x1d6b3: 0x6cab5e20,
-	0x1d6b4: 0x6c4c0620, 0x1d6b5: 0x6cf7ae20, 0x1d6b6: 0x6d3dc020, 0x1d6b7: 0x6c027a20,
-	0x1d6b8: 0x6c027c20, 0x1d6b9: 0x6c6cc220, 0x1d6ba: 0x6d30b220, 0x1d6bb: 0x6d158620,
-	0x1d6bc: 0x6c551220, 0x1d6bd: 0x6c680e20, 0x1d6be: 0x6c978e20, 0x1d6bf: 0x6c178a20,
-	// Block 0x75b, offset 0x1d6c0
-	0x1d6c0: 0x6c4f2620, 0x1d6c1: 0x6c576020, 0x1d6c2: 0x6c160020, 0x1d6c3: 0x6d060020,
-	0x1d6c4: 0x6d2ba420, 0x1d6c5: 0x6ccb9220, 0x1d6c6: 0x6cf71c20, 0x1d6c7: 0x6d2c0420,
-	0x1d6c8: 0x6c337a20, 0x1d6c9: 0x6d336c20, 0x1d6ca: 0x6ca4ce20, 0x1d6cb: 0x6c7fda20,
-	0x1d6cc: 0x6c359820, 0x1d6cd: 0x6d1c2620, 0x1d6ce: 0x6c74ee20, 0x1d6cf: 0x6c5f8220,
-	0x1d6d0: 0x6d421220, 0x1d6d1: 0x6c696020, 0x1d6d2: 0x6c0ffc20, 0x1d6d3: 0x6c5c8620,
-	0x1d6d4: 0x6d3bf420, 0x1d6d5: 0x6cf40820, 0x1d6d6: 0x6d2b7a20, 0x1d6d7: 0x6d2c6220,
-	0x1d6d8: 0x6cd42220, 0x1d6d9: 0x6cbc6c20, 0x1d6da: 0x6ce03620, 0x1d6db: 0x6d2b7c20,
-	0x1d6dc: 0x6cb4a020, 0x1d6dd: 0x6cd12820, 0x1d6de: 0x6d07ee20, 0x1d6df: 0x6d2a9820,
-	0x1d6e0: 0x6ce04020, 0x1d6e1: 0x6c293620, 0x1d6e2: 0x6cdcac20, 0x1d6e3: 0x6cfc4e20,
-	0x1d6e4: 0x6c5f8c20, 0x1d6e5: 0x6c69d820, 0x1d6e6: 0x6c6e3c20, 0x1d6e7: 0x6d2e9820,
-	0x1d6e8: 0x6ca45c20, 0x1d6e9: 0x6d143220, 0x1d6ea: 0x6c010420, 0x1d6eb: 0x6d2dbc20,
-	0x1d6ec: 0x6cb0d820, 0x1d6ed: 0x6c5b7e20, 0x1d6ee: 0x6c57d420, 0x1d6ef: 0x6d193220,
-	0x1d6f0: 0x6d193420, 0x1d6f1: 0x6ccdd620, 0x1d6f2: 0x6cc51c20, 0x1d6f3: 0x6caa3220,
-	0x1d6f4: 0x6cba3220, 0x1d6f5: 0x6d3cbe20, 0x1d6f6: 0x6cdee420, 0x1d6f7: 0x6c56e020,
-	0x1d6f8: 0x6d38c420, 0x1d6f9: 0x6c500420, 0x1d6fa: 0x6c010620, 0x1d6fb: 0x6d1c3420,
-	0x1d6fc: 0x6c671a20, 0x1d6fd: 0x6d246620, 0x1d6fe: 0x6c662c20, 0x1d6ff: 0x6c5c9c20,
-	// Block 0x75c, offset 0x1d700
-	0x1d700: 0x6c31f020, 0x1d701: 0x6d30bc20, 0x1d702: 0x6d08d020, 0x1d703: 0x6d29bc20,
-	0x1d704: 0x6c830c20, 0x1d705: 0x6cd08c20, 0x1d706: 0x6cf12220, 0x1d707: 0x6c161a20,
-	0x1d708: 0x6c879020, 0x1d709: 0x6d159a20, 0x1d70a: 0x6c0bdc20, 0x1d70b: 0x6d30c820,
-	0x1d70c: 0x6d0f0e20, 0x1d70d: 0x6c36f220, 0x1d70e: 0x6c1e0e20, 0x1d70f: 0x6cf12a20,
-	0x1d710: 0x6c1e1020, 0x1d711: 0x6d125620, 0x1d712: 0x6c157c20, 0x1d713: 0x6cc51e20,
-	0x1d714: 0x6d1b2c20, 0x1d715: 0x6c801020, 0x1d716: 0x6c194820, 0x1d717: 0x6d013820,
-	0x1d718: 0x6ca8cc20, 0x1d719: 0x6c584c20, 0x1d71a: 0x6d29ca20, 0x1d71b: 0x6d197c20,
-	0x1d71c: 0x6c294a20, 0x1d71d: 0x6d2dda20, 0x1d71e: 0x6d0f2a20, 0x1d71f: 0x6c321020,
-	0x1d720: 0x6d0c5020, 0x1d721: 0x6c616e20, 0x1d722: 0x6c2f8c20, 0x1d723: 0x6c3fa220,
-	0x1d724: 0x6cc5a420, 0x1d725: 0x6c5e6620, 0x1d726: 0x6c6a5c20, 0x1d727: 0x6c53b420,
-	0x1d728: 0x6ce25820, 0x1d729: 0x6cc51820, 0x1d72a: 0x6ccd6620, 0x1d72b: 0x6cb72820,
-	0x1d72c: 0x6cea9420, 0x1d72d: 0x6d0abe20, 0x1d72e: 0x6d164e20, 0x1d72f: 0x6d0a6220,
-	0x1d730: 0x6c617020, 0x1d731: 0x6cc5aa20, 0x1d732: 0x6c679c20, 0x1d733: 0x6c5b8c20,
-	0x1d734: 0x6cab2c20, 0x1d735: 0x6c71f420, 0x1d736: 0x6d0b7220, 0x1d737: 0x6ca54220,
-	0x1d738: 0x6d062420, 0x1d739: 0x6c354620, 0x1d73a: 0x6c952020, 0x1d73b: 0x6d045220,
-	0x1d73c: 0x6cd97c20, 0x1d73d: 0x6c3cc420, 0x1d73e: 0x6ccf3220, 0x1d73f: 0x6c39b820,
-	// Block 0x75d, offset 0x1d740
-	0x1d740: 0x6c73d620, 0x1d741: 0x6d333a20, 0x1d742: 0x6c475a20, 0x1d743: 0x6c508a20,
-	0x1d744: 0x6cb27020, 0x1d745: 0x6d410820, 0x1d746: 0x6cd40e20, 0x1d747: 0x6d048620,
-	0x1d748: 0x6d2caa20, 0x1d749: 0x6cdb7820, 0x1d74a: 0x6d31b420, 0x1d74b: 0x6c2bce20,
-	0x1d74c: 0x6d385420, 0x1d74d: 0x6c221e20, 0x1d74e: 0x6cc0d420, 0x1d74f: 0x6d2f9820,
-	0x1d750: 0x6c092020, 0x1d751: 0x6d169c20, 0x1d752: 0x6d146620, 0x1d753: 0x6c7b8620,
-	0x1d754: 0x6c82b620, 0x1d755: 0x6cd32220, 0x1d756: 0x6c48aa20, 0x1d757: 0x6cd19c20,
-	0x1d758: 0x6c5fe420, 0x1d759: 0x6c5a8c20, 0x1d75a: 0x6c19c020, 0x1d75b: 0x6d398420,
-	0x1d75c: 0x6ccfb420, 0x1d75d: 0x6c578620, 0x1d75e: 0x6c286c20, 0x1d75f: 0x6c469620,
-	0x1d760: 0x6cc2ba20, 0x1d761: 0x6c4aca20, 0x1d762: 0x6d09e020, 0x1d763: 0x6d16d220,
-	0x1d764: 0x6d328e20, 0x1d765: 0x6c40de20, 0x1d766: 0x6cfdb020, 0x1d767: 0x6c143220,
-	0x1d768: 0x6c5d1a20, 0x1d769: 0x6d062e20, 0x1d76a: 0x6d386220, 0x1d76b: 0x6c6bd420,
-	0x1d76c: 0x6cf35c20, 0x1d76d: 0x6d223020, 0x1d76e: 0x6cbc3220, 0x1d76f: 0x6cf4ce20,
-	0x1d770: 0x6c433c20, 0x1d771: 0x6d203220, 0x1d772: 0x6c5ba420, 0x1d773: 0x6c7bbc20,
-	0x1d774: 0x6cd76620, 0x1d775: 0x6cd98220, 0x1d776: 0x6c370a20, 0x1d777: 0x6cbea220,
-	0x1d778: 0x6d399620, 0x1d779: 0x6d404a20, 0x1d77a: 0x6caae620, 0x1d77b: 0x6c319420,
-	0x1d77c: 0x6d3d3e20, 0x1d77d: 0x6c3a4e20, 0x1d77e: 0x6c789c20, 0x1d77f: 0x6cefa620,
-	// Block 0x75e, offset 0x1d780
-	0x1d780: 0x6d20f820, 0x1d781: 0x6cd6fa20, 0x1d782: 0x6cd05420, 0x1d783: 0x6c2e1620,
-	0x1d784: 0x6c15a220, 0x1d785: 0x6c89b020, 0x1d786: 0x6d3cd020, 0x1d787: 0x6cdc3220,
-	0x1d788: 0x6cdfd620, 0x1d789: 0x6cd05620, 0x1d78a: 0x6d174820, 0x1d78b: 0x6ca1d020,
-	0x1d78c: 0x6c18c220, 0x1d78d: 0x6c2e9620, 0x1d78e: 0x6c5a5220, 0x1d78f: 0x6c668220,
-	0x1d790: 0x6d00a620, 0x1d791: 0x6d095a20, 0x1d792: 0x6d12ea20, 0x1d793: 0x6cf08820,
-	0x1d794: 0x6c361a20, 0x1d795: 0x6d232420, 0x1d796: 0x6d078e20, 0x1d797: 0x6c14f020,
-	0x1d798: 0x6d3e2c20, 0x1d799: 0x6c012c20, 0x1d79a: 0x6d0e6620, 0x1d79b: 0x6c2c5020,
-	0x1d79c: 0x6c9c4e20, 0x1d79d: 0x6cb13c20, 0x1d79e: 0x6d059020, 0x1d79f: 0x6ca05820,
-	0x1d7a0: 0x6c292e20, 0x1d7a1: 0x6cdab820, 0x1d7a2: 0x6d01b620, 0x1d7a3: 0x6d10fe20,
-	0x1d7a4: 0x6c057420, 0x1d7a5: 0x6cd38c20, 0x1d7a6: 0x6cb8e420, 0x1d7a7: 0x6c9d4c20,
-	0x1d7a8: 0x6c6c9820, 0x1d7a9: 0x6c976820, 0x1d7aa: 0x6d306620, 0x1d7ab: 0x6c65b620,
-	0x1d7ac: 0x6ca05220, 0x1d7ad: 0x6cdff420, 0x1d7ae: 0x6d2b7820, 0x1d7af: 0x6cbbe420,
-	0x1d7b0: 0x6c7fa820, 0x1d7b1: 0x6cb49020, 0x1d7b2: 0x6c748620, 0x1d7b3: 0x6d0ea820,
-	0x1d7b4: 0x6cba1e20, 0x1d7b5: 0x6d2d9020, 0x1d7b6: 0x6c193c20, 0x1d7b7: 0x6c475c20,
-	0x1d7b8: 0x6cb8cc20, 0x1d7b9: 0x6c534020, 0x1d7ba: 0x6cf96420, 0x1d7bb: 0x6c602420,
-	0x1d7bc: 0x6c536820, 0x1d7bd: 0x6c4db220, 0x1d7be: 0x6c52c020, 0x1d7bf: 0x6cf6f420,
-	// Block 0x75f, offset 0x1d7c0
-	0x1d7c0: 0x6cf6f620, 0x1d7c1: 0x6c5d6220, 0x1d7c2: 0x6c8a3e20, 0x1d7c3: 0x6c4e6a20,
-	0x1d7c4: 0x6c31f220, 0x1d7c5: 0x6c900420, 0x1d7c6: 0x6c30fa20, 0x1d7c7: 0x6c675a20,
-	0x1d7c8: 0x6cb6e820, 0x1d7c9: 0x6cd37220, 0x1d7ca: 0x6c852420, 0x1d7cb: 0x6c2a9e20,
-	0x1d7cc: 0x6cec9a20, 0x1d7cd: 0x6c088a20, 0x1d7ce: 0x6cd60820, 0x1d7cf: 0x6cfd1c20,
-	0x1d7d0: 0x6c3c7020, 0x1d7d1: 0x6d375a20, 0x1d7d2: 0x6d377620, 0x1d7d3: 0x6d0f2c20,
-	0x1d7d4: 0x6d0f3020, 0x1d7d5: 0x6cd2b020, 0x1d7d6: 0x6c1f1620, 0x1d7d7: 0x6c5aae20,
-	0x1d7d8: 0x6cea4e20, 0x1d7d9: 0x6d177c20, 0x1d7da: 0x6cea5020, 0x1d7db: 0x6d177e20,
-	0x1d7dc: 0x6c649020, 0x1d7dd: 0x6c034a20, 0x1d7de: 0x6c547220, 0x1d7df: 0x6c364820,
-	0x1d7e0: 0x6c1e8420, 0x1d7e1: 0x6cfe3020, 0x1d7e2: 0x6c593e20, 0x1d7e3: 0x6c64c220,
-	0x1d7e4: 0x6c790420, 0x1d7e5: 0x6c40fe20, 0x1d7e6: 0x6c725a20, 0x1d7e7: 0x6c3d8a20,
-	0x1d7e8: 0x6cf68420, 0x1d7e9: 0x6c0d4820, 0x1d7ea: 0x6c4fd620, 0x1d7eb: 0x6d23ce20,
-	0x1d7ec: 0x6d39c820, 0x1d7ed: 0x6c638420, 0x1d7ee: 0x6c3b9a20, 0x1d7ef: 0x6cf6f820,
-	0x1d7f0: 0x6c0f8020, 0x1d7f1: 0x6cf16620, 0x1d7f2: 0x6c58aa20, 0x1d7f3: 0x6c0d5820,
-	0x1d7f4: 0x6c2ba620, 0x1d7f5: 0x6d3fce20, 0x1d7f6: 0x6c3ba620, 0x1d7f7: 0x6d191c20,
-	0x1d7f8: 0x6d357c20, 0x1d7f9: 0x6c064020, 0x1d7fa: 0x6c147820, 0x1d7fb: 0x6c01b420,
-	0x1d7fc: 0x6cafe620, 0x1d7fd: 0x6ca33c20, 0x1d7fe: 0x6caf6620, 0x1d7ff: 0x6c468a20,
-	// Block 0x760, offset 0x1d800
-	0x1d800: 0x6ca34620, 0x1d801: 0x6d204820, 0x1d802: 0x6c2dcc20, 0x1d803: 0x6ca11e20,
-	0x1d804: 0x6cd8ce20, 0x1d805: 0x6d04dc20, 0x1d806: 0x6c588420, 0x1d807: 0x6c7d7220,
-	0x1d808: 0x6c514820, 0x1d809: 0x6c4fce20, 0x1d80a: 0x6ca13220, 0x1d80b: 0x6c4ef020,
-	0x1d80c: 0x6c99a420, 0x1d80d: 0x6c842220, 0x1d80e: 0x6ca60420, 0x1d80f: 0x6c08f420,
-	0x1d810: 0x6d229620, 0x1d811: 0x6c638620, 0x1d812: 0x6ce93a20, 0x1d813: 0x6c98be20,
-	0x1d814: 0x6cb02620, 0x1d815: 0x6cf6fa20, 0x1d816: 0x6c36b820, 0x1d817: 0x6c72ae20,
-	0x1d818: 0x6ca17820, 0x1d819: 0x6c1e6a20, 0x1d81a: 0x6ce03820, 0x1d81b: 0x6c584e20,
-	0x1d81c: 0x6c753620, 0x1d81d: 0x6c06dc20, 0x1d81e: 0x6d313220, 0x1d81f: 0x6d254a20,
-	0x1d820: 0x6c3fc820, 0x1d821: 0x6c110e20, 0x1d822: 0x6c461420, 0x1d823: 0x6ce27220,
-	0x1d824: 0x6d14de20, 0x1d825: 0x6c4f7820, 0x1d826: 0x6ced8020, 0x1d827: 0x6cb20a20,
-	0x1d828: 0x6c5dc820, 0x1d829: 0x6c395020, 0x1d82a: 0x6cdfa620, 0x1d82b: 0x6c498620,
-	0x1d82c: 0x6d2ac820, 0x1d82d: 0x6d345e20, 0x1d82e: 0x6c37cc20, 0x1d82f: 0x6d3afe20,
-	0x1d830: 0x6cd38e20, 0x1d831: 0x6c09ae20, 0x1d832: 0x6d3e5e20, 0x1d833: 0x6c37d020,
-	0x1d834: 0x6c4b4e20, 0x1d835: 0x6cb14020, 0x1d836: 0x6c0b3a20, 0x1d837: 0x6c971420,
-	0x1d838: 0x6c277220, 0x1d839: 0x6cd16820, 0x1d83a: 0x6c7bf820, 0x1d83b: 0x6c3ab220,
-	0x1d83c: 0x6ce5f420, 0x1d83d: 0x6d150620, 0x1d83e: 0x6c1b2a20, 0x1d83f: 0x6c998620,
-	// Block 0x761, offset 0x1d840
-	0x1d840: 0x6c51c820, 0x1d841: 0x6c09b020, 0x1d842: 0x6c927420, 0x1d843: 0x6c8c5420,
-	0x1d844: 0x6c5bec20, 0x1d845: 0x6c410020, 0x1d846: 0x6cb11a20, 0x1d847: 0x6d3e6020,
-	0x1d848: 0x6c642020, 0x1d849: 0x6d070420, 0x1d84a: 0x6d2b6020, 0x1d84b: 0x6c691020,
-	0x1d84c: 0x6c414a20, 0x1d84d: 0x6d29dc20, 0x1d84e: 0x6c669e20, 0x1d84f: 0x6d1be220,
-	0x1d850: 0x6d0a9c20, 0x1d851: 0x6d325420, 0x1d852: 0x6ccef820, 0x1d853: 0x6c0d4a20,
-	0x1d854: 0x6c0d4c20, 0x1d855: 0x6cc08620, 0x1d856: 0x6ccefa20, 0x1d857: 0x6c203c20,
-	0x1d858: 0x6d29e620, 0x1d859: 0x6d38a220, 0x1d85a: 0x6c7f5220, 0x1d85b: 0x6d299820,
-	0x1d85c: 0x6c22e020, 0x1d85d: 0x6c188620, 0x1d85e: 0x6cce3a20, 0x1d85f: 0x6ce51620,
-	0x1d860: 0x6cadee20, 0x1d861: 0x6c44de20, 0x1d862: 0x6cfb8820, 0x1d863: 0x6c974020,
-	0x1d864: 0x6c66c220, 0x1d865: 0x6cdc6820, 0x1d866: 0x6c404420, 0x1d867: 0x6ce0aa20,
-	0x1d868: 0x6c23ae20, 0x1d869: 0x6c23b020, 0x1d86a: 0x6d36c620, 0x1d86b: 0x6c5f2220,
-	0x1d86c: 0x6d2f3e20, 0x1d86d: 0x6c322c20, 0x1d86e: 0x6c6d5420, 0x1d86f: 0x6d047420,
-	0x1d870: 0x6c218820, 0x1d871: 0x6d280420, 0x1d872: 0x6c061420, 0x1d873: 0x6d290c20,
-	0x1d874: 0x6c7f5820, 0x1d875: 0x6c3cf820, 0x1d876: 0x6c125c20, 0x1d877: 0x6c5f6020,
-	0x1d878: 0x6cd17e20, 0x1d879: 0x6d18da20, 0x1d87a: 0x6d3bec20, 0x1d87b: 0x6c406820,
-	0x1d87c: 0x6c46de20, 0x1d87d: 0x6cc9ea20, 0x1d87e: 0x6d2b1a20, 0x1d87f: 0x6c8a4020,
-	// Block 0x762, offset 0x1d880
-	0x1d880: 0x6d18f820, 0x1d881: 0x6c045e20, 0x1d882: 0x6c191620, 0x1d883: 0x6ceda620,
-	0x1d884: 0x6d373220, 0x1d885: 0x6d3cb620, 0x1d886: 0x6c0c4620, 0x1d887: 0x6d276e20,
-	0x1d888: 0x6d2bb620, 0x1d889: 0x6c28e020, 0x1d88a: 0x6d29ae20, 0x1d88b: 0x6d0eec20,
-	0x1d88c: 0x6cb4c420, 0x1d88d: 0x6ccdd820, 0x1d88e: 0x6cedac20, 0x1d88f: 0x6d1cca20,
-	0x1d890: 0x6c6d7220, 0x1d891: 0x6c423c20, 0x1d892: 0x6cfbd420, 0x1d893: 0x6d29f020,
-	0x1d894: 0x6c0ac620, 0x1d895: 0x6c31f420, 0x1d896: 0x6cd54820, 0x1d897: 0x6d0f0620,
-	0x1d898: 0x6cce4220, 0x1d899: 0x6d08d420, 0x1d89a: 0x6c907020, 0x1d89b: 0x6c424420,
-	0x1d89c: 0x6d29f420, 0x1d89d: 0x6c06d220, 0x1d89e: 0x6d311c20, 0x1d89f: 0x6c3fa820,
-	0x1d8a0: 0x6d253420, 0x1d8a1: 0x6c460c20, 0x1d8a2: 0x6c110c20, 0x1d8a3: 0x6d2aae20,
-	0x1d8a4: 0x6cfb2e20, 0x1d8a5: 0x6c043820, 0x1d8a6: 0x6d2f2a20, 0x1d8a7: 0x6c5da220,
-	0x1d8a8: 0x6d358e20, 0x1d8a9: 0x6c393420, 0x1d8aa: 0x6cdf9220, 0x1d8ab: 0x6cb20620,
-	0x1d8ac: 0x6c0b2a20, 0x1d8ad: 0x6c469820, 0x1d8ae: 0x6d3ab420, 0x1d8af: 0x6c497a20,
-	0x1d8b0: 0x6c37c420, 0x1d8b1: 0x6c666220, 0x1d8b2: 0x6c078220, 0x1d8b3: 0x6cd34820,
-	0x1d8b4: 0x6ce5ec20, 0x1d8b5: 0x6c4b3a20, 0x1d8b6: 0x6c7bec20, 0x1d8b7: 0x6c274e20,
-	0x1d8b8: 0x6c995a20, 0x1d8b9: 0x6c3a9220, 0x1d8ba: 0x6c51be20, 0x1d8bb: 0x6d14b020,
-	0x1d8bc: 0x6d2b5c20, 0x1d8bd: 0x6d35ce20, 0x1d8be: 0x6c640e20, 0x1d8bf: 0x6c5bb020,
-	// Block 0x763, offset 0x1d8c0
-	0x1d8c0: 0x6d3e1e20, 0x1d8c1: 0x6c8c5020, 0x1d8c2: 0x6c922c20, 0x1d8c3: 0x6d29d820,
-	0x1d8c4: 0x6d3e2020, 0x1d8c5: 0x6c40f020, 0x1d8c6: 0x6c6cfa20, 0x1d8c7: 0x6cc05220,
-	0x1d8c8: 0x6d323c20, 0x1d8c9: 0x6c7f4620, 0x1d8ca: 0x6ccef020, 0x1d8cb: 0x6c400020,
-	0x1d8cc: 0x6c322020, 0x1d8cd: 0x6c5edc20, 0x1d8ce: 0x6cd52c20, 0x1d8cf: 0x6cce3820,
-	0x1d8d0: 0x6c22ce20, 0x1d8d1: 0x6c09b220, 0x1d8d2: 0x6d388c20, 0x1d8d3: 0x6c44d420,
-	0x1d8d4: 0x6cadda20, 0x1d8d5: 0x6c283620, 0x1d8d6: 0x6c7f4c20, 0x1d8d7: 0x6c3ce820,
-	0x1d8d8: 0x6d3c9e20, 0x1d8d9: 0x6c402820, 0x1d8da: 0x6d3bd620, 0x1d8db: 0x6cc9e620,
-	0x1d8dc: 0x6d2af420, 0x1d8dd: 0x6d0ec820, 0x1d8de: 0x6d299a20, 0x1d8df: 0x6d276820,
-	0x1d8e0: 0x6d2bb220, 0x1d8e1: 0x6ccdc220, 0x1d8e2: 0x6d1cae20, 0x1d8e3: 0x6c423e20,
-	0x1d8e4: 0x6c1be820, 0x1d8e5: 0x6cf60220, 0x1d8e6: 0x6ccf4620, 0x1d8e7: 0x6ca42420,
-	0x1d8e8: 0x6ce75e20, 0x1d8e9: 0x6cf8a820, 0x1d8ea: 0x6c197620, 0x1d8eb: 0x6c51dc20,
-	0x1d8ec: 0x6c199620, 0x1d8ed: 0x6d30dc20, 0x1d8ee: 0x6cf9f620, 0x1d8ef: 0x6ce14620,
-	0x1d8f0: 0x6d407e20, 0x1d8f1: 0x6d407c20, 0x1d8f2: 0x6c85b620, 0x1d8f3: 0x6c6f6020,
-	0x1d8f4: 0x6c3fca20, 0x1d8f5: 0x6d2fa620, 0x1d8f6: 0x6c41d220, 0x1d8f7: 0x6cb6ea20,
-	0x1d8f8: 0x6ccd8020, 0x1d8f9: 0x6cbf1c20, 0x1d8fa: 0x6d1adc20, 0x1d8fb: 0x6cfc0c20,
-	0x1d8fc: 0x6c21fe20, 0x1d8fd: 0x6c743620, 0x1d8fe: 0x6cbdd420, 0x1d8ff: 0x6c1b2020,
-	// Block 0x764, offset 0x1d900
-	0x1d900: 0x6c220020, 0x1d901: 0x6c192820, 0x1d902: 0x6c192a20, 0x1d903: 0x6c2eb620,
-	0x1d904: 0x6c70a020, 0x1d905: 0x6c174820, 0x1d906: 0x6c2b3020, 0x1d907: 0x6cf89620,
-	0x1d908: 0x6d2d7a20, 0x1d909: 0x6c745c20, 0x1d90a: 0x6d26be20, 0x1d90b: 0x6cc11820,
-	0x1d90c: 0x6c606220, 0x1d90d: 0x6c1b3e20, 0x1d90e: 0x6c1e9420, 0x1d90f: 0x6c486420,
-	0x1d910: 0x6d096820, 0x1d911: 0x6d3e6220, 0x1d912: 0x6ce59420, 0x1d913: 0x6c349c20,
-	0x1d914: 0x6c8b1c20, 0x1d915: 0x6c41e220, 0x1d916: 0x6cdd3220, 0x1d917: 0x6c245020,
-	0x1d918: 0x6cf79820, 0x1d919: 0x6d2fd220, 0x1d91a: 0x6cdaf420, 0x1d91b: 0x6d1b0020,
-	0x1d91c: 0x6c715020, 0x1d91d: 0x6c66c420, 0x1d91e: 0x6cc3f420, 0x1d91f: 0x6ce1a020,
-	0x1d920: 0x6c21d020, 0x1d921: 0x6c250420, 0x1d922: 0x6c92b820, 0x1d923: 0x6cc27420,
-	0x1d924: 0x6c298c20, 0x1d925: 0x6cbfc820, 0x1d926: 0x6d3e9220, 0x1d927: 0x6ce37e20,
-	0x1d928: 0x6cc14a20, 0x1d929: 0x6c1c8820, 0x1d92a: 0x6c5a1e20, 0x1d92b: 0x6cbc0a20,
-	0x1d92c: 0x6cbbc220, 0x1d92d: 0x6c69ce20, 0x1d92e: 0x6d2a9a20, 0x1d92f: 0x6ce44220,
-	0x1d930: 0x6c37b020, 0x1d931: 0x6d298420, 0x1d932: 0x6d298820, 0x1d933: 0x6d40a620,
-	0x1d934: 0x6cabbc20, 0x1d935: 0x6c064220, 0x1d936: 0x6c7a8c20, 0x1d937: 0x6c77f220,
-	0x1d938: 0x6c33cc20, 0x1d939: 0x6c743820, 0x1d93a: 0x6c3d6c20, 0x1d93b: 0x6c190020,
-	0x1d93c: 0x6c658c20, 0x1d93d: 0x6c39e420, 0x1d93e: 0x6d352420, 0x1d93f: 0x6cdde620,
-	// Block 0x765, offset 0x1d940
-	0x1d940: 0x6d26a820, 0x1d941: 0x6c03b620, 0x1d942: 0x6cb5d820, 0x1d943: 0x6d26aa20,
-	0x1d944: 0x6cbab420, 0x1d945: 0x6ceba820, 0x1d946: 0x6cdf2420, 0x1d947: 0x6d17c820,
-	0x1d948: 0x6ca72620, 0x1d949: 0x6c8d0e20, 0x1d94a: 0x6c9a9420, 0x1d94b: 0x6c038220,
-	0x1d94c: 0x6c2e5820, 0x1d94d: 0x6c7a4420, 0x1d94e: 0x6ceb2420, 0x1d94f: 0x6c636620,
-	0x1d950: 0x6c220620, 0x1d951: 0x6cad7820, 0x1d952: 0x6cb83820, 0x1d953: 0x6d3b0020,
-	0x1d954: 0x6c70a220, 0x1d955: 0x6c2d1c20, 0x1d956: 0x6d346e20, 0x1d957: 0x6c3d7620,
-	0x1d958: 0x6cac5a20, 0x1d959: 0x6c724e20, 0x1d95a: 0x6ccce620, 0x1d95b: 0x6c0fe420,
-	0x1d95c: 0x6ca5ec20, 0x1d95d: 0x6c724620, 0x1d95e: 0x6c861e20, 0x1d95f: 0x6c449a20,
-	0x1d960: 0x6d152420, 0x1d961: 0x6c5ef420, 0x1d962: 0x6c34fe20, 0x1d963: 0x6cfc1c20,
-	0x1d964: 0x6c685420, 0x1d965: 0x6c350020, 0x1d966: 0x6d39b620, 0x1d967: 0x6cc30620,
-	0x1d968: 0x6c7aec20, 0x1d969: 0x6d3b6820, 0x1d96a: 0x6c4b5a20, 0x1d96b: 0x6cbf4420,
-	0x1d96c: 0x6c7cd620, 0x1d96d: 0x6cfdce20, 0x1d96e: 0x6c1c3620, 0x1d96f: 0x6c927620,
-	0x1d970: 0x6cb11c20, 0x1d971: 0x6d367020, 0x1d972: 0x6c63d020, 0x1d973: 0x6ce5dc20,
-	0x1d974: 0x6c113820, 0x1d975: 0x6c669820, 0x1d976: 0x6cde6a20, 0x1d977: 0x6cbb8020,
-	0x1d978: 0x6c09e220, 0x1d979: 0x6cfab220, 0x1d97a: 0x6c350220, 0x1d97b: 0x6c5ef620,
-	0x1d97c: 0x6c714620, 0x1d97d: 0x6c625420, 0x1d97e: 0x6cd4fa20, 0x1d97f: 0x6ce8e020,
-	// Block 0x766, offset 0x1d980
-	0x1d980: 0x6c1f6420, 0x1d981: 0x6c6e9a20, 0x1d982: 0x6ca85620, 0x1d983: 0x6cfef820,
-	0x1d984: 0x6c10b020, 0x1d985: 0x6d091420, 0x1d986: 0x6c259a20, 0x1d987: 0x6ca25020,
-	0x1d988: 0x6cd4fc20, 0x1d989: 0x6c896220, 0x1d98a: 0x6d1e5420, 0x1d98b: 0x6c691820,
-	0x1d98c: 0x6c1dce20, 0x1d98d: 0x6cbb9220, 0x1d98e: 0x6ca1da20, 0x1d98f: 0x6cde9420,
-	0x1d990: 0x6c66c620, 0x1d991: 0x6cb64620, 0x1d992: 0x6cf29e20, 0x1d993: 0x6cf00e20,
-	0x1d994: 0x6c219820, 0x1d995: 0x6c6b2a20, 0x1d996: 0x6c609a20, 0x1d997: 0x6ca86420,
-	0x1d998: 0x6c70be20, 0x1d999: 0x6c70c020, 0x1d99a: 0x6c950c20, 0x1d99b: 0x6c92bc20,
-	0x1d99c: 0x6c839a20, 0x1d99d: 0x6c57f020, 0x1d99e: 0x6c728420, 0x1d99f: 0x6c1b4e20,
-	0x1d9a0: 0x6ced4820, 0x1d9a1: 0x6cc31420, 0x1d9a2: 0x6ce2fa20, 0x1d9a3: 0x6c0f4c20,
-	0x1d9a4: 0x6d40d220, 0x1d9a5: 0x6cbce220, 0x1d9a6: 0x6d160820, 0x1d9a7: 0x6c245e20,
-	0x1d9a8: 0x6d3fbc20, 0x1d9a9: 0x6c113e20, 0x1d9aa: 0x6d3fbe20, 0x1d9ab: 0x6caf1620,
-	0x1d9ac: 0x6d36c820, 0x1d9ad: 0x6d32d820, 0x1d9ae: 0x6c2d2a20, 0x1d9af: 0x6d349420,
-	0x1d9b0: 0x6d21aa20, 0x1d9b1: 0x6c346220, 0x1d9b2: 0x6c340c20, 0x1d9b3: 0x6c202820,
-	0x1d9b4: 0x6d1e6020, 0x1d9b5: 0x6d380820, 0x1d9b6: 0x6c2c9e20, 0x1d9b7: 0x6d2c9220,
-	0x1d9b8: 0x6c191020, 0x1d9b9: 0x6c1fce20, 0x1d9ba: 0x6c66c820, 0x1d9bb: 0x6c486e20,
-	0x1d9bc: 0x6ce13e20, 0x1d9bd: 0x6c71d620, 0x1d9be: 0x6c3efa20, 0x1d9bf: 0x6d40d820,
-	// Block 0x767, offset 0x1d9c0
-	0x1d9c0: 0x6c2eec20, 0x1d9c1: 0x6cb12e20, 0x1d9c2: 0x6cc76020, 0x1d9c3: 0x6cab1020,
-	0x1d9c4: 0x6ce38020, 0x1d9c5: 0x6c142020, 0x1d9c6: 0x6ce9ec20, 0x1d9c7: 0x6c65ee20,
-	0x1d9c8: 0x6c29f420, 0x1d9c9: 0x6c25ca20, 0x1d9ca: 0x6cb53a20, 0x1d9cb: 0x6cdeb020,
-	0x1d9cc: 0x6cbae420, 0x1d9cd: 0x6ca74020, 0x1d9ce: 0x6c2ce020, 0x1d9cf: 0x6ce38a20,
-	0x1d9d0: 0x6c60ce20, 0x1d9d1: 0x6ca87e20, 0x1d9d2: 0x6cac7820, 0x1d9d3: 0x6c8e3a20,
-	0x1d9d4: 0x6d29aa20, 0x1d9d5: 0x6c0a7a20, 0x1d9d6: 0x6c1cf220, 0x1d9d7: 0x6c931020,
-	0x1d9d8: 0x6c8a4220, 0x1d9d9: 0x6c246e20, 0x1d9da: 0x6ce0da20, 0x1d9db: 0x6c27a420,
-	0x1d9dc: 0x6cdb5420, 0x1d9dd: 0x6cf81e20, 0x1d9de: 0x6c7ce220, 0x1d9df: 0x6c5f7820,
-	0x1d9e0: 0x6d34ae20, 0x1d9e1: 0x6cbaee20, 0x1d9e2: 0x6c2ba820, 0x1d9e3: 0x6cac8420,
-	0x1d9e4: 0x6d3fd020, 0x1d9e5: 0x6c887020, 0x1d9e6: 0x6c085c20, 0x1d9e7: 0x6d2a2a20,
-	0x1d9e8: 0x6ca74820, 0x1d9e9: 0x6c0d0220, 0x1d9ea: 0x6ce9d220, 0x1d9eb: 0x6c717e20,
-	0x1d9ec: 0x6c2ac020, 0x1d9ed: 0x6c137020, 0x1d9ee: 0x6cfaf420, 0x1d9ef: 0x6c38dc20,
-	0x1d9f0: 0x6c1ec820, 0x1d9f1: 0x6d37d820, 0x1d9f2: 0x6c33be20, 0x1d9f3: 0x6c0e9a20,
-	0x1d9f4: 0x6c247420, 0x1d9f5: 0x6c247620, 0x1d9f6: 0x6c74f220, 0x1d9f7: 0x6c74f420,
-	0x1d9f8: 0x6c8c7e20, 0x1d9f9: 0x6cde0620, 0x1d9fa: 0x6cbbc420, 0x1d9fb: 0x6c73bc20,
-	0x1d9fc: 0x6cb4a220, 0x1d9fd: 0x6c89d420, 0x1d9fe: 0x6c33c020, 0x1d9ff: 0x6c249620,
-	// Block 0x768, offset 0x1da00
-	0x1da00: 0x6c7c1220, 0x1da01: 0x6d2a9c20, 0x1da02: 0x6c26d220, 0x1da03: 0x6c0abc20,
-	0x1da04: 0x6c0abe20, 0x1da05: 0x6d3a3820, 0x1da06: 0x6c72be20, 0x1da07: 0x6c1ec020,
-	0x1da08: 0x6cbc7020, 0x1da09: 0x6c33d020, 0x1da0a: 0x6c1e0820, 0x1da0b: 0x6c5f9620,
-	0x1da0c: 0x6cf48e20, 0x1da0d: 0x6d271820, 0x1da0e: 0x6ca74c20, 0x1da0f: 0x6c8c8220,
-	0x1da10: 0x6c8b7620, 0x1da11: 0x6d34c020, 0x1da12: 0x6c878220, 0x1da13: 0x6d376a20,
-	0x1da14: 0x6c156e20, 0x1da15: 0x6c1ece20, 0x1da16: 0x6c32e820, 0x1da17: 0x6cf12420,
-	0x1da18: 0x6c900620, 0x1da19: 0x6c8c8c20, 0x1da1a: 0x6cfb0e20, 0x1da1b: 0x6cf12e20,
-	0x1da1c: 0x6d414020, 0x1da1d: 0x6c801220, 0x1da1e: 0x6d028e20, 0x1da1f: 0x6cc4fa20,
-	0x1da20: 0x6cc95e20, 0x1da21: 0x6ca8ce20, 0x1da22: 0x6cdef620, 0x1da23: 0x6cc22c20,
-	0x1da24: 0x6c6c1220, 0x1da25: 0x6c249a20, 0x1da26: 0x6c260620, 0x1da27: 0x6cf83020,
-	0x1da28: 0x6c7cc620, 0x1da29: 0x6c753a20, 0x1da2a: 0x6c8c9020, 0x1da2b: 0x6ccfa420,
-	0x1da2c: 0x6c457e20, 0x1da2d: 0x6c27d820, 0x1da2e: 0x6c3c0a20, 0x1da2f: 0x6cc10820,
-	0x1da30: 0x6ce3c220, 0x1da31: 0x6c349e20, 0x1da32: 0x6c34a020, 0x1da33: 0x6c459a20,
-	0x1da34: 0x6c80da20, 0x1da35: 0x6cc60e20, 0x1da36: 0x6c95be20, 0x1da37: 0x6c007620,
-	0x1da38: 0x6c5f2420, 0x1da39: 0x6c715220, 0x1da3a: 0x6ce18020, 0x1da3b: 0x6c79ae20,
-	0x1da3c: 0x6c81de20, 0x1da3d: 0x6d0dd820, 0x1da3e: 0x6c9abc20, 0x1da3f: 0x6c775c20,
-	// Block 0x769, offset 0x1da40
-	0x1da40: 0x6cc15420, 0x1da41: 0x6c90ce20, 0x1da42: 0x6c81ea20, 0x1da43: 0x6c34c020,
-	0x1da44: 0x6d34b420, 0x1da45: 0x6d0f3c20, 0x1da46: 0x6ce3cc20, 0x1da47: 0x6c2a4e20,
-	0x1da48: 0x6d1d7420, 0x1da49: 0x6d249a20, 0x1da4a: 0x6c17ce20, 0x1da4b: 0x6d0b8220,
-	0x1da4c: 0x6c4ade20, 0x1da4d: 0x6c756420, 0x1da4e: 0x6cf08220, 0x1da4f: 0x6d269e20,
-	0x1da50: 0x6d032c20, 0x1da51: 0x6c275420, 0x1da52: 0x6d078a20, 0x1da53: 0x6c393e20,
-	0x1da54: 0x6cc5e420, 0x1da55: 0x6cccde20, 0x1da56: 0x6c7bc020, 0x1da57: 0x6cd4d620,
-	0x1da58: 0x6cea5220, 0x1da59: 0x6c18c420, 0x1da5a: 0x6c276820, 0x1da5b: 0x6c361c20,
-	0x1da5c: 0x6ca34020, 0x1da5d: 0x6cb5dc20, 0x1da5e: 0x6c98de20, 0x1da5f: 0x6cc86020,
-	0x1da60: 0x6cc5ec20, 0x1da61: 0x6cb98c20, 0x1da62: 0x6d3ba620, 0x1da63: 0x6c52a020,
-	0x1da64: 0x6c54d220, 0x1da65: 0x6cc19c20, 0x1da66: 0x6c7bfa20, 0x1da67: 0x6c2bfc20,
-	0x1da68: 0x6c8d1220, 0x1da69: 0x6c277420, 0x1da6a: 0x6c022c20, 0x1da6b: 0x6d31e220,
-	0x1da6c: 0x6c395620, 0x1da6d: 0x6c7baa20, 0x1da6e: 0x6d102220, 0x1da6f: 0x6cae7420,
-	0x1da70: 0x6c072820, 0x1da71: 0x6c471420, 0x1da72: 0x6c471620, 0x1da73: 0x6cad5e20,
-	0x1da74: 0x6d3b0420, 0x1da75: 0x6cc71020, 0x1da76: 0x6c364a20, 0x1da77: 0x6c038420,
-	0x1da78: 0x6d38d420, 0x1da79: 0x6d353020, 0x1da7a: 0x6d110020, 0x1da7b: 0x6c780020,
-	0x1da7c: 0x6d17ca20, 0x1da7d: 0x6d364420, 0x1da7e: 0x6cd3a820, 0x1da7f: 0x6cb2b820,
-	// Block 0x76a, offset 0x1da80
-	0x1da80: 0x6c375e20, 0x1da81: 0x6c45f420, 0x1da82: 0x6c713a20, 0x1da83: 0x6c69a820,
-	0x1da84: 0x6c49ee20, 0x1da85: 0x6c514c20, 0x1da86: 0x6c766420, 0x1da87: 0x6cc30820,
-	0x1da88: 0x6d389420, 0x1da89: 0x6d293c20, 0x1da8a: 0x6d367220, 0x1da8b: 0x6ccef620,
-	0x1da8c: 0x6c89c420, 0x1da8d: 0x6d23ae20, 0x1da8e: 0x6cce7c20, 0x1da8f: 0x6d1f5c20,
-	0x1da90: 0x6ced9020, 0x1da91: 0x6d1af820, 0x1da92: 0x6d307420, 0x1da93: 0x6ced3e20,
-	0x1da94: 0x6c3f7c20, 0x1da95: 0x6cbe5420, 0x1da96: 0x6d38a620, 0x1da97: 0x6ca60620,
-	0x1da98: 0x6c838420, 0x1da99: 0x6d308420, 0x1da9a: 0x6d2e7a20, 0x1da9b: 0x6c89ca20,
-	0x1da9c: 0x6d3e8220, 0x1da9d: 0x6c5aee20, 0x1da9e: 0x6cee3820, 0x1da9f: 0x6c21d220,
-	0x1daa0: 0x6c4ccc20, 0x1daa1: 0x6c76e820, 0x1daa2: 0x6d160a20, 0x1daa3: 0x6caec220,
-	0x1daa4: 0x6cba7a20, 0x1daa5: 0x6c4be620, 0x1daa6: 0x6ca73a20, 0x1daa7: 0x6cb2c820,
-	0x1daa8: 0x6c496020, 0x1daa9: 0x6c075220, 0x1daaa: 0x6c950e20, 0x1daab: 0x6cac0420,
-	0x1daac: 0x6c896c20, 0x1daad: 0x6cc88020, 0x1daae: 0x6cc76220, 0x1daaf: 0x6c631020,
-	0x1dab0: 0x6d0fda20, 0x1dab1: 0x6cfba020, 0x1dab2: 0x6c201020, 0x1dab3: 0x6c23fe20,
-	0x1dab4: 0x6c211c20, 0x1dab5: 0x6c443c20, 0x1dab6: 0x6d1f7220, 0x1dab7: 0x6c52cc20,
-	0x1dab8: 0x6cd50820, 0x1dab9: 0x6c405820, 0x1daba: 0x6d3e9420, 0x1dabb: 0x6c3efc20,
-	0x1dabc: 0x6cf16820, 0x1dabd: 0x6c07cc20, 0x1dabe: 0x6d2e2020, 0x1dabf: 0x6d21c020,
-	// Block 0x76b, offset 0x1dac0
-	0x1dac0: 0x6cf16a20, 0x1dac1: 0x6ce1f420, 0x1dac2: 0x6c47dc20, 0x1dac3: 0x6d319e20,
-	0x1dac4: 0x6cfa0220, 0x1dac5: 0x6d25b820, 0x1dac6: 0x6c931220, 0x1dac7: 0x6c689e20,
-	0x1dac8: 0x6c178620, 0x1dac9: 0x6d3bb420, 0x1daca: 0x6cf0f820, 0x1dacb: 0x6c5d0420,
-	0x1dacc: 0x6d098c20, 0x1dacd: 0x6d30b820, 0x1dace: 0x6c69d020, 0x1dacf: 0x6d2e9020,
-	0x1dad0: 0x6c102620, 0x1dad1: 0x6c81c620, 0x1dad2: 0x6c3ba820, 0x1dad3: 0x6c386a20,
-	0x1dad4: 0x6c8bfc20, 0x1dad5: 0x6c445220, 0x1dad6: 0x6ccb8e20, 0x1dad7: 0x6c76fc20,
-	0x1dad8: 0x6c58be20, 0x1dad9: 0x6d162820, 0x1dada: 0x6c60f020, 0x1dadb: 0x6d3cc020,
-	0x1dadc: 0x6c377820, 0x1dadd: 0x6d246820, 0x1dade: 0x6c671c20, 0x1dadf: 0x6c52e020,
-	0x1dae0: 0x6c829220, 0x1dae1: 0x6cae2c20, 0x1dae2: 0x6c878420, 0x1dae3: 0x6c879a20,
-	0x1dae4: 0x6c91a020, 0x1dae5: 0x6c8c9220, 0x1dae6: 0x6c17ca20, 0x1dae7: 0x6d0b6a20,
-	0x1dae8: 0x6c4ac020, 0x1dae9: 0x6d077a20, 0x1daea: 0x6c272a20, 0x1daeb: 0x6cc5ca20,
-	0x1daec: 0x6d3ba020, 0x1daed: 0x6c35e220, 0x1daee: 0x6c94e020, 0x1daef: 0x6cc85420,
-	0x1daf0: 0x6c529820, 0x1daf1: 0x6c46fa20, 0x1daf2: 0x6c77ec20, 0x1daf3: 0x6c914820,
-	0x1daf4: 0x6d38d020, 0x1daf5: 0x6d350a20, 0x1daf6: 0x6d171020, 0x1daf7: 0x6c54b220,
-	0x1daf8: 0x6d31c420, 0x1daf9: 0x6c85ba20, 0x1dafa: 0x6d10dc20, 0x1dafb: 0x6cbe3620,
-	0x1dafc: 0x6cd36220, 0x1dafd: 0x6d293420, 0x1dafe: 0x6d35d020, 0x1daff: 0x6c699620,
-	// Block 0x76c, offset 0x1db00
-	0x1db00: 0x6d386c20, 0x1db01: 0x6cc2d020, 0x1db02: 0x6c922e20, 0x1db03: 0x6c699820,
-	0x1db04: 0x6d305420, 0x1db05: 0x6c3f6020, 0x1db06: 0x6c89b220, 0x1db07: 0x6ca72a20,
-	0x1db08: 0x6c072a20, 0x1db09: 0x6c5abc20, 0x1db0a: 0x6c4bcc20, 0x1db0b: 0x6cee2620,
-	0x1db0c: 0x6c895820, 0x1db0d: 0x6c21c420, 0x1db0e: 0x6d3e4820, 0x1db0f: 0x6c23f420,
-	0x1db10: 0x6c3eae20, 0x1db11: 0x6c630c20, 0x1db12: 0x6cf15e20, 0x1db13: 0x6cd4f020,
-	0x1db14: 0x6cae2020, 0x1db15: 0x6d259a20, 0x1db16: 0x6cf9e220, 0x1db17: 0x6ca72e20,
-	0x1db18: 0x6c92c420, 0x1db19: 0x6d309420, 0x1db1a: 0x6c8be220, 0x1db1b: 0x6d02ae20,
-	0x1db1c: 0x6c471820, 0x1db1d: 0x6c224a20, 0x1db1e: 0x6c225220, 0x1db1f: 0x6cb0a820,
-	0x1db20: 0x6d41ba20, 0x1db21: 0x6c0bb020, 0x1db22: 0x6c7e8e20, 0x1db23: 0x6c7e9020,
-	0x1db24: 0x6c226020, 0x1db25: 0x6d08ea20, 0x1db26: 0x6c050620, 0x1db27: 0x6c0bc020,
-	0x1db28: 0x6c0bc220, 0x1db29: 0x6c0bc420, 0x1db2a: 0x6d08ec20, 0x1db2b: 0x6c0bcc20,
-	0x1db2c: 0x6c04a820, 0x1db2d: 0x6c227e20, 0x1db2e: 0x6c0bd620, 0x1db2f: 0x6c0bda20,
-	0x1db30: 0x6c18a020, 0x1db31: 0x6cc7fc20, 0x1db32: 0x6ca9bc20, 0x1db33: 0x6ca9c220,
-	0x1db34: 0x6c160420, 0x1db35: 0x6c21a820, 0x1db36: 0x6c21a420, 0x1db37: 0x6d198820,
-	0x1db38: 0x6cc61820, 0x1db39: 0x6c0ae820, 0x1db3a: 0x6c0aea20, 0x1db3b: 0x6cd22e20,
-	0x1db3c: 0x6cc83220, 0x1db3d: 0x6c89d620, 0x1db3e: 0x6c267620, 0x1db3f: 0x6c14b620,
-	// Block 0x76d, offset 0x1db40
-	0x1db40: 0x6c416420, 0x1db41: 0x6cb8a020, 0x1db42: 0x6d207620, 0x1db43: 0x6d207820,
-	0x1db44: 0x6cb73420, 0x1db45: 0x6d0a6820, 0x1db46: 0x6d145820, 0x1db47: 0x6c4ce420,
-	0x1db48: 0x6c972020, 0x1db49: 0x6cb4ca20, 0x1db4a: 0x6d288620, 0x1db4b: 0x6cee4a20,
-	0x1db4c: 0x6ce91e20, 0x1db4d: 0x6d3cca20, 0x1db4e: 0x6d1c5820, 0x1db4f: 0x6ce3d620,
-	0x1db50: 0x6d281620, 0x1db51: 0x6c6cd620, 0x1db52: 0x6c4f5c20, 0x1db53: 0x6d0b7a20,
-	0x1db54: 0x6c390620, 0x1db55: 0x6cf4b020, 0x1db56: 0x6c267820, 0x1db57: 0x6c354c20,
-	0x1db58: 0x6c4d1c20, 0x1db59: 0x6d30e420, 0x1db5a: 0x6d384c20, 0x1db5b: 0x6c6cd820,
-	0x1db5c: 0x6d25de20, 0x1db5d: 0x6ceee420, 0x1db5e: 0x6c87ee20, 0x1db5f: 0x6c1b0220,
-	0x1db60: 0x6c180420, 0x1db61: 0x6ca68020, 0x1db62: 0x6ce57420, 0x1db63: 0x6d359020,
-	0x1db64: 0x6d147c20, 0x1db65: 0x6c6efc20, 0x1db66: 0x6c633220, 0x1db67: 0x6c18a620,
-	0x1db68: 0x6c273a20, 0x1db69: 0x6c378820, 0x1db6a: 0x6c2b5e20, 0x1db6b: 0x6cb36a20,
-	0x1db6c: 0x6d3ab620, 0x1db6d: 0x6c2e6420, 0x1db6e: 0x6d2ab020, 0x1db6f: 0x6ce20620,
-	0x1db70: 0x6cd5a220, 0x1db71: 0x6ceaf620, 0x1db72: 0x6cc28620, 0x1db73: 0x6c6e5020,
-	0x1db74: 0x6c5b2a20, 0x1db75: 0x6c306820, 0x1db76: 0x6d203420, 0x1db77: 0x6c9c4020,
-	0x1db78: 0x6c083c20, 0x1db79: 0x6c5e9c20, 0x1db7a: 0x6ca39c20, 0x1db7b: 0x6d14b220,
-	0x1db7c: 0x6c6a9a20, 0x1db7d: 0x6d3c5820, 0x1db7e: 0x6c8ade20, 0x1db7f: 0x6d0a7420,
-	// Block 0x76e, offset 0x1db80
-	0x1db80: 0x6ce9f620, 0x1db81: 0x6cd98420, 0x1db82: 0x6cd34a20, 0x1db83: 0x6ce20e20,
-	0x1db84: 0x6cacf820, 0x1db85: 0x6c546820, 0x1db86: 0x6ca68a20, 0x1db87: 0x6c33e420,
-	0x1db88: 0x6c6f0420, 0x1db89: 0x6d084620, 0x1db8a: 0x6d0a7620, 0x1db8b: 0x6c101220,
-	0x1db8c: 0x6d1e9c20, 0x1db8d: 0x6cfeac20, 0x1db8e: 0x6cc03a20, 0x1db8f: 0x6ce82420,
-	0x1db90: 0x6d3a0a20, 0x1db91: 0x6cc03c20, 0x1db92: 0x6c2c3420, 0x1db93: 0x6c2c3620,
-	0x1db94: 0x6ce89a20, 0x1db95: 0x6c6e6c20, 0x1db96: 0x6ce3e620, 0x1db97: 0x6c310a20,
-	0x1db98: 0x6d15e020, 0x1db99: 0x6d30ee20, 0x1db9a: 0x6ce6f220, 0x1db9b: 0x6c4a2020,
-	0x1db9c: 0x6cf4da20, 0x1db9d: 0x6cd36420, 0x1db9e: 0x6c1a6a20, 0x1db9f: 0x6cda9820,
-	0x1dba0: 0x6d2a7a20, 0x1dba1: 0x6cc43620, 0x1dba2: 0x6c3ca420, 0x1dba3: 0x6c87fa20,
-	0x1dba4: 0x6cddc820, 0x1dba5: 0x6c5b3220, 0x1dba6: 0x6c850e20, 0x1dba7: 0x6c483620,
-	0x1dba8: 0x6c7f0220, 0x1dba9: 0x6c07b820, 0x1dbaa: 0x6c262420, 0x1dbab: 0x6c743e20,
-	0x1dbac: 0x6c083e20, 0x1dbad: 0x6c591820, 0x1dbae: 0x6c271620, 0x1dbaf: 0x6c924a20,
-	0x1dbb0: 0x6d1f3220, 0x1dbb1: 0x6d387c20, 0x1dbb2: 0x6c6d0820, 0x1dbb3: 0x6d232620,
-	0x1dbb4: 0x6c219620, 0x1dbb5: 0x6c7c6820, 0x1dbb6: 0x6cee7620, 0x1dbb7: 0x6ce3f020,
-	0x1dbb8: 0x6d178420, 0x1dbb9: 0x6c26a220, 0x1dbba: 0x6d25e620, 0x1dbbb: 0x6c954420,
-	0x1dbbc: 0x6c087420, 0x1dbbd: 0x6caaf220, 0x1dbbe: 0x6d213a20, 0x1dbbf: 0x6c296a20,
-	// Block 0x76f, offset 0x1dbc0
-	0x1dbc0: 0x6cdbf620, 0x1dbc1: 0x6c33f420, 0x1dbc2: 0x6cdc4220, 0x1dbc3: 0x6d0d9820,
-	0x1dbc4: 0x6c1ffc20, 0x1dbc5: 0x6c1b2c20, 0x1dbc6: 0x6ce33420, 0x1dbc7: 0x6d235c20,
-	0x1dbc8: 0x6cd26c20, 0x1dbc9: 0x6d315a20, 0x1dbca: 0x6d1f4020, 0x1dbcb: 0x6d283820,
-	0x1dbcc: 0x6c364c20, 0x1dbcd: 0x6c0ba420, 0x1dbce: 0x6c4cec20, 0x1dbcf: 0x6c364e20,
-	0x1dbd0: 0x6cf9ca20, 0x1dbd1: 0x6c59ca20, 0x1dbd2: 0x6cc07020, 0x1dbd3: 0x6c2a1820,
-	0x1dbd4: 0x6c26ac20, 0x1dbd5: 0x6cef1620, 0x1dbd6: 0x6ca45020, 0x1dbd7: 0x6d150820,
-	0x1dbd8: 0x6c46be20, 0x1dbd9: 0x6d111620, 0x1dbda: 0x6c1e4620, 0x1dbdb: 0x6c8e7420,
-	0x1dbdc: 0x6d0a9820, 0x1dbdd: 0x6cde6c20, 0x1dbde: 0x6c2c7420, 0x1dbdf: 0x6c1b4020,
-	0x1dbe0: 0x6d25ec20, 0x1dbe1: 0x6cdada20, 0x1dbe2: 0x6cde6e20, 0x1dbe3: 0x6cba1420,
-	0x1dbe4: 0x6c96f220, 0x1dbe5: 0x6d111820, 0x1dbe6: 0x6c499c20, 0x1dbe7: 0x6d2ed220,
-	0x1dbe8: 0x6c025820, 0x1dbe9: 0x6cd3bc20, 0x1dbea: 0x6c10ea20, 0x1dbeb: 0x6c1c4e20,
-	0x1dbec: 0x6cdaf620, 0x1dbed: 0x6d2a1c20, 0x1dbee: 0x6d300420, 0x1dbef: 0x6c340220,
-	0x1dbf0: 0x6c2c8820, 0x1dbf1: 0x6c90ac20, 0x1dbf2: 0x6c1b5020, 0x1dbf3: 0x6c25c220,
-	0x1dbf4: 0x6c8bd620, 0x1dbf5: 0x6d41f020, 0x1dbf6: 0x6cc54820, 0x1dbf7: 0x6cb91820,
-	0x1dbf8: 0x6d085820, 0x1dbf9: 0x6d23d620, 0x1dbfa: 0x6d154e20, 0x1dbfb: 0x6cf51c20,
-	0x1dbfc: 0x6c8a1620, 0x1dbfd: 0x6c729820, 0x1dbfe: 0x6cd3e220, 0x1dbff: 0x6c0a6020,
-	// Block 0x770, offset 0x1dc00
-	0x1dc00: 0x6d10bc20, 0x1dc01: 0x6c974220, 0x1dc02: 0x6d022220, 0x1dc03: 0x6cdc9420,
-	0x1dc04: 0x6c4d2a20, 0x1dc05: 0x6d2d9e20, 0x1dc06: 0x6ce2b020, 0x1dc07: 0x6c37aa20,
-	0x1dc08: 0x6c9ea220, 0x1dc09: 0x6c0b0c20, 0x1dc0a: 0x6c0b1420, 0x1dc0b: 0x6c7e5220,
-	0x1dc0c: 0x6c847a20, 0x1dc0d: 0x6d25c820, 0x1dc0e: 0x6d117620, 0x1dc0f: 0x6c957c20,
-	0x1dc10: 0x6c854c20, 0x1dc11: 0x6d169e20, 0x1dc12: 0x6ce65a20, 0x1dc13: 0x6c2ad420,
-	0x1dc14: 0x6cb6c420, 0x1dc15: 0x6d1d8220, 0x1dc16: 0x6cccb420, 0x1dc17: 0x6c4dc820,
-	0x1dc18: 0x6d20a420, 0x1dc19: 0x6c982220, 0x1dc1a: 0x6cc78820, 0x1dc1b: 0x6cbef620,
-	0x1dc1c: 0x6cedb420, 0x1dc1d: 0x6c7bd620, 0x1dc1e: 0x6c3d3620, 0x1dc1f: 0x6c777a20,
-	0x1dc20: 0x6c0d2020, 0x1dc21: 0x6c398220, 0x1dc22: 0x6d03bc20, 0x1dc23: 0x6ca30220,
-	0x1dc24: 0x6d02a620, 0x1dc25: 0x6cd04220, 0x1dc26: 0x6c051620, 0x1dc27: 0x6d253620,
-	0x1dc28: 0x6c259020, 0x1dc29: 0x6c5d8a20, 0x1dc2a: 0x6d006a20, 0x1dc2b: 0x6c052c20,
-	0x1dc2c: 0x6cf34e20, 0x1dc2d: 0x6c720220, 0x1dc2e: 0x6d1ef620, 0x1dc2f: 0x6c4dd020,
-	0x1dc30: 0x6cdf1220, 0x1dc31: 0x6cbf9820, 0x1dc32: 0x6c092220, 0x1dc33: 0x6caf2e20,
-	0x1dc34: 0x6c0dbe20, 0x1dc35: 0x6ccec620, 0x1dc36: 0x6c06de20, 0x1dc37: 0x6cec1020,
-	0x1dc38: 0x6c2bd020, 0x1dc39: 0x6d404620, 0x1dc3a: 0x6d12c820, 0x1dc3b: 0x6c8b9e20,
-	0x1dc3c: 0x6c7b8820, 0x1dc3d: 0x6c4a3c20, 0x1dc3e: 0x6d398620, 0x1dc3f: 0x6cd19e20,
-	// Block 0x771, offset 0x1dc40
-	0x1dc40: 0x6c7a2c20, 0x1dc41: 0x6d22dc20, 0x1dc42: 0x6c40e020, 0x1dc43: 0x6c50ce20,
-	0x1dc44: 0x6cbc9a20, 0x1dc45: 0x6d359420, 0x1dc46: 0x6c5fe620, 0x1dc47: 0x6c585c20,
-	0x1dc48: 0x6c545e20, 0x1dc49: 0x6d03c820, 0x1dc4a: 0x6c682a20, 0x1dc4b: 0x6cf76a20,
-	0x1dc4c: 0x6c4a7620, 0x1dc4d: 0x6caab420, 0x1dc4e: 0x6c80a220, 0x1dc4f: 0x6c63a620,
-	0x1dc50: 0x6c7b1420, 0x1dc51: 0x6d333e20, 0x1dc52: 0x6c813820, 0x1dc53: 0x6d281e20,
-	0x1dc54: 0x6d0c6c20, 0x1dc55: 0x6c19c220, 0x1dc56: 0x6c30fc20, 0x1dc57: 0x6cf5ae20,
-	0x1dc58: 0x6c935220, 0x1dc59: 0x6c3f4e20, 0x1dc5a: 0x6cf3aa20, 0x1dc5b: 0x6c3e2620,
-	0x1dc5c: 0x6c433e20, 0x1dc5d: 0x6c500a20, 0x1dc5e: 0x6c80a420, 0x1dc5f: 0x6c63aa20,
-	0x1dc60: 0x6c44f020, 0x1dc61: 0x6c759a20, 0x1dc62: 0x6d1ce220, 0x1dc63: 0x6c0eca20,
-	0x1dc64: 0x6cf86820, 0x1dc65: 0x6c06f420, 0x1dc66: 0x6c85bc20, 0x1dc67: 0x6d279220,
-	0x1dc68: 0x6c108c20, 0x1dc69: 0x6cff7a20, 0x1dc6a: 0x6cb4e020, 0x1dc6b: 0x6cafd420,
-	0x1dc6c: 0x6cbe3c20, 0x1dc6d: 0x6c4c1a20, 0x1dc6e: 0x6d386e20, 0x1dc6f: 0x6cdfd820,
-	0x1dc70: 0x6d404c20, 0x1dc71: 0x6cb27e20, 0x1dc72: 0x6c7ef020, 0x1dc73: 0x6ca5d020,
-	0x1dc74: 0x6c186220, 0x1dc75: 0x6d1f2420, 0x1dc76: 0x6c10b420, 0x1dc77: 0x6cfd6820,
-	0x1dc78: 0x6c27d020, 0x1dc79: 0x6c711e20, 0x1dc7a: 0x6d1dba20, 0x1dc7b: 0x6cbb7420,
-	0x1dc7c: 0x6d13ea20, 0x1dc7d: 0x6c30a620, 0x1dc7e: 0x6d0d7220, 0x1dc7f: 0x6c99f220,
-	// Block 0x772, offset 0x1dc80
-	0x1dc80: 0x6cc91a20, 0x1dc81: 0x6c071820, 0x1dc82: 0x6c361e20, 0x1dc83: 0x6cd4d820,
-	0x1dc84: 0x6c735e20, 0x1dc85: 0x6d225220, 0x1dc86: 0x6d282820, 0x1dc87: 0x6c53f420,
-	0x1dc88: 0x6c7c6a20, 0x1dc89: 0x6cfd6e20, 0x1dc8a: 0x6cfd7020, 0x1dc8b: 0x6cd9a820,
-	0x1dc8c: 0x6ce0f820, 0x1dc8d: 0x6ca00220, 0x1dc8e: 0x6cf63220, 0x1dc8f: 0x6cc7fe20,
-	0x1dc90: 0x6c1f4c20, 0x1dc91: 0x6d3e4a20, 0x1dc92: 0x6d405820, 0x1dc93: 0x6d12f820,
-	0x1dc94: 0x6cf36c20, 0x1dc95: 0x6cfd7c20, 0x1dc96: 0x6d27a820, 0x1dc97: 0x6c504220,
-	0x1dc98: 0x6d1d9220, 0x1dc99: 0x6c08e620, 0x1dc9a: 0x6c998820, 0x1dc9b: 0x6c176420,
-	0x1dc9c: 0x6c3d8620, 0x1dc9d: 0x6c8a6e20, 0x1dc9e: 0x6d1a7820, 0x1dc9f: 0x6d3b8020,
-	0x1dca0: 0x6c56a820, 0x1dca1: 0x6cbb8220, 0x1dca2: 0x6d0c1820, 0x1dca3: 0x6d2ebc20,
-	0x1dca4: 0x6c97e020, 0x1dca5: 0x6cbb8420, 0x1dca6: 0x6d065020, 0x1dca7: 0x6c2adc20,
-	0x1dca8: 0x6c0a9c20, 0x1dca9: 0x6d0a2820, 0x1dcaa: 0x6c0a0c20, 0x1dcab: 0x6d2b8420,
-	0x1dcac: 0x6cef2620, 0x1dcad: 0x6d335820, 0x1dcae: 0x6c99a820, 0x1dcaf: 0x6ccd9620,
-	0x1dcb0: 0x6c8bc820, 0x1dcb1: 0x6cb33420, 0x1dcb2: 0x6c27f020, 0x1dcb3: 0x6c9b4020,
-	0x1dcb4: 0x6d133220, 0x1dcb5: 0x6c12b820, 0x1dcb6: 0x6c7b3620, 0x1dcb7: 0x6c3c6420,
-	0x1dcb8: 0x6c9b4220, 0x1dcb9: 0x6d406420, 0x1dcba: 0x6c7c0220, 0x1dcbb: 0x6c88d020,
-	0x1dcbc: 0x6d29a220, 0x1dcbd: 0x6c153020, 0x1dcbe: 0x6d1eb820, 0x1dcbf: 0x6c5f6420,
-	// Block 0x773, offset 0x1dcc0
-	0x1dcc0: 0x6d0ed820, 0x1dcc1: 0x6c154820, 0x1dcc2: 0x6c25f820, 0x1dcc3: 0x6c8d8820,
-	0x1dcc4: 0x6c583a20, 0x1dcc5: 0x6cf74020, 0x1dcc6: 0x6c3c7820, 0x1dcc7: 0x6d29b620,
-	0x1dcc8: 0x6c875820, 0x1dcc9: 0x6d1fa420, 0x1dcca: 0x6c2f5a20, 0x1dccb: 0x6cc02020,
-	0x1dccc: 0x6d3d4020, 0x1dccd: 0x6cae1820, 0x1dcce: 0x6d391e20, 0x1dccf: 0x6d15e220,
-	0x1dcd0: 0x6c418e20, 0x1dcd1: 0x6d20fe20, 0x1dcd2: 0x6c6fba20, 0x1dcd3: 0x6d0d7420,
-	0x1dcd4: 0x6d41ae20, 0x1dcd5: 0x6c98e020, 0x1dcd6: 0x6d323e20, 0x1dcd7: 0x6d06c820,
-	0x1dcd8: 0x6c311820, 0x1dcd9: 0x6d315420, 0x1dcda: 0x6c3b3020, 0x1dcdb: 0x6d263e20,
-	0x1dcdc: 0x6c40ae20, 0x1dcdd: 0x6d282a20, 0x1dcde: 0x6cdf7220, 0x1dcdf: 0x6ce46a20,
-	0x1dce0: 0x6cb83a20, 0x1dce1: 0x6ceb2c20, 0x1dce2: 0x6c243e20, 0x1dce3: 0x6c4da820,
-	0x1dce4: 0x6c471a20, 0x1dce5: 0x6cda5020, 0x1dce6: 0x6c37ee20, 0x1dce7: 0x6c1dc620,
-	0x1dce8: 0x6d293e20, 0x1dce9: 0x6ca03a20, 0x1dcea: 0x6c81d620, 0x1dceb: 0x6c21ca20,
-	0x1dcec: 0x6c1e4e20, 0x1dced: 0x6d205020, 0x1dcee: 0x6ce76020, 0x1dcef: 0x6d353c20,
-	0x1dcf0: 0x6cfab420, 0x1dcf1: 0x6c67ec20, 0x1dcf2: 0x6c1a3020, 0x1dcf3: 0x6d1b6c20,
-	0x1dcf4: 0x6ce8e220, 0x1dcf5: 0x6c69b220, 0x1dcf6: 0x6c9a1a20, 0x1dcf7: 0x6c7aa420,
-	0x1dcf8: 0x6cdb8820, 0x1dcf9: 0x6c833c20, 0x1dcfa: 0x6cb44420, 0x1dcfb: 0x6d41c220,
-	0x1dcfc: 0x6c4d4420, 0x1dcfd: 0x6d0e9c20, 0x1dcfe: 0x6ccc8c20, 0x1dcff: 0x6ca77e20,
-	// Block 0x774, offset 0x1dd00
-	0x1dd00: 0x6cef3420, 0x1dd01: 0x6c92c620, 0x1dd02: 0x6c803620, 0x1dd03: 0x6d0c2c20,
-	0x1dd04: 0x6ce23820, 0x1dd05: 0x6cadc220, 0x1dd06: 0x6d2e1220, 0x1dd07: 0x6c215e20,
-	0x1dd08: 0x6ce00a20, 0x1dd09: 0x6d41ca20, 0x1dd0a: 0x6d3ca620, 0x1dd0b: 0x6c246020,
-	0x1dd0c: 0x6c7d8220, 0x1dd0d: 0x6ce38220, 0x1dd0e: 0x6cfba220, 0x1dd0f: 0x6c317620,
-	0x1dd10: 0x6c55c420, 0x1dd11: 0x6d065c20, 0x1dd12: 0x6d040820, 0x1dd13: 0x6ce07c20,
-	0x1dd14: 0x6cc09a20, 0x1dd15: 0x6c216420, 0x1dd16: 0x6d285a20, 0x1dd17: 0x6cb3a620,
-	0x1dd18: 0x6c783620, 0x1dd19: 0x6cd9e620, 0x1dd1a: 0x6c9c7620, 0x1dd1b: 0x6cc31820,
-	0x1dd1c: 0x6c1e3220, 0x1dd1d: 0x6c25cc20, 0x1dd1e: 0x6d285e20, 0x1dd1f: 0x6d1e7e20,
-	0x1dd20: 0x6c022220, 0x1dd21: 0x6d2ce420, 0x1dd22: 0x6c4d4a20, 0x1dd23: 0x6ce14a20,
-	0x1dd24: 0x6c680020, 0x1dd25: 0x6cb1a220, 0x1dd26: 0x6c191820, 0x1dd27: 0x6d244020,
-	0x1dd28: 0x6c846620, 0x1dd29: 0x6d2a2c20, 0x1dd2a: 0x6c818620, 0x1dd2b: 0x6d142c20,
-	0x1dd2c: 0x6c680a20, 0x1dd2d: 0x6c102820, 0x1dd2e: 0x6c69d420, 0x1dd2f: 0x6cf71e20,
-	0x1dd30: 0x6ce03c20, 0x1dd31: 0x6c37f220, 0x1dd32: 0x6ca9dc20, 0x1dd33: 0x6d193620,
-	0x1dd34: 0x6c854620, 0x1dd35: 0x6c72c020, 0x1dd36: 0x6d0efc20, 0x1dd37: 0x6d193820,
-	0x1dd38: 0x6ca78020, 0x1dd39: 0x6cc7ec20, 0x1dd3a: 0x6d09cc20, 0x1dd3b: 0x6c1e0a20,
-	0x1dd3c: 0x6d0f1220, 0x1dd3d: 0x6c8db420, 0x1dd3e: 0x6c9cc820, 0x1dd3f: 0x6c9cca20,
-	// Block 0x775, offset 0x1dd40
-	0x1dd40: 0x6ca78420, 0x1dd41: 0x6d036020, 0x1dd42: 0x6c69ea20, 0x1dd43: 0x6ccc9620,
-	0x1dd44: 0x6c9cd420, 0x1dd45: 0x6d0f2420, 0x1dd46: 0x6c0b7820, 0x1dd47: 0x6c111e20,
-	0x1dd48: 0x6cd37620, 0x1dd49: 0x6d204a20, 0x1dd4a: 0x6cd39220, 0x1dd4b: 0x6cd40220,
-	0x1dd4c: 0x6c84fc20, 0x1dd4d: 0x6d382020, 0x1dd4e: 0x6d12aa20, 0x1dd4f: 0x6c89c020,
-	0x1dd50: 0x6c847c20, 0x1dd51: 0x6c6c2e20, 0x1dd52: 0x6c6d7c20, 0x1dd53: 0x6cc02220,
-	0x1dd54: 0x6d15d820, 0x1dd55: 0x6c8a6c20, 0x1dd56: 0x6c29c020, 0x1dd57: 0x6d2f6220,
-	0x1dd58: 0x6c2f5c20, 0x1dd59: 0x6cb38220, 0x1dd5a: 0x6cc04220, 0x1dd5b: 0x6c034220,
-	0x1dd5c: 0x6c3f5620, 0x1dd5d: 0x6d314820, 0x1dd5e: 0x6d344a20, 0x1dd5f: 0x6c034420,
-	0x1dd60: 0x6c949820, 0x1dd61: 0x6c3f5820, 0x1dd62: 0x6ca3a020, 0x1dd63: 0x6c2e2020,
-	0x1dd64: 0x6ccd8620, 0x1dd65: 0x6cbc2220, 0x1dd66: 0x6c79ea20, 0x1dd67: 0x6c203420,
-	0x1dd68: 0x6d3f0e20, 0x1dd69: 0x6c390e20, 0x1dd6a: 0x6c573620, 0x1dd6b: 0x6c573820,
-	0x1dd6c: 0x6c4eb820, 0x1dd6d: 0x6c427c20, 0x1dd6e: 0x6cb5de20, 0x1dd6f: 0x6c985c20,
-	0x1dd70: 0x6cc64620, 0x1dd71: 0x6c2c5220, 0x1dd72: 0x6cd8be20, 0x1dd73: 0x6cf87e20,
-	0x1dd74: 0x6d178620, 0x1dd75: 0x6c146620, 0x1dd76: 0x6cd1b620, 0x1dd77: 0x6ce91a20,
-	0x1dd78: 0x6cf60620, 0x1dd79: 0x6caa7420, 0x1dd7a: 0x6cb8dc20, 0x1dd7b: 0x6cc0c020,
-	0x1dd7c: 0x6c668420, 0x1dd7d: 0x6cb09a20, 0x1dd7e: 0x6d128220, 0x1dd7f: 0x6c6c4820,
-	// Block 0x776, offset 0x1dd80
-	0x1dd80: 0x6c03a020, 0x1dd81: 0x6c399620, 0x1dd82: 0x6c18d020, 0x1dd83: 0x6d03ee20,
-	0x1dd84: 0x6c30ee20, 0x1dd85: 0x6d26c220, 0x1dd86: 0x6cb8e620, 0x1dd87: 0x6c3d7820,
-	0x1dd88: 0x6caf6820, 0x1dd89: 0x6ca34820, 0x1dd8a: 0x6d02d820, 0x1dd8b: 0x6c356e20,
-	0x1dd8c: 0x6c746020, 0x1dd8d: 0x6c33f820, 0x1dd8e: 0x6c464c20, 0x1dd8f: 0x6d1ae620,
-	0x1dd90: 0x6cb99a20, 0x1dd91: 0x6c04ce20, 0x1dd92: 0x6cc97620, 0x1dd93: 0x6cc57220,
-	0x1dd94: 0x6c174a20, 0x1dd95: 0x6ca99620, 0x1dd96: 0x6c3b3220, 0x1dd97: 0x6d27ec20,
-	0x1dd98: 0x6c614620, 0x1dd99: 0x6cbd7820, 0x1dd9a: 0x6caf6a20, 0x1dd9b: 0x6c4c2020,
-	0x1dd9c: 0x6c535a20, 0x1dd9d: 0x6d1a6c20, 0x1dd9e: 0x6c757220, 0x1dd9f: 0x6cd1ca20,
-	0x1dda0: 0x6d17ce20, 0x1dda1: 0x6d37ba20, 0x1dda2: 0x6cf7f020, 0x1dda3: 0x6c413a20,
-	0x1dda4: 0x6cc64820, 0x1dda5: 0x6c5d8e20, 0x1dda6: 0x6cdf7620, 0x1dda7: 0x6c778820,
-	0x1dda8: 0x6d264020, 0x1dda9: 0x6c934a20, 0x1ddaa: 0x6c365020, 0x1ddab: 0x6cf21c20,
-	0x1ddac: 0x6c345420, 0x1ddad: 0x6d3e7220, 0x1ddae: 0x6ca64020, 0x1ddaf: 0x6ce8d020,
-	0x1ddb0: 0x6cd3aa20, 0x1ddb1: 0x6c9f6820, 0x1ddb2: 0x6c472220, 0x1ddb3: 0x6c780e20,
-	0x1ddb4: 0x6c8d2420, 0x1ddb5: 0x6c0dec20, 0x1ddb6: 0x6cd8d020, 0x1ddb7: 0x6c47a420,
-	0x1ddb8: 0x6c0f1c20, 0x1ddb9: 0x6caf7820, 0x1ddba: 0x6d238420, 0x1ddbb: 0x6cd8d220,
-	0x1ddbc: 0x6d424820, 0x1ddbd: 0x6c101820, 0x1ddbe: 0x6d1f5020, 0x1ddbf: 0x6ce4b020,
-	// Block 0x777, offset 0x1ddc0
-	0x1ddc0: 0x6c642220, 0x1ddc1: 0x6d317620, 0x1ddc2: 0x6cd2d420, 0x1ddc3: 0x6cd3ac20,
-	0x1ddc4: 0x6d347a20, 0x1ddc5: 0x6c725220, 0x1ddc6: 0x6c14d220, 0x1ddc7: 0x6cd1da20,
-	0x1ddc8: 0x6cd1dc20, 0x1ddc9: 0x6d089e20, 0x1ddca: 0x6d2f6820, 0x1ddcb: 0x6c065420,
-	0x1ddcc: 0x6c514e20, 0x1ddcd: 0x6c09e620, 0x1ddce: 0x6cd10e20, 0x1ddcf: 0x6c1e9620,
-	0x1ddd0: 0x6cd27820, 0x1ddd1: 0x6c0f1e20, 0x1ddd2: 0x6d3b0e20, 0x1ddd3: 0x6c1c3820,
-	0x1ddd4: 0x6d289220, 0x1ddd5: 0x6cb31420, 0x1ddd6: 0x6ce76220, 0x1ddd7: 0x6cb9aa20,
-	0x1ddd8: 0x6c3eb020, 0x1ddd9: 0x6d2d3020, 0x1ddda: 0x6c8f0c20, 0x1dddb: 0x6cb8f820,
-	0x1dddc: 0x6c3eb220, 0x1dddd: 0x6c864020, 0x1ddde: 0x6d26ca20, 0x1dddf: 0x6caf7a20,
-	0x1dde0: 0x6d0f5e20, 0x1dde1: 0x6c04fe20, 0x1dde2: 0x6c0e8020, 0x1dde3: 0x6c6b0020,
-	0x1dde4: 0x6c465420, 0x1dde5: 0x6cd5ec20, 0x1dde6: 0x6d32da20, 0x1dde7: 0x6ca24c20,
-	0x1dde8: 0x6cf7f220, 0x1dde9: 0x6cf7f420, 0x1ddea: 0x6c2c7620, 0x1ddeb: 0x6c637420,
-	0x1ddec: 0x6ca29e20, 0x1dded: 0x6ce06420, 0x1ddee: 0x6c588820, 0x1ddef: 0x6d15f220,
-	0x1ddf0: 0x6cd7fa20, 0x1ddf1: 0x6c7bfe20, 0x1ddf2: 0x6c761e20, 0x1ddf3: 0x6c06ce20,
-	0x1ddf4: 0x6c66a020, 0x1ddf5: 0x6ce77020, 0x1ddf6: 0x6d03f420, 0x1ddf7: 0x6c537820,
-	0x1ddf8: 0x6c691c20, 0x1ddf9: 0x6c1bbc20, 0x1ddfa: 0x6c37d820, 0x1ddfb: 0x6c961a20,
-	0x1ddfc: 0x6c0dee20, 0x1ddfd: 0x6cd3be20, 0x1ddfe: 0x6ca1dc20, 0x1ddff: 0x6c637820,
-	// Block 0x778, offset 0x1de00
-	0x1de00: 0x6d1a8620, 0x1de01: 0x6c757c20, 0x1de02: 0x6d389e20, 0x1de03: 0x6c1d5620,
-	0x1de04: 0x6cfdf620, 0x1de05: 0x6ce77220, 0x1de06: 0x6ca14220, 0x1de07: 0x6c833e20,
-	0x1de08: 0x6c5f0e20, 0x1de09: 0x6d23b020, 0x1de0a: 0x6d071e20, 0x1de0b: 0x6cc57820,
-	0x1de0c: 0x6d421a20, 0x1de0d: 0x6d36a220, 0x1de0e: 0x6cbf4c20, 0x1de0f: 0x6ccd8e20,
-	0x1de10: 0x6c1c5020, 0x1de11: 0x6cfc2220, 0x1de12: 0x6d03f620, 0x1de13: 0x6cc30e20,
-	0x1de14: 0x6caf8020, 0x1de15: 0x6ce5fe20, 0x1de16: 0x6d39c020, 0x1de17: 0x6cfe4820,
-	0x1de18: 0x6ca01220, 0x1de19: 0x6c7ada20, 0x1de1a: 0x6d112c20, 0x1de1b: 0x6cfac220,
-	0x1de1c: 0x6cfb7620, 0x1de1d: 0x6d04ea20, 0x1de1e: 0x6c757e20, 0x1de1f: 0x6c13aa20,
-	0x1de20: 0x6c81b620, 0x1de21: 0x6c607820, 0x1de22: 0x6cb06620, 0x1de23: 0x6cc7ba20,
-	0x1de24: 0x6c9cfe20, 0x1de25: 0x6d140820, 0x1de26: 0x6d19fa20, 0x1de27: 0x6c49f220,
-	0x1de28: 0x6c019020, 0x1de29: 0x6c2fd420, 0x1de2a: 0x6d1fe020, 0x1de2b: 0x6ccb3820,
-	0x1de2c: 0x6c77c620, 0x1de2d: 0x6cb9b620, 0x1de2e: 0x6c944220, 0x1de2f: 0x6cd90020,
-	0x1de30: 0x6c003020, 0x1de31: 0x6c2e3220, 0x1de32: 0x6c4efe20, 0x1de33: 0x6cc8de20,
-	0x1de34: 0x6cd3cc20, 0x1de35: 0x6c795020, 0x1de36: 0x6cc09220, 0x1de37: 0x6cff0c20,
-	0x1de38: 0x6d308620, 0x1de39: 0x6d054e20, 0x1de3a: 0x6d2a0c20, 0x1de3b: 0x6ce37020,
-	0x1de3c: 0x6c263820, 0x1de3d: 0x6c487020, 0x1de3e: 0x6c53d220, 0x1de3f: 0x6d37c820,
-	// Block 0x779, offset 0x1de40
-	0x1de40: 0x6ce7de20, 0x1de41: 0x6c93ac20, 0x1de42: 0x6c9a2220, 0x1de43: 0x6c80e220,
-	0x1de44: 0x6ced4a20, 0x1de45: 0x6d02e620, 0x1de46: 0x6d27c420, 0x1de47: 0x6c075420,
-	0x1de48: 0x6cf51e20, 0x1de49: 0x6cdb0c20, 0x1de4a: 0x6d23dc20, 0x1de4b: 0x6c151420,
-	0x1de4c: 0x6c2fb620, 0x1de4d: 0x6c0f4e20, 0x1de4e: 0x6c4f0020, 0x1de4f: 0x6c63de20,
-	0x1de50: 0x6c538420, 0x1de51: 0x6c249220, 0x1de52: 0x6c3c6620, 0x1de53: 0x6c14d620,
-	0x1de54: 0x6ced4c20, 0x1de55: 0x6d36d020, 0x1de56: 0x6cd82620, 0x1de57: 0x6d07ca20,
-	0x1de58: 0x6c575620, 0x1de59: 0x6d228220, 0x1de5a: 0x6ce59e20, 0x1de5b: 0x6c45fa20,
-	0x1de5c: 0x6d3d9420, 0x1de5d: 0x6c94bc20, 0x1de5e: 0x6d03fc20, 0x1de5f: 0x6cbde620,
-	0x1de60: 0x6cd0c420, 0x1de61: 0x6c4e2e20, 0x1de62: 0x6c94be20, 0x1de63: 0x6d128a20,
-	0x1de64: 0x6c1eac20, 0x1de65: 0x6d2bae20, 0x1de66: 0x6c70c420, 0x1de67: 0x6cfd0220,
-	0x1de68: 0x6ce60020, 0x1de69: 0x6c987020, 0x1de6a: 0x6cb4b420, 0x1de6b: 0x6c843620,
-	0x1de6c: 0x6cacc020, 0x1de6d: 0x6cc8e020, 0x1de6e: 0x6c1a3220, 0x1de6f: 0x6c435820,
-	0x1de70: 0x6c852820, 0x1de71: 0x6ce28220, 0x1de72: 0x6c0e4420, 0x1de73: 0x6d3b2420,
-	0x1de74: 0x6d327e20, 0x1de75: 0x6ce87a20, 0x1de76: 0x6c8f1820, 0x1de77: 0x6d41d420,
-	0x1de78: 0x6c729a20, 0x1de79: 0x6c16fa20, 0x1de7a: 0x6d25f020, 0x1de7b: 0x6c66d820,
-	0x1de7c: 0x6c429220, 0x1de7d: 0x6c2e4020, 0x1de7e: 0x6ce24020, 0x1de7f: 0x6c16c620,
-	// Block 0x77a, offset 0x1de80
-	0x1de80: 0x6c951020, 0x1de81: 0x6c4cd020, 0x1de82: 0x6c8d5c20, 0x1de83: 0x6c06ba20,
-	0x1de84: 0x6c92de20, 0x1de85: 0x6c845020, 0x1de86: 0x6cbade20, 0x1de87: 0x6cb3e220,
-	0x1de88: 0x6c732e20, 0x1de89: 0x6c9f7a20, 0x1de8a: 0x6d41d620, 0x1de8b: 0x6caeca20,
-	0x1de8c: 0x6c01d020, 0x1de8d: 0x6caf9020, 0x1de8e: 0x6cfd1420, 0x1de8f: 0x6d0afa20,
-	0x1de90: 0x6d3c6820, 0x1de91: 0x6c834620, 0x1de92: 0x6c783220, 0x1de93: 0x6c798a20,
-	0x1de94: 0x6cdea820, 0x1de95: 0x6c7d8420, 0x1de96: 0x6c31bc20, 0x1de97: 0x6ca59020,
-	0x1de98: 0x6c20e220, 0x1de99: 0x6d3e9820, 0x1de9a: 0x6d32ec20, 0x1de9b: 0x6c078c20,
-	0x1de9c: 0x6ca87620, 0x1de9d: 0x6d403620, 0x1de9e: 0x6c216620, 0x1de9f: 0x6ce01420,
-	0x1dea0: 0x6c2fba20, 0x1dea1: 0x6cb65420, 0x1dea2: 0x6cb9cc20, 0x1dea3: 0x6d3cac20,
-	0x1dea4: 0x6c5f4820, 0x1dea5: 0x6d23fa20, 0x1dea6: 0x6c6cb620, 0x1dea7: 0x6c496620,
-	0x1dea8: 0x6c990820, 0x1dea9: 0x6c167c20, 0x1deaa: 0x6ce51c20, 0x1deab: 0x6cf6de20,
-	0x1deac: 0x6c891e20, 0x1dead: 0x6ce24220, 0x1deae: 0x6c482820, 0x1deaf: 0x6c263a20,
-	0x1deb0: 0x6cd61420, 0x1deb1: 0x6d319c20, 0x1deb2: 0x6c92e020, 0x1deb3: 0x6c9be820,
-	0x1deb4: 0x6c92e220, 0x1deb5: 0x6c571820, 0x1deb6: 0x6c0c8020, 0x1deb7: 0x6c40cc20,
-	0x1deb8: 0x6c7f2c20, 0x1deb9: 0x6c790e20, 0x1deba: 0x6c39ec20, 0x1debb: 0x6cf55820,
-	0x1debc: 0x6ca3d820, 0x1debd: 0x6ced9c20, 0x1debe: 0x6d299c20, 0x1debf: 0x6c570020,
-	// Block 0x77b, offset 0x1dec0
-	0x1dec0: 0x6c2a8620, 0x1dec1: 0x6cfada20, 0x1dec2: 0x6cb10220, 0x1dec3: 0x6c5d6020,
-	0x1dec4: 0x6c89cc20, 0x1dec5: 0x6c384820, 0x1dec6: 0x6c9ad820, 0x1dec7: 0x6c767220,
-	0x1dec8: 0x6d1bf220, 0x1dec9: 0x6c2b4a20, 0x1deca: 0x6c892220, 0x1decb: 0x6c4c4020,
-	0x1decc: 0x6cfc3620, 0x1decd: 0x6c328220, 0x1dece: 0x6ce8fc20, 0x1decf: 0x6cef4420,
-	0x1ded0: 0x6d3fca20, 0x1ded1: 0x6c406a20, 0x1ded2: 0x6cc76620, 0x1ded3: 0x6c60d220,
-	0x1ded4: 0x6c36ba20, 0x1ded5: 0x6c758620, 0x1ded6: 0x6c191420, 0x1ded7: 0x6ce38c20,
-	0x1ded8: 0x6d2c5820, 0x1ded9: 0x6c56d420, 0x1deda: 0x6d0fe020, 0x1dedb: 0x6c32de20,
-	0x1dedc: 0x6cfa0420, 0x1dedd: 0x6d21c220, 0x1dede: 0x6c795a20, 0x1dedf: 0x6d03aa20,
-	0x1dee0: 0x6c5a1020, 0x1dee1: 0x6cf03220, 0x1dee2: 0x6c406c20, 0x1dee3: 0x6d2f7620,
-	0x1dee4: 0x6c13b620, 0x1dee5: 0x6cbcee20, 0x1dee6: 0x6cd20620, 0x1dee7: 0x6c52d620,
-	0x1dee8: 0x6c7ca820, 0x1dee9: 0x6ce51e20, 0x1deea: 0x6ca1ee20, 0x1deeb: 0x6cbbbc20,
-	0x1deec: 0x6cbbbe20, 0x1deed: 0x6c543820, 0x1deee: 0x6ce7e020, 0x1deef: 0x6c236c20,
-	0x1def0: 0x6c58ae20, 0x1def1: 0x6d136620, 0x1def2: 0x6c9f7e20, 0x1def3: 0x6c66e620,
-	0x1def4: 0x6c32a420, 0x1def5: 0x6c66da20, 0x1def6: 0x6cd94220, 0x1def7: 0x6c7caa20,
-	0x1def8: 0x6c55d220, 0x1def9: 0x6d07d820, 0x1defa: 0x6c34b620, 0x1defb: 0x6c6b4a20,
-	0x1defc: 0x6d31a020, 0x1defd: 0x6c0b0e20, 0x1defe: 0x6d37d020, 0x1deff: 0x6d3ea220,
-	// Block 0x77c, offset 0x1df00
-	0x1df00: 0x6d04fe20, 0x1df01: 0x6d129020, 0x1df02: 0x6c9a6e20, 0x1df03: 0x6cac3420,
-	0x1df04: 0x6c003620, 0x1df05: 0x6c6c0c20, 0x1df06: 0x6cba9420, 0x1df07: 0x6c9a3220,
-	0x1df08: 0x6cdda220, 0x1df09: 0x6c26ca20, 0x1df0a: 0x6c059620, 0x1df0b: 0x6cfa0a20,
-	0x1df0c: 0x6c887a20, 0x1df0d: 0x6cddaa20, 0x1df0e: 0x6c769a20, 0x1df0f: 0x6c8ec020,
-	0x1df10: 0x6d116420, 0x1df11: 0x6d137420, 0x1df12: 0x6caa2e20, 0x1df13: 0x6cf23e20,
-	0x1df14: 0x6cc6d420, 0x1df15: 0x6ce15420, 0x1df16: 0x6cddac20, 0x1df17: 0x6cbaf220,
-	0x1df18: 0x6c86e020, 0x1df19: 0x6cd7a620, 0x1df1a: 0x6c20e420, 0x1df1b: 0x6c0f9620,
-	0x1df1c: 0x6cac8620, 0x1df1d: 0x6c266e20, 0x1df1e: 0x6c089620, 0x1df1f: 0x6cca9020,
-	0x1df20: 0x6c429420, 0x1df21: 0x6d3ea620, 0x1df22: 0x6cf38c20, 0x1df23: 0x6d1cb420,
-	0x1df24: 0x6c5a7e20, 0x1df25: 0x6ce5aa20, 0x1df26: 0x6c8ec220, 0x1df27: 0x6c767420,
-	0x1df28: 0x6cdd0220, 0x1df29: 0x6ccc2220, 0x1df2a: 0x6cd9f020, 0x1df2b: 0x6ceda820,
-	0x1df2c: 0x6c507620, 0x1df2d: 0x6d327020, 0x1df2e: 0x6d327220, 0x1df2f: 0x6c80e820,
-	0x1df30: 0x6d18fc20, 0x1df31: 0x6d25c420, 0x1df32: 0x6ce18620, 0x1df33: 0x6ca88a20,
-	0x1df34: 0x6cf7b020, 0x1df35: 0x6c638c20, 0x1df36: 0x6c43ba20, 0x1df37: 0x6c96a820,
-	0x1df38: 0x6c730620, 0x1df39: 0x6cd9a220, 0x1df3a: 0x6d413420, 0x1df3b: 0x6cddae20,
-	0x1df3c: 0x6cfa5620, 0x1df3d: 0x6c3d0220, 0x1df3e: 0x6cf21e20, 0x1df3f: 0x6ca2ec20,
-	// Block 0x77d, offset 0x1df40
-	0x1df40: 0x6c91fa20, 0x1df41: 0x6cddb020, 0x1df42: 0x6cab6020, 0x1df43: 0x6d40f620,
-	0x1df44: 0x6ce96e20, 0x1df45: 0x6d050820, 0x1df46: 0x6c49b220, 0x1df47: 0x6d08cc20,
-	0x1df48: 0x6c892620, 0x1df49: 0x6cd48620, 0x1df4a: 0x6c02f820, 0x1df4b: 0x6c97d420,
-	0x1df4c: 0x6ca18020, 0x1df4d: 0x6c956620, 0x1df4e: 0x6c0a9e20, 0x1df4f: 0x6cf0fe20,
-	0x1df50: 0x6c8ed020, 0x1df51: 0x6c2bb220, 0x1df52: 0x6cca3620, 0x1df53: 0x6d401220,
-	0x1df54: 0x6d158a20, 0x1df55: 0x6c932020, 0x1df56: 0x6c028220, 0x1df57: 0x6c796220,
-	0x1df58: 0x6cbafa20, 0x1df59: 0x6c24f820, 0x1df5a: 0x6cb54e20, 0x1df5b: 0x6c16d220,
-	0x1df5c: 0x6ce0dc20, 0x1df5d: 0x6c981020, 0x1df5e: 0x6d1dd020, 0x1df5f: 0x6c160620,
-	0x1df60: 0x6c3c7220, 0x1df61: 0x6c6ebe20, 0x1df62: 0x6c0c4820, 0x1df63: 0x6cd62a20,
-	0x1df64: 0x6c912420, 0x1df65: 0x6d055820, 0x1df66: 0x6c237420, 0x1df67: 0x6c8fce20,
-	0x1df68: 0x6d29b020, 0x1df69: 0x6c670820, 0x1df6a: 0x6c12a220, 0x1df6b: 0x6c849220,
-	0x1df6c: 0x6cfa5c20, 0x1df6d: 0x6cf72020, 0x1df6e: 0x6c776020, 0x1df6f: 0x6cd6f820,
-	0x1df70: 0x6c086220, 0x1df71: 0x6d2f4a20, 0x1df72: 0x6cba9620, 0x1df73: 0x6c19a620,
-	0x1df74: 0x6c933420, 0x1df75: 0x6c576820, 0x1df76: 0x6c60f220, 0x1df77: 0x6cb47220,
-	0x1df78: 0x6c5c8c20, 0x1df79: 0x6cbb5020, 0x1df7a: 0x6cb32420, 0x1df7b: 0x6c8c0220,
-	0x1df7c: 0x6ccb9020, 0x1df7d: 0x6d055a20, 0x1df7e: 0x6cca3c20, 0x1df7f: 0x6c19a820,
-	// Block 0x77e, offset 0x1df80
-	0x1df80: 0x6c7d3a20, 0x1df81: 0x6cd84820, 0x1df82: 0x6c8f5420, 0x1df83: 0x6ca4d220,
-	0x1df84: 0x6c5a2220, 0x1df85: 0x6cb1e020, 0x1df86: 0x6cdcb020, 0x1df87: 0x6c38ea20,
-	0x1df88: 0x6cbc0e20, 0x1df89: 0x6cc2aa20, 0x1df8a: 0x6d0fee20, 0x1df8b: 0x6ce0de20,
-	0x1df8c: 0x6cfe6620, 0x1df8d: 0x6c750420, 0x1df8e: 0x6c68a420, 0x1df8f: 0x6d41fc20,
-	0x1df90: 0x6c8a4e20, 0x1df91: 0x6cbd0420, 0x1df92: 0x6c819020, 0x1df93: 0x6c338020,
-	0x1df94: 0x6d030620, 0x1df95: 0x6d295820, 0x1df96: 0x6c5f8e20, 0x1df97: 0x6c661e20,
-	0x1df98: 0x6d37da20, 0x1df99: 0x6c2af620, 0x1df9a: 0x6d0b0620, 0x1df9b: 0x6d1d5c20,
-	0x1df9c: 0x6c331e20, 0x1df9d: 0x6c750620, 0x1df9e: 0x6caa3020, 0x1df9f: 0x6d295a20,
-	0x1dfa0: 0x6cb4a420, 0x1dfa1: 0x6ce60620, 0x1dfa2: 0x6c38ec20, 0x1dfa3: 0x6d2f4c20,
-	0x1dfa4: 0x6c2f8a20, 0x1dfa5: 0x6ccdda20, 0x1dfa6: 0x6c764220, 0x1dfa7: 0x6c653820,
-	0x1dfa8: 0x6c3af020, 0x1dfa9: 0x6cdcba20, 0x1dfaa: 0x6c920020, 0x1dfab: 0x6c730c20,
-	0x1dfac: 0x6c5c9420, 0x1dfad: 0x6d246a20, 0x1dfae: 0x6c889c20, 0x1dfaf: 0x6d3dcc20,
-	0x1dfb0: 0x6cbbc820, 0x1dfb1: 0x6c672220, 0x1dfb2: 0x6d3dde20, 0x1dfb3: 0x6c828c20,
-	0x1dfb4: 0x6c0ac820, 0x1dfb5: 0x6ce60820, 0x1dfb6: 0x6c58c220, 0x1dfb7: 0x6d138c20,
-	0x1dfb8: 0x6c346c20, 0x1dfb9: 0x6c4cd620, 0x1dfba: 0x6c29ac20, 0x1dfbb: 0x6c72ce20,
-	0x1dfbc: 0x6c3bac20, 0x1dfbd: 0x6c26d620, 0x1dfbe: 0x6c077220, 0x1dfbf: 0x6d194a20,
-	// Block 0x77f, offset 0x1dfc0
-	0x1dfc0: 0x6c010820, 0x1dfc1: 0x6d3fe220, 0x1dfc2: 0x6d0aba20, 0x1dfc3: 0x6c2e4e20,
-	0x1dfc4: 0x6d3b4e20, 0x1dfc5: 0x6c528620, 0x1dfc6: 0x6d3cc220, 0x1dfc7: 0x6c5fa220,
-	0x1dfc8: 0x6ca8be20, 0x1dfc9: 0x6c51a620, 0x1dfca: 0x6c5e4c20, 0x1dfcb: 0x6cbe6020,
-	0x1dfcc: 0x6c0d7020, 0x1dfcd: 0x6d1c3e20, 0x1dfce: 0x6c7d4020, 0x1dfcf: 0x6ca93c20,
-	0x1dfd0: 0x6d060e20, 0x1dfd1: 0x6c672620, 0x1dfd2: 0x6c672820, 0x1dfd3: 0x6cba9a20,
-	0x1dfd4: 0x6c142620, 0x1dfd5: 0x6d377220, 0x1dfd6: 0x6c9f1620, 0x1dfd7: 0x6c84ce20,
-	0x1dfd8: 0x6c829820, 0x1dfd9: 0x6c5fa620, 0x1dfda: 0x6d416620, 0x1dfdb: 0x6c7c2220,
-	0x1dfdc: 0x6cce4420, 0x1dfdd: 0x6caefc20, 0x1dfde: 0x6c7ece20, 0x1dfdf: 0x6c320020,
-	0x1dfe0: 0x6cd7b020, 0x1dfe1: 0x6c21ec20, 0x1dfe2: 0x6c942820, 0x1dfe3: 0x6c0c6220,
-	0x1dfe4: 0x6c068420, 0x1dfe5: 0x6c920420, 0x1dfe6: 0x6cfd5c20, 0x1dfe7: 0x6c7b7e20,
-	0x1dfe8: 0x6c901020, 0x1dfe9: 0x6c36fa20, 0x1dfea: 0x6c91a220, 0x1dfeb: 0x6d02f820,
-	0x1dfec: 0x6c672c20, 0x1dfed: 0x6c809420, 0x1dfee: 0x6c0fd620, 0x1dfef: 0x6c655620,
-	0x1dff0: 0x6d125820, 0x1dff1: 0x6c157e20, 0x1dff2: 0x6cfda620, 0x1dff3: 0x6c673020,
-	0x1dff4: 0x6cf76220, 0x1dff5: 0x6c49c820, 0x1dff6: 0x6c125620, 0x1dff7: 0x6ca8d220,
-	0x1dff8: 0x6c831620, 0x1dff9: 0x6c249c20, 0x1dffa: 0x6cc23020, 0x1dffb: 0x6cacc820,
-	0x1dffc: 0x6c959420, 0x1dffd: 0x6d414420, 0x1dffe: 0x6c947a20, 0x1dfff: 0x6d2a3820,
-	// Block 0x780, offset 0x1e000
-	0x1e000: 0x6ca8d820, 0x1e001: 0x6c753e20, 0x1e002: 0x6ce19820, 0x1e003: 0x6cd58e20,
-	0x1e004: 0x6c801c20, 0x1e005: 0x6c6c2220, 0x1e006: 0x6c40c420, 0x1e007: 0x6d15b420,
-	0x1e008: 0x6d312020, 0x1e009: 0x6c2f5220, 0x1e00a: 0x6d2f5220, 0x1e00b: 0x6cb2f020,
-	0x1e00c: 0x6c8a6620, 0x1e00d: 0x6ce91820, 0x1e00e: 0x6cb8ba20, 0x1e00f: 0x6c203220,
-	0x1e010: 0x6cccca20, 0x1e011: 0x6c5fe820, 0x1e012: 0x6c388e20, 0x1e013: 0x6c2e0a20,
-	0x1e014: 0x6c9ac420, 0x1e015: 0x6caa7020, 0x1e016: 0x6d0f8c20, 0x1e017: 0x6c146420,
-	0x1e018: 0x6d03d620, 0x1e019: 0x6c413020, 0x1e01a: 0x6c107a20, 0x1e01b: 0x6cdf6620,
-	0x1e01c: 0x6c721c20, 0x1e01d: 0x6c33e620, 0x1e01e: 0x6c173e20, 0x1e01f: 0x6d37ac20,
-	0x1e020: 0x6ca32220, 0x1e021: 0x6c06f620, 0x1e022: 0x6c426a20, 0x1e023: 0x6c04c420,
-	0x1e024: 0x6cb97a20, 0x1e025: 0x6d11fa20, 0x1e026: 0x6cbd2220, 0x1e027: 0x6c756620,
-	0x1e028: 0x6cf35e20, 0x1e029: 0x6c463c20, 0x1e02a: 0x6c778420, 0x1e02b: 0x6c398e20,
-	0x1e02c: 0x6c5d8c20, 0x1e02d: 0x6ce80a20, 0x1e02e: 0x6ca98e20, 0x1e02f: 0x6c039c20,
-	0x1e030: 0x6d22fa20, 0x1e031: 0x6cb98420, 0x1e032: 0x6d32aa20, 0x1e033: 0x6cb98620,
-	0x1e034: 0x6c477820, 0x1e035: 0x6c0e6820, 0x1e036: 0x6c353c20, 0x1e037: 0x6cb35220,
-	0x1e038: 0x6c108e20, 0x1e039: 0x6c0ee220, 0x1e03a: 0x6d26a020, 0x1e03b: 0x6d413820,
-	0x1e03c: 0x6ca28020, 0x1e03d: 0x6ce05a20, 0x1e03e: 0x6c641020, 0x1e03f: 0x6c2d4a20,
-	// Block 0x781, offset 0x1e040
-	0x1e040: 0x6d1f2620, 0x1e041: 0x6ce5f820, 0x1e042: 0x6c0ee420, 0x1e043: 0x6c8cd620,
-	0x1e044: 0x6cd77a20, 0x1e045: 0x6cb8d020, 0x1e046: 0x6c993620, 0x1e047: 0x6c064420,
-	0x1e048: 0x6cd36620, 0x1e049: 0x6d088420, 0x1e04a: 0x6cdde820, 0x1e04b: 0x6c097220,
-	0x1e04c: 0x6ca5d220, 0x1e04d: 0x6caf5e20, 0x1e04e: 0x6c344220, 0x1e04f: 0x6d03e420,
-	0x1e050: 0x6c77bc20, 0x1e051: 0x6c81b020, 0x1e052: 0x6c379420, 0x1e053: 0x6c985e20,
-	0x1e054: 0x6d0ba820, 0x1e055: 0x6d1fc620, 0x1e056: 0x6c19f620, 0x1e057: 0x6c63bc20,
-	0x1e058: 0x6d127e20, 0x1e059: 0x6ca4a820, 0x1e05a: 0x6d361020, 0x1e05b: 0x6c29aa20,
-	0x1e05c: 0x6ce74620, 0x1e05d: 0x6c939820, 0x1e05e: 0x6c2e2220, 0x1e05f: 0x6d19d220,
-	0x1e060: 0x6c765020, 0x1e061: 0x6d2c2e20, 0x1e062: 0x6d39a220, 0x1e063: 0x6cf7e420,
-	0x1e064: 0x6c2fa220, 0x1e065: 0x6c2fd220, 0x1e066: 0x6cfaa420, 0x1e067: 0x6c573a20,
-	0x1e068: 0x6cc2e820, 0x1e069: 0x6ccbf020, 0x1e06a: 0x6c4cfa20, 0x1e06b: 0x6c2e2420,
-	0x1e06c: 0x6c448620, 0x1e06d: 0x6c9ffc20, 0x1e06e: 0x6d32be20, 0x1e06f: 0x6ccb2620,
-	0x1e070: 0x6c68ec20, 0x1e071: 0x6d13ec20, 0x1e072: 0x6c15b220, 0x1e073: 0x6c1d4e20,
-	0x1e074: 0x6ce0be20, 0x1e075: 0x6c018220, 0x1e076: 0x6d1a6220, 0x1e077: 0x6cc7a820,
-	0x1e078: 0x6d3b0620, 0x1e079: 0x6c815c20, 0x1e07a: 0x6cb4ac20, 0x1e07b: 0x6cf3cc20,
-	0x1e07c: 0x6c7f1020, 0x1e07d: 0x6ce27c20, 0x1e07e: 0x6c890020, 0x1e07f: 0x6c794420,
-	// Block 0x782, offset 0x1e080
-	0x1e080: 0x6cfed020, 0x1e081: 0x6cdd6820, 0x1e082: 0x6c851a20, 0x1e083: 0x6d2bac20,
-	0x1e084: 0x6c1e8620, 0x1e085: 0x6c4c2220, 0x1e086: 0x6c434a20, 0x1e087: 0x6c357020,
-	0x1e088: 0x6d053e20, 0x1e089: 0x6c262e20, 0x1e08a: 0x6c94aa20, 0x1e08b: 0x6c3c5220,
-	0x1e08c: 0x6d02da20, 0x1e08d: 0x6c8f0a20, 0x1e08e: 0x6c763220, 0x1e08f: 0x6c65a220,
-	0x1e090: 0x6cc8d020, 0x1e091: 0x6ce2f220, 0x1e092: 0x6c80ce20, 0x1e093: 0x6cbdda20,
-	0x1e094: 0x6c70a420, 0x1e095: 0x6c000820, 0x1e096: 0x6cbac620, 0x1e097: 0x6d30da20,
-	0x1e098: 0x6cab0020, 0x1e099: 0x6c263220, 0x1e09a: 0x6c98ee20, 0x1e09b: 0x6c078a20,
-	0x1e09c: 0x6cb60620, 0x1e09d: 0x6c2a7820, 0x1e09e: 0x6c78be20, 0x1e09f: 0x6c7d7420,
-	0x1e0a0: 0x6c167620, 0x1e0a1: 0x6cf65e20, 0x1e0a2: 0x6c482020, 0x1e0a3: 0x6c954c20,
-	0x1e0a4: 0x6c20da20, 0x1e0a5: 0x6d3c6420, 0x1e0a6: 0x6c6c9a20, 0x1e0a7: 0x6d367420,
-	0x1e0a8: 0x6cfab620, 0x1e0a9: 0x6c732220, 0x1e0aa: 0x6c5d5820, 0x1e0ab: 0x6caddc20,
-	0x1e0ac: 0x6cdfee20, 0x1e0ad: 0x6c2fae20, 0x1e0ae: 0x6c66a220, 0x1e0af: 0x6c725c20,
-	0x1e0b0: 0x6c9bdc20, 0x1e0b1: 0x6d3e6620, 0x1e0b2: 0x6cbcdc20, 0x1e0b3: 0x6d1bc820,
-	0x1e0b4: 0x6c766a20, 0x1e0b5: 0x6cbad420, 0x1e0b6: 0x6cd80a20, 0x1e0b7: 0x6c367820,
-	0x1e0b8: 0x6c13ac20, 0x1e0b9: 0x6cbb9420, 0x1e0ba: 0x6d37c420, 0x1e0bb: 0x6c32d620,
-	0x1e0bc: 0x6cd9d220, 0x1e0bd: 0x6c59e820, 0x1e0be: 0x6c588c20, 0x1e0bf: 0x6c003220,
-	// Block 0x783, offset 0x1e0c0
-	0x1e0c0: 0x6c327020, 0x1e0c1: 0x6c9a6420, 0x1e0c2: 0x6c911420, 0x1e0c3: 0x6d3e7420,
-	0x1e0c4: 0x6c3ac020, 0x1e0c5: 0x6c9a1c20, 0x1e0c6: 0x6ca15820, 0x1e0c7: 0x6d325c20,
-	0x1e0c8: 0x6c0f5020, 0x1e0c9: 0x6c442a20, 0x1e0ca: 0x6ca86620, 0x1e0cb: 0x6ce18220,
-	0x1e0cc: 0x6c730220, 0x1e0cd: 0x6ca86820, 0x1e0ce: 0x6ca2e820, 0x1e0cf: 0x6c8e8e20,
-	0x1e0d0: 0x6c431e20, 0x1e0d1: 0x6c058a20, 0x1e0d2: 0x6d186c20, 0x1e0d3: 0x6c638020,
-	0x1e0d4: 0x6c0d4e20, 0x1e0d5: 0x6cc6ac20, 0x1e0d6: 0x6c0c2420, 0x1e0d7: 0x6ce0d620,
-	0x1e0d8: 0x6c980620, 0x1e0d9: 0x6c955420, 0x1e0da: 0x6c085420, 0x1e0db: 0x6d1dbc20,
-	0x1e0dc: 0x6c6eae20, 0x1e0dd: 0x6c2b4620, 0x1e0de: 0x6d40dc20, 0x1e0df: 0x6d08b420,
-	0x1e0e0: 0x6c8ea620, 0x1e0e1: 0x6c153220, 0x1e0e2: 0x6c74d020, 0x1e0e3: 0x6c8aac20,
-	0x1e0e4: 0x6cb46420, 0x1e0e5: 0x6c91e220, 0x1e0e6: 0x6c336e20, 0x1e0e7: 0x6c7fc820,
-	0x1e0e8: 0x6cb49e20, 0x1e0e9: 0x6c249420, 0x1e0ea: 0x6cbae820, 0x1e0eb: 0x6c2aee20,
-	0x1e0ec: 0x6c5e1e20, 0x1e0ed: 0x6c826e20, 0x1e0ee: 0x6c58b220, 0x1e0ef: 0x6d3dc420,
-	0x1e0f0: 0x6c887c20, 0x1e0f1: 0x6d18fe20, 0x1e0f2: 0x6c142420, 0x1e0f3: 0x6c0c4e20,
-	0x1e0f4: 0x6c7eba20, 0x1e0f5: 0x6c157020, 0x1e0f6: 0x6cfda020, 0x1e0f7: 0x6d2f0020,
-	0x1e0f8: 0x6c169c20, 0x1e0f9: 0x6c6fbc20, 0x1e0fa: 0x6c02a420, 0x1e0fb: 0x6c2eb820,
-	0x1e0fc: 0x6cc13c20, 0x1e0fd: 0x6c8a8420, 0x1e0fe: 0x6c9caa20, 0x1e0ff: 0x6d2efa20,
-	// Block 0x784, offset 0x1e100
-	0x1e100: 0x6c9ac620, 0x1e101: 0x6c96b620, 0x1e102: 0x6cd68220, 0x1e103: 0x6ccd3c20,
-	0x1e104: 0x6c5db420, 0x1e105: 0x6c9ac820, 0x1e106: 0x6d0c8e20, 0x1e107: 0x6c098e20,
-	0x1e108: 0x6c4eba20, 0x1e109: 0x6c099020, 0x1e10a: 0x6ccdfa20, 0x1e10b: 0x6c763420,
-	0x1e10c: 0x6c778a20, 0x1e10d: 0x6c07f220, 0x1e10e: 0x6c535c20, 0x1e10f: 0x6cc8fe20,
-	0x1e110: 0x6cca5820, 0x1e111: 0x6cfb6420, 0x1e112: 0x6cfb6620, 0x1e113: 0x6c64ac20,
-	0x1e114: 0x6c9fb420, 0x1e115: 0x6cf96820, 0x1e116: 0x6cd74020, 0x1e117: 0x6c312020,
-	0x1e118: 0x6d2c3c20, 0x1e119: 0x6ca53420, 0x1e11a: 0x6d2d8820, 0x1e11b: 0x6cae7820,
-	0x1e11c: 0x6cfa2220, 0x1e11d: 0x6c8d2820, 0x1e11e: 0x6c0bae20, 0x1e11f: 0x6c09e820,
-	0x1e120: 0x6cc90020, 0x1e121: 0x6c00be20, 0x1e122: 0x6c492020, 0x1e123: 0x6c441620,
-	0x1e124: 0x6c441820, 0x1e125: 0x6c382220, 0x1e126: 0x6c1f6620, 0x1e127: 0x6c53c820,
-	0x1e128: 0x6c4a7e20, 0x1e129: 0x6c9fbe20, 0x1e12a: 0x6ccb1220, 0x1e12b: 0x6c7dc020,
-	0x1e12c: 0x6c812c20, 0x1e12d: 0x6c935a20, 0x1e12e: 0x6ce68820, 0x1e12f: 0x6ccc7620,
-	0x1e130: 0x6c714820, 0x1e131: 0x6d26e420, 0x1e132: 0x6d26e620, 0x1e133: 0x6c15e020,
-	0x1e134: 0x6cc27620, 0x1e135: 0x6c8c6a20, 0x1e136: 0x6c167e20, 0x1e137: 0x6ccca420,
-	0x1e138: 0x6c7dc220, 0x1e139: 0x6d0c3020, 0x1e13a: 0x6cf1b220, 0x1e13b: 0x6d0cd420,
-	0x1e13c: 0x6c36b020, 0x1e13d: 0x6c5cda20, 0x1e13e: 0x6d23fc20, 0x1e13f: 0x6cf1b420,
-	// Block 0x785, offset 0x1e140
-	0x1e140: 0x6cfe6020, 0x1e141: 0x6c05be20, 0x1e142: 0x6c53d620, 0x1e143: 0x6cc28020,
-	0x1e144: 0x6d11dc20, 0x1e145: 0x6cf1ba20, 0x1e146: 0x6c04d820, 0x1e147: 0x6c01d220,
-	0x1e148: 0x6cef4620, 0x1e149: 0x6d1a1020, 0x1e14a: 0x6c7e2020, 0x1e14b: 0x6cc40a20,
-	0x1e14c: 0x6c7fca20, 0x1e14d: 0x6c317c20, 0x1e14e: 0x6cc38620, 0x1e14f: 0x6c3c6e20,
-	0x1e150: 0x6ce4cc20, 0x1e151: 0x6ca88c20, 0x1e152: 0x6cdec420, 0x1e153: 0x6c767620,
-	0x1e154: 0x6c518a20, 0x1e155: 0x6cc40e20, 0x1e156: 0x6c209c20, 0x1e157: 0x6c493020,
-	0x1e158: 0x6c314620, 0x1e159: 0x6cb72420, 0x1e15a: 0x6c7c4e20, 0x1e15b: 0x6ce15c20,
-	0x1e15c: 0x6c493420, 0x1e15d: 0x6cb18a20, 0x1e15e: 0x6c771820, 0x1e15f: 0x6cf92420,
-	0x1e160: 0x6c5c8e20, 0x1e161: 0x6c160e20, 0x1e162: 0x6cb0dc20, 0x1e163: 0x6c29a420,
-	0x1e164: 0x6c58c420, 0x1e165: 0x6cdeda20, 0x1e166: 0x6cf1c220, 0x1e167: 0x6cde0220,
-	0x1e168: 0x6c9abe20, 0x1e169: 0x6cd67e20, 0x1e16a: 0x6ccd2820, 0x1e16b: 0x6d0e3820,
-	0x1e16c: 0x6c4e8820, 0x1e16d: 0x6c090e20, 0x1e16e: 0x6cf1f820, 0x1e16f: 0x6c208c20,
-	0x1e170: 0x6cc8f820, 0x1e171: 0x6ceee620, 0x1e172: 0x6cfb2820, 0x1e173: 0x6c52fe20,
-	0x1e174: 0x6c646620, 0x1e175: 0x6c9f9220, 0x1e176: 0x6c772620, 0x1e177: 0x6c9aea20,
-	0x1e178: 0x6d2c2420, 0x1e179: 0x6ca52a20, 0x1e17a: 0x6c4a4220, 0x1e17b: 0x6cf18820,
-	0x1e17c: 0x6cde3e20, 0x1e17d: 0x6c9fa020, 0x1e17e: 0x6c935420, 0x1e17f: 0x6c764e20,
-	// Block 0x786, offset 0x1e180
-	0x1e180: 0x6c380a20, 0x1e181: 0x6c43ce20, 0x1e182: 0x6c50e620, 0x1e183: 0x6c7da420,
-	0x1e184: 0x6c6f6820, 0x1e185: 0x6d26a220, 0x1e186: 0x6c80b020, 0x1e187: 0x6c316c20,
-	0x1e188: 0x6d232820, 0x1e189: 0x6d0c0420, 0x1e18a: 0x6c166c20, 0x1e18b: 0x6cf88020,
-	0x1e18c: 0x6cf19420, 0x1e18d: 0x6c5cc620, 0x1e18e: 0x6d0c9020, 0x1e18f: 0x6c362020,
-	0x1e190: 0x6c15b420, 0x1e191: 0x6c7fa020, 0x1e192: 0x6cc27020, 0x1e193: 0x6c5bce20,
-	0x1e194: 0x6c7e0220, 0x1e195: 0x6cc3c620, 0x1e196: 0x6c515020, 0x1e197: 0x6ce4b220,
-	0x1e198: 0x6c26b220, 0x1e199: 0x6cc39020, 0x1e19a: 0x6c4e5e20, 0x1e19b: 0x6c58a220,
-	0x1e19c: 0x6c3fba20, 0x1e19d: 0x6c3f9e20, 0x1e19e: 0x6c820620, 0x1e19f: 0x6c332a20,
-	0x1e1a0: 0x6d031020, 0x1e1a1: 0x6cb89020, 0x1e1a2: 0x6cf49a20, 0x1e1a3: 0x6c412620,
-	0x1e1a4: 0x6d356a20, 0x1e1a5: 0x6d19a020, 0x1e1a6: 0x6d0f7820, 0x1e1a7: 0x6c30d620,
-	0x1e1a8: 0x6c35ce20, 0x1e1a9: 0x6cd0d620, 0x1e1aa: 0x6c04b220, 0x1e1ab: 0x6cadc620,
-	0x1e1ac: 0x6c792220, 0x1e1ad: 0x6d27d420, 0x1e1ae: 0x6cc84c20, 0x1e1af: 0x6d34da20,
-	0x1e1b0: 0x6cafac20, 0x1e1b1: 0x6c6e0420, 0x1e1b2: 0x6c39a020, 0x1e1b3: 0x6d0f7a20,
-	0x1e1b4: 0x6d19a220, 0x1e1b5: 0x6d321020, 0x1e1b6: 0x6c69f420, 0x1e1b7: 0x6c195020,
-	0x1e1b8: 0x6c35d620, 0x1e1b9: 0x6cc0d620, 0x1e1ba: 0x6c2bd220, 0x1e1bb: 0x6d410a20,
-	0x1e1bc: 0x6d427820, 0x1e1bd: 0x6c2d3820, 0x1e1be: 0x6c8e0820, 0x1e1bf: 0x6c000220,
-	// Block 0x787, offset 0x1e1c0
-	0x1e1c0: 0x6ceae620, 0x1e1c1: 0x6ceae820, 0x1e1c2: 0x6c068c20, 0x1e1c3: 0x6c0dc020,
-	0x1e1c4: 0x6c3fae20, 0x1e1c5: 0x6c618e20, 0x1e1c6: 0x6c921420, 0x1e1c7: 0x6c902c20,
-	0x1e1c8: 0x6c18a220, 0x1e1c9: 0x6d03c220, 0x1e1ca: 0x6c34ce20, 0x1e1cb: 0x6c910220,
-	0x1e1cc: 0x6ca0da20, 0x1e1cd: 0x6c67d620, 0x1e1ce: 0x6cd4ae20, 0x1e1cf: 0x6c34d020,
-	0x1e1d0: 0x6cfc8620, 0x1e1d1: 0x6c373820, 0x1e1d2: 0x6c4acc20, 0x1e1d3: 0x6d207c20,
-	0x1e1d4: 0x6c40e220, 0x1e1d5: 0x6ccd2e20, 0x1e1d6: 0x6c759e20, 0x1e1d7: 0x6cbc3420,
-	0x1e1d8: 0x6d03d820, 0x1e1d9: 0x6c213620, 0x1e1da: 0x6c3fd820, 0x1e1db: 0x6c095820,
-	0x1e1dc: 0x6cf99e20, 0x1e1dd: 0x6ccd3820, 0x1e1de: 0x6cd0f620, 0x1e1df: 0x6d35aa20,
-	0x1e1e0: 0x6cb40420, 0x1e1e1: 0x6c30e420, 0x1e1e2: 0x6d260620, 0x1e1e3: 0x6d322820,
-	0x1e1e4: 0x6c1e7620, 0x1e1e5: 0x6cfc9820, 0x1e1e6: 0x6c2a5620, 0x1e1e7: 0x6ca7fe20,
-	0x1e1e8: 0x6d27e020, 0x1e1e9: 0x6cfbf020, 0x1e1ea: 0x6cadce20, 0x1e1eb: 0x6c3aa020,
-	0x1e1ec: 0x6d404e20, 0x1e1ed: 0x6d174c20, 0x1e1ee: 0x6c334820, 0x1e1ef: 0x6c94e620,
-	0x1e1f0: 0x6d19c420, 0x1e1f1: 0x6c707820, 0x1e1f2: 0x6c20c620, 0x1e1f3: 0x6c18ba20,
-	0x1e1f4: 0x6cafd620, 0x1e1f5: 0x6c8cd820, 0x1e1f6: 0x6ce21420, 0x1e1f7: 0x6cfcae20,
-	0x1e1f8: 0x6c923020, 0x1e1f9: 0x6cd0fc20, 0x1e1fa: 0x6cfc0a20, 0x1e1fb: 0x6d19d420,
-	0x1e1fc: 0x6d3a6220, 0x1e1fd: 0x6d0fb020, 0x1e1fe: 0x6cc62c20, 0x1e1ff: 0x6cf9bc20,
-	// Block 0x788, offset 0x1e200
-	0x1e200: 0x6c1d1420, 0x1e201: 0x6d0e6820, 0x1e202: 0x6d19d620, 0x1e203: 0x6cd5ce20,
-	0x1e204: 0x6c2b2c20, 0x1e205: 0x6d210c20, 0x1e206: 0x6c8f9220, 0x1e207: 0x6cee7820,
-	0x1e208: 0x6cee7a20, 0x1e209: 0x6ca82420, 0x1e20a: 0x6c334a20, 0x1e20b: 0x6cdbf220,
-	0x1e20c: 0x6c018420, 0x1e20d: 0x6c59b620, 0x1e20e: 0x6c6a0620, 0x1e20f: 0x6cdbf420,
-	0x1e210: 0x6d1ae220, 0x1e211: 0x6c413c20, 0x1e212: 0x6d0d9a20, 0x1e213: 0x6c5abe20,
-	0x1e214: 0x6c43fc20, 0x1e215: 0x6d27ee20, 0x1e216: 0x6cf4f220, 0x1e217: 0x6c7c6c20,
-	0x1e218: 0x6c009e20, 0x1e219: 0x6cf89820, 0x1e21a: 0x6ce10c20, 0x1e21b: 0x6c623020,
-	0x1e21c: 0x6d2f3620, 0x1e21d: 0x6c29de20, 0x1e21e: 0x6c024820, 0x1e21f: 0x6cf8aa20,
-	0x1e220: 0x6d1aee20, 0x1e221: 0x6cc9be20, 0x1e222: 0x6cc53a20, 0x1e223: 0x6c8bca20,
-	0x1e224: 0x6ce9b220, 0x1e225: 0x6c2ade20, 0x1e226: 0x6c693820, 0x1e227: 0x6cdc5820,
-	0x1e228: 0x6cdbfa20, 0x1e229: 0x6c02e220, 0x1e22a: 0x6cfc2620, 0x1e22b: 0x6c3b8220,
-	0x1e22c: 0x6ca64c20, 0x1e22d: 0x6c376820, 0x1e22e: 0x6c5f4a20, 0x1e22f: 0x6c29ec20,
-	0x1e230: 0x6cf7a620, 0x1e231: 0x6d1b0a20, 0x1e232: 0x6c358220, 0x1e233: 0x6c5af420,
-	0x1e234: 0x6c903c20, 0x1e235: 0x6cf72220, 0x1e236: 0x6c859820, 0x1e237: 0x6c868820,
-	0x1e238: 0x6c86b420, 0x1e239: 0x6d3c5620, 0x1e23a: 0x6c553a20, 0x1e23b: 0x6d33d220,
-	0x1e23c: 0x6cdcea20, 0x1e23d: 0x6c735220, 0x1e23e: 0x6ca3f620, 0x1e23f: 0x6d178820,
-	// Block 0x789, offset 0x1e240
-	0x1e240: 0x6cc3ba20, 0x1e241: 0x6d0e7e20, 0x1e242: 0x6cbd7a20, 0x1e243: 0x6cb8e820,
-	0x1e244: 0x6d047c20, 0x1e245: 0x6d0b5420, 0x1e246: 0x6c604620, 0x1e247: 0x6c481820,
-	0x1e248: 0x6c587a20, 0x1e249: 0x6d367620, 0x1e24a: 0x6c46c020, 0x1e24b: 0x6c736e20,
-	0x1e24c: 0x6c225620, 0x1e24d: 0x6d1d9420, 0x1e24e: 0x6c70b020, 0x1e24f: 0x6c1e9820,
-	0x1e250: 0x6c54f020, 0x1e251: 0x6d28c420, 0x1e252: 0x6c961c20, 0x1e253: 0x6d219620,
-	0x1e254: 0x6c1dde20, 0x1e255: 0x6c2de020, 0x1e256: 0x6cdbe020, 0x1e257: 0x6c4f2820,
-	0x1e258: 0x6cf32220, 0x1e259: 0x6cd6a620, 0x1e25a: 0x6c49ae20, 0x1e25b: 0x6c1ec220,
-	0x1e25c: 0x6d28d220, 0x1e25d: 0x6d1dcc20, 0x1e25e: 0x6c5f7c20, 0x1e25f: 0x6cf70c20,
-	0x1e260: 0x6c1dfe20, 0x1e261: 0x6c8f5220, 0x1e262: 0x6c847e20, 0x1e263: 0x6ca41420,
-	0x1e264: 0x6d092c20, 0x1e265: 0x6d28e420, 0x1e266: 0x6c610820, 0x1e267: 0x6c610a20,
-	0x1e268: 0x6d222220, 0x1e269: 0x6d211020, 0x1e26a: 0x6d093020, 0x1e26b: 0x6ca2f820,
-	0x1e26c: 0x6c3d2e20, 0x1e26d: 0x6ccb2820, 0x1e26e: 0x6ca28e20, 0x1e26f: 0x6cf19820,
-	0x1e270: 0x6c3b3620, 0x1e271: 0x6cacda20, 0x1e272: 0x6d27aa20, 0x1e273: 0x6c862220,
-	0x1e274: 0x6c1c3a20, 0x1e275: 0x6d0f6020, 0x1e276: 0x6c8d2a20, 0x1e277: 0x6c823e20,
-	0x1e278: 0x6c016e20, 0x1e279: 0x6c05ce20, 0x1e27a: 0x6cf50420, 0x1e27b: 0x6c2d6a20,
-	0x1e27c: 0x6c297420, 0x1e27d: 0x6c56ac20, 0x1e27e: 0x6cf50620, 0x1e27f: 0x6c2e3420,
-	// Block 0x78a, offset 0x1e280
-	0x1e280: 0x6d05c220, 0x1e281: 0x6c625820, 0x1e282: 0x6ca2a820, 0x1e283: 0x6c18e820,
-	0x1e284: 0x6cff1020, 0x1e285: 0x6d2cde20, 0x1e286: 0x6ce68a20, 0x1e287: 0x6d325e20,
-	0x1e288: 0x6cae2820, 0x1e289: 0x6c9a2420, 0x1e28a: 0x6c8d4c20, 0x1e28b: 0x6cb53420,
-	0x1e28c: 0x6d38b020, 0x1e28d: 0x6c5e0220, 0x1e28e: 0x6ccc7c20, 0x1e28f: 0x6c3a1a20,
-	0x1e290: 0x6c538a20, 0x1e291: 0x6d2da020, 0x1e292: 0x6d1a0820, 0x1e293: 0x6ca60820,
-	0x1e294: 0x6d3b2e20, 0x1e295: 0x6cea6e20, 0x1e296: 0x6c8be420, 0x1e297: 0x6c8e3020,
-	0x1e298: 0x6c308e20, 0x1e299: 0x6d1bf620, 0x1e29a: 0x6cf53220, 0x1e29b: 0x6c8d7420,
-	0x1e29c: 0x6cd6a420, 0x1e29d: 0x6c8d7620, 0x1e29e: 0x6cfa0620, 0x1e29f: 0x6c539020,
-	0x1e2a0: 0x6d1a1220, 0x1e2a1: 0x6c974420, 0x1e2a2: 0x6c974620, 0x1e2a3: 0x6d280620,
-	0x1e2a4: 0x6c8f4c20, 0x1e2a5: 0x6c9c1620, 0x1e2a6: 0x6c0d6a20, 0x1e2a7: 0x6cf54020,
-	0x1e2a8: 0x6cf10020, 0x1e2a9: 0x6c7e2a20, 0x1e2aa: 0x6d1aac20, 0x1e2ab: 0x6cf7b220,
-	0x1e2ac: 0x6d191e20, 0x1e2ad: 0x6c008020, 0x1e2ae: 0x6c28e420, 0x1e2af: 0x6ce2e420,
-	0x1e2b0: 0x6cca4020, 0x1e2b1: 0x6d246c20, 0x1e2b2: 0x6c933620, 0x1e2b3: 0x6c8fd020,
-	0x1e2b4: 0x6c27a820, 0x1e2b5: 0x6c60f420, 0x1e2b6: 0x6cacec20, 0x1e2b7: 0x6d0ff420,
-	0x1e2b8: 0x6c03d620, 0x1e2b9: 0x6cafa420, 0x1e2ba: 0x6cef7020, 0x1e2bb: 0x6c3c8420,
-	0x1e2bc: 0x6cf93420, 0x1e2bd: 0x6c62e420, 0x1e2be: 0x6c970e20, 0x1e2bf: 0x6c9bac20,
-	// Block 0x78b, offset 0x1e2c0
-	0x1e2c0: 0x6c9bae20, 0x1e2c1: 0x6c829a20, 0x1e2c2: 0x6c87ae20, 0x1e2c3: 0x6c5e5820,
-	0x1e2c4: 0x6c008220, 0x1e2c5: 0x6c3b0220, 0x1e2c6: 0x6c27ae20, 0x1e2c7: 0x6c901220,
-	0x1e2c8: 0x6c8db620, 0x1e2c9: 0x6c010e20, 0x1e2ca: 0x6c3c8e20, 0x1e2cb: 0x6c87c820,
-	0x1e2cc: 0x6c062620, 0x1e2cd: 0x6c521820, 0x1e2ce: 0x6c521020, 0x1e2cf: 0x6c521420,
-	0x1e2d0: 0x6c0e3e20, 0x1e2d1: 0x6cbe3020, 0x1e2d2: 0x6cbe3220, 0x1e2d3: 0x6c6e8a20,
-	0x1e2d4: 0x6ce46c20, 0x1e2d5: 0x6d317820, 0x1e2d6: 0x6c6e9220, 0x1e2d7: 0x6c198420,
-	0x1e2d8: 0x6cbed420, 0x1e2d9: 0x6c6e9c20, 0x1e2da: 0x6c6ea620, 0x1e2db: 0x6c2d8620,
-	0x1e2dc: 0x6c6eb020, 0x1e2dd: 0x6ce47a20, 0x1e2de: 0x6c39f220, 0x1e2df: 0x6c3a0a20,
-	0x1e2e0: 0x6c77c820, 0x1e2e1: 0x6c9c9220, 0x1e2e2: 0x6c9e5620, 0x1e2e3: 0x6c9e5020,
-	0x1e2e4: 0x6c065a20, 0x1e2e5: 0x6d133420, 0x1e2e6: 0x6ce52020, 0x1e2e7: 0x6c5c9820,
-	0x1e2e8: 0x6d139c20, 0x1e2e9: 0x6c43d020, 0x1e2ea: 0x6c2f5e20, 0x1e2eb: 0x6c13ea20,
-	0x1e2ec: 0x6cb9a020, 0x1e2ed: 0x6cc5f820, 0x1e2ee: 0x6c2b7020, 0x1e2ef: 0x6c326020,
-	0x1e2f0: 0x6cf4f420, 0x1e2f1: 0x6cc5fa20, 0x1e2f2: 0x6cbd8820, 0x1e2f3: 0x6c6d2020,
-	0x1e2f4: 0x6d08e420, 0x1e2f5: 0x6ca99e20, 0x1e2f6: 0x6c03a220, 0x1e2f7: 0x6d1af020,
-	0x1e2f8: 0x6cc95020, 0x1e2f9: 0x6ca35e20, 0x1e2fa: 0x6ca14420, 0x1e2fb: 0x6d412220,
-	0x1e2fc: 0x6c26b620, 0x1e2fd: 0x6c050020, 0x1e2fe: 0x6d183e20, 0x1e2ff: 0x6d121a20,
-	// Block 0x78c, offset 0x1e300
-	0x1e300: 0x6ce23420, 0x1e301: 0x6c074c20, 0x1e302: 0x6c63d820, 0x1e303: 0x6c537a20,
-	0x1e304: 0x6cad6220, 0x1e305: 0x6d0f6420, 0x1e306: 0x6c0e4220, 0x1e307: 0x6d1a0020,
-	0x1e308: 0x6c442c20, 0x1e309: 0x6ce23c20, 0x1e30a: 0x6c6b2e20, 0x1e30b: 0x6d00e420,
-	0x1e30c: 0x6c014820, 0x1e30d: 0x6c014a20, 0x1e30e: 0x6c523620, 0x1e30f: 0x6c45fc20,
-	0x1e310: 0x6cb88a20, 0x1e311: 0x6c26c220, 0x1e312: 0x6cbbf420, 0x1e313: 0x6ce64a20,
-	0x1e314: 0x6c978620, 0x1e315: 0x6d1d4e20, 0x1e316: 0x6cdbde20, 0x1e317: 0x6ce5a020,
-	0x1e318: 0x6cbc6220, 0x1e319: 0x6d08b820, 0x1e31a: 0x6c79ac20, 0x1e31b: 0x6c083420,
-	0x1e31c: 0x6cdeb420, 0x1e31d: 0x6cce5820, 0x1e31e: 0x6c0dfa20, 0x1e31f: 0x6c7e2220,
-	0x1e320: 0x6c70d420, 0x1e321: 0x6c7eda20, 0x1e322: 0x6d024a20, 0x1e323: 0x6cc76820,
-	0x1e324: 0x6c054420, 0x1e325: 0x6c372c20, 0x1e326: 0x6cbfd620, 0x1e327: 0x6cbfd820,
-	0x1e328: 0x6c518c20, 0x1e329: 0x6d001620, 0x1e32a: 0x6ca2ba20, 0x1e32b: 0x6c70da20,
-	0x1e32c: 0x6c650a20, 0x1e32d: 0x6c0b1620, 0x1e32e: 0x6c2b4c20, 0x1e32f: 0x6c651c20,
-	0x1e330: 0x6cf16e20, 0x1e331: 0x6ce1fa20, 0x1e332: 0x6c466620, 0x1e333: 0x6cdec620,
-	0x1e334: 0x6c076c20, 0x1e335: 0x6d011c20, 0x1e336: 0x6cac8820, 0x1e337: 0x6c445420,
-	0x1e338: 0x6c0ab020, 0x1e339: 0x6c7e2e20, 0x1e33a: 0x6ce0e020, 0x1e33b: 0x6c90d420,
-	0x1e33c: 0x6c4ba420, 0x1e33d: 0x6cbc1220, 0x1e33e: 0x6d08ee20, 0x1e33f: 0x6c5f9820,
-	// Block 0x78d, offset 0x1e340
-	0x1e340: 0x6c654820, 0x1e341: 0x6c679820, 0x1e342: 0x6c164c20, 0x1e343: 0x6c26d820,
-	0x1e344: 0x6c56e820, 0x1e345: 0x6cfc6420, 0x1e346: 0x6cb96020, 0x1e347: 0x6c320420,
-	0x1e348: 0x6cec4420, 0x1e349: 0x6c655a20, 0x1e34a: 0x6c801e20, 0x1e34b: 0x6ceeee20,
-	0x1e34c: 0x6cc5fc20, 0x1e34d: 0x6c3ecc20, 0x1e34e: 0x6c9aa220, 0x1e34f: 0x6cc37820,
-	0x1e350: 0x6c442e20, 0x1e351: 0x6cf01020, 0x1e352: 0x6cbc6420, 0x1e353: 0x6c4e3e20,
-	0x1e354: 0x6c172820, 0x1e355: 0x6c7e3420, 0x1e356: 0x6cc77c20, 0x1e357: 0x6d286620,
-	0x1e358: 0x6ccf8020, 0x1e359: 0x6cf04620, 0x1e35a: 0x6c444e20, 0x1e35b: 0x6c046220,
-	0x1e35c: 0x6ce1fc20, 0x1e35d: 0x6c466820, 0x1e35e: 0x6d286c20, 0x1e35f: 0x6c435e20,
-	0x1e360: 0x6c0ab220, 0x1e361: 0x6cf05220, 0x1e362: 0x6cdcc220, 0x1e363: 0x6c31fa20,
-	0x1e364: 0x6cec4620, 0x1e365: 0x6c320620, 0x1e366: 0x6ceed820, 0x1e367: 0x6cc5cc20,
-	0x1e368: 0x6c3e2820, 0x1e369: 0x6c4e1a20, 0x1e36a: 0x6cefea20, 0x1e36b: 0x6d283e20,
-	0x1e36c: 0x6ce1e020, 0x1e36d: 0x6c6fb420, 0x1e36e: 0x6c6fc420, 0x1e36f: 0x6cfad220,
-	0x1e370: 0x6d022820, 0x1e371: 0x6cfae220, 0x1e372: 0x6c5f8820, 0x1e373: 0x6d19ba20,
-	0x1e374: 0x6d28c220, 0x1e375: 0x6d284020, 0x1e376: 0x6ccea820, 0x1e377: 0x6c822420,
-	0x1e378: 0x6caecc20, 0x1e379: 0x6c5a2020, 0x1e37a: 0x6d1c0420, 0x1e37b: 0x6d287220,
-	0x1e37c: 0x6caef020, 0x1e37d: 0x6c016020, 0x1e37e: 0x6d1a1820, 0x1e37f: 0x6cfe0a20,
-	// Block 0x78e, offset 0x1e380
-	0x1e380: 0x6c56ea20, 0x1e381: 0x6d12dc20, 0x1e382: 0x6c2f6e20, 0x1e383: 0x6cbea820,
-	0x1e384: 0x6c7c7020, 0x1e385: 0x6cfe3a20, 0x1e386: 0x6cd75420, 0x1e387: 0x6c4daa20,
-	0x1e388: 0x6d05ae20, 0x1e389: 0x6d152a20, 0x1e38a: 0x6d05b620, 0x1e38b: 0x6c35b420,
-	0x1e38c: 0x6cd99020, 0x1e38d: 0x6c7cd820, 0x1e38e: 0x6cb60c20, 0x1e38f: 0x6c4f8220,
-	0x1e390: 0x6d238620, 0x1e391: 0x6cece020, 0x1e392: 0x6c048c20, 0x1e393: 0x6c33fe20,
-	0x1e394: 0x6c2b8620, 0x1e395: 0x6c27f220, 0x1e396: 0x6cacbe20, 0x1e397: 0x6cb31820,
-	0x1e398: 0x6c8e1220, 0x1e399: 0x6c182e20, 0x1e39a: 0x6c6e2620, 0x1e39b: 0x6c834020,
-	0x1e39c: 0x6c516a20, 0x1e39d: 0x6cbb9e20, 0x1e39e: 0x6c36a020, 0x1e39f: 0x6c357c20,
-	0x1e3a0: 0x6cf01220, 0x1e3a1: 0x6d00e620, 0x1e3a2: 0x6c7e1020, 0x1e3a3: 0x6cd07020,
-	0x1e3a4: 0x6d156620, 0x1e3a5: 0x6cd07a20, 0x1e3a6: 0x6c4d2420, 0x1e3a7: 0x6c332820,
-	0x1e3a8: 0x6d228420, 0x1e3a9: 0x6cb26620, 0x1e3aa: 0x6c834220, 0x1e3ab: 0x6c3f8420,
-	0x1e3ac: 0x6c63e020, 0x1e3ad: 0x6ce7f820, 0x1e3ae: 0x6c5c4a20, 0x1e3af: 0x6c7ca020,
-	0x1e3b0: 0x6c63ec20, 0x1e3b1: 0x6c953220, 0x1e3b2: 0x6ce6e220, 0x1e3b3: 0x6c199820,
-	0x1e3b4: 0x6d1d1020, 0x1e3b5: 0x6d276a20, 0x1e3b6: 0x6c55c620, 0x1e3b7: 0x6c4f1020,
-	0x1e3b8: 0x6c6e3620, 0x1e3b9: 0x6ce9be20, 0x1e3ba: 0x6ce9c020, 0x1e3bb: 0x6cb21420,
-	0x1e3bc: 0x6c7f5a20, 0x1e3bd: 0x6ce9c220, 0x1e3be: 0x6d3eb420, 0x1e3bf: 0x6d3eb220,
-	// Block 0x78f, offset 0x1e3c0
-	0x1e3c0: 0x6c20e620, 0x1e3c1: 0x6c2fc020, 0x1e3c2: 0x6c7f5c20, 0x1e3c3: 0x6ce02020,
-	0x1e3c4: 0x6c4f2220, 0x1e3c5: 0x6cb93220, 0x1e3c6: 0x6c783820, 0x1e3c7: 0x6c257220,
-	0x1e3c8: 0x6d085e20, 0x1e3c9: 0x6cbd4420, 0x1e3ca: 0x6d157820, 0x1e3cb: 0x6cc9d420,
-	0x1e3cc: 0x6ce39e20, 0x1e3cd: 0x6c358a20, 0x1e3ce: 0x6c36ca20, 0x1e3cf: 0x6d0ce220,
-	0x1e3d0: 0x6cf21420, 0x1e3d1: 0x6c76f820, 0x1e3d2: 0x6d1e0220, 0x1e3d3: 0x6d3b9820,
-	0x1e3d4: 0x6d0ce420, 0x1e3d5: 0x6cfc3c20, 0x1e3d6: 0x6d035220, 0x1e3d7: 0x6d162620,
-	0x1e3d8: 0x6d263820, 0x1e3d9: 0x6cca9620, 0x1e3da: 0x6c2ce620, 0x1e3db: 0x6c2ce820,
-	0x1e3dc: 0x6c67ca20, 0x1e3dd: 0x6c7c4a20, 0x1e3de: 0x6c835420, 0x1e3df: 0x6c819220,
-	0x1e3e0: 0x6cb1a820, 0x1e3e1: 0x6cec7820, 0x1e3e2: 0x6c979a20, 0x1e3e3: 0x6c247c20,
-	0x1e3e4: 0x6d117820, 0x1e3e5: 0x6c507e20, 0x1e3e6: 0x6cbc1420, 0x1e3e7: 0x6c482e20,
-	0x1e3e8: 0x6d0ab620, 0x1e3e9: 0x6d0e1a20, 0x1e3ea: 0x6c5c9e20, 0x1e3eb: 0x6c164e20,
-	0x1e3ec: 0x6cc7ee20, 0x1e3ed: 0x6c9bb620, 0x1e3ee: 0x6c0d7420, 0x1e3ef: 0x6cfc6620,
-	0x1e3f0: 0x6cb23220, 0x1e3f1: 0x6c91a620, 0x1e3f2: 0x6c806620, 0x1e3f3: 0x6ca8d620,
-	0x1e3f4: 0x6cc34620, 0x1e3f5: 0x6d12be20, 0x1e3f6: 0x6c2f6a20, 0x1e3f7: 0x6cbe9e20,
-	0x1e3f8: 0x6c4d9620, 0x1e3f9: 0x6cfe2420, 0x1e3fa: 0x6cd74a20, 0x1e3fb: 0x6d057e20,
-	0x1e3fc: 0x6d058820, 0x1e3fd: 0x6cecd220, 0x1e3fe: 0x6c480620, 0x1e3ff: 0x6c33ec20,
-	// Block 0x790, offset 0x1e400
-	0x1e400: 0x6cb5b420, 0x1e401: 0x6c047c20, 0x1e402: 0x6cd98820, 0x1e403: 0x6c4f7220,
-	0x1e404: 0x6d22fc20, 0x1e405: 0x6c915420, 0x1e406: 0x6c8e1020, 0x1e407: 0x6cb30c20,
-	0x1e408: 0x6c6e1e20, 0x1e409: 0x6c6ada20, 0x1e40a: 0x6c63c820, 0x1e40b: 0x6ce6d420,
-	0x1e40c: 0x6c513220, 0x1e40d: 0x6d1cf420, 0x1e40e: 0x6c6f1420, 0x1e40f: 0x6c780220,
-	0x1e410: 0x6d152c20, 0x1e411: 0x6cb21220, 0x1e412: 0x6c5bee20, 0x1e413: 0x6ce9a820,
-	0x1e414: 0x6c4ed620, 0x1e415: 0x6d1cf820, 0x1e416: 0x6d1cfa20, 0x1e417: 0x6c781e20,
-	0x1e418: 0x6ce37420, 0x1e419: 0x6d1dfe20, 0x1e41a: 0x6c36a220, 0x1e41b: 0x6d3b9020,
-	0x1e41c: 0x6d0ccc20, 0x1e41d: 0x6c357e20, 0x1e41e: 0x6ca87820, 0x1e41f: 0x6c975a20,
-	0x1e420: 0x6c2cdc20, 0x1e421: 0x6cca8c20, 0x1e422: 0x6c507820, 0x1e423: 0x6c835020,
-	0x1e424: 0x6c163c20, 0x1e425: 0x6cc7e620, 0x1e426: 0x6cb22620, 0x1e427: 0x6cc33e20,
-	0x1e428: 0x6c3c2c20, 0x1e429: 0x6c0c0020, 0x1e42a: 0x6c48be20, 0x1e42b: 0x6c3eb820,
-	0x1e42c: 0x6cf96e20, 0x1e42d: 0x6d2e0c20, 0x1e42e: 0x6c0c1020, 0x1e42f: 0x6cc98020,
-	0x1e430: 0x6c038820, 0x1e431: 0x6cdf3420, 0x1e432: 0x6c8b2a20, 0x1e433: 0x6c487420,
-	0x1e434: 0x6d08ba20, 0x1e435: 0x6cce8820, 0x1e436: 0x6c72a820, 0x1e437: 0x6c0c3420,
-	0x1e438: 0x6cd84020, 0x1e439: 0x6cf04820, 0x1e43a: 0x6d0fec20, 0x1e43b: 0x6d116a20,
-	0x1e43c: 0x6cd9f820, 0x1e43d: 0x6c767820, 0x1e43e: 0x6cd9fa20, 0x1e43f: 0x6c386c20,
-	// Block 0x791, offset 0x1e440
-	0x1e440: 0x6c8ed220, 0x1e441: 0x6cf7bc20, 0x1e442: 0x6c8f5620, 0x1e443: 0x6cb17020,
-	0x1e444: 0x6cb17220, 0x1e445: 0x6c8ede20, 0x1e446: 0x6c0c5620, 0x1e447: 0x6c0c5820,
-	0x1e448: 0x6c0c5a20, 0x1e449: 0x6c8a5620, 0x1e44a: 0x6c0c9e20, 0x1e44b: 0x6ccb9c20,
-	0x1e44c: 0x6c3c9020, 0x1e44d: 0x6d051820, 0x1e44e: 0x6c3c0e20, 0x1e44f: 0x6d0f8220,
-	0x1e450: 0x6d2dde20, 0x1e451: 0x6c0bee20, 0x1e452: 0x6cc97020, 0x1e453: 0x6c725420,
-	0x1e454: 0x6cd7fc20, 0x1e455: 0x6cd9c620, 0x1e456: 0x6d112e20, 0x1e457: 0x6c8e7e20,
-	0x1e458: 0x6cb16020, 0x1e459: 0x6c0c2620, 0x1e45a: 0x6c0c2820, 0x1e45b: 0x6c39f420,
-	0x1e45c: 0x6c387420, 0x1e45d: 0x6c3a2e20, 0x1e45e: 0x6c39ee20, 0x1e45f: 0x6cd25820,
-	0x1e460: 0x6cd24c20, 0x1e461: 0x6c116220, 0x1e462: 0x6c5eb020, 0x1e463: 0x6c2f9e20,
-	0x1e464: 0x6cd8ae20, 0x1e465: 0x6ceac620, 0x1e466: 0x6d2d7220, 0x1e467: 0x6cdcd220,
-	0x1e468: 0x6cfde820, 0x1e469: 0x6cea5a20, 0x1e46a: 0x6cc5fe20, 0x1e46b: 0x6d235e20,
-	0x1e46c: 0x6c737e20, 0x1e46d: 0x6c1c2a20, 0x1e46e: 0x6d1af220, 0x1e46f: 0x6c395c20,
-	0x1e470: 0x6c395e20, 0x1e471: 0x6cdcda20, 0x1e472: 0x6d1ae820, 0x1e473: 0x6ce81620,
-	0x1e474: 0x6d152e20, 0x1e475: 0x6d42a620, 0x1e476: 0x6c09ec20, 0x1e477: 0x6c6b9c20,
-	0x1e478: 0x6ce1e220, 0x1e479: 0x6c8f0e20, 0x1e47a: 0x6c226220, 0x1e47b: 0x6ce61420,
-	0x1e47c: 0x6cd8d420, 0x1e47d: 0x6c060420, 0x1e47e: 0x6cd3b020, 0x1e47f: 0x6c350620,
-	// Block 0x792, offset 0x1e480
-	0x1e480: 0x6c4d7220, 0x1e481: 0x6cc60420, 0x1e482: 0x6ce51020, 0x1e483: 0x6c691e20,
-	0x1e484: 0x6c63da20, 0x1e485: 0x6c0df020, 0x1e486: 0x6d113020, 0x1e487: 0x6ce77420,
-	0x1e488: 0x6c226420, 0x1e489: 0x6cfdf820, 0x1e48a: 0x6d102a20, 0x1e48b: 0x6c738a20,
-	0x1e48c: 0x6c37a220, 0x1e48d: 0x6d0eb220, 0x1e48e: 0x6c823a20, 0x1e48f: 0x6cf68c20,
-	0x1e490: 0x6c117220, 0x1e491: 0x6c0e8e20, 0x1e492: 0x6ca57220, 0x1e493: 0x6c36a420,
-	0x1e494: 0x6c10b620, 0x1e495: 0x6c75e620, 0x1e496: 0x6c313620, 0x1e497: 0x6cdb0e20,
-	0x1e498: 0x6d219820, 0x1e499: 0x6cd3d020, 0x1e49a: 0x6d114a20, 0x1e49b: 0x6c5d0020,
-	0x1e49c: 0x6c4cd220, 0x1e49d: 0x6cd3d220, 0x1e49e: 0x6c66dc20, 0x1e49f: 0x6d3cae20,
-	0x1e4a0: 0x6c0df420, 0x1e4a1: 0x6cfd1620, 0x1e4a2: 0x6c10c020, 0x1e4a3: 0x6d135020,
-	0x1e4a4: 0x6ce01620, 0x1e4a5: 0x6c3a1e20, 0x1e4a6: 0x6d2ede20, 0x1e4a7: 0x6cf0de20,
-	0x1e4a8: 0x6c496820, 0x1e4a9: 0x6c36b220, 0x1e4aa: 0x6caa9a20, 0x1e4ab: 0x6d286020,
-	0x1e4ac: 0x6c55d620, 0x1e4ad: 0x6c5a1420, 0x1e4ae: 0x6ce61c20, 0x1e4af: 0x6c5c6220,
-	0x1e4b0: 0x6c650c20, 0x1e4b1: 0x6c543c20, 0x1e4b2: 0x6c00e820, 0x1e4b3: 0x6ce14c20,
-	0x1e4b4: 0x6c3b4820, 0x1e4b5: 0x6cf0ee20, 0x1e4b6: 0x6c47de20, 0x1e4b7: 0x6c13b820,
-	0x1e4b8: 0x6cd99e20, 0x1e4b9: 0x6ce15820, 0x1e4ba: 0x6c0f9820, 0x1e4bb: 0x6c42e820,
-	0x1e4bc: 0x6cf90c20, 0x1e4bd: 0x6c7d2620, 0x1e4be: 0x6c8f4e20, 0x1e4bf: 0x6cd9f220,
-	// Block 0x793, offset 0x1e4c0
-	0x1e4c0: 0x6ce24a20, 0x1e4c1: 0x6d137c20, 0x1e4c2: 0x6d27cc20, 0x1e4c3: 0x6ca08a20,
-	0x1e4c4: 0x6ce16020, 0x1e4c5: 0x6c979420, 0x1e4c6: 0x6c0aa020, 0x1e4c7: 0x6d245620,
-	0x1e4c8: 0x6d050a20, 0x1e4c9: 0x6c6cc820, 0x1e4ca: 0x6cca4420, 0x1e4cb: 0x6c7d3c20,
-	0x1e4cc: 0x6d3bfc20, 0x1e4cd: 0x6ccdde20, 0x1e4ce: 0x6c1c9020, 0x1e4cf: 0x6c28e620,
-	0x1e4d0: 0x6d193c20, 0x1e4d1: 0x6c5f9020, 0x1e4d2: 0x6cc53220, 0x1e4d3: 0x6c19ac20,
-	0x1e4d4: 0x6d1de420, 0x1e4d5: 0x6ce20220, 0x1e4d6: 0x6cf11c20, 0x1e4d7: 0x6cfe0e20,
-	0x1e4d8: 0x6d2dc620, 0x1e4d9: 0x6c3b4a20, 0x1e4da: 0x6c4d8a20, 0x1e4db: 0x6c9bb020,
-	0x1e4dc: 0x6d0f1420, 0x1e4dd: 0x6ca0a220, 0x1e4de: 0x6c158020, 0x1e4df: 0x6cfe1020,
-	0x1e4e0: 0x6c959820, 0x1e4e1: 0x6d29cc20, 0x1e4e2: 0x6ca46c20, 0x1e4e3: 0x6cd22620,
-	0x1e4e4: 0x6c2f9020, 0x1e4e5: 0x6c5e6e20, 0x1e4e6: 0x6cea9e20, 0x1e4e7: 0x6ce0e420,
-	0x1e4e8: 0x6cea4420, 0x1e4e9: 0x6cf84020, 0x1e4ea: 0x6cc5ce20, 0x1e4eb: 0x6d22d220,
-	0x1e4ec: 0x6c1bea20, 0x1e4ed: 0x6c392420, 0x1e4ee: 0x6d1acc20, 0x1e4ef: 0x6c665620,
-	0x1e4f0: 0x6cd32620, 0x1e4f1: 0x6c05e820, 0x1e4f2: 0x6cd89420, 0x1e4f3: 0x6c34d220,
-	0x1e4f4: 0x6d147e20, 0x1e4f5: 0x6c378c20, 0x1e4f6: 0x6cc52420, 0x1e4f7: 0x6cfdde20,
-	0x1e4f8: 0x6c50e820, 0x1e4f9: 0x6c823820, 0x1e4fa: 0x6c68d820, 0x1e4fb: 0x6cf5b020,
-	0x1e4fc: 0x6c0dd420, 0x1e4fd: 0x6c0e6a20, 0x1e4fe: 0x6c310c20, 0x1e4ff: 0x6c360420,
-	// Block 0x794, offset 0x1e500
-	0x1e500: 0x6d210020, 0x1e501: 0x6ca56a20, 0x1e502: 0x6c75a820, 0x1e503: 0x6c4cbe20,
-	0x1e504: 0x6c5ce820, 0x1e505: 0x6cfcbe20, 0x1e506: 0x6c495020, 0x1e507: 0x6c13a020,
-	0x1e508: 0x6c7d0220, 0x1e509: 0x6c479820, 0x1e50a: 0x6cd9ba20, 0x1e50b: 0x6c14fc20,
-	0x1e50c: 0x6d130a20, 0x1e50d: 0x6ca06020, 0x1e50e: 0x6c0f2220, 0x1e50f: 0x6c8e7620,
-	0x1e510: 0x6d04de20, 0x1e511: 0x6c6ca820, 0x1e512: 0x6c976e20, 0x1e513: 0x6cca2820,
-	0x1e514: 0x6d3be020, 0x1e515: 0x6ca46420, 0x1e516: 0x6cd44220, 0x1e517: 0x6c7c7220,
-	0x1e518: 0x6c4c9020, 0x1e519: 0x6cfd6620, 0x1e51a: 0x6c3b8020, 0x1e51b: 0x6c0f3c20,
-	0x1e51c: 0x6ca64420, 0x1e51d: 0x6c0a1420, 0x1e51e: 0x6c0f6e20, 0x1e51f: 0x6ce8fa20,
-	0x1e520: 0x6c4dbc20, 0x1e521: 0x6c3a2020, 0x1e522: 0x6c650e20, 0x1e523: 0x6c015420,
-	0x1e524: 0x6c00fa20, 0x1e525: 0x6c408020, 0x1e526: 0x6cfaf620, 0x1e527: 0x6d276c20,
-	0x1e528: 0x6d02f420, 0x1e529: 0x6c3bb020, 0x1e52a: 0x6cb1fe20, 0x1e52b: 0x6d02fa20,
-	0x1e52c: 0x6c969820, 0x1e52d: 0x6d236020, 0x1e52e: 0x6c3caa20, 0x1e52f: 0x6c4ed820,
-	0x1e530: 0x6c2b7420, 0x1e531: 0x6ceb3220, 0x1e532: 0x6d306820, 0x1e533: 0x6c1b4220,
-	0x1e534: 0x6d0a2420, 0x1e535: 0x6d3b1020, 0x1e536: 0x6d340c20, 0x1e537: 0x6cae2420,
-	0x1e538: 0x6d034620, 0x1e539: 0x6cc64a20, 0x1e53a: 0x6cc97a20, 0x1e53b: 0x6d27f820,
-	0x1e53c: 0x6cf1a420, 0x1e53d: 0x6d348a20, 0x1e53e: 0x6c28a020, 0x1e53f: 0x6c935c20,
-	// Block 0x795, offset 0x1e540
-	0x1e540: 0x6d1f5e20, 0x1e541: 0x6c0f3e20, 0x1e542: 0x6c060a20, 0x1e543: 0x6c748a20,
-	0x1e544: 0x6ceb4220, 0x1e545: 0x6d184020, 0x1e546: 0x6cc13020, 0x1e547: 0x6cb4c220,
-	0x1e548: 0x6cc13e20, 0x1e549: 0x6c6ee620, 0x1e54a: 0x6cb35c20, 0x1e54b: 0x6d2f7020,
-	0x1e54c: 0x6d251220, 0x1e54d: 0x6cadf020, 0x1e54e: 0x6d394c20, 0x1e54f: 0x6c727220,
-	0x1e550: 0x6d3b2620, 0x1e551: 0x6caa4420, 0x1e552: 0x6c70c820, 0x1e553: 0x6caf8820,
-	0x1e554: 0x6d29fa20, 0x1e555: 0x6c645020, 0x1e556: 0x6c8d4e20, 0x1e557: 0x6d31f620,
-	0x1e558: 0x6cdf3a20, 0x1e559: 0x6c404820, 0x1e55a: 0x6d103020, 0x1e55b: 0x6cd2d820,
-	0x1e55c: 0x6c0a4020, 0x1e55d: 0x6cebc220, 0x1e55e: 0x6ceb4620, 0x1e55f: 0x6cd8e420,
-	0x1e560: 0x6c8e9020, 0x1e561: 0x6c96de20, 0x1e562: 0x6cb13220, 0x1e563: 0x6ce24620,
-	0x1e564: 0x6d36f820, 0x1e565: 0x6cc6b820, 0x1e566: 0x6ce2b620, 0x1e567: 0x6c308a20,
-	0x1e568: 0x6d09ac20, 0x1e569: 0x6cc2a420, 0x1e56a: 0x6cd02220, 0x1e56b: 0x6c6ee820,
-	0x1e56c: 0x6c37a620, 0x1e56d: 0x6c4d7a20, 0x1e56e: 0x6c0f7020, 0x1e56f: 0x6d39ce20,
-	0x1e570: 0x6d1a0c20, 0x1e571: 0x6c962a20, 0x1e572: 0x6d397a20, 0x1e573: 0x6c28bc20,
-	0x1e574: 0x6d023820, 0x1e575: 0x6c8eb020, 0x1e576: 0x6c716a20, 0x1e577: 0x6cd97020,
-	0x1e578: 0x6cbd4620, 0x1e579: 0x6c987a20, 0x1e57a: 0x6c80ec20, 0x1e57b: 0x6c4f2420,
-	0x1e57c: 0x6ce90020, 0x1e57d: 0x6d07da20, 0x1e57e: 0x6cea1420, 0x1e57f: 0x6c75f220,
-	// Block 0x796, offset 0x1e580
-	0x1e580: 0x6c35be20, 0x1e581: 0x6c1a7a20, 0x1e582: 0x6d03ac20, 0x1e583: 0x6c005820,
-	0x1e584: 0x6c931420, 0x1e585: 0x6d3c6c20, 0x1e586: 0x6d38be20, 0x1e587: 0x6ccf8220,
-	0x1e588: 0x6cb13620, 0x1e589: 0x6c7d8c20, 0x1e58a: 0x6ce24c20, 0x1e58b: 0x6c7f2e20,
-	0x1e58c: 0x6d3fd220, 0x1e58d: 0x6c78e220, 0x1e58e: 0x6cb67c20, 0x1e58f: 0x6cb67e20,
-	0x1e590: 0x6d0ede20, 0x1e591: 0x6c3a2220, 0x1e592: 0x6ccacc20, 0x1e593: 0x6d0df020,
-	0x1e594: 0x6c445820, 0x1e595: 0x6d11e220, 0x1e596: 0x6cf54820, 0x1e597: 0x6cb14e20,
-	0x1e598: 0x6c237620, 0x1e599: 0x6cb15020, 0x1e59a: 0x6cb9da20, 0x1e59b: 0x6c3a2420,
-	0x1e59c: 0x6c5a2420, 0x1e59d: 0x6cb9d420, 0x1e59e: 0x6c5d6820, 0x1e59f: 0x6d21de20,
-	0x1e5a0: 0x6ce3a820, 0x1e5a1: 0x6cc32420, 0x1e5a2: 0x6cfa1620, 0x1e5a3: 0x6d3fd620,
-	0x1e5a4: 0x6c7cae20, 0x1e5a5: 0x6cc76c20, 0x1e5a6: 0x6cd84620, 0x1e5a7: 0x6c488020,
-	0x1e5a8: 0x6ceb5c20, 0x1e5a9: 0x6c4aa220, 0x1e5aa: 0x6cda0020, 0x1e5ab: 0x6cb94a20,
-	0x1e5ac: 0x6c1a5a20, 0x1e5ad: 0x6d374e20, 0x1e5ae: 0x6c8ed620, 0x1e5af: 0x6caef820,
-	0x1e5b0: 0x6ce2c820, 0x1e5b1: 0x6cf7be20, 0x1e5b2: 0x6c12b420, 0x1e5b3: 0x6c31ea20,
-	0x1e5b4: 0x6d0efe20, 0x1e5b5: 0x6d25cc20, 0x1e5b6: 0x6d407220, 0x1e5b7: 0x6ccad020,
-	0x1e5b8: 0x6ccde020, 0x1e5b9: 0x6c84b020, 0x1e5ba: 0x6d376220, 0x1e5bb: 0x6cd6b020,
-	0x1e5bc: 0x6c933820, 0x1e5bd: 0x6cf7c020, 0x1e5be: 0x6c956c20, 0x1e5bf: 0x6d2eec20,
-	// Block 0x797, offset 0x1e5c0
-	0x1e5c0: 0x6ca19020, 0x1e5c1: 0x6c030020, 0x1e5c2: 0x6c118420, 0x1e5c3: 0x6c0c5c20,
-	0x1e5c4: 0x6c237a20, 0x1e5c5: 0x6cc16220, 0x1e5c6: 0x6c0ac220, 0x1e5c7: 0x6d376420,
-	0x1e5c8: 0x6d248020, 0x1e5c9: 0x6d060c20, 0x1e5ca: 0x6c576c20, 0x1e5cb: 0x6c0e9e20,
-	0x1e5cc: 0x6cdb7020, 0x1e5cd: 0x6cff5820, 0x1e5ce: 0x6c8c0a20, 0x1e5cf: 0x6d2ea420,
-	0x1e5d0: 0x6c33c620, 0x1e5d1: 0x6c8eea20, 0x1e5d2: 0x6ceb6220, 0x1e5d3: 0x6c136a20,
-	0x1e5d4: 0x6c2d9e20, 0x1e5d5: 0x6c68b220, 0x1e5d6: 0x6ce60c20, 0x1e5d7: 0x6d0f1620,
-	0x1e5d8: 0x6c958620, 0x1e5d9: 0x6d2dca20, 0x1e5da: 0x6c6df820, 0x1e5db: 0x6d196a20,
-	0x1e5dc: 0x6d139e20, 0x1e5dd: 0x6ceadc20, 0x1e5de: 0x6cb20020, 0x1e5df: 0x6d397220,
-	0x1e5e0: 0x6d0f2620, 0x1e5e1: 0x6c902020, 0x1e5e2: 0x6c937220, 0x1e5e3: 0x6ce2e020,
-	0x1e5e4: 0x6cfda820, 0x1e5e5: 0x6c630220, 0x1e5e6: 0x6cd6ca20, 0x1e5e7: 0x6c719c20,
-	0x1e5e8: 0x6cf7d020, 0x1e5e9: 0x6c585020, 0x1e5ea: 0x6c84ee20, 0x1e5eb: 0x6c0c6820,
-	0x1e5ec: 0x6c968c20, 0x1e5ed: 0x6d22ba20, 0x1e5ee: 0x6ceae220, 0x1e5ef: 0x6d09da20,
-	0x1e5f0: 0x6c1afa20, 0x1e5f1: 0x6cc0d820, 0x1e5f2: 0x6cc63e20, 0x1e5f3: 0x6c0eb220,
-	0x1e5f4: 0x6c935020, 0x1e5f5: 0x6d29f820, 0x1e5f6: 0x6cd2ba20, 0x1e5f7: 0x6cd89620,
-	0x1e5f8: 0x6c3fbc20, 0x1e5f9: 0x6c706420, 0x1e5fa: 0x6d404820, 0x1e5fb: 0x6d3ab820,
-	0x1e5fc: 0x6cebc020, 0x1e5fd: 0x6caa4020, 0x1e5fe: 0x6c643820, 0x1e5ff: 0x6d16d420,
-	// Block 0x798, offset 0x1e600
-	0x1e600: 0x6c273c20, 0x1e601: 0x6cfe9020, 0x1e602: 0x6c96b820, 0x1e603: 0x6d19bc20,
-	0x1e604: 0x6c683a20, 0x1e605: 0x6c572e20, 0x1e606: 0x6c95ee20, 0x1e607: 0x6c4d5c20,
-	0x1e608: 0x6cb10820, 0x1e609: 0x6c0bf020, 0x1e60a: 0x6c83b420, 0x1e60b: 0x6c1a6c20,
-	0x1e60c: 0x6d0e5820, 0x1e60d: 0x6d036e20, 0x1e60e: 0x6cbd2820, 0x1e60f: 0x6c75aa20,
-	0x1e610: 0x6cb5e220, 0x1e611: 0x6cb5e420, 0x1e612: 0x6c78aa20, 0x1e613: 0x6d3c5c20,
-	0x1e614: 0x6d3f7e20, 0x1e615: 0x6cdaae20, 0x1e616: 0x6c116420, 0x1e617: 0x6cb14a20,
-	0x1e618: 0x6d364820, 0x1e619: 0x6c7c8220, 0x1e61a: 0x6ccab020, 0x1e61b: 0x6cf4f620,
-	0x1e61c: 0x6c02da20, 0x1e61d: 0x6c8e7820, 0x1e61e: 0x6cb8fa20, 0x1e61f: 0x6ccd9020,
-	0x1e620: 0x6c0c1220, 0x1e621: 0x6c955020, 0x1e622: 0x6c233620, 0x1e623: 0x6c15e220,
-	0x1e624: 0x6d395c20, 0x1e625: 0x6c62c420, 0x1e626: 0x6cd6ac20, 0x1e627: 0x6cfd9420,
-	0x1e628: 0x6c476e20, 0x1e629: 0x6cefb420, 0x1e62a: 0x6cefd220, 0x1e62b: 0x6cefd420,
-	0x1e62c: 0x6d214020, 0x1e62d: 0x6c422420, 0x1e62e: 0x6d17d620, 0x1e62f: 0x6c01ec20,
-	0x1e630: 0x6ce7f220, 0x1e631: 0x6c6bf020, 0x1e632: 0x6c065e20, 0x1e633: 0x6c074e20,
-	0x1e634: 0x6c220c20, 0x1e635: 0x6ce3c620, 0x1e636: 0x6c2c0020, 0x1e637: 0x6c7a5620,
-	0x1e638: 0x6c4d2820, 0x1e639: 0x6cbba020, 0x1e63a: 0x6c543020, 0x1e63b: 0x6c7af020,
-	0x1e63c: 0x6c443220, 0x1e63d: 0x6ce9ee20, 0x1e63e: 0x6c452020, 0x1e63f: 0x6cb12a20,
-	// Block 0x799, offset 0x1e640
-	0x1e640: 0x6c0a8220, 0x1e641: 0x6c783c20, 0x1e642: 0x6cb87a20, 0x1e643: 0x6d21ce20,
-	0x1e644: 0x6cdc1420, 0x1e645: 0x6c90d020, 0x1e646: 0x6c0fb220, 0x1e647: 0x6cff4620,
-	0x1e648: 0x6c055a20, 0x1e649: 0x6c0fb420, 0x1e64a: 0x6c221420, 0x1e64b: 0x6c7b5e20,
-	0x1e64c: 0x6c0d9220, 0x1e64d: 0x6ca09420, 0x1e64e: 0x6c8a5220, 0x1e64f: 0x6c90da20,
-	0x1e650: 0x6cff5220, 0x1e651: 0x6c31fe20, 0x1e652: 0x6d29f220, 0x1e653: 0x6cdc1a20,
-	0x1e654: 0x6ce3d020, 0x1e655: 0x6c0d9620, 0x1e656: 0x6c7b6020, 0x1e657: 0x6c91a820,
-	0x1e658: 0x6c42bc20, 0x1e659: 0x6c42c420, 0x1e65a: 0x6cbc5020, 0x1e65b: 0x6c779420,
-	0x1e65c: 0x6cbc2c20, 0x1e65d: 0x6c819420, 0x1e65e: 0x6ccb0c20, 0x1e65f: 0x6c0bf420,
-	0x1e660: 0x6c7d6e20, 0x1e661: 0x6c7d7620, 0x1e662: 0x6c2b7620, 0x1e663: 0x6c39da20,
-	0x1e664: 0x6d04ec20, 0x1e665: 0x6cc47e20, 0x1e666: 0x6c98f820, 0x1e667: 0x6c28a220,
-	0x1e668: 0x6c7d7e20, 0x1e669: 0x6c0d8620, 0x1e66a: 0x6c383e20, 0x1e66b: 0x6ce5a220,
-	0x1e66c: 0x6caf8a20, 0x1e66d: 0x6d3e9c20, 0x1e66e: 0x6c384220, 0x1e66f: 0x6cc48620,
-	0x1e670: 0x6ce41a20, 0x1e671: 0x6c066420, 0x1e672: 0x6c0a4220, 0x1e673: 0x6c990420,
-	0x1e674: 0x6c3eea20, 0x1e675: 0x6c376a20, 0x1e676: 0x6cc6ba20, 0x1e677: 0x6cc14420,
-	0x1e678: 0x6c45b620, 0x1e679: 0x6d04f820, 0x1e67a: 0x6c7e1620, 0x1e67b: 0x6c628e20,
-	0x1e67c: 0x6caed220, 0x1e67d: 0x6d3b6020, 0x1e67e: 0x6cce8e20, 0x1e67f: 0x6cdd4420,
-	// Block 0x79a, offset 0x1e680
-	0x1e680: 0x6ce43620, 0x1e681: 0x6c86ba20, 0x1e682: 0x6c0d8a20, 0x1e683: 0x6d3fd420,
-	0x1e684: 0x6c2baa20, 0x1e685: 0x6caee420, 0x1e686: 0x6cd94820, 0x1e687: 0x6d32f820,
-	0x1e688: 0x6cc32220, 0x1e689: 0x6d3fd820, 0x1e68a: 0x6cd76220, 0x1e68b: 0x6c660e20,
-	0x1e68c: 0x6ceb9620, 0x1e68d: 0x6c55f420, 0x1e68e: 0x6c7eae20, 0x1e68f: 0x6c6f8e20,
-	0x1e690: 0x6cb6a020, 0x1e691: 0x6c889820, 0x1e692: 0x6d320420, 0x1e693: 0x6c0d9420,
-	0x1e694: 0x6caefa20, 0x1e695: 0x6c96e620, 0x1e696: 0x6cca0e20, 0x1e697: 0x6c979e20,
-	0x1e698: 0x6c97a020, 0x1e699: 0x6ccbbc20, 0x1e69a: 0x6d061020, 0x1e69b: 0x6c8b7a20,
-	0x1e69c: 0x6cb95420, 0x1e69d: 0x6cb95220, 0x1e69e: 0x6ca46220, 0x1e69f: 0x6c58cc20,
-	0x1e6a0: 0x6c7e3220, 0x1e6a1: 0x6ca94220, 0x1e6a2: 0x6c0d9820, 0x1e6a3: 0x6c8b8a20,
-	0x1e6a4: 0x6cc4fe20, 0x1e6a5: 0x6c310e20, 0x1e6a6: 0x6c313420, 0x1e6a7: 0x6ca53620,
-	0x1e6a8: 0x6c53dc20, 0x1e6a9: 0x6cf90e20, 0x1e6aa: 0x6c314e20, 0x1e6ab: 0x6c4e7220,
-	0x1e6ac: 0x6c315420, 0x1e6ad: 0x6c315220, 0x1e6ae: 0x6c6f9620, 0x1e6af: 0x6c170e20,
-	0x1e6b0: 0x6d249c20, 0x1e6b1: 0x6d24a420, 0x1e6b2: 0x6c43e020, 0x1e6b3: 0x6d0ecc20,
-	0x1e6b4: 0x6c3f8e20, 0x1e6b5: 0x6cbdb820, 0x1e6b6: 0x6c4a9e20, 0x1e6b7: 0x6d3fdc20,
-	0x1e6b8: 0x6c8f5820, 0x1e6b9: 0x6c4aa620, 0x1e6ba: 0x6cce2a20, 0x1e6bb: 0x6d248220,
-	0x1e6bc: 0x6c4ae220, 0x1e6bd: 0x6c9a9620, 0x1e6be: 0x6c623220, 0x1e6bf: 0x6cb61220,
-	// Block 0x79b, offset 0x1e6c0
-	0x1e6c0: 0x6c40da20, 0x1e6c1: 0x6c7c9020, 0x1e6c2: 0x6c5cf620, 0x1e6c3: 0x6c038c20,
-	0x1e6c4: 0x6cb39c20, 0x1e6c5: 0x6c9aa620, 0x1e6c6: 0x6d05c820, 0x1e6c7: 0x6d0dd220,
-	0x1e6c8: 0x6cff1a20, 0x1e6c9: 0x6c89a220, 0x1e6ca: 0x6d242620, 0x1e6cb: 0x6ce9ca20,
-	0x1e6cc: 0x6cb53e20, 0x1e6cd: 0x6cee3e20, 0x1e6ce: 0x6c89a820, 0x1e6cf: 0x6cf0f020,
-	0x1e6d0: 0x6c41bc20, 0x1e6d1: 0x6c1aea20, 0x1e6d2: 0x6cb17420, 0x1e6d3: 0x6c0ab620,
-	0x1e6d4: 0x6ca09620, 0x1e6d5: 0x6c616220, 0x1e6d6: 0x6d060820, 0x1e6d7: 0x6c1e3e20,
-	0x1e6d8: 0x6d0e2620, 0x1e6d9: 0x6d2dcc20, 0x1e6da: 0x6d211220, 0x1e6db: 0x6c29c420,
-	0x1e6dc: 0x6cc57620, 0x1e6dd: 0x6c6b0220, 0x1e6de: 0x6c03f620, 0x1e6df: 0x6c537c20,
-	0x1e6e0: 0x6ceacc20, 0x1e6e1: 0x6c2e3620, 0x1e6e2: 0x6c614e20, 0x1e6e3: 0x6d073620,
-	0x1e6e4: 0x6c358020, 0x1e6e5: 0x6c367c20, 0x1e6e6: 0x6ccc1220, 0x1e6e7: 0x6c4f8620,
-	0x1e6e8: 0x6cea6620, 0x1e6e9: 0x6ca15e20, 0x1e6ea: 0x6c6c0020, 0x1e6eb: 0x6cd07220,
-	0x1e6ec: 0x6c04d620, 0x1e6ed: 0x6d25a420, 0x1e6ee: 0x6cb01420, 0x1e6ef: 0x6c91d420,
-	0x1e6f0: 0x6cf1aa20, 0x1e6f1: 0x6c55a620, 0x1e6f2: 0x6c915a20, 0x1e6f3: 0x6d289a20,
-	0x1e6f4: 0x6c39ae20, 0x1e6f5: 0x6c3b9020, 0x1e6f6: 0x6ca36820, 0x1e6f7: 0x6d1f6c20,
-	0x1e6f8: 0x6cb15220, 0x1e6f9: 0x6ca1b620, 0x1e6fa: 0x6c517e20, 0x1e6fb: 0x6cf9fa20,
-	0x1e6fc: 0x6cc14620, 0x1e6fd: 0x6c4e3820, 0x1e6fe: 0x6caf9420, 0x1e6ff: 0x6c8d6220,
-	// Block 0x79c, offset 0x1e700
-	0x1e700: 0x6ceb5220, 0x1e701: 0x6c0e9820, 0x1e702: 0x6cc0a020, 0x1e703: 0x6cb2d220,
-	0x1e704: 0x6c3f0620, 0x1e705: 0x6c0a6420, 0x1e706: 0x6c22a420, 0x1e707: 0x6cf0e020,
-	0x1e708: 0x6c70ce20, 0x1e709: 0x6c2de220, 0x1e70a: 0x6c03c620, 0x1e70b: 0x6d1f7a20,
-	0x1e70c: 0x6c4bf020, 0x1e70d: 0x6caf9620, 0x1e70e: 0x6ca70620, 0x1e70f: 0x6d03a020,
-	0x1e710: 0x6cdf4020, 0x1e711: 0x6c066a20, 0x1e712: 0x6c406020, 0x1e713: 0x6d2c9820,
-	0x1e714: 0x6c728620, 0x1e715: 0x6c473620, 0x1e716: 0x6cd41e20, 0x1e717: 0x6c309a20,
-	0x1e718: 0x6c27b020, 0x1e719: 0x6cdeba20, 0x1e71a: 0x6c6b4c20, 0x1e71b: 0x6cd50e20,
-	0x1e71c: 0x6c548220, 0x1e71d: 0x6cfe0420, 0x1e71e: 0x6c376e20, 0x1e71f: 0x6c01d620,
-	0x1e720: 0x6cef4820, 0x1e721: 0x6d2fe620, 0x1e722: 0x6d39d020, 0x1e723: 0x6d1b8220,
-	0x1e724: 0x6c8b4020, 0x1e725: 0x6c962e20, 0x1e726: 0x6ce79420, 0x1e727: 0x6ce3c820,
-	0x1e728: 0x6d18e220, 0x1e729: 0x6c0e3020, 0x1e72a: 0x6cf03420, 0x1e72b: 0x6c688a20,
-	0x1e72c: 0x6c7a6820, 0x1e72d: 0x6c4a9220, 0x1e72e: 0x6cfae620, 0x1e72f: 0x6c444820,
-	0x1e730: 0x6c5b4420, 0x1e731: 0x6c81fc20, 0x1e732: 0x6c40b820, 0x1e733: 0x6c77ca20,
-	0x1e734: 0x6d055e20, 0x1e735: 0x6c346820, 0x1e736: 0x6c758820, 0x1e737: 0x6ce3a020,
-	0x1e738: 0x6c9e4620, 0x1e739: 0x6cce9220, 0x1e73a: 0x6d2c9a20, 0x1e73b: 0x6cdd4620,
-	0x1e73c: 0x6cbd4820, 0x1e73d: 0x6d21d020, 0x1e73e: 0x6ca57820, 0x1e73f: 0x6d30b420,
-	// Block 0x79d, offset 0x1e740
-	0x1e740: 0x6c4bf620, 0x1e741: 0x6c452420, 0x1e742: 0x6cdb7c20, 0x1e743: 0x6cf40220,
-	0x1e744: 0x6cc0a620, 0x1e745: 0x6ccd1820, 0x1e746: 0x6cb42020, 0x1e747: 0x6c596220,
-	0x1e748: 0x6ce5a820, 0x1e749: 0x6c854020, 0x1e74a: 0x6ccc2420, 0x1e74b: 0x6ccc2620,
-	0x1e74c: 0x6c77d020, 0x1e74d: 0x6c9b7e20, 0x1e74e: 0x6c1a8e20, 0x1e74f: 0x6c87e620,
-	0x1e750: 0x6d409820, 0x1e751: 0x6cf94c20, 0x1e752: 0x6d1e6420, 0x1e753: 0x6ca61020,
-	0x1e754: 0x6d3eba20, 0x1e755: 0x6cb68820, 0x1e756: 0x6d330c20, 0x1e757: 0x6cfe0620,
-	0x1e758: 0x6ca57a20, 0x1e759: 0x6c216e20, 0x1e75a: 0x6c62c620, 0x1e75b: 0x6c2dec20,
-	0x1e75c: 0x6cbd0020, 0x1e75d: 0x6c482c20, 0x1e75e: 0x6d38f220, 0x1e75f: 0x6c302420,
-	0x1e760: 0x6c7f3020, 0x1e761: 0x6c3aec20, 0x1e762: 0x6ca61420, 0x1e763: 0x6d192220,
-	0x1e764: 0x6c7d8e20, 0x1e765: 0x6c932620, 0x1e766: 0x6c703820, 0x1e767: 0x6c168620,
-	0x1e768: 0x6c6de620, 0x1e769: 0x6c951220, 0x1e76a: 0x6c8d8a20, 0x1e76b: 0x6d406e20,
-	0x1e76c: 0x6c849420, 0x1e76d: 0x6c9bf420, 0x1e76e: 0x6d3fde20, 0x1e76f: 0x6d375220,
-	0x1e770: 0x6ca70c20, 0x1e771: 0x6c570420, 0x1e772: 0x6d24c420, 0x1e773: 0x6c2cb620,
-	0x1e774: 0x6cd20c20, 0x1e775: 0x6cd02c20, 0x1e776: 0x6c5d1620, 0x1e777: 0x6ce3ac20,
-	0x1e778: 0x6c544020, 0x1e779: 0x6d03b220, 0x1e77a: 0x6d39e420, 0x1e77b: 0x6c7ebc20,
-	0x1e77c: 0x6d3fe020, 0x1e77d: 0x6d2b6820, 0x1e77e: 0x6c0b1820, 0x1e77f: 0x6c0b1a20,
-	// Block 0x79e, offset 0x1e780
-	0x1e780: 0x6c596420, 0x1e781: 0x6cc32a20, 0x1e782: 0x6d2b7020, 0x1e783: 0x6ceeca20,
-	0x1e784: 0x6ceecc20, 0x1e785: 0x6d21e620, 0x1e786: 0x6c212420, 0x1e787: 0x6cc77020,
-	0x1e788: 0x6c2f0a20, 0x1e789: 0x6c5a2e20, 0x1e78a: 0x6c893220, 0x1e78b: 0x6d0e0620,
-	0x1e78c: 0x6cbfda20, 0x1e78d: 0x6cbfdc20, 0x1e78e: 0x6c661020, 0x1e78f: 0x6c089c20,
-	0x1e790: 0x6c36dc20, 0x1e791: 0x6d0ff220, 0x1e792: 0x6c409020, 0x1e793: 0x6cc9d820,
-	0x1e794: 0x6c41fa20, 0x1e795: 0x6cf98220, 0x1e796: 0x6ceb9820, 0x1e797: 0x6c55fa20,
-	0x1e798: 0x6cd42420, 0x1e799: 0x6cc93420, 0x1e79a: 0x6d08d620, 0x1e79b: 0x6cf17220,
-	0x1e79c: 0x6cba8820, 0x1e79d: 0x6c508020, 0x1e79e: 0x6cf39020, 0x1e79f: 0x6c39b420,
-	0x1e7a0: 0x6ccad620, 0x1e7a1: 0x6c8ee420, 0x1e7a2: 0x6c96aa20, 0x1e7a3: 0x6cd29620,
-	0x1e7a4: 0x6cd21420, 0x1e7a5: 0x6c493a20, 0x1e7a6: 0x6d3ec220, 0x1e7a7: 0x6ce2d020,
-	0x1e7a8: 0x6cde2620, 0x1e7a9: 0x6d117a20, 0x1e7aa: 0x6c35a820, 0x1e7ab: 0x6d1e0820,
-	0x1e7ac: 0x6cb9e420, 0x1e7ad: 0x6cb6a420, 0x1e7ae: 0x6cf17420, 0x1e7af: 0x6cc93820,
-	0x1e7b0: 0x6cd0ce20, 0x1e7b1: 0x6c889e20, 0x1e7b2: 0x6c028e20, 0x1e7b3: 0x6c823420,
-	0x1e7b4: 0x6c5b0c20, 0x1e7b5: 0x6c9fdc20, 0x1e7b6: 0x6c62e620, 0x1e7b7: 0x6ce5b620,
-	0x1e7b8: 0x6cc16820, 0x1e7b9: 0x6c654a20, 0x1e7ba: 0x6cd03020, 0x1e7bb: 0x6c97a820,
-	0x1e7bc: 0x6cf7c620, 0x1e7bd: 0x6cc0aa20, 0x1e7be: 0x6c0c9c20, 0x1e7bf: 0x6c62e820,
-	// Block 0x79f, offset 0x1e7c0
-	0x1e7c0: 0x6c62d820, 0x1e7c1: 0x6d3a3c20, 0x1e7c2: 0x6c679a20, 0x1e7c3: 0x6d051420,
-	0x1e7c4: 0x6d3b9c20, 0x1e7c5: 0x6d1de620, 0x1e7c6: 0x6d2eee20, 0x1e7c7: 0x6c776420,
-	0x1e7c8: 0x6d093620, 0x1e7c9: 0x6c0cce20, 0x1e7ca: 0x6d248a20, 0x1e7cb: 0x6cc16a20,
-	0x1e7cc: 0x6cfe6e20, 0x1e7cd: 0x6c0ea220, 0x1e7ce: 0x6c697820, 0x1e7cf: 0x6d0a5a20,
-	0x1e7d0: 0x6cdb7220, 0x1e7d1: 0x6c5a3a20, 0x1e7d2: 0x6d420020, 0x1e7d3: 0x6ccdee20,
-	0x1e7d4: 0x6ccdf020, 0x1e7d5: 0x6c387620, 0x1e7d6: 0x6c4bae20, 0x1e7d7: 0x6c8c0c20,
-	0x1e7d8: 0x6d0a5c20, 0x1e7d9: 0x6c9e8620, 0x1e7da: 0x6cf82c20, 0x1e7db: 0x6d2bbe20,
-	0x1e7dc: 0x6cfe7820, 0x1e7dd: 0x6c3c0620, 0x1e7de: 0x6c494620, 0x1e7df: 0x6c548a20,
-	0x1e7e0: 0x6c7b4e20, 0x1e7e1: 0x6d2b7220, 0x1e7e2: 0x6ccada20, 0x1e7e3: 0x6d2dd020,
-	0x1e7e4: 0x6c420420, 0x1e7e5: 0x6c4bb220, 0x1e7e6: 0x6d1d6020, 0x1e7e7: 0x6c855220,
-	0x1e7e8: 0x6c16da20, 0x1e7e9: 0x6c836e20, 0x1e7ea: 0x6cd63a20, 0x1e7eb: 0x6c011020,
-	0x1e7ec: 0x6cc7f220, 0x1e7ed: 0x6c62fe20, 0x1e7ee: 0x6d076e20, 0x1e7ef: 0x6c56f220,
-	0x1e7f0: 0x6cd63c20, 0x1e7f1: 0x6c87bc20, 0x1e7f2: 0x6c8b8e20, 0x1e7f3: 0x6c87c620,
-	0x1e7f4: 0x6c9f2020, 0x1e7f5: 0x6d31a620, 0x1e7f6: 0x6cfe1220, 0x1e7f7: 0x6c370220,
-	0x1e7f8: 0x6c91ac20, 0x1e7f9: 0x6c49ca20, 0x1e7fa: 0x6c84f020, 0x1e7fb: 0x6cfb1c20,
-	0x1e7fc: 0x6d20ce20, 0x1e7fd: 0x6c29c220, 0x1e7fe: 0x6c613a20, 0x1e7ff: 0x6d1f4220,
-	// Block 0x7a0, offset 0x1e800
-	0x1e800: 0x6cea5c20, 0x1e801: 0x6c91c020, 0x1e802: 0x6c39ac20, 0x1e803: 0x6c035420,
-	0x1e804: 0x6c515220, 0x1e805: 0x6c03be20, 0x1e806: 0x6cb2ba20, 0x1e807: 0x6ca70020,
-	0x1e808: 0x6c915620, 0x1e809: 0x6d1f5220, 0x1e80a: 0x6d2c8020, 0x1e80b: 0x6c401420,
-	0x1e80c: 0x6c03c020, 0x1e80d: 0x6c065620, 0x1e80e: 0x6c547620, 0x1e80f: 0x6cb00220,
-	0x1e810: 0x6cdf2c20, 0x1e811: 0x6c4a8220, 0x1e812: 0x6c6b1620, 0x1e813: 0x6c77b420,
-	0x1e814: 0x6ceffa20, 0x1e815: 0x6c376420, 0x1e816: 0x6ce77620, 0x1e817: 0x6d2b6220,
-	0x1e818: 0x6c547c20, 0x1e819: 0x6c7b2e20, 0x1e81a: 0x6c625a20, 0x1e81b: 0x6c686220,
-	0x1e81c: 0x6cfac620, 0x1e81d: 0x6d2c8820, 0x1e81e: 0x6cfdfa20, 0x1e81f: 0x6d0a2c20,
-	0x1e820: 0x6c451e20, 0x1e821: 0x6c843820, 0x1e822: 0x6c884620, 0x1e823: 0x6c64ea20,
-	0x1e824: 0x6c852c20, 0x1e825: 0x6cd28820, 0x1e826: 0x6ce5a420, 0x1e827: 0x6c4be820,
-	0x1e828: 0x6ccc1620, 0x1e829: 0x6c595020, 0x1e82a: 0x6c758020, 0x1e82b: 0x6c626e20,
-	0x1e82c: 0x6d1e5a20, 0x1e82d: 0x6cbe5820, 0x1e82e: 0x6c8d6420, 0x1e82f: 0x6cb65820,
-	0x1e830: 0x6d406820, 0x1e831: 0x6c3a1c20, 0x1e832: 0x6c7d8620, 0x1e833: 0x6c168020,
-	0x1e834: 0x6c482a20, 0x1e835: 0x6ca60a20, 0x1e836: 0x6ca70820, 0x1e837: 0x6c2de420,
-	0x1e838: 0x6c6dd420, 0x1e839: 0x6cd02420, 0x1e83a: 0x6cd20020, 0x1e83b: 0x6d3e9e20,
-	0x1e83c: 0x6c3bf820, 0x1e83d: 0x6c2ef620, 0x1e83e: 0x6c089420, 0x1e83f: 0x6c16ce20,
-	// Block 0x7a1, offset 0x1e840
-	0x1e840: 0x6ce39020, 0x1e841: 0x6cf16c20, 0x1e842: 0x6ceec420, 0x1e843: 0x6cc9d220,
-	0x1e844: 0x6c36c020, 0x1e845: 0x6cbfd220, 0x1e846: 0x6c407020, 0x1e847: 0x6c5a1620,
-	0x1e848: 0x6cc31e20, 0x1e849: 0x6c678a20, 0x1e84a: 0x6c0b1220, 0x1e84b: 0x6ccac820,
-	0x1e84c: 0x6c028020, 0x1e84d: 0x6cb68020, 0x1e84e: 0x6cde1e20, 0x1e84f: 0x6c493220,
-	0x1e850: 0x6d116620, 0x1e851: 0x6cad1220, 0x1e852: 0x6c651e20, 0x1e853: 0x6c823020,
-	0x1e854: 0x6c0c9a20, 0x1e855: 0x6d093420, 0x1e856: 0x6c0cc820, 0x1e857: 0x6c979820,
-	0x1e858: 0x6c9fd820, 0x1e859: 0x6d1dd220, 0x1e85a: 0x6cf10420, 0x1e85b: 0x6cf7b620,
-	0x1e85c: 0x6c4ba020, 0x1e85d: 0x6ccde220, 0x1e85e: 0x6c8c0620, 0x1e85f: 0x6d41fe20,
-	0x1e860: 0x6c56e420, 0x1e861: 0x6c41fe20, 0x1e862: 0x6c854a20, 0x1e863: 0x6d2dc820,
-	0x1e864: 0x6c496e20, 0x1e865: 0x6ca79a20, 0x1e866: 0x6d15f420, 0x1e867: 0x6c3ebc20,
-	0x1e868: 0x6c864220, 0x1e869: 0x6c6f7e20, 0x1e86a: 0x6c102220, 0x1e86b: 0x6d0e8e20,
-	0x1e86c: 0x6c3f5020, 0x1e86d: 0x6c2dd020, 0x1e86e: 0x6c5efc20, 0x1e86f: 0x6c3cea20,
-	0x1e870: 0x6cc83620, 0x1e871: 0x6c41ac20, 0x1e872: 0x6cd1e820, 0x1e873: 0x6c3cee20,
-	0x1e874: 0x6ca01420, 0x1e875: 0x6c060c20, 0x1e876: 0x6d250820, 0x1e877: 0x6d341420,
-	0x1e878: 0x6c56c420, 0x1e879: 0x6cbd9a20, 0x1e87a: 0x6c3d9820, 0x1e87b: 0x6c049620,
-	0x1e87c: 0x6cf1ac20, 0x1e87d: 0x6c64ec20, 0x1e87e: 0x6cd1f620, 0x1e87f: 0x6d23e420,
-	// Block 0x7a2, offset 0x1e880
-	0x1e880: 0x6c3d3220, 0x1e881: 0x6d10b620, 0x1e882: 0x6c74b020, 0x1e883: 0x6c74b220,
-	0x1e884: 0x6cb06c20, 0x1e885: 0x6c583020, 0x1e886: 0x6d326820, 0x1e887: 0x6c061220,
-	0x1e888: 0x6d0eb420, 0x1e889: 0x6d0af620, 0x1e88a: 0x6d336420, 0x1e88b: 0x6c399c20,
-	0x1e88c: 0x6c3cf020, 0x1e88d: 0x6cf1ae20, 0x1e88e: 0x6cab5220, 0x1e88f: 0x6c279220,
-	0x1e890: 0x6c43ac20, 0x1e891: 0x6cc7ca20, 0x1e892: 0x6c8d6620, 0x1e893: 0x6c9eea20,
-	0x1e894: 0x6c3eec20, 0x1e895: 0x6ceb5420, 0x1e896: 0x6c9f7c20, 0x1e897: 0x6c869620,
-	0x1e898: 0x6c0b5020, 0x1e899: 0x6d36fc20, 0x1e89a: 0x6c43ae20, 0x1e89b: 0x6d251420,
-	0x1e89c: 0x6c227620, 0x1e89d: 0x6cc1cc20, 0x1e89e: 0x6cff1c20, 0x1e89f: 0x6c1adc20,
-	0x1e8a0: 0x6c28c020, 0x1e8a1: 0x6c70d020, 0x1e8a2: 0x6d11d620, 0x1e8a3: 0x6c473820,
-	0x1e8a4: 0x6c301820, 0x1e8a5: 0x6d240020, 0x1e8a6: 0x6d0f6e20, 0x1e8a7: 0x6cc73a20,
-	0x1e8a8: 0x6d0afe20, 0x1e8a9: 0x6ce60420, 0x1e8aa: 0x6d240220, 0x1e8ab: 0x6ce54420,
-	0x1e8ac: 0x6d1bf820, 0x1e8ad: 0x6c331620, 0x1e8ae: 0x6cf38620, 0x1e8af: 0x6c377020,
-	0x1e8b0: 0x6c487c20, 0x1e8b1: 0x6c00d420, 0x1e8b2: 0x6d341a20, 0x1e8b3: 0x6d0ed620,
-	0x1e8b4: 0x6c527a20, 0x1e8b5: 0x6cff2c20, 0x1e8b6: 0x6c63f020, 0x1e8b7: 0x6c8b4220,
-	0x1e8b8: 0x6d39d220, 0x1e8b9: 0x6d0fe220, 0x1e8ba: 0x6ce39220, 0x1e8bb: 0x6c539220,
-	0x1e8bc: 0x6c963020, 0x1e8bd: 0x6cc7da20, 0x1e8be: 0x6ca1f220, 0x1e8bf: 0x6c43b820,
-	// Block 0x7a3, offset 0x1e8c0
-	0x1e8c0: 0x6cc57e20, 0x1e8c1: 0x6c688c20, 0x1e8c2: 0x6d050220, 0x1e8c3: 0x6d38ba20,
-	0x1e8c4: 0x6d341c20, 0x1e8c5: 0x6c963220, 0x1e8c6: 0x6c528c20, 0x1e8c7: 0x6ca77620,
-	0x1e8c8: 0x6c370820, 0x1e8c9: 0x6c944620, 0x1e8ca: 0x6c63f220, 0x1e8cb: 0x6c62b420,
-	0x1e8cc: 0x6ce90420, 0x1e8cd: 0x6c583820, 0x1e8ce: 0x6ceb9220, 0x1e8cf: 0x6c104a20,
-	0x1e8d0: 0x6cf40420, 0x1e8d1: 0x6c730820, 0x1e8d2: 0x6d244820, 0x1e8d3: 0x6c0f9c20,
-	0x1e8d4: 0x6c75f620, 0x1e8d5: 0x6d0aae20, 0x1e8d6: 0x6c089220, 0x1e8d7: 0x6cf71020,
-	0x1e8d8: 0x6c75f820, 0x1e8d9: 0x6c717620, 0x1e8da: 0x6ce87e20, 0x1e8db: 0x6c6de420,
-	0x1e8dc: 0x6ce3a220, 0x1e8dd: 0x6c359020, 0x1e8de: 0x6c359220, 0x1e8df: 0x6c7bcc20,
-	0x1e8e0: 0x6c55e820, 0x1e8e1: 0x6cf48a20, 0x1e8e2: 0x6cd02a20, 0x1e8e3: 0x6c7f6620,
-	0x1e8e4: 0x6c69ee20, 0x1e8e5: 0x6cacca20, 0x1e8e6: 0x6c932820, 0x1e8e7: 0x6cb02c20,
-	0x1e8e8: 0x6cd51a20, 0x1e8e9: 0x6c3f2220, 0x1e8ea: 0x6c015e20, 0x1e8eb: 0x6d3dd020,
-	0x1e8ec: 0x6caef420, 0x1e8ed: 0x6cbdba20, 0x1e8ee: 0x6cb94220, 0x1e8ef: 0x6c06be20,
-	0x1e8f0: 0x6c2dee20, 0x1e8f1: 0x6c932a20, 0x1e8f2: 0x6cc42c20, 0x1e8f3: 0x6c652a20,
-	0x1e8f4: 0x6c718420, 0x1e8f5: 0x6ce92a20, 0x1e8f6: 0x6d0b0420, 0x1e8f7: 0x6d252020,
-	0x1e8f8: 0x6cb68e20, 0x1e8f9: 0x6c849620, 0x1e8fa: 0x6d138620, 0x1e8fb: 0x6d3c7020,
-	0x1e8fc: 0x6c798e20, 0x1e8fd: 0x6c352020, 0x1e8fe: 0x6c7d9020, 0x1e8ff: 0x6cd11c20,
-	// Block 0x7a4, offset 0x1e900
-	0x1e900: 0x6cb69020, 0x1e901: 0x6c6de820, 0x1e902: 0x6d192420, 0x1e903: 0x6d192620,
-	0x1e904: 0x6c6dea20, 0x1e905: 0x6d3ebc20, 0x1e906: 0x6c7f3220, 0x1e907: 0x6c302620,
-	0x1e908: 0x6cb55020, 0x1e909: 0x6c219420, 0x1e90a: 0x6c44e620, 0x1e90b: 0x6c70e020,
-	0x1e90c: 0x6c74f620, 0x1e90d: 0x6d199620, 0x1e90e: 0x6d422420, 0x1e90f: 0x6c5f8a20,
-	0x1e910: 0x6cd62c20, 0x1e911: 0x6d1c1420, 0x1e912: 0x6c1c9220, 0x1e913: 0x6c9e8220,
-	0x1e914: 0x6cc77220, 0x1e915: 0x6c016220, 0x1e916: 0x6cbfe020, 0x1e917: 0x6ce3ae20,
-	0x1e918: 0x6c55fc20, 0x1e919: 0x6ce3b020, 0x1e91a: 0x6c36e020, 0x1e91b: 0x6c6a4420,
-	0x1e91c: 0x6c991220, 0x1e91d: 0x6c3f2620, 0x1e91e: 0x6c212820, 0x1e91f: 0x6ce90820,
-	0x1e920: 0x6d0e0820, 0x1e921: 0x6c51a020, 0x1e922: 0x6d25d020, 0x1e923: 0x6cb10620,
-	0x1e924: 0x6c7d9620, 0x1e925: 0x6c9a3e20, 0x1e926: 0x6c55fe20, 0x1e927: 0x6d1c1620,
-	0x1e928: 0x6c204820, 0x1e929: 0x6cf54c20, 0x1e92a: 0x6c718a20, 0x1e92b: 0x6c309c20,
-	0x1e92c: 0x6c124420, 0x1e92d: 0x6c39e020, 0x1e92e: 0x6c520a20, 0x1e92f: 0x6d1c3620,
-	0x1e930: 0x6d25d220, 0x1e931: 0x6cfb0620, 0x1e932: 0x6cf24620, 0x1e933: 0x6cd21620,
-	0x1e934: 0x6c520c20, 0x1e935: 0x6c1eca20, 0x1e936: 0x6ce16820, 0x1e937: 0x6cfa1a20,
-	0x1e938: 0x6cc93a20, 0x1e939: 0x6c8ee620, 0x1e93a: 0x6c60fe20, 0x1e93b: 0x6c474c20,
-	0x1e93c: 0x6c654620, 0x1e93d: 0x6cdd0420, 0x1e93e: 0x6c4f3a20, 0x1e93f: 0x6c228020,
-	// Block 0x7a5, offset 0x1e940
-	0x1e940: 0x6c228220, 0x1e941: 0x6d195420, 0x1e942: 0x6d124820, 0x1e943: 0x6d0f0220,
-	0x1e944: 0x6c5f9a20, 0x1e945: 0x6c875c20, 0x1e946: 0x6ce4d220, 0x1e947: 0x6c7a0e20,
-	0x1e948: 0x6ce30620, 0x1e949: 0x6ce30820, 0x1e94a: 0x6d195620, 0x1e94b: 0x6ce90c20,
-	0x1e94c: 0x6c96ac20, 0x1e94d: 0x6c68ae20, 0x1e94e: 0x6c42f420, 0x1e94f: 0x6ce4d420,
-	0x1e950: 0x6c18fe20, 0x1e951: 0x6c610020, 0x1e952: 0x6ce97620, 0x1e953: 0x6d311020,
-	0x1e954: 0x6c029020, 0x1e955: 0x6d11e620, 0x1e956: 0x6d143c20, 0x1e957: 0x6cab6620,
-	0x1e958: 0x6c1c9820, 0x1e959: 0x6d376e20, 0x1e95a: 0x6c8f5c20, 0x1e95b: 0x6d1de820,
-	0x1e95c: 0x6c937020, 0x1e95d: 0x6c0aca20, 0x1e95e: 0x6cd6b820, 0x1e95f: 0x6d3de420,
-	0x1e960: 0x6d21fa20, 0x1e961: 0x6cf41020, 0x1e962: 0x6c752620, 0x1e963: 0x6d1ab620,
-	0x1e964: 0x6ce3b820, 0x1e965: 0x6cd85620, 0x1e966: 0x6c68b420, 0x1e967: 0x6d196c20,
-	0x1e968: 0x6c577020, 0x1e969: 0x6c0ad020, 0x1e96a: 0x6d1c4620, 0x1e96b: 0x6cdb7420,
-	0x1e96c: 0x6c5a3c20, 0x1e96d: 0x6c38f820, 0x1e96e: 0x6c68b620, 0x1e96f: 0x6c8a5a20,
-	0x1e970: 0x6d0f1820, 0x1e971: 0x6c42f820, 0x1e972: 0x6c704020, 0x1e973: 0x6cfbda20,
-	0x1e974: 0x6cfbdc20, 0x1e975: 0x6ce90e20, 0x1e976: 0x6c971c20, 0x1e977: 0x6d420220,
-	0x1e978: 0x6d248e20, 0x1e979: 0x6d1c4a20, 0x1e97a: 0x6c934220, 0x1e97b: 0x6ce97820,
-	0x1e97c: 0x6cfbde20, 0x1e97d: 0x6d092e20, 0x1e97e: 0x6d197820, 0x1e97f: 0x6cb0e020,
-	// Block 0x7a6, offset 0x1e980
-	0x1e980: 0x6c1efc20, 0x1e981: 0x6c958c20, 0x1e982: 0x6cf75c20, 0x1e983: 0x6d15a220,
-	0x1e984: 0x6c5fb220, 0x1e985: 0x6d2b2c20, 0x1e986: 0x6d220820, 0x1e987: 0x6d2dd220,
-	0x1e988: 0x6d13a420, 0x1e989: 0x6d0ffa20, 0x1e98a: 0x6cb0e220, 0x1e98b: 0x6ca94420,
-	0x1e98c: 0x6c56f420, 0x1e98d: 0x6c9cd220, 0x1e98e: 0x6d1c5020, 0x1e98f: 0x6c9bc420,
-	0x1e990: 0x6c2bc220, 0x1e991: 0x6d273620, 0x1e992: 0x6d249020, 0x1e993: 0x6c831a20,
-	0x1e994: 0x6c068620, 0x1e995: 0x6c91ae20, 0x1e996: 0x6c521220, 0x1e997: 0x6c902220,
-	0x1e998: 0x6cd6cc20, 0x1e999: 0x6d274020, 0x1e99a: 0x6d1c5220, 0x1e99b: 0x6c49cc20,
-	0x1e99c: 0x6cc23820, 0x1e99d: 0x6c84f220, 0x1e99e: 0x6c948820, 0x1e99f: 0x6ca78a20,
-	0x1e9a0: 0x6c6f5a20, 0x1e9a1: 0x6c5e8820, 0x1e9a2: 0x6d24ca20, 0x1e9a3: 0x6c9fea20,
-	0x1e9a4: 0x6cd1a020, 0x1e9a5: 0x6cab3620, 0x1e9a6: 0x6d0ada20, 0x1e9a7: 0x6c122620,
-	0x1e9a8: 0x6c05ec20, 0x1e9a9: 0x6d322a20, 0x1e9aa: 0x6c470420, 0x1e9ab: 0x6c2fec20,
-	0x1e9ac: 0x6c914a20, 0x1e9ad: 0x6d0ae420, 0x1e9ae: 0x6cfeae20, 0x1e9af: 0x6d0f5820,
-	0x1e9b0: 0x6c8cda20, 0x1e9b1: 0x6c1aa620, 0x1e9b2: 0x6cc18220, 0x1e9b3: 0x6d24d820,
-	0x1e9b4: 0x6d090420, 0x1e9b5: 0x6ceb1220, 0x1e9b6: 0x6cd7de20, 0x1e9b7: 0x6d361220,
-	0x1e9b8: 0x6c375620, 0x1e9b9: 0x6c485820, 0x1e9ba: 0x6d04d220, 0x1e9bb: 0x6c526620,
-	0x1e9bc: 0x6d388020, 0x1e9bd: 0x6c438a20, 0x1e9be: 0x6c943820, 0x1e9bf: 0x6c534820,
-	// Block 0x7a7, offset 0x1e9c0
-	0x1e9c0: 0x6cf3ce20, 0x1e9c1: 0x6c0f0c20, 0x1e9c2: 0x6c83dc20, 0x1e9c3: 0x6c72f820,
-	0x1e9c4: 0x6c479a20, 0x1e9c5: 0x6c357220, 0x1e9c6: 0x6d236220, 0x1e9c7: 0x6cfb6820,
-	0x1e9c8: 0x6ce33a20, 0x1e9c9: 0x6cf45420, 0x1e9ca: 0x6cc42a20, 0x1e9cb: 0x6c9e7a20,
-	0x1e9cc: 0x6c013e20, 0x1e9cd: 0x6c7d7820, 0x1e9ce: 0x6c06b420, 0x1e9cf: 0x6caeb020,
-	0x1e9d0: 0x6cb8fc20, 0x1e9d1: 0x6c219220, 0x1e9d2: 0x6c44d620, 0x1e9d3: 0x6d250220,
-	0x1e9d4: 0x6cdadc20, 0x1e9d5: 0x6c558e20, 0x1e9d6: 0x6c516020, 0x1e9d7: 0x6c367e20,
-	0x1e9d8: 0x6c47bc20, 0x1e9d9: 0x6cbfba20, 0x1e9da: 0x6c225a20, 0x1e9db: 0x6c9a1e20,
-	0x1e9dc: 0x6cf51220, 0x1e9dd: 0x6d187820, 0x1e9de: 0x6d122020, 0x1e9df: 0x6cf23820,
-	0x1e9e0: 0x6c8e9420, 0x1e9e1: 0x6c60a020, 0x1e9e2: 0x6d187a20, 0x1e9e3: 0x6c64ee20,
-	0x1e9e4: 0x6c51e220, 0x1e9e5: 0x6d141c20, 0x1e9e6: 0x6d1bfa20, 0x1e9e7: 0x6d310420,
-	0x1e9e8: 0x6c8f4420, 0x1e9e9: 0x6c8a2e20, 0x1e9ea: 0x6c689220, 0x1e9eb: 0x6c703020,
-	0x1e9ec: 0x6d242a20, 0x1e9ed: 0x6c931820, 0x1e9ee: 0x6c58b420, 0x1e9ef: 0x6d2db020,
-	0x1e9f0: 0x6d1c0c20, 0x1e9f1: 0x6c56da20, 0x1e9f2: 0x6c9b8020, 0x1e9f3: 0x6c49c020,
-	0x1e9f4: 0x6cd6ba20, 0x1e9f5: 0x6c91bc20, 0x1e9f6: 0x6c6c5820, 0x1e9f7: 0x6c8d6820,
-	0x1e9f8: 0x6c661220, 0x1e9f9: 0x6cfbd020, 0x1e9fa: 0x6c25fe20, 0x1e9fb: 0x6c662620,
-	0x1e9fc: 0x6c664020, 0x1e9fd: 0x6d0d1a20, 0x1e9fe: 0x6c25f420, 0x1e9ff: 0x6c924c20,
-	// Block 0x7a8, offset 0x1ea00
-	0x1ea00: 0x6d1eaa20, 0x1ea01: 0x6c241620, 0x1ea02: 0x6c614c20, 0x1ea03: 0x6cad6820,
-	0x1ea04: 0x6c241820, 0x1ea05: 0x6cad6c20, 0x1ea06: 0x6d3b3220, 0x1ea07: 0x6c758220,
-	0x1ea08: 0x6d3a8220, 0x1ea09: 0x6c651020, 0x1ea0a: 0x6c9c8420, 0x1ea0b: 0x6c9c8620,
-	0x1ea0c: 0x6d22a820, 0x1ea0d: 0x6c8ec820, 0x1ea0e: 0x6c18f420, 0x1ea0f: 0x6c758a20,
-	0x1ea10: 0x6c8bf620, 0x1ea11: 0x6ca61a20, 0x1ea12: 0x6cb69420, 0x1ea13: 0x6c932c20,
-	0x1ea14: 0x6c703a20, 0x1ea15: 0x6c758c20, 0x1ea16: 0x6c6df020, 0x1ea17: 0x6c871420,
-	0x1ea18: 0x6cfd9820, 0x1ea19: 0x6cfbd220, 0x1ea1a: 0x6c639020, 0x1ea1b: 0x6c9ca620,
-	0x1ea1c: 0x6c875e20, 0x1ea1d: 0x6ccf8e20, 0x1ea1e: 0x6d2ef220, 0x1ea1f: 0x6c8c1020,
-	0x1ea20: 0x6c6dfa20, 0x1ea21: 0x6cb6b620, 0x1ea22: 0x6c8de220, 0x1ea23: 0x6d0d2820,
-	0x1ea24: 0x6c241a20, 0x1ea25: 0x6c973220, 0x1ea26: 0x6c972620, 0x1ea27: 0x6c516220,
-	0x1ea28: 0x6c17a620, 0x1ea29: 0x6c3d9c20, 0x1ea2a: 0x6c9e5e20, 0x1ea2b: 0x6c9e3e20,
-	0x1ea2c: 0x6c3da820, 0x1ea2d: 0x6cad9c20, 0x1ea2e: 0x6cc27e20, 0x1ea2f: 0x6cc14c20,
-	0x1ea30: 0x6ca1f420, 0x1ea31: 0x6c3db020, 0x1ea32: 0x6cfd2c20, 0x1ea33: 0x6c7f3420,
-	0x1ea34: 0x6cc15820, 0x1ea35: 0x6c9e6a20, 0x1ea36: 0x6c1ca620, 0x1ea37: 0x6c3c9420,
-	0x1ea38: 0x6c3d6e20, 0x1ea39: 0x6cc14020, 0x1ea3a: 0x6c9e6420, 0x1ea3b: 0x6c966820,
-	0x1ea3c: 0x6c99c420, 0x1ea3d: 0x6ca07020, 0x1ea3e: 0x6c5af020, 0x1ea3f: 0x6ca1b820,
-	// Block 0x7a9, offset 0x1ea40
-	0x1ea40: 0x6d407020, 0x1ea41: 0x6caaae20, 0x1ea42: 0x6c3bb420, 0x1ea43: 0x6c59ce20,
-	0x1ea44: 0x6c59b820, 0x1ea45: 0x6c6c5a20, 0x1ea46: 0x6c49f620, 0x1ea47: 0x6ce47420,
-	0x1ea48: 0x6ce81c20, 0x1ea49: 0x6c538c20, 0x1ea4a: 0x6c57c820, 0x1ea4b: 0x6c7c0820,
-	0x1ea4c: 0x6c539a20, 0x1ea4d: 0x6cd56020, 0x1ea4e: 0x6c843a20, 0x1ea4f: 0x6ca70a20,
-	0x1ea50: 0x6c1af220, 0x1ea51: 0x6c521c20, 0x1ea52: 0x6c521a20, 0x1ea53: 0x6d187c20,
-	0x1ea54: 0x6cb9ce20, 0x1ea55: 0x6c284820, 0x1ea56: 0x6cf8ea20, 0x1ea57: 0x6cea2e20,
-	0x1ea58: 0x6ca17020, 0x1ea59: 0x6ca15020, 0x1ea5a: 0x6cb9d220, 0x1ea5b: 0x6c279e20,
-	0x1ea5c: 0x6c1f8420, 0x1ea5d: 0x6d1ff620, 0x1ea5e: 0x6c2d2e20, 0x1ea5f: 0x6d143020,
-	0x1ea60: 0x6cfa1220, 0x1ea61: 0x6d0df220, 0x1ea62: 0x6cc15a20, 0x1ea63: 0x6c9a7220,
-	0x1ea64: 0x6d0e0a20, 0x1ea65: 0x6cbe9420, 0x1ea66: 0x6d271220, 0x1ea67: 0x6c84a220,
-	0x1ea68: 0x6c293820, 0x1ea69: 0x6c31ec20, 0x1ea6a: 0x6c11e820, 0x1ea6b: 0x6d0c4820,
-	0x1ea6c: 0x6d0d0820, 0x1ea6d: 0x6d0e1420, 0x1ea6e: 0x6c285820, 0x1ea6f: 0x6c01e420,
-	0x1ea70: 0x6d320a20, 0x1ea71: 0x6c27ac20, 0x1ea72: 0x6c11ea20, 0x1ea73: 0x6d144020,
-	0x1ea74: 0x6c9a4620, 0x1ea75: 0x6d2e4220, 0x1ea76: 0x6d0e3420, 0x1ea77: 0x6c320e20,
-	0x1ea78: 0x6c91b020, 0x1ea79: 0x6d353420, 0x1ea7a: 0x6c3bc220, 0x1ea7b: 0x6c3f1020,
-	0x1ea7c: 0x6c3f9820, 0x1ea7d: 0x6c9e3220, 0x1ea7e: 0x6c9e0a20, 0x1ea7f: 0x6d25bc20,
-	// Block 0x7aa, offset 0x1ea80
-	0x1ea80: 0x6c247220, 0x1ea81: 0x6cc28420, 0x1ea82: 0x6c178820, 0x1ea83: 0x6cebfc20,
-	0x1ea84: 0x6d39e620, 0x1ea85: 0x6d342a20, 0x1ea86: 0x6c9bbe20, 0x1ea87: 0x6c029420,
-	0x1ea88: 0x6c0cd020, 0x1ea89: 0x6ceb6a20, 0x1ea8a: 0x6c0ada20, 0x1ea8b: 0x6d257220,
-	0x1ea8c: 0x6c176620, 0x1ea8d: 0x6ceb5e20, 0x1ea8e: 0x6c2f7420, 0x1ea8f: 0x6c9d7420,
-	0x1ea90: 0x6ca3d020, 0x1ea91: 0x6c2f7c20, 0x1ea92: 0x6d3e8420, 0x1ea93: 0x6c47a620,
-	0x1ea94: 0x6c47a820, 0x1ea95: 0x6c302220, 0x1ea96: 0x6c3ba420, 0x1ea97: 0x6ce25020,
-	0x1ea98: 0x6d252820, 0x1ea99: 0x6cb03a20, 0x1ea9a: 0x6c168e20, 0x1ea9b: 0x6c42f620,
-	0x1ea9c: 0x6cb80820, 0x1ea9d: 0x6d252a20, 0x1ea9e: 0x6ce0e220, 0x1ea9f: 0x6ce29820,
-	0x1eaa0: 0x6cd56620, 0x1eaa1: 0x6cd55220, 0x1eaa2: 0x6c3b9e20, 0x1eaa3: 0x6c3adc20,
-	0x1eaa4: 0x6cf1be20, 0x1eaa5: 0x6c039620, 0x1eaa6: 0x6c2dea20, 0x1eaa7: 0x6ceb5a20,
-	0x1eaa8: 0x6d37d420, 0x1eaa9: 0x6cc1ee20, 0x1eaaa: 0x6cd11a20, 0x1eaab: 0x6cd28e20,
-	0x1eaac: 0x6d205e20, 0x1eaad: 0x6cd29420, 0x1eaae: 0x6ce69e20, 0x1eaaf: 0x6cf40c20,
-	0x1eab0: 0x6ca77220, 0x1eab1: 0x6c6df620, 0x1eab2: 0x6c5d1020, 0x1eab3: 0x6c719820,
-	0x1eab4: 0x6d0e1e20, 0x1eab5: 0x6ce88020, 0x1eab6: 0x6cd85c20, 0x1eab7: 0x6cf75420,
-	0x1eab8: 0x6cfd4e20, 0x1eab9: 0x6d0e2820, 0x1eaba: 0x6c82ae20, 0x1eabb: 0x6c08a220,
-	0x1eabc: 0x6d11da20, 0x1eabd: 0x6cc0a220, 0x1eabe: 0x6c4dc020, 0x1eabf: 0x6cf53a20,
-	// Block 0x7ab, offset 0x1eac0
-	0x1eac0: 0x6cf54220, 0x1eac1: 0x6c53e620, 0x1eac2: 0x6d028620, 0x1eac3: 0x6c36f820,
-	0x1eac4: 0x6d2c1020, 0x1eac5: 0x6d055c20, 0x1eac6: 0x6cf27820, 0x1eac7: 0x6d2c1220,
-	0x1eac8: 0x6ca9f820, 0x1eac9: 0x6ca48c20, 0x1eaca: 0x6cb63420, 0x1eacb: 0x6d2d0020,
-	0x1eacc: 0x6c62b620, 0x1eacd: 0x6d3ebe20, 0x1eace: 0x6c5f9c20, 0x1eacf: 0x6c5fac20,
-	0x1ead0: 0x6cb56c20, 0x1ead1: 0x6c5f2820, 0x1ead2: 0x6c1bc220, 0x1ead3: 0x6c193020,
-	0x1ead4: 0x6c193420, 0x1ead5: 0x6c519220, 0x1ead6: 0x6d0b3a20, 0x1ead7: 0x6d1aae20,
-	0x1ead8: 0x6d026c20, 0x1ead9: 0x6c05c020, 0x1eada: 0x6d2b2620, 0x1eadb: 0x6d027620,
-	0x1eadc: 0x6c148c20, 0x1eadd: 0x6c1aec20, 0x1eade: 0x6d0e0c20, 0x1eadf: 0x6c71e020,
-	0x1eae0: 0x6ce5b220, 0x1eae1: 0x6c8d9620, 0x1eae2: 0x6c8d7820, 0x1eae3: 0x6c1e6e20,
-	0x1eae4: 0x6cc33220, 0x1eae5: 0x6d027e20, 0x1eae6: 0x6c791420, 0x1eae7: 0x6ca8ae20,
-	0x1eae8: 0x6c703e20, 0x1eae9: 0x6d11e420, 0x1eaea: 0x6c21e820, 0x1eaeb: 0x6c7dc820,
-	0x1eaec: 0x6d22b220, 0x1eaed: 0x6c1efa20, 0x1eaee: 0x6d163020, 0x1eaef: 0x6ca61c20,
-	0x1eaf0: 0x6d2b2a20, 0x1eaf1: 0x6d407820, 0x1eaf2: 0x6cc25820, 0x1eaf3: 0x6d281020,
-	0x1eaf4: 0x6d0e3020, 0x1eaf5: 0x6cab6e20, 0x1eaf6: 0x6c36fe20, 0x1eaf7: 0x6cf33820,
-	0x1eaf8: 0x6d198020, 0x1eaf9: 0x6c221a20, 0x1eafa: 0x6d407a20, 0x1eafb: 0x6c2d0020,
-	0x1eafc: 0x6c1efe20, 0x1eafd: 0x6c6d7a20, 0x1eafe: 0x6d0bd420, 0x1eaff: 0x6c1b8020,
-	// Block 0x7ac, offset 0x1eb00
-	0x1eb00: 0x6c192420, 0x1eb01: 0x6c512220, 0x1eb02: 0x6d1a6e20, 0x1eb03: 0x6c71c620,
-	0x1eb04: 0x6c8d3220, 0x1eb05: 0x6c05b620, 0x1eb06: 0x6ce59620, 0x1eb07: 0x6d3e7820,
-	0x1eb08: 0x6c790620, 0x1eb09: 0x6d228620, 0x1eb0a: 0x6c21d420, 0x1eb0b: 0x6cc25220,
-	0x1eb0c: 0x6cf32620, 0x1eb0d: 0x6c8fb020, 0x1eb0e: 0x6cad1420, 0x1eb0f: 0x6c45c020,
-	0x1eb10: 0x6cad1620, 0x1eb11: 0x6d0e0e20, 0x1eb12: 0x6c8ff220, 0x1eb13: 0x6c904820,
-	0x1eb14: 0x6c45c820, 0x1eb15: 0x6c76b820, 0x1eb16: 0x6c26dc20, 0x1eb17: 0x6c8e0020,
-	0x1eb18: 0x6c26de20, 0x1eb19: 0x6c8f6620, 0x1eb1a: 0x6c458620, 0x1eb1b: 0x6c76a820,
-	0x1eb1c: 0x6c4a9620, 0x1eb1d: 0x6cbfea20, 0x1eb1e: 0x6c0cd620, 0x1eb1f: 0x6c4a3820,
-	0x1eb20: 0x6d26f620, 0x1eb21: 0x6c20f820, 0x1eb22: 0x6c51aa20, 0x1eb23: 0x6c753020,
-	0x1eb24: 0x6d013c20, 0x1eb25: 0x6d249820,
-	// Block 0x7ad, offset 0x1eb40
-	0x1eb43: 0x6ccd4220,
-	// Block 0x7ae, offset 0x1eb80
-	0x1eb80: 0x6cb6e820, 0x1eb81: 0x6c452620, 0x1eb82: 0x6c17ce20, 0x1eb83: 0x6c642020,
-	0x1eb84: 0x6c573e20, 0x1eb85: 0x6c202c20, 0x1eb86: 0x6c71ea20, 0x1eb87: 0x6c4a9620,
-	0x1eb88: 0x6c4a9620, 0x1eb89: 0x6cb75220, 0x1eb8a: 0x6c6c2e20, 0x1eb8b: 0x6c7e6220,
-	0x1eb8c: 0x6ca3ac20, 0x1eb8d: 0x6c804a20, 0x1eb8e: 0x6c7f7820, 0x1eb8f: 0x6c956220,
-	0x1eb90: 0x6c957a20, 0x1eb91: 0x6c955820, 0x1eb92: 0x6c95b820, 0x1eb93: 0x6c957c20,
-	0x1eb94: 0x6c822620, 0x1eb95: 0x6c95e820, 0x1eb96: 0x6c81d020, 0x1eb97: 0x6c95f620,
-	0x1eb98: 0x6c960a20, 0x1eb99: 0x6c81d620, 0x1eb9a: 0x6c962a20, 0x1eb9b: 0x6c949a20,
-	0x1eb9c: 0x6c948c20, 0x1eb9d: 0x6c7ff820, 0x1eb9e: 0x6c808820, 0x1eb9f: 0x6c7ff020,
-	0x1eba0: 0x6c948820, 0x1eba1: 0x6c7f9a20, 0x1eba2: 0x6c807c20, 0x1eba3: 0x6c7fc420,
-	0x1eba4: 0x6c7fd820, 0x1eba5: 0x6c7e3e20, 0x1eba6: 0x6c7eaa20, 0x1eba7: 0x6c7ec420,
-	0x1eba8: 0x6c80b420, 0x1eba9: 0x6c80f820, 0x1ebaa: 0x6c811820, 0x1ebab: 0x6c80ae20,
-	0x1ebac: 0x6c80a220, 0x1ebad: 0x6c7ee220, 0x1ebae: 0x6c839020, 0x1ebaf: 0x6c815620,
-	0x1ebb0: 0x6c91da20, 0x1ebb1: 0x6c91f220, 0x1ebb2: 0x6c918420, 0x1ebb3: 0x6c915c20,
-	0x1ebb4: 0x6c819a20, 0x1ebb5: 0x6c917820, 0x1ebb6: 0x6c91c420, 0x1ebb7: 0x6c927620,
-	0x1ebb8: 0x6c933620, 0x1ebb9: 0x6c91d420, 0x1ebba: 0x6c934220, 0x1ebbb: 0x6c926e20,
-	0x1ebbc: 0x6c925a20, 0x1ebbd: 0x6c93ec20, 0x1ebbe: 0x6c924820, 0x1ebbf: 0x6c92de20,
-	// Block 0x7af, offset 0x1ebc0
-	0x1ebc0: 0x6c924c20, 0x1ebc1: 0x6c952620, 0x1ebc2: 0x6c903e20, 0x1ebc3: 0x6ca9f020,
-	0x1ebc4: 0x6c8ff420, 0x1ebc5: 0x6c8ff820, 0x1ebc6: 0x6c814220, 0x1ebc7: 0x6c82d220,
-	0x1ebc8: 0x6c927420, 0x1ebc9: 0x6c823e20, 0x1ebca: 0x6c82e220, 0x1ebcb: 0x6c93a620,
-	0x1ebcc: 0x6c90b020, 0x1ebcd: 0x6c833020, 0x1ebce: 0x6c910e20, 0x1ebcf: 0x6c833420,
-	0x1ebd0: 0x6c93bc20, 0x1ebd1: 0x6c910220, 0x1ebd2: 0x6c823c20, 0x1ebd3: 0x6c81fe20,
-	0x1ebd4: 0x6c8c2820, 0x1ebd5: 0x6c8cc420, 0x1ebd6: 0x6c837e20, 0x1ebd7: 0x6c8d3c20,
-	0x1ebd8: 0x6c8cfe20, 0x1ebd9: 0x6c8cd820, 0x1ebda: 0x6c31f020, 0x1ebdb: 0x6ca2d020,
-	0x1ebdc: 0x6c822620, 0x1ebdd: 0x6cab0e20, 0x1ebde: 0x6c27b220, 0x1ebdf: 0x6ca91020,
-	0x1ebe0: 0x6caa5e20, 0x1ebe1: 0x6c93d620, 0x1ebe2: 0x6d176620, 0x1ebe3: 0x6c06c620,
-	0x1ebe4: 0x6cac7620, 0x1ebe5: 0x6c0b8220, 0x1ebe6: 0x6c3ff020, 0x1ebe7: 0x6c105620,
-	0x1ebe8: 0x6c9d2620, 0x1ebe9: 0x6cd60020, 0x1ebea: 0x6cdd5a20, 0x1ebeb: 0x6c115e20,
-	0x1ebec: 0x6cc9c620, 0x1ebed: 0x6cd12c20, 0x1ebee: 0x6d12f620, 0x1ebef: 0x6cd76a20,
-	0x1ebf0: 0x6ccbda20, 0x1ebf1: 0x6c18a020, 0x1ebf2: 0x6c189c20, 0x1ebf3: 0x6cd41020,
-	0x1ebf4: 0x6cc91420, 0x1ebf5: 0x6c361020, 0x1ebf6: 0x6c361220, 0x1ebf7: 0x6c89aa20,
-	0x1ebf8: 0x6c898820, 0x1ebf9: 0x6c894a20, 0x1ebfa: 0x6c894c20, 0x1ebfb: 0x6c897420,
-	0x1ebfc: 0x6c894620, 0x1ebfd: 0x6c89c820, 0x1ebfe: 0x6c89c020, 0x1ebff: 0x6c867020,
-	// Block 0x7b0, offset 0x1ec00
-	0x1ec00: 0x6c937620, 0x1ec01: 0x6caa6e20, 0x1ec02: 0x6c916e20, 0x1ec03: 0x6c938a20,
-	0x1ec04: 0x6c940e20, 0x1ec05: 0x6c870420, 0x1ec06: 0x6c935a20, 0x1ec07: 0x6c84ee20,
-	0x1ec08: 0x6c871420, 0x1ec09: 0x6c843a20, 0x1ec0a: 0x6c855c20, 0x1ec0b: 0x6c867820,
-	0x1ec0c: 0x6c867c20, 0x1ec0d: 0x6c878420, 0x1ec0e: 0x6ca6f220, 0x1ec0f: 0x6c883620,
-	0x1ec10: 0x6c893820, 0x1ec11: 0x6ca73420, 0x1ec12: 0x6c881620, 0x1ec13: 0x6c890620,
-	0x1ec14: 0x6c88c420, 0x1ec15: 0x6ca6f620, 0x1ec16: 0x6c891220, 0x1ec17: 0x6c886820,
-	0x1ec18: 0x6ca73a20, 0x1ec19: 0x6c881820, 0x1ec1a: 0x6c87fa20, 0x1ec1b: 0x6c892220,
-	0x1ec1c: 0x6c8abc20, 0x1ec1d: 0x6c8abe20, 0x1ec1e: 0x6d0e4220, 0x1ec1f: 0x6c8af020,
-	0x1ec20: 0x6c8b1020, 0x1ec21: 0x6cd76a20, 0x1ec22: 0x6c881020, 0x1ec23: 0x6ca75a20,
-	0x1ec24: 0x6ca72020, 0x1ec25: 0x6c892020, 0x1ec26: 0x6c888420, 0x1ec27: 0x6c8b5420,
-	0x1ec28: 0x6c8e1820, 0x1ec29: 0x6c8c9e20, 0x1ec2a: 0x6ca91020, 0x1ec2b: 0x6c8e1420,
-	0x1ec2c: 0x6c87f420, 0x1ec2d: 0x6c8cbe20, 0x1ec2e: 0x6d1c8a20, 0x1ec2f: 0x6c8cf620,
-	0x1ec30: 0x6c8cfa20, 0x1ec31: 0x6c8d2420, 0x1ec32: 0x6c8d2a20, 0x1ec33: 0x6c8db620,
-	0x1ec34: 0x6c8e1220, 0x1ec35: 0x6c858620, 0x1ec36: 0x6c853820, 0x1ec37: 0x6c854620,
-	0x1ec38: 0x6c86b420, 0x1ec39: 0x6c363420, 0x1ec3a: 0x6c823620, 0x1ec3b: 0x6c89ec20,
-	0x1ec3c: 0x6c8a0620, 0x1ec3d: 0x6ca7d020, 0x1ec3e: 0x6c8a9420, 0x1ec3f: 0x6c822620,
-	// Block 0x7b1, offset 0x1ec40
-	0x1ec40: 0x6c8a1a20, 0x1ec41: 0x6c8a2620, 0x1ec42: 0x6c8a7220, 0x1ec43: 0x6c8a1620,
-	0x1ec44: 0x6c8fb020, 0x1ec45: 0x6d275420, 0x1ec46: 0x6cc84c20, 0x1ec47: 0x6c8e8020,
-	0x1ec48: 0x6c1e2020, 0x1ec49: 0x6c8efa20, 0x1ec4a: 0x6c8e4a20, 0x1ec4b: 0x6c8e3620,
-	0x1ec4c: 0x6c8e5020, 0x1ec4d: 0x6c8e4c20, 0x1ec4e: 0x6c8e5c20, 0x1ec4f: 0x6ca99020,
-	0x1ec50: 0x6c835420, 0x1ec51: 0x6c8f2420, 0x1ec52: 0x6c92a020, 0x1ec53: 0x6c923020,
-	0x1ec54: 0x6c94e420, 0x1ec55: 0x6c94f020, 0x1ec56: 0x6c94f420, 0x1ec57: 0x6c950e20,
-	0x1ec58: 0x6c93d020, 0x1ec59: 0x6c862e20, 0x1ec5a: 0x6c85ca20, 0x1ec5b: 0x6c93d620,
-	0x1ec5c: 0x6c8f9220, 0x1ec5d: 0x6c857620, 0x1ec5e: 0x6c856e20, 0x1ec5f: 0x6c93ae20,
-	0x1ec60: 0x6d16ba20, 0x1ec61: 0x6c87d820, 0x1ec62: 0x6c83bc20, 0x1ec63: 0x6ca5c020,
-	0x1ec64: 0x6c851420, 0x1ec65: 0x6c861220, 0x1ec66: 0x6c844a20, 0x1ec67: 0x6c852220,
-	0x1ec68: 0x6c87e220, 0x1ec69: 0x6c84fc20, 0x1ec6a: 0x6c847e20, 0x1ec6b: 0x6ca68c20,
-	0x1ec6c: 0x6ca6ac20, 0x1ec6d: 0x6c8c4420, 0x1ec6e: 0x6c8bde20, 0x1ec6f: 0x6c8be020,
-	0x1ec70: 0x6c8c7a20, 0x1ec71: 0x6c8bca20, 0x1ec72: 0x6c8c0c20, 0x1ec73: 0x6c8c1020,
-	0x1ec74: 0x6c8ba020, 0x1ec75: 0x6c8bb020, 0x1ec76: 0x6c8bea20, 0x1ec77: 0x6c856c20,
-	0x1ec78: 0x6c85f620, 0x1ec79: 0x6c85f820, 0x1ec7a: 0x6d3c3420, 0x1ec7b: 0x6d358c20,
-	0x1ec7c: 0x6cd42220, 0x1ec7d: 0x6cd03620, 0x1ec7e: 0x6c13d020, 0x1ec7f: 0x6c22b220,
-	// Block 0x7b2, offset 0x1ec80
-	0x1ec80: 0x6cbc9020, 0x1ec81: 0x6c324420, 0x1ec82: 0x6cde2e20, 0x1ec83: 0x6ce13620,
-	0x1ec84: 0x6d2d1820, 0x1ec85: 0x6c306420, 0x1ec86: 0x6c066220, 0x1ec87: 0x6c3efc20,
-	0x1ec88: 0x6d03ba20, 0x1ec89: 0x6c67d620, 0x1ec8a: 0x6c665220, 0x1ec8b: 0x6c7e0420,
-	0x1ec8c: 0x6cf49020, 0x1ec8d: 0x6c56a220, 0x1ec8e: 0x43f41c20, 0x1ec8f: 0x43f41e20,
-	0x1ec90: 0x6d37f420, 0x1ec91: 0x43f42220, 0x1ec92: 0x6cbe7a20, 0x1ec93: 0x43f42620,
-	0x1ec94: 0x43f42820, 0x1ec95: 0x6cf6b620, 0x1ec96: 0x6d399820, 0x1ec97: 0x6d173820,
-	0x1ec98: 0x6c84f420, 0x1ec99: 0x6cd03a20, 0x1ec9a: 0x6cfdbc20, 0x1ec9b: 0x6c3e9c20,
-	0x1ec9c: 0x6c6e9220, 0x1ec9d: 0x6c6dcc20, 0x1ec9e: 0x6d221c20, 0x1ec9f: 0x43f43e20,
-	0x1eca0: 0x6cc0c220, 0x1eca1: 0x43f44220, 0x1eca2: 0x6d39c620, 0x1eca3: 0x43f44620,
-	0x1eca4: 0x43f44820, 0x1eca5: 0x6d178420, 0x1eca6: 0x6c30a620, 0x1eca7: 0x43f44e20,
-	0x1eca8: 0x43f45020, 0x1eca9: 0x43f45220, 0x1ecaa: 0x6c395c20, 0x1ecab: 0x6cd8d420,
-	0x1ecac: 0x6c496820, 0x1ecad: 0x6c520c20, 0x1ecae: 0x6c80a420, 0x1ecaf: 0x6c868820,
-	0x1ecb0: 0x6cf43220, 0x1ecb1: 0x6ccbb820, 0x1ecb2: 0x6c9dfe20, 0x1ecb3: 0x6c9e0c20,
-	0x1ecb4: 0x6cbd7c20, 0x1ecb5: 0x6c068e20, 0x1ecb6: 0x6c509c20, 0x1ecb7: 0x6ce0a020,
-	0x1ecb8: 0x6cb7ce20, 0x1ecb9: 0x6cb2ec20, 0x1ecba: 0x6ca16020, 0x1ecbb: 0x6c135420,
-	0x1ecbc: 0x6c17fa20, 0x1ecbd: 0x6c5b4c20, 0x1ecbe: 0x6c765820, 0x1ecbf: 0x6d2b8a20,
-	// Block 0x7b3, offset 0x1ecc0
-	0x1ecc0: 0x6c1a5420, 0x1ecc1: 0x6c9fa820, 0x1ecc2: 0x6c61a820, 0x1ecc3: 0x6cd55a20,
-	0x1ecc4: 0x6c99ec20, 0x1ecc5: 0x6c4d3a20, 0x1ecc6: 0x6d3a6420, 0x1ecc7: 0x6c4ee620,
-	0x1ecc8: 0x6d3a6e20, 0x1ecc9: 0x6d2ff420, 0x1ecca: 0x6d423c20, 0x1eccb: 0x6c06b020,
-	0x1eccc: 0x6ccf3620, 0x1eccd: 0x6d34f820, 0x1ecce: 0x6cb58a20, 0x1eccf: 0x6d203020,
-	0x1ecd0: 0x6d411420, 0x1ecd1: 0x6d3ac620, 0x1ecd2: 0x6c5dd420, 0x1ecd3: 0x6d316e20,
-	0x1ecd4: 0x6c47c420, 0x1ecd5: 0x6ce84420, 0x1ecd6: 0x6c6af220, 0x1ecd7: 0x6c891220,
-	0x1ecd8: 0x6c6d5220, 0x1ecd9: 0x6c38ca20, 0x1ecda: 0x6cd56220, 0x1ecdb: 0x6d30d220,
-	0x1ecdc: 0x6c1e4020, 0x1ecdd: 0x6c12c020, 0x1ecde: 0x6c12c020, 0x1ecdf: 0x6d311420,
-	0x1ece0: 0x6c51d620, 0x1ece1: 0x6cd36c20, 0x1ece2: 0x6d134620, 0x1ece3: 0x6c6cc220,
-	0x1ece4: 0x6c0d4a20, 0x1ece5: 0x6d2bb620, 0x1ece6: 0x6c21a420, 0x1ece7: 0x6d178420,
-	0x1ece8: 0x6ca41420, 0x1ece9: 0x6cfe0a20, 0x1ecea: 0x6cb21420, 0x1eceb: 0x6c5baa20,
-	0x1ecec: 0x4885dc20, 0x1eced: 0x6c496420,
-	0x1ecf0: 0x6c0e0820, 0x1ecf1: 0x6c7bdc20, 0x1ecf2: 0x6cc2b220, 0x1ecf3: 0x6d03c620,
-	0x1ecf4: 0x6c1ca820, 0x1ecf5: 0x6c627020, 0x1ecf6: 0x6d1e1820, 0x1ecf7: 0x6cce9420,
-	0x1ecf8: 0x6c509c20, 0x1ecf9: 0x6ce21620, 0x1ecfa: 0x6c5bbc20, 0x1ecfb: 0x6cec3420,
-	0x1ecfc: 0x6d37f420, 0x1ecfd: 0x6c3b8420, 0x1ecfe: 0x6d0d4620, 0x1ecff: 0x6c077c20,
-	// Block 0x7b4, offset 0x1ed00
-	0x1ed00: 0x6c097420, 0x1ed01: 0x6c226820, 0x1ed02: 0x6c025020, 0x1ed03: 0x6d182220,
-	0x1ed04: 0x6c112620, 0x1ed05: 0x6d110c20, 0x1ed06: 0x6cee0e20, 0x1ed07: 0x6cd0ac20,
-	0x1ed08: 0x6d236a20, 0x1ed09: 0x6d2b8a20, 0x1ed0a: 0x6c02d820, 0x1ed0b: 0x6c1a5420,
-	0x1ed0c: 0x6c279420, 0x1ed0d: 0x6d212620, 0x1ed0e: 0x6cd9b020, 0x1ed0f: 0x6c0de620,
-	0x1ed10: 0x6c024020, 0x1ed11: 0x6cbe7a20, 0x1ed12: 0x6c80f820, 0x1ed13: 0x6cee5220,
-	0x1ed14: 0x6d2f2220, 0x1ed15: 0x6c271220, 0x1ed16: 0x6ccbda20, 0x1ed17: 0x6c8e4a20,
-	0x1ed18: 0x6d1a7020, 0x1ed19: 0x6d3e4020, 0x1ed1a: 0x6c4ee620, 0x1ed1b: 0x6c6eb420,
-	0x1ed1c: 0x6d3a6e20, 0x1ed1d: 0x6cbc0220, 0x1ed1e: 0x6c74c820, 0x1ed1f: 0x6c391620,
-	0x1ed20: 0x6d399820, 0x1ed21: 0x6d325020, 0x1ed22: 0x6c225020, 0x1ed23: 0x6c578420,
-	0x1ed24: 0x6c492220, 0x1ed25: 0x6cf16020, 0x1ed26: 0x6d173820, 0x1ed27: 0x6cd15e20,
-	0x1ed28: 0x6d344020, 0x1ed29: 0x6c736420, 0x1ed2a: 0x6d311220, 0x1ed2b: 0x6ce4ba20,
-	0x1ed2c: 0x6ce5cc20, 0x1ed2d: 0x6c6af220, 0x1ed2e: 0x6c832420, 0x1ed2f: 0x6ce1c820,
-	0x1ed30: 0x6c891220, 0x1ed31: 0x6cb2ac20, 0x1ed32: 0x6d30d220, 0x1ed33: 0x6c598420,
-	0x1ed34: 0x6c573420, 0x1ed35: 0x6d276220, 0x1ed36: 0x6cbb4c20, 0x1ed37: 0x6c407e20,
-	0x1ed38: 0x6cd36c20, 0x1ed39: 0x6c2e3820, 0x1ed3a: 0x6d39c620, 0x1ed3b: 0x6cbeb220,
-	0x1ed3c: 0x6d134620, 0x1ed3d: 0x6cab0e20, 0x1ed3e: 0x6d23f620, 0x1ed3f: 0x6c6cc220,
-	// Block 0x7b5, offset 0x1ed40
-	0x1ed40: 0x6c0bdc20, 0x1ed41: 0x6d2bb620, 0x1ed42: 0x6cd50820, 0x1ed43: 0x6c1b5020,
-	0x1ed44: 0x6cd9e620, 0x1ed45: 0x6d03f420, 0x1ed46: 0x6d3a6220, 0x1ed47: 0x6ca41420,
-	0x1ed48: 0x6c6e9220, 0x1ed49: 0x6c046220, 0x1ed4a: 0x6cfe0a20, 0x1ed4b: 0x6c35b420,
-	0x1ed4c: 0x6cb21420, 0x1ed4d: 0x6d320420, 0x1ed4e: 0x6c4a9620, 0x1ed4f: 0x48509420,
-	0x1ed50: 0x48508820, 0x1ed51: 0x4867aa20, 0x1ed52: 0x6c513820, 0x1ed53: 0x6d008620,
-	0x1ed54: 0x6c6ad220, 0x1ed55: 0x48a49220, 0x1ed56: 0x6cba2c20, 0x1ed57: 0x6c084620,
-	0x1ed58: 0x6c36f820, 0x1ed59: 0x6cad1420,
-	// Block 0x7b6, offset 0x1ed80
-	0x1ed80: 0xf0001c1c, 0x1ed81: 0xf0001c1c, 0x1ed82: 0x00658c9c,
-	0x1ed90: 0x2cd43683, 0x1ed91: 0x2d3f2883, 0x1ed92: 0x2cd6a083, 0x1ed93: 0xf0001c1c,
-	0x1ed94: 0x2c37b483, 0x1ed95: 0x2c341683, 0x1ed96: 0x2c6b9883, 0x1ed97: 0x2ce45483,
-	0x1ed98: 0x2c682283, 0x1ed99: 0x2d1d3483, 0x1ed9a: 0x2cf3c883, 0x1ed9b: 0x2c8a9483,
-	0x1ed9c: 0x2cb97883, 0x1ed9d: 0x2c546483, 0x1ed9e: 0x2d292683, 0x1ed9f: 0x2d02dc83,
-	0x1eda0: 0x2c1e5483, 0x1eda1: 0x2d37b683, 0x1eda2: 0x2cd0d283, 0x1eda3: 0x2c395083,
-	0x1eda4: 0x2cd0dc83, 0x1eda5: 0x2c20b483, 0x1eda6: 0x2d0db483, 0x1eda7: 0x2ce7e683,
-	0x1eda8: 0x2c103683, 0x1eda9: 0x2d13b683, 0x1edaa: 0x2cc9f283, 0x1edab: 0x2d1f4083,
-	0x1edac: 0x2d426083, 0x1edad: 0x2d378283, 0x1edae: 0x2d200883, 0x1edaf: 0x2d350083,
-	0x1edb0: 0x2d407e83, 0x1edb1: 0x2c26e083, 0x1edb2: 0x2c6d1a83, 0x1edb3: 0x2c796883,
-	0x1edb4: 0x2c50b683, 0x1edb5: 0x2c97ba83, 0x1edb6: 0x2d1f9883, 0x1edb7: 0x2d266883,
-	0x1edb8: 0x2ccf9a83, 0x1edb9: 0x2c438c83, 0x1edba: 0x2d1c6283,
-	// Block 0x7b7, offset 0x1edc0
-	0x1edc0: 0xe000b021, 0x1edc1: 0xe000b035, 0x1edc2: 0xe000b031, 0x1edc3: 0xe000b019,
-	0x1edc4: 0xe000b02d, 0x1edc5: 0xe000b025, 0x1edc6: 0xe000b029, 0x1edc7: 0xe000b039,
-	0x1edc8: 0xe000b01d,
-	0x1edd0: 0x2c2a9083, 0x1edd1: 0x2c785283,
-	// Block 0x7b8, offset 0x1ee00
-	0x1ee00: 0x6c508820, 0x1ee01: 0x6cb4c820, 0x1ee03: 0x6cbc8c20,
-	0x1ee05: 0x6c4d4c20,
-	0x1ee09: 0x6cbf9020, 0x1ee0a: 0x6c126420,
-	0x1ee0d: 0x6cd2ec20,
-	0x1ee13: 0x6cd7ba20,
-	0x1ee14: 0x6c73ca20,
-	0x1ee1b: 0x6d22c020,
-	0x1ee1d: 0x6c796620,
-	0x1ee22: 0x6d3dfc20,
-	0x1ee26: 0x6d03be20,
-	0x1ee31: 0x6ca1fc20,
-	0x1ee37: 0x6c5e9420,
-	0x1ee38: 0x6d12d220, 0x1ee39: 0x6c755e20,
-	0x1ee3c: 0x6cb97c20, 0x1ee3d: 0x6c922420,
-	// Block 0x7b9, offset 0x1ee40
-	0x1ee49: 0x6c1e5e20,
-	0x1ee57: 0x6cd3d420,
-	0x1ee60: 0x6cbd0220,
-	0x1ee65: 0x6c40ce20,
-	0x1ee6d: 0x6cb58e20,
-	0x1ee77: 0x6c15c420,
-	// Block 0x7ba, offset 0x1ee80
-	0x1ee84: 0x6c582a20, 0x1ee86: 0x6d163620, 0x1ee87: 0x6d425e20,
-	0x1ee88: 0x6c6a4a20,
-	0x1ee91: 0x6d404420,
-	0x1ee94: 0x6d3ed420,
-	0x1ee9f: 0x6c6c2020,
-	0x1eea2: 0x6cac1620,
-	0x1eea4: 0x6c32ee20, 0x1eea5: 0x6c238220, 0x1eea7: 0x6cd08e20,
-	0x1eeb8: 0x6c59aa20,
-	// Block 0x7bb, offset 0x1eec0
-	0x1eeca: 0x6d1abe20,
-	0x1eecc: 0x6c4bb820,
-	0x1eed6: 0x6c6f3a20,
-	0x1eeeb: 0x6ccfa220,
-	0x1eefa: 0x6c6fe220,
-	// Block 0x7bc, offset 0x1ef00
-	0x1ef05: 0x6d130c20,
-	0x1ef09: 0x6c308c20,
-	0x1ef0c: 0x6c73c020, 0x1ef0d: 0x6c6a4c20, 0x1ef0f: 0x6c2df020,
-	0x1ef11: 0x6c73c220, 0x1ef12: 0x6c20ba20,
-	0x1ef16: 0x6c8c9820,
-	0x1ef1a: 0x6ce63e20,
-	0x1ef23: 0x6c44aa20,
-	0x1ef2e: 0x6d0b7e20,
-	0x1ef31: 0x6d148020,
-	0x1ef3f: 0x6cef1c20,
-	// Block 0x7bd, offset 0x1ef40
-	0x1ef42: 0x6c6a5820,
-	0x1ef4c: 0x6d146a20,
-	0x1ef57: 0x6c2f3220,
-	0x1ef5a: 0x6cb59a20,
-	0x1ef6c: 0x6c05b020,
-	0x1ef71: 0x6d01a620,
-	0x1ef79: 0x6d2f3220,
-	// Block 0x7be, offset 0x1ef80
-	0x1ef8c: 0x6d1daa20,
-	0x1ef90: 0x6d073820,
-	0x1ef99: 0x6c2f3820, 0x1ef9b: 0x6c280820,
-	0x1ef9f: 0x6cf06220,
-	0x1efa3: 0x6c488620,
-	0x1efa9: 0x6c391220,
-	0x1efae: 0x6ca0ba20,
-	0x1efb1: 0x6cf56220, 0x1efb2: 0x6d0d3220,
-	0x1efb5: 0x6ca5b820, 0x1efb6: 0x6c286020,
-	// Block 0x7bf, offset 0x1efc0
-	0x1efcb: 0x6c281a20,
-	0x1efcf: 0x6ce1ac20,
-	0x1efd2: 0x6c455620,
-	0x1efd7: 0x6c7abc20,
-	0x1efd8: 0x6c1f0420,
-	0x1efef: 0x6cc25e20,
-	0x1eff1: 0x6ca0be20, 0x1eff3: 0x6cd19220,
-	0x1eff5: 0x6c41c620, 0x1eff7: 0x6cd0d820,
-	// Block 0x7c0, offset 0x1f000
-	0x1f001: 0x6ceaa020,
-	0x1f005: 0x6cd42c20,
-	0x1f00a: 0x6ca7e620,
-	0x1f024: 0x6d281a20, 0x1f025: 0x6c489220,
-	0x1f02c: 0x6cfe7e20, 0x1f02d: 0x6c814420,
-	0x1f030: 0x6c286e20, 0x1f031: 0x6cdd0620,
-	0x1f035: 0x6c988420, 0x1f036: 0x6d148220,
-	0x1f038: 0x6ce26e20, 0x1f03a: 0x6c094020,
-	// Block 0x7c1, offset 0x1f040
-	0x1f042: 0x6cde3020,
-	0x1f057: 0x6c95e420,
-	0x1f062: 0x6cf7d220, 0x1f063: 0x6c5cb820,
-	0x1f064: 0x6c268e20, 0x1f067: 0x6c722420,
-	0x1f069: 0x6c318c20,
-	0x1f06c: 0x6c017c20,
-	// Block 0x7c2, offset 0x1f080
-	0x1f089: 0x6c9a8820,
-	0x1f08c: 0x6cc46c20, 0x1f08e: 0x6c003820, 0x1f08f: 0x6d22ec20,
-	0x1f092: 0x6c666620,
-	0x1f094: 0x6cb76620,
-	0x1f09f: 0x6c9fa220,
-	0x1f0a3: 0x6d391620,
-	0x1f0a4: 0x6d35ac20, 0x1f0a5: 0x6d37ea20, 0x1f0a6: 0x6ca4e220, 0x1f0a7: 0x6c0e1a20,
-	0x1f0a9: 0x6d3bc020, 0x1f0aa: 0x6cd5be20, 0x1f0ab: 0x6d0a8420,
-	0x1f0ac: 0x6c741e20, 0x1f0ad: 0x6cb9fe20,
-	0x1f0b0: 0x6c489a20, 0x1f0b2: 0x6ce85220,
-	0x1f0b6: 0x6d1d3820, 0x1f0b7: 0x6d35d620,
-	0x1f0be: 0x6c7c6620,
-	// Block 0x7c3, offset 0x1f0c0
-	0x1f0c6: 0x6c192620,
-	0x1f0d6: 0x6c88ec20, 0x1f0d7: 0x6d0ae620,
-	0x1f0dc: 0x6c4ce820, 0x1f0dd: 0x6c9e8e20, 0x1f0de: 0x6ccf0e20, 0x1f0df: 0x6d223620,
-	0x1f0e1: 0x6cd8b020, 0x1f0e2: 0x6cda1220,
-	0x1f0e4: 0x6d35d820, 0x1f0e7: 0x6cbc7c20,
-	0x1f0e9: 0x6c3fde20,
-	0x1f0ec: 0x6c710a20, 0x1f0ed: 0x6c071e20, 0x1f0ef: 0x6c099220,
-	0x1f0f2: 0x6cdd6220,
-	0x1f0f5: 0x6cba0820, 0x1f0f6: 0x6ca03220, 0x1f0f7: 0x6c15b620,
-	0x1f0fa: 0x6ccaa820, 0x1f0fb: 0x6c5ec020,
-	// Block 0x7c4, offset 0x1f100
-	0x1f115: 0x6c461620, 0x1f116: 0x6cbf1e20,
-	0x1f11a: 0x6cc73820,
-	0x1f11e: 0x6cda1a20, 0x1f11f: 0x6cda1e20,
-	0x1f120: 0x6d10f420,
-	0x1f12a: 0x6c1d6a20,
-	0x1f12d: 0x6cd66620, 0x1f12e: 0x6d2ffa20, 0x1f12f: 0x6c862420,
-	0x1f130: 0x6c413e20, 0x1f131: 0x6cdbc620, 0x1f132: 0x6d2d7c20,
-	0x1f134: 0x6d3c4220,
-	0x1f13d: 0x6c400820,
-	// Block 0x7c5, offset 0x1f140
-	0x1f143: 0x6c5ee020,
-	0x1f144: 0x6c30b220,
-	0x1f157: 0x6c5bd020,
-	0x1f15a: 0x6c65a420, 0x1f15b: 0x6d0d9c20,
-	0x1f15c: 0x6d364a20,
-	0x1f168: 0x6c9a5c20, 0x1f169: 0x6d120e20, 0x1f16a: 0x6c2b3220, 0x1f16b: 0x6d150e20,
-	0x1f16f: 0x6c0cf220,
-	0x1f172: 0x6cc1a220, 0x1f173: 0x6d181a20,
-	0x1f175: 0x6d105420,
-	0x1f179: 0x6d2c3e20,
-	0x1f17d: 0x6ccc6020,
-	// Block 0x7c6, offset 0x1f180
-	0x1f199: 0x6c7f1820,
-	0x1f1ae: 0x6c746e20,
-	0x1f1b0: 0x6cb50620, 0x1f1b3: 0x6d216a20,
-	0x1f1b6: 0x6d291820, 0x1f1b7: 0x6cc98220,
-	0x1f1b8: 0x6ccb3a20, 0x1f1bb: 0x6c340420,
-	0x1f1bf: 0x6c6b9e20,
-	// Block 0x7c7, offset 0x1f1c0
-	0x1f1c0: 0x6c782020, 0x1f1c3: 0x6d265420,
-	0x1f1c7: 0x6c65ca20,
-	0x1f1c8: 0x6d113220,
-	0x1f1d3: 0x6cfaca20,
-	0x1f1d5: 0x6d000220, 0x1f1d6: 0x6cbb9620,
-	0x1f1da: 0x6d23b820, 0x1f1db: 0x6cc1ae20,
-	0x1f1e1: 0x6cfac820, 0x1f1e2: 0x6c962020,
-	0x1f1e4: 0x6c4a0a20, 0x1f1e7: 0x6c198620,
-	0x1f1e8: 0x6c209620, 0x1f1e9: 0x6d155620, 0x1f1eb: 0x6d333020,
-	0x1f1ed: 0x6d403020, 0x1f1ee: 0x6c335c20,
-	0x1f1f0: 0x6d2d3420,
-	0x1f1ff: 0x6c3a6e20,
-	// Block 0x7c8, offset 0x1f200
-	0x1f200: 0x6d155820, 0x1f201: 0x6c9b4420,
-	0x1f208: 0x6c0b0a20, 0x1f209: 0x6c6b4020, 0x1f20a: 0x6cd61820, 0x1f20b: 0x6c8a2220,
-	0x1f20c: 0x6c08fa20, 0x1f20d: 0x6cda7620,
-	0x1f211: 0x6c2ca220,
-	0x1f221: 0x6c076220, 0x1f222: 0x6cf21220,
-	0x1f227: 0x6c9b6a20,
-	0x1f229: 0x6c15ea20,
-	0x1f235: 0x6c29f620,
-	0x1f23a: 0x6cb21c20, 0x1f23b: 0x6c660820,
-	0x1f23c: 0x6c8c7420, 0x1f23d: 0x6c4b9220, 0x1f23e: 0x6cb54620, 0x1f23f: 0x6c52dc20,
-	// Block 0x7c9, offset 0x1f240
-	0x1f243: 0x6c60e820,
-	0x1f244: 0x6d024e20, 0x1f245: 0x6d330820, 0x1f246: 0x6c15fa20,
-	0x1f250: 0x6d116c20, 0x1f251: 0x6c160a20,
-	0x1f258: 0x6c2cee20, 0x1f259: 0x6c1d6020, 0x1f25a: 0x6ca56220, 0x1f25b: 0x6ca56420,
-	0x1f25e: 0x6d2d5420, 0x1f25f: 0x6c0b1e20,
-	0x1f261: 0x6c161020,
-	0x1f26a: 0x6cff5a20,
-	0x1f26f: 0x6c248620,
-	0x1f270: 0x6d02f620, 0x1f271: 0x6c6e4420, 0x1f272: 0x6cb96620,
-	0x1f274: 0x6cbe6820,
-	0x1f279: 0x6c475220,
-	// Block 0x7ca, offset 0x1f280
-	0x1f284: 0x6cf4b420,
-	0x1f29c: 0x6d25e420, 0x1f29d: 0x6c0dde20,
-	0x1f2a2: 0x6cecde20,
-	0x1f2b0: 0x6ca7a620,
-	0x1f2b5: 0x6c891020,
-	0x1f2b8: 0x6cc53e20,
-	0x1f2be: 0x6c396e20, 0x1f2bf: 0x6c2b9420,
-	// Block 0x7cb, offset 0x1f2c0
-	0x1f2ca: 0x6c5af820, 0x1f2cb: 0x6d190620,
-	0x1f2cc: 0x6cfbbc20,
-	0x1f2d6: 0x6c800420, 0x1f2d7: 0x6c40a020,
-	0x1f2d9: 0x6d04ae20,
-	0x1f2dc: 0x6c897e20, 0x1f2dd: 0x6ce1a620, 0x1f2de: 0x6c5fba20,
-	0x1f2e2: 0x6c6ba620, 0x1f2e3: 0x6d2c1a20,
-	0x1f2e4: 0x6cd19420,
-	0x1f2ea: 0x6cb59220, 0x1f2eb: 0x6c0b2c20,
-	0x1f2ed: 0x6c802220, 0x1f2ee: 0x6c8c1a20,
-	0x1f2f6: 0x6d364c20, 0x1f2f7: 0x6c09bc20,
-	0x1f2f8: 0x6cd17020,
-	0x1f2fd: 0x6cd17a20, 0x1f2ff: 0x6cbdbc20,
-	// Block 0x7cc, offset 0x1f300
-	0x1f302: 0x6c0be620, 0x1f303: 0x6cf55e20,
-	0x1f309: 0x6c733a20, 0x1f30b: 0x6c5e8420,
-	0x1f30d: 0x6cf57620, 0x1f30e: 0x6cbdc420,
-	0x1f311: 0x6c4d5620,
-	0x1f315: 0x6c94e220,
-	0x1f320: 0x6d26b420,
-	0x1f328: 0x6c880a20,
-	0x1f32f: 0x6c048e20,
-	0x1f332: 0x6c526820,
-	0x1f336: 0x6cb54020,
-	0x1f33a: 0x6cb93820, 0x1f33b: 0x6d337820,
-	0x1f33c: 0x6c991a20,
-	// Block 0x7cd, offset 0x1f340
-	0x1f341: 0x6c238020,
-	0x1f344: 0x6ca30020,
-	0x1f34a: 0x6ce6a820,
-	0x1f34c: 0x6d3f6e20,
-	0x1f355: 0x6c6ed420, 0x1f356: 0x6d2f8620,
-	0x1f35f: 0x6ca71c20,
-	0x1f360: 0x6c19e420, 0x1f363: 0x6cb86620,
-	0x1f366: 0x6d236420, 0x1f367: 0x6c690020,
-	0x1f36d: 0x6d2fda20,
-	0x1f373: 0x6c2b5020,
-	0x1f374: 0x6c6f3c20,
-	0x1f378: 0x6cdc0a20, 0x1f37b: 0x6d108220,
-	0x1f37f: 0x6cedbe20,
-	// Block 0x7ce, offset 0x1f380
-	0x1f382: 0x6c89d820,
-	0x1f384: 0x6ce71220, 0x1f386: 0x6c9bfc20,
-	0x1f38b: 0x6d1faa20,
-	0x1f393: 0x6cd7e020,
-	0x1f39b: 0x6c910820,
-	0x1f39f: 0x6d19f820,
-	0x1f3a5: 0x6c1d4420,
-	0x1f3ab: 0x6c420020,
-	0x1f3ac: 0x6c6f3820,
-	0x1f3b6: 0x6cbdf820, 0x1f3b7: 0x6c6ef220,
-	0x1f3b9: 0x6d006e20,
-	// Block 0x7cf, offset 0x1f3c0
-	0x1f3c2: 0x6c51b820,
-	0x1f3c6: 0x6ce1ae20,
-	0x1f3c8: 0x6cc01220, 0x1f3c9: 0x6d007420, 0x1f3ca: 0x6c6e5420, 0x1f3cb: 0x6ca71620,
-	0x1f3cc: 0x6c6e5620, 0x1f3cf: 0x6c5fea20,
-	0x1f3d8: 0x6ce4de20, 0x1f3da: 0x6c252220, 0x1f3db: 0x6c2e7c20,
-	0x1f3dd: 0x6cbea020,
-	0x1f3e5: 0x6cb2e620, 0x1f3e6: 0x6cb29620,
-	0x1f3e8: 0x6c2e9020, 0x1f3e9: 0x6c910420,
-	0x1f3f3: 0x6c88ba20,
-	0x1f3f4: 0x6c4e0a20, 0x1f3f5: 0x6cacd620, 0x1f3f6: 0x6ce0f020,
-	0x1f3fa: 0x6d151020, 0x1f3fb: 0x6d081420,
-	0x1f3fc: 0x6cddca20, 0x1f3fd: 0x6c8e6420, 0x1f3fe: 0x6cd6d220, 0x1f3ff: 0x6cd0a820,
-	// Block 0x7d0, offset 0x1f400
-	0x1f401: 0x6c10a020, 0x1f402: 0x6cd9bc20,
-	0x1f405: 0x6cbd8c20, 0x1f406: 0x6cd06620,
-	0x1f40a: 0x6ca9f420, 0x1f40b: 0x6ce6de20,
-	0x1f40c: 0x6c677020,
-	0x1f415: 0x6cf6b820, 0x1f416: 0x6d36fe20,
-	0x1f41d: 0x6c7f5e20, 0x1f41e: 0x6c86be20, 0x1f41f: 0x6c86c020,
-	0x1f422: 0x6c519420, 0x1f423: 0x6c69cc20,
-	0x1f425: 0x6d0d0a20, 0x1f427: 0x6cd49420,
-	0x1f42a: 0x6cd2a220,
-	0x1f431: 0x6d31ae20, 0x1f433: 0x6d1e8620,
-	0x1f43a: 0x6cddc620, 0x1f43b: 0x6cf39e20,
-	// Block 0x7d1, offset 0x1f440
-	0x1f441: 0x6c169620, 0x1f442: 0x6c238820,
-	0x1f446: 0x6c720820,
-	0x1f44e: 0x6cd4a420,
-	0x1f454: 0x6c6fe620, 0x1f455: 0x6ceef020,
-	0x1f45e: 0x6c5db620,
-	0x1f464: 0x6c6a2020,
-	0x1f46c: 0x6d2a4e20,
-	0x1f476: 0x6cab7220,
-	0x1f47c: 0x6c488c20,
-	// Block 0x7d2, offset 0x1f480
-	0x1f483: 0x6c4fba20,
-	0x1f484: 0x6c84f620, 0x1f485: 0x6d356c20, 0x1f486: 0x6cfc7220,
-	0x1f489: 0x6c100c20, 0x1f48a: 0x6c170020,
-	0x1f493: 0x6d274a20,
-	0x1f494: 0x6c510020,
-	0x1f49c: 0x6ce1e420,
-	0x1f4a0: 0x6c0c4a20,
-	0x1f4a5: 0x6c2da420, 0x1f4a7: 0x6c37b620,
-	0x1f4a8: 0x6c6f3e20,
-	0x1f4ad: 0x6c2c0a20, 0x1f4ae: 0x6d164420, 0x1f4af: 0x6c7d4620,
-	0x1f4b1: 0x6d300a20, 0x1f4b3: 0x6c7de420,
-	0x1f4b4: 0x6d384e20, 0x1f4b5: 0x6c71ee20,
-	0x1f4b9: 0x6ccd6820, 0x1f4ba: 0x6ccc3820, 0x1f4bb: 0x6c2da820,
-	0x1f4bc: 0x6c046c20, 0x1f4bd: 0x6c5e7420,
-	// Block 0x7d3, offset 0x1f4c0
-	0x1f4c0: 0x6d378620, 0x1f4c3: 0x6d144e20,
-	0x1f4c5: 0x6c79b020, 0x1f4c6: 0x6cf33e20,
-	0x1f4ca: 0x6c436420, 0x1f4cb: 0x6c031220,
-	0x1f4ce: 0x6c463620,
-	0x1f4d1: 0x6cfb2420, 0x1f4d2: 0x6c484020, 0x1f4d3: 0x6c8ef620,
-	0x1f4d4: 0x6c1b7620, 0x1f4d5: 0x6c48c020, 0x1f4d6: 0x6c1fdc20,
-	0x1f4d8: 0x6c83a020, 0x1f4d9: 0x6c242a20, 0x1f4da: 0x6cd63e20,
-	0x1f4e1: 0x6c08b620,
-	0x1f4e5: 0x6c0dbc20, 0x1f4e6: 0x6c857820,
-	0x1f4e9: 0x6c6fae20, 0x1f4ea: 0x6ce54a20, 0x1f4eb: 0x6c347220,
-	0x1f4ed: 0x6d0bde20, 0x1f4ee: 0x6cc28a20,
-	0x1f4f1: 0x6c8ac820, 0x1f4f3: 0x6c787c20,
-	0x1f4f5: 0x6c449620, 0x1f4f6: 0x6d312420,
-	0x1f4f8: 0x6c3b5820,
-	// Block 0x7d4, offset 0x1f500
-	0x1f501: 0x6d146e20, 0x1f503: 0x6c6fd220,
-	0x1f504: 0x6d067c20, 0x1f505: 0x6c68cc20,
-	0x1f508: 0x6c93cc20, 0x1f509: 0x6c6fb020, 0x1f50b: 0x6c1e1e20,
-	0x1f50e: 0x6cfc7e20,
-	0x1f510: 0x6c7b1620, 0x1f511: 0x6c333e20,
-	0x1f516: 0x6c952e20, 0x1f517: 0x6cf59a20,
-	0x1f518: 0x6cbe0820, 0x1f519: 0x6c107420,
-	0x1f524: 0x6cb84620,
-	0x1f531: 0x6caf5020, 0x1f532: 0x6d0adc20, 0x1f533: 0x6c07da20,
-	0x1f534: 0x6c4cb220, 0x1f535: 0x6c484c20,
-	0x1f539: 0x6c710020,
-	0x1f53c: 0x6cb82420, 0x1f53e: 0x6c741020,
-	// Block 0x7d5, offset 0x1f540
-	0x1f544: 0x6c85c020,
-	0x1f550: 0x6c570c20, 0x1f551: 0x6c683c20,
-	0x1f558: 0x6cb84e20, 0x1f55a: 0x6d2c2620, 0x1f55b: 0x6cb82620,
-	0x1f55d: 0x6d304620, 0x1f55e: 0x6c139020, 0x1f55f: 0x6d1ce820,
-	0x1f562: 0x6d0bee20,
-	0x1f564: 0x6c1cc020,
-	0x1f568: 0x6c1b9a20, 0x1f56a: 0x6cec8620,
-	0x1f56c: 0x6cd9a620,
-	0x1f572: 0x6c76cc20, 0x1f573: 0x6d255c20,
-	0x1f57d: 0x6c1d9c20, 0x1f57f: 0x6cdd6420,
-	// Block 0x7d6, offset 0x1f580
-	0x1f580: 0x6ce85820, 0x1f583: 0x6d305620,
-	0x1f584: 0x6ce2ee20, 0x1f586: 0x6cf36820,
-	0x1f588: 0x6c264a20, 0x1f589: 0x6c860820, 0x1f58a: 0x6c139420,
-	0x1f595: 0x6cc66e20, 0x1f596: 0x6c461820, 0x1f597: 0x6cc3bc20,
-	0x1f599: 0x6c83ce20,
-	0x1f59e: 0x6ce1c620,
-	0x1f5a4: 0x6c860a20, 0x1f5a7: 0x6c9c5c20,
-	0x1f5a9: 0x6c1c3020,
-	0x1f5ac: 0x6c4bfa20, 0x1f5ad: 0x6c909420, 0x1f5ae: 0x6c209020, 0x1f5af: 0x6cdd6e20,
-	0x1f5b0: 0x6c690420, 0x1f5b1: 0x6c6d0c20,
-	0x1f5b5: 0x6c381620, 0x1f5b6: 0x6d2cf620,
-	0x1f5be: 0x6c6d0e20, 0x1f5bf: 0x6c254220,
-	// Block 0x7d7, offset 0x1f5c0
-	0x1f5c2: 0x6c136c20, 0x1f5c3: 0x6d420820,
-	0x1f5c5: 0x6d2fc420,
-	0x1f5c8: 0x6cb1c620, 0x1f5c9: 0x6d2dfc20, 0x1f5ca: 0x6cf66420, 0x1f5cb: 0x6d121420,
-	0x1f5cc: 0x6c3f7420, 0x1f5cd: 0x6c1cce20,
-	0x1f5d3: 0x6c254a20,
-	0x1f5d7: 0x6c486820,
-	0x1f5e3: 0x6c5f0020,
-	0x1f5e6: 0x6ccb3c20, 0x1f5e7: 0x6d2d8e20,
-	0x1f5e8: 0x6c8e2420, 0x1f5e9: 0x6ccb3e20, 0x1f5ea: 0x6d132220,
-	0x1f5f0: 0x6c70ba20,
-	0x1f5f6: 0x6ce87220,
-	0x1f5fa: 0x6cc7c620, 0x1f5fb: 0x6d2af820,
-	0x1f5fc: 0x6c589020,
-	// Block 0x7d8, offset 0x1f600
-	0x1f601: 0x6cfc2820, 0x1f603: 0x6cb91a20,
-	0x1f604: 0x6d2fdc20,
-	0x1f60b: 0x6c11b220,
-	0x1f60e: 0x6c7e1820, 0x1f60f: 0x6c869a20,
-	0x1f610: 0x6cc76420,
-	0x1f614: 0x6c31c020, 0x1f617: 0x6c8b3020,
-	0x1f61c: 0x6d1c0620, 0x1f61d: 0x6c86c220,
-	0x1f620: 0x6c31c620, 0x1f622: 0x6c8d8020,
-	0x1f62a: 0x6ceca220,
-	0x1f62f: 0x6c2f1820,
-	0x1f633: 0x6c6f4020,
-	0x1f635: 0x6c855e20, 0x1f636: 0x6c7a1620, 0x1f637: 0x6c791e20,
-	0x1f639: 0x6d31b220,
-	// Block 0x7d9, offset 0x1f640
-	0x1f640: 0x6c51b420, 0x1f642: 0x6c091220,
-	0x1f644: 0x6caf2820,
-	0x1f64a: 0x6c4f4820,
-	0x1f651: 0x6d3d2820, 0x1f652: 0x6c332020,
-	0x1f654: 0x6d16a420,
-	0x1f65c: 0x6c787e20, 0x1f65d: 0x6d16a620, 0x1f65e: 0x6ca0dc20,
-	0x1f661: 0x6c118a20, 0x1f663: 0x6c44ee20,
-	0x1f664: 0x6c788820, 0x1f665: 0x6cd32a20,
-	0x1f66d: 0x6c8cc620, 0x1f66e: 0x6c07dc20,
-	0x1f671: 0x6c32b820,
-	0x1f676: 0x6c72e020, 0x1f677: 0x6ca4e420,
-	0x1f678: 0x6d3f0020, 0x1f67b: 0x6d401e20,
-	// Block 0x7da, offset 0x1f680
-	0x1f683: 0x6ce0ea20,
-	0x1f686: 0x6cf9be20, 0x1f687: 0x6c4ec020,
-	0x1f68c: 0x6c94a620, 0x1f68d: 0x6cb99020,
-	0x1f693: 0x6ca12220,
-	0x1f694: 0x6cab3a20, 0x1f695: 0x6c4fc820,
-	0x1f699: 0x6d2c3420, 0x1f69a: 0x6c737020, 0x1f69b: 0x6c23a020,
-	0x1f6a0: 0x6c864420, 0x1f6a1: 0x6d2c4020, 0x1f6a2: 0x6d1fdc20, 0x1f6a3: 0x6c2d6c20,
-	0x1f6a4: 0x6c747820, 0x1f6a5: 0x6c073a20,
-	0x1f6a9: 0x6d11bc20, 0x1f6aa: 0x6cb1c820,
-	0x1f6b1: 0x6c6d3620, 0x1f6b2: 0x6c766c20, 0x1f6b3: 0x6ccb4020,
-	0x1f6b4: 0x6d102c20, 0x1f6b5: 0x6c6d3820,
-	0x1f6b9: 0x6c78dc20,
-	// Block 0x7db, offset 0x1f6c0
-	0x1f6c4: 0x6c14de20, 0x1f6c7: 0x6ca74a20,
-	0x1f6c9: 0x6cedb020, 0x1f6ca: 0x6c942a20,
-	0x1f6d0: 0x6d277a20, 0x1f6d1: 0x6d108420, 0x1f6d2: 0x6c05a020,
-	0x1f6d5: 0x6c755220, 0x1f6d6: 0x6d07fc20,
-	0x1f6d8: 0x6d385820,
-	0x1f6e0: 0x6c7ce820, 0x1f6e1: 0x6c3cda20,
-	0x1f6ea: 0x6cc17e20, 0x1f6eb: 0x6ccecc20,
-	0x1f6ec: 0x6cdce420,
-	0x1f6f0: 0x6c316820, 0x1f6f2: 0x6c7af820, 0x1f6f3: 0x6cad8c20,
-	0x1f6fa: 0x6c065020,
-	0x1f6fe: 0x6c401620, 0x1f6ff: 0x6c700c20,
-	// Block 0x7dc, offset 0x1f700
-	0x1f700: 0x6cc47c20,
-	0x1f704: 0x6c70ca20,
-	0x1f70a: 0x6cbf6a20,
-	0x1f70d: 0x6d38c220, 0x1f70e: 0x6c577420, 0x1f70f: 0x6c05e020,
-	0x1f715: 0x6d145c20, 0x1f717: 0x6d148420,
-	0x1f718: 0x6d148620,
-	0x1f71d: 0x6c995020,
-	0x1f726: 0x6cc86c20,
-	0x1f72b: 0x6c227c20,
-	0x1f72e: 0x6c4dca20,
-	0x1f730: 0x6c238420,
-	0x1f734: 0x6cf83a20,
-	0x1f739: 0x6cc2b820, 0x1f73a: 0x6ce56c20,
-	0x1f73c: 0x6c2e0c20, 0x1f73e: 0x6c4ddc20,
-	// Block 0x7dd, offset 0x1f740
-	0x1f747: 0x6d12a620,
-	0x1f74d: 0x6c353420, 0x1f74e: 0x6ceef820,
-	0x1f750: 0x6c122e20, 0x1f751: 0x6c2e2620,
-	0x1f755: 0x6c362620, 0x1f756: 0x6c2c6820,
-	0x1f758: 0x6cdb9220, 0x1f759: 0x6cc30a20,
-	0x1f75c: 0x6c368020, 0x1f75d: 0x6cab4420, 0x1f75e: 0x6d081c20,
-	0x1f762: 0x6cf47820,
-	0x1f766: 0x6d190820,
-	0x1f768: 0x6ca1fa20,
-	0x1f770: 0x6c549620,
-	0x1f774: 0x6c4dde20,
-	0x1f77f: 0x6cd22820,
-	// Block 0x7de, offset 0x1f780
-	0x1f783: 0x6cc96420,
-	0x1f788: 0x6c090820, 0x1f78a: 0x6c4dcc20, 0x1f78b: 0x6c6e4620,
-	0x1f78e: 0x6cbdfa20, 0x1f78f: 0x6c25d420,
-	0x1f790: 0x6c22a620, 0x1f792: 0x6c046e20,
-	0x1f797: 0x6c32f020,
-	0x1f79c: 0x6cf84220,
-	0x1f7a7: 0x6d33c020,
-	0x1f7a8: 0x6c949220, 0x1f7aa: 0x6c54b620, 0x1f7ab: 0x6c601420,
-	0x1f7ac: 0x6c48c820,
-	0x1f7b2: 0x6cacd820,
-	// Block 0x7df, offset 0x1f7c0
-	0x1f7c0: 0x6d39c220,
-	0x1f7c5: 0x6c08fc20, 0x1f7c7: 0x6d21ae20,
-	0x1f7d2: 0x6cb6c220,
-	0x1f7d5: 0x6c50b420, 0x1f7d6: 0x6c1ed420,
-	0x1f7d9: 0x6ccec220, 0x1f7da: 0x6c1be020, 0x1f7db: 0x6c0eac20,
-	0x1f7df: 0x6cc62420,
-	0x1f7e0: 0x6d1ef820,
-	0x1f7e4: 0x6ca39620,
-	0x1f7e9: 0x6c5b9420, 0x1f7ea: 0x6ce57620, 0x1f7eb: 0x6c04c220,
-	0x1f7f0: 0x6d057620,
-	0x1f7f4: 0x6d1f1020, 0x1f7f5: 0x6c1c0620,
-	0x1f7ff: 0x6c526220,
-	// Block 0x7e0, offset 0x1f800
-	0x1f803: 0x6cec7020,
-	0x1f806: 0x6d01ce20,
-	0x1f80a: 0x6c748c20,
-	0x1f80c: 0x6cdbec20, 0x1f80d: 0x6cbe2c20, 0x1f80e: 0x6d3bbc20,
-	0x1f815: 0x6c617620,
-	0x1f818: 0x6c091420, 0x1f81a: 0x6cf59c20,
-	0x1f820: 0x6c602820, 0x1f822: 0x6c75c620,
-	0x1f825: 0x6c89ee20, 0x1f826: 0x6d1eb620,
-	0x1f82d: 0x6c70ea20,
-	0x1f832: 0x6d266a20,
-	0x1f835: 0x6c055e20,
-	0x1f838: 0x6cafaa20, 0x1f83b: 0x6d2b3820,
-	0x1f83e: 0x6d165820, 0x1f83f: 0x6c2bc820,
-	// Block 0x7e1, offset 0x1f840
-	0x1f842: 0x6cbc9220,
-	0x1f844: 0x6cdd4c20, 0x1f846: 0x6c22ae20,
-	0x1f848: 0x6d3aa220, 0x1f849: 0x6d267420,
-	0x1f84f: 0x6c682820,
-	0x1f854: 0x6cd23e20, 0x1f857: 0x6d148820,
-	0x1f858: 0x6cf99220,
-	0x1f860: 0x6d254220,
-	0x1f865: 0x6c4c6020, 0x1f867: 0x6c789020,
-	0x1f86a: 0x6c252420, 0x1f86b: 0x6d171a20,
-	0x1f875: 0x6c85c220, 0x1f877: 0x6c2d0c20,
-	0x1f87a: 0x6cf5d620,
-	0x1f87f: 0x6c09c020,
-	// Block 0x7e2, offset 0x1f880
-	0x1f882: 0x6c0b3420, 0x1f883: 0x6c99ea20,
-	0x1f884: 0x6c85e420, 0x1f887: 0x6cda1820,
-	0x1f890: 0x6c8e5620, 0x1f891: 0x6c4b5420, 0x1f892: 0x6c78b620,
-	0x1f897: 0x6d151220,
-	0x1f899: 0x6cf7f620, 0x1f89a: 0x6d1a7c20,
-	0x1f89f: 0x6c78c020,
-	0x1f8a3: 0x6ccf6020,
-	0x1f8a7: 0x6cf2bc20,
-	0x1f8ae: 0x6cb0b620,
-	0x1f8b6: 0x6d26dc20, 0x1f8b7: 0x6c538020,
-	0x1f8ba: 0x6c867220, 0x1f8bb: 0x6c405020,
-	// Block 0x7e3, offset 0x1f8c0
-	0x1f8c3: 0x6c74d620,
-	0x1f8c4: 0x6cfae820,
-	0x1f8c9: 0x6c2cf020,
-	0x1f8cc: 0x6c878820,
-	0x1f8d3: 0x6ce83420,
-	0x1f8d8: 0x6c645820, 0x1f8db: 0x6c041420,
-	0x1f8dc: 0x6c2c0c20, 0x1f8dd: 0x6d2efc20,
-	0x1f8e3: 0x6d22bc20,
-	0x1f8e8: 0x6c333420,
-	0x1f8ed: 0x6c115c20, 0x1f8ee: 0x6ce88620,
-	0x1f8f6: 0x6cdf9420, 0x1f8f7: 0x6c5fee20,
-	0x1f8f8: 0x6cb59420, 0x1f8f9: 0x6ccd7620, 0x1f8fa: 0x6ca6fa20,
-	// Block 0x7e4, offset 0x1f900
-	0x1f906: 0x6c498c20,
-	0x1f908: 0x6c08e420, 0x1f90b: 0x6d037820,
-	0x1f913: 0x6d31fa20,
-	0x1f919: 0x6cc94a20, 0x1f91b: 0x6ca0b820,
-	0x1f91d: 0x6c3dc420,
-	0x1f922: 0x6ce1a820, 0x1f923: 0x6c055c20,
-	0x1f92a: 0x6c0c8a20,
-	0x1f92c: 0x6cf56620, 0x1f92e: 0x6c6a5e20,
-	0x1f936: 0x6c6cd220,
-	0x1f93e: 0x6cb8b020,
-	// Block 0x7e5, offset 0x1f940
-	0x1f948: 0x6cd89820, 0x1f949: 0x6c6e1620, 0x1f94b: 0x6c1b8820,
-	0x1f957: 0x6c6e1c20,
-	0x1f965: 0x6cdc3a20,
-	0x1f96f: 0x6d2bde20,
-	0x1f970: 0x6c83e020,
-	0x1f974: 0x6d3d0620,
-	0x1f979: 0x6c0ba820,
-	0x1f97f: 0x6cea6220,
-	// Block 0x7e6, offset 0x1f980
-	0x1f983: 0x6c0a1820,
-	0x1f986: 0x6c3ac220,
-	0x1f98a: 0x6c2a8220,
-	0x1f98c: 0x6d3a2620,
-	0x1f991: 0x6c70dc20,
-	0x1f999: 0x6d15b020,
-	0x1f99c: 0x6d0b6420, 0x1f99f: 0x6c1bd820,
-	0x1f9a0: 0x6c488e20, 0x1f9a1: 0x6d34d020,
-	0x1f9a8: 0x6cc61620, 0x1f9ab: 0x6d1e8a20,
-	0x1f9ad: 0x6c0ea820, 0x1f9af: 0x6c611820,
-	0x1f9b0: 0x6cb23620, 0x1f9b3: 0x6d1b9c20,
-	0x1f9b4: 0x6d0f4220, 0x1f9b5: 0x6c98b420,
-	0x1f9bd: 0x6c904e20, 0x1f9be: 0x6ca2ca20, 0x1f9bf: 0x6cc9bc20,
-	// Block 0x7e7, offset 0x1f9c0
-	0x1f9c0: 0x6c1fda20, 0x1f9c2: 0x6c221c20, 0x1f9c3: 0x6cf41a20,
-	0x1f9c4: 0x6cc5ae20,
-	0x1f9c8: 0x6c272420, 0x1f9c9: 0x6c5fc420, 0x1f9cb: 0x6d15b820,
-	0x1f9cd: 0x6cc45e20,
-	0x1f9d0: 0x6c5d9820, 0x1f9d1: 0x6c484220, 0x1f9d3: 0x6d301020,
-	0x1f9d4: 0x6cb08220, 0x1f9d7: 0x6d288220,
-	0x1f9d8: 0x6c04e020, 0x1f9d9: 0x6c6a6a20,
-	0x1f9dc: 0x6c53e220, 0x1f9df: 0x6cfc7620,
-	0x1f9e0: 0x6c5a8820,
-	0x1f9e9: 0x6d2bc420, 0x1f9ea: 0x6c270820, 0x1f9eb: 0x6c436c20,
-	0x1f9ed: 0x6cb08420, 0x1f9ef: 0x6cb14620,
-	0x1f9f0: 0x6cd23620, 0x1f9f1: 0x6c898620, 0x1f9f2: 0x6d267620, 0x1f9f3: 0x6c565020,
-	0x1f9f4: 0x6c0b6a20, 0x1f9f7: 0x6cc61e20,
-	0x1f9f9: 0x6cc62020,
-	// Block 0x7e8, offset 0x1fa00
-	0x1fa04: 0x6d13c420, 0x1fa05: 0x6d338820, 0x1fa07: 0x6c6c2820,
-	0x1fa08: 0x6cf22020, 0x1fa09: 0x6c173420, 0x1fa0b: 0x6cbf9a20,
-	0x1fa0d: 0x6d3a5620, 0x1fa0f: 0x6d2c1c20,
-	0x1fa10: 0x6cb34820, 0x1fa11: 0x6c019e20, 0x1fa13: 0x6c50c220,
-	0x1fa15: 0x6c1e5620, 0x1fa16: 0x6d0c6020,
-	0x1fa1a: 0x6cd31820, 0x1fa1b: 0x6c566020,
-	0x1fa1c: 0x6c35dc20,
-	0x1fa34: 0x6cd24020,
-	0x1fa39: 0x6ceaaa20, 0x1fa3a: 0x6c272c20, 0x1fa3b: 0x6cec6a20,
-	0x1fa3c: 0x6cb2f420, 0x1fa3d: 0x6cc6f420, 0x1fa3e: 0x6c705220,
-	// Block 0x7e9, offset 0x1fa40
-	0x1fa40: 0x6c0e4a20,
-	0x1fa50: 0x6d222820, 0x1fa51: 0x6c30a220, 0x1fa53: 0x6c4ace20,
-	0x1fa54: 0x6cd45420, 0x1fa57: 0x6cdd0820,
-	0x1fa58: 0x6ca68220, 0x1fa59: 0x6d385c20, 0x1fa5a: 0x6c905220, 0x1fa5b: 0x6c0dca20,
-	0x1fa5c: 0x6d421420, 0x1fa5d: 0x6d12d620, 0x1fa5e: 0x6cc4b420,
-	0x1fa60: 0x6c8cb220, 0x1fa61: 0x6cc96c20,
-	0x1fa64: 0x6c82b820, 0x1fa65: 0x6c35e820, 0x1fa67: 0x6d381a20,
-	0x1fa68: 0x6c612820, 0x1fa6b: 0x6c35ea20,
-	0x1fa6f: 0x6d428420,
-	0x1fa72: 0x6ca31820, 0x1fa73: 0x6d27dc20,
-	// Block 0x7ea, offset 0x1fa80
-	0x1fa8a: 0x6d016c20, 0x1fa8b: 0x6d418a20,
-	0x1fa8c: 0x6cd5aa20, 0x1fa8d: 0x6c2fce20, 0x1fa8e: 0x6c384620, 0x1fa8f: 0x6cc58a20,
-	0x1fa91: 0x6c051820, 0x1fa92: 0x6c4de020, 0x1fa93: 0x6c530a20,
-	0x1fa94: 0x6d13d020, 0x1fa96: 0x6d13d220,
-	0x1fa99: 0x6c77da20, 0x1fa9a: 0x6d16de20, 0x1fa9b: 0x6c5b1e20,
-	0x1fa9c: 0x6d329020,
-	0x1faae: 0x6c6e6220,
-	0x1fab1: 0x6c43d220,
-	0x1fab4: 0x6ca9fa20, 0x1fab5: 0x6cbca220, 0x1fab7: 0x6c2e7e20,
-	0x1fab9: 0x6c61c420, 0x1faba: 0x6d171e20, 0x1fabb: 0x6d14b620,
-	0x1fabd: 0x6c3e2c20, 0x1fabe: 0x6cd77220, 0x1fabf: 0x6cd77420,
-	// Block 0x7eb, offset 0x1fac0
-	0x1fac0: 0x6d1e1e20, 0x1fac1: 0x6c78fe20, 0x1fac2: 0x6c573020, 0x1fac3: 0x6c53b620,
-	0x1fac7: 0x6c50ec20,
-	0x1faca: 0x6c509620, 0x1facb: 0x6cb9f820,
-	0x1facc: 0x6cb85020, 0x1face: 0x6cd8a620,
-	0x1fad0: 0x6c051e20,
-	0x1faec: 0x6c6d9e20, 0x1faed: 0x6c789220,
-	0x1faf3: 0x6c001a20,
-	0x1faf4: 0x6c908020, 0x1faf6: 0x6ce84820,
-	0x1faf9: 0x6c207020,
-	0x1fafc: 0x6cd98620, 0x1fafd: 0x6c19d620, 0x1faff: 0x6cee6a20,
-	// Block 0x7ec, offset 0x1fb00
-	0x1fb02: 0x6caa5220,
-	0x1fb04: 0x6c6fb620, 0x1fb07: 0x6c0d2c20,
-	0x1fb21: 0x6cffda20, 0x1fb22: 0x6cd0f820, 0x1fb23: 0x6c545020,
-	0x1fb26: 0x6d3ad020,
-	0x1fb28: 0x6c490e20, 0x1fb29: 0x6c5eb220, 0x1fb2b: 0x6c61dc20,
-	0x1fb2d: 0x6cf5da20, 0x1fb2f: 0x6ccf3e20,
-	0x1fb30: 0x6cab7e20, 0x1fb31: 0x6c553c20, 0x1fb32: 0x6cde4220, 0x1fb33: 0x6cff7c20,
-	0x1fb35: 0x6d2a7c20,
-	0x1fb38: 0x6c0fee20, 0x1fb39: 0x6cb77820, 0x1fb3a: 0x6cebd620, 0x1fb3b: 0x6ceabe20,
-	0x1fb3c: 0x6c2a0c20, 0x1fb3e: 0x6ca33020,
-	// Block 0x7ed, offset 0x1fb40
-	0x1fb60: 0x6d2cee20, 0x1fb63: 0x6d0b9020,
-	0x1fb66: 0x6cf44020, 0x1fb67: 0x6d31aa20,
-	0x1fb68: 0x6c2a8e20, 0x1fb69: 0x6c509a20, 0x1fb6b: 0x6c01ea20,
-	0x1fb6c: 0x6cafda20, 0x1fb6d: 0x6ccb2220, 0x1fb6e: 0x6c3bbc20, 0x1fb6f: 0x6c485420,
-	0x1fb73: 0x6cb35420,
-	0x1fb77: 0x6d088820,
-	0x1fb78: 0x6c4d9c20, 0x1fb79: 0x6c427420, 0x1fb7a: 0x6c034620, 0x1fb7b: 0x6d3f7620,
-	0x1fb7c: 0x6c9c0020, 0x1fb7e: 0x6c5dba20,
-	// Block 0x7ee, offset 0x1fb80
-	0x1fba7: 0x6c2cc220,
-	0x1fba8: 0x6cf5dc20, 0x1fbab: 0x6c26ee20,
-	0x1fbac: 0x6ca47a20,
-	0x1fbb0: 0x6c2dbe20, 0x1fbb1: 0x6c95f820, 0x1fbb2: 0x6c789e20,
-	0x1fbb7: 0x6d178e20,
-	0x1fbb8: 0x6c744420, 0x1fbb9: 0x6c512420, 0x1fbbb: 0x6c602c20,
-	0x1fbbe: 0x6c51c620, 0x1fbbf: 0x6ca82820,
-	// Block 0x7ef, offset 0x1fbc0
-	0x1fbc0: 0x6cc8f620, 0x1fbc1: 0x6cb99220, 0x1fbc2: 0x6c276c20, 0x1fbc3: 0x6cce6c20,
-	0x1fbc4: 0x6c78ae20, 0x1fbc5: 0x6d3a1220, 0x1fbc7: 0x6cd1b820,
-	0x1fbc8: 0x6c93da20, 0x1fbc9: 0x6c635c20, 0x1fbca: 0x6cb10c20, 0x1fbcb: 0x6c546e20,
-	0x1fbcc: 0x6c5ec420, 0x1fbcd: 0x6cde5420, 0x1fbce: 0x6c1dac20, 0x1fbcf: 0x6cf29020,
-	0x1fbd0: 0x6c6e8020, 0x1fbd1: 0x6cb30e20, 0x1fbd2: 0x6d2cf220, 0x1fbd3: 0x6d02d420,
-	0x1fbd6: 0x6c0b9420,
-	0x1fbd9: 0x6d06ce20,
-	0x1fbde: 0x6c471020, 0x1fbdf: 0x6c6be620,
-	0x1fbe2: 0x6cfb6a20,
-	0x1fbf8: 0x6c356420, 0x1fbfa: 0x6c0f0020, 0x1fbfb: 0x6cb15420,
-	0x1fbff: 0x6d28ea20,
-	// Block 0x7f0, offset 0x1fc00
-	0x1fc01: 0x6cac2420, 0x1fc02: 0x6ce85a20,
-	0x1fc04: 0x6d1bb420,
-	0x1fc2e: 0x6cfde220,
-	0x1fc31: 0x6caaf420, 0x1fc32: 0x6c438e20, 0x1fc33: 0x6c0f0220,
-	0x1fc34: 0x6d01a420,
-	0x1fc38: 0x6d315c20, 0x1fc39: 0x6d214620, 0x1fc3a: 0x6ca6a420,
-	// Block 0x7f1, offset 0x1fc40
-	0x1fc40: 0x6d0a9220, 0x1fc41: 0x6cec3620, 0x1fc43: 0x6c021820,
-	0x1fc44: 0x6c4ece20, 0x1fc45: 0x6c52b220, 0x1fc46: 0x6c27e220,
-	0x1fc48: 0x6caac220, 0x1fc4a: 0x6c12b020, 0x1fc4b: 0x6c604820,
-	0x1fc4c: 0x6ca5ae20, 0x1fc4d: 0x6d1e4020, 0x1fc4e: 0x6cfed220,
-	0x1fc50: 0x6c1faa20, 0x1fc51: 0x6d121020, 0x1fc53: 0x6c440220,
-	0x1fc54: 0x6ce0fc20, 0x1fc55: 0x6c065220, 0x1fc56: 0x6c15be20,
-	0x1fc58: 0x6d06ec20, 0x1fc5b: 0x6c4d2020,
-	0x1fc5d: 0x6c1db620, 0x1fc5f: 0x6c65a620,
-	0x1fc60: 0x6d422620,
-	0x1fc64: 0x6cf0a420, 0x1fc65: 0x6c265220, 0x1fc66: 0x6caf6c20,
-	// Block 0x7f2, offset 0x1fc80
-	0x1fc90: 0x6c592c20, 0x1fc92: 0x6cf63a20,
-	0x1fc94: 0x6cae4c20, 0x1fc95: 0x6c8e3420, 0x1fc96: 0x6ca24a20, 0x1fc97: 0x6c9ec620,
-	0x1fc98: 0x6c812020, 0x1fc99: 0x6ce9fe20, 0x1fc9a: 0x6c048420,
-	0x1fc9d: 0x6c439820, 0x1fc9f: 0x6c7aa020,
-	0x1fca2: 0x6c636a20, 0x1fca3: 0x6c0e7c20,
-	// Block 0x7f3, offset 0x1fcc0
-	0x1fccd: 0x6c592e20, 0x1fccf: 0x6d40c420,
-	0x1fcd0: 0x6c960e20,
-	0x1fcd7: 0x6c840a20,
-	0x1fcd9: 0x6c515620, 0x1fcda: 0x6ca06220,
-	0x1fcdc: 0x6cd72a20, 0x1fcdd: 0x6cd00420, 0x1fcde: 0x6c777020, 0x1fcdf: 0x6c1c4020,
-	0x1fce0: 0x6c8d3420, 0x1fce1: 0x6c95ba20,
-	0x1fce4: 0x6d0dae20, 0x1fce5: 0x6d2fc620, 0x1fce6: 0x6c1fae20, 0x1fce7: 0x6c47ac20,
-	0x1fce8: 0x6cbde020, 0x1fcea: 0x6cdff220, 0x1fceb: 0x6c3be220,
-	0x1fcec: 0x6ce8d220,
-	0x1fcf1: 0x6c8d3620,
-	0x1fcf4: 0x6c810820,
-	// Block 0x7f4, offset 0x1fd00
-	0x1fd16: 0x6c7fa620, 0x1fd17: 0x6d299220,
-	0x1fd18: 0x6cf50820,
-	0x1fd1d: 0x6c840c20, 0x1fd1e: 0x6c000a20, 0x1fd1f: 0x6c94b620,
-	0x1fd20: 0x6d353e20, 0x1fd21: 0x6c1dc820, 0x1fd22: 0x6c67f020,
-	0x1fd24: 0x6c64c620,
-	0x1fd29: 0x6c950020, 0x1fd2a: 0x6d153020,
-	0x1fd2c: 0x6cce0820,
-	0x1fd3b: 0x6c5f0220,
-	// Block 0x7f5, offset 0x1fd40
-	0x1fd5c: 0x6d181e20, 0x1fd5d: 0x6ca8ea20,
-	0x1fd61: 0x6c5c0a20, 0x1fd63: 0x6d2bf020,
-	0x1fd66: 0x6c4e6020,
-	0x1fd68: 0x6d1afa20, 0x1fd69: 0x6c0a1a20, 0x1fd6a: 0x6c014620, 0x1fd6b: 0x6cf97220,
-	0x1fd6c: 0x6ca60020,
-	0x1fd70: 0x6c2b3e20, 0x1fd71: 0x6c65cc20, 0x1fd72: 0x6cac6820,
-	0x1fd75: 0x6d23bc20, 0x1fd76: 0x6c1fc620, 0x1fd77: 0x6d289820,
-	0x1fd79: 0x6c13fc20, 0x1fd7b: 0x6d307620,
-	0x1fd7c: 0x6ccb4220, 0x1fd7e: 0x6cae3620, 0x1fd7f: 0x6c472820,
-	// Block 0x7f6, offset 0x1fd80
-	0x1fd80: 0x6d307820,
-	0x1fd86: 0x6c842420, 0x1fd87: 0x6c30be20,
-	0x1fd89: 0x6c1dd020, 0x1fd8b: 0x6d419620,
-	0x1fd8c: 0x6cb39e20, 0x1fd8f: 0x6ccefc20,
-	0x1fd90: 0x6c8fa220,
-	0x1fda2: 0x6cd5fe20,
-	0x1fda4: 0x6c6d3a20, 0x1fda5: 0x6c8d4820,
-	0x1fda8: 0x6c774220, 0x1fda9: 0x6c7e9220, 0x1fdab: 0x6d05cc20,
-	0x1fdac: 0x6c6d3c20, 0x1fdae: 0x6c1fea20,
-	0x1fdb2: 0x6d26de20,
-	// Block 0x7f7, offset 0x1fdc0
-	0x1fdc6: 0x6c971820, 0x1fdc7: 0x6d020820,
-	0x1fdc8: 0x6c6f8620, 0x1fdc9: 0x6c627420, 0x1fdcb: 0x6d26e820,
-	0x1fdcf: 0x6c64f220,
-	0x1fdd1: 0x6c4e3020, 0x1fdd3: 0x6cc98a20,
-	0x1fdd4: 0x6c5c2820, 0x1fdd5: 0x6cbc5a20, 0x1fdd7: 0x6ccb5220,
-	0x1fdd8: 0x6d419a20, 0x1fddb: 0x6c91d620,
-	0x1fddc: 0x6c57c420, 0x1fddd: 0x6c1e6820, 0x1fdde: 0x6ccd5c20, 0x1fddf: 0x6cf31220,
-	0x1fde0: 0x6c60a220, 0x1fde1: 0x6d3d9620, 0x1fde2: 0x6cfb8c20, 0x1fde3: 0x6d141020,
-	0x1fde4: 0x6c4c8820, 0x1fde5: 0x6c7d1c20,
-	// Block 0x7f8, offset 0x1fe00
-	0x1fe11: 0x6d38a820,
-	0x1fe14: 0x6c929e20, 0x1fe16: 0x6c0e9020, 0x1fe17: 0x6cd28a20,
-	0x1fe18: 0x6d1d4a20, 0x1fe19: 0x6c7a5c20,
-	0x1fe39: 0x6d36d820, 0x1fe3a: 0x6d00e820,
-	0x1fe3d: 0x6d135420, 0x1fe3e: 0x6c36b420, 0x1fe3f: 0x6c940420,
-	// Block 0x7f9, offset 0x1fe40
-	0x1fe40: 0x6c4f1420, 0x1fe41: 0x6d135620,
-	0x1fe46: 0x6c962c20, 0x1fe47: 0x6c21dc20,
-	0x1fe48: 0x6c397020, 0x1fe49: 0x6d34a020, 0x1fe4a: 0x6d1d5020, 0x1fe4b: 0x6cf1f220,
-	0x1fe4c: 0x6cebf220, 0x1fe4d: 0x6c00d620, 0x1fe4e: 0x6d21b020,
-	0x1fe51: 0x6c571a20, 0x1fe53: 0x6c8b3220,
-	0x1fe54: 0x6c6dd620, 0x1fe55: 0x6d28ca20,
-	0x1fe67: 0x6d29e820,
-	0x1fe68: 0x6c336420, 0x1fe6a: 0x6c629220,
-	0x1fe6e: 0x6cf2a220,
-	0x1fe70: 0x6c60ba20, 0x1fe71: 0x6cf6e420, 0x1fe73: 0x6d2e8620,
-	0x1fe74: 0x6ce95c20,
-	// Block 0x7fa, offset 0x1fe80
-	0x1fe8a: 0x6d21b220,
-	0x1fe8f: 0x6c8b4620,
-	0x1fe92: 0x6d372420, 0x1fe93: 0x6cd20a20,
-	0x1fe95: 0x6c81c220, 0x1fe96: 0x6c7f6020, 0x1fe97: 0x6cf03620,
-	0x1fe98: 0x6cad7220, 0x1fe99: 0x6c1b6220, 0x1fe9a: 0x6d1d1420, 0x1fe9b: 0x6c314020,
-	0x1fe9d: 0x6c314220, 0x1fe9f: 0x6c067620,
-	0x1fea0: 0x6cbcf020, 0x1fea1: 0x6cd62020, 0x1fea3: 0x6d34a820,
-	0x1fea9: 0x6c8b4820, 0x1feab: 0x6caed620,
-	0x1fead: 0x6d300620,
-	0x1febf: 0x6cab5a20,
-	// Block 0x7fb, offset 0x1fec0
-	0x1fec2: 0x6d023c20, 0x1fec3: 0x6c60d820,
-	0x1fec4: 0x6c7f6220, 0x1fec5: 0x6d1cb020, 0x1fec6: 0x6c134c20,
-	0x1fed6: 0x6c820020,
-	0x1fedd: 0x6c952820,
-	0x1fee1: 0x6c8fbc20, 0x1fee2: 0x6cf91020,
-	0x1fee6: 0x6c8c7620,
-	0x1fee9: 0x6c4aa020,
-	0x1fef3: 0x6d03b020,
-	0x1fef7: 0x6c848620,
-	0x1fef8: 0x6c221620,
-	// Block 0x7fc, offset 0x1ff00
-	0x1ff07: 0x6cbebc20,
-	0x1ff11: 0x6c652e20, 0x1ff12: 0x6c2a4420, 0x1ff13: 0x6c661420,
-	0x1ff14: 0x6cbee820, 0x1ff15: 0x6d026e20, 0x1ff16: 0x6d1d5a20,
-	0x1ff1f: 0x6c4d0020,
-	0x1ff21: 0x6d311820, 0x1ff22: 0x6ccf0420, 0x1ff23: 0x6c9c9a20,
-	0x1ff24: 0x6c58ba20,
-	0x1ff31: 0x6c248220, 0x1ff32: 0x6cc7e820, 0x1ff33: 0x6cc95a20,
-	0x1ff34: 0x6c5e4620, 0x1ff35: 0x6d143420, 0x1ff37: 0x6c2b4e20,
-	0x1ff39: 0x6c949e20, 0x1ff3b: 0x6d193e20,
-	// Block 0x7fd, offset 0x1ff40
-	0x1ff42: 0x6c100020, 0x1ff43: 0x6cad1820,
-	0x1ff44: 0x6ce04220, 0x1ff45: 0x6c35a420, 0x1ff46: 0x6d29ee20, 0x1ff47: 0x6c23c420,
-	0x1ff53: 0x6d2d0a20,
-	0x1ff55: 0x6cf82620, 0x1ff56: 0x6c98b020,
-	0x1ff58: 0x6c7eca20, 0x1ff59: 0x6d287820,
-	0x1ff61: 0x6c36e620,
-	0x1ff65: 0x6c2f0e20,
-	0x1ff6d: 0x6c493c20,
-	0x1ff71: 0x6c596620,
-	0x1ff75: 0x6cd40620, 0x1ff76: 0x6c663220,
-	0x1ff79: 0x6d2dce20, 0x1ff7a: 0x6c610620, 0x1ff7b: 0x6c596820,
-	// Block 0x7fe, offset 0x1ff80
-	0x1ff85: 0x6cedb220, 0x1ff86: 0x6c95d820,
-	0x1ff8f: 0x6c315620,
-	0x1ff95: 0x6c893c20,
-	0x1ffa3: 0x6ca7ea20,
-	0x1ffa4: 0x6ca41c20, 0x1ffa5: 0x6c6fc820, 0x1ffa6: 0x6d266c20,
-	0x1ffa9: 0x6d108820, 0x1ffaa: 0x6c204c20,
-	0x1ffae: 0x6c11cc20, 0x1ffaf: 0x6c84f820,
-	0x1ffb0: 0x6c33d420, 0x1ffb1: 0x6ca41e20, 0x1ffb2: 0x6ca42020,
-	0x1ffb8: 0x6cc63820,
-	0x1ffbd: 0x6d267820,
-	// Block 0x7ff, offset 0x1ffc0
-	0x1ffc0: 0x6d1ee620, 0x1ffc2: 0x6d19a420,
-	0x1ffc4: 0x6c4c5820,
-	0x1ffc8: 0x6c295420,
-	0x1ffd1: 0x6d312620, 0x1ffd2: 0x6c9c3c20, 0x1ffd3: 0x6c2e6820,
-	0x1ffd6: 0x6d312820,
-	0x1ffda: 0x6c7abe20,
-	0x1ffdc: 0x6c4de220, 0x1ffdd: 0x6cd98020, 0x1ffde: 0x6c50d020, 0x1ffdf: 0x6c5e9620,
-	0x1ffe0: 0x6d302e20,
-	0x1ffe4: 0x6c0dd620, 0x1ffe6: 0x6ceef220, 0x1ffe7: 0x6ce7d220,
-	0x1ffe9: 0x6ce88c20,
-	0x1ffec: 0x6c426e20, 0x1ffed: 0x6c908220, 0x1ffee: 0x6cc2c820, 0x1ffef: 0x6c5d2220,
-	0x1fff0: 0x6d3ba420, 0x1fff1: 0x6cc3b220, 0x1fff3: 0x6c533a20,
-	0x1fff5: 0x6c296020, 0x1fff6: 0x6c510420, 0x1fff7: 0x6cdf6e20,
-	0x1fff8: 0x6c48ca20, 0x1fffa: 0x6d230220,
-	0x1fffc: 0x6d0baa20, 0x1ffff: 0x6cec8c20,
-	// Block 0x800, offset 0x20000
-	0x20000: 0x6cc43820,
-	0x20005: 0x6c744620, 0x20006: 0x6cab3820,
-	0x20009: 0x6cc29c20, 0x2000a: 0x6d347220,
-	0x2000d: 0x6c8d1820, 0x2000e: 0x6cf37020, 0x2000f: 0x6d033c20,
-	0x20010: 0x6c26ae20, 0x20012: 0x6d24f220, 0x20013: 0x6d261e20,
-	0x20017: 0x6ca13820,
-	0x20019: 0x6d1f5420,
-	0x2001e: 0x6cf45820,
-	0x20020: 0x6d2ebe20, 0x20023: 0x6d07b820,
-	0x20026: 0x6cc53c20, 0x20027: 0x6c4be220,
-	0x20028: 0x6d23be20,
-	0x2002e: 0x6cf9fc20, 0x2002f: 0x6c0b5220,
-	0x20030: 0x6d1f7e20, 0x20032: 0x6d1a1420,
-	0x20034: 0x6d083220, 0x20035: 0x6d1f8c20, 0x20036: 0x6c827a20,
-	0x2003c: 0x6ce6a620, 0x2003f: 0x6d311a20,
-	// Block 0x801, offset 0x20040
-	0x20044: 0x6d292420, 0x20045: 0x6c40ba20, 0x20046: 0x6c7e5620,
-	0x20049: 0x6cc39e20,
-	0x2004e: 0x6c70ec20,
-	0x20050: 0x6c20fa20, 0x20051: 0x6c263e20, 0x20052: 0x6cea3a20, 0x20053: 0x6c001220,
-	0x20057: 0x6d3edc20,
-	0x2005a: 0x6c59a620, 0x2005b: 0x6d167c20,
-	0x20069: 0x6c062e20, 0x2006a: 0x6c1afc20,
-	0x2006d: 0x6cc63a20,
-	0x20074: 0x6c913220, 0x20077: 0x6c6a6c20,
-	0x20078: 0x6cd30a20, 0x2007a: 0x6d413620,
-	// Block 0x802, offset 0x20080
-	0x20081: 0x6d167e20,
-	0x20084: 0x6c3bc820, 0x20085: 0x6c3bca20,
-	0x20089: 0x6ca0c420,
-	0x2008d: 0x6cd59a20,
-	0x2009b: 0x6c023e20,
-	0x2009d: 0x6cb05620, 0x2009e: 0x6cb27820, 0x2009f: 0x6cb2f820,
-	0x200a0: 0x6c639e20, 0x200a1: 0x6d38ca20, 0x200a3: 0x6cbf9e20,
-	0x200a7: 0x6d1fa620,
-	0x200a8: 0x6cdfd020, 0x200ab: 0x6cc6f620,
-	0x200ad: 0x6c9d2020,
-	0x200b6: 0x6d16ac20,
-	0x200b8: 0x6cc6fc20, 0x200bb: 0x6c8ace20,
-	0x200bc: 0x6cbf0220,
-	// Block 0x803, offset 0x200c0
-	0x200d9: 0x6c5b2020, 0x200da: 0x6c61a020,
-	0x200df: 0x6c433a20,
-	0x200e7: 0x6d1f0420,
-	0x200e8: 0x6c138220, 0x200e9: 0x6c2a6020, 0x200ea: 0x6d19ac20,
-	0x200ec: 0x6d22de20, 0x200ed: 0x6c06fc20, 0x200ef: 0x6c0ed020,
-	// Block 0x804, offset 0x20100
-	0x20114: 0x6cbb6820,
-	0x2011a: 0x6c141c20,
-	0x2011c: 0x6d02be20, 0x2011e: 0x6c1b1420,
-	0x20123: 0x6d2a7220,
-	0x20124: 0x6c7c6020, 0x20126: 0x6c3aa220,
-	0x20129: 0x6cddea20, 0x2012a: 0x6c48f420,
-	0x2012d: 0x6c342620,
-	0x20132: 0x6c4a5420,
-	0x20134: 0x6d345020,
-	// Block 0x805, offset 0x20140
-	0x2014c: 0x6c15a620, 0x2014d: 0x6ca4ec20,
-	0x20150: 0x6c553e20, 0x20152: 0x6ce21820,
-	0x20161: 0x6d175620,
-	0x20164: 0x6ca82a20, 0x20165: 0x6d2d3e20, 0x20166: 0x6c587220,
-	0x20168: 0x6c325620, 0x2016a: 0x6cb78620, 0x2016b: 0x6c12e420,
-	0x2016e: 0x6c20cc20,
-	0x20172: 0x6c264e20,
-	0x20176: 0x6d361820, 0x20177: 0x6c453020,
-	0x2017b: 0x6cf26e20,
-	// Block 0x806, offset 0x20180
-	0x20189: 0x6c325820,
-	0x2018d: 0x6c1b2420,
-	0x20191: 0x6c01be20, 0x20192: 0x6c7df820,
-	0x20194: 0x6cf2e820,
-	0x20198: 0x6d1bb620, 0x2019a: 0x6cb13e20,
-	0x201ab: 0x6d2c3020,
-	0x201ac: 0x6d3b6420, 0x201ae: 0x6cdac420,
-	0x201b3: 0x6ca6a620,
-	0x201ba: 0x6d3a1420, 0x201bb: 0x6c14fe20,
-	0x201be: 0x6c084020, 0x201bf: 0x6ca5f220,
-	// Block 0x807, offset 0x201c0
-	0x201c0: 0x6d347420, 0x201c1: 0x6c5bd420,
-	0x201d8: 0x6cfa3a20, 0x201da: 0x6d364e20, 0x201db: 0x6cf63c20,
-	0x201de: 0x6c67aa20,
-	0x201e9: 0x6c330220, 0x201ea: 0x6c3d7c20,
-	0x201ed: 0x6c685c20, 0x201ee: 0x6c176820, 0x201ef: 0x6c045020,
-	0x201f5: 0x6c8b1e20,
-	0x201fc: 0x6c025a20,
-	// Block 0x808, offset 0x20200
-	0x2020b: 0x6d2a1620,
-	0x2020c: 0x6c1f6020, 0x2020f: 0x6ceb8620,
-	0x20212: 0x6c4fd220, 0x20213: 0x6c773620,
-	0x20214: 0x6d1a7e20, 0x20216: 0x6cfcea20,
-	0x2021d: 0x6c401820, 0x2021e: 0x6c0cb620,
-	0x20220: 0x6c7c4020,
-	0x20224: 0x6cbcde20, 0x20225: 0x6cc98420,
-	0x2023f: 0x6c266220,
-	// Block 0x809, offset 0x20240
-	0x20240: 0x6d12b220,
-	0x20244: 0x6d2f0820, 0x20246: 0x6c896420,
-	0x20248: 0x6c332620,
-	0x2024d: 0x6c816620, 0x2024e: 0x6d09a620,
-	0x20258: 0x6d36a420, 0x2025a: 0x6c7a5a20,
-	0x2025e: 0x6cdc6a20, 0x2025f: 0x6cf2a020,
-	0x20263: 0x6c7a5e20,
-	0x2026f: 0x6c65d420,
-	0x20276: 0x6c67ba20,
-	0x2027b: 0x6d3caa20,
-	0x2027d: 0x6cd6dc20, 0x2027e: 0x6d219c20,
-	// Block 0x80a, offset 0x20280
-	0x20281: 0x6cc98c20, 0x20283: 0x6d23e620,
-	0x20284: 0x6c803a20,
-	0x2028a: 0x6d240620,
-	0x2028c: 0x6cba2820, 0x2028d: 0x6c72a220, 0x2028f: 0x6c8b3420,
-	0x20292: 0x6cd53e20, 0x20293: 0x6cfd1a20,
-	0x20296: 0x6c415420,
-	0x202a2: 0x6cdf4420,
-	0x202a7: 0x6ce52220,
-	0x202af: 0x6c9c1020,
-	0x202b1: 0x6c2ba220, 0x202b3: 0x6c9ddc20,
-	0x202be: 0x6c5afa20,
-	// Block 0x80b, offset 0x202c0
-	0x202c9: 0x6c351c20,
-	0x202cd: 0x6c8b4a20,
-	0x202d2: 0x6c7f6820, 0x202d3: 0x6d1aa820,
-	0x202d4: 0x6c804620, 0x202d6: 0x6c68a020,
-	0x202d8: 0x6c5e2620,
-	0x202e3: 0x6c4c4c20,
-	0x202e6: 0x6d2e9420,
-	0x202ed: 0x6c9d0820,
-	0x202f0: 0x6c7c5020,
-	0x202f7: 0x6c352620,
-	0x202ff: 0x6d1ab020,
-	// Block 0x80c, offset 0x20300
-	0x20307: 0x6c836020,
-	0x20315: 0x6c462a20,
-	0x2031b: 0x6ce6ac20,
-	0x2031c: 0x6d10c820, 0x2031e: 0x6cedf620,
-	0x20323: 0x6c6aa020,
-	0x20328: 0x6d04c220, 0x2032a: 0x6cd5c020,
-	0x20331: 0x6cf08c20,
-	0x20334: 0x6d236620,
-	// Block 0x80d, offset 0x20340
-	0x20341: 0x6d2da620,
-	0x20349: 0x6c01ee20,
-	0x2034f: 0x6cca9a20,
-	0x20350: 0x6c1e0c20, 0x20352: 0x6c7ae220,
-	0x20356: 0x6c71a020, 0x20357: 0x6c4d5220,
-	0x20362: 0x6c9e0420,
-	0x20367: 0x6c4f9420,
-	0x2036a: 0x6c1d9e20,
-	0x2036e: 0x6c8d1a20,
-	0x20370: 0x6d3f9620,
-	// Block 0x80e, offset 0x20380
-	0x20389: 0x6c7d4820,
-	0x2038c: 0x6d378c20, 0x2038e: 0x6d2f5420,
-	0x20390: 0x6c2f2e20, 0x20391: 0x6c467420, 0x20392: 0x6d279620, 0x20393: 0x6c27c620,
-	0x20394: 0x6caada20,
-	0x2039b: 0x6c0dd820,
-	0x2039d: 0x6cc47420, 0x2039e: 0x6c14c420,
-	0x203a2: 0x6cc70620, 0x203a3: 0x6d19c820,
-	0x203a4: 0x6c14c620, 0x203a7: 0x6d361a20,
-	0x203aa: 0x6c48f820, 0x203ab: 0x6caabe20,
-	0x203ac: 0x6ccfe420, 0x203af: 0x6cdac620,
-	0x203b2: 0x6cf2b820, 0x203b3: 0x6c1bb220,
-	0x203ba: 0x6c9ee220, 0x203bb: 0x6d347e20,
-	0x203be: 0x6cb50a20,
-	// Block 0x80f, offset 0x203c0
-	0x203c1: 0x6c465820,
-	0x203c6: 0x6c90fa20,
-	0x203c8: 0x6d3ea020,
-	0x203cd: 0x6c293a20, 0x203cf: 0x6cfc6820,
-	0x203d1: 0x6cc77e20,
-	0x203d7: 0x6caefe20,
-	0x203de: 0x6cf56c20,
-	0x203e2: 0x6c7aba20,
-	0x203e4: 0x6c4b2620, 0x203e5: 0x6c212e20, 0x203e6: 0x6c6baa20,
-	0x203f2: 0x6c6bac20, 0x203f3: 0x6cf57820,
-	0x203f5: 0x6c7a1a20, 0x203f7: 0x6c46ec20,
-	0x203f8: 0x6d2cac20, 0x203f9: 0x6c392620,
-	0x203fc: 0x6d015a20,
-	// Block 0x810, offset 0x20400
-	0x2040d: 0x6c585e20, 0x2040f: 0x6ca79020,
-	0x20410: 0x6cf85820,
-	0x2041b: 0x6c240820,
-	0x2041d: 0x6c4bba20,
-	0x20421: 0x6cf5b620,
-	0x20427: 0x6cb83620,
-	0x2042a: 0x6c981c20,
-	0x2042d: 0x6d303220,
-	0x20430: 0x6c734620,
-	0x20434: 0x6c0ca020,
-	// Block 0x811, offset 0x20440
-	0x20440: 0x6c0ca220,
-	0x20445: 0x6cc2d620,
-	0x2044b: 0x6cf88620,
-	0x2044e: 0x6c68f020,
-	0x20450: 0x6cc2ea20, 0x20451: 0x6d352620, 0x20452: 0x6ce46820, 0x20453: 0x6c762a20,
-	0x20458: 0x6cca1a20, 0x2045b: 0x6d3e4c20,
-	0x20463: 0x6c6adc20,
-	0x2046a: 0x6c0cec20,
-	0x2046c: 0x6c312c20, 0x2046d: 0x6d417620,
-	0x20476: 0x6d0db020,
-	// Block 0x812, offset 0x20480
-	0x20481: 0x6c0a1c20,
-	0x20485: 0x6c7b0020, 0x20487: 0x6d0eb620,
-	0x20488: 0x6cef3820, 0x2048a: 0x6c583420,
-	0x2048c: 0x6c506420,
-	0x20491: 0x6c45b820,
-	0x20494: 0x6c9b5420, 0x20497: 0x6c82e420,
-	0x20499: 0x6c2cae20, 0x2049b: 0x6c0e0220,
-	0x2049c: 0x6c584420, 0x2049f: 0x6cebfe20,
-	0x204a0: 0x6c751420,
-	0x204a8: 0x6c1bda20,
-	0x204ad: 0x6c030e20, 0x204ae: 0x6c6fa420,
-	0x204b7: 0x6c2c0e20,
-	0x204b9: 0x6d2f1c20, 0x204bb: 0x6c26e620,
-	0x204bc: 0x6cd23820, 0x204bd: 0x6c501420,
-	// Block 0x813, offset 0x204c0
-	0x204cc: 0x6d12c020,
-	0x204d7: 0x6c091a20,
-	0x204d8: 0x6cb05020, 0x204d9: 0x6d118820,
-	0x204dc: 0x6c2b1420, 0x204dd: 0x6c11ee20, 0x204de: 0x6cb20220, 0x204df: 0x6d268420,
-	0x204e0: 0x6cbc7820, 0x204e1: 0x6caf3220,
-	0x204f5: 0x6ceb7020, 0x204f6: 0x6d015c20,
-	0x204fd: 0x6d12cc20,
-	// Block 0x814, offset 0x20500
-	0x20500: 0x6c392820, 0x20501: 0x6c484620, 0x20502: 0x6c566e20, 0x20503: 0x6cc7fa20,
-	0x20509: 0x6cc4b620, 0x2050a: 0x6c3d2020, 0x2050b: 0x6c598020,
-	0x2051a: 0x6cc79020,
-	0x20522: 0x6c993020,
-	0x20525: 0x6c32f620, 0x20526: 0x6c5b9820, 0x20527: 0x6cf85a20,
-	0x20528: 0x6d04bc20, 0x2052b: 0x6cc4b820,
-	0x2052c: 0x6d13d620, 0x2052f: 0x6d303420,
-	0x20531: 0x6c61c620, 0x20532: 0x6c434020, 0x20533: 0x6d203820,
-	0x20535: 0x6cb40620,
-	// Block 0x815, offset 0x20540
-	0x20548: 0x6c1f2220, 0x20549: 0x6c240a20, 0x2054a: 0x6d303620, 0x2054b: 0x6ca79220,
-	0x2054d: 0x6cbca620,
-	0x20550: 0x6c13d220, 0x20552: 0x6ca79420, 0x20553: 0x6cdbb620,
-	0x20559: 0x6c13d420, 0x2055a: 0x6c19da20, 0x2055b: 0x6d10e020,
-	0x2055c: 0x6c324820, 0x2055d: 0x6cedc820, 0x2055f: 0x6ca76220,
-	0x20560: 0x6c9c4420,
-	0x20566: 0x6caa1620, 0x20567: 0x6cf87820,
-	0x20569: 0x6d109820, 0x2056b: 0x6c14c820,
-	// Block 0x816, offset 0x20580
-	0x20598: 0x6d018c20, 0x20599: 0x6c9ed420, 0x2059a: 0x6c796420,
-	0x2059c: 0x6c243a20, 0x2059e: 0x6cd13620, 0x2059f: 0x6cacb620,
-	0x205a0: 0x6c569c20, 0x205a2: 0x6c78b020, 0x205a3: 0x6cfcc220,
-	0x205a5: 0x6c53fa20, 0x205a6: 0x6cbf2020, 0x205a7: 0x6d3f8220,
-	0x205aa: 0x6c3e7420, 0x205ab: 0x6ca3be20,
-	0x205ad: 0x6ca69e20, 0x205af: 0x6c7a7a20,
-	0x205be: 0x6ca59820,
-	// Block 0x817, offset 0x205c0
-	0x205cd: 0x6c439020,
-	0x205d1: 0x6c53fc20, 0x205d3: 0x6c002620,
-	0x205d5: 0x6cd1ba20,
-	0x205de: 0x6d04d420, 0x205df: 0x6c230e20,
-	0x205e0: 0x6c684420, 0x205e2: 0x6d2c3220, 0x205e3: 0x6cfebe20,
-	0x205e4: 0x6c88f820, 0x205e5: 0x6cc24820,
-	0x205e8: 0x6ccd4420, 0x205e9: 0x6d01c020, 0x205eb: 0x6c461c20,
-	0x205ec: 0x6c9ed820, 0x205ed: 0x6c148020, 0x205ef: 0x6c371620,
-	0x205f3: 0x6c312220,
-	// Block 0x818, offset 0x20600
-	0x20606: 0x6c79f020,
-	0x2060a: 0x6ce58a20, 0x2060b: 0x6cd1cc20,
-	0x2060f: 0x6cca7020,
-	0x20612: 0x6c491a20,
-	0x20616: 0x6c505620, 0x20617: 0x6d367c20,
-	0x20618: 0x6d106620, 0x20619: 0x6ce70020, 0x2061a: 0x6c09ee20,
-	0x2061c: 0x6ca06420, 0x2061e: 0x6c3ebe20,
-	0x20625: 0x6cbb1420,
-	0x20639: 0x6d367e20,
-	0x2063c: 0x6cd9ca20, 0x2063f: 0x6ca7a020,
-	// Block 0x819, offset 0x20640
-	0x20640: 0x6c738020, 0x20642: 0x6d105620,
-	0x20644: 0x6c599e20,
-	0x20648: 0x6c080020, 0x20649: 0x6ca06620, 0x2064a: 0x6c176a20,
-	0x2064e: 0x6c93a420, 0x2064f: 0x6cce8220,
-	0x20650: 0x6c104220, 0x20651: 0x6d2b8820, 0x20652: 0x6cd81020,
-	0x20654: 0x6d41c420, 0x20655: 0x6d265620, 0x20656: 0x6d294c20, 0x20657: 0x6c948e20,
-	0x20665: 0x6cc1b020,
-	0x2067a: 0x6c9e9820,
-	// Block 0x81a, offset 0x20680
-	0x20680: 0x6d3bd820,
-	0x20688: 0x6c297e20, 0x2068a: 0x6d250a20,
-	0x20692: 0x6c71d220,
-	0x20695: 0x6c5b6020, 0x20696: 0x6cb7d020,
-	0x20698: 0x6d285220, 0x2069a: 0x6c97fe20,
-	0x2069c: 0x6ca0aa20,
-	0x206b1: 0x6cb16220, 0x206b3: 0x6c6d4a20,
-	0x206b9: 0x6d10b820,
-	// Block 0x81b, offset 0x206c0
-	0x206c0: 0x6c1c6820, 0x206c1: 0x6ca6c620, 0x206c2: 0x6cd9de20,
-	0x206c8: 0x6cd61a20, 0x206cb: 0x6cb16420,
-	0x206d4: 0x6c4f1620,
-	0x206e0: 0x6d10be20, 0x206e2: 0x6ca56020,
-	0x206ea: 0x6cd3f020,
-	0x206ec: 0x6d251820, 0x206ee: 0x6c114c20, 0x206ef: 0x6c6b5220,
-	0x206f9: 0x6d023e20,
-	0x206fd: 0x6d0cec20, 0x206fe: 0x6cff3620,
-	// Block 0x81c, offset 0x20700
-	0x2070b: 0x6d025020,
-	0x2070c: 0x6c86ec20, 0x2070e: 0x6c397620,
-	0x20717: 0x6d3b3c20,
-	0x20719: 0x6ca37220, 0x2071b: 0x6d3bb620,
-	0x2071e: 0x6c7c4c20,
-	0x20722: 0x6c957020,
-	0x2072b: 0x6cb83220,
-	0x20736: 0x6ceca820,
-	0x2073d: 0x6cd54c20, 0x2073f: 0x6c1a7c20,
-	// Block 0x81d, offset 0x20740
-	0x20741: 0x6d164620,
-	0x20746: 0x6c500820,
-	0x20748: 0x6c698220, 0x2074b: 0x6c5b8e20,
-	0x2074d: 0x6cffce20, 0x2074e: 0x6c222020,
-	0x2075e: 0x6c61a220,
-	0x20766: 0x6ca62e20,
-	0x20768: 0x6ca63420, 0x20769: 0x6ce3bc20,
-	0x20776: 0x6c724820,
-	0x20778: 0x6ca04220,
-	0x2077d: 0x6c83d220, 0x2077f: 0x6d382c20,
-	// Block 0x81e, offset 0x20780
-	0x20781: 0x6d06d420, 0x20783: 0x6cbf3820,
-	0x20784: 0x6c3e9620, 0x20786: 0x6c0d7e20,
-	0x2078a: 0x6c621620,
-	0x2078d: 0x6cb5f420, 0x2078e: 0x6cf89c20,
-	0x20794: 0x6c2ada20, 0x20795: 0x6c376020,
-	0x2079b: 0x6cd53220,
-	0x2079c: 0x6ce77820, 0x2079d: 0x6cff9620, 0x2079f: 0x6cb01c20,
-	0x207a8: 0x6c284020, 0x207aa: 0x6c60da20,
-	0x207b3: 0x6d002020,
-	0x207b7: 0x6c23ca20,
-	0x207bb: 0x6c0d1c20,
-	0x207bc: 0x6cc6f020,
-	// Block 0x81f, offset 0x207c0
-	0x207cd: 0x6c9e4a20,
-	0x207d2: 0x6c9e4c20,
-	0x207d4: 0x6cd49c20, 0x207d5: 0x6cff6c20, 0x207d6: 0x6c05e420, 0x207d7: 0x6cec2220,
-	0x207d9: 0x6cad8020,
-	0x207e3: 0x6c410e20,
-	0x207e5: 0x6c549c20, 0x207e6: 0x6c525420,
-	0x207e8: 0x6d39f220, 0x207e9: 0x6c48c420,
-	0x207ed: 0x6c4b3820,
-	0x207f9: 0x6c273e20,
-	0x207fc: 0x6c0d2820, 0x207fd: 0x6c5a4420,
-	// Block 0x820, offset 0x20800
-	0x20800: 0x6c13d620,
-	0x20804: 0x6cfa3420, 0x20805: 0x6c710220, 0x20807: 0x6d119a20,
-	0x20816: 0x6c3bb620, 0x20817: 0x6d2a7420,
-	0x2081b: 0x6c3c3020,
-	0x20822: 0x6c708020, 0x20823: 0x6d230a20,
-	0x20829: 0x6c5cbe20,
-	0x20832: 0x6c6ab020, 0x20833: 0x6d049020,
-	0x20835: 0x6ca3ba20,
-	0x2083b: 0x6caa1820,
-	0x2083d: 0x6cd13820, 0x2083f: 0x6d233420,
-	// Block 0x821, offset 0x20840
-	0x20842: 0x6c587620, 0x20843: 0x6c450c20,
-	0x20844: 0x6ced1620, 0x20846: 0x6ceb1e20, 0x20847: 0x6cbb7820,
-	0x20858: 0x6d1b5220, 0x2085a: 0x6c635e20,
-	0x20861: 0x6cdd7220, 0x20863: 0x6c6ade20,
-	0x20864: 0x6cf64020, 0x20865: 0x6cf25020,
-	0x20869: 0x6c986620,
-	0x20876: 0x6d0fbe20,
-	0x20878: 0x6d110820,
-	0x2087d: 0x6c986c20, 0x2087e: 0x6cab3e20,
-	// Block 0x822, offset 0x20880
-	0x20881: 0x6c017020,
-	0x20885: 0x6c910c20,
-	0x20891: 0x6c366e20, 0x20892: 0x6d3f1e20,
-	0x20897: 0x6c367020,
-	0x20899: 0x6c01c820,
-	0x2089e: 0x6c5de220,
-	0x208a0: 0x6c135220,
-	0x208b0: 0x6d049c20, 0x208b1: 0x6c625e20, 0x208b3: 0x6d424e20,
-	0x208b5: 0x6cb63620,
-	0x208ba: 0x6d32ee20,
-	// Block 0x823, offset 0x208c0
-	0x208c0: 0x6c5f2e20, 0x208c1: 0x6cb52e20, 0x208c2: 0x6c732420, 0x208c3: 0x6ca91c20,
-	0x208df: 0x6ccb7220,
-	0x208e5: 0x6c51fa20, 0x208e6: 0x6cc72c20, 0x208e7: 0x6cbdec20,
-	0x208ec: 0x6c70de20, 0x208ef: 0x6c86ee20,
-	0x208f5: 0x6cd29020,
-	0x208f8: 0x6ca6da20, 0x208f9: 0x6cfbc420, 0x208fa: 0x6c3dbc20,
-	0x208fd: 0x6cc80820,
-	// Block 0x824, offset 0x20900
-	0x20901: 0x6d04ac20, 0x20902: 0x6c4ba220,
-	0x20904: 0x6c62e020, 0x20906: 0x6c9bf820, 0x20907: 0x6c3dc020,
-	0x20909: 0x6cc9ee20, 0x2090a: 0x6d247820, 0x2090b: 0x6c69de20,
-	0x2090c: 0x6c9c2220, 0x2090d: 0x6c900e20, 0x2090e: 0x6cbb0020,
-	0x20910: 0x6c9cc620, 0x20913: 0x6d15a420,
-	0x20916: 0x6c4dc620, 0x20917: 0x6ca6e620,
-	0x20918: 0x6c81ee20, 0x20919: 0x6ccbbe20,
-	0x2091c: 0x6c8c4220, 0x2091e: 0x6d22c220,
-	0x20925: 0x6caab020,
-	0x2092b: 0x6cf4c020,
-	0x2092f: 0x6c0b3620,
-	0x20932: 0x6c0b3820, 0x20933: 0x6d079620,
-	0x20935: 0x6c649620,
-	0x20938: 0x6c0b3c20,
-	// Block 0x825, offset 0x20940
-	0x20942: 0x6c2a7a20,
-	0x20947: 0x6d3b8620,
-	0x2094b: 0x6cc72020,
-	0x20950: 0x6cd69820,
-	0x20958: 0x6c631820, 0x2095b: 0x6c5b4a20,
-	0x2095e: 0x6d2d5c20,
-	0x20962: 0x6c042e20, 0x20963: 0x6c8ac420,
-	0x20965: 0x6d003820,
-	0x2096d: 0x6c656c20, 0x2096e: 0x6cd44020,
-	0x20973: 0x6c77ba20,
-	0x20977: 0x6c490c20,
-	0x20978: 0x6c949420,
-	0x2097e: 0x6caa1a20, 0x2097f: 0x6c16e820,
-	// Block 0x826, offset 0x20980
-	0x2098e: 0x6c895220,
-	0x20999: 0x6ca3c620, 0x2099a: 0x6cc80020,
-	0x2099e: 0x6d368020,
-	0x209a6: 0x6c128620,
-	0x209b0: 0x6c867420,
-	0x209bb: 0x6c7fcc20,
-	0x209bf: 0x6c14e220,
-	// Block 0x827, offset 0x209c0
-	0x209c1: 0x6cedba20,
-	0x209c4: 0x6c856620, 0x209c7: 0x6cf49620,
-	0x209c8: 0x6cad4220, 0x209c9: 0x6d200a20, 0x209cb: 0x6c415e20,
-	0x209cf: 0x6c011420,
-	0x209d0: 0x6d04b420, 0x209d1: 0x6cd70420, 0x209d2: 0x6cc8aa20,
-	0x209d8: 0x6c04b620, 0x209d9: 0x6d1eea20,
-	0x209e2: 0x6c5d6e20,
-	0x209e5: 0x6c5a9c20,
-	0x209e8: 0x6d428c20, 0x209e9: 0x6cfe9820, 0x209eb: 0x6c9dba20,
-	0x209f0: 0x6c40d620, 0x209f1: 0x6d25e220, 0x209f3: 0x6c0ff020,
-	0x209f4: 0x6c17ba20, 0x209f5: 0x6ce9e220, 0x209f7: 0x6c0ff220,
-	0x209fd: 0x6c40d820, 0x209ff: 0x6ce55820,
-	// Block 0x828, offset 0x20a00
-	0x20a00: 0x6ca2dc20,
-	0x20a05: 0x6c556a20, 0x20a06: 0x6ca83c20,
-	0x20a0b: 0x6c5b3e20,
-	0x20a0c: 0x6c90ea20, 0x20a0e: 0x6ce35020,
-	0x20a10: 0x6cbc5420, 0x20a11: 0x6cbbee20, 0x20a12: 0x6d380620,
-	0x20a16: 0x6c2b4220,
-	0x20a1a: 0x6c8bd820,
-	0x20a1d: 0x6cc32c20, 0x20a1e: 0x6d3b9a20,
-	0x20a20: 0x6c828e20, 0x20a22: 0x6d013620,
-	0x20a25: 0x6cc56220,
-	0x20a28: 0x6c28f620, 0x20a2a: 0x6c316020, 0x20a2b: 0x6ca71420,
-	0x20a2f: 0x6cd2ae20,
-	0x20a32: 0x6cfb2020,
-	0x20a39: 0x6d343820,
-	0x20a3d: 0x6c008820, 0x20a3e: 0x6c21f220, 0x20a3f: 0x6cb42a20,
-	// Block 0x829, offset 0x20a40
-	0x20a41: 0x6cd2b620,
-	0x20a45: 0x6cc0de20, 0x20a46: 0x6cd55020, 0x20a47: 0x6c2cbe20,
-	0x20a49: 0x6cffa420, 0x20a4a: 0x6cd70a20,
-	0x20a4c: 0x6c586020,
-	0x20a50: 0x6d149220, 0x20a51: 0x6c72dc20,
-	0x20a54: 0x6d34fc20,
-	0x20a5c: 0x6d2f9e20,
-	0x20a63: 0x6d06a220,
-	0x20a6f: 0x6c905a20,
-	0x20a71: 0x6d3aca20, 0x20a73: 0x6cdd5620,
-	0x20a77: 0x6c2e8020,
-	0x20a7a: 0x6cc18420,
-	0x20a7c: 0x6c78a220, 0x20a7d: 0x6c54ba20, 0x20a7e: 0x6c708220,
-	// Block 0x82a, offset 0x20a80
-	0x20a80: 0x6cbea420,
-	0x20a8d: 0x6c0dae20,
-	0x20a95: 0x6ce3f220, 0x20a97: 0x6c744820,
-	0x20a9a: 0x6cc05a20,
-	0x20aa3: 0x6c67e420,
-	0x20aaa: 0x6d282e20,
-	0x20aad: 0x6c9a9a20, 0x20aae: 0x6caf6e20,
-	0x20ab0: 0x6cc1a020,
-	0x20abc: 0x6c9d5220, 0x20abf: 0x6ce3fe20,
-	// Block 0x82b, offset 0x20ac0
-	0x20ac2: 0x6c768c20,
-	0x20ac4: 0x6c08e820, 0x20ac6: 0x6cc11c20,
-	0x20acf: 0x6ce56620,
-	0x20ad1: 0x6c1f6c20,
-	0x20ad8: 0x6c714a20, 0x20ada: 0x6cf69620,
-	0x20ade: 0x6c8c5e20,
-	0x20aed: 0x6c1bca20, 0x20aee: 0x6c5f7e20,
-	0x20af4: 0x6c917a20,
-	0x20af8: 0x6c876220,
-	0x20afe: 0x6c73c820,
-	// Block 0x82c, offset 0x20b00
-	0x20b05: 0x6d397c20, 0x20b06: 0x6c921020,
-	0x20b0e: 0x6ca7f620,
-	0x20b14: 0x6cc2c020,
-	0x20b2d: 0x6d0b6820, 0x20b2f: 0x6c35c220,
-	0x20b31: 0x6c564020,
-	// Block 0x82d, offset 0x20b40
-	0x20b40: 0x6c982620,
-	0x20b49: 0x6cf4a020,
-	0x20b4c: 0x6c137620,
-	0x20b51: 0x6cbd1820, 0x20b52: 0x6c6a6220, 0x20b53: 0x6c52f420,
-	0x20b55: 0x6c27b620, 0x20b56: 0x6c371c20, 0x20b57: 0x6d2b3a20,
-	0x20b58: 0x6c565220, 0x20b59: 0x6c020e20, 0x20b5a: 0x6c6bb220, 0x20b5b: 0x6c3faa20,
-	0x20b5c: 0x6d1e7020, 0x20b5e: 0x6c3c1a20,
-	0x20b6c: 0x6ca26620,
-	0x20b76: 0x6ccb1620, 0x20b77: 0x6c238a20,
-	0x20b7b: 0x6c772220,
-	// Block 0x82e, offset 0x20b80
-	0x20b82: 0x6d11ea20, 0x20b83: 0x6c008c20,
-	0x20b84: 0x6c05a620, 0x20b86: 0x6cb34c20,
-	0x20b88: 0x6cd2b820, 0x20b89: 0x6c392a20, 0x20b8b: 0x6c70f420,
-	0x20b8c: 0x6cafb420, 0x20b8e: 0x6cf07420, 0x20b8f: 0x6c7a2220,
-	0x20b90: 0x6cbc8620, 0x20b91: 0x6c417220,
-	0x20ba2: 0x6c7be220, 0x20ba3: 0x6cdc2420,
-	0x20ba4: 0x6c07d620, 0x20ba5: 0x6c632820, 0x20ba6: 0x6d0b8020,
-	0x20baa: 0x6c76fe20, 0x20bab: 0x6ca7f820,
-	0x20bad: 0x6d03cc20, 0x20baf: 0x6cf85c20,
-	0x20bb1: 0x6c8c4a20, 0x20bb2: 0x6c347e20,
-	0x20bb4: 0x6c159a20,
-	// Block 0x82f, offset 0x20bc0
-	0x20bc8: 0x6cd32e20, 0x20bcb: 0x6c334020,
-	0x20bcd: 0x6c675020, 0x20bce: 0x6d222a20, 0x20bcf: 0x6c922020,
-	0x20bd0: 0x6c372020, 0x20bd3: 0x6c476420,
-	0x20bd5: 0x6cefa020, 0x20bd6: 0x6c17d620, 0x20bd7: 0x6c590020,
-	0x20bd8: 0x6c0ce220, 0x20bdb: 0x6c4e9420,
-	0x20bdc: 0x6ce99e20, 0x20bdd: 0x6ca32420, 0x20bde: 0x6cb6e620,
-	0x20be0: 0x6ce7e820, 0x20be1: 0x6d24d220, 0x20be2: 0x6cede020,
-	0x20be4: 0x6cf3b020, 0x20be5: 0x6c434220,
-	0x20be8: 0x6c792e20, 0x20bea: 0x6d14ba20,
-	0x20bf8: 0x6cfe9a20, 0x20bfa: 0x6c4ae420, 0x20bfb: 0x6d0b8c20,
-	0x20bfc: 0x6cdc2e20, 0x20bfd: 0x6cd95420, 0x20bff: 0x6d3d3820,
-	// Block 0x830, offset 0x20c00
-	0x20c02: 0x6ce84a20, 0x20c03: 0x6cfbf420,
-	0x20c08: 0x6d2b4420, 0x20c09: 0x6c85c620,
-	0x20c0c: 0x6d3acc20, 0x20c0e: 0x6c6aa220,
-	0x20c11: 0x6ce3e820,
-	0x20c14: 0x6d009c20, 0x20c15: 0x6cbf1220, 0x20c17: 0x6d0b9420,
-	0x20c18: 0x6c708620, 0x20c1b: 0x6d1a5a20,
-	0x20c1c: 0x6d345220, 0x20c1e: 0x6c76d020, 0x20c1f: 0x6d3e2220,
-	0x20c21: 0x6c77f420, 0x20c23: 0x6ca81220,
-	0x20c24: 0x6cbb0620, 0x20c25: 0x6ced0220, 0x20c26: 0x6d2abc20,
-	0x20c28: 0x6c708820, 0x20c2a: 0x6d3f4220,
-	// Block 0x831, offset 0x20c40
-	0x20c44: 0x6d0b9620, 0x20c47: 0x6c8bae20,
-	0x20c49: 0x6cb5c020,
-	0x20c4e: 0x6c5b3420,
-	0x20c53: 0x6cb77a20,
-	0x20c55: 0x6d0fa820, 0x20c56: 0x6cdc3620,
-	0x20c58: 0x6cb6f220, 0x20c59: 0x6c4a5620,
-	0x20c62: 0x6cbe1020, 0x20c63: 0x6c353e20,
-	0x20c65: 0x6d429820,
-	0x20c68: 0x6d2b4820, 0x20c69: 0x6cb77c20, 0x20c6a: 0x6c602e20,
-	0x20c6c: 0x6ceb2020, 0x20c6d: 0x6c2e9c20, 0x20c6f: 0x6c5bbe20,
-	0x20c70: 0x6c98e420, 0x20c72: 0x6d063e20,
-	0x20c75: 0x6c53fe20, 0x20c76: 0x6d0d7c20, 0x20c77: 0x6cfdc220,
-	0x20c78: 0x6c231020, 0x20c79: 0x6c555820,
-	0x20c7c: 0x6c01c020, 0x20c7e: 0x6c0de420,
-	// Block 0x832, offset 0x20c80
-	0x20c87: 0x6c348e20,
-	0x20c90: 0x6d3a6a20, 0x20c91: 0x6c2e9e20, 0x20c92: 0x6d1ea220, 0x20c93: 0x6cb6fa20,
-	0x20c94: 0x6cd26820, 0x20c95: 0x6d099a20, 0x20c96: 0x6d1ea420, 0x20c97: 0x6c76ae20,
-	0x20c98: 0x6cbc2420, 0x20c9b: 0x6cbab620,
-	0x20c9c: 0x6cae3e20, 0x20c9f: 0x6cc2ee20,
-	0x20ca1: 0x6d1c6e20,
-	0x20ca7: 0x6ccbf220,
-	0x20cab: 0x6ce1d020,
-	0x20cad: 0x6c53c020, 0x20cae: 0x6cb06220, 0x20caf: 0x6d110a20,
-	0x20cb4: 0x6ce8bc20, 0x20cb5: 0x6c148220, 0x20cb7: 0x6cfa3c20,
-	0x20cb8: 0x6cb5f620, 0x20cba: 0x6cbf3a20,
-	0x20cbd: 0x6c6d1220,
-	// Block 0x833, offset 0x20cc0
-	0x20cc8: 0x6d316020,
-	0x20ccc: 0x6d39ae20, 0x20cce: 0x6cf64420,
-	0x20cd0: 0x6cf22a20, 0x20cd1: 0x6d37f820,
-	0x20cd5: 0x6cdc4420,
-	0x20cd8: 0x6c781020, 0x20cd9: 0x6c7e0c20, 0x20cda: 0x6c777220,
-	0x20cdd: 0x6c176c20, 0x20cde: 0x6c09f020, 0x20cdf: 0x6ca13a20,
-	0x20ce0: 0x6d3b1220, 0x20ce1: 0x6c4edc20, 0x20ce2: 0x6d227820, 0x20ce3: 0x6d153220,
-	0x20ce4: 0x6c966c20, 0x20ce7: 0x6cb7aa20,
-	0x20ce8: 0x6c4c0020, 0x20ce9: 0x6c97e420, 0x20cea: 0x6c89f420, 0x20ceb: 0x6c8bc020,
-	0x20cec: 0x6d40c620, 0x20ced: 0x6c82cc20, 0x20cee: 0x6c56b220, 0x20cef: 0x6c209220,
-	0x20cf0: 0x6cb7ac20, 0x20cf1: 0x6c824420,
-	// Block 0x834, offset 0x20d00
-	0x20d01: 0x6c1ac420, 0x20d03: 0x6cb33020,
-	0x20d04: 0x6c2eca20,
-	0x20d0a: 0x6c82ce20,
-	0x20d0e: 0x6d160420,
-	0x20d13: 0x6c2d7620,
-	0x20d16: 0x6c33a420, 0x20d17: 0x6c42d620,
-	0x20d18: 0x6c54f220, 0x20d1a: 0x6cff0020, 0x20d1b: 0x6c40ca20,
-	0x20d1c: 0x6cae8020,
-	0x20d2c: 0x6cd06a20,
-	0x20d31: 0x6cef2a20,
-	0x20d3b: 0x6c335820,
-	0x20d3c: 0x6c177220, 0x20d3d: 0x6d1b0420, 0x20d3e: 0x6c7b3a20, 0x20d3f: 0x6c7a6020,
-	// Block 0x835, offset 0x20d40
-	0x20d41: 0x6d41ce20, 0x20d42: 0x6c47ca20,
-	0x20d45: 0x6d285420, 0x20d46: 0x6d36da20,
-	0x20d49: 0x6c629420, 0x20d4a: 0x6c199020,
-	0x20d56: 0x6d020e20,
-	0x20d5b: 0x6d419e20,
-	0x20d5c: 0x6c017420, 0x20d5d: 0x6c4fb220,
-	0x20d60: 0x6cb36020, 0x20d62: 0x6c2b9820, 0x20d63: 0x6d135820,
-	0x20d67: 0x6ca4c420,
-	0x20d71: 0x6c6b4220, 0x20d72: 0x6c059220, 0x20d73: 0x6c804020,
-	0x20d74: 0x6c124820, 0x20d76: 0x6c0a6620,
-	0x20d7b: 0x6d2e1a20,
-	0x20d7c: 0x6cb7e620,
-	// Block 0x836, offset 0x20d80
-	0x20d82: 0x6ca4c620,
-	0x20d85: 0x6c940c20, 0x20d87: 0x6c7c0a20,
-	0x20d89: 0x6ca08420, 0x20d8b: 0x6c82e620,
-	0x20d8c: 0x6cad7420,
-	0x20d92: 0x6c86c420, 0x20d93: 0x6c136420,
-	0x20d95: 0x6c299820, 0x20d96: 0x6c82e820,
-	0x20d99: 0x6c36cc20, 0x20d9b: 0x6c086020,
-	0x20d9c: 0x6c74e820,
-	0x20da5: 0x6d083420, 0x20da6: 0x6ca89420,
-	0x20da8: 0x6c4d7c20,
-	0x20dae: 0x6cfc4220,
-	0x20db0: 0x6c661620, 0x20db1: 0x6c9c9e20, 0x20db2: 0x6ca8a020,
-	0x20dbb: 0x6c124a20,
-	0x20dbc: 0x6cd97820, 0x20dbd: 0x6d2ba820, 0x20dbe: 0x6d194220,
-	// Block 0x837, offset 0x20dc0
-	0x20dc2: 0x6c1d3020,
-	0x20dc4: 0x6c125020,
-	0x20dc9: 0x6c830620, 0x20dca: 0x6caad220, 0x20dcb: 0x6c876420,
-	0x20dce: 0x6c84ba20, 0x20dcf: 0x6c957220,
-	0x20dd3: 0x6ce18a20,
-	0x20dd6: 0x6ca8c420, 0x20dd7: 0x6ca8c620,
-	0x20dd9: 0x6c5fae20, 0x20ddb: 0x6c831220,
-	0x20ddd: 0x6ca48020,
-	0x20de0: 0x6c8c1420, 0x20de1: 0x6c8dce20,
-	0x20de4: 0x6cfbe220, 0x20de5: 0x6d24a820, 0x20de7: 0x6d28ec20,
-	0x20de8: 0x6cc34a20, 0x20de9: 0x6c8ac020,
-	0x20def: 0x6d22ce20,
-	0x20df0: 0x6c597620,
-	0x20dfa: 0x6ca4de20,
-	0x20dfc: 0x6d0a7820, 0x20dfe: 0x6c711020, 0x20dff: 0x6c5dbc20,
-	// Block 0x838, offset 0x20e00
-	0x20e01: 0x6d179420,
-	0x20e0a: 0x6cf71420, 0x20e0b: 0x6ccb8a20,
-	0x20e0c: 0x6c697020, 0x20e0d: 0x6d1de020,
-	0x20e15: 0x6cd18c20, 0x20e16: 0x6c6d8420, 0x20e17: 0x6ced6e20,
-	0x20e18: 0x6d129e20, 0x20e19: 0x6c6f4420,
-	0x20e1c: 0x6c45d020,
-	0x20e21: 0x6c5aa020,
-	0x20e2a: 0x6c37a420,
-	0x20e35: 0x6c4e7a20,
-	0x20e3c: 0x6c3e3020,
-	// Block 0x839, offset 0x20e40
-	0x20e40: 0x6c3e4a20, 0x20e41: 0x6d3d4a20, 0x20e42: 0x6c5eb620,
-	0x20e4f: 0x6c053a20,
-	0x20e52: 0x6cb56620, 0x20e53: 0x6cd2a620,
-	0x20e55: 0x6c2df420, 0x20e56: 0x6cadfa20, 0x20e57: 0x6cfbe420,
-	0x20e58: 0x6cc9f620,
-	0x20e5d: 0x6c169220, 0x20e5e: 0x6d264620,
-	0x20e60: 0x6c455820, 0x20e62: 0x6cf34220,
-	0x20e64: 0x6c3b0a20, 0x20e67: 0x6c159020,
-	0x20e69: 0x6ca58420, 0x20e6a: 0x6c73d820,
-	0x20e6c: 0x6d2f8220, 0x20e6e: 0x6cb96c20,
-	0x20e71: 0x6c029820,
-	0x20e76: 0x6cedf820, 0x20e77: 0x6d379020,
-	0x20e79: 0x6c597820, 0x20e7b: 0x6c106620,
-	0x20e7c: 0x6d3a5a20, 0x20e7d: 0x6c092e20, 0x20e7e: 0x6c173620, 0x20e7f: 0x6d328620,
-	// Block 0x83a, offset 0x20e80
-	0x20e80: 0x6c3de620, 0x20e81: 0x6c79b820, 0x20e83: 0x6d422c20,
-	0x20e84: 0x6d086c20, 0x20e86: 0x6c3fb220,
-	0x20e8a: 0x6d118a20,
-	0x20e8d: 0x6c0e4e20, 0x20e8f: 0x6c06e220,
-	0x20e90: 0x6d007c20, 0x20e91: 0x6cd33020, 0x20e92: 0x6d149620,
-	0x20e94: 0x6c531020, 0x20e95: 0x6c251c20, 0x20e97: 0x6d16e620,
-	0x20e98: 0x6d3b7620,
-	0x20e9d: 0x6c1bf620,
-	0x20ea4: 0x6cb2fe20,
-	0x20ea8: 0x6d1a3a20,
-	0x20eb1: 0x6d260a20,
-	0x20eb6: 0x6c6edc20,
-	0x20eb9: 0x6c995c20, 0x20eba: 0x6cba4820,
-	0x20ebc: 0x6d172420,
-	// Block 0x83b, offset 0x20ec0
-	0x20ec0: 0x6cf3b220,
-	0x20ecd: 0x6c069820, 0x20ece: 0x6c5dbe20, 0x20ecf: 0x6c239420,
-	0x20ed0: 0x6c797220,
-	0x20ed5: 0x6cde4820, 0x20ed7: 0x6c4ea620,
-	0x20ed8: 0x6cba4e20,
-	0x20edc: 0x6d345420,
-	0x20ee2: 0x6ccb2420,
-	0x20ee5: 0x6cb8d620, 0x20ee6: 0x6c4cb420,
-	0x20ee9: 0x6c4bbe20,
-	0x20eec: 0x6c649820, 0x20eed: 0x6d37b820, 0x20eee: 0x6c9e2220, 0x20eef: 0x6c4afa20,
-	0x20ef0: 0x6cd37e20, 0x20ef1: 0x6ca1d220, 0x20ef2: 0x6c363220, 0x20ef3: 0x6c039e20,
-	0x20ef4: 0x6c7e7220,
-	0x20ef8: 0x6d392820, 0x20efa: 0x6c603020,
-	// Block 0x83c, offset 0x20f00
-	0x20f00: 0x6d2a4a20,
-	0x20f04: 0x6d2bd820, 0x20f05: 0x6d179820, 0x20f07: 0x6c468420,
-	0x20f0a: 0x6c4a6e20, 0x20f0b: 0x6d1bc420,
-	0x20f0c: 0x6ccc9820, 0x20f0d: 0x6c513420, 0x20f0e: 0x6c057820, 0x20f0f: 0x6ca12a20,
-	0x20f10: 0x6c9b1e20, 0x20f13: 0x6cf4fe20,
-	0x20f14: 0x6c277620, 0x20f17: 0x6c6f1620,
-	0x20f1c: 0x6c4ed020, 0x20f1f: 0x6ce70220,
-	0x20f20: 0x6c79be20, 0x20f21: 0x6c841220, 0x20f22: 0x6d368220, 0x20f23: 0x6c5bf420,
-	0x20f24: 0x6d296e20, 0x20f26: 0x6c2dfc20, 0x20f27: 0x6c244420,
-	0x20f31: 0x6d368420, 0x20f33: 0x6c7adc20,
-	0x20f35: 0x6cfe4a20, 0x20f36: 0x6c57ba20, 0x20f37: 0x6c8a0c20,
-	0x20f38: 0x6c255620, 0x20f39: 0x6cbb9a20, 0x20f3a: 0x6c692420,
-	0x20f3c: 0x6d05d020, 0x20f3d: 0x6c37da20, 0x20f3f: 0x6cead020,
-	// Block 0x83d, offset 0x20f40
-	0x20f40: 0x6ce00020, 0x20f41: 0x6d36a820,
-	0x20f48: 0x6ca51020, 0x20f49: 0x6c99ac20, 0x20f4a: 0x6c2c8c20, 0x20f4b: 0x6c135820,
-	0x20f4e: 0x6c693a20, 0x20f4f: 0x6c884820,
-	0x20f51: 0x6ccc1820, 0x20f52: 0x6c28aa20,
-	0x20f55: 0x6cdc6c20, 0x20f56: 0x6c884a20, 0x20f57: 0x6c4cf020,
-	0x20f5a: 0x6c0c7c20,
-	0x20f5c: 0x6c22e220, 0x20f5d: 0x6c2d7e20, 0x20f5e: 0x6c93fc20, 0x20f5f: 0x6ca64e20,
-	0x20f60: 0x6d0dda20, 0x20f61: 0x6c7fbc20,
-	0x20f64: 0x6c415620, 0x20f65: 0x6c1eb420,
-	0x20f69: 0x6c0a8820, 0x20f6a: 0x6d40ea20, 0x20f6b: 0x6c5c6620,
-	0x20f6d: 0x6c7f4220, 0x20f6e: 0x6cfbba20, 0x20f6f: 0x6c3bfc20,
-	0x20f70: 0x6c520220,
-	0x20f79: 0x6d124020, 0x20f7a: 0x6d2e3220,
-	0x20f7c: 0x6ca56620, 0x20f7e: 0x6c95d020,
-	// Block 0x83e, offset 0x20f80
-	0x20f80: 0x6d25d620, 0x20f82: 0x6ca5ac20,
-	0x20f89: 0x6cc58220,
-	0x20f9c: 0x6c43e820, 0x20f9e: 0x6c65a820, 0x20f9f: 0x6cb2b420,
-	0x20fa3: 0x6c0d1620,
-	0x20fa6: 0x6c66d020,
-	0x20fa9: 0x6c0e2e20,
-	0x20faf: 0x6c9d1820,
-	0x20fb0: 0x6c563420,
-	0x20fb4: 0x6c2df220, 0x20fb6: 0x6d1e8c20, 0x20fb7: 0x6d108c20,
-	0x20fb8: 0x6c07d020, 0x20fba: 0x6c189820, 0x20fbb: 0x6c5e8c20,
-	0x20fbd: 0x6d108e20,
-	// Block 0x83f, offset 0x20fc0
-	0x20fc7: 0x6c491020,
-	0x20fc8: 0x6d0e5e20,
-	0x20fd5: 0x6c1bc820, 0x20fd7: 0x6ccc3a20,
-	0x20fd8: 0x6d0d3820, 0x20fd9: 0x6d165e20, 0x20fda: 0x6d166020, 0x20fdb: 0x6c17fc20,
-	0x20fde: 0x6c4e8220, 0x20fdf: 0x6c597420,
-	0x20fe4: 0x6cd71020, 0x20fe5: 0x6cdc2220, 0x20fe6: 0x6cc56820, 0x20fe7: 0x6cdfcc20,
-	0x20fe8: 0x6d34e420, 0x20fea: 0x6c391e20, 0x20feb: 0x6c3cc620,
-	0x20ff0: 0x6cdfce20, 0x20ff2: 0x6c9c3620, 0x20ff3: 0x6cafb620,
-	0x20ff4: 0x6c106820, 0x20ff5: 0x6ca30e20, 0x20ff6: 0x6ce48220, 0x20ff7: 0x6c036620,
-	0x20ff8: 0x6d16b020,
-	// Block 0x840, offset 0x21000
-	0x21002: 0x6d0d4820,
-	0x21004: 0x6ce54c20, 0x21006: 0x6d10ce20, 0x21007: 0x6cd04c20,
-	0x21008: 0x6c77dc20, 0x21009: 0x6ce72420, 0x2100b: 0x6d084420,
-	0x21013: 0x6d202820,
-	0x21015: 0x6c043a20,
-	0x21019: 0x6cf9a220, 0x2101a: 0x6c938420, 0x2101b: 0x6c7dce20,
-	0x2101c: 0x6d29d220, 0x2101d: 0x6cc02c20,
-	0x21020: 0x6c243020, 0x21021: 0x6d416a20, 0x21022: 0x6c90e020,
-	0x21024: 0x6cf9a420,
-	0x2102f: 0x6ccfca20,
-	0x21032: 0x6cb43020,
-	0x21034: 0x6c6da620, 0x21035: 0x6cbaae20, 0x21036: 0x6d175820,
-	0x21038: 0x6ca81420, 0x21039: 0x6c32fc20, 0x2103b: 0x6c6ab420,
-	0x2103c: 0x6cdc3820, 0x2103d: 0x6d2e5820, 0x2103e: 0x6c23e420,
-	// Block 0x841, offset 0x21040
-	0x21041: 0x6c07e420, 0x21042: 0x6c491220, 0x21043: 0x6ccf2a20,
-	0x21045: 0x6c6cfe20, 0x21046: 0x6c2c3e20,
-	0x21051: 0x6c27d220, 0x21053: 0x6ca3a220,
-	0x21055: 0x6ca9fc20, 0x21057: 0x6c601820,
-	0x21058: 0x6d0c8220, 0x2105a: 0x6caa2020,
-	0x2105c: 0x6c325a20, 0x2105d: 0x6cf09020, 0x2105e: 0x6cb0f420,
-	0x21062: 0x6c555a20,
-	0x21064: 0x6c644020, 0x21065: 0x6d12ee20, 0x21066: 0x6c759220, 0x21067: 0x6c7f9c20,
-	0x21068: 0x6c7e7420, 0x21069: 0x6d19de20,
-	0x2106d: 0x6ce9a220,
-	0x21075: 0x6ca4f620,
-	0x2107a: 0x6d411c20,
-	0x2107f: 0x6c96c220,
-	// Block 0x842, offset 0x21080
-	0x21080: 0x6cd7f020, 0x21081: 0x6d365420,
-	0x21084: 0x6c5ac020, 0x21085: 0x6d3c8e20, 0x21087: 0x6c5bd820,
-	0x2108d: 0x6c1e8c20, 0x2108f: 0x6c182420,
-	0x21092: 0x6d04da20, 0x21093: 0x6c7fa220,
-	0x21095: 0x6c232620, 0x21096: 0x6cd0bc20, 0x21097: 0x6ca13c20,
-	0x21098: 0x6d140220, 0x21099: 0x6d111a20, 0x2109a: 0x6cf7fa20, 0x2109b: 0x6d419020,
-	0x2109c: 0x6c0e2820,
-	0x210a7: 0x6d216c20,
-	0x210a9: 0x6c927e20,
-	0x210ae: 0x6ce9b620, 0x210af: 0x6ceffe20,
-	0x210b1: 0x6c3b8820, 0x210b2: 0x6cd06c20,
-	0x210bb: 0x6c8a0e20,
-	// Block 0x843, offset 0x210c0
-	0x210c2: 0x6cd56a20, 0x210c3: 0x6c284220,
-	0x210c4: 0x6c732620, 0x210c5: 0x6d21a020, 0x210c6: 0x6d034a20, 0x210c7: 0x6d114220,
-	0x210c8: 0x6cda5820,
-	0x210d2: 0x6c5d8020,
-	0x210d4: 0x6cb92220,
-	0x210da: 0x6c967c20,
-	0x210dd: 0x6c767020,
-	0x210e1: 0x6c91e620, 0x210e3: 0x6d1ebc20,
-	0x210ee: 0x6cfd2e20,
-	0x210f9: 0x6cf40620, 0x210fb: 0x6d1b2020,
-	0x210fc: 0x6cf72c20, 0x210ff: 0x6d2d0820,
-	// Block 0x844, offset 0x21100
-	0x21100: 0x6d027020,
-	0x21104: 0x6cc1fa20,
-	0x21108: 0x6c84be20,
-	0x2110d: 0x6cb95820,
-	0x21114: 0x6c8dd020, 0x21115: 0x6c947820,
-	0x2111a: 0x6c14b220,
-	0x21126: 0x6d334420,
-	0x21128: 0x6d0c8420,
-	0x21132: 0x6d1b3820, 0x21133: 0x6c7c5c20,
-	0x21137: 0x6cc0d220,
-	0x21139: 0x6c3dd820, 0x2113b: 0x6d22d420,
-	// Block 0x845, offset 0x21140
-	0x21141: 0x6cb57e20,
-	0x21146: 0x6cb75620, 0x21147: 0x6c61a620,
-	0x21148: 0x6d24ce20,
-	0x2114e: 0x6c434420, 0x2114f: 0x6c734820,
-	0x21151: 0x6cb5a020, 0x21153: 0x6c411020,
-	0x21155: 0x6cc37220,
-	0x2115a: 0x6cf09220,
-	0x21167: 0x6d368620,
-	0x2116b: 0x6c65ba20,
-	0x2116d: 0x6cd8d620,
-	0x21170: 0x6d188c20, 0x21171: 0x6cb91c20,
-	0x2117c: 0x6c856220, 0x2117f: 0x6d29ce20,
-	// Block 0x846, offset 0x21180
-	0x21180: 0x6d168020, 0x21182: 0x6c110620, 0x21183: 0x6d168220,
-	0x21184: 0x6c437220, 0x21186: 0x6c2e6e20,
-	0x21188: 0x6d33a420, 0x21189: 0x6d16ec20, 0x2118b: 0x6d28fa20,
-	0x2118c: 0x6c275220, 0x2118e: 0x6cdab220,
-	0x21194: 0x6c6b4420, 0x21195: 0x6c193820, 0x21196: 0x6cc1fc20,
-	0x21198: 0x6c4e7820, 0x21199: 0x6cfb1e20,
-	0x211a0: 0x6cc2ae20, 0x211a1: 0x6c6a5620,
-	0x211a5: 0x6c733820,
-	0x211aa: 0x6c285c20,
-	0x211ad: 0x6c6c2420,
-	0x211b4: 0x6c0da820, 0x211b5: 0x6c551a20,
-	0x211b9: 0x6c73da20, 0x211bb: 0x6d20b020,
-	// Block 0x847, offset 0x211c0
-	0x211c3: 0x6c84fa20,
-	0x211c4: 0x6cbb0420, 0x211c5: 0x6cd70620, 0x211c6: 0x6c7a2420,
-	0x211c8: 0x6d31b620,
-	0x211cd: 0x6c3de820, 0x211ce: 0x6ccfac20,
-	0x211d2: 0x6c20c020,
-	0x211d5: 0x6ce72620, 0x211d7: 0x6d16ee20,
-	0x211d9: 0x6d0f9220,
-	0x211dc: 0x6ceafa20, 0x211dd: 0x6d385e20, 0x211de: 0x6c5ff220,
-	0x211e4: 0x6d0a7a20, 0x211e6: 0x6cd05220, 0x211e7: 0x6d078820,
-	0x211ed: 0x6c8e4820, 0x211ee: 0x6d24dc20, 0x211ef: 0x6c554220,
-	0x211f0: 0x6d334820, 0x211f3: 0x6cae6620,
-	0x211f7: 0x6c742220,
-	// Block 0x848, offset 0x21200
-	0x21202: 0x6d362020, 0x21203: 0x6cb0f620,
-	0x21204: 0x6d261820, 0x21206: 0x6c649a20,
-	0x2120a: 0x6cad0220,
-	0x2120e: 0x6d3bca20,
-	0x21210: 0x6cfb6e20, 0x21212: 0x6c080220,
-	0x21214: 0x6c232820, 0x21216: 0x6ca13e20,
-	0x2121a: 0x6c4c7420,
-	0x2121e: 0x6c1a3420, 0x2121f: 0x6cbb9c20,
-	0x21226: 0x6c0a4a20,
-	0x21229: 0x6cbb4820, 0x2122b: 0x6d38aa20,
-	0x21232: 0x6c38d020, 0x21233: 0x6c0cc420,
-	0x2123e: 0x6c0fa020, 0x2123f: 0x6cc73220,
-	// Block 0x849, offset 0x21240
-	0x21245: 0x6c2f8820, 0x21246: 0x6cc32e20, 0x21247: 0x6c703c20,
-	0x21248: 0x6d117420,
-	0x21253: 0x6cf98620,
-	0x21256: 0x6d2a3e20,
-	0x2125d: 0x6c27c820, 0x2125f: 0x6cf44420,
-	0x21260: 0x6ceb1420, 0x21262: 0x6c54c820,
-	0x21267: 0x6cf64620,
-	0x2126c: 0x6c7f1a20, 0x2126e: 0x6c3a1620,
-	0x21279: 0x6c55ec20,
-	// Block 0x84a, offset 0x21280
-	0x21286: 0x6cfa7220,
-	0x21289: 0x6ccd2c20,
-	0x2128d: 0x6c3a8420,
-	0x21290: 0x6c261820, 0x21292: 0x6c3e3220,
-	0x21294: 0x6c1f3020,
-	0x2129d: 0x6c2fd020, 0x2129e: 0x6c807020,
-	0x212a9: 0x6cf7fc20,
-	0x212af: 0x6c0c1420,
-	0x212b0: 0x6d23e820, 0x212b1: 0x6cdc6e20, 0x212b2: 0x6cf80c20,
-	0x212b7: 0x6cb3e620,
-	0x212be: 0x6c697c20,
-	// Block 0x84b, offset 0x212c0
-	0x212c0: 0x6d166420, 0x212c3: 0x6cecb820,
-	0x212c4: 0x6c611e20, 0x212c6: 0x6cecc620, 0x212c7: 0x6ce9f220,
-	0x212cb: 0x6c021020,
-	0x212cd: 0x6ce45820, 0x212ce: 0x6c1b0020,
-	0x212d2: 0x6cc46220,
-	0x212d4: 0x6cc96820, 0x212d5: 0x6d1a2c20, 0x212d6: 0x6caf3420, 0x212d7: 0x6c228e20,
-	0x212d8: 0x6ce71a20, 0x212d9: 0x6d1ace20,
-	0x212dc: 0x6c43c820, 0x212dd: 0x6ce55020, 0x212de: 0x6d329620, 0x212df: 0x6d390c20,
-	0x212e1: 0x6d149820, 0x212e2: 0x6c7ae420, 0x212e3: 0x6cd90c20,
-	0x212e7: 0x6c2c2820,
-	0x212ec: 0x6d008820, 0x212ee: 0x6cfe9e20, 0x212ef: 0x6c4a1c20,
-	0x212f0: 0x6ceb7420, 0x212f1: 0x6c3c3620, 0x212f2: 0x6cf3b420,
-	0x212f5: 0x6d053220,
-	0x212ff: 0x6d1f1620,
-	// Block 0x84c, offset 0x21300
-	0x21301: 0x6c8ce020, 0x21302: 0x6d0e6020,
-	0x21305: 0x6c2ff620, 0x21306: 0x6cb77e20, 0x21307: 0x6ce21a20,
-	0x21308: 0x6c4dfc20, 0x2130a: 0x6c1b1c20, 0x2130b: 0x6cd91820,
-	0x21311: 0x6cc35820,
-	0x21314: 0x6c4ea820,
-	0x2131f: 0x6cc77820,
-	0x21320: 0x6cb78e20, 0x21321: 0x6c762c20, 0x21322: 0x6d211e20, 0x21323: 0x6c139a20,
-	0x21324: 0x6c1a8220, 0x21325: 0x6d233a20, 0x21327: 0x6c0e2020,
-	0x21329: 0x6c231220, 0x2132a: 0x6d39a420,
-	0x2132c: 0x6d235420,
-	0x21331: 0x6c744a20, 0x21332: 0x6c8f3620, 0x21333: 0x6ccab220,
-	0x21334: 0x6d236820,
-	// Block 0x84d, offset 0x21340
-	0x21345: 0x6cd66820,
-	0x2134b: 0x6d262020,
-	0x2134e: 0x6d2eba20,
-	0x21351: 0x6cd66a20, 0x21353: 0x6c1ee420,
-	0x21354: 0x6d2ec620, 0x21355: 0x6cca2020, 0x21356: 0x6cfabe20,
-	0x21358: 0x6c24d820, 0x21359: 0x6c9bde20, 0x2135a: 0x6c2b7c20,
-	0x2135e: 0x6d368820, 0x2135f: 0x6c02de20,
-	0x21366: 0x6d04e020,
-	0x21368: 0x6cb11e20, 0x2136a: 0x6c69bc20, 0x2136b: 0x6c7b6c20,
-	0x2136c: 0x6cc98620, 0x2136d: 0x6cfcf420, 0x2136e: 0x6d2cda20, 0x2136f: 0x6c2d7820,
-	0x21377: 0x6d154420,
-	0x2137a: 0x6c5c2e20, 0x2137b: 0x6ccda620,
-	// Block 0x84e, offset 0x21380
-	0x21384: 0x6c1d2220, 0x21385: 0x6d156220, 0x21386: 0x6d021220, 0x21387: 0x6d36dc20,
-	0x21388: 0x6ce5e020, 0x2138a: 0x6cb26c20, 0x2138b: 0x6cfbb020,
-	0x2138e: 0x6cfadc20, 0x2138f: 0x6cdb4c20,
-	0x21391: 0x6c24a020,
-	0x21397: 0x6cd97220,
-	0x2139b: 0x6c522820,
-	0x2139d: 0x6cfd3a20, 0x2139f: 0x6d1f8e20,
-	0x213a1: 0x6d246420,
-	0x213a4: 0x6cdf5220, 0x213a6: 0x6c751820, 0x213a7: 0x6ca48220,
-	0x213a9: 0x6c2cba20, 0x213ab: 0x6d164820,
-	0x213ac: 0x6c090620,
-	0x213b3: 0x6d056220,
-	0x213b4: 0x6d166820, 0x213b5: 0x6cc81020, 0x213b7: 0x6c455a20,
-	0x213ba: 0x6d166a20,
-	0x213bf: 0x6d356e20,
-	// Block 0x84f, offset 0x213c0
-	0x213c0: 0x6d02a420, 0x213c2: 0x6c617820,
-	0x213c4: 0x6cfa2c20,
-	0x213c8: 0x6d2f4e20, 0x213c9: 0x6ca54620, 0x213ca: 0x6d015620,
-	0x213ce: 0x6d168620,
-	0x213eb: 0x6c3f3420,
-	0x213ed: 0x6ccf3420, 0x213ef: 0x6d253c20,
-	0x213f0: 0x6c390420, 0x213f2: 0x6c3d3c20, 0x213f3: 0x6cf4a820,
-	0x213f4: 0x6cf57c20, 0x213f5: 0x6c539c20,
-	0x213f9: 0x6c618220, 0x213fa: 0x6c170420,
-	0x213ff: 0x6ca0ca20,
-	// Block 0x850, offset 0x21400
-	0x21400: 0x6cae0820, 0x21403: 0x6ca20e20,
-	0x21404: 0x6cc00420, 0x21405: 0x6c994a20, 0x21407: 0x6c268020,
-	0x21409: 0x6cf98c20, 0x2140a: 0x6ccfae20, 0x2140b: 0x6ce26c20,
-	0x2140c: 0x6c530220, 0x2140d: 0x6c093620,
-	0x2141d: 0x6ca62620, 0x2141f: 0x6cbbd220,
-	0x21427: 0x6cc84e20,
-	0x21438: 0x6c67d820, 0x21439: 0x6c138420, 0x2143a: 0x6c9ce220,
-	0x2143d: 0x6d16f020, 0x2143f: 0x6cdd0a20,
-	// Block 0x851, offset 0x21440
-	0x21441: 0x6cf4c220, 0x21442: 0x6d078420,
-	0x21445: 0x6cf76c20, 0x21447: 0x6d15d020,
-	0x21450: 0x6ca49a20, 0x21453: 0x6cf07820,
-	0x2146e: 0x6c770220,
-	0x21471: 0x6c906020, 0x21472: 0x6c938620, 0x21473: 0x6d3c2a20,
-	0x2147a: 0x6d35b420,
-	0x2147c: 0x6d042220, 0x2147e: 0x6c44f820, 0x2147f: 0x6c6ce620,
-	// Block 0x852, offset 0x21480
-	0x21480: 0x6cfca420, 0x21481: 0x6c61c820, 0x21482: 0x6c261a20,
-	0x21484: 0x6c815020, 0x21485: 0x6c3bb820, 0x21486: 0x6c722a20,
-	0x2148b: 0x6c9eb220,
-	0x2148c: 0x6cf9a620,
-	0x21491: 0x6cda8c20,
-	0x214a8: 0x6d35b620, 0x214aa: 0x6c567e20, 0x214ab: 0x6c79e220,
-	0x214ad: 0x6cdd5820, 0x214ae: 0x6ca68e20,
-	0x214ba: 0x6ce28c20, 0x214bb: 0x6d3ace20,
-	// Block 0x853, offset 0x214c0
-	0x214c1: 0x6c269820, 0x214c3: 0x6cc04420,
-	0x214c4: 0x6d0b9820, 0x214c6: 0x6cfb4820,
-	0x214c9: 0x6ca58820,
-	0x214cd: 0x6d351420, 0x214ce: 0x6c0ce620,
-	0x214d2: 0x6c1d3a20, 0x214d3: 0x6c7f9820,
-	0x214d4: 0x6c2ff820, 0x214d5: 0x6cc43a20, 0x214d6: 0x6cfe2e20,
-	0x214d8: 0x6cff8020, 0x214d9: 0x6ced0620, 0x214da: 0x6cc81420, 0x214db: 0x6cee5020,
-	0x214dc: 0x6ca69820, 0x214de: 0x6c03fe20, 0x214df: 0x6d0b9a20,
-	0x214e5: 0x6cd7e220, 0x214e6: 0x6d1ad820,
-	0x214e8: 0x6d231220,
-	0x214ee: 0x6c83b820, 0x214ef: 0x6c5dc020,
-	// Block 0x854, offset 0x21500
-	0x21517: 0x6c056820,
-	0x21523: 0x6cf5e620,
-	0x21525: 0x6c6f6a20,
-	0x21528: 0x6d01ac20, 0x21529: 0x6cb8e020, 0x2152a: 0x6caaf820, 0x2152b: 0x6d040020,
-	0x2152c: 0x6c344e20, 0x2152d: 0x6c614020, 0x2152e: 0x6cf44a20, 0x2152f: 0x6ca21220,
-	0x21530: 0x6d0e6e20, 0x21531: 0x6cb79020, 0x21532: 0x6ca2de20, 0x21533: 0x6c1c1e20,
-	0x21534: 0x6c540220, 0x21536: 0x6ccaf220,
-	0x21538: 0x6ca4aa20, 0x2153b: 0x6c1a7020,
-	0x2153c: 0x6c1a7220, 0x2153d: 0x6c7cd020, 0x2153f: 0x6c644220,
-	// Block 0x855, offset 0x21540
-	0x21540: 0x6ce8ac20, 0x21542: 0x6c319a20,
-	0x21545: 0x6cf9c220, 0x21546: 0x6d382e20, 0x21547: 0x6c5dcc20,
-	0x21548: 0x6c1d1620, 0x21549: 0x6c26a420,
-	0x2154c: 0x6c997c20, 0x2154d: 0x6d120620,
-	0x21553: 0x6c72f220,
-	0x2156c: 0x6cd38420, 0x2156f: 0x6d1a6420,
-	0x21573: 0x6c478a20,
-	0x21574: 0x6cf4ec20,
-	0x21578: 0x6c4cee20, 0x21579: 0x6ce3f620, 0x2157b: 0x6c52a220,
-	// Block 0x856, offset 0x21580
-	0x21587: 0x6cc54e20,
-	0x21589: 0x6d14f420, 0x2158b: 0x6cea7c20,
-	0x2158f: 0x6cbf3c20,
-	0x21590: 0x6c4d6e20, 0x21592: 0x6cb79e20,
-	0x21595: 0x6c5dd820, 0x21596: 0x6ce40020, 0x21597: 0x6caf7020,
-	0x2159a: 0x6c451020,
-	0x2159c: 0x6d01c420, 0x2159e: 0x6c9d5620, 0x2159f: 0x6c434c20,
-	0x215a0: 0x6cddf020, 0x215a1: 0x6cfdec20, 0x215a3: 0x6cd4e620,
-	0x215a6: 0x6c3e9820,
-	0x215ac: 0x6d3b7e20, 0x215ad: 0x6c8f3820,
-	// Block 0x857, offset 0x215c0
-	0x215c5: 0x6d1f4420,
-	0x215ca: 0x6c1a7820, 0x215cb: 0x6c330620,
-	0x215e2: 0x6c841420, 0x215e3: 0x6d105820,
-	0x215e4: 0x6c841620, 0x215e7: 0x6c91c820,
-	0x215e8: 0x6ca24e20, 0x215e9: 0x6cdc5220, 0x215ea: 0x6c00b620,
-	0x215ed: 0x6c79f420, 0x215ef: 0x6d306a20,
-	0x215f0: 0x6c00b820, 0x215f1: 0x6ce2a620, 0x215f3: 0x6c93ea20,
-	0x215f4: 0x6ce9ac20, 0x215f5: 0x6c088020,
-	0x215fe: 0x6c5bf620, 0x215ff: 0x6c588a20,
-	// Block 0x858, offset 0x21600
-	0x2161b: 0x6c7e0e20,
-	0x2161d: 0x6d02e020,
-	0x21621: 0x6ccaf420,
-	0x2162b: 0x6cd5f020,
-	0x2162c: 0x6cc3da20, 0x2162d: 0x6c035620, 0x2162e: 0x6cea0620,
-	0x21632: 0x6c403220, 0x21633: 0x6c0cba20,
-	0x21635: 0x6ce17e20, 0x21637: 0x6cfe4c20,
-	0x21639: 0x6cd81420, 0x2163a: 0x6c0f4020,
-	0x2163c: 0x6c970020, 0x2163d: 0x6c298020, 0x2163f: 0x6c4b6420,
-	// Block 0x859, offset 0x21640
-	0x21640: 0x6c522020, 0x21641: 0x6cf69a20, 0x21642: 0x6c298220, 0x21643: 0x6d184e20,
-	0x21645: 0x6c088420, 0x21647: 0x6c472c20,
-	0x21648: 0x6c255820, 0x21649: 0x6ccb4420,
-	0x2164d: 0x6c441e20, 0x2164e: 0x6d23c220, 0x2164f: 0x6ca2fa20,
-	0x21651: 0x6c865620, 0x21652: 0x6d36ac20,
-	0x21670: 0x6d2fd420,
-	0x21674: 0x6c5f1220, 0x21675: 0x6cc87220,
-	0x21679: 0x6c1d5820,
-	// Block 0x85a, offset 0x21680
-	0x21682: 0x6c6b1820,
-	0x2168c: 0x6c172020, 0x2168d: 0x6d307a20,
-	0x21692: 0x6cdb1020, 0x21693: 0x6d1db020,
-	0x21696: 0x6cb7d420, 0x21697: 0x6d3d9820,
-	0x2169a: 0x6c769620,
-	0x2169c: 0x6d133c20, 0x2169e: 0x6cb7d620,
-	0x216b9: 0x6d04a420,
-	// Block 0x85b, offset 0x216c0
-	0x216c9: 0x6d141420, 0x216ca: 0x6c1e3020,
-	0x216ce: 0x6ce98020, 0x216cf: 0x6c00da20,
-	0x216d0: 0x6cb1f220, 0x216d3: 0x6c8b3620,
-	0x216d4: 0x6c9dd820, 0x216d5: 0x6c00dc20, 0x216d7: 0x6ca0ae20,
-	0x216d8: 0x6cf0e220, 0x216d9: 0x6d1d5220, 0x216da: 0x6ca65020,
-	0x216de: 0x6c0f7420,
-	0x216e0: 0x6c8f4620,
-	0x216f3: 0x6cc8e620,
-	0x216fb: 0x6c936620,
-	0x216fc: 0x6c140c20, 0x216ff: 0x6c1f8620,
-	// Block 0x85c, offset 0x21700
-	0x21701: 0x6ccb0220, 0x21702: 0x6c847020,
-	0x21704: 0x6cd94620, 0x21706: 0x6c86c620,
-	0x2170b: 0x6cf90420,
-	0x2170d: 0x6d0c3e20, 0x2170e: 0x6c25ce20,
-	0x21710: 0x6c8eb620,
-	0x21718: 0x6c9b6c20, 0x2171a: 0x6d2e8a20,
-	0x21724: 0x6d3c4c20, 0x21727: 0x6c9ea620,
-	0x21729: 0x6c86f220, 0x2172b: 0x6c71da20,
-	0x2172f: 0x6d025220,
-	0x21730: 0x6d025420, 0x21731: 0x6c904220, 0x21732: 0x6c8fc220,
-	// Block 0x85d, offset 0x21740
-	0x21742: 0x6ce2c620, 0x21743: 0x6d3b3820,
-	0x2174b: 0x6c155220,
-	0x2174c: 0x6cfc4420, 0x2174f: 0x6d1cc220,
-	0x21750: 0x6cae2a20,
-	0x21758: 0x6d012220, 0x2175a: 0x6c69dc20,
-	0x2175e: 0x6c1cf820,
-	0x21773: 0x6c50ae20,
-	0x2177d: 0x6cea8420,
-	// Block 0x85e, offset 0x21780
-	0x21785: 0x6c53b220,
-	0x21788: 0x6c97b020, 0x2178a: 0x6c6c7a20,
-	0x2178c: 0x6cc17020, 0x2178d: 0x6c30d420, 0x2178e: 0x6cbff820, 0x2178f: 0x6d28ee20,
-	0x21791: 0x6cd0d420, 0x21792: 0x6d28f020,
-	0x21795: 0x6d15ba20,
-	0x2179a: 0x6c578020,
-	0x2179f: 0x6c76a220,
-	0x217b0: 0x6d268e20, 0x217b1: 0x6ca68420, 0x217b2: 0x6cd7d620,
-	0x217b4: 0x6cf2aa20,
-	0x217b8: 0x6c118e20, 0x217ba: 0x6c647c20,
-	0x217bc: 0x6c9ecc20, 0x217bd: 0x6ccea020, 0x217bf: 0x6cc70820,
-	// Block 0x85f, offset 0x217c0
-	0x217c0: 0x6c419220,
-	0x217c5: 0x6cbb0a20, 0x217c7: 0x6cd52a20,
-	0x217c8: 0x6d3d5820,
-	0x217cf: 0x6cd1bc20,
-	0x217d1: 0x6ce3f820,
-	0x217d6: 0x6d2c3620, 0x217d7: 0x6d2d7e20,
-	0x217dd: 0x6c3bdc20, 0x217de: 0x6c9eda20,
-	0x217e0: 0x6d2b5220,
-	0x217e4: 0x6d368a20, 0x217e5: 0x6cb90020, 0x217e6: 0x6c4ede20, 0x217e7: 0x6c440e20,
-	0x217ee: 0x6c119e20,
-	0x217f0: 0x6c4c7820, 0x217f1: 0x6c685e20, 0x217f3: 0x6d1da220,
-	0x217f4: 0x6c026820,
-	0x217fb: 0x6d2c4620,
-	0x217fd: 0x6cf8c420,
-	// Block 0x860, offset 0x21800
-	0x21801: 0x6d05d220, 0x21802: 0x6cf46620,
-	0x2180f: 0x6c74b820,
-	0x21810: 0x6c5f2a20, 0x21812: 0x6c1c6a20,
-	0x21814: 0x6ced5420, 0x21816: 0x6c9ef220, 0x21817: 0x6d2b6420,
-	0x2181c: 0x6c6b6e20, 0x2181d: 0x6cd29220, 0x2181f: 0x6cf72e20,
-	0x21821: 0x6c36e220,
-	0x21825: 0x6c564220, 0x21826: 0x6c564a20,
-	0x21828: 0x6c857020, 0x2182b: 0x6c1f0820,
-	0x2182e: 0x6d13c820, 0x2182f: 0x6c992c20,
-	0x21830: 0x6d056c20, 0x21831: 0x6d379820, 0x21833: 0x6d16b820,
-	0x2183a: 0x6c89de20,
-	0x2183f: 0x6c647820,
-	// Block 0x861, offset 0x21840
-	0x21840: 0x6c656e20, 0x21841: 0x6c70fa20,
-	0x21844: 0x6d3abc20,
-	0x21848: 0x6cf43a20,
-	0x2184f: 0x6c78a420,
-	0x21850: 0x6c786020, 0x21851: 0x6c860e20, 0x21852: 0x6c08dc20, 0x21853: 0x6c43ec20,
-	0x21855: 0x6d059820, 0x21856: 0x6ccbfa20, 0x21857: 0x6c8d1c20,
-	0x21858: 0x6c781220,
-	0x2185e: 0x6c0f4220, 0x2185f: 0x6c0b0820,
-	0x21860: 0x6cd68820, 0x21861: 0x6cb66e20, 0x21862: 0x6ccde420,
-	0x21866: 0x6c5e6420,
-	0x21868: 0x6cbc1c20,
-	0x2186e: 0x6d166c20, 0x2186f: 0x6c73d020,
-	0x21870: 0x6d2efe20, 0x21872: 0x6d031620,
-	0x21877: 0x6cea9a20,
-	0x21878: 0x6c4d5020, 0x21879: 0x6cfa2e20, 0x2187b: 0x6ceae020,
-	0x2187c: 0x6d145620,
-	// Block 0x862, offset 0x21880
-	0x21883: 0x6c242c20,
-	0x21887: 0x6c674620,
-	0x21888: 0x6ca3de20, 0x2188b: 0x6caf0020,
-	0x2188d: 0x6c6a7020, 0x2188e: 0x6d08d820, 0x2188f: 0x6c552020,
-	0x218a5: 0x6d1f9e20, 0x218a6: 0x6caa4c20, 0x218a7: 0x6d12c220,
-	0x218aa: 0x6d1b3a20,
-	0x218ac: 0x6c799420,
-	0x218b6: 0x6cfe8420, 0x218b7: 0x6cfd6220,
-	0x218bc: 0x6ca49620, 0x218be: 0x6d2f2420,
-	// Block 0x863, offset 0x218c0
-	0x218d0: 0x6c6a7c20, 0x218d3: 0x6caa5020,
-	0x218d4: 0x6ccd7020,
-	0x218e2: 0x6c63a020,
-	0x218e7: 0x6d38dc20,
-	0x218e8: 0x6cc6fe20, 0x218eb: 0x6c922220,
-	0x218ec: 0x6cc96e20, 0x218ed: 0x6caa6020, 0x218ef: 0x6c0ec420,
-	0x218f0: 0x6d302220, 0x218f2: 0x6cbdca20,
-	0x218f4: 0x6c21f620, 0x218f5: 0x6d40ac20, 0x218f7: 0x6cf2ac20,
-	0x218f8: 0x6cf43620, 0x218fb: 0x6ca7e020,
-	0x218ff: 0x6cfa8820,
-	// Block 0x864, offset 0x21900
-	0x21900: 0x6c531220,
-	0x2192b: 0x6ce6e820,
-	0x2192c: 0x6c6c8a20,
-	0x21931: 0x6c6aa420, 0x21932: 0x6c51c020, 0x21933: 0x6ce84c20,
-	0x21934: 0x6d303a20, 0x21935: 0x6cb1ec20, 0x21936: 0x6c6ce820, 0x21937: 0x6ca44420,
-	0x2193c: 0x6c33e820, 0x2193e: 0x6cf5be20, 0x2193f: 0x6d018020,
-	// Block 0x865, offset 0x21940
-	0x21941: 0x6cf86c20, 0x21942: 0x6c815220, 0x21943: 0x6c32ac20,
-	0x21944: 0x6c61ca20, 0x21945: 0x6c138a20, 0x21946: 0x6c1d6620,
-	0x21948: 0x6c427020,
-	0x2194e: 0x6cfdb820, 0x2194f: 0x6c29d620,
-	0x21965: 0x6c0b8e20, 0x21966: 0x6cfea020, 0x21967: 0x6d02c220,
-	// Block 0x866, offset 0x21980
-	0x21981: 0x6d224c20, 0x21982: 0x6cfb4a20, 0x21983: 0x6c83ba20,
-	0x21984: 0x6cba0020, 0x21987: 0x6c9a5420,
-	0x21989: 0x6cbb6c20, 0x2198a: 0x6d0b9e20,
-	0x2198c: 0x6cb82a20, 0x2198d: 0x6cbf8a20, 0x2198f: 0x6c056a20,
-	0x21990: 0x6d32b220,
-	0x2199a: 0x6d2b4a20, 0x2199b: 0x6cd68e20,
-	0x2199e: 0x6ccaf020,
-	// Block 0x867, offset 0x219c0
-	0x219c5: 0x6c923a20,
-	0x219c9: 0x6d009e20, 0x219cb: 0x6c3f5c20,
-	0x219cc: 0x6d2d3a20,
-	0x219e9: 0x6d2b5020, 0x219eb: 0x6c32c220,
-	0x219ed: 0x6c2ad620, 0x219ee: 0x6d233c20,
-	0x219f0: 0x6c93de20, 0x219f2: 0x6ced8220, 0x219f3: 0x6d090e20,
-	0x219f4: 0x6c68f420, 0x219f5: 0x6d266420, 0x219f6: 0x6d362420, 0x219f7: 0x6cefc420,
-	0x219f9: 0x6c43ee20, 0x219fa: 0x6c71b420,
-	0x219fc: 0x6d0d8420, 0x219fd: 0x6c262620, 0x219fe: 0x6c997e20,
-	// Block 0x868, offset 0x21a00
-	0x21a06: 0x6c3e7820, 0x21a07: 0x6c002820,
-	0x21a0a: 0x6d079e20,
-	0x21a0c: 0x6c427e20, 0x21a0d: 0x6c013220,
-	0x21a12: 0x6c603620,
-	0x21a18: 0x6cafea20, 0x21a19: 0x6d352820,
-	0x21a1c: 0x6caac020,
-	0x21a3f: 0x6cacbc20,
-	// Block 0x869, offset 0x21a40
-	0x21a41: 0x6d14f620,
-	0x21a44: 0x6c6ac820, 0x21a46: 0x6d3e3820,
-	0x21a48: 0x6c644420, 0x21a49: 0x6cec6420,
-	0x21a4c: 0x6c644620,
-	0x21a5f: 0x6c15c020,
-	0x21a61: 0x6cdd7420, 0x21a62: 0x6cdd7620, 0x21a63: 0x6c605020,
-	0x21a64: 0x6cd96420, 0x21a66: 0x6ce2f420, 0x21a67: 0x6caf7420,
-	0x21a68: 0x6cb32c20,
-	0x21a6e: 0x6c9d5a20,
-	0x21a74: 0x6d12fc20, 0x21a76: 0x6cbe1c20, 0x21a77: 0x6c6d1620,
-	0x21a7a: 0x6c73ae20,
-	0x21a7d: 0x6d24f420, 0x21a7e: 0x6cc83e20,
-	// Block 0x86a, offset 0x21a80
-	0x21a94: 0x6c04fa20,
-	0x21ab0: 0x6c0d3a20,
-	0x21ab4: 0x6cf0ae20, 0x21ab5: 0x6d2a8820, 0x21ab6: 0x6cbcd020, 0x21ab7: 0x6cd9ce20,
-	0x21ab8: 0x6c91ca20,
-	0x21abc: 0x6c2ecc20, 0x21abd: 0x6c1fb820, 0x21abe: 0x6c09f620, 0x21abf: 0x6d3a1a20,
-	// Block 0x86b, offset 0x21ac0
-	0x21ac0: 0x6c966220, 0x21ac1: 0x6c3aba20, 0x21ac2: 0x6cb1cc20, 0x21ac3: 0x6d1b6620,
-	0x21ac4: 0x6d08a220, 0x21ac6: 0x6c02e020, 0x21ac7: 0x6d3d7820,
-	0x21ac8: 0x6d40c820, 0x21acb: 0x6c08ea20,
-	0x21ad1: 0x6c812620, 0x21ad3: 0x6ce40820,
-	0x21ad9: 0x6ce5c820, 0x21ada: 0x6c64c820,
-	0x21adf: 0x6ce7c020,
-	0x21afd: 0x6c343420, 0x21afe: 0x6c308420,
-	// Block 0x86c, offset 0x21b00
-	0x21b02: 0x6c0b4220,
-	0x21b20: 0x6d36b020, 0x21b22: 0x6c3b8a20,
-	0x21b26: 0x6c776a20, 0x21b27: 0x6d36b220,
-	0x21b28: 0x6d2cfc20, 0x21b29: 0x6c0a1e20, 0x21b2a: 0x6c7b6e20,
-	0x21b2c: 0x6c050220, 0x21b2d: 0x6c73b820, 0x21b2e: 0x6cc13420,
-	0x21b30: 0x6cb51e20, 0x21b31: 0x6c824e20, 0x21b32: 0x6d00da20, 0x21b33: 0x6ce0ca20,
-	0x21b3c: 0x6cd9d420, 0x21b3e: 0x6c075020,
-	// Block 0x86d, offset 0x21b40
-	0x21b47: 0x6d106820,
-	0x21b48: 0x6c65ce20,
-	0x21b65: 0x6d2a8a20,
-	// Block 0x86e, offset 0x21b80
-	0x21b80: 0x6d3b6a20, 0x21b83: 0x6c38b820,
-	0x21b85: 0x6ccf2420, 0x21b87: 0x6cbf5e20,
-	0x21b89: 0x6cb3a020, 0x21b8b: 0x6ce60220,
-	0x21b8c: 0x6ccc1a20, 0x21b8d: 0x6d28c820,
-	0x21b91: 0x6ca7ac20, 0x21b92: 0x6c48fa20, 0x21b93: 0x6c250a20,
-	0x21ba1: 0x6cbc5e20, 0x21ba3: 0x6c2ee420,
-	0x21bb3: 0x6cb1ee20,
-	0x21bb4: 0x6c226a20, 0x21bb6: 0x6c058e20,
-	// Block 0x86f, offset 0x21bc0
-	0x21bcd: 0x6d1b8a20,
-	0x21bd1: 0x6cfc3020,
-	0x21bd4: 0x6d161820, 0x21bd5: 0x6c9e9e20, 0x21bd6: 0x6c32b220, 0x21bd7: 0x6d395620,
-	0x21bd9: 0x6c798c20,
-	0x21be2: 0x6d2ee020,
-	0x21bf6: 0x6c8eb820,
-	0x21bf8: 0x6d355820, 0x21bf9: 0x6c15ee20, 0x21bfa: 0x6c31ca20, 0x21bfb: 0x6d25c020,
-	0x21bfe: 0x6cddd220, 0x21bff: 0x6c6b5820,
-	// Block 0x870, offset 0x21c00
-	0x21c00: 0x6c86c820, 0x21c01: 0x6c460420,
-	0x21c0c: 0x6c054220,
-	0x21c17: 0x6c4c9220,
-	0x21c18: 0x6c8a3420, 0x21c19: 0x6cd08220,
-	0x21c23: 0x6ca7c020,
-	0x21c25: 0x6c24bc20, 0x21c26: 0x6cf04c20,
-	0x21c28: 0x6cead620, 0x21c2b: 0x6cda6020,
-	0x21c2d: 0x6c8fc420,
-	0x21c33: 0x6cff3820,
-	0x21c34: 0x6d0df820,
-	// Block 0x871, offset 0x21c40
-	0x21c43: 0x6cbebe20,
-	0x21c4d: 0x6cf73020, 0x21c4f: 0x6d21e220,
-	0x21c51: 0x6d337220, 0x21c52: 0x6d027420, 0x21c53: 0x6c146e20,
-	0x21c54: 0x6c3c0020, 0x21c56: 0x6c4c9c20,
-	0x21c58: 0x6c6e3e20, 0x21c59: 0x6c808220, 0x21c5a: 0x6cfafe20,
-	0x21c5d: 0x6c8d8e20,
-	0x21c6e: 0x6c830020,
-	0x21c72: 0x6c760220, 0x21c73: 0x6d002a20,
-	0x21c7c: 0x6d28d820,
-	// Block 0x872, offset 0x21c80
-	0x21c84: 0x6c493e20, 0x21c85: 0x6cbd0820, 0x21c86: 0x6c963e20, 0x21c87: 0x6d124a20,
-	0x21c88: 0x6c945620, 0x21c89: 0x6cdeee20,
-	0x21c91: 0x6c964020,
-	0x21c9e: 0x6c03a420, 0x21c9f: 0x6c165420,
-	0x21ca1: 0x6d3dec20,
-	0x21cab: 0x6ce5d020,
-	0x21caf: 0x6cecaa20,
-	0x21cb0: 0x6c8dd420,
-	0x21cb4: 0x6d24aa20, 0x21cb5: 0x6cb72c20, 0x21cb7: 0x6cb58020,
-	0x21cbc: 0x6c619420, 0x21cbd: 0x6c0eb620, 0x21cbf: 0x6cd1a420,
-	// Block 0x873, offset 0x21cc0
-	0x21cc0: 0x6c3f4a20, 0x21cc2: 0x6c4a4620,
-	0x21cc5: 0x6c2d0e20, 0x21cc7: 0x6c4fa420,
-	0x21cc9: 0x6c411220, 0x21ccb: 0x6cb5c820,
-	0x21cd3: 0x6c19fe20,
-	0x21cd4: 0x6c5bc220, 0x21cd7: 0x6cf9cc20,
-	0x21cd8: 0x6cd27020, 0x21cd9: 0x6d365820, 0x21cda: 0x6cb61420,
-	0x21cdc: 0x6c4d7420, 0x21cdf: 0x6c692c20,
-	0x21ce0: 0x6c867620, 0x21ce2: 0x6c8a7820,
-	0x21ce4: 0x6cbba620,
-	0x21ce8: 0x6cc99c20, 0x21cea: 0x6cb55220, 0x21ceb: 0x6cd19620,
-	0x21cee: 0x6c6a7220,
-	0x21cf5: 0x6c06e420, 0x21cf6: 0x6c0aec20, 0x21cf7: 0x6c032420,
-	0x21cf8: 0x6c755c20, 0x21cf9: 0x6caf3a20,
-	0x21cfc: 0x6c282220, 0x21cff: 0x6ce0e620,
-	// Block 0x874, offset 0x21d00
-	0x21d00: 0x6c7cca20, 0x21d01: 0x6c7a2820, 0x21d03: 0x6c79d020,
-	0x21d09: 0x6cd1a620, 0x21d0a: 0x6cd1a820, 0x21d0b: 0x6c5e9a20,
-	0x21d0c: 0x6c063620,
-	0x21d10: 0x6c785a20, 0x21d11: 0x6c7b9020,
-	0x21d16: 0x6c9f9c20,
-	0x21d19: 0x6c89e020, 0x21d1a: 0x6c35f220, 0x21d1b: 0x6c43d820,
-	0x21d1f: 0x6cee0420,
-	0x21d20: 0x6c344020, 0x21d23: 0x6cb85220,
-	0x21d24: 0x6c573220, 0x21d26: 0x6c539e20,
-	0x21d29: 0x6cae5e20, 0x21d2b: 0x6c698c20,
-	0x21d30: 0x6cc0f020, 0x21d31: 0x6d3f3c20, 0x21d32: 0x6d391820, 0x21d33: 0x6c7b9620,
-	0x21d35: 0x6ccbd820, 0x21d37: 0x6c61cc20,
-	0x21d38: 0x6cee6c20, 0x21d39: 0x6cb40820, 0x21d3a: 0x6d090620,
-	0x21d3c: 0x6cce6620,
-	// Block 0x875, offset 0x21d40
-	0x21d42: 0x6c80b620, 0x21d43: 0x6d351620,
-	0x21d44: 0x6ce6c620, 0x21d47: 0x6c26f020,
-	0x21d55: 0x6d0faa20, 0x21d56: 0x6c6d0020, 0x21d57: 0x6d351820,
-	0x21d5a: 0x6d3d5a20,
-	0x21d5c: 0x6d28b420, 0x21d5d: 0x6c14f220,
-	0x21d62: 0x6c998020,
-	0x21d66: 0x6c797820, 0x21d67: 0x6d388420,
-	0x21d68: 0x6c54ca20, 0x21d69: 0x6cae7220,
-	0x21d6d: 0x6c6ffc20,
-	0x21d78: 0x6c21bc20, 0x21d79: 0x6c9fae20,
-	0x21d7e: 0x6cffec20,
-	// Block 0x876, offset 0x21d80
-	0x21d80: 0x6c322220, 0x21d81: 0x6cef1820, 0x21d83: 0x6c119a20,
-	0x21d84: 0x6d214a20, 0x21d85: 0x6c326220, 0x21d86: 0x6c763620, 0x21d87: 0x6cb0a220,
-	0x21d8a: 0x6c1a1a20,
-	0x21d8e: 0x6c218020,
-	0x21d90: 0x6cceb420, 0x21d91: 0x6d0d9e20, 0x21d92: 0x6c7b2820,
-	0x21d94: 0x6d265020,
-	0x21da6: 0x6cb61620, 0x21da7: 0x6d32e020,
-	0x21da9: 0x6c78c220, 0x21daa: 0x6cb61820, 0x21dab: 0x6d354020,
-	0x21dac: 0x6c928420,
-	0x21db1: 0x6caf7c20, 0x21db2: 0x6cab0420, 0x21db3: 0x6cad7c20,
-	0x21dba: 0x6c3a6020,
-	0x21dbf: 0x6cf19c20,
-	// Block 0x877, offset 0x21dc0
-	0x21dc2: 0x6c9b2c20,
-	0x21dc8: 0x6ccd5620,
-	0x21dcc: 0x6d04a020, 0x21dce: 0x6c351020, 0x21dcf: 0x6c0c9220,
-	0x21dda: 0x6d1eb020,
-	0x21ddc: 0x6c97f620, 0x21dde: 0x6c8a7a20,
-	0x21de1: 0x6d00ea20, 0x21de2: 0x6c949c20, 0x21de3: 0x6cbba820,
-	0x21de4: 0x6c2ae620, 0x21de6: 0x6c1a3e20, 0x21de7: 0x6c1a4020,
-	0x21ded: 0x6c21d820,
-	0x21df8: 0x6c131420,
-	// Block 0x878, offset 0x21e00
-	0x21e00: 0x6c825e20, 0x21e01: 0x6d2e1c20, 0x21e02: 0x6c853620, 0x21e03: 0x6c885e20,
-	0x21e04: 0x6cc45820,
-	0x21e0d: 0x6c18ee20, 0x21e0f: 0x6c1a4820,
-	0x21e10: 0x6c473c20, 0x21e12: 0x6d403a20, 0x21e13: 0x6c1df420,
-	0x21e14: 0x6c204420,
-	0x21e1c: 0x6c835220, 0x21e1d: 0x6cd7a820, 0x21e1e: 0x6c941020,
-	0x21e23: 0x6c3f2420,
-	0x21e25: 0x6c871620, 0x21e27: 0x6cca6020,
-	0x21e2b: 0x6cca0c20,
-	0x21e2f: 0x6cc9b220,
-	0x21e33: 0x6ca8b020,
-	0x21e36: 0x6d413c20, 0x21e37: 0x6c855020,
-	0x21e3b: 0x6cd58c20,
-	0x21e3e: 0x6c3f2a20,
-	// Block 0x879, offset 0x21e40
-	0x21e49: 0x6c094620,
-	0x21e4d: 0x6c2a0820,
-	0x21e52: 0x6cd1b220,
-	0x21e56: 0x6c422020, 0x21e57: 0x6ce09e20,
-	0x21e5c: 0x6c97f820, 0x21e5f: 0x6c842820,
-	0x21e62: 0x6c0a4c20,
-	0x21e66: 0x6cac7e20,
-	0x21e68: 0x6d1eca20,
-	0x21e6d: 0x6c6f5020, 0x21e6f: 0x6c4c1220,
-	0x21e70: 0x6c89dc20, 0x21e73: 0x6cf2de20,
-	0x21e74: 0x6cb85420, 0x21e75: 0x6c30e820, 0x21e77: 0x6c8afa20,
-	0x21e79: 0x6c68e020, 0x21e7b: 0x6c8afc20,
-	// Block 0x87a, offset 0x21e80
-	0x21e81: 0x6ce56020,
-	0x21e84: 0x6c4c2620, 0x21e86: 0x6cacde20, 0x21e87: 0x6cbb8e20,
-	0x21e89: 0x6c2b8a20, 0x21e8a: 0x6d284420,
-	0x21e92: 0x6c821420,
-	0x21e96: 0x6cd7cc20, 0x21e97: 0x6d02b020,
-	0x21e9c: 0x6d02c420, 0x21e9d: 0x6cfe2620, 0x21e9e: 0x6c95ac20,
-	0x21ea4: 0x6c07e820, 0x21ea5: 0x6ce55a20,
-	0x21eac: 0x6cffee20, 0x21eae: 0x6c30b420,
-	0x21eb3: 0x6c296e20,
-	0x21eb4: 0x6ce67c20, 0x21eb5: 0x6d3bcc20,
-	0x21ebb: 0x6cab4620,
-	0x21ebd: 0x6cf30e20,
-	// Block 0x87b, offset 0x21ec0
-	0x21ec4: 0x6d02ee20, 0x21ec5: 0x6cc87a20,
-	0x21ec8: 0x6d3dae20, 0x21ec9: 0x6c299020,
-	0x21ecd: 0x6c257420,
-	0x21ed1: 0x6d3dc820,
-	0x21ed7: 0x6c238620,
-	0x21ed8: 0x6c159220,
-	0x21edd: 0x6d100820,
-	0x21ee7: 0x6d0d5e20,
-	0x21ef3: 0x6d0d6820,
-	0x21ef5: 0x6d323620,
-	0x21efd: 0x6caade20, 0x21efe: 0x6d0e7220,
-	// Block 0x87c, offset 0x21f00
-	0x21f05: 0x6c39d820,
-	0x21f09: 0x6d0da020, 0x21f0a: 0x6d214e20,
-	0x21f0d: 0x6ce34020, 0x21f0e: 0x6c401a20, 0x21f0f: 0x6c07a020,
-	0x21f11: 0x6d0db220, 0x21f13: 0x6c5ad220,
-	0x21f19: 0x6c5a6220,
-	0x21f1c: 0x6c4b7420, 0x21f1d: 0x6d0ece20, 0x21f1f: 0x6c55da20,
-	0x21f20: 0x6c0c3620,
-	0x21f27: 0x6cdcc420,
-	0x21f2e: 0x6d3f3020, 0x21f2f: 0x6c618620,
-	0x21f30: 0x6c35ae20, 0x21f31: 0x6c61ce20, 0x21f32: 0x6c7ccc20,
-	0x21f34: 0x6c89b620,
-	0x21f38: 0x6c5dda20, 0x21f3a: 0x6cef3a20, 0x21f3b: 0x6d3cea20,
-	0x21f3f: 0x6ce6ae20,
-	// Block 0x87d, offset 0x21f40
-	0x21f43: 0x6d290e20,
-	0x21f44: 0x6d201020,
-	0x21f49: 0x6cc5c020,
-	0x21f4d: 0x6c9e4e20,
-	0x21f5a: 0x6ca31020,
-	0x21f5d: 0x6ce84220, 0x21f5f: 0x6c27be20,
-	0x21f61: 0x6c73ec20,
-	0x21f64: 0x6d056e20, 0x21f65: 0x6c2b1820,
-	0x21f70: 0x6cfe1a20,
-	0x21f77: 0x6d048a20,
-	0x21f7a: 0x6d1fac20, 0x21f7b: 0x6c489620,
-	0x21f7e: 0x6cf5a420,
-	// Block 0x87e, offset 0x21f80
-	0x21f88: 0x6c51bc20,
-	0x21f8d: 0x6c2f6c20,
-	0x21f90: 0x6c914020, 0x21f92: 0x6d061a20,
-	0x21f94: 0x6d391a20, 0x21f95: 0x6cfca820, 0x21f96: 0x6c598820, 0x21f97: 0x6c138c20,
-	0x21f98: 0x6cd2c420, 0x21f99: 0x6c421820, 0x21f9a: 0x6caadc20, 0x21f9b: 0x6c01aa20,
-	0x21f9f: 0x6d003c20,
-	0x21fa7: 0x6c502c20,
-	0x21fb2: 0x6cbd2a20, 0x21fb3: 0x6c450620,
-	0x21fb4: 0x6ccce020, 0x21fb5: 0x6c3e4c20,
-	0x21fbd: 0x6d2b4c20,
-	// Block 0x87f, offset 0x21fc0
-	0x21fc7: 0x6c287c20,
-	0x21fd6: 0x6c2d1420, 0x21fd7: 0x6ccfdc20,
-	0x21fd9: 0x6d411820,
-	0x21fe2: 0x6c0ca620,
-	0x21fe6: 0x6c20d020, 0x21fe7: 0x6d30f820,
-	0x21fe8: 0x6c276e20, 0x21feb: 0x6cf2b620,
-	0x21fec: 0x6cbf2420,
-	0x21ff0: 0x6c8bb420, 0x21ff2: 0x6c5cc820, 0x21ff3: 0x6c5ed020,
-	// Block 0x880, offset 0x22000
-	0x22005: 0x6c127620,
-	0x2200a: 0x6ca28620,
-	0x2200d: 0x6c2ea820, 0x2200e: 0x6cf09620,
-	0x22020: 0x6c0b9a20, 0x22021: 0x6ce3c020,
-	0x22025: 0x6ce8be20,
-	0x22036: 0x6c453620,
-	// Block 0x881, offset 0x22040
-	0x22044: 0x6c1b3220, 0x22045: 0x6c23ee20, 0x22046: 0x6ce3c420,
-	0x22052: 0x6c5de620, 0x22053: 0x6cb50e20,
-	0x22054: 0x6ccab820, 0x22055: 0x6ccaa020, 0x22056: 0x6d085220, 0x22057: 0x6c021c20,
-	0x22058: 0x6ca3ce20, 0x2205a: 0x6d0fd020, 0x2205b: 0x6cd4f420,
-	0x2205c: 0x6ccc0620,
-	0x22061: 0x6ce6d620,
-	0x22069: 0x6d0bc420, 0x2206a: 0x6c5a5820,
-	0x2206e: 0x6c0d4220,
-	0x2207e: 0x6caba020, 0x2207f: 0x6c128820,
-	// Block 0x882, offset 0x22080
-	0x22081: 0x6c026a20, 0x22083: 0x6c99ae20,
-	0x22094: 0x6c9b3620, 0x22096: 0x6ce47220,
-	0x2209d: 0x6ccaa220, 0x2209e: 0x6d073a20, 0x2209f: 0x6c771020,
-	0x220a7: 0x6c811020,
-	0x220b6: 0x6c0cc020, 0x220b7: 0x6c23b220,
-	0x220ba: 0x6cfb8e20,
-	// Block 0x883, offset 0x220c0
-	0x220c4: 0x6cea2a20,
-	0x220c9: 0x6d240a20, 0x220ca: 0x6c28c220, 0x220cb: 0x6d1d5420,
-	0x220cd: 0x6d2f7820, 0x220cf: 0x6cb4b620,
-	0x220d8: 0x6c5c4e20,
-	0x220de: 0x6c00ea20, 0x220df: 0x6ca0b220,
-	0x220e2: 0x6c6dde20, 0x220e3: 0x6c7fce20,
-	0x220f2: 0x6c8b5820, 0x220f3: 0x6cb1a420,
-	0x220f5: 0x6c0fa420, 0x220f6: 0x6cbf8220,
-	0x220f9: 0x6c0aa220,
-	0x220ff: 0x6d1dd420,
-	// Block 0x884, offset 0x22100
-	0x22105: 0x6c871820,
-	0x2210d: 0x6ca8b220, 0x2210f: 0x6c2a8820,
-	0x22113: 0x6c584620,
-	0x22117: 0x6d272420,
-	0x2211a: 0x6c212c20,
-	0x2211c: 0x6c87b020, 0x2211e: 0x6d2ef420, 0x2211f: 0x6c8dd620,
-	0x22120: 0x6c217020,
-	0x22127: 0x6c12d220,
-	0x22128: 0x6d09ea20,
-	0x2212c: 0x6c71ac20, 0x2212d: 0x6c5cac20,
-	0x2213e: 0x6ce6f820,
-	// Block 0x885, offset 0x22140
-	0x22146: 0x6ca91220, 0x22147: 0x6c727a20,
-	0x2214f: 0x6c144c20,
-	0x22156: 0x6d2a2e20,
-	0x2215b: 0x6d24a020,
-	0x2215f: 0x6c78f420,
-	0x22166: 0x6c7bea20, 0x22167: 0x6c3a4a20,
-	0x2216f: 0x6d282620,
-	0x22170: 0x6cb9fc20,
-	0x22174: 0x6cc2dc20,
-	0x22178: 0x6cb38a20, 0x2217a: 0x6cadf620,
-	// Block 0x886, offset 0x22180
-	0x22184: 0x6c453820, 0x22185: 0x6d17e420, 0x22186: 0x6c961020,
-	0x22191: 0x6c7b5a20, 0x22193: 0x6d085420,
-	0x22194: 0x6ca76e20,
-	0x2219a: 0x6c55ac20, 0x2219b: 0x6c715820,
-	0x221a9: 0x6d136a20,
-	0x221ae: 0x6cf73420,
-	0x221b1: 0x6d271c20, 0x221b2: 0x6ce19020, 0x221b3: 0x6cb23e20,
-	0x221b4: 0x6c33c820, 0x221b5: 0x6c06d420,
-	0x221b8: 0x6c8a6020,
-	// Block 0x887, offset 0x221c0
-	0x221c0: 0x6d1e0e20,
-	0x221ce: 0x6d0acc20,
-	0x221d1: 0x6c68bc20,
-	0x221d4: 0x6c7dcc20, 0x221d6: 0x6d321820, 0x221d7: 0x6cd59c20,
-	0x221da: 0x6cd24820,
-	0x221de: 0x6d1efa20, 0x221df: 0x6cac1a20,
-	0x221e0: 0x6cff6e20, 0x221e1: 0x6c5fe020,
-	0x221f6: 0x6cb4d220, 0x221f7: 0x6c50c620,
-	0x221fa: 0x6c799620,
-	// Block 0x888, offset 0x22200
-	0x22202: 0x6d12d020, 0x22203: 0x6c1bf020,
-	0x2220a: 0x6c77a220, 0x2220b: 0x6d269020,
-	0x2220e: 0x6cec1a20, 0x2220f: 0x6ca71820,
-	0x22211: 0x6c222e20, 0x22213: 0x6d14a020,
-	0x22224: 0x6c704620,
-	0x2222b: 0x6d0f4e20,
-	0x2222c: 0x6c83a620, 0x2222e: 0x6c270a20, 0x2222f: 0x6c1d0c20,
-	0x22235: 0x6d14c620,
-	0x2223a: 0x6c4e9a20,
-	0x2223f: 0x6d13de20,
-	// Block 0x889, offset 0x22240
-	0x22241: 0x6c1d4a20, 0x22242: 0x6c568020, 0x22243: 0x6d3b6220,
-	0x22266: 0x6cbf0a20, 0x22267: 0x6c34de20,
-	0x22278: 0x6ce73220, 0x22279: 0x6cfa9020,
-	0x2227f: 0x6c3e5020,
-	// Block 0x88a, offset 0x22280
-	0x22282: 0x6c2d5020, 0x22283: 0x6cf77820,
-	0x22284: 0x6d003e20, 0x22285: 0x6d323820, 0x22286: 0x6cbc3e20, 0x22287: 0x6ce85620,
-	0x222b7: 0x6c4eb020,
-	0x222b8: 0x6c7bf220, 0x222b9: 0x6cdd1a20, 0x222bb: 0x6cd46220,
-	0x222bc: 0x6ce58020,
-	// Block 0x88b, offset 0x222c0
-	0x222c0: 0x6d315020, 0x222c3: 0x6ca58c20,
-	0x222c5: 0x6cba0a20, 0x222c6: 0x6d1a6620,
-	0x222c8: 0x6c899220, 0x222c9: 0x6ccc5420, 0x222ca: 0x6d3f4c20, 0x222cb: 0x6cafec20,
-	0x222cc: 0x6c42c620, 0x222cf: 0x6c6d0a20,
-	0x222d0: 0x6d1f3620, 0x222d2: 0x6ccd8c20,
-	0x222d4: 0x6c9d4620, 0x222d5: 0x6cab9c20, 0x222d7: 0x6c54cc20,
-	0x222db: 0x6d204620,
-	0x222dd: 0x6c9bd420,
-	// Block 0x88c, offset 0x22300
-	0x22310: 0x6d352a20, 0x22313: 0x6c08e020,
-	0x22317: 0x6ccfe820,
-	0x22318: 0x6cb79420, 0x22319: 0x6cfaa620, 0x2231a: 0x6cac5820, 0x2231b: 0x6c776e20,
-	0x2232b: 0x6cd68620,
-	0x2232c: 0x6cafee20, 0x2232e: 0x6d290220, 0x2232f: 0x6d3a6c20,
-	0x22331: 0x6cd9c020, 0x22332: 0x6c6f1820,
-	0x22335: 0x6c150020, 0x22336: 0x6c38a420, 0x22337: 0x6cff8e20,
-	0x22338: 0x6d1aec20, 0x22339: 0x6c540e20, 0x2233a: 0x6c999220, 0x2233b: 0x6ce8c020,
-	0x2233d: 0x6c621820,
-	// Block 0x88d, offset 0x22340
-	0x22341: 0x6d151c20, 0x22343: 0x6d236c20,
-	0x22344: 0x6c6ee020, 0x22345: 0x6cad9220, 0x22347: 0x6cfed820,
-	0x22349: 0x6c468c20,
-	0x2234c: 0x6c465020, 0x2234d: 0x6cdcf220, 0x2234e: 0x6cfc1620, 0x2234f: 0x6d3baa20,
-	0x2237e: 0x6c1dba20,
-	// Block 0x88e, offset 0x22380
-	0x22384: 0x6cbb7e20, 0x22385: 0x6ce34220, 0x22386: 0x6d27b020,
-	0x22389: 0x6cccec20, 0x2238a: 0x6c8b1420,
-	0x2238c: 0x6d353620,
-	0x22390: 0x6cabf220,
-	0x223a3: 0x6c712e20,
-	0x223a4: 0x6c7f1220,
-	0x223a8: 0x6d3f1820, 0x223aa: 0x6cc1a420, 0x223ab: 0x6c47b020,
-	0x223ac: 0x6c747a20, 0x223ad: 0x6d348220, 0x223ae: 0x6c021e20, 0x223af: 0x6cbe2020,
-	0x223b0: 0x6cb00620, 0x223b1: 0x6d417820, 0x223b3: 0x6cb9b020,
-	0x223b5: 0x6c25e620, 0x223b7: 0x6c606620,
-	0x223b8: 0x6ce35220, 0x223b9: 0x6cc7b620, 0x223bb: 0x6c4d4220,
-	0x223bc: 0x6d0a2620, 0x223be: 0x6c073c20, 0x223bf: 0x6d348420,
-	// Block 0x88f, offset 0x223c0
-	0x223c1: 0x6c340020,
-	0x223cb: 0x6c293220,
-	0x223d0: 0x6cc62e20,
-	0x223f2: 0x6c41a820,
-	0x223f5: 0x6c42ae20, 0x223f6: 0x6cde7220,
-	0x223f8: 0x6cebae20, 0x223f9: 0x6d105e20, 0x223fa: 0x6c7a4e20, 0x223fb: 0x6d368c20,
-	// Block 0x890, offset 0x22400
-	0x22416: 0x6c64d020, 0x22417: 0x6ca6be20,
-	0x22418: 0x6cd00e20, 0x22419: 0x6c058620, 0x2241a: 0x6cd66e20, 0x2241b: 0x6c30c020,
-	0x2241d: 0x6cb91420, 0x2241e: 0x6c4e2820, 0x2241f: 0x6cb83020,
-	0x22420: 0x6c41e420, 0x22423: 0x6c215a20,
-	0x22424: 0x6c13fe20, 0x22425: 0x6c0a2620, 0x22426: 0x6d140c20, 0x22427: 0x6c3d9020,
-	0x22428: 0x6c35b820, 0x2242a: 0x6c816c20, 0x2242b: 0x6c4fe020,
-	0x2242c: 0x6c842a20,
-	0x22431: 0x6ce28020, 0x22432: 0x6cd01020,
-	0x22434: 0x6d1a9020, 0x22437: 0x6c64d220,
-	0x2243b: 0x6c140020,
-	// Block 0x891, offset 0x22440
-	0x22457: 0x6ca86020,
-	0x22458: 0x6c23f620, 0x2245b: 0x6d154620,
-	0x2245f: 0x6ce12220,
-	0x22462: 0x6c738820,
-	0x22470: 0x6c1c5820, 0x22471: 0x6c468e20,
-	0x22474: 0x6c6b1a20, 0x22475: 0x6d307c20, 0x22476: 0x6c559220, 0x22477: 0x6c987220,
-	0x2247b: 0x6d406220,
-	0x2247c: 0x6cd8e820, 0x2247f: 0x6c3ad020,
-	// Block 0x892, offset 0x22480
-	0x22480: 0x6d3e8620, 0x22481: 0x6d3e8820, 0x22483: 0x6c6b3420,
-	0x22484: 0x6cd82820, 0x22486: 0x6c211620, 0x22487: 0x6cad9820,
-	0x2248b: 0x6d128e20,
-	0x2248c: 0x6c2b4420, 0x2248e: 0x6c825820, 0x2248f: 0x6d05e420,
-	0x22490: 0x6cc7c820, 0x22492: 0x6cabde20, 0x22493: 0x6c738e20,
-	0x22494: 0x6cf8dc20, 0x22495: 0x6d133e20, 0x22496: 0x6c014c20,
-	0x22498: 0x6d189420, 0x22499: 0x6c64f420,
-	0x2249c: 0x6cd93820, 0x2249d: 0x6cf2c420, 0x2249f: 0x6ccb5820,
-	0x224a0: 0x6d355020, 0x224a1: 0x6c088e20, 0x224a2: 0x6d3be220,
-	0x224a6: 0x6c67fa20, 0x224a7: 0x6c506820,
-	0x224a9: 0x6c1c6c20, 0x224aa: 0x6c340820,
-	// Block 0x893, offset 0x224c0
-	0x224d3: 0x6c0f5820,
-	0x224d4: 0x6c60a820, 0x224d5: 0x6c1fb020, 0x224d7: 0x6c962620,
-	0x224da: 0x6cc8b220,
-	0x224eb: 0x6c55b020,
-	0x224f1: 0x6c28c420,
-	0x224f4: 0x6c4e6420, 0x224f5: 0x6cc3fe20, 0x224f6: 0x6ccc1e20, 0x224f7: 0x6d2e1e20,
-	0x224f8: 0x6d2b0e20, 0x224f9: 0x6c201220, 0x224fa: 0x6cb53620, 0x224fb: 0x6c2ef020,
-	0x224fd: 0x6d2ce220, 0x224fe: 0x6ce83220,
-	// Block 0x894, offset 0x22500
-	0x22501: 0x6c221220, 0x22502: 0x6cc99e20,
-	0x22504: 0x6c955620, 0x22507: 0x6c60be20,
-	0x22522: 0x6c95c220, 0x22523: 0x6cbdb220,
-	0x22527: 0x6cbf6c20,
-	0x22528: 0x6c739420,
-	0x2252c: 0x6c00e020, 0x2252d: 0x6c65e220,
-	0x22539: 0x6ce42a20, 0x2253a: 0x6cf1b620,
-	0x2253d: 0x6cbbb620,
-	// Block 0x895, offset 0x22540
-	0x22541: 0x6cac0820, 0x22542: 0x6c5d0620,
-	0x22545: 0x6c00ec20, 0x22547: 0x6cd7a220,
-	0x22548: 0x6c887220, 0x22549: 0x6c337420, 0x2254b: 0x6cdebc20,
-	0x2254c: 0x6c6cbe20, 0x2254d: 0x6c0a8a20, 0x2254e: 0x6d0de820, 0x2254f: 0x6c435a20,
-	0x22550: 0x6cb18820, 0x22551: 0x6d242c20, 0x22552: 0x6ccf7c20,
-	0x22555: 0x6c651420, 0x22557: 0x6c55dc20,
-	0x2255a: 0x6c8b4e20,
-	0x2255c: 0x6c0bce20, 0x2255d: 0x6cdb4e20, 0x2255e: 0x6c689420,
-	0x22578: 0x6d3cb820,
-	0x2257d: 0x6c4dc220,
-	// Block 0x896, offset 0x22580
-	0x22587: 0x6c340e20,
-	0x22590: 0x6d014e20, 0x22591: 0x6c9b8220, 0x22592: 0x6c3db420, 0x22593: 0x6c931a20,
-	0x22594: 0x6ce0b220, 0x22597: 0x6c8ecc20,
-	0x22598: 0x6cfaee20, 0x22599: 0x6cca9420,
-	0x2259c: 0x6c240220, 0x2259d: 0x6d3c2620, 0x2259f: 0x6c188e20,
-	0x225b0: 0x6c892820,
-	0x225b4: 0x6c848c20,
-	// Block 0x897, offset 0x225c0
-	0x225c0: 0x6caf1a20, 0x225c1: 0x6ceb9420,
-	0x225c4: 0x6cebb820, 0x225c6: 0x6c8a4a20, 0x225c7: 0x6d002620,
-	0x225c8: 0x6c20f620, 0x225c9: 0x6c581a20, 0x225ca: 0x6ca7c220, 0x225cb: 0x6cb94820,
-	0x225cc: 0x6c871c20, 0x225cf: 0x6cad3e20,
-	0x225d0: 0x6ce5b020, 0x225d1: 0x6c8ece20, 0x225d2: 0x6cf40a20,
-	0x225e4: 0x6d1d2620, 0x225e6: 0x6d2c6820,
-	0x225f0: 0x6d21ee20, 0x225f2: 0x6cfc5020, 0x225f3: 0x6d083820,
-	0x225f4: 0x6cd68a20, 0x225f5: 0x6cf74220,
-	0x225f8: 0x6c9a4220, 0x225f9: 0x6ccbb420, 0x225fa: 0x6c893420,
-	0x225fc: 0x6c6f9020, 0x225fd: 0x6c81ec20,
-	// Block 0x898, offset 0x22600
-	0x2260e: 0x6cff5020, 0x2260f: 0x6d407420,
-	0x2261a: 0x6c8ee820,
-	0x2261c: 0x6d2ff020, 0x2261e: 0x6d30c220,
-	0x22620: 0x6c830820,
-	0x2262d: 0x6c32b420,
-	0x22637: 0x6c663420,
-	0x22638: 0x6cd68c20, 0x22639: 0x6d425620, 0x2263a: 0x6cbd0c20,
-	0x2263c: 0x6c81ca20,
-	// Block 0x899, offset 0x22640
-	0x22649: 0x6d248420, 0x2264a: 0x6d196620, 0x2264b: 0x6ca66e20,
-	0x2264e: 0x6c134620,
-	0x22655: 0x6d0f1a20, 0x22657: 0x6cc89020,
-	0x2265e: 0x6d0d1c20, 0x2265f: 0x6c2f1e20,
-	0x22660: 0x6c9df620,
-	0x22667: 0x6c82a420,
-	0x22669: 0x6cecae20,
-	0x22670: 0x6ca2fe20,
-	0x22676: 0x6d0d2420,
-	0x2267a: 0x6c831c20,
-	0x2267d: 0x6ccc3020, 0x2267e: 0x6c551620,
-	// Block 0x89a, offset 0x22680
-	0x22681: 0x6cf58020, 0x22682: 0x6cf58220,
-	0x22684: 0x6d1fa020, 0x22685: 0x6c4d9220, 0x22687: 0x6c4d0820,
-	0x22689: 0x6cebc820, 0x2268a: 0x6d068220, 0x2268b: 0x6caf3c20,
-	0x2268c: 0x6cdf8e20, 0x2268d: 0x6cf58a20, 0x2268e: 0x6cf58c20, 0x2268f: 0x6c0d2420,
-	0x22690: 0x6cbd1a20, 0x22691: 0x6cf58e20, 0x22692: 0x6d20c420, 0x22693: 0x6cf84a20,
-	0x22695: 0x6c22b620, 0x22696: 0x6cba4020, 0x22697: 0x6cf95420,
-	0x2269a: 0x6cec0620, 0x2269b: 0x6c35f420,
-	0x2269c: 0x6d1fae20, 0x2269d: 0x6d041a20, 0x2269e: 0x6ca5c220, 0x2269f: 0x6c4de420,
-	0x226a0: 0x6c094a20, 0x226a1: 0x6cd0ec20,
-	0x226a4: 0x6d2d6220, 0x226a5: 0x6c2d4420, 0x226a6: 0x6d222c20,
-	0x226a8: 0x6cab7a20, 0x226aa: 0x6c4ae820, 0x226ab: 0x6cee0620,
-	0x226ac: 0x6cb8c620, 0x226ad: 0x6d14c820,
-	0x226b0: 0x6d40b020, 0x226b2: 0x6cb8c820, 0x226b3: 0x6c2f9c20,
-	0x226b4: 0x6c793420, 0x226b6: 0x6c1f2620, 0x226b7: 0x6d13e020,
-	0x226ba: 0x6c4d9e20, 0x226bb: 0x6c7b6420,
-	// Block 0x89b, offset 0x226c0
-	0x226c8: 0x6c2d5820, 0x226c9: 0x6cf88a20, 0x226ca: 0x6d3e3c20, 0x226cb: 0x6c8d0420,
-	0x226cc: 0x6d3f4e20, 0x226ce: 0x6d234420, 0x226cf: 0x6c5ccc20,
-	0x226d1: 0x6cd86e20, 0x226d2: 0x6c76d620,
-	0x226da: 0x6c01c420,
-	0x226dc: 0x6d1fca20, 0x226dd: 0x6c605420, 0x226de: 0x6c5d2c20, 0x226df: 0x6cb82e20,
-	0x226e0: 0x6c541020, 0x226e1: 0x6c541220, 0x226e3: 0x6c2d5c20,
-	0x226e9: 0x6d004c20,
-	0x226ed: 0x6ccf5620, 0x226ee: 0x6ccc5c20,
-	0x226f2: 0x6d00ca20, 0x226f3: 0x6d112220,
-	0x226f4: 0x6c26f420, 0x226f6: 0x6d01d820, 0x226f7: 0x6c1ac620,
-	0x226f8: 0x6d1fde20, 0x226f9: 0x6c50a220, 0x226fa: 0x6ccc6220,
-	0x226ff: 0x6cdf2e20,
-	// Block 0x89c, offset 0x22700
-	0x22701: 0x6d3a1c20, 0x22703: 0x6c006c20,
-	0x22707: 0x6cc3e020,
-	0x22708: 0x6d2aea20, 0x2270a: 0x6c7e4a20, 0x2270b: 0x6c911620,
-	0x2270c: 0x6c1fc820, 0x2270e: 0x6d1fe620,
-	0x22716: 0x6ce41020,
-	0x22718: 0x6cd1fa20,
-	0x22721: 0x6d000a20, 0x22722: 0x6cf8ee20,
-	0x22728: 0x6c5e1220, 0x22729: 0x6c1c8620, 0x2272a: 0x6d18e620,
-	0x2272f: 0x6cd54420,
-	0x22730: 0x6d270020, 0x22731: 0x6c155420, 0x22732: 0x6c36da20, 0x22733: 0x6cf73620,
-	0x22734: 0x6cf74420, 0x22735: 0x6d1d2a20, 0x22736: 0x6d410020, 0x22737: 0x6d28a220,
-	0x2273a: 0x6d28a820,
-	// Block 0x89d, offset 0x22740
-	0x22742: 0x6cde2c20, 0x22743: 0x6ced7020,
-	0x22747: 0x6d031e20,
-	0x2274a: 0x6cee4820, 0x2274b: 0x6c3f3820,
-	0x22750: 0x6c91b620,
-	0x2275e: 0x6c656820,
-	0x22761: 0x6d0c6620, 0x22763: 0x6c094c20,
-	0x22764: 0x6c78fc20, 0x22765: 0x6c497820,
-	0x22768: 0x6d3e1820,
-	0x2276e: 0x6c7cce20, 0x2276f: 0x6d38e020,
-	0x22770: 0x6d35be20, 0x22773: 0x6ce8a420,
-	0x22777: 0x6cde4c20,
-	0x22779: 0x6c1f3e20, 0x2277a: 0x6c196e20, 0x2277b: 0x6c1a7420,
-	0x2277c: 0x6d3af420, 0x2277e: 0x6c26f220,
-	// Block 0x89e, offset 0x22780
-	0x22787: 0x6c09c620,
-	0x22789: 0x6c641c20,
-	0x2278c: 0x6d17e620, 0x2278f: 0x6d26c420,
-	0x22790: 0x6c428a20,
-	0x22796: 0x6c41ae20,
-	0x2279c: 0x6cbbac20,
-	0x227a0: 0x6c1eb020, 0x227a1: 0x6c1eb620, 0x227a2: 0x6c0a6a20,
-	0x227a6: 0x6c4b8a20,
-	0x227a9: 0x6c47e020, 0x227aa: 0x6c0e0020, 0x227ab: 0x6d1b9420,
-	0x227ac: 0x6d3cbc20, 0x227ad: 0x6c47ec20, 0x227af: 0x6c876820,
-	0x227b5: 0x6c35c420, 0x227b6: 0x6c271420,
-	0x227bc: 0x6c118620,
-	// Block 0x89f, offset 0x227c0
-	0x227c2: 0x6ce3d420, 0x227c3: 0x6c323620,
-	0x227c4: 0x6d168c20,
-	0x227c8: 0x6c2e6020, 0x227ca: 0x6ca97e20,
-	0x227cc: 0x6d094420, 0x227cd: 0x6ca54a20, 0x227ce: 0x6c4b3220, 0x227cf: 0x6c779e20,
-	0x227d2: 0x6c201a20,
-	0x227d6: 0x6d2c2020, 0x227d7: 0x6d1efc20,
-	0x227d9: 0x6c043420, 0x227da: 0x6cd24a20, 0x227db: 0x6c2d3e20,
-	0x227dc: 0x6cabb420, 0x227dd: 0x6cc01620,
-	0x227e1: 0x6d094820, 0x227e3: 0x6ca0e420,
-	0x227e4: 0x6c77e020, 0x227e5: 0x6d1fb020, 0x227e6: 0x6c68d220, 0x227e7: 0x6c0ec620,
-	0x227ec: 0x6d052020,
-	0x227f2: 0x6c9ce820, 0x227f3: 0x6c95f220,
-	0x227f5: 0x6d094e20, 0x227f7: 0x6c34e220,
-	0x227f9: 0x6c37c620, 0x227fa: 0x6cccd820,
-	0x227fc: 0x6c7cee20, 0x227fd: 0x6ca52c20, 0x227fe: 0x6c9e1420, 0x227ff: 0x6c85ce20,
-	// Block 0x8a0, offset 0x22800
-	0x22800: 0x6c949620, 0x22802: 0x6c2e8420,
-	0x22804: 0x6cb85620, 0x22805: 0x6c832a20, 0x22807: 0x6c997020,
-	0x22809: 0x6c524c20, 0x2280a: 0x6c181620, 0x2280b: 0x6d35e620,
-	0x2280d: 0x6c477c20, 0x2280e: 0x6c25b820,
-	0x22813: 0x6cf4de20,
-	0x22814: 0x6ce26420, 0x22817: 0x6cf61220,
-	0x22818: 0x6d10a620, 0x22819: 0x6cefc620, 0x2281b: 0x6d40be20,
-	0x2281c: 0x6c96be20, 0x2281d: 0x6d225a20, 0x2281e: 0x6caf0820, 0x2281f: 0x6d17a420,
-	0x22820: 0x6cbe1620, 0x22821: 0x6d26b620, 0x22822: 0x6c754c20, 0x22823: 0x6c67e620,
-	0x22824: 0x6d06d820, 0x22825: 0x6c07ea20,
-	0x2282a: 0x6c95b020, 0x2282b: 0x6d3c6020,
-	0x22832: 0x6c326420, 0x22833: 0x6cfe4020,
-	0x22836: 0x6c5be420,
-	0x2283a: 0x6c479e20, 0x2283b: 0x6c77b020,
-	0x2283e: 0x6d037c20, 0x2283f: 0x6c5cf020,
-	// Block 0x8a1, offset 0x22840
-	0x22840: 0x6c0af820,
-	0x22844: 0x6c78c420, 0x22845: 0x6c77b220,
-	0x22848: 0x6c25e820,
-	0x2284f: 0x6c92a420,
-	0x22851: 0x6d41c620, 0x22852: 0x6d2a2020, 0x22853: 0x6c692e20,
-	0x22854: 0x6c49a020,
-	0x22859: 0x6d0c2220, 0x2285a: 0x6c376620,
-	0x2285c: 0x6cbe8820, 0x2285f: 0x6c2ae820,
-	0x22860: 0x6cd8ea20, 0x22861: 0x6cdc7220, 0x22862: 0x6c8aa420,
-	0x22867: 0x6ccdb020,
-	0x22869: 0x6c0a6e20, 0x2286a: 0x6cf0e420, 0x2286b: 0x6d136020,
-	0x2286d: 0x6d2d5020, 0x2286f: 0x6d129420,
-	0x22870: 0x6c2e4c20, 0x22871: 0x6c00ee20,
-	0x22874: 0x6c680620, 0x22877: 0x6cda6220,
-	0x22879: 0x6c581c20, 0x2287a: 0x6d246020,
-	0x2287d: 0x6cc50a20,
-	// Block 0x8a2, offset 0x22880
-	0x22880: 0x6c2cfa20, 0x22881: 0x6d413e20, 0x22882: 0x6c047420,
-	0x22884: 0x6cbd5a20, 0x22887: 0x6c633620,
-	0x22889: 0x6cafcc20,
-	0x2288c: 0x6ce7ec20,
-	0x22890: 0x6c1da220,
-	0x22895: 0x6c4af020,
-	0x228a0: 0x6c5ee620,
-	0x228a8: 0x6d096420, 0x228aa: 0x6c2d6020,
-	0x228ad: 0x6c0bac20, 0x228ae: 0x6d291c20, 0x228af: 0x6ce76820,
-	0x228b6: 0x6ccd5820,
-	0x228b8: 0x6c482620, 0x228b9: 0x6cc3ec20,
-	// Block 0x8a3, offset 0x228c0
-	0x228c0: 0x6c47cc20,
-	0x228c8: 0x6c55b220, 0x228c9: 0x6c7b0420,
-	0x228cc: 0x6c46d820, 0x228ce: 0x6cdb3220,
-	0x228d0: 0x6c1df620, 0x228d2: 0x6c795c20,
-	0x228d4: 0x6c317e20,
-	0x228d9: 0x6d190a20,
-	0x228dc: 0x6c2a4220, 0x228dd: 0x6cbaf820,
-	0x228e3: 0x6c900220,
-	0x228e5: 0x6c84cc20, 0x228e7: 0x6c87a020,
-	0x228e8: 0x6cbe6420, 0x228ea: 0x6ceed420,
-	0x228ec: 0x6ca1bc20,
-	0x228f1: 0x6cb74420, 0x228f3: 0x6c67a020,
-	0x228f4: 0x6d008c20,
-	0x228f9: 0x6c277820, 0x228fb: 0x6c90a420,
-	// Block 0x8a4, offset 0x22900
-	0x22902: 0x6c497620,
-	0x22906: 0x6cadc820,
-	0x22909: 0x6cafce20, 0x2290b: 0x6c735420,
-	0x2290d: 0x6c06aa20, 0x2290e: 0x6c747c20, 0x2290f: 0x6c738420,
-	0x22910: 0x6cd3b420,
-	0x22915: 0x6d014a20,
-	0x22918: 0x6cc8a820, 0x22919: 0x6c6ec220, 0x2291a: 0x6cb3be20, 0x2291b: 0x6cc9f420,
-	0x22920: 0x6c5e7a20,
-	0x22929: 0x6c3b1820, 0x2292a: 0x6c06e820, 0x2292b: 0x6c6bc220,
-	0x2292c: 0x6cc94020, 0x2292e: 0x6caf3e20,
-	0x22934: 0x6c2c2220, 0x22935: 0x6c98c820, 0x22936: 0x6c03ec20, 0x22937: 0x6c03ee20,
-	0x22938: 0x6ce57820, 0x22939: 0x6c8cba20, 0x2293a: 0x6cd0f020, 0x2293b: 0x6d31c220,
-	0x2293c: 0x6caf4620, 0x2293d: 0x6cf4c620, 0x2293f: 0x6d2b4220,
-	// Block 0x8a5, offset 0x22940
-	0x22940: 0x6c063a20,
-	0x22947: 0x6c938020,
-	0x22956: 0x6c4fa020, 0x22957: 0x6c30e020,
-	0x22958: 0x6c3e0e20, 0x22959: 0x6ca5c420,
-	0x2295d: 0x6c43de20,
-	0x22960: 0x6cc79820, 0x22961: 0x6cfbfc20,
-	0x22964: 0x6c096020,
-	0x2296e: 0x6c98d220,
-	0x22972: 0x6cc70a20, 0x22973: 0x6cc04c20,
-	0x22977: 0x6c0ee820,
-	0x22979: 0x6c4fa620, 0x2297a: 0x6ca4ee20, 0x2297b: 0x6d0c8620,
-	// Block 0x8a6, offset 0x22980
-	0x22983: 0x6cad5c20,
-	0x22984: 0x6cdbc020, 0x22986: 0x6ceba220,
-	0x22988: 0x6cc10a20, 0x22989: 0x6c83d620, 0x2298a: 0x6c2a7220,
-	0x2298c: 0x6c6aca20, 0x2298d: 0x6c6acc20, 0x2298e: 0x6c4bc820, 0x2298f: 0x6c649c20,
-	0x22990: 0x6c099e20,
-	0x229a0: 0x6cca5620, 0x229a1: 0x6c053020, 0x229a2: 0x6c214a20,
-	0x229a6: 0x6ca3c220, 0x229a7: 0x6c054e20,
-	0x229aa: 0x6cc68820, 0x229ab: 0x6c636c20,
-	0x229ac: 0x6cd9c220,
-	0x229b0: 0x6c2a7420,
-	0x229be: 0x6cfaac20, 0x229bf: 0x6d2d8020,
-	// Block 0x8a7, offset 0x229c0
-	0x229c0: 0x6c999620, 0x229c3: 0x6d3e5020,
-	0x229c5: 0x6c623c20, 0x229c6: 0x6cb61c20,
-	0x229cb: 0x6cc82420,
-	0x229cc: 0x6cdd2c20, 0x229cd: 0x6cc71620, 0x229ce: 0x6cf50c20, 0x229cf: 0x6cc69620,
-	0x229d0: 0x6cc69820,
-	0x229da: 0x6cde7620,
-	0x229dc: 0x6cd9d020,
-	0x229e4: 0x6c842c20, 0x229e7: 0x6c24fc20,
-	0x229e8: 0x6d3fb020, 0x229e9: 0x6c9ad220, 0x229ea: 0x6cf80820,
-	0x229ec: 0x6c989e20, 0x229ed: 0x6ca86220, 0x229ef: 0x6cdbd220,
-	0x229f1: 0x6cadea20,
-	0x229f4: 0x6c0a2820, 0x229f5: 0x6c2c9020,
-	0x229f8: 0x6cc1be20, 0x229f9: 0x6cbbfa20, 0x229fb: 0x6c3b4420,
-	0x229fc: 0x6cdb1620,
-	// Block 0x8a8, offset 0x22a00
-	0x22a03: 0x6d05e620,
-	0x22a07: 0x6cc72420,
-	0x22a08: 0x6c5f3220, 0x22a0b: 0x6cc1d620,
-	0x22a0c: 0x6c8b3820,
-	0x22a15: 0x6ccafe20,
-	0x22a18: 0x6c7dd620, 0x22a1a: 0x6c257620, 0x22a1b: 0x6d136c20,
-	0x22a1c: 0x6c0e3220, 0x22a1e: 0x6c6b5c20,
-	0x22a20: 0x6cc1e020, 0x22a21: 0x6cc1e220,
-	0x22a25: 0x6c9b6e20, 0x22a26: 0x6cc49020,
-	0x22a28: 0x6c0d5e20, 0x22a29: 0x6c178220,
-	0x22a2c: 0x6c31d420,
-	0x22a36: 0x6cc4ec20, 0x22a37: 0x6cfb0220,
-	0x22a3a: 0x6ce25220, 0x22a3b: 0x6cc20a20,
-	0x22a3c: 0x6ca8b420, 0x22a3f: 0x6cd51c20,
-	// Block 0x8a9, offset 0x22a40
-	0x22a40: 0x6c920220, 0x22a42: 0x6c7dda20,
-	0x22a48: 0x6c9f3620, 0x22a49: 0x6c9f9e20,
-	0x22a4d: 0x6c287e20,
-	0x22a50: 0x6d1b6820, 0x22a53: 0x6d001020,
-	0x22a57: 0x6c618820,
-	0x22a5c: 0x6d19b220,
-	0x22a66: 0x6c3b3820, 0x22a67: 0x6d383420,
-	0x22a6b: 0x6c47c020,
-	0x22a71: 0x6c13c420, 0x22a73: 0x6c8e3c20,
-	0x22a76: 0x6c102c20,
-	0x22a7a: 0x6cabae20, 0x22a7b: 0x6cd87620,
-	0x22a7c: 0x6c29b820, 0x22a7d: 0x6d31b020,
-	// Block 0x8aa, offset 0x22a80
-	0x22a80: 0x6cccb620, 0x22a82: 0x6c1fbe20,
-	0x22a84: 0x6c6fa820,
-	0x22a8a: 0x6c787620, 0x22a8b: 0x6c1af820,
-	0x22a91: 0x6c565c20, 0x22a92: 0x6c858220, 0x22a93: 0x6ccbc620,
-	0x22a96: 0x6cac1820, 0x22a97: 0x6ceee220,
-	0x22a98: 0x6cf42620,
-	0x22a9c: 0x6d1c5420,
-	0x22aa1: 0x6ccbc820, 0x22aa2: 0x6c2b1020,
-	0x22aa5: 0x6c27b820,
-	0x22ab1: 0x6ce83a20, 0x22ab2: 0x6c50ca20, 0x22ab3: 0x6cb34e20,
-	0x22ab5: 0x6d34f620, 0x22ab6: 0x6ca98020, 0x22ab7: 0x6ca67e20,
-	0x22abd: 0x6cc6f820, 0x22abe: 0x6c48ea20,
-	// Block 0x8ab, offset 0x22ac0
-	0x22ac0: 0x6d343e20, 0x22ac3: 0x6c5fe220,
-	0x22adc: 0x6c392c20, 0x22adf: 0x6c6a8020,
-	0x22ae0: 0x6c4d3820,
-	0x22ae4: 0x6d2e4e20, 0x22ae6: 0x6cf86420,
-	0x22ae9: 0x6d3e1220,
-	0x22aec: 0x6cf76e20, 0x22aed: 0x6cb1ac20,
-	0x22af0: 0x6c078020, 0x22af2: 0x6c657220,
-	// Block 0x8ac, offset 0x22b00
-	0x22b13: 0x6c665c20,
-	0x22b16: 0x6d28ae20,
-	0x22b1e: 0x6c07ac20, 0x22b1f: 0x6c995e20,
-	0x22b22: 0x6d2a7620, 0x22b23: 0x6d3c3820,
-	0x22b25: 0x6c7bbe20,
-	0x22b28: 0x6c089e20, 0x22b2a: 0x6cac2220,
-	0x22b3c: 0x6c996020, 0x22b3d: 0x6ce09020,
-	// Block 0x8ad, offset 0x22b40
-	0x22b5e: 0x6cea7a20, 0x22b5f: 0x6c95aa20,
-	0x22b62: 0x6cdf9a20,
-	0x22b71: 0x6c016a20,
-	0x22b77: 0x6c4e0420,
-	0x22b78: 0x6d3a0c20, 0x22b7a: 0x6c34e820, 0x22b7b: 0x6c34ea20,
-	0x22b7c: 0x6c421c20,
-	// Block 0x8ae, offset 0x22b80
-	0x22b86: 0x6cbf8c20,
-	0x22b88: 0x6cee1220, 0x22b8a: 0x6ca10420, 0x22b8b: 0x6d30f220,
-	0x22b8c: 0x6cf1d620, 0x22b8d: 0x6d3c3a20, 0x22b8f: 0x6c69fe20,
-	0x22b90: 0x6cad8e20,
-	0x22b98: 0x6cdaa820,
-	0x22b9d: 0x6c724020,
-	0x22ba0: 0x6cb4ec20, 0x22ba1: 0x6c11f420, 0x22ba3: 0x6ce94a20,
-	0x22ba4: 0x6ccbec20, 0x22ba6: 0x6ceb1620,
-	0x22ba9: 0x6c579420, 0x22bab: 0x6d176220,
-	// Block 0x8af, offset 0x22bc0
-	0x22be0: 0x6c9f4820, 0x22be1: 0x6d37b420,
-	0x22be5: 0x6cd77e20,
-	0x22be9: 0x6d176420, 0x22bea: 0x6cee1420, 0x22beb: 0x6c024220,
-	0x22bf6: 0x6cda7820,
-	0x22bfe: 0x6c4b0020, 0x22bff: 0x6ceb8020,
-	// Block 0x8b0, offset 0x22c00
-	0x22c00: 0x6c5b5220, 0x22c03: 0x6d06dc20,
-	0x22c04: 0x6d296c20, 0x22c06: 0x6d3f1220, 0x22c07: 0x6c0b9e20,
-	0x22c09: 0x6c26a620, 0x22c0a: 0x6d19ca20, 0x22c0b: 0x6cc35c20,
-	0x22c0e: 0x6c580e20, 0x22c0f: 0x6ca2e020,
-	0x22c10: 0x6d28ba20, 0x22c12: 0x6ce32620,
-	0x22c18: 0x6d14f820, 0x22c19: 0x6cdfaa20, 0x22c1a: 0x6ccf1820, 0x22c1b: 0x6cd78220,
-	0x22c1d: 0x6d03e620,
-	0x22c20: 0x6d1fce20, 0x22c23: 0x6c3b7620,
-	// Block 0x8b1, offset 0x22c40
-	0x22c47: 0x6c78b220,
-	0x22c4b: 0x6c3e7c20,
-	0x22c52: 0x6c9fb220,
-	0x22c5a: 0x6cb09820,
-	0x22c5c: 0x6c604220, 0x22c5d: 0x6cbc4a20, 0x22c5e: 0x6d37fc20, 0x22c5f: 0x6c422820,
-	0x22c60: 0x6d24f820, 0x22c61: 0x6c1b3620,
-	0x22c65: 0x6cba5a20, 0x22c67: 0x6d424220,
-	0x22c69: 0x6d00bc20, 0x22c6a: 0x6c98ea20,
-	0x22c6c: 0x6c556e20, 0x22c6e: 0x6cb0a420, 0x22c6f: 0x6d0a9420,
-	0x22c71: 0x6cf9d220, 0x22c72: 0x6ce34420,
-	0x22c75: 0x6ca34e20, 0x22c76: 0x6c1fac20,
-	// Block 0x8b2, offset 0x22c80
-	0x22c80: 0x6cf45020,
-	0x22cac: 0x6c599820, 0x22cad: 0x6d096620, 0x22cae: 0x6ce26620,
-	0x22cb0: 0x6cbc4c20, 0x22cb3: 0x6c685020,
-	0x22cbc: 0x6c293020, 0x22cbd: 0x6c044620,
-	// Block 0x8b3, offset 0x22cc0
-	0x22ccd: 0x6c297620, 0x22cce: 0x6c79f820,
-	0x22cd0: 0x6c70b220, 0x22cd1: 0x6ccc0a20, 0x22cd2: 0x6c6dc820,
-	0x22cd5: 0x6ca06c20, 0x22cd6: 0x6caa0220,
-	0x22cd8: 0x6cd78e20, 0x22cda: 0x6cd5f820, 0x22cdb: 0x6d3c2020,
-	0x22cdc: 0x6c3ec220, 0x22cdf: 0x6d29de20,
-	0x22ce0: 0x6d00cc20, 0x22ce1: 0x6c812820, 0x22ce2: 0x6ce70420,
-	0x22ce9: 0x6d306e20,
-	0x22cec: 0x6c11fe20, 0x22cee: 0x6d26cc20,
-	0x22cf1: 0x6d393620,
-	// Block 0x8b4, offset 0x22d00
-	0x22d1a: 0x6cdfb420,
-	0x22d1e: 0x6d0cb420, 0x22d1f: 0x6c928820,
-	0x22d20: 0x6d0db620,
-	0x22d26: 0x6d2ae020, 0x22d27: 0x6cd66c20,
-	// Block 0x8b5, offset 0x22d40
-	0x22d45: 0x6c4c3620, 0x22d46: 0x6d3a2020,
-	0x22d48: 0x6cc7bc20, 0x22d49: 0x6cc7be20,
-	0x22d4c: 0x6c76e620, 0x22d4d: 0x6c626220, 0x22d4e: 0x6c42da20,
-	0x22d52: 0x6d01fa20,
-	0x22d55: 0x6caba220, 0x22d56: 0x6c64d420,
-	0x22d5a: 0x6d349220, 0x22d5b: 0x6d2c4820,
-	0x22d5d: 0x6c53a820, 0x22d5f: 0x6c7b7020,
-	0x22d61: 0x6c0f4420,
-	0x22d64: 0x6ccb4820, 0x22d65: 0x6c01cc20, 0x22d66: 0x6c66b820,
-	0x22d68: 0x6ce2ac20, 0x22d6b: 0x6cd93420,
-	0x22d6d: 0x6c9c0c20, 0x22d6e: 0x6d1a9420, 0x22d6f: 0x6cdfb620,
-	0x22d70: 0x6c4c3820, 0x22d73: 0x6cc84620,
-	0x22d74: 0x6cf0ba20, 0x22d77: 0x6cd8de20,
-	// Block 0x8b6, offset 0x22d80
-	0x22da4: 0x6cb7c220, 0x22da6: 0x6d2f0a20,
-	// Block 0x8b7, offset 0x22dc0
-	0x22dc5: 0x6c304020, 0x22dc6: 0x6c3eee20, 0x22dc7: 0x6cd07620,
-	0x22dc8: 0x6cdb1a20, 0x22dc9: 0x6d18a020, 0x22dca: 0x6c891820,
-	0x22dcc: 0x6c516e20, 0x22dce: 0x6d319420,
-	0x22dd0: 0x6d2afe20, 0x22dd2: 0x6c250c20, 0x22dd3: 0x6c250e20,
-	0x22ddd: 0x6c3cf220, 0x22dde: 0x6c853220, 0x22ddf: 0x6c7a0220,
-	0x22de3: 0x6d000620,
-	0x22de4: 0x6d1fee20,
-	// Block 0x8b8, offset 0x22e00
-	0x22e03: 0x6c4fea20,
-	0x22e09: 0x6c4f0620, 0x22e0a: 0x6c790c20,
-	0x22e1d: 0x6d23ec20,
-	0x22e23: 0x6c58e220,
-	0x22e24: 0x6cdd3e20, 0x22e26: 0x6c7e9c20,
-	0x22e28: 0x6c313c20, 0x22e29: 0x6c66de20, 0x22e2a: 0x6cb32020, 0x22e2b: 0x6c0b5420,
-	0x22e30: 0x6d097420, 0x22e32: 0x6c0bc820,
-	0x22e37: 0x6cf0e620,
-	// Block 0x8b9, offset 0x22e40
-	0x22e61: 0x6c28d620, 0x22e62: 0x6c6b5e20, 0x22e63: 0x6c046020,
-	0x22e65: 0x6ca74420, 0x22e66: 0x6cfd2620, 0x22e67: 0x6ccb7620,
-	0x22e6a: 0x6c576420, 0x22e6b: 0x6c1fa420,
-	0x22e6e: 0x6caba620, 0x22e6f: 0x6c8b5020,
-	0x22e70: 0x6c2ba420, 0x22e71: 0x6c114e20, 0x22e73: 0x6d2c5e20,
-	0x22e75: 0x6c936820,
-	0x22e79: 0x6c5e1420,
-	0x22e7c: 0x6c86ce20, 0x22e7d: 0x6d1d1620, 0x22e7f: 0x6cf03a20,
-	// Block 0x8ba, offset 0x22e80
-	0x22e80: 0x6c0a8c20, 0x22e81: 0x6c4c9620, 0x22e83: 0x6cb0ce20,
-	0x22e86: 0x6c0c3a20,
-	0x22ea0: 0x6d0dea20,
-	0x22ea4: 0x6d3bee20,
-	0x22eb2: 0x6c539420,
-	0x22eb6: 0x6c8c7820, 0x22eb7: 0x6c36ce20,
-	0x22eb9: 0x6d1b1820, 0x22eba: 0x6c808020,
-	0x22ebc: 0x6d123820, 0x22ebf: 0x6d08c820,
-	// Block 0x8bb, offset 0x22ec0
-	0x22ec0: 0x6c86fa20,
-	0x22ee8: 0x6c808420, 0x22ee9: 0x6c8d9020, 0x22eea: 0x6cf73820, 0x22eeb: 0x6c52de20,
-	0x22eed: 0x6c696a20, 0x22eee: 0x6d3dd220,
-	0x22ef2: 0x6d34b620,
-	0x22ef5: 0x6c0fb820, 0x22ef6: 0x6ce29620, 0x22ef7: 0x6c019820,
-	0x22efa: 0x6d0a5220, 0x22efb: 0x6c82fa20,
-	0x22efc: 0x6d29ec20, 0x22efd: 0x6c5b7c20,
-	// Block 0x8bc, offset 0x22f00
-	0x22f0e: 0x6cf92620, 0x22f0f: 0x6c539820,
-	0x22f11: 0x6c397820, 0x22f12: 0x6c662420, 0x22f13: 0x6c23c820,
-	0x22f14: 0x6d28da20, 0x22f16: 0x6c10e020,
-	0x22f18: 0x6d1ece20, 0x22f1b: 0x6c338820,
-	0x22f1c: 0x6cac4e20,
-	0x22f25: 0x6cdede20, 0x22f27: 0x6cacc420,
-	0x22f2b: 0x6c386e20,
-	0x22f2c: 0x6cf74620,
-	0x22f36: 0x6d124c20, 0x22f37: 0x6c957620,
-	0x22f3a: 0x6c0b2220,
-	0x22f3c: 0x6c6d7420, 0x22f3d: 0x6c876a20,
-	// Block 0x8bd, offset 0x22f40
-	0x22f4a: 0x6d0f0a20, 0x22f4b: 0x6c315020,
-	0x22f4e: 0x6c981620,
-	0x22f50: 0x6c45ca20, 0x22f51: 0x6cc51420, 0x22f52: 0x6c121220,
-	0x22f63: 0x6c9ae420,
-	0x22f71: 0x6c47fc20, 0x22f72: 0x6cd69e20,
-	0x22f78: 0x6d0d2020, 0x22f79: 0x6c0adc20,
-	// Block 0x8be, offset 0x22f80
-	0x22f80: 0x6c0c6a20, 0x22f81: 0x6c1a6220, 0x22f82: 0x6c7ce620,
-	0x22f84: 0x6c5d8820,
-	0x22f8d: 0x6c1be620, 0x22f8f: 0x6cf2d020,
-	0x22f91: 0x6c23e820, 0x22f92: 0x6d357a20,
-	0x22f99: 0x6cd70820,
-	0x22f9c: 0x6c48a220, 0x22f9d: 0x6cb40020, 0x22f9e: 0x6d068620, 0x22f9f: 0x6cd7d020,
-	0x22fa1: 0x6cf42e20,
-	0x22fae: 0x6c3d4020,
-	0x22fb0: 0x6cd31e20, 0x22fb3: 0x6c5b9220,
-	0x22fb4: 0x6c597c20, 0x22fb5: 0x6cabb620,
-	0x22fbc: 0x6d3a5e20, 0x22fbe: 0x6d14a220,
-	// Block 0x8bf, offset 0x22fc0
-	0x22fc3: 0x6c85a820,
-	0x22fc4: 0x6ccd3420,
-	0x22fdc: 0x6c9f3820, 0x22fde: 0x6c437c20,
-	0x22fe0: 0x6c54b020,
-	0x22fef: 0x6c371220,
-	0x22ff0: 0x6c380e20, 0x22ff3: 0x6d06aa20,
-	0x22ff4: 0x6d14ca20,
-	0x22ffe: 0x6d1d3620,
-	// Block 0x8c0, offset 0x23000
-	0x23014: 0x6c1b1820,
-	0x23019: 0x6d14cc20,
-	0x23025: 0x6c2b6a20, 0x23026: 0x6c5b5020, 0x23027: 0x6c510c20,
-	0x23029: 0x6d2c7a20,
-	0x23036: 0x6d27a420, 0x23037: 0x6cfa9c20,
-	// Block 0x8c1, offset 0x23040
-	0x2304c: 0x6cfb4c20, 0x2304d: 0x6c81d220, 0x2304e: 0x6cced420, 0x2304f: 0x6cd36820,
-	0x23050: 0x6d3d5220,
-	0x23064: 0x6c0ca820, 0x23065: 0x6c6fc020, 0x23066: 0x6cf29220, 0x23067: 0x6c68f820,
-	0x23068: 0x6c3e7e20, 0x2306a: 0x6cfd7620, 0x2306b: 0x6c768a20,
-	// Block 0x8c2, offset 0x23080
-	0x230b2: 0x6ca4fe20,
-	0x230b4: 0x6c5ddc20, 0x230b5: 0x6c605620, 0x230b6: 0x6c7e7e20,
-	0x230bb: 0x6c3d1220,
-	0x230bc: 0x6ccd4c20, 0x230bd: 0x6c8a9c20, 0x230be: 0x6c9ee020, 0x230bf: 0x6c182620,
-	// Block 0x8c3, offset 0x230c0
-	0x230c2: 0x6ca05e20,
-	0x230cf: 0x6c909820,
-	0x230e8: 0x6c34f620, 0x230eb: 0x6ca50020,
-	0x230ed: 0x6c5ee820,
-	0x230f0: 0x6d3b0820,
-	// Block 0x8c4, offset 0x23100
-	0x23102: 0x6cdad220, 0x23103: 0x6c34f820,
-	0x23107: 0x6c6f2820,
-	0x2310a: 0x6d291e20, 0x2310b: 0x6c5b5c20,
-	0x2310c: 0x6d1cfe20, 0x2310d: 0x6c557a20, 0x2310e: 0x6c8c5820, 0x2310f: 0x6cf25820,
-	0x23110: 0x6c4ee820,
-	0x23114: 0x6ca40620,
-	0x23137: 0x6cf8b020,
-	0x23139: 0x6c422c20,
-	0x2313e: 0x6c51d420, 0x2313f: 0x6c5f0820,
-	// Block 0x8c5, offset 0x23140
-	0x23140: 0x6cfdf020, 0x23141: 0x6ccc0c20,
-	0x23150: 0x6cea0c20, 0x23152: 0x6d2f6c20, 0x23153: 0x6cd60420,
-	0x23155: 0x6d1fe820, 0x23156: 0x6c64d820,
-	0x2315c: 0x6d2a8c20,
-	0x23164: 0x6d2ed820,
-	0x2317d: 0x6cc92c20,
-	// Block 0x8c6, offset 0x23180
-	0x23184: 0x6d0c2420,
-	0x2318b: 0x6c255a20,
-	0x23197: 0x6c608a20,
-	0x23198: 0x6cce1a20,
-	0x231a3: 0x6c36a820,
-	0x231a4: 0x6c817420, 0x231a5: 0x6ce07820, 0x231a7: 0x6d3b2820,
-	0x231ad: 0x6c8c3620, 0x231af: 0x6d2b9220,
-	0x231b1: 0x6c732a20, 0x231b2: 0x6c550220,
-	// Block 0x8c7, offset 0x231c0
-	0x231d7: 0x6cd07820,
-	0x231d8: 0x6c5dfa20,
-	0x231dc: 0x6c7d2020,
-	0x231f1: 0x6c1f7620, 0x231f2: 0x6d395020,
-	0x231f6: 0x6c023020,
-	0x231f8: 0x6d3db220,
-	0x231fd: 0x6d03a420, 0x231ff: 0x6c9ef420,
-	// Block 0x8c8, offset 0x23200
-	0x23200: 0x6c550c20,
-	0x23214: 0x6ce01a20,
-	0x23219: 0x6c0a7220,
-	0x23223: 0x6c2f8420,
-	0x23229: 0x6c769820, 0x2322b: 0x6c0c3c20,
-	0x23230: 0x6c5e1620, 0x23231: 0x6c8b5220, 0x23232: 0x6c24b820,
-	// Block 0x8c9, offset 0x23240
-	0x23243: 0x6cfd2820,
-	0x23244: 0x6cc55620,
-	0x23253: 0x6d270220,
-	0x23255: 0x6d09be20, 0x23257: 0x6c8a8020,
-	0x23263: 0x6ccc2a20,
-	0x23266: 0x6cd3fc20,
-	0x2326a: 0x6d025c20,
-	0x23273: 0x6cff4a20,
-	0x23277: 0x6d129620,
-	0x23278: 0x6c805020, 0x23279: 0x6d192e20,
-	0x2327f: 0x6c88da20,
-	// Block 0x8ca, offset 0x23280
-	0x23294: 0x6c0fba20, 0x23295: 0x6c126e20,
-	0x2329d: 0x6d124220,
-	0x232a6: 0x6c893620,
-	0x232bb: 0x6cdef020,
-	// Block 0x8cb, offset 0x232c0
-	0x232d1: 0x6c62ec20,
-	0x232d4: 0x6cf75220, 0x232d5: 0x6d377020,
-	0x232da: 0x6cf75620,
-	0x232dd: 0x6d273220,
-	0x232e4: 0x6cfc6c20, 0x232e6: 0x6d3df820,
-	0x232ef: 0x6d2ef820,
-	0x232f5: 0x6d410620, 0x232f7: 0x6ca2ce20,
-	0x232fe: 0x6c2a0420, 0x232ff: 0x6c8ad620,
-	// Block 0x8cc, offset 0x23300
-	0x23300: 0x6ca2d220,
-	0x23309: 0x6cad5420, 0x2330b: 0x6c721620,
-	0x23316: 0x6c95b220,
-	0x23319: 0x6cd64820, 0x2331a: 0x6cce5420,
-	0x2331d: 0x6c95b420, 0x2331f: 0x6c3b3a20,
-	0x23323: 0x6c065820,
-	0x23328: 0x6c865820, 0x2332b: 0x6d04a220,
-	0x23336: 0x6c290820,
-	// Block 0x8cd, offset 0x23340
-	0x23340: 0x6c1a8c20,
-	0x23344: 0x6d2f1420, 0x23347: 0x6cda3a20,
-	0x2334a: 0x6cd03e20,
-	0x23352: 0x6c447220,
-	0x23358: 0x6d209020, 0x2335a: 0x6c5ad420, 0x2335b: 0x6c183e20,
-	0x2335d: 0x6c698420, 0x2335e: 0x6d3ac420, 0x2335f: 0x6cd4b220,
-	0x23362: 0x6cff8420,
-	0x23366: 0x6ca91420,
-	0x2336d: 0x6c674420, 0x2336f: 0x6c674820,
-	0x23377: 0x6c2e0e20,
-	0x2337d: 0x6cbb0c20, 0x2337e: 0x6cc04e20,
-	// Block 0x8ce, offset 0x23380
-	0x23380: 0x6c3c4020,
-	0x23386: 0x6d2e6620, 0x23387: 0x6c77fa20,
-	0x23392: 0x6c2ece20, 0x23393: 0x6d2aec20,
-	0x23396: 0x6c49f820, 0x23397: 0x6ccb5c20,
-	0x23398: 0x6c3bea20, 0x2339b: 0x6c67bc20,
-	0x2339d: 0x6d0cd820, 0x2339e: 0x6d370820,
-	0x233a2: 0x6c872220,
-	0x233a6: 0x6c8ddc20,
-	0x233aa: 0x6d146420,
-	0x233ac: 0x6cc23e20, 0x233ad: 0x6cac5220, 0x233ae: 0x6c463a20,
-	0x233b0: 0x6c640220, 0x233b1: 0x6c50da20, 0x233b3: 0x6caf0c20,
-	0x233b5: 0x6c721820, 0x233b7: 0x6c180620,
-	0x233ba: 0x6c8af220, 0x233bb: 0x6cd35220,
-	0x233bc: 0x6cb37a20, 0x233bd: 0x6cfe2820, 0x233bf: 0x6cb08e20,
-	// Block 0x8cf, offset 0x233c0
-	0x233c0: 0x6c95ae20, 0x233c1: 0x6c243420, 0x233c3: 0x6d225020,
-	0x233c7: 0x6c79a820,
-	0x233c8: 0x6d01b020,
-	0x233cd: 0x6ced1e20, 0x233ce: 0x6d0d8e20, 0x233cf: 0x6cadd820,
-	0x233d3: 0x6c1a0620,
-	0x233d8: 0x6ce34620, 0x233d9: 0x6c182820, 0x233da: 0x6c09ce20, 0x233db: 0x6c890820,
-	0x233dc: 0x6c641e20, 0x233de: 0x6ce68220,
-	0x233e2: 0x6ce2f620,
-	0x233e8: 0x6c2edc20, 0x233ea: 0x6cd60620, 0x233eb: 0x6c842e20,
-	0x233ec: 0x6c936020, 0x233ed: 0x6cf97420, 0x233ef: 0x6c24e420,
-	0x233f3: 0x6c0e9220,
-	0x233f4: 0x6ce9ba20, 0x233f5: 0x6cb45020, 0x233f7: 0x6c8c6220,
-	0x233f8: 0x6c3bec20, 0x233fa: 0x6c0f7620, 0x233fb: 0x6c163620,
-	0x233fe: 0x6c290a20, 0x233ff: 0x6cdf5820,
-	// Block 0x8d0, offset 0x23400
-	0x23400: 0x6c2a3c20, 0x23403: 0x6c872420,
-	0x23405: 0x6d0b1220, 0x23406: 0x6d0b1820, 0x23407: 0x6d2d6620,
-	0x2340a: 0x6d14e220,
-	0x2340c: 0x6cb4fa20,
-	0x23414: 0x6c564420, 0x23416: 0x6ce62a20,
-	0x23418: 0x6c79cc20, 0x2341b: 0x6c213220,
-	0x2341c: 0x6d1f0020, 0x2341d: 0x6c3bd020, 0x2341f: 0x6caab220,
-	0x23420: 0x6ce53020, 0x23421: 0x6c6cde20, 0x23422: 0x6cafbc20, 0x23423: 0x6c18a420,
-	0x23424: 0x6cb08820, 0x23426: 0x6c6bc420, 0x23427: 0x6c4ac820,
-	0x23432: 0x6d3c3220,
-	0x23435: 0x6c552420, 0x23436: 0x6c1e2420, 0x23437: 0x6cd5a020,
-	0x23438: 0x6ce1b420, 0x23439: 0x6cafc620, 0x2343a: 0x6cc70020, 0x2343b: 0x6cc70220,
-	0x2343d: 0x6c544e20, 0x2343e: 0x6cae5a20,
-	// Block 0x8d1, offset 0x23440
-	0x23445: 0x6c043e20, 0x23447: 0x6cf99a20,
-	0x2344b: 0x6cbdcc20,
-	0x2344c: 0x6ca63220, 0x2344e: 0x6ce1b620, 0x2344f: 0x6cc26a20,
-	0x23452: 0x6d008e20,
-	0x23454: 0x6d2fa820, 0x23455: 0x6c570e20, 0x23456: 0x6d02c820,
-	0x23458: 0x6cd42e20, 0x2345b: 0x6ce8a620,
-	0x2345d: 0x6c895020, 0x2345e: 0x6c097c20, 0x2345f: 0x6c1e5a20,
-	0x23461: 0x6d037020, 0x23463: 0x6d02cc20,
-	0x23464: 0x6c3d6820,
-	0x23469: 0x6c6bde20,
-	0x2346d: 0x6c3f5e20,
-	0x23470: 0x6ce27a20, 0x23471: 0x6ccf4c20,
-	0x23474: 0x6c174620, 0x23475: 0x6c20b820,
-	0x2347c: 0x6cc47a20, 0x2347d: 0x6c545620, 0x2347e: 0x6c07ec20,
-	// Block 0x8d2, offset 0x23480
-	0x23480: 0x6c113020,
-	0x23485: 0x6ca21420,
-	0x23489: 0x6d059e20, 0x2348a: 0x6c2eaa20,
-	0x2348d: 0x6c15c220, 0x2348e: 0x6d215c20, 0x2348f: 0x6d383620,
-	0x23493: 0x6c83e620,
-	0x23494: 0x6cd43420,
-	0x2349a: 0x6c31a420,
-	0x2349c: 0x6c98bc20, 0x2349d: 0x6c59d420, 0x2349f: 0x6ce22c20,
-	0x234a1: 0x6c326620, 0x234a2: 0x6ce34820, 0x234a3: 0x6cd10820,
-	0x234a4: 0x6c9a0e20,
-	0x234a8: 0x6d316820, 0x234a9: 0x6cbd9020, 0x234aa: 0x6cb0ae20, 0x234ab: 0x6ce11620,
-	0x234ac: 0x6c123820, 0x234ad: 0x6d112420, 0x234af: 0x6d054620,
-	0x234b0: 0x6c053620, 0x234b1: 0x6c47b220,
-	0x234b5: 0x6c10aa20,
-	0x234bc: 0x6c46c620, 0x234bd: 0x6c0f2e20,
-	// Block 0x8d3, offset 0x234c0
-	0x234c1: 0x6cf21020,
-	0x234c4: 0x6c624420,
-	0x234ca: 0x6c7e4c20,
-	0x234cd: 0x6c24e620, 0x234ce: 0x6c9fc820, 0x234cf: 0x6c242820,
-	0x234d0: 0x6cab4e20, 0x234d1: 0x6d1da620,
-	0x234d6: 0x6c98fe20, 0x234d7: 0x6c78c820,
-	0x234d8: 0x6c981e20, 0x234d9: 0x6c2f8020, 0x234da: 0x6c582e20, 0x234db: 0x6c34ac20,
-	0x234dc: 0x6c677420, 0x234dd: 0x6cdb0220,
-	0x234e2: 0x6c135c20, 0x234e3: 0x6cde9e20,
-	0x234e5: 0x6c59f820, 0x234e6: 0x6c74be20, 0x234e7: 0x6d0a4020,
-	0x234ea: 0x6d04a620,
-	0x234ec: 0x6c9d8820, 0x234ed: 0x6cc45620, 0x234ee: 0x6c817620,
-	0x234f1: 0x6d370a20, 0x234f2: 0x6cf02820,
-	0x234f7: 0x6ccb6e20,
-	0x234fb: 0x6d29ea20,
-	// Block 0x8d4, offset 0x23500
-	0x23501: 0x6c019620, 0x23502: 0x6cf10c20,
-	0x23504: 0x6c581e20, 0x23507: 0x6d2e9e20,
-	0x23509: 0x6d1c2c20, 0x2350a: 0x6c43bc20, 0x2350b: 0x6c5c9220,
-	0x2350d: 0x6cc33420,
-	0x23513: 0x6c8b7c20,
-	0x23514: 0x6c719a20, 0x23515: 0x6c03de20, 0x23516: 0x6c82a620,
-	0x23518: 0x6c97ac20, 0x23519: 0x6c8dde20,
-	0x2351c: 0x6c856a20, 0x2351d: 0x6c611420,
-	0x23521: 0x6c5b1620, 0x23522: 0x6d031820, 0x23523: 0x6cd30020,
-	0x23524: 0x6d300e20, 0x23527: 0x6c0e4820,
-	0x2352b: 0x6c137a20,
-	0x2352f: 0x6c137e20,
-	0x23530: 0x6c6d8c20, 0x23531: 0x6c031c20, 0x23532: 0x6c06da20,
-	0x23535: 0x6d0e3c20, 0x23537: 0x6c565e20,
-	0x23539: 0x6d20ba20, 0x2353b: 0x6c091e20,
-	0x2353c: 0x6c1ff220, 0x2353e: 0x6c612220,
-	// Block 0x8d5, offset 0x23540
-	0x23542: 0x6ca26c20,
-	0x23544: 0x6c98c420, 0x23545: 0x6d379420, 0x23547: 0x6d12c620,
-	0x23548: 0x6c30a020, 0x23549: 0x6d12a420,
-	0x2354d: 0x6cc63c20, 0x2354e: 0x6d19a620,
-	0x23550: 0x6c501e20, 0x23552: 0x6ca31220, 0x23553: 0x6ce61020,
-	0x23554: 0x6c3fb620, 0x23555: 0x6ca22c20, 0x23556: 0x6d291020,
-	0x23558: 0x6c552820, 0x2355a: 0x6c185c20, 0x2355b: 0x6ceaf420,
-	0x2355e: 0x6c1f1220, 0x2355f: 0x6c3df820,
-	0x23567: 0x6c063420,
-	0x2356c: 0x6c2bde20, 0x2356d: 0x6c111c20, 0x2356e: 0x6c921220, 0x2356f: 0x6cb35020,
-	0x23570: 0x6c268620, 0x23571: 0x6d12da20, 0x23573: 0x6d15d220,
-	0x23577: 0x6cfdb620,
-	0x23578: 0x6c086e20, 0x23579: 0x6d398c20, 0x2357b: 0x6d14a620,
-	0x2357d: 0x6c93d220, 0x2357f: 0x6c7b9420,
-	// Block 0x8d6, offset 0x23580
-	0x23582: 0x6d35a420,
-	0x23587: 0x6cec0820,
-	0x23588: 0x6c2b1c20, 0x23589: 0x6cd5b020, 0x2358a: 0x6c8ad820, 0x2358b: 0x6d2a4220,
-	0x2358c: 0x6d35a620, 0x2358d: 0x6ca49e20,
-	0x23597: 0x6c147220,
-	0x2359a: 0x6cfea620, 0x2359b: 0x6d2a0220,
-	0x2359e: 0x6d22f420, 0x2359f: 0x6c310620,
-	0x235a0: 0x6c143e20, 0x235a1: 0x6d009020, 0x235a2: 0x6d0fa220,
-	0x235a4: 0x6cfc0220, 0x235a5: 0x6c05f220,
-	0x235ae: 0x6d2cec20,
-	0x235b0: 0x6cc03420, 0x235b2: 0x6c553420, 0x235b3: 0x6d293220,
-	0x235b4: 0x6c741620, 0x235b6: 0x6c4d9a20,
-	0x235bf: 0x6c01ae20,
-	// Block 0x8d7, offset 0x235c0
-	0x235c0: 0x6d2a7820, 0x235c3: 0x6ccc4c20,
-	0x235c5: 0x6cfcb220, 0x235c6: 0x6c1b9e20, 0x235c7: 0x6d0d6a20,
-	0x235c9: 0x6c01ba20,
-	0x235cd: 0x6d305220, 0x235ce: 0x6c742c20,
-	0x235d1: 0x6c85ea20, 0x235d3: 0x6c822020,
-	0x235d6: 0x6c112c20,
-	0x235d8: 0x6c924220, 0x235da: 0x6c634c20,
-	0x235dd: 0x6cfa3820, 0x235de: 0x6cfff020, 0x235df: 0x6d0c0c20,
-	0x235e0: 0x6d05a020, 0x235e2: 0x6c33f020, 0x235e3: 0x6d1c7620,
-	0x235e4: 0x6c5ab820, 0x235e5: 0x6ce32820, 0x235e6: 0x6caa0020, 0x235e7: 0x6cf7e820,
-	0x235ea: 0x6ce8b220,
-	0x235f7: 0x6cec5620,
-	0x235f8: 0x6c186620,
-	0x235fc: 0x6c52aa20, 0x235fe: 0x6ce32a20, 0x235ff: 0x6d07a020,
-	// Block 0x8d8, offset 0x23600
-	0x23600: 0x6d28bc20,
-	0x23607: 0x6c43f020,
-	0x2360b: 0x6c908c20,
-	0x2360c: 0x6c147c20, 0x2360d: 0x6cac6020, 0x2360e: 0x6c605820,
-	0x23610: 0x6cde5e20, 0x23613: 0x6cf64e20,
-	0x23616: 0x6cfeda20,
-	0x23618: 0x6ccab620, 0x23619: 0x6c637020, 0x2361a: 0x6cdad420, 0x2361b: 0x6c599a20,
-	0x2361d: 0x6c25bc20, 0x2361f: 0x6cde6020,
-	0x23620: 0x6cd65420,
-	0x2362a: 0x6c3e9a20, 0x2362b: 0x6c863620,
-	0x2362d: 0x6ccf5a20, 0x2362f: 0x6ce10620,
-	0x23636: 0x6c2cd020,
-	0x2363a: 0x6c09fa20,
-	0x2363c: 0x6c46c820, 0x2363d: 0x6c244620, 0x2363f: 0x6cb90820,
-	// Block 0x8d9, offset 0x23640
-	0x23642: 0x6c824620, 0x23643: 0x6cdaea20,
-	0x23646: 0x6d402420, 0x23647: 0x6c4faa20,
-	0x2364f: 0x6c1c4420,
-	0x23650: 0x6c128020, 0x23653: 0x6cf30420,
-	0x23654: 0x6cfef220, 0x23655: 0x6c8b2020, 0x23656: 0x6d0c1e20,
-	0x2365d: 0x6c09fc20, 0x2365f: 0x6c594220,
-	0x23661: 0x6cf67820, 0x23662: 0x6c1ac820, 0x23663: 0x6d05d620,
-	0x23664: 0x6ca4bc20, 0x23665: 0x6d0cc020, 0x23667: 0x6d01fc20,
-	0x23668: 0x6d2c4a20, 0x2366a: 0x6cdc5e20,
-	0x2366c: 0x6cf8ca20, 0x2366d: 0x6c080620, 0x2366e: 0x6cc48420, 0x2366f: 0x6cd79820,
-	0x23670: 0x6c049020, 0x23671: 0x6c4b6a20, 0x23672: 0x6c763c20, 0x23673: 0x6c188020,
-	0x23676: 0x6d072820,
-	0x2367e: 0x6c368620, 0x2367f: 0x6c865a20,
-	// Block 0x8da, offset 0x23680
-	0x23680: 0x6cf69e20, 0x23681: 0x6c594c20, 0x23682: 0x6cdb0420,
-	0x23684: 0x6c16f620,
-	0x2368a: 0x6c92a820, 0x2368b: 0x6d0cc220,
-	0x2368e: 0x6c290620, 0x2368f: 0x6c284620,
-	0x23690: 0x6d0f6a20, 0x23692: 0x6d2d3620, 0x23693: 0x6c729020,
-	0x23695: 0x6c345e20, 0x23696: 0x6ccabe20, 0x23697: 0x6c7f2a20,
-	0x23698: 0x6cdb1c20,
-	0x2369f: 0x6d2b0020,
-	0x236a3: 0x6c0a5020,
-	0x236a6: 0x6d1b8c20,
-	0x236a8: 0x6c4fb420, 0x236aa: 0x6c8b3a20,
-	0x236ad: 0x6c4ff620, 0x236ae: 0x6d0fdc20,
-	0x236b4: 0x6cd7a420, 0x236b5: 0x6c00f020, 0x236b6: 0x6cbf7420,
-	0x236b9: 0x6c82ec20, 0x236ba: 0x6d011220,
-	0x236bc: 0x6cd3f220,
-	// Block 0x8db, offset 0x236c0
-	0x236c3: 0x6c91ec20,
-	0x236c5: 0x6cc41220, 0x236c6: 0x6c888020,
-	0x236cc: 0x6d001a20, 0x236ce: 0x6d1c2020,
-	0x236d1: 0x6d012620,
-	0x236d8: 0x6c8d9e20, 0x236d9: 0x6d1ed620,
-	0x236de: 0x6c294020, 0x236df: 0x6c806020,
-	0x236e0: 0x6cff5e20,
-	0x236e8: 0x6d182a20,
-	0x236ec: 0x6cf34c20, 0x236ee: 0x6d168e20, 0x236ef: 0x6ceaa420,
-	0x236f0: 0x6c102e20, 0x236f2: 0x6d032020,
-	0x236f5: 0x6cd7c420, 0x236f6: 0x6c6c2a20,
-	0x236f8: 0x6c031e20, 0x236f9: 0x6c383020, 0x236fb: 0x6ca0d420,
-	0x236fc: 0x6cc91220,
-	// Block 0x8dc, offset 0x23700
-	0x2370a: 0x6c26ea20, 0x2370b: 0x6c619820,
-	0x23710: 0x6cda8820, 0x23711: 0x6cbf0620, 0x23712: 0x6c033020,
-	0x23726: 0x6ce48c20, 0x23727: 0x6d1f0a20,
-	0x23729: 0x6ceb0020, 0x2372b: 0x6cec6c20,
-	0x2372c: 0x6d202e20, 0x2372e: 0x6c2fe820,
-	0x23731: 0x6cf7d820, 0x23732: 0x6c799820,
-	0x23736: 0x6cbf0c20, 0x23737: 0x6c32f820,
-	0x23738: 0x6c34e420, 0x2373a: 0x6d173620,
-	// Block 0x8dd, offset 0x23740
-	0x23752: 0x6cf5c820, 0x23753: 0x6cbd2420,
-	0x23754: 0x6cda9220, 0x23757: 0x6c8e5220,
-	0x23759: 0x6cecd820,
-	0x2376d: 0x6c17da20, 0x2376e: 0x6d399a20,
-	0x23770: 0x6c997220,
-	0x23777: 0x6cc2de20,
-	0x2377d: 0x6d208c20, 0x2377f: 0x6d17ac20,
-	// Block 0x8de, offset 0x23780
-	0x23780: 0x6c9c5020, 0x23783: 0x6c7f0c20,
-	0x23784: 0x6d362e20,
-	0x237a4: 0x6ca5e620, 0x237a6: 0x6c048220,
-	0x237aa: 0x6c300420,
-	0x237ae: 0x6d363020,
-	// Block 0x8df, offset 0x237c0
-	0x237d5: 0x6d17ec20,
-	0x237d8: 0x6c8d1e20, 0x237d9: 0x6d216020, 0x237da: 0x6c231e20, 0x237db: 0x6c2c6a20,
-	0x237dc: 0x6d365c20,
-	0x237e0: 0x6cc86820, 0x237e3: 0x6c669a20,
-	0x237e9: 0x6ced8c20, 0x237eb: 0x6c6d2c20,
-	0x237ed: 0x6cad0820,
-	// Block 0x8e0, offset 0x23800
-	0x2380d: 0x6c928a20, 0x2380e: 0x6cc1a620,
-	0x23810: 0x6cf80020, 0x23811: 0x6c26b420,
-	0x23816: 0x6c56c220, 0x23817: 0x6c95bc20,
-	0x23819: 0x6c822820,
-	0x23836: 0x6c45f820,
-	0x2383b: 0x6c8e2620,
-	// Block 0x8e1, offset 0x23840
-	0x23842: 0x6c817820,
-	0x23844: 0x6d3be420,
-	0x23868: 0x6d2a5220, 0x23869: 0x6c506a20, 0x2386a: 0x6cfe5420,
-	0x2386d: 0x6c507020, 0x2386e: 0x6c86a220,
-	0x23871: 0x6c2d8820, 0x23872: 0x6c444020,
-	0x2387d: 0x6c58a820,
-	// Block 0x8e2, offset 0x23880
-	0x23884: 0x6c36b620, 0x23886: 0x6cf9fe20,
-	0x2388b: 0x6c651820,
-	0x2388c: 0x6cb67420, 0x2388d: 0x6cfa0820, 0x2388e: 0x6d1ffa20,
-	0x238a1: 0x6d330420,
-	0x238aa: 0x6d3bf220,
-	0x238ae: 0x6c163a20,
-	// Block 0x8e3, offset 0x238c0
-	0x238c9: 0x6d027a20,
-	0x238d5: 0x6ca4d620,
-	0x238dd: 0x6c62ee20, 0x238de: 0x6ce4d620,
-	0x238e3: 0x6d0e3220,
-	0x238e7: 0x6c500c20,
-	0x238e8: 0x6d030820, 0x238e9: 0x6c8de020, 0x238eb: 0x6c047620,
-	0x238ec: 0x6c081220,
-	0x238f1: 0x6c463e20, 0x238f2: 0x6c8cc820,
-	0x238f5: 0x6c7df420, 0x238f6: 0x6cb85e20, 0x238f7: 0x6c699e20,
-	0x238f9: 0x6c371420, 0x238fa: 0x6d10fa20, 0x238fb: 0x6c316e20,
-	// Block 0x8e4, offset 0x23900
-	0x23901: 0x6c5d9220, 0x23902: 0x6c322420, 0x23903: 0x6cadbe20,
-	0x2390c: 0x6d259820, 0x2390f: 0x6c90b820,
-	0x23910: 0x6d03f820, 0x23913: 0x6c883a20,
-	0x23914: 0x6d113820, 0x23915: 0x6cf6a020, 0x23916: 0x6d114420,
-	0x23918: 0x6cf70020, 0x2391b: 0x6c918a20,
-	0x2391d: 0x6d0f0020,
-	0x23920: 0x6cc33820,
-	0x23925: 0x6cc50020, 0x23926: 0x6cec2020, 0x23927: 0x6d40a420,
-	0x23928: 0x6c392e20, 0x23929: 0x6d16c620, 0x2392a: 0x6c323c20, 0x2392b: 0x6cdc2620,
-	0x2392d: 0x6caf4820, 0x2392f: 0x6c4de820,
-	0x23931: 0x6d069820, 0x23933: 0x6c45e620,
-	0x23935: 0x6c2c2e20, 0x23937: 0x6ca32620,
-	0x2393e: 0x6c34ec20, 0x2393f: 0x6cebda20,
-	// Block 0x8e5, offset 0x23940
-	0x23942: 0x6ca81820,
-	0x23948: 0x6c2e1a20, 0x23949: 0x6c598e20,
-	0x2394c: 0x6ce32c20, 0x2394d: 0x6c395420,
-	0x23951: 0x6cf3ca20, 0x23952: 0x6c01fe20,
-	0x23954: 0x6cb2a820,
-	0x23959: 0x6c4e1420, 0x2395b: 0x6c428820,
-	0x2395c: 0x6c83e820, 0x2395e: 0x6c339c20, 0x2395f: 0x6c400e20,
-	0x23960: 0x6ca35020, 0x23962: 0x6c132220,
-	0x23967: 0x6c6a2820,
-	0x23969: 0x6cbed020, 0x2396b: 0x6d1bd020,
-	0x2396c: 0x6cfdd220,
-	0x23971: 0x6c557c20,
-	0x23974: 0x6cdaec20,
-	0x2397b: 0x6c43a420,
-	0x2397c: 0x6c368820, 0x2397d: 0x6d072a20,
-	// Block 0x8e6, offset 0x23980
-	0x23986: 0x6cf6cc20,
-	0x2398a: 0x6c774c20, 0x2398b: 0x6c4c8a20,
-	0x2398c: 0x6c6a3620, 0x2398d: 0x6c200c20, 0x2398e: 0x6c826220, 0x2398f: 0x6c527620,
-	0x23990: 0x6d41f420,
-	0x23995: 0x6cb1e620,
-	0x23998: 0x6c2ab420, 0x23999: 0x6cf70220, 0x2399a: 0x6c826820,
-	0x2399c: 0x6ccdc620,
-	0x239a7: 0x6c918c20,
-	0x239a9: 0x6c338a20, 0x239aa: 0x6c760420,
-	0x239ad: 0x6c164820, 0x239af: 0x6d012c20,
-	0x239b0: 0x6cec0220, 0x239b1: 0x6d30c420, 0x239b3: 0x6d3b9e20,
-	0x239b7: 0x6c8f6020,
-	0x239b8: 0x6c82aa20,
-	0x239bc: 0x6c273620, 0x239bd: 0x6c417820,
-	// Block 0x8e7, offset 0x239c0
-	0x239c4: 0x6cd34020, 0x239c7: 0x6d0da420,
-	0x239cc: 0x6c41b420,
-	0x239d0: 0x6d0d0020,
-	0x239d6: 0x6cdbac20,
-	0x239da: 0x6d37a620,
-	0x239dc: 0x6cd34220,
-	0x239e1: 0x6cd15c20,
-	0x239e5: 0x6c15ae20,
-	0x239f7: 0x6c5a0820,
-	0x239f8: 0x6d1b8e20, 0x239fb: 0x6c9bee20,
-	// Block 0x8e8, offset 0x23a00
-	0x23a02: 0x6cc4f220,
-	0x23a05: 0x6cfdae20,
-	0x23a08: 0x6c071420,
-	0x23a0c: 0x6c200820,
-	0x23a11: 0x6cb47620,
-	0x23a19: 0x6c77d220, 0x23a1a: 0x6c7e3820,
-	0x23a1d: 0x6cc35020, 0x23a1f: 0x6c4f9220,
-	0x23a20: 0x6c1bf220, 0x23a21: 0x6c983820,
-	0x23a26: 0x6d2cb020,
-	0x23a2a: 0x6c3bd220,
-	0x23a2c: 0x6c17b420,
-	0x23a33: 0x6c6e1820,
-	// Block 0x8e9, offset 0x23a40
-	0x23a43: 0x6c8ada20,
-	0x23a45: 0x6ca31c20, 0x23a46: 0x6ca31e20, 0x23a47: 0x6ce72a20,
-	0x23a4b: 0x6cc46620,
-	0x23a4c: 0x6d411620, 0x23a4d: 0x6caf5420, 0x23a4e: 0x6d1fba20,
-	0x23a50: 0x6cd4be20,
-	0x23a5b: 0x6c8af420,
-	0x23a5c: 0x6cd43020, 0x23a5d: 0x6ce97e20, 0x23a5f: 0x6c430220,
-	0x23a60: 0x6ccea220, 0x23a61: 0x6ceb0420, 0x23a63: 0x6ca3f220,
-	0x23a67: 0x6ceb7a20,
-	0x23a68: 0x6c458220, 0x23a69: 0x6c2e1c20,
-	0x23a74: 0x6c9bd020, 0x23a75: 0x6c052820, 0x23a77: 0x6d00a420,
-	0x23a78: 0x6cd8b420, 0x23a79: 0x6ce6c820, 0x23a7a: 0x6c4b4220,
-	0x23a7d: 0x6c3e8020, 0x23a7e: 0x6c4b4820,
-	// Block 0x8ea, offset 0x23a80
-	0x23a89: 0x6c4b4a20,
-	0x23a91: 0x6d3a7420, 0x23a93: 0x6c7f1420,
-	0x23a95: 0x6c951620, 0x23a96: 0x6ce50020, 0x23a97: 0x6cc4c620,
-	0x23a9a: 0x6c300820,
-	0x23aa8: 0x6c737220, 0x23aa9: 0x6d0cac20,
-	0x23aac: 0x6cc84020, 0x23aad: 0x6c283a20,
-	0x23ab0: 0x6c999e20,
-	0x23ab6: 0x6c944020,
-	0x23ab8: 0x6d072c20, 0x23aba: 0x6cf6a220,
-	// Block 0x8eb, offset 0x23ac0
-	0x23ac2: 0x6c967420, 0x23ac3: 0x6cb52220,
-	0x23ac5: 0x6c144820,
-	0x23ac8: 0x6cce1e20, 0x23ac9: 0x6c4f0820, 0x23aca: 0x6cb2ce20,
-	0x23ace: 0x6c5f3820,
-	0x23ad3: 0x6c86a620,
-	0x23ad5: 0x6d240c20, 0x23ad6: 0x6c04a420,
-	0x23ad8: 0x6ce29220,
-	0x23add: 0x6c1de820,
-	0x23ae0: 0x6c1dea20,
-	0x23ae4: 0x6cb54420, 0x23ae5: 0x6cf70420, 0x23ae6: 0x6c076820,
-	0x23aea: 0x6d138020,
-	0x23aed: 0x6c4a1020, 0x23aef: 0x6d3b3a20,
-	0x23af3: 0x6c827c20,
-	0x23af4: 0x6c827e20, 0x23af5: 0x6c13be20,
-	// Block 0x8ec, offset 0x23b00
-	0x23b00: 0x6c4a1420,
-	0x23b0d: 0x6c2f2420,
-	0x23b13: 0x6d0b4420,
-	0x23b18: 0x6ca7fc20, 0x23b19: 0x6cd4de20, 0x23b1b: 0x6d363220,
-	0x23b1f: 0x6d36e420,
-	0x23b22: 0x6d36e620, 0x23b23: 0x6cb07620,
-	0x23b25: 0x6c6f4e20, 0x23b26: 0x6c6f5220, 0x23b27: 0x6d169020,
-	0x23b28: 0x6d201220, 0x23b2a: 0x6c6f5420,
-	0x23b2f: 0x6c58f220,
-	0x23b31: 0x6c323e20,
-	0x23b3b: 0x6ce20c20,
-	0x23b3c: 0x6cbc9e20, 0x23b3d: 0x6cbd5c20, 0x23b3e: 0x6d032420, 0x23b3f: 0x6c14bc20,
-	// Block 0x8ed, offset 0x23b40
-	0x23b40: 0x6c61ae20, 0x23b42: 0x6cbe0a20,
-	0x23b4a: 0x6c324620, 0x23b4b: 0x6d33aa20,
-	0x23b4e: 0x6cab7820,
-	0x23b50: 0x6cf4c820, 0x23b52: 0x6cf18620,
-	0x23b58: 0x6c096620, 0x23b5b: 0x6c069420,
-	0x23b5d: 0x6ca23c20, 0x23b5e: 0x6c6cf420, 0x23b5f: 0x6ce21220,
-	0x23b60: 0x6c89e220,
-	0x23b65: 0x6c127220, 0x23b66: 0x6d2c2820,
-	0x23b6c: 0x6c1b8e20, 0x23b6d: 0x6d0ae020, 0x23b6e: 0x6c7c6420, 0x23b6f: 0x6d1b4420,
-	0x23b78: 0x6c8f8820, 0x23b79: 0x6cb86020, 0x23b7b: 0x6c4f4c20,
-	0x23b7c: 0x6cce5020, 0x23b7d: 0x6c4d6420, 0x23b7e: 0x6c139220,
-	// Block 0x8ee, offset 0x23b80
-	0x23b80: 0x6c68e220, 0x23b81: 0x6c81ae20,
-	0x23b88: 0x6cf5fa20, 0x23b8b: 0x6c0ef220,
-	0x23b93: 0x6d351a20,
-	0x23b95: 0x6cea8a20, 0x23b96: 0x6c3e8220,
-	0x23b98: 0x6c54ce20, 0x23b9a: 0x6ca83220, 0x23b9b: 0x6d17ae20,
-	0x23b9c: 0x6d3c4020,
-	0x23ba0: 0x6c13e620,
-	0x23ba4: 0x6cdb8220, 0x23ba7: 0x6d283620,
-	0x23bae: 0x6c325e20,
-	0x23bb0: 0x6cf61c20, 0x23bb1: 0x6c203620, 0x23bb2: 0x6d03e820, 0x23bb3: 0x6c68fa20,
-	0x23bb4: 0x6ccfea20,
-	// Block 0x8ef, offset 0x23bc0
-	0x23bc0: 0x6cedca20, 0x23bc1: 0x6c06a220, 0x23bc2: 0x6c3a3a20, 0x23bc3: 0x6c669c20,
-	0x23bc4: 0x6cc30020, 0x23bc5: 0x6d17f020, 0x23bc6: 0x6c300a20, 0x23bc7: 0x6d06f620,
-	0x23bc8: 0x6ca35220, 0x23bc9: 0x6c605a20,
-	0x23bcc: 0x6d31e620, 0x23bcd: 0x6cb5fa20, 0x23bce: 0x6c330a20, 0x23bcf: 0x6d1a7220,
-	0x23bd1: 0x6c700420, 0x23bd2: 0x6caffe20, 0x23bd3: 0x6d033e20,
-	0x23bd4: 0x6c94fe20, 0x23bd5: 0x6c113420, 0x23bd6: 0x6c8e2020, 0x23bd7: 0x6c0cac20,
-	0x23bd8: 0x6c2a1c20, 0x23bd9: 0x6c2a7620,
-	0x23bdf: 0x6c7ed820,
-	0x23be1: 0x6cf65020, 0x23be2: 0x6c725620,
-	0x23be4: 0x6cff9020, 0x23be6: 0x6c6dc020,
-	0x23bf9: 0x6cec7220, 0x23bfb: 0x6ca50a20,
-	0x23bfc: 0x6cfd8220, 0x23bfd: 0x6cc3e220, 0x23bfe: 0x6cbcd420, 0x23bff: 0x6ce86a20,
-	// Block 0x8f0, offset 0x23c00
-	0x23c00: 0x6d064a20, 0x23c01: 0x6c5bfc20,
-	0x23c05: 0x6c9f6c20, 0x23c06: 0x6ceff220,
-	0x23c08: 0x6d1f5620, 0x23c09: 0x6ce9ae20, 0x23c0a: 0x6c278020,
-	0x23c0e: 0x6c786c20, 0x23c0f: 0x6ca36220,
-	0x23c11: 0x6c401c20, 0x23c12: 0x6d239620, 0x23c13: 0x6d354420,
-	0x23c15: 0x6c4dae20, 0x23c16: 0x6c002e20, 0x23c17: 0x6c401e20,
-	0x23c21: 0x6d0f6220,
-	0x23c24: 0x6cd27e20, 0x23c26: 0x6c150c20,
-	0x23c2a: 0x6c1c5c20, 0x23c2b: 0x6d284820,
-	0x23c2c: 0x6cd65a20, 0x23c2e: 0x6cdb0620, 0x23c2f: 0x6cca8620,
-	0x23c31: 0x6c368a20, 0x23c32: 0x6d332e20, 0x23c33: 0x6c004e20,
-	0x23c34: 0x6cdd8c20, 0x23c35: 0x6c10b220, 0x23c37: 0x6cc45220,
-	0x23c38: 0x6d185e20, 0x23c39: 0x6d0dca20, 0x23c3b: 0x6ca36620,
-	0x23c3c: 0x6cf46a20,
-	// Block 0x8f1, offset 0x23c40
-	0x23c47: 0x6c865c20,
-	0x23c48: 0x6c865e20, 0x23c4a: 0x6cf6a820, 0x23c4b: 0x6c749c20,
-	0x23c4c: 0x6cd1ea20, 0x23c4e: 0x6d0b5c20,
-	0x23c5b: 0x6c18e420,
-	0x23c5c: 0x6d1c8c20, 0x23c5d: 0x6c0a5220, 0x23c5e: 0x6c184020,
-	0x23c61: 0x6d2bfc20, 0x23c62: 0x6ceb9020, 0x23c63: 0x6c56c620,
-	0x23c64: 0x6ce2b220, 0x23c65: 0x6d1d4c20, 0x23c66: 0x6c08f820, 0x23c67: 0x6ca91e20,
-	0x23c68: 0x6c891a20, 0x23c69: 0x6d034c20, 0x23c6a: 0x6d229020,
-	0x23c72: 0x6c075e20,
-	0x23c74: 0x6ca07820, 0x23c75: 0x6c331420, 0x23c77: 0x6c29ea20,
-	0x23c78: 0x6cb64c20,
-	// Block 0x8f2, offset 0x23c80
-	0x23c80: 0x6cd65c20, 0x23c83: 0x6cff1e20,
-	0x23c84: 0x6d380a20, 0x23c85: 0x6d3cb220, 0x23c87: 0x6c0bca20,
-	0x23c89: 0x6cf02a20, 0x23c8a: 0x6cf6ec20,
-	0x23c8c: 0x6c2aae20, 0x23c8e: 0x6d005620, 0x23c8f: 0x6cac4620,
-	0x23c90: 0x6ca87a20, 0x23c93: 0x6c0cfa20,
-	0x23c94: 0x6ccf7a20, 0x23c95: 0x6c3ad820, 0x23c96: 0x6c9fcc20, 0x23c97: 0x6cb7e820,
-	0x23caa: 0x6ccdbc20, 0x23cab: 0x6cdd9c20,
-	0x23cb7: 0x6c60c020,
-	0x23cba: 0x6c285020, 0x23cbb: 0x6c739c20,
-	0x23cbc: 0x6c930420, 0x23cbe: 0x6c02f620,
-	// Block 0x8f3, offset 0x23cc0
-	0x23cc2: 0x6d18ea20, 0x23cc3: 0x6cd57a20,
-	0x23cc4: 0x6cdc9c20, 0x23cc5: 0x6cf0f220, 0x23cc6: 0x6cecec20, 0x23cc7: 0x6c1ef420,
-	0x23ccc: 0x6cf32820,
-	0x23cd6: 0x6c0aa420,
-	0x23cd8: 0x6d1b1a20, 0x23cd9: 0x6c5d8220,
-	0x23cdc: 0x6c769c20, 0x23cdd: 0x6ca93020,
-	0x23ce2: 0x6c00fc20,
-	0x23ce4: 0x6c870020, 0x23ce6: 0x6d2d0220,
-	0x23cf1: 0x6c933020,
-	0x23cf6: 0x6c0bd420, 0x23cf7: 0x6cac8a20,
-	0x23cff: 0x6c4b9c20,
-	// Block 0x8f4, offset 0x23d00
-	0x23d00: 0x6cda6a20, 0x23d01: 0x6c9ba020, 0x23d02: 0x6cfc5220, 0x23d03: 0x6c906e20,
-	0x23d05: 0x6cb80220,
-	0x23d0b: 0x6c164a20,
-	0x23d0c: 0x6d195c20, 0x23d0d: 0x6c4f8e20, 0x23d0f: 0x6c88e020,
-	0x23d10: 0x6c49c220, 0x23d12: 0x6cf06020,
-	0x23d17: 0x6c752020,
-	0x23d18: 0x6c829c20, 0x23d19: 0x6c946620, 0x23d1a: 0x6c87a620,
-	0x23d1c: 0x6cb03e20,
-	0x23d22: 0x6c58e820,
-	0x23d2e: 0x6c4a5820,
-	0x23d33: 0x6c713420,
-	0x23d36: 0x6c2aa220,
-	0x23d3a: 0x6c3ad220,
-	// Block 0x8f5, offset 0x23d40
-	0x23d41: 0x6d338e20, 0x23d43: 0x6c9a7a20,
-	0x23d45: 0x6c58f420,
-	0x23d49: 0x6cabba20, 0x23d4a: 0x6c08c420,
-	0x23d4c: 0x6cb30020,
-	0x23d53: 0x6c374220,
-	0x23d55: 0x6c58fc20,
-	0x23d63: 0x6c170c20,
-	0x23d65: 0x6c95fc20, 0x23d66: 0x6c3d2820,
-	0x23d6f: 0x6c1db220,
-	0x23d71: 0x6d40c020, 0x23d72: 0x6ca3fe20, 0x23d73: 0x6cffae20,
-	0x23d79: 0x6c044820, 0x23d7a: 0x6c926620,
-	0x23d7c: 0x6c961220, 0x23d7f: 0x6ca76620,
-	// Block 0x8f6, offset 0x23d80
-	0x23d80: 0x6d2ad020,
-	0x23d84: 0x6d3b0a20, 0x23d85: 0x6c557420,
-	0x23d88: 0x6c5ad820, 0x23d89: 0x6ce17c20, 0x23d8a: 0x6c1dca20,
-	0x23d91: 0x6c59e020, 0x23d92: 0x6c30b820,
-	0x23d9b: 0x6c9eba20,
-	0x23d9d: 0x6c0f5a20,
-	0x23da0: 0x6c2ca420, 0x23da2: 0x6c2ad020, 0x23da3: 0x6cb41620,
-	0x23da5: 0x6cd94020, 0x23da6: 0x6c1dec20,
-	0x23dab: 0x6d123c20,
-	0x23dac: 0x6c9bf020, 0x23dad: 0x6c8fc820,
-	0x23db2: 0x6c888220,
-	0x23db5: 0x6c0d0620,
-	0x23dba: 0x6c93c220,
-	0x23dbf: 0x6ccba020,
-	// Block 0x8f7, offset 0x23dc0
-	0x23dc0: 0x6d425820,
-	0x23dc4: 0x6c25aa20, 0x23dc5: 0x6c8de420, 0x23dc6: 0x6d331a20, 0x23dc7: 0x6cb05220,
-	0x23dc8: 0x6c05c220, 0x23dcb: 0x6cc3a420,
-	0x23dce: 0x6caf4a20, 0x23dcf: 0x6ca44220,
-	0x23dd0: 0x6caf4c20, 0x23dd1: 0x6c0fe220, 0x23dd2: 0x6c06f020, 0x23dd3: 0x6c37e820,
-	0x23dd5: 0x6c9fa620, 0x23dd6: 0x6ca0f220, 0x23dd7: 0x6cec2420,
-	0x23dd8: 0x6d2f6020, 0x23dd9: 0x6d35c220, 0x23dda: 0x6c240c20,
-	0x23ddf: 0x6d0a0620,
-	0x23de0: 0x6c602020, 0x23de1: 0x6c4b4420, 0x23de3: 0x6c19ea20,
-	0x23de7: 0x6c4ec620,
-	0x23de8: 0x6cfff220, 0x23de9: 0x6cc3c020, 0x23deb: 0x6c21be20,
-	0x23ded: 0x6c3f6420,
-	0x23df3: 0x6cbdde20,
-	0x23df4: 0x6c926820, 0x23df5: 0x6cc3d020, 0x23df6: 0x6c2d1e20, 0x23df7: 0x6cb8f020,
-	0x23dfc: 0x6c16ee20, 0x23dfd: 0x6cde6220, 0x23dfe: 0x6c06ae20,
-	// Block 0x8f8, offset 0x23e00
-	0x23e01: 0x6c326c20, 0x23e02: 0x6c082620, 0x23e03: 0x6c547820,
-	0x23e08: 0x6d2c8420, 0x23e09: 0x6d2c8620,
-	0x23e0e: 0x6cc3ee20, 0x23e0f: 0x6c967620,
-	0x23e10: 0x6c4e2c20, 0x23e13: 0x6c8e8620,
-	0x23e14: 0x6c92d020, 0x23e16: 0x6d3e8c20,
-	0x23e18: 0x6cb07020, 0x23e19: 0x6d395220, 0x23e1b: 0x6d2a2420,
-	0x23e1d: 0x6ca9a020,
-	0x23e20: 0x6c5c5620, 0x23e23: 0x6d092020,
-	0x23e25: 0x6c7ea020,
-	0x23e2b: 0x6caa0620,
-	0x23e2c: 0x6d0dfa20, 0x23e2d: 0x6cc4d820, 0x23e2e: 0x6ca52220,
-	0x23e30: 0x6c7eb420, 0x23e31: 0x6c4a1220, 0x23e32: 0x6c31e220,
-	0x23e35: 0x6c919020,
-	0x23e39: 0x6c663c20, 0x23e3a: 0x6d028c20, 0x23e3b: 0x6cb80e20,
-	0x23e3e: 0x6cfe7420,
-	// Block 0x8f9, offset 0x23e40
-	0x23e41: 0x6c4cb020, 0x23e42: 0x6c6a8420, 0x23e43: 0x6c98b620,
-	0x23e46: 0x6cf95820, 0x23e47: 0x6c7c3620,
-	0x23e4e: 0x6d1e7620,
-	0x23e50: 0x6c4d3c20, 0x23e51: 0x6c9d3220, 0x23e52: 0x6d11fc20,
-	0x23e55: 0x6cf14c20,
-	0x23e5f: 0x6c85f220,
-	0x23e60: 0x6c735820, 0x23e61: 0x6cf36420, 0x23e62: 0x6cbbda20,
-	0x23e6e: 0x6c2e2a20, 0x23e6f: 0x6c1f4220,
-	0x23e72: 0x6cdd1c20,
-	0x23e75: 0x6c1cc420,
-	0x23e78: 0x6cc2a020, 0x23e79: 0x6ccf5e20,
-	// Block 0x8fa, offset 0x23e80
-	0x23e82: 0x6c9bd820, 0x23e83: 0x6c726820,
-	0x23e8b: 0x6ce8e620,
-	0x23e92: 0x6ca9c020, 0x23e93: 0x6ca07a20,
-	0x23e99: 0x6c3bee20,
-	0x23ea2: 0x6c027020, 0x23ea3: 0x6c4c3e20,
-	0x23ea4: 0x6c55b420, 0x23ea5: 0x6c11b820, 0x23ea6: 0x6c33b220, 0x23ea7: 0x6c4d4820,
-	0x23ea8: 0x6c694e20,
-	0x23eb0: 0x6c473a20,
-	0x23eb5: 0x6c6c6020,
-	0x23eb8: 0x6d0fe420,
-	// Block 0x8fb, offset 0x23ec0
-	0x23ec0: 0x6c145020,
-	0x23ecc: 0x6c5b0820,
-	0x23ed4: 0x6cc20c20, 0x23ed5: 0x6c784420,
-	0x23edf: 0x6cbe6620,
-	0x23ee0: 0x6d197a20, 0x23ee3: 0x6c767a20,
-	0x23ee4: 0x6c68b820, 0x23ee7: 0x6c1d6220,
-	0x23ee8: 0x6c103020, 0x23ee9: 0x6c44ae20, 0x23eea: 0x6c682620, 0x23eeb: 0x6d339020,
-	0x23eee: 0x6cf20020,
-	0x23ef0: 0x6c0d2220,
-	0x23ef4: 0x6d048820, 0x23ef5: 0x6c393020,
-	0x23ef8: 0x6d147620, 0x23ef9: 0x6c203020, 0x23efa: 0x6d11ee20,
-	0x23efd: 0x6d0f4c20, 0x23efe: 0x6c324020, 0x23eff: 0x6d0d4a20,
-	// Block 0x8fc, offset 0x23f00
-	0x23f01: 0x6c9b0a20,
-	0x23f07: 0x6c1a9620,
-	0x23f08: 0x6ca27420, 0x23f09: 0x6c683420, 0x23f0b: 0x6caa7a20,
-	0x23f0d: 0x6c4c6420, 0x23f0e: 0x6d094a20,
-	0x23f11: 0x6c3e1c20, 0x23f12: 0x6d08dc20, 0x23f13: 0x6c3d4c20,
-	0x23f14: 0x6cae1020, 0x23f15: 0x6ca0ea20, 0x23f16: 0x6cf5a820, 0x23f17: 0x6cf2dc20,
-	0x23f18: 0x6ccd3620, 0x23f1b: 0x6cf5aa20,
-	0x23f1c: 0x6cb75a20, 0x23f1d: 0x6c9e5220,
-	0x23f26: 0x6c282820,
-	0x23f28: 0x6c1e2820,
-	0x23f31: 0x6c3a9c20, 0x23f32: 0x6c9ec820,
-	0x23f34: 0x6d095020, 0x23f35: 0x6d06ae20, 0x23f36: 0x6cd7dc20, 0x23f37: 0x6c71b220,
-	0x23f38: 0x6c993420, 0x23f39: 0x6c063e20, 0x23f3b: 0x6d14d220,
-	0x23f3c: 0x6c485020, 0x23f3d: 0x6ca69220, 0x23f3f: 0x6d14d420,
-	// Block 0x8fd, offset 0x23f40
-	0x23f41: 0x6d429020,
-	0x23f44: 0x6caa5420,
-	0x23f51: 0x6c2d4820, 0x23f52: 0x6c393c20, 0x23f53: 0x6d173a20,
-	0x23f54: 0x6cd35a20, 0x23f57: 0x6c240e20,
-	0x23f58: 0x6d31ce20,
-	0x23f5e: 0x6cd36a20, 0x23f5f: 0x6c68e620,
-	0x23f60: 0x6c546a20, 0x23f61: 0x6c375020,
-	0x23f66: 0x6c833220, 0x23f67: 0x6d095420,
-	0x23f68: 0x6c452c20, 0x23f6a: 0x6cd43220,
-	0x23f6c: 0x6c72ec20,
-	0x23f74: 0x6c6ab820, 0x23f75: 0x6cef0020, 0x23f77: 0x6cd44620,
-	0x23f78: 0x6c6e7620, 0x23f7a: 0x6d061c20, 0x23f7b: 0x6c1d4c20,
-	// Block 0x8fe, offset 0x23f80
-	0x23f85: 0x6c675e20, 0x23f86: 0x6ca20a20,
-	0x23f89: 0x6d231a20,
-	0x23f8c: 0x6c745220,
-	0x23f91: 0x6ce6ea20,
-	0x23f94: 0x6cfec420, 0x23f96: 0x6c30ac20,
-	0x23f98: 0x6c4c6c20, 0x23f99: 0x6c986220, 0x23f9a: 0x6cedcc20, 0x23f9b: 0x6d06de20,
-	0x23f9c: 0x6cee5420, 0x23f9d: 0x6cdd2020, 0x23f9e: 0x6c736620, 0x23f9f: 0x6d26b820,
-	0x23fa1: 0x6c4e1620, 0x23fa3: 0x6ccfec20,
-	0x23fa5: 0x6d00ac20, 0x23fa6: 0x6c8e5a20, 0x23fa7: 0x6cc8f020,
-	0x23faf: 0x6c09a620,
-	0x23fb2: 0x6ca53220,
-	0x23fb6: 0x6ced8420, 0x23fb7: 0x6c700020,
-	0x23fb8: 0x6cc38c20,
-	// Block 0x8ff, offset 0x23fc0
-	0x23fc4: 0x6ca6a220, 0x23fc6: 0x6c9c5220, 0x23fc7: 0x6cdd2220,
-	0x23fc9: 0x6cbb4020,
-	0x23fcc: 0x6c4ed220, 0x23fcd: 0x6d3d6c20, 0x23fce: 0x6c9c5e20, 0x23fcf: 0x6d06f820,
-	0x23fd1: 0x6c810420, 0x23fd2: 0x6c6aee20, 0x23fd3: 0x6c2faa20,
-	0x23fd4: 0x6c171820, 0x23fd5: 0x6d365e20, 0x23fd6: 0x6c3a0c20, 0x23fd7: 0x6c63cc20,
-	0x23fd8: 0x6c75cc20, 0x23fd9: 0x6c5dde20, 0x23fda: 0x6cb4fe20, 0x23fdb: 0x6c70a620,
-	0x23fdc: 0x6d3cd420, 0x23fde: 0x6c2d6420, 0x23fdf: 0x6c690c20,
-	0x23fe0: 0x6d0af220, 0x23fe2: 0x6d2dfa20,
-	0x23fed: 0x6d33f220, 0x23fef: 0x6c973620,
-	0x23ff0: 0x6c54da20, 0x23ff1: 0x6d01ca20, 0x23ff2: 0x6cd27420, 0x23ff3: 0x6c4a7220,
-	0x23fff: 0x6d06fa20,
-	// Block 0x900, offset 0x24000
-	0x24002: 0x6c606a20,
-	0x24004: 0x6c20b020, 0x24006: 0x6c99a220, 0x24007: 0x6cc84220,
-	0x24008: 0x6d05bc20, 0x24009: 0x6c594620, 0x2400a: 0x6ccc6420, 0x2400b: 0x6c71c820,
-	0x2400f: 0x6c7c0020,
-	0x24011: 0x6c542020, 0x24012: 0x6c491e20, 0x24013: 0x6c486a20,
-	0x24015: 0x6c9c6420, 0x24016: 0x6c2ed020, 0x24017: 0x6c0a0020,
-	0x24018: 0x6c899820, 0x24019: 0x6c7e8620, 0x2401a: 0x6ccd5220, 0x2401b: 0x6c928c20,
-	0x2401c: 0x6cf8b420, 0x2401f: 0x6cda2220,
-	0x2402c: 0x6cab4220, 0x2402e: 0x6c838020,
-	0x24037: 0x6c7a5020,
-	0x24038: 0x6c4a7c20, 0x2403b: 0x6cf67a20,
-	0x2403c: 0x6cac6c20, 0x2403d: 0x6ccb4c20, 0x2403e: 0x6c754e20, 0x2403f: 0x6c53d020,
-	// Block 0x901, offset 0x24040
-	0x24040: 0x6c49a220, 0x24041: 0x6c727c20, 0x24043: 0x6ca3d220,
-	0x24044: 0x6c575020, 0x24045: 0x6c442220, 0x24046: 0x6c866020, 0x24047: 0x6c46d020,
-	0x24048: 0x6ce41420, 0x2404a: 0x6c96d820, 0x2404b: 0x6ce2ae20,
-	0x2404c: 0x6c26ba20,
-	0x24050: 0x6cb52420, 0x24051: 0x6d23c620, 0x24052: 0x6c693020, 0x24053: 0x6c9ee620,
-	0x24054: 0x6c451820, 0x24055: 0x6c9c0e20, 0x24056: 0x6cf0c020,
-	0x24058: 0x6ce36620, 0x24059: 0x6cb63a20,
-	0x2405c: 0x6c18e620, 0x2405d: 0x6c30c220, 0x2405f: 0x6cac6e20,
-	0x24070: 0x6c4efc20,
-	0x24074: 0x6c9d8a20, 0x24075: 0x6c967820, 0x24076: 0x6c92d220, 0x24077: 0x6cb53020,
-	0x24078: 0x6c795220, 0x2407a: 0x6c2ee820, 0x2407b: 0x6cb7d820,
-	0x2407c: 0x6c687c20, 0x2407d: 0x6c774e20, 0x2407e: 0x6cbbb020, 0x2407f: 0x6c9d8c20,
-	// Block 0x902, offset 0x24080
-	0x24080: 0x6ccd0c20,
-	0x24087: 0x6c64da20,
-	0x24088: 0x6c843c20, 0x24089: 0x6c78d620, 0x2408a: 0x6d073c20,
-	0x24091: 0x6c977a20, 0x24092: 0x6c3cf420, 0x24093: 0x6c163420,
-	0x24094: 0x6c5b6420,
-	0x240a7: 0x6c7a0420,
-	0x240aa: 0x6cf02c20, 0x240ab: 0x6c49a820,
-	0x240ac: 0x6c60c220, 0x240ad: 0x6d421c20, 0x240ae: 0x6c5e0a20, 0x240af: 0x6d00fe20,
-	0x240b4: 0x6cdc8420, 0x240b6: 0x6cc88220,
-	0x240b8: 0x6ce28620,
-	0x240bc: 0x6d336820, 0x240bd: 0x6c7d8820, 0x240be: 0x6cfe0020, 0x240bf: 0x6c9dda20,
-	// Block 0x903, offset 0x240c0
-	0x240c1: 0x6cf8f020,
-	0x240cc: 0x6cc94820,
-	0x240d9: 0x6c36c620, 0x240da: 0x6c9efe20, 0x240db: 0x6d3a8820,
-	0x240dc: 0x6d406c20, 0x240dd: 0x6c9bec20, 0x240df: 0x6cf70620,
-	0x240e1: 0x6ce14e20, 0x240e3: 0x6c645220,
-	0x240e4: 0x6c16d020, 0x240e5: 0x6c60dc20,
-	0x240ee: 0x6d3dbc20,
-	0x240ff: 0x6c520420,
-	// Block 0x904, offset 0x24100
-	0x24100: 0x6c141020, 0x24101: 0x6cb7fc20, 0x24102: 0x6c9dea20, 0x24103: 0x6d320220,
-	0x24104: 0x6c7a6c20, 0x24105: 0x6d138220, 0x24106: 0x6d38c020,
-	0x24108: 0x6c652020, 0x2410a: 0x6cacc220,
-	0x2410d: 0x6c5b0220, 0x2410f: 0x6ca02220,
-	0x24110: 0x6c8f5020,
-	0x24118: 0x6cd73420, 0x2411a: 0x6c974a20, 0x2411b: 0x6c849c20,
-	0x2411e: 0x6cd7ae20, 0x2411f: 0x6d159020,
-	0x24124: 0x6c872c20,
-	0x24128: 0x6d005e20, 0x24129: 0x6ce28a20, 0x2412a: 0x6d051020,
-	0x2412d: 0x6d08ce20, 0x2412e: 0x6c874820, 0x2412f: 0x6c9ba220,
-	0x24130: 0x6cef6a20, 0x24131: 0x6c9ba420,
-	0x2413a: 0x6d124e20, 0x2413b: 0x6c7ffe20,
-	0x2413c: 0x6c8da020, 0x2413d: 0x6d1c3820, 0x2413e: 0x6d1c3a20, 0x2413f: 0x6c876c20,
-	// Block 0x905, offset 0x24140
-	0x24140: 0x6c662820, 0x24141: 0x6c4aaa20,
-	0x24145: 0x6c494020, 0x24146: 0x6d028220,
-	0x24149: 0x6ccf9220, 0x2414b: 0x6d418420,
-	0x24153: 0x6c771e20,
-	0x24154: 0x6c82a820,
-	0x2415a: 0x6c0bde20,
-	0x2415d: 0x6cd54e20, 0x2415e: 0x6caa7820, 0x2415f: 0x6d069a20,
-	0x24163: 0x6c503020,
-	0x24168: 0x6c4af220, 0x2416a: 0x6d2d4020, 0x2416b: 0x6c80c620,
-	0x2416c: 0x6c248e20, 0x2416d: 0x6d363620, 0x2416e: 0x6c3ca820, 0x2416f: 0x6cbd3220,
-	0x24171: 0x6d2acc20, 0x24172: 0x6ca35420, 0x24173: 0x6ca99a20,
-	0x24174: 0x6d17f420, 0x24177: 0x6c232c20,
-	0x24178: 0x6cd1e020, 0x24179: 0x6c65c220, 0x2417a: 0x6d3fa420, 0x2417b: 0x6d0db820,
-	0x2417c: 0x6d1bd620,
-	// Block 0x906, offset 0x24180
-	0x24180: 0x6cc86e20, 0x24182: 0x6cc6a420, 0x24183: 0x6cf8cc20,
-	0x24185: 0x6c492420, 0x24186: 0x6c769420,
-	0x24188: 0x6cf51420, 0x2418a: 0x6cbda820, 0x2418b: 0x6c235820,
-	0x2418d: 0x6d2b0620, 0x2418e: 0x6d024220,
-	0x24190: 0x6d241020, 0x24191: 0x6d29a020, 0x24192: 0x6c206620, 0x24193: 0x6c853c20,
-	0x24194: 0x6c853e20, 0x24195: 0x6d075020, 0x24196: 0x6c9c9020, 0x24197: 0x6d075420,
-	0x24198: 0x6cc88c20, 0x2419b: 0x6c4b9420,
-	0x2419c: 0x6cc73020, 0x2419f: 0x6c991420,
-	0x241a1: 0x6cbdbe20, 0x241a2: 0x6c24be20, 0x241a3: 0x6c24c020,
-	0x241a4: 0x6c24c620,
-	0x241ae: 0x6cf35a20,
-	0x241b0: 0x6c383220, 0x241b1: 0x6c037620,
-	0x241b8: 0x6cb85820, 0x241b9: 0x6d35ee20, 0x241ba: 0x6ce5d420,
-	// Block 0x907, offset 0x241c0
-	0x241c4: 0x6d35f020, 0x241c5: 0x6d345a20, 0x241c7: 0x6c591420,
-	0x241c8: 0x6c1da420, 0x241ca: 0x6d35f220,
-	0x241ce: 0x6d1cf020,
-	0x241d2: 0x6cf4f020, 0x241d3: 0x6c06a420,
-	0x241d5: 0x6c534c20, 0x241d6: 0x6cd06420,
-	0x241d8: 0x6c746620, 0x241d9: 0x6c7d0420,
-	0x241dc: 0x6d15f820, 0x241dd: 0x6d0bbe20,
-	0x241e0: 0x6c087c20,
-	0x241e4: 0x6c7aea20, 0x241e5: 0x6cb8f220,
-	0x241e8: 0x6d2f6620, 0x241ea: 0x6c766820, 0x241eb: 0x6cce1220,
-	0x241ee: 0x6c01ca20, 0x241ef: 0x6d307020,
-	0x241f0: 0x6d369420,
-	0x241f7: 0x6d36b620,
-	0x241f9: 0x6c693220,
-	// Block 0x908, offset 0x24200
-	0x24200: 0x6cd83020, 0x24201: 0x6cb45c20, 0x24202: 0x6cab9420,
-	0x2420a: 0x6d3dbe20,
-	0x24211: 0x6d1c3c20, 0x24213: 0x6c584a20,
-	0x24215: 0x6d0b6e20,
-	0x24218: 0x6cd23c20, 0x24219: 0x6cabb220, 0x2421a: 0x6cb48420,
-	0x2421e: 0x6c983c20, 0x2421f: 0x6c146220,
-	0x24229: 0x6d278e20,
-	0x2422c: 0x6c476a20,
-	0x24239: 0x6c282a20, 0x2423b: 0x6ca4a020,
-	0x2423d: 0x6d302620, 0x2423f: 0x6c552c20,
-	// Block 0x909, offset 0x24240
-	0x24245: 0x6c792c20, 0x24247: 0x6c2e8c20,
-	0x24248: 0x6ce63c20, 0x2424b: 0x6c48ee20,
-	0x2424e: 0x6cbef020, 0x2424f: 0x6cd2ca20,
-	0x24250: 0x6c640c20, 0x24251: 0x6c02ca20, 0x24252: 0x6ca2f620, 0x24253: 0x6cb23a20,
-	0x24254: 0x6c63b220,
-	0x24261: 0x6d30ec20, 0x24262: 0x6c108620, 0x24263: 0x6cf2b020,
-	0x24265: 0x6c141e20,
-	0x2426a: 0x6ca4a420, 0x2426b: 0x6c76c620,
-	0x2426f: 0x6c319220,
-	0x24270: 0x6c48f020, 0x24271: 0x6cbf0e20, 0x24273: 0x6cc66a20,
-	0x24274: 0x6d15e820, 0x24275: 0x6c32fe20, 0x24276: 0x6c82c020,
-	0x24278: 0x6d387a20, 0x24279: 0x6c7ac220, 0x2427a: 0x6c354020, 0x2427b: 0x6cfa9e20,
-	0x2427c: 0x6c2d5420, 0x2427d: 0x6caaf020, 0x2427e: 0x6c361620, 0x2427f: 0x6d1d8620,
-	// Block 0x90a, offset 0x24280
-	0x24280: 0x6cf4e220, 0x24281: 0x6c793a20,
-	0x24293: 0x6d35f420,
-	0x24297: 0x6d351c20,
-	0x24298: 0x6d0a0820, 0x2429b: 0x6d334a20,
-	0x2429e: 0x6d0fae20,
-	0x242a0: 0x6c5dc420, 0x242a1: 0x6c602220, 0x242a2: 0x6ca4f020,
-	0x242a7: 0x6d0ba020,
-	0x242a8: 0x6c924620, 0x242ab: 0x6c3d7220,
-	0x242ac: 0x6cca1c20, 0x242ad: 0x6c1f4420, 0x242ae: 0x6cefca20,
-	0x242b0: 0x6c3f6820, 0x242b1: 0x6c794020, 0x242b2: 0x6cd8c020, 0x242b3: 0x6c778620,
-	0x242b5: 0x6d17b020, 0x242b6: 0x6c579a20,
-	0x242be: 0x6d225e20,
-	// Block 0x90b, offset 0x242c0
-	0x242c3: 0x6c861420,
-	0x242c6: 0x6c8c2020, 0x242c7: 0x6c321e20,
-	0x242c8: 0x6c363c20,
-	0x242cc: 0x6cbb4220, 0x242cd: 0x6c31a620,
-	0x242d0: 0x6c6af020, 0x242d1: 0x6c21c620, 0x242d2: 0x6cfcd420,
-	0x242d6: 0x6c430a20,
-	0x242ec: 0x6c2a1e20,
-	0x242f0: 0x6c52b420,
-	0x242fb: 0x6d3fa620,
-	0x242fe: 0x6cb7b620, 0x242ff: 0x6ceb3820,
-	// Block 0x90c, offset 0x24300
-	0x24300: 0x6c52b820, 0x24301: 0x6cb06420, 0x24302: 0x6c453c20,
-	0x24304: 0x6ca85020, 0x24307: 0x6c798420,
-	0x2430a: 0x6d354620,
-	0x24311: 0x6cffb420,
-	0x24321: 0x6ccf6620, 0x24322: 0x6d217620, 0x24323: 0x6c676a20,
-	0x24329: 0x6cb70a20, 0x2432a: 0x6c190a20, 0x2432b: 0x6cca8220,
-	0x2432d: 0x6cdd8e20, 0x2432e: 0x6cb9bc20, 0x2432f: 0x6c5c1a20,
-	0x24331: 0x6ccda020, 0x24332: 0x6c368c20,
-	0x2433b: 0x6cbfbc20,
-	0x2433d: 0x6c78ca20,
-	// Block 0x90d, offset 0x24340
-	0x24340: 0x6cf23420, 0x24341: 0x6d3e7c20, 0x24342: 0x6c608e20,
-	0x24347: 0x6c26e220,
-	0x24349: 0x6c263620,
-	0x2434d: 0x6c90f620, 0x2434e: 0x6c775020, 0x2434f: 0x6c7e1220,
-	0x24350: 0x6c2b8e20, 0x24351: 0x6cbc7e20, 0x24353: 0x6ca16420,
-	0x24356: 0x6c4cce20, 0x24357: 0x6c52c620,
-	0x24358: 0x6c177c20, 0x24359: 0x6c522620,
-	0x24362: 0x6c129020, 0x24363: 0x6d308c20,
-	0x24366: 0x6c4bea20,
-	0x24370: 0x6d05ec20, 0x24371: 0x6caece20, 0x24372: 0x6c74ca20,
-	0x24375: 0x6c41ee20, 0x24376: 0x6cd83220,
-	0x24378: 0x6cdc8620, 0x24379: 0x6cc40420, 0x2437b: 0x6cf3f220,
-	0x2437c: 0x6d0cda20, 0x2437d: 0x6caf1820, 0x2437e: 0x6cffc420, 0x2437f: 0x6cac4820,
-	// Block 0x90e, offset 0x24380
-	0x2438d: 0x6c7e9e20,
-	0x24397: 0x6c085a20,
-	0x24398: 0x6d320020, 0x24399: 0x6c60de20,
-	0x2439c: 0x6c6cc020, 0x2439d: 0x6c887420, 0x2439e: 0x6c791220,
-	0x243a0: 0x6d38d620,
-	0x243a8: 0x6d2a9620, 0x243aa: 0x6c822e20, 0x243ab: 0x6cb54820,
-	0x243ac: 0x6c0e3820,
-	0x243b5: 0x6d1b1c20, 0x243b6: 0x6cb1f620,
-	0x243bb: 0x6cda3820,
-	0x243bc: 0x6c941620, 0x243be: 0x6c2bb420, 0x243bf: 0x6c31e420,
-	// Block 0x90f, offset 0x243c0
-	0x243c0: 0x6c8a8820, 0x243c1: 0x6d3dd620,
-	0x243ca: 0x6c16fc20,
-	0x243d2: 0x6c194020, 0x243d3: 0x6cdee020,
-	0x243d9: 0x6cc41e20, 0x243da: 0x6c2a4c20,
-	0x243dd: 0x6cc51020, 0x243df: 0x6cb3ba20,
-	0x243e6: 0x6d37e020, 0x243e7: 0x6d006020,
-	0x243ea: 0x6c679620, 0x243eb: 0x6cc21820,
-	0x243ec: 0x6c831020, 0x243ed: 0x6c10f020, 0x243ee: 0x6cc39a20,
-	0x243f5: 0x6cfe7220, 0x243f6: 0x6c836820,
-	0x243fa: 0x6c809620,
-	0x243ff: 0x6c7e6820,
-	// Block 0x910, offset 0x24400
-	0x24401: 0x6c7e6a20,
-	0x24404: 0x6d24b420,
-	0x2440a: 0x6c697e20, 0x2440b: 0x6cbd4e20,
-	0x2440c: 0x6c5e7e20, 0x2440f: 0x6c41c820,
-	0x24412: 0x6d169220,
-	0x24420: 0x6d16c820, 0x24421: 0x6d339e20,
-	0x24424: 0x6c0c6e20, 0x24425: 0x6cd0e620, 0x24426: 0x6c6fd820,
-	0x2442b: 0x6c509420,
-	0x2442c: 0x6c3e2020, 0x2442e: 0x6c706620,
-	// Block 0x911, offset 0x24440
-	0x24440: 0x6d426620, 0x24441: 0x6d14ac20,
-	0x24446: 0x6cfc9420, 0x24447: 0x6d14ae20,
-	0x24449: 0x6cd8a220, 0x2444b: 0x6c20f220,
-	0x2444e: 0x6ca0fa20,
-	0x24461: 0x6d2d6c20, 0x24463: 0x6d0a0020,
-	0x24466: 0x6cc79a20,
-	0x24468: 0x6c5db020,
-	0x2446c: 0x6cce6a20,
-	0x24470: 0x6cd46620,
-	0x2447e: 0x6d203e20, 0x2447f: 0x6d231c20,
-	// Block 0x912, offset 0x24480
-	0x24482: 0x6c75b420,
-	0x24489: 0x6d3e4220, 0x2448a: 0x6c925c20,
-	0x2449a: 0x6c1baa20, 0x2449b: 0x6c7d6620,
-	0x244a0: 0x6d3ce420,
-	0x244a6: 0x6c541420,
-	0x244a9: 0x6d064420,
-	0x244be: 0x6d3f9c20, 0x244bf: 0x6d1d4220,
-	// Block 0x913, offset 0x244c0
-	0x244c2: 0x6d39b020,
-	0x244c5: 0x6c8f3a20,
-	0x244d1: 0x6caa6820,
-	0x244d8: 0x6c0a3020, 0x244da: 0x6c1c5e20,
-	0x244dc: 0x6d412420, 0x244dd: 0x6c3cb820, 0x244de: 0x6c92aa20, 0x244df: 0x6cb49220,
-	0x244e5: 0x6d3bdc20, 0x244e7: 0x6d308020,
-	0x244e8: 0x6cd1ec20, 0x244e9: 0x6d227e20, 0x244ea: 0x6c92ac20, 0x244eb: 0x6c896820,
-	0x244ef: 0x6c74c020,
-	0x244f0: 0x6c8aa620, 0x244f1: 0x6c080820,
-	// Block 0x914, offset 0x24500
-	0x24503: 0x6d18ce20,
-	0x24504: 0x6c492820,
-	0x2450c: 0x6c02ae20, 0x2450f: 0x6c4b8220,
-	0x24510: 0x6c9fce20, 0x24512: 0x6d0dec20, 0x24513: 0x6c7fd220,
-	0x24516: 0x6c0f9220,
-	0x24519: 0x6d29a620, 0x2451a: 0x6d1ffe20,
-	0x24525: 0x6d194420, 0x24526: 0x6ca66020,
-	0x2452c: 0x6ca66620, 0x2452d: 0x6c4ce020, 0x2452e: 0x6c760a20,
-	0x24530: 0x6cd21820, 0x24532: 0x6cfc5c20,
-	0x24534: 0x6cb95e20, 0x24535: 0x6cc42020, 0x24536: 0x6c7cc420,
-	// Block 0x915, offset 0x24540
-	0x24540: 0x6ccf1620, 0x24542: 0x6c5dd620,
-	0x24544: 0x6ced8e20,
-	0x2454a: 0x6c3af220, 0x2454b: 0x6c3b0020,
-	0x2454d: 0x6d22c420,
-	0x24551: 0x6d339220, 0x24552: 0x6c48a420,
-	0x24554: 0x6c6a8620, 0x24555: 0x6c983e20, 0x24556: 0x6c50cc20,
-	0x24558: 0x6d1fa820,
-	0x2455f: 0x6c324220,
-	0x24560: 0x6cd7d220, 0x24562: 0x6c859420,
-	0x24565: 0x6c6a9420, 0x24566: 0x6ca98a20, 0x24567: 0x6c03ac20,
-	0x24568: 0x6d20de20,
-	0x2456e: 0x6d33b220,
-	0x24578: 0x6c50e020, 0x24579: 0x6c77e820,
-	0x2457e: 0x6c324a20, 0x2457f: 0x6c634820,
-	// Block 0x916, offset 0x24580
-	0x24581: 0x6c186020, 0x24583: 0x6c20f420,
-	0x24584: 0x6c50f820, 0x24585: 0x6d2d2620,
-	0x2458a: 0x6c9a8c20,
-	0x2458d: 0x6c50fa20, 0x2458e: 0x6d3f0420, 0x2458f: 0x6d3a0620,
-	0x24592: 0x6ceb0e20,
-	0x24598: 0x6d421820, 0x2459a: 0x6cc7a220, 0x2459b: 0x6c34ee20,
-	0x2459c: 0x6c67e020,
-	0x245a7: 0x6c526420,
-	0x245a9: 0x6c07e620, 0x245aa: 0x6ca10820,
-	0x245af: 0x6d40ba20,
-	0x245b2: 0x6c0caa20,
-	0x245b4: 0x6c7a9820, 0x245b5: 0x6c63c020,
-	0x245ba: 0x6d3d0420,
-	0x245bc: 0x6d04d620,
-	// Block 0x917, offset 0x245c0
-	0x245c3: 0x6c512820,
-	0x245c5: 0x6cbb7220,
-	0x245cd: 0x6c3a5c20, 0x245ce: 0x6cd10a20,
-	0x245d2: 0x6d3c9620, 0x245d3: 0x6c7b6a20,
-	0x245d4: 0x6d2b5420, 0x245d5: 0x6cfaae20, 0x245d7: 0x6c09d620,
-	0x245d8: 0x6d17f620, 0x245da: 0x6c171a20,
-	0x245ea: 0x6c999a20,
-	0x245f6: 0x6ced3020,
-	0x245fd: 0x6cf37620, 0x245fe: 0x6c7a5220, 0x245ff: 0x6cf2be20,
-	// Block 0x918, offset 0x24600
-	0x24600: 0x6d038a20, 0x24601: 0x6c781620, 0x24603: 0x6c6f8220,
-	0x24604: 0x6c329c20, 0x24605: 0x6c594820,
-	0x24608: 0x6d369620, 0x24609: 0x6c130620, 0x2460a: 0x6cc75a20, 0x2460b: 0x6c606e20,
-	0x2460d: 0x6d131a20,
-	0x2461b: 0x6c6dca20,
-	0x2461c: 0x6d106220,
-	0x24621: 0x6d400220,
-	0x24629: 0x6c11d620,
-	0x24631: 0x6cd81c20, 0x24632: 0x6c866220, 0x24633: 0x6c47c620,
-	0x24634: 0x6c172220, 0x24636: 0x6c3a6820, 0x24637: 0x6c8e8a20,
-	0x24639: 0x6c6b1e20, 0x2463a: 0x6d276020,
-	0x2463d: 0x6d36ba20,
-	// Block 0x919, offset 0x24640
-	0x24640: 0x6c1dd220, 0x24641: 0x6c0cbc20,
-	0x24652: 0x6c5f1a20,
-	0x2465c: 0x6c955220, 0x2465d: 0x6c64f820, 0x2465f: 0x6c206020,
-	0x24660: 0x6cd6de20, 0x24662: 0x6c93fe20, 0x24663: 0x6c75ea20,
-	0x24664: 0x6c69c820, 0x24666: 0x6ce42020, 0x24667: 0x6d2c0020,
-	0x2466a: 0x6d18a820,
-	0x2466c: 0x6c235a20, 0x2466d: 0x6ca57420, 0x2466e: 0x6c638220,
-	0x24674: 0x6c627c20,
-	0x2467d: 0x6c00ce20,
-	// Block 0x91a, offset 0x24680
-	0x24687: 0x6c65d820,
-	0x2468a: 0x6c07ca20,
-	0x2468c: 0x6c38c620, 0x2468d: 0x6cdc8a20, 0x2468e: 0x6d421e20,
-	0x24690: 0x6c42e420, 0x24691: 0x6c432420, 0x24692: 0x6c817e20,
-	0x24694: 0x6d3db620,
-	0x2469f: 0x6c56ca20,
-	0x246a2: 0x6ce9c420,
-	0x246a6: 0x6c0a7420, 0x246a7: 0x6c716420,
-	0x246ae: 0x6c575a20,
-	0x246b2: 0x6c1a4a20,
-	0x246b6: 0x6c7b4220, 0x246b7: 0x6c291420,
-	0x246b8: 0x6c444c20, 0x246b9: 0x6d011420, 0x246bb: 0x6c6b6220,
-	0x246bd: 0x6c117620,
-	// Block 0x91b, offset 0x246c0
-	0x246c6: 0x6d40ec20,
-	0x246c8: 0x6cb46820, 0x246cb: 0x6cd57c20,
-	0x246cc: 0x6c104820,
-	0x246d7: 0x6ca93220,
-	0x246d8: 0x6d0dfc20, 0x246d9: 0x6d396020, 0x246db: 0x6c9b8420,
-	0x246dd: 0x6c0b5e20, 0x246df: 0x6cfe6420,
-	0x246e4: 0x6c931c20, 0x246e5: 0x6c849020,
-	0x246e9: 0x6c62ca20, 0x246eb: 0x6c9f0a20,
-	0x246ec: 0x6c835620, 0x246ee: 0x6d375820, 0x246ef: 0x6d1ecc20,
-	0x246f0: 0x6c0b6020,
-	0x246f8: 0x6ca2bc20, 0x246f9: 0x6cc4da20,
-	// Block 0x91c, offset 0x24700
-	0x24702: 0x6ca7c620,
-	0x2470a: 0x6cc33a20, 0x2470b: 0x6d30c620,
-	0x24710: 0x6c836620,
-	0x24717: 0x6c294820,
-	0x24718: 0x6c752e20,
-	0x2471c: 0x6c8dc420, 0x2471e: 0x6c8de820, 0x2471f: 0x6d0d2620,
-	0x24723: 0x6d118620,
-	0x24724: 0x6d321220, 0x24725: 0x6cb4ce20, 0x24726: 0x6c008a20,
-	0x24728: 0x6caa3e20, 0x24729: 0x6c988220,
-	0x24731: 0x6c76c220, 0x24733: 0x6c6f5c20,
-	0x24734: 0x6d0d5820, 0x24735: 0x6c9e5420, 0x24737: 0x6d1a3e20,
-	0x24738: 0x6ceccc20, 0x24739: 0x6d11f420, 0x2473a: 0x6cebce20, 0x2473b: 0x6cafc820,
-	0x2473c: 0x6cdc2c20,
-	// Block 0x91d, offset 0x24740
-	0x24745: 0x6c799a20,
-	0x24748: 0x6c532c20, 0x2474a: 0x6ca03020, 0x2474b: 0x6c8cd220,
-	0x2474c: 0x6d173e20, 0x2474d: 0x6ccfd220, 0x2474f: 0x6d429220,
-	0x2475b: 0x6ce85020,
-	0x2475d: 0x6d1e7820, 0x2475f: 0x6cec2620,
-	0x24760: 0x6c4af420, 0x24761: 0x6c53bc20,
-	0x24765: 0x6cd36e20, 0x24767: 0x6d049220,
-	0x24769: 0x6c000620,
-	0x24771: 0x6c19ee20, 0x24773: 0x6c793c20,
-	0x24774: 0x6d176c20, 0x24775: 0x6d104820, 0x24776: 0x6ce67420, 0x24777: 0x6c311e20,
-	0x24778: 0x6c13e820, 0x24779: 0x6c8f3020,
-	0x2477d: 0x6cc06a20, 0x2477e: 0x6d084e20, 0x2477f: 0x6ccfee20,
-	// Block 0x91e, offset 0x24780
-	0x24780: 0x6c7b5420, 0x24781: 0x6ce7ca20, 0x24783: 0x6cba0e20,
-	0x24785: 0x6c1e4220,
-	0x2478a: 0x6cf1de20,
-	0x2478c: 0x6c906820, 0x2478d: 0x6c018820,
-	0x24794: 0x6c76d820, 0x24796: 0x6d11b020,
-	0x24798: 0x6c3e8420,
-	0x2479c: 0x6c084220, 0x2479d: 0x6c803020, 0x2479e: 0x6cb86c20, 0x2479f: 0x6c2d6620,
-	0x247a2: 0x6c69a620, 0x247a3: 0x6c4a7420,
-	0x247a5: 0x6d049820,
-	0x247a8: 0x6c78bc20,
-	0x247b6: 0x6cfcd620, 0x247b7: 0x6cf33a20,
-	// Block 0x91f, offset 0x247c0
-	0x247c2: 0x6c45f620,
-	0x247c6: 0x6cab8620, 0x247c7: 0x6c781820,
-	0x247cb: 0x6c7a5420,
-	0x247d1: 0x6ce4be20, 0x247d2: 0x6c46d420, 0x247d3: 0x6c96a220,
-	0x247d5: 0x6c8f3e20,
-	0x247d9: 0x6cf0c220, 0x247da: 0x6cf1ec20,
-	0x247e1: 0x6c462020, 0x247e3: 0x6ce8e820,
-	0x247e4: 0x6ca91620, 0x247e7: 0x6c9d7c20,
-	0x247eb: 0x6c80e020,
-	0x247ec: 0x6cba2220, 0x247ed: 0x6c977e20, 0x247ee: 0x6d308e20,
-	0x247f0: 0x6c57c620, 0x247f1: 0x6d1db620, 0x247f2: 0x6c6d5020,
-	0x247f4: 0x6c9aae20, 0x247f7: 0x6c3ef020,
-	0x247fb: 0x6cc1c220,
-	// Block 0x920, offset 0x24800
-	0x2480c: 0x6c8f4820, 0x2480d: 0x6c406220, 0x2480e: 0x6c28c620,
-	0x24810: 0x6c460020, 0x24812: 0x6c256e20,
-	0x24815: 0x6d040c20,
-	0x2481c: 0x6ce87c20, 0x2481d: 0x6cd48020,
-	0x2482a: 0x6cbf8420,
-	0x24833: 0x6cc6e020,
-	0x2483b: 0x6c874c20,
-	0x2483f: 0x6c5f9220,
-	// Block 0x921, offset 0x24840
-	0x24840: 0x6cebbc20,
-	0x2484c: 0x6ce7aa20,
-	0x24852: 0x6ce04c20,
-	0x24854: 0x6c8dea20, 0x24856: 0x6d169420, 0x24857: 0x6cc85220,
-	0x24859: 0x6cabe220,
-	0x2485d: 0x6c10e820,
-	0x24861: 0x6d269820, 0x24862: 0x6cc3b020, 0x24863: 0x6d3ade20,
-	0x24864: 0x6c4d6220,
-	0x24871: 0x6c381220, 0x24872: 0x6c4d6820,
-	// Block 0x922, offset 0x24880
-	0x24880: 0x6c101620, 0x24881: 0x6cb25620, 0x24882: 0x6c8b0c20,
-	0x2488a: 0x6c7cd420, 0x2488b: 0x6c3e9e20,
-	0x2488c: 0x6ce50620, 0x2488d: 0x6cf2fc20, 0x2488f: 0x6c70aa20,
-	0x24898: 0x6d318620, 0x2489a: 0x6c3ec620,
-	0x248a2: 0x6c8f9e20,
-	0x248a6: 0x6cf8ce20, 0x248a7: 0x6ce4c020,
-	0x248ab: 0x6c626620,
-	0x248af: 0x6d122c20,
-	0x248b1: 0x6c246620,
-	0x248b4: 0x6cad3020, 0x248b5: 0x6cbce820,
-	0x248bb: 0x6c8fb420,
-	0x248bc: 0x6c615820,
-	// Block 0x923, offset 0x248c0
-	0x248c2: 0x6ce79a20, 0x248c3: 0x6d158420,
-	0x248c5: 0x6c168420,
-	0x248cb: 0x6c45c220,
-	0x248ce: 0x6c309620,
-	0x248d6: 0x6cfda420,
-	0x248d9: 0x6ce6b620, 0x248db: 0x6d3b7020,
-	0x248dc: 0x6d15c820, 0x248dd: 0x6d170020, 0x248de: 0x6d3ef820, 0x248df: 0x6cb6e020,
-	0x248e2: 0x6c141a20,
-	0x248ec: 0x6c33e220, 0x248ef: 0x6c1cbc20,
-	0x248f0: 0x6c922a20, 0x248f1: 0x6c33ea20, 0x248f3: 0x6c399220,
-	0x248f4: 0x6cd35c20, 0x248f5: 0x6ce3e420, 0x248f6: 0x6c5eaa20, 0x248f7: 0x6cbfaa20,
-	0x248f8: 0x6cd70e20, 0x248f9: 0x6c18b020,
-	0x248fc: 0x6c5a6820, 0x248fd: 0x6cd41220,
-	// Block 0x924, offset 0x24900
-	0x24900: 0x6d279c20,
-	0x24906: 0x6c8f8420,
-	0x24908: 0x6c97b620, 0x24909: 0x6c464220,
-	0x2490d: 0x6cfaa020, 0x2490e: 0x6ca10a20,
-	0x24910: 0x6cd05e20, 0x24912: 0x6cb30820, 0x24913: 0x6d120420,
-	0x24914: 0x6cc0fa20, 0x24915: 0x6cc4c020,
-	0x24919: 0x6c724220,
-	0x2491c: 0x6d1ada20, 0x2491d: 0x6c041020, 0x2491e: 0x6ca81c20,
-	0x24920: 0x6c1d6c20,
-	0x2492a: 0x6cc67820, 0x2492b: 0x6c202020,
-	0x2492c: 0x6ca83420, 0x2492d: 0x6c861620, 0x2492e: 0x6c676220, 0x2492f: 0x6c77ac20,
-	0x24930: 0x6c12f020, 0x24931: 0x6c1d5220, 0x24932: 0x6d3b5620, 0x24933: 0x6d3f1420,
-	0x24934: 0x6d0fb820,
-	0x2493c: 0x6cf1e020,
-	// Block 0x925, offset 0x24940
-	0x2494b: 0x6c620420,
-	0x2494c: 0x6c620620,
-	0x24950: 0x6c93e820, 0x24951: 0x6cc07820, 0x24952: 0x6c33fc20, 0x24953: 0x6c05cc20,
-	0x24954: 0x6c14ce20, 0x24956: 0x6c0f1620,
-	0x24958: 0x6c1abe20, 0x24959: 0x6d30fa20, 0x2495a: 0x6c98b820,
-	0x2495c: 0x6c621c20, 0x2495d: 0x6c9eb620, 0x2495e: 0x6d262620,
-	0x24960: 0x6cf3d220, 0x24961: 0x6d366420, 0x24962: 0x6cb25c20,
-	0x24965: 0x6c1ccc20,
-	0x2496b: 0x6c9c6020,
-	0x2496c: 0x6c3a3c20, 0x2496d: 0x6c25c020, 0x2496e: 0x6c9b2420,
-	// Block 0x926, offset 0x24980
-	0x2498d: 0x6d1a8220, 0x2498e: 0x6c989a20, 0x2498f: 0x6c2d2420,
-	0x24990: 0x6c2dd620, 0x24992: 0x6cb9b420,
-	0x24995: 0x6c4f9820, 0x24996: 0x6d348620, 0x24997: 0x6c713e20,
-	0x24998: 0x6ca76820,
-	0x2499c: 0x6c9c6620, 0x2499d: 0x6c47b620,
-	0x249a3: 0x6d3b5820,
-	0x249a4: 0x6ca85220, 0x249a5: 0x6d3d8420, 0x249a7: 0x6d131c20,
-	0x249a8: 0x6c23dc20, 0x249aa: 0x6d05be20,
-	0x249ac: 0x6cf8b820, 0x249af: 0x6c0e8420,
-	0x249be: 0x6c11d820,
-	// Block 0x927, offset 0x249c0
-	0x249c3: 0x6d0dba20,
-	0x249d1: 0x6c6cb220,
-	0x249d4: 0x6c71ce20, 0x249d5: 0x6c298620, 0x249d6: 0x6c327620,
-	0x249d8: 0x6d128c20, 0x249d9: 0x6c6ea020, 0x249da: 0x6c78cc20, 0x249db: 0x6c962220,
-	0x249dc: 0x6cf00220, 0x249dd: 0x6ce87620, 0x249de: 0x6d1f6020, 0x249df: 0x6cac3020,
-	0x249e1: 0x6cb01020, 0x249e2: 0x6c2fb820,
-	0x249e4: 0x6cf00420, 0x249e5: 0x6c183620, 0x249e6: 0x6c66bc20,
-	0x249e8: 0x6cd81e20, 0x249e9: 0x6d3d8a20, 0x249ea: 0x6cda4020,
-	0x249ec: 0x6cc87420, 0x249ee: 0x6d218420,
-	0x249f3: 0x6c368e20,
-	0x249f6: 0x6c7a7e20,
-	0x249f8: 0x6d3b2220,
-	0x249fe: 0x6cf9e820,
-	// Block 0x928, offset 0x24a00
-	0x24a1b: 0x6c3ef220,
-	0x24a1c: 0x6ce23e20, 0x24a1d: 0x6cf6d020, 0x24a1e: 0x6c1d8020, 0x24a1f: 0x6c41ec20,
-	0x24a20: 0x6c936420, 0x24a21: 0x6c131620, 0x24a22: 0x6ccdb220, 0x24a23: 0x6c8e9c20,
-	0x24a25: 0x6cf8e020, 0x24a26: 0x6c5f3e20, 0x24a27: 0x6d161220,
-	0x24a28: 0x6ce01220, 0x24a2a: 0x6c55b620,
-	0x24a2d: 0x6c25c820, 0x24a2e: 0x6c447820,
-	0x24a30: 0x6cd3dc20, 0x24a31: 0x6ccac020, 0x24a32: 0x6c53d420, 0x24a33: 0x6cfd0e20,
-	0x24a36: 0x6cf9f020,
-	0x24a3b: 0x6ca2ae20,
-	0x24a3c: 0x6cdd9620, 0x24a3e: 0x6d2d4c20,
-	// Block 0x929, offset 0x24a40
-	0x24a40: 0x6c3d9e20, 0x24a41: 0x6ccb6220, 0x24a42: 0x6caa4620, 0x24a43: 0x6d18ac20,
-	0x24a67: 0x6cbdaa20,
-	0x24a68: 0x6cbedc20,
-	0x24a75: 0x6c5c5a20, 0x24a76: 0x6cd6e220, 0x24a77: 0x6c284a20,
-	0x24a78: 0x6cab5420, 0x24a79: 0x6ca17420, 0x24a7a: 0x6cb92420, 0x24a7b: 0x6c1c8020,
-	0x24a7c: 0x6cac0620, 0x24a7d: 0x6c739620,
-	// Block 0x92a, offset 0x24a80
-	0x24a80: 0x6c178020, 0x24a81: 0x6c8b3c20, 0x24a82: 0x6c0db420, 0x24a83: 0x6c7a0a20,
-	0x24a84: 0x6c28c820, 0x24a85: 0x6c1dee20, 0x24a86: 0x6ce70620, 0x24a87: 0x6c28ca20,
-	0x24a88: 0x6c97ce20, 0x24a89: 0x6c56ce20, 0x24a8a: 0x6c8a2820, 0x24a8b: 0x6cfbae20,
-	0x24a8d: 0x6c129820, 0x24a8e: 0x6c92ea20, 0x24a8f: 0x6c204220,
-	0x24a90: 0x6cf3f420, 0x24a91: 0x6c978820,
-	0x24a95: 0x6d3f2420, 0x24a97: 0x6c328020,
-	0x24a9a: 0x6cd6f220, 0x24a9b: 0x6c406420,
-	0x24a9c: 0x6c72a620, 0x24a9d: 0x6d395820, 0x24a9f: 0x6c2e4220,
-	0x24aa0: 0x6cee5a20, 0x24aa1: 0x6c206820, 0x24aa2: 0x6cb92620, 0x24aa3: 0x6cea1220,
-	0x24aa5: 0x6c886420, 0x24aa6: 0x6c0c2e20, 0x24aa7: 0x6c845420,
-	0x24aaa: 0x6c845620,
-	// Block 0x92b, offset 0x24ac0
-	0x24ac6: 0x6c0a9220, 0x24ac7: 0x6c407620,
-	0x24ac8: 0x6c257820, 0x24ac9: 0x6c318020, 0x24acb: 0x6d29a820,
-	0x24acc: 0x6c8fb620, 0x24acd: 0x6d0a4a20, 0x24ace: 0x6cbf7a20, 0x24acf: 0x6c5f6e20,
-	0x24ad0: 0x6cba2c20, 0x24ad2: 0x6c65fa20, 0x24ad3: 0x6cce9020,
-	0x24ad4: 0x6c351e20, 0x24ad5: 0x6cd51620, 0x24ad6: 0x6c10c820, 0x24ad7: 0x6d05f820,
-	0x24ad8: 0x6c304420, 0x24ada: 0x6cc49220,
-	0x24adc: 0x6d0fe620, 0x24add: 0x6cc8b420, 0x24ade: 0x6c8c7020, 0x24adf: 0x6c65fc20,
-	0x24ae0: 0x6c2ca820, 0x24ae1: 0x6c3ba020, 0x24ae2: 0x6c2d9020, 0x24ae3: 0x6d41dc20,
-	0x24ae5: 0x6ca94820,
-	0x24aea: 0x6cdba020, 0x24aeb: 0x6ce52420,
-	0x24aec: 0x6c01da20, 0x24aef: 0x6c131c20,
-	0x24af0: 0x6c2fc220, 0x24af1: 0x6cd02820, 0x24af2: 0x6c328420, 0x24af3: 0x6ce39420,
-	0x24af4: 0x6c695420, 0x24af5: 0x6d41de20, 0x24af6: 0x6d2f1020, 0x24af7: 0x6c65fe20,
-	0x24af8: 0x6c28da20, 0x24af9: 0x6c285420, 0x24afa: 0x6cd97420,
-	// Block 0x92c, offset 0x24b00
-	0x24b10: 0x6d2e2620, 0x24b11: 0x6ce69620, 0x24b12: 0x6d372a20,
-	0x24b15: 0x6d1f8220, 0x24b16: 0x6cac0e20,
-	0x24b21: 0x6c854220,
-	0x24b24: 0x6cb9d820, 0x24b26: 0x6cdca620, 0x24b27: 0x6c71dc20,
-	0x24b28: 0x6c010020, 0x24b29: 0x6c445020, 0x24b2a: 0x6c72b420, 0x24b2b: 0x6cea7220,
-	0x24b2c: 0x6c0aa620, 0x24b2d: 0x6cb87e20, 0x24b2e: 0x6c0fa820, 0x24b2f: 0x6c5c7c20,
-	0x24b31: 0x6c670020,
-	0x24b34: 0x6c466420, 0x24b35: 0x6cdba420,
-	0x24b3a: 0x6c227a20, 0x24b3b: 0x6cbb5c20,
-	0x24b3f: 0x6d0cf420,
-	// Block 0x92d, offset 0x24b40
-	0x24b4f: 0x6c2d9420,
-	0x24b52: 0x6c9f0420,
-	0x24b5c: 0x6cb3b620, 0x24b5d: 0x6c8e1620, 0x24b5e: 0x6c6b7420, 0x24b5f: 0x6d3b3e20,
-	0x24b60: 0x6c47ee20, 0x24b63: 0x6c32aa20,
-	0x24b64: 0x6d2fee20, 0x24b66: 0x6ccebe20, 0x24b67: 0x6cbdf020,
-	0x24b68: 0x6c9ca420, 0x24b6a: 0x6cb2e220, 0x24b6b: 0x6c23c020,
-	0x24b6c: 0x6c1d8820, 0x24b6f: 0x6cc9ae20,
-	0x24b76: 0x6ce52620,
-	// Block 0x92e, offset 0x24b80
-	0x24b85: 0x6c8edc20, 0x24b86: 0x6c936c20, 0x24b87: 0x6c91fc20,
-	0x24b88: 0x6d407620,
-	0x24b8c: 0x6c941e20, 0x24b8d: 0x6c58e620, 0x24b8f: 0x6ce5b420,
-	0x24b90: 0x6ce9d820, 0x24b91: 0x6cbb5220, 0x24b92: 0x6c8c8020, 0x24b93: 0x6c06c220,
-	0x24b94: 0x6cad7620, 0x24b95: 0x6d2dc420, 0x24b97: 0x6c874e20,
-	0x24b9b: 0x6ce3b220,
-	0x24b9c: 0x6c560020,
-	0x24ba2: 0x6c8b6c20,
-	0x24bb5: 0x6c5b8020, 0x24bb6: 0x6cc16420, 0x24bb7: 0x6d086820,
-	0x24bb9: 0x6c6ec620, 0x24bba: 0x6c2f1220, 0x24bbb: 0x6cdc0820,
-	0x24bbd: 0x6cf11e20, 0x24bbf: 0x6d0d1420,
-	// Block 0x92f, offset 0x24bc0
-	0x24bc0: 0x6d0c4a20, 0x24bc1: 0x6c050e20, 0x24bc3: 0x6c67ce20,
-	0x24bc4: 0x6ca66820, 0x24bc5: 0x6c876e20, 0x24bc6: 0x6c560620, 0x24bc7: 0x6cb80420,
-	0x24bc8: 0x6d37e220,
-	0x24bd1: 0x6c0acc20,
-	0x24bd4: 0x6d220020, 0x24bd5: 0x6c2f1420, 0x24bd6: 0x6c8c8a20, 0x24bd7: 0x6c878c20,
-	0x24bd8: 0x6d3de620, 0x24bd9: 0x6c62f020, 0x24bda: 0x6c70e620,
-	0x24bdc: 0x6c3c8820, 0x24bde: 0x6d248820,
-	0x24be8: 0x6c8b7e20, 0x24be9: 0x6d28e020, 0x24bea: 0x6cb9e820, 0x24beb: 0x6c6a4620,
-	0x24bec: 0x6c494220, 0x24bee: 0x6d3dee20,
-	0x24bf1: 0x6c40a220,
-	0x24bf9: 0x6ccba220,
-	0x24bfc: 0x6c248a20,
-	// Block 0x930, offset 0x24c00
-	0x24c03: 0x6c5b8220,
-	0x24c08: 0x6c29a620, 0x24c09: 0x6c901c20, 0x24c0a: 0x6d198420,
-	0x24c17: 0x6cc96020,
-	0x24c18: 0x6d274220, 0x24c1a: 0x6c2bc620,
-	0x24c21: 0x6c420820, 0x24c22: 0x6d295c20, 0x24c23: 0x6ccdf420,
-	0x24c24: 0x6d24b020, 0x24c25: 0x6c0fde20, 0x24c27: 0x6c2f9820,
-	0x24c28: 0x6c388c20, 0x24c2a: 0x6d22d820,
-	0x24c2c: 0x6ccfc420,
-	0x24c32: 0x6c457020,
-	0x24c34: 0x6c9ed020, 0x24c35: 0x6cea4a20,
-	0x24c38: 0x6c8af620,
-	// Block 0x931, offset 0x24c40
-	0x24c41: 0x6d2bd420, 0x24c42: 0x6cadbc20,
-	0x24c44: 0x6c9c4a20, 0x24c46: 0x6c9ffa20, 0x24c47: 0x6c394a20,
-	0x24c49: 0x6ca33620, 0x24c4a: 0x6cd8b820, 0x24c4b: 0x6d14ea20,
-	0x24c4c: 0x6c635020, 0x24c4d: 0x6d3ae620,
-	0x24c53: 0x6c047e20,
-	0x24c54: 0x6d231e20, 0x24c56: 0x6cb35820,
-	0x24c5a: 0x6c582820, 0x24c5b: 0x6c11f820,
-	0x24c5c: 0x6c684a20,
-	0x24c60: 0x6cdfe420,
-	0x24c69: 0x6d363a20, 0x24c6b: 0x6c9cf420,
-	0x24c6c: 0x6c77ae20,
-	0x24c71: 0x6d109a20, 0x24c72: 0x6c335020, 0x24c73: 0x6cc36020,
-	0x24c74: 0x6c10a420, 0x24c75: 0x6c1f5420, 0x24c76: 0x6cbc2820, 0x24c77: 0x6c8e6c20,
-	0x24c78: 0x6c0f1820, 0x24c7a: 0x6c772e20, 0x24c7b: 0x6c3bde20,
-	// Block 0x932, offset 0x24c80
-	0x24c85: 0x6c2a2020,
-	0x24c89: 0x6c312820, 0x24c8a: 0x6c440820,
-	0x24c99: 0x6c8d3a20, 0x24c9a: 0x6cf79420,
-	0x24c9c: 0x6ca6ba20, 0x24c9d: 0x6d389620, 0x24c9e: 0x6d389820,
-	0x24ca3: 0x6c1d7820,
-	0x24cb4: 0x6ca6ee20, 0x24cb5: 0x6c5f0c20, 0x24cb7: 0x6cc12420,
-	// Block 0x933, offset 0x24cc0
-	0x24cc4: 0x6c763e20, 0x24cc7: 0x6cfcfc20,
-	0x24cc9: 0x6c516820, 0x24ccb: 0x6c8bd220,
-	0x24ccd: 0x6d3e7e20,
-	0x24cd1: 0x6cab8c20, 0x24cd2: 0x6c245620,
-	0x24cd7: 0x6c140420,
-	0x24cdd: 0x6d383820, 0x24cde: 0x6c102420,
-	0x24ce4: 0x6c1d8220, 0x24ce5: 0x6cf8e220, 0x24ce6: 0x6cc99220, 0x24ce7: 0x6cfb9620,
-	0x24ce8: 0x6ccb6420, 0x24ce9: 0x6c9e6020, 0x24ceb: 0x6c38c020,
-	0x24cec: 0x6d341620, 0x24cee: 0x6c256420,
-	0x24cf4: 0x6cfa4620,
-	0x24cfe: 0x6cab1420, 0x24cff: 0x6c845820,
-	// Block 0x934, offset 0x24d00
-	0x24d00: 0x6d40de20, 0x24d02: 0x6c24f220, 0x24d03: 0x6d2b1220,
-	0x24d05: 0x6c845a20,
-	0x24d18: 0x6cb67620, 0x24d1a: 0x6d3d1020, 0x24d1b: 0x6c257a20,
-	0x24d1c: 0x6cb41e20, 0x24d1e: 0x6c38d620, 0x24d1f: 0x6ce02620,
-	0x24d29: 0x6d3eac20, 0x24d2a: 0x6d412a20, 0x24d2b: 0x6d38bc20,
-	0x24d2c: 0x6cc6d020, 0x24d2d: 0x6c8bee20, 0x24d2e: 0x6ce02820,
-	0x24d36: 0x6cd3fe20,
-	0x24d3a: 0x6c251420, 0x24d3b: 0x6d3eb820,
-	0x24d3c: 0x6c3db620,
-	// Block 0x935, offset 0x24d40
-	0x24d41: 0x6d001c20,
-	0x24d48: 0x6c3c7420,
-	0x24d4f: 0x6cfd4220,
-	0x24d50: 0x6c670c20, 0x24d52: 0x6c3c0420,
-	0x24d57: 0x6c875020,
-	0x24d58: 0x6ca19820,
-	0x24d5f: 0x6d1ed020,
-	0x24d65: 0x6c5e5020, 0x24d67: 0x6cc16620,
-	0x24d6c: 0x6ca78220,
-	0x24d70: 0x6c9cbe20, 0x24d73: 0x6cb80a20,
-	0x24d76: 0x6c51ae20,
-	0x24d78: 0x6c893a20,
-	0x24d7f: 0x6d42b420,
-	// Block 0x936, offset 0x24d80
-	0x24d82: 0x6c8df220,
-	0x24d85: 0x6d39f820, 0x24d87: 0x6ca78c20,
-	0x24d8a: 0x6c612420, 0x24d8b: 0x6cc62620,
-	0x24d8c: 0x6c6a9620, 0x24d8d: 0x6c41d020,
-	0x24d90: 0x6d170220, 0x24d93: 0x6d38ce20,
-	0x24d95: 0x6cf4ca20,
-	0x24d9a: 0x6c44fe20, 0x24d9b: 0x6c243220,
-	0x24d9d: 0x6c9ed220,
-	0x24da1: 0x6d0a0220, 0x24da3: 0x6d33cc20,
-	0x24da4: 0x6cff7620, 0x24da7: 0x6c3e3a20,
-	0x24da8: 0x6c553620,
-	0x24dac: 0x6c2b1e20, 0x24dae: 0x6c741820, 0x24daf: 0x6c2e1220,
-	0x24db9: 0x6cd44420,
-	0x24dbc: 0x6cee0a20,
-	// Block 0x937, offset 0x24dc0
-	0x24dc3: 0x6ca33820,
-	0x24dc4: 0x6c2b2620, 0x24dc5: 0x6cd37020, 0x24dc6: 0x6c224020, 0x24dc7: 0x6cd4d220,
-	0x24dc9: 0x6cec2c20, 0x24dca: 0x6c181820, 0x24dcb: 0x6c389820,
-	0x24dcd: 0x6c470820, 0x24dce: 0x6d24e620,
-	0x24dd1: 0x6c491420,
-	0x24dda: 0x6cbcbc20,
-	0x24ddc: 0x6d2de820, 0x24ddd: 0x6c276020, 0x24dde: 0x6cceee20,
-	0x24de6: 0x6d388820, 0x24de7: 0x6cfde420,
-	0x24de8: 0x6ca00020, 0x24de9: 0x6d3f5020, 0x24dea: 0x6c599620, 0x24deb: 0x6c9c5420,
-	0x24ded: 0x6cf88c20, 0x24dee: 0x6d363c20, 0x24def: 0x6cac2820,
-	0x24df0: 0x6c349420,
-	0x24df4: 0x6c22c820, 0x24df5: 0x6ca1d420, 0x24df7: 0x6c17be20,
-	0x24df9: 0x6d17b620, 0x24dfa: 0x6c464820,
-	// Block 0x938, offset 0x24e00
-	0x24e07: 0x6c6dba20,
-	0x24e13: 0x6d2b8020,
-	0x24e14: 0x6cb25e20, 0x24e15: 0x6d130420, 0x24e16: 0x6c6af420,
-	0x24e18: 0x6caf7620, 0x24e1b: 0x6ccbfe20,
-	0x24e1c: 0x6d3c4420, 0x24e1d: 0x6c6f1e20,
-	0x24e20: 0x6c8e6e20, 0x24e21: 0x6d227020, 0x24e23: 0x6c70ac20,
-	0x24e28: 0x6caafe20,
-	0x24e38: 0x6c999c20,
-	// Block 0x939, offset 0x24e40
-	0x24e44: 0x6c187420, 0x24e46: 0x6d3bd420, 0x24e47: 0x6ca76a20,
-	0x24e48: 0x6c79aa20, 0x24e49: 0x6c6a2e20, 0x24e4a: 0x6c57b020,
-	0x24e4d: 0x6d02e220, 0x24e4e: 0x6d424a20, 0x24e4f: 0x6d0e9620,
-	0x24e50: 0x6c748220,
-	0x24e55: 0x6c54ea20, 0x24e56: 0x6d393a20, 0x24e57: 0x6ccf6a20,
-	0x24e59: 0x6d0dbc20, 0x24e5b: 0x6d01de20,
-	0x24e5c: 0x6c2ed420, 0x24e5f: 0x6c187a20,
-	0x24e72: 0x6c65c620, 0x24e73: 0x6c624c20,
-	0x24e76: 0x6c21ce20, 0x24e77: 0x6c537420,
-	// Block 0x93a, offset 0x24e80
-	0x24e80: 0x6c26bc20,
-	0x24e84: 0x6c764020, 0x24e85: 0x6d039820, 0x24e86: 0x6c5c1c20, 0x24e87: 0x6c65d020,
-	0x24e88: 0x6d394820, 0x24e89: 0x6d2c8c20, 0x24e8a: 0x6c403820, 0x24e8b: 0x6c1c6020,
-	0x24e8c: 0x6c082e20, 0x24e8d: 0x6cab0a20,
-	0x24e91: 0x6c626820, 0x24e92: 0x6cb9c020,
-	0x24e94: 0x6ced9620, 0x24e95: 0x6cab6a20, 0x24e96: 0x6c0a3220, 0x24e97: 0x6cd79c20,
-	0x24ea0: 0x6c6dd020, 0x24ea1: 0x6d132e20,
-	// Block 0x93b, offset 0x24ec0
-	0x24ec4: 0x6c3a7220, 0x24ec7: 0x6c844420,
-	0x24eca: 0x6c868020, 0x24ecb: 0x6cb01e20,
-	0x24ed2: 0x6cdc7a20, 0x24ed3: 0x6c8e9e20,
-	0x24ed4: 0x6c517220, 0x24ed5: 0x6c5d1420, 0x24ed6: 0x6ce07a20, 0x24ed7: 0x6cd79e20,
-	0x24ed8: 0x6d36ec20, 0x24ed9: 0x6c0f5c20,
-	0x24edd: 0x6cf8e420,
-	0x24ee1: 0x6cb33620, 0x24ee2: 0x6cc45c20,
-	0x24ee4: 0x6ca2b020,
-	0x24efd: 0x6d1db820,
-	// Block 0x93c, offset 0x24f00
-	0x24f02: 0x6c279620,
-	0x24f0a: 0x6cb72220, 0x24f0b: 0x6c2e0220,
-	0x24f0c: 0x6ca87c20, 0x24f0d: 0x6cd6e420, 0x24f0f: 0x6cce8c20,
-	0x24f10: 0x6c7dc420, 0x24f11: 0x6cdc9020, 0x24f13: 0x6c30ca20,
-	0x24f14: 0x6c2ef220,
-	0x24f1c: 0x6c45ba20,
-	0x24f2f: 0x6d3bb020,
-	0x24f30: 0x6c4c8c20,
-	0x24f3c: 0x6d05fa20, 0x24f3d: 0x6cc1e820,
-	// Block 0x93d, offset 0x24f40
-	0x24f40: 0x6d0a4c20, 0x24f43: 0x6c689a20,
-	0x24f44: 0x6d30aa20, 0x24f46: 0x6c2d9220, 0x24f47: 0x6cca7620,
-	0x24f48: 0x6c080c20, 0x24f4a: 0x6cdda620, 0x24f4b: 0x6cba2e20,
-	0x24f4f: 0x6d05fc20,
-	0x24f51: 0x6d0a4e20,
-	0x24f54: 0x6ca17a20,
-	0x24f75: 0x6cdca820, 0x24f76: 0x6c7ea820, 0x24f77: 0x6d3a8a20,
-	0x24f78: 0x6d396420, 0x24f7a: 0x6c870820,
-	0x24f7c: 0x6c280e20, 0x24f7d: 0x6c717820, 0x24f7f: 0x6d286e20,
-	// Block 0x93e, offset 0x24f80
-	0x24f80: 0x6c15fc20, 0x24f81: 0x6c956020,
-	0x24f84: 0x6ccb8220, 0x24f86: 0x6c888620,
-	0x24f88: 0x6d414e20, 0x24f8b: 0x6c7f7020,
-	0x24f8c: 0x6cd6ec20, 0x24f8d: 0x6cbcfe20,
-	0x24f98: 0x6c30ce20,
-	0x24f9e: 0x6cf54a20, 0x24f9f: 0x6c9b9020,
-	0x24fa1: 0x6c62ce20,
-	0x24fa4: 0x6c1aee20, 0x24fa6: 0x6ca65c20,
-	0x24fb8: 0x6d116e20, 0x24fbb: 0x6c7ec020,
-	0x24fbe: 0x6c942020,
-	// Block 0x93f, offset 0x24fc0
-	0x24fc0: 0x6cdcbe20, 0x24fc1: 0x6c3dbe20,
-	0x24fc4: 0x6c830420, 0x24fc5: 0x6cf05820,
-	0x24fce: 0x6c237820,
-	0x24fd4: 0x6c877020, 0x24fd6: 0x6cb22820,
-	0x24fd8: 0x6c759020, 0x24fd9: 0x6c71e420, 0x24fdb: 0x6c7ecc20,
-	0x24fe7: 0x6c62f220,
-	0x24fea: 0x6c9f1a20,
-	0x24fec: 0x6d125020, 0x24fed: 0x6c0b2620,
-	0x24ff1: 0x6c23d420, 0x24ff2: 0x6cd85e20,
-	0x24ff5: 0x6cd86020,
-	0x24ff8: 0x6c51b020,
-	// Block 0x940, offset 0x25000
-	0x25003: 0x6ca48820,
-	0x25005: 0x6c2f2620,
-	0x25008: 0x6c180220, 0x25009: 0x6d282220, 0x2500b: 0x6d052220,
-	0x2500c: 0x6cd4c220, 0x2500e: 0x6c15b020, 0x2500f: 0x6c9f4c20,
-	0x25010: 0x6c87fe20, 0x25011: 0x6d19e620, 0x25012: 0x6d037620, 0x25013: 0x6cee9020,
-	0x25014: 0x6c479020, 0x25015: 0x6ce7f020, 0x25016: 0x6cddf620, 0x25017: 0x6c3a5e20,
-	0x25018: 0x6c265420, 0x25019: 0x6ca84620, 0x2501a: 0x6c244820, 0x2501b: 0x6d426e20,
-	0x2501c: 0x6c6b2020, 0x2501d: 0x6d08b020, 0x2501e: 0x6c0f5e20, 0x2501f: 0x6c6c5e20,
-	0x25020: 0x6d1b1220, 0x25021: 0x6d05f020, 0x25023: 0x6d20e420,
-	0x25024: 0x6d048c20, 0x25026: 0x6cb76c20, 0x25027: 0x6c069620,
-	0x25028: 0x6d03dc20, 0x25029: 0x6c45ec20,
-	0x2502c: 0x6d418c20,
-	0x25030: 0x6c6a1a20, 0x25032: 0x6c763020,
-	0x25035: 0x6d03f020, 0x25036: 0x6c06b220, 0x25037: 0x6cd4ee20,
-	0x25038: 0x6d23a020, 0x2503a: 0x6d38ee20, 0x2503b: 0x6d2e0420,
-	// Block 0x941, offset 0x25040
-	0x25042: 0x6d37c620,
-	0x25046: 0x6c140620,
-	0x25048: 0x6c20e020, 0x25049: 0x6c8f4220,
-	0x2504e: 0x6cdbdc20,
-	0x25050: 0x6d3a8620,
-	0x25059: 0x6c0bd220,
-	0x2505d: 0x6d035420, 0x2505f: 0x6d0bce20,
-	0x25062: 0x6c8daa20,
-	0x25067: 0x6d0bd220,
-	0x2506c: 0x6ce63020,
-	0x25079: 0x6c2b5a20,
-	// Block 0x942, offset 0x25080
-	0x25081: 0x6cafca20, 0x25082: 0x6c567620, 0x25083: 0x6c132a20,
-	0x2508a: 0x6ce45e20, 0x2508b: 0x6ca20220,
-	0x2508c: 0x6c731620, 0x2508e: 0x6ca20420,
-	0x25090: 0x6c723020, 0x25091: 0x6c8f0020, 0x25093: 0x6c8e0c20,
-	0x25097: 0x6c8f0220,
-	0x25098: 0x6c568820,
-	0x250a6: 0x6c3e3e20, 0x250a7: 0x6c553820,
-	0x250aa: 0x6c361820, 0x250ab: 0x6c458420,
-	0x250ac: 0x6c470a20,
-	0x250b1: 0x6c48b420,
-	0x250b9: 0x6c94a420, 0x250bb: 0x6c389a20,
-	0x250bc: 0x6c93e220, 0x250bd: 0x6c9b1820, 0x250be: 0x6c3e8a20, 0x250bf: 0x6c8e5e20,
-	// Block 0x943, offset 0x250c0
-	0x250c5: 0x6d00c220, 0x250c6: 0x6c471e20,
-	0x250c8: 0x6cfcda20, 0x250c9: 0x6c0f1a20, 0x250cb: 0x6c622220,
-	0x250d3: 0x6cc2a220,
-	0x250d4: 0x6c927220,
-	0x250de: 0x6cd79420,
-	0x250e1: 0x6ca20820, 0x250e2: 0x6d23a420, 0x250e3: 0x6c4eea20,
-	0x250e9: 0x6d26d020, 0x250ea: 0x6c289e20,
-	0x250ef: 0x6d218620,
-	0x250f0: 0x6c64de20, 0x250f3: 0x6c429020,
-	0x250ff: 0x6c129420,
-	// Block 0x944, offset 0x25100
-	0x25100: 0x6cd0c820, 0x25101: 0x6c8f1c20,
-	0x25106: 0x6c687e20,
-	0x25109: 0x6cdb2020, 0x2510a: 0x6cdb2220, 0x2510b: 0x6d383e20,
-	0x25112: 0x6c8aaa20,
-	0x25114: 0x6d085c20, 0x25115: 0x6c92ee20, 0x25117: 0x6c629e20,
-	0x2511a: 0x6d0cdc20,
-	0x2511f: 0x6c930820,
-	0x25121: 0x6c9fd220, 0x25122: 0x6ce39620,
-	0x25126: 0x6c595c20,
-	0x25129: 0x6d18ec20, 0x2512a: 0x6ce08220,
-	0x2512c: 0x6cf48820,
-	0x25130: 0x6c5f8020,
-	0x25137: 0x6c31e620,
-	0x25138: 0x6c7d9420, 0x2513a: 0x6c758e20,
-	0x2513f: 0x6cd21a20,
-	// Block 0x945, offset 0x25140
-	0x25140: 0x6ca44e20, 0x25141: 0x6cb3bc20,
-	0x25144: 0x6cd52020, 0x25145: 0x6cc37e20,
-	0x2514c: 0x6cc5bc20, 0x2514f: 0x6c3b6220,
-	0x25152: 0x6cde3a20, 0x25153: 0x6cea4820,
-	0x25155: 0x6d0f9c20,
-	0x25166: 0x6c342c20, 0x25167: 0x6c21fc20,
-	0x25169: 0x6c478020, 0x2516a: 0x6c3b6e20,
-	0x2516d: 0x6cc74620,
-	0x25171: 0x6c42c020, 0x25172: 0x6cfdbe20,
-	0x25174: 0x6cfdc020, 0x25175: 0x6c545420, 0x25177: 0x6ce1c420,
-	0x25178: 0x6ccd8420, 0x25179: 0x6d0fba20, 0x2517a: 0x6d3f5220,
-	0x2517c: 0x6d256a20,
-	// Block 0x946, offset 0x25180
-	0x25184: 0x6cda7420, 0x25187: 0x6c203820,
-	0x25188: 0x6cfdc820, 0x2518a: 0x6c048a20,
-	0x2518c: 0x6c97c020, 0x2518e: 0x6c3f6e20, 0x2518f: 0x6c7e6420,
-	0x25190: 0x6c851e20, 0x25192: 0x6c6af620, 0x25193: 0x6d1ea820,
-	0x25198: 0x6d23a620, 0x2519a: 0x6c1c4820,
-	0x2519c: 0x6c203a20, 0x2519d: 0x6d182e20, 0x2519e: 0x6ccd0020,
-	0x251a2: 0x6c609220, 0x251a3: 0x6d0c2820,
-	0x251a6: 0x6cf51820, 0x251a7: 0x6c215c20,
-	0x251a8: 0x6c987420,
-	0x251ad: 0x6c3ede20, 0x251ae: 0x6c637c20, 0x251af: 0x6c46d620,
-	0x251b0: 0x6c474420, 0x251b1: 0x6c63e420,
-	0x251b5: 0x6cfb9820, 0x251b7: 0x6c6d6020,
-	0x251b8: 0x6d3f6420, 0x251b9: 0x6c90bc20,
-	0x251bc: 0x6c46da20,
-	// Block 0x947, offset 0x251c0
-	0x251c0: 0x6cc57c20, 0x251c2: 0x6ccd1420,
-	0x251c5: 0x6c74da20, 0x251c6: 0x6ce79c20, 0x251c7: 0x6d1ffc20,
-	0x251d4: 0x6c651a20, 0x251d5: 0x6c31dc20, 0x251d7: 0x6c55f020,
-	0x251db: 0x6ccace20,
-	0x251dc: 0x6d246220,
-	0x251e2: 0x6c974e20,
-	0x251e4: 0x6d342620, 0x251e5: 0x6d0c4420, 0x251e6: 0x6c42f020,
-	0x251e8: 0x6c582020,
-	0x251ee: 0x6cc34420,
-	0x251f1: 0x6d103e20, 0x251f3: 0x6d418820,
-	0x251f7: 0x6cfe8e20,
-	0x251f8: 0x6d170620, 0x251f9: 0x6d0d5a20, 0x251fa: 0x6c531e20, 0x251fb: 0x6d20e620,
-	0x251ff: 0x6c1c0020,
-	// Block 0x948, offset 0x25200
-	0x25201: 0x6c1b1020,
-	0x25204: 0x6c4f6a20, 0x25205: 0x6ccb1e20, 0x25206: 0x6cabbe20, 0x25207: 0x6cde4020,
-	0x25208: 0x6c3b2620, 0x25209: 0x6c1aa020,
-	0x2520c: 0x6c533220, 0x2520d: 0x6d095220,
-	0x25216: 0x6d351e20,
-	0x2521b: 0x6cc19020,
-	0x25220: 0x6cf5fe20, 0x25221: 0x6c3e6220, 0x25223: 0x6cd4e020,
-	0x25224: 0x6c4d6a20, 0x25226: 0x6cb38c20,
-	0x25228: 0x6c229a20,
-	0x25230: 0x6c149a20, 0x25233: 0x6c52ae20,
-	0x25238: 0x6cad7a20, 0x25239: 0x6ccff820, 0x2523a: 0x6cfede20,
-	0x2523d: 0x6d07ac20, 0x2523e: 0x6c229e20, 0x2523f: 0x6ce68420,
-	// Block 0x949, offset 0x25240
-	0x25240: 0x6cb39620,
-	0x25247: 0x6cde7e20,
-	0x25248: 0x6c13a820, 0x2524b: 0x6d40ce20,
-	0x2524c: 0x6c5de820, 0x2524d: 0x6d071820, 0x2524e: 0x6d0e9820, 0x2524f: 0x6c149e20,
-	0x25251: 0x6ceb3420,
-	0x25258: 0x6cfb8420, 0x25259: 0x6d07c620, 0x2525a: 0x6c542a20, 0x2525b: 0x6c58de20,
-	0x2525c: 0x6c442620, 0x2525d: 0x6c1d3c20, 0x2525e: 0x6c0a3620, 0x2525f: 0x6c52bc20,
-	0x25260: 0x6c52be20, 0x25261: 0x6c1b4a20, 0x25263: 0x6c140820,
-	0x2526f: 0x6d2c8e20,
-	0x25271: 0x6d2d1e20, 0x25272: 0x6cdea220,
-	0x25275: 0x6cb3a220, 0x25276: 0x6cdea420,
-	0x25278: 0x6d1f6e20, 0x25279: 0x6c3ef420, 0x2527a: 0x6c220e20, 0x2527b: 0x6c26be20,
-	0x2527c: 0x6cde1a20, 0x2527e: 0x6c8ea020,
-	// Block 0x94a, offset 0x25280
-	0x25281: 0x6c221020, 0x25283: 0x6c52d420,
-	0x25285: 0x6c4f1a20, 0x25286: 0x6c7e5020,
-	0x25288: 0x6cd20420,
-	0x2528d: 0x6ce79e20, 0x2528e: 0x6c5c7020, 0x2528f: 0x6c518620,
-	0x25290: 0x6cb1d820, 0x25291: 0x6d243a20,
-	0x2529c: 0x6cfaf020, 0x2529d: 0x6c4e6c20, 0x2529f: 0x6cb3ac20,
-	0x252a6: 0x6c7ec220, 0x252a7: 0x6c5e5220,
-	0x252b0: 0x6cdf8420,
-	0x252b4: 0x6c819e20, 0x252b6: 0x6cd5b420,
-	0x252ba: 0x6c2a0a20, 0x252bb: 0x6c2d1020,
-	// Block 0x94b, offset 0x252c0
-	0x252c8: 0x6d04a820, 0x252cb: 0x6cee6020,
-	0x252cd: 0x6c17f820, 0x252ce: 0x6ca3ae20,
-	0x252d0: 0x6c73d420, 0x252d3: 0x6c375220,
-	0x252d4: 0x6c375a20, 0x252d5: 0x6caa6c20, 0x252d6: 0x6caa8820,
-	0x252dd: 0x6d3bae20,
-	0x252e2: 0x6cab2220,
-	0x252e4: 0x6c8ac220, 0x252e5: 0x6c82b420, 0x252e7: 0x6c032a20,
-	0x252ec: 0x6c196820, 0x252ef: 0x6c4a6a20,
-	0x252f0: 0x6cc2f820, 0x252f1: 0x6c448820, 0x252f3: 0x6c45ee20,
-	0x252f4: 0x6ccee020,
-	0x252f9: 0x6c7f2020, 0x252fa: 0x6d32e820, 0x252fb: 0x6d183020,
-	0x252fc: 0x6c4bda20, 0x252fd: 0x6ceea620, 0x252fe: 0x6c951e20,
-	// Block 0x94c, offset 0x25300
-	0x25302: 0x6cd28620, 0x25303: 0x6d1be820,
-	0x25304: 0x6cd14620, 0x25305: 0x6ce8ea20, 0x25306: 0x6c0a3820,
-	0x25308: 0x6d2aee20, 0x25309: 0x6d383a20, 0x2530b: 0x6cc72620,
-	0x2530c: 0x6cb64e20, 0x2530d: 0x6c405620, 0x2530e: 0x6c131820,
-	0x25313: 0x6c845c20,
-	0x25314: 0x6c978c20, 0x25316: 0x6c886620, 0x25317: 0x6c0c3020,
-	0x2531b: 0x6c207e20,
-	0x2531c: 0x6d18ee20,
-	0x25320: 0x6cac3620,
-	0x25325: 0x6d191420, 0x25326: 0x6c7b4820,
-	0x25329: 0x6c0c5220, 0x2532b: 0x6c1c9e20,
-	0x2532c: 0x6cc22020, 0x2532d: 0x6ca1ae20, 0x2532e: 0x6d301620, 0x2532f: 0x6ccc3c20,
-	0x25330: 0x6ccc3e20,
-	0x25337: 0x6d109620,
-	0x25338: 0x6c457420, 0x25339: 0x6ca3b620,
-	0x2533c: 0x6d018420, 0x2533f: 0x6ce53220,
-	// Block 0x94d, offset 0x25340
-	0x25346: 0x6d127820,
-	0x25349: 0x6ccbe220,
-	0x2534f: 0x6ccaec20,
-	0x25352: 0x6c2cc620, 0x25353: 0x6d06c220,
-	0x25359: 0x6cc19220,
-	0x25360: 0x6c52b020, 0x25361: 0x6cd16620, 0x25362: 0x6ce6ec20,
-	0x25370: 0x6c352e20,
-	0x25375: 0x6c89ea20, 0x25377: 0x6c53c220,
-	0x25378: 0x6c852020, 0x2537a: 0x6cfdee20,
-	0x2537d: 0x6cd0b620,
-	// Block 0x94e, offset 0x25380
-	0x25380: 0x6c3d8220,
-	0x25388: 0x6d0dc020, 0x25389: 0x6cee3220, 0x2538a: 0x6cb51620, 0x2538b: 0x6c34a620,
-	0x2538d: 0x6c57b220, 0x2538e: 0x6cb90c20,
-	0x25390: 0x6d01e020,
-	0x2539d: 0x6c22d620, 0x2539e: 0x6cd11020,
-	0x253a2: 0x6c37dc20,
-	0x253a4: 0x6d039a20, 0x253a6: 0x6cea0e20, 0x253a7: 0x6d0ea220,
-	0x253a9: 0x6c8b2820,
-	0x253ac: 0x6c9c6e20,
-	0x253b8: 0x6d402c20, 0x253ba: 0x6d3e8020,
-	0x253bc: 0x6c55ba20, 0x253bd: 0x6d1c9e20, 0x253be: 0x6c885620, 0x253bf: 0x6c266a20,
-	// Block 0x94f, offset 0x253c0
-	0x253c0: 0x6ce4c420, 0x253c1: 0x6ce53e20,
-	0x253cb: 0x6cc6b020,
-	0x253cd: 0x6c00d020,
-	0x253d0: 0x6c00e420, 0x253d1: 0x6d309e20, 0x253d2: 0x6c4c4620, 0x253d3: 0x6c92f020,
-	0x253d4: 0x6d2f7a20, 0x253d5: 0x6c9c8220, 0x253d6: 0x6c8a2a20, 0x253d7: 0x6d30a020,
-	0x253db: 0x6cc25020,
-	0x253dc: 0x6c236820, 0x253df: 0x6ce65020,
-	0x253e1: 0x6ce02c20, 0x253e2: 0x6d2e2820, 0x253e3: 0x6c55e020,
-	0x253e5: 0x6cb1da20, 0x253e7: 0x6c267020,
-	0x253e8: 0x6cc6d220,
-	0x253ee: 0x6ca52020,
-	0x253f3: 0x6ca45a20,
-	0x253f4: 0x6c291a20, 0x253f5: 0x6c695c20,
-	0x253fb: 0x6c72b620,
-	0x253fc: 0x6c37ac20,
-	// Block 0x950, offset 0x25400
-	0x2540a: 0x6c877420,
-	0x2540c: 0x6c4c4e20, 0x2540d: 0x6cec7e20,
-	0x25412: 0x6ca7ee20,
-	0x25414: 0x6c6c3420,
-	0x25429: 0x6cb04a20, 0x2542a: 0x6c1bde20,
-	0x25432: 0x6cb04c20, 0x25433: 0x6d166e20,
-	0x25434: 0x6c316220, 0x25435: 0x6cec1420, 0x25436: 0x6d099020,
-	0x25438: 0x6cb73c20, 0x25439: 0x6ccd6c20,
-	0x2543c: 0x6d056a20, 0x2543f: 0x6c509020,
-	// Block 0x951, offset 0x25440
-	0x25440: 0x6caca620, 0x25442: 0x6cadb420,
-	0x25444: 0x6d045a20, 0x25446: 0x6c1b7e20, 0x25447: 0x6cdf9020,
-	0x25448: 0x6d41a620, 0x25449: 0x6d414820, 0x2544a: 0x6cb74c20, 0x2544b: 0x6c316420,
-	0x25459: 0x6cd70c20,
-	0x2545c: 0x6ca2f220, 0x2545d: 0x6cf59620,
-	0x25467: 0x6c179420,
-	0x25468: 0x6d16d020, 0x2546b: 0x6d329e20,
-	0x2546e: 0x6c70fe20, 0x2546f: 0x6c274c20,
-	0x25471: 0x6cc9fc20,
-	0x25474: 0x6d3ac820, 0x25475: 0x6ced7620,
-	0x25478: 0x6cc9fe20, 0x25479: 0x6c04f220, 0x2547a: 0x6c643c20, 0x2547b: 0x6c972c20,
-	// Block 0x952, offset 0x25480
-	0x25488: 0x6ceb9c20, 0x2548a: 0x6cb76020,
-	0x2548f: 0x6d3c0c20,
-	0x25490: 0x6ceb0220, 0x25493: 0x6cb28c20,
-	0x2549d: 0x6cae6220, 0x2549e: 0x6c7b9a20, 0x2549f: 0x6d14d820,
-	0x254a1: 0x6d018620, 0x254a2: 0x6d264c20, 0x254a3: 0x6c523020,
-	0x254a5: 0x6c53f220, 0x254a6: 0x6d32a420, 0x254a7: 0x6c217420,
-	0x254a8: 0x6cd35e20, 0x254a9: 0x6cec1c20, 0x254ab: 0x6d009620,
-	0x254b8: 0x6c452a20,
-	// Block 0x953, offset 0x254c0
-	0x254c5: 0x6c35fe20,
-	0x254cf: 0x6c7a7220,
-	0x254d0: 0x6ca32c20, 0x254d3: 0x6c707420,
-	0x254d4: 0x6d088e20, 0x254d5: 0x6cc0fe20, 0x254d6: 0x6c181c20, 0x254d7: 0x6c939620,
-	0x254d8: 0x6c511420, 0x254d9: 0x6cd16020, 0x254da: 0x6ca44620,
-	0x254dc: 0x6c511620, 0x254dd: 0x6c13de20, 0x254de: 0x6d0bfe20, 0x254df: 0x6c450a20,
-	0x254e0: 0x6ca81e20, 0x254e2: 0x6c4c6a20, 0x254e3: 0x6d0c8c20,
-	0x254e4: 0x6c494e20, 0x254e7: 0x6d360420,
-	0x254e8: 0x6c81f420,
-	0x254ef: 0x6c321820,
-	0x254f0: 0x6cb78220, 0x254f1: 0x6cc10020, 0x254f2: 0x6c742e20,
-	// Block 0x954, offset 0x25500
-	0x25501: 0x6c3c4220, 0x25503: 0x6d06c420,
-	0x25504: 0x6ce9fc20, 0x25506: 0x6c4e1820, 0x25507: 0x6c7a4220,
-	0x2550a: 0x6ccff020, 0x2550b: 0x6d363e20,
-	0x2550d: 0x6cad2c20, 0x2550e: 0x6d32cc20, 0x2550f: 0x6c861820,
-	0x25510: 0x6ced2620, 0x25512: 0x6c391020, 0x25513: 0x6d033a20,
-	0x25516: 0x6d0bb620,
-	0x2551b: 0x6c709820,
-	0x2551c: 0x6cd0a620,
-	0x2552d: 0x6c989020, 0x2552f: 0x6cea7e20,
-	0x25530: 0x6d3d6620, 0x25531: 0x6cf62820, 0x25532: 0x6d1b5820, 0x25533: 0x6c6db620,
-	0x25534: 0x6cea5420, 0x25537: 0x6c453220,
-	0x25538: 0x6c620a20,
-	// Block 0x955, offset 0x25540
-	0x2554f: 0x6d3ba820,
-	0x25552: 0x6ce5f220,
-	0x25554: 0x6d33e220, 0x25556: 0x6c604420,
-	0x2555a: 0x6d1c8220, 0x2555b: 0x6cf0aa20,
-	0x2555d: 0x6c593c20, 0x2555e: 0x6ce68620, 0x2555f: 0x6c150620,
-	0x25562: 0x6c7c8e20, 0x25563: 0x6cb86e20,
-	0x25564: 0x6c04fc20, 0x25565: 0x6c13a420, 0x25566: 0x6ceb8420, 0x25567: 0x6ca43020,
-	0x25568: 0x6c6a2420, 0x2556a: 0x6d0c1620,
-	0x2556c: 0x6ce8ca20, 0x2556e: 0x6cf1e620,
-	0x25570: 0x6c232020, 0x25573: 0x6d06fc20,
-	0x25574: 0x6d1b6020, 0x25577: 0x6c084420,
-	0x2557c: 0x6c935820,
-	// Block 0x956, offset 0x25580
-	0x25581: 0x6d290620, 0x25582: 0x6c265820,
-	0x25586: 0x6ca84820, 0x25587: 0x6c71c220,
-	0x25588: 0x6c541620,
-	0x2558c: 0x6c453a20,
-	0x25595: 0x6c541820, 0x25596: 0x6c76b220, 0x25597: 0x6c459620,
-	0x25599: 0x6c5b5e20, 0x2559a: 0x6d01e220,
-	0x2559d: 0x6cf8ba20, 0x2559e: 0x6c4e2420, 0x2559f: 0x6c9c6820,
-	0x255a1: 0x6cf25c20, 0x255a2: 0x6c5d3620, 0x255a3: 0x6ccabc20,
-	0x255a4: 0x6d034220, 0x255a5: 0x6d307220, 0x255a6: 0x6c5dea20,
-	0x255a8: 0x6c45a020, 0x255ab: 0x6cc9e420,
-	0x255ac: 0x6c6c4a20, 0x255ad: 0x6cebec20,
-	0x255b1: 0x6c332420, 0x255b2: 0x6c1aca20,
-	0x255bd: 0x6cf67e20,
-	// Block 0x957, offset 0x255c0
-	0x255c2: 0x6c9c6a20, 0x255c3: 0x6d29e020,
-	0x255c4: 0x6cca8420,
-	0x255d3: 0x6cea5e20,
-	0x255d4: 0x6d366820, 0x255d5: 0x6cf1ea20,
-	0x255d8: 0x6d1a9820, 0x255d9: 0x6cea8220, 0x255db: 0x6c1cda20,
-	0x255dc: 0x6d2af020, 0x255de: 0x6cff0a20, 0x255df: 0x6ca07420,
-	0x255e0: 0x6c245820, 0x255e3: 0x6c0b4e20,
-	0x255e4: 0x6d04f020, 0x255e7: 0x6d154c20,
-	0x255ee: 0x6c5a6020,
-	0x255f0: 0x6d2bf820, 0x255f1: 0x6cdd3620, 0x255f2: 0x6c5cfe20, 0x255f3: 0x6c727e20,
-	// Block 0x958, offset 0x25600
-	0x25601: 0x6c245a20,
-	0x25604: 0x6c5f4020, 0x25605: 0x6d0a4420, 0x25606: 0x6cdcfe20, 0x25607: 0x6c135e20,
-	0x25609: 0x6d18b020,
-	0x2560e: 0x6c0c2220,
-	0x25612: 0x6c74c220, 0x25613: 0x6c868220,
-	0x25616: 0x6cad9a20,
-	0x2561b: 0x6d289c20,
-	0x2561c: 0x6d134220, 0x2561e: 0x6c0a5a20, 0x2561f: 0x6d310020,
-	0x25620: 0x6d310220, 0x25622: 0x6c702420, 0x25623: 0x6d309020,
-	0x25626: 0x6cd60e20,
-	0x2562a: 0x6cf6d620,
-	0x25637: 0x6d065820,
-	0x25638: 0x6ca3a620, 0x25639: 0x6cfb9a20, 0x2563a: 0x6c4bec20, 0x2563b: 0x6cf0d220,
-	0x2563e: 0x6c60c420, 0x2563f: 0x6cc9a220,
-	// Block 0x959, offset 0x25640
-	0x25642: 0x6c304220, 0x25643: 0x6caac820,
-	0x25644: 0x6c327a20, 0x25645: 0x6d32fc20, 0x25646: 0x6c7a6420,
-	0x25649: 0x6ca01c20,
-	0x25655: 0x6c05d820, 0x25656: 0x6c5c5020,
-	0x25659: 0x6d3fc620,
-	0x25668: 0x6cca5c20, 0x2566a: 0x6ce29420, 0x2566b: 0x6d157220,
-	0x2566d: 0x6d241620,
-	0x25671: 0x6d123220, 0x25672: 0x6ca94a20,
-	0x25674: 0x6c1dfa20, 0x25675: 0x6c5d4820, 0x25677: 0x6c337620,
-	0x25679: 0x6cb7f220, 0x2567a: 0x6d1d1820, 0x2567b: 0x6c0e3420,
-	0x2567c: 0x6ca92e20, 0x2567d: 0x6c5a1a20,
-	// Block 0x95a, offset 0x25680
-	0x25686: 0x6d1d1a20,
-	0x2568a: 0x6c05da20,
-	0x2568e: 0x6c4a2820, 0x2568f: 0x6c82f620,
-	0x25690: 0x6d421020,
-	0x25699: 0x6c15fe20,
-	0x256a3: 0x6c660a20,
-	0x256a7: 0x6c9b9220,
-	0x256a9: 0x6d002820,
-	0x256af: 0x6d035620,
-	0x256b1: 0x6c849e20,
-	0x256ba: 0x6cbc2e20,
-	0x256bf: 0x6cf05c20,
-	// Block 0x95b, offset 0x256c0
-	0x256c0: 0x6ca37620, 0x256c2: 0x6cacee20,
-	0x256c4: 0x6c829020, 0x256c7: 0x6c958220,
-	0x256cb: 0x6c946220,
-	0x256cd: 0x6c44ea20, 0x256cf: 0x6c946420,
-	0x256d2: 0x6cc22220,
-	0x256d6: 0x6c959020,
-	0x256d8: 0x6ca46820, 0x256db: 0x6c959220,
-	0x256dc: 0x6d273e20,
-	0x256e2: 0x6cd71a20,
-	0x256e5: 0x6c9d3e20, 0x256e6: 0x6cede820, 0x256e7: 0x6c12f420,
-	0x256e8: 0x6c64a620, 0x256e9: 0x6cee2020,
-	0x256ef: 0x6c637e20,
-	0x256f4: 0x6c58c020,
-	0x256f8: 0x6c894220, 0x256f9: 0x6d3f2c20, 0x256fa: 0x6c040a20, 0x256fb: 0x6cd43c20,
-	0x256fe: 0x6cecf220,
-	// Block 0x95c, offset 0x25700
-	0x25702: 0x6cd4c420,
-	0x25707: 0x6c4a4e20,
-	0x25708: 0x6cf5cc20, 0x2570a: 0x6cc79c20, 0x2570b: 0x6d11fe20,
-	0x2570e: 0x6c42c220,
-	0x25715: 0x6d26d220,
-	0x25718: 0x6d1da820, 0x25719: 0x6cec3c20, 0x2571a: 0x6c0f4620,
-	0x2571f: 0x6d034e20,
-	0x25722: 0x6cb0c620, 0x25723: 0x6c0f7820,
-	0x25726: 0x6c4d7e20, 0x25727: 0x6d2d5220,
-	0x25728: 0x6cf33020, 0x2572a: 0x6d138420, 0x2572b: 0x6c0ab820,
-	0x2572c: 0x6c4d8620,
-	0x25738: 0x6c1c0220, 0x2573b: 0x6d360620,
-	0x2573d: 0x6ca5dc20,
-	// Block 0x95d, offset 0x25740
-	0x25741: 0x6cf3d420, 0x25742: 0x6c006e20,
-	0x25748: 0x6c006a20, 0x25749: 0x6d229220, 0x2574a: 0x6c1c7020,
-	0x2574d: 0x6c6eac20, 0x2574e: 0x6d371020, 0x2574f: 0x6d372c20,
-	0x25750: 0x6d372e20, 0x25751: 0x6c70ee20,
-	0x25756: 0x6c4dd820,
-	0x2575a: 0x6cb24c20,
-	0x2575d: 0x6d11a620,
-	0x25763: 0x6d1f1e20,
-	0x25764: 0x6cb25420, 0x25766: 0x6ca11020,
-	0x2576c: 0x6d429e20, 0x2576d: 0x6cb38e20, 0x2576f: 0x6d091220,
-	0x25770: 0x6c7bc420, 0x25771: 0x6d17bc20, 0x25772: 0x6cb39020,
-	0x2577b: 0x6d3c9c20,
-	// Block 0x95e, offset 0x25780
-	0x25783: 0x6ca5fa20,
-	0x25784: 0x6cc0b020, 0x25785: 0x6c23f820,
-	0x2578c: 0x6d11cc20,
-	0x25791: 0x6c3b9820,
-	0x25795: 0x6cf9f420, 0x25797: 0x6c677c20,
-	0x25798: 0x6c13b220, 0x2579b: 0x6d000e20,
-	0x2579c: 0x6c13b420,
-	0x257a2: 0x6c1a5020, 0x257a3: 0x6c257e20,
-	0x257a7: 0x6cbf7c20,
-	0x257a9: 0x6d245220, 0x257ab: 0x6d21d820,
-	0x257af: 0x6cf21620,
-	0x257b1: 0x6c13c020, 0x257b2: 0x6d22ae20,
-	0x257b9: 0x6d425420, 0x257ba: 0x6c29fc20,
-	0x257bd: 0x6c73a820, 0x257be: 0x6c29fe20, 0x257bf: 0x6d1c4c20,
-	// Block 0x95f, offset 0x257c0
-	0x257c1: 0x6c3cd420,
-	0x257c5: 0x6cf27a20,
-	0x257c8: 0x6c6cf620, 0x257c9: 0x6cb76e20, 0x257cb: 0x6cbe0e20,
-	0x257cd: 0x6c7dee20, 0x257cf: 0x6cdf9e20,
-	0x257d0: 0x6cfa9420, 0x257d2: 0x6ce46420,
-	0x257d4: 0x6c7df620, 0x257d6: 0x6ce53a20,
-	0x257d8: 0x6c556420, 0x257d9: 0x6d39aa20, 0x257da: 0x6d2d7620, 0x257db: 0x6cde5820,
-	0x257dd: 0x6ce46e20, 0x257de: 0x6cde6820, 0x257df: 0x6cde8020,
-	0x257e0: 0x6c574820, 0x257e1: 0x6d0dc220, 0x257e2: 0x6ce61620,
-	0x257e4: 0x6ce61820, 0x257e5: 0x6cde8220,
-	0x257ec: 0x6c581020, 0x257ee: 0x6c63e620, 0x257ef: 0x6cb7e020,
-	0x257f1: 0x6cdeae20,
-	0x257f4: 0x6cdfc220, 0x257f5: 0x6c57ce20,
-	0x257f8: 0x6d3bf620, 0x257f9: 0x6c572220,
-	0x257fc: 0x6c800c20,
-	// Block 0x960, offset 0x25800
-	0x25806: 0x6d420420, 0x25807: 0x6d169820,
-	0x25808: 0x6c3dfe20, 0x25809: 0x6cf4bc20, 0x2580b: 0x6c3e0020,
-	0x2580d: 0x6c2f5620, 0x2580e: 0x6cde3c20,
-	0x25816: 0x6c17b820,
-	0x25819: 0x6cc64220, 0x2581a: 0x6cc35620,
-	0x2581c: 0x6c438420,
-	0x25821: 0x6c3e6620, 0x25822: 0x6c2c4c20, 0x25823: 0x6c2dc620,
-	0x25824: 0x6d1e3020, 0x25826: 0x6c643e20,
-	0x25829: 0x6c8f8e20,
-	0x2582c: 0x6d1e3220, 0x2582d: 0x6cafe020, 0x2582f: 0x6c5d7820,
-	0x25830: 0x6cbf3020, 0x25832: 0x6c38a020, 0x25833: 0x6cf3d620,
-	0x25834: 0x6ce74e20, 0x25835: 0x6c4f7e20,
-	0x25838: 0x6cdfac20,
-	0x2583e: 0x6c525020,
-	// Block 0x961, offset 0x25840
-	0x25844: 0x6ce56220,
-	0x25848: 0x6d388e20, 0x2584b: 0x6c045420,
-	0x2584c: 0x6d01e420, 0x2584d: 0x6c29c620, 0x2584f: 0x6c6c4c20,
-	0x25855: 0x6c54ec20, 0x25856: 0x6c06b620,
-	0x25858: 0x6c2fb220,
-	0x2585c: 0x6caac420, 0x2585d: 0x6cf0c620, 0x2585e: 0x6d218c20,
-	0x25860: 0x6d039c20, 0x25861: 0x6c3ee020, 0x25862: 0x6cfd0020, 0x25863: 0x6cb7c420,
-	0x25864: 0x6ce87820, 0x25867: 0x6c609420,
-	0x25869: 0x6d1d4620, 0x2586b: 0x6c2ae420,
-	0x2586c: 0x6ceeb020, 0x2586d: 0x6cf6ae20, 0x2586f: 0x6cac0220,
-	0x25871: 0x6cd12020, 0x25872: 0x6d1fec20,
-	0x25874: 0x6c005220, 0x25875: 0x6c66d220, 0x25877: 0x6c466020,
-	0x25878: 0x6cc93020,
-	0x2587c: 0x6c462220, 0x2587f: 0x6ccc6e20,
-	// Block 0x962, offset 0x25880
-	0x25880: 0x6ce13a20,
-	0x25887: 0x6c92f220,
-	0x25888: 0x6c027820, 0x2588a: 0x6cb7ee20, 0x2588b: 0x6d04fc20,
-	0x2588d: 0x6c271020,
-	0x25891: 0x6c382a20, 0x25892: 0x6cf0f420,
-	0x25894: 0x6c341020, 0x25895: 0x6c8a3a20, 0x25896: 0x6c386620, 0x25897: 0x6c5a1c20,
-	0x25898: 0x6c74dc20, 0x25899: 0x6cdec020, 0x2589a: 0x6d422020, 0x2589b: 0x6cc53020,
-	0x2589c: 0x6c117a20, 0x2589d: 0x6ce2c020,
-	0x258a0: 0x6c57d020, 0x258a1: 0x6d05fe20, 0x258a3: 0x6d2dae20,
-	0x258a7: 0x6c41f420,
-	0x258aa: 0x6caeea20, 0x258ab: 0x6c118020,
-	0x258ac: 0x6d005820, 0x258ad: 0x6c26d020,
-	0x258b1: 0x6c62d020,
-	0x258b6: 0x6c854820,
-	0x258b9: 0x6cac9020,
-	0x258bd: 0x6c8ffa20, 0x258be: 0x6c877620, 0x258bf: 0x6cf7c220,
-	// Block 0x963, offset 0x258c0
-	0x258c0: 0x6ce2d620, 0x258c3: 0x6c8dac20,
-	0x258c8: 0x6c855820, 0x258c9: 0x6cc4a220, 0x258ca: 0x6c8df420,
-	0x258ce: 0x6c4bca20,
-	0x258d4: 0x6cb30a20, 0x258d5: 0x6ca11220, 0x258d6: 0x6cabf020,
-	0x258d9: 0x6c03b420,
-	0x258e1: 0x6cb62820,
-	0x258e4: 0x6d0cc420,
-	0x258ea: 0x6cec3e20, 0x258eb: 0x6c020c20,
-	0x258ed: 0x6ca04a20, 0x258ee: 0x6c9fca20, 0x258ef: 0x6d0ab220,
-	0x258f0: 0x6c9b9420, 0x258f3: 0x6c48d620,
-	0x258f6: 0x6c682420,
-	0x258fb: 0x6c410a20,
-	// Block 0x964, offset 0x25900
-	0x25901: 0x6c110a20, 0x25902: 0x6cf4ac20, 0x25903: 0x6d301820,
-	0x25904: 0x6cc58820, 0x25905: 0x6c79b420,
-	0x25914: 0x6d2f8a20, 0x25915: 0x6d37a220, 0x25916: 0x6cc00a20, 0x25917: 0x6c4c1420,
-	0x25918: 0x6c456a20, 0x25919: 0x6cb40220, 0x2591a: 0x6c566c20, 0x2591b: 0x6c9e0820,
-	0x2591e: 0x6ce45a20,
-	0x25923: 0x6cee0020,
-	0x25938: 0x6d3a0020, 0x25939: 0x6c268a20, 0x2593a: 0x6d048e20, 0x2593b: 0x6ca2d420,
-	0x2593e: 0x6c72de20,
-	// Block 0x965, offset 0x25940
-	0x25941: 0x6ca71a20,
-	0x25948: 0x6c567820, 0x25949: 0x6ccbd420,
-	0x2595c: 0x6d33b820, 0x2595f: 0x6cdde420,
-	0x25961: 0x6cd7d820,
-	0x25965: 0x6d170820,
-	0x2596d: 0x6cbf1020, 0x2596e: 0x6d35c820, 0x2596f: 0x6c939220,
-	0x25970: 0x6cc79e20, 0x25972: 0x6cb5ac20, 0x25973: 0x6d224020,
-	0x25974: 0x6d386a20, 0x25975: 0x6d0fa620, 0x25976: 0x6cfc0420, 0x25977: 0x6ca1cc20,
-	0x25978: 0x6c1d9a20, 0x25979: 0x6c5aa820, 0x2597a: 0x6c6f6420, 0x2597b: 0x6c6fec20,
-	0x2597c: 0x6cb19220,
-	// Block 0x966, offset 0x25980
-	0x25981: 0x6c699220, 0x25983: 0x6c48c620,
-	0x25985: 0x6ca0fe20,
-	0x25990: 0x6cf5ce20, 0x25991: 0x6cb43220,
-	0x259af: 0x6c61d420,
-	0x259b6: 0x6cf1da20, 0x259b7: 0x6c071620,
-	0x259b8: 0x6d15ea20, 0x259b9: 0x6c3e6a20, 0x259ba: 0x6cd7e420, 0x259bb: 0x6c72f020,
-	0x259bc: 0x6c61f620, 0x259be: 0x6ca69a20,
-	// Block 0x967, offset 0x259c0
-	0x259c0: 0x6c07b620,
-	0x259c5: 0x6d06c620,
-	0x259c8: 0x6cbdd220, 0x259c9: 0x6c0ef820,
-	0x259cc: 0x6cede620, 0x259cd: 0x6d30f620, 0x259cf: 0x6cf2e620,
-	0x259d0: 0x6ccea420, 0x259d1: 0x6d2a8020, 0x259d2: 0x6d101820,
-	0x259d5: 0x6cd98a20, 0x259d6: 0x6ca82020,
-	0x259db: 0x6c098620,
-	0x259e3: 0x6c242420,
-	0x259e4: 0x6cbab220,
-	0x259ea: 0x6cffe620, 0x259eb: 0x6d33d620,
-	0x259ec: 0x6ccf1020, 0x259ef: 0x6d360820,
-	0x259f0: 0x6cae7020,
-	// Block 0x968, offset 0x25a00
-	0x25a0f: 0x6c2e1e20,
-	0x25a16: 0x6cf2f820,
-	0x25a18: 0x6d352020, 0x25a19: 0x6c098820, 0x25a1b: 0x6c3b7020,
-	0x25a25: 0x6c052a20,
-	0x25a2a: 0x6cc06c20, 0x25a2b: 0x6ca63a20,
-	0x25a2c: 0x6c0f0620, 0x25a2d: 0x6c33f220, 0x25a2f: 0x6cd2d020,
-	0x25a30: 0x6d05a220, 0x25a31: 0x6c16ac20, 0x25a32: 0x6d05a420, 0x25a33: 0x6d128020,
-	0x25a34: 0x6c9c5620,
-	0x25a38: 0x6d02d620, 0x25a39: 0x6d3d6820, 0x25a3a: 0x6c3ff620,
-	0x25a3d: 0x6cb06020, 0x25a3e: 0x6d095e20,
-	// Block 0x969, offset 0x25a40
-	0x25a40: 0x6d235020, 0x25a41: 0x6cfb6020, 0x25a42: 0x6d235220, 0x25a43: 0x6d213420,
-	0x25a45: 0x6c709a20, 0x25a46: 0x6cddec20, 0x25a47: 0x6c797c20,
-	0x25a4a: 0x6d32ce20, 0x25a4b: 0x6c9b1a20,
-	0x25a4c: 0x6c428420,
-	0x25a52: 0x6ca28a20, 0x25a53: 0x6cf7ea20,
-	0x25a54: 0x6c09aa20, 0x25a56: 0x6c3ff820,
-	0x25a5c: 0x6cfff420,
-	0x25a60: 0x6c6f7620, 0x25a63: 0x6c468820,
-	0x25a70: 0x6c1b2820, 0x25a71: 0x6c6f7820, 0x25a72: 0x6c6f7a20,
-	0x25a75: 0x6ccbf820, 0x25a77: 0x6c3a0820,
-	// Block 0x96a, offset 0x25a80
-	0x25aab: 0x6c3e8c20,
-	0x25aaf: 0x6ced8a20,
-	0x25ab0: 0x6d05a620, 0x25ab1: 0x6c0e7620,
-	// Block 0x96b, offset 0x25ac0
-	0x25ac1: 0x6c504820, 0x25ac3: 0x6d00c420,
-	0x25ac4: 0x6cb11820, 0x25ac5: 0x6d227420, 0x25ac7: 0x6ce4ae20,
-	0x25ac8: 0x6cb00020, 0x25aca: 0x6cd2d220, 0x25acb: 0x6c7afc20,
-	0x25acc: 0x6c5ef020, 0x25acf: 0x6d2be420,
-	0x25ad0: 0x6ca3cc20, 0x25ad1: 0x6ca20620, 0x25ad3: 0x6c3ea620,
-	0x25ad4: 0x6c326820, 0x25ad7: 0x6cd13e20,
-	0x25ad8: 0x6c13ee20, 0x25ada: 0x6c1b3820, 0x25adb: 0x6c4b0820,
-	0x25adc: 0x6c9f6620, 0x25add: 0x6ce0c220, 0x25ade: 0x6c044c20, 0x25adf: 0x6cbac220,
-	0x25ae1: 0x6d3d7420, 0x25ae2: 0x6cf0ac20, 0x25ae3: 0x6d0a1e20,
-	0x25ae5: 0x6c9e9620, 0x25ae6: 0x6d290820, 0x25ae7: 0x6d1f4a20,
-	0x25ae9: 0x6d204c20, 0x25aeb: 0x6cccee20,
-	0x25aec: 0x6c514220, 0x25aed: 0x6c93a220, 0x25aee: 0x6d347820,
-	0x25af2: 0x6c6e9020, 0x25af3: 0x6d317020,
-	0x25af6: 0x6c9b2620, 0x25af7: 0x6d1f4c20,
-	0x25af9: 0x6cf30020, 0x25afa: 0x6c038620,
-	0x25afd: 0x6c737820, 0x25afe: 0x6cc7b220, 0x25aff: 0x6c23f220,
-	// Block 0x96c, offset 0x25b00
-	0x25b00: 0x6d33fc20,
-	0x25b09: 0x6c557620, 0x25b0a: 0x6d0f5c20,
-	0x25b0c: 0x6c75d020, 0x25b0d: 0x6ccf1c20, 0x25b0e: 0x6c79f220,
-	0x25b11: 0x6cb9a820,
-	0x25b14: 0x6c9b2820,
-	0x25b1a: 0x6ce58c20,
-	// Block 0x96d, offset 0x25b40
-	0x25b50: 0x6ca84a20,
-	0x25b5f: 0x6c1b3a20,
-	0x25b61: 0x6d047220, 0x25b63: 0x6c5d3820,
-	0x25b66: 0x6c2b8020, 0x25b67: 0x6c80d620,
-	0x25b69: 0x6d2a1a20, 0x25b6a: 0x6c130a20, 0x25b6b: 0x6cdd8420,
-	0x25b6c: 0x6d412c20, 0x25b6d: 0x6cdbd020, 0x25b6f: 0x6cf9e020,
-	0x25b71: 0x6d01e620,
-	0x25b74: 0x6c6b1220, 0x25b75: 0x6d1f5820, 0x25b77: 0x6c46ca20,
-	0x25b78: 0x6c451620,
-	0x25b7c: 0x6c75d820, 0x25b7d: 0x6c5a5e20, 0x25b7e: 0x6c607420, 0x25b7f: 0x6cb3ca20,
-	// Block 0x96e, offset 0x25b80
-	0x25b80: 0x6cf37820, 0x25b82: 0x6d183420,
-	0x25b85: 0x6ca3a420, 0x25b87: 0x6cc71820,
-	0x25b88: 0x6ca40820, 0x25b8a: 0x6cb2c020, 0x25b8b: 0x6ccd9420,
-	0x25b8c: 0x6c2dd820, 0x25b8d: 0x6c607620, 0x25b8e: 0x6c571420, 0x25b8f: 0x6c335620,
-	0x25b90: 0x6c79a020, 0x25b91: 0x6cde8620, 0x25b93: 0x6c53c620,
-	0x25b95: 0x6cd4f820,
-	0x25b99: 0x6c526a20, 0x25b9a: 0x6c3bc020,
-	0x25bb2: 0x6c79fa20,
-	// Block 0x96f, offset 0x25bc0
-	0x25bd9: 0x6ca70220,
-	0x25bdd: 0x6c1e9e20,
-	0x25be6: 0x6cbb5a20,
-	0x25bf2: 0x6cf8bc20, 0x25bf3: 0x6c558020,
-	0x25bf4: 0x6cd99620, 0x25bf5: 0x6cf30a20, 0x25bf7: 0x6c4d7620,
-	0x25bf8: 0x6cc7b820, 0x25bf9: 0x6c9b3020, 0x25bfb: 0x6cca2420,
-	0x25bfd: 0x6cf3de20, 0x25bff: 0x6d1f6420,
-	// Block 0x970, offset 0x25c00
-	0x25c01: 0x6cdfba20, 0x25c02: 0x6cd01220,
-	0x25c06: 0x6cb71220,
-	0x25c08: 0x6c4c8420, 0x25c09: 0x6cb87420, 0x25c0a: 0x6cfad020,
-	0x25c0f: 0x6cdbd620,
-	0x25c10: 0x6c92b020, 0x25c13: 0x6cb52620,
-	0x25c14: 0x6c2ddc20, 0x25c17: 0x6cb64020,
-	0x25c18: 0x6c63dc20, 0x25c19: 0x6d1f6620, 0x25c1a: 0x6cf79e20, 0x25c1b: 0x6c177a20,
-	0x25c21: 0x6c9d7e20, 0x25c22: 0x6c911820, 0x25c23: 0x6c08f220,
-	0x25c2a: 0x6cadec20,
-	0x25c2e: 0x6d318e20, 0x25c2f: 0x6cd01420,
-	0x25c30: 0x6c15da20, 0x25c31: 0x6c403a20,
-	0x25c36: 0x6cc13820, 0x25c37: 0x6cd82220,
-	0x25c3a: 0x6d417a20,
-	// Block 0x971, offset 0x25c40
-	0x25c6b: 0x6d2fd620,
-	0x25c7d: 0x6cb01220,
-	// Block 0x972, offset 0x25c80
-	0x25c80: 0x6c23fa20,
-	0x25c86: 0x6c42e220, 0x25c87: 0x6c31b620,
-	0x25c89: 0x6c3da420, 0x25c8a: 0x6c492620, 0x25c8b: 0x6ccae620,
-	0x25c8c: 0x6cda2a20, 0x25c8d: 0x6c65da20, 0x25c8e: 0x6cb3e020,
-	0x25c90: 0x6c11ac20, 0x25c91: 0x6c085020, 0x25c92: 0x6ca20c20, 0x25c93: 0x6d2f7420,
-	0x25c94: 0x6cff9a20, 0x25c96: 0x6c715c20, 0x25c97: 0x6cd50620,
-	0x25c98: 0x6c65dc20, 0x25c99: 0x6c844e20, 0x25c9b: 0x6c203e20,
-	0x25c9c: 0x6c81e220, 0x25c9e: 0x6c51ea20, 0x25c9f: 0x6c55bc20,
-	0x25ca0: 0x6c473220, 0x25ca1: 0x6d2f0c20, 0x25ca2: 0x6c6b3620, 0x25ca3: 0x6cfe5620,
-	0x25ca5: 0x6c317820, 0x25ca6: 0x6c4e3220, 0x25ca7: 0x6c63e820,
-	0x25ca8: 0x6cfe5820, 0x25ca9: 0x6c60ae20, 0x25caa: 0x6cd56c20, 0x25cab: 0x6c812e20,
-	0x25cac: 0x6c5f4220, 0x25cad: 0x6ccd0e20,
-	0x25cb0: 0x6ce1ee20, 0x25cb1: 0x6d3e8e20, 0x25cb2: 0x6cd69620,
-	0x25cb4: 0x6c60b020, 0x25cb5: 0x6c1f7820, 0x25cb6: 0x6c628020, 0x25cb7: 0x6cd01c20,
-	0x25cb8: 0x6c8c6820, 0x25cb9: 0x6c8a2020, 0x25cbb: 0x6cca2a20,
-	0x25cbd: 0x6c019220, 0x25cbe: 0x6cc87c20,
-	// Block 0x973, offset 0x25cc0
-	0x25cc0: 0x6ce37820, 0x25cc1: 0x6c28b820, 0x25cc3: 0x6c589c20,
-	0x25cc5: 0x6cc99420,
-	// Block 0x974, offset 0x25d00
-	0x25d06: 0x6cc8a420, 0x25d07: 0x6cf38020,
-	0x25d08: 0x6c729620, 0x25d09: 0x6c589e20, 0x25d0a: 0x6c838620, 0x25d0b: 0x6c92dc20,
-	0x25d0e: 0x6cdfbe20, 0x25d0f: 0x6d2b9620,
-	0x25d13: 0x6cb9ca20,
-	0x25d17: 0x6cf6d820,
-	0x25d21: 0x6c22a220, 0x25d22: 0x6ccf2620,
-	0x25d27: 0x6cc99620,
-	0x25d2a: 0x6c99bc20, 0x25d2b: 0x6cc1da20,
-	0x25d2d: 0x6c0f7a20, 0x25d2e: 0x6c41f020,
-	0x25d30: 0x6cbcea20, 0x25d31: 0x6c739a20, 0x25d32: 0x6c290e20, 0x25d33: 0x6c16cc20,
-	0x25d34: 0x6d0fde20, 0x25d35: 0x6c518020, 0x25d37: 0x6c5f5c20,
-	0x25d39: 0x6c0df820, 0x25d3b: 0x6c9a3020,
-	0x25d3f: 0x6c33b820,
-	// Block 0x975, offset 0x25d40
-	0x25d40: 0x6c02b020, 0x25d41: 0x6c6dd820, 0x25d42: 0x6c92f420, 0x25d43: 0x6c9e6620,
-	0x25d44: 0x6c2d8a20, 0x25d45: 0x6c51f220, 0x25d47: 0x6c650420,
-	0x25d4a: 0x6c575e20, 0x25d4b: 0x6c466220,
-	0x25d4e: 0x6c92f620, 0x25d4f: 0x6c3f0a20,
-	0x25d50: 0x6c5b7220, 0x25d52: 0x6d2b6620,
-	0x25d54: 0x6c6d6220, 0x25d55: 0x6cd83420, 0x25d56: 0x6cc43e20,
-	0x25d5c: 0x6c28cc20, 0x25d5e: 0x6ced9e20, 0x25d5f: 0x6c0b5620,
-	0x25d64: 0x6c63ee20,
-	0x25d6b: 0x6c284e20,
-	0x25d6c: 0x6c6f8a20, 0x25d6d: 0x6cfb9c20, 0x25d6e: 0x6c0f7c20,
-	// Block 0x976, offset 0x25d80
-	0x25d8f: 0x6cfa0020,
-	0x25d91: 0x6c0c3220,
-	0x25d95: 0x6cb3a820,
-	0x25d98: 0x6ccae820, 0x25d99: 0x6c076620, 0x25d9a: 0x6ccc8020, 0x25d9b: 0x6cf02e20,
-	0x25d9d: 0x6c123e20, 0x25d9e: 0x6c92f820,
-	0x25da9: 0x6c28ce20, 0x25dab: 0x6c47e820,
-	0x25dac: 0x6d289e20, 0x25dad: 0x6c055820, 0x25dae: 0x6c423820,
-	0x25db1: 0x6c175420, 0x25db2: 0x6c62ae20, 0x25db3: 0x6c8ab620,
-	0x25db5: 0x6cbf7e20, 0x25db6: 0x6c66f420, 0x25db7: 0x6c930a20,
-	0x25db8: 0x6c32a620, 0x25db9: 0x6cdb8a20, 0x25dba: 0x6d116020, 0x25dbb: 0x6d1b1620,
-	0x25dbd: 0x6cdec220, 0x25dbe: 0x6d116220, 0x25dbf: 0x6c6de020,
-	// Block 0x977, offset 0x25dc0
-	0x25dc0: 0x6c1ebc20, 0x25dc1: 0x6c3f1220, 0x25dc2: 0x6d25c220, 0x25dc3: 0x6ccebc20,
-	0x25dc5: 0x6c0e3620, 0x25dc6: 0x6c299e20, 0x25dc7: 0x6cd3f820,
-	0x25dca: 0x6c916420, 0x25dcb: 0x6cbcf220,
-	0x25dcc: 0x6c955c20, 0x25dcd: 0x6cb3ae20, 0x25dcf: 0x6c9b7a20,
-	0x25dd0: 0x6c6b6620, 0x25dd3: 0x6c5f7220,
-	0x25dd6: 0x6c930c20,
-	// Block 0x978, offset 0x25e00
-	0x25e04: 0x6c172a20, 0x25e05: 0x6c9f0020, 0x25e06: 0x6c9b7c20, 0x25e07: 0x6c660220,
-	0x25e0a: 0x6c114020,
-	0x25e0c: 0x6cdb5220,
-	0x25e14: 0x6c51fe20, 0x25e15: 0x6cc9aa20, 0x25e17: 0x6d3eae20,
-	0x25e18: 0x6c795e20, 0x25e19: 0x6c452220, 0x25e1a: 0x6cd83a20,
-	0x25e20: 0x6ce3a420, 0x25e21: 0x6d2e8e20, 0x25e22: 0x6d026420, 0x25e23: 0x6cd70020,
-	0x25e24: 0x6c1bcc20, 0x25e25: 0x6d1ec620, 0x25e26: 0x6c91f820, 0x25e27: 0x6c9c1a20,
-	0x25e28: 0x6c8b6020, 0x25e29: 0x6cd8f620,
-	0x25e2c: 0x6cf71820, 0x25e2d: 0x6c38da20, 0x25e2e: 0x6c3db820, 0x25e2f: 0x6cd08820,
-	0x25e30: 0x6ce3a620, 0x25e31: 0x6c14a420, 0x25e32: 0x6d270620,
-	0x25e34: 0x6c3dba20, 0x25e35: 0x6c670220, 0x25e36: 0x6c2cb020,
-	0x25e3a: 0x6d011a20, 0x25e3b: 0x6c281220,
-	0x25e3f: 0x6d34b020,
-	// Block 0x979, offset 0x25e40
-	0x25e43: 0x6d075620,
-	0x25e48: 0x6ca89820, 0x25e49: 0x6c397420, 0x25e4a: 0x6c9b8820, 0x25e4b: 0x6c9fd420,
-	0x25e7e: 0x6c90d220, 0x25e7f: 0x6c31e820,
-	// Block 0x97a, offset 0x25e80
-	0x25e81: 0x6d2e9620, 0x25e82: 0x6c671020, 0x25e83: 0x6c4f2e20,
-	0x25e84: 0x6c28e220, 0x25e85: 0x6ccbb220, 0x25e86: 0x6c671220, 0x25e87: 0x6ce03e20,
-	0x25e88: 0x6c696c20, 0x25e89: 0x6cb34220, 0x25e8b: 0x6cb2e420,
-	0x25e8d: 0x6d3bf820, 0x25e8f: 0x6c8a4c20,
-	0x25e90: 0x6d3f6620, 0x25e92: 0x6d3dd820,
-	0x25e94: 0x6c56de20,
-	0x25e99: 0x6cf92020, 0x25e9b: 0x6c9b9620,
-	0x25e9c: 0x6c72ba20, 0x25e9d: 0x6c9f0c20, 0x25e9e: 0x6cfbcc20,
-	0x25ea0: 0x6c7d3820, 0x25ea1: 0x6c9b9820, 0x25ea2: 0x6c653420,
-	0x25ea6: 0x6caa0a20,
-	0x25ea8: 0x6c2cb220, 0x25ea9: 0x6ccad220,
-	// Block 0x97b, offset 0x25ec0
-	0x25ecf: 0x6c1f8c20,
-	0x25ed0: 0x6d34bc20, 0x25ed1: 0x6cb9e220, 0x25ed2: 0x6c93c420,
-	0x25ed4: 0x6d3ddc20,
-	0x25ed8: 0x6d42b020, 0x25ed9: 0x6c4e4820, 0x25eda: 0x6cdc1820, 0x25edb: 0x6c46e220,
-	0x25edd: 0x6c1e3c20, 0x25ede: 0x6c62da20, 0x25edf: 0x6d194820,
-	0x25ee0: 0x6d21f020,
-	0x25ee8: 0x6caa0c20, 0x25ee9: 0x6ca66420, 0x25eea: 0x6cc93620,
-	0x25eee: 0x6c8c0820,
-	0x25ef1: 0x6ca93820,
-	// Block 0x97c, offset 0x25f00
-	0x25f0d: 0x6cbc1620, 0x25f0e: 0x6d117c20, 0x25f0f: 0x6c409c20,
-	0x25f10: 0x6cd6b620, 0x25f11: 0x6c7d3e20, 0x25f12: 0x6cc21220, 0x25f13: 0x6c304a20,
-	0x25f14: 0x6cd58a20,
-	0x25f1a: 0x6c84c020, 0x25f1b: 0x6c719220,
-	0x25f1c: 0x6cc8bc20,
-	0x25f20: 0x6d2c6c20,
-	0x25f24: 0x6cff5420,
-	0x25f38: 0x6c9ae220, 0x25f39: 0x6cd29820, 0x25f3a: 0x6c2cfc20, 0x25f3b: 0x6c878e20,
-	0x25f3c: 0x6c2b0420, 0x25f3d: 0x6d29c420, 0x25f3f: 0x6c958420,
-	// Block 0x97d, offset 0x25f40
-	0x25f40: 0x6c11c620, 0x25f43: 0x6c023c20,
-	0x25f46: 0x6c663620,
-	0x25f48: 0x6c2e5020, 0x25f4b: 0x6d1cd820,
-	0x25f56: 0x6d197220, 0x25f57: 0x6c294620,
-	0x25f58: 0x6caa1220, 0x25f5a: 0x6d272620,
-	0x25f6e: 0x6c855620, 0x25f6f: 0x6c84e220,
-	0x25f70: 0x6c56f620, 0x25f72: 0x6d206420,
-	0x25f7a: 0x6ca48420,
-	// Block 0x97e, offset 0x25f80
-	0x25f82: 0x6c194a20,
-	0x25f89: 0x6c3c9220, 0x25f8a: 0x6c0cd220,
-	0x25f8f: 0x6c97d820,
-	0x25f90: 0x6c424a20, 0x25f91: 0x6c5e6020, 0x25f93: 0x6c241c20,
-	0x25f95: 0x6d200020,
-	0x25f98: 0x6d206620,
-	0x25f9c: 0x6d057c20,
-	0x25fa1: 0x6d06b020, 0x25fa2: 0x6c561820, 0x25fa3: 0x6c915020,
-	0x25fa5: 0x6cf9b820, 0x25fa6: 0x6d177420,
-	0x25fae: 0x6c561e20, 0x25faf: 0x6c569020,
-	0x25fb0: 0x6d3f0a20,
-	0x25fb7: 0x6c458c20,
-	0x25fb8: 0x6ce99220, 0x25fb9: 0x6cf36a20, 0x25fba: 0x6c8d2020, 0x25fbb: 0x6c472020,
-	0x25fbc: 0x6d37be20,
-	// Block 0x97f, offset 0x25fc0
-	0x25fc4: 0x6c915820,
-	0x25fc8: 0x6d412e20,
-	0x25fcc: 0x6ce76a20, 0x25fcd: 0x6cf97020, 0x25fce: 0x6c515c20,
-	0x25fd3: 0x6d26e220,
-	0x25fd9: 0x6ca40c20, 0x25fda: 0x6c0f4820, 0x25fdb: 0x6c54fa20,
-	0x25fdc: 0x6cb7e220, 0x25fdd: 0x6cd53a20, 0x25fde: 0x6cbadc20, 0x25fdf: 0x6d38ae20,
-	0x25fe0: 0x6d122620, 0x25fe1: 0x6c473420,
-	0x25fe5: 0x6c049e20, 0x25fe6: 0x6c76ec20,
-	0x25fee: 0x6c517620, 0x25fef: 0x6c628420,
-	0x25ff0: 0x6c55be20, 0x25ff1: 0x6d0cde20,
-	0x25ff6: 0x6c212020, 0x25ff7: 0x6c2f8620,
-	0x25ff8: 0x6cbfce20, 0x25ff9: 0x6c543620,
-	0x25ffc: 0x6c507420, 0x25fff: 0x6d413220,
-	// Block 0x980, offset 0x26000
-	0x26001: 0x6cfbb820,
-	0x26004: 0x6cfa5220, 0x26005: 0x6cf91820,
-	0x26008: 0x6ccb8420,
-	0x2600c: 0x6c445a20, 0x2600d: 0x6cf92220,
-	0x26011: 0x6c445e20,
-	0x26014: 0x6c93c620, 0x26016: 0x6c446020, 0x26017: 0x6c78ea20,
-	0x26019: 0x6cd48a20, 0x2601a: 0x6d3b5020,
-	0x2601c: 0x6ce2de20, 0x2601d: 0x6d0b7820, 0x2601e: 0x6ca67c20,
-	0x26026: 0x6c95e220, 0x26027: 0x6cdbae20,
-	0x2602a: 0x6c159e20,
-	0x2602d: 0x6cf4cc20, 0x2602f: 0x6d208220,
-	0x26039: 0x6d2a4420, 0x2603b: 0x6d174420,
-	0x2603c: 0x6cf5d220, 0x2603d: 0x6c533620, 0x2603e: 0x6cc2ce20, 0x2603f: 0x6cee0c20,
-	// Block 0x981, offset 0x26040
-	0x26040: 0x6c1b9820, 0x26041: 0x6cf87420, 0x26042: 0x6ce4e020, 0x26043: 0x6d27e420,
-	0x26045: 0x6d13e220, 0x26046: 0x6c600620, 0x26047: 0x6c5aaa20,
-	0x26048: 0x6c3d1620, 0x2604a: 0x6c3f5420,
-	0x2604d: 0x6c600820, 0x2604e: 0x6d080a20,
-	0x26051: 0x6cdf6c20, 0x26053: 0x6c324e20,
-	0x26057: 0x6d255620,
-	0x2605b: 0x6c2c3220,
-	0x2605e: 0x6d3a6620, 0x2605f: 0x6cdf0620,
-	0x26061: 0x6cc70c20, 0x26062: 0x6d090a20, 0x26063: 0x6d232020,
-	0x26064: 0x6c394e20, 0x26065: 0x6c06ca20, 0x26067: 0x6cc24420,
-	0x26069: 0x6c109620, 0x2606a: 0x6c635420, 0x2606b: 0x6d2c2c20,
-	0x2606d: 0x6caa5a20, 0x2606e: 0x6ccf1420,
-	0x26072: 0x6c860220,
-	// Block 0x982, offset 0x26080
-	0x26084: 0x6c4af620, 0x26085: 0x6c48de20, 0x26087: 0x6c276420,
-	0x2608f: 0x6c40fa20,
-	0x26092: 0x6c22cc20,
-	0x26094: 0x6d0d9220, 0x26095: 0x6cd92220, 0x26096: 0x6cd38820,
-	0x26098: 0x6c7a9c20, 0x26099: 0x6d352e20, 0x2609a: 0x6ce75020, 0x2609b: 0x6cc19620,
-	0x2609c: 0x6c364220, 0x2609e: 0x6d03ea20, 0x2609f: 0x6cc7b020,
-	0x260a0: 0x6d213820, 0x260a3: 0x6d17c020,
-	0x260a4: 0x6d17c220, 0x260a5: 0x6d06e420, 0x260a6: 0x6c3d2c20, 0x260a7: 0x6c43f820,
-	0x260ac: 0x6c512a20, 0x260ad: 0x6d19e820, 0x260af: 0x6c53be20,
-	0x260b1: 0x6c349820,
-	0x260bd: 0x6d03ec20, 0x260be: 0x6c38a220,
-	// Block 0x983, offset 0x260c0
-	0x260c9: 0x6cb50020, 0x260ca: 0x6ccc0220,
-	0x260cc: 0x6c326a20, 0x260cd: 0x6c2c7220, 0x260ce: 0x6c83fa20, 0x260cf: 0x6d180620,
-	0x260d0: 0x6cf78c20, 0x260d1: 0x6c451420, 0x260d2: 0x6ce75820, 0x260d3: 0x6c77c020,
-	0x260d4: 0x6c53c420, 0x260d5: 0x6c7db820, 0x260d6: 0x6ca84c20, 0x260d7: 0x6c1b3c20,
-	0x260d8: 0x6ce34e20, 0x260da: 0x6ce75a20,
-	0x260e0: 0x6c83fc20, 0x260e1: 0x6ca35c20,
-	0x260f1: 0x6d2d8220, 0x260f2: 0x6c06cc20,
-	// Block 0x984, offset 0x26100
-	0x26101: 0x6ce59220, 0x26103: 0x6d289420,
-	0x26104: 0x6c367420, 0x26105: 0x6cd47620, 0x26106: 0x6c798820, 0x26107: 0x6caeb820,
-	0x26108: 0x6c402020, 0x26109: 0x6c929820, 0x2610a: 0x6d01e820, 0x2610b: 0x6d01ea20,
-	0x2610c: 0x6d04e820, 0x2610d: 0x6c929a20, 0x2610e: 0x6ce50a20, 0x2610f: 0x6cde8820,
-	0x26110: 0x6c22da20, 0x26111: 0x6cc12a20, 0x26113: 0x6c402220,
-	0x26114: 0x6d340620, 0x26116: 0x6d01ec20, 0x26117: 0x6d408220,
-	0x26118: 0x6c3abe20, 0x26119: 0x6c9f7420, 0x2611a: 0x6d038c20,
-	0x2611d: 0x6ce76c20, 0x2611e: 0x6cb60220,
-	0x26120: 0x6cb15c20, 0x26122: 0x6cdc5620, 0x26123: 0x6c37a020,
-	0x26127: 0x6c562c20,
-	0x2613b: 0x6cd92e20,
-	0x2613d: 0x6c0cb020, 0x2613e: 0x6c2f6620, 0x2613f: 0x6c04d220,
-	// Block 0x985, offset 0x26140
-	0x26140: 0x6cd1e220, 0x26141: 0x6d01ee20, 0x26142: 0x6cff9420, 0x26143: 0x6c3a6620,
-	0x26152: 0x6c202620, 0x26153: 0x6cd67020,
-	0x26154: 0x6d10b220, 0x26155: 0x6c74a220, 0x26156: 0x6cd14820,
-	0x26158: 0x6d1eb220, 0x26159: 0x6c396c20,
-	0x2615c: 0x6c7c9a20, 0x2615d: 0x6c2c9820, 0x2615f: 0x6c990220,
-	0x26160: 0x6c6b2420, 0x26162: 0x6d0cc820,
-	0x26165: 0x6ceeb420,
-	0x26168: 0x6cca7220, 0x26169: 0x6c6b2620, 0x2616a: 0x6d219220, 0x2616b: 0x6cf0c820,
-	0x2616c: 0x6c369220, 0x2616d: 0x6cc31220, 0x2616e: 0x6c6f2e20, 0x2616f: 0x6c3cba20,
-	0x26170: 0x6c8fa620, 0x26171: 0x6c2ee220, 0x26172: 0x6cb12420,
-	0x26174: 0x6c891420, 0x26175: 0x6c559820, 0x26176: 0x6c93fa20,
-	0x2617f: 0x6c2d7a20,
-	// Block 0x986, offset 0x26180
-	0x26183: 0x6c255e20,
-	0x26184: 0x6ca1e420,
-	0x26195: 0x6cedea20, 0x26196: 0x6c72fe20, 0x26197: 0x6c782e20,
-	0x26198: 0x6d0cca20, 0x26199: 0x6c693420,
-	0x261a1: 0x6c45b020, 0x261a3: 0x6cc6b620,
-	0x261a4: 0x6cdce220, 0x261a5: 0x6ccdb620,
-	0x261a8: 0x6c1b5420, 0x261aa: 0x6cb65220, 0x261ab: 0x6cdd9820,
-	0x261ad: 0x6d134420, 0x261ae: 0x6d2a5420, 0x261af: 0x6cc39620,
-	0x261b0: 0x6d2e1820, 0x261b1: 0x6c035a20, 0x261b2: 0x6d40d620, 0x261b3: 0x6cdd9a20,
-	0x261b4: 0x6d309220, 0x261b5: 0x6cf8e820, 0x261b7: 0x6c1eec20,
-	0x261b8: 0x6c694820, 0x261b9: 0x6d41d220, 0x261ba: 0x6c43aa20, 0x261bb: 0x6cf52420,
-	0x261be: 0x6c94c020, 0x261bf: 0x6c60b420,
-	// Block 0x987, offset 0x261c0
-	0x261c2: 0x6d00ec20, 0x261c3: 0x6d00ee20,
-	0x261c6: 0x6c30f620,
-	0x261cb: 0x6cbfc620,
-	0x261d1: 0x6cb2d020, 0x261d3: 0x6c8ea420,
-	0x261e5: 0x6c6b3820, 0x261e7: 0x6c5c4020,
-	0x261eb: 0x6ccc7a20,
-	0x261f8: 0x6d34a620, 0x261f9: 0x6c00e620, 0x261fa: 0x6d074a20, 0x261fb: 0x6c0a7820,
-	0x261fd: 0x6d126820, 0x261fe: 0x6ca6d820, 0x261ff: 0x6d3a2e20,
-	// Block 0x988, offset 0x26200
-	0x26201: 0x6cdb4220, 0x26203: 0x6d010220,
-	0x26204: 0x6d241820, 0x26205: 0x6cc14820,
-	0x26208: 0x6d40e020, 0x26209: 0x6d341820, 0x2620a: 0x6d2ee420, 0x2620b: 0x6c94c420,
-	0x2620c: 0x6cf03020, 0x2620d: 0x6c1ce820, 0x2620e: 0x6c9d9620,
-	0x26210: 0x6c5f5e20, 0x26212: 0x6cdb4420, 0x26213: 0x6d12b620,
-	0x26214: 0x6cf7ac20, 0x26215: 0x6ce96420, 0x26216: 0x6c886c20, 0x26217: 0x6d082e20,
-	0x26219: 0x6cf52c20,
-	0x2621f: 0x6c990c20,
-	0x2622c: 0x6c538e20, 0x2622f: 0x6c94c620,
-	0x26230: 0x6c31ce20, 0x26231: 0x6c23ba20, 0x26232: 0x6c152e20, 0x26233: 0x6c92fc20,
-	0x26234: 0x6cdb4620,
-	// Block 0x989, offset 0x26240
-	0x26240: 0x6c94c820,
-	0x26246: 0x6d37d220, 0x26247: 0x6c847420,
-	0x26248: 0x6c3ae220, 0x2624a: 0x6c6e3820, 0x2624b: 0x6c7d2c20,
-	0x2624c: 0x6d18f420, 0x2624d: 0x6c576620, 0x2624e: 0x6c258020,
-	0x26250: 0x6d243c20, 0x26251: 0x6c083620, 0x26252: 0x6cea3020, 0x26253: 0x6cd58020,
-	0x26254: 0x6c27a220, 0x26255: 0x6cf38a20, 0x26256: 0x6c22ea20, 0x26257: 0x6ca95e20,
-	0x26258: 0x6c29a020, 0x26259: 0x6d40ee20, 0x2625a: 0x6c4e4220,
-	0x2625c: 0x6cb02e20, 0x2625d: 0x6c204620,
-	0x26260: 0x6c328620, 0x26261: 0x6cabe020,
-	0x26264: 0x6d39d620, 0x26266: 0x6d011620, 0x26267: 0x6d30ac20,
-	0x26268: 0x6cbcf420, 0x26269: 0x6d07dc20, 0x2626b: 0x6ccb0820,
-	// Block 0x98a, offset 0x26280
-	0x26280: 0x6c0a9620, 0x26282: 0x6c407c20,
-	0x26288: 0x6c86d820,
-	0x2628e: 0x6c359620,
-	0x26290: 0x6d126e20, 0x26291: 0x6cd58420, 0x26293: 0x6ccb8620,
-	0x26295: 0x6cb54a20, 0x26296: 0x6c4cf220, 0x26297: 0x6ccb8820,
-	0x26299: 0x6c408620, 0x2629a: 0x6c990e20,
-	0x2629c: 0x6c827620, 0x2629d: 0x6d2db420,
-	0x262a8: 0x6c14a620,
-	0x262ad: 0x6cf0fc20,
-	0x262bd: 0x6c827820, 0x262bf: 0x6d2b6c20,
-	// Block 0x98b, offset 0x262c0
-	0x262c0: 0x6d1c0e20, 0x262c1: 0x6c010220, 0x262c2: 0x6d005c20,
-	0x262c4: 0x6c0aaa20,
-	0x262cb: 0x6c155a20,
-	0x262ce: 0x6cb03620, 0x262cf: 0x6c23c220,
-	0x262d0: 0x6c8b6620, 0x262d1: 0x6cb69c20, 0x262d3: 0x6c62d420,
-	0x262d4: 0x6c6df220, 0x262d5: 0x6c302820, 0x262d6: 0x6c3a4620, 0x262d7: 0x6d159220,
-	0x262d8: 0x6ce97220,
-	0x262e8: 0x6c9bf620, 0x262e9: 0x6c11be20, 0x262ea: 0x6d0b3c20,
-	0x262f2: 0x6d103c20,
-	0x262f4: 0x6ce6a220,
-	0x262f8: 0x6d34be20, 0x262fa: 0x6d027c20, 0x262fb: 0x6c942220,
-	0x262fd: 0x6c875420, 0x262ff: 0x6c991620,
-	// Block 0x98c, offset 0x26300
-	0x26302: 0x6cfa1820,
-	0x26305: 0x6cda4420,
-	0x26316: 0x6cda6c20, 0x26317: 0x6d097e20,
-	0x2631d: 0x6c877a20, 0x2631e: 0x6d25d820,
-	0x26321: 0x6d2e4020, 0x26323: 0x6cdef220,
-	0x26324: 0x6d083a20, 0x26325: 0x6cf12020, 0x26326: 0x6d139620, 0x26327: 0x6cad1a20,
-	0x26328: 0x6c991820, 0x26329: 0x6ce3b620, 0x2632a: 0x6cb22a20,
-	0x2632c: 0x6c328e20, 0x2632d: 0x6cc0a820, 0x2632e: 0x6d162c20,
-	0x26333: 0x6ceb6020,
-	0x26334: 0x6c14aa20, 0x26337: 0x6c6d7620,
-	0x2633c: 0x6c35aa20,
-	// Block 0x98d, offset 0x26340
-	0x26343: 0x6c157420,
-	0x26344: 0x6d1c4420, 0x26345: 0x6c8dae20, 0x26347: 0x6cfc5e20,
-	0x26349: 0x6cb55a20, 0x2634b: 0x6d272220,
-	0x2634c: 0x6c94ce20, 0x2634d: 0x6d1cda20, 0x2634e: 0x6cc21a20,
-	0x26352: 0x6c3a7820, 0x26353: 0x6d3eca20,
-	0x26359: 0x6cbe6220,
-	0x2635d: 0x6ca94020, 0x2635e: 0x6cf13220, 0x2635f: 0x6cd6c220,
-	0x26361: 0x6c40a420,
-	0x26364: 0x6ca1aa20, 0x26365: 0x6ca1ac20, 0x26366: 0x6ceb6820, 0x26367: 0x6c14ae20,
-	0x26368: 0x6d2a1220,
-	0x2636e: 0x6c84da20, 0x2636f: 0x6c84e420,
-	0x26371: 0x6cfa2020, 0x26372: 0x6c733420,
-	0x26374: 0x6ca41a20, 0x26375: 0x6c9db420,
-	0x26378: 0x6c5a3e20, 0x2637a: 0x6cd6f620,
-	0x2637c: 0x6d066420, 0x2637f: 0x6c3a7a20,
-	// Block 0x98e, offset 0x26380
-	0x26381: 0x6d029420,
-	0x26386: 0x6cdefa20, 0x26387: 0x6d1e6a20,
-	0x26389: 0x6d2e4420,
-	0x26391: 0x6cbb3420, 0x26392: 0x6ca46a20,
-	0x26394: 0x6c8c9420,
-	0x26398: 0x6c948220, 0x26399: 0x6cfc6e20, 0x2639a: 0x6c3f2c20,
-	0x2639c: 0x6c8df820,
-	0x263a0: 0x6ccadc20, 0x263a2: 0x6c5ca620,
-	0x263a8: 0x6ce66020, 0x263aa: 0x6cbe7020,
-	0x263ac: 0x6c598a20, 0x263ae: 0x6c01b220,
-	0x263b5: 0x6c97c220, 0x263b7: 0x6ca6b220,
-	0x263bb: 0x6c4c8020,
-	0x263bc: 0x6cab8820, 0x263bf: 0x6cfe4620,
-	// Block 0x98f, offset 0x263c0
-	0x263c1: 0x6c6c5620,
-	0x263c6: 0x6d32f620,
-	0x263c8: 0x6ca2cc20, 0x263cb: 0x6cca5e20,
-	0x263cc: 0x6c56d020, 0x263ce: 0x6d40f020, 0x263cf: 0x6c5b7620,
-	0x263d2: 0x6c5f7420,
-	0x263d6: 0x6d138a20,
-	0x263e6: 0x6d03de20,
-	0x263e9: 0x6c7e6c20, 0x263ea: 0x6d232220, 0x263eb: 0x6c745820,
-	0x263f1: 0x6cd5da20, 0x263f2: 0x6d32d620,
-	0x263f4: 0x6d1e4e20, 0x263f6: 0x6c439c20,
-	0x263f8: 0x6c66ae20, 0x263f9: 0x6d034820,
-	0x263fc: 0x6c5aec20, 0x263ff: 0x6cd67820,
-	// Block 0x990, offset 0x26400
-	0x26402: 0x6c1cf020, 0x26403: 0x6c4f8a20,
-	0x26408: 0x6c8a6420,
-	0x2640d: 0x6c674a20, 0x2640f: 0x6c456c20,
-	0x26411: 0x6d3d3020,
-	0x26417: 0x6cb6de20,
-	0x2641c: 0x6cb8b820, 0x2641e: 0x6c30e220, 0x2641f: 0x6cb30220,
-	0x26422: 0x6c567a20,
-	0x26425: 0x6ca98c20, 0x26427: 0x6cb76420,
-	0x26428: 0x6c2db420, 0x26429: 0x6c2db620, 0x2642b: 0x6c85b220,
-	0x2642e: 0x6d046220,
-	0x2643d: 0x6ca2da20, 0x2643f: 0x6d32a620,
-	// Block 0x991, offset 0x26440
-	0x26440: 0x6c7e6e20, 0x26441: 0x6d35cc20, 0x26443: 0x6c35b220,
-	0x26444: 0x6c0e6620, 0x26445: 0x6cb30620, 0x26446: 0x6d058420, 0x26447: 0x6d1e7a20,
-	0x26448: 0x6c223c20, 0x26449: 0x6c85e220,
-	0x2644c: 0x6cad5820, 0x2644f: 0x6d053a20,
-	0x2645b: 0x6cb4a820,
-	0x2645d: 0x6c17e420, 0x2645e: 0x6cb78420,
-	0x26461: 0x6d177620, 0x26463: 0x6ce31c20,
-	0x26464: 0x6c348820, 0x26465: 0x6c8f9020, 0x26467: 0x6c668020,
-	0x2646d: 0x6d2e6020, 0x2646e: 0x6d261220,
-	0x26476: 0x6d210820,
-	0x26478: 0x6c44ca20, 0x2647a: 0x6c546c20,
-	0x2647e: 0x6cb6f820,
-	// Block 0x992, offset 0x26480
-	0x26480: 0x6ca28c20, 0x26481: 0x6c592a20, 0x26482: 0x6c906a20, 0x26483: 0x6cf89420,
-	0x26484: 0x6c356c20, 0x26485: 0x6c80fe20, 0x26486: 0x6c3aae20, 0x26487: 0x6ced2820,
-	0x26489: 0x6c259620, 0x2648b: 0x6caea420,
-	0x2648f: 0x6c262c20,
-	0x26490: 0x6cf22420,
-	0x264a1: 0x6c430620,
-	0x264a5: 0x6c254820,
-	0x264a8: 0x6cb7a620, 0x264a9: 0x6c83fe20, 0x264aa: 0x6cbcc820, 0x264ab: 0x6cba6020,
-	0x264ac: 0x6c798220, 0x264ad: 0x6c082220, 0x264af: 0x6cd46c20,
-	0x264b7: 0x6ceea220,
-	// Block 0x993, offset 0x264c0
-	0x264c4: 0x6cccf220,
-	0x264cf: 0x6d3e6e20,
-	0x264d2: 0x6ce40c20, 0x264d3: 0x6cb90e20,
-	0x264d4: 0x6c31ac20, 0x264d7: 0x6ce8dc20,
-	0x264da: 0x6ceeaa20,
-	0x264de: 0x6c558420, 0x264df: 0x6d038e20,
-	0x264e1: 0x6ccd0220, 0x264e2: 0x6d354a20,
-	0x264e7: 0x6c1bb820,
-	0x264f8: 0x6d394a20, 0x264f9: 0x6cf23620, 0x264fa: 0x6c1b4c20, 0x264fb: 0x6cdd9420,
-	0x264fc: 0x6d020220, 0x264fe: 0x6c78d220,
-	// Block 0x994, offset 0x26500
-	0x26501: 0x6ccca220, 0x26502: 0x6cd1f220, 0x26503: 0x6cd47820,
-	0x26505: 0x6c6bfc20,
-	0x26509: 0x6c431c20, 0x2650a: 0x6c93b220,
-	0x26514: 0x6d020420,
-	0x2651a: 0x6d354c20,
-	0x2651e: 0x6c978220,
-	0x26520: 0x6cd67420, 0x26521: 0x6c78da20, 0x26523: 0x6c2dfe20,
-	0x26524: 0x6d141a20, 0x26526: 0x6cdb2420, 0x26527: 0x6c206420,
-	0x26531: 0x6c256820, 0x26532: 0x6cebb220,
-	0x26535: 0x6d022020,
-	0x2653d: 0x6d082620,
-	// Block 0x995, offset 0x26540
-	0x26542: 0x6c51f420, 0x26543: 0x6c74ce20,
-	0x26546: 0x6ce43020, 0x26547: 0x6c3ada20,
-	0x26549: 0x6d355620, 0x2654a: 0x6cd3e820, 0x2654b: 0x6ce9c620,
-	0x2654e: 0x6c1cea20,
-	0x26550: 0x6ce43220, 0x26551: 0x6d2e8820, 0x26552: 0x6c527820,
-	0x26554: 0x6cc1de20, 0x26555: 0x6cef4220, 0x26557: 0x6c33ba20,
-	0x26558: 0x6c067220,
-	0x2655c: 0x6c8a2c20,
-	0x26564: 0x6cd83620,
-	0x2656a: 0x6c0c8420, 0x2656b: 0x6d023420,
-	0x2656c: 0x6c0cfc20, 0x2656e: 0x6c23d820,
-	0x26572: 0x6c72ac20, 0x26573: 0x6c518820,
-	0x26577: 0x6c7d3020,
-	0x26578: 0x6d1dc820,
-	// Block 0x996, offset 0x26580
-	0x26580: 0x6cd62220,
-	0x2658d: 0x6ca89a20, 0x2658f: 0x6d21da20,
-	0x26590: 0x6d3dca20, 0x26591: 0x6c9b8c20, 0x26592: 0x6c55f220,
-	0x26595: 0x6c8b6220,
-	0x2659d: 0x6c6a4020, 0x2659e: 0x6d048220,
-	0x265a3: 0x6d0e0020,
-	0x265a9: 0x6c6b7a20, 0x265aa: 0x6c7eb820, 0x265ab: 0x6cd62e20,
-	0x265ac: 0x6c6b7c20, 0x265ad: 0x6c828220,
-	0x265b0: 0x6d40fc20, 0x265b2: 0x6cd40420,
-	0x265b8: 0x6cef6c20, 0x265b9: 0x6c318620, 0x265ba: 0x6cdb6420,
-	// Block 0x997, offset 0x265c0
-	0x265c3: 0x6d012e20,
-	0x265c4: 0x6cc4f620,
-	0x265cc: 0x6c964e20,
-	0x265d1: 0x6cb96420,
-	0x265d8: 0x6ca48620, 0x265d9: 0x6c8dec20,
-	0x265dc: 0x6c630620,
-	0x265e0: 0x6ca03e20, 0x265e3: 0x6c476220,
-	0x265e8: 0x6d080c20,
-	0x265ec: 0x6d058e20,
-	0x265f1: 0x6c0f3620,
-	0x265fc: 0x6ceebc20,
-	// Block 0x998, offset 0x26600
-	0x26602: 0x6c7a6e20,
-	0x26606: 0x6cecf020,
-	0x26608: 0x6c143c20, 0x2660a: 0x6c996820, 0x2660b: 0x6c789a20,
-	0x2660e: 0x6c22c420,
-	0x26612: 0x6cfcbc20, 0x26613: 0x6ca11620,
-	0x2661a: 0x6c5cc420, 0x2661b: 0x6c162c20,
-	0x2661c: 0x6cd1c620, 0x2661d: 0x6d31dc20, 0x2661e: 0x6c364420, 0x2661f: 0x6c9c5a20,
-	0x26621: 0x6cd1c820, 0x26622: 0x6cc11420, 0x26623: 0x6cd4e420,
-	0x26625: 0x6c220420, 0x26626: 0x6d0d9420,
-	0x26629: 0x6c54dc20, 0x2662a: 0x6cb50220, 0x2662b: 0x6d366c20,
-	0x2662c: 0x6c599c20,
-	0x26634: 0x6d353820, 0x26636: 0x6d1fda20,
-	0x2663c: 0x6c435420, 0x2663d: 0x6d11c420, 0x2663e: 0x6cb3cc20,
-	// Block 0x999, offset 0x26640
-	0x26647: 0x6d153620,
-	0x26648: 0x6c1a8420, 0x26649: 0x6c625020, 0x2664b: 0x6c007420,
-	0x2664d: 0x6c308620, 0x2664f: 0x6cdc6220,
-	0x26651: 0x6c701c20,
-	0x26658: 0x6cb7c820, 0x26659: 0x6c884420, 0x2665a: 0x6d085620,
-	0x2665c: 0x6c8a7620,
-	0x26661: 0x6d285820, 0x26662: 0x6d085a20, 0x26663: 0x6c23e620,
-	0x26664: 0x6cb10020, 0x26666: 0x6c7c9c20,
-	0x26668: 0x6ce37a20, 0x26669: 0x6c58e020, 0x2666a: 0x6c280020, 0x2666b: 0x6c4b7820,
-	0x2666c: 0x6c188a20, 0x2666e: 0x6cce3c20, 0x2666f: 0x6c628620,
-	0x26674: 0x6c891c20, 0x26675: 0x6c76b620, 0x26676: 0x6cd17820,
-	0x26678: 0x6c30cc20, 0x26679: 0x6d1f8020, 0x2667a: 0x6cb66220,
-	0x2667c: 0x6cffc620,
-	// Block 0x99a, offset 0x26680
-	0x26682: 0x6d18f620, 0x26683: 0x6c90c420,
-	0x26686: 0x6c206a20,
-	0x2668b: 0x6c81e620,
-	0x2668c: 0x6c42ec20,
-	0x26690: 0x6d2ba220, 0x26692: 0x6cef6420,
-	0x26696: 0x6c653620,
-	0x2669b: 0x6d1c3220,
-	0x2669c: 0x6c38f420, 0x2669d: 0x6c877c20, 0x2669e: 0x6cb94e20,
-	0x266a2: 0x6d125420,
-	0x266a6: 0x6c7c5a20, 0x266a7: 0x6cef7a20,
-	0x266a9: 0x6cc42620,
-	0x266ac: 0x6cffca20, 0x266ad: 0x6cc42820,
-	0x266b0: 0x6c551820,
-	0x266b5: 0x6c342020, 0x266b6: 0x6c1f1e20,
-	0x266b9: 0x6ccfd620,
-	0x266bc: 0x6d3d5620, 0x266bd: 0x6c355e20, 0x266be: 0x6c61f820,
-	// Block 0x99b, offset 0x266c0
-	0x266c1: 0x6cdfde20, 0x266c3: 0x6cabc420,
-	0x266cb: 0x6c6be220,
-	0x266cc: 0x6cbc4220,
-	0x266d1: 0x6cb99620, 0x266d2: 0x6c724c20,
-	0x266d5: 0x6cc06e20, 0x266d6: 0x6ceb2220,
-	0x266da: 0x6caafa20, 0x266db: 0x6cd8c620,
-	0x266df: 0x6d14fe20,
-	0x266e1: 0x6c47a220, 0x266e2: 0x6c5d3220, 0x266e3: 0x6cabda20,
-	0x266e4: 0x6d3e5a20, 0x266e6: 0x6c685220,
-	0x266e9: 0x6cf80420, 0x266ea: 0x6cceb820,
-	0x266ec: 0x6d153820, 0x266ed: 0x6d369e20,
-	0x266f5: 0x6c952420, 0x266f7: 0x6d38a020,
-	0x266f8: 0x6c74a420, 0x266f9: 0x6ce00620, 0x266fa: 0x6cab0c20, 0x266fb: 0x6c728020,
-	0x266fc: 0x6c559c20, 0x266fe: 0x6d36c220,
-	// Block 0x99c, offset 0x26700
-	0x26703: 0x6c088820,
-	0x2670d: 0x6c1c7220, 0x2670e: 0x6d07d020, 0x2670f: 0x6c60b620,
-	0x26710: 0x6c48a020, 0x26711: 0x6c715e20, 0x26712: 0x6cf31620, 0x26713: 0x6ceb4a20,
-	0x26715: 0x6cc09820, 0x26716: 0x6ceebe20, 0x26717: 0x6c32a220,
-	0x26719: 0x6cd47c20, 0x2671b: 0x6d31fe20,
-	0x2671c: 0x6ca55420, 0x2671f: 0x6cf8f620,
-	0x26720: 0x6d30a420, 0x26721: 0x6d371620, 0x26723: 0x6ca2ea20,
-	0x26728: 0x6c650620,
-	0x2672e: 0x6d114e20, 0x2672f: 0x6c4c9820,
-	0x26732: 0x6c2c0820,
-	0x26734: 0x6c5e1c20, 0x26735: 0x6c6de220,
-	0x2673c: 0x6c74ec20, 0x2673d: 0x6d270820,
-	// Block 0x99d, offset 0x26740
-	0x26744: 0x6c60ee20, 0x26746: 0x6cdb5c20,
-	0x26748: 0x6c654020, 0x2674a: 0x6c7d9820, 0x2674b: 0x6cf33220,
-	0x2674c: 0x6c7c1e20, 0x2674d: 0x6c0c6020, 0x2674e: 0x6c751220,
-	0x26751: 0x6c0ad620, 0x26753: 0x6c157a20,
-	0x26755: 0x6d3ecc20, 0x26756: 0x6c87c220,
-	0x2675a: 0x6c3d0e20, 0x2675b: 0x6cb9f020,
-	0x2675c: 0x6d0d4020, 0x2675e: 0x6ce08c20, 0x2675f: 0x6ca0d820,
-	0x26763: 0x6c79e420,
-	0x26764: 0x6cf5d420,
-	0x2676e: 0x6c569220, 0x2676f: 0x6c569420,
-	0x26771: 0x6c3e7020,
-	0x26774: 0x6d104c20, 0x26775: 0x6c4cea20, 0x26777: 0x6cc57020,
-	0x26778: 0x6d1b4c20, 0x26779: 0x6c3c4420, 0x2677a: 0x6c75b620,
-	0x2677c: 0x6d27a620, 0x2677f: 0x6d0a8820,
-	// Block 0x99e, offset 0x26780
-	0x26781: 0x6cf87c20,
-	0x2678e: 0x6cf96220,
-	0x26791: 0x6c4f7620,
-	0x2679a: 0x6c569620,
-	0x2679d: 0x6c54d020, 0x2679e: 0x6cb4aa20, 0x2679f: 0x6c385020,
-	0x267a4: 0x6c636420, 0x267a7: 0x6d150420,
-	0x267ad: 0x6ceac820, 0x267ae: 0x6ca2e220,
-	0x267b8: 0x6d1a6a20, 0x267b9: 0x6d1b5a20,
-	// Block 0x99f, offset 0x267c0
-	0x267c3: 0x6c622a20,
-	0x267c4: 0x6cee5620, 0x267c5: 0x6cd3a420, 0x267c6: 0x6c330c20, 0x267c7: 0x6c34fc20,
-	0x267c9: 0x6ceb3020, 0x267ca: 0x6cebe620, 0x267cb: 0x6c863e20,
-	0x267cf: 0x6cc55220,
-	0x267d2: 0x6c22d020, 0x267d3: 0x6d070220,
-	0x267d4: 0x6d389020, 0x267d5: 0x6d3f5a20,
-	0x267dc: 0x6cee2a20, 0x267dd: 0x6d0b5820, 0x267df: 0x6c622c20,
-	0x267e0: 0x6c179e20,
-	0x267e9: 0x6c606020,
-	0x267f5: 0x6ccd5420, 0x267f6: 0x6ce8de20,
-	0x267f8: 0x6c0cf620, 0x267f9: 0x6cf8be20, 0x267fa: 0x6caf7e20, 0x267fb: 0x6d2cd420,
-	0x267fe: 0x6c5c0620,
-	// Block 0x9a0, offset 0x26800
-	0x26800: 0x6cdd3020, 0x26802: 0x6c51da20,
-	0x26804: 0x6d265220, 0x26806: 0x6cf37c20,
-	0x26808: 0x6c8d4020, 0x2680a: 0x6d2cd620, 0x2680b: 0x6c574a20,
-	0x26817: 0x6c151220,
-	0x2681f: 0x6c367620,
-	0x26821: 0x6c18e020,
-	0x26827: 0x6cdc6620,
-	0x26829: 0x6ce51420,
-	0x26830: 0x6d36c420, 0x26831: 0x6ce41620, 0x26832: 0x6c022e20, 0x26833: 0x6d3d9020,
-	0x26834: 0x6d3f6020, 0x26835: 0x6c783020, 0x26837: 0x6ccb4e20,
-	0x26838: 0x6ce4c220, 0x26839: 0x6c92b620,
-	0x2683e: 0x6ccd2620, 0x2683f: 0x6d2c9020,
-	// Block 0x9a1, offset 0x26840
-	0x26843: 0x6c1cde20,
-	0x26845: 0x6d0ea620,
-	0x26852: 0x6ca25420, 0x26853: 0x6c54fc20,
-	0x2685a: 0x6c1ad420,
-	0x2685d: 0x6cdb0a20,
-	0x26863: 0x6ca51420,
-	0x26866: 0x6c60b820, 0x26867: 0x6c346020,
-	0x26868: 0x6c547e20, 0x2686a: 0x6c23de20, 0x2686b: 0x6d2c0220,
-	0x2686c: 0x6d1a9c20, 0x2686e: 0x6cffbe20,
-	0x26870: 0x6c0bbc20, 0x26871: 0x6c085220, 0x26872: 0x6c7e9a20,
-	0x26874: 0x6c1ad820, 0x26876: 0x6cb87820,
-	0x26878: 0x6c015220, 0x26879: 0x6cd1fe20,
-	0x2687c: 0x6c1c7420,
-	// Block 0x9a2, offset 0x26880
-	0x26885: 0x6caa6a20, 0x26887: 0x6c628820,
-	0x26893: 0x6cab9220,
-	0x26895: 0x6cf97a20,
-	0x26898: 0x6c14a020, 0x2689a: 0x6c005620,
-	0x2689d: 0x6cd17c20, 0x2689e: 0x6c518220,
-	0x268a0: 0x6c60ca20, 0x268a1: 0x6c1ade20, 0x268a2: 0x6cf8fa20, 0x268a3: 0x6d32fe20,
-	0x268a6: 0x6cde0020,
-	0x268a8: 0x6c96e220, 0x268ab: 0x6caf9a20,
-	0x268ae: 0x6d05f220, 0x268af: 0x6cba2a20,
-	0x268b9: 0x6cfa4e20,
-	// Block 0x9a3, offset 0x268c0
-	0x268ca: 0x6d241a20,
-	0x268d1: 0x6c6b4620, 0x268d2: 0x6cfa5420, 0x268d3: 0x6c91ee20,
-	0x268d5: 0x6cbcf620, 0x268d7: 0x6c145220,
-	0x268db: 0x6d107020,
-	0x268dc: 0x6c62b020, 0x268dd: 0x6ccc3620, 0x268de: 0x6c912020,
-	0x268e0: 0x6c5f7620, 0x268e1: 0x6d373020, 0x268e2: 0x6cee5c20,
-	0x268e4: 0x6c0a9820, 0x268e5: 0x6c015820, 0x268e6: 0x6d142a20, 0x268e7: 0x6c015a20,
-	0x268ec: 0x6c847620,
-	0x268f9: 0x6cfaec20,
-	0x268fe: 0x6c703620, 0x268ff: 0x6ce08420,
-	// Block 0x9a4, offset 0x26900
-	0x26901: 0x6c507a20, 0x26902: 0x6c520620,
-	0x26905: 0x6d2c0620, 0x26906: 0x6d2e2e20, 0x26907: 0x6d191a20,
-	0x26908: 0x6cf91a20, 0x2690a: 0x6cf91c20, 0x2690b: 0x6c384420,
-	0x2690c: 0x6d0cf620, 0x2690f: 0x6ca25620,
-	0x26915: 0x6c474020,
-	0x2691e: 0x6d27d020,
-	0x26924: 0x6d384820, 0x26926: 0x6c160220, 0x26927: 0x6c208620,
-	0x26928: 0x6c5c8a20, 0x26929: 0x6d28d620, 0x2692a: 0x6c4c0820, 0x2692b: 0x6c661c20,
-	0x2692c: 0x6d0b3e20,
-	0x26930: 0x6cfe6820, 0x26931: 0x6c520820,
-	// Block 0x9a5, offset 0x26940
-	0x26943: 0x6c28e820,
-	0x26947: 0x6c9df020,
-	0x26948: 0x6ca93a20, 0x2694a: 0x6c9ba620,
-	0x2694c: 0x6c8b6e20, 0x2694d: 0x6d396a20, 0x2694e: 0x6cb42220, 0x2694f: 0x6cdf0a20,
-	0x26953: 0x6d1cd020,
-	0x26954: 0x6ce2cc20, 0x26955: 0x6c4ca220,
-	0x2695a: 0x6cbb3020,
-	0x2695c: 0x6c942420, 0x2695d: 0x6cc9b820, 0x2695e: 0x6c8b7020, 0x2695f: 0x6c1b6c20,
-	0x26960: 0x6d015020, 0x26963: 0x6c4ca820,
-	0x26964: 0x6c067e20, 0x26965: 0x6c964220, 0x26966: 0x6c73a420,
-	0x2696a: 0x6c36e820,
-	0x26973: 0x6c51a820,
-	0x26975: 0x6c9aba20,
-	0x26978: 0x6d028820, 0x26979: 0x6cb22c20, 0x2697b: 0x6c4dc420,
-	0x2697c: 0x6c194420, 0x2697d: 0x6ccdec20, 0x2697e: 0x6c5ca020,
-	// Block 0x9a6, offset 0x26980
-	0x26986: 0x6d1c4820,
-	0x26988: 0x6c663e20,
-	0x2698d: 0x6c016620,
-	0x26991: 0x6cdef420, 0x26992: 0x6d144220, 0x26993: 0x6ce9dc20,
-	0x26997: 0x6c8ef220,
-	0x26999: 0x6d425a20, 0x2699b: 0x6c84ec20,
-	0x2699d: 0x6cb23420, 0x2699e: 0x6d098420,
-	0x269a0: 0x6ca5a220, 0x269a1: 0x6c315820,
-	0x269a4: 0x6c806c20,
-	0x269aa: 0x6d2d5e20, 0x269ab: 0x6c73e620,
-	0x269ac: 0x6d314620, 0x269ad: 0x6c600c20, 0x269ae: 0x6cb8ce20,
-	0x269b0: 0x6c4da220, 0x269b1: 0x6c3b7220, 0x269b3: 0x6c4da420,
-	0x269b4: 0x6c535620, 0x269b5: 0x6c514620, 0x269b6: 0x6c541a20,
-	0x269ba: 0x6d2e7820, 0x269bb: 0x6c1dd420,
-	0x269bc: 0x6cdf7e20, 0x269bd: 0x6cba7820, 0x269bf: 0x6ccf7420,
-	// Block 0x9a7, offset 0x269c0
-	0x269c0: 0x6d1bee20, 0x269c3: 0x6cbd4020,
-	0x269c6: 0x6c5e0e20,
-	0x269c8: 0x6cf8fc20, 0x269c9: 0x6c51f820, 0x269ca: 0x6cf90820, 0x269cb: 0x6cf97e20,
-	0x269cc: 0x6c4fb620, 0x269cd: 0x6c81e820, 0x269cf: 0x6c870c20,
-	0x269d2: 0x6c19a220,
-	0x269d6: 0x6c760620, 0x269d7: 0x6cf76020,
-	0x269d8: 0x6c4e7620,
-	0x269de: 0x6c311620,
-	0x269e0: 0x6c30ae20, 0x269e1: 0x6cec9220,
-	0x269e4: 0x6c30b020, 0x269e5: 0x6d293820, 0x269e6: 0x6c737a20,
-	0x269e8: 0x6c90e620, 0x269e9: 0x6c1f6220, 0x269eb: 0x6d32ea20,
-	0x269ef: 0x6cb64420,
-	0x269f0: 0x6c770e20, 0x269f1: 0x6c5df420, 0x269f2: 0x6c7f2420,
-	0x269fa: 0x6c410620,
-	0x269fc: 0x6cd48220, 0x269fe: 0x6c301a20,
-	// Block 0x9a8, offset 0x26a00
-	0x26a03: 0x6c90c820,
-	0x26a04: 0x6ce93e20, 0x26a07: 0x6d21ca20,
-	0x26a08: 0x6cf52e20, 0x26a0a: 0x6ce4ce20,
-	0x26a12: 0x6c4c9e20,
-	0x26a18: 0x6ce04420, 0x26a19: 0x6cb6ae20,
-	0x26a20: 0x6c8b8020, 0x26a21: 0x6c87b420, 0x26a23: 0x6d09d020,
-	0x26a28: 0x6c452820, 0x26a29: 0x6ce63820, 0x26a2a: 0x6c4ea220, 0x26a2b: 0x6c1f2a20,
-	0x26a2d: 0x6cea4c20, 0x26a2f: 0x6d047a20,
-	0x26a30: 0x6d1f3020, 0x26a31: 0x6ca11820, 0x26a32: 0x6c1ba420,
-	0x26a34: 0x6c562020, 0x26a35: 0x6c317020, 0x26a37: 0x6ca24420,
-	0x26a39: 0x6ca34420, 0x26a3b: 0x6c8d0c20,
-	0x26a3f: 0x6c00ae20,
-	// Block 0x9a9, offset 0x26a40
-	0x26a40: 0x6cfab020,
-	0x26a44: 0x6c76e020, 0x26a45: 0x6cd8cc20, 0x26a46: 0x6cca0420,
-	0x26a4a: 0x6d180e20,
-	0x26a4f: 0x6d183c20,
-	0x26a50: 0x6d000020, 0x26a52: 0x6d340820, 0x26a53: 0x6c313020,
-	0x26a58: 0x6c973e20,
-	0x26a5c: 0x6c950a20, 0x26a5d: 0x6c74a820,
-	0x26a61: 0x6cbad620, 0x26a62: 0x6c8d4a20,
-	0x26a69: 0x6cb12c20, 0x26a6a: 0x6c23fc20, 0x26a6b: 0x6c351820,
-	0x26a6c: 0x6d229420,
-	0x26a70: 0x6d3d0a20, 0x26a72: 0x6cf8fe20, 0x26a73: 0x6c581620,
-	0x26a74: 0x6ca02020, 0x26a75: 0x6ce14420,
-	0x26a79: 0x6cb41820, 0x26a7b: 0x6c9da420,
-	0x26a7c: 0x6c979020, 0x26a7e: 0x6c48d420,
-	// Block 0x9aa, offset 0x26a80
-	0x26a80: 0x6cb93620, 0x26a82: 0x6c8bfa20, 0x26a83: 0x6c9fd620,
-	0x26a84: 0x6cf04e20, 0x26a85: 0x6c136820, 0x26a87: 0x6c56e220,
-	0x26a88: 0x6cdc0420, 0x26a8b: 0x6c72bc20,
-	0x26a8c: 0x6ccc8420, 0x26a8d: 0x6c9ba820,
-	0x26a97: 0x6cef7620,
-	0x26a98: 0x6cf75a20, 0x26a99: 0x6c8e2a20,
-	0x26a9c: 0x6c0ad820, 0x26a9d: 0x6cf13820,
-	0x26aa1: 0x6c85b420, 0x26aa2: 0x6d304420,
-	0x26aa4: 0x6d1df220, 0x26aa5: 0x6c554e20, 0x26aa6: 0x6cecda20, 0x26aa7: 0x6c034c20,
-	0x26aa8: 0x6c649220,
-	0x26aad: 0x6d426a20, 0x26aae: 0x6d2df220, 0x26aaf: 0x6c0e7a20,
-	0x26ab0: 0x6cbfb220, 0x26ab1: 0x6d0f5a20,
-	0x26ab4: 0x6c300620, 0x26ab5: 0x6cc19820,
-	0x26aba: 0x6caff820, 0x26abb: 0x6d2d2c20,
-	0x26abe: 0x6cccf420, 0x26abf: 0x6c46bc20,
-	// Block 0x9ab, offset 0x26ac0
-	0x26ac0: 0x6c0c9020, 0x26ac1: 0x6d152220, 0x26ac2: 0x6c3eaa20,
-	0x26ac4: 0x6d034020, 0x26ac5: 0x6cd3a620, 0x26ac6: 0x6ce6fc20,
-	0x26ac9: 0x6c2f6220,
-	0x26acc: 0x6ce86e20, 0x26acd: 0x6cfef620, 0x26ace: 0x6cf3e020, 0x26acf: 0x6cade420,
-	0x26ad0: 0x6c5ade20,
-	0x26ad5: 0x6c7f2220,
-	0x26ad9: 0x6cd8e220, 0x26ada: 0x6c250220, 0x26adb: 0x6ccc7220,
-	0x26adc: 0x6d38f020, 0x26add: 0x6d2fd820, 0x26ade: 0x6cef3220, 0x26adf: 0x6c7f2620,
-	0x26ae0: 0x6c0a3a20, 0x26ae3: 0x6c303e20,
-	0x26ae6: 0x6ca51620, 0x26ae7: 0x6d005420,
-	0x26ae8: 0x6cc54020, 0x26ae9: 0x6ce98e20, 0x26aea: 0x6cf0d820, 0x26aeb: 0x6d1f7020,
-	0x26aec: 0x6c9a2820, 0x26aed: 0x6d25b220, 0x26aee: 0x6d384220,
-	0x26af6: 0x6cd9ea20,
-	0x26af8: 0x6c474820, 0x26af9: 0x6ccee620, 0x26afb: 0x6d2f9220,
-	0x26afc: 0x6cb02820, 0x26aff: 0x6ce70820,
-	// Block 0x9ac, offset 0x26b00
-	0x26b01: 0x6c1ae220, 0x26b02: 0x6caedc20, 0x26b03: 0x6c153c20,
-	0x26b04: 0x6d1dca20, 0x26b05: 0x6cd6ea20, 0x26b07: 0x6cf48420,
-	0x26b09: 0x6cb03020, 0x26b0a: 0x6c596020,
-	0x26b0c: 0x6c3f1e20, 0x26b0e: 0x6c0c9620,
-	0x26b13: 0x6ca4d020,
-	0x26b15: 0x6c0c9820, 0x26b16: 0x6cf11420, 0x26b17: 0x6d1dd620,
-	0x26b19: 0x6ca52620, 0x26b1a: 0x6c48fe20,
-	0x26b20: 0x6c879220, 0x26b22: 0x6d035e20, 0x26b23: 0x6d0d2220,
-	0x26b24: 0x6cb37420, 0x26b25: 0x6cadca20,
-	0x26b2a: 0x6cdd5c20,
-	0x26b2c: 0x6cc5e220, 0x26b2d: 0x6ccd3a20,
-	0x26b32: 0x6cdd5e20,
-	0x26b38: 0x6c27d620, 0x26b3a: 0x6c9af020,
-	// Block 0x9ad, offset 0x26b40
-	0x26b43: 0x6cd44820,
-	0x26b48: 0x6c46a620, 0x26b4a: 0x6c4da620, 0x26b4b: 0x6cd39020,
-	0x26b4c: 0x6d102020, 0x26b4e: 0x6c479620,
-	0x26b5b: 0x6c77fe20,
-	0x26b5e: 0x6c709c20,
-	0x26b60: 0x6cac2e20, 0x26b61: 0x6c12f820, 0x26b62: 0x6c05b220, 0x26b63: 0x6d047020,
-	0x26b64: 0x6c111420, 0x26b67: 0x6c8c2420,
-	0x26b68: 0x6c00b020,
-	0x26b6c: 0x6c9d6220, 0x26b6d: 0x6c7f3e20,
-	0x26b71: 0x6cfee020, 0x26b73: 0x6ccf1e20,
-	0x26b7b: 0x6c5d7c20,
-	0x26b7c: 0x6ca6b420,
-	// Block 0x9ae, offset 0x26b80
-	0x26b84: 0x6d335620, 0x26b86: 0x6c8c5c20, 0x26b87: 0x6d2c4420,
-	0x26b8a: 0x6d27be20,
-	0x26b8d: 0x6d071c20,
-	0x26b94: 0x6c1a2a20, 0x26b95: 0x6cf2c020, 0x26b96: 0x6cf68620,
-	0x26b99: 0x6c074820,
-	0x26b9c: 0x6cce1c20,
-	0x26ba0: 0x6d23d020, 0x26ba1: 0x6c9d8020,
-	0x26bb2: 0x6c32b020,
-	0x26bb5: 0x6c144a20, 0x26bb7: 0x6d2b0820,
-	0x26bb8: 0x6c1a8820, 0x26bba: 0x6ce69220,
-	// Block 0x9af, offset 0x26bc0
-	0x26bc5: 0x6d157020,
-	0x26bcb: 0x6d10ba20,
-	0x26bce: 0x6c7a6620,
-	0x26bd0: 0x6c3b9c20, 0x26bd1: 0x6d010420, 0x26bd2: 0x6c1a8a20,
-	0x26bdb: 0x6c7d2420,
-	0x26bdf: 0x6c0d6220,
-	0x26be1: 0x6c90cc20,
-	0x26be5: 0x6d18fa20, 0x26be6: 0x6c9da620, 0x26be7: 0x6d024620,
-	0x26bf1: 0x6c4a9c20, 0x26bf3: 0x6c955e20,
-	0x26bf6: 0x6ccdce20,
-	0x26bfe: 0x6c717a20, 0x26bff: 0x6c318420,
-	// Block 0x9b0, offset 0x26c00
-	0x26c02: 0x6cfaf220,
-	0x26c05: 0x6d356020,
-	0x26c08: 0x6c0d9020,
-	0x26c15: 0x6d356220, 0x26c16: 0x6d3bfa20, 0x26c17: 0x6d092a20,
-	0x26c18: 0x6c893020, 0x26c19: 0x6cdcb220,
-	0x26c26: 0x6c808c20, 0x26c27: 0x6c72cc20,
-	0x26c28: 0x6c9df220, 0x26c29: 0x6d0ab420, 0x26c2a: 0x6d2ea020, 0x26c2b: 0x6c4c0c20,
-	0x26c32: 0x6d376820,
-	0x26c3d: 0x6cf12c20, 0x26c3e: 0x6cc36a20, 0x26c3f: 0x6c14ac20,
-	// Block 0x9b1, offset 0x26c40
-	0x26c48: 0x6cc63020, 0x26c4a: 0x6d272820,
-	0x26c4c: 0x6d3ece20,
-	0x26c50: 0x6c965420, 0x26c51: 0x6c4b3620, 0x26c53: 0x6c19f420,
-	0x26c55: 0x6c709e20, 0x26c56: 0x6ce4fe20, 0x26c57: 0x6ced9820,
-	0x26c5b: 0x6d33d820,
-	0x26c5e: 0x6ca42c20,
-	0x26c63: 0x6c4db420,
-	0x26c68: 0x6cf6b020, 0x26c69: 0x6c8bd420,
-	0x26c6c: 0x6d0c2e20, 0x26c6d: 0x6d074220,
-	0x26c72: 0x6c56d220, 0x26c73: 0x6c423620,
-	0x26c74: 0x6d074c20, 0x26c76: 0x6cf90a20,
-	0x26c7a: 0x6c258420,
-	0x26c7d: 0x6cf92a20, 0x26c7e: 0x6c560220,
-	// Block 0x9b2, offset 0x26c80
-	0x26c85: 0x6d0c4c20,
-	0x26c8e: 0x6d170e20, 0x26c8f: 0x6c1b1a20,
-	0x26c90: 0x6c741c20, 0x26c92: 0x6d40b220,
-	0x26c9c: 0x6c699420, 0x26c9d: 0x6d178220, 0x26c9f: 0x6ce05e20,
-	0x26ca0: 0x6c1c1420, 0x26ca1: 0x6c037a20, 0x26ca2: 0x6ce82820, 0x26ca3: 0x6d3f7a20,
-	0x26ca4: 0x6cc05420, 0x26ca7: 0x6c1c1620,
-	0x26ca8: 0x6cf7e020,
-	0x26cb0: 0x6ca69c20, 0x26cb2: 0x6c241420,
-	0x26cb4: 0x6cf44820, 0x26cb6: 0x6c1f4820, 0x26cb7: 0x6cda4e20,
-	0x26cb8: 0x6d1df820, 0x26cb9: 0x6c71bc20, 0x26cba: 0x6c037e20,
-	0x26cbc: 0x6c229c20, 0x26cbd: 0x6c2c6420, 0x26cbe: 0x6cac9820, 0x26cbf: 0x6c1c2620,
-	// Block 0x9b3, offset 0x26cc0
-	0x26cc1: 0x6cc0ac20, 0x26cc3: 0x6d0ca420,
-	0x26ccd: 0x6d2d2e20,
-	0x26cd2: 0x6cfce220, 0x26cd3: 0x6c084620,
-	0x26cd4: 0x6c7ba620, 0x26cd5: 0x6cb7a820, 0x26cd6: 0x6d389220, 0x26cd7: 0x6c713820,
-	0x26cd8: 0x6cbcca20, 0x26cd9: 0x6ca13420, 0x26cda: 0x6d258c20,
-	0x26cdc: 0x6c4b5820, 0x26cdd: 0x6d417220,
-	0x26ce7: 0x6cbccc20,
-	0x26cf0: 0x6c558a20, 0x26cf1: 0x6cc08820, 0x26cf2: 0x6c4d2220, 0x26cf3: 0x6c402c20,
-	0x26cf4: 0x6c812a20, 0x26cf5: 0x6ccc6c20, 0x26cf6: 0x6cf68820, 0x26cf7: 0x6c101c20,
-	0x26cf8: 0x6cd3ba20, 0x26cf9: 0x6d1e5220, 0x26cfa: 0x6c49f020,
-	0x26cfc: 0x6ca85420, 0x26cff: 0x6c545820,
-	// Block 0x9b4, offset 0x26d00
-	0x26d0a: 0x6c9d7220,
-	0x26d0e: 0x6c369420, 0x26d0f: 0x6cfb8a20,
-	0x26d10: 0x6d280020, 0x26d11: 0x6d073220, 0x26d12: 0x6cbde420, 0x26d13: 0x6c301220,
-	0x26d14: 0x6c838220, 0x26d15: 0x6cb7ca20, 0x26d16: 0x6c7fb020, 0x26d17: 0x6c3ee420,
-	0x26d18: 0x6cb71420, 0x26d19: 0x6c1d3e20,
-	0x26d1c: 0x6c245c20, 0x26d1f: 0x6ca16620,
-	0x26d20: 0x6c06b820,
-	0x26d24: 0x6c2a2e20,
-	0x26d28: 0x6c6b3a20, 0x26d29: 0x6c1d5c20, 0x26d2a: 0x6c1c7620, 0x26d2b: 0x6d23f820,
-	0x26d2c: 0x6c24ee20, 0x26d2d: 0x6cdb2620, 0x26d2e: 0x6ce42420, 0x26d2f: 0x6cd61020,
-	0x26d30: 0x6d2c4c20, 0x26d31: 0x6c3ef820, 0x26d33: 0x6c184620,
-	0x26d34: 0x6c3d0c20, 0x26d35: 0x6c543220, 0x26d36: 0x6d2c4e20,
-	// Block 0x9b5, offset 0x26d40
-	0x26d44: 0x6c6b3c20, 0x26d45: 0x6d2c5020, 0x26d46: 0x6d2d9c20,
-	0x26d49: 0x6d0dde20, 0x26d4a: 0x6c4d3020, 0x26d4b: 0x6cf48220,
-	0x26d4c: 0x6c576220, 0x26d4d: 0x6c2cde20, 0x26d4e: 0x6d115420, 0x26d4f: 0x6cd9ec20,
-	0x26d50: 0x6cb92c20, 0x26d51: 0x6c60cc20, 0x26d52: 0x6d04aa20, 0x26d53: 0x6cb7f020,
-	0x26d54: 0x6c758420, 0x26d56: 0x6c4d3220,
-	0x26d5e: 0x6d0dee20, 0x26d5f: 0x6c6b6820,
-	0x26d60: 0x6c24f420, 0x26d62: 0x6ce96a20, 0x26d63: 0x6d2ee620,
-	0x26d64: 0x6cb16c20, 0x26d65: 0x6c930e20, 0x26d66: 0x6d342020, 0x26d67: 0x6c1f8820,
-	0x26d68: 0x6c9da820, 0x26d69: 0x6cbaec20, 0x26d6b: 0x6c892420,
-	0x26d72: 0x6c86dc20,
-	0x26d76: 0x6c359a20, 0x26d77: 0x6cdb5820,
-	0x26d78: 0x6c74f020, 0x26d7b: 0x6c717c20,
-	0x26d7c: 0x6ce03a20, 0x26d7d: 0x6c8a4820, 0x26d7e: 0x6cca0a20, 0x26d7f: 0x6c309220,
-	// Block 0x9b6, offset 0x26d80
-	0x26d81: 0x6d28d420, 0x26d82: 0x6d34b220,
-	0x26d86: 0x6d08ca20, 0x26d87: 0x6c8d8620,
-	0x26d8a: 0x6c2abe20,
-	0x26d8d: 0x6d2dbe20, 0x26d8e: 0x6d07f020, 0x26d8f: 0x6cbdf220,
-	0x26d90: 0x6c69da20, 0x26d91: 0x6cb0da20,
-	0x26d94: 0x6c4e6e20,
-	0x26d9a: 0x6d21f220, 0x26d9b: 0x6c4ca420,
-	0x26d9d: 0x6d0a5420,
-	0x26da0: 0x6d0a5620, 0x26da1: 0x6c156c20, 0x26da2: 0x6c6b8020, 0x26da3: 0x6c719420,
-	0x26da4: 0x6d0e1820, 0x26da5: 0x6c31f620, 0x26da7: 0x6c53e020,
-	0x26da8: 0x6cfd4a20, 0x26da9: 0x6d0a5820,
-	0x26dae: 0x6c8db020, 0x26daf: 0x6c6b8620,
-	0x26db0: 0x6d197e20, 0x26db1: 0x6cc22a20, 0x26db2: 0x6c41c020, 0x26db3: 0x6c3c8c20,
-	0x26db5: 0x6c753820, 0x26db6: 0x6cc16e20,
-	0x26dbb: 0x6c6fe020,
-	0x26dbd: 0x6c61ba20, 0x26dbe: 0x6c612c20,
-	// Block 0x9b7, offset 0x26dc0
-	0x26dc5: 0x6cf77420, 0x26dc6: 0x6cacd220,
-	0x26dc8: 0x6c7bf020, 0x26dc9: 0x6c7a8e20, 0x26dcb: 0x6c7a9020,
-	0x26dcc: 0x6d2cbe20, 0x26dcf: 0x6c03b220,
-	0x26dd2: 0x6c190220, 0x26dd3: 0x6c569820,
-	0x26dd4: 0x6caa6220, 0x26dd5: 0x6c356220, 0x26dd6: 0x6d046a20, 0x26dd7: 0x6c33ce20,
-	0x26dd8: 0x6cd10020, 0x26dd9: 0x6cecdc20, 0x26dda: 0x6c3b2e20,
-	0x26ddd: 0x6cf60420, 0x26dde: 0x6d3e2e20,
-	0x26de0: 0x6c569a20,
-	0x26de5: 0x6c0cea20, 0x26de7: 0x6ceba620,
-	0x26de8: 0x6c04cc20, 0x26de9: 0x6c43e420, 0x26deb: 0x6c77f620,
-	0x26df2: 0x6d3c8c20, 0x26df3: 0x6c3e9220,
-	0x26df4: 0x6ca12020, 0x26df5: 0x6c63c620, 0x26df6: 0x6ceb2620, 0x26df7: 0x6d235a20,
-	0x26df9: 0x6ca24620, 0x26dfa: 0x6c745e20, 0x26dfb: 0x6c712820,
-	0x26dfc: 0x6c486220, 0x26dfd: 0x6cb35a20,
-	// Block 0x9b8, offset 0x26e00
-	0x26e00: 0x6ca63c20,
-	0x26e04: 0x6cec1e20, 0x26e05: 0x6d0d9620,
-	0x26e14: 0x6c1e2c20, 0x26e15: 0x6c7ba820, 0x26e16: 0x6c4d7020,
-	0x26e18: 0x6cfdd020, 0x26e19: 0x6cf65c20, 0x26e1b: 0x6c25a820,
-	0x26e1c: 0x6ce6fe20, 0x26e1d: 0x6cc92420, 0x26e1f: 0x6c345820,
-	0x26e20: 0x6c182a20,
-	0x26e24: 0x6c833820, 0x26e25: 0x6d3e6420, 0x26e27: 0x6d332420,
-	0x26e28: 0x6d426c20, 0x26e2b: 0x6c773020,
-	0x26e2c: 0x6d293a20, 0x26e2e: 0x6d250020, 0x26e2f: 0x6cbf4620,
-	0x26e33: 0x6c381820,
-	0x26e34: 0x6d0a2220, 0x26e36: 0x6c622e20,
-	0x26e38: 0x6c13a620,
-	// Block 0x9b9, offset 0x26e40
-	0x26e40: 0x6cd4fe20, 0x26e41: 0x6d08a820, 0x26e42: 0x6d00d220, 0x26e43: 0x6ce2f820,
-	0x26e44: 0x6c4ef220, 0x26e45: 0x6cfac020, 0x26e46: 0x6ccd0420, 0x26e47: 0x6cea8c20,
-	0x26e48: 0x6c4f8420, 0x26e49: 0x6c7dbc20, 0x26e4a: 0x6c133620, 0x26e4b: 0x6c30bc20,
-	0x26e4c: 0x6caac620, 0x26e4d: 0x6d0e9a20, 0x26e4e: 0x6c1a2c20, 0x26e4f: 0x6cb40a20,
-	0x26e50: 0x6cb7ba20, 0x26e51: 0x6d26d420, 0x26e52: 0x6c3d8c20,
-	0x26e57: 0x6ce6dc20,
-	0x26e5f: 0x6cf2c220,
-	0x26e60: 0x6cd11220, 0x26e61: 0x6ceb8c20,
-	0x26e74: 0x6ce06a20, 0x26e76: 0x6d0b6020, 0x26e77: 0x6d36ca20,
-	0x26e78: 0x6c92be20, 0x26e79: 0x6d0dd020, 0x26e7a: 0x6c70c220,
-	0x26e7d: 0x6c2a8020, 0x26e7f: 0x6c1f7020,
-	// Block 0x9ba, offset 0x26e80
-	0x26e80: 0x6d412620, 0x26e81: 0x6c369620, 0x26e82: 0x6d349620, 0x26e83: 0x6caec020,
-	0x26e85: 0x6c0cbe20, 0x26e87: 0x6c2c0220,
-	0x26e90: 0x6c7f2820, 0x26e92: 0x6d133020,
-	0x26e9c: 0x6c4fe620, 0x26e9d: 0x6cac7420, 0x26e9e: 0x6ce0ae20, 0x26e9f: 0x6c774a20,
-	0x26ea0: 0x6d05ea20, 0x26ea1: 0x6d408e20, 0x26ea2: 0x6c628c20, 0x26ea3: 0x6cf52620,
-	0x26ea6: 0x6c204020,
-	0x26ea9: 0x6cb3a420, 0x26eaa: 0x6d0dd620, 0x26eab: 0x6cebb420,
-	0x26ead: 0x6c31b820, 0x26eaf: 0x6cb13020,
-	0x26eb0: 0x6c1c7820, 0x26eb1: 0x6c5d4420, 0x26eb2: 0x6cb26820,
-	0x26eb4: 0x6c235c20, 0x26eb5: 0x6d2c9620,
-	0x26eba: 0x6cec9e20,
-	0x26ebf: 0x6cec6620,
-	// Block 0x9bb, offset 0x26ec0
-	0x26ec3: 0x6c36ae20,
-	0x26ec4: 0x6cf0da20, 0x26ec5: 0x6c040420, 0x26ec7: 0x6c678020,
-	0x26ed3: 0x6c140a20,
-	0x26ed5: 0x6c1f8220, 0x26ed6: 0x6c7af220, 0x26ed7: 0x6ce2bc20,
-	0x26ed8: 0x6d406a20, 0x26ed9: 0x6c86ac20, 0x26eda: 0x6cdeb220, 0x26edb: 0x6cc9a420,
-	0x26ede: 0x6cac7a20, 0x26edf: 0x6cac7c20,
-	0x26ee3: 0x6ccb0020,
-	0x26ee4: 0x6cbbba20,
-	0x26eed: 0x6d40e220, 0x26eef: 0x6d371820,
-	0x26ef0: 0x6d0de020, 0x26ef2: 0x6c6b4820, 0x26ef3: 0x6ca5aa20,
-	// Block 0x9bc, offset 0x26f00
-	0x26f04: 0x6c944420, 0x26f05: 0x6cc15220, 0x26f07: 0x6c2af220,
-	0x26f08: 0x6c897620, 0x26f09: 0x6c15f220, 0x26f0a: 0x6cbcf820, 0x26f0b: 0x6c912220,
-	0x26f0c: 0x6c2efe20, 0x26f0d: 0x6c24f620,
-	0x26f10: 0x6c615c20, 0x26f13: 0x6c178420,
-	0x26f14: 0x6cd69a20, 0x26f15: 0x6d40f220, 0x26f17: 0x6c775a20,
-	0x26f1a: 0x6cbaf020, 0x26f1b: 0x6c847820,
-	0x26f2e: 0x6cd65e20, 0x26f2f: 0x6d243e20,
-	0x26f30: 0x6d2ee820, 0x26f31: 0x6c82f220,
-	// Block 0x9bd, offset 0x26f40
-	0x26f45: 0x6cb33e20,
-	0x26f4a: 0x6d30b620, 0x26f4b: 0x6d001e20,
-	0x26f4d: 0x6ce08620, 0x26f4e: 0x6c258620, 0x26f4f: 0x6c7fdc20,
-	0x26f51: 0x6d060220, 0x26f52: 0x6cd62820, 0x26f53: 0x6d2c9c20,
-	0x26f54: 0x6c11ba20, 0x26f57: 0x6c08fe20,
-	0x26f58: 0x6caf1c20,
-	0x26f5d: 0x6c1a5620,
-	0x26f63: 0x6cbc0c20,
-	0x26f64: 0x6c5f8620,
-	0x26f6a: 0x6d2d0420,
-	0x26f6c: 0x6c7fde20,
-	// Block 0x9be, offset 0x26f80
-	0x26f81: 0x6ce52820, 0x26f82: 0x6cc9b020, 0x26f83: 0x6c6c6e20,
-	0x26f84: 0x6d3b4020, 0x26f85: 0x6c352220, 0x26f87: 0x6c145620,
-	0x26f88: 0x6c73a020, 0x26f89: 0x6ce16220, 0x26f8a: 0x6c086420,
-	0x26f8c: 0x6c38e820, 0x26f8d: 0x6c8b6820, 0x26f8e: 0x6d2b6e20, 0x26f8f: 0x6cdcb420,
-	0x26f99: 0x6ccb8c20,
-	0x26fa7: 0x6d375c20,
-	0x26fa8: 0x6ce9d420, 0x26faa: 0x6cbe5e20,
-	0x26fac: 0x6c21e620,
-	0x26fb0: 0x6cdee620, 0x26fb1: 0x6c0e3c20, 0x26fb2: 0x6cf1f620,
-	0x26fb5: 0x6cb36220,
-	0x26fbd: 0x6ca09a20, 0x26fbe: 0x6c10e420,
-	// Block 0x9bf, offset 0x26fc0
-	0x26fc1: 0x6c7c2020, 0x26fc3: 0x6c260220,
-	0x26fc4: 0x6cc54420, 0x26fc5: 0x6c068020, 0x26fc6: 0x6c7f8020,
-	0x26fcd: 0x6ca75220, 0x26fce: 0x6c84c220,
-	0x26fd5: 0x6c697220, 0x26fd6: 0x6c919e20, 0x26fd7: 0x6c879620,
-	0x26fd8: 0x6c900820, 0x26fd9: 0x6c4baa20,
-	0x26fdd: 0x6c161c20,
-	0x26fe4: 0x6cfb1820, 0x26fe6: 0x6c165620,
-	0x26fe8: 0x6d029020, 0x26fe9: 0x6d2ea820,
-	0x26fef: 0x6cd6c620,
-	0x26ffb: 0x6c9d1220,
-	0x26ffc: 0x6c947420, 0x26ffd: 0x6c965620,
-	// Block 0x9c0, offset 0x27000
-	0x27000: 0x6c2d0220,
-	0x27008: 0x6c2f2820, 0x2700a: 0x6cecb220, 0x2700b: 0x6d274620,
-	0x2700c: 0x6c948620, 0x2700e: 0x6c948a20,
-	0x27013: 0x6c837220,
-	0x27015: 0x6cec6020, 0x27016: 0x6c2f3e20, 0x27017: 0x6ca59620,
-	0x27018: 0x6cceb220, 0x27019: 0x6d019e20, 0x2701a: 0x6cafe820,
-	0x27025: 0x6c98dc20, 0x27027: 0x6d1ade20,
-	0x27029: 0x6c0f0a20, 0x2702b: 0x6d3b0220,
-	0x2702e: 0x6c1cc820,
-	0x27036: 0x6ca24820, 0x27037: 0x6ceb2820,
-	0x27039: 0x6ce7be20, 0x2703a: 0x6d128820,
-	// Block 0x9c1, offset 0x27040
-	0x27041: 0x6c5a7220, 0x27043: 0x6cc60020,
-	0x27045: 0x6d130620,
-	0x2704b: 0x6ceb3a20,
-	0x27056: 0x6d413a20, 0x27057: 0x6d23d220,
-	0x2705a: 0x6c000c20,
-	0x2705c: 0x6d38a420, 0x2705d: 0x6cec9c20,
-	0x27061: 0x6c34ae20, 0x27062: 0x6d384420, 0x27063: 0x6c4cfc20,
-	0x27064: 0x6c5a0420, 0x27065: 0x6c9e6220,
-	0x27069: 0x6c211a20, 0x2706a: 0x6cbce420, 0x2706b: 0x6c45b220,
-	0x2706c: 0x6ce69420, 0x2706d: 0x6c9a2a20,
-	0x27071: 0x6ce1a420,
-	0x27074: 0x6cc6c420, 0x27077: 0x6cc6c620,
-	0x27078: 0x6cb66420, 0x27079: 0x6c4c9a20,
-	0x2707d: 0x6cfe6220, 0x2707e: 0x6ce4ca20,
-	// Block 0x9c2, offset 0x27080
-	0x27085: 0x6cff4020,
-	0x27088: 0x6d2db620, 0x27089: 0x6c258820,
-	0x27094: 0x6c7ffc20,
-	0x27098: 0x6cd02e20, 0x2709a: 0x6c830e20, 0x2709b: 0x6c879820,
-	0x2709d: 0x6c14e620, 0x2709e: 0x6ca8d020, 0x2709f: 0x6c947620,
-	0x270a1: 0x6ce63a20, 0x270a2: 0x6c5ba620,
-	0x270a7: 0x6c458020,
-	0x270b0: 0x6cb77220, 0x270b1: 0x6d20fa20, 0x270b3: 0x6d02d220,
-	0x270b8: 0x6d26ae20, 0x270b9: 0x6c034e20, 0x270ba: 0x6c276a20, 0x270bb: 0x6c5eba20,
-	0x270bc: 0x6d089220, 0x270bf: 0x6c743c20,
-	// Block 0x9c3, offset 0x270c0
-	0x270c0: 0x6ca99420,
-	0x270c8: 0x6c325220, 0x270c9: 0x6c602620,
-	0x270d0: 0x6cabc820, 0x270d1: 0x6c45f020, 0x270d2: 0x6c07ba20,
-	0x270d4: 0x6c794220, 0x270d5: 0x6d105020, 0x270d6: 0x6c8f0820, 0x270d7: 0x6ca5ee20,
-	0x270d8: 0x6d2cca20, 0x270d9: 0x6d1b5c20, 0x270da: 0x6ca72820, 0x270db: 0x6cad9020,
-	0x270dd: 0x6c458e20, 0x270de: 0x6c109e20, 0x270df: 0x6c512e20,
-	0x270e0: 0x6cc71220, 0x270e1: 0x6c4b5020,
-	0x270e5: 0x6c09b620, 0x270e6: 0x6cf63020, 0x270e7: 0x6c712a20,
-	0x270e8: 0x6c5cf420, 0x270e9: 0x6c09e420, 0x270eb: 0x6ce56420,
-	0x270ec: 0x6d332820, 0x270ef: 0x6d181020,
-	0x270f0: 0x6c22d220, 0x270f2: 0x6c0e2620,
-	0x270f7: 0x6c459c20,
-	0x270fa: 0x6c381a20,
-	0x270fd: 0x6d0fce20, 0x270fe: 0x6d064820,
-	// Block 0x9c4, offset 0x27100
-	0x27101: 0x6c52b620,
-	0x27104: 0x6d2a0a20, 0x27105: 0x6c148420, 0x27106: 0x6c537620,
-	0x27108: 0x6ce4b820,
-	0x2710c: 0x6d340a20, 0x2710d: 0x6d039220, 0x2710e: 0x6d062220,
-	0x27111: 0x6d325820,
-	0x27114: 0x6ced4020,
-	0x27118: 0x6c75dc20,
-	0x2711d: 0x6cf30c20,
-	0x27120: 0x6c92c220, 0x27122: 0x6d32f220, 0x27123: 0x6cc71a20,
-	0x27124: 0x6c1a3c20, 0x27125: 0x6c3ee620, 0x27127: 0x6c369820,
-	0x27128: 0x6ce1e620, 0x27129: 0x6ce12e20, 0x2712b: 0x6c730020,
-	0x2712c: 0x6c17c020, 0x2712d: 0x6cde9620, 0x2712e: 0x6c2c0420,
-	0x27130: 0x6d3fc020, 0x27133: 0x6c794c20,
-	0x27134: 0x6ce99820, 0x27136: 0x6c794e20,
-	// Block 0x9c5, offset 0x27140
-	0x27145: 0x6cc71c20, 0x27146: 0x6d276420, 0x27147: 0x6c517a20,
-	0x27148: 0x6d400820, 0x27149: 0x6c235e20, 0x2714a: 0x6cbfcc20,
-	0x2714e: 0x6ca2b420, 0x2714f: 0x6c346420,
-	0x27150: 0x6d065a20, 0x27151: 0x6c795620, 0x27152: 0x6cfd1220,
-	0x2715b: 0x6c31ba20,
-	0x2715c: 0x6c76ee20, 0x2715e: 0x6d1bf020,
-	0x27162: 0x6d3e9620,
-	0x27167: 0x6c5a0620,
-	0x27169: 0x6caed020, 0x2716b: 0x6c86ae20,
-	0x2716d: 0x6c0f8220, 0x2716e: 0x6c444420, 0x2716f: 0x6c716620,
-	0x27170: 0x6c783420, 0x27172: 0x6c55ce20, 0x27173: 0x6d115820,
-	0x27174: 0x6ce14820, 0x27176: 0x6cbf7020, 0x27177: 0x6cc72820,
-	0x27178: 0x6c8f1e20, 0x27179: 0x6c5c5e20, 0x2717a: 0x6c5f6220,
-	// Block 0x9c6, offset 0x27180
-	0x27189: 0x6d371a20, 0x2718b: 0x6ce15220,
-	0x2718c: 0x6d355c20, 0x2718d: 0x6c775e20,
-	0x27194: 0x6d107220, 0x27196: 0x6ce18420, 0x27197: 0x6c52d820,
-	0x2719b: 0x6c897820,
-	0x2719d: 0x6c12a020,
-	0x271a1: 0x6ca3aa20, 0x271a2: 0x6d400e20,
-	0x271a4: 0x6c2af420, 0x271a6: 0x6c68a220, 0x271a7: 0x6caeec20,
-	0x271a9: 0x6c49fa20, 0x271aa: 0x6c377420, 0x271ab: 0x6c670620,
-	0x271ac: 0x6c69d220, 0x271ad: 0x6caaca20, 0x271ae: 0x6d2a6220,
-	0x271b3: 0x6caef620,
-	0x271b4: 0x6c292020, 0x271b6: 0x6cc1f620, 0x271b7: 0x6c889620,
-	0x271b8: 0x6ca2be20, 0x271b9: 0x6c805220,
-	0x271be: 0x6c3baa20,
-	// Block 0x9c7, offset 0x271c0
-	0x271c2: 0x6c5d0e20,
-	0x271c6: 0x6c7bb420,
-	0x271c8: 0x6d1b2a20, 0x271c9: 0x6cd69c20, 0x271ca: 0x6c671e20,
-	0x271d2: 0x6c964420,
-	0x271d4: 0x6c933c20,
-	0x271da: 0x6c446a20, 0x271db: 0x6cc51220,
-	0x271de: 0x6cb22e20,
-	0x271e0: 0x6c900a20,
-	0x271e4: 0x6d320c20, 0x271e5: 0x6cfd4c20,
-	0x271e8: 0x6c8c8e20, 0x271e9: 0x6c88aa20, 0x271ea: 0x6ccd2420, 0x271eb: 0x6c0fd420,
-	0x271ec: 0x6c87a820,
-	0x271f3: 0x6d013a20,
-	0x271f4: 0x6c446e20, 0x271f5: 0x6c9fe020, 0x271f6: 0x6c88ae20,
-	0x271f9: 0x6c753c20, 0x271fa: 0x6d38c820,
-	0x271ff: 0x6c784820,
-	// Block 0x9c8, offset 0x27200
-	0x27201: 0x6c2f2a20, 0x27203: 0x6d30ce20,
-	0x27205: 0x6cd4ac20, 0x27206: 0x6c5e9020, 0x27207: 0x6c8f7c20,
-	0x27208: 0x6c49ea20, 0x27209: 0x6d2a5620, 0x2720a: 0x6cfd4420, 0x2720b: 0x6cb8ae20,
-	0x2720d: 0x6ccfd820,
-	0x27210: 0x6d1ae020, 0x27211: 0x6c6be420,
-	0x27214: 0x6ccffe20, 0x27215: 0x6cd00020, 0x27216: 0x6cc95220,
-	0x2721b: 0x6cf8c020,
-	0x27221: 0x6c7aac20, 0x27223: 0x6cc1c620,
-	0x27225: 0x6c443e20, 0x27226: 0x6c050820,
-	0x27228: 0x6c0a7c20, 0x27229: 0x6cb92e20,
-	0x27230: 0x6c0d6420, 0x27231: 0x6c050a20, 0x27233: 0x6d42ae20,
-	0x27234: 0x6cb0d020, 0x27236: 0x6c5e3620,
-	0x2723e: 0x6c051020,
-	// Block 0x9c9, offset 0x27240
-	0x2724a: 0x6ca9d820,
-	0x2724c: 0x6c18fc20, 0x2724e: 0x6cae4e20,
-	0x27251: 0x6c3f2e20, 0x27252: 0x6ce88220,
-	0x2725c: 0x6cb04e20, 0x2725d: 0x6cb36420,
-	0x27260: 0x6c1b7420, 0x27263: 0x6d093e20,
-	0x27264: 0x6cb74020, 0x27265: 0x6cf4b220,
-	0x27268: 0x6d357e20, 0x27269: 0x6c2c1c20, 0x2726a: 0x6c22fe20, 0x2726b: 0x6d1ef420,
-	0x27279: 0x6c230020,
-	0x2727c: 0x6c2c1e20, 0x2727d: 0x6d3d2620, 0x2727f: 0x6d408020,
-	// Block 0x9ca, offset 0x27280
-	0x27280: 0x6c238c20, 0x27283: 0x6caca820,
-	0x27284: 0x6d0d4c20, 0x27285: 0x6cb74e20, 0x27286: 0x6cc6fa20, 0x27287: 0x6c63a420,
-	0x27289: 0x6d359220, 0x2728a: 0x6cc00e20, 0x2728b: 0x6d268a20,
-	0x2728d: 0x6cd32420,
-	0x27291: 0x6c4fc020,
-	0x27299: 0x6ceab220,
-	0x2729c: 0x6c0cde20, 0x2729e: 0x6c770020,
-	0x272a2: 0x6c21aa20,
-	0x272a4: 0x6c229020, 0x272a6: 0x6d1ad020, 0x272a7: 0x6cd34c20,
-	0x272a8: 0x6ca3b820, 0x272a9: 0x6cc85820, 0x272ab: 0x6d0f9e20,
-	0x272ac: 0x6c1a9820, 0x272ae: 0x6c21f820,
-	0x272b1: 0x6c457620, 0x272b2: 0x6c9c4220,
-	0x272b4: 0x6c612e20,
-	0x272bc: 0x6c44b220, 0x272bd: 0x6d2a6c20,
-	// Block 0x9cb, offset 0x272c0
-	0x272c1: 0x6c081420,
-	0x272c7: 0x6d030c20,
-	0x272c8: 0x6c7df020, 0x272ca: 0x6c2e8e20,
-	0x272cd: 0x6ce66a20,
-	0x272da: 0x6cd71c20,
-	0x272de: 0x6c275620,
-	0x272e6: 0x6c851020,
-	0x272e8: 0x6d1e2820, 0x272e9: 0x6c684220,
-	0x272ec: 0x6cde0420, 0x272ed: 0x6cc24620, 0x272ee: 0x6d1a6020, 0x272ef: 0x6d24e820,
-	0x272f0: 0x6c6abc20, 0x272f2: 0x6cb8da20, 0x272f3: 0x6d10a020,
-	0x272f4: 0x6d0ba620, 0x272f7: 0x6cbe4a20,
-	0x272ff: 0x6cadd420,
-	// Block 0x9cc, offset 0x27300
-	0x27317: 0x6c635820,
-	0x27319: 0x6ce82c20, 0x2731b: 0x6ce2ec20,
-	0x27321: 0x6c33f620, 0x27322: 0x6c15ba20, 0x27323: 0x6c636820,
-	0x27324: 0x6c1c2820, 0x27325: 0x6c64aa20, 0x27326: 0x6cd5e020,
-	0x2732f: 0x6cde5a20,
-	// Block 0x9cd, offset 0x27340
-	0x27355: 0x6d33ea20, 0x27357: 0x6d256e20,
-	0x2735a: 0x6c54d420,
-	0x2735c: 0x6c8b1220,
-	0x27360: 0x6d2ad420, 0x27362: 0x6c1f5e20,
-	0x27366: 0x6cc0ba20, 0x27367: 0x6c07fa20,
-	0x27379: 0x6c588620, 0x2737a: 0x6c7aca20, 0x2737b: 0x6cd10c20,
-	0x2737d: 0x6c6afe20, 0x2737f: 0x6cee2c20,
-	// Block 0x9ce, offset 0x27380
-	0x27383: 0x6c54de20,
-	0x2738a: 0x6d2ae620, 0x2738b: 0x6d297020,
-	0x2738c: 0x6d106420, 0x2738e: 0x6c1bba20, 0x2738f: 0x6c701220,
-	0x2739a: 0x6c89fe20, 0x2739b: 0x6d209620,
-	0x273a0: 0x6c0b4a20, 0x273a2: 0x6c7bc820,
-	0x273ac: 0x6c1e4a20, 0x273ad: 0x6d0b3620, 0x273ae: 0x6d3d8620,
-	0x273b0: 0x6cbcda20, 0x273b1: 0x6cfcf020, 0x273b3: 0x6d250620,
-	0x273b4: 0x6cf46e20, 0x273b5: 0x6c693620, 0x273b6: 0x6cfe5020, 0x273b7: 0x6ccc7420,
-	0x273b9: 0x6d36cc20,
-	0x273bc: 0x6c1d5a20, 0x273be: 0x6c0b0620, 0x273bf: 0x6ceeb820,
-	// Block 0x9cf, offset 0x273c0
-	0x273d3: 0x6c2a3220,
-	0x273dd: 0x6d23d820, 0x273de: 0x6ce9b820,
-	0x273e1: 0x6c17c220,
-	0x273e5: 0x6c5c4420, 0x273e6: 0x6cba2620,
-	0x273e8: 0x6cf01a20,
-	0x273f0: 0x6d1f7420,
-	0x273fc: 0x6c2ca020, 0x273fe: 0x6c26f620,
-	// Block 0x9d0, offset 0x27400
-	0x27401: 0x6d1f7620, 0x27402: 0x6c702620, 0x27403: 0x6ce9bc20,
-	0x27404: 0x6d297620, 0x27407: 0x6c5c6020,
-	0x27409: 0x6ccc8220,
-	0x2740c: 0x6c5e1020,
-	0x27414: 0x6d115a20,
-	0x27419: 0x6cfd1e20,
-	0x2741e: 0x6cfd2020,
-	0x2742c: 0x6c2caa20, 0x2742e: 0x6c703220,
-	0x27432: 0x6c5c7420,
-	0x27434: 0x6c77cc20, 0x27435: 0x6d1f8420,
-	0x27438: 0x6c870e20,
-	0x2743c: 0x6c201420, 0x2743e: 0x6c1b6820,
-	// Block 0x9d1, offset 0x27440
-	0x27440: 0x6c5e3820, 0x27442: 0x6d1f9020,
-	0x27444: 0x6d270e20,
-	0x2744e: 0x6cded820, 0x2744f: 0x6d29b420,
-	0x27453: 0x6ca8ac20,
-	0x27454: 0x6d3b4a20,
-	0x27461: 0x6cfc6220,
-	0x27469: 0x6cd22a20, 0x2746b: 0x6c79ca20,
-	0x2746c: 0x6cb6c620, 0x2746d: 0x6ce91420, 0x2746e: 0x6c387e20, 0x2746f: 0x6c258e20,
-	0x27472: 0x6cea3820, 0x27473: 0x6c137420,
-	0x27474: 0x6c110020, 0x27475: 0x6cfe1420, 0x27476: 0x6cadfc20, 0x27477: 0x6c6e0220,
-	0x27478: 0x6cb56a20, 0x27479: 0x6cceae20, 0x2747a: 0x6ca97420, 0x2747b: 0x6ca30420,
-	0x2747d: 0x6cbd5020,
-	// Block 0x9d2, offset 0x27480
-	0x2748d: 0x6c090c20,
-	0x27493: 0x6c092420,
-	0x27494: 0x6c05a220, 0x27495: 0x6c0b7620, 0x27496: 0x6d3e0220, 0x27497: 0x6ca30a20,
-	0x27498: 0x6cf07020, 0x27499: 0x6c4fbe20,
-	0x274a1: 0x6c6c8220, 0x274a3: 0x6d333c20,
-	0x274a7: 0x6cbc8220,
-	0x274ae: 0x6c501620, 0x274af: 0x6ce71e20,
-	0x274b0: 0x6d2a4020, 0x274b1: 0x6cd15420, 0x274b2: 0x6c25a420, 0x274b3: 0x6c597e20,
-	0x274b4: 0x6cc78e20, 0x274b5: 0x6d292e20, 0x274b6: 0x6ca6f820,
-	0x274be: 0x6cfa8620,
-	// Block 0x9d3, offset 0x274c0
-	0x274c8: 0x6cc2bc20, 0x274c9: 0x6c619a20, 0x274ca: 0x6d1a3620, 0x274cb: 0x6c850620,
-	0x274cc: 0x6c984620, 0x274cd: 0x6cceca20, 0x274ce: 0x6c4e8e20, 0x274cf: 0x6c260e20,
-	0x274d0: 0x6c759c20, 0x274d1: 0x6c61bc20, 0x274d2: 0x6c107820, 0x274d3: 0x6c905420,
-	0x274d4: 0x6c3d2220, 0x274d5: 0x6d1f0e20, 0x274d6: 0x6c7b1c20,
-	0x274dc: 0x6cfe2220,
-	0x274e1: 0x6d279420, 0x274e3: 0x6cbd5e20,
-	0x274e4: 0x6c5b2c20, 0x274e5: 0x6cb42e20,
-	0x274eb: 0x6c83b220,
-	0x274ec: 0x6cadcc20, 0x274ed: 0x6cd4c620, 0x274ee: 0x6c707620, 0x274ef: 0x6d14e020,
-	0x274f0: 0x6d32a820, 0x274f1: 0x6c1d0e20, 0x274f3: 0x6cf77620,
-	0x274f5: 0x6c561a20, 0x274f6: 0x6cc74420,
-	// Block 0x9d4, offset 0x27500
-	0x2750c: 0x6c590c20, 0x2750d: 0x6cbc3c20, 0x2750e: 0x6d33d020, 0x2750f: 0x6d1c6c20,
-	0x27510: 0x6cf7e220, 0x27511: 0x6cbb7620, 0x27512: 0x6c61fa20, 0x27513: 0x6d32bc20,
-	0x27514: 0x6c59b420, 0x27516: 0x6d210a20, 0x27517: 0x6d405a20,
-	0x27518: 0x6c99f420,
-	0x2751c: 0x6cd13220,
-	0x27529: 0x6cc2e620,
-	0x27530: 0x6c676020, 0x27531: 0x6c512020, 0x27533: 0x6ce75220,
-	0x27534: 0x6c513020, 0x27535: 0x6cf15220, 0x27536: 0x6d17cc20, 0x27537: 0x6cacfe20,
-	0x2753a: 0x6cf22620, 0x2753b: 0x6cb99820,
-	0x2753c: 0x6c862020, 0x2753d: 0x6d150a20, 0x2753e: 0x6c20ac20, 0x2753f: 0x6d06e820,
-	// Block 0x9d5, offset 0x27540
-	0x27540: 0x6cefd020,
-	0x27546: 0x6c439420,
-	0x27548: 0x6d226220, 0x2754b: 0x6d2d4420,
-	0x2754c: 0x6c41a220, 0x2754d: 0x6cb8f620, 0x2754e: 0x6c773220, 0x2754f: 0x6c840220,
-	0x27550: 0x6cd00220, 0x27551: 0x6c499220, 0x27553: 0x6cb17c20,
-	0x27556: 0x6c840420,
-	0x27558: 0x6c562620, 0x2755b: 0x6ce8ce20,
-	0x2755c: 0x6cd75620, 0x2755e: 0x6c56aa20, 0x2755f: 0x6c840620,
-	0x27562: 0x6c910a20,
-	0x27566: 0x6c297020,
-	0x27568: 0x6d42a420, 0x27569: 0x6cccf620, 0x2756b: 0x6ccf6e20,
-	0x2756d: 0x6c3cb620, 0x2756e: 0x6c726e20, 0x2756f: 0x6ce76e20,
-	0x27570: 0x6c691a20, 0x27571: 0x6cbbe620, 0x27572: 0x6c42d420, 0x27573: 0x6d3e7020,
-	0x27574: 0x6c59e620, 0x27575: 0x6ccd0620,
-	0x27578: 0x6cdff620,
-	// Block 0x9d6, offset 0x27580
-	0x2758c: 0x6ceaca20, 0x2758e: 0x6c8e2220,
-	0x27590: 0x6c1a2e20, 0x27591: 0x6cf27020, 0x27592: 0x6d425020, 0x27593: 0x6d23da20,
-	0x27595: 0x6d3a2220, 0x27597: 0x6cc45420,
-	0x27598: 0x6cf80a20, 0x27599: 0x6cc1b620, 0x2759b: 0x6c442820,
-	0x275a2: 0x6cb52a20, 0x275a3: 0x6d05e020,
-	0x275a8: 0x6c415220, 0x275a9: 0x6cc3f820, 0x275aa: 0x6c1ddc20, 0x275ab: 0x6c9b4e20,
-	0x275b2: 0x6cd02020, 0x275b3: 0x6cc1c820,
-	0x275b6: 0x6cbbb420, 0x275b7: 0x6c11b420,
-	0x275ba: 0x6c86b020,
-	0x275bc: 0x6ceda220, 0x275bd: 0x6c826620, 0x275be: 0x6d03a820, 0x275bf: 0x6c80ea20,
-	// Block 0x9d7, offset 0x275c0
-	0x275c2: 0x6cd3ec20, 0x275c3: 0x6d330020,
-	0x275c4: 0x6c38ce20,
-	0x275ca: 0x6d371c20,
-	0x275cf: 0x6d1aa420,
-	0x275d1: 0x6c86de20,
-	0x275d6: 0x6ca08820, 0x275d7: 0x6cf04020,
-	0x275d9: 0x6d1c1020, 0x275da: 0x6cc4e420,
-	0x275e0: 0x6cc2a820,
-	0x275e5: 0x6c95ce20,
-	0x275f2: 0x6c275820,
-	0x275f4: 0x6d1b4e20, 0x275f5: 0x6c08da20, 0x275f6: 0x6c438820,
-	0x275f8: 0x6cf20a20, 0x275f9: 0x6d0d7620, 0x275fa: 0x6c9e1e20,
-	0x275fc: 0x6c42a020, 0x275fd: 0x6cc05620, 0x275fe: 0x6d33da20,
-	// Block 0x9d8, offset 0x27600
-	0x2760b: 0x6c471c20,
-	0x2760c: 0x6ce75420, 0x2760e: 0x6c8d1420, 0x2760f: 0x6ce33620,
-	0x27610: 0x6c224c20, 0x27611: 0x6d150c20, 0x27612: 0x6c395a20, 0x27613: 0x6cb31220,
-	0x27614: 0x6c09b820, 0x27616: 0x6c064e20,
-	0x2761f: 0x6cae7620,
-	0x27621: 0x6cdb8420,
-	0x27624: 0x6cd92820, 0x27625: 0x6cef1a20, 0x27626: 0x6cff9220,
-	0x2762c: 0x6c504c20, 0x2762d: 0x6d0dac20,
-	0x27636: 0x6d152620, 0x27637: 0x6d2a1e20,
-	0x27638: 0x6d1d0020, 0x27639: 0x6ca43220,
-	0x2763f: 0x6d289620,
-	// Block 0x9d9, offset 0x27640
-	0x27641: 0x6ce50c20, 0x27642: 0x6cf68a20, 0x27643: 0x6c69b420,
-	0x27644: 0x6d0cbc20,
-	0x2764c: 0x6ca55e20, 0x2764d: 0x6ce07020, 0x2764e: 0x6d0eaa20, 0x2764f: 0x6ce51a20,
-	0x27650: 0x6d36ce20, 0x27651: 0x6c1d7a20, 0x27652: 0x6ce23a20,
-	0x27657: 0x6d2cdc20,
-	0x2765e: 0x6c9e3a20,
-	0x27661: 0x6cf47020, 0x27662: 0x6d1b0220, 0x27663: 0x6d0eac20,
-	0x27664: 0x6c81ba20,
-	0x27669: 0x6cb31e20, 0x2766b: 0x6c5d4620,
-	0x2766c: 0x6c4d4620, 0x2766d: 0x6ca21a20, 0x2766e: 0x6c236020,
-	0x27671: 0x6c7aae20, 0x27672: 0x6c1d8420,
-	0x27674: 0x6d1ff020,
-	0x27678: 0x6d3da020, 0x2767b: 0x6cd9e420,
-	// Block 0x9da, offset 0x27680
-	0x27682: 0x6d1b7e20,
-	0x27685: 0x6d41da20, 0x27686: 0x6cca7420, 0x27687: 0x6c8f4a20,
-	0x27688: 0x6c4f2020, 0x27689: 0x6cf0ec20, 0x2768a: 0x6c9b6020, 0x2768b: 0x6c55d020,
-	0x2768c: 0x6c86b220, 0x2768e: 0x6c9d9c20,
-	0x27690: 0x6c054020, 0x27691: 0x6c65f020,
-	0x2769c: 0x6cc40620,
-	0x276a0: 0x6c9b6220, 0x276a2: 0x6ca21c20, 0x276a3: 0x6c53ac20,
-	0x276a4: 0x6c56d820, 0x276a5: 0x6c9c8e20, 0x276a6: 0x6ccca820,
-	0x276a9: 0x6cce2620, 0x276aa: 0x6c17c620,
-	0x276ac: 0x6d3dc220, 0x276ae: 0x6d342220, 0x276af: 0x6ca77020,
-	0x276b5: 0x6c62b220,
-	0x276b8: 0x6c784020, 0x276b9: 0x6d330620,
-	0x276bf: 0x6c281420,
-	// Block 0x9db, offset 0x276c0
-	0x276c0: 0x6c8a8220, 0x276c1: 0x6d2e3020, 0x276c2: 0x6c460620, 0x276c3: 0x6c818c20,
-	0x276c4: 0x6c571e20, 0x276c5: 0x6c1fd220, 0x276c7: 0x6c660c20,
-	0x276c8: 0x6c7d3220,
-	0x276cd: 0x6ccf0220,
-	0x276d4: 0x6c191c20, 0x276d5: 0x6ce08820, 0x276d7: 0x6c55f820,
-	0x276d8: 0x6c9b9e20, 0x276d9: 0x6cada420, 0x276da: 0x6d2e3820, 0x276db: 0x6c16d620,
-	0x276dd: 0x6c41f820,
-	0x276e0: 0x6d193a20, 0x276e2: 0x6cdcb620,
-	0x276e6: 0x6d076420, 0x276e7: 0x6c62de20,
-	0x276e8: 0x6c808e20,
-	0x276ec: 0x6d159620, 0x276ef: 0x6c9dae20,
-	0x276f1: 0x6c9f1420,
-	0x276f5: 0x6c24a620,
-	0x276f8: 0x6c805a20, 0x276fb: 0x6d0c4e20,
-	0x276fe: 0x6c9ccc20,
-	// Block 0x9dc, offset 0x27700
-	0x27702: 0x6d1e6820, 0x27703: 0x6c125420,
-	0x27704: 0x6c664420, 0x27707: 0x6cda0a20,
-	0x2770e: 0x6d0d2a20,
-	0x27711: 0x6c736020,
-	0x27715: 0x6c369c20,
-	0x27718: 0x6c3bf220, 0x2771a: 0x6c3bf620,
-	0x27721: 0x6c4a2a20, 0x27722: 0x6c96fc20,
-	0x27724: 0x6c8ab820,
-	0x27729: 0x6c1cca20, 0x2772b: 0x6c840820,
-	0x27731: 0x6d349c20,
-	0x27734: 0x6d024820, 0x27737: 0x6c1dfc20,
-	0x27739: 0x6c60fc20,
-	0x2773d: 0x6caf5c20,
-	// Block 0x9dd, offset 0x27740
-	0x27742: 0x6c6abe20,
-	0x27747: 0x6d38e420,
-	0x2774d: 0x6d046c20,
-	0x27751: 0x6c7bfc20,
-	0x27759: 0x6c6e2220, 0x2775b: 0x6c56a020,
-	0x2775e: 0x6cb99c20,
-	0x27763: 0x6c133220,
-	0x27766: 0x6cb60420, 0x27767: 0x6ced3220,
-	0x27768: 0x6c98ec20, 0x2776a: 0x6c30f020,
-	0x27774: 0x6c79d220, 0x27776: 0x6c277c20,
-	0x27778: 0x6ca4b420, 0x2777a: 0x6c536a20,
-	// Block 0x9de, offset 0x27780
-	0x27782: 0x6c7f4020, 0x27783: 0x6c34aa20,
-	0x27784: 0x6cb91020, 0x27786: 0x6d1a8820,
-	0x27796: 0x6c911220, 0x27797: 0x6c5ae020,
-	0x2779b: 0x6c402e20,
-	0x2779c: 0x6c98f420, 0x2779e: 0x6d389a20,
-	0x277a1: 0x6d1dfa20,
-	0x277ad: 0x6c817020, 0x277ae: 0x6c609c20, 0x277af: 0x6d186a20,
-	0x277b0: 0x6c8e8c20, 0x277b1: 0x6c235220, 0x277b3: 0x6ca43c20,
-	// Block 0x9df, offset 0x277c0
-	0x277d0: 0x6cea2620, 0x277d1: 0x6cfe5220,
-	0x277d5: 0x6c0bba20, 0x277d6: 0x6c207820, 0x277d7: 0x6cf52020,
-	0x277d9: 0x6c70c620,
-	0x277e5: 0x6d005220, 0x277e6: 0x6caf9220, 0x277e7: 0x6d3da220,
-	0x277e8: 0x6cc8e420, 0x277ea: 0x6ccafa20, 0x277eb: 0x6d3f6220,
-	0x277ed: 0x6d336220,
-	0x277f0: 0x6d40da20, 0x277f1: 0x6cc14220, 0x277f3: 0x6c1c7a20,
-	0x277f5: 0x6d36f020,
-	// Block 0x9e0, offset 0x27800
-	0x27817: 0x6cc37a20,
-	0x27818: 0x6cb92020, 0x27819: 0x6d0afc20, 0x2781a: 0x6c17c420, 0x2781b: 0x6c517c20,
-	0x2781c: 0x6cc80420,
-	0x27820: 0x6c70cc20, 0x27821: 0x6cf52820,
-	0x2782c: 0x6c1c7c20, 0x2782d: 0x6c7c0420, 0x2782f: 0x6c240020,
-	0x27830: 0x6cc89220, 0x27831: 0x6c7e1e20, 0x27832: 0x6c1b5e20, 0x27833: 0x6d40e420,
-	0x27834: 0x6c688620, 0x27836: 0x6d21c420, 0x27837: 0x6ce8fe20,
-	0x27838: 0x6c9b6420, 0x27839: 0x6c266c20, 0x2783a: 0x6cd7a020,
-	// Block 0x9e1, offset 0x27840
-	0x27865: 0x6c3c6c20, 0x27866: 0x6c469020, 0x27867: 0x6c301c20,
-	0x27868: 0x6c142220, 0x27869: 0x6c99be20, 0x2786a: 0x6c15e820, 0x2786b: 0x6c0b1020,
-	0x2786c: 0x6d241e20, 0x2786f: 0x6cecea20,
-	0x27870: 0x6d40e620, 0x27872: 0x6d3ea420,
-	0x27874: 0x6c1fec20, 0x27875: 0x6ced5620, 0x27876: 0x6cebf420,
-	0x27878: 0x6cc2a620, 0x2787b: 0x6ced5820,
-	0x2787d: 0x6cfa5020,
-	// Block 0x9e2, offset 0x27880
-	0x27884: 0x6d1d5620, 0x27885: 0x6c66e820,
-	0x27888: 0x6cf04220, 0x27889: 0x6ce39a20, 0x2788a: 0x6ccaca20,
-	0x2788c: 0x6cb67a20, 0x2788d: 0x6ccc2020, 0x2788e: 0x6d244220, 0x2788f: 0x6c60e220,
-	0x27890: 0x6c314420, 0x27891: 0x6c15f620, 0x27892: 0x6ce96c20,
-	0x27895: 0x6c8ec420, 0x27897: 0x6d3cba20,
-	0x278b3: 0x6cc89420,
-	0x278b6: 0x6d0eda20, 0x278b7: 0x6c47ea20,
-	0x278b9: 0x6c86e220, 0x278ba: 0x6c13ba20,
-	0x278be: 0x6c2cac20,
-	// Block 0x9e3, offset 0x278c0
-	0x278c0: 0x6d2e2a20, 0x278c1: 0x6cb32220,
-	0x278d2: 0x6c912620,
-	0x278d4: 0x6d374c20,
-	// Block 0x9e4, offset 0x27900
-	0x27901: 0x6c888a20,
-	0x27905: 0x6c95ca20,
-	0x2790d: 0x6c352420,
-	0x27910: 0x6c750820, 0x27911: 0x6c873420, 0x27912: 0x6c7ff220,
-	0x27914: 0x6cc89620, 0x27915: 0x6c474220, 0x27916: 0x6c155c20, 0x27917: 0x6d060620,
-	0x2791a: 0x6d356420,
-	// Block 0x9e5, offset 0x27940
-	0x27941: 0x6d097c20, 0x27942: 0x6c0e9c20, 0x27943: 0x6c19aa20,
-	0x27945: 0x6d3b4220, 0x27946: 0x6c522a20,
-	0x27949: 0x6c04ac20,
-	0x27953: 0x6c2f0820,
-	0x27956: 0x6d2e3a20, 0x27957: 0x6c4ca620,
-	0x2795a: 0x6c0c5420, 0x2795b: 0x6c7ec620,
-	0x2797a: 0x6c6c7620,
-	// Block 0x9e6, offset 0x27980
-	0x27982: 0x6c411c20,
-	0x27992: 0x6c9c1e20,
-	0x27994: 0x6d247e20,
-	0x279aa: 0x6cf82a20,
-	0x279ac: 0x6cb17820, 0x279ad: 0x6cd85020,
-	0x279b4: 0x6c2b0020,
-	0x279b8: 0x6c219e20, 0x279b9: 0x6c2bbe20, 0x279ba: 0x6c5fa820, 0x279bb: 0x6c157620,
-	0x279bf: 0x6d3dea20,
-	// Block 0x9e7, offset 0x279c0
-	0x279d3: 0x6c115220,
-	0x279de: 0x6c681620,
-	0x279f2: 0x6ce80220,
-	0x279fd: 0x6c84e820,
-	// Block 0x9e8, offset 0x27a00
-	0x27a02: 0x6cba9020,
-	0x27a06: 0x6c21a020,
-	0x27a0f: 0x6cdef820,
-	0x27a11: 0x6c2e5220, 0x27a13: 0x6c664820,
-	0x27a1b: 0x6d356820,
-	0x27a1c: 0x6c753220, 0x27a1e: 0x6ca0a420,
-	0x27a20: 0x6c959620,
-	0x27a26: 0x6c062420,
-	0x27a2d: 0x6d415e20,
-	0x27a35: 0x6d300820,
-	0x27a38: 0x6d220c20, 0x27a3b: 0x6c062a20,
-	0x27a3e: 0x6c969420, 0x27a3f: 0x6cf85020,
-	// Block 0x9e9, offset 0x27a40
-	0x27a40: 0x6c567c20, 0x27a41: 0x6d171220, 0x27a42: 0x6c355020, 0x27a43: 0x6c470220,
-	0x27a44: 0x6ce89e20, 0x27a45: 0x6d314a20, 0x27a47: 0x6cc07220,
-	0x27a48: 0x6cdaba20, 0x27a49: 0x6c89c620, 0x27a4a: 0x6cc11a20, 0x27a4b: 0x6c8d2620,
-	0x27a4c: 0x6c499420, 0x27a4d: 0x6c80e420, 0x27a4e: 0x6ce7dc20, 0x27a4f: 0x6c266620,
-	0x27a50: 0x6c911e20, 0x27a51: 0x6c5a1220, 0x27a52: 0x6cd47e20, 0x27a53: 0x6c688820,
-	0x27a54: 0x6d41f620, 0x27a55: 0x6c411a20, 0x27a56: 0x6cef5220,
-	0x27a59: 0x6c7d4e20, 0x27a5a: 0x6c32bc20, 0x27a5b: 0x6cd92020,
-	0x27a5c: 0x6cb5e020, 0x27a5d: 0x6d101a20,
-	0x27a61: 0x6cd37820, 0x27a63: 0x6c411420,
-	0x27a66: 0x6c2a1a20, 0x27a67: 0x6d11b220,
-	0x27a6b: 0x6cb99e20,
-	0x27a6d: 0x6cce7220, 0x27a6e: 0x6c16ae20, 0x27a6f: 0x6ca05020,
-	0x27a71: 0x6ca05a20,
-	0x27a75: 0x6ca50620,
-	0x27a78: 0x6c232220, 0x27a7a: 0x6ca84e20, 0x27a7b: 0x6d2f6a20,
-	0x27a7c: 0x6c133420, 0x27a7f: 0x6cd92a20,
-	// Block 0x9ea, offset 0x27a80
-	0x27a80: 0x6ca85820, 0x27a81: 0x6c22dc20,
-	0x27a84: 0x6c75de20, 0x27a86: 0x6cce7e20,
-	0x27a88: 0x6d3a2420, 0x27a89: 0x6c34b020, 0x27a8a: 0x6c01ce20, 0x27a8b: 0x6c088c20,
-	0x27a8e: 0x6ce41820,
-	0x27a90: 0x6cb06a20, 0x27a91: 0x6cf9ee20, 0x27a92: 0x6cc09420, 0x27a93: 0x6cd14e20,
-	0x27a97: 0x6ce0d820,
-	0x27a9b: 0x6c978420,
-	0x27a9c: 0x6cb10420, 0x27a9e: 0x6ce43420, 0x27a9f: 0x6cc6cc20,
-	0x27aa7: 0x6c237220,
-	0x27aaa: 0x6c5f7a20, 0x27aab: 0x6c3cc020,
-	0x27aac: 0x6cf53c20, 0x27aad: 0x6c69d620, 0x27aae: 0x6c818e20, 0x27aaf: 0x6d2ba620,
-	0x27ab0: 0x6caeee20, 0x27ab1: 0x6c11e420, 0x27ab3: 0x6ca9de20,
-	0x27ab5: 0x6c160c20,
-	0x27abe: 0x6c97a420, 0x27abf: 0x6c4ba820,
-	// Block 0x9eb, offset 0x27ac0
-	0x27ac0: 0x6ca7d820, 0x27ac1: 0x6c1d0220, 0x27ac2: 0x6c165820,
-	0x27ac6: 0x6ca48a20,
-	0x27ac9: 0x6cf95c20, 0x27aca: 0x6c6f6620, 0x27acb: 0x6c613020,
-	0x27acc: 0x6d323420,
-	0x27ad1: 0x6ce6ca20,
-	0x27ad4: 0x6c9ace20, 0x27ad5: 0x6d26b220, 0x27ad7: 0x6d37bc20,
-	0x27ad8: 0x6cea5620, 0x27ad9: 0x6cc8d220, 0x27ada: 0x6d01ba20, 0x27adb: 0x6cf63420,
-	0x27add: 0x6ce6d220, 0x27ade: 0x6ca99820,
-	0x27ae0: 0x6cee2820, 0x27ae1: 0x6c64ae20, 0x27ae3: 0x6c3b3420,
-	0x27af2: 0x6c0ba620,
-	0x27af7: 0x6d152820,
-	0x27afa: 0x6c2ec420, 0x27afb: 0x6c5ef820,
-	0x27afc: 0x6c41de20, 0x27aff: 0x6c64c420,
-	// Block 0x9ec, offset 0x27b00
-	0x27b00: 0x6c6ee220,
-	0x27b06: 0x6c763820,
-	0x27b0a: 0x6cc3d620,
-	0x27b0c: 0x6ca40420, 0x27b0d: 0x6ca1de20, 0x27b0e: 0x6d072220, 0x27b0f: 0x6cd96a20,
-	0x27b10: 0x6cd0c020, 0x27b11: 0x6c7bac20, 0x27b12: 0x6cc3e620, 0x27b13: 0x6cef2820,
-	0x27b17: 0x6c2eda20,
-	0x27b18: 0x6ca40a20, 0x27b1a: 0x6cc92a20, 0x27b1b: 0x6c45a220,
-	0x27b1c: 0x6c313220, 0x27b1e: 0x6ca73020,
-	0x27b21: 0x6c175020, 0x27b22: 0x6c515e20, 0x27b23: 0x6d0e9e20,
-	0x27b29: 0x6ce8f020, 0x27b2a: 0x6c104420,
-	0x27b2c: 0x6c559e20, 0x27b2d: 0x6d1e5820, 0x27b2f: 0x6cd2d620,
-	0x27b30: 0x6c1f7220,
-	0x27b39: 0x6cff0e20, 0x27b3a: 0x6c9ad620, 0x27b3b: 0x6c852a20,
-	0x27b3c: 0x6ce37220, 0x27b3e: 0x6c64e620,
-	// Block 0x9ed, offset 0x27b40
-	0x27b42: 0x6d354e20, 0x27b43: 0x6c487220,
-	0x27b44: 0x6c496220, 0x27b46: 0x6cb7cc20,
-	0x27b48: 0x6c3a1820, 0x27b49: 0x6d229820, 0x27b4a: 0x6d309620, 0x27b4b: 0x6cf01c20,
-	0x27b4c: 0x6c35ba20, 0x27b4d: 0x6c14da20, 0x27b4e: 0x6cf6e020,
-	0x27b50: 0x6c47d420,
-	0x27b57: 0x6cc3fa20,
-	0x27b58: 0x6c5c4620, 0x27b5a: 0x6d00f620, 0x27b5b: 0x6d1bf420,
-	0x27b5d: 0x6cdeaa20, 0x27b5e: 0x6cec5820, 0x27b5f: 0x6c3efe20,
-	0x27b60: 0x6c6c0820, 0x27b61: 0x6cb0bc20,
-	0x27b65: 0x6cd15020, 0x27b66: 0x6d21c620, 0x27b67: 0x6c7ace20,
-	0x27b69: 0x6cb0ca20, 0x27b6a: 0x6d010620, 0x27b6b: 0x6caaac20,
-	0x27b6c: 0x6cfd2420, 0x27b6d: 0x6c66ea20, 0x27b6e: 0x6d074e20,
-	0x27b70: 0x6c0a7e20,
-	0x27b74: 0x6ca41220, 0x27b76: 0x6c897020,
-	0x27b78: 0x6cb13420,
-	0x27b7c: 0x6c6eb820,
-	// Block 0x9ee, offset 0x27b80
-	0x27b80: 0x6cde1c20, 0x27b81: 0x6d0edc20, 0x27b82: 0x6c00f820,
-	0x27b85: 0x6cff3020, 0x27b86: 0x6cbaf420, 0x27b87: 0x6cf48620,
-	0x27b88: 0x6ce15620, 0x27b8a: 0x6c75f420,
-	0x27b90: 0x6c7e2820,
-	0x27b97: 0x6c813220,
-	0x27b99: 0x6ca5b020,
-	0x27b9c: 0x6c314a20, 0x27b9d: 0x6cd54620, 0x27b9f: 0x6c696220,
-	0x27ba0: 0x6ca89c20, 0x27ba2: 0x6d21dc20,
-	0x27ba8: 0x6c132020, 0x27baa: 0x6c696420,
-	0x27bac: 0x6c57d620, 0x27bad: 0x6cf1c020, 0x27bae: 0x6d127020, 0x27baf: 0x6c35a020,
-	0x27bb0: 0x6c49fe20, 0x27bb1: 0x6c572020, 0x27bb2: 0x6c68a620,
-	0x27bba: 0x6c835820,
-	0x27bbc: 0x6cce2820, 0x27bbd: 0x6d1e8020, 0x27bbf: 0x6c2ac220,
-	// Block 0x9ef, offset 0x27bc0
-	0x27bc0: 0x6c493820, 0x27bc1: 0x6ca97220, 0x27bc3: 0x6cdcc020,
-	0x27bc4: 0x6cfe6c20, 0x27bc6: 0x6cc9b420, 0x27bc7: 0x6c168c20,
-	0x27bce: 0x6cc90c20,
-	0x27bd0: 0x6d277020, 0x27bd2: 0x6c3b4c20, 0x27bd3: 0x6c672420,
-	0x27bd4: 0x6d076a20,
-	0x27bd8: 0x6cf93020, 0x27bd9: 0x6cd54a20,
-	0x27be5: 0x6d013220, 0x27be6: 0x6c87ac20,
-	0x27be9: 0x6ce80420,
-	0x27bec: 0x6c9d1020, 0x27bed: 0x6c162020, 0x27bee: 0x6c5d6a20,
-	0x27bf1: 0x6d3bb820, 0x27bf2: 0x6d273420,
-	0x27bfb: 0x6c801a20,
-	0x27bfd: 0x6d0d2c20, 0x27bfe: 0x6c29a820, 0x27bff: 0x6cfe1820,
-	// Block 0x9f0, offset 0x27c00
-	0x27c00: 0x6d267220, 0x27c01: 0x6ce6b020, 0x27c02: 0x6c07d220, 0x27c03: 0x6cca4620,
-	0x27c04: 0x6cfc9620, 0x27c05: 0x6c2e7a20, 0x27c06: 0x6cb09c20, 0x27c07: 0x6cb11220,
-	0x27c09: 0x6cde0c20, 0x27c0b: 0x6c687220,
-	0x27c0c: 0x6d126620, 0x27c0e: 0x6d271020,
-	0x27c10: 0x6cc61420, 0x27c11: 0x6cbc1820, 0x27c12: 0x6cb56220, 0x27c13: 0x6c2da620,
-	0x27c14: 0x6cb56420, 0x27c17: 0x6c4e7e20,
-	0x27c18: 0x6d253220, 0x27c19: 0x6d1ee220, 0x27c1a: 0x6c5fd020, 0x27c1b: 0x6c412820,
-	0x27c1c: 0x6c4d0620, 0x27c1d: 0x6cd30420, 0x27c1f: 0x6cc0c820,
-	0x27c29: 0x6cf1fa20,
-	0x27c2c: 0x6d321620, 0x27c2d: 0x6cb2f220, 0x27c2e: 0x6d0c5e20, 0x27c2f: 0x6c46e820,
-	0x27c30: 0x6c720420, 0x27c31: 0x6ce52e20,
-	0x27c37: 0x6c35d820,
-	0x27c3a: 0x6d0ace20, 0x27c3b: 0x6c8c4620,
-	0x27c3c: 0x6c092620,
-	// Block 0x9f1, offset 0x27c40
-	0x27c40: 0x6d3eea20, 0x27c41: 0x6c530820, 0x27c43: 0x6c347420,
-	0x27c45: 0x6c333c20, 0x27c46: 0x6d087220,
-	0x27c48: 0x6ccd3020, 0x27c4a: 0x6ccd3220, 0x27c4b: 0x6d10d220,
-	0x27c4c: 0x6cc4b020,
-	0x27c54: 0x6ceaf820, 0x27c57: 0x6c0dac20,
-	0x27c58: 0x6d069e20, 0x27c59: 0x6cea1a20, 0x27c5a: 0x6c19d220,
-	0x27c5c: 0x6c30fe20, 0x27c5d: 0x6d171420,
-	0x27c61: 0x6c180820,
-	0x27c75: 0x6c731a20, 0x27c76: 0x6c5eae20,
-	0x27c78: 0x6d2fae20, 0x27c79: 0x6c07de20, 0x27c7b: 0x6ce4e220,
-	// Block 0x9f2, offset 0x27c80
-	0x27c80: 0x6cae6420,
-	0x27c85: 0x6c3fda20,
-	0x27c96: 0x6ceb7620,
-	0x27c98: 0x6cfb3e20, 0x27c99: 0x6ca69420, 0x27c9a: 0x6c8f8620,
-	0x27c9d: 0x6d3d4220, 0x27c9f: 0x6d32c020,
-	0x27ca0: 0x6cd74820, 0x27ca1: 0x6d3f7c20, 0x27ca2: 0x6c3c4620, 0x27ca3: 0x6c32be20,
-	0x27ca4: 0x6cb09420, 0x27ca5: 0x6d0d7820, 0x27ca6: 0x6cda1620, 0x27ca7: 0x6cc05820,
-	0x27ca8: 0x6c362220, 0x27ca9: 0x6cb98e20, 0x27cab: 0x6cba0620,
-	0x27cad: 0x6c10d420, 0x27cae: 0x6d0a8a20,
-	0x27cb5: 0x6d3c8220,
-	0x27cb8: 0x6c993a20, 0x27cb9: 0x6c68ee20,
-	0x27cbf: 0x6d2dea20,
-	// Block 0x9f3, offset 0x27cc0
-	0x27cc0: 0x6caffa20, 0x27cc1: 0x6cf63620, 0x27cc2: 0x6d0e7c20, 0x27cc3: 0x6c3ab420,
-	0x27cc4: 0x6ca83620, 0x27cc6: 0x6d364620,
-	0x27cc8: 0x6cdd6a20, 0x27cca: 0x6d17d020,
-	0x27ccc: 0x6c82c620, 0x27ccd: 0x6d06ea20, 0x27ccf: 0x6d17d220,
-	0x27cd2: 0x6cee9620,
-	0x27cd5: 0x6c5ede20, 0x27cd6: 0x6c186e20, 0x27cd7: 0x6c2eba20,
-	0x27ce3: 0x6d257020,
-	0x27ce5: 0x6cf78020, 0x27ce7: 0x6c8e6220,
-	0x27ce8: 0x6cdd6c20,
-	0x27cf1: 0x6c07fc20, 0x27cf2: 0x6cfa4020, 0x27cf3: 0x6d0e8c20,
-	0x27cf5: 0x6c24d020, 0x27cf7: 0x6c773420,
-	0x27cfa: 0x6cbe4e20, 0x27cfb: 0x6c909a20,
-	0x27cfc: 0x6c087e20,
-	// Block 0x9f4, offset 0x27d00
-	0x27d08: 0x6d2e6a20, 0x27d09: 0x6c24ae20, 0x27d0a: 0x6cf3e220, 0x27d0b: 0x6d05c020,
-	0x27d0c: 0x6c187e20, 0x27d0d: 0x6c4fd820, 0x27d0e: 0x6c748820,
-	0x27d10: 0x6c192e20, 0x27d11: 0x6c13fa20, 0x27d12: 0x6c15ce20, 0x27d13: 0x6d348820,
-	0x27d14: 0x6d0a2a20,
-	0x27d23: 0x6c441a20,
-	0x27d24: 0x6c18e220, 0x27d25: 0x6d132020,
-	0x27d2a: 0x6c1ee820, 0x27d2b: 0x6cc1b820,
-	0x27d2c: 0x6d020620, 0x27d2e: 0x6d2e7c20, 0x27d2f: 0x6c790820,
-	0x27d31: 0x6c74ae20,
-	0x27d3d: 0x6cc1ba20, 0x27d3f: 0x6c9b5020,
-	// Block 0x9f5, offset 0x27d40
-	0x27d40: 0x6d134e20, 0x27d41: 0x6d406620, 0x27d42: 0x6cb45620,
-	0x27d44: 0x6cd3e420,
-	0x27d49: 0x6cd57220, 0x27d4a: 0x6c152a20,
-	0x27d4d: 0x6c31c420, 0x27d4f: 0x6c4c4a20,
-	0x27d50: 0x6c92fe20, 0x27d51: 0x6d0c3820,
-	0x27d56: 0x6ca7ba20, 0x27d57: 0x6c0d6620,
-	0x27d5f: 0x6ce9cc20,
-	0x27d66: 0x6ca6dc20, 0x27d67: 0x6c584220,
-	0x27d68: 0x6cb9de20,
-	0x27d6f: 0x6cfa6020,
-	0x27d72: 0x6c8dc620,
-	0x27d77: 0x6c882820,
-	0x27d79: 0x6d186e20, 0x27d7b: 0x6c866620,
-	0x27d7c: 0x6cd8f020, 0x27d7f: 0x6c279a20,
-	// Block 0x9f6, offset 0x27d80
-	0x27d82: 0x6cf11620,
-	0x27d85: 0x6c22c020,
-	0x27d89: 0x6c6fbe20, 0x27d8a: 0x6c534420,
-	0x27d8c: 0x6d210e20, 0x27d8e: 0x6c7c6e20,
-	0x27d92: 0x6c4f8020, 0x27d93: 0x6c439620,
-	0x27d94: 0x6c39e620, 0x27d97: 0x6c7c8020,
-	0x27d9a: 0x6c4a6c20, 0x27d9b: 0x6c1bb020,
-	0x27d9e: 0x6c6fc220,
-	0x27da1: 0x6cdbce20,
-	0x27da4: 0x6c2ec620,
-	0x27dac: 0x6cdc0c20,
-	0x27db0: 0x6cbd8620,
-	0x27db4: 0x6c4a8020,
-	0x27dbb: 0x6d3c6620,
-	0x27dbe: 0x6ce5de20,
-	// Block 0x9f7, offset 0x27dc0
-	0x27dc1: 0x6d26d820,
-	0x27dc7: 0x6d419220,
-	0x27dcf: 0x6cf3e820,
-	0x27dd0: 0x6c250820,
-	0x27ddb: 0x6d36d220,
-	0x27de0: 0x6cd72e20, 0x27de2: 0x6c301420,
-	0x27ded: 0x6cef3c20,
-	0x27dff: 0x6c1d4220,
-	// Block 0x9f8, offset 0x27e00
-	0x27e0b: 0x6cc8f420,
-	0x27e16: 0x6c60d420,
-	0x27e1c: 0x6c2de820, 0x27e1e: 0x6c124020,
-	0x27e20: 0x6c7a0c20, 0x27e23: 0x6cef5420,
-	0x27e27: 0x6c11bc20,
-	0x27e2a: 0x6c968020, 0x27e2b: 0x6caba820,
-	0x27e32: 0x6cca3820,
-	0x27e36: 0x6cef6620,
-	0x27e3c: 0x6cca3e20, 0x27e3f: 0x6c6c7020,
-	// Block 0x9f9, offset 0x27e40
-	0x27e4c: 0x6cef6e20,
-	0x27e5e: 0x6c115420, 0x27e5f: 0x6c84d020,
-	0x27e6f: 0x6d273a20,
-	0x27e74: 0x6d277220, 0x27e77: 0x6c196420,
-	0x27e7a: 0x6ccce420,
-	// Block 0x9fa, offset 0x27e80
-	0x27e82: 0x6c54d620, 0x27e83: 0x6ccc9e20,
-	0x27e84: 0x6cea5820, 0x27e86: 0x6c3d3020,
-	0x27e88: 0x6cbe1820, 0x27e89: 0x6d05ac20,
-	0x27e8d: 0x6c1fe620, 0x27e8e: 0x6c400420,
-	0x27e92: 0x6d181220, 0x27e93: 0x6c300c20,
-	0x27e94: 0x6c3eb420, 0x27e95: 0x6c3eb620, 0x27e96: 0x6d2ad620, 0x27e97: 0x6cb4ae20,
-	0x27e99: 0x6c8d2c20,
-	0x27e9d: 0x6ccca020, 0x27e9e: 0x6cad9420,
-	0x27ea2: 0x6d1a8a20, 0x27ea3: 0x6c961e20,
-	0x27ea4: 0x6c57b620, 0x27ea5: 0x6d1b6e20, 0x27ea6: 0x6c084a20, 0x27ea7: 0x6d209820,
-	0x27ea8: 0x6ccf7020, 0x27eaa: 0x6d01f220, 0x27eab: 0x6c1ee620,
-	0x27eb4: 0x6ccf7220, 0x27eb5: 0x6c2d7220,
-	0x27eb9: 0x6d187020, 0x27ebb: 0x6c183a20,
-	0x27ebc: 0x6c451c20, 0x27ebd: 0x6c8fa820, 0x27ebe: 0x6cb2ca20, 0x27ebf: 0x6d280220,
-	// Block 0x9fb, offset 0x27ec0
-	0x27ec0: 0x6d0eae20, 0x27ec1: 0x6ca15a20, 0x27ec3: 0x6cdbd820,
-	0x27ecb: 0x6c6ea420,
-	0x27ecd: 0x6cd99c20, 0x27ece: 0x6cad0c20,
-	0x27ed0: 0x6d0b3820, 0x27ed1: 0x6ccb5020, 0x27ed2: 0x6c34b820,
-	0x27ed5: 0x6c207a20, 0x27ed6: 0x6d022420,
-	0x27ed8: 0x6ce95a20, 0x27ed9: 0x6c45b420, 0x27eda: 0x6d08b620,
-	0x27edc: 0x6c7e4e20, 0x27ede: 0x6c8d5e20,
-	0x27ee0: 0x6c279020, 0x27ee1: 0x6d2c5220,
-	0x27eec: 0x6d1a0a20, 0x27eed: 0x6cd93c20, 0x27eef: 0x6d229a20,
-	0x27ef0: 0x6ceb4c20, 0x27ef1: 0x6ceb4e20,
-	0x27ef4: 0x6c03c420, 0x27ef5: 0x6cc4d620, 0x27ef6: 0x6c0f8420, 0x27ef7: 0x6c279c20,
-	0x27ef9: 0x6d2c5a20, 0x27efa: 0x6c543a20,
-	0x27efe: 0x6c5b7820,
-	// Block 0x9fc, offset 0x27f00
-	0x27f05: 0x6c916020,
-	0x27f0a: 0x6c8e2820, 0x27f0b: 0x6cc7d620,
-	0x27f15: 0x6c28d220, 0x27f16: 0x6c9b6620, 0x27f17: 0x6cfa5820,
-	0x27f18: 0x6cf26220, 0x27f19: 0x6c4e4620, 0x27f1a: 0x6d3eb020, 0x27f1b: 0x6d327420,
-	0x27f1c: 0x6ccb7c20, 0x27f1d: 0x6c25fa20, 0x27f1e: 0x6c86e420,
-	0x27f20: 0x6c2ce220, 0x27f21: 0x6c887e20, 0x27f22: 0x6c46e020,
-	0x27f26: 0x6caee020,
-	0x27f2a: 0x6d1c0a20,
-	0x27f2c: 0x6c548420, 0x27f2e: 0x6c336c20, 0x27f2f: 0x6cf53e20,
-	0x27f37: 0x6cb1be20,
-	0x27f38: 0x6c520020, 0x27f3a: 0x6c8fb820, 0x27f3b: 0x6ca18420,
-	0x27f3c: 0x6c3a7620, 0x27f3d: 0x6c93be20, 0x27f3e: 0x6d2b2020, 0x27f3f: 0x6c0fae20,
-	// Block 0x9fd, offset 0x27f40
-	0x27f40: 0x6c2d9620, 0x27f41: 0x6c98aa20, 0x27f43: 0x6d3c4e20,
-	0x27f44: 0x6c932220, 0x27f45: 0x6cace820, 0x27f46: 0x6c337c20, 0x27f47: 0x6c10ce20,
-	0x27f4c: 0x6c189020, 0x27f4d: 0x6c981220,
-	0x27f56: 0x6cf72420,
-	0x27f5d: 0x6c019a20, 0x27f5e: 0x6d37dc20,
-	0x27f60: 0x6ca44a20, 0x27f61: 0x6cebba20, 0x27f62: 0x6c519c20,
-	0x27f65: 0x6c338220, 0x27f66: 0x6ceca020, 0x27f67: 0x6d37de20,
-	0x27f68: 0x6c133e20, 0x27f69: 0x6c873620, 0x27f6a: 0x6cd6aa20,
-	0x27f6e: 0x6c134020,
-	0x27f70: 0x6cd84a20, 0x27f72: 0x6c338420,
-	0x27f74: 0x6c5cdc20,
-	0x27f7c: 0x6c654220, 0x27f7d: 0x6ca9e220, 0x27f7e: 0x6c28ea20, 0x27f7f: 0x6c409820,
-	// Block 0x9fe, offset 0x27f80
-	0x27f80: 0x6c5e4e20, 0x27f81: 0x6c5c9620, 0x27f82: 0x6c228420,
-	0x27f84: 0x6d1e6620, 0x27f85: 0x6cc9b620, 0x27f86: 0x6ce6a420,
-	0x27f8e: 0x6c8f5a20,
-	0x27f91: 0x6cdb8c20, 0x27f92: 0x6c8da220, 0x27f93: 0x6c97a620,
-	0x27f94: 0x6c2d9c20,
-	0x27f98: 0x6cad4020, 0x27f9a: 0x6c8da420,
-	0x27f9d: 0x6c878620, 0x27f9f: 0x6caa1020,
-	0x27fa3: 0x6c8b7820,
-	0x27fa4: 0x6ccd6220, 0x27fa6: 0x6c3afe20,
-	0x27fab: 0x6ccd6420,
-	0x27fae: 0x6c8db820, 0x27faf: 0x6d2eaa20,
-	0x27fb1: 0x6c0d7820, 0x27fb2: 0x6c84dc20,
-	0x27fb5: 0x6cd86420, 0x27fb6: 0x6cc4fc20, 0x27fb7: 0x6c655820,
-	0x27fb8: 0x6d3df020, 0x27fbb: 0x6c8dbe20,
-	0x27fbc: 0x6c8dc020, 0x27fbd: 0x6c9c2420, 0x27fbf: 0x6cd6c820,
-	// Block 0x9ff, offset 0x27fc0
-	0x27fc4: 0x6c8dc820, 0x27fc7: 0x6c5d5020,
-	0x27fce: 0x6c8dee20, 0x27fcf: 0x6c655e20,
-	0x27fd0: 0x6cc23a20,
-	0x27fd4: 0x6ca9ea20, 0x27fd5: 0x6c6e7c20, 0x27fd6: 0x6c187020,
-	0x27fdc: 0x6d318820, 0x27fdd: 0x6cbede20, 0x27fdf: 0x6cbee220,
-	0x27fe0: 0x6c36c820, 0x27fe3: 0x6ccb9420,
-	0x27fe9: 0x6c071a20, 0x27feb: 0x6c3a0020,
-	0x27fee: 0x6c3ab620, 0x27fef: 0x6c3a3820,
-	0x27ff4: 0x6c399820, 0x27ff5: 0x6c7a7c20,
-	0x27ffa: 0x6d28c620, 0x27ffb: 0x6c5c2220,
-	0x27ffd: 0x6c3a4420,
-	// Block 0xa00, offset 0x28000
-	0x28001: 0x6c338620,
-	0x28006: 0x6cabca20, 0x28007: 0x6ca99c20,
-	0x28008: 0x6cad2e20, 0x28009: 0x6c289820, 0x2800a: 0x6c27e820, 0x2800b: 0x6c00b220,
-	0x2800d: 0x6ce50e20, 0x2800e: 0x6c17a420, 0x2800f: 0x6c02ac20,
-	0x28010: 0x6c9aa020, 0x28011: 0x6ca43420,
-	0x28014: 0x6c0ff420, 0x28015: 0x6d23b420, 0x28016: 0x6cfac420, 0x28017: 0x6c973a20,
-	0x2801a: 0x6cb26420,
-	0x2801c: 0x6c331020, 0x2801e: 0x6c2a3020,
-	0x28021: 0x6d043a20, 0x28022: 0x6ca6ce20, 0x28023: 0x6c4dba20,
-	0x28024: 0x6c1f7a20, 0x28025: 0x6cd64a20, 0x28026: 0x6c97cc20,
-	0x2802c: 0x6ceda420, 0x2802d: 0x6d18dc20, 0x2802e: 0x6c2e4820, 0x2802f: 0x6d0c3a20,
-	0x28031: 0x6cf32420, 0x28032: 0x6cdba220,
-	0x28034: 0x6c019420, 0x28035: 0x6c7fd420, 0x28036: 0x6ca43e20,
-	0x28038: 0x6cc0b620, 0x28039: 0x6c9e6820, 0x2803a: 0x6caae420, 0x2803b: 0x6c11c020,
-	0x2803c: 0x6c11e620,
-	// Block 0xa01, offset 0x28040
-	0x28040: 0x6c808620, 0x28041: 0x6ce52a20, 0x28042: 0x6d139220,
-	0x28044: 0x6ca74e20, 0x28046: 0x6cd64e20,
-	0x2804b: 0x6c228620,
-	0x2804d: 0x6c663a20,
-	0x28050: 0x6c424020,
-	0x28054: 0x6c673220, 0x28055: 0x6c4caa20, 0x28057: 0x6d2dd620,
-	0x28059: 0x6c95dc20,
-	0x2805c: 0x6c5ebc20, 0x2805d: 0x6c4b5220,
-	0x28061: 0x6c63d220, 0x28062: 0x6c614a20,
-	0x28065: 0x6d08a020, 0x28067: 0x6c3c5a20,
-	0x2806b: 0x6c09ea20,
-	0x2806c: 0x6cb60a20, 0x2806f: 0x6d258e20,
-	0x28070: 0x6c021a20, 0x28071: 0x6c2b3820,
-	0x28074: 0x6c366820, 0x28075: 0x6c3b7e20,
-	0x28078: 0x6c727020, 0x28079: 0x6ca64220, 0x2807a: 0x6ceb3c20,
-	0x2807c: 0x6cd00c20, 0x2807d: 0x6c3eca20, 0x2807e: 0x6cf9e420, 0x2807f: 0x6cc1ac20,
-	// Block 0xa02, offset 0x28080
-	0x28080: 0x6cb39a20, 0x28081: 0x6ced4220, 0x28082: 0x6c8d4220, 0x28083: 0x6c96d220,
-	0x28084: 0x6d394020, 0x28085: 0x6c065c20, 0x28087: 0x6d23b620,
-	0x2808c: 0x6c082a20, 0x2808d: 0x6c973c20, 0x2808f: 0x6c637a20,
-	0x28091: 0x6d102e20, 0x28093: 0x6c7ade20,
-	0x28094: 0x6c69c020, 0x28096: 0x6c0df220,
-	0x2809a: 0x6c962420, 0x2809b: 0x6c4b1820,
-	0x2809c: 0x6c351420, 0x2809d: 0x6d36d420,
-	0x280a1: 0x6d326020, 0x280a2: 0x6c369e20, 0x280a3: 0x6d39ca20,
-	0x280a4: 0x6c039020,
-	0x280a8: 0x6d326220, 0x280a9: 0x6c3c6820, 0x280aa: 0x6c313820, 0x280ab: 0x6ca73c20,
-	0x280ac: 0x6c10bc20, 0x280ad: 0x6c336020, 0x280ae: 0x6ccc1c20, 0x280af: 0x6ccb6820,
-	0x280b0: 0x6c0a6220,
-	0x280b4: 0x6d36f420, 0x280b5: 0x6d309820, 0x280b6: 0x6c10be20,
-	0x280ba: 0x6c74c420, 0x280bb: 0x6d0aa820,
-	0x280bf: 0x6cf90020,
-	// Block 0xa03, offset 0x280c0
-	0x280c1: 0x6d3db820, 0x280c2: 0x6c045a20, 0x280c3: 0x6d115c20,
-	0x280c4: 0x6c1e3420, 0x280c5: 0x6cdeb620, 0x280c6: 0x6cb93020,
-	0x280c8: 0x6ca53820, 0x280c9: 0x6d242020, 0x280ca: 0x6c36bc20, 0x280cb: 0x6c650820,
-	0x280cc: 0x6d18de20, 0x280cd: 0x6cff2a20, 0x280cf: 0x6ca88020,
-	0x280d2: 0x6c0db620,
-	0x280d7: 0x6c4cd420,
-	0x280d8: 0x6d010820, 0x280d9: 0x6c2e4a20,
-	0x280dc: 0x6c70d620, 0x280dd: 0x6cdda420, 0x280de: 0x6c2ef420, 0x280df: 0x6c3f1420,
-	0x280e0: 0x6c9e4420, 0x280e1: 0x6cd3fa20, 0x280e2: 0x6d08c420, 0x280e3: 0x6ce39c20,
-	0x280e4: 0x6d244420, 0x280e7: 0x6d011820,
-	0x280e8: 0x6c3f1620, 0x280e9: 0x6d373420, 0x280ea: 0x6ca65a20, 0x280eb: 0x6d08c620,
-	0x280ec: 0x6d0fe820, 0x280ee: 0x6c3cd020, 0x280ef: 0x6d403c20,
-	0x280f0: 0x6d395e20, 0x280f1: 0x6d07de20,
-	0x280f5: 0x6d39d820, 0x280f7: 0x6c7edc20,
-	0x280f9: 0x6d1d5820, 0x280fa: 0x6c435c20, 0x280fb: 0x6c7e2c20,
-	0x280fd: 0x6c358820, 0x280fe: 0x6cef5620, 0x280ff: 0x6c9a3620,
-	// Block 0xa04, offset 0x28100
-	0x28103: 0x6c57fe20,
-	0x28104: 0x6c1e3820, 0x28106: 0x6cddb220, 0x28107: 0x6cdec820,
-	0x28108: 0x6cddb420, 0x28109: 0x6cdeca20, 0x2810a: 0x6d097a20,
-	0x2810c: 0x6c460820, 0x2810d: 0x6c643220, 0x2810f: 0x6c0fb020,
-	0x28110: 0x6cdecc20, 0x28111: 0x6d25f620,
-	0x28118: 0x6cdece20,
-	0x2811d: 0x6c20ec20,
-	0x28120: 0x6d047820, 0x28121: 0x6c519820, 0x28122: 0x6cdd4820,
-	0x28127: 0x6ca18a20,
-	0x28128: 0x6c1d2c20, 0x28129: 0x6cdbe420, 0x2812a: 0x6d2b2220, 0x2812b: 0x6c933220,
-	0x2812c: 0x6d2eea20, 0x2812d: 0x6c963c20, 0x2812e: 0x6d075820, 0x2812f: 0x6c653a20,
-	0x28130: 0x6ccd2220, 0x28132: 0x6d075a20,
-	0x2813e: 0x6c67cc20,
-	// Block 0xa05, offset 0x28140
-	0x28142: 0x6c067c20, 0x28143: 0x6c970c20,
-	0x28145: 0x6ce7a020, 0x28146: 0x6cf92c20,
-	0x28149: 0x6cc6e620, 0x2814b: 0x6cd12a20,
-	0x2814c: 0x6d396c20, 0x2814e: 0x6c654420, 0x2814f: 0x6c409a20,
-	0x28150: 0x6c2afa20, 0x28153: 0x6d1de220,
-	0x28154: 0x6c70e420, 0x28156: 0x6d195e20, 0x28157: 0x6c054820,
-	0x28159: 0x6ccb9620, 0x2815a: 0x6cdcc620,
-	0x2815c: 0x6c346e20, 0x2815d: 0x6d028420,
-	0x28161: 0x6c58c820,
-	0x28165: 0x6cc80c20, 0x28166: 0x6ca66c20, 0x28167: 0x6d397020,
-	0x28168: 0x6c4bac20, 0x2816a: 0x6c964820,
-	0x28172: 0x6d342e20, 0x28173: 0x6d076c20,
-	0x28175: 0x6d343020, 0x28177: 0x6c752a20,
-	0x28178: 0x6c70e820, 0x2817b: 0x6d25da20,
-	0x2817c: 0x6c91a420, 0x2817f: 0x6c0fda20,
-	// Block 0xa06, offset 0x28180
-	0x28182: 0x6cc6ea20, 0x28183: 0x6d029620,
-	0x28189: 0x6cf83220, 0x2818a: 0x6c959a20,
-	0x2818e: 0x6c447020,
-	0x28191: 0x6d414620, 0x28192: 0x6c4eca20,
-	0x28194: 0x6c685620, 0x28195: 0x6cc95420, 0x28196: 0x6cbd8a20, 0x28197: 0x6cc43c20,
-	0x28198: 0x6cad6420, 0x28199: 0x6d26da20, 0x2819a: 0x6c182c20, 0x2819b: 0x6c3ece20,
-	0x2819c: 0x6cadc020, 0x2819f: 0x6c9aa420,
-	0x281a2: 0x6ce1de20,
-	0x281a4: 0x6c78f020, 0x281a5: 0x6cf8d420,
-	0x281ab: 0x6c351620,
-	0x281ad: 0x6d187220,
-	0x281b0: 0x6cdc7e20, 0x281b2: 0x6cf9f820, 0x281b3: 0x6c730420,
-	0x281b5: 0x6cef3e20, 0x281b7: 0x6d18ba20,
-	0x281b9: 0x6d242220, 0x281bb: 0x6c045c20,
-	0x281bc: 0x6ceb5820, 0x281bd: 0x6cdeb820, 0x281be: 0x6cad6e20,
-	// Block 0xa07, offset 0x281c0
-	0x281c2: 0x6c0dfc20,
-	0x281c5: 0x6d286820, 0x281c6: 0x6d286a20, 0x281c7: 0x6c32e220,
-	0x281c8: 0x6cc88620, 0x281c9: 0x6cef5820,
-	0x281cf: 0x6cf05020,
-	0x281d0: 0x6c4b9820, 0x281d2: 0x6c26d420, 0x281d3: 0x6cfa1420,
-	0x281d6: 0x6c5d4a20, 0x281d7: 0x6c733220,
-	0x281d8: 0x6cdbe620, 0x281da: 0x6cdcbc20,
-	0x281dd: 0x6c90d620, 0x281de: 0x6c046420, 0x281df: 0x6d246e20,
-	0x281e0: 0x6d337420, 0x281e1: 0x6c4ba620, 0x281e3: 0x6c7c5820,
-	0x281e4: 0x6c42f220, 0x281e5: 0x6c281620,
-	0x281e9: 0x6cfc5a20, 0x281ea: 0x6d2d2420, 0x281eb: 0x6ccb9820,
-	0x281ed: 0x6c784620, 0x281ee: 0x6c105020, 0x281ef: 0x6c0fce20,
-	0x281f2: 0x6cdcc820,
-	0x281f4: 0x6d249420, 0x281f5: 0x6c105220, 0x281f6: 0x6c6f9220, 0x281f7: 0x6c6f9420,
-	0x281f9: 0x6c73aa20, 0x281fa: 0x6c754220,
-	0x281fc: 0x6ca31620, 0x281fd: 0x6d2d1c20, 0x281fe: 0x6ce1ba20, 0x281ff: 0x6cefec20,
-	// Block 0xa08, offset 0x28200
-	0x28200: 0x6cf9dc20, 0x28201: 0x6d01cc20,
-	0x28205: 0x6cc9a620, 0x28206: 0x6c5f6620,
-	0x28209: 0x6d026a20,
-	0x2820c: 0x6c338c20, 0x2820d: 0x6d3f2620,
-	0x28218: 0x6d25ee20, 0x28219: 0x6cbe1e20, 0x2821a: 0x6c3ed020, 0x2821b: 0x6caeba20,
-	0x2821c: 0x6cad6620, 0x2821e: 0x6d1b7620,
-	0x28220: 0x6c52c220, 0x28221: 0x6d40d420, 0x28223: 0x6c45a820,
-	0x28224: 0x6c308820, 0x28225: 0x6c50a820, 0x28226: 0x6cf31020,
-	0x28228: 0x6cace220, 0x2822b: 0x6cdb2820,
-	0x2822c: 0x6c76f020, 0x2822d: 0x6ca88220, 0x2822e: 0x6c4ffa20, 0x2822f: 0x6c3cfa20,
-	0x28230: 0x6c36be20, 0x28231: 0x6d137620,
-	0x28234: 0x6ce69820, 0x28235: 0x6c309420, 0x28236: 0x6d30ba20, 0x28237: 0x6cca7820,
-	0x2823b: 0x6ca18c20,
-	0x2823c: 0x6cdb6020, 0x2823e: 0x6c823220,
-	// Block 0xa09, offset 0x28240
-	0x28240: 0x6cb4a620, 0x28241: 0x6c35a620, 0x28242: 0x6d3de220, 0x28243: 0x6d139820,
-	0x28247: 0x6cfda220,
-	0x28248: 0x6c4a2c20, 0x28249: 0x6cc59e20, 0x2824a: 0x6c8dfe20,
-	0x2824d: 0x6c02cc20,
-	0x28250: 0x6c146820, 0x28252: 0x6c345620, 0x28253: 0x6cbf3620,
-	0x28254: 0x6c7a4620, 0x28255: 0x6d05b020, 0x28256: 0x6c587c20, 0x28257: 0x6d10aa20,
-	0x28258: 0x6d324620, 0x28259: 0x6ce6da20, 0x2825a: 0x6c082420,
-	0x2825d: 0x6c020220, 0x2825f: 0x6c76b420,
-	0x28261: 0x6c7a4c20, 0x28262: 0x6cadde20, 0x28263: 0x6d205220,
-	0x28264: 0x6c02aa20, 0x28265: 0x6c9ad020, 0x28266: 0x6ca13620,
-	0x2826c: 0x6c3f7220, 0x2826d: 0x6cbe5020, 0x2826e: 0x6c7e8220, 0x2826f: 0x6c30f220,
-	0x28270: 0x6ce06c20, 0x28273: 0x6cba1c20,
-	0x28274: 0x6d121c20, 0x28275: 0x6cf0b620, 0x28276: 0x6c558c20, 0x28277: 0x6ca14620,
-	0x28278: 0x6c50a620, 0x28279: 0x6d08ac20, 0x2827b: 0x6c0a1220,
-	0x2827c: 0x6cb31a20, 0x2827e: 0x6c2b3c20,
-	// Block 0xa0a, offset 0x28280
-	0x28280: 0x6d31f020, 0x28282: 0x6cd1e420, 0x28283: 0x6c76e420,
-	0x28284: 0x6c130c20, 0x28287: 0x6d05c420,
-	0x28288: 0x6d31f220, 0x2828a: 0x6d3a7820,
-	0x2828f: 0x6c5c2420,
-	0x28290: 0x6c1bc020, 0x28293: 0x6c53aa20,
-	0x28294: 0x6caa0420, 0x28295: 0x6ca86a20, 0x28296: 0x6d0eb020,
-	0x28298: 0x6c1d4020, 0x28299: 0x6c3f8620, 0x2829a: 0x6c49f420, 0x2829b: 0x6cb52c20,
-	0x2829d: 0x6c44a220, 0x2829e: 0x6ce6e020,
-	0x282a2: 0x6ce07220, 0x282a3: 0x6cba2020,
-	0x282a6: 0x6c702020, 0x282a7: 0x6d05e220,
-	0x282a8: 0x6cb71620, 0x282aa: 0x6d326420,
-	0x282ae: 0x6cc09c20,
-	0x282b0: 0x6c35bc20, 0x282b3: 0x6c5c4c20,
-	0x282b4: 0x6c53d820, 0x282b5: 0x6cbeb420, 0x282b7: 0x6c17e020,
-	0x282ba: 0x6c405c20,
-	0x282bc: 0x6c52ce20, 0x282bd: 0x6cf6e220, 0x282be: 0x6cf3ee20, 0x282bf: 0x6c987820,
-	// Block 0xa0b, offset 0x282c0
-	0x282c2: 0x6ce2fc20,
-	0x282c5: 0x6c52d020,
-	0x282d0: 0x6c0f6a20, 0x282d2: 0x6cbde820, 0x282d3: 0x6c44a420,
-	0x282d6: 0x6c3f0020, 0x282d7: 0x6c7cde20,
-	0x282dd: 0x6c0cfe20, 0x282de: 0x6c6eba20, 0x282df: 0x6c76f220,
-	0x282e0: 0x6c4a9020, 0x282e2: 0x6c432820, 0x282e3: 0x6d05f420,
-	0x282e4: 0x6c01d420, 0x282e5: 0x6d26f420, 0x282e6: 0x6cf53420, 0x282e7: 0x6d157a20,
-	0x282e8: 0x6c6dda20, 0x282ea: 0x6c930220, 0x282eb: 0x6cc31c20,
-	0x282ec: 0x6ce9c820, 0x282ee: 0x6c62a420,
-	0x282fa: 0x6c6f3420, 0x282fb: 0x6c74d420,
-	0x282fc: 0x6cb1d620, 0x282fd: 0x6c7d8a20,
-	// Block 0xa0c, offset 0x28300
-	0x28300: 0x6cec7420, 0x28301: 0x6c5c7620, 0x28302: 0x6c341220, 0x28303: 0x6d25f420,
-	0x28304: 0x6c6b6a20, 0x28306: 0x6c4b9020, 0x28307: 0x6c432e20,
-	0x28308: 0x6cb3b220, 0x28309: 0x6c9ade20, 0x2830a: 0x6d3bf020, 0x2830b: 0x6c4f9c20,
-	0x28314: 0x6d1e0420, 0x28315: 0x6cc0a420, 0x28317: 0x6c834e20,
-	0x28318: 0x6c020620, 0x28319: 0x6cb08020, 0x2831a: 0x6cf24220,
-	0x2831d: 0x6cbe2a20, 0x2831f: 0x6cbdee20,
-	0x28320: 0x6c9f0620, 0x28321: 0x6c30d020, 0x28322: 0x6c9c9420, 0x28323: 0x6d2db820,
-	0x28325: 0x6cbec020, 0x28326: 0x6d158c20,
-	0x2832e: 0x6c04aa20,
-	0x28331: 0x6c730a20, 0x28333: 0x6d2b2420,
-	0x28334: 0x6d075c20, 0x28335: 0x6c7ff420, 0x28336: 0x6c968220, 0x28337: 0x6c968420,
-	0x28338: 0x6cab6220, 0x28339: 0x6c06c020, 0x2833b: 0x6cb3e820,
-	0x2833c: 0x6d075e20,
-	// Block 0xa0d, offset 0x28340
-	0x28340: 0x6c02fe20,
-	0x28346: 0x6c53ae20,
-	0x28349: 0x6c53b020, 0x2834a: 0x6d2e3c20,
-	0x2834c: 0x6ccbb620, 0x2834d: 0x6c433020, 0x2834f: 0x6cb34420,
-	0x28350: 0x6c8aae20,
-	0x28355: 0x6cec7a20, 0x28356: 0x6d07f420,
-	0x2835c: 0x6c7cb820, 0x2835f: 0x6c36ea20,
-	0x28360: 0x6c4f3e20, 0x28361: 0x6ccb9a20,
-	0x28364: 0x6c28ee20,
-	0x2836a: 0x6d07f620,
-	0x2836c: 0x6c36f420, 0x2836d: 0x6c415a20, 0x2836f: 0x6c29c820,
-	0x28371: 0x6c9bfa20, 0x28372: 0x6d143e20, 0x28373: 0x6ca94e20,
-	0x28375: 0x6cb23020,
-	0x28379: 0x6c124620,
-	0x2837e: 0x6d263c20,
-	// Block 0xa0e, offset 0x28380
-	0x28380: 0x6c36fc20, 0x28381: 0x6ca8ca20,
-	0x28384: 0x6d1b2e20, 0x28387: 0x6cbbca20,
-	0x28389: 0x6c52e220, 0x2838a: 0x6c8dca20,
-	0x2838c: 0x6c14e820, 0x2838d: 0x6d1d3020,
-	0x28392: 0x6c494820,
-	0x28394: 0x6ca7ca20, 0x28395: 0x6d05c620, 0x28396: 0x6cdff820, 0x28397: 0x6c6d6e20,
-	0x2839b: 0x6caea620,
-	0x2839d: 0x6c89e820,
-	0x283a0: 0x6c072c20, 0x283a3: 0x6d030020,
-	0x283a4: 0x6cea6020, 0x283a5: 0x6c174e20, 0x283a6: 0x6c41a420,
-	0x283a8: 0x6c54e020, 0x283a9: 0x6cee2e20,
-	0x283ac: 0x6c3eba20, 0x283ad: 0x6cae2220, 0x283af: 0x6ca4b620,
-	0x283b0: 0x6d0a1820, 0x283b1: 0x6d096c20,
-	0x283b4: 0x6c8f1220, 0x283b5: 0x6c8d4420, 0x283b6: 0x6d097020, 0x283b7: 0x6cc12e20,
-	0x283b8: 0x6c4fda20, 0x283b9: 0x6d153c20, 0x283ba: 0x6c4ef420,
-	0x283bc: 0x6c3ed220, 0x283bd: 0x6c038a20, 0x283be: 0x6d153e20,
-	// Block 0xa0f, offset 0x283c0
-	0x283c0: 0x6c0f3820,
-	0x283c4: 0x6c52c420, 0x283c5: 0x6c866a20,
-	0x283c9: 0x6cc98820, 0x283ca: 0x6cf6b220,
-	0x283ce: 0x6cd3ce20, 0x283cf: 0x6cb15e20,
-	0x283d0: 0x6c57c220, 0x283d1: 0x6d155220, 0x283d2: 0x6c0f5220, 0x283d3: 0x6c0f6c20,
-	0x283d4: 0x6ca57620, 0x283d5: 0x6cc09e20,
-	0x283d8: 0x6cf01e20, 0x283d9: 0x6c184a20, 0x283da: 0x6d1f7820,
-	0x283dc: 0x6cf0dc20, 0x283dd: 0x6c5b6820, 0x283de: 0x6cc99a20,
-	0x283e2: 0x6c53da20, 0x283e3: 0x6cd9e820,
-	0x283e4: 0x6c4f1220, 0x283e5: 0x6cad6a20, 0x283e7: 0x6c39b020,
-	0x283e9: 0x6c8eae20, 0x283ea: 0x6d395a20, 0x283eb: 0x6cb02a20,
-	0x283ed: 0x6c86b620,
-	0x283f0: 0x6c20e820, 0x283f1: 0x6cf6fc20, 0x283f2: 0x6d330220,
-	0x283f4: 0x6c085620, 0x283f5: 0x6d333420, 0x283f6: 0x6cdc9620, 0x283f7: 0x6d0de420,
-	0x283fc: 0x6cbe5a20, 0x283fd: 0x6cf53620, 0x283fe: 0x6c89a620,
-	// Block 0xa10, offset 0x28400
-	0x28400: 0x6d2fe420, 0x28401: 0x6c897220,
-	0x28405: 0x6c6a3c20, 0x28407: 0x6c52da20,
-	0x28408: 0x6d1ec020, 0x2840a: 0x6c7ea220, 0x2840b: 0x6c548620,
-	0x2840d: 0x6d263620, 0x2840e: 0x6c539620, 0x2840f: 0x6d137820,
-	0x28411: 0x6d1d1c20, 0x28412: 0x6d086020, 0x28413: 0x6d1f8620,
-	0x28418: 0x6cc32020,
-	0x2841c: 0x6ce15e20, 0x2841d: 0x6cddb620, 0x2841f: 0x6c871020,
-	0x28420: 0x6cd9fc20, 0x28421: 0x6c871220,
-	0x28424: 0x6d245420, 0x28427: 0x6d192020,
-	0x2842d: 0x6d051220, 0x2842e: 0x6c028620, 0x2842f: 0x6ce97420,
-	0x28430: 0x6cdb6220, 0x28431: 0x6cd67a20, 0x28433: 0x6d247020,
-	0x28435: 0x6c3c7a20,
-	0x28439: 0x6cdb6620, 0x2843a: 0x6ce9da20, 0x2843b: 0x6d247220,
-	0x2843c: 0x6d331020, 0x2843d: 0x6d331220, 0x2843f: 0x6ce25420,
-	// Block 0xa11, offset 0x28440
-	0x28444: 0x6c8ee020, 0x28446: 0x6c1a5c20, 0x28447: 0x6cdc0620,
-	0x28448: 0x6ccad820,
-	0x2844f: 0x6c47f420,
-	0x28450: 0x6c3c8a20, 0x28451: 0x6c8b8420, 0x28452: 0x6cb17a20,
-	0x28456: 0x6c87b620,
-	0x28458: 0x6c901820, 0x28459: 0x6c1e7020, 0x2845a: 0x6cff6220, 0x2845b: 0x6c52e420,
-	0x2845c: 0x6d029820, 0x2845d: 0x6ccf9420,
-	0x28460: 0x6c902620, 0x28461: 0x6c53ea20, 0x28462: 0x6d083e20, 0x28463: 0x6c3c9620,
-	0x28465: 0x6c037420, 0x28466: 0x6c0ecc20, 0x28467: 0x6ce22620,
-	0x28468: 0x6cdabc20, 0x28469: 0x6d2fb820, 0x2846a: 0x6c0c0220, 0x2846b: 0x6cd9c420,
-	0x2846c: 0x6ce9aa20, 0x2846d: 0x6cdd8820, 0x2846e: 0x6cfefa20, 0x2846f: 0x6c527220,
-	0x28470: 0x6ccac620, 0x28472: 0x6c3a1020,
-	0x28477: 0x6ca9aa20,
-	0x28478: 0x6c98ac20,
-	0x2847d: 0x6c58ca20, 0x2847e: 0x6d343420,
-	// Block 0xa12, offset 0x28480
-	0x28482: 0x6d171620,
-	0x28484: 0x6d22fe20, 0x28487: 0x6d14f020,
-	0x28488: 0x6d264e20, 0x28489: 0x6c1b2220,
-	0x28495: 0x6d1aea20, 0x28496: 0x6ca9a620, 0x28497: 0x6cc71420,
-	0x2849b: 0x6ca34a20,
-	0x284a3: 0x6ce4a620,
-	0x284a5: 0x6c035020,
-	0x284aa: 0x6c379c20, 0x284ab: 0x6d32dc20,
-	0x284ac: 0x6c366a20, 0x284ad: 0x6cb3dc20, 0x284ae: 0x6c5efa20, 0x284af: 0x6ca5f620,
-	0x284b1: 0x6c6f2020, 0x284b2: 0x6c63d420,
-	0x284b5: 0x6c41a620,
-	0x284b9: 0x6c8d2e20, 0x284bb: 0x6d41bc20,
-	0x284be: 0x6c073820,
-	// Block 0xa13, offset 0x284c0
-	0x284c5: 0x6cd4f220, 0x284c6: 0x6d15fc20, 0x284c7: 0x6cabf420,
-	0x284cb: 0x6ca50e20,
-	0x284cc: 0x6cd3c020, 0x284ce: 0x6c97c620, 0x284cf: 0x6cd3c220,
-	0x284d1: 0x6ce35e20,
-	0x284d8: 0x6c45a420,
-	0x284dd: 0x6c834420, 0x284de: 0x6c061020, 0x284df: 0x6d251020,
-	0x284e0: 0x6d422820, 0x284e1: 0x6c80e620, 0x284e2: 0x6d04f220,
-	0x284e5: 0x6d294220, 0x284e6: 0x6c1a8620, 0x284e7: 0x6c64e820,
-	0x284e8: 0x6c99b420, 0x284e9: 0x6c63e220, 0x284ea: 0x6d23de20,
-	0x284ed: 0x6d23e020, 0x284ee: 0x6d155420,
-	0x284f2: 0x6c982020, 0x284f3: 0x6d294420,
-	0x284f5: 0x6d3ca820, 0x284f6: 0x6ce37620,
-	0x284f9: 0x6cf8d620, 0x284fa: 0x6c716020, 0x284fb: 0x6d299e20,
-	0x284fc: 0x6c92e420, 0x284fd: 0x6ce24420,
-	// Block 0xa14, offset 0x28500
-	0x28500: 0x6d3cb020, 0x28501: 0x6c8d6020, 0x28503: 0x6c729c20,
-	0x28506: 0x6c5f4c20, 0x28507: 0x6c733020,
-	0x2850a: 0x6d3e9a20,
-	0x2850c: 0x6d265a20, 0x2850d: 0x6c301620,
-	0x28512: 0x6ca47020,
-	0x28516: 0x6c1d2420,
-	0x2851f: 0x6c022020,
-	0x28523: 0x6c44e020,
-	0x28525: 0x6c0e9420, 0x28526: 0x6c2fbc20, 0x28527: 0x6cf02220,
-	0x2852c: 0x6cc31a20, 0x2852d: 0x6c783a20,
-	0x28530: 0x6cb0cc20, 0x28531: 0x6c76f420, 0x28532: 0x6c3f0e20, 0x28533: 0x6d1e6220,
-	0x28535: 0x6ce96620, 0x28536: 0x6ce81e20, 0x28537: 0x6d205a20,
-	0x28538: 0x6d10c020, 0x2853a: 0x6d126c20,
-	0x2853d: 0x6d0ed220,
-	// Block 0xa15, offset 0x28540
-	0x28548: 0x6cfbb220, 0x2854a: 0x6ce38e20,
-	0x2854c: 0x6cdc9820,
-	0x28550: 0x6c227420,
-	0x28554: 0x6d066220, 0x28555: 0x6cf53820, 0x28556: 0x6c117420, 0x28557: 0x6d242420,
-	0x2855a: 0x6c15f820, 0x2855b: 0x6cfa1020,
-	0x2855d: 0x6c77ce20, 0x2855e: 0x6c124220, 0x2855f: 0x6c13bc20,
-	0x28560: 0x6cc0b420, 0x28563: 0x6c267220,
-	0x28565: 0x6cdb5620,
-	0x28568: 0x6c571c20,
-	0x28577: 0x6cf38e20,
-	0x28578: 0x6d251a20,
-	0x2857d: 0x6c681220, 0x2857e: 0x6cfe0820, 0x2857f: 0x6d2d0620,
-	// Block 0xa16, offset 0x28580
-	0x28580: 0x6cca3a20, 0x28581: 0x6ca09220, 0x28583: 0x6cce3e20,
-	0x28584: 0x6c12a420, 0x28585: 0x6cdbe220, 0x28586: 0x6c208420, 0x28587: 0x6c9c9620,
-	0x28588: 0x6d3a3420, 0x28589: 0x6c1d2820, 0x2858a: 0x6c62c220, 0x2858b: 0x6c1d2a20,
-	0x28599: 0x6c889020,
-	0x2859e: 0x6c4d8020,
-	0x285a4: 0x6c33c220, 0x285a5: 0x6cfe0c20, 0x285a6: 0x6c19ae20, 0x285a7: 0x6cce4020,
-	0x285a8: 0x6c873820, 0x285a9: 0x6c5a2c20,
-	0x285ac: 0x6c2af820, 0x285af: 0x6c897a20,
-	0x285b6: 0x6d28a420,
-	0x285ba: 0x6c5e4420, 0x285bb: 0x6c8c0420,
-	0x285be: 0x6c31ee20, 0x285bf: 0x6c4f3620,
-	// Block 0xa17, offset 0x285c0
-	0x285c0: 0x6d1ddc20, 0x285c1: 0x6d263a20, 0x285c2: 0x6c4cf420, 0x285c3: 0x6c8d9c20,
-	0x285c5: 0x6c88de20, 0x285c7: 0x6c030220,
-	0x285c8: 0x6c292220, 0x285c9: 0x6d194e20, 0x285ca: 0x6ca9e420, 0x285cb: 0x6ccde620,
-	0x285cd: 0x6d035c20,
-	0x285d0: 0x6c26da20, 0x285d1: 0x6d247420, 0x285d2: 0x6c118220, 0x285d3: 0x6cf33420,
-	0x285d4: 0x6c141420, 0x285d5: 0x6c0fca20, 0x285d7: 0x6c663020,
-	0x285de: 0x6c9bb820, 0x285df: 0x6cf05e20,
-	0x285e0: 0x6ca09e20,
-	0x285e5: 0x6cd73820, 0x285e6: 0x6c6b8220, 0x285e7: 0x6cd7b220,
-	0x285e8: 0x6c5e5420, 0x285eb: 0x6c21ee20,
-	0x285ed: 0x6c901420, 0x285ee: 0x6c582420,
-	0x285f0: 0x6ceada20, 0x285f3: 0x6d220620,
-	0x285f6: 0x6c165a20, 0x285f7: 0x6d1dee20,
-	0x285f8: 0x6c5e5e20, 0x285fa: 0x6c806820,
-	0x285ff: 0x6ca30c20,
-	// Block 0xa18, offset 0x28600
-	0x28600: 0x6c032220, 0x28601: 0x6c418020, 0x28602: 0x6d15cc20, 0x28603: 0x6c63ac20,
-	0x28605: 0x6c269220, 0x28606: 0x6c2fa420, 0x28607: 0x6d0a8220,
-	0x28608: 0x6cc59620, 0x28609: 0x6c732020, 0x2860a: 0x6ce94c20, 0x2860b: 0x6d064020,
-	0x2860c: 0x6cd99220, 0x2860e: 0x6c128420, 0x2860f: 0x6c198e20,
-	0x28611: 0x6c2f7020,
-	0x2861a: 0x6c4d2620,
-	0x2861f: 0x6cf47220,
-	0x28626: 0x6cb72020,
-	0x28628: 0x6c5f6820,
-	0x2862e: 0x6c7cac20, 0x2862f: 0x6cef5e20,
-	0x28636: 0x6cd44e20, 0x28637: 0x6c3f2820,
-	0x28639: 0x6ce97a20, 0x2863b: 0x6c0cf020,
-	0x2863d: 0x6cdff020, 0x2863e: 0x6c4f5220, 0x2863f: 0x6cb1ce20,
-	// Block 0xa19, offset 0x28640
-	0x28643: 0x6d217e20,
-	0x28644: 0x6cdffa20,
-	0x2864c: 0x6cfd9020, 0x2864e: 0x6d050c20,
-	0x28653: 0x6cf26820,
-	0x28654: 0x6c4d8220, 0x28655: 0x6caef220,
-	0x2865d: 0x6ce04620, 0x2865f: 0x6c0d0a20,
-	0x28660: 0x6cfd9e20, 0x28663: 0x6d162e20,
-	0x28666: 0x6cb19020, 0x28667: 0x6c586c20,
-	0x28668: 0x6ca24020, 0x28669: 0x6c035220, 0x2866b: 0x6c396020,
-	0x2866f: 0x6c2f6020,
-	0x28677: 0x6c3b3c20,
-	0x2867a: 0x6c6bf620,
-	0x2867e: 0x6cdd4a20,
-	// Block 0xa1a, offset 0x28680
-	0x28684: 0x6ced9220, 0x28685: 0x6c43a220,
-	0x28688: 0x6c3b3e20, 0x2868a: 0x6ceb4420,
-	0x2868c: 0x6cf1a620, 0x2868d: 0x6c487620, 0x2868e: 0x6c343620,
-	0x28690: 0x6d308820, 0x28691: 0x6c22a020, 0x28692: 0x6d11ce20,
-	0x28694: 0x6c050420, 0x28695: 0x6c10b820, 0x28696: 0x6ca15c20,
-	0x28698: 0x6cb35e20, 0x2869b: 0x6c443020,
-	0x2869e: 0x6c8e9220,
-	0x286a1: 0x6cc4d020,
-	0x286a8: 0x6c41b020, 0x286aa: 0x6c55a220, 0x286ab: 0x6ca1e620,
-	0x286ae: 0x6d04f620, 0x286af: 0x6c59a220,
-	0x286b0: 0x6c3f0220, 0x286b1: 0x6c5b4220, 0x286b3: 0x6cc1ca20,
-	0x286b4: 0x6c6b3e20, 0x286b5: 0x6cead220, 0x286b6: 0x6d21ac20, 0x286b7: 0x6ca16820,
-	0x286b8: 0x6d38b220, 0x286b9: 0x6c702820, 0x286bb: 0x6cd53c20,
-	0x286bc: 0x6c7bae20, 0x286bd: 0x6cbf6620, 0x286be: 0x6c8b2c20, 0x286bf: 0x6c405e20,
-	// Block 0xa1b, offset 0x286c0
-	0x286ca: 0x6d074420,
-	0x286d6: 0x6c8c6e20,
-	0x286d8: 0x6ca88420, 0x286da: 0x6caf9c20,
-	0x286dc: 0x6c406e20, 0x286dd: 0x6c10c620, 0x286de: 0x6d18e020,
-	0x286e1: 0x6c0f8620, 0x286e3: 0x6c358420,
-	0x286e9: 0x6d30a620, 0x286eb: 0x6c86b820,
-	0x286ee: 0x6ce92620, 0x286ef: 0x6c26cc20,
-	0x286f1: 0x6c931620, 0x286f2: 0x6d0c4020, 0x286f3: 0x6c301e20,
-	0x286f4: 0x6cbcfc20, 0x286f5: 0x6ced5c20, 0x286f6: 0x6ca03c20, 0x286f7: 0x6d418020,
-	0x286f8: 0x6c408420, 0x286f9: 0x6cc15620, 0x286fa: 0x6c078e20, 0x286fb: 0x6c02b420,
-	0x286fc: 0x6cbaf620,
-	// Block 0xa1c, offset 0x28700
-	0x28701: 0x6cc44020,
-	0x28708: 0x6cc41020, 0x28709: 0x6c576a20, 0x2870a: 0x6cfd2a20, 0x2870b: 0x6c7dd820,
-	0x2870f: 0x6c258220,
-	0x28712: 0x6d158820,
-	0x28716: 0x6c1ae420, 0x28717: 0x6d404020,
-	0x28718: 0x6ca52420, 0x28719: 0x6c1a5820, 0x2871a: 0x6c32a820, 0x2871b: 0x6d1e0620,
-	0x2871c: 0x6d30e020, 0x2871e: 0x6ce0b020, 0x2871f: 0x6d0ff020,
-	0x28720: 0x6d011e20, 0x28721: 0x6d07ec20, 0x28723: 0x6c32e420,
-	0x28724: 0x6cd64c20, 0x28725: 0x6cfbbe20, 0x28726: 0x6cfbc020,
-	0x28729: 0x6c359e20,
-	0x28732: 0x6c7e5420,
-	0x28738: 0x6cf10220, 0x28739: 0x6d1ec820, 0x2873a: 0x6d21e020,
-	0x2873d: 0x6ce30420, 0x2873f: 0x6c6c7220,
-	// Block 0xa1d, offset 0x28740
-	0x28741: 0x6ce16420, 0x28742: 0x6cb69e20,
-	0x28744: 0x6c2cec20, 0x28745: 0x6ce1fe20, 0x28746: 0x6c941820, 0x28747: 0x6d2e9a20,
-	0x28748: 0x6cf17020, 0x28749: 0x6c62d620, 0x2874a: 0x6c023820, 0x2874b: 0x6cabaa20,
-	0x2874c: 0x6cb88420,
-	0x28750: 0x6cd21220, 0x28751: 0x6cde2420,
-	0x28754: 0x6ca18e20,
-	0x28758: 0x6d1f9220,
-	0x28760: 0x6d2c6a20, 0x28763: 0x6d117220,
-	0x2876b: 0x6c1cfa20,
-	0x2876c: 0x6c84b220, 0x2876d: 0x6d21f420, 0x2876e: 0x6c161420, 0x2876f: 0x6d143620,
-	0x28772: 0x6c1c9420,
-	0x28774: 0x6c84b420,
-	0x2877d: 0x6ce90a20, 0x2877f: 0x6d40fe20,
-	// Block 0xa1e, offset 0x28780
-	0x28782: 0x6cfbd620,
-	0x28787: 0x6cf93620,
-	0x28789: 0x6c0d0c20, 0x2878a: 0x6c4e4a20, 0x2878b: 0x6cb6b020,
-	0x2878c: 0x6cca7a20, 0x2878e: 0x6c3a2c20,
-	0x28790: 0x6ccdea20,
-	0x28798: 0x6c584820,
-	0x287a0: 0x6c059a20, 0x287a1: 0x6d220220, 0x287a2: 0x6d220420,
-	0x287a4: 0x6c610420,
-	0x287b1: 0x6c7b0620, 0x287b2: 0x6d3fe420,
-	0x287b9: 0x6cfd5420, 0x287ba: 0x6c9bc020,
-	// Block 0xa1f, offset 0x287c0
-	0x287c3: 0x6c87b820,
-	0x287c4: 0x6d377820, 0x287c5: 0x6c38fc20, 0x287c6: 0x6c8b8820, 0x287c7: 0x6c115620,
-	0x287c8: 0x6c320a20, 0x287c9: 0x6c4a0020, 0x287ca: 0x6d04b020, 0x287cb: 0x6c84ea20,
-	0x287cc: 0x6cb80c20, 0x287cf: 0x6c753420,
-	0x287d0: 0x6ceade20, 0x287d2: 0x6c72d220, 0x287d3: 0x6cff6420,
-	0x287d8: 0x6cc23420,
-	0x287dc: 0x6d3bba20,
-	0x287e1: 0x6c754420,
-	0x287e6: 0x6c6bbc20,
-	0x287e8: 0x6d390620, 0x287e9: 0x6cfc8820, 0x287ea: 0x6c8f7020, 0x287eb: 0x6d100420,
-	0x287ec: 0x6cc4b220, 0x287ed: 0x6d16d620, 0x287ee: 0x6c8ae020, 0x287ef: 0x6c0e5620,
-	0x287f0: 0x6c5ce220, 0x287f1: 0x6c61be20, 0x287f2: 0x6c306a20, 0x287f3: 0x6d386420,
-	0x287f4: 0x6cc29220, 0x287f5: 0x6c6a9c20,
-	0x287fa: 0x6c710820,
-	0x287fc: 0x6c078620, 0x287ff: 0x6c087620,
-	// Block 0xa20, offset 0x28800
-	0x28800: 0x6c43fe20, 0x28801: 0x6c217c20, 0x28803: 0x6cb9a220,
-	0x28804: 0x6cd9c820, 0x28805: 0x6cf0a020, 0x28806: 0x6c1a1420, 0x28807: 0x6c909020,
-	0x28808: 0x6d213e20, 0x28809: 0x6c7e4620, 0x2880a: 0x6cb9a420, 0x2880b: 0x6c2cd220,
-	0x2880c: 0x6cde0e20, 0x2880d: 0x6d2e6c20, 0x2880f: 0x6c38b620,
-	0x28810: 0x6c8b5620, 0x28811: 0x6ce64420, 0x28812: 0x6c5ebe20, 0x28813: 0x6cb8de20,
-	0x28814: 0x6c556820, 0x28817: 0x6d214220,
-	0x28818: 0x6cb79c20, 0x28819: 0x6d214420, 0x2881a: 0x6cebe020,
-	0x2881c: 0x6c03bc20, 0x2881d: 0x6cb61020, 0x2881e: 0x6cc95620, 0x2881f: 0x6cbb8620,
-	0x28820: 0x6d0bc220, 0x28821: 0x6cfc1e20,
-	0x28828: 0x6c220820, 0x28829: 0x6c396220, 0x2882b: 0x6c7dba20,
-	0x2882c: 0x6c4be020, 0x2882d: 0x6cc39220, 0x2882e: 0x6c367a20, 0x2882f: 0x6cbf4e20,
-	0x28832: 0x6c96d420, 0x28833: 0x6c7a5820,
-	0x28834: 0x6d11c620, 0x28837: 0x6cc39420,
-	0x28838: 0x6c1e6420, 0x28839: 0x6c642c20, 0x2883b: 0x6d3a7a20,
-	0x2883d: 0x6c331220, 0x2883e: 0x6cec0a20,
-	// Block 0xa21, offset 0x28840
-	0x28840: 0x6ca51220,
-	0x28844: 0x6d0cce20, 0x28845: 0x6ce78020,
-	0x2884b: 0x6d03fe20,
-	0x2884c: 0x6c4bee20, 0x2884d: 0x6cb26a20,
-	0x28851: 0x6d229c20, 0x28852: 0x6c51ec20,
-	0x28854: 0x6d3da420, 0x28857: 0x6ccf0020,
-	0x28858: 0x6d22a220, 0x2885b: 0x6c62a620,
-	0x2885d: 0x6cbaea20, 0x2885e: 0x6cd73220, 0x2885f: 0x6c21de20,
-	0x28860: 0x6d40e820, 0x28861: 0x6c838e20, 0x28862: 0x6ca60e20,
-	0x28864: 0x6cebf820, 0x28865: 0x6d2c5c20, 0x28867: 0x6c28d420,
-	0x2886e: 0x6c328820, 0x2886f: 0x6c0bd020,
-	0x28870: 0x6c6a3e20, 0x28871: 0x6cb87c20, 0x28872: 0x6c519020, 0x28873: 0x6c1d5e20,
-	0x28874: 0x6d0ce620, 0x28876: 0x6d0ee020,
-	0x2887a: 0x6cd94e20, 0x2887b: 0x6ce2c420,
-	0x2887c: 0x6d11e020, 0x2887e: 0x6c779620,
-	// Block 0xa22, offset 0x28880
-	0x28880: 0x6d3c6e20, 0x28881: 0x6c4b9a20, 0x28882: 0x6c005a20, 0x28883: 0x6c4d8420,
-	0x28888: 0x6cddb820, 0x28889: 0x6d076020, 0x2888a: 0x6c0c5020,
-	0x2888c: 0x6c3cfc20, 0x2888d: 0x6cc15e20, 0x2888e: 0x6c98ae20,
-	0x28890: 0x6c4ca020,
-	0x28896: 0x6c0ac420, 0x28897: 0x6c751020,
-	0x28898: 0x6c208a20, 0x2889b: 0x6cb47420,
-	0x2889f: 0x6d195020,
-	0x288a2: 0x6cb95020, 0x288a3: 0x6d196220,
-	0x288a4: 0x6c36ec20, 0x288a5: 0x6c8da620, 0x288a7: 0x6c0ace20,
-	0x288ad: 0x6c5e5620, 0x288ae: 0x6ca0b620,
-	0x288b1: 0x6d09ce20,
-	0x288b4: 0x6d0f1e20,
-	0x288b8: 0x6c87ba20, 0x288ba: 0x6ce04e20,
-	0x288be: 0x6c947e20,
-	// Block 0xa23, offset 0x288c0
-	0x288c0: 0x6c769020, 0x288c1: 0x6c99aa20, 0x288c2: 0x6cfefc20,
-	0x288c7: 0x6c007220,
-	0x288ca: 0x6cde1420,
-	0x288cd: 0x6c9aac20, 0x288cf: 0x6c4c4220,
-	0x288d3: 0x6c432220,
-	0x288d4: 0x6ca4c220, 0x288d5: 0x6c4ffc20,
-	0x288e0: 0x6cc39820,
-	0x288e5: 0x6c12a620, 0x288e6: 0x6ccb0a20,
-	0x288eb: 0x6cb03c20,
-	0x288f2: 0x6d006220, 0x288f3: 0x6cff6620,
-	0x288f4: 0x6c712c20,
-	0x288f9: 0x6c1a2420, 0x288fa: 0x6ca50820,
-	// Block 0xa24, offset 0x28900
-	0x28900: 0x6ca58e20,
-	0x2890d: 0x6ca25220, 0x2890f: 0x6cce8020,
-	0x28911: 0x6c2cda20,
-	0x28914: 0x6c8d5220, 0x28916: 0x6d31f820, 0x28917: 0x6d11d020,
-	0x28919: 0x6c404a20, 0x2891a: 0x6cb9c620, 0x2891b: 0x6cbf5820,
-	0x2891c: 0x6c715620, 0x2891d: 0x6c0e2c20, 0x2891e: 0x6c990620, 0x2891f: 0x6d2ce020,
-	0x28920: 0x6cdf0820,
-	0x28924: 0x6c1ce020,
-	0x2892b: 0x6d2d3220,
-	0x2892d: 0x6cd1f420, 0x2892e: 0x6d1e7c20,
-	0x28930: 0x6cbf6820, 0x28931: 0x6c2a3820, 0x28932: 0x6ce42620, 0x28933: 0x6d3c7820,
-	0x28935: 0x6d1b8020, 0x28937: 0x6ca51820,
-	0x28938: 0x6c0e9620, 0x28939: 0x6c7bb220, 0x2893a: 0x6d355220, 0x2893b: 0x6c34ba20,
-	0x2893c: 0x6c236220, 0x2893d: 0x6c061620,
-	// Block 0xa25, offset 0x28940
-	0x28947: 0x6c846820,
-	0x2894a: 0x6c716c20, 0x2894b: 0x6cf1bc20,
-	0x2894c: 0x6c8b3e20, 0x2894f: 0x6cf2c620,
-	0x28950: 0x6cd2de20, 0x28951: 0x6ca7b620, 0x28952: 0x6c987c20, 0x28953: 0x6c6f8c20,
-	0x28958: 0x6d050020,
-	0x2895d: 0x6cf2a420, 0x2895f: 0x6c2a4020,
-	0x28961: 0x6cf70e20, 0x28962: 0x6c01e020, 0x28963: 0x6c26ce20,
-	0x28964: 0x6d401020, 0x28965: 0x6c4f2a20, 0x28966: 0x6c20ea20, 0x28967: 0x6c089820,
-	0x28969: 0x6c309020, 0x2896b: 0x6d2f1220,
-	0x2896f: 0x6d0b0220,
-	0x28972: 0x6c2bac20, 0x28973: 0x6c5d6420,
-	0x28977: 0x6c9f8020,
-	0x2897a: 0x6c408820,
-	0x2897c: 0x6c061e20, 0x2897d: 0x6c78e420, 0x2897e: 0x6c991020, 0x2897f: 0x6cc55820,
-	// Block 0xa26, offset 0x28980
-	0x28980: 0x6d3fda20, 0x28981: 0x6cb88020, 0x28982: 0x6cf98020, 0x28983: 0x6cda0220,
-	0x28984: 0x6d050e20, 0x28985: 0x6ca36e20,
-	0x28989: 0x6c979620,
-	0x2898e: 0x6d2c0820, 0x2898f: 0x6c154a20,
-	0x28990: 0x6ccf8420, 0x28991: 0x6cf2ca20,
-	0x28996: 0x6c005c20, 0x28997: 0x6c059820,
-	0x28998: 0x6c4fb820, 0x2899a: 0x6ccad420, 0x2899b: 0x6cddba20,
-	0x2899c: 0x6ce44020, 0x2899d: 0x6d0bcc20, 0x2899f: 0x6c0e3a20,
-	0x289a0: 0x6cc6e420,
-	0x289ab: 0x6ccc2c20,
-	0x289ac: 0x6cf26a20, 0x289af: 0x6c028a20,
-	0x289b1: 0x6d3c2820, 0x289b3: 0x6cb1c020,
-	0x289b4: 0x6cdbe820, 0x289b5: 0x6d143820, 0x289b6: 0x6cda0420, 0x289b7: 0x6c30d220,
-	0x289b8: 0x6cda0620, 0x289b9: 0x6c956e20,
-	// Block 0xa27, offset 0x289c0
-	0x289c3: 0x6c3afc20,
-	0x289c4: 0x6d422220, 0x289c6: 0x6ca53c20, 0x289c7: 0x6c2ac420,
-	0x289c8: 0x6d34c220, 0x289c9: 0x6c25d020, 0x289ca: 0x6c8a5820, 0x289cb: 0x6c616420,
-	0x289cc: 0x6c0ea020, 0x289cd: 0x6c23d020, 0x289ce: 0x6c1a6020, 0x289cf: 0x6c104e20,
-	0x289d1: 0x6cca1020, 0x289d2: 0x6d29be20,
-	0x289d8: 0x6c69e420, 0x289db: 0x6d125220,
-	0x289dc: 0x6c920620, 0x289de: 0x6c121420,
-	0x289e8: 0x6ca67020,
-	0x289f0: 0x6c6b8820, 0x289f1: 0x6cb47c20, 0x289f2: 0x6d3c5020, 0x289f3: 0x6d29c820,
-	0x289fa: 0x6c87c420,
-	0x289fd: 0x6c7ed020,
-	// Block 0xa28, offset 0x28a00
-	0x28a00: 0x6c1d0620, 0x28a03: 0x6d2eae20,
-	0x28a0d: 0x6c0bb420, 0x28a0e: 0x6cf23220,
-	0x28a13: 0x6c53de20,
-	0x28a17: 0x6cb1fc20,
-	0x28a19: 0x6ccb9e20,
-	0x28a1e: 0x6ca67220, 0x28a1f: 0x6c3b4e20,
-	0x28a20: 0x6d065620, 0x28a22: 0x6cd2da20,
-	0x28a24: 0x6c72c220,
-	0x28a28: 0x6c752420, 0x28a2a: 0x6d24a220,
-	0x28a2c: 0x6c4c2a20, 0x28a2d: 0x6c4c3420, 0x28a2f: 0x6c55a420,
-	0x28a32: 0x6c869020, 0x28a33: 0x6d00fa20,
-	0x28a34: 0x6c376c20, 0x28a35: 0x6d25b420, 0x28a36: 0x6c4d2e20,
-	0x28a39: 0x6c6ebc20, 0x28a3b: 0x6c78de20,
-	0x28a3d: 0x6d3fcc20, 0x28a3e: 0x6c3ae620,
-	// Block 0xa29, offset 0x28a40
-	0x28a40: 0x6cae8820, 0x28a41: 0x6c44e220, 0x28a43: 0x6c652820,
-	0x28a44: 0x6ca61220, 0x28a46: 0x6cfbc220, 0x28a47: 0x6c873c20,
-	0x28a48: 0x6c17a820, 0x28a4a: 0x6c377620, 0x28a4b: 0x6c44e820,
-	0x28a4c: 0x6d247620, 0x28a4d: 0x6c560420, 0x28a4e: 0x6c3af820, 0x28a4f: 0x6c028c20,
-	0x28a53: 0x6c37b220,
-	0x28a58: 0x6c78ec20, 0x28a59: 0x6c7ab620, 0x28a5a: 0x6c0fd020,
-	0x28a5d: 0x6d13a020, 0x28a5e: 0x6c69e820,
-	0x28a66: 0x6c17ae20, 0x28a67: 0x6c44ec20,
-	0x28a68: 0x6cc82e20, 0x28a6a: 0x6d273c20,
-	0x28a6c: 0x6c8c1620,
-	0x28a71: 0x6d24a620, 0x28a72: 0x6d274820, 0x28a73: 0x6d2d1220,
-	0x28a74: 0x6cff6820, 0x28a77: 0x6c9f2420,
-	0x28a7b: 0x6c4af820,
-	0x28a7c: 0x6c6f6e20, 0x28a7e: 0x6cebaa20,
-	// Block 0xa2a, offset 0x28a80
-	0x28a81: 0x6cf78220, 0x28a82: 0x6cefd620, 0x28a83: 0x6d3d6a20,
-	0x28a84: 0x6cf0a220, 0x28a85: 0x6c7c8420,
-	0x28a88: 0x6c9a9820, 0x28a8a: 0x6c505020, 0x28a8b: 0x6c4f5020,
-	0x28a8c: 0x6c399a20, 0x28a8d: 0x6ca96e20, 0x28a8e: 0x6d205420, 0x28a8f: 0x6c57a420,
-	0x28a92: 0x6c812420,
-	0x28aa0: 0x6d3a1820, 0x28aa1: 0x6c4b1620, 0x28aa2: 0x6c0a1620, 0x28aa3: 0x6c642e20,
-	0x28aa4: 0x6ce59c20, 0x28aa6: 0x6c93f020, 0x28aa7: 0x6c79a220,
-	0x28aa8: 0x6d419420, 0x28aa9: 0x6c8d4620, 0x28aaa: 0x6cb63220,
-	0x28aac: 0x6d3a1e20,
-	0x28ab1: 0x6c47ba20, 0x28ab2: 0x6d413020,
-	0x28ab4: 0x6d0f6620, 0x28ab5: 0x6cda5620, 0x28ab7: 0x6c7c9620,
-	0x28ab9: 0x6c167a20, 0x28abb: 0x6d113e20,
-	0x28abe: 0x6d23e220,
-	// Block 0xa2b, offset 0x28ac0
-	0x28ac5: 0x6cd50420, 0x28ac6: 0x6c7f5420, 0x28ac7: 0x6d187620,
-	0x28ac8: 0x6c30c420,
-	0x28acc: 0x6cf3f020, 0x28acd: 0x6d1d1220, 0x28ace: 0x6c3f0420, 0x28acf: 0x6d3be820,
-	0x28ad0: 0x6c3f8a20, 0x28ad2: 0x6cdb2a20, 0x28ad3: 0x6c853420,
-	0x28ad4: 0x6d122820, 0x28ad5: 0x6cea1020,
-	0x28add: 0x6c4b7a20,
-	0x28ae1: 0x6c940020, 0x28ae2: 0x6d0ed420, 0x28ae3: 0x6cb66620,
-	0x28ae4: 0x6c813020, 0x28ae5: 0x6d3a3020, 0x28ae7: 0x6c4b1e20,
-	0x28ae8: 0x6c551020,
-	0x28aef: 0x6c6ddc20,
-	0x28af2: 0x6c1bc620,
-	0x28af5: 0x6c717220, 0x28af6: 0x6d2c6020,
-	0x28af8: 0x6c9e8020,
-	// Block 0xa2c, offset 0x28b00
-	0x28b00: 0x6d39da20, 0x28b01: 0x6c41ba20, 0x28b02: 0x6d047620, 0x28b03: 0x6c60e620,
-	0x28b07: 0x6cccaa20,
-	0x28b08: 0x6c9ab620, 0x28b09: 0x6d287420,
-	0x28b0d: 0x6cd48820,
-	0x28b10: 0x6c941a20, 0x28b11: 0x6d206020, 0x28b12: 0x6c681420, 0x28b13: 0x6caacc20,
-	0x28b18: 0x6c72c420, 0x28b19: 0x6d206220,
-	0x28b1c: 0x6d195220, 0x28b1d: 0x6ce2ce20, 0x28b1e: 0x6cef7220, 0x28b1f: 0x6c17f620,
-	0x28b20: 0x6c8c8620, 0x28b21: 0x6c483020, 0x28b23: 0x6c875a20,
-	0x28b24: 0x6c8ab020, 0x28b27: 0x6c68ac20,
-	0x28b28: 0x6d0ff620, 0x28b29: 0x6c0c5e20, 0x28b2a: 0x6cb6a220,
-	0x28b2e: 0x6d196420,
-	0x28b31: 0x6c0d7620, 0x28b32: 0x6c9bbc20, 0x28b33: 0x6c145a20,
-	0x28b35: 0x6c41be20,
-	0x28b39: 0x6cc21c20, 0x28b3a: 0x6c2bc020, 0x28b3b: 0x6c82a020,
-	// Block 0xa2d, offset 0x28b40
-	0x28b40: 0x6c8dcc20,
-	0x28b44: 0x6c585220, 0x28b45: 0x6cc23220, 0x28b47: 0x6c959c20,
-	0x28b49: 0x6c7cc820,
-	0x28b4d: 0x6cc08020, 0x28b4e: 0x6d227620, 0x28b4f: 0x6c57a620,
-	0x28b53: 0x6c833a20,
-	0x28b55: 0x6cc60620, 0x28b56: 0x6cffb620, 0x28b57: 0x6cd8da20,
-	0x28b5a: 0x6c327220, 0x28b5b: 0x6c0cb420,
-	0x28b60: 0x6ca97020, 0x28b62: 0x6c51e020, 0x28b63: 0x6cadc420,
-	0x28b65: 0x6c3acc20, 0x28b66: 0x6ca2aa20,
-	0x28b69: 0x6c3d9620,
-	0x28b6c: 0x6c55a820, 0x28b6d: 0x6cedec20, 0x28b6e: 0x6ccc1420,
-	0x28b70: 0x6c687420, 0x28b71: 0x6cf47420,
-	0x28b79: 0x6c404c20,
-	// Block 0xa2e, offset 0x28b80
-	0x28b81: 0x6c0df620, 0x28b82: 0x6d3b3020,
-	0x28b84: 0x6d3a2a20, 0x28b85: 0x6c1ada20, 0x28b87: 0x6cd07c20,
-	0x28b88: 0x6c550820, 0x28b89: 0x6c101e20,
-	0x28b8e: 0x6cc4d420,
-	0x28b96: 0x6ca2b620,
-	0x28b98: 0x6c869220, 0x28b9b: 0x6c638820,
-	0x28b9e: 0x6c96e020,
-	0x28ba1: 0x6c9b6820, 0x28ba2: 0x6ca1f020, 0x28ba3: 0x6d38b820,
-	0x28ba4: 0x6cfc3820, 0x28ba5: 0x6c5b7420, 0x28ba6: 0x6c48fc20, 0x28ba7: 0x6c702c20,
-	0x28ba9: 0x6ca2b820, 0x28bab: 0x6cc82a20,
-	0x28bad: 0x6cf3fc20, 0x28baf: 0x6cc7d820,
-	0x28bb1: 0x6d2ce620,
-	// Block 0xa2f, offset 0x28bc0
-	0x28bc1: 0x6caae220, 0x28bc2: 0x6d010a20,
-	0x28bc4: 0x6c680220,
-	0x28bcb: 0x6c853a20,
-	0x28bcc: 0x6cd51020, 0x28bcd: 0x6d190020, 0x28bce: 0x6c2bae20, 0x28bcf: 0x6cbe9220,
-	0x28bd0: 0x6c717420, 0x28bd3: 0x6d373620,
-	0x28bd5: 0x6c80f020, 0x28bd6: 0x6c10ca20, 0x28bd7: 0x6c7bca20,
-	0x28bd8: 0x6d190220, 0x28bda: 0x6c0f9a20,
-	0x28be7: 0x6c1c8c20,
-	0x28bed: 0x6c680c20, 0x28bef: 0x6cf32a20,
-	0x28bf0: 0x6d0aac20,
-	0x28bf5: 0x6cea3220, 0x28bf6: 0x6c987e20,
-	0x28bf8: 0x6c39b220, 0x28bf9: 0x6d3dce20, 0x28bfb: 0x6cb88220,
-	0x28bfd: 0x6cde2220, 0x28bfe: 0x6cb68a20,
-	// Block 0xa30, offset 0x28c00
-	0x28c00: 0x6caf1e20, 0x28c01: 0x6c0cc620, 0x28c02: 0x6c3bfe20, 0x28c03: 0x6ce92820,
-	0x28c04: 0x6c57d220, 0x28c07: 0x6c36d220,
-	0x28c0b: 0x6c36d420,
-	0x28c0e: 0x6c2fc420,
-	0x28c10: 0x6cc7e220,
-	0x28c16: 0x6c36d620,
-	0x28c1e: 0x6d0ef020, 0x28c1f: 0x6cd8f820,
-	0x28c25: 0x6d1cc020, 0x28c26: 0x6ca61620, 0x28c27: 0x6ca61820,
-	0x28c28: 0x6d158e20,
-	0x28c39: 0x6c9c9820,
-	0x28c3e: 0x6d129820, 0x28c3f: 0x6cb32620,
-	// Block 0xa31, offset 0x28c40
-	0x28c40: 0x6c240420, 0x28c42: 0x6cf11820,
-	0x28c44: 0x6c4d8820, 0x28c45: 0x6d1c2820, 0x28c47: 0x6ce6a020,
-	0x28c48: 0x6d375e20, 0x28c49: 0x6c3a2a20, 0x28c4a: 0x6d1f9420,
-	0x28c4d: 0x6c7cb020, 0x28c4e: 0x6c01e220, 0x28c4f: 0x6c03d220,
-	0x28c51: 0x6c4f3420,
-	0x28c5e: 0x6ca41620, 0x28c5f: 0x6ca3da20,
-	0x28c62: 0x6c6df420,
-	0x28c65: 0x6ceece20,
-	0x28c71: 0x6c1f8e20, 0x28c73: 0x6cddbe20,
-	0x28c74: 0x6ce20020, 0x28c75: 0x6cb6a620, 0x28c76: 0x6ce16620, 0x28c77: 0x6cf05a20,
-	0x28c78: 0x6c41fc20, 0x28c7a: 0x6c446420,
-	0x28c7c: 0x6c4f3820, 0x28c7e: 0x6ca37420, 0x28c7f: 0x6c446620,
-	// Block 0xa32, offset 0x28c80
-	0x28c84: 0x6d331420,
-	0x28c97: 0x6cde2820,
-	0x28c9b: 0x6cd84c20,
-	0x28c9d: 0x6ca6de20, 0x28c9e: 0x6cca9820,
-	0x28cab: 0x6d012a20,
-	0x28caf: 0x6d410220,
-	0x28cb0: 0x6d21fc20, 0x28cb1: 0x6ca6e020, 0x28cb2: 0x6cb55420,
-	0x28cb5: 0x6cd03220,
-	0x28cbc: 0x6c102020,
-	// Block 0xa33, offset 0x28cc0
-	0x28ccb: 0x6c7d9a20,
-	0x28ccc: 0x6c84c420, 0x28cce: 0x6c488220,
-	0x28cd6: 0x6d0e1c20, 0x28cd7: 0x6c10d220,
-	0x28cd8: 0x6c672a20, 0x28cda: 0x6cf40e20, 0x28cdb: 0x6c134420,
-	0x28cdc: 0x6c8c0e20, 0x28cdd: 0x6d3c0420, 0x28cdf: 0x6c5b0e20,
-	0x28ce1: 0x6ce7a620, 0x28ce2: 0x6d2ca220,
-	0x28ce4: 0x6c522c20, 0x28ce7: 0x6c4ce220,
-	0x28cf1: 0x6c6e4220,
-	0x28cf5: 0x6c2f1620, 0x28cf7: 0x6d1cdc20,
-	0x28cfc: 0x6d377420,
-	// Block 0xa34, offset 0x28d00
-	0x28d02: 0x6cf06620,
-	0x28d04: 0x6c62fa20, 0x28d05: 0x6cc73620,
-	0x28d08: 0x6c030620, 0x28d09: 0x6c292420, 0x28d0a: 0x6c958a20, 0x28d0b: 0x6d13a220,
-	0x28d0c: 0x6ceed220,
-	0x28d12: 0x6cbb3220,
-	0x28d19: 0x6c446c20, 0x28d1a: 0x6c62fc20,
-	0x28d26: 0x6d409620,
-	0x28d28: 0x6d15a620, 0x28d2b: 0x6d2ca420,
-	0x28d2d: 0x6c8b8c20,
-	0x28d34: 0x6d13a820,
-	0x28d3c: 0x6d2dd420,
-	// Block 0xa35, offset 0x28d40
-	0x28d40: 0x6c1e1620, 0x28d41: 0x6c0c6620,
-	0x28d46: 0x6d077020, 0x28d47: 0x6d1eda20,
-	0x28d4d: 0x6d029a20, 0x28d4e: 0x6cef7c20, 0x28d4f: 0x6c87ca20,
-	0x28d5b: 0x6c0fdc20,
-	0x28d5c: 0x6c664c20, 0x28d5d: 0x6c158220, 0x28d5e: 0x6c7d9e20,
-	0x28d61: 0x6cbe9a20,
-	0x28d67: 0x6cd6ce20,
-	0x28d68: 0x6cf76420, 0x28d69: 0x6cc23620,
-	0x28d70: 0x6c95a020, 0x28d73: 0x6c294c20,
-	0x28d74: 0x6ca71020, 0x28d75: 0x6c855a20, 0x28d77: 0x6c03e420,
-	0x28d79: 0x6c365220, 0x28d7a: 0x6c3d7a20, 0x28d7b: 0x6c400620,
-	0x28d7c: 0x6c5d1220, 0x28d7d: 0x6d2cd820, 0x28d7e: 0x6c014420,
-	// Block 0xa36, offset 0x28d80
-	0x28d81: 0x6cc09620, 0x28d82: 0x6c1dd620, 0x28d83: 0x6c9e3c20,
-	0x28d84: 0x6d0aa620, 0x28d85: 0x6ce92420, 0x28d86: 0x6ca60c20, 0x28d87: 0x6c570220,
-	0x28d88: 0x6cd50a20, 0x28d8a: 0x6d05f620, 0x28d8b: 0x6d384620,
-	0x28d8c: 0x6c776220,
-	0x28d92: 0x6cfee220, 0x28d93: 0x6cfee420,
-	0x28d94: 0x6c22d420, 0x28d95: 0x6c1c3c20, 0x28d97: 0x6c2dd220,
-	0x28d98: 0x6d181420, 0x28d9a: 0x6c2f6420,
-	0x28d9d: 0x6c4ef620, 0x28d9e: 0x6cece420,
-	0x28da0: 0x6d160220, 0x28da1: 0x6c066020, 0x28da2: 0x6d184220,
-	0x28da7: 0x6d0a9e20,
-	0x28dac: 0x6cfdd420,
-	0x28db3: 0x6c08a420,
-	0x28db6: 0x6c6b3020, 0x28db7: 0x6c43a620,
-	0x28db8: 0x6d2b5620, 0x28dba: 0x6d326a20, 0x28dbb: 0x6c55aa20,
-	0x28dbc: 0x6cf6b420, 0x28dbd: 0x6d02e820, 0x28dbe: 0x6cff1220, 0x28dbf: 0x6c404e20,
-	// Block 0xa37, offset 0x28dc0
-	0x28dc0: 0x6d383c20, 0x28dc2: 0x6c99b620, 0x28dc3: 0x6d02ea20,
-	0x28dc4: 0x6cbad820,
-	0x28dc8: 0x6c3b9220, 0x28dc9: 0x6c049820, 0x28dca: 0x6c583220,
-	0x28dd1: 0x6c687620, 0x28dd3: 0x6c066620,
-	0x28dd4: 0x6d0af820, 0x28dd5: 0x6d114020,
-	0x28ddb: 0x6cf8d820,
-	0x28ddd: 0x6c729e20, 0x28ddf: 0x6cc27c20,
-	0x28de0: 0x6d26f020, 0x28de1: 0x6cdf4220, 0x28de2: 0x6ce81820, 0x28de3: 0x6ca16c20,
-	0x28de4: 0x6d2c5420, 0x28de5: 0x6cc1ce20, 0x28de7: 0x6c3da620,
-	0x28de9: 0x6cc1d020, 0x28dea: 0x6c1c7e20,
-	0x28dec: 0x6d1f7c20,
-	0x28df7: 0x6ce38620,
-	0x28dfa: 0x6cebf020,
-	0x28dfd: 0x6ceb5620, 0x28dff: 0x6c1eb220,
-	// Block 0xa38, offset 0x28e00
-	0x28e01: 0x6c43b020,
-	0x28e08: 0x6d251620, 0x28e09: 0x6c43b220, 0x28e0a: 0x6cc1d220,
-	0x28e0f: 0x6c72a020,
-	0x28e12: 0x6c2ef820, 0x28e13: 0x6d157e20,
-	0x28e14: 0x6cd20820, 0x28e15: 0x6d18e420, 0x28e17: 0x6c4b2020,
-	0x28e18: 0x6c680420, 0x28e1a: 0x6cd94420, 0x28e1b: 0x6cbf7220,
-	0x28e1d: 0x6c36c220, 0x28e1e: 0x6c59a420, 0x28e1f: 0x6c5b4620,
-	0x28e20: 0x6d0a4620, 0x28e23: 0x6c717020,
-	0x28e25: 0x6d2d2220, 0x28e26: 0x6c1c8220, 0x28e27: 0x6c81c020,
-	0x28e29: 0x6cb66820, 0x28e2a: 0x6d050420,
-	0x28e2c: 0x6c5af620, 0x28e2d: 0x6ce79820,
-	0x28e3a: 0x6c407220,
-	0x28e3d: 0x6d0a4820, 0x28e3e: 0x6c6b4e20, 0x28e3f: 0x6c9d0620,
-	// Block 0xa39, offset 0x28e40
-	0x28e40: 0x6d242820,
-	0x28e48: 0x6d3c4a20, 0x28e49: 0x6c688e20, 0x28e4a: 0x6d373820, 0x28e4b: 0x6c1a5220,
-	0x28e4d: 0x6c6b6c20, 0x28e4e: 0x6cff3220, 0x28e4f: 0x6c18f220,
-	0x28e50: 0x6c848220, 0x28e51: 0x6d26fe20, 0x28e53: 0x6d373a20,
-	0x28e54: 0x6c818820, 0x28e55: 0x6cf32c20, 0x28e56: 0x6cc1ea20,
-	0x28e58: 0x6cedce20, 0x28e5a: 0x6d142e20, 0x28e5b: 0x6d190420,
-	0x28e5c: 0x6c80f220, 0x28e5e: 0x6ce7fa20, 0x28e5f: 0x6c015c20,
-	0x28e60: 0x6c74e420, 0x28e61: 0x6d0ee420,
-	0x28e65: 0x6c72b020, 0x28e67: 0x6d327620,
-	0x28e69: 0x6d373c20, 0x28e6a: 0x6c98a820,
-	0x28e6e: 0x6d055420,
-	0x28e71: 0x6c208020, 0x28e72: 0x6c1e6c20,
-	0x28e78: 0x6cbafc20, 0x28e79: 0x6c3a2620, 0x28e7a: 0x6c16d420,
-	0x28e7c: 0x6c9dec20, 0x28e7d: 0x6cdb5a20, 0x28e7e: 0x6c02b820,
-	// Block 0xa3a, offset 0x28e80
-	0x28e80: 0x6c3f9620,
-	0x28e84: 0x6cf10620, 0x28e85: 0x6d342420, 0x28e86: 0x6c9f8220, 0x28e87: 0x6c168820,
-	0x28e88: 0x6d0cfa20, 0x28e89: 0x6d245820, 0x28e8b: 0x6c408a20,
-	0x28e8c: 0x6cded020, 0x28e8d: 0x6c616020, 0x28e8f: 0x6c3aee20,
-	0x28e92: 0x6c55f620, 0x28e93: 0x6c70e220,
-	0x28e95: 0x6d22ac20,
-	0x28e9b: 0x6cb69220,
-	0x28e9c: 0x6c9a3820, 0x28e9f: 0x6c0ccc20,
-	0x28ea0: 0x6c4cd820,
-	0x28ea4: 0x6ca04c20, 0x28ea6: 0x6ced5e20, 0x28ea7: 0x6ced6020,
-	0x28eb4: 0x6c6dec20, 0x28eb5: 0x6d245a20, 0x28eb6: 0x6cfbce20,
-	0x28eb9: 0x6c212a20, 0x28eba: 0x6c60f820,
-	0x28ebc: 0x6cfd9620, 0x28ebd: 0x6cae4420, 0x28ebe: 0x6c409220,
-	// Block 0xa3b, offset 0x28ec0
-	0x28ec2: 0x6c8ed820,
-	0x28ec4: 0x6cc9da20, 0x28ec5: 0x6d08f020, 0x28ec6: 0x6d409220,
-	0x28ec8: 0x6c6b7e20, 0x28ecb: 0x6d2dc220,
-	0x28ecd: 0x6d21e820, 0x28ece: 0x6d21ea20, 0x28ecf: 0x6c9a4020,
-	0x28ed0: 0x6c9ea820, 0x28ed1: 0x6c99c020, 0x28ed2: 0x6c346a20, 0x28ed3: 0x6c409420,
-	0x28edb: 0x6c671820,
-	0x28ee6: 0x6c9e8420,
-	0x28ee8: 0x6c023a20,
-	0x28eed: 0x6c78e620,
-	0x28ef6: 0x6c544420,
-	0x28efa: 0x6c46e420,
-	0x28efc: 0x6cf74c20, 0x28efe: 0x6cc6e820, 0x28eff: 0x6c43be20,
-	// Block 0xa3c, offset 0x28f00
-	0x28f00: 0x6cac9220, 0x28f01: 0x6d25d420, 0x28f02: 0x6cfa5e20,
-	0x28f05: 0x6ccc2e20, 0x28f06: 0x6cafa620,
-	0x28f08: 0x6cbe9620, 0x28f09: 0x6d1dde20, 0x28f0a: 0x6cc20220,
-	0x28f0c: 0x6c462820, 0x28f0e: 0x6c446820, 0x28f0f: 0x6cfb0820,
-	0x28f11: 0x6cdb6820,
-	0x28f15: 0x6c04ae20, 0x28f16: 0x6cb6a820, 0x28f17: 0x6c548820,
-	0x28f1b: 0x6cf74e20,
-	0x28f1d: 0x6cf39220,
-	0x28f2d: 0x6cb55620, 0x28f2e: 0x6c56ec20, 0x28f2f: 0x6c4aae20,
-	0x28f31: 0x6c2bbc20, 0x28f32: 0x6cce2c20, 0x28f33: 0x6c975220,
-	0x28f34: 0x6c9fde20, 0x28f35: 0x6c62ea20, 0x28f36: 0x6cf7c820, 0x28f37: 0x6cfb1020,
-	0x28f38: 0x6c610220, 0x28f39: 0x6c16d820, 0x28f3a: 0x6c7a1220, 0x28f3b: 0x6c1cfc20,
-	// Block 0xa3d, offset 0x28f40
-	0x28f42: 0x6d2ef020, 0x28f43: 0x6cb1aa20,
-	0x28f44: 0x6cdb6c20, 0x28f45: 0x6c94cc20, 0x28f46: 0x6c84c620, 0x28f47: 0x6c9c2020,
-	0x28f48: 0x6c1cfe20, 0x28f49: 0x6ce47c20, 0x28f4b: 0x6c8da820,
-	0x28f4d: 0x6c1c9a20,
-	0x28f56: 0x6c1d0020,
-	0x28f59: 0x6c1c9c20,
-	0x28f5d: 0x6ca7c820, 0x28f5f: 0x6d1e0a20,
-	0x28f6e: 0x6c9db020,
-	0x28f70: 0x6cd51e20, 0x28f72: 0x6cf93820,
-	0x28f74: 0x6c36f620, 0x28f75: 0x6d3ec820,
-	0x28f78: 0x6c6b8420, 0x28f79: 0x6c5faa20, 0x28f7a: 0x6c53e820, 0x28f7b: 0x6cd18220,
-	0x28f7c: 0x6c879c20, 0x28f7e: 0x6cb55c20,
-	// Block 0xa3e, offset 0x28f80
-	0x28f80: 0x6d38c620, 0x28f81: 0x6cd85820, 0x28f82: 0x6cc21e20,
-	0x28f8b: 0x6d013420,
-	0x28f97: 0x6cd85a20,
-	0x28f9b: 0x6d061220,
-	0x28fa0: 0x6c409e20,
-	0x28faf: 0x6ca9e620,
-	0x28fb0: 0x6d0bd020, 0x28fb1: 0x6c8ef020, 0x28fb2: 0x6c643420, 0x28fb3: 0x6c4ab020,
-	0x28fb4: 0x6c7cc020, 0x28fb5: 0x6c1ca220, 0x28fb6: 0x6c121620, 0x28fb7: 0x6c1ed020,
-	0x28fb9: 0x6c4c5020, 0x28fbb: 0x6c285a20,
-	0x28fbf: 0x6c672e20,
-	// Block 0xa3f, offset 0x28fc0
-	0x28fc1: 0x6c292620, 0x28fc2: 0x6c548c20,
-	0x28fc4: 0x6c7a1420, 0x28fc6: 0x6c1f9220, 0x28fc7: 0x6cb96220,
-	0x28fc8: 0x6c010c20, 0x28fca: 0x6cb0e420,
-	0x28fd1: 0x6d0abc20, 0x28fd2: 0x6c6dfc20, 0x28fd3: 0x6c9c2620,
-	0x28fd5: 0x6c0d7a20, 0x28fd6: 0x6c801620, 0x28fd7: 0x6c47fa20,
-	0x28fd8: 0x6c1e1420, 0x28fdb: 0x6d1dec20,
-	0x28fdc: 0x6c488420, 0x28fdd: 0x6d220a20, 0x28fde: 0x6d397420,
-	0x28fed: 0x6c115820, 0x28fef: 0x6c8ef420,
-	0x28ff0: 0x6c105420, 0x28ff1: 0x6c965820, 0x28ff2: 0x6c6b8c20, 0x28ff3: 0x6d31a820,
-	0x28ff4: 0x6c9f2220, 0x28ff5: 0x6c4a1620, 0x28ff7: 0x6c63f820,
-	0x28ff9: 0x6c7ed220,
-	// Block 0xa40, offset 0x29000
-	0x29000: 0x6cd48c20, 0x29003: 0x6c4c5220,
-	0x29006: 0x6c9c2820, 0x29007: 0x6cb9ea20,
-	0x29008: 0x6c7f8420, 0x2900a: 0x6c51b220, 0x2900b: 0x6ce97c20,
-	0x29011: 0x6c5b1020,
-	0x29018: 0x6c52e620,
-	0x2901c: 0x6c93c820, 0x2901f: 0x6c63fa20,
-	0x29025: 0x6c4ab220,
-	0x29028: 0x6d144420, 0x29029: 0x6c585420,
-	0x29030: 0x6c95a220,
-	0x29034: 0x6c754620,
-	0x29038: 0x6c49ce20, 0x2903b: 0x6cc34820,
-	0x2903c: 0x6ca7cc20, 0x2903f: 0x6c97b220,
-	// Block 0xa41, offset 0x29040
-	0x29042: 0x6d282420, 0x29043: 0x6cf18a20,
-	0x29044: 0x6c1c0c20, 0x29045: 0x6c1c1820, 0x29046: 0x6d33dc20,
-	0x29048: 0x6c224420, 0x29049: 0x6d3c3e20, 0x2904a: 0x6c573c20, 0x2904b: 0x6c6ac020,
-	0x2904c: 0x6cc19e20, 0x2904d: 0x6ce86620, 0x2904e: 0x6c9f6a20, 0x2904f: 0x6c9a2020,
-	0x29050: 0x6d218020, 0x29051: 0x6c026e20, 0x29052: 0x6c049a20,
-	0x29054: 0x6caf8c20, 0x29055: 0x6d31a420, 0x29056: 0x6c91d020, 0x29057: 0x6c1c5420,
-	0x29058: 0x6ce7f620, 0x2905a: 0x6c6a3420,
-	0x2905c: 0x6d2da420,
-	0x29062: 0x6c6c6820, 0x29063: 0x6c91f020,
-	0x29066: 0x6c670a20, 0x29067: 0x6ce0b420,
-	0x29068: 0x6c168a20, 0x2906a: 0x6c22ee20,
-	0x2906d: 0x6cec5c20, 0x2906e: 0x6c240620, 0x2906f: 0x6c771a20,
-	0x29071: 0x6c0bd820,
-	0x29078: 0x6cf17620, 0x2907b: 0x6cb95620,
-	0x2907f: 0x6c424220,
-	// Block 0xa42, offset 0x29080
-	0x29082: 0x6c5ca220,
-	0x29084: 0x6c420620, 0x29086: 0x6c630020, 0x29087: 0x6c424620,
-	0x29089: 0x6c580820,
-	0x2908d: 0x6cd8dc20,
-	0x29090: 0x6c3d9a20,
-	0x29095: 0x6cb01620, 0x29097: 0x6c10d620,
-	0x2909c: 0x6c07c620,
-	0x290a2: 0x6cd2dc20,
-	0x290a5: 0x6c58b020, 0x290a7: 0x6c4a9420,
-	0x290aa: 0x6cab9620,
-	0x290b3: 0x6cad7020,
-	0x290b5: 0x6d1d2020, 0x290b6: 0x6ce6e620, 0x290b7: 0x6d001820,
-	0x290b9: 0x6d3b3620, 0x290bb: 0x6d21d220,
-	// Block 0xa43, offset 0x290c0
-	0x290c1: 0x6c66fa20,
-	0x290c4: 0x6cc25420, 0x290c5: 0x6ced6220, 0x290c6: 0x6c7d9220, 0x290c7: 0x6d3c7220,
-	0x290c9: 0x6d245c20, 0x290ca: 0x6c4cda20, 0x290cb: 0x6cb2de20,
-	0x290cc: 0x6d41a420, 0x290cd: 0x6d40fa20, 0x290cf: 0x6d39e820,
-	0x290d0: 0x6caa9c20, 0x290d1: 0x6d39ea20,
-	0x290d6: 0x6cb17620, 0x290d7: 0x6c9cac20,
-	0x290dc: 0x6c0ad220, 0x290dd: 0x6cdb6e20,
-	0x290e1: 0x6cb47a20, 0x290e2: 0x6c9cc420,
-	0x290eb: 0x6d13a620,
-	0x290ec: 0x6d22b420, 0x290ee: 0x6d249620,
-	0x290f0: 0x6d3a9420, 0x290f3: 0x6c8dc220,
-	0x290fa: 0x6caa3620,
-	0x290fe: 0x6c8d3020,
-	// Block 0xa44, offset 0x29100
-	0x29100: 0x6c8a7020, 0x29102: 0x6ceace20,
-	0x29104: 0x6c08f020, 0x29105: 0x6ca36a20, 0x29106: 0x6cc1bc20,
-	0x29108: 0x6cb01820, 0x29109: 0x6c30f420, 0x2910a: 0x6ca86e20, 0x2910b: 0x6cea6820,
-	0x2910d: 0x6c5f2620, 0x2910f: 0x6c8d5420,
-	0x29113: 0x6c7aaa20,
-	0x29114: 0x6cdb2c20,
-	0x29118: 0x6ce81a20,
-	0x2911e: 0x6ca38620, 0x2911f: 0x6d2b0c20,
-	0x29122: 0x6ce7c420, 0x29123: 0x6c444a20,
-	0x29124: 0x6c331820, 0x29127: 0x6c6b5020,
-	0x29129: 0x6ce4c820, 0x2912a: 0x6ce5e220, 0x2912b: 0x6c1b6020,
-	0x2912c: 0x6cc14e20, 0x2912e: 0x6ccc2820,
-	0x29130: 0x6c0f9e20, 0x29131: 0x6c848420, 0x29133: 0x6c963a20,
-	0x29135: 0x6c8a4420, 0x29136: 0x6cd62620, 0x29137: 0x6c2ad220,
-	0x29139: 0x6c1ae620, 0x2913a: 0x6c9f0220,
-	0x2913c: 0x6ce24e20, 0x2913d: 0x6c5d0c20, 0x2913f: 0x6ca7e220,
-	// Block 0xa45, offset 0x29140
-	0x29141: 0x6c75fe20, 0x29142: 0x6c56dc20,
-	0x29144: 0x6c932e20, 0x29145: 0x6d138820, 0x29147: 0x6ca18620,
-	0x29148: 0x6c17c820,
-	0x2914c: 0x6cddd420, 0x2914e: 0x6c784220, 0x2914f: 0x6c409620,
-	0x29151: 0x6c17aa20,
-	0x29154: 0x6cddbc20, 0x29157: 0x6cbfe220,
-	0x2915b: 0x6cdb6a20,
-	0x2915d: 0x6d287620, 0x2915f: 0x6cddc220,
-	0x29160: 0x6c7a7020, 0x29161: 0x6c0fc420, 0x29163: 0x6c90fe20,
-	0x29164: 0x6ca1a220, 0x29166: 0x6c88e220, 0x29167: 0x6d08d220,
-	0x29168: 0x6cddc420, 0x29169: 0x6c97aa20, 0x2916a: 0x6c0ad420,
-	0x29172: 0x6ce44820,
-	0x29174: 0x6c88a620, 0x29175: 0x6ce04a20, 0x29176: 0x6ccdf220,
-	0x29178: 0x6cc22820, 0x29179: 0x6c320820, 0x2917a: 0x6c58d420, 0x2917b: 0x6ccb0e20,
-	0x2917f: 0x6c7c2620,
-	// Block 0xa46, offset 0x29180
-	0x29183: 0x6ca8dc20,
-	0x29185: 0x6ca8de20, 0x29186: 0x6c95a420, 0x29187: 0x6d425c20,
-	0x29188: 0x6d174e20, 0x29189: 0x6cfcc020, 0x2918a: 0x6c179820, 0x2918b: 0x6ce61220,
-	0x29192: 0x6cd79620,
-	0x29194: 0x6c9d0020, 0x29197: 0x6c9c7220,
-	0x2919b: 0x6ced5220,
-	0x2919d: 0x6c07c820, 0x2919e: 0x6cbae020,
-	0x291a0: 0x6ca0b020, 0x291a3: 0x6c8eca20,
-	0x291a4: 0x6cf32e20, 0x291a6: 0x6c9a7020,
-	0x291a8: 0x6ce7fe20, 0x291ab: 0x6ca25a20,
-	0x291ad: 0x6c9a4420,
-	0x291b2: 0x6d42b620,
-	0x291b4: 0x6cea6420, 0x291b5: 0x6c778c20, 0x291b6: 0x6cea6a20,
-	0x291ba: 0x6c184c20, 0x291bb: 0x6d336a20,
-	0x291bd: 0x6c1cec20, 0x291be: 0x6ce47820,
-	// Block 0xa47, offset 0x291c0
-	0x291c0: 0x6d372020, 0x291c1: 0x6c153420, 0x291c2: 0x6c153e20,
-	0x291c5: 0x6cbe5c20, 0x291c6: 0x6cea3420, 0x291c7: 0x6c5b7a20,
-	0x291c8: 0x6cc41420, 0x291c9: 0x6d2dba20, 0x291ca: 0x6c652c20, 0x291cb: 0x6c154c20,
-	0x291cd: 0x6c5a2620, 0x291cf: 0x6c5b0620,
-	0x291d0: 0x6c1b6a20, 0x291d2: 0x6c5a2820, 0x291d3: 0x6c528220,
-	0x291d4: 0x6d280820, 0x291d6: 0x6ce94020, 0x291d7: 0x6c0b1c20,
-	0x291d9: 0x6c5a3620, 0x291da: 0x6d280a20,
-	0x291df: 0x6ca1a420,
-	0x291e0: 0x6c45c420, 0x291e2: 0x6c45c620,
-	0x291e4: 0x6c4bb020, 0x291e6: 0x6c157820,
-	0x291e8: 0x6cc42220, 0x291e9: 0x6cc8ee20, 0x291ea: 0x6c7c2820, 0x291eb: 0x6cb1c220,
-	0x291ee: 0x6cc80220,
-	0x291f2: 0x6ca9a220, 0x291f3: 0x6c56c820,
-	0x291f4: 0x6c6cb820, 0x291f5: 0x6ca6d220, 0x291f6: 0x6c067420,
-	0x291f8: 0x6ca65620, 0x291fa: 0x6c0a8420, 0x291fb: 0x6c55d820,
-	0x291fc: 0x6c846a20, 0x291ff: 0x6d39dc20,
-	// Block 0xa48, offset 0x29200
-	0x29200: 0x6ca2fc20, 0x29202: 0x6cc36620, 0x29203: 0x6c3cd220,
-	0x29204: 0x6c090020, 0x29205: 0x6c84a020, 0x29206: 0x6c0d0820, 0x29207: 0x6ca70e20,
-	0x29208: 0x6c304820, 0x2920b: 0x6c88a020,
-	0x2920c: 0x6ca6e420, 0x2920d: 0x6c88a820, 0x2920e: 0x6c968820, 0x2920f: 0x6d30ca20,
-	0x29213: 0x6c639420,
-	0x29214: 0x6d15a820, 0x29216: 0x6c904c20,
-	0x29218: 0x6d181820,
-	0x2921d: 0x6c278e20, 0x2921e: 0x6c327820,
-	0x29223: 0x6d160c20,
-	0x29225: 0x6cdf8220, 0x29226: 0x6c4f5420, 0x29227: 0x6cd61620,
-	0x2922c: 0x6cece820, 0x2922e: 0x6cdb2e20, 0x2922f: 0x6d11d820,
-	0x29230: 0x6c37e020, 0x29232: 0x6d326e20,
-	0x2923a: 0x6c313e20, 0x2923b: 0x6c651220,
-	0x2923f: 0x6cace620,
-	// Block 0xa49, offset 0x29240
-	0x29240: 0x6c5afe20, 0x29242: 0x6c145420, 0x29243: 0x6ccd1c20,
-	0x29244: 0x6c916620, 0x29246: 0x6d244c20,
-	0x29248: 0x6d0ef420, 0x29249: 0x6ced6420, 0x2924a: 0x6cbc6e20, 0x2924b: 0x6c953420,
-	0x2924c: 0x6d245e20, 0x2924f: 0x6ce90620,
-	0x29250: 0x6cf10820, 0x29252: 0x6cea8e20,
-	0x29255: 0x6c5d1820, 0x29256: 0x6c079020, 0x29257: 0x6cbd0620,
-	0x29259: 0x6c6c7420, 0x2925a: 0x6c7f3620,
-	0x2925c: 0x6d356620, 0x2925d: 0x6d21ec20, 0x2925f: 0x6c22f020,
-	0x29266: 0x6d139420, 0x29267: 0x6c2f0c20,
-	0x29268: 0x6c145820, 0x29269: 0x6c2d9a20, 0x2926a: 0x6c97a220,
-	0x2926c: 0x6c2afc20, 0x2926d: 0x6ceed020, 0x2926e: 0x6ca75020, 0x2926f: 0x6c835e20,
-	0x29270: 0x6c0db820, 0x29271: 0x6cf39420, 0x29273: 0x6d320820,
-	0x29276: 0x6cc77420, 0x29277: 0x6cec7c20,
-	0x29278: 0x6c9dac20, 0x29279: 0x6c6c1020, 0x2927b: 0x6c544620,
-	0x2927d: 0x6d2d5620, 0x2927e: 0x6cc80a20, 0x2927f: 0x6d3ec620,
-	// Block 0xa4a, offset 0x29280
-	0x29280: 0x6cac9420, 0x29282: 0x6ca1a620,
-	0x29284: 0x6c9db220, 0x29286: 0x6cb55820, 0x29287: 0x6ca1a820,
-	0x2928a: 0x6d342c20, 0x2928b: 0x6c04b020,
-	0x2928d: 0x6c9f1820, 0x2928f: 0x6c933e20,
-	0x29291: 0x6cb55e20, 0x29292: 0x6c1d0420,
-	0x29294: 0x6c84d220, 0x29295: 0x6d196e20,
-	0x29298: 0x6c2b0620, 0x29299: 0x6c25d220, 0x2929b: 0x6c339020,
-	0x2929c: 0x6c96e820, 0x2929d: 0x6d0e2c20, 0x2929f: 0x6d2bba20,
-	0x292a0: 0x6d0e2e20, 0x292a1: 0x6c339220, 0x292a2: 0x6cb42620,
-	0x292a5: 0x6d273020,
-	0x292a9: 0x6c5e5c20, 0x292aa: 0x6c975420, 0x292ab: 0x6c664620,
-	0x292ac: 0x6ca9e820, 0x292ad: 0x6cbdc020, 0x292af: 0x6cbdc220,
-	0x292b2: 0x6d13aa20,
-	0x292b4: 0x6cdf5420,
-	0x292b9: 0x6c655c20,
-	0x292bc: 0x6c141620, 0x292be: 0x6c28f220, 0x292bf: 0x6ce2e220,
-	// Block 0xa4b, offset 0x292c0
-	0x292c0: 0x6c87ce20, 0x292c3: 0x6ca77c20,
-	0x292c4: 0x6c158420, 0x292c5: 0x6d29f620,
-	0x292ca: 0x6d24b820,
-	0x292cc: 0x6d41e220, 0x292cd: 0x6c0b2020,
-	0x292d0: 0x6c1ef820,
-	0x292d8: 0x6cc48c20, 0x292da: 0x6cc49820, 0x292db: 0x6d0f7020,
-	0x292dc: 0x6c0fe820,
-	0x292e1: 0x6c247820,
-	0x292ec: 0x6c9cae20, 0x292ee: 0x6c787420,
-	0x292f0: 0x6c248420,
-	0x292f7: 0x6cf7ce20,
-	0x292f9: 0x6c968a20, 0x292fb: 0x6cd22020,
-	0x292fc: 0x6c2d0420, 0x292ff: 0x6cd22220,
-	// Block 0xa4c, offset 0x29300
-	0x29302: 0x6c2f7620, 0x29303: 0x6c6ee420,
-	0x29305: 0x6d25a820, 0x29306: 0x6c41b220,
-	0x2930a: 0x6c5ca420, 0x2930b: 0x6c5f4e20,
-	0x2930d: 0x6caed420, 0x2930f: 0x6c2ab220,
-	0x29311: 0x6c085e20,
-	0x29314: 0x6cacea20, 0x29315: 0x6cded420, 0x29317: 0x6d252220,
-	0x29318: 0x6c42ee20, 0x29319: 0x6d252420,
-	0x2931f: 0x6c639220,
-	0x29323: 0x6c799020,
-	0x29326: 0x6c309820,
-	0x29329: 0x6cfbd820, 0x2932a: 0x6cb80620,
-	0x2932c: 0x6cca7c20,
-	0x29330: 0x6d1b9820, 0x29333: 0x6c901a20,
-	0x29336: 0x6ce29a20, 0x29337: 0x6c902420,
-	0x2933a: 0x6cc60820,
-	0x2933d: 0x6d1b9020, 0x2933e: 0x6cb2d820, 0x2933f: 0x6cb41c20,
-	// Block 0xa4d, offset 0x29340
-	0x29340: 0x6d25be20, 0x29341: 0x6cc72a20, 0x29343: 0x6c399e20,
-	0x29347: 0x6c4f5820,
-	0x29348: 0x6c9c8820, 0x29349: 0x6c55ea20, 0x2934a: 0x6d3eb620,
-	0x2934c: 0x6c8d7e20, 0x2934d: 0x6c6eea20, 0x2934e: 0x6cc72e20,
-	0x29352: 0x6cb2e020, 0x29353: 0x6c49fc20,
-	0x29354: 0x6c37ae20,
-	0x2935d: 0x6c247e20, 0x2935e: 0x6c760020,
-	0x29366: 0x6d052a20,
-	0x29368: 0x6c377a20, 0x29369: 0x6ce44420, 0x2936b: 0x6d0ff820,
-	0x2936d: 0x6c010a20, 0x2936e: 0x6c560820, 0x2936f: 0x6cf7ca20,
-	0x29371: 0x6c560a20, 0x29373: 0x6cd85220,
-	0x29374: 0x6c854e20, 0x29376: 0x6d197020, 0x29377: 0x6c47f620,
-	0x29379: 0x6ce16a20,
-	// Block 0xa4e, offset 0x29380
-	0x29380: 0x6cc42420, 0x29381: 0x6d3fe620, 0x29382: 0x6c84de20,
-	0x29384: 0x6c69ec20, 0x29387: 0x6c38fe20,
-	0x29388: 0x6cb47e20, 0x29389: 0x6cd86620, 0x2938b: 0x6c6b9020,
-	0x2938c: 0x6c91b220, 0x2938d: 0x6c87d020, 0x2938e: 0x6c158620,
-	0x29390: 0x6d122220,
-	0x29395: 0x6c5b0020,
-	0x29399: 0x6c53e420, 0x2939a: 0x6c2cea20, 0x2939b: 0x6cc0be20,
-	0x2939c: 0x6c74f820, 0x2939e: 0x6cb0d420,
-	0x293a2: 0x6c7c5220,
-	0x293a5: 0x6cf82820, 0x293a6: 0x6ce30c20,
-	0x293a9: 0x6d076820,
-	0x293af: 0x6c0b6220,
-	0x293b2: 0x6c50b020, 0x293b3: 0x6c88ac20,
-	0x293b6: 0x6cdb7620, 0x293b7: 0x6c8ab220,
-	0x293bc: 0x6c6c7820,
-	// Block 0xa4f, offset 0x293c0
-	0x293c1: 0x6c87d220, 0x293c2: 0x6c158820,
-	0x293c5: 0x6cb65a20, 0x293c6: 0x6cb66c20,
-	0x293c9: 0x6d3ec020, 0x293cb: 0x6d3ec420,
-	0x293cd: 0x6cb6b220, 0x293cf: 0x6cb6b820,
-	0x293d0: 0x6d3ed020, 0x293d2: 0x6d2d1020, 0x293d3: 0x6d2d1420,
-	0x293d4: 0x6cabec20, 0x293d6: 0x6c70d820,
-	0x293d9: 0x6d0df420,
-	0x293dc: 0x6c4f8c20, 0x293dd: 0x6ca37020,
-	0x293e4: 0x6d0e0220, 0x293e6: 0x6d2e9c20, 0x293e7: 0x6cd2e020,
-	0x293e8: 0x6d34ba20,
-	0x293ed: 0x6d2c0a20,
-	0x293f4: 0x6cc73420, 0x293f5: 0x6d2c0c20, 0x293f7: 0x6d195820,
-	0x293f8: 0x6ca02820, 0x293f9: 0x6d0b4020, 0x293fb: 0x6d376620,
-	0x293fd: 0x6c7e3020, 0x293fe: 0x6cfa1c20,
-	// Block 0xa50, offset 0x29400
-	0x29400: 0x6cb13820, 0x29401: 0x6cdeec20, 0x29403: 0x6d162a20,
-	0x29406: 0x6d051620, 0x29407: 0x6d2d0c20,
-	0x29409: 0x6c34c420, 0x2940a: 0x6c36e420,
-	0x2940e: 0x6d1ab420,
-	0x29410: 0x6c36ee20, 0x29411: 0x6cdb8e20, 0x29412: 0x6c016420, 0x29413: 0x6c260420,
-	0x29415: 0x6ceb6420, 0x29417: 0x6ceb6620,
-	0x29418: 0x6cfa1e20, 0x2941b: 0x6c21ea20,
-	0x2941d: 0x6cdb9020,
-	0x29425: 0x6c62f420, 0x29426: 0x6cba3620, 0x29427: 0x6d410420,
-	0x29428: 0x6d2d0e20, 0x29429: 0x6d280e20, 0x2942a: 0x6d2ea620,
-	0x2942c: 0x6d159c20,
-	0x29432: 0x6d0b4220, 0x29433: 0x6d266020,
-	0x29439: 0x6c51ac20, 0x2943a: 0x6cb88820,
-	0x2943e: 0x6c13c220,
-	// Block 0xa51, offset 0x29440
-	0x29443: 0x6cab7020,
-	0x29448: 0x6c560c20, 0x2944a: 0x6d0f2020,
-	0x2944c: 0x6cbd0e20, 0x2944d: 0x6c0fd820, 0x2944e: 0x6cbafe20, 0x2944f: 0x6c6c1420,
-	0x2945b: 0x6ca6e820,
-	0x2945e: 0x6c162420, 0x2945f: 0x6cbdf620,
-	0x29461: 0x6d2a3220,
-	0x29464: 0x6d1b3220, 0x29465: 0x6d029c20, 0x29467: 0x6cb6ba20,
-	0x29468: 0x6c673420, 0x2946b: 0x6d061420,
-	0x2946d: 0x6d2bbc20, 0x2946f: 0x6c370420,
-	0x29473: 0x6d40a020,
-	0x29474: 0x6d163220,
-	0x29479: 0x6d34c820, 0x2947a: 0x6c87d420,
-	0x2947d: 0x6c87d620, 0x2947e: 0x6d1aba20,
-	// Block 0xa52, offset 0x29480
-	0x29481: 0x6c88b220, 0x29483: 0x6c158a20,
-	0x29485: 0x6c754820, 0x29487: 0x6d28e620,
-	0x2948e: 0x6d2d1620, 0x2948f: 0x6cb12220,
-	0x29491: 0x6c8fd220, 0x29493: 0x6c8fd420,
-	0x29498: 0x6c8fe220,
-	0x2949d: 0x6c900020,
-	0x294a0: 0x6c900c20, 0x294a2: 0x6c98b220,
-	0x294a5: 0x6d30d020,
-	0x294ac: 0x6c423a20, 0x294ad: 0x6c466a20, 0x294ae: 0x6cc49a20, 0x294af: 0x6c248020,
-	0x294b0: 0x6c68aa20,
-	0x294b7: 0x6c0fec20,
-	0x294b9: 0x6d3b4c20, 0x294ba: 0x6cbfe820, 0x294bb: 0x6d0f7220,
-	// Block 0xa53, offset 0x294c0
-	0x294c0: 0x6d003020, 0x294c2: 0x6c5b4820, 0x294c3: 0x6cc16c20,
-	0x294c8: 0x6c8e0220, 0x294ca: 0x6d1ab220,
-	0x294ce: 0x6cb0e820,
-	0x294d2: 0x6c88b020,
-	// Block 0xa54, offset 0x29500
-	0x2951d: 0x6c343c20,
-	// Block 0xa55, offset 0x29540
-	0x29548: 0x6c040c20,
-	0x2954f: 0x6d2d9220,
-	// Block 0xa56, offset 0x29580
-	0x295ae: 0x6c943c20,
-	// Block 0xa57, offset 0x295c0
-	0x295ca: 0x6cd94a20,
-	0x295d7: 0x6c73ac20,
-	// Block 0xa58, offset 0x29600
-	0x2961d: 0x6d1d8e20,
-	// Block 0xa59, offset 0x29640
-	0x29679: 0x6caa5c20,
-	// Block 0xa5a, offset 0x29680
-	0x29690: 0x6c230620,
-	// Block 0xa5b, offset 0x296c0
-	0x296e2: 0x6cfc9220,
-	// Block 0xa5c, offset 0x29700
-	0x29721: 0x6c85dc20,
-	// Block 0xa5d, offset 0x29740
-	0x29748: 0x6c3abc20,
-	0x29759: 0x6cdb3a20,
-	// Block 0xa5e, offset 0x29780
-	0x2979c: 0x6c79dc20,
-	// Block 0xa5f, offset 0x297c0
-	0x297e8: 0x6c1a9e20,
-	0x297f8: 0x6d09b220,
-	// Block 0xa60, offset 0x29800
-	0x29830: 0x6cb86a20,
-	// Block 0xa61, offset 0x29840
-	0x29850: 0x6c45fe20,
-	// Block 0xa62, offset 0x29880
-	0x29880: 0x6c5ef220,
-	0x298a8: 0x6c953a20,
-	// Block 0xa63, offset 0x298c0
-	0x298d9: 0x6d165020,
-	0x298df: 0x6d146820,
-	0x298e2: 0x6ca49820,
-	0x298f0: 0x6cf7de20, 0x298f2: 0x6cffaa20,
-	// Block 0xa64, offset 0x29900
-	0x2990b: 0x6c73b020,
-	// Block 0xa65, offset 0x29940
-	0x29944: 0x6d268220, 0x29946: 0x6c7b1020,
-	0x29949: 0x6c8cc220,
-	0x29950: 0x6ca5f020, 0x29953: 0x6c108a20,
-	// Block 0xa66, offset 0x29980
-	0x299b6: 0x6c4e3a20,
-	// Block 0xa67, offset 0x299c0
-	0x299e7: 0x6c3d5820,
-	0x299e9: 0x6c230a20,
-	// Block 0xa68, offset 0x29a00
-	0x29a0e: 0x6c74d220,
-	// Block 0xa69, offset 0x29a40
-	0x29a60: 0x6d2eb220,
-	0x29a66: 0x6c109020, 0x29a67: 0x6cda9a20,
-	0x29a6e: 0x6c59cc20,
-	0x29a74: 0x6d2da220,
-	// Block 0xa6a, offset 0x29a80
-	0x29a9d: 0x6c73ea20,
-	0x29aa3: 0x6c4ea420,
-	0x29aa4: 0x6c003a20,
-	0x29aa8: 0x6ce33820,
-	// Block 0xa6b, offset 0x29ac0
-	0x29ac8: 0x6d06ca20, 0x29ac9: 0x6c534620,
-	0x29ad2: 0x6c3e4620,
-	0x29ad4: 0x6c5b4020, 0x29ad5: 0x6cd1e620,
-	0x29ad9: 0x6cb41220,
-	// Block 0xa6c, offset 0x29b00
-	0x29b1b: 0x6d33bc20,
-	0x29b1e: 0x6c740c20,
-	0x29b22: 0x6ca90020,
-	0x29b36: 0x6c1c5220,
-	0x29b38: 0x6ce36020,
-	// Block 0xa6d, offset 0x29b40
-	0x29b40: 0x6c857420, 0x29b41: 0x6cecb420, 0x29b42: 0x6d144620, 0x29b43: 0x48024420,
-	0x29b44: 0x6ca62220, 0x29b45: 0x6cf43220, 0x29b46: 0x6ce9f420, 0x29b47: 0x6c0e1020,
-	0x29b48: 0x6d28b220, 0x29b49: 0x6c071c20, 0x29b4a: 0x6ccbb820, 0x29b4b: 0x6cfe3c20,
-	0x29b4c: 0x6c75ee20, 0x29b4d: 0x6cddc620, 0x29b4e: 0x6c9dfe20, 0x29b4f: 0x6ce92020,
-	0x29b50: 0x6c5a2a20, 0x29b51: 0x6c720620, 0x29b52: 0x480a3820, 0x29b53: 0x44697220,
-	0x29b54: 0x6ca57e20, 0x29b55: 0x6d292620, 0x29b56: 0x480a9620, 0x29b57: 0x6cc6ec20,
-	0x29b58: 0x6d24d020, 0x29b59: 0x6c0da020, 0x29b5a: 0x6c2fd820, 0x29b5b: 0x6c7bdc20,
-	0x29b5c: 0x6cbee220, 0x29b5d: 0x6cb9ec20, 0x29b5e: 0x6cc5a020, 0x29b5f: 0x6cafae20,
-	0x29b60: 0x6c787a20, 0x29b61: 0x6c95a620, 0x29b62: 0x6c438c20, 0x29b63: 0x6c15bc20,
-	0x29b64: 0x6c5fc020, 0x29b65: 0x6d1e1820, 0x29b66: 0x6c9e0c20, 0x29b67: 0x6cbd7c20,
-	0x29b68: 0x6cce9420, 0x29b69: 0x6c059e20, 0x29b6a: 0x6c22f420, 0x29b6b: 0x6c06c620,
-	0x29b6c: 0x6c5b8420, 0x29b6d: 0x6c068e20, 0x29b6e: 0x6c0efe20, 0x29b6f: 0x6c5fd220,
-	0x29b70: 0x6c5fec20, 0x29b71: 0x6cbe3a20, 0x29b72: 0x6cbe3a20, 0x29b73: 0x6cbe3a20,
-	0x29b74: 0x48145820, 0x29b75: 0x6c5a8620, 0x29b76: 0x6c5fb820, 0x29b77: 0x6cda0e20,
-	0x29b78: 0x4816c620, 0x29b79: 0x6c697a20, 0x29b7a: 0x6c1bd620, 0x29b7b: 0x6d108620,
-	0x29b7c: 0x6cfc7820, 0x29b7d: 0x6cf56a20, 0x29b7e: 0x6c19b620, 0x29b7f: 0x6d385a20,
-	// Block 0xa6e, offset 0x29b80
-	0x29b80: 0x6c35e420, 0x29b81: 0x6c9ec220, 0x29b82: 0x6ce0e820, 0x29b83: 0x6cb6ec20,
-	0x29b84: 0x6cfb5820, 0x29b85: 0x6ccd8a20, 0x29b86: 0x6ccd8a20, 0x29b87: 0x6c5bbc20,
-	0x29b88: 0x6c1aae20, 0x29b89: 0x6d2bd620, 0x29b8a: 0x6d110420, 0x29b8b: 0x6ce8d420,
-	0x29b8c: 0x6ce0a020, 0x29b8d: 0x6ce8d620, 0x29b8e: 0x6c4fd020, 0x29b8f: 0x6cae3420,
-	0x29b90: 0x6cbc9020, 0x29b91: 0x6d3c2c20, 0x29b92: 0x6c19c620, 0x29b93: 0x6d344c20,
-	0x29b94: 0x6ce92220, 0x29b95: 0x6d03ca20, 0x29b96: 0x6c223620, 0x29b97: 0x6c064c20,
-	0x29b98: 0x6c2c7c20, 0x29b99: 0x4829c820, 0x29b9a: 0x6c972420, 0x29b9b: 0x6c554020,
-	0x29b9c: 0x6c3c9c20, 0x29b9d: 0x6c341620, 0x29b9e: 0x6c9c0420, 0x29b9f: 0x6cceea20,
-	0x29ba0: 0x6c1bda20, 0x29ba1: 0x482dd420, 0x29ba2: 0x6c5ea220, 0x29ba3: 0x6d20ec20,
-	0x29ba4: 0x6ce9f820, 0x29ba5: 0x6cb1e820, 0x29ba6: 0x6c3fe420, 0x29ba7: 0x6ccae220,
-	0x29ba8: 0x6c139820, 0x29ba9: 0x6cc52820, 0x29baa: 0x6c804820, 0x29bab: 0x6c804820,
-	0x29bac: 0x48339020, 0x29bad: 0x6d24da20, 0x29bae: 0x6d365020, 0x29baf: 0x6ca91020,
-	0x29bb0: 0x6c061c20, 0x29bb1: 0x6c81ee20, 0x29bb2: 0x6cd45020, 0x29bb3: 0x6c674e20,
-	0x29bb4: 0x6c28f820, 0x29bb5: 0x6d1edc20, 0x29bb6: 0x6d11f020, 0x29bb7: 0x6ce8a020,
-	0x29bb8: 0x6c17fa20, 0x29bb9: 0x6d053020, 0x29bba: 0x6cb8a420, 0x29bbb: 0x6cf3b020,
-	0x29bbc: 0x6d0d7a20, 0x29bbd: 0x483bcc20, 0x29bbe: 0x6c2ccc20, 0x29bbf: 0x6d3e3620,
-	// Block 0xa6f, offset 0x29bc0
-	0x29bc0: 0x6c15c620, 0x29bc1: 0x6d09d820, 0x29bc2: 0x6c175e20, 0x29bc3: 0x6d15b220,
-	0x29bc4: 0x6d0a8c20, 0x29bc5: 0x6cd71420, 0x29bc6: 0x6c997a20, 0x29bc7: 0x6c3b8620,
-	0x29bc8: 0x6c980020, 0x29bc9: 0x48430620, 0x29bca: 0x6d16e820, 0x29bcb: 0x6c0e0e20,
-	0x29bcc: 0x6c097620, 0x29bcd: 0x6cd5c220, 0x29bce: 0x6c80b420, 0x29bcf: 0x6cd79620,
-	0x29bd0: 0x6c45cc20, 0x29bd1: 0x48466220, 0x29bd2: 0x48466220, 0x29bd3: 0x6d20e820,
-	0x29bd4: 0x6ce1b020, 0x29bd5: 0x6ce1b020, 0x29bd6: 0x6d16b220, 0x29bd7: 0x48657020,
-	0x29bd8: 0x48c3b420, 0x29bd9: 0x6d03c020, 0x29bda: 0x6c2dc420, 0x29bdb: 0x6ccd7820,
-	0x29bdc: 0x6c300020, 0x29bdd: 0x6cc58620, 0x29bde: 0x6d357420, 0x29bdf: 0x6c7bb620,
-	0x29be0: 0x6d24d420, 0x29be1: 0x6c5a4620, 0x29be2: 0x6c73f820, 0x29be3: 0x6c5b4c20,
-	0x29be4: 0x6c2ff820, 0x29be5: 0x6c339820, 0x29be6: 0x6c224e20, 0x29be7: 0x6c599420,
-	0x29be8: 0x6cd0ac20, 0x29be9: 0x6c599420, 0x29bea: 0x6c90a220, 0x29beb: 0x6d2b8a20,
-	0x29bec: 0x6cfd0820, 0x29bed: 0x6c3be420, 0x29bee: 0x6c11da20, 0x29bef: 0x6c9b4a20,
-	0x29bf0: 0x6c1a5420, 0x29bf1: 0x6c804a20, 0x29bf2: 0x6c19b220, 0x29bf3: 0x6c63b620,
-	0x29bf4: 0x6c7a1820, 0x29bf5: 0x6c063220, 0x29bf6: 0x6c036820, 0x29bf7: 0x6c72e420,
-	0x29bf8: 0x48561820, 0x29bf9: 0x6cecf820, 0x29bfa: 0x6cb1ea20, 0x29bfb: 0x6ccf2c20,
-	0x29bfc: 0x6ccae020, 0x29bfd: 0x6c600020, 0x29bfe: 0x4857e220, 0x29bff: 0x6c6d1420,
-	// Block 0xa70, offset 0x29c00
-	0x29c00: 0x6d0ca820, 0x29c01: 0x6d0d6620, 0x29c02: 0x6c30b620, 0x29c03: 0x6ca07220,
-	0x29c04: 0x6c67f620, 0x29c05: 0x6c5ae420, 0x29c06: 0x6c691420, 0x29c07: 0x4474d820,
-	0x29c08: 0x6c9fa820, 0x29c09: 0x6c6e8420, 0x29c0a: 0x48601420, 0x29c0b: 0x6c61ec20,
-	0x29c0c: 0x6cd4b820, 0x29c0d: 0x6c6cea20, 0x29c0e: 0x6cf01620, 0x29c0f: 0x6cd55a20,
-	0x29c10: 0x6cf15420, 0x29c11: 0x6c16e420, 0x29c12: 0x6c994e20, 0x29c13: 0x6c9e1820,
-	0x29c14: 0x6d41b020, 0x29c15: 0x6c6d2820, 0x29c16: 0x6ca31420, 0x29c17: 0x6ce05420,
-	0x29c18: 0x6c80f820, 0x29c19: 0x6cee5220, 0x29c1a: 0x6d3f9820, 0x29c1b: 0x6cb6d620,
-	0x29c1c: 0x6c0bea20, 0x29c1d: 0x48678620, 0x29c1e: 0x6c572820, 0x29c1f: 0x6c48dc20,
-	0x29c20: 0x6c5e8e20, 0x29c21: 0x6cca6a20, 0x29c22: 0x6c99ec20, 0x29c23: 0x4868da20,
-	0x29c24: 0x6c022a20, 0x29c25: 0x6c078420, 0x29c26: 0x6d3e3a20, 0x29c27: 0x6c513820,
-	0x29c28: 0x6d2be020, 0x29c29: 0x6d112020, 0x29c2a: 0x6c415020, 0x29c2b: 0x6ccefe20,
-	0x29c2c: 0x486d4620, 0x29c2d: 0x6d370620, 0x29c2e: 0x6d159820, 0x29c2f: 0x6c22aa20,
-	0x29c30: 0x48714e20, 0x29c31: 0x6d05d420, 0x29c32: 0x6c7d9c20, 0x29c33: 0x6cdc4620,
-	0x29c34: 0x6cf15820, 0x29c35: 0x6ccbda20, 0x29c36: 0x6cbc4020, 0x29c37: 0x48751a20,
-	0x29c38: 0x483a1620, 0x29c39: 0x4875f420, 0x29c3a: 0x6c391c20, 0x29c3b: 0x48797820,
-	0x29c3c: 0x6d0c6820, 0x29c3d: 0x6c077e20, 0x29c3e: 0x6cb8a820, 0x29c3f: 0x6cf3b620,
-	// Block 0xa71, offset 0x29c40
-	0x29c40: 0x6cac1e20, 0x29c41: 0x6c4d3a20, 0x29c42: 0x6c8e4a20, 0x29c43: 0x6c502e20,
-	0x29c44: 0x6c6cee20, 0x29c45: 0x6ca80820, 0x29c46: 0x6c07ac20, 0x29c47: 0x6cb28620,
-	0x29c48: 0x6c42a220, 0x29c49: 0x6d0c0820, 0x29c4a: 0x6c903620, 0x29c4b: 0x6d3e4020,
-	0x29c4c: 0x6c2cce20, 0x29c4d: 0x6ccc0a20, 0x29c4e: 0x6d0bf820, 0x29c4f: 0x6c177620,
-	0x29c50: 0x487ebc20, 0x29c51: 0x487f1c20, 0x29c52: 0x6c3b8c20, 0x29c53: 0x6d270a20,
-	0x29c54: 0x6c6eb420, 0x29c55: 0x6d1cba20, 0x29c56: 0x6cd63020, 0x29c57: 0x6cb9e020,
-	0x29c58: 0x6d28f220, 0x29c59: 0x6d3bbe20, 0x29c5a: 0x6ce08e20, 0x29c5b: 0x480a4a20,
-	0x29c5c: 0x6c32cc20, 0x29c5d: 0x4884c620, 0x29c5e: 0x6c233e20, 0x29c5f: 0x48875620,
-	0x29c60: 0x6c24c420, 0x29c61: 0x6c74c820, 0x29c62: 0x6d2c3a20, 0x29c63: 0x488c1020,
-	0x29c64: 0x6cf61a20, 0x29c65: 0x6c074020, 0x29c66: 0x6d0e3c20, 0x29c67: 0x48902820,
-	0x29c68: 0x6cde2020, 0x29c69: 0x6cedda20, 0x29c6a: 0x6c45d620, 0x29c6b: 0x6d268820,
-	0x29c6c: 0x6cb29020, 0x29c6d: 0x6cb29020, 0x29c6e: 0x6c277a20, 0x29c6f: 0x6d215e20,
-	0x29c70: 0x6d325020, 0x29c71: 0x6cdd8a20, 0x29c72: 0x6cbf7620, 0x29c73: 0x6d03d220,
-	0x29c74: 0x6cc89c20, 0x29c75: 0x48986c20, 0x29c76: 0x6d28f620, 0x29c77: 0x48992420,
-	0x29c78: 0x6d176620, 0x29c79: 0x6cb2b420, 0x29c7a: 0x6d226e20, 0x29c7b: 0x489f4220,
-	0x29c7c: 0x489f7020, 0x29c7d: 0x48a08820, 0x29c7e: 0x6d0c7620, 0x29c7f: 0x6c627820,
-	// Block 0xa72, offset 0x29c80
-	0x29c80: 0x6d344020, 0x29c81: 0x48a1e620, 0x29c82: 0x48a1e420, 0x29c83: 0x48a23220,
-	0x29c84: 0x48a26620, 0x29c85: 0x6d313c20, 0x29c86: 0x6d313e20, 0x29c87: 0x6d313e20,
-	0x29c88: 0x6c736420, 0x29c89: 0x6c6ad220, 0x29c8a: 0x6c188220, 0x29c8b: 0x6d130220,
-	0x29c8c: 0x6cd23420, 0x29c8d: 0x48a83a20, 0x29c8e: 0x6d03e220, 0x29c8f: 0x6c926e20,
-	0x29c90: 0x6ce4ba20, 0x29c91: 0x6c5b7020, 0x29c92: 0x6c6fd820, 0x29c93: 0x6d411420,
-	0x29c94: 0x6c1baa20, 0x29c95: 0x6c8f3a20, 0x29c96: 0x6c3e9c20, 0x29c97: 0x6cd52420,
-	0x29c98: 0x6c657420, 0x29c99: 0x6c47c420, 0x29c9a: 0x6c624a20, 0x29c9b: 0x6cf1f020,
-	0x29c9c: 0x48b2f820, 0x29c9d: 0x6ce4c020, 0x29c9e: 0x6ce4c020, 0x29c9f: 0x6cb26020,
-	0x29ca0: 0x6cb2be20, 0x29ca1: 0x48b75620, 0x29ca2: 0x6d3bde20, 0x29ca3: 0x6d3a2820,
-	0x29ca4: 0x6cf00020, 0x29ca5: 0x6c178020, 0x29ca6: 0x6c076020, 0x29ca7: 0x6cf8f420,
-	0x29ca8: 0x6c680820, 0x29ca9: 0x6cca3020, 0x29caa: 0x6c61b020, 0x29cab: 0x48bf0c20,
-	0x29cac: 0x6c07ee20, 0x29cad: 0x6d10b020, 0x29cae: 0x6d3e6a20, 0x29caf: 0x6d400620,
-	0x29cb0: 0x6ccac220, 0x29cb1: 0x6c965020, 0x29cb2: 0x6d03dc20, 0x29cb3: 0x48c48e20,
-	0x29cb4: 0x6c9a0420, 0x29cb5: 0x48c5b220, 0x29cb6: 0x6c177e20, 0x29cb7: 0x48c67c20,
-	0x29cb8: 0x6d104a20, 0x29cb9: 0x6c027e20, 0x29cba: 0x6d30d220, 0x29cbb: 0x48c9b420,
-	0x29cbc: 0x48ca4620, 0x29cbd: 0x6cb25820, 0x29cbe: 0x48cb5020, 0x29cbf: 0x6c236620,
-	// Block 0xa73, offset 0x29cc0
-	0x29cc0: 0x6c78f420, 0x29cc1: 0x6cc5d220, 0x29cc2: 0x6d22da20, 0x29cc3: 0x6c252c20,
-	0x29cc4: 0x6c231a20, 0x29cc5: 0x6caff420, 0x29cc6: 0x6d1d4020, 0x29cc7: 0x48cf4e20,
-	0x29cc8: 0x48cf6a20, 0x29cc9: 0x6d085420, 0x29cca: 0x48673820, 0x29ccb: 0x6d20e820,
-	0x29ccc: 0x6cf89220, 0x29ccd: 0x6c225220, 0x29cce: 0x6c07f020, 0x29ccf: 0x6cb6ce20,
-	0x29cd0: 0x6d22c820, 0x29cd1: 0x6d338420, 0x29cd2: 0x6c813e20, 0x29cd3: 0x6c570620,
-	0x29cd4: 0x6c398620, 0x29cd5: 0x6d0b1420, 0x29cd6: 0x6c7a7620, 0x29cd7: 0x48d67820,
-	0x29cd8: 0x6cc91420, 0x29cd9: 0x6c148e20, 0x29cda: 0x6cc65e20, 0x29cdb: 0x6c6aa820,
-	0x29cdc: 0x6cf3bc20, 0x29cdd: 0x6c988a20, 0x29cde: 0x6c2bf220, 0x29cdf: 0x6d311420,
-	0x29ce0: 0x6cb28e20, 0x29ce1: 0x6c711c20, 0x29ce2: 0x6c757020, 0x29ce3: 0x6c114420,
-	0x29ce4: 0x48d86c20, 0x29ce5: 0x6cdd8420, 0x29ce6: 0x48d9aa20, 0x29ce7: 0x448a5620,
-	0x29ce8: 0x6cb2ae20, 0x29ce9: 0x6c6ca620, 0x29cea: 0x6c25ea20, 0x29ceb: 0x48e79420,
-	0x29cec: 0x6cc8a220, 0x29ced: 0x48de5820, 0x29cee: 0x6c19a420, 0x29cef: 0x6c936e20,
-	0x29cf0: 0x6c175420, 0x29cf1: 0x6c93c420, 0x29cf2: 0x6c7cba20, 0x29cf3: 0x6caaa220,
-	0x29cf4: 0x6c91c420, 0x29cf5: 0x6c7c4820, 0x29cf6: 0x6cf90620, 0x29cf7: 0x6c1aa420,
-	0x29cf8: 0x6cb8ca20, 0x29cf9: 0x6d24fc20, 0x29cfa: 0x6cb2b020, 0x29cfb: 0x6d276220,
-	0x29cfc: 0x6c2ed620, 0x29cfd: 0x6d39be20, 0x29cfe: 0x6c22de20, 0x29cff: 0x6c5f4420,
-	// Block 0xa74, offset 0x29d00
-	0x29d00: 0x6c4b2220, 0x29d01: 0x6cfe0220, 0x29d02: 0x6c22ec20, 0x29d03: 0x6d3cd820,
-	0x29d04: 0x6d13be20, 0x29d05: 0x6c668020, 0x29d06: 0x6c8e6020, 0x29d07: 0x6cd72420,
-	0x29d08: 0x6c929c20, 0x29d09: 0x6d0daa20, 0x29d0a: 0x6c996a20, 0x29d0b: 0x48f15c20,
-	0x29d0c: 0x48f2cc20, 0x29d0d: 0x6ca8e820, 0x29d0e: 0x6d25ea20, 0x29d0f: 0x6c1a2220,
-	0x29d10: 0x6d23f620, 0x29d11: 0x6c0bdc20, 0x29d12: 0x6cd2b020, 0x29d13: 0x6c649220,
-	0x29d14: 0x6c498620, 0x29d15: 0x6c09b020, 0x29d16: 0x6c424420, 0x29d17: 0x6cb6ea20,
-	0x29d18: 0x6cd61020, 0x29d19: 0x6d2fdc20, 0x29d1a: 0x6c038220, 0x29d1b: 0x6c658c20,
-	0x29d1c: 0x6cb11c20, 0x29d1d: 0x4811bc20, 0x29d1e: 0x6cc5e420, 0x29d1f: 0x6cd50820,
-	0x29d20: 0x490ba420, 0x29d21: 0x490bda20, 0x29d22: 0x6cb6c420, 0x29d23: 0x6cb27e20,
-	0x29d24: 0x6d3e4a20, 0x29d25: 0x490e5c20, 0x29d26: 0x6c176420, 0x29d27: 0x6c0f1c20,
-	0x29d28: 0x6d07ca20, 0x29d29: 0x6c575620, 0x29d2a: 0x6c0dee20, 0x29d2b: 0x6cbb5020,
-	0x29d2c: 0x6d295820, 0x29d2d: 0x4917f420, 0x29d2e: 0x6c763420, 0x29d2f: 0x6cae7c20,
-	0x29d30: 0x6ccca420, 0x29d31: 0x491aee20, 0x29d32: 0x6cef3620, 0x29d33: 0x6cb8e820,
-	0x29d34: 0x6cf69820, 0x29d35: 0x6d280620, 0x29d36: 0x6cace820, 0x29d37: 0x6cb26420,
-	0x29d38: 0x6c930020, 0x29d39: 0x6c160820, 0x29d3a: 0x6c0ab220, 0x29d3b: 0x49281420,
-	0x29d3c: 0x6c7d6c20, 0x29d3d: 0x6d0eb020, 0x29d3e: 0x6c35b420, 0x29d3f: 0x6c35b420,
-	// Block 0xa75, offset 0x29d40
-	0x29d40: 0x6cb26620, 0x29d41: 0x6d097020, 0x29d42: 0x6c5eb020, 0x29d43: 0x6c04d420,
-	0x29d44: 0x6c36b220, 0x29d45: 0x6d276c20, 0x29d46: 0x6c060a20, 0x29d47: 0x6cea1420,
-	0x29d48: 0x6c423020, 0x29d49: 0x6cbf6820, 0x29d4a: 0x6d320420, 0x29d4b: 0x6c62d820,
-	0x29d4c: 0x6c64ec20, 0x29d4d: 0x6c702e20, 0x29d4e: 0x6c60f620, 0x29d4f: 0x6cb02c20,
-	0x29d50: 0x6d21ea20, 0x29d51: 0x6c968620, 0x29d52: 0x6ccc2e20, 0x29d53: 0x49441c20,
-	0x29d54: 0x49452220, 0x29d55: 0x6c966820, 0x29d56: 0x6cba8620, 0x29d57: 0x6d353420,
-	0x29d58: 0x6c9e0a20, 0x29d59: 0x6d342a20, 0x29d5a: 0x6c9d7420, 0x29d5b: 0x6c3ba420,
-	0x29d5c: 0x6c08a220, 0x29d5d: 0x6cb13820,
-}
-
-// mainLookup: 13824 entries, 27648 bytes
-// Block 0 is the null block.
-var mainLookup = [13824]uint16{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0e0: 0x1f, 0x0e1: 0x20, 0x0e2: 0x21, 0x0e3: 0x22, 0x0e4: 0x23, 0x0e5: 0x24, 0x0e6: 0x25, 0x0e7: 0x26,
-	0x0e8: 0x27, 0x0e9: 0x28, 0x0ea: 0x29, 0x0eb: 0x2a, 0x0ec: 0x2b, 0x0ed: 0x2c, 0x0ee: 0x2d, 0x0ef: 0x2e,
-	0x0f0: 0x2f, 0x0f1: 0x30, 0x0f2: 0x31, 0x0f3: 0x32, 0x0f4: 0x33, 0x0f5: 0x34, 0x0f6: 0x35, 0x0f7: 0x36,
-	0x0f8: 0x37, 0x0f9: 0x38, 0x0fa: 0x39, 0x0fb: 0x3a, 0x0fc: 0x3b, 0x0fd: 0x3c, 0x0fe: 0x3d, 0x0ff: 0x3e,
-	// Block 0x4, offset 0x100
-	0x100: 0x3f, 0x101: 0x40, 0x102: 0x41, 0x103: 0x42, 0x104: 0x43, 0x105: 0x44, 0x106: 0x45, 0x107: 0x46,
-	0x108: 0x47, 0x109: 0x48, 0x10a: 0x49, 0x10b: 0x4a, 0x10c: 0x4b, 0x10d: 0x4c, 0x10e: 0x4d, 0x10f: 0x4e,
-	0x110: 0x4f, 0x111: 0x50, 0x112: 0x51, 0x113: 0x52, 0x114: 0x53, 0x115: 0x54, 0x116: 0x55, 0x117: 0x56,
-	0x118: 0x57, 0x119: 0x58, 0x11a: 0x59, 0x11b: 0x5a, 0x11c: 0x5b, 0x11d: 0x5c, 0x11e: 0x5d, 0x11f: 0x5e,
-	0x120: 0x5f, 0x121: 0x60, 0x122: 0x61, 0x123: 0x62, 0x124: 0x63, 0x125: 0x64, 0x126: 0x65, 0x127: 0x66,
-	0x128: 0x67, 0x129: 0x68, 0x12a: 0x69, 0x12c: 0x6a, 0x12d: 0x6b, 0x12e: 0x6c, 0x12f: 0x6d,
-	0x130: 0x6e, 0x131: 0x6f, 0x133: 0x70, 0x134: 0x71, 0x135: 0x72, 0x136: 0x73, 0x137: 0x74,
-	0x138: 0x75, 0x139: 0x76, 0x13a: 0x77, 0x13b: 0x78, 0x13c: 0x79, 0x13d: 0x7a, 0x13e: 0x7b, 0x13f: 0x7c,
-	// Block 0x5, offset 0x140
-	0x140: 0x7d, 0x141: 0x7e, 0x142: 0x7f, 0x143: 0x80, 0x144: 0x81, 0x145: 0x82, 0x146: 0x83, 0x147: 0x84,
-	0x148: 0x85, 0x149: 0x86, 0x14a: 0x87, 0x14b: 0x88, 0x14c: 0x89, 0x14d: 0x8a, 0x14e: 0x8b, 0x14f: 0x8c,
-	0x150: 0x8d, 0x151: 0x8e, 0x152: 0x8f, 0x153: 0x90, 0x154: 0x91, 0x155: 0x92, 0x156: 0x93, 0x157: 0x94,
-	0x158: 0x95, 0x159: 0x96, 0x15a: 0x97, 0x15b: 0x98, 0x15c: 0x99, 0x15d: 0x9a, 0x15e: 0x9b, 0x15f: 0x9c,
-	0x160: 0x9d, 0x161: 0x9e, 0x162: 0x9f, 0x163: 0xa0, 0x164: 0xa1, 0x165: 0xa2, 0x166: 0xa3, 0x167: 0xa4,
-	0x168: 0xa5, 0x169: 0xa6, 0x16a: 0xa7, 0x16b: 0xa8, 0x16c: 0xa9, 0x16d: 0xaa,
-	0x170: 0xab, 0x171: 0xac, 0x172: 0xad, 0x173: 0xae, 0x174: 0xaf, 0x175: 0xb0, 0x176: 0xb1, 0x177: 0xb2,
-	0x178: 0xb3, 0x17a: 0xb4, 0x17b: 0xb5, 0x17c: 0xb6, 0x17d: 0xb7, 0x17e: 0xb8, 0x17f: 0xb9,
-	// Block 0x6, offset 0x180
-	0x180: 0xba, 0x181: 0xbb, 0x182: 0xbc, 0x183: 0xbd, 0x184: 0xbe, 0x185: 0xbf, 0x186: 0xc0, 0x187: 0xc1,
-	0x188: 0xc2, 0x189: 0xc3, 0x18a: 0xc4, 0x18b: 0xc5, 0x18c: 0xc6, 0x18d: 0xc7, 0x18e: 0xc8, 0x18f: 0xc9,
-	// Block 0x7, offset 0x1c0
-	0x1f7: 0xca,
-	// Block 0x8, offset 0x200
-	0x200: 0xcb, 0x201: 0xcc, 0x202: 0xcd, 0x203: 0xce, 0x204: 0xcf, 0x205: 0xd0, 0x206: 0xd1, 0x207: 0xd2,
-	0x208: 0xd3, 0x209: 0xd4, 0x20a: 0xd5, 0x20b: 0xd6, 0x20c: 0xd7, 0x20d: 0xd8, 0x20e: 0xd9, 0x20f: 0xda,
-	0x210: 0xdb, 0x211: 0xdc, 0x212: 0xdd, 0x213: 0xde, 0x214: 0xdf, 0x215: 0xe0, 0x216: 0xe1, 0x217: 0xe2,
-	0x218: 0xe3, 0x219: 0xe4, 0x21a: 0xe5, 0x21b: 0xe6, 0x21c: 0xe7, 0x21d: 0xe8, 0x21e: 0xe9, 0x21f: 0xea,
-	0x220: 0xeb, 0x221: 0xec, 0x222: 0xed, 0x223: 0xee, 0x224: 0xef, 0x225: 0xf0, 0x226: 0xf1, 0x227: 0xf2,
-	0x228: 0xf3, 0x229: 0xf4, 0x22a: 0xf5, 0x22b: 0xf6, 0x22c: 0xf7, 0x22f: 0xf8,
-	// Block 0x9, offset 0x240
-	0x25e: 0xf9, 0x25f: 0xfa,
-	// Block 0xa, offset 0x280
-	0x2a4: 0xfb, 0x2a5: 0xfc, 0x2a6: 0xfd, 0x2a7: 0xfe,
-	0x2a8: 0xff, 0x2a9: 0x100, 0x2aa: 0x101, 0x2ab: 0x102, 0x2ac: 0x103, 0x2ad: 0x104, 0x2ae: 0x105, 0x2af: 0x106,
-	0x2b0: 0x107, 0x2b1: 0x108, 0x2b2: 0x109, 0x2b3: 0x10a, 0x2b4: 0x10b, 0x2b5: 0x10c, 0x2b6: 0x10d, 0x2b7: 0x10e,
-	0x2b8: 0x10f, 0x2b9: 0x110, 0x2ba: 0x111, 0x2bb: 0x112, 0x2bc: 0x113, 0x2bd: 0x114, 0x2be: 0x115, 0x2bf: 0x116,
-	// Block 0xb, offset 0x2c0
-	0x2c0: 0x117, 0x2c1: 0x118, 0x2c2: 0x119, 0x2c3: 0x11a, 0x2c4: 0x11b, 0x2c5: 0x11c, 0x2c6: 0x11d, 0x2c7: 0x11e,
-	0x2ca: 0x11f, 0x2cb: 0x120, 0x2cc: 0x121, 0x2cd: 0x122, 0x2ce: 0x123, 0x2cf: 0x124,
-	0x2d0: 0x125, 0x2d1: 0x126, 0x2d2: 0x127,
-	0x2e0: 0x128, 0x2e1: 0x129, 0x2e4: 0x12a, 0x2e6: 0x12b,
-	0x2e8: 0x12c, 0x2e9: 0x12d, 0x2ec: 0x12e, 0x2ed: 0x12f,
-	0x2f0: 0x130, 0x2f1: 0x131,
-	0x2f9: 0x132,
-	// Block 0xc, offset 0x300
-	0x300: 0x133, 0x301: 0x134, 0x302: 0x135, 0x303: 0x136, 0x304: 0x137, 0x305: 0x138, 0x306: 0x139, 0x307: 0x13a,
-	0x31a: 0x13b, 0x31b: 0x13c,
-	// Block 0xd, offset 0x340
-	0x340: 0x13d, 0x341: 0x13e, 0x342: 0x13f, 0x343: 0x140, 0x344: 0x141, 0x345: 0x142, 0x346: 0x143, 0x347: 0x144,
-	0x348: 0x145, 0x349: 0x146, 0x34a: 0x147, 0x34b: 0x148, 0x34c: 0x149, 0x34d: 0x14a,
-	0x350: 0x14b, 0x351: 0x14c,
-	// Block 0xe, offset 0x380
-	0x380: 0x14d, 0x381: 0x14e, 0x382: 0x14f, 0x383: 0x150, 0x384: 0x151, 0x385: 0x152, 0x386: 0x153, 0x387: 0x154,
-	0x388: 0x155, 0x389: 0x156, 0x38a: 0x157, 0x38b: 0x158, 0x38c: 0x159, 0x38d: 0x15a, 0x38e: 0x15b, 0x38f: 0x15c,
-	0x390: 0x15d,
-	// Block 0xf, offset 0x3c0
-	0x3e0: 0x15e, 0x3e1: 0x15f, 0x3e2: 0x160, 0x3e3: 0x161, 0x3e4: 0x162, 0x3e5: 0x163, 0x3e6: 0x164, 0x3e7: 0x165,
-	0x3e8: 0x166,
-	0x3fc: 0x167, 0x3fd: 0x168, 0x3fe: 0x169,
-	// Block 0x10, offset 0x400
-	0x400: 0x16a,
-	// Block 0x11, offset 0x440
-	0x440: 0x16b, 0x441: 0x16c, 0x442: 0x16d, 0x443: 0x16e, 0x444: 0x16f, 0x445: 0x170, 0x446: 0x171, 0x447: 0x172,
-	0x448: 0x173, 0x449: 0x174, 0x44c: 0x175, 0x44d: 0x176,
-	0x450: 0x177, 0x451: 0x178, 0x452: 0x179, 0x453: 0x17a, 0x454: 0x17b, 0x455: 0x17c, 0x456: 0x17d, 0x457: 0x17e,
-	0x458: 0x17f, 0x459: 0x180, 0x45a: 0x181, 0x45b: 0x182, 0x45c: 0x183, 0x45d: 0x184, 0x45e: 0x185, 0x45f: 0x186,
-	// Block 0x12, offset 0x480
-	0x4b8: 0x187, 0x4b9: 0x188, 0x4ba: 0x189, 0x4bb: 0x18a,
-	// Block 0x13, offset 0x4c0
-	0x4c0: 0x18b, 0x4c1: 0x18c, 0x4c2: 0x18d, 0x4c3: 0x18e, 0x4c4: 0x18f, 0x4c5: 0x190, 0x4c6: 0x191, 0x4c7: 0x192,
-	0x4c8: 0x193, 0x4c9: 0x194, 0x4cc: 0x195, 0x4cd: 0x196, 0x4ce: 0x197, 0x4cf: 0x198,
-	0x4d0: 0x199, 0x4d1: 0x19a, 0x4d2: 0x19b, 0x4d3: 0x19c, 0x4d4: 0x19d, 0x4d5: 0x19e, 0x4d7: 0x19f,
-	0x4d8: 0x1a0, 0x4d9: 0x1a1, 0x4da: 0x1a2, 0x4db: 0x1a3, 0x4dc: 0x1a4, 0x4dd: 0x1a5,
-	// Block 0x14, offset 0x500
-	0x520: 0x1a6, 0x521: 0x1a7, 0x522: 0x1a8, 0x523: 0x1a9, 0x524: 0x1aa, 0x525: 0x1ab, 0x526: 0x1ac, 0x527: 0x1ad,
-	0x528: 0x1ae,
-	// Block 0x15, offset 0x540
-	0x550: 0x09, 0x551: 0x0a, 0x552: 0x0b, 0x553: 0x0c, 0x556: 0x0d,
-	0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
-	0x56f: 0x12,
-	// Block 0x16, offset 0x580
-	0x580: 0x1af, 0x581: 0x1b0, 0x584: 0x1b0, 0x585: 0x1b0, 0x586: 0x1b0, 0x587: 0x1b1,
-	// Block 0x17, offset 0x5c0
-	0x5e0: 0x14,
-	// Block 0x18, offset 0x600
-	0x602: 0x01, 0x603: 0x02, 0x604: 0x03, 0x605: 0x04, 0x606: 0x05, 0x607: 0x06,
-	0x608: 0x07, 0x609: 0x08, 0x60a: 0x09, 0x60b: 0x0a, 0x60c: 0x0b, 0x60d: 0x0c, 0x60e: 0x0d, 0x60f: 0x0e,
-	0x610: 0x0f, 0x611: 0x10, 0x612: 0x11, 0x613: 0x12, 0x614: 0x13, 0x615: 0x14, 0x616: 0x15, 0x617: 0x16,
-	0x618: 0x17, 0x619: 0x18, 0x61a: 0x19, 0x61b: 0x1a, 0x61c: 0x1b, 0x61d: 0x1c, 0x61e: 0x1d, 0x61f: 0x1e,
-	0x620: 0x01, 0x621: 0x02, 0x622: 0x03, 0x623: 0x04, 0x624: 0x05,
-	0x62a: 0x06, 0x62d: 0x07, 0x62f: 0x08,
-	0x630: 0x13, 0x633: 0x15,
-	// Block 0x19, offset 0x640
-	0x642: 0x01, 0x643: 0x02, 0x644: 0x03, 0x645: 0x1b2, 0x646: 0x05, 0x647: 0x06,
-	0x648: 0x07, 0x649: 0x08, 0x64a: 0x09, 0x64b: 0x0a, 0x64c: 0x0b, 0x64d: 0x0c, 0x64e: 0x0d, 0x64f: 0x0e,
-	0x650: 0x0f, 0x651: 0x10, 0x652: 0x11, 0x653: 0x12, 0x654: 0x13, 0x655: 0x14, 0x656: 0x15, 0x657: 0x16,
-	0x658: 0x17, 0x659: 0x18, 0x65a: 0x19, 0x65b: 0x1a, 0x65c: 0x1b, 0x65d: 0x1c, 0x65e: 0x1d, 0x65f: 0x1e,
-	0x660: 0x01, 0x661: 0x02, 0x662: 0x03, 0x663: 0x04, 0x664: 0x05,
-	0x66a: 0x06, 0x66d: 0x07, 0x66f: 0x08,
-	0x670: 0x13, 0x673: 0x15,
-	// Block 0x1a, offset 0x680
-	0x6a4: 0xfb, 0x6a5: 0xfc, 0x6a6: 0xfd, 0x6a7: 0xfe,
-	0x6a8: 0xff, 0x6a9: 0x100, 0x6aa: 0x101, 0x6ab: 0x102, 0x6ac: 0x103, 0x6ad: 0x104, 0x6ae: 0x105, 0x6af: 0x1b5,
-	0x6b0: 0x1b6, 0x6b1: 0x1b7, 0x6b2: 0x1b8, 0x6b3: 0x1b9, 0x6b4: 0x1ba, 0x6b5: 0x10c, 0x6b6: 0x10d, 0x6b7: 0x10e,
-	0x6b8: 0x10f, 0x6b9: 0x110, 0x6ba: 0x1bb, 0x6bb: 0x1bc, 0x6bc: 0x113, 0x6bd: 0x114, 0x6be: 0x115, 0x6bf: 0x116,
-	// Block 0x1b, offset 0x6c0
-	0x6c2: 0x01, 0x6c3: 0x02, 0x6c4: 0x03, 0x6c5: 0x04, 0x6c6: 0x05, 0x6c7: 0x06,
-	0x6c8: 0x07, 0x6c9: 0x08, 0x6ca: 0x09, 0x6cb: 0x0a, 0x6cc: 0x0b, 0x6cd: 0x0c, 0x6ce: 0x0d, 0x6cf: 0x0e,
-	0x6d0: 0x0f, 0x6d1: 0x10, 0x6d2: 0x11, 0x6d3: 0x12, 0x6d4: 0x13, 0x6d5: 0x14, 0x6d6: 0x15, 0x6d7: 0x16,
-	0x6d8: 0x1b3, 0x6d9: 0x1b4, 0x6da: 0x19, 0x6db: 0x1a, 0x6dc: 0x1b, 0x6dd: 0x1c, 0x6de: 0x1d, 0x6df: 0x1e,
-	0x6e0: 0x01, 0x6e1: 0x02, 0x6e2: 0x03, 0x6e3: 0x04, 0x6e4: 0x05,
-	0x6ea: 0x06, 0x6ed: 0x07, 0x6ef: 0x18,
-	0x6f0: 0x13, 0x6f3: 0x15,
-	// Block 0x1c, offset 0x700
-	0x720: 0x1f, 0x721: 0x20, 0x722: 0x21, 0x723: 0x22, 0x724: 0x23, 0x725: 0x24, 0x726: 0x1bd, 0x727: 0x26,
-	0x728: 0x27, 0x729: 0x28, 0x72a: 0x29, 0x72b: 0x2a, 0x72c: 0x2b, 0x72d: 0x2c, 0x72e: 0x2d, 0x72f: 0x2e,
-	0x730: 0x2f, 0x731: 0x30, 0x732: 0x31, 0x733: 0x32, 0x734: 0x33, 0x735: 0x34, 0x736: 0x35, 0x737: 0x36,
-	0x738: 0x37, 0x739: 0x38, 0x73a: 0x39, 0x73b: 0x3a, 0x73c: 0x3b, 0x73d: 0x3c, 0x73e: 0x3d, 0x73f: 0x3e,
-	// Block 0x1d, offset 0x740
-	0x742: 0x01, 0x743: 0x02, 0x744: 0x03, 0x745: 0x04, 0x746: 0x05, 0x747: 0x06,
-	0x748: 0x07, 0x749: 0x08, 0x74a: 0x09, 0x74b: 0x0a, 0x74c: 0x0b, 0x74d: 0x0c, 0x74e: 0x0d, 0x74f: 0x0e,
-	0x750: 0x0f, 0x751: 0x10, 0x752: 0x11, 0x753: 0x12, 0x754: 0x13, 0x755: 0x14, 0x756: 0x15, 0x757: 0x16,
-	0x758: 0x17, 0x759: 0x18, 0x75a: 0x19, 0x75b: 0x1a, 0x75c: 0x1b, 0x75d: 0x1c, 0x75e: 0x1d, 0x75f: 0x1e,
-	0x760: 0x1a, 0x761: 0x02, 0x762: 0x03, 0x763: 0x04, 0x764: 0x05,
-	0x76a: 0x06, 0x76d: 0x07, 0x76f: 0x08,
-	0x770: 0x13, 0x773: 0x15,
-	// Block 0x1e, offset 0x780
-	0x780: 0x3f, 0x781: 0x40, 0x782: 0x41, 0x783: 0x42, 0x784: 0x43, 0x785: 0x44, 0x786: 0x45, 0x787: 0x46,
-	0x788: 0x47, 0x789: 0x48, 0x78a: 0x49, 0x78b: 0x4a, 0x78c: 0x4b, 0x78d: 0x4c, 0x78e: 0x4d, 0x78f: 0x4e,
-	0x790: 0x4f, 0x791: 0x50, 0x792: 0x51, 0x793: 0x52, 0x794: 0x53, 0x795: 0x54, 0x796: 0x55, 0x797: 0x56,
-	0x798: 0x57, 0x799: 0x58, 0x79a: 0x59, 0x79b: 0x5a, 0x79c: 0x5b, 0x79d: 0x5c, 0x79e: 0x5d, 0x79f: 0x5e,
-	0x7a0: 0x5f, 0x7a1: 0x60, 0x7a2: 0x61, 0x7a3: 0x62, 0x7a4: 0x63, 0x7a5: 0x64, 0x7a6: 0x65, 0x7a7: 0x66,
-	0x7a8: 0x67, 0x7a9: 0x68, 0x7aa: 0x69, 0x7ac: 0x6a, 0x7ad: 0x6b, 0x7ae: 0x6c, 0x7af: 0x6d,
-	0x7b0: 0x6e, 0x7b1: 0x6f, 0x7b3: 0x70, 0x7b4: 0x71, 0x7b5: 0x72, 0x7b6: 0x73, 0x7b7: 0x74,
-	0x7b8: 0x1c7, 0x7b9: 0x1c8, 0x7ba: 0x1c9, 0x7bb: 0x1ca, 0x7bc: 0x79, 0x7bd: 0x7a, 0x7be: 0x7b, 0x7bf: 0x7c,
-	// Block 0x1f, offset 0x7c0
-	0x7c0: 0x7d, 0x7c1: 0x7e, 0x7c2: 0x7f, 0x7c3: 0x80, 0x7c4: 0x81, 0x7c5: 0x1cb, 0x7c6: 0x83, 0x7c7: 0x84,
-	0x7c8: 0x85, 0x7c9: 0x86, 0x7ca: 0x87, 0x7cb: 0x88, 0x7cc: 0x89, 0x7cd: 0x8a, 0x7ce: 0x8b, 0x7cf: 0x8c,
-	0x7d0: 0x8d, 0x7d1: 0x8e, 0x7d2: 0x1cc, 0x7d3: 0x90, 0x7d4: 0x91, 0x7d5: 0x92, 0x7d6: 0x93, 0x7d7: 0x94,
-	0x7d8: 0x95, 0x7d9: 0x96, 0x7da: 0x97, 0x7db: 0x98, 0x7dc: 0x99, 0x7dd: 0x9a, 0x7de: 0x9b, 0x7df: 0x9c,
-	0x7e0: 0x9d, 0x7e1: 0x9e, 0x7e2: 0x9f, 0x7e3: 0xa0, 0x7e4: 0xa1, 0x7e5: 0xa2, 0x7e6: 0xa3, 0x7e7: 0xa4,
-	0x7e8: 0xa5, 0x7e9: 0xa6, 0x7ea: 0xa7, 0x7eb: 0xa8, 0x7ec: 0xa9, 0x7ed: 0xaa,
-	0x7f0: 0xab, 0x7f1: 0xac, 0x7f2: 0xad, 0x7f3: 0xae, 0x7f4: 0xaf, 0x7f5: 0xb0, 0x7f6: 0xb1, 0x7f7: 0xb2,
-	0x7f8: 0xb3, 0x7fa: 0xb4, 0x7fb: 0xb5, 0x7fc: 0xb6, 0x7fd: 0xb7, 0x7fe: 0xb8, 0x7ff: 0xb9,
-	// Block 0x20, offset 0x800
-	0x800: 0xba, 0x801: 0xbb, 0x802: 0xbc, 0x803: 0xbd, 0x804: 0xbe, 0x805: 0xbf, 0x806: 0xc0, 0x807: 0xc1,
-	0x808: 0xc2, 0x809: 0xc3, 0x80a: 0xc4, 0x80b: 0xc5, 0x80c: 0xc6, 0x80d: 0x1cd, 0x80e: 0xc8, 0x80f: 0x1ce,
-	// Block 0x21, offset 0x840
-	0x840: 0x18b, 0x841: 0x18c, 0x842: 0x18d, 0x843: 0x18e, 0x844: 0x1cf, 0x845: 0x190, 0x846: 0x191, 0x847: 0x192,
-	0x848: 0x193, 0x849: 0x194, 0x84c: 0x195, 0x84d: 0x196, 0x84e: 0x197, 0x84f: 0x198,
-	0x850: 0x199, 0x851: 0x19a, 0x852: 0x19b, 0x853: 0x19c, 0x854: 0x19d, 0x855: 0x19e, 0x857: 0x19f,
-	0x858: 0x1a0, 0x859: 0x1a1, 0x85a: 0x1a2, 0x85b: 0x1a3, 0x85c: 0x1a4, 0x85d: 0x1a5,
-	// Block 0x22, offset 0x880
-	0x890: 0x09, 0x891: 0x0a, 0x892: 0x0b, 0x893: 0x0c, 0x896: 0x0d,
-	0x89b: 0x0e, 0x89d: 0x0f, 0x89e: 0x10, 0x89f: 0x1f,
-	0x8af: 0x12,
-	// Block 0x23, offset 0x8c0
-	0x8c2: 0x01, 0x8c3: 0x1c0, 0x8c4: 0x1c1, 0x8c5: 0x1c2, 0x8c6: 0x1c3, 0x8c7: 0x1c4,
-	0x8c8: 0x1c5, 0x8c9: 0x1c6, 0x8ca: 0x09, 0x8cb: 0x0a, 0x8cc: 0x0b, 0x8cd: 0x0c, 0x8ce: 0x0d, 0x8cf: 0x0e,
-	0x8d0: 0x0f, 0x8d1: 0x10, 0x8d2: 0x11, 0x8d3: 0x12, 0x8d4: 0x13, 0x8d5: 0x14, 0x8d6: 0x15, 0x8d7: 0x16,
-	0x8d8: 0x17, 0x8d9: 0x18, 0x8da: 0x19, 0x8db: 0x1a, 0x8dc: 0x1b, 0x8dd: 0x1c, 0x8de: 0x1d, 0x8df: 0x1e,
-	0x8e0: 0x01, 0x8e1: 0x1c, 0x8e2: 0x1d, 0x8e3: 0x1e, 0x8e4: 0x05,
-	0x8ea: 0x06, 0x8ed: 0x07, 0x8ef: 0x08,
-	0x8f0: 0x20, 0x8f3: 0x15,
-	// Block 0x24, offset 0x900
-	0x902: 0x01, 0x903: 0x02, 0x904: 0x03, 0x905: 0x04, 0x906: 0x05, 0x907: 0x06,
-	0x908: 0x07, 0x909: 0x08, 0x90a: 0x09, 0x90b: 0x0a, 0x90c: 0x0b, 0x90d: 0x0c, 0x90e: 0x0d, 0x90f: 0x0e,
-	0x910: 0x1d0, 0x911: 0x1d1, 0x912: 0x11, 0x913: 0x12, 0x914: 0x13, 0x915: 0x14, 0x916: 0x15, 0x917: 0x16,
-	0x918: 0x17, 0x919: 0x18, 0x91a: 0x19, 0x91b: 0x1a, 0x91c: 0x1b, 0x91d: 0x1c, 0x91e: 0x1d, 0x91f: 0x1e,
-	0x920: 0x01, 0x921: 0x02, 0x922: 0x03, 0x923: 0x04, 0x924: 0x05,
-	0x92a: 0x06, 0x92d: 0x07, 0x92f: 0x08,
-	0x930: 0x13, 0x933: 0x15,
-	// Block 0x25, offset 0x940
-	0x960: 0x1f, 0x961: 0x20, 0x962: 0x21, 0x963: 0x22, 0x964: 0x23, 0x965: 0x24, 0x966: 0x1d2, 0x967: 0x26,
-	0x968: 0x27, 0x969: 0x28, 0x96a: 0x29, 0x96b: 0x2a, 0x96c: 0x2b, 0x96d: 0x2c, 0x96e: 0x2d, 0x96f: 0x2e,
-	0x970: 0x2f, 0x971: 0x30, 0x972: 0x31, 0x973: 0x32, 0x974: 0x33, 0x975: 0x34, 0x976: 0x35, 0x977: 0x36,
-	0x978: 0x37, 0x979: 0x38, 0x97a: 0x39, 0x97b: 0x3a, 0x97c: 0x3b, 0x97d: 0x3c, 0x97e: 0x3d, 0x97f: 0x3e,
-	// Block 0x26, offset 0x980
-	0x982: 0x01, 0x983: 0x02, 0x984: 0x03, 0x985: 0x04, 0x986: 0x05, 0x987: 0x06,
-	0x988: 0x07, 0x989: 0x08, 0x98a: 0x09, 0x98b: 0x0a, 0x98c: 0x0b, 0x98d: 0x0c, 0x98e: 0x0d, 0x98f: 0x0e,
-	0x990: 0x0f, 0x991: 0x10, 0x992: 0x11, 0x993: 0x12, 0x994: 0x13, 0x995: 0x14, 0x996: 0x15, 0x997: 0x16,
-	0x998: 0x17, 0x999: 0x18, 0x99a: 0x19, 0x99b: 0x1a, 0x99c: 0x1b, 0x99d: 0x1c, 0x99e: 0x1d, 0x99f: 0x1e,
-	0x9a0: 0x23, 0x9a1: 0x02, 0x9a2: 0x03, 0x9a3: 0x04, 0x9a4: 0x05,
-	0x9aa: 0x06, 0x9ad: 0x07, 0x9af: 0x08,
-	0x9b0: 0x13, 0x9b3: 0x15,
-	// Block 0x27, offset 0x9c0
-	0x9c2: 0x01, 0x9c3: 0x02, 0x9c4: 0x1d5, 0x9c5: 0x1d6, 0x9c6: 0x05, 0x9c7: 0x06,
-	0x9c8: 0x07, 0x9c9: 0x08, 0x9ca: 0x09, 0x9cb: 0x0a, 0x9cc: 0x0b, 0x9cd: 0x0c, 0x9ce: 0x0d, 0x9cf: 0x0e,
-	0x9d0: 0x0f, 0x9d1: 0x10, 0x9d2: 0x11, 0x9d3: 0x12, 0x9d4: 0x13, 0x9d5: 0x14, 0x9d6: 0x15, 0x9d7: 0x16,
-	0x9d8: 0x17, 0x9d9: 0x18, 0x9da: 0x19, 0x9db: 0x1a, 0x9dc: 0x1b, 0x9dd: 0x1c, 0x9de: 0x1d, 0x9df: 0x1e,
-	0x9e0: 0x01, 0x9e1: 0x02, 0x9e2: 0x03, 0x9e3: 0x04, 0x9e4: 0x05,
-	0x9ea: 0x06, 0x9ed: 0x07, 0x9ef: 0x08,
-	0x9f0: 0x13, 0x9f3: 0x15,
-	// Block 0x28, offset 0xa00
-	0xa00: 0x3f, 0xa01: 0x40, 0xa02: 0x41, 0xa03: 0x42, 0xa04: 0x43, 0xa05: 0x44, 0xa06: 0x45, 0xa07: 0x46,
-	0xa08: 0x47, 0xa09: 0x48, 0xa0a: 0x49, 0xa0b: 0x4a, 0xa0c: 0x4b, 0xa0d: 0x4c, 0xa0e: 0x4d, 0xa0f: 0x4e,
-	0xa10: 0x4f, 0xa11: 0x50, 0xa12: 0x51, 0xa13: 0x52, 0xa14: 0x53, 0xa15: 0x54, 0xa16: 0x55, 0xa17: 0x56,
-	0xa18: 0x57, 0xa19: 0x58, 0xa1a: 0x59, 0xa1b: 0x5a, 0xa1c: 0x5b, 0xa1d: 0x5c, 0xa1e: 0x5d, 0xa1f: 0x5e,
-	0xa20: 0x5f, 0xa21: 0x60, 0xa22: 0x61, 0xa23: 0x62, 0xa24: 0x63, 0xa25: 0x64, 0xa26: 0x65, 0xa27: 0x66,
-	0xa28: 0x67, 0xa29: 0x68, 0xa2a: 0x69, 0xa2c: 0x6a, 0xa2d: 0x6b, 0xa2e: 0x6c, 0xa2f: 0x6d,
-	0xa30: 0x6e, 0xa31: 0x6f, 0xa33: 0x70, 0xa34: 0x71, 0xa35: 0x72, 0xa36: 0x73, 0xa37: 0x74,
-	0xa38: 0x75, 0xa39: 0x1db, 0xa3a: 0x77, 0xa3b: 0x78, 0xa3c: 0x79, 0xa3d: 0x7a, 0xa3e: 0x7b, 0xa3f: 0x7c,
-	// Block 0x29, offset 0xa40
-	0xa42: 0x01, 0xa43: 0x02, 0xa44: 0x1d9, 0xa45: 0x1da, 0xa46: 0x05, 0xa47: 0x06,
-	0xa48: 0x07, 0xa49: 0x08, 0xa4a: 0x09, 0xa4b: 0x0a, 0xa4c: 0x0b, 0xa4d: 0x0c, 0xa4e: 0x0d, 0xa4f: 0x0e,
-	0xa50: 0x0f, 0xa51: 0x10, 0xa52: 0x11, 0xa53: 0x12, 0xa54: 0x13, 0xa55: 0x14, 0xa56: 0x15, 0xa57: 0x16,
-	0xa58: 0x17, 0xa59: 0x18, 0xa5a: 0x19, 0xa5b: 0x1a, 0xa5c: 0x1b, 0xa5d: 0x1c, 0xa5e: 0x1d, 0xa5f: 0x1e,
-	0xa60: 0x01, 0xa61: 0x26, 0xa62: 0x03, 0xa63: 0x04, 0xa64: 0x05,
-	0xa6a: 0x06, 0xa6d: 0x07, 0xa6f: 0x08,
-	0xa70: 0x13, 0xa73: 0x15,
-	// Block 0x2a, offset 0xa80
-	0xa80: 0x3f, 0xa81: 0x40, 0xa82: 0x41, 0xa83: 0x42, 0xa84: 0x43, 0xa85: 0x44, 0xa86: 0x45, 0xa87: 0x46,
-	0xa88: 0x47, 0xa89: 0x48, 0xa8a: 0x49, 0xa8b: 0x4a, 0xa8c: 0x4b, 0xa8d: 0x4c, 0xa8e: 0x4d, 0xa8f: 0x4e,
-	0xa90: 0x4f, 0xa91: 0x50, 0xa92: 0x51, 0xa93: 0x52, 0xa94: 0x53, 0xa95: 0x54, 0xa96: 0x55, 0xa97: 0x56,
-	0xa98: 0x57, 0xa99: 0x58, 0xa9a: 0x59, 0xa9b: 0x5a, 0xa9c: 0x5b, 0xa9d: 0x5c, 0xa9e: 0x5d, 0xa9f: 0x5e,
-	0xaa0: 0x5f, 0xaa1: 0x60, 0xaa2: 0x61, 0xaa3: 0x62, 0xaa4: 0x63, 0xaa5: 0x64, 0xaa6: 0x65, 0xaa7: 0x66,
-	0xaa8: 0x67, 0xaa9: 0x68, 0xaaa: 0x69, 0xaac: 0x6a, 0xaad: 0x6b, 0xaae: 0x6c, 0xaaf: 0x6d,
-	0xab0: 0x6e, 0xab1: 0x6f, 0xab3: 0x70, 0xab4: 0x71, 0xab5: 0x72, 0xab6: 0x1e5, 0xab7: 0x74,
-	0xab8: 0x75, 0xab9: 0x1e6, 0xaba: 0x77, 0xabb: 0x78, 0xabc: 0x79, 0xabd: 0x7a, 0xabe: 0x7b, 0xabf: 0x7c,
-	// Block 0x2b, offset 0xac0
-	0xac0: 0x7d, 0xac1: 0x7e, 0xac2: 0x7f, 0xac3: 0x80, 0xac4: 0x1e7, 0xac5: 0x82, 0xac6: 0x83, 0xac7: 0x84,
-	0xac8: 0x85, 0xac9: 0x86, 0xaca: 0x87, 0xacb: 0x88, 0xacc: 0x89, 0xacd: 0x8a, 0xace: 0x8b, 0xacf: 0x8c,
-	0xad0: 0x8d, 0xad1: 0x8e, 0xad2: 0x8f, 0xad3: 0x90, 0xad4: 0x91, 0xad5: 0x92, 0xad6: 0x93, 0xad7: 0x94,
-	0xad8: 0x95, 0xad9: 0x96, 0xada: 0x97, 0xadb: 0x98, 0xadc: 0x99, 0xadd: 0x9a, 0xade: 0x9b, 0xadf: 0x9c,
-	0xae0: 0x9d, 0xae1: 0x9e, 0xae2: 0x9f, 0xae3: 0xa0, 0xae4: 0xa1, 0xae5: 0xa2, 0xae6: 0xa3, 0xae7: 0xa4,
-	0xae8: 0xa5, 0xae9: 0xa6, 0xaea: 0xa7, 0xaeb: 0xa8, 0xaec: 0xa9, 0xaed: 0xaa,
-	0xaf0: 0xab, 0xaf1: 0xac, 0xaf2: 0xad, 0xaf3: 0xae, 0xaf4: 0xaf, 0xaf5: 0xb0, 0xaf6: 0xb1, 0xaf7: 0xb2,
-	0xaf8: 0xb3, 0xafa: 0xb4, 0xafb: 0xb5, 0xafc: 0xb6, 0xafd: 0xb7, 0xafe: 0xb8, 0xaff: 0xb9,
-	// Block 0x2c, offset 0xb00
-	0xb02: 0x01, 0xb03: 0x1e0, 0xb04: 0x1e1, 0xb05: 0x1e2, 0xb06: 0x05, 0xb07: 0x1e3,
-	0xb08: 0x1e4, 0xb09: 0x08, 0xb0a: 0x09, 0xb0b: 0x0a, 0xb0c: 0x0b, 0xb0d: 0x0c, 0xb0e: 0x0d, 0xb0f: 0x0e,
-	0xb10: 0x0f, 0xb11: 0x10, 0xb12: 0x11, 0xb13: 0x12, 0xb14: 0x13, 0xb15: 0x14, 0xb16: 0x15, 0xb17: 0x16,
-	0xb18: 0x17, 0xb19: 0x18, 0xb1a: 0x19, 0xb1b: 0x1a, 0xb1c: 0x1b, 0xb1d: 0x1c, 0xb1e: 0x1d, 0xb1f: 0x1e,
-	0xb20: 0x01, 0xb21: 0x28, 0xb22: 0x29, 0xb23: 0x04, 0xb24: 0x05,
-	0xb2a: 0x06, 0xb2d: 0x07, 0xb2f: 0x08,
-	0xb30: 0x13, 0xb33: 0x15,
-	// Block 0x2d, offset 0xb40
-	0xb60: 0x1f, 0xb61: 0x20, 0xb62: 0x21, 0xb63: 0x22, 0xb64: 0x23, 0xb65: 0x24, 0xb66: 0x25, 0xb67: 0x26,
-	0xb68: 0x27, 0xb69: 0x28, 0xb6a: 0x29, 0xb6b: 0x2a, 0xb6c: 0x2b, 0xb6d: 0x2c, 0xb6e: 0x2d, 0xb6f: 0x2e,
-	0xb70: 0x2f, 0xb71: 0x30, 0xb72: 0x31, 0xb73: 0x32, 0xb74: 0x33, 0xb75: 0x34, 0xb76: 0x35, 0xb77: 0x36,
-	0xb78: 0x37, 0xb79: 0x38, 0xb7a: 0x39, 0xb7b: 0x3a, 0xb7c: 0x1e8, 0xb7d: 0x1e9, 0xb7e: 0x1ea, 0xb7f: 0x3e,
-	// Block 0x2e, offset 0xb80
-	0xb82: 0x01, 0xb83: 0x02, 0xb84: 0x03, 0xb85: 0x04, 0xb86: 0x05, 0xb87: 0x06,
-	0xb88: 0x07, 0xb89: 0x08, 0xb8a: 0x09, 0xb8b: 0x0a, 0xb8c: 0x0b, 0xb8d: 0x0c, 0xb8e: 0x0d, 0xb8f: 0x0e,
-	0xb90: 0x0f, 0xb91: 0x10, 0xb92: 0x11, 0xb93: 0x12, 0xb94: 0x13, 0xb95: 0x14, 0xb96: 0x15, 0xb97: 0x16,
-	0xb98: 0x17, 0xb99: 0x18, 0xb9a: 0x19, 0xb9b: 0x1a, 0xb9c: 0x1b, 0xb9d: 0x1c, 0xb9e: 0x1d, 0xb9f: 0x1e,
-	0xba0: 0x2b, 0xba1: 0x02, 0xba2: 0x03, 0xba3: 0x04, 0xba4: 0x05,
-	0xbaa: 0x06, 0xbad: 0x07, 0xbaf: 0x08,
-	0xbb0: 0x13, 0xbb3: 0x15,
-	// Block 0x2f, offset 0xbc0
-	0xbc0: 0x3f, 0xbc1: 0x40, 0xbc2: 0x41, 0xbc3: 0x42, 0xbc4: 0x43, 0xbc5: 0x44, 0xbc6: 0x45, 0xbc7: 0x46,
-	0xbc8: 0x47, 0xbc9: 0x48, 0xbca: 0x49, 0xbcb: 0x4a, 0xbcc: 0x4b, 0xbcd: 0x4c, 0xbce: 0x4d, 0xbcf: 0x4e,
-	0xbd0: 0x4f, 0xbd1: 0x50, 0xbd2: 0x51, 0xbd3: 0x52, 0xbd4: 0x53, 0xbd5: 0x54, 0xbd6: 0x55, 0xbd7: 0x56,
-	0xbd8: 0x57, 0xbd9: 0x58, 0xbda: 0x59, 0xbdb: 0x5a, 0xbdc: 0x5b, 0xbdd: 0x5c, 0xbde: 0x5d, 0xbdf: 0x5e,
-	0xbe0: 0x5f, 0xbe1: 0x60, 0xbe2: 0x61, 0xbe3: 0x62, 0xbe4: 0x63, 0xbe5: 0x64, 0xbe6: 0x65, 0xbe7: 0x66,
-	0xbe8: 0x67, 0xbe9: 0x68, 0xbea: 0x69, 0xbec: 0x6a, 0xbed: 0x6b, 0xbee: 0x6c, 0xbef: 0x6d,
-	0xbf0: 0x6e, 0xbf1: 0x6f, 0xbf3: 0x70, 0xbf4: 0x71, 0xbf5: 0x72, 0xbf6: 0x73, 0xbf7: 0x74,
-	0xbf8: 0x75, 0xbf9: 0x76, 0xbfa: 0x1f4, 0xbfb: 0x1f5, 0xbfc: 0x79, 0xbfd: 0x7a, 0xbfe: 0x7b, 0xbff: 0x7c,
-	// Block 0x30, offset 0xc00
-	0xc00: 0x7d, 0xc01: 0x7e, 0xc02: 0x7f, 0xc03: 0x80, 0xc04: 0x81, 0xc05: 0x1f6, 0xc06: 0x83, 0xc07: 0x84,
-	0xc08: 0x85, 0xc09: 0x86, 0xc0a: 0x87, 0xc0b: 0x88, 0xc0c: 0x89, 0xc0d: 0x8a, 0xc0e: 0x8b, 0xc0f: 0x8c,
-	0xc10: 0x8d, 0xc11: 0x8e, 0xc12: 0x1f7, 0xc13: 0x90, 0xc14: 0x91, 0xc15: 0x92, 0xc16: 0x93, 0xc17: 0x94,
-	0xc18: 0x95, 0xc19: 0x96, 0xc1a: 0x97, 0xc1b: 0x98, 0xc1c: 0x99, 0xc1d: 0x9a, 0xc1e: 0x9b, 0xc1f: 0x9c,
-	0xc20: 0x9d, 0xc21: 0x9e, 0xc22: 0x9f, 0xc23: 0xa0, 0xc24: 0xa1, 0xc25: 0xa2, 0xc26: 0xa3, 0xc27: 0xa4,
-	0xc28: 0xa5, 0xc29: 0xa6, 0xc2a: 0xa7, 0xc2b: 0xa8, 0xc2c: 0xa9, 0xc2d: 0xaa,
-	0xc30: 0xab, 0xc31: 0xac, 0xc32: 0xad, 0xc33: 0xae, 0xc34: 0xaf, 0xc35: 0xb0, 0xc36: 0xb1, 0xc37: 0xb2,
-	0xc38: 0xb3, 0xc3a: 0xb4, 0xc3b: 0xb5, 0xc3c: 0xb6, 0xc3d: 0xb7, 0xc3e: 0xb8, 0xc3f: 0xb9,
-	// Block 0x31, offset 0xc40
-	0xc40: 0xba, 0xc41: 0xbb, 0xc42: 0xbc, 0xc43: 0xbd, 0xc44: 0xbe, 0xc45: 0xbf, 0xc46: 0xc0, 0xc47: 0xc1,
-	0xc48: 0xc2, 0xc49: 0xc3, 0xc4a: 0xc4, 0xc4b: 0xc5, 0xc4c: 0xc6, 0xc4d: 0xc7, 0xc4e: 0xc8, 0xc4f: 0x1f8,
-	// Block 0x32, offset 0xc80
-	0xc80: 0x18b, 0xc81: 0x18c, 0xc82: 0x18d, 0xc83: 0x18e, 0xc84: 0x1f9, 0xc85: 0x190, 0xc86: 0x191, 0xc87: 0x192,
-	0xc88: 0x193, 0xc89: 0x194, 0xc8c: 0x195, 0xc8d: 0x196, 0xc8e: 0x197, 0xc8f: 0x198,
-	0xc90: 0x199, 0xc91: 0x19a, 0xc92: 0x19b, 0xc93: 0x19c, 0xc94: 0x19d, 0xc95: 0x19e, 0xc97: 0x19f,
-	0xc98: 0x1a0, 0xc99: 0x1a1, 0xc9a: 0x1a2, 0xc9b: 0x1a3, 0xc9c: 0x1a4, 0xc9d: 0x1a5,
-	// Block 0x33, offset 0xcc0
-	0xcd0: 0x09, 0xcd1: 0x0a, 0xcd2: 0x0b, 0xcd3: 0x0c, 0xcd6: 0x0d,
-	0xcdb: 0x0e, 0xcdd: 0x0f, 0xcde: 0x10, 0xcdf: 0x30,
-	0xcef: 0x12,
-	// Block 0x34, offset 0xd00
-	0xd02: 0x01, 0xd03: 0x1ed, 0xd04: 0x1ee, 0xd05: 0x1ef, 0xd06: 0x1f0, 0xd07: 0x06,
-	0xd08: 0x07, 0xd09: 0x1f1, 0xd0a: 0x1f2, 0xd0b: 0x0a, 0xd0c: 0x1f3, 0xd0d: 0x0c, 0xd0e: 0x0d, 0xd0f: 0x0e,
-	0xd10: 0x0f, 0xd11: 0x10, 0xd12: 0x11, 0xd13: 0x12, 0xd14: 0x13, 0xd15: 0x14, 0xd16: 0x15, 0xd17: 0x16,
-	0xd18: 0x17, 0xd19: 0x18, 0xd1a: 0x19, 0xd1b: 0x1a, 0xd1c: 0x1b, 0xd1d: 0x1c, 0xd1e: 0x1d, 0xd1f: 0x1e,
-	0xd20: 0x01, 0xd21: 0x2d, 0xd22: 0x2e, 0xd23: 0x2f, 0xd24: 0x05,
-	0xd2a: 0x06, 0xd2d: 0x07, 0xd2f: 0x08,
-	0xd30: 0x31, 0xd33: 0x15,
-	// Block 0x35, offset 0xd40
-	0xd40: 0x3f, 0xd41: 0x40, 0xd42: 0x41, 0xd43: 0x42, 0xd44: 0x43, 0xd45: 0x44, 0xd46: 0x45, 0xd47: 0x46,
-	0xd48: 0x47, 0xd49: 0x48, 0xd4a: 0x49, 0xd4b: 0x4a, 0xd4c: 0x4b, 0xd4d: 0x4c, 0xd4e: 0x4d, 0xd4f: 0x4e,
-	0xd50: 0x4f, 0xd51: 0x50, 0xd52: 0x51, 0xd53: 0x52, 0xd54: 0x53, 0xd55: 0x54, 0xd56: 0x55, 0xd57: 0x56,
-	0xd58: 0x57, 0xd59: 0x58, 0xd5a: 0x59, 0xd5b: 0x5a, 0xd5c: 0x5b, 0xd5d: 0x5c, 0xd5e: 0x5d, 0xd5f: 0x5e,
-	0xd60: 0x5f, 0xd61: 0x60, 0xd62: 0x61, 0xd63: 0x62, 0xd64: 0x63, 0xd65: 0x64, 0xd66: 0x65, 0xd67: 0x66,
-	0xd68: 0x67, 0xd69: 0x68, 0xd6a: 0x69, 0xd6c: 0x6a, 0xd6d: 0x6b, 0xd6e: 0x6c, 0xd6f: 0x6d,
-	0xd70: 0x6e, 0xd71: 0x6f, 0xd73: 0x70, 0xd74: 0x71, 0xd75: 0x72, 0xd76: 0x73, 0xd77: 0x74,
-	0xd78: 0x203, 0xd79: 0x204, 0xd7a: 0x205, 0xd7b: 0x206, 0xd7c: 0x79, 0xd7d: 0x7a, 0xd7e: 0x7b, 0xd7f: 0x207,
-	// Block 0x36, offset 0xd80
-	0xd80: 0x208, 0xd81: 0x209, 0xd82: 0x7f, 0xd83: 0x80, 0xd84: 0x20a, 0xd85: 0x20b, 0xd86: 0x83, 0xd87: 0x84,
-	0xd88: 0x85, 0xd89: 0x86, 0xd8a: 0x87, 0xd8b: 0x88, 0xd8c: 0x89, 0xd8d: 0x8a, 0xd8e: 0x8b, 0xd8f: 0x8c,
-	0xd90: 0x8d, 0xd91: 0x20c, 0xd92: 0x20d, 0xd93: 0x90, 0xd94: 0x91, 0xd95: 0x92, 0xd96: 0x93, 0xd97: 0x94,
-	0xd98: 0x95, 0xd99: 0x96, 0xd9a: 0x97, 0xd9b: 0x98, 0xd9c: 0x99, 0xd9d: 0x9a, 0xd9e: 0x9b, 0xd9f: 0x9c,
-	0xda0: 0x9d, 0xda1: 0x9e, 0xda2: 0x9f, 0xda3: 0xa0, 0xda4: 0xa1, 0xda5: 0xa2, 0xda6: 0xa3, 0xda7: 0xa4,
-	0xda8: 0xa5, 0xda9: 0xa6, 0xdaa: 0xa7, 0xdab: 0xa8, 0xdac: 0xa9, 0xdad: 0xaa,
-	0xdb0: 0xab, 0xdb1: 0xac, 0xdb2: 0xad, 0xdb3: 0xae, 0xdb4: 0xaf, 0xdb5: 0xb0, 0xdb6: 0xb1, 0xdb7: 0xb2,
-	0xdb8: 0xb3, 0xdba: 0xb4, 0xdbb: 0xb5, 0xdbc: 0xb6, 0xdbd: 0xb7, 0xdbe: 0xb8, 0xdbf: 0xb9,
-	// Block 0x37, offset 0xdc0
-	0xdc0: 0xba, 0xdc1: 0xbb, 0xdc2: 0xbc, 0xdc3: 0xbd, 0xdc4: 0xbe, 0xdc5: 0xbf, 0xdc6: 0xc0, 0xdc7: 0xc1,
-	0xdc8: 0x20e, 0xdc9: 0x20f, 0xdca: 0x210, 0xdcb: 0x211, 0xdcc: 0xc6, 0xdcd: 0x212, 0xdce: 0x213, 0xdcf: 0x214,
-	// Block 0x38, offset 0xe00
-	0xe24: 0xfb, 0xe25: 0xfc, 0xe26: 0xfd, 0xe27: 0xfe,
-	0xe28: 0xff, 0xe29: 0x100, 0xe2a: 0x101, 0xe2b: 0x102, 0xe2c: 0x215, 0xe2d: 0x104, 0xe2e: 0x105, 0xe2f: 0x106,
-	0xe30: 0x107, 0xe31: 0x108, 0xe32: 0x109, 0xe33: 0x10a, 0xe34: 0x10b, 0xe35: 0x10c, 0xe36: 0x10d, 0xe37: 0x10e,
-	0xe38: 0x10f, 0xe39: 0x110, 0xe3a: 0x111, 0xe3b: 0x112, 0xe3c: 0x113, 0xe3d: 0x114, 0xe3e: 0x115, 0xe3f: 0x116,
-	// Block 0x39, offset 0xe40
-	0xe40: 0x18b, 0xe41: 0x18c, 0xe42: 0x18d, 0xe43: 0x18e, 0xe44: 0x216, 0xe45: 0x217, 0xe46: 0x218, 0xe47: 0x192,
-	0xe48: 0x193, 0xe49: 0x194, 0xe4c: 0x195, 0xe4d: 0x196, 0xe4e: 0x197, 0xe4f: 0x198,
-	0xe50: 0x199, 0xe51: 0x19a, 0xe52: 0x19b, 0xe53: 0x19c, 0xe54: 0x19d, 0xe55: 0x19e, 0xe57: 0x19f,
-	0xe58: 0x1a0, 0xe59: 0x1a1, 0xe5a: 0x1a2, 0xe5b: 0x1a3, 0xe5c: 0x1a4, 0xe5d: 0x1a5,
-	// Block 0x3a, offset 0xe80
-	0xe90: 0x09, 0xe91: 0x0a, 0xe92: 0x0b, 0xe93: 0x0c, 0xe96: 0x0d,
-	0xe9b: 0x0e, 0xe9d: 0x0f, 0xe9e: 0x10, 0xe9f: 0x37,
-	0xeaf: 0x12,
-	// Block 0x3b, offset 0xec0
-	0xec2: 0x01, 0xec3: 0x1fc, 0xec4: 0x1fd, 0xec5: 0x1fe, 0xec6: 0x1ff, 0xec7: 0x200,
-	0xec8: 0x201, 0xec9: 0x08, 0xeca: 0x09, 0xecb: 0x0a, 0xecc: 0x0b, 0xecd: 0x202, 0xece: 0x0d, 0xecf: 0x0e,
-	0xed0: 0x0f, 0xed1: 0x10, 0xed2: 0x11, 0xed3: 0x12, 0xed4: 0x13, 0xed5: 0x14, 0xed6: 0x15, 0xed7: 0x16,
-	0xed8: 0x17, 0xed9: 0x18, 0xeda: 0x19, 0xedb: 0x1a, 0xedc: 0x1b, 0xedd: 0x1c, 0xede: 0x1d, 0xedf: 0x1e,
-	0xee0: 0x01, 0xee1: 0x33, 0xee2: 0x34, 0xee3: 0x35, 0xee4: 0x05,
-	0xeea: 0x06, 0xeed: 0x07, 0xeef: 0x36,
-	0xef0: 0x38, 0xef3: 0x15,
-	// Block 0x3c, offset 0xf00
-	0xf02: 0x01, 0xf03: 0x02, 0xf04: 0x21b, 0xf05: 0x21c, 0xf06: 0x05, 0xf07: 0x06,
-	0xf08: 0x07, 0xf09: 0x08, 0xf0a: 0x09, 0xf0b: 0x0a, 0xf0c: 0x0b, 0xf0d: 0x0c, 0xf0e: 0x0d, 0xf0f: 0x0e,
-	0xf10: 0x0f, 0xf11: 0x10, 0xf12: 0x11, 0xf13: 0x12, 0xf14: 0x13, 0xf15: 0x14, 0xf16: 0x15, 0xf17: 0x16,
-	0xf18: 0x17, 0xf19: 0x18, 0xf1a: 0x19, 0xf1b: 0x1a, 0xf1c: 0x1b, 0xf1d: 0x1c, 0xf1e: 0x1d, 0xf1f: 0x1e,
-	0xf20: 0x01, 0xf21: 0x02, 0xf22: 0x03, 0xf23: 0x04, 0xf24: 0x05,
-	0xf2a: 0x06, 0xf2d: 0x07, 0xf2f: 0x08,
-	0xf30: 0x13, 0xf33: 0x15,
-	// Block 0x3d, offset 0xf40
-	0xf42: 0x01, 0xf43: 0x21f, 0xf44: 0x03, 0xf45: 0x04, 0xf46: 0x05, 0xf47: 0x06,
-	0xf48: 0x07, 0xf49: 0x08, 0xf4a: 0x09, 0xf4b: 0x0a, 0xf4c: 0x0b, 0xf4d: 0x0c, 0xf4e: 0x0d, 0xf4f: 0x0e,
-	0xf50: 0x0f, 0xf51: 0x10, 0xf52: 0x11, 0xf53: 0x12, 0xf54: 0x13, 0xf55: 0x14, 0xf56: 0x15, 0xf57: 0x16,
-	0xf58: 0x17, 0xf59: 0x18, 0xf5a: 0x19, 0xf5b: 0x1a, 0xf5c: 0x1b, 0xf5d: 0x1c, 0xf5e: 0x1d, 0xf5f: 0x1e,
-	0xf60: 0x01, 0xf61: 0x02, 0xf62: 0x03, 0xf63: 0x04, 0xf64: 0x05,
-	0xf6a: 0x06, 0xf6d: 0x07, 0xf6f: 0x08,
-	0xf70: 0x13, 0xf73: 0x15,
-	// Block 0x3e, offset 0xf80
-	0xf80: 0x3f, 0xf81: 0x40, 0xf82: 0x41, 0xf83: 0x42, 0xf84: 0x43, 0xf85: 0x44, 0xf86: 0x45, 0xf87: 0x46,
-	0xf88: 0x47, 0xf89: 0x48, 0xf8a: 0x49, 0xf8b: 0x4a, 0xf8c: 0x4b, 0xf8d: 0x4c, 0xf8e: 0x4d, 0xf8f: 0x4e,
-	0xf90: 0x4f, 0xf91: 0x50, 0xf92: 0x51, 0xf93: 0x52, 0xf94: 0x53, 0xf95: 0x54, 0xf96: 0x55, 0xf97: 0x56,
-	0xf98: 0x57, 0xf99: 0x58, 0xf9a: 0x59, 0xf9b: 0x5a, 0xf9c: 0x5b, 0xf9d: 0x5c, 0xf9e: 0x5d, 0xf9f: 0x5e,
-	0xfa0: 0x5f, 0xfa1: 0x60, 0xfa2: 0x61, 0xfa3: 0x62, 0xfa4: 0x63, 0xfa5: 0x64, 0xfa6: 0x65, 0xfa7: 0x66,
-	0xfa8: 0x67, 0xfa9: 0x68, 0xfaa: 0x69, 0xfac: 0x6a, 0xfad: 0x6b, 0xfae: 0x6c, 0xfaf: 0x6d,
-	0xfb0: 0x6e, 0xfb1: 0x6f, 0xfb3: 0x70, 0xfb4: 0x71, 0xfb5: 0x72, 0xfb6: 0x73, 0xfb7: 0x74,
-	0xfb8: 0x75, 0xfb9: 0x226, 0xfba: 0x227, 0xfbb: 0x228, 0xfbc: 0x79, 0xfbd: 0x7a, 0xfbe: 0x7b, 0xfbf: 0x7c,
-	// Block 0x3f, offset 0xfc0
-	0xfc0: 0x7d, 0xfc1: 0x7e, 0xfc2: 0x7f, 0xfc3: 0x80, 0xfc4: 0x81, 0xfc5: 0x82, 0xfc6: 0x83, 0xfc7: 0x84,
-	0xfc8: 0x85, 0xfc9: 0x86, 0xfca: 0x87, 0xfcb: 0x88, 0xfcc: 0x89, 0xfcd: 0x8a, 0xfce: 0x8b, 0xfcf: 0x8c,
-	0xfd0: 0x8d, 0xfd1: 0x8e, 0xfd2: 0x229, 0xfd3: 0x90, 0xfd4: 0x91, 0xfd5: 0x92, 0xfd6: 0x93, 0xfd7: 0x94,
-	0xfd8: 0x95, 0xfd9: 0x96, 0xfda: 0x97, 0xfdb: 0x98, 0xfdc: 0x99, 0xfdd: 0x9a, 0xfde: 0x9b, 0xfdf: 0x9c,
-	0xfe0: 0x9d, 0xfe1: 0x9e, 0xfe2: 0x9f, 0xfe3: 0xa0, 0xfe4: 0xa1, 0xfe5: 0xa2, 0xfe6: 0xa3, 0xfe7: 0xa4,
-	0xfe8: 0xa5, 0xfe9: 0xa6, 0xfea: 0xa7, 0xfeb: 0xa8, 0xfec: 0xa9, 0xfed: 0xaa,
-	0xff0: 0xab, 0xff1: 0xac, 0xff2: 0xad, 0xff3: 0xae, 0xff4: 0xaf, 0xff5: 0xb0, 0xff6: 0xb1, 0xff7: 0xb2,
-	0xff8: 0xb3, 0xffa: 0xb4, 0xffb: 0xb5, 0xffc: 0xb6, 0xffd: 0xb7, 0xffe: 0xb8, 0xfff: 0xb9,
-	// Block 0x40, offset 0x1000
-	0x1000: 0xba, 0x1001: 0xbb, 0x1002: 0xbc, 0x1003: 0xbd, 0x1004: 0xbe, 0x1005: 0xbf, 0x1006: 0xc0, 0x1007: 0xc1,
-	0x1008: 0xc2, 0x1009: 0xc3, 0x100a: 0xc4, 0x100b: 0xc5, 0x100c: 0xc6, 0x100d: 0xc7, 0x100e: 0x22a, 0x100f: 0x22b,
-	// Block 0x41, offset 0x1040
-	0x1040: 0x18b, 0x1041: 0x18c, 0x1042: 0x18d, 0x1043: 0x18e, 0x1044: 0x22c, 0x1045: 0x22d, 0x1046: 0x191, 0x1047: 0x192,
-	0x1048: 0x193, 0x1049: 0x194, 0x104c: 0x195, 0x104d: 0x196, 0x104e: 0x197, 0x104f: 0x198,
-	0x1050: 0x199, 0x1051: 0x19a, 0x1052: 0x19b, 0x1053: 0x19c, 0x1054: 0x19d, 0x1055: 0x19e, 0x1057: 0x19f,
-	0x1058: 0x1a0, 0x1059: 0x1a1, 0x105a: 0x1a2, 0x105b: 0x1a3, 0x105c: 0x1a4, 0x105d: 0x1a5,
-	// Block 0x42, offset 0x1080
-	0x1090: 0x09, 0x1091: 0x0a, 0x1092: 0x0b, 0x1093: 0x0c, 0x1096: 0x0d,
-	0x109b: 0x0e, 0x109d: 0x0f, 0x109e: 0x10, 0x109f: 0x3f,
-	0x10af: 0x12,
-	// Block 0x43, offset 0x10c0
-	0x10c2: 0x01, 0x10c3: 0x222, 0x10c4: 0x03, 0x10c5: 0x223, 0x10c6: 0x05, 0x10c7: 0x224,
-	0x10c8: 0x225, 0x10c9: 0x08, 0x10ca: 0x09, 0x10cb: 0x0a, 0x10cc: 0x0b, 0x10cd: 0x0c, 0x10ce: 0x0d, 0x10cf: 0x0e,
-	0x10d0: 0x0f, 0x10d1: 0x10, 0x10d2: 0x11, 0x10d3: 0x12, 0x10d4: 0x13, 0x10d5: 0x14, 0x10d6: 0x15, 0x10d7: 0x16,
-	0x10d8: 0x17, 0x10d9: 0x18, 0x10da: 0x19, 0x10db: 0x1a, 0x10dc: 0x1b, 0x10dd: 0x1c, 0x10de: 0x1d, 0x10df: 0x1e,
-	0x10e0: 0x01, 0x10e1: 0x3c, 0x10e2: 0x3d, 0x10e3: 0x3e, 0x10e4: 0x05,
-	0x10ea: 0x06, 0x10ed: 0x07, 0x10ef: 0x08,
-	0x10f0: 0x40, 0x10f3: 0x15,
-	// Block 0x44, offset 0x1100
-	0x1124: 0xfb, 0x1125: 0xfc, 0x1126: 0xfd, 0x1127: 0xfe,
-	0x1128: 0xff, 0x1129: 0x100, 0x112a: 0x101, 0x112b: 0x102, 0x112c: 0x103, 0x112d: 0x104, 0x112e: 0x232, 0x112f: 0x106,
-	0x1130: 0x233, 0x1131: 0x234, 0x1132: 0x235, 0x1133: 0x236, 0x1134: 0x237, 0x1135: 0x10c, 0x1136: 0x10d, 0x1137: 0x10e,
-	0x1138: 0x10f, 0x1139: 0x110, 0x113a: 0x111, 0x113b: 0x112, 0x113c: 0x113, 0x113d: 0x114, 0x113e: 0x115, 0x113f: 0x116,
-	// Block 0x45, offset 0x1140
-	0x1142: 0x01, 0x1143: 0x02, 0x1144: 0x03, 0x1145: 0x04, 0x1146: 0x05, 0x1147: 0x06,
-	0x1148: 0x07, 0x1149: 0x08, 0x114a: 0x09, 0x114b: 0x0a, 0x114c: 0x0b, 0x114d: 0x0c, 0x114e: 0x0d, 0x114f: 0x0e,
-	0x1150: 0x0f, 0x1151: 0x10, 0x1152: 0x11, 0x1153: 0x12, 0x1154: 0x13, 0x1155: 0x14, 0x1156: 0x15, 0x1157: 0x16,
-	0x1158: 0x22e, 0x1159: 0x22f, 0x115a: 0x230, 0x115b: 0x231, 0x115c: 0x1b, 0x115d: 0x1c, 0x115e: 0x1d, 0x115f: 0x1e,
-	0x1160: 0x01, 0x1161: 0x02, 0x1162: 0x03, 0x1163: 0x04, 0x1164: 0x05,
-	0x116a: 0x06, 0x116d: 0x07, 0x116f: 0x42,
-	0x1170: 0x13, 0x1173: 0x15,
-	// Block 0x46, offset 0x1180
-	0x1180: 0x3f, 0x1181: 0x40, 0x1182: 0x41, 0x1183: 0x42, 0x1184: 0x43, 0x1185: 0x44, 0x1186: 0x45, 0x1187: 0x46,
-	0x1188: 0x47, 0x1189: 0x48, 0x118a: 0x49, 0x118b: 0x4a, 0x118c: 0x4b, 0x118d: 0x4c, 0x118e: 0x4d, 0x118f: 0x4e,
-	0x1190: 0x4f, 0x1191: 0x50, 0x1192: 0x51, 0x1193: 0x52, 0x1194: 0x53, 0x1195: 0x54, 0x1196: 0x55, 0x1197: 0x56,
-	0x1198: 0x57, 0x1199: 0x58, 0x119a: 0x59, 0x119b: 0x5a, 0x119c: 0x5b, 0x119d: 0x5c, 0x119e: 0x5d, 0x119f: 0x5e,
-	0x11a0: 0x5f, 0x11a1: 0x60, 0x11a2: 0x61, 0x11a3: 0x62, 0x11a4: 0x63, 0x11a5: 0x64, 0x11a6: 0x65, 0x11a7: 0x66,
-	0x11a8: 0x67, 0x11a9: 0x68, 0x11aa: 0x69, 0x11ac: 0x6a, 0x11ad: 0x6b, 0x11ae: 0x6c, 0x11af: 0x6d,
-	0x11b0: 0x6e, 0x11b1: 0x6f, 0x11b3: 0x70, 0x11b4: 0x71, 0x11b5: 0x72, 0x11b6: 0x73, 0x11b7: 0x74,
-	0x11b8: 0x75, 0x11b9: 0x241, 0x11ba: 0x77, 0x11bb: 0x78, 0x11bc: 0x79, 0x11bd: 0x7a, 0x11be: 0x7b, 0x11bf: 0x7c,
-	// Block 0x47, offset 0x11c0
-	0x11c0: 0x7d, 0x11c1: 0x7e, 0x11c2: 0x7f, 0x11c3: 0x80, 0x11c4: 0x242, 0x11c5: 0x82, 0x11c6: 0x83, 0x11c7: 0x84,
-	0x11c8: 0x85, 0x11c9: 0x86, 0x11ca: 0x87, 0x11cb: 0x88, 0x11cc: 0x89, 0x11cd: 0x8a, 0x11ce: 0x8b, 0x11cf: 0x8c,
-	0x11d0: 0x8d, 0x11d1: 0x8e, 0x11d2: 0x8f, 0x11d3: 0x90, 0x11d4: 0x91, 0x11d5: 0x92, 0x11d6: 0x93, 0x11d7: 0x94,
-	0x11d8: 0x95, 0x11d9: 0x96, 0x11da: 0x97, 0x11db: 0x98, 0x11dc: 0x99, 0x11dd: 0x9a, 0x11de: 0x9b, 0x11df: 0x9c,
-	0x11e0: 0x9d, 0x11e1: 0x9e, 0x11e2: 0x9f, 0x11e3: 0xa0, 0x11e4: 0xa1, 0x11e5: 0xa2, 0x11e6: 0xa3, 0x11e7: 0xa4,
-	0x11e8: 0xa5, 0x11e9: 0xa6, 0x11ea: 0xa7, 0x11eb: 0xa8, 0x11ec: 0xa9, 0x11ed: 0xaa,
-	0x11f0: 0xab, 0x11f1: 0xac, 0x11f2: 0xad, 0x11f3: 0xae, 0x11f4: 0xaf, 0x11f5: 0xb0, 0x11f6: 0xb1, 0x11f7: 0xb2,
-	0x11f8: 0xb3, 0x11fa: 0xb4, 0x11fb: 0xb5, 0x11fc: 0xb6, 0x11fd: 0xb7, 0x11fe: 0xb8, 0x11ff: 0xb9,
-	// Block 0x48, offset 0x1200
-	0x1202: 0x01, 0x1203: 0x23a, 0x1204: 0x23b, 0x1205: 0x23c, 0x1206: 0x23d, 0x1207: 0x23e,
-	0x1208: 0x23f, 0x1209: 0x08, 0x120a: 0x240, 0x120b: 0x0a, 0x120c: 0x0b, 0x120d: 0x0c, 0x120e: 0x0d, 0x120f: 0x0e,
-	0x1210: 0x0f, 0x1211: 0x10, 0x1212: 0x11, 0x1213: 0x12, 0x1214: 0x13, 0x1215: 0x14, 0x1216: 0x15, 0x1217: 0x16,
-	0x1218: 0x17, 0x1219: 0x18, 0x121a: 0x19, 0x121b: 0x1a, 0x121c: 0x1b, 0x121d: 0x1c, 0x121e: 0x1d, 0x121f: 0x1e,
-	0x1220: 0x01, 0x1221: 0x44, 0x1222: 0x45, 0x1223: 0x04, 0x1224: 0x05,
-	0x122a: 0x06, 0x122d: 0x07, 0x122f: 0x08,
-	0x1230: 0x13, 0x1233: 0x15,
-	// Block 0x49, offset 0x1240
-	0x1260: 0x1f, 0x1261: 0x20, 0x1262: 0x21, 0x1263: 0x22, 0x1264: 0x23, 0x1265: 0x24, 0x1266: 0x25, 0x1267: 0x26,
-	0x1268: 0x27, 0x1269: 0x28, 0x126a: 0x245, 0x126b: 0x2a, 0x126c: 0x2b, 0x126d: 0x2c, 0x126e: 0x2d, 0x126f: 0x2e,
-	0x1270: 0x2f, 0x1271: 0x30, 0x1272: 0x31, 0x1273: 0x32, 0x1274: 0x33, 0x1275: 0x34, 0x1276: 0x35, 0x1277: 0x36,
-	0x1278: 0x37, 0x1279: 0x38, 0x127a: 0x39, 0x127b: 0x3a, 0x127c: 0x3b, 0x127d: 0x3c, 0x127e: 0x3d, 0x127f: 0x3e,
-	// Block 0x4a, offset 0x1280
-	0x1282: 0x01, 0x1283: 0x02, 0x1284: 0x03, 0x1285: 0x04, 0x1286: 0x05, 0x1287: 0x06,
-	0x1288: 0x07, 0x1289: 0x08, 0x128a: 0x09, 0x128b: 0x0a, 0x128c: 0x0b, 0x128d: 0x0c, 0x128e: 0x0d, 0x128f: 0x0e,
-	0x1290: 0x0f, 0x1291: 0x10, 0x1292: 0x11, 0x1293: 0x12, 0x1294: 0x13, 0x1295: 0x14, 0x1296: 0x15, 0x1297: 0x16,
-	0x1298: 0x17, 0x1299: 0x18, 0x129a: 0x19, 0x129b: 0x1a, 0x129c: 0x1b, 0x129d: 0x1c, 0x129e: 0x1d, 0x129f: 0x1e,
-	0x12a0: 0x47, 0x12a1: 0x02, 0x12a2: 0x03, 0x12a3: 0x04, 0x12a4: 0x05,
-	0x12aa: 0x06, 0x12ad: 0x07, 0x12af: 0x08,
-	0x12b0: 0x13, 0x12b3: 0x15,
-	// Block 0x4b, offset 0x12c0
-	0x12c2: 0x01, 0x12c3: 0x02, 0x12c4: 0x03, 0x12c5: 0x04, 0x12c6: 0x248, 0x12c7: 0x06,
-	0x12c8: 0x07, 0x12c9: 0x249, 0x12ca: 0x24a, 0x12cb: 0x0a, 0x12cc: 0x0b, 0x12cd: 0x0c, 0x12ce: 0x0d, 0x12cf: 0x0e,
-	0x12d0: 0x0f, 0x12d1: 0x10, 0x12d2: 0x11, 0x12d3: 0x12, 0x12d4: 0x13, 0x12d5: 0x14, 0x12d6: 0x15, 0x12d7: 0x16,
-	0x12d8: 0x17, 0x12d9: 0x18, 0x12da: 0x19, 0x12db: 0x1a, 0x12dc: 0x1b, 0x12dd: 0x1c, 0x12de: 0x1d, 0x12df: 0x1e,
-	0x12e0: 0x01, 0x12e1: 0x02, 0x12e2: 0x03, 0x12e3: 0x04, 0x12e4: 0x05,
-	0x12ea: 0x06, 0x12ed: 0x07, 0x12ef: 0x08,
-	0x12f0: 0x13, 0x12f3: 0x15,
-	// Block 0x4c, offset 0x1300
-	0x1300: 0x3f, 0x1301: 0x40, 0x1302: 0x41, 0x1303: 0x42, 0x1304: 0x43, 0x1305: 0x44, 0x1306: 0x45, 0x1307: 0x46,
-	0x1308: 0x47, 0x1309: 0x48, 0x130a: 0x49, 0x130b: 0x4a, 0x130c: 0x4b, 0x130d: 0x4c, 0x130e: 0x4d, 0x130f: 0x4e,
-	0x1310: 0x4f, 0x1311: 0x50, 0x1312: 0x51, 0x1313: 0x52, 0x1314: 0x53, 0x1315: 0x54, 0x1316: 0x55, 0x1317: 0x56,
-	0x1318: 0x57, 0x1319: 0x58, 0x131a: 0x59, 0x131b: 0x5a, 0x131c: 0x5b, 0x131d: 0x5c, 0x131e: 0x5d, 0x131f: 0x5e,
-	0x1320: 0x5f, 0x1321: 0x60, 0x1322: 0x61, 0x1323: 0x62, 0x1324: 0x63, 0x1325: 0x64, 0x1326: 0x65, 0x1327: 0x66,
-	0x1328: 0x67, 0x1329: 0x68, 0x132a: 0x69, 0x132c: 0x6a, 0x132d: 0x6b, 0x132e: 0x6c, 0x132f: 0x6d,
-	0x1330: 0x6e, 0x1331: 0x6f, 0x1333: 0x70, 0x1334: 0x71, 0x1335: 0x72, 0x1336: 0x73, 0x1337: 0x74,
-	0x1338: 0x254, 0x1339: 0x255, 0x133a: 0x256, 0x133b: 0x257, 0x133c: 0x79, 0x133d: 0x7a, 0x133e: 0x7b, 0x133f: 0x7c,
-	// Block 0x4d, offset 0x1340
-	0x1340: 0x7d, 0x1341: 0x7e, 0x1342: 0x7f, 0x1343: 0x80, 0x1344: 0x258, 0x1345: 0x20b, 0x1346: 0x83, 0x1347: 0x84,
-	0x1348: 0x85, 0x1349: 0x86, 0x134a: 0x87, 0x134b: 0x88, 0x134c: 0x89, 0x134d: 0x8a, 0x134e: 0x8b, 0x134f: 0x8c,
-	0x1350: 0x8d, 0x1351: 0x8e, 0x1352: 0x259, 0x1353: 0x90, 0x1354: 0x91, 0x1355: 0x92, 0x1356: 0x93, 0x1357: 0x94,
-	0x1358: 0x95, 0x1359: 0x96, 0x135a: 0x97, 0x135b: 0x98, 0x135c: 0x99, 0x135d: 0x9a, 0x135e: 0x9b, 0x135f: 0x9c,
-	0x1360: 0x9d, 0x1361: 0x9e, 0x1362: 0x9f, 0x1363: 0xa0, 0x1364: 0xa1, 0x1365: 0xa2, 0x1366: 0xa3, 0x1367: 0xa4,
-	0x1368: 0xa5, 0x1369: 0xa6, 0x136a: 0xa7, 0x136b: 0xa8, 0x136c: 0xa9, 0x136d: 0xaa,
-	0x1370: 0xab, 0x1371: 0xac, 0x1372: 0xad, 0x1373: 0xae, 0x1374: 0xaf, 0x1375: 0xb0, 0x1376: 0xb1, 0x1377: 0xb2,
-	0x1378: 0xb3, 0x137a: 0xb4, 0x137b: 0xb5, 0x137c: 0xb6, 0x137d: 0xb7, 0x137e: 0xb8, 0x137f: 0xb9,
-	// Block 0x4e, offset 0x1380
-	0x1380: 0xba, 0x1381: 0xbb, 0x1382: 0xbc, 0x1383: 0xbd, 0x1384: 0xbe, 0x1385: 0xbf, 0x1386: 0xc0, 0x1387: 0xc1,
-	0x1388: 0xc2, 0x1389: 0xc3, 0x138a: 0xc4, 0x138b: 0x25a, 0x138c: 0xc6, 0x138d: 0x25b, 0x138e: 0x25c, 0x138f: 0x25d,
-	// Block 0x4f, offset 0x13c0
-	0x13e4: 0xfb, 0x13e5: 0xfc, 0x13e6: 0xfd, 0x13e7: 0xfe,
-	0x13e8: 0xff, 0x13e9: 0x100, 0x13ea: 0x101, 0x13eb: 0x102, 0x13ec: 0x25e, 0x13ed: 0x104, 0x13ee: 0x105, 0x13ef: 0x106,
-	0x13f0: 0x107, 0x13f1: 0x108, 0x13f2: 0x109, 0x13f3: 0x10a, 0x13f4: 0x10b, 0x13f5: 0x10c, 0x13f6: 0x10d, 0x13f7: 0x10e,
-	0x13f8: 0x10f, 0x13f9: 0x110, 0x13fa: 0x111, 0x13fb: 0x112, 0x13fc: 0x113, 0x13fd: 0x114, 0x13fe: 0x115, 0x13ff: 0x116,
-	// Block 0x50, offset 0x1400
-	0x1400: 0x18b, 0x1401: 0x18c, 0x1402: 0x18d, 0x1403: 0x18e, 0x1404: 0x25f, 0x1405: 0x260, 0x1406: 0x191, 0x1407: 0x192,
-	0x1408: 0x193, 0x1409: 0x194, 0x140c: 0x195, 0x140d: 0x196, 0x140e: 0x197, 0x140f: 0x198,
-	0x1410: 0x199, 0x1411: 0x19a, 0x1412: 0x19b, 0x1413: 0x19c, 0x1414: 0x19d, 0x1415: 0x19e, 0x1417: 0x19f,
-	0x1418: 0x1a0, 0x1419: 0x1a1, 0x141a: 0x1a2, 0x141b: 0x1a3, 0x141c: 0x1a4, 0x141d: 0x1a5,
-	// Block 0x51, offset 0x1440
-	0x1450: 0x09, 0x1451: 0x0a, 0x1452: 0x0b, 0x1453: 0x0c, 0x1456: 0x0d,
-	0x145b: 0x0e, 0x145d: 0x0f, 0x145e: 0x10, 0x145f: 0x4e,
-	0x146f: 0x12,
-	// Block 0x52, offset 0x1480
-	0x1482: 0x01, 0x1483: 0x24d, 0x1484: 0x24e, 0x1485: 0x24f, 0x1486: 0x250, 0x1487: 0x251,
-	0x1488: 0x252, 0x1489: 0x08, 0x148a: 0x253, 0x148b: 0x0a, 0x148c: 0x0b, 0x148d: 0x0c, 0x148e: 0x0d, 0x148f: 0x0e,
-	0x1490: 0x0f, 0x1491: 0x10, 0x1492: 0x11, 0x1493: 0x12, 0x1494: 0x13, 0x1495: 0x14, 0x1496: 0x15, 0x1497: 0x16,
-	0x1498: 0x17, 0x1499: 0x18, 0x149a: 0x19, 0x149b: 0x1a, 0x149c: 0x1b, 0x149d: 0x1c, 0x149e: 0x1d, 0x149f: 0x1e,
-	0x14a0: 0x01, 0x14a1: 0x4a, 0x14a2: 0x4b, 0x14a3: 0x4c, 0x14a4: 0x05,
-	0x14aa: 0x06, 0x14ad: 0x07, 0x14af: 0x4d,
-	0x14b0: 0x4f, 0x14b3: 0x15,
-	// Block 0x53, offset 0x14c0
-	0x14e0: 0x1f, 0x14e1: 0x20, 0x14e2: 0x21, 0x14e3: 0x22, 0x14e4: 0x261, 0x14e5: 0x24, 0x14e6: 0x25, 0x14e7: 0x26,
-	0x14e8: 0x27, 0x14e9: 0x28, 0x14ea: 0x29, 0x14eb: 0x2a, 0x14ec: 0x2b, 0x14ed: 0x2c, 0x14ee: 0x2d, 0x14ef: 0x2e,
-	0x14f0: 0x2f, 0x14f1: 0x30, 0x14f2: 0x31, 0x14f3: 0x32, 0x14f4: 0x33, 0x14f5: 0x34, 0x14f6: 0x35, 0x14f7: 0x36,
-	0x14f8: 0x37, 0x14f9: 0x38, 0x14fa: 0x39, 0x14fb: 0x3a, 0x14fc: 0x3b, 0x14fd: 0x3c, 0x14fe: 0x3d, 0x14ff: 0x3e,
-	// Block 0x54, offset 0x1500
-	0x1502: 0x01, 0x1503: 0x02, 0x1504: 0x03, 0x1505: 0x04, 0x1506: 0x05, 0x1507: 0x06,
-	0x1508: 0x07, 0x1509: 0x08, 0x150a: 0x09, 0x150b: 0x0a, 0x150c: 0x0b, 0x150d: 0x0c, 0x150e: 0x0d, 0x150f: 0x0e,
-	0x1510: 0x0f, 0x1511: 0x10, 0x1512: 0x11, 0x1513: 0x12, 0x1514: 0x13, 0x1515: 0x14, 0x1516: 0x15, 0x1517: 0x16,
-	0x1518: 0x17, 0x1519: 0x18, 0x151a: 0x19, 0x151b: 0x1a, 0x151c: 0x1b, 0x151d: 0x1c, 0x151e: 0x1d, 0x151f: 0x1e,
-	0x1520: 0x51, 0x1521: 0x02, 0x1522: 0x03, 0x1523: 0x04, 0x1524: 0x05,
-	0x152a: 0x06, 0x152d: 0x07, 0x152f: 0x08,
-	0x1530: 0x13, 0x1533: 0x15,
-	// Block 0x55, offset 0x1540
-	0x1540: 0x3f, 0x1541: 0x40, 0x1542: 0x41, 0x1543: 0x42, 0x1544: 0x43, 0x1545: 0x44, 0x1546: 0x45, 0x1547: 0x46,
-	0x1548: 0x47, 0x1549: 0x48, 0x154a: 0x49, 0x154b: 0x4a, 0x154c: 0x4b, 0x154d: 0x4c, 0x154e: 0x4d, 0x154f: 0x4e,
-	0x1550: 0x4f, 0x1551: 0x50, 0x1552: 0x51, 0x1553: 0x52, 0x1554: 0x53, 0x1555: 0x54, 0x1556: 0x55, 0x1557: 0x56,
-	0x1558: 0x57, 0x1559: 0x58, 0x155a: 0x59, 0x155b: 0x5a, 0x155c: 0x5b, 0x155d: 0x5c, 0x155e: 0x5d, 0x155f: 0x5e,
-	0x1560: 0x5f, 0x1561: 0x60, 0x1562: 0x61, 0x1563: 0x62, 0x1564: 0x63, 0x1565: 0x64, 0x1566: 0x65, 0x1567: 0x66,
-	0x1568: 0x67, 0x1569: 0x68, 0x156a: 0x69, 0x156c: 0x6a, 0x156d: 0x6b, 0x156e: 0x6c, 0x156f: 0x6d,
-	0x1570: 0x6e, 0x1571: 0x6f, 0x1573: 0x70, 0x1574: 0x71, 0x1575: 0x72, 0x1576: 0x73, 0x1577: 0x74,
-	0x1578: 0x267, 0x1579: 0x1db, 0x157a: 0x77, 0x157b: 0x78, 0x157c: 0x79, 0x157d: 0x7a, 0x157e: 0x7b, 0x157f: 0x7c,
-	// Block 0x56, offset 0x1580
-	0x1582: 0x01, 0x1583: 0x02, 0x1584: 0x264, 0x1585: 0x265, 0x1586: 0x05, 0x1587: 0x266,
-	0x1588: 0x07, 0x1589: 0x08, 0x158a: 0x09, 0x158b: 0x0a, 0x158c: 0x0b, 0x158d: 0x0c, 0x158e: 0x0d, 0x158f: 0x0e,
-	0x1590: 0x0f, 0x1591: 0x10, 0x1592: 0x11, 0x1593: 0x12, 0x1594: 0x13, 0x1595: 0x14, 0x1596: 0x15, 0x1597: 0x16,
-	0x1598: 0x17, 0x1599: 0x18, 0x159a: 0x19, 0x159b: 0x1a, 0x159c: 0x1b, 0x159d: 0x1c, 0x159e: 0x1d, 0x159f: 0x1e,
-	0x15a0: 0x01, 0x15a1: 0x53, 0x15a2: 0x03, 0x15a3: 0x04, 0x15a4: 0x05,
-	0x15aa: 0x06, 0x15ad: 0x07, 0x15af: 0x08,
-	0x15b0: 0x13, 0x15b3: 0x15,
-	// Block 0x57, offset 0x15c0
-	0x15c0: 0x3f, 0x15c1: 0x40, 0x15c2: 0x41, 0x15c3: 0x42, 0x15c4: 0x43, 0x15c5: 0x44, 0x15c6: 0x45, 0x15c7: 0x46,
-	0x15c8: 0x47, 0x15c9: 0x48, 0x15ca: 0x49, 0x15cb: 0x4a, 0x15cc: 0x4b, 0x15cd: 0x4c, 0x15ce: 0x4d, 0x15cf: 0x4e,
-	0x15d0: 0x4f, 0x15d1: 0x50, 0x15d2: 0x51, 0x15d3: 0x52, 0x15d4: 0x53, 0x15d5: 0x54, 0x15d6: 0x55, 0x15d7: 0x56,
-	0x15d8: 0x57, 0x15d9: 0x58, 0x15da: 0x59, 0x15db: 0x5a, 0x15dc: 0x5b, 0x15dd: 0x5c, 0x15de: 0x5d, 0x15df: 0x5e,
-	0x15e0: 0x5f, 0x15e1: 0x60, 0x15e2: 0x61, 0x15e3: 0x62, 0x15e4: 0x63, 0x15e5: 0x64, 0x15e6: 0x65, 0x15e7: 0x66,
-	0x15e8: 0x67, 0x15e9: 0x68, 0x15ea: 0x69, 0x15ec: 0x6a, 0x15ed: 0x6b, 0x15ee: 0x6c, 0x15ef: 0x6d,
-	0x15f0: 0x6e, 0x15f1: 0x6f, 0x15f3: 0x70, 0x15f4: 0x71, 0x15f5: 0x72, 0x15f6: 0x73, 0x15f7: 0x74,
-	0x15f8: 0x75, 0x15f9: 0x1c8, 0x15fa: 0x77, 0x15fb: 0x78, 0x15fc: 0x79, 0x15fd: 0x7a, 0x15fe: 0x7b, 0x15ff: 0x7c,
-	// Block 0x58, offset 0x1600
-	0x1602: 0x01, 0x1603: 0x26a, 0x1604: 0x03, 0x1605: 0x26b, 0x1606: 0x05, 0x1607: 0x26c,
-	0x1608: 0x26d, 0x1609: 0x08, 0x160a: 0x09, 0x160b: 0x0a, 0x160c: 0x0b, 0x160d: 0x0c, 0x160e: 0x0d, 0x160f: 0x0e,
-	0x1610: 0x0f, 0x1611: 0x10, 0x1612: 0x11, 0x1613: 0x12, 0x1614: 0x13, 0x1615: 0x14, 0x1616: 0x15, 0x1617: 0x16,
-	0x1618: 0x17, 0x1619: 0x18, 0x161a: 0x19, 0x161b: 0x1a, 0x161c: 0x1b, 0x161d: 0x1c, 0x161e: 0x1d, 0x161f: 0x1e,
-	0x1620: 0x01, 0x1621: 0x55, 0x1622: 0x03, 0x1623: 0x04, 0x1624: 0x05,
-	0x162a: 0x06, 0x162d: 0x07, 0x162f: 0x08,
-	0x1630: 0x13, 0x1633: 0x15,
-	// Block 0x59, offset 0x1640
-	0x1642: 0x01, 0x1643: 0x02, 0x1644: 0x03, 0x1645: 0x04, 0x1646: 0x05, 0x1647: 0x06,
-	0x1648: 0x07, 0x1649: 0x08, 0x164a: 0x09, 0x164b: 0x0a, 0x164c: 0x0b, 0x164d: 0x0c, 0x164e: 0x0d, 0x164f: 0x0e,
-	0x1650: 0x0f, 0x1651: 0x10, 0x1652: 0x11, 0x1653: 0x12, 0x1654: 0x26e, 0x1655: 0x14, 0x1656: 0x26f, 0x1657: 0x16,
-	0x1658: 0x17, 0x1659: 0x18, 0x165a: 0x19, 0x165b: 0x1a, 0x165c: 0x1b, 0x165d: 0x1c, 0x165e: 0x1d, 0x165f: 0x1e,
-	0x1660: 0x01, 0x1661: 0x02, 0x1662: 0x03, 0x1663: 0x04, 0x1664: 0x05,
-	0x166a: 0x06, 0x166d: 0x07, 0x166f: 0x08,
-	0x1670: 0x13, 0x1673: 0x15,
-	// Block 0x5a, offset 0x1680
-	0x1680: 0x3f, 0x1681: 0x40, 0x1682: 0x41, 0x1683: 0x42, 0x1684: 0x43, 0x1685: 0x44, 0x1686: 0x45, 0x1687: 0x46,
-	0x1688: 0x47, 0x1689: 0x48, 0x168a: 0x49, 0x168b: 0x4a, 0x168c: 0x4b, 0x168d: 0x4c, 0x168e: 0x4d, 0x168f: 0x4e,
-	0x1690: 0x4f, 0x1691: 0x50, 0x1692: 0x51, 0x1693: 0x52, 0x1694: 0x53, 0x1695: 0x54, 0x1696: 0x55, 0x1697: 0x56,
-	0x1698: 0x57, 0x1699: 0x58, 0x169a: 0x59, 0x169b: 0x5a, 0x169c: 0x5b, 0x169d: 0x5c, 0x169e: 0x5d, 0x169f: 0x5e,
-	0x16a0: 0x5f, 0x16a1: 0x60, 0x16a2: 0x61, 0x16a3: 0x62, 0x16a4: 0x63, 0x16a5: 0x64, 0x16a6: 0x65, 0x16a7: 0x66,
-	0x16a8: 0x67, 0x16a9: 0x68, 0x16aa: 0x69, 0x16ac: 0x6a, 0x16ad: 0x6b, 0x16ae: 0x6c, 0x16af: 0x6d,
-	0x16b0: 0x6e, 0x16b1: 0x6f, 0x16b3: 0x70, 0x16b4: 0x71, 0x16b5: 0x72, 0x16b6: 0x73, 0x16b7: 0x74,
-	0x16b8: 0x75, 0x16b9: 0x272, 0x16ba: 0x77, 0x16bb: 0x273, 0x16bc: 0x79, 0x16bd: 0x7a, 0x16be: 0x7b, 0x16bf: 0x7c,
-	// Block 0x5b, offset 0x16c0
-	0x16c2: 0x01, 0x16c3: 0x02, 0x16c4: 0x03, 0x16c5: 0x04, 0x16c6: 0x05, 0x16c7: 0x06,
-	0x16c8: 0x07, 0x16c9: 0x08, 0x16ca: 0x09, 0x16cb: 0x0a, 0x16cc: 0x0b, 0x16cd: 0x0c, 0x16ce: 0x0d, 0x16cf: 0x0e,
-	0x16d0: 0x0f, 0x16d1: 0x10, 0x16d2: 0x11, 0x16d3: 0x12, 0x16d4: 0x13, 0x16d5: 0x14, 0x16d6: 0x15, 0x16d7: 0x16,
-	0x16d8: 0x17, 0x16d9: 0x18, 0x16da: 0x19, 0x16db: 0x1a, 0x16dc: 0x1b, 0x16dd: 0x1c, 0x16de: 0x1d, 0x16df: 0x1e,
-	0x16e0: 0x01, 0x16e1: 0x58, 0x16e2: 0x03, 0x16e3: 0x04, 0x16e4: 0x05,
-	0x16ea: 0x06, 0x16ed: 0x07, 0x16ef: 0x08,
-	0x16f0: 0x13, 0x16f3: 0x15,
-	// Block 0x5c, offset 0x1700
-	0x1700: 0x3f, 0x1701: 0x40, 0x1702: 0x41, 0x1703: 0x42, 0x1704: 0x43, 0x1705: 0x44, 0x1706: 0x45, 0x1707: 0x46,
-	0x1708: 0x47, 0x1709: 0x48, 0x170a: 0x49, 0x170b: 0x4a, 0x170c: 0x4b, 0x170d: 0x4c, 0x170e: 0x4d, 0x170f: 0x4e,
-	0x1710: 0x4f, 0x1711: 0x50, 0x1712: 0x51, 0x1713: 0x52, 0x1714: 0x53, 0x1715: 0x54, 0x1716: 0x55, 0x1717: 0x56,
-	0x1718: 0x57, 0x1719: 0x58, 0x171a: 0x59, 0x171b: 0x5a, 0x171c: 0x5b, 0x171d: 0x5c, 0x171e: 0x5d, 0x171f: 0x5e,
-	0x1720: 0x5f, 0x1721: 0x60, 0x1722: 0x61, 0x1723: 0x62, 0x1724: 0x63, 0x1725: 0x64, 0x1726: 0x65, 0x1727: 0x66,
-	0x1728: 0x67, 0x1729: 0x68, 0x172a: 0x69, 0x172c: 0x6a, 0x172d: 0x6b, 0x172e: 0x6c, 0x172f: 0x6d,
-	0x1730: 0x6e, 0x1731: 0x6f, 0x1733: 0x70, 0x1734: 0x71, 0x1735: 0x72, 0x1736: 0x1e5, 0x1737: 0x74,
-	0x1738: 0x27a, 0x1739: 0x27b, 0x173a: 0x27c, 0x173b: 0x27d, 0x173c: 0x79, 0x173d: 0x7a, 0x173e: 0x7b, 0x173f: 0x7c,
-	// Block 0x5d, offset 0x1740
-	0x1742: 0x01, 0x1743: 0x276, 0x1744: 0x277, 0x1745: 0x04, 0x1746: 0x05, 0x1747: 0x278,
-	0x1748: 0x279, 0x1749: 0x08, 0x174a: 0x09, 0x174b: 0x0a, 0x174c: 0x0b, 0x174d: 0x0c, 0x174e: 0x0d, 0x174f: 0x0e,
-	0x1750: 0x0f, 0x1751: 0x10, 0x1752: 0x11, 0x1753: 0x12, 0x1754: 0x13, 0x1755: 0x14, 0x1756: 0x15, 0x1757: 0x16,
-	0x1758: 0x17, 0x1759: 0x18, 0x175a: 0x19, 0x175b: 0x1a, 0x175c: 0x1b, 0x175d: 0x1c, 0x175e: 0x1d, 0x175f: 0x1e,
-	0x1760: 0x01, 0x1761: 0x5a, 0x1762: 0x29, 0x1763: 0x04, 0x1764: 0x05,
-	0x176a: 0x06, 0x176d: 0x07, 0x176f: 0x08,
-	0x1770: 0x13, 0x1773: 0x15,
-	// Block 0x5e, offset 0x1780
-	0x1780: 0x27e, 0x1781: 0x27f, 0x1782: 0x280, 0x1783: 0x281, 0x1784: 0x282, 0x1785: 0x283, 0x1786: 0xc0, 0x1787: 0x284,
-	0x1788: 0x285, 0x1789: 0x286, 0x178a: 0xc4, 0x178b: 0x287, 0x178c: 0xc6, 0x178d: 0x288, 0x178e: 0xc8, 0x178f: 0x289,
-	// Block 0x5f, offset 0x17c0
-	0x17f7: 0xca,
-	0x17f8: 0x28a, 0x17f9: 0x28b, 0x17fa: 0x28c, 0x17fb: 0x28d, 0x17fc: 0x28e, 0x17fd: 0x28f, 0x17fe: 0x290, 0x17ff: 0x291,
-	// Block 0x60, offset 0x1800
-	0x1800: 0x292, 0x1801: 0x293, 0x1802: 0x294, 0x1803: 0x295, 0x1804: 0x296, 0x1805: 0x297, 0x1806: 0x298, 0x1807: 0x299,
-	0x1808: 0x29a, 0x1809: 0x29b, 0x180a: 0x29c, 0x180b: 0x29d, 0x180c: 0x29e, 0x180d: 0x29f, 0x180e: 0x2a0, 0x180f: 0x2a1,
-	0x1810: 0x2a2, 0x1811: 0x2a3, 0x1812: 0x2a4, 0x1813: 0x2a5, 0x1814: 0x2a6, 0x1815: 0x2a7, 0x1816: 0x2a8, 0x1817: 0x2a9,
-	0x1818: 0x2aa, 0x1819: 0x2ab, 0x181a: 0x2ac, 0x181b: 0x2ad, 0x181c: 0x2ae, 0x181d: 0x2af, 0x181e: 0x2b0, 0x181f: 0x2b1,
-	0x1820: 0x2b2, 0x1821: 0x2b3, 0x1822: 0x2b4, 0x1823: 0x2b5, 0x1824: 0x2b6, 0x1825: 0x2b7, 0x1826: 0x2b8, 0x1827: 0x2b9,
-	0x1828: 0x2ba, 0x1829: 0x2bb, 0x182a: 0x2bc, 0x182b: 0x2bd, 0x182c: 0x2be, 0x182d: 0x2bf, 0x182e: 0x2c0, 0x182f: 0x2c1,
-	0x1830: 0x2c2, 0x1831: 0x2c3, 0x1832: 0x2c4, 0x1833: 0x2c5, 0x1834: 0x2c6, 0x1835: 0x2c7, 0x1836: 0x2c8, 0x1837: 0x2c9,
-	0x1838: 0x2ca, 0x1839: 0x2cb, 0x183a: 0x2cc, 0x183b: 0x2cd, 0x183c: 0x2ce, 0x183d: 0x2cf, 0x183e: 0x2d0, 0x183f: 0x2d1,
-	// Block 0x61, offset 0x1840
-	0x1840: 0x2d2, 0x1841: 0x2d3, 0x1842: 0x2d4, 0x1843: 0x2d5, 0x1844: 0x2d6, 0x1845: 0x2d7, 0x1846: 0x2d8, 0x1847: 0x2d9,
-	0x1848: 0x2da, 0x1849: 0x2db, 0x184a: 0x2dc, 0x184b: 0x2dd, 0x184c: 0x2de, 0x184d: 0x2df, 0x184e: 0x2e0, 0x184f: 0x2e1,
-	0x1850: 0x2e2, 0x1851: 0x2e3, 0x1852: 0x2e4, 0x1853: 0x2e5, 0x1854: 0x2e6, 0x1855: 0x2e7, 0x1856: 0x2e8, 0x1857: 0x2e9,
-	0x1858: 0x2ea, 0x1859: 0x2eb, 0x185a: 0x2ec, 0x185b: 0x2ed, 0x185c: 0x2ee, 0x185d: 0x2ef, 0x185e: 0x2f0, 0x185f: 0x2f1,
-	0x1860: 0x2f2, 0x1861: 0x2f3, 0x1862: 0x2f4, 0x1863: 0x2f5, 0x1864: 0x2f6, 0x1865: 0x2f7, 0x1866: 0x2f8, 0x1867: 0x2f9,
-	0x1868: 0x2fa, 0x1869: 0x2fb, 0x186a: 0x2fc, 0x186b: 0x2fd, 0x186c: 0x2fe, 0x186d: 0x2ff, 0x186e: 0x300, 0x186f: 0x301,
-	0x1870: 0x302, 0x1871: 0x303, 0x1872: 0x304, 0x1873: 0x305, 0x1874: 0x306, 0x1875: 0x307, 0x1876: 0x308, 0x1877: 0x309,
-	0x1878: 0x30a, 0x1879: 0x30b, 0x187a: 0x30c, 0x187b: 0x30d, 0x187c: 0x30e, 0x187d: 0x30f, 0x187e: 0x310, 0x187f: 0x311,
-	// Block 0x62, offset 0x1880
-	0x1880: 0x312, 0x1881: 0x313, 0x1882: 0x314, 0x1883: 0x315, 0x1884: 0x316, 0x1885: 0x317, 0x1886: 0x318, 0x1887: 0x319,
-	0x1888: 0x31a, 0x1889: 0x31b, 0x188a: 0x31c, 0x188b: 0x31d, 0x188c: 0x31e, 0x188d: 0x31f, 0x188e: 0x320, 0x188f: 0x321,
-	0x1890: 0x322, 0x1891: 0x323, 0x1892: 0x324, 0x1893: 0x325, 0x1894: 0x326, 0x1895: 0x327, 0x1896: 0x328, 0x1897: 0x329,
-	0x1898: 0x32a, 0x1899: 0x32b, 0x189a: 0x32c, 0x189b: 0x32d, 0x189c: 0x32e, 0x189d: 0x32f, 0x189e: 0x330, 0x189f: 0x331,
-	0x18a0: 0x332, 0x18a1: 0x333, 0x18a2: 0x334, 0x18a3: 0x335, 0x18a4: 0x336, 0x18a5: 0x337, 0x18a6: 0x338, 0x18a7: 0x339,
-	0x18a8: 0x33a, 0x18a9: 0x33b, 0x18aa: 0x33c, 0x18ab: 0x33d, 0x18ac: 0x33e, 0x18ad: 0x33f, 0x18ae: 0x340, 0x18af: 0x341,
-	0x18b0: 0x342, 0x18b1: 0x343, 0x18b2: 0x344, 0x18b3: 0x345, 0x18b4: 0x346, 0x18b5: 0x347, 0x18b6: 0x348, 0x18b7: 0x349,
-	0x18b8: 0x34a, 0x18b9: 0x34b, 0x18ba: 0x34c, 0x18bc: 0x34d, 0x18bd: 0x34e, 0x18be: 0x34f, 0x18bf: 0x350,
-	// Block 0x63, offset 0x18c0
-	0x18c0: 0x351, 0x18c1: 0x352, 0x18c2: 0x353, 0x18c3: 0x354, 0x18c4: 0x355, 0x18c5: 0x356, 0x18c6: 0x357, 0x18c7: 0x358,
-	0x18c8: 0x359, 0x18c9: 0x35a, 0x18ca: 0x35b, 0x18cb: 0x35c, 0x18cc: 0x35d, 0x18cd: 0x35e, 0x18ce: 0x35f, 0x18cf: 0x360,
-	0x18d0: 0x361, 0x18d1: 0x362, 0x18d2: 0x363, 0x18d3: 0x364, 0x18d4: 0x365, 0x18d5: 0x366, 0x18d6: 0x367, 0x18d7: 0x368,
-	0x18d8: 0x369, 0x18d9: 0x36a, 0x18da: 0x36b, 0x18db: 0x36c, 0x18dc: 0x36d, 0x18dd: 0x36e, 0x18de: 0x36f, 0x18df: 0x370,
-	0x18e0: 0x371, 0x18e1: 0x372, 0x18e2: 0x373, 0x18e3: 0x374, 0x18e4: 0x375, 0x18e5: 0x376, 0x18e6: 0x377, 0x18e7: 0x378,
-	0x18e8: 0x379, 0x18e9: 0x37a, 0x18ea: 0x37b, 0x18eb: 0x37c, 0x18ec: 0x37d, 0x18ed: 0x37e, 0x18ee: 0x37f,
-	0x18f0: 0x380, 0x18f1: 0x381, 0x18f2: 0x382, 0x18f3: 0x383, 0x18f4: 0x384, 0x18f5: 0x385, 0x18f6: 0x386, 0x18f7: 0x387,
-	0x18f8: 0x388, 0x18f9: 0x389, 0x18fa: 0x38a, 0x18fb: 0x38b, 0x18fc: 0x38c, 0x18fd: 0x38d, 0x18fe: 0x38e, 0x18ff: 0x38f,
-	// Block 0x64, offset 0x1900
-	0x1900: 0x390, 0x1901: 0x391, 0x1902: 0x392, 0x1903: 0x393, 0x1904: 0x394, 0x1905: 0x395, 0x1906: 0x396, 0x1907: 0x397,
-	0x1908: 0x398, 0x1909: 0x399, 0x190a: 0x39a, 0x190b: 0x39b, 0x190c: 0x39c, 0x190d: 0x39d, 0x190e: 0x39e, 0x190f: 0x39f,
-	0x1910: 0x3a0, 0x1911: 0x3a1, 0x1912: 0x3a2, 0x1915: 0x3a3, 0x1916: 0x3a4, 0x1917: 0x3a5,
-	0x1918: 0x3a6, 0x1919: 0x3a7, 0x191a: 0x3a8, 0x191b: 0x3a9, 0x191c: 0x3aa, 0x191d: 0x3ab, 0x191e: 0x3ac, 0x191f: 0x3ad,
-	0x1920: 0x3ae, 0x1921: 0x3af, 0x1922: 0x3b0, 0x1923: 0x3b1, 0x1924: 0x3b2, 0x1925: 0x3b3, 0x1926: 0x3b4, 0x1927: 0x3b5,
-	0x1928: 0x3b6, 0x1929: 0x3b7, 0x192a: 0x3b8, 0x192b: 0x3b9, 0x192c: 0x3ba, 0x192d: 0x3bb, 0x192e: 0x3bc, 0x192f: 0x3bd,
-	0x1930: 0x3be, 0x1931: 0x3bf, 0x1933: 0x3c0, 0x1934: 0x3c1, 0x1935: 0x3c2, 0x1936: 0x3c3, 0x1937: 0x3c4,
-	0x1938: 0x3c5, 0x1939: 0x3c6, 0x193a: 0x3c7, 0x193b: 0x3c8, 0x193c: 0x3c9, 0x193d: 0x3ca, 0x193e: 0x3cb,
-	// Block 0x65, offset 0x1940
-	0x1964: 0x3cc, 0x1965: 0x3cd, 0x1966: 0x3ce, 0x1967: 0x3cf,
-	0x1968: 0x3d0, 0x1969: 0x3d1, 0x196a: 0x3d2, 0x196b: 0x3d3, 0x196c: 0x103, 0x196d: 0x104, 0x196e: 0x105, 0x196f: 0x106,
-	0x1970: 0x107, 0x1971: 0x108, 0x1972: 0x109, 0x1973: 0x10a, 0x1974: 0x10b, 0x1975: 0x10c, 0x1976: 0x10d, 0x1977: 0x10e,
-	0x1978: 0x10f, 0x1979: 0x110, 0x197a: 0x111, 0x197b: 0x112, 0x197c: 0x3d4, 0x197d: 0x3d5, 0x197e: 0x3d6, 0x197f: 0x3d7,
-	// Block 0x66, offset 0x1980
-	0x1980: 0x18b, 0x1981: 0x18c, 0x1982: 0x18d, 0x1983: 0x18e, 0x1984: 0x18f, 0x1985: 0x190, 0x1986: 0x191, 0x1987: 0x192,
-	0x1988: 0x193, 0x1989: 0x3d8, 0x198c: 0x195, 0x198d: 0x196, 0x198e: 0x197, 0x198f: 0x198,
-	0x1990: 0x199, 0x1991: 0x19a, 0x1992: 0x19b, 0x1993: 0x19c, 0x1994: 0x19d, 0x1995: 0x19e, 0x1997: 0x19f,
-	0x1998: 0x1a0, 0x1999: 0x1a1, 0x199a: 0x1a2, 0x199b: 0x1a3, 0x199c: 0x1a4, 0x199d: 0x1a5,
-	// Block 0x67, offset 0x19c0
-	0x19e0: 0x3d9, 0x19e1: 0x3da, 0x19e2: 0x3db, 0x19e3: 0x3dc, 0x19e4: 0x3dd, 0x19e5: 0x3de, 0x19e6: 0x3df, 0x19e7: 0x3e0,
-	0x19e8: 0x3e1,
-	// Block 0x68, offset 0x1a00
-	0x1a10: 0x09, 0x1a11: 0x0a, 0x1a12: 0x0b, 0x1a13: 0x0c, 0x1a16: 0x0d,
-	0x1a1b: 0x0e, 0x1a1d: 0x0f, 0x1a1e: 0x10, 0x1a1f: 0x64,
-	0x1a2f: 0x65,
-	// Block 0x69, offset 0x1a40
-	0x1a42: 0x01, 0x1a43: 0x02, 0x1a44: 0x03, 0x1a45: 0x04, 0x1a46: 0x05, 0x1a47: 0x06,
-	0x1a48: 0x07, 0x1a49: 0x08, 0x1a4a: 0x09, 0x1a4b: 0x0a, 0x1a4c: 0x0b, 0x1a4d: 0x0c, 0x1a4e: 0x0d, 0x1a4f: 0x0e,
-	0x1a50: 0x0f, 0x1a51: 0x10, 0x1a52: 0x11, 0x1a53: 0x12, 0x1a54: 0x13, 0x1a55: 0x14, 0x1a56: 0x15, 0x1a57: 0x16,
-	0x1a58: 0x17, 0x1a59: 0x18, 0x1a5a: 0x19, 0x1a5b: 0x1a, 0x1a5c: 0x1b, 0x1a5d: 0x1c, 0x1a5e: 0x1d, 0x1a5f: 0x1e,
-	0x1a60: 0x01, 0x1a61: 0x02, 0x1a62: 0x03, 0x1a63: 0x5c, 0x1a64: 0x5d, 0x1a65: 0x5e, 0x1a66: 0x5f, 0x1a67: 0x60,
-	0x1a68: 0x61, 0x1a69: 0x62, 0x1a6a: 0x06, 0x1a6d: 0x07, 0x1a6f: 0x63,
-	0x1a70: 0x66, 0x1a73: 0x15,
-	// Block 0x6a, offset 0x1a80
-	0x1a82: 0x01, 0x1a83: 0x02, 0x1a84: 0x03, 0x1a85: 0x04, 0x1a86: 0x05, 0x1a87: 0x06,
-	0x1a88: 0x07, 0x1a89: 0x08, 0x1a8a: 0x09, 0x1a8b: 0x0a, 0x1a8c: 0x0b, 0x1a8d: 0x0c, 0x1a8e: 0x0d, 0x1a8f: 0x0e,
-	0x1a90: 0x3e2, 0x1a91: 0x3e3, 0x1a92: 0x3e4, 0x1a93: 0x12, 0x1a94: 0x13, 0x1a95: 0x14, 0x1a96: 0x15, 0x1a97: 0x16,
-	0x1a98: 0x17, 0x1a99: 0x18, 0x1a9a: 0x19, 0x1a9b: 0x1a, 0x1a9c: 0x1b, 0x1a9d: 0x1c, 0x1a9e: 0x1d, 0x1a9f: 0x1e,
-	0x1aa0: 0x01, 0x1aa1: 0x02, 0x1aa2: 0x03, 0x1aa3: 0x04, 0x1aa4: 0x05,
-	0x1aaa: 0x06, 0x1aad: 0x07, 0x1aaf: 0x08,
-	0x1ab0: 0x13, 0x1ab3: 0x15,
-	// Block 0x6b, offset 0x1ac0
-	0x1ac2: 0x01, 0x1ac3: 0x1e0, 0x1ac4: 0x3e7, 0x1ac5: 0x1e2, 0x1ac6: 0x05, 0x1ac7: 0x1e3,
-	0x1ac8: 0x1e4, 0x1ac9: 0x08, 0x1aca: 0x09, 0x1acb: 0x0a, 0x1acc: 0x0b, 0x1acd: 0x0c, 0x1ace: 0x0d, 0x1acf: 0x0e,
-	0x1ad0: 0x0f, 0x1ad1: 0x10, 0x1ad2: 0x11, 0x1ad3: 0x12, 0x1ad4: 0x13, 0x1ad5: 0x14, 0x1ad6: 0x15, 0x1ad7: 0x16,
-	0x1ad8: 0x17, 0x1ad9: 0x18, 0x1ada: 0x19, 0x1adb: 0x1a, 0x1adc: 0x1b, 0x1add: 0x1c, 0x1ade: 0x1d, 0x1adf: 0x1e,
-	0x1ae0: 0x01, 0x1ae1: 0x28, 0x1ae2: 0x29, 0x1ae3: 0x04, 0x1ae4: 0x05,
-	0x1aea: 0x06, 0x1aed: 0x07, 0x1aef: 0x08,
-	0x1af0: 0x13, 0x1af3: 0x15,
-	// Block 0x6c, offset 0x1b00
-	0x1b00: 0x3f, 0x1b01: 0x40, 0x1b02: 0x41, 0x1b03: 0x42, 0x1b04: 0x43, 0x1b05: 0x44, 0x1b06: 0x45, 0x1b07: 0x46,
-	0x1b08: 0x47, 0x1b09: 0x48, 0x1b0a: 0x49, 0x1b0b: 0x4a, 0x1b0c: 0x4b, 0x1b0d: 0x4c, 0x1b0e: 0x4d, 0x1b0f: 0x4e,
-	0x1b10: 0x4f, 0x1b11: 0x50, 0x1b12: 0x51, 0x1b13: 0x52, 0x1b14: 0x53, 0x1b15: 0x54, 0x1b16: 0x55, 0x1b17: 0x56,
-	0x1b18: 0x57, 0x1b19: 0x58, 0x1b1a: 0x59, 0x1b1b: 0x5a, 0x1b1c: 0x5b, 0x1b1d: 0x5c, 0x1b1e: 0x3e8, 0x1b1f: 0x3e9,
-	0x1b20: 0x5f, 0x1b21: 0x60, 0x1b22: 0x61, 0x1b23: 0x62, 0x1b24: 0x63, 0x1b25: 0x64, 0x1b26: 0x65, 0x1b27: 0x66,
-	0x1b28: 0x67, 0x1b29: 0x68, 0x1b2a: 0x69, 0x1b2c: 0x6a, 0x1b2d: 0x6b, 0x1b2e: 0x6c, 0x1b2f: 0x6d,
-	0x1b30: 0x6e, 0x1b31: 0x6f, 0x1b33: 0x70, 0x1b34: 0x71, 0x1b35: 0x72, 0x1b36: 0x73, 0x1b37: 0x74,
-	0x1b38: 0x75, 0x1b39: 0x76, 0x1b3a: 0x77, 0x1b3b: 0x78, 0x1b3c: 0x79, 0x1b3d: 0x7a, 0x1b3e: 0x7b, 0x1b3f: 0x7c,
-	// Block 0x6d, offset 0x1b40
-	0x1b42: 0x01, 0x1b43: 0x02, 0x1b44: 0x03, 0x1b45: 0x04, 0x1b46: 0x05, 0x1b47: 0x06,
-	0x1b48: 0x07, 0x1b49: 0x08, 0x1b4a: 0x09, 0x1b4b: 0x0a, 0x1b4c: 0x0b, 0x1b4d: 0x0c, 0x1b4e: 0x0d, 0x1b4f: 0x0e,
-	0x1b50: 0x0f, 0x1b51: 0x10, 0x1b52: 0x11, 0x1b53: 0x12, 0x1b54: 0x13, 0x1b55: 0x14, 0x1b56: 0x15, 0x1b57: 0x16,
-	0x1b58: 0x17, 0x1b59: 0x18, 0x1b5a: 0x19, 0x1b5b: 0x1a, 0x1b5c: 0x1b, 0x1b5d: 0x1c, 0x1b5e: 0x1d, 0x1b5f: 0x1e,
-	0x1b60: 0x01, 0x1b61: 0x6a, 0x1b62: 0x03, 0x1b63: 0x04, 0x1b64: 0x05,
-	0x1b6a: 0x06, 0x1b6d: 0x07, 0x1b6f: 0x08,
-	0x1b70: 0x13, 0x1b73: 0x15,
-	// Block 0x6e, offset 0x1b80
-	0x1ba0: 0x1f, 0x1ba1: 0x20, 0x1ba2: 0x21, 0x1ba3: 0x22, 0x1ba4: 0x23, 0x1ba5: 0x24, 0x1ba6: 0x25, 0x1ba7: 0x26,
-	0x1ba8: 0x27, 0x1ba9: 0x28, 0x1baa: 0x29, 0x1bab: 0x2a, 0x1bac: 0x2b, 0x1bad: 0x2c, 0x1bae: 0x2d, 0x1baf: 0x2e,
-	0x1bb0: 0x2f, 0x1bb1: 0x30, 0x1bb2: 0x3ea, 0x1bb3: 0x3eb, 0x1bb4: 0x33, 0x1bb5: 0x34, 0x1bb6: 0x35, 0x1bb7: 0x36,
-	0x1bb8: 0x37, 0x1bb9: 0x38, 0x1bba: 0x39, 0x1bbb: 0x3a, 0x1bbc: 0x3b, 0x1bbd: 0x3c, 0x1bbe: 0x3d, 0x1bbf: 0x3e,
-	// Block 0x6f, offset 0x1bc0
-	0x1bc2: 0x01, 0x1bc3: 0x02, 0x1bc4: 0x03, 0x1bc5: 0x04, 0x1bc6: 0x05, 0x1bc7: 0x06,
-	0x1bc8: 0x07, 0x1bc9: 0x08, 0x1bca: 0x09, 0x1bcb: 0x0a, 0x1bcc: 0x0b, 0x1bcd: 0x0c, 0x1bce: 0x0d, 0x1bcf: 0x0e,
-	0x1bd0: 0x0f, 0x1bd1: 0x10, 0x1bd2: 0x11, 0x1bd3: 0x12, 0x1bd4: 0x13, 0x1bd5: 0x14, 0x1bd6: 0x15, 0x1bd7: 0x16,
-	0x1bd8: 0x17, 0x1bd9: 0x18, 0x1bda: 0x19, 0x1bdb: 0x1a, 0x1bdc: 0x1b, 0x1bdd: 0x1c, 0x1bde: 0x1d, 0x1bdf: 0x1e,
-	0x1be0: 0x6c, 0x1be1: 0x02, 0x1be2: 0x03, 0x1be3: 0x04, 0x1be4: 0x05,
-	0x1bea: 0x06, 0x1bed: 0x07, 0x1bef: 0x08,
-	0x1bf0: 0x13, 0x1bf3: 0x15,
-	// Block 0x70, offset 0x1c00
-	0x1c00: 0xba, 0x1c01: 0xbb, 0x1c02: 0xbc, 0x1c03: 0xbd, 0x1c04: 0xbe, 0x1c05: 0xbf, 0x1c06: 0xc0, 0x1c07: 0xc1,
-	0x1c08: 0x3ec, 0x1c09: 0x286, 0x1c0a: 0xc4, 0x1c0b: 0x287, 0x1c0c: 0xc6, 0x1c0d: 0x288, 0x1c0e: 0xc8, 0x1c0f: 0x289,
-	// Block 0x71, offset 0x1c40
-	0x1c77: 0xca,
-	0x1c78: 0x3ed, 0x1c79: 0x3ee, 0x1c7a: 0x3ef, 0x1c7b: 0x3f0, 0x1c7c: 0x3f1, 0x1c7d: 0x3f2, 0x1c7e: 0x3f3, 0x1c7f: 0x3f4,
-	// Block 0x72, offset 0x1c80
-	0x1c80: 0x3f5, 0x1c81: 0x3f6, 0x1c82: 0x3f7, 0x1c83: 0x3f8, 0x1c84: 0x3f9, 0x1c85: 0x3fa, 0x1c86: 0x3fb, 0x1c87: 0x3fc,
-	0x1c88: 0x3fd, 0x1c89: 0x3fe, 0x1c8a: 0x3ff, 0x1c8b: 0x400, 0x1c8c: 0x401, 0x1c8d: 0x402, 0x1c8e: 0x403, 0x1c8f: 0x404,
-	0x1c90: 0x405, 0x1c91: 0x406, 0x1c92: 0x407, 0x1c93: 0x408, 0x1c94: 0x409, 0x1c95: 0x40a, 0x1c96: 0x40b, 0x1c97: 0x40c,
-	0x1c98: 0x40d, 0x1c99: 0x40e, 0x1c9a: 0x40f, 0x1c9b: 0x410, 0x1c9c: 0x411, 0x1c9d: 0x412, 0x1c9e: 0x413, 0x1c9f: 0x414,
-	0x1ca0: 0x415, 0x1ca1: 0x416, 0x1ca2: 0x417, 0x1ca3: 0x418, 0x1ca4: 0x419, 0x1ca5: 0x41a, 0x1ca6: 0x41b, 0x1ca7: 0x41c,
-	0x1ca8: 0x41d, 0x1ca9: 0x41e, 0x1caa: 0x41f, 0x1cab: 0x420, 0x1cac: 0x421, 0x1cad: 0x422, 0x1cae: 0x423, 0x1caf: 0x424,
-	0x1cb0: 0x425, 0x1cb1: 0x426, 0x1cb2: 0x427, 0x1cb3: 0x428, 0x1cb4: 0x429, 0x1cb5: 0x42a, 0x1cb6: 0x42b, 0x1cb7: 0x42c,
-	0x1cb8: 0x42d, 0x1cb9: 0x42e, 0x1cba: 0x42f, 0x1cbb: 0x430, 0x1cbc: 0x431, 0x1cbd: 0x432, 0x1cbe: 0x433, 0x1cbf: 0x434,
-	// Block 0x73, offset 0x1cc0
-	0x1cc0: 0x435, 0x1cc1: 0x436, 0x1cc2: 0x437, 0x1cc3: 0x438, 0x1cc4: 0x439, 0x1cc5: 0x43a, 0x1cc6: 0x43b, 0x1cc7: 0x43c,
-	0x1cc8: 0x43d, 0x1cc9: 0x43e, 0x1cca: 0x43f, 0x1ccb: 0x440, 0x1ccc: 0x441, 0x1ccd: 0x442, 0x1cce: 0x443, 0x1ccf: 0x444,
-	0x1cd0: 0x445, 0x1cd1: 0x446, 0x1cd2: 0x447, 0x1cd3: 0x448, 0x1cd4: 0x449, 0x1cd5: 0x44a, 0x1cd6: 0x44b, 0x1cd7: 0x44c,
-	0x1cd8: 0x44d, 0x1cd9: 0x44e, 0x1cda: 0x44f, 0x1cdb: 0x450, 0x1cdc: 0x451, 0x1cdd: 0x452, 0x1cde: 0x453, 0x1cdf: 0x454,
-	0x1ce0: 0x455, 0x1ce1: 0x456, 0x1ce2: 0x457, 0x1ce3: 0x458, 0x1ce4: 0x459, 0x1ce5: 0x45a, 0x1ce6: 0x45b, 0x1ce7: 0x45c,
-	0x1ce8: 0x45d, 0x1ce9: 0x45e, 0x1cea: 0x45f, 0x1ceb: 0x460, 0x1cec: 0x461, 0x1ced: 0x462, 0x1cee: 0x463, 0x1cef: 0x464,
-	0x1cf0: 0x465, 0x1cf1: 0x466, 0x1cf2: 0x467, 0x1cf3: 0x468, 0x1cf4: 0x469, 0x1cf5: 0x46a, 0x1cf6: 0x46b, 0x1cf7: 0x46c,
-	0x1cf8: 0x46d, 0x1cf9: 0x46e, 0x1cfa: 0x46f, 0x1cfb: 0x470, 0x1cfc: 0x471, 0x1cfd: 0x472, 0x1cfe: 0x473, 0x1cff: 0x474,
-	// Block 0x74, offset 0x1d00
-	0x1d00: 0x475, 0x1d01: 0x476, 0x1d02: 0x477, 0x1d03: 0x478, 0x1d04: 0x479, 0x1d05: 0x47a, 0x1d06: 0x47b, 0x1d07: 0x47c,
-	0x1d08: 0x47d, 0x1d09: 0x47e, 0x1d0a: 0x47f, 0x1d0b: 0x480, 0x1d0c: 0x481, 0x1d0d: 0x482, 0x1d0e: 0x483, 0x1d0f: 0x484,
-	0x1d10: 0x485, 0x1d11: 0x486, 0x1d12: 0x487, 0x1d13: 0x488, 0x1d14: 0x489, 0x1d15: 0x48a, 0x1d16: 0x48b, 0x1d17: 0x48c,
-	0x1d18: 0x48d, 0x1d19: 0x48e, 0x1d1a: 0x48f, 0x1d1b: 0x490, 0x1d1c: 0x491, 0x1d1d: 0x492, 0x1d1e: 0x493, 0x1d1f: 0x494,
-	0x1d20: 0x495, 0x1d21: 0x496, 0x1d22: 0x497, 0x1d23: 0x498, 0x1d24: 0x499, 0x1d25: 0x49a, 0x1d26: 0x49b, 0x1d27: 0x49c,
-	0x1d28: 0x49d, 0x1d29: 0x49e, 0x1d2a: 0x49f, 0x1d2b: 0x4a0, 0x1d2c: 0x4a1, 0x1d2d: 0x4a2, 0x1d2e: 0x4a3, 0x1d2f: 0x4a4,
-	0x1d30: 0x4a5, 0x1d31: 0x4a6, 0x1d32: 0x4a7, 0x1d33: 0x4a8, 0x1d34: 0x4a9, 0x1d35: 0x4aa, 0x1d36: 0x4ab, 0x1d37: 0x4ac,
-	0x1d38: 0x4ad, 0x1d39: 0x4ae, 0x1d3a: 0x4af, 0x1d3c: 0x4b0, 0x1d3d: 0x4b1, 0x1d3e: 0x4b2, 0x1d3f: 0x4b3,
-	// Block 0x75, offset 0x1d40
-	0x1d40: 0x4b4, 0x1d41: 0x4b5, 0x1d42: 0x4b6, 0x1d43: 0x4b7, 0x1d44: 0x4b8, 0x1d45: 0x4b9, 0x1d46: 0x4ba, 0x1d47: 0x4bb,
-	0x1d48: 0x4bc, 0x1d49: 0x4bd, 0x1d4a: 0x4be, 0x1d4b: 0x4bf, 0x1d4c: 0x4c0, 0x1d4d: 0x4c1, 0x1d4e: 0x4c2, 0x1d4f: 0x4c3,
-	0x1d50: 0x4c4, 0x1d51: 0x4c5, 0x1d52: 0x4c6, 0x1d53: 0x4c7, 0x1d54: 0x4c8, 0x1d55: 0x4c9, 0x1d56: 0x4ca, 0x1d57: 0x4cb,
-	0x1d58: 0x4cc, 0x1d59: 0x4cd, 0x1d5a: 0x4ce, 0x1d5b: 0x4cf, 0x1d5c: 0x4d0, 0x1d5d: 0x4d1, 0x1d5e: 0x4d2, 0x1d5f: 0x4d3,
-	0x1d60: 0x4d4, 0x1d61: 0x4d5, 0x1d62: 0x4d6, 0x1d63: 0x4d7, 0x1d64: 0x4d8, 0x1d65: 0x4d9, 0x1d66: 0x4da, 0x1d67: 0x4db,
-	0x1d68: 0x4dc, 0x1d69: 0x4dd, 0x1d6a: 0x4de, 0x1d6b: 0x4df, 0x1d6c: 0x4e0, 0x1d6d: 0x4e1, 0x1d6e: 0x4e2,
-	0x1d70: 0x4e3, 0x1d71: 0x4e4, 0x1d72: 0x4e5, 0x1d73: 0x4e6, 0x1d74: 0x4e7, 0x1d75: 0x4e8, 0x1d76: 0x4e9, 0x1d77: 0x4ea,
-	0x1d78: 0x4eb, 0x1d79: 0x4ec, 0x1d7a: 0x4ed, 0x1d7b: 0x4ee, 0x1d7c: 0x4ef, 0x1d7d: 0x4f0, 0x1d7e: 0x4f1, 0x1d7f: 0x4f2,
-	// Block 0x76, offset 0x1d80
-	0x1d80: 0x4f3, 0x1d81: 0x4f4, 0x1d82: 0x4f5, 0x1d83: 0x4f6, 0x1d84: 0x4f7, 0x1d85: 0x4f8, 0x1d86: 0x4f9, 0x1d87: 0x4fa,
-	0x1d88: 0x4fb, 0x1d89: 0x4fc, 0x1d8a: 0x4fd, 0x1d8b: 0x4fe, 0x1d8c: 0x4ff, 0x1d8d: 0x500, 0x1d8e: 0x501, 0x1d8f: 0x502,
-	0x1d90: 0x503, 0x1d91: 0x504, 0x1d95: 0x505, 0x1d96: 0x506, 0x1d97: 0x507,
-	0x1d98: 0x508, 0x1d99: 0x509, 0x1d9a: 0x50a, 0x1d9b: 0x50b, 0x1d9c: 0x50c, 0x1d9d: 0x50d, 0x1d9e: 0x50e, 0x1d9f: 0x50f,
-	0x1da0: 0x510, 0x1da1: 0x511, 0x1da2: 0x512, 0x1da3: 0x513, 0x1da4: 0x514, 0x1da5: 0x515, 0x1da6: 0x516, 0x1da7: 0x517,
-	0x1da8: 0x518, 0x1da9: 0x519, 0x1daa: 0x51a, 0x1dab: 0x51b, 0x1dac: 0x51c, 0x1dad: 0x51d, 0x1dae: 0x51e, 0x1daf: 0x51f,
-	0x1db0: 0x520, 0x1db1: 0x521, 0x1db3: 0x522, 0x1db4: 0x523, 0x1db5: 0x524, 0x1db6: 0x525, 0x1db7: 0x526,
-	0x1db8: 0x527, 0x1db9: 0x528, 0x1dba: 0x529, 0x1dbb: 0x52a, 0x1dbc: 0x52b, 0x1dbd: 0x52c, 0x1dbe: 0x52d,
-	// Block 0x77, offset 0x1dc0
-	0x1de4: 0x52e, 0x1de5: 0x52f, 0x1de6: 0x530, 0x1de7: 0x531,
-	0x1de8: 0x532, 0x1de9: 0x533, 0x1dea: 0x534, 0x1deb: 0x535, 0x1dec: 0x103, 0x1ded: 0x104, 0x1dee: 0x105, 0x1def: 0x106,
-	0x1df0: 0x107, 0x1df1: 0x108, 0x1df2: 0x109, 0x1df3: 0x10a, 0x1df4: 0x10b, 0x1df5: 0x10c, 0x1df6: 0x10d, 0x1df7: 0x10e,
-	0x1df8: 0x10f, 0x1df9: 0x110, 0x1dfa: 0x111, 0x1dfb: 0x112, 0x1dfc: 0x113, 0x1dfd: 0x114, 0x1dfe: 0x115, 0x1dff: 0x116,
-	// Block 0x78, offset 0x1e00
-	0x1e00: 0x18b, 0x1e01: 0x18c, 0x1e02: 0x18d, 0x1e03: 0x18e, 0x1e04: 0x18f, 0x1e05: 0x190, 0x1e06: 0x191, 0x1e07: 0x192,
-	0x1e08: 0x193, 0x1e09: 0x536, 0x1e0c: 0x195, 0x1e0d: 0x196, 0x1e0e: 0x197, 0x1e0f: 0x198,
-	0x1e10: 0x199, 0x1e11: 0x19a, 0x1e12: 0x19b, 0x1e13: 0x19c, 0x1e14: 0x19d, 0x1e15: 0x19e, 0x1e17: 0x19f,
-	0x1e18: 0x1a0, 0x1e19: 0x1a1, 0x1e1a: 0x1a2, 0x1e1b: 0x1a3, 0x1e1c: 0x1a4, 0x1e1d: 0x1a5,
-	// Block 0x79, offset 0x1e40
-	0x1e60: 0x537, 0x1e61: 0x538, 0x1e62: 0x539, 0x1e63: 0x53a, 0x1e64: 0x53b, 0x1e65: 0x53c, 0x1e66: 0x53d, 0x1e67: 0x53e,
-	0x1e68: 0x53f,
-	// Block 0x7a, offset 0x1e80
-	0x1e90: 0x09, 0x1e91: 0x0a, 0x1e92: 0x0b, 0x1e93: 0x0c, 0x1e96: 0x0d,
-	0x1e9b: 0x0e, 0x1e9d: 0x0f, 0x1e9e: 0x10, 0x1e9f: 0x76,
-	0x1eaf: 0x77,
-	// Block 0x7b, offset 0x1ec0
-	0x1ec2: 0x01, 0x1ec3: 0x02, 0x1ec4: 0x03, 0x1ec5: 0x04, 0x1ec6: 0x05, 0x1ec7: 0x06,
-	0x1ec8: 0x07, 0x1ec9: 0x08, 0x1eca: 0x09, 0x1ecb: 0x0a, 0x1ecc: 0x0b, 0x1ecd: 0x0c, 0x1ece: 0x0d, 0x1ecf: 0x0e,
-	0x1ed0: 0x0f, 0x1ed1: 0x10, 0x1ed2: 0x11, 0x1ed3: 0x12, 0x1ed4: 0x13, 0x1ed5: 0x14, 0x1ed6: 0x15, 0x1ed7: 0x16,
-	0x1ed8: 0x17, 0x1ed9: 0x18, 0x1eda: 0x19, 0x1edb: 0x1a, 0x1edc: 0x1b, 0x1edd: 0x1c, 0x1ede: 0x1d, 0x1edf: 0x1e,
-	0x1ee0: 0x01, 0x1ee1: 0x02, 0x1ee2: 0x03, 0x1ee3: 0x6e, 0x1ee4: 0x6f, 0x1ee5: 0x70, 0x1ee6: 0x71, 0x1ee7: 0x72,
-	0x1ee8: 0x73, 0x1ee9: 0x74, 0x1eea: 0x06, 0x1eed: 0x07, 0x1eef: 0x75,
-	0x1ef0: 0x78, 0x1ef3: 0x15,
-	// Block 0x7c, offset 0x1f00
-	0x1f20: 0x1f, 0x1f21: 0x20, 0x1f22: 0x21, 0x1f23: 0x22, 0x1f24: 0x540, 0x1f25: 0x24, 0x1f26: 0x25, 0x1f27: 0x26,
-	0x1f28: 0x27, 0x1f29: 0x28, 0x1f2a: 0x29, 0x1f2b: 0x2a, 0x1f2c: 0x2b, 0x1f2d: 0x2c, 0x1f2e: 0x2d, 0x1f2f: 0x2e,
-	0x1f30: 0x2f, 0x1f31: 0x30, 0x1f32: 0x31, 0x1f33: 0x32, 0x1f34: 0x33, 0x1f35: 0x34, 0x1f36: 0x35, 0x1f37: 0x36,
-	0x1f38: 0x37, 0x1f39: 0x38, 0x1f3a: 0x39, 0x1f3b: 0x3a, 0x1f3c: 0x3b, 0x1f3d: 0x3c, 0x1f3e: 0x3d, 0x1f3f: 0x3e,
-	// Block 0x7d, offset 0x1f40
-	0x1f42: 0x01, 0x1f43: 0x02, 0x1f44: 0x03, 0x1f45: 0x04, 0x1f46: 0x05, 0x1f47: 0x06,
-	0x1f48: 0x07, 0x1f49: 0x08, 0x1f4a: 0x09, 0x1f4b: 0x0a, 0x1f4c: 0x0b, 0x1f4d: 0x0c, 0x1f4e: 0x0d, 0x1f4f: 0x0e,
-	0x1f50: 0x0f, 0x1f51: 0x10, 0x1f52: 0x11, 0x1f53: 0x12, 0x1f54: 0x13, 0x1f55: 0x14, 0x1f56: 0x15, 0x1f57: 0x16,
-	0x1f58: 0x17, 0x1f59: 0x18, 0x1f5a: 0x19, 0x1f5b: 0x1a, 0x1f5c: 0x1b, 0x1f5d: 0x1c, 0x1f5e: 0x1d, 0x1f5f: 0x1e,
-	0x1f60: 0x7a, 0x1f61: 0x02, 0x1f62: 0x03, 0x1f63: 0x04, 0x1f64: 0x05,
-	0x1f6a: 0x06, 0x1f6d: 0x07, 0x1f6f: 0x08,
-	0x1f70: 0x13, 0x1f73: 0x15,
-	// Block 0x7e, offset 0x1f80
-	0x1f82: 0x01, 0x1f83: 0x02, 0x1f84: 0x03, 0x1f85: 0x04, 0x1f86: 0x541, 0x1f87: 0x06,
-	0x1f88: 0x07, 0x1f89: 0x542, 0x1f8a: 0x09, 0x1f8b: 0x0a, 0x1f8c: 0x0b, 0x1f8d: 0x0c, 0x1f8e: 0x0d, 0x1f8f: 0x0e,
-	0x1f90: 0x0f, 0x1f91: 0x10, 0x1f92: 0x11, 0x1f93: 0x12, 0x1f94: 0x13, 0x1f95: 0x14, 0x1f96: 0x15, 0x1f97: 0x16,
-	0x1f98: 0x17, 0x1f99: 0x18, 0x1f9a: 0x19, 0x1f9b: 0x1a, 0x1f9c: 0x1b, 0x1f9d: 0x1c, 0x1f9e: 0x1d, 0x1f9f: 0x1e,
-	0x1fa0: 0x01, 0x1fa1: 0x02, 0x1fa2: 0x03, 0x1fa3: 0x04, 0x1fa4: 0x05,
-	0x1faa: 0x06, 0x1fad: 0x07, 0x1faf: 0x08,
-	0x1fb0: 0x13, 0x1fb3: 0x15,
-	// Block 0x7f, offset 0x1fc0
-	0x1fc0: 0x3f, 0x1fc1: 0x40, 0x1fc2: 0x41, 0x1fc3: 0x42, 0x1fc4: 0x43, 0x1fc5: 0x44, 0x1fc6: 0x45, 0x1fc7: 0x46,
-	0x1fc8: 0x47, 0x1fc9: 0x48, 0x1fca: 0x49, 0x1fcb: 0x4a, 0x1fcc: 0x4b, 0x1fcd: 0x4c, 0x1fce: 0x4d, 0x1fcf: 0x4e,
-	0x1fd0: 0x4f, 0x1fd1: 0x50, 0x1fd2: 0x51, 0x1fd3: 0x52, 0x1fd4: 0x53, 0x1fd5: 0x54, 0x1fd6: 0x55, 0x1fd7: 0x56,
-	0x1fd8: 0x57, 0x1fd9: 0x58, 0x1fda: 0x59, 0x1fdb: 0x5a, 0x1fdc: 0x5b, 0x1fdd: 0x5c, 0x1fde: 0x5d, 0x1fdf: 0x5e,
-	0x1fe0: 0x5f, 0x1fe1: 0x60, 0x1fe2: 0x61, 0x1fe3: 0x62, 0x1fe4: 0x63, 0x1fe5: 0x64, 0x1fe6: 0x65, 0x1fe7: 0x66,
-	0x1fe8: 0x67, 0x1fe9: 0x68, 0x1fea: 0x69, 0x1fec: 0x6a, 0x1fed: 0x6b, 0x1fee: 0x6c, 0x1fef: 0x6d,
-	0x1ff0: 0x6e, 0x1ff1: 0x6f, 0x1ff3: 0x70, 0x1ff4: 0x71, 0x1ff5: 0x72, 0x1ff6: 0x73, 0x1ff7: 0x74,
-	0x1ff8: 0x75, 0x1ff9: 0x54b, 0x1ffa: 0x54c, 0x1ffb: 0x54d, 0x1ffc: 0x79, 0x1ffd: 0x7a, 0x1ffe: 0x7b, 0x1fff: 0x7c,
-	// Block 0x80, offset 0x2000
-	0x2000: 0x7d, 0x2001: 0x7e, 0x2002: 0x7f, 0x2003: 0x80, 0x2004: 0x81, 0x2005: 0x82, 0x2006: 0x83, 0x2007: 0x84,
-	0x2008: 0x85, 0x2009: 0x86, 0x200a: 0x87, 0x200b: 0x88, 0x200c: 0x89, 0x200d: 0x8a, 0x200e: 0x8b, 0x200f: 0x8c,
-	0x2010: 0x8d, 0x2011: 0x8e, 0x2012: 0x54e, 0x2013: 0x90, 0x2014: 0x91, 0x2015: 0x92, 0x2016: 0x93, 0x2017: 0x94,
-	0x2018: 0x95, 0x2019: 0x96, 0x201a: 0x97, 0x201b: 0x98, 0x201c: 0x99, 0x201d: 0x9a, 0x201e: 0x9b, 0x201f: 0x9c,
-	0x2020: 0x9d, 0x2021: 0x9e, 0x2022: 0x9f, 0x2023: 0xa0, 0x2024: 0xa1, 0x2025: 0xa2, 0x2026: 0xa3, 0x2027: 0xa4,
-	0x2028: 0xa5, 0x2029: 0xa6, 0x202a: 0xa7, 0x202b: 0xa8, 0x202c: 0xa9, 0x202d: 0xaa,
-	0x2030: 0xab, 0x2031: 0xac, 0x2032: 0xad, 0x2033: 0xae, 0x2034: 0xaf, 0x2035: 0xb0, 0x2036: 0xb1, 0x2037: 0xb2,
-	0x2038: 0xb3, 0x203a: 0xb4, 0x203b: 0xb5, 0x203c: 0xb6, 0x203d: 0xb7, 0x203e: 0xb8, 0x203f: 0xb9,
-	// Block 0x81, offset 0x2040
-	0x2040: 0xba, 0x2041: 0xbb, 0x2042: 0xbc, 0x2043: 0xbd, 0x2044: 0xbe, 0x2045: 0xbf, 0x2046: 0xc0, 0x2047: 0xc1,
-	0x2048: 0xc2, 0x2049: 0xc3, 0x204a: 0xc4, 0x204b: 0xc5, 0x204c: 0xc6, 0x204d: 0xc7, 0x204e: 0xc8, 0x204f: 0x54f,
-	// Block 0x82, offset 0x2080
-	0x2080: 0x18b, 0x2081: 0x18c, 0x2082: 0x18d, 0x2083: 0x18e, 0x2084: 0x550, 0x2085: 0x190, 0x2086: 0x191, 0x2087: 0x192,
-	0x2088: 0x193, 0x2089: 0x194, 0x208c: 0x195, 0x208d: 0x196, 0x208e: 0x197, 0x208f: 0x198,
-	0x2090: 0x199, 0x2091: 0x19a, 0x2092: 0x19b, 0x2093: 0x19c, 0x2094: 0x19d, 0x2095: 0x19e, 0x2097: 0x19f,
-	0x2098: 0x1a0, 0x2099: 0x1a1, 0x209a: 0x1a2, 0x209b: 0x1a3, 0x209c: 0x1a4, 0x209d: 0x1a5,
-	// Block 0x83, offset 0x20c0
-	0x20d0: 0x09, 0x20d1: 0x0a, 0x20d2: 0x0b, 0x20d3: 0x0c, 0x20d6: 0x0d,
-	0x20db: 0x0e, 0x20dd: 0x0f, 0x20de: 0x10, 0x20df: 0x80,
-	0x20ef: 0x12,
-	// Block 0x84, offset 0x2100
-	0x2102: 0x01, 0x2103: 0x545, 0x2104: 0x546, 0x2105: 0x547, 0x2106: 0x05, 0x2107: 0x548,
-	0x2108: 0x549, 0x2109: 0x08, 0x210a: 0x09, 0x210b: 0x0a, 0x210c: 0x54a, 0x210d: 0x0c, 0x210e: 0x0d, 0x210f: 0x0e,
-	0x2110: 0x0f, 0x2111: 0x10, 0x2112: 0x11, 0x2113: 0x12, 0x2114: 0x13, 0x2115: 0x14, 0x2116: 0x15, 0x2117: 0x16,
-	0x2118: 0x17, 0x2119: 0x18, 0x211a: 0x19, 0x211b: 0x1a, 0x211c: 0x1b, 0x211d: 0x1c, 0x211e: 0x1d, 0x211f: 0x1e,
-	0x2120: 0x01, 0x2121: 0x7d, 0x2122: 0x7e, 0x2123: 0x7f, 0x2124: 0x05,
-	0x212a: 0x06, 0x212d: 0x07, 0x212f: 0x08,
-	0x2130: 0x81, 0x2133: 0x15,
-	// Block 0x85, offset 0x2140
-	0x2140: 0x3f, 0x2141: 0x40, 0x2142: 0x41, 0x2143: 0x42, 0x2144: 0x43, 0x2145: 0x44, 0x2146: 0x45, 0x2147: 0x46,
-	0x2148: 0x47, 0x2149: 0x48, 0x214a: 0x49, 0x214b: 0x4a, 0x214c: 0x4b, 0x214d: 0x4c, 0x214e: 0x4d, 0x214f: 0x4e,
-	0x2150: 0x4f, 0x2151: 0x50, 0x2152: 0x51, 0x2153: 0x52, 0x2154: 0x53, 0x2155: 0x54, 0x2156: 0x55, 0x2157: 0x56,
-	0x2158: 0x57, 0x2159: 0x58, 0x215a: 0x59, 0x215b: 0x5a, 0x215c: 0x5b, 0x215d: 0x5c, 0x215e: 0x5d, 0x215f: 0x5e,
-	0x2160: 0x5f, 0x2161: 0x60, 0x2162: 0x61, 0x2163: 0x62, 0x2164: 0x63, 0x2165: 0x64, 0x2166: 0x65, 0x2167: 0x66,
-	0x2168: 0x67, 0x2169: 0x68, 0x216a: 0x69, 0x216c: 0x6a, 0x216d: 0x6b, 0x216e: 0x6c, 0x216f: 0x6d,
-	0x2170: 0x6e, 0x2171: 0x6f, 0x2173: 0x70, 0x2174: 0x71, 0x2175: 0x72, 0x2176: 0x73, 0x2177: 0x74,
-	0x2178: 0x75, 0x2179: 0x555, 0x217a: 0x77, 0x217b: 0x78, 0x217c: 0x79, 0x217d: 0x7a, 0x217e: 0x7b, 0x217f: 0x7c,
-	// Block 0x86, offset 0x2180
-	0x2182: 0x01, 0x2183: 0x02, 0x2184: 0x553, 0x2185: 0x554, 0x2186: 0x05, 0x2187: 0x06,
-	0x2188: 0x07, 0x2189: 0x08, 0x218a: 0x09, 0x218b: 0x0a, 0x218c: 0x0b, 0x218d: 0x0c, 0x218e: 0x0d, 0x218f: 0x0e,
-	0x2190: 0x0f, 0x2191: 0x10, 0x2192: 0x11, 0x2193: 0x12, 0x2194: 0x13, 0x2195: 0x14, 0x2196: 0x15, 0x2197: 0x16,
-	0x2198: 0x17, 0x2199: 0x18, 0x219a: 0x19, 0x219b: 0x1a, 0x219c: 0x1b, 0x219d: 0x1c, 0x219e: 0x1d, 0x219f: 0x1e,
-	0x21a0: 0x01, 0x21a1: 0x83, 0x21a2: 0x03, 0x21a3: 0x04, 0x21a4: 0x05,
-	0x21aa: 0x06, 0x21ad: 0x07, 0x21af: 0x08,
-	0x21b0: 0x13, 0x21b3: 0x15,
-	// Block 0x87, offset 0x21c0
-	0x21e0: 0x1f, 0x21e1: 0x20, 0x21e2: 0x21, 0x21e3: 0x22, 0x21e4: 0x23, 0x21e5: 0x24, 0x21e6: 0x25, 0x21e7: 0x26,
-	0x21e8: 0x27, 0x21e9: 0x28, 0x21ea: 0x29, 0x21eb: 0x2a, 0x21ec: 0x2b, 0x21ed: 0x2c, 0x21ee: 0x2d, 0x21ef: 0x2e,
-	0x21f0: 0x2f, 0x21f1: 0x30, 0x21f2: 0x31, 0x21f3: 0x32, 0x21f4: 0x556, 0x21f5: 0x557, 0x21f6: 0x35, 0x21f7: 0x36,
-	0x21f8: 0x37, 0x21f9: 0x38, 0x21fa: 0x39, 0x21fb: 0x3a, 0x21fc: 0x3b, 0x21fd: 0x3c, 0x21fe: 0x3d, 0x21ff: 0x3e,
-	// Block 0x88, offset 0x2200
-	0x2202: 0x01, 0x2203: 0x02, 0x2204: 0x03, 0x2205: 0x04, 0x2206: 0x05, 0x2207: 0x06,
-	0x2208: 0x07, 0x2209: 0x08, 0x220a: 0x09, 0x220b: 0x0a, 0x220c: 0x0b, 0x220d: 0x0c, 0x220e: 0x0d, 0x220f: 0x0e,
-	0x2210: 0x0f, 0x2211: 0x10, 0x2212: 0x11, 0x2213: 0x12, 0x2214: 0x13, 0x2215: 0x14, 0x2216: 0x15, 0x2217: 0x16,
-	0x2218: 0x17, 0x2219: 0x18, 0x221a: 0x19, 0x221b: 0x1a, 0x221c: 0x1b, 0x221d: 0x1c, 0x221e: 0x1d, 0x221f: 0x1e,
-	0x2220: 0x85, 0x2221: 0x02, 0x2222: 0x03, 0x2223: 0x04, 0x2224: 0x05,
-	0x222a: 0x06, 0x222d: 0x07, 0x222f: 0x08,
-	0x2230: 0x13, 0x2233: 0x15,
-	// Block 0x89, offset 0x2240
-	0x2260: 0x1f, 0x2261: 0x20, 0x2262: 0x21, 0x2263: 0x22, 0x2264: 0x558, 0x2265: 0x24, 0x2266: 0x25, 0x2267: 0x26,
-	0x2268: 0x27, 0x2269: 0x28, 0x226a: 0x29, 0x226b: 0x2a, 0x226c: 0x2b, 0x226d: 0x2c, 0x226e: 0x2d, 0x226f: 0x2e,
-	0x2270: 0x2f, 0x2271: 0x30, 0x2272: 0x31, 0x2273: 0x32, 0x2274: 0x33, 0x2275: 0x34, 0x2276: 0x35, 0x2277: 0x36,
-	0x2278: 0x37, 0x2279: 0x38, 0x227a: 0x39, 0x227b: 0x3a, 0x227c: 0x3b, 0x227d: 0x3c, 0x227e: 0x3d, 0x227f: 0x3e,
-	// Block 0x8a, offset 0x2280
-	0x2282: 0x01, 0x2283: 0x02, 0x2284: 0x03, 0x2285: 0x04, 0x2286: 0x05, 0x2287: 0x06,
-	0x2288: 0x07, 0x2289: 0x08, 0x228a: 0x09, 0x228b: 0x0a, 0x228c: 0x0b, 0x228d: 0x0c, 0x228e: 0x0d, 0x228f: 0x0e,
-	0x2290: 0x0f, 0x2291: 0x10, 0x2292: 0x11, 0x2293: 0x12, 0x2294: 0x13, 0x2295: 0x14, 0x2296: 0x15, 0x2297: 0x16,
-	0x2298: 0x17, 0x2299: 0x18, 0x229a: 0x19, 0x229b: 0x1a, 0x229c: 0x1b, 0x229d: 0x1c, 0x229e: 0x1d, 0x229f: 0x1e,
-	0x22a0: 0x87, 0x22a1: 0x02, 0x22a2: 0x03, 0x22a3: 0x04, 0x22a4: 0x05,
-	0x22aa: 0x06, 0x22ad: 0x07, 0x22af: 0x08,
-	0x22b0: 0x13, 0x22b3: 0x15,
-	// Block 0x8b, offset 0x22c0
-	0x22c0: 0x7d, 0x22c1: 0x7e, 0x22c2: 0x7f, 0x22c3: 0x80, 0x22c4: 0x55d, 0x22c5: 0x82, 0x22c6: 0x83, 0x22c7: 0x84,
-	0x22c8: 0x85, 0x22c9: 0x86, 0x22ca: 0x87, 0x22cb: 0x88, 0x22cc: 0x89, 0x22cd: 0x8a, 0x22ce: 0x8b, 0x22cf: 0x8c,
-	0x22d0: 0x8d, 0x22d1: 0x8e, 0x22d2: 0x8f, 0x22d3: 0x90, 0x22d4: 0x91, 0x22d5: 0x92, 0x22d6: 0x93, 0x22d7: 0x94,
-	0x22d8: 0x95, 0x22d9: 0x96, 0x22da: 0x97, 0x22db: 0x98, 0x22dc: 0x99, 0x22dd: 0x9a, 0x22de: 0x9b, 0x22df: 0x9c,
-	0x22e0: 0x9d, 0x22e1: 0x9e, 0x22e2: 0x9f, 0x22e3: 0xa0, 0x22e4: 0xa1, 0x22e5: 0xa2, 0x22e6: 0xa3, 0x22e7: 0xa4,
-	0x22e8: 0xa5, 0x22e9: 0xa6, 0x22ea: 0xa7, 0x22eb: 0xa8, 0x22ec: 0xa9, 0x22ed: 0xaa,
-	0x22f0: 0xab, 0x22f1: 0xac, 0x22f2: 0xad, 0x22f3: 0xae, 0x22f4: 0xaf, 0x22f5: 0xb0, 0x22f6: 0xb1, 0x22f7: 0xb2,
-	0x22f8: 0xb3, 0x22fa: 0xb4, 0x22fb: 0xb5, 0x22fc: 0xb6, 0x22fd: 0xb7, 0x22fe: 0xb8, 0x22ff: 0xb9,
-	// Block 0x8c, offset 0x2300
-	0x2300: 0xcb, 0x2301: 0xcc, 0x2302: 0xcd, 0x2303: 0xce, 0x2304: 0xcf, 0x2305: 0xd0, 0x2306: 0xd1, 0x2307: 0xd2,
-	0x2308: 0xd3, 0x2309: 0xd4, 0x230a: 0xd5, 0x230b: 0xd6, 0x230c: 0xd7, 0x230d: 0xd8, 0x230e: 0xd9, 0x230f: 0xda,
-	0x2310: 0xdb, 0x2311: 0xdc, 0x2312: 0xdd, 0x2313: 0xde, 0x2314: 0xdf, 0x2315: 0xe0, 0x2316: 0xe1, 0x2317: 0xe2,
-	0x2318: 0xe3, 0x2319: 0xe4, 0x231a: 0xe5, 0x231b: 0xe6, 0x231c: 0xe7, 0x231d: 0xe8, 0x231e: 0xe9, 0x231f: 0x55e,
-	0x2320: 0xeb, 0x2321: 0xec, 0x2322: 0xed, 0x2323: 0xee, 0x2324: 0xef, 0x2325: 0xf0, 0x2326: 0xf1, 0x2327: 0xf2,
-	0x2328: 0xf3, 0x2329: 0xf4, 0x232a: 0xf5, 0x232b: 0xf6, 0x232c: 0xf7, 0x232f: 0xf8,
-	// Block 0x8d, offset 0x2340
-	0x2342: 0x01, 0x2343: 0x02, 0x2344: 0x55b, 0x2345: 0x55c, 0x2346: 0x05, 0x2347: 0x06,
-	0x2348: 0x07, 0x2349: 0x08, 0x234a: 0x09, 0x234b: 0x0a, 0x234c: 0x0b, 0x234d: 0x0c, 0x234e: 0x0d, 0x234f: 0x0e,
-	0x2350: 0x0f, 0x2351: 0x10, 0x2352: 0x11, 0x2353: 0x12, 0x2354: 0x13, 0x2355: 0x14, 0x2356: 0x15, 0x2357: 0x16,
-	0x2358: 0x17, 0x2359: 0x18, 0x235a: 0x19, 0x235b: 0x1a, 0x235c: 0x1b, 0x235d: 0x1c, 0x235e: 0x1d, 0x235f: 0x1e,
-	0x2360: 0x01, 0x2361: 0x02, 0x2362: 0x89, 0x2363: 0x04, 0x2364: 0x05,
-	0x236a: 0x8a, 0x236d: 0x07, 0x236f: 0x08,
-	0x2370: 0x13, 0x2373: 0x15,
-	// Block 0x8e, offset 0x2380
-	0x2380: 0x55f, 0x2381: 0x560, 0x2382: 0x561, 0x2383: 0x42, 0x2384: 0x43, 0x2385: 0x44, 0x2386: 0x45, 0x2387: 0x46,
-	0x2388: 0x47, 0x2389: 0x48, 0x238a: 0x49, 0x238b: 0x4a, 0x238c: 0x4b, 0x238d: 0x4c, 0x238e: 0x4d, 0x238f: 0x4e,
-	0x2390: 0x4f, 0x2391: 0x50, 0x2392: 0x51, 0x2393: 0x52, 0x2394: 0x53, 0x2395: 0x54, 0x2396: 0x55, 0x2397: 0x56,
-	0x2398: 0x57, 0x2399: 0x58, 0x239a: 0x59, 0x239b: 0x5a, 0x239c: 0x5b, 0x239d: 0x5c, 0x239e: 0x5d, 0x239f: 0x5e,
-	0x23a0: 0x5f, 0x23a1: 0x60, 0x23a2: 0x61, 0x23a3: 0x62, 0x23a4: 0x63, 0x23a5: 0x64, 0x23a6: 0x65, 0x23a7: 0x66,
-	0x23a8: 0x67, 0x23a9: 0x68, 0x23aa: 0x69, 0x23ac: 0x6a, 0x23ad: 0x6b, 0x23ae: 0x6c, 0x23af: 0x6d,
-	0x23b0: 0x6e, 0x23b1: 0x6f, 0x23b3: 0x70, 0x23b4: 0x71, 0x23b5: 0x72, 0x23b6: 0x73, 0x23b7: 0x74,
-	0x23b8: 0x75, 0x23b9: 0x76, 0x23ba: 0x77, 0x23bb: 0x78, 0x23bc: 0x79, 0x23bd: 0x7a, 0x23be: 0x7b, 0x23bf: 0x7c,
-	// Block 0x8f, offset 0x23c0
-	0x23c2: 0x01, 0x23c3: 0x02, 0x23c4: 0x03, 0x23c5: 0x04, 0x23c6: 0x05, 0x23c7: 0x06,
-	0x23c8: 0x07, 0x23c9: 0x08, 0x23ca: 0x09, 0x23cb: 0x0a, 0x23cc: 0x0b, 0x23cd: 0x0c, 0x23ce: 0x0d, 0x23cf: 0x0e,
-	0x23d0: 0x0f, 0x23d1: 0x10, 0x23d2: 0x11, 0x23d3: 0x12, 0x23d4: 0x13, 0x23d5: 0x14, 0x23d6: 0x15, 0x23d7: 0x16,
-	0x23d8: 0x17, 0x23d9: 0x18, 0x23da: 0x19, 0x23db: 0x1a, 0x23dc: 0x1b, 0x23dd: 0x1c, 0x23de: 0x1d, 0x23df: 0x1e,
-	0x23e0: 0x01, 0x23e1: 0x8c, 0x23e2: 0x03, 0x23e3: 0x04, 0x23e4: 0x05,
-	0x23ea: 0x06, 0x23ed: 0x07, 0x23ef: 0x08,
-	0x23f0: 0x13, 0x23f3: 0x15,
-	// Block 0x90, offset 0x2400
-	0x2400: 0x3f, 0x2401: 0x40, 0x2402: 0x41, 0x2403: 0x42, 0x2404: 0x43, 0x2405: 0x44, 0x2406: 0x45, 0x2407: 0x46,
-	0x2408: 0x47, 0x2409: 0x48, 0x240a: 0x49, 0x240b: 0x4a, 0x240c: 0x4b, 0x240d: 0x4c, 0x240e: 0x4d, 0x240f: 0x4e,
-	0x2410: 0x4f, 0x2411: 0x50, 0x2412: 0x51, 0x2413: 0x52, 0x2414: 0x53, 0x2415: 0x54, 0x2416: 0x55, 0x2417: 0x56,
-	0x2418: 0x57, 0x2419: 0x58, 0x241a: 0x59, 0x241b: 0x5a, 0x241c: 0x5b, 0x241d: 0x5c, 0x241e: 0x5d, 0x241f: 0x5e,
-	0x2420: 0x5f, 0x2421: 0x60, 0x2422: 0x61, 0x2423: 0x62, 0x2424: 0x63, 0x2425: 0x64, 0x2426: 0x65, 0x2427: 0x66,
-	0x2428: 0x67, 0x2429: 0x68, 0x242a: 0x69, 0x242c: 0x6a, 0x242d: 0x6b, 0x242e: 0x6c, 0x242f: 0x6d,
-	0x2430: 0x6e, 0x2431: 0x6f, 0x2433: 0x70, 0x2434: 0x71, 0x2435: 0x72, 0x2436: 0x73, 0x2437: 0x74,
-	0x2438: 0x75, 0x2439: 0x1db, 0x243a: 0x568, 0x243b: 0x569, 0x243c: 0x79, 0x243d: 0x7a, 0x243e: 0x7b, 0x243f: 0x7c,
-	// Block 0x91, offset 0x2440
-	0x2442: 0x01, 0x2443: 0x566, 0x2444: 0x03, 0x2445: 0x567, 0x2446: 0x05, 0x2447: 0x06,
-	0x2448: 0x07, 0x2449: 0x08, 0x244a: 0x09, 0x244b: 0x0a, 0x244c: 0x0b, 0x244d: 0x0c, 0x244e: 0x0d, 0x244f: 0x0e,
-	0x2450: 0x0f, 0x2451: 0x10, 0x2452: 0x11, 0x2453: 0x12, 0x2454: 0x13, 0x2455: 0x14, 0x2456: 0x15, 0x2457: 0x16,
-	0x2458: 0x17, 0x2459: 0x18, 0x245a: 0x19, 0x245b: 0x1a, 0x245c: 0x1b, 0x245d: 0x1c, 0x245e: 0x1d, 0x245f: 0x1e,
-	0x2460: 0x01, 0x2461: 0x8e, 0x2462: 0x03, 0x2463: 0x04, 0x2464: 0x05,
-	0x246a: 0x06, 0x246d: 0x07, 0x246f: 0x08,
-	0x2470: 0x13, 0x2473: 0x15,
-	// Block 0x92, offset 0x2480
-	0x24a0: 0x1f, 0x24a1: 0x20, 0x24a2: 0x21, 0x24a3: 0x22, 0x24a4: 0x23, 0x24a5: 0x24, 0x24a6: 0x25, 0x24a7: 0x26,
-	0x24a8: 0x27, 0x24a9: 0x28, 0x24aa: 0x29, 0x24ab: 0x2a, 0x24ac: 0x56c, 0x24ad: 0x56d, 0x24ae: 0x2d, 0x24af: 0x2e,
-	0x24b0: 0x2f, 0x24b1: 0x30, 0x24b2: 0x31, 0x24b3: 0x32, 0x24b4: 0x33, 0x24b5: 0x34, 0x24b6: 0x35, 0x24b7: 0x36,
-	0x24b8: 0x37, 0x24b9: 0x38, 0x24ba: 0x39, 0x24bb: 0x3a, 0x24bc: 0x3b, 0x24bd: 0x3c, 0x24be: 0x3d, 0x24bf: 0x3e,
-	// Block 0x93, offset 0x24c0
-	0x24c2: 0x01, 0x24c3: 0x02, 0x24c4: 0x03, 0x24c5: 0x04, 0x24c6: 0x05, 0x24c7: 0x06,
-	0x24c8: 0x07, 0x24c9: 0x08, 0x24ca: 0x09, 0x24cb: 0x0a, 0x24cc: 0x0b, 0x24cd: 0x0c, 0x24ce: 0x0d, 0x24cf: 0x0e,
-	0x24d0: 0x0f, 0x24d1: 0x10, 0x24d2: 0x11, 0x24d3: 0x12, 0x24d4: 0x13, 0x24d5: 0x14, 0x24d6: 0x15, 0x24d7: 0x16,
-	0x24d8: 0x17, 0x24d9: 0x18, 0x24da: 0x19, 0x24db: 0x1a, 0x24dc: 0x1b, 0x24dd: 0x1c, 0x24de: 0x1d, 0x24df: 0x1e,
-	0x24e0: 0x90, 0x24e1: 0x02, 0x24e2: 0x03, 0x24e3: 0x04, 0x24e4: 0x05,
-	0x24ea: 0x06, 0x24ed: 0x07, 0x24ef: 0x08,
-	0x24f0: 0x13, 0x24f3: 0x15,
-	// Block 0x94, offset 0x2500
-	0x2520: 0x1f, 0x2521: 0x20, 0x2522: 0x21, 0x2523: 0x22, 0x2524: 0x23, 0x2525: 0x24, 0x2526: 0x25, 0x2527: 0x26,
-	0x2528: 0x56e, 0x2529: 0x56f, 0x252a: 0x29, 0x252b: 0x2a, 0x252c: 0x2b, 0x252d: 0x2c, 0x252e: 0x2d, 0x252f: 0x2e,
-	0x2530: 0x2f, 0x2531: 0x30, 0x2532: 0x31, 0x2533: 0x32, 0x2534: 0x33, 0x2535: 0x34, 0x2536: 0x35, 0x2537: 0x36,
-	0x2538: 0x37, 0x2539: 0x38, 0x253a: 0x39, 0x253b: 0x3a, 0x253c: 0x3b, 0x253d: 0x3c, 0x253e: 0x3d, 0x253f: 0x3e,
-	// Block 0x95, offset 0x2540
-	0x2542: 0x01, 0x2543: 0x02, 0x2544: 0x03, 0x2545: 0x04, 0x2546: 0x05, 0x2547: 0x06,
-	0x2548: 0x07, 0x2549: 0x08, 0x254a: 0x09, 0x254b: 0x0a, 0x254c: 0x0b, 0x254d: 0x0c, 0x254e: 0x0d, 0x254f: 0x0e,
-	0x2550: 0x0f, 0x2551: 0x10, 0x2552: 0x11, 0x2553: 0x12, 0x2554: 0x13, 0x2555: 0x14, 0x2556: 0x15, 0x2557: 0x16,
-	0x2558: 0x17, 0x2559: 0x18, 0x255a: 0x19, 0x255b: 0x1a, 0x255c: 0x1b, 0x255d: 0x1c, 0x255e: 0x1d, 0x255f: 0x1e,
-	0x2560: 0x92, 0x2561: 0x02, 0x2562: 0x03, 0x2563: 0x04, 0x2564: 0x05,
-	0x256a: 0x06, 0x256d: 0x07, 0x256f: 0x08,
-	0x2570: 0x13, 0x2573: 0x15,
-	// Block 0x96, offset 0x2580
-	0x2580: 0x3f, 0x2581: 0x40, 0x2582: 0x41, 0x2583: 0x42, 0x2584: 0x43, 0x2585: 0x44, 0x2586: 0x45, 0x2587: 0x46,
-	0x2588: 0x47, 0x2589: 0x48, 0x258a: 0x49, 0x258b: 0x4a, 0x258c: 0x4b, 0x258d: 0x4c, 0x258e: 0x4d, 0x258f: 0x4e,
-	0x2590: 0x4f, 0x2591: 0x50, 0x2592: 0x51, 0x2593: 0x52, 0x2594: 0x53, 0x2595: 0x54, 0x2596: 0x55, 0x2597: 0x56,
-	0x2598: 0x57, 0x2599: 0x58, 0x259a: 0x59, 0x259b: 0x5a, 0x259c: 0x5b, 0x259d: 0x5c, 0x259e: 0x5d, 0x259f: 0x5e,
-	0x25a0: 0x5f, 0x25a1: 0x60, 0x25a2: 0x61, 0x25a3: 0x62, 0x25a4: 0x63, 0x25a5: 0x64, 0x25a6: 0x65, 0x25a7: 0x66,
-	0x25a8: 0x67, 0x25a9: 0x68, 0x25aa: 0x69, 0x25ac: 0x6a, 0x25ad: 0x6b, 0x25ae: 0x6c, 0x25af: 0x6d,
-	0x25b0: 0x6e, 0x25b1: 0x6f, 0x25b3: 0x70, 0x25b4: 0x71, 0x25b5: 0x72, 0x25b6: 0x73, 0x25b7: 0x74,
-	0x25b8: 0x575, 0x25b9: 0x576, 0x25ba: 0x77, 0x25bb: 0x577, 0x25bc: 0x79, 0x25bd: 0x7a, 0x25be: 0x7b, 0x25bf: 0x7c,
-	// Block 0x97, offset 0x25c0
-	0x25c2: 0x01, 0x25c3: 0x572, 0x25c4: 0x573, 0x25c5: 0x574, 0x25c6: 0x05, 0x25c7: 0x06,
-	0x25c8: 0x07, 0x25c9: 0x08, 0x25ca: 0x09, 0x25cb: 0x0a, 0x25cc: 0x0b, 0x25cd: 0x0c, 0x25ce: 0x0d, 0x25cf: 0x0e,
-	0x25d0: 0x0f, 0x25d1: 0x10, 0x25d2: 0x11, 0x25d3: 0x12, 0x25d4: 0x13, 0x25d5: 0x14, 0x25d6: 0x15, 0x25d7: 0x16,
-	0x25d8: 0x17, 0x25d9: 0x18, 0x25da: 0x19, 0x25db: 0x1a, 0x25dc: 0x1b, 0x25dd: 0x1c, 0x25de: 0x1d, 0x25df: 0x1e,
-	0x25e0: 0x01, 0x25e1: 0x94, 0x25e2: 0x03, 0x25e3: 0x04, 0x25e4: 0x05,
-	0x25ea: 0x06, 0x25ed: 0x07, 0x25ef: 0x08,
-	0x25f0: 0x13, 0x25f3: 0x15,
-	// Block 0x98, offset 0x2600
-	0x2600: 0x57c, 0x2601: 0x7e, 0x2602: 0x7f, 0x2603: 0x80, 0x2604: 0x81, 0x2605: 0x82, 0x2606: 0x83, 0x2607: 0x84,
-	0x2608: 0x85, 0x2609: 0x86, 0x260a: 0x87, 0x260b: 0x88, 0x260c: 0x89, 0x260d: 0x8a, 0x260e: 0x8b, 0x260f: 0x8c,
-	0x2610: 0x8d, 0x2611: 0x8e, 0x2612: 0x8f, 0x2613: 0x90, 0x2614: 0x91, 0x2615: 0x92, 0x2616: 0x93, 0x2617: 0x94,
-	0x2618: 0x95, 0x2619: 0x96, 0x261a: 0x97, 0x261b: 0x98, 0x261c: 0x99, 0x261d: 0x9a, 0x261e: 0x9b, 0x261f: 0x9c,
-	0x2620: 0x9d, 0x2621: 0x9e, 0x2622: 0x9f, 0x2623: 0xa0, 0x2624: 0xa1, 0x2625: 0xa2, 0x2626: 0xa3, 0x2627: 0xa4,
-	0x2628: 0xa5, 0x2629: 0xa6, 0x262a: 0xa7, 0x262b: 0xa8, 0x262c: 0xa9, 0x262d: 0xaa,
-	0x2630: 0xab, 0x2631: 0xac, 0x2632: 0xad, 0x2633: 0xae, 0x2634: 0xaf, 0x2635: 0xb0, 0x2636: 0xb1, 0x2637: 0xb2,
-	0x2638: 0xb3, 0x263a: 0xb4, 0x263b: 0xb5, 0x263c: 0xb6, 0x263d: 0xb7, 0x263e: 0xb8, 0x263f: 0xb9,
-	// Block 0x99, offset 0x2640
-	0x2664: 0xfb, 0x2665: 0xfc, 0x2666: 0xfd, 0x2667: 0xfe,
-	0x2668: 0xff, 0x2669: 0x100, 0x266a: 0x101, 0x266b: 0x102, 0x266c: 0x103, 0x266d: 0x104, 0x266e: 0x232, 0x266f: 0x57d,
-	0x2670: 0x233, 0x2671: 0x57e, 0x2672: 0x57f, 0x2673: 0x580, 0x2674: 0x581, 0x2675: 0x10c, 0x2676: 0x10d, 0x2677: 0x10e,
-	0x2678: 0x10f, 0x2679: 0x110, 0x267a: 0x111, 0x267b: 0x112, 0x267c: 0x113, 0x267d: 0x114, 0x267e: 0x115, 0x267f: 0x116,
-	// Block 0x9a, offset 0x2680
-	0x2682: 0x01, 0x2683: 0x02, 0x2684: 0x03, 0x2685: 0x04, 0x2686: 0x05, 0x2687: 0x06,
-	0x2688: 0x07, 0x2689: 0x08, 0x268a: 0x09, 0x268b: 0x0a, 0x268c: 0x0b, 0x268d: 0x0c, 0x268e: 0x0d, 0x268f: 0x0e,
-	0x2690: 0x0f, 0x2691: 0x10, 0x2692: 0x11, 0x2693: 0x12, 0x2694: 0x13, 0x2695: 0x14, 0x2696: 0x15, 0x2697: 0x16,
-	0x2698: 0x578, 0x2699: 0x579, 0x269a: 0x57a, 0x269b: 0x57b, 0x269c: 0x1b, 0x269d: 0x1c, 0x269e: 0x1d, 0x269f: 0x1e,
-	0x26a0: 0x01, 0x26a1: 0x02, 0x26a2: 0x96, 0x26a3: 0x04, 0x26a4: 0x05,
-	0x26aa: 0x06, 0x26ad: 0x07, 0x26af: 0x97,
-	0x26b0: 0x13, 0x26b3: 0x15,
-	// Block 0x9b, offset 0x26c0
-	0x26c0: 0x3f, 0x26c1: 0x40, 0x26c2: 0x41, 0x26c3: 0x42, 0x26c4: 0x43, 0x26c5: 0x44, 0x26c6: 0x45, 0x26c7: 0x46,
-	0x26c8: 0x47, 0x26c9: 0x48, 0x26ca: 0x49, 0x26cb: 0x4a, 0x26cc: 0x4b, 0x26cd: 0x4c, 0x26ce: 0x4d, 0x26cf: 0x4e,
-	0x26d0: 0x4f, 0x26d1: 0x50, 0x26d2: 0x51, 0x26d3: 0x52, 0x26d4: 0x53, 0x26d5: 0x54, 0x26d6: 0x55, 0x26d7: 0x56,
-	0x26d8: 0x57, 0x26d9: 0x58, 0x26da: 0x59, 0x26db: 0x5a, 0x26dc: 0x5b, 0x26dd: 0x5c, 0x26de: 0x5d, 0x26df: 0x5e,
-	0x26e0: 0x5f, 0x26e1: 0x60, 0x26e2: 0x61, 0x26e3: 0x62, 0x26e4: 0x63, 0x26e5: 0x64, 0x26e6: 0x65, 0x26e7: 0x66,
-	0x26e8: 0x67, 0x26e9: 0x68, 0x26ea: 0x69, 0x26ec: 0x6a, 0x26ed: 0x6b, 0x26ee: 0x6c, 0x26ef: 0x6d,
-	0x26f0: 0x6e, 0x26f1: 0x6f, 0x26f3: 0x70, 0x26f4: 0x71, 0x26f5: 0x72, 0x26f6: 0x73, 0x26f7: 0x74,
-	0x26f8: 0x75, 0x26f9: 0x76, 0x26fa: 0x588, 0x26fb: 0x78, 0x26fc: 0x79, 0x26fd: 0x7a, 0x26fe: 0x7b, 0x26ff: 0x7c,
-	// Block 0x9c, offset 0x2700
-	0x2702: 0x01, 0x2703: 0x584, 0x2704: 0x585, 0x2705: 0x586, 0x2706: 0x05, 0x2707: 0x06,
-	0x2708: 0x587, 0x2709: 0x08, 0x270a: 0x09, 0x270b: 0x0a, 0x270c: 0x0b, 0x270d: 0x0c, 0x270e: 0x0d, 0x270f: 0x0e,
-	0x2710: 0x0f, 0x2711: 0x10, 0x2712: 0x11, 0x2713: 0x12, 0x2714: 0x13, 0x2715: 0x14, 0x2716: 0x15, 0x2717: 0x16,
-	0x2718: 0x17, 0x2719: 0x18, 0x271a: 0x19, 0x271b: 0x1a, 0x271c: 0x1b, 0x271d: 0x1c, 0x271e: 0x1d, 0x271f: 0x1e,
-	0x2720: 0x01, 0x2721: 0x99, 0x2722: 0x03, 0x2723: 0x04, 0x2724: 0x05,
-	0x272a: 0x06, 0x272d: 0x07, 0x272f: 0x08,
-	0x2730: 0x13, 0x2733: 0x15,
-	// Block 0x9d, offset 0x2740
-	0x2740: 0x3f, 0x2741: 0x40, 0x2742: 0x41, 0x2743: 0x42, 0x2744: 0x43, 0x2745: 0x44, 0x2746: 0x45, 0x2747: 0x46,
-	0x2748: 0x47, 0x2749: 0x48, 0x274a: 0x49, 0x274b: 0x4a, 0x274c: 0x4b, 0x274d: 0x4c, 0x274e: 0x4d, 0x274f: 0x4e,
-	0x2750: 0x4f, 0x2751: 0x50, 0x2752: 0x51, 0x2753: 0x52, 0x2754: 0x53, 0x2755: 0x54, 0x2756: 0x55, 0x2757: 0x56,
-	0x2758: 0x57, 0x2759: 0x58, 0x275a: 0x59, 0x275b: 0x5a, 0x275c: 0x5b, 0x275d: 0x5c, 0x275e: 0x5d, 0x275f: 0x5e,
-	0x2760: 0x5f, 0x2761: 0x60, 0x2762: 0x61, 0x2763: 0x62, 0x2764: 0x63, 0x2765: 0x64, 0x2766: 0x65, 0x2767: 0x66,
-	0x2768: 0x67, 0x2769: 0x68, 0x276a: 0x69, 0x276c: 0x6a, 0x276d: 0x6b, 0x276e: 0x6c, 0x276f: 0x6d,
-	0x2770: 0x6e, 0x2771: 0x6f, 0x2773: 0x70, 0x2774: 0x71, 0x2775: 0x72, 0x2776: 0x1e5, 0x2777: 0x74,
-	0x2778: 0x75, 0x2779: 0x592, 0x277a: 0x593, 0x277b: 0x594, 0x277c: 0x79, 0x277d: 0x7a, 0x277e: 0x7b, 0x277f: 0x7c,
-	// Block 0x9e, offset 0x2780
-	0x2782: 0x01, 0x2783: 0x58b, 0x2784: 0x58c, 0x2785: 0x58d, 0x2786: 0x58e, 0x2787: 0x58f,
-	0x2788: 0x590, 0x2789: 0x08, 0x278a: 0x591, 0x278b: 0x0a, 0x278c: 0x0b, 0x278d: 0x0c, 0x278e: 0x0d, 0x278f: 0x0e,
-	0x2790: 0x0f, 0x2791: 0x10, 0x2792: 0x11, 0x2793: 0x12, 0x2794: 0x13, 0x2795: 0x14, 0x2796: 0x15, 0x2797: 0x16,
-	0x2798: 0x17, 0x2799: 0x18, 0x279a: 0x19, 0x279b: 0x1a, 0x279c: 0x1b, 0x279d: 0x1c, 0x279e: 0x1d, 0x279f: 0x1e,
-	0x27a0: 0x01, 0x27a1: 0x9b, 0x27a2: 0x45, 0x27a3: 0x04, 0x27a4: 0x05,
-	0x27aa: 0x06, 0x27ad: 0x07, 0x27af: 0x08,
-	0x27b0: 0x13, 0x27b3: 0x15,
-	// Block 0x9f, offset 0x27c0
-	0x27e0: 0x1f, 0x27e1: 0x20, 0x27e2: 0x21, 0x27e3: 0x22, 0x27e4: 0x23, 0x27e5: 0x24, 0x27e6: 0x25, 0x27e7: 0x26,
-	0x27e8: 0x27, 0x27e9: 0x28, 0x27ea: 0x29, 0x27eb: 0x2a, 0x27ec: 0x2b, 0x27ed: 0x2c, 0x27ee: 0x2d, 0x27ef: 0x2e,
-	0x27f0: 0x2f, 0x27f1: 0x30, 0x27f2: 0x31, 0x27f3: 0x32, 0x27f4: 0x33, 0x27f5: 0x34, 0x27f6: 0x595, 0x27f7: 0x36,
-	0x27f8: 0x37, 0x27f9: 0x38, 0x27fa: 0x39, 0x27fb: 0x3a, 0x27fc: 0x3b, 0x27fd: 0x3c, 0x27fe: 0x3d, 0x27ff: 0x3e,
-	// Block 0xa0, offset 0x2800
-	0x2802: 0x01, 0x2803: 0x02, 0x2804: 0x03, 0x2805: 0x04, 0x2806: 0x05, 0x2807: 0x06,
-	0x2808: 0x07, 0x2809: 0x08, 0x280a: 0x09, 0x280b: 0x0a, 0x280c: 0x0b, 0x280d: 0x0c, 0x280e: 0x0d, 0x280f: 0x0e,
-	0x2810: 0x0f, 0x2811: 0x10, 0x2812: 0x11, 0x2813: 0x12, 0x2814: 0x13, 0x2815: 0x14, 0x2816: 0x15, 0x2817: 0x16,
-	0x2818: 0x17, 0x2819: 0x18, 0x281a: 0x19, 0x281b: 0x1a, 0x281c: 0x1b, 0x281d: 0x1c, 0x281e: 0x1d, 0x281f: 0x1e,
-	0x2820: 0x9d, 0x2821: 0x02, 0x2822: 0x03, 0x2823: 0x04, 0x2824: 0x05,
-	0x282a: 0x06, 0x282d: 0x07, 0x282f: 0x08,
-	0x2830: 0x13, 0x2833: 0x15,
-	// Block 0xa1, offset 0x2840
-	0x2840: 0x3f, 0x2841: 0x40, 0x2842: 0x41, 0x2843: 0x42, 0x2844: 0x43, 0x2845: 0x44, 0x2846: 0x45, 0x2847: 0x46,
-	0x2848: 0x47, 0x2849: 0x48, 0x284a: 0x49, 0x284b: 0x4a, 0x284c: 0x4b, 0x284d: 0x4c, 0x284e: 0x4d, 0x284f: 0x4e,
-	0x2850: 0x4f, 0x2851: 0x50, 0x2852: 0x51, 0x2853: 0x52, 0x2854: 0x53, 0x2855: 0x54, 0x2856: 0x55, 0x2857: 0x56,
-	0x2858: 0x57, 0x2859: 0x58, 0x285a: 0x59, 0x285b: 0x5a, 0x285c: 0x5b, 0x285d: 0x5c, 0x285e: 0x5d, 0x285f: 0x5e,
-	0x2860: 0x5f, 0x2861: 0x60, 0x2862: 0x61, 0x2863: 0x62, 0x2864: 0x63, 0x2865: 0x64, 0x2866: 0x65, 0x2867: 0x66,
-	0x2868: 0x67, 0x2869: 0x68, 0x286a: 0x69, 0x286c: 0x6a, 0x286d: 0x6b, 0x286e: 0x6c, 0x286f: 0x6d,
-	0x2870: 0x6e, 0x2871: 0x6f, 0x2873: 0x70, 0x2874: 0x71, 0x2875: 0x72, 0x2876: 0x73, 0x2877: 0x74,
-	0x2878: 0x75, 0x2879: 0x1db, 0x287a: 0x77, 0x287b: 0x59a, 0x287c: 0x79, 0x287d: 0x7a, 0x287e: 0x7b, 0x287f: 0x7c,
-	// Block 0xa2, offset 0x2880
-	0x2882: 0x01, 0x2883: 0x598, 0x2884: 0x1d9, 0x2885: 0x1da, 0x2886: 0x05, 0x2887: 0x599,
-	0x2888: 0x07, 0x2889: 0x08, 0x288a: 0x09, 0x288b: 0x0a, 0x288c: 0x0b, 0x288d: 0x0c, 0x288e: 0x0d, 0x288f: 0x0e,
-	0x2890: 0x0f, 0x2891: 0x10, 0x2892: 0x11, 0x2893: 0x12, 0x2894: 0x13, 0x2895: 0x14, 0x2896: 0x15, 0x2897: 0x16,
-	0x2898: 0x17, 0x2899: 0x18, 0x289a: 0x19, 0x289b: 0x1a, 0x289c: 0x1b, 0x289d: 0x1c, 0x289e: 0x1d, 0x289f: 0x1e,
-	0x28a0: 0x01, 0x28a1: 0x9f, 0x28a2: 0x03, 0x28a3: 0x04, 0x28a4: 0x05,
-	0x28aa: 0x06, 0x28ad: 0x07, 0x28af: 0x08,
-	0x28b0: 0x13, 0x28b3: 0x15,
-	// Block 0xa3, offset 0x28c0
-	0x28c2: 0x01, 0x28c3: 0x02, 0x28c4: 0x59d, 0x28c5: 0x265, 0x28c6: 0x05, 0x28c7: 0x06,
-	0x28c8: 0x07, 0x28c9: 0x08, 0x28ca: 0x09, 0x28cb: 0x0a, 0x28cc: 0x0b, 0x28cd: 0x0c, 0x28ce: 0x0d, 0x28cf: 0x0e,
-	0x28d0: 0x0f, 0x28d1: 0x10, 0x28d2: 0x11, 0x28d3: 0x12, 0x28d4: 0x13, 0x28d5: 0x14, 0x28d6: 0x15, 0x28d7: 0x16,
-	0x28d8: 0x17, 0x28d9: 0x18, 0x28da: 0x19, 0x28db: 0x1a, 0x28dc: 0x1b, 0x28dd: 0x1c, 0x28de: 0x1d, 0x28df: 0x1e,
-	0x28e0: 0x01, 0x28e1: 0x53, 0x28e2: 0x03, 0x28e3: 0x04, 0x28e4: 0x05,
-	0x28ea: 0x06, 0x28ed: 0x07, 0x28ef: 0x08,
-	0x28f0: 0x13, 0x28f3: 0x15,
-	// Block 0xa4, offset 0x2900
-	0x2900: 0x3f, 0x2901: 0x40, 0x2902: 0x41, 0x2903: 0x42, 0x2904: 0x43, 0x2905: 0x44, 0x2906: 0x45, 0x2907: 0x46,
-	0x2908: 0x47, 0x2909: 0x48, 0x290a: 0x49, 0x290b: 0x4a, 0x290c: 0x4b, 0x290d: 0x4c, 0x290e: 0x4d, 0x290f: 0x4e,
-	0x2910: 0x4f, 0x2911: 0x50, 0x2912: 0x51, 0x2913: 0x52, 0x2914: 0x53, 0x2915: 0x54, 0x2916: 0x55, 0x2917: 0x56,
-	0x2918: 0x57, 0x2919: 0x58, 0x291a: 0x59, 0x291b: 0x5a, 0x291c: 0x5b, 0x291d: 0x5c, 0x291e: 0x5d, 0x291f: 0x5e,
-	0x2920: 0x5f, 0x2921: 0x60, 0x2922: 0x61, 0x2923: 0x62, 0x2924: 0x63, 0x2925: 0x64, 0x2926: 0x65, 0x2927: 0x66,
-	0x2928: 0x67, 0x2929: 0x68, 0x292a: 0x69, 0x292c: 0x6a, 0x292d: 0x6b, 0x292e: 0x6c, 0x292f: 0x6d,
-	0x2930: 0x6e, 0x2931: 0x6f, 0x2933: 0x70, 0x2934: 0x71, 0x2935: 0x72, 0x2936: 0x73, 0x2937: 0x74,
-	0x2938: 0x5a1, 0x2939: 0x76, 0x293a: 0x77, 0x293b: 0x78, 0x293c: 0x79, 0x293d: 0x7a, 0x293e: 0x7b, 0x293f: 0x7c,
-	// Block 0xa5, offset 0x2940
-	0x2942: 0x01, 0x2943: 0x5a0, 0x2944: 0x03, 0x2945: 0x04, 0x2946: 0x05, 0x2947: 0x06,
-	0x2948: 0x07, 0x2949: 0x08, 0x294a: 0x09, 0x294b: 0x0a, 0x294c: 0x0b, 0x294d: 0x0c, 0x294e: 0x0d, 0x294f: 0x0e,
-	0x2950: 0x0f, 0x2951: 0x10, 0x2952: 0x11, 0x2953: 0x12, 0x2954: 0x13, 0x2955: 0x14, 0x2956: 0x15, 0x2957: 0x16,
-	0x2958: 0x17, 0x2959: 0x18, 0x295a: 0x19, 0x295b: 0x1a, 0x295c: 0x1b, 0x295d: 0x1c, 0x295e: 0x1d, 0x295f: 0x1e,
-	0x2960: 0x01, 0x2961: 0xa2, 0x2962: 0x03, 0x2963: 0x04, 0x2964: 0x05,
-	0x296a: 0x06, 0x296d: 0x07, 0x296f: 0x08,
-	0x2970: 0x13, 0x2973: 0x15,
-	// Block 0xa6, offset 0x2980
-	0x2980: 0x3f, 0x2981: 0x40, 0x2982: 0x41, 0x2983: 0x42, 0x2984: 0x43, 0x2985: 0x44, 0x2986: 0x45, 0x2987: 0x46,
-	0x2988: 0x47, 0x2989: 0x48, 0x298a: 0x49, 0x298b: 0x4a, 0x298c: 0x4b, 0x298d: 0x4c, 0x298e: 0x4d, 0x298f: 0x4e,
-	0x2990: 0x4f, 0x2991: 0x50, 0x2992: 0x51, 0x2993: 0x52, 0x2994: 0x53, 0x2995: 0x54, 0x2996: 0x55, 0x2997: 0x56,
-	0x2998: 0x57, 0x2999: 0x58, 0x299a: 0x59, 0x299b: 0x5a, 0x299c: 0x5b, 0x299d: 0x5c, 0x299e: 0x5d, 0x299f: 0x5e,
-	0x29a0: 0x5f, 0x29a1: 0x60, 0x29a2: 0x61, 0x29a3: 0x62, 0x29a4: 0x63, 0x29a5: 0x64, 0x29a6: 0x65, 0x29a7: 0x66,
-	0x29a8: 0x67, 0x29a9: 0x68, 0x29aa: 0x69, 0x29ac: 0x6a, 0x29ad: 0x6b, 0x29ae: 0x6c, 0x29af: 0x6d,
-	0x29b0: 0x6e, 0x29b1: 0x6f, 0x29b3: 0x70, 0x29b4: 0x71, 0x29b5: 0x72, 0x29b6: 0x1e5, 0x29b7: 0x74,
-	0x29b8: 0x75, 0x29b9: 0x241, 0x29ba: 0x77, 0x29bb: 0x5a8, 0x29bc: 0x79, 0x29bd: 0x7a, 0x29be: 0x7b, 0x29bf: 0x7c,
-	// Block 0xa7, offset 0x29c0
-	0x29c2: 0x01, 0x29c3: 0x5a4, 0x29c4: 0x5a5, 0x29c5: 0x5a6, 0x29c6: 0x05, 0x29c7: 0x5a7,
-	0x29c8: 0x23f, 0x29c9: 0x08, 0x29ca: 0x09, 0x29cb: 0x0a, 0x29cc: 0x0b, 0x29cd: 0x0c, 0x29ce: 0x0d, 0x29cf: 0x0e,
-	0x29d0: 0x0f, 0x29d1: 0x10, 0x29d2: 0x11, 0x29d3: 0x12, 0x29d4: 0x13, 0x29d5: 0x14, 0x29d6: 0x15, 0x29d7: 0x16,
-	0x29d8: 0x17, 0x29d9: 0x18, 0x29da: 0x19, 0x29db: 0x1a, 0x29dc: 0x1b, 0x29dd: 0x1c, 0x29de: 0x1d, 0x29df: 0x1e,
-	0x29e0: 0x01, 0x29e1: 0xa4, 0x29e2: 0x45, 0x29e3: 0x04, 0x29e4: 0x05,
-	0x29ea: 0x06, 0x29ed: 0x07, 0x29ef: 0x08,
-	0x29f0: 0x13, 0x29f3: 0x15,
-	// Block 0xa8, offset 0x2a00
-	0x2a20: 0x1f, 0x2a21: 0x20, 0x2a22: 0x21, 0x2a23: 0x22, 0x2a24: 0x23, 0x2a25: 0x24, 0x2a26: 0x25, 0x2a27: 0x26,
-	0x2a28: 0x27, 0x2a29: 0x28, 0x2a2a: 0x29, 0x2a2b: 0x2a, 0x2a2c: 0x2b, 0x2a2d: 0x2c, 0x2a2e: 0x5a9, 0x2a2f: 0x2e,
-	0x2a30: 0x2f, 0x2a31: 0x30, 0x2a32: 0x31, 0x2a33: 0x32, 0x2a34: 0x33, 0x2a35: 0x34, 0x2a36: 0x35, 0x2a37: 0x36,
-	0x2a38: 0x37, 0x2a39: 0x38, 0x2a3a: 0x39, 0x2a3b: 0x3a, 0x2a3c: 0x3b, 0x2a3d: 0x3c, 0x2a3e: 0x3d, 0x2a3f: 0x3e,
-	// Block 0xa9, offset 0x2a40
-	0x2a42: 0x01, 0x2a43: 0x02, 0x2a44: 0x03, 0x2a45: 0x04, 0x2a46: 0x05, 0x2a47: 0x06,
-	0x2a48: 0x07, 0x2a49: 0x08, 0x2a4a: 0x09, 0x2a4b: 0x0a, 0x2a4c: 0x0b, 0x2a4d: 0x0c, 0x2a4e: 0x0d, 0x2a4f: 0x0e,
-	0x2a50: 0x0f, 0x2a51: 0x10, 0x2a52: 0x11, 0x2a53: 0x12, 0x2a54: 0x13, 0x2a55: 0x14, 0x2a56: 0x15, 0x2a57: 0x16,
-	0x2a58: 0x17, 0x2a59: 0x18, 0x2a5a: 0x19, 0x2a5b: 0x1a, 0x2a5c: 0x1b, 0x2a5d: 0x1c, 0x2a5e: 0x1d, 0x2a5f: 0x1e,
-	0x2a60: 0xa6, 0x2a61: 0x02, 0x2a62: 0x03, 0x2a63: 0x04, 0x2a64: 0x05,
-	0x2a6a: 0x06, 0x2a6d: 0x07, 0x2a6f: 0x08,
-	0x2a70: 0x13, 0x2a73: 0x15,
-	// Block 0xaa, offset 0x2a80
-	0x2aa0: 0x1f, 0x2aa1: 0x20, 0x2aa2: 0x21, 0x2aa3: 0x22, 0x2aa4: 0x23, 0x2aa5: 0x24, 0x2aa6: 0x25, 0x2aa7: 0x26,
-	0x2aa8: 0x27, 0x2aa9: 0x28, 0x2aaa: 0x29, 0x2aab: 0x2a, 0x2aac: 0x2b, 0x2aad: 0x2c, 0x2aae: 0x2d, 0x2aaf: 0x2e,
-	0x2ab0: 0x5aa, 0x2ab1: 0x30, 0x2ab2: 0x31, 0x2ab3: 0x32, 0x2ab4: 0x33, 0x2ab5: 0x34, 0x2ab6: 0x35, 0x2ab7: 0x36,
-	0x2ab8: 0x37, 0x2ab9: 0x38, 0x2aba: 0x39, 0x2abb: 0x3a, 0x2abc: 0x3b, 0x2abd: 0x3c, 0x2abe: 0x3d, 0x2abf: 0x3e,
-	// Block 0xab, offset 0x2ac0
-	0x2ac2: 0x01, 0x2ac3: 0x02, 0x2ac4: 0x03, 0x2ac5: 0x04, 0x2ac6: 0x05, 0x2ac7: 0x06,
-	0x2ac8: 0x07, 0x2ac9: 0x08, 0x2aca: 0x09, 0x2acb: 0x0a, 0x2acc: 0x0b, 0x2acd: 0x0c, 0x2ace: 0x0d, 0x2acf: 0x0e,
-	0x2ad0: 0x0f, 0x2ad1: 0x10, 0x2ad2: 0x11, 0x2ad3: 0x12, 0x2ad4: 0x13, 0x2ad5: 0x14, 0x2ad6: 0x15, 0x2ad7: 0x16,
-	0x2ad8: 0x17, 0x2ad9: 0x18, 0x2ada: 0x19, 0x2adb: 0x1a, 0x2adc: 0x1b, 0x2add: 0x1c, 0x2ade: 0x1d, 0x2adf: 0x1e,
-	0x2ae0: 0xa8, 0x2ae1: 0x02, 0x2ae2: 0x03, 0x2ae3: 0x04, 0x2ae4: 0x05,
-	0x2aea: 0x06, 0x2aed: 0x07, 0x2aef: 0x08,
-	0x2af0: 0x13, 0x2af3: 0x15,
-	// Block 0xac, offset 0x2b00
-	0x2b20: 0x1f, 0x2b21: 0x20, 0x2b22: 0x21, 0x2b23: 0x22, 0x2b24: 0x23, 0x2b25: 0x24, 0x2b26: 0x25, 0x2b27: 0x26,
-	0x2b28: 0x27, 0x2b29: 0x28, 0x2b2a: 0x29, 0x2b2b: 0x2a, 0x2b2c: 0x2b, 0x2b2d: 0x2c, 0x2b2e: 0x2d, 0x2b2f: 0x2e,
-	0x2b30: 0x2f, 0x2b31: 0x30, 0x2b32: 0x31, 0x2b33: 0x32, 0x2b34: 0x33, 0x2b35: 0x34, 0x2b36: 0x35, 0x2b37: 0x36,
-	0x2b38: 0x5ab, 0x2b39: 0x5ac, 0x2b3a: 0x39, 0x2b3b: 0x3a, 0x2b3c: 0x3b, 0x2b3d: 0x3c, 0x2b3e: 0x3d, 0x2b3f: 0x3e,
-	// Block 0xad, offset 0x2b40
-	0x2b42: 0x01, 0x2b43: 0x02, 0x2b44: 0x03, 0x2b45: 0x04, 0x2b46: 0x05, 0x2b47: 0x06,
-	0x2b48: 0x07, 0x2b49: 0x08, 0x2b4a: 0x09, 0x2b4b: 0x0a, 0x2b4c: 0x0b, 0x2b4d: 0x0c, 0x2b4e: 0x0d, 0x2b4f: 0x0e,
-	0x2b50: 0x0f, 0x2b51: 0x10, 0x2b52: 0x11, 0x2b53: 0x12, 0x2b54: 0x13, 0x2b55: 0x14, 0x2b56: 0x15, 0x2b57: 0x16,
-	0x2b58: 0x17, 0x2b59: 0x18, 0x2b5a: 0x19, 0x2b5b: 0x1a, 0x2b5c: 0x1b, 0x2b5d: 0x1c, 0x2b5e: 0x1d, 0x2b5f: 0x1e,
-	0x2b60: 0xaa, 0x2b61: 0x02, 0x2b62: 0x03, 0x2b63: 0x04, 0x2b64: 0x05,
-	0x2b6a: 0x06, 0x2b6d: 0x07, 0x2b6f: 0x08,
-	0x2b70: 0x13, 0x2b73: 0x15,
-	// Block 0xae, offset 0x2b80
-	0x2b80: 0x3f, 0x2b81: 0x40, 0x2b82: 0x41, 0x2b83: 0x42, 0x2b84: 0x43, 0x2b85: 0x44, 0x2b86: 0x45, 0x2b87: 0x46,
-	0x2b88: 0x47, 0x2b89: 0x48, 0x2b8a: 0x49, 0x2b8b: 0x4a, 0x2b8c: 0x4b, 0x2b8d: 0x4c, 0x2b8e: 0x4d, 0x2b8f: 0x4e,
-	0x2b90: 0x4f, 0x2b91: 0x50, 0x2b92: 0x51, 0x2b93: 0x52, 0x2b94: 0x53, 0x2b95: 0x54, 0x2b96: 0x55, 0x2b97: 0x56,
-	0x2b98: 0x57, 0x2b99: 0x58, 0x2b9a: 0x59, 0x2b9b: 0x5a, 0x2b9c: 0x5b, 0x2b9d: 0x5c, 0x2b9e: 0x5d, 0x2b9f: 0x5e,
-	0x2ba0: 0x5f, 0x2ba1: 0x60, 0x2ba2: 0x61, 0x2ba3: 0x62, 0x2ba4: 0x63, 0x2ba5: 0x64, 0x2ba6: 0x65, 0x2ba7: 0x66,
-	0x2ba8: 0x67, 0x2ba9: 0x68, 0x2baa: 0x69, 0x2bac: 0x6a, 0x2bad: 0x6b, 0x2bae: 0x6c, 0x2baf: 0x6d,
-	0x2bb0: 0x6e, 0x2bb1: 0x6f, 0x2bb3: 0x70, 0x2bb4: 0x71, 0x2bb5: 0x72, 0x2bb6: 0x73, 0x2bb7: 0x74,
-	0x2bb8: 0x5b5, 0x2bb9: 0x5b6, 0x2bba: 0x5b7, 0x2bbb: 0x5b8, 0x2bbc: 0x79, 0x2bbd: 0x7a, 0x2bbe: 0x7b, 0x2bbf: 0x7c,
-	// Block 0xaf, offset 0x2bc0
-	0x2bc2: 0x01, 0x2bc3: 0x5af, 0x2bc4: 0x5b0, 0x2bc5: 0x5b1, 0x2bc6: 0x05, 0x2bc7: 0x5b2,
-	0x2bc8: 0x5b3, 0x2bc9: 0x08, 0x2bca: 0x5b4, 0x2bcb: 0x0a, 0x2bcc: 0x0b, 0x2bcd: 0x0c, 0x2bce: 0x0d, 0x2bcf: 0x0e,
-	0x2bd0: 0x0f, 0x2bd1: 0x10, 0x2bd2: 0x11, 0x2bd3: 0x12, 0x2bd4: 0x13, 0x2bd5: 0x14, 0x2bd6: 0x15, 0x2bd7: 0x16,
-	0x2bd8: 0x17, 0x2bd9: 0x18, 0x2bda: 0x19, 0x2bdb: 0x1a, 0x2bdc: 0x1b, 0x2bdd: 0x1c, 0x2bde: 0x1d, 0x2bdf: 0x1e,
-	0x2be0: 0x01, 0x2be1: 0xac, 0x2be2: 0x03, 0x2be3: 0x04, 0x2be4: 0x05,
-	0x2bea: 0x06, 0x2bed: 0x07, 0x2bef: 0x08,
-	0x2bf0: 0x13, 0x2bf3: 0x15,
-	// Block 0xb0, offset 0x2c00
-	0x2c00: 0x3f, 0x2c01: 0x40, 0x2c02: 0x41, 0x2c03: 0x42, 0x2c04: 0x43, 0x2c05: 0x44, 0x2c06: 0x45, 0x2c07: 0x46,
-	0x2c08: 0x47, 0x2c09: 0x48, 0x2c0a: 0x49, 0x2c0b: 0x4a, 0x2c0c: 0x4b, 0x2c0d: 0x4c, 0x2c0e: 0x4d, 0x2c0f: 0x4e,
-	0x2c10: 0x4f, 0x2c11: 0x50, 0x2c12: 0x51, 0x2c13: 0x52, 0x2c14: 0x53, 0x2c15: 0x54, 0x2c16: 0x55, 0x2c17: 0x56,
-	0x2c18: 0x57, 0x2c19: 0x58, 0x2c1a: 0x59, 0x2c1b: 0x5a, 0x2c1c: 0x5b, 0x2c1d: 0x5c, 0x2c1e: 0x5d, 0x2c1f: 0x5e,
-	0x2c20: 0x5f, 0x2c21: 0x60, 0x2c22: 0x61, 0x2c23: 0x62, 0x2c24: 0x63, 0x2c25: 0x64, 0x2c26: 0x65, 0x2c27: 0x66,
-	0x2c28: 0x67, 0x2c29: 0x68, 0x2c2a: 0x69, 0x2c2c: 0x6a, 0x2c2d: 0x6b, 0x2c2e: 0x6c, 0x2c2f: 0x6d,
-	0x2c30: 0x6e, 0x2c31: 0x6f, 0x2c33: 0x70, 0x2c34: 0x71, 0x2c35: 0x72, 0x2c36: 0x73, 0x2c37: 0x74,
-	0x2c38: 0x1c7, 0x2c39: 0x1c8, 0x2c3a: 0x77, 0x2c3b: 0x1ca, 0x2c3c: 0x79, 0x2c3d: 0x7a, 0x2c3e: 0x7b, 0x2c3f: 0x7c,
-	// Block 0xb1, offset 0x2c40
-	0x2c40: 0x7d, 0x2c41: 0x7e, 0x2c42: 0x7f, 0x2c43: 0x80, 0x2c44: 0x81, 0x2c45: 0x5bb, 0x2c46: 0x83, 0x2c47: 0x84,
-	0x2c48: 0x85, 0x2c49: 0x86, 0x2c4a: 0x87, 0x2c4b: 0x88, 0x2c4c: 0x89, 0x2c4d: 0x8a, 0x2c4e: 0x8b, 0x2c4f: 0x8c,
-	0x2c50: 0x8d, 0x2c51: 0x8e, 0x2c52: 0x8f, 0x2c53: 0x90, 0x2c54: 0x91, 0x2c55: 0x92, 0x2c56: 0x93, 0x2c57: 0x94,
-	0x2c58: 0x95, 0x2c59: 0x96, 0x2c5a: 0x97, 0x2c5b: 0x98, 0x2c5c: 0x99, 0x2c5d: 0x9a, 0x2c5e: 0x9b, 0x2c5f: 0x9c,
-	0x2c60: 0x9d, 0x2c61: 0x9e, 0x2c62: 0x9f, 0x2c63: 0xa0, 0x2c64: 0xa1, 0x2c65: 0xa2, 0x2c66: 0xa3, 0x2c67: 0xa4,
-	0x2c68: 0xa5, 0x2c69: 0xa6, 0x2c6a: 0xa7, 0x2c6b: 0xa8, 0x2c6c: 0xa9, 0x2c6d: 0xaa,
-	0x2c70: 0xab, 0x2c71: 0xac, 0x2c72: 0xad, 0x2c73: 0xae, 0x2c74: 0xaf, 0x2c75: 0xb0, 0x2c76: 0xb1, 0x2c77: 0xb2,
-	0x2c78: 0xb3, 0x2c7a: 0xb4, 0x2c7b: 0xb5, 0x2c7c: 0xb6, 0x2c7d: 0xb7, 0x2c7e: 0xb8, 0x2c7f: 0xb9,
-	// Block 0xb2, offset 0x2c80
-	0x2c80: 0xba, 0x2c81: 0xbb, 0x2c82: 0xbc, 0x2c83: 0xbd, 0x2c84: 0xbe, 0x2c85: 0xbf, 0x2c86: 0xc0, 0x2c87: 0xc1,
-	0x2c88: 0xc2, 0x2c89: 0xc3, 0x2c8a: 0xc4, 0x2c8b: 0xc5, 0x2c8c: 0xc6, 0x2c8d: 0x1cd, 0x2c8e: 0xc8, 0x2c8f: 0xc9,
-	// Block 0xb3, offset 0x2cc0
-	0x2cc0: 0x18b, 0x2cc1: 0x18c, 0x2cc2: 0x18d, 0x2cc3: 0x18e, 0x2cc4: 0x5bc, 0x2cc5: 0x190, 0x2cc6: 0x191, 0x2cc7: 0x192,
-	0x2cc8: 0x193, 0x2cc9: 0x194, 0x2ccc: 0x195, 0x2ccd: 0x196, 0x2cce: 0x197, 0x2ccf: 0x198,
-	0x2cd0: 0x199, 0x2cd1: 0x19a, 0x2cd2: 0x19b, 0x2cd3: 0x19c, 0x2cd4: 0x19d, 0x2cd5: 0x19e, 0x2cd7: 0x19f,
-	0x2cd8: 0x1a0, 0x2cd9: 0x1a1, 0x2cda: 0x1a2, 0x2cdb: 0x1a3, 0x2cdc: 0x1a4, 0x2cdd: 0x1a5,
-	// Block 0xb4, offset 0x2d00
-	0x2d10: 0x09, 0x2d11: 0x0a, 0x2d12: 0x0b, 0x2d13: 0x0c, 0x2d16: 0x0d,
-	0x2d1b: 0x0e, 0x2d1d: 0x0f, 0x2d1e: 0x10, 0x2d1f: 0xb1,
-	0x2d2f: 0x12,
-	// Block 0xb5, offset 0x2d40
-	0x2d42: 0x01, 0x2d43: 0x1c0, 0x2d44: 0x1c1, 0x2d45: 0x1c2, 0x2d46: 0x05, 0x2d47: 0x1c4,
-	0x2d48: 0x1c5, 0x2d49: 0x08, 0x2d4a: 0x09, 0x2d4b: 0x0a, 0x2d4c: 0x0b, 0x2d4d: 0x0c, 0x2d4e: 0x0d, 0x2d4f: 0x0e,
-	0x2d50: 0x0f, 0x2d51: 0x10, 0x2d52: 0x11, 0x2d53: 0x12, 0x2d54: 0x13, 0x2d55: 0x14, 0x2d56: 0x15, 0x2d57: 0x16,
-	0x2d58: 0x17, 0x2d59: 0x18, 0x2d5a: 0x19, 0x2d5b: 0x1a, 0x2d5c: 0x1b, 0x2d5d: 0x1c, 0x2d5e: 0x1d, 0x2d5f: 0x1e,
-	0x2d60: 0x01, 0x2d61: 0xae, 0x2d62: 0xaf, 0x2d63: 0xb0, 0x2d64: 0x05,
-	0x2d6a: 0x06, 0x2d6d: 0x07, 0x2d6f: 0x08,
-	0x2d70: 0xb2, 0x2d73: 0x15,
-	// Block 0xb6, offset 0x2d80
-	0x2d82: 0x01, 0x2d83: 0x02, 0x2d84: 0x03, 0x2d85: 0x04, 0x2d86: 0x05, 0x2d87: 0x06,
-	0x2d88: 0x07, 0x2d89: 0x08, 0x2d8a: 0x09, 0x2d8b: 0x0a, 0x2d8c: 0x0b, 0x2d8d: 0x0c, 0x2d8e: 0x0d, 0x2d8f: 0x0e,
-	0x2d90: 0x0f, 0x2d91: 0x10, 0x2d92: 0x5bd, 0x2d93: 0x12, 0x2d94: 0x13, 0x2d95: 0x14, 0x2d96: 0x15, 0x2d97: 0x16,
-	0x2d98: 0x17, 0x2d99: 0x18, 0x2d9a: 0x19, 0x2d9b: 0x1a, 0x2d9c: 0x1b, 0x2d9d: 0x1c, 0x2d9e: 0x1d, 0x2d9f: 0x1e,
-	0x2da0: 0x01, 0x2da1: 0x02, 0x2da2: 0x03, 0x2da3: 0x04, 0x2da4: 0x05,
-	0x2daa: 0x06, 0x2dad: 0x07, 0x2daf: 0x08,
-	0x2db0: 0x13, 0x2db3: 0x15,
-	// Block 0xb7, offset 0x2dc0
-	0x2de4: 0xfb, 0x2de5: 0xfc, 0x2de6: 0xfd, 0x2de7: 0xfe,
-	0x2de8: 0xff, 0x2de9: 0x100, 0x2dea: 0x101, 0x2deb: 0x102, 0x2dec: 0x103, 0x2ded: 0x104, 0x2dee: 0x232, 0x2def: 0x106,
-	0x2df0: 0x5c2, 0x2df1: 0x5c3, 0x2df2: 0x5c4, 0x2df3: 0x5c5, 0x2df4: 0x5c6, 0x2df5: 0x10c, 0x2df6: 0x10d, 0x2df7: 0x10e,
-	0x2df8: 0x10f, 0x2df9: 0x110, 0x2dfa: 0x111, 0x2dfb: 0x5c7, 0x2dfc: 0x113, 0x2dfd: 0x114, 0x2dfe: 0x115, 0x2dff: 0x116,
-	// Block 0xb8, offset 0x2e00
-	0x2e02: 0x01, 0x2e03: 0x02, 0x2e04: 0x03, 0x2e05: 0x04, 0x2e06: 0x05, 0x2e07: 0x06,
-	0x2e08: 0x07, 0x2e09: 0x08, 0x2e0a: 0x09, 0x2e0b: 0x0a, 0x2e0c: 0x0b, 0x2e0d: 0x0c, 0x2e0e: 0x0d, 0x2e0f: 0x0e,
-	0x2e10: 0x0f, 0x2e11: 0x10, 0x2e12: 0x11, 0x2e13: 0x12, 0x2e14: 0x13, 0x2e15: 0x14, 0x2e16: 0x15, 0x2e17: 0x16,
-	0x2e18: 0x5be, 0x2e19: 0x5bf, 0x2e1a: 0x5c0, 0x2e1b: 0x5c1, 0x2e1c: 0x1b, 0x2e1d: 0x1c, 0x2e1e: 0x1d, 0x2e1f: 0x1e,
-	0x2e20: 0x01, 0x2e21: 0x02, 0x2e22: 0x03, 0x2e23: 0x04, 0x2e24: 0x05,
-	0x2e2a: 0x06, 0x2e2d: 0x07, 0x2e2f: 0xb5,
-	0x2e30: 0x13, 0x2e33: 0x15,
-	// Block 0xb9, offset 0x2e40
-	0x2e40: 0x3f, 0x2e41: 0x40, 0x2e42: 0x41, 0x2e43: 0x42, 0x2e44: 0x43, 0x2e45: 0x44, 0x2e46: 0x45, 0x2e47: 0x46,
-	0x2e48: 0x47, 0x2e49: 0x48, 0x2e4a: 0x49, 0x2e4b: 0x4a, 0x2e4c: 0x4b, 0x2e4d: 0x4c, 0x2e4e: 0x4d, 0x2e4f: 0x4e,
-	0x2e50: 0x4f, 0x2e51: 0x50, 0x2e52: 0x51, 0x2e53: 0x52, 0x2e54: 0x53, 0x2e55: 0x54, 0x2e56: 0x55, 0x2e57: 0x56,
-	0x2e58: 0x57, 0x2e59: 0x58, 0x2e5a: 0x59, 0x2e5b: 0x5a, 0x2e5c: 0x5b, 0x2e5d: 0x5c, 0x2e5e: 0x5d, 0x2e5f: 0x5e,
-	0x2e60: 0x5f, 0x2e61: 0x60, 0x2e62: 0x61, 0x2e63: 0x62, 0x2e64: 0x63, 0x2e65: 0x64, 0x2e66: 0x65, 0x2e67: 0x66,
-	0x2e68: 0x67, 0x2e69: 0x68, 0x2e6a: 0x69, 0x2e6c: 0x6a, 0x2e6d: 0x6b, 0x2e6e: 0x6c, 0x2e6f: 0x6d,
-	0x2e70: 0x6e, 0x2e71: 0x6f, 0x2e73: 0x70, 0x2e74: 0x71, 0x2e75: 0x72, 0x2e76: 0x73, 0x2e77: 0x74,
-	0x2e78: 0x5d4, 0x2e79: 0x5d5, 0x2e7a: 0x5d6, 0x2e7b: 0x5d7, 0x2e7c: 0x5d8, 0x2e7d: 0x5d9, 0x2e7e: 0x5da, 0x2e7f: 0x5db,
-	// Block 0xba, offset 0x2e80
-	0x2e82: 0x01, 0x2e83: 0x5ca, 0x2e84: 0x5cb, 0x2e85: 0x5cc, 0x2e86: 0x5cd, 0x2e87: 0x5ce,
-	0x2e88: 0x5cf, 0x2e89: 0x08, 0x2e8a: 0x09, 0x2e8b: 0x0a, 0x2e8c: 0x5d0, 0x2e8d: 0x5d1, 0x2e8e: 0x5d2, 0x2e8f: 0x5d3,
-	0x2e90: 0x0f, 0x2e91: 0x10, 0x2e92: 0x11, 0x2e93: 0x12, 0x2e94: 0x13, 0x2e95: 0x14, 0x2e96: 0x15, 0x2e97: 0x16,
-	0x2e98: 0x17, 0x2e99: 0x18, 0x2e9a: 0x19, 0x2e9b: 0x1a, 0x2e9c: 0x1b, 0x2e9d: 0x1c, 0x2e9e: 0x1d, 0x2e9f: 0x1e,
-	0x2ea0: 0x01, 0x2ea1: 0xb7, 0x2ea2: 0x03, 0x2ea3: 0x04, 0x2ea4: 0x05,
-	0x2eaa: 0x06, 0x2ead: 0x07, 0x2eaf: 0x08,
-	0x2eb0: 0x13, 0x2eb3: 0x15,
-	// Block 0xbb, offset 0x2ec0
-	0x2ec2: 0x01, 0x2ec3: 0x5de, 0x2ec4: 0x03, 0x2ec5: 0x04, 0x2ec6: 0x05, 0x2ec7: 0x06,
-	0x2ec8: 0x07, 0x2ec9: 0x08, 0x2eca: 0x09, 0x2ecb: 0x0a, 0x2ecc: 0x0b, 0x2ecd: 0x0c, 0x2ece: 0x0d, 0x2ecf: 0x0e,
-	0x2ed0: 0x0f, 0x2ed1: 0x10, 0x2ed2: 0x11, 0x2ed3: 0x12, 0x2ed4: 0x13, 0x2ed5: 0x14, 0x2ed6: 0x15, 0x2ed7: 0x16,
-	0x2ed8: 0x17, 0x2ed9: 0x18, 0x2eda: 0x19, 0x2edb: 0x1a, 0x2edc: 0x1b, 0x2edd: 0x1c, 0x2ede: 0x1d, 0x2edf: 0x1e,
-	0x2ee0: 0x01, 0x2ee1: 0x02, 0x2ee2: 0x03, 0x2ee3: 0x04, 0x2ee4: 0x05,
-	0x2eea: 0x06, 0x2eed: 0x07, 0x2eef: 0x08,
-	0x2ef0: 0x13, 0x2ef3: 0x15,
-	// Block 0xbc, offset 0x2f00
-	0x2f00: 0x3f, 0x2f01: 0x40, 0x2f02: 0x41, 0x2f03: 0x42, 0x2f04: 0x43, 0x2f05: 0x44, 0x2f06: 0x45, 0x2f07: 0x46,
-	0x2f08: 0x47, 0x2f09: 0x48, 0x2f0a: 0x49, 0x2f0b: 0x4a, 0x2f0c: 0x4b, 0x2f0d: 0x4c, 0x2f0e: 0x4d, 0x2f0f: 0x4e,
-	0x2f10: 0x4f, 0x2f11: 0x50, 0x2f12: 0x51, 0x2f13: 0x52, 0x2f14: 0x53, 0x2f15: 0x54, 0x2f16: 0x55, 0x2f17: 0x56,
-	0x2f18: 0x57, 0x2f19: 0x58, 0x2f1a: 0x59, 0x2f1b: 0x5a, 0x2f1c: 0x5b, 0x2f1d: 0x5c, 0x2f1e: 0x5d, 0x2f1f: 0x5e,
-	0x2f20: 0x5f, 0x2f21: 0x60, 0x2f22: 0x61, 0x2f23: 0x62, 0x2f24: 0x63, 0x2f25: 0x64, 0x2f26: 0x65, 0x2f27: 0x66,
-	0x2f28: 0x67, 0x2f29: 0x68, 0x2f2a: 0x69, 0x2f2c: 0x6a, 0x2f2d: 0x6b, 0x2f2e: 0x6c, 0x2f2f: 0x6d,
-	0x2f30: 0x6e, 0x2f31: 0x6f, 0x2f33: 0x70, 0x2f34: 0x71, 0x2f35: 0x72, 0x2f36: 0x73, 0x2f37: 0x74,
-	0x2f38: 0x75, 0x2f39: 0x5e1, 0x2f3a: 0x5e2, 0x2f3b: 0x5e3, 0x2f3c: 0x79, 0x2f3d: 0x7a, 0x2f3e: 0x7b, 0x2f3f: 0x7c,
-	// Block 0xbd, offset 0x2f40
-	0x2f42: 0x01, 0x2f43: 0x02, 0x2f44: 0x03, 0x2f45: 0x04, 0x2f46: 0x05, 0x2f47: 0x06,
-	0x2f48: 0x07, 0x2f49: 0x08, 0x2f4a: 0x09, 0x2f4b: 0x0a, 0x2f4c: 0x0b, 0x2f4d: 0x0c, 0x2f4e: 0x0d, 0x2f4f: 0x0e,
-	0x2f50: 0x0f, 0x2f51: 0x10, 0x2f52: 0x11, 0x2f53: 0x12, 0x2f54: 0x13, 0x2f55: 0x14, 0x2f56: 0x15, 0x2f57: 0x16,
-	0x2f58: 0x17, 0x2f59: 0x18, 0x2f5a: 0x19, 0x2f5b: 0x1a, 0x2f5c: 0x1b, 0x2f5d: 0x1c, 0x2f5e: 0x1d, 0x2f5f: 0x1e,
-	0x2f60: 0x01, 0x2f61: 0xba, 0x2f62: 0x03, 0x2f63: 0x04, 0x2f64: 0x05,
-	0x2f6a: 0x06, 0x2f6d: 0x07, 0x2f6f: 0x08,
-	0x2f70: 0x13, 0x2f73: 0x15,
-	// Block 0xbe, offset 0x2f80
-	0x2f80: 0x3f, 0x2f81: 0x40, 0x2f82: 0x41, 0x2f83: 0x42, 0x2f84: 0x43, 0x2f85: 0x44, 0x2f86: 0x45, 0x2f87: 0x46,
-	0x2f88: 0x47, 0x2f89: 0x48, 0x2f8a: 0x49, 0x2f8b: 0x4a, 0x2f8c: 0x4b, 0x2f8d: 0x4c, 0x2f8e: 0x4d, 0x2f8f: 0x4e,
-	0x2f90: 0x4f, 0x2f91: 0x50, 0x2f92: 0x51, 0x2f93: 0x52, 0x2f94: 0x53, 0x2f95: 0x54, 0x2f96: 0x55, 0x2f97: 0x56,
-	0x2f98: 0x57, 0x2f99: 0x58, 0x2f9a: 0x59, 0x2f9b: 0x5a, 0x2f9c: 0x5b, 0x2f9d: 0x5c, 0x2f9e: 0x5d, 0x2f9f: 0x5e,
-	0x2fa0: 0x5f, 0x2fa1: 0x60, 0x2fa2: 0x61, 0x2fa3: 0x62, 0x2fa4: 0x63, 0x2fa5: 0x64, 0x2fa6: 0x65, 0x2fa7: 0x66,
-	0x2fa8: 0x67, 0x2fa9: 0x68, 0x2faa: 0x69, 0x2fac: 0x6a, 0x2fad: 0x6b, 0x2fae: 0x6c, 0x2faf: 0x6d,
-	0x2fb0: 0x6e, 0x2fb1: 0x6f, 0x2fb3: 0x70, 0x2fb4: 0x71, 0x2fb5: 0x72, 0x2fb6: 0x73, 0x2fb7: 0x74,
-	0x2fb8: 0x5eb, 0x2fb9: 0x5ec, 0x2fba: 0x5ed, 0x2fbb: 0x5ee, 0x2fbc: 0x79, 0x2fbd: 0x7a, 0x2fbe: 0x7b, 0x2fbf: 0x7c,
-	// Block 0xbf, offset 0x2fc0
-	0x2fc0: 0x7d, 0x2fc1: 0x7e, 0x2fc2: 0x7f, 0x2fc3: 0x80, 0x2fc4: 0x81, 0x2fc5: 0x82, 0x2fc6: 0x83, 0x2fc7: 0x84,
-	0x2fc8: 0x85, 0x2fc9: 0x86, 0x2fca: 0x87, 0x2fcb: 0x88, 0x2fcc: 0x89, 0x2fcd: 0x8a, 0x2fce: 0x8b, 0x2fcf: 0x8c,
-	0x2fd0: 0x8d, 0x2fd1: 0x8e, 0x2fd2: 0x8f, 0x2fd3: 0x90, 0x2fd4: 0x91, 0x2fd5: 0x92, 0x2fd6: 0x93, 0x2fd7: 0x94,
-	0x2fd8: 0x95, 0x2fd9: 0x96, 0x2fda: 0x97, 0x2fdb: 0x98, 0x2fdc: 0x99, 0x2fdd: 0x9a, 0x2fde: 0x9b, 0x2fdf: 0x9c,
-	0x2fe0: 0x9d, 0x2fe1: 0x9e, 0x2fe2: 0x9f, 0x2fe3: 0xa0, 0x2fe4: 0xa1, 0x2fe5: 0xa2, 0x2fe6: 0xa3, 0x2fe7: 0xa4,
-	0x2fe8: 0xa5, 0x2fe9: 0xa6, 0x2fea: 0xa7, 0x2feb: 0xa8, 0x2fec: 0xa9, 0x2fed: 0xaa,
-	0x2ff0: 0xab, 0x2ff1: 0xac, 0x2ff2: 0xad, 0x2ff3: 0xae, 0x2ff4: 0xaf, 0x2ff5: 0xb0, 0x2ff6: 0xb1, 0x2ff7: 0xb2,
-	0x2ff8: 0xb3, 0x2ffa: 0x5ef, 0x2ffb: 0x5f0, 0x2ffc: 0x5f1, 0x2ffd: 0x5f2, 0x2ffe: 0x5f3, 0x2fff: 0x5f4,
-	// Block 0xc0, offset 0x3000
-	0x3000: 0x5f5, 0x3001: 0xbb, 0x3002: 0xbc, 0x3003: 0xbd, 0x3004: 0xbe, 0x3005: 0xbf, 0x3006: 0x5f6, 0x3007: 0xc1,
-	0x3008: 0x5f7, 0x3009: 0x5f8, 0x300a: 0x5f9, 0x300b: 0x5fa, 0x300c: 0xc6, 0x300d: 0x5fb, 0x300e: 0xc8, 0x300f: 0x5fc,
-	0x3010: 0x5fd, 0x3011: 0x5fe, 0x3012: 0x5ff, 0x3013: 0x600, 0x3014: 0x601, 0x3015: 0x602, 0x3016: 0x603, 0x3017: 0x604,
-	0x3018: 0x605, 0x3019: 0x606, 0x301a: 0x607, 0x301b: 0x608, 0x301c: 0x609, 0x301d: 0x60a, 0x301e: 0x60b, 0x301f: 0x60c,
-	0x3020: 0x60d, 0x3021: 0x60e, 0x3022: 0x60f, 0x3023: 0x610, 0x3024: 0x611, 0x3025: 0x612, 0x3026: 0x613, 0x3027: 0x614,
-	0x3028: 0x615, 0x3029: 0x616, 0x302a: 0x617, 0x302b: 0x618, 0x302c: 0x619, 0x302d: 0x61a, 0x302e: 0x61b, 0x302f: 0x61c,
-	0x3030: 0x61d, 0x3031: 0x61e, 0x3032: 0x61f, 0x3033: 0x620, 0x3034: 0x621, 0x3035: 0x622, 0x3036: 0x623, 0x3037: 0x624,
-	0x3038: 0x625, 0x3039: 0x626, 0x303a: 0x627, 0x303b: 0x628, 0x303c: 0x629, 0x303d: 0x62a, 0x303e: 0x62b, 0x303f: 0x62c,
-	// Block 0xc1, offset 0x3040
-	0x3040: 0x62d, 0x3041: 0x62e, 0x3042: 0x62f, 0x3043: 0x630, 0x3044: 0x631, 0x3045: 0x632, 0x3046: 0x633, 0x3047: 0x634,
-	0x3048: 0x635, 0x3049: 0x636, 0x304a: 0x637, 0x304b: 0x638, 0x304c: 0x639, 0x304d: 0x63a, 0x304e: 0x63b, 0x304f: 0x63c,
-	0x3050: 0x63d, 0x3051: 0x63e, 0x3052: 0x63f, 0x3053: 0x640, 0x3054: 0x641, 0x3055: 0x642, 0x3056: 0x643, 0x3057: 0x644,
-	0x3058: 0x645, 0x3059: 0x646, 0x305a: 0x647, 0x305b: 0x648, 0x305c: 0x649, 0x305d: 0x64a, 0x305e: 0x64b, 0x305f: 0x64c,
-	0x3060: 0x64d, 0x3061: 0x64e, 0x3062: 0x64f, 0x3063: 0x650, 0x3064: 0x651, 0x3065: 0x652, 0x3066: 0x653, 0x3067: 0x654,
-	0x3068: 0x655, 0x3069: 0x656, 0x306a: 0x657, 0x306b: 0x658, 0x306c: 0x659, 0x306d: 0x65a, 0x306e: 0x65b, 0x306f: 0x65c,
-	0x3070: 0x65d, 0x3071: 0x65e, 0x3072: 0x65f, 0x3073: 0x660, 0x3074: 0x661, 0x3075: 0x662, 0x3076: 0x663, 0x3077: 0xca,
-	0x3078: 0x664, 0x3079: 0x665, 0x307a: 0x666, 0x307b: 0x667, 0x307c: 0x668, 0x307d: 0x669, 0x307e: 0x66a, 0x307f: 0x66b,
-	// Block 0xc2, offset 0x3080
-	0x3080: 0x66c, 0x3081: 0x66d, 0x3082: 0x66e, 0x3083: 0x66f, 0x3084: 0x670, 0x3085: 0x671, 0x3086: 0x672, 0x3087: 0x673,
-	0x3088: 0x674, 0x3089: 0x675, 0x308a: 0x676, 0x308b: 0x677, 0x308c: 0x678, 0x308d: 0x679, 0x308e: 0x67a, 0x308f: 0x67b,
-	0x3090: 0x67c, 0x3091: 0x67d, 0x3092: 0x67e, 0x3093: 0x67f, 0x3094: 0x680, 0x3095: 0x681, 0x3096: 0x682, 0x3097: 0x683,
-	0x3098: 0x684, 0x3099: 0x685, 0x309a: 0x686, 0x309b: 0x687, 0x309c: 0x688, 0x309d: 0x689, 0x309e: 0x68a, 0x309f: 0x68b,
-	0x30a0: 0x68c, 0x30a1: 0x68d, 0x30a2: 0x68e, 0x30a3: 0x68f, 0x30a4: 0x690, 0x30a5: 0x691, 0x30a6: 0x692, 0x30a7: 0x693,
-	0x30a8: 0x694, 0x30a9: 0x695, 0x30aa: 0x696, 0x30ab: 0x697, 0x30ac: 0x698, 0x30ad: 0x699, 0x30ae: 0x69a, 0x30af: 0x69b,
-	0x30b0: 0x69c, 0x30b1: 0x69d, 0x30b2: 0x69e, 0x30b3: 0x69f, 0x30b4: 0x6a0, 0x30b5: 0x6a1, 0x30b6: 0x6a2, 0x30b7: 0x6a3,
-	0x30b8: 0x6a4, 0x30b9: 0x6a5, 0x30ba: 0x6a6, 0x30bb: 0x6a7, 0x30bc: 0x6a8, 0x30bd: 0x6a9, 0x30be: 0x6aa, 0x30bf: 0x6ab,
-	// Block 0xc3, offset 0x30c0
-	0x30c0: 0x6ac, 0x30c1: 0x6ad, 0x30c2: 0x6ae, 0x30c3: 0x6af, 0x30c4: 0x6b0, 0x30c5: 0x6b1, 0x30c6: 0x6b2, 0x30c7: 0x6b3,
-	0x30c8: 0x6b4, 0x30c9: 0x6b5, 0x30ca: 0x6b6, 0x30cb: 0x6b7, 0x30cc: 0x6b8, 0x30cd: 0x6b9, 0x30ce: 0x6ba, 0x30cf: 0x6bb,
-	0x30d0: 0x6bc, 0x30d1: 0x6bd, 0x30d2: 0x6be, 0x30d3: 0x6bf, 0x30d4: 0x6c0, 0x30d5: 0x6c1, 0x30d6: 0x6c2, 0x30d7: 0x6c3,
-	0x30d8: 0x6c4, 0x30d9: 0x6c5, 0x30da: 0x6c6, 0x30db: 0x6c7, 0x30dc: 0x6c8, 0x30dd: 0x6c9, 0x30de: 0x6ca, 0x30df: 0x6cb,
-	0x30e0: 0x6cc, 0x30e1: 0x6cd, 0x30e2: 0x6ce, 0x30e3: 0x6cf, 0x30e4: 0x6d0, 0x30e5: 0x6d1, 0x30e6: 0x6d2, 0x30e7: 0x6d3,
-	0x30e8: 0x6d4, 0x30e9: 0x6d5, 0x30ea: 0x6d6, 0x30eb: 0x6d7, 0x30ec: 0x6d8, 0x30ed: 0x6d9, 0x30ee: 0x6da, 0x30ef: 0x6db,
-	0x30f0: 0x6dc, 0x30f1: 0x6dd, 0x30f2: 0x6de, 0x30f3: 0x6df, 0x30f4: 0x6e0, 0x30f5: 0x6e1, 0x30f6: 0x6e2, 0x30f7: 0x6e3,
-	0x30f8: 0x6e4, 0x30f9: 0x6e5, 0x30fa: 0x6e6, 0x30fb: 0x6e7, 0x30fc: 0x6e8, 0x30fd: 0x6e9, 0x30fe: 0x6ea, 0x30ff: 0x6eb,
-	// Block 0xc4, offset 0x3100
-	0x3100: 0x6ec, 0x3101: 0x6ed, 0x3102: 0x6ee, 0x3103: 0x6ef, 0x3104: 0x6f0, 0x3105: 0x6f1, 0x3106: 0x6f2, 0x3107: 0x6f3,
-	0x3108: 0x6f4, 0x3109: 0x6f5, 0x310a: 0x6f6, 0x310b: 0x6f7, 0x310c: 0x6f8, 0x310d: 0x6f9, 0x310e: 0x6fa, 0x310f: 0x6fb,
-	0x3110: 0x6fc, 0x3111: 0x6fd, 0x3112: 0x6fe, 0x3113: 0x6ff, 0x3114: 0x700, 0x3115: 0x701, 0x3116: 0x702, 0x3117: 0x703,
-	0x3118: 0x704, 0x3119: 0x705, 0x311a: 0x706, 0x311b: 0x707, 0x311c: 0x708, 0x311d: 0x709, 0x311e: 0x70a, 0x311f: 0x70b,
-	0x3120: 0x70c, 0x3121: 0x70d, 0x3122: 0x70e, 0x3123: 0x70f, 0x3124: 0x710, 0x3125: 0x711, 0x3126: 0x712, 0x3127: 0x713,
-	0x3128: 0x714, 0x3129: 0x715, 0x312a: 0x716, 0x312b: 0x717, 0x312c: 0x718, 0x312d: 0x719, 0x312e: 0x71a, 0x312f: 0x71b,
-	0x3130: 0x71c, 0x3131: 0x71d, 0x3132: 0x71e, 0x3133: 0x71f, 0x3134: 0x720, 0x3135: 0x721, 0x3136: 0x722, 0x3137: 0x723,
-	0x3138: 0x724, 0x3139: 0x725, 0x313a: 0x726, 0x313b: 0x727, 0x313c: 0x728, 0x313d: 0x729, 0x313e: 0x72a, 0x313f: 0x72b,
-	// Block 0xc5, offset 0x3140
-	0x3140: 0x72c, 0x3141: 0x72d, 0x3142: 0x72e, 0x3143: 0x72f, 0x3144: 0x730, 0x3145: 0x731, 0x3146: 0x732, 0x3147: 0x733,
-	0x3148: 0x734, 0x3149: 0x735, 0x314a: 0x736, 0x314b: 0x737, 0x314c: 0x738, 0x314d: 0x739, 0x314e: 0x73a, 0x314f: 0x73b,
-	0x3150: 0x73c, 0x3151: 0x73d, 0x3152: 0x73e, 0x3153: 0x73f, 0x3154: 0x740, 0x3155: 0x741, 0x3156: 0x742, 0x3157: 0x743,
-	0x3158: 0x744, 0x3159: 0x745, 0x315a: 0x746, 0x315b: 0x747, 0x315c: 0x748, 0x315d: 0x749, 0x315e: 0x74a, 0x315f: 0x74b,
-	0x3160: 0x74c, 0x3161: 0x74d, 0x3162: 0x74e, 0x3163: 0x74f, 0x3164: 0x750, 0x3165: 0x751, 0x3166: 0x752, 0x3167: 0x753,
-	0x3168: 0x754, 0x3169: 0x755, 0x316a: 0x756, 0x316b: 0x757, 0x316c: 0x758, 0x316d: 0x759, 0x316e: 0x75a, 0x316f: 0x75b,
-	0x3170: 0x75c, 0x3171: 0x75d, 0x3172: 0x75e, 0x3173: 0x75f, 0x3174: 0x760, 0x3175: 0x761, 0x3176: 0x762, 0x3177: 0x763,
-	0x3178: 0x764, 0x3179: 0x765, 0x317a: 0x766, 0x317b: 0x767, 0x317c: 0x768, 0x317d: 0x769, 0x317e: 0x76a, 0x317f: 0x76b,
-	// Block 0xc6, offset 0x3180
-	0x3180: 0x76c, 0x3181: 0x76d, 0x3182: 0x76e, 0x3183: 0x76f, 0x3184: 0x770, 0x3185: 0x771, 0x3186: 0x772, 0x3187: 0x773,
-	0x3188: 0x774, 0x3189: 0x775, 0x318a: 0x776, 0x318b: 0x777, 0x318c: 0x778, 0x318d: 0x779, 0x318e: 0x77a, 0x318f: 0x77b,
-	0x3190: 0x77c, 0x3191: 0x77d, 0x3192: 0x77e, 0x3193: 0x77f, 0x3194: 0x780, 0x3195: 0x781, 0x3196: 0x782, 0x3197: 0x783,
-	0x3198: 0x784, 0x3199: 0x785, 0x319a: 0x786, 0x319b: 0x787, 0x319c: 0x788, 0x319d: 0x789, 0x319e: 0x78a, 0x319f: 0x78b,
-	0x31a0: 0x78c, 0x31a1: 0x78d, 0x31a2: 0x78e, 0x31a3: 0x78f, 0x31a4: 0x790, 0x31a5: 0x791, 0x31a6: 0x792, 0x31a7: 0x793,
-	0x31a8: 0x794, 0x31a9: 0x795, 0x31aa: 0x796, 0x31ab: 0x797, 0x31ac: 0x798, 0x31ad: 0x799, 0x31ae: 0x79a, 0x31af: 0x79b,
-	0x31b0: 0x79c, 0x31b1: 0x79d, 0x31b2: 0x79e, 0x31b3: 0x79f, 0x31b4: 0x7a0, 0x31b5: 0x7a1, 0x31b6: 0x7a2, 0x31b7: 0x7a3,
-	0x31b8: 0x7a4, 0x31b9: 0x7a5, 0x31ba: 0x7a6, 0x31bb: 0x7a7, 0x31bc: 0x7a8, 0x31bd: 0x7a9, 0x31be: 0x7aa, 0x31bf: 0x7ab,
-	// Block 0xc7, offset 0x31c0
-	0x31e4: 0x7ac, 0x31e5: 0x7ad, 0x31e6: 0x7ae, 0x31e7: 0x7af,
-	0x31e8: 0x7b0, 0x31e9: 0x7b1, 0x31ea: 0x7b2, 0x31eb: 0x7b3, 0x31ec: 0x103, 0x31ed: 0x104, 0x31ee: 0x105, 0x31ef: 0x106,
-	0x31f0: 0x107, 0x31f1: 0x108, 0x31f2: 0x109, 0x31f3: 0x10a, 0x31f4: 0x10b, 0x31f5: 0x10c, 0x31f6: 0x10d, 0x31f7: 0x10e,
-	0x31f8: 0x10f, 0x31f9: 0x110, 0x31fa: 0x111, 0x31fb: 0x112, 0x31fc: 0x113, 0x31fd: 0x114, 0x31fe: 0x115, 0x31ff: 0x116,
-	// Block 0xc8, offset 0x3200
-	0x3200: 0x18b, 0x3201: 0x18c, 0x3202: 0x18d, 0x3203: 0x18e, 0x3204: 0x18f, 0x3205: 0x190, 0x3206: 0x191, 0x3207: 0x192,
-	0x3208: 0x7b4, 0x3209: 0x7b5, 0x320c: 0x195, 0x320d: 0x196, 0x320e: 0x197, 0x320f: 0x198,
-	0x3210: 0x199, 0x3211: 0x19a, 0x3212: 0x19b, 0x3213: 0x19c, 0x3214: 0x19d, 0x3215: 0x19e, 0x3217: 0x19f,
-	0x3218: 0x1a0, 0x3219: 0x1a1, 0x321a: 0x1a2, 0x321b: 0x1a3, 0x321c: 0x1a4, 0x321d: 0x1a5,
-	// Block 0xc9, offset 0x3240
-	0x3240: 0x7b6, 0x3241: 0x7b7, 0x3242: 0x7b8, 0x3243: 0x7b9, 0x3244: 0x7ba, 0x3245: 0x7bb, 0x3246: 0x7bc, 0x3247: 0x7bd,
-	0x3248: 0x7be, 0x3249: 0x7bf, 0x324a: 0x7c0, 0x324b: 0x7c1, 0x324c: 0x7c2, 0x324d: 0x7c3, 0x324e: 0x7c4, 0x324f: 0x7c5,
-	0x3250: 0x7c6, 0x3251: 0x7c7, 0x3252: 0x7c8, 0x3253: 0x7c9, 0x3254: 0x7ca, 0x3255: 0x7cb, 0x3256: 0x7cc, 0x3257: 0x7cd,
-	0x3258: 0x7ce, 0x3259: 0x7cf, 0x325a: 0x7d0, 0x325b: 0x7d1, 0x325c: 0x7d2, 0x325d: 0x7d3, 0x325e: 0x7d4, 0x325f: 0x7d5,
-	0x3260: 0x7d6, 0x3261: 0x7d7, 0x3262: 0x7d8, 0x3263: 0x7d9, 0x3264: 0x7da, 0x3265: 0x7db, 0x3266: 0x7dc, 0x3267: 0x7dd,
-	0x3268: 0x7de, 0x3269: 0x7df, 0x326a: 0x7e0, 0x326b: 0x7e1, 0x326c: 0x7e2, 0x326d: 0x7e3, 0x326e: 0x7e4, 0x326f: 0x7e5,
-	0x3270: 0x7e6, 0x3271: 0x7e7, 0x3272: 0x7e8, 0x3273: 0x7e9, 0x3274: 0x7ea, 0x3275: 0x7eb, 0x3276: 0x7ec, 0x3277: 0x7ed,
-	0x3278: 0x7ee, 0x3279: 0x7ef, 0x327a: 0x7f0, 0x327b: 0x7f1, 0x327c: 0x7f2, 0x327d: 0x7f3, 0x327e: 0x7f4, 0x327f: 0x7f5,
-	// Block 0xca, offset 0x3280
-	0x3280: 0x7f6, 0x3281: 0x7f7, 0x3282: 0x7f8, 0x3283: 0x7f9, 0x3284: 0x7fa, 0x3285: 0x7fb, 0x3286: 0x7fc, 0x3287: 0x7fd,
-	0x3288: 0x7fe, 0x3289: 0x7ff, 0x328a: 0x800, 0x328b: 0x801, 0x328c: 0x802, 0x328d: 0x803, 0x328e: 0x804, 0x328f: 0x805,
-	0x3290: 0x806, 0x3291: 0x807, 0x3292: 0x808, 0x3293: 0x809, 0x3294: 0x80a, 0x3295: 0x80b, 0x3296: 0x80c, 0x3297: 0x80d,
-	0x3298: 0x80e, 0x3299: 0x80f, 0x329a: 0x810, 0x329b: 0x811, 0x329c: 0x812, 0x329d: 0x813, 0x329e: 0x814, 0x329f: 0x815,
-	0x32a0: 0x816, 0x32a1: 0x817, 0x32a2: 0x818, 0x32a3: 0x819, 0x32a4: 0x81a, 0x32a5: 0x81b, 0x32a6: 0x81c, 0x32a7: 0x81d,
-	0x32a8: 0x81e, 0x32a9: 0x81f, 0x32aa: 0x820, 0x32ab: 0x821, 0x32ac: 0x822, 0x32ad: 0x823, 0x32ae: 0x824, 0x32af: 0x825,
-	0x32b0: 0x826, 0x32b1: 0x827, 0x32b2: 0x828, 0x32b3: 0x829, 0x32b4: 0x82a, 0x32b5: 0x82b, 0x32b6: 0x82c, 0x32b7: 0x82d,
-	0x32b8: 0x82e, 0x32b9: 0x82f, 0x32ba: 0x830, 0x32bb: 0x831, 0x32bc: 0x832, 0x32bd: 0x833, 0x32be: 0x834, 0x32bf: 0x835,
-	// Block 0xcb, offset 0x32c0
-	0x32c0: 0x836, 0x32c1: 0x837, 0x32c2: 0x838, 0x32c3: 0x839, 0x32c4: 0x83a, 0x32c5: 0x83b, 0x32c6: 0x83c, 0x32c7: 0x83d,
-	0x32c8: 0x83e, 0x32c9: 0x83f, 0x32ca: 0x840, 0x32cb: 0x841, 0x32cc: 0x842, 0x32cd: 0x843, 0x32ce: 0x844, 0x32cf: 0x845,
-	0x32d0: 0x846, 0x32d1: 0x847, 0x32d2: 0x848, 0x32d3: 0x849, 0x32d4: 0x84a, 0x32d5: 0x84b, 0x32d6: 0x84c, 0x32d7: 0x84d,
-	0x32d8: 0x84e, 0x32d9: 0x84f, 0x32da: 0x850, 0x32db: 0x851, 0x32dc: 0x852, 0x32dd: 0x853, 0x32de: 0x854, 0x32df: 0x855,
-	0x32e0: 0x856, 0x32e1: 0x857, 0x32e2: 0x858, 0x32e3: 0x859, 0x32e4: 0x85a, 0x32e5: 0x85b, 0x32e6: 0x85c, 0x32e7: 0x85d,
-	0x32e8: 0x85e, 0x32e9: 0x85f, 0x32ea: 0x860, 0x32eb: 0x861, 0x32ec: 0x862, 0x32ed: 0x863, 0x32ee: 0x864, 0x32ef: 0x865,
-	0x32f0: 0x866, 0x32f1: 0x867, 0x32f2: 0x868, 0x32f3: 0x869, 0x32f4: 0x86a, 0x32f5: 0x86b, 0x32f6: 0x86c, 0x32f7: 0x86d,
-	0x32f8: 0x86e, 0x32f9: 0x86f, 0x32fa: 0x870, 0x32fb: 0x871, 0x32fc: 0x872, 0x32fd: 0x873, 0x32fe: 0x874, 0x32ff: 0x875,
-	// Block 0xcc, offset 0x3300
-	0x3300: 0x876, 0x3301: 0x877, 0x3302: 0x878, 0x3303: 0x879, 0x3304: 0x87a, 0x3305: 0x87b, 0x3306: 0x87c, 0x3307: 0x87d,
-	0x3308: 0x87e, 0x3309: 0x87f, 0x330a: 0x880, 0x330b: 0x881, 0x330c: 0x882, 0x330d: 0x883, 0x330e: 0x884, 0x330f: 0x885,
-	0x3310: 0x886, 0x3311: 0x887, 0x3312: 0x888, 0x3313: 0x889, 0x3314: 0x88a, 0x3315: 0x88b, 0x3316: 0x88c, 0x3317: 0x88d,
-	0x3318: 0x88e, 0x3319: 0x88f, 0x331a: 0x890, 0x331b: 0x891, 0x331c: 0x892, 0x331d: 0x893, 0x331e: 0x894, 0x331f: 0x895,
-	0x3320: 0x896, 0x3321: 0x897, 0x3322: 0x898, 0x3323: 0x899, 0x3324: 0x89a, 0x3325: 0x89b, 0x3326: 0x89c, 0x3327: 0x89d,
-	0x3328: 0x89e, 0x3329: 0x89f, 0x332a: 0x8a0, 0x332b: 0x8a1, 0x332c: 0x8a2, 0x332d: 0x8a3, 0x332e: 0x8a4, 0x332f: 0x8a5,
-	0x3330: 0x8a6, 0x3331: 0x8a7, 0x3332: 0x8a8, 0x3333: 0x8a9, 0x3334: 0x8aa, 0x3335: 0x8ab, 0x3336: 0x8ac, 0x3337: 0x8ad,
-	0x3338: 0x8ae, 0x3339: 0x8af, 0x333a: 0x8b0, 0x333b: 0x8b1, 0x333c: 0x8b2, 0x333d: 0x8b3, 0x333e: 0x8b4, 0x333f: 0x8b5,
-	// Block 0xcd, offset 0x3340
-	0x3340: 0x8b6, 0x3341: 0x8b7, 0x3342: 0x8b8, 0x3343: 0x8b9, 0x3344: 0x8ba, 0x3345: 0x8bb, 0x3346: 0x8bc, 0x3347: 0x8bd,
-	0x3348: 0x8be, 0x3349: 0x8bf, 0x334a: 0x8c0, 0x334b: 0x8c1, 0x334c: 0x8c2, 0x334d: 0x8c3, 0x334e: 0x8c4, 0x334f: 0x8c5,
-	0x3350: 0x8c6, 0x3351: 0x8c7, 0x3352: 0x8c8, 0x3353: 0x8c9, 0x3354: 0x8ca, 0x3355: 0x8cb, 0x3356: 0x8cc, 0x3357: 0x8cd,
-	0x3358: 0x8ce, 0x3359: 0x8cf, 0x335a: 0x8d0, 0x335b: 0x8d1, 0x335c: 0x8d2, 0x335d: 0x8d3, 0x335e: 0x8d4, 0x335f: 0x8d5,
-	0x3360: 0x8d6, 0x3361: 0x8d7, 0x3362: 0x8d8, 0x3363: 0x8d9, 0x3364: 0x8da, 0x3365: 0x8db, 0x3366: 0x8dc, 0x3367: 0x8dd,
-	0x3368: 0x8de, 0x3369: 0x8df, 0x336a: 0x8e0, 0x336b: 0x8e1, 0x336c: 0x8e2, 0x336d: 0x8e3, 0x336e: 0x8e4, 0x336f: 0x8e5,
-	0x3370: 0x8e6, 0x3371: 0x8e7, 0x3372: 0x8e8, 0x3373: 0x8e9, 0x3374: 0x8ea, 0x3375: 0x8eb, 0x3376: 0x8ec, 0x3377: 0x8ed,
-	0x3378: 0x8ee, 0x3379: 0x8ef, 0x337a: 0x8f0, 0x337b: 0x8f1, 0x337c: 0x8f2, 0x337d: 0x8f3, 0x337e: 0x8f4, 0x337f: 0x8f5,
-	// Block 0xce, offset 0x3380
-	0x3380: 0x8f6, 0x3381: 0x8f7, 0x3382: 0x8f8, 0x3383: 0x8f9, 0x3384: 0x8fa, 0x3385: 0x8fb, 0x3386: 0x8fc, 0x3387: 0x8fd,
-	0x3388: 0x8fe, 0x3389: 0x8ff, 0x338a: 0x900, 0x338b: 0x901, 0x338c: 0x902, 0x338d: 0x903, 0x338e: 0x904, 0x338f: 0x905,
-	0x3390: 0x906, 0x3391: 0x907, 0x3392: 0x908, 0x3393: 0x909, 0x3394: 0x90a, 0x3395: 0x90b, 0x3396: 0x90c, 0x3397: 0x90d,
-	0x3398: 0x90e, 0x3399: 0x90f, 0x339a: 0x910, 0x339b: 0x911, 0x339c: 0x912, 0x339d: 0x913, 0x339e: 0x914, 0x339f: 0x915,
-	0x33a0: 0x916, 0x33a1: 0x917, 0x33a2: 0x918, 0x33a3: 0x919, 0x33a4: 0x91a, 0x33a5: 0x91b, 0x33a6: 0x91c, 0x33a7: 0x91d,
-	0x33a8: 0x91e, 0x33a9: 0x91f, 0x33aa: 0x920, 0x33ab: 0x921, 0x33ac: 0x922, 0x33ad: 0x923, 0x33ae: 0x924, 0x33af: 0x925,
-	0x33b0: 0x926, 0x33b1: 0x927, 0x33b2: 0x928, 0x33b3: 0x929, 0x33b4: 0x92a, 0x33b5: 0x92b, 0x33b6: 0x92c, 0x33b7: 0x92d,
-	0x33b8: 0x92e, 0x33b9: 0x92f, 0x33ba: 0x930, 0x33bb: 0x931, 0x33bc: 0x932, 0x33bd: 0x933, 0x33be: 0x934, 0x33bf: 0x935,
-	// Block 0xcf, offset 0x33c0
-	0x33c0: 0x936, 0x33c1: 0x937, 0x33c2: 0x938, 0x33c3: 0x939, 0x33c4: 0x93a, 0x33c5: 0x93b, 0x33c6: 0x93c, 0x33c7: 0x93d,
-	0x33c8: 0x93e, 0x33c9: 0x93f, 0x33ca: 0x940, 0x33cb: 0x941, 0x33cc: 0x942, 0x33cd: 0x943, 0x33ce: 0x944, 0x33cf: 0x945,
-	0x33d0: 0x946, 0x33d1: 0x947, 0x33d2: 0x948, 0x33d3: 0x949, 0x33d4: 0x94a, 0x33d5: 0x94b, 0x33d6: 0x94c, 0x33d7: 0x94d,
-	0x33d8: 0x94e, 0x33d9: 0x94f, 0x33da: 0x950, 0x33db: 0x951, 0x33dc: 0x952, 0x33dd: 0x953, 0x33de: 0x954, 0x33df: 0x955,
-	0x33e0: 0x956, 0x33e1: 0x957, 0x33e2: 0x958, 0x33e3: 0x959, 0x33e4: 0x95a, 0x33e5: 0x95b, 0x33e6: 0x95c, 0x33e7: 0x95d,
-	0x33e8: 0x95e, 0x33e9: 0x95f, 0x33ea: 0x960, 0x33eb: 0x961, 0x33ec: 0x962, 0x33ed: 0x963, 0x33ee: 0x964, 0x33ef: 0x965,
-	0x33f0: 0x966, 0x33f1: 0x967, 0x33f2: 0x968, 0x33f3: 0x969, 0x33f4: 0x96a, 0x33f5: 0x96b, 0x33f6: 0x96c, 0x33f7: 0x96d,
-	0x33f8: 0x96e, 0x33f9: 0x96f, 0x33fa: 0x970, 0x33fb: 0x971, 0x33fc: 0x972, 0x33fd: 0x973, 0x33fe: 0x974, 0x33ff: 0x975,
-	// Block 0xd0, offset 0x3400
-	0x3400: 0x976, 0x3401: 0x977, 0x3402: 0x978, 0x3403: 0x979, 0x3404: 0x97a, 0x3405: 0x97b, 0x3406: 0x97c, 0x3407: 0x97d,
-	0x3408: 0x97e, 0x3409: 0x97f, 0x340a: 0x980, 0x340b: 0x981, 0x340c: 0x982, 0x340d: 0x983, 0x340e: 0x984, 0x340f: 0x985,
-	0x3410: 0x986, 0x3411: 0x987, 0x3412: 0x988, 0x3413: 0x989, 0x3414: 0x98a, 0x3415: 0x98b, 0x3416: 0x98c, 0x3417: 0x98d,
-	0x3418: 0x98e, 0x3419: 0x98f, 0x341a: 0x990, 0x341b: 0x991, 0x341c: 0x992, 0x341d: 0x993, 0x341e: 0x994, 0x341f: 0x995,
-	0x3420: 0x996, 0x3421: 0x997, 0x3422: 0x998, 0x3423: 0x999, 0x3424: 0x99a, 0x3425: 0x99b, 0x3426: 0x99c, 0x3427: 0x99d,
-	0x3428: 0x99e, 0x3429: 0x99f, 0x342a: 0x9a0, 0x342b: 0x9a1, 0x342c: 0x9a2, 0x342d: 0x9a3, 0x342e: 0x9a4, 0x342f: 0x9a5,
-	0x3430: 0x9a6, 0x3431: 0x9a7, 0x3432: 0x9a8, 0x3433: 0x9a9, 0x3434: 0x9aa, 0x3435: 0x9ab, 0x3436: 0x9ac, 0x3437: 0x9ad,
-	0x3438: 0x9ae, 0x3439: 0x9af, 0x343a: 0x9b0, 0x343b: 0x9b1, 0x343c: 0x9b2, 0x343d: 0x9b3, 0x343e: 0x9b4, 0x343f: 0x9b5,
-	// Block 0xd1, offset 0x3440
-	0x3440: 0x9b6, 0x3441: 0x9b7, 0x3442: 0x9b8, 0x3443: 0x9b9, 0x3444: 0x9ba, 0x3445: 0x9bb, 0x3446: 0x9bc, 0x3447: 0x9bd,
-	0x3448: 0x9be, 0x3449: 0x9bf, 0x344a: 0x9c0, 0x344b: 0x9c1, 0x344c: 0x9c2, 0x344d: 0x9c3, 0x344e: 0x9c4, 0x344f: 0x9c5,
-	0x3450: 0x9c6, 0x3451: 0x9c7, 0x3452: 0x9c8, 0x3453: 0x9c9, 0x3454: 0x9ca, 0x3455: 0x9cb, 0x3456: 0x9cc, 0x3457: 0x9cd,
-	0x3458: 0x9ce, 0x3459: 0x9cf, 0x345a: 0x9d0, 0x345b: 0x9d1, 0x345c: 0x9d2, 0x345d: 0x9d3, 0x345e: 0x9d4, 0x345f: 0x9d5,
-	0x3460: 0x9d6, 0x3461: 0x9d7, 0x3462: 0x9d8, 0x3463: 0x9d9, 0x3464: 0x9da, 0x3465: 0x9db, 0x3466: 0x9dc, 0x3467: 0x9dd,
-	0x3468: 0x9de, 0x3469: 0x9df, 0x346a: 0x9e0, 0x346b: 0x9e1, 0x346c: 0x9e2, 0x346d: 0x9e3, 0x346e: 0x9e4, 0x346f: 0x9e5,
-	0x3470: 0x9e6, 0x3471: 0x9e7, 0x3472: 0x9e8, 0x3473: 0x9e9, 0x3474: 0x9ea, 0x3475: 0x9eb, 0x3476: 0x9ec, 0x3477: 0x9ed,
-	0x3478: 0x9ee, 0x3479: 0x9ef, 0x347a: 0x9f0, 0x347b: 0x9f1, 0x347c: 0x9f2, 0x347d: 0x9f3, 0x347e: 0x9f4, 0x347f: 0x9f5,
-	// Block 0xd2, offset 0x3480
-	0x3480: 0x9f6, 0x3481: 0x9f7, 0x3482: 0x9f8, 0x3483: 0x9f9, 0x3484: 0x9fa, 0x3485: 0x9fb, 0x3486: 0x9fc, 0x3487: 0x9fd,
-	0x3488: 0x9fe, 0x3489: 0x9ff, 0x348a: 0xa00, 0x348b: 0xa01, 0x348c: 0xa02, 0x348d: 0xa03, 0x348e: 0xa04, 0x348f: 0xa05,
-	0x3490: 0xa06, 0x3491: 0xa07, 0x3492: 0xa08, 0x3493: 0xa09, 0x3494: 0xa0a, 0x3495: 0xa0b, 0x3496: 0xa0c, 0x3497: 0xa0d,
-	0x3498: 0xa0e, 0x3499: 0xa0f, 0x349a: 0xa10, 0x349b: 0xa11, 0x349c: 0xa12, 0x349d: 0xa13, 0x349e: 0xa14, 0x349f: 0xa15,
-	0x34a0: 0xa16, 0x34a1: 0xa17, 0x34a2: 0xa18, 0x34a3: 0xa19, 0x34a4: 0xa1a, 0x34a5: 0xa1b, 0x34a6: 0xa1c, 0x34a7: 0xa1d,
-	0x34a8: 0xa1e, 0x34a9: 0xa1f, 0x34aa: 0xa20, 0x34ab: 0xa21, 0x34ac: 0xa22, 0x34ad: 0xa23, 0x34ae: 0xa24, 0x34af: 0xa25,
-	0x34b0: 0xa26, 0x34b1: 0xa27, 0x34b2: 0xa28, 0x34b3: 0xa29, 0x34b4: 0xa2a, 0x34b5: 0xa2b, 0x34b6: 0xa2c, 0x34b7: 0xa2d,
-	0x34b8: 0xa2e, 0x34b9: 0xa2f, 0x34ba: 0xa30, 0x34bb: 0xa31, 0x34bc: 0xa32, 0x34bd: 0xa33, 0x34be: 0xa34, 0x34bf: 0xa35,
-	// Block 0xd3, offset 0x34c0
-	0x34c0: 0xa36, 0x34c1: 0xa37, 0x34c2: 0xa38, 0x34c3: 0xa39, 0x34c4: 0xa3a, 0x34c5: 0xa3b, 0x34c6: 0xa3c, 0x34c7: 0xa3d,
-	0x34c8: 0xa3e, 0x34c9: 0xa3f, 0x34ca: 0xa40, 0x34cb: 0xa41, 0x34cc: 0xa42, 0x34cd: 0xa43, 0x34ce: 0xa44, 0x34cf: 0xa45,
-	0x34d0: 0xa46, 0x34d1: 0xa47, 0x34d2: 0xa48, 0x34d3: 0xa49, 0x34d4: 0xa4a, 0x34d5: 0xa4b, 0x34d6: 0xa4c, 0x34d7: 0xa4d,
-	0x34d8: 0xa4e, 0x34d9: 0xa4f, 0x34da: 0xa50, 0x34db: 0xa51, 0x34de: 0xa52,
-	0x34e1: 0xa53, 0x34e2: 0xa54,
-	0x34e8: 0xa55, 0x34ea: 0xa56,
-	0x34fa: 0xa57, 0x34fb: 0xa58, 0x34fe: 0xa59,
-	// Block 0xd4, offset 0x3500
-	0x3501: 0xa5a, 0x3502: 0xa5b, 0x3503: 0xa5c, 0x3504: 0xa5d,
-	0x3508: 0xa5e, 0x350b: 0xa5f, 0x350c: 0xa60, 0x350d: 0xa61, 0x350f: 0xa62,
-	0x3510: 0xa63, 0x3512: 0xa64, 0x3513: 0xa65, 0x3514: 0xa66, 0x3517: 0xa67,
-	0x3518: 0xa68, 0x351a: 0xa69, 0x351b: 0xa6a,
-	// Block 0xd5, offset 0x3540
-	0x3560: 0xa6b, 0x3561: 0xa6c, 0x3562: 0xa6d, 0x3563: 0xa6e, 0x3564: 0xa6f, 0x3565: 0xa70, 0x3566: 0xa71, 0x3567: 0xa72,
-	0x3568: 0xa73,
-	// Block 0xd6, offset 0x3580
-	0x3590: 0x09, 0x3591: 0x0a, 0x3592: 0x0b, 0x3593: 0x0c, 0x3596: 0x0d,
-	0x359b: 0x0e, 0x359d: 0x0f, 0x359e: 0x10, 0x359f: 0xc6,
-	0x35a0: 0xc7, 0x35a1: 0xc8, 0x35a2: 0xc9, 0x35a3: 0xca, 0x35a4: 0xcb, 0x35a5: 0xcc, 0x35a6: 0xcd, 0x35a7: 0xce,
-	0x35a8: 0xcf, 0x35a9: 0xd0, 0x35aa: 0xd1, 0x35ab: 0xd2, 0x35af: 0xd3,
-	// Block 0xd7, offset 0x35c0
-	0x35c2: 0x01, 0x35c3: 0x5e6, 0x35c4: 0x5e7, 0x35c5: 0x5e8, 0x35c6: 0x05, 0x35c7: 0x5e9,
-	0x35c8: 0x5ea, 0x35c9: 0x08, 0x35ca: 0x09, 0x35cb: 0x0a, 0x35cc: 0x0b, 0x35cd: 0x0c, 0x35ce: 0x0d, 0x35cf: 0x0e,
-	0x35d0: 0x0f, 0x35d1: 0x10, 0x35d2: 0x11, 0x35d3: 0x12, 0x35d4: 0x13, 0x35d5: 0x14, 0x35d6: 0x15, 0x35d7: 0x16,
-	0x35d8: 0x17, 0x35d9: 0x18, 0x35da: 0x19, 0x35db: 0x1a, 0x35dc: 0x1b, 0x35dd: 0x1c, 0x35de: 0x1d, 0x35df: 0x1e,
-	0x35e0: 0x01, 0x35e1: 0xbc, 0x35e2: 0xbd, 0x35e3: 0xbe, 0x35e4: 0xbf, 0x35e5: 0xc0, 0x35e6: 0xc1, 0x35e7: 0xc2,
-	0x35e8: 0xc3, 0x35e9: 0xc4, 0x35ea: 0x06, 0x35ed: 0x07, 0x35ef: 0xc5,
-	0x35f0: 0xd4, 0x35f3: 0x15,
-}
-
-// mainCTEntries: 2490 entries, 9960 bytes
-var mainCTEntries = [2490]struct{ l, h, n, i uint8 }{
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x88, 0x88, 0, 2},
-	{0x86, 0x86, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xCD, 0x1, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x81, 0x81, 0, 1},
-	{0x81, 0x81, 0, 2},
-	{0xCC, 0x0, 1, 255},
-	{0x86, 0x86, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8B, 0x8B, 0, 3},
-	{0x88, 0x88, 0, 2},
-	{0x86, 0x86, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x8F, 0x8F, 0, 1},
-	{0xD9, 0x0, 1, 255},
-	{0x93, 0x95, 0, 1},
-	{0xD9, 0x0, 1, 255},
-	{0x94, 0x94, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xA7, 0x1, 1, 255},
-	{0xA6, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x97, 0x97, 0, 2},
-	{0xE0, 0x0, 2, 255},
-	{0xAD, 0x1, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x96, 0x97, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x97, 0x97, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xAF, 0x1, 1, 255},
-	{0xAE, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x97, 0x97, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xAE, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB1, 0x0, 1, 255},
-	{0x96, 0x96, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB3, 0x0, 1, 255},
-	{0x95, 0x95, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB3, 0x0, 2, 255},
-	{0x95, 0x96, 0, 3},
-	{0x82, 0x0, 1, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xB3, 0x0, 1, 255},
-	{0x95, 0x95, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xB5, 0x1, 1, 255},
-	{0xB4, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0x97, 0x97, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xB4, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB7, 0x0, 3, 255},
-	{0x9F, 0x9F, 0, 4},
-	{0x8F, 0x0, 1, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xB7, 0x0, 1, 255},
-	{0x8A, 0x8A, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB7, 0x0, 1, 255},
-	{0x8A, 0x8A, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB8, 0x0, 1, 255},
-	{0x81, 0xAE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB8, 0x0, 1, 255},
-	{0xB2, 0xB2, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xBB, 0xC, 1, 255},
-	{0xBA, 0x0, 12, 255},
-	{0xAD, 0xAE, 0, 26},
-	{0xAA, 0xAB, 0, 24},
-	{0xA7, 0xA7, 0, 23},
-	{0xA5, 0xA5, 0, 22},
-	{0xA1, 0xA3, 0, 19},
-	{0x99, 0x9F, 0, 12},
-	{0x94, 0x97, 0, 8},
-	{0x8D, 0x8D, 0, 7},
-	{0x8A, 0x8A, 0, 6},
-	{0x87, 0x88, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x81, 0x82, 0, 1},
-	{0x9C, 0x9F, 0, 28},
-	{0xE0, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xB2, 0xB2, 0, 1},
-	{0xEA, 0x0, 1, 255},
-	{0xAA, 0x0, 1, 255},
-	{0x80, 0xAF, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x7, 1, 255},
-	{0xBD, 0x0, 1, 255},
-	{0xB1, 0x0, 1, 255},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x2, 1, 255},
-	{0xBD, 0x0, 2, 255},
-	{0xB4, 0xB4, 0, 2},
-	{0xB2, 0xB2, 0, 1},
-	{0x80, 0x80, 0, 3},
-	{0x80, 0x81, 0, 4},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x2, 1, 255},
-	{0xBD, 0x0, 2, 255},
-	{0xB4, 0xB4, 0, 2},
-	{0xB2, 0xB2, 0, 1},
-	{0x80, 0x80, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAE, 0xAE, 0, 1},
-	{0xF0, 0x0, 1, 255},
-	{0x91, 0x0, 1, 255},
-	{0x84, 0x0, 1, 255},
-	{0xA7, 0xA7, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xB5, 0xB5, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA7, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE2, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA7, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xA6, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA7, 0xA7, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x68, 0x68, 0, 3},
-	{0x48, 0x48, 0, 2},
-	{0x8C, 0x8C, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0x68, 0x68, 0, 1},
-	{0x68, 0x68, 0, 2},
-	{0x48, 0x48, 0, 1},
-	{0x64, 0x64, 0, 1},
-	{0x64, 0x64, 0, 2},
-	{0x44, 0x44, 0, 1},
-	{0x66, 0x66, 0, 1},
-	{0x66, 0x66, 0, 2},
-	{0x46, 0x46, 0, 1},
-	{0x67, 0x67, 0, 1},
-	{0x67, 0x67, 0, 2},
-	{0x47, 0x47, 0, 1},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6C, 0x6C, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6C, 0x6C, 0, 4},
-	{0x4C, 0x4C, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x8B, 0x8B, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x61, 0x61, 0, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x61, 0x61, 0, 4},
-	{0x41, 0x41, 0, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA8, 0xA8, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 1, 255},
-	{0x90, 0x91, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 6, 255},
-	{0x98, 0x42, 1, 255},
-	{0x96, 0x31, 1, 255},
-	{0x94, 0x1B, 1, 255},
-	{0x84, 0x11, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x80, 0x80, 0, 73},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xD, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBC, 0xBC, 0, 20},
-	{0xBA, 0xBA, 0, 19},
-	{0xB4, 0xB4, 0, 18},
-	{0xA6, 0xA6, 0, 17},
-	{0xA2, 0xA3, 0, 15},
-	{0xA0, 0xA0, 0, 14},
-	{0x9D, 0x9D, 0, 13},
-	{0x96, 0x96, 0, 12},
-	{0x91, 0x91, 0, 11},
-	{0x8C, 0x8C, 0, 10},
-	{0x8A, 0x8A, 0, 9},
-	{0x84, 0x84, 0, 8},
-	{0x82, 0x82, 0, 7},
-	{0xB1, 0xB2, 0, 21},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 8, 255},
-	{0xBC, 0xBC, 0, 30},
-	{0xB4, 0xB4, 0, 29},
-	{0xA2, 0xA2, 0, 28},
-	{0x93, 0x93, 0, 27},
-	{0x8C, 0x8C, 0, 26},
-	{0x8A, 0x8A, 0, 25},
-	{0x84, 0x84, 0, 24},
-	{0x82, 0x82, 0, 23},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x12, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xBC, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 41},
-	{0xB4, 0xB4, 0, 40},
-	{0xA6, 0xA6, 0, 39},
-	{0xA2, 0xA3, 0, 37},
-	{0xA0, 0xA0, 0, 36},
-	{0x91, 0x91, 0, 35},
-	{0x8C, 0x8C, 0, 34},
-	{0x8A, 0x8A, 0, 33},
-	{0x84, 0x84, 0, 32},
-	{0x82, 0x82, 0, 31},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 5, 255},
-	{0xA2, 0xA2, 0, 5},
-	{0x93, 0x93, 0, 4},
-	{0x91, 0x91, 0, 3},
-	{0x84, 0x84, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xB1, 0xB2, 0, 42},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xD, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBC, 0xBC, 0, 57},
-	{0xBA, 0xBA, 0, 56},
-	{0xB4, 0xB4, 0, 55},
-	{0xA6, 0xA6, 0, 54},
-	{0xA2, 0xA3, 0, 52},
-	{0xA0, 0xA0, 0, 51},
-	{0x96, 0x96, 0, 50},
-	{0x93, 0x93, 0, 49},
-	{0x91, 0x91, 0, 48},
-	{0x8C, 0x8C, 0, 47},
-	{0x8A, 0x8A, 0, 46},
-	{0x84, 0x84, 0, 45},
-	{0x82, 0x82, 0, 44},
-	{0xB1, 0xB2, 0, 58},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x10, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBC, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 71},
-	{0xB4, 0xB4, 0, 70},
-	{0xB2, 0xB2, 0, 69},
-	{0xA6, 0xA6, 0, 68},
-	{0xA2, 0xA2, 0, 67},
-	{0xA0, 0xA0, 0, 66},
-	{0x9D, 0x9D, 0, 65},
-	{0x93, 0x93, 0, 64},
-	{0x8C, 0x8C, 0, 63},
-	{0x8A, 0x8A, 0, 62},
-	{0x84, 0x84, 0, 61},
-	{0x82, 0x82, 0, 60},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 1, 255},
-	{0x91, 0x91, 0, 6},
-	{0xB1, 0xB1, 0, 72},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xA6, 0x2E, 1, 255},
-	{0xA4, 0xA4, 0, 72},
-	{0xA3, 0x29, 1, 255},
-	{0xA2, 0x1C, 1, 255},
-	{0x9E, 0x9F, 0, 70},
-	{0x99, 0x99, 0, 69},
-	{0x91, 0xF, 1, 255},
-	{0x8F, 0x8F, 0, 68},
-	{0x85, 0x85, 0, 67},
-	{0x82, 0x0, 1, 255},
-	{0x80, 0x80, 0, 66},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xB, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xBE, 0xBE, 0, 11},
-	{0xBC, 0xBC, 0, 10},
-	{0xBA, 0xBA, 0, 9},
-	{0xA2, 0xA2, 0, 8},
-	{0xA0, 0xA0, 0, 7},
-	{0x9D, 0x9D, 0, 6},
-	{0x98, 0x98, 0, 5},
-	{0x91, 0x91, 0, 4},
-	{0x8C, 0x8C, 0, 3},
-	{0x8A, 0x8A, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xB1, 0xB3, 0, 12},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 11, 255},
-	{0xBE, 0xBE, 0, 26},
-	{0xBC, 0xBC, 0, 25},
-	{0xBA, 0xBA, 0, 24},
-	{0xB4, 0xB4, 0, 23},
-	{0xA6, 0xA6, 0, 22},
-	{0xA2, 0xA3, 0, 20},
-	{0xA0, 0xA0, 0, 19},
-	{0x98, 0x98, 0, 18},
-	{0x8C, 0x8C, 0, 17},
-	{0x8A, 0x8A, 0, 16},
-	{0x82, 0x82, 0, 15},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 11, 255},
-	{0xB3, 0xB3, 0, 37},
-	{0xAB, 0xAB, 0, 36},
-	{0xA9, 0xA9, 0, 35},
-	{0xA3, 0xA3, 0, 34},
-	{0xA1, 0xA1, 0, 33},
-	{0x9F, 0x9F, 0, 32},
-	{0x99, 0x99, 0, 31},
-	{0x97, 0x97, 0, 30},
-	{0x94, 0x94, 0, 29},
-	{0x92, 0x92, 0, 28},
-	{0x90, 0x90, 0, 27},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 3, 255},
-	{0xA1, 0xA1, 0, 40},
-	{0x9F, 0x9F, 0, 39},
-	{0x95, 0x95, 0, 38},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xD, 10, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBE, 0xBE, 0, 54},
-	{0xBC, 0xBC, 0, 53},
-	{0xBA, 0xBA, 0, 52},
-	{0xB4, 0xB4, 0, 51},
-	{0xB2, 0xB2, 0, 50},
-	{0xA2, 0xA3, 0, 48},
-	{0x98, 0x98, 0, 47},
-	{0x96, 0x96, 0, 46},
-	{0x91, 0x91, 0, 45},
-	{0x8C, 0x8C, 0, 44},
-	{0x8A, 0x8A, 0, 43},
-	{0x84, 0x84, 0, 42},
-	{0x82, 0x82, 0, 41},
-	{0xB2, 0xB3, 0, 64},
-	{0xAD, 0xAD, 0, 63},
-	{0xA9, 0xA9, 0, 62},
-	{0xA3, 0xA3, 0, 61},
-	{0xA1, 0xA1, 0, 60},
-	{0x9F, 0x9F, 0, 59},
-	{0x99, 0x99, 0, 58},
-	{0x94, 0x94, 0, 57},
-	{0x92, 0x92, 0, 56},
-	{0x90, 0x90, 0, 55},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 11, 255},
-	{0xAB, 0xAB, 0, 12},
-	{0xA8, 0xA9, 0, 10},
-	{0xA6, 0xA6, 0, 9},
-	{0xA3, 0xA3, 0, 8},
-	{0xA1, 0xA1, 0, 7},
-	{0x9F, 0x9F, 0, 6},
-	{0x99, 0x99, 0, 5},
-	{0x97, 0x97, 0, 4},
-	{0x94, 0x94, 0, 3},
-	{0x92, 0x92, 0, 2},
-	{0x90, 0x90, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 9, 255},
-	{0xB7, 0xB7, 0, 10},
-	{0xA6, 0xA6, 0, 9},
-	{0xA4, 0xA4, 0, 8},
-	{0xA1, 0xA1, 0, 7},
-	{0x9F, 0x9F, 0, 6},
-	{0x97, 0x97, 0, 5},
-	{0x94, 0x95, 0, 3},
-	{0x92, 0x92, 0, 2},
-	{0x90, 0x90, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 9, 255},
-	{0x9A, 0x9B, 0, 45},
-	{0x93, 0x1D, 1, 255},
-	{0x91, 0x11, 1, 255},
-	{0x90, 0x90, 0, 44},
-	{0x89, 0x89, 0, 43},
-	{0x86, 0x87, 0, 41},
-	{0x84, 0x8, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x81, 0x81, 0, 40},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x4, 1, 255},
-	{0xBD, 0x0, 4, 255},
-	{0xBC, 0xBC, 0, 5},
-	{0xBA, 0xBA, 0, 4},
-	{0xB4, 0xB4, 0, 3},
-	{0xA2, 0xA3, 0, 1},
-	{0xB1, 0xB2, 0, 6},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 7, 255},
-	{0xBC, 0xBC, 0, 15},
-	{0xA2, 0xA3, 0, 13},
-	{0xA0, 0xA0, 0, 12},
-	{0x93, 0x93, 0, 11},
-	{0x8C, 0x8C, 0, 10},
-	{0x8A, 0x8A, 0, 9},
-	{0x82, 0x82, 0, 8},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 10, 255},
-	{0xBC, 0xBC, 0, 25},
-	{0xBA, 0xBA, 0, 24},
-	{0xB4, 0xB4, 0, 23},
-	{0xA2, 0xA2, 0, 22},
-	{0xA0, 0xA0, 0, 21},
-	{0x93, 0x93, 0, 20},
-	{0x8C, 0x8C, 0, 19},
-	{0x8A, 0x8A, 0, 18},
-	{0x84, 0x84, 0, 17},
-	{0x82, 0x82, 0, 16},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBE, 0xBE, 0, 39},
-	{0xBC, 0xBC, 0, 38},
-	{0xBA, 0xBA, 0, 37},
-	{0xB4, 0xB4, 0, 36},
-	{0xA2, 0xA3, 0, 34},
-	{0xA0, 0xA0, 0, 33},
-	{0x98, 0x98, 0, 32},
-	{0x96, 0x96, 0, 31},
-	{0x93, 0x93, 0, 30},
-	{0x8C, 0x8C, 0, 29},
-	{0x8A, 0x8A, 0, 28},
-	{0x84, 0x84, 0, 27},
-	{0x82, 0x82, 0, 26},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 9, 255},
-	{0xA8, 0xA9, 0, 10},
-	{0xA6, 0xA6, 0, 9},
-	{0xA3, 0xA4, 0, 7},
-	{0xA1, 0xA1, 0, 6},
-	{0x9F, 0x9F, 0, 5},
-	{0x99, 0x99, 0, 4},
-	{0x94, 0x94, 0, 3},
-	{0x92, 0x92, 0, 2},
-	{0x90, 0x90, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 8, 255},
-	{0x9A, 0x9B, 0, 62},
-	{0x96, 0x29, 1, 255},
-	{0x95, 0x95, 0, 61},
-	{0x91, 0x14, 1, 255},
-	{0x90, 0x90, 0, 60},
-	{0x86, 0x87, 0, 58},
-	{0x82, 0x0, 1, 255},
-	{0x81, 0x81, 0, 57},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x10, 1, 255},
-	{0xBD, 0x0, 16, 255},
-	{0xBE, 0xBE, 0, 17},
-	{0xBC, 0xBC, 0, 16},
-	{0xBA, 0xBA, 0, 15},
-	{0xB4, 0xB4, 0, 14},
-	{0xB2, 0xB2, 0, 13},
-	{0xA6, 0xA6, 0, 12},
-	{0xA2, 0xA3, 0, 10},
-	{0xA0, 0xA0, 0, 9},
-	{0x98, 0x98, 0, 8},
-	{0x96, 0x96, 0, 7},
-	{0x93, 0x93, 0, 6},
-	{0x91, 0x91, 0, 5},
-	{0x8C, 0x8C, 0, 4},
-	{0x8A, 0x8A, 0, 3},
-	{0x84, 0x84, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xB1, 0xB2, 0, 18},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x11, 1, 255},
-	{0xBD, 0x0, 17, 255},
-	{0xBE, 0xBE, 0, 37},
-	{0xBC, 0xBC, 0, 36},
-	{0xBA, 0xBA, 0, 35},
-	{0xB4, 0xB4, 0, 34},
-	{0xB2, 0xB2, 0, 33},
-	{0xA6, 0xA6, 0, 32},
-	{0xA2, 0xA3, 0, 30},
-	{0xA0, 0xA0, 0, 29},
-	{0x9D, 0x9D, 0, 28},
-	{0x98, 0x98, 0, 27},
-	{0x96, 0x96, 0, 26},
-	{0x93, 0x93, 0, 25},
-	{0x91, 0x91, 0, 24},
-	{0x8C, 0x8C, 0, 23},
-	{0x8A, 0x8A, 0, 22},
-	{0x84, 0x84, 0, 21},
-	{0x82, 0x82, 0, 20},
-	{0xB2, 0xB2, 0, 38},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0xF, 1, 255},
-	{0xBD, 0x0, 15, 255},
-	{0xBE, 0xBE, 0, 54},
-	{0xBC, 0xBC, 0, 53},
-	{0xBA, 0xBA, 0, 52},
-	{0xB4, 0xB4, 0, 51},
-	{0xB2, 0xB2, 0, 50},
-	{0xA2, 0xA3, 0, 48},
-	{0xA0, 0xA0, 0, 47},
-	{0x98, 0x98, 0, 46},
-	{0x96, 0x96, 0, 45},
-	{0x93, 0x93, 0, 44},
-	{0x91, 0x91, 0, 43},
-	{0x8C, 0x8C, 0, 42},
-	{0x8A, 0x8A, 0, 41},
-	{0x84, 0x84, 0, 40},
-	{0x82, 0x82, 0, 39},
-	{0xB1, 0xB2, 0, 55},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 10, 255},
-	{0xA6, 0x20, 1, 255},
-	{0xA4, 0xA4, 0, 52},
-	{0xA1, 0xA1, 0, 51},
-	{0x9E, 0x9F, 0, 49},
-	{0x99, 0x99, 0, 48},
-	{0x93, 0x11, 1, 255},
-	{0x91, 0x0, 1, 255},
-	{0x8F, 0x8F, 0, 47},
-	{0x89, 0x89, 0, 46},
-	{0x85, 0x85, 0, 45},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 15, 255},
-	{0xBE, 0xBE, 0, 16},
-	{0xBC, 0xBC, 0, 15},
-	{0xBA, 0xBA, 0, 14},
-	{0xB4, 0xB4, 0, 13},
-	{0xB2, 0xB2, 0, 12},
-	{0xA6, 0xA6, 0, 11},
-	{0xA2, 0xA3, 0, 9},
-	{0xA0, 0xA0, 0, 8},
-	{0x98, 0x98, 0, 7},
-	{0x96, 0x96, 0, 6},
-	{0x93, 0x93, 0, 5},
-	{0x8C, 0x8C, 0, 4},
-	{0x8A, 0x8A, 0, 3},
-	{0x84, 0x84, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 13, 255},
-	{0xBE, 0xBE, 0, 29},
-	{0xBC, 0xBC, 0, 28},
-	{0xB4, 0xB4, 0, 27},
-	{0xA6, 0xA6, 0, 26},
-	{0xA0, 0xA0, 0, 25},
-	{0x9D, 0x9D, 0, 24},
-	{0x98, 0x98, 0, 23},
-	{0x93, 0x93, 0, 22},
-	{0x91, 0x91, 0, 21},
-	{0x8C, 0x8C, 0, 20},
-	{0x8A, 0x8A, 0, 19},
-	{0x84, 0x84, 0, 18},
-	{0x82, 0x82, 0, 17},
-	{0xE0, 0x0, 1, 255},
-	{0xBD, 0x0, 14, 255},
-	{0xBC, 0xBC, 0, 44},
-	{0xBA, 0xBA, 0, 43},
-	{0xB4, 0xB4, 0, 42},
-	{0xB2, 0xB2, 0, 41},
-	{0xA6, 0xA6, 0, 40},
-	{0xA2, 0xA3, 0, 38},
-	{0xA0, 0xA0, 0, 37},
-	{0x96, 0x96, 0, 36},
-	{0x93, 0x93, 0, 35},
-	{0x91, 0x91, 0, 34},
-	{0x8C, 0x8C, 0, 33},
-	{0x8A, 0x8A, 0, 32},
-	{0x84, 0x84, 0, 31},
-	{0x82, 0x82, 0, 30},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xBE, 0x0, 1, 255},
-	{0xA4, 0xA5, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x9, 1, 255},
-	{0xBD, 0x0, 3, 255},
-	{0xB5, 0xB5, 0, 6},
-	{0xB3, 0xB3, 0, 5},
-	{0xB1, 0x0, 1, 4},
-	{0xE0, 0x0, 2, 255},
-	{0xBE, 0x2, 1, 255},
-	{0xBD, 0x0, 2, 255},
-	{0xB4, 0xB4, 0, 2},
-	{0xB2, 0xB2, 0, 1},
-	{0x80, 0x80, 0, 3},
-	{0x80, 0x81, 0, 7},
-	{0x7A, 0x7A, 0, 1},
-	{0x7A, 0x7A, 0, 2},
-	{0x5A, 0x5A, 0, 1},
-	{0x62, 0x62, 0, 1},
-	{0x62, 0x62, 0, 2},
-	{0x42, 0x42, 0, 1},
-	{0x70, 0x70, 0, 1},
-	{0x70, 0x70, 0, 2},
-	{0x50, 0x50, 0, 1},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0x59, 0x59, 0, 1},
-	{0x73, 0x73, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0x53, 0x53, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x82, 0x82, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x88, 0x88, 0, 2},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x8A, 0x8A, 0, 2},
-	{0x88, 0x88, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x67, 0x67, 0, 2},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x67, 0x67, 0, 3},
-	{0x47, 0x47, 0, 2},
-	{0x83, 0x83, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x8C, 0x8C, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xC5, 0x2, 1, 255},
-	{0x7A, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0xBE, 0xBE, 0, 2},
-	{0xC5, 0x4, 1, 255},
-	{0x7A, 0x2, 1, 255},
-	{0x5A, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 2},
-	{0xBD, 0xBE, 0, 3},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6A, 0x6A, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0xCE, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0x6A, 0x6A, 0, 4},
-	{0x4A, 0x4A, 0, 3},
-	{0xB7, 0xB7, 0, 1},
-	{0x87, 0x87, 0, 2},
-	{0x6A, 0x6A, 0, 1},
-	{0x6A, 0x6A, 0, 2},
-	{0x4A, 0x4A, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0x63, 0x0, 1, 255},
-	{0x73, 0x73, 0, 1},
-	{0x73, 0x73, 0, 4},
-	{0x63, 0x1, 1, 255},
-	{0x53, 0x53, 0, 3},
-	{0x43, 0x0, 1, 255},
-	{0x53, 0x53, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0x7A, 0x2, 1, 4},
-	{0x64, 0x0, 1, 255},
-	{0x7A, 0x0, 1, 2},
-	{0x73, 0x73, 0, 1},
-	{0x73, 0x73, 0, 3},
-	{0x7A, 0x5, 1, 8},
-	{0x64, 0x3, 1, 255},
-	{0x5A, 0x2, 1, 7},
-	{0x44, 0x0, 1, 255},
-	{0x5A, 0x0, 1, 3},
-	{0x53, 0x53, 0, 1},
-	{0x53, 0x53, 0, 4},
-	{0x7A, 0x0, 1, 5},
-	{0x73, 0x73, 0, 2},
-	{0x73, 0x73, 0, 6},
-	{0x79, 0x79, 0, 2},
-	{0x67, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 4},
-	{0x67, 0x1, 1, 255},
-	{0x59, 0x59, 0, 3},
-	{0x47, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0xCE, 0x2, 1, 255},
-	{0xC2, 0x1, 1, 255},
-	{0x79, 0x79, 0, 4},
-	{0x6C, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0xB7, 0xB7, 0, 2},
-	{0x87, 0x87, 0, 3},
-	{0xCE, 0x3, 1, 255},
-	{0xC2, 0x2, 1, 255},
-	{0x79, 0x79, 0, 6},
-	{0x6C, 0x1, 1, 255},
-	{0x59, 0x59, 0, 5},
-	{0x4C, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0xB7, 0xB7, 0, 3},
-	{0x87, 0x87, 0, 4},
-	{0x79, 0x79, 0, 2},
-	{0x6E, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 4},
-	{0x6E, 0x1, 1, 255},
-	{0x59, 0x59, 0, 3},
-	{0x4E, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0x7A, 0x7A, 0, 2},
-	{0x73, 0x0, 1, 255},
-	{0x7A, 0x7A, 0, 1},
-	{0x7A, 0x7A, 0, 4},
-	{0x73, 0x1, 1, 255},
-	{0x5A, 0x5A, 0, 3},
-	{0x53, 0x0, 1, 255},
-	{0x5A, 0x5A, 0, 1},
-	{0x7A, 0x7A, 0, 2},
-	{0x79, 0x79, 0, 2},
-	{0x74, 0x0, 1, 255},
-	{0x79, 0x79, 0, 1},
-	{0x79, 0x79, 0, 4},
-	{0x74, 0x1, 1, 255},
-	{0x59, 0x59, 0, 3},
-	{0x54, 0x0, 1, 255},
-	{0x59, 0x59, 0, 1},
-	{0x79, 0x79, 0, 2},
-	{0x7A, 0x0, 1, 255},
-	{0x73, 0x73, 0, 2},
-	{0x73, 0x73, 0, 1},
-	{0x7A, 0x1, 1, 255},
-	{0x73, 0x73, 0, 4},
-	{0x5A, 0x0, 1, 255},
-	{0x53, 0x53, 0, 3},
-	{0x53, 0x53, 0, 1},
-	{0x73, 0x73, 0, 2},
-	{0xD6, 0x0, 1, 255},
-	{0x82, 0x82, 0, 1},
-	{0x77, 0x77, 0, 3},
-	{0x68, 0x68, 0, 2},
-	{0x62, 0x62, 0, 1},
-	{0x77, 0x77, 0, 6},
-	{0x68, 0x68, 0, 5},
-	{0x62, 0x62, 0, 4},
-	{0x57, 0x57, 0, 3},
-	{0x48, 0x48, 0, 2},
-	{0x42, 0x42, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA3, 0xA3, 0, 1},
-	{0x77, 0x77, 0, 2},
-	{0x70, 0x70, 0, 1},
-	{0x77, 0x77, 0, 4},
-	{0x70, 0x70, 0, 3},
-	{0x57, 0x57, 0, 2},
-	{0x50, 0x50, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x79, 0x79, 0, 3},
-	{0x77, 0x77, 0, 2},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x79, 0x79, 0, 5},
-	{0x77, 0x77, 0, 4},
-	{0x59, 0x59, 0, 3},
-	{0x57, 0x57, 0, 2},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8A, 0x8A, 0, 3},
-	{0x88, 0x88, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x88, 0x88, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x1, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9D, 0, 1},
-	{0xBC, 0xBC, 0, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBC, 0xBD, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x7, 1, 255},
-	{0x82, 0x0, 2, 255},
-	{0x9D, 0x9D, 0, 3},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x1, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9D, 0, 1},
-	{0xBC, 0xBC, 0, 2},
-	{0xBC, 0xBC, 0, 4},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBC, 0xBD, 0, 1},
-	{0xBC, 0xBD, 0, 3},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0xE, 1, 255},
-	{0x82, 0x0, 3, 255},
-	{0x9E, 0x9E, 0, 6},
-	{0x9D, 0x8, 1, 5},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x0, 1, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBC, 0xBC, 0, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 4},
-	{0xBC, 0xBC, 0, 7},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x8, 2, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 3},
-	{0xBC, 0xBD, 0, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBD, 0x0, 1, 6},
-	{0xBC, 0xBE, 0, 5},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 4},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 3},
-	{0xBC, 0xBE, 0, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x1, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9E, 0, 1},
-	{0xBC, 0xBC, 0, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBC, 0xBE, 0, 1},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x17, 1, 255},
-	{0x82, 0x0, 4, 255},
-	{0x9E, 0x9E, 0, 9},
-	{0x9D, 0x10, 1, 8},
-	{0x9A, 0x8, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x0, 1, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBC, 0xBC, 0, 4},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x4, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x0, 1, 5},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 2},
-	{0xBC, 0xBC, 0, 6},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 7},
-	{0xBC, 0xBC, 0, 10},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x10, 2, 255},
-	{0x82, 0x0, 2, 255},
-	{0x9A, 0x7, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 4},
-	{0xBC, 0xBD, 0, 3},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 2, 255},
-	{0xBD, 0x0, 1, 6},
-	{0xBC, 0xBD, 0, 5},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 2},
-	{0xBD, 0x0, 1, 9},
-	{0xBC, 0xBE, 0, 8},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 7},
-	{0xE3, 0x0, 2, 255},
-	{0x83, 0x5, 1, 255},
-	{0x82, 0x0, 2, 255},
-	{0x9E, 0x9E, 0, 3},
-	{0x9D, 0x0, 1, 2},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x99, 0x99, 0, 1},
-	{0xBC, 0xBC, 0, 4},
-	{0xE3, 0x0, 1, 255},
-	{0x82, 0x0, 1, 255},
-	{0x9D, 0x9D, 0, 1},
-	{0xE3, 0x0, 1, 255},
-	{0x83, 0x0, 1, 255},
-	{0xBD, 0xBD, 0, 1},
-	{0x27, 0x27, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x8C, 0x8C, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x86, 0x87, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x86, 0x86, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x9F, 0x0, 1, 255},
-	{0x87, 0x87, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xA4, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x83, 0x83, 0, 3},
-	{0x80, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0xA8, 0xA8, 0, 2},
-	{0x87, 0x87, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0xA8, 0xA8, 0, 2},
-	{0x84, 0x84, 0, 1},
-	{0xCE, 0x2, 1, 255},
-	{0xCC, 0x1, 1, 255},
-	{0xC2, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xA7, 0xA7, 0, 2},
-	{0x87, 0x87, 0, 3},
-	{0xE0, 0x0, 1, 255},
-	{0xB5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE2, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE2, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0x20, 0x20, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xB5, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xA5, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xA4, 0x0, 1, 255},
-	{0x9E, 0x9E, 0, 1},
-	{0xCC, 0x1, 1, 255},
-	{0xC4, 0x0, 1, 255},
-	{0xA6, 0xA7, 0, 1},
-	{0x87, 0x87, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0xBA, 0, 3},
-	{0xB9, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x84, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0x0, 1, 3},
-	{0xB9, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x95, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 3, 255},
-	{0xBA, 0xBA, 0, 4},
-	{0xB9, 0x9, 1, 3},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBB, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAC, 0xAC, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x98, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x84, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0xBA, 0, 3},
-	{0xB9, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0x99, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAE, 0xAE, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xAF, 0x0, 1, 255},
-	{0xAE, 0xAE, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB6, 0xB6, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 31, 255},
-	{0xB1, 0x5A, 1, 255},
-	{0x9F, 0x57, 1, 255},
-	{0x9E, 0x54, 1, 255},
-	{0x9C, 0x51, 1, 255},
-	{0x9B, 0x4E, 1, 255},
-	{0x9A, 0x4B, 1, 255},
-	{0x99, 0x48, 1, 255},
-	{0x98, 0x45, 1, 255},
-	{0x97, 0x42, 1, 255},
-	{0x96, 0x3F, 1, 255},
-	{0x95, 0x3C, 1, 255},
-	{0x94, 0x39, 1, 255},
-	{0x93, 0x36, 1, 255},
-	{0x92, 0x33, 1, 255},
-	{0x91, 0x30, 1, 255},
-	{0x90, 0x2D, 1, 255},
-	{0x8F, 0x2A, 1, 255},
-	{0x8E, 0x27, 1, 255},
-	{0x8D, 0x24, 1, 255},
-	{0x8C, 0x21, 1, 255},
-	{0x8B, 0x1E, 1, 255},
-	{0x8A, 0x1B, 1, 255},
-	{0x89, 0x18, 1, 255},
-	{0x87, 0x15, 1, 255},
-	{0x86, 0x12, 1, 255},
-	{0x85, 0xF, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 63},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 65},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 69},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 71},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 73},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 75},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 77},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 79},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 81},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 83},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 85},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 87},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 89},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 91},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 93},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 95},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 97},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 99},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 101},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 103},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 105},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 107},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 109},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 111},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 113},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 115},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 117},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 119},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 30, 255},
-	{0x9F, 0x57, 1, 255},
-	{0x9E, 0x54, 1, 255},
-	{0x9C, 0x51, 1, 255},
-	{0x9B, 0x4E, 1, 255},
-	{0x9A, 0x4B, 1, 255},
-	{0x99, 0x48, 1, 255},
-	{0x98, 0x45, 1, 255},
-	{0x97, 0x42, 1, 255},
-	{0x96, 0x3F, 1, 255},
-	{0x95, 0x3C, 1, 255},
-	{0x94, 0x39, 1, 255},
-	{0x93, 0x36, 1, 255},
-	{0x92, 0x33, 1, 255},
-	{0x91, 0x30, 1, 255},
-	{0x90, 0x2D, 1, 255},
-	{0x8F, 0x2A, 1, 255},
-	{0x8E, 0x27, 1, 255},
-	{0x8D, 0x24, 1, 255},
-	{0x8C, 0x21, 1, 255},
-	{0x8B, 0x1E, 1, 255},
-	{0x8A, 0x1B, 1, 255},
-	{0x89, 0x18, 1, 255},
-	{0x87, 0x15, 1, 255},
-	{0x86, 0x12, 1, 255},
-	{0x85, 0xF, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 5},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 7},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 9},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 15},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 17},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 19},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 21},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 23},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 25},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 27},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 29},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 31},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 33},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 35},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 37},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 39},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 41},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 43},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 45},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 47},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 49},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 51},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 53},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 55},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 57},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 36, 255},
-	{0xAC, 0xF7, 1, 197},
-	{0xAB, 0x69, 1, 196},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 131},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 133},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 135},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 137},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 139},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 140},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 142},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 144},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 146},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 147},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 149},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 151},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 153},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 155},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 157},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 159},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 161},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 163},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 165},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 167},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 169},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 171},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 173},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 175},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 177},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 179},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 181},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 183},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 185},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 187},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 188},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 190},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 192},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 193},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 35, 255},
-	{0xBA, 0xBA, 0, 194},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 5},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 7},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 9},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 14},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 16},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 18},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 21},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 23},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 25},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 27},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 29},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 31},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 33},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 35},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 37},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 39},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 41},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 43},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 45},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 47},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 49},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 51},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 53},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 55},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 57},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 62},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 64},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 66},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 35, 255},
-	{0xBA, 0xBA, 0, 195},
-	{0xA1, 0x6A, 1, 255},
-	{0xA0, 0x67, 1, 255},
-	{0x9F, 0x64, 1, 255},
-	{0x9E, 0x61, 1, 255},
-	{0x9D, 0x5E, 1, 255},
-	{0x9C, 0x5B, 1, 255},
-	{0x9B, 0x58, 1, 255},
-	{0x9A, 0x55, 1, 255},
-	{0x99, 0x52, 1, 255},
-	{0x98, 0x4F, 1, 255},
-	{0x97, 0x4C, 1, 255},
-	{0x96, 0x49, 1, 255},
-	{0x95, 0x46, 1, 255},
-	{0x94, 0x43, 1, 255},
-	{0x93, 0x40, 1, 255},
-	{0x92, 0x3D, 1, 255},
-	{0x91, 0x3A, 1, 255},
-	{0x90, 0x37, 1, 255},
-	{0x8F, 0x34, 1, 255},
-	{0x8E, 0x31, 1, 255},
-	{0x8D, 0x2E, 1, 255},
-	{0x8C, 0x2B, 1, 255},
-	{0x8B, 0x28, 1, 255},
-	{0x8A, 0x25, 1, 255},
-	{0x89, 0x22, 1, 255},
-	{0x88, 0x1F, 1, 255},
-	{0x87, 0x1C, 1, 255},
-	{0x86, 0x19, 1, 255},
-	{0x85, 0x16, 1, 255},
-	{0x84, 0x10, 1, 255},
-	{0x83, 0xD, 1, 255},
-	{0x82, 0xA, 1, 255},
-	{0x81, 0x7, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBA, 0x0, 1, 69},
-	{0xB9, 0xBA, 0, 68},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBB, 0xBB, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 70},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 72},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 74},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 76},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 77},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 79},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 81},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 83},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 84},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 86},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 88},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 90},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 92},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 94},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 96},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 98},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 100},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 102},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 104},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 106},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 108},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 110},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 112},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 114},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 116},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 118},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 120},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 122},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 124},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 125},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 127},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 129},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 130},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 36, 255},
-	{0xB6, 0xFE, 1, 134},
-	{0xAF, 0x71, 1, 133},
-	{0xA1, 0x6E, 1, 255},
-	{0xA0, 0x6B, 1, 255},
-	{0x9F, 0x68, 1, 255},
-	{0x9E, 0x65, 1, 255},
-	{0x9D, 0x62, 1, 255},
-	{0x9C, 0x5F, 1, 255},
-	{0x9B, 0x5C, 1, 255},
-	{0x9A, 0x59, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 68},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 70},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 72},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 74},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 76},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 77},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 79},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 81},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 83},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 84},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 86},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 88},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 90},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 92},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 94},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 96},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 98},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 100},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 102},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 104},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 106},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 108},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 110},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 112},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 114},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 3, 255},
-	{0xBA, 0x3, 1, 117},
-	{0xB9, 0xBA, 0, 116},
-	{0xB7, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 118},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 120},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 122},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 124},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 125},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 127},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 129},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 130},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 34, 255},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 5},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 7},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 9},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 14},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 16},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 18},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 21},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 23},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 25},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 27},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 29},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 31},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 33},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 35},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 37},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 39},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 41},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 43},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 45},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 47},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 49},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 51},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 53},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 55},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 57},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 62},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 64},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 66},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB7, 0xB8, 0, 131},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 34, 255},
-	{0xA1, 0x66, 1, 255},
-	{0xA0, 0x63, 1, 255},
-	{0x9F, 0x60, 1, 255},
-	{0x9E, 0x5D, 1, 255},
-	{0x9D, 0x5A, 1, 255},
-	{0x9C, 0x57, 1, 255},
-	{0x9B, 0x54, 1, 255},
-	{0x9A, 0x51, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 6},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 8},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 10},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 11},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 15},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 17},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 18},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 22},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 24},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 26},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 28},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 30},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 32},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 34},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 36},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 38},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 40},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 42},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 44},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 46},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 48},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 50},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 52},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 54},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 56},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 58},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 59},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 63},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 64},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 35, 255},
-	{0xB6, 0x71, 1, 69},
-	{0xA1, 0x6E, 1, 255},
-	{0xA0, 0x6B, 1, 255},
-	{0x9F, 0x68, 1, 255},
-	{0x9E, 0x65, 1, 255},
-	{0x9D, 0x62, 1, 255},
-	{0x9C, 0x5F, 1, 255},
-	{0x9B, 0x5C, 1, 255},
-	{0x9A, 0x59, 1, 255},
-	{0x99, 0x4E, 1, 255},
-	{0x98, 0x4B, 1, 255},
-	{0x97, 0x48, 1, 255},
-	{0x96, 0x45, 1, 255},
-	{0x95, 0x42, 1, 255},
-	{0x94, 0x3F, 1, 255},
-	{0x93, 0x3C, 1, 255},
-	{0x92, 0x39, 1, 255},
-	{0x91, 0x36, 1, 255},
-	{0x90, 0x33, 1, 255},
-	{0x8F, 0x30, 1, 255},
-	{0x8E, 0x2D, 1, 255},
-	{0x8D, 0x2A, 1, 255},
-	{0x8C, 0x27, 1, 255},
-	{0x8B, 0x24, 1, 255},
-	{0x8A, 0x21, 1, 255},
-	{0x89, 0x1E, 1, 255},
-	{0x88, 0x1B, 1, 255},
-	{0x87, 0x18, 1, 255},
-	{0x86, 0x15, 1, 255},
-	{0x85, 0x12, 1, 255},
-	{0x84, 0xC, 1, 255},
-	{0x83, 0x9, 1, 255},
-	{0x82, 0x6, 1, 255},
-	{0x81, 0x3, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 4},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 6},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 8},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 10},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 12},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 13},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 15},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 17},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 19},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 20},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 22},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 24},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 26},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 28},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 30},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 32},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 34},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 36},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 38},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 40},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 42},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 44},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 46},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 48},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 50},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 3, 255},
-	{0xBA, 0x3, 1, 53},
-	{0xB9, 0xBA, 0, 52},
-	{0xB7, 0x0, 1, 255},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 3},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 54},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 56},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 58},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 60},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 61},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xBA, 0, 63},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 65},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 66},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB7, 0xB8, 0, 67},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB8, 0xB8, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xB9, 0xB9, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBA, 0xBA, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 2, 255},
-	{0xBE, 0xBE, 0, 3},
-	{0xBD, 0x0, 1, 2},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE1, 0x0, 1, 255},
-	{0x80, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xAD, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 255},
-	{0xE0, 0x0, 1, 255},
-	{0xAC, 0x0, 1, 255},
-	{0xB7, 0xB7, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x87, 0x87, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x86, 0x86, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0xA6, 0xA7, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0x8A, 0x8A, 0, 5},
-	{0x87, 0x88, 0, 3},
-	{0x83, 0x83, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x83, 0x83, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0xA8, 0xA8, 0, 5},
-	{0x8B, 0x8B, 0, 4},
-	{0x88, 0x88, 0, 3},
-	{0x82, 0x83, 0, 1},
-	{0x72, 0x72, 0, 1},
-	{0x72, 0x72, 0, 2},
-	{0x52, 0x52, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8B, 0x8B, 0, 3},
-	{0x88, 0x88, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x8D, 0x0, 1, 3},
-	{0xE0, 0x0, 1, 255},
-	{0xAE, 0x0, 1, 255},
-	{0xB7, 0x0, 1, 2},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 1, 255},
-	{0xAF, 0x0, 1, 255},
-	{0x8D, 0x8D, 0, 1},
-	{0xE0, 0x0, 2, 255},
-	{0xB9, 0x1, 1, 255},
-	{0xB8, 0x0, 1, 255},
-	{0xB2, 0xB2, 0, 1},
-	{0x85, 0x85, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x84, 0x84, 0, 2},
-	{0x81, 0x81, 0, 1},
-	{0xDA, 0x0, 1, 255},
-	{0xBE, 0xBE, 0, 1},
-	{0xDA, 0x1, 1, 255},
-	{0xD9, 0x0, 1, 255},
-	{0x94, 0x94, 0, 1},
-	{0xBE, 0xBE, 0, 2},
-	{0xCC, 0x0, 2, 255},
-	{0x9B, 0x9B, 0, 2},
-	{0x82, 0x82, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x9B, 0x9B, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x61, 0x61, 0, 2},
-	{0x88, 0x0, 1, 255},
-	{0x61, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xC3, 0x0, 1, 255},
-	{0xA4, 0xA4, 0, 1},
-	{0x65, 0x65, 0, 1},
-	{0x69, 0x69, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x6F, 0x6F, 0, 2},
-	{0x88, 0x0, 1, 255},
-	{0x6F, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xC3, 0x0, 1, 255},
-	{0xB6, 0xB6, 0, 1},
-	{0x63, 0x0, 1, 255},
-	{0x68, 0x68, 0, 1},
-	{0xCC, 0x0, 1, 255},
-	{0x75, 0x75, 0, 2},
-	{0x88, 0x0, 1, 255},
-	{0x75, 0x0, 1, 255},
-	{0xCC, 0x0, 1, 255},
-	{0x88, 0x88, 0, 1},
-	{0xC3, 0x0, 1, 255},
-	{0xBC, 0xBC, 0, 1},
-	{0xCC, 0x0, 3, 255},
-	{0x8C, 0x8C, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x80, 0x81, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0x8C, 0x8C, 0, 8},
-	{0x84, 0x84, 0, 7},
-	{0x82, 0x0, 1, 255},
-	{0x80, 0x81, 0, 5},
-	{0xCC, 0x0, 3, 255},
-	{0x8C, 0x8C, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x80, 0x81, 0, 1},
-	{0xCC, 0x0, 2, 255},
-	{0x8C, 0x8C, 0, 2},
-	{0x84, 0x84, 0, 1},
-	{0xCC, 0x0, 4, 255},
-	{0x8C, 0x8C, 0, 9},
-	{0x88, 0x0, 1, 8},
-	{0x84, 0x84, 0, 7},
-	{0x80, 0x81, 0, 5},
-	{0xCC, 0x0, 3, 255},
-	{0x8C, 0x8C, 0, 4},
-	{0x84, 0x84, 0, 3},
-	{0x80, 0x81, 0, 1},
-}
-
-// Total size of mainTable is 920988 bytes
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/chars.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/chars.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/chars.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/chars.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,937 +0,0 @@
-// Generated by running
-//  maketables -root=http://unicode.org/Public/UCA/6.0.0/CollationAuxiliary.zip -cldr=http://www.unicode.org/Public/cldr/2.0.1/core.zip
-// DO NOT EDIT
-
-package main
-
-type exemplarType int
-
-const (
-	exCharacters exemplarType = iota
-	exContractions
-	exPunctuation
-	exAuxiliary
-	exCurrency
-	exIndex
-	exN
-)
-
-var exemplarCharacters = map[string][exN]string{
-	"af": {
-		0: "a Ã¡ Ã¢ b c d e Ã© Ã¨ Ãª Ã« f g h i Ã® Ã¯ j k l m n o Ã´ Ã¶ p q r s t u Ã» v w x y z",
-		3: "Ã¡ Ã  Ã¢ Ã¤ Ã£ Ã¦ Ã§ Ã© Ã¨ Ãª Ã« Ã­ Ã¬ Ã® Ã¯ Ã³ Ã² Ã´ Ã¶ Ãº Ã¹ Ã» Ã¼ Ã½",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"agq": {
-		0: "a Ã  Ã¢ ÇŽ Ä b c d e Ã¨ Ãª Ä› Ä“ É› É›Ì€ É›Ì‚ É›ÌŒ É›Ì„ f g h i Ã¬ Ã® Ç Ä« É¨ É¨Ì€ É¨Ì‚ É¨ÌŒ É¨Ì„ k l m n Å‹ o Ã² Ã´ Ç’ Å É” É”Ì€ É”Ì‚ É”ÌŒ É”Ì„ p s t u Ã¹ Ã» Ç” Å« Ê‰ Ê‰Ì€ Ê‰Ì‚ Ê‰ÌŒ Ê‰Ì„ v w y z Ê”",
-		3: "q r x",
-		5: "A B C D E Æ F G H I Æ— K L M N ÅŠ O Æ† P S T U É„ V W Y Z Ê”",
-	},
-	"ak": {
-		0: "a b d e É› f g h i k l m n o É” p r s t u w y",
-		3: "c j q v z",
-		5: "A B C D E Æ F G H I J K L M N O Æ† P Q R S T U V W X Y Z",
-	},
-	"am": {
-		0: "áŸ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆˆ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áˆ  áˆ¡ áˆ¢ áˆ£ áˆ¤ áˆ¥ áˆ¦ áˆ§ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹¯ á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ áŒ° áŒ± áŒ² áŒ³ áŒ´ áŒµ áŒ¶ áŒ· áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á— á˜ á™ áš",
-	},
-	"ar": {
-		0: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ø¡ Ø¢ Ø£ Ø¤ Ø¥ Ø¦ Ø§ Ø¨ Øª Ø© Ø« Ø¬ Ø­ Ø® Ø¯ Ø° Ø± Ø² Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ùƒ Ù„ Ù… Ù† Ù‡ Ùˆ ÙŠ Ù‰",
-		3: "\u200c \u200d \u200e \u200f",
-	},
-	"as": {
-		0: "à¦… à¦† à¦‡ à¦ˆ à¦‰ à¦Š à¦‹ à¦ à¦ à¦“ à¦” à¦‚ à¦ à¦ƒ à¦• à¦– à¦— à¦˜ à¦™ à¦š à¦› à¦œ à¦ à¦ž à¦Ÿ à¦  à¦¡ à¦¡à¦¼ à§œ à¦¢ à¦¢à¦¼ à§ à¦£ à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ à¦¯à¦¼ à§° à¦² à§± à¦¶ à¦· à¦¸ à¦¹ à¦¾ à¦¿ à§€ à§ à§‚ à§ƒ à§‡ à§ˆ à§‹ à§Œ à§",
-		3: "\u200c \u200d à§²",
-	},
-	"asa": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"az": {
-		0: "a b c Ã§ d e É™ f g ÄŸ h x Ä± i iÌ‡ j k q l m n o Ã¶ p r s ÅŸ t u Ã¼ v y z",
-		3: "w",
-	},
-	"az_Cyrl": {
-		0: "Ð° Ó™ Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ð¶ Ð· Ð¸ Ð¹ Ñ˜ Ðº Ò Ð» Ð¼ Ð½ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ„ Ñ… Ò» Ñ‡ Ò¹ Ñˆ Ñ‹",
-		3: "Ñ† Ñ‰ ÑŠ ÑŒ Ñ ÑŽ Ñ",
-	},
-	"bas": {
-		0: "a Ã¡ Ã  Ã¢ ÇŽ Ä aá·† aá·‡ b É“ c d e Ã© Ã¨ Ãª Ä› Ä“ eá·† eá·‡ É› É›Ì É›Ì€ É›Ì‚ É›ÌŒ É›Ì„ É›á·† É›á·‡ f g h i Ã­ Ã¬ Ã® Ç Ä« iá·† iá·‡ j k l m n Å„ Ç¹ Å‹ o Ã³ Ã² Ã´ Ç’ Å oá·† oá·‡ É” É”Ì É”Ì€ É”Ì‚ É”ÌŒ É”Ì„ É”á·† É”á·‡ p r s t u Ãº Ã¹ Ã» Ç” Å« uá·† uá·‡ v w y z",
-		3: "q x",
-		5: "A B Æ C D E Æ F G H I J K L M N ÅŠ O Æ† P R S T U V W Y Z",
-	},
-	"be": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ð´Ð¶ Ð´Ð· Ðµ Ñ‘ Ð¶ Ð· Ñ– Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñž Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‹ ÑŒ Ñ ÑŽ Ñ",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"bem": {
-		0: "a b c e f g i j k l m n o p s sh t u w y",
-		3: "d h q r v x z",
-		5: "A B C E F G I J K L M N O P S SH T U W Y",
-	},
-	"bez": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w y z",
-		3: "x",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W Y Z",
-	},
-	"bg": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ðµ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ ÑŒ ÑŽ Ñ",
-		3: "Ð°Ì€ Ñ Ñ Ð¾Ì€ ÑƒÌ€ ÑŠ Ñ£ ÑŽÌ€ ÑÌ€ Ñ«",
-	},
-	"bm": {
-		0: "a b c d e É› f g h i j k l m n É² Å‹ o É” p r s t u w y z",
-		3: "q v x",
-		5: "A B C D E Æ F G H I J K L M N Æ ÅŠ O Æ† P R S T U W Y Z",
-	},
-	"bn": {
-		0: "à§º à¦… à¦† à¦‡ à¦ˆ à¦‰ à¦Š à¦‹ à§  à¦Œ à§¡ à¦ à¦ à¦“ à¦” à¦¼ à¦‚ à¦ƒ à¦ à¦• à¦•à§à¦· à¦– à¦— à¦˜ à¦™ à¦š à¦› à¦œ à¦ à¦ž à¦Ÿ à¦  à¦¡ à¦¡à¦¼ à¦¢ à¦¢à¦¼ à¦£ à§Ž à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ à¦¯à¦¼ à¦° à¦² à¦¶ à¦· à¦¸ à¦¹ à¦½ à¦¾ à¦¿ à§€ à§ à§‚ à§ƒ à§„ à§¢ à§£ à§‡ à§ˆ à§‹ à§Œ à§ à§—",
-		3: "\u200c \u200d à§¸ à§¹ à§² à§³ à§° à§± à§´ à§µ à§¶ à§·",
-		4: "à§³",
-	},
-	"bo": {
-		0: "à½¾ à½¿ à½€ à½€à¾µ à¾ à¾à¾µ à½ à¾‘ à½‚ à½‚à¾· à¾’ à¾’à¾· à½„ à¾” à½… à¾• à½† à¾– à½‡ à¾— à½‰ à¾™ à½Š à¾š à½‹ à¾› à½Œ à½Œà¾· à¾œ à¾œà¾· à½Ž à¾ž à½ à¾Ÿ à½ à¾  à½‘ à½‘à¾· à¾¡ à¾¡à¾· à½“ à¾£ à½” à¾¤ à½• à¾¥ à½– à½–à¾· à¾¦ à¾¦à¾· à½˜ à¾¨ à½™ à¾© à½š à¾ª à½› à½›à¾· à¾« à¾«à¾· à½ à¾­ à¾º à½ž à¾® à½Ÿ à¾¯ à½  à¾° à½¡ à¾± à¾» à½¢ à½ª à¾² à¾¼ à½£ à¾³ à½¤ à¾´ à½¥ à¾µ à½¦ à¾¶ à½§ à¾· à½¨ à¾¸ à½² à½±à½² à¾€ à½±à¾€ à½´ à½±à½´ à¾²à¾€ à½· à¾³à¾€ à½¹ à½¹ à½º à½» à½¼ à½½ à¾„",
-		3: "à¼€",
-	},
-	"br": {
-		0: "a b ch cÊ¼h d e Ãª f g h i j k l m n Ã± o p r s t u Ã¹ v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ c Ã§ Ã© Ã¨ Ä• Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ q Ãº Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P R S T U V W X Y Z",
-	},
-	"brx": {
-		0: "à¤¼ à¤ à¤‚ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¡à¤¼ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-		5: "à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¡à¤¼ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹",
-	},
-	"bs": {
-		0: "a b c Ä Ä‡ d dÅ¾ Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z Å¾",
-		3: "q w x y",
-	},
-	"byn": {
-		0: "áŸ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆˆ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áˆ¨ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰ á‰ á‰‘ á‰’ á‰“ á‰” á‰• á‰– á‰˜ á‰š á‰š á‰› á‰œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹€ á‹‚ á‹‚ á‹ƒ á‹„ á‹… á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹° á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ˜ áŒ˜ áŒ™ áŒš áŒ› áŒœ áŒ áŒž áŒŸ â¶“ â¶“ â¶” â¶• â¶– áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ áŒ¸ áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ áˆ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á—",
-	},
-	"ca": {
-		0: "a Ã  b c Ã§ d e Ã© Ã¨ f g h i Ã­ Ã¯ j k l Å€ m n o Ã³ Ã² p q r s t u Ãº Ã¼ v w x y z",
-		3: "Ã¡ Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ä« Ã± Âº Å Ã´ Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"cgg": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"chr": {
-		0: "áŽ  áŽ¡ áŽ¢ áŽ£ áŽ¤ áŽ¥ áŽ¦ áŽ§ áŽ¨ áŽ© áŽª áŽ« áŽ¬ áŽ­ áŽ® áŽ¯ áŽ° áŽ± áŽ² áŽ³ áŽ´ áŽµ áŽ¶ áŽ· áŽ¸ áŽ¹ áŽº áŽ» áŽ¼ áŽ½ áŽ¾ áŽ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á— á˜ á™ áš á› áœ á áž áŸ á  á¡ á¢ á£ á¤ á¥ á¦ á§ á¨ á© áª á« á¬ á­ á® á¯ á° á± á² á³ á´",
-		5: "áŽ  áŽ¦ áŽ­ áŽ³ áŽ¹ áŽ¾ á† áŒ á“ áœ á£ á© á¯",
-	},
-	"cs": {
-		0: "a Ã¡ b c Ä d Ä e Ã© Ä› f g h ch i Ã­ j k l m n Åˆ o Ã³ p q r Å™ s Å¡ t Å¥ u Ãº Å¯ v w x y Ã½ z Å¾",
-	},
-	"cy": {
-		0: "a Ã¡ Ã  Ã¢ Ã¤ b c ch d dd e Ã© Ã¨ Ãª Ã« f ff g ng h i Ã­ Ã¬ Ã® Ã¯ l ll m n o Ã³ Ã² Ã´ Ã¶ p ph r rh s t th u Ãº Ã¹ Ã» Ã¼ w áºƒ áº Åµ áº… y Ã½ á»³ Å· Ã¿",
-		3: "j k q v x z",
-	},
-	"da": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z Ã¦ Ã¸ Ã¥",
-		2: "- â€ â€“ , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€² â€³ Â§",
-		3: "Ã¡ Ã© Ã¨ Ãª Ã« Ã¼ Ã¤ Ã¶",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã† Ã˜ Ã…",
-	},
-	"dav": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"de": {
-		0: "a Ã¤ b c d e f g h i j k l m n o Ã¶ p q r s ÃŸ t u Ã¼ v w x y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€š \" â€œ â€ž Â« Â» ( ) [ ] { } @ * / & # Â§",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"dje": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n É² Å‹ o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-		5: "A B C D E F G H I J K L M N Æ ÅŠ O P Q R S T U W X Y Z",
-	},
-	"dua": {
-		0: "a Ã¡ b É“ c d É— e Ã© É› É›Ì f g i Ã­ j k l m n ny Å‹ o Ã³ É” É”Ì p r s t u Ãº Å« w y",
-		3: "h q v x z",
-		5: "A B Æ C D ÆŠ E Æ F G I J K L M N ÅŠ O Æ† P S T U W Y",
-	},
-	"dyo": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ j k l m n Ã± Å‹ o Ã³ p q r s t u Ãº v w x y",
-		3: "z",
-		5: "A B C D E F G H I J K L M N Ã‘ ÅŠ O P Q R S T U V W X Y",
-	},
-	"dz": {
-		0: "à½€ à¾ à½ à¾‘ à½‚ à¾’ à½„ à¾” à½… à½† à½‡ à¾— à½‰ à¾™ à½ à¾Ÿ à½ à½‘ à¾¡ à½“ à¾£ à½” à¾¤ à½• à½– à¾¦ à½˜ à¾¨ à½™ à¾© à½š à½› à¾« à½ à¾­ à½ž à½Ÿ à½  à½¡ à¾± à½¢ à¾² à½£ à¾³ à½¤ à¾µ à½¦ à½§ à¾· à½¨ à½² à½´ à½º à½¼",
-		3: "à½Š à½‹ à½Œ à½Ž à½¥",
-	},
-	"ebu": {
-		0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w x y z",
-		5: "A B C D E F G H I Ä¨ J K L M N O P Q R S T U Å¨ V W X Y Z",
-	},
-	"ee": {
-		0: "a Ã¡ Ã  Ã£ b d É– e Ã© Ã¨ áº½ É› É›Ì É›Ì€ É›Ìƒ f Æ’ g É£ h i Ã­ Ã¬ Ä© k l m n Å‹ o Ã³ Ã² Ãµ É” É”Ì É”Ì€ É”Ìƒ p r s t u Ãº Ã¹ Å© v Ê‹ w x y z",
-		3: "c j q",
-		5: "A B C D Æ‰ E Æ F Æ‘ G Æ” H I J K L M N ÅŠ O Æ† P Q R S T U V Æ² W X Y Z",
-	},
-	"el": {
-		0: "Î± Î¬ Î² Î³ Î´ Îµ Î­ Î¶ Î· Î® Î¸ Î¹ Î¯ ÏŠ Î Îº Î» Î¼ Î½ Î¾ Î¿ ÏŒ Ï€ Ï Ïƒ Ï‚ Ï„ Ï… Ï Ï‹ Î° Ï† Ï‡ Ïˆ Ï‰ ÏŽ",
-		2: "- â€ â€“ â€” , ; : ! . â€¦ \" ( ) [ ] @ * / \\ & Â§",
-		4: "Î± Î² Î³ Î´ Îµ Î¶ Î· Î¸ Î¹ Îº Î» Î¼ Î½ Î¾ Î¿ Ï€ Ï Ïƒ Ï„ Ï… Ï† Ï‡ Ïˆ Ï‰",
-		5: "Î‘ Î’ Î“ Î” Î• Î– Î— Î˜ Î™ Îš Î› Îœ Î Îž ÎŸ Î  Î¡ Î£ Î¤ Î¥ Î¦ Î§ Î¨ Î©",
-	},
-	"el_POLYTON": {
-		0: "Î± á¼€ á¼„ á¼‚ á¼† á¼ á¼… á¼ƒ á¼‡ Î¬ á½° á¾¶ Î² Î³ Î´ Îµ á¼ á¼” á¼’ á¼‘ á¼• á¼“ Î­ á½² Î¶ Î· á¼  á¼¤ á¼¢ á¼¦ á¼¡ á¼¥ á¼£ á¼§ Î® á½´ á¿† Î¸ Î¹ á¼° á¼´ á¼² á¼¶ á¼± á¼µ á¼³ á¼· Î¯ á½¶ á¿– ÏŠ Î á¿’ á¿— Îº Î» Î¼ Î½ Î¾ Î¿ á½„ á½‚ á½ƒ ÏŒ á½¸ Ï€ Ï Ïƒ Ï‚ Ï„ Ï… á½ á½” á½’ á½– á½‘ á½• á½“ á½— Ï á½º á¿¦ Ï‹ Î° á¿¢ á¿§ Ï† Ï‡ Ïˆ Ï‰ á½¤ á½¢ á½¦ á½¥ á½£ á½§ ÏŽ á½¼ á¿¶",
-	},
-	"en": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"en_Dsrt": {
-		0: "ð¨ ð© ðª ð« ð¬ ð­ ð® ð¯ ð° ð± ð² ð³ ð´ ðµ ð¶ ð· ð¸ ð¹ ðº ð» ð¼ ð½ ð¾ ð¿ ð‘€ ð‘ ð‘‚ ð‘ƒ ð‘„ ð‘… ð‘† ð‘‡ ð‘ˆ ð‘‰ ð‘Š ð‘‹ ð‘Œ ð‘ ð‘Ž ð‘",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"en_GB": {
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"en_Shaw": {
-		0: "ð‘ ð‘‘ ð‘’ ð‘“ ð‘” ð‘• ð‘– ð‘— ð‘˜ ð‘™ ð‘š ð‘› ð‘œ ð‘ ð‘ž ð‘Ÿ ð‘  ð‘¡ ð‘¢ ð‘£ ð‘¤ ð‘¥ ð‘¦ ð‘§ ð‘¨ ð‘© ð‘ª ð‘« ð‘¬ ð‘­ ð‘® ð‘¯ ð‘° ð‘± ð‘² ð‘³ ð‘´ ð‘µ ð‘¶ ð‘· ð‘¸ ð‘¹ ð‘º ð‘» ð‘¼ ð‘½ ð‘¾ ð‘¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"eo": {
-		0: "a b c Ä‰ d e f g Ä h Ä¥ i j Äµ k l m n o p r s Å t u Å­ v z",
-		3: "q w x y",
-		5: "A B C Äˆ D E F G Äœ H Ä¤ I J Ä´ K L M N O P R S Åœ T U Å¬ V Z",
-	},
-	"es": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ j k l m n Ã± o Ã³ p q r s t u Ãº Ã¼ v w x y z",
-		2: "- â€ â€“ â€” , ; : ! Â¡ ? Â¿ . â€¦ ' â€˜ â€™ \" â€œ â€ Â« Â» ( ) [ ] @ * / \\ & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã¨ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Âº Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N Ã‘ O P Q R S T U V W X Y Z",
-	},
-	"et": {
-		0: "a b c d e f g h i j k l m n o p q r s Å¡ z Å¾ t u v w Ãµ Ã¤ Ã¶ Ã¼ x y",
-		3: "Ã¡ Ã  Ã¢ Ã¥ Ä Ã¦ Ã§ Ã© Ã¨ Ãª Ã« Ä“ Ã­ Ã¬ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ Ãº Ã¹ Ã» Å«",
-		4: "a b c d e f g h i j k l m n o p q r s Å¡ z Å¾ t u v w Ãµ Ã¤ Ã¶ Ã¼ x y",
-		5: "A B C D E F G H I J K L M N O P Q R S Å  Z Å½ T U V Ã• Ã„ Ã– Ãœ X Y",
-	},
-	"eu": {
-		0: "a b c Ã§ d e f g h i j k l m n Ã± o p q r s t u v w x y z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ewo": {
-		0: "a Ã¡ Ã  Ã¢ ÇŽ b d dz e Ã© Ã¨ Ãª Ä› Ç ÇÌ ÇÌ€ ÇÌ‚ ÇÌŒ É› É›Ì É›Ì€ É›Ì‚ É›ÌŒ f g h i Ã­ Ã¬ Ã® Ç k kp l m n Å„ Ç¹ ng nk Å‹ o Ã³ Ã² Ã´ Ç’ É” É”Ì É”Ì€ É”Ì‚ É”ÌŒ p r s t ts u Ãº Ã¹ Ã» Ç” v w y z",
-		3: "c j q x",
-		5: "A B D E ÆŽ Æ F G H I K L M N ÅŠ O Æ† P R S T U V W Y Z",
-	},
-	"fa": {
-		0: "Ù‹ Ù ÙŒ Ù‘ Ù” Ø¢ Ø§ Ø¡ Ø£ Ø¤ Ø¦ Ø¨ Ù¾ Øª Ø« Ø¬ Ú† Ø­ Ø® Ø¯ Ø° Ø± Ø² Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ Ø© ÛŒ",
-		2: "- â€ ØŒ Ù« Ù¬ Ø› : ! ØŸ . â€¦ Â« Â» ( ) [ ] * / \\",
-		3: "\u200c \u200d \u200e \u200f ÙŽ Ù Ù Ù’ Ù– Ù° Û° Û± Û² Û³ Û´ Ûµ Û¶ Û· Û¸ Û¹",
-		4: "ï·¼ a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "Ø¢ Ø§ Ø¨ Ù¾ Øª Ø« Ø¬ Ú† Ø­ Ø® Ø¯ Ø° Ø± Ø² Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Ùˆ Ù‡ ÛŒ",
-	},
-	"fa_AF": {
-		3: "Ù– Ù° \u200c \u200d Ù¼ Ú Ú… Ú‰ Ú“ Ú– Úš Ú« Ú¼ ÙŠ",
-	},
-	"ff": {
-		0: "a b É“ c d É— e f g h i j k l m n Ã± Å‹ o p r s t u w y Æ´",
-		3: "q v x z",
-		5: "A B Æ C D ÆŠ E F G H I J K L M N Ã‘ ÅŠ O P R S T U W Y Æ³",
-	},
-	"fi": {
-		0: "a b c d e f g h i j k l m n o p q r s Å¡ t u v w x y z Å¾ Ã¥ Ã¤ Ã¶",
-		3: "Ã¡ Ã  Ã¢ Ã£ Ä Ã§ Ä‘ Ã© Ã¨ Ã« Ç§ Ç¥ ÈŸ Ã­ Ã¯ Ç© Å„ Ã± Å‹ Ã´ Ãµ Å“ Å™ Å§ Ãº Ã¼ Ê’ Ç¯ Ã¦ Ã¸",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã… Ã„ Ã–",
-	},
-	"fil": {
-		0: "a b c d e f g h i j k l m n Ã± ng o p q r s t u v w x y z",
-		3: "Ã¡ Ã  Ã¢ Ã© Ã¨ Ãª Ã­ Ã¬ Ã® Ã³ Ã² Ã´ Ãº Ã¹ Ã»",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"fo": {
-		0: "a Ã¡ b d Ã° e f g h i Ã­ j k l m n o Ã³ p r s t u Ãº v x y Ã½ Ã¦ Ã¸",
-		3: "c q w z",
-	},
-	"fr": {
-		0: "a Ã  Ã¢ Ã¦ b c Ã§ d e Ã© Ã¨ Ãª Ã« f g h i Ã® Ã¯ j k l m n o Ã´ Å“ p q r s t u Ã¹ Ã» Ã¼ v w x y Ã¿ z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ â€™ Â« Â» ( ) [ ] @ * / & # â€  â€¡ Â§",
-		3: "Ã¡ Ã¥ Ã¤ Ã£ Ä Ä“ Ã­ Ã¬ Ä« Ã± Ã³ Ã² Ã¶ Ã¸ Ãº Ç”",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"fur": {
-		0: "a Ã  Ã¢ b c Ã§ d e Ã¨ Ãª f g h i Ã¬ Ã® j k l m n o Ã² Ã´ p q r s t u Ã¹ Ã» v w x y z",
-		3: "Ã¥ Ä Ã© Ã« ÄŸ Ã¯ Ã± Ã³ Å¡ Ã¼",
-	},
-	"ga": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ l m n o Ã³ p r s t u Ãº",
-		3: "á¸ƒ Ä‹ á¸‹ á¸Ÿ Ä¡ j k á¹ á¹— q á¹¡ á¹« v w x y z",
-	},
-	"gl": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ j k l m n Ã± o Ã³ p q r s t u Ãº Ã¼ v w x y z",
-		5: "A B C D E F G H I J K L M N Ã‘ O P Q R S T U V W X Y Z",
-	},
-	"gsw": {
-		0: "a Ã¤ b c d e f g h i j k l m n o Ã¶ p q r s t u Ã¼ v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"gu": {
-		0: "àª¼ à« àª‚ àª àªƒ àª… àª† àª‡ àªˆ àª‰ àªŠ àª‹ à«  àª àª àª àª‘ àª“ àª” àª• àª– àª— àª˜ àª™ àªš àª› àªœ àª àªž àªŸ àª  àª¡ àª¢ àª£ àª¤ àª¥ àª¦ àª§ àª¨ àªª àª« àª¬ àª­ àª® àª¯ àª° àª² àªµ àª¶ àª· àª¸ àª¹ àª³ àª½ àª¾ àª¿ à«€ à« à«‚ à«ƒ à«„ à«… à«‡ à«ˆ à«‰ à«‹ à«Œ à«",
-		3: "\u200c \u200d",
-		4: "àª° à«‚",
-		5: "àª… àª† àª‡ àªˆ àª‰ àªŠ àª‹ àª àª àª“ àª” àª• àª– àª— àª˜ àª™ àªš àª› àªœ àª àªž àªŸ àª  àª¡ àª¢ àª£ àª¤ àª¥ àª¦ àª§ àª¨ àªª àª« àª¬ àª­ àª® àª¯ àª° àª² àªµ àª¶ àª· àª¸ àª¹ àª³",
-	},
-	"guz": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"gv": {
-		0: "a b c Ã§ d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ha": {
-		0: "a b É“ c d É— e f g h i j k Æ™ l m n o r s sh t ts u w y Ê¼y z Ê¼",
-		3: "Ã¡ Ã  Ã¢ Ã© Ã¨ Ãª Ã­ Ã¬ Ã® Ã³ Ã² Ã´ p q rÌƒ Ãº Ã¹ Ã» v x Æ´",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"haw": {
-		0: "a Ä e Ä“ i Ä« o Å u Å« h k l m n p w Ê»",
-		3: "b c d f g j q r s t v x y z",
-	},
-	"he": {
-		0: "× ×‘ ×’ ×“ ×” ×• ×– ×— ×˜ ×™ ×› ×š ×œ ×ž × ×  ×Ÿ ×¡ ×¢ ×¤ ×£ ×¦ ×¥ ×§ ×¨ ×© ×ª",
-		3: "Ö½ ×„ \u200e \u200f Ö° Ö± Ö² Ö³ Ö´ Öµ Ö¶ Ö· Ö¸ Ö¹ Ö» ×‚ × Ö¼ Ö¿ Ö¾ ×³ ×´",
-		5: "× ×‘ ×’ ×“ ×” ×• ×– ×— ×˜ ×™ ×› ×œ ×ž ×  ×¡ ×¢ ×¤ ×¦ ×§ ×¨ ×© ×ª",
-	},
-	"hi": {
-		0: "à¤¼ à¥ à¤‚ à¤ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"hr": {
-		0: "a b c Ä Ä‡ d dÅ¾ Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z Å¾",
-		3: "q w x y",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C ÄŒ Ä† D DÅ½ Ä E F G H I J K L LJ M N NJ O P Q R S Å  T U V W X Y Z Å½",
-	},
-	"hu": {
-		0: "a Ã¡ b c cs ccs d dz ddz dzs ddzs e Ã© f g gy ggy h i Ã­ j k l ly lly m n ny nny o Ã³ Ã¶ Å‘ p r s sz ssz t ty tty u Ãº Ã¼ Å± v z zs zzs",
-		2: "- â€“ , ; : ! ? . â€¦ ' â€™ \" â€ â€ž Â« Â» ( ) [ ] { } ã€ˆ ã€‰ @ * / & # â¸“ Â§ ~",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã¨ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã² Å Ã´ Ã¸ Å Å“ q Ã¹ Å­ Ã» Å« w x y Ã¿",
-		5: "A Ã B C CS D DZ DZS E Ã‰ F G GY H I Ã J K L LY M N NY O Ã“ Ã– Å P Q R S SZ T TY U Ãš Ãœ Å° V W X Y Z ZS",
-	},
-	"hy": {
-		0: "ÖŠ Õ Õœ Õž Õš Õ› ÕŸ Õ¡ Õ¢ Õ£ Õ¤ Õ¥ Õ¦ Õ§ Õ¨ Õ© Õª Õ« Õ¬ Õ­ Õ® Õ¯ Õ° Õ± Õ² Õ³ Õ´ Õµ Õ¶ Õ· Õ¸ Õ¹ Õº Õ» Õ¼ Õ½ Õ¾ Õ¿ Ö€ Ö Ö‚ Öƒ Ö„ Ö‡ Ö… Ö†",
-	},
-	"ia": {
-		0: "a b c ch d e f g h i j k l m n o p ph q r s t u v w x y z",
-	},
-	"id": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ig": {
-		0: "a b ch d e áº¹ f g gb gh gw h i á»‹ j k kp kw l m n á¹… nw ny o á» p r s sh t u á»¥ v w y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ii": {
-		0: "ê€€ ê€€ ê€ ê€‚ ê€ƒ ê€„ ê€… ê€† ê€‡ ê€ˆ ê€‰ ê€Š ê€‹ ê€Œ ê€ ê€Ž ê€ ê€ ê€‘ ê€’ ê€“ ê€” ê€• ê€– ê€— ê€˜ ê€™ ê€š ê€› ê€œ ê€ ê€ž ê€Ÿ ê€  ê€¡ ê€¢ ê€£ ê€¤ ê€¥ ê€¦ ê€§ ê€¨ ê€© ê€ª ê€« ê€¬ ê€­ ê€® ê€¯ ê€° ê€± ê€² ê€³ ê€´ ê€µ ê€¶ ê€· ê€¸ ê€¹ ê€º ê€» ê€¼ ê€½ ê€¾ ê€¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê‚€ ê‚ ê‚‚ ê‚ƒ ê‚„ ê‚… ê‚† ê‚‡ ê‚ˆ ê‚‰ ê‚Š ê‚‹ ê‚Œ ê‚ ê‚Ž ê‚ ê‚ ê‚‘ ê‚’ ê‚“ ê‚” ê‚• ê‚– ê‚— ê‚˜ ê‚™ ê‚š ê‚› ê‚œ ê‚ ê‚ž ê‚Ÿ ê‚  ê‚¡ ê‚¢ ê‚£ ê‚¤ ê‚¥ ê‚¦ ê‚§ ê‚¨ ê‚© ê‚ª ê‚« ê‚¬ ê‚­ ê‚® ê‚¯ ê‚° ê‚± ê‚² ê‚³ ê‚´ ê‚µ ê‚¶ ê‚· ê‚¸ ê‚¹ ê‚º ê‚» ê‚¼ ê‚½ ê‚¾ ê‚¿ êƒ€ êƒ êƒ‚ êƒƒ êƒ„ êƒ… êƒ† êƒ‡ êƒˆ êƒ‰ êƒŠ êƒ‹ êƒŒ êƒ êƒŽ êƒ êƒ êƒ‘ êƒ’ êƒ“ êƒ” êƒ• êƒ– êƒ— êƒ˜ êƒ™ êƒš êƒ› êƒœ êƒ êƒž êƒŸ êƒ  êƒ¡ êƒ¢ êƒ£ êƒ¤ êƒ¥ êƒ¦ êƒ§ êƒ¨ êƒ© êƒª êƒ« êƒ¬ êƒ­ êƒ® êƒ¯ êƒ° êƒ± êƒ² êƒ³ êƒ´ êƒµ êƒ¶ êƒ· êƒ¸ êƒ¹ êƒº êƒ» êƒ¼ êƒ½ êƒ¾ êƒ¿ ê„€ ê„ ê„‚ ê„ƒ ê„„ ê„… ê„† ê„‡ ê„ˆ ê„‰ ê„Š ê„‹ ê„Œ ê„ ê„Ž ê„ ê„ ê„‘ ê„’ ê„“ ê„” ê„• ê„– ê„— ê„˜ ê„™ ê„š ê„› ê„œ ê„ ê„ž ê„Ÿ ê„  ê„¡ ê„¢ ê„£ ê„¤ ê„¥ ê„¦ ê„§ ê„¨ ê„© ê„ª ê„« ê„¬ ê„­ ê„® ê„¯ ê„° ê„± ê„² ê„³ ê„´ ê„µ ê„¶ ê„· ê„¸ ê„¹ ê„º ê„» ê„¼ ê„½ ê„¾ ê„¿ ê…€ ê… ê…‚ ê…ƒ ê…„ ê…… ê…† ê…‡ ê…ˆ ê…‰ ê…Š ê…‹ ê…Œ ê… ê…Ž ê… ê… ê…‘ ê…’ ê…“ ê…” ê…• ê…– ê…— ê…˜ ê…™ ê…š ê…› ê…œ ê… ê…ž ê…Ÿ ê…  ê…¡ ê…¢ ê…£ ê…¤ ê…¥ ê…¦ ê…§ ê…¨ ê…© ê…ª ê…« ê…¬ ê…­ ê…® ê…¯ ê…° ê…± ê…² ê…³ ê…´ ê…µ ê…¶ ê…· ê…¸ ê…¹ ê…º ê…» ê…¼ ê…½ ê…¾ ê…¿ ê†€ ê† ê†‚ ê†ƒ ê†„ ê†… ê†† ê†‡ ê†ˆ ê†‰ ê†Š ê†‹ ê†Œ ê† ê†Ž ê† ê† ê†‘ ê†’ ê†“ ê†” ê†• ê†– ê†— ê†˜ ê†™ ê†š ê†› ê†œ ê† ê†ž ê†Ÿ ê†  ê†¡ ê†¢ ê†£ ê†¤ ê†¥ ê†¦ ê†§ ê†¨ ê†© ê†ª ê†« ê†¬ ê†­ ê†® ê†¯ ê†° ê†± ê†² ê†³ ê†´ ê†µ ê†¶ ê†· ê†¸ ê†¹ ê†º ê†» ê†¼ ê†½ ê†¾ ê†¿ ê‡€ ê‡ ê‡‚ ê‡ƒ ê‡„ ê‡… ê‡† ê‡‡ ê‡ˆ ê‡‰ ê‡Š ê‡‹ ê‡Œ ê‡ ê‡Ž ê‡ ê‡ ê‡‘ ê‡’ ê‡“ ê‡” ê‡• ê‡– ê‡— ê‡˜ ê‡™ ê‡š ê‡› ê‡œ ê‡ ê‡ž ê‡Ÿ ê‡  ê‡¡ ê‡¢ ê‡£ ê‡¤ ê‡¥ ê‡¦ ê‡§ ê‡¨ ê‡© ê‡ª ê‡« ê‡¬ ê‡­ ê‡® ê‡¯ ê‡° ê‡± ê‡² ê‡³ ê‡´ ê‡µ ê‡¶ ê‡· ê‡¸ ê‡¹ ê‡º ê‡» ê‡¼ ê‡½ ê‡¾ ê‡¿ êˆ€ êˆ êˆ‚ êˆƒ êˆ„ êˆ… êˆ† êˆ‡ êˆˆ êˆ‰ êˆŠ êˆ‹ êˆŒ êˆ êˆŽ êˆ êˆ êˆ‘ êˆ’ êˆ“ êˆ” êˆ• êˆ– êˆ— êˆ˜ êˆ™ êˆš êˆ› êˆœ êˆ êˆž êˆŸ êˆ  êˆ¡ êˆ¢ êˆ£ êˆ¤ êˆ¥ êˆ¦ êˆ§ êˆ¨ êˆ© êˆª êˆ« êˆ¬ êˆ­ êˆ® êˆ¯ êˆ° êˆ± êˆ² êˆ³ êˆ´ êˆµ êˆ¶ êˆ· êˆ¸ êˆ¹ êˆº êˆ» êˆ¼ êˆ½ êˆ¾ êˆ¿ ê‰€ ê‰ ê‰‚ ê‰ƒ ê‰„ ê‰… ê‰† ê‰‡ ê‰ˆ ê‰‰ ê‰Š ê‰‹ ê‰Œ ê‰ ê‰Ž ê‰ ê‰ ê‰‘ ê‰’ ê‰“ ê‰” ê‰• ê‰– ê‰— ê‰˜ ê‰™ ê‰š ê‰› ê‰œ ê‰ ê‰ž ê‰Ÿ ê‰  ê‰¡ ê‰¢ ê‰£ ê‰¤ ê‰¥ ê‰¦ ê‰§ ê‰¨ ê‰© ê‰ª ê‰« ê‰¬ ê‰­ ê‰® ê‰¯ ê‰° ê‰± ê‰² ê‰³ ê‰´ ê‰µ ê‰¶ ê‰· ê‰¸ ê‰¹ ê‰º ê‰» ê‰¼ ê‰½ ê‰¾ ê‰¿ êŠ€ êŠ êŠ‚ êŠƒ êŠ„ êŠ… êŠ† êŠ‡ êŠˆ êŠ‰ êŠŠ êŠ‹ êŠŒ êŠ êŠŽ êŠ êŠ êŠ‘ êŠ’ êŠ“ êŠ” êŠ• êŠ– êŠ— êŠ˜ êŠ™ êŠš êŠ› êŠœ êŠ êŠž êŠŸ êŠ  êŠ¡ êŠ¢ êŠ£ êŠ¤ êŠ¥ êŠ¦ êŠ§ êŠ¨ êŠ© êŠª êŠ« êŠ¬ êŠ­ êŠ® êŠ¯ êŠ° êŠ± êŠ² êŠ³ êŠ´ êŠµ êŠ¶ êŠ· êŠ¸ êŠ¹ êŠº êŠ» êŠ¼ êŠ½ êŠ¾ êŠ¿ ê‹€ ê‹ ê‹‚ ê‹ƒ ê‹„ ê‹… ê‹† ê‹‡ ê‹ˆ ê‹‰ ê‹Š ê‹‹ ê‹Œ ê‹ ê‹Ž ê‹ ê‹ ê‹‘ ê‹’ ê‹“ ê‹” ê‹• ê‹– ê‹— ê‹˜ ê‹™ ê‹š ê‹› ê‹œ ê‹ ê‹ž ê‹Ÿ ê‹  ê‹¡ ê‹¢ ê‹£ ê‹¤ ê‹¥ ê‹¦ ê‹§ ê‹¨ ê‹© ê‹ª ê‹« ê‹¬ ê‹­ ê‹® ê‹¯ ê‹° ê‹± ê‹² ê‹³ ê‹´ ê‹µ ê‹¶ ê‹· ê‹¸ ê‹¹ ê‹º ê‹» ê‹¼ ê‹½ ê‹¾ ê‹¿ êŒ€ êŒ êŒ‚ êŒƒ êŒ„ êŒ… êŒ† êŒ‡ êŒˆ êŒ‰ êŒŠ êŒ‹ êŒŒ êŒ êŒŽ êŒ êŒ êŒ‘ êŒ’ êŒ“ êŒ” êŒ• êŒ– êŒ— êŒ˜ êŒ™ êŒš êŒ› êŒœ êŒ êŒž êŒŸ êŒ  êŒ¡ êŒ¢ êŒ£ êŒ¤ êŒ¥ êŒ¦ êŒ§ êŒ¨ êŒ© êŒª êŒ« êŒ¬ êŒ­ êŒ® êŒ¯ êŒ° êŒ± êŒ² êŒ³ êŒ´ êŒµ êŒ¶ êŒ· êŒ¸ êŒ¹ êŒº êŒ» êŒ¼ êŒ½ êŒ¾ êŒ¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ êŽ€ êŽ êŽ‚ êŽƒ êŽ„ êŽ… êŽ† êŽ‡ êŽˆ êŽ‰ êŽŠ êŽ‹ êŽŒ êŽ êŽŽ êŽ êŽ êŽ‘ êŽ’ êŽ“ êŽ” êŽ• êŽ– êŽ— êŽ˜ êŽ™ êŽš êŽ› êŽœ êŽ êŽž êŽŸ êŽ  êŽ¡ êŽ¢ êŽ£ êŽ¤ êŽ¥ êŽ¦ êŽ§ êŽ¨ êŽ© êŽª êŽ« êŽ¬ êŽ­ êŽ® êŽ¯ êŽ° êŽ± êŽ² êŽ³ êŽ´ êŽµ êŽ¶ êŽ· êŽ¸ êŽ¹ êŽº êŽ» êŽ¼ êŽ½ êŽ¾ êŽ¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê€ ê ê‚ êƒ ê„ ê… ê† ê‡ êˆ ê‰ êŠ ê‹ êŒ ê êŽ ê ê ê‘ ê’ ê“ ê” ê• ê– ê— ê˜ ê™ êš ê› êœ ê êž êŸ ê  ê¡ ê¢ ê£ ê¤ ê¥ ê¦ ê§ ê¨ ê© êª ê« ê¬ ê­ ê® ê¯ ê° ê± ê² ê³ ê´ êµ ê¶ ê· ê¸ ê¹ êº ê» ê¼ ê½ ê¾ ê¿ ê‘€ ê‘ ê‘‚ ê‘ƒ ê‘„ ê‘… ê‘† ê‘‡ ê‘ˆ ê‘‰ ê‘Š ê‘‹ ê‘Œ ê‘ ê‘Ž ê‘ ê‘ ê‘‘ ê‘’ ê‘“ ê‘” ê‘• ê‘– ê‘— ê‘˜ ê‘™ ê‘š ê‘› ê‘œ ê‘ ê‘ž ê‘Ÿ ê‘  ê‘¡ ê‘¢ ê‘£ ê‘¤ ê‘¥ ê‘¦ ê‘§ ê‘¨ ê‘© ê‘ª ê‘« ê‘¬ ê‘­ ê‘® ê‘¯ ê‘° ê‘± ê‘² ê‘³ ê‘´ ê‘µ ê‘¶ ê‘· ê‘¸ ê‘¹ ê‘º ê‘» ê‘¼ ê‘½ ê‘¾ ê‘¿ ê’€ ê’ ê’‚ ê’ƒ ê’„ ê’… ê’† ê’‡ ê’ˆ ê’‰ ê’Š ê’‹ ê’Œ",
-	},
-	"is": {
-		0: "a Ã¡ b d Ã° e Ã© f g h i Ã­ j k l m n o Ã³ p r s t u Ãº v y Ã½ Ã¾ Ã¦ Ã¶",
-		3: "c q w x z",
-	},
-	"it": {
-		0: "a Ã  b c d e Ã© Ã¨ f g h i Ã¬ j k l m n o Ã³ Ã² p q r s t u Ã¹ v w x y z",
-		2: "- â€” , ; : ! ? . â€¦ â€œ â€ ( ) [ ] { } @ /",
-		3: "Ã­ Ã¯ Ãº",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ja": {
-		0: "ã‚ž ã‚ ãƒ½ ãƒ¾ ã ã‚¡ ã‚ ã‚¢ ãƒ ã‚£ ã„ ã‚¤ ã… ã‚¥ ã† ã‚¦ ãƒ´ ã‡ ã‚§ ãˆ ã‚¨ ã‰ ã‚© ãŠ ã‚ª ãƒµ ã‹ ã‚« ãŒ ã‚¬ ã ã‚­ ãŽ ã‚® ã ã‚¯ ã ã‚° ãƒ¶ ã‘ ã‚± ã’ ã‚² ã“ ã‚³ ã” ã‚´ ã• ã‚µ ã– ã‚¶ ã— ã‚· ã˜ ã‚¸ ã™ ã‚¹ ãš ã‚º ã› ã‚» ãœ ã‚¼ ã ã‚½ ãž ã‚¾ ãŸ ã‚¿ ã  ãƒ€ ã¡ ãƒ ã¢ ãƒ‚ ã£ ãƒƒ ã¤ ãƒ„ ã¥ ãƒ… ã¦ ãƒ† ã§ ãƒ‡ ã¨ ãƒˆ ã© ãƒ‰ ãª ãƒŠ ã« ãƒ‹ ã¬ ãƒŒ ã­ ãƒ ã® ãƒŽ ã¯ ãƒ ã° ãƒ ã± ãƒ‘ ã² ãƒ’ ã³ ãƒ“ ã´ ãƒ” ãµ ãƒ• ã¶ ãƒ– ã· ãƒ— ã¸ ãƒ˜ ã¹ ãƒ™ ãº ãƒš ã» ãƒ› ã¼ ãƒœ ã½ ãƒ ã¾ ãƒž ã¿ ãƒŸ ã‚€ ãƒ  ã‚ ãƒ¡ ã‚‚ ãƒ¢ ã‚ƒ ãƒ£ ã‚„ ãƒ¤ ã‚… ãƒ¥ ã‚† ãƒ¦ ã‚‡ ãƒ§ ã‚ˆ ãƒ¨ ã‚‰ ãƒ© ã‚Š ãƒª ã‚‹ ãƒ« ã‚Œ ãƒ¬ ã‚ ãƒ­ ã‚Ž ãƒ® ã‚ ãƒ¯ ã‚ ãƒ° ã‚‘ ãƒ± ã‚’ ãƒ² ã‚“ ãƒ³ ä¸€ ä¸ ä¸ƒ ä¸‡ ä¸‡ ä¸ˆ ä¸‰ ä¸Š ä¸‹ ä¸ ä¸Ž ä¸” ä¸– ä¸˜ ä¸™ ä¸¡ ä¸¦ ä¸­ ä¸¸ ä¸¹ ä¸» ä¹… ä¹ ä¹— ä¹™ ä¹ ä¹± ä¹³ ä¹¾ äº€ äº† äºˆ äº‰ äº‹ äºŒ äº’ äº” äº• äºœ äº¡ äº¤ äº¨ äº« äº« äº¬ äº­ äºº ä» ä»Š ä»‹ ä» ä»• ä»– ä»˜ ä»™ ä»£ ä»£ ä»¤ ä»¥ ä»® ä»° ä»² ä»¶ ä»» ä¼ ä¼ ä¼ ä¼ ä¼‘ ä¼š ä¼ ä¼¯ ä¼´ ä¼¸ ä¼º ä¼¼ ä½† ä½ ä½ ä½Ž ä½ ä½ ä½“ ä½• ä½™ ä½œ ä½³ ä½µ ä½¿ ä¾‹ ä¾ ä¾› ä¾ ä¾¡ ä¾® ä¾¯ ä¾µ ä¾¿ ä¿‚ ä¿ƒ ä¿Š ä¿— ä¿ ä¿¡ ä¿® ä¿³ ä¿µ ä¿¸ å€‰ å€‹ å€ å€’ å€™ å€Ÿ å€£ å€¤ å€« å€¹ å‰ å åœ å¥ å´ å´ åµ å¶ å½ å‚ å‚‘ å‚˜ å‚™ å‚¬ å‚µ å‚· å‚¾ åƒ åƒ åƒ• åƒš åƒ§ å„€ å„„ å„’ å„Ÿ å„ª å…ƒ å…ƒ å…„ å…… å…† å…ˆ å…‰ å…‹ å… å… å…š å…¥ å…¨ å…« å…« å…¬ å…­ å…± å…µ å…· å…¸ å…¼ å†… å†† å†Š å† å†’ å†— å†™ å†  å†¬ å†· å‡† å‡ å‡ å‡¡ å‡¦ å‡¶ å‡¸ å‡¸ å‡¹ å‡º åˆ€ åˆƒ åˆ† åˆ† åˆ‡ åˆˆ åˆŠ åˆ‘ åˆ— åˆ åˆ¤ åˆ¥ åˆ© åˆ° åˆ¶ åˆ¶ åˆ· åˆ¸ åˆº åˆ» å‰‡ å‰Š å‰ å‰– å‰› å‰£ å‰¤ å‰¯ å‰° å‰² å‰µ åŠ‡ åŠ› åŠŸ åŠ  åŠ£ åŠ© åŠª åŠ± åŠ´ åŠ¹ åŠ¾ å‹… å‹‡ å‹‰ å‹• å‹˜ å‹™ å‹ å‹Ÿ å‹¢ å‹¤ å‹§ å‹² å‹º åŒ åŒ… åŒ– åŒ— åŒ  åŒ¹ åŒ¹ åŒº åŒ» åŒ¿ å åƒ å‡ åˆ åŠ å‘ å‘ å’ å“ å” å— å˜ åš å  å° å± å³ å³ å´ åµ å¸ åŽ„ åŽ˜ åŽš åŽŸ åŽ³ åŽ» å‚ åˆ åŠ åŠ å‹ åŒ å åŽ å” å– å— å™ å£ å£ å¤ å¥ å« å¬ å¯ å° å² å³ å· å¸ å„ åˆ å‰ åŒ åŒ å åŽ å å å‘ å› åŸ å¦ å« å¸ å¹ å‘ˆ å‘ˆ å‘‰ å‘Š å‘¨ å‘³ å‘¼ å‘½ å’Œ å’² å“€ å“ å“¡ å“² å”† å”‡ å” å”¯ å”± å•† å• å•“ å–„ å–š å–œ å– å–ª å–« å–¶ å—£ å˜† å˜‰ å˜± å™¨ å™´ åš‡ å›š å›› å›ž å›  å›£ å›° å›² å›³ å›º å›½ åœ åœ’ åœŸ åœ§ åœ¨ åœ° å‚ å‡ åŠ å‘ åª åž‚ åž‹ åž£ åŸ‹ åŸŽ åŸŸ åŸ· åŸ¹ åŸº å € å ‚ å … å • å ¤ å ª å ± å ´ å¡€ å¡ å¡Š å¡‘ å¡” å¡— å¡š å¡© å¡¾ å¢ƒ å¢“ å¢— å¢œ å¢¨ å¢³ å¢¾ å£ å£‡ å£Š å£Œ å£« å£® å£° å£° å£± å£² å¤‰ å¤ å¤• å¤– å¤š å¤œ å¤¢ å¤§ å¤© å¤© å¤ª å¤« å¤® å¤± å¥‡ å¥‰ å¥ å¥‘ å¥” å¥¥ å¥¨ å¥ª å¥® å¥³ å¥´ å¥½ å¦‚ å¦‚ å¦ƒ å¦„ å¦Š å¦™ å¦¥ å¦¨ å¦¹ å¦» å§‰ å§‹ å§“ å§” å§« å§» å§¿ å¨ å¨˜ å¨  å¨¯ å©† å©š å©¦ å©¿ åª’ å« å«Œ å«¡ å¬¢ å­ å­” å­— å­˜ å­ å­£ å­¤ å­¦ å­« å®… å®‡ å®‡ å®ˆ å®‰ å®Œ å®— å®— å®˜ å®™ å®š å®œ å® å®Ÿ å®¢ å®¢ å®£ å®¤ å®® å®° å®³ å®³ å®´ å®µ å®¶ å®¹ å®¿ å¯‚ å¯„ å¯† å¯Œ å¯’ å¯› å¯ å¯Ÿ å¯¡ å¯§ å¯© å¯® å¯¸ å¯º å¯¾ å¯¿ å° å°‚ å°„ å°† å°‰ å°‰ å°Š å°‹ å°Ž å° å°‘ å°š å°± å°º å°¼ å°¼ å°½ å°¾ å°¿ å±€ å±… å±ˆ å±Š å±‹ å±• å±ž å±¤ å±¥ å±¯ å±± å² å²© å²¬ å²³ å²¸ å³  å³¡ å³° å³¶ å´‡ å´Ž å´© å· å·ž å·¡ å·£ å·¥ å·¥ å·¦ å·§ å·¨ å·® å·± å·» å¸‚ å¸ƒ å¸† å¸Œ å¸ å¸¥ å¸« å¸­ å¸¯ å¸° å¸³ å¸¸ å¸½ å¹… å¹• å¹£ å¹² å¹² å¹³ å¹´ å¹¸ å¹¹ å¹» å¹» å¹¼ å¹½ å¹¾ åº åºƒ åºŠ åº åº• åº— åºœ åº¦ åº§ åº« åº­ åº¶ åº¶ åº· åº¸ å»ƒ å»‰ å»Š å»¶ å»· å»º å¼ å¼Š å¼ å¼ å¼“ å¼“ å¼” å¼• å¼˜ å¼Ÿ å¼¦ å¼§ å¼± å¼µ å¼· å¼¾ å½“ å½¢ å½© å½« å½° å½± å½¹ å½¼ å¾€ å¾ å¾„ å¾… å¾‹ å¾Œ å¾ å¾’ å¾“ å¾— å¾¡ å¾© å¾ª å¾® å¾³ å¾´ å¾¹ å¿ƒ å¿… å¿Œ å¿ å¿— å¿— å¿˜ å¿™ å¿œ å¿  å¿« å¿µ æ€’ æ€– æ€ æ€  æ€¥ æ€§ æ€ª æ‹ æ æ’ æ¥ æ¨ æ© æ­ æ¯ æµ æ‚” æ‚Ÿ æ‚  æ‚£ æ‚¦ æ‚© æ‚ª æ‚² æ‚¼ æƒ… æƒ‘ æƒœ æƒ¨ æƒ° æƒ³ æ„ æ„‰ æ„ æ„š æ„› æ„Ÿ æ…ˆ æ…‹ æ…Œ æ…Ž æ…• æ…¢ æ…£ æ…¨ æ…® æ…° æ…¶ æ†‚ æ†Ž æ†¤ æ†© æ†² æ†¶ æ†¾ æ‡‡ æ‡ æ‡² æ‡¸ æˆ æˆ æˆ‘ æˆ’ æˆ¦ æˆ¯ æˆ¸ æˆ» æˆ¿ æ‰€ æ‰‡ æ‰‰ æ‰‹ æ‰ æ‰“ æ‰• æ‰± æ‰¶ æ‰¹ æ‰¿ æŠ€ æŠ„ æŠŠ æŠ‘ æŠ• æŠ— æŠ˜ æŠœ æŠž æŠ« æŠ± æŠµ æŠ¹ æŠ¼ æŠ½ æ‹… æ‹ æ‹ æ‹’ æ‹“ æ‹˜ æ‹™ æ‹› æ‹ æ‹  æ‹¡ æ‹¬ æ‹· æ‹¾ æŒ æŒ‡ æŒ‘ æŒ™ æŒŸ æŒ¯ æŒ¿ æ• æœ æ¨ æ® æŽƒ æŽˆ æŽŒ æŽ’ æŽ˜ æŽ› æŽ¡ æŽ¢ æŽ¥ æŽ§ æŽ¨ æŽª æŽ² æ æ æš æ› æ¡ æ® æ´ æº æ æ¬ æ­ æº æ¾ æ‘‚ æ‘˜ æ‘© æ’ƒ æ’¤ æ’® æ’² æ“ æ“ æ“¦ æ“¬ æ”¯ æ”¹ æ”» æ”¾ æ”¿ æ•… æ• æ•‘ æ•— æ•™ æ•¢ æ•£ æ•¬ æ•° æ•´ æ•µ æ•· æ–‡ æ–‰ æ–Ž æ–— æ–™ æ–œ æ–¤ æ–¥ æ–­ æ–° æ–¹ æ–½ æ—… æ—‹ æ— æ—— æ—¢ æ—¥ æ—§ æ—§ æ—¨ æ—© æ—¬ æ˜† æ˜‡ æ˜Œ æ˜Ž æ˜“ æ˜” æ˜Ÿ æ˜  æ˜¥ æ˜¨ æ˜­ æ˜¯ æ˜¼ æ™‚ æ™© æ™® æ™¯ æ™´ æ™¶ æš æš‡ æš‘ æš– æš— æš¦ æš« æš® æš´ æ›‡ æ›œ æ›² æ›´ æ›¸ æ›¹ æ›¿ æœ€ æœˆ æœ‰ æœ æœ• æœ— æœ› æœ æœŸ æœ¨ æœª æœª æœ« æœ¬ æœ­ æœ± æœ´ æœº æœ½ æ‰ æ æ‘ æŸ æ¡ æ¥ æ¯ æ± æ¾ æ¿ æž æž— æžš æžœ æž æž  æž¢ æž¯ æž¶ æŸ„ æŸ æŸ“ æŸ” æŸ± æŸ³ æŸ» æ „ æ “ æ ¡ æ ª æ ¸ æ ¹ æ ¼ æ ½ æ¡ƒ æ¡ˆ æ¡‘ æ¡œ æ¡Ÿ æ¢… æ¢° æ£„ æ£‹ æ£’ æ£š æ£Ÿ æ£® æ£º æ¤ æ¤œ æ¥­ æ¥µ æ¥¼ æ¥½ æ¦‚ æ§‹ æ§˜ æ§½ æ¨™ æ¨¡ æ¨© æ¨ª æ¨¹ æ©‹ æ©Ÿ æ¬„ æ¬  æ¬¡ æ¬§ æ¬² æ¬º æ¬¾ æ­Œ æ­“ æ­¢ æ­£ æ­¦ æ­© æ­¯ æ­³ æ­´ æ­» æ®‰ æ®‰ æ®Š æ®‹ æ®– æ®´ æ®µ æ®º æ®» æ®¿ æ¯ æ¯Ž æ¯’ æ¯” æ¯› æ° æ°‘ æ°— æ°´ æ°· æ°¸ æ± æ±‚ æ±Ž æ±— æ±š æ±Ÿ æ±  æ±º æ±½ æ²ˆ æ²– æ²¡ æ²¢ æ²³ æ²¸ æ²¹ æ²» æ²¼ æ²¿ æ³ æ³‰ æ³Š æ³Œ æ³• æ³¡ æ³¡ æ³¢ æ³£ æ³¥ æ³¨ æ³° æ³³ æ´‹ æ´— æ´ž æ´¥ æ´ª æ´» æ´¾ æµ æµ„ æµ… æµœ æµ¦ æµª æµ® æµ´ æµ· æµ¸ æ¶ˆ æ¶™ æ¶¯ æ¶² æ¶¼ æ·‘ æ·¡ æ·± æ·· æ·» æ¸… æ¸‡ æ¸‡ æ¸ˆ æ¸‰ æ¸‹ æ¸“ æ¸› æ¸¡ æ¸¦ æ¸© æ¸¬ æ¸¯ æ¹– æ¹¯ æ¹¾ æ¹¾ æ¹¿ æº€ æº æº– æº æº¶ æ»… æ»‹ æ»‘ æ» æ»ž æ»´ æ¼ æ¼‚ æ¼† æ¼ æ¼” æ¼  æ¼¢ æ¼« æ¼¬ æ¼¸ æ½” æ½œ æ½Ÿ æ½¤ æ½® æ¾„ æ¿€ æ¿ æ¿ƒ æ¿« æ¿¯ ç€¬ ç« ç¯ ç° ç½ ç‚‰ ç‚Š ç‚Ž ç‚­ ç‚¹ ç‚º çƒˆ ç„¡ ç„¦ ç„¶ ç„¼ ç…™ ç…§ ç…© ç…® ç†Ÿ ç†± ç‡ƒ ç‡¥ çˆ† çˆµ çˆ¶ ç‰‡ ç‰ˆ ç‰™ ç‰› ç‰§ ç‰© ç‰² ç‰¹ çŠ  çŠ¬ çŠ¯ çŠ¶ ç‹‚ ç‹© ç‹¬ ç‹­ çŒ› çŒŸ çŒ« çŒ® çŒ¶ çŒ¿ ç„ ç£ ç² çŽ„ çŽ‡ çŽ‰ çŽ‹ ç ç  ç­ ç¾ çƒ ç† ç´ ç’° ç’½ ç“¶ ç”˜ ç”š ç”Ÿ ç”£ ç”¨ ç”° ç”° ç”± ç”² ç”³ ç”· ç”º ç”» ç•Œ ç•‘ ç•” ç•™ ç•œ ç• ç•¥ ç•ª ç•° ç•³ ç–Ž ç–‘ ç–« ç–² ç–¾ ç—… ç—‡ ç—˜ ç—› ç—¢ ç—´ ç™‚ ç™’ ç™– ç™º ç™» ç™½ ç™¾ çš„ çš† çš‡ çš® çš¿ ç›† ç›Š ç›— ç›› ç›Ÿ ç›£ ç›¤ ç›® ç›² ç›´ ç›¸ ç›¾ çœ çœ‹ çœŒ çœŸ çœ  çœº çœ¼ ç€ ç¡ ç£ çž¬ çŸ› çŸ¢ çŸ¥ çŸ­ çŸ¯ çŸ³ ç ‚ ç ” ç • ç ² ç ´ ç¡ ç¡« ç¡¬ ç¢ ç¢‘ ç¢º ç£ ç£¨ ç¤ ç¤Ž ç¤º ç¤¼ ç¤¾ ç¥ˆ ç¥‰ ç¥– ç¥š ç¥ ç¥ž ç¥¥ ç¥¨ ç¥­ ç¦ ç¦„ ç¦… ç¦ ç¦ ç¦Ž ç¦ ç§€ ç§ ç§‹ ç§‘ ç§’ ç§˜ ç§Ÿ ç§© ç§° ç§» ç¨‹ ç¨Ž ç¨š ç¨® ç¨² ç¨¼ ç¨¿ ç©€ ç©‚ ç© ç© ç©« ç©´ ç©¶ ç©º çª çªƒ çª’ çª“ çª® çª¯ ç«‹ ç«œ ç«  ç«¥ ç«¯ ç«¶ ç«¹ ç¬‘ ç¬› ç¬¦ ç¬¬ ç­† ç­‰ ç­‹ ç­’ ç­” ç­– ç®‡ ç®— ç®¡ ç®± ç¯€ ç¯„ ç¯‰ ç¯¤ ç°¡ ç°¿ ç± ç±³ ç²‰ ç²‹ ç²’ ç²— ç²˜ ç²› ç²§ ç²¾ ç³– ç³§ ç³¸ ç³» ç³¾ ç´€ ç´„ ç´… ç´‹ ç´ ç´” ç´™ ç´™ ç´š ç´› ç´  ç´  ç´¡ ç´¢ ç´« ç´¯ ç´° ç´³ ç´¹ ç´º çµ‚ çµ„ çµŒ çµ çµž çµ¡ çµ¦ çµ± çµµ çµ¶ çµ¹ ç¶™ ç¶š ç¶­ ç¶± ç¶² ç¶¿ ç·Š ç· ç·‘ ç·’ ç·š ç·  ç·¨ ç·© ç·¯ ç·´ ç¸ ç¸„ ç¸› ç¸¦ ç¸« ç¸® ç¸¾ ç¹ ç¹Š ç¹” ç¹• ç¹­ ç¹° ç¼¶ ç½ª ç½® ç½° ç½² ç½· ç¾… ç¾Š ç¾Ž ç¾¤ ç¾© ç¾½ ç¿ ç¿Œ ç¿’ ç¿» ç¿¼ è€ è€ƒ è€… è€ è€• è€— è€³ è– èž è´ è· è‚‰ è‚Œ è‚– è‚ è‚¢ è‚¥ è‚© è‚ª è‚¯ è‚² è‚º èƒƒ èƒ† èƒŒ èƒŽ èƒž èƒ´ èƒ¸ èƒ½ è„‚ è„… è„ˆ è„š è„± è„³ è„¹ è… è…• è…° è…¸ è…¹ è†š è†œ è†¨ è‡“ è‡£ è‡¨ è‡ª è‡­ è‡³ è‡´ èˆˆ èˆŒ èˆŽ èˆ— èˆž èˆŸ èˆª èˆ¬ èˆ¶ èˆ¹ è‰‡ è‰¦ è‰¯ è‰² èŠ‹ èŠ èŠ± èŠ³ èŠ¸ èŠ½ è‹— è‹¥ è‹¦ è‹± èŒ‚ èŒŽ èŒ¶ è‰ è’ è˜ è· èŠ èŒ è“ èœ è¯ è½ è‘‰ è‘— è‘¬ è’¸ è“„ è”µ è–„ è–¦ è–ª è–ª è–« è–¬ è—© è—» è™ è™š è™œ è™ž è™« èšŠ èš• è›‡ è› è›® èž è¡€ è¡† è¡Œ è¡“ è¡— è¡› è¡ è¡¡ è¡£ è¡¨ è¡° è¡· è¢‹ è¢« è£ è£‚ è£… è£ è£• è£œ è£¸ è£½ è¤‡ è¤ è¤’ è¥Ÿ è¥² è¥¿ è¦ è¦† è¦‡ è¦‹ è¦ è¦– è¦š è¦§ è¦ª è¦³ è§’ è§£ è§¦ è¨€ è¨‚ è¨ˆ è¨Ž è¨“ è¨— è¨˜ è¨Ÿ è¨ª è¨­ è¨± è¨³ è¨´ è¨º è¨¼ è© è©” è©• è©ž è©  è©¦ è©© è©° è©° è©± è©² è©³ èª‡ èª‰ èªŒ èª èª“ èª• èª˜ èªž èª  èª¤ èª¬ èª­ èª² èª¿ è«‡ è«‹ è«– è«­ è«® è«¸ è«¾ è¬€ è¬ è¬„ è¬™ è¬› è¬ è¬¡ è¬¹ è­˜ è­œ è­¦ è­° è­² è­· è°· è±† è±Š è±š è±¡ è±ª è² è²ž è²  è²  è²¡ è²¢ è²§ è²§ è²¨ è²© è²« è²¬ è²¯ è²´ è²· è²¸ è²» è²¿ è³€ è³ƒ è³„ è³‡ è³Š è³“ è³› è³œ è³ž è³  è³¢ è³¦ è³ª è³¼ è´ˆ èµ¤ èµ¦ èµ° èµ´ èµ· è¶… è¶Š è¶£ è¶³ è· è·¡ è·¯ è·³ è·µ è¸Š è¸ èº èº« è»Š è»Œ è» è»’ è»Ÿ è»¢ è»¸ è»½ è¼ƒ è¼‰ è¼ è¼© è¼ª è¼¸ è½„ è¾› è¾ž è¾± è¾² è¾º è¾¼ è¿… è¿Ž è¿‘ è¿” è¿« è¿­ è¿° è¿· è¿½ é€€ é€ é€ƒ é€† é€ é€ é€“ é€” é€š é€ é€Ÿ é€  é€£ é€® é€± é€² é€¸ é‚ é… é‡ éŠ é‹ é éŽ é“ é“ é” é• é  é£ é© é­ é® éµ é· é¸ éº é¿ é‚„ é‚¦ é‚ª é‚¸ éƒŠ éƒŽ éƒ¡ éƒ¨ éƒ­ éƒµ éƒ· éƒ½ é…Œ é… é…’ é…” é…¢ é…ª é…¬ é…µ é…· é…¸ é†œ é†¸ é‡ˆ é‡Œ é‡Œ é‡ é‡Ž é‡ é‡‘ é‡ é‡£ éˆ éˆ´ é‰„ é‰› é‰¢ é‰± éŠ€ éŠƒ éŠ… éŠ‘ éŠ˜ éŠ­ é‹­ é‹³ é‹¼ éŒ˜ éŒ  éŒ¬ éŒ¯ éŒ² é› éŽ– éŽ® é¡ é˜ é‘‘ é•· é–€ é–‰ é–‹ é–‘ é–“ é–¢ é–£ é–¥ é–² é—˜ é˜² é˜» é™„ é™ é™ é™› é™¢ é™¢ é™£ é™¤ é™¥ é™ª é™° é™³ é™µ é™¶ é™¸ é™º é™½ éš… éš† éšŠ éšŽ éš éš” éš› éšœ éš  éš£ éš· éš» é›„ é›„ é›… é›† é›‡ é›‰ é›Œ é›‘ é›¢ é›£ é›¨ é›ª é›° é›² é›¶ é›· é›» éœ€ éœ‡ éœŠ éœœ éœ§ éœ² é’ é™ éž é¢ é© é´ éŸ“ éŸ³ éŸ» éŸ¿ é ‚ é … é † é  é  é ‘ é ’ é ˜ é ­ é » é ¼ é¡Œ é¡ é¡” é¡• é¡˜ é¡ž é¡§ é¢¨ é£› é£Ÿ é£¢ é£¯ é£² é£¼ é£¼ é£½ é£¾ é¤Š é¤“ é¤¨ é¦– é¦™ é¦¬ é§„ é§„ é§… é§† é§ é¨Ž é¨’ é¨“ é¨° é©š éª¨ é«„ é«˜ é«ª é¬¼ é­‚ é­… é­” é­š é®® é¯¨ é³¥ é³´ é¶ éº— éº¦ éº» é»„ é»’ é»™ é¼“ é¼» é½¢",
-		3: "å…Œ æ‹¼ æ¥” éŒ„ é³¯",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"jmc": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"ka": {
-		0: "áƒ áƒ‘ áƒ’ áƒ“ áƒ” áƒ• áƒ– áƒ± áƒ— áƒ˜ áƒ™ áƒš áƒ› áƒœ áƒ² áƒ áƒž áƒŸ áƒ  áƒ¡ áƒ¢ áƒ³ áƒ£ áƒ¤ áƒ¥ áƒ¦ áƒ§ áƒ¨ áƒ© áƒª áƒ« áƒ¬ áƒ­ áƒ® áƒ´ áƒ¯ áƒ° áƒµ áƒ¶ áƒ· áƒ¸ áƒ¹ áƒº",
-		3: "â´€ â´ â´‚ â´ƒ â´„ â´… â´† â´¡ â´‡ â´ˆ â´‰ â´Š â´‹ â´Œ â´¢ â´ â´Ž â´ â´ â´‘ â´’ â´£ â´“ â´” â´• â´– â´— â´˜ â´™ â´š â´› â´œ â´ â´ž â´¤ â´Ÿ â´  â´¥",
-		4: "áƒ áƒ‘ áƒ’ áƒ“ áƒ” áƒ• áƒ– áƒ— áƒ˜ áƒ™ áƒš áƒ› áƒœ áƒ áƒž áƒŸ áƒ  áƒ¡ áƒ¢ áƒ£ áƒ¤ áƒ¥ áƒ¦ áƒ§ áƒ¨ áƒ© áƒª áƒ« áƒ¬ áƒ­ áƒ® áƒ¯ áƒ°",
-		5: "áƒ áƒ‘ áƒ’ áƒ“ áƒ” áƒ• áƒ– áƒ— áƒ˜ áƒ™ áƒš áƒ› áƒœ áƒ áƒž áƒŸ áƒ  áƒ¡ áƒ¢ áƒ£ áƒ¤ áƒ¥ áƒ¦ áƒ§ áƒ¨ áƒ© áƒª áƒ« áƒ¬ áƒ­ áƒ® áƒ¯ áƒ°",
-	},
-	"kab": {
-		0: "a b c Ä d á¸ e É› f g Ç§ É£ h á¸¥ i j k l m n p q r á¹› s á¹£ t á¹­ u w x y z áº“",
-		3: "o v",
-		5: "A B C ÄŒ D á¸Œ E Æ F G Ç¦ Æ” H á¸¤ I J K L M N P Q R á¹š S á¹¢ T á¹¬ U W X Y Z áº’",
-	},
-	"kam": {
-		0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"kde": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"kea": {
-		0: "a b d dj e f g i j k l lh m n nh o p r s t tx u v x z",
-		3: "Ã¡ Ã  Ã¢ Ã£ c Ã§ Ã© Ãª h Ã­ Ã± Ã³ Ã´ q Ãº w y",
-		5: "A B D E F G H I J K L M N O P R S T U V X Z",
-	},
-	"khq": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n É² Å‹ o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-		5: "A Ãƒ B C D E áº¼ F G H I J K L M N Æ ÅŠ O Ã• P Q R S Å  T U W X Y Z Å½",
-	},
-	"ki": {
-		0: "a b c d e g h i Ä© j k m n o r t u Å© w y",
-		3: "f l p q s v x z",
-		5: "A B C D E G H I J K M N O R T U W Y",
-	},
-	"kk": {
-		0: "Ð° Ó™ Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ò› Ð» Ð¼ Ð½ Ò£ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò± Ò¯ Ñ„ Ñ… Ò» Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ Ñ‹ Ñ– ÑŒ Ñ ÑŽ Ñ",
-		5: "Ð Ó˜ Ð‘ Ð’ Ð“ Ò’ Ð” Ð• Ð Ð– Ð— Ð˜ Ð™ Ðš Òš Ð› Ðœ Ð Ò¢ Ðž Ó¨ ÐŸ Ð  Ð¡ Ð¢ Ð£ Ò° Ò® Ð¤ Ð¥ Òº Ð¦ Ð§ Ð¨ Ð© Ðª Ð« Ð† Ð¬ Ð­ Ð® Ð¯",
-	},
-	"kl": {
-		0: "a Ã¡ Ã¢ Ã£ b c d e Ã© Ãª f g h i Ã­ Ã® Ä© j k l m n o Ã´ p q Ä¸ r s t u Ãº Ã» Å© v w x y z Ã¦ Ã¸ Ã¥",
-	},
-	"kln": {
-		0: "a b c d e g h i j k l m n o p r s t u w y",
-		3: "f q v x z",
-		5: "A B C D E G H I J K L M N O P R S T U W Y",
-	},
-	"km": {
-		0: "áŸŒ áŸŽ áŸ áŸ‘ áŸ áŸˆ áŸ‹ áŸ‰ áŸŠ áŸ áž€ áž áž‚ ážƒ áž„ áž… áž† áž‡ ážˆ áž‰ ážŠ áž‹ ážŒ áž ážŽ áž áž áž‘ áž’ áž“ áž” áž• áž– áž— áž˜ áž™ ážš áž« áž¬ áž› áž­ áž® ážœ ážŸ áž  áž¡ áž¢ áž¢áž¶ áž¥ áž¦ áž§ áž§áž€ ážª áž© áž¯ áž° áž± áž² áž³ áž¶ áž· áž¸ áž¹ ážº áž» áž¼ áž½ áž¾ áž¿ áŸ€ áŸ áŸ‚ áŸƒ áŸ„ áŸ… áŸ† áŸ‡ áŸ’",
-		3: "\u17b4 \u17b5 \u200b áž ážž",
-	},
-	"kn": {
-		0: "à²¼ à³¦ à³§ à³¨ à³© à³ª à³« à³¬ à³­ à³® à³¯ à²… à²† à²‡ à²ˆ à²‰ à²Š à²‹ à³  à²Œ à³¡ à²Ž à² à² à²’ à²“ à²” à²‚ à²ƒ à²• à²– à²— à²˜ à²™ à²š à²› à²œ à² à²ž à²Ÿ à²  à²¡ à²¢ à²£ à²¤ à²¥ à²¦ à²§ à²¨ à²ª à²« à²¬ à²­ à²® à²¯ à²° à²± à²² à²µ à²¶ à²· à²¸ à²¹ à²³ à³ž à²½ à²¾ à²¿ à³€ à³ à³‚ à³ƒ à³„ à³† à³‡ à³ˆ à³Š à³‹ à³Œ à³ à³• à³–",
-		4: "à²° à³‚",
-	},
-	"ko": {
-		0: "ê°€ ê°€ ê° ê°‚ ê°ƒ ê°„ ê°… ê°† ê°‡ ê°ˆ ê°‰ ê°Š ê°‹ ê°Œ ê° ê°Ž ê° ê° ê°‘ ê°’ ê°“ ê°” ê°• ê°– ê°— ê°˜ ê°™ ê°š ê°› ê°œ ê° ê°ž ê°Ÿ ê°  ê°¡ ê°¢ ê°£ ê°¤ ê°¥ ê°¦ ê°§ ê°¨ ê°© ê°ª ê°« ê°¬ ê°­ ê°® ê°¯ ê°° ê°± ê°² ê°³ ê°´ ê°µ ê°¶ ê°· ê°¸ ê°¹ ê°º ê°» ê°¼ ê°½ ê°¾ ê°¿ ê±€ ê± ê±‚ ê±ƒ ê±„ ê±… ê±† ê±‡ ê±ˆ ê±‰ ê±Š ê±‹ ê±Œ ê± ê±Ž ê± ê± ê±‘ ê±’ ê±“ ê±” ê±• ê±– ê±— ê±˜ ê±™ ê±š ê±› ê±œ ê± ê±ž ê±Ÿ ê±  ê±¡ ê±¢ ê±£ ê±¤ ê±¥ ê±¦ ê±§ ê±¨ ê±© ê±ª ê±« ê±¬ ê±­ ê±® ê±¯ ê±° ê±± ê±² ê±³ ê±´ ê±µ ê±¶ ê±· ê±¸ ê±¹ ê±º ê±» ê±¼ ê±½ ê±¾ ê±¿ ê²€ ê² ê²‚ ê²ƒ ê²„ ê²… ê²† ê²‡ ê²ˆ ê²‰ ê²Š ê²‹ ê²Œ ê² ê²Ž ê² ê² ê²‘ ê²’ ê²“ ê²” ê²• ê²– ê²— ê²˜ ê²™ ê²š ê²› ê²œ ê² ê²ž ê²Ÿ ê²  ê²¡ ê²¢ ê²£ ê²¤ ê²¥ ê²¦ ê²§ ê²¨ ê²© ê²ª ê²« ê²¬ ê²­ ê²® ê²¯ ê²° ê²± ê²² ê²³ ê²´ ê²µ ê²¶ ê²· ê²¸ ê²¹ ê²º ê²» ê²¼ ê²½ ê²¾ ê²¿ ê³€ ê³ ê³‚ ê³ƒ ê³„ ê³… ê³† ê³‡ ê³ˆ ê³‰ ê³Š ê³‹ ê³Œ ê³ ê³Ž ê³ ê³ ê³‘ ê³’ ê³“ ê³” ê³• ê³– ê³— ê³˜ ê³™ ê³š ê³› ê³œ ê³ ê³ž ê³Ÿ ê³  ê³¡ ê³¢ ê³£ ê³¤ ê³¥ ê³¦ ê³§ ê³¨ ê³© ê³ª ê³« ê³¬ ê³­ ê³® ê³¯ ê³° ê³± ê³² ê³³ ê³´ ê³µ ê³¶ ê³· ê³¸ ê³¹ ê³º ê³» ê³¼ ê³½ ê³¾ ê³¿ ê´€ ê´ ê´‚ ê´ƒ ê´„ ê´… ê´† ê´‡ ê´ˆ ê´‰ ê´Š ê´‹ ê´Œ ê´ ê´Ž ê´ ê´ ê´‘ ê´’ ê´“ ê´” ê´• ê´– ê´— ê´˜ ê´™ ê´š ê´› ê´œ ê´ ê´ž ê´Ÿ ê´  ê´¡ ê´¢ ê´£ ê´¤ ê´¥ ê´¦ ê´§ ê´¨ ê´© ê´ª ê´« ê´¬ ê´­ ê´® ê´¯ ê´° ê´± ê´² ê´³ ê´´ ê´µ ê´¶ ê´· ê´¸ ê´¹ ê´º ê´» ê´¼ ê´½ ê´¾ ê´¿ êµ€ êµ êµ‚ êµƒ êµ„ êµ… êµ† êµ‡ êµˆ êµ‰ êµŠ êµ‹ êµŒ êµ êµŽ êµ êµ êµ‘ êµ’ êµ“ êµ” êµ• êµ– êµ— êµ˜ êµ™ êµš êµ› êµœ êµ êµž êµŸ êµ  êµ¡ êµ¢ êµ£ êµ¤ êµ¥ êµ¦ êµ§ êµ¨ êµ© êµª êµ« êµ¬ êµ­ êµ® êµ¯ êµ° êµ± êµ² êµ³ êµ´ êµµ êµ¶ êµ· êµ¸ êµ¹ êµº êµ» êµ¼ êµ½ êµ¾ êµ¿ ê¶€ ê¶ ê¶‚ ê¶ƒ ê¶„ ê¶… ê¶† ê¶‡ ê¶ˆ ê¶‰ ê¶Š ê¶‹ ê¶Œ ê¶ ê¶Ž ê¶ ê¶ ê¶‘ ê¶’ ê¶“ ê¶” ê¶• ê¶– ê¶— ê¶˜ ê¶™ ê¶š ê¶› ê¶œ ê¶ ê¶ž ê¶Ÿ ê¶  ê¶¡ ê¶¢ ê¶£ ê¶¤ ê¶¥ ê¶¦ ê¶§ ê¶¨ ê¶© ê¶ª ê¶« ê¶¬ ê¶­ ê¶® ê¶¯ ê¶° ê¶± ê¶² ê¶³ ê¶´ ê¶µ ê¶¶ ê¶· ê¶¸ ê¶¹ ê¶º ê¶» ê¶¼ ê¶½ ê¶¾ ê¶¿ ê·€ ê· ê·‚ ê·ƒ ê·„ ê·… ê·† ê·‡ ê·ˆ ê·‰ ê·Š ê·‹ ê·Œ ê· ê·Ž ê· ê· ê·‘ ê·’ ê·“ ê·” ê·• ê·– ê·— ê·˜ ê·™ ê·š ê·› ê·œ ê· ê·ž ê·Ÿ ê·  ê·¡ ê·¢ ê·£ ê·¤ ê·¥ ê·¦ ê·§ ê·¨ ê·© ê·ª ê·« ê·¬ ê·­ ê·® ê·¯ ê·° ê·± ê·² ê·³ ê·´ ê·µ ê·¶ ê·· ê·¸ ê·¹ ê·º ê·» ê·¼ ê·½ ê·¾ ê·¿ ê¸€ ê¸ ê¸‚ ê¸ƒ ê¸„ ê¸… ê¸† ê¸‡ ê¸ˆ ê¸‰ ê¸Š ê¸‹ ê¸Œ ê¸ ê¸Ž ê¸ ê¸ ê¸‘ ê¸’ ê¸“ ê¸” ê¸• ê¸– ê¸— ê¸˜ ê¸™ ê¸š ê¸› ê¸œ ê¸ ê¸ž ê¸Ÿ ê¸  ê¸¡ ê¸¢ ê¸£ ê¸¤ ê¸¥ ê¸¦ ê¸§ ê¸¨ ê¸© ê¸ª ê¸« ê¸¬ ê¸­ ê¸® ê¸¯ ê¸° ê¸± ê¸² ê¸³ ê¸´ ê¸µ ê¸¶ ê¸· ê¸¸ ê¸¹ ê¸º ê¸» ê¸¼ ê¸½ ê¸¾ ê¸¿ ê¹€ ê¹ ê¹‚ ê¹ƒ ê¹„ ê¹… ê¹† ê¹‡ ê¹ˆ ê¹‰ ê¹Š ê¹‹ ê¹Œ ê¹ ê¹Ž ê¹ ê¹ ê¹‘ ê¹’ ê¹“ ê¹” ê¹• ê¹– ê¹— ê¹˜ ê¹™ ê¹š ê¹› ê¹œ ê¹ ê¹ž ê¹Ÿ ê¹  ê¹¡ ê¹¢ ê¹£ ê¹¤ ê¹¥ ê¹¦ ê¹§ ê¹¨ ê¹© ê¹ª ê¹« ê¹¬ ê¹­ ê¹® ê¹¯ ê¹° ê¹± ê¹² ê¹³ ê¹´ ê¹µ ê¹¶ ê¹· ê¹¸ ê¹¹ ê¹º ê¹» ê¹¼ ê¹½ ê¹¾ ê¹¿ êº€ êº êº‚ êºƒ êº„ êº… êº† êº‡ êºˆ êº‰ êºŠ êº‹ êºŒ êº êºŽ êº êº êº‘ êº’ êº“ êº” êº• êº– êº— êº˜ êº™ êºš êº› êºœ êº êºž êºŸ êº  êº¡ êº¢ êº£ êº¤ êº¥ êº¦ êº§ êº¨ êº© êºª êº« êº¬ êº­ êº® êº¯ êº° êº± êº² êº³ êº´ êºµ êº¶ êº· êº¸ êº¹ êºº êº» êº¼ êº½ êº¾ êº¿ ê»€ ê» ê»‚ ê»ƒ ê»„ ê»… ê»† ê»‡ ê»ˆ ê»‰ ê»Š ê»‹ ê»Œ ê» ê»Ž ê» ê» ê»‘ ê»’ ê»“ ê»” ê»• ê»– ê»— ê»˜ ê»™ ê»š ê»› ê»œ ê» ê»ž ê»Ÿ ê»  ê»¡ ê»¢ ê»£ ê»¤ ê»¥ ê»¦ ê»§ ê»¨ ê»© ê»ª ê»« ê»¬ ê»­ ê»® ê»¯ ê»° ê»± ê»² ê»³ ê»´ ê»µ ê»¶ ê»· ê»¸ ê»¹ ê»º ê»» ê»¼ ê»½ ê»¾ ê»¿ ê¼€ ê¼ ê¼‚ ê¼ƒ ê¼„ ê¼… ê¼† ê¼‡ ê¼ˆ ê¼‰ ê¼Š ê¼‹ ê¼Œ ê¼ ê¼Ž ê¼ ê¼ ê¼‘ ê¼’ ê¼“ ê¼” ê¼• ê¼– ê¼— ê¼˜ ê¼™ ê¼š ê¼› ê¼œ ê¼ ê¼ž ê¼Ÿ ê¼  ê¼¡ ê¼¢ ê¼£ ê¼¤ ê¼¥ ê¼¦ ê¼§ ê¼¨ ê¼© ê¼ª ê¼« ê¼¬ ê¼­ ê¼® ê¼¯ ê¼° ê¼± ê¼² ê¼³ ê¼´ ê¼µ ê¼¶ ê¼· ê¼¸ ê¼¹ ê¼º ê¼» ê¼¼ ê¼½ ê¼¾ ê¼¿ ê½€ ê½ ê½‚ ê½ƒ ê½„ ê½… ê½† ê½‡ ê½ˆ ê½‰ ê½Š ê½‹ ê½Œ ê½ ê½Ž ê½ ê½ ê½‘ ê½’ ê½“ ê½” ê½• ê½– ê½— ê½˜ ê½™ ê½š ê½› ê½œ ê½ ê½ž ê½Ÿ ê½  ê½¡ ê½¢ ê½£ ê½¤ ê½¥ ê½¦ ê½§ ê½¨ ê½© ê½ª ê½« ê½¬ ê½­ ê½® ê½¯ ê½° ê½± ê½² ê½³ ê½´ ê½µ ê½¶ ê½· ê½¸ ê½¹ ê½º ê½» ê½¼ ê½½ ê½¾ ê½¿ ê¾€ ê¾ ê¾‚ ê¾ƒ ê¾„ ê¾… ê¾† ê¾‡ ê¾ˆ ê¾‰ ê¾Š ê¾‹ ê¾Œ ê¾ ê¾Ž ê¾ ê¾ ê¾‘ ê¾’ ê¾“ ê¾” ê¾• ê¾– ê¾— ê¾˜ ê¾™ ê¾š ê¾› ê¾œ ê¾ ê¾ž ê¾Ÿ ê¾  ê¾¡ ê¾¢ ê¾£ ê¾¤ ê¾¥ ê¾¦ ê¾§ ê¾¨ ê¾© ê¾ª ê¾« ê¾¬ ê¾­ ê¾® ê¾¯ ê¾° ê¾± ê¾² ê¾³ ê¾´ ê¾µ ê¾¶ ê¾· ê¾¸ ê¾¹ ê¾º ê¾» ê¾¼ ê¾½ ê¾¾ ê¾¿ ê¿€ ê¿ ê¿‚ ê¿ƒ ê¿„ ê¿… ê¿† ê¿‡ ê¿ˆ ê¿‰ ê¿Š ê¿‹ ê¿Œ ê¿ ê¿Ž ê¿ ê¿ ê¿‘ ê¿’ ê¿“ ê¿” ê¿• ê¿– ê¿— ê¿˜ ê¿™ ê¿š ê¿› ê¿œ ê¿ ê¿ž ê¿Ÿ ê¿  ê¿¡ ê¿¢ ê¿£ ê¿¤ ê¿¥ ê¿¦ ê¿§ ê¿¨ ê¿© ê¿ª ê¿« ê¿¬ ê¿­ ê¿® ê¿¯ ê¿° ê¿± ê¿² ê¿³ ê¿´ ê¿µ ê¿¶ ê¿· ê¿¸ ê¿¹ ê¿º ê¿» ê¿¼ ê¿½ ê¿¾ ê¿¿ ë€€ ë€ ë€‚ ë€ƒ ë€„ ë€… ë€† ë€‡ ë€ˆ ë€‰ ë€Š ë€‹ ë€Œ ë€ ë€Ž ë€ ë€ ë€‘ ë€’ ë€“ ë€” ë€• ë€– ë€— ë€˜ ë€™ ë€š ë€› ë€œ ë€ ë€ž ë€Ÿ ë€  ë€¡ ë€¢ ë€£ ë€¤ ë€¥ ë€¦ ë€§ ë€¨ ë€© ë€ª ë€« ë€¬ ë€­ ë€® ë€¯ ë€° ë€± ë€² ë€³ ë€´ ë€µ ë€¶ ë€· ë€¸ ë€¹ ë€º ë€» ë€¼ ë€½ ë€¾ ë€¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë‚€ ë‚ ë‚‚ ë‚ƒ ë‚„ ë‚… ë‚† ë‚‡ ë‚ˆ ë‚‰ ë‚Š ë‚‹ ë‚Œ ë‚ ë‚Ž ë‚ ë‚ ë‚‘ ë‚’ ë‚“ ë‚” ë‚• ë‚– ë‚— ë‚˜ ë‚™ ë‚š ë‚› ë‚œ ë‚ ë‚ž ë‚Ÿ ë‚  ë‚¡ ë‚¢ ë‚£ ë‚¤ ë‚¥ ë‚¦ ë‚§ ë‚¨ ë‚© ë‚ª ë‚« ë‚¬ ë‚­ ë‚® ë‚¯ ë‚° ë‚± ë‚² ë‚³ ë‚´ ë‚µ ë‚¶ ë‚· ë‚¸ ë‚¹ ë‚º ë‚» ë‚¼ ë‚½ ë‚¾ ë‚¿ ëƒ€ ëƒ ëƒ‚ ëƒƒ ëƒ„ ëƒ… ëƒ† ëƒ‡ ëƒˆ ëƒ‰ ëƒŠ ëƒ‹ ëƒŒ ëƒ ëƒŽ ëƒ ëƒ ëƒ‘ ëƒ’ ëƒ“ ëƒ” ëƒ• ëƒ– ëƒ— ëƒ˜ ëƒ™ ëƒš ëƒ› ëƒœ ëƒ ëƒž ëƒŸ ëƒ  ëƒ¡ ëƒ¢ ëƒ£ ëƒ¤ ëƒ¥ ëƒ¦ ëƒ§ ëƒ¨ ëƒ© ëƒª ëƒ« ëƒ¬ ëƒ­ ëƒ® ëƒ¯ ëƒ° ëƒ± ëƒ² ëƒ³ ëƒ´ ëƒµ ëƒ¶ ëƒ· ëƒ¸ ëƒ¹ ëƒº ëƒ» ëƒ¼ ëƒ½ ëƒ¾ ëƒ¿ ë„€ ë„ ë„‚ ë„ƒ ë„„ ë„… ë„† ë„‡ ë„ˆ ë„‰ ë„Š ë„‹ ë„Œ ë„ ë„Ž ë„ ë„ ë„‘ ë„’ ë„“ ë„” ë„• ë„– ë„— ë„˜ ë„™ ë„š ë„› ë„œ ë„ ë„ž ë„Ÿ ë„  ë„¡ ë„¢ ë„£ ë„¤ ë„¥ ë„¦ ë„§ ë„¨ ë„© ë„ª ë„« ë„¬ ë„­ ë„® ë„¯ ë„° ë„± ë„² ë„³ ë„´ ë„µ ë„¶ ë„· ë„¸ ë„¹ ë„º ë„» ë„¼ ë„½ ë„¾ ë„¿ ë…€ ë… ë…‚ ë…ƒ ë…„ ë…… ë…† ë…‡ ë…ˆ ë…‰ ë…Š ë…‹ ë…Œ ë… ë…Ž ë… ë… ë…‘ ë…’ ë…“ ë…” ë…• ë…– ë…— ë…˜ ë…™ ë…š ë…› ë…œ ë… ë…ž ë…Ÿ ë…  ë…¡ ë…¢ ë…£ ë…¤ ë…¥ ë…¦ ë…§ ë…¨ ë…© ë…ª ë…« ë…¬ ë…­ ë…® ë…¯ ë…° ë…± ë…² ë…³ ë…´ ë…µ ë…¶ ë…· ë…¸ ë…¹ ë…º ë…» ë…¼ ë…½ ë…¾ ë…¿ ë†€ ë† ë†‚ ë†ƒ ë†„ ë†… ë†† ë†‡ ë†ˆ ë†‰ ë†Š ë†‹ ë†Œ ë† ë†Ž ë† ë† ë†‘ ë†’ ë†“ ë†” ë†• ë†– ë†— ë†˜ ë†™ ë†š ë†› ë†œ ë† ë†ž ë†Ÿ ë†  ë†¡ ë†¢ ë†£ ë†¤ ë†¥ ë†¦ ë†§ ë†¨ ë†© ë†ª ë†« ë†¬ ë†­ ë†® ë†¯ ë†° ë†± ë†² ë†³ ë†´ ë†µ ë†¶ ë†· ë†¸ ë†¹ ë†º ë†» ë†¼ ë†½ ë†¾ ë†¿ ë‡€ ë‡ ë‡‚ ë‡ƒ ë‡„ ë‡… ë‡† ë‡‡ ë‡ˆ ë‡‰ ë‡Š ë‡‹ ë‡Œ ë‡ ë‡Ž ë‡ ë‡ ë‡‘ ë‡’ ë‡“ ë‡” ë‡• ë‡– ë‡— ë‡˜ ë‡™ ë‡š ë‡› ë‡œ ë‡ ë‡ž ë‡Ÿ ë‡  ë‡¡ ë‡¢ ë‡£ ë‡¤ ë‡¥ ë‡¦ ë‡§ ë‡¨ ë‡© ë‡ª ë‡« ë‡¬ ë‡­ ë‡® ë‡¯ ë‡° ë‡± ë‡² ë‡³ ë‡´ ë‡µ ë‡¶ ë‡· ë‡¸ ë‡¹ ë‡º ë‡» ë‡¼ ë‡½ ë‡¾ ë‡¿ ëˆ€ ëˆ ëˆ‚ ëˆƒ ëˆ„ ëˆ… ëˆ† ëˆ‡ ëˆˆ ëˆ‰ ëˆŠ ëˆ‹ ëˆŒ ëˆ ëˆŽ ëˆ ëˆ ëˆ‘ ëˆ’ ëˆ“ ëˆ” ëˆ• ëˆ– ëˆ— ëˆ˜ ëˆ™ ëˆš ëˆ› ëˆœ ëˆ ëˆž ëˆŸ ëˆ  ëˆ¡ ëˆ¢ ëˆ£ ëˆ¤ ëˆ¥ ëˆ¦ ëˆ§ ëˆ¨ ëˆ© ëˆª ëˆ« ëˆ¬ ëˆ­ ëˆ® ëˆ¯ ëˆ° ëˆ± ëˆ² ëˆ³ ëˆ´ ëˆµ ëˆ¶ ëˆ· ëˆ¸ ëˆ¹ ëˆº ëˆ» ëˆ¼ ëˆ½ ëˆ¾ ëˆ¿ ë‰€ ë‰ ë‰‚ ë‰ƒ ë‰„ ë‰… ë‰† ë‰‡ ë‰ˆ ë‰‰ ë‰Š ë‰‹ ë‰Œ ë‰ ë‰Ž ë‰ ë‰ ë‰‘ ë‰’ ë‰“ ë‰” ë‰• ë‰– ë‰— ë‰˜ ë‰™ ë‰š ë‰› ë‰œ ë‰ ë‰ž ë‰Ÿ ë‰  ë‰¡ ë‰¢ ë‰£ ë‰¤ ë‰¥ ë‰¦ ë‰§ ë‰¨ ë‰© ë‰ª ë‰« ë‰¬ ë‰­ ë‰® ë‰¯ ë‰° ë‰± ë‰² ë‰³ ë‰´ ë‰µ ë‰¶ ë‰· ë‰¸ ë‰¹ ë‰º ë‰» ë‰¼ ë‰½ ë‰¾ ë‰¿ ëŠ€ ëŠ ëŠ‚ ëŠƒ ëŠ„ ëŠ… ëŠ† ëŠ‡ ëŠˆ ëŠ‰ ëŠŠ ëŠ‹ ëŠŒ ëŠ ëŠŽ ëŠ ëŠ ëŠ‘ ëŠ’ ëŠ“ ëŠ” ëŠ• ëŠ– ëŠ— ëŠ˜ ëŠ™ ëŠš ëŠ› ëŠœ ëŠ ëŠž ëŠŸ ëŠ  ëŠ¡ ëŠ¢ ëŠ£ ëŠ¤ ëŠ¥ ëŠ¦ ëŠ§ ëŠ¨ ëŠ© ëŠª ëŠ« ëŠ¬ ëŠ­ ëŠ® ëŠ¯ ëŠ° ëŠ± ëŠ² ëŠ³ ëŠ´ ëŠµ ëŠ¶ ëŠ· ëŠ¸ ëŠ¹ ëŠº ëŠ» ëŠ¼ ëŠ½ ëŠ¾ ëŠ¿ ë‹€ ë‹ ë‹‚ ë‹ƒ ë‹„ ë‹… ë‹† ë‹‡ ë‹ˆ ë‹‰ ë‹Š ë‹‹ ë‹Œ ë‹ ë‹Ž ë‹ ë‹ ë‹‘ ë‹’ ë‹“ ë‹” ë‹• ë‹– ë‹— ë‹˜ ë‹™ ë‹š ë‹› ë‹œ ë‹ ë‹ž ë‹Ÿ ë‹  ë‹¡ ë‹¢ ë‹£ ë‹¤ ë‹¥ ë‹¦ ë‹§ ë‹¨ ë‹© ë‹ª ë‹« ë‹¬ ë‹­ ë‹® ë‹¯ ë‹° ë‹± ë‹² ë‹³ ë‹´ ë‹µ ë‹¶ ë‹· ë‹¸ ë‹¹ ë‹º ë‹» ë‹¼ ë‹½ ë‹¾ ë‹¿ ëŒ€ ëŒ ëŒ‚ ëŒƒ ëŒ„ ëŒ… ëŒ† ëŒ‡ ëŒˆ ëŒ‰ ëŒŠ ëŒ‹ ëŒŒ ëŒ ëŒŽ ëŒ ëŒ ëŒ‘ ëŒ’ ëŒ“ ëŒ” ëŒ• ëŒ– ëŒ— ëŒ˜ ëŒ™ ëŒš ëŒ› ëŒœ ëŒ ëŒž ëŒŸ ëŒ  ëŒ¡ ëŒ¢ ëŒ£ ëŒ¤ ëŒ¥ ëŒ¦ ëŒ§ ëŒ¨ ëŒ© ëŒª ëŒ« ëŒ¬ ëŒ­ ëŒ® ëŒ¯ ëŒ° ëŒ± ëŒ² ëŒ³ ëŒ´ ëŒµ ëŒ¶ ëŒ· ëŒ¸ ëŒ¹ ëŒº ëŒ» ëŒ¼ ëŒ½ ëŒ¾ ëŒ¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ëŽ€ ëŽ ëŽ‚ ëŽƒ ëŽ„ ëŽ… ëŽ† ëŽ‡ ëŽˆ ëŽ‰ ëŽŠ ëŽ‹ ëŽŒ ëŽ ëŽŽ ëŽ ëŽ ëŽ‘ ëŽ’ ëŽ“ ëŽ” ëŽ• ëŽ– ëŽ— ëŽ˜ ëŽ™ ëŽš ëŽ› ëŽœ ëŽ ëŽž ëŽŸ ëŽ  ëŽ¡ ëŽ¢ ëŽ£ ëŽ¤ ëŽ¥ ëŽ¦ ëŽ§ ëŽ¨ ëŽ© ëŽª ëŽ« ëŽ¬ ëŽ­ ëŽ® ëŽ¯ ëŽ° ëŽ± ëŽ² ëŽ³ ëŽ´ ëŽµ ëŽ¶ ëŽ· ëŽ¸ ëŽ¹ ëŽº ëŽ» ëŽ¼ ëŽ½ ëŽ¾ ëŽ¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ë‘€ ë‘ ë‘‚ ë‘ƒ ë‘„ ë‘… ë‘† ë‘‡ ë‘ˆ ë‘‰ ë‘Š ë‘‹ ë‘Œ ë‘ ë‘Ž ë‘ ë‘ ë‘‘ ë‘’ ë‘“ ë‘” ë‘• ë‘– ë‘— ë‘˜ ë‘™ ë‘š ë‘› ë‘œ ë‘ ë‘ž ë‘Ÿ ë‘  ë‘¡ ë‘¢ ë‘£ ë‘¤ ë‘¥ ë‘¦ ë‘§ ë‘¨ ë‘© ë‘ª ë‘« ë‘¬ ë‘­ ë‘® ë‘¯ ë‘° ë‘± ë‘² ë‘³ ë‘´ ë‘µ ë‘¶ ë‘· ë‘¸ ë‘¹ ë‘º ë‘» ë‘¼ ë‘½ ë‘¾ ë‘¿ ë’€ ë’ ë’‚ ë’ƒ ë’„ ë’… ë’† ë’‡ ë’ˆ ë’‰ ë’Š ë’‹ ë’Œ ë’ ë’Ž ë’ ë’ ë’‘ ë’’ ë’“ ë’” ë’• ë’– ë’— ë’˜ ë’™ ë’š ë’› ë’œ ë’ ë’ž ë’Ÿ ë’  ë’¡ ë’¢ ë’£ ë’¤ ë’¥ ë’¦ ë’§ ë’¨ ë’© ë’ª ë’« ë’¬ ë’­ ë’® ë’¯ ë’° ë’± ë’² ë’³ ë’´ ë’µ ë’¶ ë’· ë’¸ ë’¹ ë’º ë’» ë’¼ ë’½ ë’¾ ë’¿ ë“€ ë“ ë“‚ ë“ƒ ë“„ ë“… ë“† ë“‡ ë“ˆ ë“‰ ë“Š ë“‹ ë“Œ ë“ ë“Ž ë“ ë“ ë“‘ ë“’ ë““ ë“” ë“• ë“– ë“— ë“˜ ë“™ ë“š ë“› ë“œ ë“ ë“ž ë“Ÿ ë“  ë“¡ ë“¢ ë“£ ë“¤ ë“¥ ë“¦ ë“§ ë“¨ ë“© ë“ª ë“« ë“¬ ë“­ ë“® ë“¯ ë“° ë“± ë“² ë“³ ë“´ ë“µ ë“¶ ë“· ë“¸ ë“¹ ë“º ë“» ë“¼ ë“½ ë“¾ ë“¿ ë”€ ë” ë”‚ ë”ƒ ë”„ ë”… ë”† ë”‡ ë”ˆ ë”‰ ë”Š ë”‹ ë”Œ ë” ë”Ž ë” ë” ë”‘ ë”’ ë”“ ë”” ë”• ë”– ë”— ë”˜ ë”™ ë”š ë”› ë”œ ë” ë”ž ë”Ÿ ë”  ë”¡ ë”¢ ë”£ ë”¤ ë”¥ ë”¦ ë”§ ë”¨ ë”© ë”ª ë”« ë”¬ ë”­ ë”® ë”¯ ë”° ë”± ë”² ë”³ ë”´ ë”µ ë”¶ ë”· ë”¸ ë”¹ ë”º ë”» ë”¼ ë”½ ë”¾ ë”¿ ë•€ ë• ë•‚ ë•ƒ ë•„ ë•… ë•† ë•‡ ë•ˆ ë•‰ ë•Š ë•‹ ë•Œ ë• ë•Ž ë• ë• ë•‘ ë•’ ë•“ ë•” ë•• ë•– ë•— ë•˜ ë•™ ë•š ë•› ë•œ ë• ë•ž ë•Ÿ ë•  ë•¡ ë•¢ ë•£ ë•¤ ë•¥ ë•¦ ë•§ ë•¨ ë•© ë•ª ë•« ë•¬ ë•­ ë•® ë•¯ ë•° ë•± ë•² ë•³ ë•´ ë•µ ë•¶ ë•· ë•¸ ë•¹ ë•º ë•» ë•¼ ë•½ ë•¾ ë•¿ ë–€ ë– ë–‚ ë–ƒ ë–„ ë–… ë–† ë–‡ ë–ˆ ë–‰ ë–Š ë–‹ ë–Œ ë– ë–Ž ë– ë– ë–‘ ë–’ ë–“ ë–” ë–• ë–– ë–— ë–˜ ë–™ ë–š ë–› ë–œ ë– ë–ž ë–Ÿ ë–  ë–¡ ë–¢ ë–£ ë–¤ ë–¥ ë–¦ ë–§ ë–¨ ë–© ë–ª ë–« ë–¬ ë–­ ë–® ë–¯ ë–° ë–± ë–² ë–³ ë–´ ë–µ ë–¶ ë–· ë–¸ ë–¹ ë–º ë–» ë–¼ ë–½ ë–¾ ë–¿ ë—€ ë— ë—‚ ë—ƒ ë—„ ë—… ë—† ë—‡ ë—ˆ ë—‰ ë—Š ë—‹ ë—Œ ë— ë—Ž ë— ë— ë—‘ ë—’ ë—“ ë—” ë—• ë—– ë—— ë—˜ ë—™ ë—š ë—› ë—œ ë— ë—ž ë—Ÿ ë—  ë—¡ ë—¢ ë—£ ë—¤ ë—¥ ë—¦ ë—§ ë—¨ ë—© ë—ª ë—« ë—¬ ë—­ ë—® ë—¯ ë—° ë—± ë—² ë—³ ë—´ ë—µ ë—¶ ë—· ë—¸ ë—¹ ë—º ë—» ë—¼ ë—½ ë—¾ ë—¿ ë˜€ ë˜ ë˜‚ ë˜ƒ ë˜„ ë˜… ë˜† ë˜‡ ë˜ˆ ë˜‰ ë˜Š ë˜‹ ë˜Œ ë˜ ë˜Ž ë˜ ë˜ ë˜‘ ë˜’ ë˜“ ë˜” ë˜• ë˜– ë˜— ë˜˜ ë˜™ ë˜š ë˜› ë˜œ ë˜ ë˜ž ë˜Ÿ ë˜  ë˜¡ ë˜¢ ë˜£ ë˜¤ ë˜¥ ë˜¦ ë˜§ ë˜¨ ë˜© ë˜ª ë˜« ë˜¬ ë˜­ ë˜® ë˜¯ ë˜° ë˜± ë˜² ë˜³ ë˜´ ë˜µ ë˜¶ ë˜· ë˜¸ ë˜¹ ë˜º ë˜» ë˜¼ ë˜½ ë˜¾ ë˜¿ ë™€ ë™ ë™‚ ë™ƒ ë™„ ë™… ë™† ë™‡ ë™ˆ ë™‰ ë™Š ë™‹ ë™Œ ë™ ë™Ž ë™ ë™ ë™‘ ë™’ ë™“ ë™” ë™• ë™– ë™— ë™˜ ë™™ ë™š ë™› ë™œ ë™ ë™ž ë™Ÿ ë™  ë™¡ ë™¢ ë™£ ë™¤ ë™¥ ë™¦ ë™§ ë™¨ ë™© ë™ª ë™« ë™¬ ë™­ ë™® ë™¯ ë™° ë™± ë™² ë™³ ë™´ ë™µ ë™¶ ë™· ë™¸ ë™¹ ë™º ë™» ë™¼ ë™½ ë™¾ ë™¿ ëš€ ëš ëš‚ ëšƒ ëš„ ëš… ëš† ëš‡ ëšˆ ëš‰ ëšŠ ëš‹ ëšŒ ëš ëšŽ ëš ëš ëš‘ ëš’ ëš“ ëš” ëš• ëš– ëš— ëš˜ ëš™ ëšš ëš› ëšœ ëš ëšž ëšŸ ëš  ëš¡ ëš¢ ëš£ ëš¤ ëš¥ ëš¦ ëš§ ëš¨ ëš© ëšª ëš« ëš¬ ëš­ ëš® ëš¯ ëš° ëš± ëš² ëš³ ëš´ ëšµ ëš¶ ëš· ëš¸ ëš¹ ëšº ëš» ëš¼ ëš½ ëš¾ ëš¿ ë›€ ë› ë›‚ ë›ƒ ë›„ ë›… ë›† ë›‡ ë›ˆ ë›‰ ë›Š ë›‹ ë›Œ ë› ë›Ž ë› ë› ë›‘ ë›’ ë›“ ë›” ë›• ë›– ë›— ë›˜ ë›™ ë›š ë›› ë›œ ë› ë›ž ë›Ÿ ë›  ë›¡ ë›¢ ë›£ ë›¤ ë›¥ ë›¦ ë›§ ë›¨ ë›© ë›ª ë›« ë›¬ ë›­ ë›® ë›¯ ë›° ë›± ë›² ë›³ ë›´ ë›µ ë›¶ ë›· ë›¸ ë›¹ ë›º ë›» ë›¼ ë›½ ë›¾ ë›¿ ëœ€ ëœ ëœ‚ ëœƒ ëœ„ ëœ… ëœ† ëœ‡ ëœˆ ëœ‰ ëœŠ ëœ‹ ëœŒ ëœ ëœŽ ëœ ëœ ëœ‘ ëœ’ ëœ“ ëœ” ëœ• ëœ– ëœ— ëœ˜ ëœ™ ëœš ëœ› ëœœ ëœ ëœž ëœŸ ëœ  ëœ¡ ëœ¢ ëœ£ ëœ¤ ëœ¥ ëœ¦ ëœ§ ëœ¨ ëœ© ëœª ëœ« ëœ¬ ëœ­ ëœ® ëœ¯ ëœ° ëœ± ëœ² ëœ³ ëœ´ ëœµ ëœ¶ ëœ· ëœ¸ ëœ¹ ëœº ëœ» ëœ¼ ëœ½ ëœ¾ ëœ¿ ë€ ë ë‚ ëƒ ë„ ë… ë† ë‡ ëˆ ë‰ ëŠ ë‹ ëŒ ë ëŽ ë ë ë‘ ë’ ë“ ë” ë• ë– ë— ë˜ ë™ ëš ë› ëœ ë ëž ëŸ ë  ë¡ ë¢ ë£ ë¤ ë¥ ë¦ ë§ ë¨ ë© ëª ë« ë¬ ë­ ë® ë¯ ë° ë± ë² ë³ ë´ ëµ ë¶ ë· ë¸ ë¹ ëº ë» ë¼ ë½ ë¾ ë¿ ëž€ ëž ëž‚ ëžƒ ëž„ ëž… ëž† ëž‡ ëžˆ ëž‰ ëžŠ ëž‹ ëžŒ ëž ëžŽ ëž ëž ëž‘ ëž’ ëž“ ëž” ëž• ëž– ëž— ëž˜ ëž™ ëžš ëž› ëžœ ëž ëžž ëžŸ ëž  ëž¡ ëž¢ ëž£ ëž¤ ëž¥ ëž¦ ëž§ ëž¨ ëž© ëžª ëž« ëž¬ ëž­ ëž® ëž¯ ëž° ëž± ëž² ëž³ ëž´ ëžµ ëž¶ ëž· ëž¸ ëž¹ ëžº ëž» ëž¼ ëž½ ëž¾ ëž¿ ëŸ€ ëŸ ëŸ‚ ëŸƒ ëŸ„ ëŸ… ëŸ† ëŸ‡ ëŸˆ ëŸ‰ ëŸŠ ëŸ‹ ëŸŒ ëŸ ëŸŽ ëŸ ëŸ ëŸ‘ ëŸ’ ëŸ“ ëŸ” ëŸ• ëŸ– ëŸ— ëŸ˜ ëŸ™ ëŸš ëŸ› ëŸœ ëŸ ëŸž ëŸŸ ëŸ  ëŸ¡ ëŸ¢ ëŸ£ ëŸ¤ ëŸ¥ ëŸ¦ ëŸ§ ëŸ¨ ëŸ© ëŸª ëŸ« ëŸ¬ ëŸ­ ëŸ® ëŸ¯ ëŸ° ëŸ± ëŸ² ëŸ³ ëŸ´ ëŸµ ëŸ¶ ëŸ· ëŸ¸ ëŸ¹ ëŸº ëŸ» ëŸ¼ ëŸ½ ëŸ¾ ëŸ¿ ë € ë  ë ‚ ë ƒ ë „ ë … ë † ë ‡ ë ˆ ë ‰ ë Š ë ‹ ë Œ ë  ë Ž ë  ë  ë ‘ ë ’ ë “ ë ” ë • ë – ë — ë ˜ ë ™ ë š ë › ë œ ë  ë ž ë Ÿ ë   ë ¡ ë ¢ ë £ ë ¤ ë ¥ ë ¦ ë § ë ¨ ë © ë ª ë « ë ¬ ë ­ ë ® ë ¯ ë ° ë ± ë ² ë ³ ë ´ ë µ ë ¶ ë · ë ¸ ë ¹ ë º ë » ë ¼ ë ½ ë ¾ ë ¿ ë¡€ ë¡ ë¡‚ ë¡ƒ ë¡„ ë¡… ë¡† ë¡‡ ë¡ˆ ë¡‰ ë¡Š ë¡‹ ë¡Œ ë¡ ë¡Ž ë¡ ë¡ ë¡‘ ë¡’ ë¡“ ë¡” ë¡• ë¡– ë¡— ë¡˜ ë¡™ ë¡š ë¡› ë¡œ ë¡ ë¡ž ë¡Ÿ ë¡  ë¡¡ ë¡¢ ë¡£ ë¡¤ ë¡¥ ë¡¦ ë¡§ ë¡¨ ë¡© ë¡ª ë¡« ë¡¬ ë¡­ ë¡® ë¡¯ ë¡° ë¡± ë¡² ë¡³ ë¡´ ë¡µ ë¡¶ ë¡· ë¡¸ ë¡¹ ë¡º ë¡» ë¡¼ ë¡½ ë¡¾ ë¡¿ ë¢€ ë¢ ë¢‚ ë¢ƒ ë¢„ ë¢… ë¢† ë¢‡ ë¢ˆ ë¢‰ ë¢Š ë¢‹ ë¢Œ ë¢ ë¢Ž ë¢ ë¢ ë¢‘ ë¢’ ë¢“ ë¢” ë¢• ë¢– ë¢— ë¢˜ ë¢™ ë¢š ë¢› ë¢œ ë¢ ë¢ž ë¢Ÿ ë¢  ë¢¡ ë¢¢ ë¢£ ë¢¤ ë¢¥ ë¢¦ ë¢§ ë¢¨ ë¢© ë¢ª ë¢« ë¢¬ ë¢­ ë¢® ë¢¯ ë¢° ë¢± ë¢² ë¢³ ë¢´ ë¢µ ë¢¶ ë¢· ë¢¸ ë¢¹ ë¢º ë¢» ë¢¼ ë¢½ ë¢¾ ë¢¿ ë£€ ë£ ë£‚ ë£ƒ ë£„ ë£… ë£† ë£‡ ë£ˆ ë£‰ ë£Š ë£‹ ë£Œ ë£ ë£Ž ë£ ë£ ë£‘ ë£’ ë£“ ë£” ë£• ë£– ë£— ë£˜ ë£™ ë£š ë£› ë£œ ë£ ë£ž ë£Ÿ ë£  ë£¡ ë£¢ ë££ ë£¤ ë£¥ ë£¦ ë£§ ë£¨ ë£© ë£ª ë£« ë£¬ ë£­ ë£® ë£¯ ë£° ë£± ë£² ë£³ ë£´ ë£µ ë£¶ ë£· ë£¸ ë£¹ ë£º ë£» ë£¼ ë£½ ë£¾ ë£¿ ë¤€ ë¤ ë¤‚ ë¤ƒ ë¤„ ë¤… ë¤† ë¤‡ ë¤ˆ ë¤‰ ë¤Š ë¤‹ ë¤Œ ë¤ ë¤Ž ë¤ ë¤ ë¤‘ ë¤’ ë¤“ ë¤” ë¤• ë¤– ë¤— ë¤˜ ë¤™ ë¤š ë¤› ë¤œ ë¤ ë¤ž ë¤Ÿ ë¤  ë¤¡ ë¤¢ ë¤£ ë¤¤ ë¤¥ ë¤¦ ë¤§ ë¤¨ ë¤© ë¤ª ë¤« ë¤¬ ë¤­ ë¤® ë¤¯ ë¤° ë¤± ë¤² ë¤³ ë¤´ ë¤µ ë¤¶ ë¤· ë¤¸ ë¤¹ ë¤º ë¤» ë¤¼ ë¤½ ë¤¾ ë¤¿ ë¥€ ë¥ ë¥‚ ë¥ƒ ë¥„ ë¥… ë¥† ë¥‡ ë¥ˆ ë¥‰ ë¥Š ë¥‹ ë¥Œ ë¥ ë¥Ž ë¥ ë¥ ë¥‘ ë¥’ ë¥“ ë¥” ë¥• ë¥– ë¥— ë¥˜ ë¥™ ë¥š ë¥› ë¥œ ë¥ ë¥ž ë¥Ÿ ë¥  ë¥¡ ë¥¢ ë¥£ ë¥¤ ë¥¥ ë¥¦ ë¥§ ë¥¨ ë¥© ë¥ª ë¥« ë¥¬ ë¥­ ë¥® ë¥¯ ë¥° ë¥± ë¥² ë¥³ ë¥´ ë¥µ ë¥¶ ë¥· ë¥¸ ë¥¹ ë¥º ë¥» ë¥¼ ë¥½ ë¥¾ ë¥¿ ë¦€ ë¦ ë¦‚ ë¦ƒ ë¦„ ë¦… ë¦† ë¦‡ ë¦ˆ ë¦‰ ë¦Š ë¦‹ ë¦Œ ë¦ ë¦Ž ë¦ ë¦ ë¦‘ ë¦’ ë¦“ ë¦” ë¦• ë¦– ë¦— ë¦˜ ë¦™ ë¦š ë¦› ë¦œ ë¦ ë¦ž ë¦Ÿ ë¦  ë¦¡ ë¦¢ ë¦£ ë¦¤ ë¦¥ ë¦¦ ë¦§ ë¦¨ ë¦© ë¦ª ë¦« ë¦¬ ë¦­ ë¦® ë¦¯ ë¦° ë¦± ë¦² ë¦³ ë¦´ ë¦µ ë¦¶ ë¦· ë¦¸ ë¦¹ ë¦º ë¦» ë¦¼ ë¦½ ë¦¾ ë¦¿ ë§€ ë§ ë§‚ ë§ƒ ë§„ ë§… ë§† ë§‡ ë§ˆ ë§‰ ë§Š ë§‹ ë§Œ ë§ ë§Ž ë§ ë§ ë§‘ ë§’ ë§“ ë§” ë§• ë§– ë§— ë§˜ ë§™ ë§š ë§› ë§œ ë§ ë§ž ë§Ÿ ë§  ë§¡ ë§¢ ë§£ ë§¤ ë§¥ ë§¦ ë§§ ë§¨ ë§© ë§ª ë§« ë§¬ ë§­ ë§® ë§¯ ë§° ë§± ë§² ë§³ ë§´ ë§µ ë§¶ ë§· ë§¸ ë§¹ ë§º ë§» ë§¼ ë§½ ë§¾ ë§¿ ë¨€ ë¨ ë¨‚ ë¨ƒ ë¨„ ë¨… ë¨† ë¨‡ ë¨ˆ ë¨‰ ë¨Š ë¨‹ ë¨Œ ë¨ ë¨Ž ë¨ ë¨ ë¨‘ ë¨’ ë¨“ ë¨” ë¨• ë¨– ë¨— ë¨˜ ë¨™ ë¨š ë¨› ë¨œ ë¨ ë¨ž ë¨Ÿ ë¨  ë¨¡ ë¨¢ ë¨£ ë¨¤ ë¨¥ ë¨¦ ë¨§ ë¨¨ ë¨© ë¨ª ë¨« ë¨¬ ë¨­ ë¨® ë¨¯ ë¨° ë¨± ë¨² ë¨³ ë¨´ ë¨µ ë¨¶ ë¨· ë¨¸ ë¨¹ ë¨º ë¨» ë¨¼ ë¨½ ë¨¾ ë¨¿ ë©€ ë© ë©‚ ë©ƒ ë©„ ë©… ë©† ë©‡ ë©ˆ ë©‰ ë©Š ë©‹ ë©Œ ë© ë©Ž ë© ë© ë©‘ ë©’ ë©“ ë©” ë©• ë©– ë©— ë©˜ ë©™ ë©š ë©› ë©œ ë© ë©ž ë©Ÿ ë©  ë©¡ ë©¢ ë©£ ë©¤ ë©¥ ë©¦ ë©§ ë©¨ ë©© ë©ª ë©« ë©¬ ë©­ ë©® ë©¯ ë©° ë©± ë©² ë©³ ë©´ ë©µ ë©¶ ë©· ë©¸ ë©¹ ë©º ë©» ë©¼ ë©½ ë©¾ ë©¿ ëª€ ëª ëª‚ ëªƒ ëª„ ëª… ëª† ëª‡ ëªˆ ëª‰ ëªŠ ëª‹ ëªŒ ëª ëªŽ ëª ëª ëª‘ ëª’ ëª“ ëª” ëª• ëª– ëª— ëª˜ ëª™ ëªš ëª› ëªœ ëª ëªž ëªŸ ëª  ëª¡ ëª¢ ëª£ ëª¤ ëª¥ ëª¦ ëª§ ëª¨ ëª© ëªª ëª« ëª¬ ëª­ ëª® ëª¯ ëª° ëª± ëª² ëª³ ëª´ ëªµ ëª¶ ëª· ëª¸ ëª¹ ëªº ëª» ëª¼ ëª½ ëª¾ ëª¿ ë«€ ë« ë«‚ ë«ƒ ë«„ ë«… ë«† ë«‡ ë«ˆ ë«‰ ë«Š ë«‹ ë«Œ ë« ë«Ž ë« ë« ë«‘ ë«’ ë«“ ë«” ë«• ë«– ë«— ë«˜ ë«™ ë«š ë«› ë«œ ë« ë«ž ë«Ÿ ë«  ë«¡ ë«¢ ë«£ ë«¤ ë«¥ ë«¦ ë«§ ë«¨ ë«© ë«ª ë«« ë«¬ ë«­ ë«® ë«¯ ë«° ë«± ë«² ë«³ ë«´ ë«µ ë«¶ ë«· ë«¸ ë«¹ ë«º ë«» ë«¼ ë«½ ë«¾ ë«¿ ë¬€ ë¬ ë¬‚ ë¬ƒ ë¬„ ë¬… ë¬† ë¬‡ ë¬ˆ ë¬‰ ë¬Š ë¬‹ ë¬Œ ë¬ ë¬Ž ë¬ ë¬ ë¬‘ ë¬’ ë¬“ ë¬” ë¬• ë¬– ë¬— ë¬˜ ë¬™ ë¬š ë¬› ë¬œ ë¬ ë¬ž ë¬Ÿ ë¬  ë¬¡ ë¬¢ ë¬£ ë¬¤ ë¬¥ ë¬¦ ë¬§ ë¬¨ ë¬© ë¬ª ë¬« ë¬¬ ë¬­ ë¬® ë¬¯ ë¬° ë¬± ë¬² ë¬³ ë¬´ ë¬µ ë¬¶ ë¬· ë¬¸ ë¬¹ ë¬º ë¬» ë¬¼ ë¬½ ë¬¾ ë¬¿ ë­€ ë­ ë­‚ ë­ƒ ë­„ ë­… ë­† ë­‡ ë­ˆ ë­‰ ë­Š ë­‹ ë­Œ ë­ ë­Ž ë­ ë­ ë­‘ ë­’ ë­“ ë­” ë­• ë­– ë­— ë­˜ ë­™ ë­š ë­› ë­œ ë­ ë­ž ë­Ÿ ë­  ë­¡ ë­¢ ë­£ ë­¤ ë­¥ ë­¦ ë­§ ë­¨ ë­© ë­ª ë­« ë­¬ ë­­ ë­® ë­¯ ë­° ë­± ë­² ë­³ ë­´ ë­µ ë­¶ ë­· ë­¸ ë­¹ ë­º ë­» ë­¼ ë­½ ë­¾ ë­¿ ë®€ ë® ë®‚ ë®ƒ ë®„ ë®… ë®† ë®‡ ë®ˆ ë®‰ ë®Š ë®‹ ë®Œ ë® ë®Ž ë® ë® ë®‘ ë®’ ë®“ ë®” ë®• ë®– ë®— ë®˜ ë®™ ë®š ë®› ë®œ ë® ë®ž ë®Ÿ ë®  ë®¡ ë®¢ ë®£ ë®¤ ë®¥ ë®¦ ë®§ ë®¨ ë®© ë®ª ë®« ë®¬ ë®­ ë®® ë®¯ ë®° ë®± ë®² ë®³ ë®´ ë®µ ë®¶ ë®· ë®¸ ë®¹ ë®º ë®» ë®¼ ë®½ ë®¾ ë®¿ ë¯€ ë¯ ë¯‚ ë¯ƒ ë¯„ ë¯… ë¯† ë¯‡ ë¯ˆ ë¯‰ ë¯Š ë¯‹ ë¯Œ ë¯ ë¯Ž ë¯ ë¯ ë¯‘ ë¯’ ë¯“ ë¯” ë¯• ë¯– ë¯— ë¯˜ ë¯™ ë¯š ë¯› ë¯œ ë¯ ë¯ž ë¯Ÿ ë¯  ë¯¡ ë¯¢ ë¯£ ë¯¤ ë¯¥ ë¯¦ ë¯§ ë¯¨ ë¯© ë¯ª ë¯« ë¯¬ ë¯­ ë¯® ë¯¯ ë¯° ë¯± ë¯² ë¯³ ë¯´ ë¯µ ë¯¶ ë¯· ë¯¸ ë¯¹ ë¯º ë¯» ë¯¼ ë¯½ ë¯¾ ë¯¿ ë°€ ë° ë°‚ ë°ƒ ë°„ ë°… ë°† ë°‡ ë°ˆ ë°‰ ë°Š ë°‹ ë°Œ ë° ë°Ž ë° ë° ë°‘ ë°’ ë°“ ë°” ë°• ë°– ë°— ë°˜ ë°™ ë°š ë°› ë°œ ë° ë°ž ë°Ÿ ë°  ë°¡ ë°¢ ë°£ ë°¤ ë°¥ ë°¦ ë°§ ë°¨ ë°© ë°ª ë°« ë°¬ ë°­ ë°® ë°¯ ë°° ë°± ë°² ë°³ ë°´ ë°µ ë°¶ ë°· ë°¸ ë°¹ ë°º ë°» ë°¼ ë°½ ë°¾ ë°¿ ë±€ ë± ë±‚ ë±ƒ ë±„ ë±… ë±† ë±‡ ë±ˆ ë±‰ ë±Š ë±‹ ë±Œ ë± ë±Ž ë± ë± ë±‘ ë±’ ë±“ ë±” ë±• ë±– ë±— ë±˜ ë±™ ë±š ë±› ë±œ ë± ë±ž ë±Ÿ ë±  ë±¡ ë±¢ ë±£ ë±¤ ë±¥ ë±¦ ë±§ ë±¨ ë±© ë±ª ë±« ë±¬ ë±­ ë±® ë±¯ ë±° ë±± ë±² ë±³ ë±´ ë±µ ë±¶ ë±· ë±¸ ë±¹ ë±º ë±» ë±¼ ë±½ ë±¾ ë±¿ ë²€ ë² ë²‚ ë²ƒ ë²„ ë²… ë²† ë²‡ ë²ˆ ë²‰ ë²Š ë²‹ ë²Œ ë² ë²Ž ë² ë² ë²‘ ë²’ ë²“ ë²” ë²• ë²– ë²— ë²˜ ë²™ ë²š ë²› ë²œ ë² ë²ž ë²Ÿ ë²  ë²¡ ë²¢ ë²£ ë²¤ ë²¥ ë²¦ ë²§ ë²¨ ë²© ë²ª ë²« ë²¬ ë²­ ë²® ë²¯ ë²° ë²± ë²² ë²³ ë²´ ë²µ ë²¶ ë²· ë²¸ ë²¹ ë²º ë²» ë²¼ ë²½ ë²¾ ë²¿ ë³€ ë³ ë³‚ ë³ƒ ë³„ ë³… ë³† ë³‡ ë³ˆ ë³‰ ë³Š ë³‹ ë³Œ ë³ ë³Ž ë³ ë³ ë³‘ ë³’ ë³“ ë³” ë³• ë³– ë³— ë³˜ ë³™ ë³š ë³› ë³œ ë³ ë³ž ë³Ÿ ë³  ë³¡ ë³¢ ë³£ ë³¤ ë³¥ ë³¦ ë³§ ë³¨ ë³© ë³ª ë³« ë³¬ ë³­ ë³® ë³¯ ë³° ë³± ë³² ë³³ ë³´ ë³µ ë³¶ ë³· ë³¸ ë³¹ ë³º ë³» ë³¼ ë³½ ë³¾ ë³¿ ë´€ ë´ ë´‚ ë´ƒ ë´„ ë´… ë´† ë´‡ ë´ˆ ë´‰ ë´Š ë´‹ ë´Œ ë´ ë´Ž ë´ ë´ ë´‘ ë´’ ë´“ ë´” ë´• ë´– ë´— ë´˜ ë´™ ë´š ë´› ë´œ ë´ ë´ž ë´Ÿ ë´  ë´¡ ë´¢ ë´£ ë´¤ ë´¥ ë´¦ ë´§ ë´¨ ë´© ë´ª ë´« ë´¬ ë´­ ë´® ë´¯ ë´° ë´± ë´² ë´³ ë´´ ë´µ ë´¶ ë´· ë´¸ ë´¹ ë´º ë´» ë´¼ ë´½ ë´¾ ë´¿ ëµ€ ëµ ëµ‚ ëµƒ ëµ„ ëµ… ëµ† ëµ‡ ëµˆ ëµ‰ ëµŠ ëµ‹ ëµŒ ëµ ëµŽ ëµ ëµ ëµ‘ ëµ’ ëµ“ ëµ” ëµ• ëµ– ëµ— ëµ˜ ëµ™ ëµš ëµ› ëµœ ëµ ëµž ëµŸ ëµ  ëµ¡ ëµ¢ ëµ£ ëµ¤ ëµ¥ ëµ¦ ëµ§ ëµ¨ ëµ© ëµª ëµ« ëµ¬ ëµ­ ëµ® ëµ¯ ëµ° ëµ± ëµ² ëµ³ ëµ´ ëµµ ëµ¶ ëµ· ëµ¸ ëµ¹ ëµº ëµ» ëµ¼ ëµ½ ëµ¾ ëµ¿ ë¶€ ë¶ ë¶‚ ë¶ƒ ë¶„ ë¶… ë¶† ë¶‡ ë¶ˆ ë¶‰ ë¶Š ë¶‹ ë¶Œ ë¶ ë¶Ž ë¶ ë¶ ë¶‘ ë¶’ ë¶“ ë¶” ë¶• ë¶– ë¶— ë¶˜ ë¶™ ë¶š ë¶› ë¶œ ë¶ ë¶ž ë¶Ÿ ë¶  ë¶¡ ë¶¢ ë¶£ ë¶¤ ë¶¥ ë¶¦ ë¶§ ë¶¨ ë¶© ë¶ª ë¶« ë¶¬ ë¶­ ë¶® ë¶¯ ë¶° ë¶± ë¶² ë¶³ ë¶´ ë¶µ ë¶¶ ë¶· ë¶¸ ë¶¹ ë¶º ë¶» ë¶¼ ë¶½ ë¶¾ ë¶¿ ë·€ ë· ë·‚ ë·ƒ ë·„ ë·… ë·† ë·‡ ë·ˆ ë·‰ ë·Š ë·‹ ë·Œ ë· ë·Ž ë· ë· ë·‘ ë·’ ë·“ ë·” ë·• ë·– ë·— ë·˜ ë·™ ë·š ë·› ë·œ ë· ë·ž ë·Ÿ ë·  ë·¡ ë·¢ ë·£ ë·¤ ë·¥ ë·¦ ë·§ ë·¨ ë·© ë·ª ë·« ë·¬ ë·­ ë·® ë·¯ ë·° ë·± ë·² ë·³ ë·´ ë·µ ë·¶ ë·· ë·¸ ë·¹ ë·º ë·» ë·¼ ë·½ ë·¾ ë·¿ ë¸€ ë¸ ë¸‚ ë¸ƒ ë¸„ ë¸… ë¸† ë¸‡ ë¸ˆ ë¸‰ ë¸Š ë¸‹ ë¸Œ ë¸ ë¸Ž ë¸ ë¸ ë¸‘ ë¸’ ë¸“ ë¸” ë¸• ë¸– ë¸— ë¸˜ ë¸™ ë¸š ë¸› ë¸œ ë¸ ë¸ž ë¸Ÿ ë¸  ë¸¡ ë¸¢ ë¸£ ë¸¤ ë¸¥ ë¸¦ ë¸§ ë¸¨ ë¸© ë¸ª ë¸« ë¸¬ ë¸­ ë¸® ë¸¯ ë¸° ë¸± ë¸² ë¸³ ë¸´ ë¸µ ë¸¶ ë¸· ë¸¸ ë¸¹ ë¸º ë¸» ë¸¼ ë¸½ ë¸¾ ë¸¿ ë¹€ ë¹ ë¹‚ ë¹ƒ ë¹„ ë¹… ë¹† ë¹‡ ë¹ˆ ë¹‰ ë¹Š ë¹‹ ë¹Œ ë¹ ë¹Ž ë¹ ë¹ ë¹‘ ë¹’ ë¹“ ë¹” ë¹• ë¹– ë¹— ë¹˜ ë¹™ ë¹š ë¹› ë¹œ ë¹ ë¹ž ë¹Ÿ ë¹  ë¹¡ ë¹¢ ë¹£ ë¹¤ ë¹¥ ë¹¦ ë¹§ ë¹¨ ë¹© ë¹ª ë¹« ë¹¬ ë¹­ ë¹® ë¹¯ ë¹° ë¹± ë¹² ë¹³ ë¹´ ë¹µ ë¹¶ ë¹· ë¹¸ ë¹¹ ë¹º ë¹» ë¹¼ ë¹½ ë¹¾ ë¹¿ ëº€ ëº ëº‚ ëºƒ ëº„ ëº… ëº† ëº‡ ëºˆ ëº‰ ëºŠ ëº‹ ëºŒ ëº ëºŽ ëº ëº ëº‘ ëº’ ëº“ ëº” ëº• ëº– ëº— ëº˜ ëº™ ëºš ëº› ëºœ ëº ëºž ëºŸ ëº  ëº¡ ëº¢ ëº£ ëº¤ ëº¥ ëº¦ ëº§ ëº¨ ëº© ëºª ëº« ëº¬ ëº­ ëº® ëº¯ ëº° ëº± ëº² ëº³ ëº´ ëºµ ëº¶ ëº· ëº¸ ëº¹ ëºº ëº» ëº¼ ëº½ ëº¾ ëº¿ ë»€ ë» ë»‚ ë»ƒ ë»„ ë»… ë»† ë»‡ ë»ˆ ë»‰ ë»Š ë»‹ ë»Œ ë» ë»Ž ë» ë» ë»‘ ë»’ ë»“ ë»” ë»• ë»– ë»— ë»˜ ë»™ ë»š ë»› ë»œ ë» ë»ž ë»Ÿ ë»  ë»¡ ë»¢ ë»£ ë»¤ ë»¥ ë»¦ ë»§ ë»¨ ë»© ë»ª ë»« ë»¬ ë»­ ë»® ë»¯ ë»° ë»± ë»² ë»³ ë»´ ë»µ ë»¶ ë»· ë»¸ ë»¹ ë»º ë»» ë»¼ ë»½ ë»¾ ë»¿ ë¼€ ë¼ ë¼‚ ë¼ƒ ë¼„ ë¼… ë¼† ë¼‡ ë¼ˆ ë¼‰ ë¼Š ë¼‹ ë¼Œ ë¼ ë¼Ž ë¼ ë¼ ë¼‘ ë¼’ ë¼“ ë¼” ë¼• ë¼– ë¼— ë¼˜ ë¼™ ë¼š ë¼› ë¼œ ë¼ ë¼ž ë¼Ÿ ë¼  ë¼¡ ë¼¢ ë¼£ ë¼¤ ë¼¥ ë¼¦ ë¼§ ë¼¨ ë¼© ë¼ª ë¼« ë¼¬ ë¼­ ë¼® ë¼¯ ë¼° ë¼± ë¼² ë¼³ ë¼´ ë¼µ ë¼¶ ë¼· ë¼¸ ë¼¹ ë¼º ë¼» ë¼¼ ë¼½ ë¼¾ ë¼¿ ë½€ ë½ ë½‚ ë½ƒ ë½„ ë½… ë½† ë½‡ ë½ˆ ë½‰ ë½Š ë½‹ ë½Œ ë½ ë½Ž ë½ ë½ ë½‘ ë½’ ë½“ ë½” ë½• ë½– ë½— ë½˜ ë½™ ë½š ë½› ë½œ ë½ ë½ž ë½Ÿ ë½  ë½¡ ë½¢ ë½£ ë½¤ ë½¥ ë½¦ ë½§ ë½¨ ë½© ë½ª ë½« ë½¬ ë½­ ë½® ë½¯ ë½° ë½± ë½² ë½³ ë½´ ë½µ ë½¶ ë½· ë½¸ ë½¹ ë½º ë½» ë½¼ ë½½ ë½¾ ë½¿ ë¾€ ë¾ ë¾‚ ë¾ƒ ë¾„ ë¾… ë¾† ë¾‡ ë¾ˆ ë¾‰ ë¾Š ë¾‹ ë¾Œ ë¾ ë¾Ž ë¾ ë¾ ë¾‘ ë¾’ ë¾“ ë¾” ë¾• ë¾– ë¾— ë¾˜ ë¾™ ë¾š ë¾› ë¾œ ë¾ ë¾ž ë¾Ÿ ë¾  ë¾¡ ë¾¢ ë¾£ ë¾¤ ë¾¥ ë¾¦ ë¾§ ë¾¨ ë¾© ë¾ª ë¾« ë¾¬ ë¾­ ë¾® ë¾¯ ë¾° ë¾± ë¾² ë¾³ ë¾´ ë¾µ ë¾¶ ë¾· ë¾¸ ë¾¹ ë¾º ë¾» ë¾¼ ë¾½ ë¾¾ ë¾¿ ë¿€ ë¿ ë¿‚ ë¿ƒ ë¿„ ë¿… ë¿† ë¿‡ ë¿ˆ ë¿‰ ë¿Š ë¿‹ ë¿Œ ë¿ ë¿Ž ë¿ ë¿ ë¿‘ ë¿’ ë¿“ ë¿” ë¿• ë¿– ë¿— ë¿˜ ë¿™ ë¿š ë¿› ë¿œ ë¿ ë¿ž ë¿Ÿ ë¿  ë¿¡ ë¿¢ ë¿£ ë¿¤ ë¿¥ ë¿¦ ë¿§ ë¿¨ ë¿© ë¿ª ë¿« ë¿¬ ë¿­ ë¿® ë¿¯ ë¿° ë¿± ë¿² ë¿³ ë¿´ ë¿µ ë¿¶ ë¿· ë¿¸ ë¿¹ ë¿º ë¿» ë¿¼ ë¿½ ë¿¾ ë¿¿ ì€€ ì€ ì€‚ ì€ƒ ì€„ ì€… ì€† ì€‡ ì€ˆ ì€‰ ì€Š ì€‹ ì€Œ ì€ ì€Ž ì€ ì€ ì€‘ ì€’ ì€“ ì€” ì€• ì€– ì€— ì€˜ ì€™ ì€š ì€› ì€œ ì€ ì€ž ì€Ÿ ì€  ì€¡ ì€¢ ì€£ ì€¤ ì€¥ ì€¦ ì€§ ì€¨ ì€© ì€ª ì€« ì€¬ ì€­ ì€® ì€¯ ì€° ì€± ì€² ì€³ ì€´ ì€µ ì€¶ ì€· ì€¸ ì€¹ ì€º ì€» ì€¼ ì€½ ì€¾ ì€¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì‚€ ì‚ ì‚‚ ì‚ƒ ì‚„ ì‚… ì‚† ì‚‡ ì‚ˆ ì‚‰ ì‚Š ì‚‹ ì‚Œ ì‚ ì‚Ž ì‚ ì‚ ì‚‘ ì‚’ ì‚“ ì‚” ì‚• ì‚– ì‚— ì‚˜ ì‚™ ì‚š ì‚› ì‚œ ì‚ ì‚ž ì‚Ÿ ì‚  ì‚¡ ì‚¢ ì‚£ ì‚¤ ì‚¥ ì‚¦ ì‚§ ì‚¨ ì‚© ì‚ª ì‚« ì‚¬ ì‚­ ì‚® ì‚¯ ì‚° ì‚± ì‚² ì‚³ ì‚´ ì‚µ ì‚¶ ì‚· ì‚¸ ì‚¹ ì‚º ì‚» ì‚¼ ì‚½ ì‚¾ ì‚¿ ìƒ€ ìƒ ìƒ‚ ìƒƒ ìƒ„ ìƒ… ìƒ† ìƒ‡ ìƒˆ ìƒ‰ ìƒŠ ìƒ‹ ìƒŒ ìƒ ìƒŽ ìƒ ìƒ ìƒ‘ ìƒ’ ìƒ“ ìƒ” ìƒ• ìƒ– ìƒ— ìƒ˜ ìƒ™ ìƒš ìƒ› ìƒœ ìƒ ìƒž ìƒŸ ìƒ  ìƒ¡ ìƒ¢ ìƒ£ ìƒ¤ ìƒ¥ ìƒ¦ ìƒ§ ìƒ¨ ìƒ© ìƒª ìƒ« ìƒ¬ ìƒ­ ìƒ® ìƒ¯ ìƒ° ìƒ± ìƒ² ìƒ³ ìƒ´ ìƒµ ìƒ¶ ìƒ· ìƒ¸ ìƒ¹ ìƒº ìƒ» ìƒ¼ ìƒ½ ìƒ¾ ìƒ¿ ì„€ ì„ ì„‚ ì„ƒ ì„„ ì„… ì„† ì„‡ ì„ˆ ì„‰ ì„Š ì„‹ ì„Œ ì„ ì„Ž ì„ ì„ ì„‘ ì„’ ì„“ ì„” ì„• ì„– ì„— ì„˜ ì„™ ì„š ì„› ì„œ ì„ ì„ž ì„Ÿ ì„  ì„¡ ì„¢ ì„£ ì„¤ ì„¥ ì„¦ ì„§ ì„¨ ì„© ì„ª ì„« ì„¬ ì„­ ì„® ì„¯ ì„° ì„± ì„² ì„³ ì„´ ì„µ ì„¶ ì„· ì„¸ ì„¹ ì„º ì„» ì„¼ ì„½ ì„¾ ì„¿ ì…€ ì… ì…‚ ì…ƒ ì…„ ì…… ì…† ì…‡ ì…ˆ ì…‰ ì…Š ì…‹ ì…Œ ì… ì…Ž ì… ì… ì…‘ ì…’ ì…“ ì…” ì…• ì…– ì…— ì…˜ ì…™ ì…š ì…› ì…œ ì… ì…ž ì…Ÿ ì…  ì…¡ ì…¢ ì…£ ì…¤ ì…¥ ì…¦ ì…§ ì…¨ ì…© ì…ª ì…« ì…¬ ì…­ ì…® ì…¯ ì…° ì…± ì…² ì…³ ì…´ ì…µ ì…¶ ì…· ì…¸ ì…¹ ì…º ì…» ì…¼ ì…½ ì…¾ ì…¿ ì†€ ì† ì†‚ ì†ƒ ì†„ ì†… ì†† ì†‡ ì†ˆ ì†‰ ì†Š ì†‹ ì†Œ ì† ì†Ž ì† ì† ì†‘ ì†’ ì†“ ì†” ì†• ì†– ì†— ì†˜ ì†™ ì†š ì†› ì†œ ì† ì†ž ì†Ÿ ì†  ì†¡ ì†¢ ì†£ ì†¤ ì†¥ ì†¦ ì†§ ì†¨ ì†© ì†ª ì†« ì†¬ ì†­ ì†® ì†¯ ì†° ì†± ì†² ì†³ ì†´ ì†µ ì†¶ ì†· ì†¸ ì†¹ ì†º ì†» ì†¼ ì†½ ì†¾ ì†¿ ì‡€ ì‡ ì‡‚ ì‡ƒ ì‡„ ì‡… ì‡† ì‡‡ ì‡ˆ ì‡‰ ì‡Š ì‡‹ ì‡Œ ì‡ ì‡Ž ì‡ ì‡ ì‡‘ ì‡’ ì‡“ ì‡” ì‡• ì‡– ì‡— ì‡˜ ì‡™ ì‡š ì‡› ì‡œ ì‡ ì‡ž ì‡Ÿ ì‡  ì‡¡ ì‡¢ ì‡£ ì‡¤ ì‡¥ ì‡¦ ì‡§ ì‡¨ ì‡© ì‡ª ì‡« ì‡¬ ì‡­ ì‡® ì‡¯ ì‡° ì‡± ì‡² ì‡³ ì‡´ ì‡µ ì‡¶ ì‡· ì‡¸ ì‡¹ ì‡º ì‡» ì‡¼ ì‡½ ì‡¾ ì‡¿ ìˆ€ ìˆ ìˆ‚ ìˆƒ ìˆ„ ìˆ… ìˆ† ìˆ‡ ìˆˆ ìˆ‰ ìˆŠ ìˆ‹ ìˆŒ ìˆ ìˆŽ ìˆ ìˆ ìˆ‘ ìˆ’ ìˆ“ ìˆ” ìˆ• ìˆ– ìˆ— ìˆ˜ ìˆ™ ìˆš ìˆ› ìˆœ ìˆ ìˆž ìˆŸ ìˆ  ìˆ¡ ìˆ¢ ìˆ£ ìˆ¤ ìˆ¥ ìˆ¦ ìˆ§ ìˆ¨ ìˆ© ìˆª ìˆ« ìˆ¬ ìˆ­ ìˆ® ìˆ¯ ìˆ° ìˆ± ìˆ² ìˆ³ ìˆ´ ìˆµ ìˆ¶ ìˆ· ìˆ¸ ìˆ¹ ìˆº ìˆ» ìˆ¼ ìˆ½ ìˆ¾ ìˆ¿ ì‰€ ì‰ ì‰‚ ì‰ƒ ì‰„ ì‰… ì‰† ì‰‡ ì‰ˆ ì‰‰ ì‰Š ì‰‹ ì‰Œ ì‰ ì‰Ž ì‰ ì‰ ì‰‘ ì‰’ ì‰“ ì‰” ì‰• ì‰– ì‰— ì‰˜ ì‰™ ì‰š ì‰› ì‰œ ì‰ ì‰ž ì‰Ÿ ì‰  ì‰¡ ì‰¢ ì‰£ ì‰¤ ì‰¥ ì‰¦ ì‰§ ì‰¨ ì‰© ì‰ª ì‰« ì‰¬ ì‰­ ì‰® ì‰¯ ì‰° ì‰± ì‰² ì‰³ ì‰´ ì‰µ ì‰¶ ì‰· ì‰¸ ì‰¹ ì‰º ì‰» ì‰¼ ì‰½ ì‰¾ ì‰¿ ìŠ€ ìŠ ìŠ‚ ìŠƒ ìŠ„ ìŠ… ìŠ† ìŠ‡ ìŠˆ ìŠ‰ ìŠŠ ìŠ‹ ìŠŒ ìŠ ìŠŽ ìŠ ìŠ ìŠ‘ ìŠ’ ìŠ“ ìŠ” ìŠ• ìŠ– ìŠ— ìŠ˜ ìŠ™ ìŠš ìŠ› ìŠœ ìŠ ìŠž ìŠŸ ìŠ  ìŠ¡ ìŠ¢ ìŠ£ ìŠ¤ ìŠ¥ ìŠ¦ ìŠ§ ìŠ¨ ìŠ© ìŠª ìŠ« ìŠ¬ ìŠ­ ìŠ® ìŠ¯ ìŠ° ìŠ± ìŠ² ìŠ³ ìŠ´ ìŠµ ìŠ¶ ìŠ· ìŠ¸ ìŠ¹ ìŠº ìŠ» ìŠ¼ ìŠ½ ìŠ¾ ìŠ¿ ì‹€ ì‹ ì‹‚ ì‹ƒ ì‹„ ì‹… ì‹† ì‹‡ ì‹ˆ ì‹‰ ì‹Š ì‹‹ ì‹Œ ì‹ ì‹Ž ì‹ ì‹ ì‹‘ ì‹’ ì‹“ ì‹” ì‹• ì‹– ì‹— ì‹˜ ì‹™ ì‹š ì‹› ì‹œ ì‹ ì‹ž ì‹Ÿ ì‹  ì‹¡ ì‹¢ ì‹£ ì‹¤ ì‹¥ ì‹¦ ì‹§ ì‹¨ ì‹© ì‹ª ì‹« ì‹¬ ì‹­ ì‹® ì‹¯ ì‹° ì‹± ì‹² ì‹³ ì‹´ ì‹µ ì‹¶ ì‹· ì‹¸ ì‹¹ ì‹º ì‹» ì‹¼ ì‹½ ì‹¾ ì‹¿ ìŒ€ ìŒ ìŒ‚ ìŒƒ ìŒ„ ìŒ… ìŒ† ìŒ‡ ìŒˆ ìŒ‰ ìŒŠ ìŒ‹ ìŒŒ ìŒ ìŒŽ ìŒ ìŒ ìŒ‘ ìŒ’ ìŒ“ ìŒ” ìŒ• ìŒ– ìŒ— ìŒ˜ ìŒ™ ìŒš ìŒ› ìŒœ ìŒ ìŒž ìŒŸ ìŒ  ìŒ¡ ìŒ¢ ìŒ£ ìŒ¤ ìŒ¥ ìŒ¦ ìŒ§ ìŒ¨ ìŒ© ìŒª ìŒ« ìŒ¬ ìŒ­ ìŒ® ìŒ¯ ìŒ° ìŒ± ìŒ² ìŒ³ ìŒ´ ìŒµ ìŒ¶ ìŒ· ìŒ¸ ìŒ¹ ìŒº ìŒ» ìŒ¼ ìŒ½ ìŒ¾ ìŒ¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ìŽ€ ìŽ ìŽ‚ ìŽƒ ìŽ„ ìŽ… ìŽ† ìŽ‡ ìŽˆ ìŽ‰ ìŽŠ ìŽ‹ ìŽŒ ìŽ ìŽŽ ìŽ ìŽ ìŽ‘ ìŽ’ ìŽ“ ìŽ” ìŽ• ìŽ– ìŽ— ìŽ˜ ìŽ™ ìŽš ìŽ› ìŽœ ìŽ ìŽž ìŽŸ ìŽ  ìŽ¡ ìŽ¢ ìŽ£ ìŽ¤ ìŽ¥ ìŽ¦ ìŽ§ ìŽ¨ ìŽ© ìŽª ìŽ« ìŽ¬ ìŽ­ ìŽ® ìŽ¯ ìŽ° ìŽ± ìŽ² ìŽ³ ìŽ´ ìŽµ ìŽ¶ ìŽ· ìŽ¸ ìŽ¹ ìŽº ìŽ» ìŽ¼ ìŽ½ ìŽ¾ ìŽ¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ì‘€ ì‘ ì‘‚ ì‘ƒ ì‘„ ì‘… ì‘† ì‘‡ ì‘ˆ ì‘‰ ì‘Š ì‘‹ ì‘Œ ì‘ ì‘Ž ì‘ ì‘ ì‘‘ ì‘’ ì‘“ ì‘” ì‘• ì‘– ì‘— ì‘˜ ì‘™ ì‘š ì‘› ì‘œ ì‘ ì‘ž ì‘Ÿ ì‘  ì‘¡ ì‘¢ ì‘£ ì‘¤ ì‘¥ ì‘¦ ì‘§ ì‘¨ ì‘© ì‘ª ì‘« ì‘¬ ì‘­ ì‘® ì‘¯ ì‘° ì‘± ì‘² ì‘³ ì‘´ ì‘µ ì‘¶ ì‘· ì‘¸ ì‘¹ ì‘º ì‘» ì‘¼ ì‘½ ì‘¾ ì‘¿ ì’€ ì’ ì’‚ ì’ƒ ì’„ ì’… ì’† ì’‡ ì’ˆ ì’‰ ì’Š ì’‹ ì’Œ ì’ ì’Ž ì’ ì’ ì’‘ ì’’ ì’“ ì’” ì’• ì’– ì’— ì’˜ ì’™ ì’š ì’› ì’œ ì’ ì’ž ì’Ÿ ì’  ì’¡ ì’¢ ì’£ ì’¤ ì’¥ ì’¦ ì’§ ì’¨ ì’© ì’ª ì’« ì’¬ ì’­ ì’® ì’¯ ì’° ì’± ì’² ì’³ ì’´ ì’µ ì’¶ ì’· ì’¸ ì’¹ ì’º ì’» ì’¼ ì’½ ì’¾ ì’¿ ì“€ ì“ ì“‚ ì“ƒ ì“„ ì“… ì“† ì“‡ ì“ˆ ì“‰ ì“Š ì“‹ ì“Œ ì“ ì“Ž ì“ ì“ ì“‘ ì“’ ì““ ì“” ì“• ì“– ì“— ì“˜ ì“™ ì“š ì“› ì“œ ì“ ì“ž ì“Ÿ ì“  ì“¡ ì“¢ ì“£ ì“¤ ì“¥ ì“¦ ì“§ ì“¨ ì“© ì“ª ì“« ì“¬ ì“­ ì“® ì“¯ ì“° ì“± ì“² ì“³ ì“´ ì“µ ì“¶ ì“· ì“¸ ì“¹ ì“º ì“» ì“¼ ì“½ ì“¾ ì“¿ ì”€ ì” ì”‚ ì”ƒ ì”„ ì”… ì”† ì”‡ ì”ˆ ì”‰ ì”Š ì”‹ ì”Œ ì” ì”Ž ì” ì” ì”‘ ì”’ ì”“ ì”” ì”• ì”– ì”— ì”˜ ì”™ ì”š ì”› ì”œ ì” ì”ž ì”Ÿ ì”  ì”¡ ì”¢ ì”£ ì”¤ ì”¥ ì”¦ ì”§ ì”¨ ì”© ì”ª ì”« ì”¬ ì”­ ì”® ì”¯ ì”° ì”± ì”² ì”³ ì”´ ì”µ ì”¶ ì”· ì”¸ ì”¹ ì”º ì”» ì”¼ ì”½ ì”¾ ì”¿ ì•€ ì• ì•‚ ì•ƒ ì•„ ì•… ì•† ì•‡ ì•ˆ ì•‰ ì•Š ì•‹ ì•Œ ì• ì•Ž ì• ì• ì•‘ ì•’ ì•“ ì•” ì•• ì•– ì•— ì•˜ ì•™ ì•š ì•› ì•œ ì• ì•ž ì•Ÿ ì•  ì•¡ ì•¢ ì•£ ì•¤ ì•¥ ì•¦ ì•§ ì•¨ ì•© ì•ª ì•« ì•¬ ì•­ ì•® ì•¯ ì•° ì•± ì•² ì•³ ì•´ ì•µ ì•¶ ì•· ì•¸ ì•¹ ì•º ì•» ì•¼ ì•½ ì•¾ ì•¿ ì–€ ì– ì–‚ ì–ƒ ì–„ ì–… ì–† ì–‡ ì–ˆ ì–‰ ì–Š ì–‹ ì–Œ ì– ì–Ž ì– ì– ì–‘ ì–’ ì–“ ì–” ì–• ì–– ì–— ì–˜ ì–™ ì–š ì–› ì–œ ì– ì–ž ì–Ÿ ì–  ì–¡ ì–¢ ì–£ ì–¤ ì–¥ ì–¦ ì–§ ì–¨ ì–© ì–ª ì–« ì–¬ ì–­ ì–® ì–¯ ì–° ì–± ì–² ì–³ ì–´ ì–µ ì–¶ ì–· ì–¸ ì–¹ ì–º ì–» ì–¼ ì–½ ì–¾ ì–¿ ì—€ ì— ì—‚ ì—ƒ ì—„ ì—… ì—† ì—‡ ì—ˆ ì—‰ ì—Š ì—‹ ì—Œ ì— ì—Ž ì— ì— ì—‘ ì—’ ì—“ ì—” ì—• ì—– ì—— ì—˜ ì—™ ì—š ì—› ì—œ ì— ì—ž ì—Ÿ ì—  ì—¡ ì—¢ ì—£ ì—¤ ì—¥ ì—¦ ì—§ ì—¨ ì—© ì—ª ì—« ì—¬ ì—­ ì—® ì—¯ ì—° ì—± ì—² ì—³ ì—´ ì—µ ì—¶ ì—· ì—¸ ì—¹ ì—º ì—» ì—¼ ì—½ ì—¾ ì—¿ ì˜€ ì˜ ì˜‚ ì˜ƒ ì˜„ ì˜… ì˜† ì˜‡ ì˜ˆ ì˜‰ ì˜Š ì˜‹ ì˜Œ ì˜ ì˜Ž ì˜ ì˜ ì˜‘ ì˜’ ì˜“ ì˜” ì˜• ì˜– ì˜— ì˜˜ ì˜™ ì˜š ì˜› ì˜œ ì˜ ì˜ž ì˜Ÿ ì˜  ì˜¡ ì˜¢ ì˜£ ì˜¤ ì˜¥ ì˜¦ ì˜§ ì˜¨ ì˜© ì˜ª ì˜« ì˜¬ ì˜­ ì˜® ì˜¯ ì˜° ì˜± ì˜² ì˜³ ì˜´ ì˜µ ì˜¶ ì˜· ì˜¸ ì˜¹ ì˜º ì˜» ì˜¼ ì˜½ ì˜¾ ì˜¿ ì™€ ì™ ì™‚ ì™ƒ ì™„ ì™… ì™† ì™‡ ì™ˆ ì™‰ ì™Š ì™‹ ì™Œ ì™ ì™Ž ì™ ì™ ì™‘ ì™’ ì™“ ì™” ì™• ì™– ì™— ì™˜ ì™™ ì™š ì™› ì™œ ì™ ì™ž ì™Ÿ ì™  ì™¡ ì™¢ ì™£ ì™¤ ì™¥ ì™¦ ì™§ ì™¨ ì™© ì™ª ì™« ì™¬ ì™­ ì™® ì™¯ ì™° ì™± ì™² ì™³ ì™´ ì™µ ì™¶ ì™· ì™¸ ì™¹ ì™º ì™» ì™¼ ì™½ ì™¾ ì™¿ ìš€ ìš ìš‚ ìšƒ ìš„ ìš… ìš† ìš‡ ìšˆ ìš‰ ìšŠ ìš‹ ìšŒ ìš ìšŽ ìš ìš ìš‘ ìš’ ìš“ ìš” ìš• ìš– ìš— ìš˜ ìš™ ìšš ìš› ìšœ ìš ìšž ìšŸ ìš  ìš¡ ìš¢ ìš£ ìš¤ ìš¥ ìš¦ ìš§ ìš¨ ìš© ìšª ìš« ìš¬ ìš­ ìš® ìš¯ ìš° ìš± ìš² ìš³ ìš´ ìšµ ìš¶ ìš· ìš¸ ìš¹ ìšº ìš» ìš¼ ìš½ ìš¾ ìš¿ ì›€ ì› ì›‚ ì›ƒ ì›„ ì›… ì›† ì›‡ ì›ˆ ì›‰ ì›Š ì›‹ ì›Œ ì› ì›Ž ì› ì› ì›‘ ì›’ ì›“ ì›” ì›• ì›– ì›— ì›˜ ì›™ ì›š ì›› ì›œ ì› ì›ž ì›Ÿ ì›  ì›¡ ì›¢ ì›£ ì›¤ ì›¥ ì›¦ ì›§ ì›¨ ì›© ì›ª ì›« ì›¬ ì›­ ì›® ì›¯ ì›° ì›± ì›² ì›³ ì›´ ì›µ ì›¶ ì›· ì›¸ ì›¹ ì›º ì›» ì›¼ ì›½ ì›¾ ì›¿ ìœ€ ìœ ìœ‚ ìœƒ ìœ„ ìœ… ìœ† ìœ‡ ìœˆ ìœ‰ ìœŠ ìœ‹ ìœŒ ìœ ìœŽ ìœ ìœ ìœ‘ ìœ’ ìœ“ ìœ” ìœ• ìœ– ìœ— ìœ˜ ìœ™ ìœš ìœ› ìœœ ìœ ìœž ìœŸ ìœ  ìœ¡ ìœ¢ ìœ£ ìœ¤ ìœ¥ ìœ¦ ìœ§ ìœ¨ ìœ© ìœª ìœ« ìœ¬ ìœ­ ìœ® ìœ¯ ìœ° ìœ± ìœ² ìœ³ ìœ´ ìœµ ìœ¶ ìœ· ìœ¸ ìœ¹ ìœº ìœ» ìœ¼ ìœ½ ìœ¾ ìœ¿ ì€ ì ì‚ ìƒ ì„ ì… ì† ì‡ ìˆ ì‰ ìŠ ì‹ ìŒ ì ìŽ ì ì ì‘ ì’ ì“ ì” ì• ì– ì— ì˜ ì™ ìš ì› ìœ ì ìž ìŸ ì  ì¡ ì¢ ì£ ì¤ ì¥ ì¦ ì§ ì¨ ì© ìª ì« ì¬ ì­ ì® ì¯ ì° ì± ì² ì³ ì´ ìµ ì¶ ì· ì¸ ì¹ ìº ì» ì¼ ì½ ì¾ ì¿ ìž€ ìž ìž‚ ìžƒ ìž„ ìž… ìž† ìž‡ ìžˆ ìž‰ ìžŠ ìž‹ ìžŒ ìž ìžŽ ìž ìž ìž‘ ìž’ ìž“ ìž” ìž• ìž– ìž— ìž˜ ìž™ ìžš ìž› ìžœ ìž ìžž ìžŸ ìž  ìž¡ ìž¢ ìž£ ìž¤ ìž¥ ìž¦ ìž§ ìž¨ ìž© ìžª ìž« ìž¬ ìž­ ìž® ìž¯ ìž° ìž± ìž² ìž³ ìž´ ìžµ ìž¶ ìž· ìž¸ ìž¹ ìžº ìž» ìž¼ ìž½ ìž¾ ìž¿ ìŸ€ ìŸ ìŸ‚ ìŸƒ ìŸ„ ìŸ… ìŸ† ìŸ‡ ìŸˆ ìŸ‰ ìŸŠ ìŸ‹ ìŸŒ ìŸ ìŸŽ ìŸ ìŸ ìŸ‘ ìŸ’ ìŸ“ ìŸ” ìŸ• ìŸ– ìŸ— ìŸ˜ ìŸ™ ìŸš ìŸ› ìŸœ ìŸ ìŸž ìŸŸ ìŸ  ìŸ¡ ìŸ¢ ìŸ£ ìŸ¤ ìŸ¥ ìŸ¦ ìŸ§ ìŸ¨ ìŸ© ìŸª ìŸ« ìŸ¬ ìŸ­ ìŸ® ìŸ¯ ìŸ° ìŸ± ìŸ² ìŸ³ ìŸ´ ìŸµ ìŸ¶ ìŸ· ìŸ¸ ìŸ¹ ìŸº ìŸ» ìŸ¼ ìŸ½ ìŸ¾ ìŸ¿ ì € ì  ì ‚ ì ƒ ì „ ì … ì † ì ‡ ì ˆ ì ‰ ì Š ì ‹ ì Œ ì  ì Ž ì  ì  ì ‘ ì ’ ì “ ì ” ì • ì – ì — ì ˜ ì ™ ì š ì › ì œ ì  ì ž ì Ÿ ì   ì ¡ ì ¢ ì £ ì ¤ ì ¥ ì ¦ ì § ì ¨ ì © ì ª ì « ì ¬ ì ­ ì ® ì ¯ ì ° ì ± ì ² ì ³ ì ´ ì µ ì ¶ ì · ì ¸ ì ¹ ì º ì » ì ¼ ì ½ ì ¾ ì ¿ ì¡€ ì¡ ì¡‚ ì¡ƒ ì¡„ ì¡… ì¡† ì¡‡ ì¡ˆ ì¡‰ ì¡Š ì¡‹ ì¡Œ ì¡ ì¡Ž ì¡ ì¡ ì¡‘ ì¡’ ì¡“ ì¡” ì¡• ì¡– ì¡— ì¡˜ ì¡™ ì¡š ì¡› ì¡œ ì¡ ì¡ž ì¡Ÿ ì¡  ì¡¡ ì¡¢ ì¡£ ì¡¤ ì¡¥ ì¡¦ ì¡§ ì¡¨ ì¡© ì¡ª ì¡« ì¡¬ ì¡­ ì¡® ì¡¯ ì¡° ì¡± ì¡² ì¡³ ì¡´ ì¡µ ì¡¶ ì¡· ì¡¸ ì¡¹ ì¡º ì¡» ì¡¼ ì¡½ ì¡¾ ì¡¿ ì¢€ ì¢ ì¢‚ ì¢ƒ ì¢„ ì¢… ì¢† ì¢‡ ì¢ˆ ì¢‰ ì¢Š ì¢‹ ì¢Œ ì¢ ì¢Ž ì¢ ì¢ ì¢‘ ì¢’ ì¢“ ì¢” ì¢• ì¢– ì¢— ì¢˜ ì¢™ ì¢š ì¢› ì¢œ ì¢ ì¢ž ì¢Ÿ ì¢  ì¢¡ ì¢¢ ì¢£ ì¢¤ ì¢¥ ì¢¦ ì¢§ ì¢¨ ì¢© ì¢ª ì¢« ì¢¬ ì¢­ ì¢® ì¢¯ ì¢° ì¢± ì¢² ì¢³ ì¢´ ì¢µ ì¢¶ ì¢· ì¢¸ ì¢¹ ì¢º ì¢» ì¢¼ ì¢½ ì¢¾ ì¢¿ ì£€ ì£ ì£‚ ì£ƒ ì£„ ì£… ì£† ì£‡ ì£ˆ ì£‰ ì£Š ì£‹ ì£Œ ì£ ì£Ž ì£ ì£ ì£‘ ì£’ ì£“ ì£” ì£• ì£– ì£— ì£˜ ì£™ ì£š ì£› ì£œ ì£ ì£ž ì£Ÿ ì£  ì£¡ ì£¢ ì££ ì£¤ ì£¥ ì£¦ ì£§ ì£¨ ì£© ì£ª ì£« ì£¬ ì£­ ì£® ì£¯ ì£° ì£± ì£² ì£³ ì£´ ì£µ ì£¶ ì£· ì£¸ ì£¹ ì£º ì£» ì£¼ ì£½ ì£¾ ì£¿ ì¤€ ì¤ ì¤‚ ì¤ƒ ì¤„ ì¤… ì¤† ì¤‡ ì¤ˆ ì¤‰ ì¤Š ì¤‹ ì¤Œ ì¤ ì¤Ž ì¤ ì¤ ì¤‘ ì¤’ ì¤“ ì¤” ì¤• ì¤– ì¤— ì¤˜ ì¤™ ì¤š ì¤› ì¤œ ì¤ ì¤ž ì¤Ÿ ì¤  ì¤¡ ì¤¢ ì¤£ ì¤¤ ì¤¥ ì¤¦ ì¤§ ì¤¨ ì¤© ì¤ª ì¤« ì¤¬ ì¤­ ì¤® ì¤¯ ì¤° ì¤± ì¤² ì¤³ ì¤´ ì¤µ ì¤¶ ì¤· ì¤¸ ì¤¹ ì¤º ì¤» ì¤¼ ì¤½ ì¤¾ ì¤¿ ì¥€ ì¥ ì¥‚ ì¥ƒ ì¥„ ì¥… ì¥† ì¥‡ ì¥ˆ ì¥‰ ì¥Š ì¥‹ ì¥Œ ì¥ ì¥Ž ì¥ ì¥ ì¥‘ ì¥’ ì¥“ ì¥” ì¥• ì¥– ì¥— ì¥˜ ì¥™ ì¥š ì¥› ì¥œ ì¥ ì¥ž ì¥Ÿ ì¥  ì¥¡ ì¥¢ ì¥£ ì¥¤ ì¥¥ ì¥¦ ì¥§ ì¥¨ ì¥© ì¥ª ì¥« ì¥¬ ì¥­ ì¥® ì¥¯ ì¥° ì¥± ì¥² ì¥³ ì¥´ ì¥µ ì¥¶ ì¥· ì¥¸ ì¥¹ ì¥º ì¥» ì¥¼ ì¥½ ì¥¾ ì¥¿ ì¦€ ì¦ ì¦‚ ì¦ƒ ì¦„ ì¦… ì¦† ì¦‡ ì¦ˆ ì¦‰ ì¦Š ì¦‹ ì¦Œ ì¦ ì¦Ž ì¦ ì¦ ì¦‘ ì¦’ ì¦“ ì¦” ì¦• ì¦– ì¦— ì¦˜ ì¦™ ì¦š ì¦› ì¦œ ì¦ ì¦ž ì¦Ÿ ì¦  ì¦¡ ì¦¢ ì¦£ ì¦¤ ì¦¥ ì¦¦ ì¦§ ì¦¨ ì¦© ì¦ª ì¦« ì¦¬ ì¦­ ì¦® ì¦¯ ì¦° ì¦± ì¦² ì¦³ ì¦´ ì¦µ ì¦¶ ì¦· ì¦¸ ì¦¹ ì¦º ì¦» ì¦¼ ì¦½ ì¦¾ ì¦¿ ì§€ ì§ ì§‚ ì§ƒ ì§„ ì§… ì§† ì§‡ ì§ˆ ì§‰ ì§Š ì§‹ ì§Œ ì§ ì§Ž ì§ ì§ ì§‘ ì§’ ì§“ ì§” ì§• ì§– ì§— ì§˜ ì§™ ì§š ì§› ì§œ ì§ ì§ž ì§Ÿ ì§  ì§¡ ì§¢ ì§£ ì§¤ ì§¥ ì§¦ ì§§ ì§¨ ì§© ì§ª ì§« ì§¬ ì§­ ì§® ì§¯ ì§° ì§± ì§² ì§³ ì§´ ì§µ ì§¶ ì§· ì§¸ ì§¹ ì§º ì§» ì§¼ ì§½ ì§¾ ì§¿ ì¨€ ì¨ ì¨‚ ì¨ƒ ì¨„ ì¨… ì¨† ì¨‡ ì¨ˆ ì¨‰ ì¨Š ì¨‹ ì¨Œ ì¨ ì¨Ž ì¨ ì¨ ì¨‘ ì¨’ ì¨“ ì¨” ì¨• ì¨– ì¨— ì¨˜ ì¨™ ì¨š ì¨› ì¨œ ì¨ ì¨ž ì¨Ÿ ì¨  ì¨¡ ì¨¢ ì¨£ ì¨¤ ì¨¥ ì¨¦ ì¨§ ì¨¨ ì¨© ì¨ª ì¨« ì¨¬ ì¨­ ì¨® ì¨¯ ì¨° ì¨± ì¨² ì¨³ ì¨´ ì¨µ ì¨¶ ì¨· ì¨¸ ì¨¹ ì¨º ì¨» ì¨¼ ì¨½ ì¨¾ ì¨¿ ì©€ ì© ì©‚ ì©ƒ ì©„ ì©… ì©† ì©‡ ì©ˆ ì©‰ ì©Š ì©‹ ì©Œ ì© ì©Ž ì© ì© ì©‘ ì©’ ì©“ ì©” ì©• ì©– ì©— ì©˜ ì©™ ì©š ì©› ì©œ ì© ì©ž ì©Ÿ ì©  ì©¡ ì©¢ ì©£ ì©¤ ì©¥ ì©¦ ì©§ ì©¨ ì©© ì©ª ì©« ì©¬ ì©­ ì©® ì©¯ ì©° ì©± ì©² ì©³ ì©´ ì©µ ì©¶ ì©· ì©¸ ì©¹ ì©º ì©» ì©¼ ì©½ ì©¾ ì©¿ ìª€ ìª ìª‚ ìªƒ ìª„ ìª… ìª† ìª‡ ìªˆ ìª‰ ìªŠ ìª‹ ìªŒ ìª ìªŽ ìª ìª ìª‘ ìª’ ìª“ ìª” ìª• ìª– ìª— ìª˜ ìª™ ìªš ìª› ìªœ ìª ìªž ìªŸ ìª  ìª¡ ìª¢ ìª£ ìª¤ ìª¥ ìª¦ ìª§ ìª¨ ìª© ìªª ìª« ìª¬ ìª­ ìª® ìª¯ ìª° ìª± ìª² ìª³ ìª´ ìªµ ìª¶ ìª· ìª¸ ìª¹ ìªº ìª» ìª¼ ìª½ ìª¾ ìª¿ ì«€ ì« ì«‚ ì«ƒ ì«„ ì«… ì«† ì«‡ ì«ˆ ì«‰ ì«Š ì«‹ ì«Œ ì« ì«Ž ì« ì« ì«‘ ì«’ ì«“ ì«” ì«• ì«– ì«— ì«˜ ì«™ ì«š ì«› ì«œ ì« ì«ž ì«Ÿ ì«  ì«¡ ì«¢ ì«£ ì«¤ ì«¥ ì«¦ ì«§ ì«¨ ì«© ì«ª ì«« ì«¬ ì«­ ì«® ì«¯ ì«° ì«± ì«² ì«³ ì«´ ì«µ ì«¶ ì«· ì«¸ ì«¹ ì«º ì«» ì«¼ ì«½ ì«¾ ì«¿ ì¬€ ì¬ ì¬‚ ì¬ƒ ì¬„ ì¬… ì¬† ì¬‡ ì¬ˆ ì¬‰ ì¬Š ì¬‹ ì¬Œ ì¬ ì¬Ž ì¬ ì¬ ì¬‘ ì¬’ ì¬“ ì¬” ì¬• ì¬– ì¬— ì¬˜ ì¬™ ì¬š ì¬› ì¬œ ì¬ ì¬ž ì¬Ÿ ì¬  ì¬¡ ì¬¢ ì¬£ ì¬¤ ì¬¥ ì¬¦ ì¬§ ì¬¨ ì¬© ì¬ª ì¬« ì¬¬ ì¬­ ì¬® ì¬¯ ì¬° ì¬± ì¬² ì¬³ ì¬´ ì¬µ ì¬¶ ì¬· ì¬¸ ì¬¹ ì¬º ì¬» ì¬¼ ì¬½ ì¬¾ ì¬¿ ì­€ ì­ ì­‚ ì­ƒ ì­„ ì­… ì­† ì­‡ ì­ˆ ì­‰ ì­Š ì­‹ ì­Œ ì­ ì­Ž ì­ ì­ ì­‘ ì­’ ì­“ ì­” ì­• ì­– ì­— ì­˜ ì­™ ì­š ì­› ì­œ ì­ ì­ž ì­Ÿ ì­  ì­¡ ì­¢ ì­£ ì­¤ ì­¥ ì­¦ ì­§ ì­¨ ì­© ì­ª ì­« ì­¬ ì­­ ì­® ì­¯ ì­° ì­± ì­² ì­³ ì­´ ì­µ ì­¶ ì­· ì­¸ ì­¹ ì­º ì­» ì­¼ ì­½ ì­¾ ì­¿ ì®€ ì® ì®‚ ì®ƒ ì®„ ì®… ì®† ì®‡ ì®ˆ ì®‰ ì®Š ì®‹ ì®Œ ì® ì®Ž ì® ì® ì®‘ ì®’ ì®“ ì®” ì®• ì®– ì®— ì®˜ ì®™ ì®š ì®› ì®œ ì® ì®ž ì®Ÿ ì®  ì®¡ ì®¢ ì®£ ì®¤ ì®¥ ì®¦ ì®§ ì®¨ ì®© ì®ª ì®« ì®¬ ì®­ ì®® ì®¯ ì®° ì®± ì®² ì®³ ì®´ ì®µ ì®¶ ì®· ì®¸ ì®¹ ì®º ì®» ì®¼ ì®½ ì®¾ ì®¿ ì¯€ ì¯ ì¯‚ ì¯ƒ ì¯„ ì¯… ì¯† ì¯‡ ì¯ˆ ì¯‰ ì¯Š ì¯‹ ì¯Œ ì¯ ì¯Ž ì¯ ì¯ ì¯‘ ì¯’ ì¯“ ì¯” ì¯• ì¯– ì¯— ì¯˜ ì¯™ ì¯š ì¯› ì¯œ ì¯ ì¯ž ì¯Ÿ ì¯  ì¯¡ ì¯¢ ì¯£ ì¯¤ ì¯¥ ì¯¦ ì¯§ ì¯¨ ì¯© ì¯ª ì¯« ì¯¬ ì¯­ ì¯® ì¯¯ ì¯° ì¯± ì¯² ì¯³ ì¯´ ì¯µ ì¯¶ ì¯· ì¯¸ ì¯¹ ì¯º ì¯» ì¯¼ ì¯½ ì¯¾ ì¯¿ ì°€ ì° ì°‚ ì°ƒ ì°„ ì°… ì°† ì°‡ ì°ˆ ì°‰ ì°Š ì°‹ ì°Œ ì° ì°Ž ì° ì° ì°‘ ì°’ ì°“ ì°” ì°• ì°– ì°— ì°˜ ì°™ ì°š ì°› ì°œ ì° ì°ž ì°Ÿ ì°  ì°¡ ì°¢ ì°£ ì°¤ ì°¥ ì°¦ ì°§ ì°¨ ì°© ì°ª ì°« ì°¬ ì°­ ì°® ì°¯ ì°° ì°± ì°² ì°³ ì°´ ì°µ ì°¶ ì°· ì°¸ ì°¹ ì°º ì°» ì°¼ ì°½ ì°¾ ì°¿ ì±€ ì± ì±‚ ì±ƒ ì±„ ì±… ì±† ì±‡ ì±ˆ ì±‰ ì±Š ì±‹ ì±Œ ì± ì±Ž ì± ì± ì±‘ ì±’ ì±“ ì±” ì±• ì±– ì±— ì±˜ ì±™ ì±š ì±› ì±œ ì± ì±ž ì±Ÿ ì±  ì±¡ ì±¢ ì±£ ì±¤ ì±¥ ì±¦ ì±§ ì±¨ ì±© ì±ª ì±« ì±¬ ì±­ ì±® ì±¯ ì±° ì±± ì±² ì±³ ì±´ ì±µ ì±¶ ì±· ì±¸ ì±¹ ì±º ì±» ì±¼ ì±½ ì±¾ ì±¿ ì²€ ì² ì²‚ ì²ƒ ì²„ ì²… ì²† ì²‡ ì²ˆ ì²‰ ì²Š ì²‹ ì²Œ ì² ì²Ž ì² ì² ì²‘ ì²’ ì²“ ì²” ì²• ì²– ì²— ì²˜ ì²™ ì²š ì²› ì²œ ì² ì²ž ì²Ÿ ì²  ì²¡ ì²¢ ì²£ ì²¤ ì²¥ ì²¦ ì²§ ì²¨ ì²© ì²ª ì²« ì²¬ ì²­ ì²® ì²¯ ì²° ì²± ì²² ì²³ ì²´ ì²µ ì²¶ ì²· ì²¸ ì²¹ ì²º ì²» ì²¼ ì²½ ì²¾ ì²¿ ì³€ ì³ ì³‚ ì³ƒ ì³„ ì³… ì³† ì³‡ ì³ˆ ì³‰ ì³Š ì³‹ ì³Œ ì³ ì³Ž ì³ ì³ ì³‘ ì³’ ì³“ ì³” ì³• ì³– ì³— ì³˜ ì³™ ì³š ì³› ì³œ ì³ ì³ž ì³Ÿ ì³  ì³¡ ì³¢ ì³£ ì³¤ ì³¥ ì³¦ ì³§ ì³¨ ì³© ì³ª ì³« ì³¬ ì³­ ì³® ì³¯ ì³° ì³± ì³² ì³³ ì³´ ì³µ ì³¶ ì³· ì³¸ ì³¹ ì³º ì³» ì³¼ ì³½ ì³¾ ì³¿ ì´€ ì´ ì´‚ ì´ƒ ì´„ ì´… ì´† ì´‡ ì´ˆ ì´‰ ì´Š ì´‹ ì´Œ ì´ ì´Ž ì´ ì´ ì´‘ ì´’ ì´“ ì´” ì´• ì´– ì´— ì´˜ ì´™ ì´š ì´› ì´œ ì´ ì´ž ì´Ÿ ì´  ì´¡ ì´¢ ì´£ ì´¤ ì´¥ ì´¦ ì´§ ì´¨ ì´© ì´ª ì´« ì´¬ ì´­ ì´® ì´¯ ì´° ì´± ì´² ì´³ ì´´ ì´µ ì´¶ ì´· ì´¸ ì´¹ ì´º ì´» ì´¼ ì´½ ì´¾ ì´¿ ìµ€ ìµ ìµ‚ ìµƒ ìµ„ ìµ… ìµ† ìµ‡ ìµˆ ìµ‰ ìµŠ ìµ‹ ìµŒ ìµ ìµŽ ìµ ìµ ìµ‘ ìµ’ ìµ“ ìµ” ìµ• ìµ– ìµ— ìµ˜ ìµ™ ìµš ìµ› ìµœ ìµ ìµž ìµŸ ìµ  ìµ¡ ìµ¢ ìµ£ ìµ¤ ìµ¥ ìµ¦ ìµ§ ìµ¨ ìµ© ìµª ìµ« ìµ¬ ìµ­ ìµ® ìµ¯ ìµ° ìµ± ìµ² ìµ³ ìµ´ ìµµ ìµ¶ ìµ· ìµ¸ ìµ¹ ìµº ìµ» ìµ¼ ìµ½ ìµ¾ ìµ¿ ì¶€ ì¶ ì¶‚ ì¶ƒ ì¶„ ì¶… ì¶† ì¶‡ ì¶ˆ ì¶‰ ì¶Š ì¶‹ ì¶Œ ì¶ ì¶Ž ì¶ ì¶ ì¶‘ ì¶’ ì¶“ ì¶” ì¶• ì¶– ì¶— ì¶˜ ì¶™ ì¶š ì¶› ì¶œ ì¶ ì¶ž ì¶Ÿ ì¶  ì¶¡ ì¶¢ ì¶£ ì¶¤ ì¶¥ ì¶¦ ì¶§ ì¶¨ ì¶© ì¶ª ì¶« ì¶¬ ì¶­ ì¶® ì¶¯ ì¶° ì¶± ì¶² ì¶³ ì¶´ ì¶µ ì¶¶ ì¶· ì¶¸ ì¶¹ ì¶º ì¶» ì¶¼ ì¶½ ì¶¾ ì¶¿ ì·€ ì· ì·‚ ì·ƒ ì·„ ì·… ì·† ì·‡ ì·ˆ ì·‰ ì·Š ì·‹ ì·Œ ì· ì·Ž ì· ì· ì·‘ ì·’ ì·“ ì·” ì·• ì·– ì·— ì·˜ ì·™ ì·š ì·› ì·œ ì· ì·ž ì·Ÿ ì·  ì·¡ ì·¢ ì·£ ì·¤ ì·¥ ì·¦ ì·§ ì·¨ ì·© ì·ª ì·« ì·¬ ì·­ ì·® ì·¯ ì·° ì·± ì·² ì·³ ì·´ ì·µ ì·¶ ì·· ì·¸ ì·¹ ì·º ì·» ì·¼ ì·½ ì·¾ ì·¿ ì¸€ ì¸ ì¸‚ ì¸ƒ ì¸„ ì¸… ì¸† ì¸‡ ì¸ˆ ì¸‰ ì¸Š ì¸‹ ì¸Œ ì¸ ì¸Ž ì¸ ì¸ ì¸‘ ì¸’ ì¸“ ì¸” ì¸• ì¸– ì¸— ì¸˜ ì¸™ ì¸š ì¸› ì¸œ ì¸ ì¸ž ì¸Ÿ ì¸  ì¸¡ ì¸¢ ì¸£ ì¸¤ ì¸¥ ì¸¦ ì¸§ ì¸¨ ì¸© ì¸ª ì¸« ì¸¬ ì¸­ ì¸® ì¸¯ ì¸° ì¸± ì¸² ì¸³ ì¸´ ì¸µ ì¸¶ ì¸· ì¸¸ ì¸¹ ì¸º ì¸» ì¸¼ ì¸½ ì¸¾ ì¸¿ ì¹€ ì¹ ì¹‚ ì¹ƒ ì¹„ ì¹… ì¹† ì¹‡ ì¹ˆ ì¹‰ ì¹Š ì¹‹ ì¹Œ ì¹ ì¹Ž ì¹ ì¹ ì¹‘ ì¹’ ì¹“ ì¹” ì¹• ì¹– ì¹— ì¹˜ ì¹™ ì¹š ì¹› ì¹œ ì¹ ì¹ž ì¹Ÿ ì¹  ì¹¡ ì¹¢ ì¹£ ì¹¤ ì¹¥ ì¹¦ ì¹§ ì¹¨ ì¹© ì¹ª ì¹« ì¹¬ ì¹­ ì¹® ì¹¯ ì¹° ì¹± ì¹² ì¹³ ì¹´ ì¹µ ì¹¶ ì¹· ì¹¸ ì¹¹ ì¹º ì¹» ì¹¼ ì¹½ ì¹¾ ì¹¿ ìº€ ìº ìº‚ ìºƒ ìº„ ìº… ìº† ìº‡ ìºˆ ìº‰ ìºŠ ìº‹ ìºŒ ìº ìºŽ ìº ìº ìº‘ ìº’ ìº“ ìº” ìº• ìº– ìº— ìº˜ ìº™ ìºš ìº› ìºœ ìº ìºž ìºŸ ìº  ìº¡ ìº¢ ìº£ ìº¤ ìº¥ ìº¦ ìº§ ìº¨ ìº© ìºª ìº« ìº¬ ìº­ ìº® ìº¯ ìº° ìº± ìº² ìº³ ìº´ ìºµ ìº¶ ìº· ìº¸ ìº¹ ìºº ìº» ìº¼ ìº½ ìº¾ ìº¿ ì»€ ì» ì»‚ ì»ƒ ì»„ ì»… ì»† ì»‡ ì»ˆ ì»‰ ì»Š ì»‹ ì»Œ ì» ì»Ž ì» ì» ì»‘ ì»’ ì»“ ì»” ì»• ì»– ì»— ì»˜ ì»™ ì»š ì»› ì»œ ì» ì»ž ì»Ÿ ì»  ì»¡ ì»¢ ì»£ ì»¤ ì»¥ ì»¦ ì»§ ì»¨ ì»© ì»ª ì»« ì»¬ ì»­ ì»® ì»¯ ì»° ì»± ì»² ì»³ ì»´ ì»µ ì»¶ ì»· ì»¸ ì»¹ ì»º ì»» ì»¼ ì»½ ì»¾ ì»¿ ì¼€ ì¼ ì¼‚ ì¼ƒ ì¼„ ì¼… ì¼† ì¼‡ ì¼ˆ ì¼‰ ì¼Š ì¼‹ ì¼Œ ì¼ ì¼Ž ì¼ ì¼ ì¼‘ ì¼’ ì¼“ ì¼” ì¼• ì¼– ì¼— ì¼˜ ì¼™ ì¼š ì¼› ì¼œ ì¼ ì¼ž ì¼Ÿ ì¼  ì¼¡ ì¼¢ ì¼£ ì¼¤ ì¼¥ ì¼¦ ì¼§ ì¼¨ ì¼© ì¼ª ì¼« ì¼¬ ì¼­ ì¼® ì¼¯ ì¼° ì¼± ì¼² ì¼³ ì¼´ ì¼µ ì¼¶ ì¼· ì¼¸ ì¼¹ ì¼º ì¼» ì¼¼ ì¼½ ì¼¾ ì¼¿ ì½€ ì½ ì½‚ ì½ƒ ì½„ ì½… ì½† ì½‡ ì½ˆ ì½‰ ì½Š ì½‹ ì½Œ ì½ ì½Ž ì½ ì½ ì½‘ ì½’ ì½“ ì½” ì½• ì½– ì½— ì½˜ ì½™ ì½š ì½› ì½œ ì½ ì½ž ì½Ÿ ì½  ì½¡ ì½¢ ì½£ ì½¤ ì½¥ ì½¦ ì½§ ì½¨ ì½© ì½ª ì½« ì½¬ ì½­ ì½® ì½¯ ì½° ì½± ì½² ì½³ ì½´ ì½µ ì½¶ ì½· ì½¸ ì½¹ ì½º ì½» ì½¼ ì½½ ì½¾ ì½¿ ì¾€ ì¾ ì¾‚ ì¾ƒ ì¾„ ì¾… ì¾† ì¾‡ ì¾ˆ ì¾‰ ì¾Š ì¾‹ ì¾Œ ì¾ ì¾Ž ì¾ ì¾ ì¾‘ ì¾’ ì¾“ ì¾” ì¾• ì¾– ì¾— ì¾˜ ì¾™ ì¾š ì¾› ì¾œ ì¾ ì¾ž ì¾Ÿ ì¾  ì¾¡ ì¾¢ ì¾£ ì¾¤ ì¾¥ ì¾¦ ì¾§ ì¾¨ ì¾© ì¾ª ì¾« ì¾¬ ì¾­ ì¾® ì¾¯ ì¾° ì¾± ì¾² ì¾³ ì¾´ ì¾µ ì¾¶ ì¾· ì¾¸ ì¾¹ ì¾º ì¾» ì¾¼ ì¾½ ì¾¾ ì¾¿ ì¿€ ì¿ ì¿‚ ì¿ƒ ì¿„ ì¿… ì¿† ì¿‡ ì¿ˆ ì¿‰ ì¿Š ì¿‹ ì¿Œ ì¿ ì¿Ž ì¿ ì¿ ì¿‘ ì¿’ ì¿“ ì¿” ì¿• ì¿– ì¿— ì¿˜ ì¿™ ì¿š ì¿› ì¿œ ì¿ ì¿ž ì¿Ÿ ì¿  ì¿¡ ì¿¢ ì¿£ ì¿¤ ì¿¥ ì¿¦ ì¿§ ì¿¨ ì¿© ì¿ª ì¿« ì¿¬ ì¿­ ì¿® ì¿¯ ì¿° ì¿± ì¿² ì¿³ ì¿´ ì¿µ ì¿¶ ì¿· ì¿¸ ì¿¹ ì¿º ì¿» ì¿¼ ì¿½ ì¿¾ ì¿¿ í€€ í€ í€‚ í€ƒ í€„ í€… í€† í€‡ í€ˆ í€‰ í€Š í€‹ í€Œ í€ í€Ž í€ í€ í€‘ í€’ í€“ í€” í€• í€– í€— í€˜ í€™ í€š í€› í€œ í€ í€ž í€Ÿ í€  í€¡ í€¢ í€£ í€¤ í€¥ í€¦ í€§ í€¨ í€© í€ª í€« í€¬ í€­ í€® í€¯ í€° í€± í€² í€³ í€´ í€µ í€¶ í€· í€¸ í€¹ í€º í€» í€¼ í€½ í€¾ í€¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í‚€ í‚ í‚‚ í‚ƒ í‚„ í‚… í‚† í‚‡ í‚ˆ í‚‰ í‚Š í‚‹ í‚Œ í‚ í‚Ž í‚ í‚ í‚‘ í‚’ í‚“ í‚” í‚• í‚– í‚— í‚˜ í‚™ í‚š í‚› í‚œ í‚ í‚ž í‚Ÿ í‚  í‚¡ í‚¢ í‚£ í‚¤ í‚¥ í‚¦ í‚§ í‚¨ í‚© í‚ª í‚« í‚¬ í‚­ í‚® í‚¯ í‚° í‚± í‚² í‚³ í‚´ í‚µ í‚¶ í‚· í‚¸ í‚¹ í‚º í‚» í‚¼ í‚½ í‚¾ í‚¿ íƒ€ íƒ íƒ‚ íƒƒ íƒ„ íƒ… íƒ† íƒ‡ íƒˆ íƒ‰ íƒŠ íƒ‹ íƒŒ íƒ íƒŽ íƒ íƒ íƒ‘ íƒ’ íƒ“ íƒ” íƒ• íƒ– íƒ— íƒ˜ íƒ™ íƒš íƒ› íƒœ íƒ íƒž íƒŸ íƒ  íƒ¡ íƒ¢ íƒ£ íƒ¤ íƒ¥ íƒ¦ íƒ§ íƒ¨ íƒ© íƒª íƒ« íƒ¬ íƒ­ íƒ® íƒ¯ íƒ° íƒ± íƒ² íƒ³ íƒ´ íƒµ íƒ¶ íƒ· íƒ¸ íƒ¹ íƒº íƒ» íƒ¼ íƒ½ íƒ¾ íƒ¿ í„€ í„ í„‚ í„ƒ í„„ í„… í„† í„‡ í„ˆ í„‰ í„Š í„‹ í„Œ í„ í„Ž í„ í„ í„‘ í„’ í„“ í„” í„• í„– í„— í„˜ í„™ í„š í„› í„œ í„ í„ž í„Ÿ í„  í„¡ í„¢ í„£ í„¤ í„¥ í„¦ í„§ í„¨ í„© í„ª í„« í„¬ í„­ í„® í„¯ í„° í„± í„² í„³ í„´ í„µ í„¶ í„· í„¸ í„¹ í„º í„» í„¼ í„½ í„¾ í„¿ í…€ í… í…‚ í…ƒ í…„ í…… í…† í…‡ í…ˆ í…‰ í…Š í…‹ í…Œ í… í…Ž í… í… í…‘ í…’ í…“ í…” í…• í…– í…— í…˜ í…™ í…š í…› í…œ í… í…ž í…Ÿ í…  í…¡ í…¢ í…£ í…¤ í…¥ í…¦ í…§ í…¨ í…© í…ª í…« í…¬ í…­ í…® í…¯ í…° í…± í…² í…³ í…´ í…µ í…¶ í…· í…¸ í…¹ í…º í…» í…¼ í…½ í…¾ í…¿ í†€ í† í†‚ í†ƒ í†„ í†… í†† í†‡ í†ˆ í†‰ í†Š í†‹ í†Œ í† í†Ž í† í† í†‘ í†’ í†“ í†” í†• í†– í†— í†˜ í†™ í†š í†› í†œ í† í†ž í†Ÿ í†  í†¡ í†¢ í†£ í†¤ í†¥ í†¦ í†§ í†¨ í†© í†ª í†« í†¬ í†­ í†® í†¯ í†° í†± í†² í†³ í†´ í†µ í†¶ í†· í†¸ í†¹ í†º í†» í†¼ í†½ í†¾ í†¿ í‡€ í‡ í‡‚ í‡ƒ í‡„ í‡… í‡† í‡‡ í‡ˆ í‡‰ í‡Š í‡‹ í‡Œ í‡ í‡Ž í‡ í‡ í‡‘ í‡’ í‡“ í‡” í‡• í‡– í‡— í‡˜ í‡™ í‡š í‡› í‡œ í‡ í‡ž í‡Ÿ í‡  í‡¡ í‡¢ í‡£ í‡¤ í‡¥ í‡¦ í‡§ í‡¨ í‡© í‡ª í‡« í‡¬ í‡­ í‡® í‡¯ í‡° í‡± í‡² í‡³ í‡´ í‡µ í‡¶ í‡· í‡¸ í‡¹ í‡º í‡» í‡¼ í‡½ í‡¾ í‡¿ íˆ€ íˆ íˆ‚ íˆƒ íˆ„ íˆ… íˆ† íˆ‡ íˆˆ íˆ‰ íˆŠ íˆ‹ íˆŒ íˆ íˆŽ íˆ íˆ íˆ‘ íˆ’ íˆ“ íˆ” íˆ• íˆ– íˆ— íˆ˜ íˆ™ íˆš íˆ› íˆœ íˆ íˆž íˆŸ íˆ  íˆ¡ íˆ¢ íˆ£ íˆ¤ íˆ¥ íˆ¦ íˆ§ íˆ¨ íˆ© íˆª íˆ« íˆ¬ íˆ­ íˆ® íˆ¯ íˆ° íˆ± íˆ² íˆ³ íˆ´ íˆµ íˆ¶ íˆ· íˆ¸ íˆ¹ íˆº íˆ» íˆ¼ íˆ½ íˆ¾ íˆ¿ í‰€ í‰ í‰‚ í‰ƒ í‰„ í‰… í‰† í‰‡ í‰ˆ í‰‰ í‰Š í‰‹ í‰Œ í‰ í‰Ž í‰ í‰ í‰‘ í‰’ í‰“ í‰” í‰• í‰– í‰— í‰˜ í‰™ í‰š í‰› í‰œ í‰ í‰ž í‰Ÿ í‰  í‰¡ í‰¢ í‰£ í‰¤ í‰¥ í‰¦ í‰§ í‰¨ í‰© í‰ª í‰« í‰¬ í‰­ í‰® í‰¯ í‰° í‰± í‰² í‰³ í‰´ í‰µ í‰¶ í‰· í‰¸ í‰¹ í‰º í‰» í‰¼ í‰½ í‰¾ í‰¿ íŠ€ íŠ íŠ‚ íŠƒ íŠ„ íŠ… íŠ† íŠ‡ íŠˆ íŠ‰ íŠŠ íŠ‹ íŠŒ íŠ íŠŽ íŠ íŠ íŠ‘ íŠ’ íŠ“ íŠ” íŠ• íŠ– íŠ— íŠ˜ íŠ™ íŠš íŠ› íŠœ íŠ íŠž íŠŸ íŠ  íŠ¡ íŠ¢ íŠ£ íŠ¤ íŠ¥ íŠ¦ íŠ§ íŠ¨ íŠ© íŠª íŠ« íŠ¬ íŠ­ íŠ® íŠ¯ íŠ° íŠ± íŠ² íŠ³ íŠ´ íŠµ íŠ¶ íŠ· íŠ¸ íŠ¹ íŠº íŠ» íŠ¼ íŠ½ íŠ¾ íŠ¿ í‹€ í‹ í‹‚ í‹ƒ í‹„ í‹… í‹† í‹‡ í‹ˆ í‹‰ í‹Š í‹‹ í‹Œ í‹ í‹Ž í‹ í‹ í‹‘ í‹’ í‹“ í‹” í‹• í‹– í‹— í‹˜ í‹™ í‹š í‹› í‹œ í‹ í‹ž í‹Ÿ í‹  í‹¡ í‹¢ í‹£ í‹¤ í‹¥ í‹¦ í‹§ í‹¨ í‹© í‹ª í‹« í‹¬ í‹­ í‹® í‹¯ í‹° í‹± í‹² í‹³ í‹´ í‹µ í‹¶ í‹· í‹¸ í‹¹ í‹º í‹» í‹¼ í‹½ í‹¾ í‹¿ íŒ€ íŒ íŒ‚ íŒƒ íŒ„ íŒ… íŒ† íŒ‡ íŒˆ íŒ‰ íŒŠ íŒ‹ íŒŒ íŒ íŒŽ íŒ íŒ íŒ‘ íŒ’ íŒ“ íŒ” íŒ• íŒ– íŒ— íŒ˜ íŒ™ íŒš íŒ› íŒœ íŒ íŒž íŒŸ íŒ  íŒ¡ íŒ¢ íŒ£ íŒ¤ íŒ¥ íŒ¦ íŒ§ íŒ¨ íŒ© íŒª íŒ« íŒ¬ íŒ­ íŒ® íŒ¯ íŒ° íŒ± íŒ² íŒ³ íŒ´ íŒµ íŒ¶ íŒ· íŒ¸ íŒ¹ íŒº íŒ» íŒ¼ íŒ½ íŒ¾ íŒ¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ íŽ€ íŽ íŽ‚ íŽƒ íŽ„ íŽ… íŽ† íŽ‡ íŽˆ íŽ‰ íŽŠ íŽ‹ íŽŒ íŽ íŽŽ íŽ íŽ íŽ‘ íŽ’ íŽ“ íŽ” íŽ• íŽ– íŽ— íŽ˜ íŽ™ íŽš íŽ› íŽœ íŽ íŽž íŽŸ íŽ  íŽ¡ íŽ¢ íŽ£ íŽ¤ íŽ¥ íŽ¦ íŽ§ íŽ¨ íŽ© íŽª íŽ« íŽ¬ íŽ­ íŽ® íŽ¯ íŽ° íŽ± íŽ² íŽ³ íŽ´ íŽµ íŽ¶ íŽ· íŽ¸ íŽ¹ íŽº íŽ» íŽ¼ íŽ½ íŽ¾ íŽ¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ í‘€ í‘ í‘‚ í‘ƒ í‘„ í‘… í‘† í‘‡ í‘ˆ í‘‰ í‘Š í‘‹ í‘Œ í‘ í‘Ž í‘ í‘ í‘‘ í‘’ í‘“ í‘” í‘• í‘– í‘— í‘˜ í‘™ í‘š í‘› í‘œ í‘ í‘ž í‘Ÿ í‘  í‘¡ í‘¢ í‘£ í‘¤ í‘¥ í‘¦ í‘§ í‘¨ í‘© í‘ª í‘« í‘¬ í‘­ í‘® í‘¯ í‘° í‘± í‘² í‘³ í‘´ í‘µ í‘¶ í‘· í‘¸ í‘¹ í‘º í‘» í‘¼ í‘½ í‘¾ í‘¿ í’€ í’ í’‚ í’ƒ í’„ í’… í’† í’‡ í’ˆ í’‰ í’Š í’‹ í’Œ í’ í’Ž í’ í’ í’‘ í’’ í’“ í’” í’• í’– í’— í’˜ í’™ í’š í’› í’œ í’ í’ž í’Ÿ í’  í’¡ í’¢ í’£ í’¤ í’¥ í’¦ í’§ í’¨ í’© í’ª í’« í’¬ í’­ í’® í’¯ í’° í’± í’² í’³ í’´ í’µ í’¶ í’· í’¸ í’¹ í’º í’» í’¼ í’½ í’¾ í’¿ í“€ í“ í“‚ í“ƒ í“„ í“… í“† í“‡ í“ˆ í“‰ í“Š í“‹ í“Œ í“ í“Ž í“ í“ í“‘ í“’ í““ í“” í“• í“– í“— í“˜ í“™ í“š í“› í“œ í“ í“ž í“Ÿ í“  í“¡ í“¢ í“£ í“¤ í“¥ í“¦ í“§ í“¨ í“© í“ª í“« í“¬ í“­ í“® í“¯ í“° í“± í“² í“³ í“´ í“µ í“¶ í“· í“¸ í“¹ í“º í“» í“¼ í“½ í“¾ í“¿ í”€ í” í”‚ í”ƒ í”„ í”… í”† í”‡ í”ˆ í”‰ í”Š í”‹ í”Œ í” í”Ž í” í” í”‘ í”’ í”“ í”” í”• í”– í”— í”˜ í”™ í”š í”› í”œ í” í”ž í”Ÿ í”  í”¡ í”¢ í”£ í”¤ í”¥ í”¦ í”§ í”¨ í”© í”ª í”« í”¬ í”­ í”® í”¯ í”° í”± í”² í”³ í”´ í”µ í”¶ í”· í”¸ í”¹ í”º í”» í”¼ í”½ í”¾ í”¿ í•€ í• í•‚ í•ƒ í•„ í•… í•† í•‡ í•ˆ í•‰ í•Š í•‹ í•Œ í• í•Ž í• í• í•‘ í•’ í•“ í•” í•• í•– í•— í•˜ í•™ í•š í•› í•œ í• í•ž í•Ÿ í•  í•¡ í•¢ í•£ í•¤ í•¥ í•¦ í•§ í•¨ í•© í•ª í•« í•¬ í•­ í•® í•¯ í•° í•± í•² í•³ í•´ í•µ í•¶ í•· í•¸ í•¹ í•º í•» í•¼ í•½ í•¾ í•¿ í–€ í– í–‚ í–ƒ í–„ í–… í–† í–‡ í–ˆ í–‰ í–Š í–‹ í–Œ í– í–Ž í– í– í–‘ í–’ í–“ í–” í–• í–– í–— í–˜ í–™ í–š í–› í–œ í– í–ž í–Ÿ í–  í–¡ í–¢ í–£ í–¤ í–¥ í–¦ í–§ í–¨ í–© í–ª í–« í–¬ í–­ í–® í–¯ í–° í–± í–² í–³ í–´ í–µ í–¶ í–· í–¸ í–¹ í–º í–» í–¼ í–½ í–¾ í–¿ í—€ í— í—‚ í—ƒ í—„ í—… í—† í—‡ í—ˆ í—‰ í—Š í—‹ í—Œ í— í—Ž í— í— í—‘ í—’ í—“ í—” í—• í—– í—— í—˜ í—™ í—š í—› í—œ í— í—ž í—Ÿ í—  í—¡ í—¢ í—£ í—¤ í—¥ í—¦ í—§ í—¨ í—© í—ª í—« í—¬ í—­ í—® í—¯ í—° í—± í—² í—³ í—´ í—µ í—¶ í—· í—¸ í—¹ í—º í—» í—¼ í—½ í—¾ í—¿ í˜€ í˜ í˜‚ í˜ƒ í˜„ í˜… í˜† í˜‡ í˜ˆ í˜‰ í˜Š í˜‹ í˜Œ í˜ í˜Ž í˜ í˜ í˜‘ í˜’ í˜“ í˜” í˜• í˜– í˜— í˜˜ í˜™ í˜š í˜› í˜œ í˜ í˜ž í˜Ÿ í˜  í˜¡ í˜¢ í˜£ í˜¤ í˜¥ í˜¦ í˜§ í˜¨ í˜© í˜ª í˜« í˜¬ í˜­ í˜® í˜¯ í˜° í˜± í˜² í˜³ í˜´ í˜µ í˜¶ í˜· í˜¸ í˜¹ í˜º í˜» í˜¼ í˜½ í˜¾ í˜¿ í™€ í™ í™‚ í™ƒ í™„ í™… í™† í™‡ í™ˆ í™‰ í™Š í™‹ í™Œ í™ í™Ž í™ í™ í™‘ í™’ í™“ í™” í™• í™– í™— í™˜ í™™ í™š í™› í™œ í™ í™ž í™Ÿ í™  í™¡ í™¢ í™£ í™¤ í™¥ í™¦ í™§ í™¨ í™© í™ª í™« í™¬ í™­ í™® í™¯ í™° í™± í™² í™³ í™´ í™µ í™¶ í™· í™¸ í™¹ í™º í™» í™¼ í™½ í™¾ í™¿ íš€ íš íš‚ íšƒ íš„ íš… íš† íš‡ íšˆ íš‰ íšŠ íš‹ íšŒ íš íšŽ íš íš íš‘ íš’ íš“ íš” íš• íš– íš— íš˜ íš™ íšš íš› íšœ íš íšž íšŸ íš  íš¡ íš¢ íš£ íš¤ íš¥ íš¦ íš§ íš¨ íš© íšª íš« íš¬ íš­ íš® íš¯ íš° íš± íš² íš³ íš´ íšµ íš¶ íš· íš¸ íš¹ íšº íš» íš¼ íš½ íš¾ íš¿ í›€ í› í›‚ í›ƒ í›„ í›… í›† í›‡ í›ˆ í›‰ í›Š í›‹ í›Œ í› í›Ž í› í› í›‘ í›’ í›“ í›” í›• í›– í›— í›˜ í›™ í›š í›› í›œ í› í›ž í›Ÿ í›  í›¡ í›¢ í›£ í›¤ í›¥ í›¦ í›§ í›¨ í›© í›ª í›« í›¬ í›­ í›® í›¯ í›° í›± í›² í›³ í›´ í›µ í›¶ í›· í›¸ í›¹ í›º í›» í›¼ í›½ í›¾ í›¿ íœ€ íœ íœ‚ íœƒ íœ„ íœ… íœ† íœ‡ íœˆ íœ‰ íœŠ íœ‹ íœŒ íœ íœŽ íœ íœ íœ‘ íœ’ íœ“ íœ” íœ• íœ– íœ— íœ˜ íœ™ íœš íœ› íœœ íœ íœž íœŸ íœ  íœ¡ íœ¢ íœ£ íœ¤ íœ¥ íœ¦ íœ§ íœ¨ íœ© íœª íœ« íœ¬ íœ­ íœ® íœ¯ íœ° íœ± íœ² íœ³ íœ´ íœµ íœ¶ íœ· íœ¸ íœ¹ íœº íœ» íœ¼ íœ½ íœ¾ íœ¿ í€ í í‚ íƒ í„ í… í† í‡ íˆ í‰ íŠ í‹ íŒ í íŽ í í í‘ í’ í“ í” í• í– í— í˜ í™ íš í› íœ í íž íŸ í  í¡ í¢ í£ í¤ í¥ í¦ í§ í¨ í© íª í« í¬ í­ í® í¯ í° í± í² í³ í´ íµ í¶ í· í¸ í¹ íº í» í¼ í½ í¾ í¿ íž€ íž íž‚ ížƒ íž„ íž… íž† íž‡ ížˆ íž‰ ížŠ íž‹ ížŒ íž ížŽ íž íž íž‘ íž’ íž“ íž” íž• íž– íž— íž˜ íž™ ížš íž› ížœ íž ížž ížŸ íž  íž¡ íž¢ íž£",
-		3: "ä¸˜ ä¸² ä¹ƒ ä¹… ä¹– ä¹ ä¹ž ä¹« ä¹¾ äº‚ äº˜ äº¤ äº¬ ä»‡ ä»Š ä»‹ ä»¶ ä»· ä¼ ä¼‹ ä¼Ž ä¼½ ä½³ ä½¶ ä¾ƒ ä¾† ä¾Š ä¾› ä¿‚ ä¿“ ä¿± å€‹ å€ž å€¦ å€¨ å‡ åˆ å¥ å‚€ å‚‘ å‚¾ åƒ… åƒ‘ åƒ¹ å„† å„‰ å„º å…‰ å…‹ å…¢ å…§ å…¬ å…± å…¶ å…· å…¼ å†€ å†  å‡± åˆŠ åˆ® åˆ¸ åˆ» å‰‹ å‰› åŠ‡ åŠ åŠ’ åŠŸ åŠ  åŠ¤ åŠ« å‹ å‹ å‹˜ å‹¤ å‹¸ å‹» å‹¾ åŒ¡ åŒ£ å€ å— å¦ å´ åµ å· å¿ åŽ¥ åŽ» åŠ å£ å¥ å© å« å¯ å„ å‰ å› å‘Š å‘± å‘µ å’Ž å’¬ å“¥ å“­ å•“ å–€ å–‡ å– å–« å–¬ å—œ å˜‰ å˜” å™¨ å›Š å›° å›º åœˆ åœ‹ åœ­ åœ» å‡ åŽ å‘ å¤ å° åµ åž¢ åŸº åŸ¼ å € å … å ˆ å ª å º å¡Š å¡ å¢ƒ å¢¾ å£™ å£ž å¤” å¥‡ å¥ˆ å¥Ž å¥‘ å¥¸ å¦“ å¦— å§‘ å§œ å§¦ å¨˜ å¨œ å« å¬Œ å­” å­£ å­¤ å® å®˜ å®¢ å®® å®¶ å¯„ å¯‡ å¯¡ å¯¬ å°» å±€ å±… å±† å±ˆ å² å²¡ å²¬ å´Ž å´‘ å´— åµŒ åµ å¶‡ å¶  å·¥ å·§ å·¨ å·± å·¾ å¹² å¹¹ å¹¾ åºš åº« åº· å»Š å» å»“ å»£ å»º å¼“ å¼º å½Š å¾‘ å¿Œ æ€¥ æ€ª æ€¯ æ æ æª æ­ æ‚¸ æ„† æ„Ÿ æ„§ æ„· æ„¾ æ…Š æ…£ æ…¤ æ…¨ æ…¶ æ…· æ†© æ†¬ æ†¾ æ‡ƒ æ‡‡ æ‡¦ æ‡¶ æ‡¼ æˆˆ æˆ’ æˆŸ æˆ¡ æ‰± æŠ€ æŠ‰ æ‹‰ æ‹ æ‹ æ‹’ æ‹˜ æ‹¬ æ‹® æ‹± æ‹³ æ‹· æ‹¿ æ æ® æ² æº æŽ˜ æŽ› æŽ§ æ€ æ† æ­ æ“Š æ“Ž æ“’ æ“š æ“§ æ”ª æ”· æ”¹ æ”» æ•… æ•Ž æ•‘ æ•¢ æ•¬ æ•² æ–› æ–¤ æ—— æ—£ æ˜† æ˜‘ æ™¯ æ™· æš‡ æš– æš  æš» æ›  æ›² æ›´ æ›· æœ— æœž æœŸ æœº æ† æž æ° æž æžœ æž¯ æž¶ æž¸ æŸ‘ æŸ© æŸ¬ æŸ¯ æ ¡ æ ¹ æ ¼ æ¡€ æ¡‚ æ¡” æ¡¿ æ¢ æ¢— æ¢° æ¢± æ£„ æ£‹ æ£ æ£˜ æ£¨ æ£º æ¥— æ¥  æ¥µ æ§ æ§‹ æ§ æ§¨ æ§ª æ§» æ§¿ æ¨‚ æ©„ æ©‹ æ©˜ æ©Ÿ æª„ æªŽ æª¢ æ«ƒ æ¬„ æ¬Š æ¬º æ¬¾ æ­Œ æ­ æ­¸ æ®¼ æ¯† æ¯¬ æ°£ æ±‚ æ±Ÿ æ±¨ æ±² æ±º æ±½ æ²‚ æ²½ æ´› æ´¸ æµª æ¶‡ æ·ƒ æ·‡ æ¸› æ¸  æ¸´ æ¹³ æº æºª æ»‘ æ»¾ æ¼‘ æ½” æ½° æ¾— æ¿€ æ¿« çŒ ç¸ ç‚… ç‚š ç‚¬ çƒ™ çƒ± ç…– çˆ› ç‰½ çŠ¬ ç‹‚ ç‹— ç‹¡ ç‹¼ ç— çŽ– çŽ˜ ç‚ ç ç– ç™ çž çª çƒ ç¦ ç¨ çª ç¯ ç´ ç‘¾ ç’‚ ç’Ÿ ç’£ ç’¥ ç“Š ç“˜ ç“œ ç”„ ç”˜ ç”² ç”· ç•‡ ç•Œ ç•¸ ç•º ç•¿ ç–† ç–¥ ç–³ ç—‚ ç—™ ç—¼ ç™Ž ç™© ç™¸ çš† çšŽ çš ç›– ç›£ çœ‹ çœ· ç¾ çž° çž¼ çž¿ çŸœ çŸ© çŸ¯ ç¡… ç¡¬ ç¢ ç¢£ ç£Ž ç£¬ ç£¯ ç£µ ç¥ ç¥‡ ç¥ˆ ç¥› ç¥º ç¦ ç¦½ ç§‘ ç¨ˆ ç¨¼ ç¨½ ç¨¿ ç©€ ç©¶ ç©¹ ç©º çª˜ çªŸ çª® çªº ç«… ç«Ÿ ç«­ ç«¶ ç«¿ ç­‹ ç­ ç­  ç®‡ ç®• ç® ç®¡ ç°¡ ç²³ ç³  ç³» ç³¾ ç´€ ç´ ç´˜ ç´š ç´º çµ… çµ çµž çµ¦ çµ³ çµ¹ çµ¿ ç¶“ ç¶± ç¶º ç·Š ç¹« ç¹­ ç¹¼ ç¼º ç½ ç½« ç¾… ç¾ˆ ç¾Œ ç¾” ç¾¤ ç¾¹ ç¿¹ è€ƒ è€† è€‰ è€• è€­ è€¿ è‚Œ è‚ è‚¡ è‚© è‚¯ è‚± èƒ› èƒ± è„š è„› è…” è…± è†ˆ è† è†  è‡˜ è‡¼ èˆ… èˆŠ èˆ¡ è‰® è‰± èŠŽ èŠ¥ èŠ© èŠ¹ è‹› è‹Ÿ è‹¦ è‹½ èŒ„ èŽ– è… èŠ èŒ è“ è« è° è½ è‘› è‘µ è“‹ è•Ž è•¨ è–‘ è— è— è—¿ è˜­ è˜¿ è™” èš£ è›Ÿ èŽ èžº è Ÿ è ± è¡— è¡¢ è¡² è¡¾ è¡¿ è¢ˆ è¢ž è¢´ è£™ è£¸ è¤ è¥ è¥Ÿ è¥¤ è¦‹ è¦ è¦¡ è¦² è¦º è§€ è§’ è¨ˆ è¨˜ è¨£ è¨¶ è©­ èª‡ èª¡ èª¥ èª² è«« è«¾ è¬™ è¬› è¬³ è¬¹ è­ è­¦ è­´ è°· è°¿ è±ˆ è²¢ è²« è²´ è³ˆ è³¼ èµ³ èµ· è· è· è·¨ è¸ž è¹‡ è¹¶ èº¬ è»€ è»Š è»Œ è» è»» è¼ƒ è¼• è½Ž è½Ÿ è¾œ è¿‘ è¿¦ è¿² é€‚ é€‘ é€• é€µ éŽ é£ é½ é‚ é‚£ é‚¯ é‚± éƒŠ éƒŽ éƒ¡ éƒ­ é…ª é†µ é‡‘ éˆ éˆž é‰€ é‰… é‰— é‰¤ éŠ¶ é‹¸ é‹¼ éŒ¡ éŒ¤ éŒ¦ éŒ® é‹ éµ éŽŒ éŽ§ é¡ é‘‘ é‘’ é‘› é–‹ é–“ é–˜ é–£ é–¨ é—• é—œ é™ éšŽ éš” éš™ é›‡ é›£ éž éž  éž¨ éž« é ƒ é ¸ é¡† é¡§ é£¢ é¤ƒ é¤¨ é¥‰ é¥‹ é¥‘ é§’ é§• é§± é¨Ž é¨ é¨« é©… é©• é©š é©¥ éª¨ é«˜ é¬¼ é­ é®« é¯¤ é¯¨ é±‡ é³© éµ‘ éµ  é·„ é·— é¸ž éº’ éº´ é»” é¼“ é¾• é¾œ",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"kok": {
-		0: "à¤¼ à¥¦ à¥§ à¥¨ à¥© à¥ª à¥« à¥¬ à¥­ à¥® à¥¯ à¥ à¤‚ à¤ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤•à¤¼ à¤– à¤–à¤¼ à¤— à¤—à¤¼ à¤˜ à¤™ à¤š à¤› à¤œ à¤œà¤¼ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¡à¤¼ à¤¢ à¤¢à¤¼ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤«à¤¼ à¤¬ à¤­ à¤® à¤¯ à¤¯à¤¼ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-	},
-	"ksb": {
-		0: "a b c d e f g h i j k l m n o p s t u v w y z",
-		3: "q r x",
-		5: "A B C D E F G H I J K L M N O P S T U V W Y Z",
-	},
-	"ksf": {
-		0: "a Ã¡ b c d e Ã© Ç ÇÌ É› É›Ì f g h i Ã­ j k l m n Å‹ o Ã³ É” É”Ì p r s t u Ãº v w y z",
-		3: "q x",
-		5: "A B C D E ÆŽ Æ F G H I J K L M N ÅŠ O Æ† P R S T U V W Y Z",
-	},
-	"ksh": {
-		0: "a Ã¥ Ã¤ Ã¦ b c d e Ã« Ä— f g h i j k l m n o Ã¶ Å“ p q r s t u Å¯ Ã¼ v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ ÄŸ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ä³ Ä± Å‚ Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-	},
-	"ku": {
-		0: "Ø¦ Ø§ Ø¨ Ù¾ Øª Ø¬ Ú† Ø­ Ø® Ø¯ Ø± Ø² Ú• Ú˜ Ø³ Ø´ Ø¹ Øº Ù Ú¤ Ù‚ Ú© Ú¯ Ù„ Úµ Ù… Ù† Ù‡ Ú¾ Ùˆ Û† ÛŒ ÛŽ",
-		3: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ø¡ Ø¢ Ø£ Ø¤ Ø¥ Ø¦ Ø§ Ø¨ Ø© Ø« Ø° Øµ Ø¶ Ø· Ø¸ Ùƒ Ù‰ ÙŠ",
-	},
-	"ku_Latn": {
-		0: "a b c Ã§ d e Ãª f g h i Ã® j k l m n o p q r s ÅŸ t u Ã» v w x y z",
-	},
-	"kw": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ky": {
-		0: "Ð° Ð± Ð³ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ ÓŠ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ… Ñ‡ Ñˆ ÑŠ Ñ‹ Ñ ÑŽ Ñ",
-		3: "Ð² Ñ„ Ñ† Ñ‰ ÑŒ",
-	},
-	"lag": {
-		0: "a Ã¡ b c d e Ã© f g h i Ã­ É¨ j k l m n o Ã³ p q r s t u Ãº Ê‰ v w x y z",
-		5: "A B C D E F G H I Æ— J K L M N O P Q R S T U É„ V W X Y Z",
-	},
-	"lg": {
-		0: "a b c d e f g i j k l m n ny Å‹ o p r s t u v w y z",
-		3: "h q x",
-		5: "A B C D E F G I J K L M N ÅŠ O P R S T U V W Y Z",
-	},
-	"ln": {
-		0: "a Ã¡ Ã¢ ÇŽ b c d e Ã© Ãª Ä› É› É›Ì É›Ì‚ É›ÌŒ f g gb h i Ã­ Ã® Ç k l m mb mp n nd ng nk ns nt ny nz o Ã³ Ã´ Ç’ É” É”Ì É”Ì‚ É”ÌŒ p r s t u Ãº v w y z",
-		3: "j q x",
-		5: "A B C D E Æ F G Gb H I K L M Mb Mp N Nd Ng Nk Ns Nt Ny Nz O Æ† P R S T U V W Y Z",
-	},
-	"lo": {
-		0: "à»ˆ à»‰ à»Š à»‹ à»Œ à» à»† àº àº‚ àº„ àº‡ àºˆ àºª àºŠ àº àº” àº• àº– àº— àº™ àºš àº› àºœ àº àºž àºŸ àº¡ àº¢ àº£ àº¥ àº§ àº« à»œ à» àº­ àº® àº¯ àº° àº± àº² àº³ àº´ àºµ àº¶ àº· àº¸ àº¹ àº» àº¼ àº½ à»€ à» à»‚ à»ƒ à»„",
-		3: "\u200b à» à»‘ à»’ à»“ à»” à»• à»– à»— à»˜ à»™",
-	},
-	"lt": {
-		0: "a Ä… b c Ä d e Ä™ Ä— f g h i Ä¯ y j k l m n o p r s Å¡ t u Å³ Å« v z Å¾",
-		3: "iÌ‡Ì iÌ‡Ì€ iÌ‡Ìƒ iÌ‡ Ä¯Ì‡ jÌ‡ q w x",
-		4: "a Ä… b c Ä d e Ä™ Ä— f g h i Ä¯ y j k l m n o p r s Å¡ t u Å³ Å« v z Å¾",
-		5: "A Ä„ B C ÄŒ D E Ä˜ Ä– F G H I Ä® Y J K L M N O P R S Å  T U Å² Åª V Z Å½",
-	},
-	"lu": {
-		0: "a Ã¡ Ã  b c d e Ã© Ã¨ É› É›Ì É›Ì€ f h i Ã­ Ã¬ j k l m n ng ny o Ã³ Ã² É” É”Ì É”Ì€ p ph q s shi t u Ãº Ã¹ v w y z",
-		3: "g r x",
-		5: "A B C D E F H I J K L M N O P Q S T U V W Y Z",
-	},
-	"luo": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y",
-		3: "q x z",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y",
-	},
-	"luy": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"lv": {
-		0: "a Ä b c Ä d e Ä“ f g Ä£ h i Ä« j k Ä· l Ä¼ m n Å† o p r s Å¡ t u Å« v z Å¾",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ â€š \" â€œ â€ â€ž ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "q w x y",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C ÄŒ D E F G Ä¢ H I J K Ä¶ L Ä» M N Å… O P Q R S Å  T U V W X Y Z Å½",
-	},
-	"mas": {
-		0: "a Ã¡ Ã  Ã¢ Ä b c d e Ã© Ã¨ Ãª Ä“ É› g h i Ã­ Ã¬ Ã® Ä« É¨ j k l m n ny Å‹ o Ã³ Ã² Ã´ Å É” p r rr s sh t u Ãº Ã¹ Ã» Å« Ê‰ Ê‰Ì w wu y yi",
-		3: "f q v x z",
-		5: "A B C D E Æ G H I Æ— J K L M N ÅŠ O Æ† P R S T U É„ W Y",
-	},
-	"mer": {
-		0: "a b c d e f g h i Ä© j k l m n o p q r s t u Å© v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"mfe": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P R S T U V W X Y Z",
-	},
-	"mg": {
-		0: "a Ã  Ã¢ b d e Ã© Ã¨ Ãª Ã« f g h i Ã¬ Ã® Ã¯ j k l m n Ã± o Ã´ p r s t v y z",
-		3: "c q u w x",
-		5: "A B D E F G H I J K L M N O P R S T V Y Z",
-	},
-	"mgh": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"mk": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ñ“ Ðµ Ð¶ Ð· Ñ• Ð¸ Ñ˜ Ðº Ð» Ñ™ Ð¼ Ð½ Ñš Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñœ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ ÑŸ Ñˆ",
-		3: "Ñ Ñ",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "Ð Ð‘ Ð’ Ð“ Ð” Ðƒ Ð• Ð– Ð— Ð… Ð˜ Ðˆ Ðš Ð› Ð‰ Ðœ Ð ÐŠ Ðž ÐŸ Ð  Ð¡ Ð¢ ÐŒ Ð£ Ð¤ Ð¥ Ð¦ Ð§ Ð Ð¨",
-	},
-	"ml": {
-		0: "\u200c \u200d à´ƒ à´… à´† à´‡ à´ˆ à´‰ à´Š à´‹ àµ  à´Œ àµ¡ à´Ž à´ à´ à´’ à´“ à´” à´• à´– à´— à´˜ à´™ à´š à´› à´œ à´ à´ž à´Ÿ à´  à´¡ à´¢ à´£ à´¤ à´¥ à´¦ à´§ à´¨ à´ª à´« à´¬ à´­ à´® à´‚ à´¯ à´° à´² à´µ à´¶ à´· à´¸ à´¹ à´³ à´´ à´± à´¾ à´¿ àµ€ àµ àµ‚ àµƒ àµ† àµ‡ àµˆ àµŠ àµ‹ àµ— àµŒ àµ",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"mn": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ",
-		3: "Ó™ Ò— ÓŠ Ò»",
-	},
-	"mn_Mong": {
-		0: "á  á ‘ á ’ á “ á ” á • á – á — á ˜ á ™ á   á ¡ á ¢ á £ á ¤ á ¥ á ¦ á § á ¨ á © á ª á « á ¬ á ­ á ® á ¯ á ° á ± á ² á ³ á ´ á µ á ¶ á · á ¸ á ¹ á º á » á ¼ á ½ á ¾ á ¿ á¡€ á¡ á¡‚",
-	},
-	"mr": {
-		0: "à¤¼ à¥¦ à¥§ à¥¨ à¥© à¥ª à¥« à¥¬ à¥­ à¥® à¥¯ à¥ à¤‚ à¤ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-		4: "à¤° à¥",
-		5: "\u200d à¥ à¤‚ à¤ƒ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¥… à¥",
-	},
-	"ms": {
-		0: "a ai au b c d dz e f g h i j k kh l m n ng ngg ny o p q r s sy t ts u ua v w x y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"mt": {
-		0: "a Ã  b Ä‹ d e Ã¨ f Ä¡ g gÄ§ h Ä§ i Ã¬ j k l m n o Ã² p q r s t u Ã¹ v w x Å¼ z",
-		3: "c y",
-	},
-	"mua": {
-		0: "a Ã£ b É“ c d É— e Ã« Ç f g h i Ä© j k l m n Å‹ o Ãµ p r s t u v á¹½ w y z",
-		3: "q x",
-		5: "A B Æ C D ÆŠ E ÆŽ F G H I J K L M N ÅŠ O P R S T U V W Y Z",
-	},
-	"my": {
-		0: "á€€ á€ á€‚ á€ƒ á€„ á€… á€† á€‡ á€ˆ á€‰ á€Š á€‹ á€Œ á€ á€Ž á€ á€ á€‘ á€’ á€“ á€” á€• á€– á€— á€˜ á€™ á€š á€› á€œ á€ á€ž á€Ÿ á€  á€¡ á€£ á€¤ á€¥ á€¦ á€§ á€© á€ª á€¬ á€« á€­ á€® á€¯ á€° á€± á€² á€¶ á€¿ á€» á€¼ á€½ á€¾ á€¹ á€º á€· á€¸",
-		3: "á á‘ á€¨ á€¢ á’ á“ á” á• á– á— á˜ á™",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"naq": {
-		0: "a Ã¢ b c d e f g h i Ã® k m n o Ã´ p q r s t u Ã» w x y z Ç€ Ç Ç‚ Çƒ",
-		3: "j l v",
-		5: "A B C D E F G H I K M N O P Q R S T U W X Y Z",
-	},
-	"nb": {
-		0: "a Ã  b c d e Ã© f g h i j k l m n o Ã³ Ã² Ã´ p q r s t u v w x y z Ã¦ Ã¸ Ã¥",
-		3: "Ã¡ ÇŽ Ã£ Ä Ã§ Ä‘ Ã¨ Ãª Ã­ Å„ Ã± Å‹ Å¡ Å§ Ã¼ Å¾ Ã¤ Ã¶",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã† Ã˜ Ã…",
-	},
-	"nd": {
-		0: "a b c d e f g h i j k l m n o p q s t u v w x y z",
-		3: "r",
-		5: "A B C D E F G H I J K L M N O P Q S T U V W X Y Z",
-	},
-	"ne": {
-		0: "à¤¼ à¤ à¤‚ à¤ƒ à¥ à¤… à¤† à¤‡ à¤ˆ à¤‰ à¤Š à¤‹ à¤Œ à¤ à¤ à¤ à¤‘ à¤“ à¤” à¤• à¤– à¤— à¤˜ à¤™ à¤š à¤› à¤œ à¤ à¤ž à¤Ÿ à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥€ à¥ à¥‚ à¥ƒ à¥„ à¥… à¥‡ à¥ˆ à¥‰ à¥‹ à¥Œ à¥",
-		3: "\u200c \u200d",
-	},
-	"nl": {
-		0: "a Ã¡ Ã¤ b c d e Ã© Ã« f g h i Ã­ Ã¯ ij j k l m n o Ã³ Ã¶ p q r s t u Ãº Ã¼ v w x y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¥ Ã£ Ã§ Ã± Ã´",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"nmg": {
-		0: "a Ã¡ Äƒ Ã¢ Ã¤ Ä b É“ c d e Ã© Ä• Ãª Ä“ Ç ÇÌ ÇÌ† ÇÌ‚ ÇÌ„ É› É›Ì É›Ì† É›Ì‚ É›Ì„ f g h i Ã­ Ä­ Ã® Ã¯ Ä« j k l m n Å„ Å‹ o Ã³ Å Ã´ Ã¶ Å É” É”Ì É”Ì† É”Ì‚ É”Ì„ p r Å• s t u Ãº Å­ Ã» Å« v w y",
-		3: "q x z",
-		5: "A B Æ C D E ÆŽ Æ F G H I J K L M N ÅŠ O Æ† P R S T U V W Y",
-	},
-	"nn": {
-		0: "a Ã  b c d e Ã© f g h i j k l m n o Ã³ Ã² Ã´ p q r s t u v w x y z Ã¦ Ã¸ Ã¥",
-		3: "Ã¡ ÇŽ Ä Ã§ Ä‘ Ã¨ Ãª Å„ Ã± Å‹ Å¡ Å§ Ã¼ Å¾ Ã¤ Ã¶",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã† Ã˜ Ã…",
-	},
-	"nso": {
-		0: "a b d e Ãª f g h i j k l m n o Ã´ p r s Å¡ t u w x y",
-		3: "c q v z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"nus": {
-		0: "a Ã¤ aÌ± b c d e Ã« eÌ± É› É›Ìˆ É›Ì± É›Ì±Ìˆ f g É£ h i Ã¯ iÌ± j k l m n Å‹ o Ã¶ oÌ± É” É”Ìˆ É”Ì± p q r s t u v w x y z",
-		5: "A B C D E Æ F G Æ” H I J K L M N ÅŠ O Æ† P Q R S T U V W X Y Z",
-	},
-	"nyn": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"om": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"or": {
-		0: "à¬¼ à¬… à¬† à¬‡ à¬ˆ à¬‰ à¬Š à¬‹ à¬ à¬ à¬“ à¬” à¬ à¬‚ à¬ƒ à¬• à¬– à¬— à¬˜ à¬™ à¬š à¬› à¬œ à¬ à¬ž à¬Ÿ à¬  à¬¡ à¬¡à¬¼ à¬¢ à¬¢à¬¼ à¬£ à¬¤ à¬¥ à¬¦ à¬§ à¬¨ à¬ª à¬« à¬¬ à¬­ à¬® à¬¯ à­Ÿ à¬° à¬² à¬³ à¬µ à­± à¬¶ à¬· à¬¸ à¬¹ à¬¾ à¬¿ à­€ à­ à­‚ à­ƒ à­‡ à­ˆ à­‹ à­Œ à­",
-		3: "\u200c \u200d",
-	},
-	"pa": {
-		0: "à©± à©° à¨¼ à©¦ à©§ à©¨ à©© à©ª à©« à©¬ à©­ à©® à©¯ à©´ à©³ à¨‰ à¨Š à¨“ à¨… à¨† à¨ à¨” à©² à¨‡ à¨ˆ à¨ à¨¸ à¨¸à¨¼ à¨¹ à¨• à¨– à¨–à¨¼ à¨— à¨—à¨¼ à¨˜ à¨™ à¨š à¨› à¨œ à¨œà¨¼ à¨ à¨ž à¨Ÿ à¨  à¨¡ à¨¢ à¨£ à¨¤ à¨¥ à¨¦ à¨§ à¨¨ à¨ª à¨« à¨«à¨¼ à¨¬ à¨­ à¨® à¨¯ à¨° à¨² à¨µ à©œ à© à¨¾ à¨¿ à©€ à© à©‚ à©‡ à©ˆ à©‹ à©Œ",
-		3: "\u200c \u200d à¨ƒ à¨‚ à¨ à¨²à¨¼",
-	},
-	"pa_Arab": {
-		0: "Ù Ø¡ Ø¢ Ø¤ Ø¦ Ø§ Ø¨ Ù¾ Øª Ø« Ù¹ Ø¬ Ú† Ø­ Ø® Ø¯ Ø° Úˆ Ø± Ø² Ú‘ Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Úº Ù‡ Ú¾ Û Ùˆ ÛŒ Û’",
-		3: "Ø£ Ù» Ø© Ùº Ù¼ Ù½",
-	},
-	"pl": {
-		0: "a Ä… b c Ä‡ d e Ä™ f g h i j k l Å‚ m n Å„ o Ã³ p r s Å› t u w y z Åº Å¼",
-		3: "q v x",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ps": {
-		0: "ÙŽ Ù Ù Ù‹ Ù ÙŒ Ù‘ Ù’ Ù” Ù° Ø¢ Ø§ Ø£ Ø¡ Ø¨ Ù¾ Øª Ù¼ Ø« Ø¬ Ú Ú† Ú… Ø­ Ø® Ø¯ Ú‰ Ø° Ø± Ú“ Ø² Ú˜ Ú– Ø³ Ø´ Úš Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú« Ù„ Ù… Ù† Ú¼ Ù‡ Ø© Ùˆ Ø¤ ÛŒ ÙŠ Û Û Ø¦",
-		3: "\u200c \u200d",
-	},
-	"pt": {
-		0: "a Ã¡ Ã  Ã¢ Ã£ b c Ã§ d e Ã© Ãª f g h i Ã­ j k l m n o Ã³ Ã² Ã´ Ãµ p q r s t u Ãº v w x y z",
-		3: "Äƒ Ã¥ Ã¤ Ä Ã¦ Ã¨ Ä• Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Å Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"pt_PT": {
-		3: "Âª Äƒ Ã¥ Ã¤ Ä Ã¦ Ã¨ Ä• Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Âº Å Ã¶ Ã¸ Å Å“ Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-	},
-	"rn": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ro": {
-		0: "a Äƒ Ã¢ b c d e f g h i Ã® j k l m n o p r s È™ t È› u v x z",
-		3: "Ã¡ Ã  Ã¥ Ã¤ Ã§ Ã© Ã¨ Ãª Ã« Ã± Ã¶ q ÅŸ Å£ Ã¼ w y",
-		4: "a Äƒ Ã¢ b c d e f g h i Ã® j k l m n o p q r s È™ t È› u v w x y z",
-		5: "A Ä‚ Ã‚ B C D E F G H I ÃŽ J K L M N O P Q R S È˜ T Èš U V W X Y Z",
-	},
-	"rof": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"root": {
-		2: "- , ; : ! ? . ( ) [ ] { }",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"ru": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŠ Ñ‹ ÑŒ Ñ ÑŽ Ñ",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€š \" â€œ â€ž Â« Â» ( ) [ ] { } @ * / & # Â§",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "Ð Ð‘ Ð’ Ð“ Ð” Ð• Ð Ð– Ð— Ð˜ Ð™ Ðš Ð› Ðœ Ð Ðž ÐŸ Ð  Ð¡ Ð¢ Ð£ Ð¤ Ð¥ Ð¦ Ð§ Ð¨ Ð© Ð« Ð­ Ð® Ð¯",
-	},
-	"rw": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"rwk": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"sah": {
-		0: "Ð° Ð± Ð³ Ò• Ð´ Ð´ÑŒ Ð¸ Ð¹ Ðº Ð» Ð¼ Ð½ Ð½ÑŒ Ò¥ Ð¾ Ó© Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ò¯ Ñ… Ò» Ñ‡ Ñ‹ Ñ",
-		3: "Ð² Ðµ Ñ‘ Ð¶ Ð· Ñ„ Ñ† Ñˆ Ñ‰ ÑŠ ÑŒ ÑŽ Ñ",
-		5: "Ð Ð‘ Ð“ Ò” Ð” Ð”ÑŒ Ð˜ Ð™ Ðš Ð› Ðœ Ð ÐÑŒ Ò¤ Ðž Ó¨ ÐŸ Ð  Ð¡ Ð¢ Ð£ Ò® Ð¥ Òº Ð§ Ð« Ð­",
-	},
-	"saq": {
-		0: "a b c d e g h i j k l m n o p r s t u v w y",
-		3: "f q x z",
-		5: "A B C D E G H I J K L M N O P R S T U V W Y",
-	},
-	"sbp": {
-		0: "a b c d e f g h i j k l m n o p s t u v w y",
-		3: "q r x z",
-		5: "A B C D E F G H I J K L M N O P S T U V W Y",
-	},
-	"se": {
-		0: "a Ã¡ b c Ä d Ä‘ e f g h i j k l m n Å‹ o p r s Å¡ t Å§ u v z Å¾",
-		3: "Ã  Ã¥ Ã¤ Ã£ Ã¦ Ã§ Ã© Ã¨ Ã­ Å„ Ã± Ã³ Ã² Ã¶ Ã¸ q Ãº Ã¼ w x y",
-	},
-	"seh": {
-		0: "a Ã¡ Ã  Ã¢ Ã£ b c Ã§ d e Ã© Ãª f g h i Ã­ j k l m n o Ã³ Ã² Ã´ Ãµ p q r s t u Ãº v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"ses": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n É² Å‹ o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-		5: "A Ãƒ B C D E áº¼ F G H I J K L M N Æ ÅŠ O Ã• P Q R S Å  T U W X Y Z Å½",
-	},
-	"sg": {
-		0: "a Ã¢ Ã¤ b d e Ãª Ã« f g h i Ã® Ã¯ j k l m n o Ã´ Ã¶ p r s t u Ã¹ Ã» Ã¼ v w y z",
-		3: "c q x",
-		5: "A B D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"shi": {
-		0: "a b c d á¸ e É› f g gÊ· É£ h á¸¥ i j k kÊ· l m n q r á¹› s á¹£ t á¹­ u w x y z",
-		3: "o p v",
-		5: "A B C D á¸Œ E Æ F G GÊ· Æ” H á¸¤ I J K KÊ· L M N Q R á¹š S á¹¢ T á¹¬ U W X Y Z",
-	},
-	"shi_Tfng": {
-		0: "â´° â´± â´³ â´³âµ¯ â´· â´¹ â´» â´¼ â´½ â´½âµ¯ âµ€ âµƒ âµ„ âµ… âµ‡ âµ‰ âµŠ âµ âµŽ âµ âµ“ âµ” âµ• âµ– âµ™ âµš âµ› âµœ âµŸ âµ¡ âµ¢ âµ£ âµ¥",
-		5: "â´° â´± â´³ â´· â´¹ â´» â´¼ â´½ âµ€ âµƒ âµ„ âµ… âµ‡ âµ‰ âµŠ âµ âµŽ âµ âµ“ âµ” âµ• âµ– âµ™ âµš âµ› âµœ âµŸ âµ¡ âµ¢ âµ£ âµ¥",
-	},
-	"si": {
-		0: "à¶… à¶† à¶‡ à¶ˆ à¶‰ à¶Š à¶‹ à¶Œ à¶ à¶‘ à¶’ à¶“ à¶” à¶• à¶– à¶‚ à¶ƒ à¶š à¶› à¶œ à¶ à¶ž à¶Ÿ à¶  à¶¡ à¶¢ à¶£ à¶¥ à¶¤ à¶§ à¶¨ à¶© à¶ª à¶« à¶¬ à¶­ à¶® à¶¯ à¶° à¶± à¶³ à¶´ à¶µ à¶¶ à¶· à¶¸ à¶¹ à¶º à¶» à¶½ à·€ à· à·‚ à·ƒ à·„ à·… à·† à· à· à·‘ à·’ à·“ à·” à·– à·˜ à·² à·Ÿ à·™ à·š à·› à·œ à· à·ž à·Š",
-		3: "\u200b \u200c \u200d à¶Ž à¶ à¶ à¶¦ à·³",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "à¶… à¶† à¶‡ à¶ˆ à¶‰ à¶Š à¶‹ à¶Œ à¶ à¶‘ à¶’ à¶“ à¶” à¶• à¶– à¶š à¶› à¶œ à¶ à¶ž à¶Ÿ à¶  à¶¡ à¶¢ à¶£ à¶¥ à¶¤ à¶§ à¶¨ à¶© à¶ª à¶« à¶¬ à¶­ à¶® à¶¯ à¶° à¶± à¶³ à¶´ à¶µ à¶¶ à¶· à¶¸ à¶¹ à¶º à¶» à¶½ à·€ à· à·‚ à·ƒ à·„ à·… à·†",
-	},
-	"sk": {
-		0: "a Ã¡ Ã¤ b c Ä d Ä e Ã© f g h ch i Ã­ j k l Äº Ä¾ m n Åˆ o Ã³ Ã´ p q r Å• s Å¡ t Å¥ u Ãº v w x y Ã½ z Å¾",
-	},
-	"sl": {
-		0: "a b c Ä d e f g h i j k l m n o p r s Å¡ t u v z Å¾",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ä Ã¦ Ã§ Ä‡ Ä‘ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ q Ãº Ã¹ Å­ Ã» Ã¼ Å« w x y Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C ÄŒ Ä† D Ä E F G H I J K L M N O P Q R S Å  T U V W X Y Z Å½",
-	},
-	"sn": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"so": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"sq": {
-		0: "a b c Ã§ d dh e Ã« f g gj h i j k l ll m n nj o p q r rr s sh t th u v x xh y z zh",
-		3: "w",
-	},
-	"sr": {
-		0: "Ð° Ð± Ð² Ð³ Ð´ Ñ’ Ðµ Ð¶ Ð· Ð¸ Ñ˜ Ðº Ð» Ñ™ Ð¼ Ð½ Ñš Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñ› Ñƒ Ñ„ Ñ… Ñ† Ñ‡ ÑŸ Ñˆ",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-	},
-	"sr_Latn": {
-		0: "a b c Ä Ä‡ d dÅ¾ Ä‘ e f g h i j k l lj m n nj o p r s Å¡ t u v z Å¾",
-		3: "q w x y",
-	},
-	"ss": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"st": {
-		0: "a b d e f g h i j k l m n o p q r s t u w y",
-		3: "c v x z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"sv": {
-		0: "a Ã  b c d e Ã© f g h i j k l m n o p q r s t u v w x y z Ã¥ Ã¤ Ã¶",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¡ Ã¢ Ã£ Ä Ã§ Ã« Ã­ Ã® Ã¯ Ä« Ã± Ã³ Ãº Ã¿ Ã¼ Ã¦ Ã¸",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Ã… Ã„ Ã–",
-	},
-	"sv_FI": {
-		3: "Ã£ Ã§ Ã« Ã­ Ã± Ã³ Å¡ Ã¿ Ã¼ Å¾",
-	},
-	"sw": {
-		0: "a b ch d e f g h i j k l m n o p r s t u v w y z",
-		3: "c q x",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"swc": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"ta": {
-		0: "à®… à®† à®‡ à®ˆ à®‰ à®Š à®Ž à® à® à®’ à®“ à®” à®ƒ à®• à®™ à®š à®ž à®Ÿ à®£ à®¤ à®¨ à®ª à®® à®¯ à®° à®² à®µ à®´ à®³ à®± à®© à®œ à®· à®¸ à®¹ à®¾ à®¿ à¯€ à¯ à¯‚ à¯† à¯‡ à¯ˆ à¯Š à¯‹ à¯Œ à¯",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"te": {
-		0: "à°… à°† à°‡ à°ˆ à°‰ à°Š à°‹ à±  à°Œ à±¡ à°Ž à° à° à°’ à°“ à°” à° à°‚ à°ƒ à°• à°– à°— à°˜ à°™ à°š à°› à°œ à° à°ž à°Ÿ à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³ à°¾ à°¿ à±€ à± à±‚ à±ƒ à±„ à±† à±‡ à±ˆ à±Š à±‹ à±Œ à± à±• à±–",
-		3: "\u200c \u200d à±¦ à±§ à±¨ à±© à±ª à±« à±¬ à±­ à±® à±¯",
-		5: "à°… à°† à°‡ à°ˆ à°‰ à°Š à°‹ à±  à°Ž à° à° à°’ à°“ à°” à°• à°– à°— à°˜ à°™ à°š à°› à°œ à° à°ž à°Ÿ à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³",
-	},
-	"teo": {
-		0: "a b c d e g h i j k l m n o p r s t u v w x y",
-		3: "f q z",
-		5: "A B C D E G H I J K L M N O P R S T U V W X Y",
-	},
-	"tg": {
-		0: "Ð° Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ó£ Ð¹ Ðº Ò› Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ó¯ Ñ„ Ñ… Ò³ Ñ‡ Ò· Ñˆ ÑŠ Ñ ÑŽ Ñ",
-		3: "Ñ† Ñ‰ Ñ‹ ÑŒ",
-	},
-	"th": {
-		0: "à¹Ž à¹Œ à¹‡ à¹ˆ à¹‰ à¹Š à¹‹ à¸¯ à¹† à¸ à¸‚ à¸ƒ à¸„ à¸… à¸† à¸‡ à¸ˆ à¸‰ à¸Š à¸‹ à¸Œ à¸ à¸Ž à¸ à¸ à¸‘ à¸’ à¸“ à¸” à¸• à¸– à¸— à¸˜ à¸™ à¸š à¸› à¸œ à¸ à¸ž à¸Ÿ à¸  à¸¡ à¸¢ à¸£ à¸¤ à¸¥ à¸¦ à¸§ à¸¨ à¸© à¸ª à¸« à¸¬ à¸­ à¸® à¹ à¸° à¸± à¸² à¹… à¸³ à¸´ à¸µ à¸¶ à¸· à¸¸ à¸¹ à¹€ à¹ à¹‚ à¹ƒ à¹„ à¸º",
-		3: "\u200b",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"ti": {
-		0: "áŸ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆˆ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áˆ  áˆ¡ áˆ¢ áˆ£ áˆ¤ áˆ¥ áˆ¦ áˆ§ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰ á‰ á‰‘ á‰’ á‰“ á‰” á‰• á‰– á‰˜ á‰š á‰š á‰› á‰œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹€ á‹‚ á‹‚ á‹ƒ á‹„ á‹… á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹° á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ áŒ° áŒ± áŒ² áŒ³ áŒ´ áŒµ áŒ¶ áŒ· áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á á á‘ á’ á“ á” á• á– á—",
-		3: "áŽ áŽ áŽ‘ áŽ’ áŽ“ áŽ” áŽ• áŽ– áŽ— áŽ˜ áŽ™ áˆ‡ â¶€ áŽ€ áŽ€ áŽ áŽ‚ áŽƒ â¶ â¶ â¶‚ â¶ƒ â¶„ á‰‡ áŽ„ áŽ„ áŽ… áŽ† áŽ‡ â¶… â¶… â¶† â¶‡ áŠ‡ â¶ˆ â¶ˆ â¶‰ â¶Š áŠ¯ á‹ â¶‹ á‹¯ â¶Œ á‹¸ á‹¸ á‹¹ á‹º á‹» á‹¼ á‹½ á‹¾ á‹¿ â¶ â¶Ž áŒ áŒ˜ áŒ˜ áŒ™ áŒš áŒ› áŒœ áŒ áŒž áŒŸ â¶“ â¶“ â¶” â¶• â¶– â¶ â¶ â¶ â¶‘ á‡ áŽˆ áŽˆ áŽ‰ áŽŠ áŽ‹ áŽŒ áŽ áŽŽ áŽ â¶’ á˜ á˜ á™ áš â¶  â¶  â¶¡ â¶¢ â¶£ â¶¤ â¶¥ â¶¦ â¶¨ â¶¨ â¶© â¶ª â¶« â¶¬ â¶­ â¶® â¶° â¶° â¶± â¶² â¶³ â¶´ â¶µ â¶¶ â¶¸ â¶¸ â¶¹ â¶º â¶» â¶¼ â¶½ â¶¾ â·€ â·€ â· â·‚ â·ƒ â·„ â·… â·† â·ˆ â·ˆ â·‰ â·Š â·‹ â·Œ â· â·Ž â· â· â·‘ â·’ â·“ â·” â·• â·– â·˜ â·˜ â·™ â·š â·› â·œ â· â·ž",
-		5: "áˆ€ áˆˆ áˆ áˆ˜ áˆ  áˆ¨ áˆ° áˆ¸ á‰€ á‰ˆ á‰ á‰˜ á‰  á‰¨ á‰° á‰¸ áŠ€ áŠˆ áŠ áŠ˜ áŠ  áŠ¨ áŠ° áŠ¸ á‹€ á‹ˆ á‹ á‹˜ á‹  á‹¨ á‹° áŒ€ áŒˆ áŒ áŒ  áŒ¨ áŒ° áŒ¸ á€ áˆ á",
-	},
-	"tn": {
-		0: "a b d e Ãª f g h i j k l m n o Ã´ p r s t u w y",
-		3: "c q v x z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"to": {
-		0: "a Ä e Ä“ f h Ê» i Ä« k l m n ng o Å p s t u Å« v",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã¦ b c Ã§ d Ã¨ Ä• Ãª Ã« g Ã¬ Ä­ Ã® Ã¯ j Ã± Ã² Å Ã´ Ã¶ Ã¸ Å“ q r Ã¹ Å­ Ã» Ã¼ w x y Ã¿ z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A Ä€ B C D E Ä’ F G H Ê» I Äª J K L M N O ÅŒ P Q R S T U Åª V W X Y Z",
-	},
-	"tr": {
-		0: "a b c Ã§ d e f g ÄŸ h Ä± i iÌ‡ j k l m n o Ã¶ p r s ÅŸ t u Ã¼ v y z",
-		2: "- â€ â€“ â€” , ; : ! ? . â€¦ ' â€˜ â€™ \" â€œ â€ ( ) [ ] @ * / & # â€  â€¡ â€² â€³ Â§",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ä Ã¦ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¸ Å Å“ q Ãº Ã¹ Å­ Ã» Å« w x Ã¿",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "A B C Ã‡ D E F G H I Ä° J K L M N O Ã– P Q R S Åž T U Ãœ V W X Y Z",
-	},
-	"ts": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"twq": {
-		0: "a Ã£ b c d e áº½ f g h i j k l m n Å‹ É² o Ãµ p q r s Å¡ t u w x y z Å¾",
-		3: "v",
-	},
-	"tzm": {
-		0: "a b c d á¸ e É› f g gÊ· É£ h á¸¥ i j k kÊ· l m n q r á¹› s á¹£ t á¹­ u w x y z",
-		3: "o p v",
-		5: "A B C D á¸Œ E Æ F G Æ” H á¸¤ I J K L M N Q R á¹š S á¹¢ T á¹¬ U W X Y Z",
-	},
-	"uk": {
-		0: "Ê¼ Ð° Ð± Ð² Ð³ Ò‘ Ð´ Ðµ Ñ” Ð¶ Ð· Ð¸ Ñ– Ñ— Ð¹ Ðº Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñ„ Ñ… Ñ† Ñ‡ Ñˆ Ñ‰ ÑŽ Ñ ÑŒ",
-		4: "a b c Ä d e f g h i j k l Å‚ m n o Âº p q r s t u v w x y z",
-		5: "Ð Ð‘ Ð’ Ð“ Ò Ð” Ð• Ð„ Ð– Ð— Ð˜ Ð† Ð‡ Ð™ Ðš Ð› Ðœ Ð Ðž ÐŸ Ð  Ð¡ Ð¢ Ð£ Ð¤ Ð¥ Ð¦ Ð§ Ð¨ Ð© Ð® Ð¯",
-	},
-	"ur": {
-		0: "Ø§ Ø£ Ø¢ Ø¨ Ù¾ Øª Ù¹ Ø« Ø¬ Ú† Ø­ Ø® Ø¯ Úˆ Ø° Ø± Ú‘ Ø² Ú˜ Ø³ Ø´ Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú¯ Ù„ Ù… Ù† Úº Ùˆ Ø¤ Û Ú¾ Ø¡ ÛŒ Ø¦ Û’ Ù» Ø© Ùº Ù¼ Ù½ Ù‡ ÙŠ",
-	},
-	"uz": {
-		0: "Ð° Ð± Ð² Ð³ Ò“ Ð´ Ðµ Ñ‘ Ð¶ Ð· Ð¸ Ð¹ Ðº Ò› Ð» Ð¼ Ð½ Ð¾ Ð¿ Ñ€ Ñ Ñ‚ Ñƒ Ñž Ñ„ Ñ… Ò³ Ñ‡ Ñˆ ÑŠ Ñ ÑŽ Ñ",
-		3: "Ñ† Ñ‰ Ñ‹ ÑŒ",
-	},
-	"uz_Arab": {
-		0: "Ù‹ ÙŒ Ù ÙŽ Ù Ù Ù‘ Ù’ Ù” Ù° Ø¡ Ø¢ Ø£ Ø¤ Ø¦ Ø§ Ø¨ Ù¾ Ø© Øª Ø« Ù¼ Ø¬ Ú† Ø­ Ø® Ú Ú… Ø¯ Ø° Ú‰ Ø± Ø² Ú“ Ú– Ú˜ Ø³ Ø´ Úš Øµ Ø¶ Ø· Ø¸ Ø¹ Øº Ù Ù‚ Ú© Ú« Ú¯ Ù„ Ù… Ù† Ú¼ Ù‡ Ùˆ Û‡ Û‰ ÙŠ ÛŒ Û Û",
-		3: "\u200c \u200d",
-	},
-	"uz_Latn": {
-		0: "a aÊ¼ b ch d e eÊ¼ f g gÊ¼ h i iÊ¼ j k l m n o oÊ¼ p q r s sh t u uÊ¼ v x y z",
-		3: "c w",
-		5: "A B CH D E F G GÊ¼ H I J K L M N O OÊ¼ P Q R S SH T U V X Y Z",
-	},
-	"vai": {
-		0: "ê˜  ê˜  ê˜¡ ê˜¢ ê˜£ ê˜¤ ê˜¥ ê˜¦ ê˜§ ê˜¨ ê˜© ê”€ ê”€ ê” ê”‚ ê”ƒ ê”„ ê”… ê”† ê”‡ ê”ˆ ê”‰ ê”Š ê”‹ ê”Œ ê˜“ ê” ê” ê”Ž ê” ê” ê”‘ ê”’ ê”“ ê”” ê”• ê”– ê”— ê”˜ ê”™ ê”š ê”› ê”œ ê” ê”ž ê˜” ê”Ÿ ê”Ÿ ê”  ê”¡ ê”¢ ê”£ ê”¤ ê”¥ ê”¦ ê”§ ê”¨ ê”© ê”ª ê”« ê”¬ ê”­ ê”® ê”¯ ê”° ê”± ê”² ê”³ ê˜• ê”´ ê”´ ê”µ ê”¶ ê”· ê”¸ ê”¹ ê”º ê”» ê”¼ ê”½ ê”¾ ê”¿ ê•€ ê• ê•‚ ê•ƒ ê•„ ê•… ê•† ê•‡ ê˜– ê•ˆ ê•ˆ ê•‰ ê•Š ê•‹ ê•Œ ê• ê•Ž ê• ê• ê•‘ ê•’ ê˜— ê•“ ê•“ ê•” ê•• ê•– ê•— ê•˜ ê˜ ê˜˜ ê•™ ê•š ê˜™ ê•› ê•› ê•œ ê• ê•ž ê•Ÿ ê•  ê˜š ê•¡ ê•¡ ê•¢ ê•£ ê•¤ ê•¥ ê•¦ ê•§ ê•¨ ê•© ê•ª ê˜‘ ê•« ê•« ê•¬ ê•­ ê•® ê˜ª ê•¯ ê•¯ ê•° ê•± ê•² ê•³ ê•´ ê•µ ê•¶ ê•· ê•¸ ê•¹ ê•º ê•» ê•¼ ê•½ ê•¾ ê•¿ ê–€ ê– ê–‚ ê–ƒ ê–„ ê–… ê˜› ê–† ê–‡ ê˜’ ê–ˆ ê–ˆ ê–‰ ê–Š ê–‹ ê–Œ ê– ê–Ž ê– ê– ê–‘ ê–’ ê–“ ê–” ê–• ê–– ê–— ê–˜ ê–™ ê–š ê–› ê–œ ê– ê–ž ê–Ÿ ê–  ê–¡ ê–¢ ê–£ ê–¤ ê–¥ ê–¦ ê–§ ê–¨ ê–© ê–ª ê–« ê–¬ ê–­ ê–® ê–¯ ê–° ê–± ê–² ê–³ ê–´ ê˜œ ê–µ ê–µ ê–¶ ê–· ê–¸ ê–¹ ê–º ê–» ê–¼ ê–½ ê–¾ ê–¿ ê—€ ê— ê—‚ ê—ƒ ê—„ ê—… ê—† ê—‡ ê—ˆ ê—‰ ê—Š ê—‹ ê˜ ê—Œ ê—Œ ê— ê—Ž ê— ê— ê—‘ ê˜« ê˜ž ê—’ ê—’ ê—“ ê—” ê—• ê—– ê—— ê—˜ ê˜Ÿ ê—™ ê—™ ê—š ê—› ê—œ ê— ê—ž ê—Ÿ ê—  ê—¡ ê—¢ ê—£ ê—¤ ê—¥ ê—¦ ê—§ ê—¨ ê—© ê—ª ê—« ê—¬ ê—­ ê—® ê—¯ ê—° ê—± ê—² ê—³ ê—´ ê—µ ê—¶ ê—· ê—¸ ê—¹ ê—º ê—» ê—¼ ê—½ ê—¾ ê—¿ ê˜€ ê˜ ê˜‚ ê˜ƒ ê˜„ ê˜… ê˜† ê˜‡ ê˜ˆ ê˜‰ ê˜Š ê˜‹ ê˜Œ",
-	},
-	"vai_Latn": {
-		0: "a Ã¡ Ã£ b É“ c d É— e Ã© áº½ É› É›Ì É›Ìƒ f g h i Ã­ Ä© j k l m n Å‹ o Ã³ Ãµ É” É”Ì É”Ìƒ p q r s t u Ãº Å© v w x y z",
-		5: "A B Æ C D ÆŠ E Æ F G H I J K L M N ÅŠ O Æ† P Q R S T U V W X Y Z",
-	},
-	"ve": {
-		0: "a b d á¸“ e f g h i k l á¸½ m n á¹… á¹‹ o p r s t á¹± u v w x y z",
-	},
-	"vi": {
-		0: "a Ã  áº£ Ã£ Ã¡ áº¡ Äƒ áº± áº³ áºµ áº¯ áº· Ã¢ áº§ áº© áº« áº¥ áº­ b c d Ä‘ e Ã¨ áº» áº½ Ã© áº¹ Ãª á» á»ƒ á»… áº¿ á»‡ f g h i Ã¬ á»‰ Ä© Ã­ á»‹ j k l m n o Ã² á» Ãµ Ã³ á» Ã´ á»“ á»• á»— á»‘ á»™ Æ¡ á» á»Ÿ á»¡ á»› á»£ p q r s t u Ã¹ á»§ Å© Ãº á»¥ Æ° á»« á»­ á»¯ á»© á»± v w x y á»³ á»· á»¹ Ã½ á»µ z",
-		4: "a b c d Ä‘ e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"vun": {
-		0: "a b c d e f g h i j k l m n o p r s t u v w y z",
-		3: "q x",
-		5: "A B C D E F G H I J K L M N O P R S T U V W Y Z",
-	},
-	"wae": {
-		0: "a Ã¡ Ã¤ Ã£ b c Ä d e Ã© f g h i Ã­ j k l m n o Ã³ Ã¶ Ãµ p q r s Å¡ t u Ãº Ã¼ Å© v w x y z",
-		3: "Ã  Äƒ Ã¢ Ã¥ Ä Ã¦ Ã§ Ã¨ Ä• Ãª Ã« Ä“ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã² Å Ã´ Ã¸ Å Å“ ÃŸ Ã¹ Å­ Ã» Å« Ã¿",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"wal": {
-		0: "áŸ áŽ áŽ áŽ‘ áŽ’ áŽ“ áŽ” áŽ• áŽ– áŽ— áŽ˜ áŽ™ áˆ€ áˆ€ áˆ áˆ‚ áˆƒ áˆ„ áˆ… áˆ† áˆ‡ áˆˆ áˆ‰ áˆŠ áˆ‹ áˆŒ áˆ áˆŽ áˆ â¶€ áˆ áˆ áˆ‘ áˆ’ áˆ“ áˆ” áˆ• áˆ– áˆ— áˆ˜ áˆ™ áˆš áˆ› áˆœ áˆ áˆž áˆŸ áŽ€ áŽ€ áŽ áŽ‚ áŽƒ â¶ áˆ  áˆ  áˆ¡ áˆ¢ áˆ£ áˆ¤ áˆ¥ áˆ¦ áˆ§ áˆ¨ áˆ© áˆª áˆ« áˆ¬ áˆ­ áˆ® áˆ¯ â¶‚ áˆ° áˆ° áˆ± áˆ² áˆ³ áˆ´ áˆµ áˆ¶ áˆ· â¶ƒ áˆ¸ áˆ¸ áˆ¹ áˆº áˆ» áˆ¼ áˆ½ áˆ¾ áˆ¿ â¶„ á‰€ á‰€ á‰ á‰‚ á‰ƒ á‰„ á‰… á‰† á‰‡ á‰ˆ á‰Š á‰Š á‰‹ á‰Œ á‰ á‰ á‰ á‰‘ á‰’ á‰“ á‰” á‰• á‰– á‰˜ á‰š á‰š á‰› á‰œ á‰ á‰  á‰  á‰¡ á‰¢ á‰£ á‰¤ á‰¥ á‰¦ á‰§ áŽ„ áŽ„ áŽ… áŽ† áŽ‡ â¶… á‰¨ á‰¨ á‰© á‰ª á‰« á‰¬ á‰­ á‰® á‰¯ á‰° á‰± á‰² á‰³ á‰´ á‰µ á‰¶ á‰· â¶† á‰¸ á‰¸ á‰¹ á‰º á‰» á‰¼ á‰½ á‰¾ á‰¿ â¶‡ áŠ€ áŠ€ áŠ áŠ‚ áŠƒ áŠ„ áŠ… áŠ† áŠ‡ áŠˆ áŠŠ áŠŠ áŠ‹ áŠŒ áŠ áŠ áŠ áŠ‘ áŠ’ áŠ“ áŠ” áŠ• áŠ– áŠ— â¶ˆ áŠ˜ áŠ˜ áŠ™ áŠš áŠ› áŠœ áŠ áŠž áŠŸ â¶‰ áŠ  áŠ  áŠ¡ áŠ¢ áŠ£ áŠ¤ áŠ¥ áŠ¦ áŠ§ â¶Š áŠ¨ áŠ¨ áŠ© áŠª áŠ« áŠ¬ áŠ­ áŠ® áŠ¯ áŠ° áŠ² áŠ² áŠ³ áŠ´ áŠµ áŠ¸ áŠ¸ áŠ¹ áŠº áŠ» áŠ¼ áŠ½ áŠ¾ á‹€ á‹‚ á‹‚ á‹ƒ á‹„ á‹… á‹ˆ á‹ˆ á‹‰ á‹Š á‹‹ á‹Œ á‹ á‹Ž á‹ á‹ á‹‘ á‹’ á‹“ á‹” á‹• á‹– á‹˜ á‹˜ á‹™ á‹š á‹› á‹œ á‹ á‹ž á‹Ÿ â¶‹ á‹  á‹  á‹¡ á‹¢ á‹£ á‹¤ á‹¥ á‹¦ á‹§ á‹¨ á‹© á‹ª á‹« á‹¬ á‹­ á‹® á‹¯ á‹° á‹± á‹² á‹³ á‹´ á‹µ á‹¶ á‹· â¶Œ á‹¸ á‹¸ á‹¹ á‹º á‹» á‹¼ á‹½ á‹¾ á‹¿ â¶ áŒ€ áŒ€ áŒ áŒ‚ áŒƒ áŒ„ áŒ… áŒ† áŒ‡ â¶Ž áŒˆ áŒˆ áŒ‰ áŒŠ áŒ‹ áŒŒ áŒ áŒŽ áŒ áŒ áŒ’ áŒ’ áŒ“ áŒ” áŒ• áŒ˜ áŒ˜ áŒ™ áŒš áŒ› áŒœ áŒ áŒž áŒŸ â¶“ â¶“ â¶” â¶• â¶– áŒ  áŒ  áŒ¡ áŒ¢ áŒ£ áŒ¤ áŒ¥ áŒ¦ áŒ§ â¶ áŒ¨ áŒ¨ áŒ© áŒª áŒ« áŒ¬ áŒ­ áŒ® áŒ¯ â¶ áŒ° áŒ° áŒ± áŒ² áŒ³ áŒ´ áŒµ áŒ¶ áŒ· â¶‘ áŒ¸ áŒ¸ áŒ¹ áŒº áŒ» áŒ¼ áŒ½ áŒ¾ áŒ¿ á€ á á‚ áƒ á„ á… á† á‡ áˆ á‰ áŠ á‹ áŒ á áŽ á áŽˆ áŽˆ áŽ‰ áŽŠ áŽ‹ á á á‘ á’ á“ á” á• á– á— áŽŒ áŽŒ áŽ áŽŽ áŽ â¶’ á˜ á˜ á™ áš â¶  â¶  â¶¡ â¶¢ â¶£ â¶¤ â¶¥ â¶¦ â¶¨ â¶¨ â¶© â¶ª â¶« â¶¬ â¶­ â¶® â¶° â¶° â¶± â¶² â¶³ â¶´ â¶µ â¶¶ â¶¸ â¶¸ â¶¹ â¶º â¶» â¶¼ â¶½ â¶¾ â·€ â·€ â· â·‚ â·ƒ â·„ â·… â·† â·ˆ â·ˆ â·‰ â·Š â·‹ â·Œ â· â·Ž â· â· â·‘ â·’ â·“ â·” â·• â·– â·˜ â·˜ â·™ â·š â·› â·œ â· â·ž",
-	},
-	"xh": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-	"xog": {
-		0: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"yav": {
-		0: "a Ã¡ Ã  Ã¢ ÇŽ Ä b c d e Ã© Ã¨ É› É›Ì É›Ì€ f h i Ã­ Ã¬ Ã® Ä« k l m mb n ny Å‹ Å‹g o Ã³ Ã² Ã´ Ç’ Å É” É”Ì É”Ì€ p s t u Ãº Ã¹ Ã» Ç” Å« v w y",
-		3: "g j q r x z",
-		5: "A B C D E Æ F H I K L M N ÅŠ O Æ† P S T U V W Y",
-	},
-	"yo": {
-		0: "a Ã¡ Ã  b d e Ã© Ã¨ áº¹ áº¹Ì áº¹Ì€ f g gb h i Ã­ Ã¬ j k l m n o Ã³ Ã² á» á»Ì á»Ì€ p r s á¹£ t u Ãº Ã¹ w y",
-		3: "c q v x z",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"zh": {
-		0: "ä¸€ ä¸ ä¸ƒ ä¸‡ ä¸‡ ä¸ˆ ä¸‰ ä¸Š ä¸‹ ä¸Œ ä¸ ä¸Ž ä¸“ ä¸” ä¸– ä¸˜ ä¸˜ ä¸™ ä¸š ä¸œ ä¸ ä¸¢ ä¸¤ ä¸¥ ä¸§ ä¸ª ä¸­ ä¸° ä¸² ä¸´ ä¸¸ ä¸¸ ä¸¹ ä¸º ä¸» ä¸½ ä¸¾ ä¹ƒ ä¹… ä¹ˆ ä¹‰ ä¹‹ ä¹‹ ä¹Œ ä¹ ä¹Ž ä¹ ä¹ ä¹” ä¹– ä¹˜ ä¹™ ä¹ ä¹Ÿ ä¹Ÿ ä¹  ä¹¡ ä¹¦ ä¹° ä¹± ä¹¾ äº† äºˆ äº‰ äº‹ äºŒ äºŽ äº äº‘ äº’ äº” äº• äºš äº› äº¡ äº¤ äº¦ äº¨ äº« äº¬ äº® äº² äºº äº¿ äº¿ ä»€ ä» ä»… ä»‡ ä»Š ä»‹ ä» ä»Ž ä»” ä»– ä»˜ ä»™ ä»£ ä»£ ä»¤ ä»¥ ä»ª ä»¬ ä»° ä»² ä»¶ ä»» ä»½ ä»¿ ä¼ ä¼Š ä¼ ä¼ ä¼ ä¼ ä¼‘ ä¼— ä¼™ ä¼š ä¼Ÿ ä¼  ä¼¤ ä¼¦ ä¼¯ ä¼° ä¼´ ä¼¸ ä¼¼ ä¼½ ä½† ä½ ä½ ä½Ž ä½ ä½ ä½‘ ä½“ ä½• ä½™ ä½› ä½œ ä½  ä½¤ ä½© ä½³ ä½¿ ä¾‹ ä¾› ä¾ ä¾  ä¾¦ ä¾¦ ä¾§ ä¾¨ ä¾¬ ä¾¯ ä¾µ ä¾¿ ä¿ƒ ä¿„ ä¿Š ä¿— ä¿ ä¿¡ ä¿© ä¿® ä¿± ä¿¾ å€ å€’ å€™ å€š å€Ÿ å€¦ å€¼ å€¾ å‡ åŒ å åš åœ å¥ å¶ å· å‚¨ å‚¬ å‚² å‚» åƒ åƒ§ å„’ å… å…ƒ å…ƒ å…„ å…… å…ˆ å…‰ å…‹ å… å…‘ å…” å…¥ å…¨ å…« å…« å…¬ å…­ å…® å…° å…± å…³ å…³ å…´ å…µ å…¶ å…· å…¸ å…¹ å…» å…» å…¼ å…½ å†… å†ˆ å† å†’ å†™ å†› å†œ å†  å†¬ å†° å†² å†· å‡† å‡Œ å‡ å‡  å‡¡ å‡¤ å‡­ å‡¯ å‡° å‡º å‡» å‡½ åˆ€ åˆ† åˆ‡ åˆŠ åˆ‘ åˆ’ åˆ— åˆ— åˆ˜ åˆ™ åˆš åˆ› åˆ åˆ¤ åˆ© åˆ« åˆ° åˆ¶ åˆ¶ åˆ· åˆ¸ åˆº åˆ» å‰‚ å‰ å‰‘ å‰§ å‰© å‰ª å‰¯ å‰² åŠ› åŠ åŠ åŠž åŠŸ åŠ  åŠ¡ åŠ£ åŠ¨ åŠ¨ åŠ© åŠª åŠ« åŠ± åŠ± åŠ² åŠ³ åŠ¿ å‹‡ å‹‰ å‹‹ å‹’ å‹¤ å‹¾ å‹¿ åŒ… åŒ† åŒˆ åŒ– åŒ— åŒ™ åŒ¹ åŒ¹ åŒº åŒ» å åƒ å‡ åˆ åŠ åŽ å å’ å“ å• å• å– å— åš å  å  å¡ å¢ å« å° å± å³ å· åŽ„ åŽ„ åŽ… åŽ† åŽ‰ åŽ‹ åŽ‹ åŽŒ åŽ åŽš åŽŸ åŽ» åŽ¿ å‚ åˆ åˆ å‰ åŠ å‹ åŒ å å‘ å” å– å– å— å˜ å™ å£ å£ å¤ å¥ å¦ å« å« å¬ å­ å¯ å° å² å³ å¶ å¶ å· å¸ å¹ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å‘ å“ å— å› å åŸ å¦ å§ å« åµ å¸ å¹ å» å¾ å‘€ å‘† å‘ˆ å‘Š å‘ å‘˜ å‘œ å‘¢ å‘¦ å‘¨ å‘³ å‘µ å‘¼ å‘½ å’Œ å’– å’¦ å’§ å’ª å’¬ å’¯ å’± å“€ å“ å“‡ å“‡ å“ˆ å“‰ å“ å“Ž å“Ÿ å“¥ å“¦ å“© å“ª å“­ å“² å”‰ å” å”¤ å”¬ å”® å”¯ å”± å”· å•† å•Š å•¡ å•¥ å•¦ å•ª å–€ å–‚ å–„ å–‡ å–Š å– å–” å–œ å– å–µ å–· å–» å—’ å—¨ å—¯ å˜‰ å˜› å˜´ å˜» å˜¿ å™¨ å›› å›ž å›  å›¢ å›­ å›° å›´ å›º å›½ å›¾ åœ† åœˆ åœŸ åœ£ åœ¨ åœ­ åœ° åœº åœ¾ å€ å‡ åŽ å å‘ å— åš åš å› åœ å¡ å¤ å¦ åª åž‚ åžƒ åž‹ åž’ åŸƒ åŸ‹ åŸŽ åŸ” åŸŸ åŸ¹ åŸº å ‚ å † å • å ¡ å ª å¡‘ å¡” å¡ž å¡« å¢ƒ å¢ž å¢¨ å£ å£¤ å£« å£® å£° å¤„ å¤‡ å¤ å¤ å¤• å¤– å¤š å¤œ å¤¥ å¤§ å¤© å¤© å¤ª å¤« å¤® å¤± å¤´ å¤· å¤· å¤¸ å¤¹ å¤º å¥‡ å¥‡ å¥ˆ å¥‰ å¥‹ å¥ å¥‘ å¥” å¥— å¥¥ å¥³ å¥´ å¥¶ å¥¹ å¥½ å¦‚ å¦‡ å¦ˆ å¦– å¦™ å¦¥ å¦¨ å¦® å¦¹ å¦» å§† å§Š å§‹ å§ å§‘ å§“ å§” å§¿ å¨ å¨ƒ å¨„ å¨˜ å¨œ å¨Ÿ å©† å©š åª’ å« å«Œ å«© å­ å­” å­• å­— å­— å­˜ å­™ å­œ å­ å­Ÿ å­£ å­¤ å­¦ å­© å® å®ƒ å®‡ å®‡ å®ˆ å®‰ å®‹ å®Œ å® å®— å®— å®˜ å®™ å®š å®› å®œ å® å®ž å®¡ å®¡ å®¢ å®£ å®¤ å®ª å®³ å®´ å®¶ å®¹ å®½ å®½ å®¾ å®¿ å¯‚ å¯„ å¯† å¯‡ å¯Œ å¯’ å¯ å¯ å¯ž å¯Ÿ å¯¡ å¯¨ å¯¸ å¯¹ å¯» å¯¼ å¯¿ å° å°„ å°† å°Š å° å°‘ å°” å°– å°˜ å°š å° å°¤ å°± å°º å°¼ å°¼ å°½ å°¾ å±€ å±€ å± å±‚ å±… å±‹ å± å±• å±ž å±  å±± å² å²‚ å²— å²˜ å²š å²› å²³ å²¸ å³¡ å³° å´‡ å´© å´´ å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·² å·´ å·· å¸ å¸ å¸‚ å¸ƒ å¸… å¸ˆ å¸Œ å¸ å¸• å¸ å¸¦ å¸­ å¸® å¸¸ å¸½ å¹… å¹• å¹² å¹² å¹³ å¹´ å¹¸ å¹» å¹» å¹¼ å¹½ å¹¿ åº† åºŠ åº åº“ åº“ åº” åº• åº— åº™ åºœ åºž åºŸ åº¦ åº§ åº­ åº· åº¸ å»‰ å»– å»¶ å»· å»º å¼€ å¼ƒ å¼„ å¼Š å¼ å¼• å¼— å¼˜ å¼Ÿ å¼  å¼¥ å¼¦ å¼¯ å¼± å¼¹ å½’ å½“ å½ å½¢ å½© å½¬ å½­ å½° å½± å½· å½¹ å½» å½¼ å¾€ å¾ å¾„ å¾… å¾ˆ å¾‹ å¾Œ å¾ å¾’ å¾— å¾ª å¾® å¾µ å¾· å¿ƒ å¿… å¿† å¿Œ å¿ å¿— å¿— å¿˜ å¿™ å¿  å¿§ å¿« å¿µ å¿½ æ€€ æ€ æ€Ž æ€’ æ€• æ€– æ€ æ€¡ æ€¥ æ€§ æ€¨ æ€ª æ€» æ‹ æ æ¢ æ¨ æ© æ­ æ¯ æ° æ¶ æ¼ æ‚„ æ‚‰ æ‚” æ‚Ÿ æ‚  æ‚£ æ‚¨ æ‚² æƒ… æƒ‘ æƒœ æƒ  æƒ§ æƒ¨ æƒ¯ æƒ³ æƒ¹ æ„ æ„ˆ æ„‰ æ„ æ„š æ„Ÿ æ„§ æ…ˆ æ…Ž æ…• æ…¢ æ…§ æ…° æ†¾ æ‡‚ æ‡’ æˆˆ æˆ æˆ æˆ æˆ‘ æˆ’ æˆ– æˆ˜ æˆª æˆ´ æˆ¿ æˆ¿ æ‰€ æ‰ æ‰‡ æ‰‹ æ‰ æ‰Ž æ‰‘ æ‰“ æ‰˜ æ‰£ æ‰§ æ‰© æ‰« æ‰« æ‰¬ æ‰­ æ‰® æ‰¯ æ‰¹ æ‰¾ æ‰¾ æ‰¿ æŠ€ æŠ„ æŠŠ æŠ‘ æŠ“ æŠ• æŠ— æŠ˜ æŠ¢ æŠ¤ æŠ¥ æŠ« æŠ¬ æŠ± æŠµ æŠ¹ æŠ½ æ‹… æ‹† æ‹‰ æ‹ æ‹’ æ‹” æ‹– æ‹˜ æ‹› æ‹œ æ‹Ÿ æ‹¥ æ‹¦ æ‹¨ æ‹© æ‹¬ æ‹³ æ‹· æ‹¼ æ‹¾ æ‹¿ æŒ æŒ‡ æŒ‰ æŒ‘ æŒ– æŒ æŒ¡ æŒ¤ æŒ¥ æŒª æŒ¯ æŒº æ‰ æ æ• æŸ æ¡ æ¢ æ· æŽˆ æŽ‰ æŽŒ æŽ’ æŽ¢ æŽ¥ æŽ§ æŽ§ æŽ¨ æŽ© æŽª æŽ¸ æ æ æ’ æ¡ æ´ æœ æž æ¬ æ­ æ‘„ æ‘† æ‘Š æ‘” æ‘˜ æ‘© æ‘¸ æ’’ æ’ž æ’­ æ“ æ“Ž æ“¦ æ”¯ æ”¶ æ”¹ æ”» æ”¾ æ”¿ æ•… æ•ˆ æ•Œ æ• æ•‘ æ•™ æ• æ•¢ æ•£ æ•¦ æ•¬ æ•° æ•² æ•´ æ–‡ æ–‹ æ– æ–— æ–™ æ–œ æ–¥ æ–­ æ–¯ æ–° æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—  æ—¢ æ—¥ æ—¥ æ—¦ æ—§ æ—¨ æ—© æ—­ æ—¶ æ—º æ˜‚ æ˜† æ˜Œ æ˜Ž æ˜ æ˜“ æ˜Ÿ æ˜  æ˜¥ æ˜¨ æ˜­ æ˜¯ æ˜¾ æ™ƒ æ™‹ æ™’ æ™“ æ™š æ™¨ æ™® æ™¯ æ™´ æ™¶ æ™º æš‚ æš‘ æš– æš— æš® æš´ æ›° æ›² æ›´ æ›¹ æ›¼ æ›¾ æ›¾ æ›¿ æœ€ æœˆ æœ‰ æœ‹ æœ æœ— æœ› æœ æœŸ æœ¨ æœª æœª æœ« æœ¬ æœ­ æœ¯ æœ± æœµ æ€ æ‚ æƒ æ‰ æŽ æ æ‘ æœ æŸ æ¡ æ¥ æ¨ æ¯ æ° æ¾ æ¿ æž æž æž— æžœ æž æž¢ æžª æž« æž¶ æŸ æŸ æŸ“ æŸ” æŸ¥ æŸ¬ æŸ¯ æŸ³ æŸ´ æ ‡ æ ‹ æ  æ ‘ æ ¡ æ · æ · æ ¸ æ ¹ æ ¼ æ¡ƒ æ¡† æ¡ˆ æ¡Œ æ¡‘ æ¡£ æ¡¥ æ¢ æ¢… æ¢¦ æ¢¯ æ¢° æ¢µ æ£€ æ£‰ æ£‹ æ£’ æ£š æ£® æ¤… æ¤ æ¤° æ¥š æ¥¼ æ¦‚ æ¦œ æ¨¡ æ¨± æª€ æ¬  æ¬  æ¬¡ æ¬¢ æ¬£ æ¬§ æ¬² æ¬º æ¬¾ æ­‰ æ­Œ æ­¢ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­ª æ­» æ®Š æ®‹ æ®µ æ¯… æ¯ æ¯ æ¯’ æ¯” æ¯• æ¯› æ¯« æ° æ°‘ æ°› æ°´ æ°¸ æ±‚ æ±‰ æ±— æ± æ±Ÿ æ±Ÿ æ±  æ±¡ æ±¤ æ±ª æ±¶ æ±½ æ²ƒ æ²ˆ æ²‰ æ²™ æ²Ÿ æ²§ æ²³ æ²¹ æ²» æ²¿ æ³‰ æ³Š æ³• æ³› æ³¡ æ³¡ æ³¢ æ³£ æ³¥ æ³¨ æ³° æ³³ æ³½ æ´‹ æ´— æ´› æ´ž æ´¥ æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ… æµ‹ æµŽ æµ‘ æµ“ æµ¦ æµ© æµª æµ® æµ´ æµ· æ¶… æ¶ˆ æ¶‰ æ¶› æ¶¨ æ¶¯ æ¶² æ¶µ æ·‹ æ·‘ æ·˜ æ·¡ æ·± æ·· æ·» æ¸… æ¸ æ¸¡ æ¸£ æ¸© æ¸¯ æ¸´ æ¸¸ æ¹– æ¹¾ æº æºœ æºª æ»‹ æ»‘ æ»¡ æ»¥ æ»¨ æ»´ æ¼‚ æ¼ æ¼” æ¼  æ¼« æ½˜ æ½œ æ½® æ¾Ž æ¾³ æ¿€ çŒ ç« ç­ ç¯ ç° çµ ç¿ ç‚‰ ç‚Ž ç‚® ç‚¸ ç‚¹ çƒ‚ çƒˆ çƒ¤ çƒ¦ çƒ§ çƒ­ ç„¦ ç„¶ ç…Œ ç…ž ç…§ ç…® ç†Š ç†Ÿ ç‡ƒ ç‡• çˆ† çˆª çˆ¬ çˆ± çˆµ çˆµ çˆ¶ çˆ· çˆ¸ çˆ½ ç‰‡ ç‰ˆ ç‰Œ ç‰™ ç‰› ç‰¡ ç‰¢ ç‰§ ç‰© ç‰² ç‰µ ç‰¹ ç‰º çŠ¯ çŠ¶ çŠ¹ ç‹‚ ç‹ ç‹— ç‹  ç‹¬ ç‹® ç‹± ç‹¼ çŒ› çŒœ çŒ® çŽ„ çŽ‡ çŽ‰ çŽ‹ çŽ› çŽ© çŽ« çŽ¯ çŽ° çŽ² çŽ» ç€ çŠ ç ç  ç­ çƒ ç† çŠ çª ç³ ç´ ç¼ ç‘™ ç‘œ ç‘ž ç‘Ÿ ç‘° ç‘¶ ç’ƒ ç“œ ç“¦ ç“¶ ç”˜ ç”š ç”œ ç”Ÿ ç”¨ ç”° ç”° ç”± ç”² ç”³ ç”µ ç”· ç”¸ ç”» ç•… ç•Œ ç•™ ç•¥ ç•ª ç–† ç– ç–‘ ç–— ç–¯ ç–² ç–¼ ç–¾ ç—… ç—• ç—› ç—´ ç™» ç™½ ç™¾ çš„ çš† çš‡ çš® ç›ˆ ç›Š ç›‘ ç›’ ç›– ç›˜ ç›› ç›Ÿ ç›® ç›´ ç›¸ ç›¼ ç›¾ çœ çœ‰ çœ‹ çœŸ çœ  çœ¼ ç› ç¡ ç£ çž§ çŸ› çŸ£ çŸ¥ çŸ­ çŸ³ çŸ¶ ç  ç ‚ ç  ç ” ç ´ ç¡€ ç¡• ç¡¬ ç¢ ç¢Ž ç¢— ç¢Ÿ ç¢§ ç¢° ç£ ç£… ç£¨ ç¤º ç¤¼ ç¤¾ ç¥– ç¥ ç¥ž ç¥¥ ç¥¨ ç¥¸ ç¦ ç¦… ç¦ ç§€ ç§ ç§‹ ç§ ç§‘ ç§’ ç§˜ ç§Ÿ ç§¤ ç§¦ ç§© ç§¯ ç§° ç§» ç¨€ ç¨‹ ç¨ ç¨£ ç¨³ ç¨¿ ç©† ç©¶ ç©· ç©¹ ç©º ç©¿ çª çª— çª ç«‹ ç«™ ç«ž ç«ž ç«Ÿ ç«  ç«¥ ç«¯ ç«¹ ç¬‘ ç¬” ç¬› ç¬¦ ç¬¨ ç¬¬ ç­‰ ç­‹ ç­” ç­– ç­¹ ç­¾ ç®€ ç®— ç®¡ ç®­ ç®± ç¯‡ ç¯® ç°¿ ç± ç±³ ç±» ç²‰ ç²’ ç²— ç²¤ ç²¹ ç²¾ ç³Š ç³• ç³– ç³Ÿ ç³» ç´  ç´¢ ç´§ ç´« ç´¯ ç¹ çº¢ çº¦ çº§ çºª çº¯ çº² çº³ çºµ çº· çº¸ çº½ ç»ƒ ç»„ ç»† ç»† ç»‡ ç»ˆ ç» ç» ç»“ ç»• ç»˜ ç»™ ç»œ ç»Ÿ ç»§ ç»© ç»ª ç»­ ç»´ ç»µ ç»¼ ç¼… ç¼“ ç¼– ç¼˜ ç¼  ç¼© ç¼´ ç¼¶ ç¼¸ ç¼º ç½ ç½• ç½— ç½š ç½¢ ç½ª ç½® ç½² ç¾Š ç¾Ž ç¾ž ç¾¤ ç¾¯ ç¾½ ç¿ ç¿… ç¿” ç¿˜ ç¿  ç¿° ç¿» ç¿¼ è€€ è€ è€ƒ è€… è€Œ è€ è€ è€— è€³ è€¶ èŠ èŒ è” èš èª è‚‰ è‚– è‚š è‚¡ è‚¤ è‚¥ è‚© è‚¯ è‚² èƒ èƒ† èƒŒ èƒŽ èƒ– èƒž èƒ¡ èƒ¶ èƒ¸ èƒ½ è„† è„‘ è„± è„¸ è…Š è… è…“ è…° è…¹ è…¾ è…¿ è‡‚ è‡£ è‡ª è‡­ è‡³ è‡´ èˆŒ èˆ èˆ’ èˆž èˆŸ èˆª èˆ¬ èˆ° èˆ¹ è‰¯ è‰² è‰º è‰¾ èŠ‚ èŠ’ èŠ èŠ¦ èŠ¬ èŠ­ èŠ± èŠ³ è‹ è‹ è‹— è‹¥ è‹¦ è‹± èŒ‚ èŒ¨ èŒ« èŒ¶ è‰ è’ è£ è¯ è· èŽ‰ èŽŽ èŽª èŽ« èŽ± èŽ² èŽ· èœ è© è² è„ è è¤ è¥ è§ è¨ è½ è‘— è‘› è‘¡ è’‚ è’‹ è’™ è“‰ è“ è“¬ è”‘ è”¡ è–„ è–ª è—‰ è— è—¤ è™Ž è™‘ è™« è™¹ è™½ è™¾ èš è›‡ è›‹ è›™ è›® èœ‚ èœœ è¶ èž èŸ¹ è ¢ è¡€ è¡Œ è¡— è¡¡ è¡£ è¡¥ è¡¨ è¢‹ è¢« è¢­ è£ è£‚ è£… è£• è£¤ è¥¿ è¦ è¦† è§ è§‚ è§„ è§† è§ˆ è§‰ è§’ è§£ è¨€ èª‰ èª“ è­¦ è®¡ è®¢ è®¤ è®¨ è®© è®­ è®­ è®® è®¯ è®° è®² è®· è®¸ è®º è®¾ è®¿ è¯ è¯„ è¯† è¯‰ è¯ è¯‘ è¯• è¯— è¯š è¯ è¯ž è¯¢ è¯¥ è¯¦ è¯­ è¯¯ è¯´ è¯· è¯¸ è¯º è¯» è¯¾ è° è°ƒ è°… è°ˆ è°Š è°‹ è°“ è°œ è°¢ è°¨ è°± è°· è±† è±¡ è±ª è²Œ è´ è´ è´ž è´Ÿ è´¡ è´¡ è´¢ è´£ è´¤ è´¥ è´§ è´§ è´¨ è´© è´ª è´­ è´¯ è´± è´´ è´µ è´¹ è´º è´¼ è´¾ èµ„ èµ‹ èµŒ èµ èµ èµ” èµ– èµš èµ› èµž èµ  èµ¢ èµ¤ èµ« èµ° èµµ èµ· è¶ è¶… è¶Š è¶‹ è¶£ è¶³ è·ƒ è·Œ è·‘ è· è·Ÿ è·¯ è·³ è¸ è¸¢ è¸© èº« èº² è½¦ è½¨ è½© è½¬ è½® è½® è½¯ è½° è½» è½½ è¾ƒ è¾… è¾† è¾ˆ è¾‰ è¾‘ è¾“ è¾› è¾ž è¾¨ è¾© è¾± è¾¹ è¾¾ è¿ è¿… è¿‡ è¿ˆ è¿Ž è¿ è¿‘ è¿” è¿˜ è¿™ è¿› è¿› è¿œ è¿ è¿ž è¿Ÿ è¿¦ è¿ª è¿« è¿° è¿· è¿½ é€€ é€ é€ƒ é€† é€‰ é€Š é€ é€ é€’ é€” é€š é€› é€ é€Ÿ é€  é€¢ é€¸ é€» é€¼ é‡ é é“ é— é­ é® éµ é¿ é‚€ é‚“ é‚£ é‚¦ é‚ª é‚® é‚± é‚» éƒŽ éƒ‘ éƒ¨ éƒ­ éƒ½ é„‚ é…‹ é… é…’ é…· é…¸ é†‰ é†’ é‡‡ é‡Š é‡Œ é‡Œ é‡ é‡Ž é‡ é‡‘ é’ˆ é’“ é’Ÿ é’¢ é’¦ é’± é’» é“ é“ƒ é“¢ é“­ é“¶ é”€ é” é”… é”‹ é”™ é”¡ é”¦ é”® é”º é•‡ é•œ é•­ é•¿ é—¨ é—ª é—­ é—® é—´ é—· é—¹ é—» é˜ é˜ é˜” é˜Ÿ é˜® é˜² é˜² é˜³ é˜´ é˜µ é˜¶ é˜» é˜¿ é™€ é™„ é™„ é™… é™† é™ˆ é™ é™ é™¢ é™¤ é™© é™ª é™µ é™µ é™¶ é™· éš† éš éš éš” éšœ éš¾ é›„ é›„ é›… é›† é›¨ é›ª é›¯ é›³ é›¶ é›· é›¾ éœ€ éœ‡ éœ éœ– éœ² éœ¸ éœ¹ é’ é– é™ éž é  é¢ é© é¼ éž‹ éž‘ éŸ¦ éŸ© éŸ³ é¡µ é¡¶ é¡¹ é¡¹ é¡º é¡» é¡½ é¡½ é¡¾ é¡¿ é¢„ é¢† é¢‡ é¢‘ é¢— é¢˜ é¢ é£Ž é£˜ é£™ é£ž é£Ÿ é¤ é¥­ é¥® é¥° é¥± é¥¼ é¦† é¦– é¦™ é¦¨ é©¬ é©± é©¶ é©» é©¾ éªŒ éª‘ éª— éªš éª¤ éª¨ é«˜ é¬¼ é­‚ é­… é­” é±¼ é² é²œ é¸Ÿ é¸£ é¸­ é¸¿ é¹… é¹¤ é¹° é¹¿ éº¦ éº» é»„ é»Ž é»‘ é»˜ é¼“ é¼  é¼» é½ é½¿ é¾„ é¾™ é¾Ÿ",
-		3: "ä¾£ å‚£ å‘ åŽ˜ å• å ¤ å¥Ž å·½ å½• æˆ· æ’¤ æ¥” æ¥  æ»• ç‘š ç”« ç›² ç¦„ ç²Ÿ çº¿ è„š é’¯ é“‚ é”‘ é•‘ é­",
-		5: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z",
-	},
-	"zh_Hant": {
-		0: "ä¸€ ä¸ ä¸ƒ ä¸ˆ ä¸ˆ ä¸‰ ä¸Š ä¸‹ ä¸Œ ä¸ ä¸” ä¸– ä¸˜ ä¸™ ä¸Ÿ ä¸¦ ä¸­ ä¸² ä¸¸ ä¸¹ ä¸» ä¹ƒ ä¹… ä¹ˆ ä¹‹ ä¹Ž ä¹ ä¹– ä¹˜ ä¹™ ä¹ ä¹Ÿ ä¹¾ äº‚ äº† äºˆ äº‹ äºŒ äºŽ äº‘ äº’ äº” äº• äº› äºž äº¡ äº¤ äº¦ äº¨ äº« äº¬ äº® äºº ä»€ ä» ä»‡ ä»Š ä»‹ ä» ä»” ä»– ä»˜ ä»™ ä»£ ä»£ ä»¤ ä»¥ ä»° ä»² ä»¶ ä»» ä»½ ä¼ ä¼Š ä¼ ä¼ ä¼‘ ä¼™ ä¼¯ ä¼° ä¼´ ä¼¸ ä¼¼ ä¼½ ä½† ä½ˆ ä½ ä½ ä½Ž ä½ ä½” ä½• ä½™ ä½› ä½œ ä½  ä½© ä½³ ä½¿ ä¾† ä¾‹ ä¾› ä¾ ä¾¯ ä¾µ ä¾¿ ä¿‚ ä¿‚ ä¿ƒ ä¿„ ä¿Š ä¿— ä¿ ä¿  ä¿¡ ä¿® ä¿± ä¿¾ å€‹ å€ å€‘ å€’ å€™ å€š å€Ÿ å€« å€¼ å‡ å‰ å åš åœ å¥ å´ å´ åµ å¶ å· å‚‘ å‚™ å‚¢ å‚£ å‚² å‚³ å‚· å‚» å‚¾ åƒ… åƒ åƒ‘ åƒ§ åƒ¹ å„€ å„„ å„’ å„˜ å„ª å… å…ƒ å…ƒ å…„ å…… å…‡ å…‡ å…ˆ å…‰ å…‹ å… å…’ å…” å…¥ å…§ å…§ å…¨ å…© å…« å…« å…¬ å…­ å…® å…± å…µ å…µ å…¶ å…· å…¸ å…¼ å†Š å† å†’ å†  å†¬ å†° å†· å‡† å‡Œ å‡ å‡¡ å‡° å‡± å‡º å‡½ åˆ€ åˆ† åˆ‡ åˆŠ åˆ— åˆ åˆ¤ åˆ¥ åˆ© åˆª åˆ° åˆ¶ åˆ· åˆº åˆ» å‰‡ å‰ å‰› å‰© å‰ª å‰¯ å‰² å‰µ åŠƒ åŠ‡ åŠ‰ åŠ åŠ› åŠŸ åŠ  åŠ© åŠ© åŠª åŠ« å‹ å‹‡ å‹‰ å‹’ å‹• å‹™ å‹ å‹ž å‹¢ å‹¤ å‹µ å‹¸ å‹¿ åŒ… åŒˆ åŒ– åŒ— åŒ¹ å€ å åƒ å‡ åˆ åŠ å’ å’ å“ å” å— åš å¡ å° å± å³ å· å» åŽ„ åŽ˜ åŽš åŽŸ åŽ­ åŽ² åŽ» åƒ åˆ åŠ å‹ å å” å– å— å£ å£ å¤ å¥ å¦ å« å« å¬ å­ å¯ å° å² å³ å¸ åƒ å„ åˆ åˆ å‰ åŠ åŒ åŒ å åŽ å å‘ å› å å åž åŸ å¦ å§ å« å³ åµ å¸ å¹ å¾ å‘€ å‘‚ å‘† å‘Š å‘¢ å‘¨ å‘³ å‘µ å‘¼ å‘½ å’Œ å’– å’¦ å’§ å’ª å’¬ å’± å“€ å“ å“‡ å“‡ å“ˆ å“‰ å“Ž å“¡ å“¥ å“¦ å“© å“ª å“­ å“² å”‰ å” å”¬ å”® å”¯ å”± å”· å”¸ å•† å•Š å• å•Ÿ å•¡ å•¥ å•¦ å•ª å–€ å–‚ å–„ å–‡ å–Š å–” å–œ å– å–¬ å–® å–µ å—Ž å—š å—¨ å—¯ å˜† å˜‰ å˜— å˜› å˜´ å˜» å˜¿ å™¨ å™´ åš‡ åš´ å›‰ å›› å›ž å›  å›° å›º åœˆ åœ‹ åœ åœ’ åœ“ åœ– åœ˜ åœœ åœŸ åœ¨ åœ­ åœ° åœ¾ å€ å‡ åŽ å å¡ å¤ å¦ åª åž‚ åžƒ åž‹ åŸƒ åŸŽ åŸ” åŸŸ åŸ· åŸ¹ åŸº å ‚ å … å † å ¡ å ª å ± å ´ å¡Š å¡” å¡— å¡ž å¡« å¡µ å¢ƒ å¢ž å¢¨ å¢® å£ å£“ å£˜ å£ž å£¢ å£« å£¯ å£½ å¤ å¤• å¤– å¤š å¤œ å¤  å¤¢ å¤¥ å¤§ å¤© å¤© å¤ª å¤« å¤® å¤± å¤· å¤¸ å¤¾ å¥‡ å¥‡ å¥ˆ å¥‰ å¥Ž å¥ å¥‘ å¥” å¥— å¥§ å¥ª å¥® å¥³ å¥´ å¥¶ å¥¹ å¥½ å¦‚ å¦™ å¦¥ å¦¨ å¦® å¦³ å¦¹ å¦» å§† å§Š å§‹ å§ å§‘ å§“ å§” å§¿ å¨ å¨ƒ å¨˜ å© å©† å©š å©¦ åª’ åª½ å«Œ å«© å­ å­” å­— å­˜ å­ å­Ÿ å­£ å­¤ å­© å­« å­¸ å®ƒ å®… å®‡ å®‡ å®ˆ å®‰ å®‹ å®Œ å® å®— å®— å®˜ å®™ å®š å®› å®œ å®¢ å®¢ å®£ å®¤ å®® å®³ å®¶ å®¹ å®¿ å¯‚ å¯„ å¯† å¯Œ å¯’ å¯ž å¯Ÿ å¯¢ å¯¦ å¯¦ å¯§ å¯¨ å¯© å¯« å¯¬ å¯® å¯¶ å° å°„ å°‡ å°ˆ å°Š å°‹ å° å° å°Ž å° å°‘ å°– å°š å°¤ å°± å°º å°¼ å°¾ å±€ å± å±… å±† å±‹ å± å±• å±  å±¤ å±¬ å±± å²¡ å²© å²¸ å³° å³¶ å³½ å´‡ å´™ å´´ åµ å¶º å· å·ž å·¡ å·¥ å·¥ å·¦ å·§ å·¨ å·« å·® å·± å·² å·´ å·· å¸‚ å¸ƒ å¸Œ å¸• å¸› å¸ å¸¥ å¸« å¸­ å¸³ å¸¶ å¸¸ å¸½ å¹… å¹• å¹£ å¹« å¹² å¹² å¹³ å¹´ å¹¸ å¹¹ å¹» å¹» å¹¼ å¹½ å¹¾ åº‡ åºŠ åº åº• åº— åºœ åº¦ åº§ åº« åº­ åº· åº¸ å»‰ å»– å»  å»¢ å»£ å»³ å»¶ å»· å»º å¼„ å¼ å¼• å¼— å¼˜ å¼Ÿ å¼¦ å¼± å¼µ å¼· å½ˆ å½Š å½Œ å½Ž å½ž å½¢ å½¥ å½© å½¬ å½­ å½° å½± å½¹ å½¼ å¾€ å¾ å¾… å¾ˆ å¾‹ å¾Œ å¾ å¾ å¾‘ å¾’ å¾— å¾ž å¾© å¾® å¾µ å¾· å¾¹ å¿ƒ å¿… å¿Œ å¿ å¿— å¿— å¿˜ å¿™ å¿  å¿« å¿µ å¿½ æ€Ž æ€’ æ€• æ€– æ€ æ€¡ æ€¥ æ€§ æ€¨ æ€ª æ† æ æ¢ æ¥ æ¨ æ© æ­ æ¯ æ° æ‚… æ‚‰ æ‚” æ‚Ÿ æ‚  æ‚¨ æ‚² æ‚¶ æƒ… æƒ‘ æƒœ æƒ  æƒ¡ æƒ± æƒ³ æƒ¹ æ„ æ„ˆ æ„‰ æ„ æ„š æ„› æ„Ÿ æ…ˆ æ…‹ æ…• æ…˜ æ…¢ æ…£ æ…§ æ…® æ…° æ…¶ æ…¾ æ†‚ æ† æ†‘ æ†² æ†¶ æ†¾ æ‡‚ æ‡‰ æ‡¶ æ‡· æ‡¼ æˆ€ æˆˆ æˆ æˆ æˆ‘ æˆ’ æˆ– æˆª æˆ° æˆ² æˆ´ æˆ¶ æˆ¿ æˆ¿ æ‰€ æ‰ æ‰‡ æ‰‹ æ‰ æ‰Ž æ‰“ æ‰˜ æ‰£ æ‰¥ æ‰­ æ‰¯ æ‰¹ æ‰¾ æ‰¾ æ‰¿ æŠ€ æŠ„ æŠŠ æŠ“ æŠ• æŠ— æŠ˜ æŠ« æŠ¬ æŠ± æŠµ æŠ¹ æŠ½ æ‹† æ‹‰ æ‹‹ æ‹ æ‹’ æ‹” æ‹– æ‹› æ‹œ æ‹¬ æ‹³ æ‹¼ æ‹¾ æ‹¿ æŒ æŒ‡ æŒ‰ æŒ‘ æŒ– æŒª æŒ¯ æŒº æ æ• æ¨ æ² æ· æŽƒ æŽˆ æŽ‰ æŽŒ æŽ’ æŽ› æŽ¡ æŽ¢ æŽ¥ æŽ§ æŽ¨ æŽª æ æ æ’ æš æ› æ¡ æ® æ´ æ æ– æœ æž æ¬ æ­ æ¶ æ‘˜ æ‘© æ‘¸ æ’ æ’’ æ’ž æ’£ æ’¥ æ’­ æ’¾ æ’¿ æ“ æ“‡ æ“Š æ“‹ æ“ æ“Ž æ“” æ“š æ“  æ“¦ æ“¬ æ“´ æ“º æ“¾ æ” æ”¯ æ”¶ æ”¹ æ”» æ”¾ æ”¿ æ•… æ•ˆ æ• æ• æ•‘ æ•— æ•— æ•˜ æ•™ æ• æ•¢ æ•£ æ•¦ æ•¬ æ•´ æ•µ æ•¸ æ–‡ æ– æ–— æ–™ æ–¯ æ–° æ–· æ–¹ æ–¼ æ–½ æ— æ—… æ—‹ æ— æ—— æ—¢ æ—¥ æ—¦ æ—© æ—­ æ—º æ˜‚ æ˜† æ˜‡ æ˜Œ æ˜Ž æ˜ æ˜“ æ˜Ÿ æ˜  æ˜¥ æ˜¨ æ˜­ æ˜¯ æ™‚ æ™‰ æ™’ æ™š æ™¨ æ™® æ™¯ æ™´ æ™¶ æ™º æš‘ æš– æš— æš« æš´ æ›† æ›‰ æ›° æ›² æ›´ æ›¸ æ›¼ æ›¾ æ›¾ æ›¿ æœ€ æœƒ æœˆ æœ‰ æœ‹ æœ æœ— æœ› æœ æœŸ æœ¨ æœª æœª æœ« æœ¬ æœ­ æœ± æœµ æ‰ æŽ æ æ‘ æœ æŸ æ¯ æ¯ æ° æ± æ¾ æ¿ æž æž— æžœ æž æž¶ æŸ æŸ æŸ“ æŸ” æŸ¥ æŸ¬ æŸ¯ æŸ³ æŸ´ æ ¡ æ ¸ æ ¹ æ ¼ æ¡ƒ æ¡ˆ æ¡Œ æ¡‘ æ¢ æ¢… æ¢ æ¢¨ æ¢¯ æ¢° æ¢µ æ£„ æ£‰ æ£‹ æ£’ æ£š æ£® æ¤… æ¤ æ¤° æ¥Š æ¥“ æ¥š æ¥­ æ¥µ æ¦‚ æ¦œ æ¦® æ§‹ æ§ æ¨‚ æ¨“ æ¨™ æ¨ž æ¨¡ æ¨£ æ¨¹ æ©‹ æ©Ÿ æ©« æª€ æª” æª¢ æ¬„ æ¬Š æ¬¡ æ¬£ æ¬² æ¬º æ¬½ æ¬¾ æ­‰ æ­Œ æ­ æ­¡ æ­¡ æ­¢ æ­£ æ­¤ æ­¥ æ­¦ æ­² æ­· æ­¸ æ­» æ®Š æ®˜ æ®µ æ®º æ®¼ æ¯€ æ¯… æ¯ æ¯ æ¯’ æ¯” æ¯› æ¯« æ° æ°‘ æ°£ æ°´ æ°¸ æ±‚ æ±— æ± æ±Ÿ æ±Ÿ æ±  æ±¡ æ±ª æ±¶ æ±º æ±½ æ²ƒ æ²ˆ æ²‰ æ²’ æ²– æ²™ æ²³ æ²¹ æ²» æ²¿ æ³ æ³‰ æ³Š æ³• æ³¡ æ³¢ æ³¥ æ³¨ æ³° æ³³ æ´‹ æ´— æ´› æ´ž æ´© æ´ª æ´² æ´» æ´½ æ´¾ æµ æµ¦ æµ© æµª æµ® æµ· æ¶‡ æ¶‡ æ¶ˆ æ¶‰ æ¶¯ æ¶² æ¶µ æ¶¼ æ·‘ æ·š æ·¡ æ·¨ æ·± æ·· æ·º æ¸… æ¸› æ¸¡ æ¸¬ æ¸¯ æ¸¸ æ¹– æ¹¯ æº æº– æº æºª æº« æ»„ æ»… æ»‹ æ»‘ æ»´ æ»¾ æ»¿ æ¼‚ æ¼ æ¼” æ¼  æ¼¢ æ¼« æ¼² æ¼¸ æ½” æ½˜ æ½› æ½® æ¾¤ æ¾³ æ¿€ æ¿ƒ æ¿Ÿ æ¿¤ æ¿« æ¿± çŒ ç£ ç« ç° ç½ ç‚Ž ç‚® ç‚¸ ç‚º çƒˆ çƒ çƒ¤ ç„¡ ç„¦ ç„¶ ç…™ ç…ž ç…§ ç…© ç†Š ç†Ÿ ç†± ç‡ƒ ç‡ˆ ç‡’ ç‡Ÿ çˆ† çˆ çˆ› çˆª çˆ¬ çˆ­ çˆµ çˆ¶ çˆ¸ çˆº çˆ½ çˆ¾ ç‰† ç‰† ç‰‡ ç‰ˆ ç‰Œ ç‰™ ç‰› ç‰  ç‰§ ç‰© ç‰² ç‰¹ ç‰½ çŠ§ çŠ¯ ç‹€ ç‹‚ ç‹ ç‹— ç‹  ç‹¼ çŒ› çŒœ çŒ¶ ç„ ç… çŽ ç¨ ç² ç¸ ç» çŽ„ çŽ‡ çŽ‰ çŽ‹ çŽ© çŽ« çŽ² çŽ» çŠ ç ç  ç­ ç¾ çƒ ç† ç‰ çª ç´ ç‘™ ç‘œ ç‘ž ç‘Ÿ ç‘¤ ç‘ª ç‘° ç’° ç“œ ç“¦ ç“¶ ç”˜ ç”š ç”œ ç”Ÿ ç”¢ ç”¨ ç”° ç”° ç”± ç”² ç”³ ç”· ç”¸ ç•Œ ç•™ ç•¢ ç•¥ ç•ª ç•« ç•° ç•¶ ç–† ç– ç–‘ ç–¼ ç—… ç—• ç—› ç—´ ç˜‹ ç™‚ ç™¡ ç™» ç™» ç™¼ ç™½ ç™¾ çš„ çš† çš‡ çš® ç›ƒ ç›Š ç›› ç›œ ç›Ÿ ç›¡ ç›£ ç›¤ ç›§ ç›® ç›² ç›´ ç›¸ ç›¼ ç›¾ çœ çœ‰ çœ‹ çœŸ çœ  çœ¼ çœ¾ ç› ç¡ ç£ çž§ çž­ çŸ› çŸ£ çŸ¥ çŸ­ çŸ³ ç ‚ ç  ç ” ç ² ç ´ ç¡¬ ç¢Ž ç¢— ç¢Ÿ ç¢§ ç¢© ç¢° ç¢º ç¢¼ ç£ ç£¨ ç£¯ ç¤Ž ç¤™ ç¤º ç¤¾ ç¥• ç¥– ç¥ ç¥ž ç¥¥ ç¥¨ ç¦ ç¦ ç¦ ç¦ª ç¦® ç§€ ç§ ç§‹ ç§‘ ç§’ ç§˜ ç§Ÿ ç§¤ ç§¦ ç§» ç¨… ç¨‹ ç¨ ç¨® ç¨± ç¨¿ ç©† ç©Œ ç© ç©© ç©¶ ç©¹ ç©º ç©¿ çª çª— çª© çª® ç«‹ ç«™ ç«Ÿ ç«  ç«¥ ç«¯ ç«¶ ç«¹ ç¬‘ ç¬› ç¬¦ ç¬¨ ç¬¬ ç­† ç­‰ ç­‹ ç­” ç­– ç®€ ç®— ç®¡ ç®­ ç®± ç¯€ ç¯„ ç¯‡ ç¯‰ ç°¡ ç°« ç°½ ç°¿ ç±ƒ ç±Œ ç± ç±³ ç²‰ ç²— ç²µ ç²¾ ç³Š ç³• ç³Ÿ ç³» ç³¾ ç´€ ç´„ ç´… ç´ ç´ ç´” ç´™ ç´™ ç´š ç´› ç´  ç´¢ ç´« ç´¯ ç´° ç´¹ çµ‚ çµ„ çµ çµ• çµ¡ çµ¦ çµ± çµ² ç¶“ ç¶œ ç¶  ç¶­ ç¶± ç¶² ç·Š ç·’ ç·š ç·£ ç·¨ ç·© ç·¬ ç·¯ ç·´ ç¸£ ç¸® ç¸± ç¸½ ç¸¾ ç¹ ç¹† ç¹” ç¹ž ç¹ª ç¹³ ç¹¼ çºŒ ç¼¸ ç¼º ç½• ç½ª ç½® ç½° ç½² ç½µ ç½· ç¾… ç¾Š ç¾Ž ç¾ž ç¾¤ ç¾© ç¾½ ç¿ ç¿’ ç¿” ç¿° ç¿¹ ç¿» ç¿¼ è€€ è€ è€ƒ è€… è€Œ è€ è€ è€— è€³ è€¶ èŠ è– èš èž è¯ è° è² è· è½ è‚‰ è‚š è‚¡ è‚¥ è‚© è‚¯ è‚² èƒŒ èƒŽ èƒ– èƒž èƒ¡ èƒ¸ èƒ½ è„† è„« è…“ è…” è…¦ è…° è…³ è…¿ è†½ è‡‰ è‡˜ è‡£ è‡¥ è‡¨ è‡ª è‡­ è‡³ è‡´ è‡º èˆ‡ èˆ‡ èˆˆ èˆ‰ èˆŠ èˆŒ èˆ èˆ’ èˆž èˆŸ èˆª èˆ¬ èˆ¹ è‰¦ è‰¯ è‰² è‰¾ èŠ èŠ¬ èŠ± èŠ³ è‹¥ è‹¦ è‹± èŒ… èŒ« èŒ² èŒ¶ è‰ è’ è· èŽ‰ èŽŠ èŽŽ èŽ« èœ è© è¯ è² è„ èŠ è¬ è½ è‘‰ è‘— è‘› è‘¡ è’‚ è’™ è’² è’¼ è“‹ è“® è”• è”¡ è”£ è•­ è–„ è–¦ è–© è–ª è—‰ è— è— è— è—¤ è—¥ è˜† è˜‡ è˜­ è™Ž è™• è™› è™Ÿ è™§ è›‹ è›™ èœ‚ èœœ è¶ èž èž¢ èŸ² èŸ¹ è  è » è¡€ è¡Œ è¡“ è¡— è¡› è¡ è¡¡ è¡£ è¡¨ è¢‹ è¢« è£ è£‚ è£• è£œ è£ è£¡ è£½ è¤‡ è¤² è¥¿ è¦ è¦† è¦‹ è¦ è¦– è¦ª è¦º è¦½ è§€ è§’ è§£ è§¸ è¨€ è¨‚ è¨ˆ è¨Š è¨Ž è¨“ è¨— è¨˜ è¨¥ è¨ª è¨­ è¨± è¨´ è¨» è¨¼ è©• è©ž è©¢ è©¦ è©© è©± è©± è©² è©³ èª‡ èªŒ èª èª“ èª• èªž èª  èª¤ èªª èª° èª² èª¼ èª¿ è«‡ è«‹ è«’ è«– è«¸ è«º è«¾ è¬€ è¬‚ è¬› è¬ è­‰ è­˜ è­œ è­¦ è­¯ è­° è­· è­½ è®€ è®Š è®“ è®š è°· è±† è±ˆ è± è±¡ è±ª è±¬ è²Œ è²“ è² è²ž è²  è²  è²¡ è²¢ è²¨ è²ª è²ª è²« è²¬ è²´ è²· è²» è²¼ è³€ è³‡ è³ˆ è³“ è³œ è³ž è³¢ è³¢ è³£ è³¤ è³¦ è³ª è³­ è³´ è³º è³¼ è³½ è´ˆ è´Š è´ èµ¤ èµ« èµ° èµ· è¶… è¶Š è¶• è¶™ è¶£ è¶¨ è¶³ è·Œ è·Ž è·‘ è· è·Ÿ è·¡ è·¯ è·³ è¸ è¸¢ è¹Ÿ è¹¤ èº èº« èº² è»Š è»Œ è» è»’ è»Ÿ è¼ƒ è¼‰ è¼” è¼• è¼› è¼ è¼© è¼ª è¼¯ è¼¸ è½‰ è½Ÿ è¾› è¾¦ è¾¨ è¾­ è¾¯ è¾± è¾² è¿… è¿Ž è¿‘ è¿¦ è¿ª è¿« è¿° è¿´ è¿· è¿½ é€€ é€ é€ƒ é€† é€ é€ é€” é€™ é€™ é€š é€› é€ é€Ÿ é€  é€¢ é€£ é€± é€² é€¸ é€¼ é‡ éŠ é‹ é éŽ é“ é“ é” é• é™ éœ é  é© é­ é® é² é· é¸ éº é¿ é¿ é‚€ é‚ é‚„ é‚Š é‚ é‚£ é‚¦ é‚ª é‚± éƒŽ éƒ¨ éƒ­ éƒµ éƒ½ é„‚ é„‰ é„­ é„° é… é…’ é…· é…¸ é†‰ é†’ é†œ é†« é‡‡ é‡‹ é‡‹ é‡Œ é‡ é‡Ž é‡ é‡‘ é‡ é‡£ éˆ´ éŠ€ éŠ– éŠ˜ éŠ³ éŠ· é‹’ é‹¼ éŒ„ éŒ¢ éŒ¦ éŒ« éŒ¯ é‹ éµ é¾ éŽŠ éŽ– éŽ® é¡ é˜ éµ é‘‘ é•· é–€ é–ƒ é–‰ é–‹ é–’ é–“ é–£ é–± é—† é—Š é— é—œ é—¡ é˜² é˜» é˜¿ é™€ é™„ é™ é™ é™¢ é™¢ é™£ é™¤ é™ª é™° é™³ é™µ é™µ é™¶ é™· é™¸ é™½ éš† éšŠ éšŽ éš” éš› éšœ éš¨ éšª éš± éš» é›„ é›„ é›… é›† é›– é›™ é›œ é›ž é›¢ é›£ é›¨ é›ª é›² é›¶ é›· é›» éœ€ éœ‡ éœ éœ§ éœ² éœ¸ éœ¹ é‚ éˆ é’ é– éœ éž é  é¢ é© é¼ éž‹ éŸƒ éŸ‹ éŸ“ éŸ³ éŸ» éŸ¿ é  é ‚ é … é † é ˆ é  é ‘ é “ é — é ˜ é ­ é » é¡† é¡Œ é¡ é¡ é¡˜ é¡ž é¡§ é¡¯ é¢¨ é£„ é£› é£Ÿ é£¯ é£² é£½ é£¾ é¤… é¤Š é¤ é¤˜ é¤¨ é¦– é¦™ é¦¬ é§ é§• é§› é¨Ž é¨™ é¨· é©… é©— é©š éª¨ é«” é«˜ é«® é¬† é¬¥ é¬§ é¬± é¬¼ é­ é­‚ é­… é­” é­š é­¯ é®® é³¥ é³³ é³´ é´» éµ é·¹ é¹¿ éº— éº¥ éºµ éº» éº¼ é»ƒ é»Ž é»‘ é»˜ é»ž é»¨ é¼“ é¼  é¼» é½Š é½‹ é½’ é½¡ é¾ é¾œ",
-		3: "ä¼ ä¾¶ å…Œ å…¹ åˆ« å‹³ å‘ å  å¶ å ¤ å¢Ž å¥¥ å­œ å³‡ å·½ å½ æ¥” æ¸¾ ç‡¦ ç‹„ ç³ ç‘š ç”« ç¤ èŠ’ è‹— èŒ¨ èš© èœ€ éš´",
-		5: "ä¸€ ä¸ ä¸ˆ ä¸ ä¸” ä¸ž ä¸¦ ä¸² ä¹˜ ä¹¾ äº‚ äº­ å‚€ åƒŽ åƒµ å„ å„Ÿ å„³ å„· å„» å¢ åš´ å›Œ å›‘ å»³",
-	},
-	"zu": {
-		0: "a b bh c ch d dl dy e f g gc gq gx h hh hl i j k kh kl kp l m n nc ngc ngq ngx nhl nk nkc nkq nkx nq ntsh nx ny o p ph q qh r rh s sh t th tl ts tsh u v w x xh y z",
-		3: "Ã¡ Ã  Äƒ Ã¢ Ã¥ Ã¤ Ã£ Ä Ã¦ Ã§ Ã© Ã¨ Ä• Ãª Ã« Ä“ Ã­ Ã¬ Ä­ Ã® Ã¯ Ä« Ã± Ã³ Ã² Å Ã´ Ã¶ Ã¸ Å Å“ Ãº Ã¹ Å­ Ã» Ã¼ Å« Ã¿",
-		4: "a b c d e f g h i j k l m n o p q r s t u v w x y z",
-	},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/colcmp.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,528 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"bytes"
-	"exp/norm"
-	"flag"
-	"fmt"
-	"io"
-	"log"
-	"os"
-	"runtime/pprof"
-	"sort"
-	"strconv"
-	"strings"
-	"text/template"
-	"time"
-)
-
-var (
-	doNorm  = flag.Bool("norm", false, "normalize input strings")
-	cases   = flag.Bool("case", false, "generate case variants")
-	verbose = flag.Bool("verbose", false, "print results")
-	debug   = flag.Bool("debug", false, "output debug information")
-	locale  = flag.String("locale", "en_US", "the locale to use. May be a comma-separated list for some commands.")
-	col     = flag.String("col", "go", "collator to test")
-	gold    = flag.String("gold", "go", "collator used as the gold standard")
-	usecmp  = flag.Bool("usecmp", false,
-		`use comparison instead of sort keys when sorting.  Must be "test", "gold" or "both"`)
-	cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
-	exclude    = flag.String("exclude", "", "exclude errors that contain any of the characters")
-	limit      = flag.Int("limit", 5000000, "maximum number of samples to generate for one run")
-)
-
-func failOnError(err error) {
-	if err != nil {
-		log.Panic(err)
-	}
-}
-
-// Test holds test data for testing a locale-collator pair.
-// Test also provides functionality that is commonly used by the various commands.
-type Test struct {
-	ctxt    *Context
-	Name    string
-	Locale  string
-	ColName string
-
-	Col        Collator
-	UseCompare bool
-
-	Input    []Input
-	Duration time.Duration
-
-	start time.Time
-	msg   string
-	count int
-}
-
-func (t *Test) clear() {
-	t.Col = nil
-	t.Input = nil
-}
-
-const (
-	msgGeneratingInput = "generating input"
-	msgGeneratingKeys  = "generating keys"
-	msgSorting         = "sorting"
-)
-
-var lastLen = 0
-
-func (t *Test) SetStatus(msg string) {
-	if *debug || *verbose {
-		fmt.Printf("%s: %s...\n", t.Name, msg)
-	} else if t.ctxt.out != nil {
-		fmt.Fprint(t.ctxt.out, strings.Repeat(" ", lastLen))
-		fmt.Fprint(t.ctxt.out, strings.Repeat("\b", lastLen))
-		fmt.Fprint(t.ctxt.out, msg, "...")
-		lastLen = len(msg) + 3
-		fmt.Fprint(t.ctxt.out, strings.Repeat("\b", lastLen))
-	}
-}
-
-// Start is used by commands to signal the start of an operation.
-func (t *Test) Start(msg string) {
-	t.SetStatus(msg)
-	t.count = 0
-	t.msg = msg
-	t.start = time.Now()
-}
-
-// Stop is used by commands to signal the end of an operation.
-func (t *Test) Stop() (time.Duration, int) {
-	d := time.Now().Sub(t.start)
-	t.Duration += d
-	if *debug || *verbose {
-		fmt.Printf("%s: %s done. (%.3fs /%dK ops)\n", t.Name, t.msg, d.Seconds(), t.count/1000)
-	}
-	return d, t.count
-}
-
-// generateKeys generates sort keys for all the inputs.
-func (t *Test) generateKeys() {
-	for i, s := range t.Input {
-		b := t.Col.Key(s)
-		t.Input[i].key = b
-		if *debug {
-			fmt.Printf("%s (%X): %X\n", string(s.UTF8), s.UTF16, b)
-		}
-	}
-}
-
-// Sort sorts the inputs. It generates sort keys if this is required by the
-// chosen sort method.
-func (t *Test) Sort() (tkey, tsort time.Duration, nkey, nsort int) {
-	if *cpuprofile != "" {
-		f, err := os.Create(*cpuprofile)
-		failOnError(err)
-		pprof.StartCPUProfile(f)
-		defer pprof.StopCPUProfile()
-	}
-	if t.UseCompare || t.Col.Key(t.Input[0]) == nil {
-		t.Start(msgSorting)
-		sort.Sort(&testCompare{*t})
-		tsort, nsort = t.Stop()
-	} else {
-		t.Start(msgGeneratingKeys)
-		t.generateKeys()
-		t.count = len(t.Input)
-		tkey, nkey = t.Stop()
-		t.Start(msgSorting)
-		sort.Sort(t)
-		tsort, nsort = t.Stop()
-	}
-	return
-}
-
-func (t *Test) Swap(a, b int) {
-	t.Input[a], t.Input[b] = t.Input[b], t.Input[a]
-}
-
-func (t *Test) Less(a, b int) bool {
-	t.count++
-	return bytes.Compare(t.Input[a].key, t.Input[b].key) == -1
-}
-
-func (t Test) Len() int {
-	return len(t.Input)
-}
-
-type testCompare struct {
-	Test
-}
-
-func (t *testCompare) Less(a, b int) bool {
-	t.count++
-	return t.Col.Compare(t.Input[a], t.Input[b]) == -1
-}
-
-type testRestore struct {
-	Test
-}
-
-func (t *testRestore) Less(a, b int) bool {
-	return t.Input[a].index < t.Input[b].index
-}
-
-// GenerateInput generates input phrases for the locale tested by t.
-func (t *Test) GenerateInput() {
-	t.Input = nil
-	if t.ctxt.lastLocale != t.Locale {
-		gen := phraseGenerator{}
-		gen.init(t.Locale)
-		t.SetStatus(msgGeneratingInput)
-		t.ctxt.lastInput = nil // allow the previous value to be garbage collected.
-		t.Input = gen.generate(*doNorm)
-		t.ctxt.lastInput = t.Input
-		t.ctxt.lastLocale = t.Locale
-	} else {
-		t.Input = t.ctxt.lastInput
-		for i := range t.Input {
-			t.Input[i].key = nil
-		}
-		sort.Sort(&testRestore{*t})
-	}
-}
-
-// Context holds all tests and settings translated from command line options.
-type Context struct {
-	test []*Test
-	last *Test
-
-	lastLocale string
-	lastInput  []Input
-
-	out io.Writer
-}
-
-func (ts *Context) Printf(format string, a ...interface{}) {
-	ts.assertBuf()
-	fmt.Fprintf(ts.out, format, a...)
-}
-
-func (ts *Context) Print(a ...interface{}) {
-	ts.assertBuf()
-	fmt.Fprint(ts.out, a...)
-}
-
-// assertBuf sets up an io.Writer for ouput, if it doesn't already exist.
-// In debug and verbose mode, output is buffered so that the regular output
-// will not interfere with the additional output.  Otherwise, output is
-// written directly to stdout for a more responsive feel.
-func (ts *Context) assertBuf() {
-	if ts.out != nil {
-		return
-	}
-	if *debug || *verbose {
-		ts.out = &bytes.Buffer{}
-	} else {
-		ts.out = os.Stdout
-	}
-}
-
-// flush flushes the contents of ts.out to stdout, if it is not stdout already.
-func (ts *Context) flush() {
-	if ts.out != nil {
-		if _, ok := ts.out.(io.ReadCloser); !ok {
-			io.Copy(os.Stdout, ts.out.(io.Reader))
-		}
-	}
-}
-
-// parseTests creates all tests from command lines and returns
-// a Context to hold them.
-func parseTests() *Context {
-	ctxt := &Context{}
-	colls := strings.Split(*col, ",")
-	for _, loc := range strings.Split(*locale, ",") {
-		loc = strings.TrimSpace(loc)
-		for _, name := range colls {
-			name = strings.TrimSpace(name)
-			col := getCollator(name, loc)
-			ctxt.test = append(ctxt.test, &Test{
-				ctxt:       ctxt,
-				Locale:     loc,
-				ColName:    name,
-				UseCompare: *usecmp,
-				Col:        col,
-			})
-		}
-	}
-	return ctxt
-}
-
-func (c *Context) Len() int {
-	return len(c.test)
-}
-
-func (c *Context) Test(i int) *Test {
-	if c.last != nil {
-		c.last.clear()
-	}
-	c.last = c.test[i]
-	return c.last
-}
-
-func parseInput(args []string) []Input {
-	input := []Input{}
-	for _, s := range args {
-		rs := []rune{}
-		for len(s) > 0 {
-			var r rune
-			r, _, s, _ = strconv.UnquoteChar(s, '\'')
-			rs = append(rs, r)
-		}
-		s = string(rs)
-		if *doNorm {
-			s = norm.NFC.String(s)
-		}
-		input = append(input, makeInputString(s))
-	}
-	return input
-}
-
-// A Command is an implementation of a colcmp command.
-type Command struct {
-	Run   func(cmd *Context, args []string)
-	Usage string
-	Short string
-	Long  string
-}
-
-func (cmd Command) Name() string {
-	return strings.SplitN(cmd.Usage, " ", 2)[0]
-}
-
-var commands = []*Command{
-	cmdSort,
-	cmdBench,
-	cmdRegress,
-}
-
-const sortHelp = `
-Sort sorts a given list of strings.  Strings are separated by whitespace.
-`
-
-var cmdSort = &Command{
-	Run:   runSort,
-	Usage: "sort <string>*",
-	Short: "sort a given list of strings",
-	Long:  sortHelp,
-}
-
-func runSort(ctxt *Context, args []string) {
-	input := parseInput(args)
-	if len(input) == 0 {
-		log.Fatalf("Nothing to sort.")
-	}
-	if ctxt.Len() > 1 {
-		ctxt.Print("COLL  LOCALE RESULT\n")
-	}
-	for i := 0; i < ctxt.Len(); i++ {
-		t := ctxt.Test(i)
-		t.Input = append(t.Input, input...)
-		t.Sort()
-		if ctxt.Len() > 1 {
-			ctxt.Printf("%-5s %-5s  ", t.ColName, t.Locale)
-		}
-		for _, s := range t.Input {
-			ctxt.Print(string(s.UTF8), " ")
-		}
-		ctxt.Print("\n")
-	}
-}
-
-const benchHelp = `
-Bench runs a benchmark for the given list of collator implementations.
-If no collator implementations are given, the go collator will be used.
-`
-
-var cmdBench = &Command{
-	Run:   runBench,
-	Usage: "bench",
-	Short: "benchmark a given list of collator implementations",
-	Long:  benchHelp,
-}
-
-func runBench(ctxt *Context, args []string) {
-	ctxt.Printf("%-7s %-5s %-6s %-24s %-24s %-5s %s\n", "LOCALE", "COLL", "N", "KEYS", "SORT", "AVGLN", "TOTAL")
-	for i := 0; i < ctxt.Len(); i++ {
-		t := ctxt.Test(i)
-		ctxt.Printf("%-7s %-5s ", t.Locale, t.ColName)
-		t.GenerateInput()
-		ctxt.Printf("%-6s ", fmt.Sprintf("%dK", t.Len()/1000))
-		tkey, tsort, nkey, nsort := t.Sort()
-		p := func(dur time.Duration, n int) {
-			s := ""
-			if dur > 0 {
-				s = fmt.Sprintf("%6.3fs ", dur.Seconds())
-				if n > 0 {
-					s += fmt.Sprintf("%15s", fmt.Sprintf("(%4.2f ns/op)", float64(dur)/float64(n)))
-				}
-			}
-			ctxt.Printf("%-24s ", s)
-		}
-		p(tkey, nkey)
-		p(tsort, nsort)
-
-		total := 0
-		for _, s := range t.Input {
-			total += len(s.key)
-		}
-		ctxt.Printf("%-5d ", total/t.Len())
-		ctxt.Printf("%6.3fs\n", t.Duration.Seconds())
-		if *debug {
-			for _, s := range t.Input {
-				fmt.Print(string(s.UTF8), " ")
-			}
-			fmt.Println()
-		}
-	}
-}
-
-const regressHelp = `
-Regress runs a monkey test by comparing the results of randomly generated tests
-between two implementations of a collator. The user may optionally pass a list
-of strings to regress against instead of the default test set.
-`
-
-var cmdRegress = &Command{
-	Run:   runRegress,
-	Usage: "regress -gold=<col> -test=<col> [string]*",
-	Short: "run a monkey test between two collators",
-	Long:  regressHelp,
-}
-
-const failedKeyCompare = `
-%s:%d: incorrect comparison result for input:
-    a:   %q (%.4X)
-    key: %s
-    b:   %q (%.4X)
-    key: %s
-    Compare(a, b) = %d; want %d.
-
-  gold keys:
-	a:   %s
-	b:   %s
-`
-
-const failedCompare = `
-%s:%d: incorrect comparison result for input:
-    a:   %q (%.4X)
-    b:   %q (%.4X)
-    Compare(a, b) = %d; want %d.
-`
-
-func keyStr(b []byte) string {
-	buf := &bytes.Buffer{}
-	for _, v := range b {
-		fmt.Fprintf(buf, "%.2X ", v)
-	}
-	return buf.String()
-}
-
-func runRegress(ctxt *Context, args []string) {
-	input := parseInput(args)
-	for i := 0; i < ctxt.Len(); i++ {
-		t := ctxt.Test(i)
-		if len(input) > 0 {
-			t.Input = append(t.Input, input...)
-		} else {
-			t.GenerateInput()
-		}
-		t.Sort()
-		count := 0
-		gold := getCollator(*gold, t.Locale)
-		for i := 1; i < len(t.Input); i++ {
-			ia := t.Input[i-1]
-			ib := t.Input[i]
-			if bytes.IndexAny(ib.UTF8, *exclude) != -1 {
-				i++
-				continue
-			}
-			if bytes.IndexAny(ia.UTF8, *exclude) != -1 {
-				continue
-			}
-			goldCmp := gold.Compare(ia, ib)
-			if cmp := bytes.Compare(ia.key, ib.key); cmp != goldCmp {
-				count++
-				a := string(ia.UTF8)
-				b := string(ib.UTF8)
-				fmt.Printf(failedKeyCompare, t.Locale, i-1, a, []rune(a), keyStr(ia.key), b, []rune(b), keyStr(ib.key), cmp, goldCmp, keyStr(gold.Key(ia)), keyStr(gold.Key(ib)))
-			} else if cmp := t.Col.Compare(ia, ib); cmp != goldCmp {
-				count++
-				a := string(ia.UTF8)
-				b := string(ib.UTF8)
-				fmt.Printf(failedCompare, t.Locale, i-1, a, []rune(a), b, []rune(b), cmp, goldCmp)
-			}
-		}
-		if count > 0 {
-			ctxt.Printf("Found %d inconsistencies in %d entries.\n", count, t.Len()-1)
-		}
-	}
-}
-
-const helpTemplate = `
-colcmp is a tool for testing and benchmarking collation
-
-Usage: colcmp command [arguments]
-
-The commands are:
-{{range .}}
-    {{.Name | printf "%-11s"}} {{.Short}}{{end}}
-
-Use "col help [topic]" for more information about that topic.
-`
-
-const detailedHelpTemplate = `
-Usage: colcmp {{.Usage}}
-
-{{.Long | trim}}
-`
-
-func runHelp(args []string) {
-	t := template.New("help")
-	t.Funcs(template.FuncMap{"trim": strings.TrimSpace})
-	if len(args) < 1 {
-		template.Must(t.Parse(helpTemplate))
-		failOnError(t.Execute(os.Stderr, &commands))
-	} else {
-		for _, cmd := range commands {
-			if cmd.Name() == args[0] {
-				template.Must(t.Parse(detailedHelpTemplate))
-				failOnError(t.Execute(os.Stderr, cmd))
-				os.Exit(0)
-			}
-		}
-		log.Fatalf("Unknown command %q. Run 'colcmp help'.", args[0])
-	}
-	os.Exit(0)
-}
-
-func main() {
-	flag.Parse()
-	log.SetFlags(0)
-
-	ctxt := parseTests()
-
-	if flag.NArg() < 1 {
-		runHelp(nil)
-	}
-	args := flag.Args()[1:]
-	if flag.Arg(0) == "help" {
-		runHelp(args)
-	}
-	for _, cmd := range commands {
-		if cmd.Name() == flag.Arg(0) {
-			cmd.Run(ctxt, args)
-			ctxt.flush()
-			return
-		}
-	}
-	runHelp(flag.Args())
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/col.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/col.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/col.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/col.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,95 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"exp/locale/collate"
-	"log"
-	"unicode/utf16"
-)
-
-// Input holds an input string in both UTF-8 and UTF-16 format.
-type Input struct {
-	index int // used for restoring to original random order
-	UTF8  []byte
-	UTF16 []uint16
-	key   []byte // used for sorting
-}
-
-func (i Input) String() string {
-	return string(i.UTF8)
-}
-
-func makeInput(s8 []byte, s16 []uint16) Input {
-	return Input{UTF8: s8, UTF16: s16}
-}
-
-func makeInputString(s string) Input {
-	return Input{
-		UTF8:  []byte(s),
-		UTF16: utf16.Encode([]rune(s)),
-	}
-}
-
-// Collator is an interface for architecture-specific implementations of collation.
-type Collator interface {
-	// Key generates a sort key for the given input.  Implemenations
-	// may return nil if a collator does not support sort keys.
-	Key(s Input) []byte
-
-	// Compare returns -1 if a < b, 1 if a > b and 0 if a == b.
-	Compare(a, b Input) int
-}
-
-// CollatorFactory creates a Collator for a given locale.
-type CollatorFactory struct {
-	name        string
-	makeFn      func(locale string) (Collator, error)
-	description string
-}
-
-var collators = []CollatorFactory{}
-
-// AddFactory registers f as a factory for an implementation of Collator.
-func AddFactory(f CollatorFactory) {
-	collators = append(collators, f)
-}
-
-func getCollator(name, locale string) Collator {
-	for _, f := range collators {
-		if f.name == name {
-			col, err := f.makeFn(locale)
-			if err != nil {
-				log.Fatal(err)
-			}
-			return col
-		}
-	}
-	log.Fatalf("collator of type %q not found", name)
-	return nil
-}
-
-// goCollator is an implemention of Collator using go's own collator.
-type goCollator struct {
-	c   *collate.Collator
-	buf collate.Buffer
-}
-
-func init() {
-	AddFactory(CollatorFactory{"go", newGoCollator, "Go's native collator implementation."})
-}
-
-func newGoCollator(locale string) (Collator, error) {
-	c := &goCollator{c: collate.New(locale)}
-	return c, nil
-}
-
-func (c *goCollator) Key(b Input) []byte {
-	return c.c.Key(&c.buf, b.UTF8)
-}
-
-func (c *goCollator) Compare(a, b Input) int {
-	return c.c.Compare(a.UTF8, b.UTF8)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/darwin.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/darwin.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/darwin.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/darwin.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,111 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build darwin
-
-package main
-
-/*
-#cgo LDFLAGS: -framework CoreFoundation
-#include <CoreFoundation/CFBase.h>
-#include <CoreFoundation/CoreFoundation.h>
-*/
-import "C"
-import (
-	"unsafe"
-)
-
-func init() {
-	AddFactory(CollatorFactory{"osx", newOSX16Collator,
-		"OS X/Darwin collator, using native strings."})
-	AddFactory(CollatorFactory{"osx8", newOSX8Collator,
-		"OS X/Darwin collator for UTF-8."})
-}
-
-func osxUInt8P(s []byte) *C.UInt8 {
-	return (*C.UInt8)(unsafe.Pointer(&s[0]))
-}
-
-func osxCharP(s []uint16) *C.UniChar {
-	return (*C.UniChar)(unsafe.Pointer(&s[0]))
-}
-
-// osxCollator implements an Collator based on OS X's CoreFoundation.
-type osxCollator struct {
-	loc C.CFLocaleRef
-	opt C.CFStringCompareFlags
-}
-
-func (c *osxCollator) init(locale string) {
-	l := C.CFStringCreateWithBytes(
-		nil,
-		osxUInt8P([]byte(locale)),
-		C.CFIndex(len(locale)),
-		C.kCFStringEncodingUTF8,
-		C.Boolean(0),
-	)
-	c.loc = C.CFLocaleCreate(nil, l)
-}
-
-func newOSX8Collator(locale string) (Collator, error) {
-	c := &osx8Collator{}
-	c.init(locale)
-	return c, nil
-}
-
-func newOSX16Collator(locale string) (Collator, error) {
-	c := &osx16Collator{}
-	c.init(locale)
-	return c, nil
-}
-
-func (c osxCollator) Key(s Input) []byte {
-	return nil // sort keys not supported by OS X CoreFoundation
-}
-
-type osx8Collator struct {
-	osxCollator
-}
-
-type osx16Collator struct {
-	osxCollator
-}
-
-func (c osx16Collator) Compare(a, b Input) int {
-	sa := C.CFStringCreateWithCharactersNoCopy(
-		nil,
-		osxCharP(a.UTF16),
-		C.CFIndex(len(a.UTF16)),
-		C.kCFAllocatorNull,
-	)
-	sb := C.CFStringCreateWithCharactersNoCopy(
-		nil,
-		osxCharP(b.UTF16),
-		C.CFIndex(len(b.UTF16)),
-		C.kCFAllocatorNull,
-	)
-	_range := C.CFRangeMake(0, C.CFStringGetLength(sa))
-	return int(C.CFStringCompareWithOptionsAndLocale(sa, sb, _range, c.opt, c.loc))
-}
-
-func (c osx8Collator) Compare(a, b Input) int {
-	sa := C.CFStringCreateWithBytesNoCopy(
-		nil,
-		osxUInt8P(a.UTF8),
-		C.CFIndex(len(a.UTF8)),
-		C.kCFStringEncodingUTF8,
-		C.Boolean(0),
-		C.kCFAllocatorNull,
-	)
-	sb := C.CFStringCreateWithBytesNoCopy(
-		nil,
-		osxUInt8P(b.UTF8),
-		C.CFIndex(len(b.UTF8)),
-		C.kCFStringEncodingUTF8,
-		C.Boolean(0),
-		C.kCFAllocatorNull,
-	)
-	_range := C.CFRangeMake(0, C.CFStringGetLength(sa))
-	return int(C.CFStringCompareWithOptionsAndLocale(sa, sb, _range, c.opt, c.loc))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/gen.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/gen.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/gen.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/gen.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,179 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-	"exp/norm"
-	"math"
-	"math/rand"
-	"strings"
-	"unicode"
-	"unicode/utf16"
-	"unicode/utf8"
-)
-
-// parent computes the parent locale for the given locale.
-// It returns false if the parent is already root.
-func parent(locale string) (parent string, ok bool) {
-	if locale == "root" {
-		return "", false
-	}
-	if i := strings.LastIndex(locale, "_"); i != -1 {
-		return locale[:i], true
-	}
-	return "root", true
-}
-
-// rewriter is used to both unique strings and create variants of strings
-// to add to the test set.
-type rewriter struct {
-	seen     map[string]bool
-	addCases bool
-}
-
-func newRewriter() *rewriter {
-	return &rewriter{
-		seen: make(map[string]bool),
-	}
-}
-
-func (r *rewriter) insert(a []string, s string) []string {
-	if !r.seen[s] {
-		r.seen[s] = true
-		a = append(a, s)
-	}
-	return a
-}
-
-// rewrite takes a sequence of strings in, adds variants of the these strings
-// based on options and removes duplicates.
-func (r *rewriter) rewrite(ss []string) []string {
-	ns := []string{}
-	for _, s := range ss {
-		ns = r.insert(ns, s)
-		if r.addCases {
-			rs := []rune(s)
-			rn := rs[0]
-			for c := unicode.SimpleFold(rn); c != rn; c = unicode.SimpleFold(c) {
-				rs[0] = c
-				ns = r.insert(ns, string(rs))
-			}
-		}
-	}
-	return ns
-}
-
-// exemplarySet holds a parsed set of characters from the exemplarCharacters table.
-type exemplarySet struct {
-	typ       exemplarType
-	set       []string
-	charIndex int // cumulative total of phrases, including this set
-}
-
-type phraseGenerator struct {
-	sets [exN]exemplarySet
-	n    int
-}
-
-func (g *phraseGenerator) init(locale string) {
-	ec := exemplarCharacters
-	// get sets for locale or parent locale if the set is not defined.
-	for i := range g.sets {
-		for p, ok := locale, true; ok; p, ok = parent(p) {
-			if set, ok := ec[p]; ok && set[i] != "" {
-				g.sets[i].set = strings.Split(set[i], " ")
-				break
-			}
-		}
-	}
-	r := newRewriter()
-	r.addCases = *cases
-	for i := range g.sets {
-		g.sets[i].set = r.rewrite(g.sets[i].set)
-	}
-	// compute indexes
-	for i, set := range g.sets {
-		g.n += len(set.set)
-		g.sets[i].charIndex = g.n
-	}
-}
-
-// phrase returns the ith phrase, where i < g.n.
-func (g *phraseGenerator) phrase(i int) string {
-	for _, set := range g.sets {
-		if i < set.charIndex {
-			return set.set[i-(set.charIndex-len(set.set))]
-		}
-	}
-	panic("index out of range")
-}
-
-// generate generates inputs by combining all pairs of examplar strings.
-// If doNorm is true, all input strings are normalized to NFC.
-// TODO: allow other variations, statistical models, and random
-// trailing sequences.
-func (g *phraseGenerator) generate(doNorm bool) []Input {
-	const (
-		M         = 1024 * 1024
-		buf8Size  = 30 * M
-		buf16Size = 10 * M
-	)
-	// TODO: use a better way to limit the input size.
-	if sq := int(math.Sqrt(float64(*limit))); g.n > sq {
-		g.n = sq
-	}
-	size := g.n * g.n
-	a := make([]Input, 0, size)
-	buf8 := make([]byte, 0, buf8Size)
-	buf16 := make([]uint16, 0, buf16Size)
-
-	addInput := func(str string) {
-		buf8 = buf8[len(buf8):]
-		buf16 = buf16[len(buf16):]
-		if len(str) > cap(buf8) {
-			buf8 = make([]byte, 0, buf8Size)
-		}
-		if len(str) > cap(buf16) {
-			buf16 = make([]uint16, 0, buf16Size)
-		}
-		if doNorm {
-			buf8 = norm.NFC.AppendString(buf8, str)
-		} else {
-			buf8 = append(buf8, str...)
-		}
-		buf16 = appendUTF16(buf16, buf8)
-		a = append(a, makeInput(buf8, buf16))
-	}
-	for i := 0; i < g.n; i++ {
-		p1 := g.phrase(i)
-		addInput(p1)
-		for j := 0; j < g.n; j++ {
-			p2 := g.phrase(j)
-			addInput(p1 + p2)
-		}
-	}
-	// permutate
-	rnd := rand.New(rand.NewSource(int64(rand.Int())))
-	for i := range a {
-		j := i + rnd.Intn(len(a)-i)
-		a[i], a[j] = a[j], a[i]
-		a[i].index = i // allow restoring this order if input is used multiple times.
-	}
-	return a
-}
-
-func appendUTF16(buf []uint16, s []byte) []uint16 {
-	for len(s) > 0 {
-		r, sz := utf8.DecodeRune(s)
-		s = s[sz:]
-		r1, r2 := utf16.EncodeRune(r)
-		if r1 != 0xFFFD {
-			buf = append(buf, uint16(r1), uint16(r2))
-		} else {
-			buf = append(buf, uint16(r))
-		}
-	}
-	return buf
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/icu.go gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/icu.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/tools/colcmp/icu.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/locale/collate/tools/colcmp/icu.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,209 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build icu
-
-package main
-
-/*
-#cgo LDFLAGS: -licui18n -licuuc
-#include <stdlib.h>
-#include <unicode/ucol.h>
-#include <unicode/uiter.h>
-#include <unicode/utypes.h>
-*/
-import "C"
-import (
-	"fmt"
-	"log"
-	"unicode/utf16"
-	"unicode/utf8"
-	"unsafe"
-)
-
-func init() {
-	AddFactory(CollatorFactory{"icu", newUTF16,
-		"Main ICU collator, using native strings."})
-	AddFactory(CollatorFactory{"icu8", newUTF8iter,
-		"ICU collator using ICU iterators to process UTF8."})
-	AddFactory(CollatorFactory{"icu16", newUTF8conv,
-		"ICU collation by first converting UTF8 to UTF16."})
-}
-
-func icuCharP(s []byte) *C.char {
-	return (*C.char)(unsafe.Pointer(&s[0]))
-}
-
-func icuUInt8P(s []byte) *C.uint8_t {
-	return (*C.uint8_t)(unsafe.Pointer(&s[0]))
-}
-
-func icuUCharP(s []uint16) *C.UChar {
-	return (*C.UChar)(unsafe.Pointer(&s[0]))
-}
-func icuULen(s []uint16) C.int32_t {
-	return C.int32_t(len(s))
-}
-func icuSLen(s []byte) C.int32_t {
-	return C.int32_t(len(s))
-}
-
-// icuCollator implements a Collator based on ICU.
-type icuCollator struct {
-	loc    *C.char
-	col    *C.UCollator
-	keyBuf []byte
-}
-
-const growBufSize = 10 * 1024 * 1024
-
-func (c *icuCollator) init(locale string) error {
-	err := C.UErrorCode(0)
-	c.loc = C.CString(locale)
-	c.col = C.ucol_open(c.loc, &err)
-	if err > 0 {
-		return fmt.Errorf("failed opening collator for %q", locale)
-	} else if err < 0 {
-		loc := C.ucol_getLocaleByType(c.col, 0, &err)
-		fmt, ok := map[int]string{
-			-127: "warning: using default collator: %s",
-			-128: "warning: using fallback collator: %s",
-		}[int(err)]
-		if ok {
-			log.Printf(fmt, C.GoString(loc))
-		}
-	}
-	c.keyBuf = make([]byte, 0, growBufSize)
-	return nil
-}
-
-func (c *icuCollator) buf() (*C.uint8_t, C.int32_t) {
-	if len(c.keyBuf) == cap(c.keyBuf) {
-		c.keyBuf = make([]byte, 0, growBufSize)
-	}
-	b := c.keyBuf[len(c.keyBuf):cap(c.keyBuf)]
-	return icuUInt8P(b), icuSLen(b)
-}
-
-func (c *icuCollator) extendBuf(n C.int32_t) []byte {
-	end := len(c.keyBuf) + int(n)
-	if end > cap(c.keyBuf) {
-		if len(c.keyBuf) == 0 {
-			log.Fatalf("icuCollator: max string size exceeded: %v > %v", n, growBufSize)
-		}
-		c.keyBuf = make([]byte, 0, growBufSize)
-		return nil
-	}
-	b := c.keyBuf[len(c.keyBuf):end]
-	c.keyBuf = c.keyBuf[:end]
-	return b
-}
-
-func (c *icuCollator) Close() error {
-	C.ucol_close(c.col)
-	C.free(unsafe.Pointer(c.loc))
-	return nil
-}
-
-// icuUTF16 implements the Collator interface.
-type icuUTF16 struct {
-	icuCollator
-}
-
-func newUTF16(locale string) (Collator, error) {
-	c := &icuUTF16{}
-	return c, c.init(locale)
-}
-
-func (c *icuUTF16) Compare(a, b Input) int {
-	return int(C.ucol_strcoll(c.col, icuUCharP(a.UTF16), icuULen(a.UTF16), icuUCharP(b.UTF16), icuULen(b.UTF16)))
-}
-
-func (c *icuUTF16) Key(s Input) []byte {
-	bp, bn := c.buf()
-	n := C.ucol_getSortKey(c.col, icuUCharP(s.UTF16), icuULen(s.UTF16), bp, bn)
-	if b := c.extendBuf(n); b != nil {
-		return b
-	}
-	return c.Key(s)
-}
-
-// icuUTF8iter implements the Collator interface
-// This implementation wraps the UTF8 string in an iterator
-// which is passed to the collator.
-type icuUTF8iter struct {
-	icuCollator
-	a, b C.UCharIterator
-}
-
-func newUTF8iter(locale string) (Collator, error) {
-	c := &icuUTF8iter{}
-	return c, c.init(locale)
-}
-
-func (c *icuUTF8iter) Compare(a, b Input) int {
-	err := C.UErrorCode(0)
-	C.uiter_setUTF8(&c.a, icuCharP(a.UTF8), icuSLen(a.UTF8))
-	C.uiter_setUTF8(&c.b, icuCharP(b.UTF8), icuSLen(b.UTF8))
-	return int(C.ucol_strcollIter(c.col, &c.a, &c.b, &err))
-}
-
-func (c *icuUTF8iter) Key(s Input) []byte {
-	err := C.UErrorCode(0)
-	state := [2]C.uint32_t{}
-	C.uiter_setUTF8(&c.a, icuCharP(s.UTF8), icuSLen(s.UTF8))
-	bp, bn := c.buf()
-	n := C.ucol_nextSortKeyPart(c.col, &c.a, &(state[0]), bp, bn, &err)
-	if n >= bn {
-		// Force failure.
-		if c.extendBuf(n+1) != nil {
-			log.Fatal("expected extension to fail")
-		}
-		return c.Key(s)
-	}
-	return c.extendBuf(n)
-}
-
-// icuUTF8conv implementes the Collator interface.
-// This implentation first converts the give UTF8 string
-// to UTF16 and then calls the main ICU collation function.
-type icuUTF8conv struct {
-	icuCollator
-}
-
-func newUTF8conv(locale string) (Collator, error) {
-	c := &icuUTF8conv{}
-	return c, c.init(locale)
-}
-
-func (c *icuUTF8conv) Compare(sa, sb Input) int {
-	a := encodeUTF16(sa.UTF8)
-	b := encodeUTF16(sb.UTF8)
-	return int(C.ucol_strcoll(c.col, icuUCharP(a), icuULen(a), icuUCharP(b), icuULen(b)))
-}
-
-func (c *icuUTF8conv) Key(s Input) []byte {
-	a := encodeUTF16(s.UTF8)
-	bp, bn := c.buf()
-	n := C.ucol_getSortKey(c.col, icuUCharP(a), icuULen(a), bp, bn)
-	if b := c.extendBuf(n); b != nil {
-		return b
-	}
-	return c.Key(s)
-}
-
-func encodeUTF16(b []byte) []uint16 {
-	a := []uint16{}
-	for len(b) > 0 {
-		r, sz := utf8.DecodeRune(b)
-		b = b[sz:]
-		r1, r2 := utf16.EncodeRune(r)
-		if r1 != 0xFFFD {
-			a = append(a, uint16(r1), uint16(r2))
-		} else {
-			a = append(a, uint16(r))
-		}
-	}
-	return a
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie.go gcc-4.8.1/libgo/go/exp/locale/collate/trie.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/trie.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,160 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// The trie in this file is used to associate the first full character
-// in an UTF-8 string to a collation element.
-// All but the last byte in a UTF-8 byte sequence are
-// used to lookup offsets in the index table to be used for the next byte.
-// The last byte is used to index into a table of collation elements.
-// For a full description, see exp/locale/collate/build/trie.go.
-
-package collate
-
-const blockSize = 64
-
-type trie struct {
-	index0  []uint16 // index for first byte (0xC0-0xFF)
-	values0 []uint32 // index for first byte (0x00-0x7F)
-	index   []uint16
-	values  []uint32
-}
-
-const (
-	t1 = 0x00 // 0000 0000
-	tx = 0x80 // 1000 0000
-	t2 = 0xC0 // 1100 0000
-	t3 = 0xE0 // 1110 0000
-	t4 = 0xF0 // 1111 0000
-	t5 = 0xF8 // 1111 1000
-	t6 = 0xFC // 1111 1100
-	te = 0xFE // 1111 1110
-)
-
-func (t *trie) lookupValue(n uint16, b byte) Elem {
-	return Elem(t.values[int(n)<<6+int(b)])
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *trie) lookup(s []byte) (v Elem, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return Elem(t.values0[c0]), 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = int(i)<<6 + int(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
-
-// The body of lookupString is a verbatim copy of that of lookup.
-func (t *trie) lookupString(s string) (v Elem, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return Elem(t.values0[c0]), 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index0[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := int(i)<<6 + int(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = int(i)<<6 + int(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie_test.go gcc-4.8.1/libgo/go/exp/locale/collate/trie_test.go
--- gcc-4.8.1.orig/libgo/go/exp/locale/collate/trie_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/locale/collate/trie_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,106 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package collate
-
-import (
-	"testing"
-)
-
-// We take the smallest, largest and an arbitrary value for each
-// of the UTF-8 sequence lengths.
-var testRunes = []rune{
-	0x01, 0x0C, 0x7F, // 1-byte sequences
-	0x80, 0x100, 0x7FF, // 2-byte sequences
-	0x800, 0x999, 0xFFFF, // 3-byte sequences
-	0x10000, 0x10101, 0x10FFFF, // 4-byte sequences
-	0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block
-}
-
-// Test cases for illegal runes.
-type trietest struct {
-	size  int
-	bytes []byte
-}
-
-var tests = []trietest{
-	// illegal runes
-	{1, []byte{0x80}},
-	{1, []byte{0xFF}},
-	{1, []byte{t2, tx - 1}},
-	{1, []byte{t2, t2}},
-	{2, []byte{t3, tx, tx - 1}},
-	{2, []byte{t3, tx, t2}},
-	{1, []byte{t3, tx - 1, tx}},
-	{3, []byte{t4, tx, tx, tx - 1}},
-	{3, []byte{t4, tx, tx, t2}},
-	{1, []byte{t4, t2, tx, tx - 1}},
-	{2, []byte{t4, tx, t2, tx - 1}},
-
-	// short runes
-	{0, []byte{t2}},
-	{0, []byte{t3, tx}},
-	{0, []byte{t4, tx, tx}},
-
-	// we only support UTF-8 up to utf8.UTFMax bytes (4 bytes)
-	{1, []byte{t5, tx, tx, tx, tx}},
-	{1, []byte{t6, tx, tx, tx, tx, tx}},
-}
-
-func TestLookupTrie(t *testing.T) {
-	for i, r := range testRunes {
-		b := []byte(string(r))
-		v, sz := testTrie.lookup(b)
-		if int(v) != i {
-			t.Errorf("lookup(%U): found value %#x, expected %#x", r, v, i)
-		}
-		if sz != len(b) {
-			t.Errorf("lookup(%U): found size %d, expected %d", r, sz, len(b))
-		}
-	}
-	for i, tt := range tests {
-		v, sz := testTrie.lookup(tt.bytes)
-		if int(v) != 0 {
-			t.Errorf("lookup of illegal rune, case %d: found value %#x, expected 0", i, v)
-		}
-		if sz != tt.size {
-			t.Errorf("lookup of illegal rune, case %d: found size %d, expected %d", i, sz, tt.size)
-		}
-	}
-}
-
-// test data is taken from exp/collate/locale/build/trie_test.go
-var testValues = [832]uint32{
-	0x000c: 0x00000001,
-	0x007f: 0x00000002,
-	0x00c0: 0x00000003,
-	0x0100: 0x00000004,
-	0x0140: 0x0000000c, 0x0141: 0x0000000d, 0x0142: 0x0000000e,
-	0x0150: 0x0000000f,
-	0x0155: 0x00000010,
-	0x01bf: 0x00000005,
-	0x01c0: 0x00000006,
-	0x0219: 0x00000007,
-	0x027f: 0x00000008,
-	0x0280: 0x00000009,
-	0x02c1: 0x0000000a,
-	0x033f: 0x0000000b,
-}
-
-var testLookup = [640]uint16{
-	0x0e0: 0x05, 0x0e6: 0x06,
-	0x13f: 0x07,
-	0x140: 0x08, 0x144: 0x09,
-	0x190: 0x03,
-	0x1ff: 0x0a,
-	0x20f: 0x05,
-	0x242: 0x01, 0x244: 0x02,
-	0x248: 0x03,
-	0x25f: 0x04,
-	0x260: 0x01,
-	0x26f: 0x02,
-	0x270: 0x04, 0x274: 0x06,
-}
-
-var testTrie = trie{testLookup[6*blockSize:], testValues[:], testLookup[:], testValues[:]}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/composition.go gcc-4.8.1/libgo/go/exp/norm/composition.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/composition.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/composition.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,382 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "unicode/utf8"
-
-const (
-	maxCombiningChars = 30
-	maxBufferSize     = maxCombiningChars + 2 // +1 to hold starter +1 to hold CGJ
-	maxBackRunes      = maxCombiningChars - 1
-	maxNFCExpansion   = 3  // NFC(0x1D160)
-	maxNFKCExpansion  = 18 // NFKC(0xFDFA)
-
-	maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128
-)
-
-// reorderBuffer is used to normalize a single segment.  Characters inserted with
-// insert are decomposed and reordered based on CCC. The compose method can
-// be used to recombine characters.  Note that the byte buffer does not hold
-// the UTF-8 characters in order.  Only the rune array is maintained in sorted
-// order. flush writes the resulting segment to a byte array.
-type reorderBuffer struct {
-	rune  [maxBufferSize]Properties // Per character info.
-	byte  [maxByteBufferSize]byte   // UTF-8 buffer. Referenced by runeInfo.pos.
-	nrune int                       // Number of runeInfos.
-	nbyte uint8                     // Number or bytes.
-	f     formInfo
-
-	src      input
-	nsrc     int
-	tmpBytes input
-}
-
-func (rb *reorderBuffer) init(f Form, src []byte) {
-	rb.f = *formTable[f]
-	rb.src.setBytes(src)
-	rb.nsrc = len(src)
-}
-
-func (rb *reorderBuffer) initString(f Form, src string) {
-	rb.f = *formTable[f]
-	rb.src.setString(src)
-	rb.nsrc = len(src)
-}
-
-// reset discards all characters from the buffer.
-func (rb *reorderBuffer) reset() {
-	rb.nrune = 0
-	rb.nbyte = 0
-}
-
-// flush appends the normalized segment to out and resets rb.
-func (rb *reorderBuffer) flush(out []byte) []byte {
-	for i := 0; i < rb.nrune; i++ {
-		start := rb.rune[i].pos
-		end := start + rb.rune[i].size
-		out = append(out, rb.byte[start:end]...)
-	}
-	rb.reset()
-	return out
-}
-
-// flushCopy copies the normalized segment to buf and resets rb.
-// It returns the number of bytes written to buf.
-func (rb *reorderBuffer) flushCopy(buf []byte) int {
-	p := 0
-	for i := 0; i < rb.nrune; i++ {
-		runep := rb.rune[i]
-		p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size])
-	}
-	rb.reset()
-	return p
-}
-
-// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class.
-// It returns false if the buffer is not large enough to hold the rune.
-// It is used internally by insert and insertString only.
-func (rb *reorderBuffer) insertOrdered(info Properties) bool {
-	n := rb.nrune
-	if n >= maxCombiningChars+1 {
-		return false
-	}
-	b := rb.rune[:]
-	cc := info.ccc
-	if cc > 0 {
-		// Find insertion position + move elements to make room.
-		for ; n > 0; n-- {
-			if b[n-1].ccc <= cc {
-				break
-			}
-			b[n] = b[n-1]
-		}
-	}
-	rb.nrune += 1
-	pos := uint8(rb.nbyte)
-	rb.nbyte += utf8.UTFMax
-	info.pos = pos
-	b[n] = info
-	return true
-}
-
-// insert inserts the given rune in the buffer ordered by CCC.
-// It returns true if the buffer was large enough to hold the decomposed rune.
-func (rb *reorderBuffer) insert(src input, i int, info Properties) bool {
-	if rune := src.hangul(i); rune != 0 {
-		return rb.decomposeHangul(rune)
-	}
-	if info.hasDecomposition() {
-		return rb.insertDecomposed(info.Decomposition())
-	}
-	return rb.insertSingle(src, i, info)
-}
-
-// insertDecomposed inserts an entry in to the reorderBuffer for each rune
-// in dcomp.  dcomp must be a sequence of decomposed UTF-8-encoded runes.
-func (rb *reorderBuffer) insertDecomposed(dcomp []byte) bool {
-	saveNrune, saveNbyte := rb.nrune, rb.nbyte
-	rb.tmpBytes.setBytes(dcomp)
-	for i := 0; i < len(dcomp); {
-		info := rb.f.info(rb.tmpBytes, i)
-		pos := rb.nbyte
-		if !rb.insertOrdered(info) {
-			rb.nrune, rb.nbyte = saveNrune, saveNbyte
-			return false
-		}
-		i += copy(rb.byte[pos:], dcomp[i:i+int(info.size)])
-	}
-	return true
-}
-
-// insertSingle inserts an entry in the reorderBuffer for the rune at
-// position i. info is the runeInfo for the rune at position i.
-func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) bool {
-	// insertOrder changes nbyte
-	pos := rb.nbyte
-	if !rb.insertOrdered(info) {
-		return false
-	}
-	src.copySlice(rb.byte[pos:], i, i+int(info.size))
-	return true
-}
-
-// appendRune inserts a rune at the end of the buffer. It is used for Hangul.
-func (rb *reorderBuffer) appendRune(r rune) {
-	bn := rb.nbyte
-	sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
-	rb.nbyte += utf8.UTFMax
-	rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)}
-	rb.nrune++
-}
-
-// assignRune sets a rune at position pos. It is used for Hangul and recomposition.
-func (rb *reorderBuffer) assignRune(pos int, r rune) {
-	bn := rb.rune[pos].pos
-	sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
-	rb.rune[pos] = Properties{pos: bn, size: uint8(sz)}
-}
-
-// runeAt returns the rune at position n. It is used for Hangul and recomposition.
-func (rb *reorderBuffer) runeAt(n int) rune {
-	inf := rb.rune[n]
-	r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])
-	return r
-}
-
-// bytesAt returns the UTF-8 encoding of the rune at position n.
-// It is used for Hangul and recomposition.
-func (rb *reorderBuffer) bytesAt(n int) []byte {
-	inf := rb.rune[n]
-	return rb.byte[inf.pos : int(inf.pos)+int(inf.size)]
-}
-
-// For Hangul we combine algorithmically, instead of using tables.
-const (
-	hangulBase  = 0xAC00 // UTF-8(hangulBase) -> EA B0 80
-	hangulBase0 = 0xEA
-	hangulBase1 = 0xB0
-	hangulBase2 = 0x80
-
-	hangulEnd  = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4
-	hangulEnd0 = 0xED
-	hangulEnd1 = 0x9E
-	hangulEnd2 = 0xA4
-
-	jamoLBase  = 0x1100 // UTF-8(jamoLBase) -> E1 84 00
-	jamoLBase0 = 0xE1
-	jamoLBase1 = 0x84
-	jamoLEnd   = 0x1113
-	jamoVBase  = 0x1161
-	jamoVEnd   = 0x1176
-	jamoTBase  = 0x11A7
-	jamoTEnd   = 0x11C3
-
-	jamoTCount   = 28
-	jamoVCount   = 21
-	jamoVTCount  = 21 * 28
-	jamoLVTCount = 19 * 21 * 28
-)
-
-const hangulUTF8Size = 3
-
-func isHangul(b []byte) bool {
-	if len(b) < hangulUTF8Size {
-		return false
-	}
-	b0 := b[0]
-	if b0 < hangulBase0 {
-		return false
-	}
-	b1 := b[1]
-	switch {
-	case b0 == hangulBase0:
-		return b1 >= hangulBase1
-	case b0 < hangulEnd0:
-		return true
-	case b0 > hangulEnd0:
-		return false
-	case b1 < hangulEnd1:
-		return true
-	}
-	return b1 == hangulEnd1 && b[2] < hangulEnd2
-}
-
-func isHangulString(b string) bool {
-	if len(b) < hangulUTF8Size {
-		return false
-	}
-	b0 := b[0]
-	if b0 < hangulBase0 {
-		return false
-	}
-	b1 := b[1]
-	switch {
-	case b0 == hangulBase0:
-		return b1 >= hangulBase1
-	case b0 < hangulEnd0:
-		return true
-	case b0 > hangulEnd0:
-		return false
-	case b1 < hangulEnd1:
-		return true
-	}
-	return b1 == hangulEnd1 && b[2] < hangulEnd2
-}
-
-// Caller must ensure len(b) >= 2.
-func isJamoVT(b []byte) bool {
-	// True if (rune & 0xff00) == jamoLBase
-	return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1
-}
-
-func isHangulWithoutJamoT(b []byte) bool {
-	c, _ := utf8.DecodeRune(b)
-	c -= hangulBase
-	return c < jamoLVTCount && c%jamoTCount == 0
-}
-
-// decomposeHangul writes the decomposed Hangul to buf and returns the number
-// of bytes written.  len(buf) should be at least 9.
-func decomposeHangul(buf []byte, r rune) int {
-	const JamoUTF8Len = 3
-	r -= hangulBase
-	x := r % jamoTCount
-	r /= jamoTCount
-	utf8.EncodeRune(buf, jamoLBase+r/jamoVCount)
-	utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount)
-	if x != 0 {
-		utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x)
-		return 3 * JamoUTF8Len
-	}
-	return 2 * JamoUTF8Len
-}
-
-// decomposeHangul algorithmically decomposes a Hangul rune into
-// its Jamo components.
-// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.
-func (rb *reorderBuffer) decomposeHangul(r rune) bool {
-	b := rb.rune[:]
-	n := rb.nrune
-	if n+3 > len(b) {
-		return false
-	}
-	r -= hangulBase
-	x := r % jamoTCount
-	r /= jamoTCount
-	rb.appendRune(jamoLBase + r/jamoVCount)
-	rb.appendRune(jamoVBase + r%jamoVCount)
-	if x != 0 {
-		rb.appendRune(jamoTBase + x)
-	}
-	return true
-}
-
-// combineHangul algorithmically combines Jamo character components into Hangul.
-// See http://unicode.org/reports/tr15/#Hangul for details on combining Hangul.
-func (rb *reorderBuffer) combineHangul(s, i, k int) {
-	b := rb.rune[:]
-	bn := rb.nrune
-	for ; i < bn; i++ {
-		cccB := b[k-1].ccc
-		cccC := b[i].ccc
-		if cccB == 0 {
-			s = k - 1
-		}
-		if s != k-1 && cccB >= cccC {
-			// b[i] is blocked by greater-equal cccX below it
-			b[k] = b[i]
-			k++
-		} else {
-			l := rb.runeAt(s) // also used to compare to hangulBase
-			v := rb.runeAt(i) // also used to compare to jamoT
-			switch {
-			case jamoLBase <= l && l < jamoLEnd &&
-				jamoVBase <= v && v < jamoVEnd:
-				// 11xx plus 116x to LV
-				rb.assignRune(s, hangulBase+
-					(l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount)
-			case hangulBase <= l && l < hangulEnd &&
-				jamoTBase < v && v < jamoTEnd &&
-				((l-hangulBase)%jamoTCount) == 0:
-				// ACxx plus 11Ax to LVT
-				rb.assignRune(s, l+v-jamoTBase)
-			default:
-				b[k] = b[i]
-				k++
-			}
-		}
-	}
-	rb.nrune = k
-}
-
-// compose recombines the runes in the buffer.
-// It should only be used to recompose a single segment, as it will not
-// handle alternations between Hangul and non-Hangul characters correctly.
-func (rb *reorderBuffer) compose() {
-	// UAX #15, section X5 , including Corrigendum #5
-	// "In any character sequence beginning with starter S, a character C is
-	//  blocked from S if and only if there is some character B between S
-	//  and C, and either B is a starter or it has the same or higher
-	//  combining class as C."
-	bn := rb.nrune
-	if bn == 0 {
-		return
-	}
-	k := 1
-	b := rb.rune[:]
-	for s, i := 0, 1; i < bn; i++ {
-		if isJamoVT(rb.bytesAt(i)) {
-			// Redo from start in Hangul mode. Necessary to support
-			// U+320E..U+321E in NFKC mode.
-			rb.combineHangul(s, i, k)
-			return
-		}
-		ii := b[i]
-		// We can only use combineForward as a filter if we later
-		// get the info for the combined character. This is more
-		// expensive than using the filter. Using combinesBackward()
-		// is safe.
-		if ii.combinesBackward() {
-			cccB := b[k-1].ccc
-			cccC := ii.ccc
-			blocked := false // b[i] blocked by starter or greater or equal CCC?
-			if cccB == 0 {
-				s = k - 1
-			} else {
-				blocked = s != k-1 && cccB >= cccC
-			}
-			if !blocked {
-				combined := combine(rb.runeAt(s), rb.runeAt(i))
-				if combined != 0 {
-					rb.assignRune(s, combined)
-					continue
-				}
-			}
-		}
-		b[k] = b[i]
-		k++
-	}
-	rb.nrune = k
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/composition_test.go gcc-4.8.1/libgo/go/exp/norm/composition_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/composition_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/composition_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,143 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "testing"
-
-// TestCase is used for most tests.
-type TestCase struct {
-	in  []rune
-	out []rune
-}
-
-type insertFunc func(rb *reorderBuffer, r rune) bool
-
-func insert(rb *reorderBuffer, r rune) bool {
-	src := inputString(string(r))
-	return rb.insert(src, 0, rb.f.info(src, 0))
-}
-
-func runTests(t *testing.T, name string, fm Form, f insertFunc, tests []TestCase) {
-	rb := reorderBuffer{}
-	rb.init(fm, nil)
-	for i, test := range tests {
-		rb.reset()
-		for j, rune := range test.in {
-			b := []byte(string(rune))
-			src := inputBytes(b)
-			if !rb.insert(src, 0, rb.f.info(src, 0)) {
-				t.Errorf("%s:%d: insert failed for rune %d", name, i, j)
-			}
-		}
-		if rb.f.composing {
-			rb.compose()
-		}
-		if rb.nrune != len(test.out) {
-			t.Errorf("%s:%d: length = %d; want %d", name, i, rb.nrune, len(test.out))
-			continue
-		}
-		for j, want := range test.out {
-			found := rune(rb.runeAt(j))
-			if found != want {
-				t.Errorf("%s:%d: runeAt(%d) = %U; want %U", name, i, j, found, want)
-			}
-		}
-	}
-}
-
-type flushFunc func(rb *reorderBuffer) []byte
-
-func testFlush(t *testing.T, name string, fn flushFunc) {
-	rb := reorderBuffer{}
-	rb.init(NFC, nil)
-	out := fn(&rb)
-	if len(out) != 0 {
-		t.Errorf("%s: wrote bytes on flush of empty buffer. (len(out) = %d)", name, len(out))
-	}
-
-	for _, r := range []rune("world!") {
-		insert(&rb, r)
-	}
-
-	out = []byte("Hello ")
-	out = rb.flush(out)
-	want := "Hello world!"
-	if string(out) != want {
-		t.Errorf(`%s: output after flush was "%s"; want "%s"`, name, string(out), want)
-	}
-	if rb.nrune != 0 {
-		t.Errorf("%s: non-null size of info buffer (rb.nrune == %d)", name, rb.nrune)
-	}
-	if rb.nbyte != 0 {
-		t.Errorf("%s: non-null size of byte buffer (rb.nbyte == %d)", name, rb.nbyte)
-	}
-}
-
-func flushF(rb *reorderBuffer) []byte {
-	out := make([]byte, 0)
-	return rb.flush(out)
-}
-
-func flushCopyF(rb *reorderBuffer) []byte {
-	out := make([]byte, maxByteBufferSize)
-	n := rb.flushCopy(out)
-	return out[:n]
-}
-
-func TestFlush(t *testing.T) {
-	testFlush(t, "flush", flushF)
-	testFlush(t, "flushCopy", flushCopyF)
-}
-
-var insertTests = []TestCase{
-	{[]rune{'a'}, []rune{'a'}},
-	{[]rune{0x300}, []rune{0x300}},
-	{[]rune{0x300, 0x316}, []rune{0x316, 0x300}}, // CCC(0x300)==230; CCC(0x316)==220
-	{[]rune{0x316, 0x300}, []rune{0x316, 0x300}},
-	{[]rune{0x41, 0x316, 0x300}, []rune{0x41, 0x316, 0x300}},
-	{[]rune{0x41, 0x300, 0x316}, []rune{0x41, 0x316, 0x300}},
-	{[]rune{0x300, 0x316, 0x41}, []rune{0x316, 0x300, 0x41}},
-	{[]rune{0x41, 0x300, 0x40, 0x316}, []rune{0x41, 0x300, 0x40, 0x316}},
-}
-
-func TestInsert(t *testing.T) {
-	runTests(t, "TestInsert", NFD, insert, insertTests)
-}
-
-var decompositionNFDTest = []TestCase{
-	{[]rune{0xC0}, []rune{0x41, 0x300}},
-	{[]rune{0xAC00}, []rune{0x1100, 0x1161}},
-	{[]rune{0x01C4}, []rune{0x01C4}},
-	{[]rune{0x320E}, []rune{0x320E}},
-	{[]rune("ìŒáº»ê³¼"), []rune{0x110B, 0x1173, 0x11B7, 0x65, 0x309, 0x1100, 0x116A}},
-}
-
-var decompositionNFKDTest = []TestCase{
-	{[]rune{0xC0}, []rune{0x41, 0x300}},
-	{[]rune{0xAC00}, []rune{0x1100, 0x1161}},
-	{[]rune{0x01C4}, []rune{0x44, 0x5A, 0x030C}},
-	{[]rune{0x320E}, []rune{0x28, 0x1100, 0x1161, 0x29}},
-}
-
-func TestDecomposition(t *testing.T) {
-	runTests(t, "TestDecompositionNFD", NFD, insert, decompositionNFDTest)
-	runTests(t, "TestDecompositionNFKD", NFKD, insert, decompositionNFKDTest)
-}
-
-var compositionTest = []TestCase{
-	{[]rune{0x41, 0x300}, []rune{0xC0}},
-	{[]rune{0x41, 0x316}, []rune{0x41, 0x316}},
-	{[]rune{0x41, 0x300, 0x35D}, []rune{0xC0, 0x35D}},
-	{[]rune{0x41, 0x316, 0x300}, []rune{0xC0, 0x316}},
-	// blocking starter
-	{[]rune{0x41, 0x316, 0x40, 0x300}, []rune{0x41, 0x316, 0x40, 0x300}},
-	{[]rune{0x1100, 0x1161}, []rune{0xAC00}},
-	// parenthesized Hangul, alternate between ASCII and Hangul.
-	{[]rune{0x28, 0x1100, 0x1161, 0x29}, []rune{0x28, 0xAC00, 0x29}},
-}
-
-func TestComposition(t *testing.T) {
-	runTests(t, "TestComposition", NFC, insert, compositionTest)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/example_iter_test.go gcc-4.8.1/libgo/go/exp/norm/example_iter_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/example_iter_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/example_iter_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,81 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm_test
-
-import (
-	"bytes"
-	"exp/norm"
-	"fmt"
-	"unicode/utf8"
-)
-
-// EqualSimple uses a norm.Iter to compare two non-normalized
-// strings for equivalence.
-func EqualSimple(a, b string) bool {
-	var ia, ib norm.Iter
-	ia.InitString(norm.NFKD, a)
-	ib.InitString(norm.NFKD, b)
-	for !ia.Done() && !ib.Done() {
-		if !bytes.Equal(ia.Next(), ib.Next()) {
-			return false
-		}
-	}
-	return ia.Done() && ib.Done()
-}
-
-// FindPrefix finds the longest common prefix of ASCII characters
-// of a and b.
-func FindPrefix(a, b string) int {
-	i := 0
-	for ; i < len(a) && i < len(b) && a[i] < utf8.RuneSelf && a[i] == b[i]; i++ {
-	}
-	return i
-}
-
-// EqualOpt is like EqualSimple, but optimizes the special
-// case for ASCII characters.
-func EqualOpt(a, b string) bool {
-	n := FindPrefix(a, b)
-	a, b = a[n:], b[n:]
-	var ia, ib norm.Iter
-	ia.InitString(norm.NFKD, a)
-	ib.InitString(norm.NFKD, b)
-	for !ia.Done() && !ib.Done() {
-		if !bytes.Equal(ia.Next(), ib.Next()) {
-			return false
-		}
-		if n := int64(FindPrefix(a[ia.Pos():], b[ib.Pos():])); n != 0 {
-			ia.Seek(n, 1)
-			ib.Seek(n, 1)
-		}
-	}
-	return ia.Done() && ib.Done()
-}
-
-var compareTests = []struct{ a, b string }{
-	{"aaa", "aaa"},
-	{"aaa", "aab"},
-	{"a\u0300a", "\u00E0a"},
-	{"a\u0300\u0320b", "a\u0320\u0300b"},
-	{"\u1E0A\u0323", "\x44\u0323\u0307"},
-	// A character that decomposes into multiple segments
-	// spans several iterations.
-	{"\u3304", "\u30A4\u30CB\u30F3\u30AF\u3099"},
-}
-
-func ExampleIter() {
-	for i, t := range compareTests {
-		r0 := EqualSimple(t.a, t.b)
-		r1 := EqualOpt(t.a, t.b)
-		fmt.Printf("%d: %v %v\n", i, r0, r1)
-	}
-	// Output:
-	// 0: true true
-	// 1: false false
-	// 2: true true
-	// 3: true true
-	// 4: true true
-	// 5: true true
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/forminfo.go gcc-4.8.1/libgo/go/exp/norm/forminfo.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/forminfo.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/forminfo.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,229 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-// This file contains Form-specific logic and wrappers for data in tables.go.
-
-// Rune info is stored in a separate trie per composing form. A composing form
-// and its corresponding decomposing form share the same trie.  Each trie maps
-// a rune to a uint16. The values take two forms.  For v >= 0x8000:
-//   bits
-//   0..8:   ccc
-//   9..12:  qcInfo (see below). isYesD is always true (no decompostion).
-//   16:     1
-// For v < 0x8000, the respective rune has a decomposition and v is an index
-// into a byte array of UTF-8 decomposition sequences and additional info and
-// has the form:
-//    <header> <decomp_byte>* [<tccc> [<lccc>]]
-// The header contains the number of bytes in the decomposition (excluding this
-// length byte). The two most significant bits of this length byte correspond
-// to bit 2 and 3 of qcIfo (see below).  The byte sequence itself starts at v+1.
-// The byte sequence is followed by a trailing and leading CCC if the values
-// for these are not zero.  The value of v determines which ccc are appended
-// to the sequences.  For v < firstCCC, there are none, for v >= firstCCC,
-// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC
-// there is an additional leading ccc.
-
-const (
-	qcInfoMask      = 0xF  // to clear all but the relevant bits in a qcInfo
-	headerLenMask   = 0x3F // extract the length value from the header byte
-	headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte
-)
-
-// Properties provides access to normalization properties of a rune.
-type Properties struct {
-	pos   uint8  // start position in reorderBuffer; used in composition.go
-	size  uint8  // length of UTF-8 encoding of this rune
-	ccc   uint8  // leading canonical combining class (ccc if not decomposition)
-	tccc  uint8  // trailing canonical combining class (ccc if not decomposition)
-	flags qcInfo // quick check flags
-	index uint16
-}
-
-// functions dispatchable per form
-type lookupFunc func(b input, i int) Properties
-
-// formInfo holds Form-specific functions and tables.
-type formInfo struct {
-	form                     Form
-	composing, compatibility bool // form type
-	info                     lookupFunc
-	nextMain                 iterFunc
-}
-
-var formTable []*formInfo
-
-func init() {
-	formTable = make([]*formInfo, 4)
-
-	for i := range formTable {
-		f := &formInfo{}
-		formTable[i] = f
-		f.form = Form(i)
-		if Form(i) == NFKD || Form(i) == NFKC {
-			f.compatibility = true
-			f.info = lookupInfoNFKC
-		} else {
-			f.info = lookupInfoNFC
-		}
-		f.nextMain = nextDecomposed
-		if Form(i) == NFC || Form(i) == NFKC {
-			f.nextMain = nextComposed
-			f.composing = true
-		}
-	}
-}
-
-// We do not distinguish between boundaries for NFC, NFD, etc. to avoid
-// unexpected behavior for the user.  For example, in NFD, there is a boundary
-// after 'a'.  However, 'a' might combine with modifiers, so from the application's
-// perspective it is not a good boundary. We will therefore always use the
-// boundaries for the combining variants.
-
-// BoundaryBefore returns true if this rune starts a new segment and
-// cannot combine with any rune on the left.
-func (p Properties) BoundaryBefore() bool {
-	if p.ccc == 0 && !p.combinesBackward() {
-		return true
-	}
-	// We assume that the CCC of the first character in a decomposition
-	// is always non-zero if different from info.ccc and that we can return
-	// false at this point. This is verified by maketables.
-	return false
-}
-
-// BoundaryAfter returns true if this rune cannot combine with runes to the right
-// and always denotes the end of a segment.
-func (p Properties) BoundaryAfter() bool {
-	return p.isInert()
-}
-
-// We pack quick check data in 4 bits:
-//   0:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.
-//   1..2: NFC_QC Yes(00), No (10), or Maybe (11)
-//   3:    Combines forward  (0 == false, 1 == true)
-//
-// When all 4 bits are zero, the character is inert, meaning it is never
-// influenced by normalization.
-type qcInfo uint8
-
-func (p Properties) isYesC() bool { return p.flags&0x4 == 0 }
-func (p Properties) isYesD() bool { return p.flags&0x1 == 0 }
-
-func (p Properties) combinesForward() bool  { return p.flags&0x8 != 0 }
-func (p Properties) combinesBackward() bool { return p.flags&0x2 != 0 } // == isMaybe
-func (p Properties) hasDecomposition() bool { return p.flags&0x1 != 0 } // == isNoD
-
-func (p Properties) isInert() bool {
-	return p.flags&0xf == 0 && p.ccc == 0
-}
-
-func (p Properties) multiSegment() bool {
-	return p.index >= firstMulti && p.index < endMulti
-}
-
-// Decomposition returns the decomposition for the underlying rune
-// or nil if there is none.
-func (p Properties) Decomposition() []byte {
-	if p.index == 0 {
-		return nil
-	}
-	i := p.index
-	n := decomps[i] & headerLenMask
-	i++
-	return decomps[i : i+uint16(n)]
-}
-
-// Size returns the length of UTF-8 encoding of the rune.
-func (p Properties) Size() int {
-	return int(p.size)
-}
-
-// CCC returns the canonical combining class of the underlying rune.
-func (p Properties) CCC() uint8 {
-	if p.index > firstCCCZeroExcept {
-		return 0
-	}
-	return p.ccc
-}
-
-// LeadCCC returns the CCC of the first rune in the decomposition.
-// If there is no decomposition, LeadCCC equals CCC.
-func (p Properties) LeadCCC() uint8 {
-	return p.ccc
-}
-
-// TrailCCC returns the CCC of the last rune in the decomposition.
-// If there is no decomposition, TrailCCC equals CCC.
-func (p Properties) TrailCCC() uint8 {
-	return p.tccc
-}
-
-// Recomposition
-// We use 32-bit keys instead of 64-bit for the two codepoint keys.
-// This clips off the bits of three entries, but we know this will not
-// result in a collision. In the unlikely event that changes to
-// UnicodeData.txt introduce collisions, the compiler will catch it.
-// Note that the recomposition map for NFC and NFKC are identical.
-
-// combine returns the combined rune or 0 if it doesn't exist.
-func combine(a, b rune) rune {
-	key := uint32(uint16(a))<<16 + uint32(uint16(b))
-	return recompMap[key]
-}
-
-func lookupInfoNFC(b input, i int) Properties {
-	v, sz := b.charinfoNFC(i)
-	return compInfo(v, sz)
-}
-
-func lookupInfoNFKC(b input, i int) Properties {
-	v, sz := b.charinfoNFKC(i)
-	return compInfo(v, sz)
-}
-
-// Properties returns properties for the first rune in s.
-func (f Form) Properties(s []byte) Properties {
-	if f == NFC || f == NFD {
-		return compInfo(nfcTrie.lookup(s))
-	}
-	return compInfo(nfkcTrie.lookup(s))
-}
-
-// PropertiesString returns properties for the first rune in s.
-func (f Form) PropertiesString(s string) Properties {
-	if f == NFC || f == NFD {
-		return compInfo(nfcTrie.lookupString(s))
-	}
-	return compInfo(nfkcTrie.lookupString(s))
-}
-
-// compInfo converts the information contained in v and sz
-// to a Properties.  See the comment at the top of the file
-// for more information on the format.
-func compInfo(v uint16, sz int) Properties {
-	if v == 0 {
-		return Properties{size: uint8(sz)}
-	} else if v >= 0x8000 {
-		return Properties{
-			size:  uint8(sz),
-			ccc:   uint8(v),
-			tccc:  uint8(v),
-			flags: qcInfo(v>>8) & qcInfoMask,
-		}
-	}
-	// has decomposition
-	h := decomps[v]
-	f := (qcInfo(h&headerFlagsMask) >> 4) | 0x1
-	ri := Properties{size: uint8(sz), flags: f, index: v}
-	if v >= firstCCC {
-		v += uint16(h&headerLenMask) + 1
-		ri.tccc = decomps[v]
-		if v >= firstLeadingCCC {
-			ri.ccc = decomps[v+1]
-		}
-	}
-	return ri
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/input.go gcc-4.8.1/libgo/go/exp/norm/input.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/input.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/input.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,105 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "unicode/utf8"
-
-type input struct {
-	str   string
-	bytes []byte
-}
-
-func inputBytes(str []byte) input {
-	return input{bytes: str}
-}
-
-func inputString(str string) input {
-	return input{str: str}
-}
-
-func (in *input) setBytes(str []byte) {
-	in.str = ""
-	in.bytes = str
-}
-
-func (in *input) setString(str string) {
-	in.str = str
-	in.bytes = nil
-}
-
-func (in *input) _byte(p int) byte {
-	if in.bytes == nil {
-		return in.str[p]
-	}
-	return in.bytes[p]
-}
-
-func (in *input) skipASCII(p, max int) int {
-	if in.bytes == nil {
-		for ; p < max && in.str[p] < utf8.RuneSelf; p++ {
-		}
-	} else {
-		for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ {
-		}
-	}
-	return p
-}
-
-func (in *input) skipNonStarter(p int) int {
-	if in.bytes == nil {
-		for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ {
-		}
-	} else {
-		for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ {
-		}
-	}
-	return p
-}
-
-func (in *input) appendSlice(buf []byte, b, e int) []byte {
-	if in.bytes != nil {
-		return append(buf, in.bytes[b:e]...)
-	}
-	for i := b; i < e; i++ {
-		buf = append(buf, in.str[i])
-	}
-	return buf
-}
-
-func (in *input) copySlice(buf []byte, b, e int) int {
-	if in.bytes == nil {
-		return copy(buf, in.str[b:e])
-	}
-	return copy(buf, in.bytes[b:e])
-}
-
-func (in *input) charinfoNFC(p int) (uint16, int) {
-	if in.bytes == nil {
-		return nfcTrie.lookupString(in.str[p:])
-	}
-	return nfcTrie.lookup(in.bytes[p:])
-}
-
-func (in *input) charinfoNFKC(p int) (uint16, int) {
-	if in.bytes == nil {
-		return nfkcTrie.lookupString(in.str[p:])
-	}
-	return nfkcTrie.lookup(in.bytes[p:])
-}
-
-func (in *input) hangul(p int) (r rune) {
-	if in.bytes == nil {
-		if !isHangulString(in.str[p:]) {
-			return 0
-		}
-		r, _ = utf8.DecodeRuneInString(in.str[p:])
-	} else {
-		if !isHangul(in.bytes[p:]) {
-			return 0
-		}
-		r, _ = utf8.DecodeRune(in.bytes[p:])
-	}
-	return r
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/iter.go gcc-4.8.1/libgo/go/exp/norm/iter.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/iter.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/iter.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,401 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"fmt"
-	"unicode/utf8"
-)
-
-const MaxSegmentSize = maxByteBufferSize
-
-// An Iter iterates over a string or byte slice, while normalizing it
-// to a given Form.
-type Iter struct {
-	rb     reorderBuffer
-	buf    [maxByteBufferSize]byte
-	info   Properties // first character saved from previous iteration
-	next   iterFunc   // implementation of next depends on form
-	asciiF iterFunc
-
-	p        int    // current position in input source
-	multiSeg []byte // remainder of multi-segment decomposition
-}
-
-type iterFunc func(*Iter) []byte
-
-// Init initializes i to iterate over src after normalizing it to Form f.
-func (i *Iter) Init(f Form, src []byte) {
-	i.p = 0
-	if len(src) == 0 {
-		i.setDone()
-		i.rb.nsrc = 0
-		return
-	}
-	i.multiSeg = nil
-	i.rb.init(f, src)
-	i.next = i.rb.f.nextMain
-	i.asciiF = nextASCIIBytes
-	i.info = i.rb.f.info(i.rb.src, i.p)
-}
-
-// InitString initializes i to iterate over src after normalizing it to Form f.
-func (i *Iter) InitString(f Form, src string) {
-	i.p = 0
-	if len(src) == 0 {
-		i.setDone()
-		i.rb.nsrc = 0
-		return
-	}
-	i.multiSeg = nil
-	i.rb.initString(f, src)
-	i.next = i.rb.f.nextMain
-	i.asciiF = nextASCIIString
-	i.info = i.rb.f.info(i.rb.src, i.p)
-}
-
-// Seek sets the segment to be returned by the next call to Next to start
-// at position p.  It is the responsibility of the caller to set p to the
-// start of a UTF8 rune.
-func (i *Iter) Seek(offset int64, whence int) (int64, error) {
-	var abs int64
-	switch whence {
-	case 0:
-		abs = offset
-	case 1:
-		abs = int64(i.p) + offset
-	case 2:
-		abs = int64(i.rb.nsrc) + offset
-	default:
-		return 0, fmt.Errorf("norm: invalid whence")
-	}
-	if abs < 0 {
-		return 0, fmt.Errorf("norm: negative position")
-	}
-	if int(abs) >= i.rb.nsrc {
-		i.setDone()
-		return int64(i.p), nil
-	}
-	i.p = int(abs)
-	i.multiSeg = nil
-	i.next = i.rb.f.nextMain
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	return abs, nil
-}
-
-// returnSlice returns a slice of the underlying input type as a byte slice.
-// If the underlying is of type []byte, it will simply return a slice.
-// If the underlying is of type string, it will copy the slice to the buffer
-// and return that.
-func (i *Iter) returnSlice(a, b int) []byte {
-	if i.rb.src.bytes == nil {
-		return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])]
-	}
-	return i.rb.src.bytes[a:b]
-}
-
-// Pos returns the byte position at which the next call to Next will commence processing.
-func (i *Iter) Pos() int {
-	return i.p
-}
-
-func (i *Iter) setDone() {
-	i.next = nextDone
-	i.p = i.rb.nsrc
-}
-
-// Done returns true if there is no more input to process.
-func (i *Iter) Done() bool {
-	return i.p >= i.rb.nsrc
-}
-
-// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input.
-// For any input a and b for which f(a) == f(b), subsequent calls
-// to Next will return the same segments.
-// Modifying runes are grouped together with the preceding starter, if such a starter exists.
-// Although not guaranteed, n will typically be the smallest possible n.
-func (i *Iter) Next() []byte {
-	return i.next(i)
-}
-
-func nextASCIIBytes(i *Iter) []byte {
-	p := i.p + 1
-	if p >= i.rb.nsrc {
-		i.setDone()
-		return i.rb.src.bytes[i.p:p]
-	}
-	if i.rb.src.bytes[p] < utf8.RuneSelf {
-		p0 := i.p
-		i.p = p
-		return i.rb.src.bytes[p0:p]
-	}
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-func nextASCIIString(i *Iter) []byte {
-	p := i.p + 1
-	if p >= i.rb.nsrc {
-		i.buf[0] = i.rb.src.str[i.p]
-		i.setDone()
-		return i.buf[:1]
-	}
-	if i.rb.src.str[p] < utf8.RuneSelf {
-		i.buf[0] = i.rb.src.str[i.p]
-		i.p = p
-		return i.buf[:1]
-	}
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-func nextHangul(i *Iter) []byte {
-	if r := i.rb.src.hangul(i.p); r != 0 {
-		i.p += hangulUTF8Size
-		if i.p >= i.rb.nsrc {
-			i.setDone()
-		}
-		return i.buf[:decomposeHangul(i.buf[:], r)]
-	}
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-func nextDone(i *Iter) []byte {
-	return nil
-}
-
-// nextMulti is used for iterating over multi-segment decompositions
-// for decomposing normal forms.
-func nextMulti(i *Iter) []byte {
-	j := 0
-	d := i.multiSeg
-	// skip first rune
-	for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {
-	}
-	for j < len(d) {
-		info := i.rb.f.info(input{bytes: d}, j)
-		if info.ccc == 0 {
-			i.multiSeg = d[j:]
-			return d[:j]
-		}
-		j += int(info.size)
-	}
-	// treat last segment as normal decomposition
-	i.next = i.rb.f.nextMain
-	return i.next(i)
-}
-
-// nextMultiNorm is used for iterating over multi-segment decompositions
-// for composing normal forms.
-func nextMultiNorm(i *Iter) []byte {
-	j := 0
-	d := i.multiSeg
-	// skip first rune
-	for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {
-	}
-	for j < len(d) {
-		info := i.rb.f.info(input{bytes: d}, j)
-		if info.ccc == 0 {
-			i.multiSeg = d[j:]
-			return d[:j]
-		}
-		j += int(info.size)
-	}
-	i.multiSeg = nil
-	i.next = nextComposed
-	i.p++ // restore old valud of i.p. See nextComposed.
-	if i.p >= i.rb.nsrc {
-		i.setDone()
-	}
-	return d
-}
-
-// nextDecomposed is the implementation of Next for forms NFD and NFKD.
-func nextDecomposed(i *Iter) (next []byte) {
-	startp, outp := i.p, 0
-	inCopyStart, outCopyStart := i.p, 0
-	for {
-		if sz := int(i.info.size); sz <= 1 {
-			p := i.p
-			i.p++ // ASCII or illegal byte.  Either way, advance by 1.
-			if i.p >= i.rb.nsrc {
-				i.setDone()
-				return i.returnSlice(p, i.p)
-			} else if i.rb.src._byte(i.p) < utf8.RuneSelf {
-				i.next = i.asciiF
-				return i.returnSlice(p, i.p)
-			}
-			outp++
-		} else if d := i.info.Decomposition(); d != nil {
-			// Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero.
-			// Case 1: there is a leftover to copy.  In this case the decomposition
-			// must begin with a modifier and should always be appended.
-			// Case 2: no leftover. Simply return d if followed by a ccc == 0 value.
-			p := outp + len(d)
-			if outp > 0 {
-				i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
-				if p > len(i.buf) {
-					return i.buf[:outp]
-				}
-			} else if i.info.multiSegment() {
-				// outp must be 0 as multi-segment decompositions always
-				// start a new segment.
-				if i.multiSeg == nil {
-					i.multiSeg = d
-					i.next = nextMulti
-					return nextMulti(i)
-				}
-				// We are in the last segment.  Treat as normal decomposition.
-				d = i.multiSeg
-				i.multiSeg = nil
-				p = len(d)
-			}
-			prevCC := i.info.tccc
-			if i.p += sz; i.p >= i.rb.nsrc {
-				i.setDone()
-				i.info = Properties{} // Force BoundaryBefore to succeed.
-			} else {
-				i.info = i.rb.f.info(i.rb.src, i.p)
-			}
-			if i.info.BoundaryBefore() {
-				if outp > 0 {
-					copy(i.buf[outp:], d)
-					return i.buf[:p]
-				}
-				return d
-			}
-			copy(i.buf[outp:], d)
-			outp = p
-			inCopyStart, outCopyStart = i.p, outp
-			if i.info.ccc < prevCC {
-				goto doNorm
-			}
-			continue
-		} else if r := i.rb.src.hangul(i.p); r != 0 {
-			i.next = nextHangul
-			i.p += hangulUTF8Size
-			if i.p >= i.rb.nsrc {
-				i.setDone()
-			}
-			return i.buf[:decomposeHangul(i.buf[:], r)]
-		} else {
-			p := outp + sz
-			if p > len(i.buf) {
-				break
-			}
-			outp = p
-			i.p += sz
-		}
-		if i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		}
-		prevCC := i.info.tccc
-		i.info = i.rb.f.info(i.rb.src, i.p)
-		if i.info.BoundaryBefore() {
-			break
-		} else if i.info.ccc < prevCC {
-			goto doNorm
-		}
-	}
-	if outCopyStart == 0 {
-		return i.returnSlice(inCopyStart, i.p)
-	} else if inCopyStart < i.p {
-		i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
-	}
-	return i.buf[:outp]
-doNorm:
-	// Insert what we have decomposed so far in the reorderBuffer.
-	// As we will only reorder, there will always be enough room.
-	i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
-	if !i.rb.insertDecomposed(i.buf[0:outp]) {
-		// Start over to prevent decompositions from crossing segment boundaries.
-		// This is a rare occurrence.
-		i.p = startp
-		i.info = i.rb.f.info(i.rb.src, i.p)
-	}
-	for {
-		if !i.rb.insert(i.rb.src, i.p, i.info) {
-			break
-		}
-		if i.p += int(i.info.size); i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		}
-		i.info = i.rb.f.info(i.rb.src, i.p)
-		if i.info.ccc == 0 {
-			break
-		}
-	}
-	// new segment or too many combining characters: exit normalization
-	return i.buf[:i.rb.flushCopy(i.buf[:])]
-}
-
-// nextComposed is the implementation of Next for forms NFC and NFKC.
-func nextComposed(i *Iter) []byte {
-	outp, startp := 0, i.p
-	var prevCC uint8
-	for {
-		if !i.info.isYesC() {
-			goto doNorm
-		}
-		if cc := i.info.ccc; cc == 0 && outp > 0 {
-			break
-		} else if cc < prevCC {
-			goto doNorm
-		}
-		prevCC = i.info.tccc
-		sz := int(i.info.size)
-		if sz == 0 {
-			sz = 1 // illegal rune: copy byte-by-byte
-		}
-		p := outp + sz
-		if p > len(i.buf) {
-			break
-		}
-		outp = p
-		i.p += sz
-		if i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		} else if i.rb.src._byte(i.p) < utf8.RuneSelf {
-			i.next = i.asciiF
-			break
-		}
-		i.info = i.rb.f.info(i.rb.src, i.p)
-	}
-	return i.returnSlice(startp, i.p)
-doNorm:
-	multi := false
-	i.p = startp
-	i.info = i.rb.f.info(i.rb.src, i.p)
-	for {
-		if !i.rb.insert(i.rb.src, i.p, i.info) {
-			break
-		}
-		multi = multi || i.info.multiSegment()
-		if i.p += int(i.info.size); i.p >= i.rb.nsrc {
-			i.setDone()
-			break
-		}
-		i.info = i.rb.f.info(i.rb.src, i.p)
-		if i.info.BoundaryBefore() {
-			break
-		}
-	}
-	i.rb.compose()
-	seg := i.buf[:i.rb.flushCopy(i.buf[:])]
-	if multi {
-		i.p-- // fake not being done yet
-		i.multiSeg = seg
-		i.next = nextMultiNorm
-		return nextMultiNorm(i)
-	}
-	return seg
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/iter_test.go gcc-4.8.1/libgo/go/exp/norm/iter_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/iter_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/iter_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,188 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"strings"
-	"testing"
-)
-
-func doIterNorm(f Form, s string) []byte {
-	acc := []byte{}
-	i := Iter{}
-	i.InitString(f, s)
-	for !i.Done() {
-		acc = append(acc, i.Next()...)
-	}
-	return acc
-}
-
-func runIterTests(t *testing.T, name string, f Form, tests []AppendTest, norm bool) {
-	for i, test := range tests {
-		in := test.left + test.right
-		gold := test.out
-		if norm {
-			gold = string(f.AppendString(nil, test.out))
-		}
-		out := string(doIterNorm(f, in))
-		if len(out) != len(gold) {
-			const msg = "%s:%d: length is %d; want %d"
-			t.Errorf(msg, name, i, len(out), len(gold))
-		}
-		if out != gold {
-			// Find first rune that differs and show context.
-			ir := []rune(out)
-			ig := []rune(gold)
-			t.Errorf("\n%X != \n%X", ir, ig)
-			for j := 0; j < len(ir) && j < len(ig); j++ {
-				if ir[j] == ig[j] {
-					continue
-				}
-				if j -= 3; j < 0 {
-					j = 0
-				}
-				for e := j + 7; j < e && j < len(ir) && j < len(ig); j++ {
-					const msg = "%s:%d: runeAt(%d) = %U; want %U"
-					t.Errorf(msg, name, i, j, ir[j], ig[j])
-				}
-				break
-			}
-		}
-	}
-}
-
-func rep(r rune, n int) string {
-	return strings.Repeat(string(r), n)
-}
-
-const segSize = maxByteBufferSize
-
-var iterTests = []AppendTest{
-	{"", ascii, ascii},
-	{"", txt_all, txt_all},
-	{"", "a" + rep(0x0300, segSize/2), "a" + rep(0x0300, segSize/2)},
-}
-
-var iterTestsD = []AppendTest{
-	{ // segment overflow on unchanged character
-		"",
-		"a" + rep(0x0300, segSize/2) + "\u0316",
-		"a" + rep(0x0300, segSize/2-1) + "\u0316\u0300",
-	},
-	{ // segment overflow on unchanged character + start value
-		"",
-		"a" + rep(0x0300, segSize/2+maxCombiningChars+4) + "\u0316",
-		"a" + rep(0x0300, segSize/2+maxCombiningChars) + "\u0316" + rep(0x300, 4),
-	},
-	{ // segment overflow on decomposition
-		"",
-		"a" + rep(0x0300, segSize/2-1) + "\u0340",
-		"a" + rep(0x0300, segSize/2),
-	},
-	{ // segment overflow on decomposition + start value
-		"",
-		"a" + rep(0x0300, segSize/2-1) + "\u0340" + rep(0x300, maxCombiningChars+4) + "\u0320",
-		"a" + rep(0x0300, segSize/2-1) + rep(0x300, maxCombiningChars+1) + "\u0320" + rep(0x300, 4),
-	},
-	{ // start value after ASCII overflow
-		"",
-		rep('a', segSize) + rep(0x300, maxCombiningChars+2) + "\u0320",
-		rep('a', segSize) + rep(0x300, maxCombiningChars) + "\u0320\u0300\u0300",
-	},
-	{ // start value after Hangul overflow
-		"",
-		rep(0xAC00, segSize/6) + rep(0x300, maxCombiningChars+2) + "\u0320",
-		strings.Repeat("\u1100\u1161", segSize/6) + rep(0x300, maxCombiningChars+1) + "\u0320" + rep(0x300, 1),
-	},
-	{ // start value after cc=0
-		"",
-		"æ‚¨æ‚¨" + rep(0x300, maxCombiningChars+4) + "\u0320",
-		"æ‚¨æ‚¨" + rep(0x300, maxCombiningChars) + "\u0320" + rep(0x300, 4),
-	},
-	{ // start value after normalization
-		"",
-		"\u0300\u0320a" + rep(0x300, maxCombiningChars+4) + "\u0320",
-		"\u0320\u0300a" + rep(0x300, maxCombiningChars) + "\u0320" + rep(0x300, 4),
-	},
-}
-
-var iterTestsC = []AppendTest{
-	{ // ordering of non-composing combining characters
-		"",
-		"\u0305\u0316",
-		"\u0316\u0305",
-	},
-	{ // segment overflow
-		"",
-		"a" + rep(0x0305, segSize/2+4) + "\u0316",
-		"a" + rep(0x0305, segSize/2-1) + "\u0316" + rep(0x305, 5),
-	},
-}
-
-func TestIterNextD(t *testing.T) {
-	runIterTests(t, "IterNextD1", NFKD, appendTests, true)
-	runIterTests(t, "IterNextD2", NFKD, iterTests, true)
-	runIterTests(t, "IterNextD3", NFKD, iterTestsD, false)
-}
-
-func TestIterNextC(t *testing.T) {
-	runIterTests(t, "IterNextC1", NFKC, appendTests, true)
-	runIterTests(t, "IterNextC2", NFKC, iterTests, true)
-	runIterTests(t, "IterNextC3", NFKC, iterTestsC, false)
-}
-
-type SegmentTest struct {
-	in  string
-	out []string
-}
-
-var segmentTests = []SegmentTest{
-	{"\u1E0A\u0323a", []string{"\x44\u0323\u0307", "a", ""}},
-	{rep('a', segSize), append(strings.Split(rep('a', segSize), ""), "")},
-	{rep('a', segSize+2), append(strings.Split(rep('a', segSize+2), ""), "")},
-	{rep('a', segSize) + "\u0300aa",
-		append(strings.Split(rep('a', segSize-1), ""), "a\u0300", "a", "a", "")},
-}
-
-var segmentTestsK = []SegmentTest{
-	{"\u3332", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u3099", ""}},
-	// last segment of multi-segment decomposition needs normalization
-	{"\u3332\u093C", []string{"\u30D5", "\u30A1", "\u30E9", "\u30C3", "\u30C8\u093C\u3099", ""}},
-	// Hangul and Jamo are grouped togeter.
-	{"\uAC00", []string{"\u1100\u1161", ""}},
-	{"\uAC01", []string{"\u1100\u1161\u11A8", ""}},
-	{"\u1100\u1161", []string{"\u1100\u1161", ""}},
-}
-
-// Note that, by design, segmentation is equal for composing and decomposing forms.
-func TestIterSegmentation(t *testing.T) {
-	segmentTest(t, "SegmentTestD", NFD, segmentTests)
-	segmentTest(t, "SegmentTestC", NFC, segmentTests)
-	segmentTest(t, "SegmentTestD", NFKD, segmentTestsK)
-	segmentTest(t, "SegmentTestC", NFKC, segmentTestsK)
-}
-
-func segmentTest(t *testing.T, name string, f Form, tests []SegmentTest) {
-	iter := Iter{}
-	for i, tt := range tests {
-		iter.InitString(f, tt.in)
-		for j, seg := range tt.out {
-			if seg == "" {
-				if !iter.Done() {
-					res := string(iter.Next())
-					t.Errorf(`%s:%d:%d: expected Done()==true, found segment "%s"`, name, i, j, res)
-				}
-				continue
-			}
-			if iter.Done() {
-				t.Errorf("%s:%d:%d: Done()==true, want false", name, i, j)
-			}
-			seg = f.String(seg)
-			if res := string(iter.Next()); res != seg {
-				t.Errorf(`%s:%d:%d" segment was "%s" (%d); want "%s" (%d) %X %X`, name, i, j, res, len(res), seg, len(seg), []rune(res), []rune(seg))
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/maketables.go gcc-4.8.1/libgo/go/exp/norm/maketables.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/maketables.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/maketables.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,934 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Normalization table generator.
-// Data read from the web.
-// See forminfo.go for a description of the trie values associated with each rune.
-
-package main
-
-import (
-	"bufio"
-	"bytes"
-	"flag"
-	"fmt"
-	"io"
-	"log"
-	"net/http"
-	"os"
-	"regexp"
-	"sort"
-	"strconv"
-	"strings"
-	"unicode"
-)
-
-func main() {
-	flag.Parse()
-	loadUnicodeData()
-	loadCompositionExclusions()
-	completeCharFields(FCanonical)
-	completeCharFields(FCompatibility)
-	verifyComputed()
-	printChars()
-	makeTables()
-	testDerived()
-}
-
-var url = flag.String("url",
-	"http://www.unicode.org/Public/"+unicode.Version+"/ucd/",
-	"URL of Unicode database directory")
-var tablelist = flag.String("tables",
-	"all",
-	"comma-separated list of which tables to generate; "+
-		"can be 'decomp', 'recomp', 'info' and 'all'")
-var test = flag.Bool("test",
-	false,
-	"test existing tables; can be used to compare web data with package data")
-var verbose = flag.Bool("verbose",
-	false,
-	"write data to stdout as it is parsed")
-var localFiles = flag.Bool("local",
-	false,
-	"data files have been copied to the current directory; for debugging only")
-
-var logger = log.New(os.Stderr, "", log.Lshortfile)
-
-// UnicodeData.txt has form:
-//	0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
-//	007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
-// See http://unicode.org/reports/tr44/ for full explanation
-// The fields:
-const (
-	FCodePoint = iota
-	FName
-	FGeneralCategory
-	FCanonicalCombiningClass
-	FBidiClass
-	FDecompMapping
-	FDecimalValue
-	FDigitValue
-	FNumericValue
-	FBidiMirrored
-	FUnicode1Name
-	FISOComment
-	FSimpleUppercaseMapping
-	FSimpleLowercaseMapping
-	FSimpleTitlecaseMapping
-	NumField
-
-	MaxChar = 0x10FFFF // anything above this shouldn't exist
-)
-
-// Quick Check properties of runes allow us to quickly
-// determine whether a rune may occur in a normal form.
-// For a given normal form, a rune may be guaranteed to occur
-// verbatim (QC=Yes), may or may not combine with another
-// rune (QC=Maybe), or may not occur (QC=No).
-type QCResult int
-
-const (
-	QCUnknown QCResult = iota
-	QCYes
-	QCNo
-	QCMaybe
-)
-
-func (r QCResult) String() string {
-	switch r {
-	case QCYes:
-		return "Yes"
-	case QCNo:
-		return "No"
-	case QCMaybe:
-		return "Maybe"
-	}
-	return "***UNKNOWN***"
-}
-
-const (
-	FCanonical     = iota // NFC or NFD
-	FCompatibility        // NFKC or NFKD
-	FNumberOfFormTypes
-)
-
-const (
-	MComposed   = iota // NFC or NFKC
-	MDecomposed        // NFD or NFKD
-	MNumberOfModes
-)
-
-// This contains only the properties we're interested in.
-type Char struct {
-	name          string
-	codePoint     rune  // if zero, this index is not a valid code point.
-	ccc           uint8 // canonical combining class
-	excludeInComp bool  // from CompositionExclusions.txt
-	compatDecomp  bool  // it has a compatibility expansion
-
-	forms [FNumberOfFormTypes]FormInfo // For FCanonical and FCompatibility
-
-	state State
-}
-
-var chars = make([]Char, MaxChar+1)
-
-func (c Char) String() string {
-	buf := new(bytes.Buffer)
-
-	fmt.Fprintf(buf, "%U [%s]:\n", c.codePoint, c.name)
-	fmt.Fprintf(buf, "  ccc: %v\n", c.ccc)
-	fmt.Fprintf(buf, "  excludeInComp: %v\n", c.excludeInComp)
-	fmt.Fprintf(buf, "  compatDecomp: %v\n", c.compatDecomp)
-	fmt.Fprintf(buf, "  state: %v\n", c.state)
-	fmt.Fprintf(buf, "  NFC:\n")
-	fmt.Fprint(buf, c.forms[FCanonical])
-	fmt.Fprintf(buf, "  NFKC:\n")
-	fmt.Fprint(buf, c.forms[FCompatibility])
-
-	return buf.String()
-}
-
-// In UnicodeData.txt, some ranges are marked like this:
-//	3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
-//	4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
-// parseCharacter keeps a state variable indicating the weirdness.
-type State int
-
-const (
-	SNormal State = iota // known to be zero for the type
-	SFirst
-	SLast
-	SMissing
-)
-
-var lastChar = rune('\u0000')
-
-func (c Char) isValid() bool {
-	return c.codePoint != 0 && c.state != SMissing
-}
-
-type FormInfo struct {
-	quickCheck [MNumberOfModes]QCResult // index: MComposed or MDecomposed
-	verified   [MNumberOfModes]bool     // index: MComposed or MDecomposed
-
-	combinesForward  bool // May combine with rune on the right
-	combinesBackward bool // May combine with rune on the left
-	isOneWay         bool // Never appears in result
-	inDecomp         bool // Some decompositions result in this char.
-	decomp           Decomposition
-	expandedDecomp   Decomposition
-}
-
-func (f FormInfo) String() string {
-	buf := bytes.NewBuffer(make([]byte, 0))
-
-	fmt.Fprintf(buf, "    quickCheck[C]: %v\n", f.quickCheck[MComposed])
-	fmt.Fprintf(buf, "    quickCheck[D]: %v\n", f.quickCheck[MDecomposed])
-	fmt.Fprintf(buf, "    cmbForward: %v\n", f.combinesForward)
-	fmt.Fprintf(buf, "    cmbBackward: %v\n", f.combinesBackward)
-	fmt.Fprintf(buf, "    isOneWay: %v\n", f.isOneWay)
-	fmt.Fprintf(buf, "    inDecomp: %v\n", f.inDecomp)
-	fmt.Fprintf(buf, "    decomposition: %X\n", f.decomp)
-	fmt.Fprintf(buf, "    expandedDecomp: %X\n", f.expandedDecomp)
-
-	return buf.String()
-}
-
-type Decomposition []rune
-
-func openReader(file string) (input io.ReadCloser) {
-	if *localFiles {
-		f, err := os.Open(file)
-		if err != nil {
-			logger.Fatal(err)
-		}
-		input = f
-	} else {
-		path := *url + file
-		resp, err := http.Get(path)
-		if err != nil {
-			logger.Fatal(err)
-		}
-		if resp.StatusCode != 200 {
-			logger.Fatal("bad GET status for "+file, resp.Status)
-		}
-		input = resp.Body
-	}
-	return
-}
-
-func parseDecomposition(s string, skipfirst bool) (a []rune, e error) {
-	decomp := strings.Split(s, " ")
-	if len(decomp) > 0 && skipfirst {
-		decomp = decomp[1:]
-	}
-	for _, d := range decomp {
-		point, err := strconv.ParseUint(d, 16, 64)
-		if err != nil {
-			return a, err
-		}
-		a = append(a, rune(point))
-	}
-	return a, nil
-}
-
-func parseCharacter(line string) {
-	field := strings.Split(line, ";")
-	if len(field) != NumField {
-		logger.Fatalf("%5s: %d fields (expected %d)\n", line, len(field), NumField)
-	}
-	x, err := strconv.ParseUint(field[FCodePoint], 16, 64)
-	point := int(x)
-	if err != nil {
-		logger.Fatalf("%.5s...: %s", line, err)
-	}
-	if point == 0 {
-		return // not interesting and we use 0 as unset
-	}
-	if point > MaxChar {
-		logger.Fatalf("%5s: Rune %X > MaxChar (%X)", line, point, MaxChar)
-		return
-	}
-	state := SNormal
-	switch {
-	case strings.Index(field[FName], ", First>") > 0:
-		state = SFirst
-	case strings.Index(field[FName], ", Last>") > 0:
-		state = SLast
-	}
-	firstChar := lastChar + 1
-	lastChar = rune(point)
-	if state != SLast {
-		firstChar = lastChar
-	}
-	x, err = strconv.ParseUint(field[FCanonicalCombiningClass], 10, 64)
-	if err != nil {
-		logger.Fatalf("%U: bad ccc field: %s", int(x), err)
-	}
-	ccc := uint8(x)
-	decmap := field[FDecompMapping]
-	exp, e := parseDecomposition(decmap, false)
-	isCompat := false
-	if e != nil {
-		if len(decmap) > 0 {
-			exp, e = parseDecomposition(decmap, true)
-			if e != nil {
-				logger.Fatalf(`%U: bad decomp |%v|: "%s"`, int(x), decmap, e)
-			}
-			isCompat = true
-		}
-	}
-	for i := firstChar; i <= lastChar; i++ {
-		char := &chars[i]
-		char.name = field[FName]
-		char.codePoint = i
-		char.forms[FCompatibility].decomp = exp
-		if !isCompat {
-			char.forms[FCanonical].decomp = exp
-		} else {
-			char.compatDecomp = true
-		}
-		if len(decmap) > 0 {
-			char.forms[FCompatibility].decomp = exp
-		}
-		char.ccc = ccc
-		char.state = SMissing
-		if i == lastChar {
-			char.state = state
-		}
-	}
-	return
-}
-
-func loadUnicodeData() {
-	f := openReader("UnicodeData.txt")
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		parseCharacter(line[0 : len(line)-1])
-	}
-}
-
-var singlePointRe = regexp.MustCompile(`^([0-9A-F]+) *$`)
-
-// CompositionExclusions.txt has form:
-// 0958    # ...
-// See http://unicode.org/reports/tr44/ for full explanation
-func parseExclusion(line string) int {
-	comment := strings.Index(line, "#")
-	if comment >= 0 {
-		line = line[0:comment]
-	}
-	if len(line) == 0 {
-		return 0
-	}
-	matches := singlePointRe.FindStringSubmatch(line)
-	if len(matches) != 2 {
-		logger.Fatalf("%s: %d matches (expected 1)\n", line, len(matches))
-	}
-	point, err := strconv.ParseUint(matches[1], 16, 64)
-	if err != nil {
-		logger.Fatalf("%.5s...: %s", line, err)
-	}
-	return int(point)
-}
-
-func loadCompositionExclusions() {
-	f := openReader("CompositionExclusions.txt")
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		point := parseExclusion(line[0 : len(line)-1])
-		if point == 0 {
-			continue
-		}
-		c := &chars[point]
-		if c.excludeInComp {
-			logger.Fatalf("%U: Duplicate entry in exclusions.", c.codePoint)
-		}
-		c.excludeInComp = true
-	}
-}
-
-// hasCompatDecomp returns true if any of the recursive
-// decompositions contains a compatibility expansion.
-// In this case, the character may not occur in NFK*.
-func hasCompatDecomp(r rune) bool {
-	c := &chars[r]
-	if c.compatDecomp {
-		return true
-	}
-	for _, d := range c.forms[FCompatibility].decomp {
-		if hasCompatDecomp(d) {
-			return true
-		}
-	}
-	return false
-}
-
-// Hangul related constants.
-const (
-	HangulBase = 0xAC00
-	HangulEnd  = 0xD7A4 // hangulBase + Jamo combinations (19 * 21 * 28)
-
-	JamoLBase = 0x1100
-	JamoLEnd  = 0x1113
-	JamoVBase = 0x1161
-	JamoVEnd  = 0x1176
-	JamoTBase = 0x11A8
-	JamoTEnd  = 0x11C3
-)
-
-func isHangul(r rune) bool {
-	return HangulBase <= r && r < HangulEnd
-}
-
-func ccc(r rune) uint8 {
-	return chars[r].ccc
-}
-
-// Insert a rune in a buffer, ordered by Canonical Combining Class.
-func insertOrdered(b Decomposition, r rune) Decomposition {
-	n := len(b)
-	b = append(b, 0)
-	cc := ccc(r)
-	if cc > 0 {
-		// Use bubble sort.
-		for ; n > 0; n-- {
-			if ccc(b[n-1]) <= cc {
-				break
-			}
-			b[n] = b[n-1]
-		}
-	}
-	b[n] = r
-	return b
-}
-
-// Recursively decompose.
-func decomposeRecursive(form int, r rune, d Decomposition) Decomposition {
-	if isHangul(r) {
-		return d
-	}
-	dcomp := chars[r].forms[form].decomp
-	if len(dcomp) == 0 {
-		return insertOrdered(d, r)
-	}
-	for _, c := range dcomp {
-		d = decomposeRecursive(form, c, d)
-	}
-	return d
-}
-
-func completeCharFields(form int) {
-	// Phase 0: pre-expand decomposition.
-	for i := range chars {
-		f := &chars[i].forms[form]
-		if len(f.decomp) == 0 {
-			continue
-		}
-		exp := make(Decomposition, 0)
-		for _, c := range f.decomp {
-			exp = decomposeRecursive(form, c, exp)
-		}
-		f.expandedDecomp = exp
-	}
-
-	// Phase 1: composition exclusion, mark decomposition.
-	for i := range chars {
-		c := &chars[i]
-		f := &c.forms[form]
-
-		// Marks script-specific exclusions and version restricted.
-		f.isOneWay = c.excludeInComp
-
-		// Singletons
-		f.isOneWay = f.isOneWay || len(f.decomp) == 1
-
-		// Non-starter decompositions
-		if len(f.decomp) > 1 {
-			chk := c.ccc != 0 || chars[f.decomp[0]].ccc != 0
-			f.isOneWay = f.isOneWay || chk
-		}
-
-		// Runes that decompose into more than two runes.
-		f.isOneWay = f.isOneWay || len(f.decomp) > 2
-
-		if form == FCompatibility {
-			f.isOneWay = f.isOneWay || hasCompatDecomp(c.codePoint)
-		}
-
-		for _, r := range f.decomp {
-			chars[r].forms[form].inDecomp = true
-		}
-	}
-
-	// Phase 2: forward and backward combining.
-	for i := range chars {
-		c := &chars[i]
-		f := &c.forms[form]
-
-		if !f.isOneWay && len(f.decomp) == 2 {
-			f0 := &chars[f.decomp[0]].forms[form]
-			f1 := &chars[f.decomp[1]].forms[form]
-			if !f0.isOneWay {
-				f0.combinesForward = true
-			}
-			if !f1.isOneWay {
-				f1.combinesBackward = true
-			}
-		}
-	}
-
-	// Phase 3: quick check values.
-	for i := range chars {
-		c := &chars[i]
-		f := &c.forms[form]
-
-		switch {
-		case len(f.decomp) > 0:
-			f.quickCheck[MDecomposed] = QCNo
-		case isHangul(rune(i)):
-			f.quickCheck[MDecomposed] = QCNo
-		default:
-			f.quickCheck[MDecomposed] = QCYes
-		}
-		switch {
-		case f.isOneWay:
-			f.quickCheck[MComposed] = QCNo
-		case (i & 0xffff00) == JamoLBase:
-			f.quickCheck[MComposed] = QCYes
-			if JamoLBase <= i && i < JamoLEnd {
-				f.combinesForward = true
-			}
-			if JamoVBase <= i && i < JamoVEnd {
-				f.quickCheck[MComposed] = QCMaybe
-				f.combinesBackward = true
-				f.combinesForward = true
-			}
-			if JamoTBase <= i && i < JamoTEnd {
-				f.quickCheck[MComposed] = QCMaybe
-				f.combinesBackward = true
-			}
-		case !f.combinesBackward:
-			f.quickCheck[MComposed] = QCYes
-		default:
-			f.quickCheck[MComposed] = QCMaybe
-		}
-	}
-}
-
-func printBytes(b []byte, name string) {
-	fmt.Printf("// %s: %d bytes\n", name, len(b))
-	fmt.Printf("var %s = [...]byte {", name)
-	for i, c := range b {
-		switch {
-		case i%64 == 0:
-			fmt.Printf("\n// Bytes %x - %x\n", i, i+63)
-		case i%8 == 0:
-			fmt.Printf("\n")
-		}
-		fmt.Printf("0x%.2X, ", c)
-	}
-	fmt.Print("\n}\n\n")
-}
-
-// See forminfo.go for format.
-func makeEntry(f *FormInfo) uint16 {
-	e := uint16(0)
-	if f.combinesForward {
-		e |= 0x8
-	}
-	if f.quickCheck[MDecomposed] == QCNo {
-		e |= 0x1
-	}
-	switch f.quickCheck[MComposed] {
-	case QCYes:
-	case QCNo:
-		e |= 0x4
-	case QCMaybe:
-		e |= 0x6
-	default:
-		log.Fatalf("Illegal quickcheck value %v.", f.quickCheck[MComposed])
-	}
-	return e
-}
-
-// decompSet keeps track of unique decompositions, grouped by whether
-// the decomposition is followed by a trailing and/or leading CCC.
-type decompSet [6]map[string]bool
-
-const (
-	normalDecomp = iota
-	firstMulti
-	firstCCC
-	endMulti
-	firstLeadingCCC
-	firstCCCZeroExcept
-	lastDecomp
-)
-
-var cname = []string{"firstMulti", "firstCCC", "endMulti", "firstLeadingCCC", "firstCCCZeroExcept", "lastDecomp"}
-
-func makeDecompSet() decompSet {
-	m := decompSet{}
-	for i := range m {
-		m[i] = make(map[string]bool)
-	}
-	return m
-}
-func (m *decompSet) insert(key int, s string) {
-	m[key][s] = true
-}
-
-func printCharInfoTables() int {
-	mkstr := func(r rune, f *FormInfo) (int, string) {
-		d := f.expandedDecomp
-		s := string([]rune(d))
-		if max := 1 << 6; len(s) >= max {
-			const msg = "%U: too many bytes in decomposition: %d >= %d"
-			logger.Fatalf(msg, r, len(s), max)
-		}
-		head := uint8(len(s))
-		if f.quickCheck[MComposed] != QCYes {
-			head |= 0x40
-		}
-		if f.combinesForward {
-			head |= 0x80
-		}
-		s = string([]byte{head}) + s
-
-		lccc := ccc(d[0])
-		tccc := ccc(d[len(d)-1])
-		cc := ccc(r)
-		if cc != 0 && lccc == 0 && tccc == 0 {
-			logger.Fatalf("%U: trailing and leading ccc are 0 for non-zero ccc %d", r, cc)
-		}
-		if tccc < lccc && lccc != 0 {
-			const msg = "%U: lccc (%d) must be <= tcc (%d)"
-			logger.Fatalf(msg, r, lccc, tccc)
-		}
-		index := normalDecomp
-		if tccc > 0 || lccc > 0 {
-			s += string([]byte{tccc})
-			index = endMulti
-			for _, r := range d[1:] {
-				if ccc(r) == 0 {
-					index = firstCCC
-				}
-			}
-			if lccc > 0 {
-				s += string([]byte{lccc})
-				if index == firstCCC {
-					logger.Fatalf("%U: multi-segment decomposition not supported for decompositions with leading CCC != 0", r)
-				}
-				index = firstLeadingCCC
-			}
-			if cc != lccc {
-				if cc != 0 {
-					logger.Fatalf("%U: for lccc != ccc, expected ccc to be 0; was %d", r, cc)
-				}
-				index = firstCCCZeroExcept
-			}
-		} else if len(d) > 1 {
-			index = firstMulti
-		}
-		return index, s
-	}
-
-	decompSet := makeDecompSet()
-
-	// Store the uniqued decompositions in a byte buffer,
-	// preceded by their byte length.
-	for _, c := range chars {
-		for _, f := range c.forms {
-			if len(f.expandedDecomp) == 0 {
-				continue
-			}
-			if f.combinesBackward {
-				logger.Fatalf("%U: combinesBackward and decompose", c.codePoint)
-			}
-			index, s := mkstr(c.codePoint, &f)
-			decompSet.insert(index, s)
-		}
-	}
-
-	decompositions := bytes.NewBuffer(make([]byte, 0, 10000))
-	size := 0
-	positionMap := make(map[string]uint16)
-	decompositions.WriteString("\000")
-	fmt.Println("const (")
-	for i, m := range decompSet {
-		sa := []string{}
-		for s := range m {
-			sa = append(sa, s)
-		}
-		sort.Strings(sa)
-		for _, s := range sa {
-			p := decompositions.Len()
-			decompositions.WriteString(s)
-			positionMap[s] = uint16(p)
-		}
-		if cname[i] != "" {
-			fmt.Printf("%s = 0x%X\n", cname[i], decompositions.Len())
-		}
-	}
-	fmt.Println("maxDecomp = 0x8000")
-	fmt.Println(")")
-	b := decompositions.Bytes()
-	printBytes(b, "decomps")
-	size += len(b)
-
-	varnames := []string{"nfc", "nfkc"}
-	for i := 0; i < FNumberOfFormTypes; i++ {
-		trie := newNode()
-		for r, c := range chars {
-			f := c.forms[i]
-			d := f.expandedDecomp
-			if len(d) != 0 {
-				_, key := mkstr(c.codePoint, &f)
-				trie.insert(rune(r), positionMap[key])
-				if c.ccc != ccc(d[0]) {
-					// We assume the lead ccc of a decomposition !=0 in this case.
-					if ccc(d[0]) == 0 {
-						logger.Fatalf("Expected leading CCC to be non-zero; ccc is %d", c.ccc)
-					}
-				}
-			} else if v := makeEntry(&f)<<8 | uint16(c.ccc); v != 0 {
-				trie.insert(c.codePoint, 0x8000|v)
-			}
-		}
-		size += trie.printTables(varnames[i])
-	}
-	return size
-}
-
-func contains(sa []string, s string) bool {
-	for _, a := range sa {
-		if a == s {
-			return true
-		}
-	}
-	return false
-}
-
-// Extract the version number from the URL.
-func version() string {
-	// From http://www.unicode.org/standard/versions/#Version_Numbering:
-	// for the later Unicode versions, data files are located in
-	// versioned directories.
-	fields := strings.Split(*url, "/")
-	for _, f := range fields {
-		if match, _ := regexp.MatchString(`[0-9]\.[0-9]\.[0-9]`, f); match {
-			return f
-		}
-	}
-	logger.Fatal("unknown version")
-	return "Unknown"
-}
-
-const fileHeader = `// Generated by running
-//	maketables --tables=%s --url=%s
-// DO NOT EDIT
-
-package norm
-
-`
-
-func makeTables() {
-	size := 0
-	if *tablelist == "" {
-		return
-	}
-	list := strings.Split(*tablelist, ",")
-	if *tablelist == "all" {
-		list = []string{"recomp", "info"}
-	}
-	fmt.Printf(fileHeader, *tablelist, *url)
-
-	fmt.Println("// Version is the Unicode edition from which the tables are derived.")
-	fmt.Printf("const Version = %q\n\n", version())
-
-	if contains(list, "info") {
-		size += printCharInfoTables()
-	}
-
-	if contains(list, "recomp") {
-		// Note that we use 32 bit keys, instead of 64 bit.
-		// This clips the bits of three entries, but we know
-		// this won't cause a collision. The compiler will catch
-		// any changes made to UnicodeData.txt that introduces
-		// a collision.
-		// Note that the recomposition map for NFC and NFKC
-		// are identical.
-
-		// Recomposition map
-		nrentries := 0
-		for _, c := range chars {
-			f := c.forms[FCanonical]
-			if !f.isOneWay && len(f.decomp) > 0 {
-				nrentries++
-			}
-		}
-		sz := nrentries * 8
-		size += sz
-		fmt.Printf("// recompMap: %d bytes (entries only)\n", sz)
-		fmt.Println("var recompMap = map[uint32]rune{")
-		for i, c := range chars {
-			f := c.forms[FCanonical]
-			d := f.decomp
-			if !f.isOneWay && len(d) > 0 {
-				key := uint32(uint16(d[0]))<<16 + uint32(uint16(d[1]))
-				fmt.Printf("0x%.8X: 0x%.4X,\n", key, i)
-			}
-		}
-		fmt.Printf("}\n\n")
-	}
-
-	fmt.Printf("// Total size of tables: %dKB (%d bytes)\n", (size+512)/1024, size)
-}
-
-func printChars() {
-	if *verbose {
-		for _, c := range chars {
-			if !c.isValid() || c.state == SMissing {
-				continue
-			}
-			fmt.Println(c)
-		}
-	}
-}
-
-// verifyComputed does various consistency tests.
-func verifyComputed() {
-	for i, c := range chars {
-		for _, f := range c.forms {
-			isNo := (f.quickCheck[MDecomposed] == QCNo)
-			if (len(f.decomp) > 0) != isNo && !isHangul(rune(i)) {
-				log.Fatalf("%U: NF*D must be no if rune decomposes", i)
-			}
-
-			isMaybe := f.quickCheck[MComposed] == QCMaybe
-			if f.combinesBackward != isMaybe {
-				log.Fatalf("%U: NF*C must be maybe if combinesBackward", i)
-			}
-		}
-		nfc := c.forms[FCanonical]
-		nfkc := c.forms[FCompatibility]
-		if nfc.combinesBackward != nfkc.combinesBackward {
-			logger.Fatalf("%U: Cannot combine combinesBackward\n", c.codePoint)
-		}
-	}
-}
-
-var qcRe = regexp.MustCompile(`([0-9A-F\.]+) *; (NF.*_QC); ([YNM]) #.*`)
-
-// Use values in DerivedNormalizationProps.txt to compare against the
-// values we computed.
-// DerivedNormalizationProps.txt has form:
-// 00C0..00C5    ; NFD_QC; N # ...
-// 0374          ; NFD_QC; N # ...
-// See http://unicode.org/reports/tr44/ for full explanation
-func testDerived() {
-	if !*test {
-		return
-	}
-	f := openReader("DerivedNormalizationProps.txt")
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		qc := qcRe.FindStringSubmatch(line)
-		if qc == nil {
-			continue
-		}
-		rng := strings.Split(qc[1], "..")
-		i, err := strconv.ParseUint(rng[0], 16, 64)
-		if err != nil {
-			log.Fatal(err)
-		}
-		j := i
-		if len(rng) > 1 {
-			j, err = strconv.ParseUint(rng[1], 16, 64)
-			if err != nil {
-				log.Fatal(err)
-			}
-		}
-		var ftype, mode int
-		qt := strings.TrimSpace(qc[2])
-		switch qt {
-		case "NFC_QC":
-			ftype, mode = FCanonical, MComposed
-		case "NFD_QC":
-			ftype, mode = FCanonical, MDecomposed
-		case "NFKC_QC":
-			ftype, mode = FCompatibility, MComposed
-		case "NFKD_QC":
-			ftype, mode = FCompatibility, MDecomposed
-		default:
-			log.Fatalf(`Unexpected quick check type "%s"`, qt)
-		}
-		var qr QCResult
-		switch qc[3] {
-		case "Y":
-			qr = QCYes
-		case "N":
-			qr = QCNo
-		case "M":
-			qr = QCMaybe
-		default:
-			log.Fatalf(`Unexpected quick check value "%s"`, qc[3])
-		}
-		var lastFailed bool
-		// Verify current
-		for ; i <= j; i++ {
-			c := &chars[int(i)]
-			c.forms[ftype].verified[mode] = true
-			curqr := c.forms[ftype].quickCheck[mode]
-			if curqr != qr {
-				if !lastFailed {
-					logger.Printf("%s: %.4X..%.4X -- %s\n",
-						qt, int(i), int(j), line[0:50])
-				}
-				logger.Printf("%U: FAILED %s (was %v need %v)\n",
-					int(i), qt, curqr, qr)
-				lastFailed = true
-			}
-		}
-	}
-	// Any unspecified value must be QCYes. Verify this.
-	for i, c := range chars {
-		for j, fd := range c.forms {
-			for k, qr := range fd.quickCheck {
-				if !fd.verified[k] && qr != QCYes {
-					m := "%U: FAIL F:%d M:%d (was %v need Yes) %s\n"
-					logger.Printf(m, i, j, k, qr, c.name)
-				}
-			}
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/maketesttables.go gcc-4.8.1/libgo/go/exp/norm/maketesttables.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/maketesttables.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/maketesttables.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,45 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Generate test data for trie code.
-
-package main
-
-import (
-	"fmt"
-)
-
-func main() {
-	printTestTables()
-}
-
-// We take the smallest, largest and an arbitrary value for each
-// of the UTF-8 sequence lengths.
-var testRunes = []rune{
-	0x01, 0x0C, 0x7F, // 1-byte sequences
-	0x80, 0x100, 0x7FF, // 2-byte sequences
-	0x800, 0x999, 0xFFFF, // 3-byte sequences
-	0x10000, 0x10101, 0x10FFFF, // 4-byte sequences
-	0x200, 0x201, 0x202, 0x210, 0x215, // five entries in one sparse block
-}
-
-const fileHeader = `// Generated by running
-//	maketesttables
-// DO NOT EDIT
-
-package norm
-
-`
-
-func printTestTables() {
-	fmt.Print(fileHeader)
-	fmt.Printf("var testRunes = %#v\n\n", testRunes)
-	t := newNode()
-	for i, r := range testRunes {
-		t.insert(r, uint16(i))
-	}
-	t.printTables("testdata")
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/normalize.go gcc-4.8.1/libgo/go/exp/norm/normalize.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/normalize.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/norm/normalize.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,478 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package norm contains types and functions for normalizing Unicode strings.
-package norm
-
-import "unicode/utf8"
-
-// A Form denotes a canonical representation of Unicode code points.
-// The Unicode-defined normalization and equivalence forms are:
-//
-//   NFC   Unicode Normalization Form C
-//   NFD   Unicode Normalization Form D
-//   NFKC  Unicode Normalization Form KC
-//   NFKD  Unicode Normalization Form KD
-//
-// For a Form f, this documentation uses the notation f(x) to mean
-// the bytes or string x converted to the given form.
-// A position n in x is called a boundary if conversion to the form can
-// proceed independently on both sides:
-//   f(x) == append(f(x[0:n]), f(x[n:])...)
-//
-// References: http://unicode.org/reports/tr15/ and
-// http://unicode.org/notes/tn5/.
-type Form int
-
-const (
-	NFC Form = iota
-	NFD
-	NFKC
-	NFKD
-)
-
-// Bytes returns f(b). May return b if f(b) = b.
-func (f Form) Bytes(b []byte) []byte {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	n := quickSpan(&rb, 0)
-	if n == len(b) {
-		return b
-	}
-	out := make([]byte, n, len(b))
-	copy(out, b[0:n])
-	return doAppend(&rb, out, n)
-}
-
-// String returns f(s).
-func (f Form) String(s string) string {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	n := quickSpan(&rb, 0)
-	if n == len(s) {
-		return s
-	}
-	out := make([]byte, n, len(s))
-	copy(out, s[0:n])
-	return string(doAppend(&rb, out, n))
-}
-
-// IsNormal returns true if b == f(b).
-func (f Form) IsNormal(b []byte) bool {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	bp := quickSpan(&rb, 0)
-	if bp == len(b) {
-		return true
-	}
-	for bp < len(b) {
-		decomposeSegment(&rb, bp)
-		if rb.f.composing {
-			rb.compose()
-		}
-		for i := 0; i < rb.nrune; i++ {
-			info := rb.rune[i]
-			if bp+int(info.size) > len(b) {
-				return false
-			}
-			p := info.pos
-			pe := p + info.size
-			for ; p < pe; p++ {
-				if b[bp] != rb.byte[p] {
-					return false
-				}
-				bp++
-			}
-		}
-		rb.reset()
-		bp = quickSpan(&rb, bp)
-	}
-	return true
-}
-
-// IsNormalString returns true if s == f(s).
-func (f Form) IsNormalString(s string) bool {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	bp := quickSpan(&rb, 0)
-	if bp == len(s) {
-		return true
-	}
-	for bp < len(s) {
-		decomposeSegment(&rb, bp)
-		if rb.f.composing {
-			rb.compose()
-		}
-		for i := 0; i < rb.nrune; i++ {
-			info := rb.rune[i]
-			if bp+int(info.size) > len(s) {
-				return false
-			}
-			p := info.pos
-			pe := p + info.size
-			for ; p < pe; p++ {
-				if s[bp] != rb.byte[p] {
-					return false
-				}
-				bp++
-			}
-		}
-		rb.reset()
-		bp = quickSpan(&rb, bp)
-	}
-	return true
-}
-
-// patchTail fixes a case where a rune may be incorrectly normalized
-// if it is followed by illegal continuation bytes. It returns the
-// patched buffer and whether there were trailing continuation bytes.
-func patchTail(rb *reorderBuffer, buf []byte) ([]byte, bool) {
-	info, p := lastRuneStart(&rb.f, buf)
-	if p == -1 || info.size == 0 {
-		return buf, false
-	}
-	end := p + int(info.size)
-	extra := len(buf) - end
-	if extra > 0 {
-		// Potentially allocating memory. However, this only
-		// happens with ill-formed UTF-8.
-		x := make([]byte, 0)
-		x = append(x, buf[len(buf)-extra:]...)
-		buf = decomposeToLastBoundary(rb, buf[:end])
-		if rb.f.composing {
-			rb.compose()
-		}
-		buf = rb.flush(buf)
-		return append(buf, x...), true
-	}
-	return buf, false
-}
-
-func appendQuick(rb *reorderBuffer, dst []byte, i int) ([]byte, int) {
-	if rb.nsrc == i {
-		return dst, i
-	}
-	end := quickSpan(rb, i)
-	return rb.src.appendSlice(dst, i, end), end
-}
-
-// Append returns f(append(out, b...)).
-// The buffer out must be nil, empty, or equal to f(out).
-func (f Form) Append(out []byte, src ...byte) []byte {
-	if len(src) == 0 {
-		return out
-	}
-	rb := reorderBuffer{}
-	rb.init(f, src)
-	return doAppend(&rb, out, 0)
-}
-
-func doAppend(rb *reorderBuffer, out []byte, p int) []byte {
-	src, n := rb.src, rb.nsrc
-	doMerge := len(out) > 0
-	if q := src.skipNonStarter(p); q > p {
-		// Move leading non-starters to destination.
-		out = src.appendSlice(out, p, q)
-		buf, endsInError := patchTail(rb, out)
-		if endsInError {
-			out = buf
-			doMerge = false // no need to merge, ends with illegal UTF-8
-		} else {
-			out = decomposeToLastBoundary(rb, buf) // force decomposition
-		}
-		p = q
-	}
-	fd := &rb.f
-	if doMerge {
-		var info Properties
-		if p < n {
-			info = fd.info(src, p)
-			if p == 0 && !info.BoundaryBefore() {
-				out = decomposeToLastBoundary(rb, out)
-			}
-		}
-		if info.size == 0 || info.BoundaryBefore() {
-			if fd.composing {
-				rb.compose()
-			}
-			out = rb.flush(out)
-			if info.size == 0 {
-				// Append incomplete UTF-8 encoding.
-				return src.appendSlice(out, p, n)
-			}
-		}
-	}
-	if rb.nrune == 0 {
-		out, p = appendQuick(rb, out, p)
-	}
-	for p < n {
-		p = decomposeSegment(rb, p)
-		if fd.composing {
-			rb.compose()
-		}
-		out = rb.flush(out)
-		out, p = appendQuick(rb, out, p)
-	}
-	return out
-}
-
-// AppendString returns f(append(out, []byte(s))).
-// The buffer out must be nil, empty, or equal to f(out).
-func (f Form) AppendString(out []byte, src string) []byte {
-	if len(src) == 0 {
-		return out
-	}
-	rb := reorderBuffer{}
-	rb.initString(f, src)
-	return doAppend(&rb, out, 0)
-}
-
-// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]).
-// It is not guaranteed to return the largest such n.
-func (f Form) QuickSpan(b []byte) int {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	n := quickSpan(&rb, 0)
-	return n
-}
-
-func quickSpan(rb *reorderBuffer, i int) int {
-	var lastCC uint8
-	var nc int
-	lastSegStart := i
-	src, n := rb.src, rb.nsrc
-	for i < n {
-		if j := src.skipASCII(i, n); i != j {
-			i = j
-			lastSegStart = i - 1
-			lastCC = 0
-			nc = 0
-			continue
-		}
-		info := rb.f.info(src, i)
-		if info.size == 0 {
-			// include incomplete runes
-			return n
-		}
-		cc := info.ccc
-		if rb.f.composing {
-			if !info.isYesC() {
-				break
-			}
-		} else {
-			if !info.isYesD() {
-				break
-			}
-		}
-		if cc == 0 {
-			lastSegStart = i
-			nc = 0
-		} else {
-			if nc >= maxCombiningChars {
-				lastSegStart = i
-				lastCC = cc
-				nc = 1
-			} else {
-				if lastCC > cc {
-					return lastSegStart
-				}
-				nc++
-			}
-		}
-		lastCC = cc
-		i += int(info.size)
-	}
-	if i == n {
-		return n
-	}
-	if rb.f.composing {
-		return lastSegStart
-	}
-	return i
-}
-
-// QuickSpanString returns a boundary n such that b[0:n] == f(s[0:n]).
-// It is not guaranteed to return the largest such n.
-func (f Form) QuickSpanString(s string) int {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	return quickSpan(&rb, 0)
-}
-
-// FirstBoundary returns the position i of the first boundary in b
-// or -1 if b contains no boundary.
-func (f Form) FirstBoundary(b []byte) int {
-	rb := reorderBuffer{}
-	rb.init(f, b)
-	return firstBoundary(&rb)
-}
-
-func firstBoundary(rb *reorderBuffer) int {
-	src, nsrc := rb.src, rb.nsrc
-	i := src.skipNonStarter(0)
-	if i >= nsrc {
-		return -1
-	}
-	fd := &rb.f
-	info := fd.info(src, i)
-	for n := 0; info.size != 0 && !info.BoundaryBefore(); {
-		i += int(info.size)
-		if n++; n >= maxCombiningChars {
-			return i
-		}
-		if i >= nsrc {
-			if !info.BoundaryAfter() {
-				return -1
-			}
-			return nsrc
-		}
-		info = fd.info(src, i)
-	}
-	if info.size == 0 {
-		return -1
-	}
-	return i
-}
-
-// FirstBoundaryInString returns the position i of the first boundary in s
-// or -1 if s contains no boundary.
-func (f Form) FirstBoundaryInString(s string) int {
-	rb := reorderBuffer{}
-	rb.initString(f, s)
-	return firstBoundary(&rb)
-}
-
-// LastBoundary returns the position i of the last boundary in b
-// or -1 if b contains no boundary.
-func (f Form) LastBoundary(b []byte) int {
-	return lastBoundary(formTable[f], b)
-}
-
-func lastBoundary(fd *formInfo, b []byte) int {
-	i := len(b)
-	info, p := lastRuneStart(fd, b)
-	if p == -1 {
-		return -1
-	}
-	if info.size == 0 { // ends with incomplete rune
-		if p == 0 { // starts with incomplete rune
-			return -1
-		}
-		i = p
-		info, p = lastRuneStart(fd, b[:i])
-		if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter
-			return i
-		}
-	}
-	if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8
-		return i
-	}
-	if info.BoundaryAfter() {
-		return i
-	}
-	i = p
-	for n := 0; i >= 0 && !info.BoundaryBefore(); {
-		info, p = lastRuneStart(fd, b[:i])
-		if n++; n >= maxCombiningChars {
-			return len(b)
-		}
-		if p+int(info.size) != i {
-			if p == -1 { // no boundary found
-				return -1
-			}
-			return i // boundary after an illegal UTF-8 encoding
-		}
-		i = p
-	}
-	return i
-}
-
-// decomposeSegment scans the first segment in src into rb.
-// It returns the number of bytes consumed from src.
-// TODO(mpvl): consider inserting U+034f (Combining Grapheme Joiner)
-// when we detect a sequence of 30+ non-starter chars.
-func decomposeSegment(rb *reorderBuffer, sp int) int {
-	// Force one character to be consumed.
-	info := rb.f.info(rb.src, sp)
-	if info.size == 0 {
-		return 0
-	}
-	for rb.insert(rb.src, sp, info) {
-		sp += int(info.size)
-		if sp >= rb.nsrc {
-			break
-		}
-		info = rb.f.info(rb.src, sp)
-		bound := info.BoundaryBefore()
-		if bound || info.size == 0 {
-			break
-		}
-	}
-	return sp
-}
-
-// lastRuneStart returns the runeInfo and position of the last
-// rune in buf or the zero runeInfo and -1 if no rune was found.
-func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) {
-	p := len(buf) - 1
-	for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {
-	}
-	if p < 0 {
-		return Properties{}, -1
-	}
-	return fd.info(inputBytes(buf), p), p
-}
-
-// decomposeToLastBoundary finds an open segment at the end of the buffer
-// and scans it into rb. Returns the buffer minus the last segment.
-func decomposeToLastBoundary(rb *reorderBuffer, buf []byte) []byte {
-	fd := &rb.f
-	info, i := lastRuneStart(fd, buf)
-	if int(info.size) != len(buf)-i {
-		// illegal trailing continuation bytes
-		return buf
-	}
-	if info.BoundaryAfter() {
-		return buf
-	}
-	var add [maxBackRunes]Properties // stores runeInfo in reverse order
-	add[0] = info
-	padd := 1
-	n := 1
-	p := len(buf) - int(info.size)
-	for ; p >= 0 && !info.BoundaryBefore(); p -= int(info.size) {
-		info, i = lastRuneStart(fd, buf[:p])
-		if int(info.size) != p-i {
-			break
-		}
-		// Check that decomposition doesn't result in overflow.
-		if info.hasDecomposition() {
-			if isHangul(buf) {
-				i += int(info.size)
-				n++
-			} else {
-				dcomp := info.Decomposition()
-				for i := 0; i < len(dcomp); {
-					inf := rb.f.info(inputBytes(dcomp), i)
-					i += int(inf.size)
-					n++
-				}
-			}
-		} else {
-			n++
-		}
-		if n > maxBackRunes {
-			break
-		}
-		add[padd] = info
-		padd++
-	}
-	pp := p
-	for padd--; padd >= 0; padd-- {
-		info = add[padd]
-		rb.insert(inputBytes(buf), pp, info)
-		pp += int(info.size)
-	}
-	return buf[:p]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/normalize_test.go gcc-4.8.1/libgo/go/exp/norm/normalize_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/normalize_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/normalize_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,750 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"bytes"
-	"io"
-	"strings"
-	"testing"
-)
-
-type PositionTest struct {
-	input  string
-	pos    int
-	buffer string // expected contents of reorderBuffer, if applicable
-}
-
-type positionFunc func(rb *reorderBuffer, s string) int
-
-func runPosTests(t *testing.T, name string, f Form, fn positionFunc, tests []PositionTest) {
-	rb := reorderBuffer{}
-	rb.init(f, nil)
-	for i, test := range tests {
-		rb.reset()
-		rb.src = inputString(test.input)
-		rb.nsrc = len(test.input)
-		pos := fn(&rb, test.input)
-		if pos != test.pos {
-			t.Errorf("%s:%d: position is %d; want %d", name, i, pos, test.pos)
-		}
-		runes := []rune(test.buffer)
-		if rb.nrune != len(runes) {
-			t.Errorf("%s:%d: reorder buffer length is %d; want %d", name, i, rb.nrune, len(runes))
-			continue
-		}
-		for j, want := range runes {
-			found := rune(rb.runeAt(j))
-			if found != want {
-				t.Errorf("%s:%d: rune at %d is %U; want %U", name, i, j, found, want)
-			}
-		}
-	}
-}
-
-var decomposeSegmentTests = []PositionTest{
-	// illegal runes
-	{"\xC0", 0, ""},
-	{"\u00E0\x80", 2, "\u0061\u0300"},
-	// starter
-	{"a", 1, "a"},
-	{"ab", 1, "a"},
-	// starter + composing
-	{"a\u0300", 3, "a\u0300"},
-	{"a\u0300b", 3, "a\u0300"},
-	// with decomposition
-	{"\u00C0", 2, "A\u0300"},
-	{"\u00C0b", 2, "A\u0300"},
-	// long
-	{strings.Repeat("\u0300", 31), 62, strings.Repeat("\u0300", 31)},
-	// ends with incomplete UTF-8 encoding
-	{"\xCC", 0, ""},
-	{"\u0300\xCC", 2, "\u0300"},
-}
-
-func decomposeSegmentF(rb *reorderBuffer, s string) int {
-	rb.src = inputString(s)
-	rb.nsrc = len(s)
-	return decomposeSegment(rb, 0)
-}
-
-func TestDecomposeSegment(t *testing.T) {
-	runPosTests(t, "TestDecomposeSegment", NFC, decomposeSegmentF, decomposeSegmentTests)
-}
-
-var firstBoundaryTests = []PositionTest{
-	// no boundary
-	{"", -1, ""},
-	{"\u0300", -1, ""},
-	{"\x80\x80", -1, ""},
-	// illegal runes
-	{"\xff", 0, ""},
-	{"\u0300\xff", 2, ""},
-	{"\u0300\xc0\x80\x80", 2, ""},
-	// boundaries
-	{"a", 0, ""},
-	{"\u0300a", 2, ""},
-	// Hangul
-	{"\u1103\u1161", 0, ""},
-	{"\u110B\u1173\u11B7", 0, ""},
-	{"\u1161\u110B\u1173\u11B7", 3, ""},
-	{"\u1173\u11B7\u1103\u1161", 6, ""},
-	// too many combining characters.
-	{strings.Repeat("\u0300", maxCombiningChars-1), -1, ""},
-	{strings.Repeat("\u0300", maxCombiningChars), 60, ""},
-	{strings.Repeat("\u0300", maxCombiningChars+1), 60, ""},
-}
-
-func firstBoundaryF(rb *reorderBuffer, s string) int {
-	return rb.f.form.FirstBoundary([]byte(s))
-}
-
-func firstBoundaryStringF(rb *reorderBuffer, s string) int {
-	return rb.f.form.FirstBoundaryInString(s)
-}
-
-func TestFirstBoundary(t *testing.T) {
-	runPosTests(t, "TestFirstBoundary", NFC, firstBoundaryF, firstBoundaryTests)
-	runPosTests(t, "TestFirstBoundaryInString", NFC, firstBoundaryStringF, firstBoundaryTests)
-}
-
-var decomposeToLastTests = []PositionTest{
-	// ends with inert character
-	{"Hello!", 6, ""},
-	{"\u0632", 2, ""},
-	{"a\u0301\u0635", 5, ""},
-	// ends with non-inert starter
-	{"a", 0, "a"},
-	{"a\u0301a", 3, "a"},
-	{"a\u0301\u03B9", 3, "\u03B9"},
-	{"a\u0327", 0, "a\u0327"},
-	// illegal runes
-	{"\xFF", 1, ""},
-	{"aa\xFF", 3, ""},
-	{"\xC0\x80\x80", 3, ""},
-	{"\xCC\x80\x80", 3, ""},
-	// ends with incomplete UTF-8 encoding
-	{"a\xCC", 2, ""},
-	// ends with combining characters
-	{"\u0300\u0301", 0, "\u0300\u0301"},
-	{"a\u0300\u0301", 0, "a\u0300\u0301"},
-	{"a\u0301\u0308", 0, "a\u0301\u0308"},
-	{"a\u0308\u0301", 0, "a\u0308\u0301"},
-	{"aaaa\u0300\u0301", 3, "a\u0300\u0301"},
-	{"\u0300a\u0300\u0301", 2, "a\u0300\u0301"},
-	{"\u00C0", 0, "A\u0300"},
-	{"a\u00C0", 1, "A\u0300"},
-	// decomposing
-	{"a\u0300\uFDC0", 3, "\u0645\u062C\u064A"},
-	{"\uFDC0" + strings.Repeat("\u0300", 26), 0, "\u0645\u062C\u064A" + strings.Repeat("\u0300", 26)},
-	// Hangul
-	{"a\u1103", 1, "\u1103"},
-	{"a\u110B", 1, "\u110B"},
-	{"a\u110B\u1173", 1, "\u110B\u1173"},
-	// See comment in composition.go:compBoundaryAfter.
-	{"a\u110B\u1173\u11B7", 1, "\u110B\u1173\u11B7"},
-	{"a\uC73C", 1, "\u110B\u1173"},
-	{"ë‹¤ìŒ", 3, "\u110B\u1173\u11B7"},
-	{"ë‹¤", 0, "\u1103\u1161"},
-	{"\u1103\u1161\u110B\u1173\u11B7", 6, "\u110B\u1173\u11B7"},
-	{"\u110B\u1173\u11B7\u1103\u1161", 9, "\u1103\u1161"},
-	{"ë‹¤ìŒìŒ", 6, "\u110B\u1173\u11B7"},
-	{"ìŒë‹¤ë‹¤", 6, "\u1103\u1161"},
-	// buffer overflow
-	{"a" + strings.Repeat("\u0300", 30), 3, strings.Repeat("\u0300", 29)},
-	{"\uFDFA" + strings.Repeat("\u0300", 14), 3, strings.Repeat("\u0300", 14)},
-	// weird UTF-8
-	{"a\u0300\u11B7", 0, "a\u0300\u11B7"},
-}
-
-func decomposeToLast(rb *reorderBuffer, s string) int {
-	buf := decomposeToLastBoundary(rb, []byte(s))
-	return len(buf)
-}
-
-func TestDecomposeToLastBoundary(t *testing.T) {
-	runPosTests(t, "TestDecomposeToLastBoundary", NFKC, decomposeToLast, decomposeToLastTests)
-}
-
-var lastBoundaryTests = []PositionTest{
-	// ends with inert character
-	{"Hello!", 6, ""},
-	{"\u0632", 2, ""},
-	// ends with non-inert starter
-	{"a", 0, ""},
-	// illegal runes
-	{"\xff", 1, ""},
-	{"aa\xff", 3, ""},
-	{"a\xff\u0300", 1, ""},
-	{"\xc0\x80\x80", 3, ""},
-	{"\xc0\x80\x80\u0300", 3, ""},
-	// ends with incomplete UTF-8 encoding
-	{"\xCC", -1, ""},
-	{"\xE0\x80", -1, ""},
-	{"\xF0\x80\x80", -1, ""},
-	{"a\xCC", 0, ""},
-	{"\x80\xCC", 1, ""},
-	{"\xCC\xCC", 1, ""},
-	// ends with combining characters
-	{"a\u0300\u0301", 0, ""},
-	{"aaaa\u0300\u0301", 3, ""},
-	{"\u0300a\u0300\u0301", 2, ""},
-	{"\u00C0", 0, ""},
-	{"a\u00C0", 1, ""},
-	// decomposition may recombine
-	{"\u0226", 0, ""},
-	// no boundary
-	{"", -1, ""},
-	{"\u0300\u0301", -1, ""},
-	{"\u0300", -1, ""},
-	{"\x80\x80", -1, ""},
-	{"\x80\x80\u0301", -1, ""},
-	// Hangul
-	{"ë‹¤ìŒ", 3, ""},
-	{"ë‹¤", 0, ""},
-	{"\u1103\u1161\u110B\u1173\u11B7", 6, ""},
-	{"\u110B\u1173\u11B7\u1103\u1161", 9, ""},
-	// too many combining characters.
-	{strings.Repeat("\u0300", maxCombiningChars-1), -1, ""},
-	{strings.Repeat("\u0300", maxCombiningChars), 60, ""},
-	{strings.Repeat("\u0300", maxCombiningChars+1), 62, ""},
-}
-
-func lastBoundaryF(rb *reorderBuffer, s string) int {
-	return rb.f.form.LastBoundary([]byte(s))
-}
-
-func TestLastBoundary(t *testing.T) {
-	runPosTests(t, "TestLastBoundary", NFC, lastBoundaryF, lastBoundaryTests)
-}
-
-var quickSpanTests = []PositionTest{
-	{"", 0, ""},
-	// starters
-	{"a", 1, ""},
-	{"abc", 3, ""},
-	{"\u043Eb", 3, ""},
-	// incomplete last rune.
-	{"\xCC", 1, ""},
-	{"a\xCC", 2, ""},
-	// incorrectly ordered combining characters
-	{"\u0300\u0316", 0, ""},
-	{"\u0300\u0316cd", 0, ""},
-	// have a maximum number of combining characters.
-	{strings.Repeat("\u035D", 30) + "\u035B", 62, ""},
-	{"a" + strings.Repeat("\u035D", 30) + "\u035B", 63, ""},
-	{"ÆŸ" + strings.Repeat("\u035D", 30) + "\u035B", 64, ""},
-	{"aa" + strings.Repeat("\u035D", 30) + "\u035B", 64, ""},
-}
-
-var quickSpanNFDTests = []PositionTest{
-	// needs decomposing
-	{"\u00C0", 0, ""},
-	{"abc\u00C0", 3, ""},
-	// correctly ordered combining characters
-	{"\u0300", 2, ""},
-	{"ab\u0300", 4, ""},
-	{"ab\u0300cd", 6, ""},
-	{"\u0300cd", 4, ""},
-	{"\u0316\u0300", 4, ""},
-	{"ab\u0316\u0300", 6, ""},
-	{"ab\u0316\u0300cd", 8, ""},
-	{"ab\u0316\u0300\u00C0", 6, ""},
-	{"\u0316\u0300cd", 6, ""},
-	{"\u043E\u0308b", 5, ""},
-	// incorrectly ordered combining characters
-	{"ab\u0300\u0316", 1, ""}, // TODO: we could skip 'b' as well.
-	{"ab\u0300\u0316cd", 1, ""},
-	// Hangul
-	{"ê°™ì€", 0, ""},
-}
-
-var quickSpanNFCTests = []PositionTest{
-	// okay composed
-	{"\u00C0", 2, ""},
-	{"abc\u00C0", 5, ""},
-	// correctly ordered combining characters
-	{"ab\u0300", 1, ""},
-	{"ab\u0300cd", 1, ""},
-	{"ab\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300cd", 1, ""},
-	{"\u00C0\u035D", 4, ""},
-	// we do not special case leading combining characters
-	{"\u0300cd", 0, ""},
-	{"\u0300", 0, ""},
-	{"\u0316\u0300", 0, ""},
-	{"\u0316\u0300cd", 0, ""},
-	// incorrectly ordered combining characters
-	{"ab\u0300\u0316", 1, ""},
-	{"ab\u0300\u0316cd", 1, ""},
-	// Hangul
-	{"ê°™ì€", 6, ""},
-}
-
-func doQuickSpan(rb *reorderBuffer, s string) int {
-	return rb.f.form.QuickSpan([]byte(s))
-}
-
-func doQuickSpanString(rb *reorderBuffer, s string) int {
-	return rb.f.form.QuickSpanString(s)
-}
-
-func TestQuickSpan(t *testing.T) {
-	runPosTests(t, "TestQuickSpanNFD1", NFD, doQuickSpan, quickSpanTests)
-	runPosTests(t, "TestQuickSpanNFD2", NFD, doQuickSpan, quickSpanNFDTests)
-	runPosTests(t, "TestQuickSpanNFC1", NFC, doQuickSpan, quickSpanTests)
-	runPosTests(t, "TestQuickSpanNFC2", NFC, doQuickSpan, quickSpanNFCTests)
-
-	runPosTests(t, "TestQuickSpanStringNFD1", NFD, doQuickSpanString, quickSpanTests)
-	runPosTests(t, "TestQuickSpanStringNFD2", NFD, doQuickSpanString, quickSpanNFDTests)
-	runPosTests(t, "TestQuickSpanStringNFC1", NFC, doQuickSpanString, quickSpanTests)
-	runPosTests(t, "TestQuickSpanStringNFC2", NFC, doQuickSpanString, quickSpanNFCTests)
-}
-
-var isNormalTests = []PositionTest{
-	{"", 1, ""},
-	// illegal runes
-	{"\xff", 1, ""},
-	// starters
-	{"a", 1, ""},
-	{"abc", 1, ""},
-	{"\u043Eb", 1, ""},
-	// incorrectly ordered combining characters
-	{"\u0300\u0316", 0, ""},
-	{"ab\u0300\u0316", 0, ""},
-	{"ab\u0300\u0316cd", 0, ""},
-	{"\u0300\u0316cd", 0, ""},
-}
-var isNormalNFDTests = []PositionTest{
-	// needs decomposing
-	{"\u00C0", 0, ""},
-	{"abc\u00C0", 0, ""},
-	// correctly ordered combining characters
-	{"\u0300", 1, ""},
-	{"ab\u0300", 1, ""},
-	{"ab\u0300cd", 1, ""},
-	{"\u0300cd", 1, ""},
-	{"\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300cd", 1, ""},
-	{"\u0316\u0300cd", 1, ""},
-	{"\u043E\u0308b", 1, ""},
-	// Hangul
-	{"ê°™ì€", 0, ""},
-}
-var isNormalNFCTests = []PositionTest{
-	// okay composed
-	{"\u00C0", 1, ""},
-	{"abc\u00C0", 1, ""},
-	// need reordering
-	{"a\u0300", 0, ""},
-	{"a\u0300cd", 0, ""},
-	{"a\u0316\u0300", 0, ""},
-	{"a\u0316\u0300cd", 0, ""},
-	// correctly ordered combining characters
-	{"ab\u0300", 1, ""},
-	{"ab\u0300cd", 1, ""},
-	{"ab\u0316\u0300", 1, ""},
-	{"ab\u0316\u0300cd", 1, ""},
-	{"\u00C0\u035D", 1, ""},
-	{"\u0300", 1, ""},
-	{"\u0316\u0300cd", 1, ""},
-	// Hangul
-	{"ê°™ì€", 1, ""},
-}
-
-func isNormalF(rb *reorderBuffer, s string) int {
-	if rb.f.form.IsNormal([]byte(s)) {
-		return 1
-	}
-	return 0
-}
-
-func TestIsNormal(t *testing.T) {
-	runPosTests(t, "TestIsNormalNFD1", NFD, isNormalF, isNormalTests)
-	runPosTests(t, "TestIsNormalNFD2", NFD, isNormalF, isNormalNFDTests)
-	runPosTests(t, "TestIsNormalNFC1", NFC, isNormalF, isNormalTests)
-	runPosTests(t, "TestIsNormalNFC2", NFC, isNormalF, isNormalNFCTests)
-}
-
-type AppendTest struct {
-	left  string
-	right string
-	out   string
-}
-
-type appendFunc func(f Form, out []byte, s string) []byte
-
-func runAppendTests(t *testing.T, name string, f Form, fn appendFunc, tests []AppendTest) {
-	for i, test := range tests {
-		out := []byte(test.left)
-		out = fn(f, out, test.right)
-		outs := string(out)
-		if len(outs) != len(test.out) {
-			t.Errorf("%s:%d: length is %d; want %d", name, i, len(outs), len(test.out))
-		}
-		if outs != test.out {
-			// Find first rune that differs and show context.
-			ir := []rune(outs)
-			ig := []rune(test.out)
-			for j := 0; j < len(ir) && j < len(ig); j++ {
-				if ir[j] == ig[j] {
-					continue
-				}
-				if j -= 3; j < 0 {
-					j = 0
-				}
-				for e := j + 7; j < e && j < len(ir) && j < len(ig); j++ {
-					t.Errorf("%s:%d: runeAt(%d) = %U; want %U", name, i, j, ir[j], ig[j])
-				}
-				break
-			}
-		}
-	}
-}
-
-var appendTests = []AppendTest{
-	// empty buffers
-	{"", "", ""},
-	{"a", "", "a"},
-	{"", "a", "a"},
-	{"", "\u0041\u0307\u0304", "\u01E0"},
-	// segment split across buffers
-	{"", "a\u0300b", "\u00E0b"},
-	{"a", "\u0300b", "\u00E0b"},
-	{"a", "\u0300\u0316", "\u00E0\u0316"},
-	{"a", "\u0316\u0300", "\u00E0\u0316"},
-	{"a", "\u0300a\u0300", "\u00E0\u00E0"},
-	{"a", "\u0300a\u0300a\u0300", "\u00E0\u00E0\u00E0"},
-	{"a", "\u0300aaa\u0300aaa\u0300", "\u00E0aa\u00E0aa\u00E0"},
-	{"a\u0300", "\u0327", "\u00E0\u0327"},
-	{"a\u0327", "\u0300", "\u00E0\u0327"},
-	{"a\u0316", "\u0300", "\u00E0\u0316"},
-	{"\u0041\u0307", "\u0304", "\u01E0"},
-	// Hangul
-	{"", "\u110B\u1173", "\uC73C"},
-	{"", "\u1103\u1161", "\uB2E4"},
-	{"", "\u110B\u1173\u11B7", "\uC74C"},
-	{"", "\u320E", "\x28\uAC00\x29"},
-	{"", "\x28\u1100\u1161\x29", "\x28\uAC00\x29"},
-	{"\u1103", "\u1161", "\uB2E4"},
-	{"\u110B", "\u1173\u11B7", "\uC74C"},
-	{"\u110B\u1173", "\u11B7", "\uC74C"},
-	{"\uC73C", "\u11B7", "\uC74C"},
-	// UTF-8 encoding split across buffers
-	{"a\xCC", "\x80", "\u00E0"},
-	{"a\xCC", "\x80b", "\u00E0b"},
-	{"a\xCC", "\x80a\u0300", "\u00E0\u00E0"},
-	{"a\xCC", "\x80\x80", "\u00E0\x80"},
-	{"a\xCC", "\x80\xCC", "\u00E0\xCC"},
-	{"a\u0316\xCC", "\x80a\u0316\u0300", "\u00E0\u0316\u00E0\u0316"},
-	// ending in incomplete UTF-8 encoding
-	{"", "\xCC", "\xCC"},
-	{"a", "\xCC", "a\xCC"},
-	{"a", "b\xCC", "ab\xCC"},
-	{"\u0226", "\xCC", "\u0226\xCC"},
-	// illegal runes
-	{"", "\x80", "\x80"},
-	{"", "\x80\x80\x80", "\x80\x80\x80"},
-	{"", "\xCC\x80\x80\x80", "\xCC\x80\x80\x80"},
-	{"", "a\x80", "a\x80"},
-	{"", "a\x80\x80\x80", "a\x80\x80\x80"},
-	{"", "a\x80\x80\x80\x80\x80\x80", "a\x80\x80\x80\x80\x80\x80"},
-	{"a", "\x80\x80\x80", "a\x80\x80\x80"},
-	// overflow
-	{"", strings.Repeat("\x80", 33), strings.Repeat("\x80", 33)},
-	{strings.Repeat("\x80", 33), "", strings.Repeat("\x80", 33)},
-	{strings.Repeat("\x80", 33), strings.Repeat("\x80", 33), strings.Repeat("\x80", 66)},
-	// overflow of combining characters
-	{strings.Repeat("\u0300", 33), "", strings.Repeat("\u0300", 33)},
-	// weird UTF-8
-	{"\u00E0\xE1", "\x86", "\u00E0\xE1\x86"},
-	{"a\u0300\u11B7", "\u0300", "\u00E0\u11B7\u0300"},
-	{"a\u0300\u11B7\u0300", "\u0300", "\u00E0\u11B7\u0300\u0300"},
-	{"\u0300", "\xF8\x80\x80\x80\x80\u0300", "\u0300\xF8\x80\x80\x80\x80\u0300"},
-	{"\u0300", "\xFC\x80\x80\x80\x80\x80\u0300", "\u0300\xFC\x80\x80\x80\x80\x80\u0300"},
-	{"\xF8\x80\x80\x80\x80\u0300", "\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"},
-	{"\xFC\x80\x80\x80\x80\x80\u0300", "\u0300", "\xFC\x80\x80\x80\x80\x80\u0300\u0300"},
-	{"\xF8\x80\x80\x80", "\x80\u0300\u0300", "\xF8\x80\x80\x80\x80\u0300\u0300"},
-}
-
-func appendF(f Form, out []byte, s string) []byte {
-	return f.Append(out, []byte(s)...)
-}
-
-func appendStringF(f Form, out []byte, s string) []byte {
-	return f.AppendString(out, s)
-}
-
-func bytesF(f Form, out []byte, s string) []byte {
-	buf := []byte{}
-	buf = append(buf, out...)
-	buf = append(buf, s...)
-	return f.Bytes(buf)
-}
-
-func stringF(f Form, out []byte, s string) []byte {
-	outs := string(out) + s
-	return []byte(f.String(outs))
-}
-
-func TestAppend(t *testing.T) {
-	runAppendTests(t, "TestAppend", NFKC, appendF, appendTests)
-	runAppendTests(t, "TestAppendString", NFKC, appendStringF, appendTests)
-	runAppendTests(t, "TestBytes", NFKC, bytesF, appendTests)
-	runAppendTests(t, "TestString", NFKC, stringF, appendTests)
-}
-
-func appendBench(f Form, in []byte) func() {
-	buf := make([]byte, 0, 4*len(in))
-	return func() {
-		f.Append(buf, in...)
-	}
-}
-
-func iterBench(f Form, in []byte) func() {
-	iter := Iter{}
-	return func() {
-		iter.Init(f, in)
-		for !iter.Done() {
-			iter.Next()
-		}
-	}
-}
-
-func readerBench(f Form, in []byte) func() {
-	buf := make([]byte, 4*len(in))
-	return func() {
-		r := f.Reader(bytes.NewReader(in))
-		var err error
-		for err == nil {
-			_, err = r.Read(buf)
-		}
-		if err != io.EOF {
-			panic("")
-		}
-	}
-}
-
-func writerBench(f Form, in []byte) func() {
-	buf := make([]byte, 0, 4*len(in))
-	return func() {
-		r := f.Writer(bytes.NewBuffer(buf))
-		if _, err := r.Write(in); err != nil {
-			panic("")
-		}
-	}
-}
-
-func appendBenchmarks(bm []func(), f Form, in []byte) []func() {
-	//bm = append(bm, appendBench(f, in))
-	bm = append(bm, iterBench(f, in))
-	//bm = append(bm, readerBench(f, in))
-	//bm = append(bm, writerBench(f, in))
-	return bm
-}
-
-func doFormBenchmark(b *testing.B, inf, f Form, s string) {
-	b.StopTimer()
-	in := inf.Bytes([]byte(s))
-	bm := appendBenchmarks(nil, f, in)
-	b.SetBytes(int64(len(in) * len(bm)))
-	b.StartTimer()
-	for i := 0; i < b.N; i++ {
-		for _, fn := range bm {
-			fn()
-		}
-	}
-}
-
-var ascii = strings.Repeat("There is nothing to change here! ", 500)
-
-func BenchmarkNormalizeAsciiNFC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFC, ascii)
-}
-func BenchmarkNormalizeAsciiNFD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFD, ascii)
-}
-func BenchmarkNormalizeAsciiNFKC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFKC, ascii)
-}
-func BenchmarkNormalizeAsciiNFKD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFKD, ascii)
-}
-
-func BenchmarkNormalizeNFC2NFC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFC, txt_all)
-}
-func BenchmarkNormalizeNFC2NFD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFD, txt_all)
-}
-func BenchmarkNormalizeNFD2NFC(b *testing.B) {
-	doFormBenchmark(b, NFD, NFC, txt_all)
-}
-func BenchmarkNormalizeNFD2NFD(b *testing.B) {
-	doFormBenchmark(b, NFD, NFD, txt_all)
-}
-
-// Hangul is often special-cased, so we test it separately.
-func BenchmarkNormalizeHangulNFC2NFC(b *testing.B) {
-	doFormBenchmark(b, NFC, NFC, txt_kr)
-}
-func BenchmarkNormalizeHangulNFC2NFD(b *testing.B) {
-	doFormBenchmark(b, NFC, NFD, txt_kr)
-}
-func BenchmarkNormalizeHangulNFD2NFC(b *testing.B) {
-	doFormBenchmark(b, NFD, NFC, txt_kr)
-}
-func BenchmarkNormalizeHangulNFD2NFD(b *testing.B) {
-	doFormBenchmark(b, NFD, NFD, txt_kr)
-}
-
-var forms = []Form{NFC, NFD, NFKC, NFKD}
-
-func doTextBenchmark(b *testing.B, s string) {
-	b.StopTimer()
-	in := []byte(s)
-	bm := []func(){}
-	for _, f := range forms {
-		bm = appendBenchmarks(bm, f, in)
-	}
-	b.SetBytes(int64(len(s) * len(bm)))
-	b.StartTimer()
-	for i := 0; i < b.N; i++ {
-		for _, f := range bm {
-			f()
-		}
-	}
-}
-
-func BenchmarkCanonicalOrdering(b *testing.B) {
-	doTextBenchmark(b, txt_canon)
-}
-func BenchmarkExtendedLatin(b *testing.B) {
-	doTextBenchmark(b, txt_vn)
-}
-func BenchmarkMiscTwoByteUtf8(b *testing.B) {
-	doTextBenchmark(b, twoByteUtf8)
-}
-func BenchmarkMiscThreeByteUtf8(b *testing.B) {
-	doTextBenchmark(b, threeByteUtf8)
-}
-func BenchmarkHangul(b *testing.B) {
-	doTextBenchmark(b, txt_kr)
-}
-func BenchmarkJapanese(b *testing.B) {
-	doTextBenchmark(b, txt_jp)
-}
-func BenchmarkChinese(b *testing.B) {
-	doTextBenchmark(b, txt_cn)
-}
-func BenchmarkOverflow(b *testing.B) {
-	doTextBenchmark(b, overflow)
-}
-
-var overflow = string(bytes.Repeat([]byte("\u035D"), 4096)) + "\u035B"
-
-// Tests sampled from the Canonical ordering tests (Part 2) of
-// http://unicode.org/Public/UNIDATA/NormalizationTest.txt
-const txt_canon = `\u0061\u0315\u0300\u05AE\u0300\u0062 \u0061\u0300\u0315\u0300\u05AE\u0062
-\u0061\u0302\u0315\u0300\u05AE\u0062 \u0061\u0307\u0315\u0300\u05AE\u0062
-\u0061\u0315\u0300\u05AE\u030A\u0062 \u0061\u059A\u0316\u302A\u031C\u0062
-\u0061\u032E\u059A\u0316\u302A\u0062 \u0061\u0338\u093C\u0334\u0062 
-\u0061\u059A\u0316\u302A\u0339       \u0061\u0341\u0315\u0300\u05AE\u0062
-\u0061\u0348\u059A\u0316\u302A\u0062 \u0061\u0361\u0345\u035D\u035C\u0062
-\u0061\u0366\u0315\u0300\u05AE\u0062 \u0061\u0315\u0300\u05AE\u0486\u0062
-\u0061\u05A4\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0613\u0062
-\u0061\u0315\u0300\u05AE\u0615\u0062 \u0061\u0617\u0315\u0300\u05AE\u0062
-\u0061\u0619\u0618\u064D\u064E\u0062 \u0061\u0315\u0300\u05AE\u0654\u0062
-\u0061\u0315\u0300\u05AE\u06DC\u0062 \u0061\u0733\u0315\u0300\u05AE\u0062
-\u0061\u0744\u059A\u0316\u302A\u0062 \u0061\u0315\u0300\u05AE\u0745\u0062
-\u0061\u09CD\u05B0\u094D\u3099\u0062 \u0061\u0E38\u0E48\u0E38\u0C56\u0062
-\u0061\u0EB8\u0E48\u0E38\u0E49\u0062 \u0061\u0F72\u0F71\u0EC8\u0F71\u0062
-\u0061\u1039\u05B0\u094D\u3099\u0062 \u0061\u05B0\u094D\u3099\u1A60\u0062
-\u0061\u3099\u093C\u0334\u1BE6\u0062 \u0061\u3099\u093C\u0334\u1C37\u0062
-\u0061\u1CD9\u059A\u0316\u302A\u0062 \u0061\u2DED\u0315\u0300\u05AE\u0062
-\u0061\u2DEF\u0315\u0300\u05AE\u0062 \u0061\u302D\u302E\u059A\u0316\u0062`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/vn/
-const txt_vn = `Vá»›i cÃ¡c Ä‘iá»u kiá»‡n sau: Ghi nháº­n cÃ´ng cá»§a tÃ¡c giáº£. 
-Náº¿u báº¡n sá»­ dá»¥ng, chuyá»ƒn Ä‘á»•i, hoáº·c xÃ¢y dá»±ng dá»± Ã¡n tá»« 
-ná»™i dung Ä‘Æ°á»£c chia sáº» nÃ y, báº¡n pháº£i Ã¡p dá»¥ng giáº¥y phÃ©p nÃ y hoáº·c 
-má»™t giáº¥y phÃ©p khÃ¡c cÃ³ cÃ¡c Ä‘iá»u khoáº£n tÆ°Æ¡ng tá»± nhÆ° giáº¥y phÃ©p nÃ y
-cho dá»± Ã¡n cá»§a báº¡n. Hiá»ƒu ráº±ng: Miá»…n â€” Báº¥t ká»³ cÃ¡c Ä‘iá»u kiá»‡n nÃ o
-trÃªn Ä‘Ã¢y cÅ©ng cÃ³ thá»ƒ Ä‘Æ°á»£c miá»…n bá» náº¿u báº¡n Ä‘Æ°á»£c sá»± cho phÃ©p cá»§a
-ngÆ°á»i sá»Ÿ há»¯u báº£n quyá»n. Pháº¡m vi cÃ´ng chÃºng â€” Khi tÃ¡c pháº©m hoáº·c
-báº¥t ká»³ chÆ°Æ¡ng nÃ o cá»§a tÃ¡c pháº©m Ä‘Ã£ trong vÃ¹ng dÃ nh cho cÃ´ng
-chÃºng theo quy Ä‘á»‹nh cá»§a phÃ¡p luáº­t thÃ¬ tÃ¬nh tráº¡ng cá»§a nÃ³ khÃ´ng 
-bá»‹ áº£nh hÆ°á»Ÿng bá»Ÿi giáº¥y phÃ©p trong báº¥t ká»³ trÆ°á»ng há»£p nÃ o.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/1.0/deed.ru
-const txt_ru = `ÐŸÑ€Ð¸ Ð¾Ð±ÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¼ ÑÐ¾Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸Ð¸ ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð¸Ñ… ÑƒÑÐ»Ð¾Ð²Ð¸Ð¹:
-Attribution â€” Ð’Ñ‹ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ Ð¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ (ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ
-Ð°Ð²Ñ‚Ð¾Ñ€Ð° Ð¸ Ð¸ÑÑ‚Ð¾Ñ‡Ð½Ð¸Ðº) Ð² Ð¿Ð¾Ñ€ÑÐ´ÐºÐµ, Ð¿Ñ€ÐµÐ´ÑƒÑÐ¼Ð¾Ñ‚Ñ€ÐµÐ½Ð½Ð¾Ð¼ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼ Ð¸Ð»Ð¸
-Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ð°Ñ€Ð¾Ð¼ (Ð½Ð¾ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ‚Ð°Ðº, Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð½Ð¸ÐºÐ¾Ð¸Ð¼ Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð¼ Ð½Ðµ Ð¿Ð¾Ð´Ñ€Ð°Ð·ÑƒÐ¼ÐµÐ²Ð°Ð»Ð¾ÑÑŒ,
-Ñ‡Ñ‚Ð¾ Ð¾Ð½Ð¸ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÑŽÑ‚ Ð²Ð°Ñ Ð¸Ð»Ð¸ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ðµ Ð²Ð°Ð¼Ð¸ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ).
-Î¥Ï€ÏŒ Ï„Î¹Ï‚ Î±ÎºÏŒÎ»Î¿Ï…Î¸ÎµÏ‚ Ï€ÏÎ¿Ï‹Ï€Î¿Î¸Î­ÏƒÎµÎ¹Ï‚:`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/gr/
-const txt_gr = `Î‘Î½Î±Ï†Î¿ÏÎ¬ Î”Î·Î¼Î¹Î¿Ï…ÏÎ³Î¿Ï â€” Î˜Î± Ï€ÏÎ­Ï€ÎµÎ¹ Î½Î± ÎºÎ¬Î½ÎµÏ„Îµ Ï„Î·Î½ Î±Î½Î±Ï†Î¿ÏÎ¬ ÏƒÏ„Î¿ Î­ÏÎ³Î¿ Î¼Îµ Ï„Î¿Î½
-Ï„ÏÏŒÏ€Î¿ Ï€Î¿Ï… Î­Ï‡ÎµÎ¹ Î¿ÏÎ¹ÏƒÏ„ÎµÎ¯ Î±Ï€ÏŒ Ï„Î¿ Î´Î·Î¼Î¹Î¿Ï…ÏÎ³ÏŒ Î® Ï„Î¿ Ï‡Î¿ÏÎ·Î³Î¿ÏÎ½Ï„Î¿ Ï„Î·Î½ Î¬Î´ÎµÎ¹Î±
-(Ï‡Ï‰ÏÎ¯Ï‚ ÏŒÎ¼Ï‰Ï‚ Î½Î± ÎµÎ½Î½Î¿ÎµÎ¯Ï„Î±Î¹ Î¼Îµ Î¿Ï€Î¿Î¹Î¿Î½Î´Î®Ï€Î¿Ï„Îµ Ï„ÏÏŒÏ€Î¿ ÏŒÏ„Î¹ ÎµÎ³ÎºÏÎ¯Î½Î¿Ï…Î½ ÎµÏƒÎ¬Ï‚ Î®
-Ï„Î· Ï‡ÏÎ®ÏƒÎ· Ï„Î¿Ï… Î­ÏÎ³Î¿Ï… Î±Ï€ÏŒ ÎµÏƒÎ¬Ï‚). Î Î±ÏÏŒÎ¼Î¿Î¹Î± Î”Î¹Î±Î½Î¿Î¼Î® â€” Î•Î¬Î½ Î±Î»Î»Î¿Î¹ÏŽÏƒÎµÏ„Îµ,
-Ï„ÏÎ¿Ï€Î¿Ï€Î¿Î¹Î®ÏƒÎµÏ„Îµ Î® Î´Î·Î¼Î¹Î¿Ï…ÏÎ³Î®ÏƒÎµÏ„Îµ Ï€ÎµÏÎ±Î¹Ï„Î­ÏÏ‰ Î²Î±ÏƒÎ¹ÏƒÎ¼Î­Î½Î¿Î¹ ÏƒÏ„Î¿ Î­ÏÎ³Î¿ Î¸Î±
-Î¼Ï€Î¿ÏÎµÎ¯Ï„Îµ Î½Î± Î´Î¹Î±Î½Î­Î¼ÎµÏ„Îµ Ï„Î¿ Î­ÏÎ³Î¿ Ï€Î¿Ï… Î¸Î± Ï€ÏÎ¿ÎºÏÏˆÎµÎ¹ Î¼ÏŒÎ½Î¿ Î¼Îµ Ï„Î·Î½ Î¯Î´Î¹Î± Î®
-Ï€Î±ÏÏŒÎ¼Î¿Î¹Î± Î¬Î´ÎµÎ¹Î±.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/deed.ar
-const txt_ar = `Ø¨Ù…ÙˆØ¬Ø¨ Ø§Ù„Ø´Ø±ÙˆØ· Ø§Ù„ØªØ§Ù„ÙŠØ© Ù†Ø³Ø¨ Ø§Ù„Ù…ØµÙ†Ù â€” ÙŠØ¬Ø¨ Ø¹Ù„ÙŠÙƒ Ø£Ù†
-ØªÙ†Ø³Ø¨ Ø§Ù„Ø¹Ù…Ù„ Ø¨Ø§Ù„Ø·Ø±ÙŠÙ‚Ø© Ø§Ù„ØªÙŠ ØªØ­Ø¯Ø¯Ù‡Ø§ Ø§Ù„Ù…Ø¤Ù„Ù Ø£Ùˆ Ø§Ù„Ù…Ø±Ø®Øµ (ÙˆÙ„ÙƒÙ† Ù„ÙŠØ³ Ø¨Ø£ÙŠ Ø­Ø§Ù„ Ù…Ù†
-Ø§Ù„Ø£Ø­ÙˆØ§Ù„ Ø£Ù† ØªÙˆØ­ÙŠ ÙˆØªÙ‚ØªØ±Ø­ Ø¨ØªØ­ÙˆÙ„ Ø£Ùˆ Ø§Ø³ØªØ®Ø¯Ø§Ù…Ùƒ Ù„Ù„Ø¹Ù…Ù„).
-Ø§Ù„Ù…Ø´Ø§Ø±ÙƒØ© Ø¹Ù„Ù‰ Ù‚Ø¯Ù… Ø§Ù„Ù…Ø³Ø§ÙˆØ§Ø© â€” Ø¥Ø°Ø§ ÙƒÙ†Øª ÙŠØ¹Ø¯Ù„ ØŒ ÙˆØ§Ù„ØªØºÙŠÙŠØ± ØŒ Ø£Ùˆ Ø§Ù„Ø§Ø³ØªÙØ§Ø¯Ø©
-Ù…Ù† Ù‡Ø°Ø§ Ø§Ù„Ø¹Ù…Ù„ ØŒ Ù‚Ø¯ ÙŠÙ†ØªØ¬ Ø¹Ù† ØªÙˆØ²ÙŠØ¹ Ø§Ù„Ø¹Ù…Ù„ Ø¥Ù„Ø§ ÙÙŠ Ø¸Ù„ ØªØ´Ø§Ø¨Ù‡ Ø§Ùˆ ØªØ·Ø§Ø¨Ù‚ ÙÙ‰ ÙˆØ§Ø­Ø¯
-Ù„Ù‡Ø°Ø§ Ø§Ù„ØªØ±Ø®ÙŠØµ.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/1.0/il/
-const txt_il = `×‘×›×¤×•×£ ×œ×ª× ××™× ×”×‘××™×: ×™×™×—×•×¡ â€” ×¢×œ×™×š ×œ×™×™×—×¡ ××ª ×”×™×¦×™×¨×” (×œ×ª×ª ×§×¨×“×™×˜) ×‘××•×¤×Ÿ
-×”×ž×¦×•×™×™×Ÿ ×¢×œ-×™×“×™ ×”×™×•×¦×¨ ××• ×ž×¢× ×™×§ ×”×¨×™×©×™×•×Ÿ (××š ×œ× ×‘×©×•× ××•×¤×Ÿ ×”×ž×¨×ž×– ×¢×œ ×›×š
-×©×”× ×ª×•×ž×›×™× ×‘×š ××• ×‘×©×™×ž×•×© ×©×œ×š ×‘×™×¦×™×¨×”). ×©×™×ª×•×£ ×–×”×” â€” ×× ×ª×—×œ×™×˜/×™ ×œ×©× ×•×ª,
-×œ×¢×‘×“ ××• ×œ×™×¦×•×¨ ×™×¦×™×¨×” × ×’×–×¨×ª ×‘×”×¡×ª×ž×š ×¢×œ ×™×¦×™×¨×” ×–×•, ×ª×•×›×œ/×™ ×œ×”×¤×™×¥ ××ª ×™×¦×™×¨×ª×š
-×”×—×“×©×” ×¨×§ ×ª×—×ª ××•×ª×• ×”×¨×™×©×™×•×Ÿ ××• ×¨×™×©×™×•×Ÿ ×“×•×ž×” ×œ×¨×™×©×™×•×Ÿ ×–×”.`
-
-const twoByteUtf8 = txt_ru + txt_gr + txt_ar + txt_il
-
-// Taken from http://creativecommons.org/licenses/by-sa/2.0/kr/
-const txt_kr = `ë‹¤ìŒê³¼ ê°™ì€ ì¡°ê±´ì„ ë”°ë¼ì•¼ í•©ë‹ˆë‹¤: ì €ìž‘ìží‘œì‹œ
-(Attribution) â€” ì €ìž‘ìžë‚˜ ì´ìš©í—ˆë½ìžê°€ ì •í•œ ë°©ë²•ìœ¼ë¡œ ì €ìž‘ë¬¼ì˜
-ì›ì €ìž‘ìžë¥¼ í‘œì‹œí•˜ì—¬ì•¼ í•©ë‹ˆë‹¤(ê·¸ëŸ¬ë‚˜ ì›ì €ìž‘ìžê°€ ì´ìš©ìžë‚˜ ì´ìš©ìžì˜
-ì´ìš©ì„ ë³´ì¦í•˜ê±°ë‚˜ ì¶”ì²œí•œë‹¤ëŠ” ì˜ë¯¸ë¡œ í‘œì‹œí•´ì„œëŠ” ì•ˆë©ë‹ˆë‹¤). 
-ë™ì¼ì¡°ê±´ë³€ê²½í—ˆë½ â€” ì´ ì €ìž‘ë¬¼ì„ ì´ìš©í•˜ì—¬ ë§Œë“  ì´ì°¨ì  ì €ìž‘ë¬¼ì—ëŠ” ë³¸
-ë¼ì´ì„ ìŠ¤ì™€ ë™ì¼í•œ ë¼ì´ì„ ìŠ¤ë¥¼ ì ìš©í•´ì•¼ í•©ë‹ˆë‹¤.`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/th/
-const txt_th = `à¸ à¸²à¸¢à¹ƒà¸•à¹‰à¹€à¸‡à¸·à¹ˆà¸­à¸™à¹„à¸‚ à¸”à¸±à¸‡à¸•à¹ˆà¸­à¹„à¸›à¸™à¸µà¹‰ : à¹à¸ªà¸”à¸‡à¸—à¸µà¹ˆà¸¡à¸² â€” à¸„à¸¸à¸“à¸•à¹‰à¸­à¸‡à¹à¸ªà¸”à¸‡à¸—à¸µà¹ˆ
-à¸¡à¸²à¸‚à¸­à¸‡à¸‡à¸²à¸™à¸”à¸±à¸‡à¸à¸¥à¹ˆà¸²à¸§ à¸•à¸²à¸¡à¸£à¸¹à¸›à¹à¸šà¸šà¸—à¸µà¹ˆà¸œà¸¹à¹‰à¸ªà¸£à¹‰à¸²à¸‡à¸ªà¸£à¸£à¸„à¹Œà¸«à¸£à¸·à¸­à¸œà¸¹à¹‰à¸­à¸™à¸¸à¸à¸²à¸•à¸à¸³à¸«à¸™à¸” (à¹à¸•à¹ˆ
-à¹„à¸¡à¹ˆà¹ƒà¸Šà¹ˆà¹ƒà¸™à¸¥à¸±à¸à¸©à¸“à¸°à¸—à¸µà¹ˆà¸§à¹ˆà¸² à¸žà¸§à¸à¹€à¸‚à¸²à¸ªà¸™à¸±à¸šà¸ªà¸™à¸¸à¸™à¸„à¸¸à¸“à¸«à¸£à¸·à¸­à¸ªà¸™à¸±à¸šà¸ªà¸™à¸¸à¸™à¸à¸²à¸£à¸—à¸µà¹ˆ
-à¸„à¸¸à¸“à¸™à¸³à¸‡à¸²à¸™à¹„à¸›à¹ƒà¸Šà¹‰) à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”à¸µà¸¢à¸§à¸à¸±à¸™ â€” à¸«à¸²à¸à¸„à¸¸à¸“à¸”à¸±à¸”à¹à¸›à¸¥à¸‡ à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸¹à¸› à¸«à¸£à¸·
-à¸­à¸•à¹ˆà¸­à¹€à¸•à¸´à¸¡à¸‡à¸²à¸™à¸™à¸µà¹‰ à¸„à¸¸à¸“à¸•à¹‰à¸­à¸‡à¹ƒà¸Šà¹‰à¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¹à¸šà¸šà¹€à¸”à¸µà¸¢à¸§à¸à¸±à¸™à¸«à¸£à¸·à¸­à¹à¸šà¸šà¸—à¸µà¹ˆà¹€à¸«à¸¡à¸·
-à¸­à¸™à¸à¸±à¸šà¸ªà¸±à¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•à¸—à¸µà¹ˆà¹ƒà¸Šà¹‰à¸à¸±à¸šà¸‡à¸²à¸™à¸™à¸µà¹‰à¹€à¸—à¹ˆà¸²à¸™à¸±à¹‰à¸™`
-
-const threeByteUtf8 = txt_th
-
-// Taken from http://creativecommons.org/licenses/by-sa/2.0/jp/
-const txt_jp = `ã‚ãªãŸã®å¾“ã†ã¹ãæ¡ä»¶ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚
-è¡¨ç¤º â€” ã‚ãªãŸã¯åŽŸè‘—ä½œè€…ã®ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚’è¡¨ç¤ºã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ã€‚
-ç¶™æ‰¿ â€” ã‚‚ã—ã‚ãªãŸãŒã“ã®ä½œå“ã‚’æ”¹å¤‰ã€å¤‰å½¢ã¾ãŸã¯åŠ å·¥ã—ãŸå ´åˆã€
-ã‚ãªãŸã¯ãã®çµæžœç”Ÿã˜ãŸä½œå“ã‚’ã“ã®ä½œå“ã¨åŒä¸€ã®è¨±è«¾æ¡ä»¶ã®ä¸‹ã§ã®ã¿
-é ’å¸ƒã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚`
-
-// http://creativecommons.org/licenses/by-sa/2.5/cn/
-const txt_cn = `æ‚¨å¯ä»¥è‡ªç”±ï¼š å¤åˆ¶ã€å‘è¡Œã€å±•è§ˆã€è¡¨æ¼”ã€æ”¾æ˜ ã€
-å¹¿æ’­æˆ–é€šè¿‡ä¿¡æ¯ç½‘ç»œä¼ æ’­æœ¬ä½œå“ åˆ›ä½œæ¼”ç»Žä½œå“
-å¯¹æœ¬ä½œå“è¿›è¡Œå•†ä¸šæ€§ä½¿ç”¨ æƒŸé¡»éµå®ˆä¸‹åˆ—æ¡ä»¶ï¼š
-ç½²å â€” æ‚¨å¿…é¡»æŒ‰ç…§ä½œè€…æˆ–è€…è®¸å¯äººæŒ‡å®šçš„æ–¹å¼å¯¹ä½œå“è¿›è¡Œç½²åã€‚
-ç›¸åŒæ–¹å¼å…±äº« â€” å¦‚æžœæ‚¨æ”¹å˜ã€è½¬æ¢æœ¬ä½œå“æˆ–è€…ä»¥æœ¬ä½œå“ä¸ºåŸºç¡€è¿›è¡Œåˆ›ä½œï¼Œ
-æ‚¨åªèƒ½é‡‡ç”¨ä¸Žæœ¬åè®®ç›¸åŒçš„è®¸å¯åè®®å‘å¸ƒåŸºäºŽæœ¬ä½œå“çš„æ¼”ç»Žä½œå“ã€‚`
-
-const txt_cjk = txt_cn + txt_jp + txt_kr
-const txt_all = txt_vn + twoByteUtf8 + threeByteUtf8 + txt_cjk
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/normregtest.go gcc-4.8.1/libgo/go/exp/norm/normregtest.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/normregtest.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/normregtest.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,308 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-import (
-	"bufio"
-	"bytes"
-	"exp/norm"
-	"flag"
-	"fmt"
-	"io"
-	"log"
-	"net/http"
-	"os"
-	"path"
-	"regexp"
-	"runtime"
-	"strconv"
-	"strings"
-	"time"
-	"unicode"
-	"unicode/utf8"
-)
-
-func main() {
-	flag.Parse()
-	loadTestData()
-	CharacterByCharacterTests()
-	StandardTests()
-	PerformanceTest()
-	if errorCount == 0 {
-		fmt.Println("PASS")
-	}
-}
-
-const file = "NormalizationTest.txt"
-
-var url = flag.String("url",
-	"http://www.unicode.org/Public/"+unicode.Version+"/ucd/"+file,
-	"URL of Unicode database directory")
-var localFiles = flag.Bool("local",
-	false,
-	"data files have been copied to the current directory; for debugging only")
-
-var logger = log.New(os.Stderr, "", log.Lshortfile)
-
-// This regression test runs the test set in NormalizationTest.txt
-// (taken from http://www.unicode.org/Public/<unicode.Version>/ucd/).
-//
-// NormalizationTest.txt has form:
-// @Part0 # Specific cases
-// #
-// 1E0A;1E0A;0044 0307;1E0A;0044 0307; # (á¸Š; á¸Š; Dâ—ŒÌ‡; á¸Š; Dâ—ŒÌ‡; ) LATIN CAPITAL LETTER D WITH DOT ABOVE
-// 1E0C;1E0C;0044 0323;1E0C;0044 0323; # (á¸Œ; á¸Œ; Dâ—ŒÌ£; á¸Œ; Dâ—ŒÌ£; ) LATIN CAPITAL LETTER D WITH DOT BELOW
-//
-// Each test has 5 columns (c1, c2, c3, c4, c5), where
-// (c1, c2, c3, c4, c5) == (c1, NFC(c1), NFD(c1), NFKC(c1), NFKD(c1))
-//
-// CONFORMANCE:
-// 1. The following invariants must be true for all conformant implementations
-//
-//    NFC
-//      c2 ==  NFC(c1) ==  NFC(c2) ==  NFC(c3)
-//      c4 ==  NFC(c4) ==  NFC(c5)
-//
-//    NFD
-//      c3 ==  NFD(c1) ==  NFD(c2) ==  NFD(c3)
-//      c5 ==  NFD(c4) ==  NFD(c5)
-//
-//    NFKC
-//      c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5)
-//
-//    NFKD
-//      c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5)
-//
-// 2. For every code point X assigned in this version of Unicode that is not
-//    specifically listed in Part 1, the following invariants must be true
-//    for all conformant implementations:
-//
-//      X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X)
-//
-
-// Column types.
-const (
-	cRaw = iota
-	cNFC
-	cNFD
-	cNFKC
-	cNFKD
-	cMaxColumns
-)
-
-// Holds data from NormalizationTest.txt
-var part []Part
-
-type Part struct {
-	name   string
-	number int
-	tests  []Test
-}
-
-type Test struct {
-	name   string
-	partnr int
-	number int
-	r      rune                // used for character by character test
-	cols   [cMaxColumns]string // Each has 5 entries, see below.
-}
-
-func (t Test) Name() string {
-	if t.number < 0 {
-		return part[t.partnr].name
-	}
-	return fmt.Sprintf("%s:%d", part[t.partnr].name, t.number)
-}
-
-var partRe = regexp.MustCompile(`@Part(\d) # (.*)\n$`)
-var testRe = regexp.MustCompile(`^` + strings.Repeat(`([\dA-F ]+);`, 5) + ` # (.*)\n?$`)
-
-var counter int
-
-// Load the data form NormalizationTest.txt
-func loadTestData() {
-	if *localFiles {
-		pwd, _ := os.Getwd()
-		*url = "file://" + path.Join(pwd, file)
-	}
-	t := &http.Transport{}
-	t.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
-	c := &http.Client{Transport: t}
-	resp, err := c.Get(*url)
-	if err != nil {
-		logger.Fatal(err)
-	}
-	if resp.StatusCode != 200 {
-		logger.Fatal("bad GET status for "+file, resp.Status)
-	}
-	f := resp.Body
-	defer f.Close()
-	input := bufio.NewReader(f)
-	for {
-		line, err := input.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			logger.Fatal(err)
-		}
-		if len(line) == 0 || line[0] == '#' {
-			continue
-		}
-		m := partRe.FindStringSubmatch(line)
-		if m != nil {
-			if len(m) < 3 {
-				logger.Fatal("Failed to parse Part: ", line)
-			}
-			i, err := strconv.Atoi(m[1])
-			if err != nil {
-				logger.Fatal(err)
-			}
-			name := m[2]
-			part = append(part, Part{name: name[:len(name)-1], number: i})
-			continue
-		}
-		m = testRe.FindStringSubmatch(line)
-		if m == nil || len(m) < 7 {
-			logger.Fatalf(`Failed to parse: "%s" result: %#v`, line, m)
-		}
-		test := Test{name: m[6], partnr: len(part) - 1, number: counter}
-		counter++
-		for j := 1; j < len(m)-1; j++ {
-			for _, split := range strings.Split(m[j], " ") {
-				r, err := strconv.ParseUint(split, 16, 64)
-				if err != nil {
-					logger.Fatal(err)
-				}
-				if test.r == 0 {
-					// save for CharacterByCharacterTests
-					test.r = rune(r)
-				}
-				var buf [utf8.UTFMax]byte
-				sz := utf8.EncodeRune(buf[:], rune(r))
-				test.cols[j-1] += string(buf[:sz])
-			}
-		}
-		part := &part[len(part)-1]
-		part.tests = append(part.tests, test)
-	}
-}
-
-var fstr = []string{"NFC", "NFD", "NFKC", "NFKD"}
-
-var errorCount int
-
-func cmpResult(t *Test, name string, f norm.Form, gold, test, result string) {
-	if gold != result {
-		errorCount++
-		if errorCount > 20 {
-			return
-		}
-		st, sr, sg := []rune(test), []rune(result), []rune(gold)
-		logger.Printf("%s:%s: %s(%X)=%X; want:%X: %s",
-			t.Name(), name, fstr[f], st, sr, sg, t.name)
-	}
-}
-
-func cmpIsNormal(t *Test, name string, f norm.Form, test string, result, want bool) {
-	if result != want {
-		errorCount++
-		if errorCount > 20 {
-			return
-		}
-		logger.Printf("%s:%s: %s(%X)=%v; want: %v", t.Name(), name, fstr[f], []rune(test), result, want)
-	}
-}
-
-func doTest(t *Test, f norm.Form, gold, test string) {
-	result := f.Bytes([]byte(test))
-	cmpResult(t, "Bytes", f, gold, test, string(result))
-	sresult := f.String(test)
-	cmpResult(t, "String", f, gold, test, sresult)
-	acc := []byte{}
-	i := norm.Iter{}
-	i.InitString(f, test)
-	for !i.Done() {
-		acc = append(acc, i.Next()...)
-	}
-	cmpResult(t, "Iter.Next", f, gold, test, string(acc))
-	for i := range test {
-		out := f.Append(f.Bytes([]byte(test[:i])), []byte(test[i:])...)
-		cmpResult(t, fmt.Sprintf(":Append:%d", i), f, gold, test, string(out))
-	}
-	cmpIsNormal(t, "IsNormal", f, test, f.IsNormal([]byte(test)), test == gold)
-}
-
-func doConformanceTests(t *Test, partn int) {
-	for i := 0; i <= 2; i++ {
-		doTest(t, norm.NFC, t.cols[1], t.cols[i])
-		doTest(t, norm.NFD, t.cols[2], t.cols[i])
-		doTest(t, norm.NFKC, t.cols[3], t.cols[i])
-		doTest(t, norm.NFKD, t.cols[4], t.cols[i])
-	}
-	for i := 3; i <= 4; i++ {
-		doTest(t, norm.NFC, t.cols[3], t.cols[i])
-		doTest(t, norm.NFD, t.cols[4], t.cols[i])
-		doTest(t, norm.NFKC, t.cols[3], t.cols[i])
-		doTest(t, norm.NFKD, t.cols[4], t.cols[i])
-	}
-}
-
-func CharacterByCharacterTests() {
-	tests := part[1].tests
-	var last rune = 0
-	for i := 0; i <= len(tests); i++ { // last one is special case
-		var r rune
-		if i == len(tests) {
-			r = 0x2FA1E // Don't have to go to 0x10FFFF
-		} else {
-			r = tests[i].r
-		}
-		for last++; last < r; last++ {
-			// Check all characters that were not explicitly listed in the test.
-			t := &Test{partnr: 1, number: -1}
-			char := string(last)
-			doTest(t, norm.NFC, char, char)
-			doTest(t, norm.NFD, char, char)
-			doTest(t, norm.NFKC, char, char)
-			doTest(t, norm.NFKD, char, char)
-		}
-		if i < len(tests) {
-			doConformanceTests(&tests[i], 1)
-		}
-	}
-}
-
-func StandardTests() {
-	for _, j := range []int{0, 2, 3} {
-		for _, test := range part[j].tests {
-			doConformanceTests(&test, j)
-		}
-	}
-}
-
-// PerformanceTest verifies that normalization is O(n). If any of the
-// code does not properly check for maxCombiningChars, normalization
-// may exhibit O(n**2) behavior.
-func PerformanceTest() {
-	runtime.GOMAXPROCS(2)
-	success := make(chan bool, 1)
-	go func() {
-		buf := bytes.Repeat([]byte("\u035D"), 1024*1024)
-		buf = append(buf, "\u035B"...)
-		norm.NFC.Append(nil, buf...)
-		success <- true
-	}()
-	timeout := time.After(1 * time.Second)
-	select {
-	case <-success:
-		// test completed before the timeout
-	case <-timeout:
-		errorCount++
-		logger.Printf(`unexpectedly long time to complete PerformanceTest`)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/norm_test.go gcc-4.8.1/libgo/go/exp/norm/norm_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/norm_test.go	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/norm/norm_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,14 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm_test
-
-import (
-	"testing"
-)
-
-func TestPlaceHolder(t *testing.T) {
-	// Does nothing, just allows the Makefile to be canonical
-	// while waiting for the package itself to be written.
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/readwriter.go gcc-4.8.1/libgo/go/exp/norm/readwriter.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/readwriter.go	2012-01-25 14:56:26.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/readwriter.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,126 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import "io"
-
-type normWriter struct {
-	rb  reorderBuffer
-	w   io.Writer
-	buf []byte
-}
-
-// Write implements the standard write interface.  If the last characters are
-// not at a normalization boundary, the bytes will be buffered for the next
-// write. The remaining bytes will be written on close.
-func (w *normWriter) Write(data []byte) (n int, err error) {
-	// Process data in pieces to keep w.buf size bounded.
-	const chunk = 4000
-
-	for len(data) > 0 {
-		// Normalize into w.buf.
-		m := len(data)
-		if m > chunk {
-			m = chunk
-		}
-		w.rb.src = inputBytes(data[:m])
-		w.rb.nsrc = m
-		w.buf = doAppend(&w.rb, w.buf, 0)
-		data = data[m:]
-		n += m
-
-		// Write out complete prefix, save remainder.
-		// Note that lastBoundary looks back at most 30 runes.
-		i := lastBoundary(&w.rb.f, w.buf)
-		if i == -1 {
-			i = 0
-		}
-		if i > 0 {
-			if _, err = w.w.Write(w.buf[:i]); err != nil {
-				break
-			}
-			bn := copy(w.buf, w.buf[i:])
-			w.buf = w.buf[:bn]
-		}
-	}
-	return n, err
-}
-
-// Close forces data that remains in the buffer to be written.
-func (w *normWriter) Close() error {
-	if len(w.buf) > 0 {
-		_, err := w.w.Write(w.buf)
-		if err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-// Writer returns a new writer that implements Write(b)
-// by writing f(b) to w.  The returned writer may use an
-// an internal buffer to maintain state across Write calls.
-// Calling its Close method writes any buffered data to w.
-func (f Form) Writer(w io.Writer) io.WriteCloser {
-	wr := &normWriter{rb: reorderBuffer{}, w: w}
-	wr.rb.init(f, nil)
-	return wr
-}
-
-type normReader struct {
-	rb           reorderBuffer
-	r            io.Reader
-	inbuf        []byte
-	outbuf       []byte
-	bufStart     int
-	lastBoundary int
-	err          error
-}
-
-// Read implements the standard read interface.
-func (r *normReader) Read(p []byte) (int, error) {
-	for {
-		if r.lastBoundary-r.bufStart > 0 {
-			n := copy(p, r.outbuf[r.bufStart:r.lastBoundary])
-			r.bufStart += n
-			if r.lastBoundary-r.bufStart > 0 {
-				return n, nil
-			}
-			return n, r.err
-		}
-		if r.err != nil {
-			return 0, r.err
-		}
-		outn := copy(r.outbuf, r.outbuf[r.lastBoundary:])
-		r.outbuf = r.outbuf[0:outn]
-		r.bufStart = 0
-
-		n, err := r.r.Read(r.inbuf)
-		r.rb.src = inputBytes(r.inbuf[0:n])
-		r.rb.nsrc, r.err = n, err
-		if n > 0 {
-			r.outbuf = doAppend(&r.rb, r.outbuf, 0)
-		}
-		if err == io.EOF {
-			r.lastBoundary = len(r.outbuf)
-		} else {
-			r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf)
-			if r.lastBoundary == -1 {
-				r.lastBoundary = 0
-			}
-		}
-	}
-	panic("should not reach here")
-}
-
-// Reader returns a new reader that implements Read
-// by reading data from r and returning f(data).
-func (f Form) Reader(r io.Reader) io.Reader {
-	const chunk = 4000
-	buf := make([]byte, chunk)
-	rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf}
-	rr.rb.init(f, buf)
-	return rr
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/readwriter_test.go gcc-4.8.1/libgo/go/exp/norm/readwriter_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/readwriter_test.go	2011-12-02 20:17:34.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/readwriter_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,68 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"bytes"
-	"fmt"
-	"strings"
-	"testing"
-)
-
-var ioTests = []AppendTest{
-	{"", strings.Repeat("a\u0316\u0300", 6), strings.Repeat("\u00E0\u0316", 6)},
-	{"", strings.Repeat("a\u0300\u0316", 4000), strings.Repeat("\u00E0\u0316", 4000)},
-	{"", strings.Repeat("\x80\x80", 4000), strings.Repeat("\x80\x80", 4000)},
-	{"", "\u0041\u0307\u0304", "\u01E0"},
-}
-
-var bufSizes = []int{1, 2, 3, 4, 5, 6, 7, 8, 100, 101, 102, 103, 4000, 4001, 4002, 4003}
-
-func readFunc(size int) appendFunc {
-	return func(f Form, out []byte, s string) []byte {
-		out = append(out, s...)
-		r := f.Reader(bytes.NewBuffer(out))
-		buf := make([]byte, size)
-		result := []byte{}
-		for n, err := 0, error(nil); err == nil; {
-			n, err = r.Read(buf)
-			result = append(result, buf[:n]...)
-		}
-		return result
-	}
-}
-
-func TestReader(t *testing.T) {
-	for _, s := range bufSizes {
-		name := fmt.Sprintf("TestReader%da", s)
-		runAppendTests(t, name, NFKC, readFunc(s), appendTests)
-		name = fmt.Sprintf("TestReader%db", s)
-		runAppendTests(t, name, NFKC, readFunc(s), ioTests)
-	}
-}
-
-func writeFunc(size int) appendFunc {
-	return func(f Form, out []byte, s string) []byte {
-		in := append(out, s...)
-		result := new(bytes.Buffer)
-		w := f.Writer(result)
-		buf := make([]byte, size)
-		for n := 0; len(in) > 0; in = in[n:] {
-			n = copy(buf, in)
-			_, _ = w.Write(buf[:n])
-		}
-		w.Close()
-		return result.Bytes()
-	}
-}
-
-func TestWriter(t *testing.T) {
-	for _, s := range bufSizes {
-		name := fmt.Sprintf("TestWriter%da", s)
-		runAppendTests(t, name, NFKC, writeFunc(s), appendTests)
-		name = fmt.Sprintf("TestWriter%db", s)
-		runAppendTests(t, name, NFKC, writeFunc(s), ioTests)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/tables.go gcc-4.8.1/libgo/go/exp/norm/tables.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/tables.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/tables.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,6779 +0,0 @@
-// Generated by running
-//	maketables --tables=all --url=http://www.unicode.org/Public/6.2.0/ucd/
-// DO NOT EDIT
-
-package norm
-
-// Version is the Unicode edition from which the tables are derived.
-const Version = "6.2.0"
-
-const (
-	firstMulti         = 0x18CF
-	firstCCC           = 0x2E74
-	endMulti           = 0x2F4A
-	firstLeadingCCC    = 0x4994
-	firstCCCZeroExcept = 0x49AA
-	lastDecomp         = 0x49D1
-	maxDecomp          = 0x8000
-)
-
-// decomps: 18897 bytes
-var decomps = [...]byte{
-	// Bytes 0 - 3f
-	0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
-	0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,
-	0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,
-	0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,
-	0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,
-	0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,
-	0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,
-	0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,
-	// Bytes 40 - 7f
-	0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,
-	0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,
-	0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,
-	0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,
-	0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,
-	0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,
-	0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,
-	0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,
-	// Bytes 80 - bf
-	0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,
-	0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,
-	0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,
-	0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,
-	0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,
-	0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,
-	0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,
-	0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,
-	// Bytes c0 - ff
-	0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
-	0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
-	0xB4, 0x42, 0xC2, 0xB7, 0x42, 0xC3, 0x86, 0x42,
-	0xC3, 0xB0, 0x42, 0xC4, 0xA6, 0x42, 0xC4, 0xA7,
-	0x42, 0xC4, 0xB1, 0x42, 0xC5, 0x8B, 0x42, 0xC5,
-	0x93, 0x42, 0xC6, 0x8E, 0x42, 0xC6, 0x90, 0x42,
-	0xC6, 0xAB, 0x42, 0xC8, 0xA2, 0x42, 0xC8, 0xB7,
-	0x42, 0xC9, 0x90, 0x42, 0xC9, 0x91, 0x42, 0xC9,
-	// Bytes 100 - 13f
-	0x92, 0x42, 0xC9, 0x94, 0x42, 0xC9, 0x95, 0x42,
-	0xC9, 0x99, 0x42, 0xC9, 0x9B, 0x42, 0xC9, 0x9C,
-	0x42, 0xC9, 0x9F, 0x42, 0xC9, 0xA1, 0x42, 0xC9,
-	0xA3, 0x42, 0xC9, 0xA5, 0x42, 0xC9, 0xA6, 0x42,
-	0xC9, 0xA8, 0x42, 0xC9, 0xA9, 0x42, 0xC9, 0xAA,
-	0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
-	0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
-	0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
-	// Bytes 140 - 17f
-	0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
-	0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
-	0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
-	0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
-	0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,
-	0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,
-	0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,
-	0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,
-	// Bytes 180 - 1bf
-	0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,
-	0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,
-	0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,
-	0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,
-	0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,
-	0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,
-	0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,
-	0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,
-	// Bytes 1c0 - 1ff
-	0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,
-	0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,
-	0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,
-	0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,
-	0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,
-	0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,
-	0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,
-	0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,
-	// Bytes 200 - 23f
-	0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,
-	0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,
-	0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92,
-	0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7,
-	0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42,
-	0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA,
-	0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8,
-	0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42,
-	// Bytes 240 - 27f
-	0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD,
-	0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8,
-	0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42,
-	0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5,
-	0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8,
-	0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42,
-	0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83,
-	0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9,
-	// Bytes 280 - 2bf
-	0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42,
-	0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE,
-	0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9,
-	0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42,
-	0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80,
-	0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA,
-	0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42,
-	0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E,
-	// Bytes 2c0 - 2ff
-	0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA,
-	0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42,
-	0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF,
-	0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA,
-	0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42,
-	0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86,
-	0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB,
-	0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42,
-	// Bytes 300 - 33f
-	0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC,
-	0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84,
-	0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84,
-	0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84,
-	0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84,
-	0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84,
-	0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84,
-	0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84,
-	// Bytes 340 - 37f
-	0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84,
-	0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84,
-	0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84,
-	0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84,
-	0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84,
-	0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84,
-	0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84,
-	0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84,
-	// Bytes 380 - 3bf
-	0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84,
-	0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84,
-	0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84,
-	0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84,
-	0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85,
-	0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85,
-	0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85,
-	0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85,
-	// Bytes 3c0 - 3ff
-	0xA0, 0x43, 0xE1, 0x85, 0xA1, 0x43, 0xE1, 0x85,
-	0xA2, 0x43, 0xE1, 0x85, 0xA3, 0x43, 0xE1, 0x85,
-	0xA4, 0x43, 0xE1, 0x85, 0xA5, 0x43, 0xE1, 0x85,
-	0xA6, 0x43, 0xE1, 0x85, 0xA7, 0x43, 0xE1, 0x85,
-	0xA8, 0x43, 0xE1, 0x85, 0xA9, 0x43, 0xE1, 0x85,
-	0xAA, 0x43, 0xE1, 0x85, 0xAB, 0x43, 0xE1, 0x85,
-	0xAC, 0x43, 0xE1, 0x85, 0xAD, 0x43, 0xE1, 0x85,
-	0xAE, 0x43, 0xE1, 0x85, 0xAF, 0x43, 0xE1, 0x85,
-	// Bytes 400 - 43f
-	0xB0, 0x43, 0xE1, 0x85, 0xB1, 0x43, 0xE1, 0x85,
-	0xB2, 0x43, 0xE1, 0x85, 0xB3, 0x43, 0xE1, 0x85,
-	0xB4, 0x43, 0xE1, 0x85, 0xB5, 0x43, 0xE1, 0x86,
-	0x84, 0x43, 0xE1, 0x86, 0x85, 0x43, 0xE1, 0x86,
-	0x88, 0x43, 0xE1, 0x86, 0x91, 0x43, 0xE1, 0x86,
-	0x92, 0x43, 0xE1, 0x86, 0x94, 0x43, 0xE1, 0x86,
-	0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43, 0xE1, 0x86,
-	0xAA, 0x43, 0xE1, 0x86, 0xAC, 0x43, 0xE1, 0x86,
-	// Bytes 440 - 47f
-	0xAD, 0x43, 0xE1, 0x86, 0xB0, 0x43, 0xE1, 0x86,
-	0xB1, 0x43, 0xE1, 0x86, 0xB2, 0x43, 0xE1, 0x86,
-	0xB3, 0x43, 0xE1, 0x86, 0xB4, 0x43, 0xE1, 0x86,
-	0xB5, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87,
-	0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87,
-	0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87,
-	0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87,
-	0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87,
-	// Bytes 480 - 4bf
-	0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4,
-	0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4,
-	0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4,
-	0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5,
-	0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80,
-	0x82, 0x43, 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80,
-	0x90, 0x43, 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80,
-	0x94, 0x43, 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86,
-	// Bytes 4c0 - 4ff
-	0x90, 0x43, 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86,
-	0x92, 0x43, 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88,
-	0x82, 0x43, 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88,
-	0x91, 0x43, 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94,
-	0x82, 0x43, 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97,
-	0x8B, 0x43, 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6,
-	0x86, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80,
-	0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80,
-	// Bytes 500 - 53f
-	0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80,
-	0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80,
-	0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80,
-	0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80,
-	0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80,
-	0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80,
-	0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80,
-	0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82,
-	// Bytes 540 - 57f
-	0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82,
-	0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82,
-	0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82,
-	0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82,
-	0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82,
-	0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82,
-	0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82,
-	0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82,
-	// Bytes 580 - 5bf
-	0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82,
-	0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83,
-	0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83,
-	0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83,
-	0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83,
-	0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83,
-	0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83,
-	0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83,
-	// Bytes 5c0 - 5ff
-	0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83,
-	0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83,
-	0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83,
-	0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83,
-	0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83,
-	0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83,
-	0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83,
-	0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83,
-	// Bytes 600 - 63f
-	0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83,
-	0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83,
-	0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83,
-	0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83,
-	0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92,
-	0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92,
-	0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94,
-	0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B,
-	// Bytes 640 - 67f
-	0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0,
-	0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1,
-	0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3,
-	0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4,
-	0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9,
-	0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC,
-	0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD,
-	0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0,
-	// Bytes 680 - 6bf
-	0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4,
-	0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA,
-	0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC,
-	0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80,
-	0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80,
-	0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82,
-	0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84,
-	0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88,
-	// Bytes 6c0 - 6ff
-	0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C,
-	0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D,
-	0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F,
-	0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91,
-	0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95,
-	0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95,
-	0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97,
-	0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A,
-	// Bytes 700 - 73f
-	0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6,
-	0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9,
-	0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA,
-	0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF,
-	0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3,
-	0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5,
-	0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8,
-	0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8,
-	// Bytes 740 - 77f
-	0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8,
-	0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8,
-	0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8,
-	0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8,
-	0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8,
-	0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8,
-	0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9,
-	0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9,
-	// Bytes 780 - 7bf
-	0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA,
-	0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA,
-	0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA,
-	0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA,
-	0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB,
-	0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB,
-	0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC,
-	0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE,
-	// Bytes 7c0 - 7ff
-	0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE,
-	0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE,
-	0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80,
-	0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81,
-	0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83,
-	0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83,
-	0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84,
-	0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85,
-	// Bytes 800 - 83f
-	0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85,
-	0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85,
-	0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85,
-	0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85,
-	0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85,
-	0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86,
-	0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86,
-	0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86,
-	// Bytes 840 - 87f
-	0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86,
-	0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86,
-	0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86,
-	0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87,
-	0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87,
-	0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87,
-	0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88,
-	0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88,
-	// Bytes 880 - 8bf
-	0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88,
-	0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88,
-	0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89,
-	0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89,
-	0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A,
-	0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A,
-	0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A,
-	0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B,
-	// Bytes 8c0 - 8ff
-	0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B,
-	0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B,
-	0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B,
-	0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C,
-	0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C,
-	0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C,
-	0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C,
-	0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D,
-	// Bytes 900 - 93f
-	0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D,
-	0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D,
-	0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D,
-	0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D,
-	0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D,
-	0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D,
-	0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E,
-	0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F,
-	// Bytes 940 - 97f
-	0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F,
-	0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F,
-	0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F,
-	0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F,
-	0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90,
-	0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90,
-	0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90,
-	0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90,
-	// Bytes 980 - 9bf
-	0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91,
-	0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92,
-	0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92,
-	0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94,
-	0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95,
-	0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95,
-	0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96,
-	0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96,
-	// Bytes 9c0 - 9ff
-	0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96,
-	0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97,
-	0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97,
-	0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99,
-	0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99,
-	0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B,
-	0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C,
-	0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C,
-	// Bytes a00 - a3f
-	0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E,
-	0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F,
-	0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0,
-	0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1,
-	0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1,
-	0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2,
-	0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3,
-	0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3,
-	// Bytes a40 - a7f
-	0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3,
-	0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3,
-	0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4,
-	0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4,
-	0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4,
-	0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4,
-	0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5,
-	0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5,
-	// Bytes a80 - abf
-	0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5,
-	0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7,
-	0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8,
-	0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9,
-	0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA,
-	0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC,
-	0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD,
-	0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD,
-	// Bytes ac0 - aff
-	0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE,
-	0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF,
-	0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF,
-	0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF,
-	0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF,
-	0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0,
-	0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0,
-	0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1,
-	// Bytes b00 - b3f
-	0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1,
-	0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1,
-	0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2,
-	0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4,
-	0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5,
-	0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5,
-	0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6,
-	0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7,
-	// Bytes b40 - b7f
-	0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7,
-	0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7,
-	0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7,
-	0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8,
-	0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9,
-	0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9,
-	0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9,
-	0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA,
-	// Bytes b80 - bbf
-	0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA,
-	0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB,
-	0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB,
-	0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB,
-	0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB,
-	0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC,
-	0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC,
-	0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD,
-	// Bytes bc0 - bff
-	0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD,
-	0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD,
-	0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD,
-	0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE,
-	0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE,
-	0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE,
-	0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF,
-	0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF,
-	// Bytes c00 - c3f
-	0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80,
-	0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81,
-	0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82,
-	0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83,
-	0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84,
-	0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85,
-	0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85,
-	0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85,
-	// Bytes c40 - c7f
-	0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86,
-	0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86,
-	0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86,
-	0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87,
-	0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88,
-	0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88,
-	0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88,
-	0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88,
-	// Bytes c80 - cbf
-	0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89,
-	0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A,
-	0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B,
-	0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B,
-	0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B,
-	0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C,
-	0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D,
-	0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D,
-	// Bytes cc0 - cff
-	0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E,
-	0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E,
-	0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F,
-	0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90,
-	0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91,
-	0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91,
-	0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92,
-	0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93,
-	// Bytes d00 - d3f
-	0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94,
-	0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95,
-	0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95,
-	0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96,
-	0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96,
-	0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96,
-	0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97,
-	0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97,
-	// Bytes d40 - d7f
-	0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98,
-	0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99,
-	0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A,
-	0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A,
-	0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B,
-	0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B,
-	0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C,
-	0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C,
-	// Bytes d80 - dbf
-	0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C,
-	0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C,
-	0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D,
-	0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D,
-	0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E,
-	0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F,
-	0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0,
-	0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0,
-	// Bytes dc0 - dff
-	0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2,
-	0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2,
-	0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4,
-	0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6,
-	0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8,
-	0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA,
-	0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB,
-	0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC,
-	// Bytes e00 - e3f
-	0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD,
-	0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD,
-	0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD,
-	0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE,
-	0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE,
-	0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE,
-	0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF,
-	0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF,
-	// Bytes e40 - e7f
-	0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0,
-	0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1,
-	0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2,
-	0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3,
-	0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3,
-	0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4,
-	0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4,
-	0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4,
-	// Bytes e80 - ebf
-	0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5,
-	0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5,
-	0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6,
-	0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7,
-	0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7,
-	0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8,
-	0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA,
-	0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA,
-	// Bytes ec0 - eff
-	0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB,
-	0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB,
-	0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC,
-	0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC,
-	0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF,
-	0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF,
-	0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80,
-	0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81,
-	// Bytes f00 - f3f
-	0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81,
-	0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81,
-	0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82,
-	0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83,
-	0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85,
-	0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85,
-	0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87,
-	0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88,
-	// Bytes f40 - f7f
-	0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88,
-	0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88,
-	0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88,
-	0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88,
-	0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89,
-	0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89,
-	0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89,
-	0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A,
-	// Bytes f80 - fbf
-	0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A,
-	0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B,
-	0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D,
-	0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E,
-	0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E,
-	0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E,
-	0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F,
-	0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90,
-	// Bytes fc0 - fff
-	0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91,
-	0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91,
-	0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92,
-	0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92,
-	0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93,
-	0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94,
-	0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94,
-	0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94,
-	// Bytes 1000 - 103f
-	0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94,
-	0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94,
-	0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94,
-	0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95,
-	0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96,
-	0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97,
-	0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98,
-	0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99,
-	// Bytes 1040 - 107f
-	0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99,
-	0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A,
-	0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B,
-	0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B,
-	0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B,
-	0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C,
-	0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C,
-	0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D,
-	// Bytes 1080 - 10bf
-	0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E,
-	0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F,
-	0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1,
-	0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2,
-	0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3,
-	0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3,
-	0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4,
-	0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4,
-	// Bytes 10c0 - 10ff
-	0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5,
-	0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5,
-	0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5,
-	0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5,
-	0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6,
-	0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6,
-	0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6,
-	0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7,
-	// Bytes 1100 - 113f
-	0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7,
-	0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9,
-	0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9,
-	0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9,
-	0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA,
-	0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB,
-	0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC,
-	0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF,
-	// Bytes 1140 - 117f
-	0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF,
-	0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1,
-	0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1,
-	0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2,
-	0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3,
-	0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3,
-	0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3,
-	0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4,
-	// Bytes 1180 - 11bf
-	0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4,
-	0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5,
-	0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6,
-	0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7,
-	0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8,
-	0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8,
-	0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9,
-	0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC,
-	// Bytes 11c0 - 11ff
-	0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD,
-	0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD,
-	0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE,
-	0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE,
-	0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF,
-	0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80,
-	0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80,
-	0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81,
-	// Bytes 1200 - 123f
-	0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81,
-	0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81,
-	0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82,
-	0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82,
-	0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84,
-	0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87,
-	0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87,
-	0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87,
-	// Bytes 1240 - 127f
-	0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87,
-	0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88,
-	0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88,
-	0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88,
-	0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89,
-	0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89,
-	0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A,
-	0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A,
-	// Bytes 1280 - 12bf
-	0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A,
-	0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B,
-	0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C,
-	0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C,
-	0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D,
-	0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E,
-	0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F,
-	0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F,
-	// Bytes 12c0 - 12ff
-	0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F,
-	0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F,
-	0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91,
-	0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93,
-	0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93,
-	0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94,
-	0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97,
-	0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98,
-	// Bytes 1300 - 133f
-	0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98,
-	0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99,
-	0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99,
-	0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99,
-	0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A,
-	0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B,
-	0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C,
-	0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D,
-	// Bytes 1340 - 137f
-	0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E,
-	0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0,
-	0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1,
-	0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1,
-	0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3,
-	0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3,
-	0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3,
-	0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3,
-	// Bytes 1380 - 13bf
-	0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5,
-	0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5,
-	0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6,
-	0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7,
-	0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8,
-	0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA,
-	0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB,
-	0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB,
-	// Bytes 13c0 - 13ff
-	0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB,
-	0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC,
-	0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD,
-	0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE,
-	0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1,
-	0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1,
-	0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2,
-	0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2,
-	// Bytes 1400 - 143f
-	0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3,
-	0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3,
-	0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3,
-	0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4,
-	0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5,
-	0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6,
-	0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7,
-	0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7,
-	// Bytes 1440 - 147f
-	0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB,
-	0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC,
-	0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC,
-	0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD,
-	0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE,
-	0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE,
-	0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80,
-	0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81,
-	// Bytes 1480 - 14bf
-	0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81,
-	0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82,
-	0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82,
-	0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83,
-	0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83,
-	0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84,
-	0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85,
-	0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43, 0xE9, 0x86,
-	// Bytes 14c0 - 14ff
-	0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43, 0xE9, 0x87,
-	0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43, 0xE9, 0x87,
-	0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43, 0xE9, 0x88,
-	0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43, 0xE9, 0x89,
-	0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43, 0xE9, 0x8B,
-	0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43, 0xE9, 0x8D,
-	0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43, 0xE9, 0x90,
-	0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43, 0xE9, 0x96,
-	// Bytes 1500 - 153f
-	0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43, 0xE9, 0x96,
-	0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43, 0xE9, 0x98,
-	0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43, 0xE9, 0x99,
-	0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43, 0xE9, 0x99,
-	0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43, 0xE9, 0x99,
-	0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43, 0xE9, 0x9A,
-	0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43, 0xE9, 0x9A,
-	0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43, 0xE9, 0x9A,
-	// Bytes 1540 - 157f
-	0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43, 0xE9, 0x9B,
-	0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43, 0xE9, 0x9B,
-	0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43, 0xE9, 0x9B,
-	0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43, 0xE9, 0x9C,
-	0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43, 0xE9, 0x9D,
-	0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43, 0xE9, 0x9D,
-	0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43, 0xE9, 0x9D,
-	0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43, 0xE9, 0x9F,
-	// Bytes 1580 - 15bf
-	0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43, 0xE9, 0x9F,
-	0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43, 0xE9, 0x9F,
-	0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43, 0xE9, 0xA0,
-	0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43, 0xE9, 0xA0,
-	0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43, 0xE9, 0xA0,
-	0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43, 0xE9, 0xA2,
-	0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43, 0xE9, 0xA3,
-	0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43, 0xE9, 0xA3,
-	// Bytes 15c0 - 15ff
-	0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43, 0xE9, 0xA4,
-	0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43, 0xE9, 0xA6,
-	0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43, 0xE9, 0xA6,
-	0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43, 0xE9, 0xA7,
-	0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43, 0xE9, 0xA7,
-	0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43, 0xE9, 0xAA,
-	0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43, 0xE9, 0xAB,
-	0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43, 0xE9, 0xAC,
-	// Bytes 1600 - 163f
-	0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43, 0xE9, 0xAC,
-	0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43, 0xE9, 0xAD,
-	0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43, 0xE9, 0xB1,
-	0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43, 0xE9, 0xB3,
-	0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43, 0xE9, 0xB5,
-	0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43, 0xE9, 0xB7,
-	0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43, 0xE9, 0xB9,
-	0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43, 0xE9, 0xBA,
-	// Bytes 1640 - 167f
-	0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43, 0xE9, 0xBA,
-	0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43, 0xE9, 0xBB,
-	0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43, 0xE9, 0xBB,
-	0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43, 0xE9, 0xBB,
-	0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43, 0xE9, 0xBB,
-	0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43, 0xE9, 0xBC,
-	0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43, 0xE9, 0xBC,
-	0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43, 0xE9, 0xBC,
-	// Bytes 1680 - 16bf
-	0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43, 0xE9, 0xBD,
-	0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43, 0xE9, 0xBD,
-	0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43, 0xE9, 0xBE,
-	0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43, 0xE9, 0xBE,
-	0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43, 0xEA, 0x9D,
-	0xAF, 0x44, 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0,
-	0xA0, 0x94, 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5,
-	0x44, 0xF0, 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0,
-	// Bytes 16c0 - 16ff
-	0x98, 0xBA, 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44,
-	0xF0, 0xA0, 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8,
-	0xAC, 0x44, 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0,
-	0xA1, 0x93, 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8,
-	0x44, 0xF0, 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1,
-	0xA7, 0x88, 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44,
-	0xF0, 0xA1, 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7,
-	0xA4, 0x44, 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0,
-	// Bytes 1700 - 173f
-	0xA2, 0x86, 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F,
-	0x44, 0xF0, 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2,
-	0x9B, 0x94, 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44,
-	0xF0, 0xA2, 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC,
-	0x8C, 0x44, 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0,
-	0xA3, 0x80, 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8,
-	0x44, 0xF0, 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3,
-	0x8E, 0x93, 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44,
-	// Bytes 1740 - 177f
-	0xF0, 0xA3, 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F,
-	0x95, 0x44, 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0,
-	0xA3, 0x9A, 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7,
-	0x44, 0xF0, 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3,
-	0xAB, 0xBA, 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44,
-	0xF0, 0xA3, 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB,
-	0x91, 0x44, 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0,
-	0xA3, 0xBE, 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3,
-	// Bytes 1780 - 17bf
-	0x44, 0xF0, 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4,
-	0x8E, 0xAB, 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44,
-	0xF0, 0xA4, 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0,
-	0x94, 0x44, 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0,
-	0xA4, 0xB2, 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1,
-	0x44, 0xF0, 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5,
-	0x81, 0x84, 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44,
-	0xF0, 0xA5, 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84,
-	// Bytes 17c0 - 17ff
-	0x99, 0x44, 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0,
-	0xA5, 0x89, 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D,
-	0x44, 0xF0, 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5,
-	0x9A, 0x9A, 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44,
-	0xF0, 0xA5, 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA,
-	0xA7, 0x44, 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0,
-	0xA5, 0xB2, 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90,
-	0x44, 0xF0, 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6,
-	// Bytes 1800 - 183f
-	0x87, 0x9A, 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44,
-	0xF0, 0xA6, 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B,
-	0x99, 0x44, 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0,
-	0xA6, 0x93, 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3,
-	0x44, 0xF0, 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6,
-	0x9E, 0xA7, 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44,
-	0xF0, 0xA6, 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0,
-	0xB6, 0x44, 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0,
-	// Bytes 1840 - 187f
-	0xA6, 0xB5, 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC,
-	0x44, 0xF0, 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7,
-	0x83, 0x92, 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44,
-	0xF0, 0xA7, 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2,
-	0xAE, 0x44, 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0,
-	0xA7, 0xB2, 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93,
-	0x44, 0xF0, 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8,
-	0x97, 0x92, 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44,
-	// Bytes 1880 - 18bf
-	0xF0, 0xA8, 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF,
-	0xBA, 0x44, 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0,
-	0xA9, 0x85, 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F,
-	0x44, 0xF0, 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9,
-	0x90, 0x8A, 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44,
-	0xF0, 0xA9, 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC,
-	0xB0, 0x44, 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0,
-	0xAA, 0x84, 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E,
-	// Bytes 18c0 - 18ff
-	0x44, 0xF0, 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA,
-	0x8E, 0x92, 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x06,
-	0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x06, 0xE0,
-	0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x06, 0xE0, 0xAD,
-	0x87, 0xE0, 0xAC, 0xBE, 0x06, 0xE0, 0xAD, 0x87,
-	0xE0, 0xAD, 0x96, 0x06, 0xE0, 0xAD, 0x87, 0xE0,
-	0xAD, 0x97, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF,
-	0x97, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE,
-	// Bytes 1900 - 193f
-	0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x06,
-	0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x06, 0xE0,
-	0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x06, 0xE0, 0xB3,
-	0x86, 0xE0, 0xB3, 0x95, 0x06, 0xE0, 0xB3, 0x86,
-	0xE0, 0xB3, 0x96, 0x06, 0xE0, 0xB5, 0x86, 0xE0,
-	0xB4, 0xBE, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5,
-	0x97, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE,
-	0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x06,
-	// Bytes 1940 - 197f
-	0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x06, 0xE1,
-	0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC,
-	0x87, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC, 0x89,
-	0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC, 0x8B, 0xE1,
-	0xAC, 0xB5, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC,
-	0xB5, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5,
-	0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x06,
-	0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x06, 0xE1,
-	// Bytes 1980 - 19bf
-	0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAC,
-	0xBF, 0xE1, 0xAC, 0xB5, 0x06, 0xE1, 0xAD, 0x82,
-	0xE1, 0xAC, 0xB5, 0x08, 0xF0, 0x91, 0x84, 0xB1,
-	0xF0, 0x91, 0x84, 0xA7, 0x08, 0xF0, 0x91, 0x84,
-	0xB2, 0xF0, 0x91, 0x84, 0xA7, 0x09, 0xE0, 0xB3,
-	0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x42,
-	0x21, 0x21, 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E,
-	0x42, 0x30, 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31,
-	// Bytes 19c0 - 19ff
-	0x2C, 0x42, 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42,
-	0x31, 0x31, 0x42, 0x31, 0x32, 0x42, 0x31, 0x33,
-	0x42, 0x31, 0x34, 0x42, 0x31, 0x35, 0x42, 0x31,
-	0x36, 0x42, 0x31, 0x37, 0x42, 0x31, 0x38, 0x42,
-	0x31, 0x39, 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E,
-	0x42, 0x32, 0x30, 0x42, 0x32, 0x31, 0x42, 0x32,
-	0x32, 0x42, 0x32, 0x33, 0x42, 0x32, 0x34, 0x42,
-	0x32, 0x35, 0x42, 0x32, 0x36, 0x42, 0x32, 0x37,
-	// Bytes 1a00 - 1a3f
-	0x42, 0x32, 0x38, 0x42, 0x32, 0x39, 0x42, 0x33,
-	0x2C, 0x42, 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42,
-	0x33, 0x31, 0x42, 0x33, 0x32, 0x42, 0x33, 0x33,
-	0x42, 0x33, 0x34, 0x42, 0x33, 0x35, 0x42, 0x33,
-	0x36, 0x42, 0x33, 0x37, 0x42, 0x33, 0x38, 0x42,
-	0x33, 0x39, 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E,
-	0x42, 0x34, 0x30, 0x42, 0x34, 0x31, 0x42, 0x34,
-	0x32, 0x42, 0x34, 0x33, 0x42, 0x34, 0x34, 0x42,
-	// Bytes 1a40 - 1a7f
-	0x34, 0x35, 0x42, 0x34, 0x36, 0x42, 0x34, 0x37,
-	0x42, 0x34, 0x38, 0x42, 0x34, 0x39, 0x42, 0x35,
-	0x2C, 0x42, 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42,
-	0x36, 0x2C, 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C,
-	0x42, 0x37, 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38,
-	0x2E, 0x42, 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42,
-	0x3D, 0x3D, 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F,
-	0x42, 0x41, 0x55, 0x42, 0x42, 0x71, 0x42, 0x43,
-	// Bytes 1a80 - 1abf
-	0x44, 0x42, 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42,
-	0x44, 0x7A, 0x42, 0x47, 0x42, 0x42, 0x47, 0x79,
-	0x42, 0x48, 0x50, 0x42, 0x48, 0x56, 0x42, 0x48,
-	0x67, 0x42, 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42,
-	0x49, 0x4A, 0x42, 0x49, 0x55, 0x42, 0x49, 0x56,
-	0x42, 0x49, 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B,
-	0x4B, 0x42, 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42,
-	0x4C, 0x6A, 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43,
-	// Bytes 1ac0 - 1aff
-	0x42, 0x4D, 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D,
-	0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42,
-	0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50, 0x52,
-	0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42, 0x53,
-	0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42,
-	0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49,
-	0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57,
-	0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63, 0x42,
-	// Bytes 1b00 - 1b3f
-	0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42,
-	0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64,
-	0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42,
-	0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C,
-	0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69,
-	0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42,
-	0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41,
-	0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B,
-	// Bytes 1b40 - 1b7f
-	0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42,
-	0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D,
-	0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D,
-	0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42,
-	0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62,
-	0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D,
-	0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42,
-	0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57,
-	// Bytes 1b80 - 1bbf
-	0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E,
-	0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42,
-	0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70, 0x57,
-	0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42, 0x73,
-	0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69, 0x42,
-	0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43, 0x28,
-	0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43, 0x28,
-	0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43, 0x28,
-	// Bytes 1bc0 - 1bff
-	0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43, 0x28,
-	0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43, 0x28,
-	0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43, 0x28,
-	0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43, 0x28,
-	0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43, 0x28,
-	0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43, 0x28,
-	0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28,
-	0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28,
-	// Bytes 1c00 - 1c3f
-	0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28,
-	0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43, 0x28,
-	0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43, 0x28,
-	0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43, 0x28,
-	0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43, 0x28,
-	0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43, 0x28,
-	0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28,
-	0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43, 0x28,
-	// Bytes 1c40 - 1c7f
-	0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43, 0x28,
-	0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43, 0x28,
-	0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43, 0x28,
-	0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28,
-	0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28,
-	0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28,
-	0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43, 0x28,
-	0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43, 0x28,
-	// Bytes 1c80 - 1cbf
-	0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43, 0x28,
-	0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43, 0x28,
-	0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43, 0x28,
-	0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E,
-	0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31,
-	0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31,
-	0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31,
-	0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31,
-	// Bytes 1cc0 - 1cff
-	0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31,
-	0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A,
-	0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43,
-	0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43, 0x47,
-	0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43, 0x49,
-	0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C,
-	0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D,
-	0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50,
-	// Bytes 1d00 - 1d3f
-	0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43, 0x50,
-	0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54,
-	0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43, 0x58,
-	0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61,
-	0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62,
-	0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63,
-	0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63,
-	0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64,
-	// Bytes 1d40 - 1d7f
-	0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65,
-	0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43, 0x66,
-	0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68,
-	0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B,
-	0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B,
-	0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B,
-	0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C,
-	0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D,
-	// Bytes 1d80 - 1dbf
-	0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D,
-	0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43, 0x76,
-	0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2,
-	0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA,
-	0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE,
-	0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE,
-	0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE,
-	0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE,
-	// Bytes 1dc0 - 1dff
-	0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29, 0x44,
-	0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31, 0x32,
-	0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44, 0x28,
-	0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35, 0x29,
-	0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28, 0x31,
-	0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29, 0x44,
-	0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32, 0x30,
-	0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31,
-	// Bytes 1e00 - 1e3f
-	0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5,
-	0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7,
-	0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44,
-	0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82,
-	0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33,
-	0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9,
-	0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6,
-	0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44,
-	// Bytes 1e40 - 1e7f
-	0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C,
-	0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36,
-	0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88,
-	0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6,
-	0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44,
-	0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97,
-	0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38,
-	0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5,
-	// Bytes 1e80 - 1ebf
-	0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7,
-	0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49, 0x44,
-	0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61,
-	0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76,
-	0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82,
-	0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4,
-	0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44,
-	0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5,
-	// Bytes 1ec0 - 1eff
-	0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8,
-	0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC,
-	0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8,
-	0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44,
-	0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9,
-	0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8,
-	0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89,
-	0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA,
-	// Bytes 1f00 - 1f3f
-	0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44,
-	0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8,
-	0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8,
-	0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86,
-	0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA,
-	0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44,
-	0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8,
-	0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8,
-	// Bytes 1f40 - 1f7f
-	0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86,
-	0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB,
-	0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44,
-	0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9,
-	0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8,
-	0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC,
-	0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD,
-	0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44,
-	// Bytes 1f80 - 1fbf
-	0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8,
-	0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8,
-	0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A,
-	0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3,
-	0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44,
-	0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9,
-	0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8,
-	0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A,
-	// Bytes 1fc0 - 1fff
-	0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4,
-	0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44,
-	0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9,
-	0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8,
-	0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A,
-	0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5,
-	0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44,
-	0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9,
-	// Bytes 2000 - 203f
-	0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8,
-	0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD,
-	0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6,
-	0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44,
-	0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9,
-	0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8,
-	0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89,
-	0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8,
-	// Bytes 2040 - 207f
-	0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44,
-	0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9,
-	0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8,
-	0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85,
-	0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA,
-	0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44,
-	0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8,
-	0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9,
-	// Bytes 2080 - 20bf
-	0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A,
-	0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82,
-	0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44,
-	0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8,
-	0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9,
-	0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE,
-	0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83,
-	0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44,
-	// Bytes 20c0 - 20ff
-	0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8,
-	0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9,
-	0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE,
-	0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84,
-	0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44,
-	0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8,
-	0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9,
-	0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE,
-	// Bytes 2100 - 213f
-	0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85,
-	0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44,
-	0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8,
-	0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9,
-	0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2,
-	0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86,
-	0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44,
-	0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9,
-	// Bytes 2140 - 217f
-	0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9,
-	0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89,
-	0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88,
-	0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44,
-	0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8,
-	0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9,
-	0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85,
-	0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A,
-	// Bytes 2180 - 21bf
-	0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44,
-	0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9,
-	0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28,
-	0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29,
-	0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28,
-	0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29,
-	// Bytes 21c0 - 21ff
-	0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28,
-	0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29,
-	0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28,
-	0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84,
-	0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29,
-	0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28,
-	0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9,
-	// Bytes 2200 - 223f
-	0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29,
-	0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28,
-	0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC,
-	0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29,
-	0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28,
-	0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A,
-	0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29,
-	0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28,
-	// Bytes 2240 - 227f
-	0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91,
-	0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29,
-	0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28,
-	0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97,
-	0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29,
-	0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28,
-	0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0,
-	0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29,
-	// Bytes 2280 - 22bf
-	0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28,
-	0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B,
-	0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29,
-	0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28,
-	0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87,
-	0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29,
-	0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28,
-	0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87,
-	// Bytes 22c0 - 22ff
-	0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33,
-	0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31,
-	0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5,
-	0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31,
-	0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6,
-	0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88,
-	0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	// Bytes 2300 - 233f
-	0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5,
-	0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5,
-	0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5,
-	// Bytes 2340 - 237f
-	0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31,
-	0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7,
-	0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32,
-	0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,
-	0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81,
-	0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36,
-	0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31,
-	0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81,
-	// Bytes 2380 - 23bf
-	0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32,
-	0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7,
-	0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32,
-	0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7,
-	0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32,
-	// Bytes 23c0 - 23ff
-	0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6,
-	0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5,
-	0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32,
-	0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81,
-	0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35,
-	0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33,
-	0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81,
-	0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35,
-	// Bytes 2400 - 243f
-	0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34,
-	0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81,
-	0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38,
-	0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41,
-	0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88,
-	0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73,
-	0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46,
-	0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D,
-	// Bytes 2440 - 247f
-	0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8,
-	0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8,
-	0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC,
-	0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9,
-	0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A,
-	0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
-	0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8,
-	0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA,
-	// Bytes 2480 - 24bf
-	0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8,
-	0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85,
-	0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
-	0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE,
-	0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46,
-	0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,
-	0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC,
-	0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9,
-	// Bytes 24c0 - 24ff
-	0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85,
-	0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
-	0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A,
-	0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46,
-	0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,
-	0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,
-	0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8,
-	0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE,
-	// Bytes 2500 - 253f
-	0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9,
-	0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC,
-	0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
-	0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8,
-	0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4,
-	0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,
-	0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85,
-	0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9,
-	// Bytes 2540 - 257f
-	0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD,
-	0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
-	0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8,
-	0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5,
-	0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8,
-	0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD,
-	0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9,
-	0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD,
-	// Bytes 2580 - 25bf
-	0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46,
-	0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,
-	0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9,
-	0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9,
-	0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85,
-	0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9,
-	0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89,
-	0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
-	// Bytes 25c0 - 25ff
-	0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
-	0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82,
-	0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9,
-	0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85,
-	0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9,
-	0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85,
-	0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
-	0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9,
-	// Bytes 2600 - 263f
-	0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84,
-	0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8,
-	0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD,
-	0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
-	0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85,
-	0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
-	0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,
-	0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85,
-	// Bytes 2640 - 267f
-	0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8,
-	0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC,
-	0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
-	0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85,
-	0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
-	0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9,
-	0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85,
-	0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9,
-	// Bytes 2680 - 26bf
-	0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC,
-	0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
-	0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89,
-	0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46,
-	0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,
-	0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86,
-	0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9,
-	0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85,
-	// Bytes 26c0 - 26ff
-	0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8,
-	0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85,
-	0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46,
-	0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9,
-	0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A,
-	0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
-	0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
-	0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
-	// Bytes 2700 - 273f
-	0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE,
-	0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46,
-	0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9,
-	0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A,
-	0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9,
-	0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
-	0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
-	0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A,
-	// Bytes 2740 - 277f
-	0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46,
-	0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9,
-	0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A,
-	0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9,
-	0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0,
-	0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA,
-	0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1,
-	0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46,
-	// Bytes 2780 - 27bf
-	0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,
-	0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD,
-	0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91,
-	0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0,
-	0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE,
-	0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5,
-	0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46,
-	0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,
-	// Bytes 27c0 - 27ff
-	0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
-	0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB,
-	0xE0, 0xBE, 0xB7, 0x46, 0xE1, 0x84, 0x80, 0xE1,
-	0x85, 0xA1, 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85,
-	0xA1, 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,
-	0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x46,
-	0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x46, 0xE1,
-	0x84, 0x87, 0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84,
-	// Bytes 2800 - 283f
-	0x89, 0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84, 0x8B,
-	0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84, 0x8B, 0xE1,
-	0x85, 0xAE, 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
-	0xA1, 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,
-	0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x46,
-	0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x46, 0xE1,
-	0x84, 0x91, 0xE1, 0x85, 0xA1, 0x46, 0xE1, 0x84,
-	0x92, 0xE1, 0x85, 0xA1, 0x46, 0xE2, 0x80, 0xB2,
-	// Bytes 2840 - 287f
-	0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2,
-	0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
-	0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,
-	0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46,
-	0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3,
-	0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82,
-	0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3,
-	0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3,
-	// Bytes 2880 - 28bf
-	0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83,
-	0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3,
-	0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46,
-	0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3,
-	0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4,
-	0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3,
-	0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6,
-	0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92,
-	// Bytes 28c0 - 28ff
-	0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95,
-	0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80,
-	0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85,
-	0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1,
-	0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83,
-	0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
-	0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
-	0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
-	// Bytes 2900 - 293f
-	0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48,
-	0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29,
-	0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,
-	0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
-	0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1,
-	0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E,
-	0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
-	0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
-	// Bytes 2940 - 297f
-	0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
-	0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48,
-	0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29,
-	0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73,
-	0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8,
-	0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
-	0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3,
-	0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB,
-	// Bytes 2980 - 29bf
-	0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5,
-	0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8,
-	0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48,
-	0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF,
-	0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,
-	0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
-	0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2,
-	0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88,
-	// Bytes 29c0 - 29ff
-	0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49,
-	0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88,
-	0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89,
-	0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4,
-	0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
-	0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49,
-	0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80,
-	0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93,
-	// Bytes 2a00 - 2a3f
-	0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,
-	0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
-	0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49,
-	0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80,
-	0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97,
-	0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82,
-	0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,
-	// Bytes 2a40 - 2a7f
-	0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83,
-	0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3,
-	0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82,
-	0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49,
-	0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
-	0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB,
-	0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3,
-	// Bytes 2a80 - 2abf
-	0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82,
-	0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49,
-	0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82,
-	0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
-	0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3,
-	0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83,
-	0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49,
-	0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	// Bytes 2ac0 - 2aff
-	0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
-	0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3,
-	0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,
-	0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49,
-	0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
-	0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC,
-	0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,
-	// Bytes 2b00 - 2b3f
-	0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49,
-	0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83,
-	0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB,
-	0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3,
-	0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,
-	0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49,
-	0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,
-	0x88, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE,
-	// Bytes 2b40 - 2b7f
-	0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x4C, 0xE2,
-	0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
-	0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,
-	0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
-	0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
-	0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,
-	0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,
-	0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-	// Bytes 2b80 - 2bbf
-	0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,
-	0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,
-	0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,
-	0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,
-	0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,
-	0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
-	0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,
-	// Bytes 2bc0 - 2bff
-	0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,
-	0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
-	0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,
-	0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
-	0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
-	0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,
-	0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,
-	// Bytes 2c00 - 2c3f
-	0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-	0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
-	0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
-	0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
-	0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,
-	0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,
-	0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
-	0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,
-	// Bytes 2c40 - 2c7f
-	0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,
-	0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
-	0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,
-	0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
-	0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,
-	0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
-	0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
-	0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
-	// Bytes 2c80 - 2cbf
-	0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
-	0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,
-	0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
-	0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
-	0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,
-	0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,
-	0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,
-	0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,
-	// Bytes 2cc0 - 2cff
-	0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE1, 0x84, 0x8E,
-	0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84,
-	0x80, 0xE1, 0x85, 0xA9, 0x4F, 0xE3, 0x82, 0xA2,
-	0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,
-	0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-	0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,
-	0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,
-	// Bytes 2d00 - 2d3f
-	0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,
-	0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,
-	0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-	0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,
-	0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
-	// Bytes 2d40 - 2d7f
-	0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,
-	0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
-	0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,
-	0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,
-	0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-	0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,
-	0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,
-	// Bytes 2d80 - 2dbf
-	0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,
-	0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
-	0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,
-	0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,
-	// Bytes 2dc0 - 2dff
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-	0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,
-	0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
-	0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,
-	0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,
-	0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
-	0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
-	0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
-	// Bytes 2e00 - 2e3f
-	0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
-	0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,
-	0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,
-	0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
-	0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,
-	0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-	0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,
-	0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
-	// Bytes 2e40 - 2e7f
-	0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,
-	0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,
-	0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,
-	0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,
-	0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x86, 0xE0,
-	0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x86, 0xE0, 0xB7,
-	0x99, 0xE0, 0xB7, 0x8F, 0x09, 0xE0, 0xB7, 0x99,
-	0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x09, 0x44,
-	// Bytes 2e80 - 2ebf
-	0x44, 0x5A, 0xCC, 0x8C, 0xE6, 0x44, 0x44, 0x7A,
-	0xCC, 0x8C, 0xE6, 0x44, 0x64, 0x7A, 0xCC, 0x8C,
-	0xE6, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93,
-	0xE6, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94,
-	0xE6, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95,
-	0xDC, 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,
-	0xE3, 0x82, 0x99, 0x08, 0x4C, 0xE3, 0x82, 0xAD,
-	0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-	// Bytes 2ec0 - 2eff
-	0x99, 0x08, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83,
-	0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x08,
-	0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,
-	0x83, 0x88, 0xE3, 0x82, 0x99, 0x08, 0x4F, 0xE3,
-	0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3,
-	0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x08, 0x4F,
-	0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
-	0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x08,
-	// Bytes 2f00 - 2f3f
-	0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
-	0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99,
-	0x08, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
-	0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82,
-	0x99, 0x08, 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82,
-	0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3,
-	0x83, 0x88, 0xE3, 0x82, 0x99, 0x08, 0x52, 0xE3,
-	0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9,
-	// Bytes 2f40 - 2f7f
-	0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82,
-	0x99, 0x08, 0x03, 0x3C, 0xCC, 0xB8, 0x01, 0x03,
-	0x3D, 0xCC, 0xB8, 0x01, 0x03, 0x3E, 0xCC, 0xB8,
-	0x01, 0x03, 0x41, 0xCC, 0x80, 0xE6, 0x03, 0x41,
-	0xCC, 0x81, 0xE6, 0x03, 0x41, 0xCC, 0x83, 0xE6,
-	0x03, 0x41, 0xCC, 0x84, 0xE6, 0x03, 0x41, 0xCC,
-	0x89, 0xE6, 0x03, 0x41, 0xCC, 0x8C, 0xE6, 0x03,
-	0x41, 0xCC, 0x8F, 0xE6, 0x03, 0x41, 0xCC, 0x91,
-	// Bytes 2f80 - 2fbf
-	0xE6, 0x03, 0x41, 0xCC, 0xA5, 0xDC, 0x03, 0x41,
-	0xCC, 0xA8, 0xCA, 0x03, 0x42, 0xCC, 0x87, 0xE6,
-	0x03, 0x42, 0xCC, 0xA3, 0xDC, 0x03, 0x42, 0xCC,
-	0xB1, 0xDC, 0x03, 0x43, 0xCC, 0x81, 0xE6, 0x03,
-	0x43, 0xCC, 0x82, 0xE6, 0x03, 0x43, 0xCC, 0x87,
-	0xE6, 0x03, 0x43, 0xCC, 0x8C, 0xE6, 0x03, 0x44,
-	0xCC, 0x87, 0xE6, 0x03, 0x44, 0xCC, 0x8C, 0xE6,
-	0x03, 0x44, 0xCC, 0xA3, 0xDC, 0x03, 0x44, 0xCC,
-	// Bytes 2fc0 - 2fff
-	0xA7, 0xCA, 0x03, 0x44, 0xCC, 0xAD, 0xDC, 0x03,
-	0x44, 0xCC, 0xB1, 0xDC, 0x03, 0x45, 0xCC, 0x80,
-	0xE6, 0x03, 0x45, 0xCC, 0x81, 0xE6, 0x03, 0x45,
-	0xCC, 0x83, 0xE6, 0x03, 0x45, 0xCC, 0x86, 0xE6,
-	0x03, 0x45, 0xCC, 0x87, 0xE6, 0x03, 0x45, 0xCC,
-	0x88, 0xE6, 0x03, 0x45, 0xCC, 0x89, 0xE6, 0x03,
-	0x45, 0xCC, 0x8C, 0xE6, 0x03, 0x45, 0xCC, 0x8F,
-	0xE6, 0x03, 0x45, 0xCC, 0x91, 0xE6, 0x03, 0x45,
-	// Bytes 3000 - 303f
-	0xCC, 0xA8, 0xCA, 0x03, 0x45, 0xCC, 0xAD, 0xDC,
-	0x03, 0x45, 0xCC, 0xB0, 0xDC, 0x03, 0x46, 0xCC,
-	0x87, 0xE6, 0x03, 0x47, 0xCC, 0x81, 0xE6, 0x03,
-	0x47, 0xCC, 0x82, 0xE6, 0x03, 0x47, 0xCC, 0x84,
-	0xE6, 0x03, 0x47, 0xCC, 0x86, 0xE6, 0x03, 0x47,
-	0xCC, 0x87, 0xE6, 0x03, 0x47, 0xCC, 0x8C, 0xE6,
-	0x03, 0x47, 0xCC, 0xA7, 0xCA, 0x03, 0x48, 0xCC,
-	0x82, 0xE6, 0x03, 0x48, 0xCC, 0x87, 0xE6, 0x03,
-	// Bytes 3040 - 307f
-	0x48, 0xCC, 0x88, 0xE6, 0x03, 0x48, 0xCC, 0x8C,
-	0xE6, 0x03, 0x48, 0xCC, 0xA3, 0xDC, 0x03, 0x48,
-	0xCC, 0xA7, 0xCA, 0x03, 0x48, 0xCC, 0xAE, 0xDC,
-	0x03, 0x49, 0xCC, 0x80, 0xE6, 0x03, 0x49, 0xCC,
-	0x81, 0xE6, 0x03, 0x49, 0xCC, 0x82, 0xE6, 0x03,
-	0x49, 0xCC, 0x83, 0xE6, 0x03, 0x49, 0xCC, 0x84,
-	0xE6, 0x03, 0x49, 0xCC, 0x86, 0xE6, 0x03, 0x49,
-	0xCC, 0x87, 0xE6, 0x03, 0x49, 0xCC, 0x89, 0xE6,
-	// Bytes 3080 - 30bf
-	0x03, 0x49, 0xCC, 0x8C, 0xE6, 0x03, 0x49, 0xCC,
-	0x8F, 0xE6, 0x03, 0x49, 0xCC, 0x91, 0xE6, 0x03,
-	0x49, 0xCC, 0xA3, 0xDC, 0x03, 0x49, 0xCC, 0xA8,
-	0xCA, 0x03, 0x49, 0xCC, 0xB0, 0xDC, 0x03, 0x4A,
-	0xCC, 0x82, 0xE6, 0x03, 0x4B, 0xCC, 0x81, 0xE6,
-	0x03, 0x4B, 0xCC, 0x8C, 0xE6, 0x03, 0x4B, 0xCC,
-	0xA3, 0xDC, 0x03, 0x4B, 0xCC, 0xA7, 0xCA, 0x03,
-	0x4B, 0xCC, 0xB1, 0xDC, 0x03, 0x4C, 0xCC, 0x81,
-	// Bytes 30c0 - 30ff
-	0xE6, 0x03, 0x4C, 0xCC, 0x8C, 0xE6, 0x03, 0x4C,
-	0xCC, 0xA7, 0xCA, 0x03, 0x4C, 0xCC, 0xAD, 0xDC,
-	0x03, 0x4C, 0xCC, 0xB1, 0xDC, 0x03, 0x4D, 0xCC,
-	0x81, 0xE6, 0x03, 0x4D, 0xCC, 0x87, 0xE6, 0x03,
-	0x4D, 0xCC, 0xA3, 0xDC, 0x03, 0x4E, 0xCC, 0x80,
-	0xE6, 0x03, 0x4E, 0xCC, 0x81, 0xE6, 0x03, 0x4E,
-	0xCC, 0x83, 0xE6, 0x03, 0x4E, 0xCC, 0x87, 0xE6,
-	0x03, 0x4E, 0xCC, 0x8C, 0xE6, 0x03, 0x4E, 0xCC,
-	// Bytes 3100 - 313f
-	0xA3, 0xDC, 0x03, 0x4E, 0xCC, 0xA7, 0xCA, 0x03,
-	0x4E, 0xCC, 0xAD, 0xDC, 0x03, 0x4E, 0xCC, 0xB1,
-	0xDC, 0x03, 0x4F, 0xCC, 0x80, 0xE6, 0x03, 0x4F,
-	0xCC, 0x81, 0xE6, 0x03, 0x4F, 0xCC, 0x86, 0xE6,
-	0x03, 0x4F, 0xCC, 0x89, 0xE6, 0x03, 0x4F, 0xCC,
-	0x8B, 0xE6, 0x03, 0x4F, 0xCC, 0x8C, 0xE6, 0x03,
-	0x4F, 0xCC, 0x8F, 0xE6, 0x03, 0x4F, 0xCC, 0x91,
-	0xE6, 0x03, 0x50, 0xCC, 0x81, 0xE6, 0x03, 0x50,
-	// Bytes 3140 - 317f
-	0xCC, 0x87, 0xE6, 0x03, 0x52, 0xCC, 0x81, 0xE6,
-	0x03, 0x52, 0xCC, 0x87, 0xE6, 0x03, 0x52, 0xCC,
-	0x8C, 0xE6, 0x03, 0x52, 0xCC, 0x8F, 0xE6, 0x03,
-	0x52, 0xCC, 0x91, 0xE6, 0x03, 0x52, 0xCC, 0xA7,
-	0xCA, 0x03, 0x52, 0xCC, 0xB1, 0xDC, 0x03, 0x53,
-	0xCC, 0x82, 0xE6, 0x03, 0x53, 0xCC, 0x87, 0xE6,
-	0x03, 0x53, 0xCC, 0xA6, 0xDC, 0x03, 0x53, 0xCC,
-	0xA7, 0xCA, 0x03, 0x54, 0xCC, 0x87, 0xE6, 0x03,
-	// Bytes 3180 - 31bf
-	0x54, 0xCC, 0x8C, 0xE6, 0x03, 0x54, 0xCC, 0xA3,
-	0xDC, 0x03, 0x54, 0xCC, 0xA6, 0xDC, 0x03, 0x54,
-	0xCC, 0xA7, 0xCA, 0x03, 0x54, 0xCC, 0xAD, 0xDC,
-	0x03, 0x54, 0xCC, 0xB1, 0xDC, 0x03, 0x55, 0xCC,
-	0x80, 0xE6, 0x03, 0x55, 0xCC, 0x81, 0xE6, 0x03,
-	0x55, 0xCC, 0x82, 0xE6, 0x03, 0x55, 0xCC, 0x86,
-	0xE6, 0x03, 0x55, 0xCC, 0x89, 0xE6, 0x03, 0x55,
-	0xCC, 0x8A, 0xE6, 0x03, 0x55, 0xCC, 0x8B, 0xE6,
-	// Bytes 31c0 - 31ff
-	0x03, 0x55, 0xCC, 0x8C, 0xE6, 0x03, 0x55, 0xCC,
-	0x8F, 0xE6, 0x03, 0x55, 0xCC, 0x91, 0xE6, 0x03,
-	0x55, 0xCC, 0xA3, 0xDC, 0x03, 0x55, 0xCC, 0xA4,
-	0xDC, 0x03, 0x55, 0xCC, 0xA8, 0xCA, 0x03, 0x55,
-	0xCC, 0xAD, 0xDC, 0x03, 0x55, 0xCC, 0xB0, 0xDC,
-	0x03, 0x56, 0xCC, 0x83, 0xE6, 0x03, 0x56, 0xCC,
-	0xA3, 0xDC, 0x03, 0x57, 0xCC, 0x80, 0xE6, 0x03,
-	0x57, 0xCC, 0x81, 0xE6, 0x03, 0x57, 0xCC, 0x82,
-	// Bytes 3200 - 323f
-	0xE6, 0x03, 0x57, 0xCC, 0x87, 0xE6, 0x03, 0x57,
-	0xCC, 0x88, 0xE6, 0x03, 0x57, 0xCC, 0xA3, 0xDC,
-	0x03, 0x58, 0xCC, 0x87, 0xE6, 0x03, 0x58, 0xCC,
-	0x88, 0xE6, 0x03, 0x59, 0xCC, 0x80, 0xE6, 0x03,
-	0x59, 0xCC, 0x81, 0xE6, 0x03, 0x59, 0xCC, 0x82,
-	0xE6, 0x03, 0x59, 0xCC, 0x83, 0xE6, 0x03, 0x59,
-	0xCC, 0x84, 0xE6, 0x03, 0x59, 0xCC, 0x87, 0xE6,
-	0x03, 0x59, 0xCC, 0x88, 0xE6, 0x03, 0x59, 0xCC,
-	// Bytes 3240 - 327f
-	0x89, 0xE6, 0x03, 0x59, 0xCC, 0xA3, 0xDC, 0x03,
-	0x5A, 0xCC, 0x81, 0xE6, 0x03, 0x5A, 0xCC, 0x82,
-	0xE6, 0x03, 0x5A, 0xCC, 0x87, 0xE6, 0x03, 0x5A,
-	0xCC, 0x8C, 0xE6, 0x03, 0x5A, 0xCC, 0xA3, 0xDC,
-	0x03, 0x5A, 0xCC, 0xB1, 0xDC, 0x03, 0x61, 0xCC,
-	0x80, 0xE6, 0x03, 0x61, 0xCC, 0x81, 0xE6, 0x03,
-	0x61, 0xCC, 0x83, 0xE6, 0x03, 0x61, 0xCC, 0x84,
-	0xE6, 0x03, 0x61, 0xCC, 0x89, 0xE6, 0x03, 0x61,
-	// Bytes 3280 - 32bf
-	0xCC, 0x8C, 0xE6, 0x03, 0x61, 0xCC, 0x8F, 0xE6,
-	0x03, 0x61, 0xCC, 0x91, 0xE6, 0x03, 0x61, 0xCC,
-	0xA5, 0xDC, 0x03, 0x61, 0xCC, 0xA8, 0xCA, 0x03,
-	0x62, 0xCC, 0x87, 0xE6, 0x03, 0x62, 0xCC, 0xA3,
-	0xDC, 0x03, 0x62, 0xCC, 0xB1, 0xDC, 0x03, 0x63,
-	0xCC, 0x81, 0xE6, 0x03, 0x63, 0xCC, 0x82, 0xE6,
-	0x03, 0x63, 0xCC, 0x87, 0xE6, 0x03, 0x63, 0xCC,
-	0x8C, 0xE6, 0x03, 0x64, 0xCC, 0x87, 0xE6, 0x03,
-	// Bytes 32c0 - 32ff
-	0x64, 0xCC, 0x8C, 0xE6, 0x03, 0x64, 0xCC, 0xA3,
-	0xDC, 0x03, 0x64, 0xCC, 0xA7, 0xCA, 0x03, 0x64,
-	0xCC, 0xAD, 0xDC, 0x03, 0x64, 0xCC, 0xB1, 0xDC,
-	0x03, 0x65, 0xCC, 0x80, 0xE6, 0x03, 0x65, 0xCC,
-	0x81, 0xE6, 0x03, 0x65, 0xCC, 0x83, 0xE6, 0x03,
-	0x65, 0xCC, 0x86, 0xE6, 0x03, 0x65, 0xCC, 0x87,
-	0xE6, 0x03, 0x65, 0xCC, 0x88, 0xE6, 0x03, 0x65,
-	0xCC, 0x89, 0xE6, 0x03, 0x65, 0xCC, 0x8C, 0xE6,
-	// Bytes 3300 - 333f
-	0x03, 0x65, 0xCC, 0x8F, 0xE6, 0x03, 0x65, 0xCC,
-	0x91, 0xE6, 0x03, 0x65, 0xCC, 0xA8, 0xCA, 0x03,
-	0x65, 0xCC, 0xAD, 0xDC, 0x03, 0x65, 0xCC, 0xB0,
-	0xDC, 0x03, 0x66, 0xCC, 0x87, 0xE6, 0x03, 0x67,
-	0xCC, 0x81, 0xE6, 0x03, 0x67, 0xCC, 0x82, 0xE6,
-	0x03, 0x67, 0xCC, 0x84, 0xE6, 0x03, 0x67, 0xCC,
-	0x86, 0xE6, 0x03, 0x67, 0xCC, 0x87, 0xE6, 0x03,
-	0x67, 0xCC, 0x8C, 0xE6, 0x03, 0x67, 0xCC, 0xA7,
-	// Bytes 3340 - 337f
-	0xCA, 0x03, 0x68, 0xCC, 0x82, 0xE6, 0x03, 0x68,
-	0xCC, 0x87, 0xE6, 0x03, 0x68, 0xCC, 0x88, 0xE6,
-	0x03, 0x68, 0xCC, 0x8C, 0xE6, 0x03, 0x68, 0xCC,
-	0xA3, 0xDC, 0x03, 0x68, 0xCC, 0xA7, 0xCA, 0x03,
-	0x68, 0xCC, 0xAE, 0xDC, 0x03, 0x68, 0xCC, 0xB1,
-	0xDC, 0x03, 0x69, 0xCC, 0x80, 0xE6, 0x03, 0x69,
-	0xCC, 0x81, 0xE6, 0x03, 0x69, 0xCC, 0x82, 0xE6,
-	0x03, 0x69, 0xCC, 0x83, 0xE6, 0x03, 0x69, 0xCC,
-	// Bytes 3380 - 33bf
-	0x84, 0xE6, 0x03, 0x69, 0xCC, 0x86, 0xE6, 0x03,
-	0x69, 0xCC, 0x89, 0xE6, 0x03, 0x69, 0xCC, 0x8C,
-	0xE6, 0x03, 0x69, 0xCC, 0x8F, 0xE6, 0x03, 0x69,
-	0xCC, 0x91, 0xE6, 0x03, 0x69, 0xCC, 0xA3, 0xDC,
-	0x03, 0x69, 0xCC, 0xA8, 0xCA, 0x03, 0x69, 0xCC,
-	0xB0, 0xDC, 0x03, 0x6A, 0xCC, 0x82, 0xE6, 0x03,
-	0x6A, 0xCC, 0x8C, 0xE6, 0x03, 0x6B, 0xCC, 0x81,
-	0xE6, 0x03, 0x6B, 0xCC, 0x8C, 0xE6, 0x03, 0x6B,
-	// Bytes 33c0 - 33ff
-	0xCC, 0xA3, 0xDC, 0x03, 0x6B, 0xCC, 0xA7, 0xCA,
-	0x03, 0x6B, 0xCC, 0xB1, 0xDC, 0x03, 0x6C, 0xCC,
-	0x81, 0xE6, 0x03, 0x6C, 0xCC, 0x8C, 0xE6, 0x03,
-	0x6C, 0xCC, 0xA7, 0xCA, 0x03, 0x6C, 0xCC, 0xAD,
-	0xDC, 0x03, 0x6C, 0xCC, 0xB1, 0xDC, 0x03, 0x6D,
-	0xCC, 0x81, 0xE6, 0x03, 0x6D, 0xCC, 0x87, 0xE6,
-	0x03, 0x6D, 0xCC, 0xA3, 0xDC, 0x03, 0x6E, 0xCC,
-	0x80, 0xE6, 0x03, 0x6E, 0xCC, 0x81, 0xE6, 0x03,
-	// Bytes 3400 - 343f
-	0x6E, 0xCC, 0x83, 0xE6, 0x03, 0x6E, 0xCC, 0x87,
-	0xE6, 0x03, 0x6E, 0xCC, 0x8C, 0xE6, 0x03, 0x6E,
-	0xCC, 0xA3, 0xDC, 0x03, 0x6E, 0xCC, 0xA7, 0xCA,
-	0x03, 0x6E, 0xCC, 0xAD, 0xDC, 0x03, 0x6E, 0xCC,
-	0xB1, 0xDC, 0x03, 0x6F, 0xCC, 0x80, 0xE6, 0x03,
-	0x6F, 0xCC, 0x81, 0xE6, 0x03, 0x6F, 0xCC, 0x86,
-	0xE6, 0x03, 0x6F, 0xCC, 0x89, 0xE6, 0x03, 0x6F,
-	0xCC, 0x8B, 0xE6, 0x03, 0x6F, 0xCC, 0x8C, 0xE6,
-	// Bytes 3440 - 347f
-	0x03, 0x6F, 0xCC, 0x8F, 0xE6, 0x03, 0x6F, 0xCC,
-	0x91, 0xE6, 0x03, 0x70, 0xCC, 0x81, 0xE6, 0x03,
-	0x70, 0xCC, 0x87, 0xE6, 0x03, 0x72, 0xCC, 0x81,
-	0xE6, 0x03, 0x72, 0xCC, 0x87, 0xE6, 0x03, 0x72,
-	0xCC, 0x8C, 0xE6, 0x03, 0x72, 0xCC, 0x8F, 0xE6,
-	0x03, 0x72, 0xCC, 0x91, 0xE6, 0x03, 0x72, 0xCC,
-	0xA7, 0xCA, 0x03, 0x72, 0xCC, 0xB1, 0xDC, 0x03,
-	0x73, 0xCC, 0x82, 0xE6, 0x03, 0x73, 0xCC, 0x87,
-	// Bytes 3480 - 34bf
-	0xE6, 0x03, 0x73, 0xCC, 0xA6, 0xDC, 0x03, 0x73,
-	0xCC, 0xA7, 0xCA, 0x03, 0x74, 0xCC, 0x87, 0xE6,
-	0x03, 0x74, 0xCC, 0x88, 0xE6, 0x03, 0x74, 0xCC,
-	0x8C, 0xE6, 0x03, 0x74, 0xCC, 0xA3, 0xDC, 0x03,
-	0x74, 0xCC, 0xA6, 0xDC, 0x03, 0x74, 0xCC, 0xA7,
-	0xCA, 0x03, 0x74, 0xCC, 0xAD, 0xDC, 0x03, 0x74,
-	0xCC, 0xB1, 0xDC, 0x03, 0x75, 0xCC, 0x80, 0xE6,
-	0x03, 0x75, 0xCC, 0x81, 0xE6, 0x03, 0x75, 0xCC,
-	// Bytes 34c0 - 34ff
-	0x82, 0xE6, 0x03, 0x75, 0xCC, 0x86, 0xE6, 0x03,
-	0x75, 0xCC, 0x89, 0xE6, 0x03, 0x75, 0xCC, 0x8A,
-	0xE6, 0x03, 0x75, 0xCC, 0x8B, 0xE6, 0x03, 0x75,
-	0xCC, 0x8C, 0xE6, 0x03, 0x75, 0xCC, 0x8F, 0xE6,
-	0x03, 0x75, 0xCC, 0x91, 0xE6, 0x03, 0x75, 0xCC,
-	0xA3, 0xDC, 0x03, 0x75, 0xCC, 0xA4, 0xDC, 0x03,
-	0x75, 0xCC, 0xA8, 0xCA, 0x03, 0x75, 0xCC, 0xAD,
-	0xDC, 0x03, 0x75, 0xCC, 0xB0, 0xDC, 0x03, 0x76,
-	// Bytes 3500 - 353f
-	0xCC, 0x83, 0xE6, 0x03, 0x76, 0xCC, 0xA3, 0xDC,
-	0x03, 0x77, 0xCC, 0x80, 0xE6, 0x03, 0x77, 0xCC,
-	0x81, 0xE6, 0x03, 0x77, 0xCC, 0x82, 0xE6, 0x03,
-	0x77, 0xCC, 0x87, 0xE6, 0x03, 0x77, 0xCC, 0x88,
-	0xE6, 0x03, 0x77, 0xCC, 0x8A, 0xE6, 0x03, 0x77,
-	0xCC, 0xA3, 0xDC, 0x03, 0x78, 0xCC, 0x87, 0xE6,
-	0x03, 0x78, 0xCC, 0x88, 0xE6, 0x03, 0x79, 0xCC,
-	0x80, 0xE6, 0x03, 0x79, 0xCC, 0x81, 0xE6, 0x03,
-	// Bytes 3540 - 357f
-	0x79, 0xCC, 0x82, 0xE6, 0x03, 0x79, 0xCC, 0x83,
-	0xE6, 0x03, 0x79, 0xCC, 0x84, 0xE6, 0x03, 0x79,
-	0xCC, 0x87, 0xE6, 0x03, 0x79, 0xCC, 0x88, 0xE6,
-	0x03, 0x79, 0xCC, 0x89, 0xE6, 0x03, 0x79, 0xCC,
-	0x8A, 0xE6, 0x03, 0x79, 0xCC, 0xA3, 0xDC, 0x03,
-	0x7A, 0xCC, 0x81, 0xE6, 0x03, 0x7A, 0xCC, 0x82,
-	0xE6, 0x03, 0x7A, 0xCC, 0x87, 0xE6, 0x03, 0x7A,
-	0xCC, 0x8C, 0xE6, 0x03, 0x7A, 0xCC, 0xA3, 0xDC,
-	// Bytes 3580 - 35bf
-	0x03, 0x7A, 0xCC, 0xB1, 0xDC, 0x04, 0xC2, 0xA8,
-	0xCC, 0x80, 0xE6, 0x04, 0xC2, 0xA8, 0xCC, 0x81,
-	0xE6, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xE6, 0x04,
-	0xC3, 0x86, 0xCC, 0x81, 0xE6, 0x04, 0xC3, 0x86,
-	0xCC, 0x84, 0xE6, 0x04, 0xC3, 0x98, 0xCC, 0x81,
-	0xE6, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xE6, 0x04,
-	0xC3, 0xA6, 0xCC, 0x84, 0xE6, 0x04, 0xC3, 0xB8,
-	0xCC, 0x81, 0xE6, 0x04, 0xC5, 0xBF, 0xCC, 0x87,
-	// Bytes 35c0 - 35ff
-	0xE6, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xE6, 0x04,
-	0xCA, 0x92, 0xCC, 0x8C, 0xE6, 0x04, 0xCE, 0x91,
-	0xCC, 0x80, 0xE6, 0x04, 0xCE, 0x91, 0xCC, 0x81,
-	0xE6, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xE6, 0x04,
-	0xCE, 0x91, 0xCC, 0x86, 0xE6, 0x04, 0xCE, 0x91,
-	0xCD, 0x85, 0xF0, 0x04, 0xCE, 0x95, 0xCC, 0x80,
-	0xE6, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xE6, 0x04,
-	0xCE, 0x97, 0xCC, 0x80, 0xE6, 0x04, 0xCE, 0x97,
-	// Bytes 3600 - 363f
-	0xCC, 0x81, 0xE6, 0x04, 0xCE, 0x97, 0xCD, 0x85,
-	0xF0, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xE6, 0x04,
-	0xCE, 0x99, 0xCC, 0x81, 0xE6, 0x04, 0xCE, 0x99,
-	0xCC, 0x84, 0xE6, 0x04, 0xCE, 0x99, 0xCC, 0x86,
-	0xE6, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xE6, 0x04,
-	0xCE, 0x9F, 0xCC, 0x80, 0xE6, 0x04, 0xCE, 0x9F,
-	0xCC, 0x81, 0xE6, 0x04, 0xCE, 0xA1, 0xCC, 0x94,
-	0xE6, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xE6, 0x04,
-	// Bytes 3640 - 367f
-	0xCE, 0xA5, 0xCC, 0x81, 0xE6, 0x04, 0xCE, 0xA5,
-	0xCC, 0x84, 0xE6, 0x04, 0xCE, 0xA5, 0xCC, 0x86,
-	0xE6, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xE6, 0x04,
-	0xCE, 0xA9, 0xCC, 0x80, 0xE6, 0x04, 0xCE, 0xA9,
-	0xCC, 0x81, 0xE6, 0x04, 0xCE, 0xA9, 0xCD, 0x85,
-	0xF0, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xE6, 0x04,
-	0xCE, 0xB1, 0xCC, 0x86, 0xE6, 0x04, 0xCE, 0xB1,
-	0xCD, 0x85, 0xF0, 0x04, 0xCE, 0xB5, 0xCC, 0x80,
-	// Bytes 3680 - 36bf
-	0xE6, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xE6, 0x04,
-	0xCE, 0xB7, 0xCD, 0x85, 0xF0, 0x04, 0xCE, 0xB9,
-	0xCC, 0x80, 0xE6, 0x04, 0xCE, 0xB9, 0xCC, 0x81,
-	0xE6, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xE6, 0x04,
-	0xCE, 0xB9, 0xCC, 0x86, 0xE6, 0x04, 0xCE, 0xB9,
-	0xCD, 0x82, 0xE6, 0x04, 0xCE, 0xBF, 0xCC, 0x80,
-	0xE6, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xE6, 0x04,
-	0xCF, 0x81, 0xCC, 0x93, 0xE6, 0x04, 0xCF, 0x81,
-	// Bytes 36c0 - 36ff
-	0xCC, 0x94, 0xE6, 0x04, 0xCF, 0x85, 0xCC, 0x80,
-	0xE6, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xE6, 0x04,
-	0xCF, 0x85, 0xCC, 0x84, 0xE6, 0x04, 0xCF, 0x85,
-	0xCC, 0x86, 0xE6, 0x04, 0xCF, 0x85, 0xCD, 0x82,
-	0xE6, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xF0, 0x04,
-	0xCF, 0x92, 0xCC, 0x81, 0xE6, 0x04, 0xCF, 0x92,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0x86, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xE6, 0x04,
-	// Bytes 3700 - 373f
-	0xD0, 0x90, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0x93,
-	0xCC, 0x81, 0xE6, 0x04, 0xD0, 0x95, 0xCC, 0x80,
-	0xE6, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xE6, 0x04,
-	0xD0, 0x95, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0x96,
-	0xCC, 0x86, 0xE6, 0x04, 0xD0, 0x96, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xE6, 0x04,
-	0xD0, 0x98, 0xCC, 0x80, 0xE6, 0x04, 0xD0, 0x98,
-	0xCC, 0x84, 0xE6, 0x04, 0xD0, 0x98, 0xCC, 0x86,
-	// Bytes 3740 - 377f
-	0xE6, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xE6, 0x04,
-	0xD0, 0x9A, 0xCC, 0x81, 0xE6, 0x04, 0xD0, 0x9E,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xA3, 0xCC, 0x84,
-	0xE6, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xE6, 0x04,
-	0xD0, 0xA3, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xA3,
-	0xCC, 0x8B, 0xE6, 0x04, 0xD0, 0xA7, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xE6, 0x04,
-	0xD0, 0xAD, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xB0,
-	// Bytes 3780 - 37bf
-	0xCC, 0x86, 0xE6, 0x04, 0xD0, 0xB0, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xE6, 0x04,
-	0xD0, 0xB5, 0xCC, 0x80, 0xE6, 0x04, 0xD0, 0xB5,
-	0xCC, 0x86, 0xE6, 0x04, 0xD0, 0xB5, 0xCC, 0x88,
-	0xE6, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xE6, 0x04,
-	0xD0, 0xB6, 0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xB7,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xB8, 0xCC, 0x80,
-	0xE6, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xE6, 0x04,
-	// Bytes 37c0 - 37ff
-	0xD0, 0xB8, 0xCC, 0x86, 0xE6, 0x04, 0xD0, 0xB8,
-	0xCC, 0x88, 0xE6, 0x04, 0xD0, 0xBA, 0xCC, 0x81,
-	0xE6, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xE6, 0x04,
-	0xD1, 0x83, 0xCC, 0x84, 0xE6, 0x04, 0xD1, 0x83,
-	0xCC, 0x86, 0xE6, 0x04, 0xD1, 0x83, 0xCC, 0x88,
-	0xE6, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xE6, 0x04,
-	0xD1, 0x87, 0xCC, 0x88, 0xE6, 0x04, 0xD1, 0x8B,
-	0xCC, 0x88, 0xE6, 0x04, 0xD1, 0x8D, 0xCC, 0x88,
-	// Bytes 3800 - 383f
-	0xE6, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xE6, 0x04,
-	0xD1, 0xB4, 0xCC, 0x8F, 0xE6, 0x04, 0xD1, 0xB5,
-	0xCC, 0x8F, 0xE6, 0x04, 0xD3, 0x98, 0xCC, 0x88,
-	0xE6, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xE6, 0x04,
-	0xD3, 0xA8, 0xCC, 0x88, 0xE6, 0x04, 0xD3, 0xA9,
-	0xCC, 0x88, 0xE6, 0x04, 0xD8, 0xA7, 0xD9, 0x93,
-	0xE6, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xE6, 0x04,
-	0xD8, 0xA7, 0xD9, 0x95, 0xDC, 0x04, 0xD9, 0x88,
-	// Bytes 3840 - 387f
-	0xD9, 0x94, 0xE6, 0x04, 0xD9, 0x8A, 0xD9, 0x94,
-	0xE6, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xE6, 0x04,
-	0xDB, 0x92, 0xD9, 0x94, 0xE6, 0x04, 0xDB, 0x95,
-	0xD9, 0x94, 0xE6, 0x05, 0x41, 0xCC, 0x82, 0xCC,
-	0x80, 0xE6, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81,
-	0xE6, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xE6,
-	0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05,
-	0x41, 0xCC, 0x86, 0xCC, 0x80, 0xE6, 0x05, 0x41,
-	// Bytes 3880 - 38bf
-	0xCC, 0x86, 0xCC, 0x81, 0xE6, 0x05, 0x41, 0xCC,
-	0x86, 0xCC, 0x83, 0xE6, 0x05, 0x41, 0xCC, 0x86,
-	0xCC, 0x89, 0xE6, 0x05, 0x41, 0xCC, 0x87, 0xCC,
-	0x84, 0xE6, 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84,
-	0xE6, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xE6,
-	0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05,
-	0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xE6, 0x05, 0x43,
-	0xCC, 0xA7, 0xCC, 0x81, 0xE6, 0x05, 0x45, 0xCC,
-	// Bytes 38c0 - 38ff
-	0x82, 0xCC, 0x80, 0xE6, 0x05, 0x45, 0xCC, 0x82,
-	0xCC, 0x81, 0xE6, 0x05, 0x45, 0xCC, 0x82, 0xCC,
-	0x83, 0xE6, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89,
-	0xE6, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xE6,
-	0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xE6, 0x05,
-	0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05, 0x45,
-	0xCC, 0xA7, 0xCC, 0x86, 0xE6, 0x05, 0x49, 0xCC,
-	0x88, 0xCC, 0x81, 0xE6, 0x05, 0x4C, 0xCC, 0xA3,
-	// Bytes 3900 - 393f
-	0xCC, 0x84, 0xE6, 0x05, 0x4F, 0xCC, 0x82, 0xCC,
-	0x80, 0xE6, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81,
-	0xE6, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xE6,
-	0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05,
-	0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xE6, 0x05, 0x4F,
-	0xCC, 0x83, 0xCC, 0x84, 0xE6, 0x05, 0x4F, 0xCC,
-	0x83, 0xCC, 0x88, 0xE6, 0x05, 0x4F, 0xCC, 0x84,
-	0xCC, 0x80, 0xE6, 0x05, 0x4F, 0xCC, 0x84, 0xCC,
-	// Bytes 3940 - 397f
-	0x81, 0xE6, 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84,
-	0xE6, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xE6,
-	0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05,
-	0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x4F,
-	0xCC, 0x9B, 0xCC, 0x83, 0xE6, 0x05, 0x4F, 0xCC,
-	0x9B, 0xCC, 0x89, 0xE6, 0x05, 0x4F, 0xCC, 0x9B,
-	0xCC, 0xA3, 0xDC, 0x05, 0x4F, 0xCC, 0xA3, 0xCC,
-	0x82, 0xE6, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84,
-	// Bytes 3980 - 39bf
-	0xE6, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xE6,
-	0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xE6, 0x05,
-	0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xE6, 0x05, 0x53,
-	0xCC, 0xA3, 0xCC, 0x87, 0xE6, 0x05, 0x55, 0xCC,
-	0x83, 0xCC, 0x81, 0xE6, 0x05, 0x55, 0xCC, 0x84,
-	0xCC, 0x88, 0xE6, 0x05, 0x55, 0xCC, 0x88, 0xCC,
-	0x80, 0xE6, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81,
-	0xE6, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xE6,
-	// Bytes 39c0 - 39ff
-	0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xE6, 0x05,
-	0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05, 0x55,
-	0xCC, 0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x55, 0xCC,
-	0x9B, 0xCC, 0x83, 0xE6, 0x05, 0x55, 0xCC, 0x9B,
-	0xCC, 0x89, 0xE6, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
-	0xA3, 0xDC, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80,
-	0xE6, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xE6,
-	0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xE6, 0x05,
-	// Bytes 3a00 - 3a3f
-	0x61, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05, 0x61,
-	0xCC, 0x86, 0xCC, 0x80, 0xE6, 0x05, 0x61, 0xCC,
-	0x86, 0xCC, 0x81, 0xE6, 0x05, 0x61, 0xCC, 0x86,
-	0xCC, 0x83, 0xE6, 0x05, 0x61, 0xCC, 0x86, 0xCC,
-	0x89, 0xE6, 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84,
-	0xE6, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xE6,
-	0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xE6, 0x05,
-	0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05, 0x61,
-	// Bytes 3a40 - 3a7f
-	0xCC, 0xA3, 0xCC, 0x86, 0xE6, 0x05, 0x63, 0xCC,
-	0xA7, 0xCC, 0x81, 0xE6, 0x05, 0x65, 0xCC, 0x82,
-	0xCC, 0x80, 0xE6, 0x05, 0x65, 0xCC, 0x82, 0xCC,
-	0x81, 0xE6, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83,
-	0xE6, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xE6,
-	0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xE6, 0x05,
-	0x65, 0xCC, 0x84, 0xCC, 0x81, 0xE6, 0x05, 0x65,
-	0xCC, 0xA3, 0xCC, 0x82, 0xE6, 0x05, 0x65, 0xCC,
-	// Bytes 3a80 - 3abf
-	0xA7, 0xCC, 0x86, 0xE6, 0x05, 0x69, 0xCC, 0x88,
-	0xCC, 0x81, 0xE6, 0x05, 0x6C, 0xCC, 0xA3, 0xCC,
-	0x84, 0xE6, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80,
-	0xE6, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xE6,
-	0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xE6, 0x05,
-	0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xE6, 0x05, 0x6F,
-	0xCC, 0x83, 0xCC, 0x81, 0xE6, 0x05, 0x6F, 0xCC,
-	0x83, 0xCC, 0x84, 0xE6, 0x05, 0x6F, 0xCC, 0x83,
-	// Bytes 3ac0 - 3aff
-	0xCC, 0x88, 0xE6, 0x05, 0x6F, 0xCC, 0x84, 0xCC,
-	0x80, 0xE6, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81,
-	0xE6, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xE6,
-	0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xE6, 0x05,
-	0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05, 0x6F,
-	0xCC, 0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x6F, 0xCC,
-	0x9B, 0xCC, 0x83, 0xE6, 0x05, 0x6F, 0xCC, 0x9B,
-	0xCC, 0x89, 0xE6, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
-	// Bytes 3b00 - 3b3f
-	0xA3, 0xDC, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82,
-	0xE6, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xE6,
-	0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xE6, 0x05,
-	0x73, 0xCC, 0x81, 0xCC, 0x87, 0xE6, 0x05, 0x73,
-	0xCC, 0x8C, 0xCC, 0x87, 0xE6, 0x05, 0x73, 0xCC,
-	0xA3, 0xCC, 0x87, 0xE6, 0x05, 0x75, 0xCC, 0x83,
-	0xCC, 0x81, 0xE6, 0x05, 0x75, 0xCC, 0x84, 0xCC,
-	0x88, 0xE6, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80,
-	// Bytes 3b40 - 3b7f
-	0xE6, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xE6,
-	0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xE6, 0x05,
-	0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xE6, 0x05, 0x75,
-	0xCC, 0x9B, 0xCC, 0x80, 0xE6, 0x05, 0x75, 0xCC,
-	0x9B, 0xCC, 0x81, 0xE6, 0x05, 0x75, 0xCC, 0x9B,
-	0xCC, 0x83, 0xE6, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
-	0x89, 0xE6, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3,
-	0xDC, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xE6,
-	// Bytes 3b80 - 3bbf
-	0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xE6, 0x05,
-	0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xE6, 0x05, 0xE1,
-	0xBF, 0xBE, 0xCC, 0x80, 0xE6, 0x05, 0xE1, 0xBF,
-	0xBE, 0xCC, 0x81, 0xE6, 0x05, 0xE1, 0xBF, 0xBE,
-	0xCD, 0x82, 0xE6, 0x05, 0xE2, 0x86, 0x90, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x01, 0x05,
-	// Bytes 3bc0 - 3bff
-	0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x87, 0x94, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x88,
-	0x83, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x88, 0x88,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x88, 0x8B, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	// Bytes 3c00 - 3c3f
-	0x89, 0x85, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89,
-	0x88, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0x8D,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0xA1, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x89, 0xB6, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89,
-	// Bytes 3c40 - 3c7f
-	0xB7, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0xBA,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x89, 0xBB, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x8A, 0x86, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A,
-	0x87, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0x91,
-	// Bytes 3c80 - 3cbf
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0x92, 0xCC,
-	0xB8, 0x01, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8,
-	0x01, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x01,
-	0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x01, 0x05,
-	0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x01, 0x05, 0xE2,
-	0x8A, 0xB2, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A,
-	0xB3, 0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0xB4,
-	0xCC, 0xB8, 0x01, 0x05, 0xE2, 0x8A, 0xB5, 0xCC,
-	// Bytes 3cc0 - 3cff
-	0xB8, 0x01, 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD,
-	// Bytes 3d00 - 3d3f
-	0x85, 0xF0, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC,
-	// Bytes 3d40 - 3d7f
-	0x81, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD,
-	// Bytes 3d80 - 3dbf
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC,
-	// Bytes 3dc0 - 3dff
-	0x81, 0xE6, 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD,
-	// Bytes 3e00 - 3e3f
-	0x82, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC,
-	// Bytes 3e40 - 3e7f
-	0x81, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC,
-	0x80, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD,
-	0x82, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC,
-	0x80, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD,
-	// Bytes 3e80 - 3ebf
-	0x82, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC,
-	0x80, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD,
-	0x82, 0xE6, 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD,
-	0x85, 0xF0, 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD,
-	// Bytes 3ec0 - 3eff
-	0x85, 0xF0, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4,
-	0xBC, 0x07, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4,
-	0xBC, 0x07, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4,
-	0xBC, 0x07, 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1,
-	0x96, 0x5B, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7,
-	0x8A, 0x09, 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82,
-	// Bytes 3f00 - 3f3f
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82,
-	// Bytes 3f40 - 3f7f
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82,
-	// Bytes 3f80 - 3fbf
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82,
-	// Bytes 3fc0 - 3fff
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82,
-	// Bytes 4000 - 403f
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82,
-	// Bytes 4040 - 407f
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-	// Bytes 4080 - 40bf
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
-	0x9A, 0x08, 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82,
-	0x99, 0x08, 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82,
-	0x99, 0x08, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
-	// Bytes 40c0 - 40ff
-	0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0x91, 0xCC,
-	0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC,
-	0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0x91, 0xCC,
-	0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF0,
-	// Bytes 4100 - 413f
-	0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD,
-	0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0x97, 0xCC,
-	0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
-	0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC,
-	// Bytes 4140 - 417f
-	0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC,
-	0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xA9, 0xCC,
-	0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD,
-	// Bytes 4180 - 41bf
-	0x85, 0xF0, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD,
-	0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,
-	0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC,
-	0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE,
-	// Bytes 41c0 - 41ff
-	0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF0,
-	0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-	0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC,
-	0x81, 0xCD, 0x85, 0xF0, 0x08, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCF,
-	0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF0,
-	0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD,
-	0x85, 0xF0, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD,
-	// Bytes 4200 - 423f
-	0x82, 0xCD, 0x85, 0xF0, 0x08, 0xCF, 0x89, 0xCC,
-	0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF0, 0x08, 0xCF,
-	0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF0,
-	0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-	0x85, 0xF0, 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0,
-	0x91, 0x82, 0xBA, 0x07, 0x08, 0xF0, 0x91, 0x82,
-	0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x07, 0x08, 0xF0,
-	0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x07,
-	// Bytes 4240 - 427f
-	0x43, 0x20, 0xCC, 0x81, 0xE6, 0x43, 0x20, 0xCC,
-	0x83, 0xE6, 0x43, 0x20, 0xCC, 0x84, 0xE6, 0x43,
-	0x20, 0xCC, 0x85, 0xE6, 0x43, 0x20, 0xCC, 0x86,
-	0xE6, 0x43, 0x20, 0xCC, 0x87, 0xE6, 0x43, 0x20,
-	0xCC, 0x88, 0xE6, 0x43, 0x20, 0xCC, 0x8A, 0xE6,
-	0x43, 0x20, 0xCC, 0x8B, 0xE6, 0x43, 0x20, 0xCC,
-	0x93, 0xE6, 0x43, 0x20, 0xCC, 0x94, 0xE6, 0x43,
-	0x20, 0xCC, 0xA7, 0xCA, 0x43, 0x20, 0xCC, 0xA8,
-	// Bytes 4280 - 42bf
-	0xCA, 0x43, 0x20, 0xCC, 0xB3, 0xDC, 0x43, 0x20,
-	0xCD, 0x82, 0xE6, 0x43, 0x20, 0xCD, 0x85, 0xF0,
-	0x43, 0x20, 0xD9, 0x8B, 0x1B, 0x43, 0x20, 0xD9,
-	0x8C, 0x1C, 0x43, 0x20, 0xD9, 0x8D, 0x1D, 0x43,
-	0x20, 0xD9, 0x8E, 0x1E, 0x43, 0x20, 0xD9, 0x8F,
-	0x1F, 0x43, 0x20, 0xD9, 0x90, 0x20, 0x43, 0x20,
-	0xD9, 0x91, 0x21, 0x43, 0x20, 0xD9, 0x92, 0x22,
-	0x43, 0x41, 0xCC, 0x8A, 0xE6, 0x43, 0x73, 0xCC,
-	// Bytes 42c0 - 42ff
-	0x87, 0xE6, 0x44, 0x20, 0xE3, 0x82, 0x99, 0x08,
-	0x44, 0x20, 0xE3, 0x82, 0x9A, 0x08, 0x44, 0xC2,
-	0xA8, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0x91, 0xCC,
-	0x81, 0xE6, 0x44, 0xCE, 0x95, 0xCC, 0x81, 0xE6,
-	0x44, 0xCE, 0x97, 0xCC, 0x81, 0xE6, 0x44, 0xCE,
-	0x99, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0x9F, 0xCC,
-	0x81, 0xE6, 0x44, 0xCE, 0xA5, 0xCC, 0x81, 0xE6,
-	0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xE6, 0x44, 0xCE,
-	// Bytes 4300 - 433f
-	0xA9, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0xB1, 0xCC,
-	0x81, 0xE6, 0x44, 0xCE, 0xB5, 0xCC, 0x81, 0xE6,
-	0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xE6, 0x44, 0xCE,
-	0xB9, 0xCC, 0x81, 0xE6, 0x44, 0xCE, 0xBF, 0xCC,
-	0x81, 0xE6, 0x44, 0xCF, 0x85, 0xCC, 0x81, 0xE6,
-	0x44, 0xCF, 0x89, 0xCC, 0x81, 0xE6, 0x44, 0xD7,
-	0x90, 0xD6, 0xB7, 0x11, 0x44, 0xD7, 0x90, 0xD6,
-	0xB8, 0x12, 0x44, 0xD7, 0x90, 0xD6, 0xBC, 0x15,
-	// Bytes 4340 - 437f
-	0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x91, 0xD6, 0xBF, 0x17, 0x44, 0xD7, 0x92, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0x93, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x95, 0xD6, 0xB9, 0x13, 0x44, 0xD7, 0x95, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0x96, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x99, 0xD6, 0xB4, 0x0E, 0x44, 0xD7, 0x99, 0xD6,
-	// Bytes 4380 - 43bf
-	0xBC, 0x15, 0x44, 0xD7, 0x9A, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0x9B, 0xD6, 0xBF, 0x17, 0x44, 0xD7, 0x9C, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0x9E, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0xA1, 0xD6, 0xBC, 0x15, 0x44, 0xD7, 0xA3, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0xA4, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x17, 0x44, 0xD7,
-	// Bytes 43c0 - 43ff
-	0xA6, 0xD6, 0xBC, 0x15, 0x44, 0xD7, 0xA7, 0xD6,
-	0xBC, 0x15, 0x44, 0xD7, 0xA8, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x15, 0x44, 0xD7,
-	0xA9, 0xD7, 0x81, 0x18, 0x44, 0xD7, 0xA9, 0xD7,
-	0x82, 0x19, 0x44, 0xD7, 0xAA, 0xD6, 0xBC, 0x15,
-	0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x11, 0x44, 0xD8,
-	0xA7, 0xD9, 0x8B, 0x1B, 0x44, 0xD8, 0xA7, 0xD9,
-	0x93, 0xE6, 0x44, 0xD8, 0xA7, 0xD9, 0x94, 0xE6,
-	// Bytes 4400 - 443f
-	0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xDC, 0x44, 0xD8,
-	0xB0, 0xD9, 0xB0, 0x23, 0x44, 0xD8, 0xB1, 0xD9,
-	0xB0, 0x23, 0x44, 0xD9, 0x80, 0xD9, 0x8B, 0x1B,
-	0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x1E, 0x44, 0xD9,
-	0x80, 0xD9, 0x8F, 0x1F, 0x44, 0xD9, 0x80, 0xD9,
-	0x90, 0x20, 0x44, 0xD9, 0x80, 0xD9, 0x91, 0x21,
-	0x44, 0xD9, 0x80, 0xD9, 0x92, 0x22, 0x44, 0xD9,
-	0x87, 0xD9, 0xB0, 0x23, 0x44, 0xD9, 0x88, 0xD9,
-	// Bytes 4440 - 447f
-	0x94, 0xE6, 0x44, 0xD9, 0x89, 0xD9, 0xB0, 0x23,
-	0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xE6, 0x44, 0xDB,
-	0x92, 0xD9, 0x94, 0xE6, 0x44, 0xDB, 0x95, 0xD9,
-	0x94, 0xE6, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x80,
-	0xE6, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81, 0xE6,
-	0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xE6, 0x45,
-	0x20, 0xCC, 0x93, 0xCC, 0x80, 0xE6, 0x45, 0x20,
-	0xCC, 0x93, 0xCC, 0x81, 0xE6, 0x45, 0x20, 0xCC,
-	// Bytes 4480 - 44bf
-	0x93, 0xCD, 0x82, 0xE6, 0x45, 0x20, 0xCC, 0x94,
-	0xCC, 0x80, 0xE6, 0x45, 0x20, 0xCC, 0x94, 0xCC,
-	0x81, 0xE6, 0x45, 0x20, 0xCC, 0x94, 0xCD, 0x82,
-	0xE6, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91, 0x21,
-	0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x21, 0x45,
-	0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x21, 0x45, 0x20,
-	0xD9, 0x8F, 0xD9, 0x91, 0x21, 0x45, 0x20, 0xD9,
-	0x90, 0xD9, 0x91, 0x21, 0x45, 0x20, 0xD9, 0x91,
-	// Bytes 44c0 - 44ff
-	0xD9, 0xB0, 0x23, 0x45, 0xE2, 0xAB, 0x9D, 0xCC,
-	0xB8, 0x01, 0x46, 0xCE, 0xB9, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x46, 0xCF, 0x85, 0xCC, 0x88, 0xCC,
-	0x81, 0xE6, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7,
-	0x81, 0x18, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7,
-	0x82, 0x19, 0x46, 0xD9, 0x80, 0xD9, 0x8E, 0xD9,
-	0x91, 0x21, 0x46, 0xD9, 0x80, 0xD9, 0x8F, 0xD9,
-	0x91, 0x21, 0x46, 0xD9, 0x80, 0xD9, 0x90, 0xD9,
-	// Bytes 4500 - 453f
-	0x91, 0x21, 0x46, 0xE0, 0xA4, 0x95, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0x96, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0x97, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0x9C, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xA1, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4,
-	0xBC, 0x07, 0x46, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4,
-	// Bytes 4540 - 457f
-	0xBC, 0x07, 0x46, 0xE0, 0xA6, 0xA1, 0xE0, 0xA6,
-	0xBC, 0x07, 0x46, 0xE0, 0xA6, 0xA2, 0xE0, 0xA6,
-	0xBC, 0x07, 0x46, 0xE0, 0xA6, 0xAF, 0xE0, 0xA6,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0x96, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0x97, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0x9C, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0xAB, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8,
-	// Bytes 4580 - 45bf
-	0xBC, 0x07, 0x46, 0xE0, 0xA8, 0xB8, 0xE0, 0xA8,
-	0xBC, 0x07, 0x46, 0xE0, 0xAC, 0xA1, 0xE0, 0xAC,
-	0xBC, 0x07, 0x46, 0xE0, 0xAC, 0xA2, 0xE0, 0xAC,
-	0xBC, 0x07, 0x46, 0xE0, 0xBE, 0xB2, 0xE0, 0xBE,
-	0x80, 0x82, 0x46, 0xE0, 0xBE, 0xB3, 0xE0, 0xBE,
-	0x80, 0x82, 0x46, 0xE3, 0x83, 0x86, 0xE3, 0x82,
-	0x99, 0x08, 0x48, 0xF0, 0x9D, 0x85, 0x97, 0xF0,
-	0x9D, 0x85, 0xA5, 0xD8, 0x48, 0xF0, 0x9D, 0x85,
-	// Bytes 45c0 - 45ff
-	0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xD8, 0x48, 0xF0,
-	0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xD8,
-	0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
-	0xA5, 0xD8, 0x49, 0xE0, 0xBE, 0xB2, 0xE0, 0xBD,
-	0xB1, 0xE0, 0xBE, 0x80, 0x82, 0x49, 0xE0, 0xBE,
-	0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x82,
-	0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
-	0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xD8, 0x4C, 0xF0,
-	// Bytes 4600 - 463f
-	0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
-	0x9D, 0x85, 0xAF, 0xD8, 0x4C, 0xF0, 0x9D, 0x85,
-	0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
-	0xB0, 0xD8, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
-	0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1, 0xD8,
-	0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
-	0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xD8, 0x4C, 0xF0,
-	0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
-	// Bytes 4640 - 467f
-	0x9D, 0x85, 0xAE, 0xD8, 0x4C, 0xF0, 0x9D, 0x86,
-	0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
-	0xAF, 0xD8, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
-	0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xD8,
-	0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
-	0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xD8, 0x83, 0x41,
-	0xCC, 0x82, 0xE6, 0x83, 0x41, 0xCC, 0x86, 0xE6,
-	0x83, 0x41, 0xCC, 0x87, 0xE6, 0x83, 0x41, 0xCC,
-	// Bytes 4680 - 46bf
-	0x88, 0xE6, 0x83, 0x41, 0xCC, 0x8A, 0xE6, 0x83,
-	0x41, 0xCC, 0xA3, 0xDC, 0x83, 0x43, 0xCC, 0xA7,
-	0xCA, 0x83, 0x45, 0xCC, 0x82, 0xE6, 0x83, 0x45,
-	0xCC, 0x84, 0xE6, 0x83, 0x45, 0xCC, 0xA3, 0xDC,
-	0x83, 0x45, 0xCC, 0xA7, 0xCA, 0x83, 0x49, 0xCC,
-	0x88, 0xE6, 0x83, 0x4C, 0xCC, 0xA3, 0xDC, 0x83,
-	0x4F, 0xCC, 0x82, 0xE6, 0x83, 0x4F, 0xCC, 0x83,
-	0xE6, 0x83, 0x4F, 0xCC, 0x84, 0xE6, 0x83, 0x4F,
-	// Bytes 46c0 - 46ff
-	0xCC, 0x87, 0xE6, 0x83, 0x4F, 0xCC, 0x88, 0xE6,
-	0x83, 0x4F, 0xCC, 0x9B, 0xD8, 0x83, 0x4F, 0xCC,
-	0xA3, 0xDC, 0x83, 0x4F, 0xCC, 0xA8, 0xCA, 0x83,
-	0x52, 0xCC, 0xA3, 0xDC, 0x83, 0x53, 0xCC, 0x81,
-	0xE6, 0x83, 0x53, 0xCC, 0x8C, 0xE6, 0x83, 0x53,
-	0xCC, 0xA3, 0xDC, 0x83, 0x55, 0xCC, 0x83, 0xE6,
-	0x83, 0x55, 0xCC, 0x84, 0xE6, 0x83, 0x55, 0xCC,
-	0x88, 0xE6, 0x83, 0x55, 0xCC, 0x9B, 0xD8, 0x83,
-	// Bytes 4700 - 473f
-	0x61, 0xCC, 0x82, 0xE6, 0x83, 0x61, 0xCC, 0x86,
-	0xE6, 0x83, 0x61, 0xCC, 0x87, 0xE6, 0x83, 0x61,
-	0xCC, 0x88, 0xE6, 0x83, 0x61, 0xCC, 0x8A, 0xE6,
-	0x83, 0x61, 0xCC, 0xA3, 0xDC, 0x83, 0x63, 0xCC,
-	0xA7, 0xCA, 0x83, 0x65, 0xCC, 0x82, 0xE6, 0x83,
-	0x65, 0xCC, 0x84, 0xE6, 0x83, 0x65, 0xCC, 0xA3,
-	0xDC, 0x83, 0x65, 0xCC, 0xA7, 0xCA, 0x83, 0x69,
-	0xCC, 0x88, 0xE6, 0x83, 0x6C, 0xCC, 0xA3, 0xDC,
-	// Bytes 4740 - 477f
-	0x83, 0x6F, 0xCC, 0x82, 0xE6, 0x83, 0x6F, 0xCC,
-	0x83, 0xE6, 0x83, 0x6F, 0xCC, 0x84, 0xE6, 0x83,
-	0x6F, 0xCC, 0x87, 0xE6, 0x83, 0x6F, 0xCC, 0x88,
-	0xE6, 0x83, 0x6F, 0xCC, 0x9B, 0xD8, 0x83, 0x6F,
-	0xCC, 0xA3, 0xDC, 0x83, 0x6F, 0xCC, 0xA8, 0xCA,
-	0x83, 0x72, 0xCC, 0xA3, 0xDC, 0x83, 0x73, 0xCC,
-	0x81, 0xE6, 0x83, 0x73, 0xCC, 0x8C, 0xE6, 0x83,
-	0x73, 0xCC, 0xA3, 0xDC, 0x83, 0x75, 0xCC, 0x83,
-	// Bytes 4780 - 47bf
-	0xE6, 0x83, 0x75, 0xCC, 0x84, 0xE6, 0x83, 0x75,
-	0xCC, 0x88, 0xE6, 0x83, 0x75, 0xCC, 0x9B, 0xD8,
-	0x84, 0xCE, 0x91, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	0x91, 0xCC, 0x94, 0xE6, 0x84, 0xCE, 0x95, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0x95, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0x97, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	0x97, 0xCC, 0x94, 0xE6, 0x84, 0xCE, 0x99, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0x99, 0xCC, 0x94, 0xE6,
-	// Bytes 47c0 - 47ff
-	0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	0x9F, 0xCC, 0x94, 0xE6, 0x84, 0xCE, 0xA5, 0xCC,
-	0x94, 0xE6, 0x84, 0xCE, 0xA9, 0xCC, 0x93, 0xE6,
-	0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xE6, 0x84, 0xCE,
-	0xB1, 0xCC, 0x80, 0xE6, 0x84, 0xCE, 0xB1, 0xCC,
-	0x81, 0xE6, 0x84, 0xCE, 0xB1, 0xCC, 0x93, 0xE6,
-	0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xE6, 0x84, 0xCE,
-	0xB1, 0xCD, 0x82, 0xE6, 0x84, 0xCE, 0xB5, 0xCC,
-	// Bytes 4800 - 483f
-	0x93, 0xE6, 0x84, 0xCE, 0xB5, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xE6, 0x84, 0xCE,
-	0xB7, 0xCC, 0x81, 0xE6, 0x84, 0xCE, 0xB7, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0xB7, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xE6, 0x84, 0xCE,
-	0xB9, 0xCC, 0x88, 0xE6, 0x84, 0xCE, 0xB9, 0xCC,
-	0x93, 0xE6, 0x84, 0xCE, 0xB9, 0xCC, 0x94, 0xE6,
-	0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xE6, 0x84, 0xCE,
-	// Bytes 4840 - 487f
-	0xBF, 0xCC, 0x94, 0xE6, 0x84, 0xCF, 0x85, 0xCC,
-	0x88, 0xE6, 0x84, 0xCF, 0x85, 0xCC, 0x93, 0xE6,
-	0x84, 0xCF, 0x85, 0xCC, 0x94, 0xE6, 0x84, 0xCF,
-	0x89, 0xCC, 0x80, 0xE6, 0x84, 0xCF, 0x89, 0xCC,
-	0x81, 0xE6, 0x84, 0xCF, 0x89, 0xCC, 0x93, 0xE6,
-	0x84, 0xCF, 0x89, 0xCC, 0x94, 0xE6, 0x84, 0xCF,
-	0x89, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	// Bytes 4880 - 48bf
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x91, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	// Bytes 48c0 - 48ff
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0x97, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xA9, 0xCC,
-	// Bytes 4900 - 493f
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB1, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	// Bytes 4940 - 497f
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCE, 0xB7, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x93, 0xCC, 0x80, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x93, 0xCC, 0x81, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x93, 0xCD, 0x82, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	// Bytes 4980 - 49bf
-	0x94, 0xCC, 0x80, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x94, 0xCC, 0x81, 0xE6, 0x86, 0xCF, 0x89, 0xCC,
-	0x94, 0xCD, 0x82, 0xE6, 0x42, 0xCC, 0x80, 0xE6,
-	0xE6, 0x42, 0xCC, 0x81, 0xE6, 0xE6, 0x42, 0xCC,
-	0x93, 0xE6, 0xE6, 0x44, 0xCC, 0x88, 0xCC, 0x81,
-	0xE6, 0xE6, 0x43, 0xE3, 0x82, 0x99, 0x08, 0x08,
-	0x43, 0xE3, 0x82, 0x9A, 0x08, 0x08, 0x46, 0xE0,
-	0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x82, 0x81, 0x46,
-	// Bytes 49c0 - 49ff
-	0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0x84, 0x81,
-	0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x82,
-	0x81,
-}
-
-// nfcValues: 2944 entries, 5888 bytes
-// Block 2 is the null block.
-var nfcValues = [2944]uint16{
-	// Block 0x0, offset 0x0
-	0x003c: 0x8800, 0x003d: 0x8800, 0x003e: 0x8800,
-	// Block 0x1, offset 0x40
-	0x0041: 0x8800, 0x0042: 0x8800, 0x0043: 0x8800, 0x0044: 0x8800, 0x0045: 0x8800,
-	0x0046: 0x8800, 0x0047: 0x8800, 0x0048: 0x8800, 0x0049: 0x8800, 0x004a: 0x8800, 0x004b: 0x8800,
-	0x004c: 0x8800, 0x004d: 0x8800, 0x004e: 0x8800, 0x004f: 0x8800, 0x0050: 0x8800,
-	0x0052: 0x8800, 0x0053: 0x8800, 0x0054: 0x8800, 0x0055: 0x8800, 0x0056: 0x8800, 0x0057: 0x8800,
-	0x0058: 0x8800, 0x0059: 0x8800, 0x005a: 0x8800,
-	0x0061: 0x8800, 0x0062: 0x8800, 0x0063: 0x8800,
-	0x0064: 0x8800, 0x0065: 0x8800, 0x0066: 0x8800, 0x0067: 0x8800, 0x0068: 0x8800, 0x0069: 0x8800,
-	0x006a: 0x8800, 0x006b: 0x8800, 0x006c: 0x8800, 0x006d: 0x8800, 0x006e: 0x8800, 0x006f: 0x8800,
-	0x0070: 0x8800, 0x0072: 0x8800, 0x0073: 0x8800, 0x0074: 0x8800, 0x0075: 0x8800,
-	0x0076: 0x8800, 0x0077: 0x8800, 0x0078: 0x8800, 0x0079: 0x8800, 0x007a: 0x8800,
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0: 0x2f59, 0x00c1: 0x2f5e, 0x00c2: 0x466e, 0x00c3: 0x2f63, 0x00c4: 0x467d, 0x00c5: 0x4682,
-	0x00c6: 0x8800, 0x00c7: 0x468c, 0x00c8: 0x2fcc, 0x00c9: 0x2fd1, 0x00ca: 0x4691, 0x00cb: 0x2fe5,
-	0x00cc: 0x3058, 0x00cd: 0x305d, 0x00ce: 0x3062, 0x00cf: 0x46a5, 0x00d1: 0x30ee,
-	0x00d2: 0x3111, 0x00d3: 0x3116, 0x00d4: 0x46af, 0x00d5: 0x46b4, 0x00d6: 0x46c3,
-	0x00d8: 0x8800, 0x00d9: 0x319d, 0x00da: 0x31a2, 0x00db: 0x31a7, 0x00dc: 0x46f5, 0x00dd: 0x321f,
-	0x00e0: 0x3265, 0x00e1: 0x326a, 0x00e2: 0x46ff, 0x00e3: 0x326f,
-	0x00e4: 0x470e, 0x00e5: 0x4713, 0x00e6: 0x8800, 0x00e7: 0x471d, 0x00e8: 0x32d8, 0x00e9: 0x32dd,
-	0x00ea: 0x4722, 0x00eb: 0x32f1, 0x00ec: 0x3369, 0x00ed: 0x336e, 0x00ee: 0x3373, 0x00ef: 0x4736,
-	0x00f1: 0x33ff, 0x00f2: 0x3422, 0x00f3: 0x3427, 0x00f4: 0x4740, 0x00f5: 0x4745,
-	0x00f6: 0x4754, 0x00f8: 0x8800, 0x00f9: 0x34b3, 0x00fa: 0x34b8, 0x00fb: 0x34bd,
-	0x00fc: 0x4786, 0x00fd: 0x353a, 0x00ff: 0x3553,
-	// Block 0x4, offset 0x100
-	0x0100: 0x2f68, 0x0101: 0x3274, 0x0102: 0x4673, 0x0103: 0x4704, 0x0104: 0x2f86, 0x0105: 0x3292,
-	0x0106: 0x2f9a, 0x0107: 0x32a6, 0x0108: 0x2f9f, 0x0109: 0x32ab, 0x010a: 0x2fa4, 0x010b: 0x32b0,
-	0x010c: 0x2fa9, 0x010d: 0x32b5, 0x010e: 0x2fb3, 0x010f: 0x32bf,
-	0x0112: 0x4696, 0x0113: 0x4727, 0x0114: 0x2fdb, 0x0115: 0x32e7, 0x0116: 0x2fe0, 0x0117: 0x32ec,
-	0x0118: 0x2ffe, 0x0119: 0x330a, 0x011a: 0x2fef, 0x011b: 0x32fb, 0x011c: 0x3017, 0x011d: 0x3323,
-	0x011e: 0x3021, 0x011f: 0x332d, 0x0120: 0x3026, 0x0121: 0x3332, 0x0122: 0x3030, 0x0123: 0x333c,
-	0x0124: 0x3035, 0x0125: 0x3341, 0x0128: 0x3067, 0x0129: 0x3378,
-	0x012a: 0x306c, 0x012b: 0x337d, 0x012c: 0x3071, 0x012d: 0x3382, 0x012e: 0x3094, 0x012f: 0x33a0,
-	0x0130: 0x3076, 0x0134: 0x309e, 0x0135: 0x33aa,
-	0x0136: 0x30b2, 0x0137: 0x33c3, 0x0139: 0x30bc, 0x013a: 0x33cd, 0x013b: 0x30c6,
-	0x013c: 0x33d7, 0x013d: 0x30c1, 0x013e: 0x33d2,
-	// Block 0x5, offset 0x140
-	0x0143: 0x30e9, 0x0144: 0x33fa, 0x0145: 0x3102,
-	0x0146: 0x3413, 0x0147: 0x30f8, 0x0148: 0x3409,
-	0x014c: 0x46b9, 0x014d: 0x474a, 0x014e: 0x311b, 0x014f: 0x342c, 0x0150: 0x3125, 0x0151: 0x3436,
-	0x0154: 0x3143, 0x0155: 0x3454, 0x0156: 0x315c, 0x0157: 0x346d,
-	0x0158: 0x314d, 0x0159: 0x345e, 0x015a: 0x46dc, 0x015b: 0x476d, 0x015c: 0x3166, 0x015d: 0x3477,
-	0x015e: 0x3175, 0x015f: 0x3486, 0x0160: 0x46e1, 0x0161: 0x4772, 0x0162: 0x318e, 0x0163: 0x34a4,
-	0x0164: 0x317f, 0x0165: 0x3495, 0x0168: 0x46eb, 0x0169: 0x477c,
-	0x016a: 0x46f0, 0x016b: 0x4781, 0x016c: 0x31ac, 0x016d: 0x34c2, 0x016e: 0x31b6, 0x016f: 0x34cc,
-	0x0170: 0x31bb, 0x0171: 0x34d1, 0x0172: 0x31d9, 0x0173: 0x34ef, 0x0174: 0x31fc, 0x0175: 0x3512,
-	0x0176: 0x3224, 0x0177: 0x353f, 0x0178: 0x3238, 0x0179: 0x3247, 0x017a: 0x3567, 0x017b: 0x3251,
-	0x017c: 0x3571, 0x017d: 0x3256, 0x017e: 0x3576, 0x017f: 0x8800,
-	// Block 0x6, offset 0x180
-	0x018d: 0x2f72, 0x018e: 0x327e, 0x018f: 0x3080, 0x0190: 0x338c, 0x0191: 0x312a,
-	0x0192: 0x343b, 0x0193: 0x31c0, 0x0194: 0x34d6, 0x0195: 0x39b9, 0x0196: 0x3b48, 0x0197: 0x39b2,
-	0x0198: 0x3b41, 0x0199: 0x39c0, 0x019a: 0x3b4f, 0x019b: 0x39ab, 0x019c: 0x3b3a,
-	0x019e: 0x389a, 0x019f: 0x3a29, 0x01a0: 0x3893, 0x01a1: 0x3a22, 0x01a2: 0x359d, 0x01a3: 0x35af,
-	0x01a6: 0x302b, 0x01a7: 0x3337, 0x01a8: 0x30a8, 0x01a9: 0x33b9,
-	0x01aa: 0x46d2, 0x01ab: 0x4763, 0x01ac: 0x397a, 0x01ad: 0x3b09, 0x01ae: 0x35c1, 0x01af: 0x35c7,
-	0x01b0: 0x33af, 0x01b4: 0x3012, 0x01b5: 0x331e,
-	0x01b8: 0x30e4, 0x01b9: 0x33f5, 0x01ba: 0x38a1, 0x01bb: 0x3a30,
-	0x01bc: 0x3597, 0x01bd: 0x35a9, 0x01be: 0x35a3, 0x01bf: 0x35b5,
-	// Block 0x7, offset 0x1c0
-	0x01c0: 0x2f77, 0x01c1: 0x3283, 0x01c2: 0x2f7c, 0x01c3: 0x3288, 0x01c4: 0x2ff4, 0x01c5: 0x3300,
-	0x01c6: 0x2ff9, 0x01c7: 0x3305, 0x01c8: 0x3085, 0x01c9: 0x3391, 0x01ca: 0x308a, 0x01cb: 0x3396,
-	0x01cc: 0x312f, 0x01cd: 0x3440, 0x01ce: 0x3134, 0x01cf: 0x3445, 0x01d0: 0x3152, 0x01d1: 0x3463,
-	0x01d2: 0x3157, 0x01d3: 0x3468, 0x01d4: 0x31c5, 0x01d5: 0x34db, 0x01d6: 0x31ca, 0x01d7: 0x34e0,
-	0x01d8: 0x3170, 0x01d9: 0x3481, 0x01da: 0x3189, 0x01db: 0x349f,
-	0x01de: 0x3044, 0x01df: 0x3350,
-	0x01e6: 0x4678, 0x01e7: 0x4709, 0x01e8: 0x46a0, 0x01e9: 0x4731,
-	0x01ea: 0x3949, 0x01eb: 0x3ad8, 0x01ec: 0x3926, 0x01ed: 0x3ab5, 0x01ee: 0x46be, 0x01ef: 0x474f,
-	0x01f0: 0x3942, 0x01f1: 0x3ad1, 0x01f2: 0x322e, 0x01f3: 0x3549,
-	// Block 0x8, offset 0x200
-	0x0200: 0x86e6, 0x0201: 0x86e6, 0x0202: 0x86e6, 0x0203: 0x86e6, 0x0204: 0x86e6, 0x0205: 0x80e6,
-	0x0206: 0x86e6, 0x0207: 0x86e6, 0x0208: 0x86e6, 0x0209: 0x86e6, 0x020a: 0x86e6, 0x020b: 0x86e6,
-	0x020c: 0x86e6, 0x020d: 0x80e6, 0x020e: 0x80e6, 0x020f: 0x86e6, 0x0210: 0x80e6, 0x0211: 0x86e6,
-	0x0212: 0x80e6, 0x0213: 0x86e6, 0x0214: 0x86e6, 0x0215: 0x80e8, 0x0216: 0x80dc, 0x0217: 0x80dc,
-	0x0218: 0x80dc, 0x0219: 0x80dc, 0x021a: 0x80e8, 0x021b: 0x86d8, 0x021c: 0x80dc, 0x021d: 0x80dc,
-	0x021e: 0x80dc, 0x021f: 0x80dc, 0x0220: 0x80dc, 0x0221: 0x80ca, 0x0222: 0x80ca, 0x0223: 0x86dc,
-	0x0224: 0x86dc, 0x0225: 0x86dc, 0x0226: 0x86dc, 0x0227: 0x86ca, 0x0228: 0x86ca, 0x0229: 0x80dc,
-	0x022a: 0x80dc, 0x022b: 0x80dc, 0x022c: 0x80dc, 0x022d: 0x86dc, 0x022e: 0x86dc, 0x022f: 0x80dc,
-	0x0230: 0x86dc, 0x0231: 0x86dc, 0x0232: 0x80dc, 0x0233: 0x80dc, 0x0234: 0x8001, 0x0235: 0x8001,
-	0x0236: 0x8001, 0x0237: 0x8001, 0x0238: 0x8601, 0x0239: 0x80dc, 0x023a: 0x80dc, 0x023b: 0x80dc,
-	0x023c: 0x80dc, 0x023d: 0x80e6, 0x023e: 0x80e6, 0x023f: 0x80e6,
-	// Block 0x9, offset 0x240
-	0x0240: 0x4994, 0x0241: 0x4999, 0x0242: 0x86e6, 0x0243: 0x499e, 0x0244: 0x49a3, 0x0245: 0x86f0,
-	0x0246: 0x80e6, 0x0247: 0x80dc, 0x0248: 0x80dc, 0x0249: 0x80dc, 0x024a: 0x80e6, 0x024b: 0x80e6,
-	0x024c: 0x80e6, 0x024d: 0x80dc, 0x024e: 0x80dc, 0x0250: 0x80e6, 0x0251: 0x80e6,
-	0x0252: 0x80e6, 0x0253: 0x80dc, 0x0254: 0x80dc, 0x0255: 0x80dc, 0x0256: 0x80dc, 0x0257: 0x80e6,
-	0x0258: 0x80e8, 0x0259: 0x80dc, 0x025a: 0x80dc, 0x025b: 0x80e6, 0x025c: 0x80e9, 0x025d: 0x80ea,
-	0x025e: 0x80ea, 0x025f: 0x80e9, 0x0260: 0x80ea, 0x0261: 0x80ea, 0x0262: 0x80e9, 0x0263: 0x80e6,
-	0x0264: 0x80e6, 0x0265: 0x80e6, 0x0266: 0x80e6, 0x0267: 0x80e6, 0x0268: 0x80e6, 0x0269: 0x80e6,
-	0x026a: 0x80e6, 0x026b: 0x80e6, 0x026c: 0x80e6, 0x026d: 0x80e6, 0x026e: 0x80e6, 0x026f: 0x80e6,
-	0x0274: 0x0170,
-	0x027e: 0x0037,
-	// Block 0xa, offset 0x280
-	0x0285: 0x358b,
-	0x0286: 0x35d3, 0x0287: 0x00d1, 0x0288: 0x35f1, 0x0289: 0x35fd, 0x028a: 0x360f,
-	0x028c: 0x362d, 0x028e: 0x363f, 0x028f: 0x365d, 0x0290: 0x3df2, 0x0291: 0x8800,
-	0x0295: 0x8800, 0x0297: 0x8800,
-	0x0299: 0x8800,
-	0x029f: 0x8800, 0x02a1: 0x8800,
-	0x02a5: 0x8800, 0x02a9: 0x8800,
-	0x02aa: 0x3621, 0x02ab: 0x3651, 0x02ac: 0x47e4, 0x02ad: 0x3681, 0x02ae: 0x480e, 0x02af: 0x3693,
-	0x02b0: 0x3e5a, 0x02b1: 0x8800, 0x02b5: 0x8800,
-	0x02b7: 0x8800, 0x02b9: 0x8800,
-	0x02bf: 0x8800,
-	// Block 0xb, offset 0x2c0
-	0x02c0: 0x370b, 0x02c1: 0x3717, 0x02c3: 0x3705,
-	0x02c6: 0x8800, 0x02c7: 0x36f3,
-	0x02cc: 0x3747, 0x02cd: 0x372f, 0x02ce: 0x3759, 0x02d0: 0x8800,
-	0x02d3: 0x8800, 0x02d5: 0x8800, 0x02d6: 0x8800, 0x02d7: 0x8800,
-	0x02d8: 0x8800, 0x02d9: 0x373b, 0x02da: 0x8800,
-	0x02de: 0x8800, 0x02e3: 0x8800,
-	0x02e7: 0x8800,
-	0x02eb: 0x8800, 0x02ed: 0x8800,
-	0x02f0: 0x8800, 0x02f3: 0x8800, 0x02f5: 0x8800,
-	0x02f6: 0x8800, 0x02f7: 0x8800, 0x02f8: 0x8800, 0x02f9: 0x37bf, 0x02fa: 0x8800,
-	0x02fe: 0x8800,
-	// Block 0xc, offset 0x300
-	0x0301: 0x371d, 0x0302: 0x37a1,
-	0x0310: 0x36f9, 0x0311: 0x377d,
-	0x0312: 0x36ff, 0x0313: 0x3783, 0x0316: 0x3711, 0x0317: 0x3795,
-	0x0318: 0x8800, 0x0319: 0x8800, 0x031a: 0x3813, 0x031b: 0x3819, 0x031c: 0x3723, 0x031d: 0x37a7,
-	0x031e: 0x3729, 0x031f: 0x37ad, 0x0322: 0x3735, 0x0323: 0x37b9,
-	0x0324: 0x3741, 0x0325: 0x37c5, 0x0326: 0x374d, 0x0327: 0x37d1, 0x0328: 0x8800, 0x0329: 0x8800,
-	0x032a: 0x381f, 0x032b: 0x3825, 0x032c: 0x3777, 0x032d: 0x37fb, 0x032e: 0x3753, 0x032f: 0x37d7,
-	0x0330: 0x375f, 0x0331: 0x37e3, 0x0332: 0x3765, 0x0333: 0x37e9, 0x0334: 0x376b, 0x0335: 0x37ef,
-	0x0338: 0x3771, 0x0339: 0x37f5,
-	// Block 0xd, offset 0x340
-	0x0351: 0x80dc,
-	0x0352: 0x80e6, 0x0353: 0x80e6, 0x0354: 0x80e6, 0x0355: 0x80e6, 0x0356: 0x80dc, 0x0357: 0x80e6,
-	0x0358: 0x80e6, 0x0359: 0x80e6, 0x035a: 0x80de, 0x035b: 0x80dc, 0x035c: 0x80e6, 0x035d: 0x80e6,
-	0x035e: 0x80e6, 0x035f: 0x80e6, 0x0360: 0x80e6, 0x0361: 0x80e6, 0x0362: 0x80dc, 0x0363: 0x80dc,
-	0x0364: 0x80dc, 0x0365: 0x80dc, 0x0366: 0x80dc, 0x0367: 0x80dc, 0x0368: 0x80e6, 0x0369: 0x80e6,
-	0x036a: 0x80dc, 0x036b: 0x80e6, 0x036c: 0x80e6, 0x036d: 0x80de, 0x036e: 0x80e4, 0x036f: 0x80e6,
-	0x0370: 0x800a, 0x0371: 0x800b, 0x0372: 0x800c, 0x0373: 0x800d, 0x0374: 0x800e, 0x0375: 0x800f,
-	0x0376: 0x8010, 0x0377: 0x8011, 0x0378: 0x8012, 0x0379: 0x8013, 0x037a: 0x8013, 0x037b: 0x8014,
-	0x037c: 0x8015, 0x037d: 0x8016, 0x037f: 0x8017,
-	// Block 0xe, offset 0x380
-	0x0388: 0x8800, 0x038a: 0x8800, 0x038b: 0x801b,
-	0x038c: 0x801c, 0x038d: 0x801d, 0x038e: 0x801e, 0x038f: 0x801f, 0x0390: 0x8020, 0x0391: 0x8021,
-	0x0392: 0x8022, 0x0393: 0x86e6, 0x0394: 0x86e6, 0x0395: 0x86dc, 0x0396: 0x80dc, 0x0397: 0x80e6,
-	0x0398: 0x80e6, 0x0399: 0x80e6, 0x039a: 0x80e6, 0x039b: 0x80e6, 0x039c: 0x80dc, 0x039d: 0x80e6,
-	0x039e: 0x80e6, 0x039f: 0x80dc,
-	0x03b0: 0x8023,
-	// Block 0xf, offset 0x3c0
-	0x03c5: 0x8800,
-	0x03c6: 0x1946, 0x03c7: 0x8800, 0x03c8: 0x194d, 0x03c9: 0x8800, 0x03ca: 0x1954, 0x03cb: 0x8800,
-	0x03cc: 0x195b, 0x03cd: 0x8800, 0x03ce: 0x1962, 0x03d1: 0x8800,
-	0x03d2: 0x1969,
-	0x03f4: 0x8007, 0x03f5: 0x8600,
-	0x03fa: 0x8800, 0x03fb: 0x1970,
-	0x03fc: 0x8800, 0x03fd: 0x1977, 0x03fe: 0x8800, 0x03ff: 0x8800,
-	// Block 0x10, offset 0x400
-	0x0400: 0x2f81, 0x0401: 0x328d, 0x0402: 0x2f8b, 0x0403: 0x3297, 0x0404: 0x2f90, 0x0405: 0x329c,
-	0x0406: 0x2f95, 0x0407: 0x32a1, 0x0408: 0x38b6, 0x0409: 0x3a45, 0x040a: 0x2fae, 0x040b: 0x32ba,
-	0x040c: 0x2fb8, 0x040d: 0x32c4, 0x040e: 0x2fc7, 0x040f: 0x32d3, 0x0410: 0x2fbd, 0x0411: 0x32c9,
-	0x0412: 0x2fc2, 0x0413: 0x32ce, 0x0414: 0x38d9, 0x0415: 0x3a68, 0x0416: 0x38e0, 0x0417: 0x3a6f,
-	0x0418: 0x3003, 0x0419: 0x330f, 0x041a: 0x3008, 0x041b: 0x3314, 0x041c: 0x38ee, 0x041d: 0x3a7d,
-	0x041e: 0x300d, 0x041f: 0x3319, 0x0420: 0x301c, 0x0421: 0x3328, 0x0422: 0x303a, 0x0423: 0x3346,
-	0x0424: 0x3049, 0x0425: 0x3355, 0x0426: 0x303f, 0x0427: 0x334b, 0x0428: 0x304e, 0x0429: 0x335a,
-	0x042a: 0x3053, 0x042b: 0x335f, 0x042c: 0x3099, 0x042d: 0x33a5, 0x042e: 0x38f5, 0x042f: 0x3a84,
-	0x0430: 0x30a3, 0x0431: 0x33b4, 0x0432: 0x30ad, 0x0433: 0x33be, 0x0434: 0x30b7, 0x0435: 0x33c8,
-	0x0436: 0x46aa, 0x0437: 0x473b, 0x0438: 0x38fc, 0x0439: 0x3a8b, 0x043a: 0x30d0, 0x043b: 0x33e1,
-	0x043c: 0x30cb, 0x043d: 0x33dc, 0x043e: 0x30d5, 0x043f: 0x33e6,
-	// Block 0x11, offset 0x440
-	0x0440: 0x30da, 0x0441: 0x33eb, 0x0442: 0x30df, 0x0443: 0x33f0, 0x0444: 0x30f3, 0x0445: 0x3404,
-	0x0446: 0x30fd, 0x0447: 0x340e, 0x0448: 0x310c, 0x0449: 0x341d, 0x044a: 0x3107, 0x044b: 0x3418,
-	0x044c: 0x391f, 0x044d: 0x3aae, 0x044e: 0x392d, 0x044f: 0x3abc, 0x0450: 0x3934, 0x0451: 0x3ac3,
-	0x0452: 0x393b, 0x0453: 0x3aca, 0x0454: 0x3139, 0x0455: 0x344a, 0x0456: 0x313e, 0x0457: 0x344f,
-	0x0458: 0x3148, 0x0459: 0x3459, 0x045a: 0x46d7, 0x045b: 0x4768, 0x045c: 0x3981, 0x045d: 0x3b10,
-	0x045e: 0x3161, 0x045f: 0x3472, 0x0460: 0x316b, 0x0461: 0x347c, 0x0462: 0x46e6, 0x0463: 0x4777,
-	0x0464: 0x3988, 0x0465: 0x3b17, 0x0466: 0x398f, 0x0467: 0x3b1e, 0x0468: 0x3996, 0x0469: 0x3b25,
-	0x046a: 0x317a, 0x046b: 0x348b, 0x046c: 0x3184, 0x046d: 0x349a, 0x046e: 0x3198, 0x046f: 0x34ae,
-	0x0470: 0x3193, 0x0471: 0x34a9, 0x0472: 0x31d4, 0x0473: 0x34ea, 0x0474: 0x31e3, 0x0475: 0x34f9,
-	0x0476: 0x31de, 0x0477: 0x34f4, 0x0478: 0x399d, 0x0479: 0x3b2c, 0x047a: 0x39a4, 0x047b: 0x3b33,
-	0x047c: 0x31e8, 0x047d: 0x34fe, 0x047e: 0x31ed, 0x047f: 0x3503,
-	// Block 0x12, offset 0x480
-	0x0480: 0x31f2, 0x0481: 0x3508, 0x0482: 0x31f7, 0x0483: 0x350d, 0x0484: 0x3206, 0x0485: 0x351c,
-	0x0486: 0x3201, 0x0487: 0x3517, 0x0488: 0x320b, 0x0489: 0x3526, 0x048a: 0x3210, 0x048b: 0x352b,
-	0x048c: 0x3215, 0x048d: 0x3530, 0x048e: 0x3233, 0x048f: 0x354e, 0x0490: 0x324c, 0x0491: 0x356c,
-	0x0492: 0x325b, 0x0493: 0x357b, 0x0494: 0x3260, 0x0495: 0x3580, 0x0496: 0x3364, 0x0497: 0x3490,
-	0x0498: 0x3521, 0x0499: 0x355d, 0x049b: 0x35bb,
-	0x04a0: 0x4687, 0x04a1: 0x4718, 0x04a2: 0x2f6d, 0x04a3: 0x3279,
-	0x04a4: 0x3862, 0x04a5: 0x39f1, 0x04a6: 0x385b, 0x04a7: 0x39ea, 0x04a8: 0x3870, 0x04a9: 0x39ff,
-	0x04aa: 0x3869, 0x04ab: 0x39f8, 0x04ac: 0x38a8, 0x04ad: 0x3a37, 0x04ae: 0x387e, 0x04af: 0x3a0d,
-	0x04b0: 0x3877, 0x04b1: 0x3a06, 0x04b2: 0x388c, 0x04b3: 0x3a1b, 0x04b4: 0x3885, 0x04b5: 0x3a14,
-	0x04b6: 0x38af, 0x04b7: 0x3a3e, 0x04b8: 0x469b, 0x04b9: 0x472c, 0x04ba: 0x2fea, 0x04bb: 0x32f6,
-	0x04bc: 0x2fd6, 0x04bd: 0x32e2, 0x04be: 0x38c4, 0x04bf: 0x3a53,
-	// Block 0x13, offset 0x4c0
-	0x04c0: 0x38bd, 0x04c1: 0x3a4c, 0x04c2: 0x38d2, 0x04c3: 0x3a61, 0x04c4: 0x38cb, 0x04c5: 0x3a5a,
-	0x04c6: 0x38e7, 0x04c7: 0x3a76, 0x04c8: 0x307b, 0x04c9: 0x3387, 0x04ca: 0x308f, 0x04cb: 0x339b,
-	0x04cc: 0x46cd, 0x04cd: 0x475e, 0x04ce: 0x3120, 0x04cf: 0x3431, 0x04d0: 0x390a, 0x04d1: 0x3a99,
-	0x04d2: 0x3903, 0x04d3: 0x3a92, 0x04d4: 0x3918, 0x04d5: 0x3aa7, 0x04d6: 0x3911, 0x04d7: 0x3aa0,
-	0x04d8: 0x3973, 0x04d9: 0x3b02, 0x04da: 0x3957, 0x04db: 0x3ae6, 0x04dc: 0x3950, 0x04dd: 0x3adf,
-	0x04de: 0x3965, 0x04df: 0x3af4, 0x04e0: 0x395e, 0x04e1: 0x3aed, 0x04e2: 0x396c, 0x04e3: 0x3afb,
-	0x04e4: 0x31cf, 0x04e5: 0x34e5, 0x04e6: 0x31b1, 0x04e7: 0x34c7, 0x04e8: 0x39ce, 0x04e9: 0x3b5d,
-	0x04ea: 0x39c7, 0x04eb: 0x3b56, 0x04ec: 0x39dc, 0x04ed: 0x3b6b, 0x04ee: 0x39d5, 0x04ef: 0x3b64,
-	0x04f0: 0x39e3, 0x04f1: 0x3b72, 0x04f2: 0x321a, 0x04f3: 0x3535, 0x04f4: 0x3242, 0x04f5: 0x3562,
-	0x04f6: 0x323d, 0x04f7: 0x3558, 0x04f8: 0x3229, 0x04f9: 0x3544,
-	// Block 0x14, offset 0x500
-	0x0500: 0x47ea, 0x0501: 0x47f0, 0x0502: 0x4904, 0x0503: 0x491c, 0x0504: 0x490c, 0x0505: 0x4924,
-	0x0506: 0x4914, 0x0507: 0x492c, 0x0508: 0x4790, 0x0509: 0x4796, 0x050a: 0x4874, 0x050b: 0x488c,
-	0x050c: 0x487c, 0x050d: 0x4894, 0x050e: 0x4884, 0x050f: 0x489c, 0x0510: 0x47fc, 0x0511: 0x4802,
-	0x0512: 0x3da2, 0x0513: 0x3db2, 0x0514: 0x3daa, 0x0515: 0x3dba,
-	0x0518: 0x479c, 0x0519: 0x47a2, 0x051a: 0x3cd2, 0x051b: 0x3ce2, 0x051c: 0x3cda, 0x051d: 0x3cea,
-	0x0520: 0x4814, 0x0521: 0x481a, 0x0522: 0x4934, 0x0523: 0x494c,
-	0x0524: 0x493c, 0x0525: 0x4954, 0x0526: 0x4944, 0x0527: 0x495c, 0x0528: 0x47a8, 0x0529: 0x47ae,
-	0x052a: 0x48a4, 0x052b: 0x48bc, 0x052c: 0x48ac, 0x052d: 0x48c4, 0x052e: 0x48b4, 0x052f: 0x48cc,
-	0x0530: 0x482c, 0x0531: 0x4832, 0x0532: 0x3e02, 0x0533: 0x3e1a, 0x0534: 0x3e0a, 0x0535: 0x3e22,
-	0x0536: 0x3e12, 0x0537: 0x3e2a, 0x0538: 0x47b4, 0x0539: 0x47ba, 0x053a: 0x3d02, 0x053b: 0x3d1a,
-	0x053c: 0x3d0a, 0x053d: 0x3d22, 0x053e: 0x3d12, 0x053f: 0x3d2a,
-	// Block 0x15, offset 0x540
-	0x0540: 0x4838, 0x0541: 0x483e, 0x0542: 0x3e32, 0x0543: 0x3e42, 0x0544: 0x3e3a, 0x0545: 0x3e4a,
-	0x0548: 0x47c0, 0x0549: 0x47c6, 0x054a: 0x3d32, 0x054b: 0x3d42,
-	0x054c: 0x3d3a, 0x054d: 0x3d4a, 0x0550: 0x484a, 0x0551: 0x4850,
-	0x0552: 0x3e6a, 0x0553: 0x3e82, 0x0554: 0x3e72, 0x0555: 0x3e8a, 0x0556: 0x3e7a, 0x0557: 0x3e92,
-	0x0559: 0x47cc, 0x055b: 0x3d52, 0x055d: 0x3d5a,
-	0x055f: 0x3d62, 0x0560: 0x4862, 0x0561: 0x4868, 0x0562: 0x4964, 0x0563: 0x497c,
-	0x0564: 0x496c, 0x0565: 0x4984, 0x0566: 0x4974, 0x0567: 0x498c, 0x0568: 0x47d2, 0x0569: 0x47d8,
-	0x056a: 0x48d4, 0x056b: 0x48ec, 0x056c: 0x48dc, 0x056d: 0x48f4, 0x056e: 0x48e4, 0x056f: 0x48fc,
-	0x0570: 0x47de, 0x0571: 0x4304, 0x0572: 0x367b, 0x0573: 0x430a, 0x0574: 0x4808, 0x0575: 0x4310,
-	0x0576: 0x368d, 0x0577: 0x4316, 0x0578: 0x36ab, 0x0579: 0x431c, 0x057a: 0x36c3, 0x057b: 0x4322,
-	0x057c: 0x4856, 0x057d: 0x4328,
-	// Block 0x16, offset 0x580
-	0x0580: 0x3d8a, 0x0581: 0x3d92, 0x0582: 0x416e, 0x0583: 0x418c, 0x0584: 0x4178, 0x0585: 0x4196,
-	0x0586: 0x4182, 0x0587: 0x41a0, 0x0588: 0x3cc2, 0x0589: 0x3cca, 0x058a: 0x40ba, 0x058b: 0x40d8,
-	0x058c: 0x40c4, 0x058d: 0x40e2, 0x058e: 0x40ce, 0x058f: 0x40ec, 0x0590: 0x3dd2, 0x0591: 0x3dda,
-	0x0592: 0x41aa, 0x0593: 0x41c8, 0x0594: 0x41b4, 0x0595: 0x41d2, 0x0596: 0x41be, 0x0597: 0x41dc,
-	0x0598: 0x3cf2, 0x0599: 0x3cfa, 0x059a: 0x40f6, 0x059b: 0x4114, 0x059c: 0x4100, 0x059d: 0x411e,
-	0x059e: 0x410a, 0x059f: 0x4128, 0x05a0: 0x3eaa, 0x05a1: 0x3eb2, 0x05a2: 0x41e6, 0x05a3: 0x4204,
-	0x05a4: 0x41f0, 0x05a5: 0x420e, 0x05a6: 0x41fa, 0x05a7: 0x4218, 0x05a8: 0x3d6a, 0x05a9: 0x3d72,
-	0x05aa: 0x4132, 0x05ab: 0x4150, 0x05ac: 0x413c, 0x05ad: 0x415a, 0x05ae: 0x4146, 0x05af: 0x4164,
-	0x05b0: 0x366f, 0x05b1: 0x3669, 0x05b2: 0x3d7a, 0x05b3: 0x3675, 0x05b4: 0x3d82,
-	0x05b6: 0x47f6, 0x05b7: 0x3d9a, 0x05b8: 0x35df, 0x05b9: 0x35d9, 0x05ba: 0x35cd, 0x05bb: 0x42d4,
-	0x05bc: 0x35e5, 0x05be: 0x01d3, 0x05bf: 0x8800,
-	// Block 0x17, offset 0x5c0
-	0x05c1: 0x3591, 0x05c2: 0x3dc2, 0x05c3: 0x3687, 0x05c4: 0x3dca,
-	0x05c6: 0x4820, 0x05c7: 0x3de2, 0x05c8: 0x35eb, 0x05c9: 0x42da, 0x05ca: 0x35f7, 0x05cb: 0x42e0,
-	0x05cc: 0x3603, 0x05cd: 0x3b79, 0x05ce: 0x3b80, 0x05cf: 0x3b87, 0x05d0: 0x369f, 0x05d1: 0x3699,
-	0x05d2: 0x3dea, 0x05d3: 0x44ca, 0x05d6: 0x36a5, 0x05d7: 0x3dfa,
-	0x05d8: 0x361b, 0x05d9: 0x3615, 0x05da: 0x3609, 0x05db: 0x42e6, 0x05dd: 0x3b8e,
-	0x05de: 0x3b95, 0x05df: 0x3b9c, 0x05e0: 0x36d5, 0x05e1: 0x36cf, 0x05e2: 0x3e52, 0x05e3: 0x44d2,
-	0x05e4: 0x36b7, 0x05e5: 0x36bd, 0x05e6: 0x36db, 0x05e7: 0x3e62, 0x05e8: 0x364b, 0x05e9: 0x3645,
-	0x05ea: 0x3639, 0x05eb: 0x42f2, 0x05ec: 0x3633, 0x05ed: 0x3585, 0x05ee: 0x42ce, 0x05ef: 0x0081,
-	0x05f2: 0x3e9a, 0x05f3: 0x36e1, 0x05f4: 0x3ea2,
-	0x05f6: 0x486e, 0x05f7: 0x3eba, 0x05f8: 0x3627, 0x05f9: 0x42ec, 0x05fa: 0x3657, 0x05fb: 0x42fe,
-	0x05fc: 0x3663, 0x05fd: 0x00ce, 0x05fe: 0x8800,
-	// Block 0x18, offset 0x600
-	0x0601: 0x3bf0, 0x0603: 0x8800, 0x0604: 0x3bf7, 0x0605: 0x8800,
-	0x0607: 0x3bfe, 0x0608: 0x8800, 0x0609: 0x3c05,
-	0x060d: 0x8800,
-	0x0620: 0x2f4f, 0x0621: 0x8800, 0x0622: 0x3c13,
-	0x0624: 0x8800, 0x0625: 0x8800,
-	0x062d: 0x3c0c, 0x062e: 0x2f4a, 0x062f: 0x2f54,
-	0x0630: 0x3c1a, 0x0631: 0x3c21, 0x0632: 0x8800, 0x0633: 0x8800, 0x0634: 0x3c28, 0x0635: 0x3c2f,
-	0x0636: 0x8800, 0x0637: 0x8800, 0x0638: 0x3c36, 0x0639: 0x3c3d, 0x063a: 0x8800, 0x063b: 0x8800,
-	0x063c: 0x8800, 0x063d: 0x8800,
-	// Block 0x19, offset 0x640
-	0x0640: 0x3c44, 0x0641: 0x3c4b, 0x0642: 0x8800, 0x0643: 0x8800, 0x0644: 0x3c60, 0x0645: 0x3c67,
-	0x0646: 0x8800, 0x0647: 0x8800, 0x0648: 0x3c6e, 0x0649: 0x3c75,
-	0x0651: 0x8800,
-	0x0652: 0x8800,
-	0x0662: 0x8800,
-	0x0668: 0x8800, 0x0669: 0x8800,
-	0x066b: 0x8800, 0x066c: 0x3c8a, 0x066d: 0x3c91, 0x066e: 0x3c98, 0x066f: 0x3c9f,
-	0x0672: 0x8800, 0x0673: 0x8800, 0x0674: 0x8800, 0x0675: 0x8800,
-	// Block 0x1a, offset 0x680
-	0x0686: 0x8800, 0x068b: 0x8800,
-	0x068c: 0x3ef2, 0x068d: 0x8800, 0x068e: 0x3efa, 0x068f: 0x8800, 0x0690: 0x3f02, 0x0691: 0x8800,
-	0x0692: 0x3f0a, 0x0693: 0x8800, 0x0694: 0x3f12, 0x0695: 0x8800, 0x0696: 0x3f1a, 0x0697: 0x8800,
-	0x0698: 0x3f22, 0x0699: 0x8800, 0x069a: 0x3f2a, 0x069b: 0x8800, 0x069c: 0x3f32, 0x069d: 0x8800,
-	0x069e: 0x3f3a, 0x069f: 0x8800, 0x06a0: 0x3f42, 0x06a1: 0x8800, 0x06a2: 0x3f4a,
-	0x06a4: 0x8800, 0x06a5: 0x3f52, 0x06a6: 0x8800, 0x06a7: 0x3f5a, 0x06a8: 0x8800, 0x06a9: 0x3f62,
-	0x06af: 0x8800,
-	0x06b0: 0x3f6a, 0x06b1: 0x3f72, 0x06b2: 0x8800, 0x06b3: 0x3f7a, 0x06b4: 0x3f82, 0x06b5: 0x8800,
-	0x06b6: 0x3f8a, 0x06b7: 0x3f92, 0x06b8: 0x8800, 0x06b9: 0x3f9a, 0x06ba: 0x3fa2, 0x06bb: 0x8800,
-	0x06bc: 0x3faa, 0x06bd: 0x3fb2,
-	// Block 0x1b, offset 0x6c0
-	0x06d4: 0x3eea,
-	0x06d9: 0x8608, 0x06da: 0x8608, 0x06dd: 0x8800,
-	0x06de: 0x3fba,
-	0x06e6: 0x8800,
-	0x06eb: 0x8800, 0x06ec: 0x3fca, 0x06ed: 0x8800, 0x06ee: 0x3fd2, 0x06ef: 0x8800,
-	0x06f0: 0x3fda, 0x06f1: 0x8800, 0x06f2: 0x3fe2, 0x06f3: 0x8800, 0x06f4: 0x3fea, 0x06f5: 0x8800,
-	0x06f6: 0x3ff2, 0x06f7: 0x8800, 0x06f8: 0x3ffa, 0x06f9: 0x8800, 0x06fa: 0x4002, 0x06fb: 0x8800,
-	0x06fc: 0x400a, 0x06fd: 0x8800, 0x06fe: 0x4012, 0x06ff: 0x8800,
-	// Block 0x1c, offset 0x700
-	0x0700: 0x401a, 0x0701: 0x8800, 0x0702: 0x4022, 0x0704: 0x8800, 0x0705: 0x402a,
-	0x0706: 0x8800, 0x0707: 0x4032, 0x0708: 0x8800, 0x0709: 0x403a,
-	0x070f: 0x8800, 0x0710: 0x4042, 0x0711: 0x404a,
-	0x0712: 0x8800, 0x0713: 0x4052, 0x0714: 0x405a, 0x0715: 0x8800, 0x0716: 0x4062, 0x0717: 0x406a,
-	0x0718: 0x8800, 0x0719: 0x4072, 0x071a: 0x407a, 0x071b: 0x8800, 0x071c: 0x4082, 0x071d: 0x408a,
-	0x072f: 0x8800,
-	0x0730: 0x8800, 0x0731: 0x8800, 0x0732: 0x8800, 0x0734: 0x3fc2,
-	0x0737: 0x4092, 0x0738: 0x409a, 0x0739: 0x40a2, 0x073a: 0x40aa,
-	0x073d: 0x8800, 0x073e: 0x40b2,
-	// Block 0x1d, offset 0x740
-	0x0740: 0x13e9, 0x0741: 0x0d6d, 0x0742: 0x1445, 0x0743: 0x1411, 0x0744: 0x0ec9, 0x0745: 0x075d,
-	0x0746: 0x0951, 0x0747: 0x1699, 0x0748: 0x1699, 0x0749: 0x0a7d, 0x074a: 0x14cd, 0x074b: 0x09b5,
-	0x074c: 0x0a79, 0x074d: 0x0c61, 0x074e: 0x1041, 0x074f: 0x11d1, 0x0750: 0x1309, 0x0751: 0x1345,
-	0x0752: 0x1379, 0x0753: 0x148d, 0x0754: 0x0de5, 0x0755: 0x0e71, 0x0756: 0x0f1d, 0x0757: 0x0fb5,
-	0x0758: 0x12d1, 0x0759: 0x14b5, 0x075a: 0x15e1, 0x075b: 0x0781, 0x075c: 0x0925, 0x075d: 0x0df9,
-	0x075e: 0x0f41, 0x075f: 0x1305, 0x0760: 0x1631, 0x0761: 0x0b25, 0x0762: 0x0ee9, 0x0763: 0x12f5,
-	0x0764: 0x1389, 0x0765: 0x0c95, 0x0766: 0x122d, 0x0767: 0x1351, 0x0768: 0x0b91, 0x0769: 0x0d81,
-	0x076a: 0x0e89, 0x076b: 0x0f8d, 0x076c: 0x1499, 0x076d: 0x07c1, 0x076e: 0x0859, 0x076f: 0x08c5,
-	0x0770: 0x0cfd, 0x0771: 0x0df1, 0x0772: 0x0f3d, 0x0773: 0x1061, 0x0774: 0x11e9, 0x0775: 0x12fd,
-	0x0776: 0x1315, 0x0777: 0x1439, 0x0778: 0x155d, 0x0779: 0x1611, 0x077a: 0x162d, 0x077b: 0x109d,
-	0x077c: 0x10dd, 0x077d: 0x1195, 0x077e: 0x12b5, 0x077f: 0x14e9,
-	// Block 0x1e, offset 0x780
-	0x0780: 0x1639, 0x0781: 0x13bd, 0x0782: 0x0a39, 0x0783: 0x0bad, 0x0784: 0x114d, 0x0785: 0x120d,
-	0x0786: 0x0f71, 0x0787: 0x10a5, 0x0788: 0x1409, 0x0789: 0x1555, 0x078a: 0x0a35, 0x078b: 0x0b01,
-	0x078c: 0x0de9, 0x078d: 0x0e9d, 0x078e: 0x0ed1, 0x078f: 0x1185, 0x0790: 0x11ad, 0x0791: 0x1515,
-	0x0792: 0x08c1, 0x0793: 0x1219, 0x0794: 0x0865, 0x0795: 0x0861, 0x0796: 0x1109, 0x0797: 0x1199,
-	0x0798: 0x12cd, 0x0799: 0x151d, 0x079a: 0x13d9, 0x079b: 0x0c99, 0x079c: 0x0de5, 0x079d: 0x13c9,
-	0x079e: 0x0769, 0x079f: 0x0ad5, 0x07a0: 0x0c05, 0x07a1: 0x0fa1, 0x07a2: 0x1021, 0x07a3: 0x08e5,
-	0x07a4: 0x10ad, 0x07a5: 0x07d1, 0x07a6: 0x0be9, 0x07a7: 0x0749, 0x07a8: 0x0e5d, 0x07a9: 0x0d15,
-	0x07aa: 0x1181, 0x07ab: 0x0939, 0x07ac: 0x0a25, 0x07ad: 0x106d, 0x07ae: 0x12d5, 0x07af: 0x13ad,
-	0x07b0: 0x0e29, 0x07b1: 0x1469, 0x07b2: 0x0e55, 0x07b3: 0x0ca9, 0x07b4: 0x128d, 0x07b5: 0x0cc9,
-	0x07b6: 0x101d, 0x07b7: 0x079d, 0x07b8: 0x0819, 0x07b9: 0x085d, 0x07ba: 0x0dc5, 0x07bb: 0x116d,
-	0x07bc: 0x1265, 0x07bd: 0x13b9, 0x07be: 0x14c9, 0x07bf: 0x08cd,
-	// Block 0x1f, offset 0x7c0
-	0x07c0: 0x0981, 0x07c1: 0x0a89, 0x07c2: 0x0ba1, 0x07c3: 0x0d31, 0x07c4: 0x0eed, 0x07c5: 0x10b1,
-	0x07c6: 0x1505, 0x07c7: 0x15e9, 0x07c8: 0x163d, 0x07c9: 0x1655, 0x07ca: 0x08a9, 0x07cb: 0x0d65,
-	0x07cc: 0x0e15, 0x07cd: 0x145d, 0x07ce: 0x0b6d, 0x07cf: 0x0c49, 0x07d0: 0x0c65, 0x07d1: 0x0cf5,
-	0x07d2: 0x0edd, 0x07d3: 0x0f29, 0x07d4: 0x0fd9, 0x07d5: 0x10fd, 0x07d6: 0x11a1, 0x07d7: 0x1205,
-	0x07d8: 0x144d, 0x07d9: 0x12dd, 0x07da: 0x1475, 0x07db: 0x14ed, 0x07dc: 0x0881, 0x07dd: 0x08ad,
-	0x07de: 0x0995, 0x07df: 0x0f19, 0x07e0: 0x1365, 0x07e1: 0x13ad, 0x07e2: 0x0b8d, 0x07e3: 0x0bfd,
-	0x07e4: 0x0cc1, 0x07e5: 0x0e21, 0x07e6: 0x1149, 0x07e7: 0x0f95, 0x07e8: 0x07ad, 0x07e9: 0x09f1,
-	0x07ea: 0x0ad5, 0x07eb: 0x0b39, 0x07ec: 0x0c09, 0x07ed: 0x0fb1, 0x07ee: 0x0fcd, 0x07ef: 0x11dd,
-	0x07f0: 0x11fd, 0x07f1: 0x14d1, 0x07f2: 0x1551, 0x07f3: 0x1561, 0x07f4: 0x159d, 0x07f5: 0x07c5,
-	0x07f6: 0x10f1, 0x07f7: 0x14bd, 0x07f8: 0x1539, 0x07f9: 0x0c21, 0x07fa: 0x0789, 0x07fb: 0x07e9,
-	0x07fc: 0x0ad9, 0x07fd: 0x0af9, 0x07fe: 0x0d21, 0x07ff: 0x0de5,
-	// Block 0x20, offset 0x800
-	0x0800: 0x0f35, 0x0801: 0x103d, 0x0802: 0x12e9, 0x0803: 0x1489, 0x0804: 0x1691, 0x0805: 0x0d55,
-	0x0806: 0x1511, 0x0807: 0x08a5, 0x0808: 0x0da1, 0x0809: 0x0dad, 0x080a: 0x0e81, 0x080b: 0x0eb9,
-	0x080c: 0x0fbd, 0x080d: 0x1019, 0x080e: 0x1099, 0x080f: 0x117d, 0x0810: 0x15a9, 0x0811: 0x0821,
-	0x0812: 0x0c75, 0x0813: 0x1521, 0x0814: 0x07d9, 0x0815: 0x0b1d, 0x0816: 0x0ea1, 0x0817: 0x1451,
-	0x0818: 0x0bd9, 0x0819: 0x0c29, 0x081a: 0x0db5, 0x081b: 0x0fa1, 0x081c: 0x1529, 0x081d: 0x0889,
-	0x081e: 0x0971, 0x081f: 0x0b09, 0x0820: 0x0d45, 0x0821: 0x0d91, 0x0822: 0x0dd1, 0x0823: 0x0e65,
-	0x0824: 0x0fb9, 0x0825: 0x102d, 0x0826: 0x11c9, 0x0827: 0x1369, 0x0828: 0x1375, 0x0829: 0x14c5,
-	0x082a: 0x1545, 0x082b: 0x08f5, 0x082c: 0x0ebd, 0x082d: 0x0975, 0x082e: 0x0f39, 0x082f: 0x0fdd,
-	0x0830: 0x12f9, 0x0831: 0x152d, 0x0832: 0x1619, 0x0833: 0x1641, 0x0834: 0x0da9, 0x0835: 0x0e99,
-	0x0836: 0x1235, 0x0837: 0x1129, 0x0838: 0x1135, 0x0839: 0x1159, 0x083a: 0x0f89, 0x083b: 0x0f11,
-	0x083c: 0x13d5, 0x083d: 0x07a5, 0x083e: 0x129d, 0x083f: 0x088d,
-	// Block 0x21, offset 0x840
-	0x0840: 0x087d, 0x0841: 0x0b7d, 0x0842: 0x0c9d, 0x0843: 0x1165, 0x0844: 0x0ac5, 0x0845: 0x0e75,
-	0x0846: 0x0d61, 0x0847: 0x1459, 0x0848: 0x1359, 0x0849: 0x1519, 0x084a: 0x1395, 0x084b: 0x0b99,
-	0x084c: 0x07f9, 0x084d: 0x09cd, 0x0850: 0x0a21,
-	0x0852: 0x0d51, 0x0855: 0x0869, 0x0856: 0x0f91, 0x0857: 0x1055,
-	0x0858: 0x10b9, 0x0859: 0x10d5, 0x085a: 0x10d9, 0x085b: 0x10ed, 0x085c: 0x1569, 0x085d: 0x115d,
-	0x085e: 0x11e1, 0x0860: 0x1301, 0x0862: 0x13c5,
-	0x0865: 0x1479, 0x0866: 0x14a5,
-	0x086a: 0x15bd, 0x086b: 0x15c1, 0x086c: 0x15c5, 0x086d: 0x1629, 0x086e: 0x149d, 0x086f: 0x1535,
-	0x0870: 0x07c9, 0x0871: 0x07ed, 0x0872: 0x0801, 0x0873: 0x08bd, 0x0874: 0x08c9, 0x0875: 0x0909,
-	0x0876: 0x09bd, 0x0877: 0x09d9, 0x0878: 0x09e1, 0x0879: 0x0a1d, 0x087a: 0x0a29, 0x087b: 0x0b05,
-	0x087c: 0x0b0d, 0x087d: 0x0c15, 0x087e: 0x0c3d, 0x087f: 0x0c45,
-	// Block 0x22, offset 0x880
-	0x0880: 0x0c5d, 0x0881: 0x0d09, 0x0882: 0x0d39, 0x0883: 0x0d59, 0x0884: 0x0dc9, 0x0885: 0x0e8d,
-	0x0886: 0x0ea9, 0x0887: 0x0ed9, 0x0888: 0x0f2d, 0x0889: 0x0f4d, 0x088a: 0x0fc1, 0x088b: 0x10a1,
-	0x088c: 0x10bd, 0x088d: 0x10c5, 0x088e: 0x10c1, 0x088f: 0x10c9, 0x0890: 0x10cd, 0x0891: 0x10d1,
-	0x0892: 0x10e5, 0x0893: 0x10e9, 0x0894: 0x110d, 0x0895: 0x1121, 0x0896: 0x113d, 0x0897: 0x11a1,
-	0x0898: 0x11a9, 0x0899: 0x11b1, 0x089a: 0x11c5, 0x089b: 0x11ed, 0x089c: 0x123d, 0x089d: 0x1271,
-	0x089e: 0x1271, 0x089f: 0x12d9, 0x08a0: 0x1381, 0x08a1: 0x1399, 0x08a2: 0x13cd, 0x08a3: 0x13d1,
-	0x08a4: 0x1415, 0x08a5: 0x1419, 0x08a6: 0x1471, 0x08a7: 0x1479, 0x08a8: 0x1549, 0x08a9: 0x158d,
-	0x08aa: 0x15a5, 0x08ab: 0x0c0d, 0x08ac: 0x1780, 0x08ad: 0x1255,
-	0x08b0: 0x0751, 0x08b1: 0x0855, 0x08b2: 0x0815, 0x08b3: 0x07bd, 0x08b4: 0x07fd, 0x08b5: 0x0829,
-	0x08b6: 0x08b9, 0x08b7: 0x08d5, 0x08b8: 0x09bd, 0x08b9: 0x09a9, 0x08ba: 0x09b9, 0x08bb: 0x09d5,
-	0x08bc: 0x0a21, 0x08bd: 0x0a31, 0x08be: 0x0a75, 0x08bf: 0x0a81,
-	// Block 0x23, offset 0x8c0
-	0x08c0: 0x0a9d, 0x08c1: 0x0aad, 0x08c2: 0x0b95, 0x08c3: 0x0b9d, 0x08c4: 0x0bcd, 0x08c5: 0x0bed,
-	0x08c6: 0x0c1d, 0x08c7: 0x0c35, 0x08c8: 0x0c25, 0x08c9: 0x0c45, 0x08ca: 0x0c39, 0x08cb: 0x0c5d,
-	0x08cc: 0x0c79, 0x08cd: 0x0cd1, 0x08ce: 0x0cdd, 0x08cf: 0x0ce5, 0x08d0: 0x0d0d, 0x08d1: 0x0d51,
-	0x08d2: 0x0d81, 0x08d3: 0x0d85, 0x08d4: 0x0d99, 0x08d5: 0x0e19, 0x08d6: 0x0e29, 0x08d7: 0x0e81,
-	0x08d8: 0x0ecd, 0x08d9: 0x0ec5, 0x08da: 0x0ed9, 0x08db: 0x0ef5, 0x08dc: 0x0f2d, 0x08dd: 0x1085,
-	0x08de: 0x0f51, 0x08df: 0x0f85, 0x08e0: 0x0f91, 0x08e1: 0x0fd1, 0x08e2: 0x0fed, 0x08e3: 0x1011,
-	0x08e4: 0x1035, 0x08e5: 0x1039, 0x08e6: 0x1055, 0x08e7: 0x1059, 0x08e8: 0x1069, 0x08e9: 0x107d,
-	0x08ea: 0x1079, 0x08eb: 0x10a9, 0x08ec: 0x1125, 0x08ed: 0x113d, 0x08ee: 0x1155, 0x08ef: 0x118d,
-	0x08f0: 0x11a1, 0x08f1: 0x11bd, 0x08f2: 0x11ed, 0x08f3: 0x12a1, 0x08f4: 0x12c9, 0x08f5: 0x133d,
-	0x08f6: 0x1385, 0x08f7: 0x1391, 0x08f8: 0x1399, 0x08f9: 0x13b1, 0x08fa: 0x13c5, 0x08fb: 0x13b5,
-	0x08fc: 0x13cd, 0x08fd: 0x13c9, 0x08fe: 0x13c1, 0x08ff: 0x13d1,
-	// Block 0x24, offset 0x900
-	0x0900: 0x13dd, 0x0901: 0x1419, 0x0902: 0x1455, 0x0903: 0x1485, 0x0904: 0x14b9, 0x0905: 0x14d9,
-	0x0906: 0x1525, 0x0907: 0x1549, 0x0908: 0x1569, 0x0909: 0x157d, 0x090a: 0x158d, 0x090b: 0x1599,
-	0x090c: 0x15a5, 0x090d: 0x15f9, 0x090e: 0x1699, 0x090f: 0x1717, 0x0910: 0x1712, 0x0911: 0x1744,
-	0x0912: 0x0679, 0x0913: 0x06a1, 0x0914: 0x06a5, 0x0915: 0x17c6, 0x0916: 0x17f3, 0x0917: 0x186b,
-	0x0918: 0x1685, 0x0919: 0x1695,
-	// Block 0x25, offset 0x940
-	0x0940: 0x076d, 0x0941: 0x0765, 0x0942: 0x0775, 0x0943: 0x16a9, 0x0944: 0x07b9, 0x0945: 0x07c9,
-	0x0946: 0x07cd, 0x0947: 0x07d5, 0x0948: 0x07dd, 0x0949: 0x07e1, 0x094a: 0x07ed, 0x094b: 0x07e5,
-	0x094c: 0x0625, 0x094d: 0x16bd, 0x094e: 0x0801, 0x094f: 0x0805, 0x0950: 0x0809, 0x0951: 0x0825,
-	0x0952: 0x16ae, 0x0953: 0x0629, 0x0954: 0x0811, 0x0955: 0x0831, 0x0956: 0x16b8, 0x0957: 0x0841,
-	0x0958: 0x0849, 0x0959: 0x07a9, 0x095a: 0x0851, 0x095b: 0x0855, 0x095c: 0x1893, 0x095d: 0x0871,
-	0x095e: 0x0879, 0x095f: 0x0631, 0x0960: 0x0891, 0x0961: 0x0895, 0x0962: 0x089d, 0x0963: 0x08a1,
-	0x0964: 0x0635, 0x0965: 0x08b9, 0x0966: 0x08bd, 0x0967: 0x08c9, 0x0968: 0x08d5, 0x0969: 0x08d9,
-	0x096a: 0x08dd, 0x096b: 0x08e5, 0x096c: 0x0905, 0x096d: 0x0909, 0x096e: 0x0911, 0x096f: 0x0921,
-	0x0970: 0x0929, 0x0971: 0x092d, 0x0972: 0x092d, 0x0973: 0x092d, 0x0974: 0x16cc, 0x0975: 0x0f05,
-	0x0976: 0x0941, 0x0977: 0x0949, 0x0978: 0x16d1, 0x0979: 0x0955, 0x097a: 0x095d, 0x097b: 0x0965,
-	0x097c: 0x098d, 0x097d: 0x0979, 0x097e: 0x0985, 0x097f: 0x0989,
-	// Block 0x26, offset 0x980
-	0x0980: 0x0991, 0x0981: 0x0999, 0x0982: 0x099d, 0x0983: 0x09a5, 0x0984: 0x09ad, 0x0985: 0x09b1,
-	0x0986: 0x09b1, 0x0987: 0x09b9, 0x0988: 0x09c1, 0x0989: 0x09c5, 0x098a: 0x09d1, 0x098b: 0x09f5,
-	0x098c: 0x09d9, 0x098d: 0x09f9, 0x098e: 0x09dd, 0x098f: 0x09e5, 0x0990: 0x087d, 0x0991: 0x0a41,
-	0x0992: 0x0a09, 0x0993: 0x0a0d, 0x0994: 0x0a11, 0x0995: 0x0a05, 0x0996: 0x0a19, 0x0997: 0x0a15,
-	0x0998: 0x0a2d, 0x0999: 0x16d6, 0x099a: 0x0a49, 0x099b: 0x0a4d, 0x099c: 0x0a55, 0x099d: 0x0a61,
-	0x099e: 0x0a69, 0x099f: 0x0a85, 0x09a0: 0x16db, 0x09a1: 0x16e0, 0x09a2: 0x0a91, 0x09a3: 0x0a95,
-	0x09a4: 0x0a99, 0x09a5: 0x0a8d, 0x09a6: 0x0aa1, 0x09a7: 0x0639, 0x09a8: 0x063d, 0x09a9: 0x0aa9,
-	0x09aa: 0x0ab1, 0x09ab: 0x0ab1, 0x09ac: 0x16e5, 0x09ad: 0x0acd, 0x09ae: 0x0ad1, 0x09af: 0x0ad5,
-	0x09b0: 0x0add, 0x09b1: 0x16ea, 0x09b2: 0x0ae5, 0x09b3: 0x0ae9, 0x09b4: 0x0bc1, 0x09b5: 0x0af1,
-	0x09b6: 0x0641, 0x09b7: 0x0afd, 0x09b8: 0x0b0d, 0x09b9: 0x0b19, 0x09ba: 0x0b15, 0x09bb: 0x16f4,
-	0x09bc: 0x0b21, 0x09bd: 0x16f9, 0x09be: 0x0b2d, 0x09bf: 0x0b29,
-	// Block 0x27, offset 0x9c0
-	0x09c0: 0x0b31, 0x09c1: 0x0b41, 0x09c2: 0x0b45, 0x09c3: 0x0645, 0x09c4: 0x0b55, 0x09c5: 0x0b5d,
-	0x09c6: 0x0b61, 0x09c7: 0x0b65, 0x09c8: 0x0649, 0x09c9: 0x16fe, 0x09ca: 0x064d, 0x09cb: 0x0b81,
-	0x09cc: 0x0b85, 0x09cd: 0x0b89, 0x09ce: 0x0b91, 0x09cf: 0x18c5, 0x09d0: 0x0ba9, 0x09d1: 0x1708,
-	0x09d2: 0x1708, 0x09d3: 0x1249, 0x09d4: 0x0bb9, 0x09d5: 0x0bb9, 0x09d6: 0x0651, 0x09d7: 0x172b,
-	0x09d8: 0x17fd, 0x09d9: 0x0bc9, 0x09da: 0x0bd1, 0x09db: 0x0655, 0x09dc: 0x0be5, 0x09dd: 0x0bf5,
-	0x09de: 0x0bf9, 0x09df: 0x0c01, 0x09e0: 0x0c11, 0x09e1: 0x065d, 0x09e2: 0x0659, 0x09e3: 0x0c15,
-	0x09e4: 0x170d, 0x09e5: 0x0c19, 0x09e6: 0x0c2d, 0x09e7: 0x0c31, 0x09e8: 0x0c35, 0x09e9: 0x0c31,
-	0x09ea: 0x0c41, 0x09eb: 0x0c45, 0x09ec: 0x0c55, 0x09ed: 0x0c4d, 0x09ee: 0x0c51, 0x09ef: 0x0c59,
-	0x09f0: 0x0c5d, 0x09f1: 0x0c61, 0x09f2: 0x0c6d, 0x09f3: 0x0c71, 0x09f4: 0x0c89, 0x09f5: 0x0c91,
-	0x09f6: 0x0ca1, 0x09f7: 0x0cb5, 0x09f8: 0x171c, 0x09f9: 0x0cb1, 0x09fa: 0x0ca5, 0x09fb: 0x0cbd,
-	0x09fc: 0x0cc5, 0x09fd: 0x0cd9, 0x09fe: 0x1721, 0x09ff: 0x0ce1,
-	// Block 0x28, offset 0xa00
-	0x0a00: 0x0cd5, 0x0a01: 0x0ccd, 0x0a02: 0x0661, 0x0a03: 0x0ce9, 0x0a04: 0x0cf1, 0x0a05: 0x0cf9,
-	0x0a06: 0x0ced, 0x0a07: 0x0665, 0x0a08: 0x0d09, 0x0a09: 0x0d11, 0x0a0a: 0x1726, 0x0a0b: 0x0d3d,
-	0x0a0c: 0x0d71, 0x0a0d: 0x0d4d, 0x0a0e: 0x0671, 0x0a0f: 0x0d59, 0x0a10: 0x066d, 0x0a11: 0x0669,
-	0x0a12: 0x0835, 0x0a13: 0x0839, 0x0a14: 0x0d75, 0x0a15: 0x0d5d, 0x0a16: 0x121d, 0x0a17: 0x06d5,
-	0x0a18: 0x0d81, 0x0a19: 0x0d85, 0x0a1a: 0x0d89, 0x0a1b: 0x0d9d, 0x0a1c: 0x0d95, 0x0a1d: 0x173f,
-	0x0a1e: 0x0675, 0x0a1f: 0x0db1, 0x0a20: 0x0da5, 0x0a21: 0x0dc1, 0x0a22: 0x0dc9, 0x0a23: 0x1749,
-	0x0a24: 0x0dcd, 0x0a25: 0x0db9, 0x0a26: 0x0dd5, 0x0a27: 0x0679, 0x0a28: 0x0dd9, 0x0a29: 0x0ddd,
-	0x0a2a: 0x0de1, 0x0a2b: 0x0ded, 0x0a2c: 0x174e, 0x0a2d: 0x0df5, 0x0a2e: 0x067d, 0x0a2f: 0x0e01,
-	0x0a30: 0x1753, 0x0a31: 0x0e05, 0x0a32: 0x0681, 0x0a33: 0x0e11, 0x0a34: 0x0e1d, 0x0a35: 0x0e29,
-	0x0a36: 0x0e2d, 0x0a37: 0x1758, 0x0a38: 0x16ef, 0x0a39: 0x175d, 0x0a3a: 0x0e4d, 0x0a3b: 0x1762,
-	0x0a3c: 0x0e59, 0x0a3d: 0x0e61, 0x0a3e: 0x0e51, 0x0a3f: 0x0e6d,
-	// Block 0x29, offset 0xa40
-	0x0a40: 0x0e7d, 0x0a41: 0x0e8d, 0x0a42: 0x0e81, 0x0a43: 0x0e85, 0x0a44: 0x0e91, 0x0a45: 0x0e95,
-	0x0a46: 0x1767, 0x0a47: 0x0e79, 0x0a48: 0x0ead, 0x0a49: 0x0eb1, 0x0a4a: 0x0685, 0x0a4b: 0x0ec5,
-	0x0a4c: 0x0ec1, 0x0a4d: 0x176c, 0x0a4e: 0x0ea5, 0x0a4f: 0x0ee1, 0x0a50: 0x1771, 0x0a51: 0x1776,
-	0x0a52: 0x0ee5, 0x0a53: 0x0ef9, 0x0a54: 0x0ef5, 0x0a55: 0x0ef1, 0x0a56: 0x0689, 0x0a57: 0x0efd,
-	0x0a58: 0x0f0d, 0x0a59: 0x0f09, 0x0a5a: 0x0f15, 0x0a5b: 0x16b3, 0x0a5c: 0x0f25, 0x0a5d: 0x177b,
-	0x0a5e: 0x0f31, 0x0a5f: 0x1785, 0x0a60: 0x0f45, 0x0a61: 0x0f51, 0x0a62: 0x0f65, 0x0a63: 0x178a,
-	0x0a64: 0x0f79, 0x0a65: 0x0f7d, 0x0a66: 0x178f, 0x0a67: 0x1794, 0x0a68: 0x0f99, 0x0a69: 0x0fa9,
-	0x0a6a: 0x068d, 0x0a6b: 0x0fad, 0x0a6c: 0x0691, 0x0a6d: 0x0691, 0x0a6e: 0x0fc5, 0x0a6f: 0x0fc9,
-	0x0a70: 0x0fd1, 0x0a71: 0x0fd5, 0x0a72: 0x0fe1, 0x0a73: 0x0695, 0x0a74: 0x0ff9, 0x0a75: 0x1799,
-	0x0a76: 0x1015, 0x0a77: 0x179e, 0x0a78: 0x1021, 0x0a79: 0x1703, 0x0a7a: 0x1031, 0x0a7b: 0x17a3,
-	0x0a7c: 0x17a8, 0x0a7d: 0x17ad, 0x0a7e: 0x0699, 0x0a7f: 0x069d,
-	// Block 0x2a, offset 0xa80
-	0x0a80: 0x1069, 0x0a81: 0x17b7, 0x0a82: 0x17b2, 0x0a83: 0x17bc, 0x0a84: 0x17c1, 0x0a85: 0x1071,
-	0x0a86: 0x1075, 0x0a87: 0x1075, 0x0a88: 0x107d, 0x0a89: 0x06a5, 0x0a8a: 0x1081, 0x0a8b: 0x06a9,
-	0x0a8c: 0x06ad, 0x0a8d: 0x17cb, 0x0a8e: 0x1095, 0x0a8f: 0x109d, 0x0a90: 0x10a9, 0x0a91: 0x06b1,
-	0x0a92: 0x17d0, 0x0a93: 0x10cd, 0x0a94: 0x17d5, 0x0a95: 0x17da, 0x0a96: 0x10ed, 0x0a97: 0x1105,
-	0x0a98: 0x06b5, 0x0a99: 0x110d, 0x0a9a: 0x1111, 0x0a9b: 0x1115, 0x0a9c: 0x17df, 0x0a9d: 0x17e4,
-	0x0a9e: 0x17e4, 0x0a9f: 0x112d, 0x0aa0: 0x06b9, 0x0aa1: 0x17e9, 0x0aa2: 0x1141, 0x0aa3: 0x1145,
-	0x0aa4: 0x06bd, 0x0aa5: 0x17ee, 0x0aa6: 0x1161, 0x0aa7: 0x06c1, 0x0aa8: 0x1171, 0x0aa9: 0x1169,
-	0x0aaa: 0x1179, 0x0aab: 0x17f8, 0x0aac: 0x1191, 0x0aad: 0x06c5, 0x0aae: 0x119d, 0x0aaf: 0x11a5,
-	0x0ab0: 0x11b5, 0x0ab1: 0x06c9, 0x0ab2: 0x1802, 0x0ab3: 0x1807, 0x0ab4: 0x06cd, 0x0ab5: 0x180c,
-	0x0ab6: 0x11cd, 0x0ab7: 0x1811, 0x0ab8: 0x11d9, 0x0ab9: 0x11e5, 0x0aba: 0x11ed, 0x0abb: 0x1816,
-	0x0abc: 0x181b, 0x0abd: 0x1201, 0x0abe: 0x1820, 0x0abf: 0x1209,
-	// Block 0x2b, offset 0xac0
-	0x0ac0: 0x1730, 0x0ac1: 0x06d1, 0x0ac2: 0x1221, 0x0ac3: 0x1225, 0x0ac4: 0x06d9, 0x0ac5: 0x1229,
-	0x0ac6: 0x0aa5, 0x0ac7: 0x1825, 0x0ac8: 0x182a, 0x0ac9: 0x1735, 0x0aca: 0x173a, 0x0acb: 0x1249,
-	0x0acc: 0x124d, 0x0acd: 0x1465, 0x0ace: 0x06dd, 0x0acf: 0x1279, 0x0ad0: 0x1275, 0x0ad1: 0x127d,
-	0x0ad2: 0x08b1, 0x0ad3: 0x1281, 0x0ad4: 0x1285, 0x0ad5: 0x1289, 0x0ad6: 0x1291, 0x0ad7: 0x182f,
-	0x0ad8: 0x128d, 0x0ad9: 0x1295, 0x0ada: 0x12a9, 0x0adb: 0x12ad, 0x0adc: 0x1299, 0x0add: 0x12b1,
-	0x0ade: 0x12c5, 0x0adf: 0x12d9, 0x0ae0: 0x12a5, 0x0ae1: 0x12b9, 0x0ae2: 0x12bd, 0x0ae3: 0x12c1,
-	0x0ae4: 0x1834, 0x0ae5: 0x183e, 0x0ae6: 0x1839, 0x0ae7: 0x06e1, 0x0ae8: 0x12e1, 0x0ae9: 0x12e5,
-	0x0aea: 0x12ed, 0x0aeb: 0x1852, 0x0aec: 0x12f1, 0x0aed: 0x1843, 0x0aee: 0x06e5, 0x0aef: 0x06e9,
-	0x0af0: 0x1848, 0x0af1: 0x184d, 0x0af2: 0x06ed, 0x0af3: 0x1311, 0x0af4: 0x1315, 0x0af5: 0x1319,
-	0x0af6: 0x131d, 0x0af7: 0x1329, 0x0af8: 0x1325, 0x0af9: 0x1331, 0x0afa: 0x132d, 0x0afb: 0x133d,
-	0x0afc: 0x1335, 0x0afd: 0x1339, 0x0afe: 0x1341, 0x0aff: 0x06f1,
-	// Block 0x2c, offset 0xb00
-	0x0b00: 0x1349, 0x0b01: 0x134d, 0x0b02: 0x06f5, 0x0b03: 0x135d, 0x0b04: 0x1361, 0x0b05: 0x1857,
-	0x0b06: 0x136d, 0x0b07: 0x1371, 0x0b08: 0x06f9, 0x0b09: 0x137d, 0x0b0a: 0x062d, 0x0b0b: 0x185c,
-	0x0b0c: 0x1861, 0x0b0d: 0x06fd, 0x0b0e: 0x0701, 0x0b0f: 0x13a9, 0x0b10: 0x13c1, 0x0b11: 0x13dd,
-	0x0b12: 0x13ed, 0x0b13: 0x1866, 0x0b14: 0x1401, 0x0b15: 0x1405, 0x0b16: 0x141d, 0x0b17: 0x1429,
-	0x0b18: 0x1870, 0x0b19: 0x16c2, 0x0b1a: 0x1435, 0x0b1b: 0x1431, 0x0b1c: 0x143d, 0x0b1d: 0x16c7,
-	0x0b1e: 0x1449, 0x0b1f: 0x1455, 0x0b20: 0x1875, 0x0b21: 0x187a, 0x0b22: 0x1495, 0x0b23: 0x14a1,
-	0x0b24: 0x14a9, 0x0b25: 0x187f, 0x0b26: 0x14ad, 0x0b27: 0x14d5, 0x0b28: 0x14e1, 0x0b29: 0x14e5,
-	0x0b2a: 0x14dd, 0x0b2b: 0x14f1, 0x0b2c: 0x14f5, 0x0b2d: 0x1884, 0x0b2e: 0x1501, 0x0b2f: 0x0705,
-	0x0b30: 0x1509, 0x0b31: 0x1889, 0x0b32: 0x0709, 0x0b33: 0x1541, 0x0b34: 0x0b35, 0x0b35: 0x1559,
-	0x0b36: 0x188e, 0x0b37: 0x1898, 0x0b38: 0x070d, 0x0b39: 0x0711, 0x0b3a: 0x1581, 0x0b3b: 0x189d,
-	0x0b3c: 0x0715, 0x0b3d: 0x18a2, 0x0b3e: 0x1599, 0x0b3f: 0x1599,
-	// Block 0x2d, offset 0xb40
-	0x0b40: 0x15a1, 0x0b41: 0x18a7, 0x0b42: 0x15b9, 0x0b43: 0x0719, 0x0b44: 0x15c9, 0x0b45: 0x15d5,
-	0x0b46: 0x15dd, 0x0b47: 0x15e5, 0x0b48: 0x071d, 0x0b49: 0x18ac, 0x0b4a: 0x15f9, 0x0b4b: 0x1615,
-	0x0b4c: 0x1621, 0x0b4d: 0x0721, 0x0b4e: 0x0725, 0x0b4f: 0x1625, 0x0b50: 0x18b1, 0x0b51: 0x0729,
-	0x0b52: 0x18b6, 0x0b53: 0x18bb, 0x0b54: 0x18c0, 0x0b55: 0x1649, 0x0b56: 0x072d, 0x0b57: 0x165d,
-	0x0b58: 0x1665, 0x0b59: 0x1669, 0x0b5a: 0x1671, 0x0b5b: 0x1679, 0x0b5c: 0x1681, 0x0b5d: 0x18ca,
-}
-
-// nfcSparseOffset: 98 entries, 196 bytes
-var nfcSparseOffset = []uint16{0x0, 0x2, 0x6, 0x8, 0x13, 0x23, 0x25, 0x2a, 0x35, 0x44, 0x51, 0x59, 0x5d, 0x62, 0x64, 0x73, 0x7b, 0x82, 0x85, 0x8d, 0x91, 0x95, 0x97, 0x99, 0xa2, 0xa6, 0xad, 0xb2, 0xb5, 0xbf, 0xc1, 0xc8, 0xd0, 0xd3, 0xd5, 0xd7, 0xd9, 0xde, 0xed, 0xf9, 0xfb, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10b, 0x10d, 0x110, 0x113, 0x115, 0x118, 0x11b, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x139, 0x148, 0x14a, 0x158, 0x15b, 0x161, 0x167, 0x172, 0x176, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x186, 0x189, 0x18b, 0x18d, 0x18f, 0x192, 0x194, 0x196, 0x198, 0x19a, 0x1a0, 0x1a3, 0x1a5, 0x1a7, 0x1a9, 0x1b7, 0x1c0, 0x1c2, 0x1c4, 0x1ca, 0x1d2, 0x1d9, 0x1dc, 0x1e9, 0x1f3, 0x1f5}
-
-// nfcSparseValues: 503 entries, 2012 bytes
-var nfcSparseValues = [503]valueRange{
-	// Block 0x0, offset 0x1
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0xa8, hi: 0xa8},
-	// Block 0x1, offset 0x2
-	{value: 0x0091, lo: 0x03},
-	{value: 0x46c8, lo: 0xa0, hi: 0xa1},
-	{value: 0x46fa, lo: 0xaf, hi: 0xb0},
-	{value: 0x8800, lo: 0xb7, hi: 0xb7},
-	// Block 0x2, offset 0x3
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	// Block 0x3, offset 0x4
-	{value: 0x0006, lo: 0x0a},
-	{value: 0x8800, lo: 0x81, hi: 0x81},
-	{value: 0x8800, lo: 0x85, hi: 0x85},
-	{value: 0x8800, lo: 0x89, hi: 0x89},
-	{value: 0x4826, lo: 0x8a, hi: 0x8a},
-	{value: 0x4844, lo: 0x8b, hi: 0x8b},
-	{value: 0x36b1, lo: 0x8c, hi: 0x8c},
-	{value: 0x36c9, lo: 0x8d, hi: 0x8d},
-	{value: 0x485c, lo: 0x8e, hi: 0x8e},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x36e7, lo: 0x93, hi: 0x94},
-	// Block 0x4, offset 0x5
-	{value: 0x0000, lo: 0x0f},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x8800, lo: 0x8d, hi: 0x8d},
-	{value: 0x378f, lo: 0x90, hi: 0x90},
-	{value: 0x379b, lo: 0x91, hi: 0x91},
-	{value: 0x3789, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x96, hi: 0x96},
-	{value: 0x3801, lo: 0x97, hi: 0x97},
-	{value: 0x37cb, lo: 0x9c, hi: 0x9c},
-	{value: 0x37b3, lo: 0x9d, hi: 0x9d},
-	{value: 0x37dd, lo: 0x9e, hi: 0x9e},
-	{value: 0x8800, lo: 0xb4, hi: 0xb5},
-	{value: 0x3807, lo: 0xb6, hi: 0xb6},
-	{value: 0x380d, lo: 0xb7, hi: 0xb7},
-	// Block 0x5, offset 0x6
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x83, hi: 0x87},
-	// Block 0x6, offset 0x7
-	{value: 0x0001, lo: 0x04},
-	{value: 0x8018, lo: 0x81, hi: 0x82},
-	{value: 0x80e6, lo: 0x84, hi: 0x84},
-	{value: 0x80dc, lo: 0x85, hi: 0x85},
-	{value: 0x8012, lo: 0x87, hi: 0x87},
-	// Block 0x7, offset 0x8
-	{value: 0x0000, lo: 0x0a},
-	{value: 0x80e6, lo: 0x90, hi: 0x97},
-	{value: 0x801e, lo: 0x98, hi: 0x98},
-	{value: 0x801f, lo: 0x99, hi: 0x99},
-	{value: 0x8020, lo: 0x9a, hi: 0x9a},
-	{value: 0x382b, lo: 0xa2, hi: 0xa2},
-	{value: 0x3831, lo: 0xa3, hi: 0xa3},
-	{value: 0x383d, lo: 0xa4, hi: 0xa4},
-	{value: 0x3837, lo: 0xa5, hi: 0xa5},
-	{value: 0x3843, lo: 0xa6, hi: 0xa6},
-	{value: 0x8800, lo: 0xa7, hi: 0xa7},
-	// Block 0x8, offset 0x9
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x3855, lo: 0x80, hi: 0x80},
-	{value: 0x8800, lo: 0x81, hi: 0x81},
-	{value: 0x3849, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x384f, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x95, hi: 0x95},
-	{value: 0x80e6, lo: 0x96, hi: 0x9c},
-	{value: 0x80e6, lo: 0x9f, hi: 0xa2},
-	{value: 0x80dc, lo: 0xa3, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa4},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e6, lo: 0xab, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	// Block 0x9, offset 0xa
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x8024, lo: 0x91, hi: 0x91},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80dc, lo: 0xb1, hi: 0xb1},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb5, hi: 0xb6},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb9},
-	{value: 0x80e6, lo: 0xba, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbc},
-	{value: 0x80e6, lo: 0xbd, hi: 0xbd},
-	{value: 0x80dc, lo: 0xbe, hi: 0xbe},
-	{value: 0x80e6, lo: 0xbf, hi: 0xbf},
-	// Block 0xa, offset 0xb
-	{value: 0x000a, lo: 0x07},
-	{value: 0x80e6, lo: 0x80, hi: 0x80},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x83},
-	{value: 0x80dc, lo: 0x84, hi: 0x85},
-	{value: 0x80dc, lo: 0x86, hi: 0x87},
-	{value: 0x80dc, lo: 0x88, hi: 0x89},
-	{value: 0x80e6, lo: 0x8a, hi: 0x8a},
-	// Block 0xb, offset 0xc
-	{value: 0x0000, lo: 0x03},
-	{value: 0x80e6, lo: 0xab, hi: 0xb1},
-	{value: 0x80dc, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb3},
-	// Block 0xc, offset 0xd
-	{value: 0x0000, lo: 0x04},
-	{value: 0x80e6, lo: 0x96, hi: 0x99},
-	{value: 0x80e6, lo: 0x9b, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa5, hi: 0xa7},
-	{value: 0x80e6, lo: 0xa9, hi: 0xad},
-	// Block 0xd, offset 0xe
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x99, hi: 0x9b},
-	// Block 0xe, offset 0xf
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa5},
-	{value: 0x80dc, lo: 0xa6, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xa9, hi: 0xa9},
-	{value: 0x80e6, lo: 0xaa, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xaf},
-	{value: 0x801b, lo: 0xb0, hi: 0xb0},
-	{value: 0x801c, lo: 0xb1, hi: 0xb1},
-	{value: 0x801d, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb6, hi: 0xb6},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80dc, lo: 0xb9, hi: 0xba},
-	{value: 0x80e6, lo: 0xbb, hi: 0xbe},
-	// Block 0xf, offset 0x10
-	{value: 0x0000, lo: 0x07},
-	{value: 0x8800, lo: 0xa8, hi: 0xa8},
-	{value: 0x3ec2, lo: 0xa9, hi: 0xa9},
-	{value: 0x8800, lo: 0xb0, hi: 0xb0},
-	{value: 0x3eca, lo: 0xb1, hi: 0xb1},
-	{value: 0x8800, lo: 0xb3, hi: 0xb3},
-	{value: 0x3ed2, lo: 0xb4, hi: 0xb4},
-	{value: 0x8607, lo: 0xbc, hi: 0xbc},
-	// Block 0x10, offset 0x11
-	{value: 0x0008, lo: 0x06},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x91, hi: 0x91},
-	{value: 0x80dc, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x93, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x94},
-	{value: 0x4502, lo: 0x98, hi: 0x9f},
-	// Block 0x11, offset 0x12
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x12, offset 0x13
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18cf, lo: 0x8b, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	{value: 0x4542, lo: 0x9c, hi: 0x9c},
-	{value: 0x454a, lo: 0x9d, hi: 0x9d},
-	{value: 0x4552, lo: 0x9f, hi: 0x9f},
-	// Block 0x13, offset 0x14
-	{value: 0x0000, lo: 0x03},
-	{value: 0x457a, lo: 0xb3, hi: 0xb3},
-	{value: 0x4582, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x14, offset 0x15
-	{value: 0x0008, lo: 0x03},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x455a, lo: 0x99, hi: 0x9b},
-	{value: 0x4572, lo: 0x9e, hi: 0x9e},
-	// Block 0x15, offset 0x16
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x16, offset 0x17
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	// Block 0x17, offset 0x18
-	{value: 0x0000, lo: 0x08},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18e4, lo: 0x88, hi: 0x88},
-	{value: 0x18dd, lo: 0x8b, hi: 0x8b},
-	{value: 0x18eb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x96, hi: 0x97},
-	{value: 0x458a, lo: 0x9c, hi: 0x9c},
-	{value: 0x4592, lo: 0x9d, hi: 0x9d},
-	// Block 0x18, offset 0x19
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x18f2, lo: 0x94, hi: 0x94},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x19, offset 0x1a
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x18f9, lo: 0x8a, hi: 0x8a},
-	{value: 0x1907, lo: 0x8b, hi: 0x8b},
-	{value: 0x1900, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1a, offset 0x1b
-	{value: 0x0607, lo: 0x04},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x3eda, lo: 0x88, hi: 0x88},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8054, lo: 0x95, hi: 0x96},
-	// Block 0x1b, offset 0x1c
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8800, lo: 0xbf, hi: 0xbf},
-	// Block 0x1c, offset 0x1d
-	{value: 0x0000, lo: 0x09},
-	{value: 0x190e, lo: 0x80, hi: 0x80},
-	{value: 0x8600, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x1915, lo: 0x87, hi: 0x87},
-	{value: 0x191c, lo: 0x88, hi: 0x88},
-	{value: 0x2e66, lo: 0x8a, hi: 0x8a},
-	{value: 0x19a5, lo: 0x8b, hi: 0x8b},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x95, hi: 0x96},
-	// Block 0x1d, offset 0x1e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x1e, offset 0x1f
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x1923, lo: 0x8a, hi: 0x8a},
-	{value: 0x1931, lo: 0x8b, hi: 0x8b},
-	{value: 0x192a, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1f, offset 0x20
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8609, lo: 0x8a, hi: 0x8a},
-	{value: 0x8600, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x3ee2, lo: 0x9a, hi: 0x9a},
-	{value: 0x2e6d, lo: 0x9c, hi: 0x9d},
-	{value: 0x1938, lo: 0x9e, hi: 0x9e},
-	{value: 0x8600, lo: 0x9f, hi: 0x9f},
-	// Block 0x20, offset 0x21
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8067, lo: 0xb8, hi: 0xb9},
-	{value: 0x8009, lo: 0xba, hi: 0xba},
-	// Block 0x21, offset 0x22
-	{value: 0x0000, lo: 0x01},
-	{value: 0x806b, lo: 0x88, hi: 0x8b},
-	// Block 0x22, offset 0x23
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8076, lo: 0xb8, hi: 0xb9},
-	// Block 0x23, offset 0x24
-	{value: 0x0000, lo: 0x01},
-	{value: 0x807a, lo: 0x88, hi: 0x8b},
-	// Block 0x24, offset 0x25
-	{value: 0x0000, lo: 0x04},
-	{value: 0x80dc, lo: 0x98, hi: 0x99},
-	{value: 0x80dc, lo: 0xb5, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb7},
-	{value: 0x80d8, lo: 0xb9, hi: 0xb9},
-	// Block 0x25, offset 0x26
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x2786, lo: 0x83, hi: 0x83},
-	{value: 0x278d, lo: 0x8d, hi: 0x8d},
-	{value: 0x2794, lo: 0x92, hi: 0x92},
-	{value: 0x279b, lo: 0x97, hi: 0x97},
-	{value: 0x27a2, lo: 0x9c, hi: 0x9c},
-	{value: 0x277f, lo: 0xa9, hi: 0xa9},
-	{value: 0x8081, lo: 0xb1, hi: 0xb1},
-	{value: 0x8082, lo: 0xb2, hi: 0xb2},
-	{value: 0x49b6, lo: 0xb3, hi: 0xb3},
-	{value: 0x8084, lo: 0xb4, hi: 0xb4},
-	{value: 0x49bf, lo: 0xb5, hi: 0xb5},
-	{value: 0x459a, lo: 0xb6, hi: 0xb6},
-	{value: 0x45a2, lo: 0xb8, hi: 0xb8},
-	{value: 0x8082, lo: 0xba, hi: 0xbd},
-	// Block 0x26, offset 0x27
-	{value: 0x0000, lo: 0x0b},
-	{value: 0x8082, lo: 0x80, hi: 0x80},
-	{value: 0x49c8, lo: 0x81, hi: 0x81},
-	{value: 0x80e6, lo: 0x82, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0x86, hi: 0x87},
-	{value: 0x27b0, lo: 0x93, hi: 0x93},
-	{value: 0x27b7, lo: 0x9d, hi: 0x9d},
-	{value: 0x27be, lo: 0xa2, hi: 0xa2},
-	{value: 0x27c5, lo: 0xa7, hi: 0xa7},
-	{value: 0x27cc, lo: 0xac, hi: 0xac},
-	{value: 0x27a9, lo: 0xb9, hi: 0xb9},
-	// Block 0x27, offset 0x28
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x86, hi: 0x86},
-	// Block 0x28, offset 0x29
-	{value: 0x0000, lo: 0x05},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x193f, lo: 0xa6, hi: 0xa6},
-	{value: 0x8600, lo: 0xae, hi: 0xae},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x29, offset 0x2a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	// Block 0x2a, offset 0x2b
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0x80, hi: 0x92},
-	// Block 0x2b, offset 0x2c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8e00, lo: 0xa1, hi: 0xb5},
-	// Block 0x2c, offset 0x2d
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xa8, hi: 0xbf},
-	// Block 0x2d, offset 0x2e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0x80, hi: 0x82},
-	// Block 0x2e, offset 0x2f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9f},
-	// Block 0x2f, offset 0x30
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x94, hi: 0x94},
-	{value: 0x8009, lo: 0xb4, hi: 0xb4},
-	// Block 0x30, offset 0x31
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9d},
-	// Block 0x31, offset 0x32
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e4, lo: 0xa9, hi: 0xa9},
-	// Block 0x32, offset 0x33
-	{value: 0x0008, lo: 0x02},
-	{value: 0x80de, lo: 0xb9, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbb},
-	// Block 0x33, offset 0x34
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x97, hi: 0x97},
-	{value: 0x80dc, lo: 0x98, hi: 0x98},
-	// Block 0x34, offset 0x35
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8009, lo: 0xa0, hi: 0xa0},
-	{value: 0x80e6, lo: 0xb5, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x35, offset 0x36
-	{value: 0x0000, lo: 0x08},
-	{value: 0x197e, lo: 0x80, hi: 0x80},
-	{value: 0x1985, lo: 0x81, hi: 0x81},
-	{value: 0x8800, lo: 0x82, hi: 0x82},
-	{value: 0x198c, lo: 0x83, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xab, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xac},
-	{value: 0x80e6, lo: 0xad, hi: 0xb3},
-	// Block 0x36, offset 0x37
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xaa, hi: 0xab},
-	// Block 0x37, offset 0x38
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xa6, hi: 0xa6},
-	{value: 0x8009, lo: 0xb2, hi: 0xb3},
-	// Block 0x38, offset 0x39
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x39, offset 0x3a
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80e6, lo: 0x90, hi: 0x92},
-	{value: 0x8001, lo: 0x94, hi: 0x94},
-	{value: 0x80dc, lo: 0x95, hi: 0x99},
-	{value: 0x80e6, lo: 0x9a, hi: 0x9b},
-	{value: 0x80dc, lo: 0x9c, hi: 0x9f},
-	{value: 0x80e6, lo: 0xa0, hi: 0xa0},
-	{value: 0x8001, lo: 0xa2, hi: 0xa8},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	{value: 0x80e6, lo: 0xb4, hi: 0xb4},
-	// Block 0x3a, offset 0x3b
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0x80, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x82},
-	{value: 0x80e6, lo: 0x83, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8a},
-	{value: 0x80e6, lo: 0x8b, hi: 0x8c},
-	{value: 0x80ea, lo: 0x8d, hi: 0x8d},
-	{value: 0x80d6, lo: 0x8e, hi: 0x8e},
-	{value: 0x80dc, lo: 0x8f, hi: 0x8f},
-	{value: 0x80ca, lo: 0x90, hi: 0x90},
-	{value: 0x80e6, lo: 0x91, hi: 0xa6},
-	{value: 0x80e9, lo: 0xbc, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbe},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x3b, offset 0x3c
-	{value: 0x0004, lo: 0x01},
-	{value: 0x04a5, lo: 0x80, hi: 0x81},
-	// Block 0x3c, offset 0x3d
-	{value: 0x0000, lo: 0x0d},
-	{value: 0x80e6, lo: 0x90, hi: 0x91},
-	{value: 0x8001, lo: 0x92, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x97},
-	{value: 0x8001, lo: 0x98, hi: 0x9a},
-	{value: 0x80e6, lo: 0x9b, hi: 0x9c},
-	{value: 0x80e6, lo: 0xa1, hi: 0xa1},
-	{value: 0x8001, lo: 0xa5, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa7},
-	{value: 0x80dc, lo: 0xa8, hi: 0xa8},
-	{value: 0x80e6, lo: 0xa9, hi: 0xa9},
-	{value: 0x8001, lo: 0xaa, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	// Block 0x3d, offset 0x3e
-	{value: 0x4261, lo: 0x02},
-	{value: 0x01b8, lo: 0xa6, hi: 0xa6},
-	{value: 0x0057, lo: 0xaa, hi: 0xab},
-	// Block 0x3e, offset 0x3f
-	{value: 0x0007, lo: 0x05},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	{value: 0x3ba3, lo: 0x9a, hi: 0x9b},
-	{value: 0x3bb1, lo: 0xae, hi: 0xae},
-	// Block 0x3f, offset 0x40
-	{value: 0x000e, lo: 0x05},
-	{value: 0x3bb8, lo: 0x8d, hi: 0x8e},
-	{value: 0x3bbf, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	// Block 0x40, offset 0x41
-	{value: 0x4c1e, lo: 0x0a},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x3bcd, lo: 0x84, hi: 0x84},
-	{value: 0x8800, lo: 0x88, hi: 0x88},
-	{value: 0x3bd4, lo: 0x89, hi: 0x89},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x3bdb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8800, lo: 0xa3, hi: 0xa3},
-	{value: 0x3be2, lo: 0xa4, hi: 0xa5},
-	{value: 0x3be9, lo: 0xa6, hi: 0xa6},
-	{value: 0x8800, lo: 0xbc, hi: 0xbc},
-	// Block 0x41, offset 0x42
-	{value: 0x0007, lo: 0x03},
-	{value: 0x3c52, lo: 0xa0, hi: 0xa1},
-	{value: 0x3c7c, lo: 0xa2, hi: 0xa3},
-	{value: 0x3ca6, lo: 0xaa, hi: 0xad},
-	// Block 0x42, offset 0x43
-	{value: 0x0004, lo: 0x01},
-	{value: 0x04fd, lo: 0xa9, hi: 0xaa},
-	// Block 0x43, offset 0x44
-	{value: 0x0000, lo: 0x01},
-	{value: 0x44c3, lo: 0x9c, hi: 0x9c},
-	// Block 0x44, offset 0x45
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xaf, hi: 0xb1},
-	// Block 0x45, offset 0x46
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x46, offset 0x47
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xa0, hi: 0xbf},
-	// Block 0x47, offset 0x48
-	{value: 0x0000, lo: 0x05},
-	{value: 0x80da, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e4, lo: 0xab, hi: 0xab},
-	{value: 0x80e8, lo: 0xac, hi: 0xac},
-	{value: 0x80de, lo: 0xad, hi: 0xad},
-	{value: 0x80e0, lo: 0xae, hi: 0xaf},
-	// Block 0x48, offset 0x49
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0xaf, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb4, hi: 0xbd},
-	// Block 0x49, offset 0x4a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9f, hi: 0x9f},
-	// Block 0x4a, offset 0x4b
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb1},
-	// Block 0x4b, offset 0x4c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x86, hi: 0x86},
-	// Block 0x4c, offset 0x4d
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xa0, hi: 0xb1},
-	// Block 0x4d, offset 0x4e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xab, hi: 0xad},
-	// Block 0x4e, offset 0x4f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x93, hi: 0x93},
-	// Block 0x4f, offset 0x50
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb3, hi: 0xb3},
-	// Block 0x50, offset 0x51
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x80, hi: 0x80},
-	// Block 0x51, offset 0x52
-	{value: 0x0000, lo: 0x05},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbf},
-	// Block 0x52, offset 0x53
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	// Block 0x53, offset 0x54
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xad, hi: 0xad},
-	// Block 0x54, offset 0x55
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xbf},
-	// Block 0x55, offset 0x56
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xa3},
-	// Block 0x56, offset 0x57
-	{value: 0x0006, lo: 0x0d},
-	{value: 0x4376, lo: 0x9d, hi: 0x9d},
-	{value: 0x801a, lo: 0x9e, hi: 0x9e},
-	{value: 0x43e8, lo: 0x9f, hi: 0x9f},
-	{value: 0x43d6, lo: 0xaa, hi: 0xab},
-	{value: 0x44da, lo: 0xac, hi: 0xac},
-	{value: 0x44e2, lo: 0xad, hi: 0xad},
-	{value: 0x432e, lo: 0xae, hi: 0xb1},
-	{value: 0x434c, lo: 0xb2, hi: 0xb4},
-	{value: 0x4364, lo: 0xb5, hi: 0xb6},
-	{value: 0x4370, lo: 0xb8, hi: 0xb8},
-	{value: 0x437c, lo: 0xb9, hi: 0xbb},
-	{value: 0x4394, lo: 0xbc, hi: 0xbc},
-	{value: 0x439a, lo: 0xbe, hi: 0xbe},
-	// Block 0x57, offset 0x58
-	{value: 0x0006, lo: 0x08},
-	{value: 0x43a0, lo: 0x80, hi: 0x81},
-	{value: 0x43ac, lo: 0x83, hi: 0x84},
-	{value: 0x43be, lo: 0x86, hi: 0x89},
-	{value: 0x43e2, lo: 0x8a, hi: 0x8a},
-	{value: 0x435e, lo: 0x8b, hi: 0x8b},
-	{value: 0x4346, lo: 0x8c, hi: 0x8c},
-	{value: 0x438e, lo: 0x8d, hi: 0x8d},
-	{value: 0x43b8, lo: 0x8e, hi: 0x8e},
-	// Block 0x58, offset 0x59
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xa0, hi: 0xa6},
-	// Block 0x59, offset 0x5a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	// Block 0x5a, offset 0x5b
-	{value: 0x00db, lo: 0x05},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x8f, hi: 0x8f},
-	{value: 0x80e6, lo: 0xb8, hi: 0xb8},
-	{value: 0x8001, lo: 0xb9, hi: 0xba},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x5b, offset 0x5c
-	{value: 0x05fe, lo: 0x07},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x4222, lo: 0x9a, hi: 0x9a},
-	{value: 0x8800, lo: 0x9b, hi: 0x9b},
-	{value: 0x422c, lo: 0x9c, hi: 0x9c},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x4236, lo: 0xab, hi: 0xab},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x5c, offset 0x5d
-	{value: 0x0000, lo: 0x06},
-	{value: 0x80e6, lo: 0x80, hi: 0x82},
-	{value: 0x8600, lo: 0xa7, hi: 0xa7},
-	{value: 0x1993, lo: 0xae, hi: 0xae},
-	{value: 0x199c, lo: 0xaf, hi: 0xaf},
-	{value: 0x8800, lo: 0xb1, hi: 0xb2},
-	{value: 0x8009, lo: 0xb3, hi: 0xb4},
-	// Block 0x5d, offset 0x5e
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x5e, offset 0x5f
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x45b2, lo: 0x9e, hi: 0x9e},
-	{value: 0x45bc, lo: 0x9f, hi: 0x9f},
-	{value: 0x45f0, lo: 0xa0, hi: 0xa0},
-	{value: 0x45fe, lo: 0xa1, hi: 0xa1},
-	{value: 0x460c, lo: 0xa2, hi: 0xa2},
-	{value: 0x461a, lo: 0xa3, hi: 0xa3},
-	{value: 0x4628, lo: 0xa4, hi: 0xa4},
-	{value: 0x80d8, lo: 0xa5, hi: 0xa6},
-	{value: 0x8001, lo: 0xa7, hi: 0xa9},
-	{value: 0x80e2, lo: 0xad, hi: 0xad},
-	{value: 0x80d8, lo: 0xae, hi: 0xb2},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbf},
-	// Block 0x5f, offset 0x60
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80dc, lo: 0x80, hi: 0x82},
-	{value: 0x80e6, lo: 0x85, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8b},
-	{value: 0x80e6, lo: 0xaa, hi: 0xad},
-	{value: 0x45c6, lo: 0xbb, hi: 0xbb},
-	{value: 0x45d0, lo: 0xbc, hi: 0xbc},
-	{value: 0x4636, lo: 0xbd, hi: 0xbd},
-	{value: 0x4652, lo: 0xbe, hi: 0xbe},
-	{value: 0x4644, lo: 0xbf, hi: 0xbf},
-	// Block 0x60, offset 0x61
-	{value: 0x0000, lo: 0x01},
-	{value: 0x4660, lo: 0x80, hi: 0x80},
-	// Block 0x61, offset 0x62
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x82, hi: 0x84},
-}
-
-// nfcLookup: 1088 bytes
-// Block 0 is the null block.
-var nfcLookup = [1088]uint8{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0c2: 0x2c, 0x0c3: 0x01, 0x0c4: 0x02, 0x0c5: 0x03, 0x0c6: 0x2d, 0x0c7: 0x04,
-	0x0c8: 0x05, 0x0ca: 0x2e, 0x0cc: 0x06, 0x0cd: 0x07, 0x0ce: 0x08, 0x0cf: 0x2f,
-	0x0d0: 0x09, 0x0d1: 0x30, 0x0d2: 0x31, 0x0d3: 0x0a, 0x0d6: 0x0b, 0x0d7: 0x32,
-	0x0d8: 0x33, 0x0d9: 0x0c, 0x0db: 0x34, 0x0dc: 0x35, 0x0dd: 0x36, 0x0df: 0x37,
-	0x0e0: 0x02, 0x0e1: 0x03, 0x0e2: 0x04, 0x0e3: 0x05,
-	0x0ea: 0x06, 0x0eb: 0x07, 0x0ec: 0x07, 0x0ed: 0x08, 0x0ef: 0x09,
-	0x0f0: 0x0e,
-	// Block 0x4, offset 0x100
-	0x120: 0x38, 0x121: 0x39, 0x123: 0x3a, 0x124: 0x3b, 0x125: 0x3c, 0x126: 0x3d, 0x127: 0x3e,
-	0x128: 0x3f, 0x129: 0x40, 0x12a: 0x41, 0x12b: 0x42, 0x12c: 0x3d, 0x12d: 0x43, 0x12e: 0x44, 0x12f: 0x45,
-	0x131: 0x46, 0x132: 0x47, 0x133: 0x48, 0x134: 0x49, 0x135: 0x4a, 0x137: 0x4b,
-	0x138: 0x4c, 0x139: 0x4d, 0x13a: 0x4e, 0x13b: 0x4f, 0x13c: 0x50, 0x13d: 0x51, 0x13e: 0x52, 0x13f: 0x53,
-	// Block 0x5, offset 0x140
-	0x140: 0x54, 0x142: 0x55, 0x144: 0x56, 0x145: 0x57, 0x146: 0x58, 0x147: 0x59,
-	0x14d: 0x5a,
-	0x15c: 0x5b, 0x15f: 0x5c,
-	0x162: 0x5d, 0x164: 0x5e,
-	0x168: 0x5f, 0x169: 0x60, 0x16c: 0x0d, 0x16d: 0x61, 0x16e: 0x62, 0x16f: 0x63,
-	0x170: 0x64, 0x173: 0x65, 0x177: 0x66,
-	0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15,
-	// Block 0x6, offset 0x180
-	0x180: 0x67, 0x183: 0x68, 0x184: 0x69, 0x186: 0x6a, 0x187: 0x6b,
-	0x188: 0x6c, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6d, 0x18c: 0x6e,
-	0x1ab: 0x6f,
-	0x1b3: 0x70, 0x1b5: 0x71, 0x1b7: 0x72,
-	// Block 0x7, offset 0x1c0
-	0x1c0: 0x73, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a,
-	// Block 0x8, offset 0x200
-	0x219: 0x74, 0x21a: 0x75, 0x21b: 0x76,
-	0x220: 0x77, 0x223: 0x78, 0x224: 0x79, 0x225: 0x7a, 0x226: 0x7b, 0x227: 0x7c,
-	0x22a: 0x7d, 0x22b: 0x7e, 0x22f: 0x7f,
-	0x230: 0x80, 0x231: 0x80, 0x232: 0x80, 0x233: 0x80, 0x234: 0x80, 0x235: 0x80, 0x236: 0x80, 0x237: 0x80,
-	0x238: 0x80, 0x239: 0x80, 0x23a: 0x80, 0x23b: 0x80, 0x23c: 0x80, 0x23d: 0x80, 0x23e: 0x80, 0x23f: 0x80,
-	// Block 0x9, offset 0x240
-	0x240: 0x80, 0x241: 0x80, 0x242: 0x80, 0x243: 0x80, 0x244: 0x80, 0x245: 0x80, 0x246: 0x80, 0x247: 0x80,
-	0x248: 0x80, 0x249: 0x80, 0x24a: 0x80, 0x24b: 0x80, 0x24c: 0x80, 0x24d: 0x80, 0x24e: 0x80, 0x24f: 0x80,
-	0x250: 0x80, 0x251: 0x80, 0x252: 0x80, 0x253: 0x80, 0x254: 0x80, 0x255: 0x80, 0x256: 0x80, 0x257: 0x80,
-	0x258: 0x80, 0x259: 0x80, 0x25a: 0x80, 0x25b: 0x80, 0x25c: 0x80, 0x25d: 0x80, 0x25e: 0x80, 0x25f: 0x80,
-	0x260: 0x80, 0x261: 0x80, 0x262: 0x80, 0x263: 0x80, 0x264: 0x80, 0x265: 0x80, 0x266: 0x80, 0x267: 0x80,
-	0x268: 0x80, 0x269: 0x80, 0x26a: 0x80, 0x26b: 0x80, 0x26c: 0x80, 0x26d: 0x80, 0x26e: 0x80, 0x26f: 0x80,
-	0x270: 0x80, 0x271: 0x80, 0x272: 0x80, 0x273: 0x80, 0x274: 0x80, 0x275: 0x80, 0x276: 0x80, 0x277: 0x80,
-	0x278: 0x80, 0x279: 0x80, 0x27a: 0x80, 0x27b: 0x80, 0x27c: 0x80, 0x27d: 0x80, 0x27e: 0x80, 0x27f: 0x80,
-	// Block 0xa, offset 0x280
-	0x280: 0x80, 0x281: 0x80, 0x282: 0x80, 0x283: 0x80, 0x284: 0x80, 0x285: 0x80, 0x286: 0x80, 0x287: 0x80,
-	0x288: 0x80, 0x289: 0x80, 0x28a: 0x80, 0x28b: 0x80, 0x28c: 0x80, 0x28d: 0x80, 0x28e: 0x80, 0x28f: 0x80,
-	0x290: 0x80, 0x291: 0x80, 0x292: 0x80, 0x293: 0x80, 0x294: 0x80, 0x295: 0x80, 0x296: 0x80, 0x297: 0x80,
-	0x298: 0x80, 0x299: 0x80, 0x29a: 0x80, 0x29b: 0x80, 0x29c: 0x80, 0x29d: 0x80, 0x29e: 0x81,
-	// Block 0xb, offset 0x2c0
-	0x2e4: 0x1b, 0x2e5: 0x1c, 0x2e6: 0x1d, 0x2e7: 0x1e,
-	0x2e8: 0x1f, 0x2e9: 0x20, 0x2ea: 0x21, 0x2eb: 0x22, 0x2ec: 0x82, 0x2ed: 0x83,
-	0x2f8: 0x84,
-	// Block 0xc, offset 0x300
-	0x307: 0x85,
-	0x328: 0x86,
-	// Block 0xd, offset 0x340
-	0x341: 0x77, 0x342: 0x87, 0x344: 0x88, 0x347: 0x7c,
-	0x35a: 0x89,
-	// Block 0xe, offset 0x380
-	0x385: 0x8a, 0x386: 0x8b, 0x387: 0x8c,
-	0x389: 0x8d,
-	// Block 0xf, offset 0x3c0
-	0x3e0: 0x23, 0x3e1: 0x24, 0x3e2: 0x25, 0x3e3: 0x26, 0x3e4: 0x27, 0x3e5: 0x28, 0x3e6: 0x29, 0x3e7: 0x2a,
-	0x3e8: 0x2b,
-	// Block 0x10, offset 0x400
-	0x410: 0x0a, 0x411: 0x0b,
-	0x41d: 0x0c,
-	0x42f: 0x0d,
-}
-
-var nfcTrie = trie{nfcLookup[:], nfcValues[:], nfcSparseValues[:], nfcSparseOffset[:], 44}
-
-// nfkcValues: 5760 entries, 11520 bytes
-// Block 2 is the null block.
-var nfkcValues = [5760]uint16{
-	// Block 0x0, offset 0x0
-	0x003c: 0x8800, 0x003d: 0x8800, 0x003e: 0x8800,
-	// Block 0x1, offset 0x40
-	0x0041: 0x8800, 0x0042: 0x8800, 0x0043: 0x8800, 0x0044: 0x8800, 0x0045: 0x8800,
-	0x0046: 0x8800, 0x0047: 0x8800, 0x0048: 0x8800, 0x0049: 0x8800, 0x004a: 0x8800, 0x004b: 0x8800,
-	0x004c: 0x8800, 0x004d: 0x8800, 0x004e: 0x8800, 0x004f: 0x8800, 0x0050: 0x8800,
-	0x0052: 0x8800, 0x0053: 0x8800, 0x0054: 0x8800, 0x0055: 0x8800, 0x0056: 0x8800, 0x0057: 0x8800,
-	0x0058: 0x8800, 0x0059: 0x8800, 0x005a: 0x8800,
-	0x0061: 0x8800, 0x0062: 0x8800, 0x0063: 0x8800,
-	0x0064: 0x8800, 0x0065: 0x8800, 0x0066: 0x8800, 0x0067: 0x8800, 0x0068: 0x8800, 0x0069: 0x8800,
-	0x006a: 0x8800, 0x006b: 0x8800, 0x006c: 0x8800, 0x006d: 0x8800, 0x006e: 0x8800, 0x006f: 0x8800,
-	0x0070: 0x8800, 0x0072: 0x8800, 0x0073: 0x8800, 0x0074: 0x8800, 0x0075: 0x8800,
-	0x0076: 0x8800, 0x0077: 0x8800, 0x0078: 0x8800, 0x0079: 0x8800, 0x007a: 0x8800,
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x00c0: 0x2f59, 0x00c1: 0x2f5e, 0x00c2: 0x466e, 0x00c3: 0x2f63, 0x00c4: 0x467d, 0x00c5: 0x4682,
-	0x00c6: 0x8800, 0x00c7: 0x468c, 0x00c8: 0x2fcc, 0x00c9: 0x2fd1, 0x00ca: 0x4691, 0x00cb: 0x2fe5,
-	0x00cc: 0x3058, 0x00cd: 0x305d, 0x00ce: 0x3062, 0x00cf: 0x46a5, 0x00d1: 0x30ee,
-	0x00d2: 0x3111, 0x00d3: 0x3116, 0x00d4: 0x46af, 0x00d5: 0x46b4, 0x00d6: 0x46c3,
-	0x00d8: 0x8800, 0x00d9: 0x319d, 0x00da: 0x31a2, 0x00db: 0x31a7, 0x00dc: 0x46f5, 0x00dd: 0x321f,
-	0x00e0: 0x3265, 0x00e1: 0x326a, 0x00e2: 0x46ff, 0x00e3: 0x326f,
-	0x00e4: 0x470e, 0x00e5: 0x4713, 0x00e6: 0x8800, 0x00e7: 0x471d, 0x00e8: 0x32d8, 0x00e9: 0x32dd,
-	0x00ea: 0x4722, 0x00eb: 0x32f1, 0x00ec: 0x3369, 0x00ed: 0x336e, 0x00ee: 0x3373, 0x00ef: 0x4736,
-	0x00f1: 0x33ff, 0x00f2: 0x3422, 0x00f3: 0x3427, 0x00f4: 0x4740, 0x00f5: 0x4745,
-	0x00f6: 0x4754, 0x00f8: 0x8800, 0x00f9: 0x34b3, 0x00fa: 0x34b8, 0x00fb: 0x34bd,
-	0x00fc: 0x4786, 0x00fd: 0x353a, 0x00ff: 0x3553,
-	// Block 0x4, offset 0x100
-	0x0100: 0x2f68, 0x0101: 0x3274, 0x0102: 0x4673, 0x0103: 0x4704, 0x0104: 0x2f86, 0x0105: 0x3292,
-	0x0106: 0x2f9a, 0x0107: 0x32a6, 0x0108: 0x2f9f, 0x0109: 0x32ab, 0x010a: 0x2fa4, 0x010b: 0x32b0,
-	0x010c: 0x2fa9, 0x010d: 0x32b5, 0x010e: 0x2fb3, 0x010f: 0x32bf,
-	0x0112: 0x4696, 0x0113: 0x4727, 0x0114: 0x2fdb, 0x0115: 0x32e7, 0x0116: 0x2fe0, 0x0117: 0x32ec,
-	0x0118: 0x2ffe, 0x0119: 0x330a, 0x011a: 0x2fef, 0x011b: 0x32fb, 0x011c: 0x3017, 0x011d: 0x3323,
-	0x011e: 0x3021, 0x011f: 0x332d, 0x0120: 0x3026, 0x0121: 0x3332, 0x0122: 0x3030, 0x0123: 0x333c,
-	0x0124: 0x3035, 0x0125: 0x3341, 0x0128: 0x3067, 0x0129: 0x3378,
-	0x012a: 0x306c, 0x012b: 0x337d, 0x012c: 0x3071, 0x012d: 0x3382, 0x012e: 0x3094, 0x012f: 0x33a0,
-	0x0130: 0x3076, 0x0132: 0x1a9f, 0x0133: 0x1b29, 0x0134: 0x309e, 0x0135: 0x33aa,
-	0x0136: 0x30b2, 0x0137: 0x33c3, 0x0139: 0x30bc, 0x013a: 0x33cd, 0x013b: 0x30c6,
-	0x013c: 0x33d7, 0x013d: 0x30c1, 0x013e: 0x33d2, 0x013f: 0x1cee,
-	// Block 0x5, offset 0x140
-	0x0140: 0x1d76, 0x0143: 0x30e9, 0x0144: 0x33fa, 0x0145: 0x3102,
-	0x0146: 0x3413, 0x0147: 0x30f8, 0x0148: 0x3409, 0x0149: 0x1d9e,
-	0x014c: 0x46b9, 0x014d: 0x474a, 0x014e: 0x311b, 0x014f: 0x342c, 0x0150: 0x3125, 0x0151: 0x3436,
-	0x0154: 0x3143, 0x0155: 0x3454, 0x0156: 0x315c, 0x0157: 0x346d,
-	0x0158: 0x314d, 0x0159: 0x345e, 0x015a: 0x46dc, 0x015b: 0x476d, 0x015c: 0x3166, 0x015d: 0x3477,
-	0x015e: 0x3175, 0x015f: 0x3486, 0x0160: 0x46e1, 0x0161: 0x4772, 0x0162: 0x318e, 0x0163: 0x34a4,
-	0x0164: 0x317f, 0x0165: 0x3495, 0x0168: 0x46eb, 0x0169: 0x477c,
-	0x016a: 0x46f0, 0x016b: 0x4781, 0x016c: 0x31ac, 0x016d: 0x34c2, 0x016e: 0x31b6, 0x016f: 0x34cc,
-	0x0170: 0x31bb, 0x0171: 0x34d1, 0x0172: 0x31d9, 0x0173: 0x34ef, 0x0174: 0x31fc, 0x0175: 0x3512,
-	0x0176: 0x3224, 0x0177: 0x353f, 0x0178: 0x3238, 0x0179: 0x3247, 0x017a: 0x3567, 0x017b: 0x3251,
-	0x017c: 0x3571, 0x017d: 0x3256, 0x017e: 0x3576, 0x017f: 0x00a7,
-	// Block 0x6, offset 0x180
-	0x0184: 0x2e7f, 0x0185: 0x2e85,
-	0x0186: 0x2e8b, 0x0187: 0x1ab4, 0x0188: 0x1ab7, 0x0189: 0x1b4a, 0x018a: 0x1ac9, 0x018b: 0x1acc,
-	0x018c: 0x1b80, 0x018d: 0x2f72, 0x018e: 0x327e, 0x018f: 0x3080, 0x0190: 0x338c, 0x0191: 0x312a,
-	0x0192: 0x343b, 0x0193: 0x31c0, 0x0194: 0x34d6, 0x0195: 0x39b9, 0x0196: 0x3b48, 0x0197: 0x39b2,
-	0x0198: 0x3b41, 0x0199: 0x39c0, 0x019a: 0x3b4f, 0x019b: 0x39ab, 0x019c: 0x3b3a,
-	0x019e: 0x389a, 0x019f: 0x3a29, 0x01a0: 0x3893, 0x01a1: 0x3a22, 0x01a2: 0x359d, 0x01a3: 0x35af,
-	0x01a6: 0x302b, 0x01a7: 0x3337, 0x01a8: 0x30a8, 0x01a9: 0x33b9,
-	0x01aa: 0x46d2, 0x01ab: 0x4763, 0x01ac: 0x397a, 0x01ad: 0x3b09, 0x01ae: 0x35c1, 0x01af: 0x35c7,
-	0x01b0: 0x33af, 0x01b1: 0x1a84, 0x01b2: 0x1a87, 0x01b3: 0x1b11, 0x01b4: 0x3012, 0x01b5: 0x331e,
-	0x01b8: 0x30e4, 0x01b9: 0x33f5, 0x01ba: 0x38a1, 0x01bb: 0x3a30,
-	0x01bc: 0x3597, 0x01bd: 0x35a9, 0x01be: 0x35a3, 0x01bf: 0x35b5,
-	// Block 0x7, offset 0x1c0
-	0x01c0: 0x2f77, 0x01c1: 0x3283, 0x01c2: 0x2f7c, 0x01c3: 0x3288, 0x01c4: 0x2ff4, 0x01c5: 0x3300,
-	0x01c6: 0x2ff9, 0x01c7: 0x3305, 0x01c8: 0x3085, 0x01c9: 0x3391, 0x01ca: 0x308a, 0x01cb: 0x3396,
-	0x01cc: 0x312f, 0x01cd: 0x3440, 0x01ce: 0x3134, 0x01cf: 0x3445, 0x01d0: 0x3152, 0x01d1: 0x3463,
-	0x01d2: 0x3157, 0x01d3: 0x3468, 0x01d4: 0x31c5, 0x01d5: 0x34db, 0x01d6: 0x31ca, 0x01d7: 0x34e0,
-	0x01d8: 0x3170, 0x01d9: 0x3481, 0x01da: 0x3189, 0x01db: 0x349f,
-	0x01de: 0x3044, 0x01df: 0x3350,
-	0x01e6: 0x4678, 0x01e7: 0x4709, 0x01e8: 0x46a0, 0x01e9: 0x4731,
-	0x01ea: 0x3949, 0x01eb: 0x3ad8, 0x01ec: 0x3926, 0x01ed: 0x3ab5, 0x01ee: 0x46be, 0x01ef: 0x474f,
-	0x01f0: 0x3942, 0x01f1: 0x3ad1, 0x01f2: 0x322e, 0x01f3: 0x3549,
-	// Block 0x8, offset 0x200
-	0x0200: 0x86e6, 0x0201: 0x86e6, 0x0202: 0x86e6, 0x0203: 0x86e6, 0x0204: 0x86e6, 0x0205: 0x80e6,
-	0x0206: 0x86e6, 0x0207: 0x86e6, 0x0208: 0x86e6, 0x0209: 0x86e6, 0x020a: 0x86e6, 0x020b: 0x86e6,
-	0x020c: 0x86e6, 0x020d: 0x80e6, 0x020e: 0x80e6, 0x020f: 0x86e6, 0x0210: 0x80e6, 0x0211: 0x86e6,
-	0x0212: 0x80e6, 0x0213: 0x86e6, 0x0214: 0x86e6, 0x0215: 0x80e8, 0x0216: 0x80dc, 0x0217: 0x80dc,
-	0x0218: 0x80dc, 0x0219: 0x80dc, 0x021a: 0x80e8, 0x021b: 0x86d8, 0x021c: 0x80dc, 0x021d: 0x80dc,
-	0x021e: 0x80dc, 0x021f: 0x80dc, 0x0220: 0x80dc, 0x0221: 0x80ca, 0x0222: 0x80ca, 0x0223: 0x86dc,
-	0x0224: 0x86dc, 0x0225: 0x86dc, 0x0226: 0x86dc, 0x0227: 0x86ca, 0x0228: 0x86ca, 0x0229: 0x80dc,
-	0x022a: 0x80dc, 0x022b: 0x80dc, 0x022c: 0x80dc, 0x022d: 0x86dc, 0x022e: 0x86dc, 0x022f: 0x80dc,
-	0x0230: 0x86dc, 0x0231: 0x86dc, 0x0232: 0x80dc, 0x0233: 0x80dc, 0x0234: 0x8001, 0x0235: 0x8001,
-	0x0236: 0x8001, 0x0237: 0x8001, 0x0238: 0x8601, 0x0239: 0x80dc, 0x023a: 0x80dc, 0x023b: 0x80dc,
-	0x023c: 0x80dc, 0x023d: 0x80e6, 0x023e: 0x80e6, 0x023f: 0x80e6,
-	// Block 0x9, offset 0x240
-	0x0240: 0x4994, 0x0241: 0x4999, 0x0242: 0x86e6, 0x0243: 0x499e, 0x0244: 0x49a3, 0x0245: 0x86f0,
-	0x0246: 0x80e6, 0x0247: 0x80dc, 0x0248: 0x80dc, 0x0249: 0x80dc, 0x024a: 0x80e6, 0x024b: 0x80e6,
-	0x024c: 0x80e6, 0x024d: 0x80dc, 0x024e: 0x80dc, 0x0250: 0x80e6, 0x0251: 0x80e6,
-	0x0252: 0x80e6, 0x0253: 0x80dc, 0x0254: 0x80dc, 0x0255: 0x80dc, 0x0256: 0x80dc, 0x0257: 0x80e6,
-	0x0258: 0x80e8, 0x0259: 0x80dc, 0x025a: 0x80dc, 0x025b: 0x80e6, 0x025c: 0x80e9, 0x025d: 0x80ea,
-	0x025e: 0x80ea, 0x025f: 0x80e9, 0x0260: 0x80ea, 0x0261: 0x80ea, 0x0262: 0x80e9, 0x0263: 0x80e6,
-	0x0264: 0x80e6, 0x0265: 0x80e6, 0x0266: 0x80e6, 0x0267: 0x80e6, 0x0268: 0x80e6, 0x0269: 0x80e6,
-	0x026a: 0x80e6, 0x026b: 0x80e6, 0x026c: 0x80e6, 0x026d: 0x80e6, 0x026e: 0x80e6, 0x026f: 0x80e6,
-	0x0274: 0x0170,
-	0x027a: 0x428b,
-	0x027e: 0x0037,
-	// Block 0xa, offset 0x280
-	0x0284: 0x4240, 0x0285: 0x4461,
-	0x0286: 0x35d3, 0x0287: 0x00d1, 0x0288: 0x35f1, 0x0289: 0x35fd, 0x028a: 0x360f,
-	0x028c: 0x362d, 0x028e: 0x363f, 0x028f: 0x365d, 0x0290: 0x3df2, 0x0291: 0x8800,
-	0x0295: 0x8800, 0x0297: 0x8800,
-	0x0299: 0x8800,
-	0x029f: 0x8800, 0x02a1: 0x8800,
-	0x02a5: 0x8800, 0x02a9: 0x8800,
-	0x02aa: 0x3621, 0x02ab: 0x3651, 0x02ac: 0x47e4, 0x02ad: 0x3681, 0x02ae: 0x480e, 0x02af: 0x3693,
-	0x02b0: 0x3e5a, 0x02b1: 0x8800, 0x02b5: 0x8800,
-	0x02b7: 0x8800, 0x02b9: 0x8800,
-	0x02bf: 0x8800,
-	// Block 0xb, offset 0x2c0
-	0x02c1: 0x8800, 0x02c5: 0x8800,
-	0x02c9: 0x8800, 0x02ca: 0x4826, 0x02cb: 0x4844,
-	0x02cc: 0x36b1, 0x02cd: 0x36c9, 0x02ce: 0x485c, 0x02d0: 0x01be, 0x02d1: 0x01d0,
-	0x02d2: 0x01ac, 0x02d3: 0x42f2, 0x02d4: 0x42f8, 0x02d5: 0x01fa, 0x02d6: 0x01e8,
-	0x02f0: 0x01d6, 0x02f1: 0x01eb, 0x02f2: 0x01ee, 0x02f4: 0x0188, 0x02f5: 0x01c7,
-	0x02f9: 0x01a6,
-	// Block 0xc, offset 0x300
-	0x0300: 0x370b, 0x0301: 0x3717, 0x0303: 0x3705,
-	0x0306: 0x8800, 0x0307: 0x36f3,
-	0x030c: 0x3747, 0x030d: 0x372f, 0x030e: 0x3759, 0x0310: 0x8800,
-	0x0313: 0x8800, 0x0315: 0x8800, 0x0316: 0x8800, 0x0317: 0x8800,
-	0x0318: 0x8800, 0x0319: 0x373b, 0x031a: 0x8800,
-	0x031e: 0x8800, 0x0323: 0x8800,
-	0x0327: 0x8800,
-	0x032b: 0x8800, 0x032d: 0x8800,
-	0x0330: 0x8800, 0x0333: 0x8800, 0x0335: 0x8800,
-	0x0336: 0x8800, 0x0337: 0x8800, 0x0338: 0x8800, 0x0339: 0x37bf, 0x033a: 0x8800,
-	0x033e: 0x8800,
-	// Block 0xd, offset 0x340
-	0x0341: 0x371d, 0x0342: 0x37a1,
-	0x0350: 0x36f9, 0x0351: 0x377d,
-	0x0352: 0x36ff, 0x0353: 0x3783, 0x0356: 0x3711, 0x0357: 0x3795,
-	0x0358: 0x8800, 0x0359: 0x8800, 0x035a: 0x3813, 0x035b: 0x3819, 0x035c: 0x3723, 0x035d: 0x37a7,
-	0x035e: 0x3729, 0x035f: 0x37ad, 0x0362: 0x3735, 0x0363: 0x37b9,
-	0x0364: 0x3741, 0x0365: 0x37c5, 0x0366: 0x374d, 0x0367: 0x37d1, 0x0368: 0x8800, 0x0369: 0x8800,
-	0x036a: 0x381f, 0x036b: 0x3825, 0x036c: 0x3777, 0x036d: 0x37fb, 0x036e: 0x3753, 0x036f: 0x37d7,
-	0x0370: 0x375f, 0x0371: 0x37e3, 0x0372: 0x3765, 0x0373: 0x37e9, 0x0374: 0x376b, 0x0375: 0x37ef,
-	0x0378: 0x3771, 0x0379: 0x37f5,
-	// Block 0xe, offset 0x380
-	0x0387: 0x1ea3,
-	0x0391: 0x80dc,
-	0x0392: 0x80e6, 0x0393: 0x80e6, 0x0394: 0x80e6, 0x0395: 0x80e6, 0x0396: 0x80dc, 0x0397: 0x80e6,
-	0x0398: 0x80e6, 0x0399: 0x80e6, 0x039a: 0x80de, 0x039b: 0x80dc, 0x039c: 0x80e6, 0x039d: 0x80e6,
-	0x039e: 0x80e6, 0x039f: 0x80e6, 0x03a0: 0x80e6, 0x03a1: 0x80e6, 0x03a2: 0x80dc, 0x03a3: 0x80dc,
-	0x03a4: 0x80dc, 0x03a5: 0x80dc, 0x03a6: 0x80dc, 0x03a7: 0x80dc, 0x03a8: 0x80e6, 0x03a9: 0x80e6,
-	0x03aa: 0x80dc, 0x03ab: 0x80e6, 0x03ac: 0x80e6, 0x03ad: 0x80de, 0x03ae: 0x80e4, 0x03af: 0x80e6,
-	0x03b0: 0x800a, 0x03b1: 0x800b, 0x03b2: 0x800c, 0x03b3: 0x800d, 0x03b4: 0x800e, 0x03b5: 0x800f,
-	0x03b6: 0x8010, 0x03b7: 0x8011, 0x03b8: 0x8012, 0x03b9: 0x8013, 0x03ba: 0x8013, 0x03bb: 0x8014,
-	0x03bc: 0x8015, 0x03bd: 0x8016, 0x03bf: 0x8017,
-	// Block 0xf, offset 0x3c0
-	0x03c8: 0x8800, 0x03ca: 0x8800, 0x03cb: 0x801b,
-	0x03cc: 0x801c, 0x03cd: 0x801d, 0x03ce: 0x801e, 0x03cf: 0x801f, 0x03d0: 0x8020, 0x03d1: 0x8021,
-	0x03d2: 0x8022, 0x03d3: 0x86e6, 0x03d4: 0x86e6, 0x03d5: 0x86dc, 0x03d6: 0x80dc, 0x03d7: 0x80e6,
-	0x03d8: 0x80e6, 0x03d9: 0x80e6, 0x03da: 0x80e6, 0x03db: 0x80e6, 0x03dc: 0x80dc, 0x03dd: 0x80e6,
-	0x03de: 0x80e6, 0x03df: 0x80dc,
-	0x03f0: 0x8023, 0x03f5: 0x1ec6,
-	0x03f6: 0x2155, 0x03f7: 0x2191, 0x03f8: 0x218c,
-	// Block 0x10, offset 0x400
-	0x0405: 0x8800,
-	0x0406: 0x1946, 0x0407: 0x8800, 0x0408: 0x194d, 0x0409: 0x8800, 0x040a: 0x1954, 0x040b: 0x8800,
-	0x040c: 0x195b, 0x040d: 0x8800, 0x040e: 0x1962, 0x0411: 0x8800,
-	0x0412: 0x1969,
-	0x0434: 0x8007, 0x0435: 0x8600,
-	0x043a: 0x8800, 0x043b: 0x1970,
-	0x043c: 0x8800, 0x043d: 0x1977, 0x043e: 0x8800, 0x043f: 0x8800,
-	// Block 0x11, offset 0x440
-	0x0440: 0x0069, 0x0441: 0x006b, 0x0442: 0x006f, 0x0443: 0x0083, 0x0444: 0x00f8, 0x0445: 0x00fb,
-	0x0446: 0x0485, 0x0447: 0x0085, 0x0448: 0x0089, 0x0449: 0x008b, 0x044a: 0x0107, 0x044b: 0x010a,
-	0x044c: 0x010d, 0x044d: 0x008f, 0x044f: 0x0097, 0x0450: 0x009b, 0x0451: 0x00e3,
-	0x0452: 0x009f, 0x0453: 0x0101, 0x0454: 0x0489, 0x0455: 0x048d, 0x0456: 0x00a1, 0x0457: 0x00a9,
-	0x0458: 0x00ab, 0x0459: 0x0495, 0x045a: 0x012b, 0x045b: 0x00ad, 0x045c: 0x0499, 0x045d: 0x01be,
-	0x045e: 0x01c1, 0x045f: 0x01c4, 0x0460: 0x01fa, 0x0461: 0x01fd, 0x0462: 0x0093, 0x0463: 0x00a5,
-	0x0464: 0x00ab, 0x0465: 0x00ad, 0x0466: 0x01be, 0x0467: 0x01c1, 0x0468: 0x01eb, 0x0469: 0x01fa,
-	0x046a: 0x01fd,
-	0x0478: 0x020c,
-	// Block 0x12, offset 0x480
-	0x049b: 0x00fe, 0x049c: 0x0087, 0x049d: 0x0104,
-	0x049e: 0x00d7, 0x049f: 0x010d, 0x04a0: 0x008d, 0x04a1: 0x0110, 0x04a2: 0x0113, 0x04a3: 0x0119,
-	0x04a4: 0x011f, 0x04a5: 0x0122, 0x04a6: 0x0125, 0x04a7: 0x049d, 0x04a8: 0x016a, 0x04a9: 0x0128,
-	0x04aa: 0x04a1, 0x04ab: 0x016d, 0x04ac: 0x0131, 0x04ad: 0x012e, 0x04ae: 0x0134, 0x04af: 0x0137,
-	0x04b0: 0x013a, 0x04b1: 0x013d, 0x04b2: 0x0140, 0x04b3: 0x014c, 0x04b4: 0x014f, 0x04b5: 0x00ef,
-	0x04b6: 0x0152, 0x04b7: 0x0155, 0x04b8: 0x0491, 0x04b9: 0x0158, 0x04ba: 0x015b, 0x04bb: 0x00b5,
-	0x04bc: 0x015e, 0x04bd: 0x0161, 0x04be: 0x0164, 0x04bf: 0x01d0,
-	// Block 0x13, offset 0x4c0
-	0x04c0: 0x2f81, 0x04c1: 0x328d, 0x04c2: 0x2f8b, 0x04c3: 0x3297, 0x04c4: 0x2f90, 0x04c5: 0x329c,
-	0x04c6: 0x2f95, 0x04c7: 0x32a1, 0x04c8: 0x38b6, 0x04c9: 0x3a45, 0x04ca: 0x2fae, 0x04cb: 0x32ba,
-	0x04cc: 0x2fb8, 0x04cd: 0x32c4, 0x04ce: 0x2fc7, 0x04cf: 0x32d3, 0x04d0: 0x2fbd, 0x04d1: 0x32c9,
-	0x04d2: 0x2fc2, 0x04d3: 0x32ce, 0x04d4: 0x38d9, 0x04d5: 0x3a68, 0x04d6: 0x38e0, 0x04d7: 0x3a6f,
-	0x04d8: 0x3003, 0x04d9: 0x330f, 0x04da: 0x3008, 0x04db: 0x3314, 0x04dc: 0x38ee, 0x04dd: 0x3a7d,
-	0x04de: 0x300d, 0x04df: 0x3319, 0x04e0: 0x301c, 0x04e1: 0x3328, 0x04e2: 0x303a, 0x04e3: 0x3346,
-	0x04e4: 0x3049, 0x04e5: 0x3355, 0x04e6: 0x303f, 0x04e7: 0x334b, 0x04e8: 0x304e, 0x04e9: 0x335a,
-	0x04ea: 0x3053, 0x04eb: 0x335f, 0x04ec: 0x3099, 0x04ed: 0x33a5, 0x04ee: 0x38f5, 0x04ef: 0x3a84,
-	0x04f0: 0x30a3, 0x04f1: 0x33b4, 0x04f2: 0x30ad, 0x04f3: 0x33be, 0x04f4: 0x30b7, 0x04f5: 0x33c8,
-	0x04f6: 0x46aa, 0x04f7: 0x473b, 0x04f8: 0x38fc, 0x04f9: 0x3a8b, 0x04fa: 0x30d0, 0x04fb: 0x33e1,
-	0x04fc: 0x30cb, 0x04fd: 0x33dc, 0x04fe: 0x30d5, 0x04ff: 0x33e6,
-	// Block 0x14, offset 0x500
-	0x0500: 0x30da, 0x0501: 0x33eb, 0x0502: 0x30df, 0x0503: 0x33f0, 0x0504: 0x30f3, 0x0505: 0x3404,
-	0x0506: 0x30fd, 0x0507: 0x340e, 0x0508: 0x310c, 0x0509: 0x341d, 0x050a: 0x3107, 0x050b: 0x3418,
-	0x050c: 0x391f, 0x050d: 0x3aae, 0x050e: 0x392d, 0x050f: 0x3abc, 0x0510: 0x3934, 0x0511: 0x3ac3,
-	0x0512: 0x393b, 0x0513: 0x3aca, 0x0514: 0x3139, 0x0515: 0x344a, 0x0516: 0x313e, 0x0517: 0x344f,
-	0x0518: 0x3148, 0x0519: 0x3459, 0x051a: 0x46d7, 0x051b: 0x4768, 0x051c: 0x3981, 0x051d: 0x3b10,
-	0x051e: 0x3161, 0x051f: 0x3472, 0x0520: 0x316b, 0x0521: 0x347c, 0x0522: 0x46e6, 0x0523: 0x4777,
-	0x0524: 0x3988, 0x0525: 0x3b17, 0x0526: 0x398f, 0x0527: 0x3b1e, 0x0528: 0x3996, 0x0529: 0x3b25,
-	0x052a: 0x317a, 0x052b: 0x348b, 0x052c: 0x3184, 0x052d: 0x349a, 0x052e: 0x3198, 0x052f: 0x34ae,
-	0x0530: 0x3193, 0x0531: 0x34a9, 0x0532: 0x31d4, 0x0533: 0x34ea, 0x0534: 0x31e3, 0x0535: 0x34f9,
-	0x0536: 0x31de, 0x0537: 0x34f4, 0x0538: 0x399d, 0x0539: 0x3b2c, 0x053a: 0x39a4, 0x053b: 0x3b33,
-	0x053c: 0x31e8, 0x053d: 0x34fe, 0x053e: 0x31ed, 0x053f: 0x3503,
-	// Block 0x15, offset 0x540
-	0x0540: 0x31f2, 0x0541: 0x3508, 0x0542: 0x31f7, 0x0543: 0x350d, 0x0544: 0x3206, 0x0545: 0x351c,
-	0x0546: 0x3201, 0x0547: 0x3517, 0x0548: 0x320b, 0x0549: 0x3526, 0x054a: 0x3210, 0x054b: 0x352b,
-	0x054c: 0x3215, 0x054d: 0x3530, 0x054e: 0x3233, 0x054f: 0x354e, 0x0550: 0x324c, 0x0551: 0x356c,
-	0x0552: 0x325b, 0x0553: 0x357b, 0x0554: 0x3260, 0x0555: 0x3580, 0x0556: 0x3364, 0x0557: 0x3490,
-	0x0558: 0x3521, 0x0559: 0x355d, 0x055a: 0x1d22, 0x055b: 0x42bd,
-	0x0560: 0x4687, 0x0561: 0x4718, 0x0562: 0x2f6d, 0x0563: 0x3279,
-	0x0564: 0x3862, 0x0565: 0x39f1, 0x0566: 0x385b, 0x0567: 0x39ea, 0x0568: 0x3870, 0x0569: 0x39ff,
-	0x056a: 0x3869, 0x056b: 0x39f8, 0x056c: 0x38a8, 0x056d: 0x3a37, 0x056e: 0x387e, 0x056f: 0x3a0d,
-	0x0570: 0x3877, 0x0571: 0x3a06, 0x0572: 0x388c, 0x0573: 0x3a1b, 0x0574: 0x3885, 0x0575: 0x3a14,
-	0x0576: 0x38af, 0x0577: 0x3a3e, 0x0578: 0x469b, 0x0579: 0x472c, 0x057a: 0x2fea, 0x057b: 0x32f6,
-	0x057c: 0x2fd6, 0x057d: 0x32e2, 0x057e: 0x38c4, 0x057f: 0x3a53,
-	// Block 0x16, offset 0x580
-	0x0580: 0x38bd, 0x0581: 0x3a4c, 0x0582: 0x38d2, 0x0583: 0x3a61, 0x0584: 0x38cb, 0x0585: 0x3a5a,
-	0x0586: 0x38e7, 0x0587: 0x3a76, 0x0588: 0x307b, 0x0589: 0x3387, 0x058a: 0x308f, 0x058b: 0x339b,
-	0x058c: 0x46cd, 0x058d: 0x475e, 0x058e: 0x3120, 0x058f: 0x3431, 0x0590: 0x390a, 0x0591: 0x3a99,
-	0x0592: 0x3903, 0x0593: 0x3a92, 0x0594: 0x3918, 0x0595: 0x3aa7, 0x0596: 0x3911, 0x0597: 0x3aa0,
-	0x0598: 0x3973, 0x0599: 0x3b02, 0x059a: 0x3957, 0x059b: 0x3ae6, 0x059c: 0x3950, 0x059d: 0x3adf,
-	0x059e: 0x3965, 0x059f: 0x3af4, 0x05a0: 0x395e, 0x05a1: 0x3aed, 0x05a2: 0x396c, 0x05a3: 0x3afb,
-	0x05a4: 0x31cf, 0x05a5: 0x34e5, 0x05a6: 0x31b1, 0x05a7: 0x34c7, 0x05a8: 0x39ce, 0x05a9: 0x3b5d,
-	0x05aa: 0x39c7, 0x05ab: 0x3b56, 0x05ac: 0x39dc, 0x05ad: 0x3b6b, 0x05ae: 0x39d5, 0x05af: 0x3b64,
-	0x05b0: 0x39e3, 0x05b1: 0x3b72, 0x05b2: 0x321a, 0x05b3: 0x3535, 0x05b4: 0x3242, 0x05b5: 0x3562,
-	0x05b6: 0x323d, 0x05b7: 0x3558, 0x05b8: 0x3229, 0x05b9: 0x3544,
-	// Block 0x17, offset 0x5c0
-	0x05c0: 0x47ea, 0x05c1: 0x47f0, 0x05c2: 0x4904, 0x05c3: 0x491c, 0x05c4: 0x490c, 0x05c5: 0x4924,
-	0x05c6: 0x4914, 0x05c7: 0x492c, 0x05c8: 0x4790, 0x05c9: 0x4796, 0x05ca: 0x4874, 0x05cb: 0x488c,
-	0x05cc: 0x487c, 0x05cd: 0x4894, 0x05ce: 0x4884, 0x05cf: 0x489c, 0x05d0: 0x47fc, 0x05d1: 0x4802,
-	0x05d2: 0x3da2, 0x05d3: 0x3db2, 0x05d4: 0x3daa, 0x05d5: 0x3dba,
-	0x05d8: 0x479c, 0x05d9: 0x47a2, 0x05da: 0x3cd2, 0x05db: 0x3ce2, 0x05dc: 0x3cda, 0x05dd: 0x3cea,
-	0x05e0: 0x4814, 0x05e1: 0x481a, 0x05e2: 0x4934, 0x05e3: 0x494c,
-	0x05e4: 0x493c, 0x05e5: 0x4954, 0x05e6: 0x4944, 0x05e7: 0x495c, 0x05e8: 0x47a8, 0x05e9: 0x47ae,
-	0x05ea: 0x48a4, 0x05eb: 0x48bc, 0x05ec: 0x48ac, 0x05ed: 0x48c4, 0x05ee: 0x48b4, 0x05ef: 0x48cc,
-	0x05f0: 0x482c, 0x05f1: 0x4832, 0x05f2: 0x3e02, 0x05f3: 0x3e1a, 0x05f4: 0x3e0a, 0x05f5: 0x3e22,
-	0x05f6: 0x3e12, 0x05f7: 0x3e2a, 0x05f8: 0x47b4, 0x05f9: 0x47ba, 0x05fa: 0x3d02, 0x05fb: 0x3d1a,
-	0x05fc: 0x3d0a, 0x05fd: 0x3d22, 0x05fe: 0x3d12, 0x05ff: 0x3d2a,
-	// Block 0x18, offset 0x600
-	0x0600: 0x4838, 0x0601: 0x483e, 0x0602: 0x3e32, 0x0603: 0x3e42, 0x0604: 0x3e3a, 0x0605: 0x3e4a,
-	0x0608: 0x47c0, 0x0609: 0x47c6, 0x060a: 0x3d32, 0x060b: 0x3d42,
-	0x060c: 0x3d3a, 0x060d: 0x3d4a, 0x0610: 0x484a, 0x0611: 0x4850,
-	0x0612: 0x3e6a, 0x0613: 0x3e82, 0x0614: 0x3e72, 0x0615: 0x3e8a, 0x0616: 0x3e7a, 0x0617: 0x3e92,
-	0x0619: 0x47cc, 0x061b: 0x3d52, 0x061d: 0x3d5a,
-	0x061f: 0x3d62, 0x0620: 0x4862, 0x0621: 0x4868, 0x0622: 0x4964, 0x0623: 0x497c,
-	0x0624: 0x496c, 0x0625: 0x4984, 0x0626: 0x4974, 0x0627: 0x498c, 0x0628: 0x47d2, 0x0629: 0x47d8,
-	0x062a: 0x48d4, 0x062b: 0x48ec, 0x062c: 0x48dc, 0x062d: 0x48f4, 0x062e: 0x48e4, 0x062f: 0x48fc,
-	0x0630: 0x47de, 0x0631: 0x4304, 0x0632: 0x367b, 0x0633: 0x430a, 0x0634: 0x4808, 0x0635: 0x4310,
-	0x0636: 0x368d, 0x0637: 0x4316, 0x0638: 0x36ab, 0x0639: 0x431c, 0x063a: 0x36c3, 0x063b: 0x4322,
-	0x063c: 0x4856, 0x063d: 0x4328,
-	// Block 0x19, offset 0x640
-	0x0640: 0x3d8a, 0x0641: 0x3d92, 0x0642: 0x416e, 0x0643: 0x418c, 0x0644: 0x4178, 0x0645: 0x4196,
-	0x0646: 0x4182, 0x0647: 0x41a0, 0x0648: 0x3cc2, 0x0649: 0x3cca, 0x064a: 0x40ba, 0x064b: 0x40d8,
-	0x064c: 0x40c4, 0x064d: 0x40e2, 0x064e: 0x40ce, 0x064f: 0x40ec, 0x0650: 0x3dd2, 0x0651: 0x3dda,
-	0x0652: 0x41aa, 0x0653: 0x41c8, 0x0654: 0x41b4, 0x0655: 0x41d2, 0x0656: 0x41be, 0x0657: 0x41dc,
-	0x0658: 0x3cf2, 0x0659: 0x3cfa, 0x065a: 0x40f6, 0x065b: 0x4114, 0x065c: 0x4100, 0x065d: 0x411e,
-	0x065e: 0x410a, 0x065f: 0x4128, 0x0660: 0x3eaa, 0x0661: 0x3eb2, 0x0662: 0x41e6, 0x0663: 0x4204,
-	0x0664: 0x41f0, 0x0665: 0x420e, 0x0666: 0x41fa, 0x0667: 0x4218, 0x0668: 0x3d6a, 0x0669: 0x3d72,
-	0x066a: 0x4132, 0x066b: 0x4150, 0x066c: 0x413c, 0x066d: 0x415a, 0x066e: 0x4146, 0x066f: 0x4164,
-	0x0670: 0x366f, 0x0671: 0x3669, 0x0672: 0x3d7a, 0x0673: 0x3675, 0x0674: 0x3d82,
-	0x0676: 0x47f6, 0x0677: 0x3d9a, 0x0678: 0x35df, 0x0679: 0x35d9, 0x067a: 0x35cd, 0x067b: 0x42d4,
-	0x067c: 0x35e5, 0x067d: 0x426d, 0x067e: 0x01d3, 0x067f: 0x426d,
-	// Block 0x1a, offset 0x680
-	0x0680: 0x4286, 0x0681: 0x4468, 0x0682: 0x3dc2, 0x0683: 0x3687, 0x0684: 0x3dca,
-	0x0686: 0x4820, 0x0687: 0x3de2, 0x0688: 0x35eb, 0x0689: 0x42da, 0x068a: 0x35f7, 0x068b: 0x42e0,
-	0x068c: 0x3603, 0x068d: 0x446f, 0x068e: 0x4476, 0x068f: 0x447d, 0x0690: 0x369f, 0x0691: 0x3699,
-	0x0692: 0x3dea, 0x0693: 0x44ca, 0x0696: 0x36a5, 0x0697: 0x3dfa,
-	0x0698: 0x361b, 0x0699: 0x3615, 0x069a: 0x3609, 0x069b: 0x42e6, 0x069d: 0x4484,
-	0x069e: 0x448b, 0x069f: 0x4492, 0x06a0: 0x36d5, 0x06a1: 0x36cf, 0x06a2: 0x3e52, 0x06a3: 0x44d2,
-	0x06a4: 0x36b7, 0x06a5: 0x36bd, 0x06a6: 0x36db, 0x06a7: 0x3e62, 0x06a8: 0x364b, 0x06a9: 0x3645,
-	0x06aa: 0x3639, 0x06ab: 0x42f2, 0x06ac: 0x3633, 0x06ad: 0x445a, 0x06ae: 0x4461, 0x06af: 0x0081,
-	0x06b2: 0x3e9a, 0x06b3: 0x36e1, 0x06b4: 0x3ea2,
-	0x06b6: 0x486e, 0x06b7: 0x3eba, 0x06b8: 0x3627, 0x06b9: 0x42ec, 0x06ba: 0x3657, 0x06bb: 0x42fe,
-	0x06bc: 0x3663, 0x06bd: 0x4240, 0x06be: 0x4272,
-	// Block 0x1b, offset 0x6c0
-	0x06c0: 0x1d1a, 0x06c1: 0x1d1e, 0x06c2: 0x0047, 0x06c3: 0x1d96, 0x06c5: 0x1d2a,
-	0x06c6: 0x1d2e, 0x06c7: 0x00ec, 0x06c9: 0x1d9a, 0x06ca: 0x008f, 0x06cb: 0x0051,
-	0x06cc: 0x0051, 0x06cd: 0x0051, 0x06ce: 0x0091, 0x06cf: 0x00dd, 0x06d0: 0x0053, 0x06d1: 0x0053,
-	0x06d2: 0x0059, 0x06d3: 0x0099, 0x06d5: 0x005d, 0x06d6: 0x1acf,
-	0x06d9: 0x0061, 0x06da: 0x0063, 0x06db: 0x0065, 0x06dc: 0x0065, 0x06dd: 0x0065,
-	0x06e0: 0x1ae1, 0x06e1: 0x1d0a, 0x06e2: 0x1aea,
-	0x06e4: 0x0075, 0x06e6: 0x01b8, 0x06e8: 0x0075,
-	0x06ea: 0x0057, 0x06eb: 0x42b8, 0x06ec: 0x0045, 0x06ed: 0x0047, 0x06ef: 0x008b,
-	0x06f0: 0x004b, 0x06f1: 0x004d, 0x06f3: 0x005b, 0x06f4: 0x009f, 0x06f5: 0x020f,
-	0x06f6: 0x0212, 0x06f7: 0x0215, 0x06f8: 0x0218, 0x06f9: 0x0093, 0x06fb: 0x1cda,
-	0x06fc: 0x01e8, 0x06fd: 0x01c1, 0x06fe: 0x0179, 0x06ff: 0x01a0,
-	// Block 0x1c, offset 0x700
-	0x0700: 0x04d5, 0x0705: 0x0049,
-	0x0706: 0x0089, 0x0707: 0x008b, 0x0708: 0x0093, 0x0709: 0x0095,
-	0x0710: 0x2370, 0x0711: 0x237c,
-	0x0712: 0x2430, 0x0713: 0x2358, 0x0714: 0x23dc, 0x0715: 0x2364, 0x0716: 0x23e2, 0x0717: 0x23fa,
-	0x0718: 0x2406, 0x0719: 0x236a, 0x071a: 0x240c, 0x071b: 0x2376, 0x071c: 0x2400, 0x071d: 0x2412,
-	0x071e: 0x2418, 0x071f: 0x1dfe, 0x0720: 0x0053, 0x0721: 0x1a9c, 0x0722: 0x1ce6, 0x0723: 0x1aa5,
-	0x0724: 0x006d, 0x0725: 0x1aed, 0x0726: 0x1d12, 0x0727: 0x1e8a, 0x0728: 0x1aa8, 0x0729: 0x0071,
-	0x072a: 0x1af9, 0x072b: 0x1d16, 0x072c: 0x0059, 0x072d: 0x0047, 0x072e: 0x0049, 0x072f: 0x005b,
-	0x0730: 0x0093, 0x0731: 0x1b26, 0x0732: 0x1d5a, 0x0733: 0x1b2f, 0x0734: 0x00ad, 0x0735: 0x1ba4,
-	0x0736: 0x1d8e, 0x0737: 0x1e9e, 0x0738: 0x1b32, 0x0739: 0x00b1, 0x073a: 0x1ba7, 0x073b: 0x1d92,
-	0x073c: 0x0099, 0x073d: 0x0087, 0x073e: 0x0089, 0x073f: 0x009b,
-	// Block 0x1d, offset 0x740
-	0x0741: 0x3bf0, 0x0743: 0x8800, 0x0744: 0x3bf7, 0x0745: 0x8800,
-	0x0747: 0x3bfe, 0x0748: 0x8800, 0x0749: 0x3c05,
-	0x074d: 0x8800,
-	0x0760: 0x2f4f, 0x0761: 0x8800, 0x0762: 0x3c13,
-	0x0764: 0x8800, 0x0765: 0x8800,
-	0x076d: 0x3c0c, 0x076e: 0x2f4a, 0x076f: 0x2f54,
-	0x0770: 0x3c1a, 0x0771: 0x3c21, 0x0772: 0x8800, 0x0773: 0x8800, 0x0774: 0x3c28, 0x0775: 0x3c2f,
-	0x0776: 0x8800, 0x0777: 0x8800, 0x0778: 0x3c36, 0x0779: 0x3c3d, 0x077a: 0x8800, 0x077b: 0x8800,
-	0x077c: 0x8800, 0x077d: 0x8800,
-	// Block 0x1e, offset 0x780
-	0x0780: 0x3c44, 0x0781: 0x3c4b, 0x0782: 0x8800, 0x0783: 0x8800, 0x0784: 0x3c60, 0x0785: 0x3c67,
-	0x0786: 0x8800, 0x0787: 0x8800, 0x0788: 0x3c6e, 0x0789: 0x3c75,
-	0x0791: 0x8800,
-	0x0792: 0x8800,
-	0x07a2: 0x8800,
-	0x07a8: 0x8800, 0x07a9: 0x8800,
-	0x07ab: 0x8800, 0x07ac: 0x3c8a, 0x07ad: 0x3c91, 0x07ae: 0x3c98, 0x07af: 0x3c9f,
-	0x07b2: 0x8800, 0x07b3: 0x8800, 0x07b4: 0x8800, 0x07b5: 0x8800,
-	// Block 0x1f, offset 0x7c0
-	0x07e0: 0x0023, 0x07e1: 0x0025, 0x07e2: 0x0027, 0x07e3: 0x0029,
-	0x07e4: 0x002b, 0x07e5: 0x002d, 0x07e6: 0x002f, 0x07e7: 0x0031, 0x07e8: 0x0033, 0x07e9: 0x19c4,
-	0x07ea: 0x19c7, 0x07eb: 0x19ca, 0x07ec: 0x19cd, 0x07ed: 0x19d0, 0x07ee: 0x19d3, 0x07ef: 0x19d6,
-	0x07f0: 0x19d9, 0x07f1: 0x19dc, 0x07f2: 0x19df, 0x07f3: 0x19e8, 0x07f4: 0x1baa, 0x07f5: 0x1bae,
-	0x07f6: 0x1bb2, 0x07f7: 0x1bb6, 0x07f8: 0x1bba, 0x07f9: 0x1bbe, 0x07fa: 0x1bc2, 0x07fb: 0x1bc6,
-	0x07fc: 0x1bca, 0x07fd: 0x1dc2, 0x07fe: 0x1dc7, 0x07ff: 0x1dcc,
-	// Block 0x20, offset 0x800
-	0x0800: 0x1dd1, 0x0801: 0x1dd6, 0x0802: 0x1ddb, 0x0803: 0x1de0, 0x0804: 0x1de5, 0x0805: 0x1dea,
-	0x0806: 0x1def, 0x0807: 0x1df4, 0x0808: 0x19c1, 0x0809: 0x19e5, 0x080a: 0x1a09, 0x080b: 0x1a2d,
-	0x080c: 0x1a51, 0x080d: 0x1a5a, 0x080e: 0x1a60, 0x080f: 0x1a66, 0x0810: 0x1a6c, 0x0811: 0x1ca2,
-	0x0812: 0x1ca6, 0x0813: 0x1caa, 0x0814: 0x1cae, 0x0815: 0x1cb2, 0x0816: 0x1cb6, 0x0817: 0x1cba,
-	0x0818: 0x1cbe, 0x0819: 0x1cc2, 0x081a: 0x1cc6, 0x081b: 0x1cca, 0x081c: 0x1c36, 0x081d: 0x1c3a,
-	0x081e: 0x1c3e, 0x081f: 0x1c42, 0x0820: 0x1c46, 0x0821: 0x1c4a, 0x0822: 0x1c4e, 0x0823: 0x1c52,
-	0x0824: 0x1c56, 0x0825: 0x1c5a, 0x0826: 0x1c5e, 0x0827: 0x1c62, 0x0828: 0x1c66, 0x0829: 0x1c6a,
-	0x082a: 0x1c6e, 0x082b: 0x1c72, 0x082c: 0x1c76, 0x082d: 0x1c7a, 0x082e: 0x1c7e, 0x082f: 0x1c82,
-	0x0830: 0x1c86, 0x0831: 0x1c8a, 0x0832: 0x1c8e, 0x0833: 0x1c92, 0x0834: 0x1c96, 0x0835: 0x1c9a,
-	0x0836: 0x0043, 0x0837: 0x0045, 0x0838: 0x0047, 0x0839: 0x0049, 0x083a: 0x004b, 0x083b: 0x004d,
-	0x083c: 0x004f, 0x083d: 0x0051, 0x083e: 0x0053, 0x083f: 0x0055,
-	// Block 0x21, offset 0x840
-	0x0840: 0x0731, 0x0841: 0x0755, 0x0842: 0x0761, 0x0843: 0x0771, 0x0844: 0x0779, 0x0845: 0x0785,
-	0x0846: 0x078d, 0x0847: 0x0795, 0x0848: 0x07a1, 0x0849: 0x07f5, 0x084a: 0x080d, 0x084b: 0x081d,
-	0x084c: 0x082d, 0x084d: 0x083d, 0x084e: 0x084d, 0x084f: 0x086d, 0x0850: 0x0871, 0x0851: 0x0875,
-	0x0852: 0x08a9, 0x0853: 0x08d1, 0x0854: 0x08e1, 0x0855: 0x08e9, 0x0856: 0x08ed, 0x0857: 0x08f9,
-	0x0858: 0x0915, 0x0859: 0x0919, 0x085a: 0x0931, 0x085b: 0x0935, 0x085c: 0x093d, 0x085d: 0x094d,
-	0x085e: 0x09e9, 0x085f: 0x09fd, 0x0860: 0x0a3d, 0x0861: 0x0a51, 0x0862: 0x0a59, 0x0863: 0x0a5d,
-	0x0864: 0x0a6d, 0x0865: 0x0a89, 0x0866: 0x0ab5, 0x0867: 0x0ac1, 0x0868: 0x0ae1, 0x0869: 0x0aed,
-	0x086a: 0x0af1, 0x086b: 0x0af5, 0x086c: 0x0b0d, 0x086d: 0x0b11, 0x086e: 0x0b3d, 0x086f: 0x0b49,
-	0x0870: 0x0b51, 0x0871: 0x0b59, 0x0872: 0x0b69, 0x0873: 0x0b71, 0x0874: 0x0b79, 0x0875: 0x0ba5,
-	0x0876: 0x0ba9, 0x0877: 0x0bb1, 0x0878: 0x0bb5, 0x0879: 0x0bbd, 0x087a: 0x0bc5, 0x087b: 0x0bd5,
-	0x087c: 0x0bf1, 0x087d: 0x0c69, 0x087e: 0x0c7d, 0x087f: 0x0c81,
-	// Block 0x22, offset 0x880
-	0x0880: 0x0d01, 0x0881: 0x0d05, 0x0882: 0x0d19, 0x0883: 0x0d1d, 0x0884: 0x0d25, 0x0885: 0x0d2d,
-	0x0886: 0x0d35, 0x0887: 0x0d41, 0x0888: 0x0d69, 0x0889: 0x0d79, 0x088a: 0x0d8d, 0x088b: 0x0dfd,
-	0x088c: 0x0e09, 0x088d: 0x0e19, 0x088e: 0x0e25, 0x088f: 0x0e31, 0x0890: 0x0e39, 0x0891: 0x0e3d,
-	0x0892: 0x0e41, 0x0893: 0x0e45, 0x0894: 0x0e49, 0x0895: 0x0f01, 0x0896: 0x0f49, 0x0897: 0x0f55,
-	0x0898: 0x0f59, 0x0899: 0x0f5d, 0x089a: 0x0f61, 0x089b: 0x0f69, 0x089c: 0x0f6d, 0x089d: 0x0f81,
-	0x089e: 0x0f9d, 0x089f: 0x0fa5, 0x08a0: 0x0fe5, 0x08a1: 0x0fe9, 0x08a2: 0x0ff1, 0x08a3: 0x0ff5,
-	0x08a4: 0x0ffd, 0x08a5: 0x1001, 0x08a6: 0x1025, 0x08a7: 0x1029, 0x08a8: 0x1045, 0x08a9: 0x1049,
-	0x08aa: 0x104d, 0x08ab: 0x1051, 0x08ac: 0x1065, 0x08ad: 0x1089, 0x08ae: 0x108d, 0x08af: 0x1091,
-	0x08b0: 0x10b5, 0x08b1: 0x10f5, 0x08b2: 0x10f9, 0x08b3: 0x1119, 0x08b4: 0x1129, 0x08b5: 0x1131,
-	0x08b6: 0x1151, 0x08b7: 0x1175, 0x08b8: 0x11b9, 0x08b9: 0x11c1, 0x08ba: 0x11d5, 0x08bb: 0x11e1,
-	0x08bc: 0x11e9, 0x08bd: 0x11f1, 0x08be: 0x11f5, 0x08bf: 0x11f9,
-	// Block 0x23, offset 0x8c0
-	0x08c0: 0x1211, 0x08c1: 0x1215, 0x08c2: 0x1231, 0x08c3: 0x1239, 0x08c4: 0x1241, 0x08c5: 0x1245,
-	0x08c6: 0x1251, 0x08c7: 0x1259, 0x08c8: 0x125d, 0x08c9: 0x1261, 0x08ca: 0x1269, 0x08cb: 0x126d,
-	0x08cc: 0x130d, 0x08cd: 0x1321, 0x08ce: 0x1355, 0x08cf: 0x1359, 0x08d0: 0x1361, 0x08d1: 0x138d,
-	0x08d2: 0x1395, 0x08d3: 0x139d, 0x08d4: 0x13a5, 0x08d5: 0x13e1, 0x08d6: 0x13e5, 0x08d7: 0x13ed,
-	0x08d8: 0x13f1, 0x08d9: 0x13f5, 0x08da: 0x1421, 0x08db: 0x1425, 0x08dc: 0x142d, 0x08dd: 0x1441,
-	0x08de: 0x1445, 0x08df: 0x1461, 0x08e0: 0x1469, 0x08e1: 0x146d, 0x08e2: 0x1491, 0x08e3: 0x14b1,
-	0x08e4: 0x14c1, 0x08e5: 0x14c5, 0x08e6: 0x14cd, 0x08e7: 0x14f9, 0x08e8: 0x14fd, 0x08e9: 0x150d,
-	0x08ea: 0x1531, 0x08eb: 0x153d, 0x08ec: 0x154d, 0x08ed: 0x1565, 0x08ee: 0x156d, 0x08ef: 0x1571,
-	0x08f0: 0x1575, 0x08f1: 0x1579, 0x08f2: 0x1585, 0x08f3: 0x1589, 0x08f4: 0x1591, 0x08f5: 0x15ad,
-	0x08f6: 0x15b1, 0x08f7: 0x15b5, 0x08f8: 0x15cd, 0x08f9: 0x15d1, 0x08fa: 0x15d9, 0x08fb: 0x15ed,
-	0x08fc: 0x15f1, 0x08fd: 0x15f5, 0x08fe: 0x15fd, 0x08ff: 0x1601,
-	// Block 0x24, offset 0x900
-	0x0906: 0x8800, 0x090b: 0x8800,
-	0x090c: 0x3ef2, 0x090d: 0x8800, 0x090e: 0x3efa, 0x090f: 0x8800, 0x0910: 0x3f02, 0x0911: 0x8800,
-	0x0912: 0x3f0a, 0x0913: 0x8800, 0x0914: 0x3f12, 0x0915: 0x8800, 0x0916: 0x3f1a, 0x0917: 0x8800,
-	0x0918: 0x3f22, 0x0919: 0x8800, 0x091a: 0x3f2a, 0x091b: 0x8800, 0x091c: 0x3f32, 0x091d: 0x8800,
-	0x091e: 0x3f3a, 0x091f: 0x8800, 0x0920: 0x3f42, 0x0921: 0x8800, 0x0922: 0x3f4a,
-	0x0924: 0x8800, 0x0925: 0x3f52, 0x0926: 0x8800, 0x0927: 0x3f5a, 0x0928: 0x8800, 0x0929: 0x3f62,
-	0x092f: 0x8800,
-	0x0930: 0x3f6a, 0x0931: 0x3f72, 0x0932: 0x8800, 0x0933: 0x3f7a, 0x0934: 0x3f82, 0x0935: 0x8800,
-	0x0936: 0x3f8a, 0x0937: 0x3f92, 0x0938: 0x8800, 0x0939: 0x3f9a, 0x093a: 0x3fa2, 0x093b: 0x8800,
-	0x093c: 0x3faa, 0x093d: 0x3fb2,
-	// Block 0x25, offset 0x940
-	0x0954: 0x3eea,
-	0x0959: 0x8608, 0x095a: 0x8608, 0x095b: 0x42c2, 0x095c: 0x42c8, 0x095d: 0x8800,
-	0x095e: 0x3fba, 0x095f: 0x285f,
-	0x0966: 0x8800,
-	0x096b: 0x8800, 0x096c: 0x3fca, 0x096d: 0x8800, 0x096e: 0x3fd2, 0x096f: 0x8800,
-	0x0970: 0x3fda, 0x0971: 0x8800, 0x0972: 0x3fe2, 0x0973: 0x8800, 0x0974: 0x3fea, 0x0975: 0x8800,
-	0x0976: 0x3ff2, 0x0977: 0x8800, 0x0978: 0x3ffa, 0x0979: 0x8800, 0x097a: 0x4002, 0x097b: 0x8800,
-	0x097c: 0x400a, 0x097d: 0x8800, 0x097e: 0x4012, 0x097f: 0x8800,
-	// Block 0x26, offset 0x980
-	0x0980: 0x401a, 0x0981: 0x8800, 0x0982: 0x4022, 0x0984: 0x8800, 0x0985: 0x402a,
-	0x0986: 0x8800, 0x0987: 0x4032, 0x0988: 0x8800, 0x0989: 0x403a,
-	0x098f: 0x8800, 0x0990: 0x4042, 0x0991: 0x404a,
-	0x0992: 0x8800, 0x0993: 0x4052, 0x0994: 0x405a, 0x0995: 0x8800, 0x0996: 0x4062, 0x0997: 0x406a,
-	0x0998: 0x8800, 0x0999: 0x4072, 0x099a: 0x407a, 0x099b: 0x8800, 0x099c: 0x4082, 0x099d: 0x408a,
-	0x09af: 0x8800,
-	0x09b0: 0x8800, 0x09b1: 0x8800, 0x09b2: 0x8800, 0x09b4: 0x3fc2,
-	0x09b7: 0x4092, 0x09b8: 0x409a, 0x09b9: 0x40a2, 0x09ba: 0x40aa,
-	0x09bd: 0x8800, 0x09be: 0x40b2, 0x09bf: 0x2874,
-	// Block 0x27, offset 0x9c0
-	0x09c0: 0x03a9, 0x09c1: 0x03ad, 0x09c2: 0x047d, 0x09c3: 0x0481, 0x09c4: 0x03b1, 0x09c5: 0x03b5,
-	0x09c6: 0x03b9, 0x09c7: 0x0415, 0x09c8: 0x0419, 0x09c9: 0x041d, 0x09ca: 0x0421, 0x09cb: 0x0425,
-	0x09cc: 0x0429, 0x09cd: 0x042d, 0x09ce: 0x0431,
-	0x09d2: 0x0731, 0x09d3: 0x078d, 0x09d4: 0x073d, 0x09d5: 0x09ed, 0x09d6: 0x0741, 0x09d7: 0x0759,
-	0x09d8: 0x0745, 0x09d9: 0x1005, 0x09da: 0x0779, 0x09db: 0x074d, 0x09dc: 0x0735, 0x09dd: 0x0a71,
-	0x09de: 0x0a01, 0x09df: 0x07a1,
-	// Block 0x28, offset 0xa00
-	0x0a00: 0x2196, 0x0a01: 0x219c, 0x0a02: 0x21a2, 0x0a03: 0x21a8, 0x0a04: 0x21ae, 0x0a05: 0x21b4,
-	0x0a06: 0x21ba, 0x0a07: 0x21c0, 0x0a08: 0x21c6, 0x0a09: 0x21cc, 0x0a0a: 0x21d2, 0x0a0b: 0x21d8,
-	0x0a0c: 0x21de, 0x0a0d: 0x21e4, 0x0a0e: 0x28d1, 0x0a0f: 0x28da, 0x0a10: 0x28e3, 0x0a11: 0x28ec,
-	0x0a12: 0x28f5, 0x0a13: 0x28fe, 0x0a14: 0x2907, 0x0a15: 0x2910, 0x0a16: 0x2919, 0x0a17: 0x292b,
-	0x0a18: 0x2934, 0x0a19: 0x293d, 0x0a1a: 0x2946, 0x0a1b: 0x294f, 0x0a1c: 0x2922, 0x0a1d: 0x2d74,
-	0x0a1e: 0x2ca5, 0x0a20: 0x21ea, 0x0a21: 0x2202, 0x0a22: 0x21f6, 0x0a23: 0x224a,
-	0x0a24: 0x2208, 0x0a25: 0x2226, 0x0a26: 0x21f0, 0x0a27: 0x2220, 0x0a28: 0x21fc, 0x0a29: 0x2232,
-	0x0a2a: 0x2262, 0x0a2b: 0x2280, 0x0a2c: 0x227a, 0x0a2d: 0x226e, 0x0a2e: 0x22bc, 0x0a2f: 0x2250,
-	0x0a30: 0x225c, 0x0a31: 0x2274, 0x0a32: 0x2268, 0x0a33: 0x2292, 0x0a34: 0x223e, 0x0a35: 0x2286,
-	0x0a36: 0x22b0, 0x0a37: 0x2298, 0x0a38: 0x222c, 0x0a39: 0x220e, 0x0a3a: 0x2244, 0x0a3b: 0x2256,
-	0x0a3c: 0x228c, 0x0a3d: 0x2214, 0x0a3e: 0x22b6, 0x0a3f: 0x2238,
-	// Block 0x29, offset 0xa40
-	0x0a40: 0x229e, 0x0a41: 0x221a, 0x0a42: 0x22a4, 0x0a43: 0x22aa, 0x0a44: 0x09a1, 0x0a45: 0x0b75,
-	0x0a46: 0x0d19, 0x0a47: 0x1139,
-	0x0a50: 0x1d06, 0x0a51: 0x19eb,
-	0x0a52: 0x19ee, 0x0a53: 0x19f1, 0x0a54: 0x19f4, 0x0a55: 0x19f7, 0x0a56: 0x19fa, 0x0a57: 0x19fd,
-	0x0a58: 0x1a00, 0x0a59: 0x1a03, 0x0a5a: 0x1a0c, 0x0a5b: 0x1a0f, 0x0a5c: 0x1a12, 0x0a5d: 0x1a15,
-	0x0a5e: 0x1a18, 0x0a5f: 0x1a1b, 0x0a60: 0x030d, 0x0a61: 0x0315, 0x0a62: 0x0319, 0x0a63: 0x0321,
-	0x0a64: 0x0325, 0x0a65: 0x0329, 0x0a66: 0x0331, 0x0a67: 0x0339, 0x0a68: 0x033d, 0x0a69: 0x0345,
-	0x0a6a: 0x0349, 0x0a6b: 0x034d, 0x0a6c: 0x0351, 0x0a6d: 0x0355, 0x0a6e: 0x27d3, 0x0a6f: 0x27da,
-	0x0a70: 0x27e1, 0x0a71: 0x27e8, 0x0a72: 0x27ef, 0x0a73: 0x27f6, 0x0a74: 0x27fd, 0x0a75: 0x2804,
-	0x0a76: 0x2812, 0x0a77: 0x2819, 0x0a78: 0x2820, 0x0a79: 0x2827, 0x0a7a: 0x282e, 0x0a7b: 0x2835,
-	0x0a7c: 0x2cc4, 0x0a7d: 0x2b39, 0x0a7e: 0x280b,
-	// Block 0x2a, offset 0xa80
-	0x0a80: 0x0731, 0x0a81: 0x078d, 0x0a82: 0x073d, 0x0a83: 0x09ed, 0x0a84: 0x0791, 0x0a85: 0x0821,
-	0x0a86: 0x0739, 0x0a87: 0x081d, 0x0a88: 0x077d, 0x0a89: 0x08f9, 0x0a8a: 0x0d79, 0x0a8b: 0x0f01,
-	0x0a8c: 0x0e49, 0x0a8d: 0x0d8d, 0x0a8e: 0x14cd, 0x0a8f: 0x09fd, 0x0a90: 0x0d41, 0x0a91: 0x0dbd,
-	0x0a92: 0x0d7d, 0x0a93: 0x10bd, 0x0a94: 0x096d, 0x0a95: 0x0f75, 0x0a96: 0x13f9, 0x0a97: 0x10d1,
-	0x0a98: 0x08b5, 0x0a99: 0x1101, 0x0a9a: 0x100d, 0x0a9b: 0x0a89, 0x0a9c: 0x1481, 0x0a9d: 0x07f1,
-	0x0a9e: 0x091d, 0x0a9f: 0x0e69, 0x0aa0: 0x1595, 0x0aa1: 0x07b5, 0x0aa2: 0x0845, 0x0aa3: 0x0e0d,
-	0x0aa4: 0x0741, 0x0aa5: 0x0759, 0x0aa6: 0x0745, 0x0aa7: 0x0b4d, 0x0aa8: 0x0961, 0x0aa9: 0x08f1,
-	0x0aaa: 0x0ac9, 0x0aab: 0x0abd, 0x0aac: 0x105d, 0x0aad: 0x07b1, 0x0aae: 0x140d, 0x0aaf: 0x090d,
-	0x0ab0: 0x0a65, 0x0ab1: 0x1a1e, 0x0ab2: 0x1a21, 0x0ab3: 0x1a24, 0x0ab4: 0x1a27, 0x0ab5: 0x1a30,
-	0x0ab6: 0x1a33, 0x0ab7: 0x1a36, 0x0ab8: 0x1a39, 0x0ab9: 0x1a3c, 0x0aba: 0x1a3f, 0x0abb: 0x1a42,
-	0x0abc: 0x1a45, 0x0abd: 0x1a48, 0x0abe: 0x1a4b, 0x0abf: 0x1a54,
-	// Block 0x2b, offset 0xac0
-	0x0ac0: 0x1e08, 0x0ac1: 0x1e17, 0x0ac2: 0x1e26, 0x0ac3: 0x1e35, 0x0ac4: 0x1e44, 0x0ac5: 0x1e53,
-	0x0ac6: 0x1e62, 0x0ac7: 0x1e71, 0x0ac8: 0x1e80, 0x0ac9: 0x22ce, 0x0aca: 0x22e0, 0x0acb: 0x22f2,
-	0x0acc: 0x1a96, 0x0acd: 0x1d46, 0x0ace: 0x1b14, 0x0acf: 0x1cea, 0x0ad0: 0x053d, 0x0ad1: 0x0545,
-	0x0ad2: 0x054d, 0x0ad3: 0x0555, 0x0ad4: 0x055d, 0x0ad5: 0x0561, 0x0ad6: 0x0565, 0x0ad7: 0x0569,
-	0x0ad8: 0x056d, 0x0ad9: 0x0571, 0x0ada: 0x0575, 0x0adb: 0x0579, 0x0adc: 0x057d, 0x0add: 0x0581,
-	0x0ade: 0x0585, 0x0adf: 0x0589, 0x0ae0: 0x058d, 0x0ae1: 0x0595, 0x0ae2: 0x0599, 0x0ae3: 0x059d,
-	0x0ae4: 0x05a1, 0x0ae5: 0x05a5, 0x0ae6: 0x05a9, 0x0ae7: 0x05ad, 0x0ae8: 0x05b1, 0x0ae9: 0x05b5,
-	0x0aea: 0x05b9, 0x0aeb: 0x05bd, 0x0aec: 0x05c1, 0x0aed: 0x05c5, 0x0aee: 0x05c9, 0x0aef: 0x05cd,
-	0x0af0: 0x05d1, 0x0af1: 0x05d5, 0x0af2: 0x05d9, 0x0af3: 0x05e1, 0x0af4: 0x05e9, 0x0af5: 0x05f1,
-	0x0af6: 0x05f5, 0x0af7: 0x05f9, 0x0af8: 0x05fd, 0x0af9: 0x0601, 0x0afa: 0x0605, 0x0afb: 0x0609,
-	0x0afc: 0x060d, 0x0afd: 0x0611, 0x0afe: 0x0615,
-	// Block 0x2c, offset 0xb00
-	0x0b00: 0x2cd4, 0x0b01: 0x2b60, 0x0b02: 0x2ce4, 0x0b03: 0x2a2b, 0x0b04: 0x2ede, 0x0b05: 0x2a35,
-	0x0b06: 0x2a3f, 0x0b07: 0x2f22, 0x0b08: 0x2b6d, 0x0b09: 0x2a49, 0x0b0a: 0x2a53, 0x0b0b: 0x2a5d,
-	0x0b0c: 0x2b94, 0x0b0d: 0x2ba1, 0x0b0e: 0x2b7a, 0x0b0f: 0x2b87, 0x0b10: 0x2eb4, 0x0b11: 0x2bae,
-	0x0b12: 0x2bbb, 0x0b13: 0x2d86, 0x0b14: 0x2866, 0x0b15: 0x2d99, 0x0b16: 0x2dac, 0x0b17: 0x2cf4,
-	0x0b18: 0x2bc8, 0x0b19: 0x2dbf, 0x0b1a: 0x2dd2, 0x0b1b: 0x2bd5, 0x0b1c: 0x2a67, 0x0b1d: 0x2a71,
-	0x0b1e: 0x2ec2, 0x0b1f: 0x2be2, 0x0b20: 0x2d04, 0x0b21: 0x2eef, 0x0b22: 0x2a7b, 0x0b23: 0x2a85,
-	0x0b24: 0x2bef, 0x0b25: 0x2a8f, 0x0b26: 0x2a99, 0x0b27: 0x287b, 0x0b28: 0x2882, 0x0b29: 0x2aa3,
-	0x0b2a: 0x2aad, 0x0b2b: 0x2de5, 0x0b2c: 0x2bfc, 0x0b2d: 0x2d14, 0x0b2e: 0x2df8, 0x0b2f: 0x2c09,
-	0x0b30: 0x2ac1, 0x0b31: 0x2ab7, 0x0b32: 0x2f36, 0x0b33: 0x2c16, 0x0b34: 0x2e0b, 0x0b35: 0x2acb,
-	0x0b36: 0x2d24, 0x0b37: 0x2ad5, 0x0b38: 0x2c30, 0x0b39: 0x2adf, 0x0b3a: 0x2c3d, 0x0b3b: 0x2f00,
-	0x0b3c: 0x2c23, 0x0b3d: 0x2d34, 0x0b3e: 0x2c4a, 0x0b3f: 0x2889,
-	// Block 0x2d, offset 0xb40
-	0x0b40: 0x2f11, 0x0b41: 0x2ae9, 0x0b42: 0x2af3, 0x0b43: 0x2c57, 0x0b44: 0x2afd, 0x0b45: 0x2b07,
-	0x0b46: 0x2b11, 0x0b47: 0x2d44, 0x0b48: 0x2c64, 0x0b49: 0x2890, 0x0b4a: 0x2e1e, 0x0b4b: 0x2ea9,
-	0x0b4c: 0x2d54, 0x0b4d: 0x2c71, 0x0b4e: 0x2ed0, 0x0b4f: 0x2b1b, 0x0b50: 0x2b25, 0x0b51: 0x2c7e,
-	0x0b52: 0x2897, 0x0b53: 0x2c8b, 0x0b54: 0x2d64, 0x0b55: 0x289e, 0x0b56: 0x2e31, 0x0b57: 0x2b2f,
-	0x0b58: 0x1df9, 0x0b59: 0x1e0d, 0x0b5a: 0x1e1c, 0x0b5b: 0x1e2b, 0x0b5c: 0x1e3a, 0x0b5d: 0x1e49,
-	0x0b5e: 0x1e58, 0x0b5f: 0x1e67, 0x0b60: 0x1e76, 0x0b61: 0x1e85, 0x0b62: 0x22d4, 0x0b63: 0x22e6,
-	0x0b64: 0x22f8, 0x0b65: 0x2304, 0x0b66: 0x2310, 0x0b67: 0x231c, 0x0b68: 0x2328, 0x0b69: 0x2334,
-	0x0b6a: 0x2340, 0x0b6b: 0x234c, 0x0b6c: 0x2388, 0x0b6d: 0x2394, 0x0b6e: 0x23a0, 0x0b6f: 0x23ac,
-	0x0b70: 0x23b8, 0x0b71: 0x1d56, 0x0b72: 0x1b08, 0x0b73: 0x1a78, 0x0b74: 0x1d26, 0x0b75: 0x1b89,
-	0x0b76: 0x1b98, 0x0b77: 0x1b0e, 0x0b78: 0x1d3e, 0x0b79: 0x1d42, 0x0b7a: 0x1aa2, 0x0b7b: 0x28ac,
-	0x0b7c: 0x28ba, 0x0b7d: 0x28a5, 0x0b7e: 0x28b3, 0x0b7f: 0x2c98,
-	// Block 0x2e, offset 0xb80
-	0x0b80: 0x1b8c, 0x0b81: 0x1b74, 0x0b82: 0x1da2, 0x0b83: 0x1b5c, 0x0b84: 0x1b35, 0x0b85: 0x1aab,
-	0x0b86: 0x1aba, 0x0b87: 0x1a8a, 0x0b88: 0x1d32, 0x0b89: 0x1e94, 0x0b8a: 0x1b8f, 0x0b8b: 0x1b77,
-	0x0b8c: 0x1da6, 0x0b8d: 0x1db2, 0x0b8e: 0x1b68, 0x0b8f: 0x1b3e, 0x0b90: 0x1a99, 0x0b91: 0x1d5e,
-	0x0b92: 0x1cf2, 0x0b93: 0x1cde, 0x0b94: 0x1d0e, 0x0b95: 0x1db6, 0x0b96: 0x1b6b, 0x0b97: 0x1b0b,
-	0x0b98: 0x1b41, 0x0b99: 0x1b20, 0x0b9a: 0x1b83, 0x0b9b: 0x1dba, 0x0b9c: 0x1b6e, 0x0b9d: 0x1b02,
-	0x0b9e: 0x1b44, 0x0b9f: 0x1d7e, 0x0ba0: 0x1d36, 0x0ba1: 0x1b56, 0x0ba2: 0x1d66, 0x0ba3: 0x1d82,
-	0x0ba4: 0x1d3a, 0x0ba5: 0x1b59, 0x0ba6: 0x1d6a, 0x0ba7: 0x242a, 0x0ba8: 0x243e, 0x0ba9: 0x1ad8,
-	0x0baa: 0x1d62, 0x0bab: 0x1cf6, 0x0bac: 0x1ce2, 0x0bad: 0x1d8a, 0x0bae: 0x28c1, 0x0baf: 0x2958,
-	0x0bb0: 0x1b9b, 0x0bb1: 0x1b86, 0x0bb2: 0x1dbe, 0x0bb3: 0x1b71, 0x0bb4: 0x1b92, 0x0bb5: 0x1b7a,
-	0x0bb6: 0x1daa, 0x0bb7: 0x1b5f, 0x0bb8: 0x1b38, 0x0bb9: 0x1ac3, 0x0bba: 0x1b95, 0x0bbb: 0x1b7d,
-	0x0bbc: 0x1dae, 0x0bbd: 0x1b62, 0x0bbe: 0x1b3b, 0x0bbf: 0x1ac6,
-	// Block 0x2f, offset 0xbc0
-	0x0bc0: 0x1d6e, 0x0bc1: 0x1cfa, 0x0bc2: 0x1e8f, 0x0bc3: 0x1a7b, 0x0bc4: 0x1afc, 0x0bc5: 0x1aff,
-	0x0bc6: 0x2437, 0x0bc7: 0x1cd6, 0x0bc8: 0x1b05, 0x0bc9: 0x1a8d, 0x0bca: 0x1b23, 0x0bcb: 0x1a90,
-	0x0bcc: 0x1b2c, 0x0bcd: 0x1aae, 0x0bce: 0x1ab1, 0x0bcf: 0x1b47, 0x0bd0: 0x1b4d, 0x0bd1: 0x1b50,
-	0x0bd2: 0x1d72, 0x0bd3: 0x1b53, 0x0bd4: 0x1b65, 0x0bd5: 0x1d7a, 0x0bd6: 0x1d86, 0x0bd7: 0x1ad2,
-	0x0bd8: 0x1e99, 0x0bd9: 0x1cfe, 0x0bda: 0x1ad5, 0x0bdb: 0x1b9e, 0x0bdc: 0x1ae7, 0x0bdd: 0x1af6,
-	0x0bde: 0x2424, 0x0bdf: 0x241e, 0x0be0: 0x1e03, 0x0be1: 0x1e12, 0x0be2: 0x1e21, 0x0be3: 0x1e30,
-	0x0be4: 0x1e3f, 0x0be5: 0x1e4e, 0x0be6: 0x1e5d, 0x0be7: 0x1e6c, 0x0be8: 0x1e7b, 0x0be9: 0x22c8,
-	0x0bea: 0x22da, 0x0beb: 0x22ec, 0x0bec: 0x22fe, 0x0bed: 0x230a, 0x0bee: 0x2316, 0x0bef: 0x2322,
-	0x0bf0: 0x232e, 0x0bf1: 0x233a, 0x0bf2: 0x2346, 0x0bf3: 0x2382, 0x0bf4: 0x238e, 0x0bf5: 0x239a,
-	0x0bf6: 0x23a6, 0x0bf7: 0x23b2, 0x0bf8: 0x23be, 0x0bf9: 0x23c4, 0x0bfa: 0x23ca, 0x0bfb: 0x23d0,
-	0x0bfc: 0x23d6, 0x0bfd: 0x23e8, 0x0bfe: 0x23ee, 0x0bff: 0x1d52,
-	// Block 0x30, offset 0xc00
-	0x0c00: 0x13e9, 0x0c01: 0x0d6d, 0x0c02: 0x1445, 0x0c03: 0x1411, 0x0c04: 0x0ec9, 0x0c05: 0x075d,
-	0x0c06: 0x0951, 0x0c07: 0x1699, 0x0c08: 0x1699, 0x0c09: 0x0a7d, 0x0c0a: 0x14cd, 0x0c0b: 0x09b5,
-	0x0c0c: 0x0a79, 0x0c0d: 0x0c61, 0x0c0e: 0x1041, 0x0c0f: 0x11d1, 0x0c10: 0x1309, 0x0c11: 0x1345,
-	0x0c12: 0x1379, 0x0c13: 0x148d, 0x0c14: 0x0de5, 0x0c15: 0x0e71, 0x0c16: 0x0f1d, 0x0c17: 0x0fb5,
-	0x0c18: 0x12d1, 0x0c19: 0x14b5, 0x0c1a: 0x15e1, 0x0c1b: 0x0781, 0x0c1c: 0x0925, 0x0c1d: 0x0df9,
-	0x0c1e: 0x0f41, 0x0c1f: 0x1305, 0x0c20: 0x1631, 0x0c21: 0x0b25, 0x0c22: 0x0ee9, 0x0c23: 0x12f5,
-	0x0c24: 0x1389, 0x0c25: 0x0c95, 0x0c26: 0x122d, 0x0c27: 0x1351, 0x0c28: 0x0b91, 0x0c29: 0x0d81,
-	0x0c2a: 0x0e89, 0x0c2b: 0x0f8d, 0x0c2c: 0x1499, 0x0c2d: 0x07c1, 0x0c2e: 0x0859, 0x0c2f: 0x08c5,
-	0x0c30: 0x0cfd, 0x0c31: 0x0df1, 0x0c32: 0x0f3d, 0x0c33: 0x1061, 0x0c34: 0x11e9, 0x0c35: 0x12fd,
-	0x0c36: 0x1315, 0x0c37: 0x1439, 0x0c38: 0x155d, 0x0c39: 0x1611, 0x0c3a: 0x162d, 0x0c3b: 0x109d,
-	0x0c3c: 0x10dd, 0x0c3d: 0x1195, 0x0c3e: 0x12b5, 0x0c3f: 0x14e9,
-	// Block 0x31, offset 0xc40
-	0x0c40: 0x1639, 0x0c41: 0x13bd, 0x0c42: 0x0a39, 0x0c43: 0x0bad, 0x0c44: 0x114d, 0x0c45: 0x120d,
-	0x0c46: 0x0f71, 0x0c47: 0x10a5, 0x0c48: 0x1409, 0x0c49: 0x1555, 0x0c4a: 0x0a35, 0x0c4b: 0x0b01,
-	0x0c4c: 0x0de9, 0x0c4d: 0x0e9d, 0x0c4e: 0x0ed1, 0x0c4f: 0x1185, 0x0c50: 0x11ad, 0x0c51: 0x1515,
-	0x0c52: 0x08c1, 0x0c53: 0x1219, 0x0c54: 0x0865, 0x0c55: 0x0861, 0x0c56: 0x1109, 0x0c57: 0x1199,
-	0x0c58: 0x12cd, 0x0c59: 0x151d, 0x0c5a: 0x13d9, 0x0c5b: 0x0c99, 0x0c5c: 0x0de5, 0x0c5d: 0x13c9,
-	0x0c5e: 0x0769, 0x0c5f: 0x0ad5, 0x0c60: 0x0c05, 0x0c61: 0x0fa1, 0x0c62: 0x1021, 0x0c63: 0x08e5,
-	0x0c64: 0x10ad, 0x0c65: 0x07d1, 0x0c66: 0x0be9, 0x0c67: 0x0749, 0x0c68: 0x0e5d, 0x0c69: 0x0d15,
-	0x0c6a: 0x1181, 0x0c6b: 0x0939, 0x0c6c: 0x0a25, 0x0c6d: 0x106d, 0x0c6e: 0x12d5, 0x0c6f: 0x13ad,
-	0x0c70: 0x0e29, 0x0c71: 0x1469, 0x0c72: 0x0e55, 0x0c73: 0x0ca9, 0x0c74: 0x128d, 0x0c75: 0x0cc9,
-	0x0c76: 0x101d, 0x0c77: 0x079d, 0x0c78: 0x0819, 0x0c79: 0x085d, 0x0c7a: 0x0dc5, 0x0c7b: 0x116d,
-	0x0c7c: 0x1265, 0x0c7d: 0x13b9, 0x0c7e: 0x14c9, 0x0c7f: 0x08cd,
-	// Block 0x32, offset 0xc80
-	0x0c80: 0x0981, 0x0c81: 0x0a89, 0x0c82: 0x0ba1, 0x0c83: 0x0d31, 0x0c84: 0x0eed, 0x0c85: 0x10b1,
-	0x0c86: 0x1505, 0x0c87: 0x15e9, 0x0c88: 0x163d, 0x0c89: 0x1655, 0x0c8a: 0x08a9, 0x0c8b: 0x0d65,
-	0x0c8c: 0x0e15, 0x0c8d: 0x145d, 0x0c8e: 0x0b6d, 0x0c8f: 0x0c49, 0x0c90: 0x0c65, 0x0c91: 0x0cf5,
-	0x0c92: 0x0edd, 0x0c93: 0x0f29, 0x0c94: 0x0fd9, 0x0c95: 0x10fd, 0x0c96: 0x11a1, 0x0c97: 0x1205,
-	0x0c98: 0x144d, 0x0c99: 0x12dd, 0x0c9a: 0x1475, 0x0c9b: 0x14ed, 0x0c9c: 0x0881, 0x0c9d: 0x08ad,
-	0x0c9e: 0x0995, 0x0c9f: 0x0f19, 0x0ca0: 0x1365, 0x0ca1: 0x13ad, 0x0ca2: 0x0b8d, 0x0ca3: 0x0bfd,
-	0x0ca4: 0x0cc1, 0x0ca5: 0x0e21, 0x0ca6: 0x1149, 0x0ca7: 0x0f95, 0x0ca8: 0x07ad, 0x0ca9: 0x09f1,
-	0x0caa: 0x0ad5, 0x0cab: 0x0b39, 0x0cac: 0x0c09, 0x0cad: 0x0fb1, 0x0cae: 0x0fcd, 0x0caf: 0x11dd,
-	0x0cb0: 0x11fd, 0x0cb1: 0x14d1, 0x0cb2: 0x1551, 0x0cb3: 0x1561, 0x0cb4: 0x159d, 0x0cb5: 0x07c5,
-	0x0cb6: 0x10f1, 0x0cb7: 0x14bd, 0x0cb8: 0x1539, 0x0cb9: 0x0c21, 0x0cba: 0x0789, 0x0cbb: 0x07e9,
-	0x0cbc: 0x0ad9, 0x0cbd: 0x0af9, 0x0cbe: 0x0d21, 0x0cbf: 0x0de5,
-	// Block 0x33, offset 0xcc0
-	0x0cc0: 0x0f35, 0x0cc1: 0x103d, 0x0cc2: 0x12e9, 0x0cc3: 0x1489, 0x0cc4: 0x1691, 0x0cc5: 0x0d55,
-	0x0cc6: 0x1511, 0x0cc7: 0x08a5, 0x0cc8: 0x0da1, 0x0cc9: 0x0dad, 0x0cca: 0x0e81, 0x0ccb: 0x0eb9,
-	0x0ccc: 0x0fbd, 0x0ccd: 0x1019, 0x0cce: 0x1099, 0x0ccf: 0x117d, 0x0cd0: 0x15a9, 0x0cd1: 0x0821,
-	0x0cd2: 0x0c75, 0x0cd3: 0x1521, 0x0cd4: 0x07d9, 0x0cd5: 0x0b1d, 0x0cd6: 0x0ea1, 0x0cd7: 0x1451,
-	0x0cd8: 0x0bd9, 0x0cd9: 0x0c29, 0x0cda: 0x0db5, 0x0cdb: 0x0fa1, 0x0cdc: 0x1529, 0x0cdd: 0x0889,
-	0x0cde: 0x0971, 0x0cdf: 0x0b09, 0x0ce0: 0x0d45, 0x0ce1: 0x0d91, 0x0ce2: 0x0dd1, 0x0ce3: 0x0e65,
-	0x0ce4: 0x0fb9, 0x0ce5: 0x102d, 0x0ce6: 0x11c9, 0x0ce7: 0x1369, 0x0ce8: 0x1375, 0x0ce9: 0x14c5,
-	0x0cea: 0x1545, 0x0ceb: 0x08f5, 0x0cec: 0x0ebd, 0x0ced: 0x0975, 0x0cee: 0x0f39, 0x0cef: 0x0fdd,
-	0x0cf0: 0x12f9, 0x0cf1: 0x152d, 0x0cf2: 0x1619, 0x0cf3: 0x1641, 0x0cf4: 0x0da9, 0x0cf5: 0x0e99,
-	0x0cf6: 0x1235, 0x0cf7: 0x1129, 0x0cf8: 0x1135, 0x0cf9: 0x1159, 0x0cfa: 0x0f89, 0x0cfb: 0x0f11,
-	0x0cfc: 0x13d5, 0x0cfd: 0x07a5, 0x0cfe: 0x129d, 0x0cff: 0x088d,
-	// Block 0x34, offset 0xd00
-	0x0d00: 0x087d, 0x0d01: 0x0b7d, 0x0d02: 0x0c9d, 0x0d03: 0x1165, 0x0d04: 0x0ac5, 0x0d05: 0x0e75,
-	0x0d06: 0x0d61, 0x0d07: 0x1459, 0x0d08: 0x1359, 0x0d09: 0x1519, 0x0d0a: 0x1395, 0x0d0b: 0x0b99,
-	0x0d0c: 0x07f9, 0x0d0d: 0x09cd, 0x0d10: 0x0a21,
-	0x0d12: 0x0d51, 0x0d15: 0x0869, 0x0d16: 0x0f91, 0x0d17: 0x1055,
-	0x0d18: 0x10b9, 0x0d19: 0x10d5, 0x0d1a: 0x10d9, 0x0d1b: 0x10ed, 0x0d1c: 0x1569, 0x0d1d: 0x115d,
-	0x0d1e: 0x11e1, 0x0d20: 0x1301, 0x0d22: 0x13c5,
-	0x0d25: 0x1479, 0x0d26: 0x14a5,
-	0x0d2a: 0x15bd, 0x0d2b: 0x15c1, 0x0d2c: 0x15c5, 0x0d2d: 0x1629, 0x0d2e: 0x149d, 0x0d2f: 0x1535,
-	0x0d30: 0x07c9, 0x0d31: 0x07ed, 0x0d32: 0x0801, 0x0d33: 0x08bd, 0x0d34: 0x08c9, 0x0d35: 0x0909,
-	0x0d36: 0x09bd, 0x0d37: 0x09d9, 0x0d38: 0x09e1, 0x0d39: 0x0a1d, 0x0d3a: 0x0a29, 0x0d3b: 0x0b05,
-	0x0d3c: 0x0b0d, 0x0d3d: 0x0c15, 0x0d3e: 0x0c3d, 0x0d3f: 0x0c45,
-	// Block 0x35, offset 0xd40
-	0x0d40: 0x0c5d, 0x0d41: 0x0d09, 0x0d42: 0x0d39, 0x0d43: 0x0d59, 0x0d44: 0x0dc9, 0x0d45: 0x0e8d,
-	0x0d46: 0x0ea9, 0x0d47: 0x0ed9, 0x0d48: 0x0f2d, 0x0d49: 0x0f4d, 0x0d4a: 0x0fc1, 0x0d4b: 0x10a1,
-	0x0d4c: 0x10bd, 0x0d4d: 0x10c5, 0x0d4e: 0x10c1, 0x0d4f: 0x10c9, 0x0d50: 0x10cd, 0x0d51: 0x10d1,
-	0x0d52: 0x10e5, 0x0d53: 0x10e9, 0x0d54: 0x110d, 0x0d55: 0x1121, 0x0d56: 0x113d, 0x0d57: 0x11a1,
-	0x0d58: 0x11a9, 0x0d59: 0x11b1, 0x0d5a: 0x11c5, 0x0d5b: 0x11ed, 0x0d5c: 0x123d, 0x0d5d: 0x1271,
-	0x0d5e: 0x1271, 0x0d5f: 0x12d9, 0x0d60: 0x1381, 0x0d61: 0x1399, 0x0d62: 0x13cd, 0x0d63: 0x13d1,
-	0x0d64: 0x1415, 0x0d65: 0x1419, 0x0d66: 0x1471, 0x0d67: 0x1479, 0x0d68: 0x1549, 0x0d69: 0x158d,
-	0x0d6a: 0x15a5, 0x0d6b: 0x0c0d, 0x0d6c: 0x1780, 0x0d6d: 0x1255,
-	0x0d70: 0x0751, 0x0d71: 0x0855, 0x0d72: 0x0815, 0x0d73: 0x07bd, 0x0d74: 0x07fd, 0x0d75: 0x0829,
-	0x0d76: 0x08b9, 0x0d77: 0x08d5, 0x0d78: 0x09bd, 0x0d79: 0x09a9, 0x0d7a: 0x09b9, 0x0d7b: 0x09d5,
-	0x0d7c: 0x0a21, 0x0d7d: 0x0a31, 0x0d7e: 0x0a75, 0x0d7f: 0x0a81,
-	// Block 0x36, offset 0xd80
-	0x0d80: 0x0a9d, 0x0d81: 0x0aad, 0x0d82: 0x0b95, 0x0d83: 0x0b9d, 0x0d84: 0x0bcd, 0x0d85: 0x0bed,
-	0x0d86: 0x0c1d, 0x0d87: 0x0c35, 0x0d88: 0x0c25, 0x0d89: 0x0c45, 0x0d8a: 0x0c39, 0x0d8b: 0x0c5d,
-	0x0d8c: 0x0c79, 0x0d8d: 0x0cd1, 0x0d8e: 0x0cdd, 0x0d8f: 0x0ce5, 0x0d90: 0x0d0d, 0x0d91: 0x0d51,
-	0x0d92: 0x0d81, 0x0d93: 0x0d85, 0x0d94: 0x0d99, 0x0d95: 0x0e19, 0x0d96: 0x0e29, 0x0d97: 0x0e81,
-	0x0d98: 0x0ecd, 0x0d99: 0x0ec5, 0x0d9a: 0x0ed9, 0x0d9b: 0x0ef5, 0x0d9c: 0x0f2d, 0x0d9d: 0x1085,
-	0x0d9e: 0x0f51, 0x0d9f: 0x0f85, 0x0da0: 0x0f91, 0x0da1: 0x0fd1, 0x0da2: 0x0fed, 0x0da3: 0x1011,
-	0x0da4: 0x1035, 0x0da5: 0x1039, 0x0da6: 0x1055, 0x0da7: 0x1059, 0x0da8: 0x1069, 0x0da9: 0x107d,
-	0x0daa: 0x1079, 0x0dab: 0x10a9, 0x0dac: 0x1125, 0x0dad: 0x113d, 0x0dae: 0x1155, 0x0daf: 0x118d,
-	0x0db0: 0x11a1, 0x0db1: 0x11bd, 0x0db2: 0x11ed, 0x0db3: 0x12a1, 0x0db4: 0x12c9, 0x0db5: 0x133d,
-	0x0db6: 0x1385, 0x0db7: 0x1391, 0x0db8: 0x1399, 0x0db9: 0x13b1, 0x0dba: 0x13c5, 0x0dbb: 0x13b5,
-	0x0dbc: 0x13cd, 0x0dbd: 0x13c9, 0x0dbe: 0x13c1, 0x0dbf: 0x13d1,
-	// Block 0x37, offset 0xdc0
-	0x0dc0: 0x13dd, 0x0dc1: 0x1419, 0x0dc2: 0x1455, 0x0dc3: 0x1485, 0x0dc4: 0x14b9, 0x0dc5: 0x14d9,
-	0x0dc6: 0x1525, 0x0dc7: 0x1549, 0x0dc8: 0x1569, 0x0dc9: 0x157d, 0x0dca: 0x158d, 0x0dcb: 0x1599,
-	0x0dcc: 0x15a5, 0x0dcd: 0x15f9, 0x0dce: 0x1699, 0x0dcf: 0x1717, 0x0dd0: 0x1712, 0x0dd1: 0x1744,
-	0x0dd2: 0x0679, 0x0dd3: 0x06a1, 0x0dd4: 0x06a5, 0x0dd5: 0x17c6, 0x0dd6: 0x17f3, 0x0dd7: 0x186b,
-	0x0dd8: 0x1685, 0x0dd9: 0x1695,
-	// Block 0x38, offset 0xe00
-	0x0e00: 0x1b17, 0x0e01: 0x1b1a, 0x0e02: 0x1b1d, 0x0e03: 0x1d4a, 0x0e04: 0x1d4e, 0x0e05: 0x1ba1,
-	0x0e06: 0x1ba1,
-	0x0e13: 0x1eb7, 0x0e14: 0x1ea8, 0x0e15: 0x1ead, 0x0e16: 0x1ebc, 0x0e17: 0x1eb2,
-	0x0e1d: 0x4376,
-	0x0e1e: 0x801a, 0x0e1f: 0x43e8, 0x0e20: 0x0227, 0x0e21: 0x020f, 0x0e22: 0x0218, 0x0e23: 0x021b,
-	0x0e24: 0x021e, 0x0e25: 0x0221, 0x0e26: 0x0224, 0x0e27: 0x022a, 0x0e28: 0x022d, 0x0e29: 0x0017,
-	0x0e2a: 0x43d6, 0x0e2b: 0x43dc, 0x0e2c: 0x44da, 0x0e2d: 0x44e2, 0x0e2e: 0x432e, 0x0e2f: 0x4334,
-	0x0e30: 0x433a, 0x0e31: 0x4340, 0x0e32: 0x434c, 0x0e33: 0x4352, 0x0e34: 0x4358, 0x0e35: 0x4364,
-	0x0e36: 0x436a, 0x0e38: 0x4370, 0x0e39: 0x437c, 0x0e3a: 0x4382, 0x0e3b: 0x4388,
-	0x0e3c: 0x4394, 0x0e3e: 0x439a,
-	// Block 0x39, offset 0xe40
-	0x0e40: 0x43a0, 0x0e41: 0x43a6, 0x0e43: 0x43ac, 0x0e44: 0x43b2,
-	0x0e46: 0x43be, 0x0e47: 0x43c4, 0x0e48: 0x43ca, 0x0e49: 0x43d0, 0x0e4a: 0x43e2, 0x0e4b: 0x435e,
-	0x0e4c: 0x4346, 0x0e4d: 0x438e, 0x0e4e: 0x43b8, 0x0e4f: 0x1ec1, 0x0e50: 0x0293, 0x0e51: 0x0293,
-	0x0e52: 0x029c, 0x0e53: 0x029c, 0x0e54: 0x029c, 0x0e55: 0x029c, 0x0e56: 0x029f, 0x0e57: 0x029f,
-	0x0e58: 0x029f, 0x0e59: 0x029f, 0x0e5a: 0x02a5, 0x0e5b: 0x02a5, 0x0e5c: 0x02a5, 0x0e5d: 0x02a5,
-	0x0e5e: 0x0299, 0x0e5f: 0x0299, 0x0e60: 0x0299, 0x0e61: 0x0299, 0x0e62: 0x02a2, 0x0e63: 0x02a2,
-	0x0e64: 0x02a2, 0x0e65: 0x02a2, 0x0e66: 0x0296, 0x0e67: 0x0296, 0x0e68: 0x0296, 0x0e69: 0x0296,
-	0x0e6a: 0x02c9, 0x0e6b: 0x02c9, 0x0e6c: 0x02c9, 0x0e6d: 0x02c9, 0x0e6e: 0x02cc, 0x0e6f: 0x02cc,
-	0x0e70: 0x02cc, 0x0e71: 0x02cc, 0x0e72: 0x02ab, 0x0e73: 0x02ab, 0x0e74: 0x02ab, 0x0e75: 0x02ab,
-	0x0e76: 0x02a8, 0x0e77: 0x02a8, 0x0e78: 0x02a8, 0x0e79: 0x02a8, 0x0e7a: 0x02ae, 0x0e7b: 0x02ae,
-	0x0e7c: 0x02ae, 0x0e7d: 0x02ae, 0x0e7e: 0x02b1, 0x0e7f: 0x02b1,
-	// Block 0x3a, offset 0xe80
-	0x0e80: 0x02b1, 0x0e81: 0x02b1, 0x0e82: 0x02ba, 0x0e83: 0x02ba, 0x0e84: 0x02b7, 0x0e85: 0x02b7,
-	0x0e86: 0x02bd, 0x0e87: 0x02bd, 0x0e88: 0x02b4, 0x0e89: 0x02b4, 0x0e8a: 0x02c3, 0x0e8b: 0x02c3,
-	0x0e8c: 0x02c0, 0x0e8d: 0x02c0, 0x0e8e: 0x02cf, 0x0e8f: 0x02cf, 0x0e90: 0x02cf, 0x0e91: 0x02cf,
-	0x0e92: 0x02d5, 0x0e93: 0x02d5, 0x0e94: 0x02d5, 0x0e95: 0x02d5, 0x0e96: 0x02db, 0x0e97: 0x02db,
-	0x0e98: 0x02db, 0x0e99: 0x02db, 0x0e9a: 0x02d8, 0x0e9b: 0x02d8, 0x0e9c: 0x02d8, 0x0e9d: 0x02d8,
-	0x0e9e: 0x02de, 0x0e9f: 0x02de, 0x0ea0: 0x02e1, 0x0ea1: 0x02e1, 0x0ea2: 0x02e1, 0x0ea3: 0x02e1,
-	0x0ea4: 0x4454, 0x0ea5: 0x4454, 0x0ea6: 0x02e7, 0x0ea7: 0x02e7, 0x0ea8: 0x02e7, 0x0ea9: 0x02e7,
-	0x0eaa: 0x02e4, 0x0eab: 0x02e4, 0x0eac: 0x02e4, 0x0ead: 0x02e4, 0x0eae: 0x0302, 0x0eaf: 0x0302,
-	0x0eb0: 0x444e, 0x0eb1: 0x444e,
-	// Block 0x3b, offset 0xec0
-	0x0ed3: 0x02d2, 0x0ed4: 0x02d2, 0x0ed5: 0x02d2, 0x0ed6: 0x02d2, 0x0ed7: 0x02f0,
-	0x0ed8: 0x02f0, 0x0ed9: 0x02ed, 0x0eda: 0x02ed, 0x0edb: 0x02f3, 0x0edc: 0x02f3, 0x0edd: 0x2191,
-	0x0ede: 0x02f9, 0x0edf: 0x02f9, 0x0ee0: 0x02ea, 0x0ee1: 0x02ea, 0x0ee2: 0x02f6, 0x0ee3: 0x02f6,
-	0x0ee4: 0x02ff, 0x0ee5: 0x02ff, 0x0ee6: 0x02ff, 0x0ee7: 0x02ff, 0x0ee8: 0x0287, 0x0ee9: 0x0287,
-	0x0eea: 0x26ec, 0x0eeb: 0x26ec, 0x0eec: 0x275c, 0x0eed: 0x275c, 0x0eee: 0x272b, 0x0eef: 0x272b,
-	0x0ef0: 0x2747, 0x0ef1: 0x2747, 0x0ef2: 0x2740, 0x0ef3: 0x2740, 0x0ef4: 0x274e, 0x0ef5: 0x274e,
-	0x0ef6: 0x2755, 0x0ef7: 0x2755, 0x0ef8: 0x2755, 0x0ef9: 0x2732, 0x0efa: 0x2732, 0x0efb: 0x2732,
-	0x0efc: 0x02fc, 0x0efd: 0x02fc, 0x0efe: 0x02fc, 0x0eff: 0x02fc,
-	// Block 0x3c, offset 0xf00
-	0x0f00: 0x26f3, 0x0f01: 0x26fa, 0x0f02: 0x2716, 0x0f03: 0x2732, 0x0f04: 0x2739, 0x0f05: 0x1ecb,
-	0x0f06: 0x1ed0, 0x0f07: 0x1ed5, 0x0f08: 0x1ee4, 0x0f09: 0x1ef3, 0x0f0a: 0x1ef8, 0x0f0b: 0x1efd,
-	0x0f0c: 0x1f02, 0x0f0d: 0x1f07, 0x0f0e: 0x1f16, 0x0f0f: 0x1f25, 0x0f10: 0x1f2a, 0x0f11: 0x1f2f,
-	0x0f12: 0x1f3e, 0x0f13: 0x1f4d, 0x0f14: 0x1f52, 0x0f15: 0x1f57, 0x0f16: 0x1f5c, 0x0f17: 0x1f6b,
-	0x0f18: 0x1f70, 0x0f19: 0x1f7f, 0x0f1a: 0x1f84, 0x0f1b: 0x1f89, 0x0f1c: 0x1f98, 0x0f1d: 0x1f9d,
-	0x0f1e: 0x1fa2, 0x0f1f: 0x1fac, 0x0f20: 0x1fe8, 0x0f21: 0x1ff7, 0x0f22: 0x2006, 0x0f23: 0x200b,
-	0x0f24: 0x2010, 0x0f25: 0x201a, 0x0f26: 0x2029, 0x0f27: 0x202e, 0x0f28: 0x203d, 0x0f29: 0x2042,
-	0x0f2a: 0x2047, 0x0f2b: 0x2056, 0x0f2c: 0x205b, 0x0f2d: 0x206a, 0x0f2e: 0x206f, 0x0f2f: 0x2074,
-	0x0f30: 0x2079, 0x0f31: 0x207e, 0x0f32: 0x2083, 0x0f33: 0x2088, 0x0f34: 0x208d, 0x0f35: 0x2092,
-	0x0f36: 0x2097, 0x0f37: 0x209c, 0x0f38: 0x20a1, 0x0f39: 0x20a6, 0x0f3a: 0x20ab, 0x0f3b: 0x20b0,
-	0x0f3c: 0x20b5, 0x0f3d: 0x20ba, 0x0f3e: 0x20bf, 0x0f3f: 0x20c9,
-	// Block 0x3d, offset 0xf40
-	0x0f40: 0x20ce, 0x0f41: 0x20d3, 0x0f42: 0x20d8, 0x0f43: 0x20e2, 0x0f44: 0x20e7, 0x0f45: 0x20f1,
-	0x0f46: 0x20f6, 0x0f47: 0x20fb, 0x0f48: 0x2100, 0x0f49: 0x2105, 0x0f4a: 0x210a, 0x0f4b: 0x210f,
-	0x0f4c: 0x2114, 0x0f4d: 0x2119, 0x0f4e: 0x2128, 0x0f4f: 0x2137, 0x0f50: 0x213c, 0x0f51: 0x2141,
-	0x0f52: 0x2146, 0x0f53: 0x214b, 0x0f54: 0x2150, 0x0f55: 0x215a, 0x0f56: 0x215f, 0x0f57: 0x2164,
-	0x0f58: 0x2173, 0x0f59: 0x2182, 0x0f5a: 0x2187, 0x0f5b: 0x4406, 0x0f5c: 0x440c, 0x0f5d: 0x4442,
-	0x0f5e: 0x4499, 0x0f5f: 0x44a0, 0x0f60: 0x44a7, 0x0f61: 0x44ae, 0x0f62: 0x44b5, 0x0f63: 0x44bc,
-	0x0f64: 0x2708, 0x0f65: 0x270f, 0x0f66: 0x2716, 0x0f67: 0x271d, 0x0f68: 0x2732, 0x0f69: 0x2739,
-	0x0f6a: 0x1eda, 0x0f6b: 0x1edf, 0x0f6c: 0x1ee4, 0x0f6d: 0x1ee9, 0x0f6e: 0x1ef3, 0x0f6f: 0x1ef8,
-	0x0f70: 0x1f0c, 0x0f71: 0x1f11, 0x0f72: 0x1f16, 0x0f73: 0x1f1b, 0x0f74: 0x1f25, 0x0f75: 0x1f2a,
-	0x0f76: 0x1f34, 0x0f77: 0x1f39, 0x0f78: 0x1f3e, 0x0f79: 0x1f43, 0x0f7a: 0x1f4d, 0x0f7b: 0x1f52,
-	0x0f7c: 0x207e, 0x0f7d: 0x2083, 0x0f7e: 0x2092, 0x0f7f: 0x2097,
-	// Block 0x3e, offset 0xf80
-	0x0f80: 0x209c, 0x0f81: 0x20b0, 0x0f82: 0x20b5, 0x0f83: 0x20ba, 0x0f84: 0x20bf, 0x0f85: 0x20d8,
-	0x0f86: 0x20e2, 0x0f87: 0x20e7, 0x0f88: 0x20ec, 0x0f89: 0x2100, 0x0f8a: 0x211e, 0x0f8b: 0x2123,
-	0x0f8c: 0x2128, 0x0f8d: 0x212d, 0x0f8e: 0x2137, 0x0f8f: 0x213c, 0x0f90: 0x4442, 0x0f91: 0x2169,
-	0x0f92: 0x216e, 0x0f93: 0x2173, 0x0f94: 0x2178, 0x0f95: 0x2182, 0x0f96: 0x2187, 0x0f97: 0x26f3,
-	0x0f98: 0x26fa, 0x0f99: 0x2701, 0x0f9a: 0x2716, 0x0f9b: 0x2724, 0x0f9c: 0x1ecb, 0x0f9d: 0x1ed0,
-	0x0f9e: 0x1ed5, 0x0f9f: 0x1ee4, 0x0fa0: 0x1eee, 0x0fa1: 0x1efd, 0x0fa2: 0x1f02, 0x0fa3: 0x1f07,
-	0x0fa4: 0x1f16, 0x0fa5: 0x1f20, 0x0fa6: 0x1f3e, 0x0fa7: 0x1f57, 0x0fa8: 0x1f5c, 0x0fa9: 0x1f6b,
-	0x0faa: 0x1f70, 0x0fab: 0x1f7f, 0x0fac: 0x1f89, 0x0fad: 0x1f98, 0x0fae: 0x1f9d, 0x0faf: 0x1fa2,
-	0x0fb0: 0x1fac, 0x0fb1: 0x1fe8, 0x0fb2: 0x1fed, 0x0fb3: 0x1ff7, 0x0fb4: 0x2006, 0x0fb5: 0x200b,
-	0x0fb6: 0x2010, 0x0fb7: 0x201a, 0x0fb8: 0x2029, 0x0fb9: 0x203d, 0x0fba: 0x2042, 0x0fbb: 0x2047,
-	0x0fbc: 0x2056, 0x0fbd: 0x205b, 0x0fbe: 0x206a, 0x0fbf: 0x206f,
-	// Block 0x3f, offset 0xfc0
-	0x0fc0: 0x2074, 0x0fc1: 0x2079, 0x0fc2: 0x2088, 0x0fc3: 0x208d, 0x0fc4: 0x20a1, 0x0fc5: 0x20a6,
-	0x0fc6: 0x20ab, 0x0fc7: 0x20b0, 0x0fc8: 0x20b5, 0x0fc9: 0x20c9, 0x0fca: 0x20ce, 0x0fcb: 0x20d3,
-	0x0fcc: 0x20d8, 0x0fcd: 0x20dd, 0x0fce: 0x20f1, 0x0fcf: 0x20f6, 0x0fd0: 0x20fb, 0x0fd1: 0x2100,
-	0x0fd2: 0x210f, 0x0fd3: 0x2114, 0x0fd4: 0x2119, 0x0fd5: 0x2128, 0x0fd6: 0x2132, 0x0fd7: 0x2141,
-	0x0fd8: 0x2146, 0x0fd9: 0x4436, 0x0fda: 0x215a, 0x0fdb: 0x215f, 0x0fdc: 0x2164, 0x0fdd: 0x2173,
-	0x0fde: 0x217d, 0x0fdf: 0x2716, 0x0fe0: 0x2724, 0x0fe1: 0x1ee4, 0x0fe2: 0x1eee, 0x0fe3: 0x1f16,
-	0x0fe4: 0x1f20, 0x0fe5: 0x1f3e, 0x0fe6: 0x1f48, 0x0fe7: 0x1fac, 0x0fe8: 0x1fb1, 0x0fe9: 0x1fd4,
-	0x0fea: 0x1fd9, 0x0feb: 0x20b0, 0x0fec: 0x20b5, 0x0fed: 0x20d8, 0x0fee: 0x2128, 0x0fef: 0x2132,
-	0x0ff0: 0x2173, 0x0ff1: 0x217d, 0x0ff2: 0x44ea, 0x0ff3: 0x44f2, 0x0ff4: 0x44fa, 0x0ff5: 0x2033,
-	0x0ff6: 0x2038, 0x0ff7: 0x204c, 0x0ff8: 0x2051, 0x0ff9: 0x2060, 0x0ffa: 0x2065, 0x0ffb: 0x1fb6,
-	0x0ffc: 0x1fbb, 0x0ffd: 0x1fde, 0x0ffe: 0x1fe3, 0x0fff: 0x1f75,
-	// Block 0x40, offset 0x1000
-	0x1000: 0x1f7a, 0x1001: 0x1f61, 0x1002: 0x1f66, 0x1003: 0x1f8e, 0x1004: 0x1f93, 0x1005: 0x1ffc,
-	0x1006: 0x2001, 0x1007: 0x201f, 0x1008: 0x2024, 0x1009: 0x1fc0, 0x100a: 0x1fc5, 0x100b: 0x1fca,
-	0x100c: 0x1fd4, 0x100d: 0x1fcf, 0x100e: 0x1fa7, 0x100f: 0x1ff2, 0x1010: 0x2015, 0x1011: 0x2033,
-	0x1012: 0x2038, 0x1013: 0x204c, 0x1014: 0x2051, 0x1015: 0x2060, 0x1016: 0x2065, 0x1017: 0x1fb6,
-	0x1018: 0x1fbb, 0x1019: 0x1fde, 0x101a: 0x1fe3, 0x101b: 0x1f75, 0x101c: 0x1f7a, 0x101d: 0x1f61,
-	0x101e: 0x1f66, 0x101f: 0x1f8e, 0x1020: 0x1f93, 0x1021: 0x1ffc, 0x1022: 0x2001, 0x1023: 0x201f,
-	0x1024: 0x2024, 0x1025: 0x1fc0, 0x1026: 0x1fc5, 0x1027: 0x1fca, 0x1028: 0x1fd4, 0x1029: 0x1fcf,
-	0x102a: 0x1fa7, 0x102b: 0x1ff2, 0x102c: 0x2015, 0x102d: 0x1fc0, 0x102e: 0x1fc5, 0x102f: 0x1fca,
-	0x1030: 0x1fd4, 0x1031: 0x1fb1, 0x1032: 0x1fd9, 0x1033: 0x202e, 0x1034: 0x1f98, 0x1035: 0x1f9d,
-	0x1036: 0x1fa2, 0x1037: 0x1fc0, 0x1038: 0x1fc5, 0x1039: 0x1fca, 0x103a: 0x202e, 0x103b: 0x203d,
-	0x103c: 0x43ee, 0x103d: 0x43ee,
-	// Block 0x41, offset 0x1040
-	0x1050: 0x2453, 0x1051: 0x2468,
-	0x1052: 0x2468, 0x1053: 0x246f, 0x1054: 0x2476, 0x1055: 0x248b, 0x1056: 0x2492, 0x1057: 0x2499,
-	0x1058: 0x24bc, 0x1059: 0x24bc, 0x105a: 0x24df, 0x105b: 0x24d8, 0x105c: 0x24f4, 0x105d: 0x24e6,
-	0x105e: 0x24ed, 0x105f: 0x2510, 0x1060: 0x2510, 0x1061: 0x2509, 0x1062: 0x2517, 0x1063: 0x2517,
-	0x1064: 0x2541, 0x1065: 0x2541, 0x1066: 0x255d, 0x1067: 0x2525, 0x1068: 0x2525, 0x1069: 0x251e,
-	0x106a: 0x2533, 0x106b: 0x2533, 0x106c: 0x253a, 0x106d: 0x253a, 0x106e: 0x2564, 0x106f: 0x2572,
-	0x1070: 0x2572, 0x1071: 0x2579, 0x1072: 0x2579, 0x1073: 0x2580, 0x1074: 0x2587, 0x1075: 0x258e,
-	0x1076: 0x2595, 0x1077: 0x2595, 0x1078: 0x259c, 0x1079: 0x25aa, 0x107a: 0x25b8, 0x107b: 0x25b1,
-	0x107c: 0x25bf, 0x107d: 0x25bf, 0x107e: 0x25d4, 0x107f: 0x25db,
-	// Block 0x42, offset 0x1080
-	0x1080: 0x260c, 0x1081: 0x261a, 0x1082: 0x2613, 0x1083: 0x25f7, 0x1084: 0x25f7, 0x1085: 0x2621,
-	0x1086: 0x2621, 0x1087: 0x2628, 0x1088: 0x2628, 0x1089: 0x2652, 0x108a: 0x2659, 0x108b: 0x2660,
-	0x108c: 0x2636, 0x108d: 0x2644, 0x108e: 0x2667, 0x108f: 0x266e,
-	0x1092: 0x263d, 0x1093: 0x26c2, 0x1094: 0x26c9, 0x1095: 0x269f, 0x1096: 0x26a6, 0x1097: 0x268a,
-	0x1098: 0x268a, 0x1099: 0x2691, 0x109a: 0x26bb, 0x109b: 0x26b4, 0x109c: 0x26de, 0x109d: 0x26de,
-	0x109e: 0x244c, 0x109f: 0x2461, 0x10a0: 0x245a, 0x10a1: 0x2484, 0x10a2: 0x247d, 0x10a3: 0x24a7,
-	0x10a4: 0x24a0, 0x10a5: 0x24ca, 0x10a6: 0x24ae, 0x10a7: 0x24c3, 0x10a8: 0x24fb, 0x10a9: 0x2548,
-	0x10aa: 0x252c, 0x10ab: 0x256b, 0x10ac: 0x2605, 0x10ad: 0x262f, 0x10ae: 0x26d7, 0x10af: 0x26d0,
-	0x10b0: 0x26e5, 0x10b1: 0x267c, 0x10b2: 0x25e2, 0x10b3: 0x26ad, 0x10b4: 0x25d4, 0x10b5: 0x260c,
-	0x10b6: 0x25a3, 0x10b7: 0x25f0, 0x10b8: 0x2683, 0x10b9: 0x2675, 0x10ba: 0x25fe, 0x10bb: 0x25e9,
-	0x10bc: 0x25fe, 0x10bd: 0x2683, 0x10be: 0x24b5, 0x10bf: 0x24d1,
-	// Block 0x43, offset 0x10c0
-	0x10c0: 0x264b, 0x10c1: 0x25c6, 0x10c2: 0x2445, 0x10c3: 0x25e9, 0x10c4: 0x258e, 0x10c5: 0x255d,
-	0x10c6: 0x2502, 0x10c7: 0x2698,
-	0x10f0: 0x2556, 0x10f1: 0x25cd, 0x10f2: 0x296a, 0x10f3: 0x2961, 0x10f4: 0x2997, 0x10f5: 0x2985,
-	0x10f6: 0x2973, 0x10f7: 0x298e, 0x10f8: 0x29a0, 0x10f9: 0x254f, 0x10fa: 0x2e44, 0x10fb: 0x2cb4,
-	0x10fc: 0x297c,
-	// Block 0x44, offset 0x1100
-	0x1110: 0x0019, 0x1111: 0x04f5,
-	0x1112: 0x04f9, 0x1113: 0x0035, 0x1114: 0x0037, 0x1115: 0x0003, 0x1116: 0x003f, 0x1117: 0x0531,
-	0x1118: 0x0535, 0x1119: 0x1c9e,
-	0x1120: 0x80e6, 0x1121: 0x80e6, 0x1122: 0x80e6, 0x1123: 0x80e6,
-	0x1124: 0x80e6, 0x1125: 0x80e6, 0x1126: 0x80e6,
-	0x1130: 0x19b5, 0x1131: 0x04b5, 0x1132: 0x04b1, 0x1133: 0x007f, 0x1134: 0x007f, 0x1135: 0x0011,
-	0x1136: 0x0013, 0x1137: 0x00b7, 0x1138: 0x00bb, 0x1139: 0x0529, 0x113a: 0x052d, 0x113b: 0x051d,
-	0x113c: 0x0521, 0x113d: 0x0505, 0x113e: 0x0509, 0x113f: 0x04fd,
-	// Block 0x45, offset 0x1140
-	0x1140: 0x0501, 0x1141: 0x050d, 0x1142: 0x0511, 0x1143: 0x0515, 0x1144: 0x0519,
-	0x1147: 0x0077, 0x1148: 0x007b, 0x1149: 0x424f, 0x114a: 0x424f, 0x114b: 0x424f,
-	0x114c: 0x424f, 0x114d: 0x007f, 0x114e: 0x007f, 0x114f: 0x007f, 0x1150: 0x0019, 0x1151: 0x04f5,
-	0x1152: 0x001d, 0x1154: 0x0037, 0x1155: 0x0035, 0x1156: 0x003f, 0x1157: 0x0003,
-	0x1158: 0x04b5, 0x1159: 0x0011, 0x115a: 0x0013, 0x115b: 0x00b7, 0x115c: 0x00bb, 0x115d: 0x0529,
-	0x115e: 0x052d, 0x115f: 0x0007, 0x1160: 0x000d, 0x1161: 0x0015, 0x1162: 0x0017, 0x1163: 0x001b,
-	0x1164: 0x0039, 0x1165: 0x003d, 0x1166: 0x003b, 0x1168: 0x0079, 0x1169: 0x0009,
-	0x116a: 0x000b, 0x116b: 0x0041,
-	0x1170: 0x4290, 0x1171: 0x4412, 0x1172: 0x4295, 0x1174: 0x429a,
-	0x1176: 0x429f, 0x1177: 0x4418, 0x1178: 0x42a4, 0x1179: 0x441e, 0x117a: 0x42a9, 0x117b: 0x4424,
-	0x117c: 0x42ae, 0x117d: 0x442a, 0x117e: 0x42b3, 0x117f: 0x4430,
-	// Block 0x46, offset 0x1180
-	0x1180: 0x0230, 0x1181: 0x43f4, 0x1182: 0x43f4, 0x1183: 0x43fa, 0x1184: 0x43fa, 0x1185: 0x443c,
-	0x1186: 0x443c, 0x1187: 0x4400, 0x1188: 0x4400, 0x1189: 0x4448, 0x118a: 0x4448, 0x118b: 0x4448,
-	0x118c: 0x4448, 0x118d: 0x0233, 0x118e: 0x0233, 0x118f: 0x0236, 0x1190: 0x0236, 0x1191: 0x0236,
-	0x1192: 0x0236, 0x1193: 0x0239, 0x1194: 0x0239, 0x1195: 0x023c, 0x1196: 0x023c, 0x1197: 0x023c,
-	0x1198: 0x023c, 0x1199: 0x023f, 0x119a: 0x023f, 0x119b: 0x023f, 0x119c: 0x023f, 0x119d: 0x0242,
-	0x119e: 0x0242, 0x119f: 0x0242, 0x11a0: 0x0242, 0x11a1: 0x0245, 0x11a2: 0x0245, 0x11a3: 0x0245,
-	0x11a4: 0x0245, 0x11a5: 0x0248, 0x11a6: 0x0248, 0x11a7: 0x0248, 0x11a8: 0x0248, 0x11a9: 0x024b,
-	0x11aa: 0x024b, 0x11ab: 0x024e, 0x11ac: 0x024e, 0x11ad: 0x0251, 0x11ae: 0x0251, 0x11af: 0x0254,
-	0x11b0: 0x0254, 0x11b1: 0x0257, 0x11b2: 0x0257, 0x11b3: 0x0257, 0x11b4: 0x0257, 0x11b5: 0x025a,
-	0x11b6: 0x025a, 0x11b7: 0x025a, 0x11b8: 0x025a, 0x11b9: 0x025d, 0x11ba: 0x025d, 0x11bb: 0x025d,
-	0x11bc: 0x025d, 0x11bd: 0x0260, 0x11be: 0x0260, 0x11bf: 0x0260,
-	// Block 0x47, offset 0x11c0
-	0x11c0: 0x0260, 0x11c1: 0x0263, 0x11c2: 0x0263, 0x11c3: 0x0263, 0x11c4: 0x0263, 0x11c5: 0x0266,
-	0x11c6: 0x0266, 0x11c7: 0x0266, 0x11c8: 0x0266, 0x11c9: 0x0269, 0x11ca: 0x0269, 0x11cb: 0x0269,
-	0x11cc: 0x0269, 0x11cd: 0x026c, 0x11ce: 0x026c, 0x11cf: 0x026c, 0x11d0: 0x026c, 0x11d1: 0x026f,
-	0x11d2: 0x026f, 0x11d3: 0x026f, 0x11d4: 0x026f, 0x11d5: 0x0272, 0x11d6: 0x0272, 0x11d7: 0x0272,
-	0x11d8: 0x0272, 0x11d9: 0x0275, 0x11da: 0x0275, 0x11db: 0x0275, 0x11dc: 0x0275, 0x11dd: 0x0278,
-	0x11de: 0x0278, 0x11df: 0x0278, 0x11e0: 0x0278, 0x11e1: 0x027b, 0x11e2: 0x027b, 0x11e3: 0x027b,
-	0x11e4: 0x027b, 0x11e5: 0x027e, 0x11e6: 0x027e, 0x11e7: 0x027e, 0x11e8: 0x027e, 0x11e9: 0x0281,
-	0x11ea: 0x0281, 0x11eb: 0x0281, 0x11ec: 0x0281, 0x11ed: 0x0284, 0x11ee: 0x0284, 0x11ef: 0x0287,
-	0x11f0: 0x0287, 0x11f1: 0x028a, 0x11f2: 0x028a, 0x11f3: 0x028a, 0x11f4: 0x028a, 0x11f5: 0x2e91,
-	0x11f6: 0x2e91, 0x11f7: 0x2e99, 0x11f8: 0x2e99, 0x11f9: 0x2ea1, 0x11fa: 0x2ea1, 0x11fb: 0x20c4,
-	0x11fc: 0x20c4,
-	// Block 0x48, offset 0x1200
-	0x1200: 0x0081, 0x1201: 0x0083, 0x1202: 0x0085, 0x1203: 0x0087, 0x1204: 0x0089, 0x1205: 0x008b,
-	0x1206: 0x008d, 0x1207: 0x008f, 0x1208: 0x0091, 0x1209: 0x0093, 0x120a: 0x0095, 0x120b: 0x0097,
-	0x120c: 0x0099, 0x120d: 0x009b, 0x120e: 0x009d, 0x120f: 0x009f, 0x1210: 0x00a1, 0x1211: 0x00a3,
-	0x1212: 0x00a5, 0x1213: 0x00a7, 0x1214: 0x00a9, 0x1215: 0x00ab, 0x1216: 0x00ad, 0x1217: 0x00af,
-	0x1218: 0x00b1, 0x1219: 0x00b3, 0x121a: 0x00b5, 0x121b: 0x00b7, 0x121c: 0x00b9, 0x121d: 0x00bb,
-	0x121e: 0x00bd, 0x121f: 0x04e9, 0x1220: 0x04ed, 0x1221: 0x04f9, 0x1222: 0x050d, 0x1223: 0x0511,
-	0x1224: 0x04f5, 0x1225: 0x061d, 0x1226: 0x0615, 0x1227: 0x0539, 0x1228: 0x0541, 0x1229: 0x0549,
-	0x122a: 0x0551, 0x122b: 0x0559, 0x122c: 0x05dd, 0x122d: 0x05e5, 0x122e: 0x05ed, 0x122f: 0x0591,
-	0x1230: 0x0621, 0x1231: 0x053d, 0x1232: 0x0545, 0x1233: 0x054d, 0x1234: 0x0555, 0x1235: 0x055d,
-	0x1236: 0x0561, 0x1237: 0x0565, 0x1238: 0x0569, 0x1239: 0x056d, 0x123a: 0x0571, 0x123b: 0x0575,
-	0x123c: 0x0579, 0x123d: 0x057d, 0x123e: 0x0581, 0x123f: 0x0585,
-	// Block 0x49, offset 0x1240
-	0x1240: 0x0589, 0x1241: 0x058d, 0x1242: 0x0595, 0x1243: 0x0599, 0x1244: 0x059d, 0x1245: 0x05a1,
-	0x1246: 0x05a5, 0x1247: 0x05a9, 0x1248: 0x05ad, 0x1249: 0x05b1, 0x124a: 0x05b5, 0x124b: 0x05b9,
-	0x124c: 0x05bd, 0x124d: 0x05c1, 0x124e: 0x05c5, 0x124f: 0x05c9, 0x1250: 0x05cd, 0x1251: 0x05d1,
-	0x1252: 0x05d5, 0x1253: 0x05d9, 0x1254: 0x05e1, 0x1255: 0x05e9, 0x1256: 0x05f1, 0x1257: 0x05f5,
-	0x1258: 0x05f9, 0x1259: 0x05fd, 0x125a: 0x0601, 0x125b: 0x0605, 0x125c: 0x0609, 0x125d: 0x0619,
-	0x125e: 0x49aa, 0x125f: 0x49b0, 0x1260: 0x03bd, 0x1261: 0x030d, 0x1262: 0x0311, 0x1263: 0x0435,
-	0x1264: 0x0315, 0x1265: 0x0439, 0x1266: 0x043d, 0x1267: 0x0319, 0x1268: 0x031d, 0x1269: 0x0321,
-	0x126a: 0x0441, 0x126b: 0x0445, 0x126c: 0x0449, 0x126d: 0x044d, 0x126e: 0x0451, 0x126f: 0x0455,
-	0x1270: 0x0361, 0x1271: 0x0325, 0x1272: 0x0329, 0x1273: 0x032d, 0x1274: 0x0375, 0x1275: 0x0331,
-	0x1276: 0x0335, 0x1277: 0x0339, 0x1278: 0x033d, 0x1279: 0x0341, 0x127a: 0x0345, 0x127b: 0x0349,
-	0x127c: 0x034d, 0x127d: 0x0351, 0x127e: 0x0355,
-	// Block 0x4a, offset 0x1280
-	0x1280: 0x0063, 0x1281: 0x0065, 0x1282: 0x0067, 0x1283: 0x0069, 0x1284: 0x006b, 0x1285: 0x006d,
-	0x1286: 0x006f, 0x1287: 0x0071, 0x1288: 0x0073, 0x1289: 0x0075, 0x128a: 0x0083, 0x128b: 0x0085,
-	0x128c: 0x0087, 0x128d: 0x0089, 0x128e: 0x008b, 0x128f: 0x008d, 0x1290: 0x008f, 0x1291: 0x0091,
-	0x1292: 0x0093, 0x1293: 0x0095, 0x1294: 0x0097, 0x1295: 0x0099, 0x1296: 0x009b, 0x1297: 0x009d,
-	0x1298: 0x009f, 0x1299: 0x00a1, 0x129a: 0x00a3, 0x129b: 0x00a5, 0x129c: 0x00a7, 0x129d: 0x00a9,
-	0x129e: 0x00ab, 0x129f: 0x00ad, 0x12a0: 0x00af, 0x12a1: 0x00b1, 0x12a2: 0x00b3, 0x12a3: 0x00b5,
-	0x12a4: 0x00e0, 0x12a5: 0x00f5, 0x12a8: 0x0173, 0x12a9: 0x0176,
-	0x12aa: 0x0179, 0x12ab: 0x017c, 0x12ac: 0x017f, 0x12ad: 0x0182, 0x12ae: 0x0185, 0x12af: 0x0188,
-	0x12b0: 0x018b, 0x12b1: 0x018e, 0x12b2: 0x0191, 0x12b3: 0x0194, 0x12b4: 0x0197, 0x12b5: 0x019a,
-	0x12b6: 0x019d, 0x12b7: 0x01a0, 0x12b8: 0x01a3, 0x12b9: 0x0188, 0x12ba: 0x01a6, 0x12bb: 0x01a9,
-	0x12bc: 0x01ac, 0x12bd: 0x01af, 0x12be: 0x01b2, 0x12bf: 0x01b5,
-	// Block 0x4b, offset 0x12c0
-	0x12c0: 0x01fd, 0x12c1: 0x0200, 0x12c2: 0x0203, 0x12c3: 0x04cd, 0x12c4: 0x01c7, 0x12c5: 0x01d0,
-	0x12c6: 0x01d6, 0x12c7: 0x01fa, 0x12c8: 0x01eb, 0x12c9: 0x01e8, 0x12ca: 0x0206, 0x12cb: 0x0209,
-	0x12ce: 0x0021, 0x12cf: 0x0023, 0x12d0: 0x0025, 0x12d1: 0x0027,
-	0x12d2: 0x0029, 0x12d3: 0x002b, 0x12d4: 0x002d, 0x12d5: 0x002f, 0x12d6: 0x0031, 0x12d7: 0x0033,
-	0x12d8: 0x0021, 0x12d9: 0x0023, 0x12da: 0x0025, 0x12db: 0x0027, 0x12dc: 0x0029, 0x12dd: 0x002b,
-	0x12de: 0x002d, 0x12df: 0x002f, 0x12e0: 0x0031, 0x12e1: 0x0033, 0x12e2: 0x0021, 0x12e3: 0x0023,
-	0x12e4: 0x0025, 0x12e5: 0x0027, 0x12e6: 0x0029, 0x12e7: 0x002b, 0x12e8: 0x002d, 0x12e9: 0x002f,
-	0x12ea: 0x0031, 0x12eb: 0x0033, 0x12ec: 0x0021, 0x12ed: 0x0023, 0x12ee: 0x0025, 0x12ef: 0x0027,
-	0x12f0: 0x0029, 0x12f1: 0x002b, 0x12f2: 0x002d, 0x12f3: 0x002f, 0x12f4: 0x0031, 0x12f5: 0x0033,
-	0x12f6: 0x0021, 0x12f7: 0x0023, 0x12f8: 0x0025, 0x12f9: 0x0027, 0x12fa: 0x0029, 0x12fb: 0x002b,
-	0x12fc: 0x002d, 0x12fd: 0x002f, 0x12fe: 0x0031, 0x12ff: 0x0033,
-	// Block 0x4c, offset 0x1300
-	0x1300: 0x0233, 0x1301: 0x0236, 0x1302: 0x0242, 0x1303: 0x024b, 0x1305: 0x0284,
-	0x1306: 0x0254, 0x1307: 0x0245, 0x1308: 0x0263, 0x1309: 0x028a, 0x130a: 0x0275, 0x130b: 0x0278,
-	0x130c: 0x027b, 0x130d: 0x027e, 0x130e: 0x0257, 0x130f: 0x0269, 0x1310: 0x026f, 0x1311: 0x025d,
-	0x1312: 0x0272, 0x1313: 0x0251, 0x1314: 0x025a, 0x1315: 0x023c, 0x1316: 0x023f, 0x1317: 0x0248,
-	0x1318: 0x024e, 0x1319: 0x0260, 0x131a: 0x0266, 0x131b: 0x026c, 0x131c: 0x028d, 0x131d: 0x02de,
-	0x131e: 0x02c6, 0x131f: 0x0290, 0x1321: 0x0236, 0x1322: 0x0242,
-	0x1324: 0x0281, 0x1327: 0x0245, 0x1329: 0x028a,
-	0x132a: 0x0275, 0x132b: 0x0278, 0x132c: 0x027b, 0x132d: 0x027e, 0x132e: 0x0257, 0x132f: 0x0269,
-	0x1330: 0x026f, 0x1331: 0x025d, 0x1332: 0x0272, 0x1334: 0x025a, 0x1335: 0x023c,
-	0x1336: 0x023f, 0x1337: 0x0248, 0x1339: 0x0260, 0x133b: 0x026c,
-	// Block 0x4d, offset 0x1340
-	0x1342: 0x0242,
-	0x1347: 0x0245, 0x1349: 0x028a, 0x134b: 0x0278,
-	0x134d: 0x027e, 0x134e: 0x0257, 0x134f: 0x0269, 0x1351: 0x025d,
-	0x1352: 0x0272, 0x1354: 0x025a, 0x1357: 0x0248,
-	0x1359: 0x0260, 0x135b: 0x026c, 0x135d: 0x02de,
-	0x135f: 0x0290, 0x1361: 0x0236, 0x1362: 0x0242,
-	0x1364: 0x0281, 0x1367: 0x0245, 0x1368: 0x0263, 0x1369: 0x028a,
-	0x136a: 0x0275, 0x136c: 0x027b, 0x136d: 0x027e, 0x136e: 0x0257, 0x136f: 0x0269,
-	0x1370: 0x026f, 0x1371: 0x025d, 0x1372: 0x0272, 0x1374: 0x025a, 0x1375: 0x023c,
-	0x1376: 0x023f, 0x1377: 0x0248, 0x1379: 0x0260, 0x137a: 0x0266, 0x137b: 0x026c,
-	0x137c: 0x028d, 0x137e: 0x02c6,
-	// Block 0x4e, offset 0x1380
-	0x1380: 0x0233, 0x1381: 0x0236, 0x1382: 0x0242, 0x1383: 0x024b, 0x1384: 0x0281, 0x1385: 0x0284,
-	0x1386: 0x0254, 0x1387: 0x0245, 0x1388: 0x0263, 0x1389: 0x028a, 0x138b: 0x0278,
-	0x138c: 0x027b, 0x138d: 0x027e, 0x138e: 0x0257, 0x138f: 0x0269, 0x1390: 0x026f, 0x1391: 0x025d,
-	0x1392: 0x0272, 0x1393: 0x0251, 0x1394: 0x025a, 0x1395: 0x023c, 0x1396: 0x023f, 0x1397: 0x0248,
-	0x1398: 0x024e, 0x1399: 0x0260, 0x139a: 0x0266, 0x139b: 0x026c,
-	0x13a1: 0x0236, 0x13a2: 0x0242, 0x13a3: 0x024b,
-	0x13a5: 0x0284, 0x13a6: 0x0254, 0x13a7: 0x0245, 0x13a8: 0x0263, 0x13a9: 0x028a,
-	0x13ab: 0x0278, 0x13ac: 0x027b, 0x13ad: 0x027e, 0x13ae: 0x0257, 0x13af: 0x0269,
-	0x13b0: 0x026f, 0x13b1: 0x025d, 0x13b2: 0x0272, 0x13b3: 0x0251, 0x13b4: 0x025a, 0x13b5: 0x023c,
-	0x13b6: 0x023f, 0x13b7: 0x0248, 0x13b8: 0x024e, 0x13b9: 0x0260, 0x13ba: 0x0266, 0x13bb: 0x026c,
-	// Block 0x4f, offset 0x13c0
-	0x13c0: 0x19bb, 0x13c1: 0x19b8, 0x13c2: 0x19be, 0x13c3: 0x19e2, 0x13c4: 0x1a06, 0x13c5: 0x1a2a,
-	0x13c6: 0x1a4e, 0x13c7: 0x1a57, 0x13c8: 0x1a5d, 0x13c9: 0x1a63, 0x13ca: 0x1a69,
-	0x13d0: 0x1bce, 0x13d1: 0x1bd2,
-	0x13d2: 0x1bd6, 0x13d3: 0x1bda, 0x13d4: 0x1bde, 0x13d5: 0x1be2, 0x13d6: 0x1be6, 0x13d7: 0x1bea,
-	0x13d8: 0x1bee, 0x13d9: 0x1bf2, 0x13da: 0x1bf6, 0x13db: 0x1bfa, 0x13dc: 0x1bfe, 0x13dd: 0x1c02,
-	0x13de: 0x1c06, 0x13df: 0x1c0a, 0x13e0: 0x1c0e, 0x13e1: 0x1c12, 0x13e2: 0x1c16, 0x13e3: 0x1c1a,
-	0x13e4: 0x1c1e, 0x13e5: 0x1c22, 0x13e6: 0x1c26, 0x13e7: 0x1c2a, 0x13e8: 0x1c2e, 0x13e9: 0x1c32,
-	0x13ea: 0x28c9, 0x13eb: 0x0047, 0x13ec: 0x0065, 0x13ed: 0x1a7e, 0x13ee: 0x1af3,
-	0x13f0: 0x0043, 0x13f1: 0x0045, 0x13f2: 0x0047, 0x13f3: 0x0049, 0x13f4: 0x004b, 0x13f5: 0x004d,
-	0x13f6: 0x004f, 0x13f7: 0x0051, 0x13f8: 0x0053, 0x13f9: 0x0055, 0x13fa: 0x0057, 0x13fb: 0x0059,
-	0x13fc: 0x005b, 0x13fd: 0x005d, 0x13fe: 0x005f, 0x13ff: 0x0061,
-	// Block 0x50, offset 0x1400
-	0x1400: 0x2858, 0x1401: 0x286d, 0x1402: 0x0575,
-	0x1410: 0x0c81, 0x1411: 0x0ab9,
-	0x1412: 0x0945, 0x1413: 0x45aa, 0x1414: 0x078d, 0x1415: 0x0a61, 0x1416: 0x13a1, 0x1417: 0x0a71,
-	0x1418: 0x0799, 0x1419: 0x0d49, 0x141a: 0x0f21, 0x141b: 0x0d21, 0x141c: 0x0899, 0x141d: 0x0bdd,
-	0x141e: 0x0831, 0x141f: 0x0d29, 0x1420: 0x0885, 0x1421: 0x1189, 0x1422: 0x0ff5, 0x1423: 0x13fd,
-	0x1424: 0x0a45, 0x1425: 0x097d, 0x1426: 0x0ed5, 0x1427: 0x0c8d, 0x1428: 0x0cb9, 0x1429: 0x0731,
-	0x142a: 0x073d, 0x142b: 0x147d, 0x142c: 0x0b4d, 0x142d: 0x0759, 0x142e: 0x0961, 0x142f: 0x0cad,
-	0x1430: 0x1425, 0x1431: 0x0c85, 0x1432: 0x10e1, 0x1433: 0x111d, 0x1434: 0x0969, 0x1435: 0x0eb5,
-	0x1436: 0x0d7d, 0x1437: 0x0d79, 0x1438: 0x1009, 0x1439: 0x089d, 0x143a: 0x09c9,
-	// Block 0x51, offset 0x1440
-	0x1440: 0x076d, 0x1441: 0x0765, 0x1442: 0x0775, 0x1443: 0x16a9, 0x1444: 0x07b9, 0x1445: 0x07c9,
-	0x1446: 0x07cd, 0x1447: 0x07d5, 0x1448: 0x07dd, 0x1449: 0x07e1, 0x144a: 0x07ed, 0x144b: 0x07e5,
-	0x144c: 0x0625, 0x144d: 0x16bd, 0x144e: 0x0801, 0x144f: 0x0805, 0x1450: 0x0809, 0x1451: 0x0825,
-	0x1452: 0x16ae, 0x1453: 0x0629, 0x1454: 0x0811, 0x1455: 0x0831, 0x1456: 0x16b8, 0x1457: 0x0841,
-	0x1458: 0x0849, 0x1459: 0x07a9, 0x145a: 0x0851, 0x145b: 0x0855, 0x145c: 0x1893, 0x145d: 0x0871,
-	0x145e: 0x0879, 0x145f: 0x0631, 0x1460: 0x0891, 0x1461: 0x0895, 0x1462: 0x089d, 0x1463: 0x08a1,
-	0x1464: 0x0635, 0x1465: 0x08b9, 0x1466: 0x08bd, 0x1467: 0x08c9, 0x1468: 0x08d5, 0x1469: 0x08d9,
-	0x146a: 0x08dd, 0x146b: 0x08e5, 0x146c: 0x0905, 0x146d: 0x0909, 0x146e: 0x0911, 0x146f: 0x0921,
-	0x1470: 0x0929, 0x1471: 0x092d, 0x1472: 0x092d, 0x1473: 0x092d, 0x1474: 0x16cc, 0x1475: 0x0f05,
-	0x1476: 0x0941, 0x1477: 0x0949, 0x1478: 0x16d1, 0x1479: 0x0955, 0x147a: 0x095d, 0x147b: 0x0965,
-	0x147c: 0x098d, 0x147d: 0x0979, 0x147e: 0x0985, 0x147f: 0x0989,
-	// Block 0x52, offset 0x1480
-	0x1480: 0x0991, 0x1481: 0x0999, 0x1482: 0x099d, 0x1483: 0x09a5, 0x1484: 0x09ad, 0x1485: 0x09b1,
-	0x1486: 0x09b1, 0x1487: 0x09b9, 0x1488: 0x09c1, 0x1489: 0x09c5, 0x148a: 0x09d1, 0x148b: 0x09f5,
-	0x148c: 0x09d9, 0x148d: 0x09f9, 0x148e: 0x09dd, 0x148f: 0x09e5, 0x1490: 0x087d, 0x1491: 0x0a41,
-	0x1492: 0x0a09, 0x1493: 0x0a0d, 0x1494: 0x0a11, 0x1495: 0x0a05, 0x1496: 0x0a19, 0x1497: 0x0a15,
-	0x1498: 0x0a2d, 0x1499: 0x16d6, 0x149a: 0x0a49, 0x149b: 0x0a4d, 0x149c: 0x0a55, 0x149d: 0x0a61,
-	0x149e: 0x0a69, 0x149f: 0x0a85, 0x14a0: 0x16db, 0x14a1: 0x16e0, 0x14a2: 0x0a91, 0x14a3: 0x0a95,
-	0x14a4: 0x0a99, 0x14a5: 0x0a8d, 0x14a6: 0x0aa1, 0x14a7: 0x0639, 0x14a8: 0x063d, 0x14a9: 0x0aa9,
-	0x14aa: 0x0ab1, 0x14ab: 0x0ab1, 0x14ac: 0x16e5, 0x14ad: 0x0acd, 0x14ae: 0x0ad1, 0x14af: 0x0ad5,
-	0x14b0: 0x0add, 0x14b1: 0x16ea, 0x14b2: 0x0ae5, 0x14b3: 0x0ae9, 0x14b4: 0x0bc1, 0x14b5: 0x0af1,
-	0x14b6: 0x0641, 0x14b7: 0x0afd, 0x14b8: 0x0b0d, 0x14b9: 0x0b19, 0x14ba: 0x0b15, 0x14bb: 0x16f4,
-	0x14bc: 0x0b21, 0x14bd: 0x16f9, 0x14be: 0x0b2d, 0x14bf: 0x0b29,
-	// Block 0x53, offset 0x14c0
-	0x14c0: 0x0b31, 0x14c1: 0x0b41, 0x14c2: 0x0b45, 0x14c3: 0x0645, 0x14c4: 0x0b55, 0x14c5: 0x0b5d,
-	0x14c6: 0x0b61, 0x14c7: 0x0b65, 0x14c8: 0x0649, 0x14c9: 0x16fe, 0x14ca: 0x064d, 0x14cb: 0x0b81,
-	0x14cc: 0x0b85, 0x14cd: 0x0b89, 0x14ce: 0x0b91, 0x14cf: 0x18c5, 0x14d0: 0x0ba9, 0x14d1: 0x1708,
-	0x14d2: 0x1708, 0x14d3: 0x1249, 0x14d4: 0x0bb9, 0x14d5: 0x0bb9, 0x14d6: 0x0651, 0x14d7: 0x172b,
-	0x14d8: 0x17fd, 0x14d9: 0x0bc9, 0x14da: 0x0bd1, 0x14db: 0x0655, 0x14dc: 0x0be5, 0x14dd: 0x0bf5,
-	0x14de: 0x0bf9, 0x14df: 0x0c01, 0x14e0: 0x0c11, 0x14e1: 0x065d, 0x14e2: 0x0659, 0x14e3: 0x0c15,
-	0x14e4: 0x170d, 0x14e5: 0x0c19, 0x14e6: 0x0c2d, 0x14e7: 0x0c31, 0x14e8: 0x0c35, 0x14e9: 0x0c31,
-	0x14ea: 0x0c41, 0x14eb: 0x0c45, 0x14ec: 0x0c55, 0x14ed: 0x0c4d, 0x14ee: 0x0c51, 0x14ef: 0x0c59,
-	0x14f0: 0x0c5d, 0x14f1: 0x0c61, 0x14f2: 0x0c6d, 0x14f3: 0x0c71, 0x14f4: 0x0c89, 0x14f5: 0x0c91,
-	0x14f6: 0x0ca1, 0x14f7: 0x0cb5, 0x14f8: 0x171c, 0x14f9: 0x0cb1, 0x14fa: 0x0ca5, 0x14fb: 0x0cbd,
-	0x14fc: 0x0cc5, 0x14fd: 0x0cd9, 0x14fe: 0x1721, 0x14ff: 0x0ce1,
-	// Block 0x54, offset 0x1500
-	0x1500: 0x0cd5, 0x1501: 0x0ccd, 0x1502: 0x0661, 0x1503: 0x0ce9, 0x1504: 0x0cf1, 0x1505: 0x0cf9,
-	0x1506: 0x0ced, 0x1507: 0x0665, 0x1508: 0x0d09, 0x1509: 0x0d11, 0x150a: 0x1726, 0x150b: 0x0d3d,
-	0x150c: 0x0d71, 0x150d: 0x0d4d, 0x150e: 0x0671, 0x150f: 0x0d59, 0x1510: 0x066d, 0x1511: 0x0669,
-	0x1512: 0x0835, 0x1513: 0x0839, 0x1514: 0x0d75, 0x1515: 0x0d5d, 0x1516: 0x121d, 0x1517: 0x06d5,
-	0x1518: 0x0d81, 0x1519: 0x0d85, 0x151a: 0x0d89, 0x151b: 0x0d9d, 0x151c: 0x0d95, 0x151d: 0x173f,
-	0x151e: 0x0675, 0x151f: 0x0db1, 0x1520: 0x0da5, 0x1521: 0x0dc1, 0x1522: 0x0dc9, 0x1523: 0x1749,
-	0x1524: 0x0dcd, 0x1525: 0x0db9, 0x1526: 0x0dd5, 0x1527: 0x0679, 0x1528: 0x0dd9, 0x1529: 0x0ddd,
-	0x152a: 0x0de1, 0x152b: 0x0ded, 0x152c: 0x174e, 0x152d: 0x0df5, 0x152e: 0x067d, 0x152f: 0x0e01,
-	0x1530: 0x1753, 0x1531: 0x0e05, 0x1532: 0x0681, 0x1533: 0x0e11, 0x1534: 0x0e1d, 0x1535: 0x0e29,
-	0x1536: 0x0e2d, 0x1537: 0x1758, 0x1538: 0x16ef, 0x1539: 0x175d, 0x153a: 0x0e4d, 0x153b: 0x1762,
-	0x153c: 0x0e59, 0x153d: 0x0e61, 0x153e: 0x0e51, 0x153f: 0x0e6d,
-	// Block 0x55, offset 0x1540
-	0x1540: 0x0e7d, 0x1541: 0x0e8d, 0x1542: 0x0e81, 0x1543: 0x0e85, 0x1544: 0x0e91, 0x1545: 0x0e95,
-	0x1546: 0x1767, 0x1547: 0x0e79, 0x1548: 0x0ead, 0x1549: 0x0eb1, 0x154a: 0x0685, 0x154b: 0x0ec5,
-	0x154c: 0x0ec1, 0x154d: 0x176c, 0x154e: 0x0ea5, 0x154f: 0x0ee1, 0x1550: 0x1771, 0x1551: 0x1776,
-	0x1552: 0x0ee5, 0x1553: 0x0ef9, 0x1554: 0x0ef5, 0x1555: 0x0ef1, 0x1556: 0x0689, 0x1557: 0x0efd,
-	0x1558: 0x0f0d, 0x1559: 0x0f09, 0x155a: 0x0f15, 0x155b: 0x16b3, 0x155c: 0x0f25, 0x155d: 0x177b,
-	0x155e: 0x0f31, 0x155f: 0x1785, 0x1560: 0x0f45, 0x1561: 0x0f51, 0x1562: 0x0f65, 0x1563: 0x178a,
-	0x1564: 0x0f79, 0x1565: 0x0f7d, 0x1566: 0x178f, 0x1567: 0x1794, 0x1568: 0x0f99, 0x1569: 0x0fa9,
-	0x156a: 0x068d, 0x156b: 0x0fad, 0x156c: 0x0691, 0x156d: 0x0691, 0x156e: 0x0fc5, 0x156f: 0x0fc9,
-	0x1570: 0x0fd1, 0x1571: 0x0fd5, 0x1572: 0x0fe1, 0x1573: 0x0695, 0x1574: 0x0ff9, 0x1575: 0x1799,
-	0x1576: 0x1015, 0x1577: 0x179e, 0x1578: 0x1021, 0x1579: 0x1703, 0x157a: 0x1031, 0x157b: 0x17a3,
-	0x157c: 0x17a8, 0x157d: 0x17ad, 0x157e: 0x0699, 0x157f: 0x069d,
-	// Block 0x56, offset 0x1580
-	0x1580: 0x1069, 0x1581: 0x17b7, 0x1582: 0x17b2, 0x1583: 0x17bc, 0x1584: 0x17c1, 0x1585: 0x1071,
-	0x1586: 0x1075, 0x1587: 0x1075, 0x1588: 0x107d, 0x1589: 0x06a5, 0x158a: 0x1081, 0x158b: 0x06a9,
-	0x158c: 0x06ad, 0x158d: 0x17cb, 0x158e: 0x1095, 0x158f: 0x109d, 0x1590: 0x10a9, 0x1591: 0x06b1,
-	0x1592: 0x17d0, 0x1593: 0x10cd, 0x1594: 0x17d5, 0x1595: 0x17da, 0x1596: 0x10ed, 0x1597: 0x1105,
-	0x1598: 0x06b5, 0x1599: 0x110d, 0x159a: 0x1111, 0x159b: 0x1115, 0x159c: 0x17df, 0x159d: 0x17e4,
-	0x159e: 0x17e4, 0x159f: 0x112d, 0x15a0: 0x06b9, 0x15a1: 0x17e9, 0x15a2: 0x1141, 0x15a3: 0x1145,
-	0x15a4: 0x06bd, 0x15a5: 0x17ee, 0x15a6: 0x1161, 0x15a7: 0x06c1, 0x15a8: 0x1171, 0x15a9: 0x1169,
-	0x15aa: 0x1179, 0x15ab: 0x17f8, 0x15ac: 0x1191, 0x15ad: 0x06c5, 0x15ae: 0x119d, 0x15af: 0x11a5,
-	0x15b0: 0x11b5, 0x15b1: 0x06c9, 0x15b2: 0x1802, 0x15b3: 0x1807, 0x15b4: 0x06cd, 0x15b5: 0x180c,
-	0x15b6: 0x11cd, 0x15b7: 0x1811, 0x15b8: 0x11d9, 0x15b9: 0x11e5, 0x15ba: 0x11ed, 0x15bb: 0x1816,
-	0x15bc: 0x181b, 0x15bd: 0x1201, 0x15be: 0x1820, 0x15bf: 0x1209,
-	// Block 0x57, offset 0x15c0
-	0x15c0: 0x1730, 0x15c1: 0x06d1, 0x15c2: 0x1221, 0x15c3: 0x1225, 0x15c4: 0x06d9, 0x15c5: 0x1229,
-	0x15c6: 0x0aa5, 0x15c7: 0x1825, 0x15c8: 0x182a, 0x15c9: 0x1735, 0x15ca: 0x173a, 0x15cb: 0x1249,
-	0x15cc: 0x124d, 0x15cd: 0x1465, 0x15ce: 0x06dd, 0x15cf: 0x1279, 0x15d0: 0x1275, 0x15d1: 0x127d,
-	0x15d2: 0x08b1, 0x15d3: 0x1281, 0x15d4: 0x1285, 0x15d5: 0x1289, 0x15d6: 0x1291, 0x15d7: 0x182f,
-	0x15d8: 0x128d, 0x15d9: 0x1295, 0x15da: 0x12a9, 0x15db: 0x12ad, 0x15dc: 0x1299, 0x15dd: 0x12b1,
-	0x15de: 0x12c5, 0x15df: 0x12d9, 0x15e0: 0x12a5, 0x15e1: 0x12b9, 0x15e2: 0x12bd, 0x15e3: 0x12c1,
-	0x15e4: 0x1834, 0x15e5: 0x183e, 0x15e6: 0x1839, 0x15e7: 0x06e1, 0x15e8: 0x12e1, 0x15e9: 0x12e5,
-	0x15ea: 0x12ed, 0x15eb: 0x1852, 0x15ec: 0x12f1, 0x15ed: 0x1843, 0x15ee: 0x06e5, 0x15ef: 0x06e9,
-	0x15f0: 0x1848, 0x15f1: 0x184d, 0x15f2: 0x06ed, 0x15f3: 0x1311, 0x15f4: 0x1315, 0x15f5: 0x1319,
-	0x15f6: 0x131d, 0x15f7: 0x1329, 0x15f8: 0x1325, 0x15f9: 0x1331, 0x15fa: 0x132d, 0x15fb: 0x133d,
-	0x15fc: 0x1335, 0x15fd: 0x1339, 0x15fe: 0x1341, 0x15ff: 0x06f1,
-	// Block 0x58, offset 0x1600
-	0x1600: 0x1349, 0x1601: 0x134d, 0x1602: 0x06f5, 0x1603: 0x135d, 0x1604: 0x1361, 0x1605: 0x1857,
-	0x1606: 0x136d, 0x1607: 0x1371, 0x1608: 0x06f9, 0x1609: 0x137d, 0x160a: 0x062d, 0x160b: 0x185c,
-	0x160c: 0x1861, 0x160d: 0x06fd, 0x160e: 0x0701, 0x160f: 0x13a9, 0x1610: 0x13c1, 0x1611: 0x13dd,
-	0x1612: 0x13ed, 0x1613: 0x1866, 0x1614: 0x1401, 0x1615: 0x1405, 0x1616: 0x141d, 0x1617: 0x1429,
-	0x1618: 0x1870, 0x1619: 0x16c2, 0x161a: 0x1435, 0x161b: 0x1431, 0x161c: 0x143d, 0x161d: 0x16c7,
-	0x161e: 0x1449, 0x161f: 0x1455, 0x1620: 0x1875, 0x1621: 0x187a, 0x1622: 0x1495, 0x1623: 0x14a1,
-	0x1624: 0x14a9, 0x1625: 0x187f, 0x1626: 0x14ad, 0x1627: 0x14d5, 0x1628: 0x14e1, 0x1629: 0x14e5,
-	0x162a: 0x14dd, 0x162b: 0x14f1, 0x162c: 0x14f5, 0x162d: 0x1884, 0x162e: 0x1501, 0x162f: 0x0705,
-	0x1630: 0x1509, 0x1631: 0x1889, 0x1632: 0x0709, 0x1633: 0x1541, 0x1634: 0x0b35, 0x1635: 0x1559,
-	0x1636: 0x188e, 0x1637: 0x1898, 0x1638: 0x070d, 0x1639: 0x0711, 0x163a: 0x1581, 0x163b: 0x189d,
-	0x163c: 0x0715, 0x163d: 0x18a2, 0x163e: 0x1599, 0x163f: 0x1599,
-	// Block 0x59, offset 0x1640
-	0x1640: 0x15a1, 0x1641: 0x18a7, 0x1642: 0x15b9, 0x1643: 0x0719, 0x1644: 0x15c9, 0x1645: 0x15d5,
-	0x1646: 0x15dd, 0x1647: 0x15e5, 0x1648: 0x071d, 0x1649: 0x18ac, 0x164a: 0x15f9, 0x164b: 0x1615,
-	0x164c: 0x1621, 0x164d: 0x0721, 0x164e: 0x0725, 0x164f: 0x1625, 0x1650: 0x18b1, 0x1651: 0x0729,
-	0x1652: 0x18b6, 0x1653: 0x18bb, 0x1654: 0x18c0, 0x1655: 0x1649, 0x1656: 0x072d, 0x1657: 0x165d,
-	0x1658: 0x1665, 0x1659: 0x1669, 0x165a: 0x1671, 0x165b: 0x1679, 0x165c: 0x1681, 0x165d: 0x18ca,
-}
-
-// nfkcSparseOffset: 128 entries, 256 bytes
-var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x85, 0x8d, 0x94, 0x97, 0x9f, 0xa3, 0xa7, 0xa9, 0xab, 0xb4, 0xb8, 0xbf, 0xc4, 0xc7, 0xd1, 0xd3, 0xda, 0xe2, 0xe6, 0xe8, 0xeb, 0xef, 0xf5, 0x106, 0x112, 0x114, 0x11a, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12b, 0x12e, 0x130, 0x133, 0x136, 0x13a, 0x143, 0x145, 0x148, 0x14a, 0x154, 0x15f, 0x16e, 0x17c, 0x18a, 0x19a, 0x1a8, 0x1af, 0x1b5, 0x1c4, 0x1c8, 0x1ca, 0x1ce, 0x1d0, 0x1d3, 0x1d5, 0x1d8, 0x1da, 0x1dd, 0x1df, 0x1e1, 0x1e3, 0x1ef, 0x1f8, 0x1ff, 0x20c, 0x20f, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21c, 0x21e, 0x220, 0x222, 0x224, 0x22a, 0x22d, 0x22f, 0x231, 0x233, 0x235, 0x244, 0x246, 0x24c, 0x254, 0x25b, 0x25e, 0x26b, 0x275, 0x277, 0x279, 0x27d, 0x282, 0x28e, 0x293, 0x29c, 0x2a2, 0x2a7, 0x2ab, 0x2b0, 0x2b4, 0x2c4, 0x2d2, 0x2e0, 0x2ee, 0x2f8, 0x2fa}
-
-// nfkcSparseValues: 772 entries, 3088 bytes
-var nfkcSparseValues = [772]valueRange{
-	// Block 0x0, offset 0x1
-	{value: 0x0002, lo: 0x0d},
-	{value: 0x0001, lo: 0xa0, hi: 0xa0},
-	{value: 0x425e, lo: 0xa8, hi: 0xa8},
-	{value: 0x0083, lo: 0xaa, hi: 0xaa},
-	{value: 0x424a, lo: 0xaf, hi: 0xaf},
-	{value: 0x0025, lo: 0xb2, hi: 0xb3},
-	{value: 0x4240, lo: 0xb4, hi: 0xb4},
-	{value: 0x01dc, lo: 0xb5, hi: 0xb5},
-	{value: 0x4277, lo: 0xb8, hi: 0xb8},
-	{value: 0x0023, lo: 0xb9, hi: 0xb9},
-	{value: 0x009f, lo: 0xba, hi: 0xba},
-	{value: 0x235e, lo: 0xbc, hi: 0xbc},
-	{value: 0x2352, lo: 0xbd, hi: 0xbd},
-	{value: 0x23f4, lo: 0xbe, hi: 0xbe},
-	// Block 0x1, offset 0x2
-	{value: 0x0091, lo: 0x03},
-	{value: 0x46c8, lo: 0xa0, hi: 0xa1},
-	{value: 0x46fa, lo: 0xaf, hi: 0xb0},
-	{value: 0x8800, lo: 0xb7, hi: 0xb7},
-	// Block 0x2, offset 0x3
-	{value: 0x0003, lo: 0x08},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x0091, lo: 0xb0, hi: 0xb0},
-	{value: 0x011c, lo: 0xb1, hi: 0xb1},
-	{value: 0x0095, lo: 0xb2, hi: 0xb2},
-	{value: 0x00a5, lo: 0xb3, hi: 0xb3},
-	{value: 0x0143, lo: 0xb4, hi: 0xb6},
-	{value: 0x00af, lo: 0xb7, hi: 0xb7},
-	{value: 0x00b3, lo: 0xb8, hi: 0xb8},
-	// Block 0x3, offset 0x4
-	{value: 0x000a, lo: 0x09},
-	{value: 0x4254, lo: 0x98, hi: 0x98},
-	{value: 0x4259, lo: 0x99, hi: 0x9a},
-	{value: 0x427c, lo: 0x9b, hi: 0x9b},
-	{value: 0x4245, lo: 0x9c, hi: 0x9c},
-	{value: 0x4268, lo: 0x9d, hi: 0x9d},
-	{value: 0x0116, lo: 0xa0, hi: 0xa0},
-	{value: 0x0099, lo: 0xa1, hi: 0xa1},
-	{value: 0x00a7, lo: 0xa2, hi: 0xa3},
-	{value: 0x0167, lo: 0xa4, hi: 0xa4},
-	// Block 0x4, offset 0x5
-	{value: 0x0000, lo: 0x0f},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x8800, lo: 0x8d, hi: 0x8d},
-	{value: 0x378f, lo: 0x90, hi: 0x90},
-	{value: 0x379b, lo: 0x91, hi: 0x91},
-	{value: 0x3789, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x96, hi: 0x96},
-	{value: 0x3801, lo: 0x97, hi: 0x97},
-	{value: 0x37cb, lo: 0x9c, hi: 0x9c},
-	{value: 0x37b3, lo: 0x9d, hi: 0x9d},
-	{value: 0x37dd, lo: 0x9e, hi: 0x9e},
-	{value: 0x8800, lo: 0xb4, hi: 0xb5},
-	{value: 0x3807, lo: 0xb6, hi: 0xb6},
-	{value: 0x380d, lo: 0xb7, hi: 0xb7},
-	// Block 0x5, offset 0x6
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x83, hi: 0x87},
-	// Block 0x6, offset 0x7
-	{value: 0x0001, lo: 0x04},
-	{value: 0x8018, lo: 0x81, hi: 0x82},
-	{value: 0x80e6, lo: 0x84, hi: 0x84},
-	{value: 0x80dc, lo: 0x85, hi: 0x85},
-	{value: 0x8012, lo: 0x87, hi: 0x87},
-	// Block 0x7, offset 0x8
-	{value: 0x0000, lo: 0x0a},
-	{value: 0x80e6, lo: 0x90, hi: 0x97},
-	{value: 0x801e, lo: 0x98, hi: 0x98},
-	{value: 0x801f, lo: 0x99, hi: 0x99},
-	{value: 0x8020, lo: 0x9a, hi: 0x9a},
-	{value: 0x382b, lo: 0xa2, hi: 0xa2},
-	{value: 0x3831, lo: 0xa3, hi: 0xa3},
-	{value: 0x383d, lo: 0xa4, hi: 0xa4},
-	{value: 0x3837, lo: 0xa5, hi: 0xa5},
-	{value: 0x3843, lo: 0xa6, hi: 0xa6},
-	{value: 0x8800, lo: 0xa7, hi: 0xa7},
-	// Block 0x8, offset 0x9
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x3855, lo: 0x80, hi: 0x80},
-	{value: 0x8800, lo: 0x81, hi: 0x81},
-	{value: 0x3849, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x384f, lo: 0x93, hi: 0x93},
-	{value: 0x8800, lo: 0x95, hi: 0x95},
-	{value: 0x80e6, lo: 0x96, hi: 0x9c},
-	{value: 0x80e6, lo: 0x9f, hi: 0xa2},
-	{value: 0x80dc, lo: 0xa3, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa4},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e6, lo: 0xab, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	// Block 0x9, offset 0xa
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x8024, lo: 0x91, hi: 0x91},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80dc, lo: 0xb1, hi: 0xb1},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb5, hi: 0xb6},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb9},
-	{value: 0x80e6, lo: 0xba, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbc},
-	{value: 0x80e6, lo: 0xbd, hi: 0xbd},
-	{value: 0x80dc, lo: 0xbe, hi: 0xbe},
-	{value: 0x80e6, lo: 0xbf, hi: 0xbf},
-	// Block 0xa, offset 0xb
-	{value: 0x000a, lo: 0x07},
-	{value: 0x80e6, lo: 0x80, hi: 0x80},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x83},
-	{value: 0x80dc, lo: 0x84, hi: 0x85},
-	{value: 0x80dc, lo: 0x86, hi: 0x87},
-	{value: 0x80dc, lo: 0x88, hi: 0x89},
-	{value: 0x80e6, lo: 0x8a, hi: 0x8a},
-	// Block 0xb, offset 0xc
-	{value: 0x0000, lo: 0x03},
-	{value: 0x80e6, lo: 0xab, hi: 0xb1},
-	{value: 0x80dc, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb3},
-	// Block 0xc, offset 0xd
-	{value: 0x0000, lo: 0x04},
-	{value: 0x80e6, lo: 0x96, hi: 0x99},
-	{value: 0x80e6, lo: 0x9b, hi: 0xa3},
-	{value: 0x80e6, lo: 0xa5, hi: 0xa7},
-	{value: 0x80e6, lo: 0xa9, hi: 0xad},
-	// Block 0xd, offset 0xe
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x99, hi: 0x9b},
-	// Block 0xe, offset 0xf
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0xa4, hi: 0xa5},
-	{value: 0x80dc, lo: 0xa6, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa8},
-	{value: 0x80dc, lo: 0xa9, hi: 0xa9},
-	{value: 0x80e6, lo: 0xaa, hi: 0xac},
-	{value: 0x80dc, lo: 0xad, hi: 0xaf},
-	{value: 0x801b, lo: 0xb0, hi: 0xb0},
-	{value: 0x801c, lo: 0xb1, hi: 0xb1},
-	{value: 0x801d, lo: 0xb2, hi: 0xb2},
-	{value: 0x80e6, lo: 0xb3, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb6, hi: 0xb6},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80dc, lo: 0xb9, hi: 0xba},
-	{value: 0x80e6, lo: 0xbb, hi: 0xbe},
-	// Block 0xf, offset 0x10
-	{value: 0x0000, lo: 0x07},
-	{value: 0x8800, lo: 0xa8, hi: 0xa8},
-	{value: 0x3ec2, lo: 0xa9, hi: 0xa9},
-	{value: 0x8800, lo: 0xb0, hi: 0xb0},
-	{value: 0x3eca, lo: 0xb1, hi: 0xb1},
-	{value: 0x8800, lo: 0xb3, hi: 0xb3},
-	{value: 0x3ed2, lo: 0xb4, hi: 0xb4},
-	{value: 0x8607, lo: 0xbc, hi: 0xbc},
-	// Block 0x10, offset 0x11
-	{value: 0x0008, lo: 0x06},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x91, hi: 0x91},
-	{value: 0x80dc, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x93, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x94},
-	{value: 0x4502, lo: 0x98, hi: 0x9f},
-	// Block 0x11, offset 0x12
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x12, offset 0x13
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18cf, lo: 0x8b, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	{value: 0x4542, lo: 0x9c, hi: 0x9c},
-	{value: 0x454a, lo: 0x9d, hi: 0x9d},
-	{value: 0x4552, lo: 0x9f, hi: 0x9f},
-	// Block 0x13, offset 0x14
-	{value: 0x0000, lo: 0x03},
-	{value: 0x457a, lo: 0xb3, hi: 0xb3},
-	{value: 0x4582, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x14, offset 0x15
-	{value: 0x0008, lo: 0x03},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x455a, lo: 0x99, hi: 0x9b},
-	{value: 0x4572, lo: 0x9e, hi: 0x9e},
-	// Block 0x15, offset 0x16
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	// Block 0x16, offset 0x17
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	// Block 0x17, offset 0x18
-	{value: 0x0000, lo: 0x08},
-	{value: 0x8800, lo: 0x87, hi: 0x87},
-	{value: 0x18e4, lo: 0x88, hi: 0x88},
-	{value: 0x18dd, lo: 0x8b, hi: 0x8b},
-	{value: 0x18eb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x96, hi: 0x97},
-	{value: 0x458a, lo: 0x9c, hi: 0x9c},
-	{value: 0x4592, lo: 0x9d, hi: 0x9d},
-	// Block 0x18, offset 0x19
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x18f2, lo: 0x94, hi: 0x94},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x19, offset 0x1a
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x18f9, lo: 0x8a, hi: 0x8a},
-	{value: 0x1907, lo: 0x8b, hi: 0x8b},
-	{value: 0x1900, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1a, offset 0x1b
-	{value: 0x0607, lo: 0x04},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x3eda, lo: 0x88, hi: 0x88},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8054, lo: 0x95, hi: 0x96},
-	// Block 0x1b, offset 0x1c
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xbc, hi: 0xbc},
-	{value: 0x8800, lo: 0xbf, hi: 0xbf},
-	// Block 0x1c, offset 0x1d
-	{value: 0x0000, lo: 0x09},
-	{value: 0x190e, lo: 0x80, hi: 0x80},
-	{value: 0x8600, lo: 0x82, hi: 0x82},
-	{value: 0x8800, lo: 0x86, hi: 0x86},
-	{value: 0x1915, lo: 0x87, hi: 0x87},
-	{value: 0x191c, lo: 0x88, hi: 0x88},
-	{value: 0x2e66, lo: 0x8a, hi: 0x8a},
-	{value: 0x19a5, lo: 0x8b, hi: 0x8b},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x95, hi: 0x96},
-	// Block 0x1d, offset 0x1e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xbe, hi: 0xbe},
-	// Block 0x1e, offset 0x1f
-	{value: 0x0000, lo: 0x06},
-	{value: 0x8800, lo: 0x86, hi: 0x87},
-	{value: 0x1923, lo: 0x8a, hi: 0x8a},
-	{value: 0x1931, lo: 0x8b, hi: 0x8b},
-	{value: 0x192a, lo: 0x8c, hi: 0x8c},
-	{value: 0x8009, lo: 0x8d, hi: 0x8d},
-	{value: 0x8600, lo: 0x97, hi: 0x97},
-	// Block 0x1f, offset 0x20
-	{value: 0x0007, lo: 0x07},
-	{value: 0x8609, lo: 0x8a, hi: 0x8a},
-	{value: 0x8600, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x3ee2, lo: 0x9a, hi: 0x9a},
-	{value: 0x2e6d, lo: 0x9c, hi: 0x9d},
-	{value: 0x1938, lo: 0x9e, hi: 0x9e},
-	{value: 0x8600, lo: 0x9f, hi: 0x9f},
-	// Block 0x20, offset 0x21
-	{value: 0x0000, lo: 0x03},
-	{value: 0x2763, lo: 0xb3, hi: 0xb3},
-	{value: 0x8067, lo: 0xb8, hi: 0xb9},
-	{value: 0x8009, lo: 0xba, hi: 0xba},
-	// Block 0x21, offset 0x22
-	{value: 0x0000, lo: 0x01},
-	{value: 0x806b, lo: 0x88, hi: 0x8b},
-	// Block 0x22, offset 0x23
-	{value: 0x0000, lo: 0x02},
-	{value: 0x2778, lo: 0xb3, hi: 0xb3},
-	{value: 0x8076, lo: 0xb8, hi: 0xb9},
-	// Block 0x23, offset 0x24
-	{value: 0x0000, lo: 0x03},
-	{value: 0x807a, lo: 0x88, hi: 0x8b},
-	{value: 0x276a, lo: 0x9c, hi: 0x9c},
-	{value: 0x2771, lo: 0x9d, hi: 0x9d},
-	// Block 0x24, offset 0x25
-	{value: 0x0000, lo: 0x05},
-	{value: 0x0305, lo: 0x8c, hi: 0x8c},
-	{value: 0x80dc, lo: 0x98, hi: 0x99},
-	{value: 0x80dc, lo: 0xb5, hi: 0xb5},
-	{value: 0x80dc, lo: 0xb7, hi: 0xb7},
-	{value: 0x80d8, lo: 0xb9, hi: 0xb9},
-	// Block 0x25, offset 0x26
-	{value: 0x0000, lo: 0x10},
-	{value: 0x2786, lo: 0x83, hi: 0x83},
-	{value: 0x278d, lo: 0x8d, hi: 0x8d},
-	{value: 0x2794, lo: 0x92, hi: 0x92},
-	{value: 0x279b, lo: 0x97, hi: 0x97},
-	{value: 0x27a2, lo: 0x9c, hi: 0x9c},
-	{value: 0x277f, lo: 0xa9, hi: 0xa9},
-	{value: 0x8081, lo: 0xb1, hi: 0xb1},
-	{value: 0x8082, lo: 0xb2, hi: 0xb2},
-	{value: 0x49b6, lo: 0xb3, hi: 0xb3},
-	{value: 0x8084, lo: 0xb4, hi: 0xb4},
-	{value: 0x49bf, lo: 0xb5, hi: 0xb5},
-	{value: 0x459a, lo: 0xb6, hi: 0xb6},
-	{value: 0x45da, lo: 0xb7, hi: 0xb7},
-	{value: 0x45a2, lo: 0xb8, hi: 0xb8},
-	{value: 0x45e5, lo: 0xb9, hi: 0xb9},
-	{value: 0x8082, lo: 0xba, hi: 0xbd},
-	// Block 0x26, offset 0x27
-	{value: 0x0000, lo: 0x0b},
-	{value: 0x8082, lo: 0x80, hi: 0x80},
-	{value: 0x49c8, lo: 0x81, hi: 0x81},
-	{value: 0x80e6, lo: 0x82, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0x86, hi: 0x87},
-	{value: 0x27b0, lo: 0x93, hi: 0x93},
-	{value: 0x27b7, lo: 0x9d, hi: 0x9d},
-	{value: 0x27be, lo: 0xa2, hi: 0xa2},
-	{value: 0x27c5, lo: 0xa7, hi: 0xa7},
-	{value: 0x27cc, lo: 0xac, hi: 0xac},
-	{value: 0x27a9, lo: 0xb9, hi: 0xb9},
-	// Block 0x27, offset 0x28
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x86, hi: 0x86},
-	// Block 0x28, offset 0x29
-	{value: 0x0000, lo: 0x05},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x193f, lo: 0xa6, hi: 0xa6},
-	{value: 0x8600, lo: 0xae, hi: 0xae},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x29, offset 0x2a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	// Block 0x2a, offset 0x2b
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0309, lo: 0xbc, hi: 0xbc},
-	// Block 0x2b, offset 0x2c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8800, lo: 0x80, hi: 0x92},
-	// Block 0x2c, offset 0x2d
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8e00, lo: 0xa1, hi: 0xb5},
-	// Block 0x2d, offset 0x2e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0xa8, hi: 0xbf},
-	// Block 0x2e, offset 0x2f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8600, lo: 0x80, hi: 0x82},
-	// Block 0x2f, offset 0x30
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9f},
-	// Block 0x30, offset 0x31
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x94, hi: 0x94},
-	{value: 0x8009, lo: 0xb4, hi: 0xb4},
-	// Block 0x31, offset 0x32
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x92, hi: 0x92},
-	{value: 0x80e6, lo: 0x9d, hi: 0x9d},
-	// Block 0x32, offset 0x33
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e4, lo: 0xa9, hi: 0xa9},
-	// Block 0x33, offset 0x34
-	{value: 0x0008, lo: 0x02},
-	{value: 0x80de, lo: 0xb9, hi: 0xba},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbb},
-	// Block 0x34, offset 0x35
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x97, hi: 0x97},
-	{value: 0x80dc, lo: 0x98, hi: 0x98},
-	// Block 0x35, offset 0x36
-	{value: 0x0000, lo: 0x03},
-	{value: 0x8009, lo: 0xa0, hi: 0xa0},
-	{value: 0x80e6, lo: 0xb5, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x36, offset 0x37
-	{value: 0x0000, lo: 0x08},
-	{value: 0x197e, lo: 0x80, hi: 0x80},
-	{value: 0x1985, lo: 0x81, hi: 0x81},
-	{value: 0x8800, lo: 0x82, hi: 0x82},
-	{value: 0x198c, lo: 0x83, hi: 0x83},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xab, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xac},
-	{value: 0x80e6, lo: 0xad, hi: 0xb3},
-	// Block 0x37, offset 0x38
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xaa, hi: 0xab},
-	// Block 0x38, offset 0x39
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8007, lo: 0xa6, hi: 0xa6},
-	{value: 0x8009, lo: 0xb2, hi: 0xb3},
-	// Block 0x39, offset 0x3a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x3a, offset 0x3b
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80e6, lo: 0x90, hi: 0x92},
-	{value: 0x8001, lo: 0x94, hi: 0x94},
-	{value: 0x80dc, lo: 0x95, hi: 0x99},
-	{value: 0x80e6, lo: 0x9a, hi: 0x9b},
-	{value: 0x80dc, lo: 0x9c, hi: 0x9f},
-	{value: 0x80e6, lo: 0xa0, hi: 0xa0},
-	{value: 0x8001, lo: 0xa2, hi: 0xa8},
-	{value: 0x80dc, lo: 0xad, hi: 0xad},
-	{value: 0x80e6, lo: 0xb4, hi: 0xb4},
-	// Block 0x3b, offset 0x3c
-	{value: 0x0002, lo: 0x0a},
-	{value: 0x0043, lo: 0xac, hi: 0xac},
-	{value: 0x00d4, lo: 0xad, hi: 0xad},
-	{value: 0x0045, lo: 0xae, hi: 0xae},
-	{value: 0x0049, lo: 0xb0, hi: 0xb1},
-	{value: 0x00e9, lo: 0xb2, hi: 0xb2},
-	{value: 0x004f, lo: 0xb3, hi: 0xba},
-	{value: 0x005f, lo: 0xbc, hi: 0xbc},
-	{value: 0x00f2, lo: 0xbd, hi: 0xbd},
-	{value: 0x0061, lo: 0xbe, hi: 0xbe},
-	{value: 0x0065, lo: 0xbf, hi: 0xbf},
-	// Block 0x3c, offset 0x3d
-	{value: 0x0000, lo: 0x0e},
-	{value: 0x80e6, lo: 0x80, hi: 0x81},
-	{value: 0x80dc, lo: 0x82, hi: 0x82},
-	{value: 0x80e6, lo: 0x83, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8a},
-	{value: 0x80e6, lo: 0x8b, hi: 0x8c},
-	{value: 0x80ea, lo: 0x8d, hi: 0x8d},
-	{value: 0x80d6, lo: 0x8e, hi: 0x8e},
-	{value: 0x80dc, lo: 0x8f, hi: 0x8f},
-	{value: 0x80ca, lo: 0x90, hi: 0x90},
-	{value: 0x80e6, lo: 0x91, hi: 0xa6},
-	{value: 0x80e9, lo: 0xbc, hi: 0xbc},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbe},
-	{value: 0x80dc, lo: 0xbf, hi: 0xbf},
-	// Block 0x3d, offset 0x3e
-	{value: 0x0000, lo: 0x0d},
-	{value: 0x0001, lo: 0x80, hi: 0x8a},
-	{value: 0x04ad, lo: 0x91, hi: 0x91},
-	{value: 0x4281, lo: 0x97, hi: 0x97},
-	{value: 0x001d, lo: 0xa4, hi: 0xa4},
-	{value: 0x19b5, lo: 0xa5, hi: 0xa5},
-	{value: 0x1c9e, lo: 0xa6, hi: 0xa6},
-	{value: 0x0001, lo: 0xaf, hi: 0xaf},
-	{value: 0x283c, lo: 0xb3, hi: 0xb3},
-	{value: 0x29a9, lo: 0xb4, hi: 0xb4},
-	{value: 0x2843, lo: 0xb6, hi: 0xb6},
-	{value: 0x29b3, lo: 0xb7, hi: 0xb7},
-	{value: 0x19af, lo: 0xbc, hi: 0xbc},
-	{value: 0x424f, lo: 0xbe, hi: 0xbe},
-	// Block 0x3e, offset 0x3f
-	{value: 0x0002, lo: 0x0d},
-	{value: 0x1a75, lo: 0x87, hi: 0x87},
-	{value: 0x1a72, lo: 0x88, hi: 0x88},
-	{value: 0x19b2, lo: 0x89, hi: 0x89},
-	{value: 0x2b46, lo: 0x97, hi: 0x97},
-	{value: 0x0001, lo: 0x9f, hi: 0x9f},
-	{value: 0x0021, lo: 0xb0, hi: 0xb0},
-	{value: 0x0093, lo: 0xb1, hi: 0xb1},
-	{value: 0x0029, lo: 0xb4, hi: 0xb9},
-	{value: 0x0017, lo: 0xba, hi: 0xba},
-	{value: 0x04d9, lo: 0xbb, hi: 0xbb},
-	{value: 0x003b, lo: 0xbc, hi: 0xbc},
-	{value: 0x0011, lo: 0xbd, hi: 0xbe},
-	{value: 0x009d, lo: 0xbf, hi: 0xbf},
-	// Block 0x3f, offset 0x40
-	{value: 0x0002, lo: 0x0f},
-	{value: 0x0021, lo: 0x80, hi: 0x89},
-	{value: 0x0017, lo: 0x8a, hi: 0x8a},
-	{value: 0x04d9, lo: 0x8b, hi: 0x8b},
-	{value: 0x003b, lo: 0x8c, hi: 0x8c},
-	{value: 0x0011, lo: 0x8d, hi: 0x8e},
-	{value: 0x0083, lo: 0x90, hi: 0x90},
-	{value: 0x008b, lo: 0x91, hi: 0x91},
-	{value: 0x009f, lo: 0x92, hi: 0x92},
-	{value: 0x00b1, lo: 0x93, hi: 0x93},
-	{value: 0x0107, lo: 0x94, hi: 0x94},
-	{value: 0x0091, lo: 0x95, hi: 0x95},
-	{value: 0x0097, lo: 0x96, hi: 0x99},
-	{value: 0x00a1, lo: 0x9a, hi: 0x9a},
-	{value: 0x00a7, lo: 0x9b, hi: 0x9c},
-	{value: 0x1adb, lo: 0xa8, hi: 0xa8},
-	// Block 0x40, offset 0x41
-	{value: 0x0000, lo: 0x0d},
-	{value: 0x80e6, lo: 0x90, hi: 0x91},
-	{value: 0x8001, lo: 0x92, hi: 0x93},
-	{value: 0x80e6, lo: 0x94, hi: 0x97},
-	{value: 0x8001, lo: 0x98, hi: 0x9a},
-	{value: 0x80e6, lo: 0x9b, hi: 0x9c},
-	{value: 0x80e6, lo: 0xa1, hi: 0xa1},
-	{value: 0x8001, lo: 0xa5, hi: 0xa6},
-	{value: 0x80e6, lo: 0xa7, hi: 0xa7},
-	{value: 0x80dc, lo: 0xa8, hi: 0xa8},
-	{value: 0x80e6, lo: 0xa9, hi: 0xa9},
-	{value: 0x8001, lo: 0xaa, hi: 0xab},
-	{value: 0x80dc, lo: 0xac, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	// Block 0x41, offset 0x42
-	{value: 0x0007, lo: 0x06},
-	{value: 0x22c2, lo: 0x89, hi: 0x89},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	{value: 0x3ba3, lo: 0x9a, hi: 0x9b},
-	{value: 0x3bb1, lo: 0xae, hi: 0xae},
-	// Block 0x42, offset 0x43
-	{value: 0x000e, lo: 0x05},
-	{value: 0x3bb8, lo: 0x8d, hi: 0x8e},
-	{value: 0x3bbf, lo: 0x8f, hi: 0x8f},
-	{value: 0x8800, lo: 0x90, hi: 0x90},
-	{value: 0x8800, lo: 0x92, hi: 0x92},
-	{value: 0x8800, lo: 0x94, hi: 0x94},
-	// Block 0x43, offset 0x44
-	{value: 0x0173, lo: 0x0e},
-	{value: 0x8800, lo: 0x83, hi: 0x83},
-	{value: 0x3bcd, lo: 0x84, hi: 0x84},
-	{value: 0x8800, lo: 0x88, hi: 0x88},
-	{value: 0x3bd4, lo: 0x89, hi: 0x89},
-	{value: 0x8800, lo: 0x8b, hi: 0x8b},
-	{value: 0x3bdb, lo: 0x8c, hi: 0x8c},
-	{value: 0x8800, lo: 0xa3, hi: 0xa3},
-	{value: 0x3be2, lo: 0xa4, hi: 0xa4},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x3be9, lo: 0xa6, hi: 0xa6},
-	{value: 0x284a, lo: 0xac, hi: 0xad},
-	{value: 0x2851, lo: 0xaf, hi: 0xaf},
-	{value: 0x29c7, lo: 0xb0, hi: 0xb0},
-	{value: 0x8800, lo: 0xbc, hi: 0xbc},
-	// Block 0x44, offset 0x45
-	{value: 0x0007, lo: 0x03},
-	{value: 0x3c52, lo: 0xa0, hi: 0xa1},
-	{value: 0x3c7c, lo: 0xa2, hi: 0xa3},
-	{value: 0x3ca6, lo: 0xaa, hi: 0xad},
-	// Block 0x45, offset 0x46
-	{value: 0x0004, lo: 0x01},
-	{value: 0x04fd, lo: 0xa9, hi: 0xaa},
-	// Block 0x46, offset 0x47
-	{value: 0x0002, lo: 0x03},
-	{value: 0x0057, lo: 0x80, hi: 0x8f},
-	{value: 0x0083, lo: 0x90, hi: 0xa9},
-	{value: 0x0021, lo: 0xaa, hi: 0xaa},
-	// Block 0x47, offset 0x48
-	{value: 0x0000, lo: 0x01},
-	{value: 0x2b53, lo: 0x8c, hi: 0x8c},
-	// Block 0x48, offset 0x49
-	{value: 0x0263, lo: 0x02},
-	{value: 0x1cce, lo: 0xb4, hi: 0xb4},
-	{value: 0x1a6f, lo: 0xb5, hi: 0xb6},
-	// Block 0x49, offset 0x4a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x44c3, lo: 0x9c, hi: 0x9c},
-	// Block 0x4a, offset 0x4b
-	{value: 0x0000, lo: 0x02},
-	{value: 0x0095, lo: 0xbc, hi: 0xbc},
-	{value: 0x006d, lo: 0xbd, hi: 0xbd},
-	// Block 0x4b, offset 0x4c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xaf, hi: 0xb1},
-	// Block 0x4c, offset 0x4d
-	{value: 0x0000, lo: 0x02},
-	{value: 0x04f1, lo: 0xaf, hi: 0xaf},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x4d, offset 0x4e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xa0, hi: 0xbf},
-	// Block 0x4e, offset 0x4f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0e35, lo: 0x9f, hi: 0x9f},
-	// Block 0x4f, offset 0x50
-	{value: 0x0000, lo: 0x01},
-	{value: 0x169d, lo: 0xb3, hi: 0xb3},
-	// Block 0x50, offset 0x51
-	{value: 0x0004, lo: 0x0b},
-	{value: 0x1605, lo: 0x80, hi: 0x82},
-	{value: 0x161d, lo: 0x83, hi: 0x83},
-	{value: 0x1635, lo: 0x84, hi: 0x85},
-	{value: 0x1645, lo: 0x86, hi: 0x89},
-	{value: 0x1659, lo: 0x8a, hi: 0x8c},
-	{value: 0x166d, lo: 0x8d, hi: 0x8d},
-	{value: 0x1675, lo: 0x8e, hi: 0x8e},
-	{value: 0x167d, lo: 0x8f, hi: 0x90},
-	{value: 0x1689, lo: 0x91, hi: 0x93},
-	{value: 0x1699, lo: 0x94, hi: 0x94},
-	{value: 0x16a1, lo: 0x95, hi: 0x95},
-	// Block 0x51, offset 0x52
-	{value: 0x0004, lo: 0x08},
-	{value: 0x0001, lo: 0x80, hi: 0x80},
-	{value: 0x80da, lo: 0xaa, hi: 0xaa},
-	{value: 0x80e4, lo: 0xab, hi: 0xac},
-	{value: 0x80de, lo: 0xad, hi: 0xad},
-	{value: 0x80e0, lo: 0xae, hi: 0xae},
-	{value: 0x80e0, lo: 0xaf, hi: 0xaf},
-	{value: 0x0525, lo: 0xb6, hi: 0xb6},
-	{value: 0x08f9, lo: 0xb8, hi: 0xba},
-	// Block 0x52, offset 0x53
-	{value: 0x0004, lo: 0x06},
-	{value: 0x030d, lo: 0xb1, hi: 0xb2},
-	{value: 0x0435, lo: 0xb3, hi: 0xb3},
-	{value: 0x0315, lo: 0xb4, hi: 0xb4},
-	{value: 0x0439, lo: 0xb5, hi: 0xb6},
-	{value: 0x0319, lo: 0xb7, hi: 0xb9},
-	{value: 0x0441, lo: 0xba, hi: 0xbf},
-	// Block 0x53, offset 0x54
-	{value: 0x0004, lo: 0x0c},
-	{value: 0x0361, lo: 0x80, hi: 0x80},
-	{value: 0x0325, lo: 0x81, hi: 0x83},
-	{value: 0x0375, lo: 0x84, hi: 0x84},
-	{value: 0x0331, lo: 0x85, hi: 0x8e},
-	{value: 0x03c1, lo: 0x8f, hi: 0xa3},
-	{value: 0x03bd, lo: 0xa4, hi: 0xa4},
-	{value: 0x0359, lo: 0xa5, hi: 0xa6},
-	{value: 0x0459, lo: 0xa7, hi: 0xad},
-	{value: 0x0365, lo: 0xae, hi: 0xae},
-	{value: 0x0475, lo: 0xaf, hi: 0xb0},
-	{value: 0x0369, lo: 0xb1, hi: 0xb3},
-	{value: 0x0379, lo: 0xb4, hi: 0xbf},
-	// Block 0x54, offset 0x55
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0xaf, hi: 0xaf},
-	{value: 0x80e6, lo: 0xb4, hi: 0xbd},
-	// Block 0x55, offset 0x56
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x9f, hi: 0x9f},
-	// Block 0x56, offset 0x57
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb1},
-	// Block 0x57, offset 0x58
-	{value: 0x0000, lo: 0x01},
-	{value: 0x16a5, lo: 0xb0, hi: 0xb0},
-	// Block 0x58, offset 0x59
-	{value: 0x000c, lo: 0x01},
-	{value: 0x00da, lo: 0xb8, hi: 0xb9},
-	// Block 0x59, offset 0x5a
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x86, hi: 0x86},
-	// Block 0x5a, offset 0x5b
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0x84, hi: 0x84},
-	{value: 0x80e6, lo: 0xa0, hi: 0xb1},
-	// Block 0x5b, offset 0x5c
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xab, hi: 0xad},
-	// Block 0x5c, offset 0x5d
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x93, hi: 0x93},
-	// Block 0x5d, offset 0x5e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8007, lo: 0xb3, hi: 0xb3},
-	// Block 0x5e, offset 0x5f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0x80, hi: 0x80},
-	// Block 0x5f, offset 0x60
-	{value: 0x0000, lo: 0x05},
-	{value: 0x80e6, lo: 0xb0, hi: 0xb0},
-	{value: 0x80e6, lo: 0xb2, hi: 0xb3},
-	{value: 0x80dc, lo: 0xb4, hi: 0xb4},
-	{value: 0x80e6, lo: 0xb7, hi: 0xb8},
-	{value: 0x80e6, lo: 0xbe, hi: 0xbf},
-	// Block 0x60, offset 0x61
-	{value: 0x0000, lo: 0x02},
-	{value: 0x80e6, lo: 0x81, hi: 0x81},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	// Block 0x61, offset 0x62
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8009, lo: 0xad, hi: 0xad},
-	// Block 0x62, offset 0x63
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xbf},
-	// Block 0x63, offset 0x64
-	{value: 0x0000, lo: 0x01},
-	{value: 0x8100, lo: 0x80, hi: 0xa3},
-	// Block 0x64, offset 0x65
-	{value: 0x0002, lo: 0x01},
-	{value: 0x0003, lo: 0x81, hi: 0xbf},
-	// Block 0x65, offset 0x66
-	{value: 0x0004, lo: 0x0e},
-	{value: 0x03c1, lo: 0x82, hi: 0x87},
-	{value: 0x03d9, lo: 0x8a, hi: 0x8f},
-	{value: 0x03f1, lo: 0x92, hi: 0x97},
-	{value: 0x0409, lo: 0x9a, hi: 0x9c},
-	{value: 0x00bf, lo: 0xa0, hi: 0xa0},
-	{value: 0x00c2, lo: 0xa1, hi: 0xa1},
-	{value: 0x00cb, lo: 0xa2, hi: 0xa2},
-	{value: 0x424a, lo: 0xa3, hi: 0xa3},
-	{value: 0x00c8, lo: 0xa4, hi: 0xa4},
-	{value: 0x00c5, lo: 0xa5, hi: 0xa5},
-	{value: 0x04b9, lo: 0xa6, hi: 0xa6},
-	{value: 0x04dd, lo: 0xa8, hi: 0xa8},
-	{value: 0x04bd, lo: 0xa9, hi: 0xac},
-	{value: 0x04e1, lo: 0xad, hi: 0xae},
-	// Block 0x66, offset 0x67
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80dc, lo: 0xbd, hi: 0xbd},
-	// Block 0x67, offset 0x68
-	{value: 0x00db, lo: 0x05},
-	{value: 0x80dc, lo: 0x8d, hi: 0x8d},
-	{value: 0x80e6, lo: 0x8f, hi: 0x8f},
-	{value: 0x80e6, lo: 0xb8, hi: 0xb8},
-	{value: 0x8001, lo: 0xb9, hi: 0xba},
-	{value: 0x8009, lo: 0xbf, hi: 0xbf},
-	// Block 0x68, offset 0x69
-	{value: 0x05fe, lo: 0x07},
-	{value: 0x8800, lo: 0x99, hi: 0x99},
-	{value: 0x4222, lo: 0x9a, hi: 0x9a},
-	{value: 0x8800, lo: 0x9b, hi: 0x9b},
-	{value: 0x422c, lo: 0x9c, hi: 0x9c},
-	{value: 0x8800, lo: 0xa5, hi: 0xa5},
-	{value: 0x4236, lo: 0xab, hi: 0xab},
-	{value: 0x8009, lo: 0xb9, hi: 0xba},
-	// Block 0x69, offset 0x6a
-	{value: 0x0000, lo: 0x06},
-	{value: 0x80e6, lo: 0x80, hi: 0x82},
-	{value: 0x8600, lo: 0xa7, hi: 0xa7},
-	{value: 0x1993, lo: 0xae, hi: 0xae},
-	{value: 0x199c, lo: 0xaf, hi: 0xaf},
-	{value: 0x8800, lo: 0xb1, hi: 0xb2},
-	{value: 0x8009, lo: 0xb3, hi: 0xb4},
-	// Block 0x6a, offset 0x6b
-	{value: 0x0000, lo: 0x02},
-	{value: 0x8009, lo: 0xb6, hi: 0xb6},
-	{value: 0x8007, lo: 0xb7, hi: 0xb7},
-	// Block 0x6b, offset 0x6c
-	{value: 0x0000, lo: 0x0c},
-	{value: 0x45b2, lo: 0x9e, hi: 0x9e},
-	{value: 0x45bc, lo: 0x9f, hi: 0x9f},
-	{value: 0x45f0, lo: 0xa0, hi: 0xa0},
-	{value: 0x45fe, lo: 0xa1, hi: 0xa1},
-	{value: 0x460c, lo: 0xa2, hi: 0xa2},
-	{value: 0x461a, lo: 0xa3, hi: 0xa3},
-	{value: 0x4628, lo: 0xa4, hi: 0xa4},
-	{value: 0x80d8, lo: 0xa5, hi: 0xa6},
-	{value: 0x8001, lo: 0xa7, hi: 0xa9},
-	{value: 0x80e2, lo: 0xad, hi: 0xad},
-	{value: 0x80d8, lo: 0xae, hi: 0xb2},
-	{value: 0x80dc, lo: 0xbb, hi: 0xbf},
-	// Block 0x6c, offset 0x6d
-	{value: 0x0000, lo: 0x09},
-	{value: 0x80dc, lo: 0x80, hi: 0x82},
-	{value: 0x80e6, lo: 0x85, hi: 0x89},
-	{value: 0x80dc, lo: 0x8a, hi: 0x8b},
-	{value: 0x80e6, lo: 0xaa, hi: 0xad},
-	{value: 0x45c6, lo: 0xbb, hi: 0xbb},
-	{value: 0x45d0, lo: 0xbc, hi: 0xbc},
-	{value: 0x4636, lo: 0xbd, hi: 0xbd},
-	{value: 0x4652, lo: 0xbe, hi: 0xbe},
-	{value: 0x4644, lo: 0xbf, hi: 0xbf},
-	// Block 0x6d, offset 0x6e
-	{value: 0x0000, lo: 0x01},
-	{value: 0x4660, lo: 0x80, hi: 0x80},
-	// Block 0x6e, offset 0x6f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x80e6, lo: 0x82, hi: 0x84},
-	// Block 0x6f, offset 0x70
-	{value: 0x0002, lo: 0x03},
-	{value: 0x0043, lo: 0x80, hi: 0x99},
-	{value: 0x0083, lo: 0x9a, hi: 0xb3},
-	{value: 0x0043, lo: 0xb4, hi: 0xbf},
-	// Block 0x70, offset 0x71
-	{value: 0x0002, lo: 0x04},
-	{value: 0x005b, lo: 0x80, hi: 0x8d},
-	{value: 0x0083, lo: 0x8e, hi: 0x94},
-	{value: 0x0093, lo: 0x96, hi: 0xa7},
-	{value: 0x0043, lo: 0xa8, hi: 0xbf},
-	// Block 0x71, offset 0x72
-	{value: 0x0002, lo: 0x0b},
-	{value: 0x0073, lo: 0x80, hi: 0x81},
-	{value: 0x0083, lo: 0x82, hi: 0x9b},
-	{value: 0x0043, lo: 0x9c, hi: 0x9c},
-	{value: 0x0047, lo: 0x9e, hi: 0x9f},
-	{value: 0x004f, lo: 0xa2, hi: 0xa2},
-	{value: 0x0055, lo: 0xa5, hi: 0xa6},
-	{value: 0x005d, lo: 0xa9, hi: 0xac},
-	{value: 0x0067, lo: 0xae, hi: 0xb5},
-	{value: 0x0083, lo: 0xb6, hi: 0xb9},
-	{value: 0x008d, lo: 0xbb, hi: 0xbb},
-	{value: 0x0091, lo: 0xbd, hi: 0xbf},
-	// Block 0x72, offset 0x73
-	{value: 0x0002, lo: 0x04},
-	{value: 0x0097, lo: 0x80, hi: 0x83},
-	{value: 0x00a1, lo: 0x85, hi: 0x8f},
-	{value: 0x0043, lo: 0x90, hi: 0xa9},
-	{value: 0x0083, lo: 0xaa, hi: 0xbf},
-	// Block 0x73, offset 0x74
-	{value: 0x0002, lo: 0x08},
-	{value: 0x00af, lo: 0x80, hi: 0x83},
-	{value: 0x0043, lo: 0x84, hi: 0x85},
-	{value: 0x0049, lo: 0x87, hi: 0x8a},
-	{value: 0x0055, lo: 0x8d, hi: 0x94},
-	{value: 0x0067, lo: 0x96, hi: 0x9c},
-	{value: 0x0083, lo: 0x9e, hi: 0xb7},
-	{value: 0x0043, lo: 0xb8, hi: 0xb9},
-	{value: 0x0049, lo: 0xbb, hi: 0xbe},
-	// Block 0x74, offset 0x75
-	{value: 0x0002, lo: 0x05},
-	{value: 0x0053, lo: 0x80, hi: 0x84},
-	{value: 0x005f, lo: 0x86, hi: 0x86},
-	{value: 0x0067, lo: 0x8a, hi: 0x90},
-	{value: 0x0083, lo: 0x92, hi: 0xab},
-	{value: 0x0043, lo: 0xac, hi: 0xbf},
-	// Block 0x75, offset 0x76
-	{value: 0x0002, lo: 0x04},
-	{value: 0x006b, lo: 0x80, hi: 0x85},
-	{value: 0x0083, lo: 0x86, hi: 0x9f},
-	{value: 0x0043, lo: 0xa0, hi: 0xb9},
-	{value: 0x0083, lo: 0xba, hi: 0xbf},
-	// Block 0x76, offset 0x77
-	{value: 0x0002, lo: 0x03},
-	{value: 0x008f, lo: 0x80, hi: 0x93},
-	{value: 0x0043, lo: 0x94, hi: 0xad},
-	{value: 0x0083, lo: 0xae, hi: 0xbf},
-	// Block 0x77, offset 0x78
-	{value: 0x0002, lo: 0x04},
-	{value: 0x00a7, lo: 0x80, hi: 0x87},
-	{value: 0x0043, lo: 0x88, hi: 0xa1},
-	{value: 0x0083, lo: 0xa2, hi: 0xbb},
-	{value: 0x0043, lo: 0xbc, hi: 0xbf},
-	// Block 0x78, offset 0x79
-	{value: 0x0002, lo: 0x03},
-	{value: 0x004b, lo: 0x80, hi: 0x95},
-	{value: 0x0083, lo: 0x96, hi: 0xaf},
-	{value: 0x0043, lo: 0xb0, hi: 0xbf},
-	// Block 0x79, offset 0x7a
-	{value: 0x0003, lo: 0x0f},
-	{value: 0x01b8, lo: 0x80, hi: 0x80},
-	{value: 0x04d1, lo: 0x81, hi: 0x81},
-	{value: 0x01bb, lo: 0x82, hi: 0x9a},
-	{value: 0x04cd, lo: 0x9b, hi: 0x9b},
-	{value: 0x01c7, lo: 0x9c, hi: 0x9c},
-	{value: 0x01d0, lo: 0x9d, hi: 0x9d},
-	{value: 0x01d6, lo: 0x9e, hi: 0x9e},
-	{value: 0x01fa, lo: 0x9f, hi: 0x9f},
-	{value: 0x01eb, lo: 0xa0, hi: 0xa0},
-	{value: 0x01e8, lo: 0xa1, hi: 0xa1},
-	{value: 0x0173, lo: 0xa2, hi: 0xb2},
-	{value: 0x0188, lo: 0xb3, hi: 0xb3},
-	{value: 0x01a6, lo: 0xb4, hi: 0xba},
-	{value: 0x04d1, lo: 0xbb, hi: 0xbb},
-	{value: 0x01bb, lo: 0xbc, hi: 0xbf},
-	// Block 0x7a, offset 0x7b
-	{value: 0x0003, lo: 0x0d},
-	{value: 0x01c7, lo: 0x80, hi: 0x94},
-	{value: 0x04cd, lo: 0x95, hi: 0x95},
-	{value: 0x01c7, lo: 0x96, hi: 0x96},
-	{value: 0x01d0, lo: 0x97, hi: 0x97},
-	{value: 0x01d6, lo: 0x98, hi: 0x98},
-	{value: 0x01fa, lo: 0x99, hi: 0x99},
-	{value: 0x01eb, lo: 0x9a, hi: 0x9a},
-	{value: 0x01e8, lo: 0x9b, hi: 0x9b},
-	{value: 0x0173, lo: 0x9c, hi: 0xac},
-	{value: 0x0188, lo: 0xad, hi: 0xad},
-	{value: 0x01a6, lo: 0xae, hi: 0xb4},
-	{value: 0x04d1, lo: 0xb5, hi: 0xb5},
-	{value: 0x01bb, lo: 0xb6, hi: 0xbf},
-	// Block 0x7b, offset 0x7c
-	{value: 0x0003, lo: 0x0d},
-	{value: 0x01d9, lo: 0x80, hi: 0x8e},
-	{value: 0x04cd, lo: 0x8f, hi: 0x8f},
-	{value: 0x01c7, lo: 0x90, hi: 0x90},
-	{value: 0x01d0, lo: 0x91, hi: 0x91},
-	{value: 0x01d6, lo: 0x92, hi: 0x92},
-	{value: 0x01fa, lo: 0x93, hi: 0x93},
-	{value: 0x01eb, lo: 0x94, hi: 0x94},
-	{value: 0x01e8, lo: 0x95, hi: 0x95},
-	{value: 0x0173, lo: 0x96, hi: 0xa6},
-	{value: 0x0188, lo: 0xa7, hi: 0xa7},
-	{value: 0x01a6, lo: 0xa8, hi: 0xae},
-	{value: 0x04d1, lo: 0xaf, hi: 0xaf},
-	{value: 0x01bb, lo: 0xb0, hi: 0xbf},
-	// Block 0x7c, offset 0x7d
-	{value: 0x0003, lo: 0x0d},
-	{value: 0x01eb, lo: 0x80, hi: 0x88},
-	{value: 0x04cd, lo: 0x89, hi: 0x89},
-	{value: 0x01c7, lo: 0x8a, hi: 0x8a},
-	{value: 0x01d0, lo: 0x8b, hi: 0x8b},
-	{value: 0x01d6, lo: 0x8c, hi: 0x8c},
-	{value: 0x01fa, lo: 0x8d, hi: 0x8d},
-	{value: 0x01eb, lo: 0x8e, hi: 0x8e},
-	{value: 0x01e8, lo: 0x8f, hi: 0x8f},
-	{value: 0x0173, lo: 0x90, hi: 0xa0},
-	{value: 0x0188, lo: 0xa1, hi: 0xa1},
-	{value: 0x01a6, lo: 0xa2, hi: 0xa8},
-	{value: 0x04d1, lo: 0xa9, hi: 0xa9},
-	{value: 0x01bb, lo: 0xaa, hi: 0xbf},
-	// Block 0x7d, offset 0x7e
-	{value: 0x0002, lo: 0x09},
-	{value: 0x0063, lo: 0x80, hi: 0x89},
-	{value: 0x1a93, lo: 0x8a, hi: 0x8a},
-	{value: 0x1ac3, lo: 0x8b, hi: 0x8b},
-	{value: 0x1ade, lo: 0x8c, hi: 0x8c},
-	{value: 0x1ae4, lo: 0x8d, hi: 0x8d},
-	{value: 0x1d02, lo: 0x8e, hi: 0x8e},
-	{value: 0x1af0, lo: 0x8f, hi: 0x8f},
-	{value: 0x1abd, lo: 0xaa, hi: 0xaa},
-	{value: 0x1ac0, lo: 0xab, hi: 0xab},
-	// Block 0x7e, offset 0x7f
-	{value: 0x0000, lo: 0x01},
-	{value: 0x1a81, lo: 0x90, hi: 0x90},
-	// Block 0x7f, offset 0x80
-	{value: 0x0028, lo: 0x09},
-	{value: 0x2a0d, lo: 0x80, hi: 0x80},
-	{value: 0x29d1, lo: 0x81, hi: 0x81},
-	{value: 0x29db, lo: 0x82, hi: 0x82},
-	{value: 0x29ef, lo: 0x83, hi: 0x84},
-	{value: 0x29f9, lo: 0x85, hi: 0x86},
-	{value: 0x29e5, lo: 0x87, hi: 0x87},
-	{value: 0x2a03, lo: 0x88, hi: 0x88},
-	{value: 0x0be1, lo: 0x90, hi: 0x90},
-	{value: 0x0959, lo: 0x91, hi: 0x91},
-}
-
-// nfkcLookup: 1216 bytes
-// Block 0 is the null block.
-var nfkcLookup = [1216]uint8{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0c2: 0x58, 0x0c3: 0x01, 0x0c4: 0x02, 0x0c5: 0x03, 0x0c6: 0x59, 0x0c7: 0x04,
-	0x0c8: 0x05, 0x0ca: 0x5a, 0x0cb: 0x5b, 0x0cc: 0x06, 0x0cd: 0x07, 0x0ce: 0x08, 0x0cf: 0x09,
-	0x0d0: 0x0a, 0x0d1: 0x5c, 0x0d2: 0x5d, 0x0d3: 0x0b, 0x0d6: 0x0c, 0x0d7: 0x5e,
-	0x0d8: 0x5f, 0x0d9: 0x0d, 0x0db: 0x60, 0x0dc: 0x61, 0x0dd: 0x62, 0x0df: 0x63,
-	0x0e0: 0x02, 0x0e1: 0x03, 0x0e2: 0x04, 0x0e3: 0x05,
-	0x0ea: 0x06, 0x0eb: 0x07, 0x0ec: 0x07, 0x0ed: 0x08, 0x0ef: 0x09,
-	0x0f0: 0x10,
-	// Block 0x4, offset 0x100
-	0x120: 0x64, 0x121: 0x65, 0x123: 0x66, 0x124: 0x67, 0x125: 0x68, 0x126: 0x69, 0x127: 0x6a,
-	0x128: 0x6b, 0x129: 0x6c, 0x12a: 0x6d, 0x12b: 0x6e, 0x12c: 0x69, 0x12d: 0x6f, 0x12e: 0x70, 0x12f: 0x71,
-	0x131: 0x72, 0x132: 0x73, 0x133: 0x74, 0x134: 0x75, 0x135: 0x76, 0x137: 0x77,
-	0x138: 0x78, 0x139: 0x79, 0x13a: 0x7a, 0x13b: 0x7b, 0x13c: 0x7c, 0x13d: 0x7d, 0x13e: 0x7e, 0x13f: 0x7f,
-	// Block 0x5, offset 0x140
-	0x140: 0x80, 0x142: 0x81, 0x143: 0x82, 0x144: 0x83, 0x145: 0x84, 0x146: 0x85, 0x147: 0x86,
-	0x14d: 0x87,
-	0x15c: 0x88, 0x15f: 0x89,
-	0x162: 0x8a, 0x164: 0x8b,
-	0x168: 0x8c, 0x169: 0x8d, 0x16c: 0x0e, 0x16d: 0x8e, 0x16e: 0x8f, 0x16f: 0x90,
-	0x170: 0x91, 0x173: 0x92, 0x174: 0x93, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x94,
-	0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18,
-	// Block 0x6, offset 0x180
-	0x180: 0x95, 0x181: 0x96, 0x182: 0x97, 0x183: 0x98, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x99, 0x187: 0x9a,
-	0x188: 0x9b, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9c, 0x18c: 0x9d,
-	0x191: 0x1d, 0x192: 0x1e, 0x193: 0x9e,
-	0x1a8: 0x9f, 0x1a9: 0xa0, 0x1ab: 0xa1,
-	0x1b1: 0xa2, 0x1b3: 0xa3, 0x1b5: 0xa4, 0x1b7: 0xa5,
-	0x1ba: 0xa6, 0x1bb: 0xa7, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xa8,
-	// Block 0x7, offset 0x1c0
-	0x1c0: 0xa9, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xaa, 0x1c5: 0xab, 0x1c6: 0x25,
-	0x1c8: 0x26, 0x1c9: 0x27, 0x1ca: 0x28, 0x1cb: 0x29, 0x1cc: 0x2a, 0x1cd: 0x2b, 0x1ce: 0x2c, 0x1cf: 0x2d,
-	// Block 0x8, offset 0x200
-	0x219: 0xac, 0x21a: 0xad, 0x21b: 0xae, 0x21d: 0xaf, 0x21f: 0xb0,
-	0x220: 0xb1, 0x223: 0xb2, 0x224: 0xb3, 0x225: 0xb4, 0x226: 0xb5, 0x227: 0xb6,
-	0x22a: 0xb7, 0x22b: 0xb8, 0x22f: 0xb9,
-	0x230: 0xba, 0x231: 0xba, 0x232: 0xba, 0x233: 0xba, 0x234: 0xba, 0x235: 0xba, 0x236: 0xba, 0x237: 0xba,
-	0x238: 0xba, 0x239: 0xba, 0x23a: 0xba, 0x23b: 0xba, 0x23c: 0xba, 0x23d: 0xba, 0x23e: 0xba, 0x23f: 0xba,
-	// Block 0x9, offset 0x240
-	0x240: 0xba, 0x241: 0xba, 0x242: 0xba, 0x243: 0xba, 0x244: 0xba, 0x245: 0xba, 0x246: 0xba, 0x247: 0xba,
-	0x248: 0xba, 0x249: 0xba, 0x24a: 0xba, 0x24b: 0xba, 0x24c: 0xba, 0x24d: 0xba, 0x24e: 0xba, 0x24f: 0xba,
-	0x250: 0xba, 0x251: 0xba, 0x252: 0xba, 0x253: 0xba, 0x254: 0xba, 0x255: 0xba, 0x256: 0xba, 0x257: 0xba,
-	0x258: 0xba, 0x259: 0xba, 0x25a: 0xba, 0x25b: 0xba, 0x25c: 0xba, 0x25d: 0xba, 0x25e: 0xba, 0x25f: 0xba,
-	0x260: 0xba, 0x261: 0xba, 0x262: 0xba, 0x263: 0xba, 0x264: 0xba, 0x265: 0xba, 0x266: 0xba, 0x267: 0xba,
-	0x268: 0xba, 0x269: 0xba, 0x26a: 0xba, 0x26b: 0xba, 0x26c: 0xba, 0x26d: 0xba, 0x26e: 0xba, 0x26f: 0xba,
-	0x270: 0xba, 0x271: 0xba, 0x272: 0xba, 0x273: 0xba, 0x274: 0xba, 0x275: 0xba, 0x276: 0xba, 0x277: 0xba,
-	0x278: 0xba, 0x279: 0xba, 0x27a: 0xba, 0x27b: 0xba, 0x27c: 0xba, 0x27d: 0xba, 0x27e: 0xba, 0x27f: 0xba,
-	// Block 0xa, offset 0x280
-	0x280: 0xba, 0x281: 0xba, 0x282: 0xba, 0x283: 0xba, 0x284: 0xba, 0x285: 0xba, 0x286: 0xba, 0x287: 0xba,
-	0x288: 0xba, 0x289: 0xba, 0x28a: 0xba, 0x28b: 0xba, 0x28c: 0xba, 0x28d: 0xba, 0x28e: 0xba, 0x28f: 0xba,
-	0x290: 0xba, 0x291: 0xba, 0x292: 0xba, 0x293: 0xba, 0x294: 0xba, 0x295: 0xba, 0x296: 0xba, 0x297: 0xba,
-	0x298: 0xba, 0x299: 0xba, 0x29a: 0xba, 0x29b: 0xba, 0x29c: 0xba, 0x29d: 0xba, 0x29e: 0xbb,
-	// Block 0xb, offset 0x2c0
-	0x2e4: 0x2e, 0x2e5: 0x2f, 0x2e6: 0x30, 0x2e7: 0x31,
-	0x2e8: 0x32, 0x2e9: 0x33, 0x2ea: 0x34, 0x2eb: 0x35, 0x2ec: 0x36, 0x2ed: 0x37, 0x2ee: 0x38, 0x2ef: 0x39,
-	0x2f0: 0x3a, 0x2f1: 0x3b, 0x2f2: 0x3c, 0x2f3: 0x3d, 0x2f4: 0x3e, 0x2f5: 0x3f, 0x2f6: 0x40, 0x2f7: 0x41,
-	0x2f8: 0x42, 0x2f9: 0x43, 0x2fa: 0x44, 0x2fb: 0x45, 0x2fc: 0xbc, 0x2fd: 0x46, 0x2fe: 0x47, 0x2ff: 0xbd,
-	// Block 0xc, offset 0x300
-	0x307: 0xbe,
-	0x328: 0xbf,
-	// Block 0xd, offset 0x340
-	0x341: 0xb1, 0x342: 0xc0, 0x344: 0xc1, 0x347: 0xb6,
-	0x35a: 0xc2,
-	// Block 0xe, offset 0x380
-	0x385: 0xc3, 0x386: 0xc4, 0x387: 0xc5,
-	0x389: 0xc6,
-	0x390: 0xc7, 0x391: 0xc8, 0x392: 0xc9, 0x393: 0xca, 0x394: 0xcb, 0x395: 0xcc, 0x396: 0xcd, 0x397: 0xce,
-	0x398: 0xcf, 0x399: 0xd0, 0x39a: 0x48, 0x39b: 0xd1, 0x39c: 0xd2, 0x39d: 0xd3, 0x39e: 0xd4, 0x39f: 0x49,
-	// Block 0xf, offset 0x3c0
-	0x3f8: 0x4a, 0x3f9: 0x4b, 0x3fa: 0x4c,
-	// Block 0x10, offset 0x400
-	0x404: 0x4d, 0x405: 0xd5, 0x406: 0xd6,
-	0x408: 0x4e, 0x409: 0xd7,
-	// Block 0x11, offset 0x440
-	0x460: 0x4f, 0x461: 0x50, 0x462: 0x51, 0x463: 0x52, 0x464: 0x53, 0x465: 0x54, 0x466: 0x55, 0x467: 0x56,
-	0x468: 0x57,
-	// Block 0x12, offset 0x480
-	0x490: 0x0a, 0x491: 0x0b,
-	0x49d: 0x0c, 0x49e: 0x0d, 0x49f: 0x0e,
-	0x4af: 0x0f,
-}
-
-var nfkcTrie = trie{nfkcLookup[:], nfkcValues[:], nfkcSparseValues[:], nfkcSparseOffset[:], 88}
-
-// recompMap: 7464 bytes (entries only)
-var recompMap = map[uint32]rune{
-	0x00410300: 0x00C0,
-	0x00410301: 0x00C1,
-	0x00410302: 0x00C2,
-	0x00410303: 0x00C3,
-	0x00410308: 0x00C4,
-	0x0041030A: 0x00C5,
-	0x00430327: 0x00C7,
-	0x00450300: 0x00C8,
-	0x00450301: 0x00C9,
-	0x00450302: 0x00CA,
-	0x00450308: 0x00CB,
-	0x00490300: 0x00CC,
-	0x00490301: 0x00CD,
-	0x00490302: 0x00CE,
-	0x00490308: 0x00CF,
-	0x004E0303: 0x00D1,
-	0x004F0300: 0x00D2,
-	0x004F0301: 0x00D3,
-	0x004F0302: 0x00D4,
-	0x004F0303: 0x00D5,
-	0x004F0308: 0x00D6,
-	0x00550300: 0x00D9,
-	0x00550301: 0x00DA,
-	0x00550302: 0x00DB,
-	0x00550308: 0x00DC,
-	0x00590301: 0x00DD,
-	0x00610300: 0x00E0,
-	0x00610301: 0x00E1,
-	0x00610302: 0x00E2,
-	0x00610303: 0x00E3,
-	0x00610308: 0x00E4,
-	0x0061030A: 0x00E5,
-	0x00630327: 0x00E7,
-	0x00650300: 0x00E8,
-	0x00650301: 0x00E9,
-	0x00650302: 0x00EA,
-	0x00650308: 0x00EB,
-	0x00690300: 0x00EC,
-	0x00690301: 0x00ED,
-	0x00690302: 0x00EE,
-	0x00690308: 0x00EF,
-	0x006E0303: 0x00F1,
-	0x006F0300: 0x00F2,
-	0x006F0301: 0x00F3,
-	0x006F0302: 0x00F4,
-	0x006F0303: 0x00F5,
-	0x006F0308: 0x00F6,
-	0x00750300: 0x00F9,
-	0x00750301: 0x00FA,
-	0x00750302: 0x00FB,
-	0x00750308: 0x00FC,
-	0x00790301: 0x00FD,
-	0x00790308: 0x00FF,
-	0x00410304: 0x0100,
-	0x00610304: 0x0101,
-	0x00410306: 0x0102,
-	0x00610306: 0x0103,
-	0x00410328: 0x0104,
-	0x00610328: 0x0105,
-	0x00430301: 0x0106,
-	0x00630301: 0x0107,
-	0x00430302: 0x0108,
-	0x00630302: 0x0109,
-	0x00430307: 0x010A,
-	0x00630307: 0x010B,
-	0x0043030C: 0x010C,
-	0x0063030C: 0x010D,
-	0x0044030C: 0x010E,
-	0x0064030C: 0x010F,
-	0x00450304: 0x0112,
-	0x00650304: 0x0113,
-	0x00450306: 0x0114,
-	0x00650306: 0x0115,
-	0x00450307: 0x0116,
-	0x00650307: 0x0117,
-	0x00450328: 0x0118,
-	0x00650328: 0x0119,
-	0x0045030C: 0x011A,
-	0x0065030C: 0x011B,
-	0x00470302: 0x011C,
-	0x00670302: 0x011D,
-	0x00470306: 0x011E,
-	0x00670306: 0x011F,
-	0x00470307: 0x0120,
-	0x00670307: 0x0121,
-	0x00470327: 0x0122,
-	0x00670327: 0x0123,
-	0x00480302: 0x0124,
-	0x00680302: 0x0125,
-	0x00490303: 0x0128,
-	0x00690303: 0x0129,
-	0x00490304: 0x012A,
-	0x00690304: 0x012B,
-	0x00490306: 0x012C,
-	0x00690306: 0x012D,
-	0x00490328: 0x012E,
-	0x00690328: 0x012F,
-	0x00490307: 0x0130,
-	0x004A0302: 0x0134,
-	0x006A0302: 0x0135,
-	0x004B0327: 0x0136,
-	0x006B0327: 0x0137,
-	0x004C0301: 0x0139,
-	0x006C0301: 0x013A,
-	0x004C0327: 0x013B,
-	0x006C0327: 0x013C,
-	0x004C030C: 0x013D,
-	0x006C030C: 0x013E,
-	0x004E0301: 0x0143,
-	0x006E0301: 0x0144,
-	0x004E0327: 0x0145,
-	0x006E0327: 0x0146,
-	0x004E030C: 0x0147,
-	0x006E030C: 0x0148,
-	0x004F0304: 0x014C,
-	0x006F0304: 0x014D,
-	0x004F0306: 0x014E,
-	0x006F0306: 0x014F,
-	0x004F030B: 0x0150,
-	0x006F030B: 0x0151,
-	0x00520301: 0x0154,
-	0x00720301: 0x0155,
-	0x00520327: 0x0156,
-	0x00720327: 0x0157,
-	0x0052030C: 0x0158,
-	0x0072030C: 0x0159,
-	0x00530301: 0x015A,
-	0x00730301: 0x015B,
-	0x00530302: 0x015C,
-	0x00730302: 0x015D,
-	0x00530327: 0x015E,
-	0x00730327: 0x015F,
-	0x0053030C: 0x0160,
-	0x0073030C: 0x0161,
-	0x00540327: 0x0162,
-	0x00740327: 0x0163,
-	0x0054030C: 0x0164,
-	0x0074030C: 0x0165,
-	0x00550303: 0x0168,
-	0x00750303: 0x0169,
-	0x00550304: 0x016A,
-	0x00750304: 0x016B,
-	0x00550306: 0x016C,
-	0x00750306: 0x016D,
-	0x0055030A: 0x016E,
-	0x0075030A: 0x016F,
-	0x0055030B: 0x0170,
-	0x0075030B: 0x0171,
-	0x00550328: 0x0172,
-	0x00750328: 0x0173,
-	0x00570302: 0x0174,
-	0x00770302: 0x0175,
-	0x00590302: 0x0176,
-	0x00790302: 0x0177,
-	0x00590308: 0x0178,
-	0x005A0301: 0x0179,
-	0x007A0301: 0x017A,
-	0x005A0307: 0x017B,
-	0x007A0307: 0x017C,
-	0x005A030C: 0x017D,
-	0x007A030C: 0x017E,
-	0x004F031B: 0x01A0,
-	0x006F031B: 0x01A1,
-	0x0055031B: 0x01AF,
-	0x0075031B: 0x01B0,
-	0x0041030C: 0x01CD,
-	0x0061030C: 0x01CE,
-	0x0049030C: 0x01CF,
-	0x0069030C: 0x01D0,
-	0x004F030C: 0x01D1,
-	0x006F030C: 0x01D2,
-	0x0055030C: 0x01D3,
-	0x0075030C: 0x01D4,
-	0x00DC0304: 0x01D5,
-	0x00FC0304: 0x01D6,
-	0x00DC0301: 0x01D7,
-	0x00FC0301: 0x01D8,
-	0x00DC030C: 0x01D9,
-	0x00FC030C: 0x01DA,
-	0x00DC0300: 0x01DB,
-	0x00FC0300: 0x01DC,
-	0x00C40304: 0x01DE,
-	0x00E40304: 0x01DF,
-	0x02260304: 0x01E0,
-	0x02270304: 0x01E1,
-	0x00C60304: 0x01E2,
-	0x00E60304: 0x01E3,
-	0x0047030C: 0x01E6,
-	0x0067030C: 0x01E7,
-	0x004B030C: 0x01E8,
-	0x006B030C: 0x01E9,
-	0x004F0328: 0x01EA,
-	0x006F0328: 0x01EB,
-	0x01EA0304: 0x01EC,
-	0x01EB0304: 0x01ED,
-	0x01B7030C: 0x01EE,
-	0x0292030C: 0x01EF,
-	0x006A030C: 0x01F0,
-	0x00470301: 0x01F4,
-	0x00670301: 0x01F5,
-	0x004E0300: 0x01F8,
-	0x006E0300: 0x01F9,
-	0x00C50301: 0x01FA,
-	0x00E50301: 0x01FB,
-	0x00C60301: 0x01FC,
-	0x00E60301: 0x01FD,
-	0x00D80301: 0x01FE,
-	0x00F80301: 0x01FF,
-	0x0041030F: 0x0200,
-	0x0061030F: 0x0201,
-	0x00410311: 0x0202,
-	0x00610311: 0x0203,
-	0x0045030F: 0x0204,
-	0x0065030F: 0x0205,
-	0x00450311: 0x0206,
-	0x00650311: 0x0207,
-	0x0049030F: 0x0208,
-	0x0069030F: 0x0209,
-	0x00490311: 0x020A,
-	0x00690311: 0x020B,
-	0x004F030F: 0x020C,
-	0x006F030F: 0x020D,
-	0x004F0311: 0x020E,
-	0x006F0311: 0x020F,
-	0x0052030F: 0x0210,
-	0x0072030F: 0x0211,
-	0x00520311: 0x0212,
-	0x00720311: 0x0213,
-	0x0055030F: 0x0214,
-	0x0075030F: 0x0215,
-	0x00550311: 0x0216,
-	0x00750311: 0x0217,
-	0x00530326: 0x0218,
-	0x00730326: 0x0219,
-	0x00540326: 0x021A,
-	0x00740326: 0x021B,
-	0x0048030C: 0x021E,
-	0x0068030C: 0x021F,
-	0x00410307: 0x0226,
-	0x00610307: 0x0227,
-	0x00450327: 0x0228,
-	0x00650327: 0x0229,
-	0x00D60304: 0x022A,
-	0x00F60304: 0x022B,
-	0x00D50304: 0x022C,
-	0x00F50304: 0x022D,
-	0x004F0307: 0x022E,
-	0x006F0307: 0x022F,
-	0x022E0304: 0x0230,
-	0x022F0304: 0x0231,
-	0x00590304: 0x0232,
-	0x00790304: 0x0233,
-	0x00A80301: 0x0385,
-	0x03910301: 0x0386,
-	0x03950301: 0x0388,
-	0x03970301: 0x0389,
-	0x03990301: 0x038A,
-	0x039F0301: 0x038C,
-	0x03A50301: 0x038E,
-	0x03A90301: 0x038F,
-	0x03CA0301: 0x0390,
-	0x03990308: 0x03AA,
-	0x03A50308: 0x03AB,
-	0x03B10301: 0x03AC,
-	0x03B50301: 0x03AD,
-	0x03B70301: 0x03AE,
-	0x03B90301: 0x03AF,
-	0x03CB0301: 0x03B0,
-	0x03B90308: 0x03CA,
-	0x03C50308: 0x03CB,
-	0x03BF0301: 0x03CC,
-	0x03C50301: 0x03CD,
-	0x03C90301: 0x03CE,
-	0x03D20301: 0x03D3,
-	0x03D20308: 0x03D4,
-	0x04150300: 0x0400,
-	0x04150308: 0x0401,
-	0x04130301: 0x0403,
-	0x04060308: 0x0407,
-	0x041A0301: 0x040C,
-	0x04180300: 0x040D,
-	0x04230306: 0x040E,
-	0x04180306: 0x0419,
-	0x04380306: 0x0439,
-	0x04350300: 0x0450,
-	0x04350308: 0x0451,
-	0x04330301: 0x0453,
-	0x04560308: 0x0457,
-	0x043A0301: 0x045C,
-	0x04380300: 0x045D,
-	0x04430306: 0x045E,
-	0x0474030F: 0x0476,
-	0x0475030F: 0x0477,
-	0x04160306: 0x04C1,
-	0x04360306: 0x04C2,
-	0x04100306: 0x04D0,
-	0x04300306: 0x04D1,
-	0x04100308: 0x04D2,
-	0x04300308: 0x04D3,
-	0x04150306: 0x04D6,
-	0x04350306: 0x04D7,
-	0x04D80308: 0x04DA,
-	0x04D90308: 0x04DB,
-	0x04160308: 0x04DC,
-	0x04360308: 0x04DD,
-	0x04170308: 0x04DE,
-	0x04370308: 0x04DF,
-	0x04180304: 0x04E2,
-	0x04380304: 0x04E3,
-	0x04180308: 0x04E4,
-	0x04380308: 0x04E5,
-	0x041E0308: 0x04E6,
-	0x043E0308: 0x04E7,
-	0x04E80308: 0x04EA,
-	0x04E90308: 0x04EB,
-	0x042D0308: 0x04EC,
-	0x044D0308: 0x04ED,
-	0x04230304: 0x04EE,
-	0x04430304: 0x04EF,
-	0x04230308: 0x04F0,
-	0x04430308: 0x04F1,
-	0x0423030B: 0x04F2,
-	0x0443030B: 0x04F3,
-	0x04270308: 0x04F4,
-	0x04470308: 0x04F5,
-	0x042B0308: 0x04F8,
-	0x044B0308: 0x04F9,
-	0x06270653: 0x0622,
-	0x06270654: 0x0623,
-	0x06480654: 0x0624,
-	0x06270655: 0x0625,
-	0x064A0654: 0x0626,
-	0x06D50654: 0x06C0,
-	0x06C10654: 0x06C2,
-	0x06D20654: 0x06D3,
-	0x0928093C: 0x0929,
-	0x0930093C: 0x0931,
-	0x0933093C: 0x0934,
-	0x09C709BE: 0x09CB,
-	0x09C709D7: 0x09CC,
-	0x0B470B56: 0x0B48,
-	0x0B470B3E: 0x0B4B,
-	0x0B470B57: 0x0B4C,
-	0x0B920BD7: 0x0B94,
-	0x0BC60BBE: 0x0BCA,
-	0x0BC70BBE: 0x0BCB,
-	0x0BC60BD7: 0x0BCC,
-	0x0C460C56: 0x0C48,
-	0x0CBF0CD5: 0x0CC0,
-	0x0CC60CD5: 0x0CC7,
-	0x0CC60CD6: 0x0CC8,
-	0x0CC60CC2: 0x0CCA,
-	0x0CCA0CD5: 0x0CCB,
-	0x0D460D3E: 0x0D4A,
-	0x0D470D3E: 0x0D4B,
-	0x0D460D57: 0x0D4C,
-	0x0DD90DCA: 0x0DDA,
-	0x0DD90DCF: 0x0DDC,
-	0x0DDC0DCA: 0x0DDD,
-	0x0DD90DDF: 0x0DDE,
-	0x1025102E: 0x1026,
-	0x1B051B35: 0x1B06,
-	0x1B071B35: 0x1B08,
-	0x1B091B35: 0x1B0A,
-	0x1B0B1B35: 0x1B0C,
-	0x1B0D1B35: 0x1B0E,
-	0x1B111B35: 0x1B12,
-	0x1B3A1B35: 0x1B3B,
-	0x1B3C1B35: 0x1B3D,
-	0x1B3E1B35: 0x1B40,
-	0x1B3F1B35: 0x1B41,
-	0x1B421B35: 0x1B43,
-	0x00410325: 0x1E00,
-	0x00610325: 0x1E01,
-	0x00420307: 0x1E02,
-	0x00620307: 0x1E03,
-	0x00420323: 0x1E04,
-	0x00620323: 0x1E05,
-	0x00420331: 0x1E06,
-	0x00620331: 0x1E07,
-	0x00C70301: 0x1E08,
-	0x00E70301: 0x1E09,
-	0x00440307: 0x1E0A,
-	0x00640307: 0x1E0B,
-	0x00440323: 0x1E0C,
-	0x00640323: 0x1E0D,
-	0x00440331: 0x1E0E,
-	0x00640331: 0x1E0F,
-	0x00440327: 0x1E10,
-	0x00640327: 0x1E11,
-	0x0044032D: 0x1E12,
-	0x0064032D: 0x1E13,
-	0x01120300: 0x1E14,
-	0x01130300: 0x1E15,
-	0x01120301: 0x1E16,
-	0x01130301: 0x1E17,
-	0x0045032D: 0x1E18,
-	0x0065032D: 0x1E19,
-	0x00450330: 0x1E1A,
-	0x00650330: 0x1E1B,
-	0x02280306: 0x1E1C,
-	0x02290306: 0x1E1D,
-	0x00460307: 0x1E1E,
-	0x00660307: 0x1E1F,
-	0x00470304: 0x1E20,
-	0x00670304: 0x1E21,
-	0x00480307: 0x1E22,
-	0x00680307: 0x1E23,
-	0x00480323: 0x1E24,
-	0x00680323: 0x1E25,
-	0x00480308: 0x1E26,
-	0x00680308: 0x1E27,
-	0x00480327: 0x1E28,
-	0x00680327: 0x1E29,
-	0x0048032E: 0x1E2A,
-	0x0068032E: 0x1E2B,
-	0x00490330: 0x1E2C,
-	0x00690330: 0x1E2D,
-	0x00CF0301: 0x1E2E,
-	0x00EF0301: 0x1E2F,
-	0x004B0301: 0x1E30,
-	0x006B0301: 0x1E31,
-	0x004B0323: 0x1E32,
-	0x006B0323: 0x1E33,
-	0x004B0331: 0x1E34,
-	0x006B0331: 0x1E35,
-	0x004C0323: 0x1E36,
-	0x006C0323: 0x1E37,
-	0x1E360304: 0x1E38,
-	0x1E370304: 0x1E39,
-	0x004C0331: 0x1E3A,
-	0x006C0331: 0x1E3B,
-	0x004C032D: 0x1E3C,
-	0x006C032D: 0x1E3D,
-	0x004D0301: 0x1E3E,
-	0x006D0301: 0x1E3F,
-	0x004D0307: 0x1E40,
-	0x006D0307: 0x1E41,
-	0x004D0323: 0x1E42,
-	0x006D0323: 0x1E43,
-	0x004E0307: 0x1E44,
-	0x006E0307: 0x1E45,
-	0x004E0323: 0x1E46,
-	0x006E0323: 0x1E47,
-	0x004E0331: 0x1E48,
-	0x006E0331: 0x1E49,
-	0x004E032D: 0x1E4A,
-	0x006E032D: 0x1E4B,
-	0x00D50301: 0x1E4C,
-	0x00F50301: 0x1E4D,
-	0x00D50308: 0x1E4E,
-	0x00F50308: 0x1E4F,
-	0x014C0300: 0x1E50,
-	0x014D0300: 0x1E51,
-	0x014C0301: 0x1E52,
-	0x014D0301: 0x1E53,
-	0x00500301: 0x1E54,
-	0x00700301: 0x1E55,
-	0x00500307: 0x1E56,
-	0x00700307: 0x1E57,
-	0x00520307: 0x1E58,
-	0x00720307: 0x1E59,
-	0x00520323: 0x1E5A,
-	0x00720323: 0x1E5B,
-	0x1E5A0304: 0x1E5C,
-	0x1E5B0304: 0x1E5D,
-	0x00520331: 0x1E5E,
-	0x00720331: 0x1E5F,
-	0x00530307: 0x1E60,
-	0x00730307: 0x1E61,
-	0x00530323: 0x1E62,
-	0x00730323: 0x1E63,
-	0x015A0307: 0x1E64,
-	0x015B0307: 0x1E65,
-	0x01600307: 0x1E66,
-	0x01610307: 0x1E67,
-	0x1E620307: 0x1E68,
-	0x1E630307: 0x1E69,
-	0x00540307: 0x1E6A,
-	0x00740307: 0x1E6B,
-	0x00540323: 0x1E6C,
-	0x00740323: 0x1E6D,
-	0x00540331: 0x1E6E,
-	0x00740331: 0x1E6F,
-	0x0054032D: 0x1E70,
-	0x0074032D: 0x1E71,
-	0x00550324: 0x1E72,
-	0x00750324: 0x1E73,
-	0x00550330: 0x1E74,
-	0x00750330: 0x1E75,
-	0x0055032D: 0x1E76,
-	0x0075032D: 0x1E77,
-	0x01680301: 0x1E78,
-	0x01690301: 0x1E79,
-	0x016A0308: 0x1E7A,
-	0x016B0308: 0x1E7B,
-	0x00560303: 0x1E7C,
-	0x00760303: 0x1E7D,
-	0x00560323: 0x1E7E,
-	0x00760323: 0x1E7F,
-	0x00570300: 0x1E80,
-	0x00770300: 0x1E81,
-	0x00570301: 0x1E82,
-	0x00770301: 0x1E83,
-	0x00570308: 0x1E84,
-	0x00770308: 0x1E85,
-	0x00570307: 0x1E86,
-	0x00770307: 0x1E87,
-	0x00570323: 0x1E88,
-	0x00770323: 0x1E89,
-	0x00580307: 0x1E8A,
-	0x00780307: 0x1E8B,
-	0x00580308: 0x1E8C,
-	0x00780308: 0x1E8D,
-	0x00590307: 0x1E8E,
-	0x00790307: 0x1E8F,
-	0x005A0302: 0x1E90,
-	0x007A0302: 0x1E91,
-	0x005A0323: 0x1E92,
-	0x007A0323: 0x1E93,
-	0x005A0331: 0x1E94,
-	0x007A0331: 0x1E95,
-	0x00680331: 0x1E96,
-	0x00740308: 0x1E97,
-	0x0077030A: 0x1E98,
-	0x0079030A: 0x1E99,
-	0x017F0307: 0x1E9B,
-	0x00410323: 0x1EA0,
-	0x00610323: 0x1EA1,
-	0x00410309: 0x1EA2,
-	0x00610309: 0x1EA3,
-	0x00C20301: 0x1EA4,
-	0x00E20301: 0x1EA5,
-	0x00C20300: 0x1EA6,
-	0x00E20300: 0x1EA7,
-	0x00C20309: 0x1EA8,
-	0x00E20309: 0x1EA9,
-	0x00C20303: 0x1EAA,
-	0x00E20303: 0x1EAB,
-	0x1EA00302: 0x1EAC,
-	0x1EA10302: 0x1EAD,
-	0x01020301: 0x1EAE,
-	0x01030301: 0x1EAF,
-	0x01020300: 0x1EB0,
-	0x01030300: 0x1EB1,
-	0x01020309: 0x1EB2,
-	0x01030309: 0x1EB3,
-	0x01020303: 0x1EB4,
-	0x01030303: 0x1EB5,
-	0x1EA00306: 0x1EB6,
-	0x1EA10306: 0x1EB7,
-	0x00450323: 0x1EB8,
-	0x00650323: 0x1EB9,
-	0x00450309: 0x1EBA,
-	0x00650309: 0x1EBB,
-	0x00450303: 0x1EBC,
-	0x00650303: 0x1EBD,
-	0x00CA0301: 0x1EBE,
-	0x00EA0301: 0x1EBF,
-	0x00CA0300: 0x1EC0,
-	0x00EA0300: 0x1EC1,
-	0x00CA0309: 0x1EC2,
-	0x00EA0309: 0x1EC3,
-	0x00CA0303: 0x1EC4,
-	0x00EA0303: 0x1EC5,
-	0x1EB80302: 0x1EC6,
-	0x1EB90302: 0x1EC7,
-	0x00490309: 0x1EC8,
-	0x00690309: 0x1EC9,
-	0x00490323: 0x1ECA,
-	0x00690323: 0x1ECB,
-	0x004F0323: 0x1ECC,
-	0x006F0323: 0x1ECD,
-	0x004F0309: 0x1ECE,
-	0x006F0309: 0x1ECF,
-	0x00D40301: 0x1ED0,
-	0x00F40301: 0x1ED1,
-	0x00D40300: 0x1ED2,
-	0x00F40300: 0x1ED3,
-	0x00D40309: 0x1ED4,
-	0x00F40309: 0x1ED5,
-	0x00D40303: 0x1ED6,
-	0x00F40303: 0x1ED7,
-	0x1ECC0302: 0x1ED8,
-	0x1ECD0302: 0x1ED9,
-	0x01A00301: 0x1EDA,
-	0x01A10301: 0x1EDB,
-	0x01A00300: 0x1EDC,
-	0x01A10300: 0x1EDD,
-	0x01A00309: 0x1EDE,
-	0x01A10309: 0x1EDF,
-	0x01A00303: 0x1EE0,
-	0x01A10303: 0x1EE1,
-	0x01A00323: 0x1EE2,
-	0x01A10323: 0x1EE3,
-	0x00550323: 0x1EE4,
-	0x00750323: 0x1EE5,
-	0x00550309: 0x1EE6,
-	0x00750309: 0x1EE7,
-	0x01AF0301: 0x1EE8,
-	0x01B00301: 0x1EE9,
-	0x01AF0300: 0x1EEA,
-	0x01B00300: 0x1EEB,
-	0x01AF0309: 0x1EEC,
-	0x01B00309: 0x1EED,
-	0x01AF0303: 0x1EEE,
-	0x01B00303: 0x1EEF,
-	0x01AF0323: 0x1EF0,
-	0x01B00323: 0x1EF1,
-	0x00590300: 0x1EF2,
-	0x00790300: 0x1EF3,
-	0x00590323: 0x1EF4,
-	0x00790323: 0x1EF5,
-	0x00590309: 0x1EF6,
-	0x00790309: 0x1EF7,
-	0x00590303: 0x1EF8,
-	0x00790303: 0x1EF9,
-	0x03B10313: 0x1F00,
-	0x03B10314: 0x1F01,
-	0x1F000300: 0x1F02,
-	0x1F010300: 0x1F03,
-	0x1F000301: 0x1F04,
-	0x1F010301: 0x1F05,
-	0x1F000342: 0x1F06,
-	0x1F010342: 0x1F07,
-	0x03910313: 0x1F08,
-	0x03910314: 0x1F09,
-	0x1F080300: 0x1F0A,
-	0x1F090300: 0x1F0B,
-	0x1F080301: 0x1F0C,
-	0x1F090301: 0x1F0D,
-	0x1F080342: 0x1F0E,
-	0x1F090342: 0x1F0F,
-	0x03B50313: 0x1F10,
-	0x03B50314: 0x1F11,
-	0x1F100300: 0x1F12,
-	0x1F110300: 0x1F13,
-	0x1F100301: 0x1F14,
-	0x1F110301: 0x1F15,
-	0x03950313: 0x1F18,
-	0x03950314: 0x1F19,
-	0x1F180300: 0x1F1A,
-	0x1F190300: 0x1F1B,
-	0x1F180301: 0x1F1C,
-	0x1F190301: 0x1F1D,
-	0x03B70313: 0x1F20,
-	0x03B70314: 0x1F21,
-	0x1F200300: 0x1F22,
-	0x1F210300: 0x1F23,
-	0x1F200301: 0x1F24,
-	0x1F210301: 0x1F25,
-	0x1F200342: 0x1F26,
-	0x1F210342: 0x1F27,
-	0x03970313: 0x1F28,
-	0x03970314: 0x1F29,
-	0x1F280300: 0x1F2A,
-	0x1F290300: 0x1F2B,
-	0x1F280301: 0x1F2C,
-	0x1F290301: 0x1F2D,
-	0x1F280342: 0x1F2E,
-	0x1F290342: 0x1F2F,
-	0x03B90313: 0x1F30,
-	0x03B90314: 0x1F31,
-	0x1F300300: 0x1F32,
-	0x1F310300: 0x1F33,
-	0x1F300301: 0x1F34,
-	0x1F310301: 0x1F35,
-	0x1F300342: 0x1F36,
-	0x1F310342: 0x1F37,
-	0x03990313: 0x1F38,
-	0x03990314: 0x1F39,
-	0x1F380300: 0x1F3A,
-	0x1F390300: 0x1F3B,
-	0x1F380301: 0x1F3C,
-	0x1F390301: 0x1F3D,
-	0x1F380342: 0x1F3E,
-	0x1F390342: 0x1F3F,
-	0x03BF0313: 0x1F40,
-	0x03BF0314: 0x1F41,
-	0x1F400300: 0x1F42,
-	0x1F410300: 0x1F43,
-	0x1F400301: 0x1F44,
-	0x1F410301: 0x1F45,
-	0x039F0313: 0x1F48,
-	0x039F0314: 0x1F49,
-	0x1F480300: 0x1F4A,
-	0x1F490300: 0x1F4B,
-	0x1F480301: 0x1F4C,
-	0x1F490301: 0x1F4D,
-	0x03C50313: 0x1F50,
-	0x03C50314: 0x1F51,
-	0x1F500300: 0x1F52,
-	0x1F510300: 0x1F53,
-	0x1F500301: 0x1F54,
-	0x1F510301: 0x1F55,
-	0x1F500342: 0x1F56,
-	0x1F510342: 0x1F57,
-	0x03A50314: 0x1F59,
-	0x1F590300: 0x1F5B,
-	0x1F590301: 0x1F5D,
-	0x1F590342: 0x1F5F,
-	0x03C90313: 0x1F60,
-	0x03C90314: 0x1F61,
-	0x1F600300: 0x1F62,
-	0x1F610300: 0x1F63,
-	0x1F600301: 0x1F64,
-	0x1F610301: 0x1F65,
-	0x1F600342: 0x1F66,
-	0x1F610342: 0x1F67,
-	0x03A90313: 0x1F68,
-	0x03A90314: 0x1F69,
-	0x1F680300: 0x1F6A,
-	0x1F690300: 0x1F6B,
-	0x1F680301: 0x1F6C,
-	0x1F690301: 0x1F6D,
-	0x1F680342: 0x1F6E,
-	0x1F690342: 0x1F6F,
-	0x03B10300: 0x1F70,
-	0x03B50300: 0x1F72,
-	0x03B70300: 0x1F74,
-	0x03B90300: 0x1F76,
-	0x03BF0300: 0x1F78,
-	0x03C50300: 0x1F7A,
-	0x03C90300: 0x1F7C,
-	0x1F000345: 0x1F80,
-	0x1F010345: 0x1F81,
-	0x1F020345: 0x1F82,
-	0x1F030345: 0x1F83,
-	0x1F040345: 0x1F84,
-	0x1F050345: 0x1F85,
-	0x1F060345: 0x1F86,
-	0x1F070345: 0x1F87,
-	0x1F080345: 0x1F88,
-	0x1F090345: 0x1F89,
-	0x1F0A0345: 0x1F8A,
-	0x1F0B0345: 0x1F8B,
-	0x1F0C0345: 0x1F8C,
-	0x1F0D0345: 0x1F8D,
-	0x1F0E0345: 0x1F8E,
-	0x1F0F0345: 0x1F8F,
-	0x1F200345: 0x1F90,
-	0x1F210345: 0x1F91,
-	0x1F220345: 0x1F92,
-	0x1F230345: 0x1F93,
-	0x1F240345: 0x1F94,
-	0x1F250345: 0x1F95,
-	0x1F260345: 0x1F96,
-	0x1F270345: 0x1F97,
-	0x1F280345: 0x1F98,
-	0x1F290345: 0x1F99,
-	0x1F2A0345: 0x1F9A,
-	0x1F2B0345: 0x1F9B,
-	0x1F2C0345: 0x1F9C,
-	0x1F2D0345: 0x1F9D,
-	0x1F2E0345: 0x1F9E,
-	0x1F2F0345: 0x1F9F,
-	0x1F600345: 0x1FA0,
-	0x1F610345: 0x1FA1,
-	0x1F620345: 0x1FA2,
-	0x1F630345: 0x1FA3,
-	0x1F640345: 0x1FA4,
-	0x1F650345: 0x1FA5,
-	0x1F660345: 0x1FA6,
-	0x1F670345: 0x1FA7,
-	0x1F680345: 0x1FA8,
-	0x1F690345: 0x1FA9,
-	0x1F6A0345: 0x1FAA,
-	0x1F6B0345: 0x1FAB,
-	0x1F6C0345: 0x1FAC,
-	0x1F6D0345: 0x1FAD,
-	0x1F6E0345: 0x1FAE,
-	0x1F6F0345: 0x1FAF,
-	0x03B10306: 0x1FB0,
-	0x03B10304: 0x1FB1,
-	0x1F700345: 0x1FB2,
-	0x03B10345: 0x1FB3,
-	0x03AC0345: 0x1FB4,
-	0x03B10342: 0x1FB6,
-	0x1FB60345: 0x1FB7,
-	0x03910306: 0x1FB8,
-	0x03910304: 0x1FB9,
-	0x03910300: 0x1FBA,
-	0x03910345: 0x1FBC,
-	0x00A80342: 0x1FC1,
-	0x1F740345: 0x1FC2,
-	0x03B70345: 0x1FC3,
-	0x03AE0345: 0x1FC4,
-	0x03B70342: 0x1FC6,
-	0x1FC60345: 0x1FC7,
-	0x03950300: 0x1FC8,
-	0x03970300: 0x1FCA,
-	0x03970345: 0x1FCC,
-	0x1FBF0300: 0x1FCD,
-	0x1FBF0301: 0x1FCE,
-	0x1FBF0342: 0x1FCF,
-	0x03B90306: 0x1FD0,
-	0x03B90304: 0x1FD1,
-	0x03CA0300: 0x1FD2,
-	0x03B90342: 0x1FD6,
-	0x03CA0342: 0x1FD7,
-	0x03990306: 0x1FD8,
-	0x03990304: 0x1FD9,
-	0x03990300: 0x1FDA,
-	0x1FFE0300: 0x1FDD,
-	0x1FFE0301: 0x1FDE,
-	0x1FFE0342: 0x1FDF,
-	0x03C50306: 0x1FE0,
-	0x03C50304: 0x1FE1,
-	0x03CB0300: 0x1FE2,
-	0x03C10313: 0x1FE4,
-	0x03C10314: 0x1FE5,
-	0x03C50342: 0x1FE6,
-	0x03CB0342: 0x1FE7,
-	0x03A50306: 0x1FE8,
-	0x03A50304: 0x1FE9,
-	0x03A50300: 0x1FEA,
-	0x03A10314: 0x1FEC,
-	0x00A80300: 0x1FED,
-	0x1F7C0345: 0x1FF2,
-	0x03C90345: 0x1FF3,
-	0x03CE0345: 0x1FF4,
-	0x03C90342: 0x1FF6,
-	0x1FF60345: 0x1FF7,
-	0x039F0300: 0x1FF8,
-	0x03A90300: 0x1FFA,
-	0x03A90345: 0x1FFC,
-	0x21900338: 0x219A,
-	0x21920338: 0x219B,
-	0x21940338: 0x21AE,
-	0x21D00338: 0x21CD,
-	0x21D40338: 0x21CE,
-	0x21D20338: 0x21CF,
-	0x22030338: 0x2204,
-	0x22080338: 0x2209,
-	0x220B0338: 0x220C,
-	0x22230338: 0x2224,
-	0x22250338: 0x2226,
-	0x223C0338: 0x2241,
-	0x22430338: 0x2244,
-	0x22450338: 0x2247,
-	0x22480338: 0x2249,
-	0x003D0338: 0x2260,
-	0x22610338: 0x2262,
-	0x224D0338: 0x226D,
-	0x003C0338: 0x226E,
-	0x003E0338: 0x226F,
-	0x22640338: 0x2270,
-	0x22650338: 0x2271,
-	0x22720338: 0x2274,
-	0x22730338: 0x2275,
-	0x22760338: 0x2278,
-	0x22770338: 0x2279,
-	0x227A0338: 0x2280,
-	0x227B0338: 0x2281,
-	0x22820338: 0x2284,
-	0x22830338: 0x2285,
-	0x22860338: 0x2288,
-	0x22870338: 0x2289,
-	0x22A20338: 0x22AC,
-	0x22A80338: 0x22AD,
-	0x22A90338: 0x22AE,
-	0x22AB0338: 0x22AF,
-	0x227C0338: 0x22E0,
-	0x227D0338: 0x22E1,
-	0x22910338: 0x22E2,
-	0x22920338: 0x22E3,
-	0x22B20338: 0x22EA,
-	0x22B30338: 0x22EB,
-	0x22B40338: 0x22EC,
-	0x22B50338: 0x22ED,
-	0x304B3099: 0x304C,
-	0x304D3099: 0x304E,
-	0x304F3099: 0x3050,
-	0x30513099: 0x3052,
-	0x30533099: 0x3054,
-	0x30553099: 0x3056,
-	0x30573099: 0x3058,
-	0x30593099: 0x305A,
-	0x305B3099: 0x305C,
-	0x305D3099: 0x305E,
-	0x305F3099: 0x3060,
-	0x30613099: 0x3062,
-	0x30643099: 0x3065,
-	0x30663099: 0x3067,
-	0x30683099: 0x3069,
-	0x306F3099: 0x3070,
-	0x306F309A: 0x3071,
-	0x30723099: 0x3073,
-	0x3072309A: 0x3074,
-	0x30753099: 0x3076,
-	0x3075309A: 0x3077,
-	0x30783099: 0x3079,
-	0x3078309A: 0x307A,
-	0x307B3099: 0x307C,
-	0x307B309A: 0x307D,
-	0x30463099: 0x3094,
-	0x309D3099: 0x309E,
-	0x30AB3099: 0x30AC,
-	0x30AD3099: 0x30AE,
-	0x30AF3099: 0x30B0,
-	0x30B13099: 0x30B2,
-	0x30B33099: 0x30B4,
-	0x30B53099: 0x30B6,
-	0x30B73099: 0x30B8,
-	0x30B93099: 0x30BA,
-	0x30BB3099: 0x30BC,
-	0x30BD3099: 0x30BE,
-	0x30BF3099: 0x30C0,
-	0x30C13099: 0x30C2,
-	0x30C43099: 0x30C5,
-	0x30C63099: 0x30C7,
-	0x30C83099: 0x30C9,
-	0x30CF3099: 0x30D0,
-	0x30CF309A: 0x30D1,
-	0x30D23099: 0x30D3,
-	0x30D2309A: 0x30D4,
-	0x30D53099: 0x30D6,
-	0x30D5309A: 0x30D7,
-	0x30D83099: 0x30D9,
-	0x30D8309A: 0x30DA,
-	0x30DB3099: 0x30DC,
-	0x30DB309A: 0x30DD,
-	0x30A63099: 0x30F4,
-	0x30EF3099: 0x30F7,
-	0x30F03099: 0x30F8,
-	0x30F13099: 0x30F9,
-	0x30F23099: 0x30FA,
-	0x30FD3099: 0x30FE,
-	0x109910BA: 0x1109A,
-	0x109B10BA: 0x1109C,
-	0x10A510BA: 0x110AB,
-	0x11311127: 0x1112E,
-	0x11321127: 0x1112F,
-}
-
-// Total size of tables: 50KB (51625 bytes)
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/triedata_test.go gcc-4.8.1/libgo/go/exp/norm/triedata_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/triedata_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/norm/triedata_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,85 +0,0 @@
-// Generated by running
-//	maketesttables
-// DO NOT EDIT
-
-package norm
-
-var testRunes = []int32{1, 12, 127, 128, 256, 2047, 2048, 2457, 65535, 65536, 65793, 1114111, 512, 513, 514, 528, 533}
-
-// testdataValues: 192 entries, 384 bytes
-// Block 2 is the null block.
-var testdataValues = [192]uint16{
-	// Block 0x0, offset 0x0
-	0x000c: 0x0001,
-	// Block 0x1, offset 0x40
-	0x007f: 0x0002,
-	// Block 0x2, offset 0x80
-}
-
-// testdataSparseOffset: 10 entries, 20 bytes
-var testdataSparseOffset = []uint16{0x0, 0x2, 0x4, 0x8, 0xa, 0xc, 0xe, 0x10, 0x12, 0x14}
-
-// testdataSparseValues: 22 entries, 88 bytes
-var testdataSparseValues = [22]valueRange{
-	// Block 0x0, offset 0x1
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0003, lo: 0x80, hi: 0x80},
-	// Block 0x1, offset 0x2
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0004, lo: 0x80, hi: 0x80},
-	// Block 0x2, offset 0x3
-	{value: 0x0001, lo: 0x03},
-	{value: 0x000c, lo: 0x80, hi: 0x82},
-	{value: 0x000f, lo: 0x90, hi: 0x90},
-	{value: 0x0010, lo: 0x95, hi: 0x95},
-	// Block 0x3, offset 0x4
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0005, lo: 0xbf, hi: 0xbf},
-	// Block 0x4, offset 0x5
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0006, lo: 0x80, hi: 0x80},
-	// Block 0x5, offset 0x6
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0007, lo: 0x99, hi: 0x99},
-	// Block 0x6, offset 0x7
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0008, lo: 0xbf, hi: 0xbf},
-	// Block 0x7, offset 0x8
-	{value: 0x0000, lo: 0x01},
-	{value: 0x0009, lo: 0x80, hi: 0x80},
-	// Block 0x8, offset 0x9
-	{value: 0x0000, lo: 0x01},
-	{value: 0x000a, lo: 0x81, hi: 0x81},
-	// Block 0x9, offset 0xa
-	{value: 0x0000, lo: 0x01},
-	{value: 0x000b, lo: 0xbf, hi: 0xbf},
-}
-
-// testdataLookup: 640 bytes
-// Block 0 is the null block.
-var testdataLookup = [640]uint8{
-	// Block 0x0, offset 0x0
-	// Block 0x1, offset 0x40
-	// Block 0x2, offset 0x80
-	// Block 0x3, offset 0xc0
-	0x0c2: 0x01, 0x0c4: 0x02,
-	0x0c8: 0x03,
-	0x0df: 0x04,
-	0x0e0: 0x02,
-	0x0ef: 0x03,
-	0x0f0: 0x05, 0x0f4: 0x07,
-	// Block 0x4, offset 0x100
-	0x120: 0x05, 0x126: 0x06,
-	// Block 0x5, offset 0x140
-	0x17f: 0x07,
-	// Block 0x6, offset 0x180
-	0x180: 0x08, 0x184: 0x09,
-	// Block 0x7, offset 0x1c0
-	0x1d0: 0x04,
-	// Block 0x8, offset 0x200
-	0x23f: 0x0a,
-	// Block 0x9, offset 0x240
-	0x24f: 0x06,
-}
-
-var testdataTrie = trie{testdataLookup[:], testdataValues[:], testdataSparseValues[:], testdataSparseOffset[:], 1}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/triegen.go gcc-4.8.1/libgo/go/exp/norm/triegen.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/triegen.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/norm/triegen.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,317 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// Trie table generator.
-// Used by make*tables tools to generate a go file with trie data structures
-// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte
-// sequence are used to lookup offsets in the index table to be used for the
-// next byte. The last byte is used to index into a table with 16-bit values.
-
-package main
-
-import (
-	"fmt"
-	"hash/crc32"
-	"log"
-	"unicode/utf8"
-)
-
-const (
-	blockSize        = 64
-	blockOffset      = 2 // Subtract two blocks to compensate for the 0x80 added to continuation bytes.
-	maxSparseEntries = 16
-)
-
-// Intermediate trie structure
-type trieNode struct {
-	table [256]*trieNode
-	value int
-	b     byte
-	leaf  bool
-}
-
-func newNode() *trieNode {
-	return new(trieNode)
-}
-
-func (n trieNode) String() string {
-	s := fmt.Sprint("trieNode{table: { non-nil at index: ")
-	for i, v := range n.table {
-		if v != nil {
-			s += fmt.Sprintf("%d, ", i)
-		}
-	}
-	s += fmt.Sprintf("}, value:%#x, b:%#x leaf:%v}", n.value, n.b, n.leaf)
-	return s
-}
-
-func (n trieNode) isInternal() bool {
-	internal := true
-	for i := 0; i < 256; i++ {
-		if nn := n.table[i]; nn != nil {
-			if !internal && !nn.leaf {
-				log.Fatalf("triegen: isInternal: node contains both leaf and non-leaf children (%v)", n)
-			}
-			internal = internal && !nn.leaf
-		}
-	}
-	return internal
-}
-
-func (n trieNode) mostFrequentStride() int {
-	counts := make(map[int]int)
-	v := 0
-	for _, t := range n.table[0x80 : 0x80+blockSize] {
-		if t != nil {
-			if stride := t.value - v; v != 0 && stride >= 0 {
-				counts[stride]++
-			}
-			v = t.value
-		} else {
-			v = 0
-		}
-	}
-	var maxs, maxc int
-	for stride, cnt := range counts {
-		if cnt > maxc || (cnt == maxc && stride < maxs) {
-			maxs, maxc = stride, cnt
-		}
-	}
-	return maxs
-}
-
-func (n trieNode) countSparseEntries() int {
-	stride := n.mostFrequentStride()
-	var count, v int
-	for _, t := range n.table[0x80 : 0x80+blockSize] {
-		tv := 0
-		if t != nil {
-			tv = t.value
-		}
-		if tv-v != stride {
-			if tv != 0 {
-				count++
-			}
-		}
-		v = tv
-	}
-	return count
-}
-
-func (n *trieNode) insert(r rune, value uint16) {
-	var p [utf8.UTFMax]byte
-	sz := utf8.EncodeRune(p[:], r)
-
-	for i := 0; i < sz; i++ {
-		if n.leaf {
-			log.Fatalf("triegen: insert: node (%#v) should not be a leaf", n)
-		}
-		nn := n.table[p[i]]
-		if nn == nil {
-			nn = newNode()
-			nn.b = p[i]
-			n.table[p[i]] = nn
-		}
-		n = nn
-	}
-	n.value = int(value)
-	n.leaf = true
-}
-
-type nodeIndex struct {
-	lookupBlocks []*trieNode
-	valueBlocks  []*trieNode
-	sparseBlocks []*trieNode
-	sparseOffset []uint16
-	sparseCount  int
-
-	lookupBlockIdx map[uint32]int
-	valueBlockIdx  map[uint32]int
-}
-
-func newIndex() *nodeIndex {
-	index := &nodeIndex{}
-	index.lookupBlocks = make([]*trieNode, 0)
-	index.valueBlocks = make([]*trieNode, 0)
-	index.sparseBlocks = make([]*trieNode, 0)
-	index.sparseOffset = make([]uint16, 1)
-	index.lookupBlockIdx = make(map[uint32]int)
-	index.valueBlockIdx = make(map[uint32]int)
-	return index
-}
-
-func computeOffsets(index *nodeIndex, n *trieNode) int {
-	if n.leaf {
-		return n.value
-	}
-	hasher := crc32.New(crc32.MakeTable(crc32.IEEE))
-	// We only index continuation bytes.
-	for i := 0; i < blockSize; i++ {
-		v := 0
-		if nn := n.table[0x80+i]; nn != nil {
-			v = computeOffsets(index, nn)
-		}
-		hasher.Write([]byte{uint8(v >> 8), uint8(v)})
-	}
-	h := hasher.Sum32()
-	if n.isInternal() {
-		v, ok := index.lookupBlockIdx[h]
-		if !ok {
-			v = len(index.lookupBlocks) - blockOffset
-			index.lookupBlocks = append(index.lookupBlocks, n)
-			index.lookupBlockIdx[h] = v
-		}
-		n.value = v
-	} else {
-		v, ok := index.valueBlockIdx[h]
-		if !ok {
-			if c := n.countSparseEntries(); c > maxSparseEntries {
-				v = len(index.valueBlocks) - blockOffset
-				index.valueBlocks = append(index.valueBlocks, n)
-				index.valueBlockIdx[h] = v
-			} else {
-				v = -len(index.sparseOffset)
-				index.sparseBlocks = append(index.sparseBlocks, n)
-				index.sparseOffset = append(index.sparseOffset, uint16(index.sparseCount))
-				index.sparseCount += c + 1
-				index.valueBlockIdx[h] = v
-			}
-		}
-		n.value = v
-	}
-	return n.value
-}
-
-func printValueBlock(nr int, n *trieNode, offset int) {
-	boff := nr * blockSize
-	fmt.Printf("\n// Block %#x, offset %#x", nr, boff)
-	var printnewline bool
-	for i := 0; i < blockSize; i++ {
-		if i%6 == 0 {
-			printnewline = true
-		}
-		v := 0
-		if nn := n.table[i+offset]; nn != nil {
-			v = nn.value
-		}
-		if v != 0 {
-			if printnewline {
-				fmt.Printf("\n")
-				printnewline = false
-			}
-			fmt.Printf("%#04x:%#04x, ", boff+i, v)
-		}
-	}
-}
-
-func printSparseBlock(nr int, n *trieNode) {
-	boff := -n.value
-	fmt.Printf("\n// Block %#x, offset %#x", nr, boff)
-	v := 0
-	//stride := f(n)
-	stride := n.mostFrequentStride()
-	c := n.countSparseEntries()
-	fmt.Printf("\n{value:%#04x,lo:%#02x},", stride, uint8(c))
-	for i, nn := range n.table[0x80 : 0x80+blockSize] {
-		nv := 0
-		if nn != nil {
-			nv = nn.value
-		}
-		if nv-v != stride {
-			if v != 0 {
-				fmt.Printf(",hi:%#02x},", 0x80+i-1)
-			}
-			if nv != 0 {
-				fmt.Printf("\n{value:%#04x,lo:%#02x", nv, nn.b)
-			}
-		}
-		v = nv
-	}
-	if v != 0 {
-		fmt.Printf(",hi:%#02x},", 0x80+blockSize-1)
-	}
-}
-
-func printLookupBlock(nr int, n *trieNode, offset, cutoff int) {
-	boff := nr * blockSize
-	fmt.Printf("\n// Block %#x, offset %#x", nr, boff)
-	var printnewline bool
-	for i := 0; i < blockSize; i++ {
-		if i%8 == 0 {
-			printnewline = true
-		}
-		v := 0
-		if nn := n.table[i+offset]; nn != nil {
-			v = nn.value
-		}
-		if v != 0 {
-			if v < 0 {
-				v = -v - 1 + cutoff
-			}
-			if printnewline {
-				fmt.Printf("\n")
-				printnewline = false
-			}
-			fmt.Printf("%#03x:%#02x, ", boff+i, v)
-		}
-	}
-}
-
-// printTables returns the size in bytes of the generated tables.
-func (t *trieNode) printTables(name string) int {
-	index := newIndex()
-	// Values for 7-bit ASCII are stored in first two block, followed by nil block.
-	index.valueBlocks = append(index.valueBlocks, nil, nil, nil)
-	// First byte of multi-byte UTF-8 codepoints are indexed in 4th block.
-	index.lookupBlocks = append(index.lookupBlocks, nil, nil, nil, nil)
-	// Index starter bytes of multi-byte UTF-8.
-	for i := 0xC0; i < 0x100; i++ {
-		if t.table[i] != nil {
-			computeOffsets(index, t.table[i])
-		}
-	}
-
-	nv := len(index.valueBlocks) * blockSize
-	fmt.Printf("// %sValues: %d entries, %d bytes\n", name, nv, nv*2)
-	fmt.Printf("// Block 2 is the null block.\n")
-	fmt.Printf("var %sValues = [%d]uint16 {", name, nv)
-	printValueBlock(0, t, 0)
-	printValueBlock(1, t, 64)
-	printValueBlock(2, newNode(), 0)
-	for i := 3; i < len(index.valueBlocks); i++ {
-		printValueBlock(i, index.valueBlocks[i], 0x80)
-	}
-	fmt.Print("\n}\n\n")
-
-	ls := len(index.sparseBlocks)
-	fmt.Printf("// %sSparseOffset: %d entries, %d bytes\n", name, ls, ls*2)
-	fmt.Printf("var %sSparseOffset = %#v\n\n", name, index.sparseOffset[1:])
-
-	ns := index.sparseCount
-	fmt.Printf("// %sSparseValues: %d entries, %d bytes\n", name, ns, ns*4)
-	fmt.Printf("var %sSparseValues = [%d]valueRange {", name, ns)
-	for i, n := range index.sparseBlocks {
-		printSparseBlock(i, n)
-	}
-	fmt.Print("\n}\n\n")
-
-	cutoff := len(index.valueBlocks) - blockOffset
-	ni := len(index.lookupBlocks) * blockSize
-	fmt.Printf("// %sLookup: %d bytes\n", name, ni)
-	fmt.Printf("// Block 0 is the null block.\n")
-	fmt.Printf("var %sLookup = [%d]uint8 {", name, ni)
-	printLookupBlock(0, newNode(), 0, cutoff)
-	printLookupBlock(1, newNode(), 0, cutoff)
-	printLookupBlock(2, newNode(), 0, cutoff)
-	printLookupBlock(3, t, 0xC0, cutoff)
-	for i := 4; i < len(index.lookupBlocks); i++ {
-		printLookupBlock(i, index.lookupBlocks[i], 0x80, cutoff)
-	}
-	fmt.Print("\n}\n\n")
-	fmt.Printf("var %sTrie = trie{ %sLookup[:], %sValues[:], %sSparseValues[:], %sSparseOffset[:], %d}\n\n",
-		name, name, name, name, name, cutoff)
-	return nv*2 + ns*4 + ni + ls*2
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/trie.go gcc-4.8.1/libgo/go/exp/norm/trie.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/trie.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/norm/trie.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,232 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-type valueRange struct {
-	value  uint16 // header: value:stride
-	lo, hi byte   // header: lo:n
-}
-
-type trie struct {
-	index        []uint8
-	values       []uint16
-	sparse       []valueRange
-	sparseOffset []uint16
-	cutoff       uint8 // indices >= cutoff are sparse
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block
-// is a list of ranges with an accompanying value. Given a matching range r,
-// the value for b is by r.value + (b - r.lo) * stride.
-func (t *trie) lookupValue(n uint8, b byte) uint16 {
-	if n < t.cutoff {
-		return t.values[uint16(n)<<6+uint16(b)]
-	}
-	offset := t.sparseOffset[n-t.cutoff]
-	header := t.sparse[offset]
-	lo := offset + 1
-	hi := lo + uint16(header.lo)
-	for lo < hi {
-		m := lo + (hi-lo)/2
-		r := t.sparse[m]
-		if r.lo <= b && b <= r.hi {
-			return r.value + uint16(b-r.lo)*header.value
-		}
-		if b < r.lo {
-			hi = m
-		} else {
-			lo = m + 1
-		}
-	}
-	return 0
-}
-
-const (
-	t1 = 0x00 // 0000 0000
-	tx = 0x80 // 1000 0000
-	t2 = 0xC0 // 1100 0000
-	t3 = 0xE0 // 1110 0000
-	t4 = 0xF0 // 1111 0000
-	t5 = 0xF8 // 1111 1000
-	t6 = 0xFC // 1111 1100
-	te = 0xFE // 1111 1110
-)
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *trie) lookup(s []byte) (v uint16, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return t.values[c0], 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = uint16(i)<<6 + uint16(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *trie) lookupString(s string) (v uint16, sz int) {
-	c0 := s[0]
-	switch {
-	case c0 < tx:
-		return t.values[c0], 1
-	case c0 < t2:
-		return 0, 1
-	case c0 < t3:
-		if len(s) < 2 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		return t.lookupValue(i, c1), 2
-	case c0 < t4:
-		if len(s) < 3 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		return t.lookupValue(i, c2), 3
-	case c0 < t5:
-		if len(s) < 4 {
-			return 0, 0
-		}
-		i := t.index[c0]
-		c1 := s[1]
-		if c1 < tx || t2 <= c1 {
-			return 0, 1
-		}
-		o := uint16(i)<<6 + uint16(c1)
-		i = t.index[o]
-		c2 := s[2]
-		if c2 < tx || t2 <= c2 {
-			return 0, 2
-		}
-		o = uint16(i)<<6 + uint16(c2)
-		i = t.index[o]
-		c3 := s[3]
-		if c3 < tx || t2 <= c3 {
-			return 0, 3
-		}
-		return t.lookupValue(i, c3), 4
-	}
-	// Illegal rune
-	return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must hold a full encoding.
-func (t *trie) lookupUnsafe(s []byte) uint16 {
-	c0 := s[0]
-	if c0 < tx {
-		return t.values[c0]
-	}
-	if c0 < t2 {
-		return 0
-	}
-	i := t.index[c0]
-	if c0 < t3 {
-		return t.lookupValue(i, s[1])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[1])]
-	if c0 < t4 {
-		return t.lookupValue(i, s[2])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[2])]
-	if c0 < t5 {
-		return t.lookupValue(i, s[3])
-	}
-	return 0
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must hold a full encoding.
-func (t *trie) lookupStringUnsafe(s string) uint16 {
-	c0 := s[0]
-	if c0 < tx {
-		return t.values[c0]
-	}
-	if c0 < t2 {
-		return 0
-	}
-	i := t.index[c0]
-	if c0 < t3 {
-		return t.lookupValue(i, s[1])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[1])]
-	if c0 < t4 {
-		return t.lookupValue(i, s[2])
-	}
-	i = t.index[uint16(i)<<6+uint16(s[2])]
-	if c0 < t5 {
-		return t.lookupValue(i, s[3])
-	}
-	return 0
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/norm/trie_test.go gcc-4.8.1/libgo/go/exp/norm/trie_test.go
--- gcc-4.8.1.orig/libgo/go/exp/norm/trie_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/exp/norm/trie_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,152 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package norm
-
-import (
-	"testing"
-	"unicode/utf8"
-)
-
-// Test data is located in triedata_test.go; generated by maketesttables.
-var testdata = testdataTrie
-
-type rangeTest struct {
-	block   uint8
-	lookup  byte
-	result  uint16
-	table   []valueRange
-	offsets []uint16
-}
-
-var range1Off = []uint16{0, 2}
-var range1 = []valueRange{
-	{0, 1, 0},
-	{1, 0x80, 0x80},
-	{0, 2, 0},
-	{1, 0x80, 0x80},
-	{9, 0xff, 0xff},
-}
-
-var rangeTests = []rangeTest{
-	{10, 0x80, 1, range1, range1Off},
-	{10, 0x00, 0, range1, range1Off},
-	{11, 0x80, 1, range1, range1Off},
-	{11, 0xff, 9, range1, range1Off},
-	{11, 0x00, 0, range1, range1Off},
-}
-
-func TestLookupSparse(t *testing.T) {
-	for i, test := range rangeTests {
-		n := trie{sparse: test.table, sparseOffset: test.offsets, cutoff: 10}
-		v := n.lookupValue(test.block, test.lookup)
-		if v != test.result {
-			t.Errorf("LookupSparse:%d: found %X; want %X", i, v, test.result)
-		}
-	}
-}
-
-// Test cases for illegal runes.
-type trietest struct {
-	size  int
-	bytes []byte
-}
-
-var tests = []trietest{
-	// illegal runes
-	{1, []byte{0x80}},
-	{1, []byte{0xFF}},
-	{1, []byte{t2, tx - 1}},
-	{1, []byte{t2, t2}},
-	{2, []byte{t3, tx, tx - 1}},
-	{2, []byte{t3, tx, t2}},
-	{1, []byte{t3, tx - 1, tx}},
-	{3, []byte{t4, tx, tx, tx - 1}},
-	{3, []byte{t4, tx, tx, t2}},
-	{1, []byte{t4, t2, tx, tx - 1}},
-	{2, []byte{t4, tx, t2, tx - 1}},
-
-	// short runes
-	{0, []byte{t2}},
-	{0, []byte{t3, tx}},
-	{0, []byte{t4, tx, tx}},
-
-	// we only support UTF-8 up to utf8.UTFMax bytes (4 bytes)
-	{1, []byte{t5, tx, tx, tx, tx}},
-	{1, []byte{t6, tx, tx, tx, tx, tx}},
-}
-
-func mkUTF8(r rune) ([]byte, int) {
-	var b [utf8.UTFMax]byte
-	sz := utf8.EncodeRune(b[:], r)
-	return b[:sz], sz
-}
-
-func TestLookup(t *testing.T) {
-	for i, tt := range testRunes {
-		b, szg := mkUTF8(tt)
-		v, szt := testdata.lookup(b)
-		if int(v) != i {
-			t.Errorf("lookup(%U): found value %#x, expected %#x", tt, v, i)
-		}
-		if szt != szg {
-			t.Errorf("lookup(%U): found size %d, expected %d", tt, szt, szg)
-		}
-	}
-	for i, tt := range tests {
-		v, sz := testdata.lookup(tt.bytes)
-		if v != 0 {
-			t.Errorf("lookup of illegal rune, case %d: found value %#x, expected 0", i, v)
-		}
-		if sz != tt.size {
-			t.Errorf("lookup of illegal rune, case %d: found size %d, expected %d", i, sz, tt.size)
-		}
-	}
-	// Verify defaults.
-	if v, _ := testdata.lookup([]byte{0xC1, 0x8C}); v != 0 {
-		t.Errorf("lookup of non-existing rune should be 0; found %X", v)
-	}
-}
-
-func TestLookupUnsafe(t *testing.T) {
-	for i, tt := range testRunes {
-		b, _ := mkUTF8(tt)
-		v := testdata.lookupUnsafe(b)
-		if int(v) != i {
-			t.Errorf("lookupUnsafe(%U): found value %#x, expected %#x", i, v, i)
-		}
-	}
-}
-
-func TestLookupString(t *testing.T) {
-	for i, tt := range testRunes {
-		b, szg := mkUTF8(tt)
-		v, szt := testdata.lookupString(string(b))
-		if int(v) != i {
-			t.Errorf("lookup(%U): found value %#x, expected %#x", i, v, i)
-		}
-		if szt != szg {
-			t.Errorf("lookup(%U): found size %d, expected %d", i, szt, szg)
-		}
-	}
-	for i, tt := range tests {
-		v, sz := testdata.lookupString(string(tt.bytes))
-		if int(v) != 0 {
-			t.Errorf("lookup of illegal rune, case %d: found value %#x, expected 0", i, v)
-		}
-		if sz != tt.size {
-			t.Errorf("lookup of illegal rune, case %d: found size %d, expected %d", i, sz, tt.size)
-		}
-	}
-}
-
-func TestLookupStringUnsafe(t *testing.T) {
-	for i, tt := range testRunes {
-		b, _ := mkUTF8(tt)
-		v := testdata.lookupStringUnsafe(string(b))
-		if int(v) != i {
-			t.Errorf("lookupUnsafe(%U): found value %#x, expected %#x", i, v, i)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/blockopt.go gcc-4.8.1/libgo/go/exp/ssa/blockopt.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/blockopt.go	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/blockopt.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,186 +0,0 @@
-package ssa
-
-// Simple block optimisations to simplify the control flow graph.
-
-// TODO(adonovan): instead of creating several "unreachable" blocks
-// per function in the Builder, reuse a single one (e.g. at Blocks[1])
-// to reduce garbage.
-
-import (
-	"fmt"
-	"os"
-)
-
-// If true, perform sanity checking and show progress at each
-// successive iteration of optimizeBlocks.  Very verbose.
-const debugBlockOpt = false
-
-func hasPhi(b *BasicBlock) bool {
-	_, ok := b.Instrs[0].(*Phi)
-	return ok
-}
-
-// prune attempts to prune block b if it is unreachable (i.e. has no
-// predecessors other than itself), disconnecting it from the CFG.
-// The result is true if the optimisation was applied.  i is the block
-// index within the function.
-//
-func prune(f *Function, i int, b *BasicBlock) bool {
-	if i == 0 {
-		return false // don't prune entry block
-	}
-	if len(b.Preds) == 0 || len(b.Preds) == 1 && b.Preds[0] == b {
-		// Disconnect it from its successors.
-		for _, c := range b.Succs {
-			c.removePred(b)
-		}
-		if debugBlockOpt {
-			fmt.Fprintln(os.Stderr, "prune", b.Name)
-		}
-
-		// Delete b.
-		f.Blocks[i] = nil
-		return true
-	}
-	return false
-}
-
-// jumpThreading attempts to apply simple jump-threading to block b,
-// in which a->b->c become a->c if b is just a Jump.
-// The result is true if the optimisation was applied.
-// i is the block index within the function.
-//
-func jumpThreading(f *Function, i int, b *BasicBlock) bool {
-	if i == 0 {
-		return false // don't apply to entry block
-	}
-	if b.Instrs == nil {
-		fmt.Println("empty block ", b.Name)
-		return false
-	}
-	if _, ok := b.Instrs[0].(*Jump); !ok {
-		return false // not just a jump
-	}
-	c := b.Succs[0]
-	if c == b {
-		return false // don't apply to degenerate jump-to-self.
-	}
-	if hasPhi(c) {
-		return false // not sound without more effort
-	}
-	for j, a := range b.Preds {
-		a.replaceSucc(b, c)
-
-		// If a now has two edges to c, replace its degenerate If by Jump.
-		if len(a.Succs) == 2 && a.Succs[0] == c && a.Succs[1] == c {
-			jump := new(Jump)
-			jump.SetBlock(a)
-			a.Instrs[len(a.Instrs)-1] = jump
-			a.Succs = a.Succs[:1]
-			c.removePred(b)
-		} else {
-			if j == 0 {
-				c.replacePred(b, a)
-			} else {
-				c.Preds = append(c.Preds, a)
-			}
-		}
-
-		if debugBlockOpt {
-			fmt.Fprintln(os.Stderr, "jumpThreading", a.Name, b.Name, c.Name)
-		}
-	}
-	f.Blocks[i] = nil
-	return true
-}
-
-// fuseBlocks attempts to apply the block fusion optimisation to block
-// a, in which a->b becomes ab if len(a.Succs)==len(b.Preds)==1.
-// The result is true if the optimisation was applied.
-//
-func fuseBlocks(f *Function, a *BasicBlock) bool {
-	if len(a.Succs) != 1 {
-		return false
-	}
-	b := a.Succs[0]
-	if len(b.Preds) != 1 {
-		return false
-	}
-	// Eliminate jump at end of A, then copy all of B across.
-	a.Instrs = append(a.Instrs[:len(a.Instrs)-1], b.Instrs...)
-	for _, instr := range b.Instrs {
-		instr.SetBlock(a)
-	}
-
-	// A inherits B's successors
-	a.Succs = append(a.succs2[:0], b.Succs...)
-
-	// Fix up Preds links of all successors of B.
-	for _, c := range b.Succs {
-		c.replacePred(b, a)
-	}
-
-	if debugBlockOpt {
-		fmt.Fprintln(os.Stderr, "fuseBlocks", a.Name, b.Name)
-	}
-
-	// Make b unreachable.  Subsequent pruning will reclaim it.
-	b.Preds = nil
-	return true
-}
-
-// optimizeBlocks() performs some simple block optimizations on a
-// completed function: dead block elimination, block fusion, jump
-// threading.
-//
-func optimizeBlocks(f *Function) {
-	// Loop until no further progress.
-	changed := true
-	for changed {
-		changed = false
-
-		if debugBlockOpt {
-			f.DumpTo(os.Stderr)
-			MustSanityCheck(f, nil)
-		}
-
-		for i, b := range f.Blocks {
-			// f.Blocks will temporarily contain nils to indicate
-			// deleted blocks; we remove them at the end.
-			if b == nil {
-				continue
-			}
-
-			// Prune unreachable blocks (including all empty blocks).
-			if prune(f, i, b) {
-				changed = true
-				continue // (b was pruned)
-			}
-
-			// Fuse blocks.  b->c becomes bc.
-			if fuseBlocks(f, b) {
-				changed = true
-			}
-
-			// a->b->c becomes a->c if b contains only a Jump.
-			if jumpThreading(f, i, b) {
-				changed = true
-				continue // (b was disconnected)
-			}
-		}
-	}
-
-	// Eliminate nils from Blocks.
-	j := 0
-	for _, b := range f.Blocks {
-		if b != nil {
-			f.Blocks[j] = b
-			j++
-		}
-	}
-	// Nil out b.Blocks[j:] to aid GC.
-	for i := j; i < len(f.Blocks); i++ {
-		f.Blocks[i] = nil
-	}
-	f.Blocks = f.Blocks[:j]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/doc.go gcc-4.8.1/libgo/go/exp/ssa/doc.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/doc.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/doc.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,113 +0,0 @@
-// Package ssa defines a representation of the elements of Go programs
-// (packages, types, functions, variables and constants) using a
-// static single-assignment (SSA) form intermediate representation
-// (IR) for the the bodies of functions.
-//
-// THIS INTERFACE IS EXPERIMENTAL AND IS LIKELY TO CHANGE.
-//
-// For an introduction to SSA form, see
-// http://en.wikipedia.org/wiki/Static_single_assignment_form.
-// This page provides a broader reading list:
-// http://www.dcs.gla.ac.uk/~jsinger/ssa.html.
-//
-// The level of abstraction of the SSA form is intentionally close to
-// the source language to facilitate construction of source analysis
-// tools.  It is not primarily intended for machine code generation.
-//
-// All looping, branching and switching constructs are replaced with
-// unstructured control flow.  We may add higher-level control flow
-// primitives in the future to facilitate constant-time dispatch of
-// switch statements, for example.
-//
-// Builder encapsulates the tasks of type-checking (using go/types)
-// abstract syntax trees (as defined by go/ast) for the source files
-// comprising a Go program, and the conversion of each function from
-// Go ASTs to the SSA representation.
-//
-// By supplying an instance of the SourceLocator function prototype,
-// clients may control how the builder locates, loads and parses Go
-// sources files for imported packages.  This package provides
-// GorootLoader, which uses go/build to locate packages in the Go
-// source distribution, and go/parser to parse them.
-//
-// The builder initially builds a naive SSA form in which all local
-// variables are addresses of stack locations with explicit loads and
-// stores.  If desired, registerisation and Ï†-node insertion using
-// dominance and dataflow can be performed as a later pass to improve
-// the accuracy and performance of subsequent analyses; this pass is
-// not yet implemented.
-//
-// The program representation constructed by this package is fully
-// resolved internally, i.e. it does not rely on the names of Values,
-// Packages, Functions, Types or BasicBlocks for the correct
-// interpretation of the program.  Only the identities of objects and
-// the topology of the SSA and type graphs are semantically
-// significant.  (There is one exception: Ids, used to identify field
-// and method names, contain strings.)  Avoidance of name-based
-// operations simplifies the implementation of subsequent passes and
-// can make them very efficient.  Many objects are nonetheless named
-// to aid in debugging, but it is not essential that the names be
-// either accurate or unambiguous.  The public API exposes a number of
-// name-based maps for client convenience.
-//
-// Given a Go source package such as this:
-//
-//      package main
-//
-//      import "fmt"
-//
-//      const message = "Hello, World!"
-//
-//      func hello() {
-//              fmt.Println(message)
-//      }
-//
-// The SSA Builder creates a *Program containing a main *Package such
-// as this:
-//
-//      Package(Name: "main")
-//        Members:
-//          "message":          *Literal (Type: untyped string, Value: "Hello, World!")
-//          "initÂ·guard":       *Global (Type: *bool)
-//          "hello":            *Function (Type: func())
-//        Init:                 *Function (Type: func())
-//
-// The printed representation of the function main.hello is shown
-// below.  Within the function listing, the name of each BasicBlock
-// such as ".0.entry" is printed left-aligned, followed by the block's
-// instructions, i.e. implementations of Instruction.
-// For each instruction that defines an SSA virtual register
-// (i.e. implements Value), the type of that value is shown in the
-// right column.
-//
-//      # Name: main.hello
-//      # Declared at hello.go:7:6
-//      # Type: func()
-//      func hello():
-//      .0.entry:
-//              t0 = new [1]interface{}                                                 *[1]interface{}
-//              t1 = &t0[0:untyped integer]                                             *interface{}
-//              t2 = make interface interface{} <- string ("Hello, World!":string)      interface{}
-//              *t1 = t2
-//              t3 = slice t0[:]                                                        []interface{}
-//              t4 = fmt.Println(t3)                                                    (n int, err error)
-//              ret
-//
-// TODO(adonovan): demonstrate more features in the example:
-// parameters and control flow at the least.
-//
-// TODO(adonovan): Consider how token.Pos source location information
-// should be made available generally.  Currently it is only present in
-// Package, Function and CallCommon.
-//
-// TODO(adonovan): Provide an example skeleton application that loads
-// and dumps the SSA form of a program.  Accommodate package-at-a-time
-// vs. whole-program operation.
-//
-// TODO(adonovan): Consider the exceptional control-flow implications
-// of defer and recover().
-//
-// TODO(adonovan): build tables/functions that relate source variables
-// to SSA variables to assist user interfaces that make queries about
-// specific source entities.
-package ssa
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/func.go gcc-4.8.1/libgo/go/exp/ssa/func.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/func.go	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/func.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,428 +0,0 @@
-package ssa
-
-// This file implements the Function and BasicBlock types.
-
-import (
-	"fmt"
-	"go/ast"
-	"go/types"
-	"io"
-	"os"
-)
-
-// Mode bits for additional diagnostics and checking.
-// TODO(adonovan): move these to builder.go once submitted.
-type BuilderMode uint
-
-const (
-	LogPackages          BuilderMode = 1 << iota // Dump package inventory to stderr
-	LogFunctions                                 // Dump function SSA code to stderr
-	LogSource                                    // Show source locations as SSA builder progresses
-	SanityCheckFunctions                         // Perform sanity checking of function bodies
-	UseGCImporter                                // Ignore SourceLoader; use gc-compiled object code for all imports
-)
-
-// addEdge adds a control-flow graph edge from from to to.
-func addEdge(from, to *BasicBlock) {
-	from.Succs = append(from.Succs, to)
-	to.Preds = append(to.Preds, from)
-}
-
-// emit appends an instruction to the current basic block.
-// If the instruction defines a Value, it is returned.
-//
-func (b *BasicBlock) emit(i Instruction) Value {
-	i.SetBlock(b)
-	b.Instrs = append(b.Instrs, i)
-	v, _ := i.(Value)
-	return v
-}
-
-// phis returns the prefix of b.Instrs containing all the block's Ï†-nodes.
-func (b *BasicBlock) phis() []Instruction {
-	for i, instr := range b.Instrs {
-		if _, ok := instr.(*Phi); !ok {
-			return b.Instrs[:i]
-		}
-	}
-	return nil // unreachable in well-formed blocks
-}
-
-// replacePred replaces all occurrences of p in b's predecessor list with q.
-// Ordinarily there should be at most one.
-//
-func (b *BasicBlock) replacePred(p, q *BasicBlock) {
-	for i, pred := range b.Preds {
-		if pred == p {
-			b.Preds[i] = q
-		}
-	}
-}
-
-// replaceSucc replaces all occurrences of p in b's successor list with q.
-// Ordinarily there should be at most one.
-//
-func (b *BasicBlock) replaceSucc(p, q *BasicBlock) {
-	for i, succ := range b.Succs {
-		if succ == p {
-			b.Succs[i] = q
-		}
-	}
-}
-
-// removePred removes all occurrences of p in b's
-// predecessor list and Ï†-nodes.
-// Ordinarily there should be at most one.
-//
-func (b *BasicBlock) removePred(p *BasicBlock) {
-	phis := b.phis()
-
-	// We must preserve edge order for Ï†-nodes.
-	j := 0
-	for i, pred := range b.Preds {
-		if pred != p {
-			b.Preds[j] = b.Preds[i]
-			// Strike out Ï†-edge too.
-			for _, instr := range phis {
-				phi := instr.(*Phi)
-				phi.Edges[j] = phi.Edges[i]
-			}
-			j++
-		}
-	}
-	// Nil out b.Preds[j:] and Ï†-edges[j:] to aid GC.
-	for i := j; i < len(b.Preds); i++ {
-		b.Preds[i] = nil
-		for _, instr := range phis {
-			instr.(*Phi).Edges[i] = nil
-		}
-	}
-	b.Preds = b.Preds[:j]
-	for _, instr := range phis {
-		phi := instr.(*Phi)
-		phi.Edges = phi.Edges[:j]
-	}
-}
-
-// Destinations associated with unlabelled for/switch/select stmts.
-// We push/pop one of these as we enter/leave each construct and for
-// each BranchStmt we scan for the innermost target of the right type.
-//
-type targets struct {
-	tail         *targets // rest of stack
-	_break       *BasicBlock
-	_continue    *BasicBlock
-	_fallthrough *BasicBlock
-}
-
-// Destinations associated with a labelled block.
-// We populate these as labels are encountered in forward gotos or
-// labelled statements.
-//
-type lblock struct {
-	_goto     *BasicBlock
-	_break    *BasicBlock
-	_continue *BasicBlock
-}
-
-// funcSyntax holds the syntax tree for the function declaration and body.
-type funcSyntax struct {
-	recvField    *ast.FieldList
-	paramFields  *ast.FieldList
-	resultFields *ast.FieldList
-	body         *ast.BlockStmt
-}
-
-// labelledBlock returns the branch target associated with the
-// specified label, creating it if needed.
-//
-func (f *Function) labelledBlock(label *ast.Ident) *lblock {
-	lb := f.lblocks[label.Obj]
-	if lb == nil {
-		lb = &lblock{_goto: f.newBasicBlock("label." + label.Name)}
-		f.lblocks[label.Obj] = lb
-	}
-	return lb
-}
-
-// addParam adds a (non-escaping) parameter to f.Params of the
-// specified name and type.
-//
-func (f *Function) addParam(name string, typ types.Type) *Parameter {
-	v := &Parameter{
-		Name_: name,
-		Type_: typ,
-	}
-	f.Params = append(f.Params, v)
-	return v
-}
-
-// addSpilledParam declares a parameter that is pre-spilled to the
-// stack; the function body will load/store the spilled location.
-// Subsequent registerization will eliminate spills where possible.
-//
-func (f *Function) addSpilledParam(obj types.Object) {
-	name := obj.GetName()
-	param := f.addParam(name, obj.GetType())
-	spill := &Alloc{
-		Name_: name + "~", // "~" means "spilled"
-		Type_: pointer(obj.GetType()),
-	}
-	f.objects[obj] = spill
-	f.Locals = append(f.Locals, spill)
-	f.emit(spill)
-	f.emit(&Store{Addr: spill, Val: param})
-}
-
-// start initializes the function prior to generating SSA code for its body.
-// Precondition: f.Type() already set.
-//
-// If f.syntax != nil, f is a Go source function and idents must be a
-// mapping from syntactic identifiers to their canonical type objects;
-// Otherwise, idents is ignored and the usual set-up for Go source
-// functions is skipped.
-//
-func (f *Function) start(mode BuilderMode, idents map[*ast.Ident]types.Object) {
-	if mode&LogSource != 0 {
-		fmt.Fprintf(os.Stderr, "build function %s @ %s\n", f.FullName(), f.Prog.Files.Position(f.Pos))
-	}
-	f.currentBlock = f.newBasicBlock("entry")
-	f.objects = make(map[types.Object]Value) // needed for some synthetics, e.g. init
-	if f.syntax == nil {
-		return // synthetic function; no syntax tree
-	}
-	f.lblocks = make(map[*ast.Object]*lblock)
-
-	// Receiver (at most one inner iteration).
-	if f.syntax.recvField != nil {
-		for _, field := range f.syntax.recvField.List {
-			for _, n := range field.Names {
-				f.addSpilledParam(idents[n])
-			}
-			if field.Names == nil {
-				f.addParam(f.Signature.Recv.Name, f.Signature.Recv.Type)
-			}
-		}
-	}
-
-	// Parameters.
-	if f.syntax.paramFields != nil {
-		for _, field := range f.syntax.paramFields.List {
-			for _, n := range field.Names {
-				f.addSpilledParam(idents[n])
-			}
-		}
-	}
-
-	// Results.
-	if f.syntax.resultFields != nil {
-		for _, field := range f.syntax.resultFields.List {
-			// Implicit "var" decl of locals for named results.
-			for _, n := range field.Names {
-				f.results = append(f.results, f.addNamedLocal(idents[n]))
-			}
-		}
-	}
-}
-
-// finish() finalizes the function after SSA code generation of its body.
-func (f *Function) finish(mode BuilderMode) {
-	f.objects = nil
-	f.results = nil
-	f.currentBlock = nil
-	f.lblocks = nil
-	f.syntax = nil
-
-	// Remove any f.Locals that are now heap-allocated.
-	j := 0
-	for _, l := range f.Locals {
-		if !l.Heap {
-			f.Locals[j] = l
-			j++
-		}
-	}
-	// Nil out f.Locals[j:] to aid GC.
-	for i := j; i < len(f.Locals); i++ {
-		f.Locals[i] = nil
-	}
-	f.Locals = f.Locals[:j]
-
-	// Ensure all value-defining Instructions have register names.
-	// (Non-Instruction Values are named at construction.)
-	tmp := 0
-	for _, b := range f.Blocks {
-		for _, instr := range b.Instrs {
-			switch instr := instr.(type) {
-			case *Alloc:
-				// Local Allocs may already be named.
-				if instr.Name_ == "" {
-					instr.Name_ = fmt.Sprintf("t%d", tmp)
-					tmp++
-				}
-			case Value:
-				instr.(interface {
-					setNum(int)
-				}).setNum(tmp)
-				tmp++
-			}
-		}
-	}
-	optimizeBlocks(f)
-
-	if mode&LogFunctions != 0 {
-		f.DumpTo(os.Stderr)
-	}
-	if mode&SanityCheckFunctions != 0 {
-		MustSanityCheck(f, nil)
-	}
-	if mode&LogSource != 0 {
-		fmt.Fprintf(os.Stderr, "build function %s done\n", f.FullName())
-	}
-}
-
-// addNamedLocal creates a local variable, adds it to function f and
-// returns it.  Its name and type are taken from obj.  Subsequent
-// calls to f.lookup(obj) will return the same local.
-//
-// Precondition: f.syntax != nil (i.e. a Go source function).
-//
-func (f *Function) addNamedLocal(obj types.Object) *Alloc {
-	l := f.addLocal(obj.GetType())
-	l.Name_ = obj.GetName()
-	f.objects[obj] = l
-	return l
-}
-
-// addLocal creates an anonymous local variable of type typ, adds it
-// to function f and returns it.
-//
-func (f *Function) addLocal(typ types.Type) *Alloc {
-	v := &Alloc{Type_: pointer(typ)}
-	f.Locals = append(f.Locals, v)
-	f.emit(v)
-	return v
-}
-
-// lookup returns the address of the named variable identified by obj
-// that is local to function f or one of its enclosing functions.
-// If escaping, the reference comes from a potentially escaping pointer
-// expression and the referent must be heap-allocated.
-//
-func (f *Function) lookup(obj types.Object, escaping bool) Value {
-	if v, ok := f.objects[obj]; ok {
-		if escaping {
-			// Walk up the chain of Captures.
-			x := v
-			for {
-				if c, ok := x.(*Capture); ok {
-					x = c.Outer
-				} else {
-					break
-				}
-			}
-			// By construction, all captures are ultimately Allocs in the
-			// naive SSA form.  Parameters are pre-spilled to the stack.
-			x.(*Alloc).Heap = true
-		}
-		return v // function-local var (address)
-	}
-
-	// Definition must be in an enclosing function;
-	// plumb it through intervening closures.
-	if f.Enclosing == nil {
-		panic("no Value for type.Object " + obj.GetName())
-	}
-	v := &Capture{f.Enclosing.lookup(obj, true)} // escaping
-	f.objects[obj] = v
-	f.FreeVars = append(f.FreeVars, v)
-	return v
-}
-
-// emit emits the specified instruction to function f, updating the
-// control-flow graph if required.
-//
-func (f *Function) emit(instr Instruction) Value {
-	return f.currentBlock.emit(instr)
-}
-
-// DumpTo prints to w a human readable "disassembly" of the SSA code of
-// all basic blocks of function f.
-//
-func (f *Function) DumpTo(w io.Writer) {
-	fmt.Fprintf(w, "# Name: %s\n", f.FullName())
-	fmt.Fprintf(w, "# Declared at %s\n", f.Prog.Files.Position(f.Pos))
-	fmt.Fprintf(w, "# Type: %s\n", f.Signature)
-
-	if f.Enclosing != nil {
-		fmt.Fprintf(w, "# Parent: %s\n", f.Enclosing.Name())
-	}
-
-	if f.FreeVars != nil {
-		io.WriteString(w, "# Free variables:\n")
-		for i, fv := range f.FreeVars {
-			fmt.Fprintf(w, "# % 3d:\t%s %s\n", i, fv.Name(), fv.Type())
-		}
-	}
-
-	params := f.Params
-	if f.Signature.Recv != nil {
-		fmt.Fprintf(w, "func (%s) %s(", params[0].Name(), f.Name())
-		params = params[1:]
-	} else {
-		fmt.Fprintf(w, "func %s(", f.Name())
-	}
-	for i, v := range params {
-		if i > 0 {
-			io.WriteString(w, ", ")
-		}
-		io.WriteString(w, v.Name())
-	}
-	io.WriteString(w, "):\n")
-
-	for _, b := range f.Blocks {
-		if b == nil {
-			// Corrupt CFG.
-			fmt.Fprintf(w, ".nil:\n")
-			continue
-		}
-		fmt.Fprintf(w, ".%s:\t\t\t\t\t\t\t       P:%d S:%d\n", b.Name, len(b.Preds), len(b.Succs))
-		if false { // CFG debugging
-			fmt.Fprintf(w, "\t# CFG: %s --> %s --> %s\n", blockNames(b.Preds), b.Name, blockNames(b.Succs))
-		}
-		for _, instr := range b.Instrs {
-			io.WriteString(w, "\t")
-			if v, ok := instr.(Value); ok {
-				l := 80 // for old time's sake.
-				// Left-align the instruction.
-				if name := v.Name(); name != "" {
-					n, _ := fmt.Fprintf(w, "%s = ", name)
-					l -= n
-				}
-				n, _ := io.WriteString(w, instr.String())
-				l -= n
-				// Right-align the type.
-				if t := v.Type(); t != nil {
-					fmt.Fprintf(w, "%*s", l-9, t)
-				}
-			} else {
-				io.WriteString(w, instr.String())
-			}
-			io.WriteString(w, "\n")
-		}
-	}
-	fmt.Fprintf(w, "\n")
-}
-
-// newBasicBlock adds to f a new basic block with a unique name and
-// returns it.  It does not automatically become the current block for
-// subsequent calls to emit.
-//
-func (f *Function) newBasicBlock(name string) *BasicBlock {
-	b := &BasicBlock{
-		Name: fmt.Sprintf("%d.%s", len(f.Blocks), name),
-		Func: f,
-	}
-	b.Succs = b.succs2[:0]
-	f.Blocks = append(f.Blocks, b)
-	return b
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/literal.go gcc-4.8.1/libgo/go/exp/ssa/literal.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/literal.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/literal.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,137 +0,0 @@
-package ssa
-
-// This file defines the Literal SSA value type.
-
-import (
-	"fmt"
-	"go/types"
-	"math/big"
-	"strconv"
-)
-
-// newLiteral returns a new literal of the specified value and type.
-// val must be valid according to the specification of Literal.Value.
-//
-func newLiteral(val interface{}, typ types.Type) *Literal {
-	// This constructor exists to provide a single place to
-	// insert logging/assertions during debugging.
-	return &Literal{typ, val}
-}
-
-// intLiteral returns an untyped integer literal that evaluates to i.
-func intLiteral(i int64) *Literal {
-	return newLiteral(i, types.Typ[types.UntypedInt])
-}
-
-// nilLiteral returns a nil literal of the specified (reference) type.
-func nilLiteral(typ types.Type) *Literal {
-	return newLiteral(types.NilType{}, typ)
-}
-
-func (l *Literal) Name() string {
-	var s string
-	switch x := l.Value.(type) {
-	case bool:
-		s = fmt.Sprintf("%v", l.Value)
-	case int64:
-		s = fmt.Sprintf("%d", l.Value)
-	case *big.Int:
-		s = x.String()
-	case *big.Rat:
-		s = x.FloatString(20)
-	case string:
-		if len(x) > 20 {
-			x = x[:17] + "..." // abbreviate
-		}
-		s = strconv.Quote(x)
-	case types.Complex:
-		r := x.Re.FloatString(20)
-		i := x.Im.FloatString(20)
-		s = fmt.Sprintf("%s+%si", r, i)
-	case types.NilType:
-		s = "nil"
-	default:
-		panic(fmt.Sprintf("unexpected literal value: %T", x))
-	}
-	return s + ":" + l.Type_.String()
-}
-
-func (l *Literal) Type() types.Type {
-	return l.Type_
-}
-
-// IsNil returns true if this literal represents a typed or untyped nil value.
-func (l *Literal) IsNil() bool {
-	_, ok := l.Value.(types.NilType)
-	return ok
-}
-
-// Int64 returns the numeric value of this literal truncated to fit
-// a signed 64-bit integer.
-//
-func (l *Literal) Int64() int64 {
-	switch x := l.Value.(type) {
-	case int64:
-		return x
-	case *big.Int:
-		return x.Int64()
-	case *big.Rat:
-		// TODO(adonovan): fix: is this the right rounding mode?
-		var q big.Int
-		return q.Quo(x.Num(), x.Denom()).Int64()
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
-
-// Uint64 returns the numeric value of this literal truncated to fit
-// an unsigned 64-bit integer.
-//
-func (l *Literal) Uint64() uint64 {
-	switch x := l.Value.(type) {
-	case int64:
-		if x < 0 {
-			return 0
-		}
-		return uint64(x)
-	case *big.Int:
-		return x.Uint64()
-	case *big.Rat:
-		// TODO(adonovan): fix: is this right?
-		var q big.Int
-		return q.Quo(x.Num(), x.Denom()).Uint64()
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
-
-// Float64 returns the numeric value of this literal truncated to fit
-// a float64.
-//
-func (l *Literal) Float64() float64 {
-	switch x := l.Value.(type) {
-	case int64:
-		return float64(x)
-	case *big.Int:
-		var r big.Rat
-		f, _ := r.SetInt(x).Float64()
-		return f
-	case *big.Rat:
-		f, _ := x.Float64()
-		return f
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
-
-// Complex128 returns the complex value of this literal truncated to
-// fit a complex128.
-//
-func (l *Literal) Complex128() complex128 {
-	switch x := l.Value.(type) {
-	case int64, *big.Int, *big.Rat:
-		return complex(l.Float64(), 0)
-	case types.Complex:
-		re64, _ := x.Re.Float64()
-		im64, _ := x.Im.Float64()
-		return complex(re64, im64)
-	}
-	panic(fmt.Sprintf("unexpected literal value: %T", l.Value))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/print.go gcc-4.8.1/libgo/go/exp/ssa/print.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/print.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/print.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,383 +0,0 @@
-package ssa
-
-// This file implements the String() methods for all Value and
-// Instruction types.
-
-import (
-	"bytes"
-	"fmt"
-	"go/ast"
-	"go/types"
-)
-
-func (id Id) String() string {
-	if id.Pkg == nil {
-		return id.Name
-	}
-	return fmt.Sprintf("%s/%s", id.Pkg.Path, id.Name)
-}
-
-// relName returns the name of v relative to i.
-// In most cases, this is identical to v.Name(), but for cross-package
-// references to Functions (including methods) and Globals, the
-// package-qualified FullName is used instead.
-//
-func relName(v Value, i Instruction) string {
-	switch v := v.(type) {
-	case *Global:
-		if v.Pkg == i.Block().Func.Pkg {
-			return v.Name()
-		}
-		return v.FullName()
-	case *Function:
-		if v.Pkg == nil || v.Pkg == i.Block().Func.Pkg {
-			return v.Name()
-		}
-		return v.FullName()
-	}
-	return v.Name()
-}
-
-// Value.String()
-//
-// This method is provided only for debugging.
-// It never appears in disassembly, which uses Value.Name().
-
-func (v *Literal) String() string {
-	return fmt.Sprintf("literal %s rep=%T", v.Name(), v.Value)
-}
-
-func (v *Parameter) String() string {
-	return fmt.Sprintf("parameter %s : %s", v.Name(), v.Type())
-}
-
-func (v *Capture) String() string {
-	return fmt.Sprintf("capture %s : %s", v.Name(), v.Type())
-}
-
-func (v *Global) String() string {
-	return fmt.Sprintf("global %s : %s", v.Name(), v.Type())
-}
-
-func (v *Builtin) String() string {
-	return fmt.Sprintf("builtin %s : %s", v.Name(), v.Type())
-}
-
-func (r *Function) String() string {
-	return fmt.Sprintf("function %s : %s", r.Name(), r.Type())
-}
-
-// FullName returns the name of this function qualified by the
-// package name, unless it is anonymous or synthetic.
-//
-// TODO(adonovan): move to func.go when it's submitted.
-//
-func (f *Function) FullName() string {
-	if f.Enclosing != nil || f.Pkg == nil {
-		return f.Name_ // anonymous or synthetic
-	}
-	return fmt.Sprintf("%s.%s", f.Pkg.ImportPath, f.Name_)
-}
-
-// FullName returns g's package-qualified name.
-func (g *Global) FullName() string {
-	return fmt.Sprintf("%s.%s", g.Pkg.ImportPath, g.Name_)
-}
-
-// Instruction.String()
-
-func (v *Alloc) String() string {
-	op := "local"
-	if v.Heap {
-		op = "new"
-	}
-	return fmt.Sprintf("%s %s", op, indirectType(v.Type()))
-}
-
-func (v *Phi) String() string {
-	var b bytes.Buffer
-	b.WriteString("phi [")
-	for i, edge := range v.Edges {
-		if i > 0 {
-			b.WriteString(", ")
-		}
-		// Be robust against malformed CFG.
-		blockname := "?"
-		if v.Block_ != nil && i < len(v.Block_.Preds) {
-			blockname = v.Block_.Preds[i].Name
-		}
-		b.WriteString(blockname)
-		b.WriteString(": ")
-		b.WriteString(relName(edge, v))
-	}
-	b.WriteString("]")
-	return b.String()
-}
-
-func printCall(v *CallCommon, prefix string, instr Instruction) string {
-	var b bytes.Buffer
-	b.WriteString(prefix)
-	if v.Func != nil {
-		b.WriteString(relName(v.Func, instr))
-	} else {
-		name := underlyingType(v.Recv.Type()).(*types.Interface).Methods[v.Method].Name
-		fmt.Fprintf(&b, "invoke %s.%s [#%d]", relName(v.Recv, instr), name, v.Method)
-	}
-	b.WriteString("(")
-	for i, arg := range v.Args {
-		if i > 0 {
-			b.WriteString(", ")
-		}
-		b.WriteString(relName(arg, instr))
-	}
-	if v.HasEllipsis {
-		b.WriteString("...")
-	}
-	b.WriteString(")")
-	return b.String()
-}
-
-func (v *Call) String() string {
-	return printCall(&v.CallCommon, "", v)
-}
-
-func (v *BinOp) String() string {
-	return fmt.Sprintf("%s %s %s", relName(v.X, v), v.Op.String(), relName(v.Y, v))
-}
-
-func (v *UnOp) String() string {
-	return fmt.Sprintf("%s%s%s", v.Op, relName(v.X, v), commaOk(v.CommaOk))
-}
-
-func (v *Conv) String() string {
-	return fmt.Sprintf("convert %s <- %s (%s)", v.Type(), v.X.Type(), relName(v.X, v))
-}
-
-func (v *ChangeInterface) String() string {
-	return fmt.Sprintf("change interface %s <- %s (%s)", v.Type(), v.X.Type(), relName(v.X, v))
-}
-
-func (v *MakeInterface) String() string {
-	return fmt.Sprintf("make interface %s <- %s (%s)", v.Type(), v.X.Type(), relName(v.X, v))
-}
-
-func (v *MakeClosure) String() string {
-	var b bytes.Buffer
-	fmt.Fprintf(&b, "make closure %s", relName(v.Fn, v))
-	if v.Bindings != nil {
-		b.WriteString(" [")
-		for i, c := range v.Bindings {
-			if i > 0 {
-				b.WriteString(", ")
-			}
-			b.WriteString(relName(c, v))
-		}
-		b.WriteString("]")
-	}
-	return b.String()
-}
-
-func (v *MakeSlice) String() string {
-	var b bytes.Buffer
-	b.WriteString("make slice ")
-	b.WriteString(v.Type().String())
-	b.WriteString(" ")
-	b.WriteString(relName(v.Len, v))
-	b.WriteString(" ")
-	b.WriteString(relName(v.Cap, v))
-	return b.String()
-}
-
-func (v *Slice) String() string {
-	var b bytes.Buffer
-	b.WriteString("slice ")
-	b.WriteString(relName(v.X, v))
-	b.WriteString("[")
-	if v.Low != nil {
-		b.WriteString(relName(v.Low, v))
-	}
-	b.WriteString(":")
-	if v.High != nil {
-		b.WriteString(relName(v.High, v))
-	}
-	b.WriteString("]")
-	return b.String()
-}
-
-func (v *MakeMap) String() string {
-	res := ""
-	if v.Reserve != nil {
-		res = relName(v.Reserve, v)
-	}
-	return fmt.Sprintf("make %s %s", v.Type(), res)
-}
-
-func (v *MakeChan) String() string {
-	return fmt.Sprintf("make %s %s", v.Type(), relName(v.Size, v))
-}
-
-func (v *FieldAddr) String() string {
-	fields := underlyingType(indirectType(v.X.Type())).(*types.Struct).Fields
-	// Be robust against a bad index.
-	name := "?"
-	if v.Field >= 0 && v.Field < len(fields) {
-		name = fields[v.Field].Name
-	}
-	return fmt.Sprintf("&%s.%s [#%d]", relName(v.X, v), name, v.Field)
-}
-
-func (v *Field) String() string {
-	fields := underlyingType(v.X.Type()).(*types.Struct).Fields
-	// Be robust against a bad index.
-	name := "?"
-	if v.Field >= 0 && v.Field < len(fields) {
-		name = fields[v.Field].Name
-	}
-	return fmt.Sprintf("%s.%s [#%d]", relName(v.X, v), name, v.Field)
-}
-
-func (v *IndexAddr) String() string {
-	return fmt.Sprintf("&%s[%s]", relName(v.X, v), relName(v.Index, v))
-}
-
-func (v *Index) String() string {
-	return fmt.Sprintf("%s[%s]", relName(v.X, v), relName(v.Index, v))
-}
-
-func (v *Lookup) String() string {
-	return fmt.Sprintf("%s[%s]%s", relName(v.X, v), relName(v.Index, v), commaOk(v.CommaOk))
-}
-
-func (v *Range) String() string {
-	return "range " + relName(v.X, v)
-}
-
-func (v *Next) String() string {
-	return "next " + relName(v.Iter, v)
-}
-
-func (v *TypeAssert) String() string {
-	return fmt.Sprintf("typeassert%s %s.(%s)", commaOk(v.CommaOk), relName(v.X, v), v.AssertedType)
-}
-
-func (v *Extract) String() string {
-	return fmt.Sprintf("extract %s #%d", relName(v.Tuple, v), v.Index)
-}
-
-func (s *Jump) String() string {
-	// Be robust against malformed CFG.
-	blockname := "?"
-	if s.Block_ != nil && len(s.Block_.Succs) == 1 {
-		blockname = s.Block_.Succs[0].Name
-	}
-	return fmt.Sprintf("jump %s", blockname)
-}
-
-func (s *If) String() string {
-	// Be robust against malformed CFG.
-	tblockname, fblockname := "?", "?"
-	if s.Block_ != nil && len(s.Block_.Succs) == 2 {
-		tblockname = s.Block_.Succs[0].Name
-		fblockname = s.Block_.Succs[1].Name
-	}
-	return fmt.Sprintf("if %s goto %s else %s", relName(s.Cond, s), tblockname, fblockname)
-}
-
-func (s *Go) String() string {
-	return printCall(&s.CallCommon, "go ", s)
-}
-
-func (s *Ret) String() string {
-	var b bytes.Buffer
-	b.WriteString("ret")
-	for i, r := range s.Results {
-		if i == 0 {
-			b.WriteString(" ")
-		} else {
-			b.WriteString(", ")
-		}
-		b.WriteString(relName(r, s))
-	}
-	return b.String()
-}
-
-func (s *Send) String() string {
-	return fmt.Sprintf("send %s <- %s", relName(s.Chan, s), relName(s.X, s))
-}
-
-func (s *Defer) String() string {
-	return printCall(&s.CallCommon, "defer ", s)
-}
-
-func (s *Select) String() string {
-	var b bytes.Buffer
-	for i, st := range s.States {
-		if i > 0 {
-			b.WriteString(", ")
-		}
-		if st.Dir == ast.RECV {
-			b.WriteString("<-")
-			b.WriteString(relName(st.Chan, s))
-		} else {
-			b.WriteString(relName(st.Chan, s))
-			b.WriteString("<-")
-			b.WriteString(relName(st.Send, s))
-		}
-	}
-	non := ""
-	if !s.Blocking {
-		non = "non"
-	}
-	return fmt.Sprintf("select %sblocking [%s]", non, b.String())
-}
-
-func (s *Store) String() string {
-	return fmt.Sprintf("*%s = %s", relName(s.Addr, s), relName(s.Val, s))
-}
-
-func (s *MapUpdate) String() string {
-	return fmt.Sprintf("%s[%s] = %s", relName(s.Map, s), relName(s.Key, s), relName(s.Value, s))
-}
-
-func (p *Package) String() string {
-	// TODO(adonovan): prettify output.
-	var b bytes.Buffer
-	fmt.Fprintf(&b, "Package %s at %s:\n", p.ImportPath, p.Prog.Files.File(p.Pos).Name())
-
-	// TODO(adonovan): make order deterministic.
-	maxname := 0
-	for name := range p.Members {
-		if l := len(name); l > maxname {
-			maxname = l
-		}
-	}
-
-	for name, mem := range p.Members {
-		switch mem := mem.(type) {
-		case *Literal:
-			fmt.Fprintf(&b, " const %-*s %s\n", maxname, name, mem.Name())
-
-		case *Function:
-			fmt.Fprintf(&b, " func  %-*s %s\n", maxname, name, mem.Type())
-
-		case *Type:
-			fmt.Fprintf(&b, " type  %-*s %s\n", maxname, name, mem.NamedType.Underlying)
-			// TODO(adonovan): make order deterministic.
-			for name, method := range mem.Methods {
-				fmt.Fprintf(&b, "       method %s %s\n", name, method.Signature)
-			}
-
-		case *Global:
-			fmt.Fprintf(&b, " var   %-*s %s\n", maxname, name, mem.Type())
-
-		}
-	}
-	return b.String()
-}
-
-func commaOk(x bool) string {
-	if x {
-		return ",ok"
-	}
-	return ""
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/sanity.go gcc-4.8.1/libgo/go/exp/ssa/sanity.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/sanity.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/sanity.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,263 +0,0 @@
-package ssa
-
-// An optional pass for sanity checking invariants of the SSA representation.
-// Currently it checks CFG invariants but little at the instruction level.
-
-import (
-	"bytes"
-	"fmt"
-	"io"
-	"os"
-)
-
-type sanity struct {
-	reporter io.Writer
-	fn       *Function
-	block    *BasicBlock
-	insane   bool
-}
-
-// SanityCheck performs integrity checking of the SSA representation
-// of the function fn and returns true if it was valid.  Diagnostics
-// are written to reporter if non-nil, os.Stderr otherwise.  Some
-// diagnostics are only warnings and do not imply a negative result.
-//
-// Sanity checking is intended to facilitate the debugging of code
-// transformation passes.
-//
-func SanityCheck(fn *Function, reporter io.Writer) bool {
-	if reporter == nil {
-		reporter = os.Stderr
-	}
-	return (&sanity{reporter: reporter}).checkFunction(fn)
-}
-
-// MustSanityCheck is like SanityCheck but panics instead of returning
-// a negative result.
-//
-func MustSanityCheck(fn *Function, reporter io.Writer) {
-	if !SanityCheck(fn, reporter) {
-		panic("SanityCheck failed")
-	}
-}
-
-// blockNames returns the names of the specified blocks as a
-// human-readable string.
-//
-func blockNames(blocks []*BasicBlock) string {
-	var buf bytes.Buffer
-	for i, b := range blocks {
-		if i > 0 {
-			io.WriteString(&buf, ", ")
-		}
-		io.WriteString(&buf, b.Name)
-	}
-	return buf.String()
-}
-
-func (s *sanity) diagnostic(prefix, format string, args ...interface{}) {
-	fmt.Fprintf(s.reporter, "%s: function %s", prefix, s.fn.FullName())
-	if s.block != nil {
-		fmt.Fprintf(s.reporter, ", block %s", s.block.Name)
-	}
-	io.WriteString(s.reporter, ": ")
-	fmt.Fprintf(s.reporter, format, args...)
-	io.WriteString(s.reporter, "\n")
-}
-
-func (s *sanity) errorf(format string, args ...interface{}) {
-	s.insane = true
-	s.diagnostic("Error", format, args...)
-}
-
-func (s *sanity) warnf(format string, args ...interface{}) {
-	s.diagnostic("Warning", format, args...)
-}
-
-// findDuplicate returns an arbitrary basic block that appeared more
-// than once in blocks, or nil if all were unique.
-func findDuplicate(blocks []*BasicBlock) *BasicBlock {
-	if len(blocks) < 2 {
-		return nil
-	}
-	if blocks[0] == blocks[1] {
-		return blocks[0]
-	}
-	// Slow path:
-	m := make(map[*BasicBlock]bool)
-	for _, b := range blocks {
-		if m[b] {
-			return b
-		}
-		m[b] = true
-	}
-	return nil
-}
-
-func (s *sanity) checkInstr(idx int, instr Instruction) {
-	switch instr := instr.(type) {
-	case *If, *Jump, *Ret:
-		s.errorf("control flow instruction not at end of block")
-	case *Phi:
-		if idx == 0 {
-			// It suffices to apply this check to just the first phi node.
-			if dup := findDuplicate(s.block.Preds); dup != nil {
-				s.errorf("phi node in block with duplicate predecessor %s", dup.Name)
-			}
-		} else {
-			prev := s.block.Instrs[idx-1]
-			if _, ok := prev.(*Phi); !ok {
-				s.errorf("Phi instruction follows a non-Phi: %T", prev)
-			}
-		}
-		if ne, np := len(instr.Edges), len(s.block.Preds); ne != np {
-			s.errorf("phi node has %d edges but %d predecessors", ne, np)
-		}
-
-	case *Alloc:
-	case *Call:
-	case *BinOp:
-	case *UnOp:
-	case *MakeClosure:
-	case *MakeChan:
-	case *MakeMap:
-	case *MakeSlice:
-	case *Slice:
-	case *Field:
-	case *FieldAddr:
-	case *IndexAddr:
-	case *Index:
-	case *Select:
-	case *Range:
-	case *TypeAssert:
-	case *Extract:
-	case *Go:
-	case *Defer:
-	case *Send:
-	case *Store:
-	case *MapUpdate:
-	case *Next:
-	case *Lookup:
-	case *Conv:
-	case *ChangeInterface:
-	case *MakeInterface:
-		// TODO(adonovan): implement checks.
-	default:
-		panic(fmt.Sprintf("Unknown instruction type: %T", instr))
-	}
-}
-
-func (s *sanity) checkFinalInstr(idx int, instr Instruction) {
-	switch instr.(type) {
-	case *If:
-		if nsuccs := len(s.block.Succs); nsuccs != 2 {
-			s.errorf("If-terminated block has %d successors; expected 2", nsuccs)
-			return
-		}
-		if s.block.Succs[0] == s.block.Succs[1] {
-			s.errorf("If-instruction has same True, False target blocks: %s", s.block.Succs[0].Name)
-			return
-		}
-
-	case *Jump:
-		if nsuccs := len(s.block.Succs); nsuccs != 1 {
-			s.errorf("Jump-terminated block has %d successors; expected 1", nsuccs)
-			return
-		}
-
-	case *Ret:
-		if nsuccs := len(s.block.Succs); nsuccs != 0 {
-			s.errorf("Ret-terminated block has %d successors; expected none", nsuccs)
-			return
-		}
-		// TODO(adonovan): check number and types of results
-
-	default:
-		s.errorf("non-control flow instruction at end of block")
-	}
-}
-
-func (s *sanity) checkBlock(b *BasicBlock, isEntry bool) {
-	s.block = b
-
-	// Check all blocks are reachable.
-	// (The entry block is always implicitly reachable.)
-	if !isEntry && len(b.Preds) == 0 {
-		s.warnf("unreachable block")
-		if b.Instrs == nil {
-			// Since this block is about to be pruned,
-			// tolerating transient problems in it
-			// simplifies other optimisations.
-			return
-		}
-	}
-
-	// Check predecessor and successor relations are dual.
-	for _, a := range b.Preds {
-		found := false
-		for _, bb := range a.Succs {
-			if bb == b {
-				found = true
-				break
-			}
-		}
-		if !found {
-			s.errorf("expected successor edge in predecessor %s; found only: %s", a.Name, blockNames(a.Succs))
-		}
-	}
-	for _, c := range b.Succs {
-		found := false
-		for _, bb := range c.Preds {
-			if bb == b {
-				found = true
-				break
-			}
-		}
-		if !found {
-			s.errorf("expected predecessor edge in successor %s; found only: %s", c.Name, blockNames(c.Preds))
-		}
-	}
-
-	// Check each instruction is sane.
-	n := len(b.Instrs)
-	if n == 0 {
-		s.errorf("basic block contains no instructions")
-	}
-	for j, instr := range b.Instrs {
-		if b2 := instr.Block(); b2 == nil {
-			s.errorf("nil Block() for instruction at index %d", j)
-			continue
-		} else if b2 != b {
-			s.errorf("wrong Block() (%s) for instruction at index %d ", b2.Name, j)
-			continue
-		}
-		if j < n-1 {
-			s.checkInstr(j, instr)
-		} else {
-			s.checkFinalInstr(j, instr)
-		}
-	}
-}
-
-func (s *sanity) checkFunction(fn *Function) bool {
-	// TODO(adonovan): check Function invariants:
-	// - check owning Package (if any) contains this function.
-	// - check params match signature
-	// - check locals are all !Heap
-	// - check transient fields are nil
-	// - check block labels are unique (warning)
-	s.fn = fn
-	if fn.Prog == nil {
-		s.errorf("nil Prog")
-	}
-	for i, b := range fn.Blocks {
-		if b == nil {
-			s.warnf("nil *BasicBlock at f.Blocks[%d]", i)
-			continue
-		}
-		s.checkBlock(b, i == 0)
-	}
-	s.block = nil
-	s.fn = nil
-	return !s.insane
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/ssa.go gcc-4.8.1/libgo/go/exp/ssa/ssa.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/ssa.go	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/ssa.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,1100 +0,0 @@
-package ssa
-
-// This package defines a high-level intermediate representation for
-// Go programs using static single-assignment (SSA) form.
-
-import (
-	"fmt"
-	"go/ast"
-	"go/token"
-	"go/types"
-)
-
-// A Program is a partial or complete Go program converted to SSA form.
-// Each Builder creates and populates a single Program during its
-// lifetime.
-//
-// TODO(adonovan): synthetic methods for promoted methods and for
-// standalone interface methods do not belong to any package.  Make
-// them enumerable here.
-//
-// TODO(adonovan): MethodSets of types other than named types
-// (i.e. anon structs) are not currently accessible, nor are they
-// memoized.  Add a method: MethodSetForType() which looks in the
-// appropriate Package (for methods of named types) or in
-// Program.AnonStructMethods (for methods of anon structs).
-//
-type Program struct {
-	Files    *token.FileSet            // position information for the files of this Program
-	Packages map[string]*Package       // all loaded Packages, keyed by import path
-	Builtins map[types.Object]*Builtin // all built-in functions, keyed by typechecker objects.
-}
-
-// A Package is a single analyzed Go package, containing Members for
-// all package-level functions, variables, constants and types it
-// declares.  These may be accessed directly via Members, or via the
-// type-specific accessor methods Func, Type, Var and Const.
-//
-type Package struct {
-	Prog       *Program          // the owning program
-	Types      *types.Package    // the type checker's package object for this package.
-	ImportPath string            // e.g. "sync/atomic"
-	Pos        token.Pos         // position of an arbitrary file in the package
-	Members    map[string]Member // all exported and unexported members of the package
-	AnonFuncs  []*Function       // all anonymous functions in this package
-	Init       *Function         // the package's (concatenated) init function
-
-	// The following fields are set transiently during building,
-	// then cleared.
-	files []*ast.File // the abstract syntax tree for the files of the package
-}
-
-// A Member is a member of a Go package, implemented by *Literal,
-// *Global, *Function, or *Type; they are created by package-level
-// const, var, func and type declarations respectively.
-//
-type Member interface {
-	Name() string      // the declared name of the package member
-	String() string    // human-readable information about the value
-	Type() types.Type  // the type of the package member
-	ImplementsMember() // dummy method to indicate the "implements" relation.
-}
-
-// An Id identifies the name of a field of a struct type, or the name
-// of a method of an interface or a named type.
-//
-// For exported names, i.e. those beginning with a Unicode upper-case
-// letter, a simple string is unambiguous.
-//
-// However, a method set or struct may contain multiple unexported
-// names with identical spelling that are logically distinct because
-// they originate in different packages.  Unexported names must
-// therefore be disambiguated by their package too.
-//
-// The Pkg field of an Id is therefore nil iff the name is exported.
-//
-// This type is suitable for use as a map key because the equivalence
-// relation == is consistent with identifier equality.
-type Id struct {
-	Pkg  *types.Package
-	Name string
-}
-
-// A MethodSet contains all the methods whose receiver is either T or
-// *T, for some named or struct type T.
-//
-// TODO(adonovan): the client is required to adapt T<=>*T, e.g. when
-// invoking an interface method.  (This could be simplified for the
-// client by having distinct method sets for T and *T, with the SSA
-// Builder generating wrappers as needed, but probably the client is
-// able to do a better job.)  Document the precise rules the client
-// must follow.
-//
-type MethodSet map[Id]*Function
-
-// A Type is a Member of a Package representing the name, underlying
-// type and method set of a named type declared at package scope.
-//
-// The method set contains only concrete methods; it is empty for
-// interface types.
-//
-type Type struct {
-	NamedType *types.NamedType
-	Methods   MethodSet
-}
-
-// An SSA value that can be referenced by an instruction.
-//
-// TODO(adonovan): add methods:
-// - Referrers() []*Instruction // all instructions that refer to this value.
-//
-type Value interface {
-	// Name returns the name of this value, and determines how
-	// this Value appears when used as an operand of an
-	// Instruction.
-	//
-	// This is the same as the source name for Parameters,
-	// Builtins, Functions, Captures, Globals and some Allocs.
-	// For literals, it is a representation of the literal's value
-	// and type.  For all other Values this is the name of the
-	// virtual register defined by the instruction.
-	//
-	// The name of an SSA Value is not semantically significant,
-	// and may not even be unique within a function.
-	Name() string
-
-	// If this value is an Instruction, String returns its
-	// disassembled form; otherwise it returns unspecified
-	// human-readable information about the Value, such as its
-	// kind, name and type.
-	String() string
-
-	// Type returns the type of this value.  Many instructions
-	// (e.g. IndexAddr) change the behaviour depending on the
-	// types of their operands.
-	//
-	// Documented type invariants below (e.g. "Alloc.Type()
-	// returns a *types.Pointer") refer to the underlying type in
-	// the case of NamedTypes.
-	Type() types.Type
-
-	// Dummy method to indicate the "implements" relation.
-	ImplementsValue()
-}
-
-// An Instruction is an SSA instruction that computes a new Value or
-// has some effect.
-//
-// An Instruction that defines a value (e.g. BinOp) also implements
-// the Value interface; an Instruction that only has an effect (e.g. Store)
-// does not.
-//
-// TODO(adonovan): add method:
-// - Operands() []Value  // all Values referenced by this instruction.
-//
-type Instruction interface {
-	// String returns the disassembled form of this value.  e.g.
-	//
-	// Examples of Instructions that define a Value:
-	// e.g.  "x + y"     (BinOp)
-	//       "len([])"   (Call)
-	// Note that the name of the Value is not printed.
-	//
-	// Examples of Instructions that do define (are) Values:
-	// e.g.  "ret x"     (Ret)
-	//       "*y = x"    (Store)
-	//
-	// (This separation is useful for some analyses which
-	// distinguish the operation from the value it
-	// defines. e.g. 'y = local int' is both an allocation of
-	// memory 'local int' and a definition of a pointer y.)
-	String() string
-
-	// Block returns the basic block to which this instruction
-	// belongs.
-	Block() *BasicBlock
-
-	// SetBlock sets the basic block to which this instruction
-	// belongs.
-	SetBlock(*BasicBlock)
-
-	// Dummy method to indicate the "implements" relation.
-	ImplementsInstruction()
-}
-
-// Function represents the parameters, results and code of a function
-// or method.
-//
-// If Blocks is nil, this indicates an external function for which no
-// Go source code is available.  In this case, Captures and Locals
-// will be nil too.  Clients performing whole-program analysis must
-// handle external functions specially.
-//
-// Functions are immutable values; they do not have addresses.
-//
-// Blocks[0] is the function entry point; block order is not otherwise
-// semantically significant, though it may affect the readability of
-// the disassembly.
-//
-// A nested function that refers to one or more lexically enclosing
-// local variables ("free variables") has Capture parameters.  Such
-// functions cannot be called directly but require a value created by
-// MakeClosure which, via its Bindings, supplies values for these
-// parameters.  Captures are always addresses.
-//
-// If the function is a method (Signature.Recv != nil) then the first
-// element of Params is the receiver parameter.
-//
-// Type() returns the function's Signature.
-//
-type Function struct {
-	Name_     string
-	Signature *types.Signature
-
-	Pos       token.Pos // location of the definition
-	Enclosing *Function // enclosing function if anon; nil if global
-	Pkg       *Package  // enclosing package; nil for some synthetic methods
-	Prog      *Program  // enclosing program
-	Params    []*Parameter
-	FreeVars  []*Capture // free variables whose values must be supplied by closure
-	Locals    []*Alloc
-	Blocks    []*BasicBlock // basic blocks of the function; nil => external
-
-	// The following fields are set transiently during building,
-	// then cleared.
-	currentBlock *BasicBlock             // where to emit code
-	objects      map[types.Object]Value  // addresses of local variables
-	results      []*Alloc                // tuple of named results
-	syntax       *funcSyntax             // abstract syntax trees for Go source functions
-	targets      *targets                // linked stack of branch targets
-	lblocks      map[*ast.Object]*lblock // labelled blocks
-}
-
-// An SSA basic block.
-//
-// The final element of Instrs is always an explicit transfer of
-// control (If, Jump or Ret).
-//
-// A block may contain no Instructions only if it is unreachable,
-// i.e. Preds is nil.  Empty blocks are typically pruned.
-//
-// BasicBlocks and their Preds/Succs relation form a (possibly cyclic)
-// graph independent of the SSA Value graph.  It is illegal for
-// multiple edges to exist between the same pair of blocks.
-//
-// The order of Preds and Succs are significant (to Phi and If
-// instructions, respectively).
-//
-type BasicBlock struct {
-	Name         string         // label; no semantic significance
-	Func         *Function      // containing function
-	Instrs       []Instruction  // instructions in order
-	Preds, Succs []*BasicBlock  // predecessors and successors
-	succs2       [2]*BasicBlock // initial space for Succs.
-}
-
-// Pure values ----------------------------------------
-
-// A Capture is a pointer to a lexically enclosing local variable.
-//
-// The referent of a capture is an Alloc or another Capture and is
-// always considered potentially escaping, so Captures are always
-// addresses in the heap, and have pointer types.
-//
-type Capture struct {
-	Outer Value // the Value captured from the enclosing context.
-}
-
-// A Parameter represents an input parameter of a function.
-//
-type Parameter struct {
-	Name_ string
-	Type_ types.Type
-}
-
-// A Literal represents a literal nil, boolean, string or numeric
-// (integer, fraction or complex) value.
-//
-// A literal's underlying Type() can be a basic type, possibly one of
-// the "untyped" types.  A nil literal can have any reference type:
-// interface, map, channel, pointer, slice, or function---but not
-// "untyped nil".
-//
-// All source-level constant expressions are represented by a Literal
-// of equal type and value.
-//
-// Value holds the exact value of the literal, independent of its
-// Type(), using the same representation as package go/types uses for
-// constants.
-//
-// Example printed form:
-// 	42:int
-//	"hello":untyped string
-//	3+4i:MyComplex
-//
-type Literal struct {
-	Type_ types.Type
-	Value interface{}
-}
-
-// A Global is a named Value holding the address of a package-level
-// variable.
-//
-type Global struct {
-	Name_ string
-	Type_ types.Type
-	Pkg   *Package
-
-	// The following fields are set transiently during building,
-	// then cleared.
-	spec *ast.ValueSpec // explained at buildGlobal
-}
-
-// A built-in function, e.g. len.
-//
-// Builtins are immutable values; they do not have addresses.
-//
-// Type() returns an inscrutable *types.builtin.  Built-in functions
-// may have polymorphic or variadic types that are not expressible in
-// Go's type system.
-//
-type Builtin struct {
-	Object *types.Func // canonical types.Universe object for this built-in
-}
-
-// Value-defining instructions  ----------------------------------------
-
-// The Alloc instruction reserves space for a value of the given type,
-// zero-initializes it, and yields its address.
-//
-// Alloc values are always addresses, and have pointer types, so the
-// type of the allocated space is actually indirect(Type()).
-//
-// If Heap is false, Alloc allocates space in the function's
-// activation record (frame); we refer to an Alloc(Heap=false) as a
-// "local" alloc.  Each local Alloc returns the same address each time
-// it is executed within the same activation; the space is
-// re-initialized to zero.
-//
-// If Heap is true, Alloc allocates space in the heap, and returns; we
-// refer to an Alloc(Heap=true) as a "new" alloc.  Each new Alloc
-// returns a different address each time it is executed.
-//
-// When Alloc is applied to a channel, map or slice type, it returns
-// the address of an uninitialized (nil) reference of that kind; store
-// the result of MakeSlice, MakeMap or MakeChan in that location to
-// instantiate these types.
-//
-// Example printed form:
-// 	t0 = local int
-// 	t1 = new int
-//
-type Alloc struct {
-	anInstruction
-	Name_ string
-	Type_ types.Type
-	Heap  bool
-}
-
-// Phi represents an SSA Ï†-node, which combines values that differ
-// across incoming control-flow edges and yields a new value.  Within
-// a block, all Ï†-nodes must appear before all non-Ï† nodes.
-//
-// Example printed form:
-// 	t2 = phi [0.start: t0, 1.if.then: t1, ...]
-//
-type Phi struct {
-	Register
-	Edges []Value // Edges[i] is value for Block().Preds[i]
-}
-
-// Call represents a function or method call.
-//
-// The Call instruction yields the function result, if there is
-// exactly one, or a tuple (empty or len>1) whose components are
-// accessed via Extract.
-//
-// See CallCommon for generic function call documentation.
-//
-// Example printed form:
-// 	t2 = println(t0, t1)
-// 	t4 = t3()
-// 	t7 = invoke t5.Println(...t6)
-//
-type Call struct {
-	Register
-	CallCommon
-}
-
-// BinOp yields the result of binary operation X Op Y.
-//
-// Example printed form:
-// 	t1 = t0 + 1:int
-//
-type BinOp struct {
-	Register
-	// One of:
-	// ADD SUB MUL QUO REM          + - * / %
-	// AND OR XOR SHL SHR AND_NOT   & | ^ << >> &~
-	// EQL LSS GTR NEQ LEQ GEQ      == != < <= < >=
-	Op   token.Token
-	X, Y Value
-}
-
-// UnOp yields the result of Op X.
-// ARROW is channel receive.
-// MUL is pointer indirection (load).
-//
-// If CommaOk and Op=ARROW, the result is a 2-tuple of the value above
-// and a boolean indicating the success of the receive.  The
-// components of the tuple are accessed using Extract.
-//
-// Example printed form:
-// 	t0 = *x
-// 	t2 = <-t1,ok
-//
-type UnOp struct {
-	Register
-	Op      token.Token // One of: NOT SUB ARROW MUL XOR ! - <- * ^
-	X       Value
-	CommaOk bool
-}
-
-// Conv yields the conversion of X to type Type().
-//
-// A conversion is one of the following kinds.  The behaviour of the
-// conversion operator may depend on both Type() and X.Type(), as well
-// as the dynamic value.
-//
-// A '+' indicates that a dynamic representation change may occur.
-// A '-' indicates that the conversion is a value-preserving change
-// to types only.
-//
-// 1. implicit conversions (arising from assignability rules):
-//    - adding/removing a name, same underlying types.
-//    - channel type restriction, possibly adding/removing a name.
-// 2. explicit conversions (in addition to the above):
-//    - changing a name, same underlying types.
-//    - between pointers to identical base types.
-//    + conversions between real numeric types.
-//    + conversions between complex numeric types.
-//    + integer/[]byte/[]rune -> string.
-//    + string -> []byte/[]rune.
-//
-// TODO(adonovan): split into two cases:
-// - rename value (ChangeType)
-// + value to type with different representation (Conv)
-//
-// Conversions of untyped string/number/bool constants to a specific
-// representation are eliminated during SSA construction.
-//
-// Example printed form:
-// 	t1 = convert interface{} <- int (t0)
-//
-type Conv struct {
-	Register
-	X Value
-}
-
-// ChangeInterface constructs a value of one interface type from a
-// value of another interface type known to be assignable to it.
-//
-// Example printed form:
-// 	t1 = change interface interface{} <- I (t0)
-//
-type ChangeInterface struct {
-	Register
-	X Value
-}
-
-// MakeInterface constructs an instance of an interface type from a
-// value and its method-set.
-//
-// To construct the zero value of an interface type T, use:
-// 	&Literal{types.nilType{}, T}
-//
-// Example printed form:
-// 	t1 = make interface interface{} <- int (42:int)
-//
-type MakeInterface struct {
-	Register
-	X       Value
-	Methods MethodSet // method set of (non-interface) X iff converting to interface
-}
-
-// A MakeClosure instruction yields an anonymous function value whose
-// code is Fn and whose lexical capture slots are populated by Bindings.
-//
-// By construction, all captured variables are addresses of variables
-// allocated with 'new', i.e. Alloc(Heap=true).
-//
-// Type() returns a *types.Signature.
-//
-// Example printed form:
-// 	t0 = make closure anon@1.2 [x y z]
-//
-type MakeClosure struct {
-	Register
-	Fn       *Function
-	Bindings []Value // values for each free variable in Fn.FreeVars
-}
-
-// The MakeMap instruction creates a new hash-table-based map object
-// and yields a value of kind map.
-//
-// Type() returns a *types.Map.
-//
-// Example printed form:
-// 	t1 = make map[string]int t0
-//
-type MakeMap struct {
-	Register
-	Reserve Value // initial space reservation; nil => default
-}
-
-// The MakeChan instruction creates a new channel object and yields a
-// value of kind chan.
-//
-// Type() returns a *types.Chan.
-//
-// Example printed form:
-// 	t0 = make chan int 0
-//
-type MakeChan struct {
-	Register
-	Size Value // int; size of buffer; zero => synchronous.
-}
-
-// MakeSlice yields a slice of length Len backed by a newly allocated
-// array of length Cap.
-//
-// Both Len and Cap must be non-nil Values of integer type.
-//
-// (Alloc(types.Array) followed by Slice will not suffice because
-// Alloc can only create arrays of statically known length.)
-//
-// Type() returns a *types.Slice.
-//
-// Example printed form:
-// 	t1 = make slice []string 1:int t0
-//
-type MakeSlice struct {
-	Register
-	Len Value
-	Cap Value
-}
-
-// Slice yields a slice of an existing string, slice or *array X
-// between optional integer bounds Low and High.
-//
-// Type() returns string if the type of X was string, otherwise a
-// *types.Slice with the same element type as X.
-//
-// Example printed form:
-// 	t1 = slice t0[1:]
-//
-type Slice struct {
-	Register
-	X         Value // slice, string, or *array
-	Low, High Value // either may be nil
-}
-
-// FieldAddr yields the address of Field of *struct  X.
-//
-// The field is identified by its index within the field list of the
-// struct type of X.
-//
-// Type() returns a *types.Pointer.
-//
-// Example printed form:
-// 	t1 = &t0.name [#1]
-//
-type FieldAddr struct {
-	Register
-	X     Value // *struct
-	Field int   // index into X.Type().(*types.Struct).Fields
-}
-
-// Field yields the Field of struct X.
-//
-// The field is identified by its index within the field list of the
-// struct type of X; by using numeric indices we avoid ambiguity of
-// package-local identifiers and permit compact representations.
-//
-// Example printed form:
-// 	t1 = t0.name [#1]
-//
-type Field struct {
-	Register
-	X     Value // struct
-	Field int   // index into X.Type().(*types.Struct).Fields
-}
-
-// IndexAddr yields the address of the element at index Index of
-// collection X.  Index is an integer expression.
-//
-// The elements of maps and strings are not addressable; use Lookup or
-// MapUpdate instead.
-//
-// Type() returns a *types.Pointer.
-//
-// Example printed form:
-// 	t2 = &t0[t1]
-//
-type IndexAddr struct {
-	Register
-	X     Value // slice or *array,
-	Index Value // numeric index
-}
-
-// Index yields element Index of array X.
-//
-// TODO(adonovan): permit X to have type slice.
-// Currently this requires IndexAddr followed by Load.
-//
-// Example printed form:
-// 	t2 = t0[t1]
-//
-type Index struct {
-	Register
-	X     Value // array
-	Index Value // integer index
-}
-
-// Lookup yields element Index of collection X, a map or string.
-// Index is an integer expression if X is a string or the appropriate
-// key type if X is a map.
-//
-// If CommaOk, the result is a 2-tuple of the value above and a
-// boolean indicating the result of a map membership test for the key.
-// The components of the tuple are accessed using Extract.
-//
-// Example printed form:
-// 	t2 = t0[t1]
-// 	t5 = t3[t4],ok
-//
-type Lookup struct {
-	Register
-	X       Value // string or map
-	Index   Value // numeric or key-typed index
-	CommaOk bool  // return a value,ok pair
-}
-
-// SelectState is a helper for Select.
-// It represents one goal state and its corresponding communication.
-//
-type SelectState struct {
-	Dir  ast.ChanDir // direction of case
-	Chan Value       // channel to use (for send or receive)
-	Send Value       // value to send (for send)
-}
-
-// Select tests whether (or blocks until) one or more of the specified
-// sent or received states is entered.
-//
-// It returns a triple (index int, recv ?, recvOk bool) whose
-// components, described below, must be accessed via the Extract
-// instruction.
-//
-// If Blocking, select waits until exactly one state holds, i.e. a
-// channel becomes ready for the designated operation of sending or
-// receiving; select chooses one among the ready states
-// pseudorandomly, performs the send or receive operation, and sets
-// 'index' to the index of the chosen channel.
-//
-// If !Blocking, select doesn't block if no states hold; instead it
-// returns immediately with index equal to -1.
-//
-// If the chosen channel was used for a receive, 'recv' is set to the
-// received value; Otherwise it is unspecified.  recv has no useful
-// type since it is conceptually the union of all possible received
-// values.
-//
-// The third component of the triple, recvOk, is a boolean whose value
-// is true iff the selected operation was a receive and the receive
-// successfully yielded a value.
-//
-// Example printed form:
-// 	t3 = select nonblocking [<-t0, t1<-t2, ...]
-// 	t4 = select blocking []
-//
-type Select struct {
-	Register
-	States   []SelectState
-	Blocking bool
-}
-
-// Range yields an iterator over the domain and range of X.
-// Elements are accessed via Next.
-//
-// Type() returns a *types.Result (tuple type).
-//
-// Example printed form:
-// 	t0 = range "hello":string
-//
-type Range struct {
-	Register
-	X Value // array, *array, slice, string, map or chan
-}
-
-// Next reads and advances the iterator Iter and returns a 3-tuple
-// value (ok, k, v).  If the iterator is not exhausted, ok is true and
-// k and v are the next elements of the domain and range,
-// respectively.  Otherwise ok is false and k and v are undefined.
-//
-// For channel iterators, k is the received value and v is always
-// undefined.
-//
-// Components of the tuple are accessed using Extract.
-//
-// Type() returns a *types.Result (tuple type).
-//
-// Example printed form:
-// 	t1 = next t0
-//
-type Next struct {
-	Register
-	Iter Value
-}
-
-// TypeAssert tests whether interface value X has type
-// AssertedType.
-//
-// If CommaOk: on success it returns a pair (v, true) where v is a
-// copy of value X; on failure it returns (z, false) where z is the
-// zero value of that type.  The components of the pair must be
-// accessed using the Extract instruction.
-//
-// If !CommaOk, on success it returns just the single value v; on
-// failure it panics.
-//
-// Type() reflects the actual type of the result, possibly a pair
-// (types.Result); AssertedType is the asserted type.
-//
-// Example printed form:
-// 	t1 = typeassert t0.(int)
-// 	t3 = typeassert,ok t2.(T)
-//
-type TypeAssert struct {
-	Register
-	X            Value
-	AssertedType types.Type
-	CommaOk      bool
-}
-
-// Extract yields component Index of Tuple.
-//
-// This is used to access the results of instructions with multiple
-// return values, such as Call, TypeAssert, Next, UnOp(ARROW) and
-// IndexExpr(Map).
-//
-// Example printed form:
-// 	t1 = extract t0 #1
-//
-type Extract struct {
-	Register
-	Tuple Value
-	Index int
-}
-
-// Instructions executed for effect.  They do not yield a value. --------------------
-
-// Jump transfers control to the sole successor of its owning block.
-//
-// A Jump instruction must be the last instruction of its containing
-// BasicBlock.
-//
-// Example printed form:
-// 	jump done
-//
-type Jump struct {
-	anInstruction
-}
-
-// The If instruction transfers control to one of the two successors
-// of its owning block, depending on the boolean Cond: the first if
-// true, the second if false.
-//
-// An If instruction must be the last instruction of its containing
-// BasicBlock.
-//
-// Example printed form:
-// 	if t0 goto done else body
-//
-type If struct {
-	anInstruction
-	Cond Value
-}
-
-// Ret returns values and control back to the calling function.
-//
-// len(Results) is always equal to the number of results in the
-// function's signature.  A source-level 'return' statement with no
-// operands in a multiple-return value function is desugared to make
-// the results explicit.
-//
-// If len(Results) > 1, Ret returns a tuple value with the specified
-// components which the caller must access using Extract instructions.
-//
-// There is no instruction to return a ready-made tuple like those
-// returned by a "value,ok"-mode TypeAssert, Lookup or UnOp(ARROW) or
-// a tail-call to a function with multiple result parameters.
-// TODO(adonovan): consider defining one; but: dis- and re-assembling
-// the tuple is unavoidable if assignability conversions are required
-// on the components.
-//
-// Ret must be the last instruction of its containing BasicBlock.
-// Such a block has no successors.
-//
-// Example printed form:
-// 	ret
-// 	ret nil:I, 2:int
-//
-type Ret struct {
-	anInstruction
-	Results []Value
-}
-
-// Go creates a new goroutine and calls the specified function
-// within it.
-//
-// See CallCommon for generic function call documentation.
-//
-// Example printed form:
-// 	go println(t0, t1)
-// 	go t3()
-// 	go invoke t5.Println(...t6)
-//
-type Go struct {
-	anInstruction
-	CallCommon
-}
-
-// Defer pushes the specified call onto a stack of functions
-// to be called immediately prior to returning from the
-// current function.
-//
-// See CallCommon for generic function call documentation.
-//
-// Example printed form:
-// 	defer println(t0, t1)
-// 	defer t3()
-// 	defer invoke t5.Println(...t6)
-//
-type Defer struct {
-	anInstruction
-	CallCommon
-}
-
-// Send sends X on channel Chan.
-//
-// Example printed form:
-// 	send t0 <- t1
-//
-type Send struct {
-	anInstruction
-	Chan, X Value
-}
-
-// Store stores Val at address Addr.
-// Stores can be of arbitrary types.
-//
-// Example printed form:
-// 	*x = y
-//
-type Store struct {
-	anInstruction
-	Addr Value
-	Val  Value
-}
-
-// MapUpdate updates the association of Map[Key] to Value.
-//
-// Example printed form:
-//	t0[t1] = t2
-//
-type MapUpdate struct {
-	anInstruction
-	Map   Value
-	Key   Value
-	Value Value
-}
-
-// Embeddable mix-ins used for common parts of other structs. --------------------
-
-// Register is a mix-in embedded by all SSA values that are also
-// instructions, i.e. virtual registers, and provides implementations
-// of the Value interface's Name() and Type() methods: the name is
-// simply a numbered register (e.g. "t0") and the type is the Type_
-// field.
-//
-// Temporary names are automatically assigned to each Register on
-// completion of building a function in SSA form.
-//
-// Clients must not assume that the 'id' value (and the Name() derived
-// from it) is unique within a function.  As always in this API,
-// semantics are determined only by identity; names exist only to
-// facilitate debugging.
-//
-type Register struct {
-	anInstruction
-	num   int        // "name" of virtual register, e.g. "t0".  Not guaranteed unique.
-	Type_ types.Type // type of virtual register
-}
-
-// AnInstruction is a mix-in embedded by all Instructions.
-// It provides the implementations of the Block and SetBlock methods.
-type anInstruction struct {
-	Block_ *BasicBlock // the basic block of this instruction
-}
-
-// CallCommon is a mix-in embedded by Go, Defer and Call to hold the
-// common parts of a function or method call.
-//
-// Each CallCommon exists in one of two modes, function call and
-// interface method invocation, or "call" and "invoke" for short.
-//
-// 1. "call" mode: when Recv is nil, a CallCommon represents an
-// ordinary function call of the value in Func.
-//
-// In the common case in which Func is a *Function, this indicates a
-// statically dispatched call to a package-level function, an
-// anonymous function, or a method of a named type.  Also statically
-// dispatched, but less common, Func may be a *MakeClosure, indicating
-// an immediately applied function literal with free variables.  Any
-// other Value of Func indicates a dynamically dispatched function
-// call.
-//
-// Args contains the arguments to the call.  If Func is a method,
-// Args[0] contains the receiver parameter.  Recv and Method are not
-// used in this mode.
-//
-// Example printed form:
-// 	t2 = println(t0, t1)
-// 	go t3()
-//	defer t5(...t6)
-//
-// 2. "invoke" mode: when Recv is non-nil, a CallCommon represents a
-// dynamically dispatched call to an interface method.  In this
-// mode, Recv is the interface value and Method is the index of the
-// method within the interface type of the receiver.
-//
-// Recv is implicitly supplied to the concrete method implementation
-// as the receiver parameter; in other words, Args[0] holds not the
-// receiver but the first true argument.  Func is not used in this
-// mode.
-//
-// Example printed form:
-// 	t1 = invoke t0.String()
-// 	go invoke t3.Run(t2)
-// 	defer invoke t4.Handle(...t5)
-//
-// In both modes, HasEllipsis is true iff the last element of Args is
-// a slice value containing zero or more arguments to a variadic
-// function.  (This is not semantically significant since the type of
-// the called function is sufficient to determine this, but it aids
-// readability of the printed form.)
-//
-type CallCommon struct {
-	Recv        Value     // receiver, iff interface method invocation
-	Method      int       // index of interface method within Recv.Type().(*types.Interface).Methods
-	Func        Value     // target of call, iff function call
-	Args        []Value   // actual parameters, including receiver in invoke mode
-	HasEllipsis bool      // true iff last Args is a slice  (needed?)
-	Pos         token.Pos // position of call expression
-}
-
-func (v *Builtin) Type() types.Type { return v.Object.GetType() }
-func (v *Builtin) Name() string     { return v.Object.GetName() }
-
-func (v *Capture) Type() types.Type { return v.Outer.Type() }
-func (v *Capture) Name() string     { return v.Outer.Name() }
-
-func (v *Global) Type() types.Type { return v.Type_ }
-func (v *Global) Name() string     { return v.Name_ }
-
-func (v *Function) Name() string     { return v.Name_ }
-func (v *Function) Type() types.Type { return v.Signature }
-
-func (v *Parameter) Type() types.Type { return v.Type_ }
-func (v *Parameter) Name() string     { return v.Name_ }
-
-func (v *Alloc) Type() types.Type { return v.Type_ }
-func (v *Alloc) Name() string     { return v.Name_ }
-
-func (v *Register) Type() types.Type       { return v.Type_ }
-func (v *Register) setType(typ types.Type) { v.Type_ = typ }
-func (v *Register) Name() string           { return fmt.Sprintf("t%d", v.num) }
-func (v *Register) setNum(num int)         { v.num = num }
-
-func (v *anInstruction) Block() *BasicBlock         { return v.Block_ }
-func (v *anInstruction) SetBlock(block *BasicBlock) { v.Block_ = block }
-
-func (ms *Type) Type() types.Type { return ms.NamedType }
-func (ms *Type) String() string   { return ms.Name() }
-func (ms *Type) Name() string     { return ms.NamedType.Obj.Name }
-
-func (p *Package) Name() string { return p.Types.Name }
-
-// Func returns the package-level function of the specified name,
-// or nil if not found.
-//
-func (p *Package) Func(name string) (f *Function) {
-	f, _ = p.Members[name].(*Function)
-	return
-}
-
-// Var returns the package-level variable of the specified name,
-// or nil if not found.
-//
-func (p *Package) Var(name string) (g *Global) {
-	g, _ = p.Members[name].(*Global)
-	return
-}
-
-// Const returns the package-level constant of the specified name,
-// or nil if not found.
-//
-func (p *Package) Const(name string) (l *Literal) {
-	l, _ = p.Members[name].(*Literal)
-	return
-}
-
-// Type returns the package-level type of the specified name,
-// or nil if not found.
-//
-func (p *Package) Type(name string) (t *Type) {
-	t, _ = p.Members[name].(*Type)
-	return
-}
-
-// "Implements" relation boilerplate.
-// Don't try to factor this using promotion and mix-ins: the long-hand
-// form serves as better documentation, including in godoc.
-
-func (*Alloc) ImplementsValue()           {}
-func (*BinOp) ImplementsValue()           {}
-func (*Builtin) ImplementsValue()         {}
-func (*Call) ImplementsValue()            {}
-func (*Capture) ImplementsValue()         {}
-func (*ChangeInterface) ImplementsValue() {}
-func (*Conv) ImplementsValue()            {}
-func (*Extract) ImplementsValue()         {}
-func (*Field) ImplementsValue()           {}
-func (*FieldAddr) ImplementsValue()       {}
-func (*Function) ImplementsValue()        {}
-func (*Global) ImplementsValue()          {}
-func (*Index) ImplementsValue()           {}
-func (*IndexAddr) ImplementsValue()       {}
-func (*Literal) ImplementsValue()         {}
-func (*Lookup) ImplementsValue()          {}
-func (*MakeChan) ImplementsValue()        {}
-func (*MakeClosure) ImplementsValue()     {}
-func (*MakeInterface) ImplementsValue()   {}
-func (*MakeMap) ImplementsValue()         {}
-func (*MakeSlice) ImplementsValue()       {}
-func (*Next) ImplementsValue()            {}
-func (*Parameter) ImplementsValue()       {}
-func (*Phi) ImplementsValue()             {}
-func (*Range) ImplementsValue()           {}
-func (*Select) ImplementsValue()          {}
-func (*Slice) ImplementsValue()           {}
-func (*TypeAssert) ImplementsValue()      {}
-func (*UnOp) ImplementsValue()            {}
-
-func (*Function) ImplementsMember() {}
-func (*Global) ImplementsMember()   {}
-func (*Literal) ImplementsMember()  {}
-func (*Type) ImplementsMember()     {}
-
-func (*Alloc) ImplementsInstruction()           {}
-func (*BinOp) ImplementsInstruction()           {}
-func (*Call) ImplementsInstruction()            {}
-func (*ChangeInterface) ImplementsInstruction() {}
-func (*Conv) ImplementsInstruction()            {}
-func (*Defer) ImplementsInstruction()           {}
-func (*Extract) ImplementsInstruction()         {}
-func (*Field) ImplementsInstruction()           {}
-func (*FieldAddr) ImplementsInstruction()       {}
-func (*Go) ImplementsInstruction()              {}
-func (*If) ImplementsInstruction()              {}
-func (*Index) ImplementsInstruction()           {}
-func (*IndexAddr) ImplementsInstruction()       {}
-func (*Jump) ImplementsInstruction()            {}
-func (*Lookup) ImplementsInstruction()          {}
-func (*MakeChan) ImplementsInstruction()        {}
-func (*MakeClosure) ImplementsInstruction()     {}
-func (*MakeInterface) ImplementsInstruction()   {}
-func (*MakeMap) ImplementsInstruction()         {}
-func (*MakeSlice) ImplementsInstruction()       {}
-func (*MapUpdate) ImplementsInstruction()       {}
-func (*Next) ImplementsInstruction()            {}
-func (*Phi) ImplementsInstruction()             {}
-func (*Range) ImplementsInstruction()           {}
-func (*Ret) ImplementsInstruction()             {}
-func (*Select) ImplementsInstruction()          {}
-func (*Send) ImplementsInstruction()            {}
-func (*Slice) ImplementsInstruction()           {}
-func (*Store) ImplementsInstruction()           {}
-func (*TypeAssert) ImplementsInstruction()      {}
-func (*UnOp) ImplementsInstruction()            {}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/ssa/util.go gcc-4.8.1/libgo/go/exp/ssa/util.go
--- gcc-4.8.1.orig/libgo/go/exp/ssa/util.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/ssa/util.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,172 +0,0 @@
-package ssa
-
-// This file defines a number of miscellaneous utility functions.
-
-import (
-	"fmt"
-	"go/ast"
-	"go/types"
-)
-
-func unreachable() {
-	panic("unreachable")
-}
-
-//// AST utilities
-
-// noparens returns e with any enclosing parentheses stripped.
-func noparens(e ast.Expr) ast.Expr {
-	for {
-		p, ok := e.(*ast.ParenExpr)
-		if !ok {
-			break
-		}
-		e = p.X
-	}
-	return e
-}
-
-// isBlankIdent returns true iff e is an Ident with name "_".
-// They have no associated types.Object, and thus no type.
-//
-// TODO(gri): consider making typechecker not treat them differently.
-// It's one less thing for clients like us to worry about.
-//
-func isBlankIdent(e ast.Expr) bool {
-	id, ok := e.(*ast.Ident)
-	return ok && id.Name == "_"
-}
-
-//// Type utilities.  Some of these belong in go/types.
-
-// underlyingType returns the underlying type of typ.
-// TODO(gri): this is a copy of go/types.underlying; export that function.
-//
-func underlyingType(typ types.Type) types.Type {
-	if typ, ok := typ.(*types.NamedType); ok {
-		return typ.Underlying // underlying types are never NamedTypes
-	}
-	if typ == nil {
-		panic("underlyingType(nil)")
-	}
-	return typ
-}
-
-// isPointer returns true for types whose underlying type is a pointer.
-func isPointer(typ types.Type) bool {
-	if nt, ok := typ.(*types.NamedType); ok {
-		typ = nt.Underlying
-	}
-	_, ok := typ.(*types.Pointer)
-	return ok
-}
-
-// pointer(typ) returns the type that is a pointer to typ.
-func pointer(typ types.Type) *types.Pointer {
-	return &types.Pointer{Base: typ}
-}
-
-// indirect(typ) assumes that typ is a pointer type,
-// or named alias thereof, and returns its base type.
-// Panic ensures if it is not a pointer.
-//
-func indirectType(ptr types.Type) types.Type {
-	if v, ok := underlyingType(ptr).(*types.Pointer); ok {
-		return v.Base
-	}
-	// When debugging it is convenient to comment out this line
-	// and let it continue to print the (illegal) SSA form.
-	panic("indirect() of non-pointer type: " + ptr.String())
-	return nil
-}
-
-// deref returns a pointer's base type; otherwise it returns typ.
-func deref(typ types.Type) types.Type {
-	if typ, ok := underlyingType(typ).(*types.Pointer); ok {
-		return typ.Base
-	}
-	return typ
-}
-
-// methodIndex returns the method (and its index) named id within the
-// method table methods of named or interface type typ.  If not found,
-// panic ensues.
-//
-func methodIndex(typ types.Type, methods []*types.Method, id Id) (i int, m *types.Method) {
-	for i, m = range methods {
-		if IdFromQualifiedName(m.QualifiedName) == id {
-			return
-		}
-	}
-	panic(fmt.Sprint("method not found: ", id, " in interface ", typ))
-}
-
-// objKind returns the syntactic category of the named entity denoted by obj.
-func objKind(obj types.Object) ast.ObjKind {
-	switch obj.(type) {
-	case *types.Package:
-		return ast.Pkg
-	case *types.TypeName:
-		return ast.Typ
-	case *types.Const:
-		return ast.Con
-	case *types.Var:
-		return ast.Var
-	case *types.Func:
-		return ast.Fun
-	}
-	panic(fmt.Sprintf("unexpected Object type: %T", obj))
-}
-
-// DefaultType returns the default "typed" type for an "untyped" type;
-// it returns the incoming type for all other types. If there is no
-// corresponding untyped type, the result is types.Typ[types.Invalid].
-//
-// Exported to exp/ssa/interp.
-//
-// TODO(gri): this is a copy of go/types.defaultType; export that function.
-//
-func DefaultType(typ types.Type) types.Type {
-	if t, ok := typ.(*types.Basic); ok {
-		k := types.Invalid
-		switch t.Kind {
-		// case UntypedNil:
-		//      There is no default type for nil. For a good error message,
-		//      catch this case before calling this function.
-		case types.UntypedBool:
-			k = types.Bool
-		case types.UntypedInt:
-			k = types.Int
-		case types.UntypedRune:
-			k = types.Rune
-		case types.UntypedFloat:
-			k = types.Float64
-		case types.UntypedComplex:
-			k = types.Complex128
-		case types.UntypedString:
-			k = types.String
-		}
-		typ = types.Typ[k]
-	}
-	return typ
-}
-
-// makeId returns the Id (name, pkg) if the name is exported or
-// (name, nil) otherwise.
-//
-func makeId(name string, pkg *types.Package) (id Id) {
-	id.Name = name
-	if !ast.IsExported(name) {
-		id.Pkg = pkg
-	}
-	return
-}
-
-// IdFromQualifiedName returns the Id (qn.Name, qn.Pkg) if qn is an
-// exported name or (qn.Name, nil) otherwise.
-//
-// Exported to exp/ssa/interp.
-//
-func IdFromQualifiedName(qn types.QualifiedName) Id {
-	return makeId(qn.Name, qn.Pkg)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/utf8string/string.go gcc-4.8.1/libgo/go/exp/utf8string/string.go
--- gcc-4.8.1.orig/libgo/go/exp/utf8string/string.go	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/utf8string/string.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,203 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package utf8string provides an efficient way to index strings by rune rather than by byte.
-package utf8string
-
-import (
-	"errors"
-	"unicode/utf8"
-)
-
-// String wraps a regular string with a small structure that provides more
-// efficient indexing by code point index, as opposed to byte index.
-// Scanning incrementally forwards or backwards is O(1) per index operation
-// (although not as fast a range clause going forwards).  Random access is
-// O(N) in the length of the string, but the overhead is less than always
-// scanning from the beginning.
-// If the string is ASCII, random access is O(1).
-// Unlike the built-in string type, String has internal mutable state and
-// is not thread-safe.
-type String struct {
-	str      string
-	numRunes int
-	// If width > 0, the rune at runePos starts at bytePos and has the specified width.
-	width    int
-	bytePos  int
-	runePos  int
-	nonASCII int // byte index of the first non-ASCII rune.
-}
-
-// NewString returns a new UTF-8 string with the provided contents.
-func NewString(contents string) *String {
-	return new(String).Init(contents)
-}
-
-// Init initializes an existing String to hold the provided contents.
-// It returns a pointer to the initialized String.
-func (s *String) Init(contents string) *String {
-	s.str = contents
-	s.bytePos = 0
-	s.runePos = 0
-	for i := 0; i < len(contents); i++ {
-		if contents[i] >= utf8.RuneSelf {
-			// Not ASCII.
-			s.numRunes = utf8.RuneCountInString(contents)
-			_, s.width = utf8.DecodeRuneInString(contents)
-			s.nonASCII = i
-			return s
-		}
-	}
-	// ASCII is simple.  Also, the empty string is ASCII.
-	s.numRunes = len(contents)
-	s.width = 0
-	s.nonASCII = len(contents)
-	return s
-}
-
-// String returns the contents of the String.  This method also means the
-// String is directly printable by fmt.Print.
-func (s *String) String() string {
-	return s.str
-}
-
-// RuneCount returns the number of runes (Unicode code points) in the String.
-func (s *String) RuneCount() int {
-	return s.numRunes
-}
-
-// IsASCII returns a boolean indicating whether the String contains only ASCII bytes.
-func (s *String) IsASCII() bool {
-	return s.width == 0
-}
-
-// Slice returns the string sliced at rune positions [i:j].
-func (s *String) Slice(i, j int) string {
-	// ASCII is easy.  Let the compiler catch the indexing error if there is one.
-	if j < s.nonASCII {
-		return s.str[i:j]
-	}
-	if i < 0 || j > s.numRunes || i > j {
-		panic(sliceOutOfRange)
-	}
-	if i == j {
-		return ""
-	}
-	// For non-ASCII, after At(i), bytePos is always the position of the indexed character.
-	var low, high int
-	switch {
-	case i < s.nonASCII:
-		low = i
-	case i == s.numRunes:
-		low = len(s.str)
-	default:
-		s.At(i)
-		low = s.bytePos
-	}
-	switch {
-	case j == s.numRunes:
-		high = len(s.str)
-	default:
-		s.At(j)
-		high = s.bytePos
-	}
-	return s.str[low:high]
-}
-
-// At returns the rune with index i in the String.  The sequence of runes is the same
-// as iterating over the contents with a "for range" clause.
-func (s *String) At(i int) rune {
-	// ASCII is easy.  Let the compiler catch the indexing error if there is one.
-	if i < s.nonASCII {
-		return rune(s.str[i])
-	}
-
-	// Now we do need to know the index is valid.
-	if i < 0 || i >= s.numRunes {
-		panic(outOfRange)
-	}
-
-	var r rune
-
-	// Five easy common cases: within 1 spot of bytePos/runePos, or the beginning, or the end.
-	// With these cases, all scans from beginning or end work in O(1) time per rune.
-	switch {
-
-	case i == s.runePos-1: // backing up one rune
-		r, s.width = utf8.DecodeLastRuneInString(s.str[0:s.bytePos])
-		s.runePos = i
-		s.bytePos -= s.width
-		return r
-	case i == s.runePos+1: // moving ahead one rune
-		s.runePos = i
-		s.bytePos += s.width
-		fallthrough
-	case i == s.runePos:
-		r, s.width = utf8.DecodeRuneInString(s.str[s.bytePos:])
-		return r
-	case i == 0: // start of string
-		r, s.width = utf8.DecodeRuneInString(s.str)
-		s.runePos = 0
-		s.bytePos = 0
-		return r
-
-	case i == s.numRunes-1: // last rune in string
-		r, s.width = utf8.DecodeLastRuneInString(s.str)
-		s.runePos = i
-		s.bytePos = len(s.str) - s.width
-		return r
-	}
-
-	// We need to do a linear scan.  There are three places to start from:
-	// 1) The beginning
-	// 2) bytePos/runePos.
-	// 3) The end
-	// Choose the closest in rune count, scanning backwards if necessary.
-	forward := true
-	if i < s.runePos {
-		// Between beginning and pos.  Which is closer?
-		// Since both i and runePos are guaranteed >= nonASCII, that's the
-		// lowest location we need to start from.
-		if i < (s.runePos-s.nonASCII)/2 {
-			// Scan forward from beginning
-			s.bytePos, s.runePos = s.nonASCII, s.nonASCII
-		} else {
-			// Scan backwards from where we are
-			forward = false
-		}
-	} else {
-		// Between pos and end.  Which is closer?
-		if i-s.runePos < (s.numRunes-s.runePos)/2 {
-			// Scan forward from pos
-		} else {
-			// Scan backwards from end
-			s.bytePos, s.runePos = len(s.str), s.numRunes
-			forward = false
-		}
-	}
-	if forward {
-		// TODO: Is it much faster to use a range loop for this scan?
-		for {
-			r, s.width = utf8.DecodeRuneInString(s.str[s.bytePos:])
-			if s.runePos == i {
-				break
-			}
-			s.runePos++
-			s.bytePos += s.width
-		}
-	} else {
-		for {
-			r, s.width = utf8.DecodeLastRuneInString(s.str[0:s.bytePos])
-			s.runePos--
-			s.bytePos -= s.width
-			if s.runePos == i {
-				break
-			}
-		}
-	}
-	return r
-}
-
-var outOfRange = errors.New("utf8.String: index out of range")
-var sliceOutOfRange = errors.New("utf8.String: slice index out of range")
diff -Naur gcc-4.8.1.orig/libgo/go/exp/utf8string/string_test.go gcc-4.8.1/libgo/go/exp/utf8string/string_test.go
--- gcc-4.8.1.orig/libgo/go/exp/utf8string/string_test.go	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/utf8string/string_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,123 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package utf8string
-
-import (
-	"math/rand"
-	"testing"
-	"unicode/utf8"
-)
-
-var testStrings = []string{
-	"",
-	"abcd",
-	"â˜ºâ˜»â˜¹",
-	"æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©",
-	"æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©æ—¥aæœ¬bèªžÃ§æ—¥Ã°æœ¬ÃŠèªžÃ¾æ—¥Â¥æœ¬Â¼èªžiæ—¥Â©",
-	"\x80\x80\x80\x80",
-}
-
-func TestScanForwards(t *testing.T) {
-	for _, s := range testStrings {
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for i, expect := range runes {
-			got := str.At(i)
-			if got != expect {
-				t.Errorf("%s[%d]: expected %c (%U); got %c (%U)", s, i, expect, expect, got, got)
-			}
-		}
-	}
-}
-
-func TestScanBackwards(t *testing.T) {
-	for _, s := range testStrings {
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for i := len(runes) - 1; i >= 0; i-- {
-			expect := runes[i]
-			got := str.At(i)
-			if got != expect {
-				t.Errorf("%s[%d]: expected %c (%U); got %c (%U)", s, i, expect, expect, got, got)
-			}
-		}
-	}
-}
-
-func randCount() int {
-	if testing.Short() {
-		return 100
-	}
-	return 100000
-}
-
-func TestRandomAccess(t *testing.T) {
-	for _, s := range testStrings {
-		if len(s) == 0 {
-			continue
-		}
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for j := 0; j < randCount(); j++ {
-			i := rand.Intn(len(runes))
-			expect := runes[i]
-			got := str.At(i)
-			if got != expect {
-				t.Errorf("%s[%d]: expected %c (%U); got %c (%U)", s, i, expect, expect, got, got)
-			}
-		}
-	}
-}
-
-func TestRandomSliceAccess(t *testing.T) {
-	for _, s := range testStrings {
-		if len(s) == 0 || s[0] == '\x80' { // the bad-UTF-8 string fools this simple test
-			continue
-		}
-		runes := []rune(s)
-		str := NewString(s)
-		if str.RuneCount() != len(runes) {
-			t.Errorf("%s: expected %d runes; got %d", s, len(runes), str.RuneCount())
-			break
-		}
-		for k := 0; k < randCount(); k++ {
-			i := rand.Intn(len(runes))
-			j := rand.Intn(len(runes) + 1)
-			if i > j { // include empty strings
-				continue
-			}
-			expect := string(runes[i:j])
-			got := str.Slice(i, j)
-			if got != expect {
-				t.Errorf("%s[%d:%d]: expected %q got %q", s, i, j, expect, got)
-			}
-		}
-	}
-}
-
-func TestLimitSliceAccess(t *testing.T) {
-	for _, s := range testStrings {
-		str := NewString(s)
-		if str.Slice(0, 0) != "" {
-			t.Error("failure with empty slice at beginning")
-		}
-		nr := utf8.RuneCountInString(s)
-		if str.Slice(nr, nr) != "" {
-			t.Error("failure with empty slice at end")
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify.go gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify.go
--- gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify.go	2012-01-12 23:11:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,572 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-// Package winfsnotify allows the user to receive
-// file system event notifications on Windows.
-package winfsnotify
-
-import (
-	"errors"
-	"fmt"
-	"os"
-	"path/filepath"
-	"runtime"
-	"syscall"
-	"unsafe"
-)
-
-// Event is the type of the notification messages
-// received on the watcher's Event channel.
-type Event struct {
-	Mask   uint32 // Mask of events
-	Cookie uint32 // Unique cookie associating related events (for rename)
-	Name   string // File name (optional)
-}
-
-const (
-	opAddWatch = iota
-	opRemoveWatch
-)
-
-const (
-	provisional uint64 = 1 << (32 + iota)
-)
-
-type input struct {
-	op    int
-	path  string
-	flags uint32
-	reply chan error
-}
-
-type inode struct {
-	handle syscall.Handle
-	volume uint32
-	index  uint64
-}
-
-type watch struct {
-	ov     syscall.Overlapped
-	ino    *inode            // i-number
-	path   string            // Directory path
-	mask   uint64            // Directory itself is being watched with these notify flags
-	names  map[string]uint64 // Map of names being watched and their notify flags
-	rename string            // Remembers the old name while renaming a file
-	buf    [4096]byte
-}
-
-type indexMap map[uint64]*watch
-type watchMap map[uint32]indexMap
-
-// A Watcher waits for and receives event notifications
-// for a specific set of files and directories.
-type Watcher struct {
-	port     syscall.Handle // Handle to completion port
-	watches  watchMap       // Map of watches (key: i-number)
-	input    chan *input    // Inputs to the reader are sent on this channel
-	Event    chan *Event    // Events are returned on this channel
-	Error    chan error     // Errors are sent on this channel
-	isClosed bool           // Set to true when Close() is first called
-	quit     chan chan<- error
-	cookie   uint32
-}
-
-// NewWatcher creates and returns a Watcher.
-func NewWatcher() (*Watcher, error) {
-	port, e := syscall.CreateIoCompletionPort(syscall.InvalidHandle, 0, 0, 0)
-	if e != nil {
-		return nil, os.NewSyscallError("CreateIoCompletionPort", e)
-	}
-	w := &Watcher{
-		port:    port,
-		watches: make(watchMap),
-		input:   make(chan *input, 1),
-		Event:   make(chan *Event, 50),
-		Error:   make(chan error),
-		quit:    make(chan chan<- error, 1),
-	}
-	go w.readEvents()
-	return w, nil
-}
-
-// Close closes a Watcher.
-// It sends a message to the reader goroutine to quit and removes all watches
-// associated with the watcher.
-func (w *Watcher) Close() error {
-	if w.isClosed {
-		return nil
-	}
-	w.isClosed = true
-
-	// Send "quit" message to the reader goroutine
-	ch := make(chan error)
-	w.quit <- ch
-	if err := w.wakeupReader(); err != nil {
-		return err
-	}
-	return <-ch
-}
-
-// AddWatch adds path to the watched file set.
-func (w *Watcher) AddWatch(path string, flags uint32) error {
-	if w.isClosed {
-		return errors.New("watcher already closed")
-	}
-	in := &input{
-		op:    opAddWatch,
-		path:  filepath.Clean(path),
-		flags: flags,
-		reply: make(chan error),
-	}
-	w.input <- in
-	if err := w.wakeupReader(); err != nil {
-		return err
-	}
-	return <-in.reply
-}
-
-// Watch adds path to the watched file set, watching all events.
-func (w *Watcher) Watch(path string) error {
-	return w.AddWatch(path, FS_ALL_EVENTS)
-}
-
-// RemoveWatch removes path from the watched file set.
-func (w *Watcher) RemoveWatch(path string) error {
-	in := &input{
-		op:    opRemoveWatch,
-		path:  filepath.Clean(path),
-		reply: make(chan error),
-	}
-	w.input <- in
-	if err := w.wakeupReader(); err != nil {
-		return err
-	}
-	return <-in.reply
-}
-
-func (w *Watcher) wakeupReader() error {
-	e := syscall.PostQueuedCompletionStatus(w.port, 0, 0, nil)
-	if e != nil {
-		return os.NewSyscallError("PostQueuedCompletionStatus", e)
-	}
-	return nil
-}
-
-func getDir(pathname string) (dir string, err error) {
-	attr, e := syscall.GetFileAttributes(syscall.StringToUTF16Ptr(pathname))
-	if e != nil {
-		return "", os.NewSyscallError("GetFileAttributes", e)
-	}
-	if attr&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 {
-		dir = pathname
-	} else {
-		dir, _ = filepath.Split(pathname)
-		dir = filepath.Clean(dir)
-	}
-	return
-}
-
-func getIno(path string) (ino *inode, err error) {
-	h, e := syscall.CreateFile(syscall.StringToUTF16Ptr(path),
-		syscall.FILE_LIST_DIRECTORY,
-		syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE,
-		nil, syscall.OPEN_EXISTING,
-		syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OVERLAPPED, 0)
-	if e != nil {
-		return nil, os.NewSyscallError("CreateFile", e)
-	}
-	var fi syscall.ByHandleFileInformation
-	if e = syscall.GetFileInformationByHandle(h, &fi); e != nil {
-		syscall.CloseHandle(h)
-		return nil, os.NewSyscallError("GetFileInformationByHandle", e)
-	}
-	ino = &inode{
-		handle: h,
-		volume: fi.VolumeSerialNumber,
-		index:  uint64(fi.FileIndexHigh)<<32 | uint64(fi.FileIndexLow),
-	}
-	return ino, nil
-}
-
-// Must run within the I/O thread.
-func (m watchMap) get(ino *inode) *watch {
-	if i := m[ino.volume]; i != nil {
-		return i[ino.index]
-	}
-	return nil
-}
-
-// Must run within the I/O thread.
-func (m watchMap) set(ino *inode, watch *watch) {
-	i := m[ino.volume]
-	if i == nil {
-		i = make(indexMap)
-		m[ino.volume] = i
-	}
-	i[ino.index] = watch
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) addWatch(pathname string, flags uint64) error {
-	dir, err := getDir(pathname)
-	if err != nil {
-		return err
-	}
-	if flags&FS_ONLYDIR != 0 && pathname != dir {
-		return nil
-	}
-	ino, err := getIno(dir)
-	if err != nil {
-		return err
-	}
-	watchEntry := w.watches.get(ino)
-	if watchEntry == nil {
-		if _, e := syscall.CreateIoCompletionPort(ino.handle, w.port, 0, 0); e != nil {
-			syscall.CloseHandle(ino.handle)
-			return os.NewSyscallError("CreateIoCompletionPort", e)
-		}
-		watchEntry = &watch{
-			ino:   ino,
-			path:  dir,
-			names: make(map[string]uint64),
-		}
-		w.watches.set(ino, watchEntry)
-		flags |= provisional
-	} else {
-		syscall.CloseHandle(ino.handle)
-	}
-	if pathname == dir {
-		watchEntry.mask |= flags
-	} else {
-		watchEntry.names[filepath.Base(pathname)] |= flags
-	}
-	if err = w.startRead(watchEntry); err != nil {
-		return err
-	}
-	if pathname == dir {
-		watchEntry.mask &= ^provisional
-	} else {
-		watchEntry.names[filepath.Base(pathname)] &= ^provisional
-	}
-	return nil
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) removeWatch(pathname string) error {
-	dir, err := getDir(pathname)
-	if err != nil {
-		return err
-	}
-	ino, err := getIno(dir)
-	if err != nil {
-		return err
-	}
-	watch := w.watches.get(ino)
-	if watch == nil {
-		return fmt.Errorf("can't remove non-existent watch for: %s", pathname)
-	}
-	if pathname == dir {
-		w.sendEvent(watch.path, watch.mask&FS_IGNORED)
-		watch.mask = 0
-	} else {
-		name := filepath.Base(pathname)
-		w.sendEvent(watch.path+"/"+name, watch.names[name]&FS_IGNORED)
-		delete(watch.names, name)
-	}
-	return w.startRead(watch)
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) deleteWatch(watch *watch) {
-	for name, mask := range watch.names {
-		if mask&provisional == 0 {
-			w.sendEvent(watch.path+"/"+name, mask&FS_IGNORED)
-		}
-		delete(watch.names, name)
-	}
-	if watch.mask != 0 {
-		if watch.mask&provisional == 0 {
-			w.sendEvent(watch.path, watch.mask&FS_IGNORED)
-		}
-		watch.mask = 0
-	}
-}
-
-// Must run within the I/O thread.
-func (w *Watcher) startRead(watch *watch) error {
-	if e := syscall.CancelIo(watch.ino.handle); e != nil {
-		w.Error <- os.NewSyscallError("CancelIo", e)
-		w.deleteWatch(watch)
-	}
-	mask := toWindowsFlags(watch.mask)
-	for _, m := range watch.names {
-		mask |= toWindowsFlags(m)
-	}
-	if mask == 0 {
-		if e := syscall.CloseHandle(watch.ino.handle); e != nil {
-			w.Error <- os.NewSyscallError("CloseHandle", e)
-		}
-		delete(w.watches[watch.ino.volume], watch.ino.index)
-		return nil
-	}
-	e := syscall.ReadDirectoryChanges(watch.ino.handle, &watch.buf[0],
-		uint32(unsafe.Sizeof(watch.buf)), false, mask, nil, &watch.ov, 0)
-	if e != nil {
-		err := os.NewSyscallError("ReadDirectoryChanges", e)
-		if e == syscall.ERROR_ACCESS_DENIED && watch.mask&provisional == 0 {
-			// Watched directory was probably removed
-			if w.sendEvent(watch.path, watch.mask&FS_DELETE_SELF) {
-				if watch.mask&FS_ONESHOT != 0 {
-					watch.mask = 0
-				}
-			}
-			err = nil
-		}
-		w.deleteWatch(watch)
-		w.startRead(watch)
-		return err
-	}
-	return nil
-}
-
-// readEvents reads from the I/O completion port, converts the
-// received events into Event objects and sends them via the Event channel.
-// Entry point to the I/O thread.
-func (w *Watcher) readEvents() {
-	var (
-		n, key uint32
-		ov     *syscall.Overlapped
-	)
-	runtime.LockOSThread()
-
-	for {
-		e := syscall.GetQueuedCompletionStatus(w.port, &n, &key, &ov, syscall.INFINITE)
-		watch := (*watch)(unsafe.Pointer(ov))
-
-		if watch == nil {
-			select {
-			case ch := <-w.quit:
-				for _, index := range w.watches {
-					for _, watch := range index {
-						w.deleteWatch(watch)
-						w.startRead(watch)
-					}
-				}
-				var err error
-				if e := syscall.CloseHandle(w.port); e != nil {
-					err = os.NewSyscallError("CloseHandle", e)
-				}
-				close(w.Event)
-				close(w.Error)
-				ch <- err
-				return
-			case in := <-w.input:
-				switch in.op {
-				case opAddWatch:
-					in.reply <- w.addWatch(in.path, uint64(in.flags))
-				case opRemoveWatch:
-					in.reply <- w.removeWatch(in.path)
-				}
-			default:
-			}
-			continue
-		}
-
-		switch e {
-		case syscall.ERROR_ACCESS_DENIED:
-			// Watched directory was probably removed
-			w.sendEvent(watch.path, watch.mask&FS_DELETE_SELF)
-			w.deleteWatch(watch)
-			w.startRead(watch)
-			continue
-		case syscall.ERROR_OPERATION_ABORTED:
-			// CancelIo was called on this handle
-			continue
-		default:
-			w.Error <- os.NewSyscallError("GetQueuedCompletionPort", e)
-			continue
-		case nil:
-		}
-
-		var offset uint32
-		for {
-			if n == 0 {
-				w.Event <- &Event{Mask: FS_Q_OVERFLOW}
-				w.Error <- errors.New("short read in readEvents()")
-				break
-			}
-
-			// Point "raw" to the event in the buffer
-			raw := (*syscall.FileNotifyInformation)(unsafe.Pointer(&watch.buf[offset]))
-			buf := (*[syscall.MAX_PATH]uint16)(unsafe.Pointer(&raw.FileName))
-			name := syscall.UTF16ToString(buf[:raw.FileNameLength/2])
-			fullname := watch.path + "/" + name
-
-			var mask uint64
-			switch raw.Action {
-			case syscall.FILE_ACTION_REMOVED:
-				mask = FS_DELETE_SELF
-			case syscall.FILE_ACTION_MODIFIED:
-				mask = FS_MODIFY
-			case syscall.FILE_ACTION_RENAMED_OLD_NAME:
-				watch.rename = name
-			case syscall.FILE_ACTION_RENAMED_NEW_NAME:
-				if watch.names[watch.rename] != 0 {
-					watch.names[name] |= watch.names[watch.rename]
-					delete(watch.names, watch.rename)
-					mask = FS_MOVE_SELF
-				}
-			}
-
-			sendNameEvent := func() {
-				if w.sendEvent(fullname, watch.names[name]&mask) {
-					if watch.names[name]&FS_ONESHOT != 0 {
-						delete(watch.names, name)
-					}
-				}
-			}
-			if raw.Action != syscall.FILE_ACTION_RENAMED_NEW_NAME {
-				sendNameEvent()
-			}
-			if raw.Action == syscall.FILE_ACTION_REMOVED {
-				w.sendEvent(fullname, watch.names[name]&FS_IGNORED)
-				delete(watch.names, name)
-			}
-			if w.sendEvent(fullname, watch.mask&toFSnotifyFlags(raw.Action)) {
-				if watch.mask&FS_ONESHOT != 0 {
-					watch.mask = 0
-				}
-			}
-			if raw.Action == syscall.FILE_ACTION_RENAMED_NEW_NAME {
-				fullname = watch.path + "/" + watch.rename
-				sendNameEvent()
-			}
-
-			// Move to the next event in the buffer
-			if raw.NextEntryOffset == 0 {
-				break
-			}
-			offset += raw.NextEntryOffset
-		}
-
-		if err := w.startRead(watch); err != nil {
-			w.Error <- err
-		}
-	}
-}
-
-func (w *Watcher) sendEvent(name string, mask uint64) bool {
-	if mask == 0 {
-		return false
-	}
-	event := &Event{Mask: uint32(mask), Name: name}
-	if mask&FS_MOVE != 0 {
-		if mask&FS_MOVED_FROM != 0 {
-			w.cookie++
-		}
-		event.Cookie = w.cookie
-	}
-	select {
-	case ch := <-w.quit:
-		w.quit <- ch
-	case w.Event <- event:
-	}
-	return true
-}
-
-// String formats the event e in the form
-// "filename: 0xEventMask = FS_ACCESS|FS_ATTRIB_|..."
-func (e *Event) String() string {
-	var events string
-	m := e.Mask
-	for _, b := range eventBits {
-		if m&b.Value != 0 {
-			m &^= b.Value
-			events += "|" + b.Name
-		}
-	}
-	if m != 0 {
-		events += fmt.Sprintf("|%#x", m)
-	}
-	if len(events) > 0 {
-		events = " == " + events[1:]
-	}
-	return fmt.Sprintf("%q: %#x%s", e.Name, e.Mask, events)
-}
-
-func toWindowsFlags(mask uint64) uint32 {
-	var m uint32
-	if mask&FS_ACCESS != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS
-	}
-	if mask&FS_MODIFY != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_LAST_WRITE
-	}
-	if mask&FS_ATTRIB != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES
-	}
-	if mask&(FS_MOVE|FS_CREATE|FS_DELETE) != 0 {
-		m |= syscall.FILE_NOTIFY_CHANGE_FILE_NAME | syscall.FILE_NOTIFY_CHANGE_DIR_NAME
-	}
-	return m
-}
-
-func toFSnotifyFlags(action uint32) uint64 {
-	switch action {
-	case syscall.FILE_ACTION_ADDED:
-		return FS_CREATE
-	case syscall.FILE_ACTION_REMOVED:
-		return FS_DELETE
-	case syscall.FILE_ACTION_MODIFIED:
-		return FS_MODIFY
-	case syscall.FILE_ACTION_RENAMED_OLD_NAME:
-		return FS_MOVED_FROM
-	case syscall.FILE_ACTION_RENAMED_NEW_NAME:
-		return FS_MOVED_TO
-	}
-	return 0
-}
-
-const (
-	// Options for AddWatch
-	FS_ONESHOT = 0x80000000
-	FS_ONLYDIR = 0x1000000
-
-	// Events
-	FS_ACCESS      = 0x1
-	FS_ALL_EVENTS  = 0xfff
-	FS_ATTRIB      = 0x4
-	FS_CLOSE       = 0x18
-	FS_CREATE      = 0x100
-	FS_DELETE      = 0x200
-	FS_DELETE_SELF = 0x400
-	FS_MODIFY      = 0x2
-	FS_MOVE        = 0xc0
-	FS_MOVED_FROM  = 0x40
-	FS_MOVED_TO    = 0x80
-	FS_MOVE_SELF   = 0x800
-
-	// Special events
-	FS_IGNORED    = 0x8000
-	FS_Q_OVERFLOW = 0x4000
-)
-
-var eventBits = []struct {
-	Value uint32
-	Name  string
-}{
-	{FS_ACCESS, "FS_ACCESS"},
-	{FS_ATTRIB, "FS_ATTRIB"},
-	{FS_CREATE, "FS_CREATE"},
-	{FS_DELETE, "FS_DELETE"},
-	{FS_DELETE_SELF, "FS_DELETE_SELF"},
-	{FS_MODIFY, "FS_MODIFY"},
-	{FS_MOVED_FROM, "FS_MOVED_FROM"},
-	{FS_MOVED_TO, "FS_MOVED_TO"},
-	{FS_MOVE_SELF, "FS_MOVE_SELF"},
-	{FS_IGNORED, "FS_IGNORED"},
-	{FS_Q_OVERFLOW, "FS_Q_OVERFLOW"},
-}
diff -Naur gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify_test.go gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify_test.go
--- gcc-4.8.1.orig/libgo/go/exp/winfsnotify/winfsnotify_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/exp/winfsnotify/winfsnotify_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,130 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package winfsnotify
-
-import (
-	"io/ioutil"
-	"os"
-	"sync/atomic"
-	"testing"
-	"time"
-)
-
-func expect(t *testing.T, eventstream <-chan *Event, name string, mask uint32) {
-	t.Logf(`expected: "%s": 0x%x`, name, mask)
-	select {
-	case event := <-eventstream:
-		if event == nil {
-			t.Fatal("nil event received")
-		}
-		t.Logf("received: %s", event)
-		if event.Name != name || event.Mask != mask {
-			t.Fatal("did not receive expected event")
-		}
-	case <-time.After(1 * time.Second):
-		t.Fatal("timed out waiting for event")
-	}
-}
-
-func TestNotifyEvents(t *testing.T) {
-	watcher, err := NewWatcher()
-	if err != nil {
-		t.Fatalf("NewWatcher() failed: %s", err)
-	}
-
-	testDir := "TestNotifyEvents.testdirectory"
-	testFile := testDir + "/TestNotifyEvents.testfile"
-	testFile2 := testFile + ".new"
-	const mask = FS_ALL_EVENTS & ^(FS_ATTRIB|FS_CLOSE) | FS_IGNORED
-
-	// Add a watch for testDir
-	os.RemoveAll(testDir)
-	if err = os.Mkdir(testDir, 0777); err != nil {
-		t.Fatalf("Failed to create test directory: %s", err)
-	}
-	defer os.RemoveAll(testDir)
-	err = watcher.AddWatch(testDir, mask)
-	if err != nil {
-		t.Fatalf("Watcher.Watch() failed: %s", err)
-	}
-
-	// Receive errors on the error channel on a separate goroutine
-	go func() {
-		for err := range watcher.Error {
-			t.Fatalf("error received: %s", err)
-		}
-	}()
-
-	// Create a file
-	file, err := os.Create(testFile)
-	if err != nil {
-		t.Fatalf("creating test file failed: %s", err)
-	}
-	expect(t, watcher.Event, testFile, FS_CREATE)
-
-	err = watcher.AddWatch(testFile, mask)
-	if err != nil {
-		t.Fatalf("Watcher.Watch() failed: %s", err)
-	}
-
-	if _, err = file.WriteString("hello, world"); err != nil {
-		t.Fatalf("failed to write to test file: %s", err)
-	}
-	if err = file.Close(); err != nil {
-		t.Fatalf("failed to close test file: %s", err)
-	}
-	expect(t, watcher.Event, testFile, FS_MODIFY)
-	expect(t, watcher.Event, testFile, FS_MODIFY)
-
-	if err = os.Rename(testFile, testFile2); err != nil {
-		t.Fatalf("failed to rename test file: %s", err)
-	}
-	expect(t, watcher.Event, testFile, FS_MOVED_FROM)
-	expect(t, watcher.Event, testFile2, FS_MOVED_TO)
-	expect(t, watcher.Event, testFile, FS_MOVE_SELF)
-
-	if err = os.RemoveAll(testDir); err != nil {
-		t.Fatalf("failed to remove test directory: %s", err)
-	}
-	expect(t, watcher.Event, testFile2, FS_DELETE_SELF)
-	expect(t, watcher.Event, testFile2, FS_IGNORED)
-	expect(t, watcher.Event, testFile2, FS_DELETE)
-	expect(t, watcher.Event, testDir, FS_DELETE_SELF)
-	expect(t, watcher.Event, testDir, FS_IGNORED)
-
-	t.Log("calling Close()")
-	if err = watcher.Close(); err != nil {
-		t.Fatalf("failed to close watcher: %s", err)
-	}
-}
-
-func TestNotifyClose(t *testing.T) {
-	watcher, _ := NewWatcher()
-	watcher.Close()
-
-	var done int32
-	go func() {
-		watcher.Close()
-		atomic.StoreInt32(&done, 1)
-	}()
-
-	time.Sleep(50 * time.Millisecond)
-	if atomic.LoadInt32(&done) == 0 {
-		t.Fatal("double Close() test failed: second Close() call didn't return")
-	}
-
-	dir, err := ioutil.TempDir("", "wininotify")
-	if err != nil {
-		t.Fatalf("TempDir failed: %s", err)
-	}
-	defer os.RemoveAll(dir)
-
-	err = watcher.Watch(dir)
-	if err == nil {
-		t.Fatal("expected error on Watch() after Close(), got nil")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/fmt/doc.go gcc-4.8.1/libgo/go/fmt/doc.go
--- gcc-4.8.1.orig/libgo/go/fmt/doc.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/fmt/doc.go	2013-07-16 01:55:04.520470000 -0500
@@ -74,7 +74,8 @@
 		-	pad with spaces on the right rather than the left (left-justify the field)
 		#	alternate format: add leading 0 for octal (%#o), 0x for hex (%#x);
 			0X for hex (%#X); suppress 0x for %p (%#p);
-			print a raw (backquoted) string if possible for %q (%#q);
+			for %q, print a raw (backquoted) string if strconv.CanBackquote
+			returns true;
 			write e.g. U+0078 'x' if the character is printable for %U (%#U).
 		' '	(space) leave a space for elided sign in numbers (% d);
 			put spaces between bytes printing strings or slices in hex (% x, % X)
@@ -137,6 +138,16 @@
 	by a single character (the verb) and end with a parenthesized
 	description.
 
+	If an Error or String method triggers a panic when called by a
+	print routine, the fmt package reformats the error message
+	from the panic, decorating it with an indication that it came
+	through the fmt package.  For example, if a String method
+	calls panic("bad"), the resulting formatted message will look
+	like
+		%s(PANIC=bad)
+
+	The %s just shows the print verb in use when the failure
+	occurred.
 
 	Scanning
 
diff -Naur gcc-4.8.1.orig/libgo/go/fmt/fmt_test.go gcc-4.8.1/libgo/go/fmt/fmt_test.go
--- gcc-4.8.1.orig/libgo/go/fmt/fmt_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/fmt/fmt_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,7 +9,7 @@
 	. "fmt"
 	"io"
 	"math"
-	"runtime" // for the malloc count test only
+	"runtime"
 	"strings"
 	"testing"
 	"time"
@@ -105,6 +105,9 @@
 	return "String(p)"
 }
 
+var barray = [5]renamedUint8{1, 2, 3, 4, 5}
+var bslice = barray[:]
+
 var b byte
 
 var fmttests = []struct {
@@ -176,6 +179,8 @@
 	{"%.3q", "æ—¥æœ¬èªžæ—¥æœ¬èªž", `"æ—¥æœ¬èªž"`},
 	{"%.3q", []byte("æ—¥æœ¬èªžæ—¥æœ¬èªž"), `"æ—¥æœ¬èªž"`},
 	{"%10.1q", "æ—¥æœ¬èªžæ—¥æœ¬èªž", `       "æ—¥"`},
+	{"%10v", nil, "     <nil>"},
+	{"%-10v", nil, "<nil>     "},
 
 	// integers
 	{"%d", 12345, "12345"},
@@ -332,14 +337,18 @@
 	// arrays
 	{"%v", array, "[1 2 3 4 5]"},
 	{"%v", iarray, "[1 hello 2.5 <nil>]"},
+	{"%v", barray, "[1 2 3 4 5]"},
 	{"%v", &array, "&[1 2 3 4 5]"},
 	{"%v", &iarray, "&[1 hello 2.5 <nil>]"},
+	{"%v", &barray, "&[1 2 3 4 5]"},
 
 	// slices
 	{"%v", slice, "[1 2 3 4 5]"},
 	{"%v", islice, "[1 hello 2.5 <nil>]"},
+	{"%v", bslice, "[1 2 3 4 5]"},
 	{"%v", &slice, "&[1 2 3 4 5]"},
 	{"%v", &islice, "&[1 hello 2.5 <nil>]"},
+	{"%v", &bslice, "&[1 2 3 4 5]"},
 
 	// complexes with %v
 	{"%v", 1 + 2i, "(1+2i)"},
@@ -382,6 +391,8 @@
 	{"%#v", map[int]byte(nil), `map[int]uint8(nil)`},
 	{"%#v", map[int]byte{}, `map[int]uint8{}`},
 	{"%#v", "foo", `"foo"`},
+	{"%#v", barray, `[5]fmt_test.renamedUint8{0x1, 0x2, 0x3, 0x4, 0x5}`},
+	{"%#v", bslice, `[]fmt_test.renamedUint8{0x1, 0x2, 0x3, 0x4, 0x5}`},
 
 	// slices with other formats
 	{"%#x", []int{1, 2, 15}, `[0x1 0x2 0xf]`},
@@ -407,6 +418,9 @@
 	{"%x", renamedString("thing"), "7468696e67"},
 	{"%d", renamedBytes([]byte{1, 2, 15}), `[1 2 15]`},
 	{"%q", renamedBytes([]byte("hello")), `"hello"`},
+	{"%x", []renamedUint8{'a', 'b', 'c'}, "616263"},
+	{"%s", []renamedUint8{'h', 'e', 'l', 'l', 'o'}, "hello"},
+	{"%q", []renamedUint8{'h', 'e', 'l', 'l', 'o'}, `"hello"`},
 	{"%v", renamedFloat32(22), "22"},
 	{"%v", renamedFloat64(33), "33"},
 	{"%v", renamedComplex64(3 + 4i), "(3+4i)"},
@@ -426,6 +440,8 @@
 	{"%T", renamedComplex128(4 - 3i), "fmt_test.renamedComplex128"},
 	{"%T", intVal, "int"},
 	{"%6T", &intVal, "  *int"},
+	{"%10T", nil, "     <nil>"},
+	{"%-10T", nil, "<nil>     "},
 
 	// %p
 	{"p0=%p", new(int), "p0=0xPTR"},
@@ -481,6 +497,9 @@
 	// causing +2+0i and +3+0i instead of 2+0i and 3+0i.
 	{"%v", []complex64{1, 2, 3}, "[(1+0i) (2+0i) (3+0i)]"},
 	{"%v", []complex128{1, 2, 3}, "[(1+0i) (2+0i) (3+0i)]"},
+
+	// Incomplete format specification caused crash.
+	{"%.", 3, "%!.(int=3)"},
 }
 
 func TestSprintf(t *testing.T) {
@@ -588,19 +607,13 @@
 var _ bytes.Buffer
 
 func TestCountMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
 	for _, mt := range mallocTest {
-		const N = 100
-		memstats := new(runtime.MemStats)
-		runtime.ReadMemStats(memstats)
-		mallocs := 0 - memstats.Mallocs
-		for i := 0; i < N; i++ {
-			mt.fn()
-		}
-		runtime.ReadMemStats(memstats)
-		mallocs += memstats.Mallocs
-		if mallocs/N > uint64(mt.count) {
-			t.Errorf("%s: expected %d mallocs, got %d", mt.desc, mt.count, mallocs/N)
+		mallocs := testing.AllocsPerRun(100, mt.fn)
+		if got, max := mallocs, float64(mt.count); got > max {
+			t.Errorf("%s: got %v allocs, want <=%v", mt.desc, got, max)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/fmt/print.go gcc-4.8.1/libgo/go/fmt/print.go
--- gcc-4.8.1.orig/libgo/go/fmt/print.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/fmt/print.go	2013-07-16 01:55:04.520470000 -0500
@@ -47,7 +47,7 @@
 }
 
 // Formatter is the interface implemented by values with a custom formatter.
-// The implementation of Format may call Sprintf or Fprintf(f) etc.
+// The implementation of Format may call Sprint(f) or Fprint(f) etc.
 // to generate its output.
 type Formatter interface {
 	Format(f State, c rune)
@@ -56,7 +56,8 @@
 // Stringer is implemented by any value that has a String method,
 // which defines the ``native'' format for that value.
 // The String method is used to print values passed as an operand
-// to a %s or %v format or to an unformatted printer such as Print.
+// to any format that accepts a string or to an unformatted printer
+// such as Print.
 type Stringer interface {
 	String() string
 }
@@ -545,10 +546,15 @@
 	}
 }
 
-func (p *pp) fmtBytes(v []byte, verb rune, goSyntax bool, depth int) {
+func (p *pp) fmtBytes(v []byte, verb rune, goSyntax bool, typ reflect.Type, depth int) {
 	if verb == 'v' || verb == 'd' {
 		if goSyntax {
-			p.buf.Write(bytesBytes)
+			if typ == nil {
+				p.buf.Write(bytesBytes)
+			} else {
+				p.buf.WriteString(typ.String())
+				p.buf.WriteByte('{')
+			}
 		} else {
 			p.buf.WriteByte('[')
 		}
@@ -724,7 +730,7 @@
 
 	if field == nil {
 		if verb == 'T' || verb == 'v' {
-			p.buf.Write(nilAngleBytes)
+			p.fmt.pad(nilAngleBytes)
 		} else {
 			p.badVerb(verb)
 		}
@@ -793,7 +799,7 @@
 		p.fmtString(f, verb, goSyntax)
 		wasString = verb == 's' || verb == 'v'
 	case []byte:
-		p.fmtBytes(f, verb, goSyntax, depth)
+		p.fmtBytes(f, verb, goSyntax, nil, depth)
 		wasString = verb == 's'
 	default:
 		// Restore flags in case handleMethods finds a Formatter.
@@ -939,19 +945,22 @@
 		}
 	case reflect.Array, reflect.Slice:
 		// Byte slices are special.
-		if f.Type().Elem().Kind() == reflect.Uint8 {
-			// We know it's a slice of bytes, but we also know it does not have static type
-			// []byte, or it would have been caught above.  Therefore we cannot convert
-			// it directly in the (slightly) obvious way: f.Interface().([]byte); it doesn't have
-			// that type, and we can't write an expression of the right type and do a
-			// conversion because we don't have a static way to write the right type.
-			// So we build a slice by hand.  This is a rare case but it would be nice
-			// if reflection could help a little more.
-			bytes := make([]byte, f.Len())
-			for i := range bytes {
-				bytes[i] = byte(f.Index(i).Uint())
+		if typ := f.Type(); typ.Elem().Kind() == reflect.Uint8 {
+			var bytes []byte
+			if f.Kind() == reflect.Slice {
+				bytes = f.Bytes()
+			} else if f.CanAddr() {
+				bytes = f.Slice(0, f.Len()).Bytes()
+			} else {
+				// We have an array, but we cannot Slice() a non-addressable array,
+				// so we build a slice by hand. This is a rare case but it would be nice
+				// if reflection could help a little more.
+				bytes = make([]byte, f.Len())
+				for i := range bytes {
+					bytes[i] = byte(f.Index(i).Uint())
+				}
 			}
-			p.fmtBytes(bytes, verb, goSyntax, depth)
+			p.fmtBytes(bytes, verb, goSyntax, typ, depth)
 			wasString = verb == 's'
 			break
 		}
@@ -1063,7 +1072,7 @@
 			p.fmt.wid, p.fmt.widPresent, i = parsenum(format, i, end)
 		}
 		// do we have precision?
-		if i < end && format[i] == '.' {
+		if i+1 < end && format[i] == '.' {
 			if format[i+1] == '*' {
 				p.fmt.prec, p.fmt.precPresent, i, fieldnum = intFromArg(a, end, i+1, fieldnum)
 				if !p.fmt.precPresent {
diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter.go gcc-4.8.1/libgo/go/go/ast/filter.go
--- gcc-4.8.1.orig/libgo/go/go/ast/filter.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/ast/filter.go	2013-07-16 01:55:04.520470000 -0500
@@ -284,6 +284,27 @@
 	FilterImportDuplicates
 )
 
+// nameOf returns the function (foo) or method name (foo.bar) for
+// the given function declaration. If the AST is incorrect for the
+// receiver, it assumes a function instead.
+//
+func nameOf(f *FuncDecl) string {
+	if r := f.Recv; r != nil && len(r.List) == 1 {
+		// looks like a correct receiver declaration
+		t := r.List[0].Type
+		// dereference pointer receiver types
+		if p, _ := t.(*StarExpr); p != nil {
+			t = p.X
+		}
+		// the receiver type must be a type name
+		if p, _ := t.(*Ident); p != nil {
+			return p.Name + "." + f.Name.Name
+		}
+		// otherwise assume a function instead
+	}
+	return f.Name.Name
+}
+
 // separator is an empty //-style comment that is interspersed between
 // different comment groups when they are concatenated into a single group
 //
@@ -348,7 +369,7 @@
 	var decls []Decl
 	if ndecls > 0 {
 		decls = make([]Decl, ndecls)
-		funcs := make(map[string]int) // map of global function name -> decls index
+		funcs := make(map[string]int) // map of func name -> decls index
 		i := 0                        // current index
 		n := 0                        // number of filtered entries
 		for _, filename := range filenames {
@@ -365,7 +386,7 @@
 					//            entities (const, type, vars) if
 					//            multiple declarations are common.
 					if f, isFun := d.(*FuncDecl); isFun {
-						name := f.Name.Name
+						name := nameOf(f)
 						if j, exists := funcs[name]; exists {
 							// function declared already
 							if decls[j] != nil && decls[j].(*FuncDecl).Doc == nil {
diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/filter_test.go gcc-4.8.1/libgo/go/go/ast/filter_test.go
--- gcc-4.8.1.orig/libgo/go/go/ast/filter_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/ast/filter_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,86 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// To avoid a cyclic dependency with go/parser, this file is in a separate package.
+
+package ast_test
+
+import (
+	"bytes"
+	"go/ast"
+	"go/format"
+	"go/parser"
+	"go/token"
+	"testing"
+)
+
+const input = `package p
+
+type t1 struct{}
+type t2 struct{}
+
+func f1() {}
+func f1() {}
+func f2() {}
+
+func (*t1) f1() {}
+func (t1) f1() {}
+func (t1) f2() {}
+
+func (t2) f1() {}
+func (t2) f2() {}
+func (x *t2) f2() {}
+`
+
+// Calling ast.MergePackageFiles with ast.FilterFuncDuplicates
+// keeps a duplicate entry with attached documentation in favor
+// of one without, and it favors duplicate entries appearing
+// later in the source over ones appearing earlier. This is why
+// (*t2).f2 is kept and t2.f2 is eliminated in this test case.
+//
+const golden = `package p
+
+type t1 struct{}
+type t2 struct{}
+
+func f1() {}
+func f2() {}
+
+func (t1) f1() {}
+func (t1) f2() {}
+
+func (t2) f1() {}
+
+func (x *t2) f2() {}
+`
+
+func TestFilterDuplicates(t *testing.T) {
+	// parse input
+	fset := token.NewFileSet()
+	file, err := parser.ParseFile(fset, "", input, 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// create package
+	files := map[string]*ast.File{"": file}
+	pkg, err := ast.NewPackage(fset, files, nil, nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// filter
+	merged := ast.MergePackageFiles(pkg, ast.FilterFuncDuplicates)
+
+	// pretty-print
+	var buf bytes.Buffer
+	if err := format.Node(&buf, fset, merged); err != nil {
+		t.Fatal(err)
+	}
+	output := buf.String()
+
+	if output != golden {
+		t.Errorf("incorrect output:\n%s", output)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/go/ast/print.go gcc-4.8.1/libgo/go/go/ast/print.go
--- gcc-4.8.1.orig/libgo/go/go/ast/print.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/go/ast/print.go	2013-07-16 01:55:04.520470000 -0500
@@ -34,7 +34,7 @@
 //
 // A non-nil FieldFilter f may be provided to control the output:
 // struct fields for which f(fieldname, fieldvalue) is true are
-// are printed; all others are filtered from the output. Unexported
+// printed; all others are filtered from the output. Unexported
 // struct fields are never printed.
 //
 func Fprint(w io.Writer, fset *token.FileSet, x interface{}, f FieldFilter) (err error) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/build/build.go gcc-4.8.1/libgo/go/go/build/build.go
--- gcc-4.8.1.orig/libgo/go/go/build/build.go	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/build/build.go	2013-07-16 01:55:04.520470000 -0500
@@ -27,15 +27,31 @@
 
 // A Context specifies the supporting context for a build.
 type Context struct {
-	GOARCH      string   // target architecture
-	GOOS        string   // target operating system
-	GOROOT      string   // Go root
-	GOPATH      string   // Go path
-	CgoEnabled  bool     // whether cgo can be used
-	BuildTags   []string // additional tags to recognize in +build lines
-	InstallTag  string   // package install directory suffix
-	UseAllFiles bool     // use files regardless of +build lines, file names
-	Compiler    string   // compiler to assume when computing target paths
+	GOARCH      string // target architecture
+	GOOS        string // target operating system
+	GOROOT      string // Go root
+	GOPATH      string // Go path
+	CgoEnabled  bool   // whether cgo can be used
+	UseAllFiles bool   // use files regardless of +build lines, file names
+	Compiler    string // compiler to assume when computing target paths
+
+	// The build and release tags specify build constraints
+	// that should be considered satisfied when processing +build lines.
+	// Clients creating a new context may customize BuildTags, which
+	// defaults to empty, but it is usually an error to customize ReleaseTags,
+	// which defaults to the list of Go releases the current release is compatible with.
+	// In addition to the BuildTags and ReleaseTags, build constraints
+	// consider the values of GOARCH and GOOS as satisfied tags.
+	BuildTags   []string
+	ReleaseTags []string
+
+	// The install suffix specifies a suffix to use in the name of the installation
+	// directory. By default it is empty, but custom builds that need to keep
+	// their outputs separate can set InstallSuffix to do so. For example, when
+	// using the race detector, the go command uses InstallSuffix = "race", so
+	// that on a Linux/386 system, packages are written to a directory named
+	// "linux_386_race" instead of the usual "linux_386".
+	InstallSuffix string
 
 	// By default, Import uses the operating system's file system calls
 	// to read directories and files.  To read from other sources,
@@ -117,12 +133,27 @@
 		return f(root, dir)
 	}
 
-	if p, err := filepath.EvalSymlinks(root); err == nil {
-		root = p
+	// Try using paths we received.
+	if rel, ok = hasSubdir(root, dir); ok {
+		return
 	}
-	if p, err := filepath.EvalSymlinks(dir); err == nil {
-		dir = p
+
+	// Try expanding symlinks and comparing
+	// expanded against unexpanded and
+	// expanded against expanded.
+	rootSym, _ := filepath.EvalSymlinks(root)
+	dirSym, _ := filepath.EvalSymlinks(dir)
+
+	if rel, ok = hasSubdir(rootSym, dir); ok {
+		return
 	}
+	if rel, ok = hasSubdir(root, dirSym); ok {
+		return
+	}
+	return hasSubdir(rootSym, dirSym)
+}
+
+func hasSubdir(root, dir string) (rel string, ok bool) {
 	const sep = string(filepath.Separator)
 	root = filepath.Clean(root)
 	if !strings.HasSuffix(root, sep) {
@@ -181,6 +212,21 @@
 			// Do not get confused by this common mistake.
 			continue
 		}
+		if strings.HasPrefix(p, "~") {
+			// Path segments starting with ~ on Unix are almost always
+			// users who have incorrectly quoted ~ while setting GOPATH,
+			// preventing it from expanding to $HOME.
+			// The situation is made more confusing by the fact that
+			// bash allows quoted ~ in $PATH (most shells do not).
+			// Do not get confused by this, and do not try to use the path.
+			// It does not exist, and printing errors about it confuses
+			// those users even more, because they think "sure ~ exists!".
+			// The go command diagnoses this situation and prints a
+			// useful error.
+			// On Windows, ~ is used in short names, such as c:\progra~1
+			// for c:\program files.
+			continue
+		}
 		all = append(all, p)
 	}
 	return all
@@ -216,11 +262,13 @@
 	"darwin/amd64":  true,
 	"freebsd/386":   true,
 	"freebsd/amd64": true,
+	"freebsd/arm":   true,
 	"linux/386":     true,
 	"linux/amd64":   true,
 	"linux/arm":     true,
 	"netbsd/386":    true,
 	"netbsd/amd64":  true,
+	"netbsd/arm":    true,
 	"openbsd/386":   true,
 	"openbsd/amd64": true,
 	"windows/386":   true,
@@ -236,13 +284,30 @@
 	c.GOPATH = envOr("GOPATH", "")
 	c.Compiler = runtime.Compiler
 
+	// Each major Go release in the Go 1.x series should add a tag here.
+	// Old tags should not be removed. That is, the go1.x tag is present
+	// in all releases >= Go 1.x. Code that requires Go 1.x or later should
+	// say "+build go1.x", and code that should only be built before Go 1.x
+	// (perhaps it is the stub to use in that case) should say "+build !go1.x".
+	//
+	// When we reach Go 1.3 the line will read
+	//	c.ReleaseTags = []string{"go1.1", "go1.2", "go1.3"}
+	// and so on.
+	c.ReleaseTags = []string{"go1.1"}
+
 	switch os.Getenv("CGO_ENABLED") {
 	case "1":
 		c.CgoEnabled = true
 	case "0":
 		c.CgoEnabled = false
 	default:
-		c.CgoEnabled = cgoEnabled[c.GOOS+"/"+c.GOARCH]
+		// golang.org/issue/5141
+		// cgo should be disabled for cross compilation builds
+		if runtime.GOARCH == c.GOARCH && runtime.GOOS == c.GOOS {
+			c.CgoEnabled = cgoEnabled[c.GOOS+"/"+c.GOARCH]
+			break
+		}
+		c.CgoEnabled = false
 	}
 
 	return c
@@ -284,14 +349,15 @@
 	PkgObj     string // installed .a file
 
 	// Source files
-	GoFiles      []string // .go source files (excluding CgoFiles, TestGoFiles, XTestGoFiles)
-	CgoFiles     []string // .go source files that import "C"
-	CFiles       []string // .c source files
-	HFiles       []string // .h source files
-	SFiles       []string // .s source files
-	SysoFiles    []string // .syso system object files to add to archive
-	SwigFiles    []string // .swig files
-	SwigCXXFiles []string // .swigcxx files
+	GoFiles        []string // .go source files (excluding CgoFiles, TestGoFiles, XTestGoFiles)
+	CgoFiles       []string // .go source files that import "C"
+	IgnoredGoFiles []string // .go source files ignored for this build
+	CFiles         []string // .c source files
+	HFiles         []string // .h source files
+	SFiles         []string // .s source files
+	SysoFiles      []string // .syso system object files to add to archive
+	SwigFiles      []string // .swig files
+	SwigCXXFiles   []string // .swigcxx files
 
 	// Cgo directives
 	CgoPkgConfig []string // Cgo pkg-config directives
@@ -365,11 +431,11 @@
 		dir, elem := pathpkg.Split(p.ImportPath)
 		pkga = "pkg/gccgo/" + dir + "lib" + elem + ".a"
 	case "gc":
-		tag := ""
-		if ctxt.InstallTag != "" {
-			tag = "_" + ctxt.InstallTag
+		suffix := ""
+		if ctxt.InstallSuffix != "" {
+			suffix = "_" + ctxt.InstallSuffix
 		}
-		pkga = "pkg/" + ctxt.GOOS + "_" + ctxt.GOARCH + tag + "/" + p.ImportPath + ".a"
+		pkga = "pkg/" + ctxt.GOOS + "_" + ctxt.GOARCH + suffix + "/" + p.ImportPath + ".a"
 	default:
 		// Save error for end of function.
 		pkgerr = fmt.Errorf("import %q: unknown compiler %q", path, ctxt.Compiler)
@@ -426,7 +492,7 @@
 			return p, fmt.Errorf("import %q: cannot import absolute path", path)
 		}
 
-		// tried records the location of unsucsessful package lookups
+		// tried records the location of unsuccessful package lookups
 		var tried struct {
 			goroot string
 			gopath []string
@@ -519,15 +585,20 @@
 			strings.HasPrefix(name, ".") {
 			continue
 		}
-		if !ctxt.UseAllFiles && !ctxt.goodOSArchFile(name) {
-			continue
-		}
 
 		i := strings.LastIndex(name, ".")
 		if i < 0 {
 			i = len(name)
 		}
 		ext := name[i:]
+
+		if !ctxt.UseAllFiles && !ctxt.goodOSArchFile(name) {
+			if ext == ".go" {
+				p.IgnoredGoFiles = append(p.IgnoredGoFiles, name)
+			}
+			continue
+		}
+
 		switch ext {
 		case ".go", ".c", ".s", ".h", ".S", ".swig", ".swigcxx":
 			// tentatively okay - read to make sure
@@ -561,6 +632,9 @@
 
 		// Look for +build comments to accept or reject the file.
 		if !ctxt.UseAllFiles && !ctxt.shouldBuild(data) {
+			if ext == ".go" {
+				p.IgnoredGoFiles = append(p.IgnoredGoFiles, name)
+			}
 			continue
 		}
 
@@ -593,6 +667,7 @@
 
 		pkg := pf.Name.Name
 		if pkg == "documentation" {
+			p.IgnoredGoFiles = append(p.IgnoredGoFiles, name)
 			continue
 		}
 
@@ -929,8 +1004,8 @@
 //	!cgo (if cgo is disabled)
 //	ctxt.Compiler
 //	!ctxt.Compiler
-//	tag (if tag is listed in ctxt.BuildTags)
-//	!tag (if tag is not listed in ctxt.BuildTags)
+//	tag (if tag is listed in ctxt.BuildTags or ctxt.ReleaseTags)
+//	!tag (if tag is not listed in ctxt.BuildTags or ctxt.ReleaseTags)
 //	a comma-separated list of any of these
 //
 func (ctxt *Context) match(name string) bool {
@@ -948,10 +1023,10 @@
 		return len(name) > 1 && !ctxt.match(name[1:])
 	}
 
-	// Tags must be letters, digits, underscores.
+	// Tags must be letters, digits, underscores or dots.
 	// Unlike in Go identifiers, all digits are fine (e.g., "386").
 	for _, c := range name {
-		if !unicode.IsLetter(c) && !unicode.IsDigit(c) && c != '_' {
+		if !unicode.IsLetter(c) && !unicode.IsDigit(c) && c != '_' && c != '.' {
 			return false
 		}
 	}
@@ -969,6 +1044,11 @@
 		if tag == name {
 			return true
 		}
+	}
+	for _, tag := range ctxt.ReleaseTags {
+		if tag == name {
+			return true
+		}
 	}
 
 	return false
diff -Naur gcc-4.8.1.orig/libgo/go/go/build/deps_test.go gcc-4.8.1/libgo/go/go/build/deps_test.go
--- gcc-4.8.1.orig/libgo/go/go/build/deps_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/build/deps_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,10 +5,9 @@
 // This file exercises the import parser but also checks that
 // some low-level packages do not have new dependencies added.
 
-package build_test
+package build
 
 import (
-	"go/build"
 	"sort"
 	"testing"
 )
@@ -48,7 +47,7 @@
 	"math":          {"unsafe"},
 	"math/cmplx":    {"math"},
 	"math/rand":     {"L0", "math"},
-	"sort":          {"math"},
+	"sort":          {},
 	"strconv":       {"L0", "unicode/utf8", "math"},
 	"unicode/utf16": {},
 	"unicode/utf8":  {},
@@ -142,7 +141,7 @@
 	// Packages used by testing must be low-level (L2+fmt).
 	"regexp":         {"L2", "regexp/syntax"},
 	"regexp/syntax":  {"L2"},
-	"runtime/debug":  {"L2", "fmt", "io/ioutil", "os"},
+	"runtime/debug":  {"L2", "fmt", "io/ioutil", "os", "time"},
 	"runtime/pprof":  {"L2", "fmt", "text/tabwriter"},
 	"text/tabwriter": {"L2"},
 
@@ -306,7 +305,7 @@
 	},
 	"crypto/x509": {
 		"L4", "CRYPTO-MATH", "OS", "CGO",
-		"crypto/x509/pkix", "encoding/pem", "encoding/hex", "syscall",
+		"crypto/x509/pkix", "encoding/pem", "encoding/hex", "net", "syscall",
 	},
 	"crypto/x509/pkix": {"L4", "CRYPTO-MATH"},
 
@@ -382,7 +381,7 @@
 	}
 	sort.Strings(all)
 
-	ctxt := build.Default
+	ctxt := Default
 	test := func(mustImport bool) {
 		for _, pkg := range all {
 			if isMacro(pkg) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/build/doc.go gcc-4.8.1/libgo/go/go/build/doc.go
--- gcc-4.8.1.orig/libgo/go/go/build/doc.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/build/doc.go	2013-07-16 01:55:04.520470000 -0500
@@ -91,14 +91,22 @@
 //
 //	- the target operating system, as spelled by runtime.GOOS
 //	- the target architecture, as spelled by runtime.GOARCH
-//	- the compiler being used, currently either "gc" or "gccgo"
+//	- the compiler being used, either "gc" or "gccgo"
 //	- "cgo", if ctxt.CgoEnabled is true
+//	- "go1.1", from Go version 1.1 onward
 //	- any additional words listed in ctxt.BuildTags
 //
 // If a file's name, after stripping the extension and a possible _test suffix,
-// matches *_GOOS, *_GOARCH, or *_GOOS_GOARCH for any known operating
-// system and architecture values, then the file is considered to have an implicit
-// build constraint requiring those terms.
+// matches any of the following patterns:
+//	*_GOOS
+// 	*_GOARCH
+// 	*_GOOS_GOARCH
+// (example: source_windows_amd64.go) or the literals:
+//	GOOS
+// 	GOARCH
+// (example: windows.go) where GOOS and GOARCH represent any known operating
+// system and architecture values respectively, then the file is considered to
+// have an implicit build constraint requiring those terms.
 //
 // To keep a file from being considered for the build:
 //
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/doc.go gcc-4.8.1/libgo/go/go/doc/doc.go
--- gcc-4.8.1.orig/libgo/go/go/doc/doc.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/doc.go	2013-07-16 01:55:04.520470000 -0500
@@ -17,7 +17,10 @@
 	ImportPath string
 	Imports    []string
 	Filenames  []string
-	Bugs       []string
+	Notes      map[string][]*Note
+	// DEPRECATED. For backward compatibility Bugs is still populated,
+	// but all new code should use Notes instead.
+	Bugs []string
 
 	// declarations
 	Consts []*Value
@@ -61,6 +64,16 @@
 	Level int    // embedding level; 0 means not embedded
 }
 
+// A Note represents a marked comment starting with "MARKER(uid): note body".
+// Any note with a marker of 2 or more upper case [A-Z] letters and a uid of
+// at least one character is recognized. The ":" following the uid is optional.
+// Notes are collected in the Package.Notes map indexed by the notes marker.
+type Note struct {
+	Pos, End token.Pos // position range of the comment containing the marker
+	UID      string    // uid found with the marker
+	Body     string    // note body text
+}
+
 // Mode values control the operation of New.
 type Mode int
 
@@ -88,7 +101,8 @@
 		ImportPath: importPath,
 		Imports:    sortedKeys(r.imports),
 		Filenames:  r.filenames,
-		Bugs:       r.bugs,
+		Notes:      r.notes,
+		Bugs:       noteBodies(r.notes["BUG"]),
 		Consts:     sortedValues(r.values, token.CONST),
 		Types:      sortedTypes(r.types, mode&AllMethods != 0),
 		Vars:       sortedValues(r.values, token.VAR),
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example.go gcc-4.8.1/libgo/go/go/doc/example.go
--- gcc-4.8.1.orig/libgo/go/go/doc/example.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/example.go	2013-07-16 01:55:04.520470000 -0500
@@ -18,6 +18,7 @@
 	"unicode/utf8"
 )
 
+// An Example represents an example function found in a source files.
 type Example struct {
 	Name        string // name of the item being exemplified
 	Doc         string // example function doc string
@@ -26,8 +27,11 @@
 	Comments    []*ast.CommentGroup
 	Output      string // expected output
 	EmptyOutput bool   // expect empty output
+	Order       int    // original source code order
 }
 
+// Examples returns the examples found in the files, sorted by Name field.
+// The Order fields record the order in which the examples were encountered.
 func Examples(files ...*ast.File) []*Example {
 	var list []*Example
 	for _, file := range files {
@@ -65,6 +69,7 @@
 				Comments:    file.Comments,
 				Output:      output,
 				EmptyOutput: output == "" && hasOutput,
+				Order:       len(flist),
 			})
 		}
 		if !hasTests && numDecl > 1 && len(flist) == 1 {
@@ -161,6 +166,13 @@
 			ast.Inspect(e.X, inspectFunc)
 			return false
 		}
+		// For key value expressions, only inspect the value
+		// as the key should be resolved by the type of the
+		// composite literal.
+		if e, ok := n.(*ast.KeyValueExpr); ok {
+			ast.Inspect(e.Value, inspectFunc)
+			return false
+		}
 		if id, ok := n.(*ast.Ident); ok {
 			if id.Obj == nil {
 				unresolved[id.Name] = true
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/example_test.go gcc-4.8.1/libgo/go/go/doc/example_test.go
--- gcc-4.8.1.orig/libgo/go/go/doc/example_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -18,6 +18,7 @@
 package foo_test
 
 import (
+	"flag"
 	"fmt"
 	"log"
 	"os/exec"
@@ -35,6 +36,38 @@
 	}
 	fmt.Printf("The date is %s\n", out)
 }
+
+func ExampleKeyValue() {
+	v := struct {
+		a string
+		b int
+	}{
+		a: "A",
+		b: 1,
+	}
+	fmt.Print(v)
+	// Output: a: "A", b: 1
+}
+
+func ExampleKeyValueImport() {
+	f := flag.Flag{
+		Name: "play",
+	}
+	fmt.Print(f)
+	// Output: Name: "play"
+}
+
+var keyValueTopDecl = struct {
+	a string
+	b int
+}{
+	a: "B",
+	b: 2,
+}
+
+func ExampleKeyValueTopDecl() {
+	fmt.Print(keyValueTopDecl)
+}
 `
 
 var exampleTestCases = []struct {
@@ -49,6 +82,20 @@
 		Name: "Import",
 		Play: exampleImportPlay,
 	},
+	{
+		Name:   "KeyValue",
+		Play:   exampleKeyValuePlay,
+		Output: "a: \"A\", b: 1\n",
+	},
+	{
+		Name:   "KeyValueImport",
+		Play:   exampleKeyValueImportPlay,
+		Output: "Name: \"play\"\n",
+	},
+	{
+		Name: "KeyValueTopDecl",
+		Play: "<nil>",
+	},
 }
 
 const exampleHelloPlay = `package main
@@ -78,6 +125,39 @@
 }
 `
 
+const exampleKeyValuePlay = `package main
+
+import (
+	"fmt"
+)
+
+func main() {
+	v := struct {
+		a string
+		b int
+	}{
+		a: "A",
+		b: 1,
+	}
+	fmt.Print(v)
+}
+`
+
+const exampleKeyValueImportPlay = `package main
+
+import (
+	"flag"
+	"fmt"
+)
+
+func main() {
+	f := flag.Flag{
+		Name: "play",
+	}
+	fmt.Print(f)
+}
+`
+
 func TestExamples(t *testing.T) {
 	fs := token.NewFileSet()
 	file, err := parser.ParseFile(fs, "test.go", strings.NewReader(exampleTestFile), parser.ParseComments)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/filter.go gcc-4.8.1/libgo/go/go/doc/filter.go
--- gcc-4.8.1.orig/libgo/go/go/doc/filter.go	2012-02-01 13:26:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/filter.go	2013-07-16 01:55:04.520470000 -0500
@@ -94,7 +94,7 @@
 }
 
 // Filter eliminates documentation for names that don't pass through the filter f.
-// TODO: Recognize "Type.Method" as a name.
+// TODO(gri): Recognize "Type.Method" as a name.
 //
 func (p *Package) Filter(f Filter) {
 	p.Consts = filterValues(p.Consts, f)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/reader.go gcc-4.8.1/libgo/go/go/doc/reader.go
--- gcc-4.8.1.orig/libgo/go/go/doc/reader.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -148,7 +148,7 @@
 	// package properties
 	doc       string // package documentation, if any
 	filenames []string
-	bugs      []string
+	notes     map[string][]*Note
 
 	// declarations
 	imports map[string]int
@@ -400,10 +400,57 @@
 }
 
 var (
-	bug_markers = regexp.MustCompile("^/[/*][ \t]*BUG\\(.*\\):[ \t]*") // BUG(uid):
-	bug_content = regexp.MustCompile("[^ \n\r\t]+")                    // at least one non-whitespace char
+	noteMarker    = `([A-Z][A-Z]+)\(([^)]+)\):?`                    // MARKER(uid), MARKER at least 2 chars, uid at least 1 char
+	noteMarkerRx  = regexp.MustCompile(`^[ \t]*` + noteMarker)      // MARKER(uid) at text start
+	noteCommentRx = regexp.MustCompile(`^/[/*][ \t]*` + noteMarker) // MARKER(uid) at comment start
 )
 
+// readNote collects a single note from a sequence of comments.
+//
+func (r *reader) readNote(list []*ast.Comment) {
+	text := (&ast.CommentGroup{List: list}).Text()
+	if m := noteMarkerRx.FindStringSubmatchIndex(text); m != nil {
+		// The note body starts after the marker.
+		// We remove any formatting so that we don't
+		// get spurious line breaks/indentation when
+		// showing the TODO body.
+		body := clean(text[m[1]:])
+		if body != "" {
+			marker := text[m[2]:m[3]]
+			r.notes[marker] = append(r.notes[marker], &Note{
+				Pos:  list[0].Pos(),
+				End:  list[len(list)-1].End(),
+				UID:  text[m[4]:m[5]],
+				Body: body,
+			})
+		}
+	}
+}
+
+// readNotes extracts notes from comments.
+// A note must start at the beginning of a comment with "MARKER(uid):"
+// and is followed by the note body (e.g., "// BUG(gri): fix this").
+// The note ends at the end of the comment group or at the start of
+// another note in the same comment group, whichever comes first.
+//
+func (r *reader) readNotes(comments []*ast.CommentGroup) {
+	for _, group := range comments {
+		i := -1 // comment index of most recent note start, valid if >= 0
+		list := group.List
+		for j, c := range list {
+			if noteCommentRx.MatchString(c.Text) {
+				if i >= 0 {
+					r.readNote(list[i:j])
+				}
+				i = j
+			}
+		}
+		if i >= 0 {
+			r.readNote(list[i:])
+		}
+	}
+}
+
 // readFile adds the AST for a source file to the reader.
 //
 func (r *reader) readFile(src *ast.File) {
@@ -469,19 +516,8 @@
 		}
 	}
 
-	// collect BUG(...) comments
-	for _, c := range src.Comments {
-		text := c.List[0].Text
-		if m := bug_markers.FindStringIndex(text); m != nil {
-			// found a BUG comment; maybe empty
-			if btxt := text[m[1]:]; bug_content.MatchString(btxt) {
-				// non-empty BUG comment; collect comment without BUG prefix
-				list := append([]*ast.Comment(nil), c.List...) // make a copy
-				list[0].Text = text[m[1]:]
-				r.bugs = append(r.bugs, (&ast.CommentGroup{List: list}).Text())
-			}
-		}
-	}
+	// collect MARKER(...): annotations
+	r.readNotes(src.Comments)
 	src.Comments = nil // consumed unassociated comments - remove from AST
 }
 
@@ -492,6 +528,7 @@
 	r.mode = mode
 	r.types = make(map[string]*namedType)
 	r.funcs = make(methodSet)
+	r.notes = make(map[string][]*Note)
 
 	// sort package files before reading them so that the
 	// result does not depend on map iteration order
@@ -522,10 +559,13 @@
 
 	// copy existing receiver field and set new type
 	newField := *f.Decl.Recv.List[0]
+	origPos := newField.Type.Pos()
 	_, origRecvIsPtr := newField.Type.(*ast.StarExpr)
-	var typ ast.Expr = ast.NewIdent(recvTypeName)
+	newIdent := &ast.Ident{NamePos: origPos, Name: recvTypeName}
+	var typ ast.Expr = newIdent
 	if !embeddedIsPtr && origRecvIsPtr {
-		typ = &ast.StarExpr{X: typ}
+		newIdent.NamePos++ // '*' is one character
+		typ = &ast.StarExpr{Star: origPos, X: newIdent}
 	}
 	newField.Type = typ
 
@@ -750,6 +790,17 @@
 	return list
 }
 
+// noteBodies returns a list of note body strings given a list of notes.
+// This is only used to populate the deprecated Package.Bugs field.
+//
+func noteBodies(notes []*Note) []string {
+	var list []string
+	for _, n := range notes {
+		list = append(list, n.Body)
+	}
+	return list
+}
+
 // ----------------------------------------------------------------------------
 // Predeclared identifiers
 
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a0.go gcc-4.8.1/libgo/go/go/doc/testdata/a0.go
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a0.go	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a0.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,3 +6,35 @@
 package a
 
 //BUG(uid): bug0
+
+//TODO(uid): todo0
+
+// A note with some spaces after it, should be ignored (watch out for
+// emacs modes that remove trailing whitespace).
+//NOTE(uid):
+
+// SECBUG(uid): sec hole 0
+// need to fix asap
+
+// Multiple notes may be in the same comment group and should be
+// recognized individually. Notes may start in the middle of a
+// comment group as long as they start at the beginning of an
+// individual comment.
+//
+// NOTE(foo): 1 of 4 - this is the first line of note 1
+// - note 1 continues on this 2nd line
+// - note 1 continues on this 3rd line
+// NOTE(foo): 2 of 4
+// NOTE(bar): 3 of 4
+/* NOTE(bar): 4 of 4 */
+// - this is the last line of note 4
+//
+//
+
+// NOTE(bam): This note which contains a (parenthesized) subphrase
+//            must appear in its entirety.
+
+// NOTE(xxx) The ':' after the marker and uid is optional.
+
+// NOTE(): NO uid - should not show up.
+// NOTE()  NO uid - should not show up.
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.0.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.0.golden	2012-02-01 13:26:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.0.golden	2013-07-16 01:55:04.520470000 -0500
@@ -8,6 +8,25 @@
 	testdata/a0.go
 	testdata/a1.go
 
+BUGS .Bugs is now deprecated, please use .Notes instead
+	// bug0
+	// bug1
+
 BUGS
-	// bug0 
-	// bug1 
+	// bug0 (uid: uid)
+	// bug1 (uid: uid)
+
+NOTES
+	// 1 of 4 - this is the first line of note 1 - note 1 continues on ... (uid: foo)
+	// 2 of 4 (uid: foo)
+	// 3 of 4 (uid: bar)
+	// 4 of 4 - this is the last line of note 4 (uid: bar)
+	// This note which contains a (parenthesized) subphrase must ... (uid: bam)
+	// The ':' after the marker and uid is optional. (uid: xxx)
+
+SECBUGS
+	// sec hole 0 need to fix asap (uid: uid)
+
+TODOS
+	// todo0 (uid: uid)
+	// todo1 (uid: uid)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a1.go gcc-4.8.1/libgo/go/go/doc/testdata/a1.go
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a1.go	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a1.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,3 +6,7 @@
 package a
 
 //BUG(uid): bug1
+
+//TODO(uid): todo1
+
+//TODO(): ignored
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.1.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.1.golden	2012-02-01 13:26:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.1.golden	2013-07-16 01:55:04.520470000 -0500
@@ -8,6 +8,25 @@
 	testdata/a0.go
 	testdata/a1.go
 
+BUGS .Bugs is now deprecated, please use .Notes instead
+	// bug0
+	// bug1
+
 BUGS
-	// bug0 
-	// bug1 
+	// bug0 (uid: uid)
+	// bug1 (uid: uid)
+
+NOTES
+	// 1 of 4 - this is the first line of note 1 - note 1 continues on ... (uid: foo)
+	// 2 of 4 (uid: foo)
+	// 3 of 4 (uid: bar)
+	// 4 of 4 - this is the last line of note 4 (uid: bar)
+	// This note which contains a (parenthesized) subphrase must ... (uid: bam)
+	// The ':' after the marker and uid is optional. (uid: xxx)
+
+SECBUGS
+	// sec hole 0 need to fix asap (uid: uid)
+
+TODOS
+	// todo0 (uid: uid)
+	// todo1 (uid: uid)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.2.golden gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/a.2.golden	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/testdata/a.2.golden	2013-07-16 01:55:04.520470000 -0500
@@ -8,6 +8,25 @@
 	testdata/a0.go
 	testdata/a1.go
 
+BUGS .Bugs is now deprecated, please use .Notes instead
+	// bug0
+	// bug1
+
 BUGS
-	// bug0 
-	// bug1 
+	// bug0 (uid: uid)
+	// bug1 (uid: uid)
+
+NOTES
+	// 1 of 4 - this is the first line of note 1 - note 1 continues on ... (uid: foo)
+	// 2 of 4 (uid: foo)
+	// 3 of 4 (uid: bar)
+	// 4 of 4 - this is the last line of note 4 (uid: bar)
+	// This note which contains a (parenthesized) subphrase must ... (uid: bam)
+	// The ':' after the marker and uid is optional. (uid: xxx)
+
+SECBUGS
+	// sec hole 0 need to fix asap (uid: uid)
+
+TODOS
+	// todo0 (uid: uid)
+	// todo1 (uid: uid)
diff -Naur gcc-4.8.1.orig/libgo/go/go/doc/testdata/template.txt gcc-4.8.1/libgo/go/go/doc/testdata/template.txt
--- gcc-4.8.1.orig/libgo/go/go/doc/testdata/template.txt	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/doc/testdata/template.txt	2013-07-16 01:55:04.520470000 -0500
@@ -60,6 +60,9 @@
 {{end}}{{end}}{{end}}{{/*
 
 */}}{{with .Bugs}}
-BUGS
+BUGS .Bugs is now deprecated, please use .Notes instead
 {{range .}}	{{synopsis .}}
-{{end}}{{end}}
\ No newline at end of file
+{{end}}{{end}}{{with .Notes}}{{range $marker, $content := .}}
+{{$marker}}S
+{{range $content}}	{{synopsis .Body}} (uid: {{.UID}})
+{{end}}{{end}}{{end}}
\ No newline at end of file
diff -Naur gcc-4.8.1.orig/libgo/go/go/format/format.go gcc-4.8.1/libgo/go/go/format/format.go
--- gcc-4.8.1.orig/libgo/go/go/format/format.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/format/format.go	2013-07-16 01:55:04.520470000 -0500
@@ -69,15 +69,14 @@
 	return config.Fprint(dst, fset, node)
 }
 
-// Source formats src in canonical gofmt style and writes the result to dst
-// or returns an I/O or syntax error. src is expected to be a syntactically
+// Source formats src in canonical gofmt style and returns the result
+// or an (I/O or syntax) error. src is expected to be a syntactically
 // correct Go source file, or a list of Go declarations or statements.
 //
 // If src is a partial source file, the leading and trailing space of src
 // is applied to the result (such that it has the same leading and trailing
-// space as src), and the formatted src is indented by the same amount as
-// the first line of src containing code. Imports are not sorted for partial
-// source files.
+// space as src), and the result is indented by the same amount as the first
+// line of src containing code. Imports are not sorted for partial source files.
 //
 func Source(src []byte) ([]byte, error) {
 	fset := token.NewFileSet()
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/error_test.go gcc-4.8.1/libgo/go/go/parser/error_test.go
--- gcc-4.8.1.orig/libgo/go/go/parser/error_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/parser/error_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -89,8 +89,6 @@
 			prev = pos
 		}
 	}
-
-	panic("unreachable")
 }
 
 // compareErrors compares the map of expected error messages with the list
@@ -139,12 +137,13 @@
 		return
 	}
 
-	_, err = ParseFile(fsetErrs, filename, src, DeclarationErrors)
+	_, err = ParseFile(fsetErrs, filename, src, DeclarationErrors|AllErrors)
 	found, ok := err.(scanner.ErrorList)
 	if err != nil && !ok {
 		t.Error(err)
 		return
 	}
+	found.RemoveMultiples()
 
 	// we are expecting the following errors
 	// (collect these after parsing a file so that it is found in the file set)
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/interface.go gcc-4.8.1/libgo/go/go/parser/interface.go
--- gcc-4.8.1.orig/libgo/go/go/parser/interface.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/parser/interface.go	2013-07-16 01:55:04.520470000 -0500
@@ -52,12 +52,13 @@
 type Mode uint
 
 const (
-	PackageClauseOnly Mode = 1 << iota // parsing stops after package clause
-	ImportsOnly                        // parsing stops after import declarations
-	ParseComments                      // parse comments and add them to AST
-	Trace                              // print a trace of parsed productions
-	DeclarationErrors                  // report declaration errors
-	SpuriousErrors                     // report all (not just the first) errors per line
+	PackageClauseOnly Mode             = 1 << iota // stop parsing after package clause
+	ImportsOnly                                    // stop parsing after import declarations
+	ParseComments                                  // parse comments and add them to AST
+	Trace                                          // print a trace of parsed productions
+	DeclarationErrors                              // report declaration errors
+	SpuriousErrors                                 // same as AllErrors, for backward-compatibility
+	AllErrors         = SpuriousErrors             // report all errors (not just the first 10 on different lines)
 )
 
 // ParseFile parses the source code of a single Go source file and returns
@@ -79,35 +80,39 @@
 // representing the fragments of erroneous source code). Multiple errors
 // are returned via a scanner.ErrorList which is sorted by file position.
 //
-func ParseFile(fset *token.FileSet, filename string, src interface{}, mode Mode) (*ast.File, error) {
+func ParseFile(fset *token.FileSet, filename string, src interface{}, mode Mode) (f *ast.File, err error) {
 	// get source
 	text, err := readSource(filename, src)
 	if err != nil {
 		return nil, err
 	}
 
-	// parse source
 	var p parser
-	p.init(fset, filename, text, mode)
-	f := p.parseFile()
-	if f == nil {
-		// source is not a valid Go source file - satisfy
-		// ParseFile API and return a valid (but) empty
-		// *ast.File
-		f = &ast.File{
-			Name:  new(ast.Ident),
-			Scope: ast.NewScope(nil),
+	defer func() {
+		if e := recover(); e != nil {
+			_ = e.(bailout) // re-panics if it's not a bailout
+		}
+
+		// set result values
+		if f == nil {
+			// source is not a valid Go source file - satisfy
+			// ParseFile API and return a valid (but) empty
+			// *ast.File
+			f = &ast.File{
+				Name:  new(ast.Ident),
+				Scope: ast.NewScope(nil),
+			}
 		}
-	}
 
-	// sort errors
-	if p.mode&SpuriousErrors == 0 {
-		p.errors.RemoveMultiples()
-	} else {
 		p.errors.Sort()
-	}
+		err = p.errors.Err()
+	}()
+
+	// parse source
+	p.init(fset, filename, text, mode)
+	f = p.parseFile()
 
-	return f, p.errors.Err()
+	return
 }
 
 // ParseDir calls ParseFile for the files in the directory specified by path and
@@ -157,16 +162,27 @@
 }
 
 // ParseExpr is a convenience function for obtaining the AST of an expression x.
-// The position information recorded in the AST is undefined.
+// The position information recorded in the AST is undefined. The filename used
+// in error messages is the empty string.
 //
 func ParseExpr(x string) (ast.Expr, error) {
-	// parse x within the context of a complete package for correct scopes;
-	// use //line directive for correct positions in error messages and put
-	// x alone on a separate line (handles line comments), followed by a ';'
-	// to force an error if the expression is incomplete
-	file, err := ParseFile(token.NewFileSet(), "", "package p;func _(){_=\n//line :1\n"+x+"\n;}", 0)
-	if err != nil {
-		return nil, err
+	var p parser
+	p.init(token.NewFileSet(), "", []byte(x), 0)
+
+	// Set up pkg-level scopes to avoid nil-pointer errors.
+	// This is not needed for a correct expression x as the
+	// parser will be ok with a nil topScope, but be cautious
+	// in case of an erroneous x.
+	p.openScope()
+	p.pkgScope = p.topScope
+	e := p.parseRhsOrType()
+	p.closeScope()
+	assert(p.topScope == nil, "unbalanced scopes")
+
+	if p.errors.Len() > 0 {
+		p.errors.Sort()
+		return nil, p.errors.Err()
 	}
-	return file.Decls[0].(*ast.FuncDecl).Body.List[0].(*ast.AssignStmt).Rhs[0], nil
+
+	return e, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser.go gcc-4.8.1/libgo/go/go/parser/parser.go
--- gcc-4.8.1.orig/libgo/go/go/parser/parser.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/parser/parser.go	2013-07-16 01:55:04.520470000 -0500
@@ -48,7 +48,8 @@
 	syncCnt int       // number of calls to syncXXX without progress
 
 	// Non-syntactic parser control
-	exprLev int // < 0: in control clause, >= 0: in expression
+	exprLev int  // < 0: in control clause, >= 0: in expression
+	inRhs   bool // if set, the parser is parsing a rhs expression
 
 	// Ordinary identifier scopes
 	pkgScope   *ast.Scope        // pkgScope.Outer == nil
@@ -340,8 +341,26 @@
 	}
 }
 
+// A bailout panic is raised to indicate early termination.
+type bailout struct{}
+
 func (p *parser) error(pos token.Pos, msg string) {
-	p.errors.Add(p.file.Position(pos), msg)
+	epos := p.file.Position(pos)
+
+	// If AllErrors is not set, discard errors reported on the same line
+	// as the last recorded error and stop parsing if there are more than
+	// 10 errors.
+	if p.mode&AllErrors == 0 {
+		n := len(p.errors)
+		if n > 0 && p.errors[n-1].Pos.Line == epos.Line {
+			return // discard - likely a spurious error
+		}
+		if n > 10 {
+			panic(bailout{})
+		}
+	}
+
+	p.errors.Add(epos, msg)
 }
 
 func (p *parser) errorExpected(pos token.Pos, msg string) {
@@ -521,6 +540,8 @@
 }
 
 func (p *parser) parseLhsList() []ast.Expr {
+	old := p.inRhs
+	p.inRhs = false
 	list := p.parseExprList(true)
 	switch p.tok {
 	case token.DEFINE:
@@ -542,11 +563,16 @@
 			p.resolve(x)
 		}
 	}
+	p.inRhs = old
 	return list
 }
 
 func (p *parser) parseRhsList() []ast.Expr {
-	return p.parseExprList(false)
+	old := p.inRhs
+	p.inRhs = true
+	list := p.parseExprList(false)
+	p.inRhs = old
+	return list
 }
 
 // ----------------------------------------------------------------------------
@@ -1211,11 +1237,11 @@
 	// In the former case we are done, and in the latter case we don't
 	// care because the type checker will do a separate field lookup.
 	//
-	// If the key does not resolve, it must a) be defined at the top-
-	// level in another file of the same package or be undeclared, or
-	// b) it is a struct field. In the former case, the type checker
-	// can do a top-level lookup, and in the latter case it will do a
-	// separate field lookup.
+	// If the key does not resolve, it a) must be defined at the top
+	// level in another file of the same package, the universe scope, or be
+	// undeclared; or b) it is a struct field. In the former case, the type
+	// checker can do a top-level lookup, and in the latter case it will do
+	// a separate field lookup.
 	x := p.checkExpr(p.parseExpr(keyOk))
 	if keyOk {
 		if p.tok == token.COLON {
@@ -1487,6 +1513,14 @@
 	return p.parsePrimaryExpr(lhs)
 }
 
+func (p *parser) tokPrec() (token.Token, int) {
+	tok := p.tok
+	if p.inRhs && tok == token.ASSIGN {
+		tok = token.EQL
+	}
+	return tok, tok.Precedence()
+}
+
 // If lhs is set and the result is an identifier, it is not resolved.
 func (p *parser) parseBinaryExpr(lhs bool, prec1 int) ast.Expr {
 	if p.trace {
@@ -1494,10 +1528,13 @@
 	}
 
 	x := p.parseUnaryExpr(lhs)
-	for prec := p.tok.Precedence(); prec >= prec1; prec-- {
-		for p.tok.Precedence() == prec {
-			pos, op := p.pos, p.tok
-			p.next()
+	for _, prec := p.tokPrec(); prec >= prec1; prec-- {
+		for {
+			op, oprec := p.tokPrec()
+			if oprec != prec {
+				break
+			}
+			pos := p.expect(op)
 			if lhs {
 				p.resolve(x)
 				lhs = false
@@ -1523,11 +1560,19 @@
 }
 
 func (p *parser) parseRhs() ast.Expr {
-	return p.checkExpr(p.parseExpr(false))
+	old := p.inRhs
+	p.inRhs = true
+	x := p.checkExpr(p.parseExpr(false))
+	p.inRhs = old
+	return x
 }
 
 func (p *parser) parseRhsOrType() ast.Expr {
-	return p.checkExprOrType(p.parseExpr(false))
+	old := p.inRhs
+	p.inRhs = true
+	x := p.checkExprOrType(p.parseExpr(false))
+	p.inRhs = old
+	return x
 }
 
 // ----------------------------------------------------------------------------
@@ -2073,7 +2118,7 @@
 // ----------------------------------------------------------------------------
 // Declarations
 
-type parseSpecFunction func(p *parser, doc *ast.CommentGroup, keyword token.Token, iota int) ast.Spec
+type parseSpecFunction func(doc *ast.CommentGroup, keyword token.Token, iota int) ast.Spec
 
 func isValidImport(lit string) bool {
 	const illegalChars = `!"#$%&'()*,:;<=>?[\]^{|}` + "`\uFFFD"
@@ -2192,12 +2237,12 @@
 		lparen = p.pos
 		p.next()
 		for iota := 0; p.tok != token.RPAREN && p.tok != token.EOF; iota++ {
-			list = append(list, f(p, p.leadComment, keyword, iota))
+			list = append(list, f(p.leadComment, keyword, iota))
 		}
 		rparen = p.expect(token.RPAREN)
 		p.expectSemi()
 	} else {
-		list = append(list, f(p, nil, keyword, 0))
+		list = append(list, f(nil, keyword, 0))
 	}
 
 	return &ast.GenDecl{
@@ -2298,10 +2343,10 @@
 	var f parseSpecFunction
 	switch p.tok {
 	case token.CONST, token.VAR:
-		f = (*parser).parseValueSpec
+		f = p.parseValueSpec
 
 	case token.TYPE:
-		f = (*parser).parseTypeSpec
+		f = p.parseTypeSpec
 
 	case token.FUNC:
 		return p.parseFuncDecl()
@@ -2353,7 +2398,7 @@
 	if p.mode&PackageClauseOnly == 0 {
 		// import decls
 		for p.tok == token.IMPORT {
-			decls = append(decls, p.parseGenDecl(token.IMPORT, (*parser).parseImportSpec))
+			decls = append(decls, p.parseGenDecl(token.IMPORT, p.parseImportSpec))
 		}
 
 		if p.mode&ImportsOnly == 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/parser_test.go gcc-4.8.1/libgo/go/go/parser/parser_test.go
--- gcc-4.8.1.orig/libgo/go/go/parser/parser_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/go/parser/parser_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -68,7 +68,7 @@
 
 func TestParseExpr(t *testing.T) {
 	// just kicking the tires:
-	// a valid expression
+	// a valid arithmetic expression
 	src := "a + b"
 	x, err := ParseExpr(src)
 	if err != nil {
@@ -79,6 +79,17 @@
 		t.Errorf("ParseExpr(%s): got %T, expected *ast.BinaryExpr", src, x)
 	}
 
+	// a valid type expression
+	src = "struct{x *int}"
+	x, err = ParseExpr(src)
+	if err != nil {
+		t.Fatalf("ParseExpr(%s): %v", src, err)
+	}
+	// sanity check
+	if _, ok := x.(*ast.StructType); !ok {
+		t.Errorf("ParseExpr(%s): got %T, expected *ast.StructType", src, x)
+	}
+
 	// an invalid expression
 	src = "a + *"
 	_, err = ParseExpr(src)
diff -Naur gcc-4.8.1.orig/libgo/go/go/parser/short_test.go gcc-4.8.1/libgo/go/go/parser/short_test.go
--- gcc-4.8.1.orig/libgo/go/go/parser/short_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/parser/short_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -71,6 +71,9 @@
 	`package p; func f() { _ = (<-<- /* ERROR "expected 'chan'" */ chan int)(nil) };`,
 	`package p; func f() { _ = (<-chan<-chan<-chan<-chan<-chan<- /* ERROR "expected channel type" */ int)(nil) };`,
 	`package p; func f() { var t []int; t /* ERROR "expected identifier on left side of :=" */ [0] := 0 };`,
+	`package p; func f() { if x := g(); x = /* ERROR "expected '=='" */ 0 {}};`,
+	`package p; func f() { _ = x = /* ERROR "expected '=='" */ 0 {}};`,
+	`package p; func f() { _ = 1 == func()int { var x bool; x = x = /* ERROR "expected '=='" */ true; return x }() };`,
 }
 
 func TestInvalid(t *testing.T) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/nodes.go gcc-4.8.1/libgo/go/go/printer/nodes.go
--- gcc-4.8.1.orig/libgo/go/go/printer/nodes.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/printer/nodes.go	2013-07-16 01:55:04.520470000 -0500
@@ -271,12 +271,12 @@
 			// if there are multiple parameter names for this par
 			// or the type is on a separate line)
 			var parLineBeg int
-			var parLineEnd = p.lineFor(par.Type.Pos())
 			if len(par.Names) > 0 {
 				parLineBeg = p.lineFor(par.Names[0].Pos())
 			} else {
-				parLineBeg = parLineEnd
+				parLineBeg = p.lineFor(par.Type.Pos())
 			}
+			var parLineEnd = p.lineFor(par.Type.End())
 			// separating "," if needed
 			needsLinebreak := 0 < prevLine && prevLine < parLineBeg
 			if i > 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/printer.go gcc-4.8.1/libgo/go/go/printer/printer.go
--- gcc-4.8.1.orig/libgo/go/go/printer/printer.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/printer/printer.go	2013-07-16 01:55:04.520470000 -0500
@@ -395,35 +395,6 @@
 	}
 }
 
-// Split comment text into lines
-// (using strings.Split(text, "\n") is significantly slower for
-// this specific purpose, as measured with: go test -bench=Print)
-//
-func split(text string) []string {
-	// count lines (comment text never ends in a newline)
-	n := 1
-	for i := 0; i < len(text); i++ {
-		if text[i] == '\n' {
-			n++
-		}
-	}
-
-	// split
-	lines := make([]string, n)
-	n = 0
-	i := 0
-	for j := 0; j < len(text); j++ {
-		if text[j] == '\n' {
-			lines[n] = text[i:j] // exclude newline
-			i = j + 1            // discard newline
-			n++
-		}
-	}
-	lines[n] = text[i:]
-
-	return lines
-}
-
 // Returns true if s contains only white space
 // (only tabs and blanks can appear in the printer's context).
 //
@@ -551,9 +522,7 @@
 			}
 			// Shorten the computed common prefix by the length of
 			// suffix, if it is found as suffix of the prefix.
-			if strings.HasSuffix(prefix, string(suffix)) {
-				prefix = prefix[0 : len(prefix)-len(suffix)]
-			}
+			prefix = strings.TrimSuffix(prefix, string(suffix))
 		}
 	}
 
@@ -618,7 +587,7 @@
 
 	// for /*-style comments, print line by line and let the
 	// write function take care of the proper indentation
-	lines := split(text)
+	lines := strings.Split(text, "\n")
 
 	// The comment started in the first column but is going
 	// to be indented. For an idempotent result, add indentation
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.golden gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden
--- gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.golden	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.golden	2013-07-16 01:55:04.520470000 -0500
@@ -912,3 +912,28 @@
 func _(x chan<- (chan int))
 func _(x chan<- (chan int))
 func _(x chan<- (chan int))
+
+// don't introduce comma after last parameter if the closing ) is on the same line
+// even if the parameter type itself is multi-line (test cases from issue 4533)
+func _(...interface{})
+func _(...interface {
+	m()
+	n()
+})	// no extra comma between } and )
+
+func (t *T) _(...interface{})
+func (t *T) _(...interface {
+	m()
+	n()
+})	// no extra comma between } and )
+
+func _(interface{})
+func _(interface {
+	m()
+})	// no extra comma between } and )
+
+func _(struct{})
+func _(struct {
+	x	int
+	y	int
+})	// no extra comma between } and )
diff -Naur gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.input gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input
--- gcc-4.8.1.orig/libgo/go/go/printer/testdata/declarations.input	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/printer/testdata/declarations.input	2013-07-16 01:55:04.520470000 -0500
@@ -921,3 +921,28 @@
 func _(x chan<-(chan int))
 func _(x (chan<-(chan int)))
 func _(x ((((chan<-(chan int))))))
+
+// don't introduce comma after last parameter if the closing ) is on the same line
+// even if the parameter type itself is multi-line (test cases from issue 4533)
+func _(...interface{})
+func _(...interface {
+	m()
+	n()
+}) // no extra comma between } and )
+
+func (t *T) _(...interface{})
+func (t *T) _(...interface {
+	m()
+	n()
+}) // no extra comma between } and )
+
+func _(interface{})
+func _(interface {
+	m()
+}) // no extra comma between } and )
+
+func _(struct{})
+func _(struct {
+	x int
+	y int
+}) // no extra comma between } and )
diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner.go gcc-4.8.1/libgo/go/go/scanner/scanner.go
--- gcc-4.8.1.orig/libgo/go/go/scanner/scanner.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/go/scanner/scanner.go	2013-07-16 01:55:04.520470000 -0500
@@ -48,6 +48,8 @@
 	ErrorCount int // number of errors encountered
 }
 
+const bom = 0xFEFF // byte order mark, only permitted as very first character
+
 // Read the next Unicode char into s.ch.
 // s.ch < 0 means end-of-file.
 //
@@ -67,6 +69,8 @@
 			r, w = utf8.DecodeRune(s.src[s.rdOffset:])
 			if r == utf8.RuneError && w == 1 {
 				s.error(s.offset, "illegal UTF-8 encoding")
+			} else if r == bom && s.offset > 0 {
+				s.error(s.offset, "illegal byte order mark")
 			}
 		}
 		s.rdOffset += w
@@ -125,8 +129,8 @@
 	s.ErrorCount = 0
 
 	s.next()
-	if s.ch == '\uFEFF' {
-		s.next() // ignore BOM
+	if s.ch == bom {
+		s.next() // ignore BOM at file beginning
 	}
 }
 
@@ -713,7 +717,10 @@
 		case '|':
 			tok = s.switch3(token.OR, token.OR_ASSIGN, '|', token.LOR)
 		default:
-			s.error(s.file.Offset(pos), fmt.Sprintf("illegal character %#U", ch))
+			// next reports unexpected BOMs - don't repeat
+			if ch != bom {
+				s.error(s.file.Offset(pos), fmt.Sprintf("illegal character %#U", ch))
+			}
 			insertSemi = s.insertSemi // preserve insertSemi info
 			tok = token.ILLEGAL
 			lit = string(ch)
diff -Naur gcc-4.8.1.orig/libgo/go/go/scanner/scanner_test.go gcc-4.8.1/libgo/go/go/scanner/scanner_test.go
--- gcc-4.8.1.orig/libgo/go/go/scanner/scanner_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/go/scanner/scanner_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -695,7 +695,10 @@
 	{"0X", token.INT, 0, "illegal hexadecimal number"},
 	{"\"abc\x00def\"", token.STRING, 4, "illegal character NUL"},
 	{"\"abc\x80def\"", token.STRING, 4, "illegal UTF-8 encoding"},
-	{"\ufeff\ufeff", token.ILLEGAL, 3, "illegal character U+FEFF"}, // only first BOM is ignored
+	{"\ufeff\ufeff", token.ILLEGAL, 3, "illegal byte order mark"},            // only first BOM is ignored
+	{"//\ufeff", token.COMMENT, 2, "illegal byte order mark"},                // only first BOM is ignored
+	{"'\ufeff" + `'`, token.CHAR, 1, "illegal byte order mark"},              // only first BOM is ignored
+	{`"` + "abc\ufeffdef" + `"`, token.STRING, 4, "illegal byte order mark"}, // only first BOM is ignored
 }
 
 func TestScanErrors(t *testing.T) {
diff -Naur gcc-4.8.1.orig/libgo/go/go/token/token.go gcc-4.8.1/libgo/go/go/token/token.go
--- gcc-4.8.1.orig/libgo/go/go/token/token.go	2012-01-25 14:56:26.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/token/token.go	2013-07-16 01:55:04.520470000 -0500
@@ -243,8 +243,8 @@
 // A set of constants for precedence-based expression parsing.
 // Non-operators have lowest precedence, followed by operators
 // starting with precedence 1 up to unary operators. The highest
-// precedence corresponds serves as "catch-all" precedence for
-// selector, indexing, and other operator and delimiter tokens.
+// precedence serves as "catch-all" precedence for selector,
+// indexing, and other operator and delimiter tokens.
 //
 const (
 	LowestPrec  = 0 // non-operators
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/api.go gcc-4.8.1/libgo/go/go/types/api.go
--- gcc-4.8.1.orig/libgo/go/go/types/api.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/api.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,96 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package types declares the data structures for representing
-// Go types and implements typechecking of package files.
-//
-// WARNING: THE TYPES API IS SUBJECT TO CHANGE.
-//
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-// A Context specifies the supporting context for type checking.
-type Context struct {
-	IntSize int64 // size in bytes of int and uint values
-	PtrSize int64 // size in bytes of pointers
-
-	// If Error is not nil, it is called with each error found
-	// during type checking. Most error messages have accurate
-	// position information; those error strings are formatted
-	// filename:line:column: message.
-	Error func(err error)
-
-	// If Ident is not nil, it is called for each identifier id
-	// denoting an Object in the files provided to Check, and
-	// obj is the denoted object.
-	// Ident is not called for fields and methods in struct or
-	// interface types or composite literals, or for blank (_)
-	// or dot (.) identifiers in dot-imports.
-	// TODO(gri) Consider making Fields and Methods ordinary
-	// Objects - than we could lift this restriction.
-	Ident func(id *ast.Ident, obj Object)
-
-	// If Expr is not nil, it is called for each expression x that is
-	// type-checked: typ is the expression type, and val is the value
-	// if x is constant, val is nil otherwise.
-	//
-	// Constants are represented as follows:
-	//
-	//	bool     ->  bool
-	//	numeric  ->  int64, *big.Int, *big.Rat, Complex
-	//	string   ->  string
-	//	nil      ->  NilType
-	//
-	// Constant values are normalized, that is, they are represented
-	// using the "smallest" possible type that can represent the value.
-	// For instance, 1.0 is represented as an int64 because it can be
-	// represented accurately as an int64.
-	Expr func(x ast.Expr, typ Type, val interface{})
-
-	// If Import is not nil, it is used instead of GcImport.
-	Import Importer
-}
-
-// An Importer resolves import paths to Package objects.
-// The imports map records the packages already imported,
-// indexed by package id (canonical import path).
-// An Importer must determine the canonical import path and
-// check the map to see if it is already present in the imports map.
-// If so, the Importer can return the map entry.  Otherwise, the
-// Importer should load the package data for the given path into
-// a new *Package, record pkg in the imports map, and then
-// return pkg.
-type Importer func(imports map[string]*Package, path string) (pkg *Package, err error)
-
-// Default is the default context for type checking.
-var Default = Context{
-	// TODO(gri) Perhaps this should depend on GOARCH?
-	IntSize: 8,
-	PtrSize: 8,
-}
-
-// Check resolves and typechecks a set of package files within the given
-// context. The package files' ASTs are augmented by assigning types to
-// ast.Objects. If there are no errors, Check returns the package, otherwise
-// it returns the first error. If the context's Error handler is nil,
-// Check terminates as soon as the first error is encountered.
-//
-// CAUTION: At the moment, the returned *ast.Package only contains the package
-//          name and scope - the other fields are not set up. The returned
-//          *Package contains the name and imports (but no scope yet). Once
-//          we have the scope moved from *ast.Scope to *Scope, only *Package
-//          will be returned.
-//
-func (ctxt *Context) Check(fset *token.FileSet, files []*ast.File) (*Package, error) {
-	return check(ctxt, fset, files)
-}
-
-// Check is shorthand for Default.Check.
-func Check(fset *token.FileSet, files []*ast.File) (*Package, error) {
-	return Default.Check(fset, files)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/builtins.go gcc-4.8.1/libgo/go/go/types/builtins.go
--- gcc-4.8.1.orig/libgo/go/go/types/builtins.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/builtins.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,457 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of builtin function calls.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-// builtin typechecks a built-in call. The built-in type is bin, and iota is the current
-// value of iota or -1 if iota doesn't have a value in the current context. The result
-// of the call is returned via x. If the call has type errors, the returned x is marked
-// as invalid (x.mode == invalid).
-//
-func (check *checker) builtin(x *operand, call *ast.CallExpr, bin *builtin, iota int) {
-	args := call.Args
-	id := bin.id
-
-	// declare before goto's
-	var arg0 ast.Expr // first argument, if present
-
-	// check argument count
-	n := len(args)
-	msg := ""
-	if n < bin.nargs {
-		msg = "not enough"
-	} else if !bin.isVariadic && n > bin.nargs {
-		msg = "too many"
-	}
-	if msg != "" {
-		check.invalidOp(call.Pos(), msg+" arguments for %s (expected %d, found %d)", call, bin.nargs, n)
-		goto Error
-	}
-
-	// common case: evaluate first argument if present;
-	// if it is an expression, x has the expression value
-	if n > 0 {
-		arg0 = args[0]
-		switch id {
-		case _Make, _New, _Trace:
-			// respective cases below do the work
-		default:
-			// argument must be an expression
-			check.expr(x, arg0, nil, iota)
-			if x.mode == invalid {
-				goto Error
-			}
-		}
-	}
-
-	switch id {
-	case _Append:
-		if _, ok := underlying(x.typ).(*Slice); !ok {
-			check.invalidArg(x.pos(), "%s is not a typed slice", x)
-			goto Error
-		}
-		resultTyp := x.typ
-		for _, arg := range args[1:] {
-			check.expr(x, arg, nil, iota)
-			if x.mode == invalid {
-				goto Error
-			}
-			// TODO(gri) check assignability
-		}
-		x.mode = value
-		x.typ = resultTyp
-
-	case _Cap, _Len:
-		mode := invalid
-		var val interface{}
-		switch typ := implicitDeref(underlying(x.typ)).(type) {
-		case *Basic:
-			if isString(typ) && id == _Len {
-				if x.mode == constant {
-					mode = constant
-					val = int64(len(x.val.(string)))
-				} else {
-					mode = value
-				}
-			}
-
-		case *Array:
-			mode = value
-			if !containsCallsOrReceives(arg0) {
-				mode = constant
-				val = typ.Len
-			}
-
-		case *Slice, *Chan:
-			mode = value
-
-		case *Map:
-			if id == _Len {
-				mode = value
-			}
-		}
-
-		if mode == invalid {
-			check.invalidArg(x.pos(), "%s for %s", x, bin.name)
-			goto Error
-		}
-		x.mode = mode
-		x.typ = Typ[Int]
-		x.val = val
-
-	case _Close:
-		ch, ok := underlying(x.typ).(*Chan)
-		if !ok {
-			check.invalidArg(x.pos(), "%s is not a channel", x)
-			goto Error
-		}
-		if ch.Dir&ast.SEND == 0 {
-			check.invalidArg(x.pos(), "%s must not be a receive-only channel", x)
-			goto Error
-		}
-		x.mode = novalue
-
-	case _Complex:
-		if !check.complexArg(x) {
-			goto Error
-		}
-
-		var y operand
-		check.expr(&y, args[1], nil, iota)
-		if y.mode == invalid {
-			goto Error
-		}
-		if !check.complexArg(&y) {
-			goto Error
-		}
-
-		check.convertUntyped(x, y.typ)
-		if x.mode == invalid {
-			goto Error
-		}
-		check.convertUntyped(&y, x.typ)
-		if y.mode == invalid {
-			goto Error
-		}
-
-		if !IsIdentical(x.typ, y.typ) {
-			check.invalidArg(x.pos(), "mismatched types %s and %s", x.typ, y.typ)
-			goto Error
-		}
-
-		typ := underlying(x.typ).(*Basic)
-		if x.mode == constant && y.mode == constant {
-			x.val = binaryOpConst(x.val, toImagConst(y.val), token.ADD, typ)
-		} else {
-			x.mode = value
-		}
-
-		switch typ.Kind {
-		case Float32:
-			x.typ = Typ[Complex64]
-		case Float64:
-			x.typ = Typ[Complex128]
-		case UntypedInt, UntypedRune, UntypedFloat:
-			x.typ = Typ[UntypedComplex]
-		default:
-			check.invalidArg(x.pos(), "float32 or float64 arguments expected")
-			goto Error
-		}
-
-	case _Copy:
-		var y operand
-		check.expr(&y, args[1], nil, iota)
-		if y.mode == invalid {
-			goto Error
-		}
-
-		var dst, src Type
-		if t, ok := underlying(x.typ).(*Slice); ok {
-			dst = t.Elt
-		}
-		switch t := underlying(y.typ).(type) {
-		case *Basic:
-			if isString(y.typ) {
-				src = Typ[Byte]
-			}
-		case *Slice:
-			src = t.Elt
-		}
-
-		if dst == nil || src == nil {
-			check.invalidArg(x.pos(), "copy expects slice arguments; found %s and %s", x, &y)
-			goto Error
-		}
-
-		if !IsIdentical(dst, src) {
-			check.invalidArg(x.pos(), "arguments to copy %s and %s have different element types %s and %s", x, &y, dst, src)
-			goto Error
-		}
-
-		x.mode = value
-		x.typ = Typ[Int]
-
-	case _Delete:
-		m, ok := underlying(x.typ).(*Map)
-		if !ok {
-			check.invalidArg(x.pos(), "%s is not a map", x)
-			goto Error
-		}
-		check.expr(x, args[1], nil, iota)
-		if x.mode == invalid {
-			goto Error
-		}
-		if !x.isAssignable(m.Key) {
-			check.invalidArg(x.pos(), "%s is not assignable to %s", x, m.Key)
-			goto Error
-		}
-		x.mode = novalue
-
-	case _Imag, _Real:
-		if !isComplex(x.typ) {
-			check.invalidArg(x.pos(), "%s must be a complex number", x)
-			goto Error
-		}
-		if x.mode == constant {
-			// nothing to do for x.val == 0
-			if !isZeroConst(x.val) {
-				c := x.val.(Complex)
-				if id == _Real {
-					x.val = c.Re
-				} else {
-					x.val = c.Im
-				}
-			}
-		} else {
-			x.mode = value
-		}
-		k := Invalid
-		switch underlying(x.typ).(*Basic).Kind {
-		case Complex64:
-			k = Float32
-		case Complex128:
-			k = Float64
-		case UntypedComplex:
-			k = UntypedFloat
-		default:
-			unreachable()
-		}
-		x.typ = Typ[k]
-
-	case _Make:
-		resultTyp := check.typ(arg0, false)
-		if resultTyp == Typ[Invalid] {
-			goto Error
-		}
-		var min int // minimum number of arguments
-		switch underlying(resultTyp).(type) {
-		case *Slice:
-			min = 2
-		case *Map, *Chan:
-			min = 1
-		default:
-			check.invalidArg(arg0.Pos(), "cannot make %s; type must be slice, map, or channel", arg0)
-			goto Error
-		}
-		if n := len(args); n < min || min+1 < n {
-			check.errorf(call.Pos(), "%s expects %d or %d arguments; found %d", call, min, min+1, n)
-			goto Error
-		}
-		var sizes []interface{} // constant integer arguments, if any
-		for _, arg := range args[1:] {
-			check.expr(x, arg, nil, iota)
-			if x.isInteger() {
-				if x.mode == constant {
-					if isNegConst(x.val) {
-						check.invalidArg(x.pos(), "%s must not be negative", x)
-						// safe to continue
-					} else {
-						sizes = append(sizes, x.val) // x.val >= 0
-					}
-				}
-			} else {
-				check.invalidArg(x.pos(), "%s must be an integer", x)
-				// safe to continue
-			}
-		}
-		if len(sizes) == 2 && compareConst(sizes[0], sizes[1], token.GTR) {
-			check.invalidArg(args[1].Pos(), "length and capacity swapped")
-			// safe to continue
-		}
-		x.mode = variable
-		x.typ = resultTyp
-
-	case _New:
-		resultTyp := check.typ(arg0, false)
-		if resultTyp == Typ[Invalid] {
-			goto Error
-		}
-		x.mode = variable
-		x.typ = &Pointer{Base: resultTyp}
-
-	case _Panic, _Print, _Println:
-		for _, arg := range args[1:] {
-			check.expr(x, arg, nil, -1)
-		}
-		x.mode = novalue
-
-	case _Recover:
-		x.mode = value
-		x.typ = new(Interface)
-
-	case _Alignof:
-		x.mode = constant
-		x.typ = Typ[Uintptr]
-		// For now we return 1 always as it satisfies the spec's alignment guarantees.
-		// TODO(gri) Extend typechecker API so that platform-specific values can be
-		//           provided.
-		x.val = int64(1)
-
-	case _Offsetof:
-		if _, ok := unparen(x.expr).(*ast.SelectorExpr); !ok {
-			check.invalidArg(x.pos(), "%s is not a selector", x)
-			goto Error
-		}
-		x.mode = constant
-		x.typ = Typ[Uintptr]
-		// because of the size guarantees for basic types (> 0 for some),
-		// returning 0 is only correct if two distinct non-zero size
-		// structs can have the same address (the spec permits that)
-		x.val = int64(0)
-
-	case _Sizeof:
-		x.mode = constant
-		x.val = sizeof(check.ctxt, x.typ)
-		x.typ = Typ[Uintptr]
-
-	case _Assert:
-		// assert(pred) causes a typechecker error if pred is false.
-		// The result of assert is the value of pred if there is no error.
-		// Note: assert is only available in self-test mode.
-		if x.mode != constant || !isBoolean(x.typ) {
-			check.invalidArg(x.pos(), "%s is not a boolean constant", x)
-			goto Error
-		}
-		pred, ok := x.val.(bool)
-		if !ok {
-			check.errorf(x.pos(), "internal error: value of %s should be a boolean constant", x)
-			goto Error
-		}
-		if !pred {
-			check.errorf(call.Pos(), "%s failed", call)
-			// compile-time assertion failure - safe to continue
-		}
-
-	case _Trace:
-		// trace(x, y, z, ...) dumps the positions, expressions, and
-		// values of its arguments. The result of trace is the value
-		// of the first argument.
-		// Note: trace is only available in self-test mode.
-		if len(args) == 0 {
-			check.dump("%s: trace() without arguments", call.Pos())
-			x.mode = novalue
-			x.expr = call
-			return
-		}
-		var t operand
-		x1 := x
-		for _, arg := range args {
-			check.rawExpr(x1, arg, nil, iota, true) // permit trace for types, e.g.: new(trace(T))
-			check.dump("%s: %s", x1.pos(), x1)
-			x1 = &t // use incoming x only for first argument
-		}
-
-	default:
-		check.invalidAST(call.Pos(), "unknown builtin id %d", id)
-		goto Error
-	}
-
-	x.expr = call
-	return
-
-Error:
-	x.mode = invalid
-	x.expr = call
-}
-
-// implicitDeref returns A if typ is of the form *A and A is an array;
-// otherwise it returns typ.
-//
-func implicitDeref(typ Type) Type {
-	if p, ok := typ.(*Pointer); ok {
-		if a, ok := underlying(p.Base).(*Array); ok {
-			return a
-		}
-	}
-	return typ
-}
-
-// containsCallsOrReceives returns true if the expression x contains
-// function calls or channel receives; it returns false otherwise.
-//
-func containsCallsOrReceives(x ast.Expr) bool {
-	res := false
-	ast.Inspect(x, func(x ast.Node) bool {
-		switch x := x.(type) {
-		case *ast.CallExpr:
-			res = true
-			return false
-		case *ast.UnaryExpr:
-			if x.Op == token.ARROW {
-				res = true
-				return false
-			}
-		}
-		return true
-	})
-	return res
-}
-
-// unparen removes any parentheses surrounding an expression and returns
-// the naked expression.
-//
-func unparen(x ast.Expr) ast.Expr {
-	if p, ok := x.(*ast.ParenExpr); ok {
-		return unparen(p.X)
-	}
-	return x
-}
-
-func (check *checker) complexArg(x *operand) bool {
-	t, _ := underlying(x.typ).(*Basic)
-	if t != nil && (t.Info&IsFloat != 0 || t.Kind == UntypedInt || t.Kind == UntypedRune) {
-		return true
-	}
-	check.invalidArg(x.pos(), "%s must be a float32, float64, or an untyped non-complex numeric constant", x)
-	return false
-}
-
-func sizeof(ctxt *Context, typ Type) int64 {
-	switch typ := underlying(typ).(type) {
-	case *Basic:
-		switch typ.Kind {
-		case Int, Uint:
-			return ctxt.IntSize
-		case Uintptr:
-			return ctxt.PtrSize
-		}
-		return typ.Size
-	case *Array:
-		return sizeof(ctxt, typ.Elt) * typ.Len
-	case *Struct:
-		var size int64
-		for _, f := range typ.Fields {
-			size += sizeof(ctxt, f.Type)
-		}
-		return size
-	}
-	return ctxt.PtrSize // good enough
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/check.go gcc-4.8.1/libgo/go/go/types/check.go
--- gcc-4.8.1.orig/libgo/go/go/types/check.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/check.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,454 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements the Check function, which typechecks a package.
-
-package types
-
-import (
-	"fmt"
-	"go/ast"
-	"go/token"
-)
-
-// enable for debugging
-const trace = false
-
-type checker struct {
-	ctxt  *Context
-	fset  *token.FileSet
-	files []*ast.File
-
-	// lazily initialized
-	pkg       *Package                          // current package
-	firsterr  error                             // first error encountered
-	idents    map[*ast.Ident]Object             // maps identifiers to their unique object
-	objects   map[*ast.Object]Object            // maps *ast.Objects to their unique object
-	initspecs map[*ast.ValueSpec]*ast.ValueSpec // "inherited" type and initialization expressions for constant declarations
-	methods   map[*TypeName]*Scope              // maps type names to associated methods
-	funclist  []function                        // list of functions/methods with correct signatures and non-empty bodies
-	funcsig   *Signature                        // signature of currently typechecked function
-	pos       []token.Pos                       // stack of expr positions; debugging support, used if trace is set
-}
-
-func (check *checker) register(id *ast.Ident, obj Object) {
-	// When an expression is evaluated more than once (happens
-	// in rare cases, e.g. for statement expressions, see
-	// comment in stmt.go), the object has been registered
-	// before. Don't do anything in that case.
-	if alt := check.idents[id]; alt != nil {
-		assert(alt == obj)
-		return
-	}
-	check.idents[id] = obj
-	if f := check.ctxt.Ident; f != nil {
-		f(id, obj)
-	}
-}
-
-// lookup returns the unique Object denoted by the identifier.
-// For identifiers without assigned *ast.Object, it uses the
-// checker.idents map; for identifiers with an *ast.Object it
-// uses the checker.objects map.
-//
-// TODO(gri) Once identifier resolution is done entirely by
-//           the typechecker, only the idents map is needed.
-//
-func (check *checker) lookup(ident *ast.Ident) Object {
-	obj := check.idents[ident]
-	astObj := ident.Obj
-
-	if obj != nil {
-		assert(astObj == nil || check.objects[astObj] == nil || check.objects[astObj] == obj)
-		return obj
-	}
-
-	if astObj == nil {
-		return nil
-	}
-
-	if obj = check.objects[astObj]; obj == nil {
-		obj = newObj(astObj)
-		check.objects[astObj] = obj
-	}
-	check.register(ident, obj)
-
-	return obj
-}
-
-type function struct {
-	obj  *Func // for debugging/tracing only
-	sig  *Signature
-	body *ast.BlockStmt
-}
-
-// later adds a function with non-empty body to the list of functions
-// that need to be processed after all package-level declarations
-// are typechecked.
-//
-func (check *checker) later(f *Func, sig *Signature, body *ast.BlockStmt) {
-	// functions implemented elsewhere (say in assembly) have no body
-	if body != nil {
-		check.funclist = append(check.funclist, function{f, sig, body})
-	}
-}
-
-func (check *checker) declareIdent(scope *Scope, ident *ast.Ident, obj Object) {
-	assert(check.lookup(ident) == nil) // identifier already declared or resolved
-	check.register(ident, obj)
-	if ident.Name != "_" {
-		if alt := scope.Insert(obj); alt != nil {
-			prevDecl := ""
-			if pos := alt.GetPos(); pos.IsValid() {
-				prevDecl = fmt.Sprintf("\n\tprevious declaration at %s", check.fset.Position(pos))
-			}
-			check.errorf(ident.Pos(), fmt.Sprintf("%s redeclared in this block%s", ident.Name, prevDecl))
-		}
-	}
-}
-
-func (check *checker) valueSpec(pos token.Pos, obj Object, lhs []*ast.Ident, spec *ast.ValueSpec, iota int) {
-	if len(lhs) == 0 {
-		check.invalidAST(pos, "missing lhs in declaration")
-		return
-	}
-
-	// determine type for all of lhs, if any
-	// (but only set it for the object we typecheck!)
-	var typ Type
-	if spec.Type != nil {
-		typ = check.typ(spec.Type, false)
-	}
-
-	// len(lhs) > 0
-	rhs := spec.Values
-	if len(lhs) == len(rhs) {
-		// check only lhs and rhs corresponding to obj
-		var l, r ast.Expr
-		for i, name := range lhs {
-			if check.lookup(name) == obj {
-				l = lhs[i]
-				r = rhs[i]
-				break
-			}
-		}
-		assert(l != nil)
-		switch obj := obj.(type) {
-		case *Const:
-			obj.Type = typ
-		case *Var:
-			obj.Type = typ
-		default:
-			unreachable()
-		}
-		check.assign1to1(l, r, nil, true, iota)
-		return
-	}
-
-	// there must be a type or initialization expressions
-	if typ == nil && len(rhs) == 0 {
-		check.invalidAST(pos, "missing type or initialization expression")
-		typ = Typ[Invalid]
-	}
-
-	// if we have a type, mark all of lhs
-	if typ != nil {
-		for _, name := range lhs {
-			switch obj := check.lookup(name).(type) {
-			case *Const:
-				obj.Type = typ
-			case *Var:
-				obj.Type = typ
-			default:
-				unreachable()
-			}
-		}
-	}
-
-	// check initial values, if any
-	if len(rhs) > 0 {
-		// TODO(gri) should try to avoid this conversion
-		lhx := make([]ast.Expr, len(lhs))
-		for i, e := range lhs {
-			lhx[i] = e
-		}
-		check.assignNtoM(lhx, rhs, true, iota)
-	}
-}
-
-// object typechecks an object by assigning it a type.
-//
-func (check *checker) object(obj Object, cycleOk bool) {
-	switch obj := obj.(type) {
-	case *Package:
-		// nothing to do
-	case *Const:
-		if obj.Type != nil {
-			return // already checked
-		}
-		// The obj.Val field for constants is initialized to its respective
-		// iota value by the parser.
-		// The object's fields can be in one of the following states:
-		// Type != nil  =>  the constant value is Val
-		// Type == nil  =>  the constant is not typechecked yet, and Val can be:
-		// Val  is int  =>  Val is the value of iota for this declaration
-		// Val  == nil  =>  the object's expression is being evaluated
-		if obj.Val == nil {
-			check.errorf(obj.GetPos(), "illegal cycle in initialization of %s", obj.Name)
-			obj.Type = Typ[Invalid]
-			return
-		}
-		spec := obj.spec
-		iota := obj.Val.(int)
-		obj.Val = nil // mark obj as "visited" for cycle detection
-		// determine spec for type and initialization expressions
-		init := spec
-		if len(init.Values) == 0 {
-			init = check.initspecs[spec]
-		}
-		check.valueSpec(spec.Pos(), obj, spec.Names, init, iota)
-
-	case *Var:
-		if obj.Type != nil {
-			return // already checked
-		}
-		if obj.visited {
-			check.errorf(obj.GetPos(), "illegal cycle in initialization of %s", obj.Name)
-			obj.Type = Typ[Invalid]
-			return
-		}
-		spec := obj.decl.(*ast.ValueSpec)
-		obj.visited = true
-		check.valueSpec(spec.Pos(), obj, spec.Names, spec, 0)
-
-	case *TypeName:
-		if obj.Type != nil {
-			return // already checked
-		}
-		typ := &NamedType{Obj: obj}
-		obj.Type = typ // "mark" object so recursion terminates
-		typ.Underlying = underlying(check.typ(obj.spec.Type, cycleOk))
-		// typecheck associated method signatures
-		if scope := check.methods[obj]; scope != nil {
-			switch t := typ.Underlying.(type) {
-			case *Struct:
-				// struct fields must not conflict with methods
-				for _, f := range t.Fields {
-					if m := scope.Lookup(f.Name); m != nil {
-						check.errorf(m.GetPos(), "type %s has both field and method named %s", obj.Name, f.Name)
-						// ok to continue
-					}
-				}
-			case *Interface:
-				// methods cannot be associated with an interface type
-				for _, m := range scope.Entries {
-					recv := m.(*Func).decl.Recv.List[0].Type
-					check.errorf(recv.Pos(), "invalid receiver type %s (%s is an interface type)", obj.Name, obj.Name)
-					// ok to continue
-				}
-			}
-			// typecheck method signatures
-			var methods []*Method
-			for _, obj := range scope.Entries {
-				m := obj.(*Func)
-				sig := check.typ(m.decl.Type, cycleOk).(*Signature)
-				params, _ := check.collectParams(m.decl.Recv, false)
-				sig.Recv = params[0] // the parser/assocMethod ensure there is exactly one parameter
-				m.Type = sig
-				methods = append(methods, &Method{QualifiedName{check.pkg, m.Name}, sig})
-				check.later(m, sig, m.decl.Body)
-			}
-			typ.Methods = methods
-			delete(check.methods, obj) // we don't need this scope anymore
-		}
-
-	case *Func:
-		if obj.Type != nil {
-			return // already checked
-		}
-		fdecl := obj.decl
-		// methods are typechecked when their receivers are typechecked
-		if fdecl.Recv == nil {
-			sig := check.typ(fdecl.Type, cycleOk).(*Signature)
-			if obj.Name == "init" && (len(sig.Params) != 0 || len(sig.Results) != 0) {
-				check.errorf(fdecl.Pos(), "func init must have no arguments and no return values")
-				// ok to continue
-			}
-			obj.Type = sig
-			check.later(obj, sig, fdecl.Body)
-		}
-
-	default:
-		unreachable()
-	}
-}
-
-// assocInitvals associates "inherited" initialization expressions
-// with the corresponding *ast.ValueSpec in the check.initspecs map
-// for constant declarations without explicit initialization expressions.
-//
-func (check *checker) assocInitvals(decl *ast.GenDecl) {
-	var last *ast.ValueSpec
-	for _, s := range decl.Specs {
-		if s, ok := s.(*ast.ValueSpec); ok {
-			if len(s.Values) > 0 {
-				last = s
-			} else {
-				check.initspecs[s] = last
-			}
-		}
-	}
-	if last == nil {
-		check.invalidAST(decl.Pos(), "no initialization values provided")
-	}
-}
-
-// assocMethod associates a method declaration with the respective
-// receiver base type. meth.Recv must exist.
-//
-func (check *checker) assocMethod(meth *ast.FuncDecl) {
-	// The receiver type is one of the following (enforced by parser):
-	// - *ast.Ident
-	// - *ast.StarExpr{*ast.Ident}
-	// - *ast.BadExpr (parser error)
-	typ := meth.Recv.List[0].Type
-	if ptr, ok := typ.(*ast.StarExpr); ok {
-		typ = ptr.X
-	}
-	// determine receiver base type name
-	ident, ok := typ.(*ast.Ident)
-	if !ok {
-		// not an identifier - parser reported error already
-		return // ignore this method
-	}
-	// determine receiver base type object
-	var tname *TypeName
-	if obj := check.lookup(ident); obj != nil {
-		obj, ok := obj.(*TypeName)
-		if !ok {
-			check.errorf(ident.Pos(), "%s is not a type", ident.Name)
-			return // ignore this method
-		}
-		if obj.spec == nil {
-			check.errorf(ident.Pos(), "cannot define method on non-local type %s", ident.Name)
-			return // ignore this method
-		}
-		tname = obj
-	} else {
-		// identifier not declared/resolved - parser reported error already
-		return // ignore this method
-	}
-	// declare method in receiver base type scope
-	scope := check.methods[tname]
-	if scope == nil {
-		scope = new(Scope)
-		check.methods[tname] = scope
-	}
-	check.declareIdent(scope, meth.Name, &Func{Name: meth.Name.Name, decl: meth})
-}
-
-func (check *checker) decl(decl ast.Decl) {
-	switch d := decl.(type) {
-	case *ast.BadDecl:
-		// ignore
-	case *ast.GenDecl:
-		for _, spec := range d.Specs {
-			switch s := spec.(type) {
-			case *ast.ImportSpec:
-				// nothing to do (handled by check.resolve)
-			case *ast.ValueSpec:
-				for _, name := range s.Names {
-					check.object(check.lookup(name), false)
-				}
-			case *ast.TypeSpec:
-				check.object(check.lookup(s.Name), false)
-			default:
-				check.invalidAST(s.Pos(), "unknown ast.Spec node %T", s)
-			}
-		}
-	case *ast.FuncDecl:
-		// methods are checked when their respective base types are checked
-		if d.Recv != nil {
-			return
-		}
-		obj := check.lookup(d.Name)
-		// Initialization functions don't have an object associated with them
-		// since they are not in any scope. Create a dummy object for them.
-		if d.Name.Name == "init" {
-			assert(obj == nil) // all other functions should have an object
-			obj = &Func{Name: d.Name.Name, decl: d}
-			check.register(d.Name, obj)
-		}
-		check.object(obj, false)
-	default:
-		check.invalidAST(d.Pos(), "unknown ast.Decl node %T", d)
-	}
-}
-
-// A bailout panic is raised to indicate early termination.
-type bailout struct{}
-
-func check(ctxt *Context, fset *token.FileSet, files []*ast.File) (pkg *Package, err error) {
-	// initialize checker
-	check := checker{
-		ctxt:      ctxt,
-		fset:      fset,
-		files:     files,
-		idents:    make(map[*ast.Ident]Object),
-		objects:   make(map[*ast.Object]Object),
-		initspecs: make(map[*ast.ValueSpec]*ast.ValueSpec),
-		methods:   make(map[*TypeName]*Scope),
-	}
-
-	// handle panics
-	defer func() {
-		switch p := recover().(type) {
-		case nil, bailout:
-			// normal return or early exit
-			err = check.firsterr
-		default:
-			// unexpected panic: don't crash clients
-			panic(p) // enable for debugging
-			// TODO(gri) add a test case for this scenario
-			err = fmt.Errorf("types internal error: %v", p)
-		}
-	}()
-
-	// resolve identifiers
-	imp := ctxt.Import
-	if imp == nil {
-		imp = GcImport
-	}
-	pkg, methods := check.resolve(imp)
-	check.pkg = pkg
-
-	// associate methods with types
-	for _, m := range methods {
-		check.assocMethod(m)
-	}
-
-	// typecheck all declarations
-	for _, f := range check.files {
-		for _, d := range f.Decls {
-			check.decl(d)
-		}
-	}
-
-	// typecheck all function/method bodies
-	// (funclist may grow when checking statements - do not use range clause!)
-	for i := 0; i < len(check.funclist); i++ {
-		f := check.funclist[i]
-		if trace {
-			s := "<function literal>"
-			if f.obj != nil {
-				s = f.obj.Name
-			}
-			fmt.Println("---", s)
-		}
-		check.funcsig = f.sig
-		check.stmtList(f.body.List)
-	}
-
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/check_test.go gcc-4.8.1/libgo/go/go/types/check_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/check_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/check_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,262 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements a typechecker test harness. The packages specified
-// in tests are typechecked. Error messages reported by the typechecker are
-// compared against the error messages expected in the test files.
-//
-// Expected errors are indicated in the test files by putting a comment
-// of the form /* ERROR "rx" */ immediately following an offending token.
-// The harness will verify that an error matching the regular expression
-// rx is reported at that source position. Consecutive comments may be
-// used to indicate multiple errors for the same token position.
-//
-// For instance, the following test file indicates that a "not declared"
-// error should be reported for the undeclared variable x:
-//
-//	package p
-//	func f() {
-//		_ = x /* ERROR "not declared" */ + 1
-//	}
-
-package types
-
-import (
-	"flag"
-	"fmt"
-	"go/ast"
-	"go/parser"
-	"go/scanner"
-	"go/token"
-	"io/ioutil"
-	"os"
-	"regexp"
-	"testing"
-)
-
-var listErrors = flag.Bool("list", false, "list errors")
-
-// The test filenames do not end in .go so that they are invisible
-// to gofmt since they contain comments that must not change their
-// positions relative to surrounding tokens.
-
-var tests = []struct {
-	name  string
-	files []string
-}{
-	{"decls0", []string{"testdata/decls0.src"}},
-	{"decls1", []string{"testdata/decls1.src"}},
-	{"decls2", []string{"testdata/decls2a.src", "testdata/decls2b.src"}},
-	{"decls3", []string{"testdata/decls3.src"}},
-	{"const0", []string{"testdata/const0.src"}},
-	{"expr0", []string{"testdata/expr0.src"}},
-	{"expr1", []string{"testdata/expr1.src"}},
-	{"expr2", []string{"testdata/expr2.src"}},
-	{"expr3", []string{"testdata/expr3.src"}},
-	{"builtins", []string{"testdata/builtins.src"}},
-	{"conversions", []string{"testdata/conversions.src"}},
-	{"stmt0", []string{"testdata/stmt0.src"}},
-}
-
-var fset = token.NewFileSet()
-
-func getFile(filename string) (file *token.File) {
-	fset.Iterate(func(f *token.File) bool {
-		if f.Name() == filename {
-			file = f
-			return false // end iteration
-		}
-		return true
-	})
-	return file
-}
-
-// Positioned errors are of the form filename:line:column: message .
-var posMsgRx = regexp.MustCompile(`^(.*:[0-9]+:[0-9]+): *(.*)`)
-
-// splitError splits an error's error message into a position string
-// and the actual error message. If there's no position information,
-// pos is the empty string, and msg is the entire error message.
-//
-func splitError(err error) (pos, msg string) {
-	msg = err.Error()
-	if m := posMsgRx.FindStringSubmatch(msg); len(m) == 3 {
-		pos = m[1]
-		msg = m[2]
-	}
-	return
-}
-
-func parseFiles(t *testing.T, testname string, filenames []string) ([]*ast.File, []error) {
-	var files []*ast.File
-	var errlist []error
-	for _, filename := range filenames {
-		file, err := parser.ParseFile(fset, filename, nil, parser.DeclarationErrors)
-		if file == nil {
-			t.Fatalf("%s: could not parse file %s", testname, filename)
-		}
-		files = append(files, file)
-		if err != nil {
-			if list, _ := err.(scanner.ErrorList); len(list) > 0 {
-				for _, err := range list {
-					errlist = append(errlist, err)
-				}
-			} else {
-				errlist = append(errlist, err)
-			}
-		}
-	}
-	return files, errlist
-}
-
-// ERROR comments must be of the form /* ERROR "rx" */ and rx is
-// a regular expression that matches the expected error message.
-//
-var errRx = regexp.MustCompile(`^/\* *ERROR *"([^"]*)" *\*/$`)
-
-// errMap collects the regular expressions of ERROR comments found
-// in files and returns them as a map of error positions to error messages.
-//
-func errMap(t *testing.T, testname string, files []*ast.File) map[string][]string {
-	errmap := make(map[string][]string)
-
-	for _, file := range files {
-		filename := fset.Position(file.Package).Filename
-		src, err := ioutil.ReadFile(filename)
-		if err != nil {
-			t.Fatalf("%s: could not read %s", testname, filename)
-		}
-
-		var s scanner.Scanner
-		// file was parsed already - do not add it again to the file
-		// set otherwise the position information returned here will
-		// not match the position information collected by the parser
-		s.Init(getFile(filename), src, nil, scanner.ScanComments)
-		var prev string // position string of last non-comment, non-semicolon token
-
-	scanFile:
-		for {
-			pos, tok, lit := s.Scan()
-			switch tok {
-			case token.EOF:
-				break scanFile
-			case token.COMMENT:
-				s := errRx.FindStringSubmatch(lit)
-				if len(s) == 2 {
-					errmap[prev] = append(errmap[prev], string(s[1]))
-				}
-			case token.SEMICOLON:
-				// ignore automatically inserted semicolon
-				if lit == "\n" {
-					continue scanFile
-				}
-				fallthrough
-			default:
-				prev = fset.Position(pos).String()
-			}
-		}
-	}
-
-	return errmap
-}
-
-func eliminate(t *testing.T, errmap map[string][]string, errlist []error) {
-	for _, err := range errlist {
-		pos, msg := splitError(err)
-		list := errmap[pos]
-		index := -1 // list index of matching message, if any
-		// we expect one of the messages in list to match the error at pos
-		for i, msg := range list {
-			rx, err := regexp.Compile(msg)
-			if err != nil {
-				t.Errorf("%s: %v", pos, err)
-				continue
-			}
-			if rx.MatchString(msg) {
-				index = i
-				break
-			}
-		}
-		if index >= 0 {
-			// eliminate from list
-			if n := len(list) - 1; n > 0 {
-				// not the last entry - swap in last element and shorten list by 1
-				list[index] = list[n]
-				errmap[pos] = list[:n]
-			} else {
-				// last entry - remove list from map
-				delete(errmap, pos)
-			}
-		} else {
-			t.Errorf("%s: no error expected: %q", pos, msg)
-		}
-
-	}
-}
-
-func checkFiles(t *testing.T, testname string, testfiles []string) {
-	// parse files and collect parser errors
-	files, errlist := parseFiles(t, testname, testfiles)
-
-	// typecheck and collect typechecker errors
-	ctxt := Default
-	ctxt.Error = func(err error) { errlist = append(errlist, err) }
-	ctxt.Check(fset, files)
-
-	if *listErrors {
-		t.Errorf("--- %s: %d errors found:", testname, len(errlist))
-		for _, err := range errlist {
-			t.Error(err)
-		}
-		return
-	}
-
-	// match and eliminate errors
-	// we are expecting the following errors
-	// (collect these after parsing the files so that
-	// they are found in the file set)
-	errmap := errMap(t, testname, files)
-	eliminate(t, errmap, errlist)
-
-	// there should be no expected errors left
-	if len(errmap) > 0 {
-		t.Errorf("--- %s: %d source positions with expected (but not reported) errors:", testname, len(errmap))
-		for pos, list := range errmap {
-			for _, rx := range list {
-				t.Errorf("%s: %q", pos, rx)
-			}
-		}
-	}
-}
-
-var testBuiltinsDeclared = false
-
-func TestCheck(t *testing.T) {
-	// Does not work with gccgo, because it requires reading gc
-	// import files.
-	return
-
-	// Declare builtins for testing.
-	// Not done in an init func to avoid an init race with
-	// the construction of the Universe var.
-	if !testBuiltinsDeclared {
-		testBuiltinsDeclared = true
-		def(&Func{Name: "assert", Type: &builtin{_Assert, "assert", 1, false, true}})
-		def(&Func{Name: "trace", Type: &builtin{_Trace, "trace", 0, true, true}})
-	}
-
-	// For easy debugging w/o changing the testing code,
-	// if there is a local test file, only test that file.
-	const testfile = "testdata/test.go"
-	if fi, err := os.Stat(testfile); err == nil && !fi.IsDir() {
-		fmt.Printf("WARNING: Testing only %s (remove it to run all tests)\n", testfile)
-		checkFiles(t, testfile, []string{testfile})
-		return
-	}
-
-	// Otherwise, run all the tests.
-	for _, test := range tests {
-		checkFiles(t, test.name, test.files)
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/const.go gcc-4.8.1/libgo/go/go/types/const.go
--- gcc-4.8.1.orig/libgo/go/go/types/const.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/const.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,734 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements operations on constant values.
-
-package types
-
-import (
-	"fmt"
-	"go/token"
-	"math/big"
-	"strconv"
-)
-
-// TODO(gri) At the moment, constants are different types
-// passed around as interface{} values. Consider introducing
-// a Const type and use methods instead of xConst functions.
-
-// Representation of constant values.
-//
-// bool     ->  bool (true, false)
-// numeric  ->  int64, *big.Int, *big.Rat, Complex (ordered by increasing data structure "size")
-// string   ->  string
-// nil      ->  NilType (nilConst)
-//
-// Numeric constants are normalized after each operation such
-// that they are represented by the "smallest" data structure
-// required to represent the constant, independent of actual
-// type. Non-numeric constants are always normalized.
-
-// Representation of complex numbers.
-type Complex struct {
-	Re, Im *big.Rat
-}
-
-func (c Complex) String() string {
-	if c.Re.Sign() == 0 {
-		return fmt.Sprintf("%si", c.Im)
-	}
-	// normalized complex values always have an imaginary part
-	return fmt.Sprintf("(%s + %si)", c.Re, c.Im)
-}
-
-// Representation of nil.
-type NilType struct{}
-
-func (NilType) String() string {
-	return "nil"
-}
-
-// Implementation-specific constants.
-// TODO(gri) These need to go elsewhere.
-const (
-	intBits = 32
-	ptrBits = 64
-)
-
-// Frequently used values.
-var (
-	nilConst  = NilType{}
-	zeroConst = int64(0)
-)
-
-// int64 bounds
-var (
-	minInt64 = big.NewInt(-1 << 63)
-	maxInt64 = big.NewInt(1<<63 - 1)
-)
-
-// normalizeIntConst returns the smallest constant representation
-// for the specific value of x; either an int64 or a *big.Int value.
-//
-func normalizeIntConst(x *big.Int) interface{} {
-	if minInt64.Cmp(x) <= 0 && x.Cmp(maxInt64) <= 0 {
-		return x.Int64()
-	}
-	return x
-}
-
-// normalizeRatConst returns the smallest constant representation
-// for the specific value of x; either an int64, *big.Int,
-// or *big.Rat value.
-//
-func normalizeRatConst(x *big.Rat) interface{} {
-	if x.IsInt() {
-		return normalizeIntConst(x.Num())
-	}
-	return x
-}
-
-// newComplex returns the smallest constant representation
-// for the specific value re + im*i; either an int64, *big.Int,
-// *big.Rat, or complex value.
-//
-func newComplex(re, im *big.Rat) interface{} {
-	if im.Sign() == 0 {
-		return normalizeRatConst(re)
-	}
-	return Complex{re, im}
-}
-
-// makeRuneConst returns the int64 code point for the rune literal
-// lit. The result is nil if lit is not a correct rune literal.
-//
-func makeRuneConst(lit string) interface{} {
-	if n := len(lit); n >= 2 {
-		if code, _, _, err := strconv.UnquoteChar(lit[1:n-1], '\''); err == nil {
-			return int64(code)
-		}
-	}
-	return nil
-}
-
-// makeRuneConst returns the smallest integer constant representation
-// (int64, *big.Int) for the integer literal lit. The result is nil if
-// lit is not a correct integer literal.
-//
-func makeIntConst(lit string) interface{} {
-	if x, err := strconv.ParseInt(lit, 0, 64); err == nil {
-		return x
-	}
-	if x, ok := new(big.Int).SetString(lit, 0); ok {
-		return x
-	}
-	return nil
-}
-
-// makeFloatConst returns the smallest floating-point constant representation
-// (int64, *big.Int, *big.Rat) for the floating-point literal lit. The result
-// is nil if lit is not a correct floating-point literal.
-//
-func makeFloatConst(lit string) interface{} {
-	if x, ok := new(big.Rat).SetString(lit); ok {
-		return normalizeRatConst(x)
-	}
-	return nil
-}
-
-// makeComplexConst returns the complex constant representation (Complex) for
-// the imaginary literal lit. The result is nil if lit is not a correct imaginary
-// literal.
-//
-func makeComplexConst(lit string) interface{} {
-	n := len(lit)
-	if n > 0 && lit[n-1] == 'i' {
-		if im, ok := new(big.Rat).SetString(lit[0 : n-1]); ok {
-			return newComplex(big.NewRat(0, 1), im)
-		}
-	}
-	return nil
-}
-
-// makeStringConst returns the string constant representation (string) for
-// the string literal lit. The result is nil if lit is not a correct string
-// literal.
-//
-func makeStringConst(lit string) interface{} {
-	if s, err := strconv.Unquote(lit); err == nil {
-		return s
-	}
-	return nil
-}
-
-// toImagConst returns the constant Complex(0, x) for a non-complex x.
-func toImagConst(x interface{}) interface{} {
-	var im *big.Rat
-	switch x := x.(type) {
-	case int64:
-		im = big.NewRat(x, 1)
-	case *big.Int:
-		im = new(big.Rat).SetFrac(x, int1)
-	case *big.Rat:
-		im = x
-	default:
-		unreachable()
-	}
-	return Complex{rat0, im}
-}
-
-// isZeroConst reports whether the value of constant x is 0.
-// x must be normalized.
-//
-func isZeroConst(x interface{}) bool {
-	i, ok := x.(int64) // good enough since constants are normalized
-	return ok && i == 0
-}
-
-// isNegConst reports whether the value of constant x is < 0.
-// x must be a non-complex numeric value.
-//
-func isNegConst(x interface{}) bool {
-	switch x := x.(type) {
-	case int64:
-		return x < 0
-	case *big.Int:
-		return x.Sign() < 0
-	case *big.Rat:
-		return x.Sign() < 0
-	}
-	unreachable()
-	return false
-}
-
-// isRepresentableConst reports whether the value of constant x can
-// be represented as a value of the basic type Typ[as] without loss
-// of precision.
-//
-func isRepresentableConst(x interface{}, as BasicKind) bool {
-	switch x := x.(type) {
-	case bool:
-		return as == Bool || as == UntypedBool
-
-	case int64:
-		switch as {
-		case Int:
-			return -1<<(intBits-1) <= x && x <= 1<<(intBits-1)-1
-		case Int8:
-			return -1<<(8-1) <= x && x <= 1<<(8-1)-1
-		case Int16:
-			return -1<<(16-1) <= x && x <= 1<<(16-1)-1
-		case Int32, UntypedRune:
-			return -1<<(32-1) <= x && x <= 1<<(32-1)-1
-		case Int64:
-			return true
-		case Uint:
-			return 0 <= x && x <= 1<<intBits-1
-		case Uint8:
-			return 0 <= x && x <= 1<<8-1
-		case Uint16:
-			return 0 <= x && x <= 1<<16-1
-		case Uint32:
-			return 0 <= x && x <= 1<<32-1
-		case Uint64:
-			return 0 <= x
-		case Uintptr:
-			assert(ptrBits == 64)
-			return 0 <= x
-		case Float32:
-			return true // TODO(gri) fix this
-		case Float64:
-			return true // TODO(gri) fix this
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedInt, UntypedFloat, UntypedComplex:
-			return true
-		}
-
-	case *big.Int:
-		switch as {
-		case Uint:
-			return x.Sign() >= 0 && x.BitLen() <= intBits
-		case Uint64:
-			return x.Sign() >= 0 && x.BitLen() <= 64
-		case Uintptr:
-			return x.Sign() >= 0 && x.BitLen() <= ptrBits
-		case Float32:
-			return true // TODO(gri) fix this
-		case Float64:
-			return true // TODO(gri) fix this
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedInt, UntypedFloat, UntypedComplex:
-			return true
-		}
-
-	case *big.Rat:
-		switch as {
-		case Float32:
-			return true // TODO(gri) fix this
-		case Float64:
-			return true // TODO(gri) fix this
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedFloat, UntypedComplex:
-			return true
-		}
-
-	case Complex:
-		switch as {
-		case Complex64:
-			return true // TODO(gri) fix this
-		case Complex128:
-			return true // TODO(gri) fix this
-		case UntypedComplex:
-			return true
-		}
-
-	case string:
-		return as == String || as == UntypedString
-
-	case NilType:
-		return as == UntypedNil || as == UnsafePointer
-
-	default:
-		unreachable()
-	}
-
-	return false
-}
-
-var (
-	int1 = big.NewInt(1)
-	rat0 = big.NewRat(0, 1)
-)
-
-// complexity returns a measure of representation complexity for constant x.
-func complexity(x interface{}) int {
-	switch x.(type) {
-	case bool, string, NilType:
-		return 1
-	case int64:
-		return 2
-	case *big.Int:
-		return 3
-	case *big.Rat:
-		return 4
-	case Complex:
-		return 5
-	}
-	unreachable()
-	return 0
-}
-
-// matchConst returns the matching representation (same type) with the
-// smallest complexity for two constant values x and y. They must be
-// of the same "kind" (boolean, numeric, string, or NilType).
-//
-func matchConst(x, y interface{}) (_, _ interface{}) {
-	if complexity(x) > complexity(y) {
-		y, x = matchConst(y, x)
-		return x, y
-	}
-	// complexity(x) <= complexity(y)
-
-	switch x := x.(type) {
-	case bool, Complex, string, NilType:
-		return x, y
-
-	case int64:
-		switch y := y.(type) {
-		case int64:
-			return x, y
-		case *big.Int:
-			return big.NewInt(x), y
-		case *big.Rat:
-			return big.NewRat(x, 1), y
-		case Complex:
-			return Complex{big.NewRat(x, 1), rat0}, y
-		}
-
-	case *big.Int:
-		switch y := y.(type) {
-		case *big.Int:
-			return x, y
-		case *big.Rat:
-			return new(big.Rat).SetFrac(x, int1), y
-		case Complex:
-			return Complex{new(big.Rat).SetFrac(x, int1), rat0}, y
-		}
-
-	case *big.Rat:
-		switch y := y.(type) {
-		case *big.Rat:
-			return x, y
-		case Complex:
-			return Complex{x, rat0}, y
-		}
-	}
-
-	unreachable()
-	return nil, nil
-}
-
-// is32bit reports whether x can be represented using 32 bits.
-func is32bit(x int64) bool {
-	return -1<<31 <= x && x <= 1<<31-1
-}
-
-// is63bit reports whether x can be represented using 63 bits.
-func is63bit(x int64) bool {
-	return -1<<62 <= x && x <= 1<<62-1
-}
-
-// unaryOpConst returns the result of the constant evaluation op x where x is of the given type.
-func unaryOpConst(x interface{}, op token.Token, typ *Basic) interface{} {
-	switch op {
-	case token.ADD:
-		return x // nothing to do
-	case token.SUB:
-		switch x := x.(type) {
-		case int64:
-			if z := -x; z != x {
-				return z // no overflow
-			}
-			// overflow - need to convert to big.Int
-			return normalizeIntConst(new(big.Int).Neg(big.NewInt(x)))
-		case *big.Int:
-			return normalizeIntConst(new(big.Int).Neg(x))
-		case *big.Rat:
-			return normalizeRatConst(new(big.Rat).Neg(x))
-		case Complex:
-			return newComplex(new(big.Rat).Neg(x.Re), new(big.Rat).Neg(x.Im))
-		}
-	case token.XOR:
-		var z big.Int
-		switch x := x.(type) {
-		case int64:
-			z.Not(big.NewInt(x))
-		case *big.Int:
-			z.Not(x)
-		default:
-			unreachable()
-		}
-		// For unsigned types, the result will be negative and
-		// thus "too large": We must limit the result size to
-		// the type's size.
-		if typ.Info&IsUnsigned != 0 {
-			s := uint(typ.Size) * 8
-			if s == 0 {
-				// platform-specific type
-				// TODO(gri) this needs to be factored out
-				switch typ.Kind {
-				case Uint:
-					s = intBits
-				case Uintptr:
-					s = ptrBits
-				default:
-					unreachable()
-				}
-			}
-			// z &^= (-1)<<s
-			z.AndNot(&z, new(big.Int).Lsh(big.NewInt(-1), s))
-		}
-		return normalizeIntConst(&z)
-	case token.NOT:
-		return !x.(bool)
-	}
-	unreachable()
-	return nil
-}
-
-// binaryOpConst returns the result of the constant evaluation x op y;
-// both operands must be of the same constant "kind" (boolean, numeric, or string).
-// If typ is an integer type, division (op == token.QUO) is using integer division
-// (and the result is guaranteed to be integer) rather than floating-point
-// division. Division by zero leads to a run-time panic.
-//
-func binaryOpConst(x, y interface{}, op token.Token, typ *Basic) interface{} {
-	x, y = matchConst(x, y)
-
-	switch x := x.(type) {
-	case bool:
-		y := y.(bool)
-		switch op {
-		case token.LAND:
-			return x && y
-		case token.LOR:
-			return x || y
-		}
-
-	case int64:
-		y := y.(int64)
-		switch op {
-		case token.ADD:
-			// TODO(gri) can do better than this
-			if is63bit(x) && is63bit(y) {
-				return x + y
-			}
-			return normalizeIntConst(new(big.Int).Add(big.NewInt(x), big.NewInt(y)))
-		case token.SUB:
-			// TODO(gri) can do better than this
-			if is63bit(x) && is63bit(y) {
-				return x - y
-			}
-			return normalizeIntConst(new(big.Int).Sub(big.NewInt(x), big.NewInt(y)))
-		case token.MUL:
-			// TODO(gri) can do better than this
-			if is32bit(x) && is32bit(y) {
-				return x * y
-			}
-			return normalizeIntConst(new(big.Int).Mul(big.NewInt(x), big.NewInt(y)))
-		case token.REM:
-			return x % y
-		case token.QUO:
-			if typ.Info&IsInteger != 0 {
-				return x / y
-			}
-			return normalizeRatConst(new(big.Rat).SetFrac(big.NewInt(x), big.NewInt(y)))
-		case token.AND:
-			return x & y
-		case token.OR:
-			return x | y
-		case token.XOR:
-			return x ^ y
-		case token.AND_NOT:
-			return x &^ y
-		}
-
-	case *big.Int:
-		y := y.(*big.Int)
-		var z big.Int
-		switch op {
-		case token.ADD:
-			z.Add(x, y)
-		case token.SUB:
-			z.Sub(x, y)
-		case token.MUL:
-			z.Mul(x, y)
-		case token.REM:
-			z.Rem(x, y)
-		case token.QUO:
-			if typ.Info&IsInteger != 0 {
-				z.Quo(x, y)
-			} else {
-				return normalizeRatConst(new(big.Rat).SetFrac(x, y))
-			}
-		case token.AND:
-			z.And(x, y)
-		case token.OR:
-			z.Or(x, y)
-		case token.XOR:
-			z.Xor(x, y)
-		case token.AND_NOT:
-			z.AndNot(x, y)
-		default:
-			unreachable()
-		}
-		return normalizeIntConst(&z)
-
-	case *big.Rat:
-		y := y.(*big.Rat)
-		var z big.Rat
-		switch op {
-		case token.ADD:
-			z.Add(x, y)
-		case token.SUB:
-			z.Sub(x, y)
-		case token.MUL:
-			z.Mul(x, y)
-		case token.QUO:
-			z.Quo(x, y)
-		default:
-			unreachable()
-		}
-		return normalizeRatConst(&z)
-
-	case Complex:
-		y := y.(Complex)
-		a, b := x.Re, x.Im
-		c, d := y.Re, y.Im
-		var re, im big.Rat
-		switch op {
-		case token.ADD:
-			// (a+c) + i(b+d)
-			re.Add(a, c)
-			im.Add(b, d)
-		case token.SUB:
-			// (a-c) + i(b-d)
-			re.Sub(a, c)
-			im.Sub(b, d)
-		case token.MUL:
-			// (ac-bd) + i(bc+ad)
-			var ac, bd, bc, ad big.Rat
-			ac.Mul(a, c)
-			bd.Mul(b, d)
-			bc.Mul(b, c)
-			ad.Mul(a, d)
-			re.Sub(&ac, &bd)
-			im.Add(&bc, &ad)
-		case token.QUO:
-			// (ac+bd)/s + i(bc-ad)/s, with s = cc + dd
-			var ac, bd, bc, ad, s big.Rat
-			ac.Mul(a, c)
-			bd.Mul(b, d)
-			bc.Mul(b, c)
-			ad.Mul(a, d)
-			s.Add(c.Mul(c, c), d.Mul(d, d))
-			re.Add(&ac, &bd)
-			re.Quo(&re, &s)
-			im.Sub(&bc, &ad)
-			im.Quo(&im, &s)
-		default:
-			unreachable()
-		}
-		return newComplex(&re, &im)
-
-	case string:
-		if op == token.ADD {
-			return x + y.(string)
-		}
-	}
-
-	unreachable()
-	return nil
-}
-
-// shiftConst returns the result of the constant evaluation x op s
-// where op is token.SHL or token.SHR (<< or >>). x must be an
-// integer constant.
-//
-func shiftConst(x interface{}, s uint, op token.Token) interface{} {
-	switch x := x.(type) {
-	case int64:
-		switch op {
-		case token.SHL:
-			z := big.NewInt(x)
-			return normalizeIntConst(z.Lsh(z, s))
-		case token.SHR:
-			return x >> s
-		}
-
-	case *big.Int:
-		var z big.Int
-		switch op {
-		case token.SHL:
-			return normalizeIntConst(z.Lsh(x, s))
-		case token.SHR:
-			return normalizeIntConst(z.Rsh(x, s))
-		}
-	}
-
-	unreachable()
-	return nil
-}
-
-// compareConst returns the result of the constant comparison x op y;
-// both operands must be of the same "kind" (boolean, numeric, string,
-// or NilType).
-//
-func compareConst(x, y interface{}, op token.Token) (z bool) {
-	x, y = matchConst(x, y)
-
-	// x == y  =>  x == y
-	// x != y  =>  x != y
-	// x >  y  =>  y <  x
-	// x >= y  =>  u <= x
-	swap := false
-	switch op {
-	case token.GTR:
-		swap = true
-		op = token.LSS
-	case token.GEQ:
-		swap = true
-		op = token.LEQ
-	}
-
-	// x == y  =>    x == y
-	// x != y  =>  !(x == y)
-	// x <  y  =>    x <  y
-	// x <= y  =>  !(y <  x)
-	negate := false
-	switch op {
-	case token.NEQ:
-		negate = true
-		op = token.EQL
-	case token.LEQ:
-		swap = !swap
-		negate = true
-		op = token.LSS
-	}
-
-	if negate {
-		defer func() { z = !z }()
-	}
-
-	if swap {
-		x, y = y, x
-	}
-
-	switch x := x.(type) {
-	case bool:
-		if op == token.EQL {
-			return x == y.(bool)
-		}
-
-	case int64:
-		y := y.(int64)
-		switch op {
-		case token.EQL:
-			return x == y
-		case token.LSS:
-			return x < y
-		}
-
-	case *big.Int:
-		s := x.Cmp(y.(*big.Int))
-		switch op {
-		case token.EQL:
-			return s == 0
-		case token.LSS:
-			return s < 0
-		}
-
-	case *big.Rat:
-		s := x.Cmp(y.(*big.Rat))
-		switch op {
-		case token.EQL:
-			return s == 0
-		case token.LSS:
-			return s < 0
-		}
-
-	case Complex:
-		y := y.(Complex)
-		if op == token.EQL {
-			return x.Re.Cmp(y.Re) == 0 && x.Im.Cmp(y.Im) == 0
-		}
-
-	case string:
-		y := y.(string)
-		switch op {
-		case token.EQL:
-			return x == y
-		case token.LSS:
-			return x < y
-		}
-
-	case NilType:
-		if op == token.EQL {
-			return x == y.(NilType)
-		}
-	}
-
-	fmt.Printf("x = %s (%T), y = %s (%T)\n", x, x, y, y)
-	unreachable()
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/conversions.go gcc-4.8.1/libgo/go/go/types/conversions.go
--- gcc-4.8.1.orig/libgo/go/go/types/conversions.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/conversions.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,128 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of conversions.
-
-package types
-
-import (
-	"go/ast"
-)
-
-// conversion typechecks the type conversion conv to type typ. iota is the current
-// value of iota or -1 if iota doesn't have a value in the current context. The result
-// of the conversion is returned via x. If the conversion has type errors, the returned
-// x is marked as invalid (x.mode == invalid).
-//
-func (check *checker) conversion(x *operand, conv *ast.CallExpr, typ Type, iota int) {
-	// all conversions have one argument
-	if len(conv.Args) != 1 {
-		check.invalidOp(conv.Pos(), "%s conversion requires exactly one argument", conv)
-		goto Error
-	}
-
-	// evaluate argument
-	check.expr(x, conv.Args[0], nil, iota)
-	if x.mode == invalid {
-		goto Error
-	}
-
-	if x.mode == constant && isConstType(typ) {
-		// constant conversion
-		// TODO(gri) implement this
-	} else {
-		// non-constant conversion
-		if !x.isConvertible(typ) {
-			check.invalidOp(conv.Pos(), "cannot convert %s to %s", x, typ)
-			goto Error
-		}
-		x.mode = value
-	}
-
-	x.expr = conv
-	x.typ = typ
-	return
-
-Error:
-	x.mode = invalid
-}
-
-func (x *operand) isConvertible(T Type) bool {
-	// "x is assignable to T"
-	if x.isAssignable(T) {
-		return true
-	}
-
-	// "x's type and T have identical underlying types"
-	V := x.typ
-	Vu := underlying(V)
-	Tu := underlying(T)
-	if IsIdentical(Vu, Tu) {
-		return true
-	}
-
-	// "x's type and T are unnamed pointer types and their pointer base types have identical underlying types"
-	if V, ok := V.(*Pointer); ok {
-		if T, ok := T.(*Pointer); ok {
-			if IsIdentical(underlying(V.Base), underlying(T.Base)) {
-				return true
-			}
-		}
-	}
-
-	// "x's type and T are both integer or floating point types"
-	if (isInteger(V) || isFloat(V)) && (isInteger(T) || isFloat(T)) {
-		return true
-	}
-
-	// "x's type and T are both complex types"
-	if isComplex(V) && isComplex(T) {
-		return true
-	}
-
-	// "x is an integer or a slice of bytes or runes and T is a string type"
-	if (isInteger(V) || isBytesOrRunes(Vu)) && isString(T) {
-		return true
-	}
-
-	// "x is a string and T is a slice of bytes or runes"
-	if isString(V) && isBytesOrRunes(Tu) {
-		return true
-	}
-
-	// package unsafe:
-	// "any pointer or value of underlying type uintptr can be converted into a unsafe.Pointer"
-	if (isPointer(Vu) || isUintptr(Vu)) && isUnsafePointer(T) {
-		return true
-	}
-	// "and vice versa"
-	if isUnsafePointer(V) && (isPointer(Tu) || isUintptr(Tu)) {
-		return true
-	}
-
-	return false
-}
-
-func isUintptr(typ Type) bool {
-	t, ok := typ.(*Basic)
-	return ok && t.Kind == Uintptr
-}
-
-func isUnsafePointer(typ Type) bool {
-	t, ok := typ.(*Basic)
-	return ok && t.Kind == UnsafePointer
-}
-
-func isPointer(typ Type) bool {
-	_, ok := typ.(*Pointer)
-	return ok
-}
-
-func isBytesOrRunes(typ Type) bool {
-	if s, ok := typ.(*Slice); ok {
-		t, ok := underlying(s.Elt).(*Basic)
-		return ok && (t.Kind == Byte || t.Kind == Rune)
-	}
-	return false
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/errors.go gcc-4.8.1/libgo/go/go/types/errors.go
--- gcc-4.8.1.orig/libgo/go/go/types/errors.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/errors.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,331 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements various error reporters.
-
-package types
-
-import (
-	"bytes"
-	"fmt"
-	"go/ast"
-	"go/token"
-)
-
-// TODO(gri) eventually assert and unimplemented should disappear.
-func assert(p bool) {
-	if !p {
-		panic("assertion failed")
-	}
-}
-
-func unreachable() {
-	panic("unreachable")
-}
-
-func (check *checker) printTrace(format string, args []interface{}) {
-	const dots = ".  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  "
-	n := len(check.pos) - 1
-	i := 3 * n
-	for i > len(dots) {
-		fmt.Print(dots)
-		i -= len(dots)
-	}
-	// i <= len(dots)
-	fmt.Printf("%s:\t", check.fset.Position(check.pos[n]))
-	fmt.Print(dots[0:i])
-	fmt.Println(check.formatMsg(format, args))
-}
-
-func (check *checker) trace(pos token.Pos, format string, args ...interface{}) {
-	check.pos = append(check.pos, pos)
-	check.printTrace(format, args)
-}
-
-func (check *checker) untrace(format string, args ...interface{}) {
-	if len(format) > 0 {
-		check.printTrace(format, args)
-	}
-	check.pos = check.pos[:len(check.pos)-1]
-}
-
-func (check *checker) formatMsg(format string, args []interface{}) string {
-	for i, arg := range args {
-		switch a := arg.(type) {
-		case token.Pos:
-			args[i] = check.fset.Position(a)
-		case ast.Expr:
-			args[i] = exprString(a)
-		case Type:
-			args[i] = typeString(a)
-		case operand:
-			panic("internal error: should always pass *operand")
-		}
-	}
-	return fmt.Sprintf(format, args...)
-}
-
-// dump is only needed for debugging
-func (check *checker) dump(format string, args ...interface{}) {
-	fmt.Println(check.formatMsg(format, args))
-}
-
-func (check *checker) err(err error) {
-	if check.firsterr == nil {
-		check.firsterr = err
-	}
-	f := check.ctxt.Error
-	if f == nil {
-		panic(bailout{}) // report only first error
-	}
-	f(err)
-}
-
-func (check *checker) errorf(pos token.Pos, format string, args ...interface{}) {
-	check.err(fmt.Errorf("%s: %s", check.fset.Position(pos), check.formatMsg(format, args)))
-}
-
-func (check *checker) invalidAST(pos token.Pos, format string, args ...interface{}) {
-	check.errorf(pos, "invalid AST: "+format, args...)
-}
-
-func (check *checker) invalidArg(pos token.Pos, format string, args ...interface{}) {
-	check.errorf(pos, "invalid argument: "+format, args...)
-}
-
-func (check *checker) invalidOp(pos token.Pos, format string, args ...interface{}) {
-	check.errorf(pos, "invalid operation: "+format, args...)
-}
-
-// exprString returns a (simplified) string representation for an expression.
-func exprString(expr ast.Expr) string {
-	var buf bytes.Buffer
-	writeExpr(&buf, expr)
-	return buf.String()
-}
-
-// TODO(gri) Need to merge with typeString since some expressions are types (try: ([]int)(a))
-func writeExpr(buf *bytes.Buffer, expr ast.Expr) {
-	switch x := expr.(type) {
-	case *ast.Ident:
-		buf.WriteString(x.Name)
-
-	case *ast.BasicLit:
-		buf.WriteString(x.Value)
-
-	case *ast.FuncLit:
-		buf.WriteString("(func literal)")
-
-	case *ast.CompositeLit:
-		buf.WriteString("(composite literal)")
-
-	case *ast.ParenExpr:
-		buf.WriteByte('(')
-		writeExpr(buf, x.X)
-		buf.WriteByte(')')
-
-	case *ast.SelectorExpr:
-		writeExpr(buf, x.X)
-		buf.WriteByte('.')
-		buf.WriteString(x.Sel.Name)
-
-	case *ast.IndexExpr:
-		writeExpr(buf, x.X)
-		buf.WriteByte('[')
-		writeExpr(buf, x.Index)
-		buf.WriteByte(']')
-
-	case *ast.SliceExpr:
-		writeExpr(buf, x.X)
-		buf.WriteByte('[')
-		if x.Low != nil {
-			writeExpr(buf, x.Low)
-		}
-		buf.WriteByte(':')
-		if x.High != nil {
-			writeExpr(buf, x.High)
-		}
-		buf.WriteByte(']')
-
-	case *ast.TypeAssertExpr:
-		writeExpr(buf, x.X)
-		buf.WriteString(".(...)")
-
-	case *ast.CallExpr:
-		writeExpr(buf, x.Fun)
-		buf.WriteByte('(')
-		for i, arg := range x.Args {
-			if i > 0 {
-				buf.WriteString(", ")
-			}
-			writeExpr(buf, arg)
-		}
-		buf.WriteByte(')')
-
-	case *ast.StarExpr:
-		buf.WriteByte('*')
-		writeExpr(buf, x.X)
-
-	case *ast.UnaryExpr:
-		buf.WriteString(x.Op.String())
-		writeExpr(buf, x.X)
-
-	case *ast.BinaryExpr:
-		// The AST preserves source-level parentheses so there is
-		// no need to introduce parentheses here for correctness.
-		writeExpr(buf, x.X)
-		buf.WriteByte(' ')
-		buf.WriteString(x.Op.String())
-		buf.WriteByte(' ')
-		writeExpr(buf, x.Y)
-
-	default:
-		fmt.Fprintf(buf, "<expr %T>", x)
-	}
-}
-
-// typeString returns a string representation for typ.
-func typeString(typ Type) string {
-	var buf bytes.Buffer
-	writeType(&buf, typ)
-	return buf.String()
-}
-
-func writeParams(buf *bytes.Buffer, params []*Var, isVariadic bool) {
-	buf.WriteByte('(')
-	for i, par := range params {
-		if i > 0 {
-			buf.WriteString(", ")
-		}
-		if par.Name != "" {
-			buf.WriteString(par.Name)
-			buf.WriteByte(' ')
-		}
-		if isVariadic && i == len(params)-1 {
-			buf.WriteString("...")
-		}
-		writeType(buf, par.Type)
-	}
-	buf.WriteByte(')')
-}
-
-func writeSignature(buf *bytes.Buffer, sig *Signature) {
-	writeParams(buf, sig.Params, sig.IsVariadic)
-	if len(sig.Results) == 0 {
-		// no result
-		return
-	}
-
-	buf.WriteByte(' ')
-	if len(sig.Results) == 1 && sig.Results[0].Name == "" {
-		// single unnamed result
-		writeType(buf, sig.Results[0].Type.(Type))
-		return
-	}
-
-	// multiple or named result(s)
-	writeParams(buf, sig.Results, false)
-}
-
-func writeType(buf *bytes.Buffer, typ Type) {
-	switch t := typ.(type) {
-	case nil:
-		buf.WriteString("<nil>")
-
-	case *Basic:
-		buf.WriteString(t.Name)
-
-	case *Array:
-		fmt.Fprintf(buf, "[%d]", t.Len)
-		writeType(buf, t.Elt)
-
-	case *Slice:
-		buf.WriteString("[]")
-		writeType(buf, t.Elt)
-
-	case *Struct:
-		buf.WriteString("struct{")
-		for i, f := range t.Fields {
-			if i > 0 {
-				buf.WriteString("; ")
-			}
-			if !f.IsAnonymous {
-				buf.WriteString(f.Name)
-				buf.WriteByte(' ')
-			}
-			writeType(buf, f.Type)
-			if f.Tag != "" {
-				fmt.Fprintf(buf, " %q", f.Tag)
-			}
-		}
-		buf.WriteByte('}')
-
-	case *Pointer:
-		buf.WriteByte('*')
-		writeType(buf, t.Base)
-
-	case *Result:
-		writeParams(buf, t.Values, false)
-
-	case *Signature:
-		buf.WriteString("func")
-		writeSignature(buf, t)
-
-	case *builtin:
-		fmt.Fprintf(buf, "<type of %s>", t.name)
-
-	case *Interface:
-		buf.WriteString("interface{")
-		for i, m := range t.Methods {
-			if i > 0 {
-				buf.WriteString("; ")
-			}
-			buf.WriteString(m.Name)
-			writeSignature(buf, m.Type)
-		}
-		buf.WriteByte('}')
-
-	case *Map:
-		buf.WriteString("map[")
-		writeType(buf, t.Key)
-		buf.WriteByte(']')
-		writeType(buf, t.Elt)
-
-	case *Chan:
-		var s string
-		switch t.Dir {
-		case ast.SEND:
-			s = "chan<- "
-		case ast.RECV:
-			s = "<-chan "
-		default:
-			s = "chan "
-		}
-		buf.WriteString(s)
-		writeType(buf, t.Elt)
-
-	case *NamedType:
-		s := "<NamedType w/o object>"
-		if t.Obj != nil {
-			s = t.Obj.GetName()
-		}
-		buf.WriteString(s)
-
-	default:
-		fmt.Fprintf(buf, "<type %T>", t)
-	}
-}
-
-func (t *Array) String() string     { return typeString(t) }
-func (t *Basic) String() string     { return typeString(t) }
-func (t *Chan) String() string      { return typeString(t) }
-func (t *Interface) String() string { return typeString(t) }
-func (t *Map) String() string       { return typeString(t) }
-func (t *NamedType) String() string { return typeString(t) }
-func (t *Pointer) String() string   { return typeString(t) }
-func (t *Result) String() string    { return typeString(t) }
-func (t *Signature) String() string { return typeString(t) }
-func (t *Slice) String() string     { return typeString(t) }
-func (t *Struct) String() string    { return typeString(t) }
-func (t *builtin) String() string   { return typeString(t) }
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/exportdata.go gcc-4.8.1/libgo/go/go/types/exportdata.go
--- gcc-4.8.1.orig/libgo/go/go/types/exportdata.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/exportdata.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,111 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements FindGcExportData.
-
-package types
-
-import (
-	"bufio"
-	"errors"
-	"fmt"
-	"io"
-	"strconv"
-	"strings"
-)
-
-func readGopackHeader(r *bufio.Reader) (name string, size int, err error) {
-	// See $GOROOT/include/ar.h.
-	hdr := make([]byte, 16+12+6+6+8+10+2)
-	_, err = io.ReadFull(r, hdr)
-	if err != nil {
-		return
-	}
-	// leave for debugging
-	if false {
-		fmt.Printf("header: %s", hdr)
-	}
-	s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10]))
-	size, err = strconv.Atoi(s)
-	if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' {
-		err = errors.New("invalid archive header")
-		return
-	}
-	name = strings.TrimSpace(string(hdr[:16]))
-	return
-}
-
-// FindGcExportData positions the reader r at the beginning of the
-// export data section of an underlying GC-created object/archive
-// file by reading from it. The reader must be positioned at the
-// start of the file before calling this function.
-//
-func FindGcExportData(r *bufio.Reader) (err error) {
-	// Read first line to make sure this is an object file.
-	line, err := r.ReadSlice('\n')
-	if err != nil {
-		return
-	}
-	if string(line) == "!<arch>\n" {
-		// Archive file.  Scan to __.PKGDEF, which should
-		// be second archive entry.
-		var name string
-		var size int
-
-		// First entry should be __.GOSYMDEF.
-		// Older archives used __.SYMDEF, so allow that too.
-		// Read and discard.
-		if name, size, err = readGopackHeader(r); err != nil {
-			return
-		}
-		if name != "__.SYMDEF" && name != "__.GOSYMDEF" {
-			err = errors.New("go archive does not begin with __.SYMDEF or __.GOSYMDEF")
-			return
-		}
-		const block = 4096
-		tmp := make([]byte, block)
-		for size > 0 {
-			n := size
-			if n > block {
-				n = block
-			}
-			if _, err = io.ReadFull(r, tmp[:n]); err != nil {
-				return
-			}
-			size -= n
-		}
-
-		// Second entry should be __.PKGDEF.
-		if name, size, err = readGopackHeader(r); err != nil {
-			return
-		}
-		if name != "__.PKGDEF" {
-			err = errors.New("go archive is missing __.PKGDEF")
-			return
-		}
-
-		// Read first line of __.PKGDEF data, so that line
-		// is once again the first line of the input.
-		if line, err = r.ReadSlice('\n'); err != nil {
-			return
-		}
-	}
-
-	// Now at __.PKGDEF in archive or still at beginning of file.
-	// Either way, line should begin with "go object ".
-	if !strings.HasPrefix(string(line), "go object ") {
-		err = errors.New("not a go object file")
-		return
-	}
-
-	// Skip over object header to export data.
-	// Begins after first line with $$.
-	for line[0] != '$' {
-		if line, err = r.ReadSlice('\n'); err != nil {
-			return
-		}
-	}
-
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/expr.go gcc-4.8.1/libgo/go/go/types/expr.go
--- gcc-4.8.1.orig/libgo/go/go/types/expr.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/expr.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,1334 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of expressions.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-	"strconv"
-)
-
-// TODO(gri) Cleanups
-// - don't print error messages referring to invalid types (they are likely spurious errors)
-// - simplify invalid handling: maybe just use Typ[Invalid] as marker, get rid of invalid Mode for values?
-// - rethink error handling: should all callers check if x.mode == valid after making a call?
-// - at the moment, iota is passed around almost everywhere - in many places we know it cannot be used
-// - use "" or "_" consistently for anonymous identifiers? (e.g. reeceivers that have no name)
-
-// TODO(gri) API issues
-// - clients need access to builtins type information
-// - API tests are missing (e.g., identifiers should be handled as expressions in callbacks)
-
-func (check *checker) collectParams(list *ast.FieldList, variadicOk bool) (params []*Var, isVariadic bool) {
-	if list == nil {
-		return
-	}
-	var last *Var
-	for i, field := range list.List {
-		ftype := field.Type
-		if t, _ := ftype.(*ast.Ellipsis); t != nil {
-			ftype = t.Elt
-			if variadicOk && i == len(list.List)-1 {
-				isVariadic = true
-			} else {
-				check.invalidAST(field.Pos(), "... not permitted")
-				// ok to continue
-			}
-		}
-		// the parser ensures that f.Tag is nil and we don't
-		// care if a constructed AST contains a non-nil tag
-		typ := check.typ(ftype, true)
-		if len(field.Names) > 0 {
-			// named parameter
-			for _, name := range field.Names {
-				par := check.lookup(name).(*Var)
-				par.Type = typ
-				last = par
-				copy := *par
-				params = append(params, &copy)
-			}
-		} else {
-			// anonymous parameter
-			par := &Var{Type: typ}
-			last = nil // not accessible inside function
-			params = append(params, par)
-		}
-	}
-	// For a variadic function, change the last parameter's object type
-	// from T to []T (this is the type used inside the function), but
-	// keep the params list unchanged (this is the externally visible type).
-	if isVariadic && last != nil {
-		last.Type = &Slice{Elt: last.Type}
-	}
-	return
-}
-
-func (check *checker) collectMethods(list *ast.FieldList) (methods []*Method) {
-	if list == nil {
-		return
-	}
-	for _, f := range list.List {
-		typ := check.typ(f.Type, len(f.Names) > 0) // cycles are not ok for embedded interfaces
-		// the parser ensures that f.Tag is nil and we don't
-		// care if a constructed AST contains a non-nil tag
-		if len(f.Names) > 0 {
-			// methods (the parser ensures that there's only one
-			// and we don't care if a constructed AST has more)
-			sig, ok := typ.(*Signature)
-			if !ok {
-				check.invalidAST(f.Type.Pos(), "%s is not a method signature", typ)
-				continue
-			}
-			for _, name := range f.Names {
-				methods = append(methods, &Method{QualifiedName{check.pkg, name.Name}, sig})
-			}
-		} else {
-			// embedded interface
-			utyp := underlying(typ)
-			if ityp, ok := utyp.(*Interface); ok {
-				methods = append(methods, ityp.Methods...)
-			} else if utyp != Typ[Invalid] {
-				// if utyp is invalid, don't complain (the root cause was reported before)
-				check.errorf(f.Type.Pos(), "%s is not an interface type", typ)
-			}
-		}
-	}
-	// Check for double declarations.
-	// The parser inserts methods into an interface-local scope, so local
-	// double declarations are reported by the parser already. We need to
-	// check again for conflicts due to embedded interfaces. This will lead
-	// to a 2nd error message if the double declaration was reported before
-	// by the parser.
-	// TODO(gri) clean this up a bit
-	seen := make(map[string]bool)
-	for _, m := range methods {
-		if seen[m.Name] {
-			check.errorf(list.Pos(), "multiple methods named %s", m.Name)
-			return // keep multiple entries, lookup will only return the first entry
-		}
-		seen[m.Name] = true
-	}
-	return
-}
-
-func (check *checker) tag(t *ast.BasicLit) string {
-	if t != nil {
-		if t.Kind == token.STRING {
-			if val, err := strconv.Unquote(t.Value); err == nil {
-				return val
-			}
-		}
-		check.invalidAST(t.Pos(), "incorrect tag syntax: %q", t.Value)
-	}
-	return ""
-}
-
-func (check *checker) collectFields(list *ast.FieldList, cycleOk bool) (fields []*Field) {
-	if list == nil {
-		return
-	}
-	for _, f := range list.List {
-		typ := check.typ(f.Type, cycleOk)
-		tag := check.tag(f.Tag)
-		if len(f.Names) > 0 {
-			// named fields
-			for _, name := range f.Names {
-				fields = append(fields, &Field{QualifiedName{check.pkg, name.Name}, typ, tag, false})
-			}
-		} else {
-			// anonymous field
-			switch t := deref(typ).(type) {
-			case *Basic:
-				fields = append(fields, &Field{QualifiedName{check.pkg, t.Name}, typ, tag, true})
-			case *NamedType:
-				fields = append(fields, &Field{QualifiedName{check.pkg, t.Obj.GetName()}, typ, tag, true})
-			default:
-				if typ != Typ[Invalid] {
-					check.invalidAST(f.Type.Pos(), "anonymous field type %s must be named", typ)
-				}
-			}
-		}
-	}
-	return
-}
-
-type opPredicates map[token.Token]func(Type) bool
-
-var unaryOpPredicates = opPredicates{
-	token.ADD: isNumeric,
-	token.SUB: isNumeric,
-	token.XOR: isInteger,
-	token.NOT: isBoolean,
-}
-
-func (check *checker) op(m opPredicates, x *operand, op token.Token) bool {
-	if pred := m[op]; pred != nil {
-		if !pred(x.typ) {
-			check.invalidOp(x.pos(), "operator %s not defined for %s", op, x)
-			return false
-		}
-	} else {
-		check.invalidAST(x.pos(), "unknown operator %s", op)
-		return false
-	}
-	return true
-}
-
-func (check *checker) unary(x *operand, op token.Token) {
-	switch op {
-	case token.AND:
-		// spec: "As an exception to the addressability
-		// requirement x may also be a composite literal."
-		if _, ok := unparen(x.expr).(*ast.CompositeLit); ok {
-			x.mode = variable
-		}
-		if x.mode != variable {
-			check.invalidOp(x.pos(), "cannot take address of %s", x)
-			goto Error
-		}
-		x.typ = &Pointer{Base: x.typ}
-		return
-
-	case token.ARROW:
-		typ, ok := underlying(x.typ).(*Chan)
-		if !ok {
-			check.invalidOp(x.pos(), "cannot receive from non-channel %s", x)
-			goto Error
-		}
-		if typ.Dir&ast.RECV == 0 {
-			check.invalidOp(x.pos(), "cannot receive from send-only channel %s", x)
-			goto Error
-		}
-		x.mode = valueok
-		x.typ = typ.Elt
-		return
-	}
-
-	if !check.op(unaryOpPredicates, x, op) {
-		goto Error
-	}
-
-	if x.mode == constant {
-		typ := underlying(x.typ).(*Basic)
-		x.val = unaryOpConst(x.val, op, typ)
-		// Typed constants must be representable in
-		// their type after each constant operation.
-		check.isRepresentable(x, typ)
-		return
-	}
-
-	x.mode = value
-	// x.typ remains unchanged
-	return
-
-Error:
-	x.mode = invalid
-}
-
-func isShift(op token.Token) bool {
-	return op == token.SHL || op == token.SHR
-}
-
-func isComparison(op token.Token) bool {
-	// Note: tokens are not ordered well to make this much easier
-	switch op {
-	case token.EQL, token.NEQ, token.LSS, token.LEQ, token.GTR, token.GEQ:
-		return true
-	}
-	return false
-}
-
-// isRepresentable checks that a constant operand is representable in the given type.
-func (check *checker) isRepresentable(x *operand, typ *Basic) {
-	if x.mode != constant || isUntyped(typ) {
-		return
-	}
-
-	if !isRepresentableConst(x.val, typ.Kind) {
-		var msg string
-		if isNumeric(x.typ) && isNumeric(typ) {
-			msg = "%s overflows %s"
-		} else {
-			msg = "cannot convert %s to %s"
-		}
-		check.errorf(x.pos(), msg, x, typ)
-		x.mode = invalid
-	}
-}
-
-// convertUntyped attempts to set the type of an untyped value to the target type.
-func (check *checker) convertUntyped(x *operand, target Type) {
-	if x.mode == invalid || !isUntyped(x.typ) {
-		return
-	}
-
-	// TODO(gri) Sloppy code - clean up. This function is central
-	//           to assignment and expression checking.
-
-	if isUntyped(target) {
-		// both x and target are untyped
-		xkind := x.typ.(*Basic).Kind
-		tkind := target.(*Basic).Kind
-		if isNumeric(x.typ) && isNumeric(target) {
-			if xkind < tkind {
-				x.typ = target
-			}
-		} else if xkind != tkind {
-			goto Error
-		}
-		return
-	}
-
-	// typed target
-	switch t := underlying(target).(type) {
-	case *Basic:
-		check.isRepresentable(x, t)
-	case *Interface:
-		if !x.isNil() && len(t.Methods) > 0 /* empty interfaces are ok */ {
-			goto Error
-		}
-	case *Pointer, *Signature, *Slice, *Map, *Chan:
-		if !x.isNil() {
-			goto Error
-		}
-	default:
-		unreachable()
-	}
-
-	x.typ = target
-	return
-
-Error:
-	check.errorf(x.pos(), "cannot convert %s to %s", x, target)
-	x.mode = invalid
-}
-
-func (check *checker) comparison(x, y *operand, op token.Token) {
-	// TODO(gri) deal with interface vs non-interface comparison
-
-	valid := false
-	if x.isAssignable(y.typ) || y.isAssignable(x.typ) {
-		switch op {
-		case token.EQL, token.NEQ:
-			valid = isComparable(x.typ) ||
-				x.isNil() && hasNil(y.typ) ||
-				y.isNil() && hasNil(x.typ)
-		case token.LSS, token.LEQ, token.GTR, token.GEQ:
-			valid = isOrdered(x.typ)
-		default:
-			unreachable()
-		}
-	}
-
-	if !valid {
-		check.invalidOp(x.pos(), "cannot compare %s %s %s", x, op, y)
-		x.mode = invalid
-		return
-	}
-
-	if x.mode == constant && y.mode == constant {
-		x.val = compareConst(x.val, y.val, op)
-	} else {
-		x.mode = value
-	}
-
-	x.typ = Typ[UntypedBool]
-}
-
-// untyped lhs shift operands convert to the hint type
-func (check *checker) shift(x, y *operand, op token.Token, hint Type) {
-	// spec: "The right operand in a shift expression must have unsigned
-	// integer type or be an untyped constant that can be converted to
-	// unsigned integer type."
-	switch {
-	case isInteger(y.typ) && isUnsigned(y.typ):
-		// nothing to do
-	case y.mode == constant && isUntyped(y.typ) && isRepresentableConst(y.val, UntypedInt):
-		y.typ = Typ[UntypedInt]
-	default:
-		check.invalidOp(y.pos(), "shift count %s must be unsigned integer", y)
-		x.mode = invalid
-		return
-	}
-
-	// spec: "If the left operand of a non-constant shift expression is
-	// an untyped constant, the type of the constant is what it would be
-	// if the shift expression were replaced by its left operand alone;
-	// the type is int if it cannot be determined from the context (for
-	// instance, if the shift expression is an operand in a comparison
-	// against an untyped constant)".
-	if x.mode == constant && isUntyped(x.typ) {
-		if y.mode == constant {
-			// constant shift - accept values of any (untyped) type
-			// as long as the value is representable as an integer
-			if x.mode == constant && isUntyped(x.typ) {
-				if isRepresentableConst(x.val, UntypedInt) {
-					x.typ = Typ[UntypedInt]
-				}
-			}
-		} else {
-			// non-constant shift
-			if hint == nil {
-				// TODO(gri) need to check for x.isNil (see other uses of defaultType)
-				hint = defaultType(x.typ)
-			}
-			check.convertUntyped(x, hint)
-			if x.mode == invalid {
-				return
-			}
-		}
-	}
-
-	if !isInteger(x.typ) {
-		check.invalidOp(x.pos(), "shifted operand %s must be integer", x)
-		x.mode = invalid
-		return
-	}
-
-	if y.mode == constant {
-		const stupidShift = 1024
-		s, ok := y.val.(int64)
-		if !ok || s < 0 || s >= stupidShift {
-			check.invalidOp(y.pos(), "%s: stupid shift", y)
-			x.mode = invalid
-			return
-		}
-		if x.mode == constant {
-			x.val = shiftConst(x.val, uint(s), op)
-			return
-		}
-	}
-
-	x.mode = value
-	// x.typ is already set
-}
-
-var binaryOpPredicates = opPredicates{
-	token.ADD: func(typ Type) bool { return isNumeric(typ) || isString(typ) },
-	token.SUB: isNumeric,
-	token.MUL: isNumeric,
-	token.QUO: isNumeric,
-	token.REM: isInteger,
-
-	token.AND:     isInteger,
-	token.OR:      isInteger,
-	token.XOR:     isInteger,
-	token.AND_NOT: isInteger,
-
-	token.LAND: isBoolean,
-	token.LOR:  isBoolean,
-}
-
-func (check *checker) binary(x, y *operand, op token.Token, hint Type) {
-	if isShift(op) {
-		check.shift(x, y, op, hint)
-		return
-	}
-
-	check.convertUntyped(x, y.typ)
-	if x.mode == invalid {
-		return
-	}
-	check.convertUntyped(y, x.typ)
-	if y.mode == invalid {
-		x.mode = invalid
-		return
-	}
-
-	if isComparison(op) {
-		check.comparison(x, y, op)
-		return
-	}
-
-	if !IsIdentical(x.typ, y.typ) {
-		check.invalidOp(x.pos(), "mismatched types %s and %s", x.typ, y.typ)
-		x.mode = invalid
-		return
-	}
-
-	if !check.op(binaryOpPredicates, x, op) {
-		x.mode = invalid
-		return
-	}
-
-	if (op == token.QUO || op == token.REM) && y.mode == constant && isZeroConst(y.val) {
-		check.invalidOp(y.pos(), "division by zero")
-		x.mode = invalid
-		return
-	}
-
-	if x.mode == constant && y.mode == constant {
-		typ := underlying(x.typ).(*Basic)
-		x.val = binaryOpConst(x.val, y.val, op, typ)
-		// Typed constants must be representable in
-		// their type after each constant operation.
-		check.isRepresentable(x, typ)
-		return
-	}
-
-	x.mode = value
-	// x.typ is unchanged
-}
-
-// index checks an index expression for validity. If length >= 0, it is the upper
-// bound for the index. The result is a valid index >= 0, or a negative value.
-//
-func (check *checker) index(index ast.Expr, length int64, iota int) int64 {
-	var x operand
-
-	check.expr(&x, index, nil, iota)
-	if !x.isInteger() {
-		check.errorf(x.pos(), "index %s must be integer", &x)
-		return -1
-	}
-	if x.mode != constant {
-		return -1 // we cannot check more
-	}
-	// The spec doesn't require int64 indices, but perhaps it should.
-	i, ok := x.val.(int64)
-	if !ok {
-		check.errorf(x.pos(), "stupid index %s", &x)
-		return -1
-	}
-	if i < 0 {
-		check.errorf(x.pos(), "index %s must not be negative", &x)
-		return -1
-	}
-	if length >= 0 && i >= length {
-		check.errorf(x.pos(), "index %s is out of bounds (>= %d)", &x, length)
-		return -1
-	}
-
-	return i
-}
-
-// compositeLitKey resolves unresolved composite literal keys.
-// For details, see comment in go/parser/parser.go, method parseElement.
-func (check *checker) compositeLitKey(key ast.Expr) {
-	if ident, ok := key.(*ast.Ident); ok && ident.Obj == nil {
-		if obj := check.pkg.Scope.Lookup(ident.Name); obj != nil {
-			check.register(ident, obj)
-		} else {
-			check.errorf(ident.Pos(), "undeclared name: %s", ident.Name)
-		}
-	}
-}
-
-// indexElts checks the elements (elts) of an array or slice composite literal
-// against the literal's element type (typ), and the element indices against
-// the literal length if known (length >= 0). It returns the length of the
-// literal (maximum index value + 1).
-//
-func (check *checker) indexedElts(elts []ast.Expr, typ Type, length int64, iota int) int64 {
-	visited := make(map[int64]bool, len(elts))
-	var index, max int64
-	for _, e := range elts {
-		// determine and check index
-		validIndex := false
-		eval := e
-		if kv, _ := e.(*ast.KeyValueExpr); kv != nil {
-			check.compositeLitKey(kv.Key)
-			if i := check.index(kv.Key, length, iota); i >= 0 {
-				index = i
-				validIndex = true
-			}
-			eval = kv.Value
-		} else if length >= 0 && index >= length {
-			check.errorf(e.Pos(), "index %d is out of bounds (>= %d)", index, length)
-		} else {
-			validIndex = true
-		}
-
-		// if we have a valid index, check for duplicate entries
-		if validIndex {
-			if visited[index] {
-				check.errorf(e.Pos(), "duplicate index %d in array or slice literal", index)
-			}
-			visited[index] = true
-		}
-		index++
-		if index > max {
-			max = index
-		}
-
-		// check element against composite literal element type
-		var x operand
-		check.expr(&x, eval, typ, iota)
-		if !x.isAssignable(typ) {
-			check.errorf(x.pos(), "cannot use %s as %s value in array or slice literal", &x, typ)
-		}
-	}
-	return max
-}
-
-// argument typechecks passing an argument arg (if arg != nil) or
-// x (if arg == nil) to the i'th parameter of the given signature.
-// If passSlice is set, the argument is followed by ... in the call.
-//
-func (check *checker) argument(sig *Signature, i int, arg ast.Expr, x *operand, passSlice bool) {
-	// determine parameter
-	var par *Var
-	n := len(sig.Params)
-	if i < n {
-		par = sig.Params[i]
-	} else if sig.IsVariadic {
-		par = sig.Params[n-1]
-	} else {
-		check.errorf(arg.Pos(), "too many arguments")
-		return
-	}
-
-	// determine argument
-	var z operand
-	z.mode = variable
-	z.expr = nil // TODO(gri) can we do better here? (for good error messages)
-	z.typ = par.Type
-
-	if arg != nil {
-		check.expr(x, arg, z.typ, -1)
-	}
-	if x.mode == invalid {
-		return // ignore this argument
-	}
-
-	// check last argument of the form x...
-	if passSlice {
-		if i+1 != n {
-			check.errorf(x.pos(), "can only use ... with matching parameter")
-			return // ignore this argument
-		}
-		// spec: "If the final argument is assignable to a slice type []T,
-		// it may be passed unchanged as the value for a ...T parameter if
-		// the argument is followed by ..."
-		z.typ = &Slice{Elt: z.typ} // change final parameter type to []T
-	}
-
-	check.assignOperand(&z, x)
-}
-
-var emptyResult Result
-
-func (check *checker) callExpr(x *operand) {
-	var typ Type
-	var val interface{}
-	switch x.mode {
-	case invalid:
-		return // nothing to do
-	case novalue:
-		typ = &emptyResult
-	case constant:
-		typ = x.typ
-		val = x.val
-	default:
-		typ = x.typ
-	}
-	check.ctxt.Expr(x.expr, typ, val)
-}
-
-// rawExpr typechecks expression e and initializes x with the expression
-// value or type. If an error occurred, x.mode is set to invalid.
-// A hint != nil is used as operand type for untyped shifted operands;
-// iota >= 0 indicates that the expression is part of a constant declaration.
-// cycleOk indicates whether it is ok for a type expression to refer to itself.
-//
-func (check *checker) rawExpr(x *operand, e ast.Expr, hint Type, iota int, cycleOk bool) {
-	if trace {
-		c := ""
-		if cycleOk {
-			c = " â¨"
-		}
-		check.trace(e.Pos(), "%s (%s, %d%s)", e, typeString(hint), iota, c)
-		defer check.untrace("=> %s", x)
-	}
-
-	if check.ctxt.Expr != nil {
-		defer check.callExpr(x)
-	}
-
-	switch e := e.(type) {
-	case *ast.BadExpr:
-		goto Error // error was reported before
-
-	case *ast.Ident:
-		if e.Name == "_" {
-			check.invalidOp(e.Pos(), "cannot use _ as value or type")
-			goto Error
-		}
-		obj := check.lookup(e)
-		if obj == nil {
-			goto Error // error was reported before
-		}
-		check.object(obj, cycleOk)
-		switch obj := obj.(type) {
-		case *Package:
-			check.errorf(e.Pos(), "use of package %s not in selector", obj.Name)
-			goto Error
-		case *Const:
-			if obj.Val == nil {
-				goto Error // cycle detected
-			}
-			x.mode = constant
-			if obj == universeIota {
-				if iota < 0 {
-					check.invalidAST(e.Pos(), "cannot use iota outside constant declaration")
-					goto Error
-				}
-				x.val = int64(iota)
-			} else {
-				x.val = obj.Val
-			}
-		case *TypeName:
-			x.mode = typexpr
-			if !cycleOk && underlying(obj.Type) == nil {
-				check.errorf(obj.spec.Pos(), "illegal cycle in declaration of %s", obj.Name)
-				x.expr = e
-				x.typ = Typ[Invalid]
-				return // don't goto Error - need x.mode == typexpr
-			}
-		case *Var:
-			x.mode = variable
-		case *Func:
-			x.mode = value
-		default:
-			unreachable()
-		}
-		x.typ = obj.GetType()
-
-	case *ast.Ellipsis:
-		// ellipses are handled explicitly where they are legal
-		// (array composite literals and parameter lists)
-		check.errorf(e.Pos(), "invalid use of '...'")
-		goto Error
-
-	case *ast.BasicLit:
-		x.setConst(e.Kind, e.Value)
-		if x.mode == invalid {
-			check.invalidAST(e.Pos(), "invalid literal %v", e.Value)
-			goto Error
-		}
-
-	case *ast.FuncLit:
-		if sig, ok := check.typ(e.Type, false).(*Signature); ok {
-			x.mode = value
-			x.typ = sig
-			check.later(nil, sig, e.Body)
-		} else {
-			check.invalidAST(e.Pos(), "invalid function literal %s", e)
-			goto Error
-		}
-
-	case *ast.CompositeLit:
-		typ := hint
-		openArray := false
-		if e.Type != nil {
-			// [...]T array types may only appear with composite literals.
-			// Check for them here so we don't have to handle ... in general.
-			typ = nil
-			if atyp, _ := e.Type.(*ast.ArrayType); atyp != nil && atyp.Len != nil {
-				if ellip, _ := atyp.Len.(*ast.Ellipsis); ellip != nil && ellip.Elt == nil {
-					// We have an "open" [...]T array type.
-					// Create a new ArrayType with unknown length (-1)
-					// and finish setting it up after analyzing the literal.
-					typ = &Array{Len: -1, Elt: check.typ(atyp.Elt, cycleOk)}
-					openArray = true
-				}
-			}
-			if typ == nil {
-				typ = check.typ(e.Type, false)
-			}
-		}
-		if typ == nil {
-			check.errorf(e.Pos(), "missing type in composite literal")
-			goto Error
-		}
-
-		switch utyp := underlying(deref(typ)).(type) {
-		case *Struct:
-			if len(e.Elts) == 0 {
-				break
-			}
-			fields := utyp.Fields
-			if _, ok := e.Elts[0].(*ast.KeyValueExpr); ok {
-				// all elements must have keys
-				visited := make([]bool, len(fields))
-				for _, e := range e.Elts {
-					kv, _ := e.(*ast.KeyValueExpr)
-					if kv == nil {
-						check.errorf(e.Pos(), "mixture of field:value and value elements in struct literal")
-						continue
-					}
-					key, _ := kv.Key.(*ast.Ident)
-					if key == nil {
-						check.errorf(kv.Pos(), "invalid field name %s in struct literal", kv.Key)
-						continue
-					}
-					i := utyp.fieldIndex(key.Name)
-					if i < 0 {
-						check.errorf(kv.Pos(), "unknown field %s in struct literal", key.Name)
-						continue
-					}
-					// 0 <= i < len(fields)
-					if visited[i] {
-						check.errorf(kv.Pos(), "duplicate field name %s in struct literal", key.Name)
-						continue
-					}
-					visited[i] = true
-					check.expr(x, kv.Value, nil, iota)
-					etyp := fields[i].Type
-					if !x.isAssignable(etyp) {
-						check.errorf(x.pos(), "cannot use %s as %s value in struct literal", x, etyp)
-						continue
-					}
-				}
-			} else {
-				// no element must have a key
-				for i, e := range e.Elts {
-					if kv, _ := e.(*ast.KeyValueExpr); kv != nil {
-						check.errorf(kv.Pos(), "mixture of field:value and value elements in struct literal")
-						continue
-					}
-					check.expr(x, e, nil, iota)
-					if i >= len(fields) {
-						check.errorf(x.pos(), "too many values in struct literal")
-						break // cannot continue
-					}
-					// i < len(fields)
-					etyp := fields[i].Type
-					if !x.isAssignable(etyp) {
-						check.errorf(x.pos(), "cannot use %s as %s value in struct literal", x, etyp)
-						continue
-					}
-				}
-				if len(e.Elts) < len(fields) {
-					check.errorf(e.Rbrace, "too few values in struct literal")
-					// ok to continue
-				}
-			}
-
-		case *Array:
-			n := check.indexedElts(e.Elts, utyp.Elt, utyp.Len, iota)
-			// if we have an "open" [...]T array, set the length now that we know it
-			if openArray {
-				utyp.Len = n
-			}
-
-		case *Slice:
-			check.indexedElts(e.Elts, utyp.Elt, -1, iota)
-
-		case *Map:
-			visited := make(map[interface{}]bool, len(e.Elts))
-			for _, e := range e.Elts {
-				kv, _ := e.(*ast.KeyValueExpr)
-				if kv == nil {
-					check.errorf(e.Pos(), "missing key in map literal")
-					continue
-				}
-				check.compositeLitKey(kv.Key)
-				check.expr(x, kv.Key, nil, iota)
-				if !x.isAssignable(utyp.Key) {
-					check.errorf(x.pos(), "cannot use %s as %s key in map literal", x, utyp.Key)
-					continue
-				}
-				if x.mode == constant {
-					if visited[x.val] {
-						check.errorf(x.pos(), "duplicate key %s in map literal", x.val)
-						continue
-					}
-					visited[x.val] = true
-				}
-				check.expr(x, kv.Value, utyp.Elt, iota)
-				if !x.isAssignable(utyp.Elt) {
-					check.errorf(x.pos(), "cannot use %s as %s value in map literal", x, utyp.Elt)
-					continue
-				}
-			}
-
-		default:
-			check.errorf(e.Pos(), "%s is not a valid composite literal type", typ)
-			goto Error
-		}
-
-		x.mode = value
-		x.typ = typ
-
-	case *ast.ParenExpr:
-		check.rawExpr(x, e.X, hint, iota, cycleOk)
-
-	case *ast.SelectorExpr:
-		sel := e.Sel.Name
-		// If the identifier refers to a package, handle everything here
-		// so we don't need a "package" mode for operands: package names
-		// can only appear in qualified identifiers which are mapped to
-		// selector expressions.
-		if ident, ok := e.X.(*ast.Ident); ok {
-			if pkg, ok := check.lookup(ident).(*Package); ok {
-				exp := pkg.Scope.Lookup(sel)
-				if exp == nil {
-					check.errorf(e.Sel.Pos(), "cannot refer to unexported %s", sel)
-					goto Error
-				}
-				check.register(e.Sel, exp)
-				// Simplified version of the code for *ast.Idents:
-				// - imported packages use types.Scope and types.Objects
-				// - imported objects are always fully initialized
-				switch exp := exp.(type) {
-				case *Const:
-					assert(exp.Val != nil)
-					x.mode = constant
-					x.typ = exp.Type
-					x.val = exp.Val
-				case *TypeName:
-					x.mode = typexpr
-					x.typ = exp.Type
-				case *Var:
-					x.mode = variable
-					x.typ = exp.Type
-				case *Func:
-					x.mode = value
-					x.typ = exp.Type
-				default:
-					unreachable()
-				}
-				x.expr = e
-				return
-			}
-		}
-
-		check.exprOrType(x, e.X, nil, iota, false)
-		if x.mode == invalid {
-			goto Error
-		}
-		mode, typ := lookupField(x.typ, QualifiedName{check.pkg, sel})
-		if mode == invalid {
-			check.invalidOp(e.Pos(), "%s has no single field or method %s", x, sel)
-			goto Error
-		}
-		if x.mode == typexpr {
-			// method expression
-			sig, ok := typ.(*Signature)
-			if !ok {
-				check.invalidOp(e.Pos(), "%s has no method %s", x, sel)
-				goto Error
-			}
-			// the receiver type becomes the type of the first function
-			// argument of the method expression's function type
-			// TODO(gri) at the moment, method sets don't correctly track
-			// pointer vs non-pointer receivers => typechecker is too lenient
-			x.mode = value
-			x.typ = &Signature{
-				Params:     append([]*Var{{Type: x.typ}}, sig.Params...),
-				Results:    sig.Results,
-				IsVariadic: sig.IsVariadic,
-			}
-		} else {
-			// regular selector
-			x.mode = mode
-			x.typ = typ
-		}
-
-	case *ast.IndexExpr:
-		check.expr(x, e.X, hint, iota)
-
-		valid := false
-		length := int64(-1) // valid if >= 0
-		switch typ := underlying(x.typ).(type) {
-		case *Basic:
-			if isString(typ) {
-				valid = true
-				if x.mode == constant {
-					length = int64(len(x.val.(string)))
-				}
-				// an indexed string always yields a byte value
-				// (not a constant) even if the string and the
-				// index are constant
-				x.mode = value
-				x.typ = Typ[Byte]
-			}
-
-		case *Array:
-			valid = true
-			length = typ.Len
-			if x.mode != variable {
-				x.mode = value
-			}
-			x.typ = typ.Elt
-
-		case *Pointer:
-			if typ, _ := underlying(typ.Base).(*Array); typ != nil {
-				valid = true
-				length = typ.Len
-				x.mode = variable
-				x.typ = typ.Elt
-			}
-
-		case *Slice:
-			valid = true
-			x.mode = variable
-			x.typ = typ.Elt
-
-		case *Map:
-			var key operand
-			check.expr(&key, e.Index, nil, iota)
-			if key.mode == invalid || !key.isAssignable(typ.Key) {
-				check.invalidOp(x.pos(), "cannot use %s as map index of type %s", &key, typ.Key)
-				goto Error
-			}
-			x.mode = valueok
-			x.typ = typ.Elt
-			x.expr = e
-			return
-		}
-
-		if !valid {
-			check.invalidOp(x.pos(), "cannot index %s", x)
-			goto Error
-		}
-
-		if e.Index == nil {
-			check.invalidAST(e.Pos(), "missing index expression for %s", x)
-			return
-		}
-
-		check.index(e.Index, length, iota)
-		// ok to continue
-
-	case *ast.SliceExpr:
-		check.expr(x, e.X, hint, iota)
-
-		valid := false
-		length := int64(-1) // valid if >= 0
-		switch typ := underlying(x.typ).(type) {
-		case *Basic:
-			if isString(typ) {
-				valid = true
-				if x.mode == constant {
-					length = int64(len(x.val.(string))) + 1 // +1 for slice
-				}
-				// a sliced string always yields a string value
-				// of the same type as the original string (not
-				// a constant) even if the string and the indices
-				// are constant
-				x.mode = value
-				// x.typ doesn't change
-			}
-
-		case *Array:
-			valid = true
-			length = typ.Len + 1 // +1 for slice
-			if x.mode != variable {
-				check.invalidOp(x.pos(), "cannot slice %s (value not addressable)", x)
-				goto Error
-			}
-			x.typ = &Slice{Elt: typ.Elt}
-
-		case *Pointer:
-			if typ, _ := underlying(typ.Base).(*Array); typ != nil {
-				valid = true
-				length = typ.Len + 1 // +1 for slice
-				x.mode = variable
-				x.typ = &Slice{Elt: typ.Elt}
-			}
-
-		case *Slice:
-			valid = true
-			x.mode = variable
-			// x.typ doesn't change
-		}
-
-		if !valid {
-			check.invalidOp(x.pos(), "cannot slice %s", x)
-			goto Error
-		}
-
-		lo := int64(0)
-		if e.Low != nil {
-			lo = check.index(e.Low, length, iota)
-		}
-
-		hi := int64(-1)
-		if e.High != nil {
-			hi = check.index(e.High, length, iota)
-		} else if length >= 0 {
-			hi = length
-		}
-
-		if lo >= 0 && hi >= 0 && lo > hi {
-			check.errorf(e.Low.Pos(), "inverted slice range: %d > %d", lo, hi)
-			// ok to continue
-		}
-
-	case *ast.TypeAssertExpr:
-		check.expr(x, e.X, hint, iota)
-		if x.mode == invalid {
-			goto Error
-		}
-		var T *Interface
-		if T, _ = underlying(x.typ).(*Interface); T == nil {
-			check.invalidOp(x.pos(), "%s is not an interface", x)
-			goto Error
-		}
-		// x.(type) expressions are handled explicitly in type switches
-		if e.Type == nil {
-			check.errorf(e.Pos(), "use of .(type) outside type switch")
-			goto Error
-		}
-		typ := check.typ(e.Type, false)
-		if typ == Typ[Invalid] {
-			goto Error
-		}
-		if method, wrongType := missingMethod(typ, T); method != nil {
-			var msg string
-			if wrongType {
-				msg = "%s cannot have dynamic type %s (wrong type for method %s)"
-			} else {
-				msg = "%s cannot have dynamic type %s (missing method %s)"
-			}
-			check.errorf(e.Type.Pos(), msg, x, typ, method.Name)
-			// ok to continue
-		}
-		x.mode = valueok
-		x.expr = e
-		x.typ = typ
-
-	case *ast.CallExpr:
-		check.exprOrType(x, e.Fun, nil, iota, false)
-		if x.mode == invalid {
-			goto Error
-		} else if x.mode == typexpr {
-			check.conversion(x, e, x.typ, iota)
-		} else if sig, ok := underlying(x.typ).(*Signature); ok {
-			// check parameters
-
-			// If we have a trailing ... at the end of the parameter
-			// list, the last argument must match the parameter type
-			// []T of a variadic function parameter x ...T.
-			passSlice := false
-			if e.Ellipsis.IsValid() {
-				if sig.IsVariadic {
-					passSlice = true
-				} else {
-					check.errorf(e.Ellipsis, "cannot use ... in call to %s", e.Fun)
-					// ok to continue
-				}
-			}
-
-			// If we have a single argument that is a function call
-			// we need to handle it separately. Determine if this
-			// is the case without checking the argument.
-			var call *ast.CallExpr
-			if len(e.Args) == 1 {
-				call, _ = unparen(e.Args[0]).(*ast.CallExpr)
-			}
-
-			n := 0 // parameter count
-			if call != nil {
-				// We have a single argument that is a function call.
-				check.expr(x, call, nil, -1)
-				if x.mode == invalid {
-					goto Error // TODO(gri): we can do better
-				}
-				if t, _ := x.typ.(*Result); t != nil {
-					// multiple result values
-					n = len(t.Values)
-					for i, obj := range t.Values {
-						x.mode = value
-						x.expr = nil // TODO(gri) can we do better here? (for good error messages)
-						x.typ = obj.Type
-						check.argument(sig, i, nil, x, passSlice && i+1 == n)
-					}
-				} else {
-					// single result value
-					n = 1
-					check.argument(sig, 0, nil, x, passSlice)
-				}
-
-			} else {
-				// We don't have a single argument or it is not a function call.
-				n = len(e.Args)
-				for i, arg := range e.Args {
-					check.argument(sig, i, arg, x, passSlice && i+1 == n)
-				}
-			}
-
-			// determine if we have enough arguments
-			if sig.IsVariadic {
-				// a variadic function accepts an "empty"
-				// last argument: count one extra
-				n++
-			}
-			if n < len(sig.Params) {
-				check.errorf(e.Fun.Pos(), "too few arguments in call to %s", e.Fun)
-				// ok to continue
-			}
-
-			// determine result
-			switch len(sig.Results) {
-			case 0:
-				x.mode = novalue
-			case 1:
-				x.mode = value
-				x.typ = sig.Results[0].Type
-			default:
-				x.mode = value
-				x.typ = &Result{Values: sig.Results}
-			}
-
-		} else if bin, ok := x.typ.(*builtin); ok {
-			check.builtin(x, e, bin, iota)
-
-		} else {
-			check.invalidOp(x.pos(), "cannot call non-function %s", x)
-			goto Error
-		}
-
-	case *ast.StarExpr:
-		check.exprOrType(x, e.X, hint, iota, true)
-		switch x.mode {
-		case invalid:
-			goto Error
-		case typexpr:
-			x.typ = &Pointer{Base: x.typ}
-		default:
-			if typ, ok := x.typ.(*Pointer); ok {
-				x.mode = variable
-				x.typ = typ.Base
-			} else {
-				check.invalidOp(x.pos(), "cannot indirect %s", x)
-				goto Error
-			}
-		}
-
-	case *ast.UnaryExpr:
-		check.expr(x, e.X, hint, iota)
-		check.unary(x, e.Op)
-
-	case *ast.BinaryExpr:
-		var y operand
-		check.expr(x, e.X, hint, iota)
-		check.expr(&y, e.Y, hint, iota)
-		check.binary(x, &y, e.Op, hint)
-
-	case *ast.KeyValueExpr:
-		// key:value expressions are handled in composite literals
-		check.invalidAST(e.Pos(), "no key:value expected")
-		goto Error
-
-	case *ast.ArrayType:
-		if e.Len != nil {
-			check.expr(x, e.Len, nil, iota)
-			if x.mode == invalid {
-				goto Error
-			}
-			if x.mode != constant {
-				if x.mode != invalid {
-					check.errorf(x.pos(), "array length %s must be constant", x)
-				}
-				goto Error
-			}
-			n, ok := x.val.(int64)
-			if !ok || n < 0 {
-				check.errorf(x.pos(), "invalid array length %s", x)
-				goto Error
-			}
-			x.typ = &Array{Len: n, Elt: check.typ(e.Elt, cycleOk)}
-		} else {
-			x.typ = &Slice{Elt: check.typ(e.Elt, true)}
-		}
-		x.mode = typexpr
-
-	case *ast.StructType:
-		x.mode = typexpr
-		x.typ = &Struct{Fields: check.collectFields(e.Fields, cycleOk)}
-
-	case *ast.FuncType:
-		params, isVariadic := check.collectParams(e.Params, true)
-		results, _ := check.collectParams(e.Results, false)
-		x.mode = typexpr
-		x.typ = &Signature{Recv: nil, Params: params, Results: results, IsVariadic: isVariadic}
-
-	case *ast.InterfaceType:
-		x.mode = typexpr
-		x.typ = &Interface{Methods: check.collectMethods(e.Methods)}
-
-	case *ast.MapType:
-		x.mode = typexpr
-		x.typ = &Map{Key: check.typ(e.Key, true), Elt: check.typ(e.Value, true)}
-
-	case *ast.ChanType:
-		x.mode = typexpr
-		x.typ = &Chan{Dir: e.Dir, Elt: check.typ(e.Value, true)}
-
-	default:
-		check.dump("e = %s", e)
-		unreachable()
-	}
-
-	// everything went well
-	x.expr = e
-	return
-
-Error:
-	x.mode = invalid
-	x.expr = e
-}
-
-// exprOrType is like rawExpr but reports an error if e doesn't represents a value or type.
-func (check *checker) exprOrType(x *operand, e ast.Expr, hint Type, iota int, cycleOk bool) {
-	check.rawExpr(x, e, hint, iota, cycleOk)
-	if x.mode == novalue {
-		check.errorf(x.pos(), "%s used as value or type", x)
-		x.mode = invalid
-	}
-}
-
-// expr is like rawExpr but reports an error if e doesn't represents a value.
-func (check *checker) expr(x *operand, e ast.Expr, hint Type, iota int) {
-	check.rawExpr(x, e, hint, iota, false)
-	switch x.mode {
-	case novalue:
-		check.errorf(x.pos(), "%s used as value", x)
-		x.mode = invalid
-	case typexpr:
-		check.errorf(x.pos(), "%s is not an expression", x)
-		x.mode = invalid
-	}
-}
-
-func (check *checker) rawTyp(e ast.Expr, cycleOk, nilOk bool) Type {
-	var x operand
-	check.rawExpr(&x, e, nil, -1, cycleOk)
-	switch x.mode {
-	case invalid:
-		// ignore - error reported before
-	case novalue:
-		check.errorf(x.pos(), "%s used as type", &x)
-	case typexpr:
-		return x.typ
-	case constant:
-		if nilOk && x.isNil() {
-			return nil
-		}
-		fallthrough
-	default:
-		check.errorf(x.pos(), "%s is not a type", &x)
-	}
-	return Typ[Invalid]
-}
-
-// typOrNil is like rawExpr but reports an error if e doesn't represents a type or the predeclared value nil.
-// It returns e's type, nil, or Typ[Invalid] if an error occurred.
-//
-func (check *checker) typOrNil(e ast.Expr, cycleOk bool) Type {
-	return check.rawTyp(e, cycleOk, true)
-}
-
-// typ is like rawExpr but reports an error if e doesn't represents a type.
-// It returns e's type, or Typ[Invalid] if an error occurred.
-//
-func (check *checker) typ(e ast.Expr, cycleOk bool) Type {
-	return check.rawTyp(e, cycleOk, false)
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/gcimporter.go gcc-4.8.1/libgo/go/go/types/gcimporter.go
--- gcc-4.8.1.orig/libgo/go/go/types/gcimporter.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/gcimporter.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,908 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements an Importer for gc-generated object files.
-
-package types
-
-import (
-	"bufio"
-	"errors"
-	"fmt"
-	"go/ast"
-	"go/build"
-	"go/token"
-	"io"
-	"math/big"
-	"os"
-	"path/filepath"
-	"strconv"
-	"strings"
-	"text/scanner"
-)
-
-var pkgExts = [...]string{".a", ".5", ".6", ".8"}
-
-// FindPkg returns the filename and unique package id for an import
-// path based on package information provided by build.Import (using
-// the build.Default build.Context).
-// If no file was found, an empty filename is returned.
-//
-func FindPkg(path, srcDir string) (filename, id string) {
-	if len(path) == 0 {
-		return
-	}
-
-	id = path
-	var noext string
-	switch {
-	default:
-		// "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x"
-		// Don't require the source files to be present.
-		bp, _ := build.Import(path, srcDir, build.FindOnly|build.AllowBinary)
-		if bp.PkgObj == "" {
-			return
-		}
-		noext = bp.PkgObj
-		if strings.HasSuffix(noext, ".a") {
-			noext = noext[:len(noext)-len(".a")]
-		}
-
-	case build.IsLocalImport(path):
-		// "./x" -> "/this/directory/x.ext", "/this/directory/x"
-		noext = filepath.Join(srcDir, path)
-		id = noext
-
-	case filepath.IsAbs(path):
-		// for completeness only - go/build.Import
-		// does not support absolute imports
-		// "/x" -> "/x.ext", "/x"
-		noext = path
-	}
-
-	// try extensions
-	for _, ext := range pkgExts {
-		filename = noext + ext
-		if f, err := os.Stat(filename); err == nil && !f.IsDir() {
-			return
-		}
-	}
-
-	filename = "" // not found
-	return
-}
-
-// GcImportData imports a package by reading the gc-generated export data,
-// adds the corresponding package object to the imports map indexed by id,
-// and returns the object.
-//
-// The imports map must contains all packages already imported. The data
-// reader position must be the beginning of the export data section. The
-// filename is only used in error messages.
-//
-// If imports[id] contains the completely imported package, that package
-// can be used directly, and there is no need to call this function (but
-// there is also no harm but for extra time used).
-//
-func GcImportData(imports map[string]*Package, filename, id string, data *bufio.Reader) (pkg *Package, err error) {
-	// support for gcParser error handling
-	defer func() {
-		if r := recover(); r != nil {
-			err = r.(importError) // will re-panic if r is not an importError
-		}
-	}()
-
-	var p gcParser
-	p.init(filename, id, data, imports)
-	pkg = p.parseExport()
-
-	return
-}
-
-// GcImport imports a gc-generated package given its import path, adds the
-// corresponding package object to the imports map, and returns the object.
-// Local import paths are interpreted relative to the current working directory.
-// The imports map must contains all packages already imported.
-// GcImport satisfies the ast.Importer signature.
-//
-func GcImport(imports map[string]*Package, path string) (pkg *Package, err error) {
-	if path == "unsafe" {
-		return Unsafe, nil
-	}
-
-	srcDir, err := os.Getwd()
-	if err != nil {
-		return
-	}
-	filename, id := FindPkg(path, srcDir)
-	if filename == "" {
-		err = errors.New("can't find import: " + id)
-		return
-	}
-
-	// no need to re-import if the package was imported completely before
-	if pkg = imports[id]; pkg != nil && pkg.Complete {
-		return
-	}
-
-	// open file
-	f, err := os.Open(filename)
-	if err != nil {
-		return
-	}
-	defer func() {
-		f.Close()
-		if err != nil {
-			// Add file name to error.
-			err = fmt.Errorf("reading export data: %s: %v", filename, err)
-		}
-	}()
-
-	buf := bufio.NewReader(f)
-	if err = FindGcExportData(buf); err != nil {
-		return
-	}
-
-	pkg, err = GcImportData(imports, filename, id, buf)
-
-	return
-}
-
-// ----------------------------------------------------------------------------
-// gcParser
-
-// gcParser parses the exports inside a gc compiler-produced
-// object/archive file and populates its scope with the results.
-type gcParser struct {
-	scanner scanner.Scanner
-	tok     rune                // current token
-	lit     string              // literal string; only valid for Ident, Int, String tokens
-	id      string              // package id of imported package
-	imports map[string]*Package // package id -> package object
-}
-
-func (p *gcParser) init(filename, id string, src io.Reader, imports map[string]*Package) {
-	p.scanner.Init(src)
-	p.scanner.Error = func(_ *scanner.Scanner, msg string) { p.error(msg) }
-	p.scanner.Mode = scanner.ScanIdents | scanner.ScanInts | scanner.ScanChars | scanner.ScanStrings | scanner.ScanComments | scanner.SkipComments
-	p.scanner.Whitespace = 1<<'\t' | 1<<' '
-	p.scanner.Filename = filename // for good error messages
-	p.next()
-	p.id = id
-	p.imports = imports
-}
-
-func (p *gcParser) next() {
-	p.tok = p.scanner.Scan()
-	switch p.tok {
-	case scanner.Ident, scanner.Int, scanner.Char, scanner.String, 'Â·':
-		p.lit = p.scanner.TokenText()
-	default:
-		p.lit = ""
-	}
-	// leave for debugging
-	if false {
-		fmt.Printf("%s: %q -> %q\n", scanner.TokenString(p.tok), p.scanner.TokenText(), p.lit)
-	}
-}
-
-func declConst(scope *Scope, name string) *Const {
-	// the constant may have been imported before - if it exists
-	// already in the respective scope, return that constant
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*Const)
-	}
-	// otherwise create a new constant and insert it into the scope
-	obj := &Const{Name: name}
-	scope.Insert(obj)
-	return obj
-}
-
-func declTypeName(scope *Scope, name string) *TypeName {
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*TypeName)
-	}
-	obj := &TypeName{Name: name}
-	// a named type may be referred to before the underlying type
-	// is known - set it up
-	obj.Type = &NamedType{Obj: obj}
-	scope.Insert(obj)
-	return obj
-}
-
-func declVar(scope *Scope, name string) *Var {
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*Var)
-	}
-	obj := &Var{Name: name}
-	scope.Insert(obj)
-	return obj
-}
-
-func declFunc(scope *Scope, name string) *Func {
-	if obj := scope.Lookup(name); obj != nil {
-		return obj.(*Func)
-	}
-	obj := &Func{Name: name}
-	scope.Insert(obj)
-	return obj
-}
-
-// ----------------------------------------------------------------------------
-// Error handling
-
-// Internal errors are boxed as importErrors.
-type importError struct {
-	pos scanner.Position
-	err error
-}
-
-func (e importError) Error() string {
-	return fmt.Sprintf("import error %s (byte offset = %d): %s", e.pos, e.pos.Offset, e.err)
-}
-
-func (p *gcParser) error(err interface{}) {
-	if s, ok := err.(string); ok {
-		err = errors.New(s)
-	}
-	// panic with a runtime.Error if err is not an error
-	panic(importError{p.scanner.Pos(), err.(error)})
-}
-
-func (p *gcParser) errorf(format string, args ...interface{}) {
-	p.error(fmt.Sprintf(format, args...))
-}
-
-func (p *gcParser) expect(tok rune) string {
-	lit := p.lit
-	if p.tok != tok {
-		p.errorf("expected %s, got %s (%s)", scanner.TokenString(tok), scanner.TokenString(p.tok), lit)
-	}
-	p.next()
-	return lit
-}
-
-func (p *gcParser) expectSpecial(tok string) {
-	sep := 'x' // not white space
-	i := 0
-	for i < len(tok) && p.tok == rune(tok[i]) && sep > ' ' {
-		sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token
-		p.next()
-		i++
-	}
-	if i < len(tok) {
-		p.errorf("expected %q, got %q", tok, tok[0:i])
-	}
-}
-
-func (p *gcParser) expectKeyword(keyword string) {
-	lit := p.expect(scanner.Ident)
-	if lit != keyword {
-		p.errorf("expected keyword %s, got %q", keyword, lit)
-	}
-}
-
-// ----------------------------------------------------------------------------
-// Import declarations
-
-// ImportPath = string_lit .
-//
-func (p *gcParser) parsePkgId() *Package {
-	id, err := strconv.Unquote(p.expect(scanner.String))
-	if err != nil {
-		p.error(err)
-	}
-
-	switch id {
-	case "":
-		// id == "" stands for the imported package id
-		// (only known at time of package installation)
-		id = p.id
-	case "unsafe":
-		// package unsafe is not in the imports map - handle explicitly
-		return Unsafe
-	}
-
-	pkg := p.imports[id]
-	if pkg == nil {
-		pkg = &Package{Scope: new(Scope)}
-		p.imports[id] = pkg
-	}
-
-	return pkg
-}
-
-// dotIdentifier = ( ident | 'Â·' ) { ident | int | 'Â·' } .
-func (p *gcParser) parseDotIdent() string {
-	ident := ""
-	if p.tok != scanner.Int {
-		sep := 'x' // not white space
-		for (p.tok == scanner.Ident || p.tok == scanner.Int || p.tok == 'Â·') && sep > ' ' {
-			ident += p.lit
-			sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token
-			p.next()
-		}
-	}
-	if ident == "" {
-		p.expect(scanner.Ident) // use expect() for error handling
-	}
-	return ident
-}
-
-// ExportedName = "@" ImportPath "." dotIdentifier .
-//
-func (p *gcParser) parseExportedName() (*Package, string) {
-	p.expect('@')
-	pkg := p.parsePkgId()
-	p.expect('.')
-	name := p.parseDotIdent()
-	return pkg, name
-}
-
-// ----------------------------------------------------------------------------
-// Types
-
-// BasicType = identifier .
-//
-func (p *gcParser) parseBasicType() Type {
-	id := p.expect(scanner.Ident)
-	obj := Universe.Lookup(id)
-	if obj, ok := obj.(*TypeName); ok {
-		return obj.Type
-	}
-	p.errorf("not a basic type: %s", id)
-	return nil
-}
-
-// ArrayType = "[" int_lit "]" Type .
-//
-func (p *gcParser) parseArrayType() Type {
-	// "[" already consumed and lookahead known not to be "]"
-	lit := p.expect(scanner.Int)
-	p.expect(']')
-	elt := p.parseType()
-	n, err := strconv.ParseInt(lit, 10, 64)
-	if err != nil {
-		p.error(err)
-	}
-	return &Array{Len: n, Elt: elt}
-}
-
-// MapType = "map" "[" Type "]" Type .
-//
-func (p *gcParser) parseMapType() Type {
-	p.expectKeyword("map")
-	p.expect('[')
-	key := p.parseType()
-	p.expect(']')
-	elt := p.parseType()
-	return &Map{Key: key, Elt: elt}
-}
-
-// Name = identifier | "?" | ExportedName  .
-//
-func (p *gcParser) parseName() (pkg *Package, name string) {
-	switch p.tok {
-	case scanner.Ident:
-		name = p.lit
-		p.next()
-	case '?':
-		// anonymous
-		p.next()
-	case '@':
-		// exported name prefixed with package path
-		pkg, name = p.parseExportedName()
-	default:
-		p.error("name expected")
-	}
-	return
-}
-
-// Field = Name Type [ string_lit ] .
-//
-func (p *gcParser) parseField() *Field {
-	var f Field
-	f.Pkg, f.Name = p.parseName()
-	f.Type = p.parseType()
-	if p.tok == scanner.String {
-		f.Tag = p.expect(scanner.String)
-	}
-	if f.Name == "" {
-		// anonymous field - typ must be T or *T and T must be a type name
-		if typ, ok := deref(f.Type).(*NamedType); ok && typ.Obj != nil {
-			f.Name = typ.Obj.GetName()
-			f.IsAnonymous = true
-		} else {
-			p.errorf("anonymous field expected")
-		}
-	}
-	return &f
-}
-
-// StructType = "struct" "{" [ FieldList ] "}" .
-// FieldList  = Field { ";" Field } .
-//
-func (p *gcParser) parseStructType() Type {
-	var fields []*Field
-
-	p.expectKeyword("struct")
-	p.expect('{')
-	for p.tok != '}' {
-		if len(fields) > 0 {
-			p.expect(';')
-		}
-		fields = append(fields, p.parseField())
-	}
-	p.expect('}')
-
-	return &Struct{Fields: fields}
-}
-
-// Parameter = ( identifier | "?" ) [ "..." ] Type [ string_lit ] .
-//
-func (p *gcParser) parseParameter() (par *Var, isVariadic bool) {
-	_, name := p.parseName()
-	if name == "" {
-		name = "_" // cannot access unnamed identifiers
-	}
-	if p.tok == '.' {
-		p.expectSpecial("...")
-		isVariadic = true
-	}
-	typ := p.parseType()
-	// ignore argument tag (e.g. "noescape")
-	if p.tok == scanner.String {
-		p.next()
-	}
-	par = &Var{Name: name, Type: typ}
-	return
-}
-
-// Parameters    = "(" [ ParameterList ] ")" .
-// ParameterList = { Parameter "," } Parameter .
-//
-func (p *gcParser) parseParameters() (list []*Var, isVariadic bool) {
-	p.expect('(')
-	for p.tok != ')' {
-		if len(list) > 0 {
-			p.expect(',')
-		}
-		par, variadic := p.parseParameter()
-		list = append(list, par)
-		if variadic {
-			if isVariadic {
-				p.error("... not on final argument")
-			}
-			isVariadic = true
-		}
-	}
-	p.expect(')')
-
-	return
-}
-
-// Signature = Parameters [ Result ] .
-// Result    = Type | Parameters .
-//
-func (p *gcParser) parseSignature() *Signature {
-	params, isVariadic := p.parseParameters()
-
-	// optional result type
-	var results []*Var
-	switch p.tok {
-	case scanner.Ident, '[', '*', '<', '@':
-		// single, unnamed result
-		results = []*Var{{Type: p.parseType()}}
-	case '(':
-		// named or multiple result(s)
-		var variadic bool
-		results, variadic = p.parseParameters()
-		if variadic {
-			p.error("... not permitted on result type")
-		}
-	}
-
-	return &Signature{Params: params, Results: results, IsVariadic: isVariadic}
-}
-
-// InterfaceType = "interface" "{" [ MethodList ] "}" .
-// MethodList    = Method { ";" Method } .
-// Method        = Name Signature .
-//
-// The methods of embedded interfaces are always "inlined"
-// by the compiler and thus embedded interfaces are never
-// visible in the export data.
-//
-func (p *gcParser) parseInterfaceType() Type {
-	var methods []*Method
-
-	p.expectKeyword("interface")
-	p.expect('{')
-	for p.tok != '}' {
-		if len(methods) > 0 {
-			p.expect(';')
-		}
-		pkg, name := p.parseName()
-		typ := p.parseSignature()
-		methods = append(methods, &Method{QualifiedName{pkg, name}, typ})
-	}
-	p.expect('}')
-
-	return &Interface{Methods: methods}
-}
-
-// ChanType = ( "chan" [ "<-" ] | "<-" "chan" ) Type .
-//
-func (p *gcParser) parseChanType() Type {
-	dir := ast.SEND | ast.RECV
-	if p.tok == scanner.Ident {
-		p.expectKeyword("chan")
-		if p.tok == '<' {
-			p.expectSpecial("<-")
-			dir = ast.SEND
-		}
-	} else {
-		p.expectSpecial("<-")
-		p.expectKeyword("chan")
-		dir = ast.RECV
-	}
-	elt := p.parseType()
-	return &Chan{Dir: dir, Elt: elt}
-}
-
-// Type =
-//	BasicType | TypeName | ArrayType | SliceType | StructType |
-//      PointerType | FuncType | InterfaceType | MapType | ChanType |
-//      "(" Type ")" .
-//
-// BasicType   = ident .
-// TypeName    = ExportedName .
-// SliceType   = "[" "]" Type .
-// PointerType = "*" Type .
-// FuncType    = "func" Signature .
-//
-func (p *gcParser) parseType() Type {
-	switch p.tok {
-	case scanner.Ident:
-		switch p.lit {
-		default:
-			return p.parseBasicType()
-		case "struct":
-			return p.parseStructType()
-		case "func":
-			// FuncType
-			p.next()
-			return p.parseSignature()
-		case "interface":
-			return p.parseInterfaceType()
-		case "map":
-			return p.parseMapType()
-		case "chan":
-			return p.parseChanType()
-		}
-	case '@':
-		// TypeName
-		pkg, name := p.parseExportedName()
-		return declTypeName(pkg.Scope, name).Type
-	case '[':
-		p.next() // look ahead
-		if p.tok == ']' {
-			// SliceType
-			p.next()
-			return &Slice{Elt: p.parseType()}
-		}
-		return p.parseArrayType()
-	case '*':
-		// PointerType
-		p.next()
-		return &Pointer{Base: p.parseType()}
-	case '<':
-		return p.parseChanType()
-	case '(':
-		// "(" Type ")"
-		p.next()
-		typ := p.parseType()
-		p.expect(')')
-		return typ
-	}
-	p.errorf("expected type, got %s (%q)", scanner.TokenString(p.tok), p.lit)
-	return nil
-}
-
-// ----------------------------------------------------------------------------
-// Declarations
-
-// ImportDecl = "import" identifier string_lit .
-//
-func (p *gcParser) parseImportDecl() {
-	p.expectKeyword("import")
-	// The identifier has no semantic meaning in the import data.
-	// It exists so that error messages can print the real package
-	// name: binary.ByteOrder instead of "encoding/binary".ByteOrder.
-	name := p.expect(scanner.Ident)
-	pkg := p.parsePkgId()
-	assert(pkg.Name == "" || pkg.Name == name)
-	pkg.Name = name
-}
-
-// int_lit = [ "+" | "-" ] { "0" ... "9" } .
-//
-func (p *gcParser) parseInt() (neg bool, val string) {
-	switch p.tok {
-	case '-':
-		neg = true
-		fallthrough
-	case '+':
-		p.next()
-	}
-	val = p.expect(scanner.Int)
-	return
-}
-
-// number = int_lit [ "p" int_lit ] .
-//
-func (p *gcParser) parseNumber() (x operand) {
-	x.mode = constant
-
-	// mantissa
-	neg, val := p.parseInt()
-	mant, ok := new(big.Int).SetString(val, 0)
-	assert(ok)
-	if neg {
-		mant.Neg(mant)
-	}
-
-	if p.lit == "p" {
-		// exponent (base 2)
-		p.next()
-		neg, val = p.parseInt()
-		exp64, err := strconv.ParseUint(val, 10, 0)
-		if err != nil {
-			p.error(err)
-		}
-		exp := uint(exp64)
-		if neg {
-			denom := big.NewInt(1)
-			denom.Lsh(denom, exp)
-			x.typ = Typ[UntypedFloat]
-			x.val = normalizeRatConst(new(big.Rat).SetFrac(mant, denom))
-			return
-		}
-		if exp > 0 {
-			mant.Lsh(mant, exp)
-		}
-		x.typ = Typ[UntypedFloat]
-		x.val = normalizeIntConst(mant)
-		return
-	}
-
-	x.typ = Typ[UntypedInt]
-	x.val = normalizeIntConst(mant)
-	return
-}
-
-// ConstDecl   = "const" ExportedName [ Type ] "=" Literal .
-// Literal     = bool_lit | int_lit | float_lit | complex_lit | rune_lit | string_lit .
-// bool_lit    = "true" | "false" .
-// complex_lit = "(" float_lit "+" float_lit "i" ")" .
-// rune_lit    = "(" int_lit "+" int_lit ")" .
-// string_lit  = `"` { unicode_char } `"` .
-//
-func (p *gcParser) parseConstDecl() {
-	p.expectKeyword("const")
-	pkg, name := p.parseExportedName()
-	obj := declConst(pkg.Scope, name)
-	var x operand
-	if p.tok != '=' {
-		obj.Type = p.parseType()
-	}
-	p.expect('=')
-	switch p.tok {
-	case scanner.Ident:
-		// bool_lit
-		if p.lit != "true" && p.lit != "false" {
-			p.error("expected true or false")
-		}
-		x.typ = Typ[UntypedBool]
-		x.val = p.lit == "true"
-		p.next()
-
-	case '-', scanner.Int:
-		// int_lit
-		x = p.parseNumber()
-
-	case '(':
-		// complex_lit or rune_lit
-		p.next()
-		if p.tok == scanner.Char {
-			p.next()
-			p.expect('+')
-			x = p.parseNumber()
-			x.typ = Typ[UntypedRune]
-			p.expect(')')
-			break
-		}
-		re := p.parseNumber()
-		p.expect('+')
-		im := p.parseNumber()
-		p.expectKeyword("i")
-		p.expect(')')
-		x.typ = Typ[UntypedComplex]
-		// TODO(gri) fix this
-		_, _ = re, im
-		x.val = zeroConst
-
-	case scanner.Char:
-		// rune_lit
-		x.setConst(token.CHAR, p.lit)
-		p.next()
-
-	case scanner.String:
-		// string_lit
-		x.setConst(token.STRING, p.lit)
-		p.next()
-
-	default:
-		p.errorf("expected literal got %s", scanner.TokenString(p.tok))
-	}
-	if obj.Type == nil {
-		obj.Type = x.typ
-	}
-	assert(x.val != nil)
-	obj.Val = x.val
-}
-
-// TypeDecl = "type" ExportedName Type .
-//
-func (p *gcParser) parseTypeDecl() {
-	p.expectKeyword("type")
-	pkg, name := p.parseExportedName()
-	obj := declTypeName(pkg.Scope, name)
-
-	// The type object may have been imported before and thus already
-	// have a type associated with it. We still need to parse the type
-	// structure, but throw it away if the object already has a type.
-	// This ensures that all imports refer to the same type object for
-	// a given type declaration.
-	typ := p.parseType()
-
-	if name := obj.Type.(*NamedType); name.Underlying == nil {
-		name.Underlying = typ
-	}
-}
-
-// VarDecl = "var" ExportedName Type .
-//
-func (p *gcParser) parseVarDecl() {
-	p.expectKeyword("var")
-	pkg, name := p.parseExportedName()
-	obj := declVar(pkg.Scope, name)
-	obj.Type = p.parseType()
-}
-
-// Func = Signature [ Body ] .
-// Body = "{" ... "}" .
-//
-func (p *gcParser) parseFunc() *Signature {
-	sig := p.parseSignature()
-	if p.tok == '{' {
-		p.next()
-		for i := 1; i > 0; p.next() {
-			switch p.tok {
-			case '{':
-				i++
-			case '}':
-				i--
-			}
-		}
-	}
-	return sig
-}
-
-// MethodDecl = "func" Receiver Name Func .
-// Receiver   = "(" ( identifier | "?" ) [ "*" ] ExportedName ")" .
-//
-func (p *gcParser) parseMethodDecl() {
-	// "func" already consumed
-	p.expect('(')
-	recv, _ := p.parseParameter() // receiver
-	p.expect(')')
-
-	// determine receiver base type object
-	typ := recv.Type
-	if ptr, ok := typ.(*Pointer); ok {
-		typ = ptr.Base
-	}
-	base := typ.(*NamedType)
-
-	// parse method name, signature, and possibly inlined body
-	pkg, name := p.parseName() // unexported method names in imports are qualified with their package.
-	sig := p.parseFunc()
-	sig.Recv = recv
-
-	// add method to type unless type was imported before
-	// and method exists already
-	// TODO(gri) investigate if this can be avoided
-	for _, m := range base.Methods {
-		if m.Name == name {
-			return // method was added before
-		}
-	}
-	base.Methods = append(base.Methods, &Method{QualifiedName{pkg, name}, sig})
-}
-
-// FuncDecl = "func" ExportedName Func .
-//
-func (p *gcParser) parseFuncDecl() {
-	// "func" already consumed
-	pkg, name := p.parseExportedName()
-	typ := p.parseFunc()
-	declFunc(pkg.Scope, name).Type = typ
-}
-
-// Decl = [ ImportDecl | ConstDecl | TypeDecl | VarDecl | FuncDecl | MethodDecl ] "\n" .
-//
-func (p *gcParser) parseDecl() {
-	switch p.lit {
-	case "import":
-		p.parseImportDecl()
-	case "const":
-		p.parseConstDecl()
-	case "type":
-		p.parseTypeDecl()
-	case "var":
-		p.parseVarDecl()
-	case "func":
-		p.next() // look ahead
-		if p.tok == '(' {
-			p.parseMethodDecl()
-		} else {
-			p.parseFuncDecl()
-		}
-	}
-	p.expect('\n')
-}
-
-// ----------------------------------------------------------------------------
-// Export
-
-// Export        = "PackageClause { Decl } "$$" .
-// PackageClause = "package" identifier [ "safe" ] "\n" .
-//
-func (p *gcParser) parseExport() *Package {
-	p.expectKeyword("package")
-	name := p.expect(scanner.Ident)
-	if p.tok != '\n' {
-		// A package is safe if it was compiled with the -u flag,
-		// which disables the unsafe package.
-		// TODO(gri) remember "safe" package
-		p.expectKeyword("safe")
-	}
-	p.expect('\n')
-
-	pkg := p.imports[p.id]
-	if pkg == nil {
-		pkg = &Package{Name: name, Scope: new(Scope)}
-		p.imports[p.id] = pkg
-	}
-
-	for p.tok != '$' && p.tok != scanner.EOF {
-		p.parseDecl()
-	}
-
-	if ch := p.scanner.Peek(); p.tok != '$' || ch != '$' {
-		// don't call next()/expect() since reading past the
-		// export data may cause scanner errors (e.g. NUL chars)
-		p.errorf("expected '$$', got %s %c", scanner.TokenString(p.tok), ch)
-	}
-
-	if n := p.scanner.ErrorCount; n != 0 {
-		p.errorf("expected no scanner errors, got %d", n)
-	}
-
-	// package was imported completely and without errors
-	pkg.Complete = true
-
-	return pkg
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/gcimporter_test.go gcc-4.8.1/libgo/go/go/types/gcimporter_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/gcimporter_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/gcimporter_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,180 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"go/ast"
-	"go/build"
-	"io/ioutil"
-	"os"
-	"os/exec"
-	"path/filepath"
-	"runtime"
-	"strings"
-	"testing"
-	"time"
-)
-
-var gcPath string // Go compiler path
-
-func init() {
-	// determine compiler
-	var gc string
-	switch runtime.GOARCH {
-	case "386":
-		gc = "8g"
-	case "amd64":
-		gc = "6g"
-	case "arm":
-		gc = "5g"
-	default:
-		gcPath = "unknown-GOARCH-compiler"
-		return
-	}
-	gcPath = filepath.Join(build.ToolDir, gc)
-}
-
-func compile(t *testing.T, dirname, filename string) string {
-	cmd := exec.Command(gcPath, filename)
-	cmd.Dir = dirname
-	out, err := cmd.CombinedOutput()
-	if err != nil {
-		t.Logf("%s", out)
-		t.Fatalf("%s %s failed: %s", gcPath, filename, err)
-	}
-	archCh, _ := build.ArchChar(runtime.GOARCH)
-	// filename should end with ".go"
-	return filepath.Join(dirname, filename[:len(filename)-2]+archCh)
-}
-
-// Use the same global imports map for all tests. The effect is
-// as if all tested packages were imported into a single package.
-var imports = make(map[string]*Package)
-
-func testPath(t *testing.T, path string) bool {
-	t0 := time.Now()
-	_, err := GcImport(imports, path)
-	if err != nil {
-		t.Errorf("testPath(%s): %s", path, err)
-		return false
-	}
-	t.Logf("testPath(%s): %v", path, time.Since(t0))
-	return true
-}
-
-const maxTime = 30 * time.Second
-
-func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) {
-	dirname := filepath.Join(runtime.GOROOT(), "pkg", runtime.GOOS+"_"+runtime.GOARCH, dir)
-	list, err := ioutil.ReadDir(dirname)
-	if err != nil {
-		t.Fatalf("testDir(%s): %s", dirname, err)
-	}
-	for _, f := range list {
-		if time.Now().After(endTime) {
-			t.Log("testing time used up")
-			return
-		}
-		switch {
-		case !f.IsDir():
-			// try extensions
-			for _, ext := range pkgExts {
-				if strings.HasSuffix(f.Name(), ext) {
-					name := f.Name()[0 : len(f.Name())-len(ext)] // remove extension
-					if testPath(t, filepath.Join(dir, name)) {
-						nimports++
-					}
-				}
-			}
-		case f.IsDir():
-			nimports += testDir(t, filepath.Join(dir, f.Name()), endTime)
-		}
-	}
-	return
-}
-
-func TestGcImport(t *testing.T) {
-	// On cross-compile builds, the path will not exist.
-	// Need to use GOHOSTOS, which is not available.
-	if _, err := os.Stat(gcPath); err != nil {
-		t.Skipf("skipping test: %v", err)
-	}
-
-	if outFn := compile(t, "testdata", "exports.go"); outFn != "" {
-		defer os.Remove(outFn)
-	}
-
-	nimports := 0
-	if testPath(t, "./testdata/exports") {
-		nimports++
-	}
-	nimports += testDir(t, "", time.Now().Add(maxTime)) // installed packages
-	t.Logf("tested %d imports", nimports)
-}
-
-var importedObjectTests = []struct {
-	name string
-	kind ast.ObjKind
-	typ  string
-}{
-	{"unsafe.Pointer", ast.Typ, "Pointer"},
-	{"math.Pi", ast.Con, "untyped float"},
-	{"io.Reader", ast.Typ, "interface{Read(p []byte) (n int, err error)}"},
-	{"io.ReadWriter", ast.Typ, "interface{Read(p []byte) (n int, err error); Write(p []byte) (n int, err error)}"},
-	{"math.Sin", ast.Fun, "func(xÂ·2 float64) (_ float64)"},
-	// TODO(gri) add more tests
-}
-
-func TestGcImportedTypes(t *testing.T) {
-	// This package does not yet know how to read gccgo export data.
-	if runtime.Compiler == "gccgo" {
-		return
-	}
-	for _, test := range importedObjectTests {
-		s := strings.Split(test.name, ".")
-		if len(s) != 2 {
-			t.Fatal("inconsistent test data")
-		}
-		importPath := s[0]
-		objName := s[1]
-
-		pkg, err := GcImport(imports, importPath)
-		if err != nil {
-			t.Error(err)
-			continue
-		}
-
-		obj := pkg.Scope.Lookup(objName)
-
-		// TODO(gri) should define an accessor on Object
-		var kind ast.ObjKind
-		var typ Type
-		switch obj := obj.(type) {
-		case *Const:
-			kind = ast.Con
-			typ = obj.Type
-		case *TypeName:
-			kind = ast.Typ
-			typ = obj.Type
-		case *Var:
-			kind = ast.Var
-			typ = obj.Type
-		case *Func:
-			kind = ast.Fun
-			typ = obj.Type
-		default:
-			unreachable()
-		}
-
-		if kind != test.kind {
-			t.Errorf("%s: got kind = %q; want %q", test.name, kind, test.kind)
-		}
-
-		str := typeString(underlying(typ))
-		if str != test.typ {
-			t.Errorf("%s: got type = %q; want %q", test.name, typ, test.typ)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/objects.go gcc-4.8.1/libgo/go/go/types/objects.go
--- gcc-4.8.1.orig/libgo/go/go/types/objects.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/objects.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,155 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-// An Object describes a named language entity such as a package,
-// constant, type, variable, function (incl. methods), or label.
-// All objects implement the Object interface.
-//
-type Object interface {
-	GetName() string
-	GetType() Type
-	GetPos() token.Pos
-
-	anObject()
-}
-
-// A Package represents the contents (objects) of a Go package.
-type Package struct {
-	Name     string
-	Path     string              // import path, "" for current (non-imported) package
-	Scope    *Scope              // package-level scope
-	Imports  map[string]*Package // map of import paths to imported packages
-	Complete bool                // if set, this package was imported completely
-
-	spec *ast.ImportSpec
-}
-
-// A Const represents a declared constant.
-type Const struct {
-	Name string
-	Type Type
-	Val  interface{}
-
-	spec *ast.ValueSpec
-}
-
-// A TypeName represents a declared type.
-type TypeName struct {
-	Name string
-	Type Type // *NamedType or *Basic
-
-	spec *ast.TypeSpec
-}
-
-// A Variable represents a declared variable (including function parameters and results).
-type Var struct {
-	Name string
-	Type Type
-
-	visited bool // for initialization cycle detection
-	decl    interface{}
-}
-
-// A Func represents a declared function.
-type Func struct {
-	Name string
-	Type Type // *Signature or *Builtin
-
-	decl *ast.FuncDecl
-}
-
-func (obj *Package) GetName() string  { return obj.Name }
-func (obj *Const) GetName() string    { return obj.Name }
-func (obj *TypeName) GetName() string { return obj.Name }
-func (obj *Var) GetName() string      { return obj.Name }
-func (obj *Func) GetName() string     { return obj.Name }
-
-func (obj *Package) GetType() Type  { return Typ[Invalid] }
-func (obj *Const) GetType() Type    { return obj.Type }
-func (obj *TypeName) GetType() Type { return obj.Type }
-func (obj *Var) GetType() Type      { return obj.Type }
-func (obj *Func) GetType() Type     { return obj.Type }
-
-func (obj *Package) GetPos() token.Pos { return obj.spec.Pos() }
-func (obj *Const) GetPos() token.Pos {
-	for _, n := range obj.spec.Names {
-		if n.Name == obj.Name {
-			return n.Pos()
-		}
-	}
-	return token.NoPos
-}
-func (obj *TypeName) GetPos() token.Pos { return obj.spec.Pos() }
-func (obj *Var) GetPos() token.Pos {
-	switch d := obj.decl.(type) {
-	case *ast.Field:
-		for _, n := range d.Names {
-			if n.Name == obj.Name {
-				return n.Pos()
-			}
-		}
-	case *ast.ValueSpec:
-		for _, n := range d.Names {
-			if n.Name == obj.Name {
-				return n.Pos()
-			}
-		}
-	case *ast.AssignStmt:
-		for _, x := range d.Lhs {
-			if ident, isIdent := x.(*ast.Ident); isIdent && ident.Name == obj.Name {
-				return ident.Pos()
-			}
-		}
-	}
-	return token.NoPos
-}
-func (obj *Func) GetPos() token.Pos { return obj.decl.Name.Pos() }
-
-func (*Package) anObject()  {}
-func (*Const) anObject()    {}
-func (*TypeName) anObject() {}
-func (*Var) anObject()      {}
-func (*Func) anObject()     {}
-
-// newObj returns a new Object for a given *ast.Object.
-// It does not canonicalize them (it always returns a new one).
-// For canonicalization, see check.lookup.
-//
-// TODO(gri) Once we do identifier resolution completely in
-//           in the typechecker, this functionality can go.
-//
-func newObj(astObj *ast.Object) Object {
-	name := astObj.Name
-	typ, _ := astObj.Type.(Type)
-	switch astObj.Kind {
-	case ast.Bad:
-		// ignore
-	case ast.Pkg:
-		unreachable()
-	case ast.Con:
-		return &Const{Name: name, Type: typ, Val: astObj.Data, spec: astObj.Decl.(*ast.ValueSpec)}
-	case ast.Typ:
-		return &TypeName{Name: name, Type: typ, spec: astObj.Decl.(*ast.TypeSpec)}
-	case ast.Var:
-		switch astObj.Decl.(type) {
-		case *ast.Field, *ast.ValueSpec, *ast.AssignStmt: // these are ok
-		default:
-			unreachable()
-		}
-		return &Var{Name: name, Type: typ, decl: astObj.Decl}
-	case ast.Fun:
-		return &Func{Name: name, Type: typ, decl: astObj.Decl.(*ast.FuncDecl)}
-	case ast.Lbl:
-		unreachable() // for now
-	}
-	unreachable()
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/operand.go gcc-4.8.1/libgo/go/go/types/operand.go
--- gcc-4.8.1.orig/libgo/go/go/types/operand.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/operand.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,393 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file defines operands and associated operations.
-
-package types
-
-import (
-	"bytes"
-	"fmt"
-	"go/ast"
-	"go/token"
-)
-
-// An operandMode specifies the (addressing) mode of an operand.
-type operandMode int
-
-const (
-	invalid  operandMode = iota // operand is invalid (due to an earlier error) - ignore
-	novalue                     // operand represents no value (result of a function call w/o result)
-	typexpr                     // operand is a type
-	constant                    // operand is a constant; the operand's typ is a Basic type
-	variable                    // operand is an addressable variable
-	value                       // operand is a computed value
-	valueok                     // like mode == value, but operand may be used in a comma,ok expression
-)
-
-var operandModeString = [...]string{
-	invalid:  "invalid",
-	novalue:  "no value",
-	typexpr:  "type",
-	constant: "constant",
-	variable: "variable",
-	value:    "value",
-	valueok:  "value,ok",
-}
-
-// An operand represents an intermediate value during type checking.
-// Operands have an (addressing) mode, the expression evaluating to
-// the operand, the operand's type, and for constants a constant value.
-//
-type operand struct {
-	mode operandMode
-	expr ast.Expr
-	typ  Type
-	val  interface{}
-}
-
-// pos returns the position of the expression corresponding to x.
-// If x is invalid the position is token.NoPos.
-//
-func (x *operand) pos() token.Pos {
-	// x.expr may not be set if x is invalid
-	if x.expr == nil {
-		return token.NoPos
-	}
-	return x.expr.Pos()
-}
-
-func (x *operand) String() string {
-	if x.mode == invalid {
-		return "invalid operand"
-	}
-	var buf bytes.Buffer
-	if x.expr != nil {
-		buf.WriteString(exprString(x.expr))
-		buf.WriteString(" (")
-	}
-	buf.WriteString(operandModeString[x.mode])
-	if x.mode == constant {
-		format := " %v"
-		if isString(x.typ) {
-			format = " %q"
-		}
-		fmt.Fprintf(&buf, format, x.val)
-	}
-	if x.mode != novalue && (x.mode != constant || !isUntyped(x.typ)) {
-		fmt.Fprintf(&buf, " of type %s", typeString(x.typ))
-	}
-	if x.expr != nil {
-		buf.WriteByte(')')
-	}
-	return buf.String()
-}
-
-// setConst sets x to the untyped constant for literal lit.
-func (x *operand) setConst(tok token.Token, lit string) {
-	x.mode = invalid
-
-	var kind BasicKind
-	var val interface{}
-	switch tok {
-	case token.INT:
-		kind = UntypedInt
-		val = makeIntConst(lit)
-
-	case token.FLOAT:
-		kind = UntypedFloat
-		val = makeFloatConst(lit)
-
-	case token.IMAG:
-		kind = UntypedComplex
-		val = makeComplexConst(lit)
-
-	case token.CHAR:
-		kind = UntypedRune
-		val = makeRuneConst(lit)
-
-	case token.STRING:
-		kind = UntypedString
-		val = makeStringConst(lit)
-	}
-
-	if val != nil {
-		x.mode = constant
-		x.typ = Typ[kind]
-		x.val = val
-	}
-}
-
-// isNil reports whether x is the predeclared nil constant.
-func (x *operand) isNil() bool {
-	return x.mode == constant && x.val == nilConst
-}
-
-// TODO(gri) The functions operand.isAssignable, checker.convertUntyped,
-//           checker.isRepresentable, and checker.assignOperand are
-//           overlapping in functionality. Need to simplify and clean up.
-
-// isAssignable reports whether x is assignable to a variable of type T.
-func (x *operand) isAssignable(T Type) bool {
-	if x.mode == invalid || T == Typ[Invalid] {
-		return true // avoid spurious errors
-	}
-
-	V := x.typ
-
-	// x's type is identical to T
-	if IsIdentical(V, T) {
-		return true
-	}
-
-	Vu := underlying(V)
-	Tu := underlying(T)
-
-	// x's type V and T have identical underlying types
-	// and at least one of V or T is not a named type
-	if IsIdentical(Vu, Tu) {
-		return !isNamed(V) || !isNamed(T)
-	}
-
-	// T is an interface type and x implements T
-	if Ti, ok := Tu.(*Interface); ok {
-		if m, _ := missingMethod(x.typ, Ti); m == nil {
-			return true
-		}
-	}
-
-	// x is a bidirectional channel value, T is a channel
-	// type, x's type V and T have identical element types,
-	// and at least one of V or T is not a named type
-	if Vc, ok := Vu.(*Chan); ok && Vc.Dir == ast.SEND|ast.RECV {
-		if Tc, ok := Tu.(*Chan); ok && IsIdentical(Vc.Elt, Tc.Elt) {
-			return !isNamed(V) || !isNamed(T)
-		}
-	}
-
-	// x is the predeclared identifier nil and T is a pointer,
-	// function, slice, map, channel, or interface type
-	if x.isNil() {
-		switch t := Tu.(type) {
-		case *Basic:
-			if t.Kind == UnsafePointer {
-				return true
-			}
-		case *Pointer, *Signature, *Slice, *Map, *Chan, *Interface:
-			return true
-		}
-		return false
-	}
-
-	// x is an untyped constant representable by a value of type T
-	// TODO(gri) This is borrowing from checker.convertUntyped and
-	//           checker.isRepresentable. Need to clean up.
-	if isUntyped(Vu) {
-		switch t := Tu.(type) {
-		case *Basic:
-			if x.mode == constant {
-				return isRepresentableConst(x.val, t.Kind)
-			}
-			// The result of a comparison is an untyped boolean,
-			// but may not be a constant.
-			if Vb, _ := Vu.(*Basic); Vb != nil {
-				return Vb.Kind == UntypedBool && isBoolean(Tu)
-			}
-		case *Interface:
-			return x.isNil() || len(t.Methods) == 0
-		case *Pointer, *Signature, *Slice, *Map, *Chan:
-			return x.isNil()
-		}
-	}
-
-	return false
-}
-
-// isInteger reports whether x is a (typed or untyped) integer value.
-func (x *operand) isInteger() bool {
-	return x.mode == invalid ||
-		isInteger(x.typ) ||
-		x.mode == constant && isRepresentableConst(x.val, UntypedInt)
-}
-
-type lookupResult struct {
-	mode operandMode
-	typ  Type
-}
-
-type embeddedType struct {
-	typ       *NamedType
-	multiples bool // if set, typ is embedded multiple times at the same level
-}
-
-// lookupFieldBreadthFirst searches all types in list for a single entry (field
-// or method) of the given name from the given package. If such a field is found,
-// the result describes the field mode and type; otherwise the result mode is invalid.
-// (This function is similar in structure to FieldByNameFunc in reflect/type.go)
-//
-func lookupFieldBreadthFirst(list []embeddedType, name QualifiedName) (res lookupResult) {
-	// visited records the types that have been searched already.
-	visited := make(map[*NamedType]bool)
-
-	// embedded types of the next lower level
-	var next []embeddedType
-
-	// potentialMatch is invoked every time a match is found.
-	potentialMatch := func(multiples bool, mode operandMode, typ Type) bool {
-		if multiples || res.mode != invalid {
-			// name appeared already at this level - annihilate
-			res.mode = invalid
-			return false
-		}
-		// first appearance of name
-		res.mode = mode
-		res.typ = typ
-		return true
-	}
-
-	// Search the current level if there is any work to do and collect
-	// embedded types of the next lower level in the next list.
-	for len(list) > 0 {
-		// The res.mode indicates whether we have found a match already
-		// on this level (mode != invalid), or not (mode == invalid).
-		assert(res.mode == invalid)
-
-		// start with empty next list (don't waste underlying array)
-		next = next[:0]
-
-		// look for name in all types at this level
-		for _, e := range list {
-			typ := e.typ
-			if visited[typ] {
-				continue
-			}
-			visited[typ] = true
-
-			// look for a matching attached method
-			for _, m := range typ.Methods {
-				if name.IsSame(m.QualifiedName) {
-					assert(m.Type != nil)
-					if !potentialMatch(e.multiples, value, m.Type) {
-						return // name collision
-					}
-				}
-			}
-
-			switch t := typ.Underlying.(type) {
-			case *Struct:
-				// look for a matching field and collect embedded types
-				for _, f := range t.Fields {
-					if name.IsSame(f.QualifiedName) {
-						assert(f.Type != nil)
-						if !potentialMatch(e.multiples, variable, f.Type) {
-							return // name collision
-						}
-						continue
-					}
-					// Collect embedded struct fields for searching the next
-					// lower level, but only if we have not seen a match yet
-					// (if we have a match it is either the desired field or
-					// we have a name collision on the same level; in either
-					// case we don't need to look further).
-					// Embedded fields are always of the form T or *T where
-					// T is a named type. If typ appeared multiple times at
-					// this level, f.Type appears multiple times at the next
-					// level.
-					if f.IsAnonymous && res.mode == invalid {
-						next = append(next, embeddedType{deref(f.Type).(*NamedType), e.multiples})
-					}
-				}
-
-			case *Interface:
-				// look for a matching method
-				for _, m := range t.Methods {
-					if name.IsSame(m.QualifiedName) {
-						assert(m.Type != nil)
-						if !potentialMatch(e.multiples, value, m.Type) {
-							return // name collision
-						}
-					}
-				}
-			}
-		}
-
-		if res.mode != invalid {
-			// we found a single match on this level
-			return
-		}
-
-		// No match and no collision so far.
-		// Compute the list to search for the next level.
-		list = list[:0] // don't waste underlying array
-		for _, e := range next {
-			// Instead of adding the same type multiple times, look for
-			// it in the list and mark it as multiple if it was added
-			// before.
-			// We use a sequential search (instead of a map for next)
-			// because the lists tend to be small, can easily be reused,
-			// and explicit search appears to be faster in this case.
-			if alt := findType(list, e.typ); alt != nil {
-				alt.multiples = true
-			} else {
-				list = append(list, e)
-			}
-		}
-
-	}
-
-	return
-}
-
-func findType(list []embeddedType, typ *NamedType) *embeddedType {
-	for i := range list {
-		if p := &list[i]; p.typ == typ {
-			return p
-		}
-	}
-	return nil
-}
-
-func lookupField(typ Type, name QualifiedName) (operandMode, Type) {
-	typ = deref(typ)
-
-	if t, ok := typ.(*NamedType); ok {
-		for _, m := range t.Methods {
-			if name.IsSame(m.QualifiedName) {
-				assert(m.Type != nil)
-				return value, m.Type
-			}
-		}
-		typ = t.Underlying
-	}
-
-	switch t := typ.(type) {
-	case *Struct:
-		var next []embeddedType
-		for _, f := range t.Fields {
-			if name.IsSame(f.QualifiedName) {
-				return variable, f.Type
-			}
-			if f.IsAnonymous {
-				// Possible optimization: If the embedded type
-				// is a pointer to the current type we could
-				// ignore it.
-				next = append(next, embeddedType{typ: deref(f.Type).(*NamedType)})
-			}
-		}
-		if len(next) > 0 {
-			res := lookupFieldBreadthFirst(next, name)
-			return res.mode, res.typ
-		}
-
-	case *Interface:
-		for _, m := range t.Methods {
-			if name.IsSame(m.QualifiedName) {
-				return value, m.Type
-			}
-		}
-	}
-
-	// not found
-	return invalid, nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/predicates.go gcc-4.8.1/libgo/go/go/types/predicates.go
--- gcc-4.8.1.orig/libgo/go/go/types/predicates.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/predicates.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,303 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements commonly used type predicates.
-
-package types
-
-func isNamed(typ Type) bool {
-	if _, ok := typ.(*Basic); ok {
-		return ok
-	}
-	_, ok := typ.(*NamedType)
-	return ok
-}
-
-func isBoolean(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsBoolean != 0
-}
-
-func isInteger(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsInteger != 0
-}
-
-func isUnsigned(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsUnsigned != 0
-}
-
-func isFloat(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsFloat != 0
-}
-
-func isComplex(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsComplex != 0
-}
-
-func isNumeric(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsNumeric != 0
-}
-
-func isString(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsString != 0
-}
-
-func isUntyped(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsUntyped != 0
-}
-
-func isOrdered(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsOrdered != 0
-}
-
-func isConstType(typ Type) bool {
-	t, ok := underlying(typ).(*Basic)
-	return ok && t.Info&IsConstType != 0
-}
-
-func isComparable(typ Type) bool {
-	switch t := underlying(typ).(type) {
-	case *Basic:
-		return t.Kind != Invalid && t.Kind != UntypedNil
-	case *Pointer, *Interface, *Chan:
-		// assumes types are equal for pointers and channels
-		return true
-	case *Struct:
-		for _, f := range t.Fields {
-			if !isComparable(f.Type) {
-				return false
-			}
-		}
-		return true
-	case *Array:
-		return isComparable(t.Elt)
-	}
-	return false
-}
-
-func hasNil(typ Type) bool {
-	switch underlying(typ).(type) {
-	case *Slice, *Pointer, *Signature, *Interface, *Map, *Chan:
-		return true
-	}
-	return false
-}
-
-// IsIdentical returns true if x and y are identical.
-func IsIdentical(x, y Type) bool {
-	if x == y {
-		return true
-	}
-
-	switch x := x.(type) {
-	case *Basic:
-		// Basic types are singletons except for the rune and byte
-		// aliases, thus we cannot solely rely on the x == y check
-		// above.
-		if y, ok := y.(*Basic); ok {
-			return x.Kind == y.Kind
-		}
-
-	case *Array:
-		// Two array types are identical if they have identical element types
-		// and the same array length.
-		if y, ok := y.(*Array); ok {
-			return x.Len == y.Len && IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *Slice:
-		// Two slice types are identical if they have identical element types.
-		if y, ok := y.(*Slice); ok {
-			return IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *Struct:
-		// Two struct types are identical if they have the same sequence of fields,
-		// and if corresponding fields have the same names, and identical types,
-		// and identical tags. Two anonymous fields are considered to have the same
-		// name. Lower-case field names from different packages are always different.
-		if y, ok := y.(*Struct); ok {
-			if len(x.Fields) == len(y.Fields) {
-				for i, f := range x.Fields {
-					g := y.Fields[i]
-					if !f.QualifiedName.IsSame(g.QualifiedName) ||
-						!IsIdentical(f.Type, g.Type) ||
-						f.Tag != g.Tag ||
-						f.IsAnonymous != g.IsAnonymous {
-						return false
-					}
-				}
-				return true
-			}
-		}
-
-	case *Pointer:
-		// Two pointer types are identical if they have identical base types.
-		if y, ok := y.(*Pointer); ok {
-			return IsIdentical(x.Base, y.Base)
-		}
-
-	case *Signature:
-		// Two function types are identical if they have the same number of parameters
-		// and result values, corresponding parameter and result types are identical,
-		// and either both functions are variadic or neither is. Parameter and result
-		// names are not required to match.
-		if y, ok := y.(*Signature); ok {
-			return identicalTypes(x.Params, y.Params) &&
-				identicalTypes(x.Results, y.Results) &&
-				x.IsVariadic == y.IsVariadic
-		}
-
-	case *Interface:
-		// Two interface types are identical if they have the same set of methods with
-		// the same names and identical function types. Lower-case method names from
-		// different packages are always different. The order of the methods is irrelevant.
-		if y, ok := y.(*Interface); ok {
-			return identicalMethods(x.Methods, y.Methods) // methods are sorted
-		}
-
-	case *Map:
-		// Two map types are identical if they have identical key and value types.
-		if y, ok := y.(*Map); ok {
-			return IsIdentical(x.Key, y.Key) && IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *Chan:
-		// Two channel types are identical if they have identical value types
-		// and the same direction.
-		if y, ok := y.(*Chan); ok {
-			return x.Dir == y.Dir && IsIdentical(x.Elt, y.Elt)
-		}
-
-	case *NamedType:
-		// Two named types are identical if their type names originate
-		// in the same type declaration.
-		if y, ok := y.(*NamedType); ok {
-			return x.Obj == y.Obj
-		}
-	}
-
-	return false
-}
-
-// identicalTypes returns true if both lists a and b have the
-// same length and corresponding objects have identical types.
-func identicalTypes(a, b []*Var) bool {
-	if len(a) != len(b) {
-		return false
-	}
-	for i, x := range a {
-		y := b[i]
-		if !IsIdentical(x.Type, y.Type) {
-			return false
-		}
-	}
-	return true
-}
-
-// identicalMethods returns true if both lists a and b have the
-// same length and corresponding methods have identical types.
-// TODO(gri) make this more efficient
-func identicalMethods(a, b []*Method) bool {
-	if len(a) != len(b) {
-		return false
-	}
-	m := make(map[QualifiedName]*Method)
-	for _, x := range a {
-		assert(m[x.QualifiedName] == nil) // method list must not have duplicate entries
-		m[x.QualifiedName] = x
-	}
-	for _, y := range b {
-		if x := m[y.QualifiedName]; x == nil || !IsIdentical(x.Type, y.Type) {
-			return false
-		}
-	}
-	return true
-}
-
-// underlying returns the underlying type of typ.
-func underlying(typ Type) Type {
-	// Basic types are representing themselves directly even though they are named.
-	if typ, ok := typ.(*NamedType); ok {
-		return typ.Underlying // underlying types are never NamedTypes
-	}
-	return typ
-}
-
-// deref returns a pointer's base type; otherwise it returns typ.
-func deref(typ Type) Type {
-	if typ, ok := underlying(typ).(*Pointer); ok {
-		return typ.Base
-	}
-	return typ
-}
-
-// defaultType returns the default "typed" type for an "untyped" type;
-// it returns the incoming type for all other types. If there is no
-// corresponding untyped type, the result is Typ[Invalid].
-//
-func defaultType(typ Type) Type {
-	if t, ok := typ.(*Basic); ok {
-		k := Invalid
-		switch t.Kind {
-		// case UntypedNil:
-		//      There is no default type for nil. For a good error message,
-		//      catch this case before calling this function.
-		case UntypedBool:
-			k = Bool
-		case UntypedInt:
-			k = Int
-		case UntypedRune:
-			k = Rune
-		case UntypedFloat:
-			k = Float64
-		case UntypedComplex:
-			k = Complex128
-		case UntypedString:
-			k = String
-		}
-		typ = Typ[k]
-	}
-	return typ
-}
-
-// missingMethod returns (nil, false) if typ implements T, otherwise
-// it returns the first missing method required by T and whether it
-// is missing or simply has the wrong type.
-//
-func missingMethod(typ Type, T *Interface) (method *Method, wrongType bool) {
-	// TODO(gri): this needs to correctly compare method names (taking package into account)
-	// TODO(gri): distinguish pointer and non-pointer receivers
-	// an interface type implements T if it has no methods with conflicting signatures
-	// Note: This is stronger than the current spec. Should the spec require this?
-	if ityp, _ := underlying(typ).(*Interface); ityp != nil {
-		for _, m := range T.Methods {
-			mode, sig := lookupField(ityp, m.QualifiedName) // TODO(gri) no need to go via lookupField
-			if mode != invalid && !IsIdentical(sig, m.Type) {
-				return m, true
-			}
-		}
-		return
-	}
-
-	// a concrete type implements T if it implements all methods of T.
-	for _, m := range T.Methods {
-		mode, sig := lookupField(typ, m.QualifiedName)
-		if mode == invalid {
-			return m, false
-		}
-		if !IsIdentical(sig, m.Type) {
-			return m, true
-		}
-	}
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/resolve.go gcc-4.8.1/libgo/go/go/types/resolve.go
--- gcc-4.8.1.orig/libgo/go/go/types/resolve.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/resolve.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,177 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"fmt"
-	"go/ast"
-	"go/token"
-	"strconv"
-)
-
-func (check *checker) declareObj(scope, altScope *Scope, obj Object) {
-	alt := scope.Insert(obj)
-	if alt == nil && altScope != nil {
-		// see if there is a conflicting declaration in altScope
-		alt = altScope.Lookup(obj.GetName())
-	}
-	if alt != nil {
-		prevDecl := ""
-		if pos := alt.GetPos(); pos.IsValid() {
-			prevDecl = fmt.Sprintf("\n\tprevious declaration at %s", check.fset.Position(pos))
-		}
-		check.errorf(obj.GetPos(), fmt.Sprintf("%s redeclared in this block%s", obj.GetName(), prevDecl))
-	}
-}
-
-func (check *checker) resolveIdent(scope *Scope, ident *ast.Ident) bool {
-	for ; scope != nil; scope = scope.Outer {
-		if obj := scope.Lookup(ident.Name); obj != nil {
-			check.register(ident, obj)
-			return true
-		}
-	}
-	return false
-}
-
-func (check *checker) resolve(importer Importer) (pkg *Package, methods []*ast.FuncDecl) {
-	pkg = &Package{Scope: &Scope{Outer: Universe}, Imports: make(map[string]*Package)}
-
-	// complete package scope
-	i := 0
-	for _, file := range check.files {
-		// package names must match
-		switch name := file.Name.Name; {
-		case pkg.Name == "":
-			pkg.Name = name
-		case name != pkg.Name:
-			check.errorf(file.Package, "package %s; expected %s", name, pkg.Name)
-			continue // ignore this file
-		}
-
-		// keep this file
-		check.files[i] = file
-		i++
-
-		// the package identifier denotes the current package
-		check.register(file.Name, pkg)
-
-		// insert top-level file objects in package scope
-		// (the parser took care of declaration errors)
-		for _, decl := range file.Decls {
-			switch d := decl.(type) {
-			case *ast.BadDecl:
-				// ignore
-			case *ast.GenDecl:
-				if d.Tok == token.CONST {
-					check.assocInitvals(d)
-				}
-				for _, spec := range d.Specs {
-					switch s := spec.(type) {
-					case *ast.ImportSpec:
-						// handled separately below
-					case *ast.ValueSpec:
-						for _, name := range s.Names {
-							if name.Name == "_" {
-								continue
-							}
-							pkg.Scope.Insert(check.lookup(name))
-						}
-					case *ast.TypeSpec:
-						if s.Name.Name == "_" {
-							continue
-						}
-						pkg.Scope.Insert(check.lookup(s.Name))
-					default:
-						check.invalidAST(s.Pos(), "unknown ast.Spec node %T", s)
-					}
-				}
-			case *ast.FuncDecl:
-				if d.Recv != nil {
-					// collect method
-					methods = append(methods, d)
-					continue
-				}
-				if d.Name.Name == "_" || d.Name.Name == "init" {
-					continue // blank (_) and init functions are inaccessible
-				}
-				pkg.Scope.Insert(check.lookup(d.Name))
-			default:
-				check.invalidAST(d.Pos(), "unknown ast.Decl node %T", d)
-			}
-		}
-	}
-	check.files = check.files[0:i]
-
-	// complete file scopes with imports and resolve identifiers
-	for _, file := range check.files {
-		// build file scope by processing all imports
-		importErrors := false
-		fileScope := &Scope{Outer: pkg.Scope}
-		for _, spec := range file.Imports {
-			if importer == nil {
-				importErrors = true
-				continue
-			}
-			path, _ := strconv.Unquote(spec.Path.Value)
-			imp, err := importer(pkg.Imports, path)
-			if err != nil {
-				check.errorf(spec.Path.Pos(), "could not import %s (%s)", path, err)
-				importErrors = true
-				continue
-			}
-			// TODO(gri) If a local package name != "." is provided,
-			// global identifier resolution could proceed even if the
-			// import failed. Consider adjusting the logic here a bit.
-
-			// local name overrides imported package name
-			name := imp.Name
-			if spec.Name != nil {
-				name = spec.Name.Name
-			}
-
-			// add import to file scope
-			if name == "." {
-				// merge imported scope with file scope
-				for _, obj := range imp.Scope.Entries {
-					check.declareObj(fileScope, pkg.Scope, obj)
-				}
-				// TODO(gri) consider registering the "." identifier
-				// if we have Context.Ident callbacks for say blank
-				// (_) identifiers
-				// check.register(spec.Name, pkg)
-			} else if name != "_" {
-				// declare imported package object in file scope
-				// (do not re-use imp in the file scope but create
-				// a new object instead; the Decl field is different
-				// for different files)
-				obj := &Package{Name: name, Scope: imp.Scope, spec: spec}
-				check.declareObj(fileScope, pkg.Scope, obj)
-			}
-		}
-
-		// resolve identifiers
-		if importErrors {
-			// don't use the universe scope without correct imports
-			// (objects in the universe may be shadowed by imports;
-			// with missing imports, identifiers might get resolved
-			// incorrectly to universe objects)
-			pkg.Scope.Outer = nil
-		}
-		i := 0
-		for _, ident := range file.Unresolved {
-			if !check.resolveIdent(fileScope, ident) {
-				check.errorf(ident.Pos(), "undeclared name: %s", ident.Name)
-				file.Unresolved[i] = ident
-				i++
-			}
-
-		}
-		file.Unresolved = file.Unresolved[0:i]
-		pkg.Scope.Outer = Universe // reset outer scope (is nil if there were importErrors)
-	}
-
-	return
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/resolver_test.go gcc-4.8.1/libgo/go/go/types/resolver_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/resolver_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/resolver_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,171 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import (
-	"go/ast"
-	"go/parser"
-	"go/token"
-	"testing"
-)
-
-var sources = []string{
-	`
-	package p
-	import "fmt"
-	import "math"
-	const pi = math.Pi
-	func sin(x float64) float64 {
-		return math.Sin(x)
-	}
-	var Println = fmt.Println
-	`,
-	`
-	package p
-	import "fmt"
-	func f() string {
-		_ = "foo"
-		return fmt.Sprintf("%d", g())
-	}
-	func g() (x int) { return }
-	`,
-	`
-	package p
-	import . "go/parser"
-	import "sync"
-	func g() Mode { return ImportsOnly }
-	var _, x int = 1, 2
-	func init() {}
-	type T struct{ sync.Mutex; a, b, c int}
-	type I interface{ m() }
-	var _ = T{a: 1, b: 2, c: 3}
-	func (_ T) m() {}
-	`,
-}
-
-var pkgnames = []string{
-	"fmt",
-	"math",
-}
-
-func TestResolveQualifiedIdents(t *testing.T) {
-	// Does not work with gccgo, because it requires reading gc
-	// import files.
-	return
-
-	// parse package files
-	fset := token.NewFileSet()
-	var files []*ast.File
-	for _, src := range sources {
-		f, err := parser.ParseFile(fset, "", src, parser.DeclarationErrors)
-		if err != nil {
-			t.Fatal(err)
-		}
-		files = append(files, f)
-	}
-
-	// resolve and type-check package AST
-	idents := make(map[*ast.Ident]Object)
-	ctxt := Default
-	ctxt.Ident = func(id *ast.Ident, obj Object) { idents[id] = obj }
-	pkg, err := ctxt.Check(fset, files)
-	if err != nil {
-		t.Fatal(err)
-	}
-
-	// check that all packages were imported
-	for _, name := range pkgnames {
-		if pkg.Imports[name] == nil {
-			t.Errorf("package %s not imported", name)
-		}
-	}
-
-	// check that there are no top-level unresolved identifiers
-	for _, f := range files {
-		for _, x := range f.Unresolved {
-			t.Errorf("%s: unresolved global identifier %s", fset.Position(x.Pos()), x.Name)
-		}
-	}
-
-	// check that qualified identifiers are resolved
-	for _, f := range files {
-		ast.Inspect(f, func(n ast.Node) bool {
-			if s, ok := n.(*ast.SelectorExpr); ok {
-				if x, ok := s.X.(*ast.Ident); ok {
-					obj := idents[x]
-					if obj == nil {
-						t.Errorf("%s: unresolved qualified identifier %s", fset.Position(x.Pos()), x.Name)
-						return false
-					}
-					if _, ok := obj.(*Package); ok && idents[s.Sel] == nil {
-						t.Errorf("%s: unresolved selector %s", fset.Position(s.Sel.Pos()), s.Sel.Name)
-						return false
-					}
-					return false
-				}
-				return false
-			}
-			return true
-		})
-	}
-
-	// Currently, the Check API doesn't call Ident for fields, methods, and composite literal keys.
-	// Introduce them artifically so that we can run the check below.
-	for _, f := range files {
-		ast.Inspect(f, func(n ast.Node) bool {
-			switch x := n.(type) {
-			case *ast.StructType:
-				for _, list := range x.Fields.List {
-					for _, f := range list.Names {
-						assert(idents[f] == nil)
-						idents[f] = &Var{Name: f.Name}
-					}
-				}
-			case *ast.InterfaceType:
-				for _, list := range x.Methods.List {
-					for _, f := range list.Names {
-						assert(idents[f] == nil)
-						idents[f] = &Func{Name: f.Name}
-					}
-				}
-			case *ast.CompositeLit:
-				for _, e := range x.Elts {
-					if kv, ok := e.(*ast.KeyValueExpr); ok {
-						if k, ok := kv.Key.(*ast.Ident); ok {
-							assert(idents[k] == nil)
-							idents[k] = &Var{Name: k.Name}
-						}
-					}
-				}
-			}
-			return true
-		})
-	}
-
-	// check that each identifier in the source is enumerated by the Context.Ident callback
-	for _, f := range files {
-		ast.Inspect(f, func(n ast.Node) bool {
-			if x, ok := n.(*ast.Ident); ok && x.Name != "_" && x.Name != "." {
-				obj := idents[x]
-				if obj == nil {
-					t.Errorf("%s: unresolved identifier %s", fset.Position(x.Pos()), x.Name)
-				} else {
-					delete(idents, x)
-				}
-				return false
-			}
-			return true
-		})
-	}
-
-	// TODO(gri) enable code below
-	// At the moment, the type checker introduces artifical identifiers which are not
-	// present in the source. Once it doesn't do that anymore, enable the checks below.
-	/*
-		for x := range idents {
-			t.Errorf("%s: identifier %s not present in source", fset.Position(x.Pos()), x.Name)
-		}
-	*/
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/scope.go gcc-4.8.1/libgo/go/go/types/scope.go
--- gcc-4.8.1.orig/libgo/go/go/types/scope.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/scope.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,59 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-// A Scope maintains the set of named language entities declared
-// in the scope and a link to the immediately surrounding (outer)
-// scope.
-//
-type Scope struct {
-	Outer   *Scope
-	Entries []Object          // scope entries in insertion order
-	large   map[string]Object // for fast lookup - only used for larger scopes
-}
-
-// Lookup returns the object with the given name if it is
-// found in scope s, otherwise it returns nil. Outer scopes
-// are ignored.
-//
-func (s *Scope) Lookup(name string) Object {
-	if s.large != nil {
-		return s.large[name]
-	}
-	for _, obj := range s.Entries {
-		if obj.GetName() == name {
-			return obj
-		}
-	}
-	return nil
-}
-
-// Insert attempts to insert an object obj into scope s.
-// If s already contains an object with the same name,
-// Insert leaves s unchanged and returns that object.
-// Otherwise it inserts obj and returns nil.
-//
-func (s *Scope) Insert(obj Object) Object {
-	name := obj.GetName()
-	if alt := s.Lookup(name); alt != nil {
-		return alt
-	}
-	s.Entries = append(s.Entries, obj)
-
-	// If the scope size reaches a threshold, use a map for faster lookups.
-	const threshold = 20
-	if len(s.Entries) > threshold {
-		if s.large == nil {
-			m := make(map[string]Object, len(s.Entries))
-			for _, obj := range s.Entries {
-				m[obj.GetName()] = obj
-			}
-			s.large = m
-		}
-		s.large[name] = obj
-	}
-
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/stmt.go gcc-4.8.1/libgo/go/go/types/stmt.go
--- gcc-4.8.1.orig/libgo/go/go/types/stmt.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/stmt.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,721 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements typechecking of statements.
-
-package types
-
-import (
-	"go/ast"
-	"go/token"
-)
-
-func (check *checker) assignOperand(z, x *operand) {
-	if t, ok := x.typ.(*Result); ok {
-		// TODO(gri) elsewhere we use "assignment count mismatch" (consolidate)
-		check.errorf(x.pos(), "%d-valued expression %s used as single value", len(t.Values), x)
-		x.mode = invalid
-		return
-	}
-
-	check.convertUntyped(x, z.typ)
-
-	if !x.isAssignable(z.typ) {
-		check.errorf(x.pos(), "cannot assign %s to %s", x, z)
-		x.mode = invalid
-	}
-}
-
-// assign1to1 typechecks a single assignment of the form lhs = rhs (if rhs != nil),
-// or lhs = x (if rhs == nil). If decl is set, the lhs operand must be an identifier.
-// If its type is not set, it is deduced from the type or value of x. If lhs has a
-// type it is used as a hint when evaluating rhs, if present.
-//
-func (check *checker) assign1to1(lhs, rhs ast.Expr, x *operand, decl bool, iota int) {
-	ident, _ := lhs.(*ast.Ident)
-	if x == nil {
-		assert(rhs != nil)
-		x = new(operand)
-	}
-
-	if ident != nil && ident.Name == "_" {
-		// anything can be assigned to a blank identifier - check rhs only, if present
-		if rhs != nil {
-			check.expr(x, rhs, nil, iota)
-		}
-		return
-	}
-
-	if !decl {
-		// regular assignment - start with lhs to obtain a type hint
-		var z operand
-		check.expr(&z, lhs, nil, -1)
-		if z.mode == invalid {
-			z.typ = nil // so we can proceed with rhs
-		}
-
-		if rhs != nil {
-			check.expr(x, rhs, z.typ, -1)
-			if x.mode == invalid {
-				return
-			}
-		}
-
-		check.assignOperand(&z, x)
-		if x.mode != invalid && z.mode == constant {
-			check.errorf(x.pos(), "cannot assign %s to %s", x, &z)
-		}
-		return
-	}
-
-	// declaration - lhs must be an identifier
-	if ident == nil {
-		check.errorf(lhs.Pos(), "cannot declare %s", lhs)
-		return
-	}
-
-	// lhs may or may not be typed yet
-	obj := check.lookup(ident)
-	var typ Type
-	if t := obj.GetType(); t != nil {
-		typ = t
-	}
-
-	if rhs != nil {
-		check.expr(x, rhs, typ, iota)
-		// continue even if x.mode == invalid
-	}
-
-	if typ == nil {
-		// determine lhs type from rhs expression;
-		// for variables, convert untyped types to
-		// default types
-		typ = Typ[Invalid]
-		if x.mode != invalid {
-			typ = x.typ
-			if _, ok := obj.(*Var); ok && isUntyped(typ) {
-				if x.isNil() {
-					check.errorf(x.pos(), "use of untyped nil")
-					x.mode = invalid
-				} else {
-					typ = defaultType(typ)
-				}
-			}
-		}
-		switch obj := obj.(type) {
-		case *Const:
-			obj.Type = typ
-		case *Var:
-			obj.Type = typ
-		default:
-			unreachable()
-		}
-	}
-
-	if x.mode != invalid {
-		var z operand
-		switch obj.(type) {
-		case *Const:
-			z.mode = constant
-		case *Var:
-			z.mode = variable
-		default:
-			unreachable()
-		}
-		z.expr = ident
-		z.typ = typ
-		check.assignOperand(&z, x)
-	}
-
-	// for constants, set their value
-	if obj, ok := obj.(*Const); ok {
-		assert(obj.Val == nil)
-		if x.mode != invalid {
-			if x.mode == constant {
-				if isConstType(x.typ) {
-					obj.Val = x.val
-				} else {
-					check.errorf(x.pos(), "%s has invalid constant type", x)
-				}
-			} else {
-				check.errorf(x.pos(), "%s is not constant", x)
-			}
-		}
-		if obj.Val == nil {
-			// set the constant to its type's zero value to reduce spurious errors
-			switch typ := underlying(obj.Type); {
-			case typ == Typ[Invalid]:
-				// ignore
-			case isBoolean(typ):
-				obj.Val = false
-			case isNumeric(typ):
-				obj.Val = int64(0)
-			case isString(typ):
-				obj.Val = ""
-			case hasNil(typ):
-				obj.Val = nilConst
-			default:
-				// in all other cases just prevent use of the constant
-				// TODO(gri) re-evaluate this code
-				obj.Val = nilConst
-			}
-		}
-	}
-}
-
-// assignNtoM typechecks a general assignment. If decl is set, the lhs operands
-// must be identifiers. If their types are not set, they are deduced from the
-// types of the corresponding rhs expressions. iota >= 0 indicates that the
-// "assignment" is part of a constant/variable declaration.
-// Precondition: len(lhs) > 0 .
-//
-func (check *checker) assignNtoM(lhs, rhs []ast.Expr, decl bool, iota int) {
-	assert(len(lhs) > 0)
-
-	if len(lhs) == len(rhs) {
-		for i, e := range rhs {
-			check.assign1to1(lhs[i], e, nil, decl, iota)
-		}
-		return
-	}
-
-	if len(rhs) == 1 {
-		// len(lhs) > 1, therefore a correct rhs expression
-		// cannot be a shift and we don't need a type hint;
-		// ok to evaluate rhs first
-		var x operand
-		check.expr(&x, rhs[0], nil, iota)
-		if x.mode == invalid {
-			return
-		}
-
-		if t, ok := x.typ.(*Result); ok && len(lhs) == len(t.Values) {
-			// function result
-			x.mode = value
-			for i, obj := range t.Values {
-				x.expr = nil // TODO(gri) should do better here
-				x.typ = obj.Type
-				check.assign1to1(lhs[i], nil, &x, decl, iota)
-			}
-			return
-		}
-
-		if x.mode == valueok && len(lhs) == 2 {
-			// comma-ok expression
-			x.mode = value
-			check.assign1to1(lhs[0], nil, &x, decl, iota)
-
-			x.mode = value
-			x.typ = Typ[UntypedBool]
-			check.assign1to1(lhs[1], nil, &x, decl, iota)
-			return
-		}
-	}
-
-	check.errorf(lhs[0].Pos(), "assignment count mismatch: %d = %d", len(lhs), len(rhs))
-
-	// avoid checking the same declaration over and over
-	// again for each lhs identifier that has no type yet
-	if iota >= 0 {
-		// declaration
-		for _, e := range lhs {
-			if name, ok := e.(*ast.Ident); ok {
-				switch obj := check.lookup(name).(type) {
-				case *Const:
-					obj.Type = Typ[Invalid]
-				case *Var:
-					obj.Type = Typ[Invalid]
-				default:
-					unreachable()
-				}
-			}
-		}
-	}
-}
-
-func (check *checker) optionalStmt(s ast.Stmt) {
-	if s != nil {
-		check.stmt(s)
-	}
-}
-
-func (check *checker) stmtList(list []ast.Stmt) {
-	for _, s := range list {
-		check.stmt(s)
-	}
-}
-
-func (check *checker) call(call *ast.CallExpr) {
-	var x operand
-	check.rawExpr(&x, call, nil, -1, false) // don't check if value is used
-	// TODO(gri) If a builtin is called, the builtin must be valid in statement context.
-}
-
-func (check *checker) multipleDefaults(list []ast.Stmt) {
-	var first ast.Stmt
-	for _, s := range list {
-		var d ast.Stmt
-		switch c := s.(type) {
-		case *ast.CaseClause:
-			if len(c.List) == 0 {
-				d = s
-			}
-		case *ast.CommClause:
-			if c.Comm == nil {
-				d = s
-			}
-		default:
-			check.invalidAST(s.Pos(), "case/communication clause expected")
-		}
-		if d != nil {
-			if first != nil {
-				check.errorf(d.Pos(), "multiple defaults (first at %s)", first.Pos())
-			} else {
-				first = d
-			}
-		}
-	}
-}
-
-// stmt typechecks statement s.
-func (check *checker) stmt(s ast.Stmt) {
-	switch s := s.(type) {
-	case *ast.BadStmt, *ast.EmptyStmt:
-		// ignore
-
-	case *ast.DeclStmt:
-		d, _ := s.Decl.(*ast.GenDecl)
-		if d == nil || (d.Tok != token.CONST && d.Tok != token.TYPE && d.Tok != token.VAR) {
-			check.invalidAST(token.NoPos, "const, type, or var declaration expected")
-			return
-		}
-		if d.Tok == token.CONST {
-			check.assocInitvals(d)
-		}
-		check.decl(d)
-
-	case *ast.LabeledStmt:
-		// TODO(gri) anything to do with label itself?
-		check.stmt(s.Stmt)
-
-	case *ast.ExprStmt:
-		var x operand
-		used := false
-		switch e := unparen(s.X).(type) {
-		case *ast.CallExpr:
-			// function calls are permitted
-			used = true
-			// but some builtins are excluded
-			// (Caution: This evaluates e.Fun twice, once here and once
-			//           below as part of s.X. This has consequences for
-			//           check.register. Perhaps this can be avoided.)
-			check.expr(&x, e.Fun, nil, -1)
-			if x.mode != invalid {
-				if b, ok := x.typ.(*builtin); ok && !b.isStatement {
-					used = false
-				}
-			}
-		case *ast.UnaryExpr:
-			// receive operations are permitted
-			if e.Op == token.ARROW {
-				used = true
-			}
-		}
-		if !used {
-			check.errorf(s.Pos(), "%s not used", s.X)
-			// ok to continue
-		}
-		check.rawExpr(&x, s.X, nil, -1, false)
-		if x.mode == typexpr {
-			check.errorf(x.pos(), "%s is not an expression", &x)
-		}
-
-	case *ast.SendStmt:
-		var ch, x operand
-		check.expr(&ch, s.Chan, nil, -1)
-		check.expr(&x, s.Value, nil, -1)
-		if ch.mode == invalid || x.mode == invalid {
-			return
-		}
-		if tch, ok := underlying(ch.typ).(*Chan); !ok || tch.Dir&ast.SEND == 0 || !x.isAssignable(tch.Elt) {
-			check.invalidOp(ch.pos(), "cannot send %s to channel %s", &x, &ch)
-		}
-
-	case *ast.IncDecStmt:
-		var op token.Token
-		switch s.Tok {
-		case token.INC:
-			op = token.ADD
-		case token.DEC:
-			op = token.SUB
-		default:
-			check.invalidAST(s.TokPos, "unknown inc/dec operation %s", s.Tok)
-			return
-		}
-		var x, y operand
-		check.expr(&x, s.X, nil, -1)
-		check.expr(&y, &ast.BasicLit{ValuePos: x.pos(), Kind: token.INT, Value: "1"}, nil, -1) // use x's position
-		check.binary(&x, &y, op, nil)
-		check.assign1to1(s.X, nil, &x, false, -1)
-
-	case *ast.AssignStmt:
-		switch s.Tok {
-		case token.ASSIGN, token.DEFINE:
-			if len(s.Lhs) == 0 {
-				check.invalidAST(s.Pos(), "missing lhs in assignment")
-				return
-			}
-			check.assignNtoM(s.Lhs, s.Rhs, s.Tok == token.DEFINE, -1)
-		default:
-			// assignment operations
-			if len(s.Lhs) != 1 || len(s.Rhs) != 1 {
-				check.errorf(s.TokPos, "assignment operation %s requires single-valued expressions", s.Tok)
-				return
-			}
-			// TODO(gri) make this conversion more efficient
-			var op token.Token
-			switch s.Tok {
-			case token.ADD_ASSIGN:
-				op = token.ADD
-			case token.SUB_ASSIGN:
-				op = token.SUB
-			case token.MUL_ASSIGN:
-				op = token.MUL
-			case token.QUO_ASSIGN:
-				op = token.QUO
-			case token.REM_ASSIGN:
-				op = token.REM
-			case token.AND_ASSIGN:
-				op = token.AND
-			case token.OR_ASSIGN:
-				op = token.OR
-			case token.XOR_ASSIGN:
-				op = token.XOR
-			case token.SHL_ASSIGN:
-				op = token.SHL
-			case token.SHR_ASSIGN:
-				op = token.SHR
-			case token.AND_NOT_ASSIGN:
-				op = token.AND_NOT
-			default:
-				check.invalidAST(s.TokPos, "unknown assignment operation %s", s.Tok)
-				return
-			}
-			var x, y operand
-			check.expr(&x, s.Lhs[0], nil, -1)
-			if x.mode == invalid {
-				return
-			}
-			check.expr(&y, s.Rhs[0], nil, -1)
-			if y.mode == invalid {
-				return
-			}
-			check.binary(&x, &y, op, x.typ)
-			check.assign1to1(s.Lhs[0], nil, &x, false, -1)
-		}
-
-	case *ast.GoStmt:
-		check.call(s.Call)
-
-	case *ast.DeferStmt:
-		check.call(s.Call)
-
-	case *ast.ReturnStmt:
-		sig := check.funcsig
-		if n := len(sig.Results); n > 0 {
-			// TODO(gri) should not have to compute lhs, named every single time - clean this up
-			lhs := make([]ast.Expr, n)
-			named := false // if set, function has named results
-			for i, res := range sig.Results {
-				if len(res.Name) > 0 {
-					// a blank (_) result parameter is a named result
-					named = true
-				}
-				name := ast.NewIdent(res.Name)
-				name.NamePos = s.Pos()
-				check.register(name, &Var{Name: res.Name, Type: res.Type})
-				lhs[i] = name
-			}
-			if len(s.Results) > 0 || !named {
-				// TODO(gri) assignNtoM should perhaps not require len(lhs) > 0
-				check.assignNtoM(lhs, s.Results, false, -1)
-			}
-		} else if len(s.Results) > 0 {
-			check.errorf(s.Pos(), "no result values expected")
-		}
-
-	case *ast.BranchStmt:
-		// TODO(gri) implement this
-
-	case *ast.BlockStmt:
-		check.stmtList(s.List)
-
-	case *ast.IfStmt:
-		check.optionalStmt(s.Init)
-		var x operand
-		check.expr(&x, s.Cond, nil, -1)
-		if !isBoolean(x.typ) {
-			check.errorf(s.Cond.Pos(), "non-boolean condition in if statement")
-		}
-		check.stmt(s.Body)
-		check.optionalStmt(s.Else)
-
-	case *ast.SwitchStmt:
-		check.optionalStmt(s.Init)
-		var x operand
-		tag := s.Tag
-		if tag == nil {
-			// use fake true tag value and position it at the opening { of the switch
-			ident := &ast.Ident{NamePos: s.Body.Lbrace, Name: "true"}
-			check.register(ident, Universe.Lookup("true"))
-			tag = ident
-		}
-		check.expr(&x, tag, nil, -1)
-
-		check.multipleDefaults(s.Body.List)
-		seen := make(map[interface{}]token.Pos)
-		for _, s := range s.Body.List {
-			clause, _ := s.(*ast.CaseClause)
-			if clause == nil {
-				continue // error reported before
-			}
-			if x.mode != invalid {
-				for _, expr := range clause.List {
-					x := x // copy of x (don't modify original)
-					var y operand
-					check.expr(&y, expr, nil, -1)
-					if y.mode == invalid {
-						continue // error reported before
-					}
-					// If we have a constant case value, it must appear only
-					// once in the switch statement. Determine if there is a
-					// duplicate entry, but only report an error if there are
-					// no other errors.
-					var dupl token.Pos
-					var yy operand
-					if y.mode == constant {
-						// TODO(gri) This code doesn't work correctly for
-						//           large integer, floating point, or
-						//           complex values - the respective struct
-						//           comparisons are shallow. Need to use a
-						//           hash function to index the map.
-						dupl = seen[y.val]
-						seen[y.val] = y.pos()
-						yy = y // remember y
-					}
-					// TODO(gri) The convertUntyped call pair below appears in other places. Factor!
-					// Order matters: By comparing y against x, error positions are at the case values.
-					check.convertUntyped(&y, x.typ)
-					if y.mode == invalid {
-						continue // error reported before
-					}
-					check.convertUntyped(&x, y.typ)
-					if x.mode == invalid {
-						continue // error reported before
-					}
-					check.comparison(&y, &x, token.EQL)
-					if y.mode != invalid && dupl.IsValid() {
-						check.errorf(yy.pos(), "%s is duplicate case (previous at %s)",
-							&yy, check.fset.Position(dupl))
-					}
-				}
-			}
-			check.stmtList(clause.Body)
-		}
-
-	case *ast.TypeSwitchStmt:
-		check.optionalStmt(s.Init)
-
-		// A type switch guard must be of the form:
-		//
-		//     TypeSwitchGuard = [ identifier ":=" ] PrimaryExpr "." "(" "type" ")" .
-		//
-		// The parser is checking syntactic correctness;
-		// remaining syntactic errors are considered AST errors here.
-		// TODO(gri) better factoring of error handling (invalid ASTs)
-		//
-		var lhs *Var // lhs variable or nil
-		var rhs ast.Expr
-		switch guard := s.Assign.(type) {
-		case *ast.ExprStmt:
-			rhs = guard.X
-		case *ast.AssignStmt:
-			if len(guard.Lhs) != 1 || guard.Tok != token.DEFINE || len(guard.Rhs) != 1 {
-				check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-				return
-			}
-			ident, _ := guard.Lhs[0].(*ast.Ident)
-			if ident == nil {
-				check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-				return
-			}
-			lhs = check.lookup(ident).(*Var)
-			rhs = guard.Rhs[0]
-		default:
-			check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-			return
-		}
-
-		// rhs must be of the form: expr.(type) and expr must be an interface
-		expr, _ := rhs.(*ast.TypeAssertExpr)
-		if expr == nil || expr.Type != nil {
-			check.invalidAST(s.Pos(), "incorrect form of type switch guard")
-			return
-		}
-		var x operand
-		check.expr(&x, expr.X, nil, -1)
-		if x.mode == invalid {
-			return
-		}
-		var T *Interface
-		if T, _ = underlying(x.typ).(*Interface); T == nil {
-			check.errorf(x.pos(), "%s is not an interface", &x)
-			return
-		}
-
-		check.multipleDefaults(s.Body.List)
-		for _, s := range s.Body.List {
-			clause, _ := s.(*ast.CaseClause)
-			if clause == nil {
-				continue // error reported before
-			}
-			// Check each type in this type switch case.
-			var typ Type
-			for _, expr := range clause.List {
-				typ = check.typOrNil(expr, false)
-				if typ != nil && typ != Typ[Invalid] {
-					if method, wrongType := missingMethod(typ, T); method != nil {
-						var msg string
-						if wrongType {
-							msg = "%s cannot have dynamic type %s (wrong type for method %s)"
-						} else {
-							msg = "%s cannot have dynamic type %s (missing method %s)"
-						}
-						check.errorf(expr.Pos(), msg, &x, typ, method.Name)
-						// ok to continue
-					}
-				}
-			}
-			// If lhs exists, set its type for each clause.
-			if lhs != nil {
-				// In clauses with a case listing exactly one type, the variable has that type;
-				// otherwise, the variable has the type of the expression in the TypeSwitchGuard.
-				if len(clause.List) != 1 || typ == nil {
-					typ = x.typ
-				}
-				lhs.Type = typ
-			}
-			check.stmtList(clause.Body)
-		}
-
-		// There is only one object (lhs) associated with a lhs identifier, but that object
-		// assumes different types for different clauses. Set it back to the type of the
-		// TypeSwitchGuard expression so that that variable always has a valid type.
-		if lhs != nil {
-			lhs.Type = x.typ
-		}
-
-	case *ast.SelectStmt:
-		check.multipleDefaults(s.Body.List)
-		for _, s := range s.Body.List {
-			clause, _ := s.(*ast.CommClause)
-			if clause == nil {
-				continue // error reported before
-			}
-			check.optionalStmt(clause.Comm) // TODO(gri) check correctness of c.Comm (must be Send/RecvStmt)
-			check.stmtList(clause.Body)
-		}
-
-	case *ast.ForStmt:
-		check.optionalStmt(s.Init)
-		if s.Cond != nil {
-			var x operand
-			check.expr(&x, s.Cond, nil, -1)
-			if !isBoolean(x.typ) {
-				check.errorf(s.Cond.Pos(), "non-boolean condition in for statement")
-			}
-		}
-		check.optionalStmt(s.Post)
-		check.stmt(s.Body)
-
-	case *ast.RangeStmt:
-		// check expression to iterate over
-		decl := s.Tok == token.DEFINE
-		var x operand
-		check.expr(&x, s.X, nil, -1)
-		if x.mode == invalid {
-			// if we don't have a declaration, we can still check the loop's body
-			if !decl {
-				check.stmt(s.Body)
-			}
-			return
-		}
-
-		// determine key/value types
-		var key, val Type
-		switch typ := underlying(x.typ).(type) {
-		case *Basic:
-			if isString(typ) {
-				key = Typ[UntypedInt]
-				val = Typ[UntypedRune]
-			}
-		case *Array:
-			key = Typ[UntypedInt]
-			val = typ.Elt
-		case *Slice:
-			key = Typ[UntypedInt]
-			val = typ.Elt
-		case *Pointer:
-			if typ, _ := underlying(typ.Base).(*Array); typ != nil {
-				key = Typ[UntypedInt]
-				val = typ.Elt
-			}
-		case *Map:
-			key = typ.Key
-			val = typ.Elt
-		case *Chan:
-			key = typ.Elt
-			if typ.Dir&ast.RECV == 0 {
-				check.errorf(x.pos(), "cannot range over send-only channel %s", &x)
-				// ok to continue
-			}
-			if s.Value != nil {
-				check.errorf(s.Value.Pos(), "iteration over %s permits only one iteration variable", &x)
-				// ok to continue
-			}
-		}
-
-		if key == nil {
-			check.errorf(x.pos(), "cannot range over %s", &x)
-			// if we don't have a declaration, we can still check the loop's body
-			if !decl {
-				check.stmt(s.Body)
-			}
-			return
-		}
-
-		// check assignment to/declaration of iteration variables
-		// TODO(gri) The error messages/positions are not great here,
-		//           they refer to the expression in the range clause.
-		//           Should give better messages w/o too much code
-		//           duplication (assignment checking).
-		x.mode = value
-		if s.Key != nil {
-			x.typ = key
-			check.assign1to1(s.Key, nil, &x, decl, -1)
-		} else {
-			check.invalidAST(s.Pos(), "range clause requires index iteration variable")
-			// ok to continue
-		}
-		if s.Value != nil {
-			x.typ = val
-			check.assign1to1(s.Value, nil, &x, decl, -1)
-		}
-
-		check.stmt(s.Body)
-
-	default:
-		check.errorf(s.Pos(), "invalid statement")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/testdata/exports.go gcc-4.8.1/libgo/go/go/types/testdata/exports.go
--- gcc-4.8.1.orig/libgo/go/go/types/testdata/exports.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/testdata/exports.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,89 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file is used to generate an object file which
-// serves as test file for gcimporter_test.go.
-
-package exports
-
-import (
-	"go/ast"
-)
-
-// Issue 3682: Correctly read dotted identifiers from export data.
-const init1 = 0
-
-func init() {}
-
-const (
-	C0 int = 0
-	C1     = 3.14159265
-	C2     = 2.718281828i
-	C3     = -123.456e-789
-	C4     = +123.456E+789
-	C5     = 1234i
-	C6     = "foo\n"
-	C7     = `bar\n`
-)
-
-type (
-	T1  int
-	T2  [10]int
-	T3  []int
-	T4  *int
-	T5  chan int
-	T6a chan<- int
-	T6b chan (<-chan int)
-	T6c chan<- (chan int)
-	T7  <-chan *ast.File
-	T8  struct{}
-	T9  struct {
-		a    int
-		b, c float32
-		d    []string `go:"tag"`
-	}
-	T10 struct {
-		T8
-		T9
-		_ *T10
-	}
-	T11 map[int]string
-	T12 interface{}
-	T13 interface {
-		m1()
-		m2(int) float32
-	}
-	T14 interface {
-		T12
-		T13
-		m3(x ...struct{}) []T9
-	}
-	T15 func()
-	T16 func(int)
-	T17 func(x int)
-	T18 func() float32
-	T19 func() (x float32)
-	T20 func(...interface{})
-	T21 struct{ next *T21 }
-	T22 struct{ link *T23 }
-	T23 struct{ link *T22 }
-	T24 *T24
-	T25 *T26
-	T26 *T27
-	T27 *T25
-	T28 func(T28) T28
-)
-
-var (
-	V0 int
-	V1 = -991.0
-)
-
-func F1()         {}
-func F2(x int)    {}
-func F3() int     { return 0 }
-func F4() float32 { return 0 }
-func F5(a, b, c int, u, v, w struct{ x, y T1 }, more ...interface{}) (p, q, r chan<- T10)
-
-func (p *T1) M1()
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/types.go gcc-4.8.1/libgo/go/go/types/types.go
--- gcc-4.8.1.orig/libgo/go/go/types/types.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/types.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,232 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package types
-
-import "go/ast"
-
-// All types implement the Type interface.
-type Type interface {
-	String() string
-	aType()
-}
-
-// BasicKind describes the kind of basic type.
-type BasicKind int
-
-const (
-	Invalid BasicKind = iota // type is invalid
-
-	// predeclared types
-	Bool
-	Int
-	Int8
-	Int16
-	Int32
-	Int64
-	Uint
-	Uint8
-	Uint16
-	Uint32
-	Uint64
-	Uintptr
-	Float32
-	Float64
-	Complex64
-	Complex128
-	String
-	UnsafePointer
-
-	// types for untyped values
-	UntypedBool
-	UntypedInt
-	UntypedRune
-	UntypedFloat
-	UntypedComplex
-	UntypedString
-	UntypedNil
-
-	// aliases
-	Byte = Uint8
-	Rune = Int32
-)
-
-// BasicInfo is a set of flags describing properties of a basic type.
-type BasicInfo int
-
-// Properties of basic types.
-const (
-	IsBoolean BasicInfo = 1 << iota
-	IsInteger
-	IsUnsigned
-	IsFloat
-	IsComplex
-	IsString
-	IsUntyped
-
-	IsOrdered   = IsInteger | IsFloat | IsString
-	IsNumeric   = IsInteger | IsFloat | IsComplex
-	IsConstType = IsBoolean | IsNumeric | IsString
-)
-
-// A Basic represents a basic type.
-type Basic struct {
-	Kind BasicKind
-	Info BasicInfo
-	Size int64
-	Name string
-}
-
-// An Array represents an array type [Len]Elt.
-type Array struct {
-	Len int64
-	Elt Type
-}
-
-// A Slice represents a slice type []Elt.
-type Slice struct {
-	Elt Type
-}
-
-// A QualifiedName is a name qualified with the package that declared the name.
-type QualifiedName struct {
-	Pkg  *Package // nil only for predeclared error.Error
-	Name string   // unqualified type name for anonymous fields
-}
-
-// IsSame reports whether p and q are the same.
-func (p QualifiedName) IsSame(q QualifiedName) bool {
-	// spec:
-	// "Two identifiers are different if they are spelled differently,
-	// or if they appear in different packages and are not exported.
-	// Otherwise, they are the same."
-	if p.Name != q.Name {
-		return false
-	}
-	// p.Name == q.Name
-	return ast.IsExported(p.Name) || p.Pkg == q.Pkg
-}
-
-// A Field represents a field of a struct.
-type Field struct {
-	QualifiedName
-	Type        Type
-	Tag         string
-	IsAnonymous bool
-}
-
-// A Struct represents a struct type struct{...}.
-type Struct struct {
-	Fields []*Field
-}
-
-func (typ *Struct) fieldIndex(name string) int {
-	for i, f := range typ.Fields {
-		if f.Name == name {
-			return i
-		}
-	}
-	return -1
-}
-
-// A Pointer represents a pointer type *Base.
-type Pointer struct {
-	Base Type
-}
-
-// A Result represents a (multi-value) function call result.
-type Result struct {
-	Values []*Var // Signature.Results of the function called
-}
-
-// A Signature represents a user-defined function type func(...) (...).
-type Signature struct {
-	Recv       *Var   // nil if not a method
-	Params     []*Var // (incoming) parameters from left to right; or nil
-	Results    []*Var // (outgoing) results from left to right; or nil
-	IsVariadic bool   // true if the last parameter's type is of the form ...T
-}
-
-// builtinId is an id of a builtin function.
-type builtinId int
-
-// Predeclared builtin functions.
-const (
-	// Universe scope
-	_Append builtinId = iota
-	_Cap
-	_Close
-	_Complex
-	_Copy
-	_Delete
-	_Imag
-	_Len
-	_Make
-	_New
-	_Panic
-	_Print
-	_Println
-	_Real
-	_Recover
-
-	// Unsafe package
-	_Alignof
-	_Offsetof
-	_Sizeof
-
-	// Testing support
-	_Assert
-	_Trace
-)
-
-// A builtin represents the type of a built-in function.
-type builtin struct {
-	id          builtinId
-	name        string
-	nargs       int // number of arguments (minimum if variadic)
-	isVariadic  bool
-	isStatement bool // true if the built-in is valid as an expression statement
-}
-
-// A Method represents a method.
-type Method struct {
-	QualifiedName
-	Type *Signature
-}
-
-// An Interface represents an interface type interface{...}.
-type Interface struct {
-	Methods []*Method // TODO(gri) consider keeping them in sorted order
-}
-
-// A Map represents a map type map[Key]Elt.
-type Map struct {
-	Key, Elt Type
-}
-
-// A Chan represents a channel type chan Elt, <-chan Elt, or chan<-Elt.
-type Chan struct {
-	Dir ast.ChanDir
-	Elt Type
-}
-
-// A NamedType represents a named type as declared in a type declaration.
-type NamedType struct {
-	Obj        *TypeName // corresponding declared object
-	Underlying Type      // nil if not fully declared yet; never a *NamedType
-	Methods    []*Method // TODO(gri) consider keeping them in sorted order
-}
-
-func (*Basic) aType()     {}
-func (*Array) aType()     {}
-func (*Slice) aType()     {}
-func (*Struct) aType()    {}
-func (*Pointer) aType()   {}
-func (*Result) aType()    {}
-func (*Signature) aType() {}
-func (*builtin) aType()   {}
-func (*Interface) aType() {}
-func (*Map) aType()       {}
-func (*Chan) aType()      {}
-func (*NamedType) aType() {}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/types_test.go gcc-4.8.1/libgo/go/go/types/types_test.go
--- gcc-4.8.1.orig/libgo/go/go/types/types_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/types_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,171 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file contains tests verifying the types associated with an AST after
-// type checking.
-
-package types
-
-import (
-	"go/ast"
-	"go/parser"
-	"testing"
-)
-
-const filename = "<src>"
-
-func makePkg(t *testing.T, src string) (*Package, error) {
-	file, err := parser.ParseFile(fset, filename, src, parser.DeclarationErrors)
-	if err != nil {
-		return nil, err
-	}
-	pkg, err := Check(fset, []*ast.File{file})
-	return pkg, err
-}
-
-type testEntry struct {
-	src, str string
-}
-
-// dup returns a testEntry where both src and str are the same.
-func dup(s string) testEntry {
-	return testEntry{s, s}
-}
-
-var testTypes = []testEntry{
-	// basic types
-	dup("int"),
-	dup("float32"),
-	dup("string"),
-
-	// arrays
-	dup("[10]int"),
-
-	// slices
-	dup("[]int"),
-	dup("[][]int"),
-
-	// structs
-	dup("struct{}"),
-	dup("struct{x int}"),
-	{`struct {
-		x, y int
-		z float32 "foo"
-	}`, `struct{x int; y int; z float32 "foo"}`},
-	{`struct {
-		string
-		elems []T
-	}`, `struct{string; elems []T}`},
-
-	// pointers
-	dup("*int"),
-	dup("***struct{}"),
-	dup("*struct{a int; b float32}"),
-
-	// functions
-	dup("func()"),
-	dup("func(x int)"),
-	{"func(x, y int)", "func(x int, y int)"},
-	{"func(x, y int, z string)", "func(x int, y int, z string)"},
-	dup("func(int)"),
-	{"func(int, string, byte)", "func(int, string, byte)"},
-
-	dup("func() int"),
-	{"func() (string)", "func() string"},
-	dup("func() (u int)"),
-	{"func() (u, v int, w string)", "func() (u int, v int, w string)"},
-
-	dup("func(int) string"),
-	dup("func(x int) string"),
-	dup("func(x int) (u string)"),
-	{"func(x, y int) (u string)", "func(x int, y int) (u string)"},
-
-	dup("func(...int) string"),
-	dup("func(x ...int) string"),
-	dup("func(x ...int) (u string)"),
-	{"func(x, y ...int) (u string)", "func(x int, y ...int) (u string)"},
-
-	// interfaces
-	dup("interface{}"),
-	dup("interface{m()}"),
-	dup(`interface{m(int) float32; String() string}`),
-	// TODO(gri) add test for interface w/ anonymous field
-
-	// maps
-	dup("map[string]int"),
-	{"map[struct{x, y int}][]byte", "map[struct{x int; y int}][]byte"},
-
-	// channels
-	dup("chan int"),
-	dup("chan<- func()"),
-	dup("<-chan []func() int"),
-}
-
-func TestTypes(t *testing.T) {
-	for _, test := range testTypes {
-		src := "package p; type T " + test.src
-		pkg, err := makePkg(t, src)
-		if err != nil {
-			t.Errorf("%s: %s", src, err)
-			continue
-		}
-		typ := underlying(pkg.Scope.Lookup("T").GetType())
-		str := typeString(typ)
-		if str != test.str {
-			t.Errorf("%s: got %s, want %s", test.src, str, test.str)
-		}
-	}
-}
-
-var testExprs = []testEntry{
-	// basic type literals
-	dup("x"),
-	dup("true"),
-	dup("42"),
-	dup("3.1415"),
-	dup("2.71828i"),
-	dup(`'a'`),
-	dup(`"foo"`),
-	dup("`bar`"),
-
-	// arbitrary expressions
-	dup("&x"),
-	dup("*&x"),
-	dup("(x)"),
-	dup("x + y"),
-	dup("x + y * 10"),
-	dup("t.foo"),
-	dup("s[0]"),
-	dup("s[x:y]"),
-	dup("s[:y]"),
-	dup("s[x:]"),
-	dup("s[:]"),
-	dup("f(1, 2.3)"),
-	dup("-f(10, 20)"),
-	dup("f(x + y, +3.1415)"),
-	{"func(a, b int) {}", "(func literal)"},
-	{"func(a, b int) []int {}(1, 2)[x]", "(func literal)(1, 2)[x]"},
-	{"[]int{1, 2, 3}", "(composite literal)"},
-	{"[]int{1, 2, 3}[x:]", "(composite literal)[x:]"},
-	{"i.([]string)", "i.(...)"},
-}
-
-func TestExprs(t *testing.T) {
-	for _, test := range testExprs {
-		src := "package p; var _ = " + test.src + "; var (x, y int; s []string; f func(int, float32) int; i interface{}; t interface { foo() })"
-		file, err := parser.ParseFile(fset, filename, src, parser.DeclarationErrors)
-		if err != nil {
-			t.Errorf("%s: %s", src, err)
-			continue
-		}
-		// TODO(gri) writing the code below w/o the decl variable will
-		//           cause a 386 compiler error (out of fixed registers)
-		decl := file.Decls[0].(*ast.GenDecl)
-		expr := decl.Specs[0].(*ast.ValueSpec).Values[0]
-		str := exprString(expr)
-		if str != test.str {
-			t.Errorf("%s: got %s, want %s", test.src, str, test.str)
-		}
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/go/types/universe.go gcc-4.8.1/libgo/go/go/types/universe.go
--- gcc-4.8.1.orig/libgo/go/go/types/universe.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/go/types/universe.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,137 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// This file implements the universe and unsafe package scopes.
-
-package types
-
-import (
-	"go/ast"
-	"strings"
-)
-
-var (
-	Universe     *Scope
-	Unsafe       *Package
-	universeIota *Const
-)
-
-// Predeclared types, indexed by BasicKind.
-var Typ = [...]*Basic{
-	Invalid: {Invalid, 0, 0, "invalid type"},
-
-	Bool:          {Bool, IsBoolean, 1, "bool"},
-	Int:           {Int, IsInteger, 0, "int"},
-	Int8:          {Int8, IsInteger, 1, "int8"},
-	Int16:         {Int16, IsInteger, 2, "int16"},
-	Int32:         {Int32, IsInteger, 4, "int32"},
-	Int64:         {Int64, IsInteger, 8, "int64"},
-	Uint:          {Uint, IsInteger | IsUnsigned, 0, "uint"},
-	Uint8:         {Uint8, IsInteger | IsUnsigned, 1, "uint8"},
-	Uint16:        {Uint16, IsInteger | IsUnsigned, 2, "uint16"},
-	Uint32:        {Uint32, IsInteger | IsUnsigned, 4, "uint32"},
-	Uint64:        {Uint64, IsInteger | IsUnsigned, 8, "uint64"},
-	Uintptr:       {Uintptr, IsInteger | IsUnsigned, 0, "uintptr"},
-	Float32:       {Float32, IsFloat, 4, "float32"},
-	Float64:       {Float64, IsFloat, 8, "float64"},
-	Complex64:     {Complex64, IsComplex, 8, "complex64"},
-	Complex128:    {Complex128, IsComplex, 16, "complex128"},
-	String:        {String, IsString, 0, "string"},
-	UnsafePointer: {UnsafePointer, 0, 0, "Pointer"},
-
-	UntypedBool:    {UntypedBool, IsBoolean | IsUntyped, 0, "untyped boolean"},
-	UntypedInt:     {UntypedInt, IsInteger | IsUntyped, 0, "untyped integer"},
-	UntypedRune:    {UntypedRune, IsInteger | IsUntyped, 0, "untyped rune"},
-	UntypedFloat:   {UntypedFloat, IsFloat | IsUntyped, 0, "untyped float"},
-	UntypedComplex: {UntypedComplex, IsComplex | IsUntyped, 0, "untyped complex"},
-	UntypedString:  {UntypedString, IsString | IsUntyped, 0, "untyped string"},
-	UntypedNil:     {UntypedNil, IsUntyped, 0, "untyped nil"},
-}
-
-var aliases = [...]*Basic{
-	{Byte, IsInteger | IsUnsigned, 1, "byte"},
-	{Rune, IsInteger, 4, "rune"},
-}
-
-var predeclaredConstants = [...]*Const{
-	{"true", Typ[UntypedBool], true, nil},
-	{"false", Typ[UntypedBool], false, nil},
-	{"iota", Typ[UntypedInt], zeroConst, nil},
-	{"nil", Typ[UntypedNil], nilConst, nil},
-}
-
-var predeclaredFunctions = [...]*builtin{
-	{_Append, "append", 1, true, false},
-	{_Cap, "cap", 1, false, false},
-	{_Close, "close", 1, false, true},
-	{_Complex, "complex", 2, false, false},
-	{_Copy, "copy", 2, false, true},
-	{_Delete, "delete", 2, false, true},
-	{_Imag, "imag", 1, false, false},
-	{_Len, "len", 1, false, false},
-	{_Make, "make", 1, true, false},
-	{_New, "new", 1, false, false},
-	{_Panic, "panic", 1, false, true},
-	{_Print, "print", 1, true, true},
-	{_Println, "println", 1, true, true},
-	{_Real, "real", 1, false, false},
-	{_Recover, "recover", 0, false, true},
-
-	{_Alignof, "Alignof", 1, false, false},
-	{_Offsetof, "Offsetof", 1, false, false},
-	{_Sizeof, "Sizeof", 1, false, false},
-}
-
-func init() {
-	Universe = new(Scope)
-	Unsafe = &Package{Name: "unsafe", Scope: new(Scope)}
-
-	// predeclared types
-	for _, t := range Typ {
-		def(&TypeName{Name: t.Name, Type: t})
-	}
-	for _, t := range aliases {
-		def(&TypeName{Name: t.Name, Type: t})
-	}
-
-	// error type
-	{
-		// Error has a nil package in its qualified name since it is in no package
-		err := &Method{QualifiedName{nil, "Error"}, &Signature{Results: []*Var{{Name: "", Type: Typ[String]}}}}
-		def(&TypeName{Name: "error", Type: &NamedType{Underlying: &Interface{Methods: []*Method{err}}}})
-	}
-
-	for _, c := range predeclaredConstants {
-		def(c)
-	}
-
-	for _, f := range predeclaredFunctions {
-		def(&Func{Name: f.name, Type: f})
-	}
-
-	universeIota = Universe.Lookup("iota").(*Const)
-}
-
-// Objects with names containing blanks are internal and not entered into
-// a scope. Objects with exported names are inserted in the unsafe package
-// scope; other objects are inserted in the universe scope.
-//
-func def(obj Object) {
-	name := obj.GetName()
-	if strings.Index(name, " ") >= 0 {
-		return // nothing to do
-	}
-	// fix Obj link for named types
-	if typ, ok := obj.GetType().(*NamedType); ok {
-		typ.Obj = obj.(*TypeName)
-	}
-	// exported identifiers go into package unsafe
-	scope := Universe
-	if ast.IsExported(name) {
-		scope = Unsafe.Scope
-	}
-	if scope.Insert(obj) != nil {
-		panic("internal error: double declaration")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/html/template/doc.go gcc-4.8.1/libgo/go/html/template/doc.go
--- gcc-4.8.1.orig/libgo/go/html/template/doc.go	2012-03-30 16:27:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/html/template/doc.go	2013-07-16 01:55:04.520470000 -0500
@@ -119,7 +119,7 @@
 Non-string values can be used in JavaScript contexts.
 If {{.}} is
 
-  []struct{A,B string}{ "foo", "bar" }
+  struct{A,B string}{ "foo", "bar" }
 
 in the escaped template
 
diff -Naur gcc-4.8.1.orig/libgo/go/html/template/template.go gcc-4.8.1/libgo/go/html/template/template.go
--- gcc-4.8.1.orig/libgo/go/html/template/template.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/html/template/template.go	2013-07-16 01:55:04.520470000 -0500
@@ -45,18 +45,24 @@
 	return m
 }
 
-// Execute applies a parsed template to the specified data object,
-// writing the output to wr.
-func (t *Template) Execute(wr io.Writer, data interface{}) (err error) {
+// escape escapes all associated templates.
+func (t *Template) escape() error {
 	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
 	if !t.escaped {
-		if err = escapeTemplates(t, t.Name()); err != nil {
-			t.escaped = true
+		if err := escapeTemplates(t, t.Name()); err != nil {
+			return err
 		}
+		t.escaped = true
 	}
-	t.nameSpace.mu.Unlock()
-	if err != nil {
-		return
+	return nil
+}
+
+// Execute applies a parsed template to the specified data object,
+// writing the output to wr.
+func (t *Template) Execute(wr io.Writer, data interface{}) error {
+	if err := t.escape(); err != nil {
+		return err
 	}
 	return t.text.Execute(wr, data)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/html/template/transition.go gcc-4.8.1/libgo/go/html/template/transition.go
--- gcc-4.8.1.orig/libgo/go/html/template/transition.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/html/template/transition.go	2013-07-16 01:55:04.520470000 -0500
@@ -71,7 +71,6 @@
 		}
 		k = j
 	}
-	panic("unreachable")
 }
 
 var elementContentType = [...]state{
@@ -430,7 +429,6 @@
 		}
 		k = i + 1
 	}
-	panic("unreachable")
 }
 
 // tCSSStr is the context transition function for the CSS string and URL states.
@@ -471,7 +469,6 @@
 		c, _ = tURL(c, decodeCSS(s[:i+1]))
 		k = i + 1
 	}
-	panic("unreachable")
 }
 
 // tError is the context transition function for the error state.
diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader.go gcc-4.8.1/libgo/go/image/gif/reader.go
--- gcc-4.8.1.orig/libgo/go/image/gif/reader.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/image/gif/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -17,6 +17,11 @@
 	"io"
 )
 
+var (
+	errNotEnough = errors.New("gif: not enough image data")
+	errTooMuch   = errors.New("gif: too much image data")
+)
+
 // If the io.Reader does not also have ReadByte, then decode will introduce its own buffering.
 type reader interface {
 	io.Reader
@@ -89,29 +94,35 @@
 // comprises (n, (n bytes)) blocks, with 1 <= n <= 255.  It is the
 // reader given to the LZW decoder, which is thus immune to the
 // blocking.  After the LZW decoder completes, there will be a 0-byte
-// block remaining (0, ()), but under normal execution blockReader
-// doesn't consume it, so it is handled in decode.
+// block remaining (0, ()), which is consumed when checking that the
+// blockReader is exhausted.
 type blockReader struct {
 	r     reader
 	slice []byte
+	err   error
 	tmp   [256]byte
 }
 
 func (b *blockReader) Read(p []byte) (int, error) {
+	if b.err != nil {
+		return 0, b.err
+	}
 	if len(p) == 0 {
 		return 0, nil
 	}
 	if len(b.slice) == 0 {
-		blockLen, err := b.r.ReadByte()
-		if err != nil {
-			return 0, err
+		var blockLen uint8
+		blockLen, b.err = b.r.ReadByte()
+		if b.err != nil {
+			return 0, b.err
 		}
 		if blockLen == 0 {
-			return 0, io.EOF
+			b.err = io.EOF
+			return 0, b.err
 		}
 		b.slice = b.tmp[0:blockLen]
-		if _, err = io.ReadFull(b.r, b.slice); err != nil {
-			return 0, err
+		if _, b.err = io.ReadFull(b.r, b.slice); b.err != nil {
+			return 0, b.err
 		}
 	}
 	n := copy(p, b.slice)
@@ -142,35 +153,33 @@
 		}
 	}
 
-Loop:
-	for err == nil {
-		var c byte
-		c, err = d.r.ReadByte()
-		if err == io.EOF {
-			break
+	for {
+		c, err := d.r.ReadByte()
+		if err != nil {
+			return err
 		}
 		switch c {
 		case sExtension:
-			err = d.readExtension()
+			if err = d.readExtension(); err != nil {
+				return err
+			}
 
 		case sImageDescriptor:
-			var m *image.Paletted
-			m, err = d.newImageFromDescriptor()
+			m, err := d.newImageFromDescriptor()
 			if err != nil {
-				break
+				return err
 			}
 			if d.imageFields&fColorMapFollows != 0 {
 				m.Palette, err = d.readColorMap()
 				if err != nil {
-					break
+					return err
 				}
 				// TODO: do we set transparency in this map too? That would be
 				// d.setTransparency(m.Palette)
 			} else {
 				m.Palette = d.globalColorMap
 			}
-			var litWidth uint8
-			litWidth, err = d.r.ReadByte()
+			litWidth, err := d.r.ReadByte()
 			if err != nil {
 				return err
 			}
@@ -178,18 +187,27 @@
 				return fmt.Errorf("gif: pixel size in decode out of range: %d", litWidth)
 			}
 			// A wonderfully Go-like piece of magic.
-			lzwr := lzw.NewReader(&blockReader{r: d.r}, lzw.LSB, int(litWidth))
+			br := &blockReader{r: d.r}
+			lzwr := lzw.NewReader(br, lzw.LSB, int(litWidth))
 			if _, err = io.ReadFull(lzwr, m.Pix); err != nil {
-				break
+				if err != io.ErrUnexpectedEOF {
+					return err
+				}
+				return errNotEnough
 			}
-
-			// There should be a "0" block remaining; drain that.
-			c, err = d.r.ReadByte()
-			if err != nil {
-				return err
+			// Both lzwr and br should be exhausted. Reading from them
+			// should yield (0, io.EOF).
+			if n, err := lzwr.Read(d.tmp[:1]); n != 0 || err != io.EOF {
+				if err != nil {
+					return err
+				}
+				return errTooMuch
 			}
-			if c != 0 {
-				return errors.New("gif: extra data after image")
+			if n, err := br.Read(d.tmp[:1]); n != 0 || err != io.EOF {
+				if err != nil {
+					return err
+				}
+				return errTooMuch
 			}
 
 			// Undo the interlacing if necessary.
@@ -202,19 +220,15 @@
 			d.delayTime = 0 // TODO: is this correct, or should we hold on to the value?
 
 		case sTrailer:
-			break Loop
+			if len(d.image) == 0 {
+				return io.ErrUnexpectedEOF
+			}
+			return nil
 
 		default:
-			err = fmt.Errorf("gif: unknown block type: 0x%.2x", c)
+			return fmt.Errorf("gif: unknown block type: 0x%.2x", c)
 		}
 	}
-	if err != nil {
-		return err
-	}
-	if len(d.image) == 0 {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
 }
 
 func (d *decoder) readHeaderAndScreenDescriptor() error {
@@ -304,7 +318,6 @@
 			return err
 		}
 	}
-	panic("unreachable")
 }
 
 func (d *decoder) readGraphicControl() error {
@@ -335,7 +348,15 @@
 	width := int(d.tmp[4]) + int(d.tmp[5])<<8
 	height := int(d.tmp[6]) + int(d.tmp[7])<<8
 	d.imageFields = d.tmp[8]
-	return image.NewPaletted(image.Rect(left, top, left+width, top+height), nil), nil
+
+	// The GIF89a spec, Section 20 (Image Descriptor) says:
+	// "Each image must fit within the boundaries of the Logical
+	// Screen, as defined in the Logical Screen Descriptor."
+	bounds := image.Rect(left, top, left+width, top+height)
+	if bounds != bounds.Intersect(image.Rect(0, 0, d.width, d.height)) {
+		return nil, errors.New("gif: frame bounds larger than image bounds")
+	}
+	return image.NewPaletted(bounds, nil), nil
 }
 
 func (d *decoder) readBlock() (int, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/image/gif/reader_test.go gcc-4.8.1/libgo/go/image/gif/reader_test.go
--- gcc-4.8.1.orig/libgo/go/image/gif/reader_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/image/gif/reader_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,138 @@
+package gif
+
+import (
+	"bytes"
+	"compress/lzw"
+	"image"
+	"image/color"
+	"reflect"
+	"testing"
+)
+
+func TestDecode(t *testing.T) {
+	// header and trailer are parts of a valid 2x1 GIF image.
+	const (
+		header = "GIF89a" +
+			"\x02\x00\x01\x00" + // width=2, height=1
+			"\x80\x00\x00" + // headerFields=(a color map of 2 pixels), backgroundIndex, aspect
+			"\x10\x20\x30\x40\x50\x60" // the color map, also known as a palette
+		trailer = "\x3b"
+	)
+
+	// lzwEncode returns an LZW encoding (with 2-bit literals) of n zeroes.
+	lzwEncode := func(n int) []byte {
+		b := &bytes.Buffer{}
+		w := lzw.NewWriter(b, lzw.LSB, 2)
+		w.Write(make([]byte, n))
+		w.Close()
+		return b.Bytes()
+	}
+
+	testCases := []struct {
+		nPix    int  // The number of pixels in the image data.
+		extra   bool // Whether to write an extra block after the LZW-encoded data.
+		wantErr error
+	}{
+		{0, false, errNotEnough},
+		{1, false, errNotEnough},
+		{2, false, nil},
+		{2, true, errTooMuch},
+		{3, false, errTooMuch},
+	}
+	for _, tc := range testCases {
+		b := &bytes.Buffer{}
+		b.WriteString(header)
+		// Write an image with bounds 2x1 but tc.nPix pixels. If tc.nPix != 2
+		// then this should result in an invalid GIF image. First, write a
+		// magic 0x2c (image descriptor) byte, bounds=(0,0)-(2,1), a flags
+		// byte, and 2-bit LZW literals.
+		b.WriteString("\x2c\x00\x00\x00\x00\x02\x00\x01\x00\x00\x02")
+		if tc.nPix > 0 {
+			enc := lzwEncode(tc.nPix)
+			if len(enc) > 0xff {
+				t.Errorf("nPix=%d, extra=%t: compressed length %d is too large", tc.nPix, tc.extra, len(enc))
+				continue
+			}
+			b.WriteByte(byte(len(enc)))
+			b.Write(enc)
+		}
+		if tc.extra {
+			b.WriteString("\x01\x02") // A 1-byte payload with an 0x02 byte.
+		}
+		b.WriteByte(0x00) // An empty block signifies the end of the image data.
+		b.WriteString(trailer)
+
+		got, err := Decode(b)
+		if err != tc.wantErr {
+			t.Errorf("nPix=%d, extra=%t\ngot  %v\nwant %v", tc.nPix, tc.extra, err, tc.wantErr)
+		}
+
+		if tc.wantErr != nil {
+			continue
+		}
+		want := &image.Paletted{
+			Pix:    []uint8{0, 0},
+			Stride: 2,
+			Rect:   image.Rect(0, 0, 2, 1),
+			Palette: color.Palette{
+				color.RGBA{0x10, 0x20, 0x30, 0xff},
+				color.RGBA{0x40, 0x50, 0x60, 0xff},
+			},
+		}
+		if !reflect.DeepEqual(got, want) {
+			t.Errorf("nPix=%d, extra=%t\ngot  %v\nwant %v", tc.nPix, tc.extra, got, want)
+		}
+	}
+}
+
+// testGIF is a simple GIF that we can modify to test different scenarios.
+var testGIF = []byte{
+	'G', 'I', 'F', '8', '9', 'a',
+	1, 0, 1, 0, // w=1, h=1 (6)
+	128, 0, 0, // headerFields, bg, aspect (10)
+	0, 0, 0, 1, 1, 1, // color map and graphics control (13)
+	0x21, 0xf9, 0x04, 0x00, 0x00, 0x00, 0xff, 0x00, // (19)
+	// frame 1 (0,0 - 1,1)
+	0x2c,
+	0x00, 0x00, 0x00, 0x00,
+	0x01, 0x00, 0x01, 0x00, // (32)
+	0x00,
+	0x02, 0x02, 0x4c, 0x01, 0x00, // lzw pixels
+	// trailer
+	0x3b,
+}
+
+func try(t *testing.T, b []byte, want string) {
+	_, err := DecodeAll(bytes.NewReader(b))
+	var got string
+	if err != nil {
+		got = err.Error()
+	}
+	if got != want {
+		t.Fatalf("got %v, want %v", got, want)
+	}
+}
+
+func TestBounds(t *testing.T) {
+	// make a local copy of testGIF
+	gif := make([]byte, len(testGIF))
+	copy(gif, testGIF)
+	// Make the bounds too big, just by one.
+	gif[32] = 2
+	want := "gif: frame bounds larger than image bounds"
+	try(t, gif, want)
+
+	// Make the bounds too small; does not trigger bounds
+	// check, but now there's too much data.
+	gif[32] = 0
+	want = "gif: too much image data"
+	try(t, gif, want)
+	gif[32] = 1
+
+	// Make the bounds really big, expect an error.
+	want = "gif: frame bounds larger than image bounds"
+	for i := 0; i < 4; i++ {
+		gif[32+i] = 0xff
+	}
+	try(t, gif, want)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader.go gcc-4.8.1/libgo/go/image/jpeg/reader.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/reader.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/image/jpeg/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -245,10 +245,38 @@
 		if err != nil {
 			return nil, err
 		}
-		if d.tmp[0] != 0xff {
-			return nil, FormatError("missing 0xff marker start")
+		for d.tmp[0] != 0xff {
+			// Strictly speaking, this is a format error. However, libjpeg is
+			// liberal in what it accepts. As of version 9, next_marker in
+			// jdmarker.c treats this as a warning (JWRN_EXTRANEOUS_DATA) and
+			// continues to decode the stream. Even before next_marker sees
+			// extraneous data, jpeg_fill_bit_buffer in jdhuff.c reads as many
+			// bytes as it can, possibly past the end of a scan's data. It
+			// effectively puts back any markers that it overscanned (e.g. an
+			// "\xff\xd9" EOI marker), but it does not put back non-marker data,
+			// and thus it can silently ignore a small number of extraneous
+			// non-marker bytes before next_marker has a chance to see them (and
+			// print a warning).
+			//
+			// We are therefore also liberal in what we accept. Extraneous data
+			// is silently ignored.
+			//
+			// This is similar to, but not exactly the same as, the restart
+			// mechanism within a scan (the RST[0-7] markers).
+			//
+			// Note that extraneous 0xff bytes in e.g. SOS data are escaped as
+			// "\xff\x00", and so are detected a little further down below.
+			d.tmp[0] = d.tmp[1]
+			d.tmp[1], err = d.r.ReadByte()
+			if err != nil {
+				return nil, err
+			}
 		}
 		marker := d.tmp[1]
+		if marker == 0 {
+			// Treat "\xff\x00" as extraneous data.
+			continue
+		}
 		for marker == 0xff {
 			// Section B.1.1.2 says, "Any marker may optionally be preceded by any
 			// number of fill bytes, which are bytes assigned code X'FF'".
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/reader_test.go gcc-4.8.1/libgo/go/image/jpeg/reader_test.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/reader_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/image/jpeg/reader_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -8,8 +8,11 @@
 	"bytes"
 	"fmt"
 	"image"
+	"image/color"
 	"io/ioutil"
+	"math/rand"
 	"os"
+	"strings"
 	"testing"
 )
 
@@ -131,6 +134,66 @@
 	return s.String()
 }
 
+func TestExtraneousData(t *testing.T) {
+	// Encode a 1x1 red image.
+	src := image.NewRGBA(image.Rect(0, 0, 1, 1))
+	src.Set(0, 0, color.RGBA{0xff, 0x00, 0x00, 0xff})
+	buf := new(bytes.Buffer)
+	if err := Encode(buf, src, nil); err != nil {
+		t.Fatalf("encode: %v", err)
+	}
+	enc := buf.String()
+	// Sanity check that the encoded JPEG is long enough, that it ends in a
+	// "\xff\xd9" EOI marker, and that it contains a "\xff\xda" SOS marker
+	// somewhere in the final 64 bytes.
+	if len(enc) < 64 {
+		t.Fatalf("encoded JPEG is too short: %d bytes", len(enc))
+	}
+	if got, want := enc[len(enc)-2:], "\xff\xd9"; got != want {
+		t.Fatalf("encoded JPEG ends with %q, want %q", got, want)
+	}
+	if s := enc[len(enc)-64:]; !strings.Contains(s, "\xff\xda") {
+		t.Fatalf("encoded JPEG does not contain a SOS marker (ff da) near the end: % x", s)
+	}
+	// Test that adding some random junk between the SOS marker and the
+	// EOI marker does not affect the decoding.
+	rnd := rand.New(rand.NewSource(1))
+	for i, nerr := 0, 0; i < 1000 && nerr < 10; i++ {
+		buf.Reset()
+		// Write all but the trailing "\xff\xd9" EOI marker.
+		buf.WriteString(enc[:len(enc)-2])
+		// Write some random extraneous data.
+		for n := rnd.Intn(10); n > 0; n-- {
+			if x := byte(rnd.Intn(256)); x != 0xff {
+				buf.WriteByte(x)
+			} else {
+				// The JPEG format escapes a SOS 0xff data byte as "\xff\x00".
+				buf.WriteString("\xff\x00")
+			}
+		}
+		// Write the "\xff\xd9" EOI marker.
+		buf.WriteString("\xff\xd9")
+
+		// Check that we can still decode the resultant image.
+		got, err := Decode(buf)
+		if err != nil {
+			t.Errorf("could not decode image #%d: %v", i, err)
+			nerr++
+			continue
+		}
+		if got.Bounds() != src.Bounds() {
+			t.Errorf("image #%d, bounds differ: %v and %v", i, got.Bounds(), src.Bounds())
+			nerr++
+			continue
+		}
+		if averageDelta(got, src) > 2<<8 {
+			t.Errorf("image #%d changed too much after a round trip", i)
+			nerr++
+			continue
+		}
+	}
+}
+
 func benchmarkDecode(b *testing.B, filename string) {
 	b.StopTimer()
 	data, err := ioutil.ReadFile(filename)
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/scan.go gcc-4.8.1/libgo/go/image/jpeg/scan.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/scan.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/image/jpeg/scan.go	2013-07-16 01:55:04.520470000 -0500
@@ -109,9 +109,11 @@
 	myy := (d.height + 8*v0 - 1) / (8 * v0)
 	if d.img1 == nil && d.img3 == nil {
 		d.makeImg(h0, v0, mxx, myy)
-		if d.progressive {
-			for i := 0; i < nComp; i++ {
-				compIndex := scan[i].compIndex
+	}
+	if d.progressive {
+		for i := 0; i < nComp; i++ {
+			compIndex := scan[i].compIndex
+			if d.progCoeffs[compIndex] == nil {
 				d.progCoeffs[compIndex] = make([]block, mxx*myy*d.comp[compIndex].h*d.comp[compIndex].v)
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/image/jpeg/writer_test.go gcc-4.8.1/libgo/go/image/jpeg/writer_test.go
--- gcc-4.8.1.orig/libgo/go/image/jpeg/writer_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/image/jpeg/writer_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -148,29 +148,38 @@
 			t.Error(tc.filename, err)
 			continue
 		}
-		// Compute the average delta in RGB space.
-		b := m0.Bounds()
-		var sum, n int64
-		for y := b.Min.Y; y < b.Max.Y; y++ {
-			for x := b.Min.X; x < b.Max.X; x++ {
-				c0 := m0.At(x, y)
-				c1 := m1.At(x, y)
-				r0, g0, b0, _ := c0.RGBA()
-				r1, g1, b1, _ := c1.RGBA()
-				sum += delta(r0, r1)
-				sum += delta(g0, g1)
-				sum += delta(b0, b1)
-				n += 3
-			}
+		if m0.Bounds() != m1.Bounds() {
+			t.Errorf("%s, bounds differ: %v and %v", tc.filename, m0.Bounds(), m1.Bounds())
+			continue
 		}
 		// Compare the average delta to the tolerance level.
-		if sum/n > tc.tolerance {
+		if averageDelta(m0, m1) > tc.tolerance {
 			t.Errorf("%s, quality=%d: average delta is too high", tc.filename, tc.quality)
 			continue
 		}
 	}
 }
 
+// averageDelta returns the average delta in RGB space. The two images must
+// have the same bounds.
+func averageDelta(m0, m1 image.Image) int64 {
+	b := m0.Bounds()
+	var sum, n int64
+	for y := b.Min.Y; y < b.Max.Y; y++ {
+		for x := b.Min.X; x < b.Max.X; x++ {
+			c0 := m0.At(x, y)
+			c1 := m1.At(x, y)
+			r0, g0, b0, _ := c0.RGBA()
+			r1, g1, b1, _ := c1.RGBA()
+			sum += delta(r0, r1)
+			sum += delta(g0, g1)
+			sum += delta(b0, b1)
+			n += 3
+		}
+	}
+	return sum / n
+}
+
 func BenchmarkEncode(b *testing.B) {
 	b.StopTimer()
 	img := image.NewRGBA(image.Rect(0, 0, 640, 480))
diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader.go gcc-4.8.1/libgo/go/image/png/reader.go
--- gcc-4.8.1.orig/libgo/go/image/png/reader.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/image/png/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -652,10 +652,11 @@
 			}
 			return image.Config{}, err
 		}
-		if d.stage == dsSeenIHDR && d.cb != cbP8 {
+		paletted := d.cb == cbP8 || d.cb == cbP4 || d.cb == cbP2 || d.cb == cbP1
+		if d.stage == dsSeenIHDR && !paletted {
 			break
 		}
-		if d.stage == dsSeenPLTE && d.cb == cbP8 {
+		if d.stage == dsSeenPLTE && paletted {
 			break
 		}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/image/png/reader_test.go gcc-4.8.1/libgo/go/image/png/reader_test.go
--- gcc-4.8.1.orig/libgo/go/image/png/reader_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/image/png/reader_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -38,6 +38,14 @@
 	"basn6a16",
 }
 
+var filenamesPaletted = []string{
+	"basn3p01",
+	"basn3p02",
+	"basn3p04",
+	"basn3p08",
+	"basn3p08-trns",
+}
+
 var filenamesShort = []string{
 	"basn0g01",
 	"basn0g04-31",
@@ -208,7 +216,7 @@
 		}
 
 		piper, pipew := io.Pipe()
-		pb := bufio.NewReader(piper)
+		pb := bufio.NewScanner(piper)
 		go sng(pipew, fn, img)
 		defer piper.Close()
 
@@ -219,7 +227,7 @@
 			continue
 		}
 		defer sf.Close()
-		sb := bufio.NewReader(sf)
+		sb := bufio.NewScanner(sf)
 		if err != nil {
 			t.Error(fn, err)
 			continue
@@ -227,24 +235,28 @@
 
 		// Compare the two, in SNG format, line by line.
 		for {
-			ps, perr := pb.ReadString('\n')
-			ss, serr := sb.ReadString('\n')
-			if perr == io.EOF && serr == io.EOF {
+			pdone := pb.Scan()
+			sdone := sb.Scan()
+			if pdone && sdone {
 				break
 			}
-			if perr != nil {
-				t.Error(fn, perr)
-				break
-			}
-			if serr != nil {
-				t.Error(fn, serr)
+			if pdone || sdone {
+				t.Errorf("%s: Different sizes", fn)
 				break
 			}
+			ps := pb.Text()
+			ss := sb.Text()
 			if ps != ss {
 				t.Errorf("%s: Mismatch\n%sversus\n%s\n", fn, ps, ss)
 				break
 			}
 		}
+		if pb.Err() != nil {
+			t.Error(fn, pb.Err())
+		}
+		if sb.Err() != nil {
+			t.Error(fn, sb.Err())
+		}
 	}
 }
 
@@ -273,6 +285,31 @@
 		}
 	}
 }
+
+func TestPalettedDecodeConfig(t *testing.T) {
+	for _, fn := range filenamesPaletted {
+		f, err := os.Open("testdata/pngsuite/" + fn + ".png")
+		if err != nil {
+			t.Errorf("%s: open failed: %v", fn, err)
+			continue
+		}
+		defer f.Close()
+		cfg, err := DecodeConfig(f)
+		if err != nil {
+			t.Errorf("%s: %v", fn, err)
+			continue
+		}
+		pal, ok := cfg.ColorModel.(color.Palette)
+		if !ok {
+			t.Errorf("%s: expected paletted color model", fn)
+			continue
+		}
+		if pal == nil {
+			t.Errorf("%s: palette not initialized", fn)
+			continue
+		}
+	}
+}
 
 func benchmarkDecode(b *testing.B, filename string, bytesPerPixel int) {
 	b.StopTimer()
diff -Naur gcc-4.8.1.orig/libgo/go/image/png/writer.go gcc-4.8.1/libgo/go/image/png/writer.go
--- gcc-4.8.1.orig/libgo/go/image/png/writer.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/image/png/writer.go	2013-07-16 01:55:04.520470000 -0500
@@ -436,7 +436,7 @@
 	// also rejected.
 	mw, mh := int64(m.Bounds().Dx()), int64(m.Bounds().Dy())
 	if mw <= 0 || mh <= 0 || mw >= 1<<32 || mh >= 1<<32 {
-		return FormatError("invalid image size: " + strconv.FormatInt(mw, 10) + "x" + strconv.FormatInt(mw, 10))
+		return FormatError("invalid image size: " + strconv.FormatInt(mw, 10) + "x" + strconv.FormatInt(mh, 10))
 	}
 
 	var e encoder
diff -Naur gcc-4.8.1.orig/libgo/go/io/io.go gcc-4.8.1/libgo/go/io/io.go
--- gcc-4.8.1.orig/libgo/go/io/io.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/io/io.go	2013-07-16 01:55:04.520470000 -0500
@@ -34,6 +34,11 @@
 // middle of reading a fixed-size block or data structure.
 var ErrUnexpectedEOF = errors.New("unexpected EOF")
 
+// ErrNoProgress is returned by some clients of an io.Reader when
+// many calls to Read have failed to return any data or error,
+// usually the sign of a broken io.Reader implementation.
+var ErrNoProgress = errors.New("multiple Read calls return no data or error")
+
 // Reader is the interface that wraps the basic Read method.
 //
 // Read reads up to len(p) bytes into p.  It returns the number of bytes
@@ -55,6 +60,10 @@
 // considering the error err.  Doing so correctly handles I/O errors
 // that happen after reading some bytes and also both of the
 // allowed EOF behaviors.
+//
+// Implementations of Read are discouraged from returning a
+// zero byte count with a nil error, and callers should treat
+// that situation as a no-op.
 type Reader interface {
 	Read(p []byte) (n int, err error)
 }
@@ -70,6 +79,9 @@
 }
 
 // Closer is the interface that wraps the basic Close method.
+//
+// The behavior of Close after the first call is undefined.
+// Specific implementations may document their own behavior.
 type Closer interface {
 	Close() error
 }
@@ -262,6 +274,7 @@
 // If an EOF happens after reading fewer than min bytes,
 // ReadAtLeast returns ErrUnexpectedEOF.
 // If min is greater than the length of buf, ReadAtLeast returns ErrShortBuffer.
+// On return, n >= min if and only if err == nil.
 func ReadAtLeast(r Reader, buf []byte, min int) (n int, err error) {
 	if len(buf) < min {
 		return 0, ErrShortBuffer
@@ -271,12 +284,10 @@
 		nn, err = r.Read(buf[n:])
 		n += nn
 	}
-	if err == EOF {
-		if n >= min {
-			err = nil
-		} else if n > 0 {
-			err = ErrUnexpectedEOF
-		}
+	if n >= min {
+		err = nil
+	} else if n > 0 && err == EOF {
+		err = ErrUnexpectedEOF
 	}
 	return
 }
@@ -286,56 +297,28 @@
 // The error is EOF only if no bytes were read.
 // If an EOF happens after reading some but not all the bytes,
 // ReadFull returns ErrUnexpectedEOF.
+// On return, n == len(buf) if and only if err == nil.
 func ReadFull(r Reader, buf []byte) (n int, err error) {
 	return ReadAtLeast(r, buf, len(buf))
 }
 
 // CopyN copies n bytes (or until an error) from src to dst.
 // It returns the number of bytes copied and the earliest
-// error encountered while copying.  Because Read can
-// return the full amount requested as well as an error
-// (including EOF), so can CopyN.
+// error encountered while copying.
+// On return, written == n if and only if err == nil.
 //
 // If dst implements the ReaderFrom interface,
 // the copy is implemented using it.
 func CopyN(dst Writer, src Reader, n int64) (written int64, err error) {
-	// If the writer has a ReadFrom method, use it to do the copy.
-	// Avoids a buffer allocation and a copy.
-	if rt, ok := dst.(ReaderFrom); ok {
-		written, err = rt.ReadFrom(LimitReader(src, n))
-		if written < n && err == nil {
-			// rt stopped early; must have been EOF.
-			err = EOF
-		}
-		return
+	written, err = Copy(dst, LimitReader(src, n))
+	if written == n {
+		return n, nil
 	}
-	buf := make([]byte, 32*1024)
-	for written < n {
-		l := len(buf)
-		if d := n - written; d < int64(l) {
-			l = int(d)
-		}
-		nr, er := src.Read(buf[0:l])
-		if nr > 0 {
-			nw, ew := dst.Write(buf[0:nr])
-			if nw > 0 {
-				written += int64(nw)
-			}
-			if ew != nil {
-				err = ew
-				break
-			}
-			if nr != nw {
-				err = ErrShortWrite
-				break
-			}
-		}
-		if er != nil {
-			err = er
-			break
-		}
+	if written < n && err == nil {
+		// src stopped early; must have been EOF.
+		err = EOF
 	}
-	return written, err
+	return
 }
 
 // Copy copies from src to dst until either EOF is reached
diff -Naur gcc-4.8.1.orig/libgo/go/io/io_test.go gcc-4.8.1/libgo/go/io/io_test.go
--- gcc-4.8.1.orig/libgo/go/io/io_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/io/io_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,6 +6,8 @@
 
 import (
 	"bytes"
+	"errors"
+	"fmt"
 	. "io"
 	"strings"
 	"testing"
@@ -88,6 +90,12 @@
 	return w.w.Write(p)
 }
 
+type wantedAndErrReader struct{}
+
+func (wantedAndErrReader) Read(p []byte) (int, error) {
+	return len(p), errors.New("wantedAndErrReader error")
+}
+
 func TestCopyNEOF(t *testing.T) {
 	// Test that EOF behavior is the same regardless of whether
 	// argument to CopyN has ReadFrom.
@@ -113,6 +121,16 @@
 	if n != 3 || err != EOF {
 		t.Errorf("CopyN(bytes.Buffer, foo, 4) = %d, %v; want 3, EOF", n, err)
 	}
+
+	n, err = CopyN(b, wantedAndErrReader{}, 5)
+	if n != 5 || err != nil {
+		t.Errorf("CopyN(bytes.Buffer, wantedAndErrReader, 5) = %d, %v; want 5, nil", n, err)
+	}
+
+	n, err = CopyN(&noReadFrom{b}, wantedAndErrReader{}, 5)
+	if n != 5 || err != nil {
+		t.Errorf("CopyN(noReadFrom, wantedAndErrReader, 5) = %d, %v; want 5, nil", n, err)
+	}
 }
 
 func TestReadAtLeast(t *testing.T) {
@@ -120,22 +138,30 @@
 	testReadAtLeast(t, &rb)
 }
 
-// A version of bytes.Buffer that returns n > 0, EOF on Read
+// A version of bytes.Buffer that returns n > 0, err on Read
 // when the input is exhausted.
-type dataAndEOFBuffer struct {
+type dataAndErrorBuffer struct {
+	err error
 	bytes.Buffer
 }
 
-func (r *dataAndEOFBuffer) Read(p []byte) (n int, err error) {
+func (r *dataAndErrorBuffer) Read(p []byte) (n int, err error) {
 	n, err = r.Buffer.Read(p)
 	if n > 0 && r.Buffer.Len() == 0 && err == nil {
-		err = EOF
+		err = r.err
 	}
 	return
 }
 
 func TestReadAtLeastWithDataAndEOF(t *testing.T) {
-	var rb dataAndEOFBuffer
+	var rb dataAndErrorBuffer
+	rb.err = EOF
+	testReadAtLeast(t, &rb)
+}
+
+func TestReadAtLeastWithDataAndError(t *testing.T) {
+	var rb dataAndErrorBuffer
+	rb.err = fmt.Errorf("fake error")
 	testReadAtLeast(t, &rb)
 }
 
@@ -169,8 +195,12 @@
 	}
 	rb.Write([]byte("4"))
 	n, err = ReadAtLeast(rb, buf, 2)
-	if err != ErrUnexpectedEOF {
-		t.Errorf("expected ErrUnexpectedEOF, got %v", err)
+	want := ErrUnexpectedEOF
+	if rb, ok := rb.(*dataAndErrorBuffer); ok && rb.err != EOF {
+		want = rb.err
+	}
+	if err != want {
+		t.Errorf("expected %v, got %v", want, err)
 	}
 	if n != 1 {
 		t.Errorf("expected to have read 1 bytes, got %v", n)
diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil.go gcc-4.8.1/libgo/go/io/ioutil/ioutil.go
--- gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/io/ioutil/ioutil.go	2013-07-16 01:55:04.520470000 -0500
@@ -144,7 +144,6 @@
 			return
 		}
 	}
-	panic("unreachable")
 }
 
 // Discard is an io.Writer on which all Write calls succeed
diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil_test.go gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go
--- gcc-4.8.1.orig/libgo/go/io/ioutil/ioutil_test.go	2012-01-23 17:55:31.000000000 -0600
+++ gcc-4.8.1/libgo/go/io/ioutil/ioutil_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package ioutil_test
+package ioutil
 
 import (
-	. "io/ioutil"
 	"os"
 	"testing"
 )
diff -Naur gcc-4.8.1.orig/libgo/go/io/ioutil/tempfile_test.go gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go
--- gcc-4.8.1.orig/libgo/go/io/ioutil/tempfile_test.go	2011-03-24 18:46:17.000000000 -0500
+++ gcc-4.8.1/libgo/go/io/ioutil/tempfile_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package ioutil_test
+package ioutil
 
 import (
-	. "io/ioutil"
 	"os"
 	"path/filepath"
 	"regexp"
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog.go gcc-4.8.1/libgo/go/log/syslog/syslog.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/log/syslog/syslog.go	2013-07-23 16:23:47.710479000 -0500
@@ -6,7 +6,11 @@
 
 // Package syslog provides a simple interface to the system log
 // service. It can send messages to the syslog daemon using UNIX
-// domain sockets, UDP, or TCP connections.
+// domain sockets, UDP or TCP.
+//
+// Only one call to Dial is necessary. On write failures,
+// the syslog client will attempt to reconnect to the server
+// and write again.
 package syslog
 
 import (
@@ -15,6 +19,8 @@
 	"log"
 	"net"
 	"os"
+	"strings"
+	"sync"
 	"time"
 )
 
@@ -78,11 +84,15 @@
 	priority Priority
 	tag      string
 	hostname string
-	conn     serverConn
+	network  string
+	raddr    string
+
+	mu   sync.Mutex // guards conn
+	conn serverConn
 }
 
 type serverConn interface {
-	writeString(p Priority, hostname, tag, s string) (int, error)
+	writeString(p Priority, hostname, tag, s, nl string) error
 	close() error
 }
 
@@ -101,7 +111,7 @@
 // address raddr on the network net.  Each write to the returned
 // writer sends a log message with the given facility, severity and
 // tag.
-func Dial(network, raddr string, priority Priority, tag string) (w *Writer, err error) {
+func Dial(network, raddr string, priority Priority, tag string) (*Writer, error) {
 	if priority < 0 || priority > LOG_LOCAL7|LOG_DEBUG {
 		return nil, errors.New("log/syslog: invalid priority")
 	}
@@ -109,113 +119,165 @@
 	if tag == "" {
 		tag = os.Args[0]
 	}
-
 	hostname, _ := os.Hostname()
 
-	var conn serverConn
-	if network == "" {
-		conn, err = unixSyslog()
-		if hostname == "" {
-			hostname = "localhost"
-		}
-	} else {
-		var c net.Conn
-		c, err = net.Dial(network, raddr)
-		conn = netConn{c}
-		if hostname == "" {
-			hostname = c.LocalAddr().String()
-		}
+	w := &Writer{
+		priority: priority,
+		tag:      tag,
+		hostname: hostname,
+		network:  network,
+		raddr:    raddr,
 	}
+
+	w.mu.Lock()
+	defer w.mu.Unlock()
+
+	err := w.connect()
 	if err != nil {
 		return nil, err
 	}
+	return w, err
+}
+
+// connect makes a connection to the syslog server.
+// It must be called with w.mu held.
+func (w *Writer) connect() (err error) {
+	if w.conn != nil {
+		// ignore err from close, it makes sense to continue anyway
+		w.conn.close()
+		w.conn = nil
+	}
 
-	return &Writer{priority: priority, tag: tag, hostname: hostname, conn: conn}, nil
+	if w.network == "" {
+		w.conn, err = unixSyslog()
+		if w.hostname == "" {
+			w.hostname = "localhost"
+		}
+	} else {
+		var c net.Conn
+		c, err = net.Dial(w.network, w.raddr)
+		if err == nil {
+			w.conn = netConn{c}
+			if w.hostname == "" {
+				w.hostname = c.LocalAddr().String()
+			}
+		}
+	}
+	return
 }
 
 // Write sends a log message to the syslog daemon.
 func (w *Writer) Write(b []byte) (int, error) {
-	return w.writeString(w.priority, string(b))
+	return w.writeAndRetry(w.priority, string(b))
 }
 
-func (w *Writer) Close() error { return w.conn.close() }
+// Close closes a connection to the syslog daemon.
+func (w *Writer) Close() error {
+	w.mu.Lock()
+	defer w.mu.Unlock()
+
+	if w.conn != nil {
+		err := w.conn.close()
+		w.conn = nil
+		return err
+	}
+	return nil
+}
 
 // Emerg logs a message with severity LOG_EMERG, ignoring the severity
 // passed to New.
 func (w *Writer) Emerg(m string) (err error) {
-	_, err = w.writeString(LOG_EMERG, m)
+	_, err = w.writeAndRetry(LOG_EMERG, m)
 	return err
 }
 
 // Alert logs a message with severity LOG_ALERT, ignoring the severity
 // passed to New.
 func (w *Writer) Alert(m string) (err error) {
-	_, err = w.writeString(LOG_ALERT, m)
+	_, err = w.writeAndRetry(LOG_ALERT, m)
 	return err
 }
 
 // Crit logs a message with severity LOG_CRIT, ignoring the severity
 // passed to New.
 func (w *Writer) Crit(m string) (err error) {
-	_, err = w.writeString(LOG_CRIT, m)
+	_, err = w.writeAndRetry(LOG_CRIT, m)
 	return err
 }
 
 // Err logs a message with severity LOG_ERR, ignoring the severity
 // passed to New.
 func (w *Writer) Err(m string) (err error) {
-	_, err = w.writeString(LOG_ERR, m)
+	_, err = w.writeAndRetry(LOG_ERR, m)
 	return err
 }
 
 // Wanring logs a message with severity LOG_WARNING, ignoring the
 // severity passed to New.
 func (w *Writer) Warning(m string) (err error) {
-	_, err = w.writeString(LOG_WARNING, m)
+	_, err = w.writeAndRetry(LOG_WARNING, m)
 	return err
 }
 
 // Notice logs a message with severity LOG_NOTICE, ignoring the
 // severity passed to New.
 func (w *Writer) Notice(m string) (err error) {
-	_, err = w.writeString(LOG_NOTICE, m)
+	_, err = w.writeAndRetry(LOG_NOTICE, m)
 	return err
 }
 
 // Info logs a message with severity LOG_INFO, ignoring the severity
 // passed to New.
 func (w *Writer) Info(m string) (err error) {
-	_, err = w.writeString(LOG_INFO, m)
+	_, err = w.writeAndRetry(LOG_INFO, m)
 	return err
 }
 
 // Debug logs a message with severity LOG_DEBUG, ignoring the severity
 // passed to New.
 func (w *Writer) Debug(m string) (err error) {
-	_, err = w.writeString(LOG_DEBUG, m)
+	_, err = w.writeAndRetry(LOG_DEBUG, m)
 	return err
 }
 
-func (w *Writer) writeString(p Priority, s string) (int, error) {
-	return w.conn.writeString((w.priority&facilityMask)|(p&severityMask),
-		w.hostname, w.tag, s)
+func (w *Writer) writeAndRetry(p Priority, s string) (int, error) {
+	pr := (w.priority & facilityMask) | (p & severityMask)
+
+	w.mu.Lock()
+	defer w.mu.Unlock()
+
+	if w.conn != nil {
+		if n, err := w.write(pr, s); err == nil {
+			return n, err
+		}
+	}
+	if err := w.connect(); err != nil {
+		return 0, err
+	}
+	return w.write(pr, s)
 }
 
-// writeString: generates and writes a syslog formatted string. The
+// write generates and writes a syslog formatted string. The
 // format is as follows: <PRI>TIMESTAMP HOSTNAME TAG[PID]: MSG
-func (n netConn) writeString(p Priority, hostname, tag, msg string) (int, error) {
+func (w *Writer) write(p Priority, msg string) (int, error) {
+	// ensure it ends in a \n
 	nl := ""
-	if len(msg) == 0 || msg[len(msg)-1] != '\n' {
+	if !strings.HasSuffix(msg, "\n") {
 		nl = "\n"
 	}
-	timestamp := time.Now().Format(time.RFC3339)
-	if _, err := fmt.Fprintf(n.conn, "<%d>%s %s %s[%d]: %s%s", p, timestamp, hostname,
-		tag, os.Getpid(), msg, nl); err != nil {
-		return 0, err
-	}
+
+	w.conn.writeString(p, w.hostname, w.tag, msg, nl)
 	return len(msg), nil
 }
 
+func (n netConn) writeString(p Priority, hostname, tag, msg, nl string) error {
+	timestamp := time.Now().Format(time.RFC3339)
+	_, err := fmt.Fprintf(n.conn, "<%d>%s %s %s[%d]: %s%s",
+		p, timestamp, hostname,
+		tag, os.Getpid(), msg, nl)
+	return err
+}
+
 func (n netConn) close() error {
 	return n.conn.Close()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_libc.go gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_libc.go	2012-12-17 15:07:27.000000000 -0600
+++ gcc-4.8.1/libgo/go/log/syslog/syslog_libc.go	2013-07-23 16:23:47.710479000 -0500
@@ -23,17 +23,17 @@
 
 func syslog_c(int, *byte)
 
-func (libcConn) writeString(p Priority, hostname, tag, msg string) (int, error) {
+func (libcConn) writeString(p Priority, hostname, tag, msg, nl string) error {
 	timestamp := time.Now().Format(time.RFC3339)
-	log := fmt.Sprintf("%s %s %s[%d]: %s", timestamp, hostname, tag, os.Getpid(), msg)
+	log := fmt.Sprintf("%s %s %s[%d]: %s%s", timestamp, hostname, tag, os.Getpid(), msg, nl)
 	buf, err := syscall.BytePtrFromString(log)
 	if err != nil {
-		return 0, err
+		return err
 	}
 	syscall.Entersyscall()
 	syslog_c(int(p), buf)
 	syscall.Exitsyscall()
-	return len(msg), nil
+	return nil
 }
 
 func (libcConn) close() error {
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_test.go gcc-4.8.1/libgo/go/log/syslog/syslog_test.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/log/syslog/syslog_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,38 +7,169 @@
 package syslog
 
 import (
+	"bufio"
 	"fmt"
 	"io"
+	"io/ioutil"
 	"log"
 	"net"
 	"os"
+	"sync"
 	"testing"
 	"time"
 )
 
-var serverAddr string
-
-func runSyslog(c net.PacketConn, done chan<- string) {
+func runPktSyslog(c net.PacketConn, done chan<- string) {
 	var buf [4096]byte
 	var rcvd string
+	ct := 0
 	for {
+		var n int
+		var err error
+
 		c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-		n, _, err := c.ReadFrom(buf[:])
+		n, _, err = c.ReadFrom(buf[:])
 		rcvd += string(buf[:n])
 		if err != nil {
+			if oe, ok := err.(*net.OpError); ok {
+				if ct < 3 && oe.Temporary() {
+					ct++
+					continue
+				}
+			}
 			break
 		}
 	}
+	c.Close()
 	done <- rcvd
 }
 
-func startServer(done chan<- string) {
-	c, e := net.ListenPacket("udp", "127.0.0.1:0")
-	if e != nil {
-		log.Fatalf("net.ListenPacket failed udp :0 %v", e)
+var crashy = false
+
+func runStreamSyslog(l net.Listener, done chan<- string, wg *sync.WaitGroup) {
+	for {
+		var c net.Conn
+		var err error
+		if c, err = l.Accept(); err != nil {
+			return
+		}
+		wg.Add(1)
+		go func(c net.Conn) {
+			defer wg.Done()
+			c.SetReadDeadline(time.Now().Add(5 * time.Second))
+			b := bufio.NewReader(c)
+			for ct := 1; !crashy || ct&7 != 0; ct++ {
+				s, err := b.ReadString('\n')
+				if err != nil {
+					break
+				}
+				done <- s
+			}
+			c.Close()
+		}(c)
+	}
+}
+
+func startServer(n, la string, done chan<- string) (addr string, sock io.Closer, wg *sync.WaitGroup) {
+	if n == "udp" || n == "tcp" {
+		la = "127.0.0.1:0"
+	} else {
+		// unix and unixgram: choose an address if none given
+		if la == "" {
+			// use ioutil.TempFile to get a name that is unique
+			f, err := ioutil.TempFile("", "syslogtest")
+			if err != nil {
+				log.Fatal("TempFile: ", err)
+			}
+			f.Close()
+			la = f.Name()
+		}
+		os.Remove(la)
+	}
+
+	wg = new(sync.WaitGroup)
+	if n == "udp" || n == "unixgram" {
+		l, e := net.ListenPacket(n, la)
+		if e != nil {
+			log.Fatalf("startServer failed: %v", e)
+		}
+		addr = l.LocalAddr().String()
+		sock = l
+		wg.Add(1)
+		go func() {
+			defer wg.Done()
+			runPktSyslog(l, done)
+		}()
+	} else {
+		l, e := net.Listen(n, la)
+		if e != nil {
+			log.Fatalf("startServer failed: %v", e)
+		}
+		addr = l.Addr().String()
+		sock = l
+		wg.Add(1)
+		go func() {
+			defer wg.Done()
+			runStreamSyslog(l, done, wg)
+		}()
+	}
+	return
+}
+
+func TestWithSimulated(t *testing.T) {
+	msg := "Test 123"
+	transport := []string{"unix", "unixgram", "udp", "tcp"}
+
+	for _, tr := range transport {
+		done := make(chan string)
+		addr, _, _ := startServer(tr, "", done)
+		if tr == "unix" || tr == "unixgram" {
+			defer os.Remove(addr)
+		}
+		s, err := Dial(tr, addr, LOG_INFO|LOG_USER, "syslog_test")
+		if err != nil {
+			t.Fatalf("Dial() failed: %v", err)
+		}
+		err = s.Info(msg)
+		if err != nil {
+			t.Fatalf("log failed: %v", err)
+		}
+		check(t, msg, <-done)
+		s.Close()
+	}
+}
+
+func TestFlap(t *testing.T) {
+	net := "unix"
+	done := make(chan string)
+	addr, sock, _ := startServer(net, "", done)
+	defer os.Remove(addr)
+	defer sock.Close()
+
+	s, err := Dial(net, addr, LOG_INFO|LOG_USER, "syslog_test")
+	if err != nil {
+		t.Fatalf("Dial() failed: %v", err)
+	}
+	msg := "Moo 2"
+	err = s.Info(msg)
+	if err != nil {
+		t.Fatalf("log failed: %v", err)
+	}
+	check(t, msg, <-done)
+
+	// restart the server
+	_, sock2, _ := startServer(net, addr, done)
+	defer sock2.Close()
+
+	// and try retransmitting
+	msg = "Moo 3"
+	err = s.Info(msg)
+	if err != nil {
+		t.Fatalf("log failed: %v", err)
 	}
-	serverAddr = c.LocalAddr().String()
-	go runSyslog(c, done)
+	check(t, msg, <-done)
+
+	s.Close()
 }
 
 func TestNew(t *testing.T) {
@@ -49,7 +180,8 @@
 		// Depends on syslog daemon running, and sometimes it's not.
 		t.Skip("skipping syslog test during -short")
 	}
-	s, err := New(LOG_INFO|LOG_USER, "")
+
+	s, err := New(LOG_INFO|LOG_USER, "the_tag")
 	if err != nil {
 		t.Fatalf("New() failed: %s", err)
 	}
@@ -86,24 +218,15 @@
 	l.Close()
 }
 
-func TestUDPDial(t *testing.T) {
-	done := make(chan string)
-	startServer(done)
-	l, err := Dial("udp", serverAddr, LOG_USER|LOG_INFO, "syslog_test")
-	if err != nil {
-		t.Fatalf("syslog.Dial() failed: %s", err)
-	}
-	msg := "udp test"
-	l.Info(msg)
-	expected := fmt.Sprintf("<%d>", LOG_USER+LOG_INFO) + "%s %s syslog_test[%d]: udp test\n"
-	rcvd := <-done
-	var parsedHostname, timestamp string
-	var pid int
+func check(t *testing.T, in, out string) {
+	tmpl := fmt.Sprintf("<%d>%%s %%s syslog_test[%%d]: %s\n", LOG_USER+LOG_INFO, in)
 	if hostname, err := os.Hostname(); err != nil {
-		t.Fatalf("Error retrieving hostname")
+		t.Error("Error retrieving hostname")
 	} else {
-		if n, err := fmt.Sscanf(rcvd, expected, &timestamp, &parsedHostname, &pid); n != 3 || err != nil || hostname != parsedHostname {
-			t.Fatalf("'%q', didn't match '%q' (%d, %s)", rcvd, expected, n, err)
+		var parsedHostname, timestamp string
+		var pid int
+		if n, err := fmt.Sscanf(out, tmpl, &timestamp, &parsedHostname, &pid); n != 3 || err != nil || hostname != parsedHostname {
+			t.Errorf("Got %q, does not match template %q (%d %s)", out, tmpl, n, err)
 		}
 	}
 }
@@ -126,24 +249,100 @@
 	} else {
 		for _, test := range tests {
 			done := make(chan string)
-			startServer(done)
-			l, err := Dial("udp", serverAddr, test.pri, test.pre)
+			addr, sock, _ := startServer("udp", "", done)
+			defer sock.Close()
+			l, err := Dial("udp", addr, test.pri, test.pre)
 			if err != nil {
-				t.Fatalf("syslog.Dial() failed: %s", err)
+				t.Fatalf("syslog.Dial() failed: %v", err)
 			}
 			_, err = io.WriteString(l, test.msg)
 			if err != nil {
-				t.Fatalf("WriteString() failed: %s", err)
+				t.Fatalf("WriteString() failed: %v", err)
 			}
 			rcvd := <-done
 			test.exp = fmt.Sprintf("<%d>", test.pri) + test.exp
 			var parsedHostname, timestamp string
 			var pid int
-			if n, err := fmt.Sscanf(rcvd, test.exp, &timestamp, &parsedHostname,
-				&pid); n != 3 || err != nil || hostname != parsedHostname {
-				t.Fatalf("'%q', didn't match '%q' (%d %s)", rcvd, test.exp,
-					n, err)
+			if n, err := fmt.Sscanf(rcvd, test.exp, &timestamp, &parsedHostname, &pid); n != 3 || err != nil || hostname != parsedHostname {
+				t.Errorf("s.Info() = '%q', didn't match '%q' (%d %s)", rcvd, test.exp, n, err)
+			}
+		}
+	}
+}
+
+func TestConcurrentWrite(t *testing.T) {
+	addr, sock, _ := startServer("udp", "", make(chan string))
+	defer sock.Close()
+	w, err := Dial("udp", addr, LOG_USER|LOG_ERR, "how's it going?")
+	if err != nil {
+		t.Fatalf("syslog.Dial() failed: %v", err)
+	}
+	var wg sync.WaitGroup
+	for i := 0; i < 10; i++ {
+		wg.Add(1)
+		go func() {
+			err := w.Info("test")
+			if err != nil {
+				t.Errorf("Info() failed: %v", err)
+				return
+			}
+			wg.Done()
+		}()
+	}
+	wg.Wait()
+}
+
+func TestConcurrentReconnect(t *testing.T) {
+	crashy = true
+	defer func() { crashy = false }()
+
+	net := "unix"
+	done := make(chan string)
+	addr, sock, srvWG := startServer(net, "", done)
+	defer os.Remove(addr)
+
+	// count all the messages arriving
+	count := make(chan int)
+	go func() {
+		ct := 0
+		for _ = range done {
+			ct++
+			// we are looking for 500 out of 1000 events
+			// here because lots of log messages are lost
+			// in buffers (kernel and/or bufio)
+			if ct > 500 {
+				break
 			}
 		}
+		count <- ct
+	}()
+
+	var wg sync.WaitGroup
+	for i := 0; i < 10; i++ {
+		wg.Add(1)
+		go func() {
+			w, err := Dial(net, addr, LOG_USER|LOG_ERR, "tag")
+			if err != nil {
+				t.Fatalf("syslog.Dial() failed: %v", err)
+			}
+			for i := 0; i < 100; i++ {
+				err := w.Info("test")
+				if err != nil {
+					t.Errorf("Info() failed: %v", err)
+					return
+				}
+			}
+			wg.Done()
+		}()
+	}
+	wg.Wait()
+	sock.Close()
+	srvWG.Wait()
+	close(done)
+
+	select {
+	case <-count:
+	case <-time.After(100 * time.Millisecond):
+		t.Error("timeout in concurrent reconnect")
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/log/syslog/syslog_unix.go gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go
--- gcc-4.8.1.orig/libgo/go/log/syslog/syslog_unix.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/log/syslog/syslog_unix.go	2013-07-23 16:23:47.710479000 -0500
@@ -17,11 +17,9 @@
 func unixSyslog() (conn serverConn, err error) {
 	logTypes := []string{"unixgram", "unix"}
 	logPaths := []string{"/dev/log", "/var/run/syslog"}
-	var raddr string
 	for _, network := range logTypes {
 		for _, path := range logPaths {
-			raddr = path
-			conn, err := net.Dial(network, raddr)
+			conn, err := net.Dial(network, path)
 			if err != nil {
 				continue
 			} else {
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/int.go gcc-4.8.1/libgo/go/math/big/int.go
--- gcc-4.8.1.orig/libgo/go/math/big/int.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/big/int.go	2013-07-16 01:55:04.520470000 -0500
@@ -53,7 +53,7 @@
 
 // SetUint64 sets z to x and returns z.
 func (z *Int) SetUint64(x uint64) *Int {
-	z.abs = z.abs.setUint64(uint64(x))
+	z.abs = z.abs.setUint64(x)
 	z.neg = false
 	return z
 }
@@ -513,13 +513,7 @@
 // Int64 returns the int64 representation of x.
 // If x cannot be represented in an int64, the result is undefined.
 func (x *Int) Int64() int64 {
-	if len(x.abs) == 0 {
-		return 0
-	}
-	v := int64(x.abs[0])
-	if _W == 32 && len(x.abs) > 1 {
-		v |= int64(x.abs[1]) << 32
-	}
+	v := int64(x.Uint64())
 	if x.neg {
 		v = -v
 	}
@@ -527,7 +521,7 @@
 }
 
 // Uint64 returns the uint64 representation of x.
-// If x cannot be represented in an uint64, the result is undefined.
+// If x cannot be represented in a uint64, the result is undefined.
 func (x *Int) Uint64() uint64 {
 	if len(x.abs) == 0 {
 		return 0
@@ -795,8 +789,8 @@
 }
 
 // SetBit sets z to x, with x's i'th bit set to b (0 or 1).
-// That is, if bit is 1 SetBit sets z = x | (1 << i);
-// if bit is 0 it sets z = x &^ (1 << i). If bit is not 0 or 1,
+// That is, if b is 1 SetBit sets z = x | (1 << i);
+// if b is 0 SetBit sets z = x &^ (1 << i). If b is not 0 or 1,
 // SetBit will panic.
 func (z *Int) SetBit(x *Int, i int, b uint) *Int {
 	if i < 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/nat.go gcc-4.8.1/libgo/go/math/big/nat.go
--- gcc-4.8.1.orig/libgo/go/math/big/nat.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/big/nat.go	2013-07-16 01:55:04.520470000 -0500
@@ -1021,8 +1021,6 @@
 	default:
 		panic("unknown word size")
 	}
-
-	return 0
 }
 
 // trailingZeroBits returns the number of consecutive least significant zero
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat.go gcc-4.8.1/libgo/go/math/big/rat.go
--- gcc-4.8.1.orig/libgo/go/math/big/rat.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/big/rat.go	2013-07-16 01:55:04.520470000 -0500
@@ -163,16 +163,16 @@
 	return
 }
 
-// Float64 returns the nearest float64 value to z.
-// If z is exactly representable as a float64, Float64 returns exact=true.
-// If z is negative, so too is f, even if f==0.
-func (z *Rat) Float64() (f float64, exact bool) {
-	b := z.b.abs
+// Float64 returns the nearest float64 value for x and a bool indicating
+// whether f represents x exactly. The sign of f always matches the sign
+// of x, even if f == 0.
+func (x *Rat) Float64() (f float64, exact bool) {
+	b := x.b.abs
 	if len(b) == 0 {
 		b = b.set(natOne) // materialize denominator
 	}
-	f, exact = quotToFloat(z.a.abs, b)
-	if z.a.neg {
+	f, exact = quotToFloat(x.a.abs, b)
+	if x.a.neg {
 		f = -f
 	}
 	return
diff -Naur gcc-4.8.1.orig/libgo/go/math/big/rat_test.go gcc-4.8.1/libgo/go/math/big/rat_test.go
--- gcc-4.8.1.orig/libgo/go/math/big/rat_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/big/rat_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -500,12 +500,10 @@
 	}
 }
 
-// Test inputs to Rat.SetString.  The optional prefix "slow:" skips
-// checks found to be slow for certain large rationals.
+// Test inputs to Rat.SetString.  The prefix "long:" causes the test
+// to be skipped in --test.short mode.  (The threshold is about 500us.)
 var float64inputs = []string{
-	//
 	// Constants plundered from strconv/testfp.txt.
-	//
 
 	// Table 1: Stress Inputs for Conversion to 53-bit Binary, < 1/2 ULP
 	"5e+125",
@@ -583,9 +581,7 @@
 	"75224575729e-45",
 	"459926601011e+15",
 
-	//
 	// Constants plundered from strconv/atof_test.go.
-	//
 
 	"0",
 	"1",
@@ -630,8 +626,8 @@
 	"-1e310",
 	"1e400",
 	"-1e400",
-	"1e400000",
-	"-1e400000",
+	"long:1e400000",
+	"long:-1e400000",
 
 	// denormalized
 	"1e-305",
@@ -649,10 +645,10 @@
 	"2e-324",
 	// way too small
 	"1e-350",
-	"slow:1e-400000",
+	"long:1e-400000",
 	// way too small, negative
 	"-1e-350",
-	"slow:-1e-400000",
+	"long:-1e-400000",
 
 	// try to overflow exponent
 	// [Disabled: too slow and memory-hungry with rationals.]
@@ -672,7 +668,7 @@
 
 	// A different kind of very large number.
 	"22.222222222222222",
-	"2." + strings.Repeat("2", 4000) + "e+1",
+	"long:2." + strings.Repeat("2", 4000) + "e+1",
 
 	// Exactly halfway between 1 and math.Nextafter(1, 2).
 	// Round to even (down).
@@ -682,7 +678,7 @@
 	// Slightly higher; round up.
 	"1.00000000000000011102230246251565404236316680908203126",
 	// Slightly higher, but you have to read all the way to the end.
-	"slow:1.00000000000000011102230246251565404236316680908203125" + strings.Repeat("0", 10000) + "1",
+	"long:1.00000000000000011102230246251565404236316680908203125" + strings.Repeat("0", 10000) + "1",
 
 	// Smallest denormal, 2^(-1022-52)
 	"4.940656458412465441765687928682213723651e-324",
@@ -705,9 +701,11 @@
 
 func TestFloat64SpecialCases(t *testing.T) {
 	for _, input := range float64inputs {
-		slow := strings.HasPrefix(input, "slow:")
-		if slow {
-			input = input[len("slow:"):]
+		if strings.HasPrefix(input, "long:") {
+			if testing.Short() {
+				continue
+			}
+			input = input[len("long:"):]
 		}
 
 		r, ok := new(Rat).SetString(input)
@@ -732,11 +730,11 @@
 			case f == 0 && r.Num().BitLen() == 0:
 				// Ok: Rat(0) is equivalent to both +/- float64(0).
 			default:
-				t.Errorf("strconv.ParseFloat(%q) = %g (%b), want %g (%b); delta=%g", input, e, e, f, f, f-e)
+				t.Errorf("strconv.ParseFloat(%q) = %g (%b), want %g (%b); delta = %g", input, e, e, f, f, f-e)
 			}
 		}
 
-		if !isFinite(f) || slow {
+		if !isFinite(f) {
 			continue
 		}
 
@@ -751,7 +749,7 @@
 
 		// 4. Check exactness using slow algorithm.
 		if wasExact := new(Rat).SetFloat64(f).Cmp(r) == 0; wasExact != exact {
-			t.Errorf("Rat.SetString(%q).Float64().exact = %b, want %b", input, exact, wasExact)
+			t.Errorf("Rat.SetString(%q).Float64().exact = %t, want %t", input, exact, wasExact)
 		}
 	}
 }
@@ -769,8 +767,11 @@
 		9,
 		11,
 	}
-	const winc, einc = 5, 100 // quick test (<1s)
-	//const winc, einc = 1, 1 // soak test (~75s)
+	var winc, einc = uint64(1), int(1) // soak test (~75s on x86-64)
+	if testing.Short() {
+		winc, einc = 10, 500 // quick test (~12ms on x86-64)
+	}
+
 	for _, sign := range "+-" {
 		for _, a := range add {
 			for wid := uint64(0); wid < 60; wid += winc {
@@ -790,7 +791,7 @@
 
 					if !checkIsBestApprox(t, f, r) {
 						// Append context information.
-						t.Errorf("(input was mantissa %#x, exp %d; f=%g (%b); f~%g; r=%v)",
+						t.Errorf("(input was mantissa %#x, exp %d; f = %g (%b); f ~ %g; r = %v)",
 							b, exp, f, f, math.Ldexp(float64(b), exp), r)
 					}
 
@@ -825,7 +826,7 @@
 	}
 	f2, exact := r.Float64()
 	if f != f2 || !exact {
-		t.Errorf("Rat.SetFloat64(%g).Float64() = %g (%b), %v, want %g (%b), %v; delta=%b",
+		t.Errorf("Rat.SetFloat64(%g).Float64() = %g (%b), %v, want %g (%b), %v; delta = %b",
 			f, f2, f2, exact, f, f, true, f2-f)
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/math/hypot.go gcc-4.8.1/libgo/go/math/hypot.go
--- gcc-4.8.1.orig/libgo/go/math/hypot.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/math/hypot.go	2013-07-16 01:55:04.520470000 -0500
@@ -12,8 +12,10 @@
 // unnecessary overflow and underflow.
 //
 // Special cases are:
-//	Hypot(p, q) = +Inf if p or q is infinite
-//	Hypot(p, q) = NaN if p or q is NaN
+//	Hypot(Â±Inf, q) = +Inf
+//	Hypot(p, Â±Inf) = +Inf
+//	Hypot(NaN, q) = NaN
+//	Hypot(p, NaN) = NaN
 func Hypot(p, q float64) float64 {
 	return hypot(p, q)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/exp.go gcc-4.8.1/libgo/go/math/rand/exp.go
--- gcc-4.8.1.orig/libgo/go/math/rand/exp.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/rand/exp.go	2013-07-16 01:55:04.520470000 -0500
@@ -43,7 +43,6 @@
 			return x
 		}
 	}
-	panic("unreachable")
 }
 
 var ke = [256]uint32{
diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/normal.go gcc-4.8.1/libgo/go/math/rand/normal.go
--- gcc-4.8.1.orig/libgo/go/math/rand/normal.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/rand/normal.go	2013-07-16 01:55:04.520470000 -0500
@@ -63,7 +63,6 @@
 			return x
 		}
 	}
-	panic("unreachable")
 }
 
 var kn = [128]uint32{
diff -Naur gcc-4.8.1.orig/libgo/go/math/rand/zipf.go gcc-4.8.1/libgo/go/math/rand/zipf.go
--- gcc-4.8.1.orig/libgo/go/math/rand/zipf.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/rand/zipf.go	2013-07-16 01:55:04.520470000 -0500
@@ -34,7 +34,6 @@
 
 // NewZipf returns a Zipf generating variates p(k) on [0, imax]
 // proportional to (v+k)**(-s) where s>1 and k>=0, and v>=1.
-//
 func NewZipf(r *Rand, s float64, v float64, imax uint64) *Zipf {
 	z := new(Zipf)
 	if s <= 1.0 || v < 1 {
@@ -52,9 +51,12 @@
 	return z
 }
 
-// Uint64 returns a value drawn from the Zipf distributed described
+// Uint64 returns a value drawn from the Zipf distribution described
 // by the Zipf object.
 func (z *Zipf) Uint64() uint64 {
+	if z == nil {
+		panic("rand: nil Zipf")
+	}
 	k := 0.0
 
 	for {
diff -Naur gcc-4.8.1.orig/libgo/go/math/sqrt.go gcc-4.8.1/libgo/go/math/sqrt.go
--- gcc-4.8.1.orig/libgo/go/math/sqrt.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/math/sqrt.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,14 +4,6 @@
 
 package math
 
-// Sqrt returns the square root of x.
-//
-// Special cases are:
-//	Sqrt(+Inf) = +Inf
-//	Sqrt(Â±0) = Â±0
-//	Sqrt(x < 0) = NaN
-//	Sqrt(NaN) = NaN
-
 //extern sqrt
 func libc_sqrt(float64) float64
 
diff -Naur gcc-4.8.1.orig/libgo/go/math/tanh.go gcc-4.8.1/libgo/go/math/tanh.go
--- gcc-4.8.1.orig/libgo/go/math/tanh.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/math/tanh.go	2013-07-16 01:55:04.520470000 -0500
@@ -65,7 +65,7 @@
 	4.84406305325125486048E3,
 }
 
-// Tanh computes the hyperbolic tangent of x.
+// Tanh returns the hyperbolic tangent of x.
 //
 // Special cases are:
 //	Tanh(Â±0) = Â±0
diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/multipart.go gcc-4.8.1/libgo/go/mime/multipart/multipart.go
--- gcc-4.8.1.orig/libgo/go/mime/multipart/multipart.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/mime/multipart/multipart.go	2013-07-16 01:55:04.520470000 -0500
@@ -28,7 +28,12 @@
 type Part struct {
 	// The headers of the body, if any, with the keys canonicalized
 	// in the same fashion that the Go http.Request headers are.
-	// i.e. "foo-bar" changes case to "Foo-Bar"
+	// For example, "foo-bar" changes case to "Foo-Bar"
+	//
+	// As a special case, if the "Content-Transfer-Encoding" header
+	// has a value of "quoted-printable", that header is instead
+	// hidden from this map and the body is transparently decoded
+	// during Read calls.
 	Header textproto.MIMEHeader
 
 	buffer    *bytes.Buffer
@@ -265,11 +270,10 @@
 
 		return nil, fmt.Errorf("multipart: unexpected line in Next(): %q", line)
 	}
-	panic("unreachable")
 }
 
 // isFinalBoundary returns whether line is the final boundary line
-// indiciating that all parts are over.
+// indicating that all parts are over.
 // It matches `^--boundary--[ \t]*(\r\n)?$`
 func (mr *Reader) isFinalBoundary(line []byte) bool {
 	if !bytes.HasPrefix(line, mr.dashBoundaryDash) {
diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go
--- gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable.go	2013-07-16 01:55:04.520470000 -0500
@@ -3,6 +3,10 @@
 // license that can be found in the LICENSE file.
 
 // The file define a quoted-printable decoder, as specified in RFC 2045.
+// Deviations:
+// 1. in addition to "=\r\n", "=\n" is also treated as soft line break.
+// 2. it will pass through a '\r' or '\n' not preceded by '=', consistent
+//    with other broken QP encoders & decoders.
 
 package multipart
 
@@ -57,6 +61,12 @@
 	return false
 }
 
+var (
+	crlf       = []byte("\r\n")
+	lf         = []byte("\n")
+	softSuffix = []byte("=")
+)
+
 func (q *qpReader) Read(p []byte) (n int, err error) {
 	for len(p) > 0 {
 		if len(q.line) == 0 {
@@ -64,15 +74,29 @@
 				return n, q.rerr
 			}
 			q.line, q.rerr = q.br.ReadSlice('\n')
-			q.line = bytes.TrimRightFunc(q.line, isQPDiscardWhitespace)
-			continue
-		}
-		if len(q.line) == 1 && q.line[0] == '=' {
-			// Soft newline; skipped.
-			q.line = nil
+
+			// Does the line end in CRLF instead of just LF?
+			hasLF := bytes.HasSuffix(q.line, lf)
+			hasCR := bytes.HasSuffix(q.line, crlf)
+			wholeLine := q.line
+			q.line = bytes.TrimRightFunc(wholeLine, isQPDiscardWhitespace)
+			if bytes.HasSuffix(q.line, softSuffix) {
+				rightStripped := wholeLine[len(q.line):]
+				q.line = q.line[:len(q.line)-1]
+				if !bytes.HasPrefix(rightStripped, lf) && !bytes.HasPrefix(rightStripped, crlf) {
+					q.rerr = fmt.Errorf("multipart: invalid bytes after =: %q", rightStripped)
+				}
+			} else if hasLF {
+				if hasCR {
+					q.line = append(q.line, '\r', '\n')
+				} else {
+					q.line = append(q.line, '\n')
+				}
+			}
 			continue
 		}
 		b := q.line[0]
+
 		switch {
 		case b == '=':
 			b, err = q.readHexByte(q.line[1:])
@@ -80,7 +104,9 @@
 				return n, err
 			}
 			q.line = q.line[2:] // 2 of the 3; other 1 is done below
-		case b != '\t' && (b < ' ' || b > '~'):
+		case b == '\t' || b == '\r' || b == '\n':
+			break
+		case b < ' ' || b > '~':
 			return n, fmt.Errorf("multipart: invalid unescaped byte 0x%02x in quoted-printable body", b)
 		}
 		p[0] = b
diff -Naur gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable_test.go gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go
--- gcc-4.8.1.orig/libgo/go/mime/multipart/quotedprintable_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/mime/multipart/quotedprintable_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,11 +5,18 @@
 package multipart
 
 import (
+	"bufio"
 	"bytes"
+	"errors"
+	"flag"
 	"fmt"
 	"io"
+	"os/exec"
+	"regexp"
+	"sort"
 	"strings"
 	"testing"
+	"time"
 )
 
 func TestQuotedPrintable(t *testing.T) {
@@ -17,15 +24,44 @@
 		in, want string
 		err      interface{}
 	}{
+		{in: "", want: ""},
 		{in: "foo bar", want: "foo bar"},
 		{in: "foo bar=3D", want: "foo bar="},
+		{in: "foo bar=\n", want: "foo bar"},
+		{in: "foo bar\n", want: "foo bar\n"}, // somewhat lax.
 		{in: "foo bar=0", want: "foo bar", err: io.ErrUnexpectedEOF},
 		{in: "foo bar=ab", want: "foo bar", err: "multipart: invalid quoted-printable hex byte 0x61"},
 		{in: "foo bar=0D=0A", want: "foo bar\r\n"},
-		{in: "foo bar=\r\n baz", want: "foo bar baz"},
+		{in: " A B        \r\n C ", want: " A B\r\n C"},
+		{in: " A B =\r\n C ", want: " A B  C"},
+		{in: " A B =\n C ", want: " A B  C"}, // lax. treating LF as CRLF
 		{in: "foo=\nbar", want: "foobar"},
 		{in: "foo\x00bar", want: "foo", err: "multipart: invalid unescaped byte 0x00 in quoted-printable body"},
 		{in: "foo bar\xff", want: "foo bar", err: "multipart: invalid unescaped byte 0xff in quoted-printable body"},
+
+		// Equal sign.
+		{in: "=3D30\n", want: "=30\n"},
+		{in: "=00=FF0=\n", want: "\x00\xff0"},
+
+		// Trailing whitespace
+		{in: "foo  \n", want: "foo\n"},
+		{in: "foo  \n\nfoo =\n\nfoo=20\n\n", want: "foo\n\nfoo \nfoo \n\n"},
+
+		// Tests that we allow bare \n and \r through, despite it being strictly
+		// not permitted per RFC 2045, Section 6.7 Page 22 bullet (4).
+		{in: "foo\nbar", want: "foo\nbar"},
+		{in: "foo\rbar", want: "foo\rbar"},
+		{in: "foo\r\nbar", want: "foo\r\nbar"},
+
+		// Different types of soft line-breaks.
+		{in: "foo=\r\nbar", want: "foobar"},
+		{in: "foo=\nbar", want: "foobar"},
+		{in: "foo=\rbar", want: "foo", err: "multipart: invalid quoted-printable hex byte 0x0d"},
+		{in: "foo=\r\r\r \nbar", want: "foo", err: `multipart: invalid bytes after =: "\r\r\r \n"`},
+
+		// Example from RFC 2045:
+		{in: "Now's the time =\n" + "for all folk to come=\n" + " to the aid of their country.",
+			want: "Now's the time for all folk to come to the aid of their country."},
 	}
 	for _, tt := range tests {
 		var buf bytes.Buffer
@@ -50,3 +86,119 @@
 	}
 
 }
+
+func everySequence(base, alpha string, length int, fn func(string)) {
+	if len(base) == length {
+		fn(base)
+		return
+	}
+	for i := 0; i < len(alpha); i++ {
+		everySequence(base+alpha[i:i+1], alpha, length, fn)
+	}
+}
+
+var useQprint = flag.Bool("qprint", false, "Compare against the 'qprint' program.")
+
+var badSoftRx = regexp.MustCompile(`=([^\r\n]+?\n)|([^\r\n]+$)|(\r$)|(\r[^\n]+\n)|( \r\n)`)
+
+func TestQPExhaustive(t *testing.T) {
+	if *useQprint {
+		_, err := exec.LookPath("qprint")
+		if err != nil {
+			t.Fatalf("Error looking for qprint: %v", err)
+		}
+	}
+
+	var buf bytes.Buffer
+	res := make(map[string]int)
+	everySequence("", "0A \r\n=", 6, func(s string) {
+		if strings.HasSuffix(s, "=") || strings.Contains(s, "==") {
+			return
+		}
+		buf.Reset()
+		_, err := io.Copy(&buf, newQuotedPrintableReader(strings.NewReader(s)))
+		if err != nil {
+			errStr := err.Error()
+			if strings.Contains(errStr, "invalid bytes after =:") {
+				errStr = "invalid bytes after ="
+			}
+			res[errStr]++
+			if strings.Contains(errStr, "invalid quoted-printable hex byte ") {
+				if strings.HasSuffix(errStr, "0x20") && (strings.Contains(s, "=0 ") || strings.Contains(s, "=A ") || strings.Contains(s, "= ")) {
+					return
+				}
+				if strings.HasSuffix(errStr, "0x3d") && (strings.Contains(s, "=0=") || strings.Contains(s, "=A=")) {
+					return
+				}
+				if strings.HasSuffix(errStr, "0x0a") || strings.HasSuffix(errStr, "0x0d") {
+					// bunch of cases; since whitespace at the end of of a line before \n is removed.
+					return
+				}
+			}
+			if strings.Contains(errStr, "unexpected EOF") {
+				return
+			}
+			if errStr == "invalid bytes after =" && badSoftRx.MatchString(s) {
+				return
+			}
+			t.Errorf("decode(%q) = %v", s, err)
+			return
+		}
+		if *useQprint {
+			cmd := exec.Command("qprint", "-d")
+			cmd.Stdin = strings.NewReader(s)
+			stderr, err := cmd.StderrPipe()
+			if err != nil {
+				panic(err)
+			}
+			qpres := make(chan interface{}, 2)
+			go func() {
+				br := bufio.NewReader(stderr)
+				s, _ := br.ReadString('\n')
+				if s != "" {
+					qpres <- errors.New(s)
+					if cmd.Process != nil {
+						// It can get stuck on invalid input, like:
+						// echo -n "0000= " | qprint -d
+						cmd.Process.Kill()
+					}
+				}
+			}()
+			go func() {
+				want, err := cmd.Output()
+				if err == nil {
+					qpres <- want
+				}
+			}()
+			select {
+			case got := <-qpres:
+				if want, ok := got.([]byte); ok {
+					if string(want) != buf.String() {
+						t.Errorf("go decode(%q) = %q; qprint = %q", s, want, buf.String())
+					}
+				} else {
+					t.Logf("qprint -d(%q) = %v", s, got)
+				}
+			case <-time.After(5 * time.Second):
+				t.Logf("qprint timeout on %q", s)
+			}
+		}
+		res["OK"]++
+	})
+	var outcomes []string
+	for k, v := range res {
+		outcomes = append(outcomes, fmt.Sprintf("%v: %d", k, v))
+	}
+	sort.Strings(outcomes)
+	got := strings.Join(outcomes, "\n")
+	want := `OK: 21576
+invalid bytes after =: 3397
+multipart: invalid quoted-printable hex byte 0x0a: 1400
+multipart: invalid quoted-printable hex byte 0x0d: 2700
+multipart: invalid quoted-printable hex byte 0x20: 2490
+multipart: invalid quoted-printable hex byte 0x3d: 440
+unexpected EOF: 3122`
+	if got != want {
+		t.Errorf("Got:\n%s\nWant:\n%s", got, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_unix.go gcc-4.8.1/libgo/go/mime/type_unix.go
--- gcc-4.8.1.orig/libgo/go/mime/type_unix.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/mime/type_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -23,15 +23,11 @@
 	if err != nil {
 		return
 	}
+	defer f.Close()
 
-	reader := bufio.NewReader(f)
-	for {
-		line, err := reader.ReadString('\n')
-		if err != nil {
-			f.Close()
-			return
-		}
-		fields := strings.Fields(line)
+	scanner := bufio.NewScanner(f)
+	for scanner.Scan() {
+		fields := strings.Fields(scanner.Text())
 		if len(fields) <= 1 || fields[0][0] == '#' {
 			continue
 		}
@@ -43,6 +39,9 @@
 			setExtensionType("."+ext, mimeType)
 		}
 	}
+	if err := scanner.Err(); err != nil {
+		panic(err)
+	}
 }
 
 func initMime() {
diff -Naur gcc-4.8.1.orig/libgo/go/mime/type_windows.go gcc-4.8.1/libgo/go/mime/type_windows.go
--- gcc-4.8.1.orig/libgo/go/mime/type_windows.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/mime/type_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -58,7 +58,6 @@
 
 func initMimeForTests() map[string]string {
 	return map[string]string{
-		".bmp": "image/bmp",
 		".png": "image/png",
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/cgo_unix.go gcc-4.8.1/libgo/go/net/cgo_unix.go
--- gcc-4.8.1.orig/libgo/go/net/cgo_unix.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/cgo_unix.go	2013-08-09 15:52:50.854685000 -0500
@@ -103,6 +103,7 @@
 	var hints syscall.Addrinfo
 
 	hints.Ai_flags = int32(cgoAddrInfoFlags())
+	hints.Ai_socktype = syscall.SOCK_STREAM
 
 	h := syscall.StringBytePtr(name)
 	syscall.Entersyscall()
@@ -130,7 +131,7 @@
 		}
 	}
 	for r := res; r != nil; r = r.Ai_next {
-		// Everything comes back twice, once for UDP and once for TCP.
+		// We only asked for SOCK_STREAM, but check anyhow.
 		if r.Ai_socktype != syscall.SOCK_STREAM {
 			continue
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/conn_test.go gcc-4.8.1/libgo/go/net/conn_test.go
--- gcc-4.8.1.orig/libgo/go/net/conn_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/conn_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package net_test
+// This file implements API tests across platforms and will never have a build
+// tag.
+
+package net
 
 import (
-	"net"
 	"os"
 	"runtime"
 	"testing"
@@ -14,13 +16,18 @@
 
 var connTests = []struct {
 	net  string
-	addr string
+	addr func() string
 }{
-	{"tcp", "127.0.0.1:0"},
-	{"unix", "/tmp/gotest.net1"},
-	{"unixpacket", "/tmp/gotest.net2"},
+	{"tcp", func() string { return "127.0.0.1:0" }},
+	{"unix", testUnixAddr},
+	{"unixpacket", testUnixAddr},
 }
 
+// someTimeout is used just to test that net.Conn implementations
+// don't explode when their SetFooDeadline methods are called.
+// It isn't actually used for testing timeouts.
+const someTimeout = 10 * time.Second
+
 func TestConnAndListener(t *testing.T) {
 	for _, tt := range connTests {
 		switch tt.net {
@@ -32,74 +39,77 @@
 			if tt.net == "unixpacket" && runtime.GOOS != "linux" {
 				continue
 			}
-			os.Remove(tt.addr)
 		}
 
-		ln, err := net.Listen(tt.net, tt.addr)
+		addr := tt.addr()
+		ln, err := Listen(tt.net, addr)
 		if err != nil {
-			t.Errorf("net.Listen failed: %v", err)
-			return
+			t.Fatalf("Listen failed: %v", err)
 		}
-		ln.Addr()
-		defer func(ln net.Listener, net, addr string) {
+		defer func(ln Listener, net, addr string) {
 			ln.Close()
 			switch net {
 			case "unix", "unixpacket":
 				os.Remove(addr)
 			}
-		}(ln, tt.net, tt.addr)
+		}(ln, tt.net, addr)
+		ln.Addr()
 
 		done := make(chan int)
 		go transponder(t, ln, done)
 
-		c, err := net.Dial(tt.net, ln.Addr().String())
+		c, err := Dial(tt.net, ln.Addr().String())
 		if err != nil {
-			t.Errorf("net.Dial failed: %v", err)
-			return
+			t.Fatalf("Dial failed: %v", err)
 		}
+		defer c.Close()
 		c.LocalAddr()
 		c.RemoteAddr()
-		c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-		c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-		c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer c.Close()
+		c.SetDeadline(time.Now().Add(someTimeout))
+		c.SetReadDeadline(time.Now().Add(someTimeout))
+		c.SetWriteDeadline(time.Now().Add(someTimeout))
 
 		if _, err := c.Write([]byte("CONN TEST")); err != nil {
-			t.Errorf("net.Conn.Write failed: %v", err)
-			return
+			t.Fatalf("Conn.Write failed: %v", err)
 		}
 		rb := make([]byte, 128)
 		if _, err := c.Read(rb); err != nil {
-			t.Errorf("net.Conn.Read failed: %v", err)
+			t.Fatalf("Conn.Read failed: %v", err)
 		}
 
 		<-done
 	}
 }
 
-func transponder(t *testing.T, ln net.Listener, done chan<- int) {
+func transponder(t *testing.T, ln Listener, done chan<- int) {
 	defer func() { done <- 1 }()
 
+	switch ln := ln.(type) {
+	case *TCPListener:
+		ln.SetDeadline(time.Now().Add(someTimeout))
+	case *UnixListener:
+		ln.SetDeadline(time.Now().Add(someTimeout))
+	}
 	c, err := ln.Accept()
 	if err != nil {
-		t.Errorf("net.Listener.Accept failed: %v", err)
+		t.Errorf("Listener.Accept failed: %v", err)
 		return
 	}
+	defer c.Close()
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 
 	b := make([]byte, 128)
 	n, err := c.Read(b)
 	if err != nil {
-		t.Errorf("net.Conn.Read failed: %v", err)
+		t.Errorf("Conn.Read failed: %v", err)
 		return
 	}
 	if _, err := c.Write(b[:n]); err != nil {
-		t.Errorf("net.Conn.Write failed: %v", err)
+		t.Errorf("Conn.Write failed: %v", err)
 		return
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_gen.go gcc-4.8.1/libgo/go/net/dial_gen.go
--- gcc-4.8.1.orig/libgo/go/net/dial_gen.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/dial_gen.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,73 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows plan9
+
+package net
+
+import (
+	"time"
+)
+
+var testingIssue5349 bool // used during tests
+
+// resolveAndDialChannel is the simple pure-Go implementation of
+// resolveAndDial, still used on operating systems where the deadline
+// hasn't been pushed down into the pollserver. (Plan 9 and some old
+// versions of Windows)
+func resolveAndDialChannel(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
+	var timeout time.Duration
+	if !deadline.IsZero() {
+		timeout = deadline.Sub(time.Now())
+	}
+	if timeout <= 0 {
+		ra, err := resolveAddr("dial", net, addr, noDeadline)
+		if err != nil {
+			return nil, err
+		}
+		return dial(net, addr, localAddr, ra, noDeadline)
+	}
+	t := time.NewTimer(timeout)
+	defer t.Stop()
+	type pair struct {
+		Conn
+		error
+	}
+	ch := make(chan pair, 1)
+	resolvedAddr := make(chan Addr, 1)
+	go func() {
+		if testingIssue5349 {
+			time.Sleep(time.Millisecond)
+		}
+		ra, err := resolveAddr("dial", net, addr, noDeadline)
+		if err != nil {
+			ch <- pair{nil, err}
+			return
+		}
+		resolvedAddr <- ra // in case we need it for OpError
+		c, err := dial(net, addr, localAddr, ra, noDeadline)
+		ch <- pair{c, err}
+	}()
+	select {
+	case <-t.C:
+		// Try to use the real Addr in our OpError, if we resolved it
+		// before the timeout. Otherwise we just use stringAddr.
+		var ra Addr
+		select {
+		case a := <-resolvedAddr:
+			ra = a
+		default:
+			ra = &stringAddr{net, addr}
+		}
+		err := &OpError{
+			Op:   "dial",
+			Net:  net,
+			Addr: ra,
+			Err:  &timeoutError{},
+		}
+		return nil, err
+	case p := <-ch:
+		return p.Conn, p.error
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/dial.go gcc-4.8.1/libgo/go/net/dial.go
--- gcc-4.8.1.orig/libgo/go/net/dial.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/dial.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,10 +5,55 @@
 package net
 
 import (
+	"errors"
 	"time"
 )
 
-func parseDialNetwork(net string) (afnet string, proto int, err error) {
+// A Dialer contains options for connecting to an address.
+//
+// The zero value for each field is equivalent to dialing
+// without that option. Dialing with the zero value of Dialer
+// is therefore equivalent to just calling the Dial function.
+type Dialer struct {
+	// Timeout is the maximum amount of time a dial will wait for
+	// a connect to complete. If Deadline is also set, it may fail
+	// earlier.
+	//
+	// The default is no timeout.
+	//
+	// With or without a timeout, the operating system may impose
+	// its own earlier timeout. For instance, TCP timeouts are
+	// often around 3 minutes.
+	Timeout time.Duration
+
+	// Deadline is the absolute point in time after which dials
+	// will fail. If Timeout is set, it may fail earlier.
+	// Zero means no deadline, or dependent on the operating system
+	// as with the Timeout option.
+	Deadline time.Time
+
+	// LocalAddr is the local address to use when dialing an
+	// address. The address must be of a compatible type for the
+	// network being dialed.
+	// If nil, a local address is automatically chosen.
+	LocalAddr Addr
+}
+
+// Return either now+Timeout or Deadline, whichever comes first.
+// Or zero, if neither is set.
+func (d *Dialer) deadline() time.Time {
+	if d.Timeout == 0 {
+		return d.Deadline
+	}
+	timeoutDeadline := time.Now().Add(d.Timeout)
+	if d.Deadline.IsZero() || timeoutDeadline.Before(d.Deadline) {
+		return timeoutDeadline
+	} else {
+		return d.Deadline
+	}
+}
+
+func parseNetwork(net string) (afnet string, proto int, err error) {
 	i := last(net, ':')
 	if i < 0 { // no colon
 		switch net {
@@ -37,74 +82,89 @@
 	return "", 0, UnknownNetworkError(net)
 }
 
-func resolveNetAddr(op, net, addr string, deadline time.Time) (afnet string, a Addr, err error) {
-	afnet, _, err = parseDialNetwork(net)
+func resolveAddr(op, net, addr string, deadline time.Time) (Addr, error) {
+	afnet, _, err := parseNetwork(net)
 	if err != nil {
-		return "", nil, &OpError{op, net, nil, err}
+		return nil, &OpError{op, net, nil, err}
 	}
 	if op == "dial" && addr == "" {
-		return "", nil, &OpError{op, net, nil, errMissingAddress}
-	}
-	a, err = resolveAfnetAddr(afnet, addr, deadline)
-	return
-}
-
-func resolveAfnetAddr(afnet, addr string, deadline time.Time) (Addr, error) {
-	if addr == "" {
-		return nil, nil
+		return nil, &OpError{op, net, nil, errMissingAddress}
 	}
 	switch afnet {
-	case "tcp", "tcp4", "tcp6", "udp", "udp4", "udp6", "ip", "ip4", "ip6":
-		return resolveInternetAddr(afnet, addr, deadline)
 	case "unix", "unixgram", "unixpacket":
 		return ResolveUnixAddr(afnet, addr)
 	}
-	return nil, nil
+	return resolveInternetAddr(afnet, addr, deadline)
 }
 
-// Dial connects to the address addr on the network net.
+// Dial connects to the address on the named network.
 //
 // Known networks are "tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only),
 // "udp", "udp4" (IPv4-only), "udp6" (IPv6-only), "ip", "ip4"
-// (IPv4-only), "ip6" (IPv6-only), "unix" and "unixpacket".
+// (IPv4-only), "ip6" (IPv6-only), "unix", "unixgram" and
+// "unixpacket".
 //
 // For TCP and UDP networks, addresses have the form host:port.
-// If host is a literal IPv6 address, it must be enclosed
-// in square brackets.  The functions JoinHostPort and SplitHostPort
-// manipulate addresses in this form.
+// If host is a literal IPv6 address or host name, it must be enclosed
+// in square brackets as in "[::1]:80", "[ipv6-host]:http" or
+// "[ipv6-host%zone]:80".
+// The functions JoinHostPort and SplitHostPort manipulate addresses
+// in this form.
 //
 // Examples:
 //	Dial("tcp", "12.34.56.78:80")
-//	Dial("tcp", "google.com:80")
-//	Dial("tcp", "[de:ad:be:ef::ca:fe]:80")
-//
-// For IP networks, net must be "ip", "ip4" or "ip6" followed
-// by a colon and a protocol number or name.
+//	Dial("tcp", "google.com:http")
+//	Dial("tcp", "[2001:db8::1]:http")
+//	Dial("tcp", "[fe80::1%lo0]:80")
+//
+// For IP networks, the network must be "ip", "ip4" or "ip6" followed
+// by a colon and a protocol number or name and the addr must be a
+// literal IP address.
 //
 // Examples:
 //	Dial("ip4:1", "127.0.0.1")
 //	Dial("ip6:ospf", "::1")
 //
-func Dial(net, addr string) (Conn, error) {
-	_, addri, err := resolveNetAddr("dial", net, addr, noDeadline)
-	if err != nil {
-		return nil, err
-	}
-	return dialAddr(net, addr, addri, noDeadline)
+// For Unix networks, the address must be a file system path.
+func Dial(network, address string) (Conn, error) {
+	var d Dialer
+	return d.Dial(network, address)
 }
 
-func dialAddr(net, addr string, addri Addr, deadline time.Time) (c Conn, err error) {
-	switch ra := addri.(type) {
+// DialTimeout acts like Dial but takes a timeout.
+// The timeout includes name resolution, if required.
+func DialTimeout(network, address string, timeout time.Duration) (Conn, error) {
+	d := Dialer{Timeout: timeout}
+	return d.Dial(network, address)
+}
+
+// Dial connects to the address on the named network.
+//
+// See func Dial for a description of the network and address
+// parameters.
+func (d *Dialer) Dial(network, address string) (Conn, error) {
+	return resolveAndDial(network, address, d.LocalAddr, d.deadline())
+}
+
+func dial(net, addr string, la, ra Addr, deadline time.Time) (c Conn, err error) {
+	if la != nil && la.Network() != ra.Network() {
+		return nil, &OpError{"dial", net, ra, errors.New("mismatched local addr type " + la.Network())}
+	}
+	switch ra := ra.(type) {
 	case *TCPAddr:
-		c, err = dialTCP(net, nil, ra, deadline)
+		la, _ := la.(*TCPAddr)
+		c, err = dialTCP(net, la, ra, deadline)
 	case *UDPAddr:
-		c, err = dialUDP(net, nil, ra, deadline)
+		la, _ := la.(*UDPAddr)
+		c, err = dialUDP(net, la, ra, deadline)
 	case *IPAddr:
-		c, err = dialIP(net, nil, ra, deadline)
+		la, _ := la.(*IPAddr)
+		c, err = dialIP(net, la, ra, deadline)
 	case *UnixAddr:
-		c, err = dialUnix(net, nil, ra, deadline)
+		la, _ := la.(*UnixAddr)
+		c, err = dialUnix(net, la, ra, deadline)
 	default:
-		err = &OpError{"dial", net + " " + addr, nil, UnknownNetworkError(net)}
+		err = &OpError{"dial", net + " " + addr, ra, UnknownNetworkError(net)}
 	}
 	if err != nil {
 		return nil, err
@@ -112,59 +172,6 @@
 	return
 }
 
-// DialTimeout acts like Dial but takes a timeout.
-// The timeout includes name resolution, if required.
-func DialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
-	return dialTimeout(net, addr, timeout)
-}
-
-// dialTimeoutRace is the old implementation of DialTimeout, still used
-// on operating systems where the deadline hasn't been pushed down
-// into the pollserver.
-// TODO: fix this on plan9.
-func dialTimeoutRace(net, addr string, timeout time.Duration) (Conn, error) {
-	t := time.NewTimer(timeout)
-	defer t.Stop()
-	type pair struct {
-		Conn
-		error
-	}
-	ch := make(chan pair, 1)
-	resolvedAddr := make(chan Addr, 1)
-	go func() {
-		_, addri, err := resolveNetAddr("dial", net, addr, noDeadline)
-		if err != nil {
-			ch <- pair{nil, err}
-			return
-		}
-		resolvedAddr <- addri // in case we need it for OpError
-		c, err := dialAddr(net, addr, addri, noDeadline)
-		ch <- pair{c, err}
-	}()
-	select {
-	case <-t.C:
-		// Try to use the real Addr in our OpError, if we resolved it
-		// before the timeout. Otherwise we just use stringAddr.
-		var addri Addr
-		select {
-		case a := <-resolvedAddr:
-			addri = a
-		default:
-			addri = &stringAddr{net, addr}
-		}
-		err := &OpError{
-			Op:   "dial",
-			Net:  net,
-			Addr: addri,
-			Err:  &timeoutError{},
-		}
-		return nil, err
-	case p := <-ch:
-		return p.Conn, p.error
-	}
-	panic("unreachable")
-}
-
 type stringAddr struct {
 	net, addr string
 }
@@ -173,56 +180,38 @@
 func (a stringAddr) String() string  { return a.addr }
 
 // Listen announces on the local network address laddr.
-// The network string net must be a stream-oriented network:
-// "tcp", "tcp4", "tcp6", "unix" or "unixpacket".
+// The network net must be a stream-oriented network: "tcp", "tcp4",
+// "tcp6", "unix" or "unixpacket".
+// See Dial for the syntax of laddr.
 func Listen(net, laddr string) (Listener, error) {
-	afnet, a, err := resolveNetAddr("listen", net, laddr, noDeadline)
+	la, err := resolveAddr("listen", net, laddr, noDeadline)
 	if err != nil {
 		return nil, err
 	}
-	switch afnet {
-	case "tcp", "tcp4", "tcp6":
-		var la *TCPAddr
-		if a != nil {
-			la = a.(*TCPAddr)
-		}
+	switch la := la.(type) {
+	case *TCPAddr:
 		return ListenTCP(net, la)
-	case "unix", "unixpacket":
-		var la *UnixAddr
-		if a != nil {
-			la = a.(*UnixAddr)
-		}
+	case *UnixAddr:
 		return ListenUnix(net, la)
 	}
 	return nil, UnknownNetworkError(net)
 }
 
 // ListenPacket announces on the local network address laddr.
-// The network string net must be a packet-oriented network:
-// "udp", "udp4", "udp6", "ip", "ip4", "ip6" or "unixgram".
+// The network net must be a packet-oriented network: "udp", "udp4",
+// "udp6", "ip", "ip4", "ip6" or "unixgram".
+// See Dial for the syntax of laddr.
 func ListenPacket(net, laddr string) (PacketConn, error) {
-	afnet, a, err := resolveNetAddr("listen", net, laddr, noDeadline)
+	la, err := resolveAddr("listen", net, laddr, noDeadline)
 	if err != nil {
 		return nil, err
 	}
-	switch afnet {
-	case "udp", "udp4", "udp6":
-		var la *UDPAddr
-		if a != nil {
-			la = a.(*UDPAddr)
-		}
+	switch la := la.(type) {
+	case *UDPAddr:
 		return ListenUDP(net, la)
-	case "ip", "ip4", "ip6":
-		var la *IPAddr
-		if a != nil {
-			la = a.(*IPAddr)
-		}
+	case *IPAddr:
 		return ListenIP(net, la)
-	case "unixgram":
-		var la *UnixAddr
-		if a != nil {
-			la = a.(*UnixAddr)
-		}
+	case *UnixAddr:
 		return ListenUnixgram(net, la)
 	}
 	return nil, UnknownNetworkError(net)
diff -Naur gcc-4.8.1.orig/libgo/go/net/dial_test.go gcc-4.8.1/libgo/go/net/dial_test.go
--- gcc-4.8.1.orig/libgo/go/net/dial_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/dial_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 	"fmt"
 	"io"
 	"os"
+	"reflect"
 	"regexp"
 	"runtime"
 	"testing"
@@ -27,12 +28,18 @@
 }
 
 func TestDialTimeout(t *testing.T) {
+	origBacklog := listenerBacklog
+	defer func() {
+		listenerBacklog = origBacklog
+	}()
+	listenerBacklog = 1
+
 	ln := newLocalListener(t)
 	defer ln.Close()
 
 	errc := make(chan error)
 
-	numConns := listenerBacklog + 10
+	numConns := listenerBacklog + 100
 
 	// TODO(bradfitz): It's hard to test this in a portable
 	// way. This is unfortunate, but works for now.
@@ -223,6 +230,31 @@
 	}
 }
 
+var invalidDialAndListenArgTests = []struct {
+	net  string
+	addr string
+	err  error
+}{
+	{"foo", "bar", &OpError{Op: "dial", Net: "foo", Addr: nil, Err: UnknownNetworkError("foo")}},
+	{"baz", "", &OpError{Op: "listen", Net: "baz", Addr: nil, Err: UnknownNetworkError("baz")}},
+	{"tcp", "", &OpError{Op: "dial", Net: "tcp", Addr: nil, Err: errMissingAddress}},
+}
+
+func TestInvalidDialAndListenArgs(t *testing.T) {
+	for _, tt := range invalidDialAndListenArgTests {
+		var err error
+		switch tt.err.(*OpError).Op {
+		case "dial":
+			_, err = Dial(tt.net, tt.addr)
+		case "listen":
+			_, err = Listen(tt.net, tt.addr)
+		}
+		if !reflect.DeepEqual(tt.err, err) {
+			t.Fatalf("got %#v; expected %#v", err, tt.err)
+		}
+	}
+}
+
 func TestDialTimeoutFDLeak(t *testing.T) {
 	if runtime.GOOS != "linux" {
 		// TODO(bradfitz): test on other platforms
@@ -298,3 +330,80 @@
 	// All tests using this should be skipped anyway, but:
 	panic("numFDs not implemented on " + runtime.GOOS)
 }
+
+var testPoller = flag.Bool("poller", false, "platform supports runtime-integrated poller")
+
+// Assert that a failed Dial attempt does not leak
+// runtime.PollDesc structures
+func TestDialFailPDLeak(t *testing.T) {
+	if !*testPoller {
+		t.Skip("test disabled; use -poller to enable")
+	}
+
+	const loops = 10
+	const count = 20000
+	var old runtime.MemStats // used by sysdelta
+	runtime.ReadMemStats(&old)
+	sysdelta := func() uint64 {
+		var new runtime.MemStats
+		runtime.ReadMemStats(&new)
+		delta := old.Sys - new.Sys
+		old = new
+		return delta
+	}
+	d := &Dialer{Timeout: time.Nanosecond} // don't bother TCP with handshaking
+	failcount := 0
+	for i := 0; i < loops; i++ {
+		for i := 0; i < count; i++ {
+			conn, err := d.Dial("tcp", "127.0.0.1:1")
+			if err == nil {
+				t.Error("dial should not succeed")
+				conn.Close()
+				t.FailNow()
+			}
+		}
+		if delta := sysdelta(); delta > 0 {
+			failcount++
+		}
+		// there are always some allocations on the first loop
+		if failcount > 3 {
+			t.Error("detected possible memory leak in runtime")
+			t.FailNow()
+		}
+	}
+}
+
+func TestDialer(t *testing.T) {
+	ln, err := Listen("tcp4", "127.0.0.1:0")
+	if err != nil {
+		t.Fatalf("Listen failed: %v", err)
+	}
+	defer ln.Close()
+	ch := make(chan error, 1)
+	go func() {
+		var err error
+		c, err := ln.Accept()
+		if err != nil {
+			ch <- fmt.Errorf("Accept failed: %v", err)
+			return
+		}
+		defer c.Close()
+		ch <- nil
+	}()
+
+	laddr, err := ResolveTCPAddr("tcp4", "127.0.0.1:0")
+	if err != nil {
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
+	}
+	d := &Dialer{LocalAddr: laddr}
+	c, err := d.Dial("tcp4", ln.Addr().String())
+	if err != nil {
+		t.Fatalf("Dial failed: %v", err)
+	}
+	defer c.Close()
+	c.Read(make([]byte, 1))
+	err = <-ch
+	if err != nil {
+		t.Error(err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_bsd.go gcc-4.8.1/libgo/go/net/fd_bsd.go
--- gcc-4.8.1.orig/libgo/go/net/fd_bsd.go	2013-02-06 16:40:18.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_bsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -33,6 +33,8 @@
 	return p, nil
 }
 
+// First return value is whether the pollServer should be woken up.
+// This version always returns false.
 func (p *pollster) AddFD(fd int, mode int, repeat bool) (bool, error) {
 	// pollServer is locked.
 
@@ -64,6 +66,8 @@
 	return false, nil
 }
 
+// Return value is whether the pollServer should be woken up.
+// This version always returns false.
 func (p *pollster) DelFD(fd int, mode int) bool {
 	// pollServer is locked.
 
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_linux.go gcc-4.8.1/libgo/go/net/fd_linux.go
--- gcc-4.8.1.orig/libgo/go/net/fd_linux.go	2013-02-06 16:40:18.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_linux.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,188 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Waiting for FDs via epoll(7).
-
-package net
-
-import (
-	"os"
-	"syscall"
-)
-
-const (
-	readFlags  = syscall.EPOLLIN | syscall.EPOLLRDHUP
-	writeFlags = syscall.EPOLLOUT
-)
-
-type pollster struct {
-	epfd int
-
-	// Events we're already waiting for
-	// Must hold pollServer lock
-	events map[int]uint32
-
-	// An event buffer for EpollWait.
-	// Used without a lock, may only be used by WaitFD.
-	waitEventBuf [10]syscall.EpollEvent
-	waitEvents   []syscall.EpollEvent
-
-	// An event buffer for EpollCtl, to avoid a malloc.
-	// Must hold pollServer lock.
-	ctlEvent syscall.EpollEvent
-}
-
-func newpollster() (p *pollster, err error) {
-	p = new(pollster)
-	if p.epfd, err = syscall.EpollCreate1(syscall.EPOLL_CLOEXEC); err != nil {
-		if err != syscall.ENOSYS {
-			return nil, os.NewSyscallError("epoll_create1", err)
-		}
-		// The arg to epoll_create is a hint to the kernel
-		// about the number of FDs we will care about.
-		// We don't know, and since 2.6.8 the kernel ignores it anyhow.
-		if p.epfd, err = syscall.EpollCreate(16); err != nil {
-			return nil, os.NewSyscallError("epoll_create", err)
-		}
-		syscall.CloseOnExec(p.epfd)
-	}
-	p.events = make(map[int]uint32)
-	return p, nil
-}
-
-func (p *pollster) AddFD(fd int, mode int, repeat bool) (bool, error) {
-	// pollServer is locked.
-
-	var already bool
-	p.ctlEvent.Fd = int32(fd)
-	p.ctlEvent.Events, already = p.events[fd]
-	if !repeat {
-		p.ctlEvent.Events |= syscall.EPOLLONESHOT
-	}
-	if mode == 'r' {
-		p.ctlEvent.Events |= readFlags
-	} else {
-		p.ctlEvent.Events |= writeFlags
-	}
-
-	var op int
-	if already {
-		op = syscall.EPOLL_CTL_MOD
-	} else {
-		op = syscall.EPOLL_CTL_ADD
-	}
-	if err := syscall.EpollCtl(p.epfd, op, fd, &p.ctlEvent); err != nil {
-		return false, os.NewSyscallError("epoll_ctl", err)
-	}
-	p.events[fd] = p.ctlEvent.Events
-	return false, nil
-}
-
-func (p *pollster) StopWaiting(fd int, bits uint) {
-	// pollServer is locked.
-
-	events, already := p.events[fd]
-	if !already {
-		// The fd returned by the kernel may have been
-		// cancelled already; return silently.
-		return
-	}
-
-	// If syscall.EPOLLONESHOT is not set, the wait
-	// is a repeating wait, so don't change it.
-	if events&syscall.EPOLLONESHOT == 0 {
-		return
-	}
-
-	// Disable the given bits.
-	// If we're still waiting for other events, modify the fd
-	// event in the kernel.  Otherwise, delete it.
-	events &= ^uint32(bits)
-	if int32(events)&^syscall.EPOLLONESHOT != 0 {
-		p.ctlEvent.Fd = int32(fd)
-		p.ctlEvent.Events = events
-		if err := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_MOD, fd, &p.ctlEvent); err != nil {
-			print("Epoll modify fd=", fd, ": ", err.Error(), "\n")
-		}
-		p.events[fd] = events
-	} else {
-		if err := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_DEL, fd, nil); err != nil {
-			print("Epoll delete fd=", fd, ": ", err.Error(), "\n")
-		}
-		delete(p.events, fd)
-	}
-}
-
-func (p *pollster) DelFD(fd int, mode int) bool {
-	// pollServer is locked.
-
-	if mode == 'r' {
-		p.StopWaiting(fd, readFlags)
-	} else {
-		p.StopWaiting(fd, writeFlags)
-	}
-
-	// Discard any queued up events.
-	i := 0
-	for i < len(p.waitEvents) {
-		if fd == int(p.waitEvents[i].Fd) {
-			copy(p.waitEvents[i:], p.waitEvents[i+1:])
-			p.waitEvents = p.waitEvents[:len(p.waitEvents)-1]
-		} else {
-			i++
-		}
-	}
-	return false
-}
-
-func (p *pollster) WaitFD(s *pollServer, nsec int64) (fd int, mode int, err error) {
-	for len(p.waitEvents) == 0 {
-		var msec int = -1
-		if nsec > 0 {
-			msec = int((nsec + 1e6 - 1) / 1e6)
-		}
-
-		s.Unlock()
-		n, err := syscall.EpollWait(p.epfd, p.waitEventBuf[0:], msec)
-		s.Lock()
-
-		if err != nil {
-			if err == syscall.EAGAIN || err == syscall.EINTR {
-				continue
-			}
-			return -1, 0, os.NewSyscallError("epoll_wait", err)
-		}
-		if n == 0 {
-			return -1, 0, nil
-		}
-		p.waitEvents = p.waitEventBuf[0:n]
-	}
-
-	ev := &p.waitEvents[0]
-	p.waitEvents = p.waitEvents[1:]
-
-	fd = int(ev.Fd)
-
-	if ev.Events&writeFlags != 0 {
-		p.StopWaiting(fd, writeFlags)
-		return fd, 'w', nil
-	}
-	if ev.Events&readFlags != 0 {
-		p.StopWaiting(fd, readFlags)
-		return fd, 'r', nil
-	}
-
-	// Other events are error conditions - wake whoever is waiting.
-	events, _ := p.events[fd]
-	if events&writeFlags != 0 {
-		p.StopWaiting(fd, writeFlags)
-		return fd, 'w', nil
-	}
-	p.StopWaiting(fd, readFlags)
-	return fd, 'r', nil
-}
-
-func (p *pollster) Close() error {
-	return os.NewSyscallError("close", syscall.Close(p.epfd))
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_plan9.go gcc-4.8.1/libgo/go/net/fd_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/fd_plan9.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -23,28 +23,22 @@
 func sysInit() {
 }
 
-func dialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
+func resolveAndDial(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
 	// On plan9, use the relatively inefficient
 	// goroutine-racing implementation.
-	return dialTimeoutRace(net, addr, timeout)
+	return resolveAndDialChannel(net, addr, localAddr, deadline)
 }
 
-func newFD(proto, name string, ctl *os.File, laddr, raddr Addr) *netFD {
-	return &netFD{proto, name, "/net/" + proto + "/" + name, ctl, nil, laddr, raddr}
+func newFD(proto, name string, ctl, data *os.File, laddr, raddr Addr) *netFD {
+	return &netFD{proto, name, "/net/" + proto + "/" + name, ctl, data, laddr, raddr}
 }
 
 func (fd *netFD) ok() bool { return fd != nil && fd.ctl != nil }
 
 func (fd *netFD) Read(b []byte) (n int, err error) {
-	if !fd.ok() {
+	if !fd.ok() || fd.data == nil {
 		return 0, syscall.EINVAL
 	}
-	if fd.data == nil {
-		fd.data, err = os.OpenFile(fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, err
-		}
-	}
 	n, err = fd.data.Read(b)
 	if fd.proto == "udp" && err == io.EOF {
 		n = 0
@@ -54,15 +48,9 @@
 }
 
 func (fd *netFD) Write(b []byte) (n int, err error) {
-	if !fd.ok() {
+	if !fd.ok() || fd.data == nil {
 		return 0, syscall.EINVAL
 	}
-	if fd.data == nil {
-		fd.data, err = os.OpenFile(fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, err
-		}
-	}
 	return fd.data.Write(b)
 }
 
@@ -85,19 +73,39 @@
 		return syscall.EINVAL
 	}
 	err := fd.ctl.Close()
-	if err != nil {
-		return err
-	}
 	if fd.data != nil {
-		err = fd.data.Close()
+		if err1 := fd.data.Close(); err1 != nil && err == nil {
+			err = err1
+		}
 	}
 	fd.ctl = nil
 	fd.data = nil
 	return err
 }
 
+// This method is only called via Conn.
 func (fd *netFD) dup() (*os.File, error) {
-	return nil, syscall.EPLAN9
+	if !fd.ok() || fd.data == nil {
+		return nil, syscall.EINVAL
+	}
+	return fd.file(fd.data, fd.dir+"/data")
+}
+
+func (l *TCPListener) dup() (*os.File, error) {
+	if !l.fd.ok() {
+		return nil, syscall.EINVAL
+	}
+	return l.fd.file(l.fd.ctl, l.fd.dir+"/ctl")
+}
+
+func (fd *netFD) file(f *os.File, s string) (*os.File, error) {
+	syscall.ForkLock.RLock()
+	dfd, err := syscall.Dup(int(f.Fd()), -1)
+	syscall.ForkLock.RUnlock()
+	if err != nil {
+		return nil, &OpError{"dup", s, fd.laddr, err}
+	}
+	return os.NewFile(uintptr(dfd), s), nil
 }
 
 func setDeadline(fd *netFD, t time.Time) error {
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_runtime.go gcc-4.8.1/libgo/go/net/fd_poll_runtime.go
--- gcc-4.8.1.orig/libgo/go/net/fd_poll_runtime.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_poll_runtime.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,119 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin linux
+
+package net
+
+import (
+	"sync"
+	"syscall"
+	"time"
+)
+
+func runtime_pollServerInit()
+func runtime_pollOpen(fd int) (uintptr, int)
+func runtime_pollClose(ctx uintptr)
+func runtime_pollWait(ctx uintptr, mode int) int
+func runtime_pollReset(ctx uintptr, mode int) int
+func runtime_pollSetDeadline(ctx uintptr, d int64, mode int)
+func runtime_pollUnblock(ctx uintptr)
+
+var canCancelIO = true // used for testing current package
+
+type pollDesc struct {
+	runtimeCtx uintptr
+}
+
+var serverInit sync.Once
+
+func sysInit() {
+}
+
+func (pd *pollDesc) Init(fd *netFD) error {
+	serverInit.Do(runtime_pollServerInit)
+	ctx, errno := runtime_pollOpen(fd.sysfd)
+	if errno != 0 {
+		return syscall.Errno(errno)
+	}
+	pd.runtimeCtx = ctx
+	return nil
+}
+
+func (pd *pollDesc) Close() {
+	runtime_pollClose(pd.runtimeCtx)
+}
+
+func (pd *pollDesc) Lock() {
+}
+
+func (pd *pollDesc) Unlock() {
+}
+
+func (pd *pollDesc) Wakeup() {
+}
+
+// Evict evicts fd from the pending list, unblocking any I/O running on fd.
+// Return value is whether the pollServer should be woken up.
+func (pd *pollDesc) Evict() bool {
+	runtime_pollUnblock(pd.runtimeCtx)
+	return false
+}
+
+func (pd *pollDesc) PrepareRead() error {
+	res := runtime_pollReset(pd.runtimeCtx, 'r')
+	return convertErr(res)
+}
+
+func (pd *pollDesc) PrepareWrite() error {
+	res := runtime_pollReset(pd.runtimeCtx, 'w')
+	return convertErr(res)
+}
+
+func (pd *pollDesc) WaitRead() error {
+	res := runtime_pollWait(pd.runtimeCtx, 'r')
+	return convertErr(res)
+}
+
+func (pd *pollDesc) WaitWrite() error {
+	res := runtime_pollWait(pd.runtimeCtx, 'w')
+	return convertErr(res)
+}
+
+func convertErr(res int) error {
+	switch res {
+	case 0:
+		return nil
+	case 1:
+		return errClosing
+	case 2:
+		return errTimeout
+	}
+	panic("unreachable")
+}
+
+func setReadDeadline(fd *netFD, t time.Time) error {
+	return setDeadlineImpl(fd, t, 'r')
+}
+
+func setWriteDeadline(fd *netFD, t time.Time) error {
+	return setDeadlineImpl(fd, t, 'w')
+}
+
+func setDeadline(fd *netFD, t time.Time) error {
+	return setDeadlineImpl(fd, t, 'r'+'w')
+}
+
+func setDeadlineImpl(fd *netFD, t time.Time, mode int) error {
+	d := t.UnixNano()
+	if t.IsZero() {
+		d = 0
+	}
+	if err := fd.incref(false); err != nil {
+		return err
+	}
+	runtime_pollSetDeadline(fd.pd.runtimeCtx, d, mode)
+	fd.decref()
+	return nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_poll_unix.go gcc-4.8.1/libgo/go/net/fd_poll_unix.go
--- gcc-4.8.1.orig/libgo/go/net/fd_poll_unix.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_poll_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,360 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build freebsd netbsd openbsd
+
+package net
+
+import (
+	"os"
+	"runtime"
+	"sync"
+	"syscall"
+	"time"
+)
+
+// A pollServer helps FDs determine when to retry a non-blocking
+// read or write after they get EAGAIN.  When an FD needs to wait,
+// call s.WaitRead() or s.WaitWrite() to pass the request to the poll server.
+// When the pollServer finds that i/o on FD should be possible
+// again, it will send on fd.cr/fd.cw to wake any waiting goroutines.
+//
+// To avoid races in closing, all fd operations are locked and
+// refcounted. when netFD.Close() is called, it calls syscall.Shutdown
+// and sets a closing flag. Only when the last reference is removed
+// will the fd be closed.
+
+type pollServer struct {
+	pr, pw     *os.File
+	poll       *pollster // low-level OS hooks
+	sync.Mutex           // controls pending and deadline
+	pending    map[int]*pollDesc
+	deadline   int64 // next deadline (nsec since 1970)
+}
+
+// A pollDesc contains netFD state related to pollServer.
+type pollDesc struct {
+	// immutable after Init()
+	pollServer *pollServer
+	sysfd      int
+	cr, cw     chan error
+
+	// mutable, protected by pollServer mutex
+	closing  bool
+	ncr, ncw int
+
+	// mutable, safe for concurrent access
+	rdeadline, wdeadline deadline
+}
+
+func newPollServer() (s *pollServer, err error) {
+	s = new(pollServer)
+	if s.pr, s.pw, err = os.Pipe(); err != nil {
+		return nil, err
+	}
+	if err = syscall.SetNonblock(int(s.pr.Fd()), true); err != nil {
+		goto Errno
+	}
+	if err = syscall.SetNonblock(int(s.pw.Fd()), true); err != nil {
+		goto Errno
+	}
+	if s.poll, err = newpollster(); err != nil {
+		goto Error
+	}
+	if _, err = s.poll.AddFD(int(s.pr.Fd()), 'r', true); err != nil {
+		s.poll.Close()
+		goto Error
+	}
+	s.pending = make(map[int]*pollDesc)
+	go s.Run()
+	return s, nil
+
+Errno:
+	err = &os.PathError{
+		Op:   "setnonblock",
+		Path: s.pr.Name(),
+		Err:  err,
+	}
+Error:
+	s.pr.Close()
+	s.pw.Close()
+	return nil, err
+}
+
+func (s *pollServer) AddFD(pd *pollDesc, mode int) error {
+	s.Lock()
+	intfd := pd.sysfd
+	if intfd < 0 || pd.closing {
+		// fd closed underfoot
+		s.Unlock()
+		return errClosing
+	}
+
+	var t int64
+	key := intfd << 1
+	if mode == 'r' {
+		pd.ncr++
+		t = pd.rdeadline.value()
+	} else {
+		pd.ncw++
+		key++
+		t = pd.wdeadline.value()
+	}
+	s.pending[key] = pd
+	doWakeup := false
+	if t > 0 && (s.deadline == 0 || t < s.deadline) {
+		s.deadline = t
+		doWakeup = true
+	}
+
+	wake, err := s.poll.AddFD(intfd, mode, false)
+	s.Unlock()
+	if err != nil {
+		return err
+	}
+	if wake || doWakeup {
+		s.Wakeup()
+	}
+	return nil
+}
+
+// Evict evicts pd from the pending list, unblocking
+// any I/O running on pd.  The caller must have locked
+// pollserver.
+// Return value is whether the pollServer should be woken up.
+func (s *pollServer) Evict(pd *pollDesc) bool {
+	pd.closing = true
+	doWakeup := false
+	if s.pending[pd.sysfd<<1] == pd {
+		s.WakeFD(pd, 'r', errClosing)
+		if s.poll.DelFD(pd.sysfd, 'r') {
+			doWakeup = true
+		}
+		delete(s.pending, pd.sysfd<<1)
+	}
+	if s.pending[pd.sysfd<<1|1] == pd {
+		s.WakeFD(pd, 'w', errClosing)
+		if s.poll.DelFD(pd.sysfd, 'w') {
+			doWakeup = true
+		}
+		delete(s.pending, pd.sysfd<<1|1)
+	}
+	return doWakeup
+}
+
+var wakeupbuf [1]byte
+
+func (s *pollServer) Wakeup() { s.pw.Write(wakeupbuf[0:]) }
+
+func (s *pollServer) LookupFD(fd int, mode int) *pollDesc {
+	key := fd << 1
+	if mode == 'w' {
+		key++
+	}
+	netfd, ok := s.pending[key]
+	if !ok {
+		return nil
+	}
+	delete(s.pending, key)
+	return netfd
+}
+
+func (s *pollServer) WakeFD(pd *pollDesc, mode int, err error) {
+	if mode == 'r' {
+		for pd.ncr > 0 {
+			pd.ncr--
+			pd.cr <- err
+		}
+	} else {
+		for pd.ncw > 0 {
+			pd.ncw--
+			pd.cw <- err
+		}
+	}
+}
+
+func (s *pollServer) CheckDeadlines() {
+	now := time.Now().UnixNano()
+	// TODO(rsc): This will need to be handled more efficiently,
+	// probably with a heap indexed by wakeup time.
+
+	var nextDeadline int64
+	for key, pd := range s.pending {
+		var t int64
+		var mode int
+		if key&1 == 0 {
+			mode = 'r'
+		} else {
+			mode = 'w'
+		}
+		if mode == 'r' {
+			t = pd.rdeadline.value()
+		} else {
+			t = pd.wdeadline.value()
+		}
+		if t > 0 {
+			if t <= now {
+				delete(s.pending, key)
+				s.poll.DelFD(pd.sysfd, mode)
+				s.WakeFD(pd, mode, errTimeout)
+			} else if nextDeadline == 0 || t < nextDeadline {
+				nextDeadline = t
+			}
+		}
+	}
+	s.deadline = nextDeadline
+}
+
+func (s *pollServer) Run() {
+	var scratch [100]byte
+	s.Lock()
+	defer s.Unlock()
+	for {
+		var timeout int64 // nsec to wait for or 0 for none
+		if s.deadline > 0 {
+			timeout = s.deadline - time.Now().UnixNano()
+			if timeout <= 0 {
+				s.CheckDeadlines()
+				continue
+			}
+		}
+		fd, mode, err := s.poll.WaitFD(s, timeout)
+		if err != nil {
+			print("pollServer WaitFD: ", err.Error(), "\n")
+			return
+		}
+		if fd < 0 {
+			// Timeout happened.
+			s.CheckDeadlines()
+			continue
+		}
+		if fd == int(s.pr.Fd()) {
+			// Drain our wakeup pipe (we could loop here,
+			// but it's unlikely that there are more than
+			// len(scratch) wakeup calls).
+			s.pr.Read(scratch[0:])
+			s.CheckDeadlines()
+		} else {
+			pd := s.LookupFD(fd, mode)
+			if pd == nil {
+				// This can happen because the WaitFD runs without
+				// holding s's lock, so there might be a pending wakeup
+				// for an fd that has been evicted.  No harm done.
+				continue
+			}
+			s.WakeFD(pd, mode, nil)
+		}
+	}
+}
+
+func (pd *pollDesc) Close() {
+}
+
+func (pd *pollDesc) Lock() {
+	pd.pollServer.Lock()
+}
+
+func (pd *pollDesc) Unlock() {
+	pd.pollServer.Unlock()
+}
+
+func (pd *pollDesc) Wakeup() {
+	pd.pollServer.Wakeup()
+}
+
+func (pd *pollDesc) PrepareRead() error {
+	if pd.rdeadline.expired() {
+		return errTimeout
+	}
+	return nil
+}
+
+func (pd *pollDesc) PrepareWrite() error {
+	if pd.wdeadline.expired() {
+		return errTimeout
+	}
+	return nil
+}
+
+func (pd *pollDesc) WaitRead() error {
+	err := pd.pollServer.AddFD(pd, 'r')
+	if err == nil {
+		err = <-pd.cr
+	}
+	return err
+}
+
+func (pd *pollDesc) WaitWrite() error {
+	err := pd.pollServer.AddFD(pd, 'w')
+	if err == nil {
+		err = <-pd.cw
+	}
+	return err
+}
+
+func (pd *pollDesc) Evict() bool {
+	return pd.pollServer.Evict(pd)
+}
+
+// Spread network FDs over several pollServers.
+
+var pollMaxN int
+var pollservers []*pollServer
+var startServersOnce []func()
+
+var canCancelIO = true // used for testing current package
+
+func sysInit() {
+	pollMaxN = runtime.NumCPU()
+	if pollMaxN > 8 {
+		pollMaxN = 8 // No improvement then.
+	}
+	pollservers = make([]*pollServer, pollMaxN)
+	startServersOnce = make([]func(), pollMaxN)
+	for i := 0; i < pollMaxN; i++ {
+		k := i
+		once := new(sync.Once)
+		startServersOnce[i] = func() { once.Do(func() { startServer(k) }) }
+	}
+}
+
+func startServer(k int) {
+	p, err := newPollServer()
+	if err != nil {
+		panic(err)
+	}
+	pollservers[k] = p
+}
+
+func (pd *pollDesc) Init(fd *netFD) error {
+	pollN := runtime.GOMAXPROCS(0)
+	if pollN > pollMaxN {
+		pollN = pollMaxN
+	}
+	k := fd.sysfd % pollN
+	startServersOnce[k]()
+	pd.sysfd = fd.sysfd
+	pd.pollServer = pollservers[k]
+	pd.cr = make(chan error, 1)
+	pd.cw = make(chan error, 1)
+	return nil
+}
+
+// TODO(dfc) these unused error returns could be removed
+
+func setReadDeadline(fd *netFD, t time.Time) error {
+	fd.pd.rdeadline.setTime(t)
+	return nil
+}
+
+func setWriteDeadline(fd *netFD, t time.Time) error {
+	fd.pd.wdeadline.setTime(t)
+	return nil
+}
+
+func setDeadline(fd *netFD, t time.Time) error {
+	setReadDeadline(fd, t)
+	setWriteDeadline(fd, t)
+	return nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix.go gcc-4.8.1/libgo/go/net/fd_unix.go
--- gcc-4.8.1.orig/libgo/go/net/fd_unix.go	2013-02-06 16:40:18.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,7 +9,6 @@
 import (
 	"io"
 	"os"
-	"runtime"
 	"sync"
 	"syscall"
 	"time"
@@ -21,7 +20,7 @@
 	sysmu  sync.Mutex
 	sysref int
 
-	// must lock both sysmu and pollserver to write
+	// must lock both sysmu and pollDesc to write
 	// can lock either to read
 	closing bool
 
@@ -31,8 +30,6 @@
 	sotype      int
 	isConnected bool
 	sysfile     *os.File
-	cr          chan error
-	cw          chan error
 	net         string
 	laddr       Addr
 	raddr       Addr
@@ -40,269 +37,16 @@
 	// serialize access to Read and Write methods
 	rio, wio sync.Mutex
 
-	// read and write deadlines
-	rdeadline, wdeadline deadline
-
-	// owned by fd wait server
-	ncr, ncw int
-
 	// wait server
-	pollServer *pollServer
+	pd pollDesc
 }
 
-// A pollServer helps FDs determine when to retry a non-blocking
-// read or write after they get EAGAIN.  When an FD needs to wait,
-// call s.WaitRead() or s.WaitWrite() to pass the request to the poll server.
-// When the pollServer finds that i/o on FD should be possible
-// again, it will send on fd.cr/fd.cw to wake any waiting goroutines.
-//
-// To avoid races in closing, all fd operations are locked and
-// refcounted. when netFD.Close() is called, it calls syscall.Shutdown
-// and sets a closing flag. Only when the last reference is removed
-// will the fd be closed.
-
-type pollServer struct {
-	pr, pw     *os.File
-	poll       *pollster // low-level OS hooks
-	sync.Mutex           // controls pending and deadline
-	pending    map[int]*netFD
-	deadline   int64 // next deadline (nsec since 1970)
-}
-
-func (s *pollServer) AddFD(fd *netFD, mode int) error {
-	s.Lock()
-	intfd := fd.sysfd
-	if intfd < 0 || fd.closing {
-		// fd closed underfoot
-		s.Unlock()
-		return errClosing
-	}
-
-	var t int64
-	key := intfd << 1
-	if mode == 'r' {
-		fd.ncr++
-		t = fd.rdeadline.value()
-	} else {
-		fd.ncw++
-		key++
-		t = fd.wdeadline.value()
-	}
-	s.pending[key] = fd
-	doWakeup := false
-	if t > 0 && (s.deadline == 0 || t < s.deadline) {
-		s.deadline = t
-		doWakeup = true
-	}
-
-	wake, err := s.poll.AddFD(intfd, mode, false)
-	s.Unlock()
-	if err != nil {
-		return &OpError{"addfd", fd.net, fd.laddr, err}
-	}
-	if wake || doWakeup {
-		s.Wakeup()
-	}
-	return nil
-}
-
-// Evict evicts fd from the pending list, unblocking
-// any I/O running on fd.  The caller must have locked
-// pollserver.
-func (s *pollServer) Evict(fd *netFD) {
-	doWakeup := false
-	if s.pending[fd.sysfd<<1] == fd {
-		s.WakeFD(fd, 'r', errClosing)
-		if s.poll.DelFD(fd.sysfd, 'r') {
-			doWakeup = true
-		}
-		delete(s.pending, fd.sysfd<<1)
-	}
-	if s.pending[fd.sysfd<<1|1] == fd {
-		s.WakeFD(fd, 'w', errClosing)
-		if s.poll.DelFD(fd.sysfd, 'w') {
-			doWakeup = true
-		}
-		delete(s.pending, fd.sysfd<<1|1)
-	}
-	if doWakeup {
-		s.Wakeup()
-	}
-}
-
-var wakeupbuf [1]byte
-
-func (s *pollServer) Wakeup() { s.pw.Write(wakeupbuf[0:]) }
-
-func (s *pollServer) LookupFD(fd int, mode int) *netFD {
-	key := fd << 1
-	if mode == 'w' {
-		key++
-	}
-	netfd, ok := s.pending[key]
-	if !ok {
-		return nil
-	}
-	delete(s.pending, key)
-	return netfd
-}
-
-func (s *pollServer) WakeFD(fd *netFD, mode int, err error) {
-	if mode == 'r' {
-		for fd.ncr > 0 {
-			fd.ncr--
-			fd.cr <- err
-		}
-	} else {
-		for fd.ncw > 0 {
-			fd.ncw--
-			fd.cw <- err
-		}
-	}
-}
-
-func (s *pollServer) CheckDeadlines() {
-	now := time.Now().UnixNano()
-	// TODO(rsc): This will need to be handled more efficiently,
-	// probably with a heap indexed by wakeup time.
-
-	var nextDeadline int64
-	for key, fd := range s.pending {
-		var t int64
-		var mode int
-		if key&1 == 0 {
-			mode = 'r'
-		} else {
-			mode = 'w'
-		}
-		if mode == 'r' {
-			t = fd.rdeadline.value()
-		} else {
-			t = fd.wdeadline.value()
-		}
-		if t > 0 {
-			if t <= now {
-				delete(s.pending, key)
-				if mode == 'r' {
-					s.poll.DelFD(fd.sysfd, mode)
-				} else {
-					s.poll.DelFD(fd.sysfd, mode)
-				}
-				s.WakeFD(fd, mode, errTimeout)
-			} else if nextDeadline == 0 || t < nextDeadline {
-				nextDeadline = t
-			}
-		}
-	}
-	s.deadline = nextDeadline
-}
-
-func (s *pollServer) Run() {
-	var scratch [100]byte
-	s.Lock()
-	defer s.Unlock()
-	for {
-		var timeout int64 // nsec to wait for or 0 for none
-		if s.deadline > 0 {
-			timeout = s.deadline - time.Now().UnixNano()
-			if timeout <= 0 {
-				s.CheckDeadlines()
-				continue
-			}
-		}
-		fd, mode, err := s.poll.WaitFD(s, timeout)
-		if err != nil {
-			print("pollServer WaitFD: ", err.Error(), "\n")
-			return
-		}
-		if fd < 0 {
-			// Timeout happened.
-			s.CheckDeadlines()
-			continue
-		}
-		if fd == int(s.pr.Fd()) {
-			// Drain our wakeup pipe (we could loop here,
-			// but it's unlikely that there are more than
-			// len(scratch) wakeup calls).
-			s.pr.Read(scratch[0:])
-			s.CheckDeadlines()
-		} else {
-			netfd := s.LookupFD(fd, mode)
-			if netfd == nil {
-				// This can happen because the WaitFD runs without
-				// holding s's lock, so there might be a pending wakeup
-				// for an fd that has been evicted.  No harm done.
-				continue
-			}
-			s.WakeFD(netfd, mode, nil)
-		}
-	}
-}
-
-func (s *pollServer) WaitRead(fd *netFD) error {
-	err := s.AddFD(fd, 'r')
-	if err == nil {
-		err = <-fd.cr
-	}
-	return err
-}
-
-func (s *pollServer) WaitWrite(fd *netFD) error {
-	err := s.AddFD(fd, 'w')
-	if err == nil {
-		err = <-fd.cw
-	}
-	return err
-}
-
-// Network FD methods.
-// Spread network FDs over several pollServers.
-
-var pollMaxN int
-var pollservers []*pollServer
-var startServersOnce []func()
-
-var canCancelIO = true // used for testing current package
-
-func sysInit() {
-	pollMaxN = runtime.NumCPU()
-	if pollMaxN > 8 {
-		pollMaxN = 8 // No improvement then.
-	}
-	pollservers = make([]*pollServer, pollMaxN)
-	startServersOnce = make([]func(), pollMaxN)
-	for i := 0; i < pollMaxN; i++ {
-		k := i
-		once := new(sync.Once)
-		startServersOnce[i] = func() { once.Do(func() { startServer(k) }) }
-	}
-}
-
-func startServer(k int) {
-	p, err := newPollServer()
-	if err != nil {
-		panic(err)
-	}
-	pollservers[k] = p
-}
-
-func server(fd int) *pollServer {
-	pollN := runtime.GOMAXPROCS(0)
-	if pollN > pollMaxN {
-		pollN = pollMaxN
-	}
-	k := fd % pollN
-	startServersOnce[k]()
-	return pollservers[k]
-}
-
-func dialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
-	deadline := time.Now().Add(timeout)
-	_, addri, err := resolveNetAddr("dial", net, addr, deadline)
+func resolveAndDial(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
+	ra, err := resolveAddr("dial", net, addr, deadline)
 	if err != nil {
 		return nil, err
 	}
-	return dialAddr(net, addr, addri, deadline)
+	return dial(net, addr, localAddr, ra, deadline)
 }
 
 func newFD(fd, family, sotype int, net string) (*netFD, error) {
@@ -312,9 +56,9 @@
 		sotype: sotype,
 		net:    net,
 	}
-	netfd.cr = make(chan error, 1)
-	netfd.cw = make(chan error, 1)
-	netfd.pollServer = server(fd)
+	if err := netfd.pd.Init(netfd); err != nil {
+		return nil, err
+	}
 	return netfd, nil
 }
 
@@ -335,26 +79,29 @@
 	return fd.net + ":" + ls + "->" + rs
 }
 
-func (fd *netFD) connect(ra syscall.Sockaddr) error {
-	err := syscall.Connect(fd.sysfd, ra)
-	if err == syscall.EINPROGRESS {
-		if err = fd.pollServer.WaitWrite(fd); err != nil {
-			return err
+func (fd *netFD) connect(la, ra syscall.Sockaddr) error {
+	fd.wio.Lock()
+	defer fd.wio.Unlock()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return err
+	}
+	for {
+		err := syscall.Connect(fd.sysfd, ra)
+		if err == nil || err == syscall.EISCONN {
+			break
 		}
-		var e int
-		e, err = syscall.GetsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_ERROR)
-		if err != nil {
-			return os.NewSyscallError("getsockopt", err)
+		if err != syscall.EINPROGRESS && err != syscall.EALREADY && err != syscall.EINTR {
+			return err
 		}
-		if e != 0 {
-			err = syscall.Errno(e)
+		if err = fd.pd.WaitWrite(); err != nil {
+			return err
 		}
 	}
-	return err
+	return nil
 }
 
 // Add a reference to this fd.
-// If closing==true, pollserver must be locked; mark the fd as closing.
+// If closing==true, pollDesc must be locked; mark the fd as closing.
 // Returns an error if the fd cannot be used.
 func (fd *netFD) incref(closing bool) error {
 	fd.sysmu.Lock()
@@ -375,28 +122,38 @@
 func (fd *netFD) decref() {
 	fd.sysmu.Lock()
 	fd.sysref--
-	if fd.closing && fd.sysref == 0 && fd.sysfile != nil {
-		fd.sysfile.Close()
-		fd.sysfile = nil
+	if fd.closing && fd.sysref == 0 {
+		// Poller may want to unregister fd in readiness notification mechanism,
+		// so this must be executed before sysfile.Close().
+		fd.pd.Close()
+		if fd.sysfile != nil {
+			fd.sysfile.Close()
+			fd.sysfile = nil
+		} else {
+			closesocket(fd.sysfd)
+		}
 		fd.sysfd = -1
 	}
 	fd.sysmu.Unlock()
 }
 
 func (fd *netFD) Close() error {
-	fd.pollServer.Lock() // needed for both fd.incref(true) and pollserver.Evict
+	fd.pd.Lock() // needed for both fd.incref(true) and pollDesc.Evict
 	if err := fd.incref(true); err != nil {
-		fd.pollServer.Unlock()
+		fd.pd.Unlock()
 		return err
 	}
 	// Unblock any I/O.  Once it all unblocks and returns,
 	// so that it cannot be referring to fd.sysfd anymore,
 	// the final decref will close fd.sysfd.  This should happen
 	// fairly quickly, since all the I/O is non-blocking, and any
-	// attempts to block in the pollserver will return errClosing.
-	fd.pollServer.Evict(fd)
-	fd.pollServer.Unlock()
+	// attempts to block in the pollDesc will return errClosing.
+	doWakeup := fd.pd.Evict()
+	fd.pd.Unlock()
 	fd.decref()
+	if doWakeup {
+		fd.pd.Wakeup()
+	}
 	return nil
 }
 
@@ -427,16 +184,15 @@
 		return 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareRead(); err != nil {
+		return 0, &OpError{"read", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.rdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		n, err = syscall.Read(int(fd.sysfd), p)
 		if err != nil {
 			n = 0
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			}
@@ -457,16 +213,15 @@
 		return 0, nil, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareRead(); err != nil {
+		return 0, nil, &OpError{"read", fd.net, fd.laddr, err}
+	}
 	for {
-		if fd.rdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		n, sa, err = syscall.Recvfrom(fd.sysfd, p, 0)
 		if err != nil {
 			n = 0
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			}
@@ -487,16 +242,15 @@
 		return 0, 0, 0, nil, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareRead(); err != nil {
+		return 0, 0, 0, nil, &OpError{"read", fd.net, fd.laddr, err}
+	}
 	for {
-		if fd.rdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		n, oobn, flags, sa, err = syscall.Recvmsg(fd.sysfd, p, oob, 0)
 		if err != nil {
 			// TODO(dfc) should n and oobn be set to 0
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			}
@@ -524,11 +278,10 @@
 		return 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return 0, &OpError{"write", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.wdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		var n int
 		n, err = syscall.Write(int(fd.sysfd), p[nn:])
 		if n > 0 {
@@ -538,7 +291,7 @@
 			break
 		}
 		if err == syscall.EAGAIN {
-			if err = fd.pollServer.WaitWrite(fd); err == nil {
+			if err = fd.pd.WaitWrite(); err == nil {
 				continue
 			}
 		}
@@ -564,14 +317,13 @@
 		return 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return 0, &OpError{"write", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.wdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		err = syscall.Sendto(fd.sysfd, p, 0, sa)
 		if err == syscall.EAGAIN {
-			if err = fd.pollServer.WaitWrite(fd); err == nil {
+			if err = fd.pd.WaitWrite(); err == nil {
 				continue
 			}
 		}
@@ -592,14 +344,13 @@
 		return 0, 0, err
 	}
 	defer fd.decref()
+	if err := fd.pd.PrepareWrite(); err != nil {
+		return 0, 0, &OpError{"write", fd.net, fd.raddr, err}
+	}
 	for {
-		if fd.wdeadline.expired() {
-			err = errTimeout
-			break
-		}
 		err = syscall.Sendmsg(fd.sysfd, p, oob, sa, 0)
 		if err == syscall.EAGAIN {
-			if err = fd.pollServer.WaitWrite(fd); err == nil {
+			if err = fd.pd.WaitWrite(); err == nil {
 				continue
 			}
 		}
@@ -615,6 +366,8 @@
 }
 
 func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (netfd *netFD, err error) {
+	fd.rio.Lock()
+	defer fd.rio.Unlock()
 	if err := fd.incref(false); err != nil {
 		return nil, err
 	}
@@ -622,11 +375,14 @@
 
 	var s int
 	var rsa syscall.Sockaddr
+	if err = fd.pd.PrepareRead(); err != nil {
+		return nil, &OpError{"accept", fd.net, fd.laddr, err}
+	}
 	for {
 		s, rsa, err = accept(fd.sysfd)
 		if err != nil {
 			if err == syscall.EAGAIN {
-				if err = fd.pollServer.WaitRead(fd); err == nil {
+				if err = fd.pd.WaitRead(); err == nil {
 					continue
 				}
 			} else if err == syscall.ECONNABORTED {
@@ -659,6 +415,9 @@
 	syscall.ForkLock.RUnlock()
 
 	// We want blocking mode for the new fd, hence the double negative.
+	// This also puts the old fd into blocking mode, meaning that
+	// I/O will block the thread instead of letting us use the epoll server.
+	// Everything will still work, just with more threads.
 	if err = syscall.SetNonblock(ns, false); err != nil {
 		return nil, &OpError{"setnonblock", fd.net, fd.laddr, err}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_unix_test.go gcc-4.8.1/libgo/go/net/fd_unix_test.go
--- gcc-4.8.1.orig/libgo/go/net/fd_unix_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_unix_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -12,54 +12,6 @@
 	"testing"
 )
 
-// Issue 3590. netFd.AddFD should return an error
-// from the underlying pollster rather than panicing.
-func TestAddFDReturnsError(t *testing.T) {
-	ln := newLocalListener(t).(*TCPListener)
-	defer ln.Close()
-	connected := make(chan bool)
-	go func() {
-		for {
-			c, err := ln.Accept()
-			if err != nil {
-				return
-			}
-			connected <- true
-			defer c.Close()
-		}
-	}()
-
-	c, err := DialTCP("tcp", nil, ln.Addr().(*TCPAddr))
-	if err != nil {
-		t.Fatal(err)
-	}
-	defer c.Close()
-	<-connected
-
-	// replace c's pollServer with a closed version.
-	ps, err := newPollServer()
-	if err != nil {
-		t.Fatal(err)
-	}
-	ps.poll.Close()
-	c.conn.fd.pollServer = ps
-
-	var b [1]byte
-	_, err = c.Read(b[:])
-	if err, ok := err.(*OpError); ok {
-		if err.Op == "addfd" {
-			return
-		}
-		if err, ok := err.Err.(*OpError); ok {
-			// the err is sometimes wrapped by another OpError
-			if err.Op == "addfd" {
-				return
-			}
-		}
-	}
-	t.Error("unexpected error:", err)
-}
-
 var chkReadErrTests = []struct {
 	n        int
 	err      error
diff -Naur gcc-4.8.1.orig/libgo/go/net/fd_windows.go gcc-4.8.1/libgo/go/net/fd_windows.go
--- gcc-4.8.1.orig/libgo/go/net/fd_windows.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/fd_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -37,6 +37,7 @@
 	}
 	canCancelIO = syscall.LoadCancelIoEx() == nil
 	if syscall.LoadGetAddrInfo() == nil {
+		lookupPort = newLookupPort
 		lookupIP = newLookupIP
 	}
 }
@@ -53,18 +54,17 @@
 	return syscall.LoadConnectEx() == nil
 }
 
-func dialTimeout(net, addr string, timeout time.Duration) (Conn, error) {
+func resolveAndDial(net, addr string, localAddr Addr, deadline time.Time) (Conn, error) {
 	if !canUseConnectEx(net) {
 		// Use the relatively inefficient goroutine-racing
 		// implementation of DialTimeout.
-		return dialTimeoutRace(net, addr, timeout)
+		return resolveAndDialChannel(net, addr, localAddr, deadline)
 	}
-	deadline := time.Now().Add(timeout)
-	_, addri, err := resolveNetAddr("dial", net, addr, deadline)
+	ra, err := resolveAddr("dial", net, addr, deadline)
 	if err != nil {
 		return nil, err
 	}
-	return dialAddr(net, addr, addri, deadline)
+	return dial(net, addr, localAddr, ra, deadline)
 }
 
 // Interface for all IO operations.
@@ -137,12 +137,18 @@
 	iocp syscall.Handle
 }
 
+func runtime_blockingSyscallHint()
+
 func (s *resultSrv) Run() {
 	var o *syscall.Overlapped
 	var key uint32
 	var r ioResult
 	for {
-		r.err = syscall.GetQueuedCompletionStatus(s.iocp, &(r.qty), &key, &o, syscall.INFINITE)
+		r.err = syscall.GetQueuedCompletionStatus(s.iocp, &(r.qty), &key, &o, 0)
+		if r.err == syscall.Errno(syscall.WAIT_TIMEOUT) && o == nil {
+			runtime_blockingSyscallHint()
+			r.err = syscall.GetQueuedCompletionStatus(s.iocp, &(r.qty), &key, &o, syscall.INFINITE)
+		}
 		switch {
 		case r.err == nil:
 			// Dequeued successfully completed IO packet.
@@ -358,22 +364,23 @@
 	return "ConnectEx"
 }
 
-func (fd *netFD) connect(ra syscall.Sockaddr) error {
+func (fd *netFD) connect(la, ra syscall.Sockaddr) error {
 	if !canUseConnectEx(fd.net) {
 		return syscall.Connect(fd.sysfd, ra)
 	}
 	// ConnectEx windows API requires an unconnected, previously bound socket.
-	var la syscall.Sockaddr
-	switch ra.(type) {
-	case *syscall.SockaddrInet4:
-		la = &syscall.SockaddrInet4{}
-	case *syscall.SockaddrInet6:
-		la = &syscall.SockaddrInet6{}
-	default:
-		panic("unexpected type in connect")
-	}
-	if err := syscall.Bind(fd.sysfd, la); err != nil {
-		return err
+	if la == nil {
+		switch ra.(type) {
+		case *syscall.SockaddrInet4:
+			la = &syscall.SockaddrInet4{}
+		case *syscall.SockaddrInet6:
+			la = &syscall.SockaddrInet6{}
+		default:
+			panic("unexpected type in connect")
+		}
+		if err := syscall.Bind(fd.sysfd, la); err != nil {
+			return err
+		}
 	}
 	// Call ConnectEx API.
 	var o connectOp
@@ -618,15 +625,10 @@
 	defer fd.decref()
 
 	// Get new socket.
-	// See ../syscall/exec_unix.go for description of ForkLock.
-	syscall.ForkLock.RLock()
-	s, err := syscall.Socket(fd.family, fd.sotype, 0)
+	s, err := sysSocket(fd.family, fd.sotype, 0)
 	if err != nil {
-		syscall.ForkLock.RUnlock()
 		return nil, &OpError{"socket", fd.net, fd.laddr, err}
 	}
-	syscall.CloseOnExec(s)
-	syscall.ForkLock.RUnlock()
 
 	// Associate our new socket with IOCP.
 	onceStartServer.Do(startServer)
diff -Naur gcc-4.8.1.orig/libgo/go/net/file_plan9.go gcc-4.8.1/libgo/go/net/file_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/file_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/file_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,16 +5,139 @@
 package net
 
 import (
+	"errors"
+	"io"
 	"os"
 	"syscall"
 )
 
+func (fd *netFD) status(ln int) (string, error) {
+	if !fd.ok() {
+		return "", syscall.EINVAL
+	}
+
+	status, err := os.Open(fd.dir + "/status")
+	if err != nil {
+		return "", err
+	}
+	defer status.Close()
+	buf := make([]byte, ln)
+	n, err := io.ReadFull(status, buf[:])
+	if err != nil {
+		return "", err
+	}
+	return string(buf[:n]), nil
+}
+
+func newFileFD(f *os.File) (net *netFD, err error) {
+	var ctl *os.File
+	close := func(fd int) {
+		if err != nil {
+			syscall.Close(fd)
+		}
+	}
+
+	path, err := syscall.Fd2path(int(f.Fd()))
+	if err != nil {
+		return nil, os.NewSyscallError("fd2path", err)
+	}
+	comp := splitAtBytes(path, "/")
+	n := len(comp)
+	if n < 3 || comp[0] != "net" {
+		return nil, syscall.EPLAN9
+	}
+
+	name := comp[2]
+	switch file := comp[n-1]; file {
+	case "ctl", "clone":
+		syscall.ForkLock.RLock()
+		fd, err := syscall.Dup(int(f.Fd()), -1)
+		syscall.ForkLock.RUnlock()
+		if err != nil {
+			return nil, os.NewSyscallError("dup", err)
+		}
+		defer close(fd)
+
+		dir := "/net/" + comp[n-2]
+		ctl = os.NewFile(uintptr(fd), dir+"/"+file)
+		ctl.Seek(0, 0)
+		var buf [16]byte
+		n, err := ctl.Read(buf[:])
+		if err != nil {
+			return nil, err
+		}
+		name = string(buf[:n])
+	default:
+		if len(comp) < 4 {
+			return nil, errors.New("could not find control file for connection")
+		}
+		dir := "/net/" + comp[1] + "/" + name
+		ctl, err = os.OpenFile(dir+"/ctl", os.O_RDWR, 0)
+		if err != nil {
+			return nil, err
+		}
+		defer close(int(ctl.Fd()))
+	}
+	dir := "/net/" + comp[1] + "/" + name
+	laddr, err := readPlan9Addr(comp[1], dir+"/local")
+	if err != nil {
+		return nil, err
+	}
+	return newFD(comp[1], name, ctl, nil, laddr, nil), nil
+}
+
+func newFileConn(f *os.File) (c Conn, err error) {
+	fd, err := newFileFD(f)
+	if err != nil {
+		return nil, err
+	}
+	if !fd.ok() {
+		return nil, syscall.EINVAL
+	}
+
+	fd.data, err = os.OpenFile(fd.dir+"/data", os.O_RDWR, 0)
+	if err != nil {
+		return nil, err
+	}
+
+	switch fd.laddr.(type) {
+	case *TCPAddr:
+		return newTCPConn(fd), nil
+	case *UDPAddr:
+		return newUDPConn(fd), nil
+	}
+	return nil, syscall.EPLAN9
+}
+
+func newFileListener(f *os.File) (l Listener, err error) {
+	fd, err := newFileFD(f)
+	if err != nil {
+		return nil, err
+	}
+	switch fd.laddr.(type) {
+	case *TCPAddr:
+	default:
+		return nil, syscall.EPLAN9
+	}
+
+	// check that file corresponds to a listener
+	s, err := fd.status(len("Listen"))
+	if err != nil {
+		return nil, err
+	}
+	if s != "Listen" {
+		return nil, errors.New("file does not represent a listener")
+	}
+
+	return &TCPListener{fd}, nil
+}
+
 // FileConn returns a copy of the network connection corresponding to
 // the open file f.  It is the caller's responsibility to close f when
 // finished.  Closing c does not affect f, and closing f does not
 // affect c.
 func FileConn(f *os.File) (c Conn, err error) {
-	return nil, syscall.EPLAN9
+	return newFileConn(f)
 }
 
 // FileListener returns a copy of the network listener corresponding
@@ -22,7 +145,7 @@
 // when finished.  Closing l does not affect f, and closing f does not
 // affect l.
 func FileListener(f *os.File) (l Listener, err error) {
-	return nil, syscall.EPLAN9
+	return newFileListener(f)
 }
 
 // FilePacketConn returns a copy of the packet network connection
diff -Naur gcc-4.8.1.orig/libgo/go/net/file_test.go gcc-4.8.1/libgo/go/net/file_test.go
--- gcc-4.8.1.orig/libgo/go/net/file_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/file_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -89,7 +89,7 @@
 
 func TestFileListener(t *testing.T) {
 	switch runtime.GOOS {
-	case "plan9", "windows":
+	case "windows":
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/net/file_windows.go gcc-4.8.1/libgo/go/net/file_windows.go
--- gcc-4.8.1.orig/libgo/go/net/file_windows.go	2011-12-02 20:17:34.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/file_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,16 +9,28 @@
 	"syscall"
 )
 
+// FileConn returns a copy of the network connection corresponding to
+// the open file f.  It is the caller's responsibility to close f when
+// finished.  Closing c does not affect f, and closing f does not
+// affect c.
 func FileConn(f *os.File) (c Conn, err error) {
 	// TODO: Implement this
 	return nil, os.NewSyscallError("FileConn", syscall.EWINDOWS)
 }
 
+// FileListener returns a copy of the network listener corresponding
+// to the open file f.  It is the caller's responsibility to close l
+// when finished.  Closing l does not affect f, and closing f does not
+// affect l.
 func FileListener(f *os.File) (l Listener, err error) {
 	// TODO: Implement this
 	return nil, os.NewSyscallError("FileListener", syscall.EWINDOWS)
 }
 
+// FilePacketConn returns a copy of the packet network connection
+// corresponding to the open file f.  It is the caller's
+// responsibility to close f when finished.  Closing c does not affect
+// f, and closing f does not affect c.
 func FilePacketConn(f *os.File) (c PacketConn, err error) {
 	// TODO: Implement this
 	return nil, os.NewSyscallError("FilePacketConn", syscall.EWINDOWS)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/host_test.go gcc-4.8.1/libgo/go/net/http/cgi/host_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cgi/host_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/cgi/host_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -19,7 +19,6 @@
 	"runtime"
 	"strconv"
 	"strings"
-	"syscall"
 	"testing"
 	"time"
 )
@@ -340,11 +339,7 @@
 	}
 
 	childRunning := func() bool {
-		p, err := os.FindProcess(pid)
-		if err != nil {
-			return false
-		}
-		return p.Signal(syscall.Signal(0)) == nil
+		return isProcessRunning(t, pid)
 	}
 
 	if !childRunning() {
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/posix_test.go gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cgi/posix_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/cgi/posix_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,21 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !plan9
+
+package cgi
+
+import (
+	"os"
+	"syscall"
+	"testing"
+)
+
+func isProcessRunning(t *testing.T, pid int) bool {
+	p, err := os.FindProcess(pid)
+	if err != nil {
+		return false
+	}
+	return p.Signal(syscall.Signal(0)) == nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cgi/testdata/test.cgi gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi
--- gcc-4.8.1.orig/libgo/go/net/http/cgi/testdata/test.cgi	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/cgi/testdata/test.cgi	2013-07-16 01:55:04.520470000 -0500
@@ -24,7 +24,8 @@
 print "\r\n";
 
 if ($params->{"bigresponse"}) {
-    for (1..1024) {
+    # 17 MB, for OS X: golang.org/issue/4958
+    for (1..(17 * 1024)) {
         print "A" x 1024, "\r\n";
     }
     exit 0;
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client.go gcc-4.8.1/libgo/go/net/http/client.go
--- gcc-4.8.1.orig/libgo/go/net/http/client.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/client.go	2013-07-16 01:55:04.520470000 -0500
@@ -19,12 +19,16 @@
 	"strings"
 )
 
-// A Client is an HTTP client. Its zero value (DefaultClient) is a usable client
-// that uses DefaultTransport.
+// A Client is an HTTP client. Its zero value (DefaultClient) is a
+// usable client that uses DefaultTransport.
 //
-// The Client's Transport typically has internal state (cached
-// TCP connections), so Clients should be reused instead of created as
+// The Client's Transport typically has internal state (cached TCP
+// connections), so Clients should be reused instead of created as
 // needed. Clients are safe for concurrent use by multiple goroutines.
+//
+// A Client is higher-level than a RoundTripper (such as Transport)
+// and additionally handles HTTP details such as cookies and
+// redirects.
 type Client struct {
 	// Transport specifies the mechanism by which individual
 	// HTTP requests are made.
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/client_test.go gcc-4.8.1/libgo/go/net/http/client_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/client_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/client_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -51,10 +51,10 @@
 			return b, err
 		}
 	}
-	panic("unreachable")
 }
 
 func TestClient(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(robotsTxtHandler)
 	defer ts.Close()
 
@@ -72,6 +72,7 @@
 }
 
 func TestClientHead(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(robotsTxtHandler)
 	defer ts.Close()
 
@@ -94,6 +95,7 @@
 }
 
 func TestGetRequestFormat(t *testing.T) {
+	defer afterTest(t)
 	tr := &recordingTransport{}
 	client := &Client{Transport: tr}
 	url := "http://dummy.faketld/"
@@ -110,6 +112,7 @@
 }
 
 func TestPostRequestFormat(t *testing.T) {
+	defer afterTest(t)
 	tr := &recordingTransport{}
 	client := &Client{Transport: tr}
 
@@ -136,6 +139,7 @@
 }
 
 func TestPostFormRequestFormat(t *testing.T) {
+	defer afterTest(t)
 	tr := &recordingTransport{}
 	client := &Client{Transport: tr}
 
@@ -176,7 +180,8 @@
 	}
 }
 
-func TestRedirects(t *testing.T) {
+func TestClientRedirects(t *testing.T) {
+	defer afterTest(t)
 	var ts *httptest.Server
 	ts = httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		n, _ := strconv.Atoi(r.FormValue("n"))
@@ -223,6 +228,7 @@
 	if err != nil {
 		t.Fatalf("Get error: %v", err)
 	}
+	res.Body.Close()
 	finalUrl := res.Request.URL.String()
 	if e, g := "<nil>", fmt.Sprintf("%v", err); e != g {
 		t.Errorf("with custom client, expected error %q, got %q", e, g)
@@ -242,12 +248,14 @@
 	if res == nil {
 		t.Fatalf("Expected a non-nil Response on CheckRedirect failure (http://golang.org/issue/3795)")
 	}
+	res.Body.Close()
 	if res.Header.Get("Location") == "" {
 		t.Errorf("no Location header in Response")
 	}
 }
 
 func TestPostRedirects(t *testing.T) {
+	defer afterTest(t)
 	var log struct {
 		sync.Mutex
 		bytes.Buffer
@@ -265,6 +273,7 @@
 			w.WriteHeader(code)
 		}
 	}))
+	defer ts.Close()
 	tests := []struct {
 		suffix string
 		want   int // response code
@@ -364,6 +373,7 @@
 }
 
 func TestRedirectCookiesOnRequest(t *testing.T) {
+	defer afterTest(t)
 	var ts *httptest.Server
 	ts = httptest.NewServer(echoCookiesRedirectHandler)
 	defer ts.Close()
@@ -381,6 +391,7 @@
 }
 
 func TestRedirectCookiesJar(t *testing.T) {
+	defer afterTest(t)
 	var ts *httptest.Server
 	ts = httptest.NewServer(echoCookiesRedirectHandler)
 	defer ts.Close()
@@ -393,6 +404,7 @@
 	if err != nil {
 		t.Fatalf("Get: %v", err)
 	}
+	resp.Body.Close()
 	matchReturnedCookies(t, expectedCookies, resp.Cookies())
 }
 
@@ -416,6 +428,7 @@
 }
 
 func TestJarCalls(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		pathSuffix := r.RequestURI[1:]
 		if r.RequestURI == "/nosetcookie" {
@@ -479,6 +492,7 @@
 }
 
 func TestStreamingGet(t *testing.T) {
+	defer afterTest(t)
 	say := make(chan string)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.(Flusher).Flush()
@@ -529,6 +543,7 @@
 // TestClientWrites verifies that client requests are buffered and we
 // don't send a TCP packet per line of the http request + body.
 func TestClientWrites(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 	}))
 	defer ts.Close()
@@ -562,6 +577,7 @@
 }
 
 func TestClientInsecureTransport(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Write([]byte("Hello"))
 	}))
@@ -576,15 +592,20 @@
 				InsecureSkipVerify: insecure,
 			},
 		}
+		defer tr.CloseIdleConnections()
 		c := &Client{Transport: tr}
-		_, err := c.Get(ts.URL)
+		res, err := c.Get(ts.URL)
 		if (err == nil) != insecure {
 			t.Errorf("insecure=%v: got unexpected err=%v", insecure, err)
 		}
+		if res != nil {
+			res.Body.Close()
+		}
 	}
 }
 
 func TestClientErrorWithRequestURI(t *testing.T) {
+	defer afterTest(t)
 	req, _ := NewRequest("GET", "http://localhost:1234/", nil)
 	req.RequestURI = "/this/field/is/illegal/and/should/error/"
 	_, err := DefaultClient.Do(req)
@@ -613,6 +634,7 @@
 }
 
 func TestClientWithCorrectTLSServerName(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.TLS.ServerName != "127.0.0.1" {
 			t.Errorf("expected client to set ServerName 127.0.0.1, got: %q", r.TLS.ServerName)
@@ -627,6 +649,7 @@
 }
 
 func TestClientWithIncorrectTLSServerName(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {}))
 	defer ts.Close()
 
@@ -644,6 +667,7 @@
 
 // Verify Response.ContentLength is populated. http://golang.org/issue/4126
 func TestClientHeadContentLength(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if v := r.FormValue("cl"); v != "" {
 			w.Header().Set("Content-Length", v)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar.go gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,497 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
+package cookiejar
+
+import (
+	"errors"
+	"fmt"
+	"net"
+	"net/http"
+	"net/url"
+	"sort"
+	"strings"
+	"sync"
+	"time"
+)
+
+// PublicSuffixList provides the public suffix of a domain. For example:
+//      - the public suffix of "example.com" is "com",
+//      - the public suffix of "foo1.foo2.foo3.co.uk" is "co.uk", and
+//      - the public suffix of "bar.pvt.k12.ma.us" is "pvt.k12.ma.us".
+//
+// Implementations of PublicSuffixList must be safe for concurrent use by
+// multiple goroutines.
+//
+// An implementation that always returns "" is valid and may be useful for
+// testing but it is not secure: it means that the HTTP server for foo.com can
+// set a cookie for bar.com.
+//
+// A public suffix list implementation is in the package
+// code.google.com/p/go.net/publicsuffix.
+type PublicSuffixList interface {
+	// PublicSuffix returns the public suffix of domain.
+	//
+	// TODO: specify which of the caller and callee is responsible for IP
+	// addresses, for leading and trailing dots, for case sensitivity, and
+	// for IDN/Punycode.
+	PublicSuffix(domain string) string
+
+	// String returns a description of the source of this public suffix
+	// list. The description will typically contain something like a time
+	// stamp or version number.
+	String() string
+}
+
+// Options are the options for creating a new Jar.
+type Options struct {
+	// PublicSuffixList is the public suffix list that determines whether
+	// an HTTP server can set a cookie for a domain.
+	//
+	// A nil value is valid and may be useful for testing but it is not
+	// secure: it means that the HTTP server for foo.co.uk can set a cookie
+	// for bar.co.uk.
+	PublicSuffixList PublicSuffixList
+}
+
+// Jar implements the http.CookieJar interface from the net/http package.
+type Jar struct {
+	psList PublicSuffixList
+
+	// mu locks the remaining fields.
+	mu sync.Mutex
+
+	// entries is a set of entries, keyed by their eTLD+1 and subkeyed by
+	// their name/domain/path.
+	entries map[string]map[string]entry
+
+	// nextSeqNum is the next sequence number assigned to a new cookie
+	// created SetCookies.
+	nextSeqNum uint64
+}
+
+// New returns a new cookie jar. A nil *Options is equivalent to a zero
+// Options.
+func New(o *Options) (*Jar, error) {
+	jar := &Jar{
+		entries: make(map[string]map[string]entry),
+	}
+	if o != nil {
+		jar.psList = o.PublicSuffixList
+	}
+	return jar, nil
+}
+
+// entry is the internal representation of a cookie.
+//
+// This struct type is not used outside of this package per se, but the exported
+// fields are those of RFC 6265.
+type entry struct {
+	Name       string
+	Value      string
+	Domain     string
+	Path       string
+	Secure     bool
+	HttpOnly   bool
+	Persistent bool
+	HostOnly   bool
+	Expires    time.Time
+	Creation   time.Time
+	LastAccess time.Time
+
+	// seqNum is a sequence number so that Cookies returns cookies in a
+	// deterministic order, even for cookies that have equal Path length and
+	// equal Creation time. This simplifies testing.
+	seqNum uint64
+}
+
+// Id returns the domain;path;name triple of e as an id.
+func (e *entry) id() string {
+	return fmt.Sprintf("%s;%s;%s", e.Domain, e.Path, e.Name)
+}
+
+// shouldSend determines whether e's cookie qualifies to be included in a
+// request to host/path. It is the caller's responsibility to check if the
+// cookie is expired.
+func (e *entry) shouldSend(https bool, host, path string) bool {
+	return e.domainMatch(host) && e.pathMatch(path) && (https || !e.Secure)
+}
+
+// domainMatch implements "domain-match" of RFC 6265 section 5.1.3.
+func (e *entry) domainMatch(host string) bool {
+	if e.Domain == host {
+		return true
+	}
+	return !e.HostOnly && hasDotSuffix(host, e.Domain)
+}
+
+// pathMatch implements "path-match" according to RFC 6265 section 5.1.4.
+func (e *entry) pathMatch(requestPath string) bool {
+	if requestPath == e.Path {
+		return true
+	}
+	if strings.HasPrefix(requestPath, e.Path) {
+		if e.Path[len(e.Path)-1] == '/' {
+			return true // The "/any/" matches "/any/path" case.
+		} else if requestPath[len(e.Path)] == '/' {
+			return true // The "/any" matches "/any/path" case.
+		}
+	}
+	return false
+}
+
+// hasDotSuffix returns whether s ends in "."+suffix.
+func hasDotSuffix(s, suffix string) bool {
+	return len(s) > len(suffix) && s[len(s)-len(suffix)-1] == '.' && s[len(s)-len(suffix):] == suffix
+}
+
+// byPathLength is a []entry sort.Interface that sorts according to RFC 6265
+// section 5.4 point 2: by longest path and then by earliest creation time.
+type byPathLength []entry
+
+func (s byPathLength) Len() int { return len(s) }
+
+func (s byPathLength) Less(i, j int) bool {
+	if len(s[i].Path) != len(s[j].Path) {
+		return len(s[i].Path) > len(s[j].Path)
+	}
+	if !s[i].Creation.Equal(s[j].Creation) {
+		return s[i].Creation.Before(s[j].Creation)
+	}
+	return s[i].seqNum < s[j].seqNum
+}
+
+func (s byPathLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+
+// Cookies implements the Cookies method of the http.CookieJar interface.
+//
+// It returns an empty slice if the URL's scheme is not HTTP or HTTPS.
+func (j *Jar) Cookies(u *url.URL) (cookies []*http.Cookie) {
+	return j.cookies(u, time.Now())
+}
+
+// cookies is like Cookies but takes the current time as a parameter.
+func (j *Jar) cookies(u *url.URL, now time.Time) (cookies []*http.Cookie) {
+	if u.Scheme != "http" && u.Scheme != "https" {
+		return cookies
+	}
+	host, err := canonicalHost(u.Host)
+	if err != nil {
+		return cookies
+	}
+	key := jarKey(host, j.psList)
+
+	j.mu.Lock()
+	defer j.mu.Unlock()
+
+	submap := j.entries[key]
+	if submap == nil {
+		return cookies
+	}
+
+	https := u.Scheme == "https"
+	path := u.Path
+	if path == "" {
+		path = "/"
+	}
+
+	modified := false
+	var selected []entry
+	for id, e := range submap {
+		if e.Persistent && !e.Expires.After(now) {
+			delete(submap, id)
+			modified = true
+			continue
+		}
+		if !e.shouldSend(https, host, path) {
+			continue
+		}
+		e.LastAccess = now
+		submap[id] = e
+		selected = append(selected, e)
+		modified = true
+	}
+	if modified {
+		if len(submap) == 0 {
+			delete(j.entries, key)
+		} else {
+			j.entries[key] = submap
+		}
+	}
+
+	sort.Sort(byPathLength(selected))
+	for _, e := range selected {
+		cookies = append(cookies, &http.Cookie{Name: e.Name, Value: e.Value})
+	}
+
+	return cookies
+}
+
+// SetCookies implements the SetCookies method of the http.CookieJar interface.
+//
+// It does nothing if the URL's scheme is not HTTP or HTTPS.
+func (j *Jar) SetCookies(u *url.URL, cookies []*http.Cookie) {
+	j.setCookies(u, cookies, time.Now())
+}
+
+// setCookies is like SetCookies but takes the current time as parameter.
+func (j *Jar) setCookies(u *url.URL, cookies []*http.Cookie, now time.Time) {
+	if len(cookies) == 0 {
+		return
+	}
+	if u.Scheme != "http" && u.Scheme != "https" {
+		return
+	}
+	host, err := canonicalHost(u.Host)
+	if err != nil {
+		return
+	}
+	key := jarKey(host, j.psList)
+	defPath := defaultPath(u.Path)
+
+	j.mu.Lock()
+	defer j.mu.Unlock()
+
+	submap := j.entries[key]
+
+	modified := false
+	for _, cookie := range cookies {
+		e, remove, err := j.newEntry(cookie, now, defPath, host)
+		if err != nil {
+			continue
+		}
+		id := e.id()
+		if remove {
+			if submap != nil {
+				if _, ok := submap[id]; ok {
+					delete(submap, id)
+					modified = true
+				}
+			}
+			continue
+		}
+		if submap == nil {
+			submap = make(map[string]entry)
+		}
+
+		if old, ok := submap[id]; ok {
+			e.Creation = old.Creation
+			e.seqNum = old.seqNum
+		} else {
+			e.Creation = now
+			e.seqNum = j.nextSeqNum
+			j.nextSeqNum++
+		}
+		e.LastAccess = now
+		submap[id] = e
+		modified = true
+	}
+
+	if modified {
+		if len(submap) == 0 {
+			delete(j.entries, key)
+		} else {
+			j.entries[key] = submap
+		}
+	}
+}
+
+// canonicalHost strips port from host if present and returns the canonicalized
+// host name.
+func canonicalHost(host string) (string, error) {
+	var err error
+	host = strings.ToLower(host)
+	if hasPort(host) {
+		host, _, err = net.SplitHostPort(host)
+		if err != nil {
+			return "", err
+		}
+	}
+	if strings.HasSuffix(host, ".") {
+		// Strip trailing dot from fully qualified domain names.
+		host = host[:len(host)-1]
+	}
+	return toASCII(host)
+}
+
+// hasPort returns whether host contains a port number. host may be a host
+// name, an IPv4 or an IPv6 address.
+func hasPort(host string) bool {
+	colons := strings.Count(host, ":")
+	if colons == 0 {
+		return false
+	}
+	if colons == 1 {
+		return true
+	}
+	return host[0] == '[' && strings.Contains(host, "]:")
+}
+
+// jarKey returns the key to use for a jar.
+func jarKey(host string, psl PublicSuffixList) string {
+	if isIP(host) {
+		return host
+	}
+
+	var i int
+	if psl == nil {
+		i = strings.LastIndex(host, ".")
+		if i == -1 {
+			return host
+		}
+	} else {
+		suffix := psl.PublicSuffix(host)
+		if suffix == host {
+			return host
+		}
+		i = len(host) - len(suffix)
+		if i <= 0 || host[i-1] != '.' {
+			// The provided public suffix list psl is broken.
+			// Storing cookies under host is a safe stopgap.
+			return host
+		}
+	}
+	prevDot := strings.LastIndex(host[:i-1], ".")
+	return host[prevDot+1:]
+}
+
+// isIP returns whether host is an IP address.
+func isIP(host string) bool {
+	return net.ParseIP(host) != nil
+}
+
+// defaultPath returns the directory part of an URL's path according to
+// RFC 6265 section 5.1.4.
+func defaultPath(path string) string {
+	if len(path) == 0 || path[0] != '/' {
+		return "/" // Path is empty or malformed.
+	}
+
+	i := strings.LastIndex(path, "/") // Path starts with "/", so i != -1.
+	if i == 0 {
+		return "/" // Path has the form "/abc".
+	}
+	return path[:i] // Path is either of form "/abc/xyz" or "/abc/xyz/".
+}
+
+// newEntry creates an entry from a http.Cookie c. now is the current time and
+// is compared to c.Expires to determine deletion of c. defPath and host are the
+// default-path and the canonical host name of the URL c was received from.
+//
+// remove is whether the jar should delete this cookie, as it has already
+// expired with respect to now. In this case, e may be incomplete, but it will
+// be valid to call e.id (which depends on e's Name, Domain and Path).
+//
+// A malformed c.Domain will result in an error.
+func (j *Jar) newEntry(c *http.Cookie, now time.Time, defPath, host string) (e entry, remove bool, err error) {
+	e.Name = c.Name
+
+	if c.Path == "" || c.Path[0] != '/' {
+		e.Path = defPath
+	} else {
+		e.Path = c.Path
+	}
+
+	e.Domain, e.HostOnly, err = j.domainAndType(host, c.Domain)
+	if err != nil {
+		return e, false, err
+	}
+
+	// MaxAge takes precedence over Expires.
+	if c.MaxAge < 0 {
+		return e, true, nil
+	} else if c.MaxAge > 0 {
+		e.Expires = now.Add(time.Duration(c.MaxAge) * time.Second)
+		e.Persistent = true
+	} else {
+		if c.Expires.IsZero() {
+			e.Expires = endOfTime
+			e.Persistent = false
+		} else {
+			if !c.Expires.After(now) {
+				return e, true, nil
+			}
+			e.Expires = c.Expires
+			e.Persistent = true
+		}
+	}
+
+	e.Value = c.Value
+	e.Secure = c.Secure
+	e.HttpOnly = c.HttpOnly
+
+	return e, false, nil
+}
+
+var (
+	errIllegalDomain   = errors.New("cookiejar: illegal cookie domain attribute")
+	errMalformedDomain = errors.New("cookiejar: malformed cookie domain attribute")
+	errNoHostname      = errors.New("cookiejar: no host name available (IP only)")
+)
+
+// endOfTime is the time when session (non-persistent) cookies expire.
+// This instant is representable in most date/time formats (not just
+// Go's time.Time) and should be far enough in the future.
+var endOfTime = time.Date(9999, 12, 31, 23, 59, 59, 0, time.UTC)
+
+// domainAndType determines the cookie's domain and hostOnly attribute.
+func (j *Jar) domainAndType(host, domain string) (string, bool, error) {
+	if domain == "" {
+		// No domain attribute in the SetCookie header indicates a
+		// host cookie.
+		return host, true, nil
+	}
+
+	if isIP(host) {
+		// According to RFC 6265 domain-matching includes not being
+		// an IP address.
+		// TODO: This might be relaxed as in common browsers.
+		return "", false, errNoHostname
+	}
+
+	// From here on: If the cookie is valid, it is a domain cookie (with
+	// the one exception of a public suffix below).
+	// See RFC 6265 section 5.2.3.
+	if domain[0] == '.' {
+		domain = domain[1:]
+	}
+
+	if len(domain) == 0 || domain[0] == '.' {
+		// Received either "Domain=." or "Domain=..some.thing",
+		// both are illegal.
+		return "", false, errMalformedDomain
+	}
+	domain = strings.ToLower(domain)
+
+	if domain[len(domain)-1] == '.' {
+		// We received stuff like "Domain=www.example.com.".
+		// Browsers do handle such stuff (actually differently) but
+		// RFC 6265 seems to be clear here (e.g. section 4.1.2.3) in
+		// requiring a reject.  4.1.2.3 is not normative, but
+		// "Domain Matching" (5.1.3) and "Canonicalized Host Names"
+		// (5.1.2) are.
+		return "", false, errMalformedDomain
+	}
+
+	// See RFC 6265 section 5.3 #5.
+	if j.psList != nil {
+		if ps := j.psList.PublicSuffix(domain); ps != "" && !hasDotSuffix(domain, ps) {
+			if host == domain {
+				// This is the one exception in which a cookie
+				// with a domain attribute is a host cookie.
+				return host, true, nil
+			}
+			return "", false, errIllegalDomain
+		}
+	}
+
+	// The domain must domain-match host: www.mycompany.com cannot
+	// set cookies for .ourcompetitors.com.
+	if host != domain && !hasDotSuffix(host, domain) {
+		return "", false, errIllegalDomain
+	}
+
+	return domain, false, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar_test.go gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/jar_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/jar_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,1267 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cookiejar
+
+import (
+	"fmt"
+	"net/http"
+	"net/url"
+	"sort"
+	"strings"
+	"testing"
+	"time"
+)
+
+// tNow is the synthetic current time used as now during testing.
+var tNow = time.Date(2013, 1, 1, 12, 0, 0, 0, time.UTC)
+
+// testPSL implements PublicSuffixList with just two rules: "co.uk"
+// and the default rule "*".
+type testPSL struct{}
+
+func (testPSL) String() string {
+	return "testPSL"
+}
+func (testPSL) PublicSuffix(d string) string {
+	if d == "co.uk" || strings.HasSuffix(d, ".co.uk") {
+		return "co.uk"
+	}
+	return d[strings.LastIndex(d, ".")+1:]
+}
+
+// newTestJar creates an empty Jar with testPSL as the public suffix list.
+func newTestJar() *Jar {
+	jar, err := New(&Options{PublicSuffixList: testPSL{}})
+	if err != nil {
+		panic(err)
+	}
+	return jar
+}
+
+var hasDotSuffixTests = [...]struct {
+	s, suffix string
+}{
+	{"", ""},
+	{"", "."},
+	{"", "x"},
+	{".", ""},
+	{".", "."},
+	{".", ".."},
+	{".", "x"},
+	{".", "x."},
+	{".", ".x"},
+	{".", ".x."},
+	{"x", ""},
+	{"x", "."},
+	{"x", ".."},
+	{"x", "x"},
+	{"x", "x."},
+	{"x", ".x"},
+	{"x", ".x."},
+	{".x", ""},
+	{".x", "."},
+	{".x", ".."},
+	{".x", "x"},
+	{".x", "x."},
+	{".x", ".x"},
+	{".x", ".x."},
+	{"x.", ""},
+	{"x.", "."},
+	{"x.", ".."},
+	{"x.", "x"},
+	{"x.", "x."},
+	{"x.", ".x"},
+	{"x.", ".x."},
+	{"com", ""},
+	{"com", "m"},
+	{"com", "om"},
+	{"com", "com"},
+	{"com", ".com"},
+	{"com", "x.com"},
+	{"com", "xcom"},
+	{"com", "xorg"},
+	{"com", "org"},
+	{"com", "rg"},
+	{"foo.com", ""},
+	{"foo.com", "m"},
+	{"foo.com", "om"},
+	{"foo.com", "com"},
+	{"foo.com", ".com"},
+	{"foo.com", "o.com"},
+	{"foo.com", "oo.com"},
+	{"foo.com", "foo.com"},
+	{"foo.com", ".foo.com"},
+	{"foo.com", "x.foo.com"},
+	{"foo.com", "xfoo.com"},
+	{"foo.com", "xfoo.org"},
+	{"foo.com", "foo.org"},
+	{"foo.com", "oo.org"},
+	{"foo.com", "o.org"},
+	{"foo.com", ".org"},
+	{"foo.com", "org"},
+	{"foo.com", "rg"},
+}
+
+func TestHasDotSuffix(t *testing.T) {
+	for _, tc := range hasDotSuffixTests {
+		got := hasDotSuffix(tc.s, tc.suffix)
+		want := strings.HasSuffix(tc.s, "."+tc.suffix)
+		if got != want {
+			t.Errorf("s=%q, suffix=%q: got %v, want %v", tc.s, tc.suffix, got, want)
+		}
+	}
+}
+
+var canonicalHostTests = map[string]string{
+	"www.example.com":         "www.example.com",
+	"WWW.EXAMPLE.COM":         "www.example.com",
+	"wWw.eXAmple.CoM":         "www.example.com",
+	"www.example.com:80":      "www.example.com",
+	"192.168.0.10":            "192.168.0.10",
+	"192.168.0.5:8080":        "192.168.0.5",
+	"2001:4860:0:2001::68":    "2001:4860:0:2001::68",
+	"[2001:4860:0:::68]:8080": "2001:4860:0:::68",
+	"www.bÃ¼cher.de":           "www.xn--bcher-kva.de",
+	"www.example.com.":        "www.example.com",
+	"[bad.unmatched.bracket:": "error",
+}
+
+func TestCanonicalHost(t *testing.T) {
+	for h, want := range canonicalHostTests {
+		got, err := canonicalHost(h)
+		if want == "error" {
+			if err == nil {
+				t.Errorf("%q: got nil error, want non-nil", h)
+			}
+			continue
+		}
+		if err != nil {
+			t.Errorf("%q: %v", h, err)
+			continue
+		}
+		if got != want {
+			t.Errorf("%q: got %q, want %q", h, got, want)
+			continue
+		}
+	}
+}
+
+var hasPortTests = map[string]bool{
+	"www.example.com":      false,
+	"www.example.com:80":   true,
+	"127.0.0.1":            false,
+	"127.0.0.1:8080":       true,
+	"2001:4860:0:2001::68": false,
+	"[2001::0:::68]:80":    true,
+}
+
+func TestHasPort(t *testing.T) {
+	for host, want := range hasPortTests {
+		if got := hasPort(host); got != want {
+			t.Errorf("%q: got %t, want %t", host, got, want)
+		}
+	}
+}
+
+var jarKeyTests = map[string]string{
+	"foo.www.example.com": "example.com",
+	"www.example.com":     "example.com",
+	"example.com":         "example.com",
+	"com":                 "com",
+	"foo.www.bbc.co.uk":   "bbc.co.uk",
+	"www.bbc.co.uk":       "bbc.co.uk",
+	"bbc.co.uk":           "bbc.co.uk",
+	"co.uk":               "co.uk",
+	"uk":                  "uk",
+	"192.168.0.5":         "192.168.0.5",
+}
+
+func TestJarKey(t *testing.T) {
+	for host, want := range jarKeyTests {
+		if got := jarKey(host, testPSL{}); got != want {
+			t.Errorf("%q: got %q, want %q", host, got, want)
+		}
+	}
+}
+
+var jarKeyNilPSLTests = map[string]string{
+	"foo.www.example.com": "example.com",
+	"www.example.com":     "example.com",
+	"example.com":         "example.com",
+	"com":                 "com",
+	"foo.www.bbc.co.uk":   "co.uk",
+	"www.bbc.co.uk":       "co.uk",
+	"bbc.co.uk":           "co.uk",
+	"co.uk":               "co.uk",
+	"uk":                  "uk",
+	"192.168.0.5":         "192.168.0.5",
+}
+
+func TestJarKeyNilPSL(t *testing.T) {
+	for host, want := range jarKeyNilPSLTests {
+		if got := jarKey(host, nil); got != want {
+			t.Errorf("%q: got %q, want %q", host, got, want)
+		}
+	}
+}
+
+var isIPTests = map[string]bool{
+	"127.0.0.1":            true,
+	"1.2.3.4":              true,
+	"2001:4860:0:2001::68": true,
+	"example.com":          false,
+	"1.1.1.300":            false,
+	"www.foo.bar.net":      false,
+	"123.foo.bar.net":      false,
+}
+
+func TestIsIP(t *testing.T) {
+	for host, want := range isIPTests {
+		if got := isIP(host); got != want {
+			t.Errorf("%q: got %t, want %t", host, got, want)
+		}
+	}
+}
+
+var defaultPathTests = map[string]string{
+	"/":           "/",
+	"/abc":        "/",
+	"/abc/":       "/abc",
+	"/abc/xyz":    "/abc",
+	"/abc/xyz/":   "/abc/xyz",
+	"/a/b/c.html": "/a/b",
+	"":            "/",
+	"strange":     "/",
+	"//":          "/",
+	"/a//b":       "/a/",
+	"/a/./b":      "/a/.",
+	"/a/../b":     "/a/..",
+}
+
+func TestDefaultPath(t *testing.T) {
+	for path, want := range defaultPathTests {
+		if got := defaultPath(path); got != want {
+			t.Errorf("%q: got %q, want %q", path, got, want)
+		}
+	}
+}
+
+var domainAndTypeTests = [...]struct {
+	host         string // host Set-Cookie header was received from
+	domain       string // domain attribute in Set-Cookie header
+	wantDomain   string // expected domain of cookie
+	wantHostOnly bool   // expected host-cookie flag
+	wantErr      error  // expected error
+}{
+	{"www.example.com", "", "www.example.com", true, nil},
+	{"127.0.0.1", "", "127.0.0.1", true, nil},
+	{"2001:4860:0:2001::68", "", "2001:4860:0:2001::68", true, nil},
+	{"www.example.com", "example.com", "example.com", false, nil},
+	{"www.example.com", ".example.com", "example.com", false, nil},
+	{"www.example.com", "www.example.com", "www.example.com", false, nil},
+	{"www.example.com", ".www.example.com", "www.example.com", false, nil},
+	{"foo.sso.example.com", "sso.example.com", "sso.example.com", false, nil},
+	{"bar.co.uk", "bar.co.uk", "bar.co.uk", false, nil},
+	{"foo.bar.co.uk", ".bar.co.uk", "bar.co.uk", false, nil},
+	{"127.0.0.1", "127.0.0.1", "", false, errNoHostname},
+	{"2001:4860:0:2001::68", "2001:4860:0:2001::68", "2001:4860:0:2001::68", false, errNoHostname},
+	{"www.example.com", ".", "", false, errMalformedDomain},
+	{"www.example.com", "..", "", false, errMalformedDomain},
+	{"www.example.com", "other.com", "", false, errIllegalDomain},
+	{"www.example.com", "com", "", false, errIllegalDomain},
+	{"www.example.com", ".com", "", false, errIllegalDomain},
+	{"foo.bar.co.uk", ".co.uk", "", false, errIllegalDomain},
+	{"127.www.0.0.1", "127.0.0.1", "", false, errIllegalDomain},
+	{"com", "", "com", true, nil},
+	{"com", "com", "com", true, nil},
+	{"com", ".com", "com", true, nil},
+	{"co.uk", "", "co.uk", true, nil},
+	{"co.uk", "co.uk", "co.uk", true, nil},
+	{"co.uk", ".co.uk", "co.uk", true, nil},
+}
+
+func TestDomainAndType(t *testing.T) {
+	jar := newTestJar()
+	for _, tc := range domainAndTypeTests {
+		domain, hostOnly, err := jar.domainAndType(tc.host, tc.domain)
+		if err != tc.wantErr {
+			t.Errorf("%q/%q: got %q error, want %q",
+				tc.host, tc.domain, err, tc.wantErr)
+			continue
+		}
+		if err != nil {
+			continue
+		}
+		if domain != tc.wantDomain || hostOnly != tc.wantHostOnly {
+			t.Errorf("%q/%q: got %q/%t want %q/%t",
+				tc.host, tc.domain, domain, hostOnly,
+				tc.wantDomain, tc.wantHostOnly)
+		}
+	}
+}
+
+// expiresIn creates an expires attribute delta seconds from tNow.
+func expiresIn(delta int) string {
+	t := tNow.Add(time.Duration(delta) * time.Second)
+	return "expires=" + t.Format(time.RFC1123)
+}
+
+// mustParseURL parses s to an URL and panics on error.
+func mustParseURL(s string) *url.URL {
+	u, err := url.Parse(s)
+	if err != nil || u.Scheme == "" || u.Host == "" {
+		panic(fmt.Sprintf("Unable to parse URL %s.", s))
+	}
+	return u
+}
+
+// jarTest encapsulates the following actions on a jar:
+//   1. Perform SetCookies with fromURL and the cookies from setCookies.
+//      (Done at time tNow + 0 ms.)
+//   2. Check that the entries in the jar matches content.
+//      (Done at time tNow + 1001 ms.)
+//   3. For each query in tests: Check that Cookies with toURL yields the
+//      cookies in want.
+//      (Query n done at tNow + (n+2)*1001 ms.)
+type jarTest struct {
+	description string   // The description of what this test is supposed to test
+	fromURL     string   // The full URL of the request from which Set-Cookie headers where received
+	setCookies  []string // All the cookies received from fromURL
+	content     string   // The whole (non-expired) content of the jar
+	queries     []query  // Queries to test the Jar.Cookies method
+}
+
+// query contains one test of the cookies returned from Jar.Cookies.
+type query struct {
+	toURL string // the URL in the Cookies call
+	want  string // the expected list of cookies (order matters)
+}
+
+// run runs the jarTest.
+func (test jarTest) run(t *testing.T, jar *Jar) {
+	now := tNow
+
+	// Populate jar with cookies.
+	setCookies := make([]*http.Cookie, len(test.setCookies))
+	for i, cs := range test.setCookies {
+		cookies := (&http.Response{Header: http.Header{"Set-Cookie": {cs}}}).Cookies()
+		if len(cookies) != 1 {
+			panic(fmt.Sprintf("Wrong cookie line %q: %#v", cs, cookies))
+		}
+		setCookies[i] = cookies[0]
+	}
+	jar.setCookies(mustParseURL(test.fromURL), setCookies, now)
+	now = now.Add(1001 * time.Millisecond)
+
+	// Serialize non-expired entries in the form "name1=val1 name2=val2".
+	var cs []string
+	for _, submap := range jar.entries {
+		for _, cookie := range submap {
+			if !cookie.Expires.After(now) {
+				continue
+			}
+			cs = append(cs, cookie.Name+"="+cookie.Value)
+		}
+	}
+	sort.Strings(cs)
+	got := strings.Join(cs, " ")
+
+	// Make sure jar content matches our expectations.
+	if got != test.content {
+		t.Errorf("Test %q Content\ngot  %q\nwant %q",
+			test.description, got, test.content)
+	}
+
+	// Test different calls to Cookies.
+	for i, query := range test.queries {
+		now = now.Add(1001 * time.Millisecond)
+		var s []string
+		for _, c := range jar.cookies(mustParseURL(query.toURL), now) {
+			s = append(s, c.Name+"="+c.Value)
+		}
+		if got := strings.Join(s, " "); got != query.want {
+			t.Errorf("Test %q #%d\ngot  %q\nwant %q", test.description, i, got, query.want)
+		}
+	}
+}
+
+// basicsTests contains fundamental tests. Each jarTest has to be performed on
+// a fresh, empty Jar.
+var basicsTests = [...]jarTest{
+	{
+		"Retrieval of a plain host cookie.",
+		"http://www.host.test/",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", "A=a"},
+			{"http://www.host.test/", "A=a"},
+			{"http://www.host.test/some/path", "A=a"},
+			{"https://www.host.test", "A=a"},
+			{"https://www.host.test/", "A=a"},
+			{"https://www.host.test/some/path", "A=a"},
+			{"ftp://www.host.test", ""},
+			{"ftp://www.host.test/", ""},
+			{"ftp://www.host.test/some/path", ""},
+			{"http://www.other.org", ""},
+			{"http://sibling.host.test", ""},
+			{"http://deep.www.host.test", ""},
+		},
+	},
+	{
+		"Secure cookies are not returned to http.",
+		"http://www.host.test/",
+		[]string{"A=a; secure"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some/path", ""},
+			{"https://www.host.test", "A=a"},
+			{"https://www.host.test/", "A=a"},
+			{"https://www.host.test/some/path", "A=a"},
+		},
+	},
+	{
+		"Explicit path.",
+		"http://www.host.test/",
+		[]string{"A=a; path=/some/path"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some", ""},
+			{"http://www.host.test/some/", ""},
+			{"http://www.host.test/some/path", "A=a"},
+			{"http://www.host.test/some/paths", ""},
+			{"http://www.host.test/some/path/foo", "A=a"},
+			{"http://www.host.test/some/path/foo/", "A=a"},
+		},
+	},
+	{
+		"Implicit path #1: path is a directory.",
+		"http://www.host.test/some/path/",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some", ""},
+			{"http://www.host.test/some/", ""},
+			{"http://www.host.test/some/path", "A=a"},
+			{"http://www.host.test/some/paths", ""},
+			{"http://www.host.test/some/path/foo", "A=a"},
+			{"http://www.host.test/some/path/foo/", "A=a"},
+		},
+	},
+	{
+		"Implicit path #2: path is not a directory.",
+		"http://www.host.test/some/path/index.html",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", ""},
+			{"http://www.host.test/", ""},
+			{"http://www.host.test/some", ""},
+			{"http://www.host.test/some/", ""},
+			{"http://www.host.test/some/path", "A=a"},
+			{"http://www.host.test/some/paths", ""},
+			{"http://www.host.test/some/path/foo", "A=a"},
+			{"http://www.host.test/some/path/foo/", "A=a"},
+		},
+	},
+	{
+		"Implicit path #3: no path in URL at all.",
+		"http://www.host.test",
+		[]string{"A=a"},
+		"A=a",
+		[]query{
+			{"http://www.host.test", "A=a"},
+			{"http://www.host.test/", "A=a"},
+			{"http://www.host.test/some/path", "A=a"},
+		},
+	},
+	{
+		"Cookies are sorted by path length.",
+		"http://www.host.test/",
+		[]string{
+			"A=a; path=/foo/bar",
+			"B=b; path=/foo/bar/baz/qux",
+			"C=c; path=/foo/bar/baz",
+			"D=d; path=/foo"},
+		"A=a B=b C=c D=d",
+		[]query{
+			{"http://www.host.test/foo/bar/baz/qux", "B=b C=c A=a D=d"},
+			{"http://www.host.test/foo/bar/baz/", "C=c A=a D=d"},
+			{"http://www.host.test/foo/bar", "A=a D=d"},
+		},
+	},
+	{
+		"Creation time determines sorting on same length paths.",
+		"http://www.host.test/",
+		[]string{
+			"A=a; path=/foo/bar",
+			"X=x; path=/foo/bar",
+			"Y=y; path=/foo/bar/baz/qux",
+			"B=b; path=/foo/bar/baz/qux",
+			"C=c; path=/foo/bar/baz",
+			"W=w; path=/foo/bar/baz",
+			"Z=z; path=/foo",
+			"D=d; path=/foo"},
+		"A=a B=b C=c D=d W=w X=x Y=y Z=z",
+		[]query{
+			{"http://www.host.test/foo/bar/baz/qux", "Y=y B=b C=c W=w A=a X=x Z=z D=d"},
+			{"http://www.host.test/foo/bar/baz/", "C=c W=w A=a X=x Z=z D=d"},
+			{"http://www.host.test/foo/bar", "A=a X=x Z=z D=d"},
+		},
+	},
+	{
+		"Sorting of same-name cookies.",
+		"http://www.host.test/",
+		[]string{
+			"A=1; path=/",
+			"A=2; path=/path",
+			"A=3; path=/quux",
+			"A=4; path=/path/foo",
+			"A=5; domain=.host.test; path=/path",
+			"A=6; domain=.host.test; path=/quux",
+			"A=7; domain=.host.test; path=/path/foo",
+		},
+		"A=1 A=2 A=3 A=4 A=5 A=6 A=7",
+		[]query{
+			{"http://www.host.test/path", "A=2 A=5 A=1"},
+			{"http://www.host.test/path/foo", "A=4 A=7 A=2 A=5 A=1"},
+		},
+	},
+	{
+		"Disallow domain cookie on public suffix.",
+		"http://www.bbc.co.uk",
+		[]string{
+			"a=1",
+			"b=2; domain=co.uk",
+		},
+		"a=1",
+		[]query{{"http://www.bbc.co.uk", "a=1"}},
+	},
+	{
+		"Host cookie on IP.",
+		"http://192.168.0.10",
+		[]string{"a=1"},
+		"a=1",
+		[]query{{"http://192.168.0.10", "a=1"}},
+	},
+	{
+		"Port is ignored #1.",
+		"http://www.host.test/",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://www.host.test:8080/", "a=1"},
+		},
+	},
+	{
+		"Port is ignored #2.",
+		"http://www.host.test:8080/",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://www.host.test:8080/", "a=1"},
+			{"http://www.host.test:1234/", "a=1"},
+		},
+	},
+}
+
+func TestBasics(t *testing.T) {
+	for _, test := range basicsTests {
+		jar := newTestJar()
+		test.run(t, jar)
+	}
+}
+
+// updateAndDeleteTests contains jarTests which must be performed on the same
+// Jar.
+var updateAndDeleteTests = [...]jarTest{
+	{
+		"Set initial cookies.",
+		"http://www.host.test",
+		[]string{
+			"a=1",
+			"b=2; secure",
+			"c=3; httponly",
+			"d=4; secure; httponly"},
+		"a=1 b=2 c=3 d=4",
+		[]query{
+			{"http://www.host.test", "a=1 c=3"},
+			{"https://www.host.test", "a=1 b=2 c=3 d=4"},
+		},
+	},
+	{
+		"Update value via http.",
+		"http://www.host.test",
+		[]string{
+			"a=w",
+			"b=x; secure",
+			"c=y; httponly",
+			"d=z; secure; httponly"},
+		"a=w b=x c=y d=z",
+		[]query{
+			{"http://www.host.test", "a=w c=y"},
+			{"https://www.host.test", "a=w b=x c=y d=z"},
+		},
+	},
+	{
+		"Clear Secure flag from a http.",
+		"http://www.host.test/",
+		[]string{
+			"b=xx",
+			"d=zz; httponly"},
+		"a=w b=xx c=y d=zz",
+		[]query{{"http://www.host.test", "a=w b=xx c=y d=zz"}},
+	},
+	{
+		"Delete all.",
+		"http://www.host.test/",
+		[]string{
+			"a=1; max-Age=-1",                    // delete via MaxAge
+			"b=2; " + expiresIn(-10),             // delete via Expires
+			"c=2; max-age=-1; " + expiresIn(-10), // delete via both
+			"d=4; max-age=-1; " + expiresIn(10)}, // MaxAge takes precedence
+		"",
+		[]query{{"http://www.host.test", ""}},
+	},
+	{
+		"Refill #1.",
+		"http://www.host.test",
+		[]string{
+			"A=1",
+			"A=2; path=/foo",
+			"A=3; domain=.host.test",
+			"A=4; path=/foo; domain=.host.test"},
+		"A=1 A=2 A=3 A=4",
+		[]query{{"http://www.host.test/foo", "A=2 A=4 A=1 A=3"}},
+	},
+	{
+		"Refill #2.",
+		"http://www.google.com",
+		[]string{
+			"A=6",
+			"A=7; path=/foo",
+			"A=8; domain=.google.com",
+			"A=9; path=/foo; domain=.google.com"},
+		"A=1 A=2 A=3 A=4 A=6 A=7 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=4 A=1 A=3"},
+			{"http://www.google.com/foo", "A=7 A=9 A=6 A=8"},
+		},
+	},
+	{
+		"Delete A7.",
+		"http://www.google.com",
+		[]string{"A=; path=/foo; max-age=-1"},
+		"A=1 A=2 A=3 A=4 A=6 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=4 A=1 A=3"},
+			{"http://www.google.com/foo", "A=9 A=6 A=8"},
+		},
+	},
+	{
+		"Delete A4.",
+		"http://www.host.test",
+		[]string{"A=; path=/foo; domain=host.test; max-age=-1"},
+		"A=1 A=2 A=3 A=6 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1 A=3"},
+			{"http://www.google.com/foo", "A=9 A=6 A=8"},
+		},
+	},
+	{
+		"Delete A6.",
+		"http://www.google.com",
+		[]string{"A=; max-age=-1"},
+		"A=1 A=2 A=3 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1 A=3"},
+			{"http://www.google.com/foo", "A=9 A=8"},
+		},
+	},
+	{
+		"Delete A3.",
+		"http://www.host.test",
+		[]string{"A=; domain=host.test; max-age=-1"},
+		"A=1 A=2 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1"},
+			{"http://www.google.com/foo", "A=9 A=8"},
+		},
+	},
+	{
+		"No cross-domain delete.",
+		"http://www.host.test",
+		[]string{
+			"A=; domain=google.com; max-age=-1",
+			"A=; path=/foo; domain=google.com; max-age=-1"},
+		"A=1 A=2 A=8 A=9",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1"},
+			{"http://www.google.com/foo", "A=9 A=8"},
+		},
+	},
+	{
+		"Delete A8 and A9.",
+		"http://www.google.com",
+		[]string{
+			"A=; domain=google.com; max-age=-1",
+			"A=; path=/foo; domain=google.com; max-age=-1"},
+		"A=1 A=2",
+		[]query{
+			{"http://www.host.test/foo", "A=2 A=1"},
+			{"http://www.google.com/foo", ""},
+		},
+	},
+}
+
+func TestUpdateAndDelete(t *testing.T) {
+	jar := newTestJar()
+	for _, test := range updateAndDeleteTests {
+		test.run(t, jar)
+	}
+}
+
+func TestExpiration(t *testing.T) {
+	jar := newTestJar()
+	jarTest{
+		"Expiration.",
+		"http://www.host.test",
+		[]string{
+			"a=1",
+			"b=2; max-age=3",
+			"c=3; " + expiresIn(3),
+			"d=4; max-age=5",
+			"e=5; " + expiresIn(5),
+			"f=6; max-age=100",
+		},
+		"a=1 b=2 c=3 d=4 e=5 f=6", // executed at t0 + 1001 ms
+		[]query{
+			{"http://www.host.test", "a=1 b=2 c=3 d=4 e=5 f=6"}, // t0 + 2002 ms
+			{"http://www.host.test", "a=1 d=4 e=5 f=6"},         // t0 + 3003 ms
+			{"http://www.host.test", "a=1 d=4 e=5 f=6"},         // t0 + 4004 ms
+			{"http://www.host.test", "a=1 f=6"},                 // t0 + 5005 ms
+			{"http://www.host.test", "a=1 f=6"},                 // t0 + 6006 ms
+		},
+	}.run(t, jar)
+}
+
+//
+// Tests derived from Chromium's cookie_store_unittest.h.
+//
+
+// See http://src.chromium.org/viewvc/chrome/trunk/src/net/cookies/cookie_store_unittest.h?revision=159685&content-type=text/plain
+// Some of the original tests are in a bad condition (e.g.
+// DomainWithTrailingDotTest) or are not RFC 6265 conforming (e.g.
+// TestNonDottedAndTLD #1 and #6) and have not been ported.
+
+// chromiumBasicsTests contains fundamental tests. Each jarTest has to be
+// performed on a fresh, empty Jar.
+var chromiumBasicsTests = [...]jarTest{
+	{
+		"DomainWithTrailingDotTest.",
+		"http://www.google.com/",
+		[]string{
+			"a=1; domain=.www.google.com.",
+			"b=2; domain=.www.google.com.."},
+		"",
+		[]query{
+			{"http://www.google.com", ""},
+		},
+	},
+	{
+		"ValidSubdomainTest #1.",
+		"http://a.b.c.d.com",
+		[]string{
+			"a=1; domain=.a.b.c.d.com",
+			"b=2; domain=.b.c.d.com",
+			"c=3; domain=.c.d.com",
+			"d=4; domain=.d.com"},
+		"a=1 b=2 c=3 d=4",
+		[]query{
+			{"http://a.b.c.d.com", "a=1 b=2 c=3 d=4"},
+			{"http://b.c.d.com", "b=2 c=3 d=4"},
+			{"http://c.d.com", "c=3 d=4"},
+			{"http://d.com", "d=4"},
+		},
+	},
+	{
+		"ValidSubdomainTest #2.",
+		"http://a.b.c.d.com",
+		[]string{
+			"a=1; domain=.a.b.c.d.com",
+			"b=2; domain=.b.c.d.com",
+			"c=3; domain=.c.d.com",
+			"d=4; domain=.d.com",
+			"X=bcd; domain=.b.c.d.com",
+			"X=cd; domain=.c.d.com"},
+		"X=bcd X=cd a=1 b=2 c=3 d=4",
+		[]query{
+			{"http://b.c.d.com", "b=2 c=3 d=4 X=bcd X=cd"},
+			{"http://c.d.com", "c=3 d=4 X=cd"},
+		},
+	},
+	{
+		"InvalidDomainTest #1.",
+		"http://foo.bar.com",
+		[]string{
+			"a=1; domain=.yo.foo.bar.com",
+			"b=2; domain=.foo.com",
+			"c=3; domain=.bar.foo.com",
+			"d=4; domain=.foo.bar.com.net",
+			"e=5; domain=ar.com",
+			"f=6; domain=.",
+			"g=7; domain=/",
+			"h=8; domain=http://foo.bar.com",
+			"i=9; domain=..foo.bar.com",
+			"j=10; domain=..bar.com",
+			"k=11; domain=.foo.bar.com?blah",
+			"l=12; domain=.foo.bar.com/blah",
+			"m=12; domain=.foo.bar.com:80",
+			"n=14; domain=.foo.bar.com:",
+			"o=15; domain=.foo.bar.com#sup",
+		},
+		"", // Jar is empty.
+		[]query{{"http://foo.bar.com", ""}},
+	},
+	{
+		"InvalidDomainTest #2.",
+		"http://foo.com.com",
+		[]string{"a=1; domain=.foo.com.com.com"},
+		"",
+		[]query{{"http://foo.bar.com", ""}},
+	},
+	{
+		"DomainWithoutLeadingDotTest #1.",
+		"http://manage.hosted.filefront.com",
+		[]string{"a=1; domain=filefront.com"},
+		"a=1",
+		[]query{{"http://www.filefront.com", "a=1"}},
+	},
+	{
+		"DomainWithoutLeadingDotTest #2.",
+		"http://www.google.com",
+		[]string{"a=1; domain=www.google.com"},
+		"a=1",
+		[]query{
+			{"http://www.google.com", "a=1"},
+			{"http://sub.www.google.com", "a=1"},
+			{"http://something-else.com", ""},
+		},
+	},
+	{
+		"CaseInsensitiveDomainTest.",
+		"http://www.google.com",
+		[]string{
+			"a=1; domain=.GOOGLE.COM",
+			"b=2; domain=.www.gOOgLE.coM"},
+		"a=1 b=2",
+		[]query{{"http://www.google.com", "a=1 b=2"}},
+	},
+	{
+		"TestIpAddress #1.",
+		"http://1.2.3.4/foo",
+		[]string{"a=1; path=/"},
+		"a=1",
+		[]query{{"http://1.2.3.4/foo", "a=1"}},
+	},
+	{
+		"TestIpAddress #2.",
+		"http://1.2.3.4/foo",
+		[]string{
+			"a=1; domain=.1.2.3.4",
+			"b=2; domain=.3.4"},
+		"",
+		[]query{{"http://1.2.3.4/foo", ""}},
+	},
+	{
+		"TestIpAddress #3.",
+		"http://1.2.3.4/foo",
+		[]string{"a=1; domain=1.2.3.4"},
+		"",
+		[]query{{"http://1.2.3.4/foo", ""}},
+	},
+	{
+		"TestNonDottedAndTLD #2.",
+		"http://com./index.html",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://com./index.html", "a=1"},
+			{"http://no-cookies.com./index.html", ""},
+		},
+	},
+	{
+		"TestNonDottedAndTLD #3.",
+		"http://a.b",
+		[]string{
+			"a=1; domain=.b",
+			"b=2; domain=b"},
+		"",
+		[]query{{"http://bar.foo", ""}},
+	},
+	{
+		"TestNonDottedAndTLD #4.",
+		"http://google.com",
+		[]string{
+			"a=1; domain=.com",
+			"b=2; domain=com"},
+		"",
+		[]query{{"http://google.com", ""}},
+	},
+	{
+		"TestNonDottedAndTLD #5.",
+		"http://google.co.uk",
+		[]string{
+			"a=1; domain=.co.uk",
+			"b=2; domain=.uk"},
+		"",
+		[]query{
+			{"http://google.co.uk", ""},
+			{"http://else.co.com", ""},
+			{"http://else.uk", ""},
+		},
+	},
+	{
+		"TestHostEndsWithDot.",
+		"http://www.google.com",
+		[]string{
+			"a=1",
+			"b=2; domain=.www.google.com."},
+		"a=1",
+		[]query{{"http://www.google.com", "a=1"}},
+	},
+	{
+		"PathTest",
+		"http://www.google.izzle",
+		[]string{"a=1; path=/wee"},
+		"a=1",
+		[]query{
+			{"http://www.google.izzle/wee", "a=1"},
+			{"http://www.google.izzle/wee/", "a=1"},
+			{"http://www.google.izzle/wee/war", "a=1"},
+			{"http://www.google.izzle/wee/war/more/more", "a=1"},
+			{"http://www.google.izzle/weehee", ""},
+			{"http://www.google.izzle/", ""},
+		},
+	},
+}
+
+func TestChromiumBasics(t *testing.T) {
+	for _, test := range chromiumBasicsTests {
+		jar := newTestJar()
+		test.run(t, jar)
+	}
+}
+
+// chromiumDomainTests contains jarTests which must be executed all on the
+// same Jar.
+var chromiumDomainTests = [...]jarTest{
+	{
+		"Fill #1.",
+		"http://www.google.izzle",
+		[]string{"A=B"},
+		"A=B",
+		[]query{{"http://www.google.izzle", "A=B"}},
+	},
+	{
+		"Fill #2.",
+		"http://www.google.izzle",
+		[]string{"C=D; domain=.google.izzle"},
+		"A=B C=D",
+		[]query{{"http://www.google.izzle", "A=B C=D"}},
+	},
+	{
+		"Verify A is a host cookie and not accessible from subdomain.",
+		"http://unused.nil",
+		[]string{},
+		"A=B C=D",
+		[]query{{"http://foo.www.google.izzle", "C=D"}},
+	},
+	{
+		"Verify domain cookies are found on proper domain.",
+		"http://www.google.izzle",
+		[]string{"E=F; domain=.www.google.izzle"},
+		"A=B C=D E=F",
+		[]query{{"http://www.google.izzle", "A=B C=D E=F"}},
+	},
+	{
+		"Leading dots in domain attributes are optional.",
+		"http://www.google.izzle",
+		[]string{"G=H; domain=www.google.izzle"},
+		"A=B C=D E=F G=H",
+		[]query{{"http://www.google.izzle", "A=B C=D E=F G=H"}},
+	},
+	{
+		"Verify domain enforcement works #1.",
+		"http://www.google.izzle",
+		[]string{"K=L; domain=.bar.www.google.izzle"},
+		"A=B C=D E=F G=H",
+		[]query{{"http://bar.www.google.izzle", "C=D E=F G=H"}},
+	},
+	{
+		"Verify domain enforcement works #2.",
+		"http://unused.nil",
+		[]string{},
+		"A=B C=D E=F G=H",
+		[]query{{"http://www.google.izzle", "A=B C=D E=F G=H"}},
+	},
+}
+
+func TestChromiumDomain(t *testing.T) {
+	jar := newTestJar()
+	for _, test := range chromiumDomainTests {
+		test.run(t, jar)
+	}
+
+}
+
+// chromiumDeletionTests must be performed all on the same Jar.
+var chromiumDeletionTests = [...]jarTest{
+	{
+		"Create session cookie a1.",
+		"http://www.google.com",
+		[]string{"a=1"},
+		"a=1",
+		[]query{{"http://www.google.com", "a=1"}},
+	},
+	{
+		"Delete sc a1 via MaxAge.",
+		"http://www.google.com",
+		[]string{"a=1; max-age=-1"},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+	{
+		"Create session cookie b2.",
+		"http://www.google.com",
+		[]string{"b=2"},
+		"b=2",
+		[]query{{"http://www.google.com", "b=2"}},
+	},
+	{
+		"Delete sc b2 via Expires.",
+		"http://www.google.com",
+		[]string{"b=2; " + expiresIn(-10)},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+	{
+		"Create persistent cookie c3.",
+		"http://www.google.com",
+		[]string{"c=3; max-age=3600"},
+		"c=3",
+		[]query{{"http://www.google.com", "c=3"}},
+	},
+	{
+		"Delete pc c3 via MaxAge.",
+		"http://www.google.com",
+		[]string{"c=3; max-age=-1"},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+	{
+		"Create persistent cookie d4.",
+		"http://www.google.com",
+		[]string{"d=4; max-age=3600"},
+		"d=4",
+		[]query{{"http://www.google.com", "d=4"}},
+	},
+	{
+		"Delete pc d4 via Expires.",
+		"http://www.google.com",
+		[]string{"d=4; " + expiresIn(-10)},
+		"",
+		[]query{{"http://www.google.com", ""}},
+	},
+}
+
+func TestChromiumDeletion(t *testing.T) {
+	jar := newTestJar()
+	for _, test := range chromiumDeletionTests {
+		test.run(t, jar)
+	}
+}
+
+// domainHandlingTests tests and documents the rules for domain handling.
+// Each test must be performed on an empty new Jar.
+var domainHandlingTests = [...]jarTest{
+	{
+		"Host cookie",
+		"http://www.host.test",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://host.test", ""},
+			{"http://bar.host.test", ""},
+			{"http://foo.www.host.test", ""},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie #1",
+		"http://www.host.test",
+		[]string{"a=1; domain=host.test"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://host.test", "a=1"},
+			{"http://bar.host.test", "a=1"},
+			{"http://foo.www.host.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie #2",
+		"http://www.host.test",
+		[]string{"a=1; domain=.host.test"},
+		"a=1",
+		[]query{
+			{"http://www.host.test", "a=1"},
+			{"http://host.test", "a=1"},
+			{"http://bar.host.test", "a=1"},
+			{"http://foo.www.host.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Host cookie on IDNA domain #1",
+		"http://www.bÃ¼cher.test",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", ""},
+			{"http://xn--bcher-kva.test", ""},
+			{"http://bar.bÃ¼cher.test", ""},
+			{"http://bar.xn--bcher-kva.test", ""},
+			{"http://foo.www.bÃ¼cher.test", ""},
+			{"http://foo.www.xn--bcher-kva.test", ""},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Host cookie on IDNA domain #2",
+		"http://www.xn--bcher-kva.test",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", ""},
+			{"http://xn--bcher-kva.test", ""},
+			{"http://bar.bÃ¼cher.test", ""},
+			{"http://bar.xn--bcher-kva.test", ""},
+			{"http://foo.www.bÃ¼cher.test", ""},
+			{"http://foo.www.xn--bcher-kva.test", ""},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie on IDNA domain #1",
+		"http://www.bÃ¼cher.test",
+		[]string{"a=1; domain=xn--bcher-kva.test"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", "a=1"},
+			{"http://xn--bcher-kva.test", "a=1"},
+			{"http://bar.bÃ¼cher.test", "a=1"},
+			{"http://bar.xn--bcher-kva.test", "a=1"},
+			{"http://foo.www.bÃ¼cher.test", "a=1"},
+			{"http://foo.www.xn--bcher-kva.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Domain cookie on IDNA domain #2",
+		"http://www.xn--bcher-kva.test",
+		[]string{"a=1; domain=xn--bcher-kva.test"},
+		"a=1",
+		[]query{
+			{"http://www.bÃ¼cher.test", "a=1"},
+			{"http://www.xn--bcher-kva.test", "a=1"},
+			{"http://bÃ¼cher.test", "a=1"},
+			{"http://xn--bcher-kva.test", "a=1"},
+			{"http://bar.bÃ¼cher.test", "a=1"},
+			{"http://bar.xn--bcher-kva.test", "a=1"},
+			{"http://foo.www.bÃ¼cher.test", "a=1"},
+			{"http://foo.www.xn--bcher-kva.test", "a=1"},
+			{"http://other.test", ""},
+			{"http://test", ""},
+		},
+	},
+	{
+		"Host cookie on TLD.",
+		"http://com",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://com", "a=1"},
+			{"http://any.com", ""},
+			{"http://any.test", ""},
+		},
+	},
+	{
+		"Domain cookie on TLD becomes a host cookie.",
+		"http://com",
+		[]string{"a=1; domain=com"},
+		"a=1",
+		[]query{
+			{"http://com", "a=1"},
+			{"http://any.com", ""},
+			{"http://any.test", ""},
+		},
+	},
+	{
+		"Host cookie on public suffix.",
+		"http://co.uk",
+		[]string{"a=1"},
+		"a=1",
+		[]query{
+			{"http://co.uk", "a=1"},
+			{"http://uk", ""},
+			{"http://some.co.uk", ""},
+			{"http://foo.some.co.uk", ""},
+			{"http://any.uk", ""},
+		},
+	},
+	{
+		"Domain cookie on public suffix is ignored.",
+		"http://some.co.uk",
+		[]string{"a=1; domain=co.uk"},
+		"",
+		[]query{
+			{"http://co.uk", ""},
+			{"http://uk", ""},
+			{"http://some.co.uk", ""},
+			{"http://foo.some.co.uk", ""},
+			{"http://any.uk", ""},
+		},
+	},
+}
+
+func TestDomainHandling(t *testing.T) {
+	for _, test := range domainHandlingTests {
+		jar := newTestJar()
+		test.run(t, jar)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode.go gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,159 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cookiejar
+
+// This file implements the Punycode algorithm from RFC 3492.
+
+import (
+	"fmt"
+	"strings"
+	"unicode/utf8"
+)
+
+// These parameter values are specified in section 5.
+//
+// All computation is done with int32s, so that overflow behavior is identical
+// regardless of whether int is 32-bit or 64-bit.
+const (
+	base        int32 = 36
+	damp        int32 = 700
+	initialBias int32 = 72
+	initialN    int32 = 128
+	skew        int32 = 38
+	tmax        int32 = 26
+	tmin        int32 = 1
+)
+
+// encode encodes a string as specified in section 6.3 and prepends prefix to
+// the result.
+//
+// The "while h < length(input)" line in the specification becomes "for
+// remaining != 0" in the Go code, because len(s) in Go is in bytes, not runes.
+func encode(prefix, s string) (string, error) {
+	output := make([]byte, len(prefix), len(prefix)+1+2*len(s))
+	copy(output, prefix)
+	delta, n, bias := int32(0), initialN, initialBias
+	b, remaining := int32(0), int32(0)
+	for _, r := range s {
+		if r < 0x80 {
+			b++
+			output = append(output, byte(r))
+		} else {
+			remaining++
+		}
+	}
+	h := b
+	if b > 0 {
+		output = append(output, '-')
+	}
+	for remaining != 0 {
+		m := int32(0x7fffffff)
+		for _, r := range s {
+			if m > r && r >= n {
+				m = r
+			}
+		}
+		delta += (m - n) * (h + 1)
+		if delta < 0 {
+			return "", fmt.Errorf("cookiejar: invalid label %q", s)
+		}
+		n = m
+		for _, r := range s {
+			if r < n {
+				delta++
+				if delta < 0 {
+					return "", fmt.Errorf("cookiejar: invalid label %q", s)
+				}
+				continue
+			}
+			if r > n {
+				continue
+			}
+			q := delta
+			for k := base; ; k += base {
+				t := k - bias
+				if t < tmin {
+					t = tmin
+				} else if t > tmax {
+					t = tmax
+				}
+				if q < t {
+					break
+				}
+				output = append(output, encodeDigit(t+(q-t)%(base-t)))
+				q = (q - t) / (base - t)
+			}
+			output = append(output, encodeDigit(q))
+			bias = adapt(delta, h+1, h == b)
+			delta = 0
+			h++
+			remaining--
+		}
+		delta++
+		n++
+	}
+	return string(output), nil
+}
+
+func encodeDigit(digit int32) byte {
+	switch {
+	case 0 <= digit && digit < 26:
+		return byte(digit + 'a')
+	case 26 <= digit && digit < 36:
+		return byte(digit + ('0' - 26))
+	}
+	panic("cookiejar: internal error in punycode encoding")
+}
+
+// adapt is the bias adaptation function specified in section 6.1.
+func adapt(delta, numPoints int32, firstTime bool) int32 {
+	if firstTime {
+		delta /= damp
+	} else {
+		delta /= 2
+	}
+	delta += delta / numPoints
+	k := int32(0)
+	for delta > ((base-tmin)*tmax)/2 {
+		delta /= base - tmin
+		k += base
+	}
+	return k + (base-tmin+1)*delta/(delta+skew)
+}
+
+// Strictly speaking, the remaining code below deals with IDNA (RFC 5890 and
+// friends) and not Punycode (RFC 3492) per se.
+
+// acePrefix is the ASCII Compatible Encoding prefix.
+const acePrefix = "xn--"
+
+// toASCII converts a domain or domain label to its ASCII form. For example,
+// toASCII("bÃ¼cher.example.com") is "xn--bcher-kva.example.com", and
+// toASCII("golang") is "golang".
+func toASCII(s string) (string, error) {
+	if ascii(s) {
+		return s, nil
+	}
+	labels := strings.Split(s, ".")
+	for i, label := range labels {
+		if !ascii(label) {
+			a, err := encode(acePrefix, label)
+			if err != nil {
+				return "", err
+			}
+			labels[i] = a
+		}
+	}
+	return strings.Join(labels, "."), nil
+}
+
+func ascii(s string) bool {
+	for i := 0; i < len(s); i++ {
+		if s[i] >= utf8.RuneSelf {
+			return false
+		}
+	}
+	return true
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode_test.go gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/cookiejar/punycode_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/cookiejar/punycode_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,161 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cookiejar
+
+import (
+	"testing"
+)
+
+var punycodeTestCases = [...]struct {
+	s, encoded string
+}{
+	{"", ""},
+	{"-", "--"},
+	{"-a", "-a-"},
+	{"-a-", "-a--"},
+	{"a", "a-"},
+	{"a-", "a--"},
+	{"a-b", "a-b-"},
+	{"books", "books-"},
+	{"bÃ¼cher", "bcher-kva"},
+	{"Helloä¸–ç•Œ", "Hello-ck1hg65u"},
+	{"Ã¼", "tda"},
+	{"Ã¼Ã½", "tdac"},
+
+	// The test cases below come from RFC 3492 section 7.1 with Errata 3026.
+	{
+		// (A) Arabic (Egyptian).
+		"\u0644\u064A\u0647\u0645\u0627\u0628\u062A\u0643\u0644" +
+			"\u0645\u0648\u0634\u0639\u0631\u0628\u064A\u061F",
+		"egbpdaj6bu4bxfgehfvwxn",
+	},
+	{
+		// (B) Chinese (simplified).
+		"\u4ED6\u4EEC\u4E3A\u4EC0\u4E48\u4E0D\u8BF4\u4E2D\u6587",
+		"ihqwcrb4cv8a8dqg056pqjye",
+	},
+	{
+		// (C) Chinese (traditional).
+		"\u4ED6\u5011\u7232\u4EC0\u9EBD\u4E0D\u8AAA\u4E2D\u6587",
+		"ihqwctvzc91f659drss3x8bo0yb",
+	},
+	{
+		// (D) Czech.
+		"\u0050\u0072\u006F\u010D\u0070\u0072\u006F\u0073\u0074" +
+			"\u011B\u006E\u0065\u006D\u006C\u0075\u0076\u00ED\u010D" +
+			"\u0065\u0073\u006B\u0079",
+		"Proprostnemluvesky-uyb24dma41a",
+	},
+	{
+		// (E) Hebrew.
+		"\u05DC\u05DE\u05D4\u05D4\u05DD\u05E4\u05E9\u05D5\u05D8" +
+			"\u05DC\u05D0\u05DE\u05D3\u05D1\u05E8\u05D9\u05DD\u05E2" +
+			"\u05D1\u05E8\u05D9\u05EA",
+		"4dbcagdahymbxekheh6e0a7fei0b",
+	},
+	{
+		// (F) Hindi (Devanagari).
+		"\u092F\u0939\u0932\u094B\u0917\u0939\u093F\u0928\u094D" +
+			"\u0926\u0940\u0915\u094D\u092F\u094B\u0902\u0928\u0939" +
+			"\u0940\u0902\u092C\u094B\u0932\u0938\u0915\u0924\u0947" +
+			"\u0939\u0948\u0902",
+		"i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd",
+	},
+	{
+		// (G) Japanese (kanji and hiragana).
+		"\u306A\u305C\u307F\u3093\u306A\u65E5\u672C\u8A9E\u3092" +
+			"\u8A71\u3057\u3066\u304F\u308C\u306A\u3044\u306E\u304B",
+		"n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa",
+	},
+	{
+		// (H) Korean (Hangul syllables).
+		"\uC138\uACC4\uC758\uBAA8\uB4E0\uC0AC\uB78C\uB4E4\uC774" +
+			"\uD55C\uAD6D\uC5B4\uB97C\uC774\uD574\uD55C\uB2E4\uBA74" +
+			"\uC5BC\uB9C8\uB098\uC88B\uC744\uAE4C",
+		"989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5j" +
+			"psd879ccm6fea98c",
+	},
+	{
+		// (I) Russian (Cyrillic).
+		"\u043F\u043E\u0447\u0435\u043C\u0443\u0436\u0435\u043E" +
+			"\u043D\u0438\u043D\u0435\u0433\u043E\u0432\u043E\u0440" +
+			"\u044F\u0442\u043F\u043E\u0440\u0443\u0441\u0441\u043A" +
+			"\u0438",
+		"b1abfaaepdrnnbgefbadotcwatmq2g4l",
+	},
+	{
+		// (J) Spanish.
+		"\u0050\u006F\u0072\u0071\u0075\u00E9\u006E\u006F\u0070" +
+			"\u0075\u0065\u0064\u0065\u006E\u0073\u0069\u006D\u0070" +
+			"\u006C\u0065\u006D\u0065\u006E\u0074\u0065\u0068\u0061" +
+			"\u0062\u006C\u0061\u0072\u0065\u006E\u0045\u0073\u0070" +
+			"\u0061\u00F1\u006F\u006C",
+		"PorqunopuedensimplementehablarenEspaol-fmd56a",
+	},
+	{
+		// (K) Vietnamese.
+		"\u0054\u1EA1\u0069\u0073\u0061\u006F\u0068\u1ECD\u006B" +
+			"\u0068\u00F4\u006E\u0067\u0074\u0068\u1EC3\u0063\u0068" +
+			"\u1EC9\u006E\u00F3\u0069\u0074\u0069\u1EBF\u006E\u0067" +
+			"\u0056\u0069\u1EC7\u0074",
+		"TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g",
+	},
+	{
+		// (L) 3<nen>B<gumi><kinpachi><sensei>.
+		"\u0033\u5E74\u0042\u7D44\u91D1\u516B\u5148\u751F",
+		"3B-ww4c5e180e575a65lsy2b",
+	},
+	{
+		// (M) <amuro><namie>-with-SUPER-MONKEYS.
+		"\u5B89\u5BA4\u5948\u7F8E\u6075\u002D\u0077\u0069\u0074" +
+			"\u0068\u002D\u0053\u0055\u0050\u0045\u0052\u002D\u004D" +
+			"\u004F\u004E\u004B\u0045\u0059\u0053",
+		"-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n",
+	},
+	{
+		// (N) Hello-Another-Way-<sorezore><no><basho>.
+		"\u0048\u0065\u006C\u006C\u006F\u002D\u0041\u006E\u006F" +
+			"\u0074\u0068\u0065\u0072\u002D\u0057\u0061\u0079\u002D" +
+			"\u305D\u308C\u305E\u308C\u306E\u5834\u6240",
+		"Hello-Another-Way--fc4qua05auwb3674vfr0b",
+	},
+	{
+		// (O) <hitotsu><yane><no><shita>2.
+		"\u3072\u3068\u3064\u5C4B\u6839\u306E\u4E0B\u0032",
+		"2-u9tlzr9756bt3uc0v",
+	},
+	{
+		// (P) Maji<de>Koi<suru>5<byou><mae>
+		"\u004D\u0061\u006A\u0069\u3067\u004B\u006F\u0069\u3059" +
+			"\u308B\u0035\u79D2\u524D",
+		"MajiKoi5-783gue6qz075azm5e",
+	},
+	{
+		// (Q) <pafii>de<runba>
+		"\u30D1\u30D5\u30A3\u30FC\u0064\u0065\u30EB\u30F3\u30D0",
+		"de-jg4avhby1noc0d",
+	},
+	{
+		// (R) <sono><supiido><de>
+		"\u305D\u306E\u30B9\u30D4\u30FC\u30C9\u3067",
+		"d9juau41awczczp",
+	},
+	{
+		// (S) -> $1.00 <-
+		"\u002D\u003E\u0020\u0024\u0031\u002E\u0030\u0030\u0020" +
+			"\u003C\u002D",
+		"-> $1.00 <--",
+	},
+}
+
+func TestPunycode(t *testing.T) {
+	for _, tc := range punycodeTestCases {
+		if got, err := encode("", tc.s); err != nil {
+			t.Errorf(`encode("", %q): %v`, tc.s, err)
+		} else if got != tc.encoded {
+			t.Errorf(`encode("", %q): got %q, want %q`, tc.s, got, tc.encoded)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/example_test.go gcc-4.8.1/libgo/go/net/http/example_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/example_test.go	2012-10-03 00:27:36.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/http/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -51,6 +51,20 @@
 }
 
 func ExampleFileServer() {
-	// we use StripPrefix so that /tmpfiles/somefile will access /tmp/somefile
+	// Simple static webserver:
+	log.Fatal(http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/share/doc"))))
+}
+
+func ExampleFileServer_stripPrefix() {
+	// To serve a directory on disk (/tmp) under an alternate URL
+	// path (/tmpfiles/), use StripPrefix to modify the request
+	// URL's path before the FileServer sees it:
+	http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
+}
+
+func ExampleStripPrefix() {
+	// To serve a directory on disk (/tmp) under an alternate URL
+	// path (/tmpfiles/), use StripPrefix to modify the request
+	// URL's path before the FileServer sees it:
 	http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/export_test.go gcc-4.8.1/libgo/go/net/http/export_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/export_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/export_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -16,10 +16,16 @@
 	return newLoggingConn(baseName, c)
 }
 
+func (t *Transport) NumPendingRequestsForTesting() int {
+	t.reqMu.Lock()
+	defer t.reqMu.Unlock()
+	return len(t.reqConn)
+}
+
 func (t *Transport) IdleConnKeysForTesting() (keys []string) {
 	keys = make([]string, 0)
-	t.idleLk.Lock()
-	defer t.idleLk.Unlock()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
 	if t.idleConn == nil {
 		return
 	}
@@ -30,8 +36,8 @@
 }
 
 func (t *Transport) IdleConnCountForTesting(cacheKey string) int {
-	t.idleLk.Lock()
-	defer t.idleLk.Unlock()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
 	if t.idleConn == nil {
 		return 0
 	}
@@ -48,3 +54,5 @@
 	}
 	return &timeoutHandler{handler, f, ""}
 }
+
+var DefaultUserAgent = defaultUserAgent
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fcgi/child.go gcc-4.8.1/libgo/go/net/http/fcgi/child.go
--- gcc-4.8.1.orig/libgo/go/net/http/fcgi/child.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/fcgi/child.go	2013-07-16 01:55:04.520470000 -0500
@@ -10,10 +10,12 @@
 	"errors"
 	"fmt"
 	"io"
+	"io/ioutil"
 	"net"
 	"net/http"
 	"net/http/cgi"
 	"os"
+	"strings"
 	"time"
 )
 
@@ -152,20 +154,23 @@
 
 var errCloseConn = errors.New("fcgi: connection should be closed")
 
+var emptyBody = ioutil.NopCloser(strings.NewReader(""))
+
 func (c *child) handleRecord(rec *record) error {
 	req, ok := c.requests[rec.h.Id]
 	if !ok && rec.h.Type != typeBeginRequest && rec.h.Type != typeGetValues {
 		// The spec says to ignore unknown request IDs.
 		return nil
 	}
-	if ok && rec.h.Type == typeBeginRequest {
-		// The server is trying to begin a request with the same ID
-		// as an in-progress request. This is an error.
-		return errors.New("fcgi: received ID that is already in-flight")
-	}
 
 	switch rec.h.Type {
 	case typeBeginRequest:
+		if req != nil {
+			// The server is trying to begin a request with the same ID
+			// as an in-progress request. This is an error.
+			return errors.New("fcgi: received ID that is already in-flight")
+		}
+
 		var br beginRequest
 		if err := br.read(rec.content()); err != nil {
 			return err
@@ -175,6 +180,7 @@
 			return nil
 		}
 		c.requests[rec.h.Id] = newRequest(rec.h.Id, br.flags)
+		return nil
 	case typeParams:
 		// NOTE(eds): Technically a key-value pair can straddle the boundary
 		// between two packets. We buffer until we've received all parameters.
@@ -183,6 +189,7 @@
 			return nil
 		}
 		req.parseParams()
+		return nil
 	case typeStdin:
 		content := rec.content()
 		if req.pw == nil {
@@ -191,6 +198,8 @@
 				// body could be an io.LimitReader, but it shouldn't matter
 				// as long as both sides are behaving.
 				body, req.pw = io.Pipe()
+			} else {
+				body = emptyBody
 			}
 			go c.serveRequest(req, body)
 		}
@@ -201,24 +210,29 @@
 		} else if req.pw != nil {
 			req.pw.Close()
 		}
+		return nil
 	case typeGetValues:
 		values := map[string]string{"FCGI_MPXS_CONNS": "1"}
 		c.conn.writePairs(typeGetValuesResult, 0, values)
+		return nil
 	case typeData:
 		// If the filter role is implemented, read the data stream here.
+		return nil
 	case typeAbortRequest:
+		println("abort")
 		delete(c.requests, rec.h.Id)
 		c.conn.writeEndRequest(rec.h.Id, 0, statusRequestComplete)
 		if !req.keepConn {
 			// connection will close upon return
 			return errCloseConn
 		}
+		return nil
 	default:
 		b := make([]byte, 8)
 		b[0] = byte(rec.h.Type)
 		c.conn.writeRecord(typeUnknownType, 0, b)
+		return nil
 	}
-	return nil
 }
 
 func (c *child) serveRequest(req *request, body io.ReadCloser) {
@@ -232,11 +246,19 @@
 		httpReq.Body = body
 		c.handler.ServeHTTP(r, httpReq)
 	}
-	if body != nil {
-		body.Close()
-	}
 	r.Close()
 	c.conn.writeEndRequest(req.reqId, 0, statusRequestComplete)
+
+	// Consume the entire body, so the host isn't still writing to
+	// us when we close the socket below in the !keepConn case,
+	// otherwise we'd send a RST. (golang.org/issue/4183)
+	// TODO(bradfitz): also bound this copy in time. Or send
+	// some sort of abort request to the host, so the host
+	// can properly cut off the client sending all the data.
+	// For now just bound it a little and
+	io.CopyN(ioutil.Discard, body, 100<<20)
+	body.Close()
+
 	if !req.keepConn {
 		c.conn.Close()
 	}
@@ -267,5 +289,4 @@
 		c := newChild(rw, handler)
 		go c.serve()
 	}
-	panic("unreachable")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/filetransport_test.go gcc-4.8.1/libgo/go/net/http/filetransport_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/filetransport_test.go	2011-12-12 12:45:08.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/filetransport_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,11 +2,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package http_test
+package http
 
 import (
 	"io/ioutil"
-	"net/http"
 	"os"
 	"path/filepath"
 	"testing"
@@ -32,9 +31,9 @@
 	defer os.Remove(dname)
 	defer os.Remove(fname)
 
-	tr := &http.Transport{}
-	tr.RegisterProtocol("file", http.NewFileTransport(http.Dir(dname)))
-	c := &http.Client{Transport: tr}
+	tr := &Transport{}
+	tr.RegisterProtocol("file", NewFileTransport(Dir(dname)))
+	c := &Client{Transport: tr}
 
 	fooURLs := []string{"file:///foo.txt", "file://../foo.txt"}
 	for _, urlstr := range fooURLs {
@@ -62,4 +61,5 @@
 	if res.StatusCode != 404 {
 		t.Errorf("for %s, StatusCode = %d, want 404", badURL, res.StatusCode)
 	}
+	res.Body.Close()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/fs_test.go gcc-4.8.1/libgo/go/net/http/fs_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/fs_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/fs_test.go	2013-07-24 08:09:46.832531000 -0500
@@ -54,6 +54,7 @@
 }
 
 func TestServeFile(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ServeFile(w, r, "testdata/file")
 	}))
@@ -169,6 +170,7 @@
 }
 
 func TestFSRedirect(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(StripPrefix("/test", FileServer(Dir("."))))
 	defer ts.Close()
 
@@ -193,6 +195,7 @@
 }
 
 func TestFileServerCleans(t *testing.T) {
+	defer afterTest(t)
 	ch := make(chan string, 1)
 	fs := FileServer(&testFileSystem{func(name string) (File, error) {
 		ch <- name
@@ -224,6 +227,7 @@
 }
 
 func TestFileServerImplicitLeadingSlash(t *testing.T) {
+	defer afterTest(t)
 	tempDir, err := ioutil.TempDir("", "")
 	if err != nil {
 		t.Fatalf("TempDir: %v", err)
@@ -302,6 +306,7 @@
 }
 
 func TestServeFileContentType(t *testing.T) {
+	defer afterTest(t)
 	const ctype = "icecream/chocolate"
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.FormValue("override") == "1" {
@@ -318,12 +323,14 @@
 		if h := resp.Header.Get("Content-Type"); h != want {
 			t.Errorf("Content-Type mismatch: got %q, want %q", h, want)
 		}
+		resp.Body.Close()
 	}
 	get("0", "text/plain; charset=utf-8")
 	get("1", ctype)
 }
 
 func TestServeFileMimeType(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ServeFile(w, r, "testdata/style.css")
 	}))
@@ -332,6 +339,7 @@
 	if err != nil {
 		t.Fatal(err)
 	}
+	resp.Body.Close()
 	want := "text/css; charset=utf-8"
 	if h := resp.Header.Get("Content-Type"); h != want {
 		t.Errorf("Content-Type mismatch: got %q, want %q", h, want)
@@ -339,6 +347,7 @@
 }
 
 func TestServeFileFromCWD(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ServeFile(w, r, "fs_test.go")
 	}))
@@ -354,6 +363,7 @@
 }
 
 func TestServeFileWithContentEncoding(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("Content-Encoding", "foo")
 		ServeFile(w, r, "testdata/file")
@@ -363,12 +373,14 @@
 	if err != nil {
 		t.Fatal(err)
 	}
+	resp.Body.Close()
 	if g, e := resp.ContentLength, int64(-1); g != e {
 		t.Errorf("Content-Length mismatch: got %d, want %d", g, e)
 	}
 }
 
 func TestServeIndexHtml(t *testing.T) {
+	defer afterTest(t)
 	const want = "index.html says hello\n"
 	ts := httptest.NewServer(FileServer(Dir(".")))
 	defer ts.Close()
@@ -390,6 +402,7 @@
 }
 
 func TestFileServerZeroByte(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(FileServer(Dir(".")))
 	defer ts.Close()
 
@@ -458,6 +471,7 @@
 }
 
 func TestDirectoryIfNotModified(t *testing.T) {
+	defer afterTest(t)
 	const indexContents = "I am a fake index.html file"
 	fileMod := time.Unix(1000000000, 0).UTC()
 	fileModStr := fileMod.Format(TimeFormat)
@@ -531,6 +545,7 @@
 }
 
 func TestServeContent(t *testing.T) {
+	defer afterTest(t)
 	type serveParam struct {
 		name        string
 		modtime     time.Time
@@ -663,6 +678,7 @@
 
 // verifies that sendfile is being used on Linux
 func TestLinuxSendfile(t *testing.T) {
+	defer afterTest(t)
 	if runtime.GOOS != "linux" {
 		t.Skip("skipping; linux-only test")
 	}
@@ -680,8 +696,13 @@
 	}
 	defer ln.Close()
 
+	trace := "trace=sendfile"
+	if runtime.GOARCH != "alpha" {
+		trace = trace + ",sendfile64"
+	}
+
 	var buf bytes.Buffer
-	child := exec.Command("strace", "-f", "-e!sigaltstack", os.Args[0], "-test.run=TestLinuxSendfileChild")
+	child := exec.Command("strace", "-f", "-q", "-e", trace, os.Args[0], "-test.run=TestLinuxSendfileChild")
 	child.ExtraFiles = append(child.ExtraFiles, lnf)
 	child.Env = append([]string{"GO_WANT_HELPER_PROCESS=1"}, os.Environ()...)
 	child.Stdout = &buf
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header.go gcc-4.8.1/libgo/go/net/http/header.go
--- gcc-4.8.1.orig/libgo/go/net/http/header.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/header.go	2013-07-16 01:55:04.520470000 -0500
@@ -103,21 +103,41 @@
 	values []string
 }
 
-type byKey []keyValues
+// A headerSorter implements sort.Interface by sorting a []keyValues
+// by key. It's used as a pointer, so it can fit in a sort.Interface
+// interface value without allocation.
+type headerSorter struct {
+	kvs []keyValues
+}
+
+func (s *headerSorter) Len() int           { return len(s.kvs) }
+func (s *headerSorter) Swap(i, j int)      { s.kvs[i], s.kvs[j] = s.kvs[j], s.kvs[i] }
+func (s *headerSorter) Less(i, j int) bool { return s.kvs[i].key < s.kvs[j].key }
 
-func (s byKey) Len() int           { return len(s) }
-func (s byKey) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
-func (s byKey) Less(i, j int) bool { return s[i].key < s[j].key }
+// TODO: convert this to a sync.Cache (issue 4720)
+var headerSorterCache = make(chan *headerSorter, 8)
 
-func (h Header) sortedKeyValues(exclude map[string]bool) []keyValues {
-	kvs := make([]keyValues, 0, len(h))
+// sortedKeyValues returns h's keys sorted in the returned kvs
+// slice. The headerSorter used to sort is also returned, for possible
+// return to headerSorterCache.
+func (h Header) sortedKeyValues(exclude map[string]bool) (kvs []keyValues, hs *headerSorter) {
+	select {
+	case hs = <-headerSorterCache:
+	default:
+		hs = new(headerSorter)
+	}
+	if cap(hs.kvs) < len(h) {
+		hs.kvs = make([]keyValues, 0, len(h))
+	}
+	kvs = hs.kvs[:0]
 	for k, vv := range h {
 		if !exclude[k] {
 			kvs = append(kvs, keyValues{k, vv})
 		}
 	}
-	sort.Sort(byKey(kvs))
-	return kvs
+	hs.kvs = kvs
+	sort.Sort(hs)
+	return kvs, hs
 }
 
 // WriteSubset writes a header in wire format.
@@ -127,7 +147,8 @@
 	if !ok {
 		ws = stringWriter{w}
 	}
-	for _, kv := range h.sortedKeyValues(exclude) {
+	kvs, sorter := h.sortedKeyValues(exclude)
+	for _, kv := range kvs {
 		for _, v := range kv.values {
 			v = headerNewlineToSpace.Replace(v)
 			v = textproto.TrimString(v)
@@ -138,6 +159,10 @@
 			}
 		}
 	}
+	select {
+	case headerSorterCache <- sorter:
+	default:
+	}
 	return nil
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/header_test.go gcc-4.8.1/libgo/go/net/http/header_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/header_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/header_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -175,38 +175,33 @@
 	}
 }
 
-func BenchmarkHeaderWriteSubset(b *testing.B) {
-	doHeaderWriteSubset(b.N, b)
+var testHeader = Header{
+	"Content-Length": {"123"},
+	"Content-Type":   {"text/plain"},
+	"Date":           {"some date at some time Z"},
+	"Server":         {DefaultUserAgent},
 }
 
-func TestHeaderWriteSubsetMallocs(t *testing.T) {
-	doHeaderWriteSubset(100, t)
-}
+var buf bytes.Buffer
 
-type errorfer interface {
-	Errorf(string, ...interface{})
+func BenchmarkHeaderWriteSubset(b *testing.B) {
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		buf.Reset()
+		testHeader.WriteSubset(&buf, nil)
+	}
 }
 
-func doHeaderWriteSubset(n int, t errorfer) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
-	h := Header(map[string][]string{
-		"Content-Length": {"123"},
-		"Content-Type":   {"text/plain"},
-		"Date":           {"some date at some time Z"},
-		"Server":         {"Go http package"},
-	})
-	var buf bytes.Buffer
-	var m0 runtime.MemStats
-	runtime.ReadMemStats(&m0)
-	for i := 0; i < n; i++ {
-		buf.Reset()
-		h.WriteSubset(&buf, nil)
+func TestHeaderWriteSubsetMallocs(t *testing.T) {
+	t.Skip("Skipping alloc count test on gccgo")
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
 	}
-	var m1 runtime.MemStats
-	runtime.ReadMemStats(&m1)
-	if mallocs := m1.Mallocs - m0.Mallocs; n >= 100 && mallocs >= uint64(n) {
-		// TODO(bradfitz,rsc): once we can sort without allocating,
-		// make this an error.  See http://golang.org/issue/3761
-		// t.Errorf("did %d mallocs (>= %d iterations); should have avoided mallocs", mallocs, n)
+	n := testing.AllocsPerRun(100, func() {
+		buf.Reset()
+		testHeader.WriteSubset(&buf, nil)
+	})
+	if n > 0 {
+		t.Errorf("mallocs = %d; want 0", n)
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httptest/server.go gcc-4.8.1/libgo/go/net/http/httptest/server.go
--- gcc-4.8.1.orig/libgo/go/net/http/httptest/server.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/httptest/server.go	2013-07-16 01:55:04.520470000 -0500
@@ -21,7 +21,11 @@
 type Server struct {
 	URL      string // base URL of form http://ipaddr:port with no trailing slash
 	Listener net.Listener
-	TLS      *tls.Config // nil if not using TLS
+
+	// TLS is the optional TLS configuration, populated with a new config
+	// after TLS is started. If set on an unstarted server before StartTLS
+	// is called, existing fields are copied into the new config.
+	TLS *tls.Config
 
 	// Config may be changed after calling NewUnstartedServer and
 	// before Start or StartTLS.
@@ -119,9 +123,16 @@
 		panic(fmt.Sprintf("httptest: NewTLSServer: %v", err))
 	}
 
-	s.TLS = &tls.Config{
-		NextProtos:   []string{"http/1.1"},
-		Certificates: []tls.Certificate{cert},
+	existingConfig := s.TLS
+	s.TLS = new(tls.Config)
+	if existingConfig != nil {
+		*s.TLS = *existingConfig
+	}
+	if s.TLS.NextProtos == nil {
+		s.TLS.NextProtos = []string{"http/1.1"}
+	}
+	if len(s.TLS.Certificates) == 0 {
+		s.TLS.Certificates = []tls.Certificate{cert}
 	}
 	tlsListener := tls.NewListener(s.Listener, s.TLS)
 
@@ -189,28 +200,29 @@
 	h.h.ServeHTTP(w, r)
 }
 
-// localhostCert is a PEM-encoded TLS cert with SAN DNS names
+// localhostCert is a PEM-encoded TLS cert with SAN IPs
 // "127.0.0.1" and "[::1]", expiring at the last second of 2049 (the end
 // of ASN.1 time).
+// generated from src/pkg/crypto/tls:
+// go run generate_cert.go  --rsa-bits 512 --host 127.0.0.1,::1,example.com --ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h
 var localhostCert = []byte(`-----BEGIN CERTIFICATE-----
-MIIBTTCB+qADAgECAgEAMAsGCSqGSIb3DQEBBTAAMB4XDTcwMDEwMTAwMDAwMFoX
-DTQ5MTIzMTIzNTk1OVowADBaMAsGCSqGSIb3DQEBAQNLADBIAkEAsuA5mAFMj6Q7
-qoBzcvKzIq4kzuT5epSp2AkcQfyBHm7K13Ws7u+0b5Vb9gqTf5cAiIKcrtrXVqkL
-8i1UQF6AzwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCACQwEgYDVR0TAQH/BAgwBgEB
-/wIBATANBgNVHQ4EBgQEAQIDBDAPBgNVHSMECDAGgAQBAgMEMBsGA1UdEQQUMBKC
-CTEyNy4wLjAuMYIFWzo6MV0wCwYJKoZIhvcNAQEFA0EAj1Jsn/h2KHy7dgqutZNB
-nCGlNN+8vw263Bax9MklR85Ti6a0VWSvp/fDQZUADvmFTDkcXeA24pqmdUxeQDWw
-Pg==
+MIIBdzCCASOgAwIBAgIBADALBgkqhkiG9w0BAQUwEjEQMA4GA1UEChMHQWNtZSBD
+bzAeFw03MDAxMDEwMDAwMDBaFw00OTEyMzEyMzU5NTlaMBIxEDAOBgNVBAoTB0Fj
+bWUgQ28wWjALBgkqhkiG9w0BAQEDSwAwSAJBAN55NcYKZeInyTuhcCwFMhDHCmwa
+IUSdtXdcbItRB/yfXGBhiex00IaLXQnSU+QZPRZWYqeTEbFSgihqi1PUDy8CAwEA
+AaNoMGYwDgYDVR0PAQH/BAQDAgCkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1Ud
+EwEB/wQFMAMBAf8wLgYDVR0RBCcwJYILZXhhbXBsZS5jb22HBH8AAAGHEAAAAAAA
+AAAAAAAAAAAAAAEwCwYJKoZIhvcNAQEFA0EAAoQn/ytgqpiLcZu9XKbCJsJcvkgk
+Se6AbGXgSlq+ZCEVo0qIwSgeBqmsJxUu7NCSOwVJLYNEBO2DtIxoYVk+MA==
 -----END CERTIFICATE-----`)
 
 // localhostKey is the private key for localhostCert.
 var localhostKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
-MIIBPQIBAAJBALLgOZgBTI+kO6qAc3LysyKuJM7k+XqUqdgJHEH8gR5uytd1rO7v
-tG+VW/YKk3+XAIiCnK7a11apC/ItVEBegM8CAwEAAQJBAI5sxq7naeR9ahyqRkJi
-SIv2iMxLuPEHaezf5CYOPWjSjBPyVhyRevkhtqEjF/WkgL7C2nWpYHsUcBDBQVF0
-3KECIQDtEGB2ulnkZAahl3WuJziXGLB+p8Wgx7wzSM6bHu1c6QIhAMEp++CaS+SJ
-/TrU0zwY/fW4SvQeb49BPZUF3oqR8Xz3AiEA1rAJHBzBgdOQKdE3ksMUPcnvNJSN
-poCcELmz2clVXtkCIQCLytuLV38XHToTipR4yMl6O+6arzAjZ56uq7m7ZRV0TwIh
-AM65XAOw8Dsg9Kq78aYXiOEDc5DL0sbFUu/SlmRcCg93
------END RSA PRIVATE KEY-----
-`)
+MIIBPAIBAAJBAN55NcYKZeInyTuhcCwFMhDHCmwaIUSdtXdcbItRB/yfXGBhiex0
+0IaLXQnSU+QZPRZWYqeTEbFSgihqi1PUDy8CAwEAAQJBAQdUx66rfh8sYsgfdcvV
+NoafYpnEcB5s4m/vSVe6SU7dCK6eYec9f9wpT353ljhDUHq3EbmE4foNzJngh35d
+AekCIQDhRQG5Li0Wj8TM4obOnnXUXf1jRv0UkzE9AHWLG5q3AwIhAPzSjpYUDjVW
+MCUXgckTpKCuGwbJk7424Nb8bLzf3kllAiA5mUBgjfr/WtFSJdWcPQ4Zt9KTMNKD
+EUO0ukpTwEIl6wIhAMbGqZK3zAAFdq8DD2jPx+UJXnh0rnOkZBzDtJ6/iN69AiEA
+1Aq8MJgTaYsDQWyU/hDq5YkDJc9e9DSCvUIzqxQWMQE=
+-----END RSA PRIVATE KEY-----`)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/dump_test.go gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/httputil/dump_test.go	2012-03-06 11:57:23.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/httputil/dump_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -68,7 +68,7 @@
 
 		WantDumpOut: "GET /foo HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Accept-Encoding: gzip\r\n\r\n",
 	},
 
@@ -80,7 +80,7 @@
 
 		WantDumpOut: "GET /foo HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Accept-Encoding: gzip\r\n\r\n",
 	},
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy.go gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go
--- gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy.go	2013-07-16 01:55:04.520470000 -0500
@@ -81,6 +81,19 @@
 	}
 }
 
+// Hop-by-hop headers. These are removed when sent to the backend.
+// http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
+var hopHeaders = []string{
+	"Connection",
+	"Keep-Alive",
+	"Proxy-Authenticate",
+	"Proxy-Authorization",
+	"Te", // canonicalized version of "TE"
+	"Trailers",
+	"Transfer-Encoding",
+	"Upgrade",
+}
+
 func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
 	transport := p.Transport
 	if transport == nil {
@@ -96,14 +109,21 @@
 	outreq.ProtoMinor = 1
 	outreq.Close = false
 
-	// Remove the connection header to the backend.  We want a
-	// persistent connection, regardless of what the client sent
-	// to us.  This is modifying the same underlying map from req
-	// (shallow copied above) so we only copy it if necessary.
-	if outreq.Header.Get("Connection") != "" {
-		outreq.Header = make(http.Header)
-		copyHeader(outreq.Header, req.Header)
-		outreq.Header.Del("Connection")
+	// Remove hop-by-hop headers to the backend.  Especially
+	// important is "Connection" because we want a persistent
+	// connection, regardless of what the client sent to us.  This
+	// is modifying the same underlying map from req (shallow
+	// copied above) so we only copy it if necessary.
+	copiedHeaders := false
+	for _, h := range hopHeaders {
+		if outreq.Header.Get(h) != "" {
+			if !copiedHeaders {
+				outreq.Header = make(http.Header)
+				copyHeader(outreq.Header, req.Header)
+				copiedHeaders = true
+			}
+			outreq.Header.Del(h)
+		}
 	}
 
 	if clientIP, _, err := net.SplitHostPort(req.RemoteAddr); err == nil {
@@ -182,7 +202,6 @@
 			m.lk.Unlock()
 		}
 	}
-	panic("unreached")
 }
 
 func (m *maxLatencyWriter) stop() { m.done <- true }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy_test.go gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/httputil/reverseproxy_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/http/httputil/reverseproxy_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -29,6 +29,9 @@
 		if c := r.Header.Get("Connection"); c != "" {
 			t.Errorf("handler got Connection header value %q", c)
 		}
+		if c := r.Header.Get("Upgrade"); c != "" {
+			t.Errorf("handler got Upgrade header value %q", c)
+		}
 		if g, e := r.Host, "some-name"; g != e {
 			t.Errorf("backend got Host header %q, want %q", g, e)
 		}
@@ -49,6 +52,7 @@
 	getReq, _ := http.NewRequest("GET", frontend.URL, nil)
 	getReq.Host = "some-name"
 	getReq.Header.Set("Connection", "close")
+	getReq.Header.Set("Upgrade", "foo")
 	getReq.Close = true
 	res, err := http.DefaultClient.Do(getReq)
 	if err != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/jar.go gcc-4.8.1/libgo/go/net/http/jar.go
--- gcc-4.8.1.orig/libgo/go/net/http/jar.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/jar.go	2013-07-16 01:55:04.520470000 -0500
@@ -12,6 +12,8 @@
 //
 // Implementations of CookieJar must be safe for concurrent use by multiple
 // goroutines.
+//
+// The net/http/cookiejar package provides a CookieJar implementation.
 type CookieJar interface {
 	// SetCookies handles the receipt of the cookies in a reply for the
 	// given URL.  It may or may not choose to save the cookies, depending
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/npn_test.go gcc-4.8.1/libgo/go/net/http/npn_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/npn_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/npn_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,118 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http_test
+
+import (
+	"bufio"
+	"crypto/tls"
+	"fmt"
+	"io"
+	"io/ioutil"
+	. "net/http"
+	"net/http/httptest"
+	"strings"
+	"testing"
+)
+
+func TestNextProtoUpgrade(t *testing.T) {
+	ts := httptest.NewUnstartedServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+		fmt.Fprintf(w, "path=%s,proto=", r.URL.Path)
+		if r.TLS != nil {
+			w.Write([]byte(r.TLS.NegotiatedProtocol))
+		}
+		if r.RemoteAddr == "" {
+			t.Error("request with no RemoteAddr")
+		}
+		if r.Body == nil {
+			t.Errorf("request with nil Body")
+		}
+	}))
+	ts.TLS = &tls.Config{
+		NextProtos: []string{"unhandled-proto", "tls-0.9"},
+	}
+	ts.Config.TLSNextProto = map[string]func(*Server, *tls.Conn, Handler){
+		"tls-0.9": handleTLSProtocol09,
+	}
+	ts.StartTLS()
+	defer ts.Close()
+
+	tr := newTLSTransport(t, ts)
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	// Normal request, without NPN.
+	{
+		res, err := c.Get(ts.URL)
+		if err != nil {
+			t.Fatal(err)
+		}
+		body, err := ioutil.ReadAll(res.Body)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if want := "path=/,proto="; string(body) != want {
+			t.Errorf("plain request = %q; want %q", body, want)
+		}
+	}
+
+	// Request to an advertised but unhandled NPN protocol.
+	// Server will hang up.
+	{
+		tr.CloseIdleConnections()
+		tr.TLSClientConfig.NextProtos = []string{"unhandled-proto"}
+		_, err := c.Get(ts.URL)
+		if err == nil {
+			t.Errorf("expected error on unhandled-proto request")
+		}
+	}
+
+	// Request using the "tls-0.9" protocol, which we register here.
+	// It is HTTP/0.9 over TLS.
+	{
+		tlsConfig := newTLSTransport(t, ts).TLSClientConfig
+		tlsConfig.NextProtos = []string{"tls-0.9"}
+		conn, err := tls.Dial("tcp", ts.Listener.Addr().String(), tlsConfig)
+		if err != nil {
+			t.Fatal(err)
+		}
+		conn.Write([]byte("GET /foo\n"))
+		body, err := ioutil.ReadAll(conn)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if want := "path=/foo,proto=tls-0.9"; string(body) != want {
+			t.Errorf("plain request = %q; want %q", body, want)
+		}
+	}
+}
+
+// handleTLSProtocol09 implements the HTTP/0.9 protocol over TLS, for the
+// TestNextProtoUpgrade test.
+func handleTLSProtocol09(srv *Server, conn *tls.Conn, h Handler) {
+	br := bufio.NewReader(conn)
+	line, err := br.ReadString('\n')
+	if err != nil {
+		return
+	}
+	line = strings.TrimSpace(line)
+	path := strings.TrimPrefix(line, "GET ")
+	if path == line {
+		return
+	}
+	req, _ := NewRequest("GET", path, nil)
+	req.Proto = "HTTP/0.9"
+	req.ProtoMajor = 0
+	req.ProtoMinor = 9
+	rw := &http09Writer{conn, make(Header)}
+	h.ServeHTTP(rw, req)
+}
+
+type http09Writer struct {
+	io.Writer
+	h Header
+}
+
+func (w http09Writer) Header() Header  { return w.h }
+func (w http09Writer) WriteHeader(int) {} // no headers
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/pprof/pprof.go gcc-4.8.1/libgo/go/net/http/pprof/pprof.go
--- gcc-4.8.1.orig/libgo/go/net/http/pprof/pprof.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/pprof/pprof.go	2013-07-16 01:55:04.520470000 -0500
@@ -172,7 +172,7 @@
 // listing the available profiles.
 func Index(w http.ResponseWriter, r *http.Request) {
 	if strings.HasPrefix(r.URL.Path, "/debug/pprof/") {
-		name := r.URL.Path[len("/debug/pprof/"):]
+		name := strings.TrimPrefix(r.URL.Path, "/debug/pprof/")
 		if name != "" {
 			handler(name).ServeHTTP(w, r)
 			return
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request.go gcc-4.8.1/libgo/go/net/http/request.go
--- gcc-4.8.1.orig/libgo/go/net/http/request.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/request.go	2013-07-16 01:55:04.520470000 -0500
@@ -48,7 +48,7 @@
 	ErrUnexpectedTrailer    = &ProtocolError{"trailer header without chunked transfer encoding"}
 	ErrMissingContentLength = &ProtocolError{"missing ContentLength in HEAD response"}
 	ErrNotMultipart         = &ProtocolError{"request Content-Type isn't multipart/form-data"}
-	ErrMissingBoundary      = &ProtocolError{"no multipart boundary param Content-Type"}
+	ErrMissingBoundary      = &ProtocolError{"no multipart boundary param in Content-Type"}
 )
 
 type badStringError struct {
@@ -283,7 +283,7 @@
 	return def
 }
 
-const defaultUserAgent = "Go http package"
+const defaultUserAgent = "Go 1.1 package http"
 
 // Write writes an HTTP/1.1 request -- header and body -- in wire format.
 // This method consults the following fields of the request:
@@ -467,10 +467,42 @@
 	r.Header.Set("Authorization", "Basic "+base64.StdEncoding.EncodeToString([]byte(s)))
 }
 
+// parseRequestLine parses "GET /foo HTTP/1.1" into its three parts.
+func parseRequestLine(line string) (method, requestURI, proto string, ok bool) {
+	s1 := strings.Index(line, " ")
+	s2 := strings.Index(line[s1+1:], " ")
+	if s1 < 0 || s2 < 0 {
+		return
+	}
+	s2 += s1 + 1
+	return line[:s1], line[s1+1 : s2], line[s2+1:], true
+}
+
+// TODO(bradfitz): use a sync.Cache when available
+var textprotoReaderCache = make(chan *textproto.Reader, 4)
+
+func newTextprotoReader(br *bufio.Reader) *textproto.Reader {
+	select {
+	case r := <-textprotoReaderCache:
+		r.R = br
+		return r
+	default:
+		return textproto.NewReader(br)
+	}
+}
+
+func putTextprotoReader(r *textproto.Reader) {
+	r.R = nil
+	select {
+	case textprotoReaderCache <- r:
+	default:
+	}
+}
+
 // ReadRequest reads and parses a request from b.
 func ReadRequest(b *bufio.Reader) (req *Request, err error) {
 
-	tp := textproto.NewReader(b)
+	tp := newTextprotoReader(b)
 	req = new(Request)
 
 	// First line: GET /index.html HTTP/1.0
@@ -479,18 +511,18 @@
 		return nil, err
 	}
 	defer func() {
+		putTextprotoReader(tp)
 		if err == io.EOF {
 			err = io.ErrUnexpectedEOF
 		}
 	}()
 
-	var f []string
-	if f = strings.SplitN(s, " ", 3); len(f) < 3 {
+	var ok bool
+	req.Method, req.RequestURI, req.Proto, ok = parseRequestLine(s)
+	if !ok {
 		return nil, &badStringError{"malformed HTTP request", s}
 	}
-	req.Method, req.RequestURI, req.Proto = f[0], f[1], f[2]
 	rawurl := req.RequestURI
-	var ok bool
 	if req.ProtoMajor, req.ProtoMinor, ok = ParseHTTPVersion(req.Proto); !ok {
 		return nil, &badStringError{"malformed HTTP version", req.Proto}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/request_test.go gcc-4.8.1/libgo/go/net/http/request_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/request_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/request_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -262,7 +262,39 @@
 			t.Fatal(err)
 		}
 		if req.ContentLength != tt.want {
-			t.Errorf("ContentLength(%#T) = %d; want %d", tt.r, req.ContentLength, tt.want)
+			t.Errorf("ContentLength(%T) = %d; want %d", tt.r, req.ContentLength, tt.want)
+		}
+	}
+}
+
+var parseHTTPVersionTests = []struct {
+	vers         string
+	major, minor int
+	ok           bool
+}{
+	{"HTTP/0.9", 0, 9, true},
+	{"HTTP/1.0", 1, 0, true},
+	{"HTTP/1.1", 1, 1, true},
+	{"HTTP/3.14", 3, 14, true},
+
+	{"HTTP", 0, 0, false},
+	{"HTTP/one.one", 0, 0, false},
+	{"HTTP/1.1/", 0, 0, false},
+	{"HTTP/-1,0", 0, 0, false},
+	{"HTTP/0,-1", 0, 0, false},
+	{"HTTP/", 0, 0, false},
+	{"HTTP/1,1", 0, 0, false},
+}
+
+func TestParseHTTPVersion(t *testing.T) {
+	for _, tt := range parseHTTPVersionTests {
+		major, minor, ok := ParseHTTPVersion(tt.vers)
+		if ok != tt.ok || major != tt.major || minor != tt.minor {
+			type version struct {
+				major, minor int
+				ok           bool
+			}
+			t.Errorf("failed to parse %q, expected: %#v, got %#v", tt.vers, version{tt.major, tt.minor, tt.ok}, version{major, minor, ok})
 		}
 	}
 }
@@ -289,7 +321,7 @@
 	want := []string{
 		"GET / HTTP/1.1\r\n",
 		"Host: foo.com\r\n",
-		"User-Agent: Go http package\r\n",
+		"User-Agent: " + DefaultUserAgent + "\r\n",
 		"\r\n",
 	}
 	if !reflect.DeepEqual(got, want) {
@@ -401,3 +433,81 @@
 ` + textbValue + `
 --MyBoundary--
 `
+
+func benchmarkReadRequest(b *testing.B, request string) {
+	request = request + "\n"                             // final \n
+	request = strings.Replace(request, "\n", "\r\n", -1) // expand \n to \r\n
+	b.SetBytes(int64(len(request)))
+	r := bufio.NewReader(&infiniteReader{buf: []byte(request)})
+	b.ReportAllocs()
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, err := ReadRequest(r)
+		if err != nil {
+			b.Fatalf("failed to read request: %v", err)
+		}
+	}
+}
+
+// infiniteReader satisfies Read requests as if the contents of buf
+// loop indefinitely.
+type infiniteReader struct {
+	buf    []byte
+	offset int
+}
+
+func (r *infiniteReader) Read(b []byte) (int, error) {
+	n := copy(b, r.buf[r.offset:])
+	r.offset = (r.offset + n) % len(r.buf)
+	return n, nil
+}
+
+func BenchmarkReadRequestChrome(b *testing.B) {
+	// https://github.com/felixge/node-http-perf/blob/master/fixtures/get.http
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+Host: localhost:8080
+Connection: keep-alive
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+Accept-Encoding: gzip,deflate,sdch
+Accept-Language: en-US,en;q=0.8
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+Cookie: __utma=1.1978842379.1323102373.1323102373.1323102373.1; EPi:NumberOfVisits=1,2012-02-28T13:42:18; CrmSession=5b707226b9563e1bc69084d07a107c98; plushContainerWidth=100%25; plushNoTopMenu=0; hudson_auto_refresh=false
+`)
+}
+
+func BenchmarkReadRequestCurl(b *testing.B) {
+	// curl http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+User-Agent: curl/7.27.0
+Host: localhost:8080
+Accept: */*
+`)
+}
+
+func BenchmarkReadRequestApachebench(b *testing.B) {
+	// ab -n 1 -c 1 http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.0
+Host: localhost:8080
+User-Agent: ApacheBench/2.3
+Accept: */*
+`)
+}
+
+func BenchmarkReadRequestSiege(b *testing.B) {
+	// siege -r 1 -c 1 http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+Host: localhost:8080
+Accept: */*
+Accept-Encoding: gzip
+User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)
+Connection: keep-alive
+`)
+}
+
+func BenchmarkReadRequestWrk(b *testing.B) {
+	// wrk -t 1 -r 1 -c 1 http://localhost:8080/
+	benchmarkReadRequest(b, `GET / HTTP/1.1
+Host: localhost:8080
+`)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/requestwrite_test.go gcc-4.8.1/libgo/go/net/http/requestwrite_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/requestwrite_test.go	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/requestwrite_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -93,13 +93,13 @@
 
 		WantWrite: "GET /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
 
 		WantProxy: "GET http://www.google.com/search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
 	},
@@ -123,14 +123,14 @@
 
 		WantWrite: "POST /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
 
 		WantProxy: "POST http://www.google.com/search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("abcdef") + chunk(""),
@@ -156,7 +156,7 @@
 
 		WantWrite: "POST /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
@@ -164,7 +164,7 @@
 
 		WantProxy: "POST http://www.google.com/search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Connection: close\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
@@ -187,14 +187,14 @@
 
 		WantWrite: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
 			"abcdef",
 
 		WantProxy: "POST http://example.com/ HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 6\r\n" +
 			"\r\n" +
 			"abcdef",
@@ -210,7 +210,7 @@
 
 		WantWrite: "GET /search HTTP/1.1\r\n" +
 			"Host: www.google.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"\r\n",
 	},
 
@@ -232,13 +232,13 @@
 		// Also, nginx expects it for POST and PUT.
 		WantWrite: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 0\r\n" +
 			"\r\n",
 
 		WantProxy: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Content-Length: 0\r\n" +
 			"\r\n",
 	},
@@ -258,13 +258,13 @@
 
 		WantWrite: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("x") + chunk(""),
 
 		WantProxy: "POST / HTTP/1.1\r\n" +
 			"Host: example.com\r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"Transfer-Encoding: chunked\r\n\r\n" +
 			chunk("x") + chunk(""),
 	},
@@ -325,9 +325,96 @@
 
 		WantWrite: "GET /foo HTTP/1.1\r\n" +
 			"Host: \r\n" +
-			"User-Agent: Go http package\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
 			"X-Foo: X-Bar\r\n\r\n",
 	},
+
+	// If no Request.Host and no Request.URL.Host, we send
+	// an empty Host header, and don't use
+	// Request.Header["Host"]. This is just testing that
+	// we don't change Go 1.0 behavior.
+	{
+		Req: Request{
+			Method: "GET",
+			Host:   "",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "",
+				Path:   "/search",
+			},
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header: Header{
+				"Host": []string{"bad.example.com"},
+			},
+		},
+
+		WantWrite: "GET /search HTTP/1.1\r\n" +
+			"Host: \r\n" +
+			"User-Agent: Go 1.1 package http\r\n\r\n",
+	},
+
+	// Opaque test #1 from golang.org/issue/4860
+	{
+		Req: Request{
+			Method: "GET",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "www.google.com",
+				Opaque: "/%2F/%2F/",
+			},
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header:     Header{},
+		},
+
+		WantWrite: "GET /%2F/%2F/ HTTP/1.1\r\n" +
+			"Host: www.google.com\r\n" +
+			"User-Agent: Go 1.1 package http\r\n\r\n",
+	},
+
+	// Opaque test #2 from golang.org/issue/4860
+	{
+		Req: Request{
+			Method: "GET",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "x.google.com",
+				Opaque: "//y.google.com/%2F/%2F/",
+			},
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header:     Header{},
+		},
+
+		WantWrite: "GET http://y.google.com/%2F/%2F/ HTTP/1.1\r\n" +
+			"Host: x.google.com\r\n" +
+			"User-Agent: Go 1.1 package http\r\n\r\n",
+	},
+
+	// Testing custom case in header keys. Issue 5022.
+	{
+		Req: Request{
+			Method: "GET",
+			URL: &url.URL{
+				Scheme: "http",
+				Host:   "www.google.com",
+				Path:   "/",
+			},
+			Proto:      "HTTP/1.1",
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Header: Header{
+				"ALL-CAPS": {"x"},
+			},
+		},
+
+		WantWrite: "GET / HTTP/1.1\r\n" +
+			"Host: www.google.com\r\n" +
+			"User-Agent: Go 1.1 package http\r\n" +
+			"ALL-CAPS: x\r\n" +
+			"\r\n",
+	},
 }
 
 func TestRequestWrite(t *testing.T) {
@@ -411,7 +498,7 @@
 	}
 	expected := "POST / HTTP/1.1\r\n" +
 		"Host: foo.com\r\n" +
-		"User-Agent: Go http package\r\n" +
+		"User-Agent: Go 1.1 package http\r\n" +
 		"Transfer-Encoding: chunked\r\n\r\n" +
 		// TODO: currently we don't buffer before chunking, so we get a
 		// single "m" chunk before the other chunks, as this was the 1-byte
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response.go gcc-4.8.1/libgo/go/net/http/response.go
--- gcc-4.8.1.orig/libgo/go/net/http/response.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/response.go	2013-07-16 01:55:04.520470000 -0500
@@ -46,6 +46,9 @@
 	// The http Client and Transport guarantee that Body is always
 	// non-nil, even on responses without a body or responses with
 	// a zero-lengthed body.
+	//
+	// The Body is automatically dechunked if the server replied
+	// with a "chunked" Transfer-Encoding.
 	Body io.ReadCloser
 
 	// ContentLength records the length of the associated content.  The
@@ -198,9 +201,7 @@
 	}
 	protoMajor, protoMinor := strconv.Itoa(r.ProtoMajor), strconv.Itoa(r.ProtoMinor)
 	statusCode := strconv.Itoa(r.StatusCode) + " "
-	if strings.HasPrefix(text, statusCode) {
-		text = text[len(statusCode):]
-	}
+	text = strings.TrimPrefix(text, statusCode)
 	io.WriteString(w, "HTTP/"+protoMajor+"."+protoMinor+" "+statusCode+text+"\r\n")
 
 	// Process Body,ContentLength,Close,Trailer
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/response_test.go gcc-4.8.1/libgo/go/net/http/response_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/response_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/response_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -112,8 +112,8 @@
 			ProtoMinor: 0,
 			Request:    dummyReq("GET"),
 			Header: Header{
-				"Connection":     {"close"}, // TODO(rsc): Delete?
-				"Content-Length": {"10"},    // TODO(rsc): Delete?
+				"Connection":     {"close"},
+				"Content-Length": {"10"},
 			},
 			Close:         true,
 			ContentLength: 10,
@@ -157,7 +157,7 @@
 			"Content-Length: 10\r\n" +
 			"\r\n" +
 			"0a\r\n" +
-			"Body here\n" +
+			"Body here\n\r\n" +
 			"0\r\n" +
 			"\r\n",
 
@@ -170,7 +170,7 @@
 			Request:          dummyReq("GET"),
 			Header:           Header{},
 			Close:            false,
-			ContentLength:    -1, // TODO(rsc): Fix?
+			ContentLength:    -1,
 			TransferEncoding: []string{"chunked"},
 		},
 
@@ -324,16 +324,37 @@
 
 		"",
 	},
+
+	// golang.org/issue/4767: don't special-case multipart/byteranges responses
+	{
+		`HTTP/1.1 206 Partial Content
+Connection: close
+Content-Type: multipart/byteranges; boundary=18a75608c8f47cef
+
+some body`,
+		Response{
+			Status:     "206 Partial Content",
+			StatusCode: 206,
+			Proto:      "HTTP/1.1",
+			ProtoMajor: 1,
+			ProtoMinor: 1,
+			Request:    dummyReq("GET"),
+			Header: Header{
+				"Content-Type": []string{"multipart/byteranges; boundary=18a75608c8f47cef"},
+			},
+			Close:         true,
+			ContentLength: -1,
+		},
+
+		"some body",
+	},
 }
 
 func TestReadResponse(t *testing.T) {
-	for i := range respTests {
-		tt := &respTests[i]
-		var braw bytes.Buffer
-		braw.WriteString(tt.Raw)
-		resp, err := ReadResponse(bufio.NewReader(&braw), tt.Resp.Request)
+	for i, tt := range respTests {
+		resp, err := ReadResponse(bufio.NewReader(strings.NewReader(tt.Raw)), tt.Resp.Request)
 		if err != nil {
-			t.Errorf("#%d: %s", i, err)
+			t.Errorf("#%d: %v", i, err)
 			continue
 		}
 		rbody := resp.Body
@@ -341,7 +362,11 @@
 		diff(t, fmt.Sprintf("#%d Response", i), resp, &tt.Resp)
 		var bout bytes.Buffer
 		if rbody != nil {
-			io.Copy(&bout, rbody)
+			_, err = io.Copy(&bout, rbody)
+			if err != nil {
+				t.Errorf("#%d: %v", i, err)
+				continue
+			}
 			rbody.Close()
 		}
 		body := bout.String()
@@ -351,6 +376,22 @@
 	}
 }
 
+func TestWriteResponse(t *testing.T) {
+	for i, tt := range respTests {
+		resp, err := ReadResponse(bufio.NewReader(strings.NewReader(tt.Raw)), tt.Resp.Request)
+		if err != nil {
+			t.Errorf("#%d: %v", i, err)
+			continue
+		}
+		bout := bytes.NewBuffer(nil)
+		err = resp.Write(bout)
+		if err != nil {
+			t.Errorf("#%d: %v", i, err)
+			continue
+		}
+	}
+}
+
 var readResponseCloseInMiddleTests = []struct {
 	chunked, compressed bool
 }{
@@ -425,7 +466,7 @@
 		if test.compressed {
 			gzReader, err := gzip.NewReader(resp.Body)
 			checkErr(err, "gzip.NewReader")
-			resp.Body = &readFirstCloseBoth{gzReader, resp.Body}
+			resp.Body = &readerAndCloser{gzReader, resp.Body}
 		}
 
 		rbuf := make([]byte, 2500)
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server.go gcc-4.8.1/libgo/go/net/http/server.go
--- gcc-4.8.1.orig/libgo/go/net/http/server.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/server.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,9 +4,6 @@
 
 // HTTP server.  See RFC 2616.
 
-// TODO(rsc):
-//	logging
-
 package http
 
 import (
@@ -109,9 +106,11 @@
 	remoteAddr string               // network address of remote side
 	server     *Server              // the Server on which the connection arrived
 	rwc        net.Conn             // i/o connection
-	sr         switchReader         // where the LimitReader reads from; usually the rwc
+	sr         liveSwitchReader     // where the LimitReader reads from; usually the rwc
 	lr         *io.LimitedReader    // io.LimitReader(sr)
 	buf        *bufio.ReadWriter    // buffered(lr,rwc), reading from bufio->limitReader->sr->rwc
+	bufswr     *switchReader        // the *switchReader io.Reader source of buf
+	bufsww     *switchWriter        // the *switchWriter io.Writer dest of buf
 	tlsState   *tls.ConnectionState // or nil when not using TLS
 
 	mu           sync.Mutex // guards the following
@@ -147,7 +146,7 @@
 	c.mu.Lock()
 	defer c.mu.Unlock()
 	if c.closeNotifyc == nil {
-		c.closeNotifyc = make(chan bool)
+		c.closeNotifyc = make(chan bool, 1)
 		if c.hijackedv {
 			// to obey the function signature, even though
 			// it'll never receive a value.
@@ -180,12 +179,26 @@
 	c.clientGone = true
 }
 
+// A switchReader can have its Reader changed at runtime.
+// It's not safe for concurrent Reads and switches.
 type switchReader struct {
+	io.Reader
+}
+
+// A switchWriter can have its Writer changed at runtime.
+// It's not safe for concurrent Writes and switches.
+type switchWriter struct {
+	io.Writer
+}
+
+// A liveSwitchReader is a switchReader that's safe for concurrent
+// reads and switches, if its mutex is held.
+type liveSwitchReader struct {
 	sync.Mutex
 	r io.Reader
 }
 
-func (sr *switchReader) Read(p []byte) (n int, err error) {
+func (sr *liveSwitchReader) Read(p []byte) (n int, err error) {
 	sr.Lock()
 	r := sr.r
 	sr.Unlock()
@@ -206,15 +219,28 @@
 //
 // See the comment above (*response).Write for the entire write flow.
 type chunkWriter struct {
-	res         *response
-	header      Header // a deep copy of r.Header, once WriteHeader is called
-	wroteHeader bool   // whether the header's been sent
+	res *response
+
+	// header is either nil or a deep clone of res.handlerHeader
+	// at the time of res.WriteHeader, if res.WriteHeader is
+	// called and extra buffering is being done to calculate
+	// Content-Type and/or Content-Length.
+	header Header
+
+	// wroteHeader tells whether the header's been written to "the
+	// wire" (or rather: w.conn.buf). this is unlike
+	// (*response).wroteHeader, which tells only whether it was
+	// logically written.
+	wroteHeader bool
 
 	// set by the writeHeader method:
 	chunking bool // using chunked transfer encoding for reply body
 }
 
-var crlf = []byte("\r\n")
+var (
+	crlf       = []byte("\r\n")
+	colonSpace = []byte(": ")
+)
 
 func (cw *chunkWriter) Write(p []byte) (n int, err error) {
 	if !cw.wroteHeader {
@@ -223,6 +249,7 @@
 	if cw.chunking {
 		_, err = fmt.Fprintf(cw.res.conn.buf, "%x\r\n", len(p))
 		if err != nil {
+			cw.res.conn.rwc.Close()
 			return
 		}
 	}
@@ -230,6 +257,9 @@
 	if cw.chunking && err == nil {
 		_, err = cw.res.conn.buf.Write(crlf)
 	}
+	if err != nil {
+		cw.res.conn.rwc.Close()
+	}
 	return
 }
 
@@ -260,13 +290,15 @@
 	wroteContinue bool     // 100 Continue response was written
 
 	w  *bufio.Writer // buffers output in chunks to chunkWriter
-	cw *chunkWriter
+	cw chunkWriter
+	sw *switchWriter // of the bufio.Writer, for return to putBufioWriter
 
 	// handlerHeader is the Header that Handlers get access to,
 	// which may be retained and mutated even after WriteHeader.
 	// handlerHeader is copied into cw.header at WriteHeader
 	// time, and privately mutated thereafter.
 	handlerHeader Header
+	calledHeader  bool // handler accessed handlerHeader via Header
 
 	written       int64 // number of bytes written in body
 	contentLength int64 // explicitly-declared Content-Length; or -1
@@ -358,14 +390,98 @@
 	if debugServerConnections {
 		c.rwc = newLoggingConn("server", c.rwc)
 	}
-	c.sr = switchReader{r: c.rwc}
+	c.sr = liveSwitchReader{r: c.rwc}
 	c.lr = io.LimitReader(&c.sr, noLimit).(*io.LimitedReader)
-	br := bufio.NewReader(c.lr)
-	bw := bufio.NewWriter(c.rwc)
+	br, sr := newBufioReader(c.lr)
+	bw, sw := newBufioWriterSize(c.rwc, 4<<10)
 	c.buf = bufio.NewReadWriter(br, bw)
+	c.bufswr = sr
+	c.bufsww = sw
 	return c, nil
 }
 
+// TODO: remove this, if issue 5100 is fixed
+type bufioReaderPair struct {
+	br *bufio.Reader
+	sr *switchReader // from which the bufio.Reader is reading
+}
+
+// TODO: remove this, if issue 5100 is fixed
+type bufioWriterPair struct {
+	bw *bufio.Writer
+	sw *switchWriter // to which the bufio.Writer is writing
+}
+
+// TODO: use a sync.Cache instead
+var (
+	bufioReaderCache   = make(chan bufioReaderPair, 4)
+	bufioWriterCache2k = make(chan bufioWriterPair, 4)
+	bufioWriterCache4k = make(chan bufioWriterPair, 4)
+)
+
+func bufioWriterCache(size int) chan bufioWriterPair {
+	switch size {
+	case 2 << 10:
+		return bufioWriterCache2k
+	case 4 << 10:
+		return bufioWriterCache4k
+	}
+	return nil
+}
+
+func newBufioReader(r io.Reader) (*bufio.Reader, *switchReader) {
+	select {
+	case p := <-bufioReaderCache:
+		p.sr.Reader = r
+		return p.br, p.sr
+	default:
+		sr := &switchReader{r}
+		return bufio.NewReader(sr), sr
+	}
+}
+
+func putBufioReader(br *bufio.Reader, sr *switchReader) {
+	if n := br.Buffered(); n > 0 {
+		io.CopyN(ioutil.Discard, br, int64(n))
+	}
+	br.Read(nil) // clears br.err
+	sr.Reader = nil
+	select {
+	case bufioReaderCache <- bufioReaderPair{br, sr}:
+	default:
+	}
+}
+
+func newBufioWriterSize(w io.Writer, size int) (*bufio.Writer, *switchWriter) {
+	select {
+	case p := <-bufioWriterCache(size):
+		p.sw.Writer = w
+		return p.bw, p.sw
+	default:
+		sw := &switchWriter{w}
+		return bufio.NewWriterSize(sw, size), sw
+	}
+}
+
+func putBufioWriter(bw *bufio.Writer, sw *switchWriter) {
+	if bw.Buffered() > 0 {
+		// It must have failed to flush to its target
+		// earlier. We can't reuse this bufio.Writer.
+		return
+	}
+	if err := bw.Flush(); err != nil {
+		// Its sticky error field is set, which is returned by
+		// Flush even when there's no data buffered.  This
+		// bufio Writer is dead to us.  Don't reuse it.
+		return
+	}
+	sw.Writer = nil
+	select {
+	case bufioWriterCache(bw.Available()) <- bufioWriterPair{bw, sw}:
+	default:
+	}
+}
+
 // DefaultMaxHeaderBytes is the maximum permitted size of the headers
 // in an HTTP request.
 // This can be overridden by setting Server.MaxHeaderBytes.
@@ -416,6 +532,16 @@
 	if c.hijacked() {
 		return nil, ErrHijacked
 	}
+
+	if d := c.server.ReadTimeout; d != 0 {
+		c.rwc.SetReadDeadline(time.Now().Add(d))
+	}
+	if d := c.server.WriteTimeout; d != 0 {
+		defer func() {
+			c.rwc.SetWriteDeadline(time.Now().Add(d))
+		}()
+	}
+
 	c.lr.N = int64(c.server.maxHeaderBytes()) + 4096 /* bufio slop */
 	var req *Request
 	if req, err = ReadRequest(c.buf.Reader); err != nil {
@@ -434,14 +560,20 @@
 		req:           req,
 		handlerHeader: make(Header),
 		contentLength: -1,
-		cw:            new(chunkWriter),
 	}
 	w.cw.res = w
-	w.w = bufio.NewWriterSize(w.cw, bufferBeforeChunkingSize)
+	w.w, w.sw = newBufioWriterSize(&w.cw, bufferBeforeChunkingSize)
 	return w, nil
 }
 
 func (w *response) Header() Header {
+	if w.cw.header == nil && w.wroteHeader && !w.cw.wroteHeader {
+		// Accessing the header between logically writing it
+		// and physically writing it means we need to allocate
+		// a clone to snapshot the logically written state.
+		w.cw.header = w.handlerHeader.clone()
+	}
+	w.calledHeader = true
 	return w.handlerHeader
 }
 
@@ -468,15 +600,48 @@
 	w.wroteHeader = true
 	w.status = code
 
-	w.cw.header = w.handlerHeader.clone()
+	if w.calledHeader && w.cw.header == nil {
+		w.cw.header = w.handlerHeader.clone()
+	}
 
-	if cl := w.cw.header.get("Content-Length"); cl != "" {
+	if cl := w.handlerHeader.get("Content-Length"); cl != "" {
 		v, err := strconv.ParseInt(cl, 10, 64)
 		if err == nil && v >= 0 {
 			w.contentLength = v
 		} else {
 			log.Printf("http: invalid Content-Length of %q", cl)
-			w.cw.header.Del("Content-Length")
+			w.handlerHeader.Del("Content-Length")
+		}
+	}
+}
+
+// extraHeader is the set of headers sometimes added by chunkWriter.writeHeader.
+// This type is used to avoid extra allocations from cloning and/or populating
+// the response Header map and all its 1-element slices.
+type extraHeader struct {
+	contentType      string
+	contentLength    string
+	connection       string
+	date             string
+	transferEncoding string
+}
+
+// Sorted the same as extraHeader.Write's loop.
+var extraHeaderKeys = [][]byte{
+	[]byte("Content-Type"), []byte("Content-Length"),
+	[]byte("Connection"), []byte("Date"), []byte("Transfer-Encoding"),
+}
+
+// The value receiver, despite copying 5 strings to the stack,
+// prevents an extra allocation. The escape analysis isn't smart
+// enough to realize this doesn't mutate h.
+func (h extraHeader) Write(w io.Writer) {
+	for i, v := range []string{h.contentType, h.contentLength, h.connection, h.date, h.transferEncoding} {
+		if v != "" {
+			w.Write(extraHeaderKeys[i])
+			w.Write(colonSpace)
+			io.WriteString(w, v)
+			w.Write(crlf)
 		}
 	}
 }
@@ -496,23 +661,47 @@
 	cw.wroteHeader = true
 
 	w := cw.res
-	code := w.status
-	done := w.handlerDone
+
+	// header is written out to w.conn.buf below. Depending on the
+	// state of the handler, we either own the map or not. If we
+	// don't own it, the exclude map is created lazily for
+	// WriteSubset to remove headers. The setHeader struct holds
+	// headers we need to add.
+	header := cw.header
+	owned := header != nil
+	if !owned {
+		header = w.handlerHeader
+	}
+	var excludeHeader map[string]bool
+	delHeader := func(key string) {
+		if owned {
+			header.Del(key)
+			return
+		}
+		if _, ok := header[key]; !ok {
+			return
+		}
+		if excludeHeader == nil {
+			excludeHeader = make(map[string]bool)
+		}
+		excludeHeader[key] = true
+	}
+	var setHeader extraHeader
 
 	// If the handler is done but never sent a Content-Length
 	// response header and this is our first (and last) write, set
 	// it, even to zero. This helps HTTP/1.0 clients keep their
 	// "keep-alive" connections alive.
-	if done && cw.header.get("Content-Length") == "" && w.req.Method != "HEAD" {
+	if w.handlerDone && header.get("Content-Length") == "" && w.req.Method != "HEAD" {
 		w.contentLength = int64(len(p))
-		cw.header.Set("Content-Length", strconv.Itoa(len(p)))
+		setHeader.contentLength = strconv.Itoa(len(p))
 	}
 
 	// If this was an HTTP/1.0 request with keep-alive and we sent a
 	// Content-Length back, we can make this a keep-alive response ...
 	if w.req.wantsHttp10KeepAlive() {
-		sentLength := cw.header.get("Content-Length") != ""
-		if sentLength && cw.header.get("Connection") == "keep-alive" {
+		sentLength := header.get("Content-Length") != ""
+		if sentLength && header.get("Connection") == "keep-alive" {
 			w.closeAfterReply = false
 		}
 	}
@@ -521,15 +710,15 @@
 	hasCL := w.contentLength != -1
 
 	if w.req.wantsHttp10KeepAlive() && (w.req.Method == "HEAD" || hasCL) {
-		_, connectionHeaderSet := cw.header["Connection"]
+		_, connectionHeaderSet := header["Connection"]
 		if !connectionHeaderSet {
-			cw.header.Set("Connection", "keep-alive")
+			setHeader.connection = "keep-alive"
 		}
 	} else if !w.req.ProtoAtLeast(1, 1) || w.req.wantsClose() {
 		w.closeAfterReply = true
 	}
 
-	if cw.header.get("Connection") == "close" {
+	if header.get("Connection") == "close" {
 		w.closeAfterReply = true
 	}
 
@@ -543,49 +732,49 @@
 			n, _ := io.CopyN(ioutil.Discard, w.req.Body, maxPostHandlerReadBytes+1)
 			if n >= maxPostHandlerReadBytes {
 				w.requestTooLarge()
-				cw.header.Set("Connection", "close")
+				delHeader("Connection")
+				setHeader.connection = "close"
 			} else {
 				w.req.Body.Close()
 			}
 		}
 	}
 
+	code := w.status
 	if code == StatusNotModified {
 		// Must not have body.
-		for _, header := range []string{"Content-Type", "Content-Length", "Transfer-Encoding"} {
-			// RFC 2616 section 10.3.5: "the response MUST NOT include other entity-headers"
-			if cw.header.get(header) != "" {
-				cw.header.Del(header)
-			}
+		// RFC 2616 section 10.3.5: "the response MUST NOT include other entity-headers"
+		for _, k := range []string{"Content-Type", "Content-Length", "Transfer-Encoding"} {
+			delHeader(k)
 		}
 	} else {
 		// If no content type, apply sniffing algorithm to body.
-		if cw.header.get("Content-Type") == "" && w.req.Method != "HEAD" {
-			cw.header.Set("Content-Type", DetectContentType(p))
+		if header.get("Content-Type") == "" && w.req.Method != "HEAD" {
+			setHeader.contentType = DetectContentType(p)
 		}
 	}
 
-	if _, ok := cw.header["Date"]; !ok {
-		cw.header.Set("Date", time.Now().UTC().Format(TimeFormat))
+	if _, ok := header["Date"]; !ok {
+		setHeader.date = time.Now().UTC().Format(TimeFormat)
 	}
 
-	te := cw.header.get("Transfer-Encoding")
+	te := header.get("Transfer-Encoding")
 	hasTE := te != ""
 	if hasCL && hasTE && te != "identity" {
 		// TODO: return an error if WriteHeader gets a return parameter
 		// For now just ignore the Content-Length.
 		log.Printf("http: WriteHeader called with both Transfer-Encoding of %q and a Content-Length of %d",
 			te, w.contentLength)
-		cw.header.Del("Content-Length")
+		delHeader("Content-Length")
 		hasCL = false
 	}
 
 	if w.req.Method == "HEAD" || code == StatusNotModified {
 		// do nothing
 	} else if code == StatusNoContent {
-		cw.header.Del("Transfer-Encoding")
+		delHeader("Transfer-Encoding")
 	} else if hasCL {
-		cw.header.Del("Transfer-Encoding")
+		delHeader("Transfer-Encoding")
 	} else if w.req.ProtoAtLeast(1, 1) {
 		// HTTP/1.1 or greater: use chunked transfer encoding
 		// to avoid closing the connection at EOF.
@@ -593,29 +782,63 @@
 		// might have set.  Deal with that as need arises once we have a valid
 		// use case.
 		cw.chunking = true
-		cw.header.Set("Transfer-Encoding", "chunked")
+		setHeader.transferEncoding = "chunked"
 	} else {
 		// HTTP version < 1.1: cannot do chunked transfer
 		// encoding and we don't know the Content-Length so
 		// signal EOF by closing connection.
 		w.closeAfterReply = true
-		cw.header.Del("Transfer-Encoding") // in case already set
+		delHeader("Transfer-Encoding") // in case already set
 	}
 
 	// Cannot use Content-Length with non-identity Transfer-Encoding.
 	if cw.chunking {
-		cw.header.Del("Content-Length")
+		delHeader("Content-Length")
 	}
 	if !w.req.ProtoAtLeast(1, 0) {
 		return
 	}
 
 	if w.closeAfterReply && !hasToken(cw.header.get("Connection"), "close") {
-		cw.header.Set("Connection", "close")
+		delHeader("Connection")
+		setHeader.connection = "close"
 	}
 
+	io.WriteString(w.conn.buf, statusLine(w.req, code))
+	cw.header.WriteSubset(w.conn.buf, excludeHeader)
+	setHeader.Write(w.conn.buf)
+	w.conn.buf.Write(crlf)
+}
+
+// statusLines is a cache of Status-Line strings, keyed by code (for
+// HTTP/1.1) or negative code (for HTTP/1.0). This is faster than a
+// map keyed by struct of two fields. This map's max size is bounded
+// by 2*len(statusText), two protocol types for each known official
+// status code in the statusText map.
+var (
+	statusMu    sync.RWMutex
+	statusLines = make(map[int]string)
+)
+
+// statusLine returns a response Status-Line (RFC 2616 Section 6.1)
+// for the given request and response status code.
+func statusLine(req *Request, code int) string {
+	// Fast path:
+	key := code
+	proto11 := req.ProtoAtLeast(1, 1)
+	if !proto11 {
+		key = -key
+	}
+	statusMu.RLock()
+	line, ok := statusLines[key]
+	statusMu.RUnlock()
+	if ok {
+		return line
+	}
+
+	// Slow path:
 	proto := "HTTP/1.0"
-	if w.req.ProtoAtLeast(1, 1) {
+	if proto11 {
 		proto = "HTTP/1.1"
 	}
 	codestring := strconv.Itoa(code)
@@ -623,9 +846,13 @@
 	if !ok {
 		text = "status code " + codestring
 	}
-	io.WriteString(w.conn.buf, proto+" "+codestring+" "+text+"\r\n")
-	cw.header.Write(w.conn.buf)
-	w.conn.buf.Write(crlf)
+	line = proto + " " + codestring + " " + text + "\r\n"
+	if ok {
+		statusMu.Lock()
+		defer statusMu.Unlock()
+		statusLines[key] = line
+	}
+	return line
 }
 
 // bodyAllowed returns true if a Write is allowed for this response type.
@@ -641,7 +868,7 @@
 //
 // Handler starts. No header has been sent. The handler can either
 // write a header, or just start writing.  Writing before sending a header
-// sends an implicity empty 200 OK header.
+// sends an implicitly empty 200 OK header.
 //
 // If the handler didn't declare a Content-Length up front, we either
 // go into chunking mode or, if the handler finishes running before
@@ -699,6 +926,7 @@
 	}
 
 	w.w.Flush()
+	putBufioWriter(w.w, w.sw)
 	w.cw.close()
 	w.conn.buf.Flush()
 
@@ -728,6 +956,15 @@
 func (c *conn) finalFlush() {
 	if c.buf != nil {
 		c.buf.Flush()
+
+		// Steal the bufio.Reader (~4KB worth of memory) and its associated
+		// reader for a future connection.
+		putBufioReader(c.buf.Reader, c.bufswr)
+
+		// Steal the bufio.Writer (~4KB worth of memory) and its associated
+		// writer for a future connection.
+		putBufioWriter(c.buf.Writer, c.bufsww)
+
 		c.buf = nil
 	}
 }
@@ -764,6 +1001,18 @@
 	time.Sleep(rstAvoidanceDelay)
 }
 
+// validNPN returns whether the proto is not a blacklisted Next
+// Protocol Negotiation protocol.  Empty and built-in protocol types
+// are blacklisted and can't be overridden with alternate
+// implementations.
+func validNPN(proto string) bool {
+	switch proto {
+	case "", "http/1.1", "http/1.0":
+		return false
+	}
+	return true
+}
+
 // Serve a new connection.
 func (c *conn) serve() {
 	defer func() {
@@ -779,11 +1028,24 @@
 	}()
 
 	if tlsConn, ok := c.rwc.(*tls.Conn); ok {
+		if d := c.server.ReadTimeout; d != 0 {
+			c.rwc.SetReadDeadline(time.Now().Add(d))
+		}
+		if d := c.server.WriteTimeout; d != 0 {
+			c.rwc.SetWriteDeadline(time.Now().Add(d))
+		}
 		if err := tlsConn.Handshake(); err != nil {
 			return
 		}
 		c.tlsState = new(tls.ConnectionState)
 		*c.tlsState = tlsConn.ConnectionState()
+		if proto := c.tlsState.NegotiatedProtocol; validNPN(proto) {
+			if fn := c.server.TLSNextProto[proto]; fn != nil {
+				h := initNPNRequest{tlsConn, serverHandler{c.server}}
+				fn(c.server, tlsConn, h)
+			}
+			return
+		}
 	}
 
 	for {
@@ -826,20 +1088,12 @@
 			break
 		}
 
-		handler := c.server.Handler
-		if handler == nil {
-			handler = DefaultServeMux
-		}
-		if req.RequestURI == "*" && req.Method == "OPTIONS" {
-			handler = globalOptionsHandler{}
-		}
-
 		// HTTP cannot have multiple simultaneous active requests.[*]
 		// Until the server replies to this request, it can't read another,
 		// so we might as well run the handler in this goroutine.
 		// [*] Not strictly true: HTTP pipelining.  We could let them all process
 		// in parallel even if their responses need to be serialized.
-		handler.ServeHTTP(w, w.req)
+		serverHandler{c.server}.ServeHTTP(w, w.req)
 		if c.hijacked() {
 			return
 		}
@@ -917,13 +1171,16 @@
 // request for a path that doesn't begin with prefix by
 // replying with an HTTP 404 not found error.
 func StripPrefix(prefix string, h Handler) Handler {
+	if prefix == "" {
+		return h
+	}
 	return HandlerFunc(func(w ResponseWriter, r *Request) {
-		if !strings.HasPrefix(r.URL.Path, prefix) {
+		if p := strings.TrimPrefix(r.URL.Path, prefix); len(p) < len(r.URL.Path) {
+			r.URL.Path = p
+			h.ServeHTTP(w, r)
+		} else {
 			NotFound(w, r)
-			return
 		}
-		r.URL.Path = r.URL.Path[len(prefix):]
-		h.ServeHTTP(w, r)
 	})
 }
 
@@ -965,9 +1222,9 @@
 			}
 
 			// clean up but preserve trailing slash
-			trailing := urlStr[len(urlStr)-1] == '/'
+			trailing := strings.HasSuffix(urlStr, "/")
 			urlStr = path.Clean(urlStr)
-			if trailing && urlStr[len(urlStr)-1] != '/' {
+			if trailing && !strings.HasSuffix(urlStr, "/") {
 				urlStr += "/"
 			}
 			urlStr += query
@@ -1232,6 +1489,32 @@
 	WriteTimeout   time.Duration // maximum duration before timing out write of the response
 	MaxHeaderBytes int           // maximum size of request headers, DefaultMaxHeaderBytes if 0
 	TLSConfig      *tls.Config   // optional TLS config, used by ListenAndServeTLS
+
+	// TLSNextProto optionally specifies a function to take over
+	// ownership of the provided TLS connection when an NPN
+	// protocol upgrade has occurred.  The map key is the protocol
+	// name negotiated. The Handler argument should be used to
+	// handle HTTP requests and will initialize the Request's TLS
+	// and RemoteAddr if not already set.  The connection is
+	// automatically closed when the function returns.
+	TLSNextProto map[string]func(*Server, *tls.Conn, Handler)
+}
+
+// serverHandler delegates to either the server's Handler or
+// DefaultServeMux and also handles "OPTIONS *" requests.
+type serverHandler struct {
+	srv *Server
+}
+
+func (sh serverHandler) ServeHTTP(rw ResponseWriter, req *Request) {
+	handler := sh.srv.Handler
+	if handler == nil {
+		handler = DefaultServeMux
+	}
+	if req.RequestURI == "*" && req.Method == "OPTIONS" {
+		handler = globalOptionsHandler{}
+	}
+	handler.ServeHTTP(rw, req)
 }
 
 // ListenAndServe listens on the TCP network address srv.Addr and then
@@ -1274,19 +1557,12 @@
 			return e
 		}
 		tempDelay = 0
-		if srv.ReadTimeout != 0 {
-			rw.SetReadDeadline(time.Now().Add(srv.ReadTimeout))
-		}
-		if srv.WriteTimeout != 0 {
-			rw.SetWriteDeadline(time.Now().Add(srv.WriteTimeout))
-		}
 		c, err := srv.newConn(rw)
 		if err != nil {
 			continue
 		}
 		go c.serve()
 	}
-	panic("not reached")
 }
 
 // ListenAndServe listens on the TCP network address addr
@@ -1425,7 +1701,7 @@
 }
 
 func (h *timeoutHandler) ServeHTTP(w ResponseWriter, r *Request) {
-	done := make(chan bool)
+	done := make(chan bool, 1)
 	tw := &timeoutWriter{w: w}
 	go func() {
 		h.handler.ServeHTTP(tw, r)
@@ -1494,6 +1770,31 @@
 	}
 }
 
+// eofReader is a non-nil io.ReadCloser that always returns EOF.
+var eofReader = ioutil.NopCloser(strings.NewReader(""))
+
+// initNPNRequest is an HTTP handler that initializes certain
+// uninitialized fields in its *Request. Such partially-initialized
+// Requests come from NPN protocol handlers.
+type initNPNRequest struct {
+	c *tls.Conn
+	h serverHandler
+}
+
+func (h initNPNRequest) ServeHTTP(rw ResponseWriter, req *Request) {
+	if req.TLS == nil {
+		req.TLS = &tls.ConnectionState{}
+		*req.TLS = h.c.ConnectionState()
+	}
+	if req.Body == nil {
+		req.Body = eofReader
+	}
+	if req.RemoteAddr == "" {
+		req.RemoteAddr = h.c.RemoteAddr().String()
+	}
+	h.h.ServeHTTP(rw, req)
+}
+
 // loggingConn is used for debugging.
 type loggingConn struct {
 	name string
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/server_test.go gcc-4.8.1/libgo/go/net/http/server_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/server_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/http/server_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,9 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package http
+package http_test
 
 import (
+	. "net/http"
+	"net/http/httptest"
 	"net/url"
 	"testing"
 )
@@ -76,20 +78,27 @@
 			},
 		}
 		h, pattern := mux.Handler(r)
-		cs := &codeSaver{h: Header{}}
-		h.ServeHTTP(cs, r)
-		if pattern != tt.pattern || cs.code != tt.code {
-			t.Errorf("%s %s %s = %d, %q, want %d, %q", tt.method, tt.host, tt.path, cs.code, pattern, tt.code, tt.pattern)
+		rr := httptest.NewRecorder()
+		h.ServeHTTP(rr, r)
+		if pattern != tt.pattern || rr.Code != tt.code {
+			t.Errorf("%s %s %s = %d, %q, want %d, %q", tt.method, tt.host, tt.path, rr.Code, pattern, tt.code, tt.pattern)
 		}
 	}
 }
 
-// A codeSaver is a ResponseWriter that saves the code passed to WriteHeader.
-type codeSaver struct {
-	h    Header
-	code int
+func TestServerRedirect(t *testing.T) {
+	// This used to crash. It's not valid input (bad path), but it
+	// shouldn't crash.
+	rr := httptest.NewRecorder()
+	req := &Request{
+		Method: "GET",
+		URL: &url.URL{
+			Scheme: "http",
+			Path:   "not-empty-but-no-leading-slash", // bogus
+		},
+	}
+	Redirect(rr, req, "", 304)
+	if rr.Code != 304 {
+		t.Errorf("Code = %d; want 304", rr.Code)
+	}
 }
-
-func (cs *codeSaver) Header() Header              { return cs.h }
-func (cs *codeSaver) Write(p []byte) (int, error) { return len(p), nil }
-func (cs *codeSaver) WriteHeader(code int)        { cs.code = code }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/serve_test.go gcc-4.8.1/libgo/go/net/http/serve_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/serve_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/serve_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -10,6 +10,7 @@
 	"bufio"
 	"bytes"
 	"crypto/tls"
+	"errors"
 	"fmt"
 	"io"
 	"io/ioutil"
@@ -64,10 +65,39 @@
 	return string(a)
 }
 
+type noopConn struct{}
+
+func (noopConn) LocalAddr() net.Addr                { return dummyAddr("local-addr") }
+func (noopConn) RemoteAddr() net.Addr               { return dummyAddr("remote-addr") }
+func (noopConn) SetDeadline(t time.Time) error      { return nil }
+func (noopConn) SetReadDeadline(t time.Time) error  { return nil }
+func (noopConn) SetWriteDeadline(t time.Time) error { return nil }
+
+type rwTestConn struct {
+	io.Reader
+	io.Writer
+	noopConn
+
+	closeFunc func() error // called if non-nil
+	closec    chan bool    // else, if non-nil, send value to it on close
+}
+
+func (c *rwTestConn) Close() error {
+	if c.closeFunc != nil {
+		return c.closeFunc()
+	}
+	select {
+	case c.closec <- true:
+	default:
+	}
+	return nil
+}
+
 type testConn struct {
 	readBuf  bytes.Buffer
 	writeBuf bytes.Buffer
 	closec   chan bool // if non-nil, send value to it on close
+	noopConn
 }
 
 func (c *testConn) Read(b []byte) (int, error) {
@@ -86,26 +116,6 @@
 	return nil
 }
 
-func (c *testConn) LocalAddr() net.Addr {
-	return dummyAddr("local-addr")
-}
-
-func (c *testConn) RemoteAddr() net.Addr {
-	return dummyAddr("remote-addr")
-}
-
-func (c *testConn) SetDeadline(t time.Time) error {
-	return nil
-}
-
-func (c *testConn) SetReadDeadline(t time.Time) error {
-	return nil
-}
-
-func (c *testConn) SetWriteDeadline(t time.Time) error {
-	return nil
-}
-
 func TestConsumingBodyOnNextConn(t *testing.T) {
 	conn := new(testConn)
 	for i := 0; i < 2; i++ {
@@ -184,6 +194,7 @@
 }
 
 func TestHostHandlers(t *testing.T) {
+	defer afterTest(t)
 	mux := NewServeMux()
 	for _, h := range handlers {
 		mux.Handle(h.pattern, stringHandler(h.msg))
@@ -256,28 +267,22 @@
 }
 
 func TestServerTimeouts(t *testing.T) {
-	// TODO(bradfitz): convert this to use httptest.Server
-	l, err := net.Listen("tcp", "127.0.0.1:0")
-	if err != nil {
-		t.Fatalf("listen error: %v", err)
-	}
-	addr, _ := l.Addr().(*net.TCPAddr)
-
+	defer afterTest(t)
 	reqNum := 0
-	handler := HandlerFunc(func(res ResponseWriter, req *Request) {
+	ts := httptest.NewUnstartedServer(HandlerFunc(func(res ResponseWriter, req *Request) {
 		reqNum++
 		fmt.Fprintf(res, "req=%d", reqNum)
-	})
-
-	server := &Server{Handler: handler, ReadTimeout: 250 * time.Millisecond, WriteTimeout: 250 * time.Millisecond}
-	go server.Serve(l)
-
-	url := fmt.Sprintf("http://%s/", addr)
+	}))
+	ts.Config.ReadTimeout = 250 * time.Millisecond
+	ts.Config.WriteTimeout = 250 * time.Millisecond
+	ts.Start()
+	defer ts.Close()
 
 	// Hit the HTTP server successfully.
 	tr := &Transport{DisableKeepAlives: true} // they interfere with this test
+	defer tr.CloseIdleConnections()
 	c := &Client{Transport: tr}
-	r, err := c.Get(url)
+	r, err := c.Get(ts.URL)
 	if err != nil {
 		t.Fatalf("http Get #1: %v", err)
 	}
@@ -290,13 +295,13 @@
 
 	// Slow client that should timeout.
 	t1 := time.Now()
-	conn, err := net.Dial("tcp", addr.String())
+	conn, err := net.Dial("tcp", ts.Listener.Addr().String())
 	if err != nil {
 		t.Fatalf("Dial: %v", err)
 	}
 	buf := make([]byte, 1)
 	n, err := conn.Read(buf)
-	latency := time.Now().Sub(t1)
+	latency := time.Since(t1)
 	if n != 0 || err != io.EOF {
 		t.Errorf("Read = %v, %v, wanted %v, %v", n, err, 0, io.EOF)
 	}
@@ -307,7 +312,7 @@
 	// Hit the HTTP server successfully again, verifying that the
 	// previous slow connection didn't run our handler.  (that we
 	// get "req=2", not "req=3")
-	r, err = Get(url)
+	r, err = Get(ts.URL)
 	if err != nil {
 		t.Fatalf("http Get #2: %v", err)
 	}
@@ -317,11 +322,87 @@
 		t.Errorf("Get #2 got %q, want %q", string(got), expected)
 	}
 
-	l.Close()
+	if !testing.Short() {
+		conn, err := net.Dial("tcp", ts.Listener.Addr().String())
+		if err != nil {
+			t.Fatalf("Dial: %v", err)
+		}
+		defer conn.Close()
+		go io.Copy(ioutil.Discard, conn)
+		for i := 0; i < 5; i++ {
+			_, err := conn.Write([]byte("GET / HTTP/1.1\r\nHost: foo\r\n\r\n"))
+			if err != nil {
+				t.Fatalf("on write %d: %v", i, err)
+			}
+			time.Sleep(ts.Config.ReadTimeout / 2)
+		}
+	}
+}
+
+// golang.org/issue/4741 -- setting only a write timeout that triggers
+// shouldn't cause a handler to block forever on reads (next HTTP
+// request) that will never happen.
+func TestOnlyWriteTimeout(t *testing.T) {
+	defer afterTest(t)
+	var conn net.Conn
+	var afterTimeoutErrc = make(chan error, 1)
+	ts := httptest.NewUnstartedServer(HandlerFunc(func(w ResponseWriter, req *Request) {
+		buf := make([]byte, 512<<10)
+		_, err := w.Write(buf)
+		if err != nil {
+			t.Errorf("handler Write error: %v", err)
+			return
+		}
+		conn.SetWriteDeadline(time.Now().Add(-30 * time.Second))
+		_, err = w.Write(buf)
+		afterTimeoutErrc <- err
+	}))
+	ts.Listener = trackLastConnListener{ts.Listener, &conn}
+	ts.Start()
+	defer ts.Close()
+
+	tr := &Transport{DisableKeepAlives: false}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	errc := make(chan error)
+	go func() {
+		res, err := c.Get(ts.URL)
+		if err != nil {
+			errc <- err
+			return
+		}
+		_, err = io.Copy(ioutil.Discard, res.Body)
+		errc <- err
+	}()
+	select {
+	case err := <-errc:
+		if err == nil {
+			t.Errorf("expected an error from Get request")
+		}
+	case <-time.After(5 * time.Second):
+		t.Fatal("timeout waiting for Get error")
+	}
+	if err := <-afterTimeoutErrc; err == nil {
+		t.Error("expected write error after timeout")
+	}
+}
+
+// trackLastConnListener tracks the last net.Conn that was accepted.
+type trackLastConnListener struct {
+	net.Listener
+	last *net.Conn // destination
+}
+
+func (l trackLastConnListener) Accept() (c net.Conn, err error) {
+	c, err = l.Listener.Accept()
+	*l.last = c
+	return
 }
 
 // TestIdentityResponse verifies that a handler can unset
 func TestIdentityResponse(t *testing.T) {
+	defer afterTest(t)
 	handler := HandlerFunc(func(rw ResponseWriter, req *Request) {
 		rw.Header().Set("Content-Length", "3")
 		rw.Header().Set("Transfer-Encoding", req.FormValue("te"))
@@ -367,10 +448,12 @@
 
 	// Verify that ErrContentLength is returned
 	url := ts.URL + "/?overwrite=1"
-	_, err := Get(url)
+	res, err := Get(url)
 	if err != nil {
 		t.Fatalf("error with Get of %s: %v", url, err)
 	}
+	res.Body.Close()
+
 	// Verify that the connection is closed when the declared Content-Length
 	// is larger than what the handler wrote.
 	conn, err := net.Dial("tcp", ts.Listener.Addr().String())
@@ -395,6 +478,7 @@
 }
 
 func testTCPConnectionCloses(t *testing.T, req string, h Handler) {
+	defer afterTest(t)
 	s := httptest.NewServer(h)
 	defer s.Close()
 
@@ -465,6 +549,7 @@
 }
 
 func TestSetsRemoteAddr(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		fmt.Fprintf(w, "%s", r.RemoteAddr)
 	}))
@@ -485,6 +570,7 @@
 }
 
 func TestChunkedResponseHeaders(t *testing.T) {
+	defer afterTest(t)
 	log.SetOutput(ioutil.Discard) // is noisy otherwise
 	defer log.SetOutput(os.Stderr)
 
@@ -499,6 +585,7 @@
 	if err != nil {
 		t.Fatalf("Get error: %v", err)
 	}
+	defer res.Body.Close()
 	if g, e := res.ContentLength, int64(-1); g != e {
 		t.Errorf("expected ContentLength of %d; got %d", e, g)
 	}
@@ -514,6 +601,7 @@
 // chunking in their response headers and aren't allowed to produce
 // output.
 func Test304Responses(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.WriteHeader(StatusNotModified)
 		_, err := w.Write([]byte("illegal body"))
@@ -543,6 +631,7 @@
 // allowed to produce output, and don't set a Content-Type since
 // the real type of the body data cannot be inferred.
 func TestHeadResponses(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		_, err := w.Write([]byte("Ignored body"))
 		if err != ErrBodyNotAllowed {
@@ -577,6 +666,7 @@
 }
 
 func TestTLSHandshakeTimeout(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewUnstartedServer(HandlerFunc(func(w ResponseWriter, r *Request) {}))
 	ts.Config.ReadTimeout = 250 * time.Millisecond
 	ts.StartTLS()
@@ -596,6 +686,7 @@
 }
 
 func TestTLSServer(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewTLSServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.TLS != nil {
 			w.Header().Set("X-TLS-Set", "true")
@@ -678,6 +769,7 @@
 // Tests that the server responds to the "Expect" request header
 // correctly.
 func TestServerExpect(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		// Note using r.FormValue("readbody") because for POST
 		// requests that would read from r.Body, which we only
@@ -815,6 +907,7 @@
 }
 
 func TestTimeoutHandler(t *testing.T) {
+	defer afterTest(t)
 	sendHi := make(chan bool, 1)
 	writeErrors := make(chan error, 1)
 	sayHi := HandlerFunc(func(w ResponseWriter, r *Request) {
@@ -889,6 +982,7 @@
 // the previous request's body, which is not optimal for zero-lengthed bodies,
 // as the client would then see http.ErrBodyReadAfterClose and not 0, io.EOF.
 func TestZeroLengthPostAndResponse(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, r *Request) {
 		all, err := ioutil.ReadAll(r.Body)
 		if err != nil {
@@ -939,6 +1033,7 @@
 }
 
 func testHandlerPanic(t *testing.T, withHijack bool, panicValue interface{}) {
+	defer afterTest(t)
 	// Unlike the other tests that set the log output to ioutil.Discard
 	// to quiet the output, this test uses a pipe.  The pipe serves three
 	// purposes:
@@ -958,6 +1053,7 @@
 	pr, pw := io.Pipe()
 	log.SetOutput(pw)
 	defer log.SetOutput(os.Stderr)
+	defer pw.Close()
 
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if withHijack {
@@ -979,7 +1075,7 @@
 		buf := make([]byte, 4<<10)
 		_, err := pr.Read(buf)
 		pr.Close()
-		if err != nil {
+		if err != nil && err != io.EOF {
 			t.Error(err)
 		}
 		done <- true
@@ -1003,6 +1099,7 @@
 }
 
 func TestNoDate(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header()["Date"] = nil
 	}))
@@ -1018,6 +1115,7 @@
 }
 
 func TestStripPrefix(t *testing.T) {
+	defer afterTest(t)
 	h := HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("X-Path", r.URL.Path)
 	})
@@ -1031,6 +1129,7 @@
 	if g, e := res.Header.Get("X-Path"), "/bar"; g != e {
 		t.Errorf("test 1: got %s, want %s", g, e)
 	}
+	res.Body.Close()
 
 	res, err = Get(ts.URL + "/bar")
 	if err != nil {
@@ -1039,9 +1138,11 @@
 	if g, e := res.StatusCode, 404; g != e {
 		t.Errorf("test 2: got status %v, want %v", g, e)
 	}
+	res.Body.Close()
 }
 
 func TestRequestLimit(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		t.Fatalf("didn't expect to get request in Handler")
 	}))
@@ -1058,6 +1159,7 @@
 		// we do support it (at least currently), so we expect a response below.
 		t.Fatalf("Do: %v", err)
 	}
+	defer res.Body.Close()
 	if res.StatusCode != 413 {
 		t.Fatalf("expected 413 response status; got: %d %s", res.StatusCode, res.Status)
 	}
@@ -1084,6 +1186,7 @@
 }
 
 func TestRequestBodyLimit(t *testing.T) {
+	defer afterTest(t)
 	const limit = 1 << 20
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		r.Body = MaxBytesReader(w, r.Body, limit)
@@ -1120,6 +1223,7 @@
 // TestClientWriteShutdown tests that if the client shuts down the write
 // side of their TCP connection, the server doesn't send a 400 Bad Request.
 func TestClientWriteShutdown(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {}))
 	defer ts.Close()
 	conn, err := net.Dial("tcp", ts.Listener.Addr().String())
@@ -1174,6 +1278,7 @@
 // closing the TCP connection, causing the client to get a RST.
 // See http://golang.org/issue/3595
 func TestServerGracefulClose(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		Error(w, "bye", StatusUnauthorized)
 	}))
@@ -1216,6 +1321,7 @@
 }
 
 func TestCaseSensitiveMethod(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.Method != "get" {
 			t.Errorf(`Got method %q; want "get"`, r.Method)
@@ -1264,6 +1370,7 @@
 }
 
 func TestCloseNotifier(t *testing.T) {
+	defer afterTest(t)
 	gotReq := make(chan bool, 1)
 	sawClose := make(chan bool, 1)
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, req *Request) {
@@ -1299,6 +1406,31 @@
 	ts.Close()
 }
 
+func TestCloseNotifierChanLeak(t *testing.T) {
+	defer afterTest(t)
+	req := []byte(strings.Replace(`GET / HTTP/1.0
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+	for i := 0; i < 20; i++ {
+		var output bytes.Buffer
+		conn := &rwTestConn{
+			Reader: bytes.NewReader(req),
+			Writer: &output,
+			closec: make(chan bool, 1),
+		}
+		ln := &oneConnListener{conn: conn}
+		handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+			// Ignore the return value and never read from
+			// it, testing that we don't leak goroutines
+			// on the sending side:
+			_ = rw.(CloseNotifier).CloseNotify()
+		})
+		go Serve(ln, handler)
+		<-conn.closec
+	}
+}
+
 func TestOptions(t *testing.T) {
 	uric := make(chan string, 2) // only expect 1, but leave space for 2
 	mux := NewServeMux()
@@ -1351,6 +1483,198 @@
 	}
 }
 
+// Tests regarding the ordering of Write, WriteHeader, Header, and
+// Flush calls.  In Go 1.0, rw.WriteHeader immediately flushed the
+// (*response).header to the wire. In Go 1.1, the actual wire flush is
+// delayed, so we could maybe tack on a Content-Length and better
+// Content-Type after we see more (or all) of the output. To preserve
+// compatibility with Go 1, we need to be careful to track which
+// headers were live at the time of WriteHeader, so we write the same
+// ones, even if the handler modifies them (~erroneously) after the
+// first Write.
+func TestHeaderToWire(t *testing.T) {
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+
+	tests := []struct {
+		name    string
+		handler func(ResponseWriter, *Request)
+		check   func(output string) error
+	}{
+		{
+			name: "write without Header",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Write([]byte("hello world"))
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Length:") {
+					return errors.New("no content-length")
+				}
+				if !strings.Contains(got, "Content-Type: text/plain") {
+					return errors.New("no content-length")
+				}
+				return nil
+			},
+		},
+		{
+			name: "Header mutation before write",
+			handler: func(rw ResponseWriter, r *Request) {
+				h := rw.Header()
+				h.Set("Content-Type", "some/type")
+				rw.Write([]byte("hello world"))
+				h.Set("Too-Late", "bogus")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Length:") {
+					return errors.New("no content-length")
+				}
+				if !strings.Contains(got, "Content-Type: some/type") {
+					return errors.New("wrong content-type")
+				}
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("don't want too-late header")
+				}
+				return nil
+			},
+		},
+		{
+			name: "write then useless Header mutation",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Write([]byte("hello world"))
+				rw.Header().Set("Too-Late", "Write already wrote headers")
+			},
+			check: func(got string) error {
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("header appeared from after WriteHeader")
+				}
+				return nil
+			},
+		},
+		{
+			name: "flush then write",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.(Flusher).Flush()
+				rw.Write([]byte("post-flush"))
+				rw.Header().Set("Too-Late", "Write already wrote headers")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Transfer-Encoding: chunked") {
+					return errors.New("not chunked")
+				}
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("header appeared from after WriteHeader")
+				}
+				return nil
+			},
+		},
+		{
+			name: "header then flush",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Header().Set("Content-Type", "some/type")
+				rw.(Flusher).Flush()
+				rw.Write([]byte("post-flush"))
+				rw.Header().Set("Too-Late", "Write already wrote headers")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Transfer-Encoding: chunked") {
+					return errors.New("not chunked")
+				}
+				if strings.Contains(got, "Too-Late") {
+					return errors.New("header appeared from after WriteHeader")
+				}
+				if !strings.Contains(got, "Content-Type: some/type") {
+					return errors.New("wrong content-length")
+				}
+				return nil
+			},
+		},
+		{
+			name: "sniff-on-first-write content-type",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Write([]byte("<html><head></head><body>some html</body></html>"))
+				rw.Header().Set("Content-Type", "x/wrong")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Type: text/html") {
+					return errors.New("wrong content-length; want html")
+				}
+				return nil
+			},
+		},
+		{
+			name: "explicit content-type wins",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Header().Set("Content-Type", "some/type")
+				rw.Write([]byte("<html><head></head><body>some html</body></html>"))
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Type: some/type") {
+					return errors.New("wrong content-length; want html")
+				}
+				return nil
+			},
+		},
+		{
+			name: "empty handler",
+			handler: func(rw ResponseWriter, r *Request) {
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Content-Type: text/plain") {
+					return errors.New("wrong content-length; want text/plain")
+				}
+				if !strings.Contains(got, "Content-Length: 0") {
+					return errors.New("want 0 content-length")
+				}
+				return nil
+			},
+		},
+		{
+			name: "only Header, no write",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.Header().Set("Some-Header", "some-value")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "Some-Header") {
+					return errors.New("didn't get header")
+				}
+				return nil
+			},
+		},
+		{
+			name: "WriteHeader call",
+			handler: func(rw ResponseWriter, r *Request) {
+				rw.WriteHeader(404)
+				rw.Header().Set("Too-Late", "some-value")
+			},
+			check: func(got string) error {
+				if !strings.Contains(got, "404") {
+					return errors.New("wrong status")
+				}
+				if strings.Contains(got, "Some-Header") {
+					return errors.New("shouldn't have seen Too-Late")
+				}
+				return nil
+			},
+		},
+	}
+	for _, tc := range tests {
+		var output bytes.Buffer
+		conn := &rwTestConn{
+			Reader: bytes.NewReader(req),
+			Writer: &output,
+			closec: make(chan bool, 1),
+		}
+		ln := &oneConnListener{conn: conn}
+		go Serve(ln, HandlerFunc(tc.handler))
+		<-conn.closec
+		if err := tc.check(output.String()); err != nil {
+			t.Errorf("%s: %v\nGot response:\n%s", tc.name, err, output.Bytes())
+		}
+	}
+}
+
 // goTimeout runs f, failing t if f takes more than ns to complete.
 func goTimeout(t *testing.T, d time.Duration, f func()) {
 	ch := make(chan bool, 2)
@@ -1524,3 +1848,179 @@
 		b.Errorf("Test failure: %v, with output: %s", err, out)
 	}
 }
+
+func BenchmarkServerFakeConnNoKeepAlive(b *testing.B) {
+	b.ReportAllocs()
+	req := []byte(strings.Replace(`GET / HTTP/1.0
+Host: golang.org
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+Accept-Encoding: gzip,deflate,sdch
+Accept-Language: en-US,en;q=0.8
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+
+`, "\n", "\r\n", -1))
+	res := []byte("Hello world!\n")
+
+	conn := &testConn{
+		// testConn.Close will not push into the channel
+		// if it's full.
+		closec: make(chan bool, 1),
+	}
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		rw.Header().Set("Content-Type", "text/html; charset=utf-8")
+		rw.Write(res)
+	})
+	ln := new(oneConnListener)
+	for i := 0; i < b.N; i++ {
+		conn.readBuf.Reset()
+		conn.writeBuf.Reset()
+		conn.readBuf.Write(req)
+		ln.conn = conn
+		Serve(ln, handler)
+		<-conn.closec
+	}
+}
+
+// repeatReader reads content count times, then EOFs.
+type repeatReader struct {
+	content []byte
+	count   int
+	off     int
+}
+
+func (r *repeatReader) Read(p []byte) (n int, err error) {
+	if r.count <= 0 {
+		return 0, io.EOF
+	}
+	n = copy(p, r.content[r.off:])
+	r.off += n
+	if r.off == len(r.content) {
+		r.count--
+		r.off = 0
+	}
+	return
+}
+
+func BenchmarkServerFakeConnWithKeepAlive(b *testing.B) {
+	b.ReportAllocs()
+
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17
+Accept-Encoding: gzip,deflate,sdch
+Accept-Language: en-US,en;q=0.8
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+
+`, "\n", "\r\n", -1))
+	res := []byte("Hello world!\n")
+
+	conn := &rwTestConn{
+		Reader: &repeatReader{content: req, count: b.N},
+		Writer: ioutil.Discard,
+		closec: make(chan bool, 1),
+	}
+	handled := 0
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		handled++
+		rw.Header().Set("Content-Type", "text/html; charset=utf-8")
+		rw.Write(res)
+	})
+	ln := &oneConnListener{conn: conn}
+	go Serve(ln, handler)
+	<-conn.closec
+	if b.N != handled {
+		b.Errorf("b.N=%d but handled %d", b.N, handled)
+	}
+}
+
+// same as above, but representing the most simple possible request
+// and handler. Notably: the handler does not call rw.Header().
+func BenchmarkServerFakeConnWithKeepAliveLite(b *testing.B) {
+	b.ReportAllocs()
+
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+	res := []byte("Hello world!\n")
+
+	conn := &rwTestConn{
+		Reader: &repeatReader{content: req, count: b.N},
+		Writer: ioutil.Discard,
+		closec: make(chan bool, 1),
+	}
+	handled := 0
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		handled++
+		rw.Write(res)
+	})
+	ln := &oneConnListener{conn: conn}
+	go Serve(ln, handler)
+	<-conn.closec
+	if b.N != handled {
+		b.Errorf("b.N=%d but handled %d", b.N, handled)
+	}
+}
+
+const someResponse = "<html>some response</html>"
+
+// A Response that's just no bigger than 2KB, the buffer-before-chunking threshold.
+var response = bytes.Repeat([]byte(someResponse), 2<<10/len(someResponse))
+
+// Both Content-Type and Content-Length set. Should be no buffering.
+func BenchmarkServerHandlerTypeLen(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Header().Set("Content-Type", "text/html")
+		w.Header().Set("Content-Length", strconv.Itoa(len(response)))
+		w.Write(response)
+	}))
+}
+
+// A Content-Type is set, but no length. No sniffing, but will count the Content-Length.
+func BenchmarkServerHandlerNoLen(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Header().Set("Content-Type", "text/html")
+		w.Write(response)
+	}))
+}
+
+// A Content-Length is set, but the Content-Type will be sniffed.
+func BenchmarkServerHandlerNoType(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Header().Set("Content-Length", strconv.Itoa(len(response)))
+		w.Write(response)
+	}))
+}
+
+// Neither a Content-Type or Content-Length, so sniffed and counted.
+func BenchmarkServerHandlerNoHeader(b *testing.B) {
+	benchmarkHandler(b, HandlerFunc(func(w ResponseWriter, r *Request) {
+		w.Write(response)
+	}))
+}
+
+func benchmarkHandler(b *testing.B, h Handler) {
+	b.ReportAllocs()
+	req := []byte(strings.Replace(`GET / HTTP/1.1
+Host: golang.org
+
+`, "\n", "\r\n", -1))
+	conn := &rwTestConn{
+		Reader: &repeatReader{content: req, count: b.N},
+		Writer: ioutil.Discard,
+		closec: make(chan bool, 1),
+	}
+	handled := 0
+	handler := HandlerFunc(func(rw ResponseWriter, r *Request) {
+		handled++
+		h.ServeHTTP(rw, r)
+	})
+	ln := &oneConnListener{conn: conn}
+	go Serve(ln, handler)
+	<-conn.closec
+	if b.N != handled {
+		b.Errorf("b.N=%d but handled %d", b.N, handled)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/sniff_test.go gcc-4.8.1/libgo/go/net/http/sniff_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/sniff_test.go	2012-03-06 11:57:23.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/sniff_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -54,6 +54,7 @@
 }
 
 func TestServerContentType(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		i, _ := strconv.Atoi(r.FormValue("i"))
 		tt := sniffTests[i]
@@ -84,6 +85,8 @@
 }
 
 func TestContentTypeWithCopy(t *testing.T) {
+	defer afterTest(t)
+
 	const (
 		input    = "\n<html>\n\t<head>\n"
 		expected = "text/html; charset=utf-8"
@@ -116,6 +119,7 @@
 }
 
 func TestSniffWriteSize(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		size, _ := strconv.Atoi(r.FormValue("size"))
 		written, err := io.WriteString(w, strings.Repeat("a", size))
@@ -133,6 +137,11 @@
 		if err != nil {
 			t.Fatalf("size %d: %v", size, err)
 		}
-		res.Body.Close()
+		if _, err := io.Copy(ioutil.Discard, res.Body); err != nil {
+			t.Fatalf("size %d: io.Copy of body = %v", size, err)
+		}
+		if err := res.Body.Close(); err != nil {
+			t.Fatalf("size %d: body Close = %v", size, err)
+		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/status.go gcc-4.8.1/libgo/go/net/http/status.go
--- gcc-4.8.1.orig/libgo/go/net/http/status.go	2012-03-06 11:57:23.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/status.go	2013-07-16 01:55:04.520470000 -0500
@@ -51,6 +51,13 @@
 	StatusServiceUnavailable      = 503
 	StatusGatewayTimeout          = 504
 	StatusHTTPVersionNotSupported = 505
+
+	// New HTTP status codes from RFC 6585. Not exported yet in Go 1.1.
+	// See discussion at https://codereview.appspot.com/7678043/
+	statusPreconditionRequired          = 428
+	statusTooManyRequests               = 429
+	statusRequestHeaderFieldsTooLarge   = 431
+	statusNetworkAuthenticationRequired = 511
 )
 
 var statusText = map[int]string{
@@ -99,6 +106,11 @@
 	StatusServiceUnavailable:      "Service Unavailable",
 	StatusGatewayTimeout:          "Gateway Timeout",
 	StatusHTTPVersionNotSupported: "HTTP Version Not Supported",
+
+	statusPreconditionRequired:          "Precondition Required",
+	statusTooManyRequests:               "Too Many Requests",
+	statusRequestHeaderFieldsTooLarge:   "Request Header Fields Too Large",
+	statusNetworkAuthenticationRequired: "Network Authentication Required",
 }
 
 // StatusText returns a text for the HTTP status code. It returns the empty
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transfer.go gcc-4.8.1/libgo/go/net/http/transfer.go
--- gcc-4.8.1.orig/libgo/go/net/http/transfer.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/transfer.go	2013-07-16 01:55:04.520470000 -0500
@@ -194,10 +194,11 @@
 			ncopy, err = io.Copy(w, t.Body)
 		} else {
 			ncopy, err = io.Copy(w, io.LimitReader(t.Body, t.ContentLength))
-			nextra, err := io.Copy(ioutil.Discard, t.Body)
 			if err != nil {
 				return err
 			}
+			var nextra int64
+			nextra, err = io.Copy(ioutil.Discard, t.Body)
 			ncopy += nextra
 		}
 		if err != nil {
@@ -208,7 +209,7 @@
 		}
 	}
 
-	if t.ContentLength != -1 && t.ContentLength != ncopy {
+	if !t.ResponseToHEAD && t.ContentLength != -1 && t.ContentLength != ncopy {
 		return fmt.Errorf("http: Request.ContentLength=%d with Body length %d",
 			t.ContentLength, ncopy)
 	}
@@ -326,9 +327,14 @@
 	// or close connection when finished, since multipart is not supported yet
 	switch {
 	case chunked(t.TransferEncoding):
-		t.Body = &body{Reader: newChunkedReader(r), hdr: msg, r: r, closing: t.Close}
-	case realLength >= 0:
-		// TODO: limit the Content-Length. This is an easy DoS vector.
+		if noBodyExpected(t.RequestMethod) {
+			t.Body = &body{Reader: eofReader, closing: t.Close}
+		} else {
+			t.Body = &body{Reader: newChunkedReader(r), hdr: msg, r: r, closing: t.Close}
+		}
+	case realLength == 0:
+		t.Body = &body{Reader: eofReader, closing: t.Close}
+	case realLength > 0:
 		t.Body = &body{Reader: io.LimitReader(r, realLength), closing: t.Close}
 	default:
 		// realLength < 0, i.e. "Content-Length" not mentioned in header
@@ -337,7 +343,7 @@
 			t.Body = &body{Reader: r, closing: t.Close}
 		} else {
 			// Persistent connection (i.e. HTTP/1.1)
-			t.Body = &body{Reader: io.LimitReader(r, 0), closing: t.Close}
+			t.Body = &body{Reader: eofReader, closing: t.Close}
 		}
 	}
 
@@ -449,13 +455,6 @@
 		return 0, nil
 	}
 
-	// Logic based on media type. The purpose of the following code is just
-	// to detect whether the unsupported "multipart/byteranges" is being
-	// used. A proper Content-Type parser is needed in the future.
-	if strings.Contains(strings.ToLower(header.get("Content-Type")), "multipart/byteranges") {
-		return -1, ErrNotSupported
-	}
-
 	// Body-EOF logic based on other methods (like closing, or chunked coding)
 	return -1, nil
 }
@@ -614,30 +613,26 @@
 	if b.closed {
 		return nil
 	}
-	defer func() {
-		b.closed = true
-	}()
-	if b.hdr == nil && b.closing {
+	var err error
+	switch {
+	case b.hdr == nil && b.closing:
 		// no trailer and closing the connection next.
 		// no point in reading to EOF.
-		return nil
-	}
-
-	// In a server request, don't continue reading from the client
-	// if we've already hit the maximum body size set by the
-	// handler. If this is set, that also means the TCP connection
-	// is about to be closed, so getting to the next HTTP request
-	// in the stream is not necessary.
-	if b.res != nil && b.res.requestBodyLimitHit {
-		return nil
-	}
-
-	// Fully consume the body, which will also lead to us reading
-	// the trailer headers after the body, if present.
-	if _, err := io.Copy(ioutil.Discard, b); err != nil {
-		return err
+	case b.res != nil && b.res.requestBodyLimitHit:
+		// In a server request, don't continue reading from the client
+		// if we've already hit the maximum body size set by the
+		// handler. If this is set, that also means the TCP connection
+		// is about to be closed, so getting to the next HTTP request
+		// in the stream is not necessary.
+	case b.Reader == eofReader:
+		// Nothing to read. No need to io.Copy from it.
+	default:
+		// Fully consume the body, which will also lead to us reading
+		// the trailer headers after the body, if present.
+		_, err = io.Copy(ioutil.Discard, b)
 	}
-	return nil
+	b.closed = true
+	return err
 }
 
 // parseContentLength trims whitespace from s and returns -1 if no value
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport.go gcc-4.8.1/libgo/go/net/http/transport.go
--- gcc-4.8.1.orig/libgo/go/net/http/transport.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/transport.go	2013-07-16 01:55:04.520470000 -0500
@@ -17,7 +17,6 @@
 	"errors"
 	"fmt"
 	"io"
-	"io/ioutil"
 	"log"
 	"net"
 	"net/url"
@@ -42,14 +41,13 @@
 // https, and http proxies (for either http or https with CONNECT).
 // Transport can also cache connections for future re-use.
 type Transport struct {
-	idleLk   sync.Mutex
-	idleConn map[string][]*persistConn
-	altLk    sync.RWMutex
-	altProto map[string]RoundTripper // nil or map of URI scheme => RoundTripper
-
-	// TODO: tunable on global max cached connections
-	// TODO: tunable on timeout on cached connections
-	// TODO: optional pipelining
+	idleMu     sync.Mutex
+	idleConn   map[string][]*persistConn
+	idleConnCh map[string]chan *persistConn
+	reqMu      sync.Mutex
+	reqConn    map[*Request]*persistConn
+	altMu      sync.RWMutex
+	altProto   map[string]RoundTripper // nil or map of URI scheme => RoundTripper
 
 	// Proxy specifies a function to return a proxy for a given
 	// Request. If the function returns a non-nil error, the
@@ -60,19 +58,39 @@
 	// Dial specifies the dial function for creating TCP
 	// connections.
 	// If Dial is nil, net.Dial is used.
-	Dial func(net, addr string) (c net.Conn, err error)
+	Dial func(network, addr string) (net.Conn, error)
 
 	// TLSClientConfig specifies the TLS configuration to use with
 	// tls.Client. If nil, the default configuration is used.
 	TLSClientConfig *tls.Config
 
-	DisableKeepAlives  bool
+	// DisableKeepAlives, if true, prevents re-use of TCP connections
+	// between different HTTP requests.
+	DisableKeepAlives bool
+
+	// DisableCompression, if true, prevents the Transport from
+	// requesting compression with an "Accept-Encoding: gzip"
+	// request header when the Request contains no existing
+	// Accept-Encoding value. If the Transport requests gzip on
+	// its own and gets a gzipped response, it's transparently
+	// decoded in the Response.Body. However, if the user
+	// explicitly requested gzip it is not automatically
+	// uncompressed.
 	DisableCompression bool
 
 	// MaxIdleConnsPerHost, if non-zero, controls the maximum idle
 	// (keep-alive) to keep per-host.  If zero,
 	// DefaultMaxIdleConnsPerHost is used.
 	MaxIdleConnsPerHost int
+
+	// ResponseHeaderTimeout, if non-zero, specifies the amount of
+	// time to wait for a server's response headers after fully
+	// writing the request (including its body, if any). This
+	// time does not include the time to read the response body.
+	ResponseHeaderTimeout time.Duration
+
+	// TODO: tunable on global max cached connections
+	// TODO: tunable on timeout on cached connections
 }
 
 // ProxyFromEnvironment returns the URL of the proxy to use for a
@@ -125,6 +143,9 @@
 }
 
 // RoundTrip implements the RoundTripper interface.
+//
+// For higher-level HTTP client support (such as handling of cookies
+// and redirects), see Get, Post, and the Client type.
 func (t *Transport) RoundTrip(req *Request) (resp *Response, err error) {
 	if req.URL == nil {
 		return nil, errors.New("http: nil Request.URL")
@@ -133,12 +154,12 @@
 		return nil, errors.New("http: nil Request.Header")
 	}
 	if req.URL.Scheme != "http" && req.URL.Scheme != "https" {
-		t.altLk.RLock()
+		t.altMu.RLock()
 		var rt RoundTripper
 		if t.altProto != nil {
 			rt = t.altProto[req.URL.Scheme]
 		}
-		t.altLk.RUnlock()
+		t.altMu.RUnlock()
 		if rt == nil {
 			return nil, &badStringError{"unsupported protocol scheme", req.URL.Scheme}
 		}
@@ -175,8 +196,8 @@
 	if scheme == "http" || scheme == "https" {
 		panic("protocol " + scheme + " already registered")
 	}
-	t.altLk.Lock()
-	defer t.altLk.Unlock()
+	t.altMu.Lock()
+	defer t.altMu.Unlock()
 	if t.altProto == nil {
 		t.altProto = make(map[string]RoundTripper)
 	}
@@ -191,10 +212,10 @@
 // a "keep-alive" state. It does not interrupt any connections currently
 // in use.
 func (t *Transport) CloseIdleConnections() {
-	t.idleLk.Lock()
+	t.idleMu.Lock()
 	m := t.idleConn
 	t.idleConn = nil
-	t.idleLk.Unlock()
+	t.idleMu.Unlock()
 	if m == nil {
 		return
 	}
@@ -205,6 +226,17 @@
 	}
 }
 
+// CancelRequest cancels an in-flight request by closing its
+// connection.
+func (t *Transport) CancelRequest(req *Request) {
+	t.reqMu.Lock()
+	pc := t.reqConn[req]
+	t.reqMu.Unlock()
+	if pc != nil {
+		pc.conn.Close()
+	}
+}
+
 //
 // Private implementation past this point.
 //
@@ -260,12 +292,23 @@
 	if max == 0 {
 		max = DefaultMaxIdleConnsPerHost
 	}
-	t.idleLk.Lock()
+	t.idleMu.Lock()
+	select {
+	case t.idleConnCh[key] <- pconn:
+		// We're done with this pconn and somebody else is
+		// currently waiting for a conn of this type (they're
+		// actively dialing, but this conn is ready
+		// first). Chrome calls this socket late binding.  See
+		// https://insouciant.org/tech/connection-management-in-chromium/
+		t.idleMu.Unlock()
+		return true
+	default:
+	}
 	if t.idleConn == nil {
 		t.idleConn = make(map[string][]*persistConn)
 	}
 	if len(t.idleConn[key]) >= max {
-		t.idleLk.Unlock()
+		t.idleMu.Unlock()
 		pconn.close()
 		return false
 	}
@@ -275,14 +318,29 @@
 		}
 	}
 	t.idleConn[key] = append(t.idleConn[key], pconn)
-	t.idleLk.Unlock()
+	t.idleMu.Unlock()
 	return true
 }
 
+func (t *Transport) getIdleConnCh(cm *connectMethod) chan *persistConn {
+	key := cm.key()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
+	if t.idleConnCh == nil {
+		t.idleConnCh = make(map[string]chan *persistConn)
+	}
+	ch, ok := t.idleConnCh[key]
+	if !ok {
+		ch = make(chan *persistConn)
+		t.idleConnCh[key] = ch
+	}
+	return ch
+}
+
 func (t *Transport) getIdleConn(cm *connectMethod) (pconn *persistConn) {
-	key := cm.String()
-	t.idleLk.Lock()
-	defer t.idleLk.Unlock()
+	key := cm.key()
+	t.idleMu.Lock()
+	defer t.idleMu.Unlock()
 	if t.idleConn == nil {
 		return nil
 	}
@@ -304,7 +362,19 @@
 			return
 		}
 	}
-	panic("unreachable")
+}
+
+func (t *Transport) setReqConn(r *Request, pc *persistConn) {
+	t.reqMu.Lock()
+	defer t.reqMu.Unlock()
+	if t.reqConn == nil {
+		t.reqConn = make(map[*Request]*persistConn)
+	}
+	if pc != nil {
+		t.reqConn[r] = pc
+	} else {
+		delete(t.reqConn, r)
+	}
 }
 
 func (t *Transport) dial(network, addr string) (c net.Conn, err error) {
@@ -323,6 +393,37 @@
 		return pc, nil
 	}
 
+	type dialRes struct {
+		pc  *persistConn
+		err error
+	}
+	dialc := make(chan dialRes)
+	go func() {
+		pc, err := t.dialConn(cm)
+		dialc <- dialRes{pc, err}
+	}()
+
+	idleConnCh := t.getIdleConnCh(cm)
+	select {
+	case v := <-dialc:
+		// Our dial finished.
+		return v.pc, v.err
+	case pc := <-idleConnCh:
+		// Another request finished first and its net.Conn
+		// became available before our dial. Or somebody
+		// else's dial that they didn't use.
+		// But our dial is still going, so give it away
+		// when it finishes:
+		go func() {
+			if v := <-dialc; v.err == nil {
+				t.putIdleConn(v.pc)
+			}
+		}()
+		return pc, nil
+	}
+}
+
+func (t *Transport) dialConn(cm *connectMethod) (*persistConn, error) {
 	conn, err := t.dial("tcp", cm.addr())
 	if err != nil {
 		if cm.proxyURL != nil {
@@ -335,7 +436,7 @@
 
 	pconn := &persistConn{
 		t:        t,
-		cacheKey: cm.String(),
+		cacheKey: cm.key(),
 		conn:     conn,
 		reqch:    make(chan requestAndChan, 50),
 		writech:  make(chan writeRequest, 50),
@@ -485,6 +586,10 @@
 	targetAddr   string   // Not used if proxy + http targetScheme (4th example in table)
 }
 
+func (ck *connectMethod) key() string {
+	return ck.String() // TODO: use a struct type instead
+}
+
 func (ck *connectMethod) String() string {
 	proxyStr := ""
 	targetAddr := ck.targetAddr
@@ -529,14 +634,13 @@
 	closech  chan struct{}       // broadcast close when readLoop (TCP connection) closes
 	isProxy  bool
 
+	lk                   sync.Mutex // guards following 3 fields
+	numExpectedResponses int
+	broken               bool // an error has happened on this connection; marked broken so it's not reused.
 	// mutateHeaderFunc is an optional func to modify extra
 	// headers on each outbound request before it's written. (the
 	// original Request given to RoundTrip is not modified)
 	mutateHeaderFunc func(Header)
-
-	lk                   sync.Mutex // guards numExpectedResponses and broken
-	numExpectedResponses int
-	broken               bool // an error has happened on this connection; marked broken so it's not reused.
 }
 
 func (pc *persistConn) isBroken() bool {
@@ -561,7 +665,6 @@
 func (pc *persistConn) readLoop() {
 	defer close(pc.closech)
 	alive := true
-	var lastbody io.ReadCloser // last response body, if any, read on this connection
 
 	for alive {
 		pb, err := pc.br.Peek(1)
@@ -580,22 +683,23 @@
 
 		rc := <-pc.reqch
 
-		// Advance past the previous response's body, if the
-		// caller hasn't done so.
-		if lastbody != nil {
-			lastbody.Close() // assumed idempotent
-			lastbody = nil
-		}
-
 		var resp *Response
 		if err == nil {
 			resp, err = ReadResponse(pc.br, rc.req)
+			if err == nil && resp.StatusCode == 100 {
+				// Skip any 100-continue for now.
+				// TODO(bradfitz): if rc.req had "Expect: 100-continue",
+				// actually block the request body write and signal the
+				// writeLoop now to begin sending it. (Issue 2184) For now we
+				// eat it, since we're never expecting one.
+				resp, err = ReadResponse(pc.br, rc.req)
+			}
 		}
+		hasBody := resp != nil && rc.req.Method != "HEAD" && resp.ContentLength != 0
 
 		if err != nil {
 			pc.close()
 		} else {
-			hasBody := rc.req.Method != "HEAD" && resp.ContentLength != 0
 			if rc.addedGzip && hasBody && resp.Header.Get("Content-Encoding") == "gzip" {
 				resp.Header.Del("Content-Encoding")
 				resp.Header.Del("Content-Length")
@@ -605,21 +709,29 @@
 					pc.close()
 					err = zerr
 				} else {
-					resp.Body = &readFirstCloseBoth{&discardOnCloseReadCloser{gzReader}, resp.Body}
+					resp.Body = &readerAndCloser{gzReader, resp.Body}
 				}
 			}
 			resp.Body = &bodyEOFSignal{body: resp.Body}
 		}
 
-		if err != nil || resp.Close || rc.req.Close {
+		if err != nil || resp.Close || rc.req.Close || resp.StatusCode <= 199 {
+			// Don't do keep-alive on error if either party requested a close
+			// or we get an unexpected informational (1xx) response.
+			// StatusCode 100 is already handled above.
 			alive = false
 		}
 
-		hasBody := resp != nil && rc.req.Method != "HEAD" && resp.ContentLength != 0
 		var waitForBodyRead chan bool
 		if hasBody {
-			lastbody = resp.Body
-			waitForBodyRead = make(chan bool, 1)
+			waitForBodyRead = make(chan bool, 2)
+			resp.Body.(*bodyEOFSignal).earlyCloseFn = func() error {
+				// Sending false here sets alive to
+				// false and closes the connection
+				// below.
+				waitForBodyRead <- false
+				return nil
+			}
 			resp.Body.(*bodyEOFSignal).fn = func(err error) {
 				alive1 := alive
 				if err != nil {
@@ -636,15 +748,6 @@
 		}
 
 		if alive && !hasBody {
-			// When there's no response body, we immediately
-			// reuse the TCP connection (putIdleConn), but
-			// we need to prevent ClientConn.Read from
-			// closing the Response.Body on the next
-			// loop, otherwise it might close the body
-			// before the client code has had a chance to
-			// read it (even though it'll just be 0, EOF).
-			lastbody = nil
-
 			if !pc.t.putIdleConn(pc) {
 				alive = false
 			}
@@ -658,6 +761,8 @@
 			alive = <-waitForBodyRead
 		}
 
+		pc.t.setReqConn(rc.req, nil)
+
 		if !alive {
 			pc.close()
 		}
@@ -711,8 +816,14 @@
 }
 
 func (pc *persistConn) roundTrip(req *transportRequest) (resp *Response, err error) {
-	if pc.mutateHeaderFunc != nil {
-		pc.mutateHeaderFunc(req.extraHeaders())
+	pc.t.setReqConn(req.Request, pc)
+	pc.lk.Lock()
+	pc.numExpectedResponses++
+	headerFn := pc.mutateHeaderFunc
+	pc.lk.Unlock()
+
+	if headerFn != nil {
+		headerFn(req.extraHeaders())
 	}
 
 	// Ask for a compressed version if the caller didn't set their
@@ -728,10 +839,6 @@
 		req.extraHeaders().Set("Accept-Encoding", "gzip")
 	}
 
-	pc.lk.Lock()
-	pc.numExpectedResponses++
-	pc.lk.Unlock()
-
 	// Write the request concurrently with waiting for a response,
 	// in case the server decides to reply before reading our full
 	// request body.
@@ -744,6 +851,7 @@
 	var re responseAndError
 	var pconnDeadCh = pc.closech
 	var failTicker <-chan time.Time
+	var respHeaderTimer <-chan time.Time
 WaitResponse:
 	for {
 		select {
@@ -753,6 +861,9 @@
 				pc.close()
 				break WaitResponse
 			}
+			if d := pc.t.ResponseHeaderTimeout; d > 0 {
+				respHeaderTimer = time.After(d)
+			}
 		case <-pconnDeadCh:
 			// The persist connection is dead. This shouldn't
 			// usually happen (only with Connection: close responses
@@ -769,7 +880,11 @@
 			pconnDeadCh = nil                               // avoid spinning
 			failTicker = time.After(100 * time.Millisecond) // arbitrary time to wait for resc
 		case <-failTicker:
-			re = responseAndError{nil, errors.New("net/http: transport closed before response was received")}
+			re = responseAndError{err: errors.New("net/http: transport closed before response was received")}
+			break WaitResponse
+		case <-respHeaderTimer:
+			pc.close()
+			re = responseAndError{err: errors.New("net/http: timeout awaiting response headers")}
 			break WaitResponse
 		case re = <-resc:
 			break WaitResponse
@@ -780,6 +895,9 @@
 	pc.numExpectedResponses--
 	pc.lk.Unlock()
 
+	if re.err != nil {
+		pc.t.setReqConn(req.Request, nil)
+	}
 	return re.res, re.err
 }
 
@@ -823,13 +941,16 @@
 
 // bodyEOFSignal wraps a ReadCloser but runs fn (if non-nil) at most
 // once, right before its final (error-producing) Read or Close call
-// returns.
+// returns. If earlyCloseFn is non-nil and Close is called before
+// io.EOF is seen, earlyCloseFn is called instead of fn, and its
+// return value is the return value from Close.
 type bodyEOFSignal struct {
-	body   io.ReadCloser
-	mu     sync.Mutex  // guards closed, rerr and fn
-	closed bool        // whether Close has been called
-	rerr   error       // sticky Read error
-	fn     func(error) // error will be nil on Read io.EOF
+	body         io.ReadCloser
+	mu           sync.Mutex   // guards following 4 fields
+	closed       bool         // whether Close has been called
+	rerr         error        // sticky Read error
+	fn           func(error)  // error will be nil on Read io.EOF
+	earlyCloseFn func() error // optional alt Close func used if io.EOF not seen
 }
 
 func (es *bodyEOFSignal) Read(p []byte) (n int, err error) {
@@ -862,6 +983,9 @@
 		return nil
 	}
 	es.closed = true
+	if es.earlyCloseFn != nil && es.rerr != io.EOF {
+		return es.earlyCloseFn()
+	}
 	err := es.body.Close()
 	es.condfn(err)
 	return err
@@ -879,28 +1003,7 @@
 	es.fn = nil
 }
 
-type readFirstCloseBoth struct {
-	io.ReadCloser
+type readerAndCloser struct {
+	io.Reader
 	io.Closer
 }
-
-func (r *readFirstCloseBoth) Close() error {
-	if err := r.ReadCloser.Close(); err != nil {
-		r.Closer.Close()
-		return err
-	}
-	if err := r.Closer.Close(); err != nil {
-		return err
-	}
-	return nil
-}
-
-// discardOnCloseReadCloser consumes all its input on Close.
-type discardOnCloseReadCloser struct {
-	io.ReadCloser
-}
-
-func (d *discardOnCloseReadCloser) Close() error {
-	io.Copy(ioutil.Discard, d.ReadCloser) // ignore errors; likely invalid or already closed
-	return d.ReadCloser.Close()
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/transport_test.go gcc-4.8.1/libgo/go/net/http/transport_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/transport_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/transport_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,6 +7,7 @@
 package http_test
 
 import (
+	"bufio"
 	"bytes"
 	"compress/gzip"
 	"crypto/rand"
@@ -102,11 +103,13 @@
 // Two subsequent requests and verify their response is the same.
 // The response from the server is our own IP:port
 func TestTransportKeepAlives(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
 	for _, disableKeepAlive := range []bool{false, true} {
 		tr := &Transport{DisableKeepAlives: disableKeepAlive}
+		defer tr.CloseIdleConnections()
 		c := &Client{Transport: tr}
 
 		fetch := func(n int) string {
@@ -133,6 +136,7 @@
 }
 
 func TestTransportConnectionCloseOnResponse(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -183,6 +187,7 @@
 }
 
 func TestTransportConnectionCloseOnRequest(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -233,6 +238,7 @@
 }
 
 func TestTransportIdleCacheKeys(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -265,6 +271,7 @@
 }
 
 func TestTransportMaxPerHostIdleConns(t *testing.T) {
+	defer afterTest(t)
 	resch := make(chan string)
 	gotReq := make(chan bool)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
@@ -333,6 +340,7 @@
 }
 
 func TestTransportServerClosingUnexpectedly(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(hostPortHandler)
 	defer ts.Close()
 
@@ -389,6 +397,7 @@
 // Test for http://golang.org/issue/2616 (appropriate issue number)
 // This fails pretty reliably with GOMAXPROCS=100 or something high.
 func TestStressSurpriseServerCloses(t *testing.T) {
+	defer afterTest(t)
 	if testing.Short() {
 		t.Skip("skipping test in short mode")
 	}
@@ -444,6 +453,7 @@
 // TestTransportHeadResponses verifies that we deal with Content-Lengths
 // with no bodies properly
 func TestTransportHeadResponses(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.Method != "HEAD" {
 			panic("expected HEAD; got " + r.Method)
@@ -472,6 +482,7 @@
 // TestTransportHeadChunkedResponse verifies that we ignore chunked transfer-encoding
 // on responses to HEAD requests.
 func TestTransportHeadChunkedResponse(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		if r.Method != "HEAD" {
 			panic("expected HEAD; got " + r.Method)
@@ -513,6 +524,7 @@
 
 // Test that the modification made to the Request by the RoundTripper is cleaned up
 func TestRoundTripGzip(t *testing.T) {
+	defer afterTest(t)
 	const responseBody = "test response body"
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, req *Request) {
 		accept := req.Header.Get("Accept-Encoding")
@@ -569,6 +581,7 @@
 }
 
 func TestTransportGzip(t *testing.T) {
+	defer afterTest(t)
 	const testString = "The test string aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
 	const nRandBytes = 1024 * 1024
 	ts := httptest.NewServer(HandlerFunc(func(rw ResponseWriter, req *Request) {
@@ -661,6 +674,7 @@
 }
 
 func TestTransportProxy(t *testing.T) {
+	defer afterTest(t)
 	ch := make(chan string, 1)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		ch <- "real server"
@@ -689,6 +703,7 @@
 // but checks that we don't recurse forever, and checks that
 // Content-Encoding is removed.
 func TestTransportGzipRecursive(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("Content-Encoding", "gzip")
 		w.Write(rgz)
@@ -715,6 +730,7 @@
 
 // tests that persistent goroutine connections shut down when no longer desired.
 func TestTransportPersistConnLeak(t *testing.T) {
+	defer afterTest(t)
 	gotReqCh := make(chan bool)
 	unblockCh := make(chan bool)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
@@ -780,6 +796,7 @@
 // golang.org/issue/4531: Transport leaks goroutines when
 // request.ContentLength is explicitly short
 func TestTransportPersistConnLeakShortBody(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 	}))
 	defer ts.Close()
@@ -818,6 +835,7 @@
 
 // This used to crash; http://golang.org/issue/3266
 func TestTransportIdleConnCrash(t *testing.T) {
+	defer afterTest(t)
 	tr := &Transport{}
 	c := &Client{Transport: tr}
 
@@ -847,6 +865,7 @@
 // which sadly lacked a triggering test.  The large response body made
 // the old race easier to trigger.
 func TestIssue3644(t *testing.T) {
+	defer afterTest(t)
 	const numFoos = 5000
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.Header().Set("Connection", "close")
@@ -874,6 +893,7 @@
 // Test that a client receives a server's reply, even if the server doesn't read
 // the entire request body.
 func TestIssue3595(t *testing.T) {
+	defer afterTest(t)
 	const deniedMsg = "sorry, denied."
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		Error(w, deniedMsg, StatusUnauthorized)
@@ -898,6 +918,7 @@
 // From http://golang.org/issue/4454 ,
 // "client fails to handle requests with no body and chunked encoding"
 func TestChunkedNoContent(t *testing.T) {
+	defer afterTest(t)
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		w.WriteHeader(StatusNoContent)
 	}))
@@ -920,20 +941,38 @@
 }
 
 func TestTransportConcurrency(t *testing.T) {
-	const maxProcs = 16
-	const numReqs = 500
+	defer afterTest(t)
+	maxProcs, numReqs := 16, 500
+	if testing.Short() {
+		maxProcs, numReqs = 4, 50
+	}
 	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(maxProcs))
 	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
 		fmt.Fprintf(w, "%v", r.FormValue("echo"))
 	}))
 	defer ts.Close()
-	tr := &Transport{}
+
+	var wg sync.WaitGroup
+	wg.Add(numReqs)
+
+	tr := &Transport{
+		Dial: func(netw, addr string) (c net.Conn, err error) {
+			// Due to the Transport's "socket late
+			// binding" (see idleConnCh in transport.go),
+			// the numReqs HTTP requests below can finish
+			// with a dial still outstanding.  So count
+			// our dials as work too so the leak checker
+			// doesn't complain at us.
+			wg.Add(1)
+			defer wg.Done()
+			return net.Dial(netw, addr)
+		},
+	}
+	defer tr.CloseIdleConnections()
 	c := &Client{Transport: tr}
 	reqs := make(chan string)
 	defer close(reqs)
 
-	var wg sync.WaitGroup
-	wg.Add(numReqs)
 	for i := 0; i < maxProcs*2; i++ {
 		go func() {
 			for req := range reqs {
@@ -952,8 +991,8 @@
 				if string(all) != req {
 					t.Errorf("body of req %s = %q; want %q", req, all, req)
 				}
-				wg.Done()
 				res.Body.Close()
+				wg.Done()
 			}
 		}()
 	}
@@ -964,12 +1003,14 @@
 }
 
 func TestIssue4191_InfiniteGetTimeout(t *testing.T) {
+	defer afterTest(t)
 	const debug = false
 	mux := NewServeMux()
 	mux.HandleFunc("/get", func(w ResponseWriter, r *Request) {
 		io.Copy(w, neverEnding('a'))
 	})
 	ts := httptest.NewServer(mux)
+	timeout := 100 * time.Millisecond
 
 	client := &Client{
 		Transport: &Transport{
@@ -978,7 +1019,7 @@
 				if err != nil {
 					return nil, err
 				}
-				conn.SetDeadline(time.Now().Add(100 * time.Millisecond))
+				conn.SetDeadline(time.Now().Add(timeout))
 				if debug {
 					conn = NewLoggingConn("client", conn)
 				}
@@ -988,6 +1029,7 @@
 		},
 	}
 
+	getFailed := false
 	nRuns := 5
 	if testing.Short() {
 		nRuns = 1
@@ -998,6 +1040,14 @@
 		}
 		sres, err := client.Get(ts.URL + "/get")
 		if err != nil {
+			if !getFailed {
+				// Make the timeout longer, once.
+				getFailed = true
+				t.Logf("increasing timeout")
+				i--
+				timeout *= 10
+				continue
+			}
 			t.Errorf("Error issuing GET: %v", err)
 			break
 		}
@@ -1014,6 +1064,7 @@
 }
 
 func TestIssue4191_InfiniteGetToPutTimeout(t *testing.T) {
+	defer afterTest(t)
 	const debug = false
 	mux := NewServeMux()
 	mux.HandleFunc("/get", func(w ResponseWriter, r *Request) {
@@ -1024,6 +1075,7 @@
 		io.Copy(ioutil.Discard, r.Body)
 	})
 	ts := httptest.NewServer(mux)
+	timeout := 100 * time.Millisecond
 
 	client := &Client{
 		Transport: &Transport{
@@ -1032,7 +1084,7 @@
 				if err != nil {
 					return nil, err
 				}
-				conn.SetDeadline(time.Now().Add(100 * time.Millisecond))
+				conn.SetDeadline(time.Now().Add(timeout))
 				if debug {
 					conn = NewLoggingConn("client", conn)
 				}
@@ -1042,6 +1094,7 @@
 		},
 	}
 
+	getFailed := false
 	nRuns := 5
 	if testing.Short() {
 		nRuns = 1
@@ -1052,6 +1105,14 @@
 		}
 		sres, err := client.Get(ts.URL + "/get")
 		if err != nil {
+			if !getFailed {
+				// Make the timeout longer, once.
+				getFailed = true
+				t.Logf("increasing timeout")
+				i--
+				timeout *= 10
+				continue
+			}
 			t.Errorf("Error issuing GET: %v", err)
 			break
 		}
@@ -1070,6 +1131,171 @@
 	ts.Close()
 }
 
+func TestTransportResponseHeaderTimeout(t *testing.T) {
+	defer afterTest(t)
+	if testing.Short() {
+		t.Skip("skipping timeout test in -short mode")
+	}
+	mux := NewServeMux()
+	mux.HandleFunc("/fast", func(w ResponseWriter, r *Request) {})
+	mux.HandleFunc("/slow", func(w ResponseWriter, r *Request) {
+		time.Sleep(2 * time.Second)
+	})
+	ts := httptest.NewServer(mux)
+	defer ts.Close()
+
+	tr := &Transport{
+		ResponseHeaderTimeout: 500 * time.Millisecond,
+	}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	tests := []struct {
+		path    string
+		want    int
+		wantErr string
+	}{
+		{path: "/fast", want: 200},
+		{path: "/slow", wantErr: "timeout awaiting response headers"},
+		{path: "/fast", want: 200},
+	}
+	for i, tt := range tests {
+		res, err := c.Get(ts.URL + tt.path)
+		if err != nil {
+			if strings.Contains(err.Error(), tt.wantErr) {
+				continue
+			}
+			t.Errorf("%d. unexpected error: %v", i, err)
+			continue
+		}
+		if tt.wantErr != "" {
+			t.Errorf("%d. no error. expected error: %v", i, tt.wantErr)
+			continue
+		}
+		if res.StatusCode != tt.want {
+			t.Errorf("%d for path %q status = %d; want %d", i, tt.path, res.StatusCode, tt.want)
+		}
+	}
+}
+
+func TestTransportCancelRequest(t *testing.T) {
+	defer afterTest(t)
+	if testing.Short() {
+		t.Skip("skipping test in -short mode")
+	}
+	unblockc := make(chan bool)
+	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+		fmt.Fprintf(w, "Hello")
+		w.(Flusher).Flush() // send headers and some body
+		<-unblockc
+	}))
+	defer ts.Close()
+	defer close(unblockc)
+
+	tr := &Transport{}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	req, _ := NewRequest("GET", ts.URL, nil)
+	res, err := c.Do(req)
+	if err != nil {
+		t.Fatal(err)
+	}
+	go func() {
+		time.Sleep(1 * time.Second)
+		tr.CancelRequest(req)
+	}()
+	t0 := time.Now()
+	body, err := ioutil.ReadAll(res.Body)
+	d := time.Since(t0)
+
+	if err == nil {
+		t.Error("expected an error reading the body")
+	}
+	if string(body) != "Hello" {
+		t.Errorf("Body = %q; want Hello", body)
+	}
+	if d < 500*time.Millisecond {
+		t.Errorf("expected ~1 second delay; got %v", d)
+	}
+	// Verify no outstanding requests after readLoop/writeLoop
+	// goroutines shut down.
+	for tries := 3; tries > 0; tries-- {
+		n := tr.NumPendingRequestsForTesting()
+		if n == 0 {
+			break
+		}
+		time.Sleep(100 * time.Millisecond)
+		if tries == 1 {
+			t.Errorf("pending requests = %d; want 0", n)
+		}
+	}
+}
+
+// golang.org/issue/3672 -- Client can't close HTTP stream
+// Calling Close on a Response.Body used to just read until EOF.
+// Now it actually closes the TCP connection.
+func TestTransportCloseResponseBody(t *testing.T) {
+	defer afterTest(t)
+	writeErr := make(chan error, 1)
+	msg := []byte("young\n")
+	ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+		for {
+			_, err := w.Write(msg)
+			if err != nil {
+				writeErr <- err
+				return
+			}
+			w.(Flusher).Flush()
+		}
+	}))
+	defer ts.Close()
+
+	tr := &Transport{}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	req, _ := NewRequest("GET", ts.URL, nil)
+	defer tr.CancelRequest(req)
+
+	res, err := c.Do(req)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	const repeats = 3
+	buf := make([]byte, len(msg)*repeats)
+	want := bytes.Repeat(msg, repeats)
+
+	_, err = io.ReadFull(res.Body, buf)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if !bytes.Equal(buf, want) {
+		t.Errorf("read %q; want %q", buf, want)
+	}
+	didClose := make(chan error, 1)
+	go func() {
+		didClose <- res.Body.Close()
+	}()
+	select {
+	case err := <-didClose:
+		if err != nil {
+			t.Errorf("Close = %v", err)
+		}
+	case <-time.After(10 * time.Second):
+		t.Fatal("too long waiting for close")
+	}
+	select {
+	case err := <-writeErr:
+		if err == nil {
+			t.Errorf("expected non-nil write error")
+		}
+	case <-time.After(10 * time.Second):
+		t.Fatal("too long waiting for write error")
+	}
+}
+
 type fooProto struct{}
 
 func (fooProto) RoundTrip(req *Request) (*Response, error) {
@@ -1083,6 +1309,7 @@
 }
 
 func TestTransportAltProto(t *testing.T) {
+	defer afterTest(t)
 	tr := &Transport{}
 	c := &Client{Transport: tr}
 	tr.RegisterProtocol("foo", fooProto{})
@@ -1101,6 +1328,7 @@
 }
 
 func TestTransportNoHost(t *testing.T) {
+	defer afterTest(t)
 	tr := &Transport{}
 	_, err := tr.RoundTrip(&Request{
 		Header: make(Header),
@@ -1114,6 +1342,172 @@
 	}
 }
 
+func TestTransportSocketLateBinding(t *testing.T) {
+	defer afterTest(t)
+
+	mux := NewServeMux()
+	fooGate := make(chan bool, 1)
+	mux.HandleFunc("/foo", func(w ResponseWriter, r *Request) {
+		w.Header().Set("foo-ipport", r.RemoteAddr)
+		w.(Flusher).Flush()
+		<-fooGate
+	})
+	mux.HandleFunc("/bar", func(w ResponseWriter, r *Request) {
+		w.Header().Set("bar-ipport", r.RemoteAddr)
+	})
+	ts := httptest.NewServer(mux)
+	defer ts.Close()
+
+	dialGate := make(chan bool, 1)
+	tr := &Transport{
+		Dial: func(n, addr string) (net.Conn, error) {
+			<-dialGate
+			return net.Dial(n, addr)
+		},
+		DisableKeepAlives: false,
+	}
+	defer tr.CloseIdleConnections()
+	c := &Client{
+		Transport: tr,
+	}
+
+	dialGate <- true // only allow one dial
+	fooRes, err := c.Get(ts.URL + "/foo")
+	if err != nil {
+		t.Fatal(err)
+	}
+	fooAddr := fooRes.Header.Get("foo-ipport")
+	if fooAddr == "" {
+		t.Fatal("No addr on /foo request")
+	}
+	time.AfterFunc(200*time.Millisecond, func() {
+		// let the foo response finish so we can use its
+		// connection for /bar
+		fooGate <- true
+		io.Copy(ioutil.Discard, fooRes.Body)
+		fooRes.Body.Close()
+	})
+
+	barRes, err := c.Get(ts.URL + "/bar")
+	if err != nil {
+		t.Fatal(err)
+	}
+	barAddr := barRes.Header.Get("bar-ipport")
+	if barAddr != fooAddr {
+		t.Fatalf("/foo came from conn %q; /bar came from %q instead", fooAddr, barAddr)
+	}
+	barRes.Body.Close()
+	dialGate <- true
+}
+
+// Issue 2184
+func TestTransportReading100Continue(t *testing.T) {
+	defer afterTest(t)
+
+	const numReqs = 5
+	reqBody := func(n int) string { return fmt.Sprintf("request body %d", n) }
+	reqID := func(n int) string { return fmt.Sprintf("REQ-ID-%d", n) }
+
+	send100Response := func(w *io.PipeWriter, r *io.PipeReader) {
+		defer w.Close()
+		defer r.Close()
+		br := bufio.NewReader(r)
+		n := 0
+		for {
+			n++
+			req, err := ReadRequest(br)
+			if err == io.EOF {
+				return
+			}
+			if err != nil {
+				t.Error(err)
+				return
+			}
+			slurp, err := ioutil.ReadAll(req.Body)
+			if err != nil {
+				t.Errorf("Server request body slurp: %v", err)
+				return
+			}
+			id := req.Header.Get("Request-Id")
+			resCode := req.Header.Get("X-Want-Response-Code")
+			if resCode == "" {
+				resCode = "100 Continue"
+				if string(slurp) != reqBody(n) {
+					t.Errorf("Server got %q, %v; want %q", slurp, err, reqBody(n))
+				}
+			}
+			body := fmt.Sprintf("Response number %d", n)
+			v := []byte(strings.Replace(fmt.Sprintf(`HTTP/1.1 %s
+Date: Thu, 28 Feb 2013 17:55:41 GMT
+
+HTTP/1.1 200 OK
+Content-Type: text/html
+Echo-Request-Id: %s
+Content-Length: %d
+
+%s`, resCode, id, len(body), body), "\n", "\r\n", -1))
+			w.Write(v)
+			if id == reqID(numReqs) {
+				return
+			}
+		}
+
+	}
+
+	tr := &Transport{
+		Dial: func(n, addr string) (net.Conn, error) {
+			sr, sw := io.Pipe() // server read/write
+			cr, cw := io.Pipe() // client read/write
+			conn := &rwTestConn{
+				Reader: cr,
+				Writer: sw,
+				closeFunc: func() error {
+					sw.Close()
+					cw.Close()
+					return nil
+				},
+			}
+			go send100Response(cw, sr)
+			return conn, nil
+		},
+		DisableKeepAlives: false,
+	}
+	defer tr.CloseIdleConnections()
+	c := &Client{Transport: tr}
+
+	testResponse := func(req *Request, name string, wantCode int) {
+		res, err := c.Do(req)
+		if err != nil {
+			t.Fatalf("%s: Do: %v", name, err)
+		}
+		if res.StatusCode != wantCode {
+			t.Fatalf("%s: Response Statuscode=%d; want %d", name, res.StatusCode, wantCode)
+		}
+		if id, idBack := req.Header.Get("Request-Id"), res.Header.Get("Echo-Request-Id"); id != "" && id != idBack {
+			t.Errorf("%s: response id %q != request id %q", name, idBack, id)
+		}
+		_, err = ioutil.ReadAll(res.Body)
+		if err != nil {
+			t.Fatalf("%s: Slurp error: %v", name, err)
+		}
+	}
+
+	// Few 100 responses, making sure we're not off-by-one.
+	for i := 1; i <= numReqs; i++ {
+		req, _ := NewRequest("POST", "http://dummy.tld/", strings.NewReader(reqBody(i)))
+		req.Header.Set("Request-Id", reqID(i))
+		testResponse(req, fmt.Sprintf("100, %d/%d", i, numReqs), 200)
+	}
+
+	// And some other informational 1xx but non-100 responses, to test
+	// we return them but don't re-use the connection.
+	for i := 1; i <= numReqs; i++ {
+		req, _ := NewRequest("POST", "http://other.tld/", strings.NewReader(reqBody(i)))
+		req.Header.Set("X-Want-Response-Code", "123 Sesame Street")
+		testResponse(req, fmt.Sprintf("123, %d/%d", i, numReqs), 123)
+	}
+}
+
 type proxyFromEnvTest struct {
 	req     string // URL to fetch; blank means "http://example.com"
 	env     string
diff -Naur gcc-4.8.1.orig/libgo/go/net/http/z_last_test.go gcc-4.8.1/libgo/go/net/http/z_last_test.go
--- gcc-4.8.1.orig/libgo/go/net/http/z_last_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/http/z_last_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,98 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http_test
+
+import (
+	"net/http"
+	"runtime"
+	"sort"
+	"strings"
+	"testing"
+	"time"
+)
+
+func interestingGoroutines() (gs []string) {
+	buf := make([]byte, 2<<20)
+	buf = buf[:runtime.Stack(buf, true)]
+	for _, g := range strings.Split(string(buf), "\n\n") {
+		sl := strings.SplitN(g, "\n", 2)
+		if len(sl) != 2 {
+			continue
+		}
+		stack := strings.TrimSpace(sl[1])
+		if stack == "" ||
+			strings.Contains(stack, "created by net.newPollServer") ||
+			strings.Contains(stack, "created by net.startServer") ||
+			strings.Contains(stack, "created by testing.RunTests") ||
+			strings.Contains(stack, "closeWriteAndWait") ||
+			strings.Contains(stack, "testing.Main(") ||
+			// These only show up with GOTRACEBACK=2; Issue 5005 (comment 28)
+			strings.Contains(stack, "runtime.goexit") ||
+			strings.Contains(stack, "created by runtime.gc") ||
+			strings.Contains(stack, "runtime.MHeap_Scavenger") {
+			continue
+		}
+		gs = append(gs, stack)
+	}
+	sort.Strings(gs)
+	return
+}
+
+// Verify the other tests didn't leave any goroutines running.
+// This is in a file named z_last_test.go so it sorts at the end.
+func TestGoroutinesRunning(t *testing.T) {
+	if testing.Short() {
+		t.Skip("not counting goroutines for leakage in -short mode")
+	}
+	gs := interestingGoroutines()
+
+	n := 0
+	stackCount := make(map[string]int)
+	for _, g := range gs {
+		stackCount[g]++
+		n++
+	}
+
+	t.Logf("num goroutines = %d", n)
+	if n > 0 {
+		t.Error("Too many goroutines.")
+		for stack, count := range stackCount {
+			t.Logf("%d instances of:\n%s", count, stack)
+		}
+	}
+}
+
+func afterTest(t *testing.T) {
+	http.DefaultTransport.(*http.Transport).CloseIdleConnections()
+	if testing.Short() {
+		return
+	}
+	var bad string
+	badSubstring := map[string]string{
+		").readLoop(":                                  "a Transport",
+		").writeLoop(":                                 "a Transport",
+		"created by net/http/httptest.(*Server).Start": "an httptest.Server",
+		"timeoutHandler":                               "a TimeoutHandler",
+		"net.(*netFD).connect(":                        "a timing out dial",
+		").noteClientGone(":                            "a closenotifier sender",
+	}
+	var stacks string
+	for i := 0; i < 4; i++ {
+		bad = ""
+		stacks = strings.Join(interestingGoroutines(), "\n\n")
+		for substr, what := range badSubstring {
+			if strings.Contains(stacks, substr) {
+				bad = what
+			}
+		}
+		if bad == "" {
+			return
+		}
+		// Bad stuff found, but goroutines might just still be
+		// shutting down, so give it some time.
+		time.Sleep(250 * time.Millisecond)
+	}
+	t.Errorf("Test appears to have leaked %s:\n%s", bad, stacks)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_bsd.go gcc-4.8.1/libgo/go/net/interface_bsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_bsd.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/interface_bsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd netbsd openbsd
 
-// Network interface identification for BSD variants
-
 package net
 
 import (
@@ -22,57 +20,60 @@
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
+	return parseInterfaceTable(ifindex, msgs)
+}
 
+func parseInterfaceTable(ifindex int, msgs []syscall.RoutingMessage) ([]Interface, error) {
 	var ift []Interface
+loop:
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifi, err := newLink(v)
+			if ifindex == 0 || ifindex == int(m.Header.Index) {
+				ifi, err := newLink(m)
 				if err != nil {
 					return nil, err
 				}
-				ift = append(ift, ifi...)
+				ift = append(ift, *ifi)
+				if ifindex == int(m.Header.Index) {
+					break loop
+				}
 			}
 		}
 	}
 	return ift, nil
 }
 
-func newLink(m *syscall.InterfaceMessage) ([]Interface, error) {
+func newLink(m *syscall.InterfaceMessage) (*Interface, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
-	var ift []Interface
-	for _, s := range sas {
-		switch v := s.(type) {
+	ifi := &Interface{Index: int(m.Header.Index), Flags: linkFlags(m.Header.Flags)}
+	for _, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrDatalink:
 			// NOTE: SockaddrDatalink.Data is minimum work area,
 			// can be larger.
-			m.Data = m.Data[unsafe.Offsetof(v.Data):]
-			ifi := Interface{Index: int(m.Header.Index), Flags: linkFlags(m.Header.Flags)}
+			m.Data = m.Data[unsafe.Offsetof(sa.Data):]
 			var name [syscall.IFNAMSIZ]byte
-			for i := 0; i < int(v.Nlen); i++ {
+			for i := 0; i < int(sa.Nlen); i++ {
 				name[i] = byte(m.Data[i])
 			}
-			ifi.Name = string(name[:v.Nlen])
+			ifi.Name = string(name[:sa.Nlen])
 			ifi.MTU = int(m.Header.Data.Mtu)
-			addr := make([]byte, v.Alen)
-			for i := 0; i < int(v.Alen); i++ {
-				addr[i] = byte(m.Data[int(v.Nlen)+i])
+			addr := make([]byte, sa.Alen)
+			for i := 0; i < int(sa.Alen); i++ {
+				addr[i] = byte(m.Data[int(sa.Nlen)+i])
 			}
-			ifi.HardwareAddr = addr[:v.Alen]
-			ift = append(ift, ifi)
+			ifi.HardwareAddr = addr[:sa.Alen]
 		}
 	}
-	return ift, nil
+	return ifi, nil
 }
 
 func linkFlags(rawFlags int32) Flags {
@@ -95,26 +96,42 @@
 	return f
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
-	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST, ifindex)
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
+	index := 0
+	if ifi != nil {
+		index = ifi.Index
+	}
+	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST, index)
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
-
+	var ift []Interface
+	if index == 0 {
+		ift, err = parseInterfaceTable(index, msgs)
+		if err != nil {
+			return nil, err
+		}
+	}
 	var ifat []Addr
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceAddrMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifa, err := newAddr(v)
+			if index == 0 || index == int(m.Header.Index) {
+				if index == 0 {
+					var err error
+					ifi, err = interfaceByIndex(ift, int(m.Header.Index))
+					if err != nil {
+						return nil, err
+					}
+				}
+				ifa, err := newAddr(ifi, m)
 				if err != nil {
 					return nil, err
 				}
@@ -127,35 +144,33 @@
 	return ifat, nil
 }
 
-func newAddr(m *syscall.InterfaceAddrMessage) (Addr, error) {
+func newAddr(ifi *Interface, m *syscall.InterfaceAddrMessage) (Addr, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
 	ifa := &IPNet{}
-	for i, s := range sas {
-		switch v := s.(type) {
+	for i, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrInet4:
 			switch i {
 			case 0:
-				ifa.Mask = IPv4Mask(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])
+				ifa.Mask = IPv4Mask(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])
 			case 1:
-				ifa.IP = IPv4(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])
+				ifa.IP = IPv4(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])
 			}
 		case *syscall.SockaddrInet6:
 			switch i {
 			case 0:
 				ifa.Mask = make(IPMask, IPv6len)
-				copy(ifa.Mask, v.Addr[:])
+				copy(ifa.Mask, sa.Addr[:])
 			case 1:
 				ifa.IP = make(IP, IPv6len)
-				copy(ifa.IP, v.Addr[:])
+				copy(ifa.IP, sa.Addr[:])
 				// NOTE: KAME based IPv6 protcol stack usually embeds
 				// the interface index in the interface-local or link-
 				// local address as the kernel-internal form.
 				if ifa.IP.IsLinkLocalUnicast() {
-					// remove embedded scope zone ID
 					ifa.IP[2], ifa.IP[3] = 0, 0
 				}
 			}
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_darwin.go gcc-4.8.1/libgo/go/net/interface_darwin.go
--- gcc-4.8.1.orig/libgo/go/net/interface_darwin.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/interface_darwin.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for Darwin
-
 package net
 
 import (
@@ -11,26 +9,23 @@
 	"syscall"
 )
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
-	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST2, ifindex)
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	tab, err := syscall.RouteRIB(syscall.NET_RT_IFLIST2, ifi.Index)
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
-
 	var ifmat []Addr
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceMulticastAddrMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifma, err := newMulticastAddr(v)
+			if ifi.Index == int(m.Header.Index) {
+				ifma, err := newMulticastAddr(ifi, m)
 				if err != nil {
 					return nil, err
 				}
@@ -41,27 +36,24 @@
 	return ifmat, nil
 }
 
-func newMulticastAddr(m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
+func newMulticastAddr(ifi *Interface, m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
 	var ifmat []Addr
-	for _, s := range sas {
-		switch v := s.(type) {
+	for _, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrInet4:
-			ifma := &IPAddr{IP: IPv4(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])}
+			ifma := &IPAddr{IP: IPv4(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])}
 			ifmat = append(ifmat, ifma.toAddr())
 		case *syscall.SockaddrInet6:
 			ifma := &IPAddr{IP: make(IP, IPv6len)}
-			copy(ifma.IP, v.Addr[:])
-			// NOTE: KAME based IPv6 protcol stack usually embeds
+			copy(ifma.IP, sa.Addr[:])
+			// NOTE: KAME based IPv6 protocol stack usually embeds
 			// the interface index in the interface-local or link-
 			// local address as the kernel-internal form.
-			if ifma.IP.IsInterfaceLocalMulticast() ||
-				ifma.IP.IsLinkLocalMulticast() {
-				// remove embedded scope zone ID
+			if ifma.IP.IsInterfaceLocalMulticast() || ifma.IP.IsLinkLocalMulticast() {
 				ifma.IP[2], ifma.IP[3] = 0, 0
 			}
 			ifmat = append(ifmat, ifma.toAddr())
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_freebsd.go gcc-4.8.1/libgo/go/net/interface_freebsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_freebsd.go	2012-02-09 02:19:58.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/interface_freebsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for FreeBSD
-
 package net
 
 import (
@@ -11,26 +9,23 @@
 	"syscall"
 )
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
-	tab, err := syscall.RouteRIB(syscall.NET_RT_IFMALIST, ifindex)
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	tab, err := syscall.RouteRIB(syscall.NET_RT_IFMALIST, ifi.Index)
 	if err != nil {
 		return nil, os.NewSyscallError("route rib", err)
 	}
-
 	msgs, err := syscall.ParseRoutingMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("route message", err)
 	}
-
 	var ifmat []Addr
 	for _, m := range msgs {
-		switch v := m.(type) {
+		switch m := m.(type) {
 		case *syscall.InterfaceMulticastAddrMessage:
-			if ifindex == 0 || ifindex == int(v.Header.Index) {
-				ifma, err := newMulticastAddr(v)
+			if ifi.Index == int(m.Header.Index) {
+				ifma, err := newMulticastAddr(ifi, m)
 				if err != nil {
 					return nil, err
 				}
@@ -41,27 +36,24 @@
 	return ifmat, nil
 }
 
-func newMulticastAddr(m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
+func newMulticastAddr(ifi *Interface, m *syscall.InterfaceMulticastAddrMessage) ([]Addr, error) {
 	sas, err := syscall.ParseRoutingSockaddr(m)
 	if err != nil {
 		return nil, os.NewSyscallError("route sockaddr", err)
 	}
-
 	var ifmat []Addr
-	for _, s := range sas {
-		switch v := s.(type) {
+	for _, sa := range sas {
+		switch sa := sa.(type) {
 		case *syscall.SockaddrInet4:
-			ifma := &IPAddr{IP: IPv4(v.Addr[0], v.Addr[1], v.Addr[2], v.Addr[3])}
+			ifma := &IPAddr{IP: IPv4(sa.Addr[0], sa.Addr[1], sa.Addr[2], sa.Addr[3])}
 			ifmat = append(ifmat, ifma.toAddr())
 		case *syscall.SockaddrInet6:
 			ifma := &IPAddr{IP: make(IP, IPv6len)}
-			copy(ifma.IP, v.Addr[:])
-			// NOTE: KAME based IPv6 protcol stack usually embeds
+			copy(ifma.IP, sa.Addr[:])
+			// NOTE: KAME based IPv6 protocol stack usually embeds
 			// the interface index in the interface-local or link-
 			// local address as the kernel-internal form.
-			if ifma.IP.IsInterfaceLocalMulticast() ||
-				ifma.IP.IsLinkLocalMulticast() {
-				// remove embedded scope zone ID
+			if ifma.IP.IsInterfaceLocalMulticast() || ifma.IP.IsLinkLocalMulticast() {
 				ifma.IP[2], ifma.IP[3] = 0, 0
 			}
 			ifmat = append(ifmat, ifma.toAddr())
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface.go gcc-4.8.1/libgo/go/net/interface.go
--- gcc-4.8.1.orig/libgo/go/net/interface.go	2012-03-30 16:27:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/interface.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification
-
 package net
 
 import "errors"
@@ -66,7 +64,7 @@
 	if ifi == nil {
 		return nil, errInvalidInterface
 	}
-	return interfaceAddrTable(ifi.Index)
+	return interfaceAddrTable(ifi)
 }
 
 // MulticastAddrs returns multicast, joined group addresses for
@@ -75,7 +73,7 @@
 	if ifi == nil {
 		return nil, errInvalidInterface
 	}
-	return interfaceMulticastAddrTable(ifi.Index)
+	return interfaceMulticastAddrTable(ifi)
 }
 
 // Interfaces returns a list of the system's network interfaces.
@@ -86,7 +84,7 @@
 // InterfaceAddrs returns a list of the system's network interface
 // addresses.
 func InterfaceAddrs() ([]Addr, error) {
-	return interfaceAddrTable(0)
+	return interfaceAddrTable(nil)
 }
 
 // InterfaceByIndex returns the interface specified by index.
@@ -98,8 +96,14 @@
 	if err != nil {
 		return nil, err
 	}
+	return interfaceByIndex(ift, index)
+}
+
+func interfaceByIndex(ift []Interface, index int) (*Interface, error) {
 	for _, ifi := range ift {
-		return &ifi, nil
+		if index == ifi.Index {
+			return &ifi, nil
+		}
 	}
 	return nil, errNoSuchInterface
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_linux.go gcc-4.8.1/libgo/go/net/interface_linux.go
--- gcc-4.8.1.orig/libgo/go/net/interface_linux.go	2012-04-20 15:11:28.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/interface_linux.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for Linux
-
 package net
 
 import (
@@ -20,17 +18,16 @@
 	if err != nil {
 		return nil, os.NewSyscallError("netlink rib", err)
 	}
-
 	msgs, err := syscall.ParseNetlinkMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("netlink message", err)
 	}
-
 	var ift []Interface
+loop:
 	for _, m := range msgs {
 		switch m.Header.Type {
 		case syscall.NLMSG_DONE:
-			goto done
+			break loop
 		case syscall.RTM_NEWLINK:
 			ifim := (*syscall.IfInfomsg)(unsafe.Pointer(&m.Data[0]))
 			if ifindex == 0 || ifindex == int(ifim.Index) {
@@ -38,17 +35,18 @@
 				if err != nil {
 					return nil, os.NewSyscallError("netlink routeattr", err)
 				}
-				ifi := newLink(ifim, attrs)
-				ift = append(ift, ifi)
+				ift = append(ift, *newLink(ifim, attrs))
+				if ifindex == int(ifim.Index) {
+					break loop
+				}
 			}
 		}
 	}
-done:
 	return ift, nil
 }
 
-func newLink(ifim *syscall.IfInfomsg, attrs []syscall.NetlinkRouteAttr) Interface {
-	ifi := Interface{Index: int(ifim.Index), Flags: linkFlags(ifim.Flags)}
+func newLink(ifim *syscall.IfInfomsg, attrs []syscall.NetlinkRouteAttr) *Interface {
+	ifi := &Interface{Index: int(ifim.Index), Flags: linkFlags(ifim.Flags)}
 	for _, a := range attrs {
 		switch a.Attr.Type {
 		case syscall.IFLA_ADDRESS:
@@ -90,81 +88,84 @@
 	return f
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
 	tab, err := syscall.NetlinkRIB(syscall.RTM_GETADDR, syscall.AF_UNSPEC)
 	if err != nil {
 		return nil, os.NewSyscallError("netlink rib", err)
 	}
-
 	msgs, err := syscall.ParseNetlinkMessage(tab)
 	if err != nil {
 		return nil, os.NewSyscallError("netlink message", err)
 	}
-
-	ifat, err := addrTable(msgs, ifindex)
+	var ift []Interface
+	if ifi == nil {
+		var err error
+		ift, err = interfaceTable(0)
+		if err != nil {
+			return nil, err
+		}
+	}
+	ifat, err := addrTable(ift, ifi, msgs)
 	if err != nil {
 		return nil, err
 	}
 	return ifat, nil
 }
 
-func addrTable(msgs []syscall.NetlinkMessage, ifindex int) ([]Addr, error) {
+func addrTable(ift []Interface, ifi *Interface, msgs []syscall.NetlinkMessage) ([]Addr, error) {
 	var ifat []Addr
+loop:
 	for _, m := range msgs {
 		switch m.Header.Type {
 		case syscall.NLMSG_DONE:
-			goto done
+			break loop
 		case syscall.RTM_NEWADDR:
 			ifam := (*syscall.IfAddrmsg)(unsafe.Pointer(&m.Data[0]))
-			if ifindex == 0 || ifindex == int(ifam.Index) {
+			if len(ift) != 0 || ifi.Index == int(ifam.Index) {
+				if len(ift) != 0 {
+					var err error
+					ifi, err = interfaceByIndex(ift, int(ifam.Index))
+					if err != nil {
+						return nil, err
+					}
+				}
 				attrs, err := syscall.ParseNetlinkRouteAttr(&m)
 				if err != nil {
 					return nil, os.NewSyscallError("netlink routeattr", err)
 				}
-				ifat = append(ifat, newAddr(attrs, int(ifam.Family), int(ifam.Prefixlen)))
+				ifa := newAddr(ifi, ifam, attrs)
+				if ifa != nil {
+					ifat = append(ifat, ifa)
+				}
 			}
 		}
 	}
-done:
 	return ifat, nil
 }
 
-func newAddr(attrs []syscall.NetlinkRouteAttr, family, pfxlen int) Addr {
-	ifa := &IPNet{}
+func newAddr(ifi *Interface, ifam *syscall.IfAddrmsg, attrs []syscall.NetlinkRouteAttr) Addr {
 	for _, a := range attrs {
-		switch a.Attr.Type {
-		case syscall.IFA_ADDRESS:
-			switch family {
+		if ifi.Flags&FlagPointToPoint != 0 && a.Attr.Type == syscall.IFA_LOCAL ||
+			ifi.Flags&FlagPointToPoint == 0 && a.Attr.Type == syscall.IFA_ADDRESS {
+			switch ifam.Family {
 			case syscall.AF_INET:
-				ifa.IP = IPv4(a.Value[0], a.Value[1], a.Value[2], a.Value[3])
-				ifa.Mask = CIDRMask(pfxlen, 8*IPv4len)
+				return &IPNet{IP: IPv4(a.Value[0], a.Value[1], a.Value[2], a.Value[3]), Mask: CIDRMask(int(ifam.Prefixlen), 8*IPv4len)}
 			case syscall.AF_INET6:
-				ifa.IP = make(IP, IPv6len)
+				ifa := &IPNet{IP: make(IP, IPv6len), Mask: CIDRMask(int(ifam.Prefixlen), 8*IPv6len)}
 				copy(ifa.IP, a.Value[:])
-				ifa.Mask = CIDRMask(pfxlen, 8*IPv6len)
+				return ifa
 			}
 		}
 	}
-	return ifa
+	return nil
 }
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
-	var (
-		err error
-		ifi *Interface
-	)
-	if ifindex > 0 {
-		ifi, err = InterfaceByIndex(ifindex)
-		if err != nil {
-			return nil, err
-		}
-	}
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
 	ifmat4 := parseProcNetIGMP("/proc/net/igmp", ifi)
 	ifmat6 := parseProcNetIGMP6("/proc/net/igmp6", ifi)
 	return append(ifmat4, ifmat6...), nil
@@ -176,7 +177,6 @@
 		return nil
 	}
 	defer fd.close()
-
 	var (
 		ifmat []Addr
 		name  string
@@ -214,7 +214,6 @@
 		return nil
 	}
 	defer fd.close()
-
 	var ifmat []Addr
 	b := make([]byte, IPv6len)
 	for l, ok := fd.readLine(); ok; l, ok = fd.readLine() {
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_netbsd.go gcc-4.8.1/libgo/go/net/interface_netbsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_netbsd.go	2012-01-12 23:11:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/interface_netbsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,13 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for NetBSD
-
 package net
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	// TODO(mikio): Implement this like other platforms.
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_openbsd.go gcc-4.8.1/libgo/go/net/interface_openbsd.go
--- gcc-4.8.1.orig/libgo/go/net/interface_openbsd.go	2011-12-02 20:17:34.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/interface_openbsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,13 +2,11 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for OpenBSD
-
 package net
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	// TODO(mikio): Implement this like other platforms.
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_stub.go gcc-4.8.1/libgo/go/net/interface_stub.go
--- gcc-4.8.1.orig/libgo/go/net/interface_stub.go	2012-03-30 17:09:55.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/interface_stub.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build plan9
 
-// Network interface identification
-
 package net
 
 // If the ifindex is zero, interfaceTable returns mappings of all
@@ -15,16 +13,15 @@
 	return nil, nil
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
 	return nil, nil
 }
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_test.go gcc-4.8.1/libgo/go/net/interface_test.go
--- gcc-4.8.1.orig/libgo/go/net/interface_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/interface_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,18 +5,50 @@
 package net
 
 import (
-	"bytes"
+	"reflect"
 	"testing"
 )
 
-func sameInterface(i, j *Interface) bool {
-	if i == nil || j == nil {
-		return false
+// loopbackInterface returns an available logical network interface
+// for loopback tests.  It returns nil if no suitable interface is
+// found.
+func loopbackInterface() *Interface {
+	ift, err := Interfaces()
+	if err != nil {
+		return nil
+	}
+	for _, ifi := range ift {
+		if ifi.Flags&FlagLoopback != 0 && ifi.Flags&FlagUp != 0 {
+			return &ifi
+		}
+	}
+	return nil
+}
+
+// ipv6LinkLocalUnicastAddr returns an IPv6 link-local unicast address
+// on the given network interface for tests. It returns "" if no
+// suitable address is found.
+func ipv6LinkLocalUnicastAddr(ifi *Interface) string {
+	if ifi == nil {
+		return ""
+	}
+	ifat, err := ifi.Addrs()
+	if err != nil {
+		return ""
 	}
-	if i.Index == j.Index && i.Name == j.Name && bytes.Equal(i.HardwareAddr, j.HardwareAddr) {
-		return true
+	for _, ifa := range ifat {
+		switch ifa := ifa.(type) {
+		case *IPAddr:
+			if ifa.IP.To4() == nil && ifa.IP.IsLinkLocalUnicast() {
+				return ifa.IP.String()
+			}
+		case *IPNet:
+			if ifa.IP.To4() == nil && ifa.IP.IsLinkLocalUnicast() {
+				return ifa.IP.String()
+			}
+		}
 	}
-	return false
+	return ""
 }
 
 func TestInterfaces(t *testing.T) {
@@ -29,17 +61,17 @@
 	for _, ifi := range ift {
 		ifxi, err := InterfaceByIndex(ifi.Index)
 		if err != nil {
-			t.Fatalf("InterfaceByIndex(%q) failed: %v", ifi.Index, err)
+			t.Fatalf("InterfaceByIndex(%v) failed: %v", ifi.Index, err)
 		}
-		if !sameInterface(ifxi, &ifi) {
-			t.Fatalf("InterfaceByIndex(%q) = %v, want %v", ifi.Index, *ifxi, ifi)
+		if !reflect.DeepEqual(ifxi, &ifi) {
+			t.Fatalf("InterfaceByIndex(%v) = %v, want %v", ifi.Index, ifxi, ifi)
 		}
 		ifxn, err := InterfaceByName(ifi.Name)
 		if err != nil {
 			t.Fatalf("InterfaceByName(%q) failed: %v", ifi.Name, err)
 		}
-		if !sameInterface(ifxn, &ifi) {
-			t.Fatalf("InterfaceByName(%q) = %v, want %v", ifi.Name, *ifxn, ifi)
+		if !reflect.DeepEqual(ifxn, &ifi) {
+			t.Fatalf("InterfaceByName(%q) = %v, want %v", ifi.Name, ifxn, ifi)
 		}
 		t.Logf("%q: flags %q, ifindex %v, mtu %v", ifi.Name, ifi.Flags.String(), ifi.Index, ifi.MTU)
 		t.Logf("\thardware address %q", ifi.HardwareAddr.String())
@@ -75,9 +107,9 @@
 
 func testAddrs(t *testing.T, ifat []Addr) {
 	for _, ifa := range ifat {
-		switch v := ifa.(type) {
+		switch ifa := ifa.(type) {
 		case *IPAddr, *IPNet:
-			if v == nil {
+			if ifa == nil {
 				t.Errorf("\tunexpected value: %v", ifa)
 			} else {
 				t.Logf("\tinterface address %q", ifa.String())
@@ -90,9 +122,9 @@
 
 func testMulticastAddrs(t *testing.T, ifmat []Addr) {
 	for _, ifma := range ifmat {
-		switch v := ifma.(type) {
+		switch ifma := ifma.(type) {
 		case *IPAddr:
-			if v == nil {
+			if ifma == nil {
 				t.Errorf("\tunexpected value: %v", ifma)
 			} else {
 				t.Logf("\tjoined group address %q", ifma.String())
@@ -102,3 +134,67 @@
 		}
 	}
 }
+
+func BenchmarkInterfaces(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		if _, err := Interfaces(); err != nil {
+			b.Fatalf("Interfaces failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfaceByIndex(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := InterfaceByIndex(ifi.Index); err != nil {
+			b.Fatalf("InterfaceByIndex failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfaceByName(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := InterfaceByName(ifi.Name); err != nil {
+			b.Fatalf("InterfaceByName failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfaceAddrs(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		if _, err := InterfaceAddrs(); err != nil {
+			b.Fatalf("InterfaceAddrs failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfacesAndAddrs(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := ifi.Addrs(); err != nil {
+			b.Fatalf("Interface.Addrs failed: %v", err)
+		}
+	}
+}
+
+func BenchmarkInterfacesAndMulticastAddrs(b *testing.B) {
+	ifi := loopbackInterface()
+	if ifi == nil {
+		b.Skip("loopback interface not found")
+	}
+	for i := 0; i < b.N; i++ {
+		if _, err := ifi.MulticastAddrs(); err != nil {
+			b.Fatalf("Interface.MulticastAddrs failed: %v", err)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/interface_windows.go gcc-4.8.1/libgo/go/net/interface_windows.go
--- gcc-4.8.1.orig/libgo/go/net/interface_windows.go	2012-03-30 17:09:55.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/interface_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Network interface identification for Windows
-
 package net
 
 import (
@@ -25,6 +23,9 @@
 	b := make([]byte, 1000)
 	l := uint32(len(b))
 	a := (*syscall.IpAdapterInfo)(unsafe.Pointer(&b[0]))
+	// TODO(mikio): GetAdaptersInfo returns IP_ADAPTER_INFO that
+	// contains IPv4 address list only. We should use another API
+	// for fetching IPv6 stuff from the kernel.
 	err := syscall.GetAdaptersInfo(a, &l)
 	if err == syscall.ERROR_BUFFER_OVERFLOW {
 		b = make([]byte, l)
@@ -38,7 +39,7 @@
 }
 
 func getInterfaceList() ([]syscall.InterfaceInfo, error) {
-	s, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_UDP)
+	s, err := sysSocket(syscall.AF_INET, syscall.SOCK_DGRAM, syscall.IPPROTO_UDP)
 	if err != nil {
 		return nil, os.NewSyscallError("Socket", err)
 	}
@@ -126,10 +127,10 @@
 	return ift, nil
 }
 
-// If the ifindex is zero, interfaceAddrTable returns addresses
-// for all network interfaces.  Otherwise it returns addresses
-// for a specific interface.
-func interfaceAddrTable(ifindex int) ([]Addr, error) {
+// If the ifi is nil, interfaceAddrTable returns addresses for all
+// network interfaces.  Otherwise it returns addresses for a specific
+// interface.
+func interfaceAddrTable(ifi *Interface) ([]Addr, error) {
 	ai, err := getAdapterList()
 	if err != nil {
 		return nil, err
@@ -138,11 +139,10 @@
 	var ifat []Addr
 	for ; ai != nil; ai = ai.Next {
 		index := ai.Index
-		if ifindex == 0 || ifindex == int(index) {
+		if ifi == nil || ifi.Index == int(index) {
 			ipl := &ai.IpAddressList
 			for ; ipl != nil; ipl = ipl.Next {
-				ifa := IPAddr{}
-				ifa.IP = parseIPv4(bytePtrToString(&ipl.IpAddress.String[0]))
+				ifa := IPAddr{IP: parseIPv4(bytePtrToString(&ipl.IpAddress.String[0]))}
 				ifat = append(ifat, ifa.toAddr())
 			}
 		}
@@ -150,9 +150,9 @@
 	return ifat, nil
 }
 
-// If the ifindex is zero, interfaceMulticastAddrTable returns
-// addresses for all network interfaces.  Otherwise it returns
-// addresses for a specific interface.
-func interfaceMulticastAddrTable(ifindex int) ([]Addr, error) {
+// interfaceMulticastAddrTable returns addresses for a specific
+// interface.
+func interfaceMulticastAddrTable(ifi *Interface) ([]Addr, error) {
+	// TODO(mikio): Implement this like other platforms.
 	return nil, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/ip.go gcc-4.8.1/libgo/go/net/ip.go
--- gcc-4.8.1.orig/libgo/go/net/ip.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/ip.go	2013-07-16 01:55:04.520470000 -0500
@@ -36,7 +36,6 @@
 type IPNet struct {
 	IP   IP     // network number
 	Mask IPMask // network mask
-	Zone string // IPv6 scoped addressing zone
 }
 
 // IPv4 returns the IP address (in 16-byte form) of the
@@ -223,7 +222,6 @@
 	default:
 		return classCMask
 	}
-	return nil // not reached
 }
 
 func allFF(b []byte) bool {
@@ -433,6 +431,9 @@
 	return true
 }
 
+// Network returns the address's network name, "ip+net".
+func (n *IPNet) Network() string { return "ip+net" }
+
 // String returns the CIDR notation of n like "192.168.100.1/24"
 // or "2001:DB8::/48" as defined in RFC 4632 and RFC 4291.
 // If the mask is not in the canonical form, it returns the
@@ -451,9 +452,6 @@
 	return nn.String() + "/" + itod(uint(l))
 }
 
-// Network returns the address's network name, "ip+net".
-func (n *IPNet) Network() string { return "ip+net" }
-
 // Parse IPv4 address (d.d.d.d).
 func parseIPv4(s string) IP {
 	var p [IPv4len]byte
@@ -485,26 +483,26 @@
 	return IPv4(p[0], p[1], p[2], p[3])
 }
 
-// Parse IPv6 address.  Many forms.
-// The basic form is a sequence of eight colon-separated
-// 16-bit hex numbers separated by colons,
-// as in 0123:4567:89ab:cdef:0123:4567:89ab:cdef.
-// Two exceptions:
-//	* A run of zeros can be replaced with "::".
-//	* The last 32 bits can be in IPv4 form.
-// Thus, ::ffff:1.2.3.4 is the IPv4 address 1.2.3.4.
-func parseIPv6(s string) IP {
-	p := make(IP, IPv6len)
+// parseIPv6 parses s as a literal IPv6 address described in RFC 4291
+// and RFC 5952.  It can also parse a literal scoped IPv6 address with
+// zone identifier which is described in RFC 4007 when zoneAllowed is
+// true.
+func parseIPv6(s string, zoneAllowed bool) (ip IP, zone string) {
+	ip = make(IP, IPv6len)
 	ellipsis := -1 // position of ellipsis in p
 	i := 0         // index in string s
 
+	if zoneAllowed {
+		s, zone = splitHostZone(s)
+	}
+
 	// Might have leading ellipsis
 	if len(s) >= 2 && s[0] == ':' && s[1] == ':' {
 		ellipsis = 0
 		i = 2
 		// Might be only ellipsis
 		if i == len(s) {
-			return p
+			return ip, zone
 		}
 	}
 
@@ -514,35 +512,35 @@
 		// Hex number.
 		n, i1, ok := xtoi(s, i)
 		if !ok || n > 0xFFFF {
-			return nil
+			return nil, zone
 		}
 
 		// If followed by dot, might be in trailing IPv4.
 		if i1 < len(s) && s[i1] == '.' {
 			if ellipsis < 0 && j != IPv6len-IPv4len {
 				// Not the right place.
-				return nil
+				return nil, zone
 			}
 			if j+IPv4len > IPv6len {
 				// Not enough room.
-				return nil
+				return nil, zone
 			}
-			p4 := parseIPv4(s[i:])
-			if p4 == nil {
-				return nil
+			ip4 := parseIPv4(s[i:])
+			if ip4 == nil {
+				return nil, zone
 			}
-			p[j] = p4[12]
-			p[j+1] = p4[13]
-			p[j+2] = p4[14]
-			p[j+3] = p4[15]
+			ip[j] = ip4[12]
+			ip[j+1] = ip4[13]
+			ip[j+2] = ip4[14]
+			ip[j+3] = ip4[15]
 			i = len(s)
 			j += IPv4len
 			break
 		}
 
 		// Save this 16-bit chunk.
-		p[j] = byte(n >> 8)
-		p[j+1] = byte(n)
+		ip[j] = byte(n >> 8)
+		ip[j+1] = byte(n)
 		j += 2
 
 		// Stop at end of string.
@@ -553,14 +551,14 @@
 
 		// Otherwise must be followed by colon and more.
 		if s[i] != ':' || i+1 == len(s) {
-			return nil
+			return nil, zone
 		}
 		i++
 
 		// Look for ellipsis.
 		if s[i] == ':' {
 			if ellipsis >= 0 { // already have one
-				return nil
+				return nil, zone
 			}
 			ellipsis = j
 			if i++; i == len(s) { // can be at end
@@ -571,23 +569,23 @@
 
 	// Must have used entire string.
 	if i != len(s) {
-		return nil
+		return nil, zone
 	}
 
 	// If didn't parse enough, expand ellipsis.
 	if j < IPv6len {
 		if ellipsis < 0 {
-			return nil
+			return nil, zone
 		}
 		n := IPv6len - j
 		for k := j - 1; k >= ellipsis; k-- {
-			p[k+n] = p[k]
+			ip[k+n] = ip[k]
 		}
 		for k := ellipsis + n - 1; k >= ellipsis; k-- {
-			p[k] = 0
+			ip[k] = 0
 		}
 	}
-	return p
+	return ip, zone
 }
 
 // A ParseError represents a malformed text string and the type of string that was expected.
@@ -600,26 +598,17 @@
 	return "invalid " + e.Type + ": " + e.Text
 }
 
-func parseIP(s string) IP {
-	if p := parseIPv4(s); p != nil {
-		return p
-	}
-	if p := parseIPv6(s); p != nil {
-		return p
-	}
-	return nil
-}
-
 // ParseIP parses s as an IP address, returning the result.
 // The string s can be in dotted decimal ("74.125.19.99")
 // or IPv6 ("2001:4860:0:2001::68") form.
 // If s is not a valid textual representation of an IP address,
 // ParseIP returns nil.
 func ParseIP(s string) IP {
-	if p := parseIPv4(s); p != nil {
-		return p
+	if ip := parseIPv4(s); ip != nil {
+		return ip
 	}
-	return parseIPv6(s)
+	ip, _ := parseIPv6(s, false)
+	return ip
 }
 
 // ParseCIDR parses s as a CIDR notation IP address and mask,
@@ -634,15 +623,15 @@
 	if i < 0 {
 		return nil, nil, &ParseError{"CIDR address", s}
 	}
-	ipstr, maskstr := s[:i], s[i+1:]
+	addr, mask := s[:i], s[i+1:]
 	iplen := IPv4len
-	ip := parseIPv4(ipstr)
+	ip := parseIPv4(addr)
 	if ip == nil {
 		iplen = IPv6len
-		ip = parseIPv6(ipstr)
+		ip, _ = parseIPv6(addr, false)
 	}
-	n, i, ok := dtoi(maskstr, 0)
-	if ip == nil || !ok || i != len(maskstr) || n < 0 || n > 8*iplen {
+	n, i, ok := dtoi(mask, 0)
+	if ip == nil || !ok || i != len(mask) || n < 0 || n > 8*iplen {
 		return nil, nil, &ParseError{"CIDR address", s}
 	}
 	m := CIDRMask(n, 8*iplen)
diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock.go gcc-4.8.1/libgo/go/net/iprawsock.go
--- gcc-4.8.1.orig/libgo/go/net/iprawsock.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/iprawsock.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Raw IP sockets
-
 package net
 
 // IPAddr represents the address of an IP end point.
@@ -19,17 +17,20 @@
 	if a == nil {
 		return "<nil>"
 	}
+	if a.Zone != "" {
+		return a.IP.String() + "%" + a.Zone
+	}
 	return a.IP.String()
 }
 
-// ResolveIPAddr parses addr as an IP address and resolves domain
-// names to numeric addresses on the network net, which must be
-// "ip", "ip4" or "ip6".
+// ResolveIPAddr parses addr as an IP address of the form "host" or
+// "ipv6-host%zone" and resolves the domain name on the network net,
+// which must be "ip", "ip4" or "ip6".
 func ResolveIPAddr(net, addr string) (*IPAddr, error) {
 	if net == "" { // a hint wildcard for Go 1.0 undocumented behavior
 		net = "ip"
 	}
-	afnet, _, err := parseDialNetwork(net)
+	afnet, _, err := parseNetwork(net)
 	if err != nil {
 		return nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_plan9.go gcc-4.8.1/libgo/go/net/iprawsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/iprawsock_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/iprawsock_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Raw IP sockets for Plan 9
-
 package net
 
 import (
@@ -34,7 +32,7 @@
 }
 
 // ReadMsgIP reads a packet from c, copying the payload into b and the
-// associdated out-of-band data into oob.  It returns the number of
+// associated out-of-band data into oob.  It returns the number of
 // bytes copied into b, the number of bytes copied into oob, the flags
 // that were set on the packet and the source address of the packet.
 func (c *IPConn) ReadMsgIP(b, oob []byte) (n, oobn, flags int, addr *IPAddr, err error) {
@@ -76,7 +74,7 @@
 }
 
 // ListenIP listens for incoming IP packets addressed to the local
-// address laddr.  The returned connection c's ReadFrom and WriteTo
+// address laddr.  The returned connection's ReadFrom and WriteTo
 // methods can be used to receive and send IP packets with per-packet
 // addressing.
 func ListenIP(netProto string, laddr *IPAddr) (*IPConn, error) {
diff -Naur gcc-4.8.1.orig/libgo/go/net/iprawsock_posix.go gcc-4.8.1/libgo/go/net/iprawsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/iprawsock_posix.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/iprawsock_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// Raw IP sockets for POSIX
-
 package net
 
 import (
@@ -51,8 +49,8 @@
 	return a
 }
 
-// IPConn is the implementation of the Conn and PacketConn
-// interfaces for IP network connections.
+// IPConn is the implementation of the Conn and PacketConn interfaces
+// for IP network connections.
 type IPConn struct {
 	conn
 }
@@ -98,7 +96,7 @@
 }
 
 // ReadMsgIP reads a packet from c, copying the payload into b and the
-// associdated out-of-band data into oob.  It returns the number of
+// associated out-of-band data into oob.  It returns the number of
 // bytes copied into b, the number of bytes copied into oob, the flags
 // that were set on the packet and the source address of the packet.
 func (c *IPConn) ReadMsgIP(b, oob []byte) (n, oobn, flags int, addr *IPAddr, err error) {
@@ -116,12 +114,13 @@
 	return
 }
 
-// WriteToIP writes an IP packet to addr via c, copying the payload from b.
+// WriteToIP writes an IP packet to addr via c, copying the payload
+// from b.
 //
-// WriteToIP can be made to time out and return
-// an error with Timeout() == true after a fixed time limit;
-// see SetDeadline and SetWriteDeadline.
-// On packet-oriented connections, write timeouts are rare.
+// WriteToIP can be made to time out and return an error with
+// Timeout() == true after a fixed time limit; see SetDeadline and
+// SetWriteDeadline.  On packet-oriented connections, write timeouts
+// are rare.
 func (c *IPConn) WriteToIP(b []byte, addr *IPAddr) (int, error) {
 	if !c.ok() {
 		return 0, syscall.EINVAL
@@ -159,14 +158,15 @@
 	return c.fd.WriteMsg(b, oob, sa)
 }
 
-// DialIP connects to the remote address raddr on the network protocol netProto,
-// which must be "ip", "ip4", or "ip6" followed by a colon and a protocol number or name.
+// DialIP connects to the remote address raddr on the network protocol
+// netProto, which must be "ip", "ip4", or "ip6" followed by a colon
+// and a protocol number or name.
 func DialIP(netProto string, laddr, raddr *IPAddr) (*IPConn, error) {
 	return dialIP(netProto, laddr, raddr, noDeadline)
 }
 
 func dialIP(netProto string, laddr, raddr *IPAddr, deadline time.Time) (*IPConn, error) {
-	net, proto, err := parseDialNetwork(netProto)
+	net, proto, err := parseNetwork(netProto)
 	if err != nil {
 		return nil, err
 	}
@@ -185,12 +185,12 @@
 	return newIPConn(fd), nil
 }
 
-// ListenIP listens for incoming IP packets addressed to the
-// local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send IP
-// packets with per-packet addressing.
+// ListenIP listens for incoming IP packets addressed to the local
+// address laddr.  The returned connection's ReadFrom and WriteTo
+// methods can be used to receive and send IP packets with per-packet
+// addressing.
 func ListenIP(netProto string, laddr *IPAddr) (*IPConn, error) {
-	net, proto, err := parseDialNetwork(netProto)
+	net, proto, err := parseNetwork(netProto)
 	if err != nil {
 		return nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/ipraw_test.go gcc-4.8.1/libgo/go/net/ipraw_test.go
--- gcc-4.8.1.orig/libgo/go/net/ipraw_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/ipraw_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,32 +2,36 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !plan9
-
 package net
 
 import (
 	"bytes"
+	"errors"
+	"fmt"
 	"os"
 	"reflect"
-	"syscall"
 	"testing"
 	"time"
 )
 
-var resolveIPAddrTests = []struct {
+type resolveIPAddrTest struct {
 	net     string
 	litAddr string
 	addr    *IPAddr
 	err     error
-}{
+}
+
+var resolveIPAddrTests = []resolveIPAddrTest{
 	{"ip", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil},
 	{"ip4", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil},
 	{"ip4:icmp", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil},
 
 	{"ip", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
 	{"ip6", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
-	{"ip6:icmp", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
+	{"ip6:ipv6-icmp", "::1", &IPAddr{IP: ParseIP("::1")}, nil},
+
+	{"ip", "::1%en0", &IPAddr{IP: ParseIP("::1"), Zone: "en0"}, nil},
+	{"ip6", "::1%911", &IPAddr{IP: ParseIP("::1"), Zone: "911"}, nil},
 
 	{"", "127.0.0.1", &IPAddr{IP: IPv4(127, 0, 0, 1)}, nil}, // Go 1.0 behavior
 	{"", "::1", &IPAddr{IP: ParseIP("::1")}, nil},           // Go 1.0 behavior
@@ -37,208 +41,290 @@
 	{"tcp", "1.2.3.4:123", nil, UnknownNetworkError("tcp")},
 }
 
+func init() {
+	if ifi := loopbackInterface(); ifi != nil {
+		index := fmt.Sprintf("%v", ifi.Index)
+		resolveIPAddrTests = append(resolveIPAddrTests, []resolveIPAddrTest{
+			{"ip6", "fe80::1%" + ifi.Name, &IPAddr{IP: ParseIP("fe80::1"), Zone: zoneToString(ifi.Index)}, nil},
+			{"ip6", "fe80::1%" + index, &IPAddr{IP: ParseIP("fe80::1"), Zone: index}, nil},
+		}...)
+	}
+}
+
 func TestResolveIPAddr(t *testing.T) {
 	for _, tt := range resolveIPAddrTests {
 		addr, err := ResolveIPAddr(tt.net, tt.litAddr)
 		if err != tt.err {
-			t.Fatalf("ResolveIPAddr(%v, %v) failed: %v", tt.net, tt.litAddr, err)
-		}
-		if !reflect.DeepEqual(addr, tt.addr) {
+			condFatalf(t, "ResolveIPAddr(%v, %v) failed: %v", tt.net, tt.litAddr, err)
+		} else if !reflect.DeepEqual(addr, tt.addr) {
 			t.Fatalf("got %#v; expected %#v", addr, tt.addr)
 		}
 	}
 }
 
-var icmpTests = []struct {
+var icmpEchoTests = []struct {
 	net   string
 	laddr string
 	raddr string
-	ipv6  bool // test with underlying AF_INET6 socket
 }{
-	{"ip4:icmp", "", "127.0.0.1", false},
-	{"ip6:ipv6-icmp", "", "::1", true},
+	{"ip4:icmp", "0.0.0.0", "127.0.0.1"},
+	{"ip6:ipv6-icmp", "::", "::1"},
 }
 
-func TestICMP(t *testing.T) {
+func TestConnICMPEcho(t *testing.T) {
 	if os.Getuid() != 0 {
 		t.Skip("skipping test; must be root")
 	}
 
-	seqnum := 61455
-	for _, tt := range icmpTests {
-		if tt.ipv6 && !supportsIPv6 {
+	for i, tt := range icmpEchoTests {
+		net, _, err := parseNetwork(tt.net)
+		if err != nil {
+			t.Fatalf("parseNetwork failed: %v", err)
+		}
+		if net == "ip6" && !supportsIPv6 {
 			continue
 		}
-		id := os.Getpid() & 0xffff
-		seqnum++
-		echo := newICMPEchoRequest(tt.net, id, seqnum, 128, []byte("Go Go Gadget Ping!!!"))
-		exchangeICMPEcho(t, tt.net, tt.laddr, tt.raddr, echo)
-	}
-}
-
-func exchangeICMPEcho(t *testing.T, net, laddr, raddr string, echo []byte) {
-	c, err := ListenPacket(net, laddr)
-	if err != nil {
-		t.Errorf("ListenPacket(%q, %q) failed: %v", net, laddr, err)
-		return
-	}
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
 
-	ra, err := ResolveIPAddr(net, raddr)
-	if err != nil {
-		t.Errorf("ResolveIPAddr(%q, %q) failed: %v", net, raddr, err)
-		return
-	}
-
-	waitForReady := make(chan bool)
-	go icmpEchoTransponder(t, net, raddr, waitForReady)
-	<-waitForReady
-
-	_, err = c.WriteTo(echo, ra)
-	if err != nil {
-		t.Errorf("WriteTo failed: %v", err)
-		return
-	}
+		c, err := Dial(tt.net, tt.raddr)
+		if err != nil {
+			t.Fatalf("Dial failed: %v", err)
+		}
+		c.SetDeadline(time.Now().Add(100 * time.Millisecond))
+		defer c.Close()
 
-	reply := make([]byte, 256)
-	for {
-		_, _, err := c.ReadFrom(reply)
+		typ := icmpv4EchoRequest
+		if net == "ip6" {
+			typ = icmpv6EchoRequest
+		}
+		xid, xseq := os.Getpid()&0xffff, i+1
+		b, err := (&icmpMessage{
+			Type: typ, Code: 0,
+			Body: &icmpEcho{
+				ID: xid, Seq: xseq,
+				Data: bytes.Repeat([]byte("Go Go Gadget Ping!!!"), 3),
+			},
+		}).Marshal()
 		if err != nil {
-			t.Errorf("ReadFrom failed: %v", err)
-			return
+			t.Fatalf("icmpMessage.Marshal failed: %v", err)
 		}
-		switch c.(*IPConn).fd.family {
-		case syscall.AF_INET:
-			if reply[0] != ICMP4_ECHO_REPLY {
-				continue
+		if _, err := c.Write(b); err != nil {
+			t.Fatalf("Conn.Write failed: %v", err)
+		}
+		var m *icmpMessage
+		for {
+			if _, err := c.Read(b); err != nil {
+				t.Fatalf("Conn.Read failed: %v", err)
+			}
+			if net == "ip4" {
+				b = ipv4Payload(b)
+			}
+			if m, err = parseICMPMessage(b); err != nil {
+				t.Fatalf("parseICMPMessage failed: %v", err)
 			}
-		case syscall.AF_INET6:
-			if reply[0] != ICMP6_ECHO_REPLY {
+			switch m.Type {
+			case icmpv4EchoRequest, icmpv6EchoRequest:
 				continue
 			}
+			break
 		}
-		xid, xseqnum := parseICMPEchoReply(echo)
-		rid, rseqnum := parseICMPEchoReply(reply)
-		if rid != xid || rseqnum != xseqnum {
-			t.Errorf("ID = %v, Seqnum = %v, want ID = %v, Seqnum = %v", rid, rseqnum, xid, xseqnum)
-			return
+		switch p := m.Body.(type) {
+		case *icmpEcho:
+			if p.ID != xid || p.Seq != xseq {
+				t.Fatalf("got id=%v, seqnum=%v; expected id=%v, seqnum=%v", p.ID, p.Seq, xid, xseq)
+			}
+		default:
+			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, typ, 0)
 		}
-		break
 	}
 }
 
-func icmpEchoTransponder(t *testing.T, net, raddr string, waitForReady chan bool) {
-	c, err := Dial(net, raddr)
-	if err != nil {
-		waitForReady <- true
-		t.Errorf("Dial(%q, %q) failed: %v", net, raddr, err)
-		return
+func TestPacketConnICMPEcho(t *testing.T) {
+	if os.Getuid() != 0 {
+		t.Skip("skipping test; must be root")
 	}
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
-	waitForReady <- true
 
-	echo := make([]byte, 256)
-	var nr int
-	for {
-		nr, err = c.Read(echo)
+	for i, tt := range icmpEchoTests {
+		net, _, err := parseNetwork(tt.net)
 		if err != nil {
-			t.Errorf("Read failed: %v", err)
-			return
+			t.Fatalf("parseNetwork failed: %v", err)
 		}
-		switch c.(*IPConn).fd.family {
-		case syscall.AF_INET:
-			if echo[0] != ICMP4_ECHO_REQUEST {
-				continue
+		if net == "ip6" && !supportsIPv6 {
+			continue
+		}
+
+		c, err := ListenPacket(tt.net, tt.laddr)
+		if err != nil {
+			t.Fatalf("ListenPacket failed: %v", err)
+		}
+		c.SetDeadline(time.Now().Add(100 * time.Millisecond))
+		defer c.Close()
+
+		ra, err := ResolveIPAddr(tt.net, tt.raddr)
+		if err != nil {
+			t.Fatalf("ResolveIPAddr failed: %v", err)
+		}
+		typ := icmpv4EchoRequest
+		if net == "ip6" {
+			typ = icmpv6EchoRequest
+		}
+		xid, xseq := os.Getpid()&0xffff, i+1
+		b, err := (&icmpMessage{
+			Type: typ, Code: 0,
+			Body: &icmpEcho{
+				ID: xid, Seq: xseq,
+				Data: bytes.Repeat([]byte("Go Go Gadget Ping!!!"), 3),
+			},
+		}).Marshal()
+		if err != nil {
+			t.Fatalf("icmpMessage.Marshal failed: %v", err)
+		}
+		if _, err := c.WriteTo(b, ra); err != nil {
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
+		}
+		var m *icmpMessage
+		for {
+			if _, _, err := c.ReadFrom(b); err != nil {
+				t.Fatalf("PacketConn.ReadFrom failed: %v", err)
+			}
+			// TODO: fix issue 3944
+			//if net == "ip4" {
+			//	b = ipv4Payload(b)
+			//}
+			if m, err = parseICMPMessage(b); err != nil {
+				t.Fatalf("parseICMPMessage failed: %v", err)
 			}
-		case syscall.AF_INET6:
-			if echo[0] != ICMP6_ECHO_REQUEST {
+			switch m.Type {
+			case icmpv4EchoRequest, icmpv6EchoRequest:
 				continue
 			}
+			break
+		}
+		switch p := m.Body.(type) {
+		case *icmpEcho:
+			if p.ID != xid || p.Seq != xseq {
+				t.Fatalf("got id=%v, seqnum=%v; expected id=%v, seqnum=%v", p.ID, p.Seq, xid, xseq)
+			}
+		default:
+			t.Fatalf("got type=%v, code=%v; expected type=%v, code=%v", m.Type, m.Code, typ, 0)
 		}
-		break
-	}
-
-	switch c.(*IPConn).fd.family {
-	case syscall.AF_INET:
-		echo[0] = ICMP4_ECHO_REPLY
-	case syscall.AF_INET6:
-		echo[0] = ICMP6_ECHO_REPLY
 	}
+}
 
-	_, err = c.Write(echo[:nr])
-	if err != nil {
-		t.Errorf("Write failed: %v", err)
-		return
+func ipv4Payload(b []byte) []byte {
+	if len(b) < 20 {
+		return b
 	}
+	hdrlen := int(b[0]&0x0f) << 2
+	return b[hdrlen:]
 }
 
 const (
-	ICMP4_ECHO_REQUEST = 8
-	ICMP4_ECHO_REPLY   = 0
-	ICMP6_ECHO_REQUEST = 128
-	ICMP6_ECHO_REPLY   = 129
+	icmpv4EchoRequest = 8
+	icmpv4EchoReply   = 0
+	icmpv6EchoRequest = 128
+	icmpv6EchoReply   = 129
 )
 
-func newICMPEchoRequest(net string, id, seqnum, msglen int, filler []byte) []byte {
-	afnet, _, _ := parseDialNetwork(net)
-	switch afnet {
-	case "ip4":
-		return newICMPv4EchoRequest(id, seqnum, msglen, filler)
-	case "ip6":
-		return newICMPv6EchoRequest(id, seqnum, msglen, filler)
-	}
-	return nil
-}
-
-func newICMPv4EchoRequest(id, seqnum, msglen int, filler []byte) []byte {
-	b := newICMPInfoMessage(id, seqnum, msglen, filler)
-	b[0] = ICMP4_ECHO_REQUEST
-
-	// calculate ICMP checksum
-	cklen := len(b)
+// icmpMessage represents an ICMP message.
+type icmpMessage struct {
+	Type     int             // type
+	Code     int             // code
+	Checksum int             // checksum
+	Body     icmpMessageBody // body
+}
+
+// icmpMessageBody represents an ICMP message body.
+type icmpMessageBody interface {
+	Len() int
+	Marshal() ([]byte, error)
+}
+
+// Marshal returns the binary enconding of the ICMP echo request or
+// reply message m.
+func (m *icmpMessage) Marshal() ([]byte, error) {
+	b := []byte{byte(m.Type), byte(m.Code), 0, 0}
+	if m.Body != nil && m.Body.Len() != 0 {
+		mb, err := m.Body.Marshal()
+		if err != nil {
+			return nil, err
+		}
+		b = append(b, mb...)
+	}
+	switch m.Type {
+	case icmpv6EchoRequest, icmpv6EchoReply:
+		return b, nil
+	}
+	csumcv := len(b) - 1 // checksum coverage
 	s := uint32(0)
-	for i := 0; i < cklen-1; i += 2 {
+	for i := 0; i < csumcv; i += 2 {
 		s += uint32(b[i+1])<<8 | uint32(b[i])
 	}
-	if cklen&1 == 1 {
-		s += uint32(b[cklen-1])
+	if csumcv&1 == 0 {
+		s += uint32(b[csumcv])
+	}
+	s = s>>16 + s&0xffff
+	s = s + s>>16
+	// Place checksum back in header; using ^= avoids the
+	// assumption the checksum bytes are zero.
+	b[2] ^= byte(^s & 0xff)
+	b[3] ^= byte(^s >> 8)
+	return b, nil
+}
+
+// parseICMPMessage parses b as an ICMP message.
+func parseICMPMessage(b []byte) (*icmpMessage, error) {
+	msglen := len(b)
+	if msglen < 4 {
+		return nil, errors.New("message too short")
+	}
+	m := &icmpMessage{Type: int(b[0]), Code: int(b[1]), Checksum: int(b[2])<<8 | int(b[3])}
+	if msglen > 4 {
+		var err error
+		switch m.Type {
+		case icmpv4EchoRequest, icmpv4EchoReply, icmpv6EchoRequest, icmpv6EchoReply:
+			m.Body, err = parseICMPEcho(b[4:])
+			if err != nil {
+				return nil, err
+			}
+		}
+	}
+	return m, nil
+}
+
+// imcpEcho represenets an ICMP echo request or reply message body.
+type icmpEcho struct {
+	ID   int    // identifier
+	Seq  int    // sequence number
+	Data []byte // data
+}
+
+func (p *icmpEcho) Len() int {
+	if p == nil {
+		return 0
+	}
+	return 4 + len(p.Data)
+}
+
+// Marshal returns the binary enconding of the ICMP echo request or
+// reply message body p.
+func (p *icmpEcho) Marshal() ([]byte, error) {
+	b := make([]byte, 4+len(p.Data))
+	b[0], b[1] = byte(p.ID>>8), byte(p.ID&0xff)
+	b[2], b[3] = byte(p.Seq>>8), byte(p.Seq&0xff)
+	copy(b[4:], p.Data)
+	return b, nil
+}
+
+// parseICMPEcho parses b as an ICMP echo request or reply message
+// body.
+func parseICMPEcho(b []byte) (*icmpEcho, error) {
+	bodylen := len(b)
+	p := &icmpEcho{ID: int(b[0])<<8 | int(b[1]), Seq: int(b[2])<<8 | int(b[3])}
+	if bodylen > 4 {
+		p.Data = make([]byte, bodylen-4)
+		copy(p.Data, b[4:])
 	}
-	s = (s >> 16) + (s & 0xffff)
-	s = s + (s >> 16)
-	// place checksum back in header; using ^= avoids the
-	// assumption the checksum bytes are zero
-	b[2] ^= uint8(^s & 0xff)
-	b[3] ^= uint8(^s >> 8)
-
-	return b
-}
-
-func newICMPv6EchoRequest(id, seqnum, msglen int, filler []byte) []byte {
-	b := newICMPInfoMessage(id, seqnum, msglen, filler)
-	b[0] = ICMP6_ECHO_REQUEST
-	return b
-}
-
-func newICMPInfoMessage(id, seqnum, msglen int, filler []byte) []byte {
-	b := make([]byte, msglen)
-	copy(b[8:], bytes.Repeat(filler, (msglen-8)/len(filler)+1))
-	b[0] = 0                    // type
-	b[1] = 0                    // code
-	b[2] = 0                    // checksum
-	b[3] = 0                    // checksum
-	b[4] = uint8(id >> 8)       // identifier
-	b[5] = uint8(id & 0xff)     // identifier
-	b[6] = uint8(seqnum >> 8)   // sequence number
-	b[7] = uint8(seqnum & 0xff) // sequence number
-	return b
-}
-
-func parseICMPEchoReply(b []byte) (id, seqnum int) {
-	id = int(b[4])<<8 | int(b[5])
-	seqnum = int(b[6])<<8 | int(b[7])
-	return
+	return p, nil
 }
 
 var ipConnLocalNameTests = []struct {
@@ -258,14 +344,27 @@
 	for _, tt := range ipConnLocalNameTests {
 		c, err := ListenIP(tt.net, tt.laddr)
 		if err != nil {
-			t.Errorf("ListenIP failed: %v", err)
-			return
+			t.Fatalf("ListenIP failed: %v", err)
 		}
 		defer c.Close()
-		la := c.LocalAddr()
-		if la == nil {
-			t.Error("IPConn.LocalAddr failed")
-			return
+		if la := c.LocalAddr(); la == nil {
+			t.Fatal("IPConn.LocalAddr failed")
 		}
 	}
 }
+
+func TestIPConnRemoteName(t *testing.T) {
+	if os.Getuid() != 0 {
+		t.Skip("skipping test; must be root")
+	}
+
+	raddr := &IPAddr{IP: IPv4(127, 0, 0, 10).To4()}
+	c, err := DialIP("ip:tcp", &IPAddr{IP: IPv4(127, 0, 0, 1)}, raddr)
+	if err != nil {
+		t.Fatalf("DialIP failed: %v", err)
+	}
+	defer c.Close()
+	if !reflect.DeepEqual(raddr, c.RemoteAddr()) {
+		t.Fatalf("got %#v, expected %#v", c.RemoteAddr(), raddr)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock.go gcc-4.8.1/libgo/go/net/ipsock.go
--- gcc-4.8.1.orig/libgo/go/net/ipsock.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/ipsock.go	2013-07-16 01:55:04.520470000 -0500
@@ -68,40 +68,94 @@
 func (e InvalidAddrError) Timeout() bool   { return false }
 func (e InvalidAddrError) Temporary() bool { return false }
 
-// SplitHostPort splits a network address of the form
-// "host:port" or "[host]:port" into host and port.
-// The latter form must be used when host contains a colon.
+// SplitHostPort splits a network address of the form "host:port",
+// "[host]:port" or "[ipv6-host%zone]:port" into host or
+// ipv6-host%zone and port.  A literal address or host name for IPv6
+// must be enclosed in square brackets, as in "[::1]:80",
+// "[ipv6-host]:http" or "[ipv6-host%zone]:80".
 func SplitHostPort(hostport string) (host, port string, err error) {
-	host, port, _, err = splitHostPort(hostport)
-	return
-}
+	j, k := 0, 0
 
-func splitHostPort(hostport string) (host, port, zone string, err error) {
 	// The port starts after the last colon.
 	i := last(hostport, ':')
 	if i < 0 {
-		err = &AddrError{"missing port in address", hostport}
-		return
+		goto missingPort
 	}
-	host, port = hostport[:i], hostport[i+1:]
-	// Can put brackets around host ...
-	if len(host) > 0 && host[0] == '[' && host[len(host)-1] == ']' {
-		host = host[1 : len(host)-1]
+
+	if hostport[0] == '[' {
+		// Expect the first ']' just before the last ':'.
+		end := byteIndex(hostport, ']')
+		if end < 0 {
+			err = &AddrError{"missing ']' in address", hostport}
+			return
+		}
+		switch end + 1 {
+		case len(hostport):
+			// There can't be a ':' behind the ']' now.
+			goto missingPort
+		case i:
+			// The expected result.
+		default:
+			// Either ']' isn't followed by a colon, or it is
+			// followed by a colon that is not the last one.
+			if hostport[end+1] == ':' {
+				goto tooManyColons
+			}
+			goto missingPort
+		}
+		host = hostport[1:end]
+		j, k = 1, end+1 // there can't be a '[' resp. ']' before these positions
 	} else {
-		// ... but if there are no brackets, no colons.
+		host = hostport[:i]
 		if byteIndex(host, ':') >= 0 {
-			err = &AddrError{"too many colons in address", hostport}
-			return
+			goto tooManyColons
 		}
+		if byteIndex(host, '%') >= 0 {
+			goto missingBrackets
+		}
+	}
+	if byteIndex(hostport[j:], '[') >= 0 {
+		err = &AddrError{"unexpected '[' in address", hostport}
+		return
+	}
+	if byteIndex(hostport[k:], ']') >= 0 {
+		err = &AddrError{"unexpected ']' in address", hostport}
+		return
+	}
+
+	port = hostport[i+1:]
+	return
+
+missingPort:
+	err = &AddrError{"missing port in address", hostport}
+	return
+
+tooManyColons:
+	err = &AddrError{"too many colons in address", hostport}
+	return
+
+missingBrackets:
+	err = &AddrError{"missing brackets in address", hostport}
+	return
+}
+
+func splitHostZone(s string) (host, zone string) {
+	// The IPv6 scoped addressing zone identifer starts after the
+	// last percent sign.
+	if i := last(s, '%'); i > 0 {
+		host, zone = s[:i], s[i+1:]
+	} else {
+		host = s
 	}
 	return
 }
 
-// JoinHostPort combines host and port into a network address
-// of the form "host:port" or, if host contains a colon, "[host]:port".
+// JoinHostPort combines host and port into a network address of the
+// form "host:port" or, if host contains a colon or a percent sign,
+// "[host]:port".
 func JoinHostPort(host, port string) string {
-	// If host has colons, have to bracket it.
-	if byteIndex(host, ':') >= 0 {
+	// If host has colons or a percent sign, have to bracket it.
+	if byteIndex(host, ':') >= 0 || byteIndex(host, '%') >= 0 {
 		return "[" + host + "]:" + port
 	}
 	return host + ":" + port
@@ -116,7 +170,7 @@
 	switch net {
 	case "tcp", "tcp4", "tcp6", "udp", "udp4", "udp6":
 		if addr != "" {
-			if host, port, zone, err = splitHostPort(addr); err != nil {
+			if host, port, err = SplitHostPort(addr); err != nil {
 				return nil, err
 			}
 			if portnum, err = parsePort(net, port); err != nil {
@@ -145,21 +199,25 @@
 		return inetaddr(net, nil, portnum, zone), nil
 	}
 	// Try as an IP address.
-	if ip := ParseIP(host); ip != nil {
+	if ip := parseIPv4(host); ip != nil {
+		return inetaddr(net, ip, portnum, zone), nil
+	}
+	if ip, zone := parseIPv6(host, true); ip != nil {
 		return inetaddr(net, ip, portnum, zone), nil
 	}
+	// Try as a domain name.
+	host, zone = splitHostZone(host)
+	addrs, err := lookupHostDeadline(host, deadline)
+	if err != nil {
+		return nil, err
+	}
 	var filter func(IP) IP
 	if net != "" && net[len(net)-1] == '4' {
 		filter = ipv4only
 	}
-	if net != "" && net[len(net)-1] == '6' {
+	if net != "" && net[len(net)-1] == '6' || zone != "" {
 		filter = ipv6only
 	}
-	// Try as a DNS name.
-	addrs, err := lookupHostDeadline(host, deadline)
-	if err != nil {
-		return nil, err
-	}
 	ip := firstFavoriteAddr(filter, addrs)
 	if ip == nil {
 		// should not happen
diff -Naur gcc-4.8.1.orig/libgo/go/net/ipsock_plan9.go gcc-4.8.1/libgo/go/net/ipsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/ipsock_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/ipsock_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 import (
 	"errors"
 	"os"
+	"syscall"
 )
 
 // /sys/include/ape/sys/socket.h:/SOMAXCONN
@@ -104,72 +105,89 @@
 	return f, dest, proto, string(buf[:n]), nil
 }
 
-func dialPlan9(net string, laddr, raddr Addr) (*netFD, error) {
+func netErr(e error) {
+	oe, ok := e.(*OpError)
+	if !ok {
+		return
+	}
+	if pe, ok := oe.Err.(*os.PathError); ok {
+		if _, ok = pe.Err.(syscall.ErrorString); ok {
+			oe.Err = pe.Err
+		}
+	}
+}
+
+func dialPlan9(net string, laddr, raddr Addr) (fd *netFD, err error) {
+	defer func() { netErr(err) }()
 	f, dest, proto, name, err := startPlan9(net, raddr)
 	if err != nil {
-		return nil, err
+		return nil, &OpError{"dial", net, raddr, err}
 	}
 	_, err = f.WriteString("connect " + dest)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"dial", f.Name(), raddr, err}
 	}
-	laddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/local")
+	data, err := os.OpenFile("/net/"+proto+"/"+name+"/data", os.O_RDWR, 0)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"dial", net, raddr, err}
 	}
-	raddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/remote")
+	laddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/local")
 	if err != nil {
+		data.Close()
 		f.Close()
-		return nil, err
+		return nil, &OpError{"dial", proto, raddr, err}
 	}
-	return newFD(proto, name, f, laddr, raddr), nil
+	return newFD(proto, name, f, data, laddr, raddr), nil
 }
 
-func listenPlan9(net string, laddr Addr) (*netFD, error) {
+func listenPlan9(net string, laddr Addr) (fd *netFD, err error) {
+	defer func() { netErr(err) }()
 	f, dest, proto, name, err := startPlan9(net, laddr)
 	if err != nil {
-		return nil, err
+		return nil, &OpError{"listen", net, laddr, err}
 	}
 	_, err = f.WriteString("announce " + dest)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"announce", proto, laddr, err}
 	}
 	laddr, err = readPlan9Addr(proto, "/net/"+proto+"/"+name+"/local")
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{Op: "listen", Net: net, Err: err}
 	}
-	return &netFD{proto: proto, name: name, dir: "/net/" + proto + "/" + name, ctl: f, laddr: laddr}, nil
+	return newFD(proto, name, f, nil, laddr, nil), nil
 }
 
 func (l *netFD) netFD() *netFD {
-	return newFD(l.proto, l.name, l.ctl, l.laddr, nil)
+	return newFD(l.proto, l.name, l.ctl, l.data, l.laddr, l.raddr)
 }
 
-func (l *netFD) acceptPlan9() (*netFD, error) {
+func (l *netFD) acceptPlan9() (fd *netFD, err error) {
+	defer func() { netErr(err) }()
 	f, err := os.Open(l.dir + "/listen")
 	if err != nil {
-		return nil, err
+		return nil, &OpError{"accept", l.dir + "/listen", l.laddr, err}
 	}
 	var buf [16]byte
 	n, err := f.Read(buf[:])
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"accept", l.dir + "/listen", l.laddr, err}
 	}
 	name := string(buf[:n])
-	laddr, err := readPlan9Addr(l.proto, l.dir+"/local")
+	data, err := os.OpenFile("/net/"+l.proto+"/"+name+"/data", os.O_RDWR, 0)
 	if err != nil {
 		f.Close()
-		return nil, err
+		return nil, &OpError{"accept", l.proto, l.laddr, err}
 	}
-	raddr, err := readPlan9Addr(l.proto, l.dir+"/remote")
+	raddr, err := readPlan9Addr(l.proto, "/net/"+l.proto+"/"+name+"/remote")
 	if err != nil {
+		data.Close()
 		f.Close()
-		return nil, err
+		return nil, &OpError{"accept", l.proto, l.laddr, err}
 	}
-	return newFD(l.proto, name, f, laddr, raddr), nil
+	return newFD(l.proto, name, f, data, l.laddr, raddr), nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/ip_test.go gcc-4.8.1/libgo/go/net/ip_test.go
--- gcc-4.8.1.orig/libgo/go/net/ip_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/ip_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,23 +5,12 @@
 package net
 
 import (
-	"bytes"
 	"reflect"
 	"runtime"
 	"testing"
 )
 
-func isEqual(a, b []byte) bool {
-	if a == nil && b == nil {
-		return true
-	}
-	if a == nil || b == nil {
-		return false
-	}
-	return bytes.Equal(a, b)
-}
-
-var parseiptests = []struct {
+var parseIPTests = []struct {
 	in  string
 	out IP
 }{
@@ -33,22 +22,23 @@
 	{"::ffff:127.0.0.1", IPv4(127, 0, 0, 1)},
 	{"2001:4860:0:2001::68", IP{0x20, 0x01, 0x48, 0x60, 0, 0, 0x20, 0x01, 0, 0, 0, 0, 0, 0, 0x00, 0x68}},
 	{"::ffff:4a7d:1363", IPv4(74, 125, 19, 99)},
+	{"fe80::1%lo0", nil},
+	{"fe80::1%911", nil},
 	{"", nil},
 }
 
 func TestParseIP(t *testing.T) {
-	for _, tt := range parseiptests {
-		if out := ParseIP(tt.in); !isEqual(out, tt.out) {
+	for _, tt := range parseIPTests {
+		if out := ParseIP(tt.in); !reflect.DeepEqual(out, tt.out) {
 			t.Errorf("ParseIP(%q) = %v, want %v", tt.in, out, tt.out)
 		}
 	}
 }
 
-var ipstringtests = []struct {
+var ipStringTests = []struct {
 	in  IP
-	out string
+	out string // see RFC 5952
 }{
-	// cf. RFC 5952 (A Recommendation for IPv6 Address Text Representation)
 	{IP{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0x1, 0x23, 0, 0x12, 0, 0x1}, "2001:db8::123:12:1"},
 	{IP{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1}, "2001:db8::1"},
 	{IP{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0x1, 0, 0, 0, 0x1, 0, 0, 0, 0x1}, "2001:db8:0:1:0:1:0:1"},
@@ -61,14 +51,14 @@
 }
 
 func TestIPString(t *testing.T) {
-	for _, tt := range ipstringtests {
+	for _, tt := range ipStringTests {
 		if out := tt.in.String(); out != tt.out {
 			t.Errorf("IP.String(%v) = %q, want %q", tt.in, out, tt.out)
 		}
 	}
 }
 
-var ipmasktests = []struct {
+var ipMaskTests = []struct {
 	in   IP
 	mask IPMask
 	out  IP
@@ -82,14 +72,14 @@
 }
 
 func TestIPMask(t *testing.T) {
-	for _, tt := range ipmasktests {
+	for _, tt := range ipMaskTests {
 		if out := tt.in.Mask(tt.mask); out == nil || !tt.out.Equal(out) {
 			t.Errorf("IP(%v).Mask(%v) = %v, want %v", tt.in, tt.mask, out, tt.out)
 		}
 	}
 }
 
-var ipmaskstringtests = []struct {
+var ipMaskStringTests = []struct {
 	in  IPMask
 	out string
 }{
@@ -101,14 +91,14 @@
 }
 
 func TestIPMaskString(t *testing.T) {
-	for _, tt := range ipmaskstringtests {
+	for _, tt := range ipMaskStringTests {
 		if out := tt.in.String(); out != tt.out {
 			t.Errorf("IPMask.String(%v) = %q, want %q", tt.in, out, tt.out)
 		}
 	}
 }
 
-var parsecidrtests = []struct {
+var parseCIDRTests = []struct {
 	in  string
 	ip  IP
 	net *IPNet
@@ -138,18 +128,18 @@
 }
 
 func TestParseCIDR(t *testing.T) {
-	for _, tt := range parsecidrtests {
+	for _, tt := range parseCIDRTests {
 		ip, net, err := ParseCIDR(tt.in)
 		if !reflect.DeepEqual(err, tt.err) {
 			t.Errorf("ParseCIDR(%q) = %v, %v; want %v, %v", tt.in, ip, net, tt.ip, tt.net)
 		}
-		if err == nil && (!tt.ip.Equal(ip) || !tt.net.IP.Equal(net.IP) || !isEqual(net.Mask, tt.net.Mask)) {
-			t.Errorf("ParseCIDR(%q) = %v, {%v, %v}; want %v {%v, %v}", tt.in, ip, net.IP, net.Mask, tt.ip, tt.net.IP, tt.net.Mask)
+		if err == nil && (!tt.ip.Equal(ip) || !tt.net.IP.Equal(net.IP) || !reflect.DeepEqual(net.Mask, tt.net.Mask)) {
+			t.Errorf("ParseCIDR(%q) = %v, {%v, %v}; want %v, {%v, %v}", tt.in, ip, net.IP, net.Mask, tt.ip, tt.net.IP, tt.net.Mask)
 		}
 	}
 }
 
-var ipnetcontainstests = []struct {
+var ipNetContainsTests = []struct {
 	ip  IP
 	net *IPNet
 	ok  bool
@@ -165,14 +155,14 @@
 }
 
 func TestIPNetContains(t *testing.T) {
-	for _, tt := range ipnetcontainstests {
+	for _, tt := range ipNetContainsTests {
 		if ok := tt.net.Contains(tt.ip); ok != tt.ok {
 			t.Errorf("IPNet(%v).Contains(%v) = %v, want %v", tt.net, tt.ip, ok, tt.ok)
 		}
 	}
 }
 
-var ipnetstringtests = []struct {
+var ipNetStringTests = []struct {
 	in  *IPNet
 	out string
 }{
@@ -183,14 +173,14 @@
 }
 
 func TestIPNetString(t *testing.T) {
-	for _, tt := range ipnetstringtests {
+	for _, tt := range ipNetStringTests {
 		if out := tt.in.String(); out != tt.out {
 			t.Errorf("IPNet.String(%v) = %q, want %q", tt.in, out, tt.out)
 		}
 	}
 }
 
-var cidrmasktests = []struct {
+var cidrMaskTests = []struct {
 	ones int
 	bits int
 	out  IPMask
@@ -210,8 +200,8 @@
 }
 
 func TestCIDRMask(t *testing.T) {
-	for _, tt := range cidrmasktests {
-		if out := CIDRMask(tt.ones, tt.bits); !isEqual(out, tt.out) {
+	for _, tt := range cidrMaskTests {
+		if out := CIDRMask(tt.ones, tt.bits); !reflect.DeepEqual(out, tt.out) {
 			t.Errorf("CIDRMask(%v, %v) = %v, want %v", tt.ones, tt.bits, out, tt.out)
 		}
 	}
@@ -229,7 +219,7 @@
 	v4maskzero     = IPMask{0, 0, 0, 0}
 )
 
-var networknumberandmasktests = []struct {
+var networkNumberAndMaskTests = []struct {
 	in  IPNet
 	out IPNet
 }{
@@ -251,43 +241,90 @@
 }
 
 func TestNetworkNumberAndMask(t *testing.T) {
-	for _, tt := range networknumberandmasktests {
+	for _, tt := range networkNumberAndMaskTests {
 		ip, m := networkNumberAndMask(&tt.in)
 		out := &IPNet{IP: ip, Mask: m}
 		if !reflect.DeepEqual(&tt.out, out) {
-			t.Errorf("networkNumberAndMask(%v) = %v; want %v", tt.in, out, &tt.out)
+			t.Errorf("networkNumberAndMask(%v) = %v, want %v", tt.in, out, &tt.out)
 		}
 	}
 }
 
-var splitjointests = []struct {
-	Host string
-	Port string
-	Join string
+var splitJoinTests = []struct {
+	host string
+	port string
+	join string
 }{
 	{"www.google.com", "80", "www.google.com:80"},
 	{"127.0.0.1", "1234", "127.0.0.1:1234"},
 	{"::1", "80", "[::1]:80"},
+	{"fe80::1%lo0", "80", "[fe80::1%lo0]:80"},
+	{"localhost%lo0", "80", "[localhost%lo0]:80"},
+	{"", "0", ":0"},
+
 	{"google.com", "https%foo", "google.com:https%foo"}, // Go 1.0 behavior
+	{"127.0.0.1", "", "127.0.0.1:"},                     // Go 1.0 behaviour
+	{"www.google.com", "", "www.google.com:"},           // Go 1.0 behaviour
+}
+
+var splitFailureTests = []struct {
+	hostPort string
+	err      string
+}{
+	{"www.google.com", "missing port in address"},
+	{"127.0.0.1", "missing port in address"},
+	{"[::1]", "missing port in address"},
+	{"[fe80::1%lo0]", "missing port in address"},
+	{"[localhost%lo0]", "missing port in address"},
+	{"localhost%lo0", "missing port in address"},
+
+	{"::1", "too many colons in address"},
+	{"fe80::1%lo0", "too many colons in address"},
+	{"fe80::1%lo0:80", "too many colons in address"},
+
+	{"localhost%lo0:80", "missing brackets in address"},
+
+	// Test cases that didn't fail in Go 1.0
+
+	{"[foo:bar]", "missing port in address"},
+	{"[foo:bar]baz", "missing port in address"},
+	{"[foo]bar:baz", "missing port in address"},
+
+	{"[foo]:[bar]:baz", "too many colons in address"},
+
+	{"[foo]:[bar]baz", "unexpected '[' in address"},
+	{"foo[bar]:baz", "unexpected '[' in address"},
+
+	{"foo]bar:baz", "unexpected ']' in address"},
 }
 
 func TestSplitHostPort(t *testing.T) {
-	for _, tt := range splitjointests {
-		if host, port, err := SplitHostPort(tt.Join); host != tt.Host || port != tt.Port || err != nil {
-			t.Errorf("SplitHostPort(%q) = %q, %q, %v; want %q, %q, nil", tt.Join, host, port, err, tt.Host, tt.Port)
+	for _, tt := range splitJoinTests {
+		if host, port, err := SplitHostPort(tt.join); host != tt.host || port != tt.port || err != nil {
+			t.Errorf("SplitHostPort(%q) = %q, %q, %v; want %q, %q, nil", tt.join, host, port, err, tt.host, tt.port)
+		}
+	}
+	for _, tt := range splitFailureTests {
+		if _, _, err := SplitHostPort(tt.hostPort); err == nil {
+			t.Errorf("SplitHostPort(%q) should have failed", tt.hostPort)
+		} else {
+			e := err.(*AddrError)
+			if e.Err != tt.err {
+				t.Errorf("SplitHostPort(%q) = _, _, %q; want %q", tt.hostPort, e.Err, tt.err)
+			}
 		}
 	}
 }
 
 func TestJoinHostPort(t *testing.T) {
-	for _, tt := range splitjointests {
-		if join := JoinHostPort(tt.Host, tt.Port); join != tt.Join {
-			t.Errorf("JoinHostPort(%q, %q) = %q; want %q", tt.Host, tt.Port, join, tt.Join)
+	for _, tt := range splitJoinTests {
+		if join := JoinHostPort(tt.host, tt.port); join != tt.join {
+			t.Errorf("JoinHostPort(%q, %q) = %q; want %q", tt.host, tt.port, join, tt.join)
 		}
 	}
 }
 
-var ipaftests = []struct {
+var ipAddrFamilyTests = []struct {
 	in  IP
 	af4 bool
 	af6 bool
@@ -310,7 +347,7 @@
 }
 
 func TestIPAddrFamily(t *testing.T) {
-	for _, tt := range ipaftests {
+	for _, tt := range ipAddrFamilyTests {
 		if af := tt.in.To4() != nil; af != tt.af4 {
 			t.Errorf("verifying IPv4 address family for %q = %v, want %v", tt.in, af, tt.af4)
 		}
@@ -320,7 +357,7 @@
 	}
 }
 
-var ipscopetests = []struct {
+var ipAddrScopeTests = []struct {
 	scope func(IP) bool
 	in    IP
 	ok    bool
@@ -361,7 +398,7 @@
 }
 
 func TestIPAddrScope(t *testing.T) {
-	for _, tt := range ipscopetests {
+	for _, tt := range ipAddrScopeTests {
 		if ok := tt.scope(tt.in); ok != tt.ok {
 			t.Errorf("%s(%q) = %v, want %v", name(tt.scope), tt.in, ok, tt.ok)
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_plan9.go gcc-4.8.1/libgo/go/net/lookup_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/lookup_plan9.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/lookup_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,7 +7,6 @@
 import (
 	"errors"
 	"os"
-	"syscall"
 )
 
 func query(filename, query string, bufSize int) (res []string, err error) {
@@ -70,9 +69,26 @@
 	return query("/net/dns", addr+" "+typ, 1024)
 }
 
+// lookupProtocol looks up IP protocol name and returns
+// the corresponding protocol number.
 func lookupProtocol(name string) (proto int, err error) {
-	// TODO: Implement this
-	return 0, syscall.EPLAN9
+	lines, err := query("/net/cs", "!protocol="+name, 128)
+	if err != nil {
+		return 0, err
+	}
+	unknownProtoError := errors.New("unknown IP protocol specified: " + name)
+	if len(lines) == 0 {
+		return 0, unknownProtoError
+	}
+	f := getFields(lines[0])
+	if len(f) < 2 {
+		return 0, unknownProtoError
+	}
+	s := f[1]
+	if n, _, ok := dtoi(s, byteIndex(s, '=')+1); ok {
+		return n, nil
+	}
+	return 0, unknownProtoError
 }
 
 func lookupHost(host string) (addrs []string, err error) {
diff -Naur gcc-4.8.1.orig/libgo/go/net/lookup_windows.go gcc-4.8.1/libgo/go/net/lookup_windows.go
--- gcc-4.8.1.orig/libgo/go/net/lookup_windows.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/lookup_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,21 +6,17 @@
 
 import (
 	"os"
-	"sync"
+	"runtime"
 	"syscall"
 	"unsafe"
 )
 
 var (
-	protoentLock sync.Mutex
-	hostentLock  sync.Mutex
-	serventLock  sync.Mutex
+	lookupPort = oldLookupPort
+	lookupIP   = oldLookupIP
 )
 
-// lookupProtocol looks up IP protocol name and returns correspondent protocol number.
-func lookupProtocol(name string) (proto int, err error) {
-	protoentLock.Lock()
-	defer protoentLock.Unlock()
+func getprotobyname(name string) (proto int, err error) {
 	p, err := syscall.GetProtoByName(name)
 	if err != nil {
 		return 0, os.NewSyscallError("GetProtoByName", err)
@@ -28,6 +24,25 @@
 	return int(p.Proto), nil
 }
 
+// lookupProtocol looks up IP protocol name and returns correspondent protocol number.
+func lookupProtocol(name string) (proto int, err error) {
+	// GetProtoByName return value is stored in thread local storage.
+	// Start new os thread before the call to prevent races.
+	type result struct {
+		proto int
+		err   error
+	}
+	ch := make(chan result)
+	go func() {
+		runtime.LockOSThread()
+		defer runtime.UnlockOSThread()
+		proto, err := getprotobyname(name)
+		ch <- result{proto: proto, err: err}
+	}()
+	r := <-ch
+	return r.proto, r.err
+}
+
 func lookupHost(name string) (addrs []string, err error) {
 	ips, err := LookupIP(name)
 	if err != nil {
@@ -40,11 +55,7 @@
 	return
 }
 
-var lookupIP = oldLookupIP
-
-func oldLookupIP(name string) (addrs []IP, err error) {
-	hostentLock.Lock()
-	defer hostentLock.Unlock()
+func gethostbyname(name string) (addrs []IP, err error) {
 	h, err := syscall.GetHostByName(name)
 	if err != nil {
 		return nil, os.NewSyscallError("GetHostByName", err)
@@ -63,6 +74,24 @@
 	return addrs, nil
 }
 
+func oldLookupIP(name string) (addrs []IP, err error) {
+	// GetHostByName return value is stored in thread local storage.
+	// Start new os thread before the call to prevent races.
+	type result struct {
+		addrs []IP
+		err   error
+	}
+	ch := make(chan result)
+	go func() {
+		runtime.LockOSThread()
+		defer runtime.UnlockOSThread()
+		addrs, err := gethostbyname(name)
+		ch <- result{addrs: addrs, err: err}
+	}()
+	r := <-ch
+	return r.addrs, r.err
+}
+
 func newLookupIP(name string) (addrs []IP, err error) {
 	hints := syscall.AddrinfoW{
 		Family:   syscall.AF_UNSPEC,
@@ -92,15 +121,13 @@
 	return addrs, nil
 }
 
-func lookupPort(network, service string) (port int, err error) {
+func getservbyname(network, service string) (port int, err error) {
 	switch network {
 	case "tcp4", "tcp6":
 		network = "tcp"
 	case "udp4", "udp6":
 		network = "udp"
 	}
-	serventLock.Lock()
-	defer serventLock.Unlock()
 	s, err := syscall.GetServByName(service, network)
 	if err != nil {
 		return 0, os.NewSyscallError("GetServByName", err)
@@ -108,6 +135,58 @@
 	return int(syscall.Ntohs(s.Port)), nil
 }
 
+func oldLookupPort(network, service string) (port int, err error) {
+	// GetServByName return value is stored in thread local storage.
+	// Start new os thread before the call to prevent races.
+	type result struct {
+		port int
+		err  error
+	}
+	ch := make(chan result)
+	go func() {
+		runtime.LockOSThread()
+		defer runtime.UnlockOSThread()
+		port, err := getservbyname(network, service)
+		ch <- result{port: port, err: err}
+	}()
+	r := <-ch
+	return r.port, r.err
+}
+
+func newLookupPort(network, service string) (port int, err error) {
+	var stype int32
+	switch network {
+	case "tcp4", "tcp6":
+		stype = syscall.SOCK_STREAM
+	case "udp4", "udp6":
+		stype = syscall.SOCK_DGRAM
+	}
+	hints := syscall.AddrinfoW{
+		Family:   syscall.AF_UNSPEC,
+		Socktype: stype,
+		Protocol: syscall.IPPROTO_IP,
+	}
+	var result *syscall.AddrinfoW
+	e := syscall.GetAddrInfoW(nil, syscall.StringToUTF16Ptr(service), &hints, &result)
+	if e != nil {
+		return 0, os.NewSyscallError("GetAddrInfoW", e)
+	}
+	defer syscall.FreeAddrInfoW(result)
+	if result == nil {
+		return 0, os.NewSyscallError("LookupPort", syscall.EINVAL)
+	}
+	addr := unsafe.Pointer(result.Addr)
+	switch result.Family {
+	case syscall.AF_INET:
+		a := (*syscall.RawSockaddrInet4)(addr)
+		return int(syscall.Ntohs(a.Port)), nil
+	case syscall.AF_INET6:
+		a := (*syscall.RawSockaddrInet6)(addr)
+		return int(syscall.Ntohs(a.Port)), nil
+	}
+	return 0, os.NewSyscallError("LookupPort", syscall.EINVAL)
+}
+
 func lookupCNAME(name string) (cname string, err error) {
 	var r *syscall.DNSRecord
 	e := syscall.DnsQuery(name, syscall.DNS_TYPE_CNAME, 0, nil, &r, nil)
diff -Naur gcc-4.8.1.orig/libgo/go/net/multicast_posix_test.go gcc-4.8.1/libgo/go/net/multicast_posix_test.go
--- gcc-4.8.1.orig/libgo/go/net/multicast_posix_test.go	2013-02-07 11:04:24.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/multicast_posix_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,180 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build !plan9
-
-package net
-
-import (
-	"errors"
-	"os"
-	"runtime"
-	"testing"
-)
-
-var multicastListenerTests = []struct {
-	net   string
-	gaddr *UDPAddr
-	flags Flags
-	ipv6  bool // test with underlying AF_INET6 socket
-}{
-	// cf. RFC 4727: Experimental Values in IPv4, IPv6, ICMPv4, ICMPv6, UDP, and TCP Headers
-
-	{"udp", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, FlagUp | FlagLoopback, false},
-	{"udp", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, 0, false},
-	{"udp", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, 0, true},
-
-	{"udp4", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, FlagUp | FlagLoopback, false},
-	{"udp4", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}, 0, false},
-
-	{"udp6", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}, 0, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, FlagUp | FlagLoopback, true},
-	{"udp6", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}, 0, true},
-}
-
-// TestMulticastListener tests both single and double listen to a test
-// listener with same address family, same group address and same port.
-func TestMulticastListener(t *testing.T) {
-	switch runtime.GOOS {
-	case "netbsd", "openbsd", "plan9", "solaris", "windows":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-	case "linux":
-		if runtime.GOARCH == "arm" || runtime.GOARCH == "alpha" {
-			t.Skipf("skipping test on %q/%q", runtime.GOOS, runtime.GOARCH)
-		}
-	}
-
-	for _, tt := range multicastListenerTests {
-		if tt.ipv6 && (!*testIPv6 || !supportsIPv6 || os.Getuid() != 0) {
-			continue
-		}
-		ifi, err := availMulticastInterface(t, tt.flags)
-		if err != nil {
-			continue
-		}
-		c1, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("First ListenMulticastUDP failed: %v", err)
-		}
-		checkMulticastListener(t, err, c1, tt.gaddr)
-		c2, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("Second ListenMulticastUDP failed: %v", err)
-		}
-		checkMulticastListener(t, err, c2, tt.gaddr)
-		c2.Close()
-		c1.Close()
-	}
-}
-
-func TestSimpleMulticastListener(t *testing.T) {
-	switch runtime.GOOS {
-	case "plan9":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-	case "windows":
-		if testing.Short() || !*testExternal {
-			t.Skip("skipping test on windows to avoid firewall")
-		}
-	}
-
-	for _, tt := range multicastListenerTests {
-		if tt.ipv6 {
-			continue
-		}
-		tt.flags = FlagUp | FlagMulticast // for windows testing
-		ifi, err := availMulticastInterface(t, tt.flags)
-		if err != nil {
-			continue
-		}
-		c1, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("First ListenMulticastUDP failed: %v", err)
-		}
-		checkSimpleMulticastListener(t, err, c1, tt.gaddr)
-		c2, err := ListenMulticastUDP(tt.net, ifi, tt.gaddr)
-		if err != nil {
-			t.Fatalf("Second ListenMulticastUDP failed: %v", err)
-		}
-		checkSimpleMulticastListener(t, err, c2, tt.gaddr)
-		c2.Close()
-		c1.Close()
-	}
-}
-
-func checkMulticastListener(t *testing.T, err error, c *UDPConn, gaddr *UDPAddr) {
-	if !multicastRIBContains(t, gaddr.IP) {
-		t.Errorf("%q not found in RIB", gaddr.String())
-		return
-	}
-	la := c.LocalAddr()
-	if la == nil {
-		t.Error("LocalAddr failed")
-		return
-	}
-	if a, ok := la.(*UDPAddr); !ok || a.Port == 0 {
-		t.Errorf("got %v; expected a proper address with non-zero port number", la)
-		return
-	}
-}
-
-func checkSimpleMulticastListener(t *testing.T, err error, c *UDPConn, gaddr *UDPAddr) {
-	la := c.LocalAddr()
-	if la == nil {
-		t.Error("LocalAddr failed")
-		return
-	}
-	if a, ok := la.(*UDPAddr); !ok || a.Port == 0 {
-		t.Errorf("got %v; expected a proper address with non-zero port number", la)
-		return
-	}
-}
-
-func availMulticastInterface(t *testing.T, flags Flags) (*Interface, error) {
-	var ifi *Interface
-	if flags != Flags(0) {
-		ift, err := Interfaces()
-		if err != nil {
-			t.Fatalf("Interfaces failed: %v", err)
-		}
-		for _, x := range ift {
-			if x.Flags&flags == flags {
-				ifi = &x
-				break
-			}
-		}
-		if ifi == nil {
-			return nil, errors.New("an appropriate multicast interface not found")
-		}
-	}
-	return ifi, nil
-}
-
-func multicastRIBContains(t *testing.T, ip IP) bool {
-	ift, err := Interfaces()
-	if err != nil {
-		t.Fatalf("Interfaces failed: %v", err)
-	}
-	for _, ifi := range ift {
-		ifmat, err := ifi.MulticastAddrs()
-		if err != nil {
-			t.Fatalf("MulticastAddrs failed: %v", err)
-		}
-		for _, ifma := range ifmat {
-			if ifma.(*IPAddr).IP.Equal(ip) {
-				return true
-			}
-		}
-	}
-	return false
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/multicast_test.go gcc-4.8.1/libgo/go/net/multicast_test.go
--- gcc-4.8.1.orig/libgo/go/net/multicast_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/multicast_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,184 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package net
+
+import (
+	"fmt"
+	"os"
+	"runtime"
+	"testing"
+)
+
+var ipv4MulticastListenerTests = []struct {
+	net   string
+	gaddr *UDPAddr // see RFC 4727
+}{
+	{"udp", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}},
+
+	{"udp4", &UDPAddr{IP: IPv4(224, 0, 0, 254), Port: 12345}},
+}
+
+// TestIPv4MulticastListener tests both single and double listen to a
+// test listener with same address family, same group address and same
+// port.
+func TestIPv4MulticastListener(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	closer := func(cs []*UDPConn) {
+		for _, c := range cs {
+			if c != nil {
+				c.Close()
+			}
+		}
+	}
+
+	for _, ifi := range []*Interface{loopbackInterface(), nil} {
+		// Note that multicast interface assignment by system
+		// is not recommended because it usually relies on
+		// routing stuff for finding out an appropriate
+		// nexthop containing both network and link layer
+		// adjacencies.
+		if ifi == nil && !*testExternal {
+			continue
+		}
+		for _, tt := range ipv4MulticastListenerTests {
+			var err error
+			cs := make([]*UDPConn, 2)
+			if cs[0], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				t.Fatalf("First ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[0], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			if cs[1], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				closer(cs)
+				t.Fatalf("Second ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[1], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			closer(cs)
+		}
+	}
+}
+
+var ipv6MulticastListenerTests = []struct {
+	net   string
+	gaddr *UDPAddr // see RFC 4727
+}{
+	{"udp", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}},
+	{"udp", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}},
+
+	{"udp6", &UDPAddr{IP: ParseIP("ff01::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff02::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff04::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff05::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff08::114"), Port: 12345}},
+	{"udp6", &UDPAddr{IP: ParseIP("ff0e::114"), Port: 12345}},
+}
+
+// TestIPv6MulticastListener tests both single and double listen to a
+// test listener with same address family, same group address and same
+// port.
+func TestIPv6MulticastListener(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9", "solaris":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+	if !supportsIPv6 {
+		t.Skip("ipv6 is not supported")
+	}
+	if os.Getuid() != 0 {
+		t.Skip("skipping test; must be root")
+	}
+
+	closer := func(cs []*UDPConn) {
+		for _, c := range cs {
+			if c != nil {
+				c.Close()
+			}
+		}
+	}
+
+	for _, ifi := range []*Interface{loopbackInterface(), nil} {
+		// Note that multicast interface assignment by system
+		// is not recommended because it usually relies on
+		// routing stuff for finding out an appropriate
+		// nexthop containing both network and link layer
+		// adjacencies.
+		if ifi == nil && (!*testExternal || !*testIPv6) {
+			continue
+		}
+		for _, tt := range ipv6MulticastListenerTests {
+			var err error
+			cs := make([]*UDPConn, 2)
+			if cs[0], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				t.Fatalf("First ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[0], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			if cs[1], err = ListenMulticastUDP(tt.net, ifi, tt.gaddr); err != nil {
+				closer(cs)
+				t.Fatalf("Second ListenMulticastUDP on %v failed: %v", ifi, err)
+			}
+			if err := checkMulticastListener(cs[1], tt.gaddr.IP); err != nil {
+				closer(cs)
+				t.Fatal(err)
+			}
+			closer(cs)
+		}
+	}
+}
+
+func checkMulticastListener(c *UDPConn, ip IP) error {
+	if ok, err := multicastRIBContains(ip); err != nil {
+		return err
+	} else if !ok {
+		return fmt.Errorf("%q not found in multicast RIB", ip.String())
+	}
+	la := c.LocalAddr()
+	if la, ok := la.(*UDPAddr); !ok || la.Port == 0 {
+		return fmt.Errorf("got %v; expected a proper address with non-zero port number", la)
+	}
+	return nil
+}
+
+func multicastRIBContains(ip IP) (bool, error) {
+	switch runtime.GOOS {
+	case "netbsd", "openbsd", "plan9", "solaris", "windows":
+		return true, nil // not implemented yet
+	case "linux":
+		if runtime.GOARCH == "arm" || runtime.GOARCH == "alpha" {
+			return true, nil // not implemented yet
+		}
+	}
+	ift, err := Interfaces()
+	if err != nil {
+		return false, err
+	}
+	for _, ifi := range ift {
+		ifmat, err := ifi.MulticastAddrs()
+		if err != nil {
+			return false, err
+		}
+		for _, ifma := range ifmat {
+			if ifma.(*IPAddr).IP.Equal(ip) {
+				return true, nil
+			}
+		}
+	}
+	return false, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/net.go gcc-4.8.1/libgo/go/net/net.go
--- gcc-4.8.1.orig/libgo/go/net/net.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/net.go	2013-07-16 01:55:04.520470000 -0500
@@ -276,11 +276,23 @@
 
 var errMissingAddress = errors.New("missing address")
 
+// OpError is the error type usually returned by functions in the net
+// package. It describes the operation, network type, and address of
+// an error.
 type OpError struct {
-	Op   string
-	Net  string
+	// Op is the operation which caused the error, such as
+	// "read" or "write".
+	Op string
+
+	// Net is the network type on which this error occurred,
+	// such as "tcp" or "udp6".
+	Net string
+
+	// Addr is the network address on which this error occurred.
 	Addr Addr
-	Err  error
+
+	// Err is the error that occurred during the operation.
+	Err error
 }
 
 func (e *OpError) Error() string {
diff -Naur gcc-4.8.1.orig/libgo/go/net/net_test.go gcc-4.8.1/libgo/go/net/net_test.go
--- gcc-4.8.1.orig/libgo/go/net/net_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/net_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -173,6 +173,10 @@
 }
 
 func TestTCPClose(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
 	l, err := Listen("tcp", "127.0.0.1:0")
 	if err != nil {
 		t.Fatal(err)
diff -Naur gcc-4.8.1.orig/libgo/go/net/newpollserver_unix.go gcc-4.8.1/libgo/go/net/newpollserver_unix.go
--- gcc-4.8.1.orig/libgo/go/net/newpollserver_unix.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/newpollserver_unix.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,46 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build darwin freebsd linux netbsd openbsd
-
-package net
-
-import (
-	"os"
-	"syscall"
-)
-
-func newPollServer() (s *pollServer, err error) {
-	s = new(pollServer)
-	if s.pr, s.pw, err = os.Pipe(); err != nil {
-		return nil, err
-	}
-	if err = syscall.SetNonblock(int(s.pr.Fd()), true); err != nil {
-		goto Errno
-	}
-	if err = syscall.SetNonblock(int(s.pw.Fd()), true); err != nil {
-		goto Errno
-	}
-	if s.poll, err = newpollster(); err != nil {
-		goto Error
-	}
-	if _, err = s.poll.AddFD(int(s.pr.Fd()), 'r', true); err != nil {
-		s.poll.Close()
-		goto Error
-	}
-	s.pending = make(map[int]*netFD)
-	go s.Run()
-	return s, nil
-
-Errno:
-	err = &os.PathError{
-		Op:   "setnonblock",
-		Path: s.pr.Name(),
-		Err:  err,
-	}
-Error:
-	s.pr.Close()
-	s.pw.Close()
-	return nil, err
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/packetconn_test.go gcc-4.8.1/libgo/go/net/packetconn_test.go
--- gcc-4.8.1.orig/libgo/go/net/packetconn_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/packetconn_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package net_test
+// This file implements API tests across platforms and will never have a build
+// tag.
+
+package net
 
 import (
-	"net"
 	"os"
 	"runtime"
 	"strings"
@@ -13,18 +15,24 @@
 	"time"
 )
 
+func strfunc(s string) func() string {
+	return func() string {
+		return s
+	}
+}
+
 var packetConnTests = []struct {
 	net   string
-	addr1 string
-	addr2 string
+	addr1 func() string
+	addr2 func() string
 }{
-	{"udp", "127.0.0.1:0", "127.0.0.1:0"},
-	{"ip:icmp", "127.0.0.1", "127.0.0.1"},
-	{"unixgram", "/tmp/gotest.net1", "/tmp/gotest.net2"},
+	{"udp", strfunc("127.0.0.1:0"), strfunc("127.0.0.1:0")},
+	{"ip:icmp", strfunc("127.0.0.1"), strfunc("127.0.0.1")},
+	{"unixgram", testUnixAddr, testUnixAddr},
 }
 
 func TestPacketConn(t *testing.T) {
-	closer := func(c net.PacketConn, net, addr1, addr2 string) {
+	closer := func(c PacketConn, net, addr1, addr2 string) {
 		c.Close()
 		switch net {
 		case "unixgram":
@@ -33,7 +41,7 @@
 		}
 	}
 
-	for _, tt := range packetConnTests {
+	for i, tt := range packetConnTests {
 		var wb []byte
 		netstr := strings.Split(tt.net, ":")
 		switch netstr[0] {
@@ -47,59 +55,76 @@
 			if os.Getuid() != 0 {
 				continue
 			}
-			id := os.Getpid() & 0xffff
-			wb = newICMPEchoRequest(id, 1, 128, []byte("IP PACKETCONN TEST"))
+			var err error
+			wb, err = (&icmpMessage{
+				Type: icmpv4EchoRequest, Code: 0,
+				Body: &icmpEcho{
+					ID: os.Getpid() & 0xffff, Seq: i + 1,
+					Data: []byte("IP PACKETCONN TEST"),
+				},
+			}).Marshal()
+			if err != nil {
+				t.Fatalf("icmpMessage.Marshal failed: %v", err)
+			}
 		case "unixgram":
 			switch runtime.GOOS {
 			case "plan9", "windows":
 				continue
 			}
-			os.Remove(tt.addr1)
-			os.Remove(tt.addr2)
 			wb = []byte("UNIXGRAM PACKETCONN TEST")
 		default:
 			continue
 		}
 
-		c1, err := net.ListenPacket(tt.net, tt.addr1)
+		addr1, addr2 := tt.addr1(), tt.addr2()
+		c1, err := ListenPacket(tt.net, addr1)
 		if err != nil {
-			t.Fatalf("net.ListenPacket failed: %v", err)
+			t.Fatalf("ListenPacket failed: %v", err)
 		}
+		defer closer(c1, netstr[0], addr1, addr2)
 		c1.LocalAddr()
 		c1.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer closer(c1, netstr[0], tt.addr1, tt.addr2)
 
-		c2, err := net.ListenPacket(tt.net, tt.addr2)
+		c2, err := ListenPacket(tt.net, addr2)
 		if err != nil {
-			t.Fatalf("net.ListenPacket failed: %v", err)
+			t.Fatalf("ListenPacket failed: %v", err)
 		}
+		defer closer(c2, netstr[0], addr1, addr2)
 		c2.LocalAddr()
 		c2.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer closer(c2, netstr[0], tt.addr1, tt.addr2)
 
 		if _, err := c1.WriteTo(wb, c2.LocalAddr()); err != nil {
-			t.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
 		}
 		rb2 := make([]byte, 128)
 		if _, _, err := c2.ReadFrom(rb2); err != nil {
-			t.Fatalf("net.PacketConn.ReadFrom failed: %v", err)
+			t.Fatalf("PacketConn.ReadFrom failed: %v", err)
 		}
 		if _, err := c2.WriteTo(wb, c1.LocalAddr()); err != nil {
-			t.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
 		}
 		rb1 := make([]byte, 128)
 		if _, _, err := c1.ReadFrom(rb1); err != nil {
-			t.Fatalf("net.PacketConn.ReadFrom failed: %v", err)
+			t.Fatalf("PacketConn.ReadFrom failed: %v", err)
 		}
 	}
 }
 
 func TestConnAndPacketConn(t *testing.T) {
-	for _, tt := range packetConnTests {
+	closer := func(c PacketConn, net, addr1, addr2 string) {
+		c.Close()
+		switch net {
+		case "unixgram":
+			os.Remove(addr1)
+			os.Remove(addr2)
+		}
+	}
+
+	for i, tt := range packetConnTests {
 		var wb []byte
 		netstr := strings.Split(tt.net, ":")
 		switch netstr[0] {
@@ -113,52 +138,71 @@
 			if os.Getuid() != 0 {
 				continue
 			}
-			id := os.Getpid() & 0xffff
-			wb = newICMPEchoRequest(id, 1, 128, []byte("IP PACKETCONN TEST"))
+			var err error
+			wb, err = (&icmpMessage{
+				Type: icmpv4EchoRequest, Code: 0,
+				Body: &icmpEcho{
+					ID: os.Getpid() & 0xffff, Seq: i + 1,
+					Data: []byte("IP PACKETCONN TEST"),
+				},
+			}).Marshal()
+			if err != nil {
+				t.Fatalf("icmpMessage.Marshal failed: %v", err)
+			}
+		case "unixgram":
+			switch runtime.GOOS {
+			case "plan9", "windows":
+				continue
+			}
+			wb = []byte("UNIXGRAM PACKETCONN TEST")
 		default:
 			continue
 		}
 
-		c1, err := net.ListenPacket(tt.net, tt.addr1)
+		addr1, addr2 := tt.addr1(), tt.addr2()
+		c1, err := ListenPacket(tt.net, addr1)
 		if err != nil {
-			t.Fatalf("net.ListenPacket failed: %v", err)
+			t.Fatalf("ListenPacket failed: %v", err)
 		}
+		defer closer(c1, netstr[0], addr1, addr2)
 		c1.LocalAddr()
 		c1.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c1.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer c1.Close()
 
-		c2, err := net.Dial(tt.net, c1.LocalAddr().String())
+		c2, err := Dial(tt.net, c1.LocalAddr().String())
 		if err != nil {
-			t.Fatalf("net.Dial failed: %v", err)
+			t.Fatalf("Dial failed: %v", err)
 		}
+		defer c2.Close()
 		c2.LocalAddr()
 		c2.RemoteAddr()
 		c2.SetDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
 		c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-		defer c2.Close()
 
 		if _, err := c2.Write(wb); err != nil {
-			t.Fatalf("net.Conn.Write failed: %v", err)
+			t.Fatalf("Conn.Write failed: %v", err)
 		}
 		rb1 := make([]byte, 128)
 		if _, _, err := c1.ReadFrom(rb1); err != nil {
-			t.Fatalf("net.PacetConn.ReadFrom failed: %v", err)
+			t.Fatalf("PacetConn.ReadFrom failed: %v", err)
 		}
-		var dst net.Addr
-		if netstr[0] == "ip" {
-			dst = &net.IPAddr{IP: net.IPv4(127, 0, 0, 1)}
-		} else {
+		var dst Addr
+		switch netstr[0] {
+		case "ip":
+			dst = &IPAddr{IP: IPv4(127, 0, 0, 1)}
+		case "unixgram":
+			continue
+		default:
 			dst = c2.LocalAddr()
 		}
 		if _, err := c1.WriteTo(wb, dst); err != nil {
-			t.Fatalf("net.PacketConn.WriteTo failed: %v", err)
+			t.Fatalf("PacketConn.WriteTo failed: %v", err)
 		}
 		rb2 := make([]byte, 128)
 		if _, err := c2.Read(rb2); err != nil {
-			t.Fatalf("net.Conn.Read failed: %v", err)
+			t.Fatalf("Conn.Read failed: %v", err)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/port_test.go gcc-4.8.1/libgo/go/net/port_test.go
--- gcc-4.8.1.orig/libgo/go/net/port_test.go	2011-03-07 17:37:12.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/port_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -46,7 +46,7 @@
 	for i := 0; i < len(porttests); i++ {
 		tt := porttests[i]
 		if port, err := LookupPort(tt.netw, tt.name); port != tt.port || (err == nil) != tt.ok {
-			t.Errorf("LookupPort(%q, %q) = %v, %s; want %v",
+			t.Errorf("LookupPort(%q, %q) = %v, %v; want %v",
 				tt.netw, tt.name, port, err, tt.port)
 		}
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/protoconn_test.go gcc-4.8.1/libgo/go/net/protoconn_test.go
--- gcc-4.8.1.orig/libgo/go/net/protoconn_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/protoconn_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,152 +2,161 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package net_test
+// This file implements API tests across platforms and will never have a build
+// tag.
+
+package net
 
 import (
-	"bytes"
-	"net"
+	"io/ioutil"
 	"os"
 	"runtime"
 	"testing"
 	"time"
 )
 
-var condErrorf = func() func(*testing.T, string, ...interface{}) {
+// testUnixAddr uses ioutil.TempFile to get a name that is unique. It
+// also uses /tmp directory in case it is prohibited to create UNIX
+// sockets in TMPDIR.
+func testUnixAddr() string {
+	f, err := ioutil.TempFile("/tmp", "nettest")
+	if err != nil {
+		panic(err)
+	}
+	addr := f.Name()
+	f.Close()
+	os.Remove(addr)
+	return addr
+}
+
+var condFatalf = func() func(*testing.T, string, ...interface{}) {
 	// A few APIs are not implemented yet on both Plan 9 and Windows.
 	switch runtime.GOOS {
 	case "plan9", "windows":
 		return (*testing.T).Logf
 	}
-	return (*testing.T).Errorf
+	return (*testing.T).Fatalf
 }()
 
 func TestTCPListenerSpecificMethods(t *testing.T) {
-	la, err := net.ResolveTCPAddr("tcp4", "127.0.0.1:0")
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	la, err := ResolveTCPAddr("tcp4", "127.0.0.1:0")
 	if err != nil {
-		t.Fatalf("net.ResolveTCPAddr failed: %v", err)
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
 	}
-	ln, err := net.ListenTCP("tcp4", la)
+	ln, err := ListenTCP("tcp4", la)
 	if err != nil {
-		t.Fatalf("net.ListenTCP failed: %v", err)
+		t.Fatalf("ListenTCP failed: %v", err)
 	}
+	defer ln.Close()
 	ln.Addr()
 	ln.SetDeadline(time.Now().Add(30 * time.Nanosecond))
-	defer ln.Close()
 
 	if c, err := ln.Accept(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.Accept failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("TCPListener.Accept failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 	if c, err := ln.AcceptTCP(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.AcceptTCP failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("TCPListener.AcceptTCP failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 
 	if f, err := ln.File(); err != nil {
-		condErrorf(t, "net.TCPListener.File failed: %v", err)
-		return
+		condFatalf(t, "TCPListener.File failed: %v", err)
 	} else {
 		f.Close()
 	}
 }
 
 func TestTCPConnSpecificMethods(t *testing.T) {
-	la, err := net.ResolveTCPAddr("tcp4", "127.0.0.1:0")
+	la, err := ResolveTCPAddr("tcp4", "127.0.0.1:0")
 	if err != nil {
-		t.Fatalf("net.ResolveTCPAddr failed: %v", err)
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
 	}
-	ln, err := net.ListenTCP("tcp4", la)
+	ln, err := ListenTCP("tcp4", la)
 	if err != nil {
-		t.Fatalf("net.ListenTCP failed: %v", err)
+		t.Fatalf("ListenTCP failed: %v", err)
 	}
-	ln.Addr()
 	defer ln.Close()
+	ln.Addr()
 
 	done := make(chan int)
 	go transponder(t, ln, done)
 
-	ra, err := net.ResolveTCPAddr("tcp4", ln.Addr().String())
+	ra, err := ResolveTCPAddr("tcp4", ln.Addr().String())
 	if err != nil {
-		t.Errorf("net.ResolveTCPAddr failed: %v", err)
-		return
+		t.Fatalf("ResolveTCPAddr failed: %v", err)
 	}
-	c, err := net.DialTCP("tcp4", nil, ra)
+	c, err := DialTCP("tcp4", nil, ra)
 	if err != nil {
-		t.Errorf("net.DialTCP failed: %v", err)
-		return
+		t.Fatalf("DialTCP failed: %v", err)
 	}
+	defer c.Close()
 	c.SetKeepAlive(false)
 	c.SetLinger(0)
 	c.SetNoDelay(false)
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
-	defer c.Close()
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 
 	if _, err := c.Write([]byte("TCPCONN TEST")); err != nil {
-		t.Errorf("net.TCPConn.Write failed: %v", err)
-		return
+		t.Fatalf("TCPConn.Write failed: %v", err)
 	}
 	rb := make([]byte, 128)
 	if _, err := c.Read(rb); err != nil {
-		t.Errorf("net.TCPConn.Read failed: %v", err)
-		return
+		t.Fatalf("TCPConn.Read failed: %v", err)
 	}
 
 	<-done
 }
 
 func TestUDPConnSpecificMethods(t *testing.T) {
-	la, err := net.ResolveUDPAddr("udp4", "127.0.0.1:0")
+	la, err := ResolveUDPAddr("udp4", "127.0.0.1:0")
 	if err != nil {
-		t.Fatalf("net.ResolveUDPAddr failed: %v", err)
+		t.Fatalf("ResolveUDPAddr failed: %v", err)
 	}
-	c, err := net.ListenUDP("udp4", la)
+	c, err := ListenUDP("udp4", la)
 	if err != nil {
-		t.Fatalf("net.ListenUDP failed: %v", err)
+		t.Fatalf("ListenUDP failed: %v", err)
 	}
+	defer c.Close()
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 	c.SetReadBuffer(2048)
 	c.SetWriteBuffer(2048)
-	defer c.Close()
 
 	wb := []byte("UDPCONN TEST")
 	rb := make([]byte, 128)
-	if _, err := c.WriteToUDP(wb, c.LocalAddr().(*net.UDPAddr)); err != nil {
-		t.Errorf("net.UDPConn.WriteToUDP failed: %v", err)
-		return
+	if _, err := c.WriteToUDP(wb, c.LocalAddr().(*UDPAddr)); err != nil {
+		t.Fatalf("UDPConn.WriteToUDP failed: %v", err)
 	}
 	if _, _, err := c.ReadFromUDP(rb); err != nil {
-		t.Errorf("net.UDPConn.ReadFromUDP failed: %v", err)
-		return
+		t.Fatalf("UDPConn.ReadFromUDP failed: %v", err)
 	}
-	if _, _, err := c.WriteMsgUDP(wb, nil, c.LocalAddr().(*net.UDPAddr)); err != nil {
-		condErrorf(t, "net.UDPConn.WriteMsgUDP failed: %v", err)
-		return
+	if _, _, err := c.WriteMsgUDP(wb, nil, c.LocalAddr().(*UDPAddr)); err != nil {
+		condFatalf(t, "UDPConn.WriteMsgUDP failed: %v", err)
 	}
 	if _, _, _, _, err := c.ReadMsgUDP(rb, nil); err != nil {
-		condErrorf(t, "net.UDPConn.ReadMsgUDP failed: %v", err)
-		return
+		condFatalf(t, "UDPConn.ReadMsgUDP failed: %v", err)
 	}
 
 	if f, err := c.File(); err != nil {
-		condErrorf(t, "net.UDPConn.File failed: %v", err)
-		return
+		condFatalf(t, "UDPConn.File failed: %v", err)
 	} else {
 		f.Close()
 	}
@@ -156,52 +165,55 @@
 func TestIPConnSpecificMethods(t *testing.T) {
 	switch runtime.GOOS {
 	case "plan9":
-		t.Skipf("skipping read test on %q", runtime.GOOS)
+		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 	if os.Getuid() != 0 {
 		t.Skipf("skipping test; must be root")
 	}
 
-	la, err := net.ResolveIPAddr("ip4", "127.0.0.1")
+	la, err := ResolveIPAddr("ip4", "127.0.0.1")
 	if err != nil {
-		t.Fatalf("net.ResolveIPAddr failed: %v", err)
+		t.Fatalf("ResolveIPAddr failed: %v", err)
 	}
-	c, err := net.ListenIP("ip4:icmp", la)
+	c, err := ListenIP("ip4:icmp", la)
 	if err != nil {
-		t.Fatalf("net.ListenIP failed: %v", err)
+		t.Fatalf("ListenIP failed: %v", err)
 	}
+	defer c.Close()
 	c.LocalAddr()
 	c.RemoteAddr()
-	c.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c.SetDeadline(time.Now().Add(someTimeout))
+	c.SetReadDeadline(time.Now().Add(someTimeout))
+	c.SetWriteDeadline(time.Now().Add(someTimeout))
 	c.SetReadBuffer(2048)
 	c.SetWriteBuffer(2048)
-	defer c.Close()
 
-	id := os.Getpid() & 0xffff
-	wb := newICMPEchoRequest(id, 1, 128, []byte("IPCONN TEST "))
+	wb, err := (&icmpMessage{
+		Type: icmpv4EchoRequest, Code: 0,
+		Body: &icmpEcho{
+			ID: os.Getpid() & 0xffff, Seq: 1,
+			Data: []byte("IPCONN TEST "),
+		},
+	}).Marshal()
+	if err != nil {
+		t.Fatalf("icmpMessage.Marshal failed: %v", err)
+	}
 	rb := make([]byte, 20+128)
-	if _, err := c.WriteToIP(wb, c.LocalAddr().(*net.IPAddr)); err != nil {
-		t.Errorf("net.IPConn.WriteToIP failed: %v", err)
-		return
+	if _, err := c.WriteToIP(wb, c.LocalAddr().(*IPAddr)); err != nil {
+		t.Fatalf("IPConn.WriteToIP failed: %v", err)
 	}
 	if _, _, err := c.ReadFromIP(rb); err != nil {
-		t.Errorf("net.IPConn.ReadFromIP failed: %v", err)
-		return
+		t.Fatalf("IPConn.ReadFromIP failed: %v", err)
 	}
-	if _, _, err := c.WriteMsgIP(wb, nil, c.LocalAddr().(*net.IPAddr)); err != nil {
-		condErrorf(t, "net.UDPConn.WriteMsgIP failed: %v", err)
-		return
+	if _, _, err := c.WriteMsgIP(wb, nil, c.LocalAddr().(*IPAddr)); err != nil {
+		condFatalf(t, "IPConn.WriteMsgIP failed: %v", err)
 	}
 	if _, _, _, _, err := c.ReadMsgIP(rb, nil); err != nil {
-		condErrorf(t, "net.UDPConn.ReadMsgIP failed: %v", err)
-		return
+		condFatalf(t, "IPConn.ReadMsgIP failed: %v", err)
 	}
 
 	if f, err := c.File(); err != nil {
-		condErrorf(t, "net.IPConn.File failed: %v", err)
-		return
+		condFatalf(t, "IPConn.File failed: %v", err)
 	} else {
 		f.Close()
 	}
@@ -210,44 +222,40 @@
 func TestUnixListenerSpecificMethods(t *testing.T) {
 	switch runtime.GOOS {
 	case "plan9", "windows":
-		t.Skipf("skipping read test on %q", runtime.GOOS)
+		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
-	p := "/tmp/gotest.net"
-	os.Remove(p)
-	la, err := net.ResolveUnixAddr("unix", p)
+	addr := testUnixAddr()
+	la, err := ResolveUnixAddr("unix", addr)
 	if err != nil {
-		t.Fatalf("net.ResolveUnixAddr failed: %v", err)
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	ln, err := net.ListenUnix("unix", la)
+	ln, err := ListenUnix("unix", la)
 	if err != nil {
-		t.Fatalf("net.ListenUnix failed: %v", err)
+		t.Fatalf("ListenUnix failed: %v", err)
 	}
+	defer ln.Close()
+	defer os.Remove(addr)
 	ln.Addr()
 	ln.SetDeadline(time.Now().Add(30 * time.Nanosecond))
-	defer ln.Close()
-	defer os.Remove(p)
 
 	if c, err := ln.Accept(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.AcceptTCP failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("UnixListener.Accept failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 	if c, err := ln.AcceptUnix(); err != nil {
-		if !err.(net.Error).Timeout() {
-			t.Errorf("net.TCPListener.AcceptTCP failed: %v", err)
-			return
+		if !err.(Error).Timeout() {
+			t.Fatalf("UnixListener.AcceptUnix failed: %v", err)
 		}
 	} else {
 		c.Close()
 	}
 
 	if f, err := ln.File(); err != nil {
-		t.Errorf("net.UnixListener.File failed: %v", err)
-		return
+		t.Fatalf("UnixListener.File failed: %v", err)
 	} else {
 		f.Close()
 	}
@@ -259,145 +267,94 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
-	p1, p2, p3 := "/tmp/gotest.net1", "/tmp/gotest.net2", "/tmp/gotest.net3"
-	os.Remove(p1)
-	os.Remove(p2)
-	os.Remove(p3)
+	addr1, addr2, addr3 := testUnixAddr(), testUnixAddr(), testUnixAddr()
 
-	a1, err := net.ResolveUnixAddr("unixgram", p1)
+	a1, err := ResolveUnixAddr("unixgram", addr1)
 	if err != nil {
-		t.Fatalf("net.ResolveUnixAddr failed: %v", err)
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	c1, err := net.DialUnix("unixgram", a1, nil)
+	c1, err := DialUnix("unixgram", a1, nil)
 	if err != nil {
-		t.Fatalf("net.DialUnix failed: %v", err)
+		t.Fatalf("DialUnix failed: %v", err)
 	}
+	defer c1.Close()
+	defer os.Remove(addr1)
 	c1.LocalAddr()
 	c1.RemoteAddr()
-	c1.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c1.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c1.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c1.SetDeadline(time.Now().Add(someTimeout))
+	c1.SetReadDeadline(time.Now().Add(someTimeout))
+	c1.SetWriteDeadline(time.Now().Add(someTimeout))
 	c1.SetReadBuffer(2048)
 	c1.SetWriteBuffer(2048)
-	defer c1.Close()
-	defer os.Remove(p1)
 
-	a2, err := net.ResolveUnixAddr("unixgram", p2)
+	a2, err := ResolveUnixAddr("unixgram", addr2)
 	if err != nil {
-		t.Errorf("net.ResolveUnixAddr failed: %v", err)
-		return
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	c2, err := net.DialUnix("unixgram", a2, nil)
+	c2, err := DialUnix("unixgram", a2, nil)
 	if err != nil {
-		t.Errorf("net.DialUnix failed: %v", err)
-		return
+		t.Fatalf("DialUnix failed: %v", err)
 	}
+	defer c2.Close()
+	defer os.Remove(addr2)
 	c2.LocalAddr()
 	c2.RemoteAddr()
-	c2.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c2.SetDeadline(time.Now().Add(someTimeout))
+	c2.SetReadDeadline(time.Now().Add(someTimeout))
+	c2.SetWriteDeadline(time.Now().Add(someTimeout))
 	c2.SetReadBuffer(2048)
 	c2.SetWriteBuffer(2048)
-	defer c2.Close()
-	defer os.Remove(p2)
 
-	a3, err := net.ResolveUnixAddr("unixgram", p3)
+	a3, err := ResolveUnixAddr("unixgram", addr3)
 	if err != nil {
-		t.Errorf("net.ResolveUnixAddr failed: %v", err)
-		return
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
 	}
-	c3, err := net.ListenUnixgram("unixgram", a3)
+	c3, err := ListenUnixgram("unixgram", a3)
 	if err != nil {
-		t.Errorf("net.ListenUnixgram failed: %v", err)
-		return
+		t.Fatalf("ListenUnixgram failed: %v", err)
 	}
+	defer c3.Close()
+	defer os.Remove(addr3)
 	c3.LocalAddr()
 	c3.RemoteAddr()
-	c3.SetDeadline(time.Now().Add(100 * time.Millisecond))
-	c3.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
-	c3.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
+	c3.SetDeadline(time.Now().Add(someTimeout))
+	c3.SetReadDeadline(time.Now().Add(someTimeout))
+	c3.SetWriteDeadline(time.Now().Add(someTimeout))
 	c3.SetReadBuffer(2048)
 	c3.SetWriteBuffer(2048)
-	defer c3.Close()
-	defer os.Remove(p3)
 
 	wb := []byte("UNIXCONN TEST")
 	rb1 := make([]byte, 128)
 	rb2 := make([]byte, 128)
 	rb3 := make([]byte, 128)
 	if _, _, err := c1.WriteMsgUnix(wb, nil, a2); err != nil {
-		t.Errorf("net.UnixConn.WriteMsgUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteMsgUnix failed: %v", err)
 	}
 	if _, _, _, _, err := c2.ReadMsgUnix(rb2, nil); err != nil {
-		t.Errorf("net.UnixConn.ReadMsgUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadMsgUnix failed: %v", err)
 	}
 	if _, err := c2.WriteToUnix(wb, a1); err != nil {
-		t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteToUnix failed: %v", err)
 	}
 	if _, _, err := c1.ReadFromUnix(rb1); err != nil {
-		t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadFromUnix failed: %v", err)
 	}
 	if _, err := c3.WriteToUnix(wb, a1); err != nil {
-		t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteToUnix failed: %v", err)
 	}
 	if _, _, err := c1.ReadFromUnix(rb1); err != nil {
-		t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadFromUnix failed: %v", err)
 	}
 	if _, err := c2.WriteToUnix(wb, a3); err != nil {
-		t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.WriteToUnix failed: %v", err)
 	}
 	if _, _, err := c3.ReadFromUnix(rb3); err != nil {
-		t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
-		return
+		t.Fatalf("UnixConn.ReadFromUnix failed: %v", err)
 	}
 
 	if f, err := c1.File(); err != nil {
-		t.Errorf("net.UnixConn.File failed: %v", err)
-		return
+		t.Fatalf("UnixConn.File failed: %v", err)
 	} else {
 		f.Close()
 	}
 }
-
-func newICMPEchoRequest(id, seqnum, msglen int, filler []byte) []byte {
-	b := newICMPInfoMessage(id, seqnum, msglen, filler)
-	b[0] = 8
-	// calculate ICMP checksum
-	cklen := len(b)
-	s := uint32(0)
-	for i := 0; i < cklen-1; i += 2 {
-		s += uint32(b[i+1])<<8 | uint32(b[i])
-	}
-	if cklen&1 == 1 {
-		s += uint32(b[cklen-1])
-	}
-	s = (s >> 16) + (s & 0xffff)
-	s = s + (s >> 16)
-	// place checksum back in header; using ^= avoids the
-	// assumption the checksum bytes are zero
-	b[2] ^= byte(^s & 0xff)
-	b[3] ^= byte(^s >> 8)
-	return b
-}
-
-func newICMPInfoMessage(id, seqnum, msglen int, filler []byte) []byte {
-	b := make([]byte, msglen)
-	copy(b[8:], bytes.Repeat(filler, (msglen-8)/len(filler)+1))
-	b[0] = 0                   // type
-	b[1] = 0                   // code
-	b[2] = 0                   // checksum
-	b[3] = 0                   // checksum
-	b[4] = byte(id >> 8)       // identifier
-	b[5] = byte(id & 0xff)     // identifier
-	b[6] = byte(seqnum >> 8)   // sequence number
-	b[7] = byte(seqnum & 0xff) // sequence number
-	return b
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/client.go gcc-4.8.1/libgo/go/net/rpc/client.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/client.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/rpc/client.go	2013-07-16 01:55:04.520470000 -0500
@@ -71,7 +71,7 @@
 
 	// Register this call.
 	client.mutex.Lock()
-	if client.shutdown {
+	if client.shutdown || client.closing {
 		call.Error = ErrShutdown
 		client.mutex.Unlock()
 		call.done()
@@ -105,9 +105,6 @@
 		response = Response{}
 		err = client.codec.ReadResponseHeader(&response)
 		if err != nil {
-			if err == io.EOF && !client.closing {
-				err = io.ErrUnexpectedEOF
-			}
 			break
 		}
 		seq := response.Seq
@@ -150,6 +147,13 @@
 	client.mutex.Lock()
 	client.shutdown = true
 	closing := client.closing
+	if err == io.EOF {
+		if closing {
+			err = ErrShutdown
+		} else {
+			err = io.ErrUnexpectedEOF
+		}
+	}
 	for _, call := range client.pending {
 		call.Error = err
 		call.done()
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/all_test.go gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/all_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/all_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 	"errors"
 	"fmt"
 	"io"
+	"io/ioutil"
 	"net"
 	"net/rpc"
 	"testing"
@@ -185,6 +186,22 @@
 	ServeConn(srv)                 // must return, not loop
 }
 
+func TestMalformedOutput(t *testing.T) {
+	cli, srv := net.Pipe()
+	go srv.Write([]byte(`{"id":0,"result":null,"error":null}`))
+	go ioutil.ReadAll(srv)
+
+	client := NewClient(cli)
+	defer client.Close()
+
+	args := &Args{7, 8}
+	reply := new(Reply)
+	err := client.Call("Arith.Add", args, reply)
+	if err == nil {
+		t.Error("expected error")
+	}
+}
+
 func TestUnexpectedError(t *testing.T) {
 	cli, srv := myPipe()
 	go cli.PipeWriter.CloseWithError(errors.New("unexpected error!")) // reader will get this error
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/client.go gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/jsonrpc/client.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/rpc/jsonrpc/client.go	2013-07-16 01:55:04.520470000 -0500
@@ -83,7 +83,7 @@
 
 	r.Error = ""
 	r.Seq = c.resp.Id
-	if c.resp.Error != nil {
+	if c.resp.Error != nil || c.resp.Result == nil {
 		x, ok := c.resp.Error.(string)
 		if !ok {
 			return fmt.Errorf("invalid error %v", c.resp.Error)
diff -Naur gcc-4.8.1.orig/libgo/go/net/rpc/server_test.go gcc-4.8.1/libgo/go/net/rpc/server_test.go
--- gcc-4.8.1.orig/libgo/go/net/rpc/server_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/rpc/server_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -399,12 +399,10 @@
 
 func (WriteFailCodec) ReadResponseHeader(*Response) error {
 	select {}
-	panic("unreachable")
 }
 
 func (WriteFailCodec) ReadResponseBody(interface{}) error {
 	select {}
-	panic("unreachable")
 }
 
 func (WriteFailCodec) Close() error {
@@ -445,8 +443,7 @@
 	return DialHTTP("tcp", httpServerAddr)
 }
 
-func countMallocs(dial func() (*Client, error), t *testing.T) uint64 {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+func countMallocs(dial func() (*Client, error), t *testing.T) float64 {
 	once.Do(startServer)
 	client, err := dial()
 	if err != nil {
@@ -454,11 +451,7 @@
 	}
 	args := &Args{7, 8}
 	reply := new(Reply)
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	mallocs := 0 - memstats.Mallocs
-	const count = 100
-	for i := 0; i < count; i++ {
+	return testing.AllocsPerRun(100, func() {
 		err := client.Call("Arith.Add", args, reply)
 		if err != nil {
 			t.Errorf("Add: expected no error but got string %q", err.Error())
@@ -466,18 +459,21 @@
 		if reply.C != args.A+args.B {
 			t.Errorf("Add: expected %d got %d", reply.C, args.A+args.B)
 		}
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs += memstats.Mallocs
-	return mallocs / count
+	})
 }
 
 func TestCountMallocs(t *testing.T) {
-	fmt.Printf("mallocs per rpc round trip: %d\n", countMallocs(dialDirect, t))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	fmt.Printf("mallocs per rpc round trip: %v\n", countMallocs(dialDirect, t))
 }
 
 func TestCountMallocsOverHTTP(t *testing.T) {
-	fmt.Printf("mallocs per HTTP rpc round trip: %d\n", countMallocs(dialHTTP, t))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	fmt.Printf("mallocs per HTTP rpc round trip: %v\n", countMallocs(dialHTTP, t))
 }
 
 type writeCrasher struct {
@@ -532,6 +528,23 @@
 	}
 }
 
+func TestErrorAfterClientClose(t *testing.T) {
+	once.Do(startServer)
+
+	client, err := dialHTTP()
+	if err != nil {
+		t.Fatalf("dialing: %v", err)
+	}
+	err = client.Close()
+	if err != nil {
+		t.Fatal("close error:", err)
+	}
+	err = client.Call("Arith.Add", &Args{7, 9}, new(Reply))
+	if err != ErrShutdown {
+		t.Errorf("Forever: expected ErrShutdown got %v", err)
+	}
+}
+
 func benchmarkEndToEnd(dial func() (*Client, error), b *testing.B) {
 	b.StopTimer()
 	once.Do(startServer)
diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_freebsd.go gcc-4.8.1/libgo/go/net/sendfile_freebsd.go
--- gcc-4.8.1.orig/libgo/go/net/sendfile_freebsd.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sendfile_freebsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -83,7 +83,7 @@
 			break
 		}
 		if err1 == syscall.EAGAIN {
-			if err1 = c.pollServer.WaitWrite(c); err1 == nil {
+			if err1 = c.pd.WaitWrite(); err1 == nil {
 				continue
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sendfile_linux.go gcc-4.8.1/libgo/go/net/sendfile_linux.go
--- gcc-4.8.1.orig/libgo/go/net/sendfile_linux.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sendfile_linux.go	2013-07-16 01:55:04.520470000 -0500
@@ -59,7 +59,7 @@
 			break
 		}
 		if err1 == syscall.EAGAIN {
-			if err1 = c.pollServer.WaitWrite(c); err1 == nil {
+			if err1 = c.pd.WaitWrite(); err1 == nil {
 				continue
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/net/server_test.go gcc-4.8.1/libgo/go/net/server_test.go
--- gcc-4.8.1.orig/libgo/go/net/server_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/server_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 	"io"
 	"os"
 	"runtime"
+	"strconv"
 	"testing"
 	"time"
 )
@@ -41,6 +42,12 @@
 	return false
 }
 
+func tempfile(filename string) string {
+	// use /tmp in case it is prohibited to create
+	// UNIX sockets in TMPDIR
+	return "/tmp/" + filename + "." + strconv.Itoa(os.Getpid())
+}
+
 var streamConnServerTests = []struct {
 	snet    string // server side
 	saddr   string
@@ -86,7 +93,7 @@
 
 	{snet: "tcp6", saddr: "[::1]", cnet: "tcp6", caddr: "[::1]", ipv6: true},
 
-	{snet: "unix", saddr: "/tmp/gotest1.net", cnet: "unix", caddr: "/tmp/gotest1.net.local"},
+	{snet: "unix", saddr: tempfile("gotest1.net"), cnet: "unix", caddr: tempfile("gotest1.net.local")},
 	{snet: "unix", saddr: "@gotest2/net", cnet: "unix", caddr: "@gotest2/net.local", linux: true},
 }
 
@@ -113,8 +120,7 @@
 		case "tcp", "tcp4", "tcp6":
 			_, port, err := SplitHostPort(taddr)
 			if err != nil {
-				t.Errorf("SplitHostPort(%q) failed: %v", taddr, err)
-				return
+				t.Fatalf("SplitHostPort(%q) failed: %v", taddr, err)
 			}
 			taddr = tt.caddr + ":" + port
 		}
@@ -136,7 +142,7 @@
 	caddr string // client address
 	empty bool   // test with empty data
 }{
-	{net: "unixpacket", saddr: "/tmp/gotest3.net", caddr: "/tmp/gotest3.net.local"},
+	{net: "unixpacket", saddr: tempfile("/gotest3.net"), caddr: tempfile("gotest3.net.local")},
 	{net: "unixpacket", saddr: "@gotest4/net", caddr: "@gotest4/net.local"},
 }
 
@@ -169,11 +175,11 @@
 }
 
 func runStreamConnServer(t *testing.T, net, laddr string, listening chan<- string, done chan<- int) {
+	defer close(done)
 	l, err := Listen(net, laddr)
 	if err != nil {
 		t.Errorf("Listen(%q, %q) failed: %v", net, laddr, err)
 		listening <- "<nil>"
-		done <- 1
 		return
 	}
 	defer l.Close()
@@ -188,13 +194,14 @@
 			}
 			rw.Write(buf[0:n])
 		}
-		done <- 1
+		close(done)
 	}
 
 run:
 	for {
 		c, err := l.Accept()
 		if err != nil {
+			t.Logf("Accept failed: %v", err)
 			continue run
 		}
 		echodone := make(chan int)
@@ -203,14 +210,12 @@
 		c.Close()
 		break run
 	}
-	done <- 1
 }
 
 func runStreamConnClient(t *testing.T, net, taddr string, isEmpty bool) {
 	c, err := Dial(net, taddr)
 	if err != nil {
-		t.Errorf("Dial(%q, %q) failed: %v", net, taddr, err)
-		return
+		t.Fatalf("Dial(%q, %q) failed: %v", net, taddr, err)
 	}
 	defer c.Close()
 	c.SetReadDeadline(time.Now().Add(1 * time.Second))
@@ -220,14 +225,12 @@
 		wb = []byte("StreamConnClient by Dial\n")
 	}
 	if n, err := c.Write(wb); err != nil || n != len(wb) {
-		t.Errorf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 
 	rb := make([]byte, 1024)
 	if n, err := c.Read(rb[0:]); err != nil || n != len(wb) {
-		t.Errorf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 
 	// Send explicit ending for unixpacket.
@@ -298,10 +301,10 @@
 	{snet: "udp", saddr: "[::1]", cnet: "udp", caddr: "[::1]", ipv6: true, empty: true},
 	{snet: "udp", saddr: "[::1]", cnet: "udp", caddr: "[::1]", ipv6: true, dial: true, empty: true},
 
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local"},
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local", dial: true},
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local", empty: true},
-	{snet: "unixgram", saddr: "/tmp/gotest5.net", cnet: "unixgram", caddr: "/tmp/gotest5.net.local", dial: true, empty: true},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local")},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local"), dial: true},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local"), empty: true},
+	{snet: "unixgram", saddr: tempfile("gotest5.net"), cnet: "unixgram", caddr: tempfile("gotest5.net.local"), dial: true, empty: true},
 
 	{snet: "unixgram", saddr: "@gotest6/net", cnet: "unixgram", caddr: "@gotest6/net.local", linux: true},
 }
@@ -333,8 +336,7 @@
 		case "udp", "udp4", "udp6":
 			_, port, err := SplitHostPort(taddr)
 			if err != nil {
-				t.Errorf("SplitHostPort(%q) failed: %v", taddr, err)
-				return
+				t.Fatalf("SplitHostPort(%q) failed: %v", taddr, err)
 			}
 			taddr = tt.caddr + ":" + port
 			tt.caddr += ":0"
@@ -397,14 +399,12 @@
 	case "udp", "udp4", "udp6":
 		c, err = Dial(net, taddr)
 		if err != nil {
-			t.Errorf("Dial(%q, %q) failed: %v", net, taddr, err)
-			return
+			t.Fatalf("Dial(%q, %q) failed: %v", net, taddr, err)
 		}
 	case "unixgram":
-		c, err = DialUnix(net, &UnixAddr{laddr, net}, &UnixAddr{taddr, net})
+		c, err = DialUnix(net, &UnixAddr{Name: laddr, Net: net}, &UnixAddr{Name: taddr, Net: net})
 		if err != nil {
-			t.Errorf("DialUnix(%q, {%q, %q}) failed: %v", net, laddr, taddr, err)
-			return
+			t.Fatalf("DialUnix(%q, {%q, %q}) failed: %v", net, laddr, taddr, err)
 		}
 	}
 	defer c.Close()
@@ -415,14 +415,12 @@
 		wb = []byte("DatagramConnClient by Dial\n")
 	}
 	if n, err := c.Write(wb[0:]); err != nil || n != len(wb) {
-		t.Errorf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Write failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 
 	rb := make([]byte, 1024)
 	if n, err := c.Read(rb[0:]); err != nil || n != len(wb) {
-		t.Errorf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("Read failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 }
 
@@ -433,20 +431,17 @@
 	case "udp", "udp4", "udp6":
 		ra, err = ResolveUDPAddr(net, taddr)
 		if err != nil {
-			t.Errorf("ResolveUDPAddr(%q, %q) failed: %v", net, taddr, err)
-			return
+			t.Fatalf("ResolveUDPAddr(%q, %q) failed: %v", net, taddr, err)
 		}
 	case "unixgram":
 		ra, err = ResolveUnixAddr(net, taddr)
 		if err != nil {
-			t.Errorf("ResolveUxixAddr(%q, %q) failed: %v", net, taddr, err)
-			return
+			t.Fatalf("ResolveUxixAddr(%q, %q) failed: %v", net, taddr, err)
 		}
 	}
 	c, err := ListenPacket(net, laddr)
 	if err != nil {
-		t.Errorf("ListenPacket(%q, %q) faild: %v", net, laddr, err)
-		return
+		t.Fatalf("ListenPacket(%q, %q) faild: %v", net, laddr, err)
 	}
 	defer c.Close()
 	c.SetReadDeadline(time.Now().Add(1 * time.Second))
@@ -456,13 +451,11 @@
 		wb = []byte("DatagramPacketConnClient by ListenPacket\n")
 	}
 	if n, err := c.WriteTo(wb[0:], ra); err != nil || n != len(wb) {
-		t.Errorf("WriteTo(%v) failed: %v, %v; want %v, <nil>", ra, n, err, len(wb))
-		return
+		t.Fatalf("WriteTo(%v) failed: %v, %v; want %v, <nil>", ra, n, err, len(wb))
 	}
 
 	rb := make([]byte, 1024)
 	if n, _, err := c.ReadFrom(rb[0:]); err != nil || n != len(wb) {
-		t.Errorf("ReadFrom failed: %v, %v; want %v, <nil>", n, err, len(wb))
-		return
+		t.Fatalf("ReadFrom failed: %v, %v; want %v, <nil>", n, err, len(wb))
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/auth.go gcc-4.8.1/libgo/go/net/smtp/auth.go
--- gcc-4.8.1.orig/libgo/go/net/smtp/auth.go	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/smtp/auth.go	2013-07-16 01:55:04.520470000 -0500
@@ -54,7 +54,16 @@
 
 func (a *plainAuth) Start(server *ServerInfo) (string, []byte, error) {
 	if !server.TLS {
-		return "", nil, errors.New("unencrypted connection")
+		advertised := false
+		for _, mechanism := range server.Auth {
+			if mechanism == "PLAIN" {
+				advertised = true
+				break
+			}
+		}
+		if !advertised {
+			return "", nil, errors.New("unencrypted connection")
+		}
 	}
 	if server.Name != a.host {
 		return "", nil, errors.New("wrong host name")
diff -Naur gcc-4.8.1.orig/libgo/go/net/smtp/smtp_test.go gcc-4.8.1/libgo/go/net/smtp/smtp_test.go
--- gcc-4.8.1.orig/libgo/go/net/smtp/smtp_test.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/smtp/smtp_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -57,6 +57,41 @@
 	}
 }
 
+func TestAuthPlain(t *testing.T) {
+	auth := PlainAuth("foo", "bar", "baz", "servername")
+
+	tests := []struct {
+		server *ServerInfo
+		err    string
+	}{
+		{
+			server: &ServerInfo{Name: "servername", TLS: true},
+		},
+		{
+			// Okay; explicitly advertised by server.
+			server: &ServerInfo{Name: "servername", Auth: []string{"PLAIN"}},
+		},
+		{
+			server: &ServerInfo{Name: "servername", Auth: []string{"CRAM-MD5"}},
+			err:    "unencrypted connection",
+		},
+		{
+			server: &ServerInfo{Name: "attacker", TLS: true},
+			err:    "wrong host name",
+		},
+	}
+	for i, tt := range tests {
+		_, _, err := auth.Start(tt.server)
+		got := ""
+		if err != nil {
+			got = err.Error()
+		}
+		if got != tt.err {
+			t.Errorf("%d. got error = %q; want %q", i, got, tt.err)
+		}
+	}
+}
+
 type faker struct {
 	io.ReadWriter
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_bsd.go gcc-4.8.1/libgo/go/net/sock_bsd.go
--- gcc-4.8.1.orig/libgo/go/net/sock_bsd.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sock_bsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd netbsd openbsd
 
-// Sockets for BSD variants
-
 package net
 
 import (
@@ -29,34 +27,11 @@
 	if n == 0 || err != nil {
 		return syscall.SOMAXCONN
 	}
-	return int(n)
-}
-
-func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
-	a := toAddr(la)
-	if a == nil {
-		return la, nil
-	}
-	switch v := a.(type) {
-	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
-			return nil, err
-		}
-	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
-				return nil, err
-			}
-			switch f {
-			case syscall.AF_INET:
-				v.IP = IPv4zero
-			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
-			}
-			return v.sockaddr(f)
-		}
+	// FreeBSD stores the backlog in a uint16, as does Linux.
+	// Assume the other BSDs do too. Truncate number to avoid wrapping.
+	// See issue 5030.
+	if n > 1<<16-1 {
+		n = 1<<16 - 1
 	}
-	return la, nil
+	return int(n)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_cloexec.go gcc-4.8.1/libgo/go/net/sock_cloexec.go
--- gcc-4.8.1.orig/libgo/go/net/sock_cloexec.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sock_cloexec.go	2013-07-16 01:55:04.520470000 -0500
@@ -44,20 +44,20 @@
 func accept(fd int) (int, syscall.Sockaddr, error) {
 	nfd, sa, err := syscall.Accept4(fd, syscall.SOCK_NONBLOCK|syscall.SOCK_CLOEXEC)
 	// The accept4 system call was introduced in Linux 2.6.28.  If
-	// we get an ENOSYS error, fall back to using accept.
-	if err == nil || err != syscall.ENOSYS {
+	// we get an ENOSYS or EINVAL error, fall back to using accept.
+	if err == nil || (err != syscall.ENOSYS && err != syscall.EINVAL) {
 		return nfd, sa, err
 	}
 
 	// See ../syscall/exec_unix.go for description of ForkLock.
-	// It is okay to hold the lock across syscall.Accept
+	// It is probably okay to hold the lock across syscall.Accept
 	// because we have put fd.sysfd into non-blocking mode.
-	syscall.ForkLock.RLock()
+	// However, a call to the File method will put it back into
+	// blocking mode. We can't take that risk, so no use of ForkLock here.
 	nfd, sa, err = syscall.Accept(fd)
 	if err == nil {
 		syscall.CloseOnExec(nfd)
 	}
-	syscall.ForkLock.RUnlock()
 	if err != nil {
 		return -1, nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_linux.go gcc-4.8.1/libgo/go/net/sock_linux.go
--- gcc-4.8.1.orig/libgo/go/net/sock_linux.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sock_linux.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Sockets for Linux
-
 package net
 
 import "syscall"
@@ -23,34 +21,11 @@
 	if n == 0 || !ok {
 		return syscall.SOMAXCONN
 	}
-	return n
-}
-
-func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
-	a := toAddr(la)
-	if a == nil {
-		return la, nil
-	}
-	switch v := a.(type) {
-	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
-			return nil, err
-		}
-	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
-				return nil, err
-			}
-			switch f {
-			case syscall.AF_INET:
-				v.IP = IPv4zero
-			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
-			}
-			return v.sockaddr(f)
-		}
+	// Linux stores the backlog in a uint16.
+	// Truncate number to avoid wrapping.
+	// See issue 5030.
+	if n > 1<<16-1 {
+		n = 1<<16 - 1
 	}
-	return la, nil
+	return n
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_posix.go gcc-4.8.1/libgo/go/net/sockopt_posix.go
--- gcc-4.8.1.orig/libgo/go/net/sockopt_posix.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sockopt_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -11,7 +11,6 @@
 import (
 	"os"
 	"syscall"
-	"time"
 )
 
 // Boolean to int.
@@ -119,24 +118,6 @@
 	return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.SOL_SOCKET, syscall.SO_SNDBUF, bytes))
 }
 
-// TODO(dfc) these unused error returns could be removed
-
-func setReadDeadline(fd *netFD, t time.Time) error {
-	fd.rdeadline.setTime(t)
-	return nil
-}
-
-func setWriteDeadline(fd *netFD, t time.Time) error {
-	fd.wdeadline.setTime(t)
-	return nil
-}
-
-func setDeadline(fd *netFD, t time.Time) error {
-	setReadDeadline(fd, t)
-	setWriteDeadline(fd, t)
-	return nil
-}
-
 func setKeepAlive(fd *netFD, keepalive bool) error {
 	if err := fd.incref(false); err != nil {
 		return err
diff -Naur gcc-4.8.1.orig/libgo/go/net/sockopt_windows.go gcc-4.8.1/libgo/go/net/sockopt_windows.go
--- gcc-4.8.1.orig/libgo/go/net/sockopt_windows.go	2012-03-30 16:27:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/sockopt_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,6 +9,7 @@
 import (
 	"os"
 	"syscall"
+	"time"
 )
 
 func setDefaultSockopts(s syscall.Handle, f, t int, ipv6only bool) error {
@@ -47,3 +48,21 @@
 	}
 	return nil
 }
+
+// TODO(dfc) these unused error returns could be removed
+
+func setReadDeadline(fd *netFD, t time.Time) error {
+	fd.rdeadline.setTime(t)
+	return nil
+}
+
+func setWriteDeadline(fd *netFD, t time.Time) error {
+	fd.wdeadline.setTime(t)
+	return nil
+}
+
+func setDeadline(fd *netFD, t time.Time) error {
+	setReadDeadline(fd, t)
+	setWriteDeadline(fd, t)
+	return nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_posix.go gcc-4.8.1/libgo/go/net/sock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/sock_posix.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sock_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// Sockets
-
 package net
 
 import (
@@ -15,7 +13,7 @@
 
 var listenerBacklog = maxListenerBacklog()
 
-// Generic socket creation.
+// Generic POSIX socket creation.
 func socket(net string, f, t, p int, ipv6only bool, ulsa, ursa syscall.Sockaddr, deadline time.Time, toAddr func(syscall.Sockaddr) Addr) (fd *netFD, err error) {
 	s, err := sysSocket(f, t, p)
 	if err != nil {
@@ -27,7 +25,8 @@
 		return nil, err
 	}
 
-	if ulsa != nil {
+	// This socket is used by a listener.
+	if ulsa != nil && ursa == nil {
 		// We provide a socket that listens to a wildcard
 		// address with reusable UDP port when the given ulsa
 		// is an appropriate UDP multicast address prefix.
@@ -39,6 +38,9 @@
 			closesocket(s)
 			return nil, err
 		}
+	}
+
+	if ulsa != nil {
 		if err = syscall.Bind(s, ulsa); err != nil {
 			closesocket(s)
 			return nil, err
@@ -50,19 +52,27 @@
 		return nil, err
 	}
 
+	// This socket is used by a dialer.
 	if ursa != nil {
-		fd.wdeadline.setTime(deadline)
-		if err = fd.connect(ursa); err != nil {
-			closesocket(s)
+		if !deadline.IsZero() {
+			setWriteDeadline(fd, deadline)
+		}
+		if err = fd.connect(ulsa, ursa); err != nil {
+			fd.Close()
 			return nil, err
 		}
 		fd.isConnected = true
-		fd.wdeadline.set(0)
+		if !deadline.IsZero() {
+			setWriteDeadline(fd, time.Time{})
+		}
 	}
 
 	lsa, _ := syscall.Getsockname(s)
 	laddr := toAddr(lsa)
 	rsa, _ := syscall.Getpeername(s)
+	if rsa == nil {
+		rsa = ursa
+	}
 	raddr := toAddr(rsa)
 	fd.setAddr(laddr, raddr)
 	return fd, nil
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_solaris.go gcc-4.8.1/libgo/go/net/sock_solaris.go
--- gcc-4.8.1.orig/libgo/go/net/sock_solaris.go	2012-04-24 23:26:12.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/sock_solaris.go	2013-07-23 15:39:05.853554000 -0500
@@ -16,32 +16,3 @@
 	// The kernel does not track the limit.
 	return syscall.SOMAXCONN
 }
-
-func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
-	a := toAddr(la)
-	if a == nil {
-		return la, nil
-	}
-	switch v := a.(type) {
-	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
-			return nil, err
-		}
-	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
-				return nil, err
-			}
-			switch f {
-			case syscall.AF_INET:
-				v.IP = IPv4zero
-			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
-			}
-			return v.sockaddr(f)
-		}
-	}
-	return la, nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_unix.go gcc-4.8.1/libgo/go/net/sock_unix.go
--- gcc-4.8.1.orig/libgo/go/net/sock_unix.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sock_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,36 @@
+// Copyright 2009 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin freebsd linux netbsd openbsd
+
+package net
+
+import "syscall"
+
+func listenerSockaddr(s, f int, la syscall.Sockaddr, toAddr func(syscall.Sockaddr) Addr) (syscall.Sockaddr, error) {
+	a := toAddr(la)
+	if a == nil {
+		return la, nil
+	}
+	switch a := a.(type) {
+	case *TCPAddr, *UnixAddr:
+		if err := setDefaultListenerSockopts(s); err != nil {
+			return nil, err
+		}
+	case *UDPAddr:
+		if a.IP.IsMulticast() {
+			if err := setDefaultMulticastSockopts(s); err != nil {
+				return nil, err
+			}
+			switch f {
+			case syscall.AF_INET:
+				a.IP = IPv4zero
+			case syscall.AF_INET6:
+				a.IP = IPv6unspecified
+			}
+			return a.sockaddr(f)
+		}
+	}
+	return la, nil
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/sock_windows.go gcc-4.8.1/libgo/go/net/sock_windows.go
--- gcc-4.8.1.orig/libgo/go/net/sock_windows.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sock_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,14 +2,13 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Sockets for Windows
-
 package net
 
 import "syscall"
 
 func maxListenerBacklog() int {
 	// TODO: Implement this
+	// NOTE: Never return a number bigger than 1<<16 - 1. See issue 5030.
 	return syscall.SOMAXCONN
 }
 
@@ -18,25 +17,23 @@
 	if a == nil {
 		return la, nil
 	}
-	switch v := a.(type) {
+	switch a := a.(type) {
 	case *TCPAddr, *UnixAddr:
-		err := setDefaultListenerSockopts(s)
-		if err != nil {
+		if err := setDefaultListenerSockopts(s); err != nil {
 			return nil, err
 		}
 	case *UDPAddr:
-		if v.IP.IsMulticast() {
-			err := setDefaultMulticastSockopts(s)
-			if err != nil {
+		if a.IP.IsMulticast() {
+			if err := setDefaultMulticastSockopts(s); err != nil {
 				return nil, err
 			}
 			switch f {
 			case syscall.AF_INET:
-				v.IP = IPv4zero
+				a.IP = IPv4zero
 			case syscall.AF_INET6:
-				v.IP = IPv6unspecified
+				a.IP = IPv6unspecified
 			}
-			return v.sockaddr(f)
+			return a.sockaddr(f)
 		}
 	}
 	return la, nil
diff -Naur gcc-4.8.1.orig/libgo/go/net/sys_cloexec.go gcc-4.8.1/libgo/go/net/sys_cloexec.go
--- gcc-4.8.1.orig/libgo/go/net/sys_cloexec.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/sys_cloexec.go	2013-07-16 01:55:04.520470000 -0500
@@ -35,14 +35,14 @@
 // descriptor as nonblocking and close-on-exec.
 func accept(fd int) (int, syscall.Sockaddr, error) {
 	// See ../syscall/exec_unix.go for description of ForkLock.
-	// It is okay to hold the lock across syscall.Accept
+	// It is probably okay to hold the lock across syscall.Accept
 	// because we have put fd.sysfd into non-blocking mode.
-	syscall.ForkLock.RLock()
+	// However, a call to the File method will put it back into
+	// blocking mode. We can't take that risk, so no use of ForkLock here.
 	nfd, sa, err := syscall.Accept(fd)
 	if err == nil {
 		syscall.CloseOnExec(nfd)
 	}
-	syscall.ForkLock.RUnlock()
 	if err != nil {
 		return -1, nil, err
 	}
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock.go gcc-4.8.1/libgo/go/net/tcpsock.go
--- gcc-4.8.1.orig/libgo/go/net/tcpsock.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/tcpsock.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// TCP sockets
-
 package net
 
 // TCPAddr represents the address of a TCP end point.
@@ -20,14 +18,18 @@
 	if a == nil {
 		return "<nil>"
 	}
+	if a.Zone != "" {
+		return JoinHostPort(a.IP.String()+"%"+a.Zone, itoa(a.Port))
+	}
 	return JoinHostPort(a.IP.String(), itoa(a.Port))
 }
 
-// ResolveTCPAddr parses addr as a TCP address of the form
-// host:port and resolves domain names or port names to
-// numeric addresses on the network net, which must be "tcp",
-// "tcp4" or "tcp6".  A literal IPv6 host address must be
-// enclosed in square brackets, as in "[::]:80".
+// ResolveTCPAddr parses addr as a TCP address of the form "host:port"
+// or "[ipv6-host%zone]:port" and resolves a pair of domain name and
+// port name on the network net, which must be "tcp", "tcp4" or
+// "tcp6".  A literal address or host name for IPv6 must be enclosed
+// in square brackets, as in "[::1]:80", "[ipv6-host]:http" or
+// "[ipv6-host%zone]:80".
 func ResolveTCPAddr(net, addr string) (*TCPAddr, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_plan9.go gcc-4.8.1/libgo/go/net/tcpsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/tcpsock_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/tcpsock_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// TCP sockets for Plan 9
-
 package net
 
 import (
@@ -89,7 +87,7 @@
 	switch net {
 	case "tcp", "tcp4", "tcp6":
 	default:
-		return nil, UnknownNetworkError(net)
+		return nil, &OpError{"dial", net, raddr, UnknownNetworkError(net)}
 	}
 	if raddr == nil {
 		return nil, &OpError{"dial", net, nil, errMissingAddress}
@@ -98,7 +96,7 @@
 	if err != nil {
 		return nil, err
 	}
-	return &TCPConn{conn{fd}}, nil
+	return newTCPConn(fd), nil
 }
 
 // TCPListener is a TCP network listener.  Clients should typically
@@ -141,7 +139,7 @@
 	}
 	if _, err := l.fd.ctl.WriteString("hangup"); err != nil {
 		l.fd.ctl.Close()
-		return err
+		return &OpError{"close", l.fd.ctl.Name(), l.fd.laddr, err}
 	}
 	return l.fd.ctl.Close()
 }
@@ -161,17 +159,21 @@
 // File returns a copy of the underlying os.File, set to blocking
 // mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
-func (l *TCPListener) File() (f *os.File, err error) { return l.fd.dup() }
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
+func (l *TCPListener) File() (f *os.File, err error) { return l.dup() }
 
 // ListenTCP announces on the TCP address laddr and returns a TCP
 // listener.  Net must be "tcp", "tcp4", or "tcp6".  If laddr has a
-// port of 0, it means to listen on some available port.  The caller
-// can use l.Addr() to retrieve the chosen address.
+// port of 0, ListenTCP will choose an available port.  The caller can
+// use the Addr method of TCPListener to retrieve the chosen address.
 func ListenTCP(net string, laddr *TCPAddr) (*TCPListener, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
 	default:
-		return nil, UnknownNetworkError(net)
+		return nil, &OpError{"listen", net, laddr, UnknownNetworkError(net)}
 	}
 	if laddr == nil {
 		laddr = &TCPAddr{}
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcpsock_posix.go gcc-4.8.1/libgo/go/net/tcpsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/tcpsock_posix.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/tcpsock_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// TCP sockets
-
 package net
 
 import (
@@ -58,8 +56,8 @@
 	return a
 }
 
-// TCPConn is an implementation of the Conn interface
-// for TCP network connections.
+// TCPConn is an implementation of the Conn interface for TCP network
+// connections.
 type TCPConn struct {
 	conn
 }
@@ -96,17 +94,17 @@
 	return c.fd.CloseWrite()
 }
 
-// SetLinger sets the behavior of Close() on a connection
-// which still has data waiting to be sent or to be acknowledged.
+// SetLinger sets the behavior of Close() on a connection which still
+// has data waiting to be sent or to be acknowledged.
 //
-// If sec < 0 (the default), Close returns immediately and
-// the operating system finishes sending the data in the background.
+// If sec < 0 (the default), Close returns immediately and the
+// operating system finishes sending the data in the background.
 //
 // If sec == 0, Close returns immediately and the operating system
 // discards any unsent or unacknowledged data.
 //
-// If sec > 0, Close blocks for at most sec seconds waiting for
-// data to be sent and acknowledged.
+// If sec > 0, Close blocks for at most sec seconds waiting for data
+// to be sent and acknowledged.
 func (c *TCPConn) SetLinger(sec int) error {
 	if !c.ok() {
 		return syscall.EINVAL
@@ -124,9 +122,9 @@
 }
 
 // SetNoDelay controls whether the operating system should delay
-// packet transmission in hopes of sending fewer packets
-// (Nagle's algorithm).  The default is true (no delay), meaning
-// that data is sent as soon as possible after a Write.
+// packet transmission in hopes of sending fewer packets (Nagle's
+// algorithm).  The default is true (no delay), meaning that data is
+// sent as soon as possible after a Write.
 func (c *TCPConn) SetNoDelay(noDelay bool) error {
 	if !c.ok() {
 		return syscall.EINVAL
@@ -135,8 +133,8 @@
 }
 
 // DialTCP connects to the remote address raddr on the network net,
-// which must be "tcp", "tcp4", or "tcp6".  If laddr is not nil, it is used
-// as the local address for the connection.
+// which must be "tcp", "tcp4", or "tcp6".  If laddr is not nil, it is
+// used as the local address for the connection.
 func DialTCP(net string, laddr, raddr *TCPAddr) (*TCPConn, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
@@ -216,16 +214,15 @@
 	return ok && e.Err == syscall.EADDRNOTAVAIL
 }
 
-// TCPListener is a TCP network listener.
-// Clients should typically use variables of type Listener
-// instead of assuming TCP.
+// TCPListener is a TCP network listener.  Clients should typically
+// use variables of type Listener instead of assuming TCP.
 type TCPListener struct {
 	fd *netFD
 }
 
-// AcceptTCP accepts the next incoming call and returns the new connection
-// and the remote address.
-func (l *TCPListener) AcceptTCP() (c *TCPConn, err error) {
+// AcceptTCP accepts the next incoming call and returns the new
+// connection and the remote address.
+func (l *TCPListener) AcceptTCP() (*TCPConn, error) {
 	if l == nil || l.fd == nil {
 		return nil, syscall.EINVAL
 	}
@@ -236,14 +233,14 @@
 	return newTCPConn(fd), nil
 }
 
-// Accept implements the Accept method in the Listener interface;
-// it waits for the next call and returns a generic Conn.
-func (l *TCPListener) Accept() (c Conn, err error) {
-	c1, err := l.AcceptTCP()
+// Accept implements the Accept method in the Listener interface; it
+// waits for the next call and returns a generic Conn.
+func (l *TCPListener) Accept() (Conn, error) {
+	c, err := l.AcceptTCP()
 	if err != nil {
 		return nil, err
 	}
-	return c1, nil
+	return c, nil
 }
 
 // Close stops listening on the TCP address.
@@ -267,15 +264,19 @@
 	return setDeadline(l.fd, t)
 }
 
-// File returns a copy of the underlying os.File, set to blocking mode.
-// It is the caller's responsibility to close f when finished.
+// File returns a copy of the underlying os.File, set to blocking
+// mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
 func (l *TCPListener) File() (f *os.File, err error) { return l.fd.dup() }
 
-// ListenTCP announces on the TCP address laddr and returns a TCP listener.
-// Net must be "tcp", "tcp4", or "tcp6".
-// If laddr has a port of 0, it means to listen on some available port.
-// The caller can use l.Addr() to retrieve the chosen address.
+// ListenTCP announces on the TCP address laddr and returns a TCP
+// listener.  Net must be "tcp", "tcp4", or "tcp6".  If laddr has a
+// port of 0, ListenTCP will choose an available port.  The caller can
+// use the Addr method of TCPListener to retrieve the chosen address.
 func ListenTCP(net string, laddr *TCPAddr) (*TCPListener, error) {
 	switch net {
 	case "tcp", "tcp4", "tcp6":
@@ -291,7 +292,7 @@
 	}
 	err = syscall.Listen(fd.sysfd, listenerBacklog)
 	if err != nil {
-		closesocket(fd.sysfd)
+		fd.Close()
 		return nil, &OpError{"listen", net, laddr, err}
 	}
 	return &TCPListener{fd}, nil
diff -Naur gcc-4.8.1.orig/libgo/go/net/tcp_test.go gcc-4.8.1/libgo/go/net/tcp_test.go
--- gcc-4.8.1.orig/libgo/go/net/tcp_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/tcp_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,29 +5,58 @@
 package net
 
 import (
+	"fmt"
 	"reflect"
 	"runtime"
 	"testing"
 	"time"
 )
 
-func BenchmarkTCPOneShot(b *testing.B) {
-	benchmarkTCP(b, false, false)
+func BenchmarkTCP4OneShot(b *testing.B) {
+	benchmarkTCP(b, false, false, "127.0.0.1:0")
 }
 
-func BenchmarkTCPOneShotTimeout(b *testing.B) {
-	benchmarkTCP(b, false, true)
+func BenchmarkTCP4OneShotTimeout(b *testing.B) {
+	benchmarkTCP(b, false, true, "127.0.0.1:0")
 }
 
-func BenchmarkTCPPersistent(b *testing.B) {
-	benchmarkTCP(b, true, false)
+func BenchmarkTCP4Persistent(b *testing.B) {
+	benchmarkTCP(b, true, false, "127.0.0.1:0")
 }
 
-func BenchmarkTCPPersistentTimeout(b *testing.B) {
-	benchmarkTCP(b, true, true)
+func BenchmarkTCP4PersistentTimeout(b *testing.B) {
+	benchmarkTCP(b, true, true, "127.0.0.1:0")
 }
 
-func benchmarkTCP(b *testing.B, persistent, timeout bool) {
+func BenchmarkTCP6OneShot(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, false, false, "[::1]:0")
+}
+
+func BenchmarkTCP6OneShotTimeout(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, false, true, "[::1]:0")
+}
+
+func BenchmarkTCP6Persistent(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, true, false, "[::1]:0")
+}
+
+func BenchmarkTCP6PersistentTimeout(b *testing.B) {
+	if !supportsIPv6 {
+		b.Skip("ipv6 is not supported")
+	}
+	benchmarkTCP(b, true, true, "[::1]:0")
+}
+
+func benchmarkTCP(b *testing.B, persistent, timeout bool, laddr string) {
 	const msgLen = 512
 	conns := b.N
 	numConcurrent := runtime.GOMAXPROCS(-1) * 16
@@ -61,7 +90,7 @@
 		}
 		return true
 	}
-	ln, err := Listen("tcp", "127.0.0.1:0")
+	ln, err := Listen("tcp", laddr)
 	if err != nil {
 		b.Fatalf("Listen failed: %v", err)
 	}
@@ -118,24 +147,39 @@
 	}
 }
 
-var resolveTCPAddrTests = []struct {
+type resolveTCPAddrTest struct {
 	net     string
 	litAddr string
 	addr    *TCPAddr
 	err     error
-}{
+}
+
+var resolveTCPAddrTests = []resolveTCPAddrTest{
 	{"tcp", "127.0.0.1:0", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil},
 	{"tcp4", "127.0.0.1:65535", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 65535}, nil},
 
 	{"tcp", "[::1]:1", &TCPAddr{IP: ParseIP("::1"), Port: 1}, nil},
 	{"tcp6", "[::1]:65534", &TCPAddr{IP: ParseIP("::1"), Port: 65534}, nil},
 
+	{"tcp", "[::1%en0]:1", &TCPAddr{IP: ParseIP("::1"), Port: 1, Zone: "en0"}, nil},
+	{"tcp6", "[::1%911]:2", &TCPAddr{IP: ParseIP("::1"), Port: 2, Zone: "911"}, nil},
+
 	{"", "127.0.0.1:0", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil}, // Go 1.0 behavior
 	{"", "[::1]:0", &TCPAddr{IP: ParseIP("::1"), Port: 0}, nil},         // Go 1.0 behavior
 
 	{"http", "127.0.0.1:0", nil, UnknownNetworkError("http")},
 }
 
+func init() {
+	if ifi := loopbackInterface(); ifi != nil {
+		index := fmt.Sprintf("%v", ifi.Index)
+		resolveTCPAddrTests = append(resolveTCPAddrTests, []resolveTCPAddrTest{
+			{"tcp6", "[fe80::1%" + ifi.Name + "]:3", &TCPAddr{IP: ParseIP("fe80::1"), Port: 3, Zone: zoneToString(ifi.Index)}, nil},
+			{"tcp6", "[fe80::1%" + index + "]:4", &TCPAddr{IP: ParseIP("fe80::1"), Port: 4, Zone: index}, nil},
+		}...)
+	}
+}
+
 func TestResolveTCPAddr(t *testing.T) {
 	for _, tt := range resolveTCPAddrTests {
 		addr, err := ResolveTCPAddr(tt.net, tt.litAddr)
@@ -165,14 +209,88 @@
 	for _, tt := range tcpListenerNameTests {
 		ln, err := ListenTCP(tt.net, tt.laddr)
 		if err != nil {
-			t.Errorf("ListenTCP failed: %v", err)
-			return
+			t.Fatalf("ListenTCP failed: %v", err)
 		}
 		defer ln.Close()
 		la := ln.Addr()
 		if a, ok := la.(*TCPAddr); !ok || a.Port == 0 {
-			t.Errorf("got %v; expected a proper address with non-zero port number", la)
-			return
+			t.Fatalf("got %v; expected a proper address with non-zero port number", la)
+		}
+	}
+}
+
+func TestIPv6LinkLocalUnicastTCP(t *testing.T) {
+	if testing.Short() || !*testExternal {
+		t.Skip("skipping test to avoid external network")
+	}
+	if !supportsIPv6 {
+		t.Skip("ipv6 is not supported")
+	}
+	ifi := loopbackInterface()
+	if ifi == nil {
+		t.Skip("loopback interface not found")
+	}
+	laddr := ipv6LinkLocalUnicastAddr(ifi)
+	if laddr == "" {
+		t.Skip("ipv6 unicast address on loopback not found")
+	}
+
+	type test struct {
+		net, addr  string
+		nameLookup bool
+	}
+	var tests = []test{
+		{"tcp", "[" + laddr + "%" + ifi.Name + "]:0", false},
+		{"tcp6", "[" + laddr + "%" + ifi.Name + "]:0", false},
+	}
+	switch runtime.GOOS {
+	case "darwin", "freebsd", "opensbd", "netbsd":
+		tests = append(tests, []test{
+			{"tcp", "[localhost%" + ifi.Name + "]:0", true},
+			{"tcp6", "[localhost%" + ifi.Name + "]:0", true},
+		}...)
+	case "linux":
+		tests = append(tests, []test{
+			{"tcp", "[ip6-localhost%" + ifi.Name + "]:0", true},
+			{"tcp6", "[ip6-localhost%" + ifi.Name + "]:0", true},
+		}...)
+	}
+	for _, tt := range tests {
+		ln, err := Listen(tt.net, tt.addr)
+		if err != nil {
+			// It might return "LookupHost returned no
+			// suitable address" error on some platforms.
+			t.Logf("Listen failed: %v", err)
+			continue
 		}
+		defer ln.Close()
+		if la, ok := ln.Addr().(*TCPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+
+		done := make(chan int)
+		go transponder(t, ln, done)
+
+		c, err := Dial(tt.net, ln.Addr().String())
+		if err != nil {
+			t.Fatalf("Dial failed: %v", err)
+		}
+		defer c.Close()
+		if la, ok := c.LocalAddr().(*TCPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+		if ra, ok := c.RemoteAddr().(*TCPAddr); !ok || !tt.nameLookup && ra.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", ra)
+		}
+
+		if _, err := c.Write([]byte("TCP OVER IPV6 LINKLOCAL TEST")); err != nil {
+			t.Fatalf("Conn.Write failed: %v", err)
+		}
+		b := make([]byte, 32)
+		if _, err := c.Read(b); err != nil {
+			t.Fatalf("Conn.Read failed: %v", err)
+		}
+
+		<-done
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader.go gcc-4.8.1/libgo/go/net/textproto/reader.go
--- gcc-4.8.1.orig/libgo/go/net/textproto/reader.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/textproto/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -128,6 +128,17 @@
 		return line, nil
 	}
 
+	// Optimistically assume that we have started to buffer the next line
+	// and it starts with an ASCII letter (the next header key), so we can
+	// avoid copying that buffered data around in memory and skipping over
+	// non-existent whitespace.
+	if r.R.Buffered() > 1 {
+		peek, err := r.R.Peek(1)
+		if err == nil && isASCIILetter(peek[0]) {
+			return trim(line), nil
+		}
+	}
+
 	// ReadByte or the next readLineSlice will flush the read buffer;
 	// copy the slice into buf.
 	r.buf = append(r.buf[:0], trim(line)...)
@@ -445,7 +456,7 @@
 //	}
 //
 func (r *Reader) ReadMIMEHeader() (MIMEHeader, error) {
-	m := make(MIMEHeader)
+	m := make(MIMEHeader, 4)
 	for {
 		kv, err := r.readContinuedLineSlice()
 		if len(kv) == 0 {
@@ -478,7 +489,6 @@
 			return m, err
 		}
 	}
-	panic("unreachable")
 }
 
 // CanonicalMIMEHeaderKey returns the canonical format of the
@@ -564,6 +574,7 @@
 	"Content-Length",
 	"Content-Transfer-Encoding",
 	"Content-Type",
+	"Cookie",
 	"Date",
 	"Dkim-Signature",
 	"Etag",
diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/reader_test.go gcc-4.8.1/libgo/go/net/textproto/reader_test.go
--- gcc-4.8.1.orig/libgo/go/net/textproto/reader_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/textproto/reader_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -290,6 +290,7 @@
 `, "\n", "\r\n", -1)
 
 func BenchmarkReadMIMEHeader(b *testing.B) {
+	b.ReportAllocs()
 	var buf bytes.Buffer
 	br := bufio.NewReader(&buf)
 	r := NewReader(br)
@@ -319,6 +320,7 @@
 }
 
 func BenchmarkUncommon(b *testing.B) {
+	b.ReportAllocs()
 	var buf bytes.Buffer
 	br := bufio.NewReader(&buf)
 	r := NewReader(br)
diff -Naur gcc-4.8.1.orig/libgo/go/net/textproto/textproto.go gcc-4.8.1/libgo/go/net/textproto/textproto.go
--- gcc-4.8.1.orig/libgo/go/net/textproto/textproto.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/net/textproto/textproto.go	2013-07-16 01:55:04.520470000 -0500
@@ -147,3 +147,8 @@
 func isASCIISpace(b byte) bool {
 	return b == ' ' || b == '\t' || b == '\n' || b == '\r'
 }
+
+func isASCIILetter(b byte) bool {
+	b |= 0x20 // make lower case
+	return 'a' <= b && b <= 'z'
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/timeout_test.go gcc-4.8.1/libgo/go/net/timeout_test.go
--- gcc-4.8.1.orig/libgo/go/net/timeout_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/timeout_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -420,6 +420,11 @@
 }
 
 func testVariousDeadlines(t *testing.T, maxProcs int) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
 	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(maxProcs))
 	ln := newLocalListener(t)
 	defer ln.Close()
@@ -518,11 +523,16 @@
 // TestReadDeadlineDataAvailable tests that read deadlines work, even
 // if there's data ready to be read.
 func TestReadDeadlineDataAvailable(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
 	ln := newLocalListener(t)
 	defer ln.Close()
 
 	servec := make(chan copyRes)
-	const msg = "data client shouldn't read, even though it it'll be waiting"
+	const msg = "data client shouldn't read, even though it'll be waiting"
 	go func() {
 		c, err := ln.Accept()
 		if err != nil {
@@ -552,6 +562,11 @@
 // TestWriteDeadlineBufferAvailable tests that write deadlines work, even
 // if there's buffer space available to write.
 func TestWriteDeadlineBufferAvailable(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
 	ln := newLocalListener(t)
 	defer ln.Close()
 
@@ -581,6 +596,64 @@
 	}
 }
 
+// TestAcceptDeadlineConnectionAvailable tests that accept deadlines work, even
+// if there's incoming connections available.
+func TestAcceptDeadlineConnectionAvailable(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	ln := newLocalListener(t).(*TCPListener)
+	defer ln.Close()
+
+	go func() {
+		c, err := Dial("tcp", ln.Addr().String())
+		if err != nil {
+			t.Fatalf("Dial: %v", err)
+		}
+		defer c.Close()
+		var buf [1]byte
+		c.Read(buf[:]) // block until the connection or listener is closed
+	}()
+	time.Sleep(10 * time.Millisecond)
+	ln.SetDeadline(time.Now().Add(-5 * time.Second)) // in the past
+	c, err := ln.Accept()
+	if err == nil {
+		defer c.Close()
+	}
+	if !isTimeout(err) {
+		t.Fatalf("Accept: got %v; want timeout", err)
+	}
+}
+
+// TestConnectDeadlineInThePast tests that connect deadlines work, even
+// if the connection can be established w/o blocking.
+func TestConnectDeadlineInThePast(t *testing.T) {
+	switch runtime.GOOS {
+	case "plan9":
+		t.Skipf("skipping test on %q", runtime.GOOS)
+	}
+
+	ln := newLocalListener(t).(*TCPListener)
+	defer ln.Close()
+
+	go func() {
+		c, err := ln.Accept()
+		if err == nil {
+			defer c.Close()
+		}
+	}()
+	time.Sleep(10 * time.Millisecond)
+	c, err := DialTimeout("tcp", ln.Addr().String(), -5*time.Second) // in the past
+	if err == nil {
+		defer c.Close()
+	}
+	if !isTimeout(err) {
+		t.Fatalf("DialTimeout: got %v; want timeout", err)
+	}
+}
+
 // TestProlongTimeout tests concurrent deadline modification.
 // Known to cause data races in the past.
 func TestProlongTimeout(t *testing.T) {
diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock.go gcc-4.8.1/libgo/go/net/udpsock.go
--- gcc-4.8.1.orig/libgo/go/net/udpsock.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/udpsock.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// UDP sockets
-
 package net
 
 import "errors"
@@ -24,14 +22,18 @@
 	if a == nil {
 		return "<nil>"
 	}
+	if a.Zone != "" {
+		return JoinHostPort(a.IP.String()+"%"+a.Zone, itoa(a.Port))
+	}
 	return JoinHostPort(a.IP.String(), itoa(a.Port))
 }
 
-// ResolveUDPAddr parses addr as a UDP address of the form
-// host:port and resolves domain names or port names to
-// numeric addresses on the network net, which must be "udp",
-// "udp4" or "udp6".  A literal IPv6 host address must be
-// enclosed in square brackets, as in "[::]:80".
+// ResolveUDPAddr parses addr as a UDP address of the form "host:port"
+// or "[ipv6-host%zone]:port" and resolves a pair of domain name and
+// port name on the network net, which must be "udp", "udp4" or
+// "udp6".  A literal address or host name for IPv6 must be enclosed
+// in square brackets, as in "[::1]:80", "[ipv6-host]:http" or
+// "[ipv6-host%zone]:80".
 func ResolveUDPAddr(net, addr string) (*UDPAddr, error) {
 	switch net {
 	case "udp", "udp4", "udp6":
diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_plan9.go gcc-4.8.1/libgo/go/net/udpsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/udpsock_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/udpsock_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// UDP sockets for Plan 9
-
 package net
 
 import (
@@ -13,12 +11,14 @@
 	"time"
 )
 
-// UDPConn is the implementation of the Conn and PacketConn
-// interfaces for UDP network connections.
+// UDPConn is the implementation of the Conn and PacketConn interfaces
+// for UDP network connections.
 type UDPConn struct {
 	conn
 }
 
+func newUDPConn(fd *netFD) *UDPConn { return &UDPConn{conn{fd}} }
+
 // ReadFromUDP reads a UDP packet from c, copying the payload into b.
 // It returns the number of bytes copied into b and the return address
 // that was on the packet.
@@ -27,15 +27,9 @@
 // Timeout() == true after a fixed time limit; see SetDeadline and
 // SetReadDeadline.
 func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err error) {
-	if !c.ok() {
+	if !c.ok() || c.fd.data == nil {
 		return 0, nil, syscall.EINVAL
 	}
-	if c.fd.data == nil {
-		c.fd.data, err = os.OpenFile(c.fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, nil, err
-		}
-	}
 	buf := make([]byte, udpHeaderSize+len(b))
 	m, err := c.fd.data.Read(buf)
 	if err != nil {
@@ -60,7 +54,7 @@
 }
 
 // ReadMsgUDP reads a packet from c, copying the payload into b and
-// the associdated out-of-band data into oob.  It returns the number
+// the associated out-of-band data into oob.  It returns the number
 // of bytes copied into b, the number of bytes copied into oob, the
 // flags that were set on the packet and the source address of the
 // packet.
@@ -76,16 +70,9 @@
 // SetWriteDeadline.  On packet-oriented connections, write timeouts
 // are rare.
 func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (int, error) {
-	if !c.ok() {
+	if !c.ok() || c.fd.data == nil {
 		return 0, syscall.EINVAL
 	}
-	if c.fd.data == nil {
-		f, err := os.OpenFile(c.fd.dir+"/data", os.O_RDWR, 0)
-		if err != nil {
-			return 0, err
-		}
-		c.fd.data = f
-	}
 	h := new(udpHeader)
 	h.raddr = addr.IP.To16()
 	h.laddr = c.fd.laddr.(*UDPAddr).IP.To16()
@@ -141,7 +128,7 @@
 	if err != nil {
 		return nil, err
 	}
-	return &UDPConn{conn{fd}}, nil
+	return newUDPConn(fd), nil
 }
 
 const udpHeaderSize = 16*3 + 2*2
@@ -173,7 +160,10 @@
 }
 
 // ListenUDP listens for incoming UDP packets addressed to the local
-// address laddr.  The returned connection c's ReadFrom and WriteTo
+// address laddr.  Net must be "udp", "udp4", or "udp6".  If laddr has
+// a port of 0, ListenUDP will choose an available port.
+// The LocalAddr method of the returned UDPConn can be used to
+// discover the port.  The returned connection's ReadFrom and WriteTo
 // methods can be used to receive and send UDP packets with per-packet
 // addressing.
 func ListenUDP(net string, laddr *UDPAddr) (*UDPConn, error) {
@@ -193,7 +183,11 @@
 	if err != nil {
 		return nil, err
 	}
-	return &UDPConn{conn{l.netFD()}}, nil
+	l.data, err = os.OpenFile(l.dir+"/data", os.O_RDWR, 0)
+	if err != nil {
+		return nil, err
+	}
+	return newUDPConn(l.netFD()), nil
 }
 
 // ListenMulticastUDP listens for incoming multicast UDP packets
diff -Naur gcc-4.8.1.orig/libgo/go/net/udpsock_posix.go gcc-4.8.1/libgo/go/net/udpsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/udpsock_posix.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/udpsock_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// UDP sockets for POSIX
-
 package net
 
 import (
@@ -51,8 +49,8 @@
 	return a
 }
 
-// UDPConn is the implementation of the Conn and PacketConn
-// interfaces for UDP network connections.
+// UDPConn is the implementation of the Conn and PacketConn interfaces
+// for UDP network connections.
 type UDPConn struct {
 	conn
 }
@@ -63,8 +61,9 @@
 // It returns the number of bytes copied into b and the return address
 // that was on the packet.
 //
-// ReadFromUDP can be made to time out and return an error with Timeout() == true
-// after a fixed time limit; see SetDeadline and SetReadDeadline.
+// ReadFromUDP can be made to time out and return an error with
+// Timeout() == true after a fixed time limit; see SetDeadline and
+// SetReadDeadline.
 func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err error) {
 	if !c.ok() {
 		return 0, nil, syscall.EINVAL
@@ -89,7 +88,7 @@
 }
 
 // ReadMsgUDP reads a packet from c, copying the payload into b and
-// the associdated out-of-band data into oob.  It returns the number
+// the associated out-of-band data into oob.  It returns the number
 // of bytes copied into b, the number of bytes copied into oob, the
 // flags that were set on the packet and the source address of the
 // packet.
@@ -108,12 +107,13 @@
 	return
 }
 
-// WriteToUDP writes a UDP packet to addr via c, copying the payload from b.
+// WriteToUDP writes a UDP packet to addr via c, copying the payload
+// from b.
 //
-// WriteToUDP can be made to time out and return
-// an error with Timeout() == true after a fixed time limit;
-// see SetDeadline and SetWriteDeadline.
-// On packet-oriented connections, write timeouts are rare.
+// WriteToUDP can be made to time out and return an error with
+// Timeout() == true after a fixed time limit; see SetDeadline and
+// SetWriteDeadline.  On packet-oriented connections, write timeouts
+// are rare.
 func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (int, error) {
 	if !c.ok() {
 		return 0, syscall.EINVAL
@@ -158,8 +158,8 @@
 }
 
 // DialUDP connects to the remote address raddr on the network net,
-// which must be "udp", "udp4", or "udp6".  If laddr is not nil, it is used
-// as the local address for the connection.
+// which must be "udp", "udp4", or "udp6".  If laddr is not nil, it is
+// used as the local address for the connection.
 func DialUDP(net string, laddr, raddr *UDPAddr) (*UDPConn, error) {
 	return dialUDP(net, laddr, raddr, noDeadline)
 }
@@ -180,10 +180,13 @@
 	return newUDPConn(fd), nil
 }
 
-// ListenUDP listens for incoming UDP packets addressed to the
-// local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send UDP
-// packets with per-packet addressing.
+// ListenUDP listens for incoming UDP packets addressed to the local
+// address laddr.  Net must be "udp", "udp4", or "udp6".  If laddr has
+// a port of 0, ListenUDP will choose an available port.
+// The LocalAddr method of the returned UDPConn can be used to
+// discover the port.  The returned connection's ReadFrom and WriteTo
+// methods can be used to receive and send UDP packets with per-packet
+// addressing.
 func ListenUDP(net string, laddr *UDPAddr) (*UDPConn, error) {
 	switch net {
 	case "udp", "udp4", "udp6":
@@ -201,9 +204,9 @@
 }
 
 // ListenMulticastUDP listens for incoming multicast UDP packets
-// addressed to the group address gaddr on ifi, which specifies
-// the interface to join.  ListenMulticastUDP uses default
-// multicast interface if ifi is nil.
+// addressed to the group address gaddr on ifi, which specifies the
+// interface to join.  ListenMulticastUDP uses default multicast
+// interface if ifi is nil.
 func ListenMulticastUDP(net string, ifi *Interface, gaddr *UDPAddr) (*UDPConn, error) {
 	switch net {
 	case "udp", "udp4", "udp6":
diff -Naur gcc-4.8.1.orig/libgo/go/net/udp_test.go gcc-4.8.1/libgo/go/net/udp_test.go
--- gcc-4.8.1.orig/libgo/go/net/udp_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/udp_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,29 +5,45 @@
 package net
 
 import (
+	"fmt"
 	"reflect"
 	"runtime"
 	"testing"
 )
 
-var resolveUDPAddrTests = []struct {
+type resolveUDPAddrTest struct {
 	net     string
 	litAddr string
 	addr    *UDPAddr
 	err     error
-}{
+}
+
+var resolveUDPAddrTests = []resolveUDPAddrTest{
 	{"udp", "127.0.0.1:0", &UDPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil},
 	{"udp4", "127.0.0.1:65535", &UDPAddr{IP: IPv4(127, 0, 0, 1), Port: 65535}, nil},
 
 	{"udp", "[::1]:1", &UDPAddr{IP: ParseIP("::1"), Port: 1}, nil},
 	{"udp6", "[::1]:65534", &UDPAddr{IP: ParseIP("::1"), Port: 65534}, nil},
 
+	{"udp", "[::1%en0]:1", &UDPAddr{IP: ParseIP("::1"), Port: 1, Zone: "en0"}, nil},
+	{"udp6", "[::1%911]:2", &UDPAddr{IP: ParseIP("::1"), Port: 2, Zone: "911"}, nil},
+
 	{"", "127.0.0.1:0", &UDPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil}, // Go 1.0 behavior
 	{"", "[::1]:0", &UDPAddr{IP: ParseIP("::1"), Port: 0}, nil},         // Go 1.0 behavior
 
 	{"sip", "127.0.0.1:0", nil, UnknownNetworkError("sip")},
 }
 
+func init() {
+	if ifi := loopbackInterface(); ifi != nil {
+		index := fmt.Sprintf("%v", ifi.Index)
+		resolveUDPAddrTests = append(resolveUDPAddrTests, []resolveUDPAddrTest{
+			{"udp6", "[fe80::1%" + ifi.Name + "]:3", &UDPAddr{IP: ParseIP("fe80::1"), Port: 3, Zone: zoneToString(ifi.Index)}, nil},
+			{"udp6", "[fe80::1%" + index + "]:4", &UDPAddr{IP: ParseIP("fe80::1"), Port: 4, Zone: index}, nil},
+		}...)
+	}
+}
+
 func TestResolveUDPAddr(t *testing.T) {
 	for _, tt := range resolveUDPAddrTests {
 		addr, err := ResolveUDPAddr(tt.net, tt.litAddr)
@@ -135,14 +151,125 @@
 	for _, tt := range udpConnLocalNameTests {
 		c, err := ListenUDP(tt.net, tt.laddr)
 		if err != nil {
-			t.Errorf("ListenUDP failed: %v", err)
-			return
+			t.Fatalf("ListenUDP failed: %v", err)
 		}
 		defer c.Close()
 		la := c.LocalAddr()
 		if a, ok := la.(*UDPAddr); !ok || a.Port == 0 {
-			t.Errorf("got %v; expected a proper address with non-zero port number", la)
-			return
+			t.Fatalf("got %v; expected a proper address with non-zero port number", la)
+		}
+	}
+}
+
+func TestUDPConnLocalAndRemoteNames(t *testing.T) {
+	for _, laddr := range []string{"", "127.0.0.1:0"} {
+		c1, err := ListenPacket("udp", "127.0.0.1:0")
+		if err != nil {
+			t.Fatalf("ListenUDP failed: %v", err)
+		}
+		defer c1.Close()
+
+		var la *UDPAddr
+		if laddr != "" {
+			var err error
+			if la, err = ResolveUDPAddr("udp", laddr); err != nil {
+				t.Fatalf("ResolveUDPAddr failed: %v", err)
+			}
+		}
+		c2, err := DialUDP("udp", la, c1.LocalAddr().(*UDPAddr))
+		if err != nil {
+			t.Fatalf("DialUDP failed: %v", err)
+		}
+		defer c2.Close()
+
+		var connAddrs = [4]struct {
+			got Addr
+			ok  bool
+		}{
+			{c1.LocalAddr(), true},
+			{c1.(*UDPConn).RemoteAddr(), false},
+			{c2.LocalAddr(), true},
+			{c2.RemoteAddr(), true},
+		}
+		for _, ca := range connAddrs {
+			if a, ok := ca.got.(*UDPAddr); ok != ca.ok || ok && a.Port == 0 {
+				t.Fatalf("got %v; expected a proper address with non-zero port number", ca.got)
+			}
+		}
+	}
+}
+
+func TestIPv6LinkLocalUnicastUDP(t *testing.T) {
+	if testing.Short() || !*testExternal {
+		t.Skip("skipping test to avoid external network")
+	}
+	if !supportsIPv6 {
+		t.Skip("ipv6 is not supported")
+	}
+	ifi := loopbackInterface()
+	if ifi == nil {
+		t.Skip("loopback interface not found")
+	}
+	laddr := ipv6LinkLocalUnicastAddr(ifi)
+	if laddr == "" {
+		t.Skip("ipv6 unicast address on loopback not found")
+	}
+
+	type test struct {
+		net, addr  string
+		nameLookup bool
+	}
+	var tests = []test{
+		{"udp", "[" + laddr + "%" + ifi.Name + "]:0", false},
+		{"udp6", "[" + laddr + "%" + ifi.Name + "]:0", false},
+	}
+	switch runtime.GOOS {
+	case "darwin", "freebsd", "openbsd", "netbsd":
+		tests = append(tests, []test{
+			{"udp", "[localhost%" + ifi.Name + "]:0", true},
+			{"udp6", "[localhost%" + ifi.Name + "]:0", true},
+		}...)
+	case "linux":
+		tests = append(tests, []test{
+			{"udp", "[ip6-localhost%" + ifi.Name + "]:0", true},
+			{"udp6", "[ip6-localhost%" + ifi.Name + "]:0", true},
+		}...)
+	}
+	for _, tt := range tests {
+		c1, err := ListenPacket(tt.net, tt.addr)
+		if err != nil {
+			// It might return "LookupHost returned no
+			// suitable address" error on some platforms.
+			t.Logf("ListenPacket failed: %v", err)
+			continue
+		}
+		defer c1.Close()
+		if la, ok := c1.LocalAddr().(*UDPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+
+		c2, err := Dial(tt.net, c1.LocalAddr().String())
+		if err != nil {
+			t.Fatalf("Dial failed: %v", err)
+		}
+		defer c2.Close()
+		if la, ok := c2.LocalAddr().(*UDPAddr); !ok || !tt.nameLookup && la.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", la)
+		}
+		if ra, ok := c2.RemoteAddr().(*UDPAddr); !ok || !tt.nameLookup && ra.Zone == "" {
+			t.Fatalf("got %v; expected a proper address with zone identifier", ra)
+		}
+
+		if _, err := c2.Write([]byte("UDP OVER IPV6 LINKLOCAL TEST")); err != nil {
+			t.Fatalf("Conn.Write failed: %v", err)
+		}
+		b := make([]byte, 32)
+		if _, from, err := c1.ReadFrom(b); err != nil {
+			t.Fatalf("PacketConn.ReadFrom failed: %v", err)
+		} else {
+			if ra, ok := from.(*UDPAddr); !ok || !tt.nameLookup && ra.Zone == "" {
+				t.Fatalf("got %v; expected a proper address with zone identifier", ra)
+			}
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/unicast_posix_test.go gcc-4.8.1/libgo/go/net/unicast_posix_test.go
--- gcc-4.8.1.orig/libgo/go/net/unicast_posix_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/unicast_posix_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -45,7 +45,7 @@
 // same port.
 func TestTCPListener(t *testing.T) {
 	switch runtime.GOOS {
-	case "plan9", "windows":
+	case "plan9":
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
@@ -69,65 +69,8 @@
 // same port.
 func TestUDPListener(t *testing.T) {
 	switch runtime.GOOS {
-	case "plan9", "windows":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-	}
-
-	toudpnet := func(net string) string {
-		switch net {
-		case "tcp":
-			return "udp"
-		case "tcp4":
-			return "udp4"
-		case "tcp6":
-			return "udp6"
-		}
-		return "<nil>"
-	}
-
-	for _, tt := range listenerTests {
-		if tt.wildcard && (testing.Short() || !*testExternal) {
-			continue
-		}
-		if tt.ipv6 && !supportsIPv6 {
-			continue
-		}
-		tt.net = toudpnet(tt.net)
-		l1, port := usableListenPacketPort(t, tt.net, tt.laddr)
-		checkFirstListener(t, tt.net, tt.laddr+":"+port, l1)
-		l2, err := ListenPacket(tt.net, tt.laddr+":"+port)
-		checkSecondListener(t, tt.net, tt.laddr+":"+port, err, l2)
-		l1.Close()
-	}
-}
-
-func TestSimpleTCPListener(t *testing.T) {
-	switch runtime.GOOS {
-	case "plan9":
-		t.Skipf("skipping test on %q", runtime.GOOS)
-		return
-	}
-
-	for _, tt := range listenerTests {
-		if tt.wildcard && (testing.Short() || !*testExternal) {
-			continue
-		}
-		if tt.ipv6 {
-			continue
-		}
-		l1, port := usableListenPort(t, tt.net, tt.laddr)
-		checkFirstListener(t, tt.net, tt.laddr+":"+port, l1)
-		l2, err := Listen(tt.net, tt.laddr+":"+port)
-		checkSecondListener(t, tt.net, tt.laddr+":"+port, err, l2)
-		l1.Close()
-	}
-}
-
-func TestSimpleUDPListener(t *testing.T) {
-	switch runtime.GOOS {
 	case "plan9":
 		t.Skipf("skipping test on %q", runtime.GOOS)
-		return
 	}
 
 	toudpnet := func(net string) string {
@@ -146,7 +89,7 @@
 		if tt.wildcard && (testing.Short() || !*testExternal) {
 			continue
 		}
-		if tt.ipv6 {
+		if tt.ipv6 && !supportsIPv6 {
 			continue
 		}
 		tt.net = toudpnet(tt.net)
@@ -231,7 +174,7 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 	if !supportsIPv6 {
-		return
+		t.Skip("ipv6 is not supported")
 	}
 
 	for _, tt := range dualStackListenerTests {
@@ -263,7 +206,7 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 	if !supportsIPv6 {
-		return
+		t.Skip("ipv6 is not supported")
 	}
 
 	toudpnet := func(net string) string {
diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock.go gcc-4.8.1/libgo/go/net/unixsock.go
--- gcc-4.8.1.orig/libgo/go/net/unixsock.go	2011-12-02 20:17:34.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/unixsock.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Unix domain sockets
-
 package net
 
 // UnixAddr represents the address of a Unix domain socket end point.
@@ -12,7 +10,8 @@
 	Net  string
 }
 
-// Network returns the address's network name, "unix" or "unixgram".
+// Network returns the address's network name, "unix", "unixgram" or
+// "unixpacket".
 func (a *UnixAddr) Network() string {
 	return a.Net
 }
@@ -36,11 +35,9 @@
 // "unixpacket".
 func ResolveUnixAddr(net, addr string) (*UnixAddr, error) {
 	switch net {
-	case "unix":
-	case "unixpacket":
-	case "unixgram":
+	case "unix", "unixgram", "unixpacket":
+		return &UnixAddr{Name: addr, Net: net}, nil
 	default:
 		return nil, UnknownNetworkError(net)
 	}
-	return &UnixAddr{addr, net}, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_plan9.go gcc-4.8.1/libgo/go/net/unixsock_plan9.go
--- gcc-4.8.1.orig/libgo/go/net/unixsock_plan9.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/unixsock_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// Unix domain sockets stubs for Plan 9
-
 package net
 
 import (
@@ -93,8 +91,7 @@
 type UnixListener struct{}
 
 // ListenUnix announces on the Unix domain socket laddr and returns a
-// Unix listener.  The network net must be "unix", "unixgram" or
-// "unixpacket".
+// Unix listener.  The network net must be "unix" or "unixpacket".
 func ListenUnix(net string, laddr *UnixAddr) (*UnixListener, error) {
 	return nil, syscall.EPLAN9
 }
@@ -129,14 +126,18 @@
 // File returns a copy of the underlying os.File, set to blocking
 // mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
 func (l *UnixListener) File() (*os.File, error) {
 	return nil, syscall.EPLAN9
 }
 
 // ListenUnixgram listens for incoming Unix datagram packets addressed
-// to the local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send packets with
-// per-packet addressing.  The network net must be "unixgram".
+// to the local address laddr.  The network net must be "unixgram".
+// The returned connection's ReadFrom and WriteTo methods can be used
+// to receive and send packets with per-packet addressing.
 func ListenUnixgram(net string, laddr *UnixAddr) (*UnixConn, error) {
 	return nil, syscall.EPLAN9
 }
diff -Naur gcc-4.8.1.orig/libgo/go/net/unixsock_posix.go gcc-4.8.1/libgo/go/net/unixsock_posix.go
--- gcc-4.8.1.orig/libgo/go/net/unixsock_posix.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/unixsock_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -4,8 +4,6 @@
 
 // +build darwin freebsd linux netbsd openbsd windows
 
-// Unix domain sockets
-
 package net
 
 import (
@@ -15,6 +13,13 @@
 	"time"
 )
 
+func (a *UnixAddr) isUnnamed() bool {
+	if a == nil || a.Name == "" {
+		return true
+	}
+	return false
+}
+
 func unixSocket(net string, laddr, raddr *UnixAddr, mode string, deadline time.Time) (*netFD, error) {
 	var sotype int
 	switch net {
@@ -31,12 +36,12 @@
 	var la, ra syscall.Sockaddr
 	switch mode {
 	case "dial":
-		if laddr != nil {
+		if !laddr.isUnnamed() {
 			la = &syscall.SockaddrUnix{Name: laddr.Name}
 		}
 		if raddr != nil {
 			ra = &syscall.SockaddrUnix{Name: raddr.Name}
-		} else if sotype != syscall.SOCK_DGRAM || laddr == nil {
+		} else if sotype != syscall.SOCK_DGRAM || laddr.isUnnamed() {
 			return nil, &OpError{Op: mode, Net: net, Err: errMissingAddress}
 		}
 	case "listen":
@@ -69,21 +74,21 @@
 
 func sockaddrToUnix(sa syscall.Sockaddr) Addr {
 	if s, ok := sa.(*syscall.SockaddrUnix); ok {
-		return &UnixAddr{s.Name, "unix"}
+		return &UnixAddr{Name: s.Name, Net: "unix"}
 	}
 	return nil
 }
 
 func sockaddrToUnixgram(sa syscall.Sockaddr) Addr {
 	if s, ok := sa.(*syscall.SockaddrUnix); ok {
-		return &UnixAddr{s.Name, "unixgram"}
+		return &UnixAddr{Name: s.Name, Net: "unixgram"}
 	}
 	return nil
 }
 
 func sockaddrToUnixpacket(sa syscall.Sockaddr) Addr {
 	if s, ok := sa.(*syscall.SockaddrUnix); ok {
-		return &UnixAddr{s.Name, "unixpacket"}
+		return &UnixAddr{Name: s.Name, Net: "unixpacket"}
 	}
 	return nil
 }
@@ -92,14 +97,13 @@
 	switch sotype {
 	case syscall.SOCK_STREAM:
 		return "unix"
-	case syscall.SOCK_SEQPACKET:
-		return "unixpacket"
 	case syscall.SOCK_DGRAM:
 		return "unixgram"
+	case syscall.SOCK_SEQPACKET:
+		return "unixpacket"
 	default:
 		panic("sotypeToNet unknown socket type")
 	}
-	return ""
 }
 
 // UnixConn is an implementation of the Conn interface for connections
@@ -124,18 +128,20 @@
 	n, sa, err := c.fd.ReadFrom(b)
 	switch sa := sa.(type) {
 	case *syscall.SockaddrUnix:
-		addr = &UnixAddr{sa.Name, sotypeToNet(c.fd.sotype)}
+		if sa.Name != "" {
+			addr = &UnixAddr{Name: sa.Name, Net: sotypeToNet(c.fd.sotype)}
+		}
 	}
 	return
 }
 
 // ReadFrom implements the PacketConn ReadFrom method.
-func (c *UnixConn) ReadFrom(b []byte) (n int, addr Addr, err error) {
+func (c *UnixConn) ReadFrom(b []byte) (int, Addr, error) {
 	if !c.ok() {
 		return 0, nil, syscall.EINVAL
 	}
-	n, uaddr, err := c.ReadFromUnix(b)
-	return n, uaddr.toAddr(), err
+	n, addr, err := c.ReadFromUnix(b)
+	return n, addr.toAddr(), err
 }
 
 // ReadMsgUnix reads a packet from c, copying the payload into b and
@@ -149,7 +155,9 @@
 	n, oobn, flags, sa, err := c.fd.ReadMsg(b, oob)
 	switch sa := sa.(type) {
 	case *syscall.SockaddrUnix:
-		addr = &UnixAddr{sa.Name, sotypeToNet(c.fd.sotype)}
+		if sa.Name != "" {
+			addr = &UnixAddr{Name: sa.Name, Net: sotypeToNet(c.fd.sotype)}
+		}
 	}
 	return
 }
@@ -247,11 +255,10 @@
 }
 
 // ListenUnix announces on the Unix domain socket laddr and returns a
-// Unix listener.  The network net must be "unix", "unixgram" or
-// "unixpacket".
+// Unix listener.  The network net must be "unix" or "unixpacket".
 func ListenUnix(net string, laddr *UnixAddr) (*UnixListener, error) {
 	switch net {
-	case "unix", "unixgram", "unixpacket":
+	case "unix", "unixpacket":
 	default:
 		return nil, UnknownNetworkError(net)
 	}
@@ -264,7 +271,7 @@
 	}
 	err = syscall.Listen(fd.sysfd, listenerBacklog)
 	if err != nil {
-		closesocket(fd.sysfd)
+		fd.Close()
 		return nil, &OpError{Op: "listen", Net: net, Addr: laddr, Err: err}
 	}
 	return &UnixListener{fd, laddr.Name}, nil
@@ -332,12 +339,16 @@
 // File returns a copy of the underlying os.File, set to blocking
 // mode.  It is the caller's responsibility to close f when finished.
 // Closing l does not affect f, and closing f does not affect l.
+//
+// The returned os.File's file descriptor is different from the
+// connection's.  Attempting to change properties of the original
+// using this duplicate may or may not have the desired effect.
 func (l *UnixListener) File() (f *os.File, err error) { return l.fd.dup() }
 
 // ListenUnixgram listens for incoming Unix datagram packets addressed
-// to the local address laddr.  The returned connection c's ReadFrom
-// and WriteTo methods can be used to receive and send packets with
-// per-packet addressing.  The network net must be "unixgram".
+// to the local address laddr.  The network net must be "unixgram".
+// The returned connection's ReadFrom and WriteTo methods can be used
+// to receive and send packets with per-packet addressing.
 func ListenUnixgram(net string, laddr *UnixAddr) (*UnixConn, error) {
 	switch net {
 	case "unixgram":
diff -Naur gcc-4.8.1.orig/libgo/go/net/unix_test.go gcc-4.8.1/libgo/go/net/unix_test.go
--- gcc-4.8.1.orig/libgo/go/net/unix_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/unix_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,246 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !plan9,!windows
+
+package net
+
+import (
+	"bytes"
+	"os"
+	"reflect"
+	"runtime"
+	"syscall"
+	"testing"
+	"time"
+)
+
+func TestReadUnixgramWithUnnamedSocket(t *testing.T) {
+	addr := testUnixAddr()
+	la, err := ResolveUnixAddr("unixgram", addr)
+	if err != nil {
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
+	}
+	c, err := ListenUnixgram("unixgram", la)
+	if err != nil {
+		t.Fatalf("ListenUnixgram failed: %v", err)
+	}
+	defer func() {
+		c.Close()
+		os.Remove(addr)
+	}()
+
+	off := make(chan bool)
+	data := [5]byte{1, 2, 3, 4, 5}
+	go func() {
+		defer func() { off <- true }()
+		s, err := syscall.Socket(syscall.AF_UNIX, syscall.SOCK_DGRAM, 0)
+		if err != nil {
+			t.Errorf("syscall.Socket failed: %v", err)
+			return
+		}
+		defer syscall.Close(s)
+		rsa := &syscall.SockaddrUnix{Name: addr}
+		if err := syscall.Sendto(s, data[:], 0, rsa); err != nil {
+			t.Errorf("syscall.Sendto failed: %v", err)
+			return
+		}
+	}()
+
+	<-off
+	b := make([]byte, 64)
+	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
+	n, from, err := c.ReadFrom(b)
+	if err != nil {
+		t.Fatalf("UnixConn.ReadFrom failed: %v", err)
+	}
+	if from != nil {
+		t.Fatalf("neighbor address is %v", from)
+	}
+	if !bytes.Equal(b[:n], data[:]) {
+		t.Fatalf("got %v, want %v", b[:n], data[:])
+	}
+}
+
+func TestReadUnixgramWithZeroBytesBuffer(t *testing.T) {
+	// issue 4352: Recvfrom failed with "address family not
+	// supported by protocol family" if zero-length buffer provided
+
+	addr := testUnixAddr()
+	la, err := ResolveUnixAddr("unixgram", addr)
+	if err != nil {
+		t.Fatalf("ResolveUnixAddr failed: %v", err)
+	}
+	c, err := ListenUnixgram("unixgram", la)
+	if err != nil {
+		t.Fatalf("ListenUnixgram failed: %v", err)
+	}
+	defer func() {
+		c.Close()
+		os.Remove(addr)
+	}()
+
+	off := make(chan bool)
+	go func() {
+		defer func() { off <- true }()
+		c, err := DialUnix("unixgram", nil, la)
+		if err != nil {
+			t.Errorf("DialUnix failed: %v", err)
+			return
+		}
+		defer c.Close()
+		if _, err := c.Write([]byte{1, 2, 3, 4, 5}); err != nil {
+			t.Errorf("UnixConn.Write failed: %v", err)
+			return
+		}
+	}()
+
+	<-off
+	c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
+	_, from, err := c.ReadFrom(nil)
+	if err != nil {
+		t.Fatalf("UnixConn.ReadFrom failed: %v", err)
+	}
+	if from != nil {
+		t.Fatalf("neighbor address is %v", from)
+	}
+}
+
+func TestUnixAutobind(t *testing.T) {
+	if runtime.GOOS != "linux" {
+		t.Skip("skipping: autobind is linux only")
+	}
+
+	laddr := &UnixAddr{Name: "", Net: "unixgram"}
+	c1, err := ListenUnixgram("unixgram", laddr)
+	if err != nil {
+		t.Fatalf("ListenUnixgram failed: %v", err)
+	}
+	defer c1.Close()
+
+	// retrieve the autobind address
+	autoAddr := c1.LocalAddr().(*UnixAddr)
+	if len(autoAddr.Name) <= 1 {
+		t.Fatalf("invalid autobind address: %v", autoAddr)
+	}
+	if autoAddr.Name[0] != '@' {
+		t.Fatalf("invalid autobind address: %v", autoAddr)
+	}
+
+	c2, err := DialUnix("unixgram", nil, autoAddr)
+	if err != nil {
+		t.Fatalf("DialUnix failed: %v", err)
+	}
+	defer c2.Close()
+
+	if !reflect.DeepEqual(c1.LocalAddr(), c2.RemoteAddr()) {
+		t.Fatalf("expected autobind address %v, got %v", c1.LocalAddr(), c2.RemoteAddr())
+	}
+}
+
+func TestUnixConnLocalAndRemoteNames(t *testing.T) {
+	for _, laddr := range []string{"", testUnixAddr()} {
+		taddr := testUnixAddr()
+		ta, err := ResolveUnixAddr("unix", taddr)
+		if err != nil {
+			t.Fatalf("ResolveUnixAddr failed: %v", err)
+		}
+		ln, err := ListenUnix("unix", ta)
+		if err != nil {
+			t.Fatalf("ListenUnix failed: %v", err)
+		}
+		defer func() {
+			ln.Close()
+			os.Remove(taddr)
+		}()
+
+		done := make(chan int)
+		go transponder(t, ln, done)
+
+		la, err := ResolveUnixAddr("unix", laddr)
+		if err != nil {
+			t.Fatalf("ResolveUnixAddr failed: %v", err)
+		}
+		c, err := DialUnix("unix", la, ta)
+		if err != nil {
+			t.Fatalf("DialUnix failed: %v", err)
+		}
+		defer func() {
+			c.Close()
+			if la != nil {
+				defer os.Remove(laddr)
+			}
+		}()
+		if _, err := c.Write([]byte("UNIXCONN LOCAL AND REMOTE NAME TEST")); err != nil {
+			t.Fatalf("UnixConn.Write failed: %v", err)
+		}
+
+		if runtime.GOOS == "linux" && laddr == "" {
+			laddr = "@" // autobind feature
+		}
+		var connAddrs = [3]struct{ got, want Addr }{
+			{ln.Addr(), ta},
+			{c.LocalAddr(), &UnixAddr{Name: laddr, Net: "unix"}},
+			{c.RemoteAddr(), ta},
+		}
+		for _, ca := range connAddrs {
+			if !reflect.DeepEqual(ca.got, ca.want) {
+				t.Fatalf("got %#v, expected %#v", ca.got, ca.want)
+			}
+		}
+
+		<-done
+	}
+}
+
+func TestUnixgramConnLocalAndRemoteNames(t *testing.T) {
+	for _, laddr := range []string{"", testUnixAddr()} {
+		taddr := testUnixAddr()
+		ta, err := ResolveUnixAddr("unixgram", taddr)
+		if err != nil {
+			t.Fatalf("ResolveUnixAddr failed: %v", err)
+		}
+		c1, err := ListenUnixgram("unixgram", ta)
+		if err != nil {
+			t.Fatalf("ListenUnixgram failed: %v", err)
+		}
+		defer func() {
+			c1.Close()
+			os.Remove(taddr)
+		}()
+
+		var la *UnixAddr
+		if laddr != "" {
+			var err error
+			if la, err = ResolveUnixAddr("unixgram", laddr); err != nil {
+				t.Fatalf("ResolveUnixAddr failed: %v", err)
+			}
+		}
+		c2, err := DialUnix("unixgram", la, ta)
+		if err != nil {
+			t.Fatalf("DialUnix failed: %v", err)
+		}
+		defer func() {
+			c2.Close()
+			if la != nil {
+				defer os.Remove(laddr)
+			}
+		}()
+
+		if runtime.GOOS == "linux" && laddr == "" {
+			laddr = "@" // autobind feature
+		}
+		var connAddrs = [4]struct{ got, want Addr }{
+			{c1.LocalAddr(), ta},
+			{c1.RemoteAddr(), nil},
+			{c2.LocalAddr(), &UnixAddr{Name: laddr, Net: "unixgram"}},
+			{c2.RemoteAddr(), ta},
+		}
+		for _, ca := range connAddrs {
+			if !reflect.DeepEqual(ca.got, ca.want) {
+				t.Fatalf("got %#v, expected %#v", ca.got, ca.want)
+			}
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url.go gcc-4.8.1/libgo/go/net/url/url.go
--- gcc-4.8.1.orig/libgo/go/net/url/url.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/url/url.go	2013-07-16 01:55:04.520470000 -0500
@@ -220,6 +220,13 @@
 //
 //	scheme:opaque[?query][#fragment]
 //
+// Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/.
+// A consequence is that it is impossible to tell which slashes in the Path were
+// slashes in the raw URL and which were %2f. This distinction is rarely important,
+// but when it is a client must use other routines to parse the raw URL or construct
+// the parsed URL. For example, an HTTP server can consult req.RequestURI, and
+// an HTTP client can use URL{Host: "example.com", Opaque: "//example.com/Go%2f"}
+// instead of URL{Host: "example.com", Path: "/Go/"}.
 type URL struct {
 	Scheme   string
 	Opaque   string    // encoded opaque data
@@ -310,23 +317,22 @@
 // Maybe s is of the form t c u.
 // If so, return t, c u (or t, u if cutc == true).
 // If not, return s, "".
-func split(s string, c byte, cutc bool) (string, string) {
-	for i := 0; i < len(s); i++ {
-		if s[i] == c {
-			if cutc {
-				return s[0:i], s[i+1:]
-			}
-			return s[0:i], s[i:]
-		}
+func split(s string, c string, cutc bool) (string, string) {
+	i := strings.Index(s, c)
+	if i < 0 {
+		return s, ""
 	}
-	return s, ""
+	if cutc {
+		return s[0:i], s[i+len(c):]
+	}
+	return s[0:i], s[i:]
 }
 
 // Parse parses rawurl into a URL structure.
 // The rawurl may be relative or absolute.
 func Parse(rawurl string) (url *URL, err error) {
 	// Cut off #frag
-	u, frag := split(rawurl, '#', true)
+	u, frag := split(rawurl, "#", true)
 	if url, err = parse(u, false); err != nil {
 		return nil, err
 	}
@@ -355,7 +361,7 @@
 func parse(rawurl string, viaRequest bool) (url *URL, err error) {
 	var rest string
 
-	if rawurl == "" {
+	if rawurl == "" && viaRequest {
 		err = errors.New("empty url")
 		goto Error
 	}
@@ -371,8 +377,9 @@
 	if url.Scheme, rest, err = getscheme(rawurl); err != nil {
 		goto Error
 	}
+	url.Scheme = strings.ToLower(url.Scheme)
 
-	rest, url.RawQuery = split(rest, '?', true)
+	rest, url.RawQuery = split(rest, "?", true)
 
 	if !strings.HasPrefix(rest, "/") {
 		if url.Scheme != "" {
@@ -388,7 +395,7 @@
 
 	if (url.Scheme != "" || !viaRequest && !strings.HasPrefix(rest, "///")) && strings.HasPrefix(rest, "//") {
 		var authority string
-		authority, rest = split(rest[2:], '/', false)
+		authority, rest = split(rest[2:], "/", false)
 		url.User, url.Host, err = parseAuthority(authority)
 		if err != nil {
 			goto Error
@@ -420,7 +427,7 @@
 		}
 		user = User(userinfo)
 	} else {
-		username, password := split(userinfo, ':', true)
+		username, password := split(userinfo, ":", true)
 		if username, err = unescape(username, encodeUserPassword); err != nil {
 			return
 		}
@@ -575,43 +582,39 @@
 }
 
 // resolvePath applies special path segments from refs and applies
-// them to base, per RFC 2396.
-func resolvePath(basepath string, refpath string) string {
-	base := strings.Split(basepath, "/")
-	refs := strings.Split(refpath, "/")
-	if len(base) == 0 {
-		base = []string{""}
+// them to base, per RFC 3986.
+func resolvePath(base, ref string) string {
+	var full string
+	if ref == "" {
+		full = base
+	} else if ref[0] != '/' {
+		i := strings.LastIndex(base, "/")
+		full = base[:i+1] + ref
+	} else {
+		full = ref
 	}
-
-	rm := true
-	for idx, ref := range refs {
-		switch {
-		case ref == ".":
-			if idx == 0 {
-				base[len(base)-1] = ""
-				rm = true
-			} else {
-				rm = false
-			}
-		case ref == "..":
-			newLen := len(base) - 1
-			if newLen < 1 {
-				newLen = 1
-			}
-			base = base[0:newLen]
-			if rm {
-				base[len(base)-1] = ""
+	if full == "" {
+		return ""
+	}
+	var dst []string
+	src := strings.Split(full, "/")
+	for _, elem := range src {
+		switch elem {
+		case ".":
+			// drop
+		case "..":
+			if len(dst) > 0 {
+				dst = dst[:len(dst)-1]
 			}
 		default:
-			if idx == 0 || base[len(base)-1] == "" {
-				base[len(base)-1] = ref
-			} else {
-				base = append(base, ref)
-			}
-			rm = false
+			dst = append(dst, elem)
 		}
 	}
-	return strings.Join(base, "/")
+	if last := src[len(src)-1]; last == "." || last == ".." {
+		// Add final slash to the joined path.
+		dst = append(dst, "")
+	}
+	return "/" + strings.TrimLeft(strings.Join(dst, "/"), "/")
 }
 
 // IsAbs returns true if the URL is absolute.
@@ -631,43 +634,39 @@
 }
 
 // ResolveReference resolves a URI reference to an absolute URI from
-// an absolute base URI, per RFC 2396 Section 5.2.  The URI reference
+// an absolute base URI, per RFC 3986 Section 5.2.  The URI reference
 // may be relative or absolute.  ResolveReference always returns a new
 // URL instance, even if the returned URL is identical to either the
 // base or reference. If ref is an absolute URL, then ResolveReference
 // ignores base and returns a copy of ref.
 func (u *URL) ResolveReference(ref *URL) *URL {
-	if ref.IsAbs() {
-		url := *ref
+	url := *ref
+	if ref.Scheme == "" {
+		url.Scheme = u.Scheme
+	}
+	if ref.Scheme != "" || ref.Host != "" || ref.User != nil {
+		// The "absoluteURI" or "net_path" cases.
+		url.Path = resolvePath(ref.Path, "")
 		return &url
 	}
-	// relativeURI = ( net_path | abs_path | rel_path ) [ "?" query ]
-	url := *u
-	url.RawQuery = ref.RawQuery
-	url.Fragment = ref.Fragment
 	if ref.Opaque != "" {
-		url.Opaque = ref.Opaque
 		url.User = nil
 		url.Host = ""
 		url.Path = ""
 		return &url
 	}
-	if ref.Host != "" || ref.User != nil {
-		// The "net_path" case.
-		url.Host = ref.Host
-		url.User = ref.User
-	}
-	if strings.HasPrefix(ref.Path, "/") {
-		// The "abs_path" case.
-		url.Path = ref.Path
-	} else {
-		// The "rel_path" case.
-		path := resolvePath(u.Path, ref.Path)
-		if !strings.HasPrefix(path, "/") {
-			path = "/" + path
+	if ref.Path == "" {
+		if ref.RawQuery == "" {
+			url.RawQuery = u.RawQuery
+			if ref.Fragment == "" {
+				url.Fragment = u.Fragment
+			}
 		}
-		url.Path = path
 	}
+	// The "abs_path" or "rel_path" cases.
+	url.Host = u.Host
+	url.User = u.User
+	url.Path = resolvePath(u.Path, ref.Path)
 	return &url
 }
 
@@ -686,6 +685,10 @@
 		if result == "" {
 			result = "/"
 		}
+	} else {
+		if strings.HasPrefix(result, "//") {
+			result = u.Scheme + ":" + result
+		}
 	}
 	if u.RawQuery != "" {
 		result += "?" + u.RawQuery
diff -Naur gcc-4.8.1.orig/libgo/go/net/url/url_test.go gcc-4.8.1/libgo/go/net/url/url_test.go
--- gcc-4.8.1.orig/libgo/go/net/url/url_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/net/url/url_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -251,6 +251,15 @@
 		},
 		"file:///home/adg/rabbits",
 	},
+	// case-insensitive scheme
+	{
+		"MaIlTo:webmaster@golang.org",
+		&URL{
+			Scheme: "mailto",
+			Opaque: "webmaster@golang.org",
+		},
+		"mailto:webmaster@golang.org",
+	},
 }
 
 // more useful string for debugging than fmt's struct printer
@@ -514,18 +523,18 @@
 var resolvePathTests = []struct {
 	base, ref, expected string
 }{
-	{"a/b", ".", "a/"},
-	{"a/b", "c", "a/c"},
-	{"a/b", "..", ""},
-	{"a/", "..", ""},
-	{"a/", "../..", ""},
-	{"a/b/c", "..", "a/"},
-	{"a/b/c", "../d", "a/d"},
-	{"a/b/c", ".././d", "a/d"},
-	{"a/b", "./..", ""},
-	{"a/./b", ".", "a/./"},
-	{"a/../", ".", "a/../"},
-	{"a/.././b", "c", "a/.././c"},
+	{"a/b", ".", "/a/"},
+	{"a/b", "c", "/a/c"},
+	{"a/b", "..", "/"},
+	{"a/", "..", "/"},
+	{"a/", "../..", "/"},
+	{"a/b/c", "..", "/a/"},
+	{"a/b/c", "../d", "/a/d"},
+	{"a/b/c", ".././d", "/a/d"},
+	{"a/b", "./..", "/"},
+	{"a/./b", ".", "/a/"},
+	{"a/../", ".", "/"},
+	{"a/.././b", "c", "/c"},
 }
 
 func TestResolvePath(t *testing.T) {
@@ -578,16 +587,71 @@
 	{"http://foo.com/bar/baz", "quux/./dotdot/dotdot/././../../tail", "http://foo.com/bar/quux/tail"},
 	{"http://foo.com/bar/baz", "quux/./dotdot/dotdot/./.././../tail", "http://foo.com/bar/quux/tail"},
 	{"http://foo.com/bar/baz", "quux/./dotdot/dotdot/dotdot/./../../.././././tail", "http://foo.com/bar/quux/tail"},
-	{"http://foo.com/bar/baz", "quux/./dotdot/../dotdot/../dot/./tail/..", "http://foo.com/bar/quux/dot"},
+	{"http://foo.com/bar/baz", "quux/./dotdot/../dotdot/../dot/./tail/..", "http://foo.com/bar/quux/dot/"},
 
-	// "." and ".." in the base aren't special
-	{"http://foo.com/dot/./dotdot/../foo/bar", "../baz", "http://foo.com/dot/./dotdot/../baz"},
+	// Remove any dot-segments prior to forming the target URI.
+	// http://tools.ietf.org/html/rfc3986#section-5.2.4
+	{"http://foo.com/dot/./dotdot/../foo/bar", "../baz", "http://foo.com/dot/baz"},
 
 	// Triple dot isn't special
 	{"http://foo.com/bar", "...", "http://foo.com/..."},
 
 	// Fragment
 	{"http://foo.com/bar", ".#frag", "http://foo.com/#frag"},
+
+	// RFC 3986: Normal Examples
+	// http://tools.ietf.org/html/rfc3986#section-5.4.1
+	{"http://a/b/c/d;p?q", "g:h", "g:h"},
+	{"http://a/b/c/d;p?q", "g", "http://a/b/c/g"},
+	{"http://a/b/c/d;p?q", "./g", "http://a/b/c/g"},
+	{"http://a/b/c/d;p?q", "g/", "http://a/b/c/g/"},
+	{"http://a/b/c/d;p?q", "/g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "//g", "http://g"},
+	{"http://a/b/c/d;p?q", "?y", "http://a/b/c/d;p?y"},
+	{"http://a/b/c/d;p?q", "g?y", "http://a/b/c/g?y"},
+	{"http://a/b/c/d;p?q", "#s", "http://a/b/c/d;p?q#s"},
+	{"http://a/b/c/d;p?q", "g#s", "http://a/b/c/g#s"},
+	{"http://a/b/c/d;p?q", "g?y#s", "http://a/b/c/g?y#s"},
+	{"http://a/b/c/d;p?q", ";x", "http://a/b/c/;x"},
+	{"http://a/b/c/d;p?q", "g;x", "http://a/b/c/g;x"},
+	{"http://a/b/c/d;p?q", "g;x?y#s", "http://a/b/c/g;x?y#s"},
+	{"http://a/b/c/d;p?q", "", "http://a/b/c/d;p?q"},
+	{"http://a/b/c/d;p?q", ".", "http://a/b/c/"},
+	{"http://a/b/c/d;p?q", "./", "http://a/b/c/"},
+	{"http://a/b/c/d;p?q", "..", "http://a/b/"},
+	{"http://a/b/c/d;p?q", "../", "http://a/b/"},
+	{"http://a/b/c/d;p?q", "../g", "http://a/b/g"},
+	{"http://a/b/c/d;p?q", "../..", "http://a/"},
+	{"http://a/b/c/d;p?q", "../../", "http://a/"},
+	{"http://a/b/c/d;p?q", "../../g", "http://a/g"},
+
+	// RFC 3986: Abnormal Examples
+	// http://tools.ietf.org/html/rfc3986#section-5.4.2
+	{"http://a/b/c/d;p?q", "../../../g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "../../../../g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "/./g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "/../g", "http://a/g"},
+	{"http://a/b/c/d;p?q", "g.", "http://a/b/c/g."},
+	{"http://a/b/c/d;p?q", ".g", "http://a/b/c/.g"},
+	{"http://a/b/c/d;p?q", "g..", "http://a/b/c/g.."},
+	{"http://a/b/c/d;p?q", "..g", "http://a/b/c/..g"},
+	{"http://a/b/c/d;p?q", "./../g", "http://a/b/g"},
+	{"http://a/b/c/d;p?q", "./g/.", "http://a/b/c/g/"},
+	{"http://a/b/c/d;p?q", "g/./h", "http://a/b/c/g/h"},
+	{"http://a/b/c/d;p?q", "g/../h", "http://a/b/c/h"},
+	{"http://a/b/c/d;p?q", "g;x=1/./y", "http://a/b/c/g;x=1/y"},
+	{"http://a/b/c/d;p?q", "g;x=1/../y", "http://a/b/c/y"},
+	{"http://a/b/c/d;p?q", "g?y/./x", "http://a/b/c/g?y/./x"},
+	{"http://a/b/c/d;p?q", "g?y/../x", "http://a/b/c/g?y/../x"},
+	{"http://a/b/c/d;p?q", "g#s/./x", "http://a/b/c/g#s/./x"},
+	{"http://a/b/c/d;p?q", "g#s/../x", "http://a/b/c/g#s/../x"},
+
+	// Extras.
+	{"https://a/b/c/d;p?q", "//g?q", "https://g?q"},
+	{"https://a/b/c/d;p?q", "//g#s", "https://g#s"},
+	{"https://a/b/c/d;p?q", "//g/d/e/f?y#s", "https://g/d/e/f?y#s"},
+	{"https://a/b/c/d;p#s", "?y", "https://a/b/c/d;p?y"},
+	{"https://a/b/c/d;p?q#s", "?y", "https://a/b/c/d;p?y"},
 }
 
 func TestResolveReference(t *testing.T) {
@@ -598,91 +662,44 @@
 		}
 		return u
 	}
+	opaque := &URL{Scheme: "scheme", Opaque: "opaque"}
 	for _, test := range resolveReferenceTests {
 		base := mustParse(test.base)
 		rel := mustParse(test.rel)
 		url := base.ResolveReference(rel)
-		urlStr := url.String()
-		if urlStr != test.expected {
-			t.Errorf("Resolving %q + %q != %q; got %q", test.base, test.rel, test.expected, urlStr)
+		if url.String() != test.expected {
+			t.Errorf("URL(%q).ResolveReference(%q) == %q, got %q", test.base, test.rel, test.expected, url.String())
 		}
-	}
-
-	// Test that new instances are returned.
-	base := mustParse("http://foo.com/")
-	abs := base.ResolveReference(mustParse("."))
-	if base == abs {
-		t.Errorf("Expected no-op reference to return new URL instance.")
-	}
-	barRef := mustParse("http://bar.com/")
-	abs = base.ResolveReference(barRef)
-	if abs == barRef {
-		t.Errorf("Expected resolution of absolute reference to return new URL instance.")
-	}
-
-	// Test the convenience wrapper too
-	base = mustParse("http://foo.com/path/one/")
-	abs, _ = base.Parse("../two")
-	expected := "http://foo.com/path/two"
-	if abs.String() != expected {
-		t.Errorf("Parse wrapper got %q; expected %q", abs.String(), expected)
-	}
-	_, err := base.Parse("")
-	if err == nil {
-		t.Errorf("Expected an error from Parse wrapper parsing an empty string.")
-	}
-
-	// Ensure Opaque resets the URL.
-	base = mustParse("scheme://user@foo.com/bar")
-	abs = base.ResolveReference(&URL{Opaque: "opaque"})
-	want := mustParse("scheme:opaque")
-	if *abs != *want {
-		t.Errorf("ResolveReference failed to resolve opaque URL: want %#v, got %#v", abs, want)
-	}
-}
-
-func TestResolveReferenceOpaque(t *testing.T) {
-	mustParse := func(url string) *URL {
-		u, err := Parse(url)
+		// Ensure that new instances are returned.
+		if base == url {
+			t.Errorf("Expected URL.ResolveReference to return new URL instance.")
+		}
+		// Test the convenience wrapper too.
+		url, err := base.Parse(test.rel)
 		if err != nil {
-			t.Fatalf("Expected URL to parse: %q, got error: %v", url, err)
+			t.Errorf("URL(%q).Parse(%q) failed: %v", test.base, test.rel, err)
+		} else if url.String() != test.expected {
+			t.Errorf("URL(%q).Parse(%q) == %q, got %q", test.base, test.rel, test.expected, url.String())
+		} else if base == url {
+			// Ensure that new instances are returned for the wrapper too.
+			t.Errorf("Expected URL.Parse to return new URL instance.")
+		}
+		// Ensure Opaque resets the URL.
+		url = base.ResolveReference(opaque)
+		if *url != *opaque {
+			t.Errorf("ResolveReference failed to resolve opaque URL: want %#v, got %#v", url, opaque)
 		}
-		return u
-	}
-	for _, test := range resolveReferenceTests {
-		base := mustParse(test.base)
-		rel := mustParse(test.rel)
-		url := base.ResolveReference(rel)
-		urlStr := url.String()
-		if urlStr != test.expected {
-			t.Errorf("Resolving %q + %q != %q; got %q", test.base, test.rel, test.expected, urlStr)
+		// Test the convenience wrapper with an opaque URL too.
+		url, err = base.Parse("scheme:opaque")
+		if err != nil {
+			t.Errorf(`URL(%q).Parse("scheme:opaque") failed: %v`, test.base, err)
+		} else if *url != *opaque {
+			t.Errorf("Parse failed to resolve opaque URL: want %#v, got %#v", url, opaque)
+		} else if base == url {
+			// Ensure that new instances are returned, again.
+			t.Errorf("Expected URL.Parse to return new URL instance.")
 		}
 	}
-
-	// Test that new instances are returned.
-	base := mustParse("http://foo.com/")
-	abs := base.ResolveReference(mustParse("."))
-	if base == abs {
-		t.Errorf("Expected no-op reference to return new URL instance.")
-	}
-	barRef := mustParse("http://bar.com/")
-	abs = base.ResolveReference(barRef)
-	if abs == barRef {
-		t.Errorf("Expected resolution of absolute reference to return new URL instance.")
-	}
-
-	// Test the convenience wrapper too
-	base = mustParse("http://foo.com/path/one/")
-	abs, _ = base.Parse("../two")
-	expected := "http://foo.com/path/two"
-	if abs.String() != expected {
-		t.Errorf("Parse wrapper got %q; expected %q", abs.String(), expected)
-	}
-	_, err := base.Parse("")
-	if err == nil {
-		t.Errorf("Expected an error from Parse wrapper parsing an empty string.")
-	}
-
 }
 
 func TestQueryValues(t *testing.T) {
@@ -789,6 +806,24 @@
 		},
 		"/a%20b",
 	},
+	// golang.org/issue/4860 variant 1
+	{
+		&URL{
+			Scheme: "http",
+			Host:   "example.com",
+			Opaque: "/%2F/%2F/",
+		},
+		"/%2F/%2F/",
+	},
+	// golang.org/issue/4860 variant 2
+	{
+		&URL{
+			Scheme: "http",
+			Host:   "example.com",
+			Opaque: "//other.example.com/%2F/%2F/",
+		},
+		"http://other.example.com/%2F/%2F/",
+	},
 	{
 		&URL{
 			Scheme:   "http",
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/common.go gcc-4.8.1/libgo/go/old/netchan/common.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/common.go	2012-01-25 15:54:22.000000000 -0600
+++ gcc-4.8.1/libgo/go/old/netchan/common.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,338 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package netchan
-
-import (
-	"encoding/gob"
-	"errors"
-	"io"
-	"reflect"
-	"sync"
-	"time"
-)
-
-// The direction of a connection from the client's perspective.
-type Dir int
-
-const (
-	Recv Dir = iota
-	Send
-)
-
-func (dir Dir) String() string {
-	switch dir {
-	case Recv:
-		return "Recv"
-	case Send:
-		return "Send"
-	}
-	return "???"
-}
-
-// Payload types
-const (
-	payRequest = iota // request structure follows
-	payError          // error structure follows
-	payData           // user payload follows
-	payAck            // acknowledgement; no payload
-	payClosed         // channel is now closed
-	payAckSend        // payload has been delivered.
-)
-
-// A header is sent as a prefix to every transmission.  It will be followed by
-// a request structure, an error structure, or an arbitrary user payload structure.
-type header struct {
-	Id          int
-	PayloadType int
-	SeqNum      int64
-}
-
-// Sent with a header once per channel from importer to exporter to report
-// that it wants to bind to a channel with the specified direction for count
-// messages, with space for size buffered values. If count is -1, it means unlimited.
-type request struct {
-	Name  string
-	Count int64
-	Size  int
-	Dir   Dir
-}
-
-// Sent with a header to report an error.
-type error_ struct {
-	Error string
-}
-
-// Used to unify management of acknowledgements for import and export.
-type unackedCounter interface {
-	unackedCount() int64
-	ack() int64
-	seq() int64
-}
-
-// A channel and its direction.
-type chanDir struct {
-	ch  reflect.Value
-	dir Dir
-}
-
-// clientSet contains the objects and methods needed for tracking
-// clients of an exporter and draining outstanding messages.
-type clientSet struct {
-	mu      sync.Mutex // protects access to channel and client maps
-	names   map[string]*chanDir
-	clients map[unackedCounter]bool
-}
-
-// Mutex-protected encoder and decoder pair.
-type encDec struct {
-	decLock sync.Mutex
-	dec     *gob.Decoder
-	encLock sync.Mutex
-	enc     *gob.Encoder
-}
-
-func newEncDec(conn io.ReadWriter) *encDec {
-	return &encDec{
-		dec: gob.NewDecoder(conn),
-		enc: gob.NewEncoder(conn),
-	}
-}
-
-// Decode an item from the connection.
-func (ed *encDec) decode(value reflect.Value) error {
-	ed.decLock.Lock()
-	err := ed.dec.DecodeValue(value)
-	if err != nil {
-		// TODO: tear down connection?
-	}
-	ed.decLock.Unlock()
-	return err
-}
-
-// Encode a header and payload onto the connection.
-func (ed *encDec) encode(hdr *header, payloadType int, payload interface{}) error {
-	ed.encLock.Lock()
-	hdr.PayloadType = payloadType
-	err := ed.enc.Encode(hdr)
-	if err == nil {
-		if payload != nil {
-			err = ed.enc.Encode(payload)
-		}
-	}
-	if err != nil {
-		// TODO: tear down connection if there is an error?
-	}
-	ed.encLock.Unlock()
-	return err
-}
-
-// See the comment for Exporter.Drain.
-func (cs *clientSet) drain(timeout time.Duration) error {
-	deadline := time.Now().Add(timeout)
-	for {
-		pending := false
-		cs.mu.Lock()
-		// Any messages waiting for a client?
-		for _, chDir := range cs.names {
-			if chDir.ch.Len() > 0 {
-				pending = true
-			}
-		}
-		// Any unacknowledged messages?
-		for client := range cs.clients {
-			n := client.unackedCount()
-			if n > 0 { // Check for > rather than != just to be safe.
-				pending = true
-				break
-			}
-		}
-		cs.mu.Unlock()
-		if !pending {
-			break
-		}
-		if timeout > 0 && time.Now().After(deadline) {
-			return errors.New("timeout")
-		}
-		time.Sleep(100 * time.Millisecond)
-	}
-	return nil
-}
-
-// See the comment for Exporter.Sync.
-func (cs *clientSet) sync(timeout time.Duration) error {
-	deadline := time.Now().Add(timeout)
-	// seq remembers the clients and their seqNum at point of entry.
-	seq := make(map[unackedCounter]int64)
-	cs.mu.Lock()
-	for client := range cs.clients {
-		seq[client] = client.seq()
-	}
-	cs.mu.Unlock()
-	for {
-		pending := false
-		cs.mu.Lock()
-		// Any unacknowledged messages?  Look only at clients that existed
-		// when we started and are still in this client set.
-		for client := range seq {
-			if _, ok := cs.clients[client]; ok {
-				if client.ack() < seq[client] {
-					pending = true
-					break
-				}
-			}
-		}
-		cs.mu.Unlock()
-		if !pending {
-			break
-		}
-		if timeout > 0 && time.Now().After(deadline) {
-			return errors.New("timeout")
-		}
-		time.Sleep(100 * time.Millisecond)
-	}
-	return nil
-}
-
-// A netChan represents a channel imported or exported
-// on a single connection. Flow is controlled by the receiving
-// side by sending payAckSend messages when values
-// are delivered into the local channel.
-type netChan struct {
-	*chanDir
-	name   string
-	id     int
-	size   int // buffer size of channel.
-	closed bool
-
-	// sender-specific state
-	ackCh chan bool // buffered with space for all the acks we need
-	space int       // available space.
-
-	// receiver-specific state
-	sendCh chan reflect.Value // buffered channel of values received from other end.
-	ed     *encDec            // so that we can send acks.
-	count  int64              // number of values still to receive.
-}
-
-// Create a new netChan with the given name (only used for
-// messages), id, direction, buffer size, and count.
-// The connection to the other side is represented by ed.
-func newNetChan(name string, id int, ch *chanDir, ed *encDec, size int, count int64) *netChan {
-	c := &netChan{chanDir: ch, name: name, id: id, size: size, ed: ed, count: count}
-	if c.dir == Send {
-		c.ackCh = make(chan bool, size)
-		c.space = size
-	}
-	return c
-}
-
-// Close the channel.
-func (nch *netChan) close() {
-	if nch.closed {
-		return
-	}
-	if nch.dir == Recv {
-		if nch.sendCh != nil {
-			// If the sender goroutine is active, close the channel to it.
-			// It will close nch.ch when it can.
-			close(nch.sendCh)
-		} else {
-			nch.ch.Close()
-		}
-	} else {
-		nch.ch.Close()
-		close(nch.ackCh)
-	}
-	nch.closed = true
-}
-
-// Send message from remote side to local receiver.
-func (nch *netChan) send(val reflect.Value) {
-	if nch.dir != Recv {
-		panic("send on wrong direction of channel")
-	}
-	if nch.sendCh == nil {
-		// If possible, do local send directly and ack immediately.
-		if nch.ch.TrySend(val) {
-			nch.sendAck()
-			return
-		}
-		// Start sender goroutine to manage delayed delivery of values.
-		nch.sendCh = make(chan reflect.Value, nch.size)
-		go nch.sender()
-	}
-	select {
-	case nch.sendCh <- val:
-		// ok
-	default:
-		// TODO: should this be more resilient?
-		panic("netchan: remote sender sent more values than allowed")
-	}
-}
-
-// sendAck sends an acknowledgment that a message has left
-// the channel's buffer. If the messages remaining to be sent
-// will fit in the channel's buffer, then we don't
-// need to send an ack.
-func (nch *netChan) sendAck() {
-	if nch.count < 0 || nch.count > int64(nch.size) {
-		nch.ed.encode(&header{Id: nch.id}, payAckSend, nil)
-	}
-	if nch.count > 0 {
-		nch.count--
-	}
-}
-
-// The sender process forwards items from the sending queue
-// to the destination channel, acknowledging each item.
-func (nch *netChan) sender() {
-	if nch.dir != Recv {
-		panic("sender on wrong direction of channel")
-	}
-	// When Exporter.Hangup is called, the underlying channel is closed,
-	// and so we may get a "too many operations on closed channel" error
-	// if there are outstanding messages in sendCh.
-	// Make sure that this doesn't panic the whole program.
-	defer func() {
-		if r := recover(); r != nil {
-			// TODO check that r is "too many operations", otherwise re-panic.
-		}
-	}()
-	for v := range nch.sendCh {
-		nch.ch.Send(v)
-		nch.sendAck()
-	}
-	nch.ch.Close()
-}
-
-// Receive value from local side for sending to remote side.
-func (nch *netChan) recv() (val reflect.Value, ok bool) {
-	if nch.dir != Send {
-		panic("recv on wrong direction of channel")
-	}
-
-	if nch.space == 0 {
-		// Wait for buffer space.
-		<-nch.ackCh
-		nch.space++
-	}
-	nch.space--
-	return nch.ch.Recv()
-}
-
-// acked is called when the remote side indicates that
-// a value has been delivered.
-func (nch *netChan) acked() {
-	if nch.dir != Send {
-		panic("recv on wrong direction of channel")
-	}
-	select {
-	case nch.ackCh <- true:
-		// ok
-	default:
-		// TODO: should this be more resilient?
-		panic("netchan: remote receiver sent too many acks")
-	}
-}
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/export.go gcc-4.8.1/libgo/go/old/netchan/export.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/export.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/old/netchan/export.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,400 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-	Package netchan implements type-safe networked channels:
-	it allows the two ends of a channel to appear on different
-	computers connected by a network.  It does this by transporting
-	data sent to a channel on one machine so it can be recovered
-	by a receive of a channel of the same type on the other.
-
-	An exporter publishes a set of channels by name.  An importer
-	connects to the exporting machine and imports the channels
-	by name. After importing the channels, the two machines can
-	use the channels in the usual way.
-
-	Networked channels are not synchronized; they always behave
-	as if they are buffered channels of at least one element.
-*/
-package netchan
-
-// BUG: can't use range clause to receive when using ImportNValues to limit the count.
-
-import (
-	"errors"
-	"io"
-	"log"
-	"net"
-	"reflect"
-	"strconv"
-	"sync"
-	"time"
-)
-
-// Export
-
-// expLog is a logging convenience function.  The first argument must be a string.
-func expLog(args ...interface{}) {
-	args[0] = "netchan export: " + args[0].(string)
-	log.Print(args...)
-}
-
-// An Exporter allows a set of channels to be published on a single
-// network port.  A single machine may have multiple Exporters
-// but they must use different ports.
-type Exporter struct {
-	*clientSet
-}
-
-type expClient struct {
-	*encDec
-	exp     *Exporter
-	chans   map[int]*netChan // channels in use by client
-	mu      sync.Mutex       // protects remaining fields
-	errored bool             // client has been sent an error
-	seqNum  int64            // sequences messages sent to client; has value of highest sent
-	ackNum  int64            // highest sequence number acknowledged
-	seqLock sync.Mutex       // guarantees messages are in sequence, only locked under mu
-}
-
-func newClient(exp *Exporter, conn io.ReadWriter) *expClient {
-	client := new(expClient)
-	client.exp = exp
-	client.encDec = newEncDec(conn)
-	client.seqNum = 0
-	client.ackNum = 0
-	client.chans = make(map[int]*netChan)
-	return client
-}
-
-func (client *expClient) sendError(hdr *header, err string) {
-	error := &error_{err}
-	expLog("sending error to client:", error.Error)
-	client.encode(hdr, payError, error) // ignore any encode error, hope client gets it
-	client.mu.Lock()
-	client.errored = true
-	client.mu.Unlock()
-}
-
-func (client *expClient) newChan(hdr *header, dir Dir, name string, size int, count int64) *netChan {
-	exp := client.exp
-	exp.mu.Lock()
-	ech, ok := exp.names[name]
-	exp.mu.Unlock()
-	if !ok {
-		client.sendError(hdr, "no such channel: "+name)
-		return nil
-	}
-	if ech.dir != dir {
-		client.sendError(hdr, "wrong direction for channel: "+name)
-		return nil
-	}
-	nch := newNetChan(name, hdr.Id, ech, client.encDec, size, count)
-	client.chans[hdr.Id] = nch
-	return nch
-}
-
-func (client *expClient) getChan(hdr *header, dir Dir) *netChan {
-	nch := client.chans[hdr.Id]
-	if nch == nil {
-		return nil
-	}
-	if nch.dir != dir {
-		client.sendError(hdr, "wrong direction for channel: "+nch.name)
-	}
-	return nch
-}
-
-// The function run manages sends and receives for a single client.  For each
-// (client Recv) request, this will launch a serveRecv goroutine to deliver
-// the data for that channel, while (client Send) requests are handled as
-// data arrives from the client.
-func (client *expClient) run() {
-	hdr := new(header)
-	hdrValue := reflect.ValueOf(hdr)
-	req := new(request)
-	reqValue := reflect.ValueOf(req)
-	error := new(error_)
-	for {
-		*hdr = header{}
-		if err := client.decode(hdrValue); err != nil {
-			if err != io.EOF {
-				expLog("error decoding client header:", err)
-			}
-			break
-		}
-		switch hdr.PayloadType {
-		case payRequest:
-			*req = request{}
-			if err := client.decode(reqValue); err != nil {
-				expLog("error decoding client request:", err)
-				break
-			}
-			if req.Size < 1 {
-				panic("netchan: remote requested " + strconv.Itoa(req.Size) + " values")
-			}
-			switch req.Dir {
-			case Recv:
-				// look up channel before calling serveRecv to
-				// avoid a lock around client.chans.
-				if nch := client.newChan(hdr, Send, req.Name, req.Size, req.Count); nch != nil {
-					go client.serveRecv(nch, *hdr, req.Count)
-				}
-			case Send:
-				client.newChan(hdr, Recv, req.Name, req.Size, req.Count)
-				// The actual sends will have payload type payData.
-				// TODO: manage the count?
-			default:
-				error.Error = "request: can't handle channel direction"
-				expLog(error.Error, req.Dir)
-				client.encode(hdr, payError, error)
-			}
-		case payData:
-			client.serveSend(*hdr)
-		case payClosed:
-			client.serveClosed(*hdr)
-		case payAck:
-			client.mu.Lock()
-			if client.ackNum != hdr.SeqNum-1 {
-				// Since the sequence number is incremented and the message is sent
-				// in a single instance of locking client.mu, the messages are guaranteed
-				// to be sent in order.  Therefore receipt of acknowledgement N means
-				// all messages <=N have been seen by the recipient.  We check anyway.
-				expLog("sequence out of order:", client.ackNum, hdr.SeqNum)
-			}
-			if client.ackNum < hdr.SeqNum { // If there has been an error, don't back up the count.
-				client.ackNum = hdr.SeqNum
-			}
-			client.mu.Unlock()
-		case payAckSend:
-			if nch := client.getChan(hdr, Send); nch != nil {
-				nch.acked()
-			}
-		default:
-			log.Fatal("netchan export: unknown payload type", hdr.PayloadType)
-		}
-	}
-	client.exp.delClient(client)
-}
-
-// Send all the data on a single channel to a client asking for a Recv.
-// The header is passed by value to avoid issues of overwriting.
-func (client *expClient) serveRecv(nch *netChan, hdr header, count int64) {
-	for {
-		val, ok := nch.recv()
-		if !ok {
-			if err := client.encode(&hdr, payClosed, nil); err != nil {
-				expLog("error encoding server closed message:", err)
-			}
-			break
-		}
-		// We hold the lock during transmission to guarantee messages are
-		// sent in sequence number order.  Also, we increment first so the
-		// value of client.SeqNum is the value of the highest used sequence
-		// number, not one beyond.
-		client.mu.Lock()
-		client.seqNum++
-		hdr.SeqNum = client.seqNum
-		client.seqLock.Lock() // guarantee ordering of messages
-		client.mu.Unlock()
-		err := client.encode(&hdr, payData, val.Interface())
-		client.seqLock.Unlock()
-		if err != nil {
-			expLog("error encoding client response:", err)
-			client.sendError(&hdr, err.Error())
-			break
-		}
-		// Negative count means run forever.
-		if count >= 0 {
-			if count--; count <= 0 {
-				break
-			}
-		}
-	}
-}
-
-// Receive and deliver locally one item from a client asking for a Send
-// The header is passed by value to avoid issues of overwriting.
-func (client *expClient) serveSend(hdr header) {
-	nch := client.getChan(&hdr, Recv)
-	if nch == nil {
-		return
-	}
-	// Create a new value for each received item.
-	val := reflect.New(nch.ch.Type().Elem()).Elem()
-	if err := client.decode(val); err != nil {
-		expLog("value decode:", err, "; type ", nch.ch.Type())
-		return
-	}
-	nch.send(val)
-}
-
-// Report that client has closed the channel that is sending to us.
-// The header is passed by value to avoid issues of overwriting.
-func (client *expClient) serveClosed(hdr header) {
-	nch := client.getChan(&hdr, Recv)
-	if nch == nil {
-		return
-	}
-	nch.close()
-}
-
-func (client *expClient) unackedCount() int64 {
-	client.mu.Lock()
-	n := client.seqNum - client.ackNum
-	client.mu.Unlock()
-	return n
-}
-
-func (client *expClient) seq() int64 {
-	client.mu.Lock()
-	n := client.seqNum
-	client.mu.Unlock()
-	return n
-}
-
-func (client *expClient) ack() int64 {
-	client.mu.Lock()
-	n := client.seqNum
-	client.mu.Unlock()
-	return n
-}
-
-// Serve waits for incoming connections on the listener
-// and serves the Exporter's channels on each.
-// It blocks until the listener is closed.
-func (exp *Exporter) Serve(listener net.Listener) {
-	for {
-		conn, err := listener.Accept()
-		if err != nil {
-			expLog("listen:", err)
-			break
-		}
-		go exp.ServeConn(conn)
-	}
-}
-
-// ServeConn exports the Exporter's channels on conn.
-// It blocks until the connection is terminated.
-func (exp *Exporter) ServeConn(conn io.ReadWriter) {
-	exp.addClient(conn).run()
-}
-
-// NewExporter creates a new Exporter that exports a set of channels.
-func NewExporter() *Exporter {
-	e := &Exporter{
-		clientSet: &clientSet{
-			names:   make(map[string]*chanDir),
-			clients: make(map[unackedCounter]bool),
-		},
-	}
-	return e
-}
-
-// ListenAndServe exports the exporter's channels through the
-// given network and local address defined as in net.Listen.
-func (exp *Exporter) ListenAndServe(network, localaddr string) error {
-	listener, err := net.Listen(network, localaddr)
-	if err != nil {
-		return err
-	}
-	go exp.Serve(listener)
-	return nil
-}
-
-// addClient creates a new expClient and records its existence
-func (exp *Exporter) addClient(conn io.ReadWriter) *expClient {
-	client := newClient(exp, conn)
-	exp.mu.Lock()
-	exp.clients[client] = true
-	exp.mu.Unlock()
-	return client
-}
-
-// delClient forgets the client existed
-func (exp *Exporter) delClient(client *expClient) {
-	exp.mu.Lock()
-	delete(exp.clients, client)
-	exp.mu.Unlock()
-}
-
-// Drain waits until all messages sent from this exporter/importer, including
-// those not yet sent to any client and possibly including those sent while
-// Drain was executing, have been received by the importer.  In short, it
-// waits until all the exporter's messages have been received by a client.
-// If the timeout is positive and Drain takes longer than that to complete,
-// an error is returned.
-func (exp *Exporter) Drain(timeout time.Duration) error {
-	// This wrapper function is here so the method's comment will appear in godoc.
-	return exp.clientSet.drain(timeout)
-}
-
-// Sync waits until all clients of the exporter have received the messages
-// that were sent at the time Sync was invoked.  Unlike Drain, it does not
-// wait for messages sent while it is running or messages that have not been
-// dispatched to any client.  If the timeout is positive and Sync takes longer
-// than that to complete, an error is returned.
-func (exp *Exporter) Sync(timeout time.Duration) error {
-	// This wrapper function is here so the method's comment will appear in godoc.
-	return exp.clientSet.sync(timeout)
-}
-
-func checkChan(chT interface{}, dir Dir) (reflect.Value, error) {
-	chanType := reflect.TypeOf(chT)
-	if chanType.Kind() != reflect.Chan {
-		return reflect.Value{}, errors.New("not a channel")
-	}
-	if dir != Send && dir != Recv {
-		return reflect.Value{}, errors.New("unknown channel direction")
-	}
-	switch chanType.ChanDir() {
-	case reflect.BothDir:
-	case reflect.SendDir:
-		if dir != Recv {
-			return reflect.Value{}, errors.New("to import/export with Send, must provide <-chan")
-		}
-	case reflect.RecvDir:
-		if dir != Send {
-			return reflect.Value{}, errors.New("to import/export with Recv, must provide chan<-")
-		}
-	}
-	return reflect.ValueOf(chT), nil
-}
-
-// Export exports a channel of a given type and specified direction.  The
-// channel to be exported is provided in the call and may be of arbitrary
-// channel type.
-// Despite the literal signature, the effective signature is
-//	Export(name string, chT chan T, dir Dir)
-func (exp *Exporter) Export(name string, chT interface{}, dir Dir) error {
-	ch, err := checkChan(chT, dir)
-	if err != nil {
-		return err
-	}
-	exp.mu.Lock()
-	defer exp.mu.Unlock()
-	_, present := exp.names[name]
-	if present {
-		return errors.New("channel name already being exported:" + name)
-	}
-	exp.names[name] = &chanDir{ch, dir}
-	return nil
-}
-
-// Hangup disassociates the named channel from the Exporter and closes
-// the channel.  Messages in flight for the channel may be dropped.
-func (exp *Exporter) Hangup(name string) error {
-	exp.mu.Lock()
-	chDir, ok := exp.names[name]
-	if ok {
-		delete(exp.names, name)
-	}
-	// TODO drop all instances of channel from client sets
-	exp.mu.Unlock()
-	if !ok {
-		return errors.New("netchan export: hangup: no such channel: " + name)
-	}
-	chDir.ch.Close()
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/import.go gcc-4.8.1/libgo/go/old/netchan/import.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/import.go	2012-01-11 19:31:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/old/netchan/import.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,287 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package netchan
-
-import (
-	"errors"
-	"io"
-	"log"
-	"net"
-	"reflect"
-	"sync"
-	"time"
-)
-
-// Import
-
-// impLog is a logging convenience function.  The first argument must be a string.
-func impLog(args ...interface{}) {
-	args[0] = "netchan import: " + args[0].(string)
-	log.Print(args...)
-}
-
-// An Importer allows a set of channels to be imported from a single
-// remote machine/network port.  A machine may have multiple
-// importers, even from the same machine/network port.
-type Importer struct {
-	*encDec
-	chanLock sync.Mutex // protects access to channel map
-	names    map[string]*netChan
-	chans    map[int]*netChan
-	errors   chan error
-	maxId    int
-	mu       sync.Mutex // protects remaining fields
-	unacked  int64      // number of unacknowledged sends.
-	seqLock  sync.Mutex // guarantees messages are in sequence, only locked under mu
-}
-
-// NewImporter creates a new Importer object to import a set of channels
-// from the given connection. The Exporter must be available and serving when
-// the Importer is created.
-func NewImporter(conn io.ReadWriter) *Importer {
-	imp := new(Importer)
-	imp.encDec = newEncDec(conn)
-	imp.chans = make(map[int]*netChan)
-	imp.names = make(map[string]*netChan)
-	imp.errors = make(chan error, 10)
-	imp.unacked = 0
-	go imp.run()
-	return imp
-}
-
-// Import imports a set of channels from the given network and address.
-func Import(network, remoteaddr string) (*Importer, error) {
-	conn, err := net.Dial(network, remoteaddr)
-	if err != nil {
-		return nil, err
-	}
-	return NewImporter(conn), nil
-}
-
-// shutdown closes all channels for which we are receiving data from the remote side.
-func (imp *Importer) shutdown() {
-	imp.chanLock.Lock()
-	for _, ich := range imp.chans {
-		if ich.dir == Recv {
-			ich.close()
-		}
-	}
-	imp.chanLock.Unlock()
-}
-
-// Handle the data from a single imported data stream, which will
-// have the form
-//	(response, data)*
-// The response identifies by name which channel is transmitting data.
-func (imp *Importer) run() {
-	// Loop on responses; requests are sent by ImportNValues()
-	hdr := new(header)
-	hdrValue := reflect.ValueOf(hdr)
-	ackHdr := new(header)
-	err := new(error_)
-	errValue := reflect.ValueOf(err)
-	for {
-		*hdr = header{}
-		if e := imp.decode(hdrValue); e != nil {
-			if e != io.EOF {
-				impLog("header:", e)
-				imp.shutdown()
-			}
-			return
-		}
-		switch hdr.PayloadType {
-		case payData:
-			// done lower in loop
-		case payError:
-			if e := imp.decode(errValue); e != nil {
-				impLog("error:", e)
-				return
-			}
-			if err.Error != "" {
-				impLog("response error:", err.Error)
-				select {
-				case imp.errors <- errors.New(err.Error):
-					continue // errors are not acknowledged
-				default:
-					imp.shutdown()
-					return
-				}
-			}
-		case payClosed:
-			nch := imp.getChan(hdr.Id, false)
-			if nch != nil {
-				nch.close()
-			}
-			continue // closes are not acknowledged.
-		case payAckSend:
-			// we can receive spurious acks if the channel is
-			// hung up, so we ask getChan to ignore any errors.
-			nch := imp.getChan(hdr.Id, true)
-			if nch != nil {
-				nch.acked()
-				imp.mu.Lock()
-				imp.unacked--
-				imp.mu.Unlock()
-			}
-			continue
-		default:
-			impLog("unexpected payload type:", hdr.PayloadType)
-			return
-		}
-		nch := imp.getChan(hdr.Id, false)
-		if nch == nil {
-			continue
-		}
-		if nch.dir != Recv {
-			impLog("cannot happen: receive from non-Recv channel")
-			return
-		}
-		// Acknowledge receipt
-		ackHdr.Id = hdr.Id
-		ackHdr.SeqNum = hdr.SeqNum
-		imp.encode(ackHdr, payAck, nil)
-		// Create a new value for each received item.
-		value := reflect.New(nch.ch.Type().Elem()).Elem()
-		if e := imp.decode(value); e != nil {
-			impLog("importer value decode:", e)
-			return
-		}
-		nch.send(value)
-	}
-}
-
-func (imp *Importer) getChan(id int, errOk bool) *netChan {
-	imp.chanLock.Lock()
-	ich := imp.chans[id]
-	imp.chanLock.Unlock()
-	if ich == nil {
-		if !errOk {
-			impLog("unknown id in netchan request: ", id)
-		}
-		return nil
-	}
-	return ich
-}
-
-// Errors returns a channel from which transmission and protocol errors
-// can be read. Clients of the importer are not required to read the error
-// channel for correct execution. However, if too many errors occur
-// without being read from the error channel, the importer will shut down.
-func (imp *Importer) Errors() chan error {
-	return imp.errors
-}
-
-// Import imports a channel of the given type, size and specified direction.
-// It is equivalent to ImportNValues with a count of -1, meaning unbounded.
-func (imp *Importer) Import(name string, chT interface{}, dir Dir, size int) error {
-	return imp.ImportNValues(name, chT, dir, size, -1)
-}
-
-// ImportNValues imports a channel of the given type and specified
-// direction and then receives or transmits up to n values on that
-// channel.  A value of n==-1 implies an unbounded number of values.  The
-// channel will have buffer space for size values, or 1 value if size < 1.
-// The channel to be bound to the remote site's channel is provided
-// in the call and may be of arbitrary channel type.
-// Despite the literal signature, the effective signature is
-//	ImportNValues(name string, chT chan T, dir Dir, size, n int) error
-// Example usage:
-//	imp, err := NewImporter("tcp", "netchanserver.mydomain.com:1234")
-//	if err != nil { log.Fatal(err) }
-//	ch := make(chan myType)
-//	err = imp.ImportNValues("name", ch, Recv, 1, 1)
-//	if err != nil { log.Fatal(err) }
-//	fmt.Printf("%+v\n", <-ch)
-func (imp *Importer) ImportNValues(name string, chT interface{}, dir Dir, size, n int) error {
-	ch, err := checkChan(chT, dir)
-	if err != nil {
-		return err
-	}
-	imp.chanLock.Lock()
-	defer imp.chanLock.Unlock()
-	_, present := imp.names[name]
-	if present {
-		return errors.New("channel name already being imported:" + name)
-	}
-	if size < 1 {
-		size = 1
-	}
-	id := imp.maxId
-	imp.maxId++
-	nch := newNetChan(name, id, &chanDir{ch, dir}, imp.encDec, size, int64(n))
-	imp.names[name] = nch
-	imp.chans[id] = nch
-	// Tell the other side about this channel.
-	hdr := &header{Id: id}
-	req := &request{Name: name, Count: int64(n), Dir: dir, Size: size}
-	if err = imp.encode(hdr, payRequest, req); err != nil {
-		impLog("request encode:", err)
-		return err
-	}
-	if dir == Send {
-		go func() {
-			for i := 0; n == -1 || i < n; i++ {
-				val, ok := nch.recv()
-				if !ok {
-					if err = imp.encode(hdr, payClosed, nil); err != nil {
-						impLog("error encoding client closed message:", err)
-					}
-					return
-				}
-				// We hold the lock during transmission to guarantee messages are
-				// sent in order.
-				imp.mu.Lock()
-				imp.unacked++
-				imp.seqLock.Lock()
-				imp.mu.Unlock()
-				if err = imp.encode(hdr, payData, val.Interface()); err != nil {
-					impLog("error encoding client send:", err)
-					return
-				}
-				imp.seqLock.Unlock()
-			}
-		}()
-	}
-	return nil
-}
-
-// Hangup disassociates the named channel from the Importer and closes
-// the channel.  Messages in flight for the channel may be dropped.
-func (imp *Importer) Hangup(name string) error {
-	imp.chanLock.Lock()
-	defer imp.chanLock.Unlock()
-	nc := imp.names[name]
-	if nc == nil {
-		return errors.New("netchan import: hangup: no such channel: " + name)
-	}
-	delete(imp.names, name)
-	delete(imp.chans, nc.id)
-	nc.close()
-	return nil
-}
-
-func (imp *Importer) unackedCount() int64 {
-	imp.mu.Lock()
-	n := imp.unacked
-	imp.mu.Unlock()
-	return n
-}
-
-// Drain waits until all messages sent from this exporter/importer, including
-// those not yet sent to any server and possibly including those sent while
-// Drain was executing, have been received by the exporter.  In short, it
-// waits until all the importer's messages have been received.
-// If the timeout (measured in nanoseconds) is positive and Drain takes
-// longer than that to complete, an error is returned.
-func (imp *Importer) Drain(timeout int64) error {
-	deadline := time.Now().Add(time.Duration(timeout))
-	for imp.unackedCount() > 0 {
-		if timeout > 0 && time.Now().After(deadline) {
-			return errors.New("timeout")
-		}
-		time.Sleep(100 * time.Millisecond)
-	}
-	return nil
-}
diff -Naur gcc-4.8.1.orig/libgo/go/old/netchan/netchan_test.go gcc-4.8.1/libgo/go/old/netchan/netchan_test.go
--- gcc-4.8.1.orig/libgo/go/old/netchan/netchan_test.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/old/netchan/netchan_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,447 +0,0 @@
-// Copyright 2010 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package netchan
-
-import (
-	"net"
-	"strings"
-	"testing"
-	"time"
-)
-
-const count = 10     // number of items in most tests
-const closeCount = 5 // number of items when sender closes early
-
-const base = 23
-
-func exportSend(exp *Exporter, n int, t *testing.T, done chan bool) {
-	ch := make(chan int)
-	err := exp.Export("exportedSend", ch, Send)
-	if err != nil {
-		t.Fatal("exportSend:", err)
-	}
-	go func() {
-		for i := 0; i < n; i++ {
-			ch <- base + i
-		}
-		close(ch)
-		if done != nil {
-			done <- true
-		}
-	}()
-}
-
-func exportReceive(exp *Exporter, t *testing.T, expDone chan bool) {
-	ch := make(chan int)
-	err := exp.Export("exportedRecv", ch, Recv)
-	expDone <- true
-	if err != nil {
-		t.Fatal("exportReceive:", err)
-	}
-	for i := 0; i < count; i++ {
-		v, ok := <-ch
-		if !ok {
-			if i != closeCount {
-				t.Errorf("exportReceive expected close at %d; got one at %d", closeCount, i)
-			}
-			break
-		}
-		if v != base+i {
-			t.Errorf("export Receive: bad value: expected %d+%d=%d; got %d", base, i, base+i, v)
-		}
-	}
-}
-
-func importSend(imp *Importer, n int, t *testing.T, done chan bool) {
-	ch := make(chan int)
-	err := imp.ImportNValues("exportedRecv", ch, Send, 3, -1)
-	if err != nil {
-		t.Fatal("importSend:", err)
-	}
-	go func() {
-		for i := 0; i < n; i++ {
-			ch <- base + i
-		}
-		close(ch)
-		if done != nil {
-			done <- true
-		}
-	}()
-}
-
-func importReceive(imp *Importer, t *testing.T, done chan bool) {
-	ch := make(chan int)
-	err := imp.ImportNValues("exportedSend", ch, Recv, 3, count)
-	if err != nil {
-		t.Fatal("importReceive:", err)
-	}
-	for i := 0; i < count; i++ {
-		v, ok := <-ch
-		if !ok {
-			if i != closeCount {
-				t.Errorf("importReceive expected close at %d; got one at %d", closeCount, i)
-			}
-			break
-		}
-		if v != base+i {
-			t.Errorf("importReceive: bad value: expected %d+%d=%d; got %+d", base, i, base+i, v)
-		}
-	}
-	if done != nil {
-		done <- true
-	}
-}
-
-func TestExportSendImportReceive(t *testing.T) {
-	exp, imp := pair(t)
-	exportSend(exp, count, t, nil)
-	importReceive(imp, t, nil)
-}
-
-func TestExportReceiveImportSend(t *testing.T) {
-	exp, imp := pair(t)
-	expDone := make(chan bool)
-	done := make(chan bool)
-	go func() {
-		exportReceive(exp, t, expDone)
-		done <- true
-	}()
-	<-expDone
-	importSend(imp, count, t, nil)
-	<-done
-}
-
-func TestClosingExportSendImportReceive(t *testing.T) {
-	exp, imp := pair(t)
-	exportSend(exp, closeCount, t, nil)
-	importReceive(imp, t, nil)
-}
-
-func TestClosingImportSendExportReceive(t *testing.T) {
-	exp, imp := pair(t)
-	expDone := make(chan bool)
-	done := make(chan bool)
-	go func() {
-		exportReceive(exp, t, expDone)
-		done <- true
-	}()
-	<-expDone
-	importSend(imp, closeCount, t, nil)
-	<-done
-}
-
-func TestErrorForIllegalChannel(t *testing.T) {
-	exp, imp := pair(t)
-	// Now export a channel.
-	ch := make(chan int, 1)
-	err := exp.Export("aChannel", ch, Send)
-	if err != nil {
-		t.Fatal("export:", err)
-	}
-	ch <- 1234
-	close(ch)
-	// Now try to import a different channel.
-	ch = make(chan int)
-	err = imp.Import("notAChannel", ch, Recv, 1)
-	if err != nil {
-		t.Fatal("import:", err)
-	}
-	// Expect an error now.  Start a timeout.
-	timeout := make(chan bool, 1) // buffered so closure will not hang around.
-	go func() {
-		time.Sleep(10 * time.Second) // very long, to give even really slow machines a chance.
-		timeout <- true
-	}()
-	select {
-	case err = <-imp.Errors():
-		if strings.Index(err.Error(), "no such channel") < 0 {
-			t.Error("wrong error for nonexistent channel:", err)
-		}
-	case <-timeout:
-		t.Error("import of nonexistent channel did not receive an error")
-	}
-}
-
-// Not a great test but it does at least invoke Drain.
-func TestExportDrain(t *testing.T) {
-	exp, imp := pair(t)
-	done := make(chan bool)
-	go func() {
-		exportSend(exp, closeCount, t, nil)
-		done <- true
-	}()
-	<-done
-	go importReceive(imp, t, done)
-	exp.Drain(0)
-	<-done
-}
-
-// Not a great test but it does at least invoke Drain.
-func TestImportDrain(t *testing.T) {
-	exp, imp := pair(t)
-	expDone := make(chan bool)
-	go exportReceive(exp, t, expDone)
-	<-expDone
-	importSend(imp, closeCount, t, nil)
-	imp.Drain(0)
-}
-
-// Not a great test but it does at least invoke Sync.
-func TestExportSync(t *testing.T) {
-	exp, imp := pair(t)
-	done := make(chan bool)
-	exportSend(exp, closeCount, t, nil)
-	go importReceive(imp, t, done)
-	exp.Sync(0)
-	<-done
-}
-
-// Test hanging up the send side of an export.
-// TODO: test hanging up the receive side of an export.
-func TestExportHangup(t *testing.T) {
-	exp, imp := pair(t)
-	ech := make(chan int)
-	err := exp.Export("exportedSend", ech, Send)
-	if err != nil {
-		t.Fatal("export:", err)
-	}
-	// Prepare to receive two values. We'll actually deliver only one.
-	ich := make(chan int)
-	err = imp.ImportNValues("exportedSend", ich, Recv, 1, 2)
-	if err != nil {
-		t.Fatal("import exportedSend:", err)
-	}
-	// Send one value, receive it.
-	const Value = 1234
-	ech <- Value
-	v := <-ich
-	if v != Value {
-		t.Fatal("expected", Value, "got", v)
-	}
-	// Now hang up the channel.  Importer should see it close.
-	exp.Hangup("exportedSend")
-	v, ok := <-ich
-	if ok {
-		t.Fatal("expected channel to be closed; got value", v)
-	}
-}
-
-// Test hanging up the send side of an import.
-// TODO: test hanging up the receive side of an import.
-func TestImportHangup(t *testing.T) {
-	exp, imp := pair(t)
-	ech := make(chan int)
-	err := exp.Export("exportedRecv", ech, Recv)
-	if err != nil {
-		t.Fatal("export:", err)
-	}
-	// Prepare to Send two values. We'll actually deliver only one.
-	ich := make(chan int)
-	err = imp.ImportNValues("exportedRecv", ich, Send, 1, 2)
-	if err != nil {
-		t.Fatal("import exportedRecv:", err)
-	}
-	// Send one value, receive it.
-	const Value = 1234
-	ich <- Value
-	v := <-ech
-	if v != Value {
-		t.Fatal("expected", Value, "got", v)
-	}
-	// Now hang up the channel.  Exporter should see it close.
-	imp.Hangup("exportedRecv")
-	v, ok := <-ech
-	if ok {
-		t.Fatal("expected channel to be closed; got value", v)
-	}
-}
-
-// loop back exportedRecv to exportedSend,
-// but receive a value from ctlch before starting the loop.
-func exportLoopback(exp *Exporter, t *testing.T) {
-	inch := make(chan int)
-	if err := exp.Export("exportedRecv", inch, Recv); err != nil {
-		t.Fatal("exportRecv")
-	}
-
-	outch := make(chan int)
-	if err := exp.Export("exportedSend", outch, Send); err != nil {
-		t.Fatal("exportSend")
-	}
-
-	ctlch := make(chan int)
-	if err := exp.Export("exportedCtl", ctlch, Recv); err != nil {
-		t.Fatal("exportRecv")
-	}
-
-	go func() {
-		<-ctlch
-		for i := 0; i < count; i++ {
-			x := <-inch
-			if x != base+i {
-				t.Errorf("exportLoopback expected %d; got %d", i, x)
-			}
-			outch <- x
-		}
-	}()
-}
-
-// This test checks that channel operations can proceed
-// even when other concurrent operations are blocked.
-func TestIndependentSends(t *testing.T) {
-	if testing.Short() {
-		t.Logf("disabled test during -short")
-		return
-	}
-	exp, imp := pair(t)
-
-	exportLoopback(exp, t)
-
-	importSend(imp, count, t, nil)
-	done := make(chan bool)
-	go importReceive(imp, t, done)
-
-	// wait for export side to try to deliver some values.
-	time.Sleep(250 * time.Millisecond)
-
-	ctlch := make(chan int)
-	if err := imp.ImportNValues("exportedCtl", ctlch, Send, 1, 1); err != nil {
-		t.Fatal("importSend:", err)
-	}
-	ctlch <- 0
-
-	<-done
-}
-
-// This test cross-connects a pair of exporter/importer pairs.
-type value struct {
-	I      int
-	Source string
-}
-
-func TestCrossConnect(t *testing.T) {
-	e1, i1 := pair(t)
-	e2, i2 := pair(t)
-
-	crossExport(e1, e2, t)
-	crossImport(i1, i2, t)
-}
-
-// Export side of cross-traffic.
-func crossExport(e1, e2 *Exporter, t *testing.T) {
-	s := make(chan value)
-	err := e1.Export("exportedSend", s, Send)
-	if err != nil {
-		t.Fatal("exportSend:", err)
-	}
-
-	r := make(chan value)
-	err = e2.Export("exportedReceive", r, Recv)
-	if err != nil {
-		t.Fatal("exportReceive:", err)
-	}
-
-	go crossLoop("export", s, r, t)
-}
-
-// Import side of cross-traffic.
-func crossImport(i1, i2 *Importer, t *testing.T) {
-	s := make(chan value)
-	err := i2.Import("exportedReceive", s, Send, 2)
-	if err != nil {
-		t.Fatal("import of exportedReceive:", err)
-	}
-
-	r := make(chan value)
-	err = i1.Import("exportedSend", r, Recv, 2)
-	if err != nil {
-		t.Fatal("import of exported Send:", err)
-	}
-
-	crossLoop("import", s, r, t)
-}
-
-// Cross-traffic: send and receive 'count' numbers.
-func crossLoop(name string, s, r chan value, t *testing.T) {
-	for si, ri := 0, 0; si < count && ri < count; {
-		select {
-		case s <- value{si, name}:
-			si++
-		case v := <-r:
-			if v.I != ri {
-				t.Errorf("loop: bad value: expected %d, hello; got %+v", ri, v)
-			}
-			ri++
-		}
-	}
-}
-
-const flowCount = 100
-
-// test flow control from exporter to importer.
-func TestExportFlowControl(t *testing.T) {
-	if testing.Short() {
-		t.Logf("disabled test during -short")
-		return
-	}
-	exp, imp := pair(t)
-
-	sendDone := make(chan bool, 1)
-	exportSend(exp, flowCount, t, sendDone)
-
-	ch := make(chan int)
-	err := imp.ImportNValues("exportedSend", ch, Recv, 20, -1)
-	if err != nil {
-		t.Fatal("importReceive:", err)
-	}
-
-	testFlow(sendDone, ch, flowCount, t)
-}
-
-// test flow control from importer to exporter.
-func TestImportFlowControl(t *testing.T) {
-	if testing.Short() {
-		t.Logf("disabled test during -short")
-		return
-	}
-	exp, imp := pair(t)
-
-	ch := make(chan int)
-	err := exp.Export("exportedRecv", ch, Recv)
-	if err != nil {
-		t.Fatal("importReceive:", err)
-	}
-
-	sendDone := make(chan bool, 1)
-	importSend(imp, flowCount, t, sendDone)
-	testFlow(sendDone, ch, flowCount, t)
-}
-
-func testFlow(sendDone chan bool, ch <-chan int, N int, t *testing.T) {
-	go func() {
-		time.Sleep(500 * time.Millisecond)
-		sendDone <- false
-	}()
-
-	if <-sendDone {
-		t.Fatal("send did not block")
-	}
-	n := 0
-	for i := range ch {
-		t.Log("after blocking, got value ", i)
-		n++
-	}
-	if n != N {
-		t.Fatalf("expected %d values; got %d", N, n)
-	}
-}
-
-func pair(t *testing.T) (*Exporter, *Importer) {
-	c0, c1 := net.Pipe()
-	exp := NewExporter()
-	go exp.ServeConn(c0)
-	imp := NewImporter(c1)
-	return exp, imp
-}
diff -Naur gcc-4.8.1.orig/libgo/go/os/doc.go gcc-4.8.1/libgo/go/os/doc.go
--- gcc-4.8.1.orig/libgo/go/os/doc.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/doc.go	2013-07-16 01:55:04.520470000 -0500
@@ -79,6 +79,8 @@
 // SysUsage returns system-dependent resource usage information about
 // the exited process.  Convert it to the appropriate underlying
 // type, such as *syscall.Rusage on Unix, to access its contents.
+// (On Unix, *syscall.Rusage matches struct rusage as defined in the
+// getrusage(2) manual page.)
 func (p *ProcessState) SysUsage() interface{} {
 	return p.sysUsage()
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/env_unix_test.go gcc-4.8.1/libgo/go/os/env_unix_test.go
--- gcc-4.8.1.orig/libgo/go/os/env_unix_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/env_unix_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,30 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin freebsd linux netbsd openbsd
+
+package os_test
+
+import (
+	. "os"
+	"testing"
+)
+
+var setenvEinvalTests = []struct {
+	k, v string
+}{
+	{"", ""},      // empty key
+	{"k=v", ""},   // '=' in key
+	{"\x00", ""},  // '\x00' in key
+	{"k", "\x00"}, // '\x00' in value
+}
+
+func TestSetenvUnixEinval(t *testing.T) {
+	for _, tt := range setenvEinvalTests {
+		err := Setenv(tt.k, tt.v)
+		if err == nil {
+			t.Errorf(`Setenv(%q, %q) == nil, want error`, tt.k, tt.v)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec.go gcc-4.8.1/libgo/go/os/exec/exec.go
--- gcc-4.8.1.orig/libgo/go/os/exec/exec.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/exec/exec.go	2013-07-16 01:55:04.520470000 -0500
@@ -235,6 +235,8 @@
 // Start starts the specified command but does not wait for it to complete.
 func (c *Cmd) Start() error {
 	if c.err != nil {
+		c.closeDescriptors(c.closeAfterStart)
+		c.closeDescriptors(c.closeAfterWait)
 		return c.err
 	}
 	if c.Process != nil {
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/exec_test.go gcc-4.8.1/libgo/go/os/exec/exec_test.go
--- gcc-4.8.1.orig/libgo/go/os/exec/exec_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/exec/exec_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -14,17 +14,23 @@
 	"net/http"
 	"net/http/httptest"
 	"os"
+	"path/filepath"
 	"runtime"
 	"strconv"
 	"strings"
 	"testing"
+	"time"
 )
 
 func helperCommand(s ...string) *Cmd {
 	cs := []string{"-test.run=TestHelperProcess", "--"}
 	cs = append(cs, s...)
 	cmd := Command(os.Args[0], cs...)
-	cmd.Env = append([]string{"GO_WANT_HELPER_PROCESS=1"}, os.Environ()...)
+	cmd.Env = []string{"GO_WANT_HELPER_PROCESS=1"}
+	path := os.Getenv("LD_LIBRARY_PATH")
+	if path != "" {
+		cmd.Env = append(cmd.Env, "LD_LIBRARY_PATH="+path)
+	}
 	return cmd
 }
 
@@ -83,10 +89,16 @@
 
 func TestExitStatus(t *testing.T) {
 	// Test that exit values are returned correctly
-	err := helperCommand("exit", "42").Run()
+	cmd := helperCommand("exit", "42")
+	err := cmd.Run()
+	want := "exit status 42"
+	switch runtime.GOOS {
+	case "plan9":
+		want = fmt.Sprintf("exit status: '%s %d: 42'", filepath.Base(cmd.Path), cmd.ProcessState.Pid())
+	}
 	if werr, ok := err.(*ExitError); ok {
-		if s, e := werr.Error(), "exit status 42"; s != e {
-			t.Errorf("from exit 42 got exit %q, want %q", s, e)
+		if s := werr.Error(); s != want {
+			t.Errorf("from exit 42 got exit %q, want %q", s, want)
 		}
 	} else {
 		t.Fatalf("expected *ExitError from exit 42; got %T: %v", err, err)
@@ -144,8 +156,141 @@
 	check("Wait", err)
 }
 
+// Issue 5071
+func TestPipeLookPathLeak(t *testing.T) {
+	fd0 := numOpenFDS(t)
+	for i := 0; i < 4; i++ {
+		cmd := Command("something-that-does-not-exist-binary")
+		cmd.StdoutPipe()
+		cmd.StderrPipe()
+		cmd.StdinPipe()
+		if err := cmd.Run(); err == nil {
+			t.Fatal("unexpected success")
+		}
+	}
+	fdGrowth := numOpenFDS(t) - fd0
+	if fdGrowth > 2 {
+		t.Errorf("leaked %d fds; want ~0", fdGrowth)
+	}
+}
+
+func numOpenFDS(t *testing.T) int {
+	lsof, err := Command("lsof", "-n", "-p", strconv.Itoa(os.Getpid())).Output()
+	if err != nil {
+		t.Skip("skipping test; error finding or running lsof")
+		return 0
+	}
+	return bytes.Count(lsof, []byte("\n"))
+}
+
 var testedAlreadyLeaked = false
 
+// basefds returns the number of expected file descriptors
+// to be present in a process at start.
+func basefds() uintptr {
+	n := os.Stderr.Fd() + 1
+
+	// Go runtime for 32-bit Plan 9 requires that /dev/bintime
+	// be kept open.
+	// See ../../runtime/time_plan9_386.c:/^runtimeÂ·nanotime
+	if runtime.GOOS == "plan9" && runtime.GOARCH == "386" {
+		n++
+	}
+	return n
+}
+
+func TestExtraFilesFDShuffle(t *testing.T) {
+	t.Skip("TODO: TestExtraFilesFDShuffle is too non-portable; skipping")
+
+	// syscall.StartProcess maps all the FDs passed to it in
+	// ProcAttr.Files (the concatenation of stdin,stdout,stderr and
+	// ExtraFiles) into consecutive FDs in the child, that is:
+	// Files{11, 12, 6, 7, 9, 3} should result in the file
+	// represented by FD 11 in the parent being made available as 0
+	// in the child, 12 as 1, etc.
+	//
+	// We want to test that FDs in the child do not get overwritten
+	// by one another as this shuffle occurs. The original implementation
+	// was buggy in that in some data dependent cases it would ovewrite
+	// stderr in the child with one of the ExtraFile members.
+	// Testing for this case is difficult because it relies on using
+	// the same FD values as that case. In particular, an FD of 3
+	// must be at an index of 4 or higher in ProcAttr.Files and
+	// the FD of the write end of the Stderr pipe (as obtained by
+	// StderrPipe()) must be the same as the size of ProcAttr.Files;
+	// therefore we test that the read end of this pipe (which is what
+	// is returned to the parent by StderrPipe() being one less than
+	// the size of ProcAttr.Files, i.e. 3+len(cmd.ExtraFiles).
+	//
+	// Moving this test case around within the overall tests may
+	// affect the FDs obtained and hence the checks to catch these cases.
+	npipes := 2
+	c := helperCommand("extraFilesAndPipes", strconv.Itoa(npipes+1))
+	rd, wr, _ := os.Pipe()
+	defer rd.Close()
+	if rd.Fd() != 3 {
+		t.Errorf("bad test value for test pipe: fd %d", rd.Fd())
+	}
+	stderr, _ := c.StderrPipe()
+	wr.WriteString("_LAST")
+	wr.Close()
+
+	pipes := make([]struct {
+		r, w *os.File
+	}, npipes)
+	data := []string{"a", "b"}
+
+	for i := 0; i < npipes; i++ {
+		r, w, err := os.Pipe()
+		if err != nil {
+			t.Fatalf("unexpected error creating pipe: %s", err)
+		}
+		pipes[i].r = r
+		pipes[i].w = w
+		w.WriteString(data[i])
+		c.ExtraFiles = append(c.ExtraFiles, pipes[i].r)
+		defer func() {
+			r.Close()
+			w.Close()
+		}()
+	}
+	// Put fd 3 at the end.
+	c.ExtraFiles = append(c.ExtraFiles, rd)
+
+	stderrFd := int(stderr.(*os.File).Fd())
+	if stderrFd != ((len(c.ExtraFiles) + 3) - 1) {
+		t.Errorf("bad test value for stderr pipe")
+	}
+
+	expected := "child: " + strings.Join(data, "") + "_LAST"
+
+	err := c.Start()
+	if err != nil {
+		t.Fatalf("Run: %v", err)
+	}
+	ch := make(chan string, 1)
+	go func(ch chan string) {
+		buf := make([]byte, 512)
+		n, err := stderr.Read(buf)
+		if err != nil {
+			t.Fatalf("Read: %s", err)
+			ch <- err.Error()
+		} else {
+			ch <- string(buf[:n])
+		}
+		close(ch)
+	}(ch)
+	select {
+	case m := <-ch:
+		if m != expected {
+			t.Errorf("Read: '%s' not '%s'", m, expected)
+		}
+	case <-time.After(5 * time.Second):
+		t.Errorf("Read timedout")
+	}
+	c.Wait()
+}
+
 func TestExtraFiles(t *testing.T) {
 	if runtime.GOOS == "windows" {
 		t.Skip("no operating system support; skipping")
@@ -155,7 +300,7 @@
 	// our environment.
 	if !testedAlreadyLeaked {
 		testedAlreadyLeaked = true
-		for fd := os.Stderr.Fd() + 1; fd <= 101; fd++ {
+		for fd := basefds(); fd <= 101; fd++ {
 			err := os.NewFile(fd, "").Close()
 			if err == nil {
 				t.Logf("Something already leaked - closed fd %d", fd)
@@ -209,13 +354,16 @@
 	}
 
 	c := helperCommand("read3")
+	var stdout, stderr bytes.Buffer
+	c.Stdout = &stdout
+	c.Stderr = &stderr
 	c.ExtraFiles = []*os.File{tf}
-	bs, err := c.CombinedOutput()
+	err = c.Run()
 	if err != nil {
-		t.Fatalf("CombinedOutput: %v; output %q", err, bs)
+		t.Fatalf("Run: %v; stdout %q, stderr %q", err, stdout.Bytes(), stderr.Bytes())
 	}
-	if string(bs) != text {
-		t.Errorf("got %q; want %q", string(bs), text)
+	if stdout.String() != text {
+		t.Errorf("got stdout %q, stderr %q; want %q on stdout", stdout.String(), stderr.String(), text)
 	}
 }
 
@@ -265,6 +413,13 @@
 		}
 		la.Close()
 		lb.Close()
+		for _, f := range ca.ExtraFiles {
+			f.Close()
+		}
+		for _, f := range cb.ExtraFiles {
+			f.Close()
+		}
+
 	}
 }
 
@@ -360,7 +515,7 @@
 		default:
 			// Now verify that there are no other open fds.
 			var files []*os.File
-			for wantfd := os.Stderr.Fd() + 2; wantfd <= 100; wantfd++ {
+			for wantfd := basefds() + 1; wantfd <= 100; wantfd++ {
 				f, err := os.Open(os.Args[0])
 				if err != nil {
 					fmt.Printf("error opening file with expected fd %d: %v", wantfd, err)
@@ -384,7 +539,7 @@
 		// what we do with fd3 as long as we refer to it;
 		// closing it is the easy choice.
 		fd3.Close()
-		os.Stderr.Write(bs)
+		os.Stdout.Write(bs)
 	case "exit":
 		n, _ := strconv.Atoi(args[0])
 		os.Exit(n)
@@ -398,6 +553,35 @@
 			}
 		}
 		os.Exit(0)
+	case "extraFilesAndPipes":
+		n, _ := strconv.Atoi(args[0])
+		pipes := make([]*os.File, n)
+		for i := 0; i < n; i++ {
+			pipes[i] = os.NewFile(uintptr(3+i), strconv.Itoa(i))
+		}
+		response := ""
+		for i, r := range pipes {
+			ch := make(chan string, 1)
+			go func(c chan string) {
+				buf := make([]byte, 10)
+				n, err := r.Read(buf)
+				if err != nil {
+					fmt.Fprintf(os.Stderr, "Child: read error: %v on pipe %d\n", err, i)
+					os.Exit(1)
+				}
+				c <- string(buf[:n])
+				close(c)
+			}(ch)
+			select {
+			case m := <-ch:
+				response = response + m
+			case <-time.After(5 * time.Second):
+				fmt.Fprintf(os.Stderr, "Child: Timeout reading from pipe: %d\n", i)
+				os.Exit(1)
+			}
+		}
+		fmt.Fprintf(os.Stderr, "child: %s", response)
+		os.Exit(0)
 	default:
 		fmt.Fprintf(os.Stderr, "Unknown command %q\n", cmd)
 		os.Exit(2)
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_plan9.go gcc-4.8.1/libgo/go/os/exec/lp_plan9.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_plan9.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/exec/lp_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -8,7 +8,6 @@
 	"errors"
 	"os"
 	"strings"
-	"syscall"
 )
 
 // ErrNotFound is the error resulting if a path search failed to find an executable file.
@@ -22,7 +21,7 @@
 	if m := d.Mode(); !m.IsDir() && m&0111 != 0 {
 		return nil
 	}
-	return syscall.EPERM
+	return os.ErrPermission
 }
 
 // LookPath searches for an executable binary named file
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_unix.go gcc-4.8.1/libgo/go/os/exec/lp_unix.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_unix.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/exec/lp_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -42,6 +42,9 @@
 		return "", &Error{file, err}
 	}
 	pathenv := os.Getenv("PATH")
+	if pathenv == "" {
+		return "", &Error{file, ErrNotFound}
+	}
 	for _, dir := range strings.Split(pathenv, ":") {
 		if dir == "" {
 			// Unix shell semantics: path element "" means "."
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_unix_test.go gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_unix_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/exec/lp_unix_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,55 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin freebsd linux netbsd openbsd
+
+package exec
+
+import (
+	"io/ioutil"
+	"os"
+	"testing"
+)
+
+func TestLookPathUnixEmptyPath(t *testing.T) {
+	tmp, err := ioutil.TempDir("", "TestLookPathUnixEmptyPath")
+	if err != nil {
+		t.Fatal("TempDir failed: ", err)
+	}
+	defer os.RemoveAll(tmp)
+	wd, err := os.Getwd()
+	if err != nil {
+		t.Fatal("Getwd failed: ", err)
+	}
+	err = os.Chdir(tmp)
+	if err != nil {
+		t.Fatal("Chdir failed: ", err)
+	}
+	defer os.Chdir(wd)
+
+	f, err := os.OpenFile("exec_me", os.O_CREATE|os.O_EXCL, 0700)
+	if err != nil {
+		t.Fatal("OpenFile failed: ", err)
+	}
+	err = f.Close()
+	if err != nil {
+		t.Fatal("Close failed: ", err)
+	}
+
+	pathenv := os.Getenv("PATH")
+	defer os.Setenv("PATH", pathenv)
+
+	err = os.Setenv("PATH", "")
+	if err != nil {
+		t.Fatal("Setenv failed: ", err)
+	}
+
+	path, err := LookPath("exec_me")
+	if err == nil {
+		t.Fatal("LookPath found exec_me in empty $PATH")
+	}
+	if path != "" {
+		t.Fatalf("LookPath path == %q when err != nil", path)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec/lp_windows.go gcc-4.8.1/libgo/go/os/exec/lp_windows.go
--- gcc-4.8.1.orig/libgo/go/os/exec/lp_windows.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/exec/lp_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -72,7 +72,7 @@
 		return
 	}
 	if pathenv := os.Getenv(`PATH`); pathenv != `` {
-		for _, dir := range strings.Split(pathenv, `;`) {
+		for _, dir := range splitList(pathenv) {
 			if f, err = findExecutable(dir+`\`+file, exts); err == nil {
 				return
 			}
@@ -80,3 +80,36 @@
 	}
 	return ``, &Error{file, ErrNotFound}
 }
+
+func splitList(path string) []string {
+	// The same implementation is used in SplitList in path/filepath;
+	// consider changing path/filepath when changing this.
+
+	if path == "" {
+		return []string{}
+	}
+
+	// Split path, respecting but preserving quotes.
+	list := []string{}
+	start := 0
+	quo := false
+	for i := 0; i < len(path); i++ {
+		switch c := path[i]; {
+		case c == '"':
+			quo = !quo
+		case c == os.PathListSeparator && !quo:
+			list = append(list, path[start:i])
+			start = i + 1
+		}
+	}
+	list = append(list, path[start:])
+
+	// Remove quotes.
+	for i, s := range list {
+		if strings.Contains(s, `"`) {
+			list[i] = strings.Replace(s, `"`, ``, -1)
+		}
+	}
+
+	return list
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/exec_posix.go gcc-4.8.1/libgo/go/os/exec_posix.go
--- gcc-4.8.1.orig/libgo/go/os/exec_posix.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/os/exec_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -118,9 +118,9 @@
 	case status.Exited():
 		res = "exit status " + itod(status.ExitStatus())
 	case status.Signaled():
-		res = "signal " + itod(int(status.Signal()))
+		res = "signal: " + status.Signal().String()
 	case status.Stopped():
-		res = "stop signal " + itod(int(status.StopSignal()))
+		res = "stop signal: " + status.StopSignal().String()
 		if status.StopSignal() == syscall.SIGTRAP && status.TrapCause() != 0 {
 			res += " (trap " + itod(status.TrapCause()) + ")"
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/os/file_plan9.go gcc-4.8.1/libgo/go/os/file_plan9.go
--- gcc-4.8.1.orig/libgo/go/os/file_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/file_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -104,7 +104,6 @@
 		append = true
 	}
 
-	syscall.ForkLock.RLock()
 	if (create && trunc) || excl {
 		fd, e = syscall.Create(name, flag, syscallMode(perm))
 	} else {
@@ -117,7 +116,6 @@
 			}
 		}
 	}
-	syscall.ForkLock.RUnlock()
 
 	if e != nil {
 		return nil, &PathError{"open", name, e}
@@ -246,13 +244,23 @@
 
 // write writes len(b) bytes to the File.
 // It returns the number of bytes written and an error, if any.
+// Since Plan 9 preserves message boundaries, never allow
+// a zero-byte write.
 func (f *File) write(b []byte) (n int, err error) {
+	if len(b) == 0 {
+		return 0, nil
+	}
 	return syscall.Write(f.fd, b)
 }
 
 // pwrite writes len(b) bytes to the File starting at byte offset off.
 // It returns the number of bytes written and an error, if any.
+// Since Plan 9 preserves message boundaries, never allow
+// a zero-byte write.
 func (f *File) pwrite(b []byte, off int64) (n int, err error) {
+	if len(b) == 0 {
+		return 0, nil
+	}
 	return syscall.Pwrite(f.fd, b, off)
 }
 
@@ -300,7 +308,7 @@
 	d.Null()
 	d.Name = newname
 
-	var buf [syscall.STATFIXLEN]byte
+	buf := make([]byte, syscall.STATFIXLEN+len(d.Name))
 	n, err := d.Marshal(buf[:])
 	if err != nil {
 		return &PathError{"rename", oldname, err}
diff -Naur gcc-4.8.1.orig/libgo/go/os/file_posix.go gcc-4.8.1/libgo/go/os/file_posix.go
--- gcc-4.8.1.orig/libgo/go/os/file_posix.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/file_posix.go	2013-07-16 01:55:04.520470000 -0500
@@ -46,8 +46,6 @@
 			return string(b[0:n]), nil
 		}
 	}
-	// Silence 6g.
-	return "", nil
 }
 
 // Rename renames a file.
diff -Naur gcc-4.8.1.orig/libgo/go/os/file_unix.go gcc-4.8.1/libgo/go/os/file_unix.go
--- gcc-4.8.1.orig/libgo/go/os/file_unix.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/file_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -209,7 +209,6 @@
 
 		return n, err
 	}
-	panic("not reached")
 }
 
 // pwrite writes len(b) bytes to the File starting at byte offset off.
diff -Naur gcc-4.8.1.orig/libgo/go/os/getwd.go gcc-4.8.1/libgo/go/os/getwd.go
--- gcc-4.8.1.orig/libgo/go/os/getwd.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/getwd.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,9 +5,15 @@
 package os
 
 import (
+	"sync"
 	"syscall"
 )
 
+var getwdCache struct {
+	sync.Mutex
+	dir string
+}
+
 // Getwd returns a rooted path name corresponding to the
 // current directory.  If the current directory can be
 // reached via multiple paths (due to symbolic links),
@@ -35,6 +41,17 @@
 		}
 	}
 
+	// Apply same kludge but to cached dir instead of $PWD.
+	getwdCache.Lock()
+	pwd = getwdCache.dir
+	getwdCache.Unlock()
+	if len(pwd) > 0 {
+		d, err := Stat(pwd)
+		if err == nil && SameFile(dot, d) {
+			return pwd, nil
+		}
+	}
+
 	// Root is a special case because it has no parent
 	// and ends in a slash.
 	root, err := Stat("/")
@@ -73,8 +90,6 @@
 				}
 			}
 		}
-		fd.Close()
-		return "", ErrNotExist
 
 	Found:
 		pd, err := fd.Stat()
@@ -88,5 +103,11 @@
 		// Set up for next round.
 		dot = pd
 	}
+
+	// Save answer as hint to avoid the expensive path next time.
+	getwdCache.Lock()
+	getwdCache.dir = pwd
+	getwdCache.Unlock()
+
 	return pwd, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/os_test.go gcc-4.8.1/libgo/go/os/os_test.go
--- gcc-4.8.1.orig/libgo/go/os/os_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/os_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -39,7 +39,6 @@
 		sd = &sysDir{
 			Getenv("SystemRoot") + "\\system32\\drivers\\etc",
 			[]string{
-				"hosts",
 				"networks",
 				"protocol",
 				"services",
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal.go gcc-4.8.1/libgo/go/os/signal/signal.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/signal/signal.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,7 +5,7 @@
 // Package signal implements access to incoming signals.
 package signal
 
-// BUG(rsc): This package is not yet implemented on Plan 9 and Windows.
+// BUG(rsc): This package is not yet implemented on Plan 9.
 
 import (
 	"os"
@@ -14,13 +14,20 @@
 
 var handlers struct {
 	sync.Mutex
-	list []handler
+	m   map[chan<- os.Signal]*handler
+	ref [numSig]int64
 }
 
 type handler struct {
-	c   chan<- os.Signal
-	sig os.Signal
-	all bool
+	mask [(numSig + 31) / 32]uint32
+}
+
+func (h *handler) want(sig int) bool {
+	return (h.mask[sig/32]>>uint(sig&31))&1 != 0
+}
+
+func (h *handler) set(sig int) {
+	h.mask[sig/32] |= 1 << uint(sig&31)
 }
 
 // Notify causes package signal to relay incoming signals to c.
@@ -32,6 +39,13 @@
 // signal rate.  For a channel used for notification of just one signal value,
 // a buffer of size 1 is sufficient.
 //
+// It is allowed to call Notify multiple times with the same channel:
+// each call expands the set of signals sent to that channel.
+// The only way to remove signals from the set is to call Stop.
+//
+// It is allowed to call Notify multiple times with different channels
+// and the same signals: each channel receives copies of incoming
+// signals independently.
 func Notify(c chan<- os.Signal, sig ...os.Signal) {
 	if c == nil {
 		panic("os/signal: Notify using nil channel")
@@ -39,32 +53,77 @@
 
 	handlers.Lock()
 	defer handlers.Unlock()
+
+	h := handlers.m[c]
+	if h == nil {
+		if handlers.m == nil {
+			handlers.m = make(map[chan<- os.Signal]*handler)
+		}
+		h = new(handler)
+		handlers.m[c] = h
+	}
+
+	add := func(n int) {
+		if n < 0 {
+			return
+		}
+		if !h.want(n) {
+			h.set(n)
+			if handlers.ref[n] == 0 {
+				enableSignal(n)
+			}
+			handlers.ref[n]++
+		}
+	}
+
 	if len(sig) == 0 {
-		enableSignal(nil)
-		handlers.list = append(handlers.list, handler{c: c, all: true})
+		for n := 0; n < numSig; n++ {
+			add(n)
+		}
 	} else {
 		for _, s := range sig {
-			// We use nil as a special wildcard value for enableSignal,
-			// so filter it out of the list of arguments.  This is safe because
-			// we will never get an incoming nil signal, so discarding the
-			// registration cannot affect the observed behavior.
-			if s != nil {
-				enableSignal(s)
-				handlers.list = append(handlers.list, handler{c: c, sig: s})
+			add(signum(s))
+		}
+	}
+}
+
+// Stop causes package signal to stop relaying incoming signals to c.
+// It undoes the effect of all prior calls to Notify using c.
+// When Stop returns, it is guaranteed that c will receive no more signals.
+func Stop(c chan<- os.Signal) {
+	handlers.Lock()
+	defer handlers.Unlock()
+
+	h := handlers.m[c]
+	if h == nil {
+		return
+	}
+	delete(handlers.m, c)
+
+	for n := 0; n < numSig; n++ {
+		if h.want(n) {
+			handlers.ref[n]--
+			if handlers.ref[n] == 0 {
+				disableSignal(n)
 			}
 		}
 	}
 }
 
 func process(sig os.Signal) {
+	n := signum(sig)
+	if n < 0 {
+		return
+	}
+
 	handlers.Lock()
 	defer handlers.Unlock()
 
-	for _, h := range handlers.list {
-		if h.all || h.sig == sig {
+	for c, h := range handlers.m {
+		if h.want(n) {
 			// send but do not block for it
 			select {
-			case h.c <- sig:
+			case c <- sig:
 			default:
 			}
 		}
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_stub.go gcc-4.8.1/libgo/go/os/signal/signal_stub.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal_stub.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/signal/signal_stub.go	2013-07-16 01:55:04.520470000 -0500
@@ -8,4 +8,10 @@
 
 import "os"
 
-func enableSignal(sig os.Signal) {}
+const numSig = 0
+
+func signum(sig os.Signal) int { return -1 }
+
+func disableSignal(int) {}
+
+func enableSignal(int) {}
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_test.go gcc-4.8.1/libgo/go/os/signal/signal_test.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/signal/signal_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,15 +7,17 @@
 package signal
 
 import (
+	"flag"
+	"io/ioutil"
 	"os"
+	"os/exec"
 	"runtime"
+	"strconv"
 	"syscall"
 	"testing"
 	"time"
 )
 
-const sighup = syscall.SIGHUP
-
 func waitSig(t *testing.T, c <-chan os.Signal, sig os.Signal) {
 	select {
 	case s := <-c:
@@ -27,15 +29,17 @@
 	}
 }
 
+// Test that basic signal handling works.
 func TestSignal(t *testing.T) {
 	// Ask for SIGHUP
 	c := make(chan os.Signal, 1)
-	Notify(c, sighup)
+	Notify(c, syscall.SIGHUP)
+	defer Stop(c)
 
 	t.Logf("sighup...")
 	// Send this process a SIGHUP
-	syscall.Kill(syscall.Getpid(), sighup)
-	waitSig(t, c, sighup)
+	syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
+	waitSig(t, c, syscall.SIGHUP)
 
 	// Ask for everything we can get.
 	c1 := make(chan os.Signal, 1)
@@ -71,6 +75,7 @@
 	go func() {
 		sig := make(chan os.Signal, 1)
 		Notify(sig, syscall.SIGUSR1)
+		defer Stop(sig)
 	Loop:
 		for {
 			select {
@@ -98,4 +103,106 @@
 	close(done)
 	<-finished
 	<-finished
+	// When run with 'go test -cpu=1,2,4' SIGUSR1 from this test can slip
+	// into subsequent TestSignal() causing failure.
+	// Sleep for a while to reduce the possibility of the failure.
+	time.Sleep(10 * time.Millisecond)
+}
+
+var sendUncaughtSighup = flag.Int("send_uncaught_sighup", 0, "send uncaught SIGHUP during TestStop")
+
+// Test that Stop cancels the channel's registrations.
+func TestStop(t *testing.T) {
+	sigs := []syscall.Signal{
+		syscall.SIGWINCH,
+		syscall.SIGHUP,
+	}
+
+	for _, sig := range sigs {
+		// Send the signal.
+		// If it's SIGWINCH, we should not see it.
+		// If it's SIGHUP, maybe we'll die. Let the flag tell us what to do.
+		if sig != syscall.SIGHUP || *sendUncaughtSighup == 1 {
+			syscall.Kill(syscall.Getpid(), sig)
+		}
+		time.Sleep(10 * time.Millisecond)
+
+		// Ask for signal
+		c := make(chan os.Signal, 1)
+		Notify(c, sig)
+		defer Stop(c)
+
+		// Send this process that signal
+		syscall.Kill(syscall.Getpid(), sig)
+		waitSig(t, c, sig)
+
+		Stop(c)
+		select {
+		case s := <-c:
+			t.Fatalf("unexpected signal %v", s)
+		case <-time.After(10 * time.Millisecond):
+			// nothing to read - good
+		}
+
+		// Send the signal.
+		// If it's SIGWINCH, we should not see it.
+		// If it's SIGHUP, maybe we'll die. Let the flag tell us what to do.
+		if sig != syscall.SIGHUP || *sendUncaughtSighup == 2 {
+			syscall.Kill(syscall.Getpid(), sig)
+		}
+
+		select {
+		case s := <-c:
+			t.Fatalf("unexpected signal %v", s)
+		case <-time.After(10 * time.Millisecond):
+			// nothing to read - good
+		}
+	}
+}
+
+// Test that when run under nohup, an uncaught SIGHUP does not kill the program,
+// but a
+func TestNohup(t *testing.T) {
+	// Ugly: ask for SIGHUP so that child will not have no-hup set
+	// even if test is running under nohup environment.
+	// We have no intention of reading from c.
+	c := make(chan os.Signal, 1)
+	Notify(c, syscall.SIGHUP)
+
+	// When run without nohup, the test should crash on an uncaught SIGHUP.
+	// When run under nohup, the test should ignore uncaught SIGHUPs,
+	// because the runtime is not supposed to be listening for them.
+	// Either way, TestStop should still be able to catch them when it wants them
+	// and then when it stops wanting them, the original behavior should resume.
+	//
+	// send_uncaught_sighup=1 sends the SIGHUP before starting to listen for SIGHUPs.
+	// send_uncaught_sighup=2 sends the SIGHUP after no longer listening for SIGHUPs.
+	//
+	// Both should fail without nohup and succeed with nohup.
+
+	for i := 1; i <= 2; i++ {
+		out, err := exec.Command(os.Args[0], "-test.run=TestStop", "-send_uncaught_sighup="+strconv.Itoa(i)).CombinedOutput()
+		if err == nil {
+			t.Fatalf("ran test with -send_uncaught_sighup=%d and it succeeded: expected failure.\nOutput:\n%s", i, out)
+		}
+	}
+
+	Stop(c)
+
+	// Again, this time with nohup, assuming we can find it.
+	_, err := os.Stat("/usr/bin/nohup")
+	if err != nil {
+		t.Skip("cannot find nohup; skipping second half of test")
+	}
+
+	for i := 1; i <= 2; i++ {
+		os.Remove("nohup.out")
+		out, err := exec.Command("/usr/bin/nohup", os.Args[0], "-test.run=TestStop", "-send_uncaught_sighup="+strconv.Itoa(i)).CombinedOutput()
+
+		data, _ := ioutil.ReadFile("nohup.out")
+		os.Remove("nohup.out")
+		if err != nil {
+			t.Fatalf("ran test with -send_uncaught_sighup=%d under nohup and it failed: expected success.\nError: %v\nOutput:\n%s%s", i, err, out, data)
+		}
+	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/signal/signal_unix.go gcc-4.8.1/libgo/go/os/signal/signal_unix.go
--- gcc-4.8.1.orig/libgo/go/os/signal/signal_unix.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/signal/signal_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -12,6 +12,7 @@
 )
 
 // In assembly.
+func signal_disable(uint32)
 func signal_enable(uint32)
 func signal_recv() uint32
 
@@ -26,13 +27,27 @@
 	go loop()
 }
 
-func enableSignal(sig os.Signal) {
+const (
+	numSig = 65 // max across all systems
+)
+
+func signum(sig os.Signal) int {
 	switch sig := sig.(type) {
-	case nil:
-		signal_enable(^uint32(0))
 	case syscall.Signal:
-		signal_enable(uint32(sig))
+		i := int(sig)
+		if i < 0 || i >= numSig {
+			return -1
+		}
+		return i
 	default:
-		// Can ignore: this signal (whatever it is) will never come in.
+		return -1
 	}
 }
+
+func enableSignal(sig int) {
+	signal_enable(uint32(sig))
+}
+
+func disableSignal(sig int) {
+	signal_disable(uint32(sig))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atimespec.go gcc-4.8.1/libgo/go/os/stat_atimespec.go
--- gcc-4.8.1.orig/libgo/go/os/stat_atimespec.go	2013-01-24 12:12:23.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/stat_atimespec.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_atim.go gcc-4.8.1/libgo/go/os/stat_atim.go
--- gcc-4.8.1.orig/libgo/go/os/stat_atim.go	2012-11-05 11:36:40.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/stat_atim.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat.go gcc-4.8.1/libgo/go/os/stat.go
--- gcc-4.8.1.orig/libgo/go/os/stat.go	2012-04-22 15:07:23.000000000 -0500
+++ gcc-4.8.1/libgo/go/os/stat.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_plan9.go gcc-4.8.1/libgo/go/os/stat_plan9.go
--- gcc-4.8.1.orig/libgo/go/os/stat_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/stat_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	a := sys1.(*syscall.Dir)
-	b := sys2.(*syscall.Dir)
+func sameFile(fs1, fs2 *fileStat) bool {
+	a := fs1.sys.(*syscall.Dir)
+	b := fs2.sys.(*syscall.Dir)
 	return a.Qid.Path == b.Qid.Path && a.Type == b.Type && a.Dev == b.Dev
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/stat_solaris.go gcc-4.8.1/libgo/go/os/stat_solaris.go
--- gcc-4.8.1.orig/libgo/go/os/stat_solaris.go	2012-04-22 15:07:23.000000000 -0500
+++ gcc-4.8.1/libgo/go/os/stat_solaris.go	2013-07-16 01:55:04.520470000 -0500
@@ -9,9 +9,9 @@
 	"time"
 )
 
-func sameFile(sys1, sys2 interface{}) bool {
-	stat1 := sys1.(*syscall.Stat_t)
-	stat2 := sys2.(*syscall.Stat_t)
+func sameFile(fs1, fs2 *fileStat) bool {
+	stat1 := fs1.sys.(*syscall.Stat_t)
+	stat2 := fs2.sys.(*syscall.Stat_t)
 	return stat1.Dev == stat2.Dev && stat1.Ino == stat2.Ino
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/os/types.go gcc-4.8.1/libgo/go/os/types.go
--- gcc-4.8.1.orig/libgo/go/os/types.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/types.go	2013-07-16 01:55:04.520470000 -0500
@@ -99,21 +99,8 @@
 	return m & ModePerm
 }
 
-// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
-type fileStat struct {
-	name    string
-	size    int64
-	mode    FileMode
-	modTime time.Time
-	sys     interface{}
-}
-
-func (fs *fileStat) Name() string       { return fs.name }
-func (fs *fileStat) Size() int64        { return fs.size }
-func (fs *fileStat) Mode() FileMode     { return fs.mode }
-func (fs *fileStat) ModTime() time.Time { return fs.modTime }
-func (fs *fileStat) IsDir() bool        { return fs.mode.IsDir() }
-func (fs *fileStat) Sys() interface{}   { return fs.sys }
+func (fs *fileStat) Name() string { return fs.name }
+func (fs *fileStat) IsDir() bool  { return fs.Mode().IsDir() }
 
 // SameFile reports whether fi1 and fi2 describe the same file.
 // For example, on Unix this means that the device and inode fields
@@ -127,5 +114,5 @@
 	if !ok1 || !ok2 {
 		return false
 	}
-	return sameFile(fs1.sys, fs2.sys)
+	return sameFile(fs1, fs2)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/os/types_notwin.go gcc-4.8.1/libgo/go/os/types_notwin.go
--- gcc-4.8.1.orig/libgo/go/os/types_notwin.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/types_notwin.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,25 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !windows
+
+package os
+
+import (
+	"time"
+)
+
+// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
+type fileStat struct {
+	name    string
+	size    int64
+	mode    FileMode
+	modTime time.Time
+	sys     interface{}
+}
+
+func (fs *fileStat) Size() int64        { return fs.size }
+func (fs *fileStat) Mode() FileMode     { return fs.mode }
+func (fs *fileStat) ModTime() time.Time { return fs.modTime }
+func (fs *fileStat) Sys() interface{}   { return fs.sys }
diff -Naur gcc-4.8.1.orig/libgo/go/os/types_windows.go gcc-4.8.1/libgo/go/os/types_windows.go
--- gcc-4.8.1.orig/libgo/go/os/types_windows.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/os/types_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,104 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package os
+
+import (
+	"sync"
+	"syscall"
+	"time"
+)
+
+// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
+type fileStat struct {
+	name string
+	sys  syscall.Win32FileAttributeData
+
+	// used to implement SameFile
+	sync.Mutex
+	path  string
+	vol   uint32
+	idxhi uint32
+	idxlo uint32
+}
+
+func (fs *fileStat) Size() int64 {
+	return int64(fs.sys.FileSizeHigh)<<32 + int64(fs.sys.FileSizeLow)
+}
+
+func (fs *fileStat) Mode() (m FileMode) {
+	if fs == &devNullStat {
+		return ModeDevice | ModeCharDevice | 0666
+	}
+	if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 {
+		m |= ModeDir | 0111
+	}
+	if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_READONLY != 0 {
+		m |= 0444
+	} else {
+		m |= 0666
+	}
+	return m
+}
+
+func (fs *fileStat) ModTime() time.Time {
+	return time.Unix(0, fs.sys.LastWriteTime.Nanoseconds())
+}
+
+// Sys returns syscall.Win32FileAttributeData for file fs.
+func (fs *fileStat) Sys() interface{} { return &fs.sys }
+
+func (fs *fileStat) loadFileId() error {
+	fs.Lock()
+	defer fs.Unlock()
+	if fs.path == "" {
+		// already done
+		return nil
+	}
+	pathp, err := syscall.UTF16PtrFromString(fs.path)
+	if err != nil {
+		return err
+	}
+	h, err := syscall.CreateFile(pathp, 0, 0, nil, syscall.OPEN_EXISTING, syscall.FILE_FLAG_BACKUP_SEMANTICS, 0)
+	if err != nil {
+		return err
+	}
+	defer syscall.CloseHandle(h)
+	var i syscall.ByHandleFileInformation
+	err = syscall.GetFileInformationByHandle(syscall.Handle(h), &i)
+	if err != nil {
+		return err
+	}
+	fs.path = ""
+	fs.vol = i.VolumeSerialNumber
+	fs.idxhi = i.FileIndexHigh
+	fs.idxlo = i.FileIndexLow
+	return nil
+}
+
+// devNullStat is fileStat structure describing DevNull file ("NUL").
+var devNullStat = fileStat{
+	name: DevNull,
+	// hopefully this will work for SameFile
+	vol:   0,
+	idxhi: 0,
+	idxlo: 0,
+}
+
+func sameFile(fs1, fs2 *fileStat) bool {
+	e := fs1.loadFileId()
+	if e != nil {
+		return false
+	}
+	e = fs2.loadFileId()
+	if e != nil {
+		return false
+	}
+	return fs1.vol == fs2.vol && fs1.idxhi == fs2.idxhi && fs1.idxlo == fs2.idxlo
+}
+
+// For testing.
+func atime(fi FileInfo) time.Time {
+	return time.Unix(0, fi.Sys().(*syscall.Win32FileAttributeData).LastAccessTime.Nanoseconds())
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/example_unix_test.go gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/example_unix_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/path/filepath/example_unix_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,39 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !windows,!plan9
+
+package filepath_test
+
+import (
+	"fmt"
+	"path/filepath"
+)
+
+func ExampleSplitList() {
+	fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
+	// Output:
+	// On Unix: [/a/b/c /usr/bin]
+}
+
+func ExampleRel() {
+	paths := []string{
+		"/a/b/c",
+		"/b/c",
+		"./b/c",
+	}
+	base := "/a"
+
+	fmt.Println("On Unix:")
+	for _, p := range paths {
+		rel, err := filepath.Rel(base, p)
+		fmt.Printf("%q: %q %v\n", p, rel, err)
+	}
+
+	// Output:
+	// On Unix:
+	// "/a/b/c": "b/c" <nil>
+	// "/b/c": "../b/c" <nil>
+	// "./b/c": "" Rel: can't make b/c relative to /a
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/match_test.go gcc-4.8.1/libgo/go/path/filepath/match_test.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/match_test.go	2012-03-30 17:09:55.000000000 -0500
+++ gcc-4.8.1/libgo/go/path/filepath/match_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package filepath_test
+package filepath
 
 import (
-	. "path/filepath"
 	"runtime"
 	"strings"
 	"testing"
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path.go gcc-4.8.1/libgo/go/path/filepath/path.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/path/filepath/path.go	2013-07-16 01:55:04.520470000 -0500
@@ -176,10 +176,7 @@
 // usually found in PATH or GOPATH environment variables.
 // Unlike strings.Split, SplitList returns an empty slice when passed an empty string.
 func SplitList(path string) []string {
-	if path == "" {
-		return []string{}
-	}
-	return strings.Split(path, string(ListSeparator))
+	return splitList(path)
 }
 
 // Split splits path immediately following the final Separator,
@@ -374,6 +371,7 @@
 // and directories are filtered by walkFn. The files are walked in lexical
 // order, which makes the output deterministic but means that for very
 // large directories Walk can be inefficient.
+// Walk does not follow symbolic links.
 func Walk(root string, walkFn WalkFunc) error {
 	info, err := os.Lstat(root)
 	if err != nil {
@@ -436,7 +434,8 @@
 }
 
 // Dir returns all but the last element of path, typically the path's directory.
-// Trailing path separators are removed before processing.
+// After dropping the final element, the path is Cleaned and trailing
+// slashes are removed.
 // If the path is empty, Dir returns ".".
 // If the path consists entirely of separators, Dir returns a single separator.
 // The returned path does not end in a separator unless it is the root directory.
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_plan9.go gcc-4.8.1/libgo/go/path/filepath/path_plan9.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_plan9.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/path/filepath/path_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -21,3 +21,10 @@
 func HasPrefix(p, prefix string) bool {
 	return strings.HasPrefix(p, prefix)
 }
+
+func splitList(path string) []string {
+	if path == "" {
+		return []string{}
+	}
+	return strings.Split(path, string(ListSeparator))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_test.go gcc-4.8.1/libgo/go/path/filepath/path_test.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/path/filepath/path_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -91,7 +91,6 @@
 }
 
 func TestClean(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
 	tests := cleantests
 	if runtime.GOOS == "windows" {
 		for i := range tests {
@@ -108,22 +107,20 @@
 		}
 	}
 
-	var ms runtime.MemStats
-	runtime.ReadMemStats(&ms)
-	allocs := -ms.Mallocs
-	const rounds = 100
-	for i := 0; i < rounds; i++ {
-		for _, test := range tests {
-			filepath.Clean(test.result)
-		}
-	}
-	runtime.ReadMemStats(&ms)
-	allocs += ms.Mallocs
-	/* Fails with gccgo, which has no escape analysis.
-	if allocs >= rounds {
-		t.Errorf("Clean cleaned paths: %d allocations per test round, want zero", allocs/rounds)
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Log("skipping AllocsPerRun checks; GOMAXPROCS>1")
+		return
+	}
+
+	t.Log("Skipping AllocsPerRun for gccgo")
+	return
+
+	for _, test := range tests {
+		allocs := testing.AllocsPerRun(100, func() { filepath.Clean(test.result) })
+		if allocs > 0 {
+			t.Errorf("Clean(%q): %v allocs, want zero", test.result, allocs)
+		}
 	}
-	*/
 }
 
 const sep = filepath.Separator
@@ -159,10 +156,36 @@
 	{string([]byte{lsep, 'a', lsep, 'b'}), []string{"", "a", "b"}},
 }
 
+var winsplitlisttests = []SplitListTest{
+	// quoted
+	{`"a"`, []string{`a`}},
+
+	// semicolon
+	{`";"`, []string{`;`}},
+	{`"a;b"`, []string{`a;b`}},
+	{`";";`, []string{`;`, ``}},
+	{`;";"`, []string{``, `;`}},
+
+	// partially quoted
+	{`a";"b`, []string{`a;b`}},
+	{`a; ""b`, []string{`a`, ` b`}},
+	{`"a;b`, []string{`a;b`}},
+	{`""a;b`, []string{`a`, `b`}},
+	{`"""a;b`, []string{`a;b`}},
+	{`""""a;b`, []string{`a`, `b`}},
+	{`a";b`, []string{`a;b`}},
+	{`a;b";c`, []string{`a`, `b;c`}},
+	{`"a";b";c`, []string{`a`, `b;c`}},
+}
+
 func TestSplitList(t *testing.T) {
-	for _, test := range splitlisttests {
+	tests := splitlisttests
+	if runtime.GOOS == "windows" {
+		tests = append(tests, winsplitlisttests...)
+	}
+	for _, test := range tests {
 		if l := filepath.SplitList(test.list); !reflect.DeepEqual(l, test.result) {
-			t.Errorf("SplitList(%q) = %s, want %s", test.list, l, test.result)
+			t.Errorf("SplitList(%#q) = %#q, want %#q", test.list, l, test.result)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_unix.go gcc-4.8.1/libgo/go/path/filepath/path_unix.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_unix.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/path/filepath/path_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -23,3 +23,10 @@
 func HasPrefix(p, prefix string) bool {
 	return strings.HasPrefix(p, prefix)
 }
+
+func splitList(path string) []string {
+	if path == "" {
+		return []string{}
+	}
+	return strings.Split(path, string(ListSeparator))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/filepath/path_windows.go gcc-4.8.1/libgo/go/path/filepath/path_windows.go
--- gcc-4.8.1.orig/libgo/go/path/filepath/path_windows.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/path/filepath/path_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -70,3 +70,36 @@
 	}
 	return strings.HasPrefix(strings.ToLower(p), strings.ToLower(prefix))
 }
+
+func splitList(path string) []string {
+	// The same implementation is used in LookPath in os/exec;
+	// consider changing os/exec when changing this.
+
+	if path == "" {
+		return []string{}
+	}
+
+	// Split path, respecting but preserving quotes.
+	list := []string{}
+	start := 0
+	quo := false
+	for i := 0; i < len(path); i++ {
+		switch c := path[i]; {
+		case c == '"':
+			quo = !quo
+		case c == ListSeparator && !quo:
+			list = append(list, path[start:i])
+			start = i + 1
+		}
+	}
+	list = append(list, path[start:])
+
+	// Remove quotes.
+	for i, s := range list {
+		if strings.Contains(s, `"`) {
+			list[i] = strings.Replace(s, `"`, ``, -1)
+		}
+	}
+
+	return list
+}
diff -Naur gcc-4.8.1.orig/libgo/go/path/path_test.go gcc-4.8.1/libgo/go/path/path_test.go
--- gcc-4.8.1.orig/libgo/go/path/path_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/path/path_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -64,7 +64,6 @@
 }
 
 func TestClean(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
 	for _, test := range cleantests {
 		if s := Clean(test.path); s != test.result {
 			t.Errorf("Clean(%q) = %q, want %q", test.path, s, test.result)
@@ -74,22 +73,20 @@
 		}
 	}
 
-	var ms runtime.MemStats
-	runtime.ReadMemStats(&ms)
-	allocs := -ms.Mallocs
-	const rounds = 100
-	for i := 0; i < rounds; i++ {
-		for _, test := range cleantests {
-			Clean(test.result)
-		}
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Log("skipping AllocsPerRun checks; GOMAXPROCS>1")
+		return
 	}
-	runtime.ReadMemStats(&ms)
-	allocs += ms.Mallocs
-	/* Fails with gccgo, which has no escape analysis.
-	if allocs >= rounds {
-		t.Errorf("Clean cleaned paths: %d allocations per test round, want zero", allocs/rounds)
+
+	t.Log("Skipping AllocsPerRun for gccgo")
+	return
+
+	for _, test := range cleantests {
+		allocs := testing.AllocsPerRun(100, func() { Clean(test.result) })
+		if allocs > 0 {
+			t.Errorf("Clean(%q): %v allocs, want zero", test.result, allocs)
+		}
 	}
-	*/
 }
 
 type SplitTest struct {
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/all_test.go gcc-4.8.1/libgo/go/reflect/all_test.go
--- gcc-4.8.1.orig/libgo/go/reflect/all_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/reflect/all_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -13,7 +13,8 @@
 	"math/rand"
 	"os"
 	. "reflect"
-	/*	"runtime" */
+	"runtime"
+	"sort"
 	"sync"
 	"testing"
 	"time"
@@ -1464,7 +1465,7 @@
 
 // This will be index 1.
 func (p Point) Dist(scale int) int {
-	//	println("Point.Dist", p.x, p.y, scale)
+	//println("Point.Dist", p.x, p.y, scale)
 	return p.x*p.x*scale + p.y*p.y*scale
 }
 
@@ -1480,23 +1481,23 @@
 	if !ok {
 		t.Fatalf("method by name failed")
 	}
-	m.Func.Call([]Value{ValueOf(p), ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Type MethodByName returned %d; want 250", i)
+	i = m.Func.Call([]Value{ValueOf(p), ValueOf(11)})[0].Int()
+	if i != 275 {
+		t.Errorf("Type MethodByName returned %d; want 275", i)
 	}
 
-	i = TypeOf(&p).Method(1).Func.Call([]Value{ValueOf(&p), ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Type Method returned %d; want 250", i)
+	i = TypeOf(&p).Method(1).Func.Call([]Value{ValueOf(&p), ValueOf(12)})[0].Int()
+	if i != 300 {
+		t.Errorf("Pointer Type Method returned %d; want 300", i)
 	}
 
 	m, ok = TypeOf(&p).MethodByName("Dist")
 	if !ok {
 		t.Fatalf("ptr method by name failed")
 	}
-	i = m.Func.Call([]Value{ValueOf(&p), ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Type MethodByName returned %d; want 250", i)
+	i = m.Func.Call([]Value{ValueOf(&p), ValueOf(13)})[0].Int()
+	if i != 325 {
+		t.Errorf("Pointer Type MethodByName returned %d; want 325", i)
 	}
 
 	// Curried method of value.
@@ -1505,7 +1506,76 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
+	i = v.Call([]Value{ValueOf(14)})[0].Int()
+	if i != 350 {
+		t.Errorf("Value Method returned %d; want 350", i)
+	}
+	v = ValueOf(p).MethodByName("Dist")
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Value MethodByName Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(15)})[0].Int()
+	if i != 375 {
+		t.Errorf("Value MethodByName returned %d; want 375", i)
+	}
+
+	// Curried method of pointer.
+	v = ValueOf(&p).Method(1)
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Pointer Value Method Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(16)})[0].Int()
+	if i != 400 {
+		t.Errorf("Pointer Value Method returned %d; want 400", i)
+	}
+	v = ValueOf(&p).MethodByName("Dist")
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Pointer Value MethodByName Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(17)})[0].Int()
+	if i != 425 {
+		t.Errorf("Pointer Value MethodByName returned %d; want 425", i)
+	}
+
+	// Curried method of interface value.
+	// Have to wrap interface value in a struct to get at it.
+	// Passing it to ValueOf directly would
+	// access the underlying Point, not the interface.
+	var x interface {
+		Dist(int) int
+	} = p
+	pv := ValueOf(&x).Elem()
+	v = pv.Method(0)
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Interface Method Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(18)})[0].Int()
+	if i != 450 {
+		t.Errorf("Interface Method returned %d; want 450", i)
+	}
+	v = pv.MethodByName("Dist")
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Interface MethodByName Type is %s; want %s", tt, tfunc)
+	}
+	i = v.Call([]Value{ValueOf(19)})[0].Int()
+	if i != 475 {
+		t.Errorf("Interface MethodByName returned %d; want 475", i)
+	}
+}
+
+/* Not yet implemented for gccgo
+
+func TestMethodValue(t *testing.T) {
+	p := Point{3, 4}
+	var i int64
+
+	// Curried method of value.
+	tfunc := TypeOf((func(int) int)(nil))
+	v := ValueOf(p).Method(1)
+	if tt := v.Type(); tt != tfunc {
+		t.Errorf("Value Method Type is %s; want %s", tt, tfunc)
+	}
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(10)})[0].Int()
 	if i != 250 {
 		t.Errorf("Value Method returned %d; want 250", i)
 	}
@@ -1513,9 +1583,9 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Value MethodByName Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Value MethodByName returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(11)})[0].Int()
+	if i != 275 {
+		t.Errorf("Value MethodByName returned %d; want 275", i)
 	}
 
 	// Curried method of pointer.
@@ -1523,17 +1593,17 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Pointer Value Method Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Value Method returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(12)})[0].Int()
+	if i != 300 {
+		t.Errorf("Pointer Value Method returned %d; want 300", i)
 	}
 	v = ValueOf(&p).MethodByName("Dist")
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Pointer Value MethodByName Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Pointer Value MethodByName returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(13)})[0].Int()
+	if i != 325 {
+		t.Errorf("Pointer Value MethodByName returned %d; want 325", i)
 	}
 
 	// Curried method of interface value.
@@ -1550,18 +1620,207 @@
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Interface Method Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Interface Method returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(14)})[0].Int()
+	if i != 350 {
+		t.Errorf("Interface Method returned %d; want 350", i)
 	}
 	v = pv.MethodByName("Dist")
 	if tt := v.Type(); tt != tfunc {
 		t.Errorf("Interface MethodByName Type is %s; want %s", tt, tfunc)
 	}
-	i = v.Call([]Value{ValueOf(10)})[0].Int()
-	if i != 250 {
-		t.Errorf("Interface MethodByName returned %d; want 250", i)
+	i = ValueOf(v.Interface()).Call([]Value{ValueOf(15)})[0].Int()
+	if i != 375 {
+		t.Errorf("Interface MethodByName returned %d; want 375", i)
+	}
+}
+
+*/
+
+// Reflect version of $GOROOT/test/method5.go
+
+// Concrete types implementing M method.
+// Smaller than a word, word-sized, larger than a word.
+// Value and pointer receivers.
+
+type Tinter interface {
+	M(int, byte) (byte, int)
+}
+
+type Tsmallv byte
+
+func (v Tsmallv) M(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type Tsmallp byte
+
+func (p *Tsmallp) M(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type Twordv uintptr
+
+func (v Twordv) M(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type Twordp uintptr
+
+func (p *Twordp) M(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type Tbigv [2]uintptr
+
+func (v Tbigv) M(x int, b byte) (byte, int) { return b, x + int(v[0]) + int(v[1]) }
+
+type Tbigp [2]uintptr
+
+func (p *Tbigp) M(x int, b byte) (byte, int) { return b, x + int(p[0]) + int(p[1]) }
+
+// Again, with an unexported method.
+
+type tsmallv byte
+
+func (v tsmallv) m(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type tsmallp byte
+
+func (p *tsmallp) m(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type twordv uintptr
+
+func (v twordv) m(x int, b byte) (byte, int) { return b, x + int(v) }
+
+type twordp uintptr
+
+func (p *twordp) m(x int, b byte) (byte, int) { return b, x + int(*p) }
+
+type tbigv [2]uintptr
+
+func (v tbigv) m(x int, b byte) (byte, int) { return b, x + int(v[0]) + int(v[1]) }
+
+type tbigp [2]uintptr
+
+func (p *tbigp) m(x int, b byte) (byte, int) { return b, x + int(p[0]) + int(p[1]) }
+
+type tinter interface {
+	m(int, byte) (byte, int)
+}
+
+// Embedding via pointer.
+
+type Tm1 struct {
+	Tm2
+}
+
+type Tm2 struct {
+	*Tm3
+}
+
+type Tm3 struct {
+	*Tm4
+}
+
+type Tm4 struct {
+}
+
+func (t4 Tm4) M(x int, b byte) (byte, int) { return b, x + 40 }
+
+func TestMethod5(t *testing.T) {
+	/* Not yet used for gccgo
+	CheckF := func(name string, f func(int, byte) (byte, int), inc int) {
+		b, x := f(1000, 99)
+		if b != 99 || x != 1000+inc {
+			t.Errorf("%s(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc)
+		}
 	}
+	*/
+
+	CheckV := func(name string, i Value, inc int) {
+		bx := i.Method(0).Call([]Value{ValueOf(1000), ValueOf(byte(99))})
+		b := bx[0].Interface()
+		x := bx[1].Interface()
+		if b != byte(99) || x != 1000+inc {
+			t.Errorf("direct %s.M(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc)
+		}
+
+		/* Not yet implemented for gccgo
+		CheckF(name+".M", i.Method(0).Interface().(func(int, byte) (byte, int)), inc)
+		*/
+	}
+
+	var TinterType = TypeOf(new(Tinter)).Elem()
+	var tinterType = TypeOf(new(tinter)).Elem()
+
+	CheckI := func(name string, i interface{}, inc int) {
+		v := ValueOf(i)
+		CheckV(name, v, inc)
+		CheckV("(i="+name+")", v.Convert(TinterType), inc)
+	}
+
+	sv := Tsmallv(1)
+	CheckI("sv", sv, 1)
+	CheckI("&sv", &sv, 1)
+
+	sp := Tsmallp(2)
+	CheckI("&sp", &sp, 2)
+
+	wv := Twordv(3)
+	CheckI("wv", wv, 3)
+	CheckI("&wv", &wv, 3)
+
+	wp := Twordp(4)
+	CheckI("&wp", &wp, 4)
+
+	bv := Tbigv([2]uintptr{5, 6})
+	CheckI("bv", bv, 11)
+	CheckI("&bv", &bv, 11)
+
+	bp := Tbigp([2]uintptr{7, 8})
+	CheckI("&bp", &bp, 15)
+
+	t4 := Tm4{}
+	t3 := Tm3{&t4}
+	t2 := Tm2{&t3}
+	t1 := Tm1{t2}
+	CheckI("t4", t4, 40)
+	CheckI("&t4", &t4, 40)
+	CheckI("t3", t3, 40)
+	CheckI("&t3", &t3, 40)
+	CheckI("t2", t2, 40)
+	CheckI("&t2", &t2, 40)
+	CheckI("t1", t1, 40)
+	CheckI("&t1", &t1, 40)
+
+	methodShouldPanic := func(name string, i interface{}) {
+		v := ValueOf(i)
+		m := v.Method(0)
+		shouldPanic(func() { m.Call([]Value{ValueOf(1000), ValueOf(byte(99))}) })
+		shouldPanic(func() { m.Interface() })
+
+		v = v.Convert(tinterType)
+		m = v.Method(0)
+		shouldPanic(func() { m.Call([]Value{ValueOf(1000), ValueOf(byte(99))}) })
+		shouldPanic(func() { m.Interface() })
+	}
+
+	_sv := tsmallv(1)
+	methodShouldPanic("_sv", _sv)
+	methodShouldPanic("&_sv", &_sv)
+
+	_sp := tsmallp(2)
+	methodShouldPanic("&_sp", &_sp)
+
+	_wv := twordv(3)
+	methodShouldPanic("_wv", _wv)
+	methodShouldPanic("&_wv", &_wv)
+
+	_wp := twordp(4)
+	methodShouldPanic("&_wp", &_wp)
+
+	_bv := tbigv([2]uintptr{5, 6})
+	methodShouldPanic("_bv", _bv)
+	methodShouldPanic("&_bv", &_bv)
+
+	_bp := tbigp([2]uintptr{7, 8})
+	methodShouldPanic("&_bp", &_bp)
+
+	var tnil Tinter
+	vnil := ValueOf(&tnil).Elem()
+	shouldPanic(func() { vnil.Method(0) })
 }
 
 func TestInterfaceSet(t *testing.T) {
@@ -1891,6 +2150,7 @@
 func (*outer) m() {}
 
 func TestNestedMethods(t *testing.T) {
+	t.Skip("fails on gccgo due to function wrappers")
 	typ := TypeOf((*outer)(nil))
 	if typ.NumMethod() != 1 || typ.Method(0).Func.Pointer() != ValueOf((*outer).m).Pointer() {
 		t.Errorf("Wrong method table for outer: (m=%p)", (*outer).m)
@@ -1915,6 +2175,7 @@
 }
 
 func TestEmbeddedMethods(t *testing.T) {
+	/* This part of the test fails on gccgo due to function wrappers.
 	typ := TypeOf((*OuterInt)(nil))
 	if typ.NumMethod() != 1 || typ.Method(0).Func.Pointer() != ValueOf((*OuterInt).M).Pointer() {
 		t.Errorf("Wrong method table for OuterInt: (m=%p)", (*OuterInt).M)
@@ -1923,6 +2184,7 @@
 			t.Errorf("\t%d: %s %#x\n", i, m.Name, m.Func.Pointer())
 		}
 	}
+	*/
 
 	i := &InnerInt{3}
 	if v := ValueOf(i).Method(0).Call(nil)[0].Int(); v != 3 {
@@ -1955,6 +2217,30 @@
 	}
 }
 
+func TestPtrToGC(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	pt := PtrTo(tt)
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := New(pt)
+		p := new(*uintptr)
+		*p = new(uintptr)
+		**p = uintptr(i)
+		v.Elem().Set(ValueOf(p).Convert(pt))
+		x = append(x, v.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		k := ValueOf(xi).Elem().Elem().Elem().Interface().(uintptr)
+		if k != uintptr(i) {
+			t.Errorf("lost x[%d] = %d, want %d", i, k, i)
+		}
+	}
+}
+
 func TestAddr(t *testing.T) {
 	var p struct {
 		X, Y int
@@ -2020,20 +2306,16 @@
 /* gccgo does do allocations here.
 
 func noAlloc(t *testing.T, n int, f func(int)) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
-	// once to prime everything
-	f(-1)
-	memstats := new(runtime.MemStats)
-	runtime.ReadMemStats(memstats)
-	oldmallocs := memstats.Mallocs
-
-	for j := 0; j < n; j++ {
-		f(j)
-	}
-	runtime.ReadMemStats(memstats)
-	mallocs := memstats.Mallocs - oldmallocs
-	if mallocs > 0 {
-		t.Fatalf("%d mallocs after %d iterations", mallocs, n)
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	i := -1
+	allocs := testing.AllocsPerRun(n, func() {
+		f(i)
+		i++
+	})
+	if allocs > 0 {
+		t.Errorf("%d iterations: got %v mallocs, want 0", n, allocs)
 	}
 }
 
@@ -2755,8 +3037,10 @@
 	type T int
 	st := SliceOf(TypeOf(T(1)))
 	v := MakeSlice(st, 10, 10)
+	runtime.GC()
 	for i := 0; i < v.Len(); i++ {
 		v.Index(i).Set(ValueOf(T(i)))
+		runtime.GC()
 	}
 	s := fmt.Sprint(v.Interface())
 	want := "[0 1 2 3 4 5 6 7 8 9]"
@@ -2769,13 +3053,63 @@
 	checkSameType(t, Zero(SliceOf(TypeOf(T1(1)))).Interface(), []T1{})
 }
 
+func TestSliceOverflow(t *testing.T) {
+	// check that MakeSlice panics when size of slice overflows uint
+	const S = 1e6
+	s := uint(S)
+	l := (1<<(unsafe.Sizeof((*byte)(nil))*8)-1)/s + 1
+	if l*s >= s {
+		t.Fatal("slice size does not overflow")
+	}
+	var x [S]byte
+	st := SliceOf(TypeOf(x))
+	defer func() {
+		err := recover()
+		if err == nil {
+			t.Fatal("slice overflow does not panic")
+		}
+	}()
+	MakeSlice(st, int(l), int(l))
+}
+
+func TestSliceOfGC(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	st := SliceOf(tt)
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeSlice(st, n, n)
+		for j := 0; j < v.Len(); j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.Index(j).Set(ValueOf(p).Convert(tt))
+		}
+		x = append(x, v.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi)
+		for j := 0; j < v.Len(); j++ {
+			k := v.Index(j).Elem().Interface()
+			if k != uintptr(i*n+j) {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
+}
+
 func TestChanOf(t *testing.T) {
 	// check construction and use of type not in binary
 	type T string
 	ct := ChanOf(BothDir, TypeOf(T("")))
 	v := MakeChan(ct, 2)
+	runtime.GC()
 	v.Send(ValueOf(T("hello")))
+	runtime.GC()
 	v.Send(ValueOf(T("world")))
+	runtime.GC()
 
 	sv1, _ := v.Recv()
 	sv2, _ := v.Recv()
@@ -2790,13 +3124,63 @@
 	checkSameType(t, Zero(ChanOf(BothDir, TypeOf(T1(1)))).Interface(), (chan T1)(nil))
 }
 
+func TestChanOfGC(t *testing.T) {
+	done := make(chan bool, 1)
+	go func() {
+		select {
+		case <-done:
+		case <-time.After(5 * time.Second):
+			panic("deadlock in TestChanOfGC")
+		}
+	}()
+
+	defer func() {
+		done <- true
+	}()
+
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	ct := ChanOf(BothDir, tt)
+
+	// NOTE: The garbage collector handles allocated channels specially,
+	// so we have to save pointers to channels in x; the pointer code will
+	// use the gc info in the newly constructed chan type.
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeChan(ct, n)
+		for j := 0; j < n; j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.Send(ValueOf(p).Convert(tt))
+		}
+		pv := New(ct)
+		pv.Elem().Set(v)
+		x = append(x, pv.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi).Elem()
+		for j := 0; j < n; j++ {
+			pv, _ := v.Recv()
+			k := pv.Elem().Interface()
+			if k != uintptr(i*n+j) {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
+}
+
 func TestMapOf(t *testing.T) {
 	// check construction and use of type not in binary
 	type K string
 	type V float64
 
 	v := MakeMap(MapOf(TypeOf(K("")), TypeOf(V(0))))
+	runtime.GC()
 	v.SetMapIndex(ValueOf(K("a")), ValueOf(V(1)))
+	runtime.GC()
 
 	s := fmt.Sprint(v.Interface())
 	want := "map[a:1]"
@@ -2806,6 +3190,81 @@
 
 	// check that type already in binary is found
 	checkSameType(t, Zero(MapOf(TypeOf(V(0)), TypeOf(K("")))).Interface(), map[V]K(nil))
+
+	// check that invalid key type panics
+	shouldPanic(func() { MapOf(TypeOf((func())(nil)), TypeOf(false)) })
+}
+
+func TestMapOfGCKeys(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	mt := MapOf(tt, TypeOf(false))
+
+	// NOTE: The garbage collector handles allocated maps specially,
+	// so we have to save pointers to maps in x; the pointer code will
+	// use the gc info in the newly constructed map type.
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeMap(mt)
+		for j := 0; j < n; j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.SetMapIndex(ValueOf(p).Convert(tt), ValueOf(true))
+		}
+		pv := New(mt)
+		pv.Elem().Set(v)
+		x = append(x, pv.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi).Elem()
+		var out []int
+		for _, kv := range v.MapKeys() {
+			out = append(out, int(kv.Elem().Interface().(uintptr)))
+		}
+		sort.Ints(out)
+		for j, k := range out {
+			if k != i*n+j {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
+}
+
+func TestMapOfGCValues(t *testing.T) {
+	type T *uintptr
+	tt := TypeOf(T(nil))
+	mt := MapOf(TypeOf(1), tt)
+
+	// NOTE: The garbage collector handles allocated maps specially,
+	// so we have to save pointers to maps in x; the pointer code will
+	// use the gc info in the newly constructed map type.
+	const n = 100
+	var x []interface{}
+	for i := 0; i < n; i++ {
+		v := MakeMap(mt)
+		for j := 0; j < n; j++ {
+			p := new(uintptr)
+			*p = uintptr(i*n + j)
+			v.SetMapIndex(ValueOf(j), ValueOf(p).Convert(tt))
+		}
+		pv := New(mt)
+		pv.Elem().Set(v)
+		x = append(x, pv.Interface())
+	}
+	runtime.GC()
+
+	for i, xi := range x {
+		v := ValueOf(xi).Elem()
+		for j := 0; j < n; j++ {
+			k := v.MapIndex(ValueOf(j)).Elem().Interface().(uintptr)
+			if k != uintptr(i*n+j) {
+				t.Errorf("lost x[%d][%d] = %d, want %d", i, j, k, i*n+j)
+			}
+		}
+	}
 }
 
 type B1 struct {
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/deepequal.go gcc-4.8.1/libgo/go/reflect/deepequal.go
--- gcc-4.8.1.orig/libgo/go/reflect/deepequal.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/reflect/deepequal.go	2013-07-16 01:55:04.520470000 -0500
@@ -118,8 +118,6 @@
 		// Normal equality suffices
 		return valueInterface(v1, false) == valueInterface(v2, false)
 	}
-
-	panic("Not reached")
 }
 
 // DeepEqual tests for deep equality. It uses normal == equality where
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/makefunc.go gcc-4.8.1/libgo/go/reflect/makefunc.go
--- gcc-4.8.1.orig/libgo/go/reflect/makefunc.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/reflect/makefunc.go	2013-07-16 01:55:04.520470000 -0500
@@ -10,6 +10,14 @@
 	"unsafe"
 )
 
+// makeFuncImpl is the closure value implementing the function
+// returned by MakeFunc.
+type makeFuncImpl struct {
+	code uintptr
+	typ  *funcType
+	fn   func([]Value) []Value
+}
+
 // MakeFunc returns a new function of the given Type
 // that wraps the function fn. When called, that new function
 // does the following:
@@ -37,45 +45,35 @@
 		panic("reflect: call of MakeFunc with non-Func type")
 	}
 
-	ft := (*funcType)(unsafe.Pointer(typ.common()))
+	t := typ.common()
+	ftyp := (*funcType)(unsafe.Pointer(t))
 
-	// We will build a function that uses the C stdarg routines to
-	// pull out the arguments.  Since the stdarg routines require
-	// the first parameter to be available, we need to switch on
-	// the possible first parameter types.  Note that this assumes
-	// that the calling ABI for a stdarg function is the same as
-	// that for a non-stdarg function.  The C standard does not
-	// require this, but it is true for most implementations in
-	// practice.
-
-	// Handling result types is a different problem.  There are a
-	// few cases to handle:
-	//   * No results.
-	//   * One result.
-	//   * More than one result, which is returned in a struct.
-	//     + Struct returned in registers.
-	//     + Struct returned in memory.
-
-	var result Kind
-	var resultSize uintptr
-	switch len(ft.out) {
-	case 0:
-		result = Invalid
-	case 1:
-		result = Kind(ft.out[0].kind)
-		resultSize = ft.out[0].size
-	default:
-		result = Struct
-	}
+	_, _ = t, ftyp
 
 	panic("reflect MakeFunc not implemented")
+}
+
+// makeMethodValue converts v from the rcvr+method index representation
+// of a method value to an actual method func value, which is
+// basically the receiver value with a special bit set, into a true
+// func value - a value holding an actual func. The output is
+// semantically equivalent to the input as far as the user of package
+// reflect can tell, but the true func representation can be handled
+// by code like Convert and Interface and Assign.
+func makeMethodValue(op string, v Value) Value {
+	if v.flag&flagMethod == 0 {
+		panic("reflect: internal error: invalid use of makePartialFunc")
+	}
 
-	// stub := func(i int) {
-	// 	var args __gnuc_va_list
-	// 	__builtin_va_start(args, i)
-	// 	v := makeInt(0, uint64(i), ft.in[0])
-	// 	return callReflect(ft, fn, v, args)
-	// }
+	// Ignoring the flagMethod bit, v describes the receiver, not the method type.
+	fl := v.flag & (flagRO | flagAddr | flagIndir)
+	fl |= flag(v.typ.Kind()) << flagKindShift
+	rcvr := Value{v.typ, v.val, fl}
+
+	// Cause panic if method is not appropriate.
+	// The panic would still happen during the call if we omit this,
+	// but we want Interface() and other operations to fail early.
+	methodReceiver(op, rcvr, int(v.flag)>>flagMethodShift)
 
-	// return Value{t, unsafe.Pointer(&impl.code[0]), flag(Func) << flagKindShift}
+	panic("reflect makeMethodValue not implemented")
 }
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/set_test.go gcc-4.8.1/libgo/go/reflect/set_test.go
--- gcc-4.8.1.orig/libgo/go/reflect/set_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/reflect/set_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -81,7 +81,7 @@
 			t.Errorf("#5 after SetMapIndex(b1, b2): %p (!= %p), %t (map=%v)", x, b2, ok, m)
 		}
 		if p := mv.MapIndex(ValueOf(b1)).Elem().Pointer(); p != uintptr(unsafe.Pointer(b2)) {
-			t.Errorf("#5 MapIndex(b1) = %p want %p", p, b2)
+			t.Errorf("#5 MapIndex(b1) = %#x want %p", p, b2)
 		}
 	}
 	{
@@ -96,7 +96,7 @@
 			t.Errorf("#6 after SetMapIndex(c1, c2): %p (!= %p), %t (map=%v)", x, c2, ok, m)
 		}
 		if p := mv.MapIndex(ValueOf(c1)).Pointer(); p != ValueOf(c2).Pointer() {
-			t.Errorf("#6 MapIndex(c1) = %p want %p", p, c2)
+			t.Errorf("#6 MapIndex(c1) = %#x want %p", p, c2)
 		}
 	}
 	{
@@ -115,7 +115,7 @@
 			t.Errorf("#7 after SetMapIndex(b1, b2): %p (!= %p), %t (map=%v)", x, b2, ok, m)
 		}
 		if p := mv.MapIndex(ValueOf(b1)).Pointer(); p != uintptr(unsafe.Pointer(b2)) {
-			t.Errorf("#7 MapIndex(b1) = %p want %p", p, b2)
+			t.Errorf("#7 MapIndex(b1) = %#x want %p", p, b2)
 		}
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/tostring_test.go gcc-4.8.1/libgo/go/reflect/tostring_test.go
--- gcc-4.8.1.orig/libgo/go/reflect/tostring_test.go	2011-12-14 09:41:54.000000000 -0600
+++ gcc-4.8.1/libgo/go/reflect/tostring_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -92,5 +92,4 @@
 	default:
 		panic("valueToString: can't print type " + typ.String())
 	}
-	return "valueToString: can't happen"
 }
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/type.go gcc-4.8.1/libgo/go/reflect/type.go
--- gcc-4.8.1.orig/libgo/go/reflect/type.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/reflect/type.go	2013-07-16 01:55:04.520470000 -0500
@@ -243,8 +243,8 @@
 	size       uintptr // size in bytes
 	hash       uint32  // hash of type; avoids computation in hash tables
 
-	hashfn  func(unsafe.Pointer, uintptr)                 // hash function
-	equalfn func(unsafe.Pointer, unsafe.Pointer, uintptr) // equality function
+	hashfn  uintptr // hash function code
+	equalfn uintptr // equality function code
 
 	string        *string // string form; unnecessary  but undeniably useful
 	*uncommonType         // (relatively) uncommon fields
@@ -349,6 +349,25 @@
 	fields []structField // sorted by offset
 }
 
+// NOTE: These are copied from ../runtime/mgc0.h.
+// They must be kept in sync.
+const (
+	_GC_END = iota
+	_GC_PTR
+	_GC_APTR
+	_GC_ARRAY_START
+	_GC_ARRAY_NEXT
+	_GC_CALL
+	_GC_MAP_PTR
+	_GC_CHAN_PTR
+	_GC_STRING
+	_GC_EFACE
+	_GC_IFACE
+	_GC_SLICE
+	_GC_REGION
+	_GC_NUM_INSTR
+)
+
 /*
  * The compiler knows the exact layout of all the data structures above.
  * The compiler does not know about the data structures and methods below.
@@ -372,7 +391,10 @@
 
 // High bit says whether type has
 // embedded pointers,to help garbage collector.
-const kindMask = 0x7f
+const (
+	kindMask       = 0x7f
+	kindNoPointers = 0x80
+)
 
 func (k Kind) String() string {
 	if int(k) < len(kindNames) {
@@ -485,7 +507,7 @@
 	mt := p.typ
 	m.Type = toType(mt)
 	x := new(unsafe.Pointer)
-	*x = p.tfn
+	*x = unsafe.Pointer(&p.tfn)
 	m.Func = Value{mt, unsafe.Pointer(x), fl | flagIndir}
 	m.Index = i
 	return
@@ -730,7 +752,7 @@
 	Tag       StructTag // field tag string
 	Offset    uintptr   // offset within struct, in bytes
 	Index     []int     // index sequence for Type.FieldByIndex
-	Anonymous bool      // is an anonymous field
+	Anonymous bool      // is an embedded field
 }
 
 // A StructTag is the tag string in a struct field.
@@ -1001,6 +1023,32 @@
 	m map[*rtype]*ptrType
 }
 
+// garbage collection bytecode program for pointer to memory without pointers.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type ptrDataGC struct {
+	width uintptr // sizeof(ptr)
+	op    uintptr // _GC_APTR
+	off   uintptr // 0
+	end   uintptr // _GC_END
+}
+
+var ptrDataGCProg = ptrDataGC{
+	width: unsafe.Sizeof((*byte)(nil)),
+	op:    _GC_APTR,
+	off:   0,
+	end:   _GC_END,
+}
+
+// garbage collection bytecode program for pointer to memory with pointers.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type ptrGC struct {
+	width  uintptr        // sizeof(ptr)
+	op     uintptr        // _GC_PTR
+	off    uintptr        // 0
+	elemgc unsafe.Pointer // element gc type
+	end    uintptr        // _GC_END
+}
+
 // PtrTo returns the pointer type with element t.
 // For example, if t represents type Foo, PtrTo(t) represents *Foo.
 func PtrTo(t Type) Type {
@@ -1334,6 +1382,21 @@
 	return t
 }
 
+// garbage collection bytecode program for chan or map.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type chanMapGC struct {
+	width uintptr // sizeof(map)
+	op    uintptr // _GC_MAP_PTR or _GC_CHAN_PTR
+	off   uintptr // 0
+	typ   *rtype  // map type
+	end   uintptr // _GC_END
+}
+
+type badGC struct {
+	width uintptr
+	end   uintptr
+}
+
 // ChanOf returns the channel type with the given direction and element type.
 // For example, if t represents int, ChanOf(RecvDir, t) represents <-chan int.
 //
@@ -1393,20 +1456,27 @@
 	ch.uncommonType = nil
 	ch.ptrToThis = nil
 
+	// INCORRECT. Uncomment to check that TestChanOfGC fails when ch.gc is wrong.
+	//ch.gc = unsafe.Pointer(&badGC{width: ch.size, end: _GC_END})
+
 	return cachePut(ckey, &ch.rtype)
 }
 
+func ismapkey(*rtype) bool // implemented in runtime
+
 // MapOf returns the map type with the given key and element types.
 // For example, if k represents int and e represents string,
 // MapOf(k, e) represents map[int]string.
 //
 // If the key type is not a valid map key type (that is, if it does
-// not implement Go's == operator), MapOf panics. TODO(rsc).
+// not implement Go's == operator), MapOf panics.
 func MapOf(key, elem Type) Type {
 	ktyp := key.(*rtype)
 	etyp := elem.(*rtype)
 
-	// TODO: Check for invalid key types.
+	if !ismapkey(ktyp) {
+		panic("reflect.MapOf: invalid key type " + ktyp.String())
+	}
 
 	// Look in cache.
 	ckey := cacheKey{Map, ktyp, etyp, 0}
@@ -1433,9 +1503,39 @@
 	mt.uncommonType = nil
 	mt.ptrToThis = nil
 
+	// INCORRECT. Uncomment to check that TestMapOfGC and TestMapOfGCValues
+	// fail when mt.gc is wrong.
+	//mt.gc = unsafe.Pointer(&badGC{width: mt.size, end: _GC_END})
+
 	return cachePut(ckey, &mt.rtype)
 }
 
+// garbage collection bytecode program for slice of non-zero-length values.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type sliceGC struct {
+	width  uintptr        // sizeof(slice)
+	op     uintptr        // _GC_SLICE
+	off    uintptr        // 0
+	elemgc unsafe.Pointer // element gc program
+	end    uintptr        // _GC_END
+}
+
+// garbage collection bytecode program for slice of zero-length values.
+// See ../../cmd/gc/reflect.c:/^dgcsym1 and :/^dgcsym.
+type sliceEmptyGC struct {
+	width uintptr // sizeof(slice)
+	op    uintptr // _GC_APTR
+	off   uintptr // 0
+	end   uintptr // _GC_END
+}
+
+var sliceEmptyGCProg = sliceEmptyGC{
+	width: unsafe.Sizeof([]byte(nil)),
+	op:    _GC_APTR,
+	off:   0,
+	end:   _GC_END,
+}
+
 // SliceOf returns the slice type with element type t.
 // For example, if t represents int, SliceOf(t) represents []int.
 func SliceOf(t Type) Type {
@@ -1465,6 +1565,9 @@
 	slice.uncommonType = nil
 	slice.ptrToThis = nil
 
+	// INCORRECT. Uncomment to check that TestSliceOfOfGC fails when slice.gc is wrong.
+	//slice.gc = unsafe.Pointer(&badGC{width: slice.size, end: _GC_END})
+
 	return cachePut(ckey, &slice.rtype)
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/reflect/value.go gcc-4.8.1/libgo/go/reflect/value.go
--- gcc-4.8.1.orig/libgo/go/reflect/value.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/reflect/value.go	2013-07-16 01:55:04.520470000 -0500
@@ -245,7 +245,7 @@
 		panic(&ValueError{methodName(), 0})
 	}
 	if f&flagRO != 0 {
-		panic(methodName() + " using value obtained using unexported field")
+		panic("reflect: " + methodName() + " using value obtained using unexported field")
 	}
 }
 
@@ -258,10 +258,10 @@
 	}
 	// Assignable if addressable and not read-only.
 	if f&flagRO != 0 {
-		panic(methodName() + " using value obtained using unexported field")
+		panic("reflect: " + methodName() + " using value obtained using unexported field")
 	}
 	if f&flagAddr == 0 {
-		panic(methodName() + " using unaddressable value")
+		panic("reflect: " + methodName() + " using unaddressable value")
 	}
 }
 
@@ -354,7 +354,7 @@
 	return v.call("CallSlice", in)
 }
 
-func (v Value) call(method string, in []Value) []Value {
+func (v Value) call(op string, in []Value) []Value {
 	// Get function pointer, type.
 	t := v.typ
 	var (
@@ -362,36 +362,7 @@
 		rcvr iword
 	)
 	if v.flag&flagMethod != 0 {
-		i := int(v.flag) >> flagMethodShift
-		if v.typ.Kind() == Interface {
-			tt := (*interfaceType)(unsafe.Pointer(v.typ))
-			if i < 0 || i >= len(tt.methods) {
-				panic("reflect: broken Value")
-			}
-			m := &tt.methods[i]
-			if m.pkgPath != nil {
-				panic(method + " of unexported method")
-			}
-			t = m.typ
-			iface := (*nonEmptyInterface)(v.val)
-			if iface.itab == nil {
-				panic(method + " of method on nil interface value")
-			}
-			fn = iface.itab.fun[i]
-			rcvr = iface.word
-		} else {
-			ut := v.typ.uncommon()
-			if ut == nil || i < 0 || i >= len(ut.methods) {
-				panic("reflect: broken Value")
-			}
-			m := &ut.methods[i]
-			if m.pkgPath != nil {
-				panic(method + " of unexported method")
-			}
-			fn = m.tfn
-			t = m.mtyp
-			rcvr = v.iword()
-		}
+		t, fn, rcvr = methodReceiver(op, v, int(v.flag)>>flagMethodShift)
 	} else if v.flag&flagIndir != 0 {
 		fn = *(*unsafe.Pointer)(v.val)
 	} else {
@@ -402,7 +373,7 @@
 		panic("reflect.Value.Call: call of nil function")
 	}
 
-	isSlice := method == "CallSlice"
+	isSlice := op == "CallSlice"
 	n := t.NumIn()
 	if isSlice {
 		if !t.IsVariadic() {
@@ -427,12 +398,12 @@
 	}
 	for _, x := range in {
 		if x.Kind() == Invalid {
-			panic("reflect: " + method + " using zero Value argument")
+			panic("reflect: " + op + " using zero Value argument")
 		}
 	}
 	for i := 0; i < n; i++ {
 		if xt, targ := in[i].Type(), t.In(i); !xt.AssignableTo(targ) {
-			panic("reflect: " + method + " using " + xt.String() + " as type " + targ.String())
+			panic("reflect: " + op + " using " + xt.String() + " as type " + targ.String())
 		}
 	}
 	if !isSlice && t.IsVariadic() {
@@ -443,7 +414,7 @@
 		for i := 0; i < m; i++ {
 			x := in[n+i]
 			if xt := x.Type(); !xt.AssignableTo(elem) {
-				panic("reflect: cannot use " + xt.String() + " as type " + elem.String() + " in " + method)
+				panic("reflect: cannot use " + xt.String() + " as type " + elem.String() + " in " + op)
 			}
 			slice.Index(i).Set(x)
 		}
@@ -462,6 +433,10 @@
 	if v.flag&flagMethod != 0 {
 		nin++
 	}
+	firstPointer := len(in) > 0 && Kind(t.In(0).(*rtype).kind) != Ptr && v.flag&flagMethod == 0 && isMethod(v.typ)
+	if v.flag&flagMethod == 0 && !firstPointer {
+		nin++
+	}
 	params := make([]unsafe.Pointer, nin)
 	off := 0
 	if v.flag&flagMethod != 0 {
@@ -471,7 +446,6 @@
 		params[0] = unsafe.Pointer(p)
 		off = 1
 	}
-	first_pointer := false
 	for i, pv := range in {
 		pv.mustBeExported()
 		targ := t.In(i).(*rtype)
@@ -483,14 +457,17 @@
 		} else {
 			params[off] = pv.val
 		}
-		if i == 0 && Kind(targ.kind) != Ptr && v.flag&flagMethod == 0 && isMethod(v.typ) {
+		if i == 0 && firstPointer {
 			p := new(unsafe.Pointer)
 			*p = params[off]
 			params[off] = unsafe.Pointer(p)
-			first_pointer = true
 		}
 		off++
 	}
+	if v.flag&flagMethod == 0 && !firstPointer {
+		// Closure argument.
+		params[off] = unsafe.Pointer(&fn)
+	}
 
 	ret := make([]Value, nout)
 	results := make([]unsafe.Pointer, nout)
@@ -509,7 +486,7 @@
 		pr = &results[0]
 	}
 
-	call(t, fn, v.flag&flagMethod != 0, first_pointer, pp, pr)
+	call(t, fn, v.flag&flagMethod != 0, firstPointer, pp, pr)
 
 	return ret
 }
@@ -547,7 +524,10 @@
 // frame into a call using Values.
 // It is in this file so that it can be next to the call method above.
 // The remainder of the MakeFunc implementation is in makefunc.go.
-func callReflect(ftyp *funcType, f func([]Value) []Value, frame unsafe.Pointer) {
+func callReflect(ctxt *makeFuncImpl, frame unsafe.Pointer) {
+	ftyp := ctxt.typ
+	f := ctxt.fn
+
 	// Copy argument frame into Values.
 	ptr := frame
 	off := uintptr(0)
@@ -605,6 +585,91 @@
 	}
 }
 
+// methodReceiver returns information about the receiver
+// described by v. The Value v may or may not have the
+// flagMethod bit set, so the kind cached in v.flag should
+// not be used.
+func methodReceiver(op string, v Value, methodIndex int) (t *rtype, fn unsafe.Pointer, rcvr iword) {
+	i := methodIndex
+	if v.typ.Kind() == Interface {
+		tt := (*interfaceType)(unsafe.Pointer(v.typ))
+		if i < 0 || i >= len(tt.methods) {
+			panic("reflect: internal error: invalid method index")
+		}
+		m := &tt.methods[i]
+		if m.pkgPath != nil {
+			panic("reflect: " + op + " of unexported method")
+		}
+		t = m.typ
+		iface := (*nonEmptyInterface)(v.val)
+		if iface.itab == nil {
+			panic("reflect: " + op + " of method on nil interface value")
+		}
+		fn = unsafe.Pointer(&iface.itab.fun[i])
+		rcvr = iface.word
+	} else {
+		ut := v.typ.uncommon()
+		if ut == nil || i < 0 || i >= len(ut.methods) {
+			panic("reflect: internal error: invalid method index")
+		}
+		m := &ut.methods[i]
+		if m.pkgPath != nil {
+			panic("reflect: " + op + " of unexported method")
+		}
+		fn = unsafe.Pointer(&m.tfn)
+		t = m.mtyp
+		rcvr = v.iword()
+	}
+	return
+}
+
+// align returns the result of rounding x up to a multiple of n.
+// n must be a power of two.
+func align(x, n uintptr) uintptr {
+	return (x + n - 1) &^ (n - 1)
+}
+
+// frameSize returns the sizes of the argument and result frame
+// for a function of the given type. The rcvr bool specifies whether
+// a one-word receiver should be included in the total.
+func frameSize(t *rtype, rcvr bool) (total, in, outOffset, out uintptr) {
+	if rcvr {
+		// extra word for receiver interface word
+		total += ptrSize
+	}
+
+	nin := t.NumIn()
+	in = -total
+	for i := 0; i < nin; i++ {
+		tv := t.In(i)
+		total = align(total, uintptr(tv.Align()))
+		total += tv.Size()
+	}
+	in += total
+	total = align(total, ptrSize)
+	nout := t.NumOut()
+	outOffset = total
+	out = -total
+	for i := 0; i < nout; i++ {
+		tv := t.Out(i)
+		total = align(total, uintptr(tv.Align()))
+		total += tv.Size()
+	}
+	out += total
+
+	// total must be > 0 in order for &args[0] to be valid.
+	// the argument copying is going to round it up to
+	// a multiple of ptrSize anyway, so make it ptrSize to begin with.
+	if total < ptrSize {
+		total = ptrSize
+	}
+
+	// round to pointer
+	total = align(total, ptrSize)
+
+	return
+}
+
 // funcName returns the name of f, for use in error messages.
 func funcName(f func([]Value) []Value) string {
 	pc := *(*uintptr)(unsafe.Pointer(&f))
@@ -891,7 +956,7 @@
 	if v.flag == 0 {
 		panic(&ValueError{"reflect.Value.CanInterface", Invalid})
 	}
-	return v.flag&(flagMethod|flagRO) == 0
+	return v.flag&flagRO == 0
 }
 
 // Interface returns v's current value as an interface{}.
@@ -910,16 +975,15 @@
 	if v.flag == 0 {
 		panic(&ValueError{"reflect.Value.Interface", 0})
 	}
-	if v.flag&flagMethod != 0 {
-		panic("reflect.Value.Interface: cannot create interface value for method with bound receiver")
-	}
-
 	if safe && v.flag&flagRO != 0 {
 		// Do not allow access to unexported values via Interface,
 		// because they might be pointers that should not be
 		// writable or methods or function that should not be callable.
 		panic("reflect.Value.Interface: cannot return value obtained from unexported field or method")
 	}
+	if v.flag&flagMethod != 0 {
+		v = makeMethodValue("Interface", v)
+	}
 
 	k := v.kind()
 	if k == Interface {
@@ -974,7 +1038,7 @@
 	switch k {
 	case Chan, Func, Map, Ptr:
 		if v.flag&flagMethod != 0 {
-			panic("reflect: IsNil of method Value")
+			return false
 		}
 		ptr := v.val
 		if v.flag&flagIndir != 0 {
@@ -1093,7 +1157,7 @@
 // Method returns a function value corresponding to v's i'th method.
 // The arguments to a Call on the returned function should not include
 // a receiver; the returned function will always use v as the receiver.
-// Method panics if i is out of range.
+// Method panics if i is out of range or if v is a nil interface value.
 func (v Value) Method(i int) Value {
 	if v.typ == nil {
 		panic(&ValueError{"reflect.Value.Method", Invalid})
@@ -1101,7 +1165,10 @@
 	if v.flag&flagMethod != 0 || i < 0 || i >= v.typ.NumMethod() {
 		panic("reflect: Method index out of range")
 	}
-	fl := v.flag & (flagRO | flagAddr | flagIndir)
+	if v.typ.Kind() == Interface && v.IsNil() {
+		panic("reflect: Method on nil interface value")
+	}
+	fl := v.flag & (flagRO | flagIndir)
 	fl |= flag(Func) << flagKindShift
 	fl |= flag(i)<<flagMethodShift | flagMethod
 	return Value{v.typ, v.val, fl}
@@ -1209,18 +1276,43 @@
 // code using reflect cannot obtain unsafe.Pointers
 // without importing the unsafe package explicitly.
 // It panics if v's Kind is not Chan, Func, Map, Ptr, Slice, or UnsafePointer.
+//
+// If v's Kind is Func, the returned pointer is an underlying
+// code pointer, but not necessarily enough to identify a
+// single function uniquely. The only guarantee is that the
+// result is zero if and only if v is a nil func Value.
 func (v Value) Pointer() uintptr {
 	k := v.kind()
 	switch k {
-	case Chan, Func, Map, Ptr, UnsafePointer:
-		if k == Func && v.flag&flagMethod != 0 {
-			panic("reflect.Value.Pointer of method Value")
+	case Chan, Map, Ptr, UnsafePointer:
+		p := v.val
+		if v.flag&flagIndir != 0 {
+			p = *(*unsafe.Pointer)(p)
+		}
+		return uintptr(p)
+	case Func:
+		if v.flag&flagMethod != 0 {
+			// As the doc comment says, the returned pointer is an
+			// underlying code pointer but not necessarily enough to
+			// identify a single function uniquely. All method expressions
+			// created via reflect have the same underlying code pointer,
+			// so their Pointers are equal. The function used here must
+			// match the one used in makeMethodValue.
+			// This is not properly implemented for gccgo.
+			f := Zero
+			return **(**uintptr)(unsafe.Pointer(&f))
 		}
 		p := v.val
 		if v.flag&flagIndir != 0 {
 			p = *(*unsafe.Pointer)(p)
 		}
+		// Non-nil func value points at data block.
+		// First word of data block is actual code.
+		if p != nil {
+			p = *(*unsafe.Pointer)(p)
+		}
 		return uintptr(p)
+
 	case Slice:
 		return (*SliceHeader)(v.val).Data
 	}
@@ -1243,7 +1335,7 @@
 func (v Value) recv(nb bool) (val Value, ok bool) {
 	tt := (*chanType)(unsafe.Pointer(v.typ))
 	if ChanDir(tt.dir)&RecvDir == 0 {
-		panic("recv on send-only channel")
+		panic("reflect: recv on send-only channel")
 	}
 	word, selected, ok := chanrecv(v.typ, *(*iword)(v.iword()), nb)
 	if selected {
@@ -1271,7 +1363,7 @@
 func (v Value) send(x Value, nb bool) (selected bool) {
 	tt := (*chanType)(unsafe.Pointer(v.typ))
 	if ChanDir(tt.dir)&SendDir == 0 {
-		panic("send on recv-only channel")
+		panic("reflect: send on recv-only channel")
 	}
 	x.mustBeExported()
 	x = x.assignTo("reflect.Value.Send", tt.elem, nil)
@@ -1444,7 +1536,7 @@
 }
 
 // Slice returns a slice of v.
-// It panics if v's Kind is not Array, Slice, or String.
+// It panics if v's Kind is not Array, Slice or String, or if v is an unaddressable array.
 func (v Value) Slice(beg, end int) Value {
 	var (
 		cap  int
@@ -1554,7 +1646,7 @@
 		// Method on interface.
 		tt := (*interfaceType)(unsafe.Pointer(v.typ))
 		if i < 0 || i >= len(tt.methods) {
-			panic("reflect: broken Value")
+			panic("reflect: internal error: invalid method index")
 		}
 		m := &tt.methods[i]
 		return toType(m.typ)
@@ -1562,7 +1654,7 @@
 	// Method on concrete type.
 	ut := v.typ.uncommon()
 	if ut == nil || i < 0 || i >= len(ut.methods) {
-		panic("reflect: broken Value")
+		panic("reflect: internal error: invalid method index")
 	}
 	m := &ut.methods[i]
 	return toType(m.mtyp)
@@ -1611,14 +1703,22 @@
 }
 
 // StringHeader is the runtime representation of a string.
-// It cannot be used safely or portably.
+// It cannot be used safely or portably and its representation may
+// change in a later release.
+// Moreover, the Data field is not sufficient to guarantee the data
+// it references will not be garbage collected, so programs must keep
+// a separate, correctly typed pointer to the underlying data.
 type StringHeader struct {
 	Data uintptr
 	Len  int
 }
 
 // SliceHeader is the runtime representation of a slice.
-// It cannot be used safely or portably.
+// It cannot be used safely or portably and its representation may
+// change in a later release.
+// Moreover, the Data field is not sufficient to guarantee the data
+// it references will not be garbage collected, so programs must keep
+// a separate, correctly typed pointer to the underlying data.
 type SliceHeader struct {
 	Data uintptr
 	Len  int
@@ -1787,8 +1887,9 @@
 }
 
 // Select executes a select operation described by the list of cases.
-// Like the Go select statement, it blocks until one of the cases can
-// proceed and then executes that case. It returns the index of the chosen case
+// Like the Go select statement, it blocks until at least one of the cases
+// can proceed, makes a uniform pseudo-random choice,
+// and then executes that case. It returns the index of the chosen case
 // and, if that case was a receive operation, the value received and a
 // boolean indicating whether the value corresponds to a send on the channel
 // (as opposed to a zero value received because the channel is closed).
@@ -2005,7 +2106,7 @@
 // For a conversion to an interface type, target is a suggested scratch space to use.
 func (v Value) assignTo(context string, dst *rtype, target *interface{}) Value {
 	if v.flag&flagMethod != 0 {
-		panic(context + ": cannot assign method value to type " + dst.String())
+		v = makeMethodValue(context, v)
 	}
 
 	switch {
@@ -2039,7 +2140,7 @@
 // of the value v to type t, Convert panics.
 func (v Value) Convert(t Type) Value {
 	if v.flag&flagMethod != 0 {
-		panic("reflect.Value.Convert: cannot convert method values")
+		v = makeMethodValue("Convert", v)
 	}
 	op := convertOp(t.common(), v.typ)
 	if op == nil {
diff -Naur gcc-4.8.1.orig/libgo/go/regexp/exec_test.go gcc-4.8.1/libgo/go/regexp/exec_test.go
--- gcc-4.8.1.orig/libgo/go/regexp/exec_test.go	2013-02-10 00:02:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/regexp/exec_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -89,7 +89,7 @@
 		txt = f
 	}
 	lineno := 0
-	r := bufio.NewReader(txt)
+	scanner := bufio.NewScanner(txt)
 	var (
 		str       []string
 		input     []string
@@ -99,16 +99,8 @@
 		nfail     int
 		ncase     int
 	)
-	for {
-		line, err := r.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				break
-			}
-			t.Fatalf("%s:%d: %v", file, lineno, err)
-		}
-		line = line[:len(line)-1] // chop \n
-		lineno++
+	for lineno := 1; scanner.Scan(); lineno++ {
+		line := scanner.Text()
 		switch {
 		case line == "":
 			t.Fatalf("%s:%d: unexpected blank line", file, lineno)
@@ -204,6 +196,9 @@
 			t.Fatalf("%s:%d: out of sync: %s\n", file, lineno, line)
 		}
 	}
+	if err := scanner.Err(); err != nil {
+		t.Fatalf("%s:%d: %v", file, lineno, err)
+	}
 	if len(input) != 0 {
 		t.Fatalf("%s:%d: out of sync: have %d strings left at EOF", file, lineno, len(input))
 	}
@@ -706,3 +701,17 @@
 func BenchmarkMatchHard_32K(b *testing.B)   { benchmark(b, hard, 32<<10) }
 func BenchmarkMatchHard_1M(b *testing.B)    { benchmark(b, hard, 1<<20) }
 func BenchmarkMatchHard_32M(b *testing.B)   { benchmark(b, hard, 32<<20) }
+
+func TestLongest(t *testing.T) {
+	re, err := Compile(`a(|b)`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if g, w := re.FindString("ab"), "a"; g != w {
+		t.Errorf("first match was %q, want %q", g, w)
+	}
+	re.Longest()
+	if g, w := re.FindString("ab"), "ab"; g != w {
+		t.Errorf("longest match was %q, want %q", g, w)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/regexp/regexp.go gcc-4.8.1/libgo/go/regexp/regexp.go
--- gcc-4.8.1.orig/libgo/go/regexp/regexp.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/regexp/regexp.go	2013-07-16 01:55:04.520470000 -0500
@@ -8,6 +8,8 @@
 // general syntax used by Perl, Python, and other languages.
 // More precisely, it is the syntax accepted by RE2 and described at
 // http://code.google.com/p/re2/wiki/Syntax, except for \C.
+// For an overview of the syntax, run
+//   godoc regexp/syntax
 //
 // All characters are UTF-8-encoded code points.
 //
@@ -27,11 +29,11 @@
 // of bytes; return values are adjusted as appropriate.
 //
 // If 'Submatch' is present, the return value is a slice identifying the
-// successive submatches of the expression.  Submatches are matches of
-// parenthesized subexpressions within the regular expression, numbered from
-// left to right in order of opening parenthesis.  Submatch 0 is the match of
-// the entire expression, submatch 1 the match of the first parenthesized
-// subexpression, and so on.
+// successive submatches of the expression. Submatches are matches of
+// parenthesized subexpressions (also known as capturing groups) within the
+// regular expression, numbered from left to right in order of opening
+// parenthesis. Submatch 0 is the match of the entire expression, submatch 1
+// the match of the first parenthesized subexpression, and so on.
 //
 // If 'Index' is present, matches and submatches are identified by byte index
 // pairs within the input string: result[2*n:2*n+1] identifies the indexes of
@@ -130,6 +132,14 @@
 	return compile(expr, syntax.POSIX, true)
 }
 
+// Longest makes future searches prefer the leftmost-longest match.
+// That is, when matching against text, the regexp returns a match that
+// begins as early as possible in the input (leftmost), and among those
+// it chooses a match that is as long as possible.
+func (re *Regexp) Longest() {
+	re.longest = true
+}
+
 func compile(expr string, mode syntax.Flags, longest bool) (*Regexp, error) {
 	re, err := syntax.Parse(expr, mode)
 	if err != nil {
@@ -387,7 +397,7 @@
 // MatchReader checks whether a textual regular expression matches the text
 // read by the RuneReader.  More complicated queries need to use Compile and
 // the full Regexp interface.
-func MatchReader(pattern string, r io.RuneReader) (matched bool, error error) {
+func MatchReader(pattern string, r io.RuneReader) (matched bool, err error) {
 	re, err := Compile(pattern)
 	if err != nil {
 		return false, err
@@ -398,7 +408,7 @@
 // MatchString checks whether a textual regular expression
 // matches a string.  More complicated queries need
 // to use Compile and the full Regexp interface.
-func MatchString(pattern string, s string) (matched bool, error error) {
+func MatchString(pattern string, s string) (matched bool, err error) {
 	re, err := Compile(pattern)
 	if err != nil {
 		return false, err
@@ -409,7 +419,7 @@
 // Match checks whether a textual regular expression
 // matches a byte slice.  More complicated queries need
 // to use Compile and the full Regexp interface.
-func Match(pattern string, b []byte) (matched bool, error error) {
+func Match(pattern string, b []byte) (matched bool, err error) {
 	re, err := Compile(pattern)
 	if err != nil {
 		return false, err
diff -Naur gcc-4.8.1.orig/libgo/go/regexp/syntax/doc.go gcc-4.8.1/libgo/go/regexp/syntax/doc.go
--- gcc-4.8.1.orig/libgo/go/regexp/syntax/doc.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/regexp/syntax/doc.go	2013-07-16 01:55:04.520470000 -0500
@@ -47,9 +47,9 @@
   x{n}?          exactly n x
 
 Grouping:
-  (re)           numbered capturing group
-  (?P<name>re)   named & numbered capturing group
-  (?:re)         non-capturing group
+  (re)           numbered capturing group (submatch)
+  (?P<name>re)   named & numbered capturing group (submatch)
+  (?:re)         non-capturing group (submatch)
   (?flags)       set flags within current group; non-capturing
   (?flags:re)    set flags during re; non-capturing
 
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/append_test.go gcc-4.8.1/libgo/go/runtime/append_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/append_test.go	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/runtime/append_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -19,6 +19,67 @@
 	}
 }
 
+func benchmarkAppendBytes(b *testing.B, length int) {
+	b.StopTimer()
+	x := make([]byte, 0, N)
+	y := make([]byte, length)
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		x = x[0:0]
+		x = append(x, y...)
+	}
+}
+
+func BenchmarkAppend1Byte(b *testing.B) {
+	benchmarkAppendBytes(b, 1)
+}
+
+func BenchmarkAppend4Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 4)
+}
+
+func BenchmarkAppend8Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 8)
+}
+
+func BenchmarkAppend16Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 16)
+}
+
+func BenchmarkAppend32Bytes(b *testing.B) {
+	benchmarkAppendBytes(b, 32)
+}
+
+func benchmarkAppendStr(b *testing.B, str string) {
+	b.StopTimer()
+	x := make([]byte, 0, N)
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		x = x[0:0]
+		x = append(x, str...)
+	}
+}
+
+func BenchmarkAppendStr1Byte(b *testing.B) {
+	benchmarkAppendStr(b, "1")
+}
+
+func BenchmarkAppendStr4Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "1234")
+}
+
+func BenchmarkAppendStr8Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "12345678")
+}
+
+func BenchmarkAppendStr16Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "1234567890123456")
+}
+
+func BenchmarkAppendStr32Bytes(b *testing.B) {
+	benchmarkAppendStr(b, "12345678901234567890123456789012")
+}
+
 func BenchmarkAppendSpecialCase(b *testing.B) {
 	b.StopTimer()
 	x := make([]int, 0, N)
@@ -50,3 +111,13 @@
 		t.Error("append failed: ", x[0], x[1])
 	}
 }
+
+func TestAppendOverlap(t *testing.T) {
+	x := []byte("1234")
+	x = append(x[1:], x...) // p > q in runtimeÂ·appendslice.
+	got := string(x)
+	want := "2341234"
+	if got != want {
+		t.Errorf("overlap failed: got %q want %q", got, want)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_cgo_test.go gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/crash_cgo_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/runtime/crash_cgo_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -11,5 +11,80 @@
 )
 
 func TestCgoCrashHandler(t *testing.T) {
-	testCrashHandler(t, &crashTest{Cgo: true})
+	testCrashHandler(t, true)
 }
+
+func TestCgoSignalDeadlock(t *testing.T) {
+	/* gccgo does not have a go command
+	got := executeTest(t, cgoSignalDeadlockSource, nil)
+	want := "OK\n"
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
+}
+
+const cgoSignalDeadlockSource = `
+package main
+
+import "C"
+
+import (
+	"fmt"
+	"runtime"
+	"time"
+)
+
+func main() {
+	runtime.GOMAXPROCS(100)
+	ping := make(chan bool)
+	go func() {
+		for i := 0; ; i++ {
+			runtime.Gosched()
+			select {
+			case done := <-ping:
+				if done {
+					ping <- true
+					return
+				}
+				ping <- true
+			default:
+			}
+			func() {
+				defer func() {
+					recover()
+				}()
+				var s *string
+				*s = ""
+			}()
+		}
+	}()
+	time.Sleep(time.Millisecond)
+	for i := 0; i < 64; i++ {
+		go func() {
+			runtime.LockOSThread()
+			select {}
+		}()
+		go func() {
+			runtime.LockOSThread()
+			select {}
+		}()
+		time.Sleep(time.Millisecond)
+		ping <- false
+		select {
+		case <-ping:
+		case <-time.After(time.Second):
+			fmt.Printf("HANG\n")
+			return
+		}
+	}
+	ping <- true
+	select {
+	case <-ping:
+	case <-time.After(time.Second):
+		fmt.Printf("HANG\n")
+		return
+	}
+	fmt.Printf("OK\n")
+}
+`
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/crash_test.go gcc-4.8.1/libgo/go/runtime/crash_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/crash_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/crash_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,21 +7,33 @@
 import (
 	"io/ioutil"
 	"os"
-	// "os/exec"
+	"os/exec"
 	"path/filepath"
+	"strings"
 	"testing"
 	"text/template"
 )
 
-type crashTest struct {
-	Cgo bool
+// testEnv excludes GOGCTRACE from the environment
+// to prevent its output from breaking tests that
+// are trying to parse other command output.
+func testEnv(cmd *exec.Cmd) *exec.Cmd {
+	if cmd.Env != nil {
+		panic("environment already set")
+	}
+	for _, env := range os.Environ() {
+		if strings.HasPrefix(env, "GOGCTRACE=") {
+			continue
+		}
+		cmd.Env = append(cmd.Env, env)
+	}
+	return cmd
 }
 
-// This test is a separate program, because it is testing
-// both main (m0) and non-main threads (m).
+func executeTest(t *testing.T, templ string, data interface{}) string {
+	checkStaleRuntime(t)
 
-func testCrashHandler(t *testing.T, ct *crashTest) {
-	st := template.Must(template.New("crashSource").Parse(crashSource))
+	st := template.Must(template.New("crashSource").Parse(templ))
 
 	dir, err := ioutil.TempDir("", "go-build")
 	if err != nil {
@@ -34,30 +46,79 @@
 	if err != nil {
 		t.Fatalf("failed to create %v: %v", src, err)
 	}
-	err = st.Execute(f, ct)
+	err = st.Execute(f, data)
 	if err != nil {
 		f.Close()
 		t.Fatalf("failed to execute template: %v", err)
 	}
 	f.Close()
 
-	/*
-		 gccgo does not have a go command.
+	got, _ := testEnv(exec.Command("go", "run", src)).CombinedOutput()
+	return string(got)
+}
 
-		got, err := exec.Command("go", "run", src).CombinedOutput()
-		if err != nil {
-			t.Fatalf("program exited with error: %v\n%v", err, string(got))
-		}
-		want := "main: recovered done\nnew-thread: recovered done\nsecond-new-thread: recovered done\nmain-again: recovered done\n"
-		if string(got) != string(want) {
-			t.Fatalf("expected %q, but got %q", string(want), string(got))
-		}
+func checkStaleRuntime(t *testing.T) {
+	// 'go run' uses the installed copy of runtime.a, which may be out of date.
+	out, err := testEnv(exec.Command("go", "list", "-f", "{{.Stale}}", "runtime")).CombinedOutput()
+	if err != nil {
+		t.Fatalf("failed to execute 'go list': %v\n%v", err, string(out))
+	}
+	if string(out) != "false\n" {
+		t.Fatalf("Stale runtime.a. Run 'go install runtime'.")
+	}
+}
 
+func testCrashHandler(t *testing.T, cgo bool) {
+	/* gccgo does not have a go command
+	type crashTest struct {
+		Cgo bool
+	}
+	got := executeTest(t, crashSource, &crashTest{Cgo: cgo})
+	want := "main: recovered done\nnew-thread: recovered done\nsecond-new-thread: recovered done\nmain-again: recovered done\n"
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
 	*/
 }
 
 func TestCrashHandler(t *testing.T) {
-	testCrashHandler(t, &crashTest{Cgo: false})
+	testCrashHandler(t, false)
+}
+
+func testDeadlock(t *testing.T, source string) {
+	/* gccgo does not have a go command.
+	got := executeTest(t, source, nil)
+	want := "fatal error: all goroutines are asleep - deadlock!\n"
+	if !strings.HasPrefix(got, want) {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
+}
+
+func TestSimpleDeadlock(t *testing.T) {
+	testDeadlock(t, simpleDeadlockSource)
+}
+
+func TestInitDeadlock(t *testing.T) {
+	testDeadlock(t, initDeadlockSource)
+}
+
+func TestLockedDeadlock(t *testing.T) {
+	testDeadlock(t, lockedDeadlockSource)
+}
+
+func TestLockedDeadlock2(t *testing.T) {
+	testDeadlock(t, lockedDeadlockSource2)
+}
+
+func TestGoexitDeadlock(t *testing.T) {
+	/* gccgo does not have a go command
+	got := executeTest(t, goexitDeadlockSource, nil)
+	want := ""
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
 }
 
 const crashSource = `
@@ -103,3 +164,62 @@
 	test("main-again")
 }
 `
+
+const simpleDeadlockSource = `
+package main
+func main() {
+	select {}
+}
+`
+
+const initDeadlockSource = `
+package main
+func init() {
+	select {}
+}
+func main() {
+}
+`
+
+const lockedDeadlockSource = `
+package main
+import "runtime"
+func main() {
+	runtime.LockOSThread()
+	select {}
+}
+`
+
+const lockedDeadlockSource2 = `
+package main
+import (
+	"runtime"
+	"time"
+)
+func main() {
+	go func() {
+		runtime.LockOSThread()
+		select {}
+	}()
+	time.Sleep(time.Millisecond)
+	select {}
+}
+`
+
+const goexitDeadlockSource = `
+package main
+import (
+      "runtime"
+)
+
+func F() {
+      for i := 0; i < 10; i++ {
+      }
+}
+
+func main() {
+      go F()
+      go F()
+      runtime.Goexit()
+}
+`
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage.go gcc-4.8.1/libgo/go/runtime/debug/garbage.go
--- gcc-4.8.1.orig/libgo/go/runtime/debug/garbage.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/debug/garbage.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,101 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package debug
+
+import (
+	"runtime"
+	"sort"
+	"time"
+)
+
+// GCStats collect information about recent garbage collections.
+type GCStats struct {
+	LastGC         time.Time       // time of last collection
+	NumGC          int64           // number of garbage collections
+	PauseTotal     time.Duration   // total pause for all collections
+	Pause          []time.Duration // pause history, most recent first
+	PauseQuantiles []time.Duration
+}
+
+// Implemented in package runtime.
+func readGCStats(*[]time.Duration)
+func enableGC(bool) bool
+func setGCPercent(int) int
+func freeOSMemory()
+
+// ReadGCStats reads statistics about garbage collection into stats.
+// The number of entries in the pause history is system-dependent;
+// stats.Pause slice will be reused if large enough, reallocated otherwise.
+// ReadGCStats may use the full capacity of the stats.Pause slice.
+// If stats.PauseQuantiles is non-empty, ReadGCStats fills it with quantiles
+// summarizing the distribution of pause time. For example, if
+// len(stats.PauseQuantiles) is 5, it will be filled with the minimum,
+// 25%, 50%, 75%, and maximum pause times.
+func ReadGCStats(stats *GCStats) {
+	// Create a buffer with space for at least two copies of the
+	// pause history tracked by the runtime. One will be returned
+	// to the caller and the other will be used as a temporary buffer
+	// for computing quantiles.
+	const maxPause = len(((*runtime.MemStats)(nil)).PauseNs)
+	if cap(stats.Pause) < 2*maxPause {
+		stats.Pause = make([]time.Duration, 2*maxPause)
+	}
+
+	// readGCStats fills in the pause history (up to maxPause entries)
+	// and then three more: Unix ns time of last GC, number of GC,
+	// and total pause time in nanoseconds. Here we depend on the
+	// fact that time.Duration's native unit is nanoseconds, so the
+	// pauses and the total pause time do not need any conversion.
+	readGCStats(&stats.Pause)
+	n := len(stats.Pause) - 3
+	stats.LastGC = time.Unix(0, int64(stats.Pause[n]))
+	stats.NumGC = int64(stats.Pause[n+1])
+	stats.PauseTotal = stats.Pause[n+2]
+	stats.Pause = stats.Pause[:n]
+
+	if len(stats.PauseQuantiles) > 0 {
+		if n == 0 {
+			for i := range stats.PauseQuantiles {
+				stats.PauseQuantiles[i] = 0
+			}
+		} else {
+			// There's room for a second copy of the data in stats.Pause.
+			// See the allocation at the top of the function.
+			sorted := stats.Pause[n : n+n]
+			copy(sorted, stats.Pause)
+			sort.Sort(byDuration(sorted))
+			nq := len(stats.PauseQuantiles) - 1
+			for i := 0; i < nq; i++ {
+				stats.PauseQuantiles[i] = sorted[len(sorted)*i/nq]
+			}
+			stats.PauseQuantiles[nq] = sorted[len(sorted)-1]
+		}
+	}
+}
+
+type byDuration []time.Duration
+
+func (x byDuration) Len() int           { return len(x) }
+func (x byDuration) Swap(i, j int)      { x[i], x[j] = x[j], x[i] }
+func (x byDuration) Less(i, j int) bool { return x[i] < x[j] }
+
+// SetGCPercent sets the garbage collection target percentage:
+// a collection is triggered when the ratio of freshly allocated data
+// to live data remaining after the previous collection reaches this percentage.
+// SetGCPercent returns the previous setting.
+// The initial setting is the value of the GOGC environment variable
+// at startup, or 100 if the variable is not set.
+// A negative percentage disables garbage collection.
+func SetGCPercent(percent int) int {
+	return setGCPercent(percent)
+}
+
+// FreeOSMemory forces a garbage collection followed by an
+// attempt to return as much memory to the operating system
+// as possible. (Even if this is not called, the runtime gradually
+// returns memory to the operating system in a background task.)
+func FreeOSMemory() {
+	freeOSMemory()
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/debug/garbage_test.go gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/debug/garbage_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/debug/garbage_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,102 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package debug
+
+import (
+	"runtime"
+	"testing"
+	"time"
+)
+
+func TestReadGCStats(t *testing.T) {
+	defer SetGCPercent(SetGCPercent(-1))
+
+	var stats GCStats
+	var mstats runtime.MemStats
+	var min, max time.Duration
+
+	// First ReadGCStats will allocate, second should not,
+	// especially if we follow up with an explicit garbage collection.
+	stats.PauseQuantiles = make([]time.Duration, 10)
+	ReadGCStats(&stats)
+	runtime.GC()
+
+	// Assume these will return same data: no GC during ReadGCStats.
+	ReadGCStats(&stats)
+	runtime.ReadMemStats(&mstats)
+
+	if stats.NumGC != int64(mstats.NumGC) {
+		t.Errorf("stats.NumGC = %d, but mstats.NumGC = %d", stats.NumGC, mstats.NumGC)
+	}
+	if stats.PauseTotal != time.Duration(mstats.PauseTotalNs) {
+		t.Errorf("stats.PauseTotal = %d, but mstats.PauseTotalNs = %d", stats.PauseTotal, mstats.PauseTotalNs)
+	}
+	if stats.LastGC.UnixNano() != int64(mstats.LastGC) {
+		t.Errorf("stats.LastGC.UnixNano = %d, but mstats.LastGC = %d", stats.LastGC.UnixNano(), mstats.LastGC)
+	}
+	n := int(mstats.NumGC)
+	if n > len(mstats.PauseNs) {
+		n = len(mstats.PauseNs)
+	}
+	if len(stats.Pause) != n {
+		t.Errorf("len(stats.Pause) = %d, want %d", len(stats.Pause), n)
+	} else {
+		off := (int(mstats.NumGC) + len(mstats.PauseNs) - 1) % len(mstats.PauseNs)
+		for i := 0; i < n; i++ {
+			dt := stats.Pause[i]
+			if dt != time.Duration(mstats.PauseNs[off]) {
+				t.Errorf("stats.Pause[%d] = %d, want %d", i, dt, mstats.PauseNs[off])
+			}
+			if max < dt {
+				max = dt
+			}
+			if min > dt || i == 0 {
+				min = dt
+			}
+			off = (off + len(mstats.PauseNs) - 1) % len(mstats.PauseNs)
+		}
+	}
+
+	q := stats.PauseQuantiles
+	nq := len(q)
+	if q[0] != min || q[nq-1] != max {
+		t.Errorf("stats.PauseQuantiles = [%d, ..., %d], want [%d, ..., %d]", q[0], q[nq-1], min, max)
+	}
+
+	for i := 0; i < nq-1; i++ {
+		if q[i] > q[i+1] {
+			t.Errorf("stats.PauseQuantiles[%d]=%d > stats.PauseQuantiles[%d]=%d", i, q[i], i+1, q[i+1])
+		}
+	}
+}
+
+var big = make([]byte, 1<<20)
+
+func TestFreeOSMemory(t *testing.T) {
+	var ms1, ms2 runtime.MemStats
+
+	if big == nil {
+		t.Skip("test is not reliable when run multiple times")
+	}
+	big = nil
+	runtime.GC()
+	runtime.ReadMemStats(&ms1)
+	FreeOSMemory()
+	runtime.ReadMemStats(&ms2)
+	if ms1.HeapReleased >= ms2.HeapReleased {
+		t.Errorf("released before=%d; released after=%d; did not go up", ms1.HeapReleased, ms2.HeapReleased)
+	}
+}
+
+func TestSetGCPercent(t *testing.T) {
+	// Test that the variable is being set and returned correctly.
+	// Assume the percentage itself is implemented fine during GC,
+	// which is harder to test.
+	old := SetGCPercent(123)
+	new := SetGCPercent(old)
+	if new != 123 {
+		t.Errorf("SetGCPercent(123); SetGCPercent(x) = %d, want 123", new)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/export_test.go gcc-4.8.1/libgo/go/runtime/export_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/export_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/runtime/export_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -59,3 +59,9 @@
 	begin, end := parforiters(desc, uintptr(tid))
 	return uint32(begin), uint32(end)
 }
+
+func testSchedLocalQueue()
+func testSchedLocalQueueSteal()
+
+var TestSchedLocalQueue1 = testSchedLocalQueue
+var TestSchedLocalQueueSteal1 = testSchedLocalQueueSteal
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/extern.go gcc-4.8.1/libgo/go/runtime/extern.go
--- gcc-4.8.1.orig/libgo/go/runtime/extern.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/extern.go	2013-07-16 01:55:04.520470000 -0500
@@ -3,10 +3,54 @@
 // license that can be found in the LICENSE file.
 
 /*
-	Package runtime contains operations that interact with Go's runtime system,
-	such as functions to control goroutines. It also includes the low-level type information
-	used by the reflect package; see reflect's documentation for the programmable
-	interface to the run-time type system.
+Package runtime contains operations that interact with Go's runtime system,
+such as functions to control goroutines. It also includes the low-level type information
+used by the reflect package; see reflect's documentation for the programmable
+interface to the run-time type system.
+
+Environment Variables
+
+The following environment variables ($name or %name%, depending on the host
+operating system) control the run-time behavior of Go programs. The meanings
+and use may change from release to release.
+
+The GOGC variable sets the initial garbage collection target percentage.
+A collection is triggered when the ratio of freshly allocated data to live data
+remaining after the previous collection reaches this percentage. The default
+is GOGC=100. Setting GOGC=off disables the garbage collector entirely.
+The runtime/debug package's SetGCPercent function allows changing this
+percentage at run time. See http://golang.org/pkg/runtime/debug/#SetGCPercent.
+
+The GOGCTRACE variable controls debug output from the garbage collector.
+Setting GOGCTRACE=1 causes the garbage collector to emit a single line to standard
+error at each collection, summarizing the amount of memory collected and the
+length of the pause. Setting GOGCTRACE=2 emits the same summary but also
+repeats each collection.
+
+The GOMAXPROCS variable limits the number of operating system threads that
+can execute user-level Go code simultaneously. There is no limit to the number of threads
+that can be blocked in system calls on behalf of Go code; those do not count against
+the GOMAXPROCS limit. This package's GOMAXPROCS function queries and changes
+the limit.
+
+The GOTRACEBACK variable controls the amount of output generated when a Go
+program fails due to an unrecovered panic or an unexpected runtime condition.
+By default, a failure prints a stack trace for every extant goroutine, eliding functions
+internal to the run-time system, and then exits with exit code 2.
+If GOTRACEBACK=0, the per-goroutine stack traces are omitted entirely.
+If GOTRACEBACK=1, the default behavior is used.
+If GOTRACEBACK=2, the per-goroutine stack traces include run-time functions.
+If GOTRACEBACK=crash, the per-goroutine stack traces include run-time functions,
+and if possible the program crashes in an operating-specific manner instead of
+exiting. For example, on Unix systems, the program raises SIGABRT to trigger a
+core dump.
+
+The GOARCH, GOOS, GOPATH, and GOROOT environment variables complete
+the set of Go environment variables. They influence the building of Go programs
+(see http://golang.org/cmd/go and http://golang.org/pkg/go/build).
+GOARCH, GOOS, and GOROOT are recorded at compile time and made available by
+constants or functions in this package, but they do not influence the execution
+of the run-time system.
 */
 package runtime
 
@@ -59,9 +103,6 @@
 // implemented in symtab.c
 func funcline_go(*Func, uintptr) (string, int)
 
-// mid returns the current OS thread (m) id.
-func mid() uint32
-
 // SetFinalizer sets the finalizer associated with x to f.
 // When the garbage collector finds an unreachable block
 // with an associated finalizer, it clears the association and runs
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/gc_test.go gcc-4.8.1/libgo/go/runtime/gc_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/gc_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/gc_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,12 +5,36 @@
 package runtime_test
 
 import (
+	// "os"
 	"runtime"
+	"runtime/debug"
 	"testing"
 )
 
 func TestGcSys(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	/* gccgo does not have a go command
+	if os.Getenv("GOGC") == "off" {
+		t.Skip("skipping test; GOGC=off in environment")
+	}
+	data := struct{ Short bool }{testing.Short()}
+	got := executeTest(t, testGCSysSource, &data)
+	want := "OK\n"
+	if got != want {
+		t.Fatalf("expected %q, but got %q", want, got)
+	}
+	*/
+}
+
+const testGCSysSource = `
+package main
+
+import (
+	"fmt"
+	"runtime"
+)
+
+func main() {
+	runtime.GOMAXPROCS(1)
 	memstats := new(runtime.MemStats)
 	runtime.GC()
 	runtime.ReadMemStats(memstats)
@@ -19,9 +43,9 @@
 	runtime.MemProfileRate = 0 // disable profiler
 
 	itercount := 1000000
-	if testing.Short() {
-		itercount = 100000
-	}
+{{if .Short}}
+	itercount = 100000
+{{end}}
 	for i := 0; i < itercount; i++ {
 		workthegc()
 	}
@@ -34,15 +58,17 @@
 	} else {
 		sys = memstats.Sys - sys
 	}
-	t.Logf("used %d extra bytes", sys)
 	if sys > 16<<20 {
-		t.Fatalf("using too much memory: %d bytes", sys)
+		fmt.Printf("using too much memory: %d bytes\n", sys)
+		return
 	}
+	fmt.Printf("OK\n")
 }
 
 func workthegc() []byte {
 	return make([]byte, 1029)
 }
+`
 
 func TestGcDeepNesting(t *testing.T) {
 	type T [2][2][2][2][2][2][2][2][2][2]*int
@@ -59,3 +85,69 @@
 		t.Fail()
 	}
 }
+
+func TestGcHashmapIndirection(t *testing.T) {
+	defer debug.SetGCPercent(debug.SetGCPercent(1))
+	runtime.GC()
+	type T struct {
+		a [256]int
+	}
+	m := make(map[T]T)
+	for i := 0; i < 2000; i++ {
+		var a T
+		a.a[0] = i
+		m[a] = T{}
+	}
+}
+
+func TestGcArraySlice(t *testing.T) {
+	type X struct {
+		buf     [1]byte
+		nextbuf []byte
+		next    *X
+	}
+	var head *X
+	for i := 0; i < 10; i++ {
+		p := &X{}
+		p.buf[0] = 42
+		p.next = head
+		if head != nil {
+			p.nextbuf = head.buf[:]
+		}
+		head = p
+		runtime.GC()
+	}
+	for p := head; p != nil; p = p.next {
+		if p.buf[0] != 42 {
+			t.Fatal("corrupted heap")
+		}
+	}
+}
+
+func TestGcRescan(t *testing.T) {
+	type X struct {
+		c     chan error
+		nextx *X
+	}
+	type Y struct {
+		X
+		nexty *Y
+		p     *int
+	}
+	var head *Y
+	for i := 0; i < 10; i++ {
+		p := &Y{}
+		p.c = make(chan error)
+		p.nextx = &head.X
+		p.nexty = head
+		p.p = new(int)
+		*p.p = 42
+		head = p
+		runtime.GC()
+	}
+	for p := head; p != nil; p = p.nexty {
+		if *p.p != 42 {
+			t.Fatal("corrupted heap")
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/mapspeed_test.go gcc-4.8.1/libgo/go/runtime/mapspeed_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/mapspeed_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/mapspeed_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,208 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+package runtime_test
+
+import (
+	"fmt"
+	"strings"
+	"testing"
+)
+
+const size = 10
+
+func BenchmarkHashStringSpeed(b *testing.B) {
+	strings := make([]string, size)
+	for i := 0; i < size; i++ {
+		strings[i] = fmt.Sprintf("string#%d", i)
+	}
+	sum := 0
+	m := make(map[string]int, size)
+	for i := 0; i < size; i++ {
+		m[strings[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[strings[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+
+func BenchmarkHashInt32Speed(b *testing.B) {
+	ints := make([]int32, size)
+	for i := 0; i < size; i++ {
+		ints[i] = int32(i)
+	}
+	sum := 0
+	m := make(map[int32]int, size)
+	for i := 0; i < size; i++ {
+		m[ints[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[ints[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+
+func BenchmarkHashInt64Speed(b *testing.B) {
+	ints := make([]int64, size)
+	for i := 0; i < size; i++ {
+		ints[i] = int64(i)
+	}
+	sum := 0
+	m := make(map[int64]int, size)
+	for i := 0; i < size; i++ {
+		m[ints[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[ints[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+func BenchmarkHashStringArraySpeed(b *testing.B) {
+	stringpairs := make([][2]string, size)
+	for i := 0; i < size; i++ {
+		for j := 0; j < 2; j++ {
+			stringpairs[i][j] = fmt.Sprintf("string#%d/%d", i, j)
+		}
+	}
+	sum := 0
+	m := make(map[[2]string]int, size)
+	for i := 0; i < size; i++ {
+		m[stringpairs[i]] = 0
+	}
+	idx := 0
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		sum += m[stringpairs[idx]]
+		idx++
+		if idx == size {
+			idx = 0
+		}
+	}
+}
+
+func BenchmarkMegMap(b *testing.B) {
+	m := make(map[string]bool)
+	for suffix := 'A'; suffix <= 'G'; suffix++ {
+		m[strings.Repeat("X", 1<<20-1)+fmt.Sprint(suffix)] = true
+	}
+	key := strings.Repeat("X", 1<<20-1) + "k"
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkMegOneMap(b *testing.B) {
+	m := make(map[string]bool)
+	m[strings.Repeat("X", 1<<20)] = true
+	key := strings.Repeat("Y", 1<<20)
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkMegEqMap(b *testing.B) {
+	m := make(map[string]bool)
+	key1 := strings.Repeat("X", 1<<20)
+	key2 := strings.Repeat("X", 1<<20) // equal but different instance
+	m[key1] = true
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key2]
+	}
+}
+
+func BenchmarkMegEmptyMap(b *testing.B) {
+	m := make(map[string]bool)
+	key := strings.Repeat("X", 1<<20)
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkSmallStrMap(b *testing.B) {
+	m := make(map[string]bool)
+	for suffix := 'A'; suffix <= 'G'; suffix++ {
+		m[fmt.Sprint(suffix)] = true
+	}
+	key := "k"
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[key]
+	}
+}
+
+func BenchmarkMapStringKeysEight_16(b *testing.B) { benchmarkMapStringKeysEight(b, 16) }
+func BenchmarkMapStringKeysEight_32(b *testing.B) { benchmarkMapStringKeysEight(b, 32) }
+func BenchmarkMapStringKeysEight_64(b *testing.B) { benchmarkMapStringKeysEight(b, 64) }
+func BenchmarkMapStringKeysEight_1M(b *testing.B) { benchmarkMapStringKeysEight(b, 1<<20) }
+
+func benchmarkMapStringKeysEight(b *testing.B, keySize int) {
+	m := make(map[string]bool)
+	for i := 0; i < 8; i++ {
+		m[strings.Repeat("K", i+1)] = true
+	}
+	key := strings.Repeat("K", keySize)
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_ = m[key]
+	}
+}
+
+func BenchmarkIntMap(b *testing.B) {
+	m := make(map[int]bool)
+	for i := 0; i < 8; i++ {
+		m[i] = true
+	}
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		_, _ = m[7]
+	}
+}
+
+// Accessing the same keys in a row.
+func benchmarkRepeatedLookup(b *testing.B, lookupKeySize int) {
+	m := make(map[string]bool)
+	// At least bigger than a single bucket:
+	for i := 0; i < 64; i++ {
+		m[fmt.Sprintf("some key %d", i)] = true
+	}
+	base := strings.Repeat("x", lookupKeySize-1)
+	key1 := base + "1"
+	key2 := base + "2"
+	b.ResetTimer()
+	for i := 0; i < b.N/4; i++ {
+		_ = m[key1]
+		_ = m[key1]
+		_ = m[key2]
+		_ = m[key2]
+	}
+}
+
+func BenchmarkRepeatedLookupStrMapKey32(b *testing.B) { benchmarkRepeatedLookup(b, 32) }
+func BenchmarkRepeatedLookupStrMapKey1M(b *testing.B) { benchmarkRepeatedLookup(b, 1<<20) }
+
+func BenchmarkNewEmptyMap(b *testing.B) {
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		_ = make(map[int]int)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/map_test.go gcc-4.8.1/libgo/go/runtime/map_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/map_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/map_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,380 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package runtime_test
+
+import (
+	"fmt"
+	"math"
+	"reflect"
+	"runtime"
+	"sort"
+	"strings"
+	"sync"
+	"testing"
+)
+
+// negative zero is a good test because:
+//  1) 0 and -0 are equal, yet have distinct representations.
+//  2) 0 is represented as all zeros, -0 isn't.
+// I'm not sure the language spec actually requires this behavior,
+// but it's what the current map implementation does.
+func TestNegativeZero(t *testing.T) {
+	m := make(map[float64]bool, 0)
+
+	m[+0.0] = true
+	m[math.Copysign(0.0, -1.0)] = true // should overwrite +0 entry
+
+	if len(m) != 1 {
+		t.Error("length wrong")
+	}
+
+	/* gccgo fails this test; this is not required by the spec.
+	for k := range m {
+		if math.Copysign(1.0, k) > 0 {
+			t.Error("wrong sign")
+		}
+	}
+	*/
+
+	m = make(map[float64]bool, 0)
+	m[math.Copysign(0.0, -1.0)] = true
+	m[+0.0] = true // should overwrite -0.0 entry
+
+	if len(m) != 1 {
+		t.Error("length wrong")
+	}
+
+	/* gccgo fails this test; this is not required by the spec.
+	for k := range m {
+		if math.Copysign(1.0, k) < 0 {
+			t.Error("wrong sign")
+		}
+	}
+	*/
+}
+
+// nan is a good test because nan != nan, and nan has
+// a randomized hash value.
+func TestNan(t *testing.T) {
+	m := make(map[float64]int, 0)
+	nan := math.NaN()
+	m[nan] = 1
+	m[nan] = 2
+	m[nan] = 4
+	if len(m) != 3 {
+		t.Error("length wrong")
+	}
+	s := 0
+	for k, v := range m {
+		if k == k {
+			t.Error("nan disappeared")
+		}
+		if (v & (v - 1)) != 0 {
+			t.Error("value wrong")
+		}
+		s |= v
+	}
+	if s != 7 {
+		t.Error("values wrong")
+	}
+}
+
+// Maps aren't actually copied on assignment.
+func TestAlias(t *testing.T) {
+	m := make(map[int]int, 0)
+	m[0] = 5
+	n := m
+	n[0] = 6
+	if m[0] != 6 {
+		t.Error("alias didn't work")
+	}
+}
+
+func TestGrowWithNaN(t *testing.T) {
+	t.Skip("fails with gccgo")
+	m := make(map[float64]int, 4)
+	nan := math.NaN()
+	m[nan] = 1
+	m[nan] = 2
+	m[nan] = 4
+	cnt := 0
+	s := 0
+	growflag := true
+	for k, v := range m {
+		if growflag {
+			// force a hashtable resize
+			for i := 0; i < 100; i++ {
+				m[float64(i)] = i
+			}
+			growflag = false
+		}
+		if k != k {
+			cnt++
+			s |= v
+		}
+	}
+	t.Log("cnt:", cnt, "s:", s)
+	if cnt != 3 {
+		t.Error("NaN keys lost during grow")
+	}
+	if s != 7 {
+		t.Error("NaN values lost during grow")
+	}
+}
+
+type FloatInt struct {
+	x float64
+	y int
+}
+
+func TestGrowWithNegativeZero(t *testing.T) {
+	t.Skip("fails with gccgo")
+	negzero := math.Copysign(0.0, -1.0)
+	m := make(map[FloatInt]int, 4)
+	m[FloatInt{0.0, 0}] = 1
+	m[FloatInt{0.0, 1}] = 2
+	m[FloatInt{0.0, 2}] = 4
+	m[FloatInt{0.0, 3}] = 8
+	growflag := true
+	s := 0
+	cnt := 0
+	negcnt := 0
+	// The first iteration should return the +0 key.
+	// The subsequent iterations should return the -0 key.
+	// I'm not really sure this is required by the spec,
+	// but it makes sense.
+	// TODO: are we allowed to get the first entry returned again???
+	for k, v := range m {
+		if v == 0 {
+			continue
+		} // ignore entries added to grow table
+		cnt++
+		if math.Copysign(1.0, k.x) < 0 {
+			if v&16 == 0 {
+				t.Error("key/value not updated together 1")
+			}
+			negcnt++
+			s |= v & 15
+		} else {
+			if v&16 == 16 {
+				t.Error("key/value not updated together 2", k, v)
+			}
+			s |= v
+		}
+		if growflag {
+			// force a hashtable resize
+			for i := 0; i < 100; i++ {
+				m[FloatInt{3.0, i}] = 0
+			}
+			// then change all the entries
+			// to negative zero
+			m[FloatInt{negzero, 0}] = 1 | 16
+			m[FloatInt{negzero, 1}] = 2 | 16
+			m[FloatInt{negzero, 2}] = 4 | 16
+			m[FloatInt{negzero, 3}] = 8 | 16
+			growflag = false
+		}
+	}
+	if s != 15 {
+		t.Error("entry missing", s)
+	}
+	if cnt != 4 {
+		t.Error("wrong number of entries returned by iterator", cnt)
+	}
+	if negcnt != 3 {
+		t.Error("update to negzero missed by iteration", negcnt)
+	}
+}
+
+func TestIterGrowAndDelete(t *testing.T) {
+	m := make(map[int]int, 4)
+	for i := 0; i < 100; i++ {
+		m[i] = i
+	}
+	growflag := true
+	for k := range m {
+		if growflag {
+			// grow the table
+			for i := 100; i < 1000; i++ {
+				m[i] = i
+			}
+			// delete all odd keys
+			for i := 1; i < 1000; i += 2 {
+				delete(m, i)
+			}
+			growflag = false
+		} else {
+			if k&1 == 1 {
+				t.Error("odd value returned")
+			}
+		}
+	}
+}
+
+// make sure old bucket arrays don't get GCd while
+// an iterator is still using them.
+func TestIterGrowWithGC(t *testing.T) {
+	m := make(map[int]int, 4)
+	for i := 0; i < 16; i++ {
+		m[i] = i
+	}
+	growflag := true
+	bitmask := 0
+	for k := range m {
+		if k < 16 {
+			bitmask |= 1 << uint(k)
+		}
+		if growflag {
+			// grow the table
+			for i := 100; i < 1000; i++ {
+				m[i] = i
+			}
+			// trigger a gc
+			runtime.GC()
+			growflag = false
+		}
+	}
+	if bitmask != 1<<16-1 {
+		t.Error("missing key", bitmask)
+	}
+}
+
+func testConcurrentReadsAfterGrowth(t *testing.T, useReflect bool) {
+	if runtime.GOMAXPROCS(-1) == 1 {
+		defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(16))
+	}
+	numLoop := 10
+	numGrowStep := 250
+	numReader := 16
+	if testing.Short() {
+		numLoop, numGrowStep = 2, 500
+	}
+	for i := 0; i < numLoop; i++ {
+		m := make(map[int]int, 0)
+		for gs := 0; gs < numGrowStep; gs++ {
+			m[gs] = gs
+			var wg sync.WaitGroup
+			wg.Add(numReader * 2)
+			for nr := 0; nr < numReader; nr++ {
+				go func() {
+					defer wg.Done()
+					for _ = range m {
+					}
+				}()
+				go func() {
+					defer wg.Done()
+					for key := 0; key < gs; key++ {
+						_ = m[key]
+					}
+				}()
+				if useReflect {
+					wg.Add(1)
+					go func() {
+						defer wg.Done()
+						mv := reflect.ValueOf(m)
+						keys := mv.MapKeys()
+						for _, k := range keys {
+							mv.MapIndex(k)
+						}
+					}()
+				}
+			}
+			wg.Wait()
+		}
+	}
+}
+
+func TestConcurrentReadsAfterGrowth(t *testing.T) {
+	testConcurrentReadsAfterGrowth(t, false)
+}
+
+func TestConcurrentReadsAfterGrowthReflect(t *testing.T) {
+	testConcurrentReadsAfterGrowth(t, true)
+}
+
+func TestBigItems(t *testing.T) {
+	var key [256]string
+	for i := 0; i < 256; i++ {
+		key[i] = "foo"
+	}
+	m := make(map[[256]string][256]string, 4)
+	for i := 0; i < 100; i++ {
+		key[37] = fmt.Sprintf("string%02d", i)
+		m[key] = key
+	}
+	var keys [100]string
+	var values [100]string
+	i := 0
+	for k, v := range m {
+		keys[i] = k[37]
+		values[i] = v[37]
+		i++
+	}
+	sort.Strings(keys[:])
+	sort.Strings(values[:])
+	for i := 0; i < 100; i++ {
+		if keys[i] != fmt.Sprintf("string%02d", i) {
+			t.Errorf("#%d: missing key: %v", i, keys[i])
+		}
+		if values[i] != fmt.Sprintf("string%02d", i) {
+			t.Errorf("#%d: missing value: %v", i, values[i])
+		}
+	}
+}
+
+type empty struct {
+}
+
+func TestEmptyKeyAndValue(t *testing.T) {
+	a := make(map[int]empty, 4)
+	b := make(map[empty]int, 4)
+	c := make(map[empty]empty, 4)
+	a[0] = empty{}
+	b[empty{}] = 0
+	b[empty{}] = 1
+	c[empty{}] = empty{}
+
+	if len(a) != 1 {
+		t.Errorf("empty value insert problem")
+	}
+	if b[empty{}] != 1 {
+		t.Errorf("empty key returned wrong value")
+	}
+}
+
+// Tests a map with a single bucket, with same-lengthed short keys
+// ("quick keys") as well as long keys.
+func TestSingleBucketMapStringKeys_DupLen(t *testing.T) {
+	testMapLookups(t, map[string]string{
+		"x":    "x1val",
+		"xx":   "x2val",
+		"foo":  "fooval",
+		"bar":  "barval", // same key length as "foo"
+		"xxxx": "x4val",
+		strings.Repeat("x", 128): "longval1",
+		strings.Repeat("y", 128): "longval2",
+	})
+}
+
+// Tests a map with a single bucket, with all keys having different lengths.
+func TestSingleBucketMapStringKeys_NoDupLen(t *testing.T) {
+	testMapLookups(t, map[string]string{
+		"x":                      "x1val",
+		"xx":                     "x2val",
+		"foo":                    "fooval",
+		"xxxx":                   "x4val",
+		"xxxxx":                  "x5val",
+		"xxxxxx":                 "x6val",
+		strings.Repeat("x", 128): "longval",
+	})
+}
+
+func testMapLookups(t *testing.T, m map[string]string) {
+	for k, v := range m {
+		if m[k] != v {
+			t.Fatalf("m[%q] = %q; want %q", k, m[k], v)
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/parfor_test.go gcc-4.8.1/libgo/go/runtime/parfor_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/parfor_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/parfor_test.go	2013-06-18 18:50:42.020320000 -0500
@@ -13,6 +13,8 @@
 	"unsafe"
 )
 
+var gdata []uint64
+
 // Simple serial sanity test for parallelfor.
 func TestParFor(t *testing.T) {
 	const P = 1
@@ -22,7 +24,12 @@
 		data[i] = i
 	}
 	desc := NewParFor(P)
+	// Avoid making func a closure: parfor cannot invoke them.
+	// Since it doesn't happen in the C code, it's not worth doing
+	// just for the test.
+	gdata = data
 	ParForSetup(desc, P, N, nil, true, func(desc *ParFor, i uint32) {
+		data := gdata
 		data[i] = data[i]*data[i] + 1
 	})
 	ParForDo(desc)
@@ -111,7 +118,9 @@
 	P := GOMAXPROCS(-1)
 	c := make(chan bool, P)
 	desc := NewParFor(uint32(P))
+	gdata = data
 	ParForSetup(desc, uint32(P), uint32(N), nil, false, func(desc *ParFor, i uint32) {
+		data := gdata
 		data[i] = data[i]*data[i] + 1
 	})
 	for p := 1; p < P; p++ {
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/pprof/pprof.go gcc-4.8.1/libgo/go/runtime/pprof/pprof.go
--- gcc-4.8.1.orig/libgo/go/runtime/pprof/pprof.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/pprof/pprof.go	2013-07-16 01:55:04.520470000 -0500
@@ -318,21 +318,33 @@
 // for a single stack trace.
 func printStackRecord(w io.Writer, stk []uintptr, allFrames bool) {
 	show := allFrames
-	for _, pc := range stk {
+	wasPanic := false
+	for i, pc := range stk {
 		f := runtime.FuncForPC(pc)
 		if f == nil {
 			show = true
 			fmt.Fprintf(w, "#\t%#x\n", pc)
+			wasPanic = false
 		} else {
-			file, line := f.FileLine(pc)
+			tracepc := pc
+			// Back up to call instruction.
+			if i > 0 && pc > f.Entry() && !wasPanic {
+				if runtime.GOARCH == "386" || runtime.GOARCH == "amd64" {
+					tracepc--
+				} else {
+					tracepc -= 4 // arm, etc
+				}
+			}
+			file, line := f.FileLine(tracepc)
 			name := f.Name()
 			// Hide runtime.goexit and any runtime functions at the beginning.
 			// This is useful mainly for allocation traces.
+			wasPanic = name == "runtime.panic"
 			if name == "runtime.goexit" || !show && strings.HasPrefix(name, "runtime.") {
 				continue
 			}
 			show = true
-			fmt.Fprintf(w, "#\t%#x\t%s+%#x\t%s:%d\n", pc, f.Name(), pc-f.Entry(), file, line)
+			fmt.Fprintf(w, "#\t%#x\t%s+%#x\t%s:%d\n", pc, name, pc-f.Entry(), file, line)
 		}
 	}
 	if !show {
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/proc_test.go gcc-4.8.1/libgo/go/runtime/proc_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/proc_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/runtime/proc_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,9 +5,11 @@
 package runtime_test
 
 import (
+	"math"
 	"runtime"
 	"sync/atomic"
 	"testing"
+	"time"
 )
 
 var stop = make(chan bool, 1)
@@ -45,6 +47,66 @@
 	runtime.GOMAXPROCS(maxprocs)
 }
 
+func TestYieldProgress(t *testing.T) {
+	testYieldProgress(t, false)
+}
+
+func TestYieldLockedProgress(t *testing.T) {
+	testYieldProgress(t, true)
+}
+
+func testYieldProgress(t *testing.T, locked bool) {
+	c := make(chan bool)
+	cack := make(chan bool)
+	go func() {
+		if locked {
+			runtime.LockOSThread()
+		}
+		for {
+			select {
+			case <-c:
+				cack <- true
+				return
+			default:
+				runtime.Gosched()
+			}
+		}
+	}()
+	time.Sleep(10 * time.Millisecond)
+	c <- true
+	<-cack
+}
+
+func TestYieldLocked(t *testing.T) {
+	const N = 10
+	c := make(chan bool)
+	go func() {
+		runtime.LockOSThread()
+		for i := 0; i < N; i++ {
+			runtime.Gosched()
+			time.Sleep(time.Millisecond)
+		}
+		c <- true
+		// runtime.UnlockOSThread() is deliberately omitted
+	}()
+	<-c
+}
+
+func TestBlockLocked(t *testing.T) {
+	const N = 10
+	c := make(chan bool)
+	go func() {
+		runtime.LockOSThread()
+		for i := 0; i < N; i++ {
+			c <- true
+		}
+		runtime.UnlockOSThread()
+	}()
+	for i := 0; i < N; i++ {
+		<-c
+	}
+}
+
 func stackGrowthRecursive(i int) {
 	var pad [128]uint64
 	if i != 0 && pad[0] == 0 {
@@ -52,6 +114,14 @@
 	}
 }
 
+func TestSchedLocalQueue(t *testing.T) {
+	runtime.TestSchedLocalQueue1()
+}
+
+func TestSchedLocalQueueSteal(t *testing.T) {
+	runtime.TestSchedLocalQueueSteal1()
+}
+
 func benchmarkStackGrowth(b *testing.B, rec int) {
 	const CallsPerSched = 1000
 	procs := runtime.GOMAXPROCS(-1)
@@ -82,31 +152,24 @@
 }
 
 func BenchmarkSyscall(b *testing.B) {
-	const CallsPerSched = 1000
-	procs := runtime.GOMAXPROCS(-1)
-	N := int32(b.N / CallsPerSched)
-	c := make(chan bool, procs)
-	for p := 0; p < procs; p++ {
-		go func() {
-			for atomic.AddInt32(&N, -1) >= 0 {
-				runtime.Gosched()
-				for g := 0; g < CallsPerSched; g++ {
-					runtime.Entersyscall()
-					runtime.Exitsyscall()
-				}
-			}
-			c <- true
-		}()
-	}
-	for p := 0; p < procs; p++ {
-		<-c
-	}
+	benchmarkSyscall(b, 0, 1)
 }
 
 func BenchmarkSyscallWork(b *testing.B) {
+	benchmarkSyscall(b, 100, 1)
+}
+
+func BenchmarkSyscallExcess(b *testing.B) {
+	benchmarkSyscall(b, 0, 4)
+}
+
+func BenchmarkSyscallExcessWork(b *testing.B) {
+	benchmarkSyscall(b, 100, 4)
+}
+
+func benchmarkSyscall(b *testing.B, work, excess int) {
 	const CallsPerSched = 1000
-	const LocalWork = 100
-	procs := runtime.GOMAXPROCS(-1)
+	procs := runtime.GOMAXPROCS(-1) * excess
 	N := int32(b.N / CallsPerSched)
 	c := make(chan bool, procs)
 	for p := 0; p < procs; p++ {
@@ -116,7 +179,7 @@
 				runtime.Gosched()
 				for g := 0; g < CallsPerSched; g++ {
 					runtime.Entersyscall()
-					for i := 0; i < LocalWork; i++ {
+					for i := 0; i < work; i++ {
 						foo *= 2
 						foo /= 2
 					}
@@ -156,3 +219,67 @@
 		<-c
 	}
 }
+
+type Matrix [][]float64
+
+func BenchmarkMatmult(b *testing.B) {
+	b.StopTimer()
+	// matmult is O(N**3) but testing expects O(b.N),
+	// so we need to take cube root of b.N
+	n := int(math.Cbrt(float64(b.N))) + 1
+	A := makeMatrix(n)
+	B := makeMatrix(n)
+	C := makeMatrix(n)
+	b.StartTimer()
+	matmult(nil, A, B, C, 0, n, 0, n, 0, n, 8)
+}
+
+func makeMatrix(n int) Matrix {
+	m := make(Matrix, n)
+	for i := 0; i < n; i++ {
+		m[i] = make([]float64, n)
+		for j := 0; j < n; j++ {
+			m[i][j] = float64(i*n + j)
+		}
+	}
+	return m
+}
+
+func matmult(done chan<- struct{}, A, B, C Matrix, i0, i1, j0, j1, k0, k1, threshold int) {
+	di := i1 - i0
+	dj := j1 - j0
+	dk := k1 - k0
+	if di >= dj && di >= dk && di >= threshold {
+		// divide in two by y axis
+		mi := i0 + di/2
+		done1 := make(chan struct{}, 1)
+		go matmult(done1, A, B, C, i0, mi, j0, j1, k0, k1, threshold)
+		matmult(nil, A, B, C, mi, i1, j0, j1, k0, k1, threshold)
+		<-done1
+	} else if dj >= dk && dj >= threshold {
+		// divide in two by x axis
+		mj := j0 + dj/2
+		done1 := make(chan struct{}, 1)
+		go matmult(done1, A, B, C, i0, i1, j0, mj, k0, k1, threshold)
+		matmult(nil, A, B, C, i0, i1, mj, j1, k0, k1, threshold)
+		<-done1
+	} else if dk >= threshold {
+		// divide in two by "k" axis
+		// deliberately not parallel because of data races
+		mk := k0 + dk/2
+		matmult(nil, A, B, C, i0, i1, j0, j1, k0, mk, threshold)
+		matmult(nil, A, B, C, i0, i1, j0, j1, mk, k1, threshold)
+	} else {
+		// the matrices are small enough, compute directly
+		for i := i0; i < i1; i++ {
+			for j := j0; j < j1; j++ {
+				for k := k0; k < k1; k++ {
+					C[i][j] += A[i][k] * B[k][j]
+				}
+			}
+		}
+	}
+	if done != nil {
+		done <- struct{}{}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/runtime/string_test.go gcc-4.8.1/libgo/go/runtime/string_test.go
--- gcc-4.8.1.orig/libgo/go/runtime/string_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/runtime/string_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -1,3 +1,7 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
 package runtime_test
 
 import (
@@ -43,3 +47,31 @@
 		}
 	}
 }
+
+func BenchmarkCompareStringBigUnaligned(b *testing.B) {
+	bytes := make([]byte, 0, 1<<20)
+	for len(bytes) < 1<<20 {
+		bytes = append(bytes, "Hello Gophers!"...)
+	}
+	s1, s2 := string(bytes), "hello"+string(bytes)
+	for i := 0; i < b.N; i++ {
+		if s1 != s2[len("hello"):] {
+			b.Fatal("s1 != s2")
+		}
+	}
+	b.SetBytes(int64(len(s1)))
+}
+
+func BenchmarkCompareStringBig(b *testing.B) {
+	bytes := make([]byte, 0, 1<<20)
+	for len(bytes) < 1<<20 {
+		bytes = append(bytes, "Hello Gophers!"...)
+	}
+	s1, s2 := string(bytes), string(bytes)
+	for i := 0; i < b.N; i++ {
+		if s1 != s2 {
+			b.Fatal("s1 != s2")
+		}
+	}
+	b.SetBytes(int64(len(s1)))
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_keys_test.go gcc-4.8.1/libgo/go/sort/example_keys_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_keys_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/sort/example_keys_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,96 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sort_test
+
+import (
+	"fmt"
+	"sort"
+)
+
+// A couple of type definitions to make the units clear.
+type earthMass float64
+type au float64
+
+// A Planet defines the properties of a solar system object.
+type Planet struct {
+	name     string
+	mass     earthMass
+	distance au
+}
+
+// By is the type of a "less" function that defines the ordering of its Planet arguments.
+type By func(p1, p2 *Planet) bool
+
+// Sort is a method on the function type, By, that sorts the argument slice according to the function.
+func (by By) Sort(planets []Planet) {
+	ps := &planetSorter{
+		planets: planets,
+		by:      by, // The Sort method's receiver is the function (closure) that defines the sort order.
+	}
+	sort.Sort(ps)
+}
+
+// planetSorter joins a By function and a slice of Planets to be sorted.
+type planetSorter struct {
+	planets []Planet
+	by      func(p1, p2 *Planet) bool // Closure used in the Less method.
+}
+
+// Len is part of sort.Interface.
+func (s *planetSorter) Len() int {
+	return len(s.planets)
+}
+
+// Swap is part of sort.Interface.
+func (s *planetSorter) Swap(i, j int) {
+	s.planets[i], s.planets[j] = s.planets[j], s.planets[i]
+}
+
+// Less is part of sort.Interface. It is implemented by calling the "by" closure in the sorter.
+func (s *planetSorter) Less(i, j int) bool {
+	return s.by(&s.planets[i], &s.planets[j])
+}
+
+var planets = []Planet{
+	{"Mercury", 0.055, 0.4},
+	{"Venus", 0.815, 0.7},
+	{"Earth", 1.0, 1.0},
+	{"Mars", 0.107, 1.5},
+}
+
+// ExampleSortKeys demonstrates a technique for sorting a struct type using programmable sort criteria.
+func Example_sortKeys() {
+	// Closures that order the Planet structure.
+	name := func(p1, p2 *Planet) bool {
+		return p1.name < p2.name
+	}
+	mass := func(p1, p2 *Planet) bool {
+		return p1.mass < p2.mass
+	}
+	distance := func(p1, p2 *Planet) bool {
+		return p1.distance < p2.distance
+	}
+	decreasingDistance := func(p1, p2 *Planet) bool {
+		return !distance(p1, p2)
+	}
+
+	// Sort the planets by the various criteria.
+	By(name).Sort(planets)
+	fmt.Println("By name:", planets)
+
+	By(mass).Sort(planets)
+	fmt.Println("By mass:", planets)
+
+	By(distance).Sort(planets)
+	fmt.Println("By distance:", planets)
+
+	By(decreasingDistance).Sort(planets)
+	fmt.Println("By decreasing distance:", planets)
+
+	// Output: By name: [{Earth 1 1} {Mars 0.107 1.5} {Mercury 0.055 0.4} {Venus 0.815 0.7}]
+	// By mass: [{Mercury 0.055 0.4} {Mars 0.107 1.5} {Venus 0.815 0.7} {Earth 1 1}]
+	// By distance: [{Mercury 0.055 0.4} {Venus 0.815 0.7} {Earth 1 1} {Mars 0.107 1.5}]
+	// By decreasing distance: [{Mars 0.107 1.5} {Earth 1 1} {Venus 0.815 0.7} {Mercury 0.055 0.4}]
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_multi_test.go gcc-4.8.1/libgo/go/sort/example_multi_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_multi_test.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/sort/example_multi_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,132 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sort_test
+
+import (
+	"fmt"
+	"sort"
+)
+
+// A Change is a record of source code changes, recording user, language, and delta size.
+type Change struct {
+	user     string
+	language string
+	lines    int
+}
+
+type lessFunc func(p1, p2 *Change) bool
+
+// multiSorter implements the Sort interface, sorting the changes within.
+type multiSorter struct {
+	changes []Change
+	less    []lessFunc
+}
+
+// Sort sorts the argument slice according to the less functions passed to OrderedBy.
+func (ms *multiSorter) Sort(changes []Change) {
+	sort.Sort(ms)
+}
+
+// OrderedBy returns a Sorter that sorts using the less functions, in order.
+// Call its Sort method to sort the data.
+func OrderedBy(less ...lessFunc) *multiSorter {
+	return &multiSorter{
+		changes: changes,
+		less:    less,
+	}
+}
+
+// Len is part of sort.Interface.
+func (ms *multiSorter) Len() int {
+	return len(ms.changes)
+}
+
+// Swap is part of sort.Interface.
+func (ms *multiSorter) Swap(i, j int) {
+	ms.changes[i], ms.changes[j] = ms.changes[j], ms.changes[i]
+}
+
+// Less is part of sort.Interface. It is implemented by looping along the
+// less functions until it finds a comparison that is either Less or
+// !Less. Note that it can call the less functions twice per call. We
+// could change the functions to return -1, 0, 1 and reduce the
+// number of calls for greater efficiency: an exercise for the reader.
+func (ms *multiSorter) Less(i, j int) bool {
+	p, q := &ms.changes[i], &ms.changes[j]
+	// Try all but the last comparison.
+	var k int
+	for k = 0; k < len(ms.less)-1; k++ {
+		less := ms.less[k]
+		switch {
+		case less(p, q):
+			// p < q, so we have a decision.
+			return true
+		case less(q, p):
+			// p > q, so we have a decision.
+			return false
+		}
+		// p == q; try the next comparison.
+	}
+	// All comparisons to here said "equal", so just return whatever
+	// the final comparison reports.
+	return ms.less[k](p, q)
+}
+
+var changes = []Change{
+	{"gri", "Go", 100},
+	{"ken", "C", 150},
+	{"glenda", "Go", 200},
+	{"rsc", "Go", 200},
+	{"r", "Go", 100},
+	{"ken", "Go", 200},
+	{"dmr", "C", 100},
+	{"r", "C", 150},
+	{"gri", "Smalltalk", 80},
+}
+
+// ExampleMultiKeys demonstrates a technique for sorting a struct type using different
+// sets of multiple fields in the comparison. We chain together "Less" functions, each of
+// which compares a single field.
+func Example_sortMultiKeys() {
+	// Closures that order the Change structure.
+	user := func(c1, c2 *Change) bool {
+		return c1.user < c2.user
+	}
+	language := func(c1, c2 *Change) bool {
+		return c1.language < c2.language
+	}
+	increasingLines := func(c1, c2 *Change) bool {
+		return c1.lines < c2.lines
+	}
+	decreasingLines := func(c1, c2 *Change) bool {
+		return c1.lines > c2.lines // Note: > orders downwards.
+	}
+
+	// Simple use: Sort by user.
+	OrderedBy(user).Sort(changes)
+	fmt.Println("By user:", changes)
+
+	// multiSorter implements the Sort interface, so we can also do this.
+	sort.Sort(OrderedBy(user, increasingLines))
+	fmt.Println("By user,<lines:", changes)
+
+	// More examples.
+	OrderedBy(user, decreasingLines).Sort(changes)
+	fmt.Println("By user,>lines:", changes)
+
+	OrderedBy(language, increasingLines).Sort(changes)
+	fmt.Println("By language,<lines:", changes)
+
+	OrderedBy(language, increasingLines, user).Sort(changes)
+	fmt.Println("By language,<lines,user:", changes)
+
+	// Output:
+	//By user: [{dmr C 100} {glenda Go 200} {gri Smalltalk 80} {gri Go 100} {ken Go 200} {ken C 150} {r Go 100} {r C 150} {rsc Go 200}]
+	//By user,<lines: [{dmr C 100} {glenda Go 200} {gri Smalltalk 80} {gri Go 100} {ken C 150} {ken Go 200} {r Go 100} {r C 150} {rsc Go 200}]
+	//By user,>lines: [{dmr C 100} {glenda Go 200} {gri Go 100} {gri Smalltalk 80} {ken Go 200} {ken C 150} {r C 150} {r Go 100} {rsc Go 200}]
+	//By language,<lines: [{dmr C 100} {ken C 150} {r C 150} {gri Go 100} {r Go 100} {ken Go 200} {glenda Go 200} {rsc Go 200} {gri Smalltalk 80}]
+	//By language,<lines,user: [{dmr C 100} {ken C 150} {r C 150} {gri Go 100} {r Go 100} {glenda Go 200} {ken Go 200} {rsc Go 200} {gri Smalltalk 80}]
+
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_reverse_test.go gcc-4.8.1/libgo/go/sort/example_reverse_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_reverse_test.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/sort/example_reverse_test.go	1969-12-31 18:00:00.000000000 -0600
@@ -1,30 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sort_test
-
-import (
-	"fmt"
-	"sort"
-)
-
-// Reverse embeds a sort.Interface value and implements a reverse sort over
-// that value.
-type Reverse struct {
-	// This embedded Interface permits Reverse to use the methods of
-	// another Interface implementation.
-	sort.Interface
-}
-
-// Less returns the opposite of the embedded implementation's Less method.
-func (r Reverse) Less(i, j int) bool {
-	return r.Interface.Less(j, i)
-}
-
-func ExampleInterface_reverse() {
-	s := []int{5, 2, 6, 3, 1, 4} // unsorted
-	sort.Sort(Reverse{sort.IntSlice(s)})
-	fmt.Println(s)
-	// Output: [6 5 4 3 2 1]
-}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/example_test.go gcc-4.8.1/libgo/go/sort/example_test.go
--- gcc-4.8.1.orig/libgo/go/sort/example_test.go	2012-03-02 14:01:37.000000000 -0600
+++ gcc-4.8.1/libgo/go/sort/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -15,3 +15,10 @@
 	fmt.Println(s)
 	// Output: [1 2 3 4 5 6]
 }
+
+func ExampleReverse() {
+	s := []int{5, 2, 6, 3, 1, 4} // unsorted
+	sort.Sort(sort.Reverse(sort.IntSlice(s)))
+	fmt.Println(s)
+	// Output: [6 5 4 3 2 1]
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sort/search_test.go gcc-4.8.1/libgo/go/sort/search_test.go
--- gcc-4.8.1.orig/libgo/go/sort/search_test.go	2011-09-16 10:47:21.000000000 -0500
+++ gcc-4.8.1/libgo/go/sort/search_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,6 +5,7 @@
 package sort_test
 
 import (
+	"runtime"
 	. "sort"
 	"testing"
 )
@@ -117,6 +118,32 @@
 	}
 }
 
+func runSearchWrappers() {
+	SearchInts(data, 11)
+	SearchFloat64s(fdata, 2.1)
+	SearchStrings(sdata, "")
+	IntSlice(data).Search(0)
+	Float64Slice(fdata).Search(2.0)
+	StringSlice(sdata).Search("x")
+}
+
+func TestSearchWrappersDontAlloc(t *testing.T) {
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
+	t.Skip("skipping alloc test for gccgo")
+	allocs := testing.AllocsPerRun(100, runSearchWrappers)
+	if allocs != 0 {
+		t.Errorf("expected no allocs for runSearchWrappers, got %v", allocs)
+	}
+}
+
+func BenchmarkSearchWrappers(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		runSearchWrappers()
+	}
+}
+
 // Abstract exhaustive test: all sizes up to 100,
 // all possible return values.  If there are any small
 // corner cases, this test exercises them.
diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort.go gcc-4.8.1/libgo/go/sort/sort.go
--- gcc-4.8.1.orig/libgo/go/sort/sort.go	2012-03-30 17:09:55.000000000 -0500
+++ gcc-4.8.1/libgo/go/sort/sort.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,8 +6,6 @@
 // collections.
 package sort
 
-import "math"
-
 // A type, typically a collection, that satisfies sort.Interface can be
 // sorted by the routines in this package.  The methods require that the
 // elements of the collection be enumerated by an integer index.
@@ -124,26 +122,31 @@
 	// into the middle of the slice.
 	pivot := lo
 	a, b, c, d := lo+1, lo+1, hi, hi
-	for b < c {
-		if data.Less(b, pivot) { // data[b] < pivot
-			b++
-			continue
-		}
-		if !data.Less(pivot, b) { // data[b] = pivot
-			data.Swap(a, b)
-			a++
-			b++
-			continue
-		}
-		if data.Less(pivot, c-1) { // data[c-1] > pivot
-			c--
-			continue
-		}
-		if !data.Less(c-1, pivot) { // data[c-1] = pivot
-			data.Swap(c-1, d-1)
-			c--
-			d--
-			continue
+	for {
+		for b < c {
+			if data.Less(b, pivot) { // data[b] < pivot
+				b++
+			} else if !data.Less(pivot, b) { // data[b] = pivot
+				data.Swap(a, b)
+				a++
+				b++
+			} else {
+				break
+			}
+		}
+		for b < c {
+			if data.Less(pivot, c-1) { // data[c-1] > pivot
+				c--
+			} else if !data.Less(c-1, pivot) { // data[c-1] = pivot
+				data.Swap(c-1, d-1)
+				c--
+				d--
+			} else {
+				break
+			}
+		}
+		if b >= c {
+			break
 		}
 		// data[b] > pivot; data[c-1] < pivot
 		data.Swap(b, c-1)
@@ -197,6 +200,22 @@
 	quickSort(data, 0, n, maxDepth)
 }
 
+type reverse struct {
+	// This embedded Interface permits Reverse to use the methods of
+	// another Interface implementation.
+	Interface
+}
+
+// Less returns the opposite of the embedded implementation's Less method.
+func (r reverse) Less(i, j int) bool {
+	return r.Interface.Less(j, i)
+}
+
+// Reverse returns the reverse order for data.
+func Reverse(data Interface) Interface {
+	return &reverse{data}
+}
+
 // IsSorted reports whether data is sorted.
 func IsSorted(data Interface) bool {
 	n := data.Len()
@@ -224,9 +243,14 @@
 type Float64Slice []float64
 
 func (p Float64Slice) Len() int           { return len(p) }
-func (p Float64Slice) Less(i, j int) bool { return p[i] < p[j] || math.IsNaN(p[i]) && !math.IsNaN(p[j]) }
+func (p Float64Slice) Less(i, j int) bool { return p[i] < p[j] || isNaN(p[i]) && !isNaN(p[j]) }
 func (p Float64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
 
+// isNaN is a copy of math.IsNaN to avoid a dependency on the math package.
+func isNaN(f float64) bool {
+	return f != f
+}
+
 // Sort is a convenience method.
 func (p Float64Slice) Sort() { Sort(p) }
 
diff -Naur gcc-4.8.1.orig/libgo/go/sort/sort_test.go gcc-4.8.1/libgo/go/sort/sort_test.go
--- gcc-4.8.1.orig/libgo/go/sort/sort_test.go	2011-12-06 19:11:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/sort/sort_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -92,6 +92,23 @@
 	}
 }
 
+func TestReverseSortIntSlice(t *testing.T) {
+	data := ints
+	data1 := ints
+	a := IntSlice(data[0:])
+	Sort(a)
+	r := IntSlice(data1[0:])
+	Sort(Reverse(r))
+	for i := 0; i < len(data); i++ {
+		if a[i] != r[len(data)-1-i] {
+			t.Errorf("reverse sort didn't sort")
+		}
+		if i > len(data)/2 {
+			break
+		}
+	}
+}
+
 func BenchmarkSortString1K(b *testing.B) {
 	b.StopTimer()
 	for i := 0; i < b.N; i++ {
@@ -151,15 +168,18 @@
 )
 
 type testingData struct {
-	desc    string
-	t       *testing.T
-	data    []int
-	maxswap int // number of swaps allowed
-	nswap   int
+	desc        string
+	t           *testing.T
+	data        []int
+	maxswap     int // number of swaps allowed
+	ncmp, nswap int
 }
 
-func (d *testingData) Len() int           { return len(d.data) }
-func (d *testingData) Less(i, j int) bool { return d.data[i] < d.data[j] }
+func (d *testingData) Len() int { return len(d.data) }
+func (d *testingData) Less(i, j int) bool {
+	d.ncmp++
+	return d.data[i] < d.data[j]
+}
 func (d *testingData) Swap(i, j int) {
 	if d.nswap >= d.maxswap {
 		d.t.Errorf("%s: used %d swaps sorting slice of %d", d.desc, d.nswap, len(d.data))
@@ -192,8 +212,7 @@
 	dists := []string{"sawtooth", "rand", "stagger", "plateau", "shuffle"}
 	modes := []string{"copy", "reverse", "reverse1", "reverse2", "sort", "dither"}
 	var tmp1, tmp2 [1025]int
-	for ni := 0; ni < len(sizes); ni++ {
-		n := sizes[ni]
+	for _, n := range sizes {
 		for m := 1; m < 2*n; m *= 2 {
 			for dist := 0; dist < _NDist; dist++ {
 				j := 0
@@ -259,8 +278,10 @@
 					}
 
 					desc := fmt.Sprintf("n=%d m=%d dist=%s mode=%s", n, m, dists[dist], modes[mode])
-					d := &testingData{desc, t, mdata[0:n], n * lg(n) * 12 / 10, 0}
+					d := &testingData{desc: desc, t: t, data: mdata[0:n], maxswap: n * lg(n) * 12 / 10}
 					sort(d)
+					// Uncomment if you are trying to improve the number of compares/swaps.
+					//t.Logf("%s: ncmp=%d, nswp=%d", desc, d.ncmp, d.nswap)
 
 					// If we were testing C qsort, we'd have to make a copy
 					// of the slice and sort it ourselves and then compare
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atof_test.go gcc-4.8.1/libgo/go/strconv/atof_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/atof_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/strconv/atof_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -110,6 +110,7 @@
 	{"1e", "0", ErrSyntax},
 	{"1e-", "0", ErrSyntax},
 	{".e-1", "0", ErrSyntax},
+	{"1\x00.2", "0", ErrSyntax},
 
 	// http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
 	{"2.2250738585072012e-308", "2.2250738585072014e-308", nil},
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi.go gcc-4.8.1/libgo/go/strconv/atoi.go
--- gcc-4.8.1.orig/libgo/go/strconv/atoi.go	2012-10-03 00:27:36.000000000 -0500
+++ gcc-4.8.1/libgo/go/strconv/atoi.go	2013-07-16 01:55:04.520470000 -0500
@@ -20,7 +20,7 @@
 }
 
 func (e *NumError) Error() string {
-	return "strconv." + e.Func + ": " + `parsing "` + e.Num + `": ` + e.Err.Error()
+	return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + e.Err.Error()
 }
 
 func syntaxError(fn, str string) *NumError {
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/atoi_test.go gcc-4.8.1/libgo/go/strconv/atoi_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/atoi_test.go	2012-01-11 19:31:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/strconv/atoi_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,6 +5,7 @@
 package strconv_test
 
 import (
+	"errors"
 	"reflect"
 	. "strconv"
 	"testing"
@@ -146,6 +147,16 @@
 	{"-2147483649", -1 << 31, ErrRange},
 }
 
+type numErrorTest struct {
+	num, want string
+}
+
+var numErrorTests = []numErrorTest{
+	{"0", `strconv.ParseFloat: parsing "0": failed`},
+	{"`", "strconv.ParseFloat: parsing \"`\": failed"},
+	{"1\x00.2", `strconv.ParseFloat: parsing "1\x00.2": failed`},
+}
+
 func init() {
 	// The atoi routines return NumErrors wrapping
 	// the error and the string.  Convert the tables above.
@@ -276,6 +287,19 @@
 		}
 	}
 }
+
+func TestNumError(t *testing.T) {
+	for _, test := range numErrorTests {
+		err := &NumError{
+			Func: "ParseFloat",
+			Num:  test.num,
+			Err:  errors.New("failed"),
+		}
+		if got := err.Error(); got != test.want {
+			t.Errorf(`(&NumError{"ParseFloat", %q, "failed"}).Error() = %v, want %v`, test.num, got, test.want)
+		}
+	}
+}
 
 func BenchmarkAtoi(b *testing.B) {
 	for i := 0; i < b.N; i++ {
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/extfloat.go gcc-4.8.1/libgo/go/strconv/extfloat.go
--- gcc-4.8.1.orig/libgo/go/strconv/extfloat.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/strconv/extfloat.go	2013-07-16 01:55:04.520470000 -0500
@@ -636,7 +636,6 @@
 				1<<shift, multiplier*2)
 		}
 	}
-	return false
 }
 
 // adjustLastDigit modifies d = x-currentDiff*Îµ, to get closest to
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/fp_test.go gcc-4.8.1/libgo/go/strconv/fp_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/fp_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/strconv/fp_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -7,7 +7,6 @@
 import (
 	"bufio"
 	"fmt"
-	"io"
 	"os"
 	"strconv"
 	"strings"
@@ -102,19 +101,10 @@
 	}
 	defer f.Close()
 
-	b := bufio.NewReader(f)
+	s := bufio.NewScanner(f)
 
-	lineno := 0
-	for {
-		line, err2 := b.ReadString('\n')
-		if err2 == io.EOF {
-			break
-		}
-		if err2 != nil {
-			t.Fatal("testfp: read testdata/testfp.txt: " + err2.Error())
-		}
-		line = line[0 : len(line)-1]
-		lineno++
+	for lineno := 1; s.Scan(); lineno++ {
+		line := s.Text()
 		if len(line) == 0 || line[0] == '#' {
 			continue
 		}
@@ -148,4 +138,7 @@
 				"want ", a[3], " got ", s)
 		}
 	}
+	if s.Err() != nil {
+		t.Fatal("testfp: read testdata/testfp.txt: ", s.Err())
+	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/quote.go gcc-4.8.1/libgo/go/strconv/quote.go
--- gcc-4.8.1.orig/libgo/go/strconv/quote.go	2012-03-30 16:27:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/strconv/quote.go	2013-07-16 01:55:04.520470000 -0500
@@ -139,8 +139,9 @@
 	return append(dst, QuoteRuneToASCII(r)...)
 }
 
-// CanBackquote returns whether the string s would be
-// a valid Go string literal if enclosed in backquotes.
+// CanBackquote reports whether the string s can be represented
+// unchanged as a single-line backquoted string without control
+// characters other than space and tab.
 func CanBackquote(s string) bool {
 	for i := 0; i < len(s); i++ {
 		if (s[i] < ' ' && s[i] != '\t') || s[i] == '`' {
diff -Naur gcc-4.8.1.orig/libgo/go/strconv/strconv_test.go gcc-4.8.1/libgo/go/strconv/strconv_test.go
--- gcc-4.8.1.orig/libgo/go/strconv/strconv_test.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/strconv/strconv_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -24,14 +24,12 @@
 		desc  string
 		fn    func()
 	}{
-		// TODO(bradfitz): this might be 0, once escape analysis is better
-		{1, `AppendInt(localBuf[:0], 123, 10)`, func() {
+		{0, `AppendInt(localBuf[:0], 123, 10)`, func() {
 			var localBuf [64]byte
 			AppendInt(localBuf[:0], 123, 10)
 		}},
 		{0, `AppendInt(globalBuf[:0], 123, 10)`, func() { AppendInt(globalBuf[:0], 123, 10) }},
-		// TODO(bradfitz): this might be 0, once escape analysis is better
-		{1, `AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)`, func() {
+		{0, `AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)`, func() {
 			var localBuf [64]byte
 			AppendFloat(localBuf[:0], 1.23, 'g', 5, 64)
 		}},
@@ -48,19 +46,13 @@
 )
 
 func TestCountMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
 	for _, mt := range mallocTest {
-		const N = 100
-		memstats := new(runtime.MemStats)
-		runtime.ReadMemStats(memstats)
-		mallocs := 0 - memstats.Mallocs
-		for i := 0; i < N; i++ {
-			mt.fn()
-		}
-		runtime.ReadMemStats(memstats)
-		mallocs += memstats.Mallocs
-		if mallocs/N > uint64(mt.count) {
-			t.Errorf("%s: expected %d mallocs, got %d", mt.desc, mt.count, mallocs/N)
+		allocs := testing.AllocsPerRun(100, mt.fn)
+		if max := float64(mt.count); allocs > max {
+			t.Errorf("%s: %v allocs, want <=%v", mt.desc, allocs, max)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/go/strings/example_test.go gcc-4.8.1/libgo/go/strings/example_test.go
--- gcc-4.8.1.orig/libgo/go/strings/example_test.go	2012-06-25 11:20:03.000000000 -0500
+++ gcc-4.8.1/libgo/go/strings/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -179,3 +179,19 @@
 	fmt.Println(strings.ToLower("Gopher"))
 	// Output: gopher
 }
+
+func ExampleTrimSuffix() {
+	var s = "Hello, goodbye, etc!"
+	s = strings.TrimSuffix(s, "goodbye, etc!")
+	s = strings.TrimSuffix(s, "planet")
+	fmt.Print(s, "world!")
+	// Output: Hello, world!
+}
+
+func ExampleTrimPrefix() {
+	var s = "Goodbye,, world!"
+	s = strings.TrimPrefix(s, "Goodbye,")
+	s = strings.TrimPrefix(s, "Howdy,")
+	fmt.Print("Hello" + s)
+	// Output: Hello, world!
+}
diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings.go gcc-4.8.1/libgo/go/strings/strings.go
--- gcc-4.8.1.orig/libgo/go/strings/strings.go	2012-01-11 19:31:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/strings/strings.go	2013-07-16 01:55:04.520470000 -0500
@@ -26,7 +26,11 @@
 	i, cur := 0, 0
 	for ; i+1 < n; i++ {
 		ch, size = utf8.DecodeRuneInString(s[cur:])
-		a[i] = string(ch)
+		if ch == utf8.RuneError {
+			a[i] = string(utf8.RuneError)
+		} else {
+			a[i] = s[cur : cur+size]
+		}
 		cur += size
 	}
 	// add the rest, if there is any
@@ -36,27 +40,69 @@
 	return a
 }
 
+// primeRK is the prime base used in Rabin-Karp algorithm.
+const primeRK = 16777619
+
+// hashstr returns the hash and the appropriate multiplicative
+// factor for use in Rabin-Karp algorithm.
+func hashstr(sep string) (uint32, uint32) {
+	hash := uint32(0)
+	for i := 0; i < len(sep); i++ {
+		hash = hash*primeRK + uint32(sep[i])
+
+	}
+	var pow, sq uint32 = 1, primeRK
+	for i := len(sep); i > 0; i >>= 1 {
+		if i&1 != 0 {
+			pow *= sq
+		}
+		sq *= sq
+	}
+	return hash, pow
+}
+
 // Count counts the number of non-overlapping instances of sep in s.
 func Count(s, sep string) int {
-	if sep == "" {
-		return utf8.RuneCountInString(s) + 1
-	}
-	c := sep[0]
-	l := len(sep)
 	n := 0
-	if l == 1 {
+	// special cases
+	switch {
+	case len(sep) == 0:
+		return utf8.RuneCountInString(s) + 1
+	case len(sep) == 1:
 		// special case worth making fast
+		c := sep[0]
 		for i := 0; i < len(s); i++ {
 			if s[i] == c {
 				n++
 			}
 		}
 		return n
+	case len(sep) > len(s):
+		return 0
+	case len(sep) == len(s):
+		if sep == s {
+			return 1
+		}
+		return 0
 	}
-	for i := 0; i+l <= len(s); i++ {
-		if s[i] == c && s[i:i+l] == sep {
+	hashsep, pow := hashstr(sep)
+	h := uint32(0)
+	for i := 0; i < len(sep); i++ {
+		h = h*primeRK + uint32(s[i])
+	}
+	lastmatch := 0
+	if h == hashsep && s[:len(sep)] == sep {
+		n++
+		lastmatch = len(sep)
+	}
+	for i := len(sep); i < len(s); {
+		h *= primeRK
+		h += uint32(s[i])
+		h -= pow * uint32(s[i-len(sep)])
+		i++
+		if h == hashsep && lastmatch <= i-len(sep) && s[i-len(sep):i] == sep {
 			n++
-			i += l - 1
+			lastmatch = i
 		}
 	}
 	return n
@@ -80,11 +126,11 @@
 // Index returns the index of the first instance of sep in s, or -1 if sep is not present in s.
 func Index(s, sep string) int {
 	n := len(sep)
-	if n == 0 {
+	switch {
+	case n == 0:
 		return 0
-	}
-	c := sep[0]
-	if n == 1 {
+	case n == 1:
+		c := sep[0]
 		// special case worth making fast
 		for i := 0; i < len(s); i++ {
 			if s[i] == c {
@@ -92,11 +138,30 @@
 			}
 		}
 		return -1
+	case n == len(s):
+		if sep == s {
+			return 0
+		}
+		return -1
+	case n > len(s):
+		return -1
 	}
-	// n > 1
-	for i := 0; i+n <= len(s); i++ {
-		if s[i] == c && s[i:i+n] == sep {
-			return i
+	// Hash sep.
+	hashsep, pow := hashstr(sep)
+	var h uint32
+	for i := 0; i < n; i++ {
+		h = h*primeRK + uint32(s[i])
+	}
+	if h == hashsep && s[:n] == sep {
+		return 0
+	}
+	for i := n; i < len(s); {
+		h *= primeRK
+		h += uint32(s[i])
+		h -= pow * uint32(s[i-n])
+		i++
+		if h == hashsep && s[i-n:i] == sep {
+			return i - n
 		}
 	}
 	return -1
@@ -244,7 +309,8 @@
 }
 
 // Fields splits the string s around each instance of one or more consecutive white space
-// characters, returning an array of substrings of s or an empty list if s contains only white space.
+// characters, as defined by unicode.IsSpace, returning an array of substrings of s or an
+// empty list if s contains only white space.
 func Fields(s string) []string {
 	return FieldsFunc(s, unicode.IsSpace)
 }
@@ -426,10 +492,10 @@
 	return unicode.IsSpace(r)
 }
 
-// BUG(r): The rule Title uses for word boundaries does not handle Unicode punctuation properly.
-
 // Title returns a copy of the string s with all Unicode letters that begin words
 // mapped to their title case.
+//
+// BUG: The rule Title uses for word boundaries does not handle Unicode punctuation properly.
 func Title(s string) string {
 	// Use a closure here to remember state.
 	// Hackish but effective. Depends on Map scanning in order and calling
@@ -558,6 +624,24 @@
 	return TrimFunc(s, unicode.IsSpace)
 }
 
+// TrimPrefix returns s without the provided leading prefix string.
+// If s doesn't start with prefix, s is returned unchanged.
+func TrimPrefix(s, prefix string) string {
+	if HasPrefix(s, prefix) {
+		return s[len(prefix):]
+	}
+	return s
+}
+
+// TrimSuffix returns s without the provided trailing suffix string.
+// If s doesn't end with suffix, s is returned unchanged.
+func TrimSuffix(s, suffix string) string {
+	if HasSuffix(s, suffix) {
+		return s[:len(s)-len(suffix)]
+	}
+	return s
+}
+
 // Replace returns a copy of the string s with the first n
 // non-overlapping instances of old replaced by new.
 // If n < 0, there is no limit on the number of replacements.
diff -Naur gcc-4.8.1.orig/libgo/go/strings/strings_test.go gcc-4.8.1/libgo/go/strings/strings_test.go
--- gcc-4.8.1.orig/libgo/go/strings/strings_test.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/strings/strings_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -496,8 +496,8 @@
 func TestTrimSpace(t *testing.T) { runStringTests(t, TrimSpace, "TrimSpace", trimSpaceTests) }
 
 var trimTests = []struct {
-	f               string
-	in, cutset, out string
+	f            string
+	in, arg, out string
 }{
 	{"Trim", "abba", "a", "bb"},
 	{"Trim", "abba", "ab", ""},
@@ -520,6 +520,10 @@
 	{"TrimRight", "", "123", ""},
 	{"TrimRight", "", "", ""},
 	{"TrimRight", "â˜º\xc0", "â˜º", "â˜º\xc0"},
+	{"TrimPrefix", "aabb", "a", "abb"},
+	{"TrimPrefix", "aabb", "b", "aabb"},
+	{"TrimSuffix", "aabb", "a", "aabb"},
+	{"TrimSuffix", "aabb", "b", "aab"},
 }
 
 func TestTrim(t *testing.T) {
@@ -533,12 +537,16 @@
 			f = TrimLeft
 		case "TrimRight":
 			f = TrimRight
+		case "TrimPrefix":
+			f = TrimPrefix
+		case "TrimSuffix":
+			f = TrimSuffix
 		default:
 			t.Errorf("Undefined trim function %s", name)
 		}
-		actual := f(tc.in, tc.cutset)
+		actual := f(tc.in, tc.arg)
 		if actual != tc.out {
-			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.cutset, actual, tc.out)
+			t.Errorf("%s(%q, %q) = %q; want %q", name, tc.in, tc.arg, actual, tc.out)
 		}
 	}
 }
@@ -959,7 +967,7 @@
 func TestContainsRune(t *testing.T) {
 	for _, ct := range ContainsRuneTests {
 		if ContainsRune(ct.str, ct.r) != ct.expected {
-			t.Errorf("ContainsRune(%s, %s) = %v, want %v",
+			t.Errorf("ContainsRune(%q, %q) = %v, want %v",
 				ct.str, ct.r, !ct.expected, ct.expected)
 		}
 	}
@@ -993,6 +1001,65 @@
 	}
 }
 
+func makeBenchInputHard() string {
+	tokens := [...]string{
+		"<a>", "<p>", "<b>", "<strong>",
+		"</a>", "</p>", "</b>", "</strong>",
+		"hello", "world",
+	}
+	x := make([]byte, 0, 1<<20)
+	for len(x) < 1<<20 {
+		i := rand.Intn(len(tokens))
+		x = append(x, tokens[i]...)
+	}
+	return string(x)
+}
+
+var benchInputHard = makeBenchInputHard()
+
+func benchmarkIndexHard(b *testing.B, sep string) {
+	for i := 0; i < b.N; i++ {
+		Index(benchInputHard, sep)
+	}
+}
+
+func benchmarkCountHard(b *testing.B, sep string) {
+	for i := 0; i < b.N; i++ {
+		Count(benchInputHard, sep)
+	}
+}
+
+func BenchmarkIndexHard1(b *testing.B) { benchmarkIndexHard(b, "<>") }
+func BenchmarkIndexHard2(b *testing.B) { benchmarkIndexHard(b, "</pre>") }
+func BenchmarkIndexHard3(b *testing.B) { benchmarkIndexHard(b, "<b>hello world</b>") }
+
+func BenchmarkCountHard1(b *testing.B) { benchmarkCountHard(b, "<>") }
+func BenchmarkCountHard2(b *testing.B) { benchmarkCountHard(b, "</pre>") }
+func BenchmarkCountHard3(b *testing.B) { benchmarkCountHard(b, "<b>hello world</b>") }
+
+var benchInputTorture = Repeat("ABC", 1<<10) + "123" + Repeat("ABC", 1<<10)
+var benchNeedleTorture = Repeat("ABC", 1<<10+1)
+
+func BenchmarkIndexTorture(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Index(benchInputTorture, benchNeedleTorture)
+	}
+}
+
+func BenchmarkCountTorture(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Count(benchInputTorture, benchNeedleTorture)
+	}
+}
+
+func BenchmarkCountTortureOverlapping(b *testing.B) {
+	A := Repeat("ABC", 1<<20)
+	B := Repeat("ABC", 1<<10)
+	for i := 0; i < b.N; i++ {
+		Count(A, B)
+	}
+}
+
 var makeFieldsInput = func() string {
 	x := make([]byte, 1<<20)
 	// Input is ~10% space, ~10% 2-byte UTF-8, rest ASCII non-space.
@@ -1028,3 +1095,21 @@
 		FieldsFunc(fieldsInput, unicode.IsSpace)
 	}
 }
+
+func BenchmarkSplit1(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Split(benchInputHard, "")
+	}
+}
+
+func BenchmarkSplit2(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Split(benchInputHard, "/")
+	}
+}
+
+func BenchmarkSplit3(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		Split(benchInputHard, "hello")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/atomic_test.go gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go
--- gcc-4.8.1.orig/libgo/go/sync/atomic/atomic_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/sync/atomic/atomic_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -1119,7 +1119,7 @@
 					d1 := X.data1
 					d2 := X.data2
 					if d1 != i || d2 != float32(i) {
-						t.Fatalf("incorrect data: %d/%d (%d)", d1, d2, i)
+						t.Fatalf("incorrect data: %d/%g (%d)", d1, d2, i)
 					}
 				}
 			}
@@ -1167,7 +1167,7 @@
 					d1 := X.data1
 					d2 := X.data2
 					if d1 != i || d2 != float64(i) {
-						t.Fatalf("incorrect data: %d/%d (%d)", d1, d2, i)
+						t.Fatalf("incorrect data: %d/%g (%d)", d1, d2, i)
 					}
 				}
 			}
@@ -1177,3 +1177,31 @@
 	<-c
 	<-c
 }
+
+func shouldPanic(t *testing.T, name string, f func()) {
+	defer func() {
+		if recover() == nil {
+			t.Errorf("%s did not panic", name)
+		}
+	}()
+	f()
+}
+
+func TestUnaligned64(t *testing.T) {
+	// Unaligned 64-bit atomics on 32-bit systems are
+	// a continual source of pain. Test that on 32-bit systems they crash
+	// instead of failing silently.
+	if unsafe.Sizeof(int(0)) != 4 {
+		t.Skip("test only runs on 32-bit systems")
+	}
+
+	t.Skip("skipping test for gccgo")
+
+	x := make([]uint32, 4)
+	p := (*uint64)(unsafe.Pointer(&x[1])) // misaligned
+
+	shouldPanic(t, "LoadUint64", func() { LoadUint64(p) })
+	shouldPanic(t, "StoreUint64", func() { StoreUint64(p, 1) })
+	shouldPanic(t, "CompareAndSwapUint64", func() { CompareAndSwapUint64(p, 1, 2) })
+	shouldPanic(t, "AddUint64", func() { AddUint64(p, 3) })
+}
diff -Naur gcc-4.8.1.orig/libgo/go/sync/atomic/race.go gcc-4.8.1/libgo/go/sync/atomic/race.go
--- gcc-4.8.1.orig/libgo/go/sync/atomic/race.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/sync/atomic/race.go	2013-07-16 01:55:04.520470000 -0500
@@ -25,6 +25,7 @@
 }
 
 func CompareAndSwapUint32(val *uint32, old, new uint32) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -43,6 +44,7 @@
 }
 
 func CompareAndSwapUint64(val *uint64, old, new uint64) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -57,6 +59,7 @@
 }
 
 func CompareAndSwapPointer(val *unsafe.Pointer, old, new unsafe.Pointer) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -71,6 +74,7 @@
 }
 
 func CompareAndSwapUintptr(val *uintptr, old, new uintptr) (swapped bool) {
+	_ = *val
 	swapped = false
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
@@ -89,6 +93,7 @@
 }
 
 func AddUint32(val *uint32, delta uint32) (new uint32) {
+	_ = *val
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
 	runtime.RaceAcquire(unsafe.Pointer(val))
@@ -105,6 +110,7 @@
 }
 
 func AddUint64(val *uint64, delta uint64) (new uint64) {
+	_ = *val
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
 	runtime.RaceAcquire(unsafe.Pointer(val))
@@ -117,6 +123,7 @@
 }
 
 func AddUintptr(val *uintptr, delta uintptr) (new uintptr) {
+	_ = *val
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(val))
 	runtime.RaceAcquire(unsafe.Pointer(val))
@@ -133,6 +140,7 @@
 }
 
 func LoadUint32(addr *uint32) (val uint32) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -146,6 +154,7 @@
 }
 
 func LoadUint64(addr *uint64) (val uint64) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -155,6 +164,7 @@
 }
 
 func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -164,6 +174,7 @@
 }
 
 func LoadUintptr(addr *uintptr) (val uintptr) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	runtime.RaceAcquire(unsafe.Pointer(addr))
@@ -177,6 +188,7 @@
 }
 
 func StoreUint32(addr *uint32, val uint32) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
@@ -189,6 +201,7 @@
 }
 
 func StoreUint64(addr *uint64, val uint64) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
@@ -197,6 +210,7 @@
 }
 
 func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
@@ -205,6 +219,7 @@
 }
 
 func StoreUintptr(addr *uintptr, val uintptr) {
+	_ = *addr
 	runtime.RaceSemacquire(&mtx)
 	runtime.RaceRead(unsafe.Pointer(addr))
 	*addr = val
diff -Naur gcc-4.8.1.orig/libgo/go/sync/cond.go gcc-4.8.1/libgo/go/sync/cond.go
--- gcc-4.8.1.orig/libgo/go/sync/cond.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/sync/cond.go	2013-07-16 01:55:04.520470000 -0500
@@ -57,6 +57,7 @@
 //
 func (c *Cond) Wait() {
 	if raceenabled {
+		_ = c.m.state
 		raceDisable()
 	}
 	c.m.Lock()
@@ -80,6 +81,7 @@
 // during the call.
 func (c *Cond) Signal() {
 	if raceenabled {
+		_ = c.m.state
 		raceDisable()
 	}
 	c.m.Lock()
@@ -106,6 +108,7 @@
 // during the call.
 func (c *Cond) Broadcast() {
 	if raceenabled {
+		_ = c.m.state
 		raceDisable()
 	}
 	c.m.Lock()
diff -Naur gcc-4.8.1.orig/libgo/go/sync/example_test.go gcc-4.8.1/libgo/go/sync/example_test.go
--- gcc-4.8.1.orig/libgo/go/sync/example_test.go	2012-03-06 11:57:23.000000000 -0600
+++ gcc-4.8.1/libgo/go/sync/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -24,10 +24,10 @@
 		wg.Add(1)
 		// Launch a goroutine to fetch the URL.
 		go func(url string) {
+			// Decrement the counter when the goroutine completes.
+			defer wg.Done()
 			// Fetch the URL.
 			http.Get(url)
-			// Decrement the counter.
-			wg.Done()
 		}(url)
 	}
 	// Wait for all HTTP fetches to complete.
@@ -37,7 +37,7 @@
 func ExampleOnce() {
 	var once sync.Once
 	onceBody := func() {
-		fmt.Printf("Only once\n")
+		fmt.Println("Only once")
 	}
 	done := make(chan bool)
 	for i := 0; i < 10; i++ {
diff -Naur gcc-4.8.1.orig/libgo/go/sync/mutex.go gcc-4.8.1/libgo/go/sync/mutex.go
--- gcc-4.8.1.orig/libgo/go/sync/mutex.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/sync/mutex.go	2013-07-16 01:55:04.520470000 -0500
@@ -81,6 +81,7 @@
 // arrange for another goroutine to unlock it.
 func (m *Mutex) Unlock() {
 	if raceenabled {
+		_ = m.state
 		raceRelease(unsafe.Pointer(m))
 	}
 
diff -Naur gcc-4.8.1.orig/libgo/go/sync/rwmutex.go gcc-4.8.1/libgo/go/sync/rwmutex.go
--- gcc-4.8.1.orig/libgo/go/sync/rwmutex.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/sync/rwmutex.go	2013-07-16 01:55:04.520470000 -0500
@@ -28,6 +28,7 @@
 // RLock locks rw for reading.
 func (rw *RWMutex) RLock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceDisable()
 	}
 	if atomic.AddInt32(&rw.readerCount, 1) < 0 {
@@ -46,6 +47,7 @@
 // on entry to RUnlock.
 func (rw *RWMutex) RUnlock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceReleaseMerge(unsafe.Pointer(&rw.writerSem))
 		raceDisable()
 	}
@@ -69,6 +71,7 @@
 // the lock.
 func (rw *RWMutex) Lock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceDisable()
 	}
 	// First, resolve competition with other writers.
@@ -94,6 +97,7 @@
 // arrange for another goroutine to RUnlock (Unlock) it.
 func (rw *RWMutex) Unlock() {
 	if raceenabled {
+		_ = rw.w.state
 		raceRelease(unsafe.Pointer(&rw.readerSem))
 		raceRelease(unsafe.Pointer(&rw.writerSem))
 		raceDisable()
diff -Naur gcc-4.8.1.orig/libgo/go/sync/waitgroup.go gcc-4.8.1/libgo/go/sync/waitgroup.go
--- gcc-4.8.1.orig/libgo/go/sync/waitgroup.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/sync/waitgroup.go	2013-07-16 01:55:04.520470000 -0500
@@ -34,10 +34,16 @@
 // G3: Wait() // G1 still hasn't run, G3 finds sema == 1, unblocked! Bug.
 
 // Add adds delta, which may be negative, to the WaitGroup counter.
-// If the counter becomes zero, all goroutines blocked on Wait() are released.
+// If the counter becomes zero, all goroutines blocked on Wait are released.
 // If the counter goes negative, Add panics.
+//
+// Note that calls with positive delta must happen before the call to Wait,
+// or else Wait may wait for too small a group. Typically this means the calls
+// to Add should execute before the statement creating the goroutine or
+// other event to be waited for. See the WaitGroup example.
 func (wg *WaitGroup) Add(delta int) {
 	if raceenabled {
+		_ = wg.m.state
 		raceReleaseMerge(unsafe.Pointer(wg))
 		raceDisable()
 		defer raceEnable()
@@ -66,6 +72,7 @@
 // Wait blocks until the WaitGroup counter is zero.
 func (wg *WaitGroup) Wait() {
 	if raceenabled {
+		_ = wg.m.state
 		raceDisable()
 	}
 	if atomic.LoadInt32(&wg.counter) == 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/dir_plan9.go gcc-4.8.1/libgo/go/syscall/dir_plan9.go
--- gcc-4.8.1.orig/libgo/go/syscall/dir_plan9.go	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/dir_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -68,9 +68,9 @@
 	b = pbit16(b, uint16(n)-2)
 	b = pbit16(b, d.Type)
 	b = pbit32(b, d.Dev)
-	b = pbit64(b, d.Qid.Path)
-	b = pbit32(b, d.Qid.Vers)
 	b = pbit8(b, d.Qid.Type)
+	b = pbit32(b, d.Qid.Vers)
+	b = pbit64(b, d.Qid.Path)
 	b = pbit32(b, d.Mode)
 	b = pbit32(b, d.Atime)
 	b = pbit32(b, d.Mtime)
@@ -101,9 +101,9 @@
 	var d Dir
 	d.Type, b = gbit16(b)
 	d.Dev, b = gbit32(b)
-	d.Qid.Path, b = gbit64(b)
-	d.Qid.Vers, b = gbit32(b)
 	d.Qid.Type, b = gbit8(b)
+	d.Qid.Vers, b = gbit32(b)
+	d.Qid.Path, b = gbit64(b)
 	d.Mode, b = gbit32(b)
 	d.Atime, b = gbit32(b)
 	d.Mtime, b = gbit32(b)
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_plan9.go gcc-4.8.1/libgo/go/syscall/env_plan9.go
--- gcc-4.8.1.orig/libgo/go/syscall/env_plan9.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/env_plan9.go	2013-07-16 01:55:04.520470000 -0500
@@ -15,12 +15,15 @@
 	// envOnce guards copyenv, which populates env.
 	envOnce sync.Once
 
-	// envLock guards env.
+	// envLock guards env and envs.
 	envLock sync.RWMutex
 
 	// env maps from an environment variable to its value.
 	env = make(map[string]string)
 
+	// envs contains elements of env in the form "key=value".
+	envs []string
+
 	errZeroLengthKey = errors.New("zero length key")
 	errShortWrite    = errors.New("i/o count too small")
 )
@@ -71,12 +74,16 @@
 	if err != nil {
 		return
 	}
+	envs = make([]string, len(files))
+	i := 0
 	for _, key := range files {
 		v, err := readenv(key)
 		if err != nil {
 			continue
 		}
 		env[key] = v
+		envs[i] = key + "=" + v
+		i++
 	}
 }
 
@@ -96,6 +103,7 @@
 		return "", false
 	}
 	env[key] = v
+	envs = append(envs, key+"="+v)
 	return v, true
 }
 
@@ -112,6 +120,7 @@
 		return err
 	}
 	env[key] = value
+	envs = append(envs, key+"="+value)
 	return nil
 }
 
@@ -120,6 +129,7 @@
 	defer envLock.Unlock()
 
 	env = make(map[string]string)
+	envs = []string{}
 	RawSyscall(SYS_RFORK, RFCENVG, 0, 0)
 }
 
@@ -128,11 +138,5 @@
 	defer envLock.RUnlock()
 
 	envOnce.Do(copyenv)
-	a := make([]string, len(env))
-	i := 0
-	for k, v := range env {
-		a[i] = k + "=" + v
-		i++
-	}
-	return a
+	return append([]string(nil), envs...)
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/env_unix.go gcc-4.8.1/libgo/go/syscall/env_unix.go
--- gcc-4.8.1.orig/libgo/go/syscall/env_unix.go	2012-01-25 14:56:26.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/env_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -71,6 +71,16 @@
 	if len(key) == 0 {
 		return EINVAL
 	}
+	for i := 0; i < len(key); i++ {
+		if key[i] == '=' || key[i] == 0 {
+			return EINVAL
+		}
+	}
+	for i := 0; i < len(value); i++ {
+		if value[i] == 0 {
+			return EINVAL
+		}
+	}
 
 	envLock.Lock()
 	defer envLock.Unlock()
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_bsd.go gcc-4.8.1/libgo/go/syscall/exec_bsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/exec_bsd.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/exec_bsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -38,10 +38,18 @@
 		i      int
 	)
 
+	// guard against side effects of shuffling fds below.
+	// Make sure that nextfd is beyond any currently open files so
+	// that we can't run the risk of overwriting any of them.
 	fd := make([]int, len(attr.Files))
+	nextfd = len(attr.Files)
 	for i, ufd := range attr.Files {
+		if nextfd < int(ufd) {
+			nextfd = int(ufd)
+		}
 		fd[i] = int(ufd)
 	}
+	nextfd++
 
 	// About to call fork.
 	// No more allocation or calls of non-assembly functions.
@@ -136,7 +144,6 @@
 
 	// Pass 1: look for fd[i] < i and move those up above len(fd)
 	// so that pass 2 won't stomp on an fd it needs later.
-	nextfd = int(len(fd))
 	if pipe < nextfd {
 		err1 = raw_dup2(pipe, nextfd)
 		if err1 != 0 {
@@ -217,11 +224,6 @@
 	for {
 		raw_exit(253)
 	}
-
-	// Calling panic is not actually safe,
-	// but the for loop above won't break
-	// and this shuts up the compiler.
-	panic("unreached")
 }
 
 // Try to open a pipe with O_CLOEXEC set on both file descriptors.
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/exec_linux.go gcc-4.8.1/libgo/go/syscall/exec_linux.go
--- gcc-4.8.1.orig/libgo/go/syscall/exec_linux.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/exec_linux.go	2013-07-16 01:55:04.520470000 -0500
@@ -43,11 +43,18 @@
 		i      int
 	)
 
-	// guard against side effects of shuffling fds below.
+	// Guard against side effects of shuffling fds below.
+	// Make sure that nextfd is beyond any currently open files so
+	// that we can't run the risk of overwriting any of them.
 	fd := make([]int, len(attr.Files))
+	nextfd = len(attr.Files)
 	for i, ufd := range attr.Files {
+		if nextfd < int(ufd) {
+			nextfd = int(ufd)
+		}
 		fd[i] = int(ufd)
 	}
+	nextfd++
 
 	// About to call fork.
 	// No more allocation or calls of non-assembly functions.
@@ -163,7 +170,6 @@
 
 	// Pass 1: look for fd[i] < i and move those up above len(fd)
 	// so that pass 2 won't stomp on an fd it needs later.
-	nextfd = int(len(fd))
 	if pipe < nextfd {
 		err1 = raw_dup2(pipe, nextfd)
 		if err1 != 0 {
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/mksyscall.awk gcc-4.8.1/libgo/go/syscall/mksyscall.awk
--- gcc-4.8.1.orig/libgo/go/syscall/mksyscall.awk	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/syscall/mksyscall.awk	2013-08-02 17:30:42.420406000 -0500
@@ -53,7 +53,7 @@
     }
 
     # Sets a[1] = //sysnb, a[2] == function name.
-    split(line, a, "[ 	(]*")
+    split(line, a, "[ 	(]+")
     gofnname = a[2]
 
     off = match(line, "\\([^()]*\\)")
@@ -78,7 +78,7 @@
 	next
     }
 
-    split(line, a, "[ 	(]*")
+    split(line, a, "[ 	(]+")
     cfnname = substr(a[1], 3, length(a[1]) - 2)
 
     off = match(line, "\\([^()]*\\)")
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/passfd_test.go gcc-4.8.1/libgo/go/syscall/passfd_test.go
--- gcc-4.8.1.orig/libgo/go/syscall/passfd_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/syscall/passfd_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build linux darwin
+// +build linux darwin freebsd netbsd openbsd
 
 package syscall_test
 
@@ -49,7 +49,11 @@
 	defer readFile.Close()
 
 	cmd := exec.Command(os.Args[0], "-test.run=^TestPassFD$", "--", tempDir)
-	cmd.Env = append([]string{"GO_WANT_HELPER_PROCESS=1"}, os.Environ()...)
+	cmd.Env = []string{"GO_WANT_HELPER_PROCESS=1"}
+	path := os.Getenv("LD_LIBRARY_PATH")
+	if path != "" {
+		cmd.Env = append(cmd.Env, "LD_LIBRARY_PATH="+path)
+	}
 	cmd.ExtraFiles = []*os.File{writeFile}
 
 	out, err := cmd.CombinedOutput()
@@ -149,3 +153,49 @@
 		return
 	}
 }
+
+// TestUnixRightsRoundtrip tests that UnixRights, ParseSocketControlMessage,
+// and ParseUnixRights are able to successfully round-trip lists of file descriptors.
+func TestUnixRightsRoundtrip(t *testing.T) {
+	testCases := [...][][]int{
+		{{42}},
+		{{1, 2}},
+		{{3, 4, 5}},
+		{{}},
+		{{1, 2}, {3, 4, 5}, {}, {7}},
+	}
+	for _, testCase := range testCases {
+		b := []byte{}
+		var n int
+		for _, fds := range testCase {
+			// Last assignment to n wins
+			n = len(b) + syscall.CmsgLen(4*len(fds))
+			b = append(b, syscall.UnixRights(fds...)...)
+		}
+		// Truncate b
+		b = b[:n]
+
+		scms, err := syscall.ParseSocketControlMessage(b)
+		if err != nil {
+			t.Fatalf("ParseSocketControlMessage: %v", err)
+		}
+		if len(scms) != len(testCase) {
+			t.Fatalf("expected %v SocketControlMessage; got scms = %#v", len(testCase), scms)
+		}
+		for i, scm := range scms {
+			gotFds, err := syscall.ParseUnixRights(&scm)
+			if err != nil {
+				t.Fatalf("ParseUnixRights: %v", err)
+			}
+			wantFds := testCase[i]
+			if len(gotFds) != len(wantFds) {
+				t.Fatalf("expected %v fds, got %#v", len(wantFds), gotFds)
+			}
+			for j, fd := range gotFds {
+				if fd != wantFds[j] {
+					t.Fatalf("expected fd %v, got %v", wantFds[j], fd)
+				}
+			}
+		}
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_bsd.go gcc-4.8.1/libgo/go/syscall/route_bsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_bsd.go	2012-01-12 23:11:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/route_bsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -8,9 +8,7 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
 // Round the length of a raw sockaddr up to align it properly.
 func rsaAlignOf(salen int) int {
@@ -31,7 +29,6 @@
 // parameters.
 func RouteRIB(facility, param int) ([]byte, error) {
 	mib := []_C_int{CTL_NET, AF_ROUTE, 0, 0, _C_int(facility), _C_int(param)}
-
 	// Find size.
 	n := uintptr(0)
 	if err := sysctl(mib, nil, &n, nil, 0); err != nil {
@@ -40,12 +37,10 @@
 	if n == 0 {
 		return nil, nil
 	}
-
 	tab := make([]byte, n)
 	if err := sysctl(mib, &tab[0], &n, nil, 0); err != nil {
 		return nil, err
 	}
-
 	return tab[:n], nil
 }
 
@@ -76,13 +71,12 @@
 		af  int
 		sas [4]Sockaddr
 	)
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaRtMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_DST, RTAX_GATEWAY:
 			sa, err := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -96,14 +90,14 @@
 		case RTAX_NETMASK, RTAX_GENMASK:
 			switch af {
 			case AF_INET:
-				rsa4 := (*RawSockaddrInet4)(unsafe.Pointer(&buf[0]))
+				rsa4 := (*RawSockaddrInet4)(unsafe.Pointer(&b[0]))
 				sa := new(SockaddrInet4)
 				for j := 0; rsa4.Len > 0 && j < int(rsa4.Len)-int(unsafe.Offsetof(rsa4.Addr)); j++ {
 					sa.Addr[j] = rsa4.Addr[j]
 				}
 				sas[i] = sa
 			case AF_INET6:
-				rsa6 := (*RawSockaddrInet6)(unsafe.Pointer(&buf[0]))
+				rsa6 := (*RawSockaddrInet6)(unsafe.Pointer(&b[0]))
 				sa := new(SockaddrInet6)
 				for j := 0; rsa6.Len > 0 && j < int(rsa6.Len)-int(unsafe.Offsetof(rsa6.Addr)); j++ {
 					sa.Addr[j] = rsa6.Addr[j]
@@ -111,9 +105,8 @@
 				sas[i] = sa
 			}
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas[:]
 }
 
@@ -148,13 +141,12 @@
 	if m.Header.Addrs&rtaIfaMask == 0 {
 		return nil
 	}
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaIfaMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_IFA:
 			sa, err := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -174,22 +166,21 @@
 		case RTAX_BRD:
 			// nothing to do
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas
 }
 
-// ParseRoutingMessage parses buf as routing messages and returns
-// the slice containing the RoutingMessage interfaces.
-func ParseRoutingMessage(buf []byte) (msgs []RoutingMessage, err error) {
-	for len(buf) >= anyMessageLen {
-		any := (*anyMessage)(unsafe.Pointer(&buf[0]))
+// ParseRoutingMessage parses b as routing messages and returns the
+// slice containing the RoutingMessage interfaces.
+func ParseRoutingMessage(b []byte) (msgs []RoutingMessage, err error) {
+	for len(b) >= anyMessageLen {
+		any := (*anyMessage)(unsafe.Pointer(&b[0]))
 		if any.Version != RTM_VERSION {
 			return nil, EINVAL
 		}
-		msgs = append(msgs, any.toRoutingMessage(buf))
-		buf = buf[any.Msglen:]
+		msgs = append(msgs, any.toRoutingMessage(b))
+		b = b[any.Msglen:]
 	}
 	return msgs, nil
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_darwin.go gcc-4.8.1/libgo/go/syscall/route_darwin.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_darwin.go	2011-12-12 17:40:51.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/route_darwin.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,36 +6,22 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	case RTM_NEWMADDR2, RTM_DELMADDR:
 		p := (*InterfaceMulticastAddrMessage)(unsafe.Pointer(any))
-		ifmam := &InterfaceMulticastAddrMessage{}
-		ifmam.Header = p.Header
-		ifmam.Data = buf[SizeofIfmaMsghdr2:any.Msglen]
-		return ifmam
+		return &InterfaceMulticastAddrMessage{Header: p.Header, Data: b[SizeofIfmaMsghdr2:any.Msglen]}
 	}
 	return nil
 }
@@ -53,13 +39,12 @@
 	if m.Header.Addrs&rtaIfmaMask == 0 {
 		return nil
 	}
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaIfmaMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_IFA:
 			sa, e := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -70,8 +55,7 @@
 		case RTAX_GATEWAY, RTAX_IFP:
 			// nothing to do
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_freebsd.go gcc-4.8.1/libgo/go/syscall/route_freebsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_freebsd.go	2011-12-12 17:40:51.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/route_freebsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,40 +6,37 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
+	case RTM_IFANNOUNCE:
+		p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any))
+		return &InterfaceAnnounceMessage{Header: p.Header}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	case RTM_NEWMADDR, RTM_DELMADDR:
 		p := (*InterfaceMulticastAddrMessage)(unsafe.Pointer(any))
-		ifmam := &InterfaceMulticastAddrMessage{}
-		ifmam.Header = p.Header
-		ifmam.Data = buf[SizeofIfmaMsghdr:any.Msglen]
-		return ifmam
+		return &InterfaceMulticastAddrMessage{Header: p.Header, Data: b[SizeofIfmaMsghdr:any.Msglen]}
 	}
 	return nil
 }
 
+// InterfaceAnnounceMessage represents a routing message containing
+// network interface arrival and depature information.
+type InterfaceAnnounceMessage struct {
+	Header IfAnnounceMsghdr
+}
+
+func (m *InterfaceAnnounceMessage) sockaddr() (sas []Sockaddr) { return nil }
+
 // InterfaceMulticastAddrMessage represents a routing message
 // containing network interface address entries.
 type InterfaceMulticastAddrMessage struct {
@@ -53,13 +50,12 @@
 	if m.Header.Addrs&rtaIfmaMask == 0 {
 		return nil
 	}
-
-	buf := m.Data[:]
+	b := m.Data[:]
 	for i := uint(0); i < RTAX_MAX; i++ {
 		if m.Header.Addrs&rtaIfmaMask&(1<<i) == 0 {
 			continue
 		}
-		rsa := (*RawSockaddr)(unsafe.Pointer(&buf[0]))
+		rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
 		switch i {
 		case RTAX_IFA:
 			sa, e := anyToSockaddr((*RawSockaddrAny)(unsafe.Pointer(rsa)))
@@ -70,8 +66,7 @@
 		case RTAX_GATEWAY, RTAX_IFP:
 			// nothing to do
 		}
-		buf = buf[rsaAlignOf(int(rsa.Len)):]
+		b = b[rsaAlignOf(int(rsa.Len)):]
 	}
-
 	return sas
 }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_netbsd.go gcc-4.8.1/libgo/go/syscall/route_netbsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_netbsd.go	2012-01-12 23:11:45.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/route_netbsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,30 +6,30 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
+	case RTM_IFANNOUNCE:
+		p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any))
+		return &InterfaceAnnounceMessage{Header: p.Header}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	}
 	return nil
 }
+
+// InterfaceAnnounceMessage represents a routing message containing
+// network interface arrival and depature information.
+type InterfaceAnnounceMessage struct {
+	Header IfAnnounceMsghdr
+}
+
+func (m *InterfaceAnnounceMessage) sockaddr() (sas []Sockaddr) { return nil }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/route_openbsd.go gcc-4.8.1/libgo/go/syscall/route_openbsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/route_openbsd.go	2011-10-23 14:04:37.000000000 -0500
+++ gcc-4.8.1/libgo/go/syscall/route_openbsd.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,30 +6,30 @@
 
 package syscall
 
-import (
-	"unsafe"
-)
+import "unsafe"
 
-func (any *anyMessage) toRoutingMessage(buf []byte) RoutingMessage {
+func (any *anyMessage) toRoutingMessage(b []byte) RoutingMessage {
 	switch any.Type {
 	case RTM_ADD, RTM_DELETE, RTM_CHANGE, RTM_GET, RTM_LOSING, RTM_REDIRECT, RTM_MISS, RTM_LOCK, RTM_RESOLVE:
 		p := (*RouteMessage)(unsafe.Pointer(any))
-		rtm := &RouteMessage{}
-		rtm.Header = p.Header
-		rtm.Data = buf[SizeofRtMsghdr:any.Msglen]
-		return rtm
+		return &RouteMessage{Header: p.Header, Data: b[SizeofRtMsghdr:any.Msglen]}
 	case RTM_IFINFO:
 		p := (*InterfaceMessage)(unsafe.Pointer(any))
-		ifm := &InterfaceMessage{}
-		ifm.Header = p.Header
-		ifm.Data = buf[SizeofIfMsghdr:any.Msglen]
-		return ifm
+		return &InterfaceMessage{Header: p.Header, Data: b[SizeofIfMsghdr:any.Msglen]}
+	case RTM_IFANNOUNCE:
+		p := (*InterfaceAnnounceMessage)(unsafe.Pointer(any))
+		return &InterfaceAnnounceMessage{Header: p.Header}
 	case RTM_NEWADDR, RTM_DELADDR:
 		p := (*InterfaceAddrMessage)(unsafe.Pointer(any))
-		ifam := &InterfaceAddrMessage{}
-		ifam.Header = p.Header
-		ifam.Data = buf[SizeofIfaMsghdr:any.Msglen]
-		return ifam
+		return &InterfaceAddrMessage{Header: p.Header, Data: b[SizeofIfaMsghdr:any.Msglen]}
 	}
 	return nil
 }
+
+// InterfaceAnnounceMessage represents a routing message containing
+// network interface arrival and depature information.
+type InterfaceAnnounceMessage struct {
+	Header IfAnnounceMsghdr
+}
+
+func (m *InterfaceAnnounceMessage) sockaddr() (sas []Sockaddr) { return nil }
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/security_windows.go gcc-4.8.1/libgo/go/syscall/security_windows.go
--- gcc-4.8.1.orig/libgo/go/syscall/security_windows.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/syscall/security_windows.go	2013-07-16 01:55:04.520470000 -0500
@@ -70,7 +70,7 @@
 
 const (
 	// do not reorder
-	SidTypeUser = 1 << iota
+	SidTypeUser = 1 + iota
 	SidTypeGroup
 	SidTypeDomain
 	SidTypeAlias
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/sockcmsg_unix.go gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go
--- gcc-4.8.1.orig/libgo/go/syscall/sockcmsg_unix.go	2013-02-20 14:04:36.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/sockcmsg_unix.go	2013-07-16 01:55:04.520470000 -0500
@@ -13,7 +13,7 @@
 	"unsafe"
 )
 
-// Round the length of a raw sockaddr up to align it propery.
+// Round the length of a raw sockaddr up to align it properly.
 func cmsgAlignOf(salen int) int {
 	salign := int(sizeofPtr)
 	// NOTE: It seems like 64-bit Darwin kernel still requires 32-bit
@@ -26,9 +26,6 @@
 	if runtime.GOOS == "solaris" {
 		salign = 4
 	}
-	if salen == 0 {
-		return salign
-	}
 	return (salen + salign - 1) & ^(salign - 1)
 }
 
@@ -45,7 +42,7 @@
 }
 
 func cmsgData(h *Cmsghdr) unsafe.Pointer {
-	return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + SizeofCmsghdr)
+	return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)))
 }
 
 // SocketControlMessage represents a socket control message.
@@ -58,14 +55,15 @@
 // messages.
 func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {
 	var msgs []SocketControlMessage
-	for len(b) >= CmsgLen(0) {
-		h, dbuf, err := socketControlMessageHeaderAndData(b)
+	i := 0
+	for i+CmsgLen(0) <= len(b) {
+		h, dbuf, err := socketControlMessageHeaderAndData(b[i:])
 		if err != nil {
 			return nil, err
 		}
-		m := SocketControlMessage{Header: *h, Data: dbuf[:int(h.Len)-cmsgAlignOf(SizeofCmsghdr)]}
+		m := SocketControlMessage{Header: *h, Data: dbuf}
 		msgs = append(msgs, m)
-		b = b[cmsgAlignOf(int(h.Len)):]
+		i += cmsgAlignOf(int(h.Len))
 	}
 	return msgs, nil
 }
@@ -75,7 +73,7 @@
 	if h.Len < SizeofCmsghdr || int(h.Len) > len(b) {
 		return nil, nil, EINVAL
 	}
-	return h, b[cmsgAlignOf(SizeofCmsghdr):], nil
+	return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil
 }
 
 // UnixRights encodes a set of open file descriptors into a socket
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_bsd.go gcc-4.8.1/libgo/go/syscall/socket_bsd.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_bsd.go	2011-12-12 17:40:51.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/socket_bsd.go	2013-07-24 11:53:32.825493000 -0500
@@ -11,11 +11,11 @@
 const SizeofSockaddrUnix = 110
 
 type RawSockaddrInet4 struct {
-	Len uint8;
-	Family uint8;
-	Port uint16;
-	Addr [4]byte /* in_addr */;
-	Zero [8]uint8;
+	Len    uint8
+	Family uint8
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	Zero   [8]uint8
 }
 
 func (sa *RawSockaddrInet4) setLen() Socklen_t {
@@ -24,12 +24,12 @@
 }
 
 type RawSockaddrInet6 struct {
-	Len uint8;
-	Family uint8;
-	Port uint16;
-	Flowinfo uint32;
-	Addr [16]byte /* in6_addr */;
-	Scope_id uint32;
+	Len      uint8
+	Family   uint8
+	Port     uint16
+	Flowinfo uint32
+	Addr     [16]byte /* in6_addr */
+	Scope_id uint32
 }
 
 func (sa *RawSockaddrInet6) setLen() Socklen_t {
@@ -38,9 +38,9 @@
 }
 
 type RawSockaddrUnix struct {
-	Len uint8;
-	Family uint8;
-	Path [108]int8;
+	Len    uint8
+	Family uint8
+	Path   [108]int8
 }
 
 func (sa *RawSockaddrUnix) setLen(n int) {
@@ -62,10 +62,14 @@
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	return sl
+}
+
 type RawSockaddr struct {
-	Len uint8;
-	Family uint8;
-	Data [14]int8;
+	Len    uint8
+	Family uint8
+	Data   [14]int8
 }
 
 // BindToDevice binds the socket associated with fd to device.
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket.go gcc-4.8.1/libgo/go/syscall/socket.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket.go	2013-02-20 14:04:36.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/socket.go	2013-07-24 11:53:32.825493000 -0500
@@ -79,7 +79,7 @@
 func (sa *SockaddrUnix) sockaddr() (*RawSockaddrAny, Socklen_t, error) {
 	name := sa.Name
 	n := len(name)
-	if n >= len(sa.raw.Path) || n == 0 {
+	if n >= len(sa.raw.Path) {
 		return nil, 0, EINVAL
 	}
 	sa.raw.Family = AF_UNIX
@@ -88,12 +88,11 @@
 		sa.raw.Path[i] = int8(name[i])
 	}
 	// length is family (uint16), name, NUL.
-	sl := 2 + Socklen_t(n) + 1
-	if sa.raw.Path[0] == '@' {
-		sa.raw.Path[0] = 0
-		// Don't count trailing NUL for abstract address.
-		sl--
+	sl := Socklen_t(2)
+	if n > 0 {
+		sl += Socklen_t(n) + 1
 	}
+	sl = sa.raw.adjustAbstract(sl)
 
 	// length is family (uint16), name, NUL.
 	return (*RawSockaddrAny)(unsafe.Pointer(&sa.raw)), sl, nil
@@ -307,7 +306,9 @@
 	if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {
 		return
 	}
-	from, err = anyToSockaddr(&rsa)
+	if rsa.Addr.Family != AF_UNSPEC {
+		from, err = anyToSockaddr(&rsa)
+	}
 	return
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_irix.go gcc-4.8.1/libgo/go/syscall/socket_irix.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_irix.go	2012-01-27 16:37:14.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/socket_irix.go	2013-07-24 11:53:32.825493000 -0500
@@ -64,6 +64,10 @@
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	return sl
+}
+
 type RawSockaddr struct {
 	Family uint16
 	Data   [14]int8
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_linux.go gcc-4.8.1/libgo/go/syscall/socket_linux.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_linux.go	2012-11-24 14:46:59.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/socket_linux.go	2013-07-24 11:53:32.825493000 -0500
@@ -110,6 +110,15 @@
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	if sa.Path[0] == '@' {
+		sa.Path[0] = 0
+		// Don't count trailing NUL for abstract address.
+		sl--
+	}
+	return sl
+}
+
 type RawSockaddrLinklayer struct {
 	Family   uint16
 	Protocol uint16
diff -Naur gcc-4.8.1.orig/libgo/go/syscall/socket_solaris.go gcc-4.8.1/libgo/go/syscall/socket_solaris.go
--- gcc-4.8.1.orig/libgo/go/syscall/socket_solaris.go	2011-12-12 17:40:51.000000000 -0600
+++ gcc-4.8.1/libgo/go/syscall/socket_solaris.go	2013-07-24 11:53:32.825493000 -0500
@@ -12,9 +12,9 @@
 
 type RawSockaddrInet4 struct {
 	Family uint16
-	Port uint16
-	Addr [4]byte /* in_addr */
-	Zero [8]uint8
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	Zero   [8]uint8
 }
 
 func (sa *RawSockaddrInet4) setLen() Socklen_t {
@@ -22,12 +22,12 @@
 }
 
 type RawSockaddrInet6 struct {
-	Family uint16
-	Port uint16
+	Family   uint16
+	Port     uint16
 	Flowinfo uint32
-	Addr [16]byte /* in6_addr */
+	Addr     [16]byte /* in6_addr */
 	Scope_id uint32
-	Src_id uint32
+	Src_id   uint32
 }
 
 func (sa *RawSockaddrInet6) setLen() Socklen_t {
@@ -36,38 +36,27 @@
 
 type RawSockaddrUnix struct {
 	Family uint16
-	Path [108]int8
+	Path   [108]int8
 }
 
 func (sa *RawSockaddrUnix) setLen(int) {
 }
 
 func (sa *RawSockaddrUnix) getLen() (int, error) {
-	if sa.Path[0] == 0 {
-		// "Abstract" Unix domain socket.
-		// Rewrite leading NUL as @ for textual display.
-		// (This is the standard convention.)
-		// Not friendly to overwrite in place,
-		// but the callers below don't care.
-		sa.Path[0] = '@'
-	}
-
-	// Assume path ends at NUL.
-	// This is not technically the GNU/Linux semantics for
-	// abstract Unix domain sockets--they are supposed
-	// to be uninterpreted fixed-size binary blobs--but
-	// everyone uses this convention.
 	n := 0
-	for n < len(sa.Path) - 3 && sa.Path[n] != 0 {
+	for n < len(sa.Path) && sa.Path[n] != 0 {
 		n++
 	}
-
 	return n, nil
 }
 
+func (sa *RawSockaddrUnix) adjustAbstract(sl Socklen_t) Socklen_t {
+	return sl
+}
+
 type RawSockaddr struct {
 	Family uint16
-	Data [14]int8
+	Data   [14]int8
 }
 
 // BindToDevice binds the socket associated with fd to device.
diff -Naur gcc-4.8.1.orig/libgo/go/testing/allocs.go gcc-4.8.1/libgo/go/testing/allocs.go
--- gcc-4.8.1.orig/libgo/go/testing/allocs.go	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/go/testing/allocs.go	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,41 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package testing
+
+import (
+	"runtime"
+)
+
+// AllocsPerRun returns the average number of allocations during calls to f.
+//
+// To compute the number of allocations, the function will first be run once as
+// a warm-up.  The average number of allocations over the specified number of
+// runs will then be measured and returned.
+//
+// AllocsPerRun sets GOMAXPROCS to 1 during its measurement and will restore
+// it before returning.
+func AllocsPerRun(runs int, f func()) (avg float64) {
+	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+
+	// Warm up the function
+	f()
+
+	// Measure the starting statistics
+	var memstats runtime.MemStats
+	runtime.ReadMemStats(&memstats)
+	mallocs := 0 - memstats.Mallocs
+
+	// Run the function the specified number of times
+	for i := 0; i < runs; i++ {
+		f()
+	}
+
+	// Read the final statistics
+	runtime.ReadMemStats(&memstats)
+	mallocs += memstats.Mallocs
+
+	// Average the mallocs over the runs (not counting the warm-up)
+	return float64(mallocs) / float64(runs)
+}
diff -Naur gcc-4.8.1.orig/libgo/go/testing/iotest/reader.go gcc-4.8.1/libgo/go/testing/iotest/reader.go
--- gcc-4.8.1.orig/libgo/go/testing/iotest/reader.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/testing/iotest/reader.go	2013-07-16 01:55:04.520470000 -0500
@@ -37,9 +37,11 @@
 	return r.r.Read(p[0 : (len(p)+1)/2])
 }
 
-// DataErrReader returns a Reader that returns the final
-// error with the last data read, instead of by itself with
-// zero bytes of data.
+// DataErrReader changes the way errors are handled by a Reader. Normally, a
+// Reader returns an error (typically EOF) from the first Read call after the
+// last piece of data is read. DataErrReader wraps a Reader and changes its
+// behavior so the final error is returned along with the final data, instead
+// of in the first call after the final data.
 func DataErrReader(r io.Reader) io.Reader { return &dataErrReader{r, nil, make([]byte, 1024)} }
 
 type dataErrReader struct {
diff -Naur gcc-4.8.1.orig/libgo/go/testing/quick/quick.go gcc-4.8.1/libgo/go/testing/quick/quick.go
--- gcc-4.8.1.orig/libgo/go/testing/quick/quick.go	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/testing/quick/quick.go	2013-07-16 01:55:04.520470000 -0500
@@ -140,8 +140,6 @@
 	default:
 		return reflect.Value{}, false
 	}
-
-	return
 }
 
 // A Config structure contains options for running a test.
diff -Naur gcc-4.8.1.orig/libgo/go/testing/testing.go gcc-4.8.1/libgo/go/testing/testing.go
--- gcc-4.8.1.orig/libgo/go/testing/testing.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/testing/testing.go	2013-07-16 01:55:04.520470000 -0500
@@ -10,7 +10,7 @@
 // [a-z]) and serves to identify the test routine.
 // These TestXxx routines should be declared within the package they are testing.
 //
-// Tests may be skipped if not applicable like this:
+// Tests and benchmarks may be skipped if not applicable like this:
 //     func TestTimeConsuming(t *testing.T) {
 //         if testing.Short() {
 //             t.Skip("skipping test in short mode.")
@@ -18,6 +18,8 @@
 //         ...
 //     }
 //
+// Benchmarks
+//
 // Functions of the form
 //     func BenchmarkXxx(*testing.B)
 // are considered benchmarks, and are executed by the "go test" command when
@@ -33,6 +35,7 @@
 //         }
 //     }
 //
+// The benchmark function must run the target code b.N times.
 // The benchmark package will vary b.N until the benchmark function lasts
 // long enough to be timed reliably.  The output
 //     BenchmarkHello    10000000    282 ns/op
@@ -48,8 +51,10 @@
 //         }
 //     }
 //
+// Examples
+//
 // The package also runs and verifies example code. Example functions may
-// include a concluding comment that begins with "Output:" and is compared with
+// include a concluding line comment that begins with "Output:" and is compared with
 // the standard output of the function when the tests are run. (The comparison
 // ignores leading and trailing space.) These are examples of an example:
 //
@@ -129,9 +134,10 @@
 // common holds the elements common between T and B and
 // captures common methods such as Errorf.
 type common struct {
-	mu     sync.RWMutex // guards output and failed
-	output []byte       // Output generated by test or benchmark.
-	failed bool         // Test or benchmark has failed.
+	mu      sync.RWMutex // guards output and failed
+	output  []byte       // Output generated by test or benchmark.
+	failed  bool         // Test or benchmark has failed.
+	skipped bool         // Test of benchmark has been skipped.
 
 	start    time.Time // Time test or benchmark started
 	duration time.Duration
@@ -165,21 +171,17 @@
 		line = 1
 	}
 	buf := new(bytes.Buffer)
+	// Every line is indented at least one tab.
+	buf.WriteByte('\t')
 	fmt.Fprintf(buf, "%s:%d: ", file, line)
-
 	lines := strings.Split(s, "\n")
 	if l := len(lines); l > 1 && lines[l-1] == "" {
 		lines = lines[:l-1]
 	}
 	for i, line := range lines {
 		if i > 0 {
-			buf.WriteByte('\n')
-		}
-		// Every line is indented at least one tab.
-		buf.WriteByte('\t')
-		if i > 0 {
 			// Second and subsequent lines are indented an extra tab.
-			buf.WriteByte('\t')
+			buf.WriteString("\n\t\t")
 		}
 		buf.WriteString(line)
 	}
@@ -193,7 +195,6 @@
 	common
 	name          string    // Name of test.
 	startParallel chan bool // Parallel tests will wait on this.
-	skipped       bool      // Test has been skipped.
 }
 
 // Fail marks the function as having failed but continues execution.
@@ -212,6 +213,10 @@
 
 // FailNow marks the function as having failed and stops its execution.
 // Execution will continue at the next test or benchmark.
+// FailNow must be called from the goroutine running the
+// test or benchmark function, not from other goroutines
+// created during the test. Calling FailNow does not stop
+// those other goroutines.
 func (c *common) FailNow() {
 	c.Fail()
 
@@ -244,40 +249,77 @@
 	c.output = append(c.output, decorate(s)...)
 }
 
-// Log formats its arguments using default formatting, analogous to Println(),
-// and records the text in the error log.
+// Log formats its arguments using default formatting, analogous to Println,
+// and records the text in the error log. The text will be printed only if
+// the test fails or the -test.v flag is set.
 func (c *common) Log(args ...interface{}) { c.log(fmt.Sprintln(args...)) }
 
-// Logf formats its arguments according to the format, analogous to Printf(),
-// and records the text in the error log.
+// Logf formats its arguments according to the format, analogous to Printf,
+// and records the text in the error log. The text will be printed only if
+// the test fails or the -test.v flag is set.
 func (c *common) Logf(format string, args ...interface{}) { c.log(fmt.Sprintf(format, args...)) }
 
-// Error is equivalent to Log() followed by Fail().
+// Error is equivalent to Log followed by Fail.
 func (c *common) Error(args ...interface{}) {
 	c.log(fmt.Sprintln(args...))
 	c.Fail()
 }
 
-// Errorf is equivalent to Logf() followed by Fail().
+// Errorf is equivalent to Logf followed by Fail.
 func (c *common) Errorf(format string, args ...interface{}) {
 	c.log(fmt.Sprintf(format, args...))
 	c.Fail()
 }
 
-// Fatal is equivalent to Log() followed by FailNow().
+// Fatal is equivalent to Log followed by FailNow.
 func (c *common) Fatal(args ...interface{}) {
 	c.log(fmt.Sprintln(args...))
 	c.FailNow()
 }
 
-// Fatalf is equivalent to Logf() followed by FailNow().
+// Fatalf is equivalent to Logf followed by FailNow.
 func (c *common) Fatalf(format string, args ...interface{}) {
 	c.log(fmt.Sprintf(format, args...))
 	c.FailNow()
 }
 
+// Skip is equivalent to Log followed by SkipNow.
+func (c *common) Skip(args ...interface{}) {
+	c.log(fmt.Sprintln(args...))
+	c.SkipNow()
+}
+
+// Skipf is equivalent to Logf followed by SkipNow.
+func (c *common) Skipf(format string, args ...interface{}) {
+	c.log(fmt.Sprintf(format, args...))
+	c.SkipNow()
+}
+
+// SkipNow marks the test as having been skipped and stops its execution.
+// Execution will continue at the next test or benchmark. See also FailNow.
+// SkipNow must be called from the goroutine running the test, not from
+// other goroutines created during the test. Calling SkipNow does not stop
+// those other goroutines.
+func (c *common) SkipNow() {
+	c.skip()
+	runtime.Goexit()
+}
+
+func (c *common) skip() {
+	c.mu.Lock()
+	defer c.mu.Unlock()
+	c.skipped = true
+}
+
+// Skipped reports whether the test was skipped.
+func (c *common) Skipped() bool {
+	c.mu.RLock()
+	defer c.mu.RUnlock()
+	return c.skipped
+}
+
 // Parallel signals that this test is to be run in parallel with (and only with)
-// other parallel tests in this CPU group.
+// other parallel tests.
 func (t *T) Parallel() {
 	t.signal <- (*T)(nil) // Release main testing loop
 	<-t.startParallel     // Wait for serial tests to finish
@@ -301,6 +343,7 @@
 		t.duration = time.Now().Sub(t.start)
 		// If the test panicked, print any test output before dying.
 		if err := recover(); err != nil {
+			t.Fail()
 			t.report()
 			panic(err)
 		}
@@ -345,38 +388,6 @@
 	}
 }
 
-// Skip is equivalent to Log() followed by SkipNow().
-func (t *T) Skip(args ...interface{}) {
-	t.log(fmt.Sprintln(args...))
-	t.SkipNow()
-}
-
-// Skipf is equivalent to Logf() followed by SkipNow().
-func (t *T) Skipf(format string, args ...interface{}) {
-	t.log(fmt.Sprintf(format, args...))
-	t.SkipNow()
-}
-
-// SkipNow marks the function as having been skipped and stops its execution.
-// Execution will continue at the next test or benchmark. See also, t.FailNow.
-func (t *T) SkipNow() {
-	t.skip()
-	runtime.Goexit()
-}
-
-func (t *T) skip() {
-	t.mu.Lock()
-	defer t.mu.Unlock()
-	t.skipped = true
-}
-
-// Skipped reports whether the function was skipped.
-func (t *T) Skipped() bool {
-	t.mu.RLock()
-	defer t.mu.RUnlock()
-	return t.skipped
-}
-
 func RunTests(matchString func(pat, str string) (bool, error), tests []InternalTest) (ok bool) {
 	ok = true
 	if len(tests) == 0 && !haveExamples {
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec.go gcc-4.8.1/libgo/go/text/template/exec.go
--- gcc-4.8.1.orig/libgo/go/text/template/exec.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/text/template/exec.go	2013-07-16 01:55:04.520470000 -0500
@@ -5,6 +5,7 @@
 package template
 
 import (
+	"bytes"
 	"fmt"
 	"io"
 	"reflect"
@@ -125,8 +126,23 @@
 		wr:   wr,
 		vars: []variable{{"$", value}},
 	}
+	t.init()
 	if t.Tree == nil || t.Root == nil {
-		state.errorf("%q is an incomplete or empty template", t.name)
+		var b bytes.Buffer
+		for name, tmpl := range t.tmpl {
+			if tmpl.Tree == nil || tmpl.Root == nil {
+				continue
+			}
+			if b.Len() > 0 {
+				b.WriteString(", ")
+			}
+			fmt.Fprintf(&b, "%q", name)
+		}
+		var s string
+		if b.Len() > 0 {
+			s = "; defined templates are: " + b.String()
+		}
+		state.errorf("%q is an incomplete or empty template%s", t.Name(), s)
 	}
 	state.walk(value, t.Root)
 	return
@@ -603,6 +619,8 @@
 		return s.validateType(s.evalVariableNode(dot, arg, nil, zero), typ)
 	case *parse.PipeNode:
 		return s.validateType(s.evalPipeline(dot, arg), typ)
+	case *parse.IdentifierNode:
+		return s.evalFunction(dot, arg, arg, nil, zero)
 	}
 	switch typ.Kind() {
 	case reflect.Bool:
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/exec_test.go gcc-4.8.1/libgo/go/text/template/exec_test.go
--- gcc-4.8.1.orig/libgo/go/text/template/exec_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/text/template/exec_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -499,6 +499,8 @@
 	{"bug8b", "{{4|dddArg 3}}", "", tVal, false},
 	// A bug was introduced that broke map lookups for lower-case names.
 	{"bug9", "{{.cause}}", "neglect", map[string]string{"cause": "neglect"}, true},
+	// Field chain starting with function did not work.
+	{"bug10", "{{mapOfThree.three}}-{{(mapOfThree).three}}", "3-3", 0, true},
 }
 
 func zeroArgs() string {
@@ -560,19 +562,24 @@
 	return s.String()
 }
 
+func mapOfThree() interface{} {
+	return map[string]int{"three": 3}
+}
+
 func testExecute(execTests []execTest, template *Template, t *testing.T) {
 	b := new(bytes.Buffer)
 	funcs := FuncMap{
-		"add":      add,
-		"count":    count,
-		"dddArg":   dddArg,
-		"echo":     echo,
-		"makemap":  makemap,
-		"oneArg":   oneArg,
-		"typeOf":   typeOf,
-		"vfunc":    vfunc,
-		"zeroArgs": zeroArgs,
-		"stringer": stringer,
+		"add":        add,
+		"count":      count,
+		"dddArg":     dddArg,
+		"echo":       echo,
+		"makemap":    makemap,
+		"mapOfThree": mapOfThree,
+		"oneArg":     oneArg,
+		"stringer":   stringer,
+		"typeOf":     typeOf,
+		"vfunc":      vfunc,
+		"zeroArgs":   zeroArgs,
 	}
 	for _, test := range execTests {
 		var tmpl *Template
@@ -816,3 +823,40 @@
 	// This is issue 3872.
 	_ = New("Name").Templates()
 }
+
+const testTemplates = `{{define "one"}}one{{end}}{{define "two"}}two{{end}}`
+
+func TestMessageForExecuteEmpty(t *testing.T) {
+	// Test a truly empty template.
+	tmpl := New("empty")
+	var b bytes.Buffer
+	err := tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected initial error")
+	}
+	got := err.Error()
+	want := `template: empty: "empty" is an incomplete or empty template`
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+	// Add a non-empty template to check that the error is helpful.
+	tests, err := New("").Parse(testTemplates)
+	if err != nil {
+		t.Fatal(err)
+	}
+	tmpl.AddParseTree("secondary", tests.Tree)
+	err = tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected second error")
+	}
+	got = err.Error()
+	want = `template: empty: "empty" is an incomplete or empty template; defined templates are: "secondary"`
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+	// Make sure we can execute the secondary.
+	err = tmpl.ExecuteTemplate(&b, "secondary", 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/funcs.go gcc-4.8.1/libgo/go/text/template/funcs.go
--- gcc-4.8.1.orig/libgo/go/text/template/funcs.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/text/template/funcs.go	2013-07-16 01:55:04.520470000 -0500
@@ -18,7 +18,7 @@
 // FuncMap is the type of the map defining the mapping from names to functions.
 // Each function must have either a single return value, or two return values of
 // which the second has type error. In that case, if the second (error)
-// argument evaluates to non-nil during execution, execution terminates and
+// return value evaluates to non-nil during execution, execution terminates and
 // Execute returns that error.
 type FuncMap map[string]interface{}
 
diff -Naur gcc-4.8.1.orig/libgo/go/text/template/parse/parse.go gcc-4.8.1/libgo/go/text/template/parse/parse.go
--- gcc-4.8.1.orig/libgo/go/text/template/parse/parse.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/text/template/parse/parse.go	2013-07-16 01:55:04.520470000 -0500
@@ -429,7 +429,6 @@
 			t.unexpected(token, context)
 		}
 	}
-	return
 }
 
 func (t *Tree) parseControl(context string) (pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) {
@@ -445,7 +444,6 @@
 		if next.Type() != nodeEnd {
 			t.errorf("expected end; found %s", next)
 		}
-		elseList = elseList
 	}
 	return pipe.Position(), line, pipe, list, elseList
 }
diff -Naur gcc-4.8.1.orig/libgo/go/time/example_test.go gcc-4.8.1/libgo/go/time/example_test.go
--- gcc-4.8.1.orig/libgo/go/time/example_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/time/example_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -58,15 +58,52 @@
 }
 
 func ExampleTime_Format() {
-	const format = "Jan 2, 2006 at 3:04pm (MST)"
+	// layout shows by example how the reference time should be represented.
+	const layout = "Jan 2, 2006 at 3:04pm (MST)"
 	t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.Local)
-	fmt.Println(t.Format(format))
-	fmt.Println(t.UTC().Format(format))
+	fmt.Println(t.Format(layout))
+	fmt.Println(t.UTC().Format(layout))
 	// Output:
 	// Nov 10, 2009 at 3:00pm (PST)
 	// Nov 10, 2009 at 11:00pm (UTC)
 }
 
+func ExampleParse() {
+	// longForm shows by example how the reference time would be represented in
+	// the desired layout.
+	const longForm = "Jan 2, 2006 at 3:04pm (MST)"
+	t, _ := time.Parse(longForm, "Feb 3, 2013 at 7:54pm (PST)")
+	fmt.Println(t)
+
+	// shortForm is another way the reference time would be represented
+	// in the desired layout; it has no time zone present.
+	// Note: without explicit zone, returns time in UTC.
+	const shortForm = "2006-Jan-02"
+	t, _ = time.Parse(shortForm, "2013-Feb-03")
+	fmt.Println(t)
+
+	// Output:
+	// 2013-02-03 19:54:00 -0800 PST
+	// 2013-02-03 00:00:00 +0000 UTC
+}
+
+func ExampleParseInLocation() {
+	loc, _ := time.LoadLocation("Europe/Berlin")
+
+	const longForm = "Jan 2, 2006 at 3:04pm (MST)"
+	t, _ := time.ParseInLocation(longForm, "Jul 9, 2012 at 5:02am (CEST)", loc)
+	fmt.Println(t)
+
+	// Note: without explicit zone, returns time in given location.
+	const shortForm = "2006-Jan-02"
+	t, _ = time.ParseInLocation(shortForm, "2012-Jul-09", loc)
+	fmt.Println(t)
+
+	// Output:
+	// 2012-07-09 05:02:00 +0200 CEST
+	// 2012-07-09 00:00:00 +0200 CEST
+}
+
 func ExampleTime_Round() {
 	t := time.Date(0, 0, 0, 12, 15, 30, 918273645, time.UTC)
 	round := []time.Duration{
diff -Naur gcc-4.8.1.orig/libgo/go/time/format.go gcc-4.8.1/libgo/go/time/format.go
--- gcc-4.8.1.orig/libgo/go/time/format.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/time/format.go	2013-07-16 01:55:04.520470000 -0500
@@ -6,15 +6,17 @@
 
 import "errors"
 
-// These are predefined layouts for use in Time.Format.
-// The standard time used in the layouts is:
+// These are predefined layouts for use in Time.Format and Time.Parse.
+// The reference time used in the layouts is:
 //	Mon Jan 2 15:04:05 MST 2006
 // which is Unix time 1136239445. Since MST is GMT-0700,
-// the standard time can be thought of as
+// the reference time can be thought of as
 //	01/02 03:04:05PM '06 -0700
-// To define your own format, write down what the standard time would look
+// To define your own format, write down what the reference time would look
 // like formatted your way; see the values of constants like ANSIC,
-// StampMicro or Kitchen for examples.
+// StampMicro or Kitchen for examples. The model is to demonstrate what the
+// reference time looks like so that the Format and Parse methods can apply
+// the same transformation to a general time value.
 //
 // Within the format string, an underscore _ represents a space that may be
 // replaced by a digit if the following number (a day) has two digits; for
@@ -367,13 +369,16 @@
 }
 
 // Format returns a textual representation of the time value formatted
-// according to layout.  The layout defines the format by showing the
-// representation of the standard time,
+// according to layout, which defines the format by showing how the reference
+// time,
 //	Mon Jan 2 15:04:05 -0700 MST 2006
-// which is then used to describe the time to be formatted. Predefined
-// layouts ANSIC, UnixDate, RFC3339 and others describe standard
-// representations. For more information about the formats and the
-// definition of the standard time, see the documentation for ANSIC.
+// would be displayed if it were the value; it serves as an example of the
+// desired output. The same display rules will then be applied to the time
+// value.
+// Predefined layouts ANSIC, UnixDate, RFC3339 and others describe standard
+// and convenient representations of the reference time. For more information
+// about the formats and the definition of the reference time, see the
+// documentation for ANSIC and the other constants defined by this package.
 func (t Time) Format(layout string) string {
 	var (
 		name, offset, abs = t.locabs()
@@ -611,14 +616,14 @@
 	for len(prefix) > 0 {
 		if prefix[0] == ' ' {
 			if len(value) > 0 && value[0] != ' ' {
-				return "", errBad
+				return value, errBad
 			}
 			prefix = cutspace(prefix)
 			value = cutspace(value)
 			continue
 		}
 		if len(value) == 0 || value[0] != prefix[0] {
-			return "", errBad
+			return value, errBad
 		}
 		prefix = prefix[1:]
 		value = value[1:]
@@ -627,13 +632,15 @@
 }
 
 // Parse parses a formatted string and returns the time value it represents.
-// The layout defines the format by showing the representation of the
-// standard time,
+// The layout  defines the format by showing how the reference time,
 //	Mon Jan 2 15:04:05 -0700 MST 2006
-// which is then used to describe the string to be parsed. Predefined layouts
-// ANSIC, UnixDate, RFC3339 and others describe standard representations. For
-// more information about the formats and the definition of the standard
-// time, see the documentation for ANSIC.
+// would be interpreted if it were the value; it serves as an example of
+// the input format. The same interpretation will then be made to the
+// input string.
+// Predefined layouts ANSIC, UnixDate, RFC3339 and others describe standard
+// and convenient representations of the reference time. For more information
+// about the formats and the definition of the reference time, see the
+// documentation for ANSIC and the other constants defined by this package.
 //
 // Elements omitted from the value are assumed to be zero or, when
 // zero is impossible, one, so parsing "3:04pm" returns the time
@@ -641,7 +648,37 @@
 // 0, this time is before the zero Time).
 // Years must be in the range 0000..9999. The day of the week is checked
 // for syntax but it is otherwise ignored.
+//
+// In the absence of a time zone indicator, Parse returns a time in UTC.
+//
+// When parsing a time with a zone offset like -0700, if the offset corresponds
+// to a time zone used by the current location (Local), then Parse uses that
+// location and zone in the returned time. Otherwise it records the time as
+// being in a fabricated location with time fixed at the given zone offset.
+//
+// When parsing a time with a zone abbreviation like MST, if the zone abbreviation
+// has a defined offset in the current location, then that offset is used.
+// The zone abbreviation "UTC" is recognized as UTC regardless of location.
+// If the zone abbreviation is unknown, Parse records the time as being
+// in a fabricated location with the given zone abbreviation and a zero offset.
+// This choice means that such a time can be parse and reformatted with the
+// same layout losslessly, but the exact instant used in the representation will
+// differ by the actual zone offset. To avoid such problems, prefer time layouts
+// that use a numeric zone offset, or use ParseInLocation.
 func Parse(layout, value string) (Time, error) {
+	return parse(layout, value, UTC, Local)
+}
+
+// ParseInLocation is like Parse but differs in two important ways.
+// First, in the absence of time zone information, Parse interprets a time as UTC;
+// ParseInLocation interprets the time as in the given location.
+// Second, when given a zone offset or abbreviation, Parse tries to match it
+// against the Local location; ParseInLocation uses the given location.
+func ParseInLocation(layout, value string, loc *Location) (Time, error) {
+	return parse(layout, value, loc, loc)
+}
+
+func parse(layout, value string, defaultLocation, local *Location) (Time, error) {
 	alayout, avalue := layout, value
 	rangeErrString := "" // set if a value is out of range
 	amSet := false       // do we need to subtract 12 from the hour for midnight?
@@ -892,20 +929,19 @@
 		hour = 0
 	}
 
-	// TODO: be more aggressive checking day?
 	if z != nil {
 		return Date(year, Month(month), day, hour, min, sec, nsec, z), nil
 	}
 
-	t := Date(year, Month(month), day, hour, min, sec, nsec, UTC)
 	if zoneOffset != -1 {
+		t := Date(year, Month(month), day, hour, min, sec, nsec, UTC)
 		t.sec -= int64(zoneOffset)
 
 		// Look for local zone with the given offset.
 		// If that zone was in effect at the given time, use it.
-		name, offset, _, _, _ := Local.lookup(t.sec + internalToUnix)
+		name, offset, _, _, _ := local.lookup(t.sec + internalToUnix)
 		if offset == zoneOffset && (zoneName == "" || name == zoneName) {
-			t.loc = Local
+			t.loc = local
 			return t, nil
 		}
 
@@ -915,16 +951,14 @@
 	}
 
 	if zoneName != "" {
+		t := Date(year, Month(month), day, hour, min, sec, nsec, UTC)
 		// Look for local zone with the given offset.
 		// If that zone was in effect at the given time, use it.
-		offset, _, ok := Local.lookupName(zoneName)
+		offset, _, ok := local.lookupName(zoneName, t.sec+internalToUnix)
 		if ok {
-			name, off, _, _, _ := Local.lookup(t.sec + internalToUnix - int64(offset))
-			if name == zoneName && off == offset {
-				t.sec -= int64(offset)
-				t.loc = Local
-				return t, nil
-			}
+			t.sec -= int64(offset)
+			t.loc = local
+			return t, nil
 		}
 
 		// Otherwise, create fake zone with unknown offset.
@@ -932,8 +966,8 @@
 		return t, nil
 	}
 
-	// Otherwise, fall back to UTC.
-	return t, nil
+	// Otherwise, fall back to default.
+	return Date(year, Month(month), day, hour, min, sec, nsec, defaultLocation), nil
 }
 
 func parseNanoseconds(value string, nbytes int) (ns int, rangeErrString string, err error) {
diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep.go gcc-4.8.1/libgo/go/time/sleep.go
--- gcc-4.8.1.orig/libgo/go/time/sleep.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/time/sleep.go	2013-07-16 01:55:04.520470000 -0500
@@ -18,10 +18,25 @@
 	i      int32
 	when   int64
 	period int64
-	f      func(int64, interface{})
+	f      func(int64, interface{}) // NOTE: must not be closure
 	arg    interface{}
 }
 
+// when is a helper function for setting the 'when' field of a runtimeTimer.
+// It returns what the time will be, in nanoseconds, Duration d in the future.
+// If d is negative, it is ignored.  If the returned value would be less than
+// zero because of an overflow, MaxInt64 is returned.
+func when(d Duration) int64 {
+	if d <= 0 {
+		return nano()
+	}
+	t := nano() + int64(d)
+	if t < 0 {
+		t = 1<<63 - 1 // math.MaxInt64
+	}
+	return t
+}
+
 func startTimer(*runtimeTimer)
 func stopTimer(*runtimeTimer) bool
 
@@ -49,7 +64,7 @@
 	t := &Timer{
 		C: c,
 		r: runtimeTimer{
-			when: nano() + int64(d),
+			when: when(d),
 			f:    sendTime,
 			arg:  c,
 		},
@@ -62,9 +77,9 @@
 // It returns true if the timer had been active, false if the timer had
 // expired or been stopped.
 func (t *Timer) Reset(d Duration) bool {
-	when := nano() + int64(d)
+	w := when(d)
 	active := stopTimer(&t.r)
-	t.r.when = when
+	t.r.when = w
 	startTimer(&t.r)
 	return active
 }
@@ -94,7 +109,7 @@
 func AfterFunc(d Duration, f func()) *Timer {
 	t := &Timer{
 		r: runtimeTimer{
-			when: nano() + int64(d),
+			when: when(d),
 			f:    goFunc,
 			arg:  f,
 		},
diff -Naur gcc-4.8.1.orig/libgo/go/time/sleep_test.go gcc-4.8.1/libgo/go/time/sleep_test.go
--- gcc-4.8.1.orig/libgo/go/time/sleep_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/time/sleep_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -60,10 +60,11 @@
 			Sleep(Nanosecond)
 		}
 	}()
-	c := Tick(1)
+	ticker := NewTicker(1)
 	for i := 0; i < 100; i++ {
-		<-c
+		<-ticker.C
 	}
+	ticker.Stop()
 	atomic.StoreUint32(&stop, 1)
 }
 
@@ -294,3 +295,23 @@
 	}
 	t.Error(err)
 }
+
+// Test that sleeping for an interval so large it overflows does not
+// result in a short sleep duration.
+func TestOverflowSleep(t *testing.T) {
+	const timeout = 25 * Millisecond
+	const big = Duration(int64(1<<63 - 1))
+	select {
+	case <-After(big):
+		t.Fatalf("big timeout fired")
+	case <-After(timeout):
+		// OK
+	}
+	const neg = Duration(-1 << 63)
+	select {
+	case <-After(neg):
+		// OK
+	case <-After(timeout):
+		t.Fatalf("negative timeout didn't fire")
+	}
+}
diff -Naur gcc-4.8.1.orig/libgo/go/time/time_test.go gcc-4.8.1/libgo/go/time/time_test.go
--- gcc-4.8.1.orig/libgo/go/time/time_test.go	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/go/time/time_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -479,6 +479,7 @@
 	{"RubyDate", RubyDate, "Thu Feb 04 21:00:57 -0800 2010", true, true, 1, 0},
 	{"RFC850", RFC850, "Thursday, 04-Feb-10 21:00:57 PST", true, true, 1, 0},
 	{"RFC1123", RFC1123, "Thu, 04 Feb 2010 21:00:57 PST", true, true, 1, 0},
+	{"RFC1123", RFC1123, "Thu, 04 Feb 2010 22:00:57 PDT", true, true, 1, 0},
 	{"RFC1123Z", RFC1123Z, "Thu, 04 Feb 2010 21:00:57 -0800", true, true, 1, 0},
 	{"RFC3339", RFC3339, "2010-02-04T21:00:57-08:00", true, false, 1, 0},
 	{"custom: \"2006-01-02 15:04:05-07\"", "2006-01-02 15:04:05-07", "2010-02-04 21:00:57-08", true, false, 1, 0},
@@ -534,6 +535,42 @@
 	}
 }
 
+func TestParseInSydney(t *testing.T) {
+	loc, err := LoadLocation("Australia/Sydney")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// Check that Parse (and ParseInLocation) understand
+	// that Feb EST and Aug EST are different time zones in Sydney
+	// even though both are called EST.
+	t1, err := ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 EST", loc)
+	if err != nil {
+		t.Fatal(err)
+	}
+	t2 := Date(2013, February, 1, 00, 00, 00, 0, loc)
+	if t1 != t2 {
+		t.Fatalf("ParseInLocation(Feb 01 2013 EST, Sydney) = %v, want %v", t1, t2)
+	}
+	_, offset := t1.Zone()
+	if offset != 11*60*60 {
+		t.Fatalf("ParseInLocation(Feb 01 2013 EST, Sydney).Zone = _, %d, want _, %d", offset, 11*60*60)
+	}
+
+	t1, err = ParseInLocation("Jan 02 2006 MST", "Aug 01 2013 EST", loc)
+	if err != nil {
+		t.Fatal(err)
+	}
+	t2 = Date(2013, August, 1, 00, 00, 00, 0, loc)
+	if t1 != t2 {
+		t.Fatalf("ParseInLocation(Aug 01 2013 EST, Sydney) = %v, want %v", t1, t2)
+	}
+	_, offset = t1.Zone()
+	if offset != 10*60*60 {
+		t.Fatalf("ParseInLocation(Aug 01 2013 EST, Sydney).Zone = _, %d, want _, %d", offset, 10*60*60)
+	}
+}
+
 var rubyTests = []ParseTest{
 	{"RubyDate", RubyDate, "Thu Feb 04 21:00:57 -0800 2010", true, true, 1, 0},
 	// Ignore the time zone in the test. If it parses, it'll be OK.
@@ -640,6 +677,11 @@
 	// issue 4502. StampNano requires exactly 9 digits of precision.
 	{StampNano, "Dec  7 11:22:01.000000", `cannot parse ".000000" as ".000000000"`},
 	{StampNano, "Dec  7 11:22:01.0000000000", "extra text: 0"},
+	// issue 4493. Helpful errors.
+	{RFC3339, "2006-01-02T15:04:05Z07:00", `parsing time "2006-01-02T15:04:05Z07:00": extra text: 07:00`},
+	{RFC3339, "2006-01-02T15:04_abc", `parsing time "2006-01-02T15:04_abc" as "2006-01-02T15:04:05Z07:00": cannot parse "_abc" as ":"`},
+	{RFC3339, "2006-01-02T15:04:05_abc", `parsing time "2006-01-02T15:04:05_abc" as "2006-01-02T15:04:05Z07:00": cannot parse "_abc" as "Z07:00"`},
+	{RFC3339, "2006-01-02T15:04:05Z_abc", `parsing time "2006-01-02T15:04:05Z_abc": extra text: _abc`},
 }
 
 func TestParseErrors(t *testing.T) {
@@ -1258,23 +1300,33 @@
 }
 
 func TestCountMallocs(t *testing.T) {
-	defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+	if runtime.GOMAXPROCS(0) > 1 {
+		t.Skip("skipping; GOMAXPROCS>1")
+	}
 	for _, mt := range mallocTest {
-		const N = 100
-		memstats := new(runtime.MemStats)
-		runtime.ReadMemStats(memstats)
-		mallocs := 0 - memstats.Mallocs
-		for i := 0; i < N; i++ {
-			mt.fn()
-		}
-		runtime.ReadMemStats(memstats)
-		mallocs += memstats.Mallocs
-		if mallocs/N > uint64(mt.count) {
-			t.Errorf("%s: expected %d mallocs, got %d", mt.desc, mt.count, mallocs/N)
+		allocs := int(testing.AllocsPerRun(100, mt.fn))
+		if allocs > mt.count {
+			t.Errorf("%s: %d allocs, want %d", mt.desc, allocs, mt.count)
 		}
 	}
 }
 
+func TestLoadFixed(t *testing.T) {
+	// Issue 4064: handle locations without any zone transitions.
+	loc, err := LoadLocation("Etc/GMT+1")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// The tzdata name Etc/GMT+1 uses "east is negative",
+	// but Go and most other systems use "east is positive".
+	// So GMT+1 corresponds to -3600 in the Go zone, not +3600.
+	name, offset := Now().In(loc).Zone()
+	if name != "GMT+1" || offset != -1*60*60 {
+		t.Errorf("Now().In(loc).Zone() = %q, %d, want %q, %d", name, offset, "GMT+1", -1*60*60)
+	}
+}
+
 func BenchmarkNow(b *testing.B) {
 	for i := 0; i < b.N; i++ {
 		t = Now()
diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo.go gcc-4.8.1/libgo/go/time/zoneinfo.go
--- gcc-4.8.1.orig/libgo/go/time/zoneinfo.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/time/zoneinfo.go	2013-07-16 01:55:04.520470000 -0500
@@ -145,15 +145,36 @@
 }
 
 // lookupName returns information about the time zone with
-// the given name (such as "EST").
-func (l *Location) lookupName(name string) (offset int, isDST bool, ok bool) {
+// the given name (such as "EST") at the given pseudo-Unix time
+// (what the given time of day would be in UTC).
+func (l *Location) lookupName(name string, unix int64) (offset int, isDST bool, ok bool) {
 	l = l.get()
+
+	// First try for a zone with the right name that was actually
+	// in effect at the given time. (In Sydney, Australia, both standard
+	// and daylight-savings time are abbreviated "EST". Using the
+	// offset helps us pick the right one for the given time.
+	// It's not perfect: during the backward transition we might pick
+	// either one.)
+	for i := range l.zone {
+		zone := &l.zone[i]
+		if zone.name == name {
+			nam, offset, isDST, _, _ := l.lookup(unix - int64(zone.offset))
+			if nam == zone.name {
+				return offset, isDST, true
+			}
+		}
+	}
+
+	// Otherwise fall back to an ordinary name match.
 	for i := range l.zone {
 		zone := &l.zone[i]
 		if zone.name == name {
 			return zone.offset, zone.isDST, true
 		}
 	}
+
+	// Otherwise, give up.
 	return
 }
 
diff -Naur gcc-4.8.1.orig/libgo/go/time/zoneinfo_read.go gcc-4.8.1/libgo/go/time/zoneinfo_read.go
--- gcc-4.8.1.orig/libgo/go/time/zoneinfo_read.go	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/go/time/zoneinfo_read.go	2013-07-16 01:55:04.520470000 -0500
@@ -174,6 +174,12 @@
 		}
 	}
 
+	if len(tx) == 0 {
+		// Build fake transition to cover all time.
+		// This happens in fixed locations like "Etc/GMT0".
+		tx = append(tx, zoneTrans{when: -1 << 63, index: 0})
+	}
+
 	// Committed to succeed.
 	l = &Location{zone: zone, tx: tx}
 
diff -Naur gcc-4.8.1.orig/libgo/go/unicode/letter.go gcc-4.8.1/libgo/go/unicode/letter.go
--- gcc-4.8.1.orig/libgo/go/unicode/letter.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/unicode/letter.go	2013-07-16 01:55:04.520470000 -0500
@@ -151,7 +151,7 @@
 	return false
 }
 
-// Is tests whether rune is in the specified table of ranges.
+// Is reports whether the rune is in the specified table of ranges.
 func Is(rangeTab *RangeTable, r rune) bool {
 	r16 := rangeTab.R16
 	if len(r16) > 0 && r <= rune(r16[len(r16)-1].Hi) {
diff -Naur gcc-4.8.1.orig/libgo/go/unicode/tables.go gcc-4.8.1/libgo/go/unicode/tables.go
--- gcc-4.8.1.orig/libgo/go/unicode/tables.go	2012-11-21 01:03:38.000000000 -0600
+++ gcc-4.8.1/libgo/go/unicode/tables.go	2013-07-16 01:55:04.520470000 -0500
@@ -2864,7 +2864,7 @@
 	Lo     = _Lo // Lo is the set of Unicode characters in category Lo.
 	Lower  = _Ll // Lower is the set of Unicode lower case letters.
 	Ll     = _Ll // Ll is the set of Unicode characters in category Ll.
-	Mark   = _M  // Mark/M is the set of Unicode mark characters, category  M.
+	Mark   = _M  // Mark/M is the set of Unicode mark characters, category M.
 	M      = _M
 	Mc     = _Mc // Mc is the set of Unicode characters in category Mc.
 	Me     = _Me // Me is the set of Unicode characters in category Me.
diff -Naur gcc-4.8.1.orig/libgo/go/unicode/utf8/utf8_test.go gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go
--- gcc-4.8.1.orig/libgo/go/unicode/utf8/utf8_test.go	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/go/unicode/utf8/utf8_test.go	2013-07-16 01:55:04.520470000 -0500
@@ -124,7 +124,7 @@
 		s := m.str
 		r, size = DecodeRuneInString(s)
 		if r != m.r || size != len(b) {
-			t.Errorf("DecodeRune(%q) = %#04x, %d want %#04x, %d", s, r, size, m.r, len(b))
+			t.Errorf("DecodeRuneInString(%q) = %#04x, %d want %#04x, %d", s, r, size, m.r, len(b))
 		}
 
 		// there's an extra byte that bytes left behind - make sure trailing byte works
@@ -164,7 +164,7 @@
 			t.Errorf("DecodeRune(%q) = %#04x, %d want %#04x, %d", b, r, size, RuneError, 1)
 		}
 		s = string(b)
-		r, size = DecodeRune(b)
+		r, size = DecodeRuneInString(s)
 		if r != RuneError || size != 1 {
 			t.Errorf("DecodeRuneInString(%q) = %#04x, %d want %#04x, %d", s, r, size, RuneError, 1)
 		}
@@ -182,7 +182,7 @@
 		s := m.str
 		r, size = DecodeRuneInString(s)
 		if r != RuneError || size != 1 {
-			t.Errorf("DecodeRune(%q) = %x, %d want %x, %d", b, r, size, RuneError, 1)
+			t.Errorf("DecodeRuneInString(%q) = %x, %d want %x, %d", b, r, size, RuneError, 1)
 		}
 	}
 }
diff -Naur gcc-4.8.1.orig/libgo/Makefile.am gcc-4.8.1/libgo/Makefile.am
--- gcc-4.8.1.orig/libgo/Makefile.am	2013-02-20 14:04:36.000000000 -0600
+++ gcc-4.8.1/libgo/Makefile.am	2013-07-16 01:55:04.520470000 -0500
@@ -211,40 +211,11 @@
 	encoding/pem.gox \
 	encoding/xml.gox
 
-if LIBGO_IS_LINUX
-# exp_inotify_gox = exp/inotify.gox
-exp_inotify_gox =
-else
-exp_inotify_gox =
-endif
-
 toolexeclibgoexpdir = $(toolexeclibgodir)/exp
 
 toolexeclibgoexp_DATA = \
-	exp/cookiejar.gox \
-	exp/ebnf.gox \
-	exp/html.gox \
-	$(exp_inotify_gox) \
-	exp/norm.gox \
 	exp/proxy.gox \
-	exp/ssa.gox \
-	exp/terminal.gox \
-	exp/utf8string.gox
-
-toolexeclibgoexphtmldir = $(toolexeclibgoexpdir)/html
-
-toolexeclibgoexphtml_DATA = \
-	exp/html/atom.gox
-
-toolexeclibgoexplocaledir = $(toolexeclibgoexpdir)/locale
-
-toolexeclibgoexplocale_DATA = \
-	exp/locale/collate.gox
-
-toolexeclibgoexplocalecollatedir = $(toolexeclibgoexplocaledir)/collate
-
-toolexeclibgoexplocalecollate_DATA = \
-	exp/locale/collate/build.gox
+	exp/terminal.gox
 
 toolexeclibgogodir = $(toolexeclibgodir)/go
 
@@ -256,8 +227,7 @@
 	go/parser.gox \
 	go/printer.gox \
 	go/scanner.gox \
-	go/token.gox \
-	go/types.gox
+	go/token.gox
 
 toolexeclibgohashdir = $(toolexeclibgodir)/hash
 
@@ -322,6 +292,7 @@
 
 toolexeclibgonethttp_DATA = \
 	net/http/cgi.gox \
+	net/http/cookiejar.gox \
 	net/http/fcgi.gox \
 	net/http/httptest.gox \
 	net/http/httputil.gox \
@@ -335,7 +306,6 @@
 toolexeclibgoolddir = $(toolexeclibgodir)/old
 
 toolexeclibgoold_DATA = \
-	old/netchan.gox \
 	old/regexp.gox \
 	old/template.gox
 
@@ -435,6 +405,16 @@
 endif
 endif
 
+if LIBGO_IS_LINUX
+runtime_netpoll_files = netpoll.c runtime/netpoll_epoll.c
+else
+if LIBGO_IS_DARWIN
+runtime_netpoll_files = netpoll.c runtime/netpoll_kqueue.c
+else
+runtime_netpoll_files = runtime/netpoll_stub.c
+endif
+endif
+
 runtime_files = \
 	runtime/go-append.c \
 	runtime/go-assert.c \
@@ -487,7 +467,6 @@
 	runtime/go-strplus.c \
 	runtime/go-strslice.c \
 	runtime/go-traceback.c \
-	runtime/go-trampoline.c \
 	runtime/go-type-complex.c \
 	runtime/go-type-eface.c \
 	runtime/go-type-error.c \
@@ -514,6 +493,7 @@
 	runtime/mgc0.c \
 	runtime/mheap.c \
 	runtime/msize.c \
+	$(runtime_netpoll_files) \
 	runtime/panic.c \
 	runtime/parfor.c \
 	runtime/print.c \
@@ -549,6 +529,10 @@
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
 
+netpoll.c: $(srcdir)/runtime/netpoll.goc goc2c
+	./goc2c $< > $@.tmp
+	mv -f $@.tmp $@
+
 reflect.c: $(srcdir)/runtime/reflect.goc goc2c
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
@@ -574,7 +558,8 @@
 	mv -f $@.tmp $@
 
 go_bufio_files = \
-	go/bufio/bufio.go
+	go/bufio/bufio.go \
+	go/bufio/scan.go
 
 go_bytes_files = \
 	go/bytes/buffer.go \
@@ -679,17 +664,17 @@
 go_net_newpollserver_file = go/net/newpollserver_rtems.go
 else # !LIBGO_IS_RTEMS
 if LIBGO_IS_LINUX
-go_net_fd_os_file = go/net/fd_linux.go
-go_net_newpollserver_file = go/net/newpollserver_unix.go
+go_net_fd_os_file =
+go_net_newpollserver_file =
 else # !LIBGO_IS_LINUX && !LIBGO_IS_RTEMS
 if LIBGO_IS_NETBSD
 go_net_fd_os_file = go/net/fd_bsd.go
-go_net_newpollserver_file = go/net/newpollserver_unix.go
+go_net_newpollserver_file =
 else # !LIBGO_IS_NETBSD && !LIBGO_IS_LINUX && !LIBGO_IS_RTEMS
 # By default use select with pipes.  Most systems should have
 # something better.
 go_net_fd_os_file = go/net/fd_select.go
-go_net_newpollserver_file = go/net/newpollserver_unix.go
+go_net_newpollserver_file =
 endif # !LIBGO_IS_NETBSD
 endif # !LIBGO_IS_LINUX
 endif # !LIBGO_IS_RTEMS
@@ -760,6 +745,16 @@
 go_net_cloexec_file = go/net/sys_cloexec.go
 endif
 
+if LIBGO_IS_LINUX
+go_net_poll_file = go/net/fd_poll_runtime.go
+else
+if LIBGO_IS_DARWIN
+go_net_poll_file = go/net/fd_poll_runtime.go
+else
+go_net_poll_file = go/net/fd_poll_unix.go
+endif
+endif
+
 go_net_files = \
 	go/net/cgo_unix.go \
 	$(go_net_cgo_file) \
@@ -787,10 +782,12 @@
 	go/net/net.go \
 	go/net/parse.go \
 	go/net/pipe.go \
+	$(go_net_poll_file) \
 	go/net/port.go \
 	go/net/port_unix.go \
 	$(go_net_sendfile_file) \
 	go/net/sock_posix.go \
+	go/net/sock_unix.go \
 	$(go_net_sock_file) \
 	go/net/sockopt_posix.go \
 	$(go_net_sockopt_file) \
@@ -891,7 +888,8 @@
 	$(go_os_stat_file) \
 	go/os/str.go \
 	$(go_os_sys_file) \
-	go/os/types.go
+	go/os/types.go \
+	go/os/types_notwin.go
 
 go_path_files = \
 	go/path/match.go \
@@ -980,6 +978,7 @@
 	go/log/syslog/syslog_c.c
 
 go_testing_files = \
+	go/testing/allocs.go \
 	go/testing/benchmark.go \
 	go/testing/example.go \
 	go/testing/testing.go
@@ -1102,7 +1101,8 @@
 	go/crypto/rand/rand_unix.go \
 	go/crypto/rand/util.go
 go_crypto_rc4_files = \
-	go/crypto/rc4/rc4.go
+	go/crypto/rc4/rc4.go \
+	go/crypto/rc4/rc4_ref.go
 go_crypto_rsa_files = \
 	go/crypto/rsa/pkcs1v15.go \
 	go/crypto/rsa/rsa.go
@@ -1213,73 +1213,14 @@
 	go/encoding/xml/typeinfo.go \
 	go/encoding/xml/xml.go
 
-go_exp_cookiejar_files = \
-	go/exp/cookiejar/jar.go \
-	go/exp/cookiejar/storage.go
-go_exp_ebnf_files = \
-	go/exp/ebnf/ebnf.go \
-	go/exp/ebnf/parser.go
-go_exp_html_files = \
-	go/exp/html/const.go \
-	go/exp/html/doc.go \
-	go/exp/html/doctype.go \
-	go/exp/html/entity.go \
-	go/exp/html/escape.go \
-	go/exp/html/foreign.go \
-	go/exp/html/node.go \
-	go/exp/html/parse.go \
-	go/exp/html/render.go \
-	go/exp/html/token.go
-go_exp_html_atom_files = \
-	go/exp/html/atom/atom.go \
-	go/exp/html/atom/table.go
-go_exp_inotify_files = \
-	go/exp/inotify/inotify_linux.go
-go_exp_locale_collate_files = \
-	go/exp/locale/collate/colelem.go \
-	go/exp/locale/collate/collate.go \
-	go/exp/locale/collate/colltab.go \
-	go/exp/locale/collate/contract.go \
-	go/exp/locale/collate/export.go \
-	go/exp/locale/collate/sort.go \
-	go/exp/locale/collate/table.go \
-	go/exp/locale/collate/tables.go \
-	go/exp/locale/collate/trie.go
-go_exp_locale_collate_build_files = \
-	go/exp/locale/collate/build/builder.go \
-	go/exp/locale/collate/build/colelem.go \
-	go/exp/locale/collate/build/contract.go \
-	go/exp/locale/collate/build/order.go \
-	go/exp/locale/collate/build/table.go \
-	go/exp/locale/collate/build/trie.go
-go_exp_norm_files = \
-	go/exp/norm/composition.go \
-	go/exp/norm/forminfo.go \
-	go/exp/norm/input.go \
-	go/exp/norm/iter.go \
-	go/exp/norm/normalize.go \
-	go/exp/norm/readwriter.go \
-	go/exp/norm/tables.go \
-	go/exp/norm/trie.go
 go_exp_proxy_files = \
 	go/exp/proxy/direct.go \
 	go/exp/proxy/per_host.go \
 	go/exp/proxy/proxy.go \
 	go/exp/proxy/socks5.go
-go_exp_ssa_files = \
-	go/exp/ssa/blockopt.go \
-	go/exp/ssa/doc.go \
-	go/exp/ssa/func.go \
-	go/exp/ssa/sanity.go \
-	go/exp/ssa/ssa.go \
-	go/exp/ssa/literal.go \
-	go/exp/ssa/print.go \
-	go/exp/ssa/util.go
 go_exp_terminal_files = \
 	go/exp/terminal/terminal.go \
 	go/exp/terminal/util.go
-go_exp_utf8string_files = \
-	go/exp/utf8string/string.go
 
 go_go_ast_files = \
 	go/go/ast/ast.go \
@@ -1318,24 +1259,6 @@
 	go/go/token/position.go \
 	go/go/token/serialize.go \
 	go/go/token/token.go
-go_go_types_files = \
-	go/go/types/api.go \
-	go/go/types/builtins.go \
-	go/go/types/check.go \
-	go/go/types/const.go \
-	go/go/types/conversions.go \
-	go/go/types/errors.go \
-	go/go/types/exportdata.go \
-	go/go/types/expr.go \
-	go/go/types/gcimporter.go \
-	go/go/types/objects.go \
-	go/go/types/operand.go \
-	go/go/types/predicates.go \
-	go/go/types/resolve.go \
-	go/go/types/scope.go \
-	go/go/types/stmt.go \
-	go/go/types/types.go \
-	go/go/types/universe.go
 
 go_hash_adler32_files = \
 	go/hash/adler32/adler32.go
@@ -1459,6 +1382,9 @@
 go_net_http_cgi_files = \
 	go/net/http/cgi/child.go \
 	go/net/http/cgi/host.go
+go_net_http_cookiejar_files = \
+	go/net/http/cookiejar/jar.go \
+	go/net/http/cookiejar/punycode.go
 go_net_http_fcgi_files = \
 	go/net/http/fcgi/child.go \
 	go/net/http/fcgi/fcgi.go
@@ -1474,10 +1400,6 @@
 	go/net/http/httputil/reverseproxy.go
 
 
-go_old_netchan_files = \
-	go/old/netchan/common.go \
-	go/old/netchan/export.go \
-	go/old/netchan/import.go
 go_old_regexp_files = \
 	go/old/regexp/regexp.go
 go_old_template_files = \
@@ -1519,6 +1441,7 @@
 	go/net/rpc/jsonrpc/server.go
 
 go_runtime_debug_files = \
+	go/runtime/debug/garbage.go \
 	go/runtime/debug/stack.go
 go_runtime_pprof_files = \
 	go/runtime/pprof/pprof.go
@@ -1897,17 +1820,8 @@
 	encoding/json.lo \
 	encoding/pem.lo \
 	encoding/xml.lo \
-	exp/cookiejar.lo \
-	exp/ebnf.lo \
-	exp/html.lo \
-	exp/html/atom.lo \
-	exp/locale/collate.lo \
-	exp/locale/collate/build.lo \
-	exp/norm.lo \
 	exp/proxy.lo \
-	exp/ssa.lo \
 	exp/terminal.lo \
-	exp/utf8string.lo \
 	html/template.lo \
 	go/ast.lo \
 	go/build.lo \
@@ -1917,12 +1831,12 @@
 	go/printer.lo \
 	go/scanner.lo \
 	go/token.lo \
-	go/types.lo \
 	hash/adler32.lo \
 	hash/crc32.lo \
 	hash/crc64.lo \
 	hash/fnv.lo \
 	net/http/cgi.lo \
+	net/http/cookiejar.lo \
 	net/http/fcgi.lo \
 	net/http/httptest.lo \
 	net/http/httputil.lo \
@@ -1946,7 +1860,6 @@
 	net/smtp.lo \
 	net/textproto.lo \
 	net/url.lo \
-	old/netchan.lo \
 	old/regexp.lo \
 	old/template.lo \
 	os/exec.lo \
@@ -2731,69 +2644,6 @@
 	@$(CHECK)
 .PHONY: encoding/xml/check
 
-@go_include@ exp/cookiejar.lo.dep
-exp/cookiejar.lo.dep: $(go_exp_cookiejar_files)
-	$(BUILDDEPS)
-exp/cookiejar.lo: $(go_exp_cookiejar_files)
-	$(BUILDPACKAGE)
-exp/cookiejar/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/cookiejar/check
-
-@go_include@ exp/ebnf.lo.dep
-exp/ebnf.lo.dep: $(go_exp_ebnf_files)
-	$(BUILDDEPS)
-exp/ebnf.lo: $(go_exp_ebnf_files)
-	$(BUILDPACKAGE)
-exp/ebnf/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ebnf/check
-
-@go_include@ exp/html.lo.dep
-exp/html.lo.dep: $(go_exp_html_files)
-	$(BUILDDEPS)
-exp/html.lo: $(go_exp_html_files)
-	$(BUILDPACKAGE)
-exp/html/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/check
-
-@go_include@ exp/html/atom.lo.dep
-exp/html/atom.lo.dep: $(go_exp_html_atom_files)
-	$(BUILDDEPS)
-exp/html/atom.lo: $(go_exp_html_atom_files)
-	$(BUILDPACKAGE)
-exp/html/atom/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/atom/check
-
-@go_include@ exp/locale/collate.lo.dep
-exp/locale/collate.lo.dep: $(go_exp_locale_collate_files)
-	$(BUILDDEPS)
-exp/locale/collate.lo: $(go_exp_locale_collate_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/check
-
-@go_include@ exp/locale/collate/build.lo.dep
-exp/locale/collate/build.lo.dep: $(go_exp_locale_collate_build_files)
-	$(BUILDDEPS)
-exp/locale/collate/build.lo: $(go_exp_locale_collate_build_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/build/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/build/check
-
-@go_include@ exp/norm.lo.dep
-exp/norm.lo.dep: $(go_exp_norm_files)
-	$(BUILDDEPS)
-exp/norm.lo: $(go_exp_norm_files)
-	$(BUILDPACKAGE)
-exp/norm/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/norm/check
-
 @go_include@ exp/proxy.lo.dep
 exp/proxy.lo.dep: $(go_exp_proxy_files)
 	$(BUILDDEPS)
@@ -2803,15 +2653,6 @@
 	@$(CHECK)
 .PHONY: exp/proxy/check
 
-@go_include@ exp/ssa.lo.dep
-exp/ssa.lo.dep: $(go_exp_ssa_files)
-	$(BUILDDEPS)
-exp/ssa.lo: $(go_exp_ssa_files)
-	$(BUILDPACKAGE)
-exp/ssa/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ssa/check
-
 @go_include@ exp/terminal.lo.dep
 exp/terminal.lo.dep: $(go_exp_terminal_files)
 	$(BUILDDEPS)
@@ -2821,24 +2662,6 @@
 	@$(CHECK)
 .PHONY: exp/terminal/check
 
-@go_include@ exp/utf8string.lo.dep
-exp/utf8string.lo.dep: $(go_exp_utf8string_files)
-	$(BUILDDEPS)
-exp/utf8string.lo: $(go_exp_utf8string_files)
-	$(BUILDPACKAGE)
-exp/utf8string/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/utf8string/check
-
-@go_include@ exp/inotify.lo.dep
-exp/inotify.lo.dep: $(go_exp_inotify_files)
-	$(BUILDDEPS)
-exp/inotify.lo: $(go_exp_inotify_files)
-	$(BUILDPACKAGE)
-exp/inotify/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/inotify/check
-
 @go_include@ html/template.lo.dep
 html/template.lo.dep: $(go_html_template_files)
 	$(BUILDDEPS)
@@ -2929,15 +2752,6 @@
 	@$(CHECK)
 .PHONY: go/token/check
 
-@go_include@ go/types.lo.dep
-go/types.lo.dep: $(go_go_types_files)
-	$(BUILDDEPS)
-go/types.lo: $(go_go_types_files)
-	$(BUILDPACKAGE)
-go/types/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: go/types/check
-
 @go_include@ hash/adler32.lo.dep
 hash/adler32.lo.dep: $(go_hash_adler32_files)
 	$(BUILDDEPS)
@@ -3148,6 +2962,15 @@
 	@$(CHECK)
 .PHONY: net/http/cgi/check
 
+@go_include@ net/http/cookiejar.lo.dep
+net/http/cookiejar.lo.dep: $(go_net_http_cookiejar_files)
+	$(BUILDDEPS)
+net/http/cookiejar.lo: $(go_net_http_cookiejar_files)
+	$(BUILDPACKAGE)
+net/http/cookiejar/check: $(CHECK_DEPS)
+	@$(CHECK)
+.PHONY: net/http/cookiejar/check
+
 @go_include@ net/http/fcgi.lo.dep
 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
 	$(BUILDDEPS)
@@ -3193,15 +3016,6 @@
 	@$(CHECK)
 .PHONY: net/rpc/jsonrpc/check
 
-@go_include@ old/netchan.lo.dep
-old/netchan.lo.dep: $(go_old_netchan_files)
-	$(BUILDDEPS)
-old/netchan.lo: $(go_old_netchan_files)
-	$(BUILDPACKAGE)
-old/netchan/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: old/netchan/check
-
 @go_include@ old/regexp.lo.dep
 old/regexp.lo.dep: $(go_old_regexp_files)
 	$(BUILDDEPS)
@@ -3550,30 +3364,10 @@
 encoding/xml.gox: encoding/xml.lo
 	$(BUILDGOX)
 
-exp/cookiejar.gox: exp/cookiejar.lo
-	$(BUILDGOX)
-exp/ebnf.gox: exp/ebnf.lo
-	$(BUILDGOX)
-exp/html.gox: exp/html.lo
-	$(BUILDGOX)
-exp/html/atom.gox: exp/html/atom.lo
-	$(BUILDGOX)
-exp/inotify.gox: exp/inotify.lo
-	$(BUILDGOX)
-exp/locale/collate.gox: exp/locale/collate.lo
-	$(BUILDGOX)
-exp/locale/collate/build.gox: exp/locale/collate/build.lo
-	$(BUILDGOX)
-exp/norm.gox: exp/norm.lo
-	$(BUILDGOX)
 exp/proxy.gox: exp/proxy.lo
 	$(BUILDGOX)
-exp/ssa.gox: exp/ssa.lo
-	$(BUILDGOX)
 exp/terminal.gox: exp/terminal.lo
 	$(BUILDGOX)
-exp/utf8string.gox: exp/utf8string.lo	
-	$(BUILDGOX)
 
 html/template.gox: html/template.lo
 	$(BUILDGOX)
@@ -3594,8 +3388,6 @@
 	$(BUILDGOX)
 go/token.gox: go/token.lo
 	$(BUILDGOX)
-go/types.gox: go/types.lo
-	$(BUILDGOX)
 
 hash/adler32.gox: hash/adler32.lo
 	$(BUILDGOX)
@@ -3651,6 +3443,8 @@
 
 net/http/cgi.gox: net/http/cgi.lo
 	$(BUILDGOX)
+net/http/cookiejar.gox: net/http/cookiejar.lo
+	$(BUILDGOX)
 net/http/fcgi.gox: net/http/fcgi.lo
 	$(BUILDGOX)
 net/http/httptest.gox: net/http/httptest.lo
@@ -3663,8 +3457,6 @@
 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo
 	$(BUILDGOX)
 
-old/netchan.gox: old/netchan.lo
-	$(BUILDGOX)
 old/regexp.gox: old/regexp.lo
 	$(BUILDGOX)
 old/template.gox: old/template.lo
@@ -3710,13 +3502,6 @@
 unicode/utf8.gox: unicode/utf8.lo
 	$(BUILDGOX)
 
-if LIBGO_IS_LINUX
-# exp_inotify_check = exp/inotify/check
-exp_inotify_check =
-else
-exp_inotify_check =
-endif
-
 TEST_PACKAGES = \
 	bufio/check \
 	bytes/check \
@@ -3787,17 +3572,8 @@
 	encoding/json/check \
 	encoding/pem/check \
 	encoding/xml/check \
-	exp/cookiejar/check \
-	exp/ebnf/check \
-	exp/html/check \
-	exp/html/atom/check \
-	$(exp_inotify_check) \
-	exp/locale/collate/check \
-	exp/locale/collate/build/check \
-	exp/norm/check \
 	exp/proxy/check \
 	exp/terminal/check \
-	exp/utf8string/check \
 	html/template/check \
 	go/ast/check \
 	$(go_build_check_omitted_since_it_calls_6g) \
@@ -3807,7 +3583,6 @@
 	go/printer/check \
 	go/scanner/check \
 	go/token/check \
-	go/types/check \
 	hash/adler32/check \
 	hash/crc32/check \
 	hash/crc64/check \
@@ -3825,6 +3600,7 @@
 	mime/multipart/check \
 	net/http/check \
 	net/http/cgi/check \
+	net/http/cookiejar/check \
 	net/http/fcgi/check \
 	net/http/httptest/check \
 	net/http/httputil/check \
@@ -3834,7 +3610,6 @@
 	net/textproto/check \
 	net/url/check \
 	net/rpc/jsonrpc/check \
-	old/netchan/check \
 	old/regexp/check \
 	old/template/check \
 	os/exec/check \
diff -Naur gcc-4.8.1.orig/libgo/Makefile.in gcc-4.8.1/libgo/Makefile.in
--- gcc-4.8.1.orig/libgo/Makefile.in	2013-02-20 14:04:36.000000000 -0600
+++ gcc-4.8.1/libgo/Makefile.in	2013-07-16 01:55:04.520470000 -0500
@@ -101,9 +101,6 @@
 	"$(DESTDIR)$(toolexeclibgodebugdir)" \
 	"$(DESTDIR)$(toolexeclibgoencodingdir)" \
 	"$(DESTDIR)$(toolexeclibgoexpdir)" \
-	"$(DESTDIR)$(toolexeclibgoexphtmldir)" \
-	"$(DESTDIR)$(toolexeclibgoexplocaledir)" \
-	"$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" \
 	"$(DESTDIR)$(toolexeclibgogodir)" \
 	"$(DESTDIR)$(toolexeclibgohashdir)" \
 	"$(DESTDIR)$(toolexeclibgohtmldir)" \
@@ -153,22 +150,20 @@
 	debug/pe.lo encoding/ascii85.lo encoding/asn1.lo \
 	encoding/base32.lo encoding/base64.lo encoding/binary.lo \
 	encoding/csv.lo encoding/gob.lo encoding/hex.lo \
-	encoding/json.lo encoding/pem.lo encoding/xml.lo \
-	exp/cookiejar.lo exp/ebnf.lo exp/html.lo exp/html/atom.lo \
-	exp/locale/collate.lo exp/locale/collate/build.lo exp/norm.lo \
-	exp/proxy.lo exp/ssa.lo exp/terminal.lo exp/utf8string.lo \
-	html/template.lo go/ast.lo go/build.lo go/doc.lo go/format.lo \
-	go/parser.lo go/printer.lo go/scanner.lo go/token.lo \
-	go/types.lo hash/adler32.lo hash/crc32.lo hash/crc64.lo \
-	hash/fnv.lo net/http/cgi.lo net/http/fcgi.lo \
-	net/http/httptest.lo net/http/httputil.lo net/http/pprof.lo \
-	image/color.lo image/draw.lo image/gif.lo image/jpeg.lo \
-	image/png.lo index/suffixarray.lo io/ioutil.lo log/syslog.lo \
+	encoding/json.lo encoding/pem.lo encoding/xml.lo exp/proxy.lo \
+	exp/terminal.lo html/template.lo go/ast.lo go/build.lo \
+	go/doc.lo go/format.lo go/parser.lo go/printer.lo \
+	go/scanner.lo go/token.lo hash/adler32.lo hash/crc32.lo \
+	hash/crc64.lo hash/fnv.lo net/http/cgi.lo \
+	net/http/cookiejar.lo net/http/fcgi.lo net/http/httptest.lo \
+	net/http/httputil.lo net/http/pprof.lo image/color.lo \
+	image/draw.lo image/gif.lo image/jpeg.lo image/png.lo \
+	index/suffixarray.lo io/ioutil.lo log/syslog.lo \
 	log/syslog/syslog_c.lo math/big.lo math/cmplx.lo math/rand.lo \
 	mime/multipart.lo net/http.lo net/mail.lo net/rpc.lo \
-	net/smtp.lo net/textproto.lo net/url.lo old/netchan.lo \
-	old/regexp.lo old/template.lo os/exec.lo $(am__DEPENDENCIES_1) \
-	os/signal.lo os/user.lo path/filepath.lo regexp/syntax.lo \
+	net/smtp.lo net/textproto.lo net/url.lo old/regexp.lo \
+	old/template.lo os/exec.lo $(am__DEPENDENCIES_1) os/signal.lo \
+	os/user.lo path/filepath.lo regexp/syntax.lo \
 	net/rpc/jsonrpc.lo runtime/debug.lo runtime/pprof.lo \
 	sync/atomic.lo sync/atomic_c.lo text/scanner.lo \
 	text/tabwriter.lo text/template.lo text/template/parse.lo \
@@ -183,16 +178,22 @@
 @LIBGO_IS_LINUX_TRUE@am__objects_1 = lock_futex.lo thread-linux.lo
 @HAVE_SYS_MMAN_H_FALSE@am__objects_2 = mem_posix_memalign.lo
 @HAVE_SYS_MMAN_H_TRUE@am__objects_2 = mem.lo
-@LIBGO_IS_RTEMS_TRUE@am__objects_3 = rtems-task-variable-add.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-none.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-bsd.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_4 = getncpu-bsd.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_4 = getncpu-solaris.lo
-@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_4 = getncpu-irix.lo
-@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_4 =  \
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@am__objects_3 =  \
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@	netpoll_stub.lo
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_3 =  \
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@	netpoll.lo \
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@	netpoll_kqueue.lo
+@LIBGO_IS_LINUX_TRUE@am__objects_3 = netpoll.lo netpoll_epoll.lo
+@LIBGO_IS_RTEMS_TRUE@am__objects_4 = rtems-task-variable-add.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-none.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-bsd.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_5 = getncpu-bsd.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_5 = getncpu-solaris.lo
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_5 = getncpu-irix.lo
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_5 =  \
 @LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@	getncpu-bsd.lo
-@LIBGO_IS_LINUX_TRUE@am__objects_4 = getncpu-linux.lo
-am__objects_5 = go-append.lo go-assert.lo go-assert-interface.lo \
+@LIBGO_IS_LINUX_TRUE@am__objects_5 = getncpu-linux.lo
+am__objects_6 = go-append.lo go-assert.lo go-assert-interface.lo \
 	go-byte-array-to-string.lo go-breakpoint.lo go-caller.lo \
 	go-callers.lo go-can-convert-interface.lo go-cgo.lo \
 	go-check-interface.lo go-construct-map.lo \
@@ -208,19 +209,19 @@
 	go-reflect-call.lo go-reflect-map.lo go-rune.lo \
 	go-runtime-error.lo go-setenv.lo go-signal.lo go-strcmp.lo \
 	go-string-to-byte-array.lo go-string-to-int-array.lo \
-	go-strplus.lo go-strslice.lo go-traceback.lo go-trampoline.lo \
+	go-strplus.lo go-strslice.lo go-traceback.lo \
 	go-type-complex.lo go-type-eface.lo go-type-error.lo \
 	go-type-float.lo go-type-identity.lo go-type-interface.lo \
 	go-type-string.lo go-typedesc-equal.lo go-typestring.lo \
 	go-unsafe-new.lo go-unsafe-newarray.lo go-unsafe-pointer.lo \
 	go-unwind.lo chan.lo cpuprof.lo env_posix.lo lfstack.lo \
 	$(am__objects_1) mcache.lo mcentral.lo $(am__objects_2) \
-	mfinal.lo mfixalloc.lo mgc0.lo mheap.lo msize.lo panic.lo \
-	parfor.lo print.lo proc.lo runtime.lo signal_unix.lo thread.lo \
-	yield.lo $(am__objects_3) iface.lo malloc.lo map.lo mprof.lo \
-	reflect.lo runtime1.lo sema.lo sigqueue.lo string.lo time.lo \
-	$(am__objects_4)
-am_libgo_la_OBJECTS = $(am__objects_5)
+	mfinal.lo mfixalloc.lo mgc0.lo mheap.lo msize.lo \
+	$(am__objects_3) panic.lo parfor.lo print.lo proc.lo \
+	runtime.lo signal_unix.lo thread.lo yield.lo $(am__objects_4) \
+	iface.lo malloc.lo map.lo mprof.lo reflect.lo runtime1.lo \
+	sema.lo sigqueue.lo string.lo time.lo $(am__objects_5)
+am_libgo_la_OBJECTS = $(am__objects_6)
 libgo_la_OBJECTS = $(am_libgo_la_OBJECTS)
 libgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgo_la_LDFLAGS) \
@@ -257,9 +258,7 @@
 	$(toolexeclibgocrypto_DATA) $(toolexeclibgocryptox509_DATA) \
 	$(toolexeclibgodatabase_DATA) $(toolexeclibgodatabasesql_DATA) \
 	$(toolexeclibgodebug_DATA) $(toolexeclibgoencoding_DATA) \
-	$(toolexeclibgoexp_DATA) $(toolexeclibgoexphtml_DATA) \
-	$(toolexeclibgoexplocale_DATA) \
-	$(toolexeclibgoexplocalecollate_DATA) $(toolexeclibgogo_DATA) \
+	$(toolexeclibgoexp_DATA) $(toolexeclibgogo_DATA) \
 	$(toolexeclibgohash_DATA) $(toolexeclibgohtml_DATA) \
 	$(toolexeclibgoimage_DATA) $(toolexeclibgoindex_DATA) \
 	$(toolexeclibgoio_DATA) $(toolexeclibgolog_DATA) \
@@ -606,33 +605,10 @@
 	encoding/pem.gox \
 	encoding/xml.gox
 
-@LIBGO_IS_LINUX_FALSE@exp_inotify_gox = 
-
-# exp_inotify_gox = exp/inotify.gox
-@LIBGO_IS_LINUX_TRUE@exp_inotify_gox = 
 toolexeclibgoexpdir = $(toolexeclibgodir)/exp
 toolexeclibgoexp_DATA = \
-	exp/cookiejar.gox \
-	exp/ebnf.gox \
-	exp/html.gox \
-	$(exp_inotify_gox) \
-	exp/norm.gox \
 	exp/proxy.gox \
-	exp/ssa.gox \
-	exp/terminal.gox \
-	exp/utf8string.gox
-
-toolexeclibgoexphtmldir = $(toolexeclibgoexpdir)/html
-toolexeclibgoexphtml_DATA = \
-	exp/html/atom.gox
-
-toolexeclibgoexplocaledir = $(toolexeclibgoexpdir)/locale
-toolexeclibgoexplocale_DATA = \
-	exp/locale/collate.gox
-
-toolexeclibgoexplocalecollatedir = $(toolexeclibgoexplocaledir)/collate
-toolexeclibgoexplocalecollate_DATA = \
-	exp/locale/collate/build.gox
+	exp/terminal.gox
 
 toolexeclibgogodir = $(toolexeclibgodir)/go
 toolexeclibgogo_DATA = \
@@ -643,8 +619,7 @@
 	go/parser.gox \
 	go/printer.gox \
 	go/scanner.gox \
-	go/token.gox \
-	go/types.gox
+	go/token.gox
 
 toolexeclibgohashdir = $(toolexeclibgodir)/hash
 toolexeclibgohash_DATA = \
@@ -699,6 +674,7 @@
 toolexeclibgonethttpdir = $(toolexeclibgonetdir)/http
 toolexeclibgonethttp_DATA = \
 	net/http/cgi.gox \
+	net/http/cookiejar.gox \
 	net/http/fcgi.gox \
 	net/http/httptest.gox \
 	net/http/httputil.gox \
@@ -710,7 +686,6 @@
 
 toolexeclibgoolddir = $(toolexeclibgodir)/old
 toolexeclibgoold_DATA = \
-	old/netchan.gox \
 	old/regexp.gox \
 	old/template.gox
 
@@ -770,6 +745,9 @@
 @LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@runtime_getncpu_file = runtime/getncpu-irix.c
 @LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@runtime_getncpu_file = runtime/getncpu-bsd.c
 @LIBGO_IS_LINUX_TRUE@runtime_getncpu_file = runtime/getncpu-linux.c
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@runtime_netpoll_files = runtime/netpoll_stub.c
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@runtime_netpoll_files = netpoll.c runtime/netpoll_kqueue.c
+@LIBGO_IS_LINUX_TRUE@runtime_netpoll_files = netpoll.c runtime/netpoll_epoll.c
 runtime_files = \
 	runtime/go-append.c \
 	runtime/go-assert.c \
@@ -822,7 +800,6 @@
 	runtime/go-strplus.c \
 	runtime/go-strslice.c \
 	runtime/go-traceback.c \
-	runtime/go-trampoline.c \
 	runtime/go-type-complex.c \
 	runtime/go-type-eface.c \
 	runtime/go-type-error.c \
@@ -849,6 +826,7 @@
 	runtime/mgc0.c \
 	runtime/mheap.c \
 	runtime/msize.c \
+	$(runtime_netpoll_files) \
 	runtime/panic.c \
 	runtime/parfor.c \
 	runtime/print.c \
@@ -871,7 +849,8 @@
 	$(runtime_getncpu_file)
 
 go_bufio_files = \
-	go/bufio/bufio.go
+	go/bufio/bufio.go \
+	go/bufio/scan.go
 
 go_bytes_files = \
 	go/bytes/buffer.go \
@@ -976,11 +955,11 @@
 # something better.
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_select.go
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_bsd.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = go/net/fd_linux.go
+@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_fd_os_file = 
 @LIBGO_IS_RTEMS_TRUE@go_net_fd_os_file = go/net/fd_select.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver_unix.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver_unix.go
-@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = go/net/newpollserver_unix.go
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = 
+@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = 
+@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@go_net_newpollserver_file = 
 @LIBGO_IS_RTEMS_TRUE@go_net_newpollserver_file = go/net/newpollserver_rtems.go
 @LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_file = go/net/cgo_bsd.go
 @LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_net_cgo_file = go/net/cgo_netbsd.go
@@ -1014,6 +993,9 @@
 @LIBGO_IS_LINUX_TRUE@go_net_interface_file = go/net/interface_linux.go
 @LIBGO_IS_LINUX_FALSE@go_net_cloexec_file = go/net/sys_cloexec.go
 @LIBGO_IS_LINUX_TRUE@go_net_cloexec_file = go/net/sock_cloexec.go
+@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_LINUX_FALSE@go_net_poll_file = go/net/fd_poll_unix.go
+@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@go_net_poll_file = go/net/fd_poll_runtime.go
+@LIBGO_IS_LINUX_TRUE@go_net_poll_file = go/net/fd_poll_runtime.go
 go_net_files = \
 	go/net/cgo_unix.go \
 	$(go_net_cgo_file) \
@@ -1041,10 +1023,12 @@
 	go/net/net.go \
 	go/net/parse.go \
 	go/net/pipe.go \
+	$(go_net_poll_file) \
 	go/net/port.go \
 	go/net/port_unix.go \
 	$(go_net_sendfile_file) \
 	go/net/sock_posix.go \
+	go/net/sock_unix.go \
 	$(go_net_sock_file) \
 	go/net/sockopt_posix.go \
 	$(go_net_sockopt_file) \
@@ -1096,7 +1080,8 @@
 	$(go_os_stat_file) \
 	go/os/str.go \
 	$(go_os_sys_file) \
-	go/os/types.go
+	go/os/types.go \
+	go/os/types_notwin.go
 
 go_path_files = \
 	go/path/match.go \
@@ -1168,6 +1153,7 @@
 	go/log/syslog/syslog_c.c
 
 go_testing_files = \
+	go/testing/allocs.go \
 	go/testing/benchmark.go \
 	go/testing/example.go \
 	go/testing/testing.go
@@ -1286,7 +1272,8 @@
 	go/crypto/rand/util.go
 
 go_crypto_rc4_files = \
-	go/crypto/rc4/rc4.go
+	go/crypto/rc4/rc4.go \
+	go/crypto/rc4/rc4_ref.go
 
 go_crypto_rsa_files = \
 	go/crypto/rsa/pkcs1v15.go \
@@ -1418,85 +1405,16 @@
 	go/encoding/xml/typeinfo.go \
 	go/encoding/xml/xml.go
 
-go_exp_cookiejar_files = \
-	go/exp/cookiejar/jar.go \
-	go/exp/cookiejar/storage.go
-
-go_exp_ebnf_files = \
-	go/exp/ebnf/ebnf.go \
-	go/exp/ebnf/parser.go
-
-go_exp_html_files = \
-	go/exp/html/const.go \
-	go/exp/html/doc.go \
-	go/exp/html/doctype.go \
-	go/exp/html/entity.go \
-	go/exp/html/escape.go \
-	go/exp/html/foreign.go \
-	go/exp/html/node.go \
-	go/exp/html/parse.go \
-	go/exp/html/render.go \
-	go/exp/html/token.go
-
-go_exp_html_atom_files = \
-	go/exp/html/atom/atom.go \
-	go/exp/html/atom/table.go
-
-go_exp_inotify_files = \
-	go/exp/inotify/inotify_linux.go
-
-go_exp_locale_collate_files = \
-	go/exp/locale/collate/colelem.go \
-	go/exp/locale/collate/collate.go \
-	go/exp/locale/collate/colltab.go \
-	go/exp/locale/collate/contract.go \
-	go/exp/locale/collate/export.go \
-	go/exp/locale/collate/sort.go \
-	go/exp/locale/collate/table.go \
-	go/exp/locale/collate/tables.go \
-	go/exp/locale/collate/trie.go
-
-go_exp_locale_collate_build_files = \
-	go/exp/locale/collate/build/builder.go \
-	go/exp/locale/collate/build/colelem.go \
-	go/exp/locale/collate/build/contract.go \
-	go/exp/locale/collate/build/order.go \
-	go/exp/locale/collate/build/table.go \
-	go/exp/locale/collate/build/trie.go
-
-go_exp_norm_files = \
-	go/exp/norm/composition.go \
-	go/exp/norm/forminfo.go \
-	go/exp/norm/input.go \
-	go/exp/norm/iter.go \
-	go/exp/norm/normalize.go \
-	go/exp/norm/readwriter.go \
-	go/exp/norm/tables.go \
-	go/exp/norm/trie.go
-
 go_exp_proxy_files = \
 	go/exp/proxy/direct.go \
 	go/exp/proxy/per_host.go \
 	go/exp/proxy/proxy.go \
 	go/exp/proxy/socks5.go
 
-go_exp_ssa_files = \
-	go/exp/ssa/blockopt.go \
-	go/exp/ssa/doc.go \
-	go/exp/ssa/func.go \
-	go/exp/ssa/sanity.go \
-	go/exp/ssa/ssa.go \
-	go/exp/ssa/literal.go \
-	go/exp/ssa/print.go \
-	go/exp/ssa/util.go
-
 go_exp_terminal_files = \
 	go/exp/terminal/terminal.go \
 	go/exp/terminal/util.go
 
-go_exp_utf8string_files = \
-	go/exp/utf8string/string.go
-
 go_go_ast_files = \
 	go/go/ast/ast.go \
 	go/go/ast/commentmap.go \
@@ -1542,25 +1460,6 @@
 	go/go/token/serialize.go \
 	go/go/token/token.go
 
-go_go_types_files = \
-	go/go/types/api.go \
-	go/go/types/builtins.go \
-	go/go/types/check.go \
-	go/go/types/const.go \
-	go/go/types/conversions.go \
-	go/go/types/errors.go \
-	go/go/types/exportdata.go \
-	go/go/types/expr.go \
-	go/go/types/gcimporter.go \
-	go/go/types/objects.go \
-	go/go/types/operand.go \
-	go/go/types/predicates.go \
-	go/go/types/resolve.go \
-	go/go/types/scope.go \
-	go/go/types/stmt.go \
-	go/go/types/types.go \
-	go/go/types/universe.go
-
 go_hash_adler32_files = \
 	go/hash/adler32/adler32.go
 
@@ -1693,6 +1592,10 @@
 	go/net/http/cgi/child.go \
 	go/net/http/cgi/host.go
 
+go_net_http_cookiejar_files = \
+	go/net/http/cookiejar/jar.go \
+	go/net/http/cookiejar/punycode.go
+
 go_net_http_fcgi_files = \
 	go/net/http/fcgi/child.go \
 	go/net/http/fcgi/fcgi.go
@@ -1710,11 +1613,6 @@
 	go/net/http/httputil/persist.go \
 	go/net/http/httputil/reverseproxy.go
 
-go_old_netchan_files = \
-	go/old/netchan/common.go \
-	go/old/netchan/export.go \
-	go/old/netchan/import.go
-
 go_old_regexp_files = \
 	go/old/regexp/regexp.go
 
@@ -1757,6 +1655,7 @@
 	go/net/rpc/jsonrpc/server.go
 
 go_runtime_debug_files = \
+	go/runtime/debug/garbage.go \
 	go/runtime/debug/stack.go
 
 go_runtime_pprof_files = \
@@ -2006,17 +1905,8 @@
 	encoding/json.lo \
 	encoding/pem.lo \
 	encoding/xml.lo \
-	exp/cookiejar.lo \
-	exp/ebnf.lo \
-	exp/html.lo \
-	exp/html/atom.lo \
-	exp/locale/collate.lo \
-	exp/locale/collate/build.lo \
-	exp/norm.lo \
 	exp/proxy.lo \
-	exp/ssa.lo \
 	exp/terminal.lo \
-	exp/utf8string.lo \
 	html/template.lo \
 	go/ast.lo \
 	go/build.lo \
@@ -2026,12 +1916,12 @@
 	go/printer.lo \
 	go/scanner.lo \
 	go/token.lo \
-	go/types.lo \
 	hash/adler32.lo \
 	hash/crc32.lo \
 	hash/crc64.lo \
 	hash/fnv.lo \
 	net/http/cgi.lo \
+	net/http/cookiejar.lo \
 	net/http/fcgi.lo \
 	net/http/httptest.lo \
 	net/http/httputil.lo \
@@ -2055,7 +1945,6 @@
 	net/smtp.lo \
 	net/textproto.lo \
 	net/url.lo \
-	old/netchan.lo \
 	old/regexp.lo \
 	old/template.lo \
 	os/exec.lo \
@@ -2186,10 +2075,6 @@
 	f=`echo $< | sed -e 's/.lo$$/.o/'`; \
 	$(OBJCOPY) -j .go_export $$f $@.tmp && mv -f $@.tmp $@
 
-@LIBGO_IS_LINUX_FALSE@exp_inotify_check = 
-
-# exp_inotify_check = exp/inotify/check
-@LIBGO_IS_LINUX_TRUE@exp_inotify_check = 
 TEST_PACKAGES = \
 	bufio/check \
 	bytes/check \
@@ -2260,17 +2145,8 @@
 	encoding/json/check \
 	encoding/pem/check \
 	encoding/xml/check \
-	exp/cookiejar/check \
-	exp/ebnf/check \
-	exp/html/check \
-	exp/html/atom/check \
-	$(exp_inotify_check) \
-	exp/locale/collate/check \
-	exp/locale/collate/build/check \
-	exp/norm/check \
 	exp/proxy/check \
 	exp/terminal/check \
-	exp/utf8string/check \
 	html/template/check \
 	go/ast/check \
 	$(go_build_check_omitted_since_it_calls_6g) \
@@ -2280,7 +2156,6 @@
 	go/printer/check \
 	go/scanner/check \
 	go/token/check \
-	go/types/check \
 	hash/adler32/check \
 	hash/crc32/check \
 	hash/crc64/check \
@@ -2298,6 +2173,7 @@
 	mime/multipart/check \
 	net/http/check \
 	net/http/cgi/check \
+	net/http/cookiejar/check \
 	net/http/fcgi/check \
 	net/http/httptest/check \
 	net/http/httputil/check \
@@ -2307,7 +2183,6 @@
 	net/textproto/check \
 	net/url/check \
 	net/rpc/jsonrpc/check \
-	old/netchan/check \
 	old/regexp/check \
 	old/template/check \
 	os/exec/check \
@@ -2519,7 +2394,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strplus.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-strslice.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-traceback.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-trampoline.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-complex.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-eface.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-type-error.Plo@am__quote@
@@ -2549,6 +2423,10 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mheap.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mprof.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msize.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll_epoll.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll_kqueue.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netpoll_stub.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/panic.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parfor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Plo@am__quote@
@@ -2959,13 +2837,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-traceback.lo `test -f 'runtime/go-traceback.c' || echo '$(srcdir)/'`runtime/go-traceback.c
 
-go-trampoline.lo: runtime/go-trampoline.c
-@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-trampoline.lo -MD -MP -MF $(DEPDIR)/go-trampoline.Tpo -c -o go-trampoline.lo `test -f 'runtime/go-trampoline.c' || echo '$(srcdir)/'`runtime/go-trampoline.c
-@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/go-trampoline.Tpo $(DEPDIR)/go-trampoline.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/go-trampoline.c' object='go-trampoline.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-trampoline.lo `test -f 'runtime/go-trampoline.c' || echo '$(srcdir)/'`runtime/go-trampoline.c
-
 go-type-complex.lo: runtime/go-type-complex.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-type-complex.lo -MD -MP -MF $(DEPDIR)/go-type-complex.Tpo -c -o go-type-complex.lo `test -f 'runtime/go-type-complex.c' || echo '$(srcdir)/'`runtime/go-type-complex.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/go-type-complex.Tpo $(DEPDIR)/go-type-complex.Plo
@@ -3176,6 +3047,27 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o msize.lo `test -f 'runtime/msize.c' || echo '$(srcdir)/'`runtime/msize.c
 
+netpoll_stub.lo: runtime/netpoll_stub.c
+@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT netpoll_stub.lo -MD -MP -MF $(DEPDIR)/netpoll_stub.Tpo -c -o netpoll_stub.lo `test -f 'runtime/netpoll_stub.c' || echo '$(srcdir)/'`runtime/netpoll_stub.c
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/netpoll_stub.Tpo $(DEPDIR)/netpoll_stub.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/netpoll_stub.c' object='netpoll_stub.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o netpoll_stub.lo `test -f 'runtime/netpoll_stub.c' || echo '$(srcdir)/'`runtime/netpoll_stub.c
+
+netpoll_kqueue.lo: runtime/netpoll_kqueue.c
+@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT netpoll_kqueue.lo -MD -MP -MF $(DEPDIR)/netpoll_kqueue.Tpo -c -o netpoll_kqueue.lo `test -f 'runtime/netpoll_kqueue.c' || echo '$(srcdir)/'`runtime/netpoll_kqueue.c
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/netpoll_kqueue.Tpo $(DEPDIR)/netpoll_kqueue.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/netpoll_kqueue.c' object='netpoll_kqueue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o netpoll_kqueue.lo `test -f 'runtime/netpoll_kqueue.c' || echo '$(srcdir)/'`runtime/netpoll_kqueue.c
+
+netpoll_epoll.lo: runtime/netpoll_epoll.c
+@am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT netpoll_epoll.lo -MD -MP -MF $(DEPDIR)/netpoll_epoll.Tpo -c -o netpoll_epoll.lo `test -f 'runtime/netpoll_epoll.c' || echo '$(srcdir)/'`runtime/netpoll_epoll.c
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/netpoll_epoll.Tpo $(DEPDIR)/netpoll_epoll.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='runtime/netpoll_epoll.c' object='netpoll_epoll.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o netpoll_epoll.lo `test -f 'runtime/netpoll_epoll.c' || echo '$(srcdir)/'`runtime/netpoll_epoll.c
+
 panic.lo: runtime/panic.c
 @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT panic.lo -MD -MP -MF $(DEPDIR)/panic.Tpo -c -o panic.lo `test -f 'runtime/panic.c' || echo '$(srcdir)/'`runtime/panic.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/panic.Tpo $(DEPDIR)/panic.Plo
@@ -3519,66 +3411,6 @@
 	test -n "$$files" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(toolexeclibgoexpdir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(toolexeclibgoexpdir)" && rm -f $$files
-install-toolexeclibgoexphtmlDATA: $(toolexeclibgoexphtml_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(toolexeclibgoexphtmldir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexphtmldir)"
-	@list='$(toolexeclibgoexphtml_DATA)'; test -n "$(toolexeclibgoexphtmldir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexphtmldir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexphtmldir)" || exit $$?; \
-	done
-
-uninstall-toolexeclibgoexphtmlDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(toolexeclibgoexphtml_DATA)'; test -n "$(toolexeclibgoexphtmldir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(toolexeclibgoexphtmldir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(toolexeclibgoexphtmldir)" && rm -f $$files
-install-toolexeclibgoexplocaleDATA: $(toolexeclibgoexplocale_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(toolexeclibgoexplocaledir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexplocaledir)"
-	@list='$(toolexeclibgoexplocale_DATA)'; test -n "$(toolexeclibgoexplocaledir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexplocaledir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexplocaledir)" || exit $$?; \
-	done
-
-uninstall-toolexeclibgoexplocaleDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(toolexeclibgoexplocale_DATA)'; test -n "$(toolexeclibgoexplocaledir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(toolexeclibgoexplocaledir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(toolexeclibgoexplocaledir)" && rm -f $$files
-install-toolexeclibgoexplocalecollateDATA: $(toolexeclibgoexplocalecollate_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(toolexeclibgoexplocalecollatedir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)"
-	@list='$(toolexeclibgoexplocalecollate_DATA)'; test -n "$(toolexeclibgoexplocalecollatedir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(toolexeclibgoexplocalecollatedir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" || exit $$?; \
-	done
-
-uninstall-toolexeclibgoexplocalecollateDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(toolexeclibgoexplocalecollate_DATA)'; test -n "$(toolexeclibgoexplocalecollatedir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(toolexeclibgoexplocalecollatedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" && rm -f $$files
 install-toolexeclibgogoDATA: $(toolexeclibgogo_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(toolexeclibgogodir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibgogodir)"
@@ -4160,7 +3992,7 @@
 		config.h
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibgodir)" "$(DESTDIR)$(toolexeclibgoarchivedir)" "$(DESTDIR)$(toolexeclibgocompressdir)" "$(DESTDIR)$(toolexeclibgocontainerdir)" "$(DESTDIR)$(toolexeclibgocryptodir)" "$(DESTDIR)$(toolexeclibgocryptox509dir)" "$(DESTDIR)$(toolexeclibgodatabasedir)" "$(DESTDIR)$(toolexeclibgodatabasesqldir)" "$(DESTDIR)$(toolexeclibgodebugdir)" "$(DESTDIR)$(toolexeclibgoencodingdir)" "$(DESTDIR)$(toolexeclibgoexpdir)" "$(DESTDIR)$(toolexeclibgoexphtmldir)" "$(DESTDIR)$(toolexeclibgoexplocaledir)" "$(DESTDIR)$(toolexeclibgoexplocalecollatedir)" "$(DESTDIR)$(toolexeclibgogodir)" "$(DESTDIR)$(toolexeclibgohashdir)" "$(DESTDIR)$(toolexeclibgohtmldir)" "$(DESTDIR)$(toolexeclibgoimagedir)" "$(DESTDIR)$(toolexeclibgoindexdir)" "$(DESTDIR)$(toolexeclibgoiodir)" "$(DESTDIR)$(toolexeclibgologdir)" "$(DESTDIR)$(toolexeclibgomathdir)" "$(DESTDIR)$(toolexeclibgomimedir)" "$(DESTDIR)$(toolexeclibgonetdir)" "$(DESTDIR)$(toolexeclibgonethttpdir)" "$(DESTDIR)$(toolexeclibgonetrpcdir)" "$(DESTDIR)$(toolexeclibgoolddir)" "$(DESTDIR)$(toolexeclibgoosdir)" "$(DESTDIR)$(toolexeclibgopathdir)" "$(DESTDIR)$(toolexeclibgoregexpdir)" "$(DESTDIR)$(toolexeclibgoruntimedir)" "$(DESTDIR)$(toolexeclibgosyncdir)" "$(DESTDIR)$(toolexeclibgotestingdir)" "$(DESTDIR)$(toolexeclibgotextdir)" "$(DESTDIR)$(toolexeclibgotexttemplatedir)" "$(DESTDIR)$(toolexeclibgounicodedir)"; do \
+	for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(toolexeclibgodir)" "$(DESTDIR)$(toolexeclibgoarchivedir)" "$(DESTDIR)$(toolexeclibgocompressdir)" "$(DESTDIR)$(toolexeclibgocontainerdir)" "$(DESTDIR)$(toolexeclibgocryptodir)" "$(DESTDIR)$(toolexeclibgocryptox509dir)" "$(DESTDIR)$(toolexeclibgodatabasedir)" "$(DESTDIR)$(toolexeclibgodatabasesqldir)" "$(DESTDIR)$(toolexeclibgodebugdir)" "$(DESTDIR)$(toolexeclibgoencodingdir)" "$(DESTDIR)$(toolexeclibgoexpdir)" "$(DESTDIR)$(toolexeclibgogodir)" "$(DESTDIR)$(toolexeclibgohashdir)" "$(DESTDIR)$(toolexeclibgohtmldir)" "$(DESTDIR)$(toolexeclibgoimagedir)" "$(DESTDIR)$(toolexeclibgoindexdir)" "$(DESTDIR)$(toolexeclibgoiodir)" "$(DESTDIR)$(toolexeclibgologdir)" "$(DESTDIR)$(toolexeclibgomathdir)" "$(DESTDIR)$(toolexeclibgomimedir)" "$(DESTDIR)$(toolexeclibgonetdir)" "$(DESTDIR)$(toolexeclibgonethttpdir)" "$(DESTDIR)$(toolexeclibgonetrpcdir)" "$(DESTDIR)$(toolexeclibgoolddir)" "$(DESTDIR)$(toolexeclibgoosdir)" "$(DESTDIR)$(toolexeclibgopathdir)" "$(DESTDIR)$(toolexeclibgoregexpdir)" "$(DESTDIR)$(toolexeclibgoruntimedir)" "$(DESTDIR)$(toolexeclibgosyncdir)" "$(DESTDIR)$(toolexeclibgotestingdir)" "$(DESTDIR)$(toolexeclibgotextdir)" "$(DESTDIR)$(toolexeclibgotexttemplatedir)" "$(DESTDIR)$(toolexeclibgounicodedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-recursive
@@ -4231,9 +4063,6 @@
 	install-toolexeclibgodatabasesqlDATA \
 	install-toolexeclibgodebugDATA \
 	install-toolexeclibgoencodingDATA install-toolexeclibgoexpDATA \
-	install-toolexeclibgoexphtmlDATA \
-	install-toolexeclibgoexplocaleDATA \
-	install-toolexeclibgoexplocalecollateDATA \
 	install-toolexeclibgogoDATA install-toolexeclibgohashDATA \
 	install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \
 	install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
@@ -4299,11 +4128,8 @@
 	uninstall-toolexeclibgodatabasesqlDATA \
 	uninstall-toolexeclibgodebugDATA \
 	uninstall-toolexeclibgoencodingDATA \
-	uninstall-toolexeclibgoexpDATA \
-	uninstall-toolexeclibgoexphtmlDATA \
-	uninstall-toolexeclibgoexplocaleDATA \
-	uninstall-toolexeclibgoexplocalecollateDATA \
-	uninstall-toolexeclibgogoDATA uninstall-toolexeclibgohashDATA \
+	uninstall-toolexeclibgoexpDATA uninstall-toolexeclibgogoDATA \
+	uninstall-toolexeclibgohashDATA \
 	uninstall-toolexeclibgohtmlDATA \
 	uninstall-toolexeclibgoimageDATA \
 	uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
@@ -4348,9 +4174,6 @@
 	install-toolexeclibgodatabasesqlDATA \
 	install-toolexeclibgodebugDATA \
 	install-toolexeclibgoencodingDATA install-toolexeclibgoexpDATA \
-	install-toolexeclibgoexphtmlDATA \
-	install-toolexeclibgoexplocaleDATA \
-	install-toolexeclibgoexplocalecollateDATA \
 	install-toolexeclibgogoDATA install-toolexeclibgohashDATA \
 	install-toolexeclibgohtmlDATA install-toolexeclibgoimageDATA \
 	install-toolexeclibgoindexDATA install-toolexeclibgoioDATA \
@@ -4380,11 +4203,8 @@
 	uninstall-toolexeclibgodatabasesqlDATA \
 	uninstall-toolexeclibgodebugDATA \
 	uninstall-toolexeclibgoencodingDATA \
-	uninstall-toolexeclibgoexpDATA \
-	uninstall-toolexeclibgoexphtmlDATA \
-	uninstall-toolexeclibgoexplocaleDATA \
-	uninstall-toolexeclibgoexplocalecollateDATA \
-	uninstall-toolexeclibgogoDATA uninstall-toolexeclibgohashDATA \
+	uninstall-toolexeclibgoexpDATA uninstall-toolexeclibgogoDATA \
+	uninstall-toolexeclibgohashDATA \
 	uninstall-toolexeclibgohtmlDATA \
 	uninstall-toolexeclibgoimageDATA \
 	uninstall-toolexeclibgoindexDATA uninstall-toolexeclibgoioDATA \
@@ -4417,6 +4237,10 @@
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
 
+netpoll.c: $(srcdir)/runtime/netpoll.goc goc2c
+	./goc2c $< > $@.tmp
+	mv -f $@.tmp $@
+
 reflect.c: $(srcdir)/runtime/reflect.goc goc2c
 	./goc2c $< > $@.tmp
 	mv -f $@.tmp $@
@@ -5172,69 +4996,6 @@
 	@$(CHECK)
 .PHONY: encoding/xml/check
 
-@go_include@ exp/cookiejar.lo.dep
-exp/cookiejar.lo.dep: $(go_exp_cookiejar_files)
-	$(BUILDDEPS)
-exp/cookiejar.lo: $(go_exp_cookiejar_files)
-	$(BUILDPACKAGE)
-exp/cookiejar/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/cookiejar/check
-
-@go_include@ exp/ebnf.lo.dep
-exp/ebnf.lo.dep: $(go_exp_ebnf_files)
-	$(BUILDDEPS)
-exp/ebnf.lo: $(go_exp_ebnf_files)
-	$(BUILDPACKAGE)
-exp/ebnf/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ebnf/check
-
-@go_include@ exp/html.lo.dep
-exp/html.lo.dep: $(go_exp_html_files)
-	$(BUILDDEPS)
-exp/html.lo: $(go_exp_html_files)
-	$(BUILDPACKAGE)
-exp/html/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/check
-
-@go_include@ exp/html/atom.lo.dep
-exp/html/atom.lo.dep: $(go_exp_html_atom_files)
-	$(BUILDDEPS)
-exp/html/atom.lo: $(go_exp_html_atom_files)
-	$(BUILDPACKAGE)
-exp/html/atom/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/html/atom/check
-
-@go_include@ exp/locale/collate.lo.dep
-exp/locale/collate.lo.dep: $(go_exp_locale_collate_files)
-	$(BUILDDEPS)
-exp/locale/collate.lo: $(go_exp_locale_collate_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/check
-
-@go_include@ exp/locale/collate/build.lo.dep
-exp/locale/collate/build.lo.dep: $(go_exp_locale_collate_build_files)
-	$(BUILDDEPS)
-exp/locale/collate/build.lo: $(go_exp_locale_collate_build_files)
-	$(BUILDPACKAGE)
-exp/locale/collate/build/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/locale/collate/build/check
-
-@go_include@ exp/norm.lo.dep
-exp/norm.lo.dep: $(go_exp_norm_files)
-	$(BUILDDEPS)
-exp/norm.lo: $(go_exp_norm_files)
-	$(BUILDPACKAGE)
-exp/norm/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/norm/check
-
 @go_include@ exp/proxy.lo.dep
 exp/proxy.lo.dep: $(go_exp_proxy_files)
 	$(BUILDDEPS)
@@ -5244,15 +5005,6 @@
 	@$(CHECK)
 .PHONY: exp/proxy/check
 
-@go_include@ exp/ssa.lo.dep
-exp/ssa.lo.dep: $(go_exp_ssa_files)
-	$(BUILDDEPS)
-exp/ssa.lo: $(go_exp_ssa_files)
-	$(BUILDPACKAGE)
-exp/ssa/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/ssa/check
-
 @go_include@ exp/terminal.lo.dep
 exp/terminal.lo.dep: $(go_exp_terminal_files)
 	$(BUILDDEPS)
@@ -5262,24 +5014,6 @@
 	@$(CHECK)
 .PHONY: exp/terminal/check
 
-@go_include@ exp/utf8string.lo.dep
-exp/utf8string.lo.dep: $(go_exp_utf8string_files)
-	$(BUILDDEPS)
-exp/utf8string.lo: $(go_exp_utf8string_files)
-	$(BUILDPACKAGE)
-exp/utf8string/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/utf8string/check
-
-@go_include@ exp/inotify.lo.dep
-exp/inotify.lo.dep: $(go_exp_inotify_files)
-	$(BUILDDEPS)
-exp/inotify.lo: $(go_exp_inotify_files)
-	$(BUILDPACKAGE)
-exp/inotify/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: exp/inotify/check
-
 @go_include@ html/template.lo.dep
 html/template.lo.dep: $(go_html_template_files)
 	$(BUILDDEPS)
@@ -5370,15 +5104,6 @@
 	@$(CHECK)
 .PHONY: go/token/check
 
-@go_include@ go/types.lo.dep
-go/types.lo.dep: $(go_go_types_files)
-	$(BUILDDEPS)
-go/types.lo: $(go_go_types_files)
-	$(BUILDPACKAGE)
-go/types/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: go/types/check
-
 @go_include@ hash/adler32.lo.dep
 hash/adler32.lo.dep: $(go_hash_adler32_files)
 	$(BUILDDEPS)
@@ -5589,6 +5314,15 @@
 	@$(CHECK)
 .PHONY: net/http/cgi/check
 
+@go_include@ net/http/cookiejar.lo.dep
+net/http/cookiejar.lo.dep: $(go_net_http_cookiejar_files)
+	$(BUILDDEPS)
+net/http/cookiejar.lo: $(go_net_http_cookiejar_files)
+	$(BUILDPACKAGE)
+net/http/cookiejar/check: $(CHECK_DEPS)
+	@$(CHECK)
+.PHONY: net/http/cookiejar/check
+
 @go_include@ net/http/fcgi.lo.dep
 net/http/fcgi.lo.dep: $(go_net_http_fcgi_files)
 	$(BUILDDEPS)
@@ -5634,15 +5368,6 @@
 	@$(CHECK)
 .PHONY: net/rpc/jsonrpc/check
 
-@go_include@ old/netchan.lo.dep
-old/netchan.lo.dep: $(go_old_netchan_files)
-	$(BUILDDEPS)
-old/netchan.lo: $(go_old_netchan_files)
-	$(BUILDPACKAGE)
-old/netchan/check: $(CHECK_DEPS)
-	@$(CHECK)
-.PHONY: old/netchan/check
-
 @go_include@ old/regexp.lo.dep
 old/regexp.lo.dep: $(go_old_regexp_files)
 	$(BUILDDEPS)
@@ -5983,30 +5708,10 @@
 encoding/xml.gox: encoding/xml.lo
 	$(BUILDGOX)
 
-exp/cookiejar.gox: exp/cookiejar.lo
-	$(BUILDGOX)
-exp/ebnf.gox: exp/ebnf.lo
-	$(BUILDGOX)
-exp/html.gox: exp/html.lo
-	$(BUILDGOX)
-exp/html/atom.gox: exp/html/atom.lo
-	$(BUILDGOX)
-exp/inotify.gox: exp/inotify.lo
-	$(BUILDGOX)
-exp/locale/collate.gox: exp/locale/collate.lo
-	$(BUILDGOX)
-exp/locale/collate/build.gox: exp/locale/collate/build.lo
-	$(BUILDGOX)
-exp/norm.gox: exp/norm.lo
-	$(BUILDGOX)
 exp/proxy.gox: exp/proxy.lo
 	$(BUILDGOX)
-exp/ssa.gox: exp/ssa.lo
-	$(BUILDGOX)
 exp/terminal.gox: exp/terminal.lo
 	$(BUILDGOX)
-exp/utf8string.gox: exp/utf8string.lo	
-	$(BUILDGOX)
 
 html/template.gox: html/template.lo
 	$(BUILDGOX)
@@ -6027,8 +5732,6 @@
 	$(BUILDGOX)
 go/token.gox: go/token.lo
 	$(BUILDGOX)
-go/types.gox: go/types.lo
-	$(BUILDGOX)
 
 hash/adler32.gox: hash/adler32.lo
 	$(BUILDGOX)
@@ -6084,6 +5787,8 @@
 
 net/http/cgi.gox: net/http/cgi.lo
 	$(BUILDGOX)
+net/http/cookiejar.gox: net/http/cookiejar.lo
+	$(BUILDGOX)
 net/http/fcgi.gox: net/http/fcgi.lo
 	$(BUILDGOX)
 net/http/httptest.gox: net/http/httptest.lo
@@ -6096,8 +5801,6 @@
 net/rpc/jsonrpc.gox: net/rpc/jsonrpc.lo
 	$(BUILDGOX)
 
-old/netchan.gox: old/netchan.lo
-	$(BUILDGOX)
 old/regexp.gox: old/regexp.lo
 	$(BUILDGOX)
 old/template.gox: old/template.lo
diff -Naur gcc-4.8.1.orig/libgo/MERGE gcc-4.8.1/libgo/MERGE
--- gcc-4.8.1.orig/libgo/MERGE	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/MERGE	2013-07-16 01:55:04.520470000 -0500
@@ -1,4 +1,4 @@
-229081515358
+a7bd9a33067b
 
 The first line of this file holds the Mercurial revision number of the
 last merge done from the master library sources.
diff -Naur gcc-4.8.1.orig/libgo/merge.sh gcc-4.8.1/libgo/merge.sh
--- gcc-4.8.1.orig/libgo/merge.sh	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/merge.sh	2013-07-16 01:55:04.520470000 -0500
@@ -163,12 +163,12 @@
   done
 done
 
-runtime="chan.c cpuprof.c env_posix.c lock_futex.c lock_sema.c mcache.c mcentral.c mfinal.c mfixalloc.c mgc0.c mgc0.h mheap.c msize.c panic.c print.c proc.c race.h runtime.c runtime.h signal_unix.c malloc.h malloc.goc mprof.goc parfor.c runtime1.goc sema.goc sigqueue.goc string.goc time.goc"
+runtime="chan.c cpuprof.c env_posix.c lock_futex.c lock_sema.c mcache.c mcentral.c mfinal.c mfixalloc.c mgc0.c mgc0.h mheap.c msize.c netpoll.goc netpoll_epoll.c netpoll_kqueue.c netpoll_stub.c panic.c print.c proc.c race.h runtime.c runtime.h signal_unix.c signal_unix.h malloc.h malloc.goc mprof.goc parfor.c runtime1.goc sema.goc sigqueue.goc string.goc time.goc"
 for f in $runtime; do
   merge_c $f $f
 done
 
-merge_c thread_linux.c thread-linux.c
+merge_c os_linux.c thread-linux.c
 merge_c mem_linux.c mem.c
 
 (cd ${OLDDIR}/src/pkg && find . -name '*.go' -print) | while read f; do
diff -Naur gcc-4.8.1.orig/libgo/runtime/chan.c gcc-4.8.1/libgo/runtime/chan.c
--- gcc-4.8.1.orig/libgo/runtime/chan.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/chan.c	2013-07-16 01:55:04.520470000 -0500
@@ -35,6 +35,8 @@
 	SudoG*	last;
 };
 
+// The garbage collector is assuming that Hchan can only contain pointers into the stack
+// and cannot contain pointers into the heap.
 struct	Hchan
 {
 	uintgo	qcount;			// total data in the q
@@ -49,6 +51,8 @@
 	Lock;
 };
 
+uint32 runtime_Hchansize = sizeof(Hchan);
+
 // Buffer follows Hchan immediately in memory.
 // chanbuf(c, i) is pointer to the i'th slot in the buffer.
 #define chanbuf(c, i) ((byte*)((c)+1)+(uintptr)(c)->elemsize*(i))
@@ -107,6 +111,7 @@
 	c->elemsize = elem->__size;
 	c->elemalign = elem->__align;
 	c->dataqsiz = hint;
+	runtime_settype(c, (uintptr)t | TypeInfo_Chan);
 
 	if(debug)
 		runtime_printf("makechan: chan=%p; elemsize=%D; elemalign=%d; dataqsiz=%D\n",
@@ -875,16 +880,27 @@
 static void
 selunlock(Select *sel)
 {
-	uint32 i;
-	Hchan *c, *c0;
+	int32 i, n, r;
+	Hchan *c;
 
-	c = nil;
-	for(i=sel->ncase; i-->0;) {
-		c0 = sel->lockorder[i];
-		if(c0 && c0 != c) {
-			c = c0;
-			runtime_unlock(c);
-		}
+	// We must be very careful here to not touch sel after we have unlocked
+	// the last lock, because sel can be freed right after the last unlock.
+	// Consider the following situation.
+	// First M calls runtime_park() in runtime_selectgo() passing the sel.
+	// Once runtime_park() has unlocked the last lock, another M makes
+	// the G that calls select runnable again and schedules it for execution.
+	// When the G runs on another M, it locks all the locks and frees sel.
+	// Now if the first M touches sel, it will access freed memory.
+	n = (int32)sel->ncase;
+	r = 0;
+	// skip the default case
+	if(n>0 && sel->lockorder[0] == nil)
+		r = 1;
+	for(i = n-1; i >= r; i--) {
+		c = sel->lockorder[i];
+		if(i>0 && sel->lockorder[i-1] == c)
+			continue;  // will unlock it on the next iteration
+		runtime_unlock(c);
 	}
 }
 
@@ -910,7 +926,7 @@
 selectgo(Select **selp)
 {
 	Select *sel;
-	uint32 o, i, j;
+	uint32 o, i, j, k;
 	Scase *cas, *dfl;
 	Hchan *c;
 	SudoG *sg;
@@ -946,12 +962,42 @@
 	}
 
 	// sort the cases by Hchan address to get the locking order.
+	// simple heap sort, to guarantee n log n time and constant stack footprint.
 	for(i=0; i<sel->ncase; i++) {
-		c = sel->scase[i].chan;
-		for(j=i; j>0 && sel->lockorder[j-1] >= c; j--)
-			sel->lockorder[j] = sel->lockorder[j-1];
+		j = i;
+		c = sel->scase[j].chan;
+		while(j > 0 && sel->lockorder[k=(j-1)/2] < c) {
+			sel->lockorder[j] = sel->lockorder[k];
+			j = k;
+		}
+		sel->lockorder[j] = c;
+	}
+	for(i=sel->ncase; i-->0; ) {
+		c = sel->lockorder[i];
+		sel->lockorder[i] = sel->lockorder[0];
+		j = 0;
+		for(;;) {
+			k = j*2+1;
+			if(k >= i)
+				break;
+			if(k+1 < i && sel->lockorder[k] < sel->lockorder[k+1])
+				k++;
+			if(c < sel->lockorder[k]) {
+				sel->lockorder[j] = sel->lockorder[k];
+				j = k;
+				continue;
+			}
+			break;
+		}
 		sel->lockorder[j] = c;
 	}
+	/*
+	for(i=0; i+1<sel->ncase; i++)
+		if(sel->lockorder[i] > sel->lockorder[i+1]) {
+			runtime_printf("i=%d %p %p\n", i, sel->lockorder[i], sel->lockorder[i+1]);
+			runtime_throw("select: broken sort");
+		}
+	*/
 	sellock(sel);
 
 loop:
@@ -1048,7 +1094,7 @@
 	c = cas->chan;
 
 	if(c->dataqsiz > 0)
-		runtime_throw("selectgo: shouldnt happen");
+		runtime_throw("selectgo: shouldn't happen");
 
 	if(debug)
 		runtime_printf("wait-return: sel=%p c=%p cas=%p kind=%d\n",
diff -Naur gcc-4.8.1.orig/libgo/runtime/cpuprof.c gcc-4.8.1/libgo/runtime/cpuprof.c
--- gcc-4.8.1.orig/libgo/runtime/cpuprof.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/cpuprof.c	2013-07-16 01:55:04.520470000 -0500
@@ -121,7 +121,9 @@
 // LostProfileData is a no-op function used in profiles
 // to mark the number of profiling stack traces that were
 // discarded due to slow data writers.
-static void LostProfileData(void) {
+static void
+LostProfileData(void)
+{
 }
 
 extern void runtime_SetCPUProfileRate(intgo)
@@ -365,7 +367,7 @@
 		return ret;
 
 	// Wait for new log.
-	runtime_entersyscall();
+	runtime_entersyscallblock();
 	runtime_notesleep(&p->wait);
 	runtime_exitsyscall();
 	runtime_noteclear(&p->wait);
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-cgo.c gcc-4.8.1/libgo/runtime/go-cgo.c
--- gcc-4.8.1.orig/libgo/runtime/go-cgo.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-cgo.c	2013-07-23 15:26:30.052588000 -0500
@@ -35,6 +35,9 @@
   M* m;
   G* g;
 
+  if (runtime_needextram && runtime_cas (&runtime_needextram, 1, 0))
+    runtime_newextram ();
+
   m = runtime_m ();
   ++m->ncgocall;
   g = runtime_g ();
@@ -71,7 +74,24 @@
 void
 syscall_cgocallback ()
 {
+  M *mp;
+
+  mp = runtime_m ();
+  if (mp == NULL)
+    {
+      runtime_needm ();
+      mp = runtime_m ();
+      mp->dropextram = true;
+    }
+
   runtime_exitsyscall ();
+
+  mp = runtime_m ();
+  if (mp->needextram)
+    {
+      mp->needextram = 0;
+      runtime_newextram ();
+    }
 }
 
 /* Prepare to return to C/C++ code from a callback to Go code.  */
@@ -79,7 +99,15 @@
 void
 syscall_cgocallbackdone ()
 {
+  M *mp;
+
   runtime_entersyscall ();
+  mp = runtime_m ();
+  if (mp->dropextram && runtime_g ()->ncgo == 0)
+    {
+      mp->dropextram = false;
+      runtime_dropm ();
+    }
 }
 
 /* Allocate memory and save it in a list visible to the Go garbage
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-defer.c gcc-4.8.1/libgo/runtime/go-defer.c
--- gcc-4.8.1.orig/libgo/runtime/go-defer.c	2011-11-27 23:45:49.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-defer.c	2013-07-23 15:26:30.052588000 -0500
@@ -42,6 +42,7 @@
     {
       struct __go_defer_stack *d;
       void (*pfn) (void *);
+      M *m;
 
       d = g->defer;
       pfn = d->__pfn;
@@ -51,7 +52,14 @@
 	(*pfn) (d->__arg);
 
       g->defer = d->__next;
-      __go_free (d);
+
+      /* This may be called by a cgo callback routine to defer the
+	 call to syscall.CgocallBackDone, in which case we will not
+	 have a memory context.  Don't try to free anything in that
+	 case--the GC will release it later.  */
+      m = runtime_m ();
+      if (m != NULL && m->mcache != NULL)
+	__go_free (d);
 
       /* Since we are executing a defer function here, we know we are
 	 returning from the calling function.  If the calling
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-main.c gcc-4.8.1/libgo/runtime/go-main.c
--- gcc-4.8.1.orig/libgo/runtime/go-main.c	2012-10-31 22:02:13.000000000 -0500
+++ gcc-4.8.1/libgo/runtime/go-main.c	2013-07-16 01:55:04.520470000 -0500
@@ -30,9 +30,6 @@
 
 extern char **environ;
 
-extern void runtime_main (void);
-static void mainstart (void *);
-
 /* The main function.  */
 
 int
@@ -42,13 +39,7 @@
   runtime_args (argc, (byte **) argv);
   runtime_osinit ();
   runtime_schedinit ();
-  __go_go (mainstart, NULL);
+  __go_go (runtime_main, NULL);
   runtime_mstart (runtime_m ());
   abort ();
 }
-
-static void
-mainstart (void *arg __attribute__ ((unused)))
-{
-  runtime_main ();
-}
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-map-index.c gcc-4.8.1/libgo/runtime/go-map-index.c
--- gcc-4.8.1.orig/libgo/runtime/go-map-index.c	2012-01-17 08:18:39.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-map-index.c	2013-07-16 01:55:04.520470000 -0500
@@ -98,7 +98,7 @@
   key_descriptor = descriptor->__map_descriptor->__key_type;
   key_offset = descriptor->__key_offset;
   key_size = key_descriptor->__size;
-  __go_assert (key_size != 0 && key_size != -1UL);
+  __go_assert (key_size != -1UL);
   equalfn = key_descriptor->__equalfn;
 
   key_hash = key_descriptor->__hashfn (key, key_size);
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-panic.c gcc-4.8.1/libgo/runtime/go-panic.c
--- gcc-4.8.1.orig/libgo/runtime/go-panic.c	2012-10-31 22:02:13.000000000 -0500
+++ gcc-4.8.1/libgo/runtime/go-panic.c	2013-07-23 15:26:30.052588000 -0500
@@ -54,6 +54,7 @@
     {
       struct __go_defer_stack *d;
       void (*pfn) (void *);
+      M *m;
 
       d = g->defer;
       if (d == NULL)
@@ -95,7 +96,14 @@
 	}
 
       g->defer = d->__next;
-      __go_free (d);
+
+      /* This may be called by a cgo callback routine to defer the
+	 call to syscall.CgocallBackDone, in which case we will not
+	 have a memory context.  Don't try to free anything in that
+	 case--the GC will release it later.  */
+      m = runtime_m ();
+      if (m != NULL && m->mcache != NULL)
+	__go_free (d);
     }
 
   /* The panic was not recovered.  */
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-call.c gcc-4.8.1/libgo/runtime/go-reflect-call.c
--- gcc-4.8.1.orig/libgo/runtime/go-reflect-call.c	2013-03-01 13:26:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-reflect-call.c	2013-06-18 18:50:42.020320000 -0500
@@ -302,7 +302,9 @@
   in_types = ((const struct __go_type_descriptor **)
 	      func->__in.__values);
 
-  num_args = num_params + (is_interface ? 1 : 0);
+  num_args = (num_params
+	      + (is_interface ? 1 : 0)
+	      + (!is_interface && !is_method ? 1 : 0));
   args = (ffi_type **) __go_alloc (num_args * sizeof (ffi_type *));
   i = 0;
   off = 0;
@@ -319,6 +321,12 @@
   for (; i < num_params; ++i)
     args[i + off] = go_type_to_ffi (in_types[i]);
 
+  if (!is_interface && !is_method)
+    {
+      // There is a closure argument, a pointer.
+      args[i + off] = &ffi_type_pointer;
+    }
+
   rettype = go_func_return_ffi (func);
 
   status = ffi_prep_cif (cif, FFI_DEFAULT_ABI, num_args, rettype, args);
@@ -491,11 +499,24 @@
 }
 
 /* Call a function.  The type of the function is FUNC_TYPE, and the
-   address is FUNC_ADDR.  PARAMS is an array of parameter addresses.
-   RESULTS is an array of result addresses.  */
+   closure is FUNC_VAL.  PARAMS is an array of parameter addresses.
+   RESULTS is an array of result addresses.
+
+   If IS_INTERFACE is true this is a call to an interface method and
+   the first argument is the receiver, which is always a pointer.
+   This argument, the receiver, is not described in FUNC_TYPE.
+
+   If IS_METHOD is true this is a call to a method expression.  The
+   first argument is the receiver.  It is described in FUNC_TYPE, but
+   regardless of FUNC_TYPE, it is passed as a pointer.
+
+   If neither IS_INTERFACE nor IS_METHOD is true then we are calling a
+   function indirectly, and the caller is responsible for passing a
+   trailing closure argument, a pointer, which is not described in
+   FUNC_TYPE.  */
 
 void
-reflect_call (const struct __go_func_type *func_type, const void *func_addr,
+reflect_call (const struct __go_func_type *func_type, FuncVal *func_val,
 	      _Bool is_interface, _Bool is_method, void **params,
 	      void **results)
 {
@@ -507,7 +528,7 @@
 
   call_result = (unsigned char *) malloc (go_results_size (func_type));
 
-  ffi_call (&cif, func_addr, call_result, params);
+  ffi_call (&cif, func_val->fn, call_result, params);
 
   /* Some day we may need to free result values if RESULTS is
      NULL.  */
@@ -521,7 +542,7 @@
 
 void
 reflect_call (const struct __go_func_type *func_type __attribute__ ((unused)),
-	      const void *func_addr __attribute__ ((unused)),
+	      FuncVal *func_val __attribute__ ((unused)),
 	      _Bool is_interface __attribute__ ((unused)),
 	      _Bool is_method __attribute__ ((unused)),
 	      void **params __attribute__ ((unused)),
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-reflect-map.c gcc-4.8.1/libgo/runtime/go-reflect-map.c
--- gcc-4.8.1.orig/libgo/runtime/go-reflect-map.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-reflect-map.c	2013-07-16 01:55:04.520470000 -0500
@@ -238,3 +238,12 @@
   __builtin_memcpy (ret, &map, sizeof (void *));
   return (uintptr_t) ret;
 }
+
+extern _Bool ismapkey (const struct __go_type_descriptor *)
+  __asm__ (GOSYM_PREFIX "reflect.ismapkey");
+
+_Bool
+ismapkey (const struct __go_type_descriptor *typ)
+{
+  return typ != NULL && typ->__hashfn != __go_type_hash_error;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-signal.c gcc-4.8.1/libgo/runtime/go-signal.c
--- gcc-4.8.1.orig/libgo/runtime/go-signal.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-signal.c	2013-07-22 23:42:18.506577000 -0500
@@ -12,6 +12,7 @@
 #include "runtime.h"
 #include "go-assert.h"
 #include "go-panic.h"
+#include "signal_unix.h"
 
 #ifndef SA_RESTART
   #define SA_RESTART 0
@@ -157,35 +158,45 @@
 /* Handle a signal, for cases where we don't panic.  We can split the
    stack here.  */
 
-static void
-sig_handler (int sig)
+void
+runtime_sighandler (int sig, Siginfo *info,
+		    void *context __attribute__ ((unused)), G *gp)
 {
+  M *m;
   int i;
 
-  if (runtime_m () == NULL)
-    {
-      runtime_badsignal (sig);
-      return;
-    }
+  m = runtime_m ();
 
 #ifdef SIGPROF
   if (sig == SIGPROF)
     {
-      runtime_sigprof ();
+      if (m != NULL && gp != m->g0 && gp != m->gsignal)
+	runtime_sigprof ();
       return;
     }
 #endif
 
+  if (m == NULL)
+    {
+      runtime_badsignal (sig);
+      return;
+    }
+
   for (i = 0; runtime_sigtab[i].sig != -1; ++i)
     {
       SigTab *t;
+      bool notify, crash;
 
       t = &runtime_sigtab[i];
 
       if (t->sig != sig)
 	continue;
 
-      if ((t->flags & SigNotify) != 0)
+      notify = false;
+#ifdef SA_SIGINFO
+      notify = info != NULL && info->si_code == SI_USER;
+#endif
+      if (notify || (t->flags & SigNotify) != 0)
 	{
 	  if (__go_sigsend (sig))
 	    return;
@@ -210,9 +221,15 @@
 	  runtime_printf ("%s\n", name);
       }
 
+      if (m->lockedg != NULL && m->ncgo > 0 && gp == m->g0)
+	{
+	  runtime_printf("signal arrived during cgo execution\n");
+	  gp = m->lockedg;
+	}
+
       runtime_printf ("\n");
 
-      if (runtime_gotraceback ())
+      if (runtime_gotraceback (&crash))
 	{
 	  G *g;
 
@@ -225,6 +242,9 @@
 	     a readable form.  */
 	}
 
+      if (crash)
+	runtime_crash ();
+
       runtime_exit (2);
     }
 
@@ -259,15 +279,14 @@
    permitted to split the stack.  */
 
 static void
-sig_panic_info_handler (int sig, siginfo_t *info,
-			void *context __attribute__ ((unused)))
+sig_panic_info_handler (int sig, Siginfo *info, void *context)
 {
   G *g;
 
   g = runtime_g ();
   if (g == NULL || info->si_code == SI_USER)
     {
-      sig_handler (sig);
+      runtime_sighandler (sig, info, context, g);
       return;
     }
 
@@ -331,7 +350,7 @@
   g = runtime_g ();
   if (g == NULL)
     {
-      sig_handler (sig);
+      runtime_sighandler (sig, NULL, NULL, g);
       return;
     }
 
@@ -373,10 +392,10 @@
    the stack.  */
 
 static void
-sig_tramp (int) __attribute__ ((no_split_stack));
+sig_tramp_info (int, Siginfo *, void *) __attribute__ ((no_split_stack));
 
 static void
-sig_tramp (int sig)
+sig_tramp_info (int sig, Siginfo *info, void *context)
 {
   G *gp;
   M *mp;
@@ -403,7 +422,7 @@
 #endif
     }
 
-  sig_handler (sig);
+  runtime_sighandler (sig, info, context, gp);
 
   /* We are going to return back to the signal trampoline and then to
      whatever we were doing before we got the signal.  Restore the
@@ -418,8 +437,20 @@
     }
 }
 
+#ifndef SA_SIGINFO
+
+static void sig_tramp (int sig) __attribute__ ((no_split_stack));
+
+static void
+sig_tramp (int sig)
+{
+  sig_tramp_info (sig, NULL, NULL);
+}
+
+#endif
+
 void
-runtime_setsig (int32 i, bool def __attribute__ ((unused)), bool restart)
+runtime_setsig (int32 i, GoSighandler *fn, bool restart)
 {
   struct sigaction sa;
   int r;
@@ -434,17 +465,30 @@
 
   if ((t->flags & SigPanic) == 0)
     {
+#ifdef SA_SIGINFO
+      sa.sa_flags = SA_ONSTACK | SA_SIGINFO;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_tramp_info;
+      sa.sa_sigaction = (void *) fn;
+#else
       sa.sa_flags = SA_ONSTACK;
-      sa.sa_handler = sig_tramp;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_tramp;
+      sa.sa_handler = (void *) fn;
+#endif
     }
   else
     {
 #ifdef SA_SIGINFO
       sa.sa_flags = SA_SIGINFO;
-      sa.sa_sigaction = sig_panic_info_handler;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_panic_info_handler;
+      sa.sa_sigaction = (void *) fn;
 #else
       sa.sa_flags = 0;
-      sa.sa_handler = sig_panic_handler;
+      if (fn == runtime_sighandler)
+	fn = (void *) sig_panic_handler;
+      sa.sa_handler = (void *) fn;
 #endif
     }
 
@@ -455,6 +499,37 @@
     __go_assert (0);
 }
 
+GoSighandler*
+runtime_getsig (int32 i)
+{
+  struct sigaction sa;
+  int r;
+  SigTab *t;
+
+  memset (&sa, 0, sizeof sa);
+
+  r = sigemptyset (&sa.sa_mask);
+  __go_assert (r == 0);
+
+  t = &runtime_sigtab[i];
+
+  if (sigaction (t->sig, NULL, &sa) != 0)
+    runtime_throw ("sigaction read failure");
+
+  if ((void *) sa.sa_handler == sig_tramp_info)
+    return runtime_sighandler;
+#ifdef SA_SIGINFO
+  if ((void *) sa.sa_handler == sig_panic_info_handler)
+    return runtime_sighandler;
+#else
+  if ((void *) sa.sa_handler == sig_tramp
+      || (void *) sa.sa_handler == sig_panic_handler)
+    return runtime_sighandler;
+#endif
+
+  return (void *) sa.sa_handler;
+}
+
 /* Used by the os package to raise SIGPIPE.  */
 
 void os_sigpipe (void) __asm__ (GOSYM_PREFIX "os.sigpipe");
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-newarray.c gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c
--- gcc-4.8.1.orig/libgo/runtime/go-unsafe-newarray.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-unsafe-newarray.c	2013-07-16 01:55:04.520470000 -0500
@@ -21,21 +21,5 @@
 void *
 unsafe_NewArray (const struct __go_type_descriptor *descriptor, intgo n)
 {
-  uint64 size;
-  void *ret;
-
-  size = n * descriptor->__size;
-  if (size == 0)
-    ret = &runtime_zerobase;
-  else if ((descriptor->__code & GO_NO_POINTERS) != 0)
-    ret = runtime_mallocgc (size, FlagNoPointers, 1, 1);
-  else
-    {
-      ret = runtime_mallocgc (size, 0, 1, 1);
-
-      if (UseSpanType)
-	runtime_settype (ret, (uintptr) descriptor | TypeInfo_Array);
-    }
-
-  return ret;
+  return runtime_cnewarray (descriptor, n);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/go-unsafe-new.c gcc-4.8.1/libgo/runtime/go-unsafe-new.c
--- gcc-4.8.1.orig/libgo/runtime/go-unsafe-new.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/go-unsafe-new.c	2013-07-16 01:55:04.520470000 -0500
@@ -21,14 +21,5 @@
 void *
 unsafe_New (const struct __go_type_descriptor *descriptor)
 {
-  uint32 flag;
-  void *ret;
-
-  flag = (descriptor->__code & GO_NO_POINTERS) != 0 ? FlagNoPointers : 0;
-  ret = runtime_mallocgc (descriptor->__size, flag, 1, 1);
-
-  if (UseSpanType && flag == 0)
-    runtime_settype (ret, (uintptr) descriptor | TypeInfo_SingleObject);
-
-  return ret;
+  return runtime_cnew (descriptor);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_futex.c gcc-4.8.1/libgo/runtime/lock_futex.c
--- gcc-4.8.1.orig/libgo/runtime/lock_futex.c	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/lock_futex.c	2013-07-16 01:55:04.520470000 -0500
@@ -41,7 +41,7 @@
 		runtime_throw("runtime_lock: lock count");
 
 	// Speculative grab for lock.
-	v = runtime_xchg(&l->key, MUTEX_LOCKED);
+	v = runtime_xchg((uint32*)&l->key, MUTEX_LOCKED);
 	if(v == MUTEX_UNLOCKED)
 		return;
 
@@ -64,7 +64,7 @@
 		// Try for lock, spinning.
 		for(i = 0; i < spin; i++) {
 			while(l->key == MUTEX_UNLOCKED)
-				if(runtime_cas(&l->key, MUTEX_UNLOCKED, wait))
+				if(runtime_cas((uint32*)&l->key, MUTEX_UNLOCKED, wait))
 					return;
 			runtime_procyield(ACTIVE_SPIN_CNT);
 		}
@@ -72,17 +72,17 @@
 		// Try for lock, rescheduling.
 		for(i=0; i < PASSIVE_SPIN; i++) {
 			while(l->key == MUTEX_UNLOCKED)
-				if(runtime_cas(&l->key, MUTEX_UNLOCKED, wait))
+				if(runtime_cas((uint32*)&l->key, MUTEX_UNLOCKED, wait))
 					return;
 			runtime_osyield();
 		}
 
 		// Sleep.
-		v = runtime_xchg(&l->key, MUTEX_SLEEPING);
+		v = runtime_xchg((uint32*)&l->key, MUTEX_SLEEPING);
 		if(v == MUTEX_UNLOCKED)
 			return;
 		wait = MUTEX_SLEEPING;
-		runtime_futexsleep(&l->key, MUTEX_SLEEPING, -1);
+		runtime_futexsleep((uint32*)&l->key, MUTEX_SLEEPING, -1);
 	}
 }
 
@@ -94,11 +94,11 @@
 	if(--runtime_m()->locks < 0)
 		runtime_throw("runtime_unlock: lock count");
 
-	v = runtime_xchg(&l->key, MUTEX_UNLOCKED);
+	v = runtime_xchg((uint32*)&l->key, MUTEX_UNLOCKED);
 	if(v == MUTEX_UNLOCKED)
 		runtime_throw("unlock of unlocked lock");
 	if(v == MUTEX_SLEEPING)
-		runtime_futexwakeup(&l->key, 1);
+		runtime_futexwakeup((uint32*)&l->key, 1);
 }
 
 // One-time notifications.
@@ -111,9 +111,9 @@
 void
 runtime_notewakeup(Note *n)
 {
-	if(runtime_xchg(&n->key, 1))
+	if(runtime_xchg((uint32*)&n->key, 1))
 		runtime_throw("notewakeup - double wakeup");
-	runtime_futexwakeup(&n->key, 1);
+	runtime_futexwakeup((uint32*)&n->key, 1);
 }
 
 void
@@ -121,8 +121,8 @@
 {
 	if(runtime_m()->profilehz > 0)
 		runtime_setprof(false);
-	while(runtime_atomicload(&n->key) == 0)
-		runtime_futexsleep(&n->key, 0, -1);
+	while(runtime_atomicload((uint32*)&n->key) == 0)
+		runtime_futexsleep((uint32*)&n->key, 0, -1);
 	if(runtime_m()->profilehz > 0)
 		runtime_setprof(true);
 }
@@ -137,15 +137,15 @@
 		return;
 	}
 
-	if(runtime_atomicload(&n->key) != 0)
+	if(runtime_atomicload((uint32*)&n->key) != 0)
 		return;
 
 	if(runtime_m()->profilehz > 0)
 		runtime_setprof(false);
 	deadline = runtime_nanotime() + ns;
 	for(;;) {
-		runtime_futexsleep(&n->key, 0, ns);
-		if(runtime_atomicload(&n->key) != 0)
+		runtime_futexsleep((uint32*)&n->key, 0, ns);
+		if(runtime_atomicload((uint32*)&n->key) != 0)
 			break;
 		now = runtime_nanotime();
 		if(now >= deadline)
diff -Naur gcc-4.8.1.orig/libgo/runtime/lock_sema.c gcc-4.8.1/libgo/runtime/lock_sema.c
--- gcc-4.8.1.orig/libgo/runtime/lock_sema.c	2012-03-06 11:57:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/lock_sema.c	2013-07-16 01:55:04.520470000 -0500
@@ -43,7 +43,7 @@
 		runtime_throw("runtime_lock: lock count");
 
 	// Speculative grab for lock.
-	if(runtime_casp(&l->waitm, nil, (void*)LOCKED))
+	if(runtime_casp((void**)&l->key, nil, (void*)LOCKED))
 		return;
 
 	if(m->waitsema == 0)
@@ -56,10 +56,10 @@
 		spin = ACTIVE_SPIN;
 
 	for(i=0;; i++) {
-		v = (uintptr)runtime_atomicloadp(&l->waitm);
+		v = (uintptr)runtime_atomicloadp((void**)&l->key);
 		if((v&LOCKED) == 0) {
 unlocked:
-			if(runtime_casp(&l->waitm, (void*)v, (void*)(v|LOCKED)))
+			if(runtime_casp((void**)&l->key, (void*)v, (void*)(v|LOCKED)))
 				return;
 			i = 0;
 		}
@@ -74,9 +74,9 @@
 			// Queue this M.
 			for(;;) {
 				m->nextwaitm = (void*)(v&~LOCKED);
-				if(runtime_casp(&l->waitm, (void*)v, (void*)((uintptr)m|LOCKED)))
+				if(runtime_casp((void**)&l->key, (void*)v, (void*)((uintptr)m|LOCKED)))
 					break;
-				v = (uintptr)runtime_atomicloadp(&l->waitm);
+				v = (uintptr)runtime_atomicloadp((void**)&l->key);
 				if((v&LOCKED) == 0)
 					goto unlocked;
 			}
@@ -99,15 +99,15 @@
 		runtime_throw("runtime_unlock: lock count");
 
 	for(;;) {
-		v = (uintptr)runtime_atomicloadp(&l->waitm);
+		v = (uintptr)runtime_atomicloadp((void**)&l->key);
 		if(v == LOCKED) {
-			if(runtime_casp(&l->waitm, (void*)LOCKED, nil))
+			if(runtime_casp((void**)&l->key, (void*)LOCKED, nil))
 				break;
 		} else {
 			// Other M's are waiting for the lock.
 			// Dequeue an M.
 			mp = (void*)(v&~LOCKED);
-			if(runtime_casp(&l->waitm, (void*)v, mp->nextwaitm)) {
+			if(runtime_casp((void**)&l->key, (void*)v, mp->nextwaitm)) {
 				// Dequeued an M.  Wake it.
 				runtime_semawakeup(mp);
 				break;
@@ -120,7 +120,7 @@
 void
 runtime_noteclear(Note *n)
 {
-	n->waitm = nil;
+	n->key = 0;
 }
 
 void
@@ -129,8 +129,8 @@
 	M *mp;
 
 	do
-		mp = runtime_atomicloadp(&n->waitm);
-	while(!runtime_casp(&n->waitm, mp, (void*)LOCKED));
+		mp = runtime_atomicloadp((void**)&n->key);
+	while(!runtime_casp((void**)&n->key, mp, (void*)LOCKED));
 
 	// Successfully set waitm to LOCKED.
 	// What was it before?
@@ -153,8 +153,8 @@
 	m = runtime_m();
 	if(m->waitsema == 0)
 		m->waitsema = runtime_semacreate();
-	if(!runtime_casp(&n->waitm, nil, m)) {  // must be LOCKED (got wakeup)
-		if(n->waitm != (void*)LOCKED)
+	if(!runtime_casp((void**)&n->key, nil, m)) {  // must be LOCKED (got wakeup)
+		if(n->key != LOCKED)
 			runtime_throw("notesleep - waitm out of sync");
 		return;
 	}
@@ -183,8 +183,8 @@
 		m->waitsema = runtime_semacreate();
 
 	// Register for wakeup on n->waitm.
-	if(!runtime_casp(&n->waitm, nil, m)) {  // must be LOCKED (got wakeup already)
-		if(n->waitm != (void*)LOCKED)
+	if(!runtime_casp((void**)&n->key, nil, m)) {  // must be LOCKED (got wakeup already)
+		if(n->key != LOCKED)
 			runtime_throw("notetsleep - waitm out of sync");
 		return;
 	}
@@ -219,10 +219,10 @@
 	// so that any notewakeup racing with the return does not
 	// try to grant us the semaphore when we don't expect it.
 	for(;;) {
-		mp = runtime_atomicloadp(&n->waitm);
+		mp = runtime_atomicloadp((void**)&n->key);
 		if(mp == m) {
 			// No wakeup yet; unregister if possible.
-			if(runtime_casp(&n->waitm, mp, nil))
+			if(runtime_casp((void**)&n->key, mp, nil))
 				return;
 		} else if(mp == (M*)LOCKED) {
 			// Wakeup happened so semaphore is available.
diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.goc gcc-4.8.1/libgo/runtime/malloc.goc
--- gcc-4.8.1.orig/libgo/runtime/malloc.goc	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/malloc.goc	2013-07-24 17:30:39.208579000 -0500
@@ -18,7 +18,7 @@
 #include "go-type.h"
 #include "race.h"
 
-MHeap runtime_mheap;
+MHeap *runtime_mheap;
 
 int32	runtime_checking;
 
@@ -41,12 +41,25 @@
 	uintptr npages;
 	MSpan *s;
 	void *v;
+	bool incallback;
 
 	m = runtime_m();
 	g = runtime_g();
-	if(g->status == Gsyscall)
-		dogc = 0;
-	if(runtime_gcwaiting && g != m->g0 && m->locks == 0 && g->status != Gsyscall) {
+
+	incallback = false;
+	if(m->mcache == nil && g->ncgo > 0) {
+		// For gccgo this case can occur when a cgo or SWIG function
+		// has an interface return type and the function
+		// returns a non-pointer, so memory allocation occurs
+		// after syscall.Cgocall but before syscall.CgocallDone.
+		// We treat it as a callback.
+		runtime_exitsyscall();
+		m = runtime_m();
+		incallback = true;
+		dogc = false;
+	}
+
+	if(runtime_gcwaiting && g != m->g0 && m->locks == 0 && dogc) {
 		runtime_gosched();
 		m = runtime_m();
 	}
@@ -78,7 +91,7 @@
 		npages = size >> PageShift;
 		if((size & PageMask) != 0)
 			npages++;
-		s = runtime_MHeap_Alloc(&runtime_mheap, npages, 0, 1, zeroed);
+		s = runtime_MHeap_Alloc(runtime_mheap, npages, 0, 1, zeroed);
 		if(s == nil)
 			runtime_throw("out of memory");
 		size = npages<<PageShift;
@@ -92,9 +105,9 @@
 
 	if (sizeof(void*) == 4 && c->local_total_alloc >= (1<<30)) {
 		// purge cache stats to prevent overflow
-		runtime_lock(&runtime_mheap);
+		runtime_lock(runtime_mheap);
 		runtime_purgecachedstats(c);
-		runtime_unlock(&runtime_mheap);
+		runtime_unlock(runtime_mheap);
 	}
 
 	if(!(flag & FlagNoGC))
@@ -129,6 +142,10 @@
 		runtime_racemalloc(v, size, m->racepc);
 		m->racepc = nil;
 	}
+
+	if(incallback)
+		runtime_entersyscall();
+
 	return v;
 }
 
@@ -175,17 +192,17 @@
 	if(sizeclass == 0) {
 		// Large object.
 		size = s->npages<<PageShift;
-		*(uintptr*)(s->start<<PageShift) = 1;	// mark as "needs to be zeroed"
+		*(uintptr*)(s->start<<PageShift) = (uintptr)0xfeedfeedfeedfeedll;	// mark as "needs to be zeroed"
 		// Must mark v freed before calling unmarkspan and MHeap_Free:
 		// they might coalesce v into other spans and change the bitmap further.
 		runtime_markfreed(v, size);
 		runtime_unmarkspan(v, 1<<PageShift);
-		runtime_MHeap_Free(&runtime_mheap, s, 1);
+		runtime_MHeap_Free(runtime_mheap, s, 1);
 	} else {
 		// Small object.
 		size = runtime_class_to_size[sizeclass];
 		if(size > sizeof(uintptr))
-			((uintptr*)v)[1] = 1;	// mark as "needs to be zeroed"
+			((uintptr*)v)[1] = (uintptr)0xfeedfeedfeedfeedll;	// mark as "needs to be zeroed"
 		// Must mark v freed before calling MCache_Free:
 		// it might coalesce v and other blocks into a bigger span
 		// and change the bitmap further.
@@ -213,12 +230,12 @@
 	m->mcache->local_nlookup++;
 	if (sizeof(void*) == 4 && m->mcache->local_nlookup >= (1<<30)) {
 		// purge cache stats to prevent overflow
-		runtime_lock(&runtime_mheap);
+		runtime_lock(runtime_mheap);
 		runtime_purgecachedstats(m->mcache);
-		runtime_unlock(&runtime_mheap);
+		runtime_unlock(runtime_mheap);
 	}
 
-	s = runtime_MHeap_LookupMaybe(&runtime_mheap, v);
+	s = runtime_MHeap_LookupMaybe(runtime_mheap, v);
 	if(sp)
 		*sp = s;
 	if(s == nil) {
@@ -262,11 +279,11 @@
 	intgo rate;
 	MCache *c;
 
-	runtime_lock(&runtime_mheap);
-	c = runtime_FixAlloc_Alloc(&runtime_mheap.cachealloc);
-	mstats.mcache_inuse = runtime_mheap.cachealloc.inuse;
-	mstats.mcache_sys = runtime_mheap.cachealloc.sys;
-	runtime_unlock(&runtime_mheap);
+	runtime_lock(runtime_mheap);
+	c = runtime_FixAlloc_Alloc(&runtime_mheap->cachealloc);
+	mstats.mcache_inuse = runtime_mheap->cachealloc.inuse;
+	mstats.mcache_sys = runtime_mheap->cachealloc.sys;
+	runtime_unlock(runtime_mheap);
 	runtime_memclr((byte*)c, sizeof(*c));
 
 	// Set first allocation sample size.
@@ -283,10 +300,10 @@
 runtime_freemcache(MCache *c)
 {
 	runtime_MCache_ReleaseAll(c);
-	runtime_lock(&runtime_mheap);
+	runtime_lock(runtime_mheap);
 	runtime_purgecachedstats(c);
-	runtime_FixAlloc_Free(&runtime_mheap.cachealloc, c);
-	runtime_unlock(&runtime_mheap);
+	runtime_FixAlloc_Free(&runtime_mheap->cachealloc, c);
+	runtime_unlock(runtime_mheap);
 }
 
 void
@@ -319,7 +336,7 @@
 {
 	byte *p;
 	uintptr arena_size, bitmap_size;
-	extern byte end[];
+	extern byte _end[];
 	byte *want;
 	uintptr limit;
 
@@ -334,9 +351,15 @@
 	USED(arena_size);
 	USED(bitmap_size);
 
+	if((runtime_mheap = runtime_SysAlloc(sizeof(*runtime_mheap))) == nil)
+		runtime_throw("runtime: cannot allocate heap metadata");
+
 	runtime_InitSizes();
 
-	limit = runtime_memlimit();
+	// limit = runtime_memlimit();
+	// See https://code.google.com/p/go/issues/detail?id=5049
+	// TODO(rsc): Fix after 1.1.
+	limit = 0;
 
 	// Set up the allocation arena, a contiguous area of memory where
 	// allocated data will be found.  The arena begins with a bitmap large
@@ -402,7 +425,7 @@
 		// So adjust it upward a little bit ourselves: 1/4 MB to get
 		// away from the running binary image and then round up
 		// to a MB boundary.
-		want = (byte*)(((uintptr)end + (1<<18) + (1<<20) - 1)&~((1<<20)-1));
+		want = (byte*)(((uintptr)_end + (1<<18) + (1<<20) - 1)&~((1<<20)-1));
 		if(0xffffffff - (uintptr)want <= bitmap_size + arena_size)
 		  want = 0;
 		p = runtime_SysReserve(want, bitmap_size + arena_size);
@@ -414,13 +437,13 @@
 	if((uintptr)p & (((uintptr)1<<PageShift)-1))
 		runtime_throw("runtime: SysReserve returned unaligned address");
 
-	runtime_mheap.bitmap = p;
-	runtime_mheap.arena_start = p + bitmap_size;
-	runtime_mheap.arena_used = runtime_mheap.arena_start;
-	runtime_mheap.arena_end = runtime_mheap.arena_start + arena_size;
+	runtime_mheap->bitmap = p;
+	runtime_mheap->arena_start = p + bitmap_size;
+	runtime_mheap->arena_used = runtime_mheap->arena_start;
+	runtime_mheap->arena_end = runtime_mheap->arena_start + arena_size;
 
 	// Initialize the rest of the allocator.	
-	runtime_MHeap_Init(&runtime_mheap, runtime_SysAlloc);
+	runtime_MHeap_Init(runtime_mheap, runtime_SysAlloc);
 	runtime_m()->mcache = runtime_allocmcache();
 
 	// See if it works.
@@ -519,8 +542,8 @@
 		// (Manually inlined copy of runtime_MHeap_Lookup)
 		p = (uintptr)v>>PageShift;
 		if(sizeof(void*) == 8)
-			p -= (uintptr)runtime_mheap.arena_start >> PageShift;
-		s = runtime_mheap.map[p];
+			p -= (uintptr)runtime_mheap->arena_start >> PageShift;
+		s = runtime_mheap->map[p];
 
 		if(s->sizeclass == 0) {
 			s->types.compression = MTypes_Single;
@@ -537,9 +560,11 @@
 			nbytes3 = 8*sizeof(uintptr) + 1*ntypes;
 
 			if(!sysalloc) {
-				data3 = runtime_mallocgc(nbytes3, FlagNoPointers, 0, 1);
+				data3 = runtime_mallocgc(nbytes3, FlagNoProfiling|FlagNoPointers, 0, 1);
 			} else {
 				data3 = runtime_SysAlloc(nbytes3);
+				if(data3 == nil)
+					runtime_throw("runtime: cannot allocate memory");
 				if(0) runtime_printf("settype(0->3): SysAlloc(%x) --> %p\n", (uint32)nbytes3, data3);
 			}
 
@@ -573,9 +598,11 @@
 				nbytes2 = ntypes * sizeof(uintptr);
 
 				if(!sysalloc) {
-					data2 = runtime_mallocgc(nbytes2, FlagNoPointers, 0, 1);
+					data2 = runtime_mallocgc(nbytes2, FlagNoProfiling|FlagNoPointers, 0, 1);
 				} else {
 					data2 = runtime_SysAlloc(nbytes2);
+					if(data2 == nil)
+						runtime_throw("runtime: cannot allocate memory");
 					if(0) runtime_printf("settype.(3->2): SysAlloc(%x) --> %p\n", (uint32)nbytes2, data2);
 				}
 
@@ -633,7 +660,7 @@
 	}
 
 	if(DebugTypeAtBlockEnd) {
-		s = runtime_MHeap_Lookup(&runtime_mheap, v);
+		s = runtime_MHeap_Lookup(runtime_mheap, v);
 		*(uintptr*)((uintptr)v+s->elemsize-sizeof(uintptr)) = t;
 	}
 }
@@ -672,7 +699,7 @@
 	uintptr t, ofs;
 	byte *data;
 
-	s = runtime_MHeap_LookupMaybe(&runtime_mheap, v);
+	s = runtime_MHeap_LookupMaybe(runtime_mheap, v);
 	if(s != nil) {
 		t = 0;
 		switch(s->types.compression) {
@@ -731,9 +758,8 @@
 		ret = runtime_mallocgc(typ->__size, flag, 1, 1);
 
 		if(UseSpanType && !flag) {
-			if(false) {
+			if(false)
 				runtime_printf("new %S: %p\n", *typ->__reflection, ret);
-			}
 			runtime_settype(ret, (uintptr)typ | TypeInfo_SingleObject);
 		}
 	}
@@ -741,6 +767,45 @@
 	return ret;
 }
 
+static void*
+cnew(const Type *typ, intgo n, int32 objtyp)
+{
+	uint32 flag;
+	void *ret;
+
+	if((objtyp&(PtrSize-1)) != objtyp)
+		runtime_throw("runtime: invalid objtyp");
+	if(n < 0 || (typ->__size > 0 && (uintptr)n > (MaxMem/typ->__size)))
+		runtime_panicstring("runtime: allocation size out of range");
+	if(typ->__size == 0 || n == 0) {
+		// All 0-length allocations use this pointer.
+		// The language does not require the allocations to
+		// have distinct values.
+		return &runtime_zerobase;
+	}
+	flag = typ->__code&GO_NO_POINTERS ? FlagNoPointers : 0;
+	ret = runtime_mallocgc(typ->__size*n, flag, 1, 1);
+	if(UseSpanType && !flag) {
+		if(false)
+			runtime_printf("cnew [%D]%S: %p\n", (int64)n, *typ->__reflection, ret);
+		runtime_settype(ret, (uintptr)typ | TypeInfo_SingleObject);
+	}
+	return ret;
+}
+
+// same as runtime_new, but callable from C
+void*
+runtime_cnew(const Type *typ)
+{
+	return cnew(typ, 1, TypeInfo_SingleObject);
+}
+
+void*
+runtime_cnewarray(const Type *typ, intgo n)
+{
+	return cnew(typ, n, TypeInfo_Array);
+}
+
 func GC() {
 	runtime_gc(1);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/malloc.h gcc-4.8.1/libgo/runtime/malloc.h
--- gcc-4.8.1.orig/libgo/runtime/malloc.h	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/malloc.h	2013-07-16 01:55:04.520470000 -0500
@@ -86,6 +86,7 @@
 typedef struct MStats	MStats;
 typedef struct MLink	MLink;
 typedef struct MTypes	MTypes;
+typedef struct GCStats	GCStats;
 
 enum
 {
@@ -114,10 +115,18 @@
 	HeapAllocChunk = 1<<20,		// Chunk size for heap growth
 
 	// Number of bits in page to span calculations (4k pages).
-	// On 64-bit, we limit the arena to 128GB, or 37 bits.
+	// On Windows 64-bit we limit the arena to 32GB or 35 bits (see below for reason).
+	// On other 64-bit platforms, we limit the arena to 128GB, or 37 bits.
 	// On 32-bit, we don't bother limiting anything, so we use the full 32-bit address.
 #if __SIZEOF_POINTER__ == 8
+#ifdef GOOS_windows
+	// Windows counts memory used by page table into committed memory
+	// of the process, so we can't reserve too much memory.
+	// See http://golang.org/issue/5402 and http://golang.org/issue/5236.
+	MHeapMap_Bits = 35 - PageShift,
+#else
 	MHeapMap_Bits = 37 - PageShift,
+#endif
 #else
 	MHeapMap_Bits = 32 - PageShift,
 #endif
@@ -133,7 +142,7 @@
 // This must be a #define instead of an enum because it
 // is so large.
 #if __SIZEOF_POINTER__ == 8
-#define	MaxMem	(1ULL<<(MHeapMap_Bits+PageShift))	/* 128 GB */
+#define	MaxMem	(1ULL<<(MHeapMap_Bits+PageShift))	/* 128 GB or 32 GB */
 #else
 #define	MaxMem	((uintptr)-1)
 #endif
@@ -229,7 +238,7 @@
 	uint64	buckhash_sys;	// profiling bucket hash table
 
 	// Statistics about garbage collector.
-	// Protected by stopping the world during GC.
+	// Protected by mheap or stopping the world during GC.
 	uint64	next_gc;	// next GC (in heap_alloc time)
 	uint64  last_gc;	// last GC (in absolute time)
 	uint64	pause_total_ns;
@@ -249,7 +258,6 @@
 extern MStats mstats
   __asm__ (GOSYM_PREFIX "runtime.VmemStats");
 
-
 // Size classes.  Computed and initialized by InitSizes.
 //
 // SizeToClass(0 <= n <= MaxSmallSize) returns the size class,
@@ -416,18 +424,18 @@
 	byte *arena_end;
 
 	// central free lists for small size classes.
-	// the union makes sure that the MCentrals are
+	// the padding makes sure that the MCentrals are
 	// spaced CacheLineSize bytes apart, so that each MCentral.Lock
 	// gets its own cache line.
-	union {
+	struct {
 		MCentral;
-		byte pad[CacheLineSize];
+		byte pad[64];
 	} central[NumSizeClasses];
 
 	FixAlloc spanalloc;	// allocator for Span*
 	FixAlloc cachealloc;	// allocator for MCache*
 };
-extern MHeap runtime_mheap;
+extern MHeap *runtime_mheap;
 
 void	runtime_MHeap_Init(MHeap *h, void *(*allocator)(uintptr));
 MSpan*	runtime_MHeap_Alloc(MHeap *h, uintptr npage, int32 sizeclass, int32 acct, int32 zeroed);
@@ -452,8 +460,8 @@
 bool	runtime_blockspecial(void*);
 void	runtime_setblockspecial(void*, bool);
 void	runtime_purgecachedstats(MCache*);
-void*	runtime_new(const Type *);
-#define runtime_cnew(T) runtime_new(T)
+void*	runtime_cnew(const Type*);
+void*	runtime_cnewarray(const Type*, intgo);
 
 void	runtime_settype(void*, uintptr);
 void	runtime_settype_flush(M*, bool);
@@ -485,7 +493,7 @@
 void	runtime_gchelper(void);
 
 struct __go_func_type;
-bool	runtime_getfinalizer(void *p, bool del, void (**fn)(void*), const struct __go_func_type **ft);
+bool	runtime_getfinalizer(void *p, bool del, FuncVal **fn, const struct __go_func_type **ft);
 void	runtime_walkfintab(void (*fn)(void*), void (*scan)(Obj));
 
 enum
@@ -493,6 +501,7 @@
 	TypeInfo_SingleObject = 0,
 	TypeInfo_Array = 1,
 	TypeInfo_Map = 2,
+	TypeInfo_Chan = 3,
 
 	// Enables type information at the end of blocks allocated from heap	
 	DebugTypeAtBlockEnd = 0,
@@ -504,5 +513,5 @@
 
 void	runtime_memorydump(void);
 
+void	runtime_proc_scan(void (*)(Obj));
 void	runtime_time_scan(void (*)(Obj));
-void	runtime_trampoline_scan(void (*)(Obj));
diff -Naur gcc-4.8.1.orig/libgo/runtime/mcache.c gcc-4.8.1/libgo/runtime/mcache.c
--- gcc-4.8.1.orig/libgo/runtime/mcache.c	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/runtime/mcache.c	2013-07-16 01:55:04.520470000 -0500
@@ -21,7 +21,7 @@
 	l = &c->list[sizeclass];
 	if(l->list == nil) {
 		// Replenish using central lists.
-		n = runtime_MCentral_AllocList(&runtime_mheap.central[sizeclass],
+		n = runtime_MCentral_AllocList(&runtime_mheap->central[sizeclass],
 			runtime_class_to_transfercount[sizeclass], &first);
 		if(n == 0)
 			runtime_throw("out of memory");
@@ -69,7 +69,7 @@
 	c->size -= n*runtime_class_to_size[sizeclass];
 
 	// Return them to central free list.
-	runtime_MCentral_FreeList(&runtime_mheap.central[sizeclass], n, first);
+	runtime_MCentral_FreeList(&runtime_mheap->central[sizeclass], n, first);
 }
 
 void
diff -Naur gcc-4.8.1.orig/libgo/runtime/mcentral.c gcc-4.8.1/libgo/runtime/mcentral.c
--- gcc-4.8.1.orig/libgo/runtime/mcentral.c	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/mcentral.c	2013-07-16 01:55:04.520470000 -0500
@@ -108,7 +108,7 @@
 	int32 size;
 
 	// Find span for v.
-	s = runtime_MHeap_Lookup(&runtime_mheap, v);
+	s = runtime_MHeap_Lookup(runtime_mheap, v);
 	if(s == nil || s->ref == 0)
 		runtime_throw("invalid free");
 
@@ -133,7 +133,7 @@
 		s->freelist = nil;
 		c->nfree -= (s->npages << PageShift) / size;
 		runtime_unlock(c);
-		runtime_MHeap_Free(&runtime_mheap, s, 0);
+		runtime_MHeap_Free(runtime_mheap, s, 0);
 		runtime_lock(c);
 	}
 }
@@ -168,7 +168,7 @@
 		c->nfree -= (s->npages << PageShift) / size;
 		runtime_unlock(c);
 		runtime_unmarkspan((byte*)(s->start<<PageShift), s->npages<<PageShift);
-		runtime_MHeap_Free(&runtime_mheap, s, 0);
+		runtime_MHeap_Free(runtime_mheap, s, 0);
 	} else {
 		runtime_unlock(c);
 	}
@@ -200,7 +200,7 @@
 
 	runtime_unlock(c);
 	runtime_MGetSizeClassInfo(c->sizeclass, &size, &npages, &n);
-	s = runtime_MHeap_Alloc(&runtime_mheap, npages, c->sizeclass, 0, 1);
+	s = runtime_MHeap_Alloc(runtime_mheap, npages, c->sizeclass, 0, 1);
 	if(s == nil) {
 		// TODO(rsc): Log out of memory
 		runtime_lock(c);
diff -Naur gcc-4.8.1.orig/libgo/runtime/mem.c gcc-4.8.1/libgo/runtime/mem.c
--- gcc-4.8.1.orig/libgo/runtime/mem.c	2013-02-15 12:55:09.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/mem.c	2013-07-16 01:55:04.520470000 -0500
@@ -78,7 +78,7 @@
 	fd = dev_zero;
 #endif
 
-	p = runtime_mmap(nil, n, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_PRIVATE, fd, 0);
+	p = runtime_mmap(nil, n, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, fd, 0);
 	if (p == MAP_FAILED) {
 		if(errno == EACCES) {
 			runtime_printf("runtime: mmap: access denied\n");
@@ -169,7 +169,7 @@
 
 	// On 64-bit, we don't actually have v reserved, so tread carefully.
 	if(sizeof(void*) == 8 && (uintptr)v >= 0xffffffffU) {
-		p = mmap_fixed(v, n, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_PRIVATE, fd, 0);
+		p = mmap_fixed(v, n, PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, fd, 0);
 		if(p == MAP_FAILED && errno == ENOMEM)
 			runtime_throw("runtime: out of memory");
 		if(p != v) {
@@ -179,7 +179,9 @@
 		return;
 	}
 
-	p = runtime_mmap(v, n, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_FIXED|MAP_PRIVATE, fd, 0);
+	p = runtime_mmap(v, n, PROT_READ|PROT_WRITE, MAP_ANON|MAP_FIXED|MAP_PRIVATE, fd, 0);
+	if(p == MAP_FAILED && errno == ENOMEM)
+		runtime_throw("runtime: out of memory");
 	if(p != v)
 		runtime_throw("runtime: cannot map pages in arena address space");
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/mfinal.c gcc-4.8.1/libgo/runtime/mfinal.c
--- gcc-4.8.1.orig/libgo/runtime/mfinal.c	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/mfinal.c	2013-06-18 18:50:42.020320000 -0500
@@ -11,7 +11,7 @@
 typedef struct Fin Fin;
 struct Fin
 {
-	void (*fn)(void*);
+	FuncVal *fn;
 	const struct __go_func_type *ft;
 };
 
@@ -42,7 +42,7 @@
 } fintab[TABSZ];
 
 static void
-addfintab(Fintab *t, void *k, void (*fn)(void*), const struct __go_func_type *ft)
+addfintab(Fintab *t, void *k, FuncVal *fn, const struct __go_func_type *ft)
 {
 	int32 i, j;
 
@@ -137,7 +137,7 @@
 }
 
 bool
-runtime_addfinalizer(void *p, void (*f)(void*), const struct __go_func_type *ft)
+runtime_addfinalizer(void *p, FuncVal *f, const struct __go_func_type *ft)
 {
 	Fintab *tab;
 	byte *base;
@@ -175,7 +175,7 @@
 // get finalizer; if del, delete finalizer.
 // caller is responsible for updating RefHasFinalizer (special) bit.
 bool
-runtime_getfinalizer(void *p, bool del, void (**fn)(void*), const struct __go_func_type **ft)
+runtime_getfinalizer(void *p, bool del, FuncVal **fn, const struct __go_func_type **ft)
 {
 	Fintab *tab;
 	bool res;
diff -Naur gcc-4.8.1.orig/libgo/runtime/mfixalloc.c gcc-4.8.1/libgo/runtime/mfixalloc.c
--- gcc-4.8.1.orig/libgo/runtime/mfixalloc.c	2011-10-26 18:57:58.000000000 -0500
+++ gcc-4.8.1/libgo/runtime/mfixalloc.c	2013-07-16 01:55:04.520470000 -0500
@@ -30,6 +30,11 @@
 runtime_FixAlloc_Alloc(FixAlloc *f)
 {
 	void *v;
+	
+	if(f->size == 0) {
+		runtime_printf("runtime: use of FixAlloc_Alloc before FixAlloc_Init\n");
+		runtime_throw("runtime: internal error");
+	}
 
 	if(f->list) {
 		v = f->list;
diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.c gcc-4.8.1/libgo/runtime/mgc0.c
--- gcc-4.8.1.orig/libgo/runtime/mgc0.c	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/mgc0.c	2013-07-16 01:55:04.520470000 -0500
@@ -21,8 +21,11 @@
 #define tab __methods
 // Eface aka __go_empty_interface.
 #define type __type_descriptor
+// Hmap aka __go_map
+typedef struct __go_map Hmap;
 // Type aka __go_type_descriptor
 #define kind __code
+#define string __reflection
 #define KindPtr GO_PTR
 #define KindNoPointers GO_NO_POINTERS
 // PtrType aka __go_ptr_type
@@ -41,6 +44,9 @@
 enum {
 	Debug = 0,
 	DebugMark = 0,  // run second pass to check mark
+	CollectStats = 0,
+	ScanStackByFrames = 0,
+	IgnorePreciseGC = 0,
 
 	// Four bits per word (see #defines below).
 	wordsPerBitmapWord = sizeof(void*)*8/4,
@@ -120,7 +126,7 @@
 typedef struct Finalizer Finalizer;
 struct Finalizer
 {
-	void (*fn)(void*);
+	FuncVal *fn;
 	void *arg;
 	const struct __go_func_type *ft;
 };
@@ -147,6 +153,7 @@
 static Workbuf* getfull(Workbuf*);
 static void	putempty(Workbuf*);
 static Workbuf* handoff(Workbuf*);
+static void	gchelperstart(void);
 
 static struct {
 	uint64	full;  // lock-free list of full blocks
@@ -170,11 +177,114 @@
 } work;
 
 enum {
-	// TODO(atom): to be expanded in a next CL
 	GC_DEFAULT_PTR = GC_NUM_INSTR,
+	GC_MAP_NEXT,
+	GC_CHAN,
+
+	GC_NUM_INSTR2
 };
 
-// PtrTarget and BitTarget are structures used by intermediate buffers.
+static struct {
+	struct {
+		uint64 sum;
+		uint64 cnt;
+	} ptr;
+	uint64 nbytes;
+	struct {
+		uint64 sum;
+		uint64 cnt;
+		uint64 notype;
+		uint64 typelookup;
+	} obj;
+	uint64 rescan;
+	uint64 rescanbytes;
+	uint64 instr[GC_NUM_INSTR2];
+	uint64 putempty;
+	uint64 getfull;
+} gcstats;
+
+// markonly marks an object. It returns true if the object
+// has been marked by this function, false otherwise.
+// This function doesn't append the object to any buffer.
+static bool
+markonly(void *obj)
+{
+	byte *p;
+	uintptr *bitp, bits, shift, x, xbits, off;
+	MSpan *s;
+	PageID k;
+
+	// Words outside the arena cannot be pointers.
+	if((byte*)obj < runtime_mheap->arena_start || (byte*)obj >= runtime_mheap->arena_used)
+		return false;
+
+	// obj may be a pointer to a live object.
+	// Try to find the beginning of the object.
+
+	// Round down to word boundary.
+	obj = (void*)((uintptr)obj & ~((uintptr)PtrSize-1));
+
+	// Find bits for this word.
+	off = (uintptr*)obj - (uintptr*)runtime_mheap->arena_start;
+	bitp = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
+	shift = off % wordsPerBitmapWord;
+	xbits = *bitp;
+	bits = xbits >> shift;
+
+	// Pointing at the beginning of a block?
+	if((bits & (bitAllocated|bitBlockBoundary)) != 0)
+		goto found;
+
+	// Otherwise consult span table to find beginning.
+	// (Manually inlined copy of MHeap_LookupMaybe.)
+	k = (uintptr)obj>>PageShift;
+	x = k;
+	if(sizeof(void*) == 8)
+		x -= (uintptr)runtime_mheap->arena_start>>PageShift;
+	s = runtime_mheap->map[x];
+	if(s == nil || k < s->start || k - s->start >= s->npages || s->state != MSpanInUse)
+		return false;
+	p = (byte*)((uintptr)s->start<<PageShift);
+	if(s->sizeclass == 0) {
+		obj = p;
+	} else {
+		if((byte*)obj >= (byte*)s->limit)
+			return false;
+		uintptr size = s->elemsize;
+		int32 i = ((byte*)obj - p)/size;
+		obj = p+i*size;
+	}
+
+	// Now that we know the object header, reload bits.
+	off = (uintptr*)obj - (uintptr*)runtime_mheap->arena_start;
+	bitp = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
+	shift = off % wordsPerBitmapWord;
+	xbits = *bitp;
+	bits = xbits >> shift;
+
+found:
+	// Now we have bits, bitp, and shift correct for
+	// obj pointing at the base of the object.
+	// Only care about allocated and not marked.
+	if((bits & (bitAllocated|bitMarked)) != bitAllocated)
+		return false;
+	if(work.nproc == 1)
+		*bitp |= bitMarked<<shift;
+	else {
+		for(;;) {
+			x = *bitp;
+			if(x & (bitMarked<<shift))
+				return false;
+			if(runtime_casp((void**)bitp, (void*)x, (void*)(x|(bitMarked<<shift))))
+				break;
+		}
+	}
+
+	// The object is now marked
+	return true;
+}
+
+// PtrTarget is a structure used by intermediate buffers.
 // The intermediate buffers hold GC data before it
 // is moved/flushed to the work buffer (Workbuf).
 // The size of an intermediate buffer is very small,
@@ -186,24 +296,16 @@
 	uintptr ti;
 };
 
-typedef struct BitTarget BitTarget;
-struct BitTarget
-{
-	void *p;
-	uintptr ti;
-	uintptr *bitp, shift;
-};
-
 typedef struct BufferList BufferList;
 struct BufferList
 {
 	PtrTarget ptrtarget[IntermediateBufferCapacity];
-	BitTarget bittarget[IntermediateBufferCapacity];
-	BufferList *next;
+	Obj obj[IntermediateBufferCapacity];
+	uint32 busy;
+	byte pad[CacheLineSize];
 };
-static BufferList *bufferList;
+static BufferList bufferList[MaxGcproc];
 
-static Lock lock;
 static Type *itabtype;
 
 static void enqueue(Obj obj, Workbuf **_wbuf, Obj **_wp, uintptr *_nobj);
@@ -214,7 +316,6 @@
 // and are prepared to be scanned by the garbage collector.
 //
 // _wp, _wbuf, _nobj are input/output parameters and are specifying the work buffer.
-// bitbuf holds temporary data generated by this function.
 //
 // A simplified drawing explaining how the todo-list moves from a structure to another:
 //
@@ -222,14 +323,12 @@
 //  (find pointers)
 //    Obj ------> PtrTarget (pointer targets)
 //     â†‘          |
-//     |          | flushptrbuf (1st part,
-//     |          | find block start)
-//     |          â†“
-//     `--------- BitTarget (pointer targets and the corresponding locations in bitmap)
-//  flushptrbuf
-//  (2nd part, mark and enqueue)
+//     |          |
+//     `----------'
+//     flushptrbuf
+//  (find block start, mark and enqueue)
 static void
-flushptrbuf(PtrTarget *ptrbuf, PtrTarget **ptrbufpos, Obj **_wp, Workbuf **_wbuf, uintptr *_nobj, BitTarget *bitbuf)
+flushptrbuf(PtrTarget *ptrbuf, PtrTarget **ptrbufpos, Obj **_wp, Workbuf **_wbuf, uintptr *_nobj)
 {
 	byte *p, *arena_start, *obj;
 	uintptr size, *bitp, bits, shift, j, x, xbits, off, nobj, ti, n;
@@ -238,9 +337,8 @@
 	Obj *wp;
 	Workbuf *wbuf;
 	PtrTarget *ptrbuf_end;
-	BitTarget *bitbufpos, *bt;
 
-	arena_start = runtime_mheap.arena_start;
+	arena_start = runtime_mheap->arena_start;
 
 	wp = *_wp;
 	wbuf = *_wbuf;
@@ -250,6 +348,11 @@
 	n = ptrbuf_end - ptrbuf;
 	*ptrbufpos = ptrbuf;
 
+	if(CollectStats) {
+		runtime_xadd64(&gcstats.ptr.sum, n);
+		runtime_xadd64(&gcstats.ptr.cnt, 1);
+	}
+
 	// If buffer is nearly full, get a new one.
 	if(wbuf == nil || nobj+n >= nelem(wbuf->obj)) {
 		if(wbuf != nil)
@@ -267,8 +370,6 @@
 	{
 		// Multi-threaded version.
 
-		bitbufpos = bitbuf;
-
 		while(ptrbuf < ptrbuf_end) {
 			obj = ptrbuf->p;
 			ti = ptrbuf->ti;
@@ -276,7 +377,7 @@
 
 			// obj belongs to interval [mheap.arena_start, mheap.arena_used).
 			if(Debug > 1) {
-				if(obj < runtime_mheap.arena_start || obj >= runtime_mheap.arena_used)
+				if(obj < runtime_mheap->arena_start || obj >= runtime_mheap->arena_used)
 					runtime_throw("object is outside of mheap");
 			}
 
@@ -319,7 +420,7 @@
 			x = k;
 			if(sizeof(void*) == 8)
 				x -= (uintptr)arena_start>>PageShift;
-			s = runtime_mheap.map[x];
+			s = runtime_mheap->map[x];
 			if(s == nil || k < s->start || k - s->start >= s->npages || s->state != MSpanInUse)
 				continue;
 			p = (byte*)((uintptr)s->start<<PageShift);
@@ -346,40 +447,36 @@
 			// Only care about allocated and not marked.
 			if((bits & (bitAllocated|bitMarked)) != bitAllocated)
 				continue;
-
-			*bitbufpos++ = (BitTarget){obj, ti, bitp, shift};
-		}
-
-		runtime_lock(&lock);
-		for(bt=bitbuf; bt<bitbufpos; bt++){
-			xbits = *bt->bitp;
-			bits = xbits >> bt->shift;
-			if((bits & bitMarked) != 0)
-				continue;
-
-			// Mark the block
-			*bt->bitp = xbits | (bitMarked << bt->shift);
+			if(work.nproc == 1)
+				*bitp |= bitMarked<<shift;
+			else {
+				for(;;) {
+					x = *bitp;
+					if(x & (bitMarked<<shift))
+						goto continue_obj;
+					if(runtime_casp((void**)bitp, (void*)x, (void*)(x|(bitMarked<<shift))))
+						break;
+				}
+			}
 
 			// If object has no pointers, don't need to scan further.
 			if((bits & bitNoPointers) != 0)
 				continue;
 
-			obj = bt->p;
-
 			// Ask span about size class.
 			// (Manually inlined copy of MHeap_Lookup.)
 			x = (uintptr)obj >> PageShift;
 			if(sizeof(void*) == 8)
 				x -= (uintptr)arena_start>>PageShift;
-			s = runtime_mheap.map[x];
+			s = runtime_mheap->map[x];
 
 			PREFETCH(obj);
 
-			*wp = (Obj){obj, s->elemsize, bt->ti};
+			*wp = (Obj){obj, s->elemsize, ti};
 			wp++;
 			nobj++;
+		continue_obj:;
 		}
-		runtime_unlock(&lock);
 
 		// If another proc wants a pointer, give it some.
 		if(work.nwait > 0 && nobj > handoffThreshold && work.full == 0) {
@@ -395,9 +492,73 @@
 	*_nobj = nobj;
 }
 
+static void
+flushobjbuf(Obj *objbuf, Obj **objbufpos, Obj **_wp, Workbuf **_wbuf, uintptr *_nobj)
+{
+	uintptr nobj, off;
+	Obj *wp, obj;
+	Workbuf *wbuf;
+	Obj *objbuf_end;
+
+	wp = *_wp;
+	wbuf = *_wbuf;
+	nobj = *_nobj;
+
+	objbuf_end = *objbufpos;
+	*objbufpos = objbuf;
+
+	while(objbuf < objbuf_end) {
+		obj = *objbuf++;
+
+		// Align obj.b to a word boundary.
+		off = (uintptr)obj.p & (PtrSize-1);
+		if(off != 0) {
+			obj.p += PtrSize - off;
+			obj.n -= PtrSize - off;
+			obj.ti = 0;
+		}
+
+		if(obj.p == nil || obj.n == 0)
+			continue;
+
+		// If buffer is full, get a new one.
+		if(wbuf == nil || nobj >= nelem(wbuf->obj)) {
+			if(wbuf != nil)
+				wbuf->nobj = nobj;
+			wbuf = getempty(wbuf);
+			wp = wbuf->obj;
+			nobj = 0;
+		}
+
+		*wp = obj;
+		wp++;
+		nobj++;
+	}
+
+	// If another proc wants a pointer, give it some.
+	if(work.nwait > 0 && nobj > handoffThreshold && work.full == 0) {
+		wbuf->nobj = nobj;
+		wbuf = handoff(wbuf);
+		nobj = wbuf->nobj;
+		wp = wbuf->obj + nobj;
+	}
+
+	*_wp = wp;
+	*_wbuf = wbuf;
+	*_nobj = nobj;
+}
+
 // Program that scans the whole block and treats every block element as a potential pointer
 static uintptr defaultProg[2] = {PtrSize, GC_DEFAULT_PTR};
 
+#if 0
+// Hashmap iterator program
+static uintptr mapProg[2] = {0, GC_MAP_NEXT};
+
+// Hchan program
+static uintptr chanProg[2] = {0, GC_CHAN};
+#endif
+
 // Local variables of a program fragment or loop
 typedef struct Frame Frame;
 struct Frame {
@@ -405,6 +566,61 @@
 	uintptr *loop_or_ret;
 };
 
+// Sanity check for the derived type info objti.
+static void
+checkptr(void *obj, uintptr objti)
+{
+	uintptr type, tisize, i, x;
+	byte *objstart;
+	Type *t;
+	MSpan *s;
+
+	if(!Debug)
+		runtime_throw("checkptr is debug only");
+
+	if((byte*)obj < runtime_mheap->arena_start || (byte*)obj >= runtime_mheap->arena_used)
+		return;
+	type = runtime_gettype(obj);
+	t = (Type*)(type & ~(uintptr)(PtrSize-1));
+	if(t == nil)
+		return;
+	x = (uintptr)obj >> PageShift;
+	if(sizeof(void*) == 8)
+		x -= (uintptr)(runtime_mheap->arena_start)>>PageShift;
+	s = runtime_mheap->map[x];
+	objstart = (byte*)((uintptr)s->start<<PageShift);
+	if(s->sizeclass != 0) {
+		i = ((byte*)obj - objstart)/s->elemsize;
+		objstart += i*s->elemsize;
+	}
+	tisize = *(uintptr*)objti;
+	// Sanity check for object size: it should fit into the memory block.
+	if((byte*)obj + tisize > objstart + s->elemsize)
+		runtime_throw("invalid gc type info");
+	if(obj != objstart)
+		return;
+	// If obj points to the beginning of the memory block,
+	// check type info as well.
+	if(t->string == nil ||
+		// Gob allocates unsafe pointers for indirection.
+		(runtime_strcmp((const char *)t->string->str, (const char*)"unsafe.Pointer") &&
+		// Runtime and gc think differently about closures.
+		 runtime_strstr((const char *)t->string->str, (const char*)"struct { F uintptr") != (const char *)t->string->str)) {
+#if 0
+		pc1 = (uintptr*)objti;
+		pc2 = (uintptr*)t->gc;
+		// A simple best-effort check until first GC_END.
+		for(j = 1; pc1[j] != GC_END && pc2[j] != GC_END; j++) {
+			if(pc1[j] != pc2[j]) {
+				runtime_printf("invalid gc type info for '%s' at %p, type info %p, block info %p\n",
+					t->string ? (const int8*)t->string->str : (const int8*)"?", j, pc1[j], pc2[j]);
+				runtime_throw("invalid gc type info");
+			}
+		}
+#endif
+	}
+}					
+
 // scanblock scans a block of n bytes starting at pointer b for references
 // to other objects, scanning any it finds recursively until there are no
 // unscanned objects left.  Instead of using an explicit recursion, it keeps
@@ -419,49 +635,64 @@
 scanblock(Workbuf *wbuf, Obj *wp, uintptr nobj, bool keepworking)
 {
 	byte *b, *arena_start, *arena_used;
-	uintptr n, i, end_b, elemsize, ti, objti, count /* , type */;
+	uintptr n, i, end_b, elemsize, size, ti, objti, count /* , type */;
 	uintptr *pc, precise_type, nominal_size;
+#if 0
+	uintptr *map_ret, mapkey_size, mapval_size, mapkey_ti, mapval_ti, *chan_ret, chancap;
+#endif
 	void *obj;
 	const Type *t;
 	Slice *sliceptr;
 	Frame *stack_ptr, stack_top, stack[GC_STACK_CAPACITY+4];
 	BufferList *scanbuffers;
 	PtrTarget *ptrbuf, *ptrbuf_end, *ptrbufpos;
-	BitTarget *bitbuf;
+	Obj *objbuf, *objbuf_end, *objbufpos;
 	Eface *eface;
 	Iface *iface;
+#if 0
+	Hmap *hmap;
+	MapType *maptype;
+	bool mapkey_kind, mapval_kind;
+	struct hash_gciter map_iter;
+	struct hash_gciter_data d;
+	Hchan *chan;
+	ChanType *chantype;
+#endif
 
 	if(sizeof(Workbuf) % PageSize != 0)
 		runtime_throw("scanblock: size of Workbuf is suboptimal");
 
 	// Memory arena parameters.
-	arena_start = runtime_mheap.arena_start;
-	arena_used = runtime_mheap.arena_used;
+	arena_start = runtime_mheap->arena_start;
+	arena_used = runtime_mheap->arena_used;
 
 	stack_ptr = stack+nelem(stack)-1;
 	
 	precise_type = false;
 	nominal_size = 0;
 
-	// Allocate ptrbuf, bitbuf
+	// Allocate ptrbuf
 	{
-		runtime_lock(&lock);
-
-		if(bufferList == nil) {
-			bufferList = runtime_SysAlloc(sizeof(*bufferList));
-			bufferList->next = nil;
-		}
-		scanbuffers = bufferList;
-		bufferList = bufferList->next;
-
+		scanbuffers = &bufferList[runtime_m()->helpgc];
 		ptrbuf = &scanbuffers->ptrtarget[0];
 		ptrbuf_end = &scanbuffers->ptrtarget[0] + nelem(scanbuffers->ptrtarget);
-		bitbuf = &scanbuffers->bittarget[0];
-
-		runtime_unlock(&lock);
+		objbuf = &scanbuffers->obj[0];
+		objbuf_end = &scanbuffers->obj[0] + nelem(scanbuffers->obj);
 	}
 
 	ptrbufpos = ptrbuf;
+	objbufpos = objbuf;
+
+	// (Silence the compiler)
+#if 0
+	map_ret = nil;
+	mapkey_size = mapval_size = 0;
+	mapkey_kind = mapval_kind = false;
+	mapkey_ti = mapval_ti = 0;
+	chan = nil;
+	chantype = nil;
+	chan_ret = nil;
+#endif
 
 	goto next_block;
 
@@ -472,7 +703,13 @@
 			runtime_printf("scanblock %p %D\n", b, (int64)n);
 		}
 
-		if(ti != 0 && 0) {
+		if(CollectStats) {
+			runtime_xadd64(&gcstats.nbytes, n);
+			runtime_xadd64(&gcstats.obj.sum, nobj);
+			runtime_xadd64(&gcstats.obj.cnt, 1);
+		}
+
+		if(ti != 0 && false) {
 			pc = (uintptr*)(ti & ~(uintptr)PC_BITS);
 			precise_type = (ti & PRECISE);
 			stack_top.elemsize = pc[0];
@@ -484,10 +721,27 @@
 			} else {
 				stack_top.count = 1;
 			}
-		} else if(UseSpanType && 0) {
+			if(Debug) {
+				// Simple sanity check for provided type info ti:
+				// The declared size of the object must be not larger than the actual size
+				// (it can be smaller due to inferior pointers).
+				// It's difficult to make a comprehensive check due to inferior pointers,
+				// reflection, gob, etc.
+				if(pc[0] > n) {
+					runtime_printf("invalid gc type info: type info size %p, block size %p\n", pc[0], n);
+					runtime_throw("invalid gc type info");
+				}
+			}
+		} else if(UseSpanType && false) {
+			if(CollectStats)
+				runtime_xadd64(&gcstats.obj.notype, 1);
+
 #if 0
 			type = runtime_gettype(b);
 			if(type != 0) {
+				if(CollectStats)
+					runtime_xadd64(&gcstats.obj.typelookup, 1);
+
 				t = (Type*)(type & ~(uintptr)(PtrSize-1));
 				switch(type & (PtrSize-1)) {
 				case TypeInfo_SingleObject:
@@ -506,8 +760,27 @@
 					stack_top.loop_or_ret = pc+1;
 					break;
 				case TypeInfo_Map:
-					// TODO(atom): to be expanded in a next CL
-					pc = defaultProg;
+					hmap = (Hmap*)b;
+					maptype = (MapType*)t;
+					if(hash_gciter_init(hmap, &map_iter)) {
+						mapkey_size = maptype->key->size;
+						mapkey_kind = maptype->key->kind;
+						mapkey_ti   = (uintptr)maptype->key->gc | PRECISE;
+						mapval_size = maptype->elem->size;
+						mapval_kind = maptype->elem->kind;
+						mapval_ti   = (uintptr)maptype->elem->gc | PRECISE;
+
+						map_ret = nil;
+						pc = mapProg;
+					} else {
+						goto next_block;
+					}
+					break;
+				case TypeInfo_Chan:
+					chan = (Hchan*)b;
+					chantype = (ChanType*)t;
+					chan_ret = nil;
+					pc = chanProg;
 					break;
 				default:
 					runtime_throw("scanblock: invalid type");
@@ -521,12 +794,18 @@
 			pc = defaultProg;
 		}
 
+		if(IgnorePreciseGC)
+			pc = defaultProg;
+
 		pc++;
 		stack_top.b = (uintptr)b;
 
 		end_b = (uintptr)b + n - PtrSize;
 
 	for(;;) {
+		if(CollectStats)
+			runtime_xadd64(&gcstats.instr[pc[0]], 1);
+
 		obj = nil;
 		objti = 0;
 		switch(pc[0]) {
@@ -534,13 +813,19 @@
 			obj = *(void**)(stack_top.b + pc[1]);
 			objti = pc[2];
 			pc += 3;
+			if(Debug)
+				checkptr(obj, objti);
 			break;
 
 		case GC_SLICE:
 			sliceptr = (Slice*)(stack_top.b + pc[1]);
 			if(sliceptr->cap != 0) {
 				obj = sliceptr->array;
-				objti = pc[2] | PRECISE | LOOP;
+				// Can't use slice element type for scanning,
+				// because if it points to an array embedded
+				// in the beginning of a struct,
+				// we will scan the whole struct as the slice.
+				// So just obtain type info from heap.
 			}
 			pc += 3;
 			break;
@@ -552,17 +837,31 @@
 
 		case GC_STRING:
 			obj = *(void**)(stack_top.b + pc[1]);
+			markonly(obj);
 			pc += 2;
-			break;
+			continue;
 
 		case GC_EFACE:
 			eface = (Eface*)(stack_top.b + pc[1]);
 			pc += 2;
-			if(eface->type != nil && ((byte*)eface->__object >= arena_start && (byte*)eface->__object < arena_used)) {
-				t = eface->type;
+			if(eface->type == nil)
+				continue;
+
+			// eface->type
+			t = eface->type;
+			if((const byte*)t >= arena_start && (const byte*)t < arena_used) {
+				union { const Type *tc; Type *tr; } u;
+				u.tc = t;
+				*ptrbufpos++ = (struct PtrTarget){(void*)u.tr, 0};
+				if(ptrbufpos == ptrbuf_end)
+					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
+			}
+
+			// eface->__object
+			if((byte*)eface->__object >= arena_start && (byte*)eface->__object < arena_used) {
 				if(t->__size <= sizeof(void*)) {
 					if((t->kind & KindNoPointers))
-						break;
+						continue;
 
 					obj = eface->__object;
 					if((t->kind & ~KindNoPointers) == KindPtr)
@@ -580,14 +879,14 @@
 			iface = (Iface*)(stack_top.b + pc[1]);
 			pc += 2;
 			if(iface->tab == nil)
-				break;
+				continue;
 			
 			// iface->tab
 			if((byte*)iface->tab >= arena_start && (byte*)iface->tab < arena_used) {
 				// *ptrbufpos++ = (struct PtrTarget){iface->tab, (uintptr)itabtype->gc};
 				*ptrbufpos++ = (struct PtrTarget){iface->tab, 0};
 				if(ptrbufpos == ptrbuf_end)
-					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
 			}
 
 			// iface->data
@@ -596,7 +895,7 @@
 				t = nil;
 				if(t->__size <= sizeof(void*)) {
 					if((t->kind & KindNoPointers))
-						break;
+						continue;
 
 					obj = iface->__object;
 					if((t->kind & ~KindNoPointers) == KindPtr)
@@ -611,13 +910,13 @@
 			break;
 
 		case GC_DEFAULT_PTR:
-			while((i = stack_top.b) <= end_b) {
+			while(stack_top.b <= end_b) {
+				obj = *(byte**)stack_top.b;
 				stack_top.b += PtrSize;
-				obj = *(byte**)i;
 				if((byte*)obj >= arena_start && (byte*)obj < arena_used) {
 					*ptrbufpos++ = (struct PtrTarget){obj, 0};
 					if(ptrbufpos == ptrbuf_end)
-						flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+						flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
 				}
 			}
 			goto next_block;
@@ -625,9 +924,8 @@
 		case GC_END:
 			if(--stack_top.count != 0) {
 				// Next iteration of a loop if possible.
-				elemsize = stack_top.elemsize;
-				stack_top.b += elemsize;
-				if(stack_top.b + elemsize <= end_b+PtrSize) {
+				stack_top.b += stack_top.elemsize;
+				if(stack_top.b + stack_top.elemsize <= end_b+PtrSize) {
 					pc = stack_top.loop_or_ret;
 					continue;
 				}
@@ -648,6 +946,10 @@
 						// Found a value that may be a pointer.
 						// Do a rescan of the entire block.
 						enqueue((Obj){b, n, 0}, &wbuf, &wp, &nobj);
+						if(CollectStats) {
+							runtime_xadd64(&gcstats.rescan, 1);
+							runtime_xadd64(&gcstats.rescanbytes, n);
+						}
 						break;
 					}
 				}
@@ -680,20 +982,136 @@
 			// Stack push.
 			*stack_ptr-- = stack_top;
 			stack_top = (Frame){1, 0, stack_top.b + pc[1], pc+3 /*return address*/};
-			pc = (uintptr*)pc[2];  // target of the CALL instruction
+			pc = (uintptr*)((byte*)pc + *(int32*)(pc+2));  // target of the CALL instruction
 			continue;
 
+#if 0
 		case GC_MAP_PTR:
-			// TODO(atom): to be expanded in a next CL. Same as GC_APTR for now.
-			obj = *(void**)(stack_top.b + pc[1]);
-			pc += 3;
-			break;
+			hmap = *(Hmap**)(stack_top.b + pc[1]);
+			if(hmap == nil) {
+				pc += 3;
+				continue;
+			}
+			if(markonly(hmap)) {
+				maptype = (MapType*)pc[2];
+				if(hash_gciter_init(hmap, &map_iter)) {
+					mapkey_size = maptype->key->size;
+					mapkey_kind = maptype->key->kind;
+					mapkey_ti   = (uintptr)maptype->key->gc | PRECISE;
+					mapval_size = maptype->elem->size;
+					mapval_kind = maptype->elem->kind;
+					mapval_ti   = (uintptr)maptype->elem->gc | PRECISE;
+
+					// Start mapProg.
+					map_ret = pc+3;
+					pc = mapProg+1;
+				} else {
+					pc += 3;
+				}
+			} else {
+				pc += 3;
+			}
+			continue;
+
+		case GC_MAP_NEXT:
+			// Add all keys and values to buffers, mark all subtables.
+			while(hash_gciter_next(&map_iter, &d)) {
+				// buffers: reserve space for 2 objects.
+				if(ptrbufpos+2 >= ptrbuf_end)
+					flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
+				if(objbufpos+2 >= objbuf_end)
+					flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
+
+				if(d.st != nil)
+					markonly(d.st);
+
+				if(d.key_data != nil) {
+					if(!(mapkey_kind & KindNoPointers) || d.indirectkey) {
+						if(!d.indirectkey)
+							*objbufpos++ = (Obj){d.key_data, mapkey_size, mapkey_ti};
+						else {
+							if(Debug) {
+								obj = *(void**)d.key_data;
+								if(!(arena_start <= obj && obj < arena_used))
+									runtime_throw("scanblock: inconsistent hashmap");
+							}
+							*ptrbufpos++ = (struct PtrTarget){*(void**)d.key_data, mapkey_ti};
+						}
+					}
+					if(!(mapval_kind & KindNoPointers) || d.indirectval) {
+						if(!d.indirectval)
+							*objbufpos++ = (Obj){d.val_data, mapval_size, mapval_ti};
+						else {
+							if(Debug) {
+								obj = *(void**)d.val_data;
+								if(!(arena_start <= obj && obj < arena_used))
+									runtime_throw("scanblock: inconsistent hashmap");
+							}
+							*ptrbufpos++ = (struct PtrTarget){*(void**)d.val_data, mapval_ti};
+						}
+					}
+				}
+			}
+			if(map_ret == nil)
+				goto next_block;
+			pc = map_ret;
+			continue;
+#endif
 
 		case GC_REGION:
-			// TODO(atom): to be expanded in a next CL. Same as GC_APTR for now.
 			obj = (void*)(stack_top.b + pc[1]);
+			size = pc[2];
+			objti = pc[3];
 			pc += 4;
-			break;
+
+			*objbufpos++ = (Obj){obj, size, objti};
+			if(objbufpos == objbuf_end)
+				flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
+			continue;
+
+#if 0
+		case GC_CHAN_PTR:
+			// Similar to GC_MAP_PTR
+			chan = *(Hchan**)(stack_top.b + pc[1]);
+			if(chan == nil) {
+				pc += 3;
+				continue;
+			}
+			if(markonly(chan)) {
+				chantype = (ChanType*)pc[2];
+				if(!(chantype->elem->kind & KindNoPointers)) {
+					// Start chanProg.
+					chan_ret = pc+3;
+					pc = chanProg+1;
+					continue;
+				}
+			}
+			pc += 3;
+			continue;
+
+		case GC_CHAN:
+			// There are no heap pointers in struct Hchan,
+			// so we can ignore the leading sizeof(Hchan) bytes.
+			if(!(chantype->elem->kind & KindNoPointers)) {
+				// Channel's buffer follows Hchan immediately in memory.
+				// Size of buffer (cap(c)) is second int in the chan struct.
+				chancap = ((uintgo*)chan)[1];
+				if(chancap > 0) {
+					// TODO(atom): split into two chunks so that only the
+					// in-use part of the circular buffer is scanned.
+					// (Channel routines zero the unused part, so the current
+					// code does not lead to leaks, it's just a little inefficient.)
+					*objbufpos++ = (Obj){(byte*)chan+runtime_Hchansize, chancap*chantype->elem->size,
+						(uintptr)chantype->elem->gc | PRECISE | LOOP};
+					if(objbufpos == objbuf_end)
+						flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
+				}
+			}
+			if(chan_ret == nil)
+				goto next_block;
+			pc = chan_ret;
+			continue;
+#endif
 
 		default:
 			runtime_throw("scanblock: invalid GC instruction");
@@ -701,9 +1119,9 @@
 		}
 
 		if((byte*)obj >= arena_start && (byte*)obj < arena_used) {
-			*ptrbufpos++ = (PtrTarget){obj, objti};
+			*ptrbufpos++ = (struct PtrTarget){obj, objti};
 			if(ptrbufpos == ptrbuf_end)
-				flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+				flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
 		}
 	}
 
@@ -712,7 +1130,8 @@
 		// the loop by setting b, n, ti to the parameters for the next block.
 
 		if(nobj == 0) {
-			flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj, bitbuf);
+			flushptrbuf(ptrbuf, &ptrbufpos, &wp, &wbuf, &nobj);
+			flushobjbuf(objbuf, &objbufpos, &wp, &wbuf, &nobj);
 
 			if(nobj == 0) {
 				if(!keepworking) {
@@ -737,11 +1156,7 @@
 		nobj--;
 	}
 
-endscan:
-	runtime_lock(&lock);
-	scanbuffers->next = bufferList;
-	bufferList = scanbuffers;
-	runtime_unlock(&lock);
+endscan:;
 }
 
 // debug_scanblock is the debug copy of scanblock.
@@ -776,14 +1191,14 @@
 		obj = (byte*)vp[i];
 
 		// Words outside the arena cannot be pointers.
-		if((byte*)obj < runtime_mheap.arena_start || (byte*)obj >= runtime_mheap.arena_used)
+		if((byte*)obj < runtime_mheap->arena_start || (byte*)obj >= runtime_mheap->arena_used)
 			continue;
 
 		// Round down to word boundary.
 		obj = (void*)((uintptr)obj & ~((uintptr)PtrSize-1));
 
 		// Consult span table to find beginning.
-		s = runtime_MHeap_LookupMaybe(&runtime_mheap, obj);
+		s = runtime_MHeap_LookupMaybe(runtime_mheap, obj);
 		if(s == nil)
 			continue;
 
@@ -799,8 +1214,8 @@
 		}
 
 		// Now that we know the object header, reload bits.
-		off = (uintptr*)obj - (uintptr*)runtime_mheap.arena_start;
-		bitp = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+		off = (uintptr*)obj - (uintptr*)runtime_mheap->arena_start;
+		bitp = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 		shift = off % wordsPerBitmapWord;
 		xbits = *bitp;
 		bits = xbits >> shift;
@@ -906,6 +1321,8 @@
 		if(work.nchunk < sizeof *b) {
 			work.nchunk = 1<<20;
 			work.chunk = runtime_SysAlloc(work.nchunk);
+			if(work.chunk == nil)
+				runtime_throw("runtime: cannot allocate memory");
 		}
 		b = (Workbuf*)work.chunk;
 		work.chunk += sizeof *b;
@@ -919,6 +1336,9 @@
 static void
 putempty(Workbuf *b)
 {
+	if(CollectStats)
+		runtime_xadd64(&gcstats.putempty, 1);
+
 	runtime_lfstackpush(&work.empty, &b->node);
 }
 
@@ -929,6 +1349,9 @@
 	M *m;
 	int32 i;
 
+	if(CollectStats)
+		runtime_xadd64(&gcstats.getfull, 1);
+
 	if(b != nil)
 		runtime_lfstackpush(&work.empty, &b->node);
 	b = (Workbuf*)runtime_lfstackpop(&work.full);
@@ -994,6 +1417,8 @@
 		if(cap < 2*work.rootcap)
 			cap = 2*work.rootcap;
 		new = (Obj*)runtime_SysAlloc(cap*sizeof(Obj));
+		if(new == nil)
+			runtime_throw("runtime: cannot allocate memory");
 		if(work.roots != nil) {
 			runtime_memmove(new, work.roots, work.rootcap*sizeof(Obj));
 			runtime_SysFree(work.roots, work.rootcap*sizeof(Obj));
@@ -1081,13 +1506,14 @@
 addfinroots(void *v)
 {
 	uintptr size;
+	void *base;
 
 	size = 0;
-	if(!runtime_mlookup(v, (byte**)&v, &size, nil) || !runtime_blockspecial(v))
+	if(!runtime_mlookup(v, (byte**)&base, &size, nil) || !runtime_blockspecial(base))
 		runtime_throw("mark - finalizer inconsistency");
 
 	// do not mark the finalizer block itself.  just mark the things it points at.
-	addroot((Obj){v, size, 0});
+	addroot((Obj){base, size, 0});
 }
 
 static struct root_list* roots;
@@ -1128,23 +1554,27 @@
 	addroot((Obj){(byte*)&runtime_g0, sizeof runtime_g0, 0});
 	addroot((Obj){(byte*)&runtime_allg, sizeof runtime_allg, 0});
 	addroot((Obj){(byte*)&runtime_allm, sizeof runtime_allm, 0});
+	addroot((Obj){(byte*)&runtime_allp, sizeof runtime_allp, 0});
+	runtime_proc_scan(addroot);
 	runtime_MProf_Mark(addroot);
 	runtime_time_scan(addroot);
-	runtime_trampoline_scan(addroot);
 
 	// MSpan.types
-	allspans = runtime_mheap.allspans;
-	for(spanidx=0; spanidx<runtime_mheap.nspan; spanidx++) {
+	allspans = runtime_mheap->allspans;
+	for(spanidx=0; spanidx<runtime_mheap->nspan; spanidx++) {
 		s = allspans[spanidx];
 		if(s->state == MSpanInUse) {
+			// The garbage collector ignores type pointers stored in MSpan.types:
+			//  - Compiler-generated types are stored outside of heap.
+			//  - The reflect package has runtime-generated types cached in its data structures.
+			//    The garbage collector relies on finding the references via that cache.
 			switch(s->types.compression) {
 			case MTypes_Empty:
 			case MTypes_Single:
 				break;
 			case MTypes_Words:
 			case MTypes_Bytes:
-				// TODO(atom): consider using defaultProg instead of 0
-				addroot((Obj){(byte*)&s->types.data, sizeof(void*), 0});
+				markonly((byte*)s->types.data);
 				break;
 			}
 		}
@@ -1182,7 +1612,7 @@
 static bool
 handlespecial(byte *p, uintptr size)
 {
-	void (*fn)(void*);
+	FuncVal *fn;
 	const struct __go_func_type *ft;
 	FinBlock *block;
 	Finalizer *f;
@@ -1197,6 +1627,8 @@
 	if(finq == nil || finq->cnt == finq->cap) {
 		if(finc == nil) {
 			finc = runtime_SysAlloc(PageSize);
+			if(finc == nil)
+				runtime_throw("runtime: cannot allocate memory");
 			finc->cap = (PageSize - sizeof(FinBlock)) / sizeof(Finalizer) + 1;
 			finc->alllink = allfin;
 			allfin = finc;
@@ -1236,10 +1668,10 @@
 	m = runtime_m();
 
 	USED(&desc);
-	s = runtime_mheap.allspans[idx];
+	s = runtime_mheap->allspans[idx];
 	if(s->state != MSpanInUse)
 		return;
-	arena_start = runtime_mheap.arena_start;
+	arena_start = runtime_mheap->arena_start;
 	p = (byte*)(s->start << PageShift);
 	cl = s->sizeclass;
 	size = s->elemsize;
@@ -1302,8 +1734,8 @@
 		if(cl == 0) {
 			// Free large span.
 			runtime_unmarkspan(p, 1<<PageShift);
-			*(uintptr*)p = 1;	// needs zeroing
-			runtime_MHeap_Free(&runtime_mheap, s, 1);
+			*(uintptr*)p = (uintptr)0xdeaddeaddeaddeadll;	// needs zeroing
+			runtime_MHeap_Free(runtime_mheap, s, 1);
 			c->local_alloc -= size;
 			c->local_nfree++;
 		} else {
@@ -1317,7 +1749,7 @@
 				break;
 			}
 			if(size > sizeof(uintptr))
-				((uintptr*)p)[1] = 1;	// mark as "needs to be zeroed"
+				((uintptr*)p)[1] = (uintptr)0xdeaddeaddeaddeadll;	// mark as "needs to be zeroed"
 			
 			end->next = (MLink*)p;
 			end = (MLink*)p;
@@ -1331,7 +1763,7 @@
 		c->local_nfree += nfree;
 		c->local_cachealloc -= nfree * size;
 		c->local_objects -= nfree;
-		runtime_MCentral_FreeSpan(&runtime_mheap.central[cl], s, nfree, head.next, end);
+		runtime_MCentral_FreeSpan(&runtime_mheap->central[cl], s, nfree, head.next, end);
 	}
 }
 
@@ -1345,10 +1777,10 @@
 	MSpan *s;
 	bool allocated, special;
 
-	s = runtime_mheap.allspans[idx];
+	s = runtime_mheap->allspans[idx];
 	if(s->state != MSpanInUse)
 		return;
-	arena_start = runtime_mheap.arena_start;
+	arena_start = runtime_mheap->arena_start;
 	p = (byte*)(s->start << PageShift);
 	sizeclass = s->sizeclass;
 	size = s->elemsize;
@@ -1406,7 +1838,7 @@
 {
 	uint32 spanidx;
 
-	for(spanidx=0; spanidx<runtime_mheap.nspan; spanidx++) {
+	for(spanidx=0; spanidx<runtime_mheap->nspan; spanidx++) {
 		dumpspan(spanidx);
 	}
 }
@@ -1414,6 +1846,8 @@
 void
 runtime_gchelper(void)
 {
+	gchelperstart();
+
 	// parallel mark for over gc roots
 	runtime_parfordo(work.markfor);
 
@@ -1427,10 +1861,13 @@
 	}
 
 	runtime_parfordo(work.sweepfor);
+	bufferList[runtime_m()->helpgc].busy = 0;
 	if(runtime_xadd(&work.ndone, +1) == work.nproc-1)
 		runtime_notewakeup(&work.alldone);
 }
 
+#define GcpercentUnknown (-2)
+
 // Initialized from $GOGC.  GOGC=off means no gc.
 //
 // Next gc is after we've allocated an extra amount of
@@ -1440,22 +1877,14 @@
 // proportion to the allocation cost.  Adjusting gcpercent
 // just changes the linear constant (and also the amount of
 // extra memory used).
-static int32 gcpercent = -2;
-
-static void
-stealcache(void)
-{
-	M *mp;
-
-	for(mp=runtime_allm; mp; mp=mp->alllink)
-		runtime_MCache_ReleaseAll(mp->mcache);
-}
+static int32 gcpercent = GcpercentUnknown;
 
 static void
 cachestats(GCStats *stats)
 {
 	M *mp;
 	MCache *c;
+	P *p, **pp;
 	uint32 i;
 	uint64 stacks_inuse;
 	uint64 *src, *dst;
@@ -1464,9 +1893,7 @@
 		runtime_memclr((byte*)stats, sizeof(*stats));
 	stacks_inuse = 0;
 	for(mp=runtime_allm; mp; mp=mp->alllink) {
-		c = mp->mcache;
-		runtime_purgecachedstats(c);
-		// stacks_inuse += mp->stackinuse*FixedStack;
+		//stacks_inuse += mp->stackinuse*FixedStack;
 		if(stats) {
 			src = (uint64*)&mp->gcstats;
 			dst = (uint64*)stats;
@@ -1474,6 +1901,12 @@
 				dst[i] += src[i];
 			runtime_memclr((byte*)&mp->gcstats, sizeof(mp->gcstats));
 		}
+	}
+	for(pp=runtime_allp; (p=*pp) != nil; pp++) {
+		c = p->mcache;
+		if(c==nil)
+			continue;
+		runtime_purgecachedstats(c);
 		for(i=0; i<nelem(c->local_by_size); i++) {
 			mstats.by_size[i].nmalloc += c->local_by_size[i].nmalloc;
 			c->local_by_size[i].nmalloc = 0;
@@ -1493,6 +1926,19 @@
 
 static void gc(struct gc_args *args);
 
+static int32
+readgogc(void)
+{
+	const byte *p;
+
+	p = runtime_getenv("GOGC");
+	if(p == nil || p[0] == '\0')
+		return 100;
+	if(runtime_strcmp((const char *)p, "off") == 0)
+		return -1;
+	return runtime_atoi(p);
+}
+
 void
 runtime_gc(int32 force)
 {
@@ -1505,6 +1951,8 @@
 	// a problem in the past.
 	if((((uintptr)&work.empty) & 7) != 0)
 		runtime_throw("runtime: gc work buffer is misaligned");
+	if((((uintptr)&work.full) & 7) != 0)
+		runtime_throw("runtime: gc work buffer is misaligned");
 
 	// Make sure all registers are saved on stack so that
 	// scanstack sees them.
@@ -1522,14 +1970,8 @@
 	if(!mstats.enablegc || m->locks > 0 || runtime_panicking)
 		return;
 
-	if(gcpercent == -2) {	// first time through
-		p = runtime_getenv("GOGC");
-		if(p == nil || p[0] == '\0')
-			gcpercent = 100;
-		else if(runtime_strcmp((const char*)p, "off") == 0)
-			gcpercent = -1;
-		else
-			gcpercent = runtime_atoi(p);
+	if(gcpercent == GcpercentUnknown) {	// first time through
+		gcpercent = readgogc();
 
 		p = runtime_getenv("GOGCTRACE");
 		if(p != nil)
@@ -1556,7 +1998,7 @@
 {
 	M *m;
 	int64 t0, t1, t2, t3, t4;
-	uint64 heap0, heap1, obj0, obj1;
+	uint64 heap0, heap1, obj0, obj1, ninstr;
 	GCStats stats;
 	M *mp;
 	uint32 i;
@@ -1575,6 +2017,9 @@
 	m->gcing = 1;
 	runtime_stoptheworld();
 
+	if(CollectStats)
+		runtime_memclr((byte*)&gcstats, sizeof(gcstats));
+
 	for(mp=runtime_allm; mp; mp=mp->alllink)
 		runtime_settype_flush(mp, false);
 
@@ -1605,7 +2050,7 @@
 	work.nproc = runtime_gcprocs();
 	addroots();
 	runtime_parforsetup(work.markfor, work.nproc, work.nroot, nil, false, markroot);
-	runtime_parforsetup(work.sweepfor, work.nproc, runtime_mheap.nspan, nil, true, sweepspan);
+	runtime_parforsetup(work.sweepfor, work.nproc, runtime_mheap->nspan, nil, true, sweepspan);
 	if(work.nproc > 1) {
 		runtime_noteclear(&work.alldone);
 		runtime_helpgc(work.nproc);
@@ -1613,6 +2058,7 @@
 
 	t1 = runtime_nanotime();
 
+	gchelperstart();
 	runtime_parfordo(work.markfor);
 	scanblock(nil, nil, 0, true);
 
@@ -1624,14 +2070,14 @@
 	t2 = runtime_nanotime();
 
 	runtime_parfordo(work.sweepfor);
+	bufferList[m->helpgc].busy = 0;
 	t3 = runtime_nanotime();
 
-	stealcache();
-	cachestats(&stats);
-
 	if(work.nproc > 1)
 		runtime_notesleep(&work.alldone);
 
+	cachestats(&stats);
+
 	stats.nprocyield += work.sweepfor->nprocyield;
 	stats.nosyield += work.sweepfor->nosyield;
 	stats.nsleep += work.sweepfor->nsleep;
@@ -1671,6 +2117,27 @@
 			stats.nhandoff, stats.nhandoffcnt,
 			work.sweepfor->nsteal, work.sweepfor->nstealcnt,
 			stats.nprocyield, stats.nosyield, stats.nsleep);
+		if(CollectStats) {
+			runtime_printf("scan: %D bytes, %D objects, %D untyped, %D types from MSpan\n",
+				gcstats.nbytes, gcstats.obj.cnt, gcstats.obj.notype, gcstats.obj.typelookup);
+			if(gcstats.ptr.cnt != 0)
+				runtime_printf("avg ptrbufsize: %D (%D/%D)\n",
+					gcstats.ptr.sum/gcstats.ptr.cnt, gcstats.ptr.sum, gcstats.ptr.cnt);
+			if(gcstats.obj.cnt != 0)
+				runtime_printf("avg nobj: %D (%D/%D)\n",
+					gcstats.obj.sum/gcstats.obj.cnt, gcstats.obj.sum, gcstats.obj.cnt);
+			runtime_printf("rescans: %D, %D bytes\n", gcstats.rescan, gcstats.rescanbytes);
+
+			runtime_printf("instruction counts:\n");
+			ninstr = 0;
+			for(i=0; i<nelem(gcstats.instr); i++) {
+				runtime_printf("\t%d:\t%D\n", i, gcstats.instr[i]);
+				ninstr += gcstats.instr[i];
+			}
+			runtime_printf("\ttotal:\t%D\n", ninstr);
+
+			runtime_printf("putempty: %D, getfull: %D\n", gcstats.putempty, gcstats.getfull);
+		}
 	}
 
 	runtime_MProf_GC();
@@ -1705,6 +2172,71 @@
 	runtime_starttheworld();
 }
 
+void runtime_debug_readGCStats(Slice*)
+  __asm__("runtime_debug.readGCStats");
+
+void
+runtime_debug_readGCStats(Slice *pauses)
+{
+	uint64 *p;
+	uint32 i, n;
+
+	// Calling code in runtime/debug should make the slice large enough.
+	if((size_t)pauses->cap < nelem(mstats.pause_ns)+3)
+		runtime_throw("runtime: short slice passed to readGCStats");
+
+	// Pass back: pauses, last gc (absolute time), number of gc, total pause ns.
+	p = (uint64*)pauses->array;
+	runtime_lock(runtime_mheap);
+	n = mstats.numgc;
+	if(n > nelem(mstats.pause_ns))
+		n = nelem(mstats.pause_ns);
+	
+	// The pause buffer is circular. The most recent pause is at
+	// pause_ns[(numgc-1)%nelem(pause_ns)], and then backward
+	// from there to go back farther in time. We deliver the times
+	// most recent first (in p[0]).
+	for(i=0; i<n; i++)
+		p[i] = mstats.pause_ns[(mstats.numgc-1-i)%nelem(mstats.pause_ns)];
+
+	p[n] = mstats.last_gc;
+	p[n+1] = mstats.numgc;
+	p[n+2] = mstats.pause_total_ns;	
+	runtime_unlock(runtime_mheap);
+	pauses->__count = n+3;
+}
+
+intgo runtime_debug_setGCPercent(intgo)
+  __asm__("runtime_debug.setGCPercent");
+
+intgo
+runtime_debug_setGCPercent(intgo in)
+{
+	intgo out;
+
+	runtime_lock(runtime_mheap);
+	if(gcpercent == GcpercentUnknown)
+		gcpercent = readgogc();
+	out = gcpercent;
+	if(in < 0)
+		in = -1;
+	gcpercent = in;
+	runtime_unlock(runtime_mheap);
+	return out;
+}
+
+static void
+gchelperstart(void)
+{
+	M *m;
+
+	m = runtime_m();
+	if(m->helpgc < 0 || m->helpgc >= MaxGcproc)
+		runtime_throw("gchelperstart: bad m->helpgc");
+	if(runtime_xchg(&bufferList[m->helpgc].busy, 1))
+		runtime_throw("gchelperstart: already busy");
+}
+
 static void
 runfinq(void* dummy __attribute__ ((unused)))
 {
@@ -1731,11 +2263,12 @@
 		for(; fb; fb=next) {
 			next = fb->next;
 			for(i=0; i<(uint32)fb->cnt; i++) {
-				void *params[1];
+				void *params[2];
 
 				f = &fb->fin[i];
 				params[0] = &f->arg;
-				reflect_call(f->ft, (void*)f->fn, 0, 0, params, nil);
+				params[1] = f;
+				reflect_call(f->ft, f->fn, 0, 0, params, nil);
 				f->fn = nil;
 				f->arg = nil;
 			}
@@ -1757,11 +2290,11 @@
 	if(0)
 		runtime_printf("markallocated %p+%p\n", v, n);
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markallocated: bad pointer");
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;  // word offset
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;  // word offset
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	for(;;) {
@@ -1789,11 +2322,11 @@
 	if(0)
 		runtime_printf("markallocated %p+%p\n", v, n);
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markallocated: bad pointer");
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;  // word offset
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;  // word offset
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	for(;;) {
@@ -1819,11 +2352,11 @@
 	if(!runtime_checking)
 		return;
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		return;	// not allocated, so okay
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;  // word offset
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;  // word offset
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	bits = *b>>shift;
@@ -1842,7 +2375,7 @@
 	uintptr *b, off, shift;
 	byte *p;
 
-	if((byte*)v+size*n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+size*n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markspan: bad pointer");
 
 	p = v;
@@ -1853,8 +2386,8 @@
 		// the entire span, and each bitmap word has bits for only
 		// one span, so no other goroutines are changing these
 		// bitmap words.
-		off = (uintptr*)p - (uintptr*)runtime_mheap.arena_start;  // word offset
-		b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+		off = (uintptr*)p - (uintptr*)runtime_mheap->arena_start;  // word offset
+		b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 		shift = off % wordsPerBitmapWord;
 		*b = (*b & ~(bitMask<<shift)) | (bitBlockBoundary<<shift);
 	}
@@ -1866,14 +2399,14 @@
 {
 	uintptr *p, *b, off;
 
-	if((byte*)v+n > (byte*)runtime_mheap.arena_used || (byte*)v < runtime_mheap.arena_start)
+	if((byte*)v+n > (byte*)runtime_mheap->arena_used || (byte*)v < runtime_mheap->arena_start)
 		runtime_throw("markspan: bad pointer");
 
 	p = v;
-	off = p - (uintptr*)runtime_mheap.arena_start;  // word offset
+	off = p - (uintptr*)runtime_mheap->arena_start;  // word offset
 	if(off % wordsPerBitmapWord != 0)
 		runtime_throw("markspan: unaligned pointer");
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	n /= PtrSize;
 	if(n%wordsPerBitmapWord != 0)
 		runtime_throw("unmarkspan: unaligned length");
@@ -1894,8 +2427,8 @@
 	if(DebugMark)
 		return true;
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	return (*b & (bitSpecial<<shift)) != 0;
@@ -1909,8 +2442,8 @@
 	if(DebugMark)
 		return;
 
-	off = (uintptr*)v - (uintptr*)runtime_mheap.arena_start;
-	b = (uintptr*)runtime_mheap.arena_start - off/wordsPerBitmapWord - 1;
+	off = (uintptr*)v - (uintptr*)runtime_mheap->arena_start;
+	b = (uintptr*)runtime_mheap->arena_start - off/wordsPerBitmapWord - 1;
 	shift = off % wordsPerBitmapWord;
 
 	for(;;) {
diff -Naur gcc-4.8.1.orig/libgo/runtime/mgc0.h gcc-4.8.1/libgo/runtime/mgc0.h
--- gcc-4.8.1.orig/libgo/runtime/mgc0.h	2012-12-21 19:15:33.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/mgc0.h	2013-07-16 01:55:04.520470000 -0500
@@ -12,17 +12,22 @@
 // Meaning of arguments:
 //   off      Offset (in bytes) from the start of the current object
 //   objgc    Pointer to GC info of an object
+//   objgcrel Offset to GC info of an object
 //   len      Length of an array
 //   elemsize Size (in bytes) of an element
 //   size     Size (in bytes)
+//
+// NOTE: There is a copy of these in ../reflect/type.go.
+// They must be kept in sync.
 enum {
 	GC_END,         // End of object, loop or subroutine. Args: none
 	GC_PTR,         // A typed pointer. Args: (off, objgc)
 	GC_APTR,        // Pointer to an arbitrary object. Args: (off)
 	GC_ARRAY_START, // Start an array with a fixed length. Args: (off, len, elemsize)
 	GC_ARRAY_NEXT,  // The next element of an array. Args: none
-	GC_CALL,        // Call a subroutine. Args: (off, objgc)
+	GC_CALL,        // Call a subroutine. Args: (off, objgcrel)
 	GC_MAP_PTR,     // Go map. Args: (off, MapType*)
+	GC_CHAN_PTR,    // Go channel. Args: (off, ChanType*)
 	GC_STRING,      // Go string. Args: (off)
 	GC_EFACE,       // interface{}. Args: (off)
 	GC_IFACE,       // interface{...}. Args: (off)
diff -Naur gcc-4.8.1.orig/libgo/runtime/mheap.c gcc-4.8.1/libgo/runtime/mheap.c
--- gcc-4.8.1.orig/libgo/runtime/mheap.c	2013-02-05 17:59:24.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/mheap.c	2013-07-16 01:55:04.520470000 -0500
@@ -37,6 +37,8 @@
 		if(cap < h->nspancap*3/2)
 			cap = h->nspancap*3/2;
 		all = (MSpan**)runtime_SysAlloc(cap*sizeof(all[0]));
+		if(all == nil)
+			runtime_throw("runtime: cannot allocate memory");
 		if(h->allspans) {
 			runtime_memmove(all, h->allspans, h->nspancap*sizeof(all[0]));
 			runtime_SysFree(h->allspans, h->nspancap*sizeof(all[0]));
@@ -119,6 +121,25 @@
 	s->state = MSpanInUse;
 	mstats.heap_idle -= s->npages<<PageShift;
 	mstats.heap_released -= s->npreleased<<PageShift;
+	if(s->npreleased > 0) {
+		// We have called runtime_SysUnused with these pages, and on
+		// Unix systems it called madvise.  At this point at least
+		// some BSD-based kernels will return these pages either as
+		// zeros or with the old data.  For our caller, the first word
+		// in the page indicates whether the span contains zeros or
+		// not (this word was set when the span was freed by
+		// MCentral_Free or runtime_MCentral_FreeSpan).  If the first
+		// page in the span is returned as zeros, and some subsequent
+		// page is returned with the old data, then we will be
+		// returning a span that is assumed to be all zeros, but the
+		// actual data will not be all zeros.  Avoid that problem by
+		// explicitly marking the span as not being zeroed, just in
+		// case.  The beadbead constant we use here means nothing, it
+		// is just a unique constant not seen elsewhere in the
+		// runtime, as a clue in case it turns up unexpectedly in
+		// memory or in a stack trace.
+		*(uintptr*)(s->start<<PageShift) = (uintptr)0xbeadbeadbeadbeadULL;
+	}
 	s->npreleased = 0;
 
 	if(s->npages > npage) {
@@ -356,23 +377,64 @@
 	runtime_notewakeup(note);
 }
 
+static uintptr
+scavengelist(MSpan *list, uint64 now, uint64 limit)
+{
+	uintptr released, sumreleased;
+	MSpan *s;
+
+	if(runtime_MSpanList_IsEmpty(list))
+		return 0;
+
+	sumreleased = 0;
+	for(s=list->next; s != list; s=s->next) {
+		if((now - s->unusedsince) > limit) {
+			released = (s->npages - s->npreleased) << PageShift;
+			mstats.heap_released += released;
+			sumreleased += released;
+			s->npreleased = s->npages;
+			runtime_SysUnused((void*)(s->start << PageShift), s->npages << PageShift);
+		}
+	}
+	return sumreleased;
+}
+
+static uintptr
+scavenge(uint64 now, uint64 limit)
+{
+	uint32 i;
+	uintptr sumreleased;
+	MHeap *h;
+	
+	h = runtime_mheap;
+	sumreleased = 0;
+	for(i=0; i < nelem(h->free); i++)
+		sumreleased += scavengelist(&h->free[i], now, limit);
+	sumreleased += scavengelist(&h->large, now, limit);
+	return sumreleased;
+}
+
 // Release (part of) unused memory to OS.
 // Goroutine created at startup.
 // Loop forever.
 void
 runtime_MHeap_Scavenger(void* dummy)
 {
+	G *g;
 	MHeap *h;
-	MSpan *s, *list;
 	uint64 tick, now, forcegc, limit;
-	uint32 k, i;
-	uintptr released, sumreleased;
+	uint32 k;
+	uintptr sumreleased;
 	const byte *env;
 	bool trace;
 	Note note, *notep;
 
 	USED(dummy);
 
+	g = runtime_g();
+	g->issystem = true;
+	g->isbackground = true;
+
 	// If we go two minutes without a garbage collection, force one to run.
 	forcegc = 2*60*1e9;
 	// If a span goes unused for 5 minutes after a garbage collection,
@@ -389,10 +451,10 @@
 	if(env != nil)
 		trace = runtime_atoi(env) > 0;
 
-	h = &runtime_mheap;
+	h = runtime_mheap;
 	for(k=0;; k++) {
 		runtime_noteclear(&note);
-		runtime_entersyscall();
+		runtime_entersyscallblock();
 		runtime_notetsleep(&note, tick);
 		runtime_exitsyscall();
 
@@ -406,7 +468,7 @@
 			runtime_noteclear(&note);
 			notep = &note;
 			__go_go(forcegchelper, (void*)notep);
-			runtime_entersyscall();
+			runtime_entersyscallblock();
 			runtime_notesleep(&note);
 			runtime_exitsyscall();
 			if(trace)
@@ -414,24 +476,7 @@
 			runtime_lock(h);
 			now = runtime_nanotime();
 		}
-		sumreleased = 0;
-		for(i=0; i < nelem(h->free)+1; i++) {
-			if(i < nelem(h->free))
-				list = &h->free[i];
-			else
-				list = &h->large;
-			if(runtime_MSpanList_IsEmpty(list))
-				continue;
-			for(s=list->next; s != list; s=s->next) {
-				if((now - s->unusedsince) > limit) {
-					released = (s->npages - s->npreleased) << PageShift;
-					mstats.heap_released += released;
-					sumreleased += released;
-					s->npreleased = s->npages;
-					runtime_SysUnused((void*)(s->start << PageShift), s->npages << PageShift);
-				}
-			}
-		}
+		sumreleased = scavenge(now, limit);
 		runtime_unlock(h);
 
 		if(trace) {
@@ -444,6 +489,17 @@
 	}
 }
 
+void runtime_debug_freeOSMemory(void) __asm__("runtime_debug.freeOSMemory");
+
+void
+runtime_debug_freeOSMemory(void)
+{
+	runtime_gc(1);
+	runtime_lock(runtime_mheap);
+	scavenge(~(uintptr)0, 0);
+	runtime_unlock(runtime_mheap);
+}
+
 // Initialize a new span with the given start and npages.
 void
 runtime_MSpan_Init(MSpan *span, PageID start, uintptr npages)
diff -Naur gcc-4.8.1.orig/libgo/runtime/mprof.goc gcc-4.8.1/libgo/runtime/mprof.goc
--- gcc-4.8.1.orig/libgo/runtime/mprof.goc	2013-01-30 16:24:40.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/mprof.goc	2013-07-16 01:55:04.520470000 -0500
@@ -14,7 +14,43 @@
 #include "go-string.h"
 
 // NOTE(rsc): Everything here could use cas if contention became an issue.
-static Lock proflock;
+static Lock proflock, alloclock;
+
+// All memory allocations are local and do not escape outside of the profiler.
+// The profiler is forbidden from referring to garbage-collected memory.
+
+static byte *pool;        // memory allocation pool
+static uintptr poolfree;  // number of bytes left in the pool
+enum {
+	Chunk = 32*PageSize,  // initial size of the pool
+};
+
+// Memory allocation local to this file.
+// There is no way to return the allocated memory back to the OS.
+static void*
+allocate(uintptr size)
+{
+	void *v;
+
+	if(size == 0)
+		return nil;
+
+	if(size >= Chunk/2)
+		return runtime_SysAlloc(size);
+
+	runtime_lock(&alloclock);
+	if(size > poolfree) {
+		pool = runtime_SysAlloc(Chunk);
+		if(pool == nil)
+			runtime_throw("runtime: cannot allocate memory");
+		poolfree = Chunk;
+	}
+	v = pool;
+	pool += size;
+	poolfree -= size;
+	runtime_unlock(&alloclock);
+	return v;
+}
 
 enum { MProf, BProf };  // profile types
 
@@ -26,6 +62,8 @@
 	Bucket	*next;	// next in hash list
 	Bucket	*allnext;	// next in list of all mbuckets/bbuckets
 	int32	typ;
+	// Generally unions can break precise GC,
+	// this one is fine because it does not contain pointers.
 	union
 	{
 		struct  // typ == MProf
@@ -67,6 +105,8 @@
 
 	if(buckhash == nil) {
 		buckhash = runtime_SysAlloc(BuckHashSize*sizeof buckhash[0]);
+		if(buckhash == nil)
+			runtime_throw("runtime: cannot allocate memory");
 		mstats.buckhash_sys += BuckHashSize*sizeof buckhash[0];
 	}
 
@@ -97,7 +137,9 @@
 	if(!alloc)
 		return nil;
 
-	b = runtime_mallocgc(sizeof *b + nstk*sizeof stk[0], FlagNoProfiling, 0, 1);
+	b = allocate(sizeof *b + nstk*sizeof stk[0]);
+	if(b == nil)
+		runtime_throw("runtime: cannot allocate memory");
 	bucketmem += sizeof *b + nstk*sizeof stk[0];
 	runtime_memmove(b->stk, stk, nstk*sizeof stk[0]);
 	b->typ = typ;
@@ -115,13 +157,11 @@
 	return b;
 }
 
-// Record that a gc just happened: all the 'recent' statistics are now real.
-void
-runtime_MProf_GC(void)
+static void
+MProf_GC(void)
 {
 	Bucket *b;
-	
-	runtime_lock(&proflock);
+
 	for(b=mbuckets; b; b=b->allnext) {
 		b->allocs += b->recent_allocs;
 		b->frees += b->recent_frees;
@@ -132,6 +172,14 @@
 		b->recent_alloc_bytes = 0;
 		b->recent_free_bytes = 0;
 	}
+}
+
+// Record that a gc just happened: all the 'recent' statistics are now real.
+void
+runtime_MProf_GC(void)
+{
+	runtime_lock(&proflock);
+	MProf_GC();
 	runtime_unlock(&proflock);
 }
 
@@ -166,7 +214,7 @@
 	Bucket *b;
 };
 
-static AddrHash *addrhash[1<<AddrHashBits];
+static AddrHash **addrhash;	// points to (AddrHash*)[1<<AddrHashBits]
 static AddrEntry *addrfree;
 static uintptr addrmem;
 
@@ -193,7 +241,7 @@
 		if(ah->addr == (addr>>AddrHashShift))
 			goto found;
 
-	ah = runtime_mallocgc(sizeof *ah, FlagNoProfiling, 0, 1);
+	ah = allocate(sizeof *ah);
 	addrmem += sizeof *ah;
 	ah->next = addrhash[h];
 	ah->addr = addr>>AddrHashShift;
@@ -201,7 +249,7 @@
 
 found:
 	if((e = addrfree) == nil) {
-		e = runtime_mallocgc(64*sizeof *e, FlagNoProfiling, 0, 0);
+		e = allocate(64*sizeof *e);
 		addrmem += 64*sizeof *e;
 		for(i=0; i+1<64; i++)
 			e[i].next = &e[i+1];
@@ -353,12 +401,28 @@
 func MemProfile(p Slice, include_inuse_zero bool) (n int, ok bool) {
 	Bucket *b;
 	Record *r;
+	bool clear;
 
 	runtime_lock(&proflock);
 	n = 0;
-	for(b=mbuckets; b; b=b->allnext)
+	clear = true;
+	for(b=mbuckets; b; b=b->allnext) {
 		if(include_inuse_zero || b->alloc_bytes != b->free_bytes)
 			n++;
+		if(b->allocs != 0 || b->frees != 0)
+			clear = false;
+	}
+	if(clear) {
+		// Absolutely no data, suggesting that a garbage collection
+		// has not yet happened. In order to allow profiling when
+		// garbage collection is disabled from the beginning of execution,
+		// accumulate stats as if a GC just happened, and recount buckets.
+		MProf_GC();
+		n = 0;
+		for(b=mbuckets; b; b=b->allnext)
+			if(include_inuse_zero || b->alloc_bytes != b->free_bytes)
+				n++;
+	}
 	ok = false;
 	if(n <= p.__count) {
 		ok = true;
@@ -531,3 +595,8 @@
 	}
 }
 
+void
+runtime_mprofinit(void)
+{
+	addrhash = allocate((1<<AddrHashBits)*sizeof *addrhash);
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_epoll.c gcc-4.8.1/libgo/runtime/netpoll_epoll.c
--- gcc-4.8.1.orig/libgo/runtime/netpoll_epoll.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/netpoll_epoll.c	2013-07-23 15:32:35.171520000 -0500
@@ -0,0 +1,158 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/epoll.h>
+
+#include "runtime.h"
+#include "defs.h"
+
+#ifndef EPOLLRDHUP
+#define EPOLLRDHUP 0x2000
+#endif
+
+#ifndef EPOLL_CLOEXEC
+#define EPOLL_CLOEXEC 02000000
+#endif
+
+#ifndef HAVE_EPOLL_CREATE1
+extern int epoll_create1(int __flags);
+#endif
+
+typedef struct epoll_event EpollEvent;
+
+static int32
+runtime_epollcreate(int32 size)
+{
+	int r;
+
+	r = epoll_create(size);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static int32
+runtime_epollcreate1(int32 flags)
+{
+	int r;
+
+	r = epoll_create1(flags);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static int32
+runtime_epollctl(int32 epfd, int32 op, int32 fd, EpollEvent *ev)
+{
+	int r;
+
+	r = epoll_ctl(epfd, op, fd, ev);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static int32
+runtime_epollwait(int32 epfd, EpollEvent *ev, int32 nev, int32 timeout)
+{
+	int r;
+
+	r = epoll_wait(epfd, ev, nev, timeout);
+	if(r >= 0)
+		return r;
+	return - errno;
+}
+
+static void
+runtime_closeonexec(int32 fd)
+{
+	fcntl(fd, F_SETFD, FD_CLOEXEC);
+}
+
+static int32 epfd = -1;  // epoll descriptor
+
+void
+runtime_netpollinit(void)
+{
+	epfd = runtime_epollcreate1(EPOLL_CLOEXEC);
+	if(epfd >= 0)
+		return;
+	epfd = runtime_epollcreate(1024);
+	if(epfd >= 0) {
+		runtime_closeonexec(epfd);
+		return;
+	}
+	runtime_printf("netpollinit: failed to create descriptor (%d)\n", -epfd);
+	runtime_throw("netpollinit: failed to create descriptor");
+}
+
+int32
+runtime_netpollopen(int32 fd, PollDesc *pd)
+{
+	EpollEvent ev;
+	int32 res;
+
+	ev.events = EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET;
+	ev.data.ptr = (void*)pd;
+	res = runtime_epollctl(epfd, EPOLL_CTL_ADD, fd, &ev);
+	return -res;
+}
+
+int32
+runtime_netpollclose(int32 fd)
+{
+	EpollEvent ev;
+	int32 res;
+
+	res = runtime_epollctl(epfd, EPOLL_CTL_DEL, fd, &ev);
+	return -res;
+}
+
+// polls for ready network connections
+// returns list of goroutines that become runnable
+G*
+runtime_netpoll(bool block)
+{
+	static int32 lasterr;
+	EpollEvent events[128], *ev;
+	int32 n, i, waitms, mode;
+	G *gp;
+
+	if(epfd == -1)
+		return nil;
+	waitms = -1;
+	if(!block)
+		waitms = 0;
+retry:
+	n = runtime_epollwait(epfd, events, nelem(events), waitms);
+	if(n < 0) {
+		if(n != -EINTR && n != lasterr) {
+			lasterr = n;
+			runtime_printf("runtime: epollwait on fd %d failed with %d\n", epfd, -n);
+		}
+		goto retry;
+	}
+	gp = nil;
+	for(i = 0; i < n; i++) {
+		ev = &events[i];
+		if(ev->events == 0)
+			continue;
+		mode = 0;
+		if(ev->events & (EPOLLIN|EPOLLRDHUP|EPOLLHUP|EPOLLERR))
+			mode += 'r';
+		if(ev->events & (EPOLLOUT|EPOLLHUP|EPOLLERR))
+			mode += 'w';
+		if(mode)
+			runtime_netpollready(&gp, (void*)ev->data.ptr, mode);
+	}
+	if(block && gp == nil)
+		goto retry;
+	return gp;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll.goc gcc-4.8.1/libgo/runtime/netpoll.goc
--- gcc-4.8.1.orig/libgo/runtime/netpoll.goc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/netpoll.goc	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,356 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin linux
+
+package net
+
+#include "runtime.h"
+#include "defs.h"
+#include "arch.h"
+#include "malloc.h"
+
+// Map gccgo field names to gc field names.
+// Eface aka __go_empty_interface.
+#define type __type_descriptor
+#define data __object
+
+// Integrated network poller (platform-independent part).
+// A particular implementation (epoll/kqueue) must define the following functions:
+// void runtime_netpollinit(void);			// to initialize the poller
+// int32 runtime_netpollopen(int32 fd, PollDesc *pd);	// to arm edge-triggered notifications
+							// and associate fd with pd.
+// An implementation must call the following function to denote that the pd is ready.
+// void runtime_netpollready(G **gpp, PollDesc *pd, int32 mode);
+
+#define READY ((G*)1)
+
+struct PollDesc
+{
+	PollDesc* link;	// in pollcache, protected by pollcache.Lock
+	Lock;		// protectes the following fields
+	int32	fd;
+	bool	closing;
+	uintptr	seq;	// protects from stale timers and ready notifications
+	G*	rg;	// G waiting for read or READY (binary semaphore)
+	Timer	rt;	// read deadline timer (set if rt.fv != nil)
+	int64	rd;	// read deadline
+	G*	wg;	// the same for writes
+	Timer	wt;
+	int64	wd;
+};
+
+static struct
+{
+	Lock;
+	PollDesc*	first;
+	// PollDesc objects must be type-stable,
+	// because we can get ready notification from epoll/kqueue
+	// after the descriptor is closed/reused.
+	// Stale notifications are detected using seq variable,
+	// seq is incremented when deadlines are changed or descriptor is reused.
+} pollcache;
+
+static void	netpollblock(PollDesc*, int32);
+static G*	netpollunblock(PollDesc*, int32);
+static void	deadline(int64, Eface);
+static void	readDeadline(int64, Eface);
+static void	writeDeadline(int64, Eface);
+static PollDesc*	allocPollDesc(void);
+static intgo	checkerr(PollDesc *pd, int32 mode);
+
+static FuncVal deadlineFn	= {(void(*)(void))deadline};
+static FuncVal readDeadlineFn	= {(void(*)(void))readDeadline};
+static FuncVal writeDeadlineFn	= {(void(*)(void))writeDeadline};
+
+func runtime_pollServerInit() {
+	runtime_netpollinit();
+}
+
+func runtime_pollOpen(fd int) (pd *PollDesc, errno int) {
+	pd = allocPollDesc();
+	runtime_lock(pd);
+	if(pd->wg != nil && pd->wg != READY)
+		runtime_throw("runtime_pollOpen: blocked write on free descriptor");
+	if(pd->rg != nil && pd->rg != READY)
+		runtime_throw("runtime_pollOpen: blocked read on free descriptor");
+	pd->fd = fd;
+	pd->closing = false;
+	pd->seq++;
+	pd->rg = nil;
+	pd->rd = 0;
+	pd->wg = nil;
+	pd->wd = 0;
+	runtime_unlock(pd);
+
+	errno = runtime_netpollopen(fd, pd);
+}
+
+func runtime_pollClose(pd *PollDesc) {
+	if(!pd->closing)
+		runtime_throw("runtime_pollClose: close w/o unblock");
+	if(pd->wg != nil && pd->wg != READY)
+		runtime_throw("runtime_pollClose: blocked write on closing descriptor");
+	if(pd->rg != nil && pd->rg != READY)
+		runtime_throw("runtime_pollClose: blocked read on closing descriptor");
+	runtime_netpollclose(pd->fd);
+	runtime_lock(&pollcache);
+	pd->link = pollcache.first;
+	pollcache.first = pd;
+	runtime_unlock(&pollcache);
+}
+
+func runtime_pollReset(pd *PollDesc, mode int) (err int) {
+	runtime_lock(pd);
+	err = checkerr(pd, mode);
+	if(err)
+		goto ret;
+	if(mode == 'r')
+		pd->rg = nil;
+	else if(mode == 'w')
+		pd->wg = nil;
+ret:
+	runtime_unlock(pd);
+}
+
+func runtime_pollWait(pd *PollDesc, mode int) (err int) {
+	runtime_lock(pd);
+	err = checkerr(pd, mode);
+	if(err)
+		goto ret;
+	netpollblock(pd, mode);
+	err = checkerr(pd, mode);
+ret:
+	runtime_unlock(pd);
+}
+
+func runtime_pollSetDeadline(pd *PollDesc, d int64, mode int) {
+	runtime_lock(pd);
+	if(pd->closing)
+		goto ret;
+	pd->seq++;  // invalidate current timers
+	// Reset current timers.
+	if(pd->rt.fv) {
+		runtime_deltimer(&pd->rt);
+		pd->rt.fv = nil;
+	}
+	if(pd->wt.fv) {
+		runtime_deltimer(&pd->wt);
+		pd->wt.fv = nil;
+	}
+	// Setup new timers.
+	if(d != 0 && d <= runtime_nanotime()) {
+		d = -1;
+	}
+	if(mode == 'r' || mode == 'r'+'w')
+		pd->rd = d;
+	if(mode == 'w' || mode == 'r'+'w')
+		pd->wd = d;
+	if(pd->rd > 0 && pd->rd == pd->wd) {
+		pd->rt.fv = &deadlineFn;
+		pd->rt.when = pd->rd;
+		// Copy current seq into the timer arg.
+		// Timer func will check the seq against current descriptor seq,
+		// if they differ the descriptor was reused or timers were reset.
+		pd->rt.arg.type = (Type*)pd->seq;
+		pd->rt.arg.data = pd;
+		runtime_addtimer(&pd->rt);
+	} else {
+		if(pd->rd > 0) {
+			pd->rt.fv = &readDeadlineFn;
+			pd->rt.when = pd->rd;
+			pd->rt.arg.type = (Type*)pd->seq;
+			pd->rt.arg.data = pd;
+			runtime_addtimer(&pd->rt);
+		}
+		if(pd->wd > 0) {
+			pd->wt.fv = &writeDeadlineFn;
+			pd->wt.when = pd->wd;
+			pd->wt.arg.type = (Type*)pd->seq;
+			pd->wt.arg.data = pd;
+			runtime_addtimer(&pd->wt);
+		}
+	}
+ret:
+	runtime_unlock(pd);
+}
+
+func runtime_pollUnblock(pd *PollDesc) {
+	G *rg, *wg;
+
+	runtime_lock(pd);
+	if(pd->closing)
+		runtime_throw("runtime_pollUnblock: already closing");
+	pd->closing = true;
+	pd->seq++;
+	rg = netpollunblock(pd, 'r');
+	wg = netpollunblock(pd, 'w');
+	if(pd->rt.fv) {
+		runtime_deltimer(&pd->rt);
+		pd->rt.fv = nil;
+	}
+	if(pd->wt.fv) {
+		runtime_deltimer(&pd->wt);
+		pd->wt.fv = nil;
+	}
+	runtime_unlock(pd);
+	if(rg)
+		runtime_ready(rg);
+	if(wg)
+		runtime_ready(wg);
+}
+
+// make pd ready, newly runnable goroutines (if any) are enqueued info gpp list
+void
+runtime_netpollready(G **gpp, PollDesc *pd, int32 mode)
+{
+	G *rg, *wg;
+
+	rg = wg = nil;
+	runtime_lock(pd);
+	if(mode == 'r' || mode == 'r'+'w')
+		rg = netpollunblock(pd, 'r');
+	if(mode == 'w' || mode == 'r'+'w')
+		wg = netpollunblock(pd, 'w');
+	runtime_unlock(pd);
+	if(rg) {
+		rg->schedlink = *gpp;
+		*gpp = rg;
+	}
+	if(wg) {
+		wg->schedlink = *gpp;
+		*gpp = wg;
+	}
+}
+
+static intgo
+checkerr(PollDesc *pd, int32 mode)
+{
+	if(pd->closing)
+		return 1;  // errClosing
+	if((mode == 'r' && pd->rd < 0) || (mode == 'w' && pd->wd < 0))
+		return 2;  // errTimeout
+	return 0;
+}
+
+static void
+netpollblock(PollDesc *pd, int32 mode)
+{
+	G **gpp;
+
+	gpp = &pd->rg;
+	if(mode == 'w')
+		gpp = &pd->wg;
+	if(*gpp == READY) {
+		*gpp = nil;
+		return;
+	}
+	if(*gpp != nil)
+		runtime_throw("epoll: double wait");
+	*gpp = runtime_g();
+	runtime_park(runtime_unlock, &pd->Lock, "IO wait");
+	runtime_lock(pd);
+}
+
+static G*
+netpollunblock(PollDesc *pd, int32 mode)
+{
+	G **gpp, *old;
+
+	gpp = &pd->rg;
+	if(mode == 'w')
+		gpp = &pd->wg;
+	if(*gpp == READY)
+		return nil;
+	if(*gpp == nil) {
+		*gpp = READY;
+		return nil;
+	}
+	old = *gpp;
+	*gpp = nil;
+	return old;
+}
+
+static void
+deadlineimpl(int64 now, Eface arg, bool read, bool write)
+{
+	PollDesc *pd;
+	uint32 seq;
+	G *rg, *wg;
+
+	USED(now);
+	pd = (PollDesc*)arg.data;
+	// This is the seq when the timer was set.
+	// If it's stale, ignore the timer event.
+	seq = (uintptr)arg.type;
+	rg = wg = nil;
+	runtime_lock(pd);
+	if(seq != pd->seq) {
+		// The descriptor was reused or timers were reset.
+		runtime_unlock(pd);
+		return;
+	}
+	if(read) {
+		if(pd->rd <= 0 || pd->rt.fv == nil)
+			runtime_throw("deadlineimpl: inconsistent read deadline");
+		pd->rd = -1;
+		pd->rt.fv = nil;
+		rg = netpollunblock(pd, 'r');
+	}
+	if(write) {
+		if(pd->wd <= 0 || (pd->wt.fv == nil && !read))
+			runtime_throw("deadlineimpl: inconsistent write deadline");
+		pd->wd = -1;
+		pd->wt.fv = nil;
+		wg = netpollunblock(pd, 'w');
+	}
+	runtime_unlock(pd);
+	if(rg)
+		runtime_ready(rg);
+	if(wg)
+		runtime_ready(wg);
+}
+
+static void
+deadline(int64 now, Eface arg)
+{
+	deadlineimpl(now, arg, true, true);
+}
+
+static void
+readDeadline(int64 now, Eface arg)
+{
+	deadlineimpl(now, arg, true, false);
+}
+
+static void
+writeDeadline(int64 now, Eface arg)
+{
+	deadlineimpl(now, arg, false, true);
+}
+
+static PollDesc*
+allocPollDesc(void)
+{
+	PollDesc *pd;
+	uint32 i, n;
+
+	runtime_lock(&pollcache);
+	if(pollcache.first == nil) {
+		n = PageSize/sizeof(*pd);
+		if(n == 0)
+			n = 1;
+		// Must be in non-GC memory because can be referenced
+		// only from epoll/kqueue internals.
+		pd = runtime_SysAlloc(n*sizeof(*pd));
+		for(i = 0; i < n; i++) {
+			pd[i].link = pollcache.first;
+			pollcache.first = &pd[i];
+		}
+	}
+	pd = pollcache.first;
+	pollcache.first = pd->link;
+	runtime_unlock(&pollcache);
+	return pd;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_kqueue.c gcc-4.8.1/libgo/runtime/netpoll_kqueue.c
--- gcc-4.8.1.orig/libgo/runtime/netpoll_kqueue.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/netpoll_kqueue.c	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,108 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin
+
+#include "runtime.h"
+#include "defs_GOOS_GOARCH.h"
+
+// Integrated network poller (kqueue-based implementation).
+
+int32	runtime_kqueue(void);
+int32	runtime_kevent(int32, Kevent*, int32, Kevent*, int32, Timespec*);
+void	runtime_closeonexec(int32);
+
+static int32 kq = -1;
+
+void
+runtime_netpollinit(void)
+{
+	kq = runtime_kqueue();
+	if(kq < 0) {
+		runtime_printf("netpollinit: kqueue failed with %d\n", -kq);
+		runtime_throw("netpollinit: kqueue failed");
+	}
+	runtime_closeonexec(kq);
+}
+
+int32
+runtime_netpollopen(int32 fd, PollDesc *pd)
+{
+	Kevent ev[2];
+	int32 n;
+
+	// Arm both EVFILT_READ and EVFILT_WRITE in edge-triggered mode (EV_CLEAR)
+	// for the whole fd lifetime.  The notifications are automatically unregistered
+	// when fd is closed.
+	ev[0].ident = fd;
+	ev[0].filter = EVFILT_READ;
+	ev[0].flags = EV_ADD|EV_RECEIPT|EV_CLEAR;
+	ev[0].fflags = 0;
+	ev[0].data = 0;
+	ev[0].udata = (byte*)pd;
+	ev[1] = ev[0];
+	ev[1].filter = EVFILT_WRITE;
+	n = runtime_kevent(kq, ev, 2, ev, 2, nil);
+	if(n < 0)
+		return -n;
+	if(n != 2 ||
+		(ev[0].flags&EV_ERROR) == 0 || ev[0].ident != fd || ev[0].filter != EVFILT_READ ||
+		(ev[1].flags&EV_ERROR) == 0 || ev[1].ident != fd || ev[1].filter != EVFILT_WRITE)
+		return EFAULT;  // just to mark out from other errors
+	if(ev[0].data != 0)
+		return ev[0].data;
+	if(ev[1].data != 0)
+		return ev[1].data;
+	return 0;
+}
+
+int32
+runtime_netpollclose(int32 fd)
+{
+	// Don't need to unregister because calling close()
+	// on fd will remove any kevents that reference the descriptor.
+	USED(fd);
+	return 0;
+}
+
+// Polls for ready network connections.
+// Returns list of goroutines that become runnable.
+G*
+runtime_netpoll(bool block)
+{
+	static int32 lasterr;
+	Kevent events[64], *ev;
+	Timespec ts, *tp;
+	int32 n, i;
+	G *gp;
+
+	if(kq == -1)
+		return nil;
+	tp = nil;
+	if(!block) {
+		ts.tv_sec = 0;
+		ts.tv_nsec = 0;
+		tp = &ts;
+	}
+	gp = nil;
+retry:
+	n = runtime_kevent(kq, nil, 0, events, nelem(events), tp);
+	if(n < 0) {
+		if(n != -EINTR && n != lasterr) {
+			lasterr = n;
+			runtime_printf("runtime: kevent on fd %d failed with %d\n", kq, -n);
+		}
+		goto retry;
+	}
+	for(i = 0; i < n; i++) {
+		ev = &events[i];
+		if(ev->filter == EVFILT_READ)
+			runtime_netpollready(&gp, (PollDesc*)ev->udata, 'r');
+		if(ev->filter == EVFILT_WRITE)
+			runtime_netpollready(&gp, (PollDesc*)ev->udata, 'w');
+	}
+	if(block && gp == nil)
+		goto retry;
+	return gp;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/netpoll_stub.c gcc-4.8.1/libgo/runtime/netpoll_stub.c
--- gcc-4.8.1.orig/libgo/runtime/netpoll_stub.c	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/netpoll_stub.c	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,18 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build freebsd netbsd openbsd plan9 windows
+
+#include "runtime.h"
+
+// Polls for ready network connections.
+// Returns list of goroutines that become runnable.
+G*
+runtime_netpoll(bool block)
+{
+	// Implementation for platforms that do not support
+	// integrated network poller.
+	USED(block);
+	return nil;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/panic.c gcc-4.8.1/libgo/runtime/panic.c
--- gcc-4.8.1.orig/libgo/runtime/panic.c	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/panic.c	2013-07-16 01:55:04.520470000 -0500
@@ -3,6 +3,7 @@
 // license that can be found in the LICENSE file.
 
 #include "runtime.h"
+#include "malloc.h"
 #include "go-defer.h"
 #include "go-panic.h"
 
@@ -37,6 +38,11 @@
 	M *m;
 
 	m = runtime_m();
+	if(runtime_mheap == 0 || runtime_mheap->cachealloc.size == 0) { // very early
+		runtime_printf("runtime: panic before malloc heap initialized\n");
+		m->mallocing = 1; // tell rest of panic not to try to malloc
+	} else if(m->mcache == nil) // can happen if called from signal handler or throw
+		m->mcache = runtime_allocmcache();
 	if(m->dying) {
 		runtime_printf("panic during panic\n");
 		runtime_exit(3);
@@ -51,13 +57,14 @@
 {
 	G *g;
 	static bool didothers;
+	bool crash;
 
 	g = runtime_g();
 	if(g->sig != 0)
 		runtime_printf("[signal %x code=%p addr=%p]\n",
 			       g->sig, (void*)g->sigcode0, (void*)g->sigcode1);
 
-	if(runtime_gotraceback()){
+	if(runtime_gotraceback(&crash)){
 		if(g != runtime_m()->g0) {
 			runtime_printf("\n");
 			runtime_goroutineheader(g);
@@ -79,6 +86,9 @@
 		runtime_lock(&deadlock);
 		runtime_lock(&deadlock);
 	}
+	
+	if(crash)
+		runtime_crash();
 
 	runtime_exit(2);
 }
diff -Naur gcc-4.8.1.orig/libgo/runtime/parfor.c gcc-4.8.1/libgo/runtime/parfor.c
--- gcc-4.8.1.orig/libgo/runtime/parfor.c	2013-01-24 13:44:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/parfor.c	2013-07-16 01:55:04.520470000 -0500
@@ -49,6 +49,7 @@
 runtime_parforsetup(ParFor *desc, uint32 nthr, uint32 n, void *ctx, bool wait, void (*body)(ParFor*, uint32))
 {
 	uint32 i, begin, end;
+	uint64 *pos;
 
 	if(desc == nil || nthr == 0 || nthr > desc->nthrmax || body == nil) {
 		runtime_printf("desc=%p nthr=%d count=%d body=%p\n", desc, nthr, n, body);
@@ -70,7 +71,10 @@
 	for(i=0; i<nthr; i++) {
 		begin = (uint64)n*i / nthr;
 		end = (uint64)n*(i+1) / nthr;
-		desc->thr[i].pos = (uint64)begin | (((uint64)end)<<32);
+		pos = &desc->thr[i].pos;
+		if(((uintptr)pos & 7) != 0)
+			runtime_throw("parforsetup: pos is not aligned");
+		*pos = (uint64)begin | (((uint64)end)<<32);
 	}
 }
 
@@ -83,7 +87,7 @@
 void
 runtime_parforsetup2(ParFor *desc, uint32 nthr, uint32 n, void *ctx, bool wait, void *body)
 {
-	runtime_parforsetup(desc, nthr, n, ctx, wait, (void(*)(ParFor*, uint32))body);
+	runtime_parforsetup(desc, nthr, n, ctx, wait, *(void(**)(ParFor*, uint32))body);
 }
 
 void
@@ -152,7 +156,7 @@
 				// See if it has any work.
 				begin = (uint32)pos;
 				end = (uint32)(pos>>32);
-				if(begin >= end-1) {
+				if(begin+1 >= end) {
 					begin = end = 0;
 					break;
 				}
diff -Naur gcc-4.8.1.orig/libgo/runtime/print.c gcc-4.8.1/libgo/runtime/print.c
--- gcc-4.8.1.orig/libgo/runtime/print.c	2012-12-04 00:18:07.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/print.c	2013-07-16 01:55:04.520470000 -0500
@@ -88,6 +88,9 @@
 		case 'a':
 			runtime_printslice(va_arg(va, Slice));
 			break;
+		case 'c':
+			runtime_printbyte(va_arg(va, int32));
+			break;
 		case 'd':
 			runtime_printint(va_arg(va, int32));
 			break;
@@ -154,6 +157,12 @@
 }
 
 void
+runtime_printbyte(int8 c)
+{
+	gwrite(&c, 1);
+}
+
+void
 runtime_printfloat(double v)
 {
 	byte buf[20];
diff -Naur gcc-4.8.1.orig/libgo/runtime/proc.c gcc-4.8.1/libgo/runtime/proc.c
--- gcc-4.8.1.orig/libgo/runtime/proc.c	2013-02-28 15:56:14.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/proc.c	2013-07-23 15:26:30.052588000 -0500
@@ -56,15 +56,8 @@
 
 uintptr runtime_stacks_sys;
 
-static void schedule(G*);
-
 static void gtraceback(G*);
 
-typedef struct Sched Sched;
-
-M	runtime_m0;
-G	runtime_g0;	// idle goroutine for m0
-
 #ifdef __rtems__
 #define __thread
 #endif
@@ -166,194 +159,61 @@
 	return m;
 }
 
-int32	runtime_gcwaiting;
-
-G*	runtime_allg;
-G*	runtime_lastg;
-M*	runtime_allm;
-
-int8*	runtime_goos;
-int32	runtime_ncpu;
-
-// The static TLS size.  See runtime_newm.
-static int tlssize;
-
-#ifdef HAVE_DL_ITERATE_PHDR
-
-// Called via dl_iterate_phdr.
-
-static int
-addtls(struct dl_phdr_info* info, size_t size __attribute__ ((unused)), void *data)
-{
-	size_t *total = (size_t *)data;
-	unsigned int i;
-
-	for(i = 0; i < info->dlpi_phnum; ++i) {
-		if(info->dlpi_phdr[i].p_type == PT_TLS)
-			*total += info->dlpi_phdr[i].p_memsz;
-	}
-	return 0;
-}
-
-// Set the total TLS size.
-
-static void
-inittlssize()
+// Set m and g.
+void
+runtime_setmg(M* mp, G* gp)
 {
-	size_t total = 0;
-
-	dl_iterate_phdr(addtls, (void *)&total);
-	tlssize = total;
+	m = mp;
+	g = gp;
 }
 
-#else
+// The static TLS size.  See runtime_newm.
+static int tlssize;
 
+// Start a new thread.
 static void
-inittlssize()
+runtime_newosproc(M *mp)
 {
-}
-
-#endif
-
-// Go scheduler
-//
-// The go scheduler's job is to match ready-to-run goroutines (`g's)
-// with waiting-for-work schedulers (`m's).  If there are ready g's
-// and no waiting m's, ready() will start a new m running in a new
-// OS thread, so that all ready g's can run simultaneously, up to a limit.
-// For now, m's never go away.
-//
-// By default, Go keeps only one kernel thread (m) running user code
-// at a single time; other threads may be blocked in the operating system.
-// Setting the environment variable $GOMAXPROCS or calling
-// runtime.GOMAXPROCS() will change the number of user threads
-// allowed to execute simultaneously.  $GOMAXPROCS is thus an
-// approximation of the maximum number of cores to use.
-//
-// Even a program that can run without deadlock in a single process
-// might use more m's if given the chance.  For example, the prime
-// sieve will use as many m's as there are primes (up to runtime_sched.mmax),
-// allowing different stages of the pipeline to execute in parallel.
-// We could revisit this choice, only kicking off new m's for blocking
-// system calls, but that would limit the amount of parallel computation
-// that go would try to do.
-//
-// In general, one could imagine all sorts of refinements to the
-// scheduler, but the goal now is just to get something working on
-// Linux and OS X.
-
-struct Sched {
-	Lock;
-
-	G *gfree;	// available g's (status == Gdead)
-	int64 goidgen;
-
-	G *ghead;	// g's waiting to run
-	G *gtail;
-	int32 gwait;	// number of g's waiting to run
-	int32 gcount;	// number of g's that are alive
-	int32 grunning;	// number of g's running on cpu or in syscall
-
-	M *mhead;	// m's waiting for work
-	int32 mwait;	// number of m's waiting for work
-	int32 mcount;	// number of m's that have been created
+	pthread_attr_t attr;
+	size_t stacksize;
+	sigset_t clear, old;
+	pthread_t tid;
+	int ret;
 
-	volatile uint32 atomic;	// atomic scheduling word (see below)
+	if(pthread_attr_init(&attr) != 0)
+		runtime_throw("pthread_attr_init");
+	if(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) != 0)
+		runtime_throw("pthread_attr_setdetachstate");
 
-	int32 profilehz;	// cpu profiling rate
+	stacksize = PTHREAD_STACK_MIN;
 
-	bool init;  // running initialization
-	bool lockmain;  // init called runtime.LockOSThread
+	// With glibc before version 2.16 the static TLS size is taken
+	// out of the stack size, and we get an error or a crash if
+	// there is not enough stack space left.  Add it back in if we
+	// can, in case the program uses a lot of TLS space.  FIXME:
+	// This can be disabled in glibc 2.16 and later, if the bug is
+	// indeed fixed then.
+	stacksize += tlssize;
 
-	Note	stopped;	// one g can set waitstop and wait here for m's to stop
-};
+	if(pthread_attr_setstacksize(&attr, stacksize) != 0)
+		runtime_throw("pthread_attr_setstacksize");
 
-// The atomic word in sched is an atomic uint32 that
-// holds these fields.
-//
-//	[15 bits] mcpu		number of m's executing on cpu
-//	[15 bits] mcpumax	max number of m's allowed on cpu
-//	[1 bit] waitstop	some g is waiting on stopped
-//	[1 bit] gwaiting	gwait != 0
-//
-// These fields are the information needed by entersyscall
-// and exitsyscall to decide whether to coordinate with the
-// scheduler.  Packing them into a single machine word lets
-// them use a fast path with a single atomic read/write and
-// no lock/unlock.  This greatly reduces contention in
-// syscall- or cgo-heavy multithreaded programs.
-//
-// Except for entersyscall and exitsyscall, the manipulations
-// to these fields only happen while holding the schedlock,
-// so the routines holding schedlock only need to worry about
-// what entersyscall and exitsyscall do, not the other routines
-// (which also use the schedlock).
-//
-// In particular, entersyscall and exitsyscall only read mcpumax,
-// waitstop, and gwaiting.  They never write them.  Thus, writes to those
-// fields can be done (holding schedlock) without fear of write conflicts.
-// There may still be logic conflicts: for example, the set of waitstop must
-// be conditioned on mcpu >= mcpumax or else the wait may be a
-// spurious sleep.  The Promela model in proc.p verifies these accesses.
-enum {
-	mcpuWidth = 15,
-	mcpuMask = (1<<mcpuWidth) - 1,
-	mcpuShift = 0,
-	mcpumaxShift = mcpuShift + mcpuWidth,
-	waitstopShift = mcpumaxShift + mcpuWidth,
-	gwaitingShift = waitstopShift+1,
-
-	// The max value of GOMAXPROCS is constrained
-	// by the max value we can store in the bit fields
-	// of the atomic word.  Reserve a few high values
-	// so that we can detect accidental decrement
-	// beyond zero.
-	maxgomaxprocs = mcpuMask - 10,
-};
+	// Block signals during pthread_create so that the new thread
+	// starts with signals disabled.  It will enable them in minit.
+	sigfillset(&clear);
 
-#define atomic_mcpu(v)		(((v)>>mcpuShift)&mcpuMask)
-#define atomic_mcpumax(v)	(((v)>>mcpumaxShift)&mcpuMask)
-#define atomic_waitstop(v)	(((v)>>waitstopShift)&1)
-#define atomic_gwaiting(v)	(((v)>>gwaitingShift)&1)
-
-Sched runtime_sched;
-int32 runtime_gomaxprocs;
-bool runtime_singleproc;
-
-static bool canaddmcpu(void);
-
-// An m that is waiting for notewakeup(&m->havenextg).  This may
-// only be accessed while the scheduler lock is held.  This is used to
-// minimize the number of times we call notewakeup while the scheduler
-// lock is held, since the m will normally move quickly to lock the
-// scheduler itself, producing lock contention.
-static M* mwakeup;
-
-// Scheduling helpers.  Sched must be locked.
-static void gput(G*);	// put/get on ghead/gtail
-static G* gget(void);
-static void mput(M*);	// put/get on mhead
-static M* mget(G*);
-static void gfput(G*);	// put/get on gfree
-static G* gfget(void);
-static void matchmg(void);	// match m's to g's
-static void readylocked(G*);	// ready, but sched is locked
-static void mnextg(M*, G*);
-static void mcommoninit(M*);
+#ifdef SIGTRAP
+	// Blocking SIGTRAP reportedly breaks gdb on Alpha GNU/Linux.
+	sigdelset(&clear, SIGTRAP);
+#endif
 
-void
-setmcpumax(uint32 n)
-{
-	uint32 v, w;
+	sigemptyset(&old);
+	sigprocmask(SIG_BLOCK, &clear, &old);
+	ret = pthread_create(&tid, &attr, runtime_mstart, mp);
+	sigprocmask(SIG_SETMASK, &old, nil);
 
-	for(;;) {
-		v = runtime_sched.atomic;
-		w = v;
-		w &= ~(mcpuMask<<mcpumaxShift);
-		w |= n<<mcpumaxShift;
-		if(runtime_cas(&runtime_sched.atomic, v, w))
-			break;
-	}
+	if (ret != 0)
+		runtime_throw("pthread_create");
 }
 
 // First function run by a new goroutine.  This replaces gogocall.
@@ -449,8 +309,143 @@
 	}
 }
 
-// Keep trace of scavenger's goroutine for deadlock detection.
-static G *scvg;
+#ifdef HAVE_DL_ITERATE_PHDR
+
+// Called via dl_iterate_phdr.
+
+static int
+addtls(struct dl_phdr_info* info, size_t size __attribute__ ((unused)), void *data)
+{
+	size_t *total = (size_t *)data;
+	unsigned int i;
+
+	for(i = 0; i < info->dlpi_phnum; ++i) {
+		if(info->dlpi_phdr[i].p_type == PT_TLS)
+			*total += info->dlpi_phdr[i].p_memsz;
+	}
+	return 0;
+}
+
+// Set the total TLS size.
+
+static void
+inittlssize()
+{
+	size_t total = 0;
+
+	dl_iterate_phdr(addtls, (void *)&total);
+	tlssize = total;
+}
+
+#else
+
+static void
+inittlssize()
+{
+}
+
+#endif
+
+// Goroutine scheduler
+// The scheduler's job is to distribute ready-to-run goroutines over worker threads.
+//
+// The main concepts are:
+// G - goroutine.
+// M - worker thread, or machine.
+// P - processor, a resource that is required to execute Go code.
+//     M must have an associated P to execute Go code, however it can be
+//     blocked or in a syscall w/o an associated P.
+//
+// Design doc at http://golang.org/s/go11sched.
+
+typedef struct Sched Sched;
+struct Sched {
+	Lock;
+
+	uint64	goidgen;
+	M*	midle;	 // idle m's waiting for work
+	int32	nmidle;	 // number of idle m's waiting for work
+	int32	mlocked; // number of locked m's waiting for work
+	int32	mcount;	 // number of m's that have been created
+
+	P*	pidle;  // idle P's
+	uint32	npidle;
+	uint32	nmspinning;
+
+	// Global runnable queue.
+	G*	runqhead;
+	G*	runqtail;
+	int32	runqsize;
+
+	// Global cache of dead G's.
+	Lock	gflock;
+	G*	gfree;
+
+	int32	stopwait;
+	Note	stopnote;
+	uint32	sysmonwait;
+	Note	sysmonnote;
+	uint64	lastpoll;
+
+	int32	profilehz;	// cpu profiling rate
+};
+
+// The max value of GOMAXPROCS.
+// There are no fundamental restrictions on the value.
+enum { MaxGomaxprocs = 1<<8 };
+
+Sched	runtime_sched;
+int32	runtime_gomaxprocs;
+bool	runtime_singleproc;
+bool	runtime_iscgo = true;
+uint32	runtime_needextram = 1;
+uint32	runtime_gcwaiting;
+M	runtime_m0;
+G	runtime_g0;	 // idle goroutine for m0
+G*	runtime_allg;
+G*	runtime_lastg;
+M*	runtime_allm;
+P**	runtime_allp;
+M*	runtime_extram;
+int8*	runtime_goos;
+int32	runtime_ncpu;
+static int32	newprocs;
+
+void* runtime_mstart(void*);
+static void runqput(P*, G*);
+static G* runqget(P*);
+static void runqgrow(P*);
+static G* runqsteal(P*, P*);
+static void mput(M*);
+static M* mget(void);
+static void mcommoninit(M*);
+static void schedule(void);
+static void procresize(int32);
+static void acquirep(P*);
+static P* releasep(void);
+static void newm(void(*)(void), P*);
+static void stopm(void);
+static void startm(P*, bool);
+static void handoffp(P*);
+static void wakep(void);
+static void stoplockedm(void);
+static void startlockedm(G*);
+static void sysmon(void);
+static uint32 retake(uint32*);
+static void inclocked(int32);
+static void checkdead(void);
+static void exitsyscall0(G*);
+static void park0(G*);
+static void gosched0(G*);
+static void goexit0(G*);
+static void gfput(P*, G*);
+static G* gfget(P*);
+static void gfpurge(P*);
+static void globrunqput(G*);
+static G* globrunqget(P*);
+static P* pidleget(void);
+static void pidleput(P*);
+static void injectglist(G*);
 
 // The bootstrap sequence is:
 //
@@ -463,7 +458,7 @@
 void
 runtime_schedinit(void)
 {
-	int32 n;
+	int32 n, procs;
 	const byte *p;
 
 	m = &runtime_m0;
@@ -476,6 +471,7 @@
 	inittlssize();
 
 	m->nomemprof++;
+	runtime_mprofinit();
 	runtime_mallocinit();
 	mcommoninit(m);
 
@@ -487,28 +483,20 @@
 	// so that we don't need to call malloc when we crash.
 	// runtime_findfunc(0);
 
-	runtime_gomaxprocs = 1;
+	runtime_sched.lastpoll = runtime_nanotime();
+	procs = 1;
 	p = runtime_getenv("GOMAXPROCS");
-	if(p != nil && (n = runtime_atoi(p)) != 0) {
-		if(n > maxgomaxprocs)
-			n = maxgomaxprocs;
-		runtime_gomaxprocs = n;
-	}
-	// wait for the main goroutine to start before taking
-	// GOMAXPROCS into account.
-	setmcpumax(1);
-	runtime_singleproc = runtime_gomaxprocs == 1;
-
-	canaddmcpu();	// mcpu++ to account for bootstrap m
-	m->helpgc = 1;	// flag to tell schedule() to mcpu--
-	runtime_sched.grunning++;
+	if(p != nil && (n = runtime_atoi(p)) > 0) {
+		if(n > MaxGomaxprocs)
+			n = MaxGomaxprocs;
+		procs = n;
+	}
+	runtime_allp = runtime_malloc((MaxGomaxprocs+1)*sizeof(runtime_allp[0]));
+	procresize(procs);
 
 	// Can not enable GC until all roots are registered.
 	// mstats.enablegc = 1;
 	m->nomemprof--;
-
-	if(raceenabled)
-		runtime_raceinit();
 }
 
 extern void main_init(void) __asm__ (GOSYM_PREFIX "__go_init_main");
@@ -516,70 +504,44 @@
 
 // The main goroutine.
 void
-runtime_main(void)
+runtime_main(void* dummy __attribute__((unused)))
 {
+	newm(sysmon, nil);
+
 	// Lock the main goroutine onto this, the main OS thread,
 	// during initialization.  Most programs won't care, but a few
 	// do require certain calls to be made by the main thread.
 	// Those can arrange for main.main to run in the main thread
 	// by calling runtime.LockOSThread during initialization
 	// to preserve the lock.
-	runtime_LockOSThread();
-	// From now on, newgoroutines may use non-main threads.
-	setmcpumax(runtime_gomaxprocs);
-	runtime_sched.init = true;
-	scvg = __go_go(runtime_MHeap_Scavenger, nil);
-	scvg->issystem = true;
+	runtime_lockOSThread();
+	if(m != &runtime_m0)
+		runtime_throw("runtime_main not on m0");
+	__go_go(runtime_MHeap_Scavenger, nil);
 	main_init();
-	runtime_sched.init = false;
-	if(!runtime_sched.lockmain)
-		runtime_UnlockOSThread();
+	runtime_unlockOSThread();
 
 	// For gccgo we have to wait until after main is initialized
 	// to enable GC, because initializing main registers the GC
 	// roots.
 	mstats.enablegc = 1;
 
-	// The deadlock detection has false negatives.
-	// Let scvg start up, to eliminate the false negative
-	// for the trivial program func main() { select{} }.
-	runtime_gosched();
-
 	main_main();
 	if(raceenabled)
 		runtime_racefini();
+
+	// Make racy client program work: if panicking on
+	// another goroutine at the same time as main returns,
+	// let the other goroutine finish printing the panic trace.
+	// Once it does, it will exit. See issue 3934.
+	if(runtime_panicking)
+		runtime_park(nil, nil, "panicwait");
+
 	runtime_exit(0);
 	for(;;)
 		*(int32*)0 = 0;
 }
 
-// Lock the scheduler.
-static void
-schedlock(void)
-{
-	runtime_lock(&runtime_sched);
-}
-
-// Unlock the scheduler.
-static void
-schedunlock(void)
-{
-	M *mp;
-
-	mp = mwakeup;
-	mwakeup = nil;
-	runtime_unlock(&runtime_sched);
-	if(mp != nil)
-		runtime_notewakeup(&mp->havenextg);
-}
-
-void
-runtime_goexit(void)
-{
-	g->status = Gmoribund;
-	runtime_gosched();
-}
-
 void
 runtime_goroutineheader(G *gp)
 {
@@ -604,9 +566,6 @@
 		else
 			status = "waiting";
 		break;
-	case Gmoribund:
-		status = "moribund";
-		break;
 	default:
 		status = "???";
 		break;
@@ -644,7 +603,7 @@
 	int32 traceback;
 
 	tb.gp = me;
-	traceback = runtime_gotraceback();
+	traceback = runtime_gotraceback(nil);
 	for(gp = runtime_allg; gp != nil; gp = gp->alllink) {
 		if(gp == me || gp->status == Gdead)
 			continue;
@@ -698,28 +657,20 @@
 	runtime_gogo(traceback->gp);
 }
 
-// Mark this g as m's idle goroutine.
-// This functionality might be used in environments where programs
-// are limited to a single thread, to simulate a select-driven
-// network server.  It is not exposed via the standard runtime API.
-void
-runtime_idlegoroutine(void)
-{
-	if(g->idlem != nil)
-		runtime_throw("g is already an idle goroutine");
-	g->idlem = m;
-}
-
 static void
 mcommoninit(M *mp)
 {
-	mp->id = runtime_sched.mcount++;
+	// If there is no mcache runtime_callers() will crash,
+	// and we are most likely in sysmon thread so the stack is senseless anyway.
+	if(m->mcache)
+		runtime_callers(1, mp->createstack, nelem(mp->createstack));
+
 	mp->fastrand = 0x49f6428aUL + mp->id + runtime_cputicks();
 
-	if(mp->mcache == nil)
-		mp->mcache = runtime_allocmcache();
+	runtime_lock(&runtime_sched);
+	mp->id = runtime_sched.mcount++;
 
-	runtime_callers(1, mp->createstack, nelem(mp->createstack));
+	runtime_mpreinit(mp);
 
 	// Add to runtime_allm so garbage collector doesn't free m
 	// when it is just in a register or thread-local storage.
@@ -727,382 +678,182 @@
 	// runtime_NumCgoCall() iterates over allm w/o schedlock,
 	// so we need to publish it safely.
 	runtime_atomicstorep(&runtime_allm, mp);
+	runtime_unlock(&runtime_sched);
 }
 
-// Try to increment mcpu.  Report whether succeeded.
-static bool
-canaddmcpu(void)
+// Mark gp ready to run.
+void
+runtime_ready(G *gp)
 {
-	uint32 v;
-
-	for(;;) {
-		v = runtime_sched.atomic;
-		if(atomic_mcpu(v) >= atomic_mcpumax(v))
-			return 0;
-		if(runtime_cas(&runtime_sched.atomic, v, v+(1<<mcpuShift)))
-			return 1;
+	// Mark runnable.
+	if(gp->status != Gwaiting) {
+		runtime_printf("goroutine %D has status %d\n", gp->goid, gp->status);
+		runtime_throw("bad g->status in ready");
 	}
+	gp->status = Grunnable;
+	runqput(m->p, gp);
+	if(runtime_atomicload(&runtime_sched.npidle) != 0 && runtime_atomicload(&runtime_sched.nmspinning) == 0)  // TODO: fast atomic
+		wakep();
 }
 
-// Put on `g' queue.  Sched must be locked.
-static void
-gput(G *gp)
+int32
+runtime_gcprocs(void)
 {
-	M *mp;
-
-	// If g is wired, hand it off directly.
-	if((mp = gp->lockedm) != nil && canaddmcpu()) {
-		mnextg(mp, gp);
-		return;
-	}
+	int32 n;
 
-	// If g is the idle goroutine for an m, hand it off.
-	if(gp->idlem != nil) {
-		if(gp->idlem->idleg != nil) {
-			runtime_printf("m%d idle out of sync: g%D g%D\n",
-				gp->idlem->id,
-				gp->idlem->idleg->goid, gp->goid);
-			runtime_throw("runtime: double idle");
-		}
-		gp->idlem->idleg = gp;
-		return;
-	}
+	// Figure out how many CPUs to use during GC.
+	// Limited by gomaxprocs, number of actual CPUs, and MaxGcproc.
+	runtime_lock(&runtime_sched);
+	n = runtime_gomaxprocs;
+	if(n > runtime_ncpu)
+		n = runtime_ncpu > 0 ? runtime_ncpu : 1;
+	if(n > MaxGcproc)
+		n = MaxGcproc;
+	if(n > runtime_sched.nmidle+1) // one M is currently running
+		n = runtime_sched.nmidle+1;
+	runtime_unlock(&runtime_sched);
+	return n;
+}
 
-	gp->schedlink = nil;
-	if(runtime_sched.ghead == nil)
-		runtime_sched.ghead = gp;
-	else
-		runtime_sched.gtail->schedlink = gp;
-	runtime_sched.gtail = gp;
+static bool
+needaddgcproc(void)
+{
+	int32 n;
 
-	// increment gwait.
-	// if it transitions to nonzero, set atomic gwaiting bit.
-	if(runtime_sched.gwait++ == 0)
-		runtime_xadd(&runtime_sched.atomic, 1<<gwaitingShift);
+	runtime_lock(&runtime_sched);
+	n = runtime_gomaxprocs;
+	if(n > runtime_ncpu)
+		n = runtime_ncpu;
+	if(n > MaxGcproc)
+		n = MaxGcproc;
+	n -= runtime_sched.nmidle+1; // one M is currently running
+	runtime_unlock(&runtime_sched);
+	return n > 0;
 }
 
-// Report whether gget would return something.
-static bool
-haveg(void)
+void
+runtime_helpgc(int32 nproc)
 {
-	return runtime_sched.ghead != nil || m->idleg != nil;
+	M *mp;
+	int32 n, pos;
+
+	runtime_lock(&runtime_sched);
+	pos = 0;
+	for(n = 1; n < nproc; n++) {  // one M is currently running
+		if(runtime_allp[pos]->mcache == m->mcache)
+			pos++;
+		mp = mget();
+		if(mp == nil)
+			runtime_throw("runtime_gcprocs inconsistency");
+		mp->helpgc = n;
+		mp->mcache = runtime_allp[pos]->mcache;
+		pos++;
+		runtime_notewakeup(&mp->park);
+	}
+	runtime_unlock(&runtime_sched);
 }
 
-// Get from `g' queue.  Sched must be locked.
-static G*
-gget(void)
+void
+runtime_stoptheworld(void)
 {
-	G *gp;
+	int32 i;
+	uint32 s;
+	P *p;
+	bool wait;
 
-	gp = runtime_sched.ghead;
-	if(gp) {
-		runtime_sched.ghead = gp->schedlink;
-		if(runtime_sched.ghead == nil)
-			runtime_sched.gtail = nil;
-		// decrement gwait.
-		// if it transitions to zero, clear atomic gwaiting bit.
-		if(--runtime_sched.gwait == 0)
-			runtime_xadd(&runtime_sched.atomic, -1<<gwaitingShift);
-	} else if(m->idleg != nil) {
-		gp = m->idleg;
-		m->idleg = nil;
+	runtime_lock(&runtime_sched);
+	runtime_sched.stopwait = runtime_gomaxprocs;
+	runtime_atomicstore((uint32*)&runtime_gcwaiting, 1);
+	// stop current P
+	m->p->status = Pgcstop;
+	runtime_sched.stopwait--;
+	// try to retake all P's in Psyscall status
+	for(i = 0; i < runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		s = p->status;
+		if(s == Psyscall && runtime_cas(&p->status, s, Pgcstop))
+			runtime_sched.stopwait--;
+	}
+	// stop idle P's
+	while((p = pidleget()) != nil) {
+		p->status = Pgcstop;
+		runtime_sched.stopwait--;
+	}
+	wait = runtime_sched.stopwait > 0;
+	runtime_unlock(&runtime_sched);
+
+	// wait for remaining P's to stop voluntary
+	if(wait) {
+		runtime_notesleep(&runtime_sched.stopnote);
+		runtime_noteclear(&runtime_sched.stopnote);
+	}
+	if(runtime_sched.stopwait)
+		runtime_throw("stoptheworld: not stopped");
+	for(i = 0; i < runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		if(p->status != Pgcstop)
+			runtime_throw("stoptheworld: not stopped");
 	}
-	return gp;
 }
 
-// Put on `m' list.  Sched must be locked.
 static void
-mput(M *mp)
+mhelpgc(void)
 {
-	mp->schedlink = runtime_sched.mhead;
-	runtime_sched.mhead = mp;
-	runtime_sched.mwait++;
+	m->helpgc = -1;
 }
 
-// Get an `m' to run `g'.  Sched must be locked.
-static M*
-mget(G *gp)
-{
-	M *mp;
-
-	// if g has its own m, use it.
-	if(gp && (mp = gp->lockedm) != nil)
-		return mp;
-
-	// otherwise use general m pool.
-	if((mp = runtime_sched.mhead) != nil) {
-		runtime_sched.mhead = mp->schedlink;
-		runtime_sched.mwait--;
-	}
-	return mp;
-}
-
-// Mark g ready to run.
 void
-runtime_ready(G *gp)
-{
-	schedlock();
-	readylocked(gp);
-	schedunlock();
-}
-
-// Mark g ready to run.  Sched is already locked.
-// G might be running already and about to stop.
-// The sched lock protects g->status from changing underfoot.
-static void
-readylocked(G *gp)
-{
-	if(gp->m) {
-		// Running on another machine.
-		// Ready it when it stops.
-		gp->readyonstop = 1;
-		return;
-	}
-
-	// Mark runnable.
-	if(gp->status == Grunnable || gp->status == Grunning) {
-		runtime_printf("goroutine %D has status %d\n", gp->goid, gp->status);
-		runtime_throw("bad g->status in ready");
-	}
-	gp->status = Grunnable;
-
-	gput(gp);
-	matchmg();
-}
-
-// Same as readylocked but a different symbol so that
-// debuggers can set a breakpoint here and catch all
-// new goroutines.
-static void
-newprocreadylocked(G *gp)
-{
-	readylocked(gp);
-}
-
-// Pass g to m for running.
-// Caller has already incremented mcpu.
-static void
-mnextg(M *mp, G *gp)
-{
-	runtime_sched.grunning++;
-	mp->nextg = gp;
-	if(mp->waitnextg) {
-		mp->waitnextg = 0;
-		if(mwakeup != nil)
-			runtime_notewakeup(&mwakeup->havenextg);
-		mwakeup = mp;
-	}
-}
-
-// Get the next goroutine that m should run.
-// Sched must be locked on entry, is unlocked on exit.
-// Makes sure that at most $GOMAXPROCS g's are
-// running on cpus (not in system calls) at any given time.
-static G*
-nextgandunlock(void)
+runtime_starttheworld(void)
 {
+	P *p, *p1;
+	M *mp;
 	G *gp;
-	uint32 v;
-
-top:
-	if(atomic_mcpu(runtime_sched.atomic) >= maxgomaxprocs)
-		runtime_throw("negative mcpu");
+	bool add;
 
-	// If there is a g waiting as m->nextg, the mcpu++
-	// happened before it was passed to mnextg.
-	if(m->nextg != nil) {
-		gp = m->nextg;
-		m->nextg = nil;
-		schedunlock();
-		return gp;
-	}
+	gp = runtime_netpoll(false);  // non-blocking
+	injectglist(gp);
+	add = needaddgcproc();
+	runtime_lock(&runtime_sched);
+	if(newprocs) {
+		procresize(newprocs);
+		newprocs = 0;
+	} else
+		procresize(runtime_gomaxprocs);
+	runtime_gcwaiting = 0;
 
-	if(m->lockedg != nil) {
-		// We can only run one g, and it's not available.
-		// Make sure some other cpu is running to handle
-		// the ordinary run queue.
-		if(runtime_sched.gwait != 0) {
-			matchmg();
-			// m->lockedg might have been on the queue.
-			if(m->nextg != nil) {
-				gp = m->nextg;
-				m->nextg = nil;
-				schedunlock();
-				return gp;
-			}
+	p1 = nil;
+	while((p = pidleget()) != nil) {
+		// procresize() puts p's with work at the beginning of the list.
+		// Once we reach a p without a run queue, the rest don't have one either.
+		if(p->runqhead == p->runqtail) {
+			pidleput(p);
+			break;
 		}
-	} else {
-		// Look for work on global queue.
-		while(haveg() && canaddmcpu()) {
-			gp = gget();
-			if(gp == nil)
-				runtime_throw("gget inconsistency");
-
-			if(gp->lockedm) {
-				mnextg(gp->lockedm, gp);
-				continue;
-			}
-			runtime_sched.grunning++;
-			schedunlock();
-			return gp;
+		mp = mget();
+		if(mp == nil) {
+			p->link = p1;
+			p1 = p;
+			continue;
 		}
-
-		// The while loop ended either because the g queue is empty
-		// or because we have maxed out our m procs running go
-		// code (mcpu >= mcpumax).  We need to check that
-		// concurrent actions by entersyscall/exitsyscall cannot
-		// invalidate the decision to end the loop.
-		//
-		// We hold the sched lock, so no one else is manipulating the
-		// g queue or changing mcpumax.  Entersyscall can decrement
-		// mcpu, but if does so when there is something on the g queue,
-		// the gwait bit will be set, so entersyscall will take the slow path
-		// and use the sched lock.  So it cannot invalidate our decision.
-		//
-		// Wait on global m queue.
-		mput(m);
-	}
-
-	// Look for deadlock situation.
-	// There is a race with the scavenger that causes false negatives:
-	// if the scavenger is just starting, then we have
-	//	scvg != nil && grunning == 0 && gwait == 0
-	// and we do not detect a deadlock.  It is possible that we should
-	// add that case to the if statement here, but it is too close to Go 1
-	// to make such a subtle change.  Instead, we work around the
-	// false negative in trivial programs by calling runtime.gosched
-	// from the main goroutine just before main.main.
-	// See runtime_main above.
-	//
-	// On a related note, it is also possible that the scvg == nil case is
-	// wrong and should include gwait, but that does not happen in
-	// standard Go programs, which all start the scavenger.
-	//
-	if((scvg == nil && runtime_sched.grunning == 0) ||
-	   (scvg != nil && runtime_sched.grunning == 1 && runtime_sched.gwait == 0 &&
-	    (scvg->status == Grunning || scvg->status == Gsyscall))) {
-		m->throwing = -1;  // do not dump full stacks
-		runtime_throw("all goroutines are asleep - deadlock!");
-	}
-
-	m->nextg = nil;
-	m->waitnextg = 1;
-	runtime_noteclear(&m->havenextg);
-
-	// Stoptheworld is waiting for all but its cpu to go to stop.
-	// Entersyscall might have decremented mcpu too, but if so
-	// it will see the waitstop and take the slow path.
-	// Exitsyscall never increments mcpu beyond mcpumax.
-	v = runtime_atomicload(&runtime_sched.atomic);
-	if(atomic_waitstop(v) && atomic_mcpu(v) <= atomic_mcpumax(v)) {
-		// set waitstop = 0 (known to be 1)
-		runtime_xadd(&runtime_sched.atomic, -1<<waitstopShift);
-		runtime_notewakeup(&runtime_sched.stopped);
-	}
-	schedunlock();
-
-	runtime_notesleep(&m->havenextg);
-	if(m->helpgc) {
-		runtime_gchelper();
-		m->helpgc = 0;
-		runtime_lock(&runtime_sched);
-		goto top;
-	}
-	if((gp = m->nextg) == nil)
-		runtime_throw("bad m->nextg in nextgoroutine");
-	m->nextg = nil;
-	return gp;
-}
-
-int32
-runtime_gcprocs(void)
-{
-	int32 n;
-	
-	// Figure out how many CPUs to use during GC.
-	// Limited by gomaxprocs, number of actual CPUs, and MaxGcproc.
-	n = runtime_gomaxprocs;
-	if(n > runtime_ncpu)
-		n = runtime_ncpu > 0 ? runtime_ncpu : 1;
-	if(n > MaxGcproc)
-		n = MaxGcproc;
-	if(n > runtime_sched.mwait+1) // one M is currently running
-		n = runtime_sched.mwait+1;
-	return n;
-}
-
-void
-runtime_helpgc(int32 nproc)
-{
-	M *mp;
-	int32 n;
-
-	runtime_lock(&runtime_sched);
-	for(n = 1; n < nproc; n++) { // one M is currently running
-		mp = mget(nil);
-		if(mp == nil)
-			runtime_throw("runtime_gcprocs inconsistency");
-		mp->helpgc = 1;
-		mp->waitnextg = 0;
-		runtime_notewakeup(&mp->havenextg);
+		if(mp->nextp)
+			runtime_throw("starttheworld: inconsistent mp->nextp");
+		mp->nextp = p;
+		runtime_notewakeup(&mp->park);
+	}
+	if(runtime_sched.sysmonwait) {
+		runtime_sched.sysmonwait = false;
+		runtime_notewakeup(&runtime_sched.sysmonnote);
 	}
 	runtime_unlock(&runtime_sched);
-}
-
-void
-runtime_stoptheworld(void)
-{
-	uint32 v;
 
-	schedlock();
-	runtime_gcwaiting = 1;
-
-	setmcpumax(1);
-
-	// while mcpu > 1
-	for(;;) {
-		v = runtime_sched.atomic;
-		if(atomic_mcpu(v) <= 1)
-			break;
-
-		// It would be unsafe for multiple threads to be using
-		// the stopped note at once, but there is only
-		// ever one thread doing garbage collection.
-		runtime_noteclear(&runtime_sched.stopped);
-		if(atomic_waitstop(v))
-			runtime_throw("invalid waitstop");
-
-		// atomic { waitstop = 1 }, predicated on mcpu <= 1 check above
-		// still being true.
-		if(!runtime_cas(&runtime_sched.atomic, v, v+(1<<waitstopShift)))
-			continue;
-
-		schedunlock();
-		runtime_notesleep(&runtime_sched.stopped);
-		schedlock();
+	while(p1) {
+		p = p1;
+		p1 = p1->link;
+		add = false;
+		newm(nil, p);
 	}
-	runtime_singleproc = runtime_gomaxprocs == 1;
-	schedunlock();
-}
 
-void
-runtime_starttheworld(void)
-{
-	M *mp;
-	int32 max;
-	
-	// Figure out how many CPUs GC could possibly use.
-	max = runtime_gomaxprocs;
-	if(max > runtime_ncpu)
-		max = runtime_ncpu > 0 ? runtime_ncpu : 1;
-	if(max > MaxGcproc)
-		max = MaxGcproc;
-
-	schedlock();
-	runtime_gcwaiting = 0;
-	setmcpumax(runtime_gomaxprocs);
-	matchmg();
-	if(runtime_gcprocs() < max && canaddmcpu()) {
+	if(add) {
 		// If GC could have used another helper proc, start one now,
 		// in the hope that it will be available next time.
 		// It would have been even better to start it before the collection,
@@ -1110,17 +861,8 @@
 		// coordinate.  This lazy approach works out in practice:
 		// we don't mind if the first couple gc rounds don't have quite
 		// the maximum number of procs.
-		// canaddmcpu above did mcpu++
-		// (necessary, because m will be doing various
-		// initialization work so is definitely running),
-		// but m is not running a specific goroutine,
-		// so set the helpgc flag as a signal to m's
-		// first schedule(nil) to mcpu-- and grunning--.
-		mp = runtime_newm();
-		mp->helpgc = 1;
-		runtime_sched.grunning++;
+		newm(mhelpgc, nil);
 	}
-	schedunlock();
 }
 
 // Called to start an M.
@@ -1160,17 +902,30 @@
 
 #ifdef USING_SPLIT_STACK
 	{
-	  int dont_block_signals = 0;
-	  __splitstack_block_signals(&dont_block_signals, nil);
+		int dont_block_signals = 0;
+		__splitstack_block_signals(&dont_block_signals, nil);
 	}
 #endif
 
 	// Install signal handlers; after minit so that minit can
 	// prepare the thread to be able to handle the signals.
-	if(m == &runtime_m0)
+	if(m == &runtime_m0) {
 		runtime_initsig();
+		if(runtime_iscgo)
+			runtime_newextram();
+	}
+	
+	if(m->mstartfn)
+		m->mstartfn();
 
-	schedule(nil);
+	if(m->helpgc) {
+		m->helpgc = 0;
+		stopm();
+	} else if(m != &runtime_m0) {
+		acquirep(m->nextp);
+		m->nextp = nil;
+	}
+	schedule();
 
 	// TODO(brainman): This point is never reached, because scheduler
 	// does not release os threads at the moment. But once this path
@@ -1187,43 +942,17 @@
 	void (*fn)(void);
 };
 
-// Kick off new m's as needed (up to mcpumax).
-// Sched is locked.
-static void
-matchmg(void)
-{
-	G *gp;
-	M *mp;
-
-	if(m->mallocing || m->gcing)
-		return;
-
-	while(haveg() && canaddmcpu()) {
-		gp = gget();
-		if(gp == nil)
-			runtime_throw("gget inconsistency");
-
-		// Find the m that will run gp.
-		if((mp = mget(gp)) == nil)
-			mp = runtime_newm();
-		mnextg(mp, gp);
-	}
-}
-
-// Create a new m.  It will start off with a call to runtime_mstart.
+// Allocate a new m unassociated with any thread.
+// Can use p for allocation context if needed.
 M*
-runtime_newm(void)
+runtime_allocm(P *p, int32 stacksize, byte** ret_g0_stack, size_t* ret_g0_stacksize)
 {
 	M *mp;
-	pthread_attr_t attr;
-	pthread_t tid;
-	size_t stacksize;
-	sigset_t clear;
-	sigset_t old;
-	int ret;
 
+	m->locks++;  // disable GC because it can be called from sysmon
+	if(m->p == nil)
+		acquirep(p);  // temporarily borrow p for mallocs in this function
 #if 0
-	static const Type *mtype;  // The Go type M
 	if(mtype == nil) {
 		Eface e;
 		runtime_gc_m_ptr(&e);
@@ -1233,114 +962,482 @@
 
 	mp = runtime_mal(sizeof *mp);
 	mcommoninit(mp);
-	mp->g0 = runtime_malg(-1, nil, nil);
+	mp->g0 = runtime_malg(stacksize, ret_g0_stack, ret_g0_stacksize);
 
-	if(pthread_attr_init(&attr) != 0)
-		runtime_throw("pthread_attr_init");
-	if(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) != 0)
-		runtime_throw("pthread_attr_setdetachstate");
+	if(p == m->p)
+		releasep();
+	m->locks--;
 
-	stacksize = PTHREAD_STACK_MIN;
+	return mp;
+}
 
-	// With glibc before version 2.16 the static TLS size is taken
-	// out of the stack size, and we get an error or a crash if
-	// there is not enough stack space left.  Add it back in if we
-	// can, in case the program uses a lot of TLS space.  FIXME:
-	// This can be disabled in glibc 2.16 and later, if the bug is
-	// indeed fixed then.
-	stacksize += tlssize;
+static M* lockextra(bool nilokay);
+static void unlockextra(M*);
 
-	if(pthread_attr_setstacksize(&attr, stacksize) != 0)
-		runtime_throw("pthread_attr_setstacksize");
+// needm is called when a cgo callback happens on a
+// thread without an m (a thread not created by Go).
+// In this case, needm is expected to find an m to use
+// and return with m, g initialized correctly.
+// Since m and g are not set now (likely nil, but see below)
+// needm is limited in what routines it can call. In particular
+// it can only call nosplit functions (textflag 7) and cannot
+// do any scheduling that requires an m.
+//
+// In order to avoid needing heavy lifting here, we adopt
+// the following strategy: there is a stack of available m's
+// that can be stolen. Using compare-and-swap
+// to pop from the stack has ABA races, so we simulate
+// a lock by doing an exchange (via casp) to steal the stack
+// head and replace the top pointer with MLOCKED (1).
+// This serves as a simple spin lock that we can use even
+// without an m. The thread that locks the stack in this way
+// unlocks the stack by storing a valid stack head pointer.
+//
+// In order to make sure that there is always an m structure
+// available to be stolen, we maintain the invariant that there
+// is always one more than needed. At the beginning of the
+// program (if cgo is in use) the list is seeded with a single m.
+// If needm finds that it has taken the last m off the list, its job
+// is - once it has installed its own m so that it can do things like
+// allocate memory - to create a spare m and put it on the list.
+//
+// Each of these extra m's also has a g0 and a curg that are
+// pressed into service as the scheduling stack and current
+// goroutine for the duration of the cgo callback.
+//
+// When the callback is done with the m, it calls dropm to
+// put the m back on the list.
+//
+// Unlike the gc toolchain, we start running on curg, since we are
+// just going to return and let the caller continue.
+void
+runtime_needm(void)
+{
+	M *mp;
 
-	// Block signals during pthread_create so that the new thread
-	// starts with signals disabled.  It will enable them in minit.
-	sigfillset(&clear);
+	// Lock extra list, take head, unlock popped list.
+	// nilokay=false is safe here because of the invariant above,
+	// that the extra list always contains or will soon contain
+	// at least one m.
+	mp = lockextra(false);
+
+	// Set needextram when we've just emptied the list,
+	// so that the eventual call into cgocallbackg will
+	// allocate a new m for the extra list. We delay the
+	// allocation until then so that it can be done
+	// after exitsyscall makes sure it is okay to be
+	// running at all (that is, there's no garbage collection
+	// running right now).
+	mp->needextram = mp->schedlink == nil;
+	unlockextra(mp->schedlink);
 
-#ifdef SIGTRAP
-	// Blocking SIGTRAP reportedly breaks gdb on Alpha GNU/Linux.
-	sigdelset(&clear, SIGTRAP);
+	// Install m and g (= m->curg).
+	runtime_setmg(mp, mp->curg);
+
+	// Initialize g's context as in mstart.
+	initcontext();
+	g->status = Gsyscall;
+	g->entry = nil;
+	g->param = nil;
+#ifdef USING_SPLIT_STACK
+	__splitstack_getcontext(&g->stack_context[0]);
+#else
+	g->gcinitial_sp = &mp;
+	g->gcstack_size = 0;
+	g->gcnext_sp = &mp;
 #endif
+	getcontext(&g->context);
 
-	sigemptyset(&old);
-	sigprocmask(SIG_BLOCK, &clear, &old);
-	ret = pthread_create(&tid, &attr, runtime_mstart, mp);
-	sigprocmask(SIG_SETMASK, &old, nil);
+	if(g->entry != nil) {
+		// Got here from mcall.
+		void (*pfn)(G*) = (void (*)(G*))g->entry;
+		G* gp = (G*)g->param;
+		pfn(gp);
+		*(int*)0x22 = 0x22;
+	}
 
-	if (ret != 0)
-		runtime_throw("pthread_create");
+	// Initialize this thread to use the m.
+	runtime_minit();
+
+#ifdef USING_SPLIT_STACK
+	{
+		int dont_block_signals = 0;
+		__splitstack_block_signals(&dont_block_signals, nil);
+	}
+#endif
+}
+
+// newextram allocates an m and puts it on the extra list.
+// It is called with a working local m, so that it can do things
+// like call schedlock and allocate.
+void
+runtime_newextram(void)
+{
+	M *mp, *mnext;
+	G *gp;
+	byte *g0_sp, *sp;
+	size_t g0_spsize, spsize;
+
+	// Create extra goroutine locked to extra m.
+	// The goroutine is the context in which the cgo callback will run.
+	// The sched.pc will never be returned to, but setting it to
+	// runtime.goexit makes clear to the traceback routines where
+	// the goroutine stack ends.
+	mp = runtime_allocm(nil, StackMin, &g0_sp, &g0_spsize);
+	gp = runtime_malg(StackMin, &sp, &spsize);
+	gp->status = Gdead;
+	mp->curg = gp;
+	mp->locked = LockInternal;
+	mp->lockedg = gp;
+	gp->lockedm = mp;
+	// put on allg for garbage collector
+	runtime_lock(&runtime_sched);
+	if(runtime_lastg == nil)
+		runtime_allg = gp;
+	else
+		runtime_lastg->alllink = gp;
+	runtime_lastg = gp;
+	runtime_unlock(&runtime_sched);
+	gp->goid = runtime_xadd64(&runtime_sched.goidgen, 1);
+
+	// The context for gp will be set up in runtime_needm.  But
+	// here we need to set up the context for g0.
+	getcontext(&mp->g0->context);
+	mp->g0->context.uc_stack.ss_sp = g0_sp;
+#ifdef MAKECONTEXT_STACK_TOP
+	mp->g0->context.uc_stack.ss_sp += g0_spsize;
+#endif
+	mp->g0->context.uc_stack.ss_size = g0_spsize;
+	makecontext(&mp->g0->context, kickoff, 0);
+
+	// Add m to the extra list.
+	mnext = lockextra(true);
+	mp->schedlink = mnext;
+	unlockextra(mp);
+}
+
+// dropm is called when a cgo callback has called needm but is now
+// done with the callback and returning back into the non-Go thread.
+// It puts the current m back onto the extra list.
+//
+// The main expense here is the call to signalstack to release the
+// m's signal stack, and then the call to needm on the next callback
+// from this thread. It is tempting to try to save the m for next time,
+// which would eliminate both these costs, but there might not be
+// a next time: the current thread (which Go does not control) might exit.
+// If we saved the m for that thread, there would be an m leak each time
+// such a thread exited. Instead, we acquire and release an m on each
+// call. These should typically not be scheduling operations, just a few
+// atomics, so the cost should be small.
+//
+// TODO(rsc): An alternative would be to allocate a dummy pthread per-thread
+// variable using pthread_key_create. Unlike the pthread keys we already use
+// on OS X, this dummy key would never be read by Go code. It would exist
+// only so that we could register at thread-exit-time destructor.
+// That destructor would put the m back onto the extra list.
+// This is purely a performance optimization. The current version,
+// in which dropm happens on each cgo call, is still correct too.
+// We may have to keep the current version on systems with cgo
+// but without pthreads, like Windows.
+void
+runtime_dropm(void)
+{
+	M *mp, *mnext;
+
+	// Undo whatever initialization minit did during needm.
+	runtime_unminit();
 
+	// Clear m and g, and return m to the extra list.
+	// After the call to setmg we can only call nosplit functions.
+	mp = m;
+	runtime_setmg(nil, nil);
+
+	mp->curg->status = Gdead;
+
+	mnext = lockextra(true);
+	mp->schedlink = mnext;
+	unlockextra(mp);
+}
+
+#define MLOCKED ((M*)1)
+
+// lockextra locks the extra list and returns the list head.
+// The caller must unlock the list by storing a new list head
+// to runtime.extram. If nilokay is true, then lockextra will
+// return a nil list head if that's what it finds. If nilokay is false,
+// lockextra will keep waiting until the list head is no longer nil.
+static M*
+lockextra(bool nilokay)
+{
+	M *mp;
+	void (*yield)(void);
+
+	for(;;) {
+		mp = runtime_atomicloadp(&runtime_extram);
+		if(mp == MLOCKED) {
+			yield = runtime_osyield;
+			yield();
+			continue;
+		}
+		if(mp == nil && !nilokay) {
+			runtime_usleep(1);
+			continue;
+		}
+		if(!runtime_casp(&runtime_extram, mp, MLOCKED)) {
+			yield = runtime_osyield;
+			yield();
+			continue;
+		}
+		break;
+	}
 	return mp;
 }
 
-// One round of scheduler: find a goroutine and run it.
-// The argument is the goroutine that was running before
-// schedule was called, or nil if this is the first call.
-// Never returns.
 static void
-schedule(G *gp)
+unlockextra(M *mp)
 {
-	int32 hz;
-	uint32 v;
+	runtime_atomicstorep(&runtime_extram, mp);
+}
 
-	schedlock();
-	if(gp != nil) {
-		// Just finished running gp.
-		gp->m = nil;
-		runtime_sched.grunning--;
-
-		// atomic { mcpu-- }
-		v = runtime_xadd(&runtime_sched.atomic, -1<<mcpuShift);
-		if(atomic_mcpu(v) > maxgomaxprocs)
-			runtime_throw("negative mcpu in scheduler");
-
-		switch(gp->status) {
-		case Grunnable:
-		case Gdead:
-			// Shouldn't have been running!
-			runtime_throw("bad gp->status in sched");
-		case Grunning:
-			gp->status = Grunnable;
-			gput(gp);
-			break;
-		case Gmoribund:
-			if(raceenabled)
-				runtime_racegoend(gp->goid);
-			gp->status = Gdead;
-			if(gp->lockedm) {
-				gp->lockedm = nil;
-				m->lockedg = nil;
-			}
-			gp->idlem = nil;
-			runtime_memclr(&gp->context, sizeof gp->context);
-			gfput(gp);
-			if(--runtime_sched.gcount == 0)
-				runtime_exit(0);
-			break;
+static int32
+countextra()
+{
+	M *mp, *mc;
+	int32 c;
+
+	for(;;) {
+		mp = runtime_atomicloadp(&runtime_extram);
+		if(mp == MLOCKED) {
+			runtime_osyield();
+			continue;
+		}
+		if(!runtime_casp(&runtime_extram, mp, MLOCKED)) {
+			runtime_osyield();
+			continue;
 		}
-		if(gp->readyonstop) {
-			gp->readyonstop = 0;
-			readylocked(gp);
-		}
-	} else if(m->helpgc) {
-		// Bootstrap m or new m started by starttheworld.
-		// atomic { mcpu-- }
-		v = runtime_xadd(&runtime_sched.atomic, -1<<mcpuShift);
-		if(atomic_mcpu(v) > maxgomaxprocs)
-			runtime_throw("negative mcpu in scheduler");
-		// Compensate for increment in starttheworld().
-		runtime_sched.grunning--;
+		c = 0;
+		for(mc = mp; mc != nil; mc = mc->schedlink)
+			c++;
+		runtime_atomicstorep(&runtime_extram, mp);
+		return c;
+	}
+}
+
+// Create a new m.  It will start off with a call to fn, or else the scheduler.
+static void
+newm(void(*fn)(void), P *p)
+{
+	M *mp;
+
+	mp = runtime_allocm(p, -1, nil, nil);
+	mp->nextp = p;
+	mp->mstartfn = fn;
+
+	runtime_newosproc(mp);
+}
+
+// Stops execution of the current m until new work is available.
+// Returns with acquired P.
+static void
+stopm(void)
+{
+	if(m->locks)
+		runtime_throw("stopm holding locks");
+	if(m->p)
+		runtime_throw("stopm holding p");
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+
+retry:
+	runtime_lock(&runtime_sched);
+	mput(m);
+	runtime_unlock(&runtime_sched);
+	runtime_notesleep(&m->park);
+	runtime_noteclear(&m->park);
+	if(m->helpgc) {
+		runtime_gchelper();
 		m->helpgc = 0;
-	} else if(m->nextg != nil) {
-		// New m started by matchmg.
-	} else {
-		runtime_throw("invalid m state in scheduler");
+		m->mcache = nil;
+		goto retry;
 	}
+	acquirep(m->nextp);
+	m->nextp = nil;
+}
+
+static void
+mspinning(void)
+{
+	m->spinning = true;
+}
+
+// Schedules some M to run the p (creates an M if necessary).
+// If p==nil, tries to get an idle P, if no idle P's returns false.
+static void
+startm(P *p, bool spinning)
+{
+	M *mp;
+	void (*fn)(void);
+
+	runtime_lock(&runtime_sched);
+	if(p == nil) {
+		p = pidleget();
+		if(p == nil) {
+			runtime_unlock(&runtime_sched);
+			if(spinning)
+				runtime_xadd(&runtime_sched.nmspinning, -1);
+			return;
+		}
+	}
+	mp = mget();
+	runtime_unlock(&runtime_sched);
+	if(mp == nil) {
+		fn = nil;
+		if(spinning)
+			fn = mspinning;
+		newm(fn, p);
+		return;
+	}
+	if(mp->spinning)
+		runtime_throw("startm: m is spinning");
+	if(mp->nextp)
+		runtime_throw("startm: m has p");
+	mp->spinning = spinning;
+	mp->nextp = p;
+	runtime_notewakeup(&mp->park);
+}
+
+// Hands off P from syscall or locked M.
+static void
+handoffp(P *p)
+{
+	// if it has local work, start it straight away
+	if(p->runqhead != p->runqtail || runtime_sched.runqsize) {
+		startm(p, false);
+		return;
+	}
+	// no local work, check that there are no spinning/idle M's,
+	// otherwise our help is not required
+	if(runtime_atomicload(&runtime_sched.nmspinning) + runtime_atomicload(&runtime_sched.npidle) == 0 &&  // TODO: fast atomic
+		runtime_cas(&runtime_sched.nmspinning, 0, 1)) {
+		startm(p, true);
+		return;
+	}
+	runtime_lock(&runtime_sched);
+	if(runtime_gcwaiting) {
+		p->status = Pgcstop;
+		if(--runtime_sched.stopwait == 0)
+			runtime_notewakeup(&runtime_sched.stopnote);
+		runtime_unlock(&runtime_sched);
+		return;
+	}
+	if(runtime_sched.runqsize) {
+		runtime_unlock(&runtime_sched);
+		startm(p, false);
+		return;
+	}
+	// If this is the last running P and nobody is polling network,
+	// need to wakeup another M to poll network.
+	if(runtime_sched.npidle == (uint32)runtime_gomaxprocs-1 && runtime_atomicload64(&runtime_sched.lastpoll) != 0) {
+		runtime_unlock(&runtime_sched);
+		startm(p, false);
+		return;
+	}
+	pidleput(p);
+	runtime_unlock(&runtime_sched);
+}
+
+// Tries to add one more P to execute G's.
+// Called when a G is made runnable (newproc, ready).
+static void
+wakep(void)
+{
+	// be conservative about spinning threads
+	if(!runtime_cas(&runtime_sched.nmspinning, 0, 1))
+		return;
+	startm(nil, true);
+}
+
+// Stops execution of the current m that is locked to a g until the g is runnable again.
+// Returns with acquired P.
+static void
+stoplockedm(void)
+{
+	P *p;
 
-	// Find (or wait for) g to run.  Unlocks runtime_sched.
-	gp = nextgandunlock();
-	gp->readyonstop = 0;
+	if(m->lockedg == nil || m->lockedg->lockedm != m)
+		runtime_throw("stoplockedm: inconsistent locking");
+	if(m->p) {
+		// Schedule another M to run this p.
+		p = releasep();
+		handoffp(p);
+	}
+	inclocked(1);
+	// Wait until another thread schedules lockedg again.
+	runtime_notesleep(&m->park);
+	runtime_noteclear(&m->park);
+	if(m->lockedg->status != Grunnable)
+		runtime_throw("stoplockedm: not runnable");
+	acquirep(m->nextp);
+	m->nextp = nil;
+}
+
+// Schedules the locked m to run the locked gp.
+static void
+startlockedm(G *gp)
+{
+	M *mp;
+	P *p;
+
+	mp = gp->lockedm;
+	if(mp == m)
+		runtime_throw("startlockedm: locked to me");
+	if(mp->nextp)
+		runtime_throw("startlockedm: m has p");
+	// directly handoff current P to the locked m
+	inclocked(-1);
+	p = releasep();
+	mp->nextp = p;
+	runtime_notewakeup(&mp->park);
+	stopm();
+}
+
+// Stops the current m for stoptheworld.
+// Returns when the world is restarted.
+static void
+gcstopm(void)
+{
+	P *p;
+
+	if(!runtime_gcwaiting)
+		runtime_throw("gcstopm: not waiting for gc");
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+	p = releasep();
+	runtime_lock(&runtime_sched);
+	p->status = Pgcstop;
+	if(--runtime_sched.stopwait == 0)
+		runtime_notewakeup(&runtime_sched.stopnote);
+	runtime_unlock(&runtime_sched);
+	stopm();
+}
+
+// Schedules gp to run on the current M.
+// Never returns.
+static void
+execute(G *gp)
+{
+	int32 hz;
+
+	if(gp->status != Grunnable) {
+		runtime_printf("execute: bad g status %d\n", gp->status);
+		runtime_throw("execute: bad g status");
+	}
 	gp->status = Grunning;
+	m->p->tick++;
 	m->curg = gp;
 	gp->m = m;
 
@@ -1352,30 +1449,261 @@
 	runtime_gogo(gp);
 }
 
-// Enter scheduler.  If g->status is Grunning,
-// re-queues g and runs everyone else who is waiting
-// before running g again.  If g->status is Gmoribund,
-// kills off g.
-void
-runtime_gosched(void)
+// Finds a runnable goroutine to execute.
+// Tries to steal from other P's, get g from global queue, poll network.
+static G*
+findrunnable(void)
 {
-	if(m->locks != 0)
-		runtime_throw("gosched holding locks");
-	if(g == m->g0)
-		runtime_throw("gosched of g0");
-	runtime_mcall(schedule);
+	G *gp;
+	P *p;
+	int32 i;
+
+top:
+	if(runtime_gcwaiting) {
+		gcstopm();
+		goto top;
+	}
+	// local runq
+	gp = runqget(m->p);
+	if(gp)
+		return gp;
+	// global runq
+	if(runtime_sched.runqsize) {
+		runtime_lock(&runtime_sched);
+		gp = globrunqget(m->p);
+		runtime_unlock(&runtime_sched);
+		if(gp)
+			return gp;
+	}
+	// poll network
+	gp = runtime_netpoll(false);  // non-blocking
+	if(gp) {
+		injectglist(gp->schedlink);
+		gp->status = Grunnable;
+		return gp;
+	}
+	// If number of spinning M's >= number of busy P's, block.
+	// This is necessary to prevent excessive CPU consumption
+	// when GOMAXPROCS>>1 but the program parallelism is low.
+	if(!m->spinning && 2 * runtime_atomicload(&runtime_sched.nmspinning) >= runtime_gomaxprocs - runtime_atomicload(&runtime_sched.npidle))  // TODO: fast atomic
+		goto stop;
+	if(!m->spinning) {
+		m->spinning = true;
+		runtime_xadd(&runtime_sched.nmspinning, 1);
+	}
+	// random steal from other P's
+	for(i = 0; i < 2*runtime_gomaxprocs; i++) {
+		if(runtime_gcwaiting)
+			goto top;
+		p = runtime_allp[runtime_fastrand1()%runtime_gomaxprocs];
+		if(p == m->p)
+			gp = runqget(p);
+		else
+			gp = runqsteal(m->p, p);
+		if(gp)
+			return gp;
+	}
+stop:
+	// return P and block
+	runtime_lock(&runtime_sched);
+	if(runtime_gcwaiting) {
+		runtime_unlock(&runtime_sched);
+		goto top;
+	}
+	if(runtime_sched.runqsize) {
+		gp = globrunqget(m->p);
+		runtime_unlock(&runtime_sched);
+		return gp;
+	}
+	p = releasep();
+	pidleput(p);
+	runtime_unlock(&runtime_sched);
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+	// check all runqueues once again
+	for(i = 0; i < runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		if(p && p->runqhead != p->runqtail) {
+			runtime_lock(&runtime_sched);
+			p = pidleget();
+			runtime_unlock(&runtime_sched);
+			if(p) {
+				acquirep(p);
+				goto top;
+			}
+			break;
+		}
+	}
+	// poll network
+	if(runtime_xchg64(&runtime_sched.lastpoll, 0) != 0) {
+		if(m->p)
+			runtime_throw("findrunnable: netpoll with p");
+		if(m->spinning)
+			runtime_throw("findrunnable: netpoll with spinning");
+		gp = runtime_netpoll(true);  // block until new work is available
+		runtime_atomicstore64(&runtime_sched.lastpoll, runtime_nanotime());
+		if(gp) {
+			runtime_lock(&runtime_sched);
+			p = pidleget();
+			runtime_unlock(&runtime_sched);
+			if(p) {
+				acquirep(p);
+				injectglist(gp->schedlink);
+				gp->status = Grunnable;
+				return gp;
+			}
+			injectglist(gp);
+		}
+	}
+	stopm();
+	goto top;
+}
+
+// Injects the list of runnable G's into the scheduler.
+// Can run concurrently with GC.
+static void
+injectglist(G *glist)
+{
+	int32 n;
+	G *gp;
+
+	if(glist == nil)
+		return;
+	runtime_lock(&runtime_sched);
+	for(n = 0; glist; n++) {
+		gp = glist;
+		glist = gp->schedlink;
+		gp->status = Grunnable;
+		globrunqput(gp);
+	}
+	runtime_unlock(&runtime_sched);
+
+	for(; n && runtime_sched.npidle; n--)
+		startm(nil, false);
+}
+
+// One round of scheduler: find a runnable goroutine and execute it.
+// Never returns.
+static void
+schedule(void)
+{
+	G *gp;
+
+	if(m->locks)
+		runtime_throw("schedule: holding locks");
+
+top:
+	if(runtime_gcwaiting) {
+		gcstopm();
+		goto top;
+	}
+
+	gp = runqget(m->p);
+	if(gp == nil)
+		gp = findrunnable();
+
+	if(m->spinning) {
+		m->spinning = false;
+		runtime_xadd(&runtime_sched.nmspinning, -1);
+	}
+
+	// M wakeup policy is deliberately somewhat conservative (see nmspinning handling),
+	// so see if we need to wakeup another M here.
+	if (m->p->runqhead != m->p->runqtail &&
+		runtime_atomicload(&runtime_sched.nmspinning) == 0 &&
+		runtime_atomicload(&runtime_sched.npidle) > 0)  // TODO: fast atomic
+		wakep();
+
+	if(gp->lockedm) {
+		startlockedm(gp);
+		goto top;
+	}
+
+	execute(gp);
 }
 
 // Puts the current goroutine into a waiting state and unlocks the lock.
 // The goroutine can be made runnable again by calling runtime_ready(gp).
 void
-runtime_park(void (*unlockf)(Lock*), Lock *lock, const char *reason)
+runtime_park(void(*unlockf)(Lock*), Lock *lock, const char *reason)
+{
+	m->waitlock = lock;
+	m->waitunlockf = unlockf;
+	g->waitreason = reason;
+	runtime_mcall(park0);
+}
+
+// runtime_park continuation on g0.
+static void
+park0(G *gp)
+{
+	gp->status = Gwaiting;
+	gp->m = nil;
+	m->curg = nil;
+	if(m->waitunlockf) {
+		m->waitunlockf(m->waitlock);
+		m->waitunlockf = nil;
+		m->waitlock = nil;
+	}
+	if(m->lockedg) {
+		stoplockedm();
+		execute(gp);  // Never returns.
+	}
+	schedule();
+}
+
+// Scheduler yield.
+void
+runtime_gosched(void)
+{
+	runtime_mcall(gosched0);
+}
+
+// runtime_gosched continuation on g0.
+static void
+gosched0(G *gp)
+{
+	gp->status = Grunnable;
+	gp->m = nil;
+	m->curg = nil;
+	runtime_lock(&runtime_sched);
+	globrunqput(gp);
+	runtime_unlock(&runtime_sched);
+	if(m->lockedg) {
+		stoplockedm();
+		execute(gp);  // Never returns.
+	}
+	schedule();
+}
+
+// Finishes execution of the current goroutine.
+void
+runtime_goexit(void)
+{
+	if(raceenabled)
+		runtime_racegoend();
+	runtime_mcall(goexit0);
+}
+
+// runtime_goexit continuation on g0.
+static void
+goexit0(G *gp)
 {
-	g->status = Gwaiting;
-	g->waitreason = reason;
-	if(unlockf)
-		unlockf(lock);
-	runtime_gosched();
+	gp->status = Gdead;
+	gp->entry = nil;
+	gp->m = nil;
+	gp->lockedm = nil;
+	m->curg = nil;
+	m->lockedg = nil;
+	if(m->locked & ~LockExternal) {
+		runtime_printf("invalid m->locked = %d", m->locked);
+		runtime_throw("internal lockOSThread error");
+	}	
+	m->locked = 0;
+	gfput(m->p, gp);
+	schedule();
 }
 
 // The goroutine g is about to enter a system call.
@@ -1386,17 +1714,12 @@
 // Entersyscall cannot split the stack: the runtime_gosave must
 // make g->sched refer to the caller's stack segment, because
 // entersyscall is going to return immediately after.
-// It's okay to call matchmg and notewakeup even after
-// decrementing mcpu, because we haven't released the
-// sched lock yet, so the garbage collector cannot be running.
 
 void runtime_entersyscall(void) __attribute__ ((no_split_stack));
 
 void
-runtime_entersyscall(void)
+runtime_entersyscall()
 {
-	uint32 v;
-
 	if(m->profilehz > 0)
 		runtime_setprof(false);
 
@@ -1406,7 +1729,11 @@
 				       &g->gcnext_segment, &g->gcnext_sp,
 				       &g->gcinitial_sp);
 #else
-	g->gcnext_sp = (byte *) &v;
+	{
+		uint32 v;
+
+		g->gcnext_sp = (byte *) &v;
+	}
 #endif
 
 	// Save the registers in the g structure so that any pointers
@@ -1415,30 +1742,57 @@
 
 	g->status = Gsyscall;
 
-	// Fast path.
-	// The slow path inside the schedlock/schedunlock will get
-	// through without stopping if it does:
-	//	mcpu--
-	//	gwait not true
-	//	waitstop && mcpu <= mcpumax not true
-	// If we can do the same with a single atomic add,
-	// then we can skip the locks.
-	v = runtime_xadd(&runtime_sched.atomic, -1<<mcpuShift);
-	if(!atomic_gwaiting(v) && (!atomic_waitstop(v) || atomic_mcpu(v) > atomic_mcpumax(v)))
-		return;
+	if(runtime_atomicload(&runtime_sched.sysmonwait)) {  // TODO: fast atomic
+		runtime_lock(&runtime_sched);
+		if(runtime_atomicload(&runtime_sched.sysmonwait)) {
+			runtime_atomicstore(&runtime_sched.sysmonwait, 0);
+			runtime_notewakeup(&runtime_sched.sysmonnote);
+		}
+		runtime_unlock(&runtime_sched);
+	}
 
-	schedlock();
-	v = runtime_atomicload(&runtime_sched.atomic);
-	if(atomic_gwaiting(v)) {
-		matchmg();
-		v = runtime_atomicload(&runtime_sched.atomic);
-	}
-	if(atomic_waitstop(v) && atomic_mcpu(v) <= atomic_mcpumax(v)) {
-		runtime_xadd(&runtime_sched.atomic, -1<<waitstopShift);
-		runtime_notewakeup(&runtime_sched.stopped);
+	m->mcache = nil;
+	m->p->tick++;
+	m->p->m = nil;
+	runtime_atomicstore(&m->p->status, Psyscall);
+	if(runtime_gcwaiting) {
+		runtime_lock(&runtime_sched);
+		if (runtime_sched.stopwait > 0 && runtime_cas(&m->p->status, Psyscall, Pgcstop)) {
+			if(--runtime_sched.stopwait == 0)
+				runtime_notewakeup(&runtime_sched.stopnote);
+		}
+		runtime_unlock(&runtime_sched);
 	}
+}
+
+// The same as runtime_entersyscall(), but with a hint that the syscall is blocking.
+void
+runtime_entersyscallblock(void)
+{
+	P *p;
+
+	if(m->profilehz > 0)
+		runtime_setprof(false);
+
+	// Leave SP around for gc and traceback.
+#ifdef USING_SPLIT_STACK
+	g->gcstack = __splitstack_find(nil, nil, &g->gcstack_size,
+				       &g->gcnext_segment, &g->gcnext_sp,
+				       &g->gcinitial_sp);
+#else
+	g->gcnext_sp = (byte *) &p;
+#endif
+
+	// Save the registers in the g structure so that any pointers
+	// held in registers will be seen by the garbage collector.
+	getcontext(&g->gcregs);
+
+	g->status = Gsyscall;
 
-	schedunlock();
+	p = releasep();
+	handoffp(p);
+	if(g->isbackground)  // do not consider blocked scavenger for deadlock detection
+		inclocked(1);
 }
 
 // The goroutine g exited its system call.
@@ -1449,46 +1803,53 @@
 runtime_exitsyscall(void)
 {
 	G *gp;
-	uint32 v;
+	P *p;
+
+	// Check whether the profiler needs to be turned on.
+	if(m->profilehz > 0)
+		runtime_setprof(true);
 
-	// Fast path.
-	// If we can do the mcpu++ bookkeeping and
-	// find that we still have mcpu <= mcpumax, then we can
-	// start executing Go code immediately, without having to
-	// schedlock/schedunlock.
-	// Also do fast return if any locks are held, so that
-	// panic code can use syscalls to open a file.
 	gp = g;
-	v = runtime_xadd(&runtime_sched.atomic, (1<<mcpuShift));
-	if((m->profilehz == runtime_sched.profilehz && atomic_mcpu(v) <= atomic_mcpumax(v)) || m->locks > 0) {
+	// Try to re-acquire the last P.
+	if(m->p && m->p->status == Psyscall && runtime_cas(&m->p->status, Psyscall, Prunning)) {
 		// There's a cpu for us, so we can run.
+		m->mcache = m->p->mcache;
+		m->p->m = m;
+		m->p->tick++;
 		gp->status = Grunning;
 		// Garbage collector isn't running (since we are),
-		// so okay to clear gcstack.
+		// so okay to clear gcstack and gcsp.
 #ifdef USING_SPLIT_STACK
 		gp->gcstack = nil;
 #endif
 		gp->gcnext_sp = nil;
 		runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
-
-		if(m->profilehz > 0)
-			runtime_setprof(true);
 		return;
 	}
 
-	// Tell scheduler to put g back on the run queue:
-	// mostly equivalent to g->status = Grunning,
-	// but keeps the garbage collector from thinking
-	// that g is running right now, which it's not.
-	gp->readyonstop = 1;
-
-	// All the cpus are taken.
-	// The scheduler will ready g and put this m to sleep.
-	// When the scheduler takes g away from m,
-	// it will undo the runtime_sched.mcpu++ above.
-	runtime_gosched();
+	if(gp->isbackground)  // do not consider blocked scavenger for deadlock detection
+		inclocked(-1);
+	// Try to get any other idle P.
+	m->p = nil;
+	if(runtime_sched.pidle) {
+		runtime_lock(&runtime_sched);
+		p = pidleget();
+		runtime_unlock(&runtime_sched);
+		if(p) {
+			acquirep(p);
+#ifdef USING_SPLIT_STACK
+			gp->gcstack = nil;
+#endif
+			gp->gcnext_sp = nil;
+			runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
+			return;
+		}
+	}
 
-	// Gosched returned, so we're allowed to run now.
+	// Call the scheduler.
+	runtime_mcall(exitsyscall0);
+
+	// Scheduler returned, so we're allowed to run now.
 	// Delete the gcstack information that we left for
 	// the garbage collector during the system call.
 	// Must wait until now because until gosched returns
@@ -1501,6 +1862,34 @@
 	runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
 }
 
+// runtime_exitsyscall slow path on g0.
+// Failed to acquire P, enqueue gp as runnable.
+static void
+exitsyscall0(G *gp)
+{
+	P *p;
+
+	gp->status = Grunnable;
+	gp->m = nil;
+	m->curg = nil;
+	runtime_lock(&runtime_sched);
+	p = pidleget();
+	if(p == nil)
+		globrunqput(gp);
+	runtime_unlock(&runtime_sched);
+	if(p) {
+		acquirep(p);
+		execute(gp);  // Never returns.
+	}
+	if(m->lockedg) {
+		// Wait until another thread schedules gp and so m again.
+		stoplockedm();
+		execute(gp);  // Never returns.
+	}
+	stopm();
+	schedule();  // Never returns.
+}
+
 // Allocate a new g, with a stack big enough for stacksize bytes.
 G*
 runtime_malg(int32 stacksize, byte** ret_stack, size_t* ret_stacksize)
@@ -1554,15 +1943,10 @@
 	byte *sp;
 	size_t spsize;
 	G *newg;
-	int64 goid;
-
-	goid = runtime_xadd64((uint64*)&runtime_sched.goidgen, 1);
-	if(raceenabled)
-		runtime_racegostart(goid, runtime_getcallerpc(&fn));
 
-	schedlock();
+	m->locks++;  // disable preemption because it can be holding p in a local var
 
-	if((newg = gfget()) != nil) {
+	if((newg = gfget(m->p)) != nil) {
 #ifdef USING_SPLIT_STACK
 		int dont_block_signals = 0;
 
@@ -1579,24 +1963,20 @@
 #endif
 	} else {
 		newg = runtime_malg(StackMin, &sp, &spsize);
+		runtime_lock(&runtime_sched);
 		if(runtime_lastg == nil)
 			runtime_allg = newg;
 		else
 			runtime_lastg->alllink = newg;
 		runtime_lastg = newg;
+		runtime_unlock(&runtime_sched);
 	}
-	newg->status = Gwaiting;
-	newg->waitreason = "new goroutine";
 
 	newg->entry = (byte*)fn;
 	newg->param = arg;
 	newg->gopc = (uintptr)__builtin_return_address(0);
-
-	runtime_sched.gcount++;
-	newg->goid = goid;
-
-	if(sp == nil)
-		runtime_throw("nil g->stack0");
+	newg->status = Grunnable;
+	newg->goid = runtime_xadd64(&runtime_sched.goidgen, 1);
 
 	{
 		// Avoid warnings about variables clobbered by
@@ -1613,33 +1993,87 @@
 		vnewg->context.uc_stack.ss_size = vspsize;
 		makecontext(&vnewg->context, kickoff, 0);
 
-		newprocreadylocked(vnewg);
-		schedunlock();
+		runqput(m->p, vnewg);
 
+		if(runtime_atomicload(&runtime_sched.npidle) != 0 && runtime_atomicload(&runtime_sched.nmspinning) == 0 && fn != runtime_main)  // TODO: fast atomic
+			wakep();
+		m->locks--;
 		return vnewg;
 	}
 }
 
-// Put on gfree list.  Sched must be locked.
+// Put on gfree list.
+// If local list is too long, transfer a batch to the global list.
 static void
-gfput(G *gp)
+gfput(P *p, G *gp)
 {
-	gp->schedlink = runtime_sched.gfree;
-	runtime_sched.gfree = gp;
+	gp->schedlink = p->gfree;
+	p->gfree = gp;
+	p->gfreecnt++;
+	if(p->gfreecnt >= 64) {
+		runtime_lock(&runtime_sched.gflock);
+		while(p->gfreecnt >= 32) {
+			p->gfreecnt--;
+			gp = p->gfree;
+			p->gfree = gp->schedlink;
+			gp->schedlink = runtime_sched.gfree;
+			runtime_sched.gfree = gp;
+		}
+		runtime_unlock(&runtime_sched.gflock);
+	}
 }
 
-// Get from gfree list.  Sched must be locked.
+// Get from gfree list.
+// If local list is empty, grab a batch from global list.
 static G*
-gfget(void)
+gfget(P *p)
 {
 	G *gp;
 
-	gp = runtime_sched.gfree;
-	if(gp)
-		runtime_sched.gfree = gp->schedlink;
+retry:
+	gp = p->gfree;
+	if(gp == nil && runtime_sched.gfree) {
+		runtime_lock(&runtime_sched.gflock);
+		while(p->gfreecnt < 32 && runtime_sched.gfree) {
+			p->gfreecnt++;
+			gp = runtime_sched.gfree;
+			runtime_sched.gfree = gp->schedlink;
+			gp->schedlink = p->gfree;
+			p->gfree = gp;
+		}
+		runtime_unlock(&runtime_sched.gflock);
+		goto retry;
+	}
+	if(gp) {
+		p->gfree = gp->schedlink;
+		p->gfreecnt--;
+	}
 	return gp;
 }
 
+// Purge all cached G's from gfree list to the global list.
+static void
+gfpurge(P *p)
+{
+	G *gp;
+
+	runtime_lock(&runtime_sched.gflock);
+	while(p->gfreecnt) {
+		p->gfreecnt--;
+		gp = p->gfree;
+		p->gfree = gp->schedlink;
+		gp->schedlink = runtime_sched.gfree;
+		runtime_sched.gfree = gp;
+	}
+	runtime_unlock(&runtime_sched.gflock);
+}
+
+void
+runtime_Breakpoint(void)
+{
+	runtime_breakpoint();
+}
+
 void runtime_Gosched (void) __asm__ (GOSYM_PREFIX "runtime.Gosched");
 
 void
@@ -1649,67 +2083,82 @@
 }
 
 // Implementation of runtime.GOMAXPROCS.
-// delete when scheduler is stronger
+// delete when scheduler is even stronger
 int32
 runtime_gomaxprocsfunc(int32 n)
 {
 	int32 ret;
-	uint32 v;
 
-	schedlock();
+	if(n > MaxGomaxprocs)
+		n = MaxGomaxprocs;
+	runtime_lock(&runtime_sched);
 	ret = runtime_gomaxprocs;
-	if(n <= 0)
-		n = ret;
-	if(n > maxgomaxprocs)
-		n = maxgomaxprocs;
-	runtime_gomaxprocs = n;
-	if(runtime_gomaxprocs > 1)
-		runtime_singleproc = false;
- 	if(runtime_gcwaiting != 0) {
- 		if(atomic_mcpumax(runtime_sched.atomic) != 1)
- 			runtime_throw("invalid mcpumax during gc");
-		schedunlock();
+	if(n <= 0 || n == ret) {
+		runtime_unlock(&runtime_sched);
 		return ret;
 	}
+	runtime_unlock(&runtime_sched);
 
-	setmcpumax(n);
+	runtime_semacquire(&runtime_worldsema);
+	m->gcing = 1;
+	runtime_stoptheworld();
+	newprocs = n;
+	m->gcing = 0;
+	runtime_semrelease(&runtime_worldsema);
+	runtime_starttheworld();
 
-	// If there are now fewer allowed procs
-	// than procs running, stop.
-	v = runtime_atomicload(&runtime_sched.atomic);
-	if((int32)atomic_mcpu(v) > n) {
-		schedunlock();
-		runtime_gosched();
-		return ret;
-	}
-	// handle more procs
-	matchmg();
-	schedunlock();
 	return ret;
 }
 
-void
-runtime_LockOSThread(void)
+static void
+LockOSThread(void)
 {
-	if(m == &runtime_m0 && runtime_sched.init) {
-		runtime_sched.lockmain = true;
-		return;
-	}
 	m->lockedg = g;
 	g->lockedm = m;
 }
 
+void	runtime_LockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.LockOSThread");
 void
-runtime_UnlockOSThread(void)
+runtime_LockOSThread(void)
+{
+	m->locked |= LockExternal;
+	LockOSThread();
+}
+
+void
+runtime_lockOSThread(void)
+{
+	m->locked += LockInternal;
+	LockOSThread();
+}
+
+static void
+UnlockOSThread(void)
 {
-	if(m == &runtime_m0 && runtime_sched.init) {
-		runtime_sched.lockmain = false;
+	if(m->locked != 0)
 		return;
-	}
 	m->lockedg = nil;
 	g->lockedm = nil;
 }
 
+void	runtime_UnlockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.UnlockOSThread");
+
+void
+runtime_UnlockOSThread(void)
+{
+	m->locked &= ~LockExternal;
+	UnlockOSThread();
+}
+
+void
+runtime_unlockOSThread(void)
+{
+	if(m->locked < LockInternal)
+		runtime_throw("runtime: internal error: misuse of lockOSThread/unlockOSThread");
+	m->locked -= LockInternal;
+	UnlockOSThread();
+}
+
 bool
 runtime_lockedOSThread(void)
 {
@@ -1740,13 +2189,28 @@
 intgo
 runtime_NumGoroutine()
 {
-	return runtime_sched.gcount;
+	return runtime_gcount();
 }
 
 int32
 runtime_gcount(void)
 {
-	return runtime_sched.gcount;
+	G *gp;
+	int32 n, s;
+
+	n = 0;
+	runtime_lock(&runtime_sched);
+	// TODO(dvyukov): runtime.NumGoroutine() is O(N).
+	// We do not want to increment/decrement centralized counter in newproc/goexit,
+	// just to make runtime.NumGoroutine() faster.
+	// Compromise solution is to introduce per-P counters of active goroutines.
+	for(gp = runtime_allg; gp; gp = gp->alllink) {
+		s = gp->status;
+		if(s == Grunnable || s == Grunning || s == Gsyscall || s == Gwaiting)
+			n++;
+	}
+	runtime_unlock(&runtime_sched);
+	return n;
 }
 
 int32
@@ -1769,6 +2233,9 @@
 {
 	int32 n, i;
 
+	// Windows does profiling in a dedicated thread w/o m.
+	if(!Windows && (m == nil || m->mcache == nil))
+		return;
 	if(prof.fn == nil || prof.hz == 0)
 		return;
 
@@ -1813,3 +2280,555 @@
 	if(hz != 0)
 		runtime_resetcpuprofiler(hz);
 }
+
+// Change number of processors.  The world is stopped, sched is locked.
+static void
+procresize(int32 new)
+{
+	int32 i, old;
+	G *gp;
+	P *p;
+
+	old = runtime_gomaxprocs;
+	if(old < 0 || old > MaxGomaxprocs || new <= 0 || new >MaxGomaxprocs)
+		runtime_throw("procresize: invalid arg");
+	// initialize new P's
+	for(i = 0; i < new; i++) {
+		p = runtime_allp[i];
+		if(p == nil) {
+			p = (P*)runtime_mallocgc(sizeof(*p), 0, 0, 1);
+			p->status = Pgcstop;
+			runtime_atomicstorep(&runtime_allp[i], p);
+		}
+		if(p->mcache == nil) {
+			if(old==0 && i==0)
+				p->mcache = m->mcache;  // bootstrap
+			else
+				p->mcache = runtime_allocmcache();
+		}
+		if(p->runq == nil) {
+			p->runqsize = 128;
+			p->runq = (G**)runtime_mallocgc(p->runqsize*sizeof(G*), 0, 0, 1);
+		}
+	}
+
+	// redistribute runnable G's evenly
+	for(i = 0; i < old; i++) {
+		p = runtime_allp[i];
+		while((gp = runqget(p)) != nil)
+			globrunqput(gp);
+	}
+	// start at 1 because current M already executes some G and will acquire allp[0] below,
+	// so if we have a spare G we want to put it into allp[1].
+	for(i = 1; runtime_sched.runqhead; i++) {
+		gp = runtime_sched.runqhead;
+		runtime_sched.runqhead = gp->schedlink;
+		runqput(runtime_allp[i%new], gp);
+	}
+	runtime_sched.runqtail = nil;
+	runtime_sched.runqsize = 0;
+
+	// free unused P's
+	for(i = new; i < old; i++) {
+		p = runtime_allp[i];
+		runtime_freemcache(p->mcache);
+		p->mcache = nil;
+		gfpurge(p);
+		p->status = Pdead;
+		// can't free P itself because it can be referenced by an M in syscall
+	}
+
+	if(m->p)
+		m->p->m = nil;
+	m->p = nil;
+	m->mcache = nil;
+	p = runtime_allp[0];
+	p->m = nil;
+	p->status = Pidle;
+	acquirep(p);
+	for(i = new-1; i > 0; i--) {
+		p = runtime_allp[i];
+		p->status = Pidle;
+		pidleput(p);
+	}
+	runtime_singleproc = new == 1;
+	runtime_atomicstore((uint32*)&runtime_gomaxprocs, new);
+}
+
+// Associate p and the current m.
+static void
+acquirep(P *p)
+{
+	if(m->p || m->mcache)
+		runtime_throw("acquirep: already in go");
+	if(p->m || p->status != Pidle) {
+		runtime_printf("acquirep: p->m=%p(%d) p->status=%d\n", p->m, p->m ? p->m->id : 0, p->status);
+		runtime_throw("acquirep: invalid p state");
+	}
+	m->mcache = p->mcache;
+	m->p = p;
+	p->m = m;
+	p->status = Prunning;
+}
+
+// Disassociate p and the current m.
+static P*
+releasep(void)
+{
+	P *p;
+
+	if(m->p == nil || m->mcache == nil)
+		runtime_throw("releasep: invalid arg");
+	p = m->p;
+	if(p->m != m || p->mcache != m->mcache || p->status != Prunning) {
+		runtime_printf("releasep: m=%p m->p=%p p->m=%p m->mcache=%p p->mcache=%p p->status=%d\n",
+			m, m->p, p->m, m->mcache, p->mcache, p->status);
+		runtime_throw("releasep: invalid p state");
+	}
+	m->p = nil;
+	m->mcache = nil;
+	p->m = nil;
+	p->status = Pidle;
+	return p;
+}
+
+static void
+inclocked(int32 v)
+{
+	runtime_lock(&runtime_sched);
+	runtime_sched.mlocked += v;
+	if(v > 0)
+		checkdead();
+	runtime_unlock(&runtime_sched);
+}
+
+// Check for deadlock situation.
+// The check is based on number of running M's, if 0 -> deadlock.
+static void
+checkdead(void)
+{
+	G *gp;
+	int32 run, grunning, s;
+
+	// -1 for sysmon
+	run = runtime_sched.mcount - runtime_sched.nmidle - runtime_sched.mlocked - 1 - countextra();
+	if(run > 0)
+		return;
+	if(run < 0) {
+		runtime_printf("checkdead: nmidle=%d mlocked=%d mcount=%d\n",
+			runtime_sched.nmidle, runtime_sched.mlocked, runtime_sched.mcount);
+		runtime_throw("checkdead: inconsistent counts");
+	}
+	grunning = 0;
+	for(gp = runtime_allg; gp; gp = gp->alllink) {
+		if(gp->isbackground)
+			continue;
+		s = gp->status;
+		if(s == Gwaiting)
+			grunning++;
+		else if(s == Grunnable || s == Grunning || s == Gsyscall) {
+			runtime_printf("checkdead: find g %D in status %d\n", gp->goid, s);
+			runtime_throw("checkdead: runnable g");
+		}
+	}
+	if(grunning == 0)  // possible if main goroutine calls runtime_Goexit()
+		runtime_exit(0);
+	m->throwing = -1;  // do not dump full stacks
+	runtime_throw("all goroutines are asleep - deadlock!");
+}
+
+static void
+sysmon(void)
+{
+	uint32 idle, delay;
+	int64 now, lastpoll;
+	G *gp;
+	uint32 ticks[MaxGomaxprocs];
+
+	idle = 0;  // how many cycles in succession we had not wokeup somebody
+	delay = 0;
+	for(;;) {
+		if(idle == 0)  // start with 20us sleep...
+			delay = 20;
+		else if(idle > 50)  // start doubling the sleep after 1ms...
+			delay *= 2;
+		if(delay > 10*1000)  // up to 10ms
+			delay = 10*1000;
+		runtime_usleep(delay);
+		if(runtime_gcwaiting || runtime_atomicload(&runtime_sched.npidle) == (uint32)runtime_gomaxprocs) {  // TODO: fast atomic
+			runtime_lock(&runtime_sched);
+			if(runtime_atomicload(&runtime_gcwaiting) || runtime_atomicload(&runtime_sched.npidle) == (uint32)runtime_gomaxprocs) {
+				runtime_atomicstore(&runtime_sched.sysmonwait, 1);
+				runtime_unlock(&runtime_sched);
+				runtime_notesleep(&runtime_sched.sysmonnote);
+				runtime_noteclear(&runtime_sched.sysmonnote);
+				idle = 0;
+				delay = 20;
+			} else
+				runtime_unlock(&runtime_sched);
+		}
+		// poll network if not polled for more than 10ms
+		lastpoll = runtime_atomicload64(&runtime_sched.lastpoll);
+		now = runtime_nanotime();
+		if(lastpoll != 0 && lastpoll + 10*1000*1000 > now) {
+			gp = runtime_netpoll(false);  // non-blocking
+			injectglist(gp);
+		}
+		// retake P's blocked in syscalls
+		if(retake(ticks))
+			idle = 0;
+		else
+			idle++;
+	}
+}
+
+static uint32
+retake(uint32 *ticks)
+{
+	uint32 i, s, n;
+	int64 t;
+	P *p;
+
+	n = 0;
+	for(i = 0; i < (uint32)runtime_gomaxprocs; i++) {
+		p = runtime_allp[i];
+		if(p==nil)
+			continue;
+		t = p->tick;
+		if(ticks[i] != t) {
+			ticks[i] = t;
+			continue;
+		}
+		s = p->status;
+		if(s != Psyscall)
+			continue;
+		if(p->runqhead == p->runqtail && runtime_atomicload(&runtime_sched.nmspinning) + runtime_atomicload(&runtime_sched.npidle) > 0)  // TODO: fast atomic
+			continue;
+		// Need to increment number of locked M's before the CAS.
+		// Otherwise the M from which we retake can exit the syscall,
+		// increment nmidle and report deadlock.
+		inclocked(-1);
+		if(runtime_cas(&p->status, s, Pidle)) {
+			n++;
+			handoffp(p);
+		}
+		inclocked(1);
+	}
+	return n;
+}
+
+// Put mp on midle list.
+// Sched must be locked.
+static void
+mput(M *mp)
+{
+	mp->schedlink = runtime_sched.midle;
+	runtime_sched.midle = mp;
+	runtime_sched.nmidle++;
+	checkdead();
+}
+
+// Try to get an m from midle list.
+// Sched must be locked.
+static M*
+mget(void)
+{
+	M *mp;
+
+	if((mp = runtime_sched.midle) != nil){
+		runtime_sched.midle = mp->schedlink;
+		runtime_sched.nmidle--;
+	}
+	return mp;
+}
+
+// Put gp on the global runnable queue.
+// Sched must be locked.
+static void
+globrunqput(G *gp)
+{
+	gp->schedlink = nil;
+	if(runtime_sched.runqtail)
+		runtime_sched.runqtail->schedlink = gp;
+	else
+		runtime_sched.runqhead = gp;
+	runtime_sched.runqtail = gp;
+	runtime_sched.runqsize++;
+}
+
+// Try get a batch of G's from the global runnable queue.
+// Sched must be locked.
+static G*
+globrunqget(P *p)
+{
+	G *gp, *gp1;
+	int32 n;
+
+	if(runtime_sched.runqsize == 0)
+		return nil;
+	n = runtime_sched.runqsize/runtime_gomaxprocs+1;
+	if(n > runtime_sched.runqsize)
+		n = runtime_sched.runqsize;
+	runtime_sched.runqsize -= n;
+	if(runtime_sched.runqsize == 0)
+		runtime_sched.runqtail = nil;
+	gp = runtime_sched.runqhead;
+	runtime_sched.runqhead = gp->schedlink;
+	n--;
+	while(n--) {
+		gp1 = runtime_sched.runqhead;
+		runtime_sched.runqhead = gp1->schedlink;
+		runqput(p, gp1);
+	}
+	return gp;
+}
+
+// Put p to on pidle list.
+// Sched must be locked.
+static void
+pidleput(P *p)
+{
+	p->link = runtime_sched.pidle;
+	runtime_sched.pidle = p;
+	runtime_xadd(&runtime_sched.npidle, 1);  // TODO: fast atomic
+}
+
+// Try get a p from pidle list.
+// Sched must be locked.
+static P*
+pidleget(void)
+{
+	P *p;
+
+	p = runtime_sched.pidle;
+	if(p) {
+		runtime_sched.pidle = p->link;
+		runtime_xadd(&runtime_sched.npidle, -1);  // TODO: fast atomic
+	}
+	return p;
+}
+
+// Put g on local runnable queue.
+// TODO(dvyukov): consider using lock-free queue.
+static void
+runqput(P *p, G *gp)
+{
+	int32 h, t, s;
+
+	runtime_lock(p);
+retry:
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	if(t == h-1 || (h == 0 && t == s-1)) {
+		runqgrow(p);
+		goto retry;
+	}
+	p->runq[t++] = gp;
+	if(t == s)
+		t = 0;
+	p->runqtail = t;
+	runtime_unlock(p);
+}
+
+// Get g from local runnable queue.
+static G*
+runqget(P *p)
+{
+	G *gp;
+	int32 t, h, s;
+
+	if(p->runqhead == p->runqtail)
+		return nil;
+	runtime_lock(p);
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	if(t == h) {
+		runtime_unlock(p);
+		return nil;
+	}
+	gp = p->runq[h++];
+	if(h == s)
+		h = 0;
+	p->runqhead = h;
+	runtime_unlock(p);
+	return gp;
+}
+
+// Grow local runnable queue.
+// TODO(dvyukov): consider using fixed-size array
+// and transfer excess to the global list (local queue can grow way too big).
+static void
+runqgrow(P *p)
+{
+	G **q;
+	int32 s, t, h, t2;
+
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	t2 = 0;
+	q = runtime_malloc(2*s*sizeof(*q));
+	while(t != h) {
+		q[t2++] = p->runq[h++];
+		if(h == s)
+			h = 0;
+	}
+	runtime_free(p->runq);
+	p->runq = q;
+	p->runqhead = 0;
+	p->runqtail = t2;
+	p->runqsize = 2*s;
+}
+
+// Steal half of elements from local runnable queue of p2
+// and put onto local runnable queue of p.
+// Returns one of the stolen elements (or nil if failed).
+static G*
+runqsteal(P *p, P *p2)
+{
+	G *gp, *gp1;
+	int32 t, h, s, t2, h2, s2, c, i;
+
+	if(p2->runqhead == p2->runqtail)
+		return nil;
+	// sort locks to prevent deadlocks
+	if(p < p2)
+		runtime_lock(p);
+	runtime_lock(p2);
+	if(p2->runqhead == p2->runqtail) {
+		runtime_unlock(p2);
+		if(p < p2)
+			runtime_unlock(p);
+		return nil;
+	}
+	if(p >= p2)
+		runtime_lock(p);
+	// now we've locked both queues and know the victim is not empty
+	h = p->runqhead;
+	t = p->runqtail;
+	s = p->runqsize;
+	h2 = p2->runqhead;
+	t2 = p2->runqtail;
+	s2 = p2->runqsize;
+	gp = p2->runq[h2++];  // return value
+	if(h2 == s2)
+		h2 = 0;
+	// steal roughly half
+	if(t2 > h2)
+		c = (t2 - h2) / 2;
+	else
+		c = (s2 - h2 + t2) / 2;
+	// copy
+	for(i = 0; i != c; i++) {
+		// the target queue is full?
+		if(t == h-1 || (h == 0 && t == s-1))
+			break;
+		// the victim queue is empty?
+		if(t2 == h2)
+			break;
+		gp1 = p2->runq[h2++];
+		if(h2 == s2)
+			h2 = 0;
+		p->runq[t++] = gp1;
+		if(t == s)
+			t = 0;
+	}
+	p->runqtail = t;
+	p2->runqhead = h2;
+	runtime_unlock(p2);
+	runtime_unlock(p);
+	return gp;
+}
+
+void runtime_testSchedLocalQueue(void)
+  __asm__("runtime.testSchedLocalQueue");
+
+void
+runtime_testSchedLocalQueue(void)
+{
+	P p;
+	G gs[1000];
+	int32 i, j;
+
+	runtime_memclr((byte*)&p, sizeof(p));
+	p.runqsize = 1;
+	p.runqhead = 0;
+	p.runqtail = 0;
+	p.runq = runtime_malloc(p.runqsize*sizeof(*p.runq));
+
+	for(i = 0; i < (int32)nelem(gs); i++) {
+		if(runqget(&p) != nil)
+			runtime_throw("runq is not empty initially");
+		for(j = 0; j < i; j++)
+			runqput(&p, &gs[i]);
+		for(j = 0; j < i; j++) {
+			if(runqget(&p) != &gs[i]) {
+				runtime_printf("bad element at iter %d/%d\n", i, j);
+				runtime_throw("bad element");
+			}
+		}
+		if(runqget(&p) != nil)
+			runtime_throw("runq is not empty afterwards");
+	}
+}
+
+void runtime_testSchedLocalQueueSteal(void)
+  __asm__("runtime.testSchedLocalQueueSteal");
+
+void
+runtime_testSchedLocalQueueSteal(void)
+{
+	P p1, p2;
+	G gs[1000], *gp;
+	int32 i, j, s;
+
+	runtime_memclr((byte*)&p1, sizeof(p1));
+	p1.runqsize = 1;
+	p1.runqhead = 0;
+	p1.runqtail = 0;
+	p1.runq = runtime_malloc(p1.runqsize*sizeof(*p1.runq));
+
+	runtime_memclr((byte*)&p2, sizeof(p2));
+	p2.runqsize = nelem(gs);
+	p2.runqhead = 0;
+	p2.runqtail = 0;
+	p2.runq = runtime_malloc(p2.runqsize*sizeof(*p2.runq));
+
+	for(i = 0; i < (int32)nelem(gs); i++) {
+		for(j = 0; j < i; j++) {
+			gs[j].sig = 0;
+			runqput(&p1, &gs[j]);
+		}
+		gp = runqsteal(&p2, &p1);
+		s = 0;
+		if(gp) {
+			s++;
+			gp->sig++;
+		}
+		while((gp = runqget(&p2)) != nil) {
+			s++;
+			gp->sig++;
+		}
+		while((gp = runqget(&p1)) != nil)
+			gp->sig++;
+		for(j = 0; j < i; j++) {
+			if(gs[j].sig != 1) {
+				runtime_printf("bad element %d(%d) at iter %d\n", j, gs[j].sig, i);
+				runtime_throw("bad element");
+			}
+		}
+		if(s != i/2 && s != i/2+1) {
+			runtime_printf("bad steal %d, want %d or %d, iter %d\n",
+				s, i/2, i/2+1, i);
+			runtime_throw("bad steal");
+		}
+	}
+}
+
+void
+runtime_proc_scan(void (*addroot)(Obj))
+{
+	addroot((Obj){(byte*)&runtime_sched, sizeof runtime_sched, 0});
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/race.h gcc-4.8.1/libgo/runtime/race.h
--- gcc-4.8.1.orig/libgo/runtime/race.h	2012-12-12 17:13:29.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/race.h	2013-07-16 01:55:04.520470000 -0500
@@ -11,17 +11,19 @@
 #endif
 
 // Initialize race detection subsystem.
-void	runtime_raceinit(void);
+uintptr	runtime_raceinit(void);
 // Finalize race detection subsystem, does not return.
 void	runtime_racefini(void);
 
 void	runtime_racemapshadow(void *addr, uintptr size);
 void	runtime_racemalloc(void *p, uintptr sz, void *pc);
 void	runtime_racefree(void *p);
-void	runtime_racegostart(int32 goid, void *pc);
-void	runtime_racegoend(int32 goid);
+uintptr	runtime_racegostart(void *pc);
+void	runtime_racegoend(void);
 void	runtime_racewritepc(void *addr, void *callpc, void *pc);
 void	runtime_racereadpc(void *addr, void *callpc, void *pc);
+void	runtime_racewriterangepc(void *addr, uintptr sz, uintptr step, void *callpc, void *pc);
+void	runtime_racereadrangepc(void *addr, uintptr sz, uintptr step, void *callpc, void *pc);
 void	runtime_racefingo(void);
 void	runtime_raceacquire(void *addr);
 void	runtime_raceacquireg(G *gp, void *addr);
diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.c gcc-4.8.1/libgo/runtime/runtime.c
--- gcc-4.8.1.orig/libgo/runtime/runtime.c	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/runtime.c	2013-07-24 08:19:00.431058000 -0500
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+#include <signal.h>
 #include <unistd.h>
 
 #include "config.h"
@@ -10,14 +11,27 @@
 #include "array.h"
 #include "go-panic.h"
 
+// The GOTRACEBACK environment variable controls the
+// behavior of a Go program that is crashing and exiting.
+//	GOTRACEBACK=0   suppress all tracebacks
+//	GOTRACEBACK=1   default behavior - show tracebacks but exclude runtime frames
+//	GOTRACEBACK=2   show tracebacks including runtime frames
+//	GOTRACEBACK=crash   show tracebacks including runtime frames, then crash (core dump etc)
 int32
-runtime_gotraceback(void)
+runtime_gotraceback(bool *crash)
 {
 	const byte *p;
 
+	if(crash != nil)
+		*crash = false;
 	p = runtime_getenv("GOTRACEBACK");
 	if(p == nil || p[0] == '\0')
 		return 1;	// default is on
+	if(runtime_strcmp((const char *)p, "crash") == 0) {
+		if(crash != nil)
+			*crash = true;
+		return 2;	// extra information
+	}
 	return runtime_atoi(p);
 }
 
@@ -44,6 +58,11 @@
   return argc == 0 ? nil : argv[0];
 }
 
+// Information about what cpu features are available.
+// Set on startup in asm_{x86/amd64}.s.
+uint32 runtime_cpuid_ecx;
+uint32 runtime_cpuid_edx;
+
 void
 runtime_goargs(void)
 {
@@ -90,6 +109,52 @@
 	return n;
 }
 
+static struct root_list runtime_roots =
+{ nil,
+  { { &syscall_Envs, sizeof syscall_Envs },
+    { &os_Args, sizeof os_Args },
+    { nil, 0 } },
+};
+
+static void
+TestAtomic64(void)
+{
+	uint64 z64, x64;
+
+	z64 = 42;
+	x64 = 0;
+	PREFETCH(&z64);
+	if(runtime_cas64(&z64, &x64, 1))
+		runtime_throw("cas64 failed");
+	if(x64 != 42)
+		runtime_throw("cas64 failed");
+	if(!runtime_cas64(&z64, &x64, 1))
+		runtime_throw("cas64 failed");
+	if(x64 != 42 || z64 != 1)
+		runtime_throw("cas64 failed");
+	if(runtime_atomicload64(&z64) != 1)
+		runtime_throw("load64 failed");
+	runtime_atomicstore64(&z64, (1ull<<40)+1);
+	if(runtime_atomicload64(&z64) != (1ull<<40)+1)
+		runtime_throw("store64 failed");
+	if(runtime_xadd64(&z64, (1ull<<40)+1) != (2ull<<40)+2)
+		runtime_throw("xadd64 failed");
+	if(runtime_atomicload64(&z64) != (2ull<<40)+2)
+		runtime_throw("xadd64 failed");
+	if(runtime_xchg64(&z64, (3ull<<40)+3) != (2ull<<40)+2)
+		runtime_throw("xchg64 failed");
+	if(runtime_atomicload64(&z64) != (3ull<<40)+3)
+		runtime_throw("xchg64 failed");
+}
+
+void
+runtime_check(void)
+{
+	__go_register_gc_roots(&runtime_roots);
+
+	TestAtomic64();
+}
+
 uint32
 runtime_fastrand1(void)
 {
@@ -105,19 +170,6 @@
 	return x;
 }
 
-static struct root_list runtime_roots =
-{ nil,
-  { { &syscall_Envs, sizeof syscall_Envs },
-    { &os_Args, sizeof os_Args },
-    { nil, 0 } },
-};
-
-void
-runtime_check(void)
-{
-	__go_register_gc_roots(&runtime_roots);
-}
-
 int64
 runtime_cputicks(void)
 {
@@ -139,7 +191,7 @@
 	if(current && runtime_m()->throwing > 0)
 		return 1;
 	if(traceback < 0)
-		traceback = runtime_gotraceback();
+		traceback = runtime_gotraceback(nil);
 	return traceback > 1 || (__builtin_memchr(s.str, '.', s.len) != nil && __builtin_memcmp(s.str, "runtime.", 7) != 0);
 }
 
@@ -181,3 +233,49 @@
 {
 	return runtime_tickspersecond();
 }
+
+// Called to initialize a new m (including the bootstrap m).
+// Called on the parent thread (main thread in case of bootstrap), can allocate memory.
+void
+runtime_mpreinit(M *mp)
+{
+	mp->gsignal = runtime_malg(32*1024, &mp->gsignalstack, &mp->gsignalstacksize);	// OS X wants >=8K, Linux >=2K
+}
+
+// Called to initialize a new m (including the bootstrap m).
+// Called on the new thread, can not allocate memory.
+void
+runtime_minit(void)
+{
+	M* m;
+	sigset_t sigs;
+
+	// Initialize signal handling.
+	m = runtime_m();
+	runtime_signalstack(m->gsignalstack, m->gsignalstacksize);
+	if (sigemptyset(&sigs) != 0)
+		runtime_throw("sigemptyset");
+	sigprocmask(SIG_SETMASK, &sigs, nil);
+}
+
+// Called from dropm to undo the effect of an minit.
+void
+runtime_unminit(void)
+{
+	runtime_signalstack(nil, 0);
+}
+
+
+void
+runtime_signalstack(byte *p, int32 n)
+{
+	stack_t st;
+
+	st.ss_sp = p;
+	st.ss_size = n;
+	st.ss_flags = 0;
+	if(p == nil)
+		st.ss_flags = SS_DISABLE;
+	if(sigaltstack(&st, nil) < 0)
+		*(int *)0xf1 = 0xf1;
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/runtime.h gcc-4.8.1/libgo/runtime/runtime.h
--- gcc-4.8.1.orig/libgo/runtime/runtime.h	2013-01-30 16:24:40.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/runtime.h	2013-07-23 15:26:30.052588000 -0500
@@ -54,23 +54,26 @@
 typedef	uint8			byte;
 typedef	struct	Func		Func;
 typedef	struct	G		G;
-typedef	union	Lock		Lock;
+typedef	struct	Lock		Lock;
 typedef	struct	M		M;
-typedef	union	Note		Note;
+typedef	struct	P		P;
+typedef	struct	Note		Note;
+typedef	struct	String		String;
+typedef	struct	FuncVal		FuncVal;
 typedef	struct	SigTab		SigTab;
 typedef	struct	MCache		MCache;
 typedef struct	FixAlloc	FixAlloc;
 typedef	struct	Hchan		Hchan;
 typedef	struct	Timers		Timers;
 typedef	struct	Timer		Timer;
-typedef struct	GCStats		GCStats;
-typedef struct	LFNode		LFNode;
-typedef struct	ParFor		ParFor;
-typedef struct	ParForThread	ParForThread;
-typedef struct	CgoMal		CgoMal;
+typedef	struct	GCStats		GCStats;
+typedef	struct	LFNode		LFNode;
+typedef	struct	ParFor		ParFor;
+typedef	struct	ParForThread	ParForThread;
+typedef	struct	CgoMal		CgoMal;
+typedef	struct	PollDesc	PollDesc;
 
 typedef	struct	__go_open_array		Slice;
-typedef	struct	String			String;
 typedef struct	__go_interface		Iface;
 typedef	struct	__go_empty_interface	Eface;
 typedef	struct	__go_type_descriptor	Type;
@@ -80,6 +83,7 @@
 typedef struct	__go_ptr_type		PtrType;
 typedef struct	__go_func_type		FuncType;
 typedef struct	__go_map_type		MapType;
+typedef struct	__go_channel_type	ChanType;
 
 typedef struct  Traceback	Traceback;
 
@@ -109,11 +113,20 @@
 	Grunning,
 	Gsyscall,
 	Gwaiting,
-	Gmoribund,
+	Gmoribund_unused,  // currently unused, but hardcoded in gdb scripts
 	Gdead,
 };
 enum
 {
+	// P status
+	Pidle,
+	Prunning,
+	Psyscall,
+	Pgcstop,
+	Pdead,
+};
+enum
+{
 	true	= 1,
 	false	= 0,
 };
@@ -128,25 +141,33 @@
 	// Global <-> per-M stack segment cache transfer batch size.
 	StackCacheBatch = 16,
 };
-
 /*
  * structures
  */
-union	Lock
+struct	Lock
 {
-	uint32	key;	// futex-based impl
-	M*	waitm;	// linked list of waiting M's (sema-based impl)
-};
-union	Note
-{
-	uint32	key;	// futex-based impl
-	M*	waitm;	// waiting M (sema-based impl)
+	// Futex-based impl treats it as uint32 key,
+	// while sema-based impl as M* waitm.
+	// Used to be a union, but unions break precise GC.
+	uintptr	key;
+};
+struct	Note
+{
+	// Futex-based impl treats it as uint32 key,
+	// while sema-based impl as M* waitm.
+	// Used to be a union, but unions break precise GC.
+	uintptr	key;
 };
 struct String
 {
 	const byte*	str;
 	intgo		len;
 };
+struct FuncVal
+{
+	void	(*fn)(void);
+	// variable-size, fn-specific data here
+};
 struct	GCStats
 {
 	// the struct must consist of only uint64's,
@@ -188,13 +209,12 @@
 	uint32	selgen;		// valid sudog pointer
 	const char*	waitreason;	// if status==Gwaiting
 	G*	schedlink;
-	bool	readyonstop;
 	bool	ispanic;
-	bool	issystem;
-	int8	raceignore; // ignore race detection events
+	bool	issystem;	// do not output in stack dump
+	bool	isbackground;	// ignore in deadlock detector
+	bool	blockingsyscall;	// hint that the next syscall will block
 	M*	m;		// for debuggers, but offset not hard-coded
 	M*	lockedm;
-	M*	idlem;
 	int32	sig;
 	int32	writenbuf;
 	byte*	writebuf;
@@ -218,34 +238,45 @@
 {
 	G*	g0;		// goroutine with scheduling stack
 	G*	gsignal;	// signal-handling G
+	byte*	gsignalstack;
+	size_t	gsignalstacksize;
+	void	(*mstartfn)(void);
 	G*	curg;		// current running goroutine
+	P*	p;		// attached P for executing Go code (nil if not executing Go code)
+	P*	nextp;
 	int32	id;
 	int32	mallocing;
 	int32	throwing;
 	int32	gcing;
 	int32	locks;
 	int32	nomemprof;
-	int32	waitnextg;
 	int32	dying;
 	int32	profilehz;
 	int32	helpgc;
+	bool	blockingsyscall;
+	bool	spinning;
 	uint32	fastrand;
 	uint64	ncgocall;	// number of cgo calls in total
-	Note	havenextg;
-	G*	nextg;
+	int32	ncgo;		// number of cgo calls currently in progress
+	CgoMal*	cgomal;
+	Note	park;
 	M*	alllink;	// on allm
 	M*	schedlink;
 	MCache	*mcache;
 	G*	lockedg;
-	G*	idleg;
 	Location createstack[32];	// Stack that created this thread.
+	uint32	locked;	// tracking for LockOSThread
 	M*	nextwaitm;	// next M waiting for lock
 	uintptr	waitsema;	// semaphore for parking on locks
 	uint32	waitsemacount;
 	uint32	waitsemalock;
 	GCStats	gcstats;
 	bool	racecall;
+	bool	needextram;
+	bool	dropextram;	// for gccgo: drop after call is done.
 	void*	racepc;
+	void	(*waitunlockf)(Lock*);
+	void*	waitlock;
 
 	uintptr	settype_buf[1024];
 	uintptr	settype_bufsize;
@@ -253,6 +284,38 @@
 	uintptr	end[];
 };
 
+struct P
+{
+	Lock;
+
+	uint32	status;  // one of Pidle/Prunning/...
+	P*	link;
+	uint32	tick;   // incremented on every scheduler or system call
+	M*	m;	// back-link to associated M (nil if idle)
+	MCache*	mcache;
+
+	// Queue of runnable goroutines.
+	G**	runq;
+	int32	runqhead;
+	int32	runqtail;
+	int32	runqsize;
+
+	// Available G's (status == Gdead)
+	G*	gfree;
+	int32	gfreecnt;
+
+	byte	pad[64];
+};
+
+// The m->locked word holds a single bit saying whether
+// external calls to LockOSThread are in effect, and then a counter
+// of the internal nesting depth of lockOSThread / unlockOSThread.
+enum
+{
+	LockExternal = 1,
+	LockInternal = 2,
+};
+
 struct	SigTab
 {
 	int32	sig;
@@ -265,6 +328,8 @@
 	SigThrow = 1<<2,	// if signal.Notify doesn't take it, exit loudly
 	SigPanic = 1<<3,	// if the signal is from the kernel, panic
 	SigDefault = 1<<4,	// if the signal isn't explicitly requested, don't monitor it
+	SigHandling = 1<<5,	// our signal handler is registered
+	SigIgnored = 1<<6,	// the signal was ignored before we registered for it
 };
 
 #ifndef NSIG
@@ -313,7 +378,7 @@
 	// a well-behaved function and not block.
 	int64	when;
 	int64	period;
-	void	(*f)(int64, Eface);
+	FuncVal	*fv;
 	Eface	arg;
 };
 
@@ -337,6 +402,7 @@
 	bool wait;			// if true, wait while all threads finish processing,
 					// otherwise parfor may return while other threads are still working
 	ParForThread *thr;		// array of thread descriptors
+	uint32 pad;			// to align ParForThread.pos for 64-bit atomic operations
 	// stats
 	uint64 nsteal;
 	uint64 nstealcnt;
@@ -350,7 +416,7 @@
 struct CgoMal
 {
 	CgoMal	*next;
-	byte	*alloc;
+	void	*alloc;
 };
 
 /*
@@ -363,6 +429,19 @@
 #define USED(v)		((void) v)
 #define	ROUND(x, n)	(((x)+(n)-1)&~((n)-1)) /* all-caps to mark as macro: it evaluates n twice */
 
+byte*	runtime_startup_random_data;
+uint32	runtime_startup_random_data_len;
+void	runtime_get_random_data(byte**, int32*);
+
+enum {
+	// hashinit wants this many random bytes
+	HashRandomBytes = 32
+};
+void	runtime_hashinit(void);
+
+void	runtime_traceback();
+void	runtime_tracebackothers(G*);
+
 /*
  * external data
  */
@@ -370,21 +449,28 @@
 extern	G*	runtime_allg;
 extern	G*	runtime_lastg;
 extern	M*	runtime_allm;
+extern	P**	runtime_allp;
 extern	int32	runtime_gomaxprocs;
+extern	uint32	runtime_needextram;
 extern	bool	runtime_singleproc;
 extern	uint32	runtime_panicking;
-extern	int32	runtime_gcwaiting;		// gc is waiting to run
+extern	uint32	runtime_gcwaiting;		// gc is waiting to run
+extern	int8*	runtime_goos;
 extern	int32	runtime_ncpu;
+extern 	void	(*runtime_sysargs)(int32, uint8**);
 
 /*
  * common functions and data
  */
+#define runtime_strcmp(s1, s2) __builtin_strcmp((s1), (s2))
+#define runtime_strstr(s1, s2) __builtin_strstr((s1), (s2))
 intgo	runtime_findnull(const byte*);
 void	runtime_dump(byte*, int32);
 
 /*
  * very low level c-called
  */
+struct __go_func_type;
 void	runtime_args(int32, byte**);
 void	runtime_osinit();
 void	runtime_goargs(void);
@@ -394,42 +480,100 @@
 void	runtime_panicstring(const char*) __attribute__ ((noreturn));
 void	runtime_prints(const char*);
 void	runtime_printf(const char*, ...);
+#define runtime_mcmp(a, b, s) __builtin_memcmp((a), (b), (s))
+#define runtime_memmove(a, b, s) __builtin_memmove((a), (b), (s))
 void*	runtime_mal(uintptr);
+String	runtime_gostring(const byte*);
+String	runtime_gostringnocopy(const byte*);
 void	runtime_schedinit(void);
 void	runtime_initsig(void);
 void	runtime_sigenable(uint32 sig);
-int32	runtime_gotraceback(void);
+void	runtime_sigdisable(uint32 sig);
+int32	runtime_gotraceback(bool *crash);
 void	runtime_goroutineheader(G*);
 void	runtime_goroutinetrailer(G*);
-void	runtime_traceback();
-void	runtime_tracebackothers(G*);
 void	runtime_printtrace(Location*, int32, bool);
-String	runtime_gostring(const byte*);
-String	runtime_gostringnocopy(const byte*);
+#define runtime_open(p, f, m) open((p), (f), (m))
+#define runtime_read(d, v, n) read((d), (v), (n))
+#define runtime_write(d, v, n) write((d), (v), (n))
+#define runtime_close(d) close(d)
+#define runtime_cas(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
+#define runtime_cas64(pval, pold, new) __atomic_compare_exchange_n (pval, pold, new, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
+#define runtime_casp(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
+// Don't confuse with XADD x86 instruction,
+// this one is actually 'addx', that is, add-and-fetch.
+#define runtime_xadd(p, v) __sync_add_and_fetch (p, v)
+#define runtime_xadd64(p, v) __sync_add_and_fetch (p, v)
+#define runtime_xchg(p, v) __atomic_exchange_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_xchg64(p, v) __atomic_exchange_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_atomicload(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
+#define runtime_atomicstore(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_atomicstore64(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
+#define runtime_atomicload64(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
+#define runtime_atomicloadp(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
+#define runtime_atomicstorep(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
+void	runtime_ready(G*);
+const byte*	runtime_getenv(const char*);
+int32	runtime_atoi(const byte*);
 void*	runtime_mstart(void*);
 G*	runtime_malg(int32, byte**, size_t*);
+void	runtime_mpreinit(M*);
 void	runtime_minit(void);
+void	runtime_unminit(void);
+void	runtime_needm(void);
+void	runtime_dropm(void);
+void	runtime_signalstack(byte*, int32);
+MCache*	runtime_allocmcache(void);
+void	runtime_freemcache(MCache*);
 void	runtime_mallocinit(void);
+void	runtime_mprofinit(void);
+#define runtime_malloc(s) __go_alloc(s)
+#define runtime_free(p) __go_free(p)
+bool	runtime_addfinalizer(void*, FuncVal *fn, const struct __go_func_type *);
+#define runtime_getcallersp(p) __builtin_frame_address(1)
+int32	runtime_mcount(void);
+int32	runtime_gcount(void);
+uint32	runtime_fastrand1(void);
+
+void runtime_setmg(M*, G*);
+void runtime_newextram(void);
+#define runtime_exit(s) exit(s)
+#define runtime_breakpoint() __builtin_trap()
 void	runtime_gosched(void);
 void	runtime_park(void(*)(Lock*), Lock*, const char*);
 void	runtime_tsleep(int64, const char*);
 M*	runtime_newm(void);
 void	runtime_goexit(void);
 void	runtime_entersyscall(void) __asm__ (GOSYM_PREFIX "syscall.Entersyscall");
+void	runtime_entersyscallblock(void);
 void	runtime_exitsyscall(void) __asm__ (GOSYM_PREFIX "syscall.Exitsyscall");
+G*	__go_go(void (*pfn)(void*), void*);
 void	siginit(void);
 bool	__go_sigsend(int32 sig);
 int32	runtime_callers(int32, Location*, int32);
 int64	runtime_nanotime(void);
+void	runtime_dopanic(int32) __attribute__ ((noreturn));
+void	runtime_startpanic(void);
+void	runtime_sigprof();
+void	runtime_resetcpuprofiler(int32);
+void	runtime_setcpuprofilerate(void(*)(uintptr*, int32), int32);
+void	runtime_usleep(uint32);
 int64	runtime_cputicks(void);
 int64	runtime_tickspersecond(void);
 void	runtime_blockevent(int64, int32);
 extern int64 runtime_blockprofilerate;
+void	runtime_addtimer(Timer*);
+bool	runtime_deltimer(Timer*);
+G*	runtime_netpoll(bool);
+void	runtime_netpollinit(void);
+int32	runtime_netpollopen(int32, PollDesc*);
+int32   runtime_netpollclose(int32);
+void	runtime_netpollready(G**, PollDesc*, int32);
+void	runtime_crash(void);
 
 void	runtime_stoptheworld(void);
 void	runtime_starttheworld(void);
 extern uint32 runtime_worldsema;
-G*	__go_go(void (*pfn)(void*), void*);
 
 /*
  * mutual exclusion locks.  in the uncontended case,
@@ -527,6 +671,7 @@
  * runtime go-called
  */
 void	runtime_printbool(_Bool);
+void	runtime_printbyte(int8);
 void	runtime_printfloat(double);
 void	runtime_printint(int64);
 void	runtime_printiface(Iface);
@@ -538,53 +683,10 @@
 void	runtime_printhex(uint64);
 void	runtime_printslice(Slice);
 void	runtime_printcomplex(__complex double);
-
-struct __go_func_type;
-void reflect_call(const struct __go_func_type *, const void *, _Bool, _Bool,
+void reflect_call(const struct __go_func_type *, FuncVal *, _Bool, _Bool,
 		  void **, void **)
   __asm__ (GOSYM_PREFIX "reflect.call");
-
-/* Functions.  */
 #define runtime_panic __go_panic
-#define runtime_write(d, v, n) write((d), (v), (n))
-#define runtime_malloc(s) __go_alloc(s)
-#define runtime_free(p) __go_free(p)
-#define runtime_strcmp(s1, s2) __builtin_strcmp((s1), (s2))
-#define runtime_mcmp(a, b, s) __builtin_memcmp((a), (b), (s))
-#define runtime_memmove(a, b, s) __builtin_memmove((a), (b), (s))
-#define runtime_exit(s) exit(s)
-MCache*	runtime_allocmcache(void);
-void	free(void *v);
-#define runtime_cas(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
-#define runtime_casp(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
-#define runtime_cas64(pval, pold, new) __atomic_compare_exchange_n (pval, pold, new, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
-#define runtime_xadd(p, v) __sync_add_and_fetch (p, v)
-#define runtime_xadd64(p, v) __sync_add_and_fetch (p, v)
-#define runtime_xchg(p, v) __atomic_exchange_n (p, v, __ATOMIC_SEQ_CST)
-#define runtime_atomicload(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
-#define runtime_atomicstore(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
-#define runtime_atomicloadp(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
-#define runtime_atomicstorep(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
-#define runtime_atomicload64(p) __atomic_load_n (p, __ATOMIC_SEQ_CST)
-#define runtime_atomicstore64(p, v) __atomic_store_n (p, v, __ATOMIC_SEQ_CST)
-#define PREFETCH(p) __builtin_prefetch(p)
-
-struct __go_func_type;
-bool	runtime_addfinalizer(void*, void(*fn)(void*), const struct __go_func_type *);
-#define runtime_getcallersp(p) __builtin_frame_address(1)
-int32	runtime_mcount(void);
-int32	runtime_gcount(void);
-void	runtime_dopanic(int32) __attribute__ ((noreturn));
-void	runtime_startpanic(void);
-void	runtime_ready(G*);
-const byte*	runtime_getenv(const char*);
-int32	runtime_atoi(const byte*);
-uint32	runtime_fastrand1(void);
-
-void	runtime_sigprof();
-void	runtime_resetcpuprofiler(int32);
-void	runtime_setcpuprofilerate(void(*)(uintptr*, int32), int32);
-void	runtime_usleep(uint32);
 
 /*
  * runtime c-called (but written in Go)
@@ -599,14 +701,13 @@
 /*
  * wrapped for go users
  */
-#define ISNAN(f) __builtin_isnan(f)
 void	runtime_semacquire(uint32 volatile *);
 void	runtime_semrelease(uint32 volatile *);
 int32	runtime_gomaxprocsfunc(int32 n);
 void	runtime_procyield(uint32);
 void	runtime_osyield(void);
-void	runtime_LockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.LockOSThread");
-void	runtime_UnlockOSThread(void) __asm__ (GOSYM_PREFIX "runtime.UnlockOSThread");
+void	runtime_lockOSThread(void);
+void	runtime_unlockOSThread(void);
 
 bool	runtime_showframe(String, bool);
 
@@ -622,12 +723,13 @@
 // This is a no-op on other systems.
 void	runtime_setprof(bool);
 
+#define ISNAN(f) __builtin_isnan(f)
+
 enum
 {
-	UseSpanType = 1,
+	UseSpanType = 0,
 };
 
-void	runtime_setsig(int32, bool, bool);
 #define runtime_setitimer setitimer
 
 void	runtime_check(void);
@@ -652,5 +754,8 @@
 extern struct backtrace_state *__go_get_backtrace_state(void);
 extern _Bool __go_file_line(uintptr, String*, String*, intgo *);
 extern byte* runtime_progname();
+extern void runtime_main(void*);
 
 int32 getproccount(void);
+
+#define PREFETCH(p) __builtin_prefetch(p)
diff -Naur gcc-4.8.1.orig/libgo/runtime/sema.goc gcc-4.8.1/libgo/runtime/sema.goc
--- gcc-4.8.1.orig/libgo/runtime/sema.goc	2012-10-22 23:31:11.000000000 -0500
+++ gcc-4.8.1/libgo/runtime/sema.goc	2013-07-16 01:55:04.520470000 -0500
@@ -44,12 +44,12 @@
 // Prime to not correlate with any user patterns.
 #define SEMTABLESZ 251
 
-union semtable
+struct semtable
 {
 	SemaRoot;
-	uint8 pad[CacheLineSize];
+	uint8 pad[CacheLineSize-sizeof(SemaRoot)];
 };
-static union semtable semtable[SEMTABLESZ];
+static struct semtable semtable[SEMTABLESZ];
 
 static SemaRoot*
 semroot(uint32 volatile *addr)
diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.c gcc-4.8.1/libgo/runtime/signal_unix.c
--- gcc-4.8.1.orig/libgo/runtime/signal_unix.c	2012-03-02 10:38:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/signal_unix.c	2013-07-16 01:55:04.520470000 -0500
@@ -8,6 +8,7 @@
 
 #include "runtime.h"
 #include "defs.h"
+#include "signal_unix.h"
 
 extern SigTab runtime_sigtab[];
 
@@ -22,7 +23,21 @@
 		t = &runtime_sigtab[i];
 		if((t->flags == 0) || (t->flags & SigDefault))
 			continue;
-		runtime_setsig(i, false, true);
+
+		// For some signals, we respect an inherited SIG_IGN handler
+		// rather than insist on installing our own default handler.
+		// Even these signals can be fetched using the os/signal package.
+		switch(t->sig) {
+		case SIGHUP:
+		case SIGINT:
+			if(runtime_getsig(i) == GO_SIG_IGN) {
+				t->flags = SigNotify | SigIgnored;
+				continue;
+			}
+		}
+
+		t->flags |= SigHandling;
+		runtime_setsig(i, runtime_sighandler, true);
 	}
 }
 
@@ -32,16 +47,49 @@
 	int32 i;
 	SigTab *t;
 
+	t = nil;
 	for(i = 0; runtime_sigtab[i].sig != -1; i++) {
-		// ~0 means all signals.
-		if(~sig == 0 || runtime_sigtab[i].sig == (int32)sig) {
+		if(runtime_sigtab[i].sig == (int32)sig) {
 			t = &runtime_sigtab[i];
-			if(t->flags & SigDefault) {
-				runtime_setsig(i, false, true);
-				t->flags &= ~SigDefault;  // make this idempotent
-			}
+			break;
+		}
+	}
+
+	if(t == nil)
+		return;
+
+	if((t->flags & SigNotify) && !(t->flags & SigHandling)) {
+		t->flags |= SigHandling;
+		if(runtime_getsig(i) == GO_SIG_IGN)
+			t->flags |= SigIgnored;
+		runtime_setsig(i, runtime_sighandler, true);
+	}
+}
+
+void
+runtime_sigdisable(uint32 sig)
+{
+	int32 i;
+	SigTab *t;
+
+	t = nil;
+	for(i = 0; runtime_sigtab[i].sig != -1; i++) {
+		if(runtime_sigtab[i].sig == (int32)sig) {
+			t = &runtime_sigtab[i];
+			break;
 		}
 	}
+
+	if(t == nil)
+		return;
+
+	if((t->flags & SigNotify) && (t->flags & SigHandling)) {
+		t->flags &= ~SigHandling;
+		if(t->flags & SigIgnored)
+			runtime_setsig(i, GO_SIG_IGN, true);
+		else
+			runtime_setsig(i, GO_SIG_DFL, true);
+	}
 }
 
 void
@@ -62,3 +110,44 @@
 	}
 	runtime_m()->profilehz = hz;
 }
+
+void
+os_sigpipe(void)
+{
+	int32 i;
+
+	for(i = 0; runtime_sigtab[i].sig != -1; i++)
+		if(runtime_sigtab[i].sig == SIGPIPE)
+			break;
+	runtime_setsig(i, GO_SIG_DFL, false);
+	runtime_raise(SIGPIPE);
+}
+
+void
+runtime_crash(void)
+{
+	int32 i;
+
+#ifdef GOOS_darwin
+	// OS X core dumps are linear dumps of the mapped memory,
+	// from the first virtual byte to the last, with zeros in the gaps.
+	// Because of the way we arrange the address space on 64-bit systems,
+	// this means the OS X core file will be >128 GB and even on a zippy
+	// workstation can take OS X well over an hour to write (uninterruptible).
+	// Save users from making that mistake.
+	if(sizeof(void*) == 8)
+		return;
+#endif
+
+	for(i = 0; runtime_sigtab[i].sig != -1; i++)
+		if(runtime_sigtab[i].sig == SIGABRT)
+			break;
+	runtime_setsig(i, GO_SIG_DFL, false);
+	runtime_raise(SIGABRT);
+}
+
+void
+runtime_raise(int32 sig)
+{
+	raise(sig);
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/signal_unix.h gcc-4.8.1/libgo/runtime/signal_unix.h
--- gcc-4.8.1.orig/libgo/runtime/signal_unix.h	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/signal_unix.h	2013-07-16 01:55:04.520470000 -0500
@@ -0,0 +1,22 @@
+// Copyright 2013 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include <signal.h>
+
+#define GO_SIG_DFL ((void*)SIG_DFL)
+#define GO_SIG_IGN ((void*)SIG_IGN)
+
+#ifdef SA_SIGINFO
+typedef siginfo_t Siginfo;
+#else
+typedef void *Siginfo;
+#endif
+
+typedef void GoSighandler(int32, Siginfo*, void*, G*);
+void	runtime_setsig(int32, GoSighandler*, bool);
+GoSighandler* runtime_getsig(int32);
+
+void	runtime_sighandler(int32 sig, Siginfo *info, void *context, G *gp);
+void	runtime_raise(int32);
+
diff -Naur gcc-4.8.1.orig/libgo/runtime/sigqueue.goc gcc-4.8.1/libgo/runtime/sigqueue.goc
--- gcc-4.8.1.orig/libgo/runtime/sigqueue.goc	2013-01-29 14:52:43.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/sigqueue.goc	2013-07-16 01:55:04.520470000 -0500
@@ -107,7 +107,7 @@
 				new = HASWAITER;
 			if(runtime_cas(&sig.state, old, new)) {
 				if (new == HASWAITER) {
-					runtime_entersyscall();
+					runtime_entersyscallblock();
 					runtime_notesleep(&sig);
 					runtime_exitsyscall();
 					runtime_noteclear(&sig);
@@ -135,8 +135,6 @@
 
 // Must only be called from a single goroutine at a time.
 func signal_enable(s uint32) {
-	int32 i;
-
 	if(!sig.inuse) {
 		// The first call to signal_enable is for us
 		// to use for initialization.  It does not pass
@@ -146,16 +144,16 @@
 		return;
 	}
 	
-	if(~s == 0) {
-		// Special case: want everything.
-		for(i=0; (size_t)i<nelem(sig.wanted); i++)
-			sig.wanted[i] = ~(uint32)0;
-		runtime_sigenable(s);
-		return;
-	}
-
 	if(s >= nelem(sig.wanted)*32)
 		return;
 	sig.wanted[s/32] |= 1U<<(s&31);
 	runtime_sigenable(s);
 }
+
+// Must only be called from a single goroutine at a time.
+func signal_disable(s uint32) {
+	if(s >= nelem(sig.wanted)*32)
+		return;
+	sig.wanted[s/32] &= ~(1U<<(s&31));
+	runtime_sigdisable(s);
+}
diff -Naur gcc-4.8.1.orig/libgo/runtime/string.goc gcc-4.8.1/libgo/runtime/string.goc
--- gcc-4.8.1.orig/libgo/runtime/string.goc	2013-01-30 16:24:40.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/string.goc	2013-07-16 01:55:04.520470000 -0500
@@ -7,6 +7,7 @@
 #include "arch.h"
 #include "malloc.h"
 #include "go-string.h"
+#include "race.h"
 
 #define charntorune(pv, str, len) __go_get_rune(str, len, pv)
 
diff -Naur gcc-4.8.1.orig/libgo/runtime/thread.c gcc-4.8.1/libgo/runtime/thread.c
--- gcc-4.8.1.orig/libgo/runtime/thread.c	2012-03-06 11:57:23.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/thread.c	2013-07-16 01:55:04.520470000 -0500
@@ -133,27 +133,6 @@
 
 #endif
 
-// Called to initialize a new m (including the bootstrap m).
-void
-runtime_minit(void)
-{
-	byte* stack;
-	size_t stacksize;
-	stack_t ss;
-	sigset_t sigs;
-
-	// Initialize signal handling.
-	runtime_m()->gsignal = runtime_malg(32*1024, &stack, &stacksize);	// OS X wants >=8K, Linux >=2K
-	ss.ss_sp = stack;
-	ss.ss_flags = 0;
-	ss.ss_size = stacksize;
-	if(sigaltstack(&ss, nil) < 0)
-		*(int *)0xf1 = 0xf1;
-	if (sigemptyset(&sigs) != 0)
-		runtime_throw("sigemptyset");
-	sigprocmask(SIG_SETMASK, &sigs, nil);
-}
-
 uintptr
 runtime_memlimit(void)
 {
diff -Naur gcc-4.8.1.orig/libgo/runtime/time.goc gcc-4.8.1/libgo/runtime/time.goc
--- gcc-4.8.1.orig/libgo/runtime/time.goc	2013-01-29 19:37:13.000000000 -0600
+++ gcc-4.8.1/libgo/runtime/time.goc	2013-07-16 01:55:04.520470000 -0500
@@ -14,7 +14,6 @@
 
 static Timers timers;
 static void addtimer(Timer*);
-static bool deltimer(Timer*);
 
 // Package time APIs.
 // Godoc uses the comments in package time, not these.
@@ -30,15 +29,13 @@
 func startTimer(t *Timer) {
 	if(raceenabled)
 		runtime_racerelease(t);
-	runtime_lock(&timers);
-	addtimer(t);
-	runtime_unlock(&timers);
+	runtime_addtimer(t);
 }
 
 // stopTimer removes t from the timer heap if it is there.
 // It returns true if t was removed, false if t wasn't even there.
 func stopTimer(t *Timer) (stopped bool) {
-	stopped = deltimer(t);
+	stopped = runtime_deltimer(t);
 }
 
 // C runtime.
@@ -49,13 +46,16 @@
 
 // Ready the goroutine e.data.
 static void
-ready(int64 now, Eface e)
+ready(int64 now, Eface e, void *closure)
 {
 	USED(now);
+	USED(closure);
 
 	runtime_ready(e.__object);
 }
 
+static FuncVal readyv = {(void(*)(void))ready};
+
 // Put the current goroutine to sleep for ns nanoseconds.
 void
 runtime_tsleep(int64 ns, const char *reason)
@@ -70,13 +70,21 @@
 
 	t.when = runtime_nanotime() + ns;
 	t.period = 0;
-	t.f = ready;
+	t.fv = &readyv;
 	t.arg.__object = g;
 	runtime_lock(&timers);
 	addtimer(&t);
 	runtime_park(runtime_unlock, &timers, reason);
 }
 
+void
+runtime_addtimer(Timer *t)
+{
+	runtime_lock(&timers);
+	addtimer(t);
+	runtime_unlock(&timers);
+}
+
 // Add a timer to the heap and start or kick the timer proc
 // if the new timer is earlier than any of the others.
 static void
@@ -119,8 +127,8 @@
 // Delete timer t from the heap.
 // Do not need to update the timerproc:
 // if it wakes up early, no big deal.
-static bool
-deltimer(Timer *t)
+bool
+runtime_deltimer(Timer *t)
 {
 	int32 i;
 
@@ -158,7 +166,7 @@
 {
 	int64 delta, now;
 	Timer *t;
-	void (*f)(int64, Eface);
+	void (*f)(int64, Eface, void *);
 	Eface arg;
 
 	for(;;) {
@@ -184,12 +192,12 @@
 				siftdown(0);
 				t->i = -1;  // mark as removed
 			}
-			f = t->f;
+			f = (void*)t->fv->fn;
 			arg = t->arg;
 			runtime_unlock(&timers);
 			if(raceenabled)
 				runtime_raceacquire(t);
-			f(now, arg);
+			f(now, arg, &t->fv);
 			runtime_lock(&timers);
 		}
 		if(delta < 0) {
@@ -202,7 +210,7 @@
 		timers.sleeping = true;
 		runtime_noteclear(&timers.waitnote);
 		runtime_unlock(&timers);
-		runtime_entersyscall();
+		runtime_entersyscallblock();
 		runtime_notetsleep(&timers.waitnote, delta);
 		runtime_exitsyscall();
 	}
diff -Naur gcc-4.8.1.orig/libitm/acinclude.m4 gcc-4.8.1/libitm/acinclude.m4
--- gcc-4.8.1.orig/libitm/acinclude.m4	2012-10-30 23:46:20.000000000 -0500
+++ gcc-4.8.1/libitm/acinclude.m4	2013-08-02 10:41:10.548493000 -0500
@@ -121,6 +121,17 @@
     AC_DEFINE(HAVE_AS_RTM, 1, [Define to 1 if the assembler supports RTM.])
   fi
   ;;
+s390*)
+  AC_CACHE_CHECK([if the assembler supports HTM], libitm_cv_as_htm, [
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS -march=zEC12"
+    AC_TRY_COMPILE([], [asm("tbegin 0,0; tend");],
+		   [libitm_cv_as_htm=yes], [libitm_cv_as_htm=no])
+    CFLAGS="$save_CFLAGS"])
+  if test x$libitm_cv_as_htm = xyes; then
+    AC_DEFINE(HAVE_AS_HTM, 1, [Define to 1 if the assembler supports HTM.])
+  fi
+  ;;
 esac])
 
 sinclude(../libtool.m4)
diff -Naur gcc-4.8.1.orig/libitm/config/s390/sjlj.S gcc-4.8.1/libitm/config/s390/sjlj.S
--- gcc-4.8.1.orig/libitm/config/s390/sjlj.S	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libitm/config/s390/sjlj.S	2013-08-14 14:04:44.393213000 -0500
@@ -0,0 +1,108 @@
+/* Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+   This file is part of the GNU Transactional Memory Library (libitm).
+
+   Libitm is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   Libitm is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+   more details.
+
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
+   You should have received a copy of the GNU General Public License and
+   a copy of the GCC Runtime Library Exception along with this program;
+   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+
+#include "asmcfi.h"
+
+.text
+	.align 4
+.globl	_ITM_beginTransaction
+	.type _ITM_beginTransaction, @function
+
+	/* _ITM_beginTransaction (int props); props -> r2 */
+_ITM_beginTransaction:
+	cfi_startproc
+#ifdef __s390x__
+	lgr	%r3,%r15	/* backup stack pointer */
+	aghi	%r15,-304	/* jump buffer (144) + reg save area (160) */
+	cfi_adjust_cfa_offset(304)
+	stmg	%r6,%r14,160(%r15)
+	stg	%r3,72+160(%r15) /* store the old stack pointer */
+	std	%f8,80+160(%r15)
+	std	%f9,88+160(%r15)
+	std	%f10,96+160(%r15)
+	std	%f11,104+160(%r15)
+	std	%f12,112+160(%r15)
+	std	%f13,120+160(%r15)
+	std	%f14,128+160(%r15)
+	std	%f15,136+160(%r15)
+	la	%r3,160(%r15)	/* second argument to GTM_begin_transaction */
+	brasl	%r14,GTM_begin_transaction
+	lg	%r1,64+160(%r15)
+	aghi	%r15,304
+	cfi_adjust_cfa_offset(-304)
+	br	%r1
+#else
+	lr	%r3,%r15	/* backup stack pointer */
+	ahi	%r15,-152	/* jump buffer (56) + reg save area (96) */
+	cfi_adjust_cfa_offset(152)
+	stm	%r6,%r14,96(%r15)
+	st	%r3,36+96(%r15)	/* store the old stack pointer */
+	std	%f4,40+96(%r15)
+	std	%f6,48+96(%r15)
+	la	%r3,96(%r15)	/* second argument to GTM_begin_transaction */
+	/* begin_transaction (uint32_t prop, const gtm_jmpbuf *jb) */
+	brasl	%r14,GTM_begin_transaction /* requires mzarch */
+	l	%r1,32+96(%r15)
+	ahi	%r15,152
+	cfi_adjust_cfa_offset(-152)
+	br	%r1
+#endif
+	cfi_endproc
+
+	.size _ITM_beginTransaction, .-_ITM_beginTransaction
+
+	.align 4
+.globl	GTM_longjmp
+	.type GTM_longjmp, @function
+	.hidden GTM_longjmp
+
+	/* uint32_t GTM_longjmp (uint32_t, const gtm_jmpbuf *, uint32_t) */
+GTM_longjmp:
+	/* First parameter becomes the return value of
+	   _ITM_beginTransaction (r2).
+	   Third parameter is ignored for now.  */
+	cfi_startproc
+#ifdef __s390x__
+	ld	%f8,80(%r3)
+	ld	%f9,88(%r3)
+	ld	%f10,96(%r3)
+	ld	%f11,104(%r3)
+	ld	%f12,112(%r3)
+	ld	%f13,120(%r3)
+	ld	%f14,128(%r3)
+	ld	%f15,136(%r3)
+	lmg	%r6,%r15,0(%r3)
+	br	%r14
+#else
+	ld	%f4,40(%r3)
+	ld	%f6,48(%r3)
+	lm	%r6,%r15,0(%r3)
+	br	%r14
+#endif
+	cfi_endproc
+
+	.size GTM_longjmp, .-GTM_longjmp
+
+	.section .note.GNU-stack, "", @progbits
diff -Naur gcc-4.8.1.orig/libitm/config/s390/target.h gcc-4.8.1/libitm/config/s390/target.h
--- gcc-4.8.1.orig/libitm/config/s390/target.h	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libitm/config/s390/target.h	2013-08-14 14:04:44.393213000 -0500
@@ -0,0 +1,127 @@
+/* Copyright (C) 2013 Free Software Foundation, Inc.
+   Contributed by Andreas Krebbel <krebbel@linux.vnet.ibm.com>.
+
+   This file is part of the GNU Transactional Memory Library (libitm).
+
+   Libitm is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   Libitm is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+   more details.
+
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
+   You should have received a copy of the GNU General Public License and
+   a copy of the GCC Runtime Library Exception along with this program;
+   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_SYS_AUXV_H
+#include <sys/auxv.h>
+#endif
+
+namespace GTM HIDDEN {
+
+#define HW_CACHELINE_SIZE 256
+
+typedef struct gtm_jmpbuf
+{
+  /* We save registers r6-r14.  */
+  long int __gregs[9];
+  /* r15 is stored into cfa field.  It needs to be named that way
+     since tls.h is accessing the field by name.  Be aware that this
+     is not actually what we consider the CFA on s390 (since there is
+     a fix offset between sp and CFA).  It is merely the saved stack
+     pointer.  */
+  void *cfa;
+
+#ifdef __s390x__
+  /* We save fpu registers f8 - f15.  */
+  long __fpregs[8];
+#else
+  /* We save fpu registers f4 and f6.  */
+  long __fpregs[4];
+#endif
+} gtm_jmpbuf;
+
+static inline void
+cpu_relax (void)
+{
+  __asm volatile ("" : : : "memory");
+}
+
+
+// Use HTM if it is supported by the system.
+// See gtm_thread::begin_transaction for how these functions are used.
+#if defined (__linux__) \
+    && defined (HAVE_AS_HTM) \
+    && defined (HAVE_GETAUXVAL) \
+    && defined (HWCAP_S390_TE)
+
+#include <htmintrin.h>
+
+/* Number of retries for transient failures.  */
+#define _HTM_ITM_RETRIES 10
+#define USE_HTM_FASTPATH
+
+static inline bool
+htm_available ()
+{
+  return (getauxval (AT_HWCAP) & HWCAP_S390_TE) ? true : false;
+}
+
+static inline uint32_t
+htm_init ()
+{
+  return htm_available () ? _HTM_ITM_RETRIES : 0;
+}
+
+static inline uint32_t
+htm_begin ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  return __builtin_tbegin_nofloat (NULL);
+}
+
+static inline bool
+htm_begin_success (uint32_t begin_ret)
+{
+  return begin_ret == _HTM_TBEGIN_STARTED;
+}
+
+static inline void
+htm_commit ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  __builtin_tend ();
+}
+
+static inline void
+htm_abort ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  __builtin_tabort (_HTM_FIRST_USER_ABORT_CODE);
+}
+
+static inline bool
+htm_abort_should_retry (uint32_t begin_ret)
+{
+  return begin_ret == _HTM_TBEGIN_TRANSIENT;
+}
+
+static inline bool
+htm_transaction_active ()
+{
+  __asm volatile (".machine \"all\"  \n\t");
+  return __builtin_tx_nesting_depth() != 0;
+}
+
+#endif
+
+} // namespace GTM
diff -Naur gcc-4.8.1.orig/libitm/config.h.in gcc-4.8.1/libitm/config.h.in
--- gcc-4.8.1.orig/libitm/config.h.in	2013-05-31 04:09:26.000000000 -0500
+++ gcc-4.8.1/libitm/config.h.in	2013-08-02 10:41:10.548493000 -0500
@@ -12,6 +12,9 @@
 /* Define if your assembler supports .cfi_* directives. */
 #undef HAVE_AS_CFI_PSEUDO_OP
 
+/* Define to 1 if the assembler supports HTM. */
+#undef HAVE_AS_HTM
+
 /* Define to 1 if the assembler supports RTM. */
 #undef HAVE_AS_RTM
 
@@ -36,6 +39,9 @@
 /* Define to 1 if target has a weakref that works like the ELF one. */
 #undef HAVE_ELF_STYLE_WEAKREF
 
+/* Define to 1 if you have the `getauxval' function. */
+#undef HAVE_GETAUXVAL
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
@@ -81,6 +87,9 @@
 /* Define to 1 if the target supports __sync_*_compare_and_swap */
 #undef HAVE_SYNC_BUILTINS
 
+/* Define to 1 if you have the <sys/auxv.h> header file. */
+#undef HAVE_SYS_AUXV_H
+
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
diff -Naur gcc-4.8.1.orig/libitm/configure gcc-4.8.1/libitm/configure
--- gcc-4.8.1.orig/libitm/configure	2013-05-31 04:09:26.000000000 -0500
+++ gcc-4.8.1/libitm/configure	2013-08-02 10:41:10.548493000 -0500
@@ -15349,7 +15349,7 @@
 
 fi
 
-for ac_header in unistd.h semaphore.h sys/time.h malloc.h
+for ac_header in unistd.h semaphore.h sys/time.h sys/auxv.h malloc.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -16184,7 +16184,7 @@
     conftest$ac_exeext conftest.$ac_ext
 
 # Check for functions needed.
-for ac_func in strtoull memalign posix_memalign
+for ac_func in strtoull memalign posix_memalign getauxval
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -17362,7 +17362,44 @@
 
   fi
   ;;
+s390*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the assembler supports HTM" >&5
+$as_echo_n "checking if the assembler supports HTM... " >&6; }
+if test "${libitm_cv_as_htm+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS -march=zEC12"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+asm("tbegin 0,0; tend");
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libitm_cv_as_htm=yes
+else
+  libitm_cv_as_htm=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libitm_cv_as_htm" >&5
+$as_echo "$libitm_cv_as_htm" >&6; }
+  if test x$libitm_cv_as_htm = xyes; then
+
+$as_echo "#define HAVE_AS_HTM 1" >>confdefs.h
+
+  fi
+  ;;
 esac
+LIBITM_CHECK_AS_HTM
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether weak refs work like ELF" >&5
diff -Naur gcc-4.8.1.orig/libitm/configure.ac gcc-4.8.1/libitm/configure.ac
--- gcc-4.8.1.orig/libitm/configure.ac	2013-02-03 11:46:11.000000000 -0600
+++ gcc-4.8.1/libitm/configure.ac	2013-08-02 10:41:10.548493000 -0500
@@ -160,7 +160,7 @@
 AC_STDC_HEADERS
 AC_HEADER_TIME
 ACX_HEADER_STRING
-AC_CHECK_HEADERS(unistd.h semaphore.h sys/time.h malloc.h)
+AC_CHECK_HEADERS(unistd.h semaphore.h sys/time.h sys/auxv.h malloc.h)
 
 GCC_HEADER_STDINT(gstdint.h)
 
@@ -193,7 +193,7 @@
    [AC_MSG_ERROR([Pthreads are required to build libitm])])])
 
 # Check for functions needed.
-AC_CHECK_FUNCS(strtoull memalign posix_memalign)
+AC_CHECK_FUNCS(strtoull memalign posix_memalign getauxval)
 
 # Check for broken semaphore implementation on darwin.
 # sem_init returns: sem_init error: Function not implemented.
@@ -245,6 +245,7 @@
 LIBITM_CHECK_64BIT_SYNC_BUILTINS
 LIBITM_CHECK_AS_AVX
 LIBITM_CHECK_AS_RTM
+LIBITM_CHECK_AS_HTM
 
 GCC_CHECK_ELF_STYLE_WEAKREF
 
diff -Naur gcc-4.8.1.orig/libitm/configure.tgt gcc-4.8.1/libitm/configure.tgt
--- gcc-4.8.1.orig/libitm/configure.tgt	2013-02-03 11:46:11.000000000 -0600
+++ gcc-4.8.1/libitm/configure.tgt	2013-08-14 15:39:49.674614000 -0500
@@ -105,6 +105,10 @@
 	XCFLAGS="${XCFLAGS} -mrtm"
 	ARCH=x86
 	;;
+  s390|s390x)
+	XCFLAGS="${XCFLAGS} -mzarch -mhtm"
+	ARCH=s390
+	;;
 
   *)
 	ARCH="${target_cpu}"
diff -Naur gcc-4.8.1.orig/libitm/libitm.info gcc-4.8.1/libitm/libitm.info
--- gcc-4.8.1.orig/libitm/libitm.info	2013-05-31 05:12:52.000000000 -0500
+++ gcc-4.8.1/libitm/libitm.info	1969-12-31 18:00:00.000000000 -0600
@@ -1,1307 +0,0 @@
-This is libitm.info, produced by makeinfo version 4.13 from
-/d/gcc-4.8.1/gcc-4.8.1/libitm/libitm.texi.
-
-Copyright (C) 2011-2013 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
-copy of the license is included in the section entitled "GNU Free
-Documentation License".
-
-INFO-DIR-SECTION GNU Libraries
-START-INFO-DIR-ENTRY
-* libitm: (libitm).                    GNU Transactional Memory Library
-END-INFO-DIR-ENTRY
-
-   This manual documents the GNU Transactional Memory Library.
-
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
-copy of the license is included in the section entitled "GNU Free
-Documentation License".
-
-
-File: libitm.info,  Node: Top,  Next: Enabling libitm,  Up: (dir)
-
-Introduction
-************
-
-This manual documents the usage and internals of libitm, the GNU
-Transactional Memory Library. It provides transaction support for
-accesses to a process' memory, enabling easy-to-use synchronization of
-accesses to shared memory by several threads.
-
-* Menu:
-
-* Enabling libitm::            How to enable libitm for your applications.
-* C/C++ Language Constructs for TM::
-                               Notes on the language-level interface supported
-                               by gcc.
-* The libitm ABI::             Notes on the external ABI provided by libitm.
-* Internals::                  Notes on libitm's internal synchronization.
-* GNU Free Documentation License::
-                               How you can copy and share this manual.
-* Index::                      Index of this documentation.
-
-
-File: libitm.info,  Node: Enabling libitm,  Next: C/C++ Language Constructs for TM,  Prev: Top,  Up: Top
-
-1 Enabling libitm
-*****************
-
-To activate support for TM in C/C++, the compile-time flag `-fgnu-tm'
-must be specified. This enables TM language-level constructs such as
-transaction statements (e.g., `__transaction_atomic', *note C/C++
-Language Constructs for TM:: for details).
-
-
-File: libitm.info,  Node: C/C++ Language Constructs for TM,  Next: The libitm ABI,  Prev: Enabling libitm,  Up: Top
-
-2 C/C++ Language Constructs for TM
-**********************************
-
-Transactions are supported in C++ and C in the form of transaction
-statements, transaction expressions, and function transactions. In the
-following example, both `a' and `b' will be read and the difference
-will be written to `c', all atomically and isolated from other
-transactions:
-
-     __transaction_atomic { c = a - b; }
-
-   Therefore, another thread can use the following code to concurrently
-update `b' without ever causing `c' to hold a negative value (and
-without having to use other synchronization constructs such as locks or
-C++11 atomics):
-
-     __transaction_atomic { if (a > b) b++; }
-
-   GCC follows the Draft Specification of Transactional Language
-Constructs for C++ (v1.1)
-(https://sites.google.com/site/tmforcplusplus/) in its implementation
-of transactions.
-
-   The precise semantics of transactions are defined in terms of the
-C++11/C11 memory model (see the specification). Roughly, transactions
-provide synchronization guarantees that are similar to what would be
-guaranteed when using a single global lock as a guard for all
-transactions. Note that like other synchronization constructs in C/C++,
-transactions rely on a data-race-free program (e.g., a nontransactional
-write that is concurrent with a transactional read to the same memory
-location is a data race).
-
-
-File: libitm.info,  Node: The libitm ABI,  Next: Internals,  Prev: C/C++ Language Constructs for TM,  Up: Top
-
-3 The libitm ABI
-****************
-
-The ABI provided by libitm is basically equal to the Linux variant of
-Intel's current TM ABI specification document (Revision 1.1, May 6
-2009) but with the differences listed in this chapter. It would be good
-if these changes would eventually be merged into a future version of
-this specification. To ease look-up, the following subsections mirror
-the structure of this specification.
-
-3.1 [No changes] Objectives
-===========================
-
-3.2 [No changes] Non-objectives
-===============================
-
-3.3 Library design principles
-=============================
-
-3.3.1 [No changes] Calling conventions
---------------------------------------
-
-3.3.2 [No changes] TM library algorithms
-----------------------------------------
-
-3.3.3 [No changes] Optimized load and store routines
-----------------------------------------------------
-
-3.3.4 [No changes] Aligned load and store routines
---------------------------------------------------
-
-3.3.5 Data logging functions
-----------------------------
-
-The memory locations accessed with transactional loads and stores and
-the memory locations whose values are logged must not overlap. This
-required separation only extends to the scope of the execution of one
-transaction including all the executions of all nested transactions.
-
-   The compiler must be consistent (within the scope of a single
-transaction) about which memory locations are shared and which are not
-shared with other threads (i.e., data must be accessed either
-transactionally or nontransactionally). Otherwise, non-write-through TM
-algorithms would not work.
-
-   For memory locations on the stack, this requirement extends to only
-the lifetime of the stack frame that the memory location belongs to (or
-the lifetime of the transaction, whichever is shorter).  Thus, memory
-that is reused for several stack frames could be target of both data
-logging and transactional accesses; however, this is harmless because
-these stack frames' lifetimes will end before the transaction finishes.
-
-3.3.6 [No changes] Scatter/gather calls
----------------------------------------
-
-3.3.7 [No changes] Serial and irrevocable mode
-----------------------------------------------
-
-3.3.8 [No changes] Transaction descriptor
------------------------------------------
-
-3.3.9 Store allocation
-----------------------
-
-There is no `getTransaction' function.
-
-3.3.10 [No changes] Naming conventions
---------------------------------------
-
-3.3.11 Function pointer encryption
-----------------------------------
-
-Currently, this is not implemented.
-
-3.4 Types and macros list
-=========================
-
-`_ITM_codeProperties' has changed, *note Starting a transaction:
-txn-code-properties.  `_ITM_srcLocation' is not used.
-
-3.5 Function list
-=================
-
-3.5.1 Initialization and finalization functions
------------------------------------------------
-
-These functions are not part of the ABI.
-
-3.5.2 [No changes] Version checking
------------------------------------
-
-3.5.3 [No changes] Error reporting
-----------------------------------
-
-3.5.4 [No changes] inTransaction call
--------------------------------------
-
-3.5.5 State manipulation functions
-----------------------------------
-
-There is no `getTransaction' function. Transaction identifiers for
-nested transactions will be ordered but not necessarily sequential
-(i.e., for a nested transaction's identifier IN and its enclosing
-transaction's identifier IE, it is guaranteed that IN >= IE).
-
-3.5.6 [No changes] Source locations
------------------------------------
-
-3.5.7 Starting a transaction
-----------------------------
-
-3.5.7.1 Transaction code properties
-...................................
-
-The bit `hasNoXMMUpdate' is instead called `hasNoVectorUpdate'.  Iff it
-is set, vector register save/restore is not necessary for any target
-machine.
-
-   The `hasNoFloatUpdate' bit (`0x0010') is new. Iff it is set, floating
-point register save/restore is not necessary for any target machine.
-
-   `undoLogCode' is not supported and a fatal runtime error will be
-raised if this bit is set. It is not properly defined in the ABI why
-barriers other than undo logging are not present; Are they not
-necessary (e.g., a transaction operating purely on thread-local data)
-or have they been omitted by the compiler because it thinks that some
-kind of global synchronization (e.g., serial mode) might perform
-better? The specification suggests that the latter might be the case,
-but the former seems to be more useful.
-
-   The `readOnly' bit (`0x4000') is new. *TODO* Lexical or dynamic
-scope?
-
-   `hasNoRetry' is not supported. If this bit is not set, but
-`hasNoAbort' is set, the library can assume that transaction rollback
-will not be requested.
-
-   It would be useful if the absence of externally-triggered rollbacks
-would be reported for the dynamic scope as well, not just for the
-lexical scope (`hasNoAbort'). Without this, a library cannot exploit
-this together with flat nesting.
-
-   `exceptionBlock' is not supported because exception blocks are not
-used.
-
-3.5.7.2 [No changes] Windows exception state
-............................................
-
-3.5.7.3 [No changes] Other machine state
-........................................
-
-3.5.7.4 [No changes] Results from beginTransaction
-..................................................
-
-3.5.8 Aborting a transaction
-----------------------------
-
-`_ITM_rollbackTransaction' is not supported. `_ITM_abortTransaction' is
-supported but the abort reasons `exceptionBlockAbort', `TMConflict',
-and `userRetry' are not supported. There are no exception blocks in
-general, so the related cases also do not have to be considered. To
-encode `__transaction_cancel [[outer]]', compilers must set the new
-`outerAbort' bit (`0x10') additionally to the `userAbort' bit in the
-abort reason.
-
-3.5.9 Committing a transaction
-------------------------------
-
-The exception handling (EH) scheme is different. The Intel ABI requires
-the `_ITM_tryCommitTransaction' function that will return even when the
-commit failed and will have to be matched with calls to either
-`_ITM_abortTransaction' or `_ITM_commitTransaction'. In contrast, gcc
-relies on transactional wrappers for the functions of the Exception
-Handling ABI and on one additional commit function (shown below). This
-allows the TM to keep track of EH internally and thus it does not have
-to embed the cleanup of EH state into the existing EH code in the
-program.  `_ITM_tryCommitTransaction' is not supported.
-`_ITM_commitTransactionToId' is also not supported because the
-propagation of thrown exceptions will not bypass commits of nested
-transactions.
-
-     void _ITM_commitTransactionEH(void *exc_ptr) ITM_REGPARM;
-     void *_ITM_cxa_allocate_exception (size_t);
-     void _ITM_cxa_throw (void *obj, void *tinfo, void *dest);
-     void *_ITM_cxa_begin_catch (void *exc_ptr);
-     void _ITM_cxa_end_catch (void);
-
-   `_ITM_commitTransactionEH' must be called to commit a transaction if
-an exception could be in flight at this position in the code. `exc_ptr'
-is the current exception or zero if there is no current exception.  The
-`_ITM_cxa...' functions are transactional wrappers for the respective
-`__cxa...' functions and must be called instead of these in
-transactional code.
-
-   To support this EH scheme, libstdc++ needs to provide one additional
-function (`_cxa_tm_cleanup'), which is used by the TM to clean up the
-exception handling state while rolling back a transaction:
-
-     void __cxa_tm_cleanup (void *unthrown_obj, void *cleanup_exc,
-                            unsigned int caught_count);
-
-   `unthrown_obj' is non-null if the program called
-`__cxa_allocate_exception' for this exception but did not yet called
-`__cxa_throw' for it. `cleanup_exc' is non-null if the program is
-currently processing a cleanup along an exception path but has not
-caught this exception yet. `caught_count' is the nesting depth of
-`__cxa_begin_catch' within the transaction (which can be counted by the
-TM using `_ITM_cxa_begin_catch' and `_ITM_cxa_end_catch');
-`__cxa_tm_cleanup' then performs rollback by essentially performing
-`__cxa_end_catch' that many times.
-
-3.5.10 Exception handling support
----------------------------------
-
-Currently, there is no support for functionality like
-`__transaction_cancel throw' as described in the C++ TM specification.
-Supporting this should be possible with the EH scheme explained
-previously because via the transactional wrappers for the EH ABI, the
-TM is able to observe and intercept EH.
-
-3.5.11 [No changes] Transition to serial-irrevocable mode
----------------------------------------------------------
-
-3.5.12 [No changes] Data transfer functions
--------------------------------------------
-
-3.5.13 [No changes] Transactional memory copies
------------------------------------------------
-
-3.5.14 Transactional versions of memmove
-----------------------------------------
-
-If either the source or destination memory region is to be accessed
-nontransactionally, then source and destination regions must not be
-overlapping. The respective `_ITM_memmove' functions are still
-available but a fatal runtime error will be raised if such regions do
-overlap.  To support this functionality, the ABI would have to specify
-how the intersection of the regions has to be accessed (i.e.,
-transactionally or nontransactionally).
-
-3.5.15 [No changes] Transactional versions of memset
-----------------------------------------------------
-
-3.5.16 [No changes] Logging functions
--------------------------------------
-
-3.5.17 User-registered commit and undo actions
-----------------------------------------------
-
-Commit actions will get executed in the same order in which the
-respective calls to `_ITM_addUserCommitAction' happened. Only
-`_ITM_noTransactionId' is allowed as value for the
-`resumingTransactionId' argument. Commit actions get executed after
-privatization safety has been ensured.
-
-   Undo actions will get executed in reverse order compared to the
-order in which the respective calls to `_ITM_addUserUndoAction'
-happened. The ordering of undo actions w.r.t. the roll-back of other
-actions (e.g., data transfers or memory allocations) is undefined.
-
-   `_ITM_getThreadnum' is not supported currently because its only
-purpose is to provide a thread ID that matches some assumed performance
-tuning output, but this output is not part of the ABI nor further
-defined by it.
-
-   `_ITM_dropReferences' is not supported currently because its
-semantics and the intention behind it is not entirely clear. The
-specification suggests that this function is necessary because of
-certain orderings of data transfer undos and the releasing of memory
-regions (i.e., privatization). However, this ordering is never defined,
-nor is the ordering of dropping references w.r.t. other events.
-
-3.5.18 [New] Transactional indirect calls
------------------------------------------
-
-Indirect calls (i.e., calls through a function pointer) within
-transactions should execute the transactional clone of the original
-function (i.e., a clone of the original that has been fully
-instrumented to use the TM runtime), if such a clone is available. The
-runtime provides two functions to register/deregister clone tables:
-
-     struct clone_entry
-     {
-       void *orig, *clone;
-     };
-
-     void _ITM_registerTMCloneTable (clone_entry *table, size_t entries);
-     void _ITM_deregisterTMCloneTable (clone_entry *table);
-
-   Registered tables must be writable by the TM runtime, and must be
-live throughout the life-time of the TM runtime.
-
-   *TODO* The intention was always to drop the registration functions
-entirely, and create a new ELF Phdr describing the linker-sorted table.
-Much like what currently happens for `PT_GNU_EH_FRAME'.  This work kept
-getting bogged down in how to represent the N different code generation
-variants.  We clearly needed at least two--SW and HW transactional
-clones--but there was always a suggestion of more variants for
-different TM assumptions/invariants.
-
-   The compiler can then use two TM runtime functions to perform
-indirect calls in transactions:
-     void *_ITM_getTMCloneOrIrrevocable (void *function) ITM_REGPARM;
-     void *_ITM_getTMCloneSafe (void *function) ITM_REGPARM;
-
-   If there is a registered clone for supplied function, both will
-return a pointer to the clone. If not, the first runtime function will
-attempt to switch to serial-irrevocable mode and return the original
-pointer, whereas the second will raise a fatal runtime error.
-
-3.5.19 [New] Transactional dynamic memory management
-----------------------------------------------------
-
-     void *_ITM_malloc (size_t)
-            __attribute__((__malloc__)) ITM_PURE;
-     void *_ITM_calloc (size_t, size_t)
-            __attribute__((__malloc__)) ITM_PURE;
-     void _ITM_free (void *) ITM_PURE;
-
-   These functions are essentially transactional wrappers for `malloc',
-`calloc', and `free'. Within transactions, the compiler should replace
-calls to the original functions with calls to the wrapper functions.
-
-3.6 [No changes] Future Enhancements to the ABI
-===============================================
-
-3.7 Sample code
-===============
-
-The code examples might not be correct w.r.t. the current version of
-the ABI, especially everything related to exception handling.
-
-3.8 [New] Memory model
-======================
-
-The ABI should define a memory model and the ordering that is
-guaranteed for data transfers and commit/undo actions, or at least
-refer to another memory model that needs to be preserved. Without that,
-the compiler cannot ensure the memory model specified on the level of
-the programming language (e.g., by the C++ TM specification).
-
-   For example, if a transactional load is ordered before another
-load/store, then the TM runtime must also ensure this ordering when
-accessing shared state. If not, this might break the kind of
-publication safety used in the C++ TM specification. Likewise, the TM
-runtime must ensure privatization safety.
-
-
-File: libitm.info,  Node: Internals,  Next: GNU Free Documentation License,  Prev: The libitm ABI,  Up: Top
-
-4 Internals
-***********
-
-4.1 TM methods and method groups
-================================
-
-libitm supports several ways of synchronizing transactions with each
-other.  These TM methods (or TM algorithms) are implemented in the form
-of subclasses of `abi_dispatch', which provide methods for
-transactional loads and stores as well as callbacks for rollback and
-commit.  All methods that are compatible with each other (i.e., that
-let concurrently running transactions still synchronize correctly even
-if different methods are used) belong to the same TM method group.
-Pointers to TM methods can be obtained using the factory methods
-prefixed with `dispatch_' in `libitm_i.h'. There are two special
-methods, `dispatch_serial' and `dispatch_serialirr', that are
-compatible with all methods because they run transactions completely in
-serial mode.
-
-4.1.1 TM method life cycle
---------------------------
-
-The state of TM methods does not change after construction, but they do
-alter the state of transactions that use this method. However, because
-per-transaction data gets used by several methods, `gtm_thread' is
-responsible for setting an initial state that is useful for all methods.
-After that, methods are responsible for resetting/clearing this state
-on each rollback or commit (of outermost transactions), so that the
-transaction executed next is not affected by the previous transaction.
-
-   There is also global state associated with each method group, which
-is initialized and shut down (`method_group::init()' and `fini()') when
-switching between method groups (see `retry.cc').
-
-4.1.2 Selecting the default method
-----------------------------------
-
-The default method that libitm uses for freshly started transactions
-(but not necessarily for restarted transactions) can be set via an
-environment variable (`ITM_DEFAULT_METHOD'), whose value should be
-equal to the name of one of the factory methods returning abi_dispatch
-subclasses but without the "dispatch_" prefix (e.g., "serialirr"
-instead of `GTM::dispatch_serialirr()').
-
-   Note that this environment variable is only a hint for libitm and
-might not be supported in the future.
-
-4.2 Nesting: flat vs. closed
-============================
-
-We support two different kinds of nesting of transactions. In the case
-of _flat nesting_, the nesting structure is flattened and all nested
-transactions are subsumed by the enclosing transaction. In contrast,
-with _closed nesting_, nested transactions that have not yet committed
-can be rolled back separately from the enclosing transactions; when they
-commit, they are subsumed by the enclosing transaction, and their
-effects will be finally committed when the outermost transaction
-commits.  _Open nesting_ (where nested transactions can commit
-independently of the enclosing transactions) are not supported.
-
-   Flat nesting is the default nesting mode, but closed nesting is
-supported and used when transactions contain user-controlled aborts
-(`__transaction_cancel' statements). We assume that user-controlled
-aborts are rare in typical code and used mostly in exceptional
-situations.  Thus, it makes more sense to use flat nesting by default
-to avoid the performance overhead of the additional checkpoints
-required for closed nesting. User-controlled aborts will correctly
-abort the innermost enclosing transaction, whereas the whole (i.e.,
-outermost) transaction will be restarted otherwise (e.g., when a
-transaction encounters data conflicts during optimistic execution).
-
-4.3 Locking conventions
-=======================
-
-This section documents the locking scheme and rules for all uses of
-locking in libitm. We have to support serial(-irrevocable) mode, which
-is implemented using a global lock as explained next (called the
-_serial lock_). To simplify the overall design, we use the same lock as
-catch-all locking mechanism for other infrequent tasks such as
-(de)registering clone tables or threads. Besides the serial lock, there
-are _per-method-group locks_ that are managed by specific method groups
-(i.e., groups of similar TM concurrency control algorithms), and
-lock-like constructs for quiescence-based operations such as ensuring
-privatization safety.
-
-   Thus, the actions that participate in the libitm-internal locking
-are either _active transactions_ that do not run in serial mode, _serial
-transactions_ (which (are about to) run in serial mode), and management
-tasks that do not execute within a transaction but have acquired the
-serial mode like a serial transaction would do (e.g., to be able to
-register threads with libitm). Transactions become active as soon as
-they have successfully used the serial lock to announce this globally
-(*note Serial lock implementation: serial-lock-impl.). Likewise,
-transactions become serial transactions as soon as they have acquired
-the exclusive rights provided by the serial lock (i.e., serial mode,
-which also means that there are no other concurrent active or serial
-transactions). Note that active transactions can become serial
-transactions when they enter serial mode during the runtime of the
-transaction.
-
-4.3.1 State-to-lock mapping
----------------------------
-
-Application data is protected by the serial lock if there is a serial
-transaction and no concurrently running active transaction (i.e.,
-non-serial).  Otherwise, application data is protected by the currently
-selected method group, which might use per-method-group locks or other
-mechanisms. Also note that application data that is about to be
-privatized might not be allowed to be accessed by nontransactional code
-until privatization safety has been ensured; the details of this are
-handled by the current method group.
-
-   libitm-internal state is either protected by the serial lock or
-accessed through custom concurrent code. The latter applies to the
-public/shared part of a transaction object and most typical
-method-group-specific state.
-
-   The former category (protected by the serial lock) includes:
-   * The list of active threads that have used transactions.
-
-   * The tables that map functions to their transactional clones.
-
-   * The current selection of which method group to use.
-
-   * Some method-group-specific data, or invariants of this data. For
-     example, resetting a method group to its initial state is handled
-     by switching to the same method group, so the serial lock protects
-     such resetting as well.
-   In general, such state is immutable whenever there exists an active
-(non-serial) transaction. If there is no active transaction, a serial
-transaction (or a thread that is not currently executing a transaction
-but has acquired the serial lock) is allowed to modify this state (but
-must of course be careful to not surprise the current method group's
-implementation with such modifications).
-
-4.3.2 Lock acquisition order
-----------------------------
-
-To prevent deadlocks, locks acquisition must happen in a globally
-agreed-upon order. Note that this applies to other forms of blocking
-too, but does not necessarily apply to lock acquisitions that do not
-block (e.g., trylock() calls that do not get retried forever). Note
-that serial transactions are never return back to active transactions
-until the transaction has committed.  Likewise, active transactions
-stay active until they have committed.  Per-method-group locks are
-typically also not released before commit.
-
-   Lock acquisition / blocking rules:
-   * Transactions must become active or serial before they are allowed
-     to use method-group-specific locks or blocking (i.e., the serial
-     lock must be acquired before those other locks, either in serial
-     or nonserial mode).
-
-   * Any number of threads that do not currently run active
-     transactions can block while trying to get the serial lock in
-     exclusive mode. Note that active transactions must not block when
-     trying to upgrade to serial mode unless there is no other
-     transaction that is trying that (the latter is ensured by the
-     serial lock implementation.
-
-   * Method groups must prevent deadlocks on their locks. In
-     particular, they must also be prepared for another active
-     transaction that has acquired method-group-specific locks but is
-     blocked during an attempt to upgrade to being a serial
-     transaction. See below for details.
-
-   * Serial transactions can acquire method-group-specific locks
-     because there will be no other active nor serial transaction.
-
-
-   There is no single rule for per-method-group blocking because this
-depends on when a TM method might acquire locks. If no active
-transaction can upgrade to being a serial transaction after it has
-acquired per-method-group locks (e.g., when those locks are only
-acquired during an attempt to commit), then the TM method does not need
-to consider a potential deadlock due to serial mode.
-
-   If there can be upgrades to serial mode after the acquisition of
-per-method-group locks, then TM methods need to avoid those deadlocks:
-   * When upgrading to a serial transaction, after acquiring exclusive
-     rights to the serial lock but before waiting for concurrent active
-     transactions to finish (*note Serial lock implementation:
-     serial-lock-impl. for details), we have to wake up all active
-     transactions waiting on the upgrader's per-method-group locks.
-
-   * Active transactions blocking on per-method-group locks need to
-     check the serial lock and abort if there is a pending serial
-     transaction.
-
-   * Lost wake-ups have to be prevented (e.g., by changing a bit in each
-     per-method-group lock before doing the wake-up, and only blocking
-     on this lock using a futex if this bit is not group).
-
-   *TODO*: Can reuse serial lock for gl-*? And if we can, does it make
-sense to introduce further complexity in the serial lock? For gl-*, we
-can really only avoid an abort if we do -wb and -vbv.
-
-4.3.3 Serial lock implementation
---------------------------------
-
-The serial lock implementation is optimized towards assuming that serial
-transactions are infrequent and not the common case. However, the
-performance of entering serial mode can matter because when only few
-transactions are run concurrently or if there are few threads, then it
-can be efficient to run transactions serially.
-
-   The serial lock is similar to a multi-reader-single-writer lock in
-that there can be several active transactions but only one serial
-transaction. However, we do want to avoid contention (in the lock
-implementation) between active transactions, so we split up the reader
-side of the lock into per-transaction flags that are true iff the
-transaction is active. The exclusive writer side remains a shared
-single flag, which is acquired using a CAS, for example.  On the
-fast-path, the serial lock then works similar to Dekker's algorithm but
-with several reader flags that a serial transaction would have to check.
-A serial transaction thus requires a list of all threads with
-potentially active transactions; we can use the serial lock itself to
-protect this list (i.e., only threads that have acquired the serial
-lock can modify this list).
-
-   We want starvation-freedom for the serial lock to allow for using it
-to ensure progress for potentially starved transactions (*note Progress
-Guarantees: progress-guarantees. for details). However, this is
-currently not enforced by the implementation of the serial lock.
-
-   Here is pseudo-code for the read/write fast paths of acquiring the
-serial lock (read-to-write upgrade is similar to write_lock:
-     // read_lock:
-     tx->shared_state |= active;
-     __sync_synchronize(); // or STLD membar, or C++0x seq-cst fence
-     while (!serial_lock.exclusive)
-       if (spinning_for_too_long) goto slowpath;
-
-     // write_lock:
-     if (CAS(&serial_lock.exclusive, 0, this) != 0)
-       goto slowpath; // writer-writer contention
-     // need a membar here, but CAS already has full membar semantics
-     bool need_blocking = false;
-     for (t: all txns)
-       {
-         for (;t->shared_state & active;)
-           if (spinning_for_too_long) { need_blocking = true; break; }
-       }
-     if (need_blocking) goto slowpath;
-
-   Releasing a lock in this spin-lock version then just consists of
-resetting `tx->shared_state' to inactive or clearing
-`serial_lock.exclusive'.
-
-   However, we can't rely on a pure spinlock because we need to get the
-OS involved at some time (e.g., when there are more threads than CPUs
-to run on).  Therefore, the real implementation falls back to a
-blocking slow path, either based on pthread mutexes or Linux futexes.
-
-4.3.4 Reentrancy
-----------------
-
-libitm has to consider the following cases of reentrancy:
-   * Transaction calls unsafe code that starts a new transaction: The
-     outer transaction will become a serial transaction before
-     executing unsafe code.  Therefore, nesting within serial
-     transactions must work, even if the nested transaction is called
-     from within uninstrumented code.
-
-   * Transaction calls either a transactional wrapper or safe code,
-     which in turn starts a new transaction: It is not yet defined in
-     the specification whether this is allowed. Thus, it is undefined
-     whether libitm supports this.
-
-   * Code that starts new transactions might be called from within any
-     part of libitm: This kind of reentrancy would likely be rather
-     complex and can probably be avoided. Therefore, it is not
-     supported.
-
-
-4.3.5 Privatization safety
---------------------------
-
-Privatization safety is ensured by libitm using a quiescence-based
-approach.  Basically, a privatizing transaction waits until all
-concurrent active transactions will either have finished (are not
-active anymore) or operate on a sufficiently recent snapshot to not
-access the privatized data anymore. This happens after the privatizing
-transaction has stopped being an active transaction, so waiting for
-quiescence does not contribute to deadlocks.
-
-   In method groups that need to ensure publication safety explicitly,
-active transactions maintain a flag or timestamp in the public/shared
-part of the transaction descriptor. Before blocking, privatizers need
-to let the other transactions know that they should wake up the
-privatizer.
-
-   *TODO* Ho to implement the waiters? Should those flags be
-per-transaction or at a central place? We want to avoid one wake/wait
-call per active transactions, so we might want to use either a tree or
-combining to reduce the syscall overhead, or rather spin for a long
-amount of time instead of doing blocking. Also, it would be good if
-only the last transaction that the privatizer waits for would do the
-wake-up.
-
-4.3.6 Progress guarantees
--------------------------
-
-Transactions that do not make progress when using the current TM method
-will eventually try to execute in serial mode. Thus, the serial lock's
-progress guarantees determine the progress guarantees of the whole TM.
-Obviously, we at least need deadlock-freedom for the serial lock, but
-it would also be good to provide starvation-freedom (informally, all
-threads will finish executing a transaction eventually iff they get
-enough cycles).
-
-   However, the scheduling of transactions (e.g., thread scheduling by
-the OS) also affects the handling of progress guarantees by the TM.
-First, the TM can only guarantee deadlock-freedom if threads do not get
-stopped. Likewise, low-priority threads can starve if they do not get
-scheduled when other high-priority threads get those cycles instead.
-
-   If all threads get scheduled eventually, correct lock
-implementations will provide deadlock-freedom, but might not provide
-starvation-freedom. We can either enforce the latter in the TM's lock
-implementation, or assume that the scheduling is sufficiently random to
-yield a probabilistic guarantee that no thread will starve (because
-eventually, a transaction will encounter a scheduling that will allow
-it to run). This can indeed work well in practice but is not
-necessarily guaranteed to work (e.g., simple spin locks can be pretty
-efficient).
-
-   Because enforcing stronger progress guarantees in the TM has a
-higher runtime overhead, we focus on deadlock-freedom right now and
-assume that the threads will get scheduled eventually by the OS (but
-don't consider threads with different priorities). We should support
-starvation-freedom for serial transactions in the future. Everything
-beyond that is highly related to proper contention management across
-all of the TM (including with TM method to choose), and is future work.
-
-   *TODO* Handling thread priorities: We want to avoid priority
-inversion but it's unclear how often that actually matters in practice.
-Workloads that have threads with different priorities will likely also
-require lower latency or higher throughput for high-priority threads.
-Therefore, it probably makes not that much sense (except for eventual
-progress guarantees) to use priority inheritance until the TM has
-priority-aware contention management.
-
-
-File: libitm.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: Internals,  Up: Top
-
-GNU Free Documentation License
-******************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     The "publisher" means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     "Incorporate" means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is "eligible for relicensing" if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: libitm.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
-
-Index
-*****
-
- [index ]
-* Menu:
-
-* FDL, GNU Free Documentation License:   GNU Free Documentation License.
-                                                                (line 6)
-* Introduction:                          Top.                   (line 6)
-
-
-
-Tag Table:
-Node: Top1173
-Node: Enabling libitm2076
-Node: C/C++ Language Constructs for TM2470
-Node: The libitm ABI3950
-Ref: txn-code-properties7743
-Node: Internals18018
-Ref: serial-lock-impl28043
-Ref: progress-guarantees32793
-Node: GNU Free Documentation License35067
-Node: Index60208
-
-End Tag Table
diff -Naur gcc-4.8.1.orig/libjava/classpath/configure gcc-4.8.1/libjava/classpath/configure
--- gcc-4.8.1.orig/libjava/classpath/configure	2012-12-19 11:03:15.000000000 -0600
+++ gcc-4.8.1/libjava/classpath/configure	2013-06-20 08:12:44.938633000 -0500
@@ -18779,8 +18779,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -18806,7 +18807,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -18820,6 +18820,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -18876,8 +18933,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -18903,7 +18961,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -18917,6 +18974,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -19751,8 +19865,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -19778,7 +19893,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -19792,6 +19906,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -19848,8 +20019,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -19875,7 +20047,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -19889,6 +20060,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -19945,8 +20173,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -19972,7 +20201,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -19986,6 +20214,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20042,8 +20327,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20069,7 +20355,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20083,13 +20368,70 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
+done
+  done
+IFS=$as_save_IFS
 
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
   else
      PKG_CONFIG_MIN_VERSION=0.9.0
      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
@@ -20245,8 +20587,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20272,7 +20615,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20286,6 +20628,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20344,8 +20743,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20371,7 +20771,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20385,6 +20784,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20453,8 +20909,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20480,7 +20937,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20494,6 +20950,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20553,8 +21066,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20580,7 +21094,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20594,6 +21107,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20653,8 +21223,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20680,7 +21251,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20694,6 +21264,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -20756,8 +21383,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20783,7 +21411,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20797,22 +21424,79 @@
 fi
 
 
-  fi
-
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-  else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk-2.0 >= 2.8" >&5
-$as_echo_n "checking for gdk-2.0 >= 2.8... " >&6; }
-
-        if $PKG_CONFIG --exists "gdk-2.0 >= 2.8" ; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdk-2.0 >= 2.8" >&5
+$as_echo_n "checking for gdk-2.0 >= 2.8... " >&6; }
+
+        if $PKG_CONFIG --exists "gdk-2.0 >= 2.8" ; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
             succeeded=yes
 
             { $as_echo "$as_me:${as_lineno-$LINENO}: checking GDK_CFLAGS" >&5
@@ -20863,8 +21547,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -20890,7 +21575,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -20904,6 +21588,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21242,8 +21983,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21269,7 +22011,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21283,6 +22024,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21340,8 +22138,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21367,7 +22166,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21381,6 +22179,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21439,8 +22294,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21466,7 +22322,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21480,6 +22335,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21538,8 +22450,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21565,7 +22478,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21579,6 +22491,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21637,8 +22606,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21664,7 +22634,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21678,6 +22647,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21736,8 +22762,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21763,7 +22790,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21777,6 +22803,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21835,8 +22918,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21862,7 +22946,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21876,6 +22959,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -21937,8 +23077,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -21964,7 +23105,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -21978,6 +23118,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -22034,8 +23231,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -22061,7 +23259,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -22075,6 +23272,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -24046,7 +25300,7 @@
 JAVA_TEST=Object.java
 CLASS_TEST=Object.class
 cat << \EOF > $JAVA_TEST
-/* #line 24049 "configure" */
+/* #line 25303 "configure" */
 package java.lang;
 
 public class Object
@@ -24139,7 +25393,7 @@
 if uudecode$EXEEXT Test.uue; then
         ac_cv_prog_uudecode_base64=yes
 else
-        echo "configure: 24142: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
+        echo "configure: 25396: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
         echo "configure: failed file was:" >&5
         cat Test.uue >&5
         ac_cv_prog_uudecode_base64=no
@@ -24167,7 +25421,7 @@
 CLASS_TEST=Test.class
 TEST=Test
 cat << \EOF > $JAVA_TEST
-/* [#]line 24170 "configure" */
+/* [#]line 25424 "configure" */
 public class Test {
 public static void main (String args[]) {
         System.exit (0);
@@ -24375,7 +25629,7 @@
   JAVA_TEST=Test.java
   CLASS_TEST=Test.class
   cat << \EOF > $JAVA_TEST
-  /* #line 24378 "configure" */
+  /* #line 25632 "configure" */
   public class Test
   {
     public static void main(String args)
diff -Naur gcc-4.8.1.orig/libjava/classpath/m4/pkg.m4 gcc-4.8.1/libjava/classpath/m4/pkg.m4
--- gcc-4.8.1.orig/libjava/classpath/m4/pkg.m4	2005-09-23 12:31:48.000000000 -0500
+++ gcc-4.8.1/libjava/classpath/m4/pkg.m4	2013-06-20 08:12:44.938633000 -0500
@@ -6,7 +6,7 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+    AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
diff -Naur gcc-4.8.1.orig/libjava/configure gcc-4.8.1/libjava/configure
--- gcc-4.8.1.orig/libjava/configure	2012-12-12 07:40:15.000000000 -0600
+++ gcc-4.8.1/libjava/configure	2013-06-20 08:12:44.938633000 -0500
@@ -3206,7 +3206,7 @@
     -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
     -I\$(top_srcdir)/../libstdc++-v3/libsupc++"
   LIBSTDCXX_RAW_CXX_LDFLAGS="\
-    -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
+    \$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
 
 
 
@@ -22806,8 +22806,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -22833,7 +22834,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -22847,6 +22847,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -22906,8 +22963,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -22933,7 +22991,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -22947,6 +23004,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
@@ -23006,8 +23120,9 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
@@ -23033,7 +23148,6 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -23047,6 +23161,63 @@
 fi
 
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG="no"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
diff -Naur gcc-4.8.1.orig/libjava/pkg.m4 gcc-4.8.1/libjava/pkg.m4
--- gcc-4.8.1.orig/libjava/pkg.m4	2004-01-30 16:01:11.000000000 -0600
+++ gcc-4.8.1/libjava/pkg.m4	2013-06-20 08:12:44.938633000 -0500
@@ -6,7 +6,7 @@
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+    AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
   fi
 
   if test "$PKG_CONFIG" = "no" ; then
diff -Naur gcc-4.8.1.orig/libobjc/exception.c gcc-4.8.1/libobjc/exception.c
--- gcc-4.8.1.orig/libobjc/exception.c	2013-02-03 05:16:21.000000000 -0600
+++ gcc-4.8.1/libobjc/exception.c	2013-07-04 04:04:47.837967000 -0500
@@ -202,7 +202,7 @@
 #ifdef SJLJ_EXCEPTIONS
 #define PERSONALITY_FUNCTION	__gnu_objc_personality_sj0
 #define __builtin_eh_return_data_regno(x) x
-#elif defined(__SEH__)
+#elif defined(__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
 #define PERSONALITY_FUNCTION	__gnu_objc_personality_imp
 #else
 #define PERSONALITY_FUNCTION	__gnu_objc_personality_v0
@@ -227,7 +227,7 @@
 
 #define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
 
-#ifdef __SEH__
+#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
 static
 #endif
 _Unwind_Reason_Code
@@ -524,7 +524,7 @@
   abort ();
 }
 
-#ifdef __SEH__
+#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
 EXCEPTION_DISPOSITION
 __gnu_objc_personality_seh0 (PEXCEPTION_RECORD ms_exc, void *this_frame,
 			     PCONTEXT ms_orig_context,
@@ -533,4 +533,4 @@
   return _GCC_specific_handler (ms_exc, this_frame, ms_orig_context,
 				ms_disp, __gnu_objc_personality_imp);
 }
-#endif /* SEH */
+#endif
diff -Naur gcc-4.8.1.orig/libquadmath/libquadmath.info gcc-4.8.1/libquadmath/libquadmath.info
--- gcc-4.8.1.orig/libquadmath/libquadmath.info	2013-05-31 05:01:34.000000000 -0500
+++ gcc-4.8.1/libquadmath/libquadmath.info	1969-12-31 18:00:00.000000000 -0600
@@ -1,924 +0,0 @@
-This is libquadmath.info, produced by makeinfo version 4.13 from
-/d/gcc-4.8.1/gcc-4.8.1/libquadmath/libquadmath.texi.
-
-Copyright (C) 2010-2013 Free Software Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.2 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.
-
-INFO-DIR-SECTION GNU Libraries
-START-INFO-DIR-ENTRY
-* libquadmath: (libquadmath).                  GCC Quad-Precision Math Library
-END-INFO-DIR-ENTRY
-
-   This manual documents the GCC Quad-Precision Math Library API.
-
-   Published by the Free Software Foundation 51 Franklin Street, Fifth
-Floor Boston, MA 02110-1301 USA
-
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.2 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
-     and modify this GNU manual.
-
-
-File: libquadmath.info,  Node: Top,  Next: Typedef and constants,  Up: (dir)
-
-Introduction
-************
-
-This manual documents the usage of libquadmath, the GCC Quad-Precision
-Math Library Application Programming Interface (API).
-
-* Menu:
-
-* Typedef and constants::      Defined data types and constants
-* Math Library Routines::      The Libquadmath math runtime application
-                               programming interface.
-* I/O Library Routines::       The Libquadmath I/O runtime application
-                               programming interface.
-* GNU Free Documentation License::
-                               How you can copy and share this manual.
-* Reporting Bugs::             How to report bugs in GCC Libquadmath.
-
-
-File: libquadmath.info,  Node: Typedef and constants,  Next: Math Library Routines,  Prev: Top,  Up: Top
-
-1 Typedef and constants
-***********************
-
-The following data type has been defined via `typedef'.
-
-`__complex128': `__float128'-based complex number
-
-   The following macros are defined, which give the numeric limits of
-the `__float128' data type.
-
-`FLT128_MAX': largest finite number
-
-`FLT128_MIN': smallest positive number with full precision
-
-`FLT128_EPSILON': difference between 1 and the next larger
-     representable number
-
-`FLT128_DENORM_MIN': smallest positive denormalized number
-
-`FLT128_MANT_DIG': number of digits in the mantissa (bit precision)
-
-`FLT128_MIN_EXP': maximal negative exponent
-
-`FLT128_MAX_EXP': maximal positive exponent
-
-`FLT128_DIG': number of decimal digits in the mantissa
-
-`FLT128_MIN_10_EXP': maximal negative decimal exponent
-
-`FLT128_MAX_10_EXP': maximal positive decimal exponent
-
-   The following mathematical constants of type `__float128' are
-defined.
-
-`M_Eq': the constant e (Euler's number)
-
-`M_LOG2Eq': binary logarithm of 2
-
-`M_LOG10Eq': common, decimal logarithm of 2
-
-`M_LN2q': natural logarithm of 2
-
-`M_LN10q': natural logarithm of 10
-
-`M_PIq': pi
-
-`M_PI_2q': pi divided by two
-
-`M_PI_4q': pi divided by four
-
-`M_1_PIq': one over pi
-
-`M_2_PIq': one over two pi
-
-`M_2_SQRTPIq': two over square root of pi
-
-`M_SQRT2q': square root of 2
-
-`M_SQRT1_2q': one over square root of 2
-
-
-File: libquadmath.info,  Node: Math Library Routines,  Next: I/O Library Routines,  Prev: Typedef and constants,  Up: Top
-
-2 Math Library Routines
-***********************
-
-The following mathematical functions are available:
-
-`acosq': arc cosine function
-
-`acoshq': inverse hyperbolic cosine function
-
-`asinq': arc sine function
-
-`asinhq': inverse hyperbolic sine function
-
-`atanq': arc tangent function
-
-`atanhq': inverse hyperbolic tangent function
-
-`atan2q': arc tangent function
-
-`cbrtq': cube root function
-
-`ceilq': ceiling value function
-
-`copysignq': copy sign of a number
-
-`coshq': hyperbolic cosine function
-
-`cosq': cosine function
-
-`erfq': error function
-
-`erfcq': complementary error function
-
-`expq': exponential function
-
-`expm1q': exponential minus 1 function
-
-`fabsq': absolute value function
-
-`fdimq': positive difference function
-
-`finiteq': check finiteness of value
-
-`floorq': floor value function
-
-`fmaq': fused multiply and add
-
-`fmaxq': determine maximum of two values
-
-`fminq': determine minimum of two values
-
-`fmodq': remainder value function
-
-`frexpq': extract mantissa and exponent
-
-`hypotq': Eucledian distance function
-
-`ilogbq': get exponent of the value
-
-`isinfq': check for infinity
-
-`isnanq': check for not a number
-
-`j0q': Bessel function of the first kind, first order
-
-`j1q': Bessel function of the first kind, second order
-
-`jnq': Bessel function of the first kind, N-th order
-
-`ldexpq': load exponent of the value
-
-`lgammaq': logarithmic gamma function
-
-`llrintq': round to nearest integer value
-
-`llroundq': round to nearest integer value away from zero
-
-`logq': natural logarithm function
-
-`log10q': base 10 logarithm function
-
-`log1pq': compute natural logarithm of the value plus one
-
-`log2q': base 2 logarithm function
-
-`lrintq': round to nearest integer value
-
-`lroundq': round to nearest integer value away from zero
-
-`modfq': decompose the floating-point number
-
-`nanq': return quiet NaN
-
-`nearbyintq': round to nearest integer
-
-`nextafterq': next representable floating-point number
-
-`powq': power function
-
-`remainderq': remainder function
-
-`remquoq': remainder and part of quotient
-
-`rintq': round-to-nearest integral value
-
-`roundq': round-to-nearest integral value, return `__float128'
-
-`scalblnq': compute exponent using `FLT_RADIX'
-
-`scalbnq': compute exponent using `FLT_RADIX'
-
-`signbitq': return sign bit
-
-`sincosq': calculate sine and cosine simulataneously
-
-`sinhq': hyperbolic sine function
-
-`sinq': sine function
-
-`sqrtq': square root function
-
-`tanq': tangent function
-
-`tanhq': hyperbolic tangent function
-
-`tgammaq': true gamma function
-
-`truncq': round to integer, towards zero
-
-`y0q': Bessel function of the second kind, first order
-
-`y1q': Bessel function of the second kind, second order
-
-`ynq': Bessel function of the second kind, N-th order
-
-`cabsq' complex absolute value function
-
-`cargq': calculate the argument
-
-`cimagq' imaginary part of complex number
-
-`crealq': real part of complex number
-
-`cacoshq': complex arc hyperbolic cosine function
-
-`cacosq': complex arc cosine function
-
-`casinhq': complex arc hyperbolic sine function
-
-`casinq': complex arc sine function
-
-`catanhq': complex arc hyperbolic tangent function
-
-`catanq': complex arc tangent function
-
-`ccosq' complex cosine function:
-
-`ccoshq': complex hyperbolic cosine function
-
-`cexpq': complex exponential function
-
-`cexpiq': computes the exponential function of "i" times a
-     real value
-
-`clogq': complex natural logarithm
-
-`clog10q': complex base 10 logarithm
-
-`conjq': complex conjugate function
-
-`cpowq': complex power function
-
-`cprojq': project into Riemann Sphere
-
-`csinq': complex sine function
-
-`csinhq': complex hyperbolic sine function
-
-`csqrtq': complex square root
-
-`ctanq': complex tangent function
-
-`ctanhq': complex hyperbolic tangent function
-
-
-File: libquadmath.info,  Node: I/O Library Routines,  Next: GNU Free Documentation License,  Prev: Math Library Routines,  Up: Top
-
-3 I/O Library Routines
-**********************
-
-* Menu:
-
-* `strtoflt128':          strtoflt128,          Convert from string
-* `quadmath_snprintf':    quadmath_snprintf,    Convert to string
-
-
-File: libquadmath.info,  Node: strtoflt128,  Next: quadmath_snprintf,  Up: I/O Library Routines
-
-3.1 `strtoflt128' -- Convert from string
-========================================
-
-The function `strtoflt128' converts a string into a `__float128' number.
-
-Syntax
-     `__float128 strtoflt128 (const char *s, char **sp)'
-
-_Arguments_:
-     S          input string
-     SP         the address of the next character in the string
-
-     The argument SP contains, if not `NULL', the address of the next
-     character following the parts of the string, which have been read.
-
-Example
-          #include <quadmath.h>
-
-          int main ()
-          {
-            __float128 r;
-
-            r = strtoflt128 ("1.2345678", NULL);
-
-            return 0;
-          }
-
-
-File: libquadmath.info,  Node: quadmath_snprintf,  Prev: strtoflt128,  Up: I/O Library Routines
-
-3.2 `quadmath_snprintf' -- Convert to string
-============================================
-
-The function `quadmath_snprintf' converts a `__float128' floating-point
-number into a string.  It is a specialized alternative to `snprintf',
-where the format string is restricted to a single conversion specifier
-with `Q' modifier and conversion specifier `e', `E', `f', `F', `g',
-`G', `a' or `A', with no extra characters before or after the
-conversion specifier.  The `%m$' or `*m$' style must not be used in the
-format.
-
-Syntax
-     `int quadmath_snprintf (char *s, size_t size, const char *format,
-     ...)'
-
-_Arguments_:
-     S          output string
-     SIZE       byte size of the string, including tailing NUL
-     FORMAT     conversion specifier string
-
-Note
-     On some targets when supported by the C library hooks are installed
-     for `printf' family of functions, so that `printf ("%Qe", 1.2Q);'
-     etc. works too.
-
-Example
-          #include <quadmath.h>
-          #include <stdlib.h>
-          #include <stdio.h>
-
-          int main ()
-          {
-            __float128 r;
-            int prec = 20;
-            int width = 46;
-            char buf[128];
-
-            r = 2.0q;
-            r = sqrtq (r);
-            int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r);
-            if ((size_t) n < sizeof buf)
-              printf ("%s\n", buf);
-              /* Prints: +1.41421356237309504880e+00 */
-            quadmath_snprintf (buf, sizeof buf, "%Qa", r);
-            if ((size_t) n < sizeof buf)
-              printf ("%s\n", buf);
-              /* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0 */
-            n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r);
-            if (n > -1)
-              {
-                char *str = malloc (n + 1);
-                if (str)
-                  {
-                    quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r);
-                    printf ("%s\n", str);
-                    /* Prints: +1.41421356237309504880e+00 */
-                  }
-                free (str);
-              }
-            return 0;
-          }
-
-
-
-File: libquadmath.info,  Node: GNU Free Documentation License,  Next: Reporting Bugs,  Prev: I/O Library Routines,  Up: Top
-
-GNU Free Documentation License
-******************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     The "publisher" means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     "Incorporate" means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is "eligible for relicensing" if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: libquadmath.info,  Node: Reporting Bugs,  Prev: GNU Free Documentation License,  Up: Top
-
-4 Reporting Bugs
-****************
-
-Bugs in the GCC Quad-Precision Math Library implementation should be
-reported via `http://gcc.gnu.org/bugs.html'.
-
-
-
-Tag Table:
-Node: Top1670
-Node: Typedef and constants2404
-Node: Math Library Routines3844
-Node: I/O Library Routines7649
-Node: strtoflt1287974
-Node: quadmath_snprintf8732
-Node: GNU Free Documentation License10940
-Node: Reporting Bugs36106
-
-End Tag Table
diff -Naur gcc-4.8.1.orig/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
--- gcc-4.8.1.orig/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt	2012-02-10 02:15:37.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt	2013-06-07 04:52:21.201975000 -0500
@@ -543,6 +543,7 @@
 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE8__do_putES4_bRSt8ios_basewd@@GLIBCXX_LDBL_3.4
 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@@GLIBCXX_LDBL_3.4
 FUNC:_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE@@GLIBCXX_LDBL_3.4
+FUNC:_ZNKSt17bad_function_call4whatEv@@GLIBCXX_3.4.18
 FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
 FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
 FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
@@ -732,6 +733,8 @@
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
+FUNC:_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEm@@GLIBCXX_3.4.18
+FUNC:_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm@@GLIBCXX_3.4.18
 FUNC:_ZNKSt8bad_cast4whatEv@@GLIBCXX_3.4.9
 FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
 FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
@@ -1353,6 +1356,7 @@
 FUNC:_ZNSt11regex_errorD0Ev@@GLIBCXX_3.4.15
 FUNC:_ZNSt11regex_errorD1Ev@@GLIBCXX_3.4.15
 FUNC:_ZNSt11regex_errorD2Ev@@GLIBCXX_3.4.15
+FUNC:_ZNSt11this_thread11__sleep_forENSt6chrono8durationIlSt5ratioILl1ELl1EEEENS1_IlS2_ILl1ELl1000000000EEEE@@GLIBCXX_3.4.18
 FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
 FUNC:_ZNSt12__basic_fileIcE4fileEv@@GLIBCXX_3.4.1
 FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
@@ -1635,6 +1639,11 @@
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
+FUNC:_ZNSt13random_device14_M_init_pretr1ERKSs@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device16_M_getval_pretr1Ev@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device7_M_finiEv@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device7_M_initERKSs@@GLIBCXX_3.4.18
+FUNC:_ZNSt13random_device9_M_getvalEv@@GLIBCXX_3.4.18
 FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
 FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
 FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
@@ -2119,6 +2128,8 @@
 FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
 FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
 FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
 FUNC:_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_@@GLIBCXX_3.4
 FUNC:_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_@@GLIBCXX_3.4
 FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
@@ -2678,6 +2689,7 @@
 FUNC:__cxa_guard_release@@CXXABI_1.3
 FUNC:__cxa_pure_virtual@@CXXABI_1.3
 FUNC:__cxa_rethrow@@CXXABI_1.3
+FUNC:__cxa_thread_atexit@@CXXABI_1.3.7
 FUNC:__cxa_throw@@CXXABI_1.3
 FUNC:__cxa_tm_cleanup@@CXXABI_TM_1
 FUNC:__cxa_vec_cctor@@CXXABI_1.3
@@ -2724,6 +2736,7 @@
 OBJECT:0:CXXABI_1.3.4
 OBJECT:0:CXXABI_1.3.5
 OBJECT:0:CXXABI_1.3.6
+OBJECT:0:CXXABI_1.3.7
 OBJECT:0:CXXABI_LDBL_1.3
 OBJECT:0:CXXABI_TM_1
 OBJECT:0:GLIBCXX_3.4
@@ -2736,6 +2749,8 @@
 OBJECT:0:GLIBCXX_3.4.15
 OBJECT:0:GLIBCXX_3.4.16
 OBJECT:0:GLIBCXX_3.4.17
+OBJECT:0:GLIBCXX_3.4.18
+OBJECT:0:GLIBCXX_3.4.19
 OBJECT:0:GLIBCXX_3.4.2
 OBJECT:0:GLIBCXX_3.4.3
 OBJECT:0:GLIBCXX_3.4.4
@@ -3193,6 +3208,8 @@
 OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
 OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
 OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
 OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
 OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
 OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
diff -Naur gcc-4.8.1.orig/libstdc++-v3/configure.host gcc-4.8.1/libstdc++-v3/configure.host
--- gcc-4.8.1.orig/libstdc++-v3/configure.host	2012-10-15 16:12:23.000000000 -0500
+++ gcc-4.8.1/libstdc++-v3/configure.host	2013-06-18 20:18:38.348158000 -0500
@@ -330,7 +330,7 @@
       mips64*)
 	abi_baseline_pair=mips64-linux-gnu
 	;;
-      powerpc64)
+      powerpc64*)
         abi_baseline_pair=powerpc64-linux-gnu
         ;;
       s390)
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/c++config gcc-4.8.1/libstdc++-v3/include/bits/c++config
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/c++config	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/c++config	2013-06-12 15:44:17.319811000 -0500
@@ -84,6 +84,12 @@
 # define _GLIBCXX_DEPRECATED
 #endif
 
+// Macros for ABI tag attributes.
+#ifndef _GLIBCXX_ABI_TAG_CXX11
+# define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11")))
+#endif
+
+
 #if __cplusplus
 
 // Macro for constexpr, to support in mixed 03/0x mode.
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.h gcc-4.8.1/libstdc++-v3/include/bits/random.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/random.h	2013-02-04 13:28:40.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/random.h	2013-08-07 07:13:24.193280000 -0500
@@ -2178,7 +2178,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
@@ -3011,7 +3011,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
@@ -3428,7 +3428,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
@@ -3978,7 +3978,8 @@
 
       template<typename _UniformRandomNumberGenerator>
 	result_type
-	_M_waiting(_UniformRandomNumberGenerator& __urng, _IntType __t);
+	_M_waiting(_UniformRandomNumberGenerator& __urng,
+		   _IntType __t, double __q);
 
       param_type _M_param;
 
@@ -5135,7 +5136,7 @@
        */
       result_type
       min() const
-      { return std::numeric_limits<result_type>::min(); }
+      { return std::numeric_limits<result_type>::lowest(); }
 
       /**
        * @brief Returns the least upper bound value of the distribution.
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/random.tcc gcc-4.8.1/libstdc++-v3/include/bits/random.tcc
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/random.tcc	2013-02-12 04:26:54.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/random.tcc	2013-06-22 16:07:22.456114000 -0500
@@ -1648,7 +1648,8 @@
     template<typename _UniformRandomNumberGenerator>
       typename binomial_distribution<_IntType>::result_type
       binomial_distribution<_IntType>::
-      _M_waiting(_UniformRandomNumberGenerator& __urng, _IntType __t)
+      _M_waiting(_UniformRandomNumberGenerator& __urng,
+		 _IntType __t, double __q)
       {
 	_IntType __x = 0;
 	double __sum = 0.0;
@@ -1663,7 +1664,7 @@
 	    __sum += __e / (__t - __x);
 	    __x += 1;
 	  }
-	while (__sum <= _M_param._M_q);
+	while (__sum <= __q);
 
 	return __x - 1;
       }
@@ -1784,12 +1785,13 @@
 
 	    __x += __np + __naf;
 
-	    const _IntType __z = _M_waiting(__urng, __t - _IntType(__x));
+	    const _IntType __z = _M_waiting(__urng, __t - _IntType(__x),
+					    __param._M_q);
 	    __ret = _IntType(__x) + __z;
 	  }
 	else
 #endif
-	  __ret = _M_waiting(__urng, __t);
+	  __ret = _M_waiting(__urng, __t, __param._M_q);
 
 	if (__p12 != __p)
 	  __ret = __t - __ret;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_bvector.h gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_bvector.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_bvector.h	2013-07-31 09:36:35.897570000 -0500
@@ -520,7 +520,7 @@
     typedef _Bvector_base<_Alloc>			 _Base;
 
 #if __cplusplus >= 201103L
-    template<typename> friend class hash;
+    template<typename> friend struct hash;
 #endif
 
   public:
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_map.h gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_map.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_map.h	2013-06-12 15:44:17.319811000 -0500
@@ -690,7 +690,8 @@
       erase(const_iterator __position)
       { return _M_t.erase(__position); }
 
-      // LWG 2059.
+      // LWG 2059
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       { return _M_t.erase(__position); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multimap.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multimap.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multimap.h	2013-06-12 15:44:17.319811000 -0500
@@ -596,6 +596,7 @@
       { return _M_t.erase(__position); }
 
       // LWG 2059.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       { return _M_t.erase(__position); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multiset.h gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_multiset.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_multiset.h	2013-06-12 15:44:17.319811000 -0500
@@ -532,6 +532,7 @@
        *  not touched in any way.  Managing the pointer is the user's
        *  responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       { return _M_t.erase(__position); }
@@ -583,6 +584,7 @@
        *  touched in any way.  Managing the pointer is the user's
        *  responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       { return _M_t.erase(__first, __last); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_set.h gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_set.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_set.h	2013-06-12 15:44:17.319811000 -0500
@@ -546,6 +546,7 @@
        *  touched in any way.  Managing the pointer is the user's
        *  responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       { return _M_t.erase(__position); }
@@ -597,6 +598,7 @@
        *  the element is itself a pointer, the pointed-to memory is not touched
        *  in any way.  Managing the pointer is the user's responsibility.
        */
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       { return _M_t.erase(__first, __last); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_tree.h gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/stl_tree.h	2013-03-14 18:28:11.000000000 -0500
+++ gcc-4.8.1/libstdc++-v3/include/bits/stl_tree.h	2013-06-12 15:44:17.319811000 -0500
@@ -336,21 +336,21 @@
               _Node_allocator;
 
     protected:
-      typedef _Rb_tree_node_base* _Base_ptr;
-      typedef const _Rb_tree_node_base* _Const_Base_ptr;
+      typedef _Rb_tree_node_base* 		_Base_ptr;
+      typedef const _Rb_tree_node_base* 	_Const_Base_ptr;
 
     public:
-      typedef _Key key_type;
-      typedef _Val value_type;
-      typedef value_type* pointer;
-      typedef const value_type* const_pointer;
-      typedef value_type& reference;
-      typedef const value_type& const_reference;
-      typedef _Rb_tree_node<_Val>* _Link_type;
-      typedef const _Rb_tree_node<_Val>* _Const_Link_type;
-      typedef size_t size_type;
-      typedef ptrdiff_t difference_type;
-      typedef _Alloc allocator_type;
+      typedef _Key 				key_type;
+      typedef _Val 				value_type;
+      typedef value_type* 			pointer;
+      typedef const value_type* 		const_pointer;
+      typedef value_type& 			reference;
+      typedef const value_type& 		const_reference;
+      typedef _Rb_tree_node<_Val>* 		_Link_type;
+      typedef const _Rb_tree_node<_Val>*	_Const_Link_type;
+      typedef size_t 				size_type;
+      typedef ptrdiff_t 			difference_type;
+      typedef _Alloc 				allocator_type;
 
       _Node_allocator&
       _M_get_Node_allocator() _GLIBCXX_NOEXCEPT
@@ -800,6 +800,7 @@
 #if __cplusplus >= 201103L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
       // DR 130. Associative erase should return an iterator.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       {
@@ -810,6 +811,7 @@
       }
 
       // LWG 2059.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       {
@@ -833,6 +835,7 @@
 #if __cplusplus >= 201103L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
       // DR 130. Associative erase should return an iterator.
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       {
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/bits/unordered_map.h gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h
--- gcc-4.8.1.orig/libstdc++-v3/include/bits/unordered_map.h	2013-01-16 17:56:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/bits/unordered_map.h	2013-06-14 18:38:33.460951000 -0500
@@ -367,7 +367,7 @@
 						    _Pair&&>::value>::type>
 	std::pair<iterator, bool>
 	insert(_Pair&& __x)
-	{ return _M_h.insert(std::move(__x)); }
+        { return _M_h.insert(std::forward<_Pair>(__x)); }
       //@}
 
       //@{
@@ -401,7 +401,7 @@
 						    _Pair&&>::value>::type>
 	iterator
 	insert(const_iterator __hint, _Pair&& __x)
-	{ return _M_h.insert(__hint, std::move(__x)); }
+	{ return _M_h.insert(__hint, std::forward<_Pair>(__x)); }
       //@}
 
       /**
@@ -1032,7 +1032,7 @@
 						    _Pair&&>::value>::type>
 	iterator
 	insert(_Pair&& __x)
-	{ return _M_h.insert(std::move(__x)); }
+        { return _M_h.insert(std::forward<_Pair>(__x)); }
       //@}
 
       //@{
@@ -1064,7 +1064,7 @@
 						    _Pair&&>::value>::type>
 	iterator
 	insert(const_iterator __hint, _Pair&& __x)
-	{ return _M_h.insert(__hint, std::move(__x)); }
+        { return _M_h.insert(__hint, std::forward<_Pair>(__x)); }
       //@}
 
       /**
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/atomicity.h gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h
--- gcc-4.8.1.orig/libstdc++-v3/include/ext/atomicity.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/ext/atomicity.h	2013-08-07 09:26:29.899636000 -0500
@@ -29,6 +29,8 @@
 #ifndef _GLIBCXX_ATOMICITY_H
 #define _GLIBCXX_ATOMICITY_H	1
 
+#pragma GCC system_header
+
 #include <bits/c++config.h>
 #include <bits/gthr.h>
 #include <bits/atomic_word.h>
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/ext/random gcc-4.8.1/libstdc++-v3/include/ext/random
--- gcc-4.8.1.orig/libstdc++-v3/include/ext/random	2013-03-04 10:24:58.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/ext/random	2013-08-07 07:13:24.193280000 -0500
@@ -791,7 +791,7 @@
       result_type
       min() const
       { result_type __res;
-	__res.fill(std::numeric_limits<_RealType>::min());
+	__res.fill(std::numeric_limits<_RealType>::lowest());
 	return __res; }
 
       /**
@@ -2848,7 +2848,7 @@
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace __gnu_cxx
 
-#include "opt_random.h"
+#include "ext/opt_random.h"
 #include "random.tcc"
 
 #endif // _GLIBCXX_USE_C99_STDINT_TR1
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.am gcc-4.8.1/libstdc++-v3/include/Makefile.am
--- gcc-4.8.1.orig/libstdc++-v3/include/Makefile.am	2013-05-08 14:10:42.000000000 -0500
+++ gcc-4.8.1/libstdc++-v3/include/Makefile.am	2013-07-31 14:29:13.979450000 -0500
@@ -172,8 +172,7 @@
 	${bits_srcdir}/valarray_array.tcc \
 	${bits_srcdir}/valarray_before.h \
 	${bits_srcdir}/valarray_after.h \
-	${bits_srcdir}/vector.tcc \
-	${bits_host_headers}
+	${bits_srcdir}/vector.tcc
 
 bits_host_headers = \
 	${glibcxx_srcdir}/${CPU_OPT_BITS_RANDOM}
@@ -535,8 +534,7 @@
 	${ext_srcdir}/vstring.tcc \
 	${ext_srcdir}/vstring_fwd.h \
 	${ext_srcdir}/vstring_util.h \
-	${ext_compat_headers} \
-	${ext_host_headers}
+	${ext_compat_headers}
 
 ext_compat_headers = \
 	${backward_srcdir}/hash_set \
@@ -787,6 +785,7 @@
 profile_headers = \
 	${profile_srcdir}/array \
 	${profile_srcdir}/base.h \
+	${profile_srcdir}/unordered_base.h \
 	${profile_srcdir}/unordered_map \
 	${profile_srcdir}/unordered_set \
 	${profile_srcdir}/vector \
@@ -1048,13 +1047,14 @@
 
 stamp-${host_alias}:
 	@-mkdir -p ${host_builddir}
+	@-mkdir -p ${host_builddir}/../ext
 	@$(STAMP) stamp-${host_alias}
 
 # Host includes static.
 # XXX Missing dependency info for {host_headers_extra}
-stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
+stamp-host: ${host_headers} ${bits_host_headers} ${ext_host_headers} ${host_headers_noinst} stamp-${host_alias}
 	@cd ${host_builddir} && {\
-	  $(LN_S) ${host_headers} . || true ;\
+	  $(LN_S) ${host_headers} ${bits_host_headers} . || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CSTDIO_H) c++io.h || true ;\
@@ -1064,6 +1064,9 @@
 	  $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true;\
 	} 2>/dev/null
+	@cd ${host_builddir}/../ext && {\
+	  $(LN_S) ${ext_host_headers} . || true ;\
+	} 2>/dev/null
 	$(STAMP) stamp-host
 
 # Host includes dynamic.
@@ -1290,9 +1293,12 @@
 	for file in ${profile_impl_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${profile_impl_builddir}; done
 	$(mkinstalldirs) $(DESTDIR)${host_installdir}
-	for file in ${host_headers} ${host_headers_extra} \
+	for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \
 	 ${thread_host_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
+	$(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext
+	for file in ${ext_host_headers}; do \
+	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done
 
 # By adding these files here, automake will remove them for 'make clean'
 CLEANFILES = ${pch_output} ${pch_output_anchors} stamp-host
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/Makefile.in gcc-4.8.1/libstdc++-v3/include/Makefile.in
--- gcc-4.8.1.orig/libstdc++-v3/include/Makefile.in	2013-05-08 14:10:42.000000000 -0500
+++ gcc-4.8.1/libstdc++-v3/include/Makefile.in	2013-07-31 14:29:13.979450000 -0500
@@ -434,8 +434,7 @@
 	${bits_srcdir}/valarray_array.tcc \
 	${bits_srcdir}/valarray_before.h \
 	${bits_srcdir}/valarray_after.h \
-	${bits_srcdir}/vector.tcc \
-	${bits_host_headers}
+	${bits_srcdir}/vector.tcc
 
 bits_host_headers = \
 	${glibcxx_srcdir}/${CPU_OPT_BITS_RANDOM}
@@ -795,8 +794,7 @@
 	${ext_srcdir}/vstring.tcc \
 	${ext_srcdir}/vstring_fwd.h \
 	${ext_srcdir}/vstring_util.h \
-	${ext_compat_headers} \
-	${ext_host_headers}
+	${ext_compat_headers}
 
 ext_compat_headers = \
 	${backward_srcdir}/hash_set \
@@ -1044,6 +1042,7 @@
 profile_headers = \
 	${profile_srcdir}/array \
 	${profile_srcdir}/base.h \
+	${profile_srcdir}/unordered_base.h \
 	${profile_srcdir}/unordered_map \
 	${profile_srcdir}/unordered_set \
 	${profile_srcdir}/vector \
@@ -1461,13 +1460,14 @@
 
 stamp-${host_alias}:
 	@-mkdir -p ${host_builddir}
+	@-mkdir -p ${host_builddir}/../ext
 	@$(STAMP) stamp-${host_alias}
 
 # Host includes static.
 # XXX Missing dependency info for {host_headers_extra}
-stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
+stamp-host: ${host_headers} ${bits_host_headers} ${ext_host_headers} ${host_headers_noinst} stamp-${host_alias}
 	@cd ${host_builddir} && {\
-	  $(LN_S) ${host_headers} . || true ;\
+	  $(LN_S) ${host_headers} ${bits_host_headers} . || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CSTDIO_H) c++io.h || true ;\
@@ -1477,6 +1477,9 @@
 	  $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\
 	  $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true;\
 	} 2>/dev/null
+	@cd ${host_builddir}/../ext && {\
+	  $(LN_S) ${ext_host_headers} . || true ;\
+	} 2>/dev/null
 	$(STAMP) stamp-host
 
 # Host includes dynamic.
@@ -1688,9 +1691,12 @@
 	for file in ${profile_impl_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${profile_impl_builddir}; done
 	$(mkinstalldirs) $(DESTDIR)${host_installdir}
-	for file in ${host_headers} ${host_headers_extra} \
+	for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \
 	 ${thread_host_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
+	$(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext
+	for file in ${ext_host_headers}; do \
+	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done
 
 # To remove directories.
 clean-local:
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/impl/profiler.h gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/impl/profiler.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/profile/impl/profiler.h	2013-07-31 14:29:13.979450000 -0500
@@ -188,7 +188,7 @@
   _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_invalid())
 #define __profcxx_is_on() \
   _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_on())
-#define __profcxx__is_off() \
+#define __profcxx_is_off() \
   _GLIBCXX_PROFILE_REENTRANCE_GUARD(__gnu_profile::__is_off())
 #else
 #define __profcxx_report()
@@ -237,6 +237,8 @@
 
 // Turn on/off instrumentation for INEFFICIENT_HASH.
 #if defined(_GLIBCXX_PROFILE_INEFFICIENT_HASH)
+#define __profcxx_inefficient_hash_is_on() \
+  __gnu_profile::__is_on()
 #define __profcxx_hashtable_construct2(__x...) \
   _GLIBCXX_PROFILE_REENTRANCE_GUARD( \
       __gnu_profile::__trace_hash_func_construct(__x))
@@ -244,8 +246,9 @@
   _GLIBCXX_PROFILE_REENTRANCE_GUARD( \
       __gnu_profile::__trace_hash_func_destruct(__x))
 #else
-#define __profcxx_hashtable_destruct2(__x...) 
-#define __profcxx_hashtable_construct2(__x...)  
+#define __profcxx_inefficient_hash_is_on() false
+#define __profcxx_hashtable_destruct2(__x...)
+#define __profcxx_hashtable_construct2(__x...)
 #endif
 
 // Turn on/off instrumentation for VECTOR_TO_LIST.
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_base.h gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_base.h	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_base.h	2013-07-31 14:29:13.979450000 -0500
@@ -0,0 +1,262 @@
+// Profiling unordered containers implementation details -*- C++ -*-
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+/** @file profile/unordered_base.h
+ *  This file is a GNU profile extension to the Standard C++ Library.
+ */
+
+#ifndef _GLIBCXX_PROFILE_UNORDERED
+#define _GLIBCXX_PROFILE_UNORDERED 1
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+namespace __profile
+{
+  template<typename _UnorderedCont,
+	   typename _Value, bool _Cache_hash_code>
+    struct _Bucket_index_helper;
+
+  template<typename _UnorderedCont, typename _Value>
+    struct _Bucket_index_helper<_UnorderedCont, _Value, true>
+    {
+      static std::size_t
+      bucket(const _UnorderedCont& __uc,
+	     const __detail::_Hash_node<_Value, true>* __node)
+      { return __node->_M_hash_code % __uc.bucket_count(); }
+    };
+
+  template<typename _UnorderedCont, typename _Value>
+    struct _Bucket_index_helper<_UnorderedCont, _Value, false>
+    {
+      static std::size_t
+      bucket(const _UnorderedCont& __uc,
+	     const __detail::_Hash_node<_Value, false>* __node)
+      { return __uc.bucket(__node->_M_v); }
+    };
+
+  template<typename _UnorderedCont, typename _Key, typename _Mapped>
+    struct _Bucket_index_helper<_UnorderedCont,
+				std::pair<const _Key, _Mapped>, false>
+    {
+      typedef std::pair<const _Key, _Mapped> _Value;
+
+      static std::size_t
+      bucket(const _UnorderedCont& __uc,
+	     const __detail::_Hash_node<_Value, false>* __node)
+      { return __uc.bucket(__node->_M_v.first); }
+    };
+
+  template<typename _UnorderedCont, typename _Value, bool _Cache_hash_code>
+    std::size_t
+    __get_bucket_index(const _UnorderedCont& __uc,
+		       const __detail::_Hash_node<_Value, _Cache_hash_code>* __node)
+    {
+      using __bucket_index_helper
+	= _Bucket_index_helper<_UnorderedCont, _Value, _Cache_hash_code>;
+      return __bucket_index_helper::bucket(__uc, __node);
+    }
+
+  template<typename _UnorderedCont,
+	   typename _Value, bool _Cache_hash_code>
+    struct _Equal_helper;
+
+  template<typename _UnorderedCont, typename _Value>
+    struct _Equal_helper<_UnorderedCont, _Value, true>
+    {
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, true>* __lhs,
+		const __detail::_Hash_node<_Value, true>* __rhs)
+      {
+	return __lhs->_M_hash_code == __rhs->_M_hash_code
+	  && __uc.key_eq()(__lhs->_M_v, __rhs->_M_v);
+      }
+    };
+
+  template<typename _UnorderedCont,
+	   typename _Value>
+    struct _Equal_helper<_UnorderedCont, _Value, false>
+    {
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, false>* __lhs,
+		const __detail::_Hash_node<_Value, false>* __rhs)
+      { return __uc.key_eq()(__lhs->_M_v, __rhs->_M_v); }
+    };
+
+  template<typename _UnorderedCont,
+	   typename _Key, typename _Mapped>
+    struct _Equal_helper<_UnorderedCont, std::pair<const _Key, _Mapped>, true>
+    {
+      typedef std::pair<const _Key, _Mapped> _Value;
+
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, true>* __lhs,
+		const __detail::_Hash_node<_Value, true>* __rhs)
+      {
+	return __lhs->_M_hash_code == __rhs->_M_hash_code
+	  && __uc.key_eq()(__lhs->_M_v.first, __rhs->_M_v.first);
+      }
+    };
+
+  template<typename _UnorderedCont,
+	   typename _Key, typename _Mapped>
+    struct _Equal_helper<_UnorderedCont, std::pair<const _Key, _Mapped>, false>
+    {
+      typedef std::pair<const _Key, _Mapped> _Value;
+
+      static std::size_t
+      are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, false>* __lhs,
+		const __detail::_Hash_node<_Value, false>* __rhs)
+      { return __uc.key_eq()(__lhs->_M_v.first, __rhs->_M_v.first); }
+    };
+
+  template<typename _UnorderedCont, typename _Value, bool _Cache_hash_code>
+    bool
+    __are_equal(const _UnorderedCont& __uc,
+		const __detail::_Hash_node<_Value, _Cache_hash_code>* __lhs,
+		const __detail::_Hash_node<_Value, _Cache_hash_code>* __rhs)
+  {
+    using __equal_helper
+      = _Equal_helper<_UnorderedCont, _Value, _Cache_hash_code>;
+    return __equal_helper::are_equal(__uc, __lhs, __rhs);
+  }
+
+  template<typename _UnorderedCont, bool _Unique_keys>
+    class _Unordered_profile
+    {
+      _UnorderedCont&
+      _M_conjure()
+      { return *(static_cast<_UnorderedCont*>(this)); }
+
+      using __unique_keys = std::integral_constant<bool, _Unique_keys>;
+
+    protected:
+      _Unordered_profile()
+      {
+	auto& __uc = _M_conjure();
+        __profcxx_hashtable_construct(&__uc, __uc.bucket_count());
+	__profcxx_hashtable_construct2(&__uc);
+      }
+      _Unordered_profile(const _Unordered_profile&)
+	: _Unordered_profile() { }
+      _Unordered_profile(_Unordered_profile&&)
+	: _Unordered_profile() { }
+
+      ~_Unordered_profile() noexcept
+      {
+	auto& __uc = _M_conjure();
+        __profcxx_hashtable_destruct(&__uc, __uc.bucket_count(), __uc.size());
+        _M_profile_destruct();
+      }
+
+      _Unordered_profile&
+      operator=(const _Unordered_profile&) = default;
+
+      _Unordered_profile&
+      operator=(_Unordered_profile&&) = default;
+
+      void
+      _M_profile_destruct()
+      {
+	if (!__profcxx_inefficient_hash_is_on())
+	  return;
+
+	_M_profile_destruct(__unique_keys());
+      }
+
+    private:
+      void
+      _M_profile_destruct(std::true_type);
+
+      void
+      _M_profile_destruct(std::false_type);
+    };
+
+  template<typename _UnorderedCont, bool _Unique_keys>
+    void
+    _Unordered_profile<_UnorderedCont, _Unique_keys>::
+    _M_profile_destruct(std::true_type)
+    {
+      auto& __uc = _M_conjure();
+      std::size_t __hops = 0, __lc = 0, __chain = 0;
+      auto __it = __uc.begin();
+      while (__it != __uc.end())
+	{
+	  auto __bkt = __get_bucket_index(__uc, __it._M_cur);
+	  auto __lit = __uc.begin(__bkt);
+	  auto __lend = __uc.end(__bkt);
+	  for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
+	    ++__chain;
+	  if (__chain)
+	    {
+	      ++__chain;
+	      __lc = __lc > __chain ? __lc : __chain;
+	      __hops += __chain * (__chain - 1) / 2;
+	      __chain = 0;
+	    }
+	}
+      __profcxx_hashtable_destruct2(&__uc, __lc, __uc.size(), __hops);
+    }
+
+  template<typename _UnorderedCont, bool _Unique_keys>
+    void
+    _Unordered_profile<_UnorderedCont, _Unique_keys>::
+    _M_profile_destruct(std::false_type)
+    {
+      auto& __uc = _M_conjure();
+      std::size_t __hops = 0, __lc = 0, __chain = 0, __unique_size = 0;
+      auto __it = __uc.begin();
+      while (__it != __uc.end())
+	{
+	  auto __bkt = __get_bucket_index(__uc, __it._M_cur);
+	  auto __lit = __uc.begin(__bkt);
+	  auto __lend = __uc.end(__bkt);
+	  auto __pit = __it;
+	  ++__unique_size;
+	  for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
+	    {
+	      if (!__are_equal(__uc, __pit._M_cur, __it._M_cur))
+		{
+		  ++__chain;
+		  ++__unique_size;
+		  __pit = __it;
+		}
+	    }
+	  if (__chain)
+	    {
+	      ++__chain;
+	      __lc = __lc > __chain ? __lc : __chain;
+	      __hops += __chain * (__chain - 1) / 2;
+	      __chain = 0;
+	    }
+	}
+      __profcxx_hashtable_destruct2(&__uc, __lc, __unique_size, __hops);
+    }
+
+} // namespace __profile
+} // namespace std
+
+#endif
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_map gcc-4.8.1/libstdc++-v3/include/profile/unordered_map
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_map	2013-01-16 17:56:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_map	2013-07-31 14:29:13.979450000 -0500
@@ -34,6 +34,7 @@
 # include <unordered_map>
 
 #include <profile/base.h>
+#include <profile/unordered_base.h>
 
 #define _GLIBCXX_BASE unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>
 #define _GLIBCXX_STD_BASE _GLIBCXX_STD_C::_GLIBCXX_BASE
@@ -44,14 +45,22 @@
 {
   /// Class std::unordered_map wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc =  std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_map
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>,
+				true>
     {
       typedef typename _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -72,11 +81,8 @@
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
 
       template<typename _InputIterator>
         unordered_map(_InputIterator __f, _InputIterator __l,
@@ -84,85 +90,45 @@
 		      const hasher& __hf = hasher(),
 		      const key_equal& __eql = key_equal(),
 		      const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+        { }
 
-      unordered_map(const unordered_map& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_map(const unordered_map&) = default;
 
       unordered_map(const _Base& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__x)
+      { }
 
-      unordered_map(unordered_map&& __x)
-      : _Base(std::move(__x)) 
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_map(unordered_map&&) = default;
 
       unordered_map(initializer_list<value_type> __l,
 		    size_type __n = 0,
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+	: _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_map&
-      operator=(const unordered_map& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_map&) = default;
 
       unordered_map&
-      operator=(unordered_map&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_map&&) = default;
 
       unordered_map&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_map() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(),
-				     _Base::size());
-        _M_profile_destruct();
-      }
-
-      _Base&
-      _M_base() noexcept       { return *this; }
-
-      const _Base&
-      _M_base() const noexcept { return *this; }
-
       void
       clear() noexcept
       {
         __profcxx_hashtable_destruct(this, _Base::bucket_count(),
 				     _Base::size());
-        _M_profile_destruct();
-        _Base::clear();
+        this->_M_profile_destruct();
+	_Base::clear();
       }
 
       template<typename... _Args>
@@ -247,14 +213,6 @@
 	  _M_profile_resize(__old_size); 
 	}
 
-      void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-
       // operator[]
       mapped_type&
       operator[](const _Key& __k)
@@ -276,7 +234,7 @@
 
       void
       swap(unordered_map& __x)
-      { _Base::swap(__x); }
+      { _Base::swap(__x._M_base()); }
 
       void rehash(size_type __n)
       {
@@ -293,29 +251,6 @@
 	if (__old_size != __new_size)
 	  __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(__it->first);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-	__profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
   };
 
   template<typename _Key, typename _Tp, typename _Hash,
@@ -346,14 +281,23 @@
 
   /// Class std::unordered_multimap wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc =  std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_multimap
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_multimap<_Key, _Tp,
+						   _Hash, _Pred, _Alloc>,
+				false>
     {      
       typedef typename _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -373,85 +317,54 @@
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
+
       template<typename _InputIterator>
         unordered_multimap(_InputIterator __f, _InputIterator __l,
 			   size_type __n = 0,
 			   const hasher& __hf = hasher(),
 			   const key_equal& __eql = key_equal(),
 			   const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+      { }
 
-      unordered_multimap(const unordered_multimap& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multimap(const unordered_multimap&) = default;
 
       unordered_multimap(const _Base& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__x)
+      { }
 
-      unordered_multimap(unordered_multimap&& __x)
-      : _Base(std::move(__x))
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multimap(unordered_multimap&&) = default;
 
       unordered_multimap(initializer_list<value_type> __l,
 			 size_type __n = 0,
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+      : _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_multimap&
-      operator=(const unordered_multimap& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_multimap&) = default;
 
       unordered_multimap&
-      operator=(unordered_multimap&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_multimap&&) = default;
 
       unordered_multimap&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_multimap() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
-				     _Base::size());
-        _M_profile_destruct();
-      }
-
       void
       clear() noexcept
       {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
+	__profcxx_hashtable_destruct(this, _Base::bucket_count(), 
 				     _Base::size());
-        _M_profile_destruct();
-        _Base::clear();
+	this->_M_profile_destruct();
+	_Base::clear();
       }
 
       template<typename... _Args>
@@ -536,18 +449,11 @@
 	}
 
       void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-
-      void
       swap(unordered_multimap& __x)
-      { _Base::swap(__x); }
+      { _Base::swap(__x._M_base()); }
 
-      void rehash(size_type __n)
+      void
+      rehash(size_type __n)
       {
         size_type __old_size = _Base::bucket_count();
         _Base::rehash(__n);
@@ -562,29 +468,6 @@
         if (__old_size != __new_size)
           __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(__it->first);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-	__profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
   };
 
   template<typename _Key, typename _Tp, typename _Hash,
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_set gcc-4.8.1/libstdc++-v3/include/profile/unordered_set
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/unordered_set	2013-01-16 17:56:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/profile/unordered_set	2013-07-31 14:29:13.979450000 -0500
@@ -34,6 +34,7 @@
 # include <unordered_set>
 
 #include <profile/base.h>
+#include <profile/unordered_base.h>
 
 #define _GLIBCXX_BASE unordered_set<_Key, _Hash, _Pred, _Alloc>
 #define _GLIBCXX_STD_BASE _GLIBCXX_STD_C::_GLIBCXX_BASE
@@ -44,14 +45,22 @@
 {
   /** @brief Unordered_set wrapper with performance instrumentation.  */
   template<typename _Key, 
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
 	   typename _Alloc =  std::allocator<_Key> >
     class unordered_set
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_set<_Key, _Hash, _Pred, _Alloc>,
+				true>
     {
       typedef _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -71,11 +80,8 @@
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
 
       template<typename _InputIterator>
         unordered_set(_InputIterator __f, _InputIterator __l,
@@ -83,84 +89,48 @@
 		      const hasher& __hf = hasher(),
 		      const key_equal& __eql = key_equal(),
 		      const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+      { }
 
-      unordered_set(const unordered_set& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_set(const unordered_set&) = default;
 
       unordered_set(const _Base& __x)
-      : _Base(__x) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+	: _Base(__x)
+      { }
 
-      unordered_set(unordered_set&& __x)
-      : _Base(std::move(__x)) 
-      { 
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-        __profcxx_hashtable_construct2(this);
-      }
+      unordered_set(unordered_set&&) = default;
 
       unordered_set(initializer_list<value_type> __l,
 		    size_type __n = 0,
 		    const hasher& __hf = hasher(),
 		    const key_equal& __eql = key_equal(),
 		    const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+      : _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_set&
-      operator=(const unordered_set& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_set&) = default;
 
       unordered_set&
-      operator=(unordered_set&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_set&&) = default;
 
       unordered_set&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_set() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
-                                     _Base::size());
-        _M_profile_destruct();
-      }
-
       void
       swap(unordered_set& __x)
-      {
-        _Base::swap(__x);
-      }
+      { _Base::swap(__x); }
 
       void
       clear() noexcept
       {
         __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
                                      _Base::size());
-        _M_profile_destruct();
+        this->_M_profile_destruct();
         _Base::clear();
       }
 
@@ -240,14 +210,7 @@
 	}
 
       void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-     
-      void rehash(size_type __n)
+      rehash(size_type __n)
       {
         size_type __old_size = _Base::bucket_count();
         _Base::rehash(__n);
@@ -262,29 +225,6 @@
 	if (__old_size != __new_size)
 	  __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(*__it);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-        __profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
   };
 
   template<typename _Key, typename _Hash, typename _Pred, typename _Alloc>
@@ -312,14 +252,23 @@
 
   /** @brief Unordered_multiset wrapper with performance instrumentation.  */
   template<typename _Value,
-       typename _Hash  = std::hash<_Value>,
-       typename _Pred = std::equal_to<_Value>,
-       typename _Alloc =  std::allocator<_Value> >
+	   typename _Hash = std::hash<_Value>,
+	   typename _Pred = std::equal_to<_Value>,
+	   typename _Alloc =  std::allocator<_Value> >
     class unordered_multiset
-    : public _GLIBCXX_STD_BASE
+    : public _GLIBCXX_STD_BASE,
+      public _Unordered_profile<unordered_multiset<_Value,
+						   _Hash, _Pred, _Alloc>,
+				false>
     {
       typedef _GLIBCXX_STD_BASE _Base;
 
+      _Base&
+      _M_base() noexcept       { return *this; }
+
+      const _Base&
+      _M_base() const noexcept { return *this; }
+
     public:
       typedef typename _Base::size_type       size_type;
       typedef typename _Base::hasher          hasher;
@@ -339,10 +288,8 @@
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__n, __hf, __eql, __a)
+      { }
 
       template<typename _InputIterator>
         unordered_multiset(_InputIterator __f, _InputIterator __l,
@@ -350,80 +297,48 @@
 			   const hasher& __hf = hasher(),
 			   const key_equal& __eql = key_equal(),
 			   const allocator_type& __a = allocator_type())
-      : _Base(__f, __l, __n, __hf, __eql, __a)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	  : _Base(__f, __l, __n, __hf, __eql, __a)
+      { }
 
-      unordered_multiset(const unordered_multiset& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multiset(const unordered_multiset&) = default;
 
       unordered_multiset(const _Base& __x)
-      : _Base(__x)
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+	: _Base(__x)
+      { }
 
-      unordered_multiset(unordered_multiset&& __x)
-      : _Base(std::move(__x))
-      {
-        __profcxx_hashtable_construct(this, _Base::bucket_count());
-      }
+      unordered_multiset(unordered_multiset&&) = default;
 
       unordered_multiset(initializer_list<value_type> __l,
 			 size_type __n = 0,
 			 const hasher& __hf = hasher(),
 			 const key_equal& __eql = key_equal(),
 			 const allocator_type& __a = allocator_type())
-      : _Base(__l, __n, __hf, __eql, __a) { }
+	: _Base(__l, __n, __hf, __eql, __a)
+      { }
 
       unordered_multiset&
-      operator=(const unordered_multiset& __x)
-      {
-	*static_cast<_Base*>(this) = __x;
-	return *this;
-      }
+      operator=(const unordered_multiset&) = default;
 
       unordered_multiset&
-      operator=(unordered_multiset&& __x)
-      {
-	// NB: DR 1204.
-	// NB: DR 675.
-	this->clear();
-	this->swap(__x);
-	return *this;
-      }
+      operator=(unordered_multiset&&) = default;
 
       unordered_multiset&
       operator=(initializer_list<value_type> __l)
       {
-	this->clear();
-	this->insert(__l);
+	_M_base() = __l;
 	return *this;
       }
 
-      ~unordered_multiset() noexcept
-      {
-        __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
-                                     _Base::size());
-        _M_profile_destruct();
-      }
-
       void
       swap(unordered_multiset& __x)
-      {
-        _Base::swap(__x);
-      }
+      { _Base::swap(__x); }
 
       void
       clear() noexcept
       {
         __profcxx_hashtable_destruct(this, _Base::bucket_count(), 
                                      _Base::size());
-        _M_profile_destruct();
+        this->_M_profile_destruct();
         _Base::clear();
       }
 
@@ -502,14 +417,7 @@
 	}
 
       void
-      insert(const value_type* __first, const value_type* __last)
-      {
-        size_type __old_size = _Base::bucket_count(); 
-        _Base::insert(__first, __last);
-        _M_profile_resize(__old_size); 
-      }
-     
-      void rehash(size_type __n)
+      rehash(size_type __n)
       {
         size_type __old_size = _Base::bucket_count();
         _Base::rehash(__n);
@@ -524,29 +432,6 @@
         if (__old_size != __new_size)
           __profcxx_hashtable_resize(this, __old_size, __new_size);
       }
-
-      void
-      _M_profile_destruct()
-      {
-	size_type __hops = 0, __lc = 0, __chain = 0;
-	iterator __it = this->begin();
-	while (__it != this->end())
-	  {
-	    size_type __bkt = this->bucket(*__it);
-	    auto __lit = this->begin(__bkt);
-	    auto __lend = this->end(__bkt);
-	    for (++__it, ++__lit; __lit != __lend; ++__it, ++__lit)
-	      ++__chain;
-	    if (__chain)
-	      {
-		++__chain;
-		__lc = __lc > __chain ? __lc : __chain;
-		__hops += __chain * (__chain - 1) / 2;
-		__chain = 0;
-	      }
-	  }
-        __profcxx_hashtable_destruct2(this, __lc, _Base::size(), __hops);
-      }
    };
 
   template<typename _Value, typename _Hash, typename _Pred, typename _Alloc>
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/profile/vector gcc-4.8.1/libstdc++-v3/include/profile/vector
--- gcc-4.8.1.orig/libstdc++-v3/include/profile/vector	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/profile/vector	2013-06-27 14:06:35.737183000 -0500
@@ -374,6 +374,16 @@
 	return iterator(__res, this);
       }
 
+      template<typename... _Args>
+        iterator
+        emplace(iterator __position, _Args&&... __args)
+        {
+	  typename _Base::iterator __res
+	    = _Base::emplace(__position.base(),
+			     std::forward<_Args>(__args)...);
+	  return iterator(__res, this);
+	}
+
       void
       insert(iterator __position, initializer_list<value_type> __l)
       { this->insert(__position, __l.begin(), __l.end()); }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/bitset gcc-4.8.1/libstdc++-v3/include/std/bitset
--- gcc-4.8.1.orig/libstdc++-v3/include/std/bitset	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/std/bitset	2013-07-31 09:36:35.897570000 -0500
@@ -760,7 +760,7 @@
       }
 
 #if __cplusplus >= 201103L
-      template<typename> friend class hash;
+      template<typename> friend struct hash;
 #endif
 
     public:
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/complex gcc-4.8.1/libstdc++-v3/include/std/complex
--- gcc-4.8.1.orig/libstdc++-v3/include/std/complex	2013-02-13 15:58:53.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/std/complex	2013-06-12 15:44:17.319811000 -0500
@@ -142,11 +142,11 @@
 #if __cplusplus >= 201103L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS
       // DR 387. std::complex over-encapsulated.
-      __attribute ((__abi_tag__ ("cxx11")))
+      _GLIBCXX_ABI_TAG_CXX11
       constexpr _Tp 
       real() { return _M_real; }
 
-      __attribute ((__abi_tag__ ("cxx11")))
+      _GLIBCXX_ABI_TAG_CXX11
       constexpr _Tp 
       imag() { return _M_imag; }
 #else
diff -Naur gcc-4.8.1.orig/libstdc++-v3/include/std/valarray gcc-4.8.1/libstdc++-v3/include/std/valarray
--- gcc-4.8.1.orig/libstdc++-v3/include/std/valarray	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/include/std/valarray	2013-06-21 09:23:29.754164000 -0500
@@ -819,8 +819,21 @@
     inline valarray<_Tp>&
     valarray<_Tp>::operator=(const _Expr<_Dom, _Tp>& __e)
     {
-      _GLIBCXX_DEBUG_ASSERT(_M_size == __e.size());
-      std::__valarray_copy(__e, _M_size, _Array<_Tp>(_M_data));
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 630. arrays of valarray.
+      if (_M_size == __e.size())
+	std::__valarray_copy(__e, _M_size, _Array<_Tp>(_M_data));
+      else
+	{
+	  if (_M_data)
+	    {
+	      std::__valarray_destroy_elements(_M_data, _M_data + _M_size);
+	      std::__valarray_release_memory(_M_data);
+	    }
+	  _M_size = __e.size();
+	  _M_data = __valarray_get_storage<_Tp>(_M_size);
+	  std::__valarray_copy_construct(__e, _M_size, _Array<_Tp>(_M_data));
+	}
       return *this;
     }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/libsupc++/atexit_thread.cc gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc
--- gcc-4.8.1.orig/libstdc++-v3/libsupc++/atexit_thread.cc	2013-02-25 22:39:04.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/libsupc++/atexit_thread.cc	2013-07-27 21:33:01.689404000 -0500
@@ -58,8 +58,13 @@
   void run (void *p)
   {
     elt *e = static_cast<elt*>(p);
-    for (; e; e = e->next)
-      e->destructor (e->object);
+    while (e)
+      {
+	elt *old_e = e;
+	e->destructor (e->object);
+	e = e->next;
+	delete (old_e);
+      }
   }
 
   // Run the stack of cleanups for the current thread.
@@ -67,9 +72,15 @@
   {
     void *e;
     if (__gthread_active_p ())
-      e = __gthread_getspecific (key);
+      {
+	e = __gthread_getspecific (key);
+	__gthread_setspecific (key, NULL);
+      }
     else
-      e = single_thread;
+      {
+	e = single_thread;
+	single_thread = NULL;
+      }
     run (e);
   }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/src/c++98/compatibility.cc gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc
--- gcc-4.8.1.orig/libstdc++-v3/src/c++98/compatibility.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/src/c++98/compatibility.cc	2013-08-16 12:43:39.524436000 -0500
@@ -517,14 +517,21 @@
 extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe";
 extern __attribute__((used, weak)) const char _ZTSPKe[4] = "PKe";
 extern __attribute__((used, weak)) const void * const _ZTIe[2]
-  = { (void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2],
-      (void *) _ZTSe };
+  = { reinterpret_cast<const void *>
+      (&_ZTVN10__cxxabiv123__fundamental_type_infoE[2]),
+      reinterpret_cast<const void *>(_ZTSe) };
 extern __attribute__((used, weak)) const void * const _ZTIPe[4]
-  = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
-      (void *) _ZTSPe, (void *) 0L, (void *) _ZTIe };
+  = { reinterpret_cast<const void *>
+      (&_ZTVN10__cxxabiv119__pointer_type_infoE[2]),
+      reinterpret_cast<const void *>(_ZTSPe),
+      reinterpret_cast<const void *>(0L),
+      reinterpret_cast<const void *>(_ZTIe) };
 extern __attribute__((used, weak)) const void * const _ZTIPKe[4]
-  = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
-      (void *) _ZTSPKe, (void *) 1L, (void *) _ZTIe };
+  = { reinterpret_cast<const void *>
+      (&_ZTVN10__cxxabiv119__pointer_type_infoE[2]),
+      reinterpret_cast<const void *>(_ZTSPKe),
+      reinterpret_cast<const void *>(1L),
+      reinterpret_cast<const void *>(_ZTIe) };
 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
 
 #ifdef _GLIBCXX_SYMVER_DARWIN
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/dr130.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/dr130.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,77 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
-//
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <map>
-#include <testsuite_hooks.h>
-
-//  DR 130. Associative erase should return an iterator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  map<int, int> m0;
-  typedef map<int, int>::iterator iterator;
-  typedef map<int, int>::const_iterator const_iterator;
-  typedef map<int, int>::value_type value_type;
-  typedef pair<iterator, bool> insert_return_type;
-
-  m0.insert(value_type(1, 1));
-  insert_return_type irt1 = m0.insert(value_type(2, 2));
-  insert_return_type irt2 = m0.insert(value_type(3, 3));
-
-  iterator pos1 = m0.erase(irt1.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = m0.erase(irt2.first);
-  VERIFY( pos2 == m0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  map<int, int> m0;
-  typedef map<int, int>::iterator iterator;
-  typedef map<int, int>::const_iterator const_iterator;
-  typedef map<int, int>::value_type value_type;
-  typedef pair<iterator, bool> insert_return_type;
-
-  insert_return_type irt0 = m0.insert(value_type(1, 1));
-  m0.insert(value_type(2, 2));
-  insert_return_type irt2 = m0.insert(value_type(3, 3));
-  insert_return_type irt3 = m0.insert(value_type(4, 4));
-
-  iterator pos1 = m0.erase(irt0.first, irt2.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = m0.erase(irt2.first, ++irt3.first);
-  VERIFY( pos2 == m0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,77 @@
+// { dg-options "-std=gnu++0x" }
+// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
+//
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <map>
+#include <testsuite_hooks.h>
+
+//  DR 130. Associative erase should return an iterator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  map<int, int> m0;
+  typedef map<int, int>::iterator iterator;
+  typedef map<int, int>::const_iterator const_iterator;
+  typedef map<int, int>::value_type value_type;
+  typedef pair<iterator, bool> insert_return_type;
+
+  m0.insert(value_type(1, 1));
+  insert_return_type irt1 = m0.insert(value_type(2, 2));
+  insert_return_type irt2 = m0.insert(value_type(3, 3));
+
+  iterator pos1 = m0.erase(irt1.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = m0.erase(irt2.first);
+  VERIFY( pos2 == m0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  map<int, int> m0;
+  typedef map<int, int>::iterator iterator;
+  typedef map<int, int>::const_iterator const_iterator;
+  typedef map<int, int>::value_type value_type;
+  typedef pair<iterator, bool> insert_return_type;
+
+  insert_return_type irt0 = m0.insert(value_type(1, 1));
+  m0.insert(value_type(2, 2));
+  insert_return_type irt2 = m0.insert(value_type(3, 3));
+  insert_return_type irt3 = m0.insert(value_type(4, 4));
+
+  iterator pos1 = m0.erase(irt0.first, irt2.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = m0.erase(irt2.first, ++irt3.first);
+  VERIFY( pos2 == m0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc	2013-06-25 19:30:14.613476000 -0500
@@ -0,0 +1,36 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <map>
+
+using container = std::map<int, int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5eraseB5cxx11ESt17_Rb_tree_iteratorIS4_E" } }
+iterator (container::*p1)(iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::map<int, int>		container_type;
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/dr130.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,87 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-
-// NOTE: This makes use of the fact that we know how moveable
-// is implemented on multiset (via swap). If the implementation changed
-// this test may begin to fail.
-
-#include <map>
-#include <vector>
-#include <testsuite_hooks.h>
-
-using namespace std;
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multimap<int, int> mm0;
-  typedef multimap<int, int>::iterator iterator;
-  typedef multimap<int, int>::const_iterator const_iterator;
-  typedef multimap<int, int>::value_type value_type;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for (int i = 1; i <= 4; ++i)
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( mm0.insert( value_type( i, i ) ) );
-
-  iterator pos1 = mm0.erase(irt[1]);
-  VERIFY( pos1 == irt[2] );
-
-  iterator pos2 = mm0.erase(irt[2]);
-  VERIFY( pos2 == irt[3] );
-
-  iterator pos3 = mm0.erase(irt[9]);
-  VERIFY( pos3 == mm0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multimap<int, int> mm0;
-  typedef multimap<int, int>::iterator iterator;
-  typedef multimap<int, int>::const_iterator const_iterator;
-  typedef multimap<int, int>::value_type value_type;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for (int i = 1; i <= 4; ++i)
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( mm0.insert( value_type( i, i ) ) );
-
-  iterator pos1 = mm0.erase(irt[3], irt[6]);
-  VERIFY( pos1 == irt[6] );
-
-  iterator pos2 = mm0.erase(irt[6], ++irt[9]);
-  VERIFY( pos2 == mm0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,87 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+
+// NOTE: This makes use of the fact that we know how moveable
+// is implemented on multiset (via swap). If the implementation changed
+// this test may begin to fail.
+
+#include <map>
+#include <vector>
+#include <testsuite_hooks.h>
+
+using namespace std;
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multimap<int, int> mm0;
+  typedef multimap<int, int>::iterator iterator;
+  typedef multimap<int, int>::const_iterator const_iterator;
+  typedef multimap<int, int>::value_type value_type;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for (int i = 1; i <= 4; ++i)
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( mm0.insert( value_type( i, i ) ) );
+
+  iterator pos1 = mm0.erase(irt[1]);
+  VERIFY( pos1 == irt[2] );
+
+  iterator pos2 = mm0.erase(irt[2]);
+  VERIFY( pos2 == irt[3] );
+
+  iterator pos3 = mm0.erase(irt[9]);
+  VERIFY( pos3 == mm0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multimap<int, int> mm0;
+  typedef multimap<int, int>::iterator iterator;
+  typedef multimap<int, int>::const_iterator const_iterator;
+  typedef multimap<int, int>::value_type value_type;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for (int i = 1; i <= 4; ++i)
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( mm0.insert( value_type( i, i ) ) );
+
+  iterator pos1 = mm0.erase(irt[3], irt[6]);
+  VERIFY( pos1 == irt[6] );
+
+  iterator pos2 = mm0.erase(irt[6], ++irt[9]);
+  VERIFY( pos2 == mm0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc	2013-06-25 19:30:14.613476000 -0500
@@ -0,0 +1,36 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <map>
+
+using container = std::multimap<int, int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt8multimapIiiSt4lessIiESaISt4pairIKiiEEE5eraseB5cxx11ESt17_Rb_tree_iteratorIS4_E" } }
+iterator (container::*p1)(iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::multimap<int, int>		container_type;
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { {0,0} , {1,1} , {2,2} };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/dr130.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,85 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-
-// NOTE: This makes use of the fact that we know how moveable
-// is implemented on multiset (via swap). If the implementation changed
-// this test may begin to fail.
-
-#include <set>
-#include <vector>
-#include <testsuite_hooks.h>
-
-using namespace std;
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multiset<int> ms0;
-  typedef multiset<int>::iterator iterator;
-  typedef multiset<int>::const_iterator const_iterator;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for ( int i = 1; i <= 4; ++i )
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( ms0.insert( i ) );
-
-  iterator pos1 = ms0.erase(irt[1]);
-  VERIFY( pos1 == irt[2] );
-
-  iterator pos2 = ms0.erase(irt[2]);
-  VERIFY( pos2 == irt[3] );
-
-  iterator pos3 = ms0.erase(irt[9]);
-  VERIFY( pos3 == ms0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  multiset<int> ms0;
-  typedef multiset<int>::iterator iterator;
-  typedef multiset<int>::const_iterator const_iterator;
-  typedef iterator insert_return_type;
-
-  vector<insert_return_type> irt;
-  for ( int i = 1; i <= 4; ++i )
-    for (int j = 1; j <= i; ++j)
-      irt.push_back( ms0.insert( i ) );
-
-  iterator pos1 = ms0.erase(irt[3], irt[6]);
-  VERIFY( pos1 == irt[6] );
-
-  iterator pos2 = ms0.erase(irt[6], ++irt[9]);
-  VERIFY( pos2 == ms0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,85 @@
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+
+// NOTE: This makes use of the fact that we know how moveable
+// is implemented on multiset (via swap). If the implementation changed
+// this test may begin to fail.
+
+#include <set>
+#include <vector>
+#include <testsuite_hooks.h>
+
+using namespace std;
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multiset<int> ms0;
+  typedef multiset<int>::iterator iterator;
+  typedef multiset<int>::const_iterator const_iterator;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for ( int i = 1; i <= 4; ++i )
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( ms0.insert( i ) );
+
+  iterator pos1 = ms0.erase(irt[1]);
+  VERIFY( pos1 == irt[2] );
+
+  iterator pos2 = ms0.erase(irt[2]);
+  VERIFY( pos2 == irt[3] );
+
+  iterator pos3 = ms0.erase(irt[9]);
+  VERIFY( pos3 == ms0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  multiset<int> ms0;
+  typedef multiset<int>::iterator iterator;
+  typedef multiset<int>::const_iterator const_iterator;
+  typedef iterator insert_return_type;
+
+  vector<insert_return_type> irt;
+  for ( int i = 1; i <= 4; ++i )
+    for (int j = 1; j <= i; ++j)
+      irt.push_back( ms0.insert( i ) );
+
+  iterator pos1 = ms0.erase(irt[3], irt[6]);
+  VERIFY( pos1 == irt[6] );
+
+  iterator pos2 = ms0.erase(irt[6], ++irt[9]);
+  VERIFY( pos2 == ms0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc	2013-06-25 19:30:14.613476000 -0500
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <set>
+
+using container = std::multiset<int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt8multisetIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiE" } }
+iterator (container::*p1)(const_iterator) = &container::erase;
+
+// { dg-final { scan-assembler "_ZNSt8multisetIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiES5_" } }
+iterator (container::*p2)(const_iterator, const_iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::multiset<int>			container_type;
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/dr130.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/dr130.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,75 +0,0 @@
-// { dg-options "-std=gnu++0x" }
-// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
-//
-// Copyright (C) 2009-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <set>
-#include <testsuite_hooks.h>
-
-//  DR 130. Associative erase should return an iterator.
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  set<int> s0;
-  typedef set<int>::iterator iterator;
-  typedef set<int>::const_iterator const_iterator;
-  typedef pair<iterator, bool> insert_return_type;
-
-  s0.insert(1);
-  insert_return_type irt1 = s0.insert(2);
-  insert_return_type irt2 = s0.insert(3);
-
-  iterator pos1 = s0.erase(irt1.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = s0.erase(irt2.first);
-  VERIFY( pos2 == s0.end() );
-}
-
-void
-test02()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  set<int> s0;
-  typedef set<int>::iterator iterator;
-  typedef set<int>::const_iterator const_iterator;
-  typedef pair<iterator, bool> insert_return_type;
-
-  insert_return_type irt0 = s0.insert(1);
-  s0.insert(2);
-  insert_return_type irt2 = s0.insert(3);
-  insert_return_type irt3 = s0.insert(4);
-
-  iterator pos1 = s0.erase(irt0.first, irt2.first);
-  VERIFY( pos1 == irt2.first );
-
-  iterator pos2 = s0.erase(irt2.first, ++irt3.first);
-  VERIFY( pos2 == s0.end() );
-}
-
-int
-main()
-{
-  test01();
-  test02();
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,75 @@
+// { dg-options "-std=gnu++0x" }
+// 2008-07-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
+//
+// Copyright (C) 2009-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <set>
+#include <testsuite_hooks.h>
+
+//  DR 130. Associative erase should return an iterator.
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  set<int> s0;
+  typedef set<int>::iterator iterator;
+  typedef set<int>::const_iterator const_iterator;
+  typedef pair<iterator, bool> insert_return_type;
+
+  s0.insert(1);
+  insert_return_type irt1 = s0.insert(2);
+  insert_return_type irt2 = s0.insert(3);
+
+  iterator pos1 = s0.erase(irt1.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = s0.erase(irt2.first);
+  VERIFY( pos2 == s0.end() );
+}
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+  using namespace std;
+
+  set<int> s0;
+  typedef set<int>::iterator iterator;
+  typedef set<int>::const_iterator const_iterator;
+  typedef pair<iterator, bool> insert_return_type;
+
+  insert_return_type irt0 = s0.insert(1);
+  s0.insert(2);
+  insert_return_type irt2 = s0.insert(3);
+  insert_return_type irt3 = s0.insert(4);
+
+  iterator pos1 = s0.erase(irt0.first, irt2.first);
+  VERIFY( pos1 == irt2.first );
+
+  iterator pos2 = s0.erase(irt2.first, ++irt3.first);
+  VERIFY( pos2 == s0.end() );
+}
+
+int
+main()
+{
+  test01();
+  test02();
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc	2013-06-25 19:30:14.613476000 -0500
@@ -0,0 +1,39 @@
+// { dg-do compile }
+// { dg-options -std=c++11 }
+// { dg-require-normal-mode "" }
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+// Test that the C++11 variants have an ABI tag
+
+#include <set>
+
+using container = std::set<int>;
+using iterator = typename container::iterator;
+using const_iterator = typename container::const_iterator;
+
+// { dg-final { scan-assembler "_ZNSt3setIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiE" } }
+iterator (container::*p1)(const_iterator) = &container::erase;
+
+// { dg-final { scan-assembler "_ZNSt3setIiSt4lessIiESaIiEE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIiES5_" } }
+iterator (container::*p2)(const_iterator, const_iterator) = &container::erase;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc	2013-06-12 15:44:17.319811000 -0500
@@ -0,0 +1,40 @@
+// { dg-require-effective-target ia32 }
+// { dg-require-sharedlib "" }
+// { dg-options "-fno-inline -std=gnu++11 ./testsuite_shared.so" }
+// 2013-06-03  Benjamin Kosnik  <bkoz@redhat..com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <testsuite_containers.h>
+
+int main()
+{
+  typedef std::set<int>			container_type;
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase(s);
+  }
+
+  {
+    container_type s { 0, 1, 2 };
+    __gnu_test::linkage_check_cxx98_cxx11_erase_iterators(s);
+  }
+
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.C	2013-06-14 18:38:33.460951000 -0500
@@ -0,0 +1,51 @@
+// { dg-options "-std=gnu++11" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  {
+    std::unordered_map<std::string, std::string> mymap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymap.insert(mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+
+  {
+    std::unordered_map<std::string, std::string> mymap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymap.insert(mymap.begin(), mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.C	2013-06-14 18:38:33.460951000 -0500
@@ -0,0 +1,51 @@
+// { dg-options "-std=gnu++11" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <unordered_map>
+#include <string>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  {
+    std::unordered_multimap<std::string, std::string> mymmap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymmap.insert(mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+
+  {
+    std::unordered_multimap<std::string, std::string> mymmap;
+    std::pair<std::string, std::string> mypair{std::string("key"),
+	                                       std::string("value")};
+    mymmap.insert(mymmap.begin(), mypair);
+
+    VERIFY( mypair.first.length() && mypair.second.length() );
+  }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc	2013-02-20 15:23:44.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc	2013-07-31 14:29:13.979450000 -0500
@@ -30,7 +30,7 @@
 };
 
 struct equal {
-  bool operator()(const MoveOnly&, const MoveOnly) const { return true; }
+  bool operator()(const MoveOnly&, const MoveOnly&) const { return true; }
 };
 struct hash {
   std::size_t operator()(const MoveOnly&) const { return 0; }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc	2013-06-22 16:07:22.456114000 -0500
@@ -43,6 +43,17 @@
   std::binomial_distribution<> bd3(10, 0.75);
   auto bbd3 = std::bind(bd3, eng);
   testDiscreteDist(bbd3, [](int n) { return binomial_pdf(n, 10, 0.75); } );
+
+  // libstdc++/57674
+  std::binomial_distribution<> bd4(1, 0.8);
+  const std::binomial_distribution<>::param_type pm4(1, 0.3);
+  auto bbd4 = std::bind(bd4, eng, pm4);
+  testDiscreteDist(bbd4, [](int n) { return binomial_pdf(n, 1, 0.3); } );
+
+  std::binomial_distribution<> bd5(100, 0.3);
+  const std::binomial_distribution<>::param_type pm5(100, 0.8);
+  auto bbd5 = std::bind(bd5, eng, pm5);
+  testDiscreteDist(bbd5, [](int n) { return binomial_pdf(n, 100, 0.8); } );
 }
 
 int main()
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc	2013-08-07 07:13:24.193280000 -0500
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 0.0 );
   VERIFY( u.b() == 1.0 );
   typedef std::cauchy_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc	2013-08-07 07:13:24.193280000 -0500
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 5.0 );
   VERIFY( u.b() == 2.0 );
   typedef std::cauchy_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc	2013-08-07 07:13:24.193280000 -0500
@@ -34,7 +34,7 @@
   std::exponential_distribution<> u;
   VERIFY( u.lambda() == 1.0 );
   typedef std::exponential_distribution<>::result_type result_type;
-  VERIFY( u.min() == 0 );
+  VERIFY( u.min() == 0.0 );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc	2013-08-07 07:13:24.193280000 -0500
@@ -34,7 +34,7 @@
   std::exponential_distribution<> u(0.5);
   VERIFY( u.lambda() == 0.5 );
   typedef std::exponential_distribution<>::result_type result_type;
-  VERIFY( u.min() == 0 );
+  VERIFY( u.min() == 0.0 );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc	2013-08-07 07:13:24.193280000 -0500
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 0.0 );
   VERIFY( u.b() == 1.0 );
   typedef std::extreme_value_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc	2013-08-07 07:13:24.193280000 -0500
@@ -35,7 +35,7 @@
   VERIFY( u.a() == 5.0 );
   VERIFY( u.b() == 2.0 );
   typedef std::extreme_value_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc	2013-08-07 07:13:24.193280000 -0500
@@ -35,7 +35,7 @@
   VERIFY( u.mean() == 0.0 );
   VERIFY( u.stddev() == 1.0 );
   typedef std::normal_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc	2013-08-07 07:13:24.193280000 -0500
@@ -35,7 +35,7 @@
   VERIFY( u.mean() == 5.0 );
   VERIFY( u.stddev() == 2.0 );
   typedef std::normal_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc	2013-08-07 07:13:24.193280000 -0500
@@ -34,7 +34,7 @@
   std::student_t_distribution<> u;
   VERIFY( u.n() == 1.0 );
   typedef std::student_t_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc	2013-08-07 07:13:24.193280000 -0500
@@ -34,7 +34,7 @@
   std::student_t_distribution<> u(1.5);
   VERIFY( u.n() == 1.5 );
   typedef std::student_t_distribution<>::result_type result_type;
-  VERIFY( u.min() == std::numeric_limits<result_type>::min() );
+  VERIFY( u.min() == std::numeric_limits<result_type>::lowest() );
   VERIFY( u.max() == std::numeric_limits<result_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C	2013-06-21 09:23:29.754164000 -0500
@@ -0,0 +1,37 @@
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+// libstdc++/57666
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::valarray<int> a(3), b(3), d1, d2;
+  d1 = a;
+  VERIFY( d1.size() == 3 );
+  d2 = a + b;
+  VERIFY( d2.size() == 3 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc	2013-06-12 15:44:17.319811000 -0500
@@ -25,4 +25,4 @@
 
 #include <vector>
 
-// { dg-error "multiple inlined namespaces" "" { target *-*-* } 269 }
+// { dg-error "multiple inlined namespaces" "" { target *-*-* } 275 }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc	2013-08-07 07:13:24.193280000 -0500
@@ -36,9 +36,9 @@
   VERIFY( u.varcov()[1] == 0.0 );
   VERIFY( u.varcov()[2] == 1.0 );
   typedef __gnu_cxx::normal_mv_distribution<2>::result_type result_type;
-  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[0] == std::numeric_limits<result_type::value_type>::max() );
-  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[1] == std::numeric_limits<result_type::value_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc	2013-08-07 07:13:24.193280000 -0500
@@ -36,9 +36,9 @@
   VERIFY( u.varcov()[1] == 0.0 );
   VERIFY( u.varcov()[2] == 3.0 );
   typedef __gnu_cxx::normal_mv_distribution<2>::result_type result_type;
-  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[0] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[0] == std::numeric_limits<result_type::value_type>::max() );
-  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::min() );
+  VERIFY( u.min()[1] == std::numeric_limits<result_type::value_type>::lowest() );
   VERIFY( u.max()[1] == std::numeric_limits<result_type::value_type>::max() );
 }
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<> u;
+  VERIFY( u.a() == 0.0 );
+  VERIFY( u.b() == 0.5 );
+  VERIFY( u.c() == 1.0 );
+  VERIFY( u.min() == 0.0 );
+  VERIFY( u.max() == 1.0 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<> u(1.5, 3.0, 3.5);
+  VERIFY( u.a() == 1.5 );
+  VERIFY( u.b() == 3.0 );
+  VERIFY( u.c() == 3.5 );
+  VERIFY( u.min() == 1.5 );
+  VERIFY( u.max() == 3.5 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.0), v, w;
+
+  VERIFY( v == w );
+  VERIFY( !(u == v) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 5.0), v, w;
+
+  VERIFY( u != v );
+  VERIFY( !(v != w) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <sstream>
+
+void
+test01()
+{
+  std::stringstream str;
+  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.5), v;
+  std::minstd_rand0 rng;
+
+  u(rng); // advance
+  str << u;
+
+  str >> v;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+template class __gnu_cxx::triangular_distribution<float>;
+template class __gnu_cxx::triangular_distribution<double>;
+template class __gnu_cxx::triangular_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+void
+test01()
+{
+  typedef __gnu_cxx::triangular_distribution<double> test_type;
+
+  typedef test_type::result_type result_type;
+  typedef test_type::param_type param_type;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,43 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<> u;
+  VERIFY( u.mu() == 0.0 );
+  VERIFY( u.kappa() == 1.0 );
+  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
+  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,43 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<> u(1.5, 3.0);
+  VERIFY( u.mu() == 1.5 );
+  VERIFY( u.kappa() == 3.0 );
+  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
+  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
+
+  VERIFY( v == w );
+  VERIFY( !(u == v) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,42 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
+
+  VERIFY( u != v );
+  VERIFY( !(v != w) );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+#include <sstream>
+
+void
+test01()
+{
+  std::stringstream str;
+  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v;
+  std::minstd_rand0 rng;
+
+  u(rng); // advance
+  str << u;
+
+  str >> v;
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+template class __gnu_cxx::von_mises_distribution<float>;
+template class __gnu_cxx::von_mises_distribution<double>;
+template class __gnu_cxx::von_mises_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc	1969-12-31 18:00:00.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc	2013-08-07 07:23:15.522175000 -0500
@@ -0,0 +1,34 @@
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
+// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
+//
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+void
+test01()
+{
+  typedef __gnu_cxx::von_mises_distribution<double> test_type;
+
+  typedef test_type::result_type result_type;
+  typedef test_type::param_type param_type;
+}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/default.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<> u;
-  VERIFY( u.a() == 0.0 );
-  VERIFY( u.b() == 0.5 );
-  VERIFY( u.c() == 1.0 );
-  VERIFY( u.min() == 0.0 );
-  VERIFY( u.max() == 1.0 );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/cons/parms.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<> u(1.5, 3.0, 3.5);
-  VERIFY( u.a() == 1.5 );
-  VERIFY( u.b() == 3.0 );
-  VERIFY( u.c() == 3.5 );
-  VERIFY( u.min() == 1.5 );
-  VERIFY( u.max() == 3.5 );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/equal.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.0), v, w;
-
-  VERIFY( v == w );
-  VERIFY( !(u == v) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/inequal.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 5.0), v, w;
-
-  VERIFY( u != v );
-  VERIFY( !(v != w) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/operators/serialize.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <sstream>
-
-void
-test01()
-{
-  std::stringstream str;
-  __gnu_cxx::triangular_distribution<double> u(1.5, 3.0, 4.5), v;
-  std::minstd_rand0 rng;
-
-  u(rng); // advance
-  str << u;
-
-  str >> v;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/explicit_instantiation/1.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,26 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++11" }
-// { dg-require-cstdint "" }
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-template class __gnu_cxx::triangular_distribution<float>;
-template class __gnu_cxx::triangular_distribution<double>;
-template class __gnu_cxx::triangular_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/triangular_distribution/requirements/typedefs.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,34 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-void
-test01()
-{
-  typedef __gnu_cxx::triangular_distribution<double> test_type;
-
-  typedef test_type::result_type result_type;
-  typedef test_type::param_type param_type;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/default.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,43 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<> u;
-  VERIFY( u.mu() == 0.0 );
-  VERIFY( u.kappa() == 1.0 );
-  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
-  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/cons/parms.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,43 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<> u(1.5, 3.0);
-  VERIFY( u.mu() == 1.5 );
-  VERIFY( u.kappa() == 3.0 );
-  VERIFY( u.min() == -__gnu_cxx::__math_constants<double>::__pi );
-  VERIFY( u.max() == __gnu_cxx::__math_constants<double>::__pi );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/equal.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
-
-  VERIFY( v == w );
-  VERIFY( !(u == v) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/inequal.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,42 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2010-03-16  Paolo Carlini  <paolo.carlini@oracle.com>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <testsuite_hooks.h>
-
-void
-test01()
-{
-  bool test __attribute__((unused)) = true;
-
-  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v, w;
-
-  VERIFY( u != v );
-  VERIFY( !(v != w) );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/operators/serialize.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,44 +0,0 @@
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2009-08-14  Edward M. Smith-Rowland  <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper  <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-#include <sstream>
-
-void
-test01()
-{
-  std::stringstream str;
-  __gnu_cxx::von_mises_distribution<double> u(1.5, 3.0), v;
-  std::minstd_rand0 rng;
-
-  u(rng); // advance
-  str << u;
-
-  str >> v;
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/explicit_instantiation/1.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,26 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++11" }
-// { dg-require-cstdint "" }
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-template class __gnu_cxx::von_mises_distribution<float>;
-template class __gnu_cxx::von_mises_distribution<double>;
-template class __gnu_cxx::von_mises_distribution<long double>;
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc	2013-03-02 18:12:28.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/ext/von_mises_distribution/requirements/typedefs.cc	1969-12-31 18:00:00.000000000 -0600
@@ -1,34 +0,0 @@
-// { dg-do compile }
-// { dg-options "-std=c++0x" }
-// { dg-require-cstdint "" }
-//
-// 2008-11-24  Edward M. Smith-Rowland <3dw4rd@verizon.net>
-// 2013-03-02  Ulrich Drepper <drepper@gmail.com>
-//
-// Copyright (C) 2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3.  If not see
-// <http://www.gnu.org/licenses/>.
-
-#include <ext/random>
-
-void
-test01()
-{
-  typedef __gnu_cxx::von_mises_distribution<double> test_type;
-
-  typedef test_type::result_type result_type;
-  typedef test_type::param_type param_type;
-}
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/lib/libstdc++.exp gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/lib/libstdc++.exp	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/lib/libstdc++.exp	2013-06-12 15:44:17.319811000 -0500
@@ -626,7 +626,7 @@
 	    # Compile with "-w" so that warnings issued by the compiler
 	    # do not prevent compilation.
 	    if { [v3_target_compile $srcdir/util/$f $object_file "sharedlib" \
-	     [list "incdir=$srcdir" "additional_flags=-w -shared -fPIC -DPIC"]]
+	     [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC"]]
 		 != "" } {
 		error "could not compile $f"
 	    }
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_containers.h gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_containers.h	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_containers.h	2013-06-12 15:44:17.319811000 -0500
@@ -223,6 +223,58 @@
   template<typename _Tp>
   _Tp citerator<_Tp>::_S_container;
 
+  // DR 130 vs. C++98 vs. C++11.
+  // Defined in testsuite_shared.cc.
+  void 
+  erase_external(std::set<int>& s);
+
+  void 
+  erase_external(std::multiset<int>& s);
+
+  void 
+  erase_external(std::map<int, int>& s);
+
+  void 
+  erase_external(std::multimap<int, int>& s);
+
+  void 
+  erase_external_iterators(std::set<int>& s);
+
+  void 
+  erase_external_iterators(std::multiset<int>& s);
+
+  void 
+  erase_external_iterators(std::map<int, int>& s);
+
+  void 
+  erase_external_iterators(std::multimap<int, int>& s);
+
+// NB: "must be compiled with C++11"
+#if __cplusplus >= 201103L
+template<typename _Tp>
+  void 
+  linkage_check_cxx98_cxx11_erase(_Tp& container)
+  {
+    // Crashing when exteral reference and internal reference symbols are
+    // equivalently mangled but have different size return types in C++98
+    // and C++11 signatures.
+    erase_external(container); 		// C++98
+    container.erase(container.begin());	// C++11
+  }
+
+template<typename _Tp>
+  void 
+  linkage_check_cxx98_cxx11_erase_iterators(_Tp& container)
+  {
+    // Crashing when exteral reference and internal reference symbols are
+    // equivalently mangled but have different size return types in C++98
+    // and C++11 signatures.
+    erase_external_iterators(container);// C++98
+
+    auto iter = container.begin();
+    container.erase(iter, ++iter);	// C++11
+  }
+#endif
 
 } // namespace __gnu_test
 
diff -Naur gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_shared.cc gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc
--- gcc-4.8.1.orig/libstdc++-v3/testsuite/util/testsuite_shared.cc	2013-02-03 11:54:05.000000000 -0600
+++ gcc-4.8.1/libstdc++-v3/testsuite/util/testsuite_shared.cc	2013-06-12 15:44:17.319811000 -0500
@@ -19,9 +19,13 @@
 #include <stdexcept>
 #include <iostream>
 #include <sstream>
+#include <set>
+#include <map>
 #include <ext/mt_allocator.h>
 #include <bits/functexcept.h>
 
+namespace __gnu_test
+{
 // libstdc++/22309
 extern "C" void
 try_allocation()
@@ -70,3 +74,57 @@
   // Randomly throw. See if other threads cleanup.
   std::__throw_bad_exception();
 }
+
+#if __cplusplus < 201103L
+// "must be compiled with C++98"
+  void 
+  erase_external(std::set<int>& s)
+  { s.erase(s.begin()); }
+
+  void 
+  erase_external(std::multiset<int>& s)
+  { s.erase(s.begin()); }
+  
+  void 
+  erase_external(std::map<int, int>& s)
+  { s.erase(s.begin()); }
+  
+  void 
+  erase_external(std::multimap<int, int>& s)
+  { s.erase(s.begin()); }
+
+  void 
+  erase_external_iterators(std::set<int>& s)
+  {
+    typedef typename std::set<int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+
+  void 
+  erase_external_iterators(std::multiset<int>& s)
+  {
+    typedef typename std::multiset<int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+
+  void 
+  erase_external_iterators(std::map<int, int>& s)
+  {
+    typedef typename std::map<int, int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+
+  
+  void 
+  erase_external_iterators(std::multimap<int, int>& s)
+  {
+    typedef typename std::multimap<int, int>::iterator iterator_type;
+    iterator_type iter = s.begin();
+    s.erase(iter, ++iter);
+  }
+#endif
+
+} // end namepace __gnu_test
