summaryrefslogtreecommitdiffstats
path: root/intl
diff options
context:
space:
mode:
Diffstat (limited to 'intl')
-rw-r--r--intl/unicharutil/moz.build10
-rw-r--r--intl/unicharutil/normalization_data.h5247
-rw-r--r--intl/unicharutil/nsUnicodeNormalizer.cpp742
-rw-r--r--intl/unicharutil/nsUnicodeNormalizer.h7
-rw-r--r--intl/unicharutil/nsUnicodeNormalizer_ICU.cpp98
5 files changed, 69 insertions, 6035 deletions
diff --git a/intl/unicharutil/moz.build b/intl/unicharutil/moz.build
index 461fd255e..7b93396fc 100644
--- a/intl/unicharutil/moz.build
+++ b/intl/unicharutil/moz.build
@@ -27,17 +27,9 @@ UNIFIED_SOURCES += [
'nsCategoryImp.cpp',
'nsEntityConverter.cpp',
'nsSaveAsCharset.cpp',
+ 'nsUnicodeNormalizer.cpp',
]
-if CONFIG['ENABLE_INTL_API']:
- UNIFIED_SOURCES += [
- 'nsUnicodeNormalizer_ICU.cpp',
- ]
-else:
- UNIFIED_SOURCES += [
- 'nsUnicodeNormalizer.cpp',
- ]
-
FINAL_LIBRARY = 'xul'
if CONFIG['GNU_CXX']:
diff --git a/intl/unicharutil/normalization_data.h b/intl/unicharutil/normalization_data.h
deleted file mode 100644
index 90dcd9f4e..000000000
--- a/intl/unicharutil/normalization_data.h
+++ /dev/null
@@ -1,5247 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-
-/* This file is modified from JPNIC's mDNKit, it is under both MPL and
- * JPNIC's license.
- */
-
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/*
- * Copyright (c) 2000,2002 Japan Network Information Center.
- * All rights reserved.
- *
- * By using this file, you agree to the terms and conditions set forth bellow.
- *
- * LICENSE TERMS AND CONDITIONS
- *
- * The following License Terms and Conditions apply, unless a different
- * license is obtained from Japan Network Information Center ("JPNIC"),
- * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
- * Chiyoda-ku, Tokyo 101-0047, Japan.
- *
- * 1. Use, Modification and Redistribution (including distribution of any
- * modified or derived work) in source and/or binary forms is permitted
- * under this License Terms and Conditions.
- *
- * 2. Redistribution of source code must retain the copyright notices as they
- * appear in each source code file, this License Terms and Conditions.
- *
- * 3. Redistribution in binary form must reproduce the Copyright Notice,
- * this License Terms and Conditions, in the documentation and/or other
- * materials provided with the distribution. For the purposes of binary
- * distribution the "Copyright Notice" refers to the following language:
- * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved."
- *
- * 4. The name of JPNIC may not be used to endorse or promote products
- * derived from this Software without specific prior written approval of
- * JPNIC.
- *
- * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
- * "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 JPNIC 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 DAMAGES.
- */
-
-/* $Id: normalization_data.h,v 1.1 2005/04/05 23:00:13 jshin%mailaps.org Exp $ */
-/* $-Id: generate_normalize_data.pl,v 1.9 2002/11/29 09:08:13 ishisone Exp -$ */
-/*
- * Do not edit this file!
- * This file is generated from UnicodeData.txt, CompositionExclusions-1.txt,
- * SpecialCasing.txt and CaseFolding.txt.
- */
-
-
-/*
- * Canonical Class
- */
-
-#define CANON_CLASS_BITS_0 9
-#define CANON_CLASS_BITS_1 7
-#define CANON_CLASS_BITS_2 5
-
-static const char16_t canon_class_imap[] = {
- 272, 400, 528, 656, 784, 784, 784, 784,
- 784, 784, 912, 784, 784, 784, 784, 1040,
- 1168, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 1296, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 0, 0,
- 0, 0, 0, 0, 6, 7, 8, 0,
- 9, 0, 10, 11, 0, 0, 12, 13,
- 14, 15, 16, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 17, 18, 0, 0, 17, 19, 0,
- 0, 17, 19, 0, 0, 17, 19, 0,
- 0, 17, 19, 0, 0, 0, 19, 0,
- 0, 0, 20, 0, 0, 17, 19, 0,
- 0, 0, 19, 0, 0, 0, 21, 0,
- 0, 22, 23, 0, 0, 24, 25, 0,
- 26, 27, 0, 28, 29, 0, 30, 0,
- 0, 31, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 33, 0, 0, 0, 0, 34, 0,
- 0, 0, 0, 0, 0, 35, 0, 0,
- 0, 36, 0, 0, 0, 0, 0, 0,
- 37, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 39, 40,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 41, 0, 0, 42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 43, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 44, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 45, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 46, 47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 48, 49, 50, 0, 0,
- 0, 0, 51, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-};
-
-static const struct {
- unsigned char tbl[32];
-} canon_class_table[] = {
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
- 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232,
- 220, 220, 220, 220, 232, 216, 220, 220, 220, 220,
- }},
- {{
- 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220,
- 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1,
- 1, 1, 1, 220, 220, 220, 220, 230, 230, 230,
- }},
- {{
- 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230,
- 230, 230, 220, 220, 0, 230, 230, 230, 220, 220, 220,
- 220, 230, 232, 220, 220, 230, 233, 234, 234, 233,
- }},
- {{
- 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230,
- 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230,
- 220, 230, 230, 230, 222, 220, 230, 230, 230, 230,
- }},
- {{
- 230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220,
- 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 0, 20, 21, 22, 0, 23,
- }},
- {{
- 0, 24, 25, 0, 230, 220, 0, 18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220,
- 220, 230, 230, 230, 230, 230, 220, 230, 230, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 230, 230, 230, 230, 230, 230, 230, 0, 0, 230,
- }},
- {{
- 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220,
- 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230,
- 230, 220, 220, 220, 230, 220, 220, 230, 220, 230,
- }},
- {{
- 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84,
- 91, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 103, 103, 9, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107,
- 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 118, 118, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122,
- 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 220, 220, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220,
- 0, 220, 0, 216, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0,
- 0, 0, 0, 0, 130, 130, 130, 130, 0, 0,
- }},
- {{
- 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 7, 0, 9, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 230,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 230, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 222, 230, 220, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 230, 220, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 230, 230, 220, 230, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230,
- 230, 230, 1, 1, 1, 230, 230, 0, 0, 0,
- }},
- {{
- 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218,
- 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 8, 8, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,
- }},
- {{
- 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 220, 0, 230, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 230, 1, 220, 0, 0, 0, 0, 9,
- }},
- {{
- 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0,
- 0, 0, 226, 216, 216, 216, 216, 216, 0, 0, 0,
- 0, 0, 0, 0, 0, 220, 220, 220, 220, 220,
- }},
- {{
- 220, 220, 220, 0, 0, 230, 230, 230, 230, 230, 220,
- 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230,
- 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- }},
-};
-
-/*
- * Canonical Composition
- */
-
-#define CANON_COMPOSE_BITS_0 9
-#define CANON_COMPOSE_BITS_1 7
-#define CANON_COMPOSE_BITS_2 5
-
-static const char16_t compose_imap[] = {
- 272, 400, 528, 656, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 0, 1, 2, 3, 0, 4, 5, 6,
- 7, 0, 8, 9, 0, 10, 0, 11,
- 0, 12, 0, 0, 13, 0, 0, 0,
- 0, 0, 0, 0, 14, 15, 16, 0,
- 17, 18, 19, 20, 0, 0, 21, 22,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 23, 24, 0, 0, 0, 25, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 26, 0, 0, 0, 0, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 28, 0, 29, 0, 30, 0,
- 0, 0, 31, 0, 0, 32, 33, 0,
- 0, 0, 34, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 36, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 37, 38, 39, 0, 40, 41, 0,
- 42, 43, 44, 45, 0, 46, 47, 48,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 0, 50, 0,
- 51, 52, 53, 54, 55, 56, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 57, 58, 59, 60, 61, 62,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-};
-
-static const struct {
- uint32_t tbl[32];
-} compose_table[] = {
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 65537, 65538, 65539, 0,
- }},
- {{
- 0, 1048580, 196628, 327703, 393244, 1114146, 65587,
- 458804, 458811, 983106, 65617, 327762, 393303, 196701,
- 589920, 1048681, 131193, 0, 524411, 458883, 458890,
- 1245329, 131236, 393382, 131244, 589998, 393399, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 1048765, 196813, 327888, 393429, 1114331, 65772,
- 458989, 524532, 917756, 131338, 327948, 393489, 196887,
- 590106, 1048867, 131379, 0, 524597, 459069, 524612,
- 1245516, 131423, 459105, 131432, 655722, 393588, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 196986, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 262525, 0, 65921, 65922, 131459,
- 65925, 0, 0, 262534, 0, 0, 0,
- 0, 65930, 0, 0, 0, 0, 262539,
- 197007, 65938, 0, 65939, 0, 0, 0,
- 262548, 0, 0, 0,
- }},
- {{
- 0, 0, 262552, 0, 65948, 65949, 131486,
- 65952, 0, 0, 262561, 0, 0, 0,
- 0, 65957, 0, 0, 0, 0, 262566,
- 197034, 65965, 0, 65966, 0, 0, 0,
- 262575, 0, 0, 0,
- }},
- {{
- 0, 0, 262579, 262583, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 131515, 131517, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 131519, 131521,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 65987, 65988,
- 0, 0, 0, 0,
- }},
- {{
- 65989, 65990, 0, 0, 0, 0, 0,
- 0, 65991, 65992, 65993, 65994, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 65995,
- }},
- {{
- 328140, 328145, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 328150, 328155, 0, 0, 0, 0,
- 0, 0, 66016, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66017, 66018, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 66019,
- 66020, 66021, 66022, 0, 0, 0, 0,
- 66023, 66024, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66025, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 459242, 0, 0, 0,
- 262641, 0, 328181, 0, 459258, 0, 0,
- 0, 0, 0, 262657,
- }},
- {{
- 0, 66053, 0, 0, 0, 393734, 0,
- 0, 0, 328204, 0, 0, 66065, 0,
- 66066, 0, 0, 524819, 0, 0, 0,
- 262683, 0, 393759, 0, 524837, 0, 0,
- 0, 0, 0, 262701,
- }},
- {{
- 0, 131633, 0, 0, 0, 524851, 0,
- 0, 0, 393787, 197185, 197188, 0, 0,
- 66119, 0, 0, 0, 131656, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 66122,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 131659, 0, 0, 66125, 0,
- 197198, 131665, 66131, 262740, 0, 66136, 0,
- 0, 0, 66137, 0,
- }},
- {{
- 0, 0, 0, 262746, 0, 0, 0,
- 66142, 0, 0, 0, 66143, 0, 66144,
- 0, 0, 131681, 0, 0, 66147, 0,
- 197220, 131687, 66153, 262762, 0, 66158, 0,
- 0, 0, 66159, 0,
- }},
- {{
- 0, 0, 0, 262768, 0, 0, 0,
- 66164, 0, 0, 0, 66165, 0, 66166,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66167, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 66168,
- 66169, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66170, 66171, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66172, 66173, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 197246, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66177, 0, 66178, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 66179, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66180, 0, 0,
- 66181, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66182, 0, 0, 0, 0, 0,
- 0, 0, 66183, 0, 0, 66184, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 131721, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 197259, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66190, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 131727,
- 66193, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 66194,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66195,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 197268,
- 0, 0, 0, 66199, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 131736,
- 66202, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 197275, 0, 0,
- 66206, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 66207, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66208, 66209, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 66210, 66211,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 66212, 66213, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 131750, 131752, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66218, 66219, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 66220, 66221,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 262830, 262834, 66230, 66231, 66232, 66233, 66234,
- 66235, 262844, 262848, 66244, 66245, 66246, 66247,
- 66248, 66249, 131786, 131788, 0, 0, 0,
- 0, 0, 0, 131790, 131792, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 262866, 262870, 66266, 66267, 66268, 66269, 66270,
- 66271, 262880, 262884, 66280, 66281, 66282, 66283,
- 66284, 66285, 197358, 197361, 0, 0, 0,
- 0, 0, 0, 197364, 197367, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 131834, 131836, 0, 0, 0, 0, 0,
- 0, 131838, 131840, 0, 0, 0, 0,
- 0, 0, 197378, 197381, 0, 0, 0,
- 0, 0, 0, 0, 197384, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 262923, 262927, 66323, 66324, 66325, 66326, 66327,
- 66328, 262937, 262941, 66337, 66338, 66339, 66340,
- 66341, 66342, 66343, 0, 0, 0, 66344,
- 0, 0, 0, 0, 0, 0, 0,
- 66345, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66346, 0, 0, 0, 0, 0,
- 0, 0, 0, 197419,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 66350,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66351, 0, 0, 0, 0, 0,
- 0, 0, 197424, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66355, 0, 66356, 0, 66357,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66358, 0, 66359, 0, 66360,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 66361, 0, 0, 0,
- 0, 66362, 0, 0, 66363, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 66364, 0, 66365, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 66366, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 66367, 0, 66368, 0,
- 0, 66369, 0, 0, 0, 0, 66370,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 66371, 0, 0, 66372, 66373, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66374, 66375, 0,
- 0, 66376, 66377, 0, 0, 66378, 66379,
- 66380, 66381, 0, 0,
- }},
- {{
- 0, 0, 66382, 66383, 0, 0, 66384,
- 66385, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66386, 66387, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 66388, 0, 0, 0, 0,
- 0, 66389, 66390, 0, 66391, 0, 0,
- 0, 0, 0, 0, 66392, 66393, 66394,
- 66395, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 66396,
- 0, 0, 0, 0, 66397, 0, 66398,
- 0, 66399, 0, 66400, 0, 66401, 0,
- 66402, 0, 66403, 0, 66404, 0, 66405,
- 0, 66406, 0, 66407,
- }},
- {{
- 0, 66408, 0, 0, 66409, 0, 66410,
- 0, 66411, 0, 0, 0, 0, 0,
- 0, 131948, 0, 0, 131950, 0, 0,
- 131952, 0, 0, 131954, 0, 0, 131956,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66422, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 66423,
- 0, 0, 0, 0, 66424, 0, 66425,
- 0, 66426, 0, 66427, 0, 66428, 0,
- 66429, 0, 66430, 0, 66431, 0, 66432,
- 0, 66433, 0, 66434,
- }},
- {{
- 0, 66435, 0, 0, 66436, 0, 66437,
- 0, 66438, 0, 0, 0, 0, 0,
- 0, 131975, 0, 0, 131977, 0, 0,
- 131979, 0, 0, 131981, 0, 0, 131983,
- 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66449, 66450, 66451, 66452, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
- 0, 66453, 0, 0,
- }},
-};
-
-static const struct composition compose_seq[] = {
- { 0x00000000, 0x00000000 }, { 0x00000338, 0x0000226e },
- { 0x00000338, 0x00002260 }, { 0x00000338, 0x0000226f },
- { 0x00000300, 0x000000c0 }, { 0x00000301, 0x000000c1 },
- { 0x00000302, 0x000000c2 }, { 0x00000303, 0x000000c3 },
- { 0x00000304, 0x00000100 }, { 0x00000306, 0x00000102 },
- { 0x00000307, 0x00000226 }, { 0x00000308, 0x000000c4 },
- { 0x00000309, 0x00001ea2 }, { 0x0000030a, 0x000000c5 },
- { 0x0000030c, 0x000001cd }, { 0x0000030f, 0x00000200 },
- { 0x00000311, 0x00000202 }, { 0x00000323, 0x00001ea0 },
- { 0x00000325, 0x00001e00 }, { 0x00000328, 0x00000104 },
- { 0x00000307, 0x00001e02 }, { 0x00000323, 0x00001e04 },
- { 0x00000331, 0x00001e06 }, { 0x00000301, 0x00000106 },
- { 0x00000302, 0x00000108 }, { 0x00000307, 0x0000010a },
- { 0x0000030c, 0x0000010c }, { 0x00000327, 0x000000c7 },
- { 0x00000307, 0x00001e0a }, { 0x0000030c, 0x0000010e },
- { 0x00000323, 0x00001e0c }, { 0x00000327, 0x00001e10 },
- { 0x0000032d, 0x00001e12 }, { 0x00000331, 0x00001e0e },
- { 0x00000300, 0x000000c8 }, { 0x00000301, 0x000000c9 },
- { 0x00000302, 0x000000ca }, { 0x00000303, 0x00001ebc },
- { 0x00000304, 0x00000112 }, { 0x00000306, 0x00000114 },
- { 0x00000307, 0x00000116 }, { 0x00000308, 0x000000cb },
- { 0x00000309, 0x00001eba }, { 0x0000030c, 0x0000011a },
- { 0x0000030f, 0x00000204 }, { 0x00000311, 0x00000206 },
- { 0x00000323, 0x00001eb8 }, { 0x00000327, 0x00000228 },
- { 0x00000328, 0x00000118 }, { 0x0000032d, 0x00001e18 },
- { 0x00000330, 0x00001e1a }, { 0x00000307, 0x00001e1e },
- { 0x00000301, 0x000001f4 }, { 0x00000302, 0x0000011c },
- { 0x00000304, 0x00001e20 }, { 0x00000306, 0x0000011e },
- { 0x00000307, 0x00000120 }, { 0x0000030c, 0x000001e6 },
- { 0x00000327, 0x00000122 }, { 0x00000302, 0x00000124 },
- { 0x00000307, 0x00001e22 }, { 0x00000308, 0x00001e26 },
- { 0x0000030c, 0x0000021e }, { 0x00000323, 0x00001e24 },
- { 0x00000327, 0x00001e28 }, { 0x0000032e, 0x00001e2a },
- { 0x00000300, 0x000000cc }, { 0x00000301, 0x000000cd },
- { 0x00000302, 0x000000ce }, { 0x00000303, 0x00000128 },
- { 0x00000304, 0x0000012a }, { 0x00000306, 0x0000012c },
- { 0x00000307, 0x00000130 }, { 0x00000308, 0x000000cf },
- { 0x00000309, 0x00001ec8 }, { 0x0000030c, 0x000001cf },
- { 0x0000030f, 0x00000208 }, { 0x00000311, 0x0000020a },
- { 0x00000323, 0x00001eca }, { 0x00000328, 0x0000012e },
- { 0x00000330, 0x00001e2c }, { 0x00000302, 0x00000134 },
- { 0x00000301, 0x00001e30 }, { 0x0000030c, 0x000001e8 },
- { 0x00000323, 0x00001e32 }, { 0x00000327, 0x00000136 },
- { 0x00000331, 0x00001e34 }, { 0x00000301, 0x00000139 },
- { 0x0000030c, 0x0000013d }, { 0x00000323, 0x00001e36 },
- { 0x00000327, 0x0000013b }, { 0x0000032d, 0x00001e3c },
- { 0x00000331, 0x00001e3a }, { 0x00000301, 0x00001e3e },
- { 0x00000307, 0x00001e40 }, { 0x00000323, 0x00001e42 },
- { 0x00000300, 0x000001f8 }, { 0x00000301, 0x00000143 },
- { 0x00000303, 0x000000d1 }, { 0x00000307, 0x00001e44 },
- { 0x0000030c, 0x00000147 }, { 0x00000323, 0x00001e46 },
- { 0x00000327, 0x00000145 }, { 0x0000032d, 0x00001e4a },
- { 0x00000331, 0x00001e48 }, { 0x00000300, 0x000000d2 },
- { 0x00000301, 0x000000d3 }, { 0x00000302, 0x000000d4 },
- { 0x00000303, 0x000000d5 }, { 0x00000304, 0x0000014c },
- { 0x00000306, 0x0000014e }, { 0x00000307, 0x0000022e },
- { 0x00000308, 0x000000d6 }, { 0x00000309, 0x00001ece },
- { 0x0000030b, 0x00000150 }, { 0x0000030c, 0x000001d1 },
- { 0x0000030f, 0x0000020c }, { 0x00000311, 0x0000020e },
- { 0x0000031b, 0x000001a0 }, { 0x00000323, 0x00001ecc },
- { 0x00000328, 0x000001ea }, { 0x00000301, 0x00001e54 },
- { 0x00000307, 0x00001e56 }, { 0x00000301, 0x00000154 },
- { 0x00000307, 0x00001e58 }, { 0x0000030c, 0x00000158 },
- { 0x0000030f, 0x00000210 }, { 0x00000311, 0x00000212 },
- { 0x00000323, 0x00001e5a }, { 0x00000327, 0x00000156 },
- { 0x00000331, 0x00001e5e }, { 0x00000301, 0x0000015a },
- { 0x00000302, 0x0000015c }, { 0x00000307, 0x00001e60 },
- { 0x0000030c, 0x00000160 }, { 0x00000323, 0x00001e62 },
- { 0x00000326, 0x00000218 }, { 0x00000327, 0x0000015e },
- { 0x00000307, 0x00001e6a }, { 0x0000030c, 0x00000164 },
- { 0x00000323, 0x00001e6c }, { 0x00000326, 0x0000021a },
- { 0x00000327, 0x00000162 }, { 0x0000032d, 0x00001e70 },
- { 0x00000331, 0x00001e6e }, { 0x00000300, 0x000000d9 },
- { 0x00000301, 0x000000da }, { 0x00000302, 0x000000db },
- { 0x00000303, 0x00000168 }, { 0x00000304, 0x0000016a },
- { 0x00000306, 0x0000016c }, { 0x00000308, 0x000000dc },
- { 0x00000309, 0x00001ee6 }, { 0x0000030a, 0x0000016e },
- { 0x0000030b, 0x00000170 }, { 0x0000030c, 0x000001d3 },
- { 0x0000030f, 0x00000214 }, { 0x00000311, 0x00000216 },
- { 0x0000031b, 0x000001af }, { 0x00000323, 0x00001ee4 },
- { 0x00000324, 0x00001e72 }, { 0x00000328, 0x00000172 },
- { 0x0000032d, 0x00001e76 }, { 0x00000330, 0x00001e74 },
- { 0x00000303, 0x00001e7c }, { 0x00000323, 0x00001e7e },
- { 0x00000300, 0x00001e80 }, { 0x00000301, 0x00001e82 },
- { 0x00000302, 0x00000174 }, { 0x00000307, 0x00001e86 },
- { 0x00000308, 0x00001e84 }, { 0x00000323, 0x00001e88 },
- { 0x00000307, 0x00001e8a }, { 0x00000308, 0x00001e8c },
- { 0x00000300, 0x00001ef2 }, { 0x00000301, 0x000000dd },
- { 0x00000302, 0x00000176 }, { 0x00000303, 0x00001ef8 },
- { 0x00000304, 0x00000232 }, { 0x00000307, 0x00001e8e },
- { 0x00000308, 0x00000178 }, { 0x00000309, 0x00001ef6 },
- { 0x00000323, 0x00001ef4 }, { 0x00000301, 0x00000179 },
- { 0x00000302, 0x00001e90 }, { 0x00000307, 0x0000017b },
- { 0x0000030c, 0x0000017d }, { 0x00000323, 0x00001e92 },
- { 0x00000331, 0x00001e94 }, { 0x00000300, 0x000000e0 },
- { 0x00000301, 0x000000e1 }, { 0x00000302, 0x000000e2 },
- { 0x00000303, 0x000000e3 }, { 0x00000304, 0x00000101 },
- { 0x00000306, 0x00000103 }, { 0x00000307, 0x00000227 },
- { 0x00000308, 0x000000e4 }, { 0x00000309, 0x00001ea3 },
- { 0x0000030a, 0x000000e5 }, { 0x0000030c, 0x000001ce },
- { 0x0000030f, 0x00000201 }, { 0x00000311, 0x00000203 },
- { 0x00000323, 0x00001ea1 }, { 0x00000325, 0x00001e01 },
- { 0x00000328, 0x00000105 }, { 0x00000307, 0x00001e03 },
- { 0x00000323, 0x00001e05 }, { 0x00000331, 0x00001e07 },
- { 0x00000301, 0x00000107 }, { 0x00000302, 0x00000109 },
- { 0x00000307, 0x0000010b }, { 0x0000030c, 0x0000010d },
- { 0x00000327, 0x000000e7 }, { 0x00000307, 0x00001e0b },
- { 0x0000030c, 0x0000010f }, { 0x00000323, 0x00001e0d },
- { 0x00000327, 0x00001e11 }, { 0x0000032d, 0x00001e13 },
- { 0x00000331, 0x00001e0f }, { 0x00000300, 0x000000e8 },
- { 0x00000301, 0x000000e9 }, { 0x00000302, 0x000000ea },
- { 0x00000303, 0x00001ebd }, { 0x00000304, 0x00000113 },
- { 0x00000306, 0x00000115 }, { 0x00000307, 0x00000117 },
- { 0x00000308, 0x000000eb }, { 0x00000309, 0x00001ebb },
- { 0x0000030c, 0x0000011b }, { 0x0000030f, 0x00000205 },
- { 0x00000311, 0x00000207 }, { 0x00000323, 0x00001eb9 },
- { 0x00000327, 0x00000229 }, { 0x00000328, 0x00000119 },
- { 0x0000032d, 0x00001e19 }, { 0x00000330, 0x00001e1b },
- { 0x00000307, 0x00001e1f }, { 0x00000301, 0x000001f5 },
- { 0x00000302, 0x0000011d }, { 0x00000304, 0x00001e21 },
- { 0x00000306, 0x0000011f }, { 0x00000307, 0x00000121 },
- { 0x0000030c, 0x000001e7 }, { 0x00000327, 0x00000123 },
- { 0x00000302, 0x00000125 }, { 0x00000307, 0x00001e23 },
- { 0x00000308, 0x00001e27 }, { 0x0000030c, 0x0000021f },
- { 0x00000323, 0x00001e25 }, { 0x00000327, 0x00001e29 },
- { 0x0000032e, 0x00001e2b }, { 0x00000331, 0x00001e96 },
- { 0x00000300, 0x000000ec }, { 0x00000301, 0x000000ed },
- { 0x00000302, 0x000000ee }, { 0x00000303, 0x00000129 },
- { 0x00000304, 0x0000012b }, { 0x00000306, 0x0000012d },
- { 0x00000308, 0x000000ef }, { 0x00000309, 0x00001ec9 },
- { 0x0000030c, 0x000001d0 }, { 0x0000030f, 0x00000209 },
- { 0x00000311, 0x0000020b }, { 0x00000323, 0x00001ecb },
- { 0x00000328, 0x0000012f }, { 0x00000330, 0x00001e2d },
- { 0x00000302, 0x00000135 }, { 0x0000030c, 0x000001f0 },
- { 0x00000301, 0x00001e31 }, { 0x0000030c, 0x000001e9 },
- { 0x00000323, 0x00001e33 }, { 0x00000327, 0x00000137 },
- { 0x00000331, 0x00001e35 }, { 0x00000301, 0x0000013a },
- { 0x0000030c, 0x0000013e }, { 0x00000323, 0x00001e37 },
- { 0x00000327, 0x0000013c }, { 0x0000032d, 0x00001e3d },
- { 0x00000331, 0x00001e3b }, { 0x00000301, 0x00001e3f },
- { 0x00000307, 0x00001e41 }, { 0x00000323, 0x00001e43 },
- { 0x00000300, 0x000001f9 }, { 0x00000301, 0x00000144 },
- { 0x00000303, 0x000000f1 }, { 0x00000307, 0x00001e45 },
- { 0x0000030c, 0x00000148 }, { 0x00000323, 0x00001e47 },
- { 0x00000327, 0x00000146 }, { 0x0000032d, 0x00001e4b },
- { 0x00000331, 0x00001e49 }, { 0x00000300, 0x000000f2 },
- { 0x00000301, 0x000000f3 }, { 0x00000302, 0x000000f4 },
- { 0x00000303, 0x000000f5 }, { 0x00000304, 0x0000014d },
- { 0x00000306, 0x0000014f }, { 0x00000307, 0x0000022f },
- { 0x00000308, 0x000000f6 }, { 0x00000309, 0x00001ecf },
- { 0x0000030b, 0x00000151 }, { 0x0000030c, 0x000001d2 },
- { 0x0000030f, 0x0000020d }, { 0x00000311, 0x0000020f },
- { 0x0000031b, 0x000001a1 }, { 0x00000323, 0x00001ecd },
- { 0x00000328, 0x000001eb }, { 0x00000301, 0x00001e55 },
- { 0x00000307, 0x00001e57 }, { 0x00000301, 0x00000155 },
- { 0x00000307, 0x00001e59 }, { 0x0000030c, 0x00000159 },
- { 0x0000030f, 0x00000211 }, { 0x00000311, 0x00000213 },
- { 0x00000323, 0x00001e5b }, { 0x00000327, 0x00000157 },
- { 0x00000331, 0x00001e5f }, { 0x00000301, 0x0000015b },
- { 0x00000302, 0x0000015d }, { 0x00000307, 0x00001e61 },
- { 0x0000030c, 0x00000161 }, { 0x00000323, 0x00001e63 },
- { 0x00000326, 0x00000219 }, { 0x00000327, 0x0000015f },
- { 0x00000307, 0x00001e6b }, { 0x00000308, 0x00001e97 },
- { 0x0000030c, 0x00000165 }, { 0x00000323, 0x00001e6d },
- { 0x00000326, 0x0000021b }, { 0x00000327, 0x00000163 },
- { 0x0000032d, 0x00001e71 }, { 0x00000331, 0x00001e6f },
- { 0x00000300, 0x000000f9 }, { 0x00000301, 0x000000fa },
- { 0x00000302, 0x000000fb }, { 0x00000303, 0x00000169 },
- { 0x00000304, 0x0000016b }, { 0x00000306, 0x0000016d },
- { 0x00000308, 0x000000fc }, { 0x00000309, 0x00001ee7 },
- { 0x0000030a, 0x0000016f }, { 0x0000030b, 0x00000171 },
- { 0x0000030c, 0x000001d4 }, { 0x0000030f, 0x00000215 },
- { 0x00000311, 0x00000217 }, { 0x0000031b, 0x000001b0 },
- { 0x00000323, 0x00001ee5 }, { 0x00000324, 0x00001e73 },
- { 0x00000328, 0x00000173 }, { 0x0000032d, 0x00001e77 },
- { 0x00000330, 0x00001e75 }, { 0x00000303, 0x00001e7d },
- { 0x00000323, 0x00001e7f }, { 0x00000300, 0x00001e81 },
- { 0x00000301, 0x00001e83 }, { 0x00000302, 0x00000175 },
- { 0x00000307, 0x00001e87 }, { 0x00000308, 0x00001e85 },
- { 0x0000030a, 0x00001e98 }, { 0x00000323, 0x00001e89 },
- { 0x00000307, 0x00001e8b }, { 0x00000308, 0x00001e8d },
- { 0x00000300, 0x00001ef3 }, { 0x00000301, 0x000000fd },
- { 0x00000302, 0x00000177 }, { 0x00000303, 0x00001ef9 },
- { 0x00000304, 0x00000233 }, { 0x00000307, 0x00001e8f },
- { 0x00000308, 0x000000ff }, { 0x00000309, 0x00001ef7 },
- { 0x0000030a, 0x00001e99 }, { 0x00000323, 0x00001ef5 },
- { 0x00000301, 0x0000017a }, { 0x00000302, 0x00001e91 },
- { 0x00000307, 0x0000017c }, { 0x0000030c, 0x0000017e },
- { 0x00000323, 0x00001e93 }, { 0x00000331, 0x00001e95 },
- { 0x00000300, 0x00001fed }, { 0x00000301, 0x00000385 },
- { 0x00000342, 0x00001fc1 }, { 0x00000300, 0x00001ea6 },
- { 0x00000301, 0x00001ea4 }, { 0x00000303, 0x00001eaa },
- { 0x00000309, 0x00001ea8 }, { 0x00000304, 0x000001de },
- { 0x00000301, 0x000001fa }, { 0x00000301, 0x000001fc },
- { 0x00000304, 0x000001e2 }, { 0x00000301, 0x00001e08 },
- { 0x00000300, 0x00001ec0 }, { 0x00000301, 0x00001ebe },
- { 0x00000303, 0x00001ec4 }, { 0x00000309, 0x00001ec2 },
- { 0x00000301, 0x00001e2e }, { 0x00000300, 0x00001ed2 },
- { 0x00000301, 0x00001ed0 }, { 0x00000303, 0x00001ed6 },
- { 0x00000309, 0x00001ed4 }, { 0x00000301, 0x00001e4c },
- { 0x00000304, 0x0000022c }, { 0x00000308, 0x00001e4e },
- { 0x00000304, 0x0000022a }, { 0x00000301, 0x000001fe },
- { 0x00000300, 0x000001db }, { 0x00000301, 0x000001d7 },
- { 0x00000304, 0x000001d5 }, { 0x0000030c, 0x000001d9 },
- { 0x00000300, 0x00001ea7 }, { 0x00000301, 0x00001ea5 },
- { 0x00000303, 0x00001eab }, { 0x00000309, 0x00001ea9 },
- { 0x00000304, 0x000001df }, { 0x00000301, 0x000001fb },
- { 0x00000301, 0x000001fd }, { 0x00000304, 0x000001e3 },
- { 0x00000301, 0x00001e09 }, { 0x00000300, 0x00001ec1 },
- { 0x00000301, 0x00001ebf }, { 0x00000303, 0x00001ec5 },
- { 0x00000309, 0x00001ec3 }, { 0x00000301, 0x00001e2f },
- { 0x00000300, 0x00001ed3 }, { 0x00000301, 0x00001ed1 },
- { 0x00000303, 0x00001ed7 }, { 0x00000309, 0x00001ed5 },
- { 0x00000301, 0x00001e4d }, { 0x00000304, 0x0000022d },
- { 0x00000308, 0x00001e4f }, { 0x00000304, 0x0000022b },
- { 0x00000301, 0x000001ff }, { 0x00000300, 0x000001dc },
- { 0x00000301, 0x000001d8 }, { 0x00000304, 0x000001d6 },
- { 0x0000030c, 0x000001da }, { 0x00000300, 0x00001eb0 },
- { 0x00000301, 0x00001eae }, { 0x00000303, 0x00001eb4 },
- { 0x00000309, 0x00001eb2 }, { 0x00000300, 0x00001eb1 },
- { 0x00000301, 0x00001eaf }, { 0x00000303, 0x00001eb5 },
- { 0x00000309, 0x00001eb3 }, { 0x00000300, 0x00001e14 },
- { 0x00000301, 0x00001e16 }, { 0x00000300, 0x00001e15 },
- { 0x00000301, 0x00001e17 }, { 0x00000300, 0x00001e50 },
- { 0x00000301, 0x00001e52 }, { 0x00000300, 0x00001e51 },
- { 0x00000301, 0x00001e53 }, { 0x00000307, 0x00001e64 },
- { 0x00000307, 0x00001e65 }, { 0x00000307, 0x00001e66 },
- { 0x00000307, 0x00001e67 }, { 0x00000301, 0x00001e78 },
- { 0x00000301, 0x00001e79 }, { 0x00000308, 0x00001e7a },
- { 0x00000308, 0x00001e7b }, { 0x00000307, 0x00001e9b },
- { 0x00000300, 0x00001edc }, { 0x00000301, 0x00001eda },
- { 0x00000303, 0x00001ee0 }, { 0x00000309, 0x00001ede },
- { 0x00000323, 0x00001ee2 }, { 0x00000300, 0x00001edd },
- { 0x00000301, 0x00001edb }, { 0x00000303, 0x00001ee1 },
- { 0x00000309, 0x00001edf }, { 0x00000323, 0x00001ee3 },
- { 0x00000300, 0x00001eea }, { 0x00000301, 0x00001ee8 },
- { 0x00000303, 0x00001eee }, { 0x00000309, 0x00001eec },
- { 0x00000323, 0x00001ef0 }, { 0x00000300, 0x00001eeb },
- { 0x00000301, 0x00001ee9 }, { 0x00000303, 0x00001eef },
- { 0x00000309, 0x00001eed }, { 0x00000323, 0x00001ef1 },
- { 0x0000030c, 0x000001ee }, { 0x00000304, 0x000001ec },
- { 0x00000304, 0x000001ed }, { 0x00000304, 0x000001e0 },
- { 0x00000304, 0x000001e1 }, { 0x00000306, 0x00001e1c },
- { 0x00000306, 0x00001e1d }, { 0x00000304, 0x00000230 },
- { 0x00000304, 0x00000231 }, { 0x0000030c, 0x000001ef },
- { 0x00000300, 0x00001fba }, { 0x00000301, 0x00000386 },
- { 0x00000304, 0x00001fb9 }, { 0x00000306, 0x00001fb8 },
- { 0x00000313, 0x00001f08 }, { 0x00000314, 0x00001f09 },
- { 0x00000345, 0x00001fbc }, { 0x00000300, 0x00001fc8 },
- { 0x00000301, 0x00000388 }, { 0x00000313, 0x00001f18 },
- { 0x00000314, 0x00001f19 }, { 0x00000300, 0x00001fca },
- { 0x00000301, 0x00000389 }, { 0x00000313, 0x00001f28 },
- { 0x00000314, 0x00001f29 }, { 0x00000345, 0x00001fcc },
- { 0x00000300, 0x00001fda }, { 0x00000301, 0x0000038a },
- { 0x00000304, 0x00001fd9 }, { 0x00000306, 0x00001fd8 },
- { 0x00000308, 0x000003aa }, { 0x00000313, 0x00001f38 },
- { 0x00000314, 0x00001f39 }, { 0x00000300, 0x00001ff8 },
- { 0x00000301, 0x0000038c }, { 0x00000313, 0x00001f48 },
- { 0x00000314, 0x00001f49 }, { 0x00000314, 0x00001fec },
- { 0x00000300, 0x00001fea }, { 0x00000301, 0x0000038e },
- { 0x00000304, 0x00001fe9 }, { 0x00000306, 0x00001fe8 },
- { 0x00000308, 0x000003ab }, { 0x00000314, 0x00001f59 },
- { 0x00000300, 0x00001ffa }, { 0x00000301, 0x0000038f },
- { 0x00000313, 0x00001f68 }, { 0x00000314, 0x00001f69 },
- { 0x00000345, 0x00001ffc }, { 0x00000345, 0x00001fb4 },
- { 0x00000345, 0x00001fc4 }, { 0x00000300, 0x00001f70 },
- { 0x00000301, 0x000003ac }, { 0x00000304, 0x00001fb1 },
- { 0x00000306, 0x00001fb0 }, { 0x00000313, 0x00001f00 },
- { 0x00000314, 0x00001f01 }, { 0x00000342, 0x00001fb6 },
- { 0x00000345, 0x00001fb3 }, { 0x00000300, 0x00001f72 },
- { 0x00000301, 0x000003ad }, { 0x00000313, 0x00001f10 },
- { 0x00000314, 0x00001f11 }, { 0x00000300, 0x00001f74 },
- { 0x00000301, 0x000003ae }, { 0x00000313, 0x00001f20 },
- { 0x00000314, 0x00001f21 }, { 0x00000342, 0x00001fc6 },
- { 0x00000345, 0x00001fc3 }, { 0x00000300, 0x00001f76 },
- { 0x00000301, 0x000003af }, { 0x00000304, 0x00001fd1 },
- { 0x00000306, 0x00001fd0 }, { 0x00000308, 0x000003ca },
- { 0x00000313, 0x00001f30 }, { 0x00000314, 0x00001f31 },
- { 0x00000342, 0x00001fd6 }, { 0x00000300, 0x00001f78 },
- { 0x00000301, 0x000003cc }, { 0x00000313, 0x00001f40 },
- { 0x00000314, 0x00001f41 }, { 0x00000313, 0x00001fe4 },
- { 0x00000314, 0x00001fe5 }, { 0x00000300, 0x00001f7a },
- { 0x00000301, 0x000003cd }, { 0x00000304, 0x00001fe1 },
- { 0x00000306, 0x00001fe0 }, { 0x00000308, 0x000003cb },
- { 0x00000313, 0x00001f50 }, { 0x00000314, 0x00001f51 },
- { 0x00000342, 0x00001fe6 }, { 0x00000300, 0x00001f7c },
- { 0x00000301, 0x000003ce }, { 0x00000313, 0x00001f60 },
- { 0x00000314, 0x00001f61 }, { 0x00000342, 0x00001ff6 },
- { 0x00000345, 0x00001ff3 }, { 0x00000300, 0x00001fd2 },
- { 0x00000301, 0x00000390 }, { 0x00000342, 0x00001fd7 },
- { 0x00000300, 0x00001fe2 }, { 0x00000301, 0x000003b0 },
- { 0x00000342, 0x00001fe7 }, { 0x00000345, 0x00001ff4 },
- { 0x00000301, 0x000003d3 }, { 0x00000308, 0x000003d4 },
- { 0x00000308, 0x00000407 }, { 0x00000306, 0x000004d0 },
- { 0x00000308, 0x000004d2 }, { 0x00000301, 0x00000403 },
- { 0x00000300, 0x00000400 }, { 0x00000306, 0x000004d6 },
- { 0x00000308, 0x00000401 }, { 0x00000306, 0x000004c1 },
- { 0x00000308, 0x000004dc }, { 0x00000308, 0x000004de },
- { 0x00000300, 0x0000040d }, { 0x00000304, 0x000004e2 },
- { 0x00000306, 0x00000419 }, { 0x00000308, 0x000004e4 },
- { 0x00000301, 0x0000040c }, { 0x00000308, 0x000004e6 },
- { 0x00000304, 0x000004ee }, { 0x00000306, 0x0000040e },
- { 0x00000308, 0x000004f0 }, { 0x0000030b, 0x000004f2 },
- { 0x00000308, 0x000004f4 }, { 0x00000308, 0x000004f8 },
- { 0x00000308, 0x000004ec }, { 0x00000306, 0x000004d1 },
- { 0x00000308, 0x000004d3 }, { 0x00000301, 0x00000453 },
- { 0x00000300, 0x00000450 }, { 0x00000306, 0x000004d7 },
- { 0x00000308, 0x00000451 }, { 0x00000306, 0x000004c2 },
- { 0x00000308, 0x000004dd }, { 0x00000308, 0x000004df },
- { 0x00000300, 0x0000045d }, { 0x00000304, 0x000004e3 },
- { 0x00000306, 0x00000439 }, { 0x00000308, 0x000004e5 },
- { 0x00000301, 0x0000045c }, { 0x00000308, 0x000004e7 },
- { 0x00000304, 0x000004ef }, { 0x00000306, 0x0000045e },
- { 0x00000308, 0x000004f1 }, { 0x0000030b, 0x000004f3 },
- { 0x00000308, 0x000004f5 }, { 0x00000308, 0x000004f9 },
- { 0x00000308, 0x000004ed }, { 0x00000308, 0x00000457 },
- { 0x0000030f, 0x00000476 }, { 0x0000030f, 0x00000477 },
- { 0x00000308, 0x000004da }, { 0x00000308, 0x000004db },
- { 0x00000308, 0x000004ea }, { 0x00000308, 0x000004eb },
- { 0x00000653, 0x00000622 }, { 0x00000654, 0x00000623 },
- { 0x00000655, 0x00000625 }, { 0x00000654, 0x00000624 },
- { 0x00000654, 0x00000626 }, { 0x00000654, 0x000006c2 },
- { 0x00000654, 0x000006d3 }, { 0x00000654, 0x000006c0 },
- { 0x0000093c, 0x00000929 }, { 0x0000093c, 0x00000931 },
- { 0x0000093c, 0x00000934 }, { 0x000009be, 0x000009cb },
- { 0x000009d7, 0x000009cc }, { 0x00000b3e, 0x00000b4b },
- { 0x00000b56, 0x00000b48 }, { 0x00000b57, 0x00000b4c },
- { 0x00000bd7, 0x00000b94 }, { 0x00000bbe, 0x00000bca },
- { 0x00000bd7, 0x00000bcc }, { 0x00000bbe, 0x00000bcb },
- { 0x00000c56, 0x00000c48 }, { 0x00000cd5, 0x00000cc0 },
- { 0x00000cc2, 0x00000cca }, { 0x00000cd5, 0x00000cc7 },
- { 0x00000cd6, 0x00000cc8 }, { 0x00000cd5, 0x00000ccb },
- { 0x00000d3e, 0x00000d4a }, { 0x00000d57, 0x00000d4c },
- { 0x00000d3e, 0x00000d4b }, { 0x00000dca, 0x00000dda },
- { 0x00000dcf, 0x00000ddc }, { 0x00000ddf, 0x00000dde },
- { 0x00000dca, 0x00000ddd }, { 0x0000102e, 0x00001026 },
- { 0x00000304, 0x00001e38 }, { 0x00000304, 0x00001e39 },
- { 0x00000304, 0x00001e5c }, { 0x00000304, 0x00001e5d },
- { 0x00000307, 0x00001e68 }, { 0x00000307, 0x00001e69 },
- { 0x00000302, 0x00001eac }, { 0x00000306, 0x00001eb6 },
- { 0x00000302, 0x00001ead }, { 0x00000306, 0x00001eb7 },
- { 0x00000302, 0x00001ec6 }, { 0x00000302, 0x00001ec7 },
- { 0x00000302, 0x00001ed8 }, { 0x00000302, 0x00001ed9 },
- { 0x00000300, 0x00001f02 }, { 0x00000301, 0x00001f04 },
- { 0x00000342, 0x00001f06 }, { 0x00000345, 0x00001f80 },
- { 0x00000300, 0x00001f03 }, { 0x00000301, 0x00001f05 },
- { 0x00000342, 0x00001f07 }, { 0x00000345, 0x00001f81 },
- { 0x00000345, 0x00001f82 }, { 0x00000345, 0x00001f83 },
- { 0x00000345, 0x00001f84 }, { 0x00000345, 0x00001f85 },
- { 0x00000345, 0x00001f86 }, { 0x00000345, 0x00001f87 },
- { 0x00000300, 0x00001f0a }, { 0x00000301, 0x00001f0c },
- { 0x00000342, 0x00001f0e }, { 0x00000345, 0x00001f88 },
- { 0x00000300, 0x00001f0b }, { 0x00000301, 0x00001f0d },
- { 0x00000342, 0x00001f0f }, { 0x00000345, 0x00001f89 },
- { 0x00000345, 0x00001f8a }, { 0x00000345, 0x00001f8b },
- { 0x00000345, 0x00001f8c }, { 0x00000345, 0x00001f8d },
- { 0x00000345, 0x00001f8e }, { 0x00000345, 0x00001f8f },
- { 0x00000300, 0x00001f12 }, { 0x00000301, 0x00001f14 },
- { 0x00000300, 0x00001f13 }, { 0x00000301, 0x00001f15 },
- { 0x00000300, 0x00001f1a }, { 0x00000301, 0x00001f1c },
- { 0x00000300, 0x00001f1b }, { 0x00000301, 0x00001f1d },
- { 0x00000300, 0x00001f22 }, { 0x00000301, 0x00001f24 },
- { 0x00000342, 0x00001f26 }, { 0x00000345, 0x00001f90 },
- { 0x00000300, 0x00001f23 }, { 0x00000301, 0x00001f25 },
- { 0x00000342, 0x00001f27 }, { 0x00000345, 0x00001f91 },
- { 0x00000345, 0x00001f92 }, { 0x00000345, 0x00001f93 },
- { 0x00000345, 0x00001f94 }, { 0x00000345, 0x00001f95 },
- { 0x00000345, 0x00001f96 }, { 0x00000345, 0x00001f97 },
- { 0x00000300, 0x00001f2a }, { 0x00000301, 0x00001f2c },
- { 0x00000342, 0x00001f2e }, { 0x00000345, 0x00001f98 },
- { 0x00000300, 0x00001f2b }, { 0x00000301, 0x00001f2d },
- { 0x00000342, 0x00001f2f }, { 0x00000345, 0x00001f99 },
- { 0x00000345, 0x00001f9a }, { 0x00000345, 0x00001f9b },
- { 0x00000345, 0x00001f9c }, { 0x00000345, 0x00001f9d },
- { 0x00000345, 0x00001f9e }, { 0x00000345, 0x00001f9f },
- { 0x00000300, 0x00001f32 }, { 0x00000301, 0x00001f34 },
- { 0x00000342, 0x00001f36 }, { 0x00000300, 0x00001f33 },
- { 0x00000301, 0x00001f35 }, { 0x00000342, 0x00001f37 },
- { 0x00000300, 0x00001f3a }, { 0x00000301, 0x00001f3c },
- { 0x00000342, 0x00001f3e }, { 0x00000300, 0x00001f3b },
- { 0x00000301, 0x00001f3d }, { 0x00000342, 0x00001f3f },
- { 0x00000300, 0x00001f42 }, { 0x00000301, 0x00001f44 },
- { 0x00000300, 0x00001f43 }, { 0x00000301, 0x00001f45 },
- { 0x00000300, 0x00001f4a }, { 0x00000301, 0x00001f4c },
- { 0x00000300, 0x00001f4b }, { 0x00000301, 0x00001f4d },
- { 0x00000300, 0x00001f52 }, { 0x00000301, 0x00001f54 },
- { 0x00000342, 0x00001f56 }, { 0x00000300, 0x00001f53 },
- { 0x00000301, 0x00001f55 }, { 0x00000342, 0x00001f57 },
- { 0x00000300, 0x00001f5b }, { 0x00000301, 0x00001f5d },
- { 0x00000342, 0x00001f5f }, { 0x00000300, 0x00001f62 },
- { 0x00000301, 0x00001f64 }, { 0x00000342, 0x00001f66 },
- { 0x00000345, 0x00001fa0 }, { 0x00000300, 0x00001f63 },
- { 0x00000301, 0x00001f65 }, { 0x00000342, 0x00001f67 },
- { 0x00000345, 0x00001fa1 }, { 0x00000345, 0x00001fa2 },
- { 0x00000345, 0x00001fa3 }, { 0x00000345, 0x00001fa4 },
- { 0x00000345, 0x00001fa5 }, { 0x00000345, 0x00001fa6 },
- { 0x00000345, 0x00001fa7 }, { 0x00000300, 0x00001f6a },
- { 0x00000301, 0x00001f6c }, { 0x00000342, 0x00001f6e },
- { 0x00000345, 0x00001fa8 }, { 0x00000300, 0x00001f6b },
- { 0x00000301, 0x00001f6d }, { 0x00000342, 0x00001f6f },
- { 0x00000345, 0x00001fa9 }, { 0x00000345, 0x00001faa },
- { 0x00000345, 0x00001fab }, { 0x00000345, 0x00001fac },
- { 0x00000345, 0x00001fad }, { 0x00000345, 0x00001fae },
- { 0x00000345, 0x00001faf }, { 0x00000345, 0x00001fb2 },
- { 0x00000345, 0x00001fc2 }, { 0x00000345, 0x00001ff2 },
- { 0x00000345, 0x00001fb7 }, { 0x00000300, 0x00001fcd },
- { 0x00000301, 0x00001fce }, { 0x00000342, 0x00001fcf },
- { 0x00000345, 0x00001fc7 }, { 0x00000345, 0x00001ff7 },
- { 0x00000300, 0x00001fdd }, { 0x00000301, 0x00001fde },
- { 0x00000342, 0x00001fdf }, { 0x00000338, 0x0000219a },
- { 0x00000338, 0x0000219b }, { 0x00000338, 0x000021ae },
- { 0x00000338, 0x000021cd }, { 0x00000338, 0x000021cf },
- { 0x00000338, 0x000021ce }, { 0x00000338, 0x00002204 },
- { 0x00000338, 0x00002209 }, { 0x00000338, 0x0000220c },
- { 0x00000338, 0x00002224 }, { 0x00000338, 0x00002226 },
- { 0x00000338, 0x00002241 }, { 0x00000338, 0x00002244 },
- { 0x00000338, 0x00002247 }, { 0x00000338, 0x00002249 },
- { 0x00000338, 0x0000226d }, { 0x00000338, 0x00002262 },
- { 0x00000338, 0x00002270 }, { 0x00000338, 0x00002271 },
- { 0x00000338, 0x00002274 }, { 0x00000338, 0x00002275 },
- { 0x00000338, 0x00002278 }, { 0x00000338, 0x00002279 },
- { 0x00000338, 0x00002280 }, { 0x00000338, 0x00002281 },
- { 0x00000338, 0x000022e0 }, { 0x00000338, 0x000022e1 },
- { 0x00000338, 0x00002284 }, { 0x00000338, 0x00002285 },
- { 0x00000338, 0x00002288 }, { 0x00000338, 0x00002289 },
- { 0x00000338, 0x000022e2 }, { 0x00000338, 0x000022e3 },
- { 0x00000338, 0x000022ac }, { 0x00000338, 0x000022ad },
- { 0x00000338, 0x000022ae }, { 0x00000338, 0x000022af },
- { 0x00000338, 0x000022ea }, { 0x00000338, 0x000022eb },
- { 0x00000338, 0x000022ec }, { 0x00000338, 0x000022ed },
- { 0x00003099, 0x00003094 }, { 0x00003099, 0x0000304c },
- { 0x00003099, 0x0000304e }, { 0x00003099, 0x00003050 },
- { 0x00003099, 0x00003052 }, { 0x00003099, 0x00003054 },
- { 0x00003099, 0x00003056 }, { 0x00003099, 0x00003058 },
- { 0x00003099, 0x0000305a }, { 0x00003099, 0x0000305c },
- { 0x00003099, 0x0000305e }, { 0x00003099, 0x00003060 },
- { 0x00003099, 0x00003062 }, { 0x00003099, 0x00003065 },
- { 0x00003099, 0x00003067 }, { 0x00003099, 0x00003069 },
- { 0x00003099, 0x00003070 }, { 0x0000309a, 0x00003071 },
- { 0x00003099, 0x00003073 }, { 0x0000309a, 0x00003074 },
- { 0x00003099, 0x00003076 }, { 0x0000309a, 0x00003077 },
- { 0x00003099, 0x00003079 }, { 0x0000309a, 0x0000307a },
- { 0x00003099, 0x0000307c }, { 0x0000309a, 0x0000307d },
- { 0x00003099, 0x0000309e }, { 0x00003099, 0x000030f4 },
- { 0x00003099, 0x000030ac }, { 0x00003099, 0x000030ae },
- { 0x00003099, 0x000030b0 }, { 0x00003099, 0x000030b2 },
- { 0x00003099, 0x000030b4 }, { 0x00003099, 0x000030b6 },
- { 0x00003099, 0x000030b8 }, { 0x00003099, 0x000030ba },
- { 0x00003099, 0x000030bc }, { 0x00003099, 0x000030be },
- { 0x00003099, 0x000030c0 }, { 0x00003099, 0x000030c2 },
- { 0x00003099, 0x000030c5 }, { 0x00003099, 0x000030c7 },
- { 0x00003099, 0x000030c9 }, { 0x00003099, 0x000030d0 },
- { 0x0000309a, 0x000030d1 }, { 0x00003099, 0x000030d3 },
- { 0x0000309a, 0x000030d4 }, { 0x00003099, 0x000030d6 },
- { 0x0000309a, 0x000030d7 }, { 0x00003099, 0x000030d9 },
- { 0x0000309a, 0x000030da }, { 0x00003099, 0x000030dc },
- { 0x0000309a, 0x000030dd }, { 0x00003099, 0x000030f7 },
- { 0x00003099, 0x000030f8 }, { 0x00003099, 0x000030f9 },
- { 0x00003099, 0x000030fa }, { 0x00003099, 0x000030fe },
-};
-
-
-/*
- * Canonical/Compatibility Decomposition
- */
-
-#define DECOMP_BITS_0 9
-#define DECOMP_BITS_1 7
-#define DECOMP_BITS_2 5
-#define DECOMP_COMPAT 32768
-
-static const char16_t decompose_imap[] = {
- 272, 400, 528, 656, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 912,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 1040, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 1168,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 784, 784, 784, 784, 784, 784, 784, 784,
- 0, 0, 0, 0, 0, 1, 2, 3,
- 4, 5, 6, 7, 0, 8, 9, 10,
- 11, 12, 0, 0, 0, 13, 14, 15,
- 0, 0, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 0, 0, 26, 27,
- 0, 0, 0, 0, 28, 0, 0, 0,
- 0, 29, 0, 30, 0, 0, 31, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 32, 33, 0, 0, 0, 34, 0,
- 0, 35, 36, 0, 0, 0, 0, 0,
- 0, 0, 37, 0, 38, 0, 39, 0,
- 0, 0, 40, 0, 0, 0, 41, 0,
- 0, 0, 42, 0, 0, 0, 43, 0,
- 0, 44, 0, 0, 0, 45, 46, 0,
- 47, 0, 48, 49, 50, 51, 0, 0,
- 0, 52, 0, 0, 0, 0, 0, 53,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 54, 55, 56, 57, 58, 0, 0,
- 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 0, 0,
- 81, 82, 83, 84, 85, 86, 87, 0,
- 88, 89, 90, 91, 92, 93, 0, 94,
- 0, 95, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 97, 98, 99, 100,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 101, 0, 0, 102, 0, 0, 103, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 104, 0, 0, 0, 0,
- 0, 0, 0, 0, 105, 0, 0, 106,
- 107, 108, 109, 110, 111, 112, 113, 0,
- 114, 115, 116, 117, 118, 119, 120, 121,
- 0, 122, 123, 124, 125, 0, 0, 0,
- 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 0,
- 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 197, 198, 0, 199, 200, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248,
- 249, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-};
-
-static const struct {
- char16_t tbl[32];
-} decompose_table[] = {
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 32769, 0, 0, 0, 0, 0, 0, 0,
- 32770, 0, 32772, 0, 0, 0, 0, 32773,
- 0, 0, 32775, 32776, 32777, 32779, 0, 0,
- 32780, 32782, 32783, 0, 32784, 32787, 32790, 0,
- }},
- {{
- 25, 27, 29, 31, 33, 35, 0, 37,
- 39, 41, 43, 45, 47, 49, 51, 53,
- 0, 55, 57, 59, 61, 63, 65, 0,
- 0, 67, 69, 71, 73, 75, 0, 0,
- }},
- {{
- 77, 79, 81, 83, 85, 87, 0, 89,
- 91, 93, 95, 97, 99, 101, 103, 105,
- 0, 107, 109, 111, 113, 115, 117, 0,
- 0, 119, 121, 123, 125, 127, 0, 129,
- }},
- {{
- 131, 133, 135, 137, 139, 141, 143, 145,
- 147, 149, 151, 153, 155, 157, 159, 161,
- 0, 0, 163, 165, 167, 169, 171, 173,
- 175, 177, 179, 181, 183, 185, 187, 189,
- }},
- {{
- 191, 193, 195, 197, 199, 201, 0, 0,
- 203, 205, 207, 209, 211, 213, 215, 217,
- 219, 0, 32989, 32991, 225, 227, 229, 231,
- 0, 233, 235, 237, 239, 241, 243, 33013,
- }},
- {{
- 33015, 0, 0, 249, 251, 253, 255, 257,
- 259, 33029, 0, 0, 263, 265, 267, 269,
- 271, 273, 0, 0, 275, 277, 279, 281,
- 283, 285, 287, 289, 291, 293, 295, 297,
- }},
- {{
- 299, 301, 303, 305, 307, 309, 0, 0,
- 311, 313, 315, 317, 319, 321, 323, 325,
- 327, 329, 331, 333, 335, 337, 339, 341,
- 343, 345, 347, 349, 351, 353, 355, 33125,
- }},
- {{
- 358, 360, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 362,
- 364, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 33134, 33136, 33138, 33140,
- 33142, 33144, 33146, 33148, 33150, 384, 386, 388,
- 390, 392, 394, 396, 398, 400, 402, 404,
- 406, 408, 410, 412, 414, 0, 416, 418,
- }},
- {{
- 420, 422, 424, 426, 0, 0, 428, 430,
- 432, 434, 436, 438, 440, 442, 444, 446,
- 448, 33218, 33220, 33222, 456, 458, 0, 0,
- 460, 462, 464, 466, 468, 470, 472, 474,
- }},
- {{
- 476, 478, 480, 482, 484, 486, 488, 490,
- 492, 494, 496, 498, 500, 502, 504, 506,
- 508, 510, 512, 514, 516, 518, 520, 522,
- 524, 526, 528, 530, 0, 0, 532, 534,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 536, 538,
- 540, 542, 544, 546, 548, 550, 552, 554,
- 556, 558, 560, 562, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 33332, 33333, 33334, 33335, 33336, 33337, 33338, 33339,
- 33340, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 33341, 33343, 33345, 33347, 33349, 33351, 0, 0,
- }},
- {{
- 33353, 33354, 33355, 33356, 33357, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 590, 591, 0, 592, 593, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 595, 0, 0, 0,
- 0, 0, 33364, 0, 0, 0, 598, 0,
- }},
- {{
- 0, 0, 0, 0, 33367, 601, 603, 605,
- 606, 608, 610, 0, 612, 0, 614, 616,
- 618, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 620, 622, 624, 626, 628, 630,
- 632, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 634, 636, 638, 640, 642, 0,
- 33412, 33413, 33414, 647, 649, 33419, 33420, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 33421, 33422, 33423, 0, 33424, 33425, 0, 0,
- 0, 33426, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 659, 661, 0, 663, 0, 0, 0, 665,
- 0, 0, 0, 0, 667, 669, 671, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 673, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 675, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 677, 679, 0, 681, 0, 0, 0, 683,
- 0, 0, 0, 0, 685, 687, 689, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 691, 693,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 695, 697, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 699, 701, 703, 705, 0, 0, 707, 709,
- 0, 0, 711, 713, 715, 717, 719, 721,
- }},
- {{
- 0, 0, 723, 725, 727, 729, 731, 733,
- 0, 0, 735, 737, 739, 741, 743, 745,
- 747, 749, 751, 753, 755, 757, 0, 0,
- 759, 761, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 33531,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 765, 767, 769, 771, 773, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 33543, 33545, 33547,
- 33549, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 783, 0, 785, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 787, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 789, 0, 0, 0, 0, 0, 0,
- 0, 791, 0, 0, 793, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 795, 797, 799, 801, 803, 805, 807, 809,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 811, 813, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 815, 817, 0, 819,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 821, 0, 0, 823, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 825, 827, 829, 0, 0, 831, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 833, 0, 0, 835, 837, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 839, 841, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 843, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 845, 847, 849, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 851, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 853, 0, 0, 0, 0, 0, 0, 855,
- 857, 0, 859, 861, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 863, 865, 867, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 869, 0, 871, 873, 875, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 33645, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 33647, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 33649, 33651, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 33653, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 886, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 888, 0, 0,
- 0, 0, 890, 0, 0, 0, 0, 892,
- 0, 0, 0, 0, 894, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 896, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 898, 0, 900, 902, 33672,
- 906, 33676, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 910, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 912, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 914, 0, 0,
- }},
- {{
- 0, 0, 916, 0, 0, 0, 0, 918,
- 0, 0, 0, 0, 920, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 922, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 924, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 33694, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 33695, 33696, 33697, 0,
- 33698, 33699, 33700, 33701, 33702, 33703, 33704, 33705,
- 33706, 33707, 33708, 0, 33709, 33710, 33711, 33712,
- }},
- {{
- 33713, 33714, 33715, 33716, 33717, 33718, 33719, 33720,
- 33721, 33722, 33723, 33724, 33725, 33726, 0, 33727,
- 33728, 33729, 33730, 33731, 33732, 33733, 33734, 33735,
- 33736, 33737, 33738, 33739, 33740, 33741, 33742, 33743,
- }},
- {{
- 33744, 33745, 33746, 33747, 33748, 33749, 33750, 33751,
- 33752, 33753, 33754, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 33755, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 33756, 33757, 33758, 33759, 33760,
- }},
- {{
- 33761, 33762, 33763, 33764, 33765, 33766, 33767, 33768,
- 33769, 33770, 33771, 33772, 33773, 33774, 33775, 33776,
- 33777, 33778, 33779, 33780, 33781, 33782, 33783, 33784,
- 33785, 33786, 33787, 33788, 33789, 33790, 33791, 33792,
- }},
- {{
- 1025, 1027, 1029, 1031, 1033, 1035, 1037, 1039,
- 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1055,
- 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071,
- 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087,
- }},
- {{
- 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103,
- 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119,
- 1121, 1123, 1125, 1127, 1129, 1131, 1133, 1135,
- 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151,
- }},
- {{
- 1153, 1155, 1157, 1159, 1161, 1163, 1165, 1167,
- 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183,
- 1185, 1187, 1189, 1191, 1193, 1195, 1197, 1199,
- 1201, 1203, 1205, 1207, 1209, 1211, 1213, 1215,
- }},
- {{
- 1217, 1219, 1221, 1223, 1225, 1227, 1229, 1231,
- 1233, 1235, 1237, 1239, 1241, 1243, 1245, 1247,
- 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1263,
- 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1279,
- }},
- {{
- 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295,
- 1297, 1299, 1301, 1303, 1305, 1307, 1309, 1311,
- 1313, 1315, 1317, 1319, 1321, 1323, 1325, 1327,
- 1329, 1331, 34101, 1335, 0, 0, 0, 0,
- }},
- {{
- 1337, 1339, 1341, 1343, 1345, 1347, 1349, 1351,
- 1353, 1355, 1357, 1359, 1361, 1363, 1365, 1367,
- 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383,
- 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399,
- }},
- {{
- 1401, 1403, 1405, 1407, 1409, 1411, 1413, 1415,
- 1417, 1419, 1421, 1423, 1425, 1427, 1429, 1431,
- 1433, 1435, 1437, 1439, 1441, 1443, 1445, 1447,
- 1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463,
- }},
- {{
- 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1479,
- 1481, 1483, 1485, 1487, 1489, 1491, 1493, 1495,
- 1497, 1499, 1501, 1503, 1505, 1507, 1509, 1511,
- 1513, 1515, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 1517, 1519, 1521, 1523, 1525, 1527, 1529, 1531,
- 1533, 1535, 1537, 1539, 1541, 1543, 1545, 1547,
- 1549, 1551, 1553, 1555, 1557, 1559, 0, 0,
- 1561, 1563, 1565, 1567, 1569, 1571, 0, 0,
- }},
- {{
- 1573, 1575, 1577, 1579, 1581, 1583, 1585, 1587,
- 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603,
- 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619,
- 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635,
- }},
- {{
- 1637, 1639, 1641, 1643, 1645, 1647, 0, 0,
- 1649, 1651, 1653, 1655, 1657, 1659, 0, 0,
- 1661, 1663, 1665, 1667, 1669, 1671, 1673, 1675,
- 0, 1677, 0, 1679, 0, 1681, 0, 1683,
- }},
- {{
- 1685, 1687, 1689, 1691, 1693, 1695, 1697, 1699,
- 1701, 1703, 1705, 1707, 1709, 1711, 1713, 1715,
- 1717, 1719, 1720, 1722, 1723, 1725, 1726, 1728,
- 1729, 1731, 1732, 1734, 1735, 1737, 0, 0,
- }},
- {{
- 1738, 1740, 1742, 1744, 1746, 1748, 1750, 1752,
- 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768,
- 1770, 1772, 1774, 1776, 1778, 1780, 1782, 1784,
- 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800,
- }},
- {{
- 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816,
- 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832,
- 1834, 1836, 1838, 1840, 1842, 0, 1844, 1846,
- 1848, 1850, 1852, 1854, 1855, 34625, 1859, 34628,
- }},
- {{
- 34630, 1864, 1866, 1868, 1870, 0, 1872, 1874,
- 1876, 1878, 1879, 1881, 1882, 1884, 1886, 1888,
- 1890, 1892, 1894, 1896, 0, 0, 1897, 1899,
- 1901, 1903, 1905, 1907, 0, 1908, 1910, 1912,
- }},
- {{
- 1914, 1916, 1918, 1920, 1921, 1923, 1925, 1927,
- 1929, 1931, 1933, 1935, 1936, 1938, 1940, 1941,
- 0, 0, 1942, 1944, 1946, 0, 1948, 1950,
- 1952, 1954, 1955, 1957, 1958, 1960, 34729, 0,
- }},
- {{
- 1963, 1964, 34733, 34734, 34735, 34736, 34737, 34738,
- 34739, 34740, 34741, 0, 0, 0, 0, 0,
- 0, 34742, 0, 0, 0, 0, 0, 34743,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 34745, 34746, 34748, 0,
- 0, 0, 0, 0, 0, 0, 0, 34751,
- 0, 0, 0, 34752, 34754, 0, 34757, 34759,
- 0, 0, 0, 0, 34762, 0, 34764, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 34766,
- 34768, 34770, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 34772,
- 0, 0, 0, 0, 0, 0, 0, 34776,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 34777, 34778, 0, 0, 34779, 34780, 34781, 34782,
- 34783, 34784, 34785, 34786, 34787, 34788, 34789, 34790,
- }},
- {{
- 34791, 34792, 34793, 34794, 34795, 34796, 34797, 34798,
- 34799, 34800, 34801, 34802, 34803, 34804, 34805, 0,
- 34806, 34807, 34808, 34809, 34810, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 34811, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 34813, 34816, 34819, 34820, 0, 34822, 34825, 34828,
- 0, 34829, 34831, 34832, 34833, 34834, 34835, 34836,
- 34837, 34838, 34839, 34840, 0, 34841, 34842, 0,
- 0, 34844, 34845, 34846, 34847, 34848, 0, 0,
- }},
- {{
- 34849, 34851, 34854, 0, 34856, 0, 2089, 0,
- 34858, 0, 2091, 2092, 34861, 34862, 0, 34863,
- 34864, 34865, 0, 34866, 34867, 34868, 34869, 34870,
- 34871, 34872, 0, 34873, 34876, 34877, 34878, 34879,
- }},
- {{
- 34880, 0, 0, 0, 0, 34881, 34882, 34883,
- 34884, 34885, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 34886, 34889, 34892, 34895, 34898,
- 34901, 34904, 34907, 34910, 34913, 34916, 34919, 34922,
- }},
- {{
- 34924, 34925, 34927, 34930, 34932, 34933, 34935, 34938,
- 34942, 34944, 34945, 34947, 34950, 34951, 34952, 34953,
- 34954, 34955, 34957, 34960, 34962, 34963, 34965, 34968,
- 34972, 34974, 34975, 34977, 34980, 34981, 34982, 34983,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2216, 2218, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2220, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2222, 2224, 2226,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 2228, 0, 0, 0,
- 0, 2230, 0, 0, 2232, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 2234, 0, 2236, 0,
- 0, 0, 0, 0, 35006, 35008, 0, 35011,
- 35013, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 2248, 0, 0, 2250, 0, 0, 2252,
- 0, 2254, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 2256, 0, 2258, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2260, 2262, 2264,
- 2266, 2268, 0, 0, 2270, 2272, 0, 0,
- 2274, 2276, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 2278, 2280, 0, 0, 2282, 2284, 0, 0,
- 2286, 2288, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2290, 2292, 2294, 2296,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 2298, 2300, 2302, 2304, 0, 0, 0, 0,
- 0, 0, 2306, 2308, 2310, 2312, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2314, 2315, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 35084, 35085, 35086, 35087, 35088, 35089, 35090, 35091,
- 35092, 35093, 35095, 35097, 35099, 35101, 35103, 35105,
- 35107, 35109, 35111, 35113, 35115, 35118, 35121, 35124,
- 35127, 35130, 35133, 35136, 35139, 35142, 35146, 35150,
- }},
- {{
- 35154, 35158, 35162, 35166, 35170, 35174, 35178, 35182,
- 35186, 35188, 35190, 35192, 35194, 35196, 35198, 35200,
- 35202, 35204, 35207, 35210, 35213, 35216, 35219, 35222,
- 35225, 35228, 35231, 35234, 35237, 35240, 35243, 35246,
- }},
- {{
- 35249, 35252, 35255, 35258, 35261, 35264, 35267, 35270,
- 35273, 35276, 35279, 35282, 35285, 35288, 35291, 35294,
- 35297, 35300, 35303, 35306, 35309, 35312, 35315, 35316,
- 35317, 35318, 35319, 35320, 35321, 35322, 35323, 35324,
- }},
- {{
- 35325, 35326, 35327, 35328, 35329, 35330, 35331, 35332,
- 35333, 35334, 35335, 35336, 35337, 35338, 35339, 35340,
- 35341, 35342, 35343, 35344, 35345, 35346, 35347, 35348,
- 35349, 35350, 35351, 35352, 35353, 35354, 35355, 35356,
- }},
- {{
- 35357, 35358, 35359, 35360, 35361, 35362, 35363, 35364,
- 35365, 35366, 35367, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 35368, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 35372, 35375, 35377, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2612, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 35382,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 35383,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 35384, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 35385, 35386, 35387, 35388, 35389, 35390, 35391, 35392,
- 35393, 35394, 35395, 35396, 35397, 35398, 35399, 35400,
- 35401, 35402, 35403, 35404, 35405, 35406, 35407, 35408,
- 35409, 35410, 35411, 35412, 35413, 35414, 35415, 35416,
- }},
- {{
- 35417, 35418, 35419, 35420, 35421, 35422, 35423, 35424,
- 35425, 35426, 35427, 35428, 35429, 35430, 35431, 35432,
- 35433, 35434, 35435, 35436, 35437, 35438, 35439, 35440,
- 35441, 35442, 35443, 35444, 35445, 35446, 35447, 35448,
- }},
- {{
- 35449, 35450, 35451, 35452, 35453, 35454, 35455, 35456,
- 35457, 35458, 35459, 35460, 35461, 35462, 35463, 35464,
- 35465, 35466, 35467, 35468, 35469, 35470, 35471, 35472,
- 35473, 35474, 35475, 35476, 35477, 35478, 35479, 35480,
- }},
- {{
- 35481, 35482, 35483, 35484, 35485, 35486, 35487, 35488,
- 35489, 35490, 35491, 35492, 35493, 35494, 35495, 35496,
- 35497, 35498, 35499, 35500, 35501, 35502, 35503, 35504,
- 35505, 35506, 35507, 35508, 35509, 35510, 35511, 35512,
- }},
- {{
- 35513, 35514, 35515, 35516, 35517, 35518, 35519, 35520,
- 35521, 35522, 35523, 35524, 35525, 35526, 35527, 35528,
- 35529, 35530, 35531, 35532, 35533, 35534, 35535, 35536,
- 35537, 35538, 35539, 35540, 35541, 35542, 35543, 35544,
- }},
- {{
- 35545, 35546, 35547, 35548, 35549, 35550, 35551, 35552,
- 35553, 35554, 35555, 35556, 35557, 35558, 35559, 35560,
- 35561, 35562, 35563, 35564, 35565, 35566, 35567, 35568,
- 35569, 35570, 35571, 35572, 35573, 35574, 35575, 35576,
- }},
- {{
- 35577, 35578, 35579, 35580, 35581, 35582, 35583, 35584,
- 35585, 35586, 35587, 35588, 35589, 35590, 35591, 35592,
- 35593, 35594, 35595, 35596, 35597, 35598, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 35599, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35600, 0,
- 35601, 35602, 35603, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2836, 0, 2838, 0,
- 2840, 0, 2842, 0, 2844, 0, 2846, 0,
- 2848, 0, 2850, 0, 2852, 0, 2854, 0,
- }},
- {{
- 2856, 0, 2858, 0, 0, 2860, 0, 2862,
- 0, 2864, 0, 0, 0, 0, 0, 0,
- 2866, 2868, 0, 2870, 2872, 0, 2874, 2876,
- 0, 2878, 2880, 0, 2882, 2884, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2886, 0, 0, 0,
- 0, 0, 0, 35656, 35658, 0, 2892, 35662,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2896, 0, 2898, 0,
- 2900, 0, 2902, 0, 2904, 0, 2906, 0,
- 2908, 0, 2910, 0, 2912, 0, 2914, 0,
- }},
- {{
- 2916, 0, 2918, 0, 0, 2920, 0, 2922,
- 0, 2924, 0, 0, 0, 0, 0, 0,
- 2926, 2928, 0, 2930, 2932, 0, 2934, 2936,
- 0, 2938, 2940, 0, 2942, 2944, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2946, 0, 0, 2948,
- 2950, 2952, 2954, 0, 0, 0, 2956, 35726,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 35728, 35729, 35730, 35731, 35732, 35733, 35734,
- 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742,
- }},
- {{
- 35743, 35744, 35745, 35746, 35747, 35748, 35749, 35750,
- 35751, 35752, 35753, 35754, 35755, 35756, 35757, 35758,
- 35759, 35760, 35761, 35762, 35763, 35764, 35765, 35766,
- 35767, 35768, 35769, 35770, 35771, 35772, 35773, 35774,
- }},
- {{
- 35775, 35776, 35777, 35778, 35779, 35780, 35781, 35782,
- 35783, 35784, 35785, 35786, 35787, 35788, 35789, 35790,
- 35791, 35792, 35793, 35794, 35795, 35796, 35797, 35798,
- 35799, 35800, 35801, 35802, 35803, 35804, 35805, 35806,
- }},
- {{
- 35807, 35808, 35809, 35810, 35811, 35812, 35813, 35814,
- 35815, 35816, 35817, 35818, 35819, 35820, 35821, 0,
- 0, 0, 35822, 35823, 35824, 35825, 35826, 35827,
- 35828, 35829, 35830, 35831, 35832, 35833, 35834, 35835,
- }},
- {{
- 35836, 35839, 35842, 35845, 35848, 35851, 35854, 35857,
- 35860, 35863, 35866, 35869, 35872, 35875, 35878, 35882,
- 35886, 35890, 35894, 35898, 35902, 35906, 35910, 35914,
- 35918, 35922, 35926, 35930, 35934, 35938, 35945, 0,
- }},
- {{
- 35951, 35954, 35957, 35960, 35963, 35966, 35969, 35972,
- 35975, 35978, 35981, 35984, 35987, 35990, 35993, 35996,
- 35999, 36002, 36005, 36008, 36011, 36014, 36017, 36020,
- 36023, 36026, 36029, 36032, 36035, 36038, 36041, 36044,
- }},
- {{
- 36047, 36050, 36053, 36056, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 36059, 36062, 36064, 36066, 36068, 36070, 36072, 36074,
- 36076, 36078, 36080, 36082, 36084, 36086, 36088, 36090,
- }},
- {{
- 36092, 36093, 36094, 36095, 36096, 36097, 36098, 36099,
- 36100, 36101, 36102, 36103, 36104, 36105, 36106, 36108,
- 36110, 36112, 36114, 36116, 36118, 36120, 36122, 36124,
- 36126, 36128, 36130, 36132, 36134, 36139, 36143, 0,
- }},
- {{
- 36145, 36146, 36147, 36148, 36149, 36150, 36151, 36152,
- 36153, 36154, 36155, 36156, 36157, 36158, 36159, 36160,
- 36161, 36162, 36163, 36164, 36165, 36166, 36167, 36168,
- 36169, 36170, 36171, 36172, 36173, 36174, 36175, 36176,
- }},
- {{
- 36177, 36178, 36179, 36180, 36181, 36182, 36183, 36184,
- 36185, 36186, 36187, 36188, 36189, 36190, 36191, 36192,
- 36193, 36194, 36196, 36198, 36200, 36202, 36204, 36206,
- 36208, 36210, 36212, 36214, 36216, 36218, 36220, 36222,
- }},
- {{
- 36224, 36226, 36228, 36230, 36232, 36234, 36236, 36238,
- 36240, 36242, 36245, 36248, 36251, 36253, 36256, 36258,
- 36261, 36262, 36263, 36264, 36265, 36266, 36267, 36268,
- 36269, 36270, 36271, 36272, 36273, 36274, 36275, 36276,
- }},
- {{
- 36277, 36278, 36279, 36280, 36281, 36282, 36283, 36284,
- 36285, 36286, 36287, 36288, 36289, 36290, 36291, 36292,
- 36293, 36294, 36295, 36296, 36297, 36298, 36299, 36300,
- 36301, 36302, 36303, 36304, 36305, 36306, 36307, 0,
- }},
- {{
- 36308, 36312, 36316, 36320, 36323, 36327, 36330, 36333,
- 36338, 36342, 36345, 36348, 36351, 36355, 36359, 36362,
- 36365, 36367, 36370, 36374, 36378, 36380, 36385, 36391,
- 36396, 36399, 36404, 36409, 36413, 36416, 36419, 36422,
- }},
- {{
- 36426, 36431, 36435, 36438, 36441, 36444, 36446, 36448,
- 36450, 36452, 36455, 36458, 36463, 36466, 36470, 36475,
- 36478, 36480, 36482, 36487, 36491, 36496, 36499, 36504,
- 36506, 36509, 36512, 36515, 36518, 36521, 36525, 36528,
- }},
- {{
- 36530, 36533, 36536, 36539, 36543, 36546, 36549, 36552,
- 36557, 36561, 36563, 36568, 36570, 36574, 36578, 36581,
- 36584, 36587, 36591, 36593, 36596, 36600, 36602, 36607,
- 36610, 36612, 36614, 36616, 36618, 36620, 36622, 36624,
- }},
- {{
- 36626, 36628, 36630, 36633, 36636, 36639, 36642, 36645,
- 36648, 36651, 36654, 36657, 36660, 36663, 36666, 36669,
- 36672, 36675, 36678, 36680, 36682, 36685, 36687, 36689,
- 36691, 36694, 36697, 36699, 36701, 36703, 36705, 36707,
- }},
- {{
- 36711, 36713, 36715, 36717, 36719, 36721, 36723, 36725,
- 36727, 36730, 36734, 36736, 36738, 36740, 36742, 36744,
- 36746, 36748, 36751, 36754, 36757, 36760, 36762, 36764,
- 36766, 36768, 36770, 36772, 36774, 36776, 36778, 36780,
- }},
- {{
- 36783, 36786, 36788, 36791, 36794, 36797, 36799, 36802,
- 36805, 36809, 36811, 36814, 36817, 36820, 36823, 36828,
- 36834, 36836, 36838, 36840, 36842, 36844, 36846, 36848,
- 36850, 36852, 36854, 36856, 36858, 36860, 36862, 36864,
- }},
- {{
- 36866, 36868, 36870, 36874, 36876, 36878, 36880, 36884,
- 36887, 36889, 36891, 36893, 36895, 36897, 36899, 36901,
- 36903, 36905, 36907, 36910, 36912, 36914, 36917, 36920,
- 36922, 36926, 36929, 36931, 36933, 36935, 36937, 36940,
- }},
- {{
- 36943, 36945, 36947, 36949, 36951, 36953, 36955, 36957,
- 36959, 36961, 36964, 36967, 36970, 36973, 36976, 36979,
- 36982, 36985, 36988, 36991, 36994, 36997, 37000, 37003,
- 37006, 37009, 37012, 37015, 37018, 37021, 37024, 37027,
- }},
- {{
- 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269,
- 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277,
- 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285,
- 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293,
- }},
- {{
- 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301,
- 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309,
- 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317,
- 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325,
- }},
- {{
- 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333,
- 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341,
- 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349,
- 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357,
- }},
- {{
- 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365,
- 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373,
- 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381,
- 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389,
- }},
- {{
- 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397,
- 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405,
- 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413,
- 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421,
- }},
- {{
- 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429,
- 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437,
- 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445,
- 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453,
- }},
- {{
- 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461,
- 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469,
- 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477,
- 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485,
- }},
- {{
- 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493,
- 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501,
- 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509,
- 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517,
- }},
- {{
- 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525,
- 4526, 4527, 4528, 4529, 4530, 4531, 0, 0,
- 4532, 0, 4533, 0, 0, 4534, 4535, 4536,
- 4537, 4538, 4539, 4540, 4541, 4542, 4543, 0,
- }},
- {{
- 4544, 0, 4545, 0, 0, 4546, 4547, 0,
- 0, 0, 4548, 4549, 4550, 4551, 0, 0,
- 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559,
- 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567,
- }},
- {{
- 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575,
- 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583,
- 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591,
- 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599,
- }},
- {{
- 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607,
- 4608, 4609, 4610, 0, 0, 0, 0, 0,
- 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618,
- 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626,
- }},
- {{
- 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634,
- 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642,
- 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650,
- 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658,
- }},
- {{
- 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666,
- 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674,
- 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682,
- 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690,
- }},
- {{
- 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698,
- 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706,
- 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714,
- 4715, 4716, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 37485, 37487, 37489, 37491, 37494, 37497, 37499, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 37501, 37503, 37505, 37507, 37509,
- 0, 0, 0, 0, 0, 4743, 0, 4745,
- }},
- {{
- 37515, 37516, 37517, 37518, 37519, 37520, 37521, 37522,
- 37523, 37524, 4757, 4759, 4761, 4763, 4765, 4767,
- 4769, 4771, 4773, 4775, 4777, 4779, 4781, 0,
- 4783, 4785, 4787, 4789, 4791, 0, 4793, 0,
- }},
- {{
- 4795, 4797, 0, 4799, 4801, 0, 4803, 4805,
- 4807, 4809, 4811, 4813, 4815, 4817, 4819, 37589,
- 37591, 37592, 37593, 37594, 37595, 37596, 37597, 37598,
- 37599, 37600, 37601, 37602, 37603, 37604, 37605, 37606,
- }},
- {{
- 37607, 37608, 37609, 37610, 37611, 37612, 37613, 37614,
- 37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622,
- 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630,
- 37631, 37632, 37633, 37634, 37635, 37636, 37637, 37638,
- }},
- {{
- 37639, 37640, 37641, 37642, 37643, 37644, 37645, 37646,
- 37647, 37648, 37649, 37650, 37651, 37652, 37653, 37654,
- 37655, 37656, 37657, 37658, 37659, 37660, 37661, 37662,
- 37663, 37664, 37665, 37666, 37667, 37668, 37669, 37670,
- }},
- {{
- 37671, 37672, 37673, 37674, 37675, 37676, 37677, 37678,
- 37679, 37680, 37681, 37682, 37683, 37684, 37685, 37686,
- 37687, 37688, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 37689, 37690, 37691, 37692, 37693,
- 37694, 37695, 37696, 37697, 37698, 37699, 37700, 37701,
- }},
- {{
- 37702, 37703, 37704, 37705, 37706, 37707, 37708, 37709,
- 37710, 37711, 37712, 37714, 37716, 37718, 37720, 37722,
- 37724, 37726, 37728, 37730, 37732, 37734, 37736, 37738,
- 37740, 37742, 37744, 37746, 37748, 37749, 37750, 37751,
- }},
- {{
- 37752, 37754, 37756, 37758, 37760, 37762, 37764, 37766,
- 37768, 37770, 37772, 37774, 37776, 37778, 37780, 37782,
- 37784, 37786, 37788, 37790, 37792, 37794, 37796, 37798,
- 37800, 37802, 37804, 37806, 37808, 37810, 37812, 37814,
- }},
- {{
- 37816, 37818, 37820, 37822, 37824, 37826, 37828, 37830,
- 37832, 37834, 37836, 37838, 37840, 37842, 37844, 37846,
- 37848, 37850, 37852, 37854, 37856, 37858, 37860, 37862,
- 37864, 37866, 37868, 37870, 37872, 37874, 37876, 37878,
- }},
- {{
- 37880, 37882, 37884, 37886, 37888, 37890, 37892, 37894,
- 37896, 37898, 37900, 37902, 37904, 37906, 37908, 37910,
- 37912, 37914, 37916, 37918, 37920, 37922, 37924, 37926,
- 37928, 37930, 37932, 37934, 37936, 37938, 37940, 37943,
- }},
- {{
- 37946, 37949, 37952, 37955, 37958, 37960, 37962, 37964,
- 37966, 37968, 37970, 37972, 37974, 37976, 37978, 37980,
- 37982, 37984, 37986, 37988, 37990, 37992, 37994, 37996,
- 37998, 38000, 38002, 38004, 38006, 38008, 38010, 38012,
- }},
- {{
- 38014, 38016, 38018, 38020, 38022, 38024, 38026, 38028,
- 38030, 38032, 38034, 38036, 38038, 38040, 38042, 38044,
- 38046, 38048, 38050, 38052, 38054, 38056, 38058, 38060,
- 38062, 38064, 38066, 38068, 38070, 38072, 38074, 38076,
- }},
- {{
- 38078, 38080, 38082, 38084, 38086, 38088, 38090, 38092,
- 38094, 38096, 38098, 38100, 38102, 38104, 38106, 38108,
- 38110, 38112, 38114, 38116, 38118, 38120, 38122, 38124,
- 38126, 38128, 38130, 38132, 38134, 38136, 38138, 38140,
- }},
- {{
- 38142, 38144, 38146, 38148, 38150, 38152, 38154, 38156,
- 38158, 38160, 38162, 38164, 38166, 38168, 38170, 38172,
- 38174, 38176, 38178, 38180, 38182, 38184, 38186, 38188,
- 38190, 38192, 38194, 38196, 38198, 38200, 38202, 38204,
- }},
- {{
- 38206, 38208, 38210, 38212, 38214, 38216, 38218, 38220,
- 38222, 38224, 38226, 38228, 38230, 38232, 38234, 38236,
- 38238, 38240, 38242, 38245, 38248, 38251, 38253, 38255,
- 38257, 38259, 38261, 38263, 38265, 38267, 38269, 38271,
- }},
- {{
- 38273, 38275, 38277, 38279, 38281, 38283, 38285, 38287,
- 38289, 38291, 38293, 38295, 38297, 38299, 38301, 38303,
- 38305, 38307, 38309, 38311, 38313, 38315, 38317, 38319,
- 38321, 38323, 38325, 38327, 38329, 38331, 38333, 38335,
- }},
- {{
- 38337, 38339, 38341, 38343, 38345, 38347, 38349, 38351,
- 38353, 38355, 38357, 38359, 38361, 38363, 38365, 38367,
- 38369, 38371, 38373, 38375, 38377, 38379, 38381, 38383,
- 38385, 38387, 38389, 38391, 38393, 38395, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 38397, 38400, 38403, 38406, 38409, 38412, 38415, 38418,
- 38421, 38424, 38427, 38430, 38433, 38436, 38439, 38442,
- }},
- {{
- 38445, 38448, 38451, 38454, 38457, 38460, 38463, 38466,
- 38469, 38472, 38475, 38478, 38481, 38484, 38487, 38490,
- 38493, 38496, 38499, 38502, 38505, 38508, 38511, 38514,
- 38517, 38520, 38523, 38526, 38529, 38532, 38535, 38538,
- }},
- {{
- 38541, 38544, 38547, 38550, 38553, 38556, 38559, 38562,
- 38565, 38568, 38571, 38574, 38577, 38580, 38583, 38586,
- 0, 0, 38589, 38592, 38595, 38598, 38601, 38604,
- 38607, 38610, 38613, 38616, 38619, 38622, 38625, 38628,
- }},
- {{
- 38631, 38634, 38637, 38640, 38643, 38646, 38649, 38652,
- 38655, 38658, 38661, 38664, 38667, 38670, 38673, 38676,
- 38679, 38682, 38685, 38688, 38691, 38694, 38697, 38700,
- 38703, 38706, 38709, 38712, 38715, 38718, 38721, 38724,
- }},
- {{
- 38727, 38730, 38733, 38736, 38739, 38742, 38745, 38748,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 38751, 38754, 38757, 38761, 38765, 38769, 38773, 38777,
- 38781, 38785, 38788, 38806, 38814, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 38818, 38819, 38820, 38821, 38822, 38823, 38824, 38825,
- 38826, 38827, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 38828, 38829, 38830, 38831, 38832, 38833, 38834, 38835,
- 38836, 38837, 38838, 38839, 38840, 38841, 38842, 38843,
- }},
- {{
- 38844, 38845, 38846, 38847, 38848, 0, 0, 38849,
- 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857,
- 38858, 38859, 38860, 0, 38861, 38862, 38863, 38864,
- 38865, 38866, 38867, 38868, 38869, 38870, 38871, 38872,
- }},
- {{
- 38873, 38874, 38875, 38876, 38877, 38878, 38879, 0,
- 38880, 38881, 38882, 38883, 0, 0, 0, 0,
- 38884, 38886, 38888, 0, 38890, 0, 38892, 38894,
- 38896, 38898, 38900, 38902, 38904, 38906, 38908, 38910,
- }},
- {{
- 38912, 38913, 38914, 38915, 38916, 38917, 38918, 38919,
- 38920, 38921, 38922, 38923, 38924, 38925, 38926, 38927,
- 38928, 38929, 38930, 38931, 38932, 38933, 38934, 38935,
- 38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943,
- }},
- {{
- 38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951,
- 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959,
- 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967,
- 38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975,
- }},
- {{
- 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983,
- 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991,
- 38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999,
- 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007,
- }},
- {{
- 39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015,
- 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023,
- 39024, 39025, 39026, 39027, 39028, 39029, 39031, 39033,
- 39035, 39037, 39039, 39041, 39043, 0, 0, 0,
- }},
- {{
- 0, 39045, 39046, 39047, 39048, 39049, 39050, 39051,
- 39052, 39053, 39054, 39055, 39056, 39057, 39058, 39059,
- 39060, 39061, 39062, 39063, 39064, 39065, 39066, 39067,
- 39068, 39069, 39070, 39071, 39072, 39073, 39074, 39075,
- }},
- {{
- 39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083,
- 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091,
- 39092, 39093, 39094, 39095, 39096, 39097, 39098, 39099,
- 39100, 39101, 39102, 39103, 39104, 39105, 39106, 39107,
- }},
- {{
- 39108, 39109, 39110, 39111, 39112, 39113, 39114, 39115,
- 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123,
- 39124, 39125, 39126, 39127, 39128, 39129, 39130, 39131,
- 39132, 39133, 39134, 39135, 39136, 39137, 39138, 39139,
- }},
- {{
- 39140, 39141, 39142, 39143, 39144, 39145, 39146, 39147,
- 39148, 39149, 39150, 39151, 39152, 39153, 39154, 39155,
- 39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163,
- 39164, 39165, 39166, 39167, 39168, 39169, 39170, 39171,
- }},
- {{
- 39172, 39173, 39174, 39175, 39176, 39177, 39178, 39179,
- 39180, 39181, 39182, 39183, 39184, 39185, 39186, 39187,
- 39188, 39189, 39190, 39191, 39192, 39193, 39194, 39195,
- 39196, 39197, 39198, 39199, 39200, 39201, 39202, 39203,
- }},
- {{
- 39204, 39205, 39206, 39207, 39208, 39209, 39210, 39211,
- 39212, 39213, 39214, 39215, 39216, 39217, 39218, 39219,
- 39220, 39221, 39222, 39223, 39224, 39225, 39226, 39227,
- 39228, 39229, 39230, 39231, 39232, 39233, 39234, 0,
- }},
- {{
- 0, 0, 39235, 39236, 39237, 39238, 39239, 39240,
- 0, 0, 39241, 39242, 39243, 39244, 39245, 39246,
- 0, 0, 39247, 39248, 39249, 39250, 39251, 39252,
- 0, 0, 39253, 39254, 39255, 0, 0, 0,
- }},
- {{
- 39256, 39257, 39258, 39259, 39260, 39261, 39262, 0,
- 39263, 39264, 39265, 39266, 39267, 39268, 39269, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6502, 6504,
- }},
- {{
- 6506, 6508, 6510, 6512, 6514, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6516, 6518, 6520, 6522, 6524,
- }},
- {{
- 6526, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- }},
- {{
- 39296, 39297, 39298, 39299, 39300, 39301, 39302, 39303,
- 39304, 39305, 39306, 39307, 39308, 39309, 39310, 39311,
- 39312, 39313, 39314, 39315, 39316, 39317, 39318, 39319,
- 39320, 39321, 39322, 39323, 39324, 39325, 39326, 39327,
- }},
- {{
- 39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335,
- 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343,
- 39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351,
- 39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359,
- }},
- {{
- 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367,
- 39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375,
- 39376, 39377, 39378, 39379, 39380, 0, 39381, 39382,
- 39383, 39384, 39385, 39386, 39387, 39388, 39389, 39390,
- }},
- {{
- 39391, 39392, 39393, 39394, 39395, 39396, 39397, 39398,
- 39399, 39400, 39401, 39402, 39403, 39404, 39405, 39406,
- 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414,
- 39415, 39416, 39417, 39418, 39419, 39420, 39421, 39422,
- }},
- {{
- 39423, 39424, 39425, 39426, 39427, 39428, 39429, 39430,
- 39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438,
- 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446,
- 39447, 39448, 39449, 39450, 39451, 0, 39452, 39453,
- }},
- {{
- 0, 0, 39454, 0, 0, 39455, 39456, 0,
- 0, 39457, 39458, 39459, 39460, 0, 39461, 39462,
- 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470,
- 39471, 39472, 0, 39473, 0, 39474, 39475, 39476,
- }},
- {{
- 39477, 39478, 39479, 39480, 0, 39481, 39482, 39483,
- 39484, 39485, 39486, 39487, 39488, 39489, 39490, 39491,
- 39492, 39493, 39494, 39495, 39496, 39497, 39498, 39499,
- 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507,
- }},
- {{
- 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515,
- 39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523,
- 39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531,
- 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539,
- }},
- {{
- 39540, 39541, 39542, 39543, 39544, 39545, 0, 39546,
- 39547, 39548, 39549, 0, 0, 39550, 39551, 39552,
- 39553, 39554, 39555, 39556, 39557, 0, 39558, 39559,
- 39560, 39561, 39562, 39563, 39564, 0, 39565, 39566,
- }},
- {{
- 39567, 39568, 39569, 39570, 39571, 39572, 39573, 39574,
- 39575, 39576, 39577, 39578, 39579, 39580, 39581, 39582,
- 39583, 39584, 39585, 39586, 39587, 39588, 39589, 39590,
- 39591, 39592, 0, 39593, 39594, 39595, 39596, 0,
- }},
- {{
- 39597, 39598, 39599, 39600, 39601, 0, 39602, 0,
- 0, 0, 39603, 39604, 39605, 39606, 39607, 39608,
- 39609, 0, 39610, 39611, 39612, 39613, 39614, 39615,
- 39616, 39617, 39618, 39619, 39620, 39621, 39622, 39623,
- }},
- {{
- 39624, 39625, 39626, 39627, 39628, 39629, 39630, 39631,
- 39632, 39633, 39634, 39635, 39636, 39637, 39638, 39639,
- 39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647,
- 39648, 39649, 39650, 39651, 39652, 39653, 39654, 39655,
- }},
- {{
- 39656, 39657, 39658, 39659, 39660, 39661, 39662, 39663,
- 39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671,
- 39672, 39673, 39674, 39675, 39676, 39677, 39678, 39679,
- 39680, 39681, 39682, 39683, 39684, 39685, 39686, 39687,
- }},
- {{
- 39688, 39689, 39690, 39691, 39692, 39693, 39694, 39695,
- 39696, 39697, 39698, 39699, 39700, 39701, 39702, 39703,
- 39704, 39705, 39706, 39707, 39708, 39709, 39710, 39711,
- 39712, 39713, 39714, 39715, 39716, 39717, 39718, 39719,
- }},
- {{
- 39720, 39721, 39722, 39723, 39724, 39725, 39726, 39727,
- 39728, 39729, 39730, 39731, 39732, 39733, 39734, 39735,
- 39736, 39737, 39738, 39739, 39740, 39741, 39742, 39743,
- 39744, 39745, 39746, 39747, 39748, 39749, 39750, 39751,
- }},
- {{
- 39752, 39753, 39754, 39755, 39756, 39757, 39758, 39759,
- 39760, 39761, 39762, 39763, 39764, 39765, 39766, 39767,
- 39768, 39769, 39770, 39771, 39772, 39773, 39774, 39775,
- 39776, 39777, 39778, 39779, 39780, 39781, 39782, 39783,
- }},
- {{
- 39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791,
- 39792, 39793, 39794, 39795, 39796, 39797, 39798, 39799,
- 39800, 39801, 39802, 39803, 39804, 39805, 39806, 39807,
- 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815,
- }},
- {{
- 39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823,
- 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831,
- 39832, 39833, 39834, 39835, 39836, 39837, 39838, 39839,
- 39840, 39841, 39842, 39843, 39844, 39845, 39846, 39847,
- }},
- {{
- 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855,
- 39856, 39857, 39858, 39859, 39860, 39861, 39862, 39863,
- 39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871,
- 39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879,
- }},
- {{
- 39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887,
- 39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895,
- 39896, 39897, 39898, 39899, 39900, 39901, 39902, 39903,
- 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911,
- }},
- {{
- 39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919,
- 39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927,
- 39928, 39929, 39930, 39931, 39932, 39933, 39934, 39935,
- 39936, 39937, 39938, 39939, 39940, 39941, 39942, 39943,
- }},
- {{
- 39944, 39945, 39946, 39947, 39948, 39949, 0, 0,
- 39950, 39951, 39952, 39953, 39954, 39955, 39956, 39957,
- 39958, 39959, 39960, 39961, 39962, 39963, 39964, 39965,
- 39966, 39967, 39968, 39969, 39970, 39971, 39972, 39973,
- }},
- {{
- 39974, 39975, 39976, 39977, 39978, 39979, 39980, 39981,
- 39982, 39983, 39984, 39985, 39986, 39987, 39988, 39989,
- 39990, 39991, 39992, 39993, 39994, 39995, 39996, 39997,
- 39998, 39999, 40000, 40001, 40002, 40003, 40004, 40005,
- }},
- {{
- 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013,
- 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021,
- 40022, 40023, 40024, 40025, 40026, 40027, 40028, 40029,
- 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037,
- }},
- {{
- 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045,
- 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053,
- 40054, 40055, 40056, 40057, 40058, 40059, 40060, 40061,
- 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069,
- }},
- {{
- 40070, 40071, 40072, 40073, 40074, 40075, 40076, 40077,
- 40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085,
- 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093,
- 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101,
- }},
- {{
- 40102, 40103, 40104, 40105, 40106, 40107, 40108, 40109,
- 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117,
- 40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125,
- 40126, 40127, 40128, 40129, 40130, 40131, 40132, 40133,
- }},
- {{
- 40134, 40135, 40136, 40137, 40138, 40139, 40140, 40141,
- 40142, 40143, 40144, 40145, 40146, 40147, 40148, 40149,
- 40150, 40151, 40152, 40153, 40154, 40155, 40156, 40157,
- 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165,
- }},
- {{
- 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173,
- 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181,
- 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189,
- 40190, 40191, 40192, 40193, 40194, 40195, 40196, 40197,
- }},
- {{
- 40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205,
- 40206, 40207, 40208, 40209, 40210, 40211, 40212, 40213,
- 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221,
- 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229,
- }},
- {{
- 40230, 40231, 40232, 40233, 40234, 40235, 40236, 40237,
- 40238, 40239, 0, 0, 0, 0, 40240, 40241,
- 40242, 40243, 40244, 40245, 40246, 40247, 40248, 40249,
- 40250, 40251, 40252, 40253, 40254, 40255, 40256, 40257,
- }},
- {{
- 40258, 40259, 40260, 40261, 40262, 40263, 40264, 40265,
- 40266, 40267, 40268, 40269, 40270, 40271, 40272, 40273,
- 40274, 40275, 40276, 40277, 40278, 40279, 40280, 40281,
- 40282, 40283, 40284, 40285, 40286, 40287, 40288, 40289,
- }},
- {{
- 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529,
- 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537,
- 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545,
- 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553,
- }},
- {{
- 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561,
- 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569,
- 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577,
- 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585,
- }},
- {{
- 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593,
- 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601,
- 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609,
- 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617,
- }},
- {{
- 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625,
- 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633,
- 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641,
- 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649,
- }},
- {{
- 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657,
- 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665,
- 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673,
- 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681,
- }},
- {{
- 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689,
- 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697,
- 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705,
- 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713,
- }},
- {{
- 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721,
- 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729,
- 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737,
- 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745,
- }},
- {{
- 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753,
- 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761,
- 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769,
- 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777,
- }},
- {{
- 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785,
- 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793,
- 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801,
- 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809,
- }},
- {{
- 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817,
- 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825,
- 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833,
- 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841,
- }},
- {{
- 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849,
- 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857,
- 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865,
- 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873,
- }},
- {{
- 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881,
- 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889,
- 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897,
- 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905,
- }},
- {{
- 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913,
- 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921,
- 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929,
- 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937,
- }},
- {{
- 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945,
- 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953,
- 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961,
- 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969,
- }},
- {{
- 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977,
- 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985,
- 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993,
- 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001,
- }},
- {{
- 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009,
- 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017,
- 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025,
- 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033,
- }},
- {{
- 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041,
- 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049,
- 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057,
- 8058, 8059, 8060, 8061, 8062, 8063, 0, 0,
- }},
-};
-static const uint32_t decompose_seq[] = {
- 0x00000000, 0x80000020, 0x00000020, 0x80000308,
- 0x80000061, 0x00000020, 0x80000304, 0x80000032,
- 0x80000033, 0x00000020, 0x80000301, 0x800003bc,
- 0x00000020, 0x80000327, 0x80000031, 0x8000006f,
- 0x00000031, 0x00002044, 0x80000034, 0x00000031,
- 0x00002044, 0x80000032, 0x00000033, 0x00002044,
- 0x80000034, 0x00000041, 0x80000300, 0x00000041,
- 0x80000301, 0x00000041, 0x80000302, 0x00000041,
- 0x80000303, 0x00000041, 0x80000308, 0x00000041,
- 0x8000030a, 0x00000043, 0x80000327, 0x00000045,
- 0x80000300, 0x00000045, 0x80000301, 0x00000045,
- 0x80000302, 0x00000045, 0x80000308, 0x00000049,
- 0x80000300, 0x00000049, 0x80000301, 0x00000049,
- 0x80000302, 0x00000049, 0x80000308, 0x0000004e,
- 0x80000303, 0x0000004f, 0x80000300, 0x0000004f,
- 0x80000301, 0x0000004f, 0x80000302, 0x0000004f,
- 0x80000303, 0x0000004f, 0x80000308, 0x00000055,
- 0x80000300, 0x00000055, 0x80000301, 0x00000055,
- 0x80000302, 0x00000055, 0x80000308, 0x00000059,
- 0x80000301, 0x00000061, 0x80000300, 0x00000061,
- 0x80000301, 0x00000061, 0x80000302, 0x00000061,
- 0x80000303, 0x00000061, 0x80000308, 0x00000061,
- 0x8000030a, 0x00000063, 0x80000327, 0x00000065,
- 0x80000300, 0x00000065, 0x80000301, 0x00000065,
- 0x80000302, 0x00000065, 0x80000308, 0x00000069,
- 0x80000300, 0x00000069, 0x80000301, 0x00000069,
- 0x80000302, 0x00000069, 0x80000308, 0x0000006e,
- 0x80000303, 0x0000006f, 0x80000300, 0x0000006f,
- 0x80000301, 0x0000006f, 0x80000302, 0x0000006f,
- 0x80000303, 0x0000006f, 0x80000308, 0x00000075,
- 0x80000300, 0x00000075, 0x80000301, 0x00000075,
- 0x80000302, 0x00000075, 0x80000308, 0x00000079,
- 0x80000301, 0x00000079, 0x80000308, 0x00000041,
- 0x80000304, 0x00000061, 0x80000304, 0x00000041,
- 0x80000306, 0x00000061, 0x80000306, 0x00000041,
- 0x80000328, 0x00000061, 0x80000328, 0x00000043,
- 0x80000301, 0x00000063, 0x80000301, 0x00000043,
- 0x80000302, 0x00000063, 0x80000302, 0x00000043,
- 0x80000307, 0x00000063, 0x80000307, 0x00000043,
- 0x8000030c, 0x00000063, 0x8000030c, 0x00000044,
- 0x8000030c, 0x00000064, 0x8000030c, 0x00000045,
- 0x80000304, 0x00000065, 0x80000304, 0x00000045,
- 0x80000306, 0x00000065, 0x80000306, 0x00000045,
- 0x80000307, 0x00000065, 0x80000307, 0x00000045,
- 0x80000328, 0x00000065, 0x80000328, 0x00000045,
- 0x8000030c, 0x00000065, 0x8000030c, 0x00000047,
- 0x80000302, 0x00000067, 0x80000302, 0x00000047,
- 0x80000306, 0x00000067, 0x80000306, 0x00000047,
- 0x80000307, 0x00000067, 0x80000307, 0x00000047,
- 0x80000327, 0x00000067, 0x80000327, 0x00000048,
- 0x80000302, 0x00000068, 0x80000302, 0x00000049,
- 0x80000303, 0x00000069, 0x80000303, 0x00000049,
- 0x80000304, 0x00000069, 0x80000304, 0x00000049,
- 0x80000306, 0x00000069, 0x80000306, 0x00000049,
- 0x80000328, 0x00000069, 0x80000328, 0x00000049,
- 0x80000307, 0x00000049, 0x8000004a, 0x00000069,
- 0x8000006a, 0x0000004a, 0x80000302, 0x0000006a,
- 0x80000302, 0x0000004b, 0x80000327, 0x0000006b,
- 0x80000327, 0x0000004c, 0x80000301, 0x0000006c,
- 0x80000301, 0x0000004c, 0x80000327, 0x0000006c,
- 0x80000327, 0x0000004c, 0x8000030c, 0x0000006c,
- 0x8000030c, 0x0000004c, 0x800000b7, 0x0000006c,
- 0x800000b7, 0x0000004e, 0x80000301, 0x0000006e,
- 0x80000301, 0x0000004e, 0x80000327, 0x0000006e,
- 0x80000327, 0x0000004e, 0x8000030c, 0x0000006e,
- 0x8000030c, 0x000002bc, 0x8000006e, 0x0000004f,
- 0x80000304, 0x0000006f, 0x80000304, 0x0000004f,
- 0x80000306, 0x0000006f, 0x80000306, 0x0000004f,
- 0x8000030b, 0x0000006f, 0x8000030b, 0x00000052,
- 0x80000301, 0x00000072, 0x80000301, 0x00000052,
- 0x80000327, 0x00000072, 0x80000327, 0x00000052,
- 0x8000030c, 0x00000072, 0x8000030c, 0x00000053,
- 0x80000301, 0x00000073, 0x80000301, 0x00000053,
- 0x80000302, 0x00000073, 0x80000302, 0x00000053,
- 0x80000327, 0x00000073, 0x80000327, 0x00000053,
- 0x8000030c, 0x00000073, 0x8000030c, 0x00000054,
- 0x80000327, 0x00000074, 0x80000327, 0x00000054,
- 0x8000030c, 0x00000074, 0x8000030c, 0x00000055,
- 0x80000303, 0x00000075, 0x80000303, 0x00000055,
- 0x80000304, 0x00000075, 0x80000304, 0x00000055,
- 0x80000306, 0x00000075, 0x80000306, 0x00000055,
- 0x8000030a, 0x00000075, 0x8000030a, 0x00000055,
- 0x8000030b, 0x00000075, 0x8000030b, 0x00000055,
- 0x80000328, 0x00000075, 0x80000328, 0x00000057,
- 0x80000302, 0x00000077, 0x80000302, 0x00000059,
- 0x80000302, 0x00000079, 0x80000302, 0x00000059,
- 0x80000308, 0x0000005a, 0x80000301, 0x0000007a,
- 0x80000301, 0x0000005a, 0x80000307, 0x0000007a,
- 0x80000307, 0x0000005a, 0x8000030c, 0x0000007a,
- 0x8000030c, 0x80000073, 0x0000004f, 0x8000031b,
- 0x0000006f, 0x8000031b, 0x00000055, 0x8000031b,
- 0x00000075, 0x8000031b, 0x00000044, 0x8000017d,
- 0x00000044, 0x8000017e, 0x00000064, 0x8000017e,
- 0x0000004c, 0x8000004a, 0x0000004c, 0x8000006a,
- 0x0000006c, 0x8000006a, 0x0000004e, 0x8000004a,
- 0x0000004e, 0x8000006a, 0x0000006e, 0x8000006a,
- 0x00000041, 0x8000030c, 0x00000061, 0x8000030c,
- 0x00000049, 0x8000030c, 0x00000069, 0x8000030c,
- 0x0000004f, 0x8000030c, 0x0000006f, 0x8000030c,
- 0x00000055, 0x8000030c, 0x00000075, 0x8000030c,
- 0x000000dc, 0x80000304, 0x000000fc, 0x80000304,
- 0x000000dc, 0x80000301, 0x000000fc, 0x80000301,
- 0x000000dc, 0x8000030c, 0x000000fc, 0x8000030c,
- 0x000000dc, 0x80000300, 0x000000fc, 0x80000300,
- 0x000000c4, 0x80000304, 0x000000e4, 0x80000304,
- 0x00000226, 0x80000304, 0x00000227, 0x80000304,
- 0x000000c6, 0x80000304, 0x000000e6, 0x80000304,
- 0x00000047, 0x8000030c, 0x00000067, 0x8000030c,
- 0x0000004b, 0x8000030c, 0x0000006b, 0x8000030c,
- 0x0000004f, 0x80000328, 0x0000006f, 0x80000328,
- 0x000001ea, 0x80000304, 0x000001eb, 0x80000304,
- 0x000001b7, 0x8000030c, 0x00000292, 0x8000030c,
- 0x0000006a, 0x8000030c, 0x00000044, 0x8000005a,
- 0x00000044, 0x8000007a, 0x00000064, 0x8000007a,
- 0x00000047, 0x80000301, 0x00000067, 0x80000301,
- 0x0000004e, 0x80000300, 0x0000006e, 0x80000300,
- 0x000000c5, 0x80000301, 0x000000e5, 0x80000301,
- 0x000000c6, 0x80000301, 0x000000e6, 0x80000301,
- 0x000000d8, 0x80000301, 0x000000f8, 0x80000301,
- 0x00000041, 0x8000030f, 0x00000061, 0x8000030f,
- 0x00000041, 0x80000311, 0x00000061, 0x80000311,
- 0x00000045, 0x8000030f, 0x00000065, 0x8000030f,
- 0x00000045, 0x80000311, 0x00000065, 0x80000311,
- 0x00000049, 0x8000030f, 0x00000069, 0x8000030f,
- 0x00000049, 0x80000311, 0x00000069, 0x80000311,
- 0x0000004f, 0x8000030f, 0x0000006f, 0x8000030f,
- 0x0000004f, 0x80000311, 0x0000006f, 0x80000311,
- 0x00000052, 0x8000030f, 0x00000072, 0x8000030f,
- 0x00000052, 0x80000311, 0x00000072, 0x80000311,
- 0x00000055, 0x8000030f, 0x00000075, 0x8000030f,
- 0x00000055, 0x80000311, 0x00000075, 0x80000311,
- 0x00000053, 0x80000326, 0x00000073, 0x80000326,
- 0x00000054, 0x80000326, 0x00000074, 0x80000326,
- 0x00000048, 0x8000030c, 0x00000068, 0x8000030c,
- 0x00000041, 0x80000307, 0x00000061, 0x80000307,
- 0x00000045, 0x80000327, 0x00000065, 0x80000327,
- 0x000000d6, 0x80000304, 0x000000f6, 0x80000304,
- 0x000000d5, 0x80000304, 0x000000f5, 0x80000304,
- 0x0000004f, 0x80000307, 0x0000006f, 0x80000307,
- 0x0000022e, 0x80000304, 0x0000022f, 0x80000304,
- 0x00000059, 0x80000304, 0x00000079, 0x80000304,
- 0x80000068, 0x80000266, 0x8000006a, 0x80000072,
- 0x80000279, 0x8000027b, 0x80000281, 0x80000077,
- 0x80000079, 0x00000020, 0x80000306, 0x00000020,
- 0x80000307, 0x00000020, 0x8000030a, 0x00000020,
- 0x80000328, 0x00000020, 0x80000303, 0x00000020,
- 0x8000030b, 0x80000263, 0x8000006c, 0x80000073,
- 0x80000078, 0x80000295, 0x80000300, 0x80000301,
- 0x80000313, 0x00000308, 0x80000301, 0x800002b9,
- 0x00000020, 0x80000345, 0x8000003b, 0x00000020,
- 0x80000301, 0x000000a8, 0x80000301, 0x00000391,
- 0x80000301, 0x800000b7, 0x00000395, 0x80000301,
- 0x00000397, 0x80000301, 0x00000399, 0x80000301,
- 0x0000039f, 0x80000301, 0x000003a5, 0x80000301,
- 0x000003a9, 0x80000301, 0x000003ca, 0x80000301,
- 0x00000399, 0x80000308, 0x000003a5, 0x80000308,
- 0x000003b1, 0x80000301, 0x000003b5, 0x80000301,
- 0x000003b7, 0x80000301, 0x000003b9, 0x80000301,
- 0x000003cb, 0x80000301, 0x000003b9, 0x80000308,
- 0x000003c5, 0x80000308, 0x000003bf, 0x80000301,
- 0x000003c5, 0x80000301, 0x000003c9, 0x80000301,
- 0x800003b2, 0x800003b8, 0x800003a5, 0x000003d2,
- 0x80000301, 0x000003d2, 0x80000308, 0x800003c6,
- 0x800003c0, 0x800003ba, 0x800003c1, 0x800003c2,
- 0x80000398, 0x800003b5, 0x800003a3, 0x00000415,
- 0x80000300, 0x00000415, 0x80000308, 0x00000413,
- 0x80000301, 0x00000406, 0x80000308, 0x0000041a,
- 0x80000301, 0x00000418, 0x80000300, 0x00000423,
- 0x80000306, 0x00000418, 0x80000306, 0x00000438,
- 0x80000306, 0x00000435, 0x80000300, 0x00000435,
- 0x80000308, 0x00000433, 0x80000301, 0x00000456,
- 0x80000308, 0x0000043a, 0x80000301, 0x00000438,
- 0x80000300, 0x00000443, 0x80000306, 0x00000474,
- 0x8000030f, 0x00000475, 0x8000030f, 0x00000416,
- 0x80000306, 0x00000436, 0x80000306, 0x00000410,
- 0x80000306, 0x00000430, 0x80000306, 0x00000410,
- 0x80000308, 0x00000430, 0x80000308, 0x00000415,
- 0x80000306, 0x00000435, 0x80000306, 0x000004d8,
- 0x80000308, 0x000004d9, 0x80000308, 0x00000416,
- 0x80000308, 0x00000436, 0x80000308, 0x00000417,
- 0x80000308, 0x00000437, 0x80000308, 0x00000418,
- 0x80000304, 0x00000438, 0x80000304, 0x00000418,
- 0x80000308, 0x00000438, 0x80000308, 0x0000041e,
- 0x80000308, 0x0000043e, 0x80000308, 0x000004e8,
- 0x80000308, 0x000004e9, 0x80000308, 0x0000042d,
- 0x80000308, 0x0000044d, 0x80000308, 0x00000423,
- 0x80000304, 0x00000443, 0x80000304, 0x00000423,
- 0x80000308, 0x00000443, 0x80000308, 0x00000423,
- 0x8000030b, 0x00000443, 0x8000030b, 0x00000427,
- 0x80000308, 0x00000447, 0x80000308, 0x0000042b,
- 0x80000308, 0x0000044b, 0x80000308, 0x00000565,
- 0x80000582, 0x00000627, 0x80000653, 0x00000627,
- 0x80000654, 0x00000648, 0x80000654, 0x00000627,
- 0x80000655, 0x0000064a, 0x80000654, 0x00000627,
- 0x80000674, 0x00000648, 0x80000674, 0x000006c7,
- 0x80000674, 0x0000064a, 0x80000674, 0x000006d5,
- 0x80000654, 0x000006c1, 0x80000654, 0x000006d2,
- 0x80000654, 0x00000928, 0x8000093c, 0x00000930,
- 0x8000093c, 0x00000933, 0x8000093c, 0x00000915,
- 0x8000093c, 0x00000916, 0x8000093c, 0x00000917,
- 0x8000093c, 0x0000091c, 0x8000093c, 0x00000921,
- 0x8000093c, 0x00000922, 0x8000093c, 0x0000092b,
- 0x8000093c, 0x0000092f, 0x8000093c, 0x000009c7,
- 0x800009be, 0x000009c7, 0x800009d7, 0x000009a1,
- 0x800009bc, 0x000009a2, 0x800009bc, 0x000009af,
- 0x800009bc, 0x00000a32, 0x80000a3c, 0x00000a38,
- 0x80000a3c, 0x00000a16, 0x80000a3c, 0x00000a17,
- 0x80000a3c, 0x00000a1c, 0x80000a3c, 0x00000a2b,
- 0x80000a3c, 0x00000b47, 0x80000b56, 0x00000b47,
- 0x80000b3e, 0x00000b47, 0x80000b57, 0x00000b21,
- 0x80000b3c, 0x00000b22, 0x80000b3c, 0x00000b92,
- 0x80000bd7, 0x00000bc6, 0x80000bbe, 0x00000bc7,
- 0x80000bbe, 0x00000bc6, 0x80000bd7, 0x00000c46,
- 0x80000c56, 0x00000cbf, 0x80000cd5, 0x00000cc6,
- 0x80000cd5, 0x00000cc6, 0x80000cd6, 0x00000cc6,
- 0x80000cc2, 0x00000cca, 0x80000cd5, 0x00000d46,
- 0x80000d3e, 0x00000d47, 0x80000d3e, 0x00000d46,
- 0x80000d57, 0x00000dd9, 0x80000dca, 0x00000dd9,
- 0x80000dcf, 0x00000ddc, 0x80000dca, 0x00000dd9,
- 0x80000ddf, 0x00000e4d, 0x80000e32, 0x00000ecd,
- 0x80000eb2, 0x00000eab, 0x80000e99, 0x00000eab,
- 0x80000ea1, 0x80000f0b, 0x00000f42, 0x80000fb7,
- 0x00000f4c, 0x80000fb7, 0x00000f51, 0x80000fb7,
- 0x00000f56, 0x80000fb7, 0x00000f5b, 0x80000fb7,
- 0x00000f40, 0x80000fb5, 0x00000f71, 0x80000f72,
- 0x00000f71, 0x80000f74, 0x00000fb2, 0x80000f80,
- 0x00000fb2, 0x80000f81, 0x00000fb3, 0x80000f80,
- 0x00000fb3, 0x80000f81, 0x00000f71, 0x80000f80,
- 0x00000f92, 0x80000fb7, 0x00000f9c, 0x80000fb7,
- 0x00000fa1, 0x80000fb7, 0x00000fa6, 0x80000fb7,
- 0x00000fab, 0x80000fb7, 0x00000f90, 0x80000fb5,
- 0x00001025, 0x8000102e, 0x800010dc, 0x80000041,
- 0x800000c6, 0x80000042, 0x80000044, 0x80000045,
- 0x8000018e, 0x80000047, 0x80000048, 0x80000049,
- 0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d,
- 0x8000004e, 0x8000004f, 0x80000222, 0x80000050,
- 0x80000052, 0x80000054, 0x80000055, 0x80000057,
- 0x80000061, 0x80000250, 0x80000251, 0x80001d02,
- 0x80000062, 0x80000064, 0x80000065, 0x80000259,
- 0x8000025b, 0x8000025c, 0x80000067, 0x8000006b,
- 0x8000006d, 0x8000014b, 0x8000006f, 0x80000254,
- 0x80001d16, 0x80001d17, 0x80000070, 0x80000074,
- 0x80000075, 0x80001d1d, 0x8000026f, 0x80000076,
- 0x80001d25, 0x800003b2, 0x800003b3, 0x800003b4,
- 0x800003c6, 0x800003c7, 0x80000069, 0x80000072,
- 0x80000075, 0x80000076, 0x800003b2, 0x800003b3,
- 0x800003c1, 0x800003c6, 0x800003c7, 0x8000043d,
- 0x80000252, 0x80000063, 0x80000255, 0x800000f0,
- 0x8000025c, 0x80000066, 0x8000025f, 0x80000261,
- 0x80000265, 0x80000268, 0x80000269, 0x8000026a,
- 0x80001d7b, 0x8000029d, 0x8000026d, 0x80001d85,
- 0x8000029f, 0x80000271, 0x80000270, 0x80000272,
- 0x80000273, 0x80000274, 0x80000275, 0x80000278,
- 0x80000282, 0x80000283, 0x800001ab, 0x80000289,
- 0x8000028a, 0x80001d1c, 0x8000028b, 0x8000028c,
- 0x8000007a, 0x80000290, 0x80000291, 0x80000292,
- 0x800003b8, 0x00000041, 0x80000325, 0x00000061,
- 0x80000325, 0x00000042, 0x80000307, 0x00000062,
- 0x80000307, 0x00000042, 0x80000323, 0x00000062,
- 0x80000323, 0x00000042, 0x80000331, 0x00000062,
- 0x80000331, 0x000000c7, 0x80000301, 0x000000e7,
- 0x80000301, 0x00000044, 0x80000307, 0x00000064,
- 0x80000307, 0x00000044, 0x80000323, 0x00000064,
- 0x80000323, 0x00000044, 0x80000331, 0x00000064,
- 0x80000331, 0x00000044, 0x80000327, 0x00000064,
- 0x80000327, 0x00000044, 0x8000032d, 0x00000064,
- 0x8000032d, 0x00000112, 0x80000300, 0x00000113,
- 0x80000300, 0x00000112, 0x80000301, 0x00000113,
- 0x80000301, 0x00000045, 0x8000032d, 0x00000065,
- 0x8000032d, 0x00000045, 0x80000330, 0x00000065,
- 0x80000330, 0x00000228, 0x80000306, 0x00000229,
- 0x80000306, 0x00000046, 0x80000307, 0x00000066,
- 0x80000307, 0x00000047, 0x80000304, 0x00000067,
- 0x80000304, 0x00000048, 0x80000307, 0x00000068,
- 0x80000307, 0x00000048, 0x80000323, 0x00000068,
- 0x80000323, 0x00000048, 0x80000308, 0x00000068,
- 0x80000308, 0x00000048, 0x80000327, 0x00000068,
- 0x80000327, 0x00000048, 0x8000032e, 0x00000068,
- 0x8000032e, 0x00000049, 0x80000330, 0x00000069,
- 0x80000330, 0x000000cf, 0x80000301, 0x000000ef,
- 0x80000301, 0x0000004b, 0x80000301, 0x0000006b,
- 0x80000301, 0x0000004b, 0x80000323, 0x0000006b,
- 0x80000323, 0x0000004b, 0x80000331, 0x0000006b,
- 0x80000331, 0x0000004c, 0x80000323, 0x0000006c,
- 0x80000323, 0x00001e36, 0x80000304, 0x00001e37,
- 0x80000304, 0x0000004c, 0x80000331, 0x0000006c,
- 0x80000331, 0x0000004c, 0x8000032d, 0x0000006c,
- 0x8000032d, 0x0000004d, 0x80000301, 0x0000006d,
- 0x80000301, 0x0000004d, 0x80000307, 0x0000006d,
- 0x80000307, 0x0000004d, 0x80000323, 0x0000006d,
- 0x80000323, 0x0000004e, 0x80000307, 0x0000006e,
- 0x80000307, 0x0000004e, 0x80000323, 0x0000006e,
- 0x80000323, 0x0000004e, 0x80000331, 0x0000006e,
- 0x80000331, 0x0000004e, 0x8000032d, 0x0000006e,
- 0x8000032d, 0x000000d5, 0x80000301, 0x000000f5,
- 0x80000301, 0x000000d5, 0x80000308, 0x000000f5,
- 0x80000308, 0x0000014c, 0x80000300, 0x0000014d,
- 0x80000300, 0x0000014c, 0x80000301, 0x0000014d,
- 0x80000301, 0x00000050, 0x80000301, 0x00000070,
- 0x80000301, 0x00000050, 0x80000307, 0x00000070,
- 0x80000307, 0x00000052, 0x80000307, 0x00000072,
- 0x80000307, 0x00000052, 0x80000323, 0x00000072,
- 0x80000323, 0x00001e5a, 0x80000304, 0x00001e5b,
- 0x80000304, 0x00000052, 0x80000331, 0x00000072,
- 0x80000331, 0x00000053, 0x80000307, 0x00000073,
- 0x80000307, 0x00000053, 0x80000323, 0x00000073,
- 0x80000323, 0x0000015a, 0x80000307, 0x0000015b,
- 0x80000307, 0x00000160, 0x80000307, 0x00000161,
- 0x80000307, 0x00001e62, 0x80000307, 0x00001e63,
- 0x80000307, 0x00000054, 0x80000307, 0x00000074,
- 0x80000307, 0x00000054, 0x80000323, 0x00000074,
- 0x80000323, 0x00000054, 0x80000331, 0x00000074,
- 0x80000331, 0x00000054, 0x8000032d, 0x00000074,
- 0x8000032d, 0x00000055, 0x80000324, 0x00000075,
- 0x80000324, 0x00000055, 0x80000330, 0x00000075,
- 0x80000330, 0x00000055, 0x8000032d, 0x00000075,
- 0x8000032d, 0x00000168, 0x80000301, 0x00000169,
- 0x80000301, 0x0000016a, 0x80000308, 0x0000016b,
- 0x80000308, 0x00000056, 0x80000303, 0x00000076,
- 0x80000303, 0x00000056, 0x80000323, 0x00000076,
- 0x80000323, 0x00000057, 0x80000300, 0x00000077,
- 0x80000300, 0x00000057, 0x80000301, 0x00000077,
- 0x80000301, 0x00000057, 0x80000308, 0x00000077,
- 0x80000308, 0x00000057, 0x80000307, 0x00000077,
- 0x80000307, 0x00000057, 0x80000323, 0x00000077,
- 0x80000323, 0x00000058, 0x80000307, 0x00000078,
- 0x80000307, 0x00000058, 0x80000308, 0x00000078,
- 0x80000308, 0x00000059, 0x80000307, 0x00000079,
- 0x80000307, 0x0000005a, 0x80000302, 0x0000007a,
- 0x80000302, 0x0000005a, 0x80000323, 0x0000007a,
- 0x80000323, 0x0000005a, 0x80000331, 0x0000007a,
- 0x80000331, 0x00000068, 0x80000331, 0x00000074,
- 0x80000308, 0x00000077, 0x8000030a, 0x00000079,
- 0x8000030a, 0x00000061, 0x800002be, 0x0000017f,
- 0x80000307, 0x00000041, 0x80000323, 0x00000061,
- 0x80000323, 0x00000041, 0x80000309, 0x00000061,
- 0x80000309, 0x000000c2, 0x80000301, 0x000000e2,
- 0x80000301, 0x000000c2, 0x80000300, 0x000000e2,
- 0x80000300, 0x000000c2, 0x80000309, 0x000000e2,
- 0x80000309, 0x000000c2, 0x80000303, 0x000000e2,
- 0x80000303, 0x00001ea0, 0x80000302, 0x00001ea1,
- 0x80000302, 0x00000102, 0x80000301, 0x00000103,
- 0x80000301, 0x00000102, 0x80000300, 0x00000103,
- 0x80000300, 0x00000102, 0x80000309, 0x00000103,
- 0x80000309, 0x00000102, 0x80000303, 0x00000103,
- 0x80000303, 0x00001ea0, 0x80000306, 0x00001ea1,
- 0x80000306, 0x00000045, 0x80000323, 0x00000065,
- 0x80000323, 0x00000045, 0x80000309, 0x00000065,
- 0x80000309, 0x00000045, 0x80000303, 0x00000065,
- 0x80000303, 0x000000ca, 0x80000301, 0x000000ea,
- 0x80000301, 0x000000ca, 0x80000300, 0x000000ea,
- 0x80000300, 0x000000ca, 0x80000309, 0x000000ea,
- 0x80000309, 0x000000ca, 0x80000303, 0x000000ea,
- 0x80000303, 0x00001eb8, 0x80000302, 0x00001eb9,
- 0x80000302, 0x00000049, 0x80000309, 0x00000069,
- 0x80000309, 0x00000049, 0x80000323, 0x00000069,
- 0x80000323, 0x0000004f, 0x80000323, 0x0000006f,
- 0x80000323, 0x0000004f, 0x80000309, 0x0000006f,
- 0x80000309, 0x000000d4, 0x80000301, 0x000000f4,
- 0x80000301, 0x000000d4, 0x80000300, 0x000000f4,
- 0x80000300, 0x000000d4, 0x80000309, 0x000000f4,
- 0x80000309, 0x000000d4, 0x80000303, 0x000000f4,
- 0x80000303, 0x00001ecc, 0x80000302, 0x00001ecd,
- 0x80000302, 0x000001a0, 0x80000301, 0x000001a1,
- 0x80000301, 0x000001a0, 0x80000300, 0x000001a1,
- 0x80000300, 0x000001a0, 0x80000309, 0x000001a1,
- 0x80000309, 0x000001a0, 0x80000303, 0x000001a1,
- 0x80000303, 0x000001a0, 0x80000323, 0x000001a1,
- 0x80000323, 0x00000055, 0x80000323, 0x00000075,
- 0x80000323, 0x00000055, 0x80000309, 0x00000075,
- 0x80000309, 0x000001af, 0x80000301, 0x000001b0,
- 0x80000301, 0x000001af, 0x80000300, 0x000001b0,
- 0x80000300, 0x000001af, 0x80000309, 0x000001b0,
- 0x80000309, 0x000001af, 0x80000303, 0x000001b0,
- 0x80000303, 0x000001af, 0x80000323, 0x000001b0,
- 0x80000323, 0x00000059, 0x80000300, 0x00000079,
- 0x80000300, 0x00000059, 0x80000323, 0x00000079,
- 0x80000323, 0x00000059, 0x80000309, 0x00000079,
- 0x80000309, 0x00000059, 0x80000303, 0x00000079,
- 0x80000303, 0x000003b1, 0x80000313, 0x000003b1,
- 0x80000314, 0x00001f00, 0x80000300, 0x00001f01,
- 0x80000300, 0x00001f00, 0x80000301, 0x00001f01,
- 0x80000301, 0x00001f00, 0x80000342, 0x00001f01,
- 0x80000342, 0x00000391, 0x80000313, 0x00000391,
- 0x80000314, 0x00001f08, 0x80000300, 0x00001f09,
- 0x80000300, 0x00001f08, 0x80000301, 0x00001f09,
- 0x80000301, 0x00001f08, 0x80000342, 0x00001f09,
- 0x80000342, 0x000003b5, 0x80000313, 0x000003b5,
- 0x80000314, 0x00001f10, 0x80000300, 0x00001f11,
- 0x80000300, 0x00001f10, 0x80000301, 0x00001f11,
- 0x80000301, 0x00000395, 0x80000313, 0x00000395,
- 0x80000314, 0x00001f18, 0x80000300, 0x00001f19,
- 0x80000300, 0x00001f18, 0x80000301, 0x00001f19,
- 0x80000301, 0x000003b7, 0x80000313, 0x000003b7,
- 0x80000314, 0x00001f20, 0x80000300, 0x00001f21,
- 0x80000300, 0x00001f20, 0x80000301, 0x00001f21,
- 0x80000301, 0x00001f20, 0x80000342, 0x00001f21,
- 0x80000342, 0x00000397, 0x80000313, 0x00000397,
- 0x80000314, 0x00001f28, 0x80000300, 0x00001f29,
- 0x80000300, 0x00001f28, 0x80000301, 0x00001f29,
- 0x80000301, 0x00001f28, 0x80000342, 0x00001f29,
- 0x80000342, 0x000003b9, 0x80000313, 0x000003b9,
- 0x80000314, 0x00001f30, 0x80000300, 0x00001f31,
- 0x80000300, 0x00001f30, 0x80000301, 0x00001f31,
- 0x80000301, 0x00001f30, 0x80000342, 0x00001f31,
- 0x80000342, 0x00000399, 0x80000313, 0x00000399,
- 0x80000314, 0x00001f38, 0x80000300, 0x00001f39,
- 0x80000300, 0x00001f38, 0x80000301, 0x00001f39,
- 0x80000301, 0x00001f38, 0x80000342, 0x00001f39,
- 0x80000342, 0x000003bf, 0x80000313, 0x000003bf,
- 0x80000314, 0x00001f40, 0x80000300, 0x00001f41,
- 0x80000300, 0x00001f40, 0x80000301, 0x00001f41,
- 0x80000301, 0x0000039f, 0x80000313, 0x0000039f,
- 0x80000314, 0x00001f48, 0x80000300, 0x00001f49,
- 0x80000300, 0x00001f48, 0x80000301, 0x00001f49,
- 0x80000301, 0x000003c5, 0x80000313, 0x000003c5,
- 0x80000314, 0x00001f50, 0x80000300, 0x00001f51,
- 0x80000300, 0x00001f50, 0x80000301, 0x00001f51,
- 0x80000301, 0x00001f50, 0x80000342, 0x00001f51,
- 0x80000342, 0x000003a5, 0x80000314, 0x00001f59,
- 0x80000300, 0x00001f59, 0x80000301, 0x00001f59,
- 0x80000342, 0x000003c9, 0x80000313, 0x000003c9,
- 0x80000314, 0x00001f60, 0x80000300, 0x00001f61,
- 0x80000300, 0x00001f60, 0x80000301, 0x00001f61,
- 0x80000301, 0x00001f60, 0x80000342, 0x00001f61,
- 0x80000342, 0x000003a9, 0x80000313, 0x000003a9,
- 0x80000314, 0x00001f68, 0x80000300, 0x00001f69,
- 0x80000300, 0x00001f68, 0x80000301, 0x00001f69,
- 0x80000301, 0x00001f68, 0x80000342, 0x00001f69,
- 0x80000342, 0x000003b1, 0x80000300, 0x800003ac,
- 0x000003b5, 0x80000300, 0x800003ad, 0x000003b7,
- 0x80000300, 0x800003ae, 0x000003b9, 0x80000300,
- 0x800003af, 0x000003bf, 0x80000300, 0x800003cc,
- 0x000003c5, 0x80000300, 0x800003cd, 0x000003c9,
- 0x80000300, 0x800003ce, 0x00001f00, 0x80000345,
- 0x00001f01, 0x80000345, 0x00001f02, 0x80000345,
- 0x00001f03, 0x80000345, 0x00001f04, 0x80000345,
- 0x00001f05, 0x80000345, 0x00001f06, 0x80000345,
- 0x00001f07, 0x80000345, 0x00001f08, 0x80000345,
- 0x00001f09, 0x80000345, 0x00001f0a, 0x80000345,
- 0x00001f0b, 0x80000345, 0x00001f0c, 0x80000345,
- 0x00001f0d, 0x80000345, 0x00001f0e, 0x80000345,
- 0x00001f0f, 0x80000345, 0x00001f20, 0x80000345,
- 0x00001f21, 0x80000345, 0x00001f22, 0x80000345,
- 0x00001f23, 0x80000345, 0x00001f24, 0x80000345,
- 0x00001f25, 0x80000345, 0x00001f26, 0x80000345,
- 0x00001f27, 0x80000345, 0x00001f28, 0x80000345,
- 0x00001f29, 0x80000345, 0x00001f2a, 0x80000345,
- 0x00001f2b, 0x80000345, 0x00001f2c, 0x80000345,
- 0x00001f2d, 0x80000345, 0x00001f2e, 0x80000345,
- 0x00001f2f, 0x80000345, 0x00001f60, 0x80000345,
- 0x00001f61, 0x80000345, 0x00001f62, 0x80000345,
- 0x00001f63, 0x80000345, 0x00001f64, 0x80000345,
- 0x00001f65, 0x80000345, 0x00001f66, 0x80000345,
- 0x00001f67, 0x80000345, 0x00001f68, 0x80000345,
- 0x00001f69, 0x80000345, 0x00001f6a, 0x80000345,
- 0x00001f6b, 0x80000345, 0x00001f6c, 0x80000345,
- 0x00001f6d, 0x80000345, 0x00001f6e, 0x80000345,
- 0x00001f6f, 0x80000345, 0x000003b1, 0x80000306,
- 0x000003b1, 0x80000304, 0x00001f70, 0x80000345,
- 0x000003b1, 0x80000345, 0x000003ac, 0x80000345,
- 0x000003b1, 0x80000342, 0x00001fb6, 0x80000345,
- 0x00000391, 0x80000306, 0x00000391, 0x80000304,
- 0x00000391, 0x80000300, 0x80000386, 0x00000391,
- 0x80000345, 0x00000020, 0x80000313, 0x800003b9,
- 0x00000020, 0x80000313, 0x00000020, 0x80000342,
- 0x000000a8, 0x80000342, 0x00001f74, 0x80000345,
- 0x000003b7, 0x80000345, 0x000003ae, 0x80000345,
- 0x000003b7, 0x80000342, 0x00001fc6, 0x80000345,
- 0x00000395, 0x80000300, 0x80000388, 0x00000397,
- 0x80000300, 0x80000389, 0x00000397, 0x80000345,
- 0x00001fbf, 0x80000300, 0x00001fbf, 0x80000301,
- 0x00001fbf, 0x80000342, 0x000003b9, 0x80000306,
- 0x000003b9, 0x80000304, 0x000003ca, 0x80000300,
- 0x80000390, 0x000003b9, 0x80000342, 0x000003ca,
- 0x80000342, 0x00000399, 0x80000306, 0x00000399,
- 0x80000304, 0x00000399, 0x80000300, 0x8000038a,
- 0x00001ffe, 0x80000300, 0x00001ffe, 0x80000301,
- 0x00001ffe, 0x80000342, 0x000003c5, 0x80000306,
- 0x000003c5, 0x80000304, 0x000003cb, 0x80000300,
- 0x800003b0, 0x000003c1, 0x80000313, 0x000003c1,
- 0x80000314, 0x000003c5, 0x80000342, 0x000003cb,
- 0x80000342, 0x000003a5, 0x80000306, 0x000003a5,
- 0x80000304, 0x000003a5, 0x80000300, 0x8000038e,
- 0x000003a1, 0x80000314, 0x000000a8, 0x80000300,
- 0x80000385, 0x80000060, 0x00001f7c, 0x80000345,
- 0x000003c9, 0x80000345, 0x000003ce, 0x80000345,
- 0x000003c9, 0x80000342, 0x00001ff6, 0x80000345,
- 0x0000039f, 0x80000300, 0x8000038c, 0x000003a9,
- 0x80000300, 0x8000038f, 0x000003a9, 0x80000345,
- 0x800000b4, 0x00000020, 0x80000314, 0x80002002,
- 0x80002003, 0x80000020, 0x80000020, 0x80000020,
- 0x80000020, 0x80000020, 0x80000020, 0x80000020,
- 0x80000020, 0x80000020, 0x80002010, 0x00000020,
- 0x80000333, 0x8000002e, 0x0000002e, 0x8000002e,
- 0x0000002e, 0x0000002e, 0x8000002e, 0x80000020,
- 0x00002032, 0x80002032, 0x00002032, 0x00002032,
- 0x80002032, 0x00002035, 0x80002035, 0x00002035,
- 0x00002035, 0x80002035, 0x00000021, 0x80000021,
- 0x00000020, 0x80000305, 0x0000003f, 0x8000003f,
- 0x0000003f, 0x80000021, 0x00000021, 0x8000003f,
- 0x00002032, 0x00002032, 0x00002032, 0x80002032,
- 0x80000020, 0x80000030, 0x80000069, 0x80000034,
- 0x80000035, 0x80000036, 0x80000037, 0x80000038,
- 0x80000039, 0x8000002b, 0x80002212, 0x8000003d,
- 0x80000028, 0x80000029, 0x8000006e, 0x80000030,
- 0x80000031, 0x80000032, 0x80000033, 0x80000034,
- 0x80000035, 0x80000036, 0x80000037, 0x80000038,
- 0x80000039, 0x8000002b, 0x80002212, 0x8000003d,
- 0x80000028, 0x80000029, 0x80000061, 0x80000065,
- 0x8000006f, 0x80000078, 0x80000259, 0x00000052,
- 0x80000073, 0x00000061, 0x0000002f, 0x80000063,
- 0x00000061, 0x0000002f, 0x80000073, 0x80000043,
- 0x000000b0, 0x80000043, 0x00000063, 0x0000002f,
- 0x8000006f, 0x00000063, 0x0000002f, 0x80000075,
- 0x80000190, 0x000000b0, 0x80000046, 0x80000067,
- 0x80000048, 0x80000048, 0x80000048, 0x80000068,
- 0x80000127, 0x80000049, 0x80000049, 0x8000004c,
- 0x8000006c, 0x8000004e, 0x0000004e, 0x8000006f,
- 0x80000050, 0x80000051, 0x80000052, 0x80000052,
- 0x80000052, 0x00000053, 0x8000004d, 0x00000054,
- 0x00000045, 0x8000004c, 0x00000054, 0x8000004d,
- 0x8000005a, 0x800003a9, 0x8000005a, 0x8000004b,
- 0x800000c5, 0x80000042, 0x80000043, 0x80000065,
- 0x80000045, 0x80000046, 0x8000004d, 0x8000006f,
- 0x800005d0, 0x800005d1, 0x800005d2, 0x800005d3,
- 0x80000069, 0x00000046, 0x00000041, 0x80000058,
- 0x800003c0, 0x800003b3, 0x80000393, 0x800003a0,
- 0x80002211, 0x80000044, 0x80000064, 0x80000065,
- 0x80000069, 0x8000006a, 0x00000031, 0x00002044,
- 0x80000033, 0x00000032, 0x00002044, 0x80000033,
- 0x00000031, 0x00002044, 0x80000035, 0x00000032,
- 0x00002044, 0x80000035, 0x00000033, 0x00002044,
- 0x80000035, 0x00000034, 0x00002044, 0x80000035,
- 0x00000031, 0x00002044, 0x80000036, 0x00000035,
- 0x00002044, 0x80000036, 0x00000031, 0x00002044,
- 0x80000038, 0x00000033, 0x00002044, 0x80000038,
- 0x00000035, 0x00002044, 0x80000038, 0x00000037,
- 0x00002044, 0x80000038, 0x00000031, 0x80002044,
- 0x80000049, 0x00000049, 0x80000049, 0x00000049,
- 0x00000049, 0x80000049, 0x00000049, 0x80000056,
- 0x80000056, 0x00000056, 0x80000049, 0x00000056,
- 0x00000049, 0x80000049, 0x00000056, 0x00000049,
- 0x00000049, 0x80000049, 0x00000049, 0x80000058,
- 0x80000058, 0x00000058, 0x80000049, 0x00000058,
- 0x00000049, 0x80000049, 0x8000004c, 0x80000043,
- 0x80000044, 0x8000004d, 0x80000069, 0x00000069,
- 0x80000069, 0x00000069, 0x00000069, 0x80000069,
- 0x00000069, 0x80000076, 0x80000076, 0x00000076,
- 0x80000069, 0x00000076, 0x00000069, 0x80000069,
- 0x00000076, 0x00000069, 0x00000069, 0x80000069,
- 0x00000069, 0x80000078, 0x80000078, 0x00000078,
- 0x80000069, 0x00000078, 0x00000069, 0x80000069,
- 0x8000006c, 0x80000063, 0x80000064, 0x8000006d,
- 0x00002190, 0x80000338, 0x00002192, 0x80000338,
- 0x00002194, 0x80000338, 0x000021d0, 0x80000338,
- 0x000021d4, 0x80000338, 0x000021d2, 0x80000338,
- 0x00002203, 0x80000338, 0x00002208, 0x80000338,
- 0x0000220b, 0x80000338, 0x00002223, 0x80000338,
- 0x00002225, 0x80000338, 0x0000222b, 0x8000222b,
- 0x0000222b, 0x0000222b, 0x8000222b, 0x0000222e,
- 0x8000222e, 0x0000222e, 0x0000222e, 0x8000222e,
- 0x0000223c, 0x80000338, 0x00002243, 0x80000338,
- 0x00002245, 0x80000338, 0x00002248, 0x80000338,
- 0x0000003d, 0x80000338, 0x00002261, 0x80000338,
- 0x0000224d, 0x80000338, 0x0000003c, 0x80000338,
- 0x0000003e, 0x80000338, 0x00002264, 0x80000338,
- 0x00002265, 0x80000338, 0x00002272, 0x80000338,
- 0x00002273, 0x80000338, 0x00002276, 0x80000338,
- 0x00002277, 0x80000338, 0x0000227a, 0x80000338,
- 0x0000227b, 0x80000338, 0x00002282, 0x80000338,
- 0x00002283, 0x80000338, 0x00002286, 0x80000338,
- 0x00002287, 0x80000338, 0x000022a2, 0x80000338,
- 0x000022a8, 0x80000338, 0x000022a9, 0x80000338,
- 0x000022ab, 0x80000338, 0x0000227c, 0x80000338,
- 0x0000227d, 0x80000338, 0x00002291, 0x80000338,
- 0x00002292, 0x80000338, 0x000022b2, 0x80000338,
- 0x000022b3, 0x80000338, 0x000022b4, 0x80000338,
- 0x000022b5, 0x80000338, 0x80003008, 0x80003009,
- 0x80000031, 0x80000032, 0x80000033, 0x80000034,
- 0x80000035, 0x80000036, 0x80000037, 0x80000038,
- 0x80000039, 0x00000031, 0x80000030, 0x00000031,
- 0x80000031, 0x00000031, 0x80000032, 0x00000031,
- 0x80000033, 0x00000031, 0x80000034, 0x00000031,
- 0x80000035, 0x00000031, 0x80000036, 0x00000031,
- 0x80000037, 0x00000031, 0x80000038, 0x00000031,
- 0x80000039, 0x00000032, 0x80000030, 0x00000028,
- 0x00000031, 0x80000029, 0x00000028, 0x00000032,
- 0x80000029, 0x00000028, 0x00000033, 0x80000029,
- 0x00000028, 0x00000034, 0x80000029, 0x00000028,
- 0x00000035, 0x80000029, 0x00000028, 0x00000036,
- 0x80000029, 0x00000028, 0x00000037, 0x80000029,
- 0x00000028, 0x00000038, 0x80000029, 0x00000028,
- 0x00000039, 0x80000029, 0x00000028, 0x00000031,
- 0x00000030, 0x80000029, 0x00000028, 0x00000031,
- 0x00000031, 0x80000029, 0x00000028, 0x00000031,
- 0x00000032, 0x80000029, 0x00000028, 0x00000031,
- 0x00000033, 0x80000029, 0x00000028, 0x00000031,
- 0x00000034, 0x80000029, 0x00000028, 0x00000031,
- 0x00000035, 0x80000029, 0x00000028, 0x00000031,
- 0x00000036, 0x80000029, 0x00000028, 0x00000031,
- 0x00000037, 0x80000029, 0x00000028, 0x00000031,
- 0x00000038, 0x80000029, 0x00000028, 0x00000031,
- 0x00000039, 0x80000029, 0x00000028, 0x00000032,
- 0x00000030, 0x80000029, 0x00000031, 0x8000002e,
- 0x00000032, 0x8000002e, 0x00000033, 0x8000002e,
- 0x00000034, 0x8000002e, 0x00000035, 0x8000002e,
- 0x00000036, 0x8000002e, 0x00000037, 0x8000002e,
- 0x00000038, 0x8000002e, 0x00000039, 0x8000002e,
- 0x00000031, 0x00000030, 0x8000002e, 0x00000031,
- 0x00000031, 0x8000002e, 0x00000031, 0x00000032,
- 0x8000002e, 0x00000031, 0x00000033, 0x8000002e,
- 0x00000031, 0x00000034, 0x8000002e, 0x00000031,
- 0x00000035, 0x8000002e, 0x00000031, 0x00000036,
- 0x8000002e, 0x00000031, 0x00000037, 0x8000002e,
- 0x00000031, 0x00000038, 0x8000002e, 0x00000031,
- 0x00000039, 0x8000002e, 0x00000032, 0x00000030,
- 0x8000002e, 0x00000028, 0x00000061, 0x80000029,
- 0x00000028, 0x00000062, 0x80000029, 0x00000028,
- 0x00000063, 0x80000029, 0x00000028, 0x00000064,
- 0x80000029, 0x00000028, 0x00000065, 0x80000029,
- 0x00000028, 0x00000066, 0x80000029, 0x00000028,
- 0x00000067, 0x80000029, 0x00000028, 0x00000068,
- 0x80000029, 0x00000028, 0x00000069, 0x80000029,
- 0x00000028, 0x0000006a, 0x80000029, 0x00000028,
- 0x0000006b, 0x80000029, 0x00000028, 0x0000006c,
- 0x80000029, 0x00000028, 0x0000006d, 0x80000029,
- 0x00000028, 0x0000006e, 0x80000029, 0x00000028,
- 0x0000006f, 0x80000029, 0x00000028, 0x00000070,
- 0x80000029, 0x00000028, 0x00000071, 0x80000029,
- 0x00000028, 0x00000072, 0x80000029, 0x00000028,
- 0x00000073, 0x80000029, 0x00000028, 0x00000074,
- 0x80000029, 0x00000028, 0x00000075, 0x80000029,
- 0x00000028, 0x00000076, 0x80000029, 0x00000028,
- 0x00000077, 0x80000029, 0x00000028, 0x00000078,
- 0x80000029, 0x00000028, 0x00000079, 0x80000029,
- 0x00000028, 0x0000007a, 0x80000029, 0x80000041,
- 0x80000042, 0x80000043, 0x80000044, 0x80000045,
- 0x80000046, 0x80000047, 0x80000048, 0x80000049,
- 0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d,
- 0x8000004e, 0x8000004f, 0x80000050, 0x80000051,
- 0x80000052, 0x80000053, 0x80000054, 0x80000055,
- 0x80000056, 0x80000057, 0x80000058, 0x80000059,
- 0x8000005a, 0x80000061, 0x80000062, 0x80000063,
- 0x80000064, 0x80000065, 0x80000066, 0x80000067,
- 0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
- 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
- 0x80000070, 0x80000071, 0x80000072, 0x80000073,
- 0x80000074, 0x80000075, 0x80000076, 0x80000077,
- 0x80000078, 0x80000079, 0x8000007a, 0x80000030,
- 0x0000222b, 0x0000222b, 0x0000222b, 0x8000222b,
- 0x0000003a, 0x0000003a, 0x8000003d, 0x0000003d,
- 0x8000003d, 0x0000003d, 0x0000003d, 0x8000003d,
- 0x00002add, 0x80000338, 0x80002d61, 0x80006bcd,
- 0x80009f9f, 0x80004e00, 0x80004e28, 0x80004e36,
- 0x80004e3f, 0x80004e59, 0x80004e85, 0x80004e8c,
- 0x80004ea0, 0x80004eba, 0x8000513f, 0x80005165,
- 0x8000516b, 0x80005182, 0x80005196, 0x800051ab,
- 0x800051e0, 0x800051f5, 0x80005200, 0x8000529b,
- 0x800052f9, 0x80005315, 0x8000531a, 0x80005338,
- 0x80005341, 0x8000535c, 0x80005369, 0x80005382,
- 0x800053b6, 0x800053c8, 0x800053e3, 0x800056d7,
- 0x8000571f, 0x800058eb, 0x80005902, 0x8000590a,
- 0x80005915, 0x80005927, 0x80005973, 0x80005b50,
- 0x80005b80, 0x80005bf8, 0x80005c0f, 0x80005c22,
- 0x80005c38, 0x80005c6e, 0x80005c71, 0x80005ddb,
- 0x80005de5, 0x80005df1, 0x80005dfe, 0x80005e72,
- 0x80005e7a, 0x80005e7f, 0x80005ef4, 0x80005efe,
- 0x80005f0b, 0x80005f13, 0x80005f50, 0x80005f61,
- 0x80005f73, 0x80005fc3, 0x80006208, 0x80006236,
- 0x8000624b, 0x8000652f, 0x80006534, 0x80006587,
- 0x80006597, 0x800065a4, 0x800065b9, 0x800065e0,
- 0x800065e5, 0x800066f0, 0x80006708, 0x80006728,
- 0x80006b20, 0x80006b62, 0x80006b79, 0x80006bb3,
- 0x80006bcb, 0x80006bd4, 0x80006bdb, 0x80006c0f,
- 0x80006c14, 0x80006c34, 0x8000706b, 0x8000722a,
- 0x80007236, 0x8000723b, 0x8000723f, 0x80007247,
- 0x80007259, 0x8000725b, 0x800072ac, 0x80007384,
- 0x80007389, 0x800074dc, 0x800074e6, 0x80007518,
- 0x8000751f, 0x80007528, 0x80007530, 0x8000758b,
- 0x80007592, 0x80007676, 0x8000767d, 0x800076ae,
- 0x800076bf, 0x800076ee, 0x800077db, 0x800077e2,
- 0x800077f3, 0x8000793a, 0x800079b8, 0x800079be,
- 0x80007a74, 0x80007acb, 0x80007af9, 0x80007c73,
- 0x80007cf8, 0x80007f36, 0x80007f51, 0x80007f8a,
- 0x80007fbd, 0x80008001, 0x8000800c, 0x80008012,
- 0x80008033, 0x8000807f, 0x80008089, 0x800081e3,
- 0x800081ea, 0x800081f3, 0x800081fc, 0x8000820c,
- 0x8000821b, 0x8000821f, 0x8000826e, 0x80008272,
- 0x80008278, 0x8000864d, 0x8000866b, 0x80008840,
- 0x8000884c, 0x80008863, 0x8000897e, 0x8000898b,
- 0x800089d2, 0x80008a00, 0x80008c37, 0x80008c46,
- 0x80008c55, 0x80008c78, 0x80008c9d, 0x80008d64,
- 0x80008d70, 0x80008db3, 0x80008eab, 0x80008eca,
- 0x80008f9b, 0x80008fb0, 0x80008fb5, 0x80009091,
- 0x80009149, 0x800091c6, 0x800091cc, 0x800091d1,
- 0x80009577, 0x80009580, 0x8000961c, 0x800096b6,
- 0x800096b9, 0x800096e8, 0x80009751, 0x8000975e,
- 0x80009762, 0x80009769, 0x800097cb, 0x800097ed,
- 0x800097f3, 0x80009801, 0x800098a8, 0x800098db,
- 0x800098df, 0x80009996, 0x80009999, 0x800099ac,
- 0x80009aa8, 0x80009ad8, 0x80009adf, 0x80009b25,
- 0x80009b2f, 0x80009b32, 0x80009b3c, 0x80009b5a,
- 0x80009ce5, 0x80009e75, 0x80009e7f, 0x80009ea5,
- 0x80009ebb, 0x80009ec3, 0x80009ecd, 0x80009ed1,
- 0x80009ef9, 0x80009efd, 0x80009f0e, 0x80009f13,
- 0x80009f20, 0x80009f3b, 0x80009f4a, 0x80009f52,
- 0x80009f8d, 0x80009f9c, 0x80009fa0, 0x80000020,
- 0x80003012, 0x80005341, 0x80005344, 0x80005345,
- 0x0000304b, 0x80003099, 0x0000304d, 0x80003099,
- 0x0000304f, 0x80003099, 0x00003051, 0x80003099,
- 0x00003053, 0x80003099, 0x00003055, 0x80003099,
- 0x00003057, 0x80003099, 0x00003059, 0x80003099,
- 0x0000305b, 0x80003099, 0x0000305d, 0x80003099,
- 0x0000305f, 0x80003099, 0x00003061, 0x80003099,
- 0x00003064, 0x80003099, 0x00003066, 0x80003099,
- 0x00003068, 0x80003099, 0x0000306f, 0x80003099,
- 0x0000306f, 0x8000309a, 0x00003072, 0x80003099,
- 0x00003072, 0x8000309a, 0x00003075, 0x80003099,
- 0x00003075, 0x8000309a, 0x00003078, 0x80003099,
- 0x00003078, 0x8000309a, 0x0000307b, 0x80003099,
- 0x0000307b, 0x8000309a, 0x00003046, 0x80003099,
- 0x00000020, 0x80003099, 0x00000020, 0x8000309a,
- 0x0000309d, 0x80003099, 0x00003088, 0x8000308a,
- 0x000030ab, 0x80003099, 0x000030ad, 0x80003099,
- 0x000030af, 0x80003099, 0x000030b1, 0x80003099,
- 0x000030b3, 0x80003099, 0x000030b5, 0x80003099,
- 0x000030b7, 0x80003099, 0x000030b9, 0x80003099,
- 0x000030bb, 0x80003099, 0x000030bd, 0x80003099,
- 0x000030bf, 0x80003099, 0x000030c1, 0x80003099,
- 0x000030c4, 0x80003099, 0x000030c6, 0x80003099,
- 0x000030c8, 0x80003099, 0x000030cf, 0x80003099,
- 0x000030cf, 0x8000309a, 0x000030d2, 0x80003099,
- 0x000030d2, 0x8000309a, 0x000030d5, 0x80003099,
- 0x000030d5, 0x8000309a, 0x000030d8, 0x80003099,
- 0x000030d8, 0x8000309a, 0x000030db, 0x80003099,
- 0x000030db, 0x8000309a, 0x000030a6, 0x80003099,
- 0x000030ef, 0x80003099, 0x000030f0, 0x80003099,
- 0x000030f1, 0x80003099, 0x000030f2, 0x80003099,
- 0x000030fd, 0x80003099, 0x000030b3, 0x800030c8,
- 0x80001100, 0x80001101, 0x800011aa, 0x80001102,
- 0x800011ac, 0x800011ad, 0x80001103, 0x80001104,
- 0x80001105, 0x800011b0, 0x800011b1, 0x800011b2,
- 0x800011b3, 0x800011b4, 0x800011b5, 0x8000111a,
- 0x80001106, 0x80001107, 0x80001108, 0x80001121,
- 0x80001109, 0x8000110a, 0x8000110b, 0x8000110c,
- 0x8000110d, 0x8000110e, 0x8000110f, 0x80001110,
- 0x80001111, 0x80001112, 0x80001161, 0x80001162,
- 0x80001163, 0x80001164, 0x80001165, 0x80001166,
- 0x80001167, 0x80001168, 0x80001169, 0x8000116a,
- 0x8000116b, 0x8000116c, 0x8000116d, 0x8000116e,
- 0x8000116f, 0x80001170, 0x80001171, 0x80001172,
- 0x80001173, 0x80001174, 0x80001175, 0x80001160,
- 0x80001114, 0x80001115, 0x800011c7, 0x800011c8,
- 0x800011cc, 0x800011ce, 0x800011d3, 0x800011d7,
- 0x800011d9, 0x8000111c, 0x800011dd, 0x800011df,
- 0x8000111d, 0x8000111e, 0x80001120, 0x80001122,
- 0x80001123, 0x80001127, 0x80001129, 0x8000112b,
- 0x8000112c, 0x8000112d, 0x8000112e, 0x8000112f,
- 0x80001132, 0x80001136, 0x80001140, 0x80001147,
- 0x8000114c, 0x800011f1, 0x800011f2, 0x80001157,
- 0x80001158, 0x80001159, 0x80001184, 0x80001185,
- 0x80001188, 0x80001191, 0x80001192, 0x80001194,
- 0x8000119e, 0x800011a1, 0x80004e00, 0x80004e8c,
- 0x80004e09, 0x800056db, 0x80004e0a, 0x80004e2d,
- 0x80004e0b, 0x80007532, 0x80004e59, 0x80004e19,
- 0x80004e01, 0x80005929, 0x80005730, 0x80004eba,
- 0x00000028, 0x00001100, 0x80000029, 0x00000028,
- 0x00001102, 0x80000029, 0x00000028, 0x00001103,
- 0x80000029, 0x00000028, 0x00001105, 0x80000029,
- 0x00000028, 0x00001106, 0x80000029, 0x00000028,
- 0x00001107, 0x80000029, 0x00000028, 0x00001109,
- 0x80000029, 0x00000028, 0x0000110b, 0x80000029,
- 0x00000028, 0x0000110c, 0x80000029, 0x00000028,
- 0x0000110e, 0x80000029, 0x00000028, 0x0000110f,
- 0x80000029, 0x00000028, 0x00001110, 0x80000029,
- 0x00000028, 0x00001111, 0x80000029, 0x00000028,
- 0x00001112, 0x80000029, 0x00000028, 0x00001100,
- 0x00001161, 0x80000029, 0x00000028, 0x00001102,
- 0x00001161, 0x80000029, 0x00000028, 0x00001103,
- 0x00001161, 0x80000029, 0x00000028, 0x00001105,
- 0x00001161, 0x80000029, 0x00000028, 0x00001106,
- 0x00001161, 0x80000029, 0x00000028, 0x00001107,
- 0x00001161, 0x80000029, 0x00000028, 0x00001109,
- 0x00001161, 0x80000029, 0x00000028, 0x0000110b,
- 0x00001161, 0x80000029, 0x00000028, 0x0000110c,
- 0x00001161, 0x80000029, 0x00000028, 0x0000110e,
- 0x00001161, 0x80000029, 0x00000028, 0x0000110f,
- 0x00001161, 0x80000029, 0x00000028, 0x00001110,
- 0x00001161, 0x80000029, 0x00000028, 0x00001111,
- 0x00001161, 0x80000029, 0x00000028, 0x00001112,
- 0x00001161, 0x80000029, 0x00000028, 0x0000110c,
- 0x0000116e, 0x80000029, 0x00000028, 0x0000110b,
- 0x00001169, 0x0000110c, 0x00001165, 0x000011ab,
- 0x80000029, 0x00000028, 0x0000110b, 0x00001169,
- 0x00001112, 0x0000116e, 0x80000029, 0x00000028,
- 0x00004e00, 0x80000029, 0x00000028, 0x00004e8c,
- 0x80000029, 0x00000028, 0x00004e09, 0x80000029,
- 0x00000028, 0x000056db, 0x80000029, 0x00000028,
- 0x00004e94, 0x80000029, 0x00000028, 0x0000516d,
- 0x80000029, 0x00000028, 0x00004e03, 0x80000029,
- 0x00000028, 0x0000516b, 0x80000029, 0x00000028,
- 0x00004e5d, 0x80000029, 0x00000028, 0x00005341,
- 0x80000029, 0x00000028, 0x00006708, 0x80000029,
- 0x00000028, 0x0000706b, 0x80000029, 0x00000028,
- 0x00006c34, 0x80000029, 0x00000028, 0x00006728,
- 0x80000029, 0x00000028, 0x000091d1, 0x80000029,
- 0x00000028, 0x0000571f, 0x80000029, 0x00000028,
- 0x000065e5, 0x80000029, 0x00000028, 0x0000682a,
- 0x80000029, 0x00000028, 0x00006709, 0x80000029,
- 0x00000028, 0x0000793e, 0x80000029, 0x00000028,
- 0x0000540d, 0x80000029, 0x00000028, 0x00007279,
- 0x80000029, 0x00000028, 0x00008ca1, 0x80000029,
- 0x00000028, 0x0000795d, 0x80000029, 0x00000028,
- 0x000052b4, 0x80000029, 0x00000028, 0x00004ee3,
- 0x80000029, 0x00000028, 0x0000547c, 0x80000029,
- 0x00000028, 0x00005b66, 0x80000029, 0x00000028,
- 0x000076e3, 0x80000029, 0x00000028, 0x00004f01,
- 0x80000029, 0x00000028, 0x00008cc7, 0x80000029,
- 0x00000028, 0x00005354, 0x80000029, 0x00000028,
- 0x0000796d, 0x80000029, 0x00000028, 0x00004f11,
- 0x80000029, 0x00000028, 0x000081ea, 0x80000029,
- 0x00000028, 0x000081f3, 0x80000029, 0x00000050,
- 0x00000054, 0x80000045, 0x00000032, 0x80000031,
- 0x00000032, 0x80000032, 0x00000032, 0x80000033,
- 0x00000032, 0x80000034, 0x00000032, 0x80000035,
- 0x00000032, 0x80000036, 0x00000032, 0x80000037,
- 0x00000032, 0x80000038, 0x00000032, 0x80000039,
- 0x00000033, 0x80000030, 0x00000033, 0x80000031,
- 0x00000033, 0x80000032, 0x00000033, 0x80000033,
- 0x00000033, 0x80000034, 0x00000033, 0x80000035,
- 0x80001100, 0x80001102, 0x80001103, 0x80001105,
- 0x80001106, 0x80001107, 0x80001109, 0x8000110b,
- 0x8000110c, 0x8000110e, 0x8000110f, 0x80001110,
- 0x80001111, 0x80001112, 0x00001100, 0x80001161,
- 0x00001102, 0x80001161, 0x00001103, 0x80001161,
- 0x00001105, 0x80001161, 0x00001106, 0x80001161,
- 0x00001107, 0x80001161, 0x00001109, 0x80001161,
- 0x0000110b, 0x80001161, 0x0000110c, 0x80001161,
- 0x0000110e, 0x80001161, 0x0000110f, 0x80001161,
- 0x00001110, 0x80001161, 0x00001111, 0x80001161,
- 0x00001112, 0x80001161, 0x0000110e, 0x00001161,
- 0x000011b7, 0x00001100, 0x80001169, 0x0000110c,
- 0x0000116e, 0x0000110b, 0x80001174, 0x0000110b,
- 0x8000116e, 0x80004e00, 0x80004e8c, 0x80004e09,
- 0x800056db, 0x80004e94, 0x8000516d, 0x80004e03,
- 0x8000516b, 0x80004e5d, 0x80005341, 0x80006708,
- 0x8000706b, 0x80006c34, 0x80006728, 0x800091d1,
- 0x8000571f, 0x800065e5, 0x8000682a, 0x80006709,
- 0x8000793e, 0x8000540d, 0x80007279, 0x80008ca1,
- 0x8000795d, 0x800052b4, 0x800079d8, 0x80007537,
- 0x80005973, 0x80009069, 0x8000512a, 0x80005370,
- 0x80006ce8, 0x80009805, 0x80004f11, 0x80005199,
- 0x80006b63, 0x80004e0a, 0x80004e2d, 0x80004e0b,
- 0x80005de6, 0x800053f3, 0x8000533b, 0x80005b97,
- 0x80005b66, 0x800076e3, 0x80004f01, 0x80008cc7,
- 0x80005354, 0x8000591c, 0x00000033, 0x80000036,
- 0x00000033, 0x80000037, 0x00000033, 0x80000038,
- 0x00000033, 0x80000039, 0x00000034, 0x80000030,
- 0x00000034, 0x80000031, 0x00000034, 0x80000032,
- 0x00000034, 0x80000033, 0x00000034, 0x80000034,
- 0x00000034, 0x80000035, 0x00000034, 0x80000036,
- 0x00000034, 0x80000037, 0x00000034, 0x80000038,
- 0x00000034, 0x80000039, 0x00000035, 0x80000030,
- 0x00000031, 0x80006708, 0x00000032, 0x80006708,
- 0x00000033, 0x80006708, 0x00000034, 0x80006708,
- 0x00000035, 0x80006708, 0x00000036, 0x80006708,
- 0x00000037, 0x80006708, 0x00000038, 0x80006708,
- 0x00000039, 0x80006708, 0x00000031, 0x00000030,
- 0x80006708, 0x00000031, 0x00000031, 0x80006708,
- 0x00000031, 0x00000032, 0x80006708, 0x00000048,
- 0x80000067, 0x00000065, 0x00000072, 0x80000067,
- 0x00000065, 0x80000056, 0x0000004c, 0x00000054,
- 0x80000044, 0x800030a2, 0x800030a4, 0x800030a6,
- 0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad,
- 0x800030af, 0x800030b1, 0x800030b3, 0x800030b5,
- 0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd,
- 0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6,
- 0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc,
- 0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2,
- 0x800030d5, 0x800030d8, 0x800030db, 0x800030de,
- 0x800030df, 0x800030e0, 0x800030e1, 0x800030e2,
- 0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9,
- 0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed,
- 0x800030ef, 0x800030f0, 0x800030f1, 0x800030f2,
- 0x000030a2, 0x000030d1, 0x000030fc, 0x800030c8,
- 0x000030a2, 0x000030eb, 0x000030d5, 0x800030a1,
- 0x000030a2, 0x000030f3, 0x000030da, 0x800030a2,
- 0x000030a2, 0x000030fc, 0x800030eb, 0x000030a4,
- 0x000030cb, 0x000030f3, 0x800030b0, 0x000030a4,
- 0x000030f3, 0x800030c1, 0x000030a6, 0x000030a9,
- 0x800030f3, 0x000030a8, 0x000030b9, 0x000030af,
- 0x000030fc, 0x800030c9, 0x000030a8, 0x000030fc,
- 0x000030ab, 0x800030fc, 0x000030aa, 0x000030f3,
- 0x800030b9, 0x000030aa, 0x000030fc, 0x800030e0,
- 0x000030ab, 0x000030a4, 0x800030ea, 0x000030ab,
- 0x000030e9, 0x000030c3, 0x800030c8, 0x000030ab,
- 0x000030ed, 0x000030ea, 0x800030fc, 0x000030ac,
- 0x000030ed, 0x800030f3, 0x000030ac, 0x000030f3,
- 0x800030de, 0x000030ae, 0x800030ac, 0x000030ae,
- 0x000030cb, 0x800030fc, 0x000030ad, 0x000030e5,
- 0x000030ea, 0x800030fc, 0x000030ae, 0x000030eb,
- 0x000030c0, 0x800030fc, 0x000030ad, 0x800030ed,
- 0x000030ad, 0x000030ed, 0x000030b0, 0x000030e9,
- 0x800030e0, 0x000030ad, 0x000030ed, 0x000030e1,
- 0x000030fc, 0x000030c8, 0x800030eb, 0x000030ad,
- 0x000030ed, 0x000030ef, 0x000030c3, 0x800030c8,
- 0x000030b0, 0x000030e9, 0x800030e0, 0x000030b0,
- 0x000030e9, 0x000030e0, 0x000030c8, 0x800030f3,
- 0x000030af, 0x000030eb, 0x000030bc, 0x000030a4,
- 0x800030ed, 0x000030af, 0x000030ed, 0x000030fc,
- 0x800030cd, 0x000030b1, 0x000030fc, 0x800030b9,
- 0x000030b3, 0x000030eb, 0x800030ca, 0x000030b3,
- 0x000030fc, 0x800030dd, 0x000030b5, 0x000030a4,
- 0x000030af, 0x800030eb, 0x000030b5, 0x000030f3,
- 0x000030c1, 0x000030fc, 0x800030e0, 0x000030b7,
- 0x000030ea, 0x000030f3, 0x800030b0, 0x000030bb,
- 0x000030f3, 0x800030c1, 0x000030bb, 0x000030f3,
- 0x800030c8, 0x000030c0, 0x000030fc, 0x800030b9,
- 0x000030c7, 0x800030b7, 0x000030c9, 0x800030eb,
- 0x000030c8, 0x800030f3, 0x000030ca, 0x800030ce,
- 0x000030ce, 0x000030c3, 0x800030c8, 0x000030cf,
- 0x000030a4, 0x800030c4, 0x000030d1, 0x000030fc,
- 0x000030bb, 0x000030f3, 0x800030c8, 0x000030d1,
- 0x000030fc, 0x800030c4, 0x000030d0, 0x000030fc,
- 0x000030ec, 0x800030eb, 0x000030d4, 0x000030a2,
- 0x000030b9, 0x000030c8, 0x800030eb, 0x000030d4,
- 0x000030af, 0x800030eb, 0x000030d4, 0x800030b3,
- 0x000030d3, 0x800030eb, 0x000030d5, 0x000030a1,
- 0x000030e9, 0x000030c3, 0x800030c9, 0x000030d5,
- 0x000030a3, 0x000030fc, 0x800030c8, 0x000030d6,
- 0x000030c3, 0x000030b7, 0x000030a7, 0x800030eb,
- 0x000030d5, 0x000030e9, 0x800030f3, 0x000030d8,
- 0x000030af, 0x000030bf, 0x000030fc, 0x800030eb,
- 0x000030da, 0x800030bd, 0x000030da, 0x000030cb,
- 0x800030d2, 0x000030d8, 0x000030eb, 0x800030c4,
- 0x000030da, 0x000030f3, 0x800030b9, 0x000030da,
- 0x000030fc, 0x800030b8, 0x000030d9, 0x000030fc,
- 0x800030bf, 0x000030dd, 0x000030a4, 0x000030f3,
- 0x800030c8, 0x000030dc, 0x000030eb, 0x800030c8,
- 0x000030db, 0x800030f3, 0x000030dd, 0x000030f3,
- 0x800030c9, 0x000030db, 0x000030fc, 0x800030eb,
- 0x000030db, 0x000030fc, 0x800030f3, 0x000030de,
- 0x000030a4, 0x000030af, 0x800030ed, 0x000030de,
- 0x000030a4, 0x800030eb, 0x000030de, 0x000030c3,
- 0x800030cf, 0x000030de, 0x000030eb, 0x800030af,
- 0x000030de, 0x000030f3, 0x000030b7, 0x000030e7,
- 0x800030f3, 0x000030df, 0x000030af, 0x000030ed,
- 0x800030f3, 0x000030df, 0x800030ea, 0x000030df,
- 0x000030ea, 0x000030d0, 0x000030fc, 0x800030eb,
- 0x000030e1, 0x800030ac, 0x000030e1, 0x000030ac,
- 0x000030c8, 0x800030f3, 0x000030e1, 0x000030fc,
- 0x000030c8, 0x800030eb, 0x000030e4, 0x000030fc,
- 0x800030c9, 0x000030e4, 0x000030fc, 0x800030eb,
- 0x000030e6, 0x000030a2, 0x800030f3, 0x000030ea,
- 0x000030c3, 0x000030c8, 0x800030eb, 0x000030ea,
- 0x800030e9, 0x000030eb, 0x000030d4, 0x800030fc,
- 0x000030eb, 0x000030fc, 0x000030d6, 0x800030eb,
- 0x000030ec, 0x800030e0, 0x000030ec, 0x000030f3,
- 0x000030c8, 0x000030b2, 0x800030f3, 0x000030ef,
- 0x000030c3, 0x800030c8, 0x00000030, 0x800070b9,
- 0x00000031, 0x800070b9, 0x00000032, 0x800070b9,
- 0x00000033, 0x800070b9, 0x00000034, 0x800070b9,
- 0x00000035, 0x800070b9, 0x00000036, 0x800070b9,
- 0x00000037, 0x800070b9, 0x00000038, 0x800070b9,
- 0x00000039, 0x800070b9, 0x00000031, 0x00000030,
- 0x800070b9, 0x00000031, 0x00000031, 0x800070b9,
- 0x00000031, 0x00000032, 0x800070b9, 0x00000031,
- 0x00000033, 0x800070b9, 0x00000031, 0x00000034,
- 0x800070b9, 0x00000031, 0x00000035, 0x800070b9,
- 0x00000031, 0x00000036, 0x800070b9, 0x00000031,
- 0x00000037, 0x800070b9, 0x00000031, 0x00000038,
- 0x800070b9, 0x00000031, 0x00000039, 0x800070b9,
- 0x00000032, 0x00000030, 0x800070b9, 0x00000032,
- 0x00000031, 0x800070b9, 0x00000032, 0x00000032,
- 0x800070b9, 0x00000032, 0x00000033, 0x800070b9,
- 0x00000032, 0x00000034, 0x800070b9, 0x00000068,
- 0x00000050, 0x80000061, 0x00000064, 0x80000061,
- 0x00000041, 0x80000055, 0x00000062, 0x00000061,
- 0x80000072, 0x0000006f, 0x80000056, 0x00000070,
- 0x80000063, 0x00000064, 0x8000006d, 0x00000064,
- 0x0000006d, 0x800000b2, 0x00000064, 0x0000006d,
- 0x800000b3, 0x00000049, 0x80000055, 0x00005e73,
- 0x80006210, 0x0000662d, 0x8000548c, 0x00005927,
- 0x80006b63, 0x0000660e, 0x80006cbb, 0x0000682a,
- 0x00005f0f, 0x00004f1a, 0x8000793e, 0x00000070,
- 0x80000041, 0x0000006e, 0x80000041, 0x000003bc,
- 0x80000041, 0x0000006d, 0x80000041, 0x0000006b,
- 0x80000041, 0x0000004b, 0x80000042, 0x0000004d,
- 0x80000042, 0x00000047, 0x80000042, 0x00000063,
- 0x00000061, 0x8000006c, 0x0000006b, 0x00000063,
- 0x00000061, 0x8000006c, 0x00000070, 0x80000046,
- 0x0000006e, 0x80000046, 0x000003bc, 0x80000046,
- 0x000003bc, 0x80000067, 0x0000006d, 0x80000067,
- 0x0000006b, 0x80000067, 0x00000048, 0x8000007a,
- 0x0000006b, 0x00000048, 0x8000007a, 0x0000004d,
- 0x00000048, 0x8000007a, 0x00000047, 0x00000048,
- 0x8000007a, 0x00000054, 0x00000048, 0x8000007a,
- 0x000003bc, 0x80002113, 0x0000006d, 0x80002113,
- 0x00000064, 0x80002113, 0x0000006b, 0x80002113,
- 0x00000066, 0x8000006d, 0x0000006e, 0x8000006d,
- 0x000003bc, 0x8000006d, 0x0000006d, 0x8000006d,
- 0x00000063, 0x8000006d, 0x0000006b, 0x8000006d,
- 0x0000006d, 0x0000006d, 0x800000b2, 0x00000063,
- 0x0000006d, 0x800000b2, 0x0000006d, 0x800000b2,
- 0x0000006b, 0x0000006d, 0x800000b2, 0x0000006d,
- 0x0000006d, 0x800000b3, 0x00000063, 0x0000006d,
- 0x800000b3, 0x0000006d, 0x800000b3, 0x0000006b,
- 0x0000006d, 0x800000b3, 0x0000006d, 0x00002215,
- 0x80000073, 0x0000006d, 0x00002215, 0x00000073,
- 0x800000b2, 0x00000050, 0x80000061, 0x0000006b,
- 0x00000050, 0x80000061, 0x0000004d, 0x00000050,
- 0x80000061, 0x00000047, 0x00000050, 0x80000061,
- 0x00000072, 0x00000061, 0x80000064, 0x00000072,
- 0x00000061, 0x00000064, 0x00002215, 0x80000073,
- 0x00000072, 0x00000061, 0x00000064, 0x00002215,
- 0x00000073, 0x800000b2, 0x00000070, 0x80000073,
- 0x0000006e, 0x80000073, 0x000003bc, 0x80000073,
- 0x0000006d, 0x80000073, 0x00000070, 0x80000056,
- 0x0000006e, 0x80000056, 0x000003bc, 0x80000056,
- 0x0000006d, 0x80000056, 0x0000006b, 0x80000056,
- 0x0000004d, 0x80000056, 0x00000070, 0x80000057,
- 0x0000006e, 0x80000057, 0x000003bc, 0x80000057,
- 0x0000006d, 0x80000057, 0x0000006b, 0x80000057,
- 0x0000004d, 0x80000057, 0x0000006b, 0x800003a9,
- 0x0000004d, 0x800003a9, 0x00000061, 0x0000002e,
- 0x0000006d, 0x8000002e, 0x00000042, 0x80000071,
- 0x00000063, 0x80000063, 0x00000063, 0x80000064,
- 0x00000043, 0x00002215, 0x0000006b, 0x80000067,
- 0x00000043, 0x0000006f, 0x8000002e, 0x00000064,
- 0x80000042, 0x00000047, 0x80000079, 0x00000068,
- 0x80000061, 0x00000048, 0x80000050, 0x00000069,
- 0x8000006e, 0x0000004b, 0x8000004b, 0x0000004b,
- 0x8000004d, 0x0000006b, 0x80000074, 0x0000006c,
- 0x8000006d, 0x0000006c, 0x8000006e, 0x0000006c,
- 0x0000006f, 0x80000067, 0x0000006c, 0x80000078,
- 0x0000006d, 0x80000062, 0x0000006d, 0x00000069,
- 0x8000006c, 0x0000006d, 0x0000006f, 0x8000006c,
- 0x00000050, 0x80000048, 0x00000070, 0x0000002e,
- 0x0000006d, 0x8000002e, 0x00000050, 0x00000050,
- 0x8000004d, 0x00000050, 0x80000052, 0x00000073,
- 0x80000072, 0x00000053, 0x80000076, 0x00000057,
- 0x80000062, 0x00000056, 0x00002215, 0x8000006d,
- 0x00000041, 0x00002215, 0x8000006d, 0x00000031,
- 0x800065e5, 0x00000032, 0x800065e5, 0x00000033,
- 0x800065e5, 0x00000034, 0x800065e5, 0x00000035,
- 0x800065e5, 0x00000036, 0x800065e5, 0x00000037,
- 0x800065e5, 0x00000038, 0x800065e5, 0x00000039,
- 0x800065e5, 0x00000031, 0x00000030, 0x800065e5,
- 0x00000031, 0x00000031, 0x800065e5, 0x00000031,
- 0x00000032, 0x800065e5, 0x00000031, 0x00000033,
- 0x800065e5, 0x00000031, 0x00000034, 0x800065e5,
- 0x00000031, 0x00000035, 0x800065e5, 0x00000031,
- 0x00000036, 0x800065e5, 0x00000031, 0x00000037,
- 0x800065e5, 0x00000031, 0x00000038, 0x800065e5,
- 0x00000031, 0x00000039, 0x800065e5, 0x00000032,
- 0x00000030, 0x800065e5, 0x00000032, 0x00000031,
- 0x800065e5, 0x00000032, 0x00000032, 0x800065e5,
- 0x00000032, 0x00000033, 0x800065e5, 0x00000032,
- 0x00000034, 0x800065e5, 0x00000032, 0x00000035,
- 0x800065e5, 0x00000032, 0x00000036, 0x800065e5,
- 0x00000032, 0x00000037, 0x800065e5, 0x00000032,
- 0x00000038, 0x800065e5, 0x00000032, 0x00000039,
- 0x800065e5, 0x00000033, 0x00000030, 0x800065e5,
- 0x00000033, 0x00000031, 0x800065e5, 0x00000067,
- 0x00000061, 0x8000006c, 0x80008c48, 0x800066f4,
- 0x80008eca, 0x80008cc8, 0x80006ed1, 0x80004e32,
- 0x800053e5, 0x80009f9c, 0x80009f9c, 0x80005951,
- 0x800091d1, 0x80005587, 0x80005948, 0x800061f6,
- 0x80007669, 0x80007f85, 0x8000863f, 0x800087ba,
- 0x800088f8, 0x8000908f, 0x80006a02, 0x80006d1b,
- 0x800070d9, 0x800073de, 0x8000843d, 0x8000916a,
- 0x800099f1, 0x80004e82, 0x80005375, 0x80006b04,
- 0x8000721b, 0x8000862d, 0x80009e1e, 0x80005d50,
- 0x80006feb, 0x800085cd, 0x80008964, 0x800062c9,
- 0x800081d8, 0x8000881f, 0x80005eca, 0x80006717,
- 0x80006d6a, 0x800072fc, 0x800090ce, 0x80004f86,
- 0x800051b7, 0x800052de, 0x800064c4, 0x80006ad3,
- 0x80007210, 0x800076e7, 0x80008001, 0x80008606,
- 0x8000865c, 0x80008def, 0x80009732, 0x80009b6f,
- 0x80009dfa, 0x8000788c, 0x8000797f, 0x80007da0,
- 0x800083c9, 0x80009304, 0x80009e7f, 0x80008ad6,
- 0x800058df, 0x80005f04, 0x80007c60, 0x8000807e,
- 0x80007262, 0x800078ca, 0x80008cc2, 0x800096f7,
- 0x800058d8, 0x80005c62, 0x80006a13, 0x80006dda,
- 0x80006f0f, 0x80007d2f, 0x80007e37, 0x8000964b,
- 0x800052d2, 0x8000808b, 0x800051dc, 0x800051cc,
- 0x80007a1c, 0x80007dbe, 0x800083f1, 0x80009675,
- 0x80008b80, 0x800062cf, 0x80006a02, 0x80008afe,
- 0x80004e39, 0x80005be7, 0x80006012, 0x80007387,
- 0x80007570, 0x80005317, 0x800078fb, 0x80004fbf,
- 0x80005fa9, 0x80004e0d, 0x80006ccc, 0x80006578,
- 0x80007d22, 0x800053c3, 0x8000585e, 0x80007701,
- 0x80008449, 0x80008aaa, 0x80006bba, 0x80008fb0,
- 0x80006c88, 0x800062fe, 0x800082e5, 0x800063a0,
- 0x80007565, 0x80004eae, 0x80005169, 0x800051c9,
- 0x80006881, 0x80007ce7, 0x8000826f, 0x80008ad2,
- 0x800091cf, 0x800052f5, 0x80005442, 0x80005973,
- 0x80005eec, 0x800065c5, 0x80006ffe, 0x8000792a,
- 0x800095ad, 0x80009a6a, 0x80009e97, 0x80009ece,
- 0x8000529b, 0x800066c6, 0x80006b77, 0x80008f62,
- 0x80005e74, 0x80006190, 0x80006200, 0x8000649a,
- 0x80006f23, 0x80007149, 0x80007489, 0x800079ca,
- 0x80007df4, 0x8000806f, 0x80008f26, 0x800084ee,
- 0x80009023, 0x8000934a, 0x80005217, 0x800052a3,
- 0x800054bd, 0x800070c8, 0x800088c2, 0x80008aaa,
- 0x80005ec9, 0x80005ff5, 0x8000637b, 0x80006bae,
- 0x80007c3e, 0x80007375, 0x80004ee4, 0x800056f9,
- 0x80005be7, 0x80005dba, 0x8000601c, 0x800073b2,
- 0x80007469, 0x80007f9a, 0x80008046, 0x80009234,
- 0x800096f6, 0x80009748, 0x80009818, 0x80004f8b,
- 0x800079ae, 0x800091b4, 0x800096b8, 0x800060e1,
- 0x80004e86, 0x800050da, 0x80005bee, 0x80005c3f,
- 0x80006599, 0x80006a02, 0x800071ce, 0x80007642,
- 0x800084fc, 0x8000907c, 0x80009f8d, 0x80006688,
- 0x8000962e, 0x80005289, 0x8000677b, 0x800067f3,
- 0x80006d41, 0x80006e9c, 0x80007409, 0x80007559,
- 0x8000786b, 0x80007d10, 0x8000985e, 0x8000516d,
- 0x8000622e, 0x80009678, 0x8000502b, 0x80005d19,
- 0x80006dea, 0x80008f2a, 0x80005f8b, 0x80006144,
- 0x80006817, 0x80007387, 0x80009686, 0x80005229,
- 0x8000540f, 0x80005c65, 0x80006613, 0x8000674e,
- 0x800068a8, 0x80006ce5, 0x80007406, 0x800075e2,
- 0x80007f79, 0x800088cf, 0x800088e1, 0x800091cc,
- 0x800096e2, 0x8000533f, 0x80006eba, 0x8000541d,
- 0x800071d0, 0x80007498, 0x800085fa, 0x800096a3,
- 0x80009c57, 0x80009e9f, 0x80006797, 0x80006dcb,
- 0x800081e8, 0x80007acb, 0x80007b20, 0x80007c92,
- 0x800072c0, 0x80007099, 0x80008b58, 0x80004ec0,
- 0x80008336, 0x8000523a, 0x80005207, 0x80005ea6,
- 0x800062d3, 0x80007cd6, 0x80005b85, 0x80006d1e,
- 0x800066b4, 0x80008f3b, 0x8000884c, 0x8000964d,
- 0x8000898b, 0x80005ed3, 0x80005140, 0x800055c0,
- 0x8000585a, 0x80006674, 0x800051de, 0x8000732a,
- 0x800076ca, 0x8000793c, 0x8000795e, 0x80007965,
- 0x8000798f, 0x80009756, 0x80007cbe, 0x80007fbd,
- 0x80008612, 0x80008af8, 0x80009038, 0x800090fd,
- 0x800098ef, 0x800098fc, 0x80009928, 0x80009db4,
- 0x80004fae, 0x800050e7, 0x8000514d, 0x800052c9,
- 0x800052e4, 0x80005351, 0x8000559d, 0x80005606,
- 0x80005668, 0x80005840, 0x800058a8, 0x80005c64,
- 0x80005c6e, 0x80006094, 0x80006168, 0x8000618e,
- 0x800061f2, 0x8000654f, 0x800065e2, 0x80006691,
- 0x80006885, 0x80006d77, 0x80006e1a, 0x80006f22,
- 0x8000716e, 0x8000722b, 0x80007422, 0x80007891,
- 0x8000793e, 0x80007949, 0x80007948, 0x80007950,
- 0x80007956, 0x8000795d, 0x8000798d, 0x8000798e,
- 0x80007a40, 0x80007a81, 0x80007bc0, 0x80007df4,
- 0x80007e09, 0x80007e41, 0x80007f72, 0x80008005,
- 0x800081ed, 0x80008279, 0x80008279, 0x80008457,
- 0x80008910, 0x80008996, 0x80008b01, 0x80008b39,
- 0x80008cd3, 0x80008d08, 0x80008fb6, 0x80009038,
- 0x800096e3, 0x800097ff, 0x8000983b, 0x80004e26,
- 0x800051b5, 0x80005168, 0x80004f80, 0x80005145,
- 0x80005180, 0x800052c7, 0x800052fa, 0x8000559d,
- 0x80005555, 0x80005599, 0x800055e2, 0x8000585a,
- 0x800058b3, 0x80005944, 0x80005954, 0x80005a62,
- 0x80005b28, 0x80005ed2, 0x80005ed9, 0x80005f69,
- 0x80005fad, 0x800060d8, 0x8000614e, 0x80006108,
- 0x8000618e, 0x80006160, 0x800061f2, 0x80006234,
- 0x800063c4, 0x8000641c, 0x80006452, 0x80006556,
- 0x80006674, 0x80006717, 0x8000671b, 0x80006756,
- 0x80006b79, 0x80006bba, 0x80006d41, 0x80006edb,
- 0x80006ecb, 0x80006f22, 0x8000701e, 0x8000716e,
- 0x800077a7, 0x80007235, 0x800072af, 0x8000732a,
- 0x80007471, 0x80007506, 0x8000753b, 0x8000761d,
- 0x8000761f, 0x800076ca, 0x800076db, 0x800076f4,
- 0x8000774a, 0x80007740, 0x800078cc, 0x80007ab1,
- 0x80007bc0, 0x80007c7b, 0x80007d5b, 0x80007df4,
- 0x80007f3e, 0x80008005, 0x80008352, 0x800083ef,
- 0x80008779, 0x80008941, 0x80008986, 0x80008996,
- 0x80008abf, 0x80008af8, 0x80008acb, 0x80008b01,
- 0x80008afe, 0x80008aed, 0x80008b39, 0x80008b8a,
- 0x80008d08, 0x80008f38, 0x80009072, 0x80009199,
- 0x80009276, 0x8000967c, 0x800096e3, 0x80009756,
- 0x800097db, 0x800097ff, 0x8000980b, 0x8000983b,
- 0x80009b12, 0x80009f9c, 0x8002284a, 0x80022844,
- 0x800233d5, 0x80003b9d, 0x80004018, 0x80004039,
- 0x80025249, 0x80025cd0, 0x80027ed3, 0x80009f43,
- 0x80009f8e, 0x00000066, 0x80000066, 0x00000066,
- 0x80000069, 0x00000066, 0x8000006c, 0x00000066,
- 0x00000066, 0x80000069, 0x00000066, 0x00000066,
- 0x8000006c, 0x0000017f, 0x80000074, 0x00000073,
- 0x80000074, 0x00000574, 0x80000576, 0x00000574,
- 0x80000565, 0x00000574, 0x8000056b, 0x0000057e,
- 0x80000576, 0x00000574, 0x8000056d, 0x000005d9,
- 0x800005b4, 0x000005f2, 0x800005b7, 0x800005e2,
- 0x800005d0, 0x800005d3, 0x800005d4, 0x800005db,
- 0x800005dc, 0x800005dd, 0x800005e8, 0x800005ea,
- 0x8000002b, 0x000005e9, 0x800005c1, 0x000005e9,
- 0x800005c2, 0x0000fb49, 0x800005c1, 0x0000fb49,
- 0x800005c2, 0x000005d0, 0x800005b7, 0x000005d0,
- 0x800005b8, 0x000005d0, 0x800005bc, 0x000005d1,
- 0x800005bc, 0x000005d2, 0x800005bc, 0x000005d3,
- 0x800005bc, 0x000005d4, 0x800005bc, 0x000005d5,
- 0x800005bc, 0x000005d6, 0x800005bc, 0x000005d8,
- 0x800005bc, 0x000005d9, 0x800005bc, 0x000005da,
- 0x800005bc, 0x000005db, 0x800005bc, 0x000005dc,
- 0x800005bc, 0x000005de, 0x800005bc, 0x000005e0,
- 0x800005bc, 0x000005e1, 0x800005bc, 0x000005e3,
- 0x800005bc, 0x000005e4, 0x800005bc, 0x000005e6,
- 0x800005bc, 0x000005e7, 0x800005bc, 0x000005e8,
- 0x800005bc, 0x000005e9, 0x800005bc, 0x000005ea,
- 0x800005bc, 0x000005d5, 0x800005b9, 0x000005d1,
- 0x800005bf, 0x000005db, 0x800005bf, 0x000005e4,
- 0x800005bf, 0x000005d0, 0x800005dc, 0x80000671,
- 0x80000671, 0x8000067b, 0x8000067b, 0x8000067b,
- 0x8000067b, 0x8000067e, 0x8000067e, 0x8000067e,
- 0x8000067e, 0x80000680, 0x80000680, 0x80000680,
- 0x80000680, 0x8000067a, 0x8000067a, 0x8000067a,
- 0x8000067a, 0x8000067f, 0x8000067f, 0x8000067f,
- 0x8000067f, 0x80000679, 0x80000679, 0x80000679,
- 0x80000679, 0x800006a4, 0x800006a4, 0x800006a4,
- 0x800006a4, 0x800006a6, 0x800006a6, 0x800006a6,
- 0x800006a6, 0x80000684, 0x80000684, 0x80000684,
- 0x80000684, 0x80000683, 0x80000683, 0x80000683,
- 0x80000683, 0x80000686, 0x80000686, 0x80000686,
- 0x80000686, 0x80000687, 0x80000687, 0x80000687,
- 0x80000687, 0x8000068d, 0x8000068d, 0x8000068c,
- 0x8000068c, 0x8000068e, 0x8000068e, 0x80000688,
- 0x80000688, 0x80000698, 0x80000698, 0x80000691,
- 0x80000691, 0x800006a9, 0x800006a9, 0x800006a9,
- 0x800006a9, 0x800006af, 0x800006af, 0x800006af,
- 0x800006af, 0x800006b3, 0x800006b3, 0x800006b3,
- 0x800006b3, 0x800006b1, 0x800006b1, 0x800006b1,
- 0x800006b1, 0x800006ba, 0x800006ba, 0x800006bb,
- 0x800006bb, 0x800006bb, 0x800006bb, 0x800006c0,
- 0x800006c0, 0x800006c1, 0x800006c1, 0x800006c1,
- 0x800006c1, 0x800006be, 0x800006be, 0x800006be,
- 0x800006be, 0x800006d2, 0x800006d2, 0x800006d3,
- 0x800006d3, 0x800006ad, 0x800006ad, 0x800006ad,
- 0x800006ad, 0x800006c7, 0x800006c7, 0x800006c6,
- 0x800006c6, 0x800006c8, 0x800006c8, 0x80000677,
- 0x800006cb, 0x800006cb, 0x800006c5, 0x800006c5,
- 0x800006c9, 0x800006c9, 0x800006d0, 0x800006d0,
- 0x800006d0, 0x800006d0, 0x80000649, 0x80000649,
- 0x00000626, 0x80000627, 0x00000626, 0x80000627,
- 0x00000626, 0x800006d5, 0x00000626, 0x800006d5,
- 0x00000626, 0x80000648, 0x00000626, 0x80000648,
- 0x00000626, 0x800006c7, 0x00000626, 0x800006c7,
- 0x00000626, 0x800006c6, 0x00000626, 0x800006c6,
- 0x00000626, 0x800006c8, 0x00000626, 0x800006c8,
- 0x00000626, 0x800006d0, 0x00000626, 0x800006d0,
- 0x00000626, 0x800006d0, 0x00000626, 0x80000649,
- 0x00000626, 0x80000649, 0x00000626, 0x80000649,
- 0x800006cc, 0x800006cc, 0x800006cc, 0x800006cc,
- 0x00000626, 0x8000062c, 0x00000626, 0x8000062d,
- 0x00000626, 0x80000645, 0x00000626, 0x80000649,
- 0x00000626, 0x8000064a, 0x00000628, 0x8000062c,
- 0x00000628, 0x8000062d, 0x00000628, 0x8000062e,
- 0x00000628, 0x80000645, 0x00000628, 0x80000649,
- 0x00000628, 0x8000064a, 0x0000062a, 0x8000062c,
- 0x0000062a, 0x8000062d, 0x0000062a, 0x8000062e,
- 0x0000062a, 0x80000645, 0x0000062a, 0x80000649,
- 0x0000062a, 0x8000064a, 0x0000062b, 0x8000062c,
- 0x0000062b, 0x80000645, 0x0000062b, 0x80000649,
- 0x0000062b, 0x8000064a, 0x0000062c, 0x8000062d,
- 0x0000062c, 0x80000645, 0x0000062d, 0x8000062c,
- 0x0000062d, 0x80000645, 0x0000062e, 0x8000062c,
- 0x0000062e, 0x8000062d, 0x0000062e, 0x80000645,
- 0x00000633, 0x8000062c, 0x00000633, 0x8000062d,
- 0x00000633, 0x8000062e, 0x00000633, 0x80000645,
- 0x00000635, 0x8000062d, 0x00000635, 0x80000645,
- 0x00000636, 0x8000062c, 0x00000636, 0x8000062d,
- 0x00000636, 0x8000062e, 0x00000636, 0x80000645,
- 0x00000637, 0x8000062d, 0x00000637, 0x80000645,
- 0x00000638, 0x80000645, 0x00000639, 0x8000062c,
- 0x00000639, 0x80000645, 0x0000063a, 0x8000062c,
- 0x0000063a, 0x80000645, 0x00000641, 0x8000062c,
- 0x00000641, 0x8000062d, 0x00000641, 0x8000062e,
- 0x00000641, 0x80000645, 0x00000641, 0x80000649,
- 0x00000641, 0x8000064a, 0x00000642, 0x8000062d,
- 0x00000642, 0x80000645, 0x00000642, 0x80000649,
- 0x00000642, 0x8000064a, 0x00000643, 0x80000627,
- 0x00000643, 0x8000062c, 0x00000643, 0x8000062d,
- 0x00000643, 0x8000062e, 0x00000643, 0x80000644,
- 0x00000643, 0x80000645, 0x00000643, 0x80000649,
- 0x00000643, 0x8000064a, 0x00000644, 0x8000062c,
- 0x00000644, 0x8000062d, 0x00000644, 0x8000062e,
- 0x00000644, 0x80000645, 0x00000644, 0x80000649,
- 0x00000644, 0x8000064a, 0x00000645, 0x8000062c,
- 0x00000645, 0x8000062d, 0x00000645, 0x8000062e,
- 0x00000645, 0x80000645, 0x00000645, 0x80000649,
- 0x00000645, 0x8000064a, 0x00000646, 0x8000062c,
- 0x00000646, 0x8000062d, 0x00000646, 0x8000062e,
- 0x00000646, 0x80000645, 0x00000646, 0x80000649,
- 0x00000646, 0x8000064a, 0x00000647, 0x8000062c,
- 0x00000647, 0x80000645, 0x00000647, 0x80000649,
- 0x00000647, 0x8000064a, 0x0000064a, 0x8000062c,
- 0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e,
- 0x0000064a, 0x80000645, 0x0000064a, 0x80000649,
- 0x0000064a, 0x8000064a, 0x00000630, 0x80000670,
- 0x00000631, 0x80000670, 0x00000649, 0x80000670,
- 0x00000020, 0x0000064c, 0x80000651, 0x00000020,
- 0x0000064d, 0x80000651, 0x00000020, 0x0000064e,
- 0x80000651, 0x00000020, 0x0000064f, 0x80000651,
- 0x00000020, 0x00000650, 0x80000651, 0x00000020,
- 0x00000651, 0x80000670, 0x00000626, 0x80000631,
- 0x00000626, 0x80000632, 0x00000626, 0x80000645,
- 0x00000626, 0x80000646, 0x00000626, 0x80000649,
- 0x00000626, 0x8000064a, 0x00000628, 0x80000631,
- 0x00000628, 0x80000632, 0x00000628, 0x80000645,
- 0x00000628, 0x80000646, 0x00000628, 0x80000649,
- 0x00000628, 0x8000064a, 0x0000062a, 0x80000631,
- 0x0000062a, 0x80000632, 0x0000062a, 0x80000645,
- 0x0000062a, 0x80000646, 0x0000062a, 0x80000649,
- 0x0000062a, 0x8000064a, 0x0000062b, 0x80000631,
- 0x0000062b, 0x80000632, 0x0000062b, 0x80000645,
- 0x0000062b, 0x80000646, 0x0000062b, 0x80000649,
- 0x0000062b, 0x8000064a, 0x00000641, 0x80000649,
- 0x00000641, 0x8000064a, 0x00000642, 0x80000649,
- 0x00000642, 0x8000064a, 0x00000643, 0x80000627,
- 0x00000643, 0x80000644, 0x00000643, 0x80000645,
- 0x00000643, 0x80000649, 0x00000643, 0x8000064a,
- 0x00000644, 0x80000645, 0x00000644, 0x80000649,
- 0x00000644, 0x8000064a, 0x00000645, 0x80000627,
- 0x00000645, 0x80000645, 0x00000646, 0x80000631,
- 0x00000646, 0x80000632, 0x00000646, 0x80000645,
- 0x00000646, 0x80000646, 0x00000646, 0x80000649,
- 0x00000646, 0x8000064a, 0x00000649, 0x80000670,
- 0x0000064a, 0x80000631, 0x0000064a, 0x80000632,
- 0x0000064a, 0x80000645, 0x0000064a, 0x80000646,
- 0x0000064a, 0x80000649, 0x0000064a, 0x8000064a,
- 0x00000626, 0x8000062c, 0x00000626, 0x8000062d,
- 0x00000626, 0x8000062e, 0x00000626, 0x80000645,
- 0x00000626, 0x80000647, 0x00000628, 0x8000062c,
- 0x00000628, 0x8000062d, 0x00000628, 0x8000062e,
- 0x00000628, 0x80000645, 0x00000628, 0x80000647,
- 0x0000062a, 0x8000062c, 0x0000062a, 0x8000062d,
- 0x0000062a, 0x8000062e, 0x0000062a, 0x80000645,
- 0x0000062a, 0x80000647, 0x0000062b, 0x80000645,
- 0x0000062c, 0x8000062d, 0x0000062c, 0x80000645,
- 0x0000062d, 0x8000062c, 0x0000062d, 0x80000645,
- 0x0000062e, 0x8000062c, 0x0000062e, 0x80000645,
- 0x00000633, 0x8000062c, 0x00000633, 0x8000062d,
- 0x00000633, 0x8000062e, 0x00000633, 0x80000645,
- 0x00000635, 0x8000062d, 0x00000635, 0x8000062e,
- 0x00000635, 0x80000645, 0x00000636, 0x8000062c,
- 0x00000636, 0x8000062d, 0x00000636, 0x8000062e,
- 0x00000636, 0x80000645, 0x00000637, 0x8000062d,
- 0x00000638, 0x80000645, 0x00000639, 0x8000062c,
- 0x00000639, 0x80000645, 0x0000063a, 0x8000062c,
- 0x0000063a, 0x80000645, 0x00000641, 0x8000062c,
- 0x00000641, 0x8000062d, 0x00000641, 0x8000062e,
- 0x00000641, 0x80000645, 0x00000642, 0x8000062d,
- 0x00000642, 0x80000645, 0x00000643, 0x8000062c,
- 0x00000643, 0x8000062d, 0x00000643, 0x8000062e,
- 0x00000643, 0x80000644, 0x00000643, 0x80000645,
- 0x00000644, 0x8000062c, 0x00000644, 0x8000062d,
- 0x00000644, 0x8000062e, 0x00000644, 0x80000645,
- 0x00000644, 0x80000647, 0x00000645, 0x8000062c,
- 0x00000645, 0x8000062d, 0x00000645, 0x8000062e,
- 0x00000645, 0x80000645, 0x00000646, 0x8000062c,
- 0x00000646, 0x8000062d, 0x00000646, 0x8000062e,
- 0x00000646, 0x80000645, 0x00000646, 0x80000647,
- 0x00000647, 0x8000062c, 0x00000647, 0x80000645,
- 0x00000647, 0x80000670, 0x0000064a, 0x8000062c,
- 0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e,
- 0x0000064a, 0x80000645, 0x0000064a, 0x80000647,
- 0x00000626, 0x80000645, 0x00000626, 0x80000647,
- 0x00000628, 0x80000645, 0x00000628, 0x80000647,
- 0x0000062a, 0x80000645, 0x0000062a, 0x80000647,
- 0x0000062b, 0x80000645, 0x0000062b, 0x80000647,
- 0x00000633, 0x80000645, 0x00000633, 0x80000647,
- 0x00000634, 0x80000645, 0x00000634, 0x80000647,
- 0x00000643, 0x80000644, 0x00000643, 0x80000645,
- 0x00000644, 0x80000645, 0x00000646, 0x80000645,
- 0x00000646, 0x80000647, 0x0000064a, 0x80000645,
- 0x0000064a, 0x80000647, 0x00000640, 0x0000064e,
- 0x80000651, 0x00000640, 0x0000064f, 0x80000651,
- 0x00000640, 0x00000650, 0x80000651, 0x00000637,
- 0x80000649, 0x00000637, 0x8000064a, 0x00000639,
- 0x80000649, 0x00000639, 0x8000064a, 0x0000063a,
- 0x80000649, 0x0000063a, 0x8000064a, 0x00000633,
- 0x80000649, 0x00000633, 0x8000064a, 0x00000634,
- 0x80000649, 0x00000634, 0x8000064a, 0x0000062d,
- 0x80000649, 0x0000062d, 0x8000064a, 0x0000062c,
- 0x80000649, 0x0000062c, 0x8000064a, 0x0000062e,
- 0x80000649, 0x0000062e, 0x8000064a, 0x00000635,
- 0x80000649, 0x00000635, 0x8000064a, 0x00000636,
- 0x80000649, 0x00000636, 0x8000064a, 0x00000634,
- 0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
- 0x8000062e, 0x00000634, 0x80000645, 0x00000634,
- 0x80000631, 0x00000633, 0x80000631, 0x00000635,
- 0x80000631, 0x00000636, 0x80000631, 0x00000637,
- 0x80000649, 0x00000637, 0x8000064a, 0x00000639,
- 0x80000649, 0x00000639, 0x8000064a, 0x0000063a,
- 0x80000649, 0x0000063a, 0x8000064a, 0x00000633,
- 0x80000649, 0x00000633, 0x8000064a, 0x00000634,
- 0x80000649, 0x00000634, 0x8000064a, 0x0000062d,
- 0x80000649, 0x0000062d, 0x8000064a, 0x0000062c,
- 0x80000649, 0x0000062c, 0x8000064a, 0x0000062e,
- 0x80000649, 0x0000062e, 0x8000064a, 0x00000635,
- 0x80000649, 0x00000635, 0x8000064a, 0x00000636,
- 0x80000649, 0x00000636, 0x8000064a, 0x00000634,
- 0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
- 0x8000062e, 0x00000634, 0x80000645, 0x00000634,
- 0x80000631, 0x00000633, 0x80000631, 0x00000635,
- 0x80000631, 0x00000636, 0x80000631, 0x00000634,
- 0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
- 0x8000062e, 0x00000634, 0x80000645, 0x00000633,
- 0x80000647, 0x00000634, 0x80000647, 0x00000637,
- 0x80000645, 0x00000633, 0x8000062c, 0x00000633,
- 0x8000062d, 0x00000633, 0x8000062e, 0x00000634,
- 0x8000062c, 0x00000634, 0x8000062d, 0x00000634,
- 0x8000062e, 0x00000637, 0x80000645, 0x00000638,
- 0x80000645, 0x00000627, 0x8000064b, 0x00000627,
- 0x8000064b, 0x0000062a, 0x0000062c, 0x80000645,
- 0x0000062a, 0x0000062d, 0x8000062c, 0x0000062a,
- 0x0000062d, 0x8000062c, 0x0000062a, 0x0000062d,
- 0x80000645, 0x0000062a, 0x0000062e, 0x80000645,
- 0x0000062a, 0x00000645, 0x8000062c, 0x0000062a,
- 0x00000645, 0x8000062d, 0x0000062a, 0x00000645,
- 0x8000062e, 0x0000062c, 0x00000645, 0x8000062d,
- 0x0000062c, 0x00000645, 0x8000062d, 0x0000062d,
- 0x00000645, 0x8000064a, 0x0000062d, 0x00000645,
- 0x80000649, 0x00000633, 0x0000062d, 0x8000062c,
- 0x00000633, 0x0000062c, 0x8000062d, 0x00000633,
- 0x0000062c, 0x80000649, 0x00000633, 0x00000645,
- 0x8000062d, 0x00000633, 0x00000645, 0x8000062d,
- 0x00000633, 0x00000645, 0x8000062c, 0x00000633,
- 0x00000645, 0x80000645, 0x00000633, 0x00000645,
- 0x80000645, 0x00000635, 0x0000062d, 0x8000062d,
- 0x00000635, 0x0000062d, 0x8000062d, 0x00000635,
- 0x00000645, 0x80000645, 0x00000634, 0x0000062d,
- 0x80000645, 0x00000634, 0x0000062d, 0x80000645,
- 0x00000634, 0x0000062c, 0x8000064a, 0x00000634,
- 0x00000645, 0x8000062e, 0x00000634, 0x00000645,
- 0x8000062e, 0x00000634, 0x00000645, 0x80000645,
- 0x00000634, 0x00000645, 0x80000645, 0x00000636,
- 0x0000062d, 0x80000649, 0x00000636, 0x0000062e,
- 0x80000645, 0x00000636, 0x0000062e, 0x80000645,
- 0x00000637, 0x00000645, 0x8000062d, 0x00000637,
- 0x00000645, 0x8000062d, 0x00000637, 0x00000645,
- 0x80000645, 0x00000637, 0x00000645, 0x8000064a,
- 0x00000639, 0x0000062c, 0x80000645, 0x00000639,
- 0x00000645, 0x80000645, 0x00000639, 0x00000645,
- 0x80000645, 0x00000639, 0x00000645, 0x80000649,
- 0x0000063a, 0x00000645, 0x80000645, 0x0000063a,
- 0x00000645, 0x8000064a, 0x0000063a, 0x00000645,
- 0x80000649, 0x00000641, 0x0000062e, 0x80000645,
- 0x00000641, 0x0000062e, 0x80000645, 0x00000642,
- 0x00000645, 0x8000062d, 0x00000642, 0x00000645,
- 0x80000645, 0x00000644, 0x0000062d, 0x80000645,
- 0x00000644, 0x0000062d, 0x8000064a, 0x00000644,
- 0x0000062d, 0x80000649, 0x00000644, 0x0000062c,
- 0x8000062c, 0x00000644, 0x0000062c, 0x8000062c,
- 0x00000644, 0x0000062e, 0x80000645, 0x00000644,
- 0x0000062e, 0x80000645, 0x00000644, 0x00000645,
- 0x8000062d, 0x00000644, 0x00000645, 0x8000062d,
- 0x00000645, 0x0000062d, 0x8000062c, 0x00000645,
- 0x0000062d, 0x80000645, 0x00000645, 0x0000062d,
- 0x8000064a, 0x00000645, 0x0000062c, 0x8000062d,
- 0x00000645, 0x0000062c, 0x80000645, 0x00000645,
- 0x0000062e, 0x8000062c, 0x00000645, 0x0000062e,
- 0x80000645, 0x00000645, 0x0000062c, 0x8000062e,
- 0x00000647, 0x00000645, 0x8000062c, 0x00000647,
- 0x00000645, 0x80000645, 0x00000646, 0x0000062d,
- 0x80000645, 0x00000646, 0x0000062d, 0x80000649,
- 0x00000646, 0x0000062c, 0x80000645, 0x00000646,
- 0x0000062c, 0x80000645, 0x00000646, 0x0000062c,
- 0x80000649, 0x00000646, 0x00000645, 0x8000064a,
- 0x00000646, 0x00000645, 0x80000649, 0x0000064a,
- 0x00000645, 0x80000645, 0x0000064a, 0x00000645,
- 0x80000645, 0x00000628, 0x0000062e, 0x8000064a,
- 0x0000062a, 0x0000062c, 0x8000064a, 0x0000062a,
- 0x0000062c, 0x80000649, 0x0000062a, 0x0000062e,
- 0x8000064a, 0x0000062a, 0x0000062e, 0x80000649,
- 0x0000062a, 0x00000645, 0x8000064a, 0x0000062a,
- 0x00000645, 0x80000649, 0x0000062c, 0x00000645,
- 0x8000064a, 0x0000062c, 0x0000062d, 0x80000649,
- 0x0000062c, 0x00000645, 0x80000649, 0x00000633,
- 0x0000062e, 0x80000649, 0x00000635, 0x0000062d,
- 0x8000064a, 0x00000634, 0x0000062d, 0x8000064a,
- 0x00000636, 0x0000062d, 0x8000064a, 0x00000644,
- 0x0000062c, 0x8000064a, 0x00000644, 0x00000645,
- 0x8000064a, 0x0000064a, 0x0000062d, 0x8000064a,
- 0x0000064a, 0x0000062c, 0x8000064a, 0x0000064a,
- 0x00000645, 0x8000064a, 0x00000645, 0x00000645,
- 0x8000064a, 0x00000642, 0x00000645, 0x8000064a,
- 0x00000646, 0x0000062d, 0x8000064a, 0x00000642,
- 0x00000645, 0x8000062d, 0x00000644, 0x0000062d,
- 0x80000645, 0x00000639, 0x00000645, 0x8000064a,
- 0x00000643, 0x00000645, 0x8000064a, 0x00000646,
- 0x0000062c, 0x8000062d, 0x00000645, 0x0000062e,
- 0x8000064a, 0x00000644, 0x0000062c, 0x80000645,
- 0x00000643, 0x00000645, 0x80000645, 0x00000644,
- 0x0000062c, 0x80000645, 0x00000646, 0x0000062c,
- 0x8000062d, 0x0000062c, 0x0000062d, 0x8000064a,
- 0x0000062d, 0x0000062c, 0x8000064a, 0x00000645,
- 0x0000062c, 0x8000064a, 0x00000641, 0x00000645,
- 0x8000064a, 0x00000628, 0x0000062d, 0x8000064a,
- 0x00000643, 0x00000645, 0x80000645, 0x00000639,
- 0x0000062c, 0x80000645, 0x00000635, 0x00000645,
- 0x80000645, 0x00000633, 0x0000062e, 0x8000064a,
- 0x00000646, 0x0000062c, 0x8000064a, 0x00000635,
- 0x00000644, 0x800006d2, 0x00000642, 0x00000644,
- 0x800006d2, 0x00000627, 0x00000644, 0x00000644,
- 0x80000647, 0x00000627, 0x00000643, 0x00000628,
- 0x80000631, 0x00000645, 0x0000062d, 0x00000645,
- 0x8000062f, 0x00000635, 0x00000644, 0x00000639,
- 0x80000645, 0x00000631, 0x00000633, 0x00000648,
- 0x80000644, 0x00000639, 0x00000644, 0x0000064a,
- 0x80000647, 0x00000648, 0x00000633, 0x00000644,
- 0x80000645, 0x00000635, 0x00000644, 0x80000649,
- 0x00000635, 0x00000644, 0x00000649, 0x00000020,
- 0x00000627, 0x00000644, 0x00000644, 0x00000647,
- 0x00000020, 0x00000639, 0x00000644, 0x0000064a,
- 0x00000647, 0x00000020, 0x00000648, 0x00000633,
- 0x00000644, 0x80000645, 0x0000062c, 0x00000644,
- 0x00000020, 0x0000062c, 0x00000644, 0x00000627,
- 0x00000644, 0x80000647, 0x00000631, 0x000006cc,
- 0x00000627, 0x80000644, 0x8000002c, 0x80003001,
- 0x80003002, 0x8000003a, 0x8000003b, 0x80000021,
- 0x8000003f, 0x80003016, 0x80003017, 0x80002026,
- 0x80002025, 0x80002014, 0x80002013, 0x8000005f,
- 0x8000005f, 0x80000028, 0x80000029, 0x8000007b,
- 0x8000007d, 0x80003014, 0x80003015, 0x80003010,
- 0x80003011, 0x8000300a, 0x8000300b, 0x80003008,
- 0x80003009, 0x8000300c, 0x8000300d, 0x8000300e,
- 0x8000300f, 0x8000005b, 0x8000005d, 0x8000203e,
- 0x8000203e, 0x8000203e, 0x8000203e, 0x8000005f,
- 0x8000005f, 0x8000005f, 0x8000002c, 0x80003001,
- 0x8000002e, 0x8000003b, 0x8000003a, 0x8000003f,
- 0x80000021, 0x80002014, 0x80000028, 0x80000029,
- 0x8000007b, 0x8000007d, 0x80003014, 0x80003015,
- 0x80000023, 0x80000026, 0x8000002a, 0x8000002b,
- 0x8000002d, 0x8000003c, 0x8000003e, 0x8000003d,
- 0x8000005c, 0x80000024, 0x80000025, 0x80000040,
- 0x00000020, 0x8000064b, 0x00000640, 0x8000064b,
- 0x00000020, 0x8000064c, 0x00000020, 0x8000064d,
- 0x00000020, 0x8000064e, 0x00000640, 0x8000064e,
- 0x00000020, 0x8000064f, 0x00000640, 0x8000064f,
- 0x00000020, 0x80000650, 0x00000640, 0x80000650,
- 0x00000020, 0x80000651, 0x00000640, 0x80000651,
- 0x00000020, 0x80000652, 0x00000640, 0x80000652,
- 0x80000621, 0x80000622, 0x80000622, 0x80000623,
- 0x80000623, 0x80000624, 0x80000624, 0x80000625,
- 0x80000625, 0x80000626, 0x80000626, 0x80000626,
- 0x80000626, 0x80000627, 0x80000627, 0x80000628,
- 0x80000628, 0x80000628, 0x80000628, 0x80000629,
- 0x80000629, 0x8000062a, 0x8000062a, 0x8000062a,
- 0x8000062a, 0x8000062b, 0x8000062b, 0x8000062b,
- 0x8000062b, 0x8000062c, 0x8000062c, 0x8000062c,
- 0x8000062c, 0x8000062d, 0x8000062d, 0x8000062d,
- 0x8000062d, 0x8000062e, 0x8000062e, 0x8000062e,
- 0x8000062e, 0x8000062f, 0x8000062f, 0x80000630,
- 0x80000630, 0x80000631, 0x80000631, 0x80000632,
- 0x80000632, 0x80000633, 0x80000633, 0x80000633,
- 0x80000633, 0x80000634, 0x80000634, 0x80000634,
- 0x80000634, 0x80000635, 0x80000635, 0x80000635,
- 0x80000635, 0x80000636, 0x80000636, 0x80000636,
- 0x80000636, 0x80000637, 0x80000637, 0x80000637,
- 0x80000637, 0x80000638, 0x80000638, 0x80000638,
- 0x80000638, 0x80000639, 0x80000639, 0x80000639,
- 0x80000639, 0x8000063a, 0x8000063a, 0x8000063a,
- 0x8000063a, 0x80000641, 0x80000641, 0x80000641,
- 0x80000641, 0x80000642, 0x80000642, 0x80000642,
- 0x80000642, 0x80000643, 0x80000643, 0x80000643,
- 0x80000643, 0x80000644, 0x80000644, 0x80000644,
- 0x80000644, 0x80000645, 0x80000645, 0x80000645,
- 0x80000645, 0x80000646, 0x80000646, 0x80000646,
- 0x80000646, 0x80000647, 0x80000647, 0x80000647,
- 0x80000647, 0x80000648, 0x80000648, 0x80000649,
- 0x80000649, 0x8000064a, 0x8000064a, 0x8000064a,
- 0x8000064a, 0x00000644, 0x80000622, 0x00000644,
- 0x80000622, 0x00000644, 0x80000623, 0x00000644,
- 0x80000623, 0x00000644, 0x80000625, 0x00000644,
- 0x80000625, 0x00000644, 0x80000627, 0x00000644,
- 0x80000627, 0x80000021, 0x80000022, 0x80000023,
- 0x80000024, 0x80000025, 0x80000026, 0x80000027,
- 0x80000028, 0x80000029, 0x8000002a, 0x8000002b,
- 0x8000002c, 0x8000002d, 0x8000002e, 0x8000002f,
- 0x80000030, 0x80000031, 0x80000032, 0x80000033,
- 0x80000034, 0x80000035, 0x80000036, 0x80000037,
- 0x80000038, 0x80000039, 0x8000003a, 0x8000003b,
- 0x8000003c, 0x8000003d, 0x8000003e, 0x8000003f,
- 0x80000040, 0x80000041, 0x80000042, 0x80000043,
- 0x80000044, 0x80000045, 0x80000046, 0x80000047,
- 0x80000048, 0x80000049, 0x8000004a, 0x8000004b,
- 0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f,
- 0x80000050, 0x80000051, 0x80000052, 0x80000053,
- 0x80000054, 0x80000055, 0x80000056, 0x80000057,
- 0x80000058, 0x80000059, 0x8000005a, 0x8000005b,
- 0x8000005c, 0x8000005d, 0x8000005e, 0x8000005f,
- 0x80000060, 0x80000061, 0x80000062, 0x80000063,
- 0x80000064, 0x80000065, 0x80000066, 0x80000067,
- 0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
- 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
- 0x80000070, 0x80000071, 0x80000072, 0x80000073,
- 0x80000074, 0x80000075, 0x80000076, 0x80000077,
- 0x80000078, 0x80000079, 0x8000007a, 0x8000007b,
- 0x8000007c, 0x8000007d, 0x8000007e, 0x80002985,
- 0x80002986, 0x80003002, 0x8000300c, 0x8000300d,
- 0x80003001, 0x800030fb, 0x800030f2, 0x800030a1,
- 0x800030a3, 0x800030a5, 0x800030a7, 0x800030a9,
- 0x800030e3, 0x800030e5, 0x800030e7, 0x800030c3,
- 0x800030fc, 0x800030a2, 0x800030a4, 0x800030a6,
- 0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad,
- 0x800030af, 0x800030b1, 0x800030b3, 0x800030b5,
- 0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd,
- 0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6,
- 0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc,
- 0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2,
- 0x800030d5, 0x800030d8, 0x800030db, 0x800030de,
- 0x800030df, 0x800030e0, 0x800030e1, 0x800030e2,
- 0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9,
- 0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed,
- 0x800030ef, 0x800030f3, 0x80003099, 0x8000309a,
- 0x80003164, 0x80003131, 0x80003132, 0x80003133,
- 0x80003134, 0x80003135, 0x80003136, 0x80003137,
- 0x80003138, 0x80003139, 0x8000313a, 0x8000313b,
- 0x8000313c, 0x8000313d, 0x8000313e, 0x8000313f,
- 0x80003140, 0x80003141, 0x80003142, 0x80003143,
- 0x80003144, 0x80003145, 0x80003146, 0x80003147,
- 0x80003148, 0x80003149, 0x8000314a, 0x8000314b,
- 0x8000314c, 0x8000314d, 0x8000314e, 0x8000314f,
- 0x80003150, 0x80003151, 0x80003152, 0x80003153,
- 0x80003154, 0x80003155, 0x80003156, 0x80003157,
- 0x80003158, 0x80003159, 0x8000315a, 0x8000315b,
- 0x8000315c, 0x8000315d, 0x8000315e, 0x8000315f,
- 0x80003160, 0x80003161, 0x80003162, 0x80003163,
- 0x800000a2, 0x800000a3, 0x800000ac, 0x800000af,
- 0x800000a6, 0x800000a5, 0x800020a9, 0x80002502,
- 0x80002190, 0x80002191, 0x80002192, 0x80002193,
- 0x800025a0, 0x800025cb, 0x0001d157, 0x8001d165,
- 0x0001d158, 0x8001d165, 0x0001d15f, 0x8001d16e,
- 0x0001d15f, 0x8001d16f, 0x0001d15f, 0x8001d170,
- 0x0001d15f, 0x8001d171, 0x0001d15f, 0x8001d172,
- 0x0001d1b9, 0x8001d165, 0x0001d1ba, 0x8001d165,
- 0x0001d1bb, 0x8001d16e, 0x0001d1bc, 0x8001d16e,
- 0x0001d1bb, 0x8001d16f, 0x0001d1bc, 0x8001d16f,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000069, 0x8000006a, 0x8000006b,
- 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
- 0x80000070, 0x80000071, 0x80000072, 0x80000073,
- 0x80000074, 0x80000075, 0x80000076, 0x80000077,
- 0x80000078, 0x80000079, 0x8000007a, 0x80000041,
- 0x80000042, 0x80000043, 0x80000044, 0x80000045,
- 0x80000046, 0x80000047, 0x80000048, 0x80000049,
- 0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d,
- 0x8000004e, 0x8000004f, 0x80000050, 0x80000051,
- 0x80000052, 0x80000053, 0x80000054, 0x80000055,
- 0x80000056, 0x80000057, 0x80000058, 0x80000059,
- 0x8000005a, 0x80000061, 0x80000062, 0x80000063,
- 0x80000064, 0x80000065, 0x80000066, 0x80000067,
- 0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
- 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
- 0x80000070, 0x80000071, 0x80000072, 0x80000073,
- 0x80000074, 0x80000075, 0x80000076, 0x80000077,
- 0x80000078, 0x80000079, 0x8000007a, 0x80000041,
- 0x80000043, 0x80000044, 0x80000047, 0x8000004a,
- 0x8000004b, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000053, 0x80000054, 0x80000055,
- 0x80000056, 0x80000057, 0x80000058, 0x80000059,
- 0x8000005a, 0x80000061, 0x80000062, 0x80000063,
- 0x80000064, 0x80000066, 0x80000068, 0x80000069,
- 0x8000006a, 0x8000006b, 0x8000006c, 0x8000006d,
- 0x8000006e, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000044, 0x80000045,
- 0x80000046, 0x80000047, 0x8000004a, 0x8000004b,
- 0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f,
- 0x80000050, 0x80000051, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x80000061, 0x80000062, 0x80000063,
- 0x80000064, 0x80000065, 0x80000066, 0x80000067,
- 0x80000068, 0x80000069, 0x8000006a, 0x8000006b,
- 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f,
- 0x80000070, 0x80000071, 0x80000072, 0x80000073,
- 0x80000074, 0x80000075, 0x80000076, 0x80000077,
- 0x80000078, 0x80000079, 0x8000007a, 0x80000041,
- 0x80000042, 0x80000044, 0x80000045, 0x80000046,
- 0x80000047, 0x80000049, 0x8000004a, 0x8000004b,
- 0x8000004c, 0x8000004d, 0x8000004f, 0x80000053,
- 0x80000054, 0x80000055, 0x80000056, 0x80000057,
- 0x80000058, 0x80000059, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000041, 0x80000042, 0x80000043, 0x80000044,
- 0x80000045, 0x80000046, 0x80000047, 0x80000048,
- 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c,
- 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050,
- 0x80000051, 0x80000052, 0x80000053, 0x80000054,
- 0x80000055, 0x80000056, 0x80000057, 0x80000058,
- 0x80000059, 0x8000005a, 0x80000061, 0x80000062,
- 0x80000063, 0x80000064, 0x80000065, 0x80000066,
- 0x80000067, 0x80000068, 0x80000069, 0x8000006a,
- 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e,
- 0x8000006f, 0x80000070, 0x80000071, 0x80000072,
- 0x80000073, 0x80000074, 0x80000075, 0x80000076,
- 0x80000077, 0x80000078, 0x80000079, 0x8000007a,
- 0x80000131, 0x80000237, 0x80000391, 0x80000392,
- 0x80000393, 0x80000394, 0x80000395, 0x80000396,
- 0x80000397, 0x80000398, 0x80000399, 0x8000039a,
- 0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e,
- 0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4,
- 0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6,
- 0x800003a7, 0x800003a8, 0x800003a9, 0x80002207,
- 0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4,
- 0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8,
- 0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc,
- 0x800003bd, 0x800003be, 0x800003bf, 0x800003c0,
- 0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4,
- 0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8,
- 0x800003c9, 0x80002202, 0x800003f5, 0x800003d1,
- 0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6,
- 0x80000391, 0x80000392, 0x80000393, 0x80000394,
- 0x80000395, 0x80000396, 0x80000397, 0x80000398,
- 0x80000399, 0x8000039a, 0x8000039b, 0x8000039c,
- 0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0,
- 0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4,
- 0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8,
- 0x800003a9, 0x80002207, 0x800003b1, 0x800003b2,
- 0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6,
- 0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba,
- 0x800003bb, 0x800003bc, 0x800003bd, 0x800003be,
- 0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2,
- 0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6,
- 0x800003c7, 0x800003c8, 0x800003c9, 0x80002202,
- 0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5,
- 0x800003f1, 0x800003d6, 0x80000391, 0x80000392,
- 0x80000393, 0x80000394, 0x80000395, 0x80000396,
- 0x80000397, 0x80000398, 0x80000399, 0x8000039a,
- 0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e,
- 0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4,
- 0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6,
- 0x800003a7, 0x800003a8, 0x800003a9, 0x80002207,
- 0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4,
- 0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8,
- 0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc,
- 0x800003bd, 0x800003be, 0x800003bf, 0x800003c0,
- 0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4,
- 0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8,
- 0x800003c9, 0x80002202, 0x800003f5, 0x800003d1,
- 0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6,
- 0x80000391, 0x80000392, 0x80000393, 0x80000394,
- 0x80000395, 0x80000396, 0x80000397, 0x80000398,
- 0x80000399, 0x8000039a, 0x8000039b, 0x8000039c,
- 0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0,
- 0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4,
- 0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8,
- 0x800003a9, 0x80002207, 0x800003b1, 0x800003b2,
- 0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6,
- 0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba,
- 0x800003bb, 0x800003bc, 0x800003bd, 0x800003be,
- 0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2,
- 0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6,
- 0x800003c7, 0x800003c8, 0x800003c9, 0x80002202,
- 0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5,
- 0x800003f1, 0x800003d6, 0x80000391, 0x80000392,
- 0x80000393, 0x80000394, 0x80000395, 0x80000396,
- 0x80000397, 0x80000398, 0x80000399, 0x8000039a,
- 0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e,
- 0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4,
- 0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6,
- 0x800003a7, 0x800003a8, 0x800003a9, 0x80002207,
- 0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4,
- 0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8,
- 0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc,
- 0x800003bd, 0x800003be, 0x800003bf, 0x800003c0,
- 0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4,
- 0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8,
- 0x800003c9, 0x80002202, 0x800003f5, 0x800003d1,
- 0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6,
- 0x80000030, 0x80000031, 0x80000032, 0x80000033,
- 0x80000034, 0x80000035, 0x80000036, 0x80000037,
- 0x80000038, 0x80000039, 0x80000030, 0x80000031,
- 0x80000032, 0x80000033, 0x80000034, 0x80000035,
- 0x80000036, 0x80000037, 0x80000038, 0x80000039,
- 0x80000030, 0x80000031, 0x80000032, 0x80000033,
- 0x80000034, 0x80000035, 0x80000036, 0x80000037,
- 0x80000038, 0x80000039, 0x80000030, 0x80000031,
- 0x80000032, 0x80000033, 0x80000034, 0x80000035,
- 0x80000036, 0x80000037, 0x80000038, 0x80000039,
- 0x80000030, 0x80000031, 0x80000032, 0x80000033,
- 0x80000034, 0x80000035, 0x80000036, 0x80000037,
- 0x80000038, 0x80000039, 0x80004e3d, 0x80004e38,
- 0x80004e41, 0x80020122, 0x80004f60, 0x80004fae,
- 0x80004fbb, 0x80005002, 0x8000507a, 0x80005099,
- 0x800050e7, 0x800050cf, 0x8000349e, 0x8002063a,
- 0x8000514d, 0x80005154, 0x80005164, 0x80005177,
- 0x8002051c, 0x800034b9, 0x80005167, 0x8000518d,
- 0x8002054b, 0x80005197, 0x800051a4, 0x80004ecc,
- 0x800051ac, 0x800051b5, 0x800291df, 0x800051f5,
- 0x80005203, 0x800034df, 0x8000523b, 0x80005246,
- 0x80005272, 0x80005277, 0x80003515, 0x800052c7,
- 0x800052c9, 0x800052e4, 0x800052fa, 0x80005305,
- 0x80005306, 0x80005317, 0x80005349, 0x80005351,
- 0x8000535a, 0x80005373, 0x8000537d, 0x8000537f,
- 0x8000537f, 0x8000537f, 0x80020a2c, 0x80007070,
- 0x800053ca, 0x800053df, 0x80020b63, 0x800053eb,
- 0x800053f1, 0x80005406, 0x8000549e, 0x80005438,
- 0x80005448, 0x80005468, 0x800054a2, 0x800054f6,
- 0x80005510, 0x80005553, 0x80005563, 0x80005584,
- 0x80005584, 0x80005599, 0x800055ab, 0x800055b3,
- 0x800055c2, 0x80005716, 0x80005606, 0x80005717,
- 0x80005651, 0x80005674, 0x80005207, 0x800058ee,
- 0x800057ce, 0x800057f4, 0x8000580d, 0x8000578b,
- 0x80005832, 0x80005831, 0x800058ac, 0x800214e4,
- 0x800058f2, 0x800058f7, 0x80005906, 0x8000591a,
- 0x80005922, 0x80005962, 0x800216a8, 0x800216ea,
- 0x800059ec, 0x80005a1b, 0x80005a27, 0x800059d8,
- 0x80005a66, 0x800036ee, 0x800036fc, 0x80005b08,
- 0x80005b3e, 0x80005b3e, 0x800219c8, 0x80005bc3,
- 0x80005bd8, 0x80005be7, 0x80005bf3, 0x80021b18,
- 0x80005bff, 0x80005c06, 0x80005f53, 0x80005c22,
- 0x80003781, 0x80005c60, 0x80005c6e, 0x80005cc0,
- 0x80005c8d, 0x80021de4, 0x80005d43, 0x80021de6,
- 0x80005d6e, 0x80005d6b, 0x80005d7c, 0x80005de1,
- 0x80005de2, 0x8000382f, 0x80005dfd, 0x80005e28,
- 0x80005e3d, 0x80005e69, 0x80003862, 0x80022183,
- 0x8000387c, 0x80005eb0, 0x80005eb3, 0x80005eb6,
- 0x80005eca, 0x8002a392, 0x80005efe, 0x80022331,
- 0x80022331, 0x80008201, 0x80005f22, 0x80005f22,
- 0x800038c7, 0x800232b8, 0x800261da, 0x80005f62,
- 0x80005f6b, 0x800038e3, 0x80005f9a, 0x80005fcd,
- 0x80005fd7, 0x80005ff9, 0x80006081, 0x8000393a,
- 0x8000391c, 0x80006094, 0x800226d4, 0x800060c7,
- 0x80006148, 0x8000614c, 0x8000614e, 0x8000614c,
- 0x8000617a, 0x8000618e, 0x800061b2, 0x800061a4,
- 0x800061af, 0x800061de, 0x800061f2, 0x800061f6,
- 0x80006210, 0x8000621b, 0x8000625d, 0x800062b1,
- 0x800062d4, 0x80006350, 0x80022b0c, 0x8000633d,
- 0x800062fc, 0x80006368, 0x80006383, 0x800063e4,
- 0x80022bf1, 0x80006422, 0x800063c5, 0x800063a9,
- 0x80003a2e, 0x80006469, 0x8000647e, 0x8000649d,
- 0x80006477, 0x80003a6c, 0x8000654f, 0x8000656c,
- 0x8002300a, 0x800065e3, 0x800066f8, 0x80006649,
- 0x80003b19, 0x80006691, 0x80003b08, 0x80003ae4,
- 0x80005192, 0x80005195, 0x80006700, 0x8000669c,
- 0x800080ad, 0x800043d9, 0x80006717, 0x8000671b,
- 0x80006721, 0x8000675e, 0x80006753, 0x800233c3,
- 0x80003b49, 0x800067fa, 0x80006785, 0x80006852,
- 0x80006885, 0x8002346d, 0x8000688e, 0x8000681f,
- 0x80006914, 0x80003b9d, 0x80006942, 0x800069a3,
- 0x800069ea, 0x80006aa8, 0x800236a3, 0x80006adb,
- 0x80003c18, 0x80006b21, 0x800238a7, 0x80006b54,
- 0x80003c4e, 0x80006b72, 0x80006b9f, 0x80006bba,
- 0x80006bbb, 0x80023a8d, 0x80021d0b, 0x80023afa,
- 0x80006c4e, 0x80023cbc, 0x80006cbf, 0x80006ccd,
- 0x80006c67, 0x80006d16, 0x80006d3e, 0x80006d77,
- 0x80006d41, 0x80006d69, 0x80006d78, 0x80006d85,
- 0x80023d1e, 0x80006d34, 0x80006e2f, 0x80006e6e,
- 0x80003d33, 0x80006ecb, 0x80006ec7, 0x80023ed1,
- 0x80006df9, 0x80006f6e, 0x80023f5e, 0x80023f8e,
- 0x80006fc6, 0x80007039, 0x8000701e, 0x8000701b,
- 0x80003d96, 0x8000704a, 0x8000707d, 0x80007077,
- 0x800070ad, 0x80020525, 0x80007145, 0x80024263,
- 0x8000719c, 0x800243ab, 0x80007228, 0x80007235,
- 0x80007250, 0x80024608, 0x80007280, 0x80007295,
- 0x80024735, 0x80024814, 0x8000737a, 0x8000738b,
- 0x80003eac, 0x800073a5, 0x80003eb8, 0x80003eb8,
- 0x80007447, 0x8000745c, 0x80007471, 0x80007485,
- 0x800074ca, 0x80003f1b, 0x80007524, 0x80024c36,
- 0x8000753e, 0x80024c92, 0x80007570, 0x8002219f,
- 0x80007610, 0x80024fa1, 0x80024fb8, 0x80025044,
- 0x80003ffc, 0x80004008, 0x800076f4, 0x800250f3,
- 0x800250f2, 0x80025119, 0x80025133, 0x8000771e,
- 0x8000771f, 0x8000771f, 0x8000774a, 0x80004039,
- 0x8000778b, 0x80004046, 0x80004096, 0x8002541d,
- 0x8000784e, 0x8000788c, 0x800078cc, 0x800040e3,
- 0x80025626, 0x80007956, 0x8002569a, 0x800256c5,
- 0x8000798f, 0x800079eb, 0x8000412f, 0x80007a40,
- 0x80007a4a, 0x80007a4f, 0x8002597c, 0x80025aa7,
- 0x80025aa7, 0x80007aee, 0x80004202, 0x80025bab,
- 0x80007bc6, 0x80007bc9, 0x80004227, 0x80025c80,
- 0x80007cd2, 0x800042a0, 0x80007ce8, 0x80007ce3,
- 0x80007d00, 0x80025f86, 0x80007d63, 0x80004301,
- 0x80007dc7, 0x80007e02, 0x80007e45, 0x80004334,
- 0x80026228, 0x80026247, 0x80004359, 0x800262d9,
- 0x80007f7a, 0x8002633e, 0x80007f95, 0x80007ffa,
- 0x80008005, 0x800264da, 0x80026523, 0x80008060,
- 0x800265a8, 0x80008070, 0x8002335f, 0x800043d5,
- 0x800080b2, 0x80008103, 0x8000440b, 0x8000813e,
- 0x80005ab5, 0x800267a7, 0x800267b5, 0x80023393,
- 0x8002339c, 0x80008201, 0x80008204, 0x80008f9e,
- 0x8000446b, 0x80008291, 0x8000828b, 0x8000829d,
- 0x800052b3, 0x800082b1, 0x800082b3, 0x800082bd,
- 0x800082e6, 0x80026b3c, 0x800082e5, 0x8000831d,
- 0x80008363, 0x800083ad, 0x80008323, 0x800083bd,
- 0x800083e7, 0x80008457, 0x80008353, 0x800083ca,
- 0x800083cc, 0x800083dc, 0x80026c36, 0x80026d6b,
- 0x80026cd5, 0x8000452b, 0x800084f1, 0x800084f3,
- 0x80008516, 0x800273ca, 0x80008564, 0x80026f2c,
- 0x8000455d, 0x80004561, 0x80026fb1, 0x800270d2,
- 0x8000456b, 0x80008650, 0x8000865c, 0x80008667,
- 0x80008669, 0x800086a9, 0x80008688, 0x8000870e,
- 0x800086e2, 0x80008779, 0x80008728, 0x8000876b,
- 0x80008786, 0x800045d7, 0x800087e1, 0x80008801,
- 0x800045f9, 0x80008860, 0x80008863, 0x80027667,
- 0x800088d7, 0x800088de, 0x80004635, 0x800088fa,
- 0x800034bb, 0x800278ae, 0x80027966, 0x800046be,
- 0x800046c7, 0x80008aa0, 0x80008aed, 0x80008b8a,
- 0x80008c55, 0x80027ca8, 0x80008cab, 0x80008cc1,
- 0x80008d1b, 0x80008d77, 0x80027f2f, 0x80020804,
- 0x80008dcb, 0x80008dbc, 0x80008df0, 0x800208de,
- 0x80008ed4, 0x80008f38, 0x800285d2, 0x800285ed,
- 0x80009094, 0x800090f1, 0x80009111, 0x8002872e,
- 0x8000911b, 0x80009238, 0x800092d7, 0x800092d8,
- 0x8000927c, 0x800093f9, 0x80009415, 0x80028bfa,
- 0x8000958b, 0x80004995, 0x800095b7, 0x80028d77,
- 0x800049e6, 0x800096c3, 0x80005db2, 0x80009723,
- 0x80029145, 0x8002921a, 0x80004a6e, 0x80004a76,
- 0x800097e0, 0x8002940a, 0x80004ab2, 0x80029496,
- 0x8000980b, 0x8000980b, 0x80009829, 0x800295b6,
- 0x800098e2, 0x80004b33, 0x80009929, 0x800099a7,
- 0x800099c2, 0x800099fe, 0x80004bce, 0x80029b30,
- 0x80009b12, 0x80009c40, 0x80009cfd, 0x80004cce,
- 0x80004ced, 0x80009d67, 0x8002a0ce, 0x80004cf8,
- 0x8002a105, 0x8002a20e, 0x8002a291, 0x80009ebb,
- 0x80004d56, 0x80009ef9, 0x80009efe, 0x80009f05,
- 0x80009f0f, 0x80009f16, 0x80009f3b, 0x8002a600,
-};
-
diff --git a/intl/unicharutil/nsUnicodeNormalizer.cpp b/intl/unicharutil/nsUnicodeNormalizer.cpp
index 16c3a969c..6f6c3d2dd 100644
--- a/intl/unicharutil/nsUnicodeNormalizer.cpp
+++ b/intl/unicharutil/nsUnicodeNormalizer.cpp
@@ -1,66 +1,16 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* This file is modified from JPNIC's mDNKit, it is under both MPL and
- * JPNIC's license.
- */
-
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-/*
- * Copyright (c) 2000,2002 Japan Network Information Center.
- * All rights reserved.
- *
- * By using this file, you agree to the terms and conditions set forth bellow.
- *
- * LICENSE TERMS AND CONDITIONS
- *
- * The following License Terms and Conditions apply, unless a different
- * license is obtained from Japan Network Information Center ("JPNIC"),
- * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
- * Chiyoda-ku, Tokyo 101-0047, Japan.
- *
- * 1. Use, Modification and Redistribution (including distribution of any
- * modified or derived work) in source and/or binary forms is permitted
- * under this License Terms and Conditions.
- *
- * 2. Redistribution of source code must retain the copyright notices as they
- * appear in each source code file, this License Terms and Conditions.
- *
- * 3. Redistribution in binary form must reproduce the Copyright Notice,
- * this License Terms and Conditions, in the documentation and/or other
- * materials provided with the distribution. For the purposes of binary
- * distribution the "Copyright Notice" refers to the following language:
- * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved."
- *
- * 4. The name of JPNIC may not be used to endorse or promote products
- * derived from this Software without specific prior written approval of
- * JPNIC.
- *
- * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
- * "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 JPNIC 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 DAMAGES.
- */
-
-#include <string.h>
-
-#include "nsMemory.h"
#include "nsUnicodeNormalizer.h"
-#include "nsString.h"
-#include "mozilla/BinarySearch.h"
+#include "ICUUtils.h"
+#include "unicode/unorm2.h"
+#include "unicode/utext.h"
NS_IMPL_ISUPPORTS(nsUnicodeNormalizer, nsIUnicodeNormalizer)
-
nsUnicodeNormalizer::nsUnicodeNormalizer()
{
}
@@ -69,636 +19,80 @@ nsUnicodeNormalizer::~nsUnicodeNormalizer()
{
}
-
-
-#define END_BIT 0x80000000
-
-
-/*
- * Some constants for Hangul decomposition/composition.
- * These things were taken from unicode book.
- */
-#define SBase 0xac00
-#define LBase 0x1100
-#define VBase 0x1161
-#define TBase 0x11a7
-#define LCount 19
-#define VCount 21
-#define TCount 28
-#define SLast (SBase + LCount * VCount * TCount)
-
-struct composition {
- uint32_t c2; /* 2nd character */
- uint32_t comp; /* composed character */
-};
-
-
-#include "normalization_data.h"
-
-/*
- * Macro for multi-level index table.
- */
-#define LOOKUPTBL(vprefix, mprefix, v) \
- DMAP(vprefix)[\
- IMAP(vprefix)[\
- IMAP(vprefix)[IDX0(mprefix, v)] + IDX1(mprefix, v)\
- ]\
- ].tbl[IDX2(mprefix, v)]
-
-#define IDX0(mprefix, v) IDX_0(v, BITS1(mprefix), BITS2(mprefix))
-#define IDX1(mprefix, v) IDX_1(v, BITS1(mprefix), BITS2(mprefix))
-#define IDX2(mprefix, v) IDX_2(v, BITS1(mprefix), BITS2(mprefix))
-
-#define IDX_0(v, bits1, bits2) ((v) >> ((bits1) + (bits2)))
-#define IDX_1(v, bits1, bits2) (((v) >> (bits2)) & ((1 << (bits1)) - 1))
-#define IDX_2(v, bits1, bits2) ((v) & ((1 << (bits2)) - 1))
-
-#define BITS1(mprefix) mprefix ## _BITS_1
-#define BITS2(mprefix) mprefix ## _BITS_2
-
-#define IMAP(vprefix) vprefix ## _imap
-#define DMAP(vprefix) vprefix ## _table
-#define SEQ(vprefix) vprefix ## _seq
-
-static int32_t
-canonclass(uint32_t c) {
- /* Look up canonicalclass table. */
- return (LOOKUPTBL(canon_class, CANON_CLASS, c));
-}
-
-static int32_t
-decompose_char(uint32_t c, const uint32_t **seqp)
-{
- /* Look up decomposition table. */
- int32_t seqidx = LOOKUPTBL(decompose, DECOMP, c);
- *seqp = SEQ(decompose) + (seqidx & ~DECOMP_COMPAT);
- return (seqidx);
-}
-
-static int32_t
-compose_char(uint32_t c,
- const struct composition **compp)
-{
- /* Look up composition table. */
- int32_t seqidx = LOOKUPTBL(compose, CANON_COMPOSE, c);
- *compp = SEQ(compose) + (seqidx & 0xffff);
- return (seqidx >> 16);
-}
-
-static nsresult
-mdn__unicode_decompose(int32_t compat, uint32_t *v, size_t vlen,
- uint32_t c, int32_t *decomp_lenp)
-{
- uint32_t *vorg = v;
- int32_t seqidx;
- const uint32_t *seq;
-
- //assert(v != nullptr && vlen >= 0 && decomp_lenp != nullptr);
-
- /*
- * First, check for Hangul.
- */
- if (SBase <= c && c < SLast) {
- int32_t idx, t_offset, v_offset, l_offset;
-
- idx = c - SBase;
- t_offset = idx % TCount;
- idx /= TCount;
- v_offset = idx % VCount;
- l_offset = idx / VCount;
- if ((t_offset == 0 && vlen < 2) || (t_offset > 0 && vlen < 3))
- return (NS_ERROR_UNORM_MOREOUTPUT);
- *v++ = LBase + l_offset;
- *v++ = VBase + v_offset;
- if (t_offset > 0)
- *v++ = TBase + t_offset;
- *decomp_lenp = v - vorg;
- return (NS_OK);
- }
-
- /*
- * Look up decomposition table. If no decomposition is defined
- * or if it is a compatibility decomosition when canonical
- * decomposition requested, return 'NS_SUCCESS_UNORM_NOTFOUND'.
- */
- seqidx = decompose_char(c, &seq);
- if (seqidx == 0 || (compat == 0 && (seqidx & DECOMP_COMPAT) != 0))
- return (NS_SUCCESS_UNORM_NOTFOUND);
-
- /*
- * Copy the decomposed sequence. The end of the sequence are
- * marked with END_BIT.
- */
- do {
- uint32_t c;
- int32_t dlen;
- nsresult r;
-
- c = *seq & ~END_BIT;
-
- /* Decompose recursively. */
- r = mdn__unicode_decompose(compat, v, vlen, c, &dlen);
- if (r == NS_OK) {
- v += dlen;
- vlen -= dlen;
- } else if (r == NS_SUCCESS_UNORM_NOTFOUND) {
- if (vlen < 1)
- return (NS_ERROR_UNORM_MOREOUTPUT);
- *v++ = c;
- vlen--;
- } else {
- return (r);
- }
-
- } while ((*seq++ & END_BIT) == 0);
-
- *decomp_lenp = v - vorg;
-
- return (NS_OK);
-}
-
-static int32_t
-mdn__unicode_iscompositecandidate(uint32_t c)
-{
- const struct composition *dummy;
-
- /* Check for Hangul */
- if ((LBase <= c && c < LBase + LCount) || (SBase <= c && c < SLast))
- return (1);
-
- /*
- * Look up composition table. If there are no composition
- * that begins with the given character, it is not a
- * composition candidate.
- */
- if (compose_char(c, &dummy) == 0)
- return (0);
- else
- return (1);
-}
-
-namespace {
-
-struct SequenceAdaptor
-{
- const composition* const mSequence;
- explicit SequenceAdaptor(const composition* aSequence) : mSequence(aSequence) {}
- uint32_t operator[](size_t aIdx) const {
- return mSequence[aIdx].c2;
- }
-};
-
-} // namespace
-
-static nsresult
-mdn__unicode_compose(uint32_t c1, uint32_t c2, uint32_t *compp)
-{
- int32_t n;
- const struct composition *cseq;
-
- //assert(compp != nullptr);
-
- /*
- * Check for Hangul.
- */
- if (LBase <= c1 && c1 < LBase + LCount &&
- VBase <= c2 && c2 < VBase + VCount) {
- /*
- * Hangul L and V.
- */
- *compp = SBase +
- ((c1 - LBase) * VCount + (c2 - VBase)) * TCount;
- return (NS_OK);
- } else if (SBase <= c1 && c1 < SLast &&
- TBase <= c2 && c2 < TBase + TCount &&
- (c1 - SBase) % TCount == 0) {
- /*
- * Hangul LV and T.
- */
- *compp = c1 + (c2 - TBase);
- return (NS_OK);
- }
-
- /*
- * Look up composition table. If the result is 0, no composition
- * is defined. Otherwise, upper 16bits of the result contains
- * the number of composition that begins with 'c1', and the lower
- * 16bits is the offset in 'compose_seq'.
- */
- if ((n = compose_char(c1, &cseq)) == 0)
- return (NS_SUCCESS_UNORM_NOTFOUND);
-
- /*
- * The composite sequences are sorted by the 2nd character 'c2'.
- * So we can use binary search.
- */
- size_t idx;
- if (mozilla::BinarySearch(SequenceAdaptor(cseq), 0, n, c2, &idx)) {
- *compp = cseq[idx].comp;
- return (NS_OK);
- }
-
- return (NS_SUCCESS_UNORM_NOTFOUND);
-}
-
-
-#define WORKBUF_SIZE 128
-#define WORKBUF_SIZE_MAX 10000
-
-typedef struct {
- int32_t cur; /* pointing now processing character */
- int32_t last; /* pointing just after the last character */
- int32_t size; /* size of UCS and CLASS array */
- uint32_t *ucs; /* UCS-4 characters */
- int32_t *cclass; /* and their canonical classes */
- uint32_t ucs_buf[WORKBUF_SIZE]; /* local buffer */
- int32_t class_buf[WORKBUF_SIZE]; /* ditto */
-} workbuf_t;
-
-static nsresult decompose(workbuf_t *wb, uint32_t c, int32_t compat);
-static void get_class(workbuf_t *wb);
-static void reorder(workbuf_t *wb);
-static void compose(workbuf_t *wb);
-static nsresult flush_before_cur(workbuf_t *wb, nsAString& aToStr);
-static void workbuf_init(workbuf_t *wb);
-static void workbuf_free(workbuf_t *wb);
-static nsresult workbuf_extend(workbuf_t *wb);
-static nsresult workbuf_append(workbuf_t *wb, uint32_t c);
-static void workbuf_shift(workbuf_t *wb, int32_t shift);
-static void workbuf_removevoid(workbuf_t *wb);
-
-
-static nsresult
-mdn_normalize(bool do_composition, bool compat,
- const nsAString& aSrcStr, nsAString& aToStr)
-{
- workbuf_t wb;
- nsresult r = NS_OK;
- /*
- * Initialize working buffer.
- */
- workbuf_init(&wb);
-
- nsAString::const_iterator start, end;
- aSrcStr.BeginReading(start);
- aSrcStr.EndReading(end);
-
- while (start != end) {
- uint32_t c;
- char16_t curChar;
-
- //assert(wb.cur == wb.last);
-
- /*
- * Get one character from 'from'.
- */
- curChar= *start++;
-
- if (NS_IS_HIGH_SURROGATE(curChar) && start != end && NS_IS_LOW_SURROGATE(*(start)) ) {
- c = SURROGATE_TO_UCS4(curChar, *start);
- ++start;
- } else {
- c = curChar;
- }
-
- /*
- * Decompose it.
- */
- if ((r = decompose(&wb, c, compat)) != NS_OK)
- break;
-
- /*
- * Get canonical class.
- */
- get_class(&wb);
-
- /*
- * Reorder & compose.
- */
- for (; wb.cur < wb.last; wb.cur++) {
- if (wb.cur == 0) {
- continue;
- } else if (wb.cclass[wb.cur] > 0) {
- /*
- * This is not a starter. Try reordering.
- * Note that characters up to it are
- * already in canonical order.
- */
- reorder(&wb);
- continue;
- }
-
- /*
- * This is a starter character, and there are
- * some characters before it. Those characters
- * have been reordered properly, and
- * ready for composition.
- */
- if (do_composition && wb.cclass[0] == 0)
- compose(&wb);
-
- /*
- * If CUR points to a starter character,
- * then process of characters before CUR are
- * already finished, because any further
- * reordering/composition for them are blocked
- * by the starter CUR points.
- */
- if (wb.cur > 0 && wb.cclass[wb.cur] == 0) {
- /* Flush everything before CUR. */
- r = flush_before_cur(&wb, aToStr);
- if (r != NS_OK)
- break;
- }
- }
- }
-
- if (r == NS_OK) {
- if (do_composition && wb.cur > 0 && wb.cclass[0] == 0) {
- /*
- * There is some characters left in WB.
- * They are ordered, but not composed yet.
- * Now CUR points just after the last character in WB,
- * and since compose() tries to compose characters
- * between top and CUR inclusive, we must make CUR
- * one character back during compose().
- */
- wb.cur--;
- compose(&wb);
- wb.cur++;
- }
- /*
- * Call this even when WB.CUR == 0, to make TO
- * NUL-terminated.
- */
- r = flush_before_cur(&wb, aToStr);
- }
-
- workbuf_free(&wb);
-
- return (r);
-}
-
-static nsresult
-decompose(workbuf_t *wb, uint32_t c, int32_t compat) {
- nsresult r;
- int32_t dec_len;
-
-again:
- r = mdn__unicode_decompose(compat, wb->ucs + wb->last,
- wb->size - wb->last, c, &dec_len);
- switch (r) {
- case NS_OK:
- wb->last += dec_len;
- return (NS_OK);
- case NS_SUCCESS_UNORM_NOTFOUND:
- return (workbuf_append(wb, c));
- case NS_ERROR_UNORM_MOREOUTPUT:
- if ((r = workbuf_extend(wb)) != NS_OK)
- return (r);
- if (wb->size > WORKBUF_SIZE_MAX) {
- // "mdn__unormalize_form*: " "working buffer too large\n"
- return (NS_ERROR_FAILURE);
- }
- goto again;
- default:
- return (r);
- }
- /* NOTREACHED */
-}
-
-static void
-get_class(workbuf_t *wb) {
- int32_t i;
-
- for (i = wb->cur; i < wb->last; i++)
- wb->cclass[i] = canonclass(wb->ucs[i]);
-}
-
-static void
-reorder(workbuf_t *wb) {
- uint32_t c;
- int32_t i;
- int32_t cclass;
-
- //assert(wb != nullptr);
-
- i = wb->cur;
- c = wb->ucs[i];
- cclass = wb->cclass[i];
-
- while (i > 0 && wb->cclass[i - 1] > cclass) {
- wb->ucs[i] = wb->ucs[i - 1];
- wb->cclass[i] =wb->cclass[i - 1];
- i--;
- wb->ucs[i] = c;
- wb->cclass[i] = cclass;
- }
-}
-
-static void
-compose(workbuf_t *wb) {
- int32_t cur;
- uint32_t *ucs;
- int32_t *cclass;
- int32_t last_class;
- int32_t nvoids;
- int32_t i;
-
- //assert(wb != nullptr && wb->cclass[0] == 0);
-
- cur = wb->cur;
- ucs = wb->ucs;
- cclass = wb->cclass;
-
- /*
- * If there are no decomposition sequence that begins with
- * the top character, composition is impossible.
- */
- if (!mdn__unicode_iscompositecandidate(ucs[0]))
- return;
-
- last_class = 0;
- nvoids = 0;
- for (i = 1; i <= cur; i++) {
- uint32_t c;
- int32_t cl = cclass[i];
-
- if ((last_class < cl || cl == 0) &&
- mdn__unicode_compose(ucs[0], ucs[i],
- &c) == NS_OK) {
- /*
- * Replace the top character with the composed one.
- */
- ucs[0] = c;
- cclass[0] = canonclass(c);
-
- cclass[i] = -1; /* void this character */
- nvoids++;
- } else {
- last_class = cl;
- }
- }
-
- /* Purge void characters, if any. */
- if (nvoids > 0)
- workbuf_removevoid(wb);
-}
-
-static nsresult
-flush_before_cur(workbuf_t *wb, nsAString& aToStr)
-{
- int32_t i;
-
- for (i = 0; i < wb->cur; i++) {
- if (!IS_IN_BMP(wb->ucs[i])) {
- aToStr.Append((char16_t)H_SURROGATE(wb->ucs[i]));
- aToStr.Append((char16_t)L_SURROGATE(wb->ucs[i]));
- } else {
- aToStr.Append((char16_t)(wb->ucs[i]));
- }
- }
-
- workbuf_shift(wb, wb->cur);
-
- return (NS_OK);
-}
-
-static void
-workbuf_init(workbuf_t *wb) {
- wb->cur = 0;
- wb->last = 0;
- wb->size = WORKBUF_SIZE;
- wb->ucs = wb->ucs_buf;
- wb->cclass = wb->class_buf;
-}
-
-static void
-workbuf_free(workbuf_t *wb) {
- if (wb->ucs != wb->ucs_buf) {
- free(wb->ucs);
- free(wb->cclass);
- }
-}
-
static nsresult
-workbuf_extend(workbuf_t *wb) {
- int32_t newsize = wb->size * 3;
-
- if (wb->ucs == wb->ucs_buf) {
- wb->ucs = (uint32_t*)moz_xmalloc(sizeof(wb->ucs[0]) * newsize);
- if (!wb->ucs)
- return NS_ERROR_OUT_OF_MEMORY;
- wb->cclass = (int32_t*)moz_xmalloc(sizeof(wb->cclass[0]) * newsize);
- if (!wb->cclass) {
- free(wb->ucs);
- wb->ucs = nullptr;
- return NS_ERROR_OUT_OF_MEMORY;
- }
- } else {
- void* buf = moz_xrealloc(wb->ucs, sizeof(wb->ucs[0]) * newsize);
- if (!buf)
- return NS_ERROR_OUT_OF_MEMORY;
- wb->ucs = (uint32_t*)buf;
- buf = moz_xrealloc(wb->cclass, sizeof(wb->cclass[0]) * newsize);
- if (!buf)
- return NS_ERROR_OUT_OF_MEMORY;
- wb->cclass = (int32_t*)buf;
- }
- return (NS_OK);
-}
-
-static nsresult
-workbuf_append(workbuf_t *wb, uint32_t c) {
- nsresult r;
-
- if (wb->last >= wb->size && (r = workbuf_extend(wb)) != NS_OK)
- return (r);
- wb->ucs[wb->last++] = c;
- return (NS_OK);
-}
-
-static void
-workbuf_shift(workbuf_t *wb, int32_t shift) {
- int32_t nmove;
-
- //assert(wb != nullptr && wb->cur >= shift);
-
- nmove = wb->last - shift;
- memmove(&wb->ucs[0], &wb->ucs[shift],
- nmove * sizeof(wb->ucs[0]));
- memmove(&wb->cclass[0], &wb->cclass[shift],
- nmove * sizeof(wb->cclass[0]));
- wb->cur -= shift;
- wb->last -= shift;
-}
-
-static void
-workbuf_removevoid(workbuf_t *wb) {
- int32_t i, j;
- int32_t last = wb->last;
-
- for (i = j = 0; i < last; i++) {
- if (wb->cclass[i] >= 0) {
- if (j < i) {
- wb->ucs[j] = wb->ucs[i];
- wb->cclass[j] = wb->cclass[i];
- }
- j++;
- }
- }
- wb->cur -= last - j;
- wb->last = j;
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFD( const nsAString& aSrc, nsAString& aDest)
-{
- return mdn_normalize(false, false, aSrc, aDest);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFC( const nsAString& aSrc, nsAString& aDest)
-{
- return mdn_normalize(true, false, aSrc, aDest);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFKD( const nsAString& aSrc, nsAString& aDest)
-{
- return mdn_normalize(false, true, aSrc, aDest);
+DoNormalization(const UNormalizer2* aNorm, const nsAString& aSrc,
+ nsAString& aDest)
+{
+ UErrorCode errorCode = U_ZERO_ERROR;
+ const int32_t length = aSrc.Length();
+ const UChar* src = reinterpret_cast<const UChar*>(aSrc.BeginReading());
+ // Initial guess for a capacity that is likely to be enough for most cases.
+ int32_t capacity = length + (length >> 8) + 8;
+ do {
+ aDest.SetLength(capacity);
+ UChar* dest = reinterpret_cast<UChar*>(aDest.BeginWriting());
+ int32_t len = unorm2_normalize(aNorm, src, aSrc.Length(), dest, capacity,
+ &errorCode);
+ if (U_SUCCESS(errorCode)) {
+ aDest.SetLength(len);
+ break;
+ }
+ if (errorCode == U_BUFFER_OVERFLOW_ERROR) {
+ // Buffer wasn't big enough; adjust to the reported size and try again.
+ capacity = len;
+ errorCode = U_ZERO_ERROR;
+ continue;
+ }
+ } while (false);
+ return ICUUtils::UErrorToNsResult(errorCode);
+}
+
+nsresult
+nsUnicodeNormalizer::NormalizeUnicodeNFD(const nsAString& aSrc,
+ nsAString& aDest)
+{
+ // The unorm2_getNF*Instance functions return static singletons that should
+ // not be deleted, so we just get them once on first use.
+ static UErrorCode errorCode = U_ZERO_ERROR;
+ static const UNormalizer2* norm = unorm2_getNFDInstance(&errorCode);
+ if (U_SUCCESS(errorCode)) {
+ return DoNormalization(norm, aSrc, aDest);
+ }
+ return ICUUtils::UErrorToNsResult(errorCode);
}
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFKC( const nsAString& aSrc, nsAString& aDest)
+nsresult
+nsUnicodeNormalizer::NormalizeUnicodeNFC(const nsAString& aSrc,
+ nsAString& aDest)
{
- return mdn_normalize(true, true, aSrc, aDest);
+ static UErrorCode errorCode = U_ZERO_ERROR;
+ static const UNormalizer2* norm = unorm2_getNFCInstance(&errorCode);
+ if (U_SUCCESS(errorCode)) {
+ return DoNormalization(norm, aSrc, aDest);
+ }
+ return ICUUtils::UErrorToNsResult(errorCode);
}
-bool
-nsUnicodeNormalizer::Compose(uint32_t a, uint32_t b, uint32_t *ab)
+nsresult
+nsUnicodeNormalizer::NormalizeUnicodeNFKD(const nsAString& aSrc,
+ nsAString& aDest)
{
- return mdn__unicode_compose(a, b, ab) == NS_OK;
+ static UErrorCode errorCode = U_ZERO_ERROR;
+ static const UNormalizer2* norm = unorm2_getNFKDInstance(&errorCode);
+ if (U_SUCCESS(errorCode)) {
+ return DoNormalization(norm, aSrc, aDest);
+ }
+ return ICUUtils::UErrorToNsResult(errorCode);
}
-bool
-nsUnicodeNormalizer::DecomposeNonRecursively(uint32_t c, uint32_t *c1, uint32_t *c2)
+nsresult
+nsUnicodeNormalizer::NormalizeUnicodeNFKC(const nsAString& aSrc,
+ nsAString& aDest)
{
- // We can't use mdn__unicode_decompose here, because that does a recursive
- // decomposition that may yield more than two characters, but the harfbuzz
- // callback wants just a single-step decomp that is guaranteed to produce
- // no more than two characters. So we do a low-level lookup in the table
- // of decomp sequences.
- const uint32_t *seq;
- uint32_t seqidx = decompose_char(c, &seq);
- if (seqidx == 0 || ((seqidx & DECOMP_COMPAT) != 0)) {
- return false;
- }
- *c1 = *seq & ~END_BIT;
- if (*seq & END_BIT) {
- *c2 = 0;
- } else {
- *c2 = *++seq & ~END_BIT;
+ static UErrorCode errorCode = U_ZERO_ERROR;
+ static const UNormalizer2* norm = unorm2_getNFKCInstance(&errorCode);
+ if (U_SUCCESS(errorCode)) {
+ return DoNormalization(norm, aSrc, aDest);
}
- return true;
+ return ICUUtils::UErrorToNsResult(errorCode);
}
diff --git a/intl/unicharutil/nsUnicodeNormalizer.h b/intl/unicharutil/nsUnicodeNormalizer.h
index 5d9f1fe24..e92e53f21 100644
--- a/intl/unicharutil/nsUnicodeNormalizer.h
+++ b/intl/unicharutil/nsUnicodeNormalizer.h
@@ -25,13 +25,6 @@ public:
NS_IMETHOD NormalizeUnicodeNFKD( const nsAString& aSrc, nsAString& aDest) override;
NS_IMETHOD NormalizeUnicodeNFKC( const nsAString& aSrc, nsAString& aDest) override;
-#if !ENABLE_INTL_API
- // Low-level access to the composition data needed for HarfBuzz callbacks;
- // only required when ICU is not available in the build.
- static bool Compose(uint32_t a, uint32_t b, uint32_t *ab);
- static bool DecomposeNonRecursively(uint32_t comp, uint32_t *c1, uint32_t *c2);
-#endif
-
private:
virtual ~nsUnicodeNormalizer();
};
diff --git a/intl/unicharutil/nsUnicodeNormalizer_ICU.cpp b/intl/unicharutil/nsUnicodeNormalizer_ICU.cpp
deleted file mode 100644
index 6f6c3d2dd..000000000
--- a/intl/unicharutil/nsUnicodeNormalizer_ICU.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "nsUnicodeNormalizer.h"
-#include "ICUUtils.h"
-#include "unicode/unorm2.h"
-#include "unicode/utext.h"
-
-NS_IMPL_ISUPPORTS(nsUnicodeNormalizer, nsIUnicodeNormalizer)
-
-nsUnicodeNormalizer::nsUnicodeNormalizer()
-{
-}
-
-nsUnicodeNormalizer::~nsUnicodeNormalizer()
-{
-}
-
-static nsresult
-DoNormalization(const UNormalizer2* aNorm, const nsAString& aSrc,
- nsAString& aDest)
-{
- UErrorCode errorCode = U_ZERO_ERROR;
- const int32_t length = aSrc.Length();
- const UChar* src = reinterpret_cast<const UChar*>(aSrc.BeginReading());
- // Initial guess for a capacity that is likely to be enough for most cases.
- int32_t capacity = length + (length >> 8) + 8;
- do {
- aDest.SetLength(capacity);
- UChar* dest = reinterpret_cast<UChar*>(aDest.BeginWriting());
- int32_t len = unorm2_normalize(aNorm, src, aSrc.Length(), dest, capacity,
- &errorCode);
- if (U_SUCCESS(errorCode)) {
- aDest.SetLength(len);
- break;
- }
- if (errorCode == U_BUFFER_OVERFLOW_ERROR) {
- // Buffer wasn't big enough; adjust to the reported size and try again.
- capacity = len;
- errorCode = U_ZERO_ERROR;
- continue;
- }
- } while (false);
- return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFD(const nsAString& aSrc,
- nsAString& aDest)
-{
- // The unorm2_getNF*Instance functions return static singletons that should
- // not be deleted, so we just get them once on first use.
- static UErrorCode errorCode = U_ZERO_ERROR;
- static const UNormalizer2* norm = unorm2_getNFDInstance(&errorCode);
- if (U_SUCCESS(errorCode)) {
- return DoNormalization(norm, aSrc, aDest);
- }
- return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFC(const nsAString& aSrc,
- nsAString& aDest)
-{
- static UErrorCode errorCode = U_ZERO_ERROR;
- static const UNormalizer2* norm = unorm2_getNFCInstance(&errorCode);
- if (U_SUCCESS(errorCode)) {
- return DoNormalization(norm, aSrc, aDest);
- }
- return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFKD(const nsAString& aSrc,
- nsAString& aDest)
-{
- static UErrorCode errorCode = U_ZERO_ERROR;
- static const UNormalizer2* norm = unorm2_getNFKDInstance(&errorCode);
- if (U_SUCCESS(errorCode)) {
- return DoNormalization(norm, aSrc, aDest);
- }
- return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFKC(const nsAString& aSrc,
- nsAString& aDest)
-{
- static UErrorCode errorCode = U_ZERO_ERROR;
- static const UNormalizer2* norm = unorm2_getNFKCInstance(&errorCode);
- if (U_SUCCESS(errorCode)) {
- return DoNormalization(norm, aSrc, aDest);
- }
- return ICUUtils::UErrorToNsResult(errorCode);
-}