From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web11.51303.1583738893475894089 for ; Mon, 09 Mar 2020 00:28:13 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: shenglei.zhang@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Mar 2020 00:28:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,532,1574150400"; d="scan'208";a="245263196" Received: from shenglei-dev.ccr.corp.intel.com ([10.239.158.52]) by orsmga006.jf.intel.com with ESMTP; 09 Mar 2020 00:28:01 -0700 From: "Zhang, Shenglei" To: devel@edk2.groups.io Cc: Jian J Wang , Hao A Wu , Liming Gao Subject: [PATCH v2] MdeModulePkg/RegularExpressionDxe: Make oniguruma a submodule in edk2. Date: Mon, 9 Mar 2020 15:27:47 +0800 Message-Id: <20200309072747.20316-1-shenglei.zhang@intel.com> X-Mailer: git-send-email 2.18.0.windows.1 Use submodule way to access oniguruma. And upgrade oniguruma version from v6.9.3 to v6.9.4_mark1. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2073 Cc: Jian J Wang Cc: Hao A Wu Cc: Liming Gao Signed-off-by: Shenglei Zhang --- v2: Include wrapper files in RegularExpressionDxe.inf. Patch link: https://github.com/shenglei10/edk2/commits/oniguruma .../Oniguruma/OnigurumaUefiPort.c | 26 - .../RegularExpressionDxe/Oniguruma/ascii.c | 118 - .../Oniguruma/onig_init.c | 45 - .../RegularExpressionDxe/Oniguruma/regcomp.c | 6972 ---- .../RegularExpressionDxe/Oniguruma/regenc.c | 1029 - .../RegularExpressionDxe/Oniguruma/regerror.c | 402 - .../RegularExpressionDxe/Oniguruma/regexec.c | 5874 --- .../RegularExpressionDxe/Oniguruma/reggnu.c | 131 - .../RegularExpressionDxe/Oniguruma/regparse.c | 8461 ----- .../Oniguruma/regposerr.c | 108 - .../RegularExpressionDxe/Oniguruma/regposix.c | 304 - .../Oniguruma/regsyntax.c | 336 - .../RegularExpressionDxe/Oniguruma/regtrav.c | 76 - .../Oniguruma/regversion.c | 57 - .../RegularExpressionDxe/Oniguruma/st.c | 588 - .../RegularExpressionDxe/Oniguruma/unicode.c | 1152 - .../Oniguruma/unicode_egcb_data.c | 1374 - .../Oniguruma/unicode_fold1_key.c | 2995 -- .../Oniguruma/unicode_fold2_key.c | 222 - .../Oniguruma/unicode_fold3_key.c | 133 - .../Oniguruma/unicode_fold_data.c | 1522 - .../Oniguruma/unicode_property_data.c | 30388 ---------------- .../Oniguruma/unicode_property_data_posix.c | 5347 --- .../Oniguruma/unicode_unfold_key.c | 3299 -- .../Oniguruma/unicode_wb_data.c | 1023 - .../RegularExpressionDxe/Oniguruma/utf16_le.c | 309 - .../{Oniguruma => }/OnigurumaIntrinsics.c | 1 + .../RegularExpressionDxe/OnigurumaUefiPort.c | 90 + .gitmodules | 3 + .../RegularExpressionDxe/Oniguruma/AUTHORS | 1 - .../RegularExpressionDxe/Oniguruma/COPYING | 26 - .../RegularExpressionDxe/Oniguruma/README | 195 - .../RegularExpressionDxe/Oniguruma/oniggnu.h | 87 - .../Oniguruma/onigposix.h | 172 - .../Oniguruma/oniguruma.h | 1014 - .../RegularExpressionDxe/Oniguruma/regenc.h | 279 - .../RegularExpressionDxe/Oniguruma/regint.h | 1117 - .../RegularExpressionDxe/Oniguruma/regparse.h | 455 - .../RegularExpressionDxe/Oniguruma/st.h | 69 - .../{Oniguruma => }/OnigurumaUefiPort.h | 44 +- .../RegularExpressionDxe.h | 3 +- .../RegularExpressionDxe.inf | 73 +- .../Universal/RegularExpressionDxe/config.h | 9 + .../Universal/RegularExpressionDxe/oniguruma | 1 + .../Universal/RegularExpressionDxe/stdarg.h | 9 + .../Universal/RegularExpressionDxe/stddef.h | 9 + .../Universal/RegularExpressionDxe/stdio.h | 9 + .../Universal/RegularExpressionDxe/stdlib.h | 9 + .../Universal/RegularExpressionDxe/string.h | 9 + 49 files changed, 230 insertions(+), 75745 deletions(-) delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaUefiPort.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/ascii.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onig_init.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regerror.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regexec.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/reggnu.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposerr.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposix.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regsyntax.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regtrav.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regversion.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_egcb_data.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold1_key.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold2_key.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold3_key.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold_data.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data_posix.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_unfold_key.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_wb_data.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/utf16_le.c rename MdeModulePkg/Universal/RegularExpressionDxe/{Oniguruma => }/OnigurumaIntrinsics.c (91%) create mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/AUTHORS delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/COPYING delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/README delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniggnu.h delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onigposix.h delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.h delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regint.h delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.h delete mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.h rename MdeModulePkg/Universal/RegularExpressionDxe/{Oniguruma => }/OnigurumaUefiPort.h (62%) create mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/config.h create mode 160000 MdeModulePkg/Universal/RegularExpressionDxe/oniguruma create mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/stdarg.h create mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/stddef.h create mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/stdio.h create mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/stdlib.h create mode 100644 MdeModulePkg/Universal/RegularExpressionDxe/string.h diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaUefiPort.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaUefiPort.c deleted file mode 100644 index 376fcabd760c..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaUefiPort.c +++ /dev/null @@ -1,26 +0,0 @@ -/** @file - - Module to rewrite stdlib references within Oniguruma - - (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP
- - SPDX-License-Identifier: BSD-2-Clause-Patent -**/ -#include "OnigurumaUefiPort.h" - -int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...) -{ - VA_LIST Marker; - int NumberOfPrinted; - - VA_START (Marker, fmt); - NumberOfPrinted = (int)AsciiVSPrint (str, sizeOfBuffer, fmt, Marker); - VA_END (Marker); - - return NumberOfPrinted; -} - -int OnigStrCmp (char* Str1, char* Str2) -{ - return (int)AsciiStrCmp (Str1, Str2); -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/ascii.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/ascii.c deleted file mode 100644 index 2527c02b323a..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/ascii.c +++ /dev/null @@ -1,118 +0,0 @@ -/********************************************************************** - ascii.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" /* for USE_CALLOUT */ - -static int -init(void) -{ -#ifdef USE_CALLOUT - - int id; - OnigEncoding enc; - char* name; - unsigned int args[4]; - OnigValue opts[4]; - - enc = ONIG_ENCODING_ASCII; - - name = "FAIL"; BC0_P(name, fail); - name = "MISMATCH"; BC0_P(name, mismatch); - - name = "MAX"; - args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; - args[1] = ONIG_TYPE_CHAR; - opts[0].c = 'X'; - BC_B_O(name, max, 2, args, 1, opts); - - name = "ERROR"; - args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT; - BC_P_O(name, error, 1, args, 1, opts); - - name = "COUNT"; - args[0] = ONIG_TYPE_CHAR; opts[0].c = '>'; - BC_B_O(name, count, 1, args, 1, opts); - - name = "TOTAL_COUNT"; - args[0] = ONIG_TYPE_CHAR; opts[0].c = '>'; - BC_B_O(name, total_count, 1, args, 1, opts); - - name = "CMP"; - args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; - args[1] = ONIG_TYPE_STRING; - args[2] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; - BC_P(name, cmp, 3, args); - -#endif /* USE_CALLOUT */ - - return ONIG_NORMAL; -} - -#if 0 -static int -is_initialized(void) -{ - /* Don't use this function */ - /* can't answer, because builtin callout entries removed in onig_end() */ - return 0; -} -#endif - -static int -ascii_is_code_ctype(OnigCodePoint code, unsigned int ctype) -{ - if (code < 128) - return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); - else - return FALSE; -} - -OnigEncodingType OnigEncodingASCII = { - onigenc_single_byte_mbc_enc_len, - "US-ASCII", /* name */ - 1, /* max enc length */ - 1, /* min enc length */ - onigenc_is_mbc_newline_0x0a, - onigenc_single_byte_mbc_to_code, - onigenc_single_byte_code_to_mbclen, - onigenc_single_byte_code_to_mbc, - onigenc_ascii_mbc_case_fold, - onigenc_ascii_apply_all_case_fold, - onigenc_ascii_get_case_fold_codes_by_str, - onigenc_minimum_property_name_to_ctype, - ascii_is_code_ctype, - onigenc_not_support_get_ctype_code_range, - onigenc_single_byte_left_adjust_char_head, - onigenc_always_true_is_allowed_reverse_match, - init, - 0, /* is_initialized */ - onigenc_always_true_is_valid_mbc_string, - ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1, - 0, 0 -}; diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onig_init.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onig_init.c deleted file mode 100644 index 9fc6dca3c073..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onig_init.c +++ /dev/null @@ -1,45 +0,0 @@ -/********************************************************************** - onig_init.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2016-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" - -/* onig_init(): deprecated function */ -extern int -onig_init(void) -{ -#if 0 - OnigEncoding encs[] = { - ONIG_ENCODING_UTF8 - }; - - return onig_initialize(encs, sizeof(encs)/sizeof(encs[0])); -#else - return onig_initialize(0, 0); -#endif -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c deleted file mode 100644 index d847ca4233e2..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c +++ /dev/null @@ -1,6972 +0,0 @@ -/********************************************************************** - regcomp.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regparse.h" - -#define OPS_INIT_SIZE 8 - -OnigCaseFoldType OnigDefaultCaseFoldFlag = ONIGENC_CASE_FOLD_MIN; - -#if 0 -typedef struct { - int n; - int alloc; - int* v; -} int_stack; - -static int -make_int_stack(int_stack** rs, int init_size) -{ - int_stack* s; - int* v; - - *rs = 0; - - s = xmalloc(sizeof(*s)); - if (IS_NULL(s)) return ONIGERR_MEMORY; - - v = (int* )xmalloc(sizeof(int) * init_size); - if (IS_NULL(v)) { - xfree(s); - return ONIGERR_MEMORY; - } - - s->n = 0; - s->alloc = init_size; - s->v = v; - - *rs = s; - return ONIG_NORMAL; -} - -static void -free_int_stack(int_stack* s) -{ - if (IS_NOT_NULL(s)) { - if (IS_NOT_NULL(s->v)) - xfree(s->v); - xfree(s); - } -} - -static int -int_stack_push(int_stack* s, int v) -{ - if (s->n >= s->alloc) { - int new_size = s->alloc * 2; - int* nv = (int* )xrealloc(s->v, sizeof(int) * new_size, sizeof(int) * s->alloc); - if (IS_NULL(nv)) return ONIGERR_MEMORY; - - s->alloc = new_size; - s->v = nv; - } - - s->v[s->n] = v; - s->n++; - return ONIG_NORMAL; -} - -static int -int_stack_pop(int_stack* s) -{ - int v; - -#ifdef ONIG_DEBUG - if (s->n <= 0) { - fprintf(stderr, "int_stack_pop: fail empty. %p\n", s); - return 0; - } -#endif - - v = s->v[s->n]; - s->n--; - return v; -} -#endif - -static int -ops_init(regex_t* reg, int init_alloc_size) -{ - Operation* p; - size_t size; - - if (init_alloc_size > 0) { - size = sizeof(Operation) * init_alloc_size; - p = (Operation* )xmalloc(size); - CHECK_NULL_RETURN_MEMERR(p); -#ifdef USE_DIRECT_THREADED_CODE - { - enum OpCode* cp; - size = sizeof(enum OpCode) * init_alloc_size; - cp = (enum OpCode* )xmalloc(size); - CHECK_NULL_RETURN_MEMERR(cp); - reg->ocs = cp; - } -#endif - } - else { - p = (Operation* )0; -#ifdef USE_DIRECT_THREADED_CODE - reg->ocs = (enum OpCode* )0; -#endif - } - - reg->ops = p; - reg->ops_curr = 0; /* !!! not yet done ops_new() */ - reg->ops_alloc = init_alloc_size; - reg->ops_used = 0; - - return ONIG_NORMAL; -} - -static int -ops_expand(regex_t* reg, int n) -{ -#define MIN_OPS_EXPAND_SIZE 4 - -#ifdef USE_DIRECT_THREADED_CODE - enum OpCode* cp; -#endif - Operation* p; - size_t size; - - if (n <= 0) n = MIN_OPS_EXPAND_SIZE; - - n += reg->ops_alloc; - - size = sizeof(Operation) * n; - p = (Operation* )xrealloc(reg->ops, size, sizeof(Operation) * reg->ops_alloc); - CHECK_NULL_RETURN_MEMERR(p); - -#ifdef USE_DIRECT_THREADED_CODE - size = sizeof(enum OpCode) * n; - cp = (enum OpCode* )xrealloc(reg->ocs, size, sizeof(enum OpCode) * reg->ops_alloc); - CHECK_NULL_RETURN_MEMERR(cp); - reg->ocs = cp; -#endif - - reg->ops = p; - reg->ops_alloc = n; - if (reg->ops_used == 0) - reg->ops_curr = 0; - else - reg->ops_curr = reg->ops + (reg->ops_used - 1); - - return ONIG_NORMAL; -} - -static int -ops_new(regex_t* reg) -{ - int r; - - if (reg->ops_used >= reg->ops_alloc) { - r = ops_expand(reg, reg->ops_alloc); - if (r != ONIG_NORMAL) return r; - } - - reg->ops_curr = reg->ops + reg->ops_used; - reg->ops_used++; - - xmemset(reg->ops_curr, 0, sizeof(Operation)); - return ONIG_NORMAL; -} - -static int -is_in_string_pool(regex_t* reg, UChar* s) -{ - return (s >= reg->string_pool && s < reg->string_pool_end); -} - -static void -ops_free(regex_t* reg) -{ - int i; - - if (IS_NULL(reg->ops)) return ; - - for (i = 0; i < (int )reg->ops_used; i++) { - enum OpCode opcode; - Operation* op; - - op = reg->ops + i; - -#ifdef USE_DIRECT_THREADED_CODE - opcode = *(reg->ocs + i); -#else - opcode = op->opcode; -#endif - - switch (opcode) { - case OP_EXACTMBN: - if (! is_in_string_pool(reg, op->exact_len_n.s)) - xfree(op->exact_len_n.s); - break; - case OP_EXACTN: case OP_EXACTMB2N: case OP_EXACTMB3N: case OP_EXACTN_IC: - if (! is_in_string_pool(reg, op->exact_n.s)) - xfree(op->exact_n.s); - break; - case OP_EXACT1: case OP_EXACT2: case OP_EXACT3: case OP_EXACT4: - case OP_EXACT5: case OP_EXACTMB2N1: case OP_EXACTMB2N2: - case OP_EXACTMB2N3: case OP_EXACT1_IC: - break; - - case OP_CCLASS_NOT: case OP_CCLASS: - xfree(op->cclass.bsp); - break; - - case OP_CCLASS_MB_NOT: case OP_CCLASS_MB: - xfree(op->cclass_mb.mb); - break; - case OP_CCLASS_MIX_NOT: case OP_CCLASS_MIX: - xfree(op->cclass_mix.mb); - xfree(op->cclass_mix.bsp); - break; - - case OP_BACKREF1: case OP_BACKREF2: case OP_BACKREF_N: case OP_BACKREF_N_IC: - break; - case OP_BACKREF_MULTI: case OP_BACKREF_MULTI_IC: - case OP_BACKREF_WITH_LEVEL: - case OP_BACKREF_WITH_LEVEL_IC: - case OP_BACKREF_CHECK: - case OP_BACKREF_CHECK_WITH_LEVEL: - if (op->backref_general.num != 1) - xfree(op->backref_general.ns); - break; - - default: - break; - } - } - - xfree(reg->ops); -#ifdef USE_DIRECT_THREADED_CODE - xfree(reg->ocs); - reg->ocs = 0; -#endif - - reg->ops = 0; - reg->ops_curr = 0; - reg->ops_alloc = 0; - reg->ops_used = 0; -} - -static int -ops_calc_size_of_string_pool(regex_t* reg) -{ - int i; - int total; - - if (IS_NULL(reg->ops)) return 0; - - total = 0; - for (i = 0; i < (int )reg->ops_used; i++) { - enum OpCode opcode; - Operation* op; - - op = reg->ops + i; -#ifdef USE_DIRECT_THREADED_CODE - opcode = *(reg->ocs + i); -#else - opcode = op->opcode; -#endif - - switch (opcode) { - case OP_EXACTMBN: - total += op->exact_len_n.len * op->exact_len_n.n; - break; - case OP_EXACTN: - case OP_EXACTN_IC: - total += op->exact_n.n; - break; - case OP_EXACTMB2N: - total += op->exact_n.n * 2; - break; - case OP_EXACTMB3N: - total += op->exact_n.n * 3; - break; - - default: - break; - } - } - - return total; -} - -static int -ops_make_string_pool(regex_t* reg) -{ - int i; - int len; - int size; - UChar* pool; - UChar* curr; - - size = ops_calc_size_of_string_pool(reg); - if (size <= 0) { - return 0; - } - - curr = pool = (UChar* )xmalloc((size_t )size); - CHECK_NULL_RETURN_MEMERR(pool); - - for (i = 0; i < (int )reg->ops_used; i++) { - enum OpCode opcode; - Operation* op; - - op = reg->ops + i; -#ifdef USE_DIRECT_THREADED_CODE - opcode = *(reg->ocs + i); -#else - opcode = op->opcode; -#endif - - switch (opcode) { - case OP_EXACTMBN: - len = op->exact_len_n.len * op->exact_len_n.n; - xmemcpy(curr, op->exact_len_n.s, len); - xfree(op->exact_len_n.s); - op->exact_len_n.s = curr; - curr += len; - break; - case OP_EXACTN: - case OP_EXACTN_IC: - len = op->exact_n.n; - copy: - xmemcpy(curr, op->exact_n.s, len); - xfree(op->exact_n.s); - op->exact_n.s = curr; - curr += len; - break; - case OP_EXACTMB2N: - len = op->exact_n.n * 2; - goto copy; - break; - case OP_EXACTMB3N: - len = op->exact_n.n * 3; - goto copy; - break; - - default: - break; - } - } - - reg->string_pool = pool; - reg->string_pool_end = pool + size; - return 0; -} - -extern OnigCaseFoldType -onig_get_default_case_fold_flag(void) -{ - return OnigDefaultCaseFoldFlag; -} - -extern int -onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag) -{ - OnigDefaultCaseFoldFlag = case_fold_flag; - return 0; -} - -static int -int_multiply_cmp(int x, int y, int v) -{ - if (x == 0 || y == 0) return -1; - - if (x < INT_MAX / y) { - int xy = x * y; - if (xy > v) return 1; - else { - if (xy == v) return 0; - else return -1; - } - } - else - return 1; -} - -extern int -onig_positive_int_multiply(int x, int y) -{ - if (x == 0 || y == 0) return 0; - - if (x < INT_MAX / y) - return x * y; - else - return -1; -} - - -static void -swap_node(Node* a, Node* b) -{ - Node c; - - c = *a; *a = *b; *b = c; - - if (NODE_TYPE(a) == NODE_STRING) { - StrNode* sn = STR_(a); - if (sn->capacity == 0) { - int len = (int )(sn->end - sn->s); - sn->s = sn->buf; - sn->end = sn->s + len; - } - } - - if (NODE_TYPE(b) == NODE_STRING) { - StrNode* sn = STR_(b); - if (sn->capacity == 0) { - int len = (int )(sn->end - sn->s); - sn->s = sn->buf; - sn->end = sn->s + len; - } - } -} - -static OnigLen -distance_add(OnigLen d1, OnigLen d2) -{ - if (d1 == INFINITE_LEN || d2 == INFINITE_LEN) - return INFINITE_LEN; - else { - if (d1 <= INFINITE_LEN - d2) return d1 + d2; - else return INFINITE_LEN; - } -} - -static OnigLen -distance_multiply(OnigLen d, int m) -{ - if (m == 0) return 0; - - if (d < INFINITE_LEN / m) - return d * m; - else - return INFINITE_LEN; -} - -static int -bitset_is_empty(BitSetRef bs) -{ - int i; - - for (i = 0; i < (int )BITSET_SIZE; i++) { - if (bs[i] != 0) return 0; - } - return 1; -} - -#ifdef USE_CALL - -static int -unset_addr_list_init(UnsetAddrList* list, int size) -{ - UnsetAddr* p = (UnsetAddr* )xmalloc(sizeof(UnsetAddr)* size); - CHECK_NULL_RETURN_MEMERR(p); - - list->num = 0; - list->alloc = size; - list->us = p; - return 0; -} - -static void -unset_addr_list_end(UnsetAddrList* list) -{ - if (IS_NOT_NULL(list->us)) - xfree(list->us); -} - -static int -unset_addr_list_add(UnsetAddrList* list, int offset, struct _Node* node) -{ - UnsetAddr* p; - int size; - - if (list->num >= list->alloc) { - size = list->alloc * 2; - p = (UnsetAddr* )xrealloc(list->us, sizeof(UnsetAddr) * size, sizeof(UnsetAddr)* list->alloc); - CHECK_NULL_RETURN_MEMERR(p); - list->alloc = size; - list->us = p; - } - - list->us[list->num].offset = offset; - list->us[list->num].target = node; - list->num++; - return 0; -} -#endif /* USE_CALL */ - - -static int -add_op(regex_t* reg, int opcode) -{ - int r; - - r = ops_new(reg); - if (r != ONIG_NORMAL) return r; - -#ifdef USE_DIRECT_THREADED_CODE - *(reg->ocs + (reg->ops_curr - reg->ops)) = opcode; -#else - reg->ops_curr->opcode = opcode; -#endif - - return 0; -} - -static int compile_length_tree(Node* node, regex_t* reg); -static int compile_tree(Node* node, regex_t* reg, ScanEnv* env); - - -#define IS_NEED_STR_LEN_OP_EXACT(op) \ - ((op) == OP_EXACTN || (op) == OP_EXACTMB2N ||\ - (op) == OP_EXACTMB3N || (op) == OP_EXACTMBN || (op) == OP_EXACTN_IC) - -static int -select_str_opcode(int mb_len, int str_len, int ignore_case) -{ - int op; - - if (ignore_case) { - switch (str_len) { - case 1: op = OP_EXACT1_IC; break; - default: op = OP_EXACTN_IC; break; - } - } - else { - switch (mb_len) { - case 1: - switch (str_len) { - case 1: op = OP_EXACT1; break; - case 2: op = OP_EXACT2; break; - case 3: op = OP_EXACT3; break; - case 4: op = OP_EXACT4; break; - case 5: op = OP_EXACT5; break; - default: op = OP_EXACTN; break; - } - break; - - case 2: - switch (str_len) { - case 1: op = OP_EXACTMB2N1; break; - case 2: op = OP_EXACTMB2N2; break; - case 3: op = OP_EXACTMB2N3; break; - default: op = OP_EXACTMB2N; break; - } - break; - - case 3: - op = OP_EXACTMB3N; - break; - - default: - op = OP_EXACTMBN; - break; - } - } - return op; -} - -static int -is_strict_real_node(Node* node) -{ - switch (NODE_TYPE(node)) { - case NODE_STRING: - { - StrNode* sn = STR_(node); - return (sn->end != sn->s); - } - break; - - case NODE_CCLASS: - case NODE_CTYPE: - return 1; - break; - - default: - return 0; - break; - } -} - -static int -compile_tree_empty_check(Node* node, regex_t* reg, int emptiness, ScanEnv* env) -{ - int r; - int saved_num_null_check = reg->num_null_check; - - if (emptiness != BODY_IS_NOT_EMPTY) { - r = add_op(reg, OP_EMPTY_CHECK_START); - if (r != 0) return r; - COP(reg)->empty_check_start.mem = reg->num_null_check; /* NULL CHECK ID */ - reg->num_null_check++; - } - - r = compile_tree(node, reg, env); - if (r != 0) return r; - - if (emptiness != BODY_IS_NOT_EMPTY) { - if (emptiness == BODY_IS_EMPTY_POSSIBILITY) - r = add_op(reg, OP_EMPTY_CHECK_END); - else if (emptiness == BODY_IS_EMPTY_POSSIBILITY_MEM) - r = add_op(reg, OP_EMPTY_CHECK_END_MEMST); - else if (emptiness == BODY_IS_EMPTY_POSSIBILITY_REC) - r = add_op(reg, OP_EMPTY_CHECK_END_MEMST_PUSH); - - if (r != 0) return r; - COP(reg)->empty_check_end.mem = saved_num_null_check; /* NULL CHECK ID */ - } - return r; -} - -#ifdef USE_CALL -static int -compile_call(CallNode* node, regex_t* reg, ScanEnv* env) -{ - int r; - int offset; - - r = add_op(reg, OP_CALL); - if (r != 0) return r; - - COP(reg)->call.addr = 0; /* dummy addr. */ - - offset = COP_CURR_OFFSET_BYTES(reg, call.addr); - r = unset_addr_list_add(env->unset_addr_list, offset, NODE_CALL_BODY(node)); - return r; -} -#endif - -static int -compile_tree_n_times(Node* node, int n, regex_t* reg, ScanEnv* env) -{ - int i, r; - - for (i = 0; i < n; i++) { - r = compile_tree(node, reg, env); - if (r != 0) return r; - } - return 0; -} - -static int -add_compile_string_length(UChar* s ARG_UNUSED, int mb_len, int str_len, - regex_t* reg ARG_UNUSED, int ignore_case) -{ - return 1; -} - -static int -add_compile_string(UChar* s, int mb_len, int str_len, - regex_t* reg, int ignore_case) -{ - int op; - int r; - int byte_len; - UChar* p; - UChar* end; - - op = select_str_opcode(mb_len, str_len, ignore_case); - r = add_op(reg, op); - if (r != 0) return r; - - byte_len = mb_len * str_len; - end = s + byte_len; - - if (op == OP_EXACTMBN) { - p = onigenc_strdup(reg->enc, s, end); - CHECK_NULL_RETURN_MEMERR(p); - - COP(reg)->exact_len_n.len = mb_len; - COP(reg)->exact_len_n.n = str_len; - COP(reg)->exact_len_n.s = p; - } - else if (IS_NEED_STR_LEN_OP_EXACT(op)) { - p = onigenc_strdup(reg->enc, s, end); - CHECK_NULL_RETURN_MEMERR(p); - - if (op == OP_EXACTN_IC) - COP(reg)->exact_n.n = byte_len; - else - COP(reg)->exact_n.n = str_len; - - COP(reg)->exact_n.s = p; - } - else { - xmemcpy(COP(reg)->exact.s, s, (size_t )byte_len); - COP(reg)->exact.s[byte_len] = '\0'; - } - - return 0; -} - -static int -compile_length_string_node(Node* node, regex_t* reg) -{ - int rlen, r, len, prev_len, slen, ambig; - UChar *p, *prev; - StrNode* sn; - OnigEncoding enc = reg->enc; - - sn = STR_(node); - if (sn->end <= sn->s) - return 0; - - ambig = NODE_STRING_IS_AMBIG(node); - - p = prev = sn->s; - prev_len = enclen(enc, p); - p += prev_len; - slen = 1; - rlen = 0; - - for (; p < sn->end; ) { - len = enclen(enc, p); - if (len == prev_len) { - slen++; - } - else { - r = add_compile_string_length(prev, prev_len, slen, reg, ambig); - rlen += r; - prev = p; - slen = 1; - prev_len = len; - } - p += len; - } - - r = add_compile_string_length(prev, prev_len, slen, reg, ambig); - rlen += r; - return rlen; -} - -static int -compile_length_string_raw_node(StrNode* sn, regex_t* reg) -{ - if (sn->end <= sn->s) - return 0; - - return add_compile_string_length(sn->s, 1 /* sb */, (int )(sn->end - sn->s), - reg, 0); -} - -static int -compile_string_node(Node* node, regex_t* reg) -{ - int r, len, prev_len, slen, ambig; - UChar *p, *prev, *end; - StrNode* sn; - OnigEncoding enc = reg->enc; - - sn = STR_(node); - if (sn->end <= sn->s) - return 0; - - end = sn->end; - ambig = NODE_STRING_IS_AMBIG(node); - - p = prev = sn->s; - prev_len = enclen(enc, p); - p += prev_len; - slen = 1; - - for (; p < end; ) { - len = enclen(enc, p); - if (len == prev_len) { - slen++; - } - else { - r = add_compile_string(prev, prev_len, slen, reg, ambig); - if (r != 0) return r; - - prev = p; - slen = 1; - prev_len = len; - } - - p += len; - } - - return add_compile_string(prev, prev_len, slen, reg, ambig); -} - -static int -compile_string_raw_node(StrNode* sn, regex_t* reg) -{ - if (sn->end <= sn->s) - return 0; - - return add_compile_string(sn->s, 1 /* sb */, (int )(sn->end - sn->s), reg, 0); -} - -static void* -set_multi_byte_cclass(BBuf* mbuf, regex_t* reg) -{ - size_t len; - void* p; - - len = (size_t )mbuf->used; - p = xmalloc(len); - if (IS_NULL(p)) return NULL; - - xmemcpy(p, mbuf->p, len); - return p; -} - -static int -compile_length_cclass_node(CClassNode* cc, regex_t* reg) -{ - return 1; -} - -static int -compile_cclass_node(CClassNode* cc, regex_t* reg) -{ - int r; - - if (IS_NULL(cc->mbuf)) { - r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_NOT : OP_CCLASS); - if (r != 0) return r; - - COP(reg)->cclass.bsp = xmalloc(SIZE_BITSET); - CHECK_NULL_RETURN_MEMERR(COP(reg)->cclass.bsp); - xmemcpy(COP(reg)->cclass.bsp, cc->bs, SIZE_BITSET); - } - else { - void* p; - - if (ONIGENC_MBC_MINLEN(reg->enc) > 1 || bitset_is_empty(cc->bs)) { - r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_MB_NOT : OP_CCLASS_MB); - if (r != 0) return r; - - p = set_multi_byte_cclass(cc->mbuf, reg); - CHECK_NULL_RETURN_MEMERR(p); - COP(reg)->cclass_mb.mb = p; - } - else { - r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_MIX_NOT : OP_CCLASS_MIX); - if (r != 0) return r; - - COP(reg)->cclass_mix.bsp = xmalloc(SIZE_BITSET); - CHECK_NULL_RETURN_MEMERR(COP(reg)->cclass_mix.bsp); - xmemcpy(COP(reg)->cclass_mix.bsp, cc->bs, SIZE_BITSET); - - p = set_multi_byte_cclass(cc->mbuf, reg); - CHECK_NULL_RETURN_MEMERR(p); - COP(reg)->cclass_mix.mb = p; - } - } - - return 0; -} - -static int -entry_repeat_range(regex_t* reg, int id, int lower, int upper) -{ -#define REPEAT_RANGE_ALLOC 4 - - OnigRepeatRange* p; - - if (reg->repeat_range_alloc == 0) { - p = (OnigRepeatRange* )xmalloc(sizeof(OnigRepeatRange) * REPEAT_RANGE_ALLOC); - CHECK_NULL_RETURN_MEMERR(p); - reg->repeat_range = p; - reg->repeat_range_alloc = REPEAT_RANGE_ALLOC; - } - else if (reg->repeat_range_alloc <= id) { - int n; - n = reg->repeat_range_alloc + REPEAT_RANGE_ALLOC; - p = (OnigRepeatRange* )xrealloc(reg->repeat_range, - sizeof(OnigRepeatRange) * n, - sizeof(OnigRepeatRange) * reg->repeat_range_alloc); - CHECK_NULL_RETURN_MEMERR(p); - reg->repeat_range = p; - reg->repeat_range_alloc = n; - } - else { - p = reg->repeat_range; - } - - p[id].lower = lower; - p[id].upper = (IS_INFINITE_REPEAT(upper) ? 0x7fffffff : upper); - return 0; -} - -static int -compile_range_repeat_node(QuantNode* qn, int target_len, int emptiness, - regex_t* reg, ScanEnv* env) -{ - int r; - int num_repeat = reg->num_repeat++; - - r = add_op(reg, qn->greedy ? OP_REPEAT : OP_REPEAT_NG); - if (r != 0) return r; - - COP(reg)->repeat.id = num_repeat; - COP(reg)->repeat.addr = SIZE_INC_OP + target_len + SIZE_OP_REPEAT_INC; - - r = entry_repeat_range(reg, num_repeat, qn->lower, qn->upper); - if (r != 0) return r; - - r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env); - if (r != 0) return r; - - if ( -#ifdef USE_CALL - NODE_IS_IN_MULTI_ENTRY(qn) || -#endif - NODE_IS_IN_REAL_REPEAT(qn)) { - r = add_op(reg, qn->greedy ? OP_REPEAT_INC_SG : OP_REPEAT_INC_NG_SG); - } - else { - r = add_op(reg, qn->greedy ? OP_REPEAT_INC : OP_REPEAT_INC_NG); - } - if (r != 0) return r; - - COP(reg)->repeat_inc.id = num_repeat; - return r; -} - -static int -is_anychar_infinite_greedy(QuantNode* qn) -{ - if (qn->greedy && IS_INFINITE_REPEAT(qn->upper) && - NODE_IS_ANYCHAR(NODE_QUANT_BODY(qn))) - return 1; - else - return 0; -} - -#define QUANTIFIER_EXPAND_LIMIT_SIZE 10 -#define CKN_ON (ckn > 0) - -static int -compile_length_quantifier_node(QuantNode* qn, regex_t* reg) -{ - int len, mod_tlen; - int infinite = IS_INFINITE_REPEAT(qn->upper); - enum BodyEmptyType emptiness = qn->emptiness; - int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); - - if (tlen < 0) return tlen; - if (tlen == 0) return 0; - - /* anychar repeat */ - if (is_anychar_infinite_greedy(qn)) { - if (qn->lower <= 1 || - int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0) { - if (IS_NOT_NULL(qn->next_head_exact)) - return SIZE_OP_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower; - else - return SIZE_OP_ANYCHAR_STAR + tlen * qn->lower; - } - } - - mod_tlen = tlen; - if (emptiness != BODY_IS_NOT_EMPTY) - mod_tlen += SIZE_OP_EMPTY_CHECK_START + SIZE_OP_EMPTY_CHECK_END; - - if (infinite && - (qn->lower <= 1 || - int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { - if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) { - len = SIZE_OP_JUMP; - } - else { - len = tlen * qn->lower; - } - - if (qn->greedy) { -#ifdef USE_OP_PUSH_OR_JUMP_EXACT - if (IS_NOT_NULL(qn->head_exact)) - len += SIZE_OP_PUSH_OR_JUMP_EXACT1 + mod_tlen + SIZE_OP_JUMP; - else -#endif - if (IS_NOT_NULL(qn->next_head_exact)) - len += SIZE_OP_PUSH_IF_PEEK_NEXT + mod_tlen + SIZE_OP_JUMP; - else - len += SIZE_OP_PUSH + mod_tlen + SIZE_OP_JUMP; - } - else - len += SIZE_OP_JUMP + mod_tlen + SIZE_OP_PUSH; - } - else if (qn->upper == 0) { - if (qn->is_refered != 0) { /* /(?..){0}/ */ - len = SIZE_OP_JUMP + tlen; - } - else - len = 0; - } - else if (!infinite && qn->greedy && - (qn->upper == 1 || - int_multiply_cmp(tlen + SIZE_OP_PUSH, qn->upper, - QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { - len = tlen * qn->lower; - len += (SIZE_OP_PUSH + tlen) * (qn->upper - qn->lower); - } - else if (!qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ - len = SIZE_OP_PUSH + SIZE_OP_JUMP + tlen; - } - else { - len = SIZE_OP_REPEAT_INC + mod_tlen + SIZE_OP_REPEAT; - } - - return len; -} - -static int -compile_quantifier_node(QuantNode* qn, regex_t* reg, ScanEnv* env) -{ - int i, r, mod_tlen; - int infinite = IS_INFINITE_REPEAT(qn->upper); - enum BodyEmptyType emptiness = qn->emptiness; - int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); - - if (tlen < 0) return tlen; - if (tlen == 0) return 0; - - if (is_anychar_infinite_greedy(qn) && - (qn->lower <= 1 || - int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); - if (r != 0) return r; - if (IS_NOT_NULL(qn->next_head_exact)) { - r = add_op(reg, - IS_MULTILINE(CTYPE_OPTION(NODE_QUANT_BODY(qn), reg)) ? - OP_ANYCHAR_ML_STAR_PEEK_NEXT : OP_ANYCHAR_STAR_PEEK_NEXT); - if (r != 0) return r; - - COP(reg)->anychar_star_peek_next.c = STR_(qn->next_head_exact)->s[0]; - return 0; - } - else { - r = add_op(reg, - IS_MULTILINE(CTYPE_OPTION(NODE_QUANT_BODY(qn), reg)) ? - OP_ANYCHAR_ML_STAR : OP_ANYCHAR_STAR); - return r; - } - } - - mod_tlen = tlen; - if (emptiness != BODY_IS_NOT_EMPTY) - mod_tlen += SIZE_OP_EMPTY_CHECK_START + SIZE_OP_EMPTY_CHECK_END; - - if (infinite && - (qn->lower <= 1 || - int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { - int addr; - - if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) { - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - if (qn->greedy) { -#ifdef USE_OP_PUSH_OR_JUMP_EXACT - if (IS_NOT_NULL(qn->head_exact)) - COP(reg)->jump.addr = SIZE_OP_PUSH_OR_JUMP_EXACT1 + SIZE_INC_OP; - else -#endif - if (IS_NOT_NULL(qn->next_head_exact)) - COP(reg)->jump.addr = SIZE_OP_PUSH_IF_PEEK_NEXT + SIZE_INC_OP; - else - COP(reg)->jump.addr = SIZE_OP_PUSH + SIZE_INC_OP; - } - else { - COP(reg)->jump.addr = SIZE_OP_JUMP + SIZE_INC_OP; - } - } - else { - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); - if (r != 0) return r; - } - - if (qn->greedy) { -#ifdef USE_OP_PUSH_OR_JUMP_EXACT - if (IS_NOT_NULL(qn->head_exact)) { - r = add_op(reg, OP_PUSH_OR_JUMP_EXACT1); - if (r != 0) return r; - COP(reg)->push_or_jump_exact1.addr = SIZE_INC_OP + mod_tlen + SIZE_OP_JUMP; - COP(reg)->push_or_jump_exact1.c = STR_(qn->head_exact)->s[0]; - - r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env); - if (r != 0) return r; - - addr = -(mod_tlen + (int )SIZE_OP_PUSH_OR_JUMP_EXACT1); - } - else -#endif - if (IS_NOT_NULL(qn->next_head_exact)) { - r = add_op(reg, OP_PUSH_IF_PEEK_NEXT); - if (r != 0) return r; - COP(reg)->push_if_peek_next.addr = SIZE_INC_OP + mod_tlen + SIZE_OP_JUMP; - COP(reg)->push_if_peek_next.c = STR_(qn->next_head_exact)->s[0]; - - r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env); - if (r != 0) return r; - - addr = -(mod_tlen + (int )SIZE_OP_PUSH_IF_PEEK_NEXT); - } - else { - r = add_op(reg, OP_PUSH); - if (r != 0) return r; - COP(reg)->push.addr = SIZE_INC_OP + mod_tlen + SIZE_OP_JUMP; - - r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env); - if (r != 0) return r; - - addr = -(mod_tlen + (int )SIZE_OP_PUSH); - } - - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = addr; - } - else { - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = mod_tlen + SIZE_INC_OP; - - r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env); - if (r != 0) return r; - - r = add_op(reg, OP_PUSH); - if (r != 0) return r; - COP(reg)->push.addr = -mod_tlen; - } - } - else if (qn->upper == 0) { - if (qn->is_refered != 0) { /* /(?..){0}/ */ - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = tlen + SIZE_INC_OP; - - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); - } - else { - /* Nothing output */ - r = 0; - } - } - else if (! infinite && qn->greedy && - (qn->upper == 1 || - int_multiply_cmp(tlen + SIZE_OP_PUSH, qn->upper, - QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) { - int n = qn->upper - qn->lower; - - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); - if (r != 0) return r; - - for (i = 0; i < n; i++) { - int v = onig_positive_int_multiply(n - i, tlen + SIZE_OP_PUSH); - if (v < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; - - r = add_op(reg, OP_PUSH); - if (r != 0) return r; - COP(reg)->push.addr = v; - - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); - if (r != 0) return r; - } - } - else if (! qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */ - r = add_op(reg, OP_PUSH); - if (r != 0) return r; - COP(reg)->push.addr = SIZE_INC_OP + SIZE_OP_JUMP; - - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = tlen + SIZE_INC_OP; - - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); - } - else { - r = compile_range_repeat_node(qn, mod_tlen, emptiness, reg, env); - } - return r; -} - -static int -compile_length_option_node(BagNode* node, regex_t* reg) -{ - int tlen; - OnigOptionType prev = reg->options; - - reg->options = node->o.options; - tlen = compile_length_tree(NODE_BAG_BODY(node), reg); - reg->options = prev; - - return tlen; -} - -static int -compile_option_node(BagNode* node, regex_t* reg, ScanEnv* env) -{ - int r; - OnigOptionType prev = reg->options; - - reg->options = node->o.options; - r = compile_tree(NODE_BAG_BODY(node), reg, env); - reg->options = prev; - - return r; -} - -static int -compile_length_bag_node(BagNode* node, regex_t* reg) -{ - int len; - int tlen; - - if (node->type == BAG_OPTION) - return compile_length_option_node(node, reg); - - if (NODE_BAG_BODY(node)) { - tlen = compile_length_tree(NODE_BAG_BODY(node), reg); - if (tlen < 0) return tlen; - } - else - tlen = 0; - - switch (node->type) { - case BAG_MEMORY: -#ifdef USE_CALL - - if (node->m.regnum == 0 && NODE_IS_CALLED(node)) { - len = tlen + SIZE_OP_CALL + SIZE_OP_JUMP + SIZE_OP_RETURN; - return len; - } - - if (NODE_IS_CALLED(node)) { - len = SIZE_OP_MEMORY_START_PUSH + tlen - + SIZE_OP_CALL + SIZE_OP_JUMP + SIZE_OP_RETURN; - if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum)) - len += (NODE_IS_RECURSION(node) - ? SIZE_OP_MEMORY_END_PUSH_REC : SIZE_OP_MEMORY_END_PUSH); - else - len += (NODE_IS_RECURSION(node) - ? SIZE_OP_MEMORY_END_REC : SIZE_OP_MEMORY_END); - } - else if (NODE_IS_RECURSION(node)) { - len = SIZE_OP_MEMORY_START_PUSH; - len += tlen + (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum) - ? SIZE_OP_MEMORY_END_PUSH_REC : SIZE_OP_MEMORY_END_REC); - } - else -#endif - { - if (MEM_STATUS_AT0(reg->bt_mem_start, node->m.regnum)) - len = SIZE_OP_MEMORY_START_PUSH; - else - len = SIZE_OP_MEMORY_START; - - len += tlen + (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum) - ? SIZE_OP_MEMORY_END_PUSH : SIZE_OP_MEMORY_END); - } - break; - - case BAG_STOP_BACKTRACK: - if (NODE_IS_STRICT_REAL_REPEAT(node)) { - int v; - QuantNode* qn; - - qn = QUANT_(NODE_BAG_BODY(node)); - tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg); - if (tlen < 0) return tlen; - - v = onig_positive_int_multiply(qn->lower, tlen); - if (v < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; - len = v + SIZE_OP_PUSH + tlen + SIZE_OP_POP_OUT + SIZE_OP_JUMP; - } - else { - len = SIZE_OP_ATOMIC_START + tlen + SIZE_OP_ATOMIC_END; - } - break; - - case BAG_IF_ELSE: - { - Node* cond = NODE_BAG_BODY(node); - Node* Then = node->te.Then; - Node* Else = node->te.Else; - - len = compile_length_tree(cond, reg); - if (len < 0) return len; - len += SIZE_OP_PUSH; - len += SIZE_OP_ATOMIC_START + SIZE_OP_ATOMIC_END; - - if (IS_NOT_NULL(Then)) { - tlen = compile_length_tree(Then, reg); - if (tlen < 0) return tlen; - len += tlen; - } - - len += SIZE_OP_JUMP + SIZE_OP_ATOMIC_END; - - if (IS_NOT_NULL(Else)) { - tlen = compile_length_tree(Else, reg); - if (tlen < 0) return tlen; - len += tlen; - } - } - break; - - case BAG_OPTION: - /* never come here, but set for escape warning */ - len = 0; - break; - } - - return len; -} - -static int get_char_len_node(Node* node, regex_t* reg, int* len); - -static int -compile_bag_memory_node(BagNode* node, regex_t* reg, ScanEnv* env) -{ - int r; - int len; - -#ifdef USE_CALL - if (NODE_IS_CALLED(node)) { - r = add_op(reg, OP_CALL); - if (r != 0) return r; - - node->m.called_addr = COP_CURR_OFFSET(reg) + 1 + SIZE_OP_JUMP; - NODE_STATUS_ADD(node, ADDR_FIXED); - COP(reg)->call.addr = (int )node->m.called_addr; - - if (node->m.regnum == 0) { - len = compile_length_tree(NODE_BAG_BODY(node), reg); - len += SIZE_OP_RETURN; - - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = len + SIZE_INC_OP; - - r = compile_tree(NODE_BAG_BODY(node), reg, env); - if (r != 0) return r; - - r = add_op(reg, OP_RETURN); - return r; - } - else { - len = compile_length_tree(NODE_BAG_BODY(node), reg); - len += (SIZE_OP_MEMORY_START_PUSH + SIZE_OP_RETURN); - if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum)) - len += (NODE_IS_RECURSION(node) - ? SIZE_OP_MEMORY_END_PUSH_REC : SIZE_OP_MEMORY_END_PUSH); - else - len += (NODE_IS_RECURSION(node) - ? SIZE_OP_MEMORY_END_REC : SIZE_OP_MEMORY_END); - - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = len + SIZE_INC_OP; - } - } -#endif - - if (MEM_STATUS_AT0(reg->bt_mem_start, node->m.regnum)) - r = add_op(reg, OP_MEMORY_START_PUSH); - else - r = add_op(reg, OP_MEMORY_START); - if (r != 0) return r; - COP(reg)->memory_start.num = node->m.regnum; - - r = compile_tree(NODE_BAG_BODY(node), reg, env); - if (r != 0) return r; - -#ifdef USE_CALL - if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum)) - r = add_op(reg, (NODE_IS_RECURSION(node) - ? OP_MEMORY_END_PUSH_REC : OP_MEMORY_END_PUSH)); - else - r = add_op(reg, (NODE_IS_RECURSION(node) ? OP_MEMORY_END_REC : OP_MEMORY_END)); - if (r != 0) return r; - COP(reg)->memory_end.num = node->m.regnum; - - if (NODE_IS_CALLED(node)) { - if (r != 0) return r; - r = add_op(reg, OP_RETURN); - } -#else - if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum)) - r = add_op(reg, OP_MEMORY_END_PUSH); - else - r = add_op(reg, OP_MEMORY_END); - if (r != 0) return r; - COP(reg)->memory_end.num = node->m.regnum; -#endif - - return r; -} - -static int -compile_bag_node(BagNode* node, regex_t* reg, ScanEnv* env) -{ - int r, len; - - switch (node->type) { - case BAG_MEMORY: - r = compile_bag_memory_node(node, reg, env); - break; - - case BAG_OPTION: - r = compile_option_node(node, reg, env); - break; - - case BAG_STOP_BACKTRACK: - if (NODE_IS_STRICT_REAL_REPEAT(node)) { - QuantNode* qn = QUANT_(NODE_BAG_BODY(node)); - r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env); - if (r != 0) return r; - - len = compile_length_tree(NODE_QUANT_BODY(qn), reg); - if (len < 0) return len; - - r = add_op(reg, OP_PUSH); - if (r != 0) return r; - COP(reg)->push.addr = SIZE_INC_OP + len + SIZE_OP_POP_OUT + SIZE_OP_JUMP; - - r = compile_tree(NODE_QUANT_BODY(qn), reg, env); - if (r != 0) return r; - r = add_op(reg, OP_POP_OUT); - if (r != 0) return r; - - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = -((int )SIZE_OP_PUSH + len + (int )SIZE_OP_POP_OUT); - } - else { - r = add_op(reg, OP_ATOMIC_START); - if (r != 0) return r; - r = compile_tree(NODE_BAG_BODY(node), reg, env); - if (r != 0) return r; - r = add_op(reg, OP_ATOMIC_END); - } - break; - - case BAG_IF_ELSE: - { - int cond_len, then_len, else_len, jump_len; - Node* cond = NODE_BAG_BODY(node); - Node* Then = node->te.Then; - Node* Else = node->te.Else; - - r = add_op(reg, OP_ATOMIC_START); - if (r != 0) return r; - - cond_len = compile_length_tree(cond, reg); - if (cond_len < 0) return cond_len; - if (IS_NOT_NULL(Then)) { - then_len = compile_length_tree(Then, reg); - if (then_len < 0) return then_len; - } - else - then_len = 0; - - jump_len = cond_len + then_len + SIZE_OP_ATOMIC_END + SIZE_OP_JUMP; - - r = add_op(reg, OP_PUSH); - if (r != 0) return r; - COP(reg)->push.addr = SIZE_INC_OP + jump_len; - - r = compile_tree(cond, reg, env); - if (r != 0) return r; - r = add_op(reg, OP_ATOMIC_END); - if (r != 0) return r; - - if (IS_NOT_NULL(Then)) { - r = compile_tree(Then, reg, env); - if (r != 0) return r; - } - - if (IS_NOT_NULL(Else)) { - else_len = compile_length_tree(Else, reg); - if (else_len < 0) return else_len; - } - else - else_len = 0; - - r = add_op(reg, OP_JUMP); - if (r != 0) return r; - COP(reg)->jump.addr = SIZE_OP_ATOMIC_END + else_len + SIZE_INC_OP; - - r = add_op(reg, OP_ATOMIC_END); - if (r != 0) return r; - - if (IS_NOT_NULL(Else)) { - r = compile_tree(Else, reg, env); - } - } - break; - } - - return r; -} - -static int -compile_length_anchor_node(AnchorNode* node, regex_t* reg) -{ - int len; - int tlen = 0; - - if (IS_NOT_NULL(NODE_ANCHOR_BODY(node))) { - tlen = compile_length_tree(NODE_ANCHOR_BODY(node), reg); - if (tlen < 0) return tlen; - } - - switch (node->type) { - case ANCR_PREC_READ: - len = SIZE_OP_PREC_READ_START + tlen + SIZE_OP_PREC_READ_END; - break; - case ANCR_PREC_READ_NOT: - len = SIZE_OP_PREC_READ_NOT_START + tlen + SIZE_OP_PREC_READ_NOT_END; - break; - case ANCR_LOOK_BEHIND: - len = SIZE_OP_LOOK_BEHIND + tlen; - break; - case ANCR_LOOK_BEHIND_NOT: - len = SIZE_OP_LOOK_BEHIND_NOT_START + tlen + SIZE_OP_LOOK_BEHIND_NOT_END; - break; - - case ANCR_WORD_BOUNDARY: - case ANCR_NO_WORD_BOUNDARY: -#ifdef USE_WORD_BEGIN_END - case ANCR_WORD_BEGIN: - case ANCR_WORD_END: -#endif - len = SIZE_OP_WORD_BOUNDARY; - break; - - case ANCR_TEXT_SEGMENT_BOUNDARY: - case ANCR_NO_TEXT_SEGMENT_BOUNDARY: - len = SIZE_OPCODE; - break; - - default: - len = SIZE_OPCODE; - break; - } - - return len; -} - -static int -compile_anchor_node(AnchorNode* node, regex_t* reg, ScanEnv* env) -{ - int r, len; - enum OpCode op; - - switch (node->type) { - case ANCR_BEGIN_BUF: r = add_op(reg, OP_BEGIN_BUF); break; - case ANCR_END_BUF: r = add_op(reg, OP_END_BUF); break; - case ANCR_BEGIN_LINE: r = add_op(reg, OP_BEGIN_LINE); break; - case ANCR_END_LINE: r = add_op(reg, OP_END_LINE); break; - case ANCR_SEMI_END_BUF: r = add_op(reg, OP_SEMI_END_BUF); break; - case ANCR_BEGIN_POSITION: r = add_op(reg, OP_BEGIN_POSITION); break; - - case ANCR_WORD_BOUNDARY: - op = OP_WORD_BOUNDARY; - word: - r = add_op(reg, op); - if (r != 0) return r; - COP(reg)->word_boundary.mode = (ModeType )node->ascii_mode; - break; - - case ANCR_NO_WORD_BOUNDARY: - op = OP_NO_WORD_BOUNDARY; goto word; - break; -#ifdef USE_WORD_BEGIN_END - case ANCR_WORD_BEGIN: - op = OP_WORD_BEGIN; goto word; - break; - case ANCR_WORD_END: - op = OP_WORD_END; goto word; - break; -#endif - - case ANCR_TEXT_SEGMENT_BOUNDARY: - case ANCR_NO_TEXT_SEGMENT_BOUNDARY: - { - enum TextSegmentBoundaryType type; - - r = add_op(reg, OP_TEXT_SEGMENT_BOUNDARY); - if (r != 0) return r; - - type = EXTENDED_GRAPHEME_CLUSTER_BOUNDARY; -#ifdef USE_UNICODE_WORD_BREAK - if (ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_TEXT_SEGMENT_WORD)) - type = WORD_BOUNDARY; -#endif - - COP(reg)->text_segment_boundary.type = type; - COP(reg)->text_segment_boundary.not = - (node->type == ANCR_NO_TEXT_SEGMENT_BOUNDARY ? 1 : 0); - } - break; - - case ANCR_PREC_READ: - r = add_op(reg, OP_PREC_READ_START); - if (r != 0) return r; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); - if (r != 0) return r; - r = add_op(reg, OP_PREC_READ_END); - break; - - case ANCR_PREC_READ_NOT: - len = compile_length_tree(NODE_ANCHOR_BODY(node), reg); - if (len < 0) return len; - - r = add_op(reg, OP_PREC_READ_NOT_START); - if (r != 0) return r; - COP(reg)->prec_read_not_start.addr = SIZE_INC_OP + len + SIZE_OP_PREC_READ_NOT_END; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); - if (r != 0) return r; - r = add_op(reg, OP_PREC_READ_NOT_END); - break; - - case ANCR_LOOK_BEHIND: - { - int n; - r = add_op(reg, OP_LOOK_BEHIND); - if (r != 0) return r; - if (node->char_len < 0) { - r = get_char_len_node(NODE_ANCHOR_BODY(node), reg, &n); - if (r != 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN; - } - else - n = node->char_len; - - COP(reg)->look_behind.len = n; - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); - } - break; - - case ANCR_LOOK_BEHIND_NOT: - { - int n; - - len = compile_length_tree(NODE_ANCHOR_BODY(node), reg); - r = add_op(reg, OP_LOOK_BEHIND_NOT_START); - if (r != 0) return r; - COP(reg)->look_behind_not_start.addr = SIZE_INC_OP + len + SIZE_OP_LOOK_BEHIND_NOT_END; - - if (node->char_len < 0) { - r = get_char_len_node(NODE_ANCHOR_BODY(node), reg, &n); - if (r != 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN; - } - else - n = node->char_len; - - COP(reg)->look_behind_not_start.len = n; - - r = compile_tree(NODE_ANCHOR_BODY(node), reg, env); - if (r != 0) return r; - r = add_op(reg, OP_LOOK_BEHIND_NOT_END); - } - break; - - default: - return ONIGERR_TYPE_BUG; - break; - } - - return r; -} - -static int -compile_gimmick_node(GimmickNode* node, regex_t* reg) -{ - int r; - - switch (node->type) { - case GIMMICK_FAIL: - r = add_op(reg, OP_FAIL); - break; - - case GIMMICK_SAVE: - r = add_op(reg, OP_PUSH_SAVE_VAL); - if (r != 0) return r; - COP(reg)->push_save_val.type = node->detail_type; - COP(reg)->push_save_val.id = node->id; - break; - - case GIMMICK_UPDATE_VAR: - r = add_op(reg, OP_UPDATE_VAR); - if (r != 0) return r; - COP(reg)->update_var.type = node->detail_type; - COP(reg)->update_var.id = node->id; - break; - -#ifdef USE_CALLOUT - case GIMMICK_CALLOUT: - switch (node->detail_type) { - case ONIG_CALLOUT_OF_CONTENTS: - case ONIG_CALLOUT_OF_NAME: - { - if (node->detail_type == ONIG_CALLOUT_OF_NAME) { - r = add_op(reg, OP_CALLOUT_NAME); - if (r != 0) return r; - COP(reg)->callout_name.id = node->id; - COP(reg)->callout_name.num = node->num; - } - else { - r = add_op(reg, OP_CALLOUT_CONTENTS); - if (r != 0) return r; - COP(reg)->callout_contents.num = node->num; - } - } - break; - - default: - r = ONIGERR_TYPE_BUG; - break; - } -#endif - } - - return r; -} - -static int -compile_length_gimmick_node(GimmickNode* node, regex_t* reg) -{ - int len; - - switch (node->type) { - case GIMMICK_FAIL: - len = SIZE_OP_FAIL; - break; - - case GIMMICK_SAVE: - len = SIZE_OP_PUSH_SAVE_VAL; - break; - - case GIMMICK_UPDATE_VAR: - len = SIZE_OP_UPDATE_VAR; - break; - -#ifdef USE_CALLOUT - case GIMMICK_CALLOUT: - switch (node->detail_type) { - case ONIG_CALLOUT_OF_CONTENTS: - len = SIZE_OP_CALLOUT_CONTENTS; - break; - case ONIG_CALLOUT_OF_NAME: - len = SIZE_OP_CALLOUT_NAME; - break; - - default: - len = ONIGERR_TYPE_BUG; - break; - } - break; -#endif - } - - return len; -} - -static int -compile_length_tree(Node* node, regex_t* reg) -{ - int len, r; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - len = 0; - do { - r = compile_length_tree(NODE_CAR(node), reg); - if (r < 0) return r; - len += r; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - r = len; - break; - - case NODE_ALT: - { - int n; - - n = r = 0; - do { - r += compile_length_tree(NODE_CAR(node), reg); - n++; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - r += (SIZE_OP_PUSH + SIZE_OP_JUMP) * (n - 1); - } - break; - - case NODE_STRING: - if (NODE_STRING_IS_RAW(node)) - r = compile_length_string_raw_node(STR_(node), reg); - else - r = compile_length_string_node(node, reg); - break; - - case NODE_CCLASS: - r = compile_length_cclass_node(CCLASS_(node), reg); - break; - - case NODE_CTYPE: - r = SIZE_OPCODE; - break; - - case NODE_BACKREF: - r = SIZE_OP_BACKREF; - break; - -#ifdef USE_CALL - case NODE_CALL: - r = SIZE_OP_CALL; - break; -#endif - - case NODE_QUANT: - r = compile_length_quantifier_node(QUANT_(node), reg); - break; - - case NODE_BAG: - r = compile_length_bag_node(BAG_(node), reg); - break; - - case NODE_ANCHOR: - r = compile_length_anchor_node(ANCHOR_(node), reg); - break; - - case NODE_GIMMICK: - r = compile_length_gimmick_node(GIMMICK_(node), reg); - break; - - default: - return ONIGERR_TYPE_BUG; - break; - } - - return r; -} - -static int -compile_tree(Node* node, regex_t* reg, ScanEnv* env) -{ - int n, len, pos, r = 0; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - do { - r = compile_tree(NODE_CAR(node), reg, env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ALT: - { - Node* x = node; - len = 0; - do { - len += compile_length_tree(NODE_CAR(x), reg); - if (IS_NOT_NULL(NODE_CDR(x))) { - len += SIZE_OP_PUSH + SIZE_OP_JUMP; - } - } while (IS_NOT_NULL(x = NODE_CDR(x))); - pos = COP_CURR_OFFSET(reg) + 1 + len; /* goal position */ - - do { - len = compile_length_tree(NODE_CAR(node), reg); - if (IS_NOT_NULL(NODE_CDR(node))) { - enum OpCode push = NODE_IS_SUPER(node) ? OP_PUSH_SUPER : OP_PUSH; - r = add_op(reg, push); - if (r != 0) break; - COP(reg)->push.addr = SIZE_INC_OP + len + SIZE_OP_JUMP; - } - r = compile_tree(NODE_CAR(node), reg, env); - if (r != 0) break; - if (IS_NOT_NULL(NODE_CDR(node))) { - len = pos - (COP_CURR_OFFSET(reg) + 1); - r = add_op(reg, OP_JUMP); - if (r != 0) break; - COP(reg)->jump.addr = len; - } - } while (IS_NOT_NULL(node = NODE_CDR(node))); - } - break; - - case NODE_STRING: - if (NODE_STRING_IS_RAW(node)) - r = compile_string_raw_node(STR_(node), reg); - else - r = compile_string_node(node, reg); - break; - - case NODE_CCLASS: - r = compile_cclass_node(CCLASS_(node), reg); - break; - - case NODE_CTYPE: - { - int op; - - switch (CTYPE_(node)->ctype) { - case CTYPE_ANYCHAR: - r = add_op(reg, IS_MULTILINE(CTYPE_OPTION(node, reg)) ? - OP_ANYCHAR_ML : OP_ANYCHAR); - break; - - case ONIGENC_CTYPE_WORD: - if (CTYPE_(node)->ascii_mode == 0) { - op = CTYPE_(node)->not != 0 ? OP_NO_WORD : OP_WORD; - } - else { - op = CTYPE_(node)->not != 0 ? OP_NO_WORD_ASCII : OP_WORD_ASCII; - } - r = add_op(reg, op); - break; - - default: - return ONIGERR_TYPE_BUG; - break; - } - } - break; - - case NODE_BACKREF: - { - BackRefNode* br = BACKREF_(node); - - if (NODE_IS_CHECKER(node)) { -#ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { - r = add_op(reg, OP_BACKREF_CHECK_WITH_LEVEL); - if (r != 0) return r; - COP(reg)->backref_general.nest_level = br->nest_level; - } - else -#endif - { - r = add_op(reg, OP_BACKREF_CHECK); - if (r != 0) return r; - } - goto add_bacref_mems; - } - else { -#ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { - if ((reg->options & ONIG_OPTION_IGNORECASE) != 0) - r = add_op(reg, OP_BACKREF_WITH_LEVEL_IC); - else - r = add_op(reg, OP_BACKREF_WITH_LEVEL); - - if (r != 0) return r; - COP(reg)->backref_general.nest_level = br->nest_level; - goto add_bacref_mems; - } - else -#endif - if (br->back_num == 1) { - n = br->back_static[0]; - if (IS_IGNORECASE(reg->options)) { - r = add_op(reg, OP_BACKREF_N_IC); - if (r != 0) return r; - COP(reg)->backref_n.n1 = n; - } - else { - switch (n) { - case 1: r = add_op(reg, OP_BACKREF1); break; - case 2: r = add_op(reg, OP_BACKREF2); break; - default: - r = add_op(reg, OP_BACKREF_N); - if (r != 0) return r; - COP(reg)->backref_n.n1 = n; - break; - } - } - } - else { - int num; - int* p; - - r = add_op(reg, IS_IGNORECASE(reg->options) ? - OP_BACKREF_MULTI_IC : OP_BACKREF_MULTI); - if (r != 0) return r; - - add_bacref_mems: - num = br->back_num; - COP(reg)->backref_general.num = num; - if (num == 1) { - COP(reg)->backref_general.n1 = br->back_static[0]; - } - else { - int i, j; - MemNumType* ns; - - ns = xmalloc(sizeof(MemNumType) * num); - CHECK_NULL_RETURN_MEMERR(ns); - COP(reg)->backref_general.ns = ns; - p = BACKREFS_P(br); - for (i = num - 1, j = 0; i >= 0; i--, j++) { - ns[j] = p[i]; - } - } - } - } - } - break; - -#ifdef USE_CALL - case NODE_CALL: - r = compile_call(CALL_(node), reg, env); - break; -#endif - - case NODE_QUANT: - r = compile_quantifier_node(QUANT_(node), reg, env); - break; - - case NODE_BAG: - r = compile_bag_node(BAG_(node), reg, env); - break; - - case NODE_ANCHOR: - r = compile_anchor_node(ANCHOR_(node), reg, env); - break; - - case NODE_GIMMICK: - r = compile_gimmick_node(GIMMICK_(node), reg); - break; - - default: -#ifdef ONIG_DEBUG - fprintf(stderr, "compile_tree: undefined node type %d\n", NODE_TYPE(node)); -#endif - break; - } - - return r; -} - -static int -noname_disable_map(Node** plink, GroupNumRemap* map, int* counter) -{ - int r = 0; - Node* node = *plink; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - r = noname_disable_map(&(NODE_CAR(node)), map, counter); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_QUANT: - { - Node** ptarget = &(NODE_BODY(node)); - Node* old = *ptarget; - r = noname_disable_map(ptarget, map, counter); - if (*ptarget != old && NODE_TYPE(*ptarget) == NODE_QUANT) { - onig_reduce_nested_quantifier(node, *ptarget); - } - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - if (en->type == BAG_MEMORY) { - if (NODE_IS_NAMED_GROUP(node)) { - (*counter)++; - map[en->m.regnum].new_val = *counter; - en->m.regnum = *counter; - r = noname_disable_map(&(NODE_BODY(node)), map, counter); - } - else { - *plink = NODE_BODY(node); - NODE_BODY(node) = NULL_NODE; - onig_node_free(node); - r = noname_disable_map(plink, map, counter); - } - } - else if (en->type == BAG_IF_ELSE) { - r = noname_disable_map(&(NODE_BAG_BODY(en)), map, counter); - if (r != 0) return r; - if (IS_NOT_NULL(en->te.Then)) { - r = noname_disable_map(&(en->te.Then), map, counter); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) { - r = noname_disable_map(&(en->te.Else), map, counter); - if (r != 0) return r; - } - } - else - r = noname_disable_map(&(NODE_BODY(node)), map, counter); - } - break; - - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) - r = noname_disable_map(&(NODE_BODY(node)), map, counter); - break; - - default: - break; - } - - return r; -} - -static int -renumber_node_backref(Node* node, GroupNumRemap* map) -{ - int i, pos, n, old_num; - int *backs; - BackRefNode* bn = BACKREF_(node); - - if (! NODE_IS_BY_NAME(node)) - return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; - - old_num = bn->back_num; - if (IS_NULL(bn->back_dynamic)) - backs = bn->back_static; - else - backs = bn->back_dynamic; - - for (i = 0, pos = 0; i < old_num; i++) { - n = map[backs[i]].new_val; - if (n > 0) { - backs[pos] = n; - pos++; - } - } - - bn->back_num = pos; - return 0; -} - -static int -renumber_by_map(Node* node, GroupNumRemap* map) -{ - int r = 0; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - r = renumber_by_map(NODE_CAR(node), map); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_QUANT: - r = renumber_by_map(NODE_BODY(node), map); - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - r = renumber_by_map(NODE_BODY(node), map); - if (r != 0) return r; - - if (en->type == BAG_IF_ELSE) { - if (IS_NOT_NULL(en->te.Then)) { - r = renumber_by_map(en->te.Then, map); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) { - r = renumber_by_map(en->te.Else, map); - if (r != 0) return r; - } - } - } - break; - - case NODE_BACKREF: - r = renumber_node_backref(node, map); - break; - - case NODE_ANCHOR: - if (IS_NOT_NULL(NODE_BODY(node))) - r = renumber_by_map(NODE_BODY(node), map); - break; - - default: - break; - } - - return r; -} - -static int -numbered_ref_check(Node* node) -{ - int r = 0; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - r = numbered_ref_check(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ANCHOR: - if (IS_NULL(NODE_BODY(node))) - break; - /* fall */ - case NODE_QUANT: - r = numbered_ref_check(NODE_BODY(node)); - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - r = numbered_ref_check(NODE_BODY(node)); - if (r != 0) return r; - - if (en->type == BAG_IF_ELSE) { - if (IS_NOT_NULL(en->te.Then)) { - r = numbered_ref_check(en->te.Then); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) { - r = numbered_ref_check(en->te.Else); - if (r != 0) return r; - } - } - } - - break; - - case NODE_BACKREF: - if (! NODE_IS_BY_NAME(node)) - return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; - break; - - default: - break; - } - - return r; -} - -static int -disable_noname_group_capture(Node** root, regex_t* reg, ScanEnv* env) -{ - int r, i, pos, counter; - int result; - MemStatusType loc; - GroupNumRemap* map; - - map = (GroupNumRemap* )xmalloc(sizeof(GroupNumRemap) * (env->num_mem + 1)); - CHECK_NULL_RETURN_MEMERR(map); - for (i = 1; i <= env->num_mem; i++) { - map[i].new_val = 0; - } - counter = 0; - r = noname_disable_map(root, map, &counter); - if (r != 0) return r; - - r = renumber_by_map(*root, map); - if (r != 0) return r; - - for (i = 1, pos = 1; i <= env->num_mem; i++) { - if (map[i].new_val > 0) { - SCANENV_MEMENV(env)[pos] = SCANENV_MEMENV(env)[i]; - pos++; - } - } - - loc = env->capture_history; - MEM_STATUS_CLEAR(env->capture_history); - for (i = 1; i <= ONIG_MAX_CAPTURE_HISTORY_GROUP; i++) { - if (MEM_STATUS_AT(loc, i)) { - MEM_STATUS_ON_SIMPLE(env->capture_history, map[i].new_val); - } - } - - env->num_mem = env->num_named; - reg->num_mem = env->num_named; - result = onig_renumber_name_table(reg, map); - xfree(map); - return result; -} - -#ifdef USE_CALL -static int -fix_unset_addr_list(UnsetAddrList* uslist, regex_t* reg) -{ - int i, offset; - BagNode* en; - AbsAddrType addr; - AbsAddrType* paddr; - - for (i = 0; i < uslist->num; i++) { - if (! NODE_IS_ADDR_FIXED(uslist->us[i].target)) - return ONIGERR_PARSER_BUG; - - en = BAG_(uslist->us[i].target); - addr = en->m.called_addr; - offset = uslist->us[i].offset; - - paddr = (AbsAddrType* )((char* )reg->ops + offset); - *paddr = addr; - } - return 0; -} -#endif - - -#define GET_CHAR_LEN_VARLEN -1 -#define GET_CHAR_LEN_TOP_ALT_VARLEN -2 - -/* fixed size pattern node only */ -static int -get_char_len_node1(Node* node, regex_t* reg, int* len, int level) -{ - int tlen; - int r = 0; - - level++; - *len = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - do { - r = get_char_len_node1(NODE_CAR(node), reg, &tlen, level); - if (r == 0) - *len = distance_add(*len, tlen); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ALT: - { - int tlen2; - int varlen = 0; - - r = get_char_len_node1(NODE_CAR(node), reg, &tlen, level); - while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))) { - r = get_char_len_node1(NODE_CAR(node), reg, &tlen2, level); - if (r == 0) { - if (tlen != tlen2) - varlen = 1; - } - } - if (r == 0) { - if (varlen != 0) { - if (level == 1) - r = GET_CHAR_LEN_TOP_ALT_VARLEN; - else - r = GET_CHAR_LEN_VARLEN; - } - else - *len = tlen; - } - } - break; - - case NODE_STRING: - { - StrNode* sn = STR_(node); - UChar *s = sn->s; - - while (s < sn->end) { - s += enclen(reg->enc, s); - (*len)++; - } - } - break; - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - - if (qn->lower == qn->upper) { - if (qn->upper == 0) { - *len = 0; - } - else { - r = get_char_len_node1(NODE_BODY(node), reg, &tlen, level); - if (r == 0) - *len = distance_multiply(tlen, qn->lower); - } - } - else - r = GET_CHAR_LEN_VARLEN; - } - break; - -#ifdef USE_CALL - case NODE_CALL: - if (! NODE_IS_RECURSION(node)) - r = get_char_len_node1(NODE_BODY(node), reg, len, level); - else - r = GET_CHAR_LEN_VARLEN; - break; -#endif - - case NODE_CTYPE: - case NODE_CCLASS: - *len = 1; - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - switch (en->type) { - case BAG_MEMORY: -#ifdef USE_CALL - if (NODE_IS_CLEN_FIXED(node)) - *len = en->char_len; - else { - r = get_char_len_node1(NODE_BODY(node), reg, len, level); - if (r == 0) { - en->char_len = *len; - NODE_STATUS_ADD(node, CLEN_FIXED); - } - } - break; -#endif - case BAG_OPTION: - case BAG_STOP_BACKTRACK: - r = get_char_len_node1(NODE_BODY(node), reg, len, level); - break; - case BAG_IF_ELSE: - { - int clen, elen; - - r = get_char_len_node1(NODE_BODY(node), reg, &clen, level); - if (r == 0) { - if (IS_NOT_NULL(en->te.Then)) { - r = get_char_len_node1(en->te.Then, reg, &tlen, level); - if (r != 0) break; - } - else tlen = 0; - if (IS_NOT_NULL(en->te.Else)) { - r = get_char_len_node1(en->te.Else, reg, &elen, level); - if (r != 0) break; - } - else elen = 0; - - if (clen + tlen != elen) { - r = GET_CHAR_LEN_VARLEN; - } - else { - *len = elen; - } - } - } - break; - } - } - break; - - case NODE_ANCHOR: - case NODE_GIMMICK: - break; - - case NODE_BACKREF: - if (NODE_IS_CHECKER(node)) - break; - /* fall */ - default: - r = GET_CHAR_LEN_VARLEN; - break; - } - - return r; -} - -static int -get_char_len_node(Node* node, regex_t* reg, int* len) -{ - return get_char_len_node1(node, reg, len, 0); -} - -/* x is not included y ==> 1 : 0 */ -static int -is_exclusive(Node* x, Node* y, regex_t* reg) -{ - int i, len; - OnigCodePoint code; - UChar *p; - NodeType ytype; - - retry: - ytype = NODE_TYPE(y); - switch (NODE_TYPE(x)) { - case NODE_CTYPE: - { - if (CTYPE_(x)->ctype == CTYPE_ANYCHAR || - CTYPE_(y)->ctype == CTYPE_ANYCHAR) - break; - - switch (ytype) { - case NODE_CTYPE: - if (CTYPE_(y)->ctype == CTYPE_(x)->ctype && - CTYPE_(y)->not != CTYPE_(x)->not && - CTYPE_(y)->ascii_mode == CTYPE_(x)->ascii_mode) - return 1; - else - return 0; - break; - - case NODE_CCLASS: - swap: - { - Node* tmp; - tmp = x; x = y; y = tmp; - goto retry; - } - break; - - case NODE_STRING: - goto swap; - break; - - default: - break; - } - } - break; - - case NODE_CCLASS: - { - int range; - CClassNode* xc = CCLASS_(x); - - switch (ytype) { - case NODE_CTYPE: - switch (CTYPE_(y)->ctype) { - case CTYPE_ANYCHAR: - return 0; - break; - - case ONIGENC_CTYPE_WORD: - if (CTYPE_(y)->not == 0) { - if (IS_NULL(xc->mbuf) && !IS_NCCLASS_NOT(xc)) { - range = CTYPE_(y)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE; - for (i = 0; i < range; i++) { - if (BITSET_AT(xc->bs, i)) { - if (ONIGENC_IS_CODE_WORD(reg->enc, i)) return 0; - } - } - return 1; - } - return 0; - } - else { - if (IS_NOT_NULL(xc->mbuf)) return 0; - if (IS_NCCLASS_NOT(xc)) return 0; - - range = CTYPE_(y)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE; - for (i = 0; i < range; i++) { - if (! ONIGENC_IS_CODE_WORD(reg->enc, i)) { - if (BITSET_AT(xc->bs, i)) - return 0; - } - } - for (i = range; i < SINGLE_BYTE_SIZE; i++) { - if (BITSET_AT(xc->bs, i)) return 0; - } - return 1; - } - break; - - default: - break; - } - break; - - case NODE_CCLASS: - { - int v; - CClassNode* yc = CCLASS_(y); - - for (i = 0; i < SINGLE_BYTE_SIZE; i++) { - v = BITSET_AT(xc->bs, i); - if ((v != 0 && !IS_NCCLASS_NOT(xc)) || (v == 0 && IS_NCCLASS_NOT(xc))) { - v = BITSET_AT(yc->bs, i); - if ((v != 0 && !IS_NCCLASS_NOT(yc)) || - (v == 0 && IS_NCCLASS_NOT(yc))) - return 0; - } - } - if ((IS_NULL(xc->mbuf) && !IS_NCCLASS_NOT(xc)) || - (IS_NULL(yc->mbuf) && !IS_NCCLASS_NOT(yc))) - return 1; - return 0; - } - break; - - case NODE_STRING: - goto swap; - break; - - default: - break; - } - } - break; - - case NODE_STRING: - { - StrNode* xs = STR_(x); - - if (NODE_STRING_LEN(x) == 0) - break; - - switch (ytype) { - case NODE_CTYPE: - switch (CTYPE_(y)->ctype) { - case CTYPE_ANYCHAR: - break; - - case ONIGENC_CTYPE_WORD: - if (CTYPE_(y)->ascii_mode == 0) { - if (ONIGENC_IS_MBC_WORD(reg->enc, xs->s, xs->end)) - return CTYPE_(y)->not; - else - return !(CTYPE_(y)->not); - } - else { - if (ONIGENC_IS_MBC_WORD_ASCII(reg->enc, xs->s, xs->end)) - return CTYPE_(y)->not; - else - return !(CTYPE_(y)->not); - } - break; - default: - break; - } - break; - - case NODE_CCLASS: - { - CClassNode* cc = CCLASS_(y); - - code = ONIGENC_MBC_TO_CODE(reg->enc, xs->s, - xs->s + ONIGENC_MBC_MAXLEN(reg->enc)); - return onig_is_code_in_cc(reg->enc, code, cc) == 0; - } - break; - - case NODE_STRING: - { - UChar *q; - StrNode* ys = STR_(y); - - len = NODE_STRING_LEN(x); - if (len > NODE_STRING_LEN(y)) len = NODE_STRING_LEN(y); - if (NODE_STRING_IS_AMBIG(x) || NODE_STRING_IS_AMBIG(y)) { - /* tiny version */ - return 0; - } - else { - for (i = 0, p = ys->s, q = xs->s; i < len; i++, p++, q++) { - if (*p != *q) return 1; - } - } - } - break; - - default: - break; - } - } - break; - - default: - break; - } - - return 0; -} - -static Node* -get_head_value_node(Node* node, int exact, regex_t* reg) -{ - Node* n = NULL_NODE; - - switch (NODE_TYPE(node)) { - case NODE_BACKREF: - case NODE_ALT: -#ifdef USE_CALL - case NODE_CALL: -#endif - break; - - case NODE_CTYPE: - if (CTYPE_(node)->ctype == CTYPE_ANYCHAR) - break; - /* fall */ - case NODE_CCLASS: - if (exact == 0) { - n = node; - } - break; - - case NODE_LIST: - n = get_head_value_node(NODE_CAR(node), exact, reg); - break; - - case NODE_STRING: - { - StrNode* sn = STR_(node); - - if (sn->end <= sn->s) - break; - - if (exact == 0 || - ! IS_IGNORECASE(reg->options) || NODE_STRING_IS_RAW(node)) { - n = node; - } - } - break; - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - if (qn->lower > 0) { - if (IS_NOT_NULL(qn->head_exact)) - n = qn->head_exact; - else - n = get_head_value_node(NODE_BODY(node), exact, reg); - } - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - switch (en->type) { - case BAG_OPTION: - { - OnigOptionType options = reg->options; - - reg->options = BAG_(node)->o.options; - n = get_head_value_node(NODE_BODY(node), exact, reg); - reg->options = options; - } - break; - - case BAG_MEMORY: - case BAG_STOP_BACKTRACK: - case BAG_IF_ELSE: - n = get_head_value_node(NODE_BODY(node), exact, reg); - break; - } - } - break; - - case NODE_ANCHOR: - if (ANCHOR_(node)->type == ANCR_PREC_READ) - n = get_head_value_node(NODE_BODY(node), exact, reg); - break; - - case NODE_GIMMICK: - default: - break; - } - - return n; -} - -static int -check_type_tree(Node* node, int type_mask, int bag_mask, int anchor_mask) -{ - NodeType type; - int r = 0; - - type = NODE_TYPE(node); - if ((NODE_TYPE2BIT(type) & type_mask) == 0) - return 1; - - switch (type) { - case NODE_LIST: - case NODE_ALT: - do { - r = check_type_tree(NODE_CAR(node), type_mask, bag_mask, anchor_mask); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_QUANT: - r = check_type_tree(NODE_BODY(node), type_mask, bag_mask, anchor_mask); - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - if (((1<type) & bag_mask) == 0) - return 1; - - r = check_type_tree(NODE_BODY(node), type_mask, bag_mask, anchor_mask); - if (r == 0 && en->type == BAG_IF_ELSE) { - if (IS_NOT_NULL(en->te.Then)) { - r = check_type_tree(en->te.Then, type_mask, bag_mask, anchor_mask); - if (r != 0) break; - } - if (IS_NOT_NULL(en->te.Else)) { - r = check_type_tree(en->te.Else, type_mask, bag_mask, anchor_mask); - } - } - } - break; - - case NODE_ANCHOR: - type = ANCHOR_(node)->type; - if ((type & anchor_mask) == 0) - return 1; - - if (IS_NOT_NULL(NODE_BODY(node))) - r = check_type_tree(NODE_BODY(node), type_mask, bag_mask, anchor_mask); - break; - - case NODE_GIMMICK: - default: - break; - } - return r; -} - -static OnigLen -tree_min_len(Node* node, ScanEnv* env) -{ - OnigLen len; - OnigLen tmin; - - len = 0; - switch (NODE_TYPE(node)) { - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { - int i; - int* backs; - MemEnv* mem_env = SCANENV_MEMENV(env); - BackRefNode* br = BACKREF_(node); - if (NODE_IS_RECURSION(node)) break; - - backs = BACKREFS_P(br); - len = tree_min_len(mem_env[backs[0]].node, env); - for (i = 1; i < br->back_num; i++) { - tmin = tree_min_len(mem_env[backs[i]].node, env); - if (len > tmin) len = tmin; - } - } - break; - -#ifdef USE_CALL - case NODE_CALL: - { - Node* t = NODE_BODY(node); - if (NODE_IS_RECURSION(node)) { - if (NODE_IS_MIN_FIXED(t)) - len = BAG_(t)->min_len; - } - else - len = tree_min_len(t, env); - } - break; -#endif - - case NODE_LIST: - do { - tmin = tree_min_len(NODE_CAR(node), env); - len = distance_add(len, tmin); - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ALT: - { - Node *x, *y; - y = node; - do { - x = NODE_CAR(y); - tmin = tree_min_len(x, env); - if (y == node) len = tmin; - else if (len > tmin) len = tmin; - } while (IS_NOT_NULL(y = NODE_CDR(y))); - } - break; - - case NODE_STRING: - { - StrNode* sn = STR_(node); - len = (int )(sn->end - sn->s); - } - break; - - case NODE_CTYPE: - case NODE_CCLASS: - len = ONIGENC_MBC_MINLEN(env->enc); - break; - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - - if (qn->lower > 0) { - len = tree_min_len(NODE_BODY(node), env); - len = distance_multiply(len, qn->lower); - } - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - switch (en->type) { - case BAG_MEMORY: - if (NODE_IS_MIN_FIXED(node)) - len = en->min_len; - else { - if (NODE_IS_MARK1(node)) - len = 0; /* recursive */ - else { - NODE_STATUS_ADD(node, MARK1); - len = tree_min_len(NODE_BODY(node), env); - NODE_STATUS_REMOVE(node, MARK1); - - en->min_len = len; - NODE_STATUS_ADD(node, MIN_FIXED); - } - } - break; - - case BAG_OPTION: - case BAG_STOP_BACKTRACK: - len = tree_min_len(NODE_BODY(node), env); - break; - case BAG_IF_ELSE: - { - OnigLen elen; - - len = tree_min_len(NODE_BODY(node), env); - if (IS_NOT_NULL(en->te.Then)) - len += tree_min_len(en->te.Then, env); - if (IS_NOT_NULL(en->te.Else)) - elen = tree_min_len(en->te.Else, env); - else elen = 0; - - if (elen < len) len = elen; - } - break; - } - } - break; - - case NODE_GIMMICK: - { - GimmickNode* g = GIMMICK_(node); - if (g->type == GIMMICK_FAIL) { - len = INFINITE_LEN; - break; - } - } - /* fall */ - case NODE_ANCHOR: - default: - break; - } - - return len; -} - -static OnigLen -tree_max_len(Node* node, ScanEnv* env) -{ - OnigLen len; - OnigLen tmax; - - len = 0; - switch (NODE_TYPE(node)) { - case NODE_LIST: - do { - tmax = tree_max_len(NODE_CAR(node), env); - len = distance_add(len, tmax); - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ALT: - do { - tmax = tree_max_len(NODE_CAR(node), env); - if (len < tmax) len = tmax; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_STRING: - { - StrNode* sn = STR_(node); - len = (OnigLen )(sn->end - sn->s); - } - break; - - case NODE_CTYPE: - case NODE_CCLASS: - len = ONIGENC_MBC_MAXLEN_DIST(env->enc); - break; - - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { - int i; - int* backs; - MemEnv* mem_env = SCANENV_MEMENV(env); - BackRefNode* br = BACKREF_(node); - if (NODE_IS_RECURSION(node)) { - len = INFINITE_LEN; - break; - } - backs = BACKREFS_P(br); - for (i = 0; i < br->back_num; i++) { - tmax = tree_max_len(mem_env[backs[i]].node, env); - if (len < tmax) len = tmax; - } - } - break; - -#ifdef USE_CALL - case NODE_CALL: - if (! NODE_IS_RECURSION(node)) - len = tree_max_len(NODE_BODY(node), env); - else - len = INFINITE_LEN; - break; -#endif - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - - if (qn->upper != 0) { - len = tree_max_len(NODE_BODY(node), env); - if (len != 0) { - if (! IS_INFINITE_REPEAT(qn->upper)) - len = distance_multiply(len, qn->upper); - else - len = INFINITE_LEN; - } - } - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - switch (en->type) { - case BAG_MEMORY: - if (NODE_IS_MAX_FIXED(node)) - len = en->max_len; - else { - if (NODE_IS_MARK1(node)) - len = INFINITE_LEN; - else { - NODE_STATUS_ADD(node, MARK1); - len = tree_max_len(NODE_BODY(node), env); - NODE_STATUS_REMOVE(node, MARK1); - - en->max_len = len; - NODE_STATUS_ADD(node, MAX_FIXED); - } - } - break; - - case BAG_OPTION: - case BAG_STOP_BACKTRACK: - len = tree_max_len(NODE_BODY(node), env); - break; - case BAG_IF_ELSE: - { - OnigLen tlen, elen; - - len = tree_max_len(NODE_BODY(node), env); - if (IS_NOT_NULL(en->te.Then)) { - tlen = tree_max_len(en->te.Then, env); - len = distance_add(len, tlen); - } - if (IS_NOT_NULL(en->te.Else)) - elen = tree_max_len(en->te.Else, env); - else elen = 0; - - if (elen > len) len = elen; - } - break; - } - } - break; - - case NODE_ANCHOR: - case NODE_GIMMICK: - default: - break; - } - - return len; -} - -static int -check_backrefs(Node* node, ScanEnv* env) -{ - int r; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - r = check_backrefs(NODE_CAR(node), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ANCHOR: - if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { - r = 0; - break; - } - /* fall */ - case NODE_QUANT: - r = check_backrefs(NODE_BODY(node), env); - break; - - case NODE_BAG: - r = check_backrefs(NODE_BODY(node), env); - { - BagNode* en = BAG_(node); - - if (en->type == BAG_IF_ELSE) { - if (r != 0) return r; - if (IS_NOT_NULL(en->te.Then)) { - r = check_backrefs(en->te.Then, env); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) { - r = check_backrefs(en->te.Else, env); - } - } - } - break; - - case NODE_BACKREF: - { - int i; - BackRefNode* br = BACKREF_(node); - int* backs = BACKREFS_P(br); - MemEnv* mem_env = SCANENV_MEMENV(env); - - for (i = 0; i < br->back_num; i++) { - if (backs[i] > env->num_mem) - return ONIGERR_INVALID_BACKREF; - - NODE_STATUS_ADD(mem_env[backs[i]].node, BACKREF); - } - r = 0; - } - break; - - default: - r = 0; - break; - } - - return r; -} - - -#ifdef USE_CALL - -#define RECURSION_EXIST (1<<0) -#define RECURSION_MUST (1<<1) -#define RECURSION_INFINITE (1<<2) - -static int -infinite_recursive_call_check(Node* node, ScanEnv* env, int head) -{ - int ret; - int r = 0; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - { - Node *x; - OnigLen min; - - x = node; - do { - ret = infinite_recursive_call_check(NODE_CAR(x), env, head); - if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; - r |= ret; - if (head != 0) { - min = tree_min_len(NODE_CAR(x), env); - if (min != 0) head = 0; - } - } while (IS_NOT_NULL(x = NODE_CDR(x))); - } - break; - - case NODE_ALT: - { - int must; - - must = RECURSION_MUST; - do { - ret = infinite_recursive_call_check(NODE_CAR(node), env, head); - if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; - - r |= (ret & RECURSION_EXIST); - must &= ret; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - r |= must; - } - break; - - case NODE_QUANT: - r = infinite_recursive_call_check(NODE_BODY(node), env, head); - if (r < 0) return r; - if ((r & RECURSION_MUST) != 0) { - if (QUANT_(node)->lower == 0) - r &= ~RECURSION_MUST; - } - break; - - case NODE_ANCHOR: - if (! ANCHOR_HAS_BODY(ANCHOR_(node))) - break; - /* fall */ - case NODE_CALL: - r = infinite_recursive_call_check(NODE_BODY(node), env, head); - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK2(node)) - return 0; - else if (NODE_IS_MARK1(node)) - return (head == 0 ? RECURSION_EXIST | RECURSION_MUST - : RECURSION_EXIST | RECURSION_MUST | RECURSION_INFINITE); - else { - NODE_STATUS_ADD(node, MARK2); - r = infinite_recursive_call_check(NODE_BODY(node), env, head); - NODE_STATUS_REMOVE(node, MARK2); - } - } - else if (en->type == BAG_IF_ELSE) { - int eret; - - ret = infinite_recursive_call_check(NODE_BODY(node), env, head); - if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; - r |= ret; - if (IS_NOT_NULL(en->te.Then)) { - OnigLen min; - if (head != 0) { - min = tree_min_len(NODE_BODY(node), env); - } - else min = 0; - - ret = infinite_recursive_call_check(en->te.Then, env, min != 0 ? 0:head); - if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret; - r |= ret; - } - if (IS_NOT_NULL(en->te.Else)) { - eret = infinite_recursive_call_check(en->te.Else, env, head); - if (eret < 0 || (eret & RECURSION_INFINITE) != 0) return eret; - r |= (eret & RECURSION_EXIST); - if ((eret & RECURSION_MUST) == 0) - r &= ~RECURSION_MUST; - } - } - else { - r = infinite_recursive_call_check(NODE_BODY(node), env, head); - } - } - break; - - default: - break; - } - - return r; -} - -static int -infinite_recursive_call_check_trav(Node* node, ScanEnv* env) -{ - int r; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - r = infinite_recursive_call_check_trav(NODE_CAR(node), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ANCHOR: - if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { - r = 0; - break; - } - /* fall */ - case NODE_QUANT: - r = infinite_recursive_call_check_trav(NODE_BODY(node), env); - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - if (en->type == BAG_MEMORY) { - if (NODE_IS_RECURSION(node) && NODE_IS_CALLED(node)) { - int ret; - - NODE_STATUS_ADD(node, MARK1); - - ret = infinite_recursive_call_check(NODE_BODY(node), env, 1); - if (ret < 0) return ret; - else if ((ret & (RECURSION_MUST | RECURSION_INFINITE)) != 0) - return ONIGERR_NEVER_ENDING_RECURSION; - - NODE_STATUS_REMOVE(node, MARK1); - } - } - else if (en->type == BAG_IF_ELSE) { - if (IS_NOT_NULL(en->te.Then)) { - r = infinite_recursive_call_check_trav(en->te.Then, env); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) { - r = infinite_recursive_call_check_trav(en->te.Else, env); - if (r != 0) return r; - } - } - } - - r = infinite_recursive_call_check_trav(NODE_BODY(node), env); - break; - - default: - r = 0; - break; - } - - return r; -} - -static int -recursive_call_check(Node* node) -{ - int r; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - r = 0; - do { - r |= recursive_call_check(NODE_CAR(node)); - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_ANCHOR: - if (! ANCHOR_HAS_BODY(ANCHOR_(node))) { - r = 0; - break; - } - /* fall */ - case NODE_QUANT: - r = recursive_call_check(NODE_BODY(node)); - break; - - case NODE_CALL: - r = recursive_call_check(NODE_BODY(node)); - if (r != 0) { - if (NODE_IS_MARK1(NODE_BODY(node))) - NODE_STATUS_ADD(node, RECURSION); - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK2(node)) - return 0; - else if (NODE_IS_MARK1(node)) - return 1; /* recursion */ - else { - NODE_STATUS_ADD(node, MARK2); - r = recursive_call_check(NODE_BODY(node)); - NODE_STATUS_REMOVE(node, MARK2); - } - } - else if (en->type == BAG_IF_ELSE) { - r = 0; - if (IS_NOT_NULL(en->te.Then)) { - r |= recursive_call_check(en->te.Then); - } - if (IS_NOT_NULL(en->te.Else)) { - r |= recursive_call_check(en->te.Else); - } - r |= recursive_call_check(NODE_BODY(node)); - } - else { - r = recursive_call_check(NODE_BODY(node)); - } - } - break; - - default: - r = 0; - break; - } - - return r; -} - -#define IN_RECURSION (1<<0) -#define FOUND_CALLED_NODE 1 - -static int -recursive_call_check_trav(Node* node, ScanEnv* env, int state) -{ - int r = 0; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - { - int ret; - do { - ret = recursive_call_check_trav(NODE_CAR(node), env, state); - if (ret == FOUND_CALLED_NODE) r = FOUND_CALLED_NODE; - else if (ret < 0) return ret; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - } - break; - - case NODE_QUANT: - r = recursive_call_check_trav(NODE_BODY(node), env, state); - if (QUANT_(node)->upper == 0) { - if (r == FOUND_CALLED_NODE) - QUANT_(node)->is_refered = 1; - } - break; - - case NODE_ANCHOR: - { - AnchorNode* an = ANCHOR_(node); - if (ANCHOR_HAS_BODY(an)) - r = recursive_call_check_trav(NODE_ANCHOR_BODY(an), env, state); - } - break; - - case NODE_BAG: - { - int ret; - int state1; - BagNode* en = BAG_(node); - - if (en->type == BAG_MEMORY) { - if (NODE_IS_CALLED(node) || (state & IN_RECURSION) != 0) { - if (! NODE_IS_RECURSION(node)) { - NODE_STATUS_ADD(node, MARK1); - r = recursive_call_check(NODE_BODY(node)); - if (r != 0) - NODE_STATUS_ADD(node, RECURSION); - NODE_STATUS_REMOVE(node, MARK1); - } - - if (NODE_IS_CALLED(node)) - r = FOUND_CALLED_NODE; - } - } - - state1 = state; - if (NODE_IS_RECURSION(node)) - state1 |= IN_RECURSION; - - ret = recursive_call_check_trav(NODE_BODY(node), env, state1); - if (ret == FOUND_CALLED_NODE) - r = FOUND_CALLED_NODE; - - if (en->type == BAG_IF_ELSE) { - if (IS_NOT_NULL(en->te.Then)) { - ret = recursive_call_check_trav(en->te.Then, env, state1); - if (ret == FOUND_CALLED_NODE) - r = FOUND_CALLED_NODE; - } - if (IS_NOT_NULL(en->te.Else)) { - ret = recursive_call_check_trav(en->te.Else, env, state1); - if (ret == FOUND_CALLED_NODE) - r = FOUND_CALLED_NODE; - } - } - } - break; - - default: - break; - } - - return r; -} - -#endif - -#define IN_ALT (1<<0) -#define IN_NOT (1<<1) -#define IN_REAL_REPEAT (1<<2) -#define IN_VAR_REPEAT (1<<3) -#define IN_ZERO_REPEAT (1<<4) -#define IN_MULTI_ENTRY (1<<5) -#define IN_LOOK_BEHIND (1<<6) - - -/* divide different length alternatives in look-behind. - (?<=A|B) ==> (?<=A)|(?<=B) - (? (?type; - - head = NODE_ANCHOR_BODY(an); - np = NODE_CAR(head); - swap_node(node, head); - NODE_CAR(node) = head; - NODE_BODY(head) = np; - - np = node; - while (IS_NOT_NULL(np = NODE_CDR(np))) { - insert_node = onig_node_new_anchor(anc_type, an->ascii_mode); - CHECK_NULL_RETURN_MEMERR(insert_node); - NODE_BODY(insert_node) = NODE_CAR(np); - NODE_CAR(np) = insert_node; - } - - if (anc_type == ANCR_LOOK_BEHIND_NOT) { - np = node; - do { - NODE_SET_TYPE(np, NODE_LIST); /* alt -> list */ - } while (IS_NOT_NULL(np = NODE_CDR(np))); - } - return 0; -} - -static int -setup_look_behind(Node* node, regex_t* reg, ScanEnv* env) -{ - int r, len; - AnchorNode* an = ANCHOR_(node); - - r = get_char_len_node(NODE_ANCHOR_BODY(an), reg, &len); - if (r == 0) - an->char_len = len; - else if (r == GET_CHAR_LEN_VARLEN) - r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN; - else if (r == GET_CHAR_LEN_TOP_ALT_VARLEN) { - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND)) - r = divide_look_behind_alternatives(node); - else - r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN; - } - - return r; -} - -static int -next_setup(Node* node, Node* next_node, regex_t* reg) -{ - NodeType type; - - retry: - type = NODE_TYPE(node); - if (type == NODE_QUANT) { - QuantNode* qn = QUANT_(node); - if (qn->greedy && IS_INFINITE_REPEAT(qn->upper)) { -#ifdef USE_QUANT_PEEK_NEXT - Node* n = get_head_value_node(next_node, 1, reg); - /* '\0': for UTF-16BE etc... */ - if (IS_NOT_NULL(n) && STR_(n)->s[0] != '\0') { - qn->next_head_exact = n; - } -#endif - /* automatic posseivation a*b ==> (?>a*)b */ - if (qn->lower <= 1) { - if (is_strict_real_node(NODE_BODY(node))) { - Node *x, *y; - x = get_head_value_node(NODE_BODY(node), 0, reg); - if (IS_NOT_NULL(x)) { - y = get_head_value_node(next_node, 0, reg); - if (IS_NOT_NULL(y) && is_exclusive(x, y, reg)) { - Node* en = onig_node_new_bag(BAG_STOP_BACKTRACK); - CHECK_NULL_RETURN_MEMERR(en); - NODE_STATUS_ADD(en, STRICT_REAL_REPEAT); - swap_node(node, en); - NODE_BODY(node) = en; - } - } - } - } - } - } - else if (type == NODE_BAG) { - BagNode* en = BAG_(node); - if (en->type == BAG_MEMORY) { - node = NODE_BODY(node); - goto retry; - } - } - return 0; -} - - -static int -update_string_node_case_fold(regex_t* reg, Node *node) -{ - UChar *p, *end, buf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - UChar *sbuf, *ebuf, *sp; - int r, i, len, sbuf_size; - StrNode* sn = STR_(node); - - end = sn->end; - sbuf_size = (int )(end - sn->s) * 2; - sbuf = (UChar* )xmalloc(sbuf_size); - CHECK_NULL_RETURN_MEMERR(sbuf); - ebuf = sbuf + sbuf_size; - - sp = sbuf; - p = sn->s; - while (p < end) { - len = ONIGENC_MBC_CASE_FOLD(reg->enc, reg->case_fold_flag, &p, end, buf); - for (i = 0; i < len; i++) { - if (sp >= ebuf) { - sbuf = (UChar* )xrealloc(sbuf, sbuf_size * 2, sbuf_size); - CHECK_NULL_RETURN_MEMERR(sbuf); - sp = sbuf + sbuf_size; - sbuf_size *= 2; - ebuf = sbuf + sbuf_size; - } - - *sp++ = buf[i]; - } - } - - r = onig_node_str_set(node, sbuf, sp); - if (r != 0) { - xfree(sbuf); - return r; - } - - xfree(sbuf); - return 0; -} - -static int -expand_case_fold_make_rem_string(Node** rnode, UChar *s, UChar *end, regex_t* reg) -{ - int r; - Node *node; - - node = onig_node_new_str(s, end); - if (IS_NULL(node)) return ONIGERR_MEMORY; - - r = update_string_node_case_fold(reg, node); - if (r != 0) { - onig_node_free(node); - return r; - } - - NODE_STRING_SET_AMBIG(node); - NODE_STRING_SET_DONT_GET_OPT_INFO(node); - *rnode = node; - return 0; -} - -static int -expand_case_fold_string_alt(int item_num, OnigCaseFoldCodeItem items[], UChar *p, - int slen, UChar *end, regex_t* reg, Node **rnode) -{ - int r, i, j; - int len; - int varlen; - Node *anode, *var_anode, *snode, *xnode, *an; - UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; - - *rnode = var_anode = NULL_NODE; - - varlen = 0; - for (i = 0; i < item_num; i++) { - if (items[i].byte_len != slen) { - varlen = 1; - break; - } - } - - if (varlen != 0) { - *rnode = var_anode = onig_node_new_alt(NULL_NODE, NULL_NODE); - if (IS_NULL(var_anode)) return ONIGERR_MEMORY; - - xnode = onig_node_new_list(NULL, NULL); - if (IS_NULL(xnode)) goto mem_err; - NODE_CAR(var_anode) = xnode; - - anode = onig_node_new_alt(NULL_NODE, NULL_NODE); - if (IS_NULL(anode)) goto mem_err; - NODE_CAR(xnode) = anode; - } - else { - *rnode = anode = onig_node_new_alt(NULL_NODE, NULL_NODE); - if (IS_NULL(anode)) return ONIGERR_MEMORY; - } - - snode = onig_node_new_str(p, p + slen); - if (IS_NULL(snode)) goto mem_err; - - NODE_CAR(anode) = snode; - - for (i = 0; i < item_num; i++) { - snode = onig_node_new_str(NULL, NULL); - if (IS_NULL(snode)) goto mem_err; - - for (j = 0; j < items[i].code_len; j++) { - len = ONIGENC_CODE_TO_MBC(reg->enc, items[i].code[j], buf); - if (len < 0) { - r = len; - goto mem_err2; - } - - r = onig_node_str_cat(snode, buf, buf + len); - if (r != 0) goto mem_err2; - } - - an = onig_node_new_alt(NULL_NODE, NULL_NODE); - if (IS_NULL(an)) { - goto mem_err2; - } - //The NULL pointer check is not necessary. It is added just for pass static - //analysis. When condition "items[i].byte_len != slen" is true, "varlen = 1" - //in line 3503 will be reached ,so that "if (IS_NULL(var_anode)) return ONIGERR_MEMORY" - //in line 3510 will be executed, so the null pointer has been checked before - //deferenced in line 3584. - if (items[i].byte_len != slen && IS_NOT_NULL(var_anode)) { - Node *rem; - UChar *q = p + items[i].byte_len; - - if (q < end) { - r = expand_case_fold_make_rem_string(&rem, q, end, reg); - if (r != 0) { - onig_node_free(an); - goto mem_err2; - } - - xnode = onig_node_list_add(NULL_NODE, snode); - if (IS_NULL(xnode)) { - onig_node_free(an); - onig_node_free(rem); - goto mem_err2; - } - if (IS_NULL(onig_node_list_add(xnode, rem))) { - onig_node_free(an); - onig_node_free(xnode); - onig_node_free(rem); - goto mem_err; - } - - NODE_CAR(an) = xnode; - } - else { - NODE_CAR(an) = snode; - } - - NODE_CDR(var_anode) = an; - var_anode = an; - } - else { - NODE_CAR(an) = snode; - NODE_CDR(anode) = an; - anode = an; - } - } - - return varlen; - - mem_err2: - onig_node_free(snode); - - mem_err: - onig_node_free(*rnode); - - return ONIGERR_MEMORY; -} - -static int -is_good_case_fold_items_for_search(OnigEncoding enc, int slen, - int n, OnigCaseFoldCodeItem items[]) -{ - int i, len; - UChar buf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - - for (i = 0; i < n; i++) { - OnigCaseFoldCodeItem* item = items + i; - - if (item->code_len != 1) return 0; - if (item->byte_len != slen) return 0; - len = ONIGENC_CODE_TO_MBC(enc, item->code[0], buf); - if (len != slen) return 0; - } - - return 1; -} - -#define THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION 8 - -static int -expand_case_fold_string(Node* node, regex_t* reg, int state) -{ - int r, n, len, alt_num; - int fold_len; - int prev_is_ambig, prev_is_good, is_good, is_in_look_behind; - UChar *start, *end, *p; - UChar* foldp; - Node *top_root, *root, *snode, *prev_node; - OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM]; - UChar buf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - StrNode* sn; - - if (NODE_STRING_IS_AMBIG(node)) return 0; - - sn = STR_(node); - - start = sn->s; - end = sn->end; - if (start >= end) return 0; - - is_in_look_behind = (state & IN_LOOK_BEHIND) != 0; - - r = 0; - top_root = root = prev_node = snode = NULL_NODE; - alt_num = 1; - p = start; - while (p < end) { - n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(reg->enc, reg->case_fold_flag, - p, end, items); - if (n < 0) { - r = n; - goto err; - } - - len = enclen(reg->enc, p); - is_good = is_good_case_fold_items_for_search(reg->enc, len, n, items); - - if (is_in_look_behind || - (IS_NOT_NULL(snode) || - (is_good - /* expand single char case: ex. /(?i:a)/ */ - && !(p == start && p + len >= end)))) { - if (IS_NULL(snode)) { - if (IS_NULL(root) && IS_NOT_NULL(prev_node)) { - top_root = root = onig_node_list_add(NULL_NODE, prev_node); - if (IS_NULL(root)) { - onig_node_free(prev_node); - goto mem_err; - } - } - - prev_node = snode = onig_node_new_str(NULL, NULL); - if (IS_NULL(snode)) goto mem_err; - if (IS_NOT_NULL(root)) { - if (IS_NULL(onig_node_list_add(root, snode))) { - onig_node_free(snode); - goto mem_err; - } - } - - prev_is_ambig = -1; /* -1: new */ - prev_is_good = 0; /* escape compiler warning */ - } - else { - prev_is_ambig = NODE_STRING_IS_AMBIG(snode); - prev_is_good = NODE_STRING_IS_GOOD_AMBIG(snode); - } - - if (n != 0) { - foldp = p; - fold_len = ONIGENC_MBC_CASE_FOLD(reg->enc, reg->case_fold_flag, - &foldp, end, buf); - foldp = buf; - } - else { - foldp = p; fold_len = len; - } - - if ((prev_is_ambig == 0 && n != 0) || - (prev_is_ambig > 0 && (n == 0 || prev_is_good != is_good))) { - if (IS_NULL(root) /* && IS_NOT_NULL(prev_node) */) { - top_root = root = onig_node_list_add(NULL_NODE, prev_node); - if (IS_NULL(root)) { - onig_node_free(prev_node); - goto mem_err; - } - } - - prev_node = snode = onig_node_new_str(foldp, foldp + fold_len); - if (IS_NULL(snode)) goto mem_err; - if (IS_NULL(onig_node_list_add(root, snode))) { - onig_node_free(snode); - goto mem_err; - } - } - else { - r = onig_node_str_cat(snode, foldp, foldp + fold_len); - if (r != 0) goto err; - } - - if (n != 0) NODE_STRING_SET_AMBIG(snode); - if (is_good != 0) NODE_STRING_SET_GOOD_AMBIG(snode); - } - else { - alt_num *= (n + 1); - if (alt_num > THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION) break; - - if (IS_NULL(root) && IS_NOT_NULL(prev_node)) { - top_root = root = onig_node_list_add(NULL_NODE, prev_node); - if (IS_NULL(root)) { - onig_node_free(prev_node); - goto mem_err; - } - } - - r = expand_case_fold_string_alt(n, items, p, len, end, reg, &prev_node); - if (r < 0) goto mem_err; - if (r == 1) { - if (IS_NULL(root)) { - top_root = prev_node; - } - else { - if (IS_NULL(onig_node_list_add(root, prev_node))) { - onig_node_free(prev_node); - goto mem_err; - } - } - - root = NODE_CAR(prev_node); - } - else { /* r == 0 */ - if (IS_NOT_NULL(root)) { - if (IS_NULL(onig_node_list_add(root, prev_node))) { - onig_node_free(prev_node); - goto mem_err; - } - } - } - - snode = NULL_NODE; - } - - p += len; - } - - if (p < end) { - Node *srem; - - r = expand_case_fold_make_rem_string(&srem, p, end, reg); - if (r != 0) goto mem_err; - - if (IS_NOT_NULL(prev_node) && IS_NULL(root)) { - top_root = root = onig_node_list_add(NULL_NODE, prev_node); - if (IS_NULL(root)) { - onig_node_free(srem); - onig_node_free(prev_node); - goto mem_err; - } - } - - if (IS_NULL(root)) { - prev_node = srem; - } - else { - if (IS_NULL(onig_node_list_add(root, srem))) { - onig_node_free(srem); - goto mem_err; - } - } - } - - /* ending */ - top_root = (IS_NOT_NULL(top_root) ? top_root : prev_node); - swap_node(node, top_root); - onig_node_free(top_root); - return 0; - - mem_err: - r = ONIGERR_MEMORY; - - err: - onig_node_free(top_root); - return r; -} - -#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT -static enum BodyEmptyType -quantifiers_memory_node_info(Node* node) -{ - int r = BODY_IS_EMPTY_POSSIBILITY; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - { - int v; - do { - v = quantifiers_memory_node_info(NODE_CAR(node)); - if (v > r) r = v; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - } - break; - -#ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) { - return BODY_IS_EMPTY_POSSIBILITY_REC; /* tiny version */ - } - else - r = quantifiers_memory_node_info(NODE_BODY(node)); - break; -#endif - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - if (qn->upper != 0) { - r = quantifiers_memory_node_info(NODE_BODY(node)); - } - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - switch (en->type) { - case BAG_MEMORY: - if (NODE_IS_RECURSION(node)) { - return BODY_IS_EMPTY_POSSIBILITY_REC; - } - return BODY_IS_EMPTY_POSSIBILITY_MEM; - break; - - case BAG_OPTION: - case BAG_STOP_BACKTRACK: - r = quantifiers_memory_node_info(NODE_BODY(node)); - break; - case BAG_IF_ELSE: - { - int v; - r = quantifiers_memory_node_info(NODE_BODY(node)); - if (IS_NOT_NULL(en->te.Then)) { - v = quantifiers_memory_node_info(en->te.Then); - if (v > r) r = v; - } - if (IS_NOT_NULL(en->te.Else)) { - v = quantifiers_memory_node_info(en->te.Else); - if (v > r) r = v; - } - } - break; - } - } - break; - - case NODE_BACKREF: - case NODE_STRING: - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_ANCHOR: - case NODE_GIMMICK: - default: - break; - } - - return r; -} -#endif /* USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT */ - - -#ifdef USE_CALL - -#ifdef __GNUC__ -__inline -#endif -static int -setup_call_node_call(CallNode* cn, ScanEnv* env, int state) -{ - MemEnv* mem_env = SCANENV_MEMENV(env); - - if (cn->by_number != 0) { - int gnum = cn->group_num; - - if (env->num_named > 0 && - IS_SYNTAX_BV(env->syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) && - ! ONIG_IS_OPTION_ON(env->options, ONIG_OPTION_CAPTURE_GROUP)) { - return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED; - } - - if (gnum > env->num_mem) { - onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_GROUP_REFERENCE, - cn->name, cn->name_end); - return ONIGERR_UNDEFINED_GROUP_REFERENCE; - } - - set_call_attr: - NODE_CALL_BODY(cn) = mem_env[cn->group_num].node; - if (IS_NULL(NODE_CALL_BODY(cn))) { - onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, - cn->name, cn->name_end); - return ONIGERR_UNDEFINED_NAME_REFERENCE; - } - } - else { - int *refs; - - int n = onig_name_to_group_numbers(env->reg, cn->name, cn->name_end, &refs); - if (n <= 0) { - onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, - cn->name, cn->name_end); - return ONIGERR_UNDEFINED_NAME_REFERENCE; - } - else if (n > 1) { - onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL, - cn->name, cn->name_end); - return ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL; - } - else { - cn->group_num = refs[0]; - goto set_call_attr; - } - } - - return 0; -} - -static void -setup_call2_call(Node* node) -{ - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - setup_call2_call(NODE_CAR(node)); - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_QUANT: - setup_call2_call(NODE_BODY(node)); - break; - - case NODE_ANCHOR: - if (ANCHOR_HAS_BODY(ANCHOR_(node))) - setup_call2_call(NODE_BODY(node)); - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - if (en->type == BAG_MEMORY) { - if (! NODE_IS_MARK1(node)) { - NODE_STATUS_ADD(node, MARK1); - setup_call2_call(NODE_BODY(node)); - NODE_STATUS_REMOVE(node, MARK1); - } - } - else if (en->type == BAG_IF_ELSE) { - setup_call2_call(NODE_BODY(node)); - if (IS_NOT_NULL(en->te.Then)) - setup_call2_call(en->te.Then); - if (IS_NOT_NULL(en->te.Else)) - setup_call2_call(en->te.Else); - } - else { - setup_call2_call(NODE_BODY(node)); - } - } - break; - - case NODE_CALL: - if (! NODE_IS_MARK1(node)) { - NODE_STATUS_ADD(node, MARK1); - { - CallNode* cn = CALL_(node); - Node* called = NODE_CALL_BODY(cn); - - cn->entry_count++; - - NODE_STATUS_ADD(called, CALLED); - BAG_(called)->m.entry_count++; - setup_call2_call(called); - } - NODE_STATUS_REMOVE(node, MARK1); - } - break; - - default: - break; - } -} - -static int -setup_call(Node* node, ScanEnv* env, int state) -{ - int r; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - r = setup_call(NODE_CAR(node), env, state); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_QUANT: - if (QUANT_(node)->upper == 0) - state |= IN_ZERO_REPEAT; - - r = setup_call(NODE_BODY(node), env, state); - break; - - case NODE_ANCHOR: - if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = setup_call(NODE_BODY(node), env, state); - else - r = 0; - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - if (en->type == BAG_MEMORY) { - if ((state & IN_ZERO_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_ZERO_REPEAT); - BAG_(node)->m.entry_count--; - } - r = setup_call(NODE_BODY(node), env, state); - } - else if (en->type == BAG_IF_ELSE) { - r = setup_call(NODE_BODY(node), env, state); - if (r != 0) return r; - if (IS_NOT_NULL(en->te.Then)) { - r = setup_call(en->te.Then, env, state); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) - r = setup_call(en->te.Else, env, state); - } - else - r = setup_call(NODE_BODY(node), env, state); - } - break; - - case NODE_CALL: - if ((state & IN_ZERO_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_ZERO_REPEAT); - CALL_(node)->entry_count--; - } - - r = setup_call_node_call(CALL_(node), env, state); - break; - - default: - r = 0; - break; - } - - return r; -} - -static int -setup_call2(Node* node) -{ - int r = 0; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - case NODE_ALT: - do { - r = setup_call2(NODE_CAR(node)); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_QUANT: - if (QUANT_(node)->upper != 0) - r = setup_call2(NODE_BODY(node)); - break; - - case NODE_ANCHOR: - if (ANCHOR_HAS_BODY(ANCHOR_(node))) - r = setup_call2(NODE_BODY(node)); - break; - - case NODE_BAG: - if (! NODE_IS_IN_ZERO_REPEAT(node)) - r = setup_call2(NODE_BODY(node)); - - { - BagNode* en = BAG_(node); - - if (r != 0) return r; - if (en->type == BAG_IF_ELSE) { - if (IS_NOT_NULL(en->te.Then)) { - r = setup_call2(en->te.Then); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) - r = setup_call2(en->te.Else); - } - } - break; - - case NODE_CALL: - if (! NODE_IS_IN_ZERO_REPEAT(node)) { - setup_call2_call(node); - } - break; - - default: - break; - } - - return r; -} - - -static void -setup_called_state_call(Node* node, int state) -{ - switch (NODE_TYPE(node)) { - case NODE_ALT: - state |= IN_ALT; - /* fall */ - case NODE_LIST: - do { - setup_called_state_call(NODE_CAR(node), state); - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - - if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2) - state |= IN_REAL_REPEAT; - if (qn->lower != qn->upper) - state |= IN_VAR_REPEAT; - - setup_called_state_call(NODE_QUANT_BODY(qn), state); - } - break; - - case NODE_ANCHOR: - { - AnchorNode* an = ANCHOR_(node); - - switch (an->type) { - case ANCR_PREC_READ_NOT: - case ANCR_LOOK_BEHIND_NOT: - state |= IN_NOT; - /* fall */ - case ANCR_PREC_READ: - case ANCR_LOOK_BEHIND: - setup_called_state_call(NODE_ANCHOR_BODY(an), state); - break; - default: - break; - } - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - if (en->type == BAG_MEMORY) { - if (NODE_IS_MARK1(node)) { - if ((~en->m.called_state & state) != 0) { - en->m.called_state |= state; - setup_called_state_call(NODE_BODY(node), state); - } - } - else { - NODE_STATUS_ADD(node, MARK1); - en->m.called_state |= state; - setup_called_state_call(NODE_BODY(node), state); - NODE_STATUS_REMOVE(node, MARK1); - } - } - else if (en->type == BAG_IF_ELSE) { - if (IS_NOT_NULL(en->te.Then)) { - setup_called_state_call(en->te.Then, state); - } - if (IS_NOT_NULL(en->te.Else)) - setup_called_state_call(en->te.Else, state); - } - else { - setup_called_state_call(NODE_BODY(node), state); - } - } - break; - - case NODE_CALL: - setup_called_state_call(NODE_BODY(node), state); - break; - - default: - break; - } -} - -static void -setup_called_state(Node* node, int state) -{ - switch (NODE_TYPE(node)) { - case NODE_ALT: - state |= IN_ALT; - /* fall */ - case NODE_LIST: - do { - setup_called_state(NODE_CAR(node), state); - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - -#ifdef USE_CALL - case NODE_CALL: - setup_called_state_call(node, state); - break; -#endif - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - switch (en->type) { - case BAG_MEMORY: - if (en->m.entry_count > 1) - state |= IN_MULTI_ENTRY; - - en->m.called_state |= state; - /* fall */ - case BAG_OPTION: - case BAG_STOP_BACKTRACK: - setup_called_state(NODE_BODY(node), state); - break; - case BAG_IF_ELSE: - setup_called_state(NODE_BODY(node), state); - if (IS_NOT_NULL(en->te.Then)) - setup_called_state(en->te.Then, state); - if (IS_NOT_NULL(en->te.Else)) - setup_called_state(en->te.Else, state); - break; - } - } - break; - - case NODE_QUANT: - { - QuantNode* qn = QUANT_(node); - - if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2) - state |= IN_REAL_REPEAT; - if (qn->lower != qn->upper) - state |= IN_VAR_REPEAT; - - setup_called_state(NODE_QUANT_BODY(qn), state); - } - break; - - case NODE_ANCHOR: - { - AnchorNode* an = ANCHOR_(node); - - switch (an->type) { - case ANCR_PREC_READ_NOT: - case ANCR_LOOK_BEHIND_NOT: - state |= IN_NOT; - /* fall */ - case ANCR_PREC_READ: - case ANCR_LOOK_BEHIND: - setup_called_state(NODE_ANCHOR_BODY(an), state); - break; - default: - break; - } - } - break; - - case NODE_BACKREF: - case NODE_STRING: - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_GIMMICK: - default: - break; - } -} - -#endif /* USE_CALL */ - - -static int setup_tree(Node* node, regex_t* reg, int state, ScanEnv* env); - -#ifdef __GNUC__ -__inline -#endif -static int -setup_anchor(Node* node, regex_t* reg, int state, ScanEnv* env) -{ -/* allowed node types in look-behind */ -#define ALLOWED_TYPE_IN_LB \ - ( NODE_BIT_LIST | NODE_BIT_ALT | NODE_BIT_STRING | NODE_BIT_CCLASS \ - | NODE_BIT_CTYPE | NODE_BIT_ANCHOR | NODE_BIT_BAG | NODE_BIT_QUANT \ - | NODE_BIT_CALL | NODE_BIT_GIMMICK) - -#define ALLOWED_BAG_IN_LB ( 1<type) { - case ANCR_PREC_READ: - r = setup_tree(NODE_ANCHOR_BODY(an), reg, state, env); - break; - case ANCR_PREC_READ_NOT: - r = setup_tree(NODE_ANCHOR_BODY(an), reg, (state | IN_NOT), env); - break; - - case ANCR_LOOK_BEHIND: - { - r = check_type_tree(NODE_ANCHOR_BODY(an), ALLOWED_TYPE_IN_LB, - ALLOWED_BAG_IN_LB, ALLOWED_ANCHOR_IN_LB); - if (r < 0) return r; - if (r > 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN; - r = setup_tree(NODE_ANCHOR_BODY(an), reg, (state|IN_LOOK_BEHIND), env); - if (r != 0) return r; - r = setup_look_behind(node, reg, env); - } - break; - - case ANCR_LOOK_BEHIND_NOT: - { - r = check_type_tree(NODE_ANCHOR_BODY(an), ALLOWED_TYPE_IN_LB, - ALLOWED_BAG_IN_LB_NOT, ALLOWED_ANCHOR_IN_LB_NOT); - if (r < 0) return r; - if (r > 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN; - r = setup_tree(NODE_ANCHOR_BODY(an), reg, (state|IN_NOT|IN_LOOK_BEHIND), - env); - if (r != 0) return r; - r = setup_look_behind(node, reg, env); - } - break; - - default: - r = 0; - break; - } - - return r; -} - -#ifdef __GNUC__ -__inline -#endif -static int -setup_quant(Node* node, regex_t* reg, int state, ScanEnv* env) -{ - int r; - OnigLen d; - QuantNode* qn = QUANT_(node); - Node* body = NODE_BODY(node); - - if ((state & IN_REAL_REPEAT) != 0) { - NODE_STATUS_ADD(node, IN_REAL_REPEAT); - } - if ((state & IN_MULTI_ENTRY) != 0) { - NODE_STATUS_ADD(node, IN_MULTI_ENTRY); - } - - if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 1) { - d = tree_min_len(body, env); - if (d == 0) { -#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT - qn->emptiness = quantifiers_memory_node_info(body); - if (qn->emptiness == BODY_IS_EMPTY_POSSIBILITY_REC) { - if (NODE_TYPE(body) == NODE_BAG && - BAG_(body)->type == BAG_MEMORY) { - MEM_STATUS_ON(env->bt_mem_end, BAG_(body)->m.regnum); - } - } -#else - qn->emptiness = BODY_IS_EMPTY_POSSIBILITY; -#endif - } - } - - if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2) - state |= IN_REAL_REPEAT; - if (qn->lower != qn->upper) - state |= IN_VAR_REPEAT; - - r = setup_tree(body, reg, state, env); - if (r != 0) return r; - - /* expand string */ -#define EXPAND_STRING_MAX_LENGTH 100 - if (NODE_TYPE(body) == NODE_STRING) { - if (!IS_INFINITE_REPEAT(qn->lower) && qn->lower == qn->upper && - qn->lower > 1 && qn->lower <= EXPAND_STRING_MAX_LENGTH) { - int len = NODE_STRING_LEN(body); - StrNode* sn = STR_(body); - - if (len * qn->lower <= EXPAND_STRING_MAX_LENGTH) { - int i, n = qn->lower; - onig_node_conv_to_str_node(node, STR_(body)->flag); - for (i = 0; i < n; i++) { - r = onig_node_str_cat(node, sn->s, sn->end); - if (r != 0) return r; - } - onig_node_free(body); - return r; - } - } - } - - if (qn->greedy && (qn->emptiness == BODY_IS_NOT_EMPTY)) { - if (NODE_TYPE(body) == NODE_QUANT) { - QuantNode* tqn = QUANT_(body); - if (IS_NOT_NULL(tqn->head_exact)) { - qn->head_exact = tqn->head_exact; - tqn->head_exact = NULL; - } - } - else { - qn->head_exact = get_head_value_node(NODE_BODY(node), 1, reg); - } - } - - return r; -} - -/* setup_tree does the following work. - 1. check empty loop. (set qn->emptiness) - 2. expand ignore-case in char class. - 3. set memory status bit flags. (reg->mem_stats) - 4. set qn->head_exact for [push, exact] -> [push_or_jump_exact1, exact]. - 5. find invalid patterns in look-behind. - 6. expand repeated string. - */ -static int -setup_tree(Node* node, regex_t* reg, int state, ScanEnv* env) -{ - int r = 0; - - switch (NODE_TYPE(node)) { - case NODE_LIST: - { - Node* prev = NULL_NODE; - do { - r = setup_tree(NODE_CAR(node), reg, state, env); - if (IS_NOT_NULL(prev) && r == 0) { - r = next_setup(prev, NODE_CAR(node), reg); - } - prev = NODE_CAR(node); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - } - break; - - case NODE_ALT: - do { - r = setup_tree(NODE_CAR(node), reg, (state | IN_ALT), env); - } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))); - break; - - case NODE_STRING: - if (IS_IGNORECASE(reg->options) && !NODE_STRING_IS_RAW(node)) { - r = expand_case_fold_string(node, reg, state); - } - break; - - case NODE_BACKREF: - { - int i; - int* p; - BackRefNode* br = BACKREF_(node); - p = BACKREFS_P(br); - for (i = 0; i < br->back_num; i++) { - if (p[i] > env->num_mem) return ONIGERR_INVALID_BACKREF; - MEM_STATUS_ON(env->backrefed_mem, p[i]); - MEM_STATUS_ON(env->bt_mem_start, p[i]); -#ifdef USE_BACKREF_WITH_LEVEL - if (NODE_IS_NEST_LEVEL(node)) { - MEM_STATUS_ON(env->bt_mem_end, p[i]); - } -#endif - } - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - switch (en->type) { - case BAG_OPTION: - { - OnigOptionType options = reg->options; - reg->options = BAG_(node)->o.options; - r = setup_tree(NODE_BODY(node), reg, state, env); - reg->options = options; - } - break; - - case BAG_MEMORY: -#ifdef USE_CALL - state |= en->m.called_state; -#endif - - if ((state & (IN_ALT | IN_NOT | IN_VAR_REPEAT | IN_MULTI_ENTRY)) != 0 - || NODE_IS_RECURSION(node)) { - MEM_STATUS_ON(env->bt_mem_start, en->m.regnum); - } - r = setup_tree(NODE_BODY(node), reg, state, env); - break; - - case BAG_STOP_BACKTRACK: - { - Node* target = NODE_BODY(node); - r = setup_tree(target, reg, state, env); - if (NODE_TYPE(target) == NODE_QUANT) { - QuantNode* tqn = QUANT_(target); - if (IS_INFINITE_REPEAT(tqn->upper) && tqn->lower <= 1 && - tqn->greedy != 0) { /* (?>a*), a*+ etc... */ - if (is_strict_real_node(NODE_BODY(target))) - NODE_STATUS_ADD(node, STRICT_REAL_REPEAT); - } - } - } - break; - - case BAG_IF_ELSE: - r = setup_tree(NODE_BODY(node), reg, (state | IN_ALT), env); - if (r != 0) return r; - if (IS_NOT_NULL(en->te.Then)) { - r = setup_tree(en->te.Then, reg, (state | IN_ALT), env); - if (r != 0) return r; - } - if (IS_NOT_NULL(en->te.Else)) - r = setup_tree(en->te.Else, reg, (state | IN_ALT), env); - break; - } - } - break; - - case NODE_QUANT: - r = setup_quant(node, reg, state, env); - break; - - case NODE_ANCHOR: - r = setup_anchor(node, reg, state, env); - break; - -#ifdef USE_CALL - case NODE_CALL: -#endif - case NODE_CTYPE: - case NODE_CCLASS: - case NODE_GIMMICK: - default: - break; - } - - return r; -} - -static int -set_sunday_quick_search_or_bmh_skip_table(regex_t* reg, int case_expand, - UChar* s, UChar* end, - UChar skip[], int* roffset) -{ - int i, j, k, len, offset; - int n, clen; - UChar* p; - OnigEncoding enc; - OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM]; - UChar buf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - - enc = reg->enc; - offset = ENC_GET_SKIP_OFFSET(enc); - if (offset == ENC_SKIP_OFFSET_1_OR_0) { - UChar* p = s; - while (1) { - len = enclen(enc, p); - if (p + len >= end) { - if (len == 1) offset = 1; - else offset = 0; - break; - } - p += len; - } - } - - len = (int )(end - s); - if (len + offset >= 255) - return ONIGERR_PARSER_BUG; - - *roffset = offset; - - for (i = 0; i < CHAR_MAP_SIZE; i++) { - skip[i] = (UChar )(len + offset); - } - - for (p = s; p < end; ) { - int z; - - clen = enclen(enc, p); - if (p + clen > end) clen = (int )(end - p); - - len = (int )(end - p); - for (j = 0; j < clen; j++) { - z = len - j + (offset - 1); - if (z <= 0) break; - skip[p[j]] = z; - } - - if (case_expand != 0) { - n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag, - p, end, items); - for (k = 0; k < n; k++) { - ONIGENC_CODE_TO_MBC(enc, items[k].code[0], buf); - for (j = 0; j < clen; j++) { - z = len - j + (offset - 1); - if (z <= 0) break; - if (skip[buf[j]] > z) - skip[buf[j]] = z; - } - } - } - - p += clen; - } - - return 0; -} - - -#define OPT_EXACT_MAXLEN 24 - -#if OPT_EXACT_MAXLEN >= 255 -#error Too big OPT_EXACT_MAXLEN -#endif - -typedef struct { - OnigLen min; /* min byte length */ - OnigLen max; /* max byte length */ -} MinMax; - -typedef struct { - MinMax mmd; - OnigEncoding enc; - OnigOptionType options; - OnigCaseFoldType case_fold_flag; - ScanEnv* scan_env; -} OptEnv; - -typedef struct { - int left; - int right; -} OptAnc; - -typedef struct { - MinMax mmd; /* position */ - OptAnc anc; - int reach_end; - int case_fold; - int good_case_fold; - int len; - UChar s[OPT_EXACT_MAXLEN]; -} OptStr; - -typedef struct { - MinMax mmd; /* position */ - OptAnc anc; - int value; /* weighted value */ - UChar map[CHAR_MAP_SIZE]; -} OptMap; - -typedef struct { - MinMax len; - OptAnc anc; - OptStr sb; /* boundary */ - OptStr sm; /* middle */ - OptStr spr; /* prec read (?=...) */ - OptMap map; /* boundary */ -} OptNode; - - -static int -map_position_value(OnigEncoding enc, int i) -{ - static const short int Vals[] = { - 5, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 1, 1, 10, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 12, 4, 7, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, - 5, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 5, 5, 5, - 5, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 1 - }; - - if (i < (int )(sizeof(Vals)/sizeof(Vals[0]))) { - if (i == 0 && ONIGENC_MBC_MINLEN(enc) > 1) - return 20; - else - return (int )Vals[i]; - } - else - return 4; /* Take it easy. */ -} - -static int -distance_value(MinMax* mm) -{ - /* 1000 / (min-max-dist + 1) */ - static const short int dist_vals[] = { - 1000, 500, 333, 250, 200, 167, 143, 125, 111, 100, - 91, 83, 77, 71, 67, 63, 59, 56, 53, 50, - 48, 45, 43, 42, 40, 38, 37, 36, 34, 33, - 32, 31, 30, 29, 29, 28, 27, 26, 26, 25, - 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, - 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, - 16, 16, 16, 16, 15, 15, 15, 15, 14, 14, - 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, - 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 10, 10, 10, 10, 10 - }; - - OnigLen d; - - if (mm->max == INFINITE_LEN) return 0; - - d = mm->max - mm->min; - if (d < (OnigLen )(sizeof(dist_vals)/sizeof(dist_vals[0]))) - /* return dist_vals[d] * 16 / (mm->min + 12); */ - return (int )dist_vals[d]; - else - return 1; -} - -static int -comp_distance_value(MinMax* d1, MinMax* d2, int v1, int v2) -{ - if (v2 <= 0) return -1; - if (v1 <= 0) return 1; - - v1 *= distance_value(d1); - v2 *= distance_value(d2); - - if (v2 > v1) return 1; - if (v2 < v1) return -1; - - if (d2->min < d1->min) return 1; - if (d2->min > d1->min) return -1; - return 0; -} - -static int -is_equal_mml(MinMax* a, MinMax* b) -{ - return a->min == b->min && a->max == b->max; -} - -static void -set_mml(MinMax* l, OnigLen min, OnigLen max) -{ - l->min = min; - l->max = max; -} - -static void -clear_mml(MinMax* l) -{ - l->min = l->max = 0; -} - -static void -copy_mml(MinMax* to, MinMax* from) -{ - to->min = from->min; - to->max = from->max; -} - -static void -add_mml(MinMax* to, MinMax* from) -{ - to->min = distance_add(to->min, from->min); - to->max = distance_add(to->max, from->max); -} - -static void -alt_merge_mml(MinMax* to, MinMax* from) -{ - if (to->min > from->min) to->min = from->min; - if (to->max < from->max) to->max = from->max; -} - -static void -copy_opt_env(OptEnv* to, OptEnv* from) -{ - *to = *from; -} - -static void -clear_opt_anc_info(OptAnc* a) -{ - a->left = 0; - a->right = 0; -} - -static void -copy_opt_anc_info(OptAnc* to, OptAnc* from) -{ - *to = *from; -} - -static void -concat_opt_anc_info(OptAnc* to, OptAnc* left, OptAnc* right, - OnigLen left_len, OnigLen right_len) -{ - clear_opt_anc_info(to); - - to->left = left->left; - if (left_len == 0) { - to->left |= right->left; - } - - to->right = right->right; - if (right_len == 0) { - to->right |= left->right; - } - else { - to->right |= (left->right & ANCR_PREC_READ_NOT); - } -} - -static int -is_left(int a) -{ - if (a == ANCR_END_BUF || a == ANCR_SEMI_END_BUF || - a == ANCR_END_LINE || a == ANCR_PREC_READ || a == ANCR_PREC_READ_NOT) - return 0; - - return 1; -} - -static int -is_set_opt_anc_info(OptAnc* to, int anc) -{ - if ((to->left & anc) != 0) return 1; - - return ((to->right & anc) != 0 ? 1 : 0); -} - -static void -add_opt_anc_info(OptAnc* to, int anc) -{ - if (is_left(anc)) - to->left |= anc; - else - to->right |= anc; -} - -static void -remove_opt_anc_info(OptAnc* to, int anc) -{ - if (is_left(anc)) - to->left &= ~anc; - else - to->right &= ~anc; -} - -static void -alt_merge_opt_anc_info(OptAnc* to, OptAnc* add) -{ - to->left &= add->left; - to->right &= add->right; -} - -static int -is_full_opt_exact(OptStr* e) -{ - return e->len >= OPT_EXACT_MAXLEN; -} - -static void -clear_opt_exact(OptStr* e) -{ - clear_mml(&e->mmd); - clear_opt_anc_info(&e->anc); - e->reach_end = 0; - e->case_fold = 0; - e->good_case_fold = 0; - e->len = 0; - e->s[0] = '\0'; -} - -static void -copy_opt_exact(OptStr* to, OptStr* from) -{ - *to = *from; -} - -static int -concat_opt_exact(OptStr* to, OptStr* add, OnigEncoding enc) -{ - int i, j, len, r; - UChar *p, *end; - OptAnc tanc; - - if (add->case_fold != 0) { - if (! to->case_fold) { - if (to->len > 1 || to->len >= add->len) return 0; /* avoid */ - - to->case_fold = 1; - } - else { - if (to->good_case_fold != 0) { - if (add->good_case_fold == 0) return 0; - } - } - } - - r = 0; - p = add->s; - end = p + add->len; - for (i = to->len; p < end; ) { - len = enclen(enc, p); - if (i + len > OPT_EXACT_MAXLEN) { - r = 1; /* 1:full */ - break; - } - for (j = 0; j < len && p < end; j++) - to->s[i++] = *p++; - } - - to->len = i; - to->reach_end = (p == end ? add->reach_end : 0); - - concat_opt_anc_info(&tanc, &to->anc, &add->anc, 1, 1); - if (! to->reach_end) tanc.right = 0; - copy_opt_anc_info(&to->anc, &tanc); - - return r; -} - -static void -concat_opt_exact_str(OptStr* to, UChar* s, UChar* end, OnigEncoding enc) -{ - int i, j, len; - UChar *p; - - for (i = to->len, p = s; p < end && i < OPT_EXACT_MAXLEN; ) { - len = enclen(enc, p); - if (i + len > OPT_EXACT_MAXLEN) break; - for (j = 0; j < len && p < end; j++) - to->s[i++] = *p++; - } - - to->len = i; - - if (p >= end && to->len == (int )(end - s)) - to->reach_end = 1; -} - -static void -alt_merge_opt_exact(OptStr* to, OptStr* add, OptEnv* env) -{ - int i, j, len; - - if (add->len == 0 || to->len == 0) { - clear_opt_exact(to); - return ; - } - - if (! is_equal_mml(&to->mmd, &add->mmd)) { - clear_opt_exact(to); - return ; - } - - for (i = 0; i < to->len && i < add->len; ) { - if (to->s[i] != add->s[i]) break; - len = enclen(env->enc, to->s + i); - - for (j = 1; j < len; j++) { - if (to->s[i+j] != add->s[i+j]) break; - } - if (j < len) break; - i += len; - } - - if (! add->reach_end || i < add->len || i < to->len) { - to->reach_end = 0; - } - to->len = i; - if (add->case_fold != 0) - to->case_fold = 1; - if (add->good_case_fold == 0) - to->good_case_fold = 0; - - alt_merge_opt_anc_info(&to->anc, &add->anc); - if (! to->reach_end) to->anc.right = 0; -} - -static void -select_opt_exact(OnigEncoding enc, OptStr* now, OptStr* alt) -{ - int vn, va; - - vn = now->len; - va = alt->len; - - if (va == 0) { - return ; - } - else if (vn == 0) { - copy_opt_exact(now, alt); - return ; - } - else if (vn <= 2 && va <= 2) { - /* ByteValTable[x] is big value --> low price */ - va = map_position_value(enc, now->s[0]); - vn = map_position_value(enc, alt->s[0]); - - if (now->len > 1) vn += 5; - if (alt->len > 1) va += 5; - } - - if (now->case_fold == 0) vn *= 2; - if (alt->case_fold == 0) va *= 2; - - if (now->good_case_fold != 0) vn *= 4; - if (alt->good_case_fold != 0) va *= 4; - - if (comp_distance_value(&now->mmd, &alt->mmd, vn, va) > 0) - copy_opt_exact(now, alt); -} - -static void -clear_opt_map(OptMap* map) -{ - static const OptMap clean_info = { - {0, 0}, {0, 0}, 0, - { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - - xmemcpy(map, &clean_info, sizeof(OptMap)); -} - -static void -copy_opt_map(OptMap* to, OptMap* from) -{ - xmemcpy(to,from,sizeof(OptMap)); -} - -static void -add_char_opt_map(OptMap* m, UChar c, OnigEncoding enc) -{ - if (m->map[c] == 0) { - m->map[c] = 1; - m->value += map_position_value(enc, c); - } -} - -static int -add_char_amb_opt_map(OptMap* map, UChar* p, UChar* end, - OnigEncoding enc, OnigCaseFoldType fold_flag) -{ - OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM]; - UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; - int i, n; - - add_char_opt_map(map, p[0], enc); - - fold_flag = DISABLE_CASE_FOLD_MULTI_CHAR(fold_flag); - n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, fold_flag, p, end, items); - if (n < 0) return n; - - for (i = 0; i < n; i++) { - ONIGENC_CODE_TO_MBC(enc, items[i].code[0], buf); - add_char_opt_map(map, buf[0], enc); - } - - return 0; -} - -static void -select_opt_map(OptMap* now, OptMap* alt) -{ - static int z = 1<<15; /* 32768: something big value */ - - int vn, va; - - if (alt->value == 0) return ; - if (now->value == 0) { - copy_opt_map(now, alt); - return ; - } - - vn = z / now->value; - va = z / alt->value; - if (comp_distance_value(&now->mmd, &alt->mmd, vn, va) > 0) - copy_opt_map(now, alt); -} - -static int -comp_opt_exact_or_map(OptStr* e, OptMap* m) -{ -#define COMP_EM_BASE 20 - int ae, am; - int case_value; - - if (m->value <= 0) return -1; - - if (e->case_fold != 0) { - if (e->good_case_fold != 0) - case_value = 2; - else - case_value = 1; - } - else - case_value = 3; - - ae = COMP_EM_BASE * e->len * case_value; - am = COMP_EM_BASE * 5 * 2 / m->value; - return comp_distance_value(&e->mmd, &m->mmd, ae, am); -} - -static void -alt_merge_opt_map(OnigEncoding enc, OptMap* to, OptMap* add) -{ - int i, val; - - /* if (! is_equal_mml(&to->mmd, &add->mmd)) return ; */ - if (to->value == 0) return ; - if (add->value == 0 || to->mmd.max < add->mmd.min) { - clear_opt_map(to); - return ; - } - - alt_merge_mml(&to->mmd, &add->mmd); - - val = 0; - for (i = 0; i < CHAR_MAP_SIZE; i++) { - if (add->map[i]) - to->map[i] = 1; - - if (to->map[i]) - val += map_position_value(enc, i); - } - to->value = val; - - alt_merge_opt_anc_info(&to->anc, &add->anc); -} - -static void -set_bound_node_opt_info(OptNode* opt, MinMax* plen) -{ - copy_mml(&(opt->sb.mmd), plen); - copy_mml(&(opt->spr.mmd), plen); - copy_mml(&(opt->map.mmd), plen); -} - -static void -clear_node_opt_info(OptNode* opt) -{ - clear_mml(&opt->len); - clear_opt_anc_info(&opt->anc); - clear_opt_exact(&opt->sb); - clear_opt_exact(&opt->sm); - clear_opt_exact(&opt->spr); - clear_opt_map(&opt->map); -} - -static void -copy_node_opt_info(OptNode* to, OptNode* from) -{ - xmemcpy(to,from,sizeof(OptNode)); -} - -static void -concat_left_node_opt_info(OnigEncoding enc, OptNode* to, OptNode* add) -{ - int sb_reach, sm_reach; - OptAnc tanc; - - concat_opt_anc_info(&tanc, &to->anc, &add->anc, to->len.max, add->len.max); - copy_opt_anc_info(&to->anc, &tanc); - - if (add->sb.len > 0 && to->len.max == 0) { - concat_opt_anc_info(&tanc, &to->anc, &add->sb.anc, to->len.max, add->len.max); - copy_opt_anc_info(&add->sb.anc, &tanc); - } - - if (add->map.value > 0 && to->len.max == 0) { - if (add->map.mmd.max == 0) - add->map.anc.left |= to->anc.left; - } - - sb_reach = to->sb.reach_end; - sm_reach = to->sm.reach_end; - - if (add->len.max != 0) - to->sb.reach_end = to->sm.reach_end = 0; - - if (add->sb.len > 0) { - if (sb_reach) { - concat_opt_exact(&to->sb, &add->sb, enc); - clear_opt_exact(&add->sb); - } - else if (sm_reach) { - concat_opt_exact(&to->sm, &add->sb, enc); - clear_opt_exact(&add->sb); - } - } - select_opt_exact(enc, &to->sm, &add->sb); - select_opt_exact(enc, &to->sm, &add->sm); - - if (to->spr.len > 0) { - if (add->len.max > 0) { - if (to->spr.len > (int )add->len.max) - to->spr.len = add->len.max; - - if (to->spr.mmd.max == 0) - select_opt_exact(enc, &to->sb, &to->spr); - else - select_opt_exact(enc, &to->sm, &to->spr); - } - } - else if (add->spr.len > 0) { - copy_opt_exact(&to->spr, &add->spr); - } - - select_opt_map(&to->map, &add->map); - add_mml(&to->len, &add->len); -} - -static void -alt_merge_node_opt_info(OptNode* to, OptNode* add, OptEnv* env) -{ - alt_merge_opt_anc_info(&to->anc, &add->anc); - alt_merge_opt_exact(&to->sb, &add->sb, env); - alt_merge_opt_exact(&to->sm, &add->sm, env); - alt_merge_opt_exact(&to->spr, &add->spr, env); - alt_merge_opt_map(env->enc, &to->map, &add->map); - - alt_merge_mml(&to->len, &add->len); -} - - -#define MAX_NODE_OPT_INFO_REF_COUNT 5 - -static int -optimize_nodes(Node* node, OptNode* opt, OptEnv* env) -{ - int i; - int r; - OptNode xo; - OnigEncoding enc; - - r = 0; - enc = env->enc; - clear_node_opt_info(opt); - set_bound_node_opt_info(opt, &env->mmd); - - switch (NODE_TYPE(node)) { - case NODE_LIST: - { - OptEnv nenv; - Node* nd = node; - - copy_opt_env(&nenv, env); - do { - r = optimize_nodes(NODE_CAR(nd), &xo, &nenv); - if (r == 0) { - add_mml(&nenv.mmd, &xo.len); - concat_left_node_opt_info(enc, opt, &xo); - } - } while (r == 0 && IS_NOT_NULL(nd = NODE_CDR(nd))); - } - break; - - case NODE_ALT: - { - Node* nd = node; - - do { - r = optimize_nodes(NODE_CAR(nd), &xo, env); - if (r == 0) { - if (nd == node) copy_node_opt_info(opt, &xo); - else alt_merge_node_opt_info(opt, &xo, env); - } - } while ((r == 0) && IS_NOT_NULL(nd = NODE_CDR(nd))); - } - break; - - case NODE_STRING: - { - StrNode* sn = STR_(node); - int slen = (int )(sn->end - sn->s); - /* int is_raw = NODE_STRING_IS_RAW(node); */ - - if (! NODE_STRING_IS_AMBIG(node)) { - concat_opt_exact_str(&opt->sb, sn->s, sn->end, enc); - if (slen > 0) { - add_char_opt_map(&opt->map, *(sn->s), enc); - } - set_mml(&opt->len, slen, slen); - } - else { - int max; - - if (NODE_STRING_IS_DONT_GET_OPT_INFO(node)) { - int n = onigenc_strlen(enc, sn->s, sn->end); - max = ONIGENC_MBC_MAXLEN_DIST(enc) * n; - } - else { - concat_opt_exact_str(&opt->sb, sn->s, sn->end, enc); - opt->sb.case_fold = 1; - if (NODE_STRING_IS_GOOD_AMBIG(node)) - opt->sb.good_case_fold = 1; - - if (slen > 0) { - r = add_char_amb_opt_map(&opt->map, sn->s, sn->end, - enc, env->case_fold_flag); - if (r != 0) break; - } - - max = slen; - } - - set_mml(&opt->len, slen, max); - } - } - break; - - case NODE_CCLASS: - { - int z; - CClassNode* cc = CCLASS_(node); - - /* no need to check ignore case. (set in setup_tree()) */ - - if (IS_NOT_NULL(cc->mbuf) || IS_NCCLASS_NOT(cc)) { - OnigLen min = ONIGENC_MBC_MINLEN(enc); - OnigLen max = ONIGENC_MBC_MAXLEN_DIST(enc); - - set_mml(&opt->len, min, max); - } - else { - for (i = 0; i < SINGLE_BYTE_SIZE; i++) { - z = BITSET_AT(cc->bs, i); - if ((z && ! IS_NCCLASS_NOT(cc)) || (! z && IS_NCCLASS_NOT(cc))) { - add_char_opt_map(&opt->map, (UChar )i, enc); - } - } - set_mml(&opt->len, 1, 1); - } - } - break; - - case NODE_CTYPE: - { - int min, max; - int range; - - max = ONIGENC_MBC_MAXLEN_DIST(enc); - - if (max == 1) { - min = 1; - - switch (CTYPE_(node)->ctype) { - case CTYPE_ANYCHAR: - break; - - case ONIGENC_CTYPE_WORD: - range = CTYPE_(node)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE; - if (CTYPE_(node)->not != 0) { - for (i = 0; i < range; i++) { - if (! ONIGENC_IS_CODE_WORD(enc, i)) { - add_char_opt_map(&opt->map, (UChar )i, enc); - } - } - for (i = range; i < SINGLE_BYTE_SIZE; i++) { - add_char_opt_map(&opt->map, (UChar )i, enc); - } - } - else { - for (i = 0; i < range; i++) { - if (ONIGENC_IS_CODE_WORD(enc, i)) { - add_char_opt_map(&opt->map, (UChar )i, enc); - } - } - } - break; - } - } - else { - min = ONIGENC_MBC_MINLEN(enc); - } - set_mml(&opt->len, min, max); - } - break; - - case NODE_ANCHOR: - switch (ANCHOR_(node)->type) { - case ANCR_BEGIN_BUF: - case ANCR_BEGIN_POSITION: - case ANCR_BEGIN_LINE: - case ANCR_END_BUF: - case ANCR_SEMI_END_BUF: - case ANCR_END_LINE: - case ANCR_PREC_READ_NOT: - case ANCR_LOOK_BEHIND: - add_opt_anc_info(&opt->anc, ANCHOR_(node)->type); - break; - - case ANCR_PREC_READ: - { - r = optimize_nodes(NODE_BODY(node), &xo, env); - if (r == 0) { - if (xo.sb.len > 0) - copy_opt_exact(&opt->spr, &xo.sb); - else if (xo.sm.len > 0) - copy_opt_exact(&opt->spr, &xo.sm); - - opt->spr.reach_end = 0; - - if (xo.map.value > 0) - copy_opt_map(&opt->map, &xo.map); - } - } - break; - - case ANCR_LOOK_BEHIND_NOT: - break; - } - break; - - case NODE_BACKREF: - if (! NODE_IS_CHECKER(node)) { - int* backs; - OnigLen min, max, tmin, tmax; - MemEnv* mem_env = SCANENV_MEMENV(env->scan_env); - BackRefNode* br = BACKREF_(node); - - if (NODE_IS_RECURSION(node)) { - set_mml(&opt->len, 0, INFINITE_LEN); - break; - } - backs = BACKREFS_P(br); - min = tree_min_len(mem_env[backs[0]].node, env->scan_env); - max = tree_max_len(mem_env[backs[0]].node, env->scan_env); - for (i = 1; i < br->back_num; i++) { - tmin = tree_min_len(mem_env[backs[i]].node, env->scan_env); - tmax = tree_max_len(mem_env[backs[i]].node, env->scan_env); - if (min > tmin) min = tmin; - if (max < tmax) max = tmax; - } - set_mml(&opt->len, min, max); - } - break; - -#ifdef USE_CALL - case NODE_CALL: - if (NODE_IS_RECURSION(node)) - set_mml(&opt->len, 0, INFINITE_LEN); - else { - OnigOptionType save = env->options; - env->options = BAG_(NODE_BODY(node))->o.options; - r = optimize_nodes(NODE_BODY(node), opt, env); - env->options = save; - } - break; -#endif - - case NODE_QUANT: - { - OnigLen min, max; - QuantNode* qn = QUANT_(node); - - r = optimize_nodes(NODE_BODY(node), &xo, env); - if (r != 0) break; - - if (qn->lower > 0) { - copy_node_opt_info(opt, &xo); - if (xo.sb.len > 0) { - if (xo.sb.reach_end) { - for (i = 2; i <= qn->lower && ! is_full_opt_exact(&opt->sb); i++) { - int rc = concat_opt_exact(&opt->sb, &xo.sb, enc); - if (rc > 0) break; - } - if (i < qn->lower) opt->sb.reach_end = 0; - } - } - - if (qn->lower != qn->upper) { - opt->sb.reach_end = 0; - opt->sm.reach_end = 0; - } - if (qn->lower > 1) - opt->sm.reach_end = 0; - } - - if (IS_INFINITE_REPEAT(qn->upper)) { - if (env->mmd.max == 0 && - NODE_IS_ANYCHAR(NODE_BODY(node)) && qn->greedy != 0) { - if (IS_MULTILINE(CTYPE_OPTION(NODE_QUANT_BODY(qn), env))) - add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_ML); - else - add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF); - } - - max = (xo.len.max > 0 ? INFINITE_LEN : 0); - } - else { - max = distance_multiply(xo.len.max, qn->upper); - } - - min = distance_multiply(xo.len.min, qn->lower); - set_mml(&opt->len, min, max); - } - break; - - case NODE_BAG: - { - BagNode* en = BAG_(node); - - switch (en->type) { - case BAG_OPTION: - { - OnigOptionType save = env->options; - - env->options = en->o.options; - r = optimize_nodes(NODE_BODY(node), opt, env); - env->options = save; - } - break; - - case BAG_MEMORY: -#ifdef USE_CALL - en->opt_count++; - if (en->opt_count > MAX_NODE_OPT_INFO_REF_COUNT) { - OnigLen min, max; - - min = 0; - max = INFINITE_LEN; - if (NODE_IS_MIN_FIXED(node)) min = en->min_len; - if (NODE_IS_MAX_FIXED(node)) max = en->max_len; - set_mml(&opt->len, min, max); - } - else -#endif - { - r = optimize_nodes(NODE_BODY(node), opt, env); - if (is_set_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK)) { - if (MEM_STATUS_AT0(env->scan_env->backrefed_mem, en->m.regnum)) - remove_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK); - } - } - break; - - case BAG_STOP_BACKTRACK: - r = optimize_nodes(NODE_BODY(node), opt, env); - break; - - case BAG_IF_ELSE: - { - OptEnv nenv; - - copy_opt_env(&nenv, env); - r = optimize_nodes(NODE_BAG_BODY(en), &xo, &nenv); - if (r == 0) { - add_mml(&nenv.mmd, &xo.len); - concat_left_node_opt_info(enc, opt, &xo); - if (IS_NOT_NULL(en->te.Then)) { - r = optimize_nodes(en->te.Then, &xo, &nenv); - if (r == 0) { - concat_left_node_opt_info(enc, opt, &xo); - } - } - - if (IS_NOT_NULL(en->te.Else)) { - r = optimize_nodes(en->te.Else, &xo, env); - if (r == 0) - alt_merge_node_opt_info(opt, &xo, env); - } - } - } - break; - } - } - break; - - case NODE_GIMMICK: - break; - - default: -#ifdef ONIG_DEBUG - fprintf(stderr, "optimize_nodes: undefined node type %d\n", NODE_TYPE(node)); -#endif - r = ONIGERR_TYPE_BUG; - break; - } - - return r; -} - -static int -set_optimize_exact(regex_t* reg, OptStr* e) -{ - int r; - - if (e->len == 0) return 0; - - reg->exact = (UChar* )xmalloc(e->len); - CHECK_NULL_RETURN_MEMERR(reg->exact); - xmemcpy(reg->exact, e->s, e->len); - reg->exact_end = reg->exact + e->len; - - if (e->case_fold) { - reg->optimize = OPTIMIZE_STR_CASE_FOLD; - if (e->good_case_fold != 0) { - if (e->len >= 2) { - r = set_sunday_quick_search_or_bmh_skip_table(reg, 1, - reg->exact, reg->exact_end, - reg->map, &(reg->map_offset)); - if (r != 0) return r; - reg->optimize = OPTIMIZE_STR_CASE_FOLD_FAST; - } - } - } - else { - int allow_reverse; - - allow_reverse = - ONIGENC_IS_ALLOWED_REVERSE_MATCH(reg->enc, reg->exact, reg->exact_end); - - if (e->len >= 2 || (e->len >= 1 && allow_reverse)) { - r = set_sunday_quick_search_or_bmh_skip_table(reg, 0, - reg->exact, reg->exact_end, - reg->map, &(reg->map_offset)); - if (r != 0) return r; - - reg->optimize = (allow_reverse != 0 - ? OPTIMIZE_STR_FAST - : OPTIMIZE_STR_FAST_STEP_FORWARD); - } - else { - reg->optimize = OPTIMIZE_STR; - } - } - - reg->dmin = e->mmd.min; - reg->dmax = e->mmd.max; - - if (reg->dmin != INFINITE_LEN) { - reg->threshold_len = reg->dmin + (int )(reg->exact_end - reg->exact); - } - - return 0; -} - -static void -set_optimize_map(regex_t* reg, OptMap* m) -{ - int i; - - for (i = 0; i < CHAR_MAP_SIZE; i++) - reg->map[i] = m->map[i]; - - reg->optimize = OPTIMIZE_MAP; - reg->dmin = m->mmd.min; - reg->dmax = m->mmd.max; - - if (reg->dmin != INFINITE_LEN) { - reg->threshold_len = reg->dmin + 1; - } -} - -static void -set_sub_anchor(regex_t* reg, OptAnc* anc) -{ - reg->sub_anchor |= anc->left & ANCR_BEGIN_LINE; - reg->sub_anchor |= anc->right & ANCR_END_LINE; -} - -#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) -static void print_optimize_info(FILE* f, regex_t* reg); -#endif - -static int -set_optimize_info_from_tree(Node* node, regex_t* reg, ScanEnv* scan_env) -{ - int r; - OptNode opt; - OptEnv env; - - env.enc = reg->enc; - env.options = reg->options; - env.case_fold_flag = reg->case_fold_flag; - env.scan_env = scan_env; - clear_mml(&env.mmd); - - r = optimize_nodes(node, &opt, &env); - if (r != 0) return r; - - reg->anchor = opt.anc.left & (ANCR_BEGIN_BUF | - ANCR_BEGIN_POSITION | ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML | - ANCR_LOOK_BEHIND); - - if ((opt.anc.left & (ANCR_LOOK_BEHIND | ANCR_PREC_READ_NOT)) != 0) - reg->anchor &= ~ANCR_ANYCHAR_INF_ML; - - reg->anchor |= opt.anc.right & (ANCR_END_BUF | ANCR_SEMI_END_BUF | - ANCR_PREC_READ_NOT); - - if (reg->anchor & (ANCR_END_BUF | ANCR_SEMI_END_BUF)) { - reg->anchor_dmin = opt.len.min; - reg->anchor_dmax = opt.len.max; - } - - if (opt.sb.len > 0 || opt.sm.len > 0) { - select_opt_exact(reg->enc, &opt.sb, &opt.sm); - if (opt.map.value > 0 && comp_opt_exact_or_map(&opt.sb, &opt.map) > 0) { - goto set_map; - } - else { - r = set_optimize_exact(reg, &opt.sb); - set_sub_anchor(reg, &opt.sb.anc); - } - } - else if (opt.map.value > 0) { - set_map: - set_optimize_map(reg, &opt.map); - set_sub_anchor(reg, &opt.map.anc); - } - else { - reg->sub_anchor |= opt.anc.left & ANCR_BEGIN_LINE; - if (opt.len.max == 0) - reg->sub_anchor |= opt.anc.right & ANCR_END_LINE; - } - -#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) - print_optimize_info(stderr, reg); -#endif - return r; -} - -static void -clear_optimize_info(regex_t* reg) -{ - reg->optimize = OPTIMIZE_NONE; - reg->anchor = 0; - reg->anchor_dmin = 0; - reg->anchor_dmax = 0; - reg->sub_anchor = 0; - reg->exact_end = (UChar* )NULL; - reg->map_offset = 0; - reg->threshold_len = 0; - if (IS_NOT_NULL(reg->exact)) { - xfree(reg->exact); - reg->exact = (UChar* )NULL; - } -} - -#ifdef ONIG_DEBUG - -static void print_enc_string(FILE* fp, OnigEncoding enc, - const UChar *s, const UChar *end) -{ - fprintf(fp, "\nPATTERN: /"); - - if (ONIGENC_MBC_MINLEN(enc) > 1) { - const UChar *p; - OnigCodePoint code; - - p = s; - while (p < end) { - code = ONIGENC_MBC_TO_CODE(enc, p, end); - if (code >= 0x80) { - fprintf(fp, " 0x%04x ", (int )code); - } - else { - fputc((int )code, fp); - } - - p += enclen(enc, p); - } - } - else { - while (s < end) { - fputc((int )*s, fp); - s++; - } - } - - fprintf(fp, "/\n"); -} - -#endif /* ONIG_DEBUG */ - -#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH) - -static void -print_distance_range(FILE* f, OnigLen a, OnigLen b) -{ - if (a == INFINITE_LEN) - fputs("inf", f); - else - fprintf(f, "(%u)", a); - - fputs("-", f); - - if (b == INFINITE_LEN) - fputs("inf", f); - else - fprintf(f, "(%u)", b); -} - -static void -print_anchor(FILE* f, int anchor) -{ - int q = 0; - - fprintf(f, "["); - - if (anchor & ANCR_BEGIN_BUF) { - fprintf(f, "begin-buf"); - q = 1; - } - if (anchor & ANCR_BEGIN_LINE) { - if (q) fprintf(f, ", "); - q = 1; - fprintf(f, "begin-line"); - } - if (anchor & ANCR_BEGIN_POSITION) { - if (q) fprintf(f, ", "); - q = 1; - fprintf(f, "begin-pos"); - } - if (anchor & ANCR_END_BUF) { - if (q) fprintf(f, ", "); - q = 1; - fprintf(f, "end-buf"); - } - if (anchor & ANCR_SEMI_END_BUF) { - if (q) fprintf(f, ", "); - q = 1; - fprintf(f, "semi-end-buf"); - } - if (anchor & ANCR_END_LINE) { - if (q) fprintf(f, ", "); - q = 1; - fprintf(f, "end-line"); - } - if (anchor & ANCR_ANYCHAR_INF) { - if (q) fprintf(f, ", "); - q = 1; - fprintf(f, "anychar-inf"); - } - if (anchor & ANCR_ANYCHAR_INF_ML) { - if (q) fprintf(f, ", "); - fprintf(f, "anychar-inf-ml"); - } - - fprintf(f, "]"); -} - -static void -print_optimize_info(FILE* f, regex_t* reg) -{ - static const char* on[] = { "NONE", "STR", - "STR_FAST", "STR_FAST_STEP_FORWARD", - "STR_CASE_FOLD_FAST", "STR_CASE_FOLD", "MAP" }; - - fprintf(f, "optimize: %s\n", on[reg->optimize]); - fprintf(f, " anchor: "); print_anchor(f, reg->anchor); - if ((reg->anchor & ANCR_END_BUF_MASK) != 0) - print_distance_range(f, reg->anchor_dmin, reg->anchor_dmax); - fprintf(f, "\n"); - - if (reg->optimize) { - fprintf(f, " sub anchor: "); print_anchor(f, reg->sub_anchor); - fprintf(f, "\n"); - } - fprintf(f, "\n"); - - if (reg->exact) { - UChar *p; - fprintf(f, "exact: ["); - for (p = reg->exact; p < reg->exact_end; p++) { - fputc(*p, f); - } - fprintf(f, "]: length: %ld\n", (reg->exact_end - reg->exact)); - } - else if (reg->optimize & OPTIMIZE_MAP) { - int c, i, n = 0; - - for (i = 0; i < CHAR_MAP_SIZE; i++) - if (reg->map[i]) n++; - - fprintf(f, "map: n=%d\n", n); - if (n > 0) { - c = 0; - fputc('[', f); - for (i = 0; i < CHAR_MAP_SIZE; i++) { - if (reg->map[i] != 0) { - if (c > 0) fputs(", ", f); - c++; - if (ONIGENC_MBC_MAXLEN(reg->enc) == 1 && - ONIGENC_IS_CODE_PRINT(reg->enc, (OnigCodePoint )i)) - fputc(i, f); - else - fprintf(f, "%d", i); - } - } - fprintf(f, "]\n"); - } - } -} -#endif - - -extern RegexExt* -onig_get_regex_ext(regex_t* reg) -{ - if (IS_NULL(reg->extp)) { - RegexExt* ext = (RegexExt* )xmalloc(sizeof(*ext)); - if (IS_NULL(ext)) return 0; - - ext->pattern = 0; - ext->pattern_end = 0; -#ifdef USE_CALLOUT - ext->tag_table = 0; - ext->callout_num = 0; - ext->callout_list_alloc = 0; - ext->callout_list = 0; -#endif - - reg->extp = ext; - } - - return reg->extp; -} - -static void -free_regex_ext(RegexExt* ext) -{ - if (IS_NOT_NULL(ext)) { - if (IS_NOT_NULL(ext->pattern)) - xfree((void* )ext->pattern); - -#ifdef USE_CALLOUT - if (IS_NOT_NULL(ext->tag_table)) - onig_callout_tag_table_free(ext->tag_table); - - if (IS_NOT_NULL(ext->callout_list)) - onig_free_reg_callout_list(ext->callout_num, ext->callout_list); -#endif - - xfree(ext); - } -} - -extern int -onig_ext_set_pattern(regex_t* reg, const UChar* pattern, const UChar* pattern_end) -{ - RegexExt* ext; - UChar* s; - - ext = onig_get_regex_ext(reg); - CHECK_NULL_RETURN_MEMERR(ext); - - s = onigenc_strdup(reg->enc, pattern, pattern_end); - CHECK_NULL_RETURN_MEMERR(s); - - ext->pattern = s; - ext->pattern_end = s + (pattern_end - pattern); - - return ONIG_NORMAL; -} - -extern void -onig_free_body(regex_t* reg) -{ - if (IS_NOT_NULL(reg)) { - ops_free(reg); - if (IS_NOT_NULL(reg->string_pool)) { - xfree(reg->string_pool); - reg->string_pool_end = reg->string_pool = 0; - } - if (IS_NOT_NULL(reg->exact)) xfree(reg->exact); - if (IS_NOT_NULL(reg->repeat_range)) xfree(reg->repeat_range); - if (IS_NOT_NULL(reg->extp)) { - free_regex_ext(reg->extp); - reg->extp = 0; - } - - onig_names_free(reg); - } -} - -extern void -onig_free(regex_t* reg) -{ - if (IS_NOT_NULL(reg)) { - onig_free_body(reg); - xfree(reg); - } -} - - -#ifdef ONIG_DEBUG_PARSE -static void print_tree P_((FILE* f, Node* node)); -#endif - -extern int onig_init_for_match_at(regex_t* reg); - -extern int -onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end, - OnigErrorInfo* einfo) -{ - int r; - Node* root; - ScanEnv scan_env; -#ifdef USE_CALL - UnsetAddrList uslist; -#endif - - root = 0; - if (IS_NOT_NULL(einfo)) { - einfo->enc = reg->enc; - einfo->par = (UChar* )NULL; - } - -#ifdef ONIG_DEBUG - print_enc_string(stderr, reg->enc, pattern, pattern_end); -#endif - - if (reg->ops_alloc == 0) { - r = ops_init(reg, OPS_INIT_SIZE); - if (r != 0) goto end; - } - else - reg->ops_used = 0; - - reg->string_pool = 0; - reg->string_pool_end = 0; - reg->num_mem = 0; - reg->num_repeat = 0; - reg->num_null_check = 0; - reg->repeat_range_alloc = 0; - reg->repeat_range = (OnigRepeatRange* )NULL; - - r = onig_parse_tree(&root, pattern, pattern_end, reg, &scan_env); - if (r != 0) goto err; - - /* mixed use named group and no-named group */ - if (scan_env.num_named > 0 && - IS_SYNTAX_BV(scan_env.syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) && - ! ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_CAPTURE_GROUP)) { - if (scan_env.num_named != scan_env.num_mem) - r = disable_noname_group_capture(&root, reg, &scan_env); - else - r = numbered_ref_check(root); - - if (r != 0) goto err; - } - - r = check_backrefs(root, &scan_env); - if (r != 0) goto err; - -#ifdef USE_CALL - if (scan_env.num_call > 0) { - r = unset_addr_list_init(&uslist, scan_env.num_call); - if (r != 0) goto err; - scan_env.unset_addr_list = &uslist; - r = setup_call(root, &scan_env, 0); - if (r != 0) goto err_unset; - r = setup_call2(root); - if (r != 0) goto err_unset; - r = recursive_call_check_trav(root, &scan_env, 0); - if (r < 0) goto err_unset; - r = infinite_recursive_call_check_trav(root, &scan_env); - if (r != 0) goto err_unset; - - setup_called_state(root, 0); - } - - reg->num_call = scan_env.num_call; -#endif - - r = setup_tree(root, reg, 0, &scan_env); - if (r != 0) goto err_unset; - -#ifdef ONIG_DEBUG_PARSE - print_tree(stderr, root); -#endif - - reg->capture_history = scan_env.capture_history; - reg->bt_mem_start = scan_env.bt_mem_start; - reg->bt_mem_start |= reg->capture_history; - if (IS_FIND_CONDITION(reg->options)) - MEM_STATUS_ON_ALL(reg->bt_mem_end); - else { - reg->bt_mem_end = scan_env.bt_mem_end; - reg->bt_mem_end |= reg->capture_history; - } - reg->bt_mem_start |= reg->bt_mem_end; - - clear_optimize_info(reg); -#ifndef ONIG_DONT_OPTIMIZE - r = set_optimize_info_from_tree(root, reg, &scan_env); - if (r != 0) goto err_unset; -#endif - - if (IS_NOT_NULL(scan_env.mem_env_dynamic)) { - xfree(scan_env.mem_env_dynamic); - scan_env.mem_env_dynamic = (MemEnv* )NULL; - } - - r = compile_tree(root, reg, &scan_env); - if (r == 0) { - if (scan_env.keep_num > 0) { - r = add_op(reg, OP_UPDATE_VAR); - if (r != 0) goto err; - - COP(reg)->update_var.type = UPDATE_VAR_KEEP_FROM_STACK_LAST; - COP(reg)->update_var.id = 0; /* not used */ - } - - r = add_op(reg, OP_END); - if (r != 0) goto err; - -#ifdef USE_CALL - if (scan_env.num_call > 0) { - r = fix_unset_addr_list(&uslist, reg); - unset_addr_list_end(&uslist); - if (r != 0) goto err; - } -#endif - - if ((reg->num_repeat != 0) || (reg->bt_mem_end != 0) -#ifdef USE_CALLOUT - || (IS_NOT_NULL(reg->extp) && reg->extp->callout_num != 0) -#endif - ) - reg->stack_pop_level = STACK_POP_LEVEL_ALL; - else { - if (reg->bt_mem_start != 0) - reg->stack_pop_level = STACK_POP_LEVEL_MEM_START; - else - reg->stack_pop_level = STACK_POP_LEVEL_FREE; - } - - r = ops_make_string_pool(reg); - if (r != 0) goto err; - } -#ifdef USE_CALL - else if (scan_env.num_call > 0) { - unset_addr_list_end(&uslist); - } -#endif - onig_node_free(root); - -#ifdef ONIG_DEBUG_COMPILE - onig_print_names(stderr, reg); - onig_print_compiled_byte_code_list(stderr, reg); -#endif - -#ifdef USE_DIRECT_THREADED_CODE - /* opcode -> opaddr */ - onig_init_for_match_at(reg); -#endif - - end: - return r; - - err_unset: -#ifdef USE_CALL - if (scan_env.num_call > 0) { - unset_addr_list_end(&uslist); - } -#endif - err: - if (IS_NOT_NULL(scan_env.error)) { - if (IS_NOT_NULL(einfo)) { - einfo->par = scan_env.error; - einfo->par_end = scan_env.error_end; - } - } - - onig_node_free(root); - if (IS_NOT_NULL(scan_env.mem_env_dynamic)) - xfree(scan_env.mem_env_dynamic); - return r; -} - - -static int onig_inited = 0; - -extern int -onig_reg_init(regex_t* reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, - OnigEncoding enc, OnigSyntaxType* syntax) -{ - int r; - - xmemset(reg, 0, sizeof(*reg)); - - if (onig_inited == 0) { -#if 0 - return ONIGERR_LIBRARY_IS_NOT_INITIALIZED; -#else - r = onig_initialize(&enc, 1); - if (r != 0) - return ONIGERR_FAIL_TO_INITIALIZE; - - onig_warning("You didn't call onig_initialize() explicitly"); -#endif - } - - if (IS_NULL(reg)) - return ONIGERR_INVALID_ARGUMENT; - - if (ONIGENC_IS_UNDEF(enc)) - return ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED; - - if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) - == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) { - return ONIGERR_INVALID_COMBINATION_OF_OPTIONS; - } - - if ((option & ONIG_OPTION_NEGATE_SINGLELINE) != 0) { - option |= syntax->options; - option &= ~ONIG_OPTION_SINGLELINE; - } - else - option |= syntax->options; - - (reg)->enc = enc; - (reg)->options = option; - (reg)->syntax = syntax; - (reg)->optimize = 0; - (reg)->exact = (UChar* )NULL; - (reg)->extp = (RegexExt* )NULL; - - (reg)->ops = (Operation* )NULL; - (reg)->ops_curr = (Operation* )NULL; - (reg)->ops_used = 0; - (reg)->ops_alloc = 0; - (reg)->name_table = (void* )NULL; - - (reg)->case_fold_flag = case_fold_flag; - return 0; -} - -extern int -onig_new_without_alloc(regex_t* reg, - const UChar* pattern, const UChar* pattern_end, - OnigOptionType option, OnigEncoding enc, - OnigSyntaxType* syntax, OnigErrorInfo* einfo) -{ - int r; - - r = onig_reg_init(reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax); - if (r != 0) return r; - - r = onig_compile(reg, pattern, pattern_end, einfo); - return r; -} - -extern int -onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end, - OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, - OnigErrorInfo* einfo) -{ - int r; - - *reg = (regex_t* )xmalloc(sizeof(regex_t)); - if (IS_NULL(*reg)) return ONIGERR_MEMORY; - - r = onig_reg_init(*reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax); - if (r != 0) goto err; - - r = onig_compile(*reg, pattern, pattern_end, einfo); - if (r != 0) { - err: - onig_free(*reg); - *reg = NULL; - } - return r; -} - -extern int -onig_initialize(OnigEncoding encodings[], int n) -{ - int i; - int r; - - if (onig_inited != 0) - return 0; - - onigenc_init(); - - onig_inited = 1; - - for (i = 0; i < n; i++) { - OnigEncoding enc = encodings[i]; - r = onig_initialize_encoding(enc); - if (r != 0) - return r; - } - - return ONIG_NORMAL; -} - -typedef struct EndCallListItem { - struct EndCallListItem* next; - void (*func)(void); -} EndCallListItemType; - -static EndCallListItemType* EndCallTop; - -extern void onig_add_end_call(void (*func)(void)) -{ - EndCallListItemType* item; - - item = (EndCallListItemType* )xmalloc(sizeof(*item)); - if (item == 0) return ; - - item->next = EndCallTop; - item->func = func; - - EndCallTop = item; -} - -static void -exec_end_call_list(void) -{ - EndCallListItemType* prev; - void (*func)(void); - - while (EndCallTop != 0) { - func = EndCallTop->func; - (*func)(); - - prev = EndCallTop; - EndCallTop = EndCallTop->next; - xfree(prev); - } -} - -extern int -onig_end(void) -{ - exec_end_call_list(); - -#ifdef USE_CALLOUT - onig_global_callout_names_free(); -#endif - - onigenc_end(); - - onig_inited = 0; - - return 0; -} - -extern int -onig_is_in_code_range(const UChar* p, OnigCodePoint code) -{ - OnigCodePoint n, *data; - OnigCodePoint low, high, x; - - GET_CODE_POINT(n, p); - data = (OnigCodePoint* )p; - data++; - - for (low = 0, high = n; low < high; ) { - x = (low + high) >> 1; - if (code > data[x * 2 + 1]) - low = x + 1; - else - high = x; - } - - return ((low < n && code >= data[low * 2]) ? 1 : 0); -} - -extern int -onig_is_code_in_cc_len(int elen, OnigCodePoint code, /* CClassNode* */ void* cc_arg) -{ - int found; - CClassNode* cc = (CClassNode* )cc_arg; - - if (elen > 1 || (code >= SINGLE_BYTE_SIZE)) { - if (IS_NULL(cc->mbuf)) { - found = 0; - } - else { - found = onig_is_in_code_range(cc->mbuf->p, code) != 0; - } - } - else { - found = BITSET_AT(cc->bs, code) != 0; - } - - if (IS_NCCLASS_NOT(cc)) - return !found; - else - return found; -} - -extern int -onig_is_code_in_cc(OnigEncoding enc, OnigCodePoint code, CClassNode* cc) -{ - int len; - - if (ONIGENC_MBC_MINLEN(enc) > 1) { - len = 2; - } - else { - len = ONIGENC_CODE_TO_MBCLEN(enc, code); - if (len < 0) return 0; - } - return onig_is_code_in_cc_len(len, code, cc); -} - - -#ifdef ONIG_DEBUG_PARSE - -static void -p_string(FILE* f, int len, UChar* s) -{ - fputs(":", f); - while (len-- > 0) { fputc(*s++, f); } -} - -static void -Indent(FILE* f, int indent) -{ - int i; - for (i = 0; i < indent; i++) putc(' ', f); -} - -static void -print_indent_tree(FILE* f, Node* node, int indent) -{ - int i; - NodeType type; - UChar* p; - int add = 3; - - Indent(f, indent); - if (IS_NULL(node)) { - fprintf(f, "ERROR: null node!!!\n"); - exit (0); - } - - type = NODE_TYPE(node); - switch (type) { - case NODE_LIST: - case NODE_ALT: - if (type == NODE_LIST) - fprintf(f, "\n", node); - else - fprintf(f, "\n", node); - - print_indent_tree(f, NODE_CAR(node), indent + add); - while (IS_NOT_NULL(node = NODE_CDR(node))) { - if (NODE_TYPE(node) != type) { - fprintf(f, "ERROR: list/alt right is not a cons. %d\n", NODE_TYPE(node)); - exit(0); - } - print_indent_tree(f, NODE_CAR(node), indent + add); - } - break; - - case NODE_STRING: - { - char* mode; - char* dont; - char* good; - - if (NODE_STRING_IS_RAW(node)) - mode = "-raw"; - else if (NODE_STRING_IS_AMBIG(node)) - mode = "-ambig"; - else - mode = ""; - - if (NODE_STRING_IS_GOOD_AMBIG(node)) - good = "-good"; - else - good = ""; - - if (NODE_STRING_IS_DONT_GET_OPT_INFO(node)) - dont = " (dont-opt)"; - else - dont = ""; - - fprintf(f, "", mode, good, dont, node); - for (p = STR_(node)->s; p < STR_(node)->end; p++) { - if (*p >= 0x20 && *p < 0x7f) - fputc(*p, f); - else { - fprintf(f, " 0x%02x", *p); - } - } - } - break; - - case NODE_CCLASS: - fprintf(f, "", node); - if (IS_NCCLASS_NOT(CCLASS_(node))) fputs(" not", f); - if (CCLASS_(node)->mbuf) { - BBuf* bbuf = CCLASS_(node)->mbuf; - for (i = 0; i < bbuf->used; i++) { - if (i > 0) fprintf(f, ","); - fprintf(f, "%0x", bbuf->p[i]); - } - } - break; - - case NODE_CTYPE: - fprintf(f, " ", node); - switch (CTYPE_(node)->ctype) { - case CTYPE_ANYCHAR: - fprintf(f, "", node); - break; - - case ONIGENC_CTYPE_WORD: - if (CTYPE_(node)->not != 0) - fputs("not word", f); - else - fputs("word", f); - - if (CTYPE_(node)->ascii_mode != 0) - fputs(" (ascii)", f); - - break; - - default: - fprintf(f, "ERROR: undefined ctype.\n"); - exit(0); - } - break; - - case NODE_ANCHOR: - fprintf(f, " ", node); - switch (ANCHOR_(node)->type) { - case ANCR_BEGIN_BUF: fputs("begin buf", f); break; - case ANCR_END_BUF: fputs("end buf", f); break; - case ANCR_BEGIN_LINE: fputs("begin line", f); break; - case ANCR_END_LINE: fputs("end line", f); break; - case ANCR_SEMI_END_BUF: fputs("semi end buf", f); break; - case ANCR_BEGIN_POSITION: fputs("begin position", f); break; - - case ANCR_WORD_BOUNDARY: fputs("word boundary", f); break; - case ANCR_NO_WORD_BOUNDARY: fputs("not word boundary", f); break; -#ifdef USE_WORD_BEGIN_END - case ANCR_WORD_BEGIN: fputs("word begin", f); break; - case ANCR_WORD_END: fputs("word end", f); break; -#endif - case ANCR_TEXT_SEGMENT_BOUNDARY: - fputs("text-segment boundary", f); break; - case ANCR_NO_TEXT_SEGMENT_BOUNDARY: - fputs("no text-segment boundary", f); break; - case ANCR_PREC_READ: - fprintf(f, "prec read\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); - break; - case ANCR_PREC_READ_NOT: - fprintf(f, "prec read not\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); - break; - case ANCR_LOOK_BEHIND: - fprintf(f, "look behind\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); - break; - case ANCR_LOOK_BEHIND_NOT: - fprintf(f, "look behind not\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); - break; - - default: - fprintf(f, "ERROR: undefined anchor type.\n"); - break; - } - break; - - case NODE_BACKREF: - { - int* p; - BackRefNode* br = BACKREF_(node); - p = BACKREFS_P(br); - fprintf(f, "", NODE_IS_CHECKER(node) ? "-checker" : "", node); - for (i = 0; i < br->back_num; i++) { - if (i > 0) fputs(", ", f); - fprintf(f, "%d", p[i]); - } - } - break; - -#ifdef USE_CALL - case NODE_CALL: - { - CallNode* cn = CALL_(node); - fprintf(f, "", node); - p_string(f, cn->name_end - cn->name, cn->name); - } - break; -#endif - - case NODE_QUANT: - fprintf(f, "{%d,%d}%s\n", node, - QUANT_(node)->lower, QUANT_(node)->upper, - (QUANT_(node)->greedy ? "" : "?")); - print_indent_tree(f, NODE_BODY(node), indent + add); - break; - - case NODE_BAG: - fprintf(f, " ", node); - switch (BAG_(node)->type) { - case BAG_OPTION: - fprintf(f, "option:%d", BAG_(node)->o.options); - break; - case BAG_MEMORY: - fprintf(f, "memory:%d", BAG_(node)->m.regnum); - break; - case BAG_STOP_BACKTRACK: - fprintf(f, "stop-bt"); - break; - case BAG_IF_ELSE: - fprintf(f, "if-else"); - break; - } - fprintf(f, "\n"); - print_indent_tree(f, NODE_BODY(node), indent + add); - break; - - case NODE_GIMMICK: - fprintf(f, " ", node); - switch (GIMMICK_(node)->type) { - case GIMMICK_FAIL: - fprintf(f, "fail"); - break; - case GIMMICK_SAVE: - fprintf(f, "save:%d:%d", GIMMICK_(node)->detail_type, GIMMICK_(node)->id); - break; - case GIMMICK_UPDATE_VAR: - fprintf(f, "update_var:%d:%d", GIMMICK_(node)->detail_type, GIMMICK_(node)->id); - break; -#ifdef USE_CALLOUT - case GIMMICK_CALLOUT: - switch (GIMMICK_(node)->detail_type) { - case ONIG_CALLOUT_OF_CONTENTS: - fprintf(f, "callout:contents:%d", GIMMICK_(node)->num); - break; - case ONIG_CALLOUT_OF_NAME: - fprintf(f, "callout:name:%d:%d", GIMMICK_(node)->id, GIMMICK_(node)->num); - break; - } -#endif - } - break; - - default: - fprintf(f, "print_indent_tree: undefined node type %d\n", NODE_TYPE(node)); - break; - } - - if (type != NODE_LIST && type != NODE_ALT && type != NODE_QUANT && - type != NODE_BAG) - fprintf(f, "\n"); - fflush(f); -} - -static void -print_tree(FILE* f, Node* node) -{ - print_indent_tree(f, node, 0); -} -#endif diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.c deleted file mode 100644 index 079cd01f29f7..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.c +++ /dev/null @@ -1,1029 +0,0 @@ -/********************************************************************** - regenc.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" - -OnigEncoding OnigEncDefaultCharEncoding = ONIG_ENCODING_INIT_DEFAULT; - -#define INITED_LIST_SIZE 20 - -static int InitedListNum; - -static struct { - OnigEncoding enc; - int inited; -} InitedList[INITED_LIST_SIZE]; - -static int -enc_inited_entry(OnigEncoding enc) -{ - int i; - - for (i = 0; i < InitedListNum; i++) { - if (InitedList[i].enc == enc) { - InitedList[i].inited = 1; - return i; - } - } - - i = InitedListNum; - if (i < INITED_LIST_SIZE - 1) { - InitedList[i].enc = enc; - InitedList[i].inited = 1; - InitedListNum++; - return i; - } - - return -1; -} - -static int -enc_is_inited(OnigEncoding enc) -{ - int i; - - for (i = 0; i < InitedListNum; i++) { - if (InitedList[i].enc == enc) { - return InitedList[i].inited; - } - } - - return 0; -} - -static int OnigEncInited; - -extern int -onigenc_init(void) -{ - if (OnigEncInited != 0) return 0; - - OnigEncInited = 1; - return 0; -} - -extern int -onigenc_end(void) -{ - int i; - - for (i = 0; i < InitedListNum; i++) { - InitedList[i].enc = 0; - InitedList[i].inited = 0; - } - InitedListNum = 0; - - OnigEncInited = 0; - return ONIG_NORMAL; -} - -extern int -onig_initialize_encoding(OnigEncoding enc) -{ - int r; - - if (enc != ONIG_ENCODING_ASCII && - ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc)) { - OnigEncoding ascii = ONIG_ENCODING_ASCII; - if (ascii->init != 0 && enc_is_inited(ascii) == 0) { - r = ascii->init(); - if (r != ONIG_NORMAL) return r; - enc_inited_entry(ascii); - } - } - - if (enc->init != 0 && - enc_is_inited(enc) == 0) { - r = (enc->init)(); - if (r == ONIG_NORMAL) - enc_inited_entry(enc); - return r; - } - - return 0; -} - -extern OnigEncoding -onigenc_get_default_encoding(void) -{ - return OnigEncDefaultCharEncoding; -} - -extern int -onigenc_set_default_encoding(OnigEncoding enc) -{ - OnigEncDefaultCharEncoding = enc; - return 0; -} - -extern UChar* -onigenc_strdup(OnigEncoding enc, const UChar* s, const UChar* end) -{ - int slen, term_len, i; - UChar *r; - - slen = (int )(end - s); - term_len = ONIGENC_MBC_MINLEN(enc); - - r = (UChar* )xmalloc(slen + term_len); - CHECK_NULL_RETURN(r); - xmemcpy(r, s, slen); - - for (i = 0; i < term_len; i++) - r[slen + i] = (UChar )0; - - return r; -} - -extern UChar* -onigenc_get_right_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s) -{ - UChar* p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s); - if (p < s) { - p += enclen(enc, p); - } - return p; -} - -extern UChar* -onigenc_get_right_adjust_char_head_with_prev(OnigEncoding enc, - const UChar* start, const UChar* s, const UChar** prev) -{ - UChar* p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s); - - if (p < s) { - if (prev) *prev = (const UChar* )p; - p += enclen(enc, p); - } - else { - if (prev) *prev = (const UChar* )NULL; /* Sorry */ - } - return p; -} - -extern UChar* -onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, const UChar* s) -{ - if (s <= start) - return (UChar* )NULL; - - return ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s - 1); -} - -extern UChar* -onigenc_step_back(OnigEncoding enc, const UChar* start, const UChar* s, int n) -{ - while (ONIG_IS_NOT_NULL(s) && n-- > 0) { - if (s <= start) - return (UChar* )NULL; - - s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s - 1); - } - return (UChar* )s; -} - -#if 0 -extern int -onigenc_mbc_enc_len_end(OnigEncoding enc, const UChar* p, const UChar* end) -{ - int len; - int n; - - len = ONIGENC_MBC_ENC_LEN(enc, p); - n = (int )(end - p); - - return (n < len ? n : len); -} -#endif - -extern UChar* -onigenc_step(OnigEncoding enc, const UChar* p, const UChar* end, int n) -{ - UChar* q = (UChar* )p; - while (n-- > 0) { - q += ONIGENC_MBC_ENC_LEN(enc, q); - } - return (q <= end ? q : NULL); -} - -extern int -onigenc_strlen(OnigEncoding enc, const UChar* p, const UChar* end) -{ - int n = 0; - UChar* q = (UChar* )p; - - while (q < end) { - q += ONIGENC_MBC_ENC_LEN(enc, q); - n++; - } - return n; -} - -extern int -onigenc_strlen_null(OnigEncoding enc, const UChar* s) -{ - int n = 0; - UChar* p = (UChar* )s; - - while (1) { - if (*p == '\0') { - UChar* q; - int len = ONIGENC_MBC_MINLEN(enc); - - if (len == 1) return n; - q = p + 1; - while (len > 1) { - if (*q != '\0') break; - q++; - len--; - } - if (len == 1) return n; - } - p += ONIGENC_MBC_ENC_LEN(enc, p); - n++; - } -} - -extern int -onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s) -{ - UChar* start = (UChar* )s; - UChar* p = (UChar* )s; - - while (1) { - if (*p == '\0') { - UChar* q; - int len = ONIGENC_MBC_MINLEN(enc); - - if (len == 1) return (int )(p - start); - q = p + 1; - while (len > 1) { - if (*q != '\0') break; - q++; - len--; - } - if (len == 1) return (int )(p - start); - } - p += ONIGENC_MBC_ENC_LEN(enc, p); - } -} - -const UChar OnigEncAsciiToLowerCaseTable[] = { - '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', - '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', - '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', - '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', - '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', - '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', - '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', - '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', - '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', - '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', - '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', - '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', - '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', - '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', - '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', - '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', - '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', - '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', - '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', - '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', - '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', - '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', - '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', - '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', - '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', - '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', - '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', - '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', - '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', - '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', - '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', - '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', -}; - -#ifdef USE_UPPER_CASE_TABLE -const UChar OnigEncAsciiToUpperCaseTable[256] = { - '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', - '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', - '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', - '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', - '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', - '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', - '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', - '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', - '\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107', - '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', - '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', - '\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137', - '\140', '\101', '\102', '\103', '\104', '\105', '\106', '\107', - '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', - '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', - '\130', '\131', '\132', '\173', '\174', '\175', '\176', '\177', - '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', - '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', - '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', - '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', - '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', - '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', - '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', - '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', - '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', - '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', - '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', - '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', - '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', - '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', - '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', - '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377', -}; -#endif - -const unsigned short OnigEncAsciiCtypeTable[256] = { - 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, - 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008, - 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, - 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, - 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, - 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, - 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, - 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, - 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, - 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, - 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, - 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, - 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, - 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, - 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, - 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 -}; - -const UChar OnigEncISO_8859_1_ToLowerCaseTable[256] = { - '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', - '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', - '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', - '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', - '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', - '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', - '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', - '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', - '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147', - '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', - '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', - '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137', - '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147', - '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157', - '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167', - '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177', - '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', - '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', - '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', - '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', - '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', - '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', - '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', - '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', - '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', - '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', - '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327', - '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337', - '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347', - '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357', - '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367', - '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377' -}; - -#ifdef USE_UPPER_CASE_TABLE -const UChar OnigEncISO_8859_1_ToUpperCaseTable[256] = { - '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', - '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', - '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', - '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037', - '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047', - '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057', - '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067', - '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077', - '\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107', - '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', - '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', - '\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137', - '\140', '\101', '\102', '\103', '\104', '\105', '\106', '\107', - '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117', - '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127', - '\130', '\131', '\132', '\173', '\174', '\175', '\176', '\177', - '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207', - '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217', - '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227', - '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237', - '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247', - '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257', - '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267', - '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277', - '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', - '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', - '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327', - '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337', - '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307', - '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317', - '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\367', - '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\377', -}; -#endif - -extern void -onigenc_set_default_caseconv_table(const UChar* table ARG_UNUSED) -{ - /* nothing */ - /* obsoleted. */ -} - -extern UChar* -onigenc_get_left_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s) -{ - return ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s); -} - -const OnigPairCaseFoldCodes OnigAsciiLowerMap[] = { - { 0x41, 0x61 }, - { 0x42, 0x62 }, - { 0x43, 0x63 }, - { 0x44, 0x64 }, - { 0x45, 0x65 }, - { 0x46, 0x66 }, - { 0x47, 0x67 }, - { 0x48, 0x68 }, - { 0x49, 0x69 }, - { 0x4a, 0x6a }, - { 0x4b, 0x6b }, - { 0x4c, 0x6c }, - { 0x4d, 0x6d }, - { 0x4e, 0x6e }, - { 0x4f, 0x6f }, - { 0x50, 0x70 }, - { 0x51, 0x71 }, - { 0x52, 0x72 }, - { 0x53, 0x73 }, - { 0x54, 0x74 }, - { 0x55, 0x75 }, - { 0x56, 0x76 }, - { 0x57, 0x77 }, - { 0x58, 0x78 }, - { 0x59, 0x79 }, - { 0x5a, 0x7a } -}; - -extern int -onigenc_ascii_apply_all_case_fold(OnigCaseFoldType flag ARG_UNUSED, - OnigApplyAllCaseFoldFunc f, void* arg) -{ - OnigCodePoint code; - int i, r; - - for (i = 0; - i < (int )(sizeof(OnigAsciiLowerMap)/sizeof(OnigPairCaseFoldCodes)); - i++) { - code = OnigAsciiLowerMap[i].to; - r = (*f)(OnigAsciiLowerMap[i].from, &code, 1, arg); - if (r != 0) return r; - - code = OnigAsciiLowerMap[i].from; - r = (*f)(OnigAsciiLowerMap[i].to, &code, 1, arg); - if (r != 0) return r; - } - - return 0; -} - -extern int -onigenc_ascii_get_case_fold_codes_by_str(OnigCaseFoldType flag ARG_UNUSED, - const OnigUChar* p, const OnigUChar* end ARG_UNUSED, - OnigCaseFoldCodeItem items[]) -{ - if (0x41 <= *p && *p <= 0x5a) { - items[0].byte_len = 1; - items[0].code_len = 1; - items[0].code[0] = (OnigCodePoint )(*p + 0x20); - return 1; - } - else if (0x61 <= *p && *p <= 0x7a) { - items[0].byte_len = 1; - items[0].code_len = 1; - items[0].code[0] = (OnigCodePoint )(*p - 0x20); - return 1; - } - else - return 0; -} - -static int -ss_apply_all_case_fold(OnigCaseFoldType flag ARG_UNUSED, - OnigApplyAllCaseFoldFunc f, void* arg) -{ - static OnigCodePoint ss[] = { 0x73, 0x73 }; - - return (*f)((OnigCodePoint )0xdf, ss, 2, arg); -} - -extern int -onigenc_apply_all_case_fold_with_map(int map_size, - const OnigPairCaseFoldCodes map[], - int ess_tsett_flag, OnigCaseFoldType flag, - OnigApplyAllCaseFoldFunc f, void* arg) -{ - OnigCodePoint code; - int i, r; - - r = onigenc_ascii_apply_all_case_fold(flag, f, arg); - if (r != 0) return r; - - for (i = 0; i < map_size; i++) { - code = map[i].to; - r = (*f)(map[i].from, &code, 1, arg); - if (r != 0) return r; - - code = map[i].from; - r = (*f)(map[i].to, &code, 1, arg); - if (r != 0) return r; - } - - if (ess_tsett_flag != 0) - return ss_apply_all_case_fold(flag, f, arg); - - return 0; -} - -extern int -onigenc_get_case_fold_codes_by_str_with_map(int map_size, - const OnigPairCaseFoldCodes map[], - int ess_tsett_flag, OnigCaseFoldType flag ARG_UNUSED, - const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]) -{ - if (0x41 <= *p && *p <= 0x5a) { - items[0].byte_len = 1; - items[0].code_len = 1; - items[0].code[0] = (OnigCodePoint )(*p + 0x20); - if (*p == 0x53 && ess_tsett_flag != 0 && end > p + 1 - && (*(p+1) == 0x53 || *(p+1) == 0x73)) { - /* SS */ - items[1].byte_len = 2; - items[1].code_len = 1; - items[1].code[0] = (OnigCodePoint )0xdf; - return 2; - } - else - return 1; - } - else if (0x61 <= *p && *p <= 0x7a) { - items[0].byte_len = 1; - items[0].code_len = 1; - items[0].code[0] = (OnigCodePoint )(*p - 0x20); - if (*p == 0x73 && ess_tsett_flag != 0 && end > p + 1 - && (*(p+1) == 0x73 || *(p+1) == 0x53)) { - /* ss */ - items[1].byte_len = 2; - items[1].code_len = 1; - items[1].code[0] = (OnigCodePoint )0xdf; - return 2; - } - else - return 1; - } - else if (*p == 0xdf && ess_tsett_flag != 0) { - items[0].byte_len = 1; - items[0].code_len = 2; - items[0].code[0] = (OnigCodePoint )'s'; - items[0].code[1] = (OnigCodePoint )'s'; - - items[1].byte_len = 1; - items[1].code_len = 2; - items[1].code[0] = (OnigCodePoint )'S'; - items[1].code[1] = (OnigCodePoint )'S'; - - items[2].byte_len = 1; - items[2].code_len = 2; - items[2].code[0] = (OnigCodePoint )'s'; - items[2].code[1] = (OnigCodePoint )'S'; - - items[3].byte_len = 1; - items[3].code_len = 2; - items[3].code[0] = (OnigCodePoint )'S'; - items[3].code[1] = (OnigCodePoint )'s'; - - return 4; - } - else { - int i; - - for (i = 0; i < map_size; i++) { - if (*p == map[i].from) { - items[0].byte_len = 1; - items[0].code_len = 1; - items[0].code[0] = map[i].to; - return 1; - } - else if (*p == map[i].to) { - items[0].byte_len = 1; - items[0].code_len = 1; - items[0].code[0] = map[i].from; - return 1; - } - } - } - - return 0; -} - - -extern int -onigenc_not_support_get_ctype_code_range(OnigCtype ctype ARG_UNUSED, - OnigCodePoint* sb_out ARG_UNUSED, - const OnigCodePoint* ranges[] ARG_UNUSED) -{ - return ONIG_NO_SUPPORT_CONFIG; -} - -extern int -onigenc_is_mbc_newline_0x0a(const UChar* p, const UChar* end) -{ - if (p < end) { - if (*p == 0x0a) return 1; - } - return 0; -} - -/* for single byte encodings */ -extern int -onigenc_ascii_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, const UChar** p, - const UChar*end ARG_UNUSED, UChar* lower) -{ - *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(**p); - - (*p)++; - return 1; /* return byte length of converted char to lower */ -} - -#if 0 -extern int -onigenc_ascii_is_mbc_ambiguous(OnigCaseFoldType flag, - const UChar** pp, const UChar* end) -{ - const UChar* p = *pp; - - (*pp)++; - return ONIGENC_IS_ASCII_CODE_CASE_AMBIG(*p); -} -#endif - -extern int -onigenc_single_byte_mbc_enc_len(const UChar* p ARG_UNUSED) -{ - return 1; -} - -extern OnigCodePoint -onigenc_single_byte_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED) -{ - return (OnigCodePoint )(*p); -} - -extern int -onigenc_single_byte_code_to_mbclen(OnigCodePoint code ARG_UNUSED) -{ - return (code < 0x100 ? 1 : ONIGERR_INVALID_CODE_POINT_VALUE); -} - -extern int -onigenc_single_byte_code_to_mbc(OnigCodePoint code, UChar *buf) -{ - *buf = (UChar )(code & 0xff); - return 1; -} - -extern UChar* -onigenc_single_byte_left_adjust_char_head(const UChar* start ARG_UNUSED, - const UChar* s) -{ - return (UChar* )s; -} - -extern int -onigenc_always_true_is_allowed_reverse_match(const UChar* s ARG_UNUSED, - const UChar* end ARG_UNUSED) -{ - return TRUE; -} - -extern int -onigenc_always_false_is_allowed_reverse_match(const UChar* s ARG_UNUSED, - const UChar* end ARG_UNUSED) -{ - return FALSE; -} - -extern int -onigenc_always_true_is_valid_mbc_string(const UChar* s ARG_UNUSED, - const UChar* end ARG_UNUSED) -{ - return TRUE; -} - -extern int -onigenc_length_check_is_valid_mbc_string(OnigEncoding enc, - const UChar* p, const UChar* end) -{ - while (p < end) { - p += enclen(enc, p); - } - - if (p != end) - return FALSE; - else - return TRUE; -} - -extern int -onigenc_is_valid_mbc_string(OnigEncoding enc, const UChar* s, const UChar* end) -{ - return ONIGENC_IS_VALID_MBC_STRING(enc, s, end); -} - -extern OnigCodePoint -onigenc_mbn_mbc_to_code(OnigEncoding enc, const UChar* p, const UChar* end) -{ - int c, i, len; - OnigCodePoint n; - - len = enclen(enc, p); - n = (OnigCodePoint )(*p++); - if (len == 1) return n; - - for (i = 1; i < len; i++) { - if (p >= end) break; - c = *p++; - n <<= 8; n += c; - } - return n; -} - -extern int -onigenc_mbn_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag ARG_UNUSED, - const UChar** pp, const UChar* end ARG_UNUSED, - UChar* lower) -{ - int len; - const UChar *p = *pp; - - if (ONIGENC_IS_MBC_ASCII(p)) { - *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); - (*pp)++; - return 1; - } - else { - int i; - - len = enclen(enc, p); - for (i = 0; i < len; i++) { - *lower++ = *p++; - } - (*pp) += len; - return len; /* return byte length of converted to lower char */ - } -} - -#if 0 -extern int -onigenc_mbn_is_mbc_ambiguous(OnigEncoding enc, OnigCaseFoldType flag, - const UChar** pp, const UChar* end) -{ - const UChar* p = *pp; - - if (ONIGENC_IS_MBC_ASCII(p)) { - (*pp)++; - return ONIGENC_IS_ASCII_CODE_CASE_AMBIG(*p); - } - - (*pp) += enclen(enc, p); - return FALSE; -} -#endif - -extern int -onigenc_mb2_code_to_mbclen(OnigCodePoint code) -{ - if ((code & (~0xffff)) != 0) return ONIGERR_INVALID_CODE_POINT_VALUE; - - if ((code & 0xff00) != 0) return 2; - else return 1; -} - -extern int -onigenc_mb4_code_to_mbclen(OnigCodePoint code) -{ - if ((code & 0xff000000) != 0) return 4; - else if ((code & 0xff0000) != 0) return 3; - else if ((code & 0xff00) != 0) return 2; - else return 1; -} - -extern int -onigenc_mb2_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf) -{ - UChar *p = buf; - - if ((code & 0xff00) != 0) { - *p++ = (UChar )((code >> 8) & 0xff); - } - *p++ = (UChar )(code & 0xff); - -#if 1 - if (enclen(enc, buf) != (p - buf)) - return ONIGERR_INVALID_CODE_POINT_VALUE; -#endif - return (int )(p - buf); -} - -extern int -onigenc_mb4_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf) -{ - UChar *p = buf; - - if ((code & 0xff000000) != 0) { - *p++ = (UChar )((code >> 24) & 0xff); - } - if ((code & 0xff0000) != 0 || p != buf) { - *p++ = (UChar )((code >> 16) & 0xff); - } - if ((code & 0xff00) != 0 || p != buf) { - *p++ = (UChar )((code >> 8) & 0xff); - } - *p++ = (UChar )(code & 0xff); - -#if 1 - if (enclen(enc, buf) != (p - buf)) - return ONIGERR_INVALID_CODE_POINT_VALUE; -#endif - return (int )(p - buf); -} - -extern int -onigenc_minimum_property_name_to_ctype(OnigEncoding enc, UChar* p, UChar* end) -{ - static PosixBracketEntryType PBS[] = { - { (UChar* )"Alnum", ONIGENC_CTYPE_ALNUM, 5 }, - { (UChar* )"Alpha", ONIGENC_CTYPE_ALPHA, 5 }, - { (UChar* )"Blank", ONIGENC_CTYPE_BLANK, 5 }, - { (UChar* )"Cntrl", ONIGENC_CTYPE_CNTRL, 5 }, - { (UChar* )"Digit", ONIGENC_CTYPE_DIGIT, 5 }, - { (UChar* )"Graph", ONIGENC_CTYPE_GRAPH, 5 }, - { (UChar* )"Lower", ONIGENC_CTYPE_LOWER, 5 }, - { (UChar* )"Print", ONIGENC_CTYPE_PRINT, 5 }, - { (UChar* )"Punct", ONIGENC_CTYPE_PUNCT, 5 }, - { (UChar* )"Space", ONIGENC_CTYPE_SPACE, 5 }, - { (UChar* )"Upper", ONIGENC_CTYPE_UPPER, 5 }, - { (UChar* )"XDigit", ONIGENC_CTYPE_XDIGIT, 6 }, - { (UChar* )"ASCII", ONIGENC_CTYPE_ASCII, 5 }, - { (UChar* )"Word", ONIGENC_CTYPE_WORD, 4 }, - { (UChar* )NULL, -1, 0 } - }; - - PosixBracketEntryType *pb; - int len; - - len = onigenc_strlen(enc, p, end); - for (pb = PBS; IS_NOT_NULL(pb->name); pb++) { - if (len == pb->len && - onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0) - return pb->ctype; - } - - return ONIGERR_INVALID_CHAR_PROPERTY_NAME; -} - -extern int -onigenc_is_mbc_word_ascii(OnigEncoding enc, UChar* s, const UChar* end) -{ - OnigCodePoint code = ONIGENC_MBC_TO_CODE(enc, s, end); - - if (code > 127) return 0; - - return ONIGENC_IS_ASCII_CODE_WORD(code); -} - -extern int -onigenc_mb2_is_code_ctype(OnigEncoding enc, OnigCodePoint code, - unsigned int ctype) -{ - if (code < 128) - return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); - else { - if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) { - return (ONIGENC_CODE_TO_MBCLEN(enc, code) > 1 ? TRUE : FALSE); - } - } - - return FALSE; -} - -extern int -onigenc_mb4_is_code_ctype(OnigEncoding enc, OnigCodePoint code, - unsigned int ctype) -{ - if (code < 128) - return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype); - else { - if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) { - return (ONIGENC_CODE_TO_MBCLEN(enc, code) > 1 ? TRUE : FALSE); - } - } - - return FALSE; -} - -extern int -onigenc_with_ascii_strncmp(OnigEncoding enc, const UChar* p, const UChar* end, - const UChar* sascii /* ascii */, int n) -{ - int x, c; - - while (n-- > 0) { - if (p >= end) return (int )(*sascii); - - c = (int )ONIGENC_MBC_TO_CODE(enc, p, end); - x = *sascii - c; - if (x) return x; - - sascii++; - p += enclen(enc, p); - } - return 0; -} - -extern int -onig_codes_cmp(OnigCodePoint a[], OnigCodePoint b[], int n) -{ - int i; - - for (i = 0; i < n; i++) { - if (a[i] != b[i]) - return -1; - } - - return 0; -} - -extern int -onig_codes_byte_at(OnigCodePoint codes[], int at) -{ - int index; - int b; - OnigCodePoint code; - - index = at / 3; - b = at % 3; - code = codes[index]; - - return ((code >> ((2 - b) * 8)) & 0xff); -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regerror.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regerror.c deleted file mode 100644 index 0dca34a8ad29..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regerror.c +++ /dev/null @@ -1,402 +0,0 @@ -/********************************************************************** - regerror.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" -#if 0 -#include /* for vsnprintf() */ - -#include -#endif - -extern UChar* -onig_error_code_to_format(int code) -{ - char *p; - - switch (code) { - case ONIG_MISMATCH: - p = "mismatch"; break; - case ONIG_NO_SUPPORT_CONFIG: - p = "no support in this configuration"; break; - case ONIG_ABORT: - p = "abort"; break; - case ONIGERR_MEMORY: - p = "fail to memory allocation"; break; - case ONIGERR_MATCH_STACK_LIMIT_OVER: - p = "match-stack limit over"; break; - case ONIGERR_PARSE_DEPTH_LIMIT_OVER: - p = "parse depth limit over"; break; - case ONIGERR_RETRY_LIMIT_IN_MATCH_OVER: - p = "retry-limit-in-match over"; break; - case ONIGERR_TYPE_BUG: - p = "undefined type (bug)"; break; - case ONIGERR_PARSER_BUG: - p = "internal parser error (bug)"; break; - case ONIGERR_STACK_BUG: - p = "stack error (bug)"; break; - case ONIGERR_UNDEFINED_BYTECODE: - p = "undefined bytecode (bug)"; break; - case ONIGERR_UNEXPECTED_BYTECODE: - p = "unexpected bytecode (bug)"; break; - case ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED: - p = "default multibyte-encoding is not setted"; break; - case ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR: - p = "can't convert to wide-char on specified multibyte-encoding"; break; - case ONIGERR_FAIL_TO_INITIALIZE: - p = "fail to initialize"; break; - case ONIGERR_INVALID_ARGUMENT: - p = "invalid argument"; break; - case ONIGERR_END_PATTERN_AT_LEFT_BRACE: - p = "end pattern at left brace"; break; - case ONIGERR_END_PATTERN_AT_LEFT_BRACKET: - p = "end pattern at left bracket"; break; - case ONIGERR_EMPTY_CHAR_CLASS: - p = "empty char-class"; break; - case ONIGERR_PREMATURE_END_OF_CHAR_CLASS: - p = "premature end of char-class"; break; - case ONIGERR_END_PATTERN_AT_ESCAPE: - p = "end pattern at escape"; break; - case ONIGERR_END_PATTERN_AT_META: - p = "end pattern at meta"; break; - case ONIGERR_END_PATTERN_AT_CONTROL: - p = "end pattern at control"; break; - case ONIGERR_META_CODE_SYNTAX: - p = "invalid meta-code syntax"; break; - case ONIGERR_CONTROL_CODE_SYNTAX: - p = "invalid control-code syntax"; break; - case ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE: - p = "char-class value at end of range"; break; - case ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE: - p = "char-class value at start of range"; break; - case ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS: - p = "unmatched range specifier in char-class"; break; - case ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED: - p = "target of repeat operator is not specified"; break; - case ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID: - p = "target of repeat operator is invalid"; break; - case ONIGERR_NESTED_REPEAT_OPERATOR: - p = "nested repeat operator"; break; - case ONIGERR_UNMATCHED_CLOSE_PARENTHESIS: - p = "unmatched close parenthesis"; break; - case ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS: - p = "end pattern with unmatched parenthesis"; break; - case ONIGERR_END_PATTERN_IN_GROUP: - p = "end pattern in group"; break; - case ONIGERR_UNDEFINED_GROUP_OPTION: - p = "undefined group option"; break; - case ONIGERR_INVALID_POSIX_BRACKET_TYPE: - p = "invalid POSIX bracket type"; break; - case ONIGERR_INVALID_LOOK_BEHIND_PATTERN: - p = "invalid pattern in look-behind"; break; - case ONIGERR_INVALID_REPEAT_RANGE_PATTERN: - p = "invalid repeat range {lower,upper}"; break; - case ONIGERR_TOO_BIG_NUMBER: - p = "too big number"; break; - case ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE: - p = "too big number for repeat range"; break; - case ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE: - p = "upper is smaller than lower in repeat range"; break; - case ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS: - p = "empty range in char class"; break; - case ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE: - p = "mismatch multibyte code length in char-class range"; break; - case ONIGERR_TOO_MANY_MULTI_BYTE_RANGES: - p = "too many multibyte code ranges are specified"; break; - case ONIGERR_TOO_SHORT_MULTI_BYTE_STRING: - p = "too short multibyte code string"; break; - case ONIGERR_TOO_BIG_BACKREF_NUMBER: - p = "too big backref number"; break; - case ONIGERR_INVALID_BACKREF: - p = "invalid backref number/name"; break; - case ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED: - p = "numbered backref/call is not allowed. (use name)"; break; - case ONIGERR_TOO_MANY_CAPTURES: - p = "too many captures"; break; - case ONIGERR_TOO_BIG_WIDE_CHAR_VALUE: - p = "too big wide-char value"; break; - case ONIGERR_TOO_LONG_WIDE_CHAR_VALUE: - p = "too long wide-char value"; break; - case ONIGERR_INVALID_CODE_POINT_VALUE: - p = "invalid code point value"; break; - case ONIGERR_EMPTY_GROUP_NAME: - p = "group name is empty"; break; - case ONIGERR_INVALID_GROUP_NAME: - p = "invalid group name <%n>"; break; - case ONIGERR_INVALID_CHAR_IN_GROUP_NAME: - p = "invalid char in group name <%n>"; break; - case ONIGERR_UNDEFINED_NAME_REFERENCE: - p = "undefined name <%n> reference"; break; - case ONIGERR_UNDEFINED_GROUP_REFERENCE: - p = "undefined group <%n> reference"; break; - case ONIGERR_MULTIPLEX_DEFINED_NAME: - p = "multiplex defined name <%n>"; break; - case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL: - p = "multiplex definition name <%n> call"; break; - case ONIGERR_NEVER_ENDING_RECURSION: - p = "never ending recursion"; break; - case ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY: - p = "group number is too big for capture history"; break; - case ONIGERR_INVALID_CHAR_PROPERTY_NAME: - p = "invalid character property name {%n}"; break; - case ONIGERR_INVALID_IF_ELSE_SYNTAX: - p = "invalid if-else syntax"; break; - case ONIGERR_INVALID_ABSENT_GROUP_PATTERN: - p = "invalid absent group pattern"; break; - case ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN: - p = "invalid absent group generator pattern"; break; - case ONIGERR_INVALID_CALLOUT_PATTERN: - p = "invalid callout pattern"; break; - case ONIGERR_INVALID_CALLOUT_NAME: - p = "invalid callout name"; break; - case ONIGERR_UNDEFINED_CALLOUT_NAME: - p = "undefined callout name"; break; - case ONIGERR_INVALID_CALLOUT_BODY: - p = "invalid callout body"; break; - case ONIGERR_INVALID_CALLOUT_TAG_NAME: - p = "invalid callout tag name"; break; - case ONIGERR_INVALID_CALLOUT_ARG: - p = "invalid callout arg"; break; - case ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION: - p = "not supported encoding combination"; break; - case ONIGERR_INVALID_COMBINATION_OF_OPTIONS: - p = "invalid combination of options"; break; - case ONIGERR_LIBRARY_IS_NOT_INITIALIZED: - p = "library is not initialized"; break; - - default: - p = "undefined error code"; break; - } - - return (UChar* )p; -} - -static void sprint_byte(char* s, unsigned int v) -{ - sprintf_s(s, sizeof("00"), "%02x", (v & 0377)); -} - -static void sprint_byte_with_x(char* s, unsigned int v) -{ - sprintf_s(s, sizeof("\\x00"), "\\x%02x", (v & 0377)); -} - -static int to_ascii(OnigEncoding enc, UChar *s, UChar *end, - UChar buf[], int buf_size, int *is_over) -{ - int len; - UChar *p; - OnigCodePoint code; - - if (!s) { - len = 0; - *is_over = 0; - } - else if (ONIGENC_MBC_MINLEN(enc) > 1) { - p = s; - len = 0; - while (p < end) { - code = ONIGENC_MBC_TO_CODE(enc, p, end); - if (code >= 0x80) { - if (code > 0xffff && len + 10 <= buf_size) { - sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 24)); - sprint_byte((char*)(&(buf[len+4])), (unsigned int)(code >> 16)); - sprint_byte((char*)(&(buf[len+6])), (unsigned int)(code >> 8)); - sprint_byte((char*)(&(buf[len+8])), (unsigned int)code); - len += 10; - } - else if (len + 6 <= buf_size) { - sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 8)); - sprint_byte((char*)(&(buf[len+4])), (unsigned int)code); - len += 6; - } - else { - break; - } - } - else { - buf[len++] = (UChar )code; - } - - p += enclen(enc, p); - if (len >= buf_size) break; - } - - *is_over = p < end; - } - else { - len = MIN((int )(end - s), buf_size); - xmemcpy(buf, s, (size_t )len); - *is_over = ((buf_size < (end - s)) ? 1 : 0); - } - - return len; -} - - -extern int -onig_is_error_code_needs_param(int code) -{ - switch (code) { - case ONIGERR_UNDEFINED_NAME_REFERENCE: - case ONIGERR_UNDEFINED_GROUP_REFERENCE: - case ONIGERR_MULTIPLEX_DEFINED_NAME: - case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL: - case ONIGERR_INVALID_GROUP_NAME: - case ONIGERR_INVALID_CHAR_IN_GROUP_NAME: - case ONIGERR_INVALID_CHAR_PROPERTY_NAME: - return 1; - default: - return 0; - } -} - -/* for ONIG_MAX_ERROR_MESSAGE_LEN */ -#define MAX_ERROR_PAR_LEN 30 - -extern int EFIAPI onig_error_code_to_str(UChar* s, int code, ...) -{ - UChar *p, *q; - OnigErrorInfo* einfo; - int len, is_over; - UChar parbuf[MAX_ERROR_PAR_LEN]; - va_list vargs; - - va_init_list(vargs, code); - - switch (code) { - case ONIGERR_UNDEFINED_NAME_REFERENCE: - case ONIGERR_UNDEFINED_GROUP_REFERENCE: - case ONIGERR_MULTIPLEX_DEFINED_NAME: - case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL: - case ONIGERR_INVALID_GROUP_NAME: - case ONIGERR_INVALID_CHAR_IN_GROUP_NAME: - case ONIGERR_INVALID_CHAR_PROPERTY_NAME: - einfo = va_arg(vargs, OnigErrorInfo*); - len = to_ascii(einfo->enc, einfo->par, einfo->par_end, - parbuf, MAX_ERROR_PAR_LEN - 3, &is_over); - q = onig_error_code_to_format(code); - p = s; - while (*q != '\0') { - if (*q == '%') { - q++; - if (*q == 'n') { /* '%n': name */ - xmemcpy(p, parbuf, len); - p += len; - if (is_over != 0) { - xmemcpy(p, "...", 3); - p += 3; - } - q++; - } - else - goto normal_char; - } - else { - normal_char: - *p++ = *q++; - } - } - *p = '\0'; - len = (int )(p - s); - break; - - default: - q = onig_error_code_to_format(code); - len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, q); - xmemcpy(s, q, len); - s[len] = '\0'; - break; - } - - va_end(vargs); - return len; -} - - -void EFIAPI onig_snprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc, - UChar* pat, UChar* pat_end, const UChar *fmt, ...) -{ - int n, need, len; - UChar *p, *s, *bp; - UChar bs[6]; - va_list args; - - va_init_list(args, fmt); - n = xvsnprintf((char* )buf, bufsize, (const char* )fmt, args); - va_end(args); - - need = (int )(pat_end - pat) * 4 + 4; - - if (n + need < bufsize) { - strcat_s((char* )buf, bufsize, ": /"); - s = buf + onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, buf); - - p = pat; - while (p < pat_end) { - if (ONIGENC_IS_MBC_HEAD(enc, p)) { - len = enclen(enc, p); - if (ONIGENC_MBC_MINLEN(enc) == 1) { - while (len-- > 0) *s++ = *p++; - } - else { /* for UTF16/32 */ - int blen; - - while (len-- > 0) { - sprint_byte_with_x((char* )bs, (unsigned int )(*p++)); - blen = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs); - bp = bs; - while (blen-- > 0) *s++ = *bp++; - } - } - } - else if (*p == '\\') { - *s++ = *p++; - len = enclen(enc, p); - while (len-- > 0) *s++ = *p++; - } - else if (*p == '/') { - *s++ = (unsigned char )'\\'; - *s++ = *p++; - } - else if (!ONIGENC_IS_CODE_PRINT(enc, *p) && - !ONIGENC_IS_CODE_SPACE(enc, *p)) { - sprint_byte_with_x((char* )bs, (unsigned int )(*p++)); - len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs); - bp = bs; - while (len-- > 0) *s++ = *bp++; - } - else { - *s++ = *p++; - } - } - - *s++ = '/'; - *s = '\0'; - } -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regexec.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regexec.c deleted file mode 100644 index 6a7890910781..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regexec.c +++ /dev/null @@ -1,5874 +0,0 @@ -/********************************************************************** - regexec.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "regint.h" - -#define IS_MBC_WORD_ASCII_MODE(enc,s,end,mode) \ - ((mode) == 0 ? ONIGENC_IS_MBC_WORD(enc,s,end) : ONIGENC_IS_MBC_WORD_ASCII(enc,s,end)) - -#ifdef USE_CRNL_AS_LINE_TERMINATOR -#define ONIGENC_IS_MBC_CRNL(enc,p,end) \ - (ONIGENC_MBC_TO_CODE(enc,p,end) == 13 && \ - ONIGENC_IS_MBC_NEWLINE(enc,(p+enclen(enc,p)),end)) -#endif - -#define CHECK_INTERRUPT_IN_MATCH - -#ifdef USE_CALLOUT -typedef struct { - int last_match_at_call_counter; - struct { - OnigType type; - OnigValue val; - } slot[ONIG_CALLOUT_DATA_SLOT_NUM]; -} CalloutData; -#endif - -struct OnigMatchParamStruct { - unsigned int match_stack_limit; - unsigned long retry_limit_in_match; -#ifdef USE_CALLOUT - OnigCalloutFunc progress_callout_of_contents; - OnigCalloutFunc retraction_callout_of_contents; - int match_at_call_counter; - void* callout_user_data; - CalloutData* callout_data; - int callout_data_alloc_num; -#endif -}; - -extern int -onig_set_match_stack_limit_size_of_match_param(OnigMatchParam* param, - unsigned int limit) -{ - param->match_stack_limit = limit; - return ONIG_NORMAL; -} - -extern int -onig_set_retry_limit_in_match_of_match_param(OnigMatchParam* param, - unsigned long limit) -{ - param->retry_limit_in_match = limit; - return ONIG_NORMAL; -} - -extern int -onig_set_progress_callout_of_match_param(OnigMatchParam* param, OnigCalloutFunc f) -{ -#ifdef USE_CALLOUT - param->progress_callout_of_contents = f; - return ONIG_NORMAL; -#else - return ONIG_NO_SUPPORT_CONFIG; -#endif -} - -extern int -onig_set_retraction_callout_of_match_param(OnigMatchParam* param, OnigCalloutFunc f) -{ -#ifdef USE_CALLOUT - param->retraction_callout_of_contents = f; - return ONIG_NORMAL; -#else - return ONIG_NO_SUPPORT_CONFIG; -#endif -} - -extern int -onig_set_callout_user_data_of_match_param(OnigMatchParam* param, void* user_data) -{ -#ifdef USE_CALLOUT - param->callout_user_data = user_data; - return ONIG_NORMAL; -#else - return ONIG_NO_SUPPORT_CONFIG; -#endif -} - - -typedef struct { - void* stack_p; - int stack_n; - OnigOptionType options; - OnigRegion* region; - int ptr_num; - const UChar* start; /* search start position (for \G: BEGIN_POSITION) */ - unsigned int match_stack_limit; - unsigned long retry_limit_in_match; - OnigMatchParam* mp; -#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE - int best_len; /* for ONIG_OPTION_FIND_LONGEST */ - UChar* best_s; -#endif -} MatchArg; - - -#ifdef ONIG_DEBUG - -/* arguments type */ -typedef enum { - ARG_SPECIAL = -1, - ARG_NON = 0, - ARG_RELADDR = 1, - ARG_ABSADDR = 2, - ARG_LENGTH = 3, - ARG_MEMNUM = 4, - ARG_OPTION = 5, - ARG_MODE = 6 -} OpArgType; - -typedef struct { - short int opcode; - char* name; -} OpInfoType; - -static OpInfoType OpInfo[] = { - { OP_FINISH, "finish" }, - { OP_END, "end" }, - { OP_EXACT1, "exact1" }, - { OP_EXACT2, "exact2" }, - { OP_EXACT3, "exact3" }, - { OP_EXACT4, "exact4" }, - { OP_EXACT5, "exact5" }, - { OP_EXACTN, "exactn" }, - { OP_EXACTMB2N1, "exactmb2-n1" }, - { OP_EXACTMB2N2, "exactmb2-n2" }, - { OP_EXACTMB2N3, "exactmb2-n3" }, - { OP_EXACTMB2N, "exactmb2-n" }, - { OP_EXACTMB3N, "exactmb3n" }, - { OP_EXACTMBN, "exactmbn" }, - { OP_EXACT1_IC, "exact1-ic" }, - { OP_EXACTN_IC, "exactn-ic" }, - { OP_CCLASS, "cclass" }, - { OP_CCLASS_MB, "cclass-mb" }, - { OP_CCLASS_MIX, "cclass-mix" }, - { OP_CCLASS_NOT, "cclass-not" }, - { OP_CCLASS_MB_NOT, "cclass-mb-not" }, - { OP_CCLASS_MIX_NOT, "cclass-mix-not" }, - { OP_ANYCHAR, "anychar" }, - { OP_ANYCHAR_ML, "anychar-ml" }, - { OP_ANYCHAR_STAR, "anychar*" }, - { OP_ANYCHAR_ML_STAR, "anychar-ml*" }, - { OP_ANYCHAR_STAR_PEEK_NEXT, "anychar*-peek-next" }, - { OP_ANYCHAR_ML_STAR_PEEK_NEXT, "anychar-ml*-peek-next" }, - { OP_WORD, "word" }, - { OP_WORD_ASCII, "word-ascii" }, - { OP_NO_WORD, "not-word" }, - { OP_NO_WORD_ASCII, "not-word-ascii" }, - { OP_WORD_BOUNDARY, "word-boundary" }, - { OP_NO_WORD_BOUNDARY, "not-word-boundary" }, - { OP_WORD_BEGIN, "word-begin" }, - { OP_WORD_END, "word-end" }, - { OP_TEXT_SEGMENT_BOUNDARY, "text-segment-boundary" }, - { OP_BEGIN_BUF, "begin-buf" }, - { OP_END_BUF, "end-buf" }, - { OP_BEGIN_LINE, "begin-line" }, - { OP_END_LINE, "end-line" }, - { OP_SEMI_END_BUF, "semi-end-buf" }, - { OP_BEGIN_POSITION, "begin-position" }, - { OP_BACKREF1, "backref1" }, - { OP_BACKREF2, "backref2" }, - { OP_BACKREF_N, "backref-n" }, - { OP_BACKREF_N_IC, "backref-n-ic" }, - { OP_BACKREF_MULTI, "backref_multi" }, - { OP_BACKREF_MULTI_IC, "backref_multi-ic" }, - { OP_BACKREF_WITH_LEVEL, "backref_with_level" }, - { OP_BACKREF_WITH_LEVEL_IC, "backref_with_level-c" }, - { OP_BACKREF_CHECK, "backref_check" }, - { OP_BACKREF_CHECK_WITH_LEVEL, "backref_check_with_level" }, - { OP_MEMORY_START_PUSH, "mem-start-push" }, - { OP_MEMORY_START, "mem-start" }, - { OP_MEMORY_END_PUSH, "mem-end-push" }, - { OP_MEMORY_END_PUSH_REC, "mem-end-push-rec" }, - { OP_MEMORY_END, "mem-end" }, - { OP_MEMORY_END_REC, "mem-end-rec" }, - { OP_FAIL, "fail" }, - { OP_JUMP, "jump" }, - { OP_PUSH, "push" }, - { OP_PUSH_SUPER, "push-super" }, - { OP_POP_OUT, "pop-out" }, -#ifdef USE_OP_PUSH_OR_JUMP_EXACT - { OP_PUSH_OR_JUMP_EXACT1, "push-or-jump-e1" }, -#endif - { OP_PUSH_IF_PEEK_NEXT, "push-if-peek-next" }, - { OP_REPEAT, "repeat" }, - { OP_REPEAT_NG, "repeat-ng" }, - { OP_REPEAT_INC, "repeat-inc" }, - { OP_REPEAT_INC_NG, "repeat-inc-ng" }, - { OP_REPEAT_INC_SG, "repeat-inc-sg" }, - { OP_REPEAT_INC_NG_SG, "repeat-inc-ng-sg" }, - { OP_EMPTY_CHECK_START, "empty-check-start" }, - { OP_EMPTY_CHECK_END, "empty-check-end" }, - { OP_EMPTY_CHECK_END_MEMST, "empty-check-end-memst" }, - { OP_EMPTY_CHECK_END_MEMST_PUSH,"empty-check-end-memst-push" }, - { OP_PREC_READ_START, "push-pos" }, - { OP_PREC_READ_END, "pop-pos" }, - { OP_PREC_READ_NOT_START, "prec-read-not-start" }, - { OP_PREC_READ_NOT_END, "prec-read-not-end" }, - { OP_ATOMIC_START, "atomic-start" }, - { OP_ATOMIC_END, "atomic-end" }, - { OP_LOOK_BEHIND, "look-behind" }, - { OP_LOOK_BEHIND_NOT_START, "look-behind-not-start" }, - { OP_LOOK_BEHIND_NOT_END, "look-behind-not-end" }, - { OP_CALL, "call" }, - { OP_RETURN, "return" }, - { OP_PUSH_SAVE_VAL, "push-save-val" }, - { OP_UPDATE_VAR, "update-var" }, -#ifdef USE_CALLOUT - { OP_CALLOUT_CONTENTS, "callout-contents" }, - { OP_CALLOUT_NAME, "callout-name" }, -#endif - { -1, "" } -}; - -static char* -op2name(int opcode) -{ - int i; - - for (i = 0; OpInfo[i].opcode >= 0; i++) { - if (opcode == OpInfo[i].opcode) return OpInfo[i].name; - } - - return ""; -} - -static void -p_string(FILE* f, int len, UChar* s) -{ - fputs(":", f); - while (len-- > 0) { fputc(*s++, f); } -} - -static void -p_len_string(FILE* f, LengthType len, int mb_len, UChar* s) -{ - int x = len * mb_len; - - fprintf(f, ":%d:", len); - while (x-- > 0) { fputc(*s++, f); } -} - -static void -p_rel_addr(FILE* f, RelAddrType rel_addr, Operation* p, Operation* start) -{ - RelAddrType curr = (RelAddrType )(p - start); - - fprintf(f, "{%d/%d}", rel_addr, curr + rel_addr); -} - -static int -bitset_on_num(BitSetRef bs) -{ - int i, n; - - n = 0; - for (i = 0; i < SINGLE_BYTE_SIZE; i++) { - if (BITSET_AT(bs, i)) n++; - } - - return n; -} - -static void -print_compiled_byte_code(FILE* f, regex_t* reg, int index, - Operation* start, OnigEncoding enc) -{ - int i, n; - RelAddrType addr; - LengthType len; - MemNumType mem; - OnigCodePoint code; - ModeType mode; - UChar *q; - Operation* p; - enum OpCode opcode; - - p = reg->ops + index; - -#ifdef USE_DIRECT_THREADED_CODE - opcode = reg->ocs[index]; -#else - opcode = p->opcode; -#endif - - fprintf(f, "%s", op2name(opcode)); - switch (opcode) { - case OP_EXACT1: - p_string(f, 1, p->exact.s); break; - case OP_EXACT2: - p_string(f, 2, p->exact.s); break; - case OP_EXACT3: - p_string(f, 3, p->exact.s); break; - case OP_EXACT4: - p_string(f, 4, p->exact.s); break; - case OP_EXACT5: - p_string(f, 5, p->exact.s); break; - case OP_EXACTN: - len = p->exact_n.n; - p_string(f, len, p->exact_n.s); break; - case OP_EXACTMB2N1: - p_string(f, 2, p->exact.s); break; - case OP_EXACTMB2N2: - p_string(f, 4, p->exact.s); break; - case OP_EXACTMB2N3: - p_string(f, 3, p->exact.s); break; - case OP_EXACTMB2N: - len = p->exact_n.n; - p_len_string(f, len, 2, p->exact_n.s); break; - case OP_EXACTMB3N: - len = p->exact_n.n; - p_len_string(f, len, 3, p->exact_n.s); break; - case OP_EXACTMBN: - { - int mb_len; - - mb_len = p->exact_len_n.len; - len = p->exact_len_n.n; - q = p->exact_len_n.s; - fprintf(f, ":%d:%d:", mb_len, len); - n = len * mb_len; - while (n-- > 0) { fputc(*q++, f); } - } - break; - case OP_EXACT1_IC: - len = enclen(enc, p->exact.s); - p_string(f, len, p->exact.s); - break; - case OP_EXACTN_IC: - len = p->exact_n.n; - p_len_string(f, len, 1, p->exact_n.s); - break; - - case OP_CCLASS: - case OP_CCLASS_NOT: - n = bitset_on_num(p->cclass.bsp); - fprintf(f, ":%d", n); - break; - case OP_CCLASS_MB: - case OP_CCLASS_MB_NOT: - { - OnigCodePoint ncode; - OnigCodePoint* codes; - - codes = (OnigCodePoint* )p->cclass_mb.mb; - GET_CODE_POINT(ncode, codes); - codes++; - GET_CODE_POINT(code, codes); - fprintf(f, ":%u:%u", code, ncode); - } - break; - case OP_CCLASS_MIX: - case OP_CCLASS_MIX_NOT: - { - OnigCodePoint ncode; - OnigCodePoint* codes; - - codes = (OnigCodePoint* )p->cclass_mix.mb; - n = bitset_on_num(p->cclass_mix.bsp); - - GET_CODE_POINT(ncode, codes); - codes++; - GET_CODE_POINT(code, codes); - fprintf(f, ":%d:%u:%u", n, code, ncode); - } - break; - - case OP_ANYCHAR_STAR_PEEK_NEXT: - case OP_ANYCHAR_ML_STAR_PEEK_NEXT: - p_string(f, 1, &(p->anychar_star_peek_next.c)); - break; - - case OP_WORD_BOUNDARY: - case OP_NO_WORD_BOUNDARY: - case OP_WORD_BEGIN: - case OP_WORD_END: - mode = p->word_boundary.mode; - fprintf(f, ":%d", mode); - break; - - case OP_BACKREF_N: - case OP_BACKREF_N_IC: - mem = p->backref_n.n1; - fprintf(f, ":%d", mem); - break; - case OP_BACKREF_MULTI_IC: - case OP_BACKREF_MULTI: - case OP_BACKREF_CHECK: - fputs(" ", f); - n = p->backref_general.num; - for (i = 0; i < n; i++) { - mem = (n == 1) ? p->backref_general.n1 : p->backref_general.ns[i]; - if (i > 0) fputs(", ", f); - fprintf(f, "%d", mem); - } - break; - case OP_BACKREF_WITH_LEVEL: - case OP_BACKREF_WITH_LEVEL_IC: - case OP_BACKREF_CHECK_WITH_LEVEL: - { - LengthType level; - - level = p->backref_general.nest_level; - fprintf(f, ":%d", level); - fputs(" ", f); - n = p->backref_general.num; - for (i = 0; i < n; i++) { - mem = (n == 1) ? p->backref_general.n1 : p->backref_general.ns[i]; - if (i > 0) fputs(", ", f); - fprintf(f, "%d", mem); - } - } - break; - - case OP_MEMORY_START: - case OP_MEMORY_START_PUSH: - mem = p->memory_start.num; - fprintf(f, ":%d", mem); - break; - case OP_MEMORY_END_PUSH: - case OP_MEMORY_END_PUSH_REC: - case OP_MEMORY_END: - case OP_MEMORY_END_REC: - mem = p->memory_end.num; - fprintf(f, ":%d", mem); - break; - - case OP_JUMP: - addr = p->jump.addr; - fputc(':', f); - p_rel_addr(f, addr, p, start); - break; - - case OP_PUSH: - case OP_PUSH_SUPER: - addr = p->push.addr; - fputc(':', f); - p_rel_addr(f, addr, p, start); - break; - -#ifdef USE_OP_PUSH_OR_JUMP_EXACT - case OP_PUSH_OR_JUMP_EXACT1: - addr = p->push_or_jump_exact1.addr; - fputc(':', f); - p_rel_addr(f, addr, p, start); - p_string(f, 1, &(p->push_or_jump_exact1.c)); - break; -#endif - - case OP_PUSH_IF_PEEK_NEXT: - addr = p->push_if_peek_next.addr; - fputc(':', f); - p_rel_addr(f, addr, p, start); - p_string(f, 1, &(p->push_if_peek_next.c)); - break; - - case OP_REPEAT: - case OP_REPEAT_NG: - mem = p->repeat.id; - addr = p->repeat.addr; - fprintf(f, ":%d:", mem); - p_rel_addr(f, addr, p, start); - break; - - case OP_REPEAT_INC: - case OP_REPEAT_INC_NG: - case OP_REPEAT_INC_SG: - case OP_REPEAT_INC_NG_SG: - mem = p->repeat.id; - fprintf(f, ":%d", mem); - break; - - case OP_EMPTY_CHECK_START: - mem = p->empty_check_start.mem; - fprintf(f, ":%d", mem); - break; - case OP_EMPTY_CHECK_END: - case OP_EMPTY_CHECK_END_MEMST: - case OP_EMPTY_CHECK_END_MEMST_PUSH: - mem = p->empty_check_end.mem; - fprintf(f, ":%d", mem); - break; - - case OP_PREC_READ_NOT_START: - addr = p->prec_read_not_start.addr; - fputc(':', f); - p_rel_addr(f, addr, p, start); - break; - - case OP_LOOK_BEHIND: - len = p->look_behind.len; - fprintf(f, ":%d", len); - break; - - case OP_LOOK_BEHIND_NOT_START: - addr = p->look_behind_not_start.addr; - len = p->look_behind_not_start.len; - fprintf(f, ":%d:", len); - p_rel_addr(f, addr, p, start); - break; - - case OP_CALL: - addr = p->call.addr; - fprintf(f, ":{/%d}", addr); - break; - - case OP_PUSH_SAVE_VAL: - { - SaveType type; - - type = p->push_save_val.type; - mem = p->push_save_val.id; - fprintf(f, ":%d:%d", type, mem); - } - break; - - case OP_UPDATE_VAR: - { - UpdateVarType type; - - type = p->update_var.type; - mem = p->update_var.id; - fprintf(f, ":%d:%d", type, mem); - } - break; - -#ifdef USE_CALLOUT - case OP_CALLOUT_CONTENTS: - mem = p->callout_contents.num; - fprintf(f, ":%d", mem); - break; - - case OP_CALLOUT_NAME: - { - int id; - - id = p->callout_name.id; - mem = p->callout_name.num; - fprintf(f, ":%d:%d", id, mem); - } - break; -#endif - - case OP_TEXT_SEGMENT_BOUNDARY: - if (p->text_segment_boundary.not != 0) - fprintf(f, ":not"); - break; - - case OP_FINISH: - case OP_END: - case OP_ANYCHAR: - case OP_ANYCHAR_ML: - case OP_ANYCHAR_STAR: - case OP_ANYCHAR_ML_STAR: - case OP_WORD: - case OP_WORD_ASCII: - case OP_NO_WORD: - case OP_NO_WORD_ASCII: - case OP_BEGIN_BUF: - case OP_END_BUF: - case OP_BEGIN_LINE: - case OP_END_LINE: - case OP_SEMI_END_BUF: - case OP_BEGIN_POSITION: - case OP_BACKREF1: - case OP_BACKREF2: - case OP_FAIL: - case OP_POP_OUT: - case OP_PREC_READ_START: - case OP_PREC_READ_END: - case OP_PREC_READ_NOT_END: - case OP_ATOMIC_START: - case OP_ATOMIC_END: - case OP_LOOK_BEHIND_NOT_END: - case OP_RETURN: - break; - - default: - fprintf(stderr, "print_compiled_byte_code: undefined code %d\n", opcode); - break; - } -} -#endif /* ONIG_DEBUG */ - -#ifdef ONIG_DEBUG_COMPILE -extern void -onig_print_compiled_byte_code_list(FILE* f, regex_t* reg) -{ - Operation* bp; - Operation* start = reg->ops; - Operation* end = reg->ops + reg->ops_used; - - fprintf(f, "bt_mem_start: 0x%x, bt_mem_end: 0x%x\n", - reg->bt_mem_start, reg->bt_mem_end); - fprintf(f, "code-length: %d\n", reg->ops_used); - - bp = start; - while (bp < end) { - int pos = bp - start; - - fprintf(f, "%4d: ", pos); - print_compiled_byte_code(f, reg, pos, start, reg->enc); - fprintf(f, "\n"); - bp++; - } - fprintf(f, "\n"); -} -#endif - - -#ifdef USE_CAPTURE_HISTORY -static void history_tree_free(OnigCaptureTreeNode* node); - -static void -history_tree_clear(OnigCaptureTreeNode* node) -{ - int i; - - if (IS_NULL(node)) return ; - - for (i = 0; i < node->num_childs; i++) { - if (IS_NOT_NULL(node->childs[i])) { - history_tree_free(node->childs[i]); - } - } - for (i = 0; i < node->allocated; i++) { - node->childs[i] = (OnigCaptureTreeNode* )0; - } - node->num_childs = 0; - node->beg = ONIG_REGION_NOTPOS; - node->end = ONIG_REGION_NOTPOS; - node->group = -1; -} - -static void -history_tree_free(OnigCaptureTreeNode* node) -{ - history_tree_clear(node); - if (IS_NOT_NULL(node->childs)) xfree(node->childs); - - xfree(node); -} - -static void -history_root_free(OnigRegion* r) -{ - if (IS_NULL(r->history_root)) return ; - - history_tree_free(r->history_root); - r->history_root = (OnigCaptureTreeNode* )0; -} - -static OnigCaptureTreeNode* -history_node_new(void) -{ - OnigCaptureTreeNode* node; - - node = (OnigCaptureTreeNode* )xmalloc(sizeof(OnigCaptureTreeNode)); - CHECK_NULL_RETURN(node); - - node->childs = (OnigCaptureTreeNode** )0; - node->allocated = 0; - node->num_childs = 0; - node->group = -1; - node->beg = ONIG_REGION_NOTPOS; - node->end = ONIG_REGION_NOTPOS; - - return node; -} - -static int -history_tree_add_child(OnigCaptureTreeNode* parent, OnigCaptureTreeNode* child) -{ -#define HISTORY_TREE_INIT_ALLOC_SIZE 8 - - if (parent->num_childs >= parent->allocated) { - int n, i; - - if (IS_NULL(parent->childs)) { - n = HISTORY_TREE_INIT_ALLOC_SIZE; - parent->childs = - (OnigCaptureTreeNode** )xmalloc(sizeof(parent->childs[0]) * n); - } - else { - n = parent->allocated * 2; - parent->childs = - (OnigCaptureTreeNode** )xrealloc(parent->childs, - sizeof(parent->childs[0]) * n, - sizeof(parent->childs[0]) * parent->allocated); - } - CHECK_NULL_RETURN_MEMERR(parent->childs); - for (i = parent->allocated; i < n; i++) { - parent->childs[i] = (OnigCaptureTreeNode* )0; - } - parent->allocated = n; - } - - parent->childs[parent->num_childs] = child; - parent->num_childs++; - return 0; -} - -static OnigCaptureTreeNode* -history_tree_clone(OnigCaptureTreeNode* node) -{ - int i; - OnigCaptureTreeNode *clone, *child; - - clone = history_node_new(); - CHECK_NULL_RETURN(clone); - - clone->beg = node->beg; - clone->end = node->end; - for (i = 0; i < node->num_childs; i++) { - child = history_tree_clone(node->childs[i]); - if (IS_NULL(child)) { - history_tree_free(clone); - return (OnigCaptureTreeNode* )0; - } - history_tree_add_child(clone, child); - } - - return clone; -} - -extern OnigCaptureTreeNode* -onig_get_capture_tree(OnigRegion* region) -{ - return region->history_root; -} -#endif /* USE_CAPTURE_HISTORY */ - -extern void -onig_region_clear(OnigRegion* region) -{ - int i; - - for (i = 0; i < region->num_regs; i++) { - region->beg[i] = region->end[i] = ONIG_REGION_NOTPOS; - } -#ifdef USE_CAPTURE_HISTORY - history_root_free(region); -#endif -} - -extern int -onig_region_resize(OnigRegion* region, int n) -{ - region->num_regs = n; - - if (n < ONIG_NREGION) - n = ONIG_NREGION; - - if (region->allocated == 0) { - region->beg = (int* )xmalloc(n * sizeof(int)); - region->end = (int* )xmalloc(n * sizeof(int)); - - if (region->beg == 0 || region->end == 0) - return ONIGERR_MEMORY; - - region->allocated = n; - } - else if (region->allocated < n) { - region->beg = (int* )xrealloc(region->beg, n * sizeof(int), region->allocated * sizeof(int)); - region->end = (int* )xrealloc(region->end, n * sizeof(int), region->allocated * sizeof(int)); - - if (region->beg == 0 || region->end == 0) - return ONIGERR_MEMORY; - - region->allocated = n; - } - - return 0; -} - -static int -onig_region_resize_clear(OnigRegion* region, int n) -{ - int r; - - r = onig_region_resize(region, n); - if (r != 0) return r; - onig_region_clear(region); - return 0; -} - -extern int -onig_region_set(OnigRegion* region, int at, int beg, int end) -{ - if (at < 0) return ONIGERR_INVALID_ARGUMENT; - - if (at >= region->allocated) { - int r = onig_region_resize(region, at + 1); - if (r < 0) return r; - } - - region->beg[at] = beg; - region->end[at] = end; - return 0; -} - -extern void -onig_region_init(OnigRegion* region) -{ - region->num_regs = 0; - region->allocated = 0; - region->beg = (int* )0; - region->end = (int* )0; - region->history_root = (OnigCaptureTreeNode* )0; -} - -extern OnigRegion* -onig_region_new(void) -{ - OnigRegion* r; - - r = (OnigRegion* )xmalloc(sizeof(OnigRegion)); - CHECK_NULL_RETURN(r); - onig_region_init(r); - return r; -} - -extern void -onig_region_free(OnigRegion* r, int free_self) -{ - if (r != 0) { - if (r->allocated > 0) { - if (r->beg) xfree(r->beg); - if (r->end) xfree(r->end); - r->allocated = 0; - } -#ifdef USE_CAPTURE_HISTORY - history_root_free(r); -#endif - if (free_self) xfree(r); - } -} - -extern void -onig_region_copy(OnigRegion* to, OnigRegion* from) -{ -#define RREGC_SIZE (sizeof(int) * from->num_regs) - int i; - - if (to == from) return; - - if (to->allocated == 0) { - if (from->num_regs > 0) { - to->beg = (int* )xmalloc(RREGC_SIZE); - if (IS_NULL(to->beg)) return; - to->end = (int* )xmalloc(RREGC_SIZE); - if (IS_NULL(to->end)) return; - to->allocated = from->num_regs; - } - } - else if (to->allocated < from->num_regs) { - to->beg = (int* )xrealloc(to->beg, RREGC_SIZE, sizeof(int) * to->allocated); - if (IS_NULL(to->beg)) return; - to->end = (int* )xrealloc(to->end, RREGC_SIZE, sizeof(int) * to->allocated); - if (IS_NULL(to->end)) return; - to->allocated = from->num_regs; - } - - for (i = 0; i < from->num_regs; i++) { - to->beg[i] = from->beg[i]; - to->end[i] = from->end[i]; - } - to->num_regs = from->num_regs; - -#ifdef USE_CAPTURE_HISTORY - history_root_free(to); - - if (IS_NOT_NULL(from->history_root)) { - to->history_root = history_tree_clone(from->history_root); - } -#endif -} - -#ifdef USE_CALLOUT -#define CALLOUT_BODY(func, ain, aname_id, anum, user, args, result) do { \ - args.in = (ain);\ - args.name_id = (aname_id);\ - args.num = anum;\ - args.regex = reg;\ - args.string = str;\ - args.string_end = end;\ - args.start = sstart;\ - args.right_range = right_range;\ - args.current = s;\ - args.retry_in_match_counter = retry_in_match_counter;\ - args.msa = msa;\ - args.stk_base = stk_base;\ - args.stk = stk;\ - args.mem_start_stk = mem_start_stk;\ - args.mem_end_stk = mem_end_stk;\ - result = (func)(&args, user);\ -} while (0) - -#define RETRACTION_CALLOUT(func, aname_id, anum, user) do {\ - int result;\ - OnigCalloutArgs args;\ - CALLOUT_BODY(func, ONIG_CALLOUT_IN_RETRACTION, aname_id, anum, user, args, result);\ - switch (result) {\ - case ONIG_CALLOUT_FAIL:\ - case ONIG_CALLOUT_SUCCESS:\ - break;\ - default:\ - if (result > 0) {\ - result = ONIGERR_INVALID_ARGUMENT;\ - }\ - best_len = result;\ - goto finish;\ - break;\ - }\ -} while(0) -#endif - - -/** stack **/ -#define INVALID_STACK_INDEX -1 - -#define STK_ALT_FLAG 0x0001 - -/* stack type */ -/* used by normal-POP */ -#define STK_SUPER_ALT STK_ALT_FLAG -#define STK_ALT (0x0002 | STK_ALT_FLAG) -#define STK_ALT_PREC_READ_NOT (0x0004 | STK_ALT_FLAG) -#define STK_ALT_LOOK_BEHIND_NOT (0x0006 | STK_ALT_FLAG) - -/* handled by normal-POP */ -#define STK_MEM_START 0x0010 -#define STK_MEM_END 0x8030 -#define STK_REPEAT_INC 0x0050 -#ifdef USE_CALLOUT -#define STK_CALLOUT 0x0070 -#endif - -/* avoided by normal-POP */ -#define STK_VOID 0x0000 /* for fill a blank */ -#define STK_EMPTY_CHECK_START 0x3000 -#define STK_EMPTY_CHECK_END 0x5000 /* for recursive call */ -#define STK_MEM_END_MARK 0x8100 -#define STK_TO_VOID_START 0x1200 /* mark for "(?>...)" */ -#define STK_REPEAT 0x0300 -#define STK_CALL_FRAME 0x0400 -#define STK_RETURN 0x0500 -#define STK_SAVE_VAL 0x0600 -#define STK_PREC_READ_START 0x0700 -#define STK_PREC_READ_END 0x0800 - -/* stack type check mask */ -#define STK_MASK_POP_USED STK_ALT_FLAG -#define STK_MASK_POP_HANDLED 0x0010 -#define STK_MASK_POP_HANDLED_TIL (STK_MASK_POP_HANDLED | 0x0004) -#define STK_MASK_TO_VOID_TARGET 0x100e -#define STK_MASK_MEM_END_OR_MARK 0x8000 /* MEM_END or MEM_END_MARK */ - -typedef intptr_t StackIndex; - -typedef struct _StackType { - unsigned int type; - int zid; - union { - struct { - Operation* pcode; /* byte code position */ - UChar* pstr; /* string position */ - UChar* pstr_prev; /* previous char position of pstr */ - } state; - struct { - int count; /* for OP_REPEAT_INC, OP_REPEAT_INC_NG */ - Operation* pcode; /* byte code position (head of repeated target) */ - } repeat; - struct { - StackIndex si; /* index of stack */ - } repeat_inc; - struct { - UChar *pstr; /* start/end position */ - /* Following information is set, if this stack type is MEM-START */ - StackIndex prev_start; /* prev. info (for backtrack "(...)*" ) */ - StackIndex prev_end; /* prev. info (for backtrack "(...)*" ) */ - } mem; - struct { - UChar *pstr; /* start position */ - } empty_check; -#ifdef USE_CALL - struct { - Operation *ret_addr; /* byte code position */ - UChar *pstr; /* string position */ - } call_frame; -#endif - struct { - enum SaveType type; - UChar* v; - UChar* v2; - } val; -#ifdef USE_CALLOUT - struct { - int num; - OnigCalloutFunc func; - } callout; -#endif - } u; -} StackType; - -#ifdef USE_CALLOUT - -struct OnigCalloutArgsStruct { - OnigCalloutIn in; - int name_id; /* name id or ONIG_NON_NAME_ID */ - int num; - OnigRegex regex; - const OnigUChar* string; - const OnigUChar* string_end; - const OnigUChar* start; - const OnigUChar* right_range; - const OnigUChar* current; /* current matching position */ - unsigned long retry_in_match_counter; - - /* invisible to users */ - MatchArg* msa; - StackType* stk_base; - StackType* stk; - StackIndex* mem_start_stk; - StackIndex* mem_end_stk; -}; - -#endif - - -#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE -#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mp) do { \ - (msa).stack_p = (void* )0;\ - (msa).options = (arg_option);\ - (msa).region = (arg_region);\ - (msa).start = (arg_start);\ - (msa).match_stack_limit = (mp)->match_stack_limit;\ - (msa).retry_limit_in_match = (mp)->retry_limit_in_match;\ - (msa).mp = mp;\ - (msa).best_len = ONIG_MISMATCH;\ - (msa).ptr_num = (reg)->num_repeat + ((reg)->num_mem + 1) * 2; \ -} while(0) -#else -#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mp) do { \ - (msa).stack_p = (void* )0;\ - (msa).options = (arg_option);\ - (msa).region = (arg_region);\ - (msa).start = (arg_start);\ - (msa).match_stack_limit = (mp)->match_stack_limit;\ - (msa).retry_limit_in_match = (mp)->retry_limit_in_match;\ - (msa).mp = mp;\ - (msa).ptr_num = (reg)->num_repeat + ((reg)->num_mem + 1) * 2; \ -} while(0) -#endif - -#define MATCH_ARG_FREE(msa) if ((msa).stack_p) xfree((msa).stack_p) - - -#define ALLOCA_PTR_NUM_LIMIT 50 - -#define STACK_INIT(stack_num) do {\ - if (msa->stack_p) {\ - is_alloca = 0;\ - alloc_base = msa->stack_p;\ - stk_base = (StackType* )(alloc_base\ - + (sizeof(StackIndex) * msa->ptr_num));\ - stk = stk_base;\ - stk_end = stk_base + msa->stack_n;\ - }\ - else if (msa->ptr_num > ALLOCA_PTR_NUM_LIMIT) {\ - is_alloca = 0;\ - alloc_base = (char* )xmalloc(sizeof(StackIndex) * msa->ptr_num\ - + sizeof(StackType) * (stack_num));\ - CHECK_NULL_RETURN_MEMERR(alloc_base);\ - stk_base = (StackType* )(alloc_base\ - + (sizeof(StackIndex) * msa->ptr_num));\ - stk = stk_base;\ - stk_end = stk_base + (stack_num);\ - }\ - else {\ - is_alloca = 1;\ - alloc_base = (char* )xmalloc(sizeof(StackIndex) * msa->ptr_num\ - + sizeof(StackType) * (stack_num));\ - CHECK_NULL_RETURN_MEMERR(alloc_base);\ - stk_base = (StackType* )(alloc_base\ - + (sizeof(StackIndex) * msa->ptr_num));\ - stk = stk_base;\ - stk_end = stk_base + (stack_num);\ - }\ -} while(0); - - -#define STACK_SAVE do{\ - msa->stack_n = (int )(stk_end - stk_base);\ - if (is_alloca != 0) {\ - size_t size = sizeof(StackIndex) * msa->ptr_num \ - + sizeof(StackType) * msa->stack_n;\ - msa->stack_p = xmalloc(size);\ - CHECK_NULL_RETURN_MEMERR(msa->stack_p);\ - xmemcpy(msa->stack_p, alloc_base, size);\ - }\ - else {\ - msa->stack_p = alloc_base;\ - };\ -} while(0) - -#define UPDATE_FOR_STACK_REALLOC do{\ - repeat_stk = (StackIndex* )alloc_base;\ - mem_start_stk = (StackIndex* )(repeat_stk + reg->num_repeat);\ - mem_end_stk = mem_start_stk + num_mem + 1;\ -} while(0) - -static unsigned int MatchStackLimit = DEFAULT_MATCH_STACK_LIMIT_SIZE; - -extern unsigned int -onig_get_match_stack_limit_size(void) -{ - return MatchStackLimit; -} - -extern int -onig_set_match_stack_limit_size(unsigned int size) -{ - MatchStackLimit = size; - return 0; -} - -#ifdef USE_RETRY_LIMIT_IN_MATCH - -static unsigned long RetryLimitInMatch = DEFAULT_RETRY_LIMIT_IN_MATCH; - -#define CHECK_RETRY_LIMIT_IN_MATCH do {\ - if (retry_in_match_counter++ > retry_limit_in_match) goto retry_limit_in_match_over;\ -} while (0) - -#else - -#define CHECK_RETRY_LIMIT_IN_MATCH - -#endif /* USE_RETRY_LIMIT_IN_MATCH */ - -extern unsigned long -onig_get_retry_limit_in_match(void) -{ -#ifdef USE_RETRY_LIMIT_IN_MATCH - return RetryLimitInMatch; -#else - /* return ONIG_NO_SUPPORT_CONFIG; */ - return 0; -#endif -} - -extern int -onig_set_retry_limit_in_match(unsigned long size) -{ -#ifdef USE_RETRY_LIMIT_IN_MATCH - RetryLimitInMatch = size; - return 0; -#else - return ONIG_NO_SUPPORT_CONFIG; -#endif -} - -#ifdef USE_CALLOUT -static OnigCalloutFunc DefaultProgressCallout; -static OnigCalloutFunc DefaultRetractionCallout; -#endif - -extern OnigMatchParam* -onig_new_match_param(void) -{ - OnigMatchParam* p; - - p = (OnigMatchParam* )xmalloc(sizeof(*p)); - if (IS_NOT_NULL(p)) { - onig_initialize_match_param(p); - } - - return p; -} - -extern void -onig_free_match_param_content(OnigMatchParam* p) -{ -#ifdef USE_CALLOUT - if (IS_NOT_NULL(p->callout_data)) { - xfree(p->callout_data); - p->callout_data = 0; - } -#endif -} - -extern void -onig_free_match_param(OnigMatchParam* p) -{ - if (IS_NOT_NULL(p)) { - onig_free_match_param_content(p); - xfree(p); - } -} - -extern int -onig_initialize_match_param(OnigMatchParam* mp) -{ - mp->match_stack_limit = MatchStackLimit; -#ifdef USE_RETRY_LIMIT_IN_MATCH - mp->retry_limit_in_match = RetryLimitInMatch; -#endif - -#ifdef USE_CALLOUT - mp->progress_callout_of_contents = DefaultProgressCallout; - mp->retraction_callout_of_contents = DefaultRetractionCallout; - mp->match_at_call_counter = 0; - mp->callout_user_data = 0; - mp->callout_data = 0; - mp->callout_data_alloc_num = 0; -#endif - - return ONIG_NORMAL; -} - -#ifdef USE_CALLOUT - -static int -adjust_match_param(regex_t* reg, OnigMatchParam* mp) -{ - RegexExt* ext = reg->extp; - - mp->match_at_call_counter = 0; - - if (IS_NULL(ext) || ext->callout_num == 0) return ONIG_NORMAL; - - if (ext->callout_num > mp->callout_data_alloc_num) { - CalloutData* d; - size_t n = ext->callout_num * sizeof(*d); - if (IS_NOT_NULL(mp->callout_data)) - d = (CalloutData* )xrealloc(mp->callout_data, n, mp->callout_data_alloc_num * sizeof(*d)); - else - d = (CalloutData* )xmalloc(n); - CHECK_NULL_RETURN_MEMERR(d); - - mp->callout_data = d; - mp->callout_data_alloc_num = ext->callout_num; - } - - xmemset(mp->callout_data, 0, mp->callout_data_alloc_num * sizeof(CalloutData)); - return ONIG_NORMAL; -} - -#define ADJUST_MATCH_PARAM(reg, mp) \ - r = adjust_match_param(reg, mp);\ - if (r != ONIG_NORMAL) return r; - -#define CALLOUT_DATA_AT_NUM(mp, num) ((mp)->callout_data + ((num) - 1)) - -extern int -onig_check_callout_data_and_clear_old_values(OnigCalloutArgs* args) -{ - OnigMatchParam* mp; - int num; - CalloutData* d; - - mp = args->msa->mp; - num = args->num; - - d = CALLOUT_DATA_AT_NUM(mp, num); - if (d->last_match_at_call_counter != mp->match_at_call_counter) { - xmemset(d, 0, sizeof(*d)); - d->last_match_at_call_counter = mp->match_at_call_counter; - return d->last_match_at_call_counter; - } - - return 0; -} - -extern int -onig_get_callout_data_dont_clear_old(regex_t* reg, OnigMatchParam* mp, - int callout_num, int slot, - OnigType* type, OnigValue* val) -{ - OnigType t; - CalloutData* d; - - if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT; - - d = CALLOUT_DATA_AT_NUM(mp, callout_num); - t = d->slot[slot].type; - if (IS_NOT_NULL(type)) *type = t; - if (IS_NOT_NULL(val)) *val = d->slot[slot].val; - return (t == ONIG_TYPE_VOID ? 1 : ONIG_NORMAL); -} - -extern int -onig_get_callout_data_by_callout_args_self_dont_clear_old(OnigCalloutArgs* args, - int slot, OnigType* type, - OnigValue* val) -{ - return onig_get_callout_data_dont_clear_old(args->regex, args->msa->mp, - args->num, slot, type, val); -} - -extern int -onig_get_callout_data(regex_t* reg, OnigMatchParam* mp, - int callout_num, int slot, - OnigType* type, OnigValue* val) -{ - OnigType t; - CalloutData* d; - - if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT; - - d = CALLOUT_DATA_AT_NUM(mp, callout_num); - if (d->last_match_at_call_counter != mp->match_at_call_counter) { - xmemset(d, 0, sizeof(*d)); - d->last_match_at_call_counter = mp->match_at_call_counter; - } - - t = d->slot[slot].type; - if (IS_NOT_NULL(type)) *type = t; - if (IS_NOT_NULL(val)) *val = d->slot[slot].val; - return (t == ONIG_TYPE_VOID ? 1 : ONIG_NORMAL); -} - -extern int -onig_get_callout_data_by_tag(regex_t* reg, OnigMatchParam* mp, - const UChar* tag, const UChar* tag_end, int slot, - OnigType* type, OnigValue* val) -{ - int num; - - num = onig_get_callout_num_by_tag(reg, tag, tag_end); - if (num < 0) return num; - if (num == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME; - - return onig_get_callout_data(reg, mp, num, slot, type, val); -} - -extern int -onig_get_callout_data_by_callout_args(OnigCalloutArgs* args, - int callout_num, int slot, - OnigType* type, OnigValue* val) -{ - return onig_get_callout_data(args->regex, args->msa->mp, callout_num, slot, - type, val); -} - -extern int -onig_get_callout_data_by_callout_args_self(OnigCalloutArgs* args, - int slot, OnigType* type, OnigValue* val) -{ - return onig_get_callout_data(args->regex, args->msa->mp, args->num, slot, - type, val); -} - -extern int -onig_set_callout_data(regex_t* reg, OnigMatchParam* mp, - int callout_num, int slot, - OnigType type, OnigValue* val) -{ - CalloutData* d; - - if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT; - - d = CALLOUT_DATA_AT_NUM(mp, callout_num); - d->slot[slot].type = type; - d->slot[slot].val = *val; - d->last_match_at_call_counter = mp->match_at_call_counter; - - return ONIG_NORMAL; -} - -extern int -onig_set_callout_data_by_tag(regex_t* reg, OnigMatchParam* mp, - const UChar* tag, const UChar* tag_end, int slot, - OnigType type, OnigValue* val) -{ - int num; - - num = onig_get_callout_num_by_tag(reg, tag, tag_end); - if (num < 0) return num; - if (num == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME; - - return onig_set_callout_data(reg, mp, num, slot, type, val); -} - -extern int -onig_set_callout_data_by_callout_args(OnigCalloutArgs* args, - int callout_num, int slot, - OnigType type, OnigValue* val) -{ - return onig_set_callout_data(args->regex, args->msa->mp, callout_num, slot, - type, val); -} - -extern int -onig_set_callout_data_by_callout_args_self(OnigCalloutArgs* args, - int slot, OnigType type, OnigValue* val) -{ - return onig_set_callout_data(args->regex, args->msa->mp, args->num, slot, - type, val); -} - -#else -#define ADJUST_MATCH_PARAM(reg, mp) -#endif /* USE_CALLOUT */ - - -static int -stack_double(int is_alloca, char** arg_alloc_base, - StackType** arg_stk_base, StackType** arg_stk_end, StackType** arg_stk, - MatchArg* msa) -{ - unsigned int n; - int used; - size_t size; - size_t new_size; - char* alloc_base; - char* new_alloc_base; - StackType *stk_base, *stk_end, *stk; - - alloc_base = *arg_alloc_base; - stk_base = *arg_stk_base; - stk_end = *arg_stk_end; - stk = *arg_stk; - - n = (unsigned int )(stk_end - stk_base); - size = sizeof(StackIndex) * msa->ptr_num + sizeof(StackType) * n; - n *= 2; - new_size = sizeof(StackIndex) * msa->ptr_num + sizeof(StackType) * n; - if (is_alloca != 0) { - new_alloc_base = (char* )xmalloc(new_size); - if (IS_NULL(new_alloc_base)) { - STACK_SAVE; - return ONIGERR_MEMORY; - } - xmemcpy(new_alloc_base, alloc_base, size); - } - else { - if (msa->match_stack_limit != 0 && n > msa->match_stack_limit) { - if ((unsigned int )(stk_end - stk_base) == msa->match_stack_limit) - return ONIGERR_MATCH_STACK_LIMIT_OVER; - else - n = msa->match_stack_limit; - } - new_alloc_base = (char* )xrealloc(alloc_base, new_size, size); - if (IS_NULL(new_alloc_base)) { - STACK_SAVE; - return ONIGERR_MEMORY; - } - } - - alloc_base = new_alloc_base; - used = (int )(stk - stk_base); - *arg_alloc_base = alloc_base; - *arg_stk_base = (StackType* )(alloc_base - + (sizeof(StackIndex) * msa->ptr_num)); - *arg_stk = *arg_stk_base + used; - *arg_stk_end = *arg_stk_base + n; - return 0; -} - -#define STACK_ENSURE(n) do {\ - if ((int )(stk_end - stk) < (n)) {\ - int r = stack_double(is_alloca, &alloc_base, &stk_base, &stk_end, &stk, msa);\ - if (r != 0) { STACK_SAVE; return r; } \ - is_alloca = 0;\ - UPDATE_FOR_STACK_REALLOC;\ - }\ -} while(0) - -#define STACK_AT(index) (stk_base + (index)) -#define GET_STACK_INDEX(stk) ((stk) - stk_base) - -#define STACK_PUSH_TYPE(stack_type) do {\ - STACK_ENSURE(1);\ - stk->type = (stack_type);\ - STACK_INC;\ -} while(0) - -#define IS_TO_VOID_TARGET(stk) (((stk)->type & STK_MASK_TO_VOID_TARGET) != 0) - -#define STACK_PUSH(stack_type,pat,s,sprev) do {\ - STACK_ENSURE(1);\ - stk->type = (stack_type);\ - stk->u.state.pcode = (pat);\ - stk->u.state.pstr = (s);\ - stk->u.state.pstr_prev = (sprev);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_ENSURED(stack_type,pat) do {\ - stk->type = (stack_type);\ - stk->u.state.pcode = (pat);\ - STACK_INC;\ -} while(0) - -#ifdef ONIG_DEBUG_MATCH -#define STACK_PUSH_BOTTOM(stack_type,pat) do {\ - stk->type = (stack_type);\ - stk->u.state.pcode = (pat);\ - stk->u.state.pstr = s;\ - stk->u.state.pstr_prev = sprev;\ - STACK_INC;\ -} while (0) -#else -#define STACK_PUSH_BOTTOM(stack_type,pat) do {\ - stk->type = (stack_type);\ - stk->u.state.pcode = (pat);\ - STACK_INC;\ -} while (0) -#endif - -#define STACK_PUSH_ALT(pat,s,sprev) STACK_PUSH(STK_ALT,pat,s,sprev) -#define STACK_PUSH_SUPER_ALT(pat,s,sprev) STACK_PUSH(STK_SUPER_ALT,pat,s,sprev) -#define STACK_PUSH_PREC_READ_START(s,sprev) \ - STACK_PUSH(STK_PREC_READ_START,(Operation* )0,s,sprev) -#define STACK_PUSH_ALT_PREC_READ_NOT(pat,s,sprev) \ - STACK_PUSH(STK_ALT_PREC_READ_NOT,pat,s,sprev) -#define STACK_PUSH_TO_VOID_START STACK_PUSH_TYPE(STK_TO_VOID_START) -#define STACK_PUSH_ALT_LOOK_BEHIND_NOT(pat,s,sprev) \ - STACK_PUSH(STK_ALT_LOOK_BEHIND_NOT,pat,s,sprev) - -#define STACK_PUSH_REPEAT(sid, pat) do {\ - STACK_ENSURE(1);\ - stk->type = STK_REPEAT;\ - stk->zid = (sid);\ - stk->u.repeat.pcode = (pat);\ - stk->u.repeat.count = 0;\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_REPEAT_INC(sindex) do {\ - STACK_ENSURE(1);\ - stk->type = STK_REPEAT_INC;\ - stk->u.repeat_inc.si = (sindex);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_MEM_START(mnum, s) do {\ - STACK_ENSURE(1);\ - stk->type = STK_MEM_START;\ - stk->zid = (mnum);\ - stk->u.mem.pstr = (s);\ - stk->u.mem.prev_start = mem_start_stk[mnum];\ - stk->u.mem.prev_end = mem_end_stk[mnum];\ - mem_start_stk[mnum] = GET_STACK_INDEX(stk);\ - mem_end_stk[mnum] = INVALID_STACK_INDEX;\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_MEM_END(mnum, s) do {\ - STACK_ENSURE(1);\ - stk->type = STK_MEM_END;\ - stk->zid = (mnum);\ - stk->u.mem.pstr = (s);\ - stk->u.mem.prev_start = mem_start_stk[mnum];\ - stk->u.mem.prev_end = mem_end_stk[mnum];\ - mem_end_stk[mnum] = GET_STACK_INDEX(stk);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_MEM_END_MARK(mnum) do {\ - STACK_ENSURE(1);\ - stk->type = STK_MEM_END_MARK;\ - stk->zid = (mnum);\ - STACK_INC;\ -} while(0) - -#define STACK_GET_MEM_START(mnum, k) do {\ - int level = 0;\ - k = stk;\ - while (k > stk_base) {\ - k--;\ - if ((k->type & STK_MASK_MEM_END_OR_MARK) != 0 \ - && k->zid == (mnum)) {\ - level++;\ - }\ - else if (k->type == STK_MEM_START && k->zid == (mnum)) {\ - if (level == 0) break;\ - level--;\ - }\ - }\ -} while(0) - -#define STACK_GET_MEM_RANGE(k, mnum, start, end) do {\ - int level = 0;\ - while (k < stk) {\ - if (k->type == STK_MEM_START && k->u.mem.num == (mnum)) {\ - if (level == 0) (start) = k->u.mem.pstr;\ - level++;\ - }\ - else if (k->type == STK_MEM_END && k->u.mem.num == (mnum)) {\ - level--;\ - if (level == 0) {\ - (end) = k->u.mem.pstr;\ - break;\ - }\ - }\ - k++;\ - }\ -} while(0) - -#define STACK_PUSH_EMPTY_CHECK_START(cnum, s) do {\ - STACK_ENSURE(1);\ - stk->type = STK_EMPTY_CHECK_START;\ - stk->zid = (cnum);\ - stk->u.empty_check.pstr = (s);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_EMPTY_CHECK_END(cnum) do {\ - STACK_ENSURE(1);\ - stk->type = STK_EMPTY_CHECK_END;\ - stk->zid = (cnum);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_CALL_FRAME(pat) do {\ - STACK_ENSURE(1);\ - stk->type = STK_CALL_FRAME;\ - stk->u.call_frame.ret_addr = (pat);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_RETURN do {\ - STACK_ENSURE(1);\ - stk->type = STK_RETURN;\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_SAVE_VAL(sid, stype, sval) do {\ - STACK_ENSURE(1);\ - stk->type = STK_SAVE_VAL;\ - stk->zid = (sid);\ - stk->u.val.type = (stype);\ - stk->u.val.v = (UChar* )(sval);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_SAVE_VAL_WITH_SPREV(sid, stype, sval) do {\ - STACK_ENSURE(1);\ - stk->type = STK_SAVE_VAL;\ - stk->zid = (sid);\ - stk->u.val.type = (stype);\ - stk->u.val.v = (UChar* )(sval);\ - stk->u.val.v2 = sprev;\ - STACK_INC;\ -} while(0) - -#define STACK_GET_SAVE_VAL_TYPE_LAST(stype, sval) do {\ - StackType *k = stk;\ - while (k > stk_base) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST"); \ - if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)) {\ - (sval) = k->u.val.v;\ - break;\ - }\ - }\ -} while (0) - -#define STACK_GET_SAVE_VAL_TYPE_LAST_ID(stype, sid, sval) do { \ - int level = 0;\ - StackType *k = stk;\ - while (k > stk_base) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID"); \ - if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\ - && k->zid == (sid)) {\ - if (level == 0) {\ - (sval) = k->u.val.v;\ - break;\ - }\ - }\ - else if (k->type == STK_CALL_FRAME)\ - level--;\ - else if (k->type == STK_RETURN)\ - level++;\ - }\ -} while (0) - -#define STACK_GET_SAVE_VAL_TYPE_LAST_ID_WITH_SPREV(stype, sid, sval) do { \ - int level = 0;\ - StackType *k = stk;\ - while (k > stk_base) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID"); \ - if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\ - && k->zid == (sid)) {\ - if (level == 0) {\ - (sval) = k->u.val.v;\ - sprev = k->u.val.v2;\ - break;\ - }\ - }\ - else if (k->type == STK_CALL_FRAME)\ - level--;\ - else if (k->type == STK_RETURN)\ - level++;\ - }\ -} while (0) - -#define STACK_GET_SAVE_VAL_TYPE_LAST_ID_FROM(stype, sid, sval, stk_from) do { \ - int level = 0;\ - StackType *k = (stk_from);\ - while (k > stk_base) {\ - STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID_FROM"); \ - if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\ - && k->u.val.id == (sid)) {\ - if (level == 0) {\ - (sval) = k->u.val.v;\ - break;\ - }\ - }\ - else if (k->type == STK_CALL_FRAME)\ - level--;\ - else if (k->type == STK_RETURN)\ - level++;\ - k--;\ - }\ -} while (0) - -#define STACK_PUSH_CALLOUT_CONTENTS(anum, func) do {\ - STACK_ENSURE(1);\ - stk->type = STK_CALLOUT;\ - stk->zid = ONIG_NON_NAME_ID;\ - stk->u.callout.num = (anum);\ - stk->u.callout.func = (func);\ - STACK_INC;\ -} while(0) - -#define STACK_PUSH_CALLOUT_NAME(aid, anum, func) do {\ - STACK_ENSURE(1);\ - stk->type = STK_CALLOUT;\ - stk->zid = (aid);\ - stk->u.callout.num = (anum);\ - stk->u.callout.func = (func);\ - STACK_INC;\ -} while(0) - -#ifdef ONIG_DEBUG -#define STACK_BASE_CHECK(p, at) \ - if ((p) < stk_base) {\ - fprintf(stderr, "at %s\n", at);\ - goto stack_error;\ - } -#else -#define STACK_BASE_CHECK(p, at) -#endif - -#define STACK_POP_ONE do {\ - stk--;\ - STACK_BASE_CHECK(stk, "STACK_POP_ONE"); \ -} while(0) - - -#ifdef USE_CALLOUT -#define POP_CALLOUT_CASE \ - else if (stk->type == STK_CALLOUT) {\ - RETRACTION_CALLOUT(stk->u.callout.func, stk->zid, stk->u.callout.num, msa->mp->callout_user_data);\ - } -#else -#define POP_CALLOUT_CASE -#endif - -#define STACK_POP do {\ - switch (pop_level) {\ - case STACK_POP_LEVEL_FREE:\ - while (1) {\ - stk--;\ - STACK_BASE_CHECK(stk, "STACK_POP"); \ - if ((stk->type & STK_MASK_POP_USED) != 0) break;\ - }\ - break;\ - case STACK_POP_LEVEL_MEM_START:\ - while (1) {\ - stk--;\ - STACK_BASE_CHECK(stk, "STACK_POP 2"); \ - if ((stk->type & STK_MASK_POP_USED) != 0) break;\ - else if (stk->type == STK_MEM_START) {\ - mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ - mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ - }\ - }\ - break;\ - default:\ - while (1) {\ - stk--;\ - STACK_BASE_CHECK(stk, "STACK_POP 3"); \ - if ((stk->type & STK_MASK_POP_USED) != 0) break;\ - else if ((stk->type & STK_MASK_POP_HANDLED) != 0) {\ - if (stk->type == STK_MEM_START) {\ - mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ - mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ - }\ - else if (stk->type == STK_REPEAT_INC) {\ - STACK_AT(stk->u.repeat_inc.si)->u.repeat.count--;\ - }\ - else if (stk->type == STK_MEM_END) {\ - mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ - mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ - }\ - POP_CALLOUT_CASE\ - }\ - }\ - break;\ - }\ -} while(0) - -#define POP_TIL_BODY(aname, til_type) do {\ - while (1) {\ - stk--;\ - STACK_BASE_CHECK(stk, (aname));\ - if ((stk->type & STK_MASK_POP_HANDLED_TIL) != 0) {\ - if (stk->type == (til_type)) break;\ - else {\ - if (stk->type == STK_MEM_START) {\ - mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ - mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ - }\ - else if (stk->type == STK_REPEAT_INC) {\ - STACK_AT(stk->u.repeat_inc.si)->u.repeat.count--;\ - }\ - else if (stk->type == STK_MEM_END) {\ - mem_start_stk[stk->zid] = stk->u.mem.prev_start;\ - mem_end_stk[stk->zid] = stk->u.mem.prev_end;\ - }\ - /* Don't call callout here because negation of total success by (?!..) (?type == STK_TO_VOID_START) {\ - k->type = STK_VOID;\ - break;\ - }\ - k->type = STK_VOID;\ - }\ - }\ -} while(0) - -#define STACK_GET_PREC_READ_START(k) do {\ - int level = 0;\ - k = stk;\ - while (1) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_GET_PREC_READ_START");\ - if (IS_TO_VOID_TARGET(k)) {\ - k->type = STK_VOID;\ - }\ - else if (k->type == STK_PREC_READ_START) {\ - if (level == 0) {\ - break;\ - }\ - level--;\ - }\ - else if (k->type == STK_PREC_READ_END) {\ - level++;\ - }\ - }\ -} while(0) - -#define STACK_EMPTY_CHECK(isnull,sid,s) do {\ - StackType* k = stk;\ - while (1) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK"); \ - if (k->type == STK_EMPTY_CHECK_START) {\ - if (k->zid == (sid)) {\ - (isnull) = (k->u.empty_check.pstr == (s));\ - break;\ - }\ - }\ - }\ -} while(0) - -#define STACK_MEM_START_GET_PREV_END_ADDR(k /* STK_MEM_START*/, reg, addr) do {\ - if (k->u.mem.prev_end == INVALID_STACK_INDEX) {\ - (addr) = 0;\ - }\ - else {\ - if (MEM_STATUS_AT((reg)->bt_mem_end, k->zid))\ - (addr) = STACK_AT(k->u.mem.prev_end)->u.mem.pstr;\ - else\ - (addr) = (UChar* )k->u.mem.prev_end;\ - }\ -} while (0) - -#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT -#define STACK_EMPTY_CHECK_MEM(isnull,sid,s,reg) do {\ - StackType* k = stk;\ - while (1) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK_MEM"); \ - if (k->type == STK_EMPTY_CHECK_START) {\ - if (k->zid == (sid)) {\ - if (k->u.empty_check.pstr != (s)) {\ - (isnull) = 0;\ - break;\ - }\ - else {\ - UChar* endp;\ - int level = 0;\ - (isnull) = 1;\ - while (k < stk) {\ - if (k->type == STK_MEM_START && level == 0) {\ - STACK_MEM_START_GET_PREV_END_ADDR(k, reg, endp);\ - if (endp == 0) {\ - (isnull) = 0; break;\ - }\ - else if (STACK_AT(k->u.mem.prev_start)->u.mem.pstr != endp) {\ - (isnull) = 0; break;\ - }\ - else if (endp != s) {\ - (isnull) = -1; /* empty, but position changed */ \ - }\ - }\ - else if (k->type == STK_PREC_READ_START) {\ - level++;\ - }\ - else if (k->type == STK_PREC_READ_END) {\ - level--;\ - }\ - k++;\ - }\ - break;\ - }\ - }\ - }\ - }\ -} while(0) - -#define STACK_EMPTY_CHECK_MEM_REC(isnull,sid,s,reg) do {\ - int level = 0;\ - StackType* k = stk;\ - while (1) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK_MEM_REC");\ - if (k->type == STK_EMPTY_CHECK_START) {\ - if (k->zid == (sid)) {\ - if (level == 0) {\ - if (k->u.empty_check.pstr != (s)) {\ - (isnull) = 0;\ - break;\ - }\ - else {\ - UChar* endp;\ - int prec_level = 0;\ - (isnull) = 1;\ - while (k < stk) {\ - if (k->type == STK_MEM_START) {\ - if (level == 0 && prec_level == 0) {\ - STACK_MEM_START_GET_PREV_END_ADDR(k, reg, endp);\ - if (endp == 0) {\ - (isnull) = 0; break;\ - }\ - else if (STACK_AT(k->u.mem.prev_start)->u.mem.pstr != endp) { \ - (isnull) = 0; break;\ - }\ - else if (endp != s) {\ - (isnull) = -1; /* empty, but position changed */\ - }\ - }\ - }\ - else if (k->type == STK_EMPTY_CHECK_START) {\ - if (k->zid == (sid)) level++;\ - }\ - else if (k->type == STK_EMPTY_CHECK_END) {\ - if (k->zid == (sid)) level--;\ - }\ - else if (k->type == STK_PREC_READ_START) {\ - prec_level++;\ - }\ - else if (k->type == STK_PREC_READ_END) {\ - prec_level--;\ - }\ - k++;\ - }\ - break;\ - }\ - }\ - else {\ - level--;\ - }\ - }\ - }\ - else if (k->type == STK_EMPTY_CHECK_END) {\ - if (k->zid == (sid)) level++;\ - }\ - }\ -} while(0) -#else -#define STACK_EMPTY_CHECK_REC(isnull,id,s) do {\ - int level = 0;\ - StackType* k = stk;\ - while (1) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK_REC"); \ - if (k->type == STK_EMPTY_CHECK_START) {\ - if (k->u.empty_check.num == (id)) {\ - if (level == 0) {\ - (isnull) = (k->u.empty_check.pstr == (s));\ - break;\ - }\ - }\ - level--;\ - }\ - else if (k->type == STK_EMPTY_CHECK_END) {\ - level++;\ - }\ - }\ -} while(0) -#endif /* USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT */ - -#define STACK_GET_REPEAT(sid, k) do {\ - int level = 0;\ - k = stk;\ - while (1) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_GET_REPEAT"); \ - if (k->type == STK_REPEAT) {\ - if (level == 0) {\ - if (k->zid == (sid)) {\ - break;\ - }\ - }\ - }\ - else if (k->type == STK_CALL_FRAME) level--;\ - else if (k->type == STK_RETURN) level++;\ - }\ -} while(0) - -#define STACK_RETURN(addr) do {\ - int level = 0;\ - StackType* k = stk;\ - while (1) {\ - k--;\ - STACK_BASE_CHECK(k, "STACK_RETURN"); \ - if (k->type == STK_CALL_FRAME) {\ - if (level == 0) {\ - (addr) = k->u.call_frame.ret_addr;\ - break;\ - }\ - else level--;\ - }\ - else if (k->type == STK_RETURN)\ - level++;\ - }\ -} while(0) - - -#define STRING_CMP(s1,s2,len) do {\ - while (len-- > 0) {\ - if (*s1++ != *s2++) goto fail;\ - }\ -} while(0) - -#define STRING_CMP_IC(case_fold_flag,s1,ps2,len) do {\ - if (string_cmp_ic(encode, case_fold_flag, s1, ps2, len) == 0) \ - goto fail; \ -} while(0) - -static int string_cmp_ic(OnigEncoding enc, int case_fold_flag, - UChar* s1, UChar** ps2, int mblen) -{ - UChar buf1[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - UChar buf2[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - UChar *p1, *p2, *end1, *s2, *end2; - int len1, len2; - - s2 = *ps2; - end1 = s1 + mblen; - end2 = s2 + mblen; - while (s1 < end1) { - len1 = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &s1, end1, buf1); - len2 = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &s2, end2, buf2); - if (len1 != len2) return 0; - p1 = buf1; - p2 = buf2; - while (len1-- > 0) { - if (*p1 != *p2) return 0; - p1++; - p2++; - } - } - - *ps2 = s2; - return 1; -} - -#define STRING_CMP_VALUE(s1,s2,len,is_fail) do {\ - is_fail = 0;\ - while (len-- > 0) {\ - if (*s1++ != *s2++) {\ - is_fail = 1; break;\ - }\ - }\ -} while(0) - -#define STRING_CMP_VALUE_IC(case_fold_flag,s1,ps2,len,is_fail) do {\ - if (string_cmp_ic(encode, case_fold_flag, s1, ps2, len) == 0) \ - is_fail = 1; \ - else \ - is_fail = 0; \ -} while(0) - - -#define IS_EMPTY_STR (str == end) -#define ON_STR_BEGIN(s) ((s) == str) -#define ON_STR_END(s) ((s) == end) -#define DATA_ENSURE_CHECK1 (s < right_range) -#define DATA_ENSURE_CHECK(n) (s + (n) <= right_range) -#define DATA_ENSURE(n) if (s + (n) > right_range) goto fail - -#define INIT_RIGHT_RANGE right_range = (UChar* )in_right_range - -#ifdef USE_CAPTURE_HISTORY -static int -make_capture_history_tree(OnigCaptureTreeNode* node, StackType** kp, - StackType* stk_top, UChar* str, regex_t* reg) -{ - int n, r; - OnigCaptureTreeNode* child; - StackType* k = *kp; - - while (k < stk_top) { - if (k->type == STK_MEM_START) { - n = k->zid; - if (n <= ONIG_MAX_CAPTURE_HISTORY_GROUP && - MEM_STATUS_AT(reg->capture_history, n) != 0) { - child = history_node_new(); - CHECK_NULL_RETURN_MEMERR(child); - child->group = n; - child->beg = (int )(k->u.mem.pstr - str); - r = history_tree_add_child(node, child); - if (r != 0) return r; - *kp = (k + 1); - r = make_capture_history_tree(child, kp, stk_top, str, reg); - if (r != 0) return r; - - k = *kp; - child->end = (int )(k->u.mem.pstr - str); - } - } - else if (k->type == STK_MEM_END) { - if (k->zid == node->group) { - node->end = (int )(k->u.mem.pstr - str); - *kp = k; - return 0; - } - } - k++; - } - - return 1; /* 1: root node ending. */ -} -#endif - -#ifdef USE_BACKREF_WITH_LEVEL -static int mem_is_in_memp(int mem, int num, MemNumType* memp) -{ - int i; - - for (i = 0; i < num; i++) { - if (mem == (int )memp[i]) return 1; - } - return 0; -} - -static int -backref_match_at_nested_level(regex_t* reg, - StackType* top, StackType* stk_base, - int ignore_case, int case_fold_flag, - int nest, int mem_num, MemNumType* memp, - UChar** s, const UChar* send) -{ - UChar *ss, *p, *pstart, *pend = NULL_UCHARP; - int level; - StackType* k; - - level = 0; - k = top; - k--; - while (k >= stk_base) { - if (k->type == STK_CALL_FRAME) { - level--; - } - else if (k->type == STK_RETURN) { - level++; - } - else if (level == nest) { - if (k->type == STK_MEM_START) { - if (mem_is_in_memp(k->zid, mem_num, memp)) { - pstart = k->u.mem.pstr; - if (IS_NOT_NULL(pend)) { - if (pend - pstart > send - *s) return 0; /* or goto next_mem; */ - p = pstart; - ss = *s; - - if (ignore_case != 0) { - if (string_cmp_ic(reg->enc, case_fold_flag, - pstart, &ss, (int )(pend - pstart)) == 0) - return 0; /* or goto next_mem; */ - } - else { - while (p < pend) { - if (*p++ != *ss++) return 0; /* or goto next_mem; */ - } - } - - *s = ss; - return 1; - } - } - } - else if (k->type == STK_MEM_END) { - if (mem_is_in_memp(k->zid, mem_num, memp)) { - pend = k->u.mem.pstr; - } - } - } - k--; - } - - return 0; -} - -static int -backref_check_at_nested_level(regex_t* reg, - StackType* top, StackType* stk_base, - int nest, int mem_num, MemNumType* memp) -{ - int level; - StackType* k; - - level = 0; - k = top; - k--; - while (k >= stk_base) { - if (k->type == STK_CALL_FRAME) { - level--; - } - else if (k->type == STK_RETURN) { - level++; - } - else if (level == nest) { - if (k->type == STK_MEM_END) { - if (mem_is_in_memp(k->zid, mem_num, memp)) { - return 1; - } - } - } - k--; - } - - return 0; -} -#endif /* USE_BACKREF_WITH_LEVEL */ - - -#ifdef ONIG_DEBUG_STATISTICS - -#define USE_TIMEOFDAY - -#ifdef USE_TIMEOFDAY -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_UNISTD_H -#include -#endif -static struct timeval ts, te; -#define GETTIME(t) gettimeofday(&(t), (struct timezone* )0) -#define TIMEDIFF(te,ts) (((te).tv_usec - (ts).tv_usec) + \ - (((te).tv_sec - (ts).tv_sec)*1000000)) -#else -#ifdef HAVE_SYS_TIMES_H -#include -#endif -static struct tms ts, te; -#define GETTIME(t) times(&(t)) -#define TIMEDIFF(te,ts) ((te).tms_utime - (ts).tms_utime) -#endif - -static int OpCounter[256]; -static int OpPrevCounter[256]; -static unsigned long OpTime[256]; -static int OpCurr = OP_FINISH; -static int OpPrevTarget = OP_FAIL; -static int MaxStackDepth = 0; - -#define SOP_IN(opcode) do {\ - if (opcode == OpPrevTarget) OpPrevCounter[OpCurr]++;\ - OpCurr = opcode;\ - OpCounter[opcode]++;\ - GETTIME(ts);\ -} while(0) - -#define SOP_OUT do {\ - GETTIME(te);\ - OpTime[OpCurr] += TIMEDIFF(te, ts);\ -} while(0) - -extern void -onig_statistics_init(void) -{ - int i; - for (i = 0; i < 256; i++) { - OpCounter[i] = OpPrevCounter[i] = 0; OpTime[i] = 0; - } - MaxStackDepth = 0; -} - -extern int -onig_print_statistics(FILE* f) -{ - int r; - int i; - - r = fprintf(f, " count prev time\n"); - if (r < 0) return -1; - - for (i = 0; OpInfo[i].opcode >= 0; i++) { - r = fprintf(f, "%8d: %8d: %10ld: %s\n", - OpCounter[i], OpPrevCounter[i], OpTime[i], OpInfo[i].name); - if (r < 0) return -1; - } - r = fprintf(f, "\nmax stack depth: %d\n", MaxStackDepth); - if (r < 0) return -1; - - return 0; -} - -#define STACK_INC do {\ - stk++;\ - if (stk - stk_base > MaxStackDepth) \ - MaxStackDepth = stk - stk_base;\ -} while(0) - -#else -#define STACK_INC stk++ - -#define SOP_IN(opcode) -#define SOP_OUT -#endif - - -/* matching region of POSIX API */ -typedef int regoff_t; - -typedef struct { - regoff_t rm_so; - regoff_t rm_eo; -} posix_regmatch_t; - - - -#ifdef USE_THREADED_CODE - -#define BYTECODE_INTERPRETER_START GOTO_OP; -#define BYTECODE_INTERPRETER_END -#define CASE_OP(x) L_##x: SOP_IN(OP_##x); sbegin = s; MATCH_DEBUG_OUT(0) -#define DEFAULT_OP /* L_DEFAULT: */ -#define NEXT_OP sprev = sbegin; JUMP_OP -#define JUMP_OP GOTO_OP -#ifdef USE_DIRECT_THREADED_CODE -#define GOTO_OP goto *(p->opaddr) -#else -#define GOTO_OP goto *opcode_to_label[p->opcode] -#endif -#define BREAK_OP /* Nothing */ - -#else - -#define BYTECODE_INTERPRETER_START \ - while (1) {\ - MATCH_DEBUG_OUT(0)\ - sbegin = s;\ - switch (p->opcode) { -#define BYTECODE_INTERPRETER_END } sprev = sbegin; } -#define CASE_OP(x) case OP_##x: SOP_IN(OP_##x); -#define DEFAULT_OP default: -#define NEXT_OP break -#define JUMP_OP GOTO_OP -#define GOTO_OP continue; break -#define BREAK_OP break - -#endif /* USE_THREADED_CODE */ - -#define INC_OP p++ -#define NEXT_OUT SOP_OUT; NEXT_OP -#define JUMP_OUT SOP_OUT; JUMP_OP -#define BREAK_OUT SOP_OUT; BREAK_OP -#define CHECK_INTERRUPT_JUMP_OUT SOP_OUT; CHECK_INTERRUPT_IN_MATCH; JUMP_OP - - -#ifdef ONIG_DEBUG_MATCH -#define MATCH_DEBUG_OUT(offset) do {\ - Operation *xp;\ - UChar *q, *bp, buf[50];\ - int len, spos;\ - spos = IS_NOT_NULL(s) ? (int )(s - str) : -1;\ - xp = p - (offset);\ - fprintf(stderr, "%7u: %7ld: %4d> \"",\ - counter, GET_STACK_INDEX(stk), spos);\ - counter++;\ - bp = buf;\ - if (IS_NOT_NULL(s)) {\ - for (i = 0, q = s; i < 7 && q < end; i++) {\ - len = enclen(encode, q);\ - while (len-- > 0) *bp++ = *q++;\ - }\ - if (q < end) { xmemcpy(bp, "...\"", 4); bp += 4; }\ - else { xmemcpy(bp, "\"", 1); bp += 1; }\ - }\ - else {\ - xmemcpy(bp, "\"", 1); bp += 1;\ - }\ - *bp = 0;\ - fputs((char* )buf, stderr);\ - for (i = 0; i < 20 - (bp - buf); i++) fputc(' ', stderr);\ - if (xp == FinishCode)\ - fprintf(stderr, "----: finish");\ - else {\ - fprintf(stderr, "%4d: ", (int )(xp - reg->ops));\ - print_compiled_byte_code(stderr, reg, (int )(xp - reg->ops), reg->ops, encode);\ - }\ - fprintf(stderr, "\n");\ - } while(0); -#else -#define MATCH_DEBUG_OUT(offset) -#endif - - -/* match data(str - end) from position (sstart). */ -/* if sstart == str then set sprev to NULL. */ -static int -match_at(regex_t* reg, const UChar* str, const UChar* end, - const UChar* in_right_range, const UChar* sstart, UChar* sprev, - MatchArg* msa) -{ - -#if defined(USE_DIRECT_THREADED_CODE) - static Operation FinishCode[] = { { .opaddr=&&L_FINISH } }; -#else - static Operation FinishCode[] = { { OP_FINISH } }; -#endif - -#ifdef USE_THREADED_CODE - static const void *opcode_to_label[] = { - &&L_FINISH, - &&L_END, - &&L_EXACT1, - &&L_EXACT2, - &&L_EXACT3, - &&L_EXACT4, - &&L_EXACT5, - &&L_EXACTN, - &&L_EXACTMB2N1, - &&L_EXACTMB2N2, - &&L_EXACTMB2N3, - &&L_EXACTMB2N, - &&L_EXACTMB3N, - &&L_EXACTMBN, - &&L_EXACT1_IC, - &&L_EXACTN_IC, - &&L_CCLASS, - &&L_CCLASS_MB, - &&L_CCLASS_MIX, - &&L_CCLASS_NOT, - &&L_CCLASS_MB_NOT, - &&L_CCLASS_MIX_NOT, - &&L_ANYCHAR, - &&L_ANYCHAR_ML, - &&L_ANYCHAR_STAR, - &&L_ANYCHAR_ML_STAR, - &&L_ANYCHAR_STAR_PEEK_NEXT, - &&L_ANYCHAR_ML_STAR_PEEK_NEXT, - &&L_WORD, - &&L_WORD_ASCII, - &&L_NO_WORD, - &&L_NO_WORD_ASCII, - &&L_WORD_BOUNDARY, - &&L_NO_WORD_BOUNDARY, - &&L_WORD_BEGIN, - &&L_WORD_END, - &&L_TEXT_SEGMENT_BOUNDARY, - &&L_BEGIN_BUF, - &&L_END_BUF, - &&L_BEGIN_LINE, - &&L_END_LINE, - &&L_SEMI_END_BUF, - &&L_BEGIN_POSITION, - &&L_BACKREF1, - &&L_BACKREF2, - &&L_BACKREF_N, - &&L_BACKREF_N_IC, - &&L_BACKREF_MULTI, - &&L_BACKREF_MULTI_IC, - &&L_BACKREF_WITH_LEVEL, - &&L_BACKREF_WITH_LEVEL_IC, - &&L_BACKREF_CHECK, - &&L_BACKREF_CHECK_WITH_LEVEL, - &&L_MEMORY_START, - &&L_MEMORY_START_PUSH, - &&L_MEMORY_END_PUSH, - &&L_MEMORY_END_PUSH_REC, - &&L_MEMORY_END, - &&L_MEMORY_END_REC, - &&L_FAIL, - &&L_JUMP, - &&L_PUSH, - &&L_PUSH_SUPER, - &&L_POP_OUT, -#ifdef USE_OP_PUSH_OR_JUMP_EXACT - &&L_PUSH_OR_JUMP_EXACT1, -#endif - &&L_PUSH_IF_PEEK_NEXT, - &&L_REPEAT, - &&L_REPEAT_NG, - &&L_REPEAT_INC, - &&L_REPEAT_INC_NG, - &&L_REPEAT_INC_SG, - &&L_REPEAT_INC_NG_SG, - &&L_EMPTY_CHECK_START, - &&L_EMPTY_CHECK_END, - &&L_EMPTY_CHECK_END_MEMST, - &&L_EMPTY_CHECK_END_MEMST_PUSH, - &&L_PREC_READ_START, - &&L_PREC_READ_END, - &&L_PREC_READ_NOT_START, - &&L_PREC_READ_NOT_END, - &&L_ATOMIC_START, - &&L_ATOMIC_END, - &&L_LOOK_BEHIND, - &&L_LOOK_BEHIND_NOT_START, - &&L_LOOK_BEHIND_NOT_END, - &&L_CALL, - &&L_RETURN, - &&L_PUSH_SAVE_VAL, - &&L_UPDATE_VAR, -#ifdef USE_CALLOUT - &&L_CALLOUT_CONTENTS, - &&L_CALLOUT_NAME, -#endif - }; -#endif - - int i, n, num_mem, best_len, pop_level; - LengthType tlen, tlen2; - MemNumType mem; - RelAddrType addr; - UChar *s, *q, *ps, *sbegin; - UChar *right_range; - int is_alloca; - char *alloc_base; - StackType *stk_base, *stk, *stk_end; - StackType *stkp; /* used as any purpose. */ - StackIndex si; - StackIndex *repeat_stk; - StackIndex *mem_start_stk, *mem_end_stk; - UChar* keep; -#ifdef USE_RETRY_LIMIT_IN_MATCH - unsigned long retry_limit_in_match; - unsigned long retry_in_match_counter; -#endif - -#ifdef USE_CALLOUT - int of; -#endif - - Operation* p = reg->ops; - OnigOptionType option = reg->options; - OnigEncoding encode = reg->enc; - OnigCaseFoldType case_fold_flag = reg->case_fold_flag; - -#ifdef ONIG_DEBUG_MATCH - static unsigned int counter = 1; -#endif - -#ifdef USE_DIRECT_THREADED_CODE - if (IS_NULL(msa)) { - for (i = 0; i < reg->ops_used; i++) { - const void* addr; - addr = opcode_to_label[reg->ocs[i]]; - p->opaddr = addr; - p++; - } - return ONIG_NORMAL; - } -#endif - -#ifdef USE_CALLOUT - msa->mp->match_at_call_counter++; -#endif - -#ifdef USE_RETRY_LIMIT_IN_MATCH - retry_limit_in_match = msa->retry_limit_in_match; -#endif - - pop_level = reg->stack_pop_level; - num_mem = reg->num_mem; - STACK_INIT(INIT_MATCH_STACK_SIZE); - UPDATE_FOR_STACK_REALLOC; - for (i = 1; i <= num_mem; i++) { - mem_start_stk[i] = mem_end_stk[i] = INVALID_STACK_INDEX; - } - -#ifdef ONIG_DEBUG_MATCH - fprintf(stderr, "match_at: str: %p, end: %p, start: %p, sprev: %p\n", - str, end, sstart, sprev); - fprintf(stderr, "size: %d, start offset: %d\n", - (int )(end - str), (int )(sstart - str)); -#endif - - best_len = ONIG_MISMATCH; - keep = s = (UChar* )sstart; - STACK_PUSH_BOTTOM(STK_ALT, FinishCode); /* bottom stack */ - INIT_RIGHT_RANGE; - -#ifdef USE_RETRY_LIMIT_IN_MATCH - retry_in_match_counter = 0; -#endif - - BYTECODE_INTERPRETER_START { - CASE_OP(END) - n = (int )(s - sstart); - if (n > best_len) { - OnigRegion* region; -#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE - if (IS_FIND_LONGEST(option)) { - if (n > msa->best_len) { - msa->best_len = n; - msa->best_s = (UChar* )sstart; - } - else - goto end_best_len; - } -#endif - best_len = n; - region = msa->region; - if (region) { - if (keep > s) keep = s; - -#ifdef USE_POSIX_API_REGION_OPTION - if (IS_POSIX_REGION(msa->options)) { - posix_regmatch_t* rmt = (posix_regmatch_t* )region; - - rmt[0].rm_so = (regoff_t )(keep - str); - rmt[0].rm_eo = (regoff_t )(s - str); - for (i = 1; i <= num_mem; i++) { - if (mem_end_stk[i] != INVALID_STACK_INDEX) { - if (MEM_STATUS_AT(reg->bt_mem_start, i)) - rmt[i].rm_so = (regoff_t )(STACK_AT(mem_start_stk[i])->u.mem.pstr - str); - else - rmt[i].rm_so = (regoff_t )((UChar* )((void* )(mem_start_stk[i])) - str); - - rmt[i].rm_eo = (regoff_t )((MEM_STATUS_AT(reg->bt_mem_end, i) - ? STACK_AT(mem_end_stk[i])->u.mem.pstr - : (UChar* )((void* )mem_end_stk[i])) - - str); - } - else { - rmt[i].rm_so = rmt[i].rm_eo = ONIG_REGION_NOTPOS; - } - } - } - else { -#endif /* USE_POSIX_API_REGION_OPTION */ - region->beg[0] = (int )(keep - str); - region->end[0] = (int )(s - str); - for (i = 1; i <= num_mem; i++) { - if (mem_end_stk[i] != INVALID_STACK_INDEX) { - if (MEM_STATUS_AT(reg->bt_mem_start, i)) - region->beg[i] = (int )(STACK_AT(mem_start_stk[i])->u.mem.pstr - str); - else - region->beg[i] = (int )((UChar* )((void* )mem_start_stk[i]) - str); - - region->end[i] = (int )((MEM_STATUS_AT(reg->bt_mem_end, i) - ? STACK_AT(mem_end_stk[i])->u.mem.pstr - : (UChar* )((void* )mem_end_stk[i])) - str); - } - else { - region->beg[i] = region->end[i] = ONIG_REGION_NOTPOS; - } - } - -#ifdef USE_CAPTURE_HISTORY - if (reg->capture_history != 0) { - int r; - OnigCaptureTreeNode* node; - - if (IS_NULL(region->history_root)) { - region->history_root = node = history_node_new(); - CHECK_NULL_RETURN_MEMERR(node); - } - else { - node = region->history_root; - history_tree_clear(node); - } - - node->group = 0; - node->beg = (int )(keep - str); - node->end = (int )(s - str); - - stkp = stk_base; - r = make_capture_history_tree(region->history_root, &stkp, - stk, (UChar* )str, reg); - if (r < 0) { - best_len = r; /* error code */ - goto finish; - } - } -#endif /* USE_CAPTURE_HISTORY */ -#ifdef USE_POSIX_API_REGION_OPTION - } /* else IS_POSIX_REGION() */ -#endif - } /* if (region) */ - } /* n > best_len */ - -#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE - end_best_len: -#endif - SOP_OUT; - - if (IS_FIND_CONDITION(option)) { - if (IS_FIND_NOT_EMPTY(option) && s == sstart) { - best_len = ONIG_MISMATCH; - goto fail; /* for retry */ - } - if (IS_FIND_LONGEST(option) && DATA_ENSURE_CHECK1) { - goto fail; /* for retry */ - } - } - - /* default behavior: return first-matching result. */ - goto finish; - - CASE_OP(EXACT1) - DATA_ENSURE(1); - ps = p->exact.s; - if (*ps != *s) goto fail; - s++; - INC_OP; - NEXT_OUT; - - CASE_OP(EXACT1_IC) - { - int len; - UChar *q, lowbuf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - - DATA_ENSURE(1); - len = ONIGENC_MBC_CASE_FOLD(encode, - /* DISABLE_CASE_FOLD_MULTI_CHAR(case_fold_flag), */ - case_fold_flag, - &s, end, lowbuf); - DATA_ENSURE(0); - q = lowbuf; - ps = p->exact.s; - while (len-- > 0) { - if (*ps != *q) goto fail; - ps++; q++; - } - } - INC_OP; - NEXT_OUT; - - CASE_OP(EXACT2) - DATA_ENSURE(2); - ps = p->exact.s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - sprev = s; - s++; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACT3) - DATA_ENSURE(3); - ps = p->exact.s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - sprev = s; - s++; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACT4) - DATA_ENSURE(4); - ps = p->exact.s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - sprev = s; - s++; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACT5) - DATA_ENSURE(5); - ps = p->exact.s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - sprev = s; - s++; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACTN) - tlen = p->exact_n.n; - DATA_ENSURE(tlen); - ps = p->exact_n.s; - while (tlen-- > 0) { - if (*ps++ != *s++) goto fail; - } - sprev = s - 1; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACTN_IC) - { - int len; - UChar *q, *endp, lowbuf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - - tlen = p->exact_n.n; - ps = p->exact_n.s; - endp = ps + tlen; - while (ps < endp) { - sprev = s; - DATA_ENSURE(1); - len = ONIGENC_MBC_CASE_FOLD(encode, - /* DISABLE_CASE_FOLD_MULTI_CHAR(case_fold_flag), */ - case_fold_flag, - &s, end, lowbuf); - DATA_ENSURE(0); - q = lowbuf; - while (len-- > 0) { - if (*ps != *q) goto fail; - ps++; q++; - } - } - } - - INC_OP; - JUMP_OUT; - - CASE_OP(EXACTMB2N1) - DATA_ENSURE(2); - ps = p->exact.s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - s++; - INC_OP; - NEXT_OUT; - - CASE_OP(EXACTMB2N2) - DATA_ENSURE(4); - ps = p->exact.s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - sprev = s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - s++; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACTMB2N3) - DATA_ENSURE(6); - ps = p->exact.s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - sprev = s; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACTMB2N) - tlen = p->exact_n.n; - DATA_ENSURE(tlen * 2); - ps = p->exact_n.s; - while (tlen-- > 0) { - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - } - sprev = s - 2; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACTMB3N) - tlen = p->exact_n.n; - DATA_ENSURE(tlen * 3); - ps = p->exact_n.s; - while (tlen-- > 0) { - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - if (*ps != *s) goto fail; - ps++; s++; - } - sprev = s - 3; - INC_OP; - JUMP_OUT; - - CASE_OP(EXACTMBN) - tlen = p->exact_len_n.len; /* mb byte len */ - tlen2 = p->exact_len_n.n; /* number of chars */ - tlen2 *= tlen; - DATA_ENSURE(tlen2); - ps = p->exact_len_n.s; - while (tlen2-- > 0) { - if (*ps != *s) goto fail; - ps++; s++; - } - sprev = s - tlen; - INC_OP; - JUMP_OUT; - - CASE_OP(CCLASS) - DATA_ENSURE(1); - if (BITSET_AT(p->cclass.bsp, *s) == 0) goto fail; - s++; - INC_OP; - NEXT_OUT; - - CASE_OP(CCLASS_MB) - DATA_ENSURE(1); - if (! ONIGENC_IS_MBC_HEAD(encode, s)) goto fail; - - cclass_mb: - { - OnigCodePoint code; - UChar *ss; - int mb_len; - - DATA_ENSURE(1); - mb_len = enclen(encode, s); - DATA_ENSURE(mb_len); - ss = s; - s += mb_len; - code = ONIGENC_MBC_TO_CODE(encode, ss, s); - if (! onig_is_in_code_range(p->cclass_mb.mb, code)) goto fail; - } - INC_OP; - NEXT_OUT; - - CASE_OP(CCLASS_MIX) - DATA_ENSURE(1); - if (ONIGENC_IS_MBC_HEAD(encode, s)) { - goto cclass_mb; - } - else { - if (BITSET_AT(p->cclass_mix.bsp, *s) == 0) - goto fail; - - s++; - } - INC_OP; - NEXT_OUT; - - CASE_OP(CCLASS_NOT) - DATA_ENSURE(1); - if (BITSET_AT(p->cclass.bsp, *s) != 0) goto fail; - s += enclen(encode, s); - INC_OP; - NEXT_OUT; - - CASE_OP(CCLASS_MB_NOT) - DATA_ENSURE(1); - if (! ONIGENC_IS_MBC_HEAD(encode, s)) { - s++; - goto cc_mb_not_success; - } - - cclass_mb_not: - { - OnigCodePoint code; - UChar *ss; - int mb_len = enclen(encode, s); - - if (! DATA_ENSURE_CHECK(mb_len)) { - DATA_ENSURE(1); - s = (UChar* )end; - goto cc_mb_not_success; - } - - ss = s; - s += mb_len; - code = ONIGENC_MBC_TO_CODE(encode, ss, s); - if (onig_is_in_code_range(p->cclass_mb.mb, code)) goto fail; - } - - cc_mb_not_success: - INC_OP; - NEXT_OUT; - - CASE_OP(CCLASS_MIX_NOT) - DATA_ENSURE(1); - if (ONIGENC_IS_MBC_HEAD(encode, s)) { - goto cclass_mb_not; - } - else { - if (BITSET_AT(p->cclass_mix.bsp, *s) != 0) - goto fail; - - s++; - } - INC_OP; - NEXT_OUT; - - CASE_OP(ANYCHAR) - DATA_ENSURE(1); - n = enclen(encode, s); - DATA_ENSURE(n); - if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail; - s += n; - INC_OP; - NEXT_OUT; - - CASE_OP(ANYCHAR_ML) - DATA_ENSURE(1); - n = enclen(encode, s); - DATA_ENSURE(n); - s += n; - INC_OP; - NEXT_OUT; - - CASE_OP(ANYCHAR_STAR) - INC_OP; - while (DATA_ENSURE_CHECK1) { - STACK_PUSH_ALT(p, s, sprev); - n = enclen(encode, s); - DATA_ENSURE(n); - if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail; - sprev = s; - s += n; - } - JUMP_OUT; - - CASE_OP(ANYCHAR_ML_STAR) - INC_OP; - while (DATA_ENSURE_CHECK1) { - STACK_PUSH_ALT(p, s, sprev); - n = enclen(encode, s); - if (n > 1) { - DATA_ENSURE(n); - sprev = s; - s += n; - } - else { - sprev = s; - s++; - } - } - JUMP_OUT; - - CASE_OP(ANYCHAR_STAR_PEEK_NEXT) - { - UChar c; - - c = p->anychar_star_peek_next.c; - INC_OP; - while (DATA_ENSURE_CHECK1) { - if (c == *s) { - STACK_PUSH_ALT(p, s, sprev); - } - n = enclen(encode, s); - DATA_ENSURE(n); - if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail; - sprev = s; - s += n; - } - } - NEXT_OUT; - - CASE_OP(ANYCHAR_ML_STAR_PEEK_NEXT) - { - UChar c; - - c = p->anychar_star_peek_next.c; - INC_OP; - while (DATA_ENSURE_CHECK1) { - if (c == *s) { - STACK_PUSH_ALT(p, s, sprev); - } - n = enclen(encode, s); - if (n > 1) { - DATA_ENSURE(n); - sprev = s; - s += n; - } - else { - sprev = s; - s++; - } - } - } - NEXT_OUT; - - CASE_OP(WORD) - DATA_ENSURE(1); - if (! ONIGENC_IS_MBC_WORD(encode, s, end)) - goto fail; - - s += enclen(encode, s); - INC_OP; - NEXT_OUT; - - CASE_OP(WORD_ASCII) - DATA_ENSURE(1); - if (! ONIGENC_IS_MBC_WORD_ASCII(encode, s, end)) - goto fail; - - s += enclen(encode, s); - INC_OP; - NEXT_OUT; - - CASE_OP(NO_WORD) - DATA_ENSURE(1); - if (ONIGENC_IS_MBC_WORD(encode, s, end)) - goto fail; - - s += enclen(encode, s); - INC_OP; - NEXT_OUT; - - CASE_OP(NO_WORD_ASCII) - DATA_ENSURE(1); - if (ONIGENC_IS_MBC_WORD_ASCII(encode, s, end)) - goto fail; - - s += enclen(encode, s); - INC_OP; - NEXT_OUT; - - CASE_OP(WORD_BOUNDARY) - { - ModeType mode; - - mode = p->word_boundary.mode; - if (ON_STR_BEGIN(s)) { - DATA_ENSURE(1); - if (! IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) - goto fail; - } - else if (ON_STR_END(s)) { - if (! IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) - goto fail; - } - else { - if (IS_MBC_WORD_ASCII_MODE(encode, s, end, mode) - == IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) - goto fail; - } - } - INC_OP; - JUMP_OUT; - - CASE_OP(NO_WORD_BOUNDARY) - { - ModeType mode; - - mode = p->word_boundary.mode; - if (ON_STR_BEGIN(s)) { - if (DATA_ENSURE_CHECK1 && IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) - goto fail; - } - else if (ON_STR_END(s)) { - if (IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) - goto fail; - } - else { - if (IS_MBC_WORD_ASCII_MODE(encode, s, end, mode) - != IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) - goto fail; - } - } - INC_OP; - JUMP_OUT; - -#ifdef USE_WORD_BEGIN_END - CASE_OP(WORD_BEGIN) - { - ModeType mode; - - mode = p->word_boundary.mode; - if (DATA_ENSURE_CHECK1 && IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) { - if (ON_STR_BEGIN(s) || !IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) { - INC_OP; - JUMP_OUT; - } - } - } - goto fail; - - CASE_OP(WORD_END) - { - ModeType mode; - - mode = p->word_boundary.mode; - if (!ON_STR_BEGIN(s) && IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) { - if (ON_STR_END(s) || ! IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) { - INC_OP; - JUMP_OUT; - } - } - } - goto fail; -#endif - - CASE_OP(TEXT_SEGMENT_BOUNDARY) - { - int is_break; - - switch (p->text_segment_boundary.type) { - case EXTENDED_GRAPHEME_CLUSTER_BOUNDARY: - is_break = onigenc_egcb_is_break_position(encode, s, sprev, str, end); - break; -#ifdef USE_UNICODE_WORD_BREAK - case WORD_BOUNDARY: - is_break = onigenc_wb_is_break_position(encode, s, sprev, str, end); - break; -#endif - default: - goto bytecode_error; - break; - } - - if (p->text_segment_boundary.not != 0) - is_break = ! is_break; - - if (is_break != 0) { - INC_OP; - JUMP_OUT; - } - else { - goto fail; - } - } - - CASE_OP(BEGIN_BUF) - if (! ON_STR_BEGIN(s)) goto fail; - - INC_OP; - JUMP_OUT; - - CASE_OP(END_BUF) - if (! ON_STR_END(s)) goto fail; - - INC_OP; - JUMP_OUT; - - CASE_OP(BEGIN_LINE) - if (ON_STR_BEGIN(s)) { - if (IS_NOTBOL(msa->options)) goto fail; - INC_OP; - JUMP_OUT; - } - else if (ONIGENC_IS_MBC_NEWLINE(encode, sprev, end) && !ON_STR_END(s)) { - INC_OP; - JUMP_OUT; - } - goto fail; - - CASE_OP(END_LINE) - if (ON_STR_END(s)) { -#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE - if (IS_EMPTY_STR || !ONIGENC_IS_MBC_NEWLINE(encode, sprev, end)) { -#endif - if (IS_NOTEOL(msa->options)) goto fail; - INC_OP; - JUMP_OUT; -#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE - } -#endif - } - else if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) { - INC_OP; - JUMP_OUT; - } -#ifdef USE_CRNL_AS_LINE_TERMINATOR - else if (ONIGENC_IS_MBC_CRNL(encode, s, end)) { - INC_OP; - JUMP_OUT; - } -#endif - goto fail; - - CASE_OP(SEMI_END_BUF) - if (ON_STR_END(s)) { -#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE - if (IS_EMPTY_STR || !ONIGENC_IS_MBC_NEWLINE(encode, sprev, end)) { -#endif - if (IS_NOTEOL(msa->options)) goto fail; - INC_OP; - JUMP_OUT; -#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE - } -#endif - } - else if (ONIGENC_IS_MBC_NEWLINE(encode, s, end) && - ON_STR_END(s + enclen(encode, s))) { - INC_OP; - JUMP_OUT; - } -#ifdef USE_CRNL_AS_LINE_TERMINATOR - else if (ONIGENC_IS_MBC_CRNL(encode, s, end)) { - UChar* ss = s + enclen(encode, s); - ss += enclen(encode, ss); - if (ON_STR_END(ss)) { - INC_OP; - JUMP_OUT; - } - } -#endif - goto fail; - - CASE_OP(BEGIN_POSITION) - if (s != msa->start) - goto fail; - - INC_OP; - JUMP_OUT; - - CASE_OP(MEMORY_START_PUSH) - mem = p->memory_start.num; - STACK_PUSH_MEM_START(mem, s); - INC_OP; - JUMP_OUT; - - CASE_OP(MEMORY_START) - mem = p->memory_start.num; - mem_start_stk[mem] = (StackIndex )((void* )s); - INC_OP; - JUMP_OUT; - - CASE_OP(MEMORY_END_PUSH) - mem = p->memory_end.num; - STACK_PUSH_MEM_END(mem, s); - INC_OP; - JUMP_OUT; - - CASE_OP(MEMORY_END) - mem = p->memory_end.num; - mem_end_stk[mem] = (StackIndex )((void* )s); - INC_OP; - JUMP_OUT; - -#ifdef USE_CALL - CASE_OP(MEMORY_END_PUSH_REC) - mem = p->memory_end.num; - STACK_GET_MEM_START(mem, stkp); /* should be before push mem-end. */ - si = GET_STACK_INDEX(stkp); - STACK_PUSH_MEM_END(mem, s); - mem_start_stk[mem] = si; - INC_OP; - JUMP_OUT; - - CASE_OP(MEMORY_END_REC) - mem = p->memory_end.num; - mem_end_stk[mem] = (StackIndex )((void* )s); - STACK_GET_MEM_START(mem, stkp); - - if (MEM_STATUS_AT(reg->bt_mem_start, mem)) - mem_start_stk[mem] = GET_STACK_INDEX(stkp); - else - mem_start_stk[mem] = (StackIndex )((void* )stkp->u.mem.pstr); - - STACK_PUSH_MEM_END_MARK(mem); - INC_OP; - JUMP_OUT; -#endif - - CASE_OP(BACKREF1) - mem = 1; - goto backref; - - CASE_OP(BACKREF2) - mem = 2; - goto backref; - - CASE_OP(BACKREF_N) - mem = p->backref_n.n1; - backref: - { - int len; - UChar *pstart, *pend; - - if (mem_end_stk[mem] == INVALID_STACK_INDEX) goto fail; - if (mem_start_stk[mem] == INVALID_STACK_INDEX) goto fail; - - if (MEM_STATUS_AT(reg->bt_mem_start, mem)) - pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr; - else - pstart = (UChar* )((void* )mem_start_stk[mem]); - - pend = (MEM_STATUS_AT(reg->bt_mem_end, mem) - ? STACK_AT(mem_end_stk[mem])->u.mem.pstr - : (UChar* )((void* )mem_end_stk[mem])); - n = (int )(pend - pstart); - if (n != 0) { - DATA_ENSURE(n); - sprev = s; - STRING_CMP(s, pstart, n); - while (sprev + (len = enclen(encode, sprev)) < s) - sprev += len; - } - } - INC_OP; - JUMP_OUT; - - CASE_OP(BACKREF_N_IC) - mem = p->backref_n.n1; - { - int len; - UChar *pstart, *pend; - - if (mem_end_stk[mem] == INVALID_STACK_INDEX) goto fail; - if (mem_start_stk[mem] == INVALID_STACK_INDEX) goto fail; - - if (MEM_STATUS_AT(reg->bt_mem_start, mem)) - pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr; - else - pstart = (UChar* )((void* )mem_start_stk[mem]); - - pend = (MEM_STATUS_AT(reg->bt_mem_end, mem) - ? STACK_AT(mem_end_stk[mem])->u.mem.pstr - : (UChar* )((void* )mem_end_stk[mem])); - n = (int )(pend - pstart); - if (n != 0) { - DATA_ENSURE(n); - sprev = s; - STRING_CMP_IC(case_fold_flag, pstart, &s, n); - while (sprev + (len = enclen(encode, sprev)) < s) - sprev += len; - } - } - INC_OP; - JUMP_OUT; - - CASE_OP(BACKREF_MULTI) - { - int len, is_fail; - UChar *pstart, *pend, *swork; - - tlen = p->backref_general.num; - for (i = 0; i < tlen; i++) { - mem = tlen == 1 ? p->backref_general.n1 : p->backref_general.ns[i]; - - if (mem_end_stk[mem] == INVALID_STACK_INDEX) continue; - if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue; - - if (MEM_STATUS_AT(reg->bt_mem_start, mem)) - pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr; - else - pstart = (UChar* )((void* )mem_start_stk[mem]); - - pend = (MEM_STATUS_AT(reg->bt_mem_end, mem) - ? STACK_AT(mem_end_stk[mem])->u.mem.pstr - : (UChar* )((void* )mem_end_stk[mem])); - n = (int )(pend - pstart); - if (n != 0) { - DATA_ENSURE(n); - sprev = s; - swork = s; - STRING_CMP_VALUE(swork, pstart, n, is_fail); - if (is_fail) continue; - s = swork; - while (sprev + (len = enclen(encode, sprev)) < s) - sprev += len; - } - break; /* success */ - } - if (i == tlen) goto fail; - } - INC_OP; - JUMP_OUT; - - CASE_OP(BACKREF_MULTI_IC) - { - int len, is_fail; - UChar *pstart, *pend, *swork; - - tlen = p->backref_general.num; - for (i = 0; i < tlen; i++) { - mem = tlen == 1 ? p->backref_general.n1 : p->backref_general.ns[i]; - - if (mem_end_stk[mem] == INVALID_STACK_INDEX) continue; - if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue; - - if (MEM_STATUS_AT(reg->bt_mem_start, mem)) - pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr; - else - pstart = (UChar* )((void* )mem_start_stk[mem]); - - pend = (MEM_STATUS_AT(reg->bt_mem_end, mem) - ? STACK_AT(mem_end_stk[mem])->u.mem.pstr - : (UChar* )((void* )mem_end_stk[mem])); - n = (int )(pend - pstart); - if (n != 0) { - DATA_ENSURE(n); - sprev = s; - swork = s; - STRING_CMP_VALUE_IC(case_fold_flag, pstart, &swork, n, is_fail); - if (is_fail) continue; - s = swork; - while (sprev + (len = enclen(encode, sprev)) < s) - sprev += len; - } - break; /* success */ - } - if (i == tlen) goto fail; - } - INC_OP; - JUMP_OUT; - -#ifdef USE_BACKREF_WITH_LEVEL - CASE_OP(BACKREF_WITH_LEVEL_IC) - n = 1; /* ignore case */ - goto backref_with_level; - CASE_OP(BACKREF_WITH_LEVEL) - { - int len; - int level; - MemNumType* mems; - UChar* ssave; - - n = 0; - backref_with_level: - level = p->backref_general.nest_level; - tlen = p->backref_general.num; - mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns; - - ssave = s; - if (backref_match_at_nested_level(reg, stk, stk_base, n, - case_fold_flag, level, (int )tlen, mems, &s, end)) { - if (ssave != s) { - sprev = ssave; - while (sprev + (len = enclen(encode, sprev)) < s) - sprev += len; - } - } - else - goto fail; - } - INC_OP; - JUMP_OUT; -#endif - - CASE_OP(BACKREF_CHECK) - { - MemNumType* mems; - - tlen = p->backref_general.num; - mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns; - - for (i = 0; i < tlen; i++) { - mem = mems[i]; - if (mem_end_stk[mem] == INVALID_STACK_INDEX) continue; - if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue; - break; /* success */ - } - if (i == tlen) goto fail; - } - INC_OP; - JUMP_OUT; - -#ifdef USE_BACKREF_WITH_LEVEL - CASE_OP(BACKREF_CHECK_WITH_LEVEL) - { - LengthType level; - MemNumType* mems; - - level = p->backref_general.nest_level; - tlen = p->backref_general.num; - mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns; - - if (backref_check_at_nested_level(reg, stk, stk_base, - (int )level, (int )tlen, mems) == 0) - goto fail; - } - INC_OP; - JUMP_OUT; -#endif - - CASE_OP(EMPTY_CHECK_START) - mem = p->empty_check_start.mem; /* mem: null check id */ - STACK_PUSH_EMPTY_CHECK_START(mem, s); - INC_OP; - JUMP_OUT; - - CASE_OP(EMPTY_CHECK_END) - { - int is_empty; - - mem = p->empty_check_end.mem; /* mem: null check id */ - STACK_EMPTY_CHECK(is_empty, mem, s); - INC_OP; - if (is_empty) { -#ifdef ONIG_DEBUG_MATCH - fprintf(stderr, "EMPTY_CHECK_END: skip id:%d, s:%p\n", (int )mem, s); -#endif - empty_check_found: - /* empty loop founded, skip next instruction */ -#if defined(ONIG_DEBUG) && !defined(USE_DIRECT_THREADED_CODE) - switch (p->opcode) { - case OP_JUMP: - case OP_PUSH: - case OP_REPEAT_INC: - case OP_REPEAT_INC_NG: - case OP_REPEAT_INC_SG: - case OP_REPEAT_INC_NG_SG: - INC_OP; - break; - default: - goto unexpected_bytecode_error; - break; - } -#else - INC_OP; -#endif - } - } - JUMP_OUT; - -#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT - CASE_OP(EMPTY_CHECK_END_MEMST) - { - int is_empty; - - mem = p->empty_check_end.mem; /* mem: null check id */ - STACK_EMPTY_CHECK_MEM(is_empty, mem, s, reg); - INC_OP; - if (is_empty) { -#ifdef ONIG_DEBUG_MATCH - fprintf(stderr, "EMPTY_CHECK_END_MEM: skip id:%d, s:%p\n", (int)mem, s); -#endif - if (is_empty == -1) goto fail; - goto empty_check_found; - } - } - JUMP_OUT; -#endif - -#ifdef USE_CALL - CASE_OP(EMPTY_CHECK_END_MEMST_PUSH) - { - int is_empty; - - mem = p->empty_check_end.mem; /* mem: null check id */ -#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT - STACK_EMPTY_CHECK_MEM_REC(is_empty, mem, s, reg); -#else - STACK_EMPTY_CHECK_REC(is_empty, mem, s); -#endif - INC_OP; - if (is_empty) { -#ifdef ONIG_DEBUG_MATCH - fprintf(stderr, "EMPTY_CHECK_END_MEM_PUSH: skip id:%d, s:%p\n", - (int )mem, s); -#endif - if (is_empty == -1) goto fail; - goto empty_check_found; - } - else { - STACK_PUSH_EMPTY_CHECK_END(mem); - } - } - JUMP_OUT; -#endif - - CASE_OP(JUMP) - addr = p->jump.addr; - p += addr; - CHECK_INTERRUPT_JUMP_OUT; - - CASE_OP(PUSH) - addr = p->push.addr; - STACK_PUSH_ALT(p + addr, s, sprev); - INC_OP; - JUMP_OUT; - - CASE_OP(PUSH_SUPER) - addr = p->push.addr; - STACK_PUSH_SUPER_ALT(p + addr, s, sprev); - INC_OP; - JUMP_OUT; - - CASE_OP(POP_OUT) - STACK_POP_ONE; - /* for stop backtrack */ - /* CHECK_RETRY_LIMIT_IN_MATCH; */ - INC_OP; - JUMP_OUT; - - #ifdef USE_OP_PUSH_OR_JUMP_EXACT - CASE_OP(PUSH_OR_JUMP_EXACT1) - { - UChar c; - - addr = p->push_or_jump_exact1.addr; - c = p->push_or_jump_exact1.c; - if (DATA_ENSURE_CHECK1 && c == *s) { - STACK_PUSH_ALT(p + addr, s, sprev); - INC_OP; - JUMP_OUT; - } - } - p += addr; - JUMP_OUT; -#endif - - CASE_OP(PUSH_IF_PEEK_NEXT) - { - UChar c; - - addr = p->push_if_peek_next.addr; - c = p->push_if_peek_next.c; - if (c == *s) { - STACK_PUSH_ALT(p + addr, s, sprev); - INC_OP; - JUMP_OUT; - } - } - INC_OP; - JUMP_OUT; - - CASE_OP(REPEAT) - mem = p->repeat.id; /* mem: OP_REPEAT ID */ - addr = p->repeat.addr; - - STACK_ENSURE(1); - repeat_stk[mem] = GET_STACK_INDEX(stk); - STACK_PUSH_REPEAT(mem, p + 1); - - if (reg->repeat_range[mem].lower == 0) { - STACK_PUSH_ALT(p + addr, s, sprev); - } - INC_OP; - JUMP_OUT; - - CASE_OP(REPEAT_NG) - mem = p->repeat.id; /* mem: OP_REPEAT ID */ - addr = p->repeat.addr; - - STACK_ENSURE(1); - repeat_stk[mem] = GET_STACK_INDEX(stk); - STACK_PUSH_REPEAT(mem, p + 1); - - if (reg->repeat_range[mem].lower == 0) { - STACK_PUSH_ALT(p + 1, s, sprev); - p += addr; - } - else - INC_OP; - JUMP_OUT; - - CASE_OP(REPEAT_INC) - mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */ - si = repeat_stk[mem]; - stkp = STACK_AT(si); - - repeat_inc: - stkp->u.repeat.count++; - if (stkp->u.repeat.count >= reg->repeat_range[mem].upper) { - /* end of repeat. Nothing to do. */ - INC_OP; - } - else if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) { - INC_OP; - STACK_PUSH_ALT(p, s, sprev); - p = STACK_AT(si)->u.repeat.pcode; /* Don't use stkp after PUSH. */ - } - else { - p = stkp->u.repeat.pcode; - } - STACK_PUSH_REPEAT_INC(si); - CHECK_INTERRUPT_JUMP_OUT; - - CASE_OP(REPEAT_INC_SG) - mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */ - STACK_GET_REPEAT(mem, stkp); - si = GET_STACK_INDEX(stkp); - goto repeat_inc; - - CASE_OP(REPEAT_INC_NG) - mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */ - si = repeat_stk[mem]; - stkp = STACK_AT(si); - - repeat_inc_ng: - stkp->u.repeat.count++; - if (stkp->u.repeat.count < reg->repeat_range[mem].upper) { - if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) { - Operation* pcode = stkp->u.repeat.pcode; - - STACK_PUSH_REPEAT_INC(si); - STACK_PUSH_ALT(pcode, s, sprev); - INC_OP; - } - else { - p = stkp->u.repeat.pcode; - STACK_PUSH_REPEAT_INC(si); - } - } - else if (stkp->u.repeat.count == reg->repeat_range[mem].upper) { - STACK_PUSH_REPEAT_INC(si); - INC_OP; - } - CHECK_INTERRUPT_JUMP_OUT; - - CASE_OP(REPEAT_INC_NG_SG) - mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */ - STACK_GET_REPEAT(mem, stkp); - si = GET_STACK_INDEX(stkp); - goto repeat_inc_ng; - - CASE_OP(PREC_READ_START) - STACK_PUSH_PREC_READ_START(s, sprev); - INC_OP; - JUMP_OUT; - - CASE_OP(PREC_READ_END) - STACK_GET_PREC_READ_START(stkp); - s = stkp->u.state.pstr; - sprev = stkp->u.state.pstr_prev; - STACK_PUSH(STK_PREC_READ_END,0,0,0); - INC_OP; - JUMP_OUT; - - CASE_OP(PREC_READ_NOT_START) - addr = p->prec_read_not_start.addr; - STACK_PUSH_ALT_PREC_READ_NOT(p + addr, s, sprev); - INC_OP; - JUMP_OUT; - - CASE_OP(PREC_READ_NOT_END) - STACK_POP_TIL_ALT_PREC_READ_NOT; - goto fail; - - CASE_OP(ATOMIC_START) - STACK_PUSH_TO_VOID_START; - INC_OP; - JUMP_OUT; - - CASE_OP(ATOMIC_END) - STACK_EXEC_TO_VOID(stkp); - INC_OP; - JUMP_OUT; - - CASE_OP(LOOK_BEHIND) - tlen = p->look_behind.len; - s = (UChar* )ONIGENC_STEP_BACK(encode, str, s, (int )tlen); - if (IS_NULL(s)) goto fail; - sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s); - INC_OP; - JUMP_OUT; - - CASE_OP(LOOK_BEHIND_NOT_START) - addr = p->look_behind_not_start.addr; - tlen = p->look_behind_not_start.len; - q = (UChar* )ONIGENC_STEP_BACK(encode, str, s, (int )tlen); - if (IS_NULL(q)) { - /* too short case -> success. ex. /(?call.addr; - INC_OP; STACK_PUSH_CALL_FRAME(p); - p = reg->ops + addr; - JUMP_OUT; - - CASE_OP(RETURN) - STACK_RETURN(p); - STACK_PUSH_RETURN; - JUMP_OUT; -#endif - - CASE_OP(PUSH_SAVE_VAL) - { - SaveType type; - - type = p->push_save_val.type; - mem = p->push_save_val.id; /* mem: save id */ - switch ((enum SaveType )type) { - case SAVE_KEEP: - STACK_PUSH_SAVE_VAL(mem, type, s); - break; - - case SAVE_S: - STACK_PUSH_SAVE_VAL_WITH_SPREV(mem, type, s); - break; - - case SAVE_RIGHT_RANGE: - STACK_PUSH_SAVE_VAL(mem, SAVE_RIGHT_RANGE, right_range); - break; - } - } - INC_OP; - JUMP_OUT; - - CASE_OP(UPDATE_VAR) - { - UpdateVarType type; - enum SaveType save_type; - - type = p->update_var.type; - mem = p->update_var.id; /* mem: save id */ - - switch ((enum UpdateVarType )type) { - case UPDATE_VAR_KEEP_FROM_STACK_LAST: - STACK_GET_SAVE_VAL_TYPE_LAST(SAVE_KEEP, keep); - break; - case UPDATE_VAR_S_FROM_STACK: - STACK_GET_SAVE_VAL_TYPE_LAST_ID_WITH_SPREV(SAVE_S, mem, s); - break; - case UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK: - save_type = SAVE_S; - goto get_save_val_type_last_id; - break; - case UPDATE_VAR_RIGHT_RANGE_FROM_STACK: - save_type = SAVE_RIGHT_RANGE; - get_save_val_type_last_id: - STACK_GET_SAVE_VAL_TYPE_LAST_ID(save_type, mem, right_range); - break; - case UPDATE_VAR_RIGHT_RANGE_INIT: - INIT_RIGHT_RANGE; - break; - } - } - INC_OP; - JUMP_OUT; - -#ifdef USE_CALLOUT - CASE_OP(CALLOUT_CONTENTS) - of = ONIG_CALLOUT_OF_CONTENTS; - mem = p->callout_contents.num; - goto callout_common_entry; - BREAK_OUT; - - CASE_OP(CALLOUT_NAME) - { - int call_result; - int name_id; - int in; - CalloutListEntry* e; - OnigCalloutFunc func; - OnigCalloutArgs args; - - of = ONIG_CALLOUT_OF_NAME; - name_id = p->callout_name.id; - mem = p->callout_name.num; - - callout_common_entry: - e = onig_reg_callout_list_at(reg, mem); - in = e->in; - if (of == ONIG_CALLOUT_OF_NAME) { - func = onig_get_callout_start_func(reg, mem); - } - else { - name_id = ONIG_NON_NAME_ID; - func = msa->mp->progress_callout_of_contents; - } - - if (IS_NOT_NULL(func) && (in & ONIG_CALLOUT_IN_PROGRESS) != 0) { - CALLOUT_BODY(func, ONIG_CALLOUT_IN_PROGRESS, name_id, - (int )mem, msa->mp->callout_user_data, args, call_result); - switch (call_result) { - case ONIG_CALLOUT_FAIL: - goto fail; - break; - case ONIG_CALLOUT_SUCCESS: - goto retraction_callout2; - break; - default: /* error code */ - if (call_result > 0) { - call_result = ONIGERR_INVALID_ARGUMENT; - } - best_len = call_result; - goto finish; - break; - } - } - else { - retraction_callout2: - if ((in & ONIG_CALLOUT_IN_RETRACTION) != 0) { - if (of == ONIG_CALLOUT_OF_NAME) { - if (IS_NOT_NULL(func)) { - STACK_PUSH_CALLOUT_NAME(name_id, mem, func); - } - } - else { - func = msa->mp->retraction_callout_of_contents; - if (IS_NOT_NULL(func)) { - STACK_PUSH_CALLOUT_CONTENTS(mem, func); - } - } - } - } - } - INC_OP; - JUMP_OUT; -#endif - - CASE_OP(FINISH) - goto finish; - -#ifdef ONIG_DEBUG_STATISTICS - fail: - SOP_OUT; - goto fail2; -#endif - CASE_OP(FAIL) -#ifdef ONIG_DEBUG_STATISTICS - fail2: -#else - fail: -#endif - STACK_POP; - p = stk->u.state.pcode; - s = stk->u.state.pstr; - sprev = stk->u.state.pstr_prev; - CHECK_RETRY_LIMIT_IN_MATCH; - JUMP_OUT; - - DEFAULT_OP - goto bytecode_error; - - } BYTECODE_INTERPRETER_END; - - finish: - STACK_SAVE; - return best_len; - -#ifdef ONIG_DEBUG - stack_error: - STACK_SAVE; - return ONIGERR_STACK_BUG; -#endif - - bytecode_error: - STACK_SAVE; - return ONIGERR_UNDEFINED_BYTECODE; - -#if defined(ONIG_DEBUG) && !defined(USE_DIRECT_THREADED_CODE) - unexpected_bytecode_error: - STACK_SAVE; - return ONIGERR_UNEXPECTED_BYTECODE; -#endif - -#ifdef USE_RETRY_LIMIT_IN_MATCH - retry_limit_in_match_over: - STACK_SAVE; - return ONIGERR_RETRY_LIMIT_IN_MATCH_OVER; -#endif -} - - -static UChar* -slow_search(OnigEncoding enc, UChar* target, UChar* target_end, - const UChar* text, const UChar* text_end, UChar* text_range) -{ - UChar *t, *p, *s, *end; - - end = (UChar* )text_end; - end -= target_end - target - 1; - if (end > text_range) - end = text_range; - - s = (UChar* )text; - - while (s < end) { - if (*s == *target) { - p = s + 1; - t = target + 1; - while (t < target_end) { - if (*t != *p++) - break; - t++; - } - if (t == target_end) - return s; - } - s += enclen(enc, s); - } - - return (UChar* )NULL; -} - -static int -str_lower_case_match(OnigEncoding enc, int case_fold_flag, - const UChar* t, const UChar* tend, - const UChar* p, const UChar* end) -{ - int lowlen; - UChar *q, lowbuf[ONIGENC_MBC_CASE_FOLD_MAXLEN]; - - while (t < tend) { - lowlen = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &p, end, lowbuf); - q = lowbuf; - while (lowlen > 0) { - if (*t++ != *q++) return 0; - lowlen--; - } - } - - return 1; -} - -static UChar* -slow_search_ic(OnigEncoding enc, int case_fold_flag, - UChar* target, UChar* target_end, - const UChar* text, const UChar* text_end, UChar* text_range) -{ - UChar *s, *end; - - end = (UChar* )text_end; - end -= target_end - target - 1; - if (end > text_range) - end = text_range; - - s = (UChar* )text; - - while (s < end) { - if (str_lower_case_match(enc, case_fold_flag, target, target_end, - s, text_end)) - return s; - - s += enclen(enc, s); - } - - return (UChar* )NULL; -} - -static UChar* -slow_search_backward(OnigEncoding enc, UChar* target, UChar* target_end, - const UChar* text, const UChar* adjust_text, - const UChar* text_end, const UChar* text_start) -{ - UChar *t, *p, *s; - - s = (UChar* )text_end; - s -= (target_end - target); - if (s > text_start) - s = (UChar* )text_start; - else - s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, adjust_text, s); - - while (s >= text) { - //if text is not null,the logic is correct. - //this function is only invoked by backward_search_range,parameter text come - //from range, which is checked by "if (range == 0) goto fail" in line 4512 - //so the check is just for passing static analysis. - if(IS_NULL(s))break; - if (*s == *target) { - p = s + 1; - t = target + 1; - while (t < target_end) { - if (*t != *p++) - break; - t++; - } - if (t == target_end) - return s; - } - s = (UChar* )onigenc_get_prev_char_head(enc, adjust_text, s); - } - - return (UChar* )NULL; -} - -static UChar* -slow_search_backward_ic(OnigEncoding enc, int case_fold_flag, - UChar* target, UChar* target_end, - const UChar* text, const UChar* adjust_text, - const UChar* text_end, const UChar* text_start) -{ - UChar *s; - - s = (UChar* )text_end; - s -= (target_end - target); - if (s > text_start) - s = (UChar* )text_start; - else - s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, adjust_text, s); - - while (s >= text) { - if (str_lower_case_match(enc, case_fold_flag, - target, target_end, s, text_end)) - return s; - - s = (UChar* )onigenc_get_prev_char_head(enc, adjust_text, s); - } - - return (UChar* )NULL; -} - - -static UChar* -sunday_quick_search_step_forward(regex_t* reg, - const UChar* target, const UChar* target_end, - const UChar* text, const UChar* text_end, - const UChar* text_range) -{ - const UChar *s, *se, *t, *p, *end; - const UChar *tail; - int skip, tlen1; - int map_offset; - OnigEncoding enc; - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, - "sunday_quick_search_step_forward: text: %p, text_end: %p, text_range: %p\n", text, text_end, text_range); -#endif - - enc = reg->enc; - - tail = target_end - 1; - tlen1 = (int )(tail - target); - end = text_range; - if (end + tlen1 > text_end) - end = text_end - tlen1; - - map_offset = reg->map_offset; - s = text; - - while (s < end) { - p = se = s + tlen1; - t = tail; - while (*p == *t) { - if (t == target) return (UChar* )s; - p--; t--; - } - if (se + map_offset >= text_end) break; - skip = reg->map[*(se + map_offset)]; -#if 0 - t = s; - do { - s += enclen(enc, s); - } while ((s - t) < skip && s < end); -#else - s += skip; - if (s < end) - s = onigenc_get_right_adjust_char_head(enc, text, s); -#endif - } - - return (UChar* )NULL; -} - -static UChar* -sunday_quick_search(regex_t* reg, const UChar* target, const UChar* target_end, - const UChar* text, const UChar* text_end, - const UChar* text_range) -{ - const UChar *s, *t, *p, *end; - const UChar *tail; - int map_offset; - - end = text_range + (target_end - target); - if (end > text_end) - end = text_end; - - map_offset = reg->map_offset; - tail = target_end - 1; - s = text + (tail - target); - - while (s < end) { - p = s; - t = tail; - while (*p == *t) { - if (t == target) return (UChar* )p; - p--; t--; - } - if (s + map_offset >= text_end) break; - s += reg->map[*(s + map_offset)]; - } - - return (UChar* )NULL; -} - -static UChar* -sunday_quick_search_case_fold(regex_t* reg, - const UChar* target, const UChar* target_end, - const UChar* text, const UChar* text_end, - const UChar* text_range) -{ - const UChar *s, *se, *end; - const UChar *tail; - int skip, tlen1; - int map_offset; - int case_fold_flag; - OnigEncoding enc; - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, - "sunday_quick_search_case_fold: text: %p, text_end: %p, text_range: %p\n", text, text_end, text_range); -#endif - - enc = reg->enc; - case_fold_flag = reg->case_fold_flag; - - tail = target_end - 1; - tlen1 = (int )(tail - target); - end = text_range; - if (end + tlen1 > text_end) - end = text_end - tlen1; - - map_offset = reg->map_offset; - s = text; - - while (s < end) { - if (str_lower_case_match(enc, case_fold_flag, target, target_end, - s, text_end)) - return (UChar* )s; - - se = s + tlen1; - if (se + map_offset >= text_end) break; - skip = reg->map[*(se + map_offset)]; -#if 0 - p = s; - do { - s += enclen(enc, s); - } while ((s - p) < skip && s < end); -#else - /* This is faster than prev code for long text. ex: /(?i)Twain/ */ - s += skip; - if (s < end) - s = onigenc_get_right_adjust_char_head(enc, text, s); -#endif - } - - return (UChar* )NULL; -} - -static UChar* -map_search(OnigEncoding enc, UChar map[], - const UChar* text, const UChar* text_range) -{ - const UChar *s = text; - - while (s < text_range) { - if (map[*s]) return (UChar* )s; - - s += enclen(enc, s); - } - return (UChar* )NULL; -} - -static UChar* -map_search_backward(OnigEncoding enc, UChar map[], - const UChar* text, const UChar* adjust_text, - const UChar* text_start) -{ - const UChar *s = text_start; - - while (s >= text) { - //if text is not null,the logic is correct. - //this function is only invoked by backward_search_range,parameter text come - //from range, which is checked by "if (range == 0) goto fail" in line 4512 - //so the check is just for passing static analysis. - if(IS_NULL(s))break; - if (map[*s]) return (UChar* )s; - - s = onigenc_get_prev_char_head(enc, adjust_text, s); - } - return (UChar* )NULL; -} -extern int -onig_match(regex_t* reg, const UChar* str, const UChar* end, const UChar* at, - OnigRegion* region, OnigOptionType option) -{ - int r; - OnigMatchParam mp; - - onig_initialize_match_param(&mp); - r = onig_match_with_param(reg, str, end, at, region, option, &mp); - onig_free_match_param_content(&mp); - return r; -} - -extern int -onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end, - const UChar* at, OnigRegion* region, OnigOptionType option, - OnigMatchParam* mp) -{ - int r; - UChar *prev; - MatchArg msa; - - ADJUST_MATCH_PARAM(reg, mp); - MATCH_ARG_INIT(msa, reg, option, region, at, mp); - if (region -#ifdef USE_POSIX_API_REGION_OPTION - && !IS_POSIX_REGION(option) -#endif - ) { - r = onig_region_resize_clear(region, reg->num_mem + 1); - } - else - r = 0; - - if (r == 0) { - if (ONIG_IS_OPTION_ON(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING)) { - if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) { - r = ONIGERR_INVALID_WIDE_CHAR_VALUE; - goto end; - } - } - - prev = (UChar* )onigenc_get_prev_char_head(reg->enc, str, at); - r = match_at(reg, str, end, end, at, prev, &msa); - } - - end: - MATCH_ARG_FREE(msa); - return r; -} - -static int -forward_search_range(regex_t* reg, const UChar* str, const UChar* end, UChar* s, - UChar* range, UChar** low, UChar** high, UChar** low_prev) -{ - UChar *p, *pprev = (UChar* )NULL; - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, "forward_search_range: str: %p, end: %p, s: %p, range: %p\n", - str, end, s, range); -#endif - - p = s; - if (reg->dmin > 0) { - if (ONIGENC_IS_SINGLEBYTE(reg->enc)) { - p += reg->dmin; - } - else { - UChar *q = p + reg->dmin; - - if (q >= end) return 0; /* fail */ - while (p < q) p += enclen(reg->enc, p); - } - } - - retry: - switch (reg->optimize) { - case OPTIMIZE_STR: - p = slow_search(reg->enc, reg->exact, reg->exact_end, p, end, range); - break; - case OPTIMIZE_STR_CASE_FOLD: - p = slow_search_ic(reg->enc, reg->case_fold_flag, - reg->exact, reg->exact_end, p, end, range); - break; - - case OPTIMIZE_STR_CASE_FOLD_FAST: - p = sunday_quick_search_case_fold(reg, reg->exact, reg->exact_end, p, end, - range); - break; - - case OPTIMIZE_STR_FAST: - p = sunday_quick_search(reg, reg->exact, reg->exact_end, p, end, range); - break; - - case OPTIMIZE_STR_FAST_STEP_FORWARD: - p = sunday_quick_search_step_forward(reg, reg->exact, reg->exact_end, - p, end, range); - break; - - case OPTIMIZE_MAP: - p = map_search(reg->enc, reg->map, p, range); - break; - } - - if (p && p < range) { - if (p - reg->dmin < s) { - retry_gate: - pprev = p; - p += enclen(reg->enc, p); - goto retry; - } - - if (reg->sub_anchor) { - UChar* prev; - - switch (reg->sub_anchor) { - case ANCR_BEGIN_LINE: - if (!ON_STR_BEGIN(p)) { - prev = onigenc_get_prev_char_head(reg->enc, - (pprev ? pprev : str), p); - if (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) - goto retry_gate; - } - break; - - case ANCR_END_LINE: - if (ON_STR_END(p)) { -#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE - prev = (UChar* )onigenc_get_prev_char_head(reg->enc, - (pprev ? pprev : str), p); - if (prev && ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) - goto retry_gate; -#endif - } - else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end) -#ifdef USE_CRNL_AS_LINE_TERMINATOR - && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end) -#endif - ) - goto retry_gate; - break; - } - } - - if (reg->dmax == 0) { - *low = p; - if (low_prev) { - if (*low > s) - *low_prev = onigenc_get_prev_char_head(reg->enc, s, p); - else - *low_prev = onigenc_get_prev_char_head(reg->enc, - (pprev ? pprev : str), p); - } - } - else { - if (reg->dmax != INFINITE_LEN) { - if (p - str < reg->dmax) { - *low = (UChar* )str; - if (low_prev) - *low_prev = onigenc_get_prev_char_head(reg->enc, str, *low); - } - else { - *low = p - reg->dmax; - if (*low > s) { - *low = onigenc_get_right_adjust_char_head_with_prev(reg->enc, s, - *low, (const UChar** )low_prev); - if (low_prev && IS_NULL(*low_prev)) - *low_prev = onigenc_get_prev_char_head(reg->enc, - (pprev ? pprev : s), *low); - } - else { - if (low_prev) - *low_prev = onigenc_get_prev_char_head(reg->enc, - (pprev ? pprev : str), *low); - } - } - } - } - /* no needs to adjust *high, *high is used as range check only */ - *high = p - reg->dmin; - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, - "forward_search_range success: low: %d, high: %d, dmin: %d, dmax: %d\n", - (int )(*low - str), (int )(*high - str), reg->dmin, reg->dmax); -#endif - return 1; /* success */ - } - - return 0; /* fail */ -} - - -static int -backward_search_range(regex_t* reg, const UChar* str, const UChar* end, - UChar* s, const UChar* range, UChar* adjrange, - UChar** low, UChar** high) -{ - UChar *p; - - if (range == 0) goto fail; - - range += reg->dmin; - p = s; - - retry: - switch (reg->optimize) { - case OPTIMIZE_STR: - exact_method: - p = slow_search_backward(reg->enc, reg->exact, reg->exact_end, - range, adjrange, end, p); - break; - - case OPTIMIZE_STR_CASE_FOLD: - case OPTIMIZE_STR_CASE_FOLD_FAST: - p = slow_search_backward_ic(reg->enc, reg->case_fold_flag, - reg->exact, reg->exact_end, - range, adjrange, end, p); - break; - - case OPTIMIZE_STR_FAST: - case OPTIMIZE_STR_FAST_STEP_FORWARD: - goto exact_method; - break; - - case OPTIMIZE_MAP: - p = map_search_backward(reg->enc, reg->map, range, adjrange, p); - break; - } - - if (p) { - if (reg->sub_anchor) { - UChar* prev; - - switch (reg->sub_anchor) { - case ANCR_BEGIN_LINE: - if (!ON_STR_BEGIN(p)) { - prev = onigenc_get_prev_char_head(reg->enc, str, p); - if (IS_NOT_NULL(prev) && !ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) { - p = prev; - goto retry; - } - } - break; - - case ANCR_END_LINE: - if (ON_STR_END(p)) { -#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE - prev = onigenc_get_prev_char_head(reg->enc, adjrange, p); - if (IS_NULL(prev)) goto fail; - if (ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) { - p = prev; - goto retry; - } -#endif - } - else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end) -#ifdef USE_CRNL_AS_LINE_TERMINATOR - && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end) -#endif - ) { - p = onigenc_get_prev_char_head(reg->enc, adjrange, p); - if (IS_NULL(p)) goto fail; - goto retry; - } - break; - } - } - - /* no needs to adjust *high, *high is used as range check only */ - if (reg->dmax != INFINITE_LEN) { - *low = p - reg->dmax; - *high = p - reg->dmin; - *high = onigenc_get_right_adjust_char_head(reg->enc, adjrange, *high); - } - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, "backward_search_range: low: %d, high: %d\n", - (int )(*low - str), (int )(*high - str)); -#endif - return 1; /* success */ - } - - fail: -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, "backward_search_range: fail.\n"); -#endif - return 0; /* fail */ -} - - -extern int -onig_search(regex_t* reg, const UChar* str, const UChar* end, - const UChar* start, const UChar* range, OnigRegion* region, - OnigOptionType option) -{ - int r; - OnigMatchParam mp; - - onig_initialize_match_param(&mp); - r = onig_search_with_param(reg, str, end, start, range, region, option, &mp); - onig_free_match_param_content(&mp); - return r; - -} - -extern int -onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end, - const UChar* start, const UChar* range, OnigRegion* region, - OnigOptionType option, OnigMatchParam* mp) -{ - int r; - UChar *s, *prev; - MatchArg msa; - const UChar *orig_start = start; - const UChar *orig_range = range; - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, - "onig_search (entry point): str: %p, end: %d, start: %d, range: %d\n", - str, (int )(end - str), (int )(start - str), (int )(range - str)); -#endif - - ADJUST_MATCH_PARAM(reg, mp); - - if (region -#ifdef USE_POSIX_API_REGION_OPTION - && !IS_POSIX_REGION(option) -#endif - ) { - r = onig_region_resize_clear(region, reg->num_mem + 1); - if (r != 0) goto finish_no_msa; - } - - if (start > end || start < str) goto mismatch_no_msa; - - if (ONIG_IS_OPTION_ON(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING)) { - if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) { - r = ONIGERR_INVALID_WIDE_CHAR_VALUE; - goto finish_no_msa; - } - } - - -#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE -#define MATCH_AND_RETURN_CHECK(upper_range) \ - r = match_at(reg, str, end, (upper_range), s, prev, &msa); \ - if (r != ONIG_MISMATCH) {\ - if (r >= 0) {\ - if (! IS_FIND_LONGEST(reg->options)) {\ - goto match;\ - }\ - }\ - else goto finish; /* error */ \ - } -#else -#define MATCH_AND_RETURN_CHECK(upper_range) \ - r = match_at(reg, str, end, (upper_range), s, prev, &msa); \ - if (r != ONIG_MISMATCH) {\ - if (r >= 0) {\ - goto match;\ - }\ - else goto finish; /* error */ \ - } -#endif /* USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE */ - - - /* anchor optimize: resume search range */ - if (reg->anchor != 0 && str < end) { - UChar *min_semi_end, *max_semi_end; - - if (reg->anchor & ANCR_BEGIN_POSITION) { - /* search start-position only */ - begin_position: - if (range > start) - range = start + 1; - else - range = start; - } - else if (reg->anchor & ANCR_BEGIN_BUF) { - /* search str-position only */ - if (range > start) { - if (start != str) goto mismatch_no_msa; - range = str + 1; - } - else { - if (range <= str) { - start = str; - range = str; - } - else - goto mismatch_no_msa; - } - } - else if (reg->anchor & ANCR_END_BUF) { - min_semi_end = max_semi_end = (UChar* )end; - - end_buf: - if ((OnigLen )(max_semi_end - str) < reg->anchor_dmin) - goto mismatch_no_msa; - - if (range > start) { - if ((OnigLen )(min_semi_end - start) > reg->anchor_dmax) { - start = min_semi_end - reg->anchor_dmax; - if (start < end) - start = onigenc_get_right_adjust_char_head(reg->enc, str, start); - } - if ((OnigLen )(max_semi_end - (range - 1)) < reg->anchor_dmin) { - range = max_semi_end - reg->anchor_dmin + 1; - } - - if (start > range) goto mismatch_no_msa; - /* If start == range, match with empty at end. - Backward search is used. */ - } - else { - if ((OnigLen )(min_semi_end - range) > reg->anchor_dmax) { - range = min_semi_end - reg->anchor_dmax; - } - if ((OnigLen )(max_semi_end - start) < reg->anchor_dmin) { - start = max_semi_end - reg->anchor_dmin; - start = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, start); - } - if (range > start) goto mismatch_no_msa; - } - } - else if (reg->anchor & ANCR_SEMI_END_BUF) { - UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1); - - max_semi_end = (UChar* )end; - // only when str > end, pre_end will be null - // line 4659 "if (start > end || start < str) goto mismatch_no_msa" - // will guarantee str alwayls less than end - // so pre_end won't be null,this check is just for passing staic analysis - if (IS_NOT_NULL(pre_end) && ONIGENC_IS_MBC_NEWLINE(reg->enc, pre_end, end)) { - min_semi_end = pre_end; - -#ifdef USE_CRNL_AS_LINE_TERMINATOR - pre_end = ONIGENC_STEP_BACK(reg->enc, str, pre_end, 1); - if (IS_NOT_NULL(pre_end) && - ONIGENC_IS_MBC_CRNL(reg->enc, pre_end, end)) { - min_semi_end = pre_end; - } -#endif - if (min_semi_end > str && start <= min_semi_end) { - goto end_buf; - } - } - else { - min_semi_end = (UChar* )end; - goto end_buf; - } - } - else if ((reg->anchor & ANCR_ANYCHAR_INF_ML)) { - goto begin_position; - } - } - else if (str == end) { /* empty string */ - static const UChar* address_for_empty_string = (UChar* )""; - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, "onig_search: empty string.\n"); -#endif - - if (reg->threshold_len == 0) { - start = end = str = address_for_empty_string; - s = (UChar* )start; - prev = (UChar* )NULL; - - MATCH_ARG_INIT(msa, reg, option, region, start, mp); - MATCH_AND_RETURN_CHECK(end); - goto mismatch; - } - goto mismatch_no_msa; - } - -#ifdef ONIG_DEBUG_SEARCH - fprintf(stderr, "onig_search(apply anchor): end: %d, start: %d, range: %d\n", - (int )(end - str), (int )(start - str), (int )(range - str)); -#endif - - MATCH_ARG_INIT(msa, reg, option, region, orig_start, mp); - - s = (UChar* )start; - if (range > start) { /* forward search */ - if (s > str) - prev = onigenc_get_prev_char_head(reg->enc, str, s); - else - prev = (UChar* )NULL; - - if (reg->optimize != OPTIMIZE_NONE) { - UChar *sch_range, *low, *high, *low_prev; - - sch_range = (UChar* )range; - if (reg->dmax != 0) { - if (reg->dmax == INFINITE_LEN) - sch_range = (UChar* )end; - else { - sch_range += reg->dmax; - if (sch_range > end) sch_range = (UChar* )end; - } - } - - if ((end - start) < reg->threshold_len) - goto mismatch; - - if (reg->dmax != INFINITE_LEN) { - do { - if (! forward_search_range(reg, str, end, s, sch_range, - &low, &high, &low_prev)) goto mismatch; - if (s < low) { - s = low; - prev = low_prev; - } - while (s <= high) { - MATCH_AND_RETURN_CHECK(orig_range); - prev = s; - s += enclen(reg->enc, s); - } - } while (s < range); - goto mismatch; - } - else { /* check only. */ - if (! forward_search_range(reg, str, end, s, sch_range, - &low, &high, (UChar** )NULL)) goto mismatch; - - if ((reg->anchor & ANCR_ANYCHAR_INF) != 0) { - do { - MATCH_AND_RETURN_CHECK(orig_range); - prev = s; - s += enclen(reg->enc, s); - - if ((reg->anchor & (ANCR_LOOK_BEHIND | ANCR_PREC_READ_NOT)) == 0) { - while (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end) && s < range) { - prev = s; - s += enclen(reg->enc, s); - } - } - } while (s < range); - goto mismatch; - } - } - } - - do { - MATCH_AND_RETURN_CHECK(orig_range); - prev = s; - s += enclen(reg->enc, s); - } while (s < range); - - if (s == range) { /* because empty match with /$/. */ - MATCH_AND_RETURN_CHECK(orig_range); - } - } - else { /* backward search */ - if (range < str) goto mismatch; - - if (orig_start < end) - orig_start += enclen(reg->enc, orig_start); /* is upper range */ - - if (reg->optimize != OPTIMIZE_NONE) { - UChar *low, *high, *adjrange, *sch_start; - - if (range < end) - adjrange = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, range); - else - adjrange = (UChar* )end; - - if (reg->dmax != INFINITE_LEN && - (end - range) >= reg->threshold_len) { - do { - sch_start = s + reg->dmax; - if (sch_start > end) sch_start = (UChar* )end; - if (backward_search_range(reg, str, end, sch_start, range, adjrange, - &low, &high) <= 0) - goto mismatch; - - if (s > high) - s = high; - - while (s >= low) { - prev = onigenc_get_prev_char_head(reg->enc, str, s); - MATCH_AND_RETURN_CHECK(orig_start); - s = prev; - } - // if range is not null,the check is not necessary. - // the range is actually the pointer of the end of the matched string - // or assigned by "range = str" in line 4708. In RegularExpressionMatch - // protocol, the matched string is the parameter String. And str in - // line 4708 is the String,too. and the range is calculated from - // "Start + onigenc_str_bytelen_null (CHAR16_ENCODING, Start)" in - // line 146 in RegularExpressionDxe.c. RegularExpressionMatch ensure - // the String is not null,So in both situation, the range can not be NULL. - // This check is just for passing static analysis. - if(IS_NULL(s))break; - } while (s >= range); - goto mismatch; - } - else { /* check only. */ - if ((end - range) < reg->threshold_len) goto mismatch; - - sch_start = s; - if (reg->dmax != 0) { - if (reg->dmax == INFINITE_LEN) - sch_start = (UChar* )end; - else { - sch_start += reg->dmax; - if (sch_start > end) sch_start = (UChar* )end; - else - sch_start = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, - start, sch_start); - } - } - if (backward_search_range(reg, str, end, sch_start, range, adjrange, - &low, &high) <= 0) goto mismatch; - } - } - - do { - prev = onigenc_get_prev_char_head(reg->enc, str, s); - MATCH_AND_RETURN_CHECK(orig_start); - s = prev; - } while (s >= range); - } - - mismatch: -#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE - if (IS_FIND_LONGEST(reg->options)) { - if (msa.best_len >= 0) { - s = msa.best_s; - goto match; - } - } -#endif - r = ONIG_MISMATCH; - - finish: - MATCH_ARG_FREE(msa); - - /* If result is mismatch and no FIND_NOT_EMPTY option, - then the region is not set in match_at(). */ - if (IS_FIND_NOT_EMPTY(reg->options) && region -#ifdef USE_POSIX_API_REGION_OPTION - && !IS_POSIX_REGION(option) -#endif - ) { - onig_region_clear(region); - } - -#ifdef ONIG_DEBUG - if (r != ONIG_MISMATCH) - fprintf(stderr, "onig_search: error %d\n", r); -#endif - return r; - - mismatch_no_msa: - r = ONIG_MISMATCH; - finish_no_msa: -#ifdef ONIG_DEBUG - if (r != ONIG_MISMATCH) - fprintf(stderr, "onig_search: error %d\n", r); -#endif - return r; - - match: - MATCH_ARG_FREE(msa); - return (int )(s - str); -} - -extern int -onig_scan(regex_t* reg, const UChar* str, const UChar* end, - OnigRegion* region, OnigOptionType option, - int (*scan_callback)(int, int, OnigRegion*, void*), - void* callback_arg) -{ - int r; - int n; - int rs; - const UChar* start; - - if (ONIG_IS_OPTION_ON(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING)) { - if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) - return ONIGERR_INVALID_WIDE_CHAR_VALUE; - - ONIG_OPTION_OFF(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING); - } - - n = 0; - start = str; - while (1) { - r = onig_search(reg, str, end, start, end, region, option); - if (r >= 0) { - rs = scan_callback(n, r, region, callback_arg); - n++; - if (rs != 0) - return rs; - - if (region->end[0] == start - str) { - if (start >= end) break; - start += enclen(reg->enc, start); - } - else - start = str + region->end[0]; - - if (start > end) - break; - } - else if (r == ONIG_MISMATCH) { - break; - } - else { /* error */ - return r; - } - } - - return n; -} - -extern OnigEncoding -onig_get_encoding(regex_t* reg) -{ - return reg->enc; -} - -extern OnigOptionType -onig_get_options(regex_t* reg) -{ - return reg->options; -} - -extern OnigCaseFoldType -onig_get_case_fold_flag(regex_t* reg) -{ - return reg->case_fold_flag; -} - -extern OnigSyntaxType* -onig_get_syntax(regex_t* reg) -{ - return reg->syntax; -} - -extern int -onig_number_of_captures(regex_t* reg) -{ - return reg->num_mem; -} - -extern int -onig_number_of_capture_histories(regex_t* reg) -{ -#ifdef USE_CAPTURE_HISTORY - int i, n; - - n = 0; - for (i = 0; i <= ONIG_MAX_CAPTURE_HISTORY_GROUP; i++) { - if (MEM_STATUS_AT(reg->capture_history, i) != 0) - n++; - } - return n; -#else - return 0; -#endif -} - -extern void -onig_copy_encoding(OnigEncoding to, OnigEncoding from) -{ - *to = *from; -} - -#ifdef USE_DIRECT_THREADED_CODE -extern int -onig_init_for_match_at(regex_t* reg) -{ - return match_at(reg, (const UChar* )NULL, (const UChar* )NULL, - (const UChar* )NULL, (const UChar* )NULL, (UChar* )NULL, - (MatchArg* )NULL); -} -#endif - - -/* for callout functions */ - -#ifdef USE_CALLOUT - -extern OnigCalloutFunc -onig_get_progress_callout(void) -{ - return DefaultProgressCallout; -} - -extern int -onig_set_progress_callout(OnigCalloutFunc f) -{ - DefaultProgressCallout = f; - return ONIG_NORMAL; -} - -extern OnigCalloutFunc -onig_get_retraction_callout(void) -{ - return DefaultRetractionCallout; -} - -extern int -onig_set_retraction_callout(OnigCalloutFunc f) -{ - DefaultRetractionCallout = f; - return ONIG_NORMAL; -} - -extern int -onig_get_callout_num_by_callout_args(OnigCalloutArgs* args) -{ - return args->num; -} - -extern OnigCalloutIn -onig_get_callout_in_by_callout_args(OnigCalloutArgs* args) -{ - return args->in; -} - -extern int -onig_get_name_id_by_callout_args(OnigCalloutArgs* args) -{ - return args->name_id; -} - -extern const UChar* -onig_get_contents_by_callout_args(OnigCalloutArgs* args) -{ - int num; - CalloutListEntry* e; - - num = args->num; - e = onig_reg_callout_list_at(args->regex, num); - if (IS_NULL(e)) return 0; - if (e->of == ONIG_CALLOUT_OF_CONTENTS) { - return e->u.content.start; - } - - return 0; -} - -extern const UChar* -onig_get_contents_end_by_callout_args(OnigCalloutArgs* args) -{ - int num; - CalloutListEntry* e; - - num = args->num; - e = onig_reg_callout_list_at(args->regex, num); - if (IS_NULL(e)) return 0; - if (e->of == ONIG_CALLOUT_OF_CONTENTS) { - return e->u.content.end; - } - - return 0; -} - -extern int -onig_get_args_num_by_callout_args(OnigCalloutArgs* args) -{ - int num; - CalloutListEntry* e; - - num = args->num; - e = onig_reg_callout_list_at(args->regex, num); - if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT; - if (e->of == ONIG_CALLOUT_OF_NAME) { - return e->u.arg.num; - } - - return ONIGERR_INVALID_ARGUMENT; -} - -extern int -onig_get_passed_args_num_by_callout_args(OnigCalloutArgs* args) -{ - int num; - CalloutListEntry* e; - - num = args->num; - e = onig_reg_callout_list_at(args->regex, num); - if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT; - if (e->of == ONIG_CALLOUT_OF_NAME) { - return e->u.arg.passed_num; - } - - return ONIGERR_INVALID_ARGUMENT; -} - -extern int -onig_get_arg_by_callout_args(OnigCalloutArgs* args, int index, - OnigType* type, OnigValue* val) -{ - int num; - CalloutListEntry* e; - - num = args->num; - e = onig_reg_callout_list_at(args->regex, num); - if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT; - if (e->of == ONIG_CALLOUT_OF_NAME) { - if (IS_NOT_NULL(type)) *type = e->u.arg.types[index]; - if (IS_NOT_NULL(val)) *val = e->u.arg.vals[index]; - return ONIG_NORMAL; - } - - return ONIGERR_INVALID_ARGUMENT; -} - -extern const UChar* -onig_get_string_by_callout_args(OnigCalloutArgs* args) -{ - return args->string; -} - -extern const UChar* -onig_get_string_end_by_callout_args(OnigCalloutArgs* args) -{ - return args->string_end; -} - -extern const UChar* -onig_get_start_by_callout_args(OnigCalloutArgs* args) -{ - return args->start; -} - -extern const UChar* -onig_get_right_range_by_callout_args(OnigCalloutArgs* args) -{ - return args->right_range; -} - -extern const UChar* -onig_get_current_by_callout_args(OnigCalloutArgs* args) -{ - return args->current; -} - -extern OnigRegex -onig_get_regex_by_callout_args(OnigCalloutArgs* args) -{ - return args->regex; -} - -extern unsigned long -onig_get_retry_counter_by_callout_args(OnigCalloutArgs* args) -{ - return args->retry_in_match_counter; -} - - -extern int -onig_get_capture_range_in_callout(OnigCalloutArgs* a, int mem_num, int* begin, int* end) -{ - OnigRegex reg; - const UChar* str; - StackType* stk_base; - int i; - - i = mem_num; - reg = a->regex; - str = a->string; - stk_base = a->stk_base; - - if (i > 0) { - if (a->mem_end_stk[i] != INVALID_STACK_INDEX) { - if (MEM_STATUS_AT(reg->bt_mem_start, i)) - *begin = (int )(STACK_AT(a->mem_start_stk[i])->u.mem.pstr - str); - else - *begin = (int )((UChar* )((void* )a->mem_start_stk[i]) - str); - - *end = (int )((MEM_STATUS_AT(reg->bt_mem_end, i) - ? STACK_AT(a->mem_end_stk[i])->u.mem.pstr - : (UChar* )((void* )a->mem_end_stk[i])) - str); - } - else { - *begin = *end = ONIG_REGION_NOTPOS; - } - } - else if (i == 0) { -#if 0 - *begin = a->start - str; - *end = a->current - str; -#else - return ONIGERR_INVALID_ARGUMENT; -#endif - } - else - return ONIGERR_INVALID_ARGUMENT; - - return ONIG_NORMAL; -} - -extern int -onig_get_used_stack_size_in_callout(OnigCalloutArgs* a, int* used_num, int* used_bytes) -{ - int n; - - n = (int )(a->stk - a->stk_base); - - if (used_num != 0) - *used_num = n; - - if (used_bytes != 0) - *used_bytes = n * sizeof(StackType); - - return ONIG_NORMAL; -} - - -/* builtin callout functions */ - -extern int -onig_builtin_fail(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED) -{ - return ONIG_CALLOUT_FAIL; -} - -extern int -onig_builtin_mismatch(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED) -{ - return ONIG_MISMATCH; -} - -#if 0 -extern int -onig_builtin_success(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED) -{ - return ONIG_CALLOUT_SUCCESS; -} -#endif - -extern int -onig_builtin_error(OnigCalloutArgs* args, void* user_data ARG_UNUSED) -{ - int r; - int n; - OnigValue val; - - r = onig_get_arg_by_callout_args(args, 0, 0, &val); - if (r != ONIG_NORMAL) return r; - - n = (int )val.l; - if (n >= 0) { - n = ONIGERR_INVALID_CALLOUT_BODY; - } - else if (onig_is_error_code_needs_param(n)) { - n = ONIGERR_INVALID_CALLOUT_BODY; - } - - return n; -} - -extern int -onig_builtin_count(OnigCalloutArgs* args, void* user_data) -{ - (void )onig_check_callout_data_and_clear_old_values(args); - - return onig_builtin_total_count(args, user_data); -} - -extern int -onig_builtin_total_count(OnigCalloutArgs* args, void* user_data ARG_UNUSED) -{ - int r; - int slot; - OnigType type; - OnigValue val; - OnigValue aval; - OnigCodePoint count_type; - - r = onig_get_arg_by_callout_args(args, 0, &type, &aval); - if (r != ONIG_NORMAL) return r; - - count_type = aval.c; - if (count_type != '>' && count_type != 'X' && count_type != '<') - return ONIGERR_INVALID_CALLOUT_ARG; - - r = onig_get_callout_data_by_callout_args_self_dont_clear_old(args, 0, - &type, &val); - if (r < ONIG_NORMAL) - return r; - else if (r > ONIG_NORMAL) { - /* type == void: initial state */ - val.l = 0; - } - - if (args->in == ONIG_CALLOUT_IN_RETRACTION) { - slot = 2; - if (count_type == '<') - val.l++; - else if (count_type == 'X') - val.l--; - } - else { - slot = 1; - if (count_type != '<') - val.l++; - } - - r = onig_set_callout_data_by_callout_args_self(args, 0, ONIG_TYPE_LONG, &val); - if (r != ONIG_NORMAL) return r; - - /* slot 1: in progress counter, slot 2: in retraction counter */ - r = onig_get_callout_data_by_callout_args_self_dont_clear_old(args, slot, - &type, &val); - if (r < ONIG_NORMAL) - return r; - else if (r > ONIG_NORMAL) { - val.l = 0; - } - - val.l++; - r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val); - if (r != ONIG_NORMAL) return r; - - return ONIG_CALLOUT_SUCCESS; -} - -extern int -onig_builtin_max(OnigCalloutArgs* args, void* user_data ARG_UNUSED) -{ - int r; - int slot; - long max_val; - OnigCodePoint count_type; - OnigType type; - OnigValue val; - OnigValue aval; - - (void )onig_check_callout_data_and_clear_old_values(args); - - slot = 0; - r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val); - if (r < ONIG_NORMAL) - return r; - else if (r > ONIG_NORMAL) { - /* type == void: initial state */ - type = ONIG_TYPE_LONG; - val.l = 0; - } - - r = onig_get_arg_by_callout_args(args, 0, &type, &aval); - if (r != ONIG_NORMAL) return r; - if (type == ONIG_TYPE_TAG) { - r = onig_get_callout_data_by_callout_args(args, aval.tag, 0, &type, &aval); - if (r < ONIG_NORMAL) return r; - else if (r > ONIG_NORMAL) - max_val = 0L; - else - max_val = aval.l; - } - else { /* LONG */ - max_val = aval.l; - } - - r = onig_get_arg_by_callout_args(args, 1, &type, &aval); - if (r != ONIG_NORMAL) return r; - - count_type = aval.c; - if (count_type != '>' && count_type != 'X' && count_type != '<') - return ONIGERR_INVALID_CALLOUT_ARG; - - if (args->in == ONIG_CALLOUT_IN_RETRACTION) { - if (count_type == '<') { - if (val.l >= max_val) return ONIG_CALLOUT_FAIL; - val.l++; - } - else if (count_type == 'X') - val.l--; - } - else { - if (count_type != '<') { - if (val.l >= max_val) return ONIG_CALLOUT_FAIL; - val.l++; - } - } - - r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val); - if (r != ONIG_NORMAL) return r; - - return ONIG_CALLOUT_SUCCESS; -} - -enum OP_CMP { - OP_EQ, - OP_NE, - OP_LT, - OP_GT, - OP_LE, - OP_GE -}; - -extern int -onig_builtin_cmp(OnigCalloutArgs* args, void* user_data ARG_UNUSED) -{ - int r; - int slot; - long lv; - long rv; - OnigType type; - OnigValue val; - regex_t* reg; - enum OP_CMP op; - - reg = args->regex; - - r = onig_get_arg_by_callout_args(args, 0, &type, &val); - if (r != ONIG_NORMAL) return r; - - if (type == ONIG_TYPE_TAG) { - r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val); - if (r < ONIG_NORMAL) return r; - else if (r > ONIG_NORMAL) - lv = 0L; - else - lv = val.l; - } - else { /* ONIG_TYPE_LONG */ - lv = val.l; - } - - r = onig_get_arg_by_callout_args(args, 2, &type, &val); - if (r != ONIG_NORMAL) return r; - - if (type == ONIG_TYPE_TAG) { - r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val); - if (r < ONIG_NORMAL) return r; - else if (r > ONIG_NORMAL) - rv = 0L; - else - rv = val.l; - } - else { /* ONIG_TYPE_LONG */ - rv = val.l; - } - - slot = 0; - r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val); - if (r < ONIG_NORMAL) - return r; - else if (r > ONIG_NORMAL) { - /* type == void: initial state */ - OnigCodePoint c1, c2; - UChar* p; - - r = onig_get_arg_by_callout_args(args, 1, &type, &val); - if (r != ONIG_NORMAL) return r; - - p = val.s.start; - c1 = ONIGENC_MBC_TO_CODE(reg->enc, p, val.s.end); - p += ONIGENC_MBC_ENC_LEN(reg->enc, p); - if (p < val.s.end) { - c2 = ONIGENC_MBC_TO_CODE(reg->enc, p, val.s.end); - p += ONIGENC_MBC_ENC_LEN(reg->enc, p); - if (p != val.s.end) return ONIGERR_INVALID_CALLOUT_ARG; - } - else - c2 = 0; - - switch (c1) { - case '=': - if (c2 != '=') return ONIGERR_INVALID_CALLOUT_ARG; - op = OP_EQ; - break; - case '!': - if (c2 != '=') return ONIGERR_INVALID_CALLOUT_ARG; - op = OP_NE; - break; - case '<': - if (c2 == '=') op = OP_LE; - else if (c2 == 0) op = OP_LT; - else return ONIGERR_INVALID_CALLOUT_ARG; - break; - case '>': - if (c2 == '=') op = OP_GE; - else if (c2 == 0) op = OP_GT; - else return ONIGERR_INVALID_CALLOUT_ARG; - break; - default: - return ONIGERR_INVALID_CALLOUT_ARG; - break; - } - val.l = (long )op; - r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val); - if (r != ONIG_NORMAL) return r; - } - else { - op = (enum OP_CMP )val.l; - } - - switch (op) { - case OP_EQ: r = (lv == rv); break; - case OP_NE: r = (lv != rv); break; - case OP_LT: r = (lv < rv); break; - case OP_GT: r = (lv > rv); break; - case OP_LE: r = (lv <= rv); break; - case OP_GE: r = (lv >= rv); break; - } - - return r == 0 ? ONIG_CALLOUT_FAIL : ONIG_CALLOUT_SUCCESS; -} - - -//#include - -static FILE* OutFp; - -/* name start with "onig_" for macros. */ -static int -onig_builtin_monitor(OnigCalloutArgs* args, void* user_data) -{ - int r; - int num; - size_t tag_len; - // const UChar* start; - // const UChar* right; - // const UChar* current; - // const UChar* string; - // const UChar* strend; - const UChar* tag_start; - const UChar* tag_end; - regex_t* reg; - OnigCalloutIn in; - OnigType type; - OnigValue val; - char buf[20]; - // FILE* fp; - - // fp = OutFp; - - r = onig_get_arg_by_callout_args(args, 0, &type, &val); - if (r != ONIG_NORMAL) return r; - - in = onig_get_callout_in_by_callout_args(args); - if (in == ONIG_CALLOUT_IN_PROGRESS) { - if (val.c == '<') - return ONIG_CALLOUT_SUCCESS; - } - else { - if (val.c != 'X' && val.c != '<') - return ONIG_CALLOUT_SUCCESS; - } - - num = onig_get_callout_num_by_callout_args(args); - // start = onig_get_start_by_callout_args(args); - // right = onig_get_right_range_by_callout_args(args); - // current = onig_get_current_by_callout_args(args); - // string = onig_get_string_by_callout_args(args); - // strend = onig_get_string_end_by_callout_args(args); - reg = onig_get_regex_by_callout_args(args); - tag_start = onig_get_callout_tag_start(reg, num); - tag_end = onig_get_callout_tag_end(reg, num); - - if (tag_start == 0) - sprintf_s(buf, sizeof(buf), "#%d", num); - else { - /* CAUTION: tag string is not terminated with NULL. */ - int i; - - tag_len = tag_end - tag_start; - if (tag_len >= sizeof(buf)) tag_len = sizeof(buf) - 1; - for (i = 0; i < tag_len; i++) buf[i] = tag_start[i]; - buf[tag_len] = '\0'; - } -/* - fprintf(fp, "ONIG-MONITOR: %-4s %s at: %d [%d - %d] len: %d\n", - buf, - in == ONIG_CALLOUT_IN_PROGRESS ? "=>" : "<=", - (int )(current - string), - (int )(start - string), - (int )(right - string), - (int )(strend - string)); - //fflush(fp); -*/ - return ONIG_CALLOUT_SUCCESS; -} - -extern int -onig_setup_builtin_monitors_by_ascii_encoded_name(void* fp /* FILE* */) -{ - int id; - char* name; - OnigEncoding enc; - unsigned int ts[4]; - OnigValue opts[4]; - - if (IS_NOT_NULL(fp)) - OutFp = (FILE* )fp; - else - OutFp = stdout; - - enc = ONIG_ENCODING_ASCII; - - name = "MON"; - ts[0] = ONIG_TYPE_CHAR; - opts[0].c = '>'; - BC_B_O(name, monitor, 1, ts, 1, opts); - - return ONIG_NORMAL; -} - -#endif /* USE_CALLOUT */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/reggnu.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/reggnu.c deleted file mode 100644 index 25bcbc2a2f33..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/reggnu.c +++ /dev/null @@ -1,131 +0,0 @@ -/********************************************************************** - reggnu.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" -#include "oniggnu.h" - -extern void -re_free_registers(OnigRegion* r) -{ - /* 0: don't free self */ - onig_region_free(r, 0); -} - -extern int -re_adjust_startpos(regex_t* reg, const char* string, int size, - int startpos, int range) -{ - if (startpos > 0 && ONIGENC_MBC_MAXLEN(reg->enc) != 1 && startpos < size) { - UChar *p; - UChar *s = (UChar* )string + startpos; - - if (range > 0) { - p = onigenc_get_right_adjust_char_head(reg->enc, (UChar* )string, s); - } - else { - p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, (UChar* )string, s); - } - return (int )(p - (UChar* )string); - } - - return startpos; -} - -extern int -re_match(regex_t* reg, const char* str, int size, int pos, - struct re_registers* regs) -{ - return onig_match(reg, (UChar* )str, (UChar* )(str + size), - (UChar* )(str + pos), regs, ONIG_OPTION_NONE); -} - -extern int -re_search(regex_t* bufp, const char* string, int size, int startpos, int range, - struct re_registers* regs) -{ - return onig_search(bufp, (UChar* )string, (UChar* )(string + size), - (UChar* )(string + startpos), - (UChar* )(string + startpos + range), - regs, ONIG_OPTION_NONE); -} - -extern int -re_compile_pattern(const char* pattern, int size, regex_t* reg, char* ebuf) -{ - int r; - OnigErrorInfo einfo; - - r = onig_compile(reg, (UChar* )pattern, (UChar* )(pattern + size), &einfo); - if (r != ONIG_NORMAL) { - if (IS_NOT_NULL(ebuf)) - (void )onig_error_code_to_str((UChar* )ebuf, r, &einfo); - } - - return r; -} - -extern void -re_free_pattern(regex_t* reg) -{ - onig_free(reg); -} - -extern int -re_alloc_pattern(regex_t** reg) -{ - *reg = (regex_t* )xmalloc(sizeof(regex_t)); - if (IS_NULL(*reg)) return ONIGERR_MEMORY; - - return onig_reg_init(*reg, ONIG_OPTION_DEFAULT, - ONIGENC_CASE_FOLD_DEFAULT, - OnigEncDefaultCharEncoding, - OnigDefaultSyntax); -} - -extern void -re_set_casetable(const char* table) -{ - onigenc_set_default_caseconv_table((UChar* )table); -} - -extern void -re_mbcinit(int mb_code) -{ - OnigEncoding enc; - - switch (mb_code) { - case RE_MBCTYPE_ASCII: - enc = ONIG_ENCODING_ASCII; - break; - } - - onig_initialize(&enc, 1); - - onigenc_set_default_encoding(enc); -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c deleted file mode 100644 index 2b121690e1f7..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c +++ /dev/null @@ -1,8461 +0,0 @@ -/********************************************************************** - regparse.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regparse.h" -#include "st.h" - -#ifdef DEBUG_NODE_FREE -#include -#endif - -#define INIT_TAG_NAMES_ALLOC_NUM 5 - -#define WARN_BUFSIZE 256 - -#define CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS - -#define IS_ALLOWED_CODE_IN_CALLOUT_NAME(c) \ - ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_' /* || c == '!' */) -#define IS_ALLOWED_CODE_IN_CALLOUT_TAG_NAME(c) \ - ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_') - - -OnigSyntaxType OnigSyntaxOniguruma = { - (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | - ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 | - ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL | - ONIG_SYN_OP_ESC_CONTROL_CHARS | - ONIG_SYN_OP_ESC_C_CONTROL ) - & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) - , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT | - ONIG_SYN_OP2_OPTION_ONIGURUMA | - ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP | ONIG_SYN_OP2_ESC_K_NAMED_BACKREF | - ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE | - ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP | - ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS | - ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME | - ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT | - ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE | - ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT | - ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP | - ONIG_SYN_OP2_ESC_G_SUBEXP_CALL | - ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY | - ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT | - ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | - ONIG_SYN_OP2_CCLASS_SET_OP | ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL | - ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META | ONIG_SYN_OP2_ESC_V_VTAB | - ONIG_SYN_OP2_ESC_H_XDIGIT | ONIG_SYN_OP2_ESC_U_HEX4 ) - , ( SYN_GNU_REGEX_BV | - ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV | - ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND | - ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP | - ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME | - ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY | - ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC | - ONIG_SYN_WARN_CC_OP_NOT_ESCAPED | - ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT ) - , ONIG_OPTION_NONE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxRuby = { - (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | - ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 | - ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL | - ONIG_SYN_OP_ESC_CONTROL_CHARS | - ONIG_SYN_OP_ESC_C_CONTROL ) - & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) - , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT | - ONIG_SYN_OP2_OPTION_RUBY | - ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP | ONIG_SYN_OP2_ESC_K_NAMED_BACKREF | - ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE | - ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP | - ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT | - ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE | - ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP | - ONIG_SYN_OP2_ESC_G_SUBEXP_CALL | - ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY | - ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT | - ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | - ONIG_SYN_OP2_CCLASS_SET_OP | ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL | - ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META | ONIG_SYN_OP2_ESC_V_VTAB | - ONIG_SYN_OP2_ESC_H_XDIGIT | ONIG_SYN_OP2_ESC_U_HEX4 ) - , ( SYN_GNU_REGEX_BV | - ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV | - ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND | - ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP | - ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME | - ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY | - ONIG_SYN_WARN_CC_OP_NOT_ESCAPED | - ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT ) - , ONIG_OPTION_NONE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType* OnigDefaultSyntax = ONIG_SYNTAX_ONIGURUMA; - -extern void onig_null_warn(const char* s ARG_UNUSED) { } - -#ifdef DEFAULT_WARN_FUNCTION -static OnigWarnFunc onig_warn = (OnigWarnFunc )DEFAULT_WARN_FUNCTION; -#else -static OnigWarnFunc onig_warn = onig_null_warn; -#endif - -#ifdef DEFAULT_VERB_WARN_FUNCTION -static OnigWarnFunc onig_verb_warn = (OnigWarnFunc )DEFAULT_VERB_WARN_FUNCTION; -#else -static OnigWarnFunc onig_verb_warn = onig_null_warn; -#endif - -extern void onig_set_warn_func(OnigWarnFunc f) -{ - onig_warn = f; -} - -extern void onig_set_verb_warn_func(OnigWarnFunc f) -{ - onig_verb_warn = f; -} - -extern void -onig_warning(const char* s) -{ - if (onig_warn == onig_null_warn) return ; - - (*onig_warn)(s); -} - -#define DEFAULT_MAX_CAPTURE_NUM 32767 - -static int MaxCaptureNum = DEFAULT_MAX_CAPTURE_NUM; - -extern int -onig_set_capture_num_limit(int num) -{ - if (num < 0) return -1; - - MaxCaptureNum = num; - return 0; -} - -static unsigned int ParseDepthLimit = DEFAULT_PARSE_DEPTH_LIMIT; - -extern unsigned int -onig_get_parse_depth_limit(void) -{ - return ParseDepthLimit; -} - -extern int -onig_set_parse_depth_limit(unsigned int depth) -{ - if (depth == 0) - ParseDepthLimit = DEFAULT_PARSE_DEPTH_LIMIT; - else - ParseDepthLimit = depth; - return 0; -} - -static int -bbuf_init(BBuf* buf, int size) -{ - if (size <= 0) { - size = 0; - buf->p = NULL; - } - else { - buf->p = (UChar* )xmalloc(size); - if (IS_NULL(buf->p)) return(ONIGERR_MEMORY); - } - - buf->alloc = size; - buf->used = 0; - return 0; -} - -static void -bbuf_free(BBuf* bbuf) -{ - if (IS_NOT_NULL(bbuf)) { - if (IS_NOT_NULL(bbuf->p)) xfree(bbuf->p); - xfree(bbuf); - } -} - -static int -bbuf_clone(BBuf** rto, BBuf* from) -{ - int r; - BBuf *to; - - *rto = to = (BBuf* )xmalloc(sizeof(BBuf)); - CHECK_NULL_RETURN_MEMERR(to); - r = BB_INIT(to, from->alloc); - if (r != 0) { - xfree(to->p); - *rto = 0; - return r; - } - to->used = from->used; - xmemcpy(to->p, from->p, from->used); - return 0; -} - -static int backref_rel_to_abs(int rel_no, ScanEnv* env) -{ - if (rel_no > 0) { - return env->num_mem + rel_no; - } - else { - return env->num_mem + 1 + rel_no; - } -} - -#define OPTION_ON(v,f) ((v) |= (f)) -#define OPTION_OFF(v,f) ((v) &= ~(f)) - -#define OPTION_NEGATE(v,f,negative) (negative) ? ((v) &= ~(f)) : ((v) |= (f)) - -#define MBCODE_START_POS(enc) \ - (OnigCodePoint )(ONIGENC_MBC_MINLEN(enc) > 1 ? 0 : 0x80) - -#define SET_ALL_MULTI_BYTE_RANGE(enc, pbuf) \ - add_code_range_to_buf(pbuf, MBCODE_START_POS(enc), ~((OnigCodePoint )0)) - -#define ADD_ALL_MULTI_BYTE_RANGE(enc, mbuf) do {\ - if (! ONIGENC_IS_SINGLEBYTE(enc)) {\ - r = SET_ALL_MULTI_BYTE_RANGE(enc, &(mbuf));\ - if (r != 0) return r;\ - }\ -} while (0) - - -#define BITSET_IS_EMPTY(bs,empty) do {\ - int i;\ - empty = 1;\ - for (i = 0; i < (int )BITSET_SIZE; i++) {\ - if ((bs)[i] != 0) {\ - empty = 0; break;\ - }\ - }\ -} while (0) - -static void -bitset_set_range(BitSetRef bs, int from, int to) -{ - int i; - for (i = from; i <= to && i < SINGLE_BYTE_SIZE; i++) { - BITSET_SET_BIT(bs, i); - } -} - -#if 0 -static void -bitset_set_all(BitSetRef bs) -{ - int i; - for (i = 0; i < BITSET_SIZE; i++) { bs[i] = ~((Bits )0); } -} -#endif - -static void -bitset_invert(BitSetRef bs) -{ - int i; - for (i = 0; i < (int )BITSET_SIZE; i++) { bs[i] = ~(bs[i]); } -} - -static void -bitset_invert_to(BitSetRef from, BitSetRef to) -{ - int i; - for (i = 0; i < (int )BITSET_SIZE; i++) { to[i] = ~(from[i]); } -} - -static void -bitset_and(BitSetRef dest, BitSetRef bs) -{ - int i; - for (i = 0; i < (int )BITSET_SIZE; i++) { dest[i] &= bs[i]; } -} - -static void -bitset_or(BitSetRef dest, BitSetRef bs) -{ - int i; - for (i = 0; i < (int )BITSET_SIZE; i++) { dest[i] |= bs[i]; } -} - -static void -bitset_copy(BitSetRef dest, BitSetRef bs) -{ - int i; - for (i = 0; i < (int )BITSET_SIZE; i++) { dest[i] = bs[i]; } -} - -extern int -onig_strncmp(const UChar* s1, const UChar* s2, int n) -{ - int x; - - while (n-- > 0) { - x = *s2++ - *s1++; - if (x) return x; - } - return 0; -} - -extern void -onig_strcpy(UChar* dest, const UChar* src, const UChar* end) -{ - int len = (int )(end - src); - if (len > 0) { - xmemcpy(dest, src, len); - dest[len] = (UChar )0; - } -} - -static int -save_entry(ScanEnv* env, enum SaveType type, int* id) -{ - int nid = env->save_num; - -#if 0 - if (IS_NULL(env->saves)) { - int n = 10; - env->saves = (SaveItem* )xmalloc(sizeof(SaveItem) * n); - CHECK_NULL_RETURN_MEMERR(env->saves); - env->save_alloc_num = n; - } - else if (env->save_alloc_num <= nid) { - int n = env->save_alloc_num * 2; - SaveItem* p = (SaveItem* )xrealloc(env->saves, sizeof(SaveItem) * n, sizeof(SaveItem)*env->save_alloc_num); - CHECK_NULL_RETURN_MEMERR(p); - env->saves = p; - env->save_alloc_num = n; - } - - env->saves[nid].type = type; -#endif - - env->save_num++; - *id = nid; - return 0; -} - -/* scan pattern methods */ -#define PEND_VALUE 0 - -#define PFETCH_READY UChar* pfetch_prev -#define PEND (p < end ? 0 : 1) -#define PUNFETCH p = pfetch_prev -#define PINC do { \ - pfetch_prev = p; \ - p += ONIGENC_MBC_ENC_LEN(enc, p); \ -} while (0) -#define PFETCH(c) do { \ - c = ONIGENC_MBC_TO_CODE(enc, p, end); \ - pfetch_prev = p; \ - p += ONIGENC_MBC_ENC_LEN(enc, p); \ -} while (0) - -#define PINC_S do { \ - p += ONIGENC_MBC_ENC_LEN(enc, p); \ -} while (0) -#define PFETCH_S(c) do { \ - c = ONIGENC_MBC_TO_CODE(enc, p, end); \ - p += ONIGENC_MBC_ENC_LEN(enc, p); \ -} while (0) - -#define PPEEK (p < end ? ONIGENC_MBC_TO_CODE(enc, p, end) : PEND_VALUE) -#define PPEEK_IS(c) (PPEEK == (OnigCodePoint )c) - -static UChar* -strcat_capa(UChar* dest, UChar* dest_end, const UChar* src, const UChar* src_end, - int capa, int oldCapa) -{ - UChar* r; - - if (dest) - r = (UChar* )xrealloc(dest, capa + 1, oldCapa); - else - r = (UChar* )xmalloc(capa + 1); - - CHECK_NULL_RETURN(r); - onig_strcpy(r + (dest_end - dest), src, src_end); - return r; -} - -/* dest on static area */ -static UChar* -strcat_capa_from_static(UChar* dest, UChar* dest_end, - const UChar* src, const UChar* src_end, int capa) -{ - UChar* r; - - r = (UChar* )xmalloc(capa + 1); - CHECK_NULL_RETURN(r); - onig_strcpy(r, dest, dest_end); - onig_strcpy(r + (dest_end - dest), src, src_end); - return r; -} - - -#ifdef USE_ST_LIBRARY - -typedef struct { - UChar* s; - UChar* end; -} st_str_end_key; - -static int -str_end_cmp(st_str_end_key* x, st_str_end_key* y) -{ - UChar *p, *q; - int c; - - if ((x->end - x->s) != (y->end - y->s)) - return 1; - - p = x->s; - q = y->s; - while (p < x->end) { - c = (int )*p - (int )*q; - if (c != 0) return c; - - p++; q++; - } - - return 0; -} - -static int -str_end_hash(st_str_end_key* x) -{ - UChar *p; - int val = 0; - - p = x->s; - while (p < x->end) { - val = val * 997 + (int )*p++; - } - - return val + (val >> 5); -} - -extern hash_table_type* -onig_st_init_strend_table_with_size(int size) -{ - static struct st_hash_type hashType = { - str_end_cmp, - str_end_hash, - }; - - return (hash_table_type* ) - onig_st_init_table_with_size(&hashType, size); -} - -extern int -onig_st_lookup_strend(hash_table_type* table, const UChar* str_key, - const UChar* end_key, hash_data_type *value) -{ - st_str_end_key key; - - key.s = (UChar* )str_key; - key.end = (UChar* )end_key; - - return onig_st_lookup(table, (st_data_t )(&key), value); -} - -extern int -onig_st_insert_strend(hash_table_type* table, const UChar* str_key, - const UChar* end_key, hash_data_type value) -{ - st_str_end_key* key; - int result; - - key = (st_str_end_key* )xmalloc(sizeof(st_str_end_key)); - CHECK_NULL_RETURN_MEMERR(key); - - key->s = (UChar* )str_key; - key->end = (UChar* )end_key; - result = onig_st_insert(table, (st_data_t )key, value); - if (result) { - xfree(key); - } - return result; -} - - -#ifdef USE_CALLOUT - -typedef struct { - OnigEncoding enc; - int type; /* callout type: single or not */ - UChar* s; - UChar* end; -} st_callout_name_key; - -static int -callout_name_table_cmp(st_callout_name_key* x, st_callout_name_key* y) -{ - UChar *p, *q; - int c; - - if (x->enc != y->enc) return 1; - if (x->type != y->type) return 1; - if ((x->end - x->s) != (y->end - y->s)) - return 1; - - p = x->s; - q = y->s; - while (p < x->end) { - c = (int )*p - (int )*q; - if (c != 0) return c; - - p++; q++; - } - - return 0; -} - -static int -callout_name_table_hash(st_callout_name_key* x) -{ - UChar *p; - int val = 0; - - p = x->s; - while (p < x->end) { - val = val * 997 + (int )*p++; - } - - /* use intptr_t for escape warning in Windows */ - return val + (val >> 5) + ((intptr_t )x->enc & 0xffff) + x->type; -} - -extern hash_table_type* -onig_st_init_callout_name_table_with_size(int size) -{ - static struct st_hash_type hashType = { - callout_name_table_cmp, - callout_name_table_hash, - }; - - return (hash_table_type* ) - onig_st_init_table_with_size(&hashType, size); -} - -extern int -onig_st_lookup_callout_name_table(hash_table_type* table, - OnigEncoding enc, - int type, - const UChar* str_key, - const UChar* end_key, - hash_data_type *value) -{ - st_callout_name_key key; - - key.enc = enc; - key.type = type; - key.s = (UChar* )str_key; - key.end = (UChar* )end_key; - - return onig_st_lookup(table, (st_data_t )(&key), value); -} - -static int -st_insert_callout_name_table(hash_table_type* table, - OnigEncoding enc, int type, - UChar* str_key, UChar* end_key, - hash_data_type value) -{ - st_callout_name_key* key; - int result; - - key = (st_callout_name_key* )xmalloc(sizeof(st_callout_name_key)); - CHECK_NULL_RETURN_MEMERR(key); - - /* key->s: don't duplicate, because str_key is duped in callout_name_entry() */ - key->enc = enc; - key->type = type; - key->s = str_key; - key->end = end_key; - result = onig_st_insert(table, (st_data_t )key, value); - if (result) { - xfree(key); - } - return result; -} -#endif - -#endif /* USE_ST_LIBRARY */ - - -#define INIT_NAME_BACKREFS_ALLOC_NUM 8 - -typedef struct { - UChar* name; - int name_len; /* byte length */ - int back_num; /* number of backrefs */ - int back_alloc; - int back_ref1; - int* back_refs; -} NameEntry; - -#ifdef USE_ST_LIBRARY - -#define INIT_NAMES_ALLOC_NUM 5 - -typedef st_table NameTable; -typedef st_data_t HashDataType; /* 1.6 st.h doesn't define st_data_t type */ - -#define NAMEBUF_SIZE 24 -#define NAMEBUF_SIZE_1 25 - -#ifdef ONIG_DEBUG -static int -i_print_name_entry(UChar* key, NameEntry* e, void* arg) -{ - int i; - FILE* fp = (FILE* )arg; - - fprintf(fp, "%s: ", e->name); - if (e->back_num == 0) - fputs("-", fp); - else if (e->back_num == 1) - fprintf(fp, "%d", e->back_ref1); - else { - for (i = 0; i < e->back_num; i++) { - if (i > 0) fprintf(fp, ", "); - fprintf(fp, "%d", e->back_refs[i]); - } - } - fputs("\n", fp); - return ST_CONTINUE; -} - -extern int -onig_print_names(FILE* fp, regex_t* reg) -{ - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) { - fprintf(fp, "name table\n"); - onig_st_foreach(t, i_print_name_entry, (HashDataType )fp); - fputs("\n", fp); - } - return 0; -} -#endif /* ONIG_DEBUG */ - -static int -i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED) -{ - xfree(e->name); - if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs); - xfree(key); - xfree(e); - return ST_DELETE; -} - -static int -names_clear(regex_t* reg) -{ - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) { - onig_st_foreach(t, i_free_name_entry, 0); - } - return 0; -} - -extern int -onig_names_free(regex_t* reg) -{ - int r; - NameTable* t; - - r = names_clear(reg); - if (r != 0) return r; - - t = (NameTable* )reg->name_table; - if (IS_NOT_NULL(t)) onig_st_free_table(t); - reg->name_table = (void* )NULL; - return 0; -} - -static NameEntry* -name_find(regex_t* reg, const UChar* name, const UChar* name_end) -{ - NameEntry* e; - NameTable* t = (NameTable* )reg->name_table; - - e = (NameEntry* )NULL; - if (IS_NOT_NULL(t)) { - onig_st_lookup_strend(t, name, name_end, (HashDataType* )((void* )(&e))); - } - return e; -} - -typedef struct { - int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*); - regex_t* reg; - void* arg; - int ret; - OnigEncoding enc; -} INamesArg; - -static int -i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg) -{ - int r = (*(arg->func))(e->name, - e->name + e->name_len, - e->back_num, - (e->back_num > 1 ? e->back_refs : &(e->back_ref1)), - arg->reg, arg->arg); - if (r != 0) { - arg->ret = r; - return ST_STOP; - } - return ST_CONTINUE; -} - -extern int -onig_foreach_name(regex_t* reg, - int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*), void* arg) -{ - INamesArg narg; - NameTable* t = (NameTable* )reg->name_table; - - narg.ret = 0; - if (IS_NOT_NULL(t)) { - narg.func = func; - narg.reg = reg; - narg.arg = arg; - narg.enc = reg->enc; /* should be pattern encoding. */ - onig_st_foreach(t, i_names, (HashDataType )&narg); - } - return narg.ret; -} - -static int -i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumRemap* map) -{ - int i; - - if (e->back_num > 1) { - for (i = 0; i < e->back_num; i++) { - e->back_refs[i] = map[e->back_refs[i]].new_val; - } - } - else if (e->back_num == 1) { - e->back_ref1 = map[e->back_ref1].new_val; - } - - return ST_CONTINUE; -} - -extern int -onig_renumber_name_table(regex_t* reg, GroupNumRemap* map) -{ - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) { - onig_st_foreach(t, i_renumber_name, (HashDataType )map); - } - return 0; -} - - -extern int -onig_number_of_names(regex_t* reg) -{ - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) - return t->num_entries; - else - return 0; -} - -#else /* USE_ST_LIBRARY */ - -#define INIT_NAMES_ALLOC_NUM 8 - -typedef struct { - NameEntry* e; - int num; - int alloc; -} NameTable; - -#ifdef ONIG_DEBUG -extern int -onig_print_names(FILE* fp, regex_t* reg) -{ - int i, j; - NameEntry* e; - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t) && t->num > 0) { - fprintf(fp, "name table\n"); - for (i = 0; i < t->num; i++) { - e = &(t->e[i]); - fprintf(fp, "%s: ", e->name); - if (e->back_num == 0) { - fputs("-", fp); - } - else if (e->back_num == 1) { - fprintf(fp, "%d", e->back_ref1); - } - else { - for (j = 0; j < e->back_num; j++) { - if (j > 0) fprintf(fp, ", "); - fprintf(fp, "%d", e->back_refs[j]); - } - } - fputs("\n", fp); - } - fputs("\n", fp); - } - return 0; -} -#endif - -static int -names_clear(regex_t* reg) -{ - int i; - NameEntry* e; - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) { - for (i = 0; i < t->num; i++) { - e = &(t->e[i]); - if (IS_NOT_NULL(e->name)) { - xfree(e->name); - e->name = NULL; - e->name_len = 0; - e->back_num = 0; - e->back_alloc = 0; - if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs); - e->back_refs = (int* )NULL; - } - } - if (IS_NOT_NULL(t->e)) { - xfree(t->e); - t->e = NULL; - } - t->num = 0; - } - return 0; -} - -extern int -onig_names_free(regex_t* reg) -{ - int r; - NameTable* t; - - r = names_clear(reg); - if (r != 0) return r; - - t = (NameTable* )reg->name_table; - if (IS_NOT_NULL(t)) xfree(t); - reg->name_table = NULL; - return 0; -} - -static NameEntry* -name_find(regex_t* reg, UChar* name, UChar* name_end) -{ - int i, len; - NameEntry* e; - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) { - len = name_end - name; - for (i = 0; i < t->num; i++) { - e = &(t->e[i]); - if (len == e->name_len && onig_strncmp(name, e->name, len) == 0) - return e; - } - } - return (NameEntry* )NULL; -} - -extern int -onig_foreach_name(regex_t* reg, - int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*), void* arg) -{ - int i, r; - NameEntry* e; - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) { - for (i = 0; i < t->num; i++) { - e = &(t->e[i]); - r = (*func)(e->name, e->name + e->name_len, e->back_num, - (e->back_num > 1 ? e->back_refs : &(e->back_ref1)), - reg, arg); - if (r != 0) return r; - } - } - return 0; -} - -extern int -onig_number_of_names(regex_t* reg) -{ - NameTable* t = (NameTable* )reg->name_table; - - if (IS_NOT_NULL(t)) - return t->num; - else - return 0; -} - -#endif /* else USE_ST_LIBRARY */ - -static int -name_add(regex_t* reg, UChar* name, UChar* name_end, int backref, ScanEnv* env) -{ - int r; - int alloc; - NameEntry* e; - NameTable* t = (NameTable* )reg->name_table; - - if (name_end - name <= 0) - return ONIGERR_EMPTY_GROUP_NAME; - - e = name_find(reg, name, name_end); - if (IS_NULL(e)) { -#ifdef USE_ST_LIBRARY - if (IS_NULL(t)) { - t = onig_st_init_strend_table_with_size(INIT_NAMES_ALLOC_NUM); - CHECK_NULL_RETURN_MEMERR(t); - reg->name_table = (void* )t; - } - e = (NameEntry* )xmalloc(sizeof(NameEntry)); - CHECK_NULL_RETURN_MEMERR(e); - - e->name = onigenc_strdup(reg->enc, name, name_end); - if (IS_NULL(e->name)) { - xfree(e); return ONIGERR_MEMORY; - } - r = onig_st_insert_strend(t, e->name, (e->name + (name_end - name)), - (HashDataType )e); - if (r < 0) return r; - - e->name_len = (int )(name_end - name); - e->back_num = 0; - e->back_alloc = 0; - e->back_refs = (int* )NULL; - -#else - - if (IS_NULL(t)) { - alloc = INIT_NAMES_ALLOC_NUM; - t = (NameTable* )xmalloc(sizeof(NameTable)); - CHECK_NULL_RETURN_MEMERR(t); - t->e = NULL; - t->alloc = 0; - t->num = 0; - - t->e = (NameEntry* )xmalloc(sizeof(NameEntry) * alloc); - if (IS_NULL(t->e)) { - xfree(t); - return ONIGERR_MEMORY; - } - t->alloc = alloc; - reg->name_table = t; - goto clear; - } - else if (t->num == t->alloc) { - int i; - - alloc = t->alloc * 2; - t->e = (NameEntry* )xrealloc(t->e, sizeof(NameEntry) * alloc, sizeof(NameEntry) * t->alloc); - CHECK_NULL_RETURN_MEMERR(t->e); - t->alloc = alloc; - - clear: - for (i = t->num; i < t->alloc; i++) { - t->e[i].name = NULL; - t->e[i].name_len = 0; - t->e[i].back_num = 0; - t->e[i].back_alloc = 0; - t->e[i].back_refs = (int* )NULL; - } - } - e = &(t->e[t->num]); - t->num++; - e->name = onigenc_strdup(reg->enc, name, name_end); - if (IS_NULL(e->name)) return ONIGERR_MEMORY; - e->name_len = name_end - name; -#endif - } - - if (e->back_num >= 1 && - ! IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME)) { - onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINED_NAME, - name, name_end); - return ONIGERR_MULTIPLEX_DEFINED_NAME; - } - - e->back_num++; - if (e->back_num == 1) { - e->back_ref1 = backref; - } - else { - if (e->back_num == 2) { - alloc = INIT_NAME_BACKREFS_ALLOC_NUM; - e->back_refs = (int* )xmalloc(sizeof(int) * alloc); - CHECK_NULL_RETURN_MEMERR(e->back_refs); - e->back_alloc = alloc; - e->back_refs[0] = e->back_ref1; - e->back_refs[1] = backref; - } - else { - if (e->back_num > e->back_alloc) { - alloc = e->back_alloc * 2; - e->back_refs = (int* )xrealloc(e->back_refs, sizeof(int) * alloc, sizeof(int) * e->back_alloc); - CHECK_NULL_RETURN_MEMERR(e->back_refs); - e->back_alloc = alloc; - } - e->back_refs[e->back_num - 1] = backref; - } - } - - return 0; -} - -extern int -onig_name_to_group_numbers(regex_t* reg, const UChar* name, - const UChar* name_end, int** nums) -{ - NameEntry* e = name_find(reg, name, name_end); - - if (IS_NULL(e)) return ONIGERR_UNDEFINED_NAME_REFERENCE; - - switch (e->back_num) { - case 0: - break; - case 1: - *nums = &(e->back_ref1); - break; - default: - *nums = e->back_refs; - break; - } - return e->back_num; -} - -static int -name_to_group_numbers(ScanEnv* env, const UChar* name, const UChar* name_end, - int** nums) -{ - regex_t* reg; - NameEntry* e; - - reg = env->reg; - e = name_find(reg, name, name_end); - - if (IS_NULL(e)) { - onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, - (UChar* )name, (UChar* )name_end); - return ONIGERR_UNDEFINED_NAME_REFERENCE; - } - - switch (e->back_num) { - case 0: - break; - case 1: - *nums = &(e->back_ref1); - break; - default: - *nums = e->back_refs; - break; - } - return e->back_num; -} - -extern int -onig_name_to_backref_number(regex_t* reg, const UChar* name, - const UChar* name_end, OnigRegion *region) -{ - int i, n, *nums; - - n = onig_name_to_group_numbers(reg, name, name_end, &nums); - if (n < 0) - return n; - else if (n == 0) - return ONIGERR_PARSER_BUG; - else if (n == 1) - return nums[0]; - else { - if (IS_NOT_NULL(region)) { - for (i = n - 1; i >= 0; i--) { - if (region->beg[nums[i]] != ONIG_REGION_NOTPOS) - return nums[i]; - } - } - return nums[n - 1]; - } -} - -extern int -onig_noname_group_capture_is_active(regex_t* reg) -{ - if (ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_DONT_CAPTURE_GROUP)) - return 0; - - if (onig_number_of_names(reg) > 0 && - IS_SYNTAX_BV(reg->syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) && - !ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_CAPTURE_GROUP)) { - return 0; - } - - return 1; -} - -#ifdef USE_CALLOUT - -typedef struct { - OnigCalloutType type; - int in; - OnigCalloutFunc start_func; - OnigCalloutFunc end_func; - int arg_num; - int opt_arg_num; - unsigned int arg_types[ONIG_CALLOUT_MAX_ARGS_NUM]; - OnigValue opt_defaults[ONIG_CALLOUT_MAX_ARGS_NUM]; - UChar* name; /* reference to GlobalCalloutNameTable entry: e->name */ -} CalloutNameListEntry; - -typedef struct { - int n; - int alloc; - CalloutNameListEntry* v; -} CalloutNameListType; - -static CalloutNameListType* GlobalCalloutNameList; - -static int -make_callout_func_list(CalloutNameListType** rs, int init_size) -{ - CalloutNameListType* s; - CalloutNameListEntry* v; - - *rs = 0; - - s = xmalloc(sizeof(*s)); - if (IS_NULL(s)) return ONIGERR_MEMORY; - - v = (CalloutNameListEntry* )xmalloc(sizeof(CalloutNameListEntry) * init_size); - if (IS_NULL(v)) { - xfree(s); - return ONIGERR_MEMORY; - } - - s->n = 0; - s->alloc = init_size; - s->v = v; - - *rs = s; - return ONIG_NORMAL; -} - -static void -free_callout_func_list(CalloutNameListType* s) -{ - if (IS_NOT_NULL(s)) { - if (IS_NOT_NULL(s->v)) { - int i, j; - - for (i = 0; i < s->n; i++) { - CalloutNameListEntry* e = s->v + i; - for (j = e->arg_num - e->opt_arg_num; j < e->arg_num; j++) { - if (e->arg_types[j] == ONIG_TYPE_STRING) { - UChar* p = e->opt_defaults[j].s.start; - if (IS_NOT_NULL(p)) xfree(p); - } - } - } - xfree(s->v); - } - xfree(s); - } -} - -static int -callout_func_list_add(CalloutNameListType* s, int* rid) -{ - if (s->n >= s->alloc) { - int new_size = s->alloc * 2; - CalloutNameListEntry* nv = (CalloutNameListEntry* ) - xrealloc(s->v, sizeof(CalloutNameListEntry) * new_size, sizeof(CalloutNameListEntry)*s->alloc); - if (IS_NULL(nv)) return ONIGERR_MEMORY; - - s->alloc = new_size; - s->v = nv; - } - - *rid = s->n; - - xmemset(&(s->v[s->n]), 0, sizeof(*(s->v))); - s->n++; - return ONIG_NORMAL; -} - - -typedef struct { - UChar* name; - int name_len; /* byte length */ - int id; -} CalloutNameEntry; - -#ifdef USE_ST_LIBRARY -typedef st_table CalloutNameTable; -#else -typedef struct { - CalloutNameEntry* e; - int num; - int alloc; -} CalloutNameTable; -#endif - -static CalloutNameTable* GlobalCalloutNameTable; -static int CalloutNameIDCounter; - -#ifdef USE_ST_LIBRARY - -static int -i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e, - void* arg ARG_UNUSED) -{ - xfree(e->name); - /*xfree(key->s); */ /* is same as e->name */ - xfree(key); - xfree(e); - return ST_DELETE; -} - -static int -callout_name_table_clear(CalloutNameTable* t) -{ - if (IS_NOT_NULL(t)) { - onig_st_foreach(t, i_free_callout_name_entry, 0); - } - return 0; -} - -static int -global_callout_name_table_free(void) -{ - if (IS_NOT_NULL(GlobalCalloutNameTable)) { - int r = callout_name_table_clear(GlobalCalloutNameTable); - if (r != 0) return r; - - onig_st_free_table(GlobalCalloutNameTable); - GlobalCalloutNameTable = 0; - CalloutNameIDCounter = 0; - } - - return 0; -} - -static CalloutNameEntry* -callout_name_find(OnigEncoding enc, int is_not_single, - const UChar* name, const UChar* name_end) -{ - int r; - CalloutNameEntry* e; - CalloutNameTable* t = GlobalCalloutNameTable; - - e = (CalloutNameEntry* )NULL; - if (IS_NOT_NULL(t)) { - r = onig_st_lookup_callout_name_table(t, enc, is_not_single, name, name_end, - (HashDataType* )((void* )(&e))); - if (r == 0) { /* not found */ - if (enc != ONIG_ENCODING_ASCII && - ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc)) { - enc = ONIG_ENCODING_ASCII; - onig_st_lookup_callout_name_table(t, enc, is_not_single, name, name_end, - (HashDataType* )((void* )(&e))); - } - } - } - return e; -} - -#else - -static int -callout_name_table_clear(CalloutNameTable* t) -{ - int i; - CalloutNameEntry* e; - - if (IS_NOT_NULL(t)) { - for (i = 0; i < t->num; i++) { - e = &(t->e[i]); - if (IS_NOT_NULL(e->name)) { - xfree(e->name); - e->name = NULL; - e->name_len = 0; - e->id = 0; - e->func = 0; - } - } - if (IS_NOT_NULL(t->e)) { - xfree(t->e); - t->e = NULL; - } - t->num = 0; - } - return 0; -} - -static int -global_callout_name_table_free(void) -{ - if (IS_NOT_NULL(GlobalCalloutNameTable)) { - int r = callout_name_table_clear(GlobalCalloutNameTable); - if (r != 0) return r; - - xfree(GlobalCalloutNameTable); - GlobalCalloutNameTable = 0; - CalloutNameIDCounter = 0; - } - return 0; -} - -static CalloutNameEntry* -callout_name_find(UChar* name, UChar* name_end) -{ - int i, len; - CalloutNameEntry* e; - CalloutNameTable* t = Calloutnames; - - if (IS_NOT_NULL(t)) { - len = name_end - name; - for (i = 0; i < t->num; i++) { - e = &(t->e[i]); - if (len == e->name_len && onig_strncmp(name, e->name, len) == 0) - return e; - } - } - return (CalloutNameEntry* )NULL; -} - -#endif - -/* name string must be single byte char string. */ -static int -callout_name_entry(CalloutNameEntry** rentry, OnigEncoding enc, - int is_not_single, UChar* name, UChar* name_end) -{ - int r; - CalloutNameEntry* e; - CalloutNameTable* t = GlobalCalloutNameTable; - - *rentry = 0; - if (name_end - name <= 0) - return ONIGERR_INVALID_CALLOUT_NAME; - - e = callout_name_find(enc, is_not_single, name, name_end); - if (IS_NULL(e)) { -#ifdef USE_ST_LIBRARY - if (IS_NULL(t)) { - t = onig_st_init_callout_name_table_with_size(INIT_NAMES_ALLOC_NUM); - CHECK_NULL_RETURN_MEMERR(t); - GlobalCalloutNameTable = t; - } - e = (CalloutNameEntry* )xmalloc(sizeof(CalloutNameEntry)); - CHECK_NULL_RETURN_MEMERR(e); - - e->name = onigenc_strdup(enc, name, name_end); - if (IS_NULL(e->name)) { - xfree(e); return ONIGERR_MEMORY; - } - - r = st_insert_callout_name_table(t, enc, is_not_single, - e->name, (e->name + (name_end - name)), - (HashDataType )e); - if (r < 0) return r; - -#else - - int alloc; - - if (IS_NULL(t)) { - alloc = INIT_NAMES_ALLOC_NUM; - t = (CalloutNameTable* )xmalloc(sizeof(CalloutNameTable)); - CHECK_NULL_RETURN_MEMERR(t); - t->e = NULL; - t->alloc = 0; - t->num = 0; - - t->e = (CalloutNameEntry* )xmalloc(sizeof(CalloutNameEntry) * alloc); - if (IS_NULL(t->e)) { - xfree(t); - return ONIGERR_MEMORY; - } - t->alloc = alloc; - GlobalCalloutNameTable = t; - goto clear; - } - else if (t->num == t->alloc) { - int i; - - alloc = t->alloc * 2; - t->e = (CalloutNameEntry* )xrealloc(t->e, sizeof(CalloutNameEntry) * alloc, sizeof(CalloutNameEntry)*t->alloc); - CHECK_NULL_RETURN_MEMERR(t->e); - t->alloc = alloc; - - clear: - for (i = t->num; i < t->alloc; i++) { - t->e[i].name = NULL; - t->e[i].name_len = 0; - t->e[i].id = 0; - } - } - e = &(t->e[t->num]); - t->num++; - e->name = onigenc_strdup(enc, name, name_end); - if (IS_NULL(e->name)) return ONIGERR_MEMORY; -#endif - - CalloutNameIDCounter++; - e->id = CalloutNameIDCounter; - e->name_len = (int )(name_end - name); - } - - *rentry = e; - return e->id; -} - -static int -is_allowed_callout_name(OnigEncoding enc, UChar* name, UChar* name_end) -{ - UChar* p; - OnigCodePoint c; - - if (name >= name_end) return 0; - - p = name; - while (p < name_end) { - c = ONIGENC_MBC_TO_CODE(enc, p, name_end); - if (! IS_ALLOWED_CODE_IN_CALLOUT_NAME(c)) - return 0; - - if (p == name) { - if (c >= '0' && c <= '9') return 0; - } - - p += ONIGENC_MBC_ENC_LEN(enc, p); - } - - return 1; -} - -static int -is_allowed_callout_tag_name(OnigEncoding enc, UChar* name, UChar* name_end) -{ - UChar* p; - OnigCodePoint c; - - if (name >= name_end) return 0; - - p = name; - while (p < name_end) { - c = ONIGENC_MBC_TO_CODE(enc, p, name_end); - if (! IS_ALLOWED_CODE_IN_CALLOUT_TAG_NAME(c)) - return 0; - - if (p == name) { - if (c >= '0' && c <= '9') return 0; - } - - p += ONIGENC_MBC_ENC_LEN(enc, p); - } - - return 1; -} - -extern int -onig_set_callout_of_name(OnigEncoding enc, OnigCalloutType callout_type, - UChar* name, UChar* name_end, int in, - OnigCalloutFunc start_func, - OnigCalloutFunc end_func, - int arg_num, unsigned int arg_types[], - int opt_arg_num, OnigValue opt_defaults[]) -{ - int r; - int i; - int j; - int id; - int is_not_single; - CalloutNameEntry* e; - CalloutNameListEntry* fe; - - if (callout_type != ONIG_CALLOUT_TYPE_SINGLE) - return ONIGERR_INVALID_ARGUMENT; - - if (arg_num < 0 || arg_num > ONIG_CALLOUT_MAX_ARGS_NUM) - return ONIGERR_INVALID_CALLOUT_ARG; - - if (opt_arg_num < 0 || opt_arg_num > arg_num) - return ONIGERR_INVALID_CALLOUT_ARG; - - if (start_func == 0 && end_func == 0) - return ONIGERR_INVALID_CALLOUT_ARG; - - if ((in & ONIG_CALLOUT_IN_PROGRESS) == 0 && (in & ONIG_CALLOUT_IN_RETRACTION) == 0) - return ONIGERR_INVALID_CALLOUT_ARG; - - for (i = 0; i < arg_num; i++) { - unsigned int t = arg_types[i]; - if (t == ONIG_TYPE_VOID) - return ONIGERR_INVALID_CALLOUT_ARG; - else { - if (i >= arg_num - opt_arg_num) { - if (t != ONIG_TYPE_LONG && t != ONIG_TYPE_CHAR && t != ONIG_TYPE_STRING && - t != ONIG_TYPE_TAG) - return ONIGERR_INVALID_CALLOUT_ARG; - } - else { - if (t != ONIG_TYPE_LONG) { - t = t & ~ONIG_TYPE_LONG; - if (t != ONIG_TYPE_CHAR && t != ONIG_TYPE_STRING && t != ONIG_TYPE_TAG) - return ONIGERR_INVALID_CALLOUT_ARG; - } - } - } - } - - if (! is_allowed_callout_name(enc, name, name_end)) { - return ONIGERR_INVALID_CALLOUT_NAME; - } - - is_not_single = (callout_type != ONIG_CALLOUT_TYPE_SINGLE); - id = callout_name_entry(&e, enc, is_not_single, name, name_end); - if (id < 0) return id; - - r = ONIG_NORMAL; - if (IS_NULL(GlobalCalloutNameList)) { - r = make_callout_func_list(&GlobalCalloutNameList, 10); - if (r != ONIG_NORMAL) return r; - } - - while (id >= GlobalCalloutNameList->n) { - int rid; - r = callout_func_list_add(GlobalCalloutNameList, &rid); - if (r != ONIG_NORMAL) return r; - } - - fe = GlobalCalloutNameList->v + id; - fe->type = callout_type; - fe->in = in; - fe->start_func = start_func; - fe->end_func = end_func; - fe->arg_num = arg_num; - fe->opt_arg_num = opt_arg_num; - fe->name = e->name; - - for (i = 0; i < arg_num; i++) { - fe->arg_types[i] = arg_types[i]; - } - for (i = arg_num - opt_arg_num, j = 0; i < arg_num; i++, j++) { - if(IS_NULL(opt_defaults))return ONIGERR_INVALID_ARGUMENT; - if (fe->arg_types[i] == ONIG_TYPE_STRING) { - OnigValue* val; - UChar* ds; - - if (IS_NULL(opt_defaults)) return ONIGERR_INVALID_ARGUMENT; - - val = opt_defaults + j; - ds = onigenc_strdup(enc, val->s.start, val->s.end); - CHECK_NULL_RETURN_MEMERR(ds); - - fe->opt_defaults[i].s.start = ds; - fe->opt_defaults[i].s.end = ds + (val->s.end - val->s.start); - } - else { - fe->opt_defaults[i] = opt_defaults[j]; - } - } - - r = id; - return r; -} - -static int -get_callout_name_id_by_name(OnigEncoding enc, int is_not_single, - UChar* name, UChar* name_end, int* rid) -{ - int r; - CalloutNameEntry* e; - - if (! is_allowed_callout_name(enc, name, name_end)) { - return ONIGERR_INVALID_CALLOUT_NAME; - } - - e = callout_name_find(enc, is_not_single, name, name_end); - if (IS_NULL(e)) { - return ONIGERR_UNDEFINED_CALLOUT_NAME; - } - - r = ONIG_NORMAL; - *rid = e->id; - - return r; -} - -extern OnigCalloutFunc -onig_get_callout_start_func(regex_t* reg, int callout_num) -{ - /* If used for callouts of contents, return 0. */ - CalloutListEntry* e; - - e = onig_reg_callout_list_at(reg, callout_num); - CHECK_NULL_RETURN(e); - return e->start_func; -} - -extern const UChar* -onig_get_callout_tag_start(regex_t* reg, int callout_num) -{ - CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num); - CHECK_NULL_RETURN(e); - return e->tag_start; -} - -extern const UChar* -onig_get_callout_tag_end(regex_t* reg, int callout_num) -{ - CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num); - CHECK_NULL_RETURN(e); - return e->tag_end; -} - - -extern OnigCalloutType -onig_get_callout_type_by_name_id(int name_id) -{ - if (name_id < 0 || name_id >= GlobalCalloutNameList->n) - return 0; - - return GlobalCalloutNameList->v[name_id].type; -} - -extern OnigCalloutFunc -onig_get_callout_start_func_by_name_id(int name_id) -{ - if (name_id < 0 || name_id >= GlobalCalloutNameList->n) - return 0; - - return GlobalCalloutNameList->v[name_id].start_func; -} - -extern OnigCalloutFunc -onig_get_callout_end_func_by_name_id(int name_id) -{ - if (name_id < 0 || name_id >= GlobalCalloutNameList->n) - return 0; - - return GlobalCalloutNameList->v[name_id].end_func; -} - -extern int -onig_get_callout_in_by_name_id(int name_id) -{ - if (name_id < 0 || name_id >= GlobalCalloutNameList->n) - return 0; - - return GlobalCalloutNameList->v[name_id].in; -} - -static int -get_callout_arg_num_by_name_id(int name_id) -{ - return GlobalCalloutNameList->v[name_id].arg_num; -} - -static int -get_callout_opt_arg_num_by_name_id(int name_id) -{ - return GlobalCalloutNameList->v[name_id].opt_arg_num; -} - -static unsigned int -get_callout_arg_type_by_name_id(int name_id, int index) -{ - return GlobalCalloutNameList->v[name_id].arg_types[index]; -} - -static OnigValue -get_callout_opt_default_by_name_id(int name_id, int index) -{ - return GlobalCalloutNameList->v[name_id].opt_defaults[index]; -} - -extern UChar* -onig_get_callout_name_by_name_id(int name_id) -{ - if (name_id < 0 || name_id >= GlobalCalloutNameList->n) - return 0; - - return GlobalCalloutNameList->v[name_id].name; -} - -extern int -onig_global_callout_names_free(void) -{ - free_callout_func_list(GlobalCalloutNameList); - GlobalCalloutNameList = 0; - - global_callout_name_table_free(); - return ONIG_NORMAL; -} - - -typedef st_table CalloutTagTable; -typedef intptr_t CalloutTagVal; - -#define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0) - -static int -i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg) -{ - int num; - RegexExt* ext = (RegexExt* )arg; - - num = (int )e - 1; - ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST; - return ST_CONTINUE; -} - -static int -setup_ext_callout_list_values(regex_t* reg) -{ - int i, j; - RegexExt* ext; - - ext = reg->extp; - if (IS_NOT_NULL(ext->tag_table)) { - onig_st_foreach((CalloutTagTable *)ext->tag_table, i_callout_callout_list_set, - (st_data_t )ext); - } - - for (i = 0; i < ext->callout_num; i++) { - CalloutListEntry* e = ext->callout_list + i; - if (e->of == ONIG_CALLOUT_OF_NAME) { - for (j = 0; j < e->u.arg.num; j++) { - if (e->u.arg.types[j] == ONIG_TYPE_TAG) { - UChar* start; - UChar* end; - int num; - start = e->u.arg.vals[j].s.start; - end = e->u.arg.vals[j].s.end; - num = onig_get_callout_num_by_tag(reg, start, end); - if (num < 0) return num; - e->u.arg.vals[j].tag = num; - } - } - } - } - - return ONIG_NORMAL; -} - -extern int -onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num) -{ - RegexExt* ext = reg->extp; - - if (IS_NULL(ext) || IS_NULL(ext->callout_list)) return 0; - if (callout_num > ext->callout_num) return 0; - - return (ext->callout_list[callout_num].flag & - CALLOUT_TAG_LIST_FLAG_TAG_EXIST) != 0; -} - -static int -i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED) -{ - xfree(key); - return ST_DELETE; -} - -static int -callout_tag_table_clear(CalloutTagTable* t) -{ - if (IS_NOT_NULL(t)) { - onig_st_foreach(t, i_free_callout_tag_entry, 0); - } - return 0; -} - -extern int -onig_callout_tag_table_free(void* table) -{ - CalloutTagTable* t = (CalloutTagTable* )table; - - if (IS_NOT_NULL(t)) { - int r = callout_tag_table_clear(t); - if (r != 0) return r; - - onig_st_free_table(t); - } - - return 0; -} - -extern int -onig_get_callout_num_by_tag(regex_t* reg, - const UChar* tag, const UChar* tag_end) -{ - int r; - RegexExt* ext; - CalloutTagVal e; - - ext = reg->extp; - if (IS_NULL(ext) || IS_NULL(ext->tag_table)) - return ONIGERR_INVALID_CALLOUT_TAG_NAME; - - r = onig_st_lookup_strend(ext->tag_table, tag, tag_end, - (HashDataType* )((void* )(&e))); - if (r == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME; - return (int )e; -} - -static CalloutTagVal -callout_tag_find(CalloutTagTable* t, const UChar* name, const UChar* name_end) -{ - CalloutTagVal e; - - e = -1; - if (IS_NOT_NULL(t)) { - onig_st_lookup_strend(t, name, name_end, (HashDataType* )((void* )(&e))); - } - return e; -} - -static int -callout_tag_table_new(CalloutTagTable** rt) -{ - CalloutTagTable* t; - - *rt = 0; - t = onig_st_init_strend_table_with_size(INIT_TAG_NAMES_ALLOC_NUM); - CHECK_NULL_RETURN_MEMERR(t); - - *rt = t; - return ONIG_NORMAL; -} - -static int -callout_tag_entry_raw(ScanEnv* env, CalloutTagTable* t, UChar* name, - UChar* name_end, CalloutTagVal entry_val) -{ - int r; - CalloutTagVal val; - - if (name_end - name <= 0) - return ONIGERR_INVALID_CALLOUT_TAG_NAME; - - val = callout_tag_find(t, name, name_end); - if (val >= 0) { - onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINED_NAME, - name, name_end); - return ONIGERR_MULTIPLEX_DEFINED_NAME; - } - - r = onig_st_insert_strend(t, name, name_end, (HashDataType )entry_val); - if (r < 0) return r; - - return ONIG_NORMAL; -} - -static int -ext_ensure_tag_table(regex_t* reg) -{ - int r; - RegexExt* ext; - CalloutTagTable* t; - - ext = onig_get_regex_ext(reg); - CHECK_NULL_RETURN_MEMERR(ext); - - if (IS_NULL(ext->tag_table)) { - r = callout_tag_table_new(&t); - if (r != ONIG_NORMAL) return r; - - ext->tag_table = t; - } - - return ONIG_NORMAL; -} - -static int -callout_tag_entry(ScanEnv* env, regex_t* reg, UChar* name, UChar* name_end, - CalloutTagVal entry_val) -{ - int r; - RegexExt* ext; - CalloutListEntry* e; - - r = ext_ensure_tag_table(reg); - if (r != ONIG_NORMAL) return r; - - ext = onig_get_regex_ext(reg); - CHECK_NULL_RETURN_MEMERR(ext); - CHECK_NULL_RETURN_MEMERR(ext->tag_table); - r = callout_tag_entry_raw(env, ext->tag_table, name, name_end, entry_val); - - e = onig_reg_callout_list_at(reg, (int )entry_val); - CHECK_NULL_RETURN_MEMERR(e); - e->tag_start = name; - e->tag_end = name_end; - - return r; -} - -#endif /* USE_CALLOUT */ - - -#define INIT_SCANENV_MEMENV_ALLOC_SIZE 16 - -static void -scan_env_clear(ScanEnv* env) -{ - MEM_STATUS_CLEAR(env->capture_history); - MEM_STATUS_CLEAR(env->bt_mem_start); - MEM_STATUS_CLEAR(env->bt_mem_end); - MEM_STATUS_CLEAR(env->backrefed_mem); - env->error = (UChar* )NULL; - env->error_end = (UChar* )NULL; - env->num_call = 0; - -#ifdef USE_CALL - env->unset_addr_list = NULL; - env->has_call_zero = 0; -#endif - - env->num_mem = 0; - env->num_named = 0; - env->mem_alloc = 0; - env->mem_env_dynamic = (MemEnv* )NULL; - - xmemset(env->mem_env_static, 0, sizeof(env->mem_env_static)); - - env->parse_depth = 0; - env->keep_num = 0; - env->save_num = 0; - env->save_alloc_num = 0; - env->saves = 0; -} - -static int -scan_env_add_mem_entry(ScanEnv* env) -{ - int i, need, alloc; - MemEnv* p; - - need = env->num_mem + 1; - if (need > MaxCaptureNum && MaxCaptureNum != 0) - return ONIGERR_TOO_MANY_CAPTURES; - - if (need >= SCANENV_MEMENV_SIZE) { - if (env->mem_alloc <= need) { - if (IS_NULL(env->mem_env_dynamic)) { - alloc = INIT_SCANENV_MEMENV_ALLOC_SIZE; - p = (MemEnv* )xmalloc(sizeof(MemEnv) * alloc); - CHECK_NULL_RETURN_MEMERR(p); - xmemcpy(p, env->mem_env_static, sizeof(env->mem_env_static)); - } - else { - alloc = env->mem_alloc * 2; - p = (MemEnv* )xrealloc(env->mem_env_dynamic, sizeof(MemEnv) * alloc, sizeof(MemEnv)*env->mem_alloc); - CHECK_NULL_RETURN_MEMERR(p); - } - - for (i = env->num_mem + 1; i < alloc; i++) { - p[i].node = NULL_NODE; -#if 0 - p[i].in = 0; - p[i].recursion = 0; -#endif - } - - env->mem_env_dynamic = p; - env->mem_alloc = alloc; - } - } - - env->num_mem++; - return env->num_mem; -} - -static int -scan_env_set_mem_node(ScanEnv* env, int num, Node* node) -{ - if (env->num_mem >= num) - SCANENV_MEMENV(env)[num].node = node; - else - return ONIGERR_PARSER_BUG; - return 0; -} - -extern void -onig_node_free(Node* node) -{ - start: - if (IS_NULL(node)) return ; - -#ifdef DEBUG_NODE_FREE - fprintf(stderr, "onig_node_free: %p\n", node); -#endif - - switch (NODE_TYPE(node)) { - case NODE_STRING: - if (STR_(node)->capacity != 0 && - IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) { - xfree(STR_(node)->s); - } - break; - - case NODE_LIST: - case NODE_ALT: - onig_node_free(NODE_CAR(node)); - { - Node* next_node = NODE_CDR(node); - - xfree(node); - node = next_node; - goto start; - } - break; - - case NODE_CCLASS: - { - CClassNode* cc = CCLASS_(node); - - if (cc->mbuf) - bbuf_free(cc->mbuf); - } - break; - - case NODE_BACKREF: - if (IS_NOT_NULL(BACKREF_(node)->back_dynamic)) - xfree(BACKREF_(node)->back_dynamic); - break; - - case NODE_BAG: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); - - { - BagNode* en = BAG_(node); - if (en->type == BAG_IF_ELSE) { - onig_node_free(en->te.Then); - onig_node_free(en->te.Else); - } - } - break; - - case NODE_QUANT: - case NODE_ANCHOR: - if (NODE_BODY(node)) - onig_node_free(NODE_BODY(node)); - break; - - case NODE_CTYPE: - case NODE_CALL: - case NODE_GIMMICK: - break; - } - - xfree(node); -} - -static void -cons_node_free_alone(Node* node) -{ - NODE_CAR(node) = 0; - NODE_CDR(node) = 0; - onig_node_free(node); -} - -static Node* -node_new(void) -{ - Node* node; - - node = (Node* )xmalloc(sizeof(Node)); - CHECK_NULL_RETURN(node); - xmemset(node, 0, sizeof(*node)); - -#ifdef DEBUG_NODE_FREE - fprintf(stderr, "node_new: %p\n", node); -#endif - return node; -} - - -static void -initialize_cclass(CClassNode* cc) -{ - BITSET_CLEAR(cc->bs); - cc->flags = 0; - cc->mbuf = NULL; -} - -static Node* -node_new_cclass(void) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_CCLASS); - initialize_cclass(CCLASS_(node)); - return node; -} - -static Node* -node_new_ctype(int type, int not, OnigOptionType options) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_CTYPE); - CTYPE_(node)->ctype = type; - CTYPE_(node)->not = not; - CTYPE_(node)->options = options; - CTYPE_(node)->ascii_mode = IS_ASCII_MODE_CTYPE_OPTION(type, options); - return node; -} - -static Node* -node_new_anychar(void) -{ - Node* node = node_new_ctype(CTYPE_ANYCHAR, 0, ONIG_OPTION_NONE); - return node; -} - -static Node* -node_new_anychar_with_fixed_option(OnigOptionType option) -{ - CtypeNode* ct; - Node* node; - - node = node_new_anychar(); - CHECK_NULL_RETURN(node); - - ct = CTYPE_(node); - ct->options = option; - NODE_STATUS_ADD(node, FIXED_OPTION); - return node; -} - -static int -node_new_no_newline(Node** node, ScanEnv* env) -{ - Node* n; - - n = node_new_anychar_with_fixed_option(ONIG_OPTION_NONE); - CHECK_NULL_RETURN_MEMERR(n); - *node = n; - return 0; -} - -static int -node_new_true_anychar(Node** node, ScanEnv* env) -{ - Node* n; - - n = node_new_anychar_with_fixed_option(ONIG_OPTION_MULTILINE); - CHECK_NULL_RETURN_MEMERR(n); - *node = n; - return 0; -} - -static Node* -node_new_list(Node* left, Node* right) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_LIST); - NODE_CAR(node) = left; - NODE_CDR(node) = right; - return node; -} - -extern Node* -onig_node_new_list(Node* left, Node* right) -{ - return node_new_list(left, right); -} - -extern Node* -onig_node_list_add(Node* list, Node* x) -{ - Node *n; - - n = onig_node_new_list(x, NULL); - if (IS_NULL(n)) return NULL_NODE; - - if (IS_NOT_NULL(list)) { - while (IS_NOT_NULL(NODE_CDR(list))) - list = NODE_CDR(list); - - NODE_CDR(list) = n; - } - - return n; -} - -extern Node* -onig_node_new_alt(Node* left, Node* right) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_ALT); - NODE_CAR(node) = left; - NODE_CDR(node) = right; - return node; -} - -static Node* -make_list_or_alt(NodeType type, int n, Node* ns[]) -{ - Node* r; - - if (n <= 0) return NULL_NODE; - - if (n == 1) { - r = node_new(); - CHECK_NULL_RETURN(r); - NODE_SET_TYPE(r, type); - NODE_CAR(r) = ns[0]; - NODE_CDR(r) = NULL_NODE; - } - else { - Node* right; - - r = node_new(); - CHECK_NULL_RETURN(r); - - right = make_list_or_alt(type, n - 1, ns + 1); - if (IS_NULL(right)) { - onig_node_free(r); - return NULL_NODE; - } - - NODE_SET_TYPE(r, type); - NODE_CAR(r) = ns[0]; - NODE_CDR(r) = right; - } - - return r; -} - -static Node* -make_list(int n, Node* ns[]) -{ - return make_list_or_alt(NODE_LIST, n, ns); -} - -static Node* -make_alt(int n, Node* ns[]) -{ - return make_list_or_alt(NODE_ALT, n, ns); -} - -extern Node* -onig_node_new_anchor(int type, int ascii_mode) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_ANCHOR); - ANCHOR_(node)->type = type; - ANCHOR_(node)->char_len = -1; - ANCHOR_(node)->ascii_mode = ascii_mode; - return node; -} - -static Node* -node_new_backref(int back_num, int* backrefs, int by_name, -#ifdef USE_BACKREF_WITH_LEVEL - int exist_level, int nest_level, -#endif - ScanEnv* env) -{ - int i; - Node* node = node_new(); - - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_BACKREF); - BACKREF_(node)->back_num = back_num; - BACKREF_(node)->back_dynamic = (int* )NULL; - if (by_name != 0) - NODE_STATUS_ADD(node, BY_NAME); - -#ifdef USE_BACKREF_WITH_LEVEL - if (exist_level != 0) { - NODE_STATUS_ADD(node, NEST_LEVEL); - BACKREF_(node)->nest_level = nest_level; - } -#endif - - for (i = 0; i < back_num; i++) { - if (backrefs[i] <= env->num_mem && - IS_NULL(SCANENV_MEMENV(env)[backrefs[i]].node)) { - NODE_STATUS_ADD(node, RECURSION); /* /...(\1).../ */ - break; - } - } - - if (back_num <= NODE_BACKREFS_SIZE) { - for (i = 0; i < back_num; i++) - BACKREF_(node)->back_static[i] = backrefs[i]; - } - else { - int* p = (int* )xmalloc(sizeof(int) * back_num); - if (IS_NULL(p)) { - onig_node_free(node); - return NULL; - } - BACKREF_(node)->back_dynamic = p; - for (i = 0; i < back_num; i++) - p[i] = backrefs[i]; - } - return node; -} - -static Node* -node_new_backref_checker(int back_num, int* backrefs, int by_name, -#ifdef USE_BACKREF_WITH_LEVEL - int exist_level, int nest_level, -#endif - ScanEnv* env) -{ - Node* node; - - node = node_new_backref(back_num, backrefs, by_name, -#ifdef USE_BACKREF_WITH_LEVEL - exist_level, nest_level, -#endif - env); - CHECK_NULL_RETURN(node); - - NODE_STATUS_ADD(node, CHECKER); - return node; -} - -#ifdef USE_CALL -static Node* -node_new_call(UChar* name, UChar* name_end, int gnum, int by_number) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_CALL); - CALL_(node)->by_number = by_number; - CALL_(node)->name = name; - CALL_(node)->name_end = name_end; - CALL_(node)->group_num = gnum; - CALL_(node)->entry_count = 1; - return node; -} -#endif - -static Node* -node_new_quantifier(int lower, int upper, int by_number) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_QUANT); - QUANT_(node)->lower = lower; - QUANT_(node)->upper = upper; - QUANT_(node)->greedy = 1; - QUANT_(node)->emptiness = BODY_IS_NOT_EMPTY; - QUANT_(node)->head_exact = NULL_NODE; - QUANT_(node)->next_head_exact = NULL_NODE; - QUANT_(node)->is_refered = 0; - if (by_number != 0) - NODE_STATUS_ADD(node, BY_NUMBER); - - return node; -} - -static Node* -node_new_bag(enum BagType type) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_BAG); - BAG_(node)->type = type; - - switch (type) { - case BAG_MEMORY: - BAG_(node)->m.regnum = 0; - BAG_(node)->m.called_addr = -1; - BAG_(node)->m.entry_count = 1; - BAG_(node)->m.called_state = 0; - break; - - case BAG_OPTION: - BAG_(node)->o.options = 0; - break; - - case BAG_STOP_BACKTRACK: - break; - - case BAG_IF_ELSE: - BAG_(node)->te.Then = 0; - BAG_(node)->te.Else = 0; - break; - } - - BAG_(node)->opt_count = 0; - return node; -} - -extern Node* -onig_node_new_bag(enum BagType type) -{ - return node_new_bag(type); -} - -static Node* -node_new_bag_if_else(Node* cond, Node* Then, Node* Else) -{ - Node* n; - n = node_new_bag(BAG_IF_ELSE); - CHECK_NULL_RETURN(n); - - NODE_BODY(n) = cond; - BAG_(n)->te.Then = Then; - BAG_(n)->te.Else = Else; - return n; -} - -static Node* -node_new_memory(int is_named) -{ - Node* node = node_new_bag(BAG_MEMORY); - CHECK_NULL_RETURN(node); - if (is_named != 0) - NODE_STATUS_ADD(node, NAMED_GROUP); - - return node; -} - -static Node* -node_new_option(OnigOptionType option) -{ - Node* node = node_new_bag(BAG_OPTION); - CHECK_NULL_RETURN(node); - BAG_(node)->o.options = option; - return node; -} - -static Node* -node_new_group(Node* content) -{ - Node* node; - - node = node_new(); - CHECK_NULL_RETURN(node); - NODE_SET_TYPE(node, NODE_LIST); - NODE_CAR(node) = content; - NODE_CDR(node) = NULL_NODE; - - return node; -} - -static Node* -node_drop_group(Node* group) -{ - Node* content; - - content = NODE_CAR(group); - NODE_CAR(group) = NULL_NODE; - onig_node_free(group); - return content; -} - -static int -node_new_fail(Node** node, ScanEnv* env) -{ - *node = node_new(); - CHECK_NULL_RETURN_MEMERR(*node); - - NODE_SET_TYPE(*node, NODE_GIMMICK); - GIMMICK_(*node)->type = GIMMICK_FAIL; - return ONIG_NORMAL; -} - -static int -node_new_save_gimmick(Node** node, enum SaveType save_type, ScanEnv* env) -{ - int id; - int r; - - r = save_entry(env, save_type, &id); - if (r != ONIG_NORMAL) return r; - - *node = node_new(); - CHECK_NULL_RETURN_MEMERR(*node); - - NODE_SET_TYPE(*node, NODE_GIMMICK); - GIMMICK_(*node)->id = id; - GIMMICK_(*node)->type = GIMMICK_SAVE; - GIMMICK_(*node)->detail_type = (int )save_type; - - return ONIG_NORMAL; -} - -static int -node_new_update_var_gimmick(Node** node, enum UpdateVarType update_var_type, - int id, ScanEnv* env) -{ - *node = node_new(); - CHECK_NULL_RETURN_MEMERR(*node); - - NODE_SET_TYPE(*node, NODE_GIMMICK); - GIMMICK_(*node)->id = id; - GIMMICK_(*node)->type = GIMMICK_UPDATE_VAR; - GIMMICK_(*node)->detail_type = (int )update_var_type; - - return ONIG_NORMAL; -} - -static int -node_new_keep(Node** node, ScanEnv* env) -{ - int r; - - r = node_new_save_gimmick(node, SAVE_KEEP, env); - if (r != 0) return r; - - env->keep_num++; - return ONIG_NORMAL; -} - -#ifdef USE_CALLOUT - -extern void -onig_free_reg_callout_list(int n, CalloutListEntry* list) -{ - int i; - int j; - - if (IS_NULL(list)) return ; - - for (i = 0; i < n; i++) { - if (list[i].of == ONIG_CALLOUT_OF_NAME) { - for (j = 0; j < list[i].u.arg.passed_num; j++) { - if (list[i].u.arg.types[j] == ONIG_TYPE_STRING) { - if (IS_NOT_NULL(list[i].u.arg.vals[j].s.start)) - xfree(list[i].u.arg.vals[j].s.start); - } - } - } - else { /* ONIG_CALLOUT_OF_CONTENTS */ - if (IS_NOT_NULL(list[i].u.content.start)) { - xfree((void* )list[i].u.content.start); - } - } - } - - xfree(list); -} - -extern CalloutListEntry* -onig_reg_callout_list_at(regex_t* reg, int num) -{ - RegexExt* ext = reg->extp; - CHECK_NULL_RETURN(ext); - - if (num <= 0 || num > ext->callout_num) - return 0; - - num--; - return ext->callout_list + num; -} - -static int -reg_callout_list_entry(ScanEnv* env, int* rnum) -{ -#define INIT_CALLOUT_LIST_NUM 3 - - int num; - CalloutListEntry* list; - CalloutListEntry* e; - RegexExt* ext; - - ext = onig_get_regex_ext(env->reg); - CHECK_NULL_RETURN_MEMERR(ext); - - if (IS_NULL(ext->callout_list)) { - list = (CalloutListEntry* )xmalloc(sizeof(*list) * INIT_CALLOUT_LIST_NUM); - CHECK_NULL_RETURN_MEMERR(list); - - ext->callout_list = list; - ext->callout_list_alloc = INIT_CALLOUT_LIST_NUM; - ext->callout_num = 0; - } - - num = ext->callout_num + 1; - if (num > ext->callout_list_alloc) { - int alloc = ext->callout_list_alloc * 2; - list = (CalloutListEntry* )xrealloc(ext->callout_list, - sizeof(CalloutListEntry) * alloc, - sizeof(CalloutListEntry) * ext->callout_list_alloc); - CHECK_NULL_RETURN_MEMERR(list); - - ext->callout_list = list; - ext->callout_list_alloc = alloc; - } - - e = ext->callout_list + (num - 1); - - e->flag = 0; - e->of = 0; - e->in = ONIG_CALLOUT_OF_CONTENTS; - e->type = 0; - e->tag_start = 0; - e->tag_end = 0; - e->start_func = 0; - e->end_func = 0; - e->u.arg.num = 0; - e->u.arg.passed_num = 0; - - ext->callout_num = num; - *rnum = num; - return ONIG_NORMAL; -} - -static int -node_new_callout(Node** node, OnigCalloutOf callout_of, int num, int id, - ScanEnv* env) -{ - *node = node_new(); - CHECK_NULL_RETURN_MEMERR(*node); - - NODE_SET_TYPE(*node, NODE_GIMMICK); - GIMMICK_(*node)->id = id; - GIMMICK_(*node)->num = num; - GIMMICK_(*node)->type = GIMMICK_CALLOUT; - GIMMICK_(*node)->detail_type = (int )callout_of; - - return ONIG_NORMAL; -} -#endif - -static int -make_text_segment(Node** node, ScanEnv* env) -{ - int r; - int i; - Node* x; - Node* ns[2]; - - /* \X == (?>\O(?:\Y\O)*) */ - - ns[1] = NULL_NODE; - - r = ONIGERR_MEMORY; - ns[0] = onig_node_new_anchor(ANCR_NO_TEXT_SEGMENT_BOUNDARY, 0); - if (IS_NULL(ns[0])) goto err; - - r = node_new_true_anychar(&ns[1], env); - if (r != 0) goto err1; - - x = make_list(2, ns); - if (IS_NULL(x)) goto err; - ns[0] = x; - ns[1] = NULL_NODE; - - x = node_new_quantifier(0, INFINITE_REPEAT, 1); - if (IS_NULL(x)) goto err; - - NODE_BODY(x) = ns[0]; - ns[0] = NULL_NODE; - ns[1] = x; - - r = node_new_true_anychar(&ns[0], env); - if (r != 0) goto err1; - - x = make_list(2, ns); - if (IS_NULL(x)) goto err; - - ns[0] = x; - ns[1] = NULL_NODE; - - x = node_new_bag(BAG_STOP_BACKTRACK); - if (IS_NULL(x)) goto err; - - NODE_BODY(x) = ns[0]; - - *node = x; - return ONIG_NORMAL; - - err: - r = ONIGERR_MEMORY; - err1: - for (i = 0; i < 2; i++) onig_node_free(ns[i]); - return r; -} - -static int -make_absent_engine(Node** node, int pre_save_right_id, Node* absent, - Node* step_one, int lower, int upper, int possessive, - int is_range_cutter, ScanEnv* env) -{ - int r; - int i; - int id; - Node* x; - Node* ns[4]; - - for (i = 0; i < 4; i++) ns[i] = NULL_NODE; - - ns[1] = absent; - ns[3] = step_one; /* for err */ - r = node_new_save_gimmick(&ns[0], SAVE_S, env); - if (r != 0) goto err; - - id = GIMMICK_(ns[0])->id; - r = node_new_update_var_gimmick(&ns[2], UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK, - id, env); - if (r != 0) goto err; - - r = node_new_fail(&ns[3], env); - if (r != 0) goto err; - - x = make_list(4, ns); - if (IS_NULL(x)) goto err0; - - ns[0] = x; - ns[1] = step_one; - ns[2] = ns[3] = NULL_NODE; - - x = make_alt(2, ns); - if (IS_NULL(x)) goto err0; - - ns[0] = x; - - x = node_new_quantifier(lower, upper, 0); - if (IS_NULL(x)) goto err0; - - NODE_BODY(x) = ns[0]; - ns[0] = x; - - if (possessive != 0) { - x = node_new_bag(BAG_STOP_BACKTRACK); - if (IS_NULL(x)) goto err0; - - NODE_BODY(x) = ns[0]; - ns[0] = x; - } - - r = node_new_update_var_gimmick(&ns[1], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, - pre_save_right_id, env); - if (r != 0) goto err; - - r = node_new_fail(&ns[2], env); - if (r != 0) goto err; - - x = make_list(2, ns + 1); - if (IS_NULL(x)) goto err0; - - ns[1] = x; ns[2] = NULL_NODE; - - x = make_alt(2, ns); - if (IS_NULL(x)) goto err0; - - if (is_range_cutter != 0) - NODE_STATUS_ADD(x, SUPER); - - *node = x; - return ONIG_NORMAL; - - err0: - r = ONIGERR_MEMORY; - err: - for (i = 0; i < 4; i++) onig_node_free(ns[i]); - return r; -} - -static int -make_absent_tail(Node** node1, Node** node2, int pre_save_right_id, - ScanEnv* env) -{ - int r; - int id; - Node* save; - Node* x; - Node* ns[2]; - - *node1 = *node2 = NULL_NODE; - save = ns[0] = ns[1] = NULL_NODE; - - r = node_new_save_gimmick(&save, SAVE_RIGHT_RANGE, env); - if (r != 0) goto err; - - id = GIMMICK_(save)->id; - r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, - id, env); - if (r != 0) goto err; - - r = node_new_fail(&ns[1], env); - if (r != 0) goto err; - - x = make_list(2, ns); - if (IS_NULL(x)) goto err0; - - ns[0] = NULL_NODE; ns[1] = x; - - r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, - pre_save_right_id, env); - if (r != 0) goto err; - - x = make_alt(2, ns); - if (IS_NULL(x)) goto err0; - - *node1 = save; - *node2 = x; - return ONIG_NORMAL; - - err0: - r = ONIGERR_MEMORY; - err: - onig_node_free(save); - onig_node_free(ns[0]); - onig_node_free(ns[1]); - return r; -} - -static int -make_range_clear(Node** node, ScanEnv* env) -{ - int r; - int id; - Node* save; - Node* x; - Node* ns[2]; - - *node = NULL_NODE; - save = ns[0] = ns[1] = NULL_NODE; - - r = node_new_save_gimmick(&save, SAVE_RIGHT_RANGE, env); - if (r != 0) goto err; - - id = GIMMICK_(save)->id; - r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, - id, env); - if (r != 0) goto err; - - r = node_new_fail(&ns[1], env); - if (r != 0) goto err; - - x = make_list(2, ns); - if (IS_NULL(x)) goto err0; - - ns[0] = NULL_NODE; ns[1] = x; - - r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_INIT, 0, env); - if (r != 0) goto err; - - x = make_alt(2, ns); - if (IS_NULL(x)) goto err0; - - NODE_STATUS_ADD(x, SUPER); - - ns[0] = save; - ns[1] = x; - save = NULL_NODE; - x = make_list(2, ns); - if (IS_NULL(x)) goto err0; - - *node = x; - return ONIG_NORMAL; - - err0: - r = ONIGERR_MEMORY; - err: - onig_node_free(save); - onig_node_free(ns[0]); - onig_node_free(ns[1]); - return r; -} - -static int -is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody, - int* is_possessive, ScanEnv* env) -{ - Node* quant; - Node* body; - - *rquant = *rbody = 0; - *is_possessive = 0; - - if (NODE_TYPE(node) == NODE_QUANT) { - quant = node; - } - else { - if (NODE_TYPE(node) == NODE_BAG) { - BagNode* en = BAG_(node); - if (en->type == BAG_STOP_BACKTRACK) { - *is_possessive = 1; - quant = NODE_BAG_BODY(en); - if (NODE_TYPE(quant) != NODE_QUANT) - return 0; - } - else - return 0; - } - else - return 0; - } - - if (QUANT_(quant)->greedy == 0) - return 0; - - body = NODE_BODY(quant); - switch (NODE_TYPE(body)) { - case NODE_STRING: - { - int len; - StrNode* sn = STR_(body); - UChar *s = sn->s; - - len = 0; - while (s < sn->end) { - s += enclen(env->enc, s); - len++; - } - if (len != 1) - return 0; - } - - case NODE_CCLASS: - break; - - default: - return 0; - break; - } - - if (node != quant) { - NODE_BODY(node) = 0; - onig_node_free(node); - } - NODE_BODY(quant) = NULL_NODE; - *rquant = quant; - *rbody = body; - return 1; -} - -static int -make_absent_tree_for_simple_one_char_repeat(Node** node, Node* absent, Node* quant, - Node* body, int possessive, ScanEnv* env) -{ - int r; - int i; - int id1; - int lower, upper; - Node* x; - Node* ns[4]; - - *node = NULL_NODE; - r = ONIGERR_MEMORY; - ns[0] = ns[1] = NULL_NODE; - ns[2] = body, ns[3] = absent; - - lower = QUANT_(quant)->lower; - upper = QUANT_(quant)->upper; - onig_node_free(quant); - - r = node_new_save_gimmick(&ns[0], SAVE_RIGHT_RANGE, env); - if (r != 0) goto err; - - id1 = GIMMICK_(ns[0])->id; - - r = make_absent_engine(&ns[1], id1, absent, body, lower, upper, possessive, - 0, env); - if (r != 0) goto err; - - ns[2] = ns[3] = NULL_NODE; - - r = node_new_update_var_gimmick(&ns[2], UPDATE_VAR_RIGHT_RANGE_FROM_STACK, - id1, env); - if (r != 0) goto err; - - x = make_list(3, ns); - if (IS_NULL(x)) goto err0; - - *node = x; - return ONIG_NORMAL; - - err0: - r = ONIGERR_MEMORY; - err: - for (i = 0; i < 4; i++) onig_node_free(ns[i]); - return r; -} - -static int -make_absent_tree(Node** node, Node* absent, Node* expr, int is_range_cutter, - ScanEnv* env) -{ - int r; - int i; - int id1, id2; - int possessive; - Node* x; - Node* ns[7]; - - r = ONIGERR_MEMORY; - for (i = 0; i < 7; i++) ns[i] = NULL_NODE; - ns[4] = expr; ns[5] = absent; - - if (is_range_cutter == 0) { - Node* quant; - Node* body; - - if (expr == NULL_NODE) { - /* default expr \O* */ - quant = node_new_quantifier(0, INFINITE_REPEAT, 0); - if (IS_NULL(quant)) goto err0; - - r = node_new_true_anychar(&body, env); - if (r != 0) { - onig_node_free(quant); - goto err; - } - possessive = 0; - goto simple; - } - else { - if (is_simple_one_char_repeat(expr, &quant, &body, &possessive, env)) { - simple: - r = make_absent_tree_for_simple_one_char_repeat(node, absent, quant, - body, possessive, env); - if (r != 0) { - ns[4] = NULL_NODE; - onig_node_free(quant); - onig_node_free(body); - goto err; - } - - return ONIG_NORMAL; - } - } - } - - r = node_new_save_gimmick(&ns[0], SAVE_RIGHT_RANGE, env); - if (r != 0) goto err; - - id1 = GIMMICK_(ns[0])->id; - - r = node_new_save_gimmick(&ns[1], SAVE_S, env); - if (r != 0) goto err; - - id2 = GIMMICK_(ns[1])->id; - - r = node_new_true_anychar(&ns[3], env); - if (r != 0) goto err; - - possessive = 1; - r = make_absent_engine(&ns[2], id1, absent, ns[3], 0, INFINITE_REPEAT, - possessive, is_range_cutter, env); - if (r != 0) goto err; - - ns[3] = NULL_NODE; - ns[5] = NULL_NODE; - - r = node_new_update_var_gimmick(&ns[3], UPDATE_VAR_S_FROM_STACK, id2, env); - if (r != 0) goto err; - - if (is_range_cutter != 0) { - x = make_list(4, ns); - if (IS_NULL(x)) goto err0; - } - else { - r = make_absent_tail(&ns[5], &ns[6], id1, env); - if (r != 0) goto err; - - x = make_list(7, ns); - if (IS_NULL(x)) goto err0; - } - - *node = x; - return ONIG_NORMAL; - - err0: - r = ONIGERR_MEMORY; - err: - for (i = 0; i < 7; i++) onig_node_free(ns[i]); - return r; -} - -extern int -onig_node_str_cat(Node* node, const UChar* s, const UChar* end) -{ - int addlen = (int )(end - s); - - if (addlen > 0) { - int len = (int )(STR_(node)->end - STR_(node)->s); - - if (STR_(node)->capacity > 0 || (len + addlen > NODE_STRING_BUF_SIZE - 1)) { - UChar* p; - int capa = len + addlen + NODE_STRING_MARGIN; - - if (capa <= STR_(node)->capacity) { - onig_strcpy(STR_(node)->s + len, s, end); - } - else { - if (STR_(node)->s == STR_(node)->buf) - p = strcat_capa_from_static(STR_(node)->s, STR_(node)->end, - s, end, capa); - else - p = strcat_capa(STR_(node)->s, STR_(node)->end, s, end, capa, STR_(node)->capacity); - - CHECK_NULL_RETURN_MEMERR(p); - STR_(node)->s = p; - STR_(node)->capacity = capa; - } - } - else { - onig_strcpy(STR_(node)->s + len, s, end); - } - STR_(node)->end = STR_(node)->s + len + addlen; - } - - return 0; -} - -extern int -onig_node_str_set(Node* node, const UChar* s, const UChar* end) -{ - onig_node_str_clear(node); - return onig_node_str_cat(node, s, end); -} - -static int -node_str_cat_char(Node* node, UChar c) -{ - UChar s[1]; - - s[0] = c; - return onig_node_str_cat(node, s, s + 1); -} - -extern void -onig_node_conv_to_str_node(Node* node, int flag) -{ - NODE_SET_TYPE(node, NODE_STRING); - STR_(node)->flag = flag; - STR_(node)->capacity = 0; - STR_(node)->s = STR_(node)->buf; - STR_(node)->end = STR_(node)->buf; -} - -extern void -onig_node_str_clear(Node* node) -{ - if (STR_(node)->capacity != 0 && - IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) { - xfree(STR_(node)->s); - } - - STR_(node)->capacity = 0; - STR_(node)->flag = 0; - STR_(node)->s = STR_(node)->buf; - STR_(node)->end = STR_(node)->buf; -} - -static Node* -node_new_str(const UChar* s, const UChar* end) -{ - Node* node = node_new(); - CHECK_NULL_RETURN(node); - - NODE_SET_TYPE(node, NODE_STRING); - STR_(node)->capacity = 0; - STR_(node)->flag = 0; - STR_(node)->s = STR_(node)->buf; - STR_(node)->end = STR_(node)->buf; - if (onig_node_str_cat(node, s, end)) { - onig_node_free(node); - return NULL; - } - return node; -} - -extern Node* -onig_node_new_str(const UChar* s, const UChar* end) -{ - return node_new_str(s, end); -} - -static Node* -node_new_str_raw(UChar* s, UChar* end) -{ - Node* node = node_new_str(s, end); - CHECK_NULL_RETURN(node); - NODE_STRING_SET_RAW(node); - return node; -} - -static Node* -node_new_empty(void) -{ - return node_new_str(NULL, NULL); -} - -static Node* -node_new_str_raw_char(UChar c) -{ - int i; - UChar p[1]; - Node* node; - - p[0] = c; - node = node_new_str_raw(p, p + 1); - CHECK_NULL_RETURN(node); - - /* clear buf tail */ - for (i = 1; i < NODE_STRING_BUF_SIZE; i++) - STR_(node)->buf[i] = '\0'; - - return node; -} - -static Node* -str_node_split_last_char(Node* node, OnigEncoding enc) -{ - const UChar *p; - Node* rn; - StrNode* sn; - - sn = STR_(node); - rn = NULL_NODE; - if (sn->end > sn->s) { - p = onigenc_get_prev_char_head(enc, sn->s, sn->end); - if (p && p > sn->s) { /* can be split. */ - rn = node_new_str(p, sn->end); - CHECK_NULL_RETURN(rn); - if (NODE_STRING_IS_RAW(node)) - NODE_STRING_SET_RAW(rn); - - sn->end = (UChar* )p; - } - } - return rn; -} - -static int -str_node_can_be_split(Node* node, OnigEncoding enc) -{ - StrNode* sn = STR_(node); - if (sn->end > sn->s) { - return ((enclen(enc, sn->s) < sn->end - sn->s) ? 1 : 0); - } - return 0; -} - -extern int -onig_scan_unsigned_number(UChar** src, const UChar* end, OnigEncoding enc) -{ - unsigned int num, val; - OnigCodePoint c; - UChar* p = *src; - PFETCH_READY; - - num = 0; - while (! PEND) { - PFETCH(c); - if (IS_CODE_DIGIT_ASCII(enc, c)) { - val = (unsigned int )DIGITVAL(c); - if ((INT_MAX_LIMIT - val) / 10UL < num) - return -1; /* overflow */ - - num = num * 10 + val; - } - else { - PUNFETCH; - break; - } - } - *src = p; - return num; -} - -static int -scan_unsigned_hexadecimal_number(UChar** src, UChar* end, int minlen, - int maxlen, OnigEncoding enc) -{ - OnigCodePoint c; - unsigned int num, val; - int n; - UChar* p = *src; - PFETCH_READY; - - num = 0; - n = 0; - while (! PEND && n < maxlen) { - PFETCH(c); - if (IS_CODE_XDIGIT_ASCII(enc, c)) { - n++; - val = (unsigned int )XDIGITVAL(enc,c); - if ((INT_MAX_LIMIT - val) / 16UL < num) - return ONIGERR_TOO_BIG_NUMBER; /* overflow */ - - num = (num << 4) + XDIGITVAL(enc,c); - } - else { - PUNFETCH; - break; - } - } - - if (n < minlen) - return ONIGERR_INVALID_CODE_POINT_VALUE; - - *src = p; - return num; -} - -static int -scan_unsigned_octal_number(UChar** src, UChar* end, int maxlen, - OnigEncoding enc) -{ - OnigCodePoint c; - unsigned int num, val; - UChar* p = *src; - PFETCH_READY; - - num = 0; - while (! PEND && maxlen-- != 0) { - PFETCH(c); - if (IS_CODE_DIGIT_ASCII(enc, c) && c < '8') { - val = ODIGITVAL(c); - if ((INT_MAX_LIMIT - val) / 8UL < num) - return -1; /* overflow */ - - num = (num << 3) + val; - } - else { - PUNFETCH; - break; - } - } - *src = p; - return num; -} - - -#define BB_WRITE_CODE_POINT(bbuf,pos,code) \ - BB_WRITE(bbuf, pos, &(code), SIZE_CODE_POINT) - -/* data format: - [n][from-1][to-1][from-2][to-2] ... [from-n][to-n] - (all data size is OnigCodePoint) - */ -static int -new_code_range(BBuf** pbuf) -{ -#define INIT_MULTI_BYTE_RANGE_SIZE (SIZE_CODE_POINT * 5) - int r; - OnigCodePoint n; - BBuf* bbuf; - - bbuf = *pbuf = (BBuf* )xmalloc(sizeof(BBuf)); - CHECK_NULL_RETURN_MEMERR(bbuf); - r = BB_INIT(bbuf, INIT_MULTI_BYTE_RANGE_SIZE); - if (r != 0) { - xfree(bbuf); - *pbuf = 0; - return r; - } - - n = 0; - BB_WRITE_CODE_POINT(bbuf, 0, n); - return 0; -} - -static int -add_code_range_to_buf(BBuf** pbuf, OnigCodePoint from, OnigCodePoint to) -{ - int r, inc_n, pos; - int low, high, bound, x; - OnigCodePoint n, *data; - BBuf* bbuf; - - if (from > to) { - n = from; from = to; to = n; - } - - if (IS_NULL(*pbuf)) { - r = new_code_range(pbuf); - if (r != 0) return r; - bbuf = *pbuf; - n = 0; - } - else { - bbuf = *pbuf; - GET_CODE_POINT(n, bbuf->p); - } - data = (OnigCodePoint* )(bbuf->p); - data++; - - for (low = 0, bound = n; low < bound; ) { - x = (low + bound) >> 1; - if (from > data[x*2 + 1]) - low = x + 1; - else - bound = x; - } - - high = (to == ~((OnigCodePoint )0)) ? n : low; - for (bound = n; high < bound; ) { - x = (high + bound) >> 1; - if (to + 1 >= data[x*2]) - high = x + 1; - else - bound = x; - } - - inc_n = low + 1 - high; - if (n + inc_n > ONIG_MAX_MULTI_BYTE_RANGES_NUM) - return ONIGERR_TOO_MANY_MULTI_BYTE_RANGES; - - if (inc_n != 1) { - if (from > data[low*2]) - from = data[low*2]; - if (to < data[(high - 1)*2 + 1]) - to = data[(high - 1)*2 + 1]; - } - - if (inc_n != 0 && (OnigCodePoint )high < n) { - int from_pos = SIZE_CODE_POINT * (1 + high * 2); - int to_pos = SIZE_CODE_POINT * (1 + (low + 1) * 2); - int size = (n - high) * 2 * SIZE_CODE_POINT; - - if (inc_n > 0) { - BB_MOVE_RIGHT(bbuf, from_pos, to_pos, size); - } - else { - BB_MOVE_LEFT_REDUCE(bbuf, from_pos, to_pos); - } - } - - pos = SIZE_CODE_POINT * (1 + low * 2); - BB_ENSURE_SIZE(bbuf, pos + SIZE_CODE_POINT * 2); - BB_WRITE_CODE_POINT(bbuf, pos, from); - BB_WRITE_CODE_POINT(bbuf, pos + SIZE_CODE_POINT, to); - n += inc_n; - BB_WRITE_CODE_POINT(bbuf, 0, n); - - return 0; -} - -static int -add_code_range(BBuf** pbuf, ScanEnv* env, OnigCodePoint from, OnigCodePoint to) -{ - if (from > to) { - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC)) - return 0; - else - return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS; - } - - return add_code_range_to_buf(pbuf, from, to); -} - -static int -not_code_range_buf(OnigEncoding enc, BBuf* bbuf, BBuf** pbuf) -{ - int r, i, n; - OnigCodePoint pre, from, *data, to = 0; - - *pbuf = (BBuf* )NULL; - if (IS_NULL(bbuf)) { - set_all: - return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf); - } - - data = (OnigCodePoint* )(bbuf->p); - GET_CODE_POINT(n, data); - data++; - if (n <= 0) goto set_all; - - r = 0; - pre = MBCODE_START_POS(enc); - for (i = 0; i < n; i++) { - from = data[i*2]; - to = data[i*2+1]; - if (pre <= from - 1) { - r = add_code_range_to_buf(pbuf, pre, from - 1); - if (r != 0) return r; - } - if (to == ~((OnigCodePoint )0)) break; - pre = to + 1; - } - if (to < ~((OnigCodePoint )0)) { - r = add_code_range_to_buf(pbuf, to + 1, ~((OnigCodePoint )0)); - } - return r; -} - -#define SWAP_BB_NOT(bbuf1, not1, bbuf2, not2) do {\ - BBuf *tbuf; \ - int tnot; \ - tnot = not1; not1 = not2; not2 = tnot; \ - tbuf = bbuf1; bbuf1 = bbuf2; bbuf2 = tbuf; \ -} while (0) - -static int -or_code_range_buf(OnigEncoding enc, BBuf* bbuf1, int not1, - BBuf* bbuf2, int not2, BBuf** pbuf) -{ - int r; - OnigCodePoint i, n1, *data1; - OnigCodePoint from, to; - - *pbuf = (BBuf* )NULL; - if (IS_NULL(bbuf1) && IS_NULL(bbuf2)) { - if (not1 != 0 || not2 != 0) - return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf); - return 0; - } - - r = 0; - if (IS_NULL(bbuf2)) - SWAP_BB_NOT(bbuf1, not1, bbuf2, not2); - - if (IS_NULL(bbuf1)) { - if (not1 != 0) { - return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf); - } - else { - if (not2 == 0) { - return bbuf_clone(pbuf, bbuf2); - } - else { - return not_code_range_buf(enc, bbuf2, pbuf); - } - } - } - - if (not1 != 0) - SWAP_BB_NOT(bbuf1, not1, bbuf2, not2); - - data1 = (OnigCodePoint* )(bbuf1->p); - GET_CODE_POINT(n1, data1); - data1++; - - if (not2 == 0 && not1 == 0) { /* 1 OR 2 */ - r = bbuf_clone(pbuf, bbuf2); - } - else if (not1 == 0) { /* 1 OR (not 2) */ - r = not_code_range_buf(enc, bbuf2, pbuf); - } - if (r != 0) return r; - - for (i = 0; i < n1; i++) { - from = data1[i*2]; - to = data1[i*2+1]; - r = add_code_range_to_buf(pbuf, from, to); - if (r != 0) return r; - } - return 0; -} - -static int -and_code_range1(BBuf** pbuf, OnigCodePoint from1, OnigCodePoint to1, - OnigCodePoint* data, int n) -{ - int i, r; - OnigCodePoint from2, to2; - - for (i = 0; i < n; i++) { - from2 = data[i*2]; - to2 = data[i*2+1]; - if (from2 < from1) { - if (to2 < from1) continue; - else { - from1 = to2 + 1; - } - } - else if (from2 <= to1) { - if (to2 < to1) { - if (from1 <= from2 - 1) { - r = add_code_range_to_buf(pbuf, from1, from2-1); - if (r != 0) return r; - } - from1 = to2 + 1; - } - else { - to1 = from2 - 1; - } - } - else { - from1 = from2; - } - if (from1 > to1) break; - } - if (from1 <= to1) { - r = add_code_range_to_buf(pbuf, from1, to1); - if (r != 0) return r; - } - return 0; -} - -static int -and_code_range_buf(BBuf* bbuf1, int not1, BBuf* bbuf2, int not2, BBuf** pbuf) -{ - int r; - OnigCodePoint i, j, n1, n2, *data1, *data2; - OnigCodePoint from, to, from1, to1, from2, to2; - - *pbuf = (BBuf* )NULL; - if (IS_NULL(bbuf1)) { - if (not1 != 0 && IS_NOT_NULL(bbuf2)) /* not1 != 0 -> not2 == 0 */ - return bbuf_clone(pbuf, bbuf2); - return 0; - } - else if (IS_NULL(bbuf2)) { - if (not2 != 0) - return bbuf_clone(pbuf, bbuf1); - return 0; - } - - if (not1 != 0) - SWAP_BB_NOT(bbuf1, not1, bbuf2, not2); - - data1 = (OnigCodePoint* )(bbuf1->p); - data2 = (OnigCodePoint* )(bbuf2->p); - GET_CODE_POINT(n1, data1); - GET_CODE_POINT(n2, data2); - data1++; - data2++; - - if (not2 == 0 && not1 == 0) { /* 1 AND 2 */ - for (i = 0; i < n1; i++) { - from1 = data1[i*2]; - to1 = data1[i*2+1]; - for (j = 0; j < n2; j++) { - from2 = data2[j*2]; - to2 = data2[j*2+1]; - if (from2 > to1) break; - if (to2 < from1) continue; - from = MAX(from1, from2); - to = MIN(to1, to2); - r = add_code_range_to_buf(pbuf, from, to); - if (r != 0) return r; - } - } - } - else if (not1 == 0) { /* 1 AND (not 2) */ - for (i = 0; i < n1; i++) { - from1 = data1[i*2]; - to1 = data1[i*2+1]; - r = and_code_range1(pbuf, from1, to1, data2, n2); - if (r != 0) return r; - } - } - - return 0; -} - -static int -and_cclass(CClassNode* dest, CClassNode* cc, OnigEncoding enc) -{ - int r, not1, not2; - BBuf *buf1, *buf2, *pbuf; - BitSetRef bsr1, bsr2; - BitSet bs1, bs2; - - not1 = IS_NCCLASS_NOT(dest); - bsr1 = dest->bs; - buf1 = dest->mbuf; - not2 = IS_NCCLASS_NOT(cc); - bsr2 = cc->bs; - buf2 = cc->mbuf; - - if (not1 != 0) { - bitset_invert_to(bsr1, bs1); - bsr1 = bs1; - } - if (not2 != 0) { - bitset_invert_to(bsr2, bs2); - bsr2 = bs2; - } - bitset_and(bsr1, bsr2); - if (bsr1 != dest->bs) { - bitset_copy(dest->bs, bsr1); - } - if (not1 != 0) { - bitset_invert(dest->bs); - } - - if (! ONIGENC_IS_SINGLEBYTE(enc)) { - if (not1 != 0 && not2 != 0) { - r = or_code_range_buf(enc, buf1, 0, buf2, 0, &pbuf); - } - else { - r = and_code_range_buf(buf1, not1, buf2, not2, &pbuf); - if (r == 0 && not1 != 0) { - BBuf *tbuf; - r = not_code_range_buf(enc, pbuf, &tbuf); - if (r != 0) { - bbuf_free(pbuf); - return r; - } - bbuf_free(pbuf); - pbuf = tbuf; - } - } - if (r != 0) return r; - - dest->mbuf = pbuf; - bbuf_free(buf1); - return r; - } - return 0; -} - -static int -or_cclass(CClassNode* dest, CClassNode* cc, OnigEncoding enc) -{ - int r, not1, not2; - BBuf *buf1, *buf2, *pbuf; - BitSetRef bsr1, bsr2; - BitSet bs1, bs2; - - not1 = IS_NCCLASS_NOT(dest); - bsr1 = dest->bs; - buf1 = dest->mbuf; - not2 = IS_NCCLASS_NOT(cc); - bsr2 = cc->bs; - buf2 = cc->mbuf; - - if (not1 != 0) { - bitset_invert_to(bsr1, bs1); - bsr1 = bs1; - } - if (not2 != 0) { - bitset_invert_to(bsr2, bs2); - bsr2 = bs2; - } - bitset_or(bsr1, bsr2); - if (bsr1 != dest->bs) { - bitset_copy(dest->bs, bsr1); - } - if (not1 != 0) { - bitset_invert(dest->bs); - } - - if (! ONIGENC_IS_SINGLEBYTE(enc)) { - if (not1 != 0 && not2 != 0) { - r = and_code_range_buf(buf1, 0, buf2, 0, &pbuf); - } - else { - r = or_code_range_buf(enc, buf1, not1, buf2, not2, &pbuf); - if (r == 0 && not1 != 0) { - BBuf *tbuf; - r = not_code_range_buf(enc, pbuf, &tbuf); - if (r != 0) { - bbuf_free(pbuf); - return r; - } - bbuf_free(pbuf); - pbuf = tbuf; - } - } - if (r != 0) return r; - - dest->mbuf = pbuf; - bbuf_free(buf1); - return r; - } - else - return 0; -} - -static OnigCodePoint -conv_backslash_value(OnigCodePoint c, ScanEnv* env) -{ - if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_CONTROL_CHARS)) { - switch (c) { - case 'n': return '\n'; - case 't': return '\t'; - case 'r': return '\r'; - case 'f': return '\f'; - case 'a': return '\007'; - case 'b': return '\010'; - case 'e': return '\033'; - case 'v': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_V_VTAB)) - return '\v'; - break; - - default: - break; - } - } - return c; -} - -static int -is_invalid_quantifier_target(Node* node) -{ - switch (NODE_TYPE(node)) { - case NODE_ANCHOR: - case NODE_GIMMICK: - return 1; - break; - - case NODE_BAG: - /* allow enclosed elements */ - /* return is_invalid_quantifier_target(NODE_BODY(node)); */ - break; - - case NODE_LIST: - do { - if (! is_invalid_quantifier_target(NODE_CAR(node))) return 0; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - return 0; - break; - - case NODE_ALT: - do { - if (is_invalid_quantifier_target(NODE_CAR(node))) return 1; - } while (IS_NOT_NULL(node = NODE_CDR(node))); - break; - - default: - break; - } - return 0; -} - -/* ?:0, *:1, +:2, ??:3, *?:4, +?:5 */ -static int -quantifier_type_num(QuantNode* q) -{ - if (q->greedy) { - if (q->lower == 0) { - if (q->upper == 1) return 0; - else if (IS_INFINITE_REPEAT(q->upper)) return 1; - } - else if (q->lower == 1) { - if (IS_INFINITE_REPEAT(q->upper)) return 2; - } - } - else { - if (q->lower == 0) { - if (q->upper == 1) return 3; - else if (IS_INFINITE_REPEAT(q->upper)) return 4; - } - else if (q->lower == 1) { - if (IS_INFINITE_REPEAT(q->upper)) return 5; - } - } - return -1; -} - - -enum ReduceType { - RQ_ASIS = 0, /* as is */ - RQ_DEL = 1, /* delete parent */ - RQ_A, /* to '*' */ - RQ_AQ, /* to '*?' */ - RQ_QQ, /* to '??' */ - RQ_P_QQ, /* to '+)??' */ - RQ_PQ_Q /* to '+?)?' */ -}; - -static enum ReduceType ReduceTypeTable[6][6] = { - {RQ_DEL, RQ_A, RQ_A, RQ_QQ, RQ_AQ, RQ_ASIS}, /* '?' */ - {RQ_DEL, RQ_DEL, RQ_DEL, RQ_P_QQ, RQ_P_QQ, RQ_DEL}, /* '*' */ - {RQ_A, RQ_A, RQ_DEL, RQ_ASIS, RQ_P_QQ, RQ_DEL}, /* '+' */ - {RQ_DEL, RQ_AQ, RQ_AQ, RQ_DEL, RQ_AQ, RQ_AQ}, /* '??' */ - {RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL}, /* '*?' */ - {RQ_ASIS, RQ_PQ_Q, RQ_DEL, RQ_AQ, RQ_AQ, RQ_DEL} /* '+?' */ -}; - -extern void -onig_reduce_nested_quantifier(Node* pnode, Node* cnode) -{ - int pnum, cnum; - QuantNode *p, *c; - - p = QUANT_(pnode); - c = QUANT_(cnode); - pnum = quantifier_type_num(p); - cnum = quantifier_type_num(c); - if (pnum < 0 || cnum < 0) { - if ((p->lower == p->upper) && ! IS_INFINITE_REPEAT(p->upper)) { - if ((c->lower == c->upper) && ! IS_INFINITE_REPEAT(c->upper)) { - int n = onig_positive_int_multiply(p->lower, c->lower); - if (n >= 0) { - p->lower = p->upper = n; - NODE_BODY(pnode) = NODE_BODY(cnode); - goto remove_cnode; - } - } - } - - return ; - } - - switch(ReduceTypeTable[cnum][pnum]) { - case RQ_DEL: - *pnode = *cnode; - break; - case RQ_A: - NODE_BODY(pnode) = NODE_BODY(cnode); - p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 1; - break; - case RQ_AQ: - NODE_BODY(pnode) = NODE_BODY(cnode); - p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 0; - break; - case RQ_QQ: - NODE_BODY(pnode) = NODE_BODY(cnode); - p->lower = 0; p->upper = 1; p->greedy = 0; - break; - case RQ_P_QQ: - NODE_BODY(pnode) = cnode; - p->lower = 0; p->upper = 1; p->greedy = 0; - c->lower = 1; c->upper = INFINITE_REPEAT; c->greedy = 1; - return ; - break; - case RQ_PQ_Q: - NODE_BODY(pnode) = cnode; - p->lower = 0; p->upper = 1; p->greedy = 1; - c->lower = 1; c->upper = INFINITE_REPEAT; c->greedy = 0; - return ; - break; - case RQ_ASIS: - NODE_BODY(pnode) = cnode; - return ; - break; - } - - remove_cnode: - NODE_BODY(cnode) = NULL_NODE; - onig_node_free(cnode); -} - -static int -node_new_general_newline(Node** node, ScanEnv* env) -{ - int r; - int dlen, alen; - UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN * 2]; - Node* crnl; - Node* ncc; - Node* x; - CClassNode* cc; - - dlen = ONIGENC_CODE_TO_MBC(env->enc, 0x0d, buf); - if (dlen < 0) return dlen; - alen = ONIGENC_CODE_TO_MBC(env->enc, 0x0a, buf + dlen); - if (alen < 0) return alen; - - crnl = node_new_str_raw(buf, buf + dlen + alen); - CHECK_NULL_RETURN_MEMERR(crnl); - - ncc = node_new_cclass(); - if (IS_NULL(ncc)) goto err2; - - cc = CCLASS_(ncc); - if (dlen == 1) { - bitset_set_range(cc->bs, 0x0a, 0x0d); - } - else { - r = add_code_range(&(cc->mbuf), env, 0x0a, 0x0d); - if (r != 0) { - err1: - onig_node_free(ncc); - err2: - onig_node_free(crnl); - return ONIGERR_MEMORY; - } - } - - if (ONIGENC_IS_UNICODE_ENCODING(env->enc)) { - r = add_code_range(&(cc->mbuf), env, 0x85, 0x85); - if (r != 0) goto err1; - r = add_code_range(&(cc->mbuf), env, 0x2028, 0x2029); - if (r != 0) goto err1; - } - - x = node_new_bag_if_else(crnl, 0, ncc); - if (IS_NULL(x)) goto err1; - - *node = x; - return 0; -} - -enum TokenSyms { - TK_EOT = 0, /* end of token */ - TK_RAW_BYTE = 1, - TK_CHAR, - TK_STRING, - TK_CODE_POINT, - TK_ANYCHAR, - TK_CHAR_TYPE, - TK_BACKREF, - TK_CALL, - TK_ANCHOR, - TK_REPEAT, - TK_INTERVAL, - TK_ANYCHAR_ANYTIME, /* SQL '%' == .* */ - TK_ALT, - TK_SUBEXP_OPEN, - TK_SUBEXP_CLOSE, - TK_CC_OPEN, - TK_QUOTE_OPEN, - TK_CHAR_PROPERTY, /* \p{...}, \P{...} */ - TK_KEEP, /* \K */ - TK_GENERAL_NEWLINE, /* \R */ - TK_NO_NEWLINE, /* \N */ - TK_TRUE_ANYCHAR, /* \O */ - TK_TEXT_SEGMENT, /* \X */ - - /* in cc */ - TK_CC_CLOSE, - TK_CC_RANGE, - TK_POSIX_BRACKET_OPEN, - TK_CC_AND, /* && */ - TK_CC_CC_OPEN /* [ */ -}; - -typedef struct { - enum TokenSyms type; - int escaped; - int base; /* is number: 8, 16 (used in [....]) */ - UChar* backp; - union { - UChar* s; - int c; - OnigCodePoint code; - int anchor; - int subtype; - struct { - int lower; - int upper; - int greedy; - int possessive; - } repeat; - struct { - int num; - int ref1; - int* refs; - int by_name; -#ifdef USE_BACKREF_WITH_LEVEL - int exist_level; - int level; /* \k */ -#endif - } backref; - struct { - UChar* name; - UChar* name_end; - int gnum; - int by_number; - } call; - struct { - int ctype; - int not; - } prop; - } u; -} PToken; - - -static int -fetch_interval_quantifier(UChar** src, UChar* end, PToken* tok, ScanEnv* env) -{ - int low, up, syn_allow, non_low = 0; - int r = 0; - OnigCodePoint c; - OnigEncoding enc = env->enc; - UChar* p = *src; - PFETCH_READY; - - syn_allow = IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_INVALID_INTERVAL); - - if (PEND) { - if (syn_allow) - return 1; /* "....{" : OK! */ - else - return ONIGERR_END_PATTERN_AT_LEFT_BRACE; /* "....{" syntax error */ - } - - if (! syn_allow) { - c = PPEEK; - if (c == ')' || c == '(' || c == '|') { - return ONIGERR_END_PATTERN_AT_LEFT_BRACE; - } - } - - low = onig_scan_unsigned_number(&p, end, env->enc); - if (low < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; - if (low > ONIG_MAX_REPEAT_NUM) - return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; - - if (p == *src) { /* can't read low */ - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV)) { - /* allow {,n} as {0,n} */ - low = 0; - non_low = 1; - } - else - goto invalid; - } - - if (PEND) goto invalid; - PFETCH(c); - if (c == ',') { - UChar* prev = p; - up = onig_scan_unsigned_number(&p, end, env->enc); - if (up < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; - if (up > ONIG_MAX_REPEAT_NUM) - return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE; - - if (p == prev) { - if (non_low != 0) - goto invalid; - up = INFINITE_REPEAT; /* {n,} : {n,infinite} */ - } - } - else { - if (non_low != 0) - goto invalid; - - PUNFETCH; - up = low; /* {n} : exact n times */ - r = 2; /* fixed */ - } - - if (PEND) goto invalid; - PFETCH(c); - if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) { - if (c != MC_ESC(env->syntax)) goto invalid; - PFETCH(c); - } - if (c != '}') goto invalid; - - if (!IS_INFINITE_REPEAT(up) && low > up) { - /* {n,m}+ supported case */ - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL)) - return ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE; - - tok->u.repeat.possessive = 1; - { - int tmp; - tmp = low; low = up; up = tmp; - } - } - else - tok->u.repeat.possessive = 0; - - tok->type = TK_INTERVAL; - tok->u.repeat.lower = low; - tok->u.repeat.upper = up; - *src = p; - return r; /* 0: normal {n,m}, 2: fixed {n} */ - - invalid: - if (syn_allow) { - /* *src = p; */ /* !!! Don't do this line !!! */ - return 1; /* OK */ - } - else - return ONIGERR_INVALID_REPEAT_RANGE_PATTERN; -} - -/* \M-, \C-, \c, or \... */ -static int -fetch_escaped_value(UChar** src, UChar* end, ScanEnv* env, OnigCodePoint* val) -{ - int v; - OnigCodePoint c; - OnigEncoding enc = env->enc; - UChar* p = *src; - - if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE; - - PFETCH_S(c); - switch (c) { - case 'M': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META)) { - if (PEND) return ONIGERR_END_PATTERN_AT_META; - PFETCH_S(c); - if (c != '-') return ONIGERR_META_CODE_SYNTAX; - if (PEND) return ONIGERR_END_PATTERN_AT_META; - PFETCH_S(c); - if (c == MC_ESC(env->syntax)) { - v = fetch_escaped_value(&p, end, env, &c); - if (v < 0) return v; - } - c = ((c & 0xff) | 0x80); - } - else - goto backslash; - break; - - case 'C': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL)) { - if (PEND) return ONIGERR_END_PATTERN_AT_CONTROL; - PFETCH_S(c); - if (c != '-') return ONIGERR_CONTROL_CODE_SYNTAX; - goto control; - } - else - goto backslash; - - case 'c': - if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_C_CONTROL)) { - control: - if (PEND) return ONIGERR_END_PATTERN_AT_CONTROL; - PFETCH_S(c); - if (c == '?') { - c = 0177; - } - else { - if (c == MC_ESC(env->syntax)) { - v = fetch_escaped_value(&p, end, env, &c); - if (v < 0) return v; - } - c &= 0x9f; - } - break; - } - /* fall through */ - - default: - { - backslash: - c = conv_backslash_value(c, env); - } - break; - } - - *src = p; - *val = c; - return 0; -} - -static int fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env); - -static OnigCodePoint -get_name_end_code_point(OnigCodePoint start) -{ - switch (start) { - case '<': return (OnigCodePoint )'>'; break; - case '\'': return (OnigCodePoint )'\''; break; - case '(': return (OnigCodePoint )')'; break; - default: - break; - } - - return (OnigCodePoint )0; -} - -enum REF_NUM { - IS_NOT_NUM = 0, - IS_ABS_NUM = 1, - IS_REL_NUM = 2 -}; - -#ifdef USE_BACKREF_WITH_LEVEL -/* - \k, \k - \k, \k - \k<-num+n>, \k<-num-n> - \k<+num+n>, \k<+num-n> -*/ -static int -fetch_name_with_level(OnigCodePoint start_code, UChar** src, UChar* end, - UChar** rname_end, ScanEnv* env, - int* rback_num, int* rlevel, enum REF_NUM* num_type) -{ - int r, sign, exist_level; - int digit_count; - OnigCodePoint end_code; - OnigCodePoint c = 0; - OnigEncoding enc = env->enc; - UChar *name_end; - UChar *pnum_head; - UChar *p = *src; - PFETCH_READY; - - *rback_num = 0; - exist_level = 0; - *num_type = IS_NOT_NUM; - sign = 1; - pnum_head = *src; - - end_code = get_name_end_code_point(start_code); - - digit_count = 0; - name_end = end; - r = 0; - if (PEND) { - return ONIGERR_EMPTY_GROUP_NAME; - } - else { - PFETCH(c); - if (c == end_code) - return ONIGERR_EMPTY_GROUP_NAME; - - if (IS_CODE_DIGIT_ASCII(enc, c)) { - *num_type = IS_ABS_NUM; - digit_count++; - } - else if (c == '-') { - *num_type = IS_REL_NUM; - sign = -1; - pnum_head = p; - } - else if (c == '+') { - *num_type = IS_REL_NUM; - sign = 1; - pnum_head = p; - } - else if (!ONIGENC_IS_CODE_WORD(enc, c)) { - r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; - } - } - - while (!PEND) { - name_end = p; - PFETCH(c); - if (c == end_code || c == ')' || c == '+' || c == '-') { - if (*num_type != IS_NOT_NUM && digit_count == 0) - r = ONIGERR_INVALID_GROUP_NAME; - break; - } - - if (*num_type != IS_NOT_NUM) { - if (IS_CODE_DIGIT_ASCII(enc, c)) { - digit_count++; - } - else { - r = ONIGERR_INVALID_GROUP_NAME; - *num_type = IS_NOT_NUM; - } - } - else if (!ONIGENC_IS_CODE_WORD(enc, c)) { - r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; - } - } - - if (r == 0 && c != end_code) { - if (c == '+' || c == '-') { - int level; - int flag = (c == '-' ? -1 : 1); - - if (PEND) { - r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; - goto end; - } - PFETCH(c); - if (! IS_CODE_DIGIT_ASCII(enc, c)) goto err; - PUNFETCH; - level = onig_scan_unsigned_number(&p, end, enc); - if (level < 0) return ONIGERR_TOO_BIG_NUMBER; - *rlevel = (level * flag); - exist_level = 1; - - if (!PEND) { - PFETCH(c); - if (c == end_code) - goto end; - } - } - - err: - name_end = end; - err2: - r = ONIGERR_INVALID_GROUP_NAME; - } - - end: - if (r == 0) { - if (*num_type != IS_NOT_NUM) { - *rback_num = onig_scan_unsigned_number(&pnum_head, name_end, enc); - if (*rback_num < 0) return ONIGERR_TOO_BIG_NUMBER; - else if (*rback_num == 0) { - if (*num_type == IS_REL_NUM) - goto err2; - } - - *rback_num *= sign; - } - - *rname_end = name_end; - *src = p; - return (exist_level ? 1 : 0); - } - else { - onig_scan_env_set_error_string(env, r, *src, name_end); - return r; - } -} -#endif /* USE_BACKREF_WITH_LEVEL */ - -/* - ref: 0 -> define name (don't allow number name) - 1 -> reference name (allow number name) -*/ -static int -fetch_name(OnigCodePoint start_code, UChar** src, UChar* end, - UChar** rname_end, ScanEnv* env, int* rback_num, - enum REF_NUM* num_type, int ref) -{ - int r, sign; - int digit_count; - OnigCodePoint end_code; - OnigCodePoint c = 0; - OnigEncoding enc = env->enc; - UChar *name_end; - UChar *pnum_head; - UChar *p = *src; - - *rback_num = 0; - - end_code = get_name_end_code_point(start_code); - - digit_count = 0; - name_end = end; - pnum_head = *src; - r = 0; - *num_type = IS_NOT_NUM; - sign = 1; - if (PEND) { - return ONIGERR_EMPTY_GROUP_NAME; - } - else { - PFETCH_S(c); - if (c == end_code) - return ONIGERR_EMPTY_GROUP_NAME; - - if (IS_CODE_DIGIT_ASCII(enc, c)) { - if (ref == 1) - *num_type = IS_ABS_NUM; - else { - r = ONIGERR_INVALID_GROUP_NAME; - } - digit_count++; - } - else if (c == '-') { - if (ref == 1) { - *num_type = IS_REL_NUM; - sign = -1; - pnum_head = p; - } - else { - r = ONIGERR_INVALID_GROUP_NAME; - } - } - else if (c == '+') { - if (ref == 1) { - *num_type = IS_REL_NUM; - sign = 1; - pnum_head = p; - } - else { - r = ONIGERR_INVALID_GROUP_NAME; - } - } - else if (!ONIGENC_IS_CODE_WORD(enc, c)) { - r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; - } - } - - if (r == 0) { - while (!PEND) { - name_end = p; - PFETCH_S(c); - if (c == end_code || c == ')') { - if (*num_type != IS_NOT_NUM && digit_count == 0) - r = ONIGERR_INVALID_GROUP_NAME; - break; - } - - if (*num_type != IS_NOT_NUM) { - if (IS_CODE_DIGIT_ASCII(enc, c)) { - digit_count++; - } - else { - if (!ONIGENC_IS_CODE_WORD(enc, c)) - r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; - else - r = ONIGERR_INVALID_GROUP_NAME; - - *num_type = IS_NOT_NUM; - } - } - else { - if (!ONIGENC_IS_CODE_WORD(enc, c)) { - r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME; - } - } - } - - if (c != end_code) { - r = ONIGERR_INVALID_GROUP_NAME; - goto err; - } - - if (*num_type != IS_NOT_NUM) { - *rback_num = onig_scan_unsigned_number(&pnum_head, name_end, enc); - if (*rback_num < 0) return ONIGERR_TOO_BIG_NUMBER; - else if (*rback_num == 0) { - if (*num_type == IS_REL_NUM) { - r = ONIGERR_INVALID_GROUP_NAME; - goto err; - } - } - - *rback_num *= sign; - } - - *rname_end = name_end; - *src = p; - return 0; - } - else { - while (!PEND) { - name_end = p; - PFETCH_S(c); - if (c == end_code || c == ')') - break; - } - if (PEND) - name_end = end; - - err: - onig_scan_env_set_error_string(env, r, *src, name_end); - return r; - } -} - -static void -CC_ESC_WARN(ScanEnv* env, UChar *c) -{ - if (onig_warn == onig_null_warn) return ; - - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED) && - IS_SYNTAX_BV(env->syntax, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC)) { - UChar buf[WARN_BUFSIZE]; - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, - env->pattern, env->pattern_end, - (UChar* )"character class has '%s' without escape", - c); - (*onig_warn)((char* )buf); - } -} - -static void -CLOSE_BRACKET_WITHOUT_ESC_WARN(ScanEnv* env, UChar* c) -{ - if (onig_warn == onig_null_warn) return ; - - if (IS_SYNTAX_BV((env)->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED)) { - UChar buf[WARN_BUFSIZE]; - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, (env)->enc, - (env)->pattern, (env)->pattern_end, - (UChar* )"regular expression has '%s' without escape", c); - (*onig_warn)((char* )buf); - } -} - -static UChar* -find_str_position(OnigCodePoint s[], int n, UChar* from, UChar* to, - UChar **next, OnigEncoding enc) -{ - int i; - OnigCodePoint x; - UChar *q; - UChar *p = from; - - while (p < to) { - x = ONIGENC_MBC_TO_CODE(enc, p, to); - q = p + enclen(enc, p); - if (x == s[0]) { - for (i = 1; i < n && q < to; i++) { - x = ONIGENC_MBC_TO_CODE(enc, q, to); - if (x != s[i]) break; - q += enclen(enc, q); - } - if (i >= n) { - if (IS_NOT_NULL(next)) - *next = q; - return p; - } - } - p = q; - } - return NULL_UCHARP; -} - -static int -str_exist_check_with_esc(OnigCodePoint s[], int n, UChar* from, UChar* to, - OnigCodePoint bad, OnigEncoding enc, OnigSyntaxType* syn) -{ - int i, in_esc; - OnigCodePoint x; - UChar *q; - UChar *p = from; - - in_esc = 0; - while (p < to) { - if (in_esc) { - in_esc = 0; - p += enclen(enc, p); - } - else { - x = ONIGENC_MBC_TO_CODE(enc, p, to); - q = p + enclen(enc, p); - if (x == s[0]) { - for (i = 1; i < n && q < to; i++) { - x = ONIGENC_MBC_TO_CODE(enc, q, to); - if (x != s[i]) break; - q += enclen(enc, q); - } - if (i >= n) return 1; - p += enclen(enc, p); - } - else { - x = ONIGENC_MBC_TO_CODE(enc, p, to); - if (x == bad) return 0; - else if (x == MC_ESC(syn)) in_esc = 1; - p = q; - } - } - } - return 0; -} - -static int -fetch_token_in_cc(PToken* tok, UChar** src, UChar* end, ScanEnv* env) -{ - int num; - OnigCodePoint c, c2; - OnigSyntaxType* syn = env->syntax; - OnigEncoding enc = env->enc; - UChar* prev; - UChar* p = *src; - PFETCH_READY; - - if (PEND) { - tok->type = TK_EOT; - return tok->type; - } - - PFETCH(c); - tok->type = TK_CHAR; - tok->base = 0; - tok->u.c = c; - tok->escaped = 0; - - if (c == ']') { - tok->type = TK_CC_CLOSE; - } - else if (c == '-') { - tok->type = TK_CC_RANGE; - } - else if (c == MC_ESC(syn)) { - if (! IS_SYNTAX_BV(syn, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC)) - goto end; - - if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE; - - PFETCH(c); - tok->escaped = 1; - tok->u.c = c; - switch (c) { - case 'w': - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_WORD; - tok->u.prop.not = 0; - break; - case 'W': - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_WORD; - tok->u.prop.not = 1; - break; - case 'd': - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; - tok->u.prop.not = 0; - break; - case 'D': - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; - tok->u.prop.not = 1; - break; - case 's': - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; - tok->u.prop.not = 0; - break; - case 'S': - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; - tok->u.prop.not = 1; - break; - case 'h': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; - tok->u.prop.not = 0; - break; - case 'H': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; - tok->u.prop.not = 1; - break; - - case 'p': - case 'P': - if (PEND) break; - - c2 = PPEEK; - if (c2 == '{' && - IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY)) { - PINC; - tok->type = TK_CHAR_PROPERTY; - tok->u.prop.not = c == 'P'; - - if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT)) { - PFETCH(c2); - if (c2 == '^') { - tok->u.prop.not = tok->u.prop.not == 0; - } - else - PUNFETCH; - } - } - break; - - case 'o': - if (PEND) break; - - prev = p; - if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_O_BRACE_OCTAL)) { - PINC; - num = scan_unsigned_octal_number(&p, end, 11, enc); - if (num < 0) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; - if (!PEND) { - c2 = PPEEK; - if (IS_CODE_DIGIT_ASCII(enc, c2)) - return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; - } - - if (p > prev + enclen(enc, prev) && !PEND && (PPEEK_IS('}'))) { - PINC; - tok->type = TK_CODE_POINT; - tok->base = 8; - tok->u.code = (OnigCodePoint )num; - } - else { - /* can't read nothing or invalid format */ - p = prev; - } - } - break; - - case 'x': - if (PEND) break; - - prev = p; - if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) { - PINC; - num = scan_unsigned_hexadecimal_number(&p, end, 0, 8, enc); - if (num < 0) { - if (num == ONIGERR_TOO_BIG_NUMBER) - return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; - else - return num; - } - if (!PEND) { - c2 = PPEEK; - if (IS_CODE_XDIGIT_ASCII(enc, c2)) - return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; - } - - if (p > prev + enclen(enc, prev) && !PEND && (PPEEK_IS('}'))) { - PINC; - tok->type = TK_CODE_POINT; - tok->base = 16; - tok->u.code = (OnigCodePoint )num; - } - else { - /* can't read nothing or invalid format */ - p = prev; - } - } - else if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_HEX2)) { - num = scan_unsigned_hexadecimal_number(&p, end, 0, 2, enc); - if (num < 0) return num; - if (p == prev) { /* can't read nothing. */ - num = 0; /* but, it's not error */ - } - tok->type = TK_RAW_BYTE; - tok->base = 16; - tok->u.c = num; - } - break; - - case 'u': - if (PEND) break; - - prev = p; - if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) { - num = scan_unsigned_hexadecimal_number(&p, end, 4, 4, enc); - if (num < 0) return num; - if (p == prev) { /* can't read nothing. */ - num = 0; /* but, it's not error */ - } - tok->type = TK_CODE_POINT; - tok->base = 16; - tok->u.code = (OnigCodePoint )num; - } - break; - - case '0': - case '1': case '2': case '3': case '4': case '5': case '6': case '7': - if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) { - PUNFETCH; - prev = p; - num = scan_unsigned_octal_number(&p, end, 3, enc); - if (num < 0 || num >= 256) return ONIGERR_TOO_BIG_NUMBER; - if (p == prev) { /* can't read nothing. */ - num = 0; /* but, it's not error */ - } - tok->type = TK_RAW_BYTE; - tok->base = 8; - tok->u.c = num; - } - break; - - default: - PUNFETCH; - num = fetch_escaped_value(&p, end, env, &c2); - if (num < 0) return num; - if (tok->u.c != c2) { - tok->u.code = c2; - tok->type = TK_CODE_POINT; - } - break; - } - } - else if (c == '[') { - if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_POSIX_BRACKET) && (PPEEK_IS(':'))) { - OnigCodePoint send[] = { (OnigCodePoint )':', (OnigCodePoint )']' }; - tok->backp = p; /* point at '[' is read */ - PINC; - if (str_exist_check_with_esc(send, 2, p, end, - (OnigCodePoint )']', enc, syn)) { - tok->type = TK_POSIX_BRACKET_OPEN; - } - else { - PUNFETCH; - goto cc_in_cc; - } - } - else { - cc_in_cc: - if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_CCLASS_SET_OP)) { - tok->type = TK_CC_CC_OPEN; - } - else { - CC_ESC_WARN(env, (UChar* )"["); - } - } - } - else if (c == '&') { - if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_CCLASS_SET_OP) && - !PEND && (PPEEK_IS('&'))) { - PINC; - tok->type = TK_CC_AND; - } - } - - end: - *src = p; - return tok->type; -} - -static int -fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env) -{ - int r, num; - OnigCodePoint c; - OnigEncoding enc = env->enc; - OnigSyntaxType* syn = env->syntax; - UChar* prev; - UChar* p = *src; - PFETCH_READY; - - start: - if (PEND) { - tok->type = TK_EOT; - return tok->type; - } - - tok->type = TK_STRING; - tok->base = 0; - tok->backp = p; - - PFETCH(c); - if (IS_MC_ESC_CODE(c, syn)) { - if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE; - - tok->backp = p; - PFETCH(c); - - tok->u.c = c; - tok->escaped = 1; - switch (c) { - case '*': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF)) break; - tok->type = TK_REPEAT; - tok->u.repeat.lower = 0; - tok->u.repeat.upper = INFINITE_REPEAT; - goto greedy_check; - break; - - case '+': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_PLUS_ONE_INF)) break; - tok->type = TK_REPEAT; - tok->u.repeat.lower = 1; - tok->u.repeat.upper = INFINITE_REPEAT; - goto greedy_check; - break; - - case '?': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_QMARK_ZERO_ONE)) break; - tok->type = TK_REPEAT; - tok->u.repeat.lower = 0; - tok->u.repeat.upper = 1; - greedy_check: - tok->u.repeat.possessive = 0; - greedy_check2: - if (!PEND && PPEEK_IS('?') && - IS_SYNTAX_OP(syn, ONIG_SYN_OP_QMARK_NON_GREEDY) && - tok->u.repeat.possessive == 0) { - PFETCH(c); - tok->u.repeat.greedy = 0; - tok->u.repeat.possessive = 0; - } - else { - possessive_check: - tok->u.repeat.greedy = 1; - if (!PEND && PPEEK_IS('+') && - ((IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT) && - tok->type != TK_INTERVAL) || - (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL) && - tok->type == TK_INTERVAL)) && - tok->u.repeat.possessive == 0) { - PFETCH(c); - tok->u.repeat.possessive = 1; - } - } - break; - - case '{': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) break; - r = fetch_interval_quantifier(&p, end, tok, env); - if (r < 0) return r; /* error */ - if (r == 0) goto greedy_check2; - else if (r == 2) { /* {n} */ - if (IS_SYNTAX_BV(syn, ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY)) - goto possessive_check; - - goto greedy_check2; - } - /* r == 1 : normal char */ - break; - - case '|': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_VBAR_ALT)) break; - tok->type = TK_ALT; - break; - - case '(': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LPAREN_SUBEXP)) break; - tok->type = TK_SUBEXP_OPEN; - break; - - case ')': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LPAREN_SUBEXP)) break; - tok->type = TK_SUBEXP_CLOSE; - break; - - case 'w': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_W_WORD)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_WORD; - tok->u.prop.not = 0; - break; - - case 'W': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_W_WORD)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_WORD; - tok->u.prop.not = 1; - break; - - case 'b': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break; - tok->type = TK_ANCHOR; - tok->u.anchor = ANCR_WORD_BOUNDARY; - break; - - case 'B': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break; - tok->type = TK_ANCHOR; - tok->u.anchor = ANCR_NO_WORD_BOUNDARY; - break; - - case 'y': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break; - tok->type = TK_ANCHOR; - tok->u.anchor = ANCR_TEXT_SEGMENT_BOUNDARY; - break; - - case 'Y': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break; - tok->type = TK_ANCHOR; - tok->u.anchor = ANCR_NO_TEXT_SEGMENT_BOUNDARY; - break; - -#ifdef USE_WORD_BEGIN_END - case '<': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END)) break; - tok->type = TK_ANCHOR; - tok->u.anchor = ANCR_WORD_BEGIN; - break; - - case '>': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END)) break; - tok->type = TK_ANCHOR; - tok->u.anchor = ANCR_WORD_END; - break; -#endif - - case 's': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_S_WHITE_SPACE)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; - tok->u.prop.not = 0; - break; - - case 'S': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_S_WHITE_SPACE)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_SPACE; - tok->u.prop.not = 1; - break; - - case 'd': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_D_DIGIT)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; - tok->u.prop.not = 0; - break; - - case 'D': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_D_DIGIT)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT; - tok->u.prop.not = 1; - break; - - case 'h': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; - tok->u.prop.not = 0; - break; - - case 'H': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break; - tok->type = TK_CHAR_TYPE; - tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT; - tok->u.prop.not = 1; - break; - - case 'K': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP)) break; - tok->type = TK_KEEP; - break; - - case 'R': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE)) break; - tok->type = TK_GENERAL_NEWLINE; - break; - - case 'N': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT)) break; - tok->type = TK_NO_NEWLINE; - break; - - case 'O': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT)) break; - tok->type = TK_TRUE_ANYCHAR; - break; - - case 'X': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break; - tok->type = TK_TEXT_SEGMENT; - break; - - case 'A': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break; - begin_buf: - tok->type = TK_ANCHOR; - tok->u.subtype = ANCR_BEGIN_BUF; - break; - - case 'Z': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break; - tok->type = TK_ANCHOR; - tok->u.subtype = ANCR_SEMI_END_BUF; - break; - - case 'z': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break; - end_buf: - tok->type = TK_ANCHOR; - tok->u.subtype = ANCR_END_BUF; - break; - - case 'G': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR)) break; - tok->type = TK_ANCHOR; - tok->u.subtype = ANCR_BEGIN_POSITION; - break; - - case '`': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR)) break; - goto begin_buf; - break; - - case '\'': - if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR)) break; - goto end_buf; - break; - - case 'o': - if (PEND) break; - - prev = p; - if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_O_BRACE_OCTAL)) { - PINC; - num = scan_unsigned_octal_number(&p, end, 11, enc); - if (num < 0) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; - if (!PEND) { - if (IS_CODE_DIGIT_ASCII(enc, PPEEK)) - return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; - } - - if ((p > prev + enclen(enc, prev)) && !PEND && PPEEK_IS('}')) { - PINC; - tok->type = TK_CODE_POINT; - tok->u.code = (OnigCodePoint )num; - } - else { - /* can't read nothing or invalid format */ - p = prev; - } - } - break; - - case 'x': - if (PEND) break; - - prev = p; - if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) { - PINC; - num = scan_unsigned_hexadecimal_number(&p, end, 0, 8, enc); - if (num < 0) { - if (num == ONIGERR_TOO_BIG_NUMBER) - return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; - else - return num; - } - if (!PEND) { - if (IS_CODE_XDIGIT_ASCII(enc, PPEEK)) - return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; - } - - if ((p > prev + enclen(enc, prev)) && !PEND && PPEEK_IS('}')) { - PINC; - tok->type = TK_CODE_POINT; - tok->u.code = (OnigCodePoint )num; - } - else { - /* can't read nothing or invalid format */ - p = prev; - } - } - else if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_HEX2)) { - num = scan_unsigned_hexadecimal_number(&p, end, 0, 2, enc); - if (num < 0) return num; - if (p == prev) { /* can't read nothing. */ - num = 0; /* but, it's not error */ - } - tok->type = TK_RAW_BYTE; - tok->base = 16; - tok->u.c = num; - } - break; - - case 'u': - if (PEND) break; - - prev = p; - if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) { - num = scan_unsigned_hexadecimal_number(&p, end, 4, 4, enc); - if (num < 0) return num; - if (p == prev) { /* can't read nothing. */ - num = 0; /* but, it's not error */ - } - tok->type = TK_CODE_POINT; - tok->base = 16; - tok->u.code = (OnigCodePoint )num; - } - break; - - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - PUNFETCH; - prev = p; - num = onig_scan_unsigned_number(&p, end, enc); - if (num < 0 || num > ONIG_MAX_BACKREF_NUM) { - goto skip_backref; - } - - if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_DECIMAL_BACKREF) && - (num <= env->num_mem || num <= 9)) { /* This spec. from GNU regex */ - if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) { - if (num > env->num_mem || IS_NULL(SCANENV_MEMENV(env)[num].node)) - return ONIGERR_INVALID_BACKREF; - } - - tok->type = TK_BACKREF; - tok->u.backref.num = 1; - tok->u.backref.ref1 = num; - tok->u.backref.by_name = 0; -#ifdef USE_BACKREF_WITH_LEVEL - tok->u.backref.exist_level = 0; -#endif - break; - } - - skip_backref: - if (c == '8' || c == '9') { - /* normal char */ - p = prev; PINC; - break; - } - - p = prev; - /* fall through */ - case '0': - if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) { - prev = p; - num = scan_unsigned_octal_number(&p, end, (c == '0' ? 2:3), enc); - if (num < 0 || num >= 256) return ONIGERR_TOO_BIG_NUMBER; - if (p == prev) { /* can't read nothing. */ - num = 0; /* but, it's not error */ - } - tok->type = TK_RAW_BYTE; - tok->base = 8; - tok->u.c = num; - } - else if (c != '0') { - PINC; - } - break; - - case 'k': - if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_K_NAMED_BACKREF)) { - PFETCH(c); - if (c == '<' || c == '\'') { - UChar* name_end; - int* backs; - int back_num; - enum REF_NUM num_type; - - prev = p; - -#ifdef USE_BACKREF_WITH_LEVEL - name_end = NULL_UCHARP; /* no need. escape gcc warning. */ - r = fetch_name_with_level((OnigCodePoint )c, &p, end, &name_end, - env, &back_num, &tok->u.backref.level, &num_type); - if (r == 1) tok->u.backref.exist_level = 1; - else tok->u.backref.exist_level = 0; -#else - r = fetch_name(c, &p, end, &name_end, env, &back_num, &num_type, 1); -#endif - if (r < 0) return r; - - if (num_type != IS_NOT_NUM) { - if (num_type == IS_REL_NUM) { - back_num = backref_rel_to_abs(back_num, env); - } - if (back_num <= 0) - return ONIGERR_INVALID_BACKREF; - - if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) { - if (back_num > env->num_mem || - IS_NULL(SCANENV_MEMENV(env)[back_num].node)) - return ONIGERR_INVALID_BACKREF; - } - tok->type = TK_BACKREF; - tok->u.backref.by_name = 0; - tok->u.backref.num = 1; - tok->u.backref.ref1 = back_num; - } - else { - num = name_to_group_numbers(env, prev, name_end, &backs); - if (num <= 0) { - return ONIGERR_UNDEFINED_NAME_REFERENCE; - } - if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) { - int i; - for (i = 0; i < num; i++) { - if (backs[i] > env->num_mem || - IS_NULL(SCANENV_MEMENV(env)[backs[i]].node)) - return ONIGERR_INVALID_BACKREF; - } - } - - tok->type = TK_BACKREF; - tok->u.backref.by_name = 1; - if (num == 1) { - tok->u.backref.num = 1; - tok->u.backref.ref1 = backs[0]; - } - else { - tok->u.backref.num = num; - tok->u.backref.refs = backs; - } - } - } - else - PUNFETCH; - } - break; - -#ifdef USE_CALL - case 'g': - if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_G_SUBEXP_CALL)) { - PFETCH(c); - if (c == '<' || c == '\'') { - int gnum; - UChar* name_end; - enum REF_NUM num_type; - - prev = p; - r = fetch_name((OnigCodePoint )c, &p, end, &name_end, env, - &gnum, &num_type, 1); - if (r < 0) return r; - - if (num_type != IS_NOT_NUM) { - if (num_type == IS_REL_NUM) { - gnum = backref_rel_to_abs(gnum, env); - if (gnum < 0) { - onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE, - prev, name_end); - return ONIGERR_UNDEFINED_GROUP_REFERENCE; - } - } - tok->u.call.by_number = 1; - tok->u.call.gnum = gnum; - } - else { - tok->u.call.by_number = 0; - tok->u.call.gnum = 0; - } - - tok->type = TK_CALL; - tok->u.call.name = prev; - tok->u.call.name_end = name_end; - } - else - PUNFETCH; - } - break; -#endif - - case 'Q': - if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE)) { - tok->type = TK_QUOTE_OPEN; - } - break; - - case 'p': - case 'P': - if (!PEND && PPEEK_IS('{') && - IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY)) { - PINC; - tok->type = TK_CHAR_PROPERTY; - tok->u.prop.not = c == 'P'; - - if (!PEND && - IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT)) { - PFETCH(c); - if (c == '^') { - tok->u.prop.not = tok->u.prop.not == 0; - } - else - PUNFETCH; - } - } - break; - - default: - { - OnigCodePoint c2; - - PUNFETCH; - num = fetch_escaped_value(&p, end, env, &c2); - if (num < 0) return num; - /* set_raw: */ - if (tok->u.c != c2) { - tok->type = TK_CODE_POINT; - tok->u.code = c2; - } - else { /* string */ - p = tok->backp + enclen(enc, tok->backp); - } - } - break; - } - } - else { - tok->u.c = c; - tok->escaped = 0; - -#ifdef USE_VARIABLE_META_CHARS - if ((c != ONIG_INEFFECTIVE_META_CHAR) && - IS_SYNTAX_OP(syn, ONIG_SYN_OP_VARIABLE_META_CHARACTERS)) { - if (c == MC_ANYCHAR(syn)) - goto any_char; - else if (c == MC_ANYTIME(syn)) - goto anytime; - else if (c == MC_ZERO_OR_ONE_TIME(syn)) - goto zero_or_one_time; - else if (c == MC_ONE_OR_MORE_TIME(syn)) - goto one_or_more_time; - else if (c == MC_ANYCHAR_ANYTIME(syn)) { - tok->type = TK_ANYCHAR_ANYTIME; - goto out; - } - } -#endif - - switch (c) { - case '.': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_DOT_ANYCHAR)) break; -#ifdef USE_VARIABLE_META_CHARS - any_char: -#endif - tok->type = TK_ANYCHAR; - break; - - case '*': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ASTERISK_ZERO_INF)) break; -#ifdef USE_VARIABLE_META_CHARS - anytime: -#endif - tok->type = TK_REPEAT; - tok->u.repeat.lower = 0; - tok->u.repeat.upper = INFINITE_REPEAT; - goto greedy_check; - break; - - case '+': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_PLUS_ONE_INF)) break; -#ifdef USE_VARIABLE_META_CHARS - one_or_more_time: -#endif - tok->type = TK_REPEAT; - tok->u.repeat.lower = 1; - tok->u.repeat.upper = INFINITE_REPEAT; - goto greedy_check; - break; - - case '?': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_QMARK_ZERO_ONE)) break; -#ifdef USE_VARIABLE_META_CHARS - zero_or_one_time: -#endif - tok->type = TK_REPEAT; - tok->u.repeat.lower = 0; - tok->u.repeat.upper = 1; - goto greedy_check; - break; - - case '{': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_BRACE_INTERVAL)) break; - r = fetch_interval_quantifier(&p, end, tok, env); - if (r < 0) return r; /* error */ - if (r == 0) goto greedy_check2; - else if (r == 2) { /* {n} */ - if (IS_SYNTAX_BV(syn, ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY)) - goto possessive_check; - - goto greedy_check2; - } - /* r == 1 : normal char */ - break; - - case '|': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_VBAR_ALT)) break; - tok->type = TK_ALT; - break; - - case '(': - if (!PEND && PPEEK_IS('?') && - IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_QMARK_GROUP_EFFECT)) { - PINC; - if (! PEND) { - c = PPEEK; - if (c == '#') { - PFETCH(c); - while (1) { - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH(c); - if (c == MC_ESC(syn)) { - if (! PEND) PFETCH(c); - } - else { - if (c == ')') break; - } - } - goto start; - } - else if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL)) { - int gnum; - UChar* name; - UChar* name_end; - enum REF_NUM num_type; - - switch (c) { - case '&': - { - PINC; - name = p; - r = fetch_name((OnigCodePoint )'(', &p, end, &name_end, env, &gnum, - &num_type, 0); - if (r < 0) return r; - - tok->type = TK_CALL; - tok->u.call.by_number = 0; - tok->u.call.gnum = 0; - tok->u.call.name = name; - tok->u.call.name_end = name_end; - } - break; - - case 'R': - tok->type = TK_CALL; - tok->u.call.by_number = 1; - tok->u.call.gnum = 0; - tok->u.call.name = p; - PINC; - if (! PPEEK_IS(')')) return ONIGERR_UNDEFINED_GROUP_OPTION; - tok->u.call.name_end = p; - break; - - case '-': - case '+': - goto lparen_qmark_num; - break; - default: - if (! ONIGENC_IS_CODE_DIGIT(enc, c)) goto lparen_qmark_end; - - lparen_qmark_num: - { - name = p; - r = fetch_name((OnigCodePoint )'(', &p, end, &name_end, env, - &gnum, &num_type, 1); - if (r < 0) return r; - - if (num_type == IS_NOT_NUM) { - return ONIGERR_INVALID_GROUP_NAME; - } - else { - if (num_type == IS_REL_NUM) { - gnum = backref_rel_to_abs(gnum, env); - if (gnum < 0) { - onig_scan_env_set_error_string(env, - ONIGERR_UNDEFINED_NAME_REFERENCE, name, name_end); - return ONIGERR_UNDEFINED_GROUP_REFERENCE; - } - } - tok->u.call.by_number = 1; - tok->u.call.gnum = gnum; - } - - tok->type = TK_CALL; - tok->u.call.name = name; - tok->u.call.name_end = name_end; - } - break; - } - } - } - lparen_qmark_end: - PUNFETCH; - } - - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LPAREN_SUBEXP)) break; - tok->type = TK_SUBEXP_OPEN; - break; - - case ')': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LPAREN_SUBEXP)) break; - tok->type = TK_SUBEXP_CLOSE; - break; - - case '^': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; - tok->type = TK_ANCHOR; - tok->u.subtype = (IS_SINGLELINE(env->options) - ? ANCR_BEGIN_BUF : ANCR_BEGIN_LINE); - break; - - case '$': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break; - tok->type = TK_ANCHOR; - tok->u.subtype = (IS_SINGLELINE(env->options) - ? ANCR_SEMI_END_BUF : ANCR_END_LINE); - break; - - case '[': - if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_BRACKET_CC)) break; - tok->type = TK_CC_OPEN; - break; - - case ']': - if (*src > env->pattern) /* /].../ is allowed. */ - CLOSE_BRACKET_WITHOUT_ESC_WARN(env, (UChar* )"]"); - break; - - case '#': - if (IS_EXTEND(env->options)) { - while (!PEND) { - PFETCH(c); - if (ONIGENC_IS_CODE_NEWLINE(enc, c)) - break; - } - goto start; - break; - } - break; - - case ' ': case '\t': case '\n': case '\r': case '\f': - if (IS_EXTEND(env->options)) - goto start; - break; - - default: - /* string */ - break; - } - } - -#ifdef USE_VARIABLE_META_CHARS - out: -#endif - *src = p; - return tok->type; -} - -static int -add_ctype_to_cc_by_range(CClassNode* cc, int ctype ARG_UNUSED, int not, - OnigEncoding enc ARG_UNUSED, OnigCodePoint sb_out, - const OnigCodePoint mbr[]) -{ - int i, r; - OnigCodePoint j; - - int n = ONIGENC_CODE_RANGE_NUM(mbr); - - if (not == 0) { - for (i = 0; i < n; i++) { - for (j = ONIGENC_CODE_RANGE_FROM(mbr, i); - j <= ONIGENC_CODE_RANGE_TO(mbr, i); j++) { - if (j >= sb_out) { - if (j > ONIGENC_CODE_RANGE_FROM(mbr, i)) { - r = add_code_range_to_buf(&(cc->mbuf), j, - ONIGENC_CODE_RANGE_TO(mbr, i)); - if (r != 0) return r; - i++; - } - - goto sb_end; - } - BITSET_SET_BIT(cc->bs, j); - } - } - - sb_end: - for ( ; i < n; i++) { - r = add_code_range_to_buf(&(cc->mbuf), - ONIGENC_CODE_RANGE_FROM(mbr, i), - ONIGENC_CODE_RANGE_TO(mbr, i)); - if (r != 0) return r; - } - } - else { - OnigCodePoint prev = 0; - - for (i = 0; i < n; i++) { - for (j = prev; j < ONIGENC_CODE_RANGE_FROM(mbr, i); j++) { - if (j >= sb_out) { - goto sb_end2; - } - BITSET_SET_BIT(cc->bs, j); - } - prev = ONIGENC_CODE_RANGE_TO(mbr, i) + 1; - } - for (j = prev; j < sb_out; j++) { - BITSET_SET_BIT(cc->bs, j); - } - - sb_end2: - prev = sb_out; - - for (i = 0; i < n; i++) { - if (prev < ONIGENC_CODE_RANGE_FROM(mbr, i)) { - r = add_code_range_to_buf(&(cc->mbuf), prev, - ONIGENC_CODE_RANGE_FROM(mbr, i) - 1); - if (r != 0) return r; - } - prev = ONIGENC_CODE_RANGE_TO(mbr, i) + 1; - if (prev == 0) goto end; - } - - r = add_code_range_to_buf(&(cc->mbuf), prev, MAX_CODE_POINT); - if (r != 0) return r; - } - - end: - return 0; -} - -static int -add_ctype_to_cc_by_range_limit(CClassNode* cc, int ctype ARG_UNUSED, int not, - OnigEncoding enc ARG_UNUSED, - OnigCodePoint sb_out, - const OnigCodePoint mbr[], OnigCodePoint limit) -{ - int i, r; - OnigCodePoint j; - OnigCodePoint from; - OnigCodePoint to; - - int n = ONIGENC_CODE_RANGE_NUM(mbr); - - if (not == 0) { - for (i = 0; i < n; i++) { - for (j = ONIGENC_CODE_RANGE_FROM(mbr, i); - j <= ONIGENC_CODE_RANGE_TO(mbr, i); j++) { - if (j > limit) goto end; - if (j >= sb_out) { - if (j > ONIGENC_CODE_RANGE_FROM(mbr, i)) { - to = ONIGENC_CODE_RANGE_TO(mbr, i); - if (to > limit) to = limit; - r = add_code_range_to_buf(&(cc->mbuf), j, to); - if (r != 0) return r; - i++; - } - - goto sb_end; - } - BITSET_SET_BIT(cc->bs, j); - } - } - - sb_end: - for ( ; i < n; i++) { - from = ONIGENC_CODE_RANGE_FROM(mbr, i); - to = ONIGENC_CODE_RANGE_TO(mbr, i); - if (from > limit) break; - if (to > limit) to = limit; - r = add_code_range_to_buf(&(cc->mbuf), from, to); - if (r != 0) return r; - } - } - else { - OnigCodePoint prev = 0; - - for (i = 0; i < n; i++) { - from = ONIGENC_CODE_RANGE_FROM(mbr, i); - if (from > limit) { - for (j = prev; j < sb_out; j++) { - BITSET_SET_BIT(cc->bs, j); - } - goto sb_end2; - } - for (j = prev; j < from; j++) { - if (j >= sb_out) goto sb_end2; - BITSET_SET_BIT(cc->bs, j); - } - prev = ONIGENC_CODE_RANGE_TO(mbr, i); - if (prev > limit) prev = limit; - prev++; - if (prev == 0) goto end; - } - for (j = prev; j < sb_out; j++) { - BITSET_SET_BIT(cc->bs, j); - } - - sb_end2: - prev = sb_out; - - for (i = 0; i < n; i++) { - from = ONIGENC_CODE_RANGE_FROM(mbr, i); - if (from > limit) goto last; - - if (prev < from) { - r = add_code_range_to_buf(&(cc->mbuf), prev, from - 1); - if (r != 0) return r; - } - prev = ONIGENC_CODE_RANGE_TO(mbr, i); - if (prev > limit) prev = limit; - prev++; - if (prev == 0) goto end; - } - - last: - r = add_code_range_to_buf(&(cc->mbuf), prev, MAX_CODE_POINT); - if (r != 0) return r; - } - - end: - return 0; -} - -static int -add_ctype_to_cc(CClassNode* cc, int ctype, int not, ScanEnv* env) -{ -#define ASCII_LIMIT 127 - - int c, r; - int ascii_mode; - const OnigCodePoint *ranges; - OnigCodePoint limit; - OnigCodePoint sb_out; - OnigEncoding enc = env->enc; - - ascii_mode = IS_ASCII_MODE_CTYPE_OPTION(ctype, env->options); - - r = ONIGENC_GET_CTYPE_CODE_RANGE(enc, ctype, &sb_out, &ranges); - if (r == 0) { - if (ascii_mode == 0) - r = add_ctype_to_cc_by_range(cc, ctype, not, env->enc, sb_out, ranges); - else - r = add_ctype_to_cc_by_range_limit(cc, ctype, not, env->enc, sb_out, - ranges, ASCII_LIMIT); - return r; - } - else if (r != ONIG_NO_SUPPORT_CONFIG) { - return r; - } - - r = 0; - limit = ascii_mode ? ASCII_LIMIT : SINGLE_BYTE_SIZE; - - switch (ctype) { - case ONIGENC_CTYPE_ALPHA: - case ONIGENC_CTYPE_BLANK: - case ONIGENC_CTYPE_CNTRL: - case ONIGENC_CTYPE_DIGIT: - case ONIGENC_CTYPE_LOWER: - case ONIGENC_CTYPE_PUNCT: - case ONIGENC_CTYPE_SPACE: - case ONIGENC_CTYPE_UPPER: - case ONIGENC_CTYPE_XDIGIT: - case ONIGENC_CTYPE_ASCII: - case ONIGENC_CTYPE_ALNUM: - if (not != 0) { - for (c = 0; c < (int )limit; c++) { - if (! ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) - BITSET_SET_BIT(cc->bs, c); - } - for (c = limit; c < SINGLE_BYTE_SIZE; c++) { - BITSET_SET_BIT(cc->bs, c); - } - - ADD_ALL_MULTI_BYTE_RANGE(enc, cc->mbuf); - } - else { - for (c = 0; c < (int )limit; c++) { - if (ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) - BITSET_SET_BIT(cc->bs, c); - } - } - break; - - case ONIGENC_CTYPE_GRAPH: - case ONIGENC_CTYPE_PRINT: - case ONIGENC_CTYPE_WORD: - if (not != 0) { - for (c = 0; c < (int )limit; c++) { - if (ONIGENC_CODE_TO_MBCLEN(enc, c) > 0 /* check invalid code point */ - && ! ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) - BITSET_SET_BIT(cc->bs, c); - } - for (c = limit; c < SINGLE_BYTE_SIZE; c++) { - if (ONIGENC_CODE_TO_MBCLEN(enc, c) > 0) - BITSET_SET_BIT(cc->bs, c); - } - } - else { - for (c = 0; c < (int )limit; c++) { - if (ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype)) - BITSET_SET_BIT(cc->bs, c); - } - if (ascii_mode == 0) - ADD_ALL_MULTI_BYTE_RANGE(enc, cc->mbuf); - } - break; - - default: - return ONIGERR_PARSER_BUG; - break; - } - - return r; -} - -static int -parse_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ScanEnv* env) -{ -#define POSIX_BRACKET_CHECK_LIMIT_LENGTH 20 -#define POSIX_BRACKET_NAME_MIN_LEN 4 - - static PosixBracketEntryType PBS[] = { - { (UChar* )"alnum", ONIGENC_CTYPE_ALNUM, 5 }, - { (UChar* )"alpha", ONIGENC_CTYPE_ALPHA, 5 }, - { (UChar* )"blank", ONIGENC_CTYPE_BLANK, 5 }, - { (UChar* )"cntrl", ONIGENC_CTYPE_CNTRL, 5 }, - { (UChar* )"digit", ONIGENC_CTYPE_DIGIT, 5 }, - { (UChar* )"graph", ONIGENC_CTYPE_GRAPH, 5 }, - { (UChar* )"lower", ONIGENC_CTYPE_LOWER, 5 }, - { (UChar* )"print", ONIGENC_CTYPE_PRINT, 5 }, - { (UChar* )"punct", ONIGENC_CTYPE_PUNCT, 5 }, - { (UChar* )"space", ONIGENC_CTYPE_SPACE, 5 }, - { (UChar* )"upper", ONIGENC_CTYPE_UPPER, 5 }, - { (UChar* )"xdigit", ONIGENC_CTYPE_XDIGIT, 6 }, - { (UChar* )"ascii", ONIGENC_CTYPE_ASCII, 5 }, - { (UChar* )"word", ONIGENC_CTYPE_WORD, 4 }, - { (UChar* )NULL, -1, 0 } - }; - - PosixBracketEntryType *pb; - int not, i, r; - OnigCodePoint c; - OnigEncoding enc = env->enc; - UChar *p = *src; - - if (PPEEK_IS('^')) { - PINC_S; - not = 1; - } - else - not = 0; - - if (onigenc_strlen(enc, p, end) < POSIX_BRACKET_NAME_MIN_LEN + 3) - goto not_posix_bracket; - - for (pb = PBS; IS_NOT_NULL(pb->name); pb++) { - if (onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0) { - p = (UChar* )onigenc_step(enc, p, end, pb->len); - if (onigenc_with_ascii_strncmp(enc, p, end, (UChar* )":]", 2) != 0) - return ONIGERR_INVALID_POSIX_BRACKET_TYPE; - - r = add_ctype_to_cc(cc, pb->ctype, not, env); - if (r != 0) return r; - - PINC_S; PINC_S; - *src = p; - return 0; - } - } - - not_posix_bracket: - c = 0; - i = 0; - while (!PEND && ((c = PPEEK) != ':') && c != ']') { - PINC_S; - if (++i > POSIX_BRACKET_CHECK_LIMIT_LENGTH) break; - } - if (c == ':' && ! PEND) { - PINC_S; - if (! PEND) { - PFETCH_S(c); - if (c == ']') - return ONIGERR_INVALID_POSIX_BRACKET_TYPE; - } - } - - return 1; /* 1: is not POSIX bracket, but no error. */ -} - -static int -fetch_char_property_to_ctype(UChar** src, UChar* end, ScanEnv* env) -{ - int r; - OnigCodePoint c; - OnigEncoding enc = env->enc; - UChar *prev, *start, *p = *src; - - r = 0; - start = prev = p; - - while (!PEND) { - prev = p; - PFETCH_S(c); - if (c == '}') { - r = ONIGENC_PROPERTY_NAME_TO_CTYPE(enc, start, prev); - if (r < 0) break; - - *src = p; - return r; - } - else if (c == '(' || c == ')' || c == '{' || c == '|') { - r = ONIGERR_INVALID_CHAR_PROPERTY_NAME; - break; - } - } - - onig_scan_env_set_error_string(env, r, *src, prev); - return r; -} - -static int -parse_char_property(Node** np, PToken* tok, UChar** src, UChar* end, ScanEnv* env) -{ - int r, ctype; - CClassNode* cc; - - ctype = fetch_char_property_to_ctype(src, end, env); - if (ctype < 0) return ctype; - - *np = node_new_cclass(); - CHECK_NULL_RETURN_MEMERR(*np); - cc = CCLASS_(*np); - r = add_ctype_to_cc(cc, ctype, 0, env); - if (r != 0) return r; - if (tok->u.prop.not != 0) NCCLASS_SET_NOT(cc); - - return 0; -} - - -enum CCSTATE { - CCS_VALUE, - CCS_RANGE, - CCS_COMPLETE, - CCS_START -}; - -enum CCVALTYPE { - CCV_SB, - CCV_CODE_POINT, - CCV_CLASS -}; - -static int -next_state_class(CClassNode* cc, OnigCodePoint* vs, enum CCVALTYPE* type, - enum CCSTATE* state, ScanEnv* env) -{ - int r; - - if (*state == CCS_RANGE) - return ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE; - - if (*state == CCS_VALUE && *type != CCV_CLASS) { - if (*type == CCV_SB) - BITSET_SET_BIT(cc->bs, (int )(*vs)); - else if (*type == CCV_CODE_POINT) { - r = add_code_range(&(cc->mbuf), env, *vs, *vs); - if (r < 0) return r; - } - } - - *state = CCS_VALUE; - *type = CCV_CLASS; - return 0; -} - -static int -next_state_val(CClassNode* cc, OnigCodePoint *from, OnigCodePoint to, - int* from_israw, int to_israw, - enum CCVALTYPE intype, enum CCVALTYPE* type, - enum CCSTATE* state, ScanEnv* env) -{ - int r; - - switch (*state) { - case CCS_VALUE: - if (*type == CCV_SB) { - if (*from > 0xff) - return ONIGERR_INVALID_CODE_POINT_VALUE; - - BITSET_SET_BIT(cc->bs, (int )(*from)); - } - else if (*type == CCV_CODE_POINT) { - r = add_code_range(&(cc->mbuf), env, *from, *from); - if (r < 0) return r; - } - break; - - case CCS_RANGE: - if (intype == *type) { - if (intype == CCV_SB) { - if (*from > 0xff || to > 0xff) - return ONIGERR_INVALID_CODE_POINT_VALUE; - - if (*from > to) { - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC)) - goto ccs_range_end; - else - return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS; - } - bitset_set_range(cc->bs, (int )*from, (int )to); - } - else { - r = add_code_range(&(cc->mbuf), env, *from, to); - if (r < 0) return r; - } - } - else { - if (*from > to) { - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC)) - goto ccs_range_end; - else - return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS; - } - bitset_set_range(cc->bs, (int )*from, (int )(to < 0xff ? to : 0xff)); - r = add_code_range(&(cc->mbuf), env, (OnigCodePoint )*from, to); - if (r < 0) return r; - } - ccs_range_end: - *state = CCS_COMPLETE; - break; - - case CCS_COMPLETE: - case CCS_START: - *state = CCS_VALUE; - break; - - default: - break; - } - - *from_israw = to_israw; - *from = to; - *type = intype; - return 0; -} - -static int -code_exist_check(OnigCodePoint c, UChar* from, UChar* end, int ignore_escaped, - ScanEnv* env) -{ - int in_esc; - OnigCodePoint code; - OnigEncoding enc = env->enc; - UChar* p = from; - - in_esc = 0; - while (! PEND) { - if (ignore_escaped && in_esc) { - in_esc = 0; - } - else { - PFETCH_S(code); - if (code == c) return 1; - if (code == MC_ESC(env->syntax)) in_esc = 1; - } - } - return 0; -} - -static int -parse_char_class(Node** np, PToken* tok, UChar** src, UChar* end, ScanEnv* env) -{ - int r, neg, len, fetched, and_start; - OnigCodePoint v, vs; - UChar *p; - Node* node; - CClassNode *cc, *prev_cc; - CClassNode work_cc; - - enum CCSTATE state; - enum CCVALTYPE val_type, in_type; - int val_israw, in_israw; - - *np = NULL_NODE; - env->parse_depth++; - if (env->parse_depth > ParseDepthLimit) - return ONIGERR_PARSE_DEPTH_LIMIT_OVER; - - prev_cc = (CClassNode* )NULL; - r = fetch_token_in_cc(tok, src, end, env); - if (r == TK_CHAR && tok->u.c == '^' && tok->escaped == 0) { - neg = 1; - r = fetch_token_in_cc(tok, src, end, env); - } - else { - neg = 0; - } - - if (r < 0) return r; - if (r == TK_CC_CLOSE) { - if (! code_exist_check((OnigCodePoint )']', - *src, env->pattern_end, 1, env)) - return ONIGERR_EMPTY_CHAR_CLASS; - - CC_ESC_WARN(env, (UChar* )"]"); - r = tok->type = TK_CHAR; /* allow []...] */ - } - - *np = node = node_new_cclass(); - CHECK_NULL_RETURN_MEMERR(node); - cc = CCLASS_(node); - - and_start = 0; - state = CCS_START; - p = *src; - while (r != TK_CC_CLOSE) { - fetched = 0; - switch (r) { - case TK_CHAR: - any_char_in: - len = ONIGENC_CODE_TO_MBCLEN(env->enc, tok->u.c); - if (len > 1) { - in_type = CCV_CODE_POINT; - } - else if (len < 0) { - r = len; - goto err; - } - else { - /* sb_char: */ - in_type = CCV_SB; - } - v = (OnigCodePoint )tok->u.c; - in_israw = 0; - goto val_entry2; - break; - - case TK_RAW_BYTE: - /* tok->base != 0 : octal or hexadec. */ - if (! ONIGENC_IS_SINGLEBYTE(env->enc) && tok->base != 0) { - int i, j; - UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; - UChar* bufe = buf + ONIGENC_CODE_TO_MBC_MAXLEN; - UChar* psave = p; - int base = tok->base; - - buf[0] = tok->u.c; - for (i = 1; i < ONIGENC_MBC_MAXLEN(env->enc); i++) { - r = fetch_token_in_cc(tok, &p, end, env); - if (r < 0) goto err; - if (r != TK_RAW_BYTE || tok->base != base) { - fetched = 1; - break; - } - buf[i] = tok->u.c; - } - - if (i < ONIGENC_MBC_MINLEN(env->enc)) { - r = ONIGERR_TOO_SHORT_MULTI_BYTE_STRING; - goto err; - } - - /* clear buf tail */ - for (j = i; j < ONIGENC_CODE_TO_MBC_MAXLEN; j++) buf[j] = '\0'; - - len = enclen(env->enc, buf); - if (i < len) { - r = ONIGERR_TOO_SHORT_MULTI_BYTE_STRING; - goto err; - } - else if (i > len) { /* fetch back */ - p = psave; - for (i = 1; i < len; i++) { - r = fetch_token_in_cc(tok, &p, end, env); - } - fetched = 0; - } - - if (i == 1) { - v = (OnigCodePoint )buf[0]; - goto raw_single; - } - else { - v = ONIGENC_MBC_TO_CODE(env->enc, buf, bufe); - in_type = CCV_CODE_POINT; - } - } - else { - v = (OnigCodePoint )tok->u.c; - raw_single: - in_type = CCV_SB; - } - in_israw = 1; - goto val_entry2; - break; - - case TK_CODE_POINT: - v = tok->u.code; - in_israw = 1; - val_entry: - len = ONIGENC_CODE_TO_MBCLEN(env->enc, v); - if (len < 0) { - if (state != CCS_RANGE || - ! IS_SYNTAX_BV(env->syntax, - ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC) || - v < 0x100 || ONIGENC_MBC_MAXLEN(env->enc) == 1) { - r = len; - goto err; - } - } - in_type = (len == 1 ? CCV_SB : CCV_CODE_POINT); - val_entry2: - r = next_state_val(cc, &vs, v, &val_israw, in_israw, in_type, &val_type, - &state, env); - if (r != 0) goto err; - break; - - case TK_POSIX_BRACKET_OPEN: - r = parse_posix_bracket(cc, &p, end, env); - if (r < 0) goto err; - if (r == 1) { /* is not POSIX bracket */ - CC_ESC_WARN(env, (UChar* )"["); - p = tok->backp; - v = (OnigCodePoint )tok->u.c; - in_israw = 0; - goto val_entry; - } - goto next_class; - break; - - case TK_CHAR_TYPE: - r = add_ctype_to_cc(cc, tok->u.prop.ctype, tok->u.prop.not, env); - if (r != 0) goto err; - - next_class: - r = next_state_class(cc, &vs, &val_type, &state, env); - if (r != 0) goto err; - break; - - case TK_CHAR_PROPERTY: - { - int ctype = fetch_char_property_to_ctype(&p, end, env); - if (ctype < 0) { - r = ctype; - goto err; - } - r = add_ctype_to_cc(cc, ctype, tok->u.prop.not, env); - if (r != 0) goto err; - goto next_class; - } - break; - - case TK_CC_RANGE: - if (state == CCS_VALUE) { - r = fetch_token_in_cc(tok, &p, end, env); - if (r < 0) goto err; - fetched = 1; - if (r == TK_CC_CLOSE) { /* allow [x-] */ - range_end_val: - v = (OnigCodePoint )'-'; - in_israw = 0; - goto val_entry; - } - else if (r == TK_CC_AND) { - CC_ESC_WARN(env, (UChar* )"-"); - goto range_end_val; - } - - if (val_type == CCV_CLASS) { - r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS; - goto err; - } - - state = CCS_RANGE; - } - else if (state == CCS_START) { - /* [-xa] is allowed */ - v = (OnigCodePoint )tok->u.c; - in_israw = 0; - - r = fetch_token_in_cc(tok, &p, end, env); - if (r < 0) goto err; - fetched = 1; - /* [--x] or [a&&-x] is warned. */ - if (r == TK_CC_RANGE || and_start != 0) - CC_ESC_WARN(env, (UChar* )"-"); - - goto val_entry; - } - else if (state == CCS_RANGE) { - CC_ESC_WARN(env, (UChar* )"-"); - goto any_char_in; /* [!--x] is allowed */ - } - else { /* CCS_COMPLETE */ - r = fetch_token_in_cc(tok, &p, end, env); - if (r < 0) goto err; - fetched = 1; - if (r == TK_CC_CLOSE) goto range_end_val; /* allow [a-b-] */ - else if (r == TK_CC_AND) { - CC_ESC_WARN(env, (UChar* )"-"); - goto range_end_val; - } - - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC)) { - CC_ESC_WARN(env, (UChar* )"-"); - goto range_end_val; /* [0-9-a] is allowed as [0-9\-a] */ - } - r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS; - goto err; - } - break; - - case TK_CC_CC_OPEN: /* [ */ - { - Node *anode; - CClassNode* acc; - - r = parse_char_class(&anode, tok, &p, end, env); - if (r != 0) { - onig_node_free(anode); - goto cc_open_err; - } - acc = CCLASS_(anode); - r = or_cclass(cc, acc, env->enc); - onig_node_free(anode); - - cc_open_err: - if (r != 0) goto err; - } - break; - - case TK_CC_AND: /* && */ - { - if (state == CCS_VALUE) { - r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type, - &val_type, &state, env); - if (r != 0) goto err; - } - /* initialize local variables */ - and_start = 1; - state = CCS_START; - - if (IS_NOT_NULL(prev_cc)) { - r = and_cclass(prev_cc, cc, env->enc); - if (r != 0) goto err; - bbuf_free(cc->mbuf); - } - else { - prev_cc = cc; - cc = &work_cc; - } - initialize_cclass(cc); - } - break; - - case TK_EOT: - r = ONIGERR_PREMATURE_END_OF_CHAR_CLASS; - goto err; - break; - default: - r = ONIGERR_PARSER_BUG; - goto err; - break; - } - - if (fetched) - r = tok->type; - else { - r = fetch_token_in_cc(tok, &p, end, env); - if (r < 0) goto err; - } - } - - if (state == CCS_VALUE) { - r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type, - &val_type, &state, env); - if (r != 0) goto err; - } - - if (IS_NOT_NULL(prev_cc)) { - r = and_cclass(prev_cc, cc, env->enc); - if (r != 0) goto err; - bbuf_free(cc->mbuf); - cc = prev_cc; - } - - if (neg != 0) - NCCLASS_SET_NOT(cc); - else - NCCLASS_CLEAR_NOT(cc); - if (IS_NCCLASS_NOT(cc) && - IS_SYNTAX_BV(env->syntax, ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC)) { - int is_empty = (IS_NULL(cc->mbuf) ? 1 : 0); - if (is_empty != 0) - BITSET_IS_EMPTY(cc->bs, is_empty); - - if (is_empty == 0) { -#define NEWLINE_CODE 0x0a - - if (ONIGENC_IS_CODE_NEWLINE(env->enc, NEWLINE_CODE)) { - if (ONIGENC_CODE_TO_MBCLEN(env->enc, NEWLINE_CODE) == 1) - BITSET_SET_BIT(cc->bs, NEWLINE_CODE); - else - add_code_range(&(cc->mbuf), env, NEWLINE_CODE, NEWLINE_CODE); - } - } - } - *src = p; - env->parse_depth--; - return 0; - - err: - if (cc != CCLASS_(*np)) - bbuf_free(cc->mbuf); - return r; -} - -static int parse_subexp(Node** top, PToken* tok, int term, - UChar** src, UChar* end, ScanEnv* env, int group_head); - -#ifdef USE_CALLOUT - -/* (?{...}[tag][+-]) (?{{...}}[tag][+-]) */ -static int -parse_callout_of_contents(Node** np, int cterm, UChar** src, UChar* end, ScanEnv* env) -{ - int r; - int i; - int in; - int num; - OnigCodePoint c; - UChar* code_start; - UChar* code_end; - UChar* contents; - UChar* tag_start; - UChar* tag_end; - int brace_nest; - CalloutListEntry* e; - RegexExt* ext; - OnigEncoding enc = env->enc; - UChar* p = *src; - - if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; - - brace_nest = 0; - while (PPEEK_IS('{')) { - brace_nest++; - PINC_S; - if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; - } - - in = ONIG_CALLOUT_IN_PROGRESS; - code_start = p; - while (1) { - if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; - - code_end = p; - PFETCH_S(c); - if (c == '}') { - i = brace_nest; - while (i > 0) { - if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; - PFETCH_S(c); - if (c == '}') i--; - else break; - } - if (i == 0) break; - } - } - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - - PFETCH_S(c); - if (c == '[') { - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - tag_end = tag_start = p; - while (! PEND) { - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - tag_end = p; - PFETCH_S(c); - if (c == ']') break; - } - if (! is_allowed_callout_tag_name(enc, tag_start, tag_end)) - return ONIGERR_INVALID_CALLOUT_TAG_NAME; - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH_S(c); - } - else { - tag_start = tag_end = 0; - } - - if (c == 'X') { - in |= ONIG_CALLOUT_IN_RETRACTION; - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH_S(c); - } - else if (c == '<') { - in = ONIG_CALLOUT_IN_RETRACTION; - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH_S(c); - } - else if (c == '>') { /* no needs (default) */ - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH_S(c); - } - - if (c != cterm) - return ONIGERR_INVALID_CALLOUT_PATTERN; - - r = reg_callout_list_entry(env, &num); - if (r != 0) return r; - - ext = onig_get_regex_ext(env->reg); - CHECK_NULL_RETURN_MEMERR(ext); - if (IS_NULL(ext->pattern)) { - r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end); - if (r != ONIG_NORMAL) return r; - } - - if (tag_start != tag_end) { - r = callout_tag_entry(env, env->reg, tag_start, tag_end, num); - if (r != ONIG_NORMAL) return r; - } - - contents = onigenc_strdup(enc, code_start, code_end); - CHECK_NULL_RETURN_MEMERR(contents); - - r = node_new_callout(np, ONIG_CALLOUT_OF_CONTENTS, num, ONIG_NON_NAME_ID, env); - if (r != 0) { - xfree(contents); - return r; - } - - e = onig_reg_callout_list_at(env->reg, num); - if (IS_NULL(e)) { - xfree(contents); - return ONIGERR_MEMORY; - } - - e->of = ONIG_CALLOUT_OF_CONTENTS; - e->in = in; - e->name_id = ONIG_NON_NAME_ID; - e->u.content.start = contents; - e->u.content.end = contents + (code_end - code_start); - - *src = p; - return 0; -} - -static long -parse_long(OnigEncoding enc, UChar* s, UChar* end, int sign_on, long max, long* rl) -{ - long v; - long d; - int flag; - UChar* p; - OnigCodePoint c; - - if (s >= end) return ONIGERR_INVALID_CALLOUT_ARG; - - flag = 1; - v = 0; - p = s; - while (p < end) { - c = ONIGENC_MBC_TO_CODE(enc, p, end); - p += ONIGENC_MBC_ENC_LEN(enc, p); - if (c >= '0' && c <= '9') { - d = (long )(c - '0'); - if (v > (max - d) / 10) - return ONIGERR_INVALID_CALLOUT_ARG; - - v = v * 10 + d; - } - else if (sign_on != 0 && (c == '-' || c == '+')) { - if (c == '-') flag = -1; - } - else - return ONIGERR_INVALID_CALLOUT_ARG; - - sign_on = 0; - } - - *rl = flag * v; - return ONIG_NORMAL; -} - -static int -parse_callout_args(int skip_mode, int cterm, UChar** src, UChar* end, - unsigned int types[], OnigValue vals[], ScanEnv* env) -{ -#define MAX_CALLOUT_ARG_BYTE_LENGTH 128 - - int r; - int n; - int esc; - int cn; - UChar* s; - UChar* e; - UChar* eesc; - OnigCodePoint c; - UChar* bufend; - UChar buf[MAX_CALLOUT_ARG_BYTE_LENGTH]; - OnigEncoding enc = env->enc; - UChar* p = *src; - - if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; - - n = 0; - while (n < ONIG_CALLOUT_MAX_ARGS_NUM) { - c = 0; - cn = 0; - esc = 0; - eesc = 0; - bufend = buf; - s = e = p; - while (1) { - if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; - - e = p; - PFETCH_S(c); - if (esc != 0) { - esc = 0; - if (c == '\\' || c == cterm || c == ',') { - /* */ - } - else { - e = eesc; - cn++; - } - goto add_char; - } - else { - if (c == '\\') { - esc = 1; - eesc = e; - } - else if (c == cterm || c == ',') - break; - else { - size_t clen; - - add_char: - if (skip_mode == 0) { - clen = p - e; - if (bufend + clen > buf + MAX_CALLOUT_ARG_BYTE_LENGTH) - return ONIGERR_INVALID_CALLOUT_ARG; /* too long argument */ - - xmemcpy(bufend, e, clen); - bufend += clen; - } - cn++; - } - } - } - - if (cn != 0) { - if (skip_mode == 0) { - if ((types[n] & ONIG_TYPE_LONG) != 0) { - int fixed = 0; - if (cn > 0) { - long rl; - r = parse_long(enc, buf, bufend, 1, LONG_MAX, &rl); - if (r == ONIG_NORMAL) { - vals[n].l = rl; - fixed = 1; - types[n] = ONIG_TYPE_LONG; - } - } - - if (fixed == 0) { - types[n] = (types[n] & ~ONIG_TYPE_LONG); - if (types[n] == ONIG_TYPE_VOID) - return ONIGERR_INVALID_CALLOUT_ARG; - } - } - - switch (types[n]) { - case ONIG_TYPE_LONG: - break; - - case ONIG_TYPE_CHAR: - if (cn != 1) return ONIGERR_INVALID_CALLOUT_ARG; - vals[n].c = ONIGENC_MBC_TO_CODE(enc, buf, bufend); - break; - - case ONIG_TYPE_STRING: - { - UChar* rs = onigenc_strdup(enc, buf, bufend); - CHECK_NULL_RETURN_MEMERR(rs); - vals[n].s.start = rs; - vals[n].s.end = rs + (e - s); - } - break; - - case ONIG_TYPE_TAG: - if (eesc != 0 || ! is_allowed_callout_tag_name(enc, s, e)) - return ONIGERR_INVALID_CALLOUT_TAG_NAME; - - vals[n].s.start = s; - vals[n].s.end = e; - break; - - case ONIG_TYPE_VOID: - case ONIG_TYPE_POINTER: - return ONIGERR_PARSER_BUG; - break; - } - } - - n++; - } - - if (c == cterm) break; - } - - if (c != cterm) return ONIGERR_INVALID_CALLOUT_PATTERN; - - *src = p; - return n; -} - -/* (*name[TAG]) (*name[TAG]{a,b,..}) */ -static int -parse_callout_of_name(Node** np, int cterm, UChar** src, UChar* end, ScanEnv* env) -{ - int r; - int i; - int in; - int num; - int name_id; - int arg_num; - int max_arg_num; - int opt_arg_num; - int is_not_single; - OnigCodePoint c; - UChar* name_start; - UChar* name_end; - UChar* tag_start; - UChar* tag_end; - Node* node; - CalloutListEntry* e; - RegexExt* ext; - unsigned int types[ONIG_CALLOUT_MAX_ARGS_NUM]; - OnigValue vals[ONIG_CALLOUT_MAX_ARGS_NUM]; - OnigEncoding enc = env->enc; - UChar* p = *src; - - /* PFETCH_READY; */ - if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN; - - node = 0; - name_start = p; - while (1) { - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - name_end = p; - PFETCH_S(c); - if (c == cterm || c == '[' || c == '{') break; - } - - if (! is_allowed_callout_name(enc, name_start, name_end)) - return ONIGERR_INVALID_CALLOUT_NAME; - - if (c == '[') { - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - tag_end = tag_start = p; - while (! PEND) { - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - tag_end = p; - PFETCH_S(c); - if (c == ']') break; - } - if (! is_allowed_callout_tag_name(enc, tag_start, tag_end)) - return ONIGERR_INVALID_CALLOUT_TAG_NAME; - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH_S(c); - } - else { - tag_start = tag_end = 0; - } - - if (c == '{') { - UChar* save; - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - - /* read for single check only */ - save = p; - arg_num = parse_callout_args(1, '}', &p, end, 0, 0, env); - if (arg_num < 0) return arg_num; - - is_not_single = PPEEK_IS(cterm) ? 0 : 1; - p = save; - r = get_callout_name_id_by_name(enc, is_not_single, name_start, name_end, - &name_id); - if (r != ONIG_NORMAL) return r; - - max_arg_num = get_callout_arg_num_by_name_id(name_id); - for (i = 0; i < max_arg_num; i++) { - types[i] = get_callout_arg_type_by_name_id(name_id, i); - } - - arg_num = parse_callout_args(0, '}', &p, end, types, vals, env); - if (arg_num < 0) return arg_num; - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH_S(c); - } - else { - arg_num = 0; - - is_not_single = 0; - r = get_callout_name_id_by_name(enc, is_not_single, name_start, name_end, - &name_id); - if (r != ONIG_NORMAL) return r; - - max_arg_num = get_callout_arg_num_by_name_id(name_id); - for (i = 0; i < max_arg_num; i++) { - types[i] = get_callout_arg_type_by_name_id(name_id, i); - } - } - - in = onig_get_callout_in_by_name_id(name_id); - opt_arg_num = get_callout_opt_arg_num_by_name_id(name_id); - if (arg_num > max_arg_num || arg_num < (max_arg_num - opt_arg_num)) - return ONIGERR_INVALID_CALLOUT_ARG; - - if (c != cterm) - return ONIGERR_INVALID_CALLOUT_PATTERN; - - r = reg_callout_list_entry(env, &num); - if (r != 0) return r; - - ext = onig_get_regex_ext(env->reg); - CHECK_NULL_RETURN_MEMERR(ext); - if (IS_NULL(ext->pattern)) { - r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end); - if (r != ONIG_NORMAL) return r; - } - - if (tag_start != tag_end) { - r = callout_tag_entry(env, env->reg, tag_start, tag_end, num); - if (r != ONIG_NORMAL) return r; - } - - r = node_new_callout(&node, ONIG_CALLOUT_OF_NAME, num, name_id, env); - if (r != ONIG_NORMAL) return r; - - e = onig_reg_callout_list_at(env->reg, num); - CHECK_NULL_RETURN_MEMERR(e); - - e->of = ONIG_CALLOUT_OF_NAME; - e->in = in; - e->name_id = name_id; - e->type = onig_get_callout_type_by_name_id(name_id); - e->start_func = onig_get_callout_start_func_by_name_id(name_id); - e->end_func = onig_get_callout_end_func_by_name_id(name_id); - e->u.arg.num = max_arg_num; - e->u.arg.passed_num = arg_num; - for (i = 0; i < max_arg_num; i++) { - e->u.arg.types[i] = types[i]; - if (i < arg_num) - e->u.arg.vals[i] = vals[i]; - else - e->u.arg.vals[i] = get_callout_opt_default_by_name_id(name_id, i); - } - - *np = node; - *src = p; - return 0; -} -#endif - -static int -parse_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end, - ScanEnv* env) -{ - int r, num; - Node *target; - OnigOptionType option; - OnigCodePoint c; - int list_capture; - OnigEncoding enc = env->enc; - - UChar* p = *src; - PFETCH_READY; - - *np = NULL; - if (PEND) return ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS; - - option = env->options; - c = PPEEK; - if (c == '?' && IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_GROUP_EFFECT)) { - PINC; - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - - PFETCH(c); - switch (c) { - case ':': /* (?:...) grouping only */ - group: - r = fetch_token(tok, &p, end, env); - if (r < 0) return r; - r = parse_subexp(np, tok, term, &p, end, env, 0); - if (r < 0) return r; - *src = p; - return 1; /* group */ - break; - - case '=': - *np = onig_node_new_anchor(ANCR_PREC_READ, 0); - break; - case '!': /* preceding read */ - *np = onig_node_new_anchor(ANCR_PREC_READ_NOT, 0); - break; - case '>': /* (?>...) stop backtrack */ - *np = node_new_bag(BAG_STOP_BACKTRACK); - break; - - case '\'': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) { - goto named_group1; - } - else - return ONIGERR_UNDEFINED_GROUP_OPTION; - break; - - case '<': /* look behind (?<=...), (?syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) { - UChar *name; - UChar *name_end; - enum REF_NUM num_type; - - PUNFETCH; - c = '<'; - - named_group1: - list_capture = 0; - - named_group2: - name = p; - r = fetch_name((OnigCodePoint )c, &p, end, &name_end, env, &num, - &num_type, 0); - if (r < 0) return r; - - num = scan_env_add_mem_entry(env); - if (num < 0) return num; - if (list_capture != 0 && num >= (int )MEM_STATUS_BITS_NUM) - return ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY; - - r = name_add(env->reg, name, name_end, num, env); - if (r != 0) return r; - *np = node_new_memory(1); - CHECK_NULL_RETURN_MEMERR(*np); - BAG_(*np)->m.regnum = num; - if (list_capture != 0) - MEM_STATUS_ON_SIMPLE(env->capture_history, num); - env->num_named++; - } - else { - return ONIGERR_UNDEFINED_GROUP_OPTION; - } - } - break; - - case '~': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP)) { - Node* absent; - Node* expr; - int head_bar; - int is_range_cutter; - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - - if (PPEEK_IS('|')) { /* (?~|generator|absent) */ - PINC; - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - - head_bar = 1; - if (PPEEK_IS(')')) { /* (?~|) : range clear */ - PINC; - r = make_range_clear(np, env); - if (r != 0) return r; - goto end; - } - } - else - head_bar = 0; - - r = fetch_token(tok, &p, end, env); - if (r < 0) return r; - r = parse_subexp(&absent, tok, term, &p, end, env, 1); - if (r < 0) { - onig_node_free(absent); - return r; - } - - expr = NULL_NODE; - is_range_cutter = 0; - if (head_bar != 0) { - Node* top = absent; - if (NODE_TYPE(top) != NODE_ALT || IS_NULL(NODE_CDR(top))) { - expr = NULL_NODE; - is_range_cutter = 1; - /* return ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN; */ - } - else { - absent = NODE_CAR(top); - expr = NODE_CDR(top); - NODE_CAR(top) = NULL_NODE; - NODE_CDR(top) = NULL_NODE; - onig_node_free(top); - if (IS_NULL(NODE_CDR(expr))) { - top = expr; - expr = NODE_CAR(top); - NODE_CAR(top) = NULL_NODE; - onig_node_free(top); - } - } - } - - r = make_absent_tree(np, absent, expr, is_range_cutter, env); - if (r != 0) { - return r; - } - goto end; - } - else { - return ONIGERR_UNDEFINED_GROUP_OPTION; - } - break; - -#ifdef USE_CALLOUT - case '{': - if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS)) - return ONIGERR_UNDEFINED_GROUP_OPTION; - - r = parse_callout_of_contents(np, ')', &p, end, env); - if (r != 0) return r; - - goto end; - break; -#endif - - case '(': - /* (?()...) */ - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE)) { - UChar *prev; - Node* condition; - int condition_is_checker; - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH(c); - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - - if (IS_CODE_DIGIT_ASCII(enc, c) - || c == '-' || c == '+' || c == '<' || c == '\'') { - UChar* name_end; - int back_num; - int exist_level; - int level; - enum REF_NUM num_type; - int is_enclosed; - - is_enclosed = (c == '<' || c == '\'') ? 1 : 0; - if (! is_enclosed) - PUNFETCH; - prev = p; - exist_level = 0; -#ifdef USE_BACKREF_WITH_LEVEL - name_end = NULL_UCHARP; /* no need. escape gcc warning. */ - r = fetch_name_with_level( - (OnigCodePoint )(is_enclosed != 0 ? c : '('), - &p, end, &name_end, - env, &back_num, &level, &num_type); - if (r == 1) exist_level = 1; -#else - r = fetch_name((OnigCodePoint )(is_enclosed != 0 ? c : '('), - &p, end, &name_end, env, &back_num, &num_type, 1); -#endif - if (r < 0) { - if (is_enclosed == 0) { - goto any_condition; - } - else - return r; - } - - condition_is_checker = 1; - if (num_type != IS_NOT_NUM) { - if (num_type == IS_REL_NUM) { - back_num = backref_rel_to_abs(back_num, env); - } - if (back_num <= 0) - return ONIGERR_INVALID_BACKREF; - - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_STRICT_CHECK_BACKREF)) { - if (back_num > env->num_mem || - IS_NULL(SCANENV_MEMENV(env)[back_num].node)) - return ONIGERR_INVALID_BACKREF; - } - - condition = node_new_backref_checker(1, &back_num, 0, -#ifdef USE_BACKREF_WITH_LEVEL - exist_level, level, -#endif - env); - } - else { - int num; - int* backs; - - num = name_to_group_numbers(env, prev, name_end, &backs); - if (num <= 0) { - return ONIGERR_UNDEFINED_NAME_REFERENCE; - } - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_STRICT_CHECK_BACKREF)) { - int i; - for (i = 0; i < num; i++) { - if (backs[i] > env->num_mem || - IS_NULL(SCANENV_MEMENV(env)[backs[i]].node)) - return ONIGERR_INVALID_BACKREF; - } - } - - condition = node_new_backref_checker(num, backs, 1, -#ifdef USE_BACKREF_WITH_LEVEL - exist_level, level, -#endif - env); - } - - if (is_enclosed != 0) { - if (PEND) goto err_if_else; - PFETCH(c); - if (c != ')') goto err_if_else; - } - } -#ifdef USE_CALLOUT - else if (c == '?') { - if (IS_SYNTAX_OP2(env->syntax, - ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS)) { - if (! PEND && PPEEK_IS('{')) { - /* condition part is callouts of contents: (?(?{...})THEN|ELSE) */ - condition_is_checker = 0; - PFETCH(c); - r = parse_callout_of_contents(&condition, ')', &p, end, env); - if (r != 0) return r; - goto end_condition; - } - } - goto any_condition; - } - else if (c == '*' && - IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME)) { - condition_is_checker = 0; - r = parse_callout_of_name(&condition, ')', &p, end, env); - if (r != 0) return r; - goto end_condition; - } -#endif - else { - any_condition: - PUNFETCH; - condition_is_checker = 0; - r = fetch_token(tok, &p, end, env); - if (r < 0) return r; - r = parse_subexp(&condition, tok, term, &p, end, env, 0); - if (r < 0) { - onig_node_free(condition); - return r; - } - } - -#ifdef USE_CALLOUT - end_condition: -#endif - CHECK_NULL_RETURN_MEMERR(condition); - - if (PEND) { - err_if_else: - onig_node_free(condition); - return ONIGERR_END_PATTERN_IN_GROUP; - } - - if (PPEEK_IS(')')) { /* case: empty body: make backref checker */ - if (condition_is_checker == 0) { - onig_node_free(condition); - return ONIGERR_INVALID_IF_ELSE_SYNTAX; - } - PFETCH(c); - *np = condition; - } - else { /* if-else */ - int then_is_empty; - Node *Then, *Else; - - Then = 0; - if (PPEEK_IS('|')) { - PFETCH(c); - then_is_empty = 1; - } - else - then_is_empty = 0; - - r = fetch_token(tok, &p, end, env); - if (r < 0) { - onig_node_free(condition); - return r; - } - r = parse_subexp(&target, tok, term, &p, end, env, 1); - if (r < 0) { - onig_node_free(condition); - onig_node_free(target); - return r; - } - - if (then_is_empty != 0) { - Else = target; - } - else { - if (NODE_TYPE(target) == NODE_ALT) { - Then = NODE_CAR(target); - if (NODE_CDR(NODE_CDR(target)) == NULL_NODE) { - Else = NODE_CAR(NODE_CDR(target)); - cons_node_free_alone(NODE_CDR(target)); - } - else { - Else = NODE_CDR(target); - } - cons_node_free_alone(target); - } - else { - Then = target; - Else = 0; - } - } - - *np = node_new_bag_if_else(condition, Then, Else); - if (IS_NULL(*np)) { - onig_node_free(condition); - onig_node_free(Then); - onig_node_free(Else); - return ONIGERR_MEMORY; - } - } - goto end; - } - else { - return ONIGERR_UNDEFINED_GROUP_OPTION; - } - break; - -#ifdef USE_CAPTURE_HISTORY - case '@': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY)) { - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) { - PFETCH(c); - if (c == '<' || c == '\'') { - list_capture = 1; - goto named_group2; /* (?@...) */ - } - PUNFETCH; - } - - *np = node_new_memory(0); - CHECK_NULL_RETURN_MEMERR(*np); - num = scan_env_add_mem_entry(env); - if (num < 0) { - return num; - } - else if (num >= (int )MEM_STATUS_BITS_NUM) { - return ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY; - } - BAG_(*np)->m.regnum = num; - MEM_STATUS_ON_SIMPLE(env->capture_history, num); - } - else { - return ONIGERR_UNDEFINED_GROUP_OPTION; - } - break; -#endif - -#ifdef USE_POSIXLINE_OPTION - case 'p': -#endif - case '-': case 'i': case 'm': case 's': case 'x': - case 'W': case 'D': case 'S': case 'P': - case 'y': - { - int neg = 0; - - while (1) { - switch (c) { - case ':': - case ')': - break; - - case '-': neg = 1; break; - case 'x': OPTION_NEGATE(option, ONIG_OPTION_EXTEND, neg); break; - case 'i': OPTION_NEGATE(option, ONIG_OPTION_IGNORECASE, neg); break; - case 's': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL)) { - OPTION_NEGATE(option, ONIG_OPTION_MULTILINE, neg); - } - else - return ONIGERR_UNDEFINED_GROUP_OPTION; - break; - - case 'm': - if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL)) { - OPTION_NEGATE(option, ONIG_OPTION_SINGLELINE, (neg == 0 ? 1 : 0)); - } - else if (IS_SYNTAX_OP2(env->syntax, - ONIG_SYN_OP2_OPTION_ONIGURUMA|ONIG_SYN_OP2_OPTION_RUBY)) { - OPTION_NEGATE(option, ONIG_OPTION_MULTILINE, neg); - } - else - return ONIGERR_UNDEFINED_GROUP_OPTION; - break; -#ifdef USE_POSIXLINE_OPTION - case 'p': - OPTION_NEGATE(option, ONIG_OPTION_MULTILINE|ONIG_OPTION_SINGLELINE, neg); - break; -#endif - case 'W': OPTION_NEGATE(option, ONIG_OPTION_WORD_IS_ASCII, neg); break; - case 'D': OPTION_NEGATE(option, ONIG_OPTION_DIGIT_IS_ASCII, neg); break; - case 'S': OPTION_NEGATE(option, ONIG_OPTION_SPACE_IS_ASCII, neg); break; - case 'P': OPTION_NEGATE(option, ONIG_OPTION_POSIX_IS_ASCII, neg); break; - - case 'y': /* y{g}, y{w} */ - { - if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA)) - return ONIGERR_UNDEFINED_GROUP_OPTION; - - if (neg != 0) return ONIGERR_UNDEFINED_GROUP_OPTION; - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - if (! PPEEK_IS('{')) return ONIGERR_UNDEFINED_GROUP_OPTION; - PFETCH(c); - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH(c); - switch (c) { - case 'g': - if (! ONIGENC_IS_UNICODE_ENCODING(enc)) - return ONIGERR_UNDEFINED_GROUP_OPTION; - - OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER, 0); - OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_WORD, 1); - break; -#ifdef USE_UNICODE_WORD_BREAK - case 'w': - if (! ONIGENC_IS_UNICODE_ENCODING(enc)) - return ONIGERR_UNDEFINED_GROUP_OPTION; - - OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_WORD, 0); - OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER, 1); - break; -#endif - default: - return ONIGERR_UNDEFINED_GROUP_OPTION; - break; - } - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH(c); - if (c != '}') - return ONIGERR_UNDEFINED_GROUP_OPTION; - break; - } /* case 'y' */ - - default: - return ONIGERR_UNDEFINED_GROUP_OPTION; - } - - if (c == ')') { - *np = node_new_option(option); - CHECK_NULL_RETURN_MEMERR(*np); - *src = p; - return 2; /* option only */ - } - else if (c == ':') { - OnigOptionType prev = env->options; - - env->options = option; - r = fetch_token(tok, &p, end, env); - if (r < 0) return r; - r = parse_subexp(&target, tok, term, &p, end, env, 0); - env->options = prev; - if (r < 0) { - onig_node_free(target); - return r; - } - *np = node_new_option(option); - CHECK_NULL_RETURN_MEMERR(*np); - NODE_BODY(*np) = target; - *src = p; - return 0; - } - - if (PEND) return ONIGERR_END_PATTERN_IN_GROUP; - PFETCH(c); - } /* while (1) */ - } - break; - - default: - return ONIGERR_UNDEFINED_GROUP_OPTION; - } - } -#ifdef USE_CALLOUT - else if (c == '*' && - IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME)) { - PINC; - r = parse_callout_of_name(np, ')', &p, end, env); - if (r != 0) return r; - - goto end; - } -#endif - else { - if (ONIG_IS_OPTION_ON(env->options, ONIG_OPTION_DONT_CAPTURE_GROUP)) - goto group; - - *np = node_new_memory(0); - CHECK_NULL_RETURN_MEMERR(*np); - num = scan_env_add_mem_entry(env); - if (num < 0) return num; - BAG_(*np)->m.regnum = num; - } - - CHECK_NULL_RETURN_MEMERR(*np); - r = fetch_token(tok, &p, end, env); - if (r < 0) return r; - r = parse_subexp(&target, tok, term, &p, end, env, 0); - if (r < 0) { - onig_node_free(target); - return r; - } - - NODE_BODY(*np) = target; - - if (NODE_TYPE(*np) == NODE_BAG) { - if (BAG_(*np)->type == BAG_MEMORY) { - /* Don't move this to previous of parse_subexp() */ - r = scan_env_set_mem_node(env, BAG_(*np)->m.regnum, *np); - if (r != 0) return r; - } - } - - end: - *src = p; - return 0; -} - -static const char* PopularQStr[] = { - "?", "*", "+", "??", "*?", "+?" -}; - -static const char* ReduceQStr[] = { - "", "", "*", "*?", "??", "+ and ??", "+? and ?" -}; - -static int -set_quantifier(Node* qnode, Node* target, int group, ScanEnv* env) -{ - QuantNode* qn; - - qn = QUANT_(qnode); - if (qn->lower == 1 && qn->upper == 1) - return 1; - - switch (NODE_TYPE(target)) { - case NODE_STRING: - if (group == 0) { - if (str_node_can_be_split(target, env->enc)) { - Node* n = str_node_split_last_char(target, env->enc); - if (IS_NOT_NULL(n)) { - NODE_BODY(qnode) = n; - return 2; - } - } - } - break; - - case NODE_QUANT: - { /* check redundant double repeat. */ - /* verbose warn (?:.?)? etc... but not warn (.?)? etc... */ - QuantNode* qnt = QUANT_(target); - int nestq_num = quantifier_type_num(qn); - int targetq_num = quantifier_type_num(qnt); - -#ifdef USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR - if (targetq_num >= 0 && nestq_num >= 0 && - IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT)) { - UChar buf[WARN_BUFSIZE]; - - switch(ReduceTypeTable[targetq_num][nestq_num]) { - case RQ_ASIS: - break; - - case RQ_DEL: - if (onig_verb_warn != onig_null_warn) { - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, - env->pattern, env->pattern_end, - (UChar* )"redundant nested repeat operator"); - (*onig_verb_warn)((char* )buf); - } - goto warn_exit; - break; - - default: - if (onig_verb_warn != onig_null_warn) { - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, - env->pattern, env->pattern_end, - (UChar* )"nested repeat operator %s and %s was replaced with '%s'", - PopularQStr[targetq_num], PopularQStr[nestq_num], - ReduceQStr[ReduceTypeTable[targetq_num][nestq_num]]); - (*onig_verb_warn)((char* )buf); - } - goto warn_exit; - break; - } - } - - warn_exit: -#endif - if (targetq_num >= 0 && nestq_num < 0) { - if (targetq_num == 1 || targetq_num == 2) { /* * or + */ - /* (?:a*){n,m}, (?:a+){n,m} => (?:a*){n,n}, (?:a+){n,n} */ - if (! IS_INFINITE_REPEAT(qn->upper) && qn->upper > 1 && qn->greedy) { - qn->upper = (qn->lower == 0 ? 1 : qn->lower); - } - } - } - else { - NODE_BODY(qnode) = target; - onig_reduce_nested_quantifier(qnode, target); - goto q_exit; - } - } - break; - - default: - break; - } - - NODE_BODY(qnode) = target; - q_exit: - return 0; -} - - -#ifndef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS -static int -clear_not_flag_cclass(CClassNode* cc, OnigEncoding enc) -{ - BBuf *tbuf; - int r; - - if (IS_NCCLASS_NOT(cc)) { - bitset_invert(cc->bs); - - if (! ONIGENC_IS_SINGLEBYTE(enc)) { - r = not_code_range_buf(enc, cc->mbuf, &tbuf); - if (r != 0) return r; - - bbuf_free(cc->mbuf); - cc->mbuf = tbuf; - } - - NCCLASS_CLEAR_NOT(cc); - } - - return 0; -} -#endif /* CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS */ - -typedef struct { - ScanEnv* env; - CClassNode* cc; - Node* alt_root; - Node** ptail; -} IApplyCaseFoldArg; - -static int -i_apply_case_fold(OnigCodePoint from, OnigCodePoint to[], int to_len, void* arg) -{ - IApplyCaseFoldArg* iarg; - ScanEnv* env; - CClassNode* cc; - BitSetRef bs; - - iarg = (IApplyCaseFoldArg* )arg; - env = iarg->env; - cc = iarg->cc; - bs = cc->bs; - - if (to_len == 1) { - int is_in = onig_is_code_in_cc(env->enc, from, cc); -#ifdef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS - if ((is_in != 0 && !IS_NCCLASS_NOT(cc)) || - (is_in == 0 && IS_NCCLASS_NOT(cc))) { - if (ONIGENC_MBC_MINLEN(env->enc) > 1 || *to >= SINGLE_BYTE_SIZE) { - add_code_range(&(cc->mbuf), env, *to, *to); - } - else { - BITSET_SET_BIT(bs, *to); - } - } -#else - if (is_in != 0) { - if (ONIGENC_MBC_MINLEN(env->enc) > 1 || *to >= SINGLE_BYTE_SIZE) { - if (IS_NCCLASS_NOT(cc)) clear_not_flag_cclass(cc, env->enc); - add_code_range(&(cc->mbuf), env, *to, *to); - } - else { - if (IS_NCCLASS_NOT(cc)) { - BITSET_CLEAR_BIT(bs, *to); - } - else - BITSET_SET_BIT(bs, *to); - } - } -#endif /* CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS */ - } - else { - int r, i, len; - UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; - Node *snode = NULL_NODE; - - if (onig_is_code_in_cc(env->enc, from, cc) -#ifdef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS - && !IS_NCCLASS_NOT(cc) -#endif - ) { - for (i = 0; i < to_len; i++) { - len = ONIGENC_CODE_TO_MBC(env->enc, to[i], buf); - if (i == 0) { - snode = onig_node_new_str(buf, buf + len); - CHECK_NULL_RETURN_MEMERR(snode); - - /* char-class expanded multi-char only - compare with string folded at match time. */ - NODE_STRING_SET_AMBIG(snode); - } - else { - r = onig_node_str_cat(snode, buf, buf + len); - if (r < 0) { - onig_node_free(snode); - return r; - } - } - } - - *(iarg->ptail) = onig_node_new_alt(snode, NULL_NODE); - CHECK_NULL_RETURN_MEMERR(*(iarg->ptail)); - iarg->ptail = &(NODE_CDR((*(iarg->ptail)))); - } - } - - return 0; -} - -static int -parse_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end, - ScanEnv* env, int group_head) -{ - int r, len, group; - Node* qn; - Node** tp; - unsigned int parse_depth; - - group = 0; - *np = NULL; - if (tok->type == (enum TokenSyms )term) - goto end_of_token; - - parse_depth = env->parse_depth; - - switch (tok->type) { - case TK_ALT: - case TK_EOT: - end_of_token: - *np = node_new_empty(); - CHECK_NULL_RETURN_MEMERR(*np); - return tok->type; - break; - - case TK_SUBEXP_OPEN: - r = parse_bag(np, tok, TK_SUBEXP_CLOSE, src, end, env); - if (r < 0) return r; - if (r == 1) { /* group */ - if (group_head == 0) - group = 1; - else { - Node* target = *np; - *np = node_new_group(target); - if (IS_NULL(*np)) { - onig_node_free(target); - return ONIGERR_MEMORY; - } - group = 2; - } - } - else if (r == 2) { /* option only */ - Node* target; - OnigOptionType prev = env->options; - - env->options = BAG_(*np)->o.options; - r = fetch_token(tok, src, end, env); - if (r < 0) return r; - r = parse_subexp(&target, tok, term, src, end, env, 0); - env->options = prev; - if (r < 0) { - onig_node_free(target); - return r; - } - NODE_BODY(*np) = target; - return tok->type; - } - break; - - case TK_SUBEXP_CLOSE: - if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP)) - return ONIGERR_UNMATCHED_CLOSE_PARENTHESIS; - - if (tok->escaped) goto tk_raw_byte; - else goto tk_byte; - break; - - case TK_STRING: - tk_byte: - { - *np = node_new_str(tok->backp, *src); - CHECK_NULL_RETURN_MEMERR(*np); - - while (1) { - r = fetch_token(tok, src, end, env); - if (r < 0) return r; - if (r != TK_STRING) break; - - r = onig_node_str_cat(*np, tok->backp, *src); - if (r < 0) return r; - } - - string_end: - tp = np; - goto repeat; - } - break; - - case TK_RAW_BYTE: - tk_raw_byte: - { - *np = node_new_str_raw_char((UChar )tok->u.c); - CHECK_NULL_RETURN_MEMERR(*np); - len = 1; - while (1) { - if (len >= ONIGENC_MBC_MINLEN(env->enc)) { - if (len == enclen(env->enc, STR_(*np)->s)) { - r = fetch_token(tok, src, end, env); - goto tk_raw_byte_end; - } - } - - r = fetch_token(tok, src, end, env); - if (r < 0) return r; - if (r != TK_RAW_BYTE) - return ONIGERR_TOO_SHORT_MULTI_BYTE_STRING; - - r = node_str_cat_char(*np, (UChar )tok->u.c); - if (r < 0) return r; - - len++; - } - - tk_raw_byte_end: - if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, STR_(*np)->s, STR_(*np)->end)) - return ONIGERR_INVALID_WIDE_CHAR_VALUE; - - NODE_STRING_CLEAR_RAW(*np); - goto string_end; - } - break; - - case TK_CODE_POINT: - { - UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN]; - len = ONIGENC_CODE_TO_MBC(env->enc, tok->u.code, buf); - if (len < 0) return len; -#ifdef NUMBERED_CHAR_IS_NOT_CASE_AMBIG - *np = node_new_str_raw(buf, buf + len); -#else - *np = node_new_str(buf, buf + len); -#endif - CHECK_NULL_RETURN_MEMERR(*np); - } - break; - - case TK_QUOTE_OPEN: - { - OnigCodePoint end_op[2]; - UChar *qstart, *qend, *nextp; - - end_op[0] = (OnigCodePoint )MC_ESC(env->syntax); - end_op[1] = (OnigCodePoint )'E'; - qstart = *src; - qend = find_str_position(end_op, 2, qstart, end, &nextp, env->enc); - if (IS_NULL(qend)) { - nextp = qend = end; - } - *np = node_new_str(qstart, qend); - CHECK_NULL_RETURN_MEMERR(*np); - *src = nextp; - } - break; - - case TK_CHAR_TYPE: - { - switch (tok->u.prop.ctype) { - case ONIGENC_CTYPE_WORD: - *np = node_new_ctype(tok->u.prop.ctype, tok->u.prop.not, env->options); - CHECK_NULL_RETURN_MEMERR(*np); - break; - - case ONIGENC_CTYPE_SPACE: - case ONIGENC_CTYPE_DIGIT: - case ONIGENC_CTYPE_XDIGIT: - { - CClassNode* cc; - - *np = node_new_cclass(); - CHECK_NULL_RETURN_MEMERR(*np); - cc = CCLASS_(*np); - add_ctype_to_cc(cc, tok->u.prop.ctype, 0, env); - if (tok->u.prop.not != 0) NCCLASS_SET_NOT(cc); - } - break; - - default: - return ONIGERR_PARSER_BUG; - break; - } - } - break; - - case TK_CHAR_PROPERTY: - r = parse_char_property(np, tok, src, end, env); - if (r != 0) return r; - break; - - case TK_CC_OPEN: - { - CClassNode* cc; - - r = parse_char_class(np, tok, src, end, env); - if (r != 0) return r; - - cc = CCLASS_(*np); - if (IS_IGNORECASE(env->options)) { - IApplyCaseFoldArg iarg; - - iarg.env = env; - iarg.cc = cc; - iarg.alt_root = NULL_NODE; - iarg.ptail = &(iarg.alt_root); - - r = ONIGENC_APPLY_ALL_CASE_FOLD(env->enc, env->case_fold_flag, - i_apply_case_fold, &iarg); - if (r != 0) { - onig_node_free(iarg.alt_root); - return r; - } - if (IS_NOT_NULL(iarg.alt_root)) { - Node* work = onig_node_new_alt(*np, iarg.alt_root); - if (IS_NULL(work)) { - onig_node_free(iarg.alt_root); - return ONIGERR_MEMORY; - } - *np = work; - } - } - } - break; - - case TK_ANYCHAR: - *np = node_new_anychar(); - CHECK_NULL_RETURN_MEMERR(*np); - break; - - case TK_ANYCHAR_ANYTIME: - *np = node_new_anychar(); - CHECK_NULL_RETURN_MEMERR(*np); - qn = node_new_quantifier(0, INFINITE_REPEAT, 0); - CHECK_NULL_RETURN_MEMERR(qn); - NODE_BODY(qn) = *np; - *np = qn; - break; - - case TK_BACKREF: - len = tok->u.backref.num; - *np = node_new_backref(len, - (len > 1 ? tok->u.backref.refs : &(tok->u.backref.ref1)), - tok->u.backref.by_name, -#ifdef USE_BACKREF_WITH_LEVEL - tok->u.backref.exist_level, - tok->u.backref.level, -#endif - env); - CHECK_NULL_RETURN_MEMERR(*np); - break; - -#ifdef USE_CALL - case TK_CALL: - { - int gnum = tok->u.call.gnum; - - *np = node_new_call(tok->u.call.name, tok->u.call.name_end, - gnum, tok->u.call.by_number); - CHECK_NULL_RETURN_MEMERR(*np); - env->num_call++; - if (tok->u.call.by_number != 0 && gnum == 0) { - env->has_call_zero = 1; - } - } - break; -#endif - - case TK_ANCHOR: - { - int ascii_mode = - IS_WORD_ASCII(env->options) && IS_WORD_ANCHOR_TYPE(tok->u.anchor) ? 1 : 0; - *np = onig_node_new_anchor(tok->u.anchor, ascii_mode); - CHECK_NULL_RETURN_MEMERR(*np); - } - break; - - case TK_REPEAT: - case TK_INTERVAL: - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS)) { - if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS)) - return ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED; - else { - *np = node_new_empty(); - CHECK_NULL_RETURN_MEMERR(*np); - } - } - else { - goto tk_byte; - } - break; - - case TK_KEEP: - r = node_new_keep(np, env); - if (r < 0) return r; - break; - - case TK_GENERAL_NEWLINE: - r = node_new_general_newline(np, env); - if (r < 0) return r; - break; - - case TK_NO_NEWLINE: - r = node_new_no_newline(np, env); - if (r < 0) return r; - break; - - case TK_TRUE_ANYCHAR: - r = node_new_true_anychar(np, env); - if (r < 0) return r; - break; - - case TK_TEXT_SEGMENT: - r = make_text_segment(np, env); - if (r < 0) return r; - break; - - default: - return ONIGERR_PARSER_BUG; - break; - } - - { - tp = np; - - re_entry: - r = fetch_token(tok, src, end, env); - if (r < 0) return r; - - repeat: - if (r == TK_REPEAT || r == TK_INTERVAL) { - Node* target; - - if (is_invalid_quantifier_target(*tp)) - return ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID; - - parse_depth++; - if (parse_depth > ParseDepthLimit) - return ONIGERR_PARSE_DEPTH_LIMIT_OVER; - - qn = node_new_quantifier(tok->u.repeat.lower, tok->u.repeat.upper, - r == TK_INTERVAL); - CHECK_NULL_RETURN_MEMERR(qn); - QUANT_(qn)->greedy = tok->u.repeat.greedy; - if (group == 2) { - target = node_drop_group(*tp); - *tp = NULL_NODE; - } - else { - target = *tp; - } - r = set_quantifier(qn, target, group, env); - if (r < 0) { - onig_node_free(qn); - return r; - } - - if (tok->u.repeat.possessive != 0) { - Node* en; - en = node_new_bag(BAG_STOP_BACKTRACK); - if (IS_NULL(en)) { - onig_node_free(qn); - return ONIGERR_MEMORY; - } - NODE_BODY(en) = qn; - qn = en; - } - - if (r == 0) { - *tp = qn; - } - else if (r == 1) { /* x{1,1} ==> x */ - onig_node_free(qn); - *tp = target; - } - else if (r == 2) { /* split case: /abc+/ */ - Node *tmp; - - *tp = node_new_list(*tp, NULL); - if (IS_NULL(*tp)) { - onig_node_free(qn); - return ONIGERR_MEMORY; - } - tmp = NODE_CDR(*tp) = node_new_list(qn, NULL); - if (IS_NULL(tmp)) { - onig_node_free(qn); - return ONIGERR_MEMORY; - } - tp = &(NODE_CAR(tmp)); - } - group = 0; - goto re_entry; - } - } - - return r; -} - -static int -parse_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end, - ScanEnv* env, int group_head) -{ - int r; - Node *node, **headp; - - *top = NULL; - r = parse_exp(&node, tok, term, src, end, env, group_head); - if (r < 0) { - onig_node_free(node); - return r; - } - - if (r == TK_EOT || r == term || r == TK_ALT) { - *top = node; - } - else { - *top = node_new_list(node, NULL); - if (IS_NULL(*top)) { - onig_node_free(node); - return ONIGERR_MEMORY; - } - - headp = &(NODE_CDR(*top)); - while (r != TK_EOT && r != term && r != TK_ALT) { - r = parse_exp(&node, tok, term, src, end, env, 0); - if (r < 0) { - onig_node_free(node); - return r; - } - - if (NODE_TYPE(node) == NODE_LIST) { - *headp = node; - while (IS_NOT_NULL(NODE_CDR(node))) node = NODE_CDR(node); - headp = &(NODE_CDR(node)); - } - else { - *headp = node_new_list(node, NULL); - headp = &(NODE_CDR(*headp)); - } - } - } - - return r; -} - -/* term_tok: TK_EOT or TK_SUBEXP_CLOSE */ -static int -parse_subexp(Node** top, PToken* tok, int term, UChar** src, UChar* end, - ScanEnv* env, int group_head) -{ - int r; - Node *node, **headp; - - *top = NULL; - env->parse_depth++; - if (env->parse_depth > ParseDepthLimit) - return ONIGERR_PARSE_DEPTH_LIMIT_OVER; - - r = parse_branch(&node, tok, term, src, end, env, group_head); - if (r < 0) { - onig_node_free(node); - return r; - } - - if (r == term) { - *top = node; - } - else if (r == TK_ALT) { - *top = onig_node_new_alt(node, NULL); - if (IS_NULL(*top)) { - onig_node_free(node); - return ONIGERR_MEMORY; - } - - headp = &(NODE_CDR(*top)); - while (r == TK_ALT) { - r = fetch_token(tok, src, end, env); - if (r < 0) return r; - r = parse_branch(&node, tok, term, src, end, env, 0); - if (r < 0) { - onig_node_free(node); - return r; - } - *headp = onig_node_new_alt(node, NULL); - if (IS_NULL(*headp)) { - onig_node_free(node); - onig_node_free(*top); - return ONIGERR_MEMORY; - } - - headp = &(NODE_CDR(*headp)); - } - - if (tok->type != (enum TokenSyms )term) - goto err; - } - else { - onig_node_free(node); - err: - if (term == TK_SUBEXP_CLOSE) - return ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS; - else - return ONIGERR_PARSER_BUG; - } - - env->parse_depth--; - return r; -} - -static int -parse_regexp(Node** top, UChar** src, UChar* end, ScanEnv* env) -{ - int r; - PToken tok; - - r = fetch_token(&tok, src, end, env); - if (r < 0) return r; - r = parse_subexp(top, &tok, TK_EOT, src, end, env, 0); - if (r < 0) return r; - - return 0; -} - -#ifdef USE_CALL -static int -make_call_zero_body(Node* node, ScanEnv* env, Node** rnode) -{ - int r; - - Node* x = node_new_memory(0 /* 0: is not named */); - CHECK_NULL_RETURN_MEMERR(x); - - NODE_BODY(x) = node; - BAG_(x)->m.regnum = 0; - r = scan_env_set_mem_node(env, 0, x); - if (r != 0) { - onig_node_free(x); - return r; - } - - *rnode = x; - return 0; -} -#endif - -extern int -onig_parse_tree(Node** root, const UChar* pattern, const UChar* end, - regex_t* reg, ScanEnv* env) -{ - int r; - UChar* p; -#ifdef USE_CALLOUT - RegexExt* ext; -#endif - - names_clear(reg); - - scan_env_clear(env); - env->options = reg->options; - env->case_fold_flag = reg->case_fold_flag; - env->enc = reg->enc; - env->syntax = reg->syntax; - env->pattern = (UChar* )pattern; - env->pattern_end = (UChar* )end; - env->reg = reg; - - *root = NULL; - - if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, pattern, end)) - return ONIGERR_INVALID_WIDE_CHAR_VALUE; - - p = (UChar* )pattern; - r = parse_regexp(root, &p, (UChar* )end, env); - -#ifdef USE_CALL - if (r != 0) return r; - - if (env->has_call_zero != 0) { - Node* zero_node; - r = make_call_zero_body(*root, env, &zero_node); - if (r != 0) return r; - - *root = zero_node; - } -#endif - - reg->num_mem = env->num_mem; - -#ifdef USE_CALLOUT - ext = reg->extp; - if (IS_NOT_NULL(ext) && ext->callout_num > 0) { - r = setup_ext_callout_list_values(reg); - } -#endif - - return r; -} - -extern void -onig_scan_env_set_error_string(ScanEnv* env, int ecode ARG_UNUSED, - UChar* arg, UChar* arg_end) -{ - env->error = arg; - env->error_end = arg_end; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposerr.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposerr.c deleted file mode 100644 index 55b01fba4b6b..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposerr.c +++ /dev/null @@ -1,108 +0,0 @@ -/********************************************************************** - regposerr.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* Can't include regint.h etc.. for conflict of regex_t. - Define ONIGURUMA_EXPORT here for onigposix.h. - */ -#ifndef ONIGURUMA_EXPORT -#define ONIGURUMA_EXPORT -#endif - -//#include "config.h" -#include "onigposix.h" - -//#include - -#if defined(__GNUC__) -# define ARG_UNUSED __attribute__ ((unused)) -#else -# define ARG_UNUSED -#endif - -#if defined(_WIN32) && !defined(__GNUC__) -#define xsnprintf sprintf_s -#define xstrncpy(dest,src,size) strncpy_s(dest,size,src,_TRUNCATE) -#else -#define xsnprintf snprintf -#define xstrncpy strncpy -#endif - -static char* ESTRING[] = { - NULL, - "failed to match", /* REG_NOMATCH */ - "Invalid regular expression", /* REG_BADPAT */ - "invalid collating element referenced", /* REG_ECOLLATE */ - "invalid character class type referenced", /* REG_ECTYPE */ - "bad backslash-escape sequence", /* REG_EESCAPE */ - "invalid back reference number", /* REG_ESUBREG */ - "imbalanced [ and ]", /* REG_EBRACK */ - "imbalanced ( and )", /* REG_EPAREN */ - "imbalanced { and }", /* REG_EBRACE */ - "invalid repeat range {n,m}", /* REG_BADBR */ - "invalid range", /* REG_ERANGE */ - "Out of memory", /* REG_ESPACE */ - "? * + not preceded by valid regular expression", /* REG_BADRPT */ - - /* Extended errors */ - "internal error", /* REG_EONIG_INTERNAL */ - "invalid wide char value", /* REG_EONIG_BADWC */ - "invalid argument" /* REG_EONIG_BADARG */ -}; - -//#include - - -extern size_t -regerror(int posix_ecode, const regex_t* reg ARG_UNUSED, char* buf, - size_t size) -{ - char* s; - char tbuf[35]; - size_t len; - - if (posix_ecode > 0 - && posix_ecode < (int )(sizeof(ESTRING) / sizeof(ESTRING[0]))) { - s = ESTRING[posix_ecode]; - } - else if (posix_ecode == 0) { - s = ""; - } - else { - sprintf_s(tbuf, sizeof(tbuf), "undefined error code (%d)", posix_ecode); - s = tbuf; - } - - len = strlen_s(s, MAX_STRING_SIZE) + 1; /* use strlen() because s is ascii encoding. */ - - if (buf != NULL && size > 0) { - strncpy_s(buf, size, s, size - 1); - buf[size - 1] = '\0'; - } - return len; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposix.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposix.c deleted file mode 100644 index 2bfe073ad094..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regposix.c +++ /dev/null @@ -1,304 +0,0 @@ -/********************************************************************** - regposix.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define regex_t onig_regex_t -#include "regint.h" -#undef regex_t - -#include "onigposix.h" - -#define ONIG_C(reg) ((onig_regex_t* )((reg)->onig)) -#define PONIG_C(reg) ((onig_regex_t** )(&(reg)->onig)) - -/* #define ENC_STRING_LEN(enc,s,len) len = strlen(s) */ -#define ENC_STRING_LEN(enc,s,len) do { \ - if (ONIGENC_MBC_MINLEN(enc) == 1) { \ - UChar* tmps = (UChar* )(s); \ - while (*tmps != 0) tmps++; \ - len = (int )(tmps - (UChar* )(s));\ - } \ - else { \ - len = onigenc_str_bytelen_null(enc, (UChar* )s); \ - } \ -} while(0) - -typedef struct { - int onig_err; - int posix_err; -} O2PERR; - -static int -onig2posix_error_code(int code) -{ - static const O2PERR o2p[] = { - { ONIG_MISMATCH, REG_NOMATCH }, - { ONIG_NO_SUPPORT_CONFIG, REG_EONIG_INTERNAL }, - { ONIG_ABORT, REG_EONIG_INTERNAL }, - { ONIGERR_MEMORY, REG_ESPACE }, - { ONIGERR_MATCH_STACK_LIMIT_OVER, REG_EONIG_INTERNAL }, - { ONIGERR_RETRY_LIMIT_IN_MATCH_OVER, REG_EONIG_INTERNAL }, - { ONIGERR_TYPE_BUG, REG_EONIG_INTERNAL }, - { ONIGERR_PARSER_BUG, REG_EONIG_INTERNAL }, - { ONIGERR_STACK_BUG, REG_EONIG_INTERNAL }, - { ONIGERR_UNDEFINED_BYTECODE, REG_EONIG_INTERNAL }, - { ONIGERR_UNEXPECTED_BYTECODE, REG_EONIG_INTERNAL }, - { ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED, REG_EONIG_BADARG }, - { ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR, REG_EONIG_BADARG }, - { ONIGERR_FAIL_TO_INITIALIZE, REG_EONIG_INTERNAL }, - { ONIGERR_INVALID_ARGUMENT, REG_EONIG_BADARG }, - { ONIGERR_END_PATTERN_AT_LEFT_BRACE, REG_EBRACE }, - { ONIGERR_END_PATTERN_AT_LEFT_BRACKET, REG_EBRACK }, - { ONIGERR_EMPTY_CHAR_CLASS, REG_ECTYPE }, - { ONIGERR_PREMATURE_END_OF_CHAR_CLASS, REG_ECTYPE }, - { ONIGERR_END_PATTERN_AT_ESCAPE, REG_EESCAPE }, - { ONIGERR_END_PATTERN_AT_META, REG_EESCAPE }, - { ONIGERR_END_PATTERN_AT_CONTROL, REG_EESCAPE }, - { ONIGERR_META_CODE_SYNTAX, REG_BADPAT }, - { ONIGERR_CONTROL_CODE_SYNTAX, REG_BADPAT }, - { ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE, REG_ECTYPE }, - { ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE, REG_ECTYPE }, - { ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS, REG_ECTYPE }, - { ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED, REG_BADRPT }, - { ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID, REG_BADRPT }, - { ONIGERR_NESTED_REPEAT_OPERATOR, REG_BADRPT }, - { ONIGERR_UNMATCHED_CLOSE_PARENTHESIS, REG_EPAREN }, - { ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS, REG_EPAREN }, - { ONIGERR_END_PATTERN_IN_GROUP, REG_BADPAT }, - { ONIGERR_UNDEFINED_GROUP_OPTION, REG_BADPAT }, - { ONIGERR_INVALID_POSIX_BRACKET_TYPE, REG_BADPAT }, - { ONIGERR_INVALID_LOOK_BEHIND_PATTERN, REG_BADPAT }, - { ONIGERR_INVALID_REPEAT_RANGE_PATTERN, REG_BADPAT }, - { ONIGERR_TOO_BIG_NUMBER, REG_BADPAT }, - { ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE, REG_BADBR }, - { ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE, REG_BADBR }, - { ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS, REG_ECTYPE }, - { ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE, REG_ECTYPE }, - { ONIGERR_TOO_MANY_MULTI_BYTE_RANGES, REG_ECTYPE }, - { ONIGERR_TOO_SHORT_MULTI_BYTE_STRING, REG_BADPAT }, - { ONIGERR_TOO_BIG_BACKREF_NUMBER, REG_ESUBREG }, - { ONIGERR_INVALID_BACKREF, REG_ESUBREG }, - { ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED, REG_BADPAT }, - { ONIGERR_TOO_BIG_WIDE_CHAR_VALUE, REG_EONIG_BADWC }, - { ONIGERR_TOO_LONG_WIDE_CHAR_VALUE, REG_EONIG_BADWC }, - { ONIGERR_INVALID_CODE_POINT_VALUE, REG_EONIG_BADWC }, - { ONIGERR_EMPTY_GROUP_NAME, REG_BADPAT }, - { ONIGERR_INVALID_GROUP_NAME, REG_BADPAT }, - { ONIGERR_INVALID_CHAR_IN_GROUP_NAME, REG_BADPAT }, - { ONIGERR_UNDEFINED_NAME_REFERENCE, REG_BADPAT }, - { ONIGERR_UNDEFINED_GROUP_REFERENCE, REG_BADPAT }, - { ONIGERR_MULTIPLEX_DEFINED_NAME, REG_BADPAT }, - { ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL, REG_BADPAT }, - { ONIGERR_NEVER_ENDING_RECURSION, REG_BADPAT }, - { ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY, REG_BADPAT }, - { ONIGERR_INVALID_CHAR_PROPERTY_NAME, REG_BADPAT }, - { ONIGERR_INVALID_IF_ELSE_SYNTAX, REG_BADPAT }, - { ONIGERR_INVALID_ABSENT_GROUP_PATTERN, REG_BADPAT }, - { ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN, REG_BADPAT }, - { ONIGERR_INVALID_CALLOUT_PATTERN, REG_BADPAT }, - { ONIGERR_INVALID_CALLOUT_NAME, REG_BADPAT }, - { ONIGERR_UNDEFINED_CALLOUT_NAME, REG_BADPAT }, - { ONIGERR_INVALID_CALLOUT_BODY, REG_BADPAT }, - { ONIGERR_INVALID_CALLOUT_TAG_NAME, REG_BADPAT }, - { ONIGERR_INVALID_CALLOUT_ARG, REG_BADPAT }, - { ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION, REG_EONIG_BADARG }, - { ONIGERR_LIBRARY_IS_NOT_INITIALIZED, REG_EONIG_INTERNAL } - }; - - int i; - - if (code >= 0) return 0; - - for (i = 0; i < (int )(sizeof(o2p) / sizeof(o2p[0])); i++) { - if (code == o2p[i].onig_err) - return o2p[i].posix_err; - } - - return REG_EONIG_INTERNAL; /* but, unknown error code */ -} - -extern int -regcomp(regex_t* reg, const char* pattern, int posix_options) -{ - int r, len; - OnigSyntaxType* syntax = OnigDefaultSyntax; - OnigOptionType options; - - reg->onig = (void* )0; - - if ((posix_options & REG_EXTENDED) == 0) - syntax = ONIG_SYNTAX_POSIX_BASIC; - - options = syntax->options; - if ((posix_options & REG_ICASE) != 0) - ONIG_OPTION_ON(options, ONIG_OPTION_IGNORECASE); - if ((posix_options & REG_NEWLINE) != 0) { - ONIG_OPTION_ON( options, ONIG_OPTION_NEGATE_SINGLELINE); - ONIG_OPTION_OFF(options, ONIG_OPTION_SINGLELINE); - } - - reg->comp_options = posix_options; - - ENC_STRING_LEN(OnigEncDefaultCharEncoding, pattern, len); - r = onig_new(PONIG_C(reg), (UChar* )pattern, (UChar* )(pattern + len), - options, OnigEncDefaultCharEncoding, syntax, - (OnigErrorInfo* )NULL); - if (r != ONIG_NORMAL) { - return onig2posix_error_code(r); - } - - reg->re_nsub = ONIG_C(reg)->num_mem; - return 0; -} - -extern int -regexec(regex_t* reg, const char* str, size_t nmatch, - regmatch_t pmatch[], int posix_options) -{ - int r, i, len; - UChar* end; - regmatch_t* pm; - OnigOptionType options; - - options = ONIG_OPTION_POSIX_REGION; - if ((posix_options & REG_NOTBOL) != 0) options |= ONIG_OPTION_NOTBOL; - if ((posix_options & REG_NOTEOL) != 0) options |= ONIG_OPTION_NOTEOL; - - if (nmatch == 0 || (reg->comp_options & REG_NOSUB) != 0) { - pm = (regmatch_t* )NULL; - nmatch = 0; - } - else if ((int )nmatch < ONIG_C(reg)->num_mem + 1) { - pm = (regmatch_t* )xmalloc(sizeof(regmatch_t) - * (ONIG_C(reg)->num_mem + 1)); - if (pm == NULL) - return REG_ESPACE; - } - else { - pm = pmatch; - } - - ENC_STRING_LEN(ONIG_C(reg)->enc, str, len); - end = (UChar* )(str + len); - r = onig_search(ONIG_C(reg), (UChar* )str, end, (UChar* )str, end, - (OnigRegion* )pm, options); - - if (r >= 0) { - r = 0; /* Match */ - if (pm != pmatch && pm != NULL) { - xmemcpy(pmatch, pm, sizeof(regmatch_t) * nmatch); - } - } - else if (r == ONIG_MISMATCH) { - r = REG_NOMATCH; - for (i = 0; i < (int )nmatch; i++) - pmatch[i].rm_so = pmatch[i].rm_eo = ONIG_REGION_NOTPOS; - } - else { - r = onig2posix_error_code(r); - } - - if (pm != pmatch && pm != NULL) - xfree(pm); - -#if 0 - if (reg->re_nsub > nmatch - 1) - reg->re_nsub = (nmatch <= 1 ? 0 : nmatch - 1); -#endif - - return r; -} - -extern void -regfree(regex_t* reg) -{ - onig_free(ONIG_C(reg)); - reg->onig = (void* )0; -} - - -extern void -reg_set_encoding(int mb_code) -{ - OnigEncoding enc; - - switch (mb_code) { - case REG_POSIX_ENCODING_ASCII: - enc = ONIG_ENCODING_ASCII; - break; - case REG_POSIX_ENCODING_UTF16_LE: - enc = ONIG_ENCODING_UTF16_LE; - break; - } - - onig_initialize(&enc, 1); - - onigenc_set_default_encoding(enc); -} - -extern int -reg_name_to_group_numbers(regex_t* reg, - const unsigned char* name, const unsigned char* name_end, int** nums) -{ - return onig_name_to_group_numbers(ONIG_C(reg), name, name_end, nums); -} - -typedef struct { - int (*func)(const unsigned char*, const unsigned char*,int,int*,regex_t*,void*); - regex_t* reg; - void* arg; -} i_wrap; - -static int -i_wrapper(const UChar* name, const UChar* name_end, int ng, int* gs, - onig_regex_t* reg ARG_UNUSED, void* arg) -{ - i_wrap* warg = (i_wrap* )arg; - - return (*warg->func)(name, name_end, ng, gs, warg->reg, warg->arg); -} - -extern int -reg_foreach_name(regex_t* reg, - int (*func)(const unsigned char*, const unsigned char*,int,int*,regex_t*,void*), - void* arg) -{ - i_wrap warg; - - warg.func = func; - warg.reg = reg; - warg.arg = arg; - - return onig_foreach_name(ONIG_C(reg), i_wrapper, &warg); -} - -extern int -reg_number_of_names(regex_t* reg) -{ - return onig_number_of_names(ONIG_C(reg)); -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regsyntax.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regsyntax.c deleted file mode 100644 index c9506d49bff3..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regsyntax.c +++ /dev/null @@ -1,336 +0,0 @@ -/********************************************************************** - regsyntax.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" - -OnigSyntaxType OnigSyntaxASIS = { - 0 - , ONIG_SYN_OP2_INEFFECTIVE_ESCAPE - , 0 - , ONIG_OPTION_NONE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxPosixBasic = { - ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_ESC_LPAREN_SUBEXP | - ONIG_SYN_OP_ESC_BRACE_INTERVAL ) - , 0 - , 0 - , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE ) - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxPosixExtended = { - ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_LPAREN_SUBEXP | - ONIG_SYN_OP_BRACE_INTERVAL | - ONIG_SYN_OP_PLUS_ONE_INF | ONIG_SYN_OP_QMARK_ZERO_ONE | ONIG_SYN_OP_VBAR_ALT ) - , 0 - , ( ONIG_SYN_CONTEXT_INDEP_ANCHORS | - ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS | ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS | - ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP | - ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC ) - , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE ) - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxEmacs = { - ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC | - ONIG_SYN_OP_ESC_BRACE_INTERVAL | - ONIG_SYN_OP_ESC_LPAREN_SUBEXP | ONIG_SYN_OP_ESC_VBAR_ALT | - ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_PLUS_ONE_INF | - ONIG_SYN_OP_QMARK_ZERO_ONE | ONIG_SYN_OP_DECIMAL_BACKREF | - ONIG_SYN_OP_LINE_ANCHOR | ONIG_SYN_OP_ESC_CONTROL_CHARS ) - , ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR - , ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC - , ONIG_OPTION_NONE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxGrep = { - ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC | ONIG_SYN_OP_POSIX_BRACKET | - ONIG_SYN_OP_ESC_BRACE_INTERVAL | ONIG_SYN_OP_ESC_LPAREN_SUBEXP | - ONIG_SYN_OP_ESC_VBAR_ALT | - ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_ESC_PLUS_ONE_INF | - ONIG_SYN_OP_ESC_QMARK_ZERO_ONE | ONIG_SYN_OP_LINE_ANCHOR | - ONIG_SYN_OP_ESC_W_WORD | ONIG_SYN_OP_ESC_B_WORD_BOUND | - ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_DECIMAL_BACKREF ) - , 0 - , ( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC | ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC ) - , ONIG_OPTION_NONE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxGnuRegex = { - SYN_GNU_REGEX_OP - , 0 - , SYN_GNU_REGEX_BV - , ONIG_OPTION_NONE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxJava = { - (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | - ONIG_SYN_OP_ESC_CONTROL_CHARS | ONIG_SYN_OP_ESC_C_CONTROL | - ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 ) - & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) - , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE | ONIG_SYN_OP2_QMARK_GROUP_EFFECT | - ONIG_SYN_OP2_OPTION_PERL | ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | - ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL | ONIG_SYN_OP2_CCLASS_SET_OP | - ONIG_SYN_OP2_ESC_V_VTAB | ONIG_SYN_OP2_ESC_U_HEX4 | - ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY ) - , ( SYN_GNU_REGEX_BV | ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND ) - , ONIG_OPTION_SINGLELINE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -OnigSyntaxType OnigSyntaxPerl = { - (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | - ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 | - ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL | - ONIG_SYN_OP_ESC_CONTROL_CHARS | - ONIG_SYN_OP_ESC_C_CONTROL ) - & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) - , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE | - ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL | - ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL | - ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE | - ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP | - ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS | - ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME | - ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT | - ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY | - ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT | - ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP | - ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE | - ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT ) - , SYN_GNU_REGEX_BV - , ONIG_OPTION_SINGLELINE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - -/* Perl + named group */ -OnigSyntaxType OnigSyntaxPerl_NG = { - (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | - ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 | - ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL | - ONIG_SYN_OP_ESC_CONTROL_CHARS | - ONIG_SYN_OP_ESC_C_CONTROL ) - & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END ) - , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE | - ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL | - ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL | - ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE | - ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP | - ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS | - ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME | - ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT | - ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY | - ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT | - ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP | - ONIG_SYN_OP2_ESC_K_NAMED_BACKREF | - ONIG_SYN_OP2_ESC_G_SUBEXP_CALL | - ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP | - ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE | - ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT | - ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL ) - , ( SYN_GNU_REGEX_BV | - ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP | - ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME ) - , ONIG_OPTION_SINGLELINE - , - { - (OnigCodePoint )'\\' /* esc */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */ - , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */ - } -}; - - - -extern int -onig_set_default_syntax(OnigSyntaxType* syntax) -{ - if (IS_NULL(syntax)) - syntax = ONIG_SYNTAX_ONIGURUMA; - - OnigDefaultSyntax = syntax; - return 0; -} - -extern void -onig_copy_syntax(OnigSyntaxType* to, OnigSyntaxType* from) -{ - *to = *from; -} - -extern void -onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op) -{ - syntax->op = op; -} - -extern void -onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2) -{ - syntax->op2 = op2; -} - -extern void -onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior) -{ - syntax->behavior = behavior; -} - -extern void -onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options) -{ - syntax->options = options; -} - -extern unsigned int -onig_get_syntax_op(OnigSyntaxType* syntax) -{ - return syntax->op; -} - -extern unsigned int -onig_get_syntax_op2(OnigSyntaxType* syntax) -{ - return syntax->op2; -} - -extern unsigned int -onig_get_syntax_behavior(OnigSyntaxType* syntax) -{ - return syntax->behavior; -} - -extern OnigOptionType -onig_get_syntax_options(OnigSyntaxType* syntax) -{ - return syntax->options; -} - -#ifdef USE_VARIABLE_META_CHARS -extern int onig_set_meta_char(OnigSyntaxType* enc, - unsigned int what, OnigCodePoint code) -{ - switch (what) { - case ONIG_META_CHAR_ESCAPE: - enc->meta_char_table.esc = code; - break; - case ONIG_META_CHAR_ANYCHAR: - enc->meta_char_table.anychar = code; - break; - case ONIG_META_CHAR_ANYTIME: - enc->meta_char_table.anytime = code; - break; - case ONIG_META_CHAR_ZERO_OR_ONE_TIME: - enc->meta_char_table.zero_or_one_time = code; - break; - case ONIG_META_CHAR_ONE_OR_MORE_TIME: - enc->meta_char_table.one_or_more_time = code; - break; - case ONIG_META_CHAR_ANYCHAR_ANYTIME: - enc->meta_char_table.anychar_anytime = code; - break; - default: - return ONIGERR_INVALID_ARGUMENT; - break; - } - return 0; -} -#endif /* USE_VARIABLE_META_CHARS */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regtrav.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regtrav.c deleted file mode 100644 index fbc71d899fc0..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regtrav.c +++ /dev/null @@ -1,76 +0,0 @@ -/********************************************************************** - regtrav.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2004 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" - -#ifdef USE_CAPTURE_HISTORY - -static int -capture_tree_traverse(OnigCaptureTreeNode* node, int at, - int(*callback_func)(int,int,int,int,int,void*), - int level, void* arg) -{ - int r, i; - - if (node == (OnigCaptureTreeNode* )0) - return 0; - - if ((at & ONIG_TRAVERSE_CALLBACK_AT_FIRST) != 0) { - r = (*callback_func)(node->group, node->beg, node->end, - level, ONIG_TRAVERSE_CALLBACK_AT_FIRST, arg); - if (r != 0) return r; - } - - for (i = 0; i < node->num_childs; i++) { - r = capture_tree_traverse(node->childs[i], at, - callback_func, level + 1, arg); - if (r != 0) return r; - } - - if ((at & ONIG_TRAVERSE_CALLBACK_AT_LAST) != 0) { - r = (*callback_func)(node->group, node->beg, node->end, - level, ONIG_TRAVERSE_CALLBACK_AT_LAST, arg); - if (r != 0) return r; - } - - return 0; -} -#endif /* USE_CAPTURE_HISTORY */ - -extern int -onig_capture_tree_traverse(OnigRegion* region, int at, - int(*callback_func)(int,int,int,int,int,void*), void* arg) -{ -#ifdef USE_CAPTURE_HISTORY - return capture_tree_traverse(region->history_root, at, - callback_func, 0, arg); -#else - return ONIG_NO_SUPPORT_CONFIG; -#endif -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regversion.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regversion.c deleted file mode 100644 index 5e6274f06121..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regversion.c +++ /dev/null @@ -1,57 +0,0 @@ -/********************************************************************** - regversion.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "oniguruma.h" -#include "regint.h" -//#include - -extern const char* -onig_version(void) -{ - static char s[12]; - - sprintf_s(s, sizeof(s), "%d.%d.%d", - ONIGURUMA_VERSION_MAJOR, - ONIGURUMA_VERSION_MINOR, - ONIGURUMA_VERSION_TEENY); - return s; -} - -extern const char* -onig_copyright(void) -{ - static char s[58]; - - sprintf_s(s, sizeof(s), - "Oniguruma %d.%d.%d : Copyright (C) 2002-2018 K.Kosako", - ONIGURUMA_VERSION_MAJOR, - ONIGURUMA_VERSION_MINOR, - ONIGURUMA_VERSION_TEENY); - return s; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.c deleted file mode 100644 index 95fe4b0e06e8..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.c +++ /dev/null @@ -1,588 +0,0 @@ -/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */ - -/* static char sccsid[] = "@(#) st.c 5.1 89/12/14 Crucible"; */ - -//#include -//#include -//#include -#include "OnigurumaUefiPort.h" - -#ifdef _WIN32 -#include -#endif - -#include "regint.h" -#include "st.h" - -typedef struct st_table_entry st_table_entry; - -struct st_table_entry { - unsigned int hash; - st_data_t key; - st_data_t record; - st_table_entry *next; -}; - -#define ST_DEFAULT_MAX_DENSITY 5 -#define ST_DEFAULT_INIT_TABLE_SIZE 11 - - /* - * DEFAULT_MAX_DENSITY is the default for the largest we allow the - * average number of items per bin before increasing the number of - * bins - * - * DEFAULT_INIT_TABLE_SIZE is the default for the number of bins - * allocated initially - * - */ - -static int numcmp(long, long); -static int numhash(long); -static struct st_hash_type type_numhash = { - numcmp, - numhash, -}; - -/* extern int strcmp(const char *, const char *); */ -static int strhash(const char *); -static struct st_hash_type type_strhash = { - strcmp, - strhash, -}; - -static void rehash(st_table *); - -#define alloc(type) (type*)xmalloc((unsigned)sizeof(type)) -#define Calloc(n,s) (char*)xcalloc((n),(s)) - -#define EQUAL(table,x,y) ((x)==(y) || (*table->type->compare)((x),(y)) == 0) - -#define do_hash(key,table) (unsigned int)(*(table)->type->hash)((key)) -#define do_hash_bin(key,table) (do_hash(key, table)%(table)->num_bins) - -/* - * MINSIZE is the minimum size of a dictionary. - */ - -#define MINSIZE 8 - -/* -Table of prime numbers 2^n+a, 2<=n<=30. -*/ -static const long primes[] = { - 8 + 3, - 16 + 3, - 32 + 5, - 64 + 3, - 128 + 3, - 256 + 27, - 512 + 9, - 1024 + 9, - 2048 + 5, - 4096 + 3, - 8192 + 27, - 16384 + 43, - 32768 + 3, - 65536 + 45, - 131072 + 29, - 262144 + 3, - 524288 + 21, - 1048576 + 7, - 2097152 + 17, - 4194304 + 15, - 8388608 + 9, - 16777216 + 43, - 33554432 + 35, - 67108864 + 15, - 134217728 + 29, - 268435456 + 3, - 536870912 + 11, - 1073741824 + 85, - 0 -}; - -static int -new_size(size) - int size; -{ - int i; - -#if 0 - for (i=3; i<31; i++) { - if ((1< size) return 1< size) return primes[i]; - } - /* Ran out of polynomials */ - return -1; /* should raise exception */ -#endif -} - -#ifdef HASH_LOG -static int collision = 0; -static int init_st = 0; - -static void -stat_col(void) -{ - FILE *f = fopen("/tmp/col", "w"); - if (f == 0) return ; - - (void) fprintf(f, "collision: %d\n", collision); - (void) fclose(f); -} -#endif - -st_table* -st_init_table_with_size(type, size) - struct st_hash_type *type; - int size; -{ - st_table *tbl; - -#ifdef HASH_LOG - if (init_st == 0) { - init_st = 1; - atexit(stat_col); - } -#endif - - size = new_size(size); /* round up to prime number */ - - tbl = alloc(st_table); - if (tbl == 0) return 0; - - tbl->type = type; - tbl->num_entries = 0; - tbl->num_bins = size; - tbl->bins = (st_table_entry **)Calloc(size, sizeof(st_table_entry*)); - if (tbl->bins == 0) { - free(tbl); - return 0; - } - - return tbl; -} - -st_table* -st_init_table(type) - struct st_hash_type *type; -{ - return st_init_table_with_size(type, 0); -} - -st_table* -st_init_numtable(void) -{ - return st_init_table(&type_numhash); -} - -st_table* -st_init_numtable_with_size(size) - int size; -{ - return st_init_table_with_size(&type_numhash, size); -} - -st_table* -st_init_strtable(void) -{ - return st_init_table(&type_strhash); -} - -st_table* -st_init_strtable_with_size(size) - int size; -{ - return st_init_table_with_size(&type_strhash, size); -} - -void -st_free_table(table) - st_table *table; -{ - register st_table_entry *ptr, *next; - int i; - - for(i = 0; i < table->num_bins; i++) { - ptr = table->bins[i]; - while (ptr != 0) { - next = ptr->next; - free(ptr); - ptr = next; - } - } - free(table->bins); - free(table); -} - -#define PTR_NOT_EQUAL(table, ptr, hash_val, key) \ -((ptr) != 0 && (ptr->hash != (hash_val) || !EQUAL((table), (key), (ptr)->key))) - -#ifdef HASH_LOG -#define COLLISION collision++ -#else -#define COLLISION -#endif - -#define FIND_ENTRY(table, ptr, hash_val, bin_pos) do {\ - bin_pos = hash_val%(table)->num_bins;\ - ptr = (table)->bins[bin_pos];\ - if (PTR_NOT_EQUAL(table, ptr, hash_val, key)) {\ - COLLISION;\ - while (PTR_NOT_EQUAL(table, ptr->next, hash_val, key)) {\ - ptr = ptr->next;\ - }\ - ptr = ptr->next;\ - }\ -} while (0) - -int -st_lookup(table, key, value) - st_table *table; - register st_data_t key; - st_data_t *value; -{ - unsigned int hash_val, bin_pos; - register st_table_entry *ptr; - - hash_val = do_hash(key, table); - FIND_ENTRY(table, ptr, hash_val, bin_pos); - - if (ptr == 0) { - return 0; - } - else { - if (value != 0) *value = ptr->record; - return 1; - } -} - -#define ADD_DIRECT(table, key, value, hash_val, bin_pos, ret) \ -do {\ - st_table_entry *entry;\ - if (table->num_entries/(table->num_bins) > ST_DEFAULT_MAX_DENSITY) {\ - rehash(table);\ - bin_pos = hash_val % table->num_bins;\ - }\ - entry = alloc(st_table_entry);\ - if (IS_NULL(entry)) return ret;\ - entry->hash = hash_val;\ - entry->key = key;\ - entry->record = value;\ - entry->next = table->bins[bin_pos];\ - table->bins[bin_pos] = entry;\ - table->num_entries++;\ -} while (0) - -int -st_insert(table, key, value) - register st_table *table; - register st_data_t key; - st_data_t value; -{ - unsigned int hash_val, bin_pos; - register st_table_entry *ptr; - - hash_val = do_hash(key, table); - FIND_ENTRY(table, ptr, hash_val, bin_pos); - - if (ptr == 0) { - ADD_DIRECT(table, key, value, hash_val, bin_pos, ONIGERR_MEMORY); - return 0; - } - else { - ptr->record = value; - return 1; - } -} - -void -st_add_direct(table, key, value) - st_table *table; - st_data_t key; - st_data_t value; -{ - unsigned int hash_val, bin_pos; - - hash_val = do_hash(key, table); - bin_pos = hash_val % table->num_bins; - ADD_DIRECT(table, key, value, hash_val, bin_pos,); -} - -static void -rehash(table) - register st_table *table; -{ - register st_table_entry *ptr, *next, **new_bins; - int i, old_num_bins = table->num_bins, new_num_bins; - unsigned int hash_val; - - new_num_bins = new_size(old_num_bins+1); - new_bins = (st_table_entry**)Calloc(new_num_bins, sizeof(st_table_entry*)); - if (new_bins == 0) { - return ; - } - - for(i = 0; i < old_num_bins; i++) { - ptr = table->bins[i]; - while (ptr != 0) { - next = ptr->next; - hash_val = ptr->hash % new_num_bins; - ptr->next = new_bins[hash_val]; - new_bins[hash_val] = ptr; - ptr = next; - } - } - free(table->bins); - table->num_bins = new_num_bins; - table->bins = new_bins; -} - -st_table* -st_copy(old_table) - st_table *old_table; -{ - st_table *new_table; - st_table_entry *ptr, *entry; - int i, num_bins = old_table->num_bins; - - new_table = alloc(st_table); - if (new_table == 0) { - return 0; - } - - *new_table = *old_table; - new_table->bins = (st_table_entry**) - Calloc((unsigned)num_bins, sizeof(st_table_entry*)); - - if (new_table->bins == 0) { - free(new_table); - return 0; - } - - for(i = 0; i < num_bins; i++) { - new_table->bins[i] = 0; - ptr = old_table->bins[i]; - while (ptr != 0) { - entry = alloc(st_table_entry); - if (entry == 0) { - free(new_table->bins); - free(new_table); - return 0; - } - *entry = *ptr; - entry->next = new_table->bins[i]; - new_table->bins[i] = entry; - ptr = ptr->next; - } - } - return new_table; -} - -int -st_delete(table, key, value) - register st_table *table; - register st_data_t *key; - st_data_t *value; -{ - unsigned int hash_val; - st_table_entry *tmp; - register st_table_entry *ptr; - - hash_val = do_hash_bin(*key, table); - ptr = table->bins[hash_val]; - - if (ptr == 0) { - if (value != 0) *value = 0; - return 0; - } - - if (EQUAL(table, *key, ptr->key)) { - table->bins[hash_val] = ptr->next; - table->num_entries--; - if (value != 0) *value = ptr->record; - *key = ptr->key; - free(ptr); - return 1; - } - - for(; ptr->next != 0; ptr = ptr->next) { - if (EQUAL(table, ptr->next->key, *key)) { - tmp = ptr->next; - ptr->next = ptr->next->next; - table->num_entries--; - if (value != 0) *value = tmp->record; - *key = tmp->key; - free(tmp); - return 1; - } - } - - return 0; -} - -int -st_delete_safe(table, key, value, never) - register st_table *table; - register st_data_t *key; - st_data_t *value; - st_data_t never; -{ - unsigned int hash_val; - register st_table_entry *ptr; - - hash_val = do_hash_bin(*key, table); - ptr = table->bins[hash_val]; - - if (ptr == 0) { - if (value != 0) *value = 0; - return 0; - } - - for(; ptr != 0; ptr = ptr->next) { - if ((ptr->key != never) && EQUAL(table, ptr->key, *key)) { - table->num_entries--; - *key = ptr->key; - if (value != 0) *value = ptr->record; - ptr->key = ptr->record = never; - return 1; - } - } - - return 0; -} - -static int -#if defined(__GNUC__) -delete_never(st_data_t key __attribute__ ((unused)), st_data_t value, - st_data_t never) -#else -delete_never(key, value, never) - st_data_t key, value, never; -#endif -{ - if (value == never) return ST_DELETE; - return ST_CONTINUE; -} - -void -st_cleanup_safe(table, never) - st_table *table; - st_data_t never; -{ - int num_entries = table->num_entries; - - st_foreach(table, delete_never, never); - table->num_entries = num_entries; -} - -int -st_foreach(table, func, arg) - st_table *table; - int (*func)(); - st_data_t arg; -{ - st_table_entry *ptr, *last, *tmp; - enum st_retval retval; - int i; - - for(i = 0; i < table->num_bins; i++) { - last = 0; - for(ptr = table->bins[i]; ptr != 0;) { - retval = (*func)(ptr->key, ptr->record, arg); - switch (retval) { - case ST_CHECK: /* check if hash is modified during iteration */ - tmp = 0; - if (i < table->num_bins) { - for (tmp = table->bins[i]; tmp; tmp=tmp->next) { - if (tmp == ptr) break; - } - } - if (!tmp) { - /* call func with error notice */ - return 1; - } - /* fall through */ - case ST_CONTINUE: - last = ptr; - ptr = ptr->next; - break; - case ST_STOP: - return 0; - case ST_DELETE: - tmp = ptr; - if (last == 0) { - table->bins[i] = ptr->next; - } - else { - last->next = ptr->next; - } - ptr = ptr->next; - free(tmp); - table->num_entries--; - } - } - } - return 0; -} - -static int -strhash(string) - register const char *string; -{ - register int c; - -#ifdef HASH_ELFHASH - register unsigned int h = 0, g; - - while ((c = *string++) != '\0') { - h = ( h << 4 ) + c; - if ( g = h & 0xF0000000 ) - h ^= g >> 24; - h &= ~g; - } - return h; -#elif HASH_PERL - register int val = 0; - - while ((c = *string++) != '\0') { - val += c; - val += (val << 10); - val ^= (val >> 6); - } - val += (val << 3); - val ^= (val >> 11); - - return val + (val << 15); -#else - register int val = 0; - - while ((c = *string++) != '\0') { - val = val*997 + c; - } - - return val + (val>>5); -#endif -} - -static int -numcmp(x, y) - long x, y; -{ - return x != y; -} - -static int -numhash(n) - long n; -{ - return n; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode.c deleted file mode 100644 index d25209091705..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode.c +++ /dev/null @@ -1,1152 +0,0 @@ -/********************************************************************** - unicode.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" - -struct PoolPropertyNameCtype { - short int name; - short int ctype; -}; - -#define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \ - ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) - -static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = { - 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, - 0x4008, 0x428c, 0x4289, 0x4288, 0x4288, 0x4288, 0x4008, 0x4008, - 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, - 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, - 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, - 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, - 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, - 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, - 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2, - 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, - 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, - 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0, - 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2, - 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, - 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, - 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, - 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0, - 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0, - 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0, - 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, - 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, - 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0, - 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, - 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, - 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, - 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, - 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2 -}; - -#include "st.h" - -#include "unicode_fold_data.c" - -extern int -onigenc_unicode_mbc_case_fold(OnigEncoding enc, - OnigCaseFoldType flag ARG_UNUSED, const UChar** pp, const UChar* end, - UChar* fold) -{ - const struct ByUnfoldKey* buk; - - OnigCodePoint code; - int i, len, rlen; - const UChar *p = *pp; - - code = ONIGENC_MBC_TO_CODE(enc, p, end); - len = enclen(enc, p); - *pp += len; - -#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI - if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { - if (code == 0x0130) { - return ONIGENC_CODE_TO_MBC(enc, 0x0069, fold); - } -#if 0 - if (code == 0x0049) { - return ONIGENC_CODE_TO_MBC(enc, 0x0131, fold); - } -#endif - } -#endif - - buk = onigenc_unicode_unfold_key(code); - if (buk != 0) { - if (buk->fold_len == 1) { - return ONIGENC_CODE_TO_MBC(enc, *FOLDS1_FOLD(buk->index), fold); - } - else { - OnigCodePoint* addr; - - FOLDS_FOLD_ADDR_BUK(buk, addr); - rlen = 0; - for (i = 0; i < buk->fold_len; i++) { - OnigCodePoint c = addr[i]; - len = ONIGENC_CODE_TO_MBC(enc, c, fold); - fold += len; - rlen += len; - } - return rlen; - } - } - - for (i = 0; i < len; i++) { - *fold++ = *p++; - } - return len; -} - -static int -apply_case_fold1(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg) -{ - int i, j, k, n, r; - - for (i = from; i < to; ) { - OnigCodePoint fold = *FOLDS1_FOLD(i); - n = FOLDS1_UNFOLDS_NUM(i); - for (j = 0; j < n; j++) { - OnigCodePoint unfold = FOLDS1_UNFOLDS(i)[j]; - - r = (*f)(fold, &unfold, 1, arg); - if (r != 0) return r; - r = (*f)(unfold, &fold, 1, arg); - if (r != 0) return r; - - for (k = 0; k < j; k++) { - OnigCodePoint unfold2 = FOLDS1_UNFOLDS(i)[k]; - r = (*f)(unfold, &unfold2, 1, arg); - if (r != 0) return r; - r = (*f)(unfold2, &unfold, 1, arg); - if (r != 0) return r; - } - } - - i = FOLDS1_NEXT_INDEX(i); - } - - return 0; -} - -static int -apply_case_fold2(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg) -{ - int i, j, k, n, r; - - for (i = from; i < to; ) { - OnigCodePoint* fold = FOLDS2_FOLD(i); - n = FOLDS2_UNFOLDS_NUM(i); - for (j = 0; j < n; j++) { - OnigCodePoint unfold = FOLDS2_UNFOLDS(i)[j]; - - r = (*f)(unfold, fold, 2, arg); - if (r != 0) return r; - - for (k = 0; k < j; k++) { - OnigCodePoint unfold2 = FOLDS2_UNFOLDS(i)[k]; - r = (*f)(unfold, &unfold2, 1, arg); - if (r != 0) return r; - r = (*f)(unfold2, &unfold, 1, arg); - if (r != 0) return r; - } - } - - i = FOLDS2_NEXT_INDEX(i); - } - - return 0; -} - -static int -apply_case_fold3(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg) -{ - int i, j, k, n, r; - - for (i = from; i < to; ) { - OnigCodePoint* fold = FOLDS3_FOLD(i); - n = FOLDS3_UNFOLDS_NUM(i); - for (j = 0; j < n; j++) { - OnigCodePoint unfold = FOLDS3_UNFOLDS(i)[j]; - - r = (*f)(unfold, fold, 3, arg); - if (r != 0) return r; - - for (k = 0; k < j; k++) { - OnigCodePoint unfold2 = FOLDS3_UNFOLDS(i)[k]; - r = (*f)(unfold, &unfold2, 1, arg); - if (r != 0) return r; - r = (*f)(unfold2, &unfold, 1, arg); - if (r != 0) return r; - } - } - - i = FOLDS3_NEXT_INDEX(i); - } - - return 0; -} - -extern int -onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag, - OnigApplyAllCaseFoldFunc f, void* arg) -{ - int r; - - r = apply_case_fold1(0, FOLDS1_NORMAL_END_INDEX, f, arg); - if (r != 0) return r; - -#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI - if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { - code = 0x0131; - r = (*f)(0x0049, &code, 1, arg); - if (r != 0) return r; - code = 0x0049; - r = (*f)(0x0131, &code, 1, arg); - if (r != 0) return r; - - code = 0x0130; - r = (*f)(0x0069, &code, 1, arg); - if (r != 0) return r; - code = 0x0069; - r = (*f)(0x0130, &code, 1, arg); - if (r != 0) return r; - } - else { -#endif - r = apply_case_fold1(FOLDS1_NORMAL_END_INDEX, FOLDS1_END_INDEX, f, arg); - if (r != 0) return r; -#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI - } -#endif - - if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0) - return 0; - - r = apply_case_fold2(0, FOLDS2_NORMAL_END_INDEX, f, arg); - if (r != 0) return r; - -#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI - if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) == 0) { -#endif - r = apply_case_fold2(FOLDS2_NORMAL_END_INDEX, FOLDS2_END_INDEX, f, arg); - if (r != 0) return r; -#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI - } -#endif - - r = apply_case_fold3(0, FOLDS3_NORMAL_END_INDEX, f, arg); - if (r != 0) return r; - - return 0; -} - -extern int -onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, - OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, - OnigCaseFoldCodeItem items[]) -{ - int n, m, i, j, k, len; - OnigCodePoint code, codes[3]; - const struct ByUnfoldKey* buk; - - n = 0; - - code = ONIGENC_MBC_TO_CODE(enc, p, end); - len = enclen(enc, p); - -#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI - if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { - if (code == 0x0049) { - items[0].byte_len = len; - items[0].code_len = 1; - items[0].code[0] = 0x0131; - return 1; - } - else if (code == 0x0130) { - items[0].byte_len = len; - items[0].code_len = 1; - items[0].code[0] = 0x0069; - return 1; - } - else if (code == 0x0131) { - items[0].byte_len = len; - items[0].code_len = 1; - items[0].code[0] = 0x0049; - return 1; - } - else if (code == 0x0069) { - items[0].byte_len = len; - items[0].code_len = 1; - items[0].code[0] = 0x0130; - return 1; - } - } -#endif - - buk = onigenc_unicode_unfold_key(code); - if (buk != 0) { - if (buk->fold_len == 1) { - int un; - items[0].byte_len = len; - items[0].code_len = 1; - items[0].code[0] = *FOLDS1_FOLD(buk->index); - n++; - - un = FOLDS1_UNFOLDS_NUM(buk->index); - for (i = 0; i < un; i++) { - OnigCodePoint unfold = FOLDS1_UNFOLDS(buk->index)[i]; - if (unfold != code) { - items[n].byte_len = len; - items[n].code_len = 1; - items[n].code[0] = unfold; - n++; - } - } - code = items[0].code[0]; /* for multi-code to unfold search. */ - } - else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { - OnigCodePoint cs[3][4]; - int fn, ncs[3]; - - if (buk->fold_len == 2) { - m = FOLDS2_UNFOLDS_NUM(buk->index); - for (i = 0; i < m; i++) { - OnigCodePoint unfold = FOLDS2_UNFOLDS(buk->index)[i]; - if (unfold == code) continue; - - items[n].byte_len = len; - items[n].code_len = 1; - items[n].code[0] = unfold; - n++; - } - - for (fn = 0; fn < 2; fn++) { - int index; - cs[fn][0] = FOLDS2_FOLD(buk->index)[fn]; - index = onigenc_unicode_fold1_key(&cs[fn][0]); - if (index >= 0) { - int m = FOLDS1_UNFOLDS_NUM(index); - for (i = 0; i < m; i++) { - cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i]; - } - ncs[fn] = m + 1; - } - else - ncs[fn] = 1; - } - - for (i = 0; i < ncs[0]; i++) { - for (j = 0; j < ncs[1]; j++) { - items[n].byte_len = len; - items[n].code_len = 2; - items[n].code[0] = cs[0][i]; - items[n].code[1] = cs[1][j]; - n++; - } - } - } - else { /* fold_len == 3 */ - m = FOLDS3_UNFOLDS_NUM(buk->index); - for (i = 0; i < m; i++) { - OnigCodePoint unfold = FOLDS3_UNFOLDS(buk->index)[i]; - if (unfold == code) continue; - - items[n].byte_len = len; - items[n].code_len = 1; - items[n].code[0] = unfold; - n++; - } - - for (fn = 0; fn < 3; fn++) { - int index; - cs[fn][0] = FOLDS3_FOLD(buk->index)[fn]; - index = onigenc_unicode_fold1_key(&cs[fn][0]); - if (index >= 0) { - int m = FOLDS1_UNFOLDS_NUM(index); - for (i = 0; i < m; i++) { - cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i]; - } - ncs[fn] = m + 1; - } - else - ncs[fn] = 1; - } - - for (i = 0; i < ncs[0]; i++) { - for (j = 0; j < ncs[1]; j++) { - for (k = 0; k < ncs[2]; k++) { - items[n].byte_len = len; - items[n].code_len = 3; - items[n].code[0] = cs[0][i]; - items[n].code[1] = cs[1][j]; - items[n].code[2] = cs[2][k]; - n++; - } - } - } - } - - /* multi char folded code is not head of another folded multi char */ - return n; - } - } - else { - int index = onigenc_unicode_fold1_key(&code); - if (index >= 0) { - int m = FOLDS1_UNFOLDS_NUM(index); - for (i = 0; i < m; i++) { - items[n].byte_len = len; - items[n].code_len = 1; - items[n].code[0] = FOLDS1_UNFOLDS(index)[i]; - n++; - } - } - } - - if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0) - return n; - - p += len; - if (p < end) { - int clen; - int index; - - codes[0] = code; - code = ONIGENC_MBC_TO_CODE(enc, p, end); - - buk = onigenc_unicode_unfold_key(code); - if (buk != 0 && buk->fold_len == 1) { - codes[1] = *FOLDS1_FOLD(buk->index); - } - else - codes[1] = code; - - clen = enclen(enc, p); - len += clen; - - index = onigenc_unicode_fold2_key(codes); - if (index >= 0) { - m = FOLDS2_UNFOLDS_NUM(index); - for (i = 0; i < m; i++) { - items[n].byte_len = len; - items[n].code_len = 1; - items[n].code[0] = FOLDS2_UNFOLDS(index)[i]; - n++; - } - } - - p += clen; - if (p < end) { - code = ONIGENC_MBC_TO_CODE(enc, p, end); - buk = onigenc_unicode_unfold_key(code); - if (buk != 0 && buk->fold_len == 1) { - codes[2] = *FOLDS1_FOLD(buk->index); - } - else - codes[2] = code; - - clen = enclen(enc, p); - len += clen; - - index = onigenc_unicode_fold3_key(codes); - if (index >= 0) { - m = FOLDS3_UNFOLDS_NUM(index); - for (i = 0; i < m; i++) { - items[n].byte_len = len; - items[n].code_len = 1; - items[n].code[0] = FOLDS3_UNFOLDS(index)[i]; - n++; - } - } - } - } - - return n; -} - -#ifdef USE_UNICODE_PROPERTIES -#include "unicode_property_data.c" -#else -#include "unicode_property_data_posix.c" -#endif - - -#ifdef USE_UNICODE_WORD_BREAK - -enum WB_TYPE { - WB_Any = 0, - WB_ALetter, - WB_CR, - WB_Double_Quote, - WB_Extend, - WB_ExtendNumLet, - WB_Format, - WB_Hebrew_Letter, - WB_Katakana, - WB_LF, - WB_MidLetter, - WB_MidNum, - WB_MidNumLet, - WB_Newline, - WB_Numeric, - WB_Regional_Indicator, - WB_Single_Quote, - WB_WSegSpace, - WB_ZWJ, -}; - -typedef struct { - OnigCodePoint start; - OnigCodePoint end; - enum WB_TYPE type; -} WB_RANGE_TYPE; - -#include "unicode_wb_data.c" - -static enum WB_TYPE -wb_get_type(OnigCodePoint code) -{ - OnigCodePoint low, high, x; - enum WB_TYPE type; - - for (low = 0, high = (OnigCodePoint )WB_RANGE_NUM; low < high; ) { - x = (low + high) >> 1; - if (code > WB_RANGES[x].end) - low = x + 1; - else - high = x; - } - - type = (low < (OnigCodePoint )WB_RANGE_NUM && - code >= WB_RANGES[low].start) ? - WB_RANGES[low].type : WB_Any; - - return type; -} - -#define IS_WB_IGNORE_TAIL(t) ((t) == WB_Extend || (t) == WB_Format || (t) == WB_ZWJ) -#define IS_WB_AHLetter(t) ((t) == WB_ALetter || (t) == WB_Hebrew_Letter) -#define IS_WB_MidNumLetQ(t) ((t) == WB_MidNumLet || (t) == WB_Single_Quote) - -static int -wb_get_next_main_code(OnigEncoding enc, UChar* p, const UChar* end, - OnigCodePoint* rcode, enum WB_TYPE* rtype) -{ - OnigCodePoint code; - enum WB_TYPE type; - - while (TRUE) { - p += enclen(enc, p); - if (p >= end) break; - - code = ONIGENC_MBC_TO_CODE(enc, p, end); - type = wb_get_type(code); - if (! IS_WB_IGNORE_TAIL(type)) { - *rcode = code; - *rtype = type; - return 1; - } - } - - return 0; -} - -extern int -onigenc_wb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev, - const UChar* start, const UChar* end) -{ - int r; - UChar* pp; - OnigCodePoint cfrom; - OnigCodePoint cfrom2; - OnigCodePoint cto; - OnigCodePoint cto2; - enum WB_TYPE from; - enum WB_TYPE from2; - enum WB_TYPE to; - enum WB_TYPE to2; - - /* WB1: sot / Any */ - if (p == start) return TRUE; - /* WB2: Any / eot */ - if (p == end) return TRUE; - - if (IS_NULL(prev)) { - prev = onigenc_get_prev_char_head(enc, start, p); - if (IS_NULL(prev)) return TRUE; - } - - cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end); - cto = ONIGENC_MBC_TO_CODE(enc, p, end); - - from = wb_get_type(cfrom); - to = wb_get_type(cto); - - /* short cut */ - if (from == 0 && to == 0) goto WB999; - - /* WB3: CR + LF */ - if (from == WB_CR && to == WB_LF) return FALSE; - - /* WB3a: (Newline|CR|LF) / */ - if (from == WB_Newline || from == WB_CR || from == WB_LF) return TRUE; - /* WB3b: / (Newline|CR|LF) */ - if (to == WB_Newline || to == WB_CR || to == WB_LF) return TRUE; - - /* WB3c: ZWJ + {Extended_Pictographic} */ - if (from == WB_ZWJ) { - if (onigenc_unicode_is_code_ctype(cto, PROP_INDEX_EXTENDEDPICTOGRAPHIC)) - return FALSE; - } - - /* WB3d: WSegSpace + WSegSpace */ - if (from == WB_WSegSpace && to == WB_WSegSpace) return FALSE; - - /* WB4: X (Extend|Format|ZWJ)* -> X */ - if (IS_WB_IGNORE_TAIL(to)) return FALSE; - if (IS_WB_IGNORE_TAIL(from)) { - while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { - prev = pp; - cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end); - from = wb_get_type(cfrom); - if (! IS_WB_IGNORE_TAIL(from)) - break; - } - } - - if (IS_WB_AHLetter(from)) { - /* WB5: AHLetter + AHLetter */ - if (IS_WB_AHLetter(to)) return FALSE; - - /* WB6: AHLetter + (MidLetter | MidNumLetQ) AHLetter */ - if (to == WB_MidLetter || IS_WB_MidNumLetQ(to)) { - r = wb_get_next_main_code(enc, p, end, &cto2, &to2); - if (r == 1) { - if (IS_WB_AHLetter(to2)) return FALSE; - } - } - } - - /* WB7: AHLetter (MidLetter | MidNumLetQ) + AHLetter */ - if (from == WB_MidLetter || IS_WB_MidNumLetQ(from)) { - if (IS_WB_AHLetter(to)) { - from2 = WB_Any; - while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { - prev = pp; - cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); - from2 = wb_get_type(cfrom2); - if (! IS_WB_IGNORE_TAIL(from2)) - break; - } - - if (IS_WB_AHLetter(from2)) return FALSE; - } - } - - if (from == WB_Hebrew_Letter) { - /* WB7a: Hebrew_Letter + Single_Quote */ - if (to == WB_Single_Quote) return FALSE; - - /* WB7b: Hebrew_Letter + Double_Quote Hebrew_Letter */ - if (to == WB_Double_Quote) { - r = wb_get_next_main_code(enc, p, end, &cto2, &to2); - if (r == 1) { - if (to2 == WB_Hebrew_Letter) return FALSE; - } - } - } - - /* WB7c: Hebrew_Letter Double_Quote + Hebrew_Letter */ - if (from == WB_Double_Quote) { - if (to == WB_Hebrew_Letter) { - from2 = WB_Any; - while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { - prev = pp; - cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); - from2 = wb_get_type(cfrom2); - if (! IS_WB_IGNORE_TAIL(from2)) - break; - } - - if (from2 == WB_Hebrew_Letter) return FALSE; - } - } - - if (to == WB_Numeric) { - /* WB8: Numeric + Numeric */ - if (from == WB_Numeric) return FALSE; - - /* WB9: AHLetter + Numeric */ - if (IS_WB_AHLetter(from)) return FALSE; - - /* WB11: Numeric (MidNum | MidNumLetQ) + Numeric */ - if (from == WB_MidNum || IS_WB_MidNumLetQ(from)) { - from2 = WB_Any; - while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { - prev = pp; - cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); - from2 = wb_get_type(cfrom2); - if (! IS_WB_IGNORE_TAIL(from2)) - break; - } - - if (from2 == WB_Numeric) return FALSE; - } - } - - if (from == WB_Numeric) { - /* WB10: Numeric + AHLetter */ - if (IS_WB_AHLetter(to)) return FALSE; - - /* WB12: Numeric + (MidNum | MidNumLetQ) Numeric */ - if (to == WB_MidNum || IS_WB_MidNumLetQ(to)) { - r = wb_get_next_main_code(enc, p, end, &cto2, &to2); - if (r == 1) { - if (to2 == WB_Numeric) return FALSE; - } - } - } - - /* WB13: Katakana + Katakana */ - if (from == WB_Katakana && to == WB_Katakana) return FALSE; - - /* WB13a: (AHLetter | Numeric | Katakana | ExtendNumLet) + ExtendNumLet */ - if (IS_WB_AHLetter(from) || from == WB_Numeric || from == WB_Katakana - || from == WB_ExtendNumLet) { - if (to == WB_ExtendNumLet) return FALSE; - } - - /* WB13b: ExtendNumLet + (AHLetter | Numeric | Katakana) */ - if (from == WB_ExtendNumLet) { - if (IS_WB_AHLetter(to) || to == WB_Numeric || to == WB_Katakana) - return FALSE; - } - - - /* WB15: sot (RI RI)* RI + RI */ - /* WB16: [^RI] (RI RI)* RI + RI */ - if (from == WB_Regional_Indicator && to == WB_Regional_Indicator) { - int n = 0; - while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { - cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end); - from2 = wb_get_type(cfrom2); - if (from2 != WB_Regional_Indicator) - break; - - n++; - } - if ((n % 2) == 0) return FALSE; - } - - WB999: - /* WB999: Any / Any */ - return TRUE; -} - -#endif /* USE_UNICODE_WORD_BREAK */ - - -#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER - -enum EGCB_BREAK_TYPE { - EGCB_NOT_BREAK = 0, - EGCB_BREAK = 1, - EGCB_BREAK_UNDEF_GB11 = 2, - EGCB_BREAK_UNDEF_RI_RI = 3 -}; - -enum EGCB_TYPE { - EGCB_Other = 0, - EGCB_CR = 1, - EGCB_LF = 2, - EGCB_Control = 3, - EGCB_Extend = 4, - EGCB_Prepend = 5, - EGCB_Regional_Indicator = 6, - EGCB_SpacingMark = 7, - EGCB_ZWJ = 8, -#if 0 - /* obsoleted */ - EGCB_E_Base = 9, - EGCB_E_Base_GAZ = 10, - EGCB_E_Modifier = 11, - EGCB_Glue_After_Zwj = 12, -#endif - EGCB_L = 13, - EGCB_LV = 14, - EGCB_LVT = 15, - EGCB_T = 16, - EGCB_V = 17 -}; - -typedef struct { - OnigCodePoint start; - OnigCodePoint end; - enum EGCB_TYPE type; -} EGCB_RANGE_TYPE; - -#include "unicode_egcb_data.c" - -static enum EGCB_TYPE -egcb_get_type(OnigCodePoint code) -{ - OnigCodePoint low, high, x; - enum EGCB_TYPE type; - - for (low = 0, high = (OnigCodePoint )EGCB_RANGE_NUM; low < high; ) { - x = (low + high) >> 1; - if (code > EGCB_RANGES[x].end) - low = x + 1; - else - high = x; - } - - type = (low < (OnigCodePoint )EGCB_RANGE_NUM && - code >= EGCB_RANGES[low].start) ? - EGCB_RANGES[low].type : EGCB_Other; - - return type; -} - -#define IS_CONTROL_CR_LF(code) ((code) <= EGCB_Control && (code) >= EGCB_CR) -#define IS_HANGUL(code) ((code) >= EGCB_L) - -/* GB1 and GB2 are outside of this function. */ -static enum EGCB_BREAK_TYPE -unicode_egcb_is_break_2code(OnigCodePoint from_code, OnigCodePoint to_code) -{ - enum EGCB_TYPE from; - enum EGCB_TYPE to; - - from = egcb_get_type(from_code); - to = egcb_get_type(to_code); - - /* short cut */ - if (from == 0 && to == 0) goto GB999; - - /* GB3 */ - if (from == EGCB_CR && to == EGCB_LF) return EGCB_NOT_BREAK; - /* GB4 */ - if (IS_CONTROL_CR_LF(from)) return EGCB_BREAK; - /* GB5 */ - if (IS_CONTROL_CR_LF(to)) return EGCB_BREAK; - - if (IS_HANGUL(from) && IS_HANGUL(to)) { - /* GB6 */ - if (from == EGCB_L && to != EGCB_T) return EGCB_NOT_BREAK; - /* GB7 */ - if ((from == EGCB_LV || from == EGCB_V) - && (to == EGCB_V || to == EGCB_T)) return EGCB_NOT_BREAK; - - /* GB8 */ - if ((to == EGCB_T) && (from == EGCB_LVT || from == EGCB_T)) - return EGCB_NOT_BREAK; - - goto GB999; - } - - /* GB9 */ - if (to == EGCB_Extend || to == EGCB_ZWJ) return EGCB_NOT_BREAK; - - /* GB9a */ - if (to == EGCB_SpacingMark) return EGCB_NOT_BREAK; - /* GB9b */ - if (from == EGCB_Prepend) return EGCB_NOT_BREAK; - - /* GB10 removed */ - - /* GB11 */ - if (from == EGCB_ZWJ) { - if (onigenc_unicode_is_code_ctype(to_code, PROP_INDEX_EXTENDEDPICTOGRAPHIC)) - return EGCB_BREAK_UNDEF_GB11; - - goto GB999; - } - - /* GB12, GB13 */ - if (from == EGCB_Regional_Indicator && to == EGCB_Regional_Indicator) { - return EGCB_BREAK_UNDEF_RI_RI; - } - - GB999: - return EGCB_BREAK; -} - -#endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */ - -extern int -onigenc_egcb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev, - const UChar* start, const UChar* end) -{ - OnigCodePoint from; - OnigCodePoint to; -#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER - enum EGCB_BREAK_TYPE btype; - enum EGCB_TYPE type; -#endif - - /* GB1 and GB2 */ - if (p == start) return 1; - if (p == end) return 1; - - if (IS_NULL(prev)) { - prev = onigenc_get_prev_char_head(enc, start, p); - if (IS_NULL(prev)) return 1; - } - - from = ONIGENC_MBC_TO_CODE(enc, prev, end); - to = ONIGENC_MBC_TO_CODE(enc, p, end); - -#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER - if (! ONIGENC_IS_UNICODE_ENCODING(enc)) { - return from != 0x000d || to != 0x000a; - } - - btype = unicode_egcb_is_break_2code(from, to); - switch (btype) { - case EGCB_NOT_BREAK: - return 0; - break; - case EGCB_BREAK: - return 1; - break; - - case EGCB_BREAK_UNDEF_GB11: - while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { - from = ONIGENC_MBC_TO_CODE(enc, prev, end); - if (onigenc_unicode_is_code_ctype(from, PROP_INDEX_EXTENDEDPICTOGRAPHIC)) - return 0; - - type = egcb_get_type(from); - if (type != EGCB_Extend) - break; - } - break; - - case EGCB_BREAK_UNDEF_RI_RI: - { - int n = 0; - while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) { - from = ONIGENC_MBC_TO_CODE(enc, prev, end); - type = egcb_get_type(from); - if (type != EGCB_Regional_Indicator) - break; - - n++; - } - if ((n % 2) == 0) return 0; - } - break; - } - - return 1; - -#else - return from != 0x000d || to != 0x000a; -#endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */ -} - - -#define USER_DEFINED_PROPERTY_MAX_NUM 20 - -typedef struct { - int ctype; - OnigCodePoint* ranges; -} UserDefinedPropertyValue; - -static int UserDefinedPropertyNum; -static UserDefinedPropertyValue -UserDefinedPropertyRanges[USER_DEFINED_PROPERTY_MAX_NUM]; -static st_table* UserDefinedPropertyTable; - -extern int -onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges) -{ - UserDefinedPropertyValue* e; - int r; - int i; - int n; - int len; - int c; - char* s; - UChar* uname; - - if (UserDefinedPropertyNum >= USER_DEFINED_PROPERTY_MAX_NUM) - return ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS; - - len = (int )strlen_s(name,MAX_STRING_SIZE); - if (len >= PROPERTY_NAME_MAX_SIZE) - return ONIGERR_TOO_LONG_PROPERTY_NAME; - - s = (char* )xmalloc(len + 1); - if (s == 0) - return ONIGERR_MEMORY; - - uname = (UChar* )name; - n = 0; - for (i = 0; i < len; i++) { - c = uname[i]; - if (c < 0x20 || c >= 0x80) { - xfree(s); - return ONIGERR_INVALID_CHAR_PROPERTY_NAME; - } - - if (c != ' ' && c != '-' && c != '_') { - s[n] = c; - n++; - } - } - s[n] = '\0'; - - if (UserDefinedPropertyTable == 0) { - UserDefinedPropertyTable = onig_st_init_strend_table_with_size(10); - if (IS_NULL(UserDefinedPropertyTable)) { - xfree(s); - return ONIGERR_MEMORY; - } - } - - e = UserDefinedPropertyRanges + UserDefinedPropertyNum; - e->ctype = CODE_RANGES_NUM + UserDefinedPropertyNum; - e->ranges = ranges; - r = onig_st_insert_strend(UserDefinedPropertyTable, - (const UChar* )s, (const UChar* )s + n, - (hash_data_type )((void* )e)); - if (r < 0) return r; - - UserDefinedPropertyNum++; - return 0; -} - -extern int -onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype) -{ - if ( -#ifdef USE_UNICODE_PROPERTIES - ctype <= ONIGENC_MAX_STD_CTYPE && -#endif - code < 256) { - return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype); - } - - if (ctype >= CODE_RANGES_NUM) { - int index = ctype - CODE_RANGES_NUM; - if (index < UserDefinedPropertyNum) - return onig_is_in_code_range((UChar* )UserDefinedPropertyRanges[index].ranges, code); - else - return ONIGERR_TYPE_BUG; - } - - return onig_is_in_code_range((UChar* )CodeRanges[ctype], code); -} - - -extern int -onigenc_unicode_ctype_code_range(OnigCtype ctype, const OnigCodePoint* ranges[]) -{ - if (ctype >= CODE_RANGES_NUM) { - int index = ctype - CODE_RANGES_NUM; - if (index < UserDefinedPropertyNum) { - *ranges = UserDefinedPropertyRanges[index].ranges; - return 0; - } - else - return ONIGERR_TYPE_BUG; - } - - *ranges = CodeRanges[ctype]; - return 0; -} - -extern int -onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out, - const OnigCodePoint* ranges[]) -{ - *sb_out = 0x00; - return onigenc_unicode_ctype_code_range(ctype, ranges); -} - -extern int -onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end) -{ - int len; - UChar *p; - OnigCodePoint code; - const struct PoolPropertyNameCtype* pc; - char buf[PROPERTY_NAME_MAX_SIZE]; - - p = name; - len = 0; - while (p < end) { - code = ONIGENC_MBC_TO_CODE(enc, p, end); - if (code >= 0x80) - return ONIGERR_INVALID_CHAR_PROPERTY_NAME; - - if (code != ' ' && code != '-' && code != '_') { - buf[len++] = (char )code; - if (len >= PROPERTY_NAME_MAX_SIZE) - return ONIGERR_INVALID_CHAR_PROPERTY_NAME; - } - - p += enclen(enc, p); - } - - buf[len] = 0; - - if (UserDefinedPropertyTable != 0) { - UserDefinedPropertyValue* e; - e = (UserDefinedPropertyValue* )NULL; - onig_st_lookup_strend(UserDefinedPropertyTable, - (const UChar* )buf, (const UChar* )buf + len, - (hash_data_type* )((void* )(&e))); - if (e != 0) { - return e->ctype; - } - } - - pc = unicode_lookup_property_name(buf, len); - if (pc != 0) { - /* fprintf(stderr, "LOOKUP: %s: %d\n", buf, pc->ctype); */ -#ifndef USE_UNICODE_PROPERTIES - if (pc->ctype > ONIGENC_MAX_STD_CTYPE) - return ONIGERR_INVALID_CHAR_PROPERTY_NAME; -#endif - - return (int )pc->ctype; - } - - return ONIGERR_INVALID_CHAR_PROPERTY_NAME; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_egcb_data.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_egcb_data.c deleted file mode 100644 index 6a7503a4fd21..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_egcb_data.c +++ /dev/null @@ -1,1374 +0,0 @@ -/* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */ -/*- - * Copyright (c) 2017-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define GRAPHEME_BREAK_PROPERTY_VERSION 12_1_0 - -/* -CR -Control -Extend -L -LF -LV -LVT -Prepend -Regional_Indicator -SpacingMark -T -V -ZWJ -*/ - -static int EGCB_RANGE_NUM = 1326; -static EGCB_RANGE_TYPE EGCB_RANGES[] = { - {0x000000, 0x000009, EGCB_Control }, - {0x00000a, 0x00000a, EGCB_LF }, - {0x00000b, 0x00000c, EGCB_Control }, - {0x00000d, 0x00000d, EGCB_CR }, - {0x00000e, 0x00001f, EGCB_Control }, - {0x00007f, 0x00009f, EGCB_Control }, - {0x0000ad, 0x0000ad, EGCB_Control }, - {0x000300, 0x00036f, EGCB_Extend }, - {0x000483, 0x000489, EGCB_Extend }, - {0x000591, 0x0005bd, EGCB_Extend }, - {0x0005bf, 0x0005bf, EGCB_Extend }, - {0x0005c1, 0x0005c2, EGCB_Extend }, - {0x0005c4, 0x0005c5, EGCB_Extend }, - {0x0005c7, 0x0005c7, EGCB_Extend }, - {0x000600, 0x000605, EGCB_Prepend }, - {0x000610, 0x00061a, EGCB_Extend }, - {0x00061c, 0x00061c, EGCB_Control }, - {0x00064b, 0x00065f, EGCB_Extend }, - {0x000670, 0x000670, EGCB_Extend }, - {0x0006d6, 0x0006dc, EGCB_Extend }, - {0x0006dd, 0x0006dd, EGCB_Prepend }, - {0x0006df, 0x0006e4, EGCB_Extend }, - {0x0006e7, 0x0006e8, EGCB_Extend }, - {0x0006ea, 0x0006ed, EGCB_Extend }, - {0x00070f, 0x00070f, EGCB_Prepend }, - {0x000711, 0x000711, EGCB_Extend }, - {0x000730, 0x00074a, EGCB_Extend }, - {0x0007a6, 0x0007b0, EGCB_Extend }, - {0x0007eb, 0x0007f3, EGCB_Extend }, - {0x0007fd, 0x0007fd, EGCB_Extend }, - {0x000816, 0x000819, EGCB_Extend }, - {0x00081b, 0x000823, EGCB_Extend }, - {0x000825, 0x000827, EGCB_Extend }, - {0x000829, 0x00082d, EGCB_Extend }, - {0x000859, 0x00085b, EGCB_Extend }, - {0x0008d3, 0x0008e1, EGCB_Extend }, - {0x0008e2, 0x0008e2, EGCB_Prepend }, - {0x0008e3, 0x000902, EGCB_Extend }, - {0x000903, 0x000903, EGCB_SpacingMark }, - {0x00093a, 0x00093a, EGCB_Extend }, - {0x00093b, 0x00093b, EGCB_SpacingMark }, - {0x00093c, 0x00093c, EGCB_Extend }, - {0x00093e, 0x000940, EGCB_SpacingMark }, - {0x000941, 0x000948, EGCB_Extend }, - {0x000949, 0x00094c, EGCB_SpacingMark }, - {0x00094d, 0x00094d, EGCB_Extend }, - {0x00094e, 0x00094f, EGCB_SpacingMark }, - {0x000951, 0x000957, EGCB_Extend }, - {0x000962, 0x000963, EGCB_Extend }, - {0x000981, 0x000981, EGCB_Extend }, - {0x000982, 0x000983, EGCB_SpacingMark }, - {0x0009bc, 0x0009bc, EGCB_Extend }, - {0x0009be, 0x0009be, EGCB_Extend }, - {0x0009bf, 0x0009c0, EGCB_SpacingMark }, - {0x0009c1, 0x0009c4, EGCB_Extend }, - {0x0009c7, 0x0009c8, EGCB_SpacingMark }, - {0x0009cb, 0x0009cc, EGCB_SpacingMark }, - {0x0009cd, 0x0009cd, EGCB_Extend }, - {0x0009d7, 0x0009d7, EGCB_Extend }, - {0x0009e2, 0x0009e3, EGCB_Extend }, - {0x0009fe, 0x0009fe, EGCB_Extend }, - {0x000a01, 0x000a02, EGCB_Extend }, - {0x000a03, 0x000a03, EGCB_SpacingMark }, - {0x000a3c, 0x000a3c, EGCB_Extend }, - {0x000a3e, 0x000a40, EGCB_SpacingMark }, - {0x000a41, 0x000a42, EGCB_Extend }, - {0x000a47, 0x000a48, EGCB_Extend }, - {0x000a4b, 0x000a4d, EGCB_Extend }, - {0x000a51, 0x000a51, EGCB_Extend }, - {0x000a70, 0x000a71, EGCB_Extend }, - {0x000a75, 0x000a75, EGCB_Extend }, - {0x000a81, 0x000a82, EGCB_Extend }, - {0x000a83, 0x000a83, EGCB_SpacingMark }, - {0x000abc, 0x000abc, EGCB_Extend }, - {0x000abe, 0x000ac0, EGCB_SpacingMark }, - {0x000ac1, 0x000ac5, EGCB_Extend }, - {0x000ac7, 0x000ac8, EGCB_Extend }, - {0x000ac9, 0x000ac9, EGCB_SpacingMark }, - {0x000acb, 0x000acc, EGCB_SpacingMark }, - {0x000acd, 0x000acd, EGCB_Extend }, - {0x000ae2, 0x000ae3, EGCB_Extend }, - {0x000afa, 0x000aff, EGCB_Extend }, - {0x000b01, 0x000b01, EGCB_Extend }, - {0x000b02, 0x000b03, EGCB_SpacingMark }, - {0x000b3c, 0x000b3c, EGCB_Extend }, - {0x000b3e, 0x000b3f, EGCB_Extend }, - {0x000b40, 0x000b40, EGCB_SpacingMark }, - {0x000b41, 0x000b44, EGCB_Extend }, - {0x000b47, 0x000b48, EGCB_SpacingMark }, - {0x000b4b, 0x000b4c, EGCB_SpacingMark }, - {0x000b4d, 0x000b4d, EGCB_Extend }, - {0x000b56, 0x000b57, EGCB_Extend }, - {0x000b62, 0x000b63, EGCB_Extend }, - {0x000b82, 0x000b82, EGCB_Extend }, - {0x000bbe, 0x000bbe, EGCB_Extend }, - {0x000bbf, 0x000bbf, EGCB_SpacingMark }, - {0x000bc0, 0x000bc0, EGCB_Extend }, - {0x000bc1, 0x000bc2, EGCB_SpacingMark }, - {0x000bc6, 0x000bc8, EGCB_SpacingMark }, - {0x000bca, 0x000bcc, EGCB_SpacingMark }, - {0x000bcd, 0x000bcd, EGCB_Extend }, - {0x000bd7, 0x000bd7, EGCB_Extend }, - {0x000c00, 0x000c00, EGCB_Extend }, - {0x000c01, 0x000c03, EGCB_SpacingMark }, - {0x000c04, 0x000c04, EGCB_Extend }, - {0x000c3e, 0x000c40, EGCB_Extend }, - {0x000c41, 0x000c44, EGCB_SpacingMark }, - {0x000c46, 0x000c48, EGCB_Extend }, - {0x000c4a, 0x000c4d, EGCB_Extend }, - {0x000c55, 0x000c56, EGCB_Extend }, - {0x000c62, 0x000c63, EGCB_Extend }, - {0x000c81, 0x000c81, EGCB_Extend }, - {0x000c82, 0x000c83, EGCB_SpacingMark }, - {0x000cbc, 0x000cbc, EGCB_Extend }, - {0x000cbe, 0x000cbe, EGCB_SpacingMark }, - {0x000cbf, 0x000cbf, EGCB_Extend }, - {0x000cc0, 0x000cc1, EGCB_SpacingMark }, - {0x000cc2, 0x000cc2, EGCB_Extend }, - {0x000cc3, 0x000cc4, EGCB_SpacingMark }, - {0x000cc6, 0x000cc6, EGCB_Extend }, - {0x000cc7, 0x000cc8, EGCB_SpacingMark }, - {0x000cca, 0x000ccb, EGCB_SpacingMark }, - {0x000ccc, 0x000ccd, EGCB_Extend }, - {0x000cd5, 0x000cd6, EGCB_Extend }, - {0x000ce2, 0x000ce3, EGCB_Extend }, - {0x000d00, 0x000d01, EGCB_Extend }, - {0x000d02, 0x000d03, EGCB_SpacingMark }, - {0x000d3b, 0x000d3c, EGCB_Extend }, - {0x000d3e, 0x000d3e, EGCB_Extend }, - {0x000d3f, 0x000d40, EGCB_SpacingMark }, - {0x000d41, 0x000d44, EGCB_Extend }, - {0x000d46, 0x000d48, EGCB_SpacingMark }, - {0x000d4a, 0x000d4c, EGCB_SpacingMark }, - {0x000d4d, 0x000d4d, EGCB_Extend }, - {0x000d4e, 0x000d4e, EGCB_Prepend }, - {0x000d57, 0x000d57, EGCB_Extend }, - {0x000d62, 0x000d63, EGCB_Extend }, - {0x000d82, 0x000d83, EGCB_SpacingMark }, - {0x000dca, 0x000dca, EGCB_Extend }, - {0x000dcf, 0x000dcf, EGCB_Extend }, - {0x000dd0, 0x000dd1, EGCB_SpacingMark }, - {0x000dd2, 0x000dd4, EGCB_Extend }, - {0x000dd6, 0x000dd6, EGCB_Extend }, - {0x000dd8, 0x000dde, EGCB_SpacingMark }, - {0x000ddf, 0x000ddf, EGCB_Extend }, - {0x000df2, 0x000df3, EGCB_SpacingMark }, - {0x000e31, 0x000e31, EGCB_Extend }, - {0x000e33, 0x000e33, EGCB_SpacingMark }, - {0x000e34, 0x000e3a, EGCB_Extend }, - {0x000e47, 0x000e4e, EGCB_Extend }, - {0x000eb1, 0x000eb1, EGCB_Extend }, - {0x000eb3, 0x000eb3, EGCB_SpacingMark }, - {0x000eb4, 0x000ebc, EGCB_Extend }, - {0x000ec8, 0x000ecd, EGCB_Extend }, - {0x000f18, 0x000f19, EGCB_Extend }, - {0x000f35, 0x000f35, EGCB_Extend }, - {0x000f37, 0x000f37, EGCB_Extend }, - {0x000f39, 0x000f39, EGCB_Extend }, - {0x000f3e, 0x000f3f, EGCB_SpacingMark }, - {0x000f71, 0x000f7e, EGCB_Extend }, - {0x000f7f, 0x000f7f, EGCB_SpacingMark }, - {0x000f80, 0x000f84, EGCB_Extend }, - {0x000f86, 0x000f87, EGCB_Extend }, - {0x000f8d, 0x000f97, EGCB_Extend }, - {0x000f99, 0x000fbc, EGCB_Extend }, - {0x000fc6, 0x000fc6, EGCB_Extend }, - {0x00102d, 0x001030, EGCB_Extend }, - {0x001031, 0x001031, EGCB_SpacingMark }, - {0x001032, 0x001037, EGCB_Extend }, - {0x001039, 0x00103a, EGCB_Extend }, - {0x00103b, 0x00103c, EGCB_SpacingMark }, - {0x00103d, 0x00103e, EGCB_Extend }, - {0x001056, 0x001057, EGCB_SpacingMark }, - {0x001058, 0x001059, EGCB_Extend }, - {0x00105e, 0x001060, EGCB_Extend }, - {0x001071, 0x001074, EGCB_Extend }, - {0x001082, 0x001082, EGCB_Extend }, - {0x001084, 0x001084, EGCB_SpacingMark }, - {0x001085, 0x001086, EGCB_Extend }, - {0x00108d, 0x00108d, EGCB_Extend }, - {0x00109d, 0x00109d, EGCB_Extend }, - {0x001100, 0x00115f, EGCB_L }, - {0x001160, 0x0011a7, EGCB_V }, - {0x0011a8, 0x0011ff, EGCB_T }, - {0x00135d, 0x00135f, EGCB_Extend }, - {0x001712, 0x001714, EGCB_Extend }, - {0x001732, 0x001734, EGCB_Extend }, - {0x001752, 0x001753, EGCB_Extend }, - {0x001772, 0x001773, EGCB_Extend }, - {0x0017b4, 0x0017b5, EGCB_Extend }, - {0x0017b6, 0x0017b6, EGCB_SpacingMark }, - {0x0017b7, 0x0017bd, EGCB_Extend }, - {0x0017be, 0x0017c5, EGCB_SpacingMark }, - {0x0017c6, 0x0017c6, EGCB_Extend }, - {0x0017c7, 0x0017c8, EGCB_SpacingMark }, - {0x0017c9, 0x0017d3, EGCB_Extend }, - {0x0017dd, 0x0017dd, EGCB_Extend }, - {0x00180b, 0x00180d, EGCB_Extend }, - {0x00180e, 0x00180e, EGCB_Control }, - {0x001885, 0x001886, EGCB_Extend }, - {0x0018a9, 0x0018a9, EGCB_Extend }, - {0x001920, 0x001922, EGCB_Extend }, - {0x001923, 0x001926, EGCB_SpacingMark }, - {0x001927, 0x001928, EGCB_Extend }, - {0x001929, 0x00192b, EGCB_SpacingMark }, - {0x001930, 0x001931, EGCB_SpacingMark }, - {0x001932, 0x001932, EGCB_Extend }, - {0x001933, 0x001938, EGCB_SpacingMark }, - {0x001939, 0x00193b, EGCB_Extend }, - {0x001a17, 0x001a18, EGCB_Extend }, - {0x001a19, 0x001a1a, EGCB_SpacingMark }, - {0x001a1b, 0x001a1b, EGCB_Extend }, - {0x001a55, 0x001a55, EGCB_SpacingMark }, - {0x001a56, 0x001a56, EGCB_Extend }, - {0x001a57, 0x001a57, EGCB_SpacingMark }, - {0x001a58, 0x001a5e, EGCB_Extend }, - {0x001a60, 0x001a60, EGCB_Extend }, - {0x001a62, 0x001a62, EGCB_Extend }, - {0x001a65, 0x001a6c, EGCB_Extend }, - {0x001a6d, 0x001a72, EGCB_SpacingMark }, - {0x001a73, 0x001a7c, EGCB_Extend }, - {0x001a7f, 0x001a7f, EGCB_Extend }, - {0x001ab0, 0x001abe, EGCB_Extend }, - {0x001b00, 0x001b03, EGCB_Extend }, - {0x001b04, 0x001b04, EGCB_SpacingMark }, - {0x001b34, 0x001b3a, EGCB_Extend }, - {0x001b3b, 0x001b3b, EGCB_SpacingMark }, - {0x001b3c, 0x001b3c, EGCB_Extend }, - {0x001b3d, 0x001b41, EGCB_SpacingMark }, - {0x001b42, 0x001b42, EGCB_Extend }, - {0x001b43, 0x001b44, EGCB_SpacingMark }, - {0x001b6b, 0x001b73, EGCB_Extend }, - {0x001b80, 0x001b81, EGCB_Extend }, - {0x001b82, 0x001b82, EGCB_SpacingMark }, - {0x001ba1, 0x001ba1, EGCB_SpacingMark }, - {0x001ba2, 0x001ba5, EGCB_Extend }, - {0x001ba6, 0x001ba7, EGCB_SpacingMark }, - {0x001ba8, 0x001ba9, EGCB_Extend }, - {0x001baa, 0x001baa, EGCB_SpacingMark }, - {0x001bab, 0x001bad, EGCB_Extend }, - {0x001be6, 0x001be6, EGCB_Extend }, - {0x001be7, 0x001be7, EGCB_SpacingMark }, - {0x001be8, 0x001be9, EGCB_Extend }, - {0x001bea, 0x001bec, EGCB_SpacingMark }, - {0x001bed, 0x001bed, EGCB_Extend }, - {0x001bee, 0x001bee, EGCB_SpacingMark }, - {0x001bef, 0x001bf1, EGCB_Extend }, - {0x001bf2, 0x001bf3, EGCB_SpacingMark }, - {0x001c24, 0x001c2b, EGCB_SpacingMark }, - {0x001c2c, 0x001c33, EGCB_Extend }, - {0x001c34, 0x001c35, EGCB_SpacingMark }, - {0x001c36, 0x001c37, EGCB_Extend }, - {0x001cd0, 0x001cd2, EGCB_Extend }, - {0x001cd4, 0x001ce0, EGCB_Extend }, - {0x001ce1, 0x001ce1, EGCB_SpacingMark }, - {0x001ce2, 0x001ce8, EGCB_Extend }, - {0x001ced, 0x001ced, EGCB_Extend }, - {0x001cf4, 0x001cf4, EGCB_Extend }, - {0x001cf7, 0x001cf7, EGCB_SpacingMark }, - {0x001cf8, 0x001cf9, EGCB_Extend }, - {0x001dc0, 0x001df9, EGCB_Extend }, - {0x001dfb, 0x001dff, EGCB_Extend }, - {0x00200b, 0x00200b, EGCB_Control }, - {0x00200c, 0x00200c, EGCB_Extend }, - {0x00200d, 0x00200d, EGCB_ZWJ }, - {0x00200e, 0x00200f, EGCB_Control }, - {0x002028, 0x00202e, EGCB_Control }, - {0x002060, 0x00206f, EGCB_Control }, - {0x0020d0, 0x0020f0, EGCB_Extend }, - {0x002cef, 0x002cf1, EGCB_Extend }, - {0x002d7f, 0x002d7f, EGCB_Extend }, - {0x002de0, 0x002dff, EGCB_Extend }, - {0x00302a, 0x00302f, EGCB_Extend }, - {0x003099, 0x00309a, EGCB_Extend }, - {0x00a66f, 0x00a672, EGCB_Extend }, - {0x00a674, 0x00a67d, EGCB_Extend }, - {0x00a69e, 0x00a69f, EGCB_Extend }, - {0x00a6f0, 0x00a6f1, EGCB_Extend }, - {0x00a802, 0x00a802, EGCB_Extend }, - {0x00a806, 0x00a806, EGCB_Extend }, - {0x00a80b, 0x00a80b, EGCB_Extend }, - {0x00a823, 0x00a824, EGCB_SpacingMark }, - {0x00a825, 0x00a826, EGCB_Extend }, - {0x00a827, 0x00a827, EGCB_SpacingMark }, - {0x00a880, 0x00a881, EGCB_SpacingMark }, - {0x00a8b4, 0x00a8c3, EGCB_SpacingMark }, - {0x00a8c4, 0x00a8c5, EGCB_Extend }, - {0x00a8e0, 0x00a8f1, EGCB_Extend }, - {0x00a8ff, 0x00a8ff, EGCB_Extend }, - {0x00a926, 0x00a92d, EGCB_Extend }, - {0x00a947, 0x00a951, EGCB_Extend }, - {0x00a952, 0x00a953, EGCB_SpacingMark }, - {0x00a960, 0x00a97c, EGCB_L }, - {0x00a980, 0x00a982, EGCB_Extend }, - {0x00a983, 0x00a983, EGCB_SpacingMark }, - {0x00a9b3, 0x00a9b3, EGCB_Extend }, - {0x00a9b4, 0x00a9b5, EGCB_SpacingMark }, - {0x00a9b6, 0x00a9b9, EGCB_Extend }, - {0x00a9ba, 0x00a9bb, EGCB_SpacingMark }, - {0x00a9bc, 0x00a9bd, EGCB_Extend }, - {0x00a9be, 0x00a9c0, EGCB_SpacingMark }, - {0x00a9e5, 0x00a9e5, EGCB_Extend }, - {0x00aa29, 0x00aa2e, EGCB_Extend }, - {0x00aa2f, 0x00aa30, EGCB_SpacingMark }, - {0x00aa31, 0x00aa32, EGCB_Extend }, - {0x00aa33, 0x00aa34, EGCB_SpacingMark }, - {0x00aa35, 0x00aa36, EGCB_Extend }, - {0x00aa43, 0x00aa43, EGCB_Extend }, - {0x00aa4c, 0x00aa4c, EGCB_Extend }, - {0x00aa4d, 0x00aa4d, EGCB_SpacingMark }, - {0x00aa7c, 0x00aa7c, EGCB_Extend }, - {0x00aab0, 0x00aab0, EGCB_Extend }, - {0x00aab2, 0x00aab4, EGCB_Extend }, - {0x00aab7, 0x00aab8, EGCB_Extend }, - {0x00aabe, 0x00aabf, EGCB_Extend }, - {0x00aac1, 0x00aac1, EGCB_Extend }, - {0x00aaeb, 0x00aaeb, EGCB_SpacingMark }, - {0x00aaec, 0x00aaed, EGCB_Extend }, - {0x00aaee, 0x00aaef, EGCB_SpacingMark }, - {0x00aaf5, 0x00aaf5, EGCB_SpacingMark }, - {0x00aaf6, 0x00aaf6, EGCB_Extend }, - {0x00abe3, 0x00abe4, EGCB_SpacingMark }, - {0x00abe5, 0x00abe5, EGCB_Extend }, - {0x00abe6, 0x00abe7, EGCB_SpacingMark }, - {0x00abe8, 0x00abe8, EGCB_Extend }, - {0x00abe9, 0x00abea, EGCB_SpacingMark }, - {0x00abec, 0x00abec, EGCB_SpacingMark }, - {0x00abed, 0x00abed, EGCB_Extend }, - {0x00ac00, 0x00ac00, EGCB_LV }, - {0x00ac01, 0x00ac1b, EGCB_LVT }, - {0x00ac1c, 0x00ac1c, EGCB_LV }, - {0x00ac1d, 0x00ac37, EGCB_LVT }, - {0x00ac38, 0x00ac38, EGCB_LV }, - {0x00ac39, 0x00ac53, EGCB_LVT }, - {0x00ac54, 0x00ac54, EGCB_LV }, - {0x00ac55, 0x00ac6f, EGCB_LVT }, - {0x00ac70, 0x00ac70, EGCB_LV }, - {0x00ac71, 0x00ac8b, EGCB_LVT }, - {0x00ac8c, 0x00ac8c, EGCB_LV }, - {0x00ac8d, 0x00aca7, EGCB_LVT }, - {0x00aca8, 0x00aca8, EGCB_LV }, - {0x00aca9, 0x00acc3, EGCB_LVT }, - {0x00acc4, 0x00acc4, EGCB_LV }, - {0x00acc5, 0x00acdf, EGCB_LVT }, - {0x00ace0, 0x00ace0, EGCB_LV }, - {0x00ace1, 0x00acfb, EGCB_LVT }, - {0x00acfc, 0x00acfc, EGCB_LV }, - {0x00acfd, 0x00ad17, EGCB_LVT }, - {0x00ad18, 0x00ad18, EGCB_LV }, - {0x00ad19, 0x00ad33, EGCB_LVT }, - {0x00ad34, 0x00ad34, EGCB_LV }, - {0x00ad35, 0x00ad4f, EGCB_LVT }, - {0x00ad50, 0x00ad50, EGCB_LV }, - {0x00ad51, 0x00ad6b, EGCB_LVT }, - {0x00ad6c, 0x00ad6c, EGCB_LV }, - {0x00ad6d, 0x00ad87, EGCB_LVT }, - {0x00ad88, 0x00ad88, EGCB_LV }, - {0x00ad89, 0x00ada3, EGCB_LVT }, - {0x00ada4, 0x00ada4, EGCB_LV }, - {0x00ada5, 0x00adbf, EGCB_LVT }, - {0x00adc0, 0x00adc0, EGCB_LV }, - {0x00adc1, 0x00addb, EGCB_LVT }, - {0x00addc, 0x00addc, EGCB_LV }, - {0x00addd, 0x00adf7, EGCB_LVT }, - {0x00adf8, 0x00adf8, EGCB_LV }, - {0x00adf9, 0x00ae13, EGCB_LVT }, - {0x00ae14, 0x00ae14, EGCB_LV }, - {0x00ae15, 0x00ae2f, EGCB_LVT }, - {0x00ae30, 0x00ae30, EGCB_LV }, - {0x00ae31, 0x00ae4b, EGCB_LVT }, - {0x00ae4c, 0x00ae4c, EGCB_LV }, - {0x00ae4d, 0x00ae67, EGCB_LVT }, - {0x00ae68, 0x00ae68, EGCB_LV }, - {0x00ae69, 0x00ae83, EGCB_LVT }, - {0x00ae84, 0x00ae84, EGCB_LV }, - {0x00ae85, 0x00ae9f, EGCB_LVT }, - {0x00aea0, 0x00aea0, EGCB_LV }, - {0x00aea1, 0x00aebb, EGCB_LVT }, - {0x00aebc, 0x00aebc, EGCB_LV }, - {0x00aebd, 0x00aed7, EGCB_LVT }, - {0x00aed8, 0x00aed8, EGCB_LV }, - {0x00aed9, 0x00aef3, EGCB_LVT }, - {0x00aef4, 0x00aef4, EGCB_LV }, - {0x00aef5, 0x00af0f, EGCB_LVT }, - {0x00af10, 0x00af10, EGCB_LV }, - {0x00af11, 0x00af2b, EGCB_LVT }, - {0x00af2c, 0x00af2c, EGCB_LV }, - {0x00af2d, 0x00af47, EGCB_LVT }, - {0x00af48, 0x00af48, EGCB_LV }, - {0x00af49, 0x00af63, EGCB_LVT }, - {0x00af64, 0x00af64, EGCB_LV }, - {0x00af65, 0x00af7f, EGCB_LVT }, - {0x00af80, 0x00af80, EGCB_LV }, - {0x00af81, 0x00af9b, EGCB_LVT }, - {0x00af9c, 0x00af9c, EGCB_LV }, - {0x00af9d, 0x00afb7, EGCB_LVT }, - {0x00afb8, 0x00afb8, EGCB_LV }, - {0x00afb9, 0x00afd3, EGCB_LVT }, - {0x00afd4, 0x00afd4, EGCB_LV }, - {0x00afd5, 0x00afef, EGCB_LVT }, - {0x00aff0, 0x00aff0, EGCB_LV }, - {0x00aff1, 0x00b00b, EGCB_LVT }, - {0x00b00c, 0x00b00c, EGCB_LV }, - {0x00b00d, 0x00b027, EGCB_LVT }, - {0x00b028, 0x00b028, EGCB_LV }, - {0x00b029, 0x00b043, EGCB_LVT }, - {0x00b044, 0x00b044, EGCB_LV }, - {0x00b045, 0x00b05f, EGCB_LVT }, - {0x00b060, 0x00b060, EGCB_LV }, - {0x00b061, 0x00b07b, EGCB_LVT }, - {0x00b07c, 0x00b07c, EGCB_LV }, - {0x00b07d, 0x00b097, EGCB_LVT }, - {0x00b098, 0x00b098, EGCB_LV }, - {0x00b099, 0x00b0b3, EGCB_LVT }, - {0x00b0b4, 0x00b0b4, EGCB_LV }, - {0x00b0b5, 0x00b0cf, EGCB_LVT }, - {0x00b0d0, 0x00b0d0, EGCB_LV }, - {0x00b0d1, 0x00b0eb, EGCB_LVT }, - {0x00b0ec, 0x00b0ec, EGCB_LV }, - {0x00b0ed, 0x00b107, EGCB_LVT }, - {0x00b108, 0x00b108, EGCB_LV }, - {0x00b109, 0x00b123, EGCB_LVT }, - {0x00b124, 0x00b124, EGCB_LV }, - {0x00b125, 0x00b13f, EGCB_LVT }, - {0x00b140, 0x00b140, EGCB_LV }, - {0x00b141, 0x00b15b, EGCB_LVT }, - {0x00b15c, 0x00b15c, EGCB_LV }, - {0x00b15d, 0x00b177, EGCB_LVT }, - {0x00b178, 0x00b178, EGCB_LV }, - {0x00b179, 0x00b193, EGCB_LVT }, - {0x00b194, 0x00b194, EGCB_LV }, - {0x00b195, 0x00b1af, EGCB_LVT }, - {0x00b1b0, 0x00b1b0, EGCB_LV }, - {0x00b1b1, 0x00b1cb, EGCB_LVT }, - {0x00b1cc, 0x00b1cc, EGCB_LV }, - {0x00b1cd, 0x00b1e7, EGCB_LVT }, - {0x00b1e8, 0x00b1e8, EGCB_LV }, - {0x00b1e9, 0x00b203, EGCB_LVT }, - {0x00b204, 0x00b204, EGCB_LV }, - {0x00b205, 0x00b21f, EGCB_LVT }, - {0x00b220, 0x00b220, EGCB_LV }, - {0x00b221, 0x00b23b, EGCB_LVT }, - {0x00b23c, 0x00b23c, EGCB_LV }, - {0x00b23d, 0x00b257, EGCB_LVT }, - {0x00b258, 0x00b258, EGCB_LV }, - {0x00b259, 0x00b273, EGCB_LVT }, - {0x00b274, 0x00b274, EGCB_LV }, - {0x00b275, 0x00b28f, EGCB_LVT }, - {0x00b290, 0x00b290, EGCB_LV }, - {0x00b291, 0x00b2ab, EGCB_LVT }, - {0x00b2ac, 0x00b2ac, EGCB_LV }, - {0x00b2ad, 0x00b2c7, EGCB_LVT }, - {0x00b2c8, 0x00b2c8, EGCB_LV }, - {0x00b2c9, 0x00b2e3, EGCB_LVT }, - {0x00b2e4, 0x00b2e4, EGCB_LV }, - {0x00b2e5, 0x00b2ff, EGCB_LVT }, - {0x00b300, 0x00b300, EGCB_LV }, - {0x00b301, 0x00b31b, EGCB_LVT }, - {0x00b31c, 0x00b31c, EGCB_LV }, - {0x00b31d, 0x00b337, EGCB_LVT }, - {0x00b338, 0x00b338, EGCB_LV }, - {0x00b339, 0x00b353, EGCB_LVT }, - {0x00b354, 0x00b354, EGCB_LV }, - {0x00b355, 0x00b36f, EGCB_LVT }, - {0x00b370, 0x00b370, EGCB_LV }, - {0x00b371, 0x00b38b, EGCB_LVT }, - {0x00b38c, 0x00b38c, EGCB_LV }, - {0x00b38d, 0x00b3a7, EGCB_LVT }, - {0x00b3a8, 0x00b3a8, EGCB_LV }, - {0x00b3a9, 0x00b3c3, EGCB_LVT }, - {0x00b3c4, 0x00b3c4, EGCB_LV }, - {0x00b3c5, 0x00b3df, EGCB_LVT }, - {0x00b3e0, 0x00b3e0, EGCB_LV }, - {0x00b3e1, 0x00b3fb, EGCB_LVT }, - {0x00b3fc, 0x00b3fc, EGCB_LV }, - {0x00b3fd, 0x00b417, EGCB_LVT }, - {0x00b418, 0x00b418, EGCB_LV }, - {0x00b419, 0x00b433, EGCB_LVT }, - {0x00b434, 0x00b434, EGCB_LV }, - {0x00b435, 0x00b44f, EGCB_LVT }, - {0x00b450, 0x00b450, EGCB_LV }, - {0x00b451, 0x00b46b, EGCB_LVT }, - {0x00b46c, 0x00b46c, EGCB_LV }, - {0x00b46d, 0x00b487, EGCB_LVT }, - {0x00b488, 0x00b488, EGCB_LV }, - {0x00b489, 0x00b4a3, EGCB_LVT }, - {0x00b4a4, 0x00b4a4, EGCB_LV }, - {0x00b4a5, 0x00b4bf, EGCB_LVT }, - {0x00b4c0, 0x00b4c0, EGCB_LV }, - {0x00b4c1, 0x00b4db, EGCB_LVT }, - {0x00b4dc, 0x00b4dc, EGCB_LV }, - {0x00b4dd, 0x00b4f7, EGCB_LVT }, - {0x00b4f8, 0x00b4f8, EGCB_LV }, - {0x00b4f9, 0x00b513, EGCB_LVT }, - {0x00b514, 0x00b514, EGCB_LV }, - {0x00b515, 0x00b52f, EGCB_LVT }, - {0x00b530, 0x00b530, EGCB_LV }, - {0x00b531, 0x00b54b, EGCB_LVT }, - {0x00b54c, 0x00b54c, EGCB_LV }, - {0x00b54d, 0x00b567, EGCB_LVT }, - {0x00b568, 0x00b568, EGCB_LV }, - {0x00b569, 0x00b583, EGCB_LVT }, - {0x00b584, 0x00b584, EGCB_LV }, - {0x00b585, 0x00b59f, EGCB_LVT }, - {0x00b5a0, 0x00b5a0, EGCB_LV }, - {0x00b5a1, 0x00b5bb, EGCB_LVT }, - {0x00b5bc, 0x00b5bc, EGCB_LV }, - {0x00b5bd, 0x00b5d7, EGCB_LVT }, - {0x00b5d8, 0x00b5d8, EGCB_LV }, - {0x00b5d9, 0x00b5f3, EGCB_LVT }, - {0x00b5f4, 0x00b5f4, EGCB_LV }, - {0x00b5f5, 0x00b60f, EGCB_LVT }, - {0x00b610, 0x00b610, EGCB_LV }, - {0x00b611, 0x00b62b, EGCB_LVT }, - {0x00b62c, 0x00b62c, EGCB_LV }, - {0x00b62d, 0x00b647, EGCB_LVT }, - {0x00b648, 0x00b648, EGCB_LV }, - {0x00b649, 0x00b663, EGCB_LVT }, - {0x00b664, 0x00b664, EGCB_LV }, - {0x00b665, 0x00b67f, EGCB_LVT }, - {0x00b680, 0x00b680, EGCB_LV }, - {0x00b681, 0x00b69b, EGCB_LVT }, - {0x00b69c, 0x00b69c, EGCB_LV }, - {0x00b69d, 0x00b6b7, EGCB_LVT }, - {0x00b6b8, 0x00b6b8, EGCB_LV }, - {0x00b6b9, 0x00b6d3, EGCB_LVT }, - {0x00b6d4, 0x00b6d4, EGCB_LV }, - {0x00b6d5, 0x00b6ef, EGCB_LVT }, - {0x00b6f0, 0x00b6f0, EGCB_LV }, - {0x00b6f1, 0x00b70b, EGCB_LVT }, - {0x00b70c, 0x00b70c, EGCB_LV }, - {0x00b70d, 0x00b727, EGCB_LVT }, - {0x00b728, 0x00b728, EGCB_LV }, - {0x00b729, 0x00b743, EGCB_LVT }, - {0x00b744, 0x00b744, EGCB_LV }, - {0x00b745, 0x00b75f, EGCB_LVT }, - {0x00b760, 0x00b760, EGCB_LV }, - {0x00b761, 0x00b77b, EGCB_LVT }, - {0x00b77c, 0x00b77c, EGCB_LV }, - {0x00b77d, 0x00b797, EGCB_LVT }, - {0x00b798, 0x00b798, EGCB_LV }, - {0x00b799, 0x00b7b3, EGCB_LVT }, - {0x00b7b4, 0x00b7b4, EGCB_LV }, - {0x00b7b5, 0x00b7cf, EGCB_LVT }, - {0x00b7d0, 0x00b7d0, EGCB_LV }, - {0x00b7d1, 0x00b7eb, EGCB_LVT }, - {0x00b7ec, 0x00b7ec, EGCB_LV }, - {0x00b7ed, 0x00b807, EGCB_LVT }, - {0x00b808, 0x00b808, EGCB_LV }, - {0x00b809, 0x00b823, EGCB_LVT }, - {0x00b824, 0x00b824, EGCB_LV }, - {0x00b825, 0x00b83f, EGCB_LVT }, - {0x00b840, 0x00b840, EGCB_LV }, - {0x00b841, 0x00b85b, EGCB_LVT }, - {0x00b85c, 0x00b85c, EGCB_LV }, - {0x00b85d, 0x00b877, EGCB_LVT }, - {0x00b878, 0x00b878, EGCB_LV }, - {0x00b879, 0x00b893, EGCB_LVT }, - {0x00b894, 0x00b894, EGCB_LV }, - {0x00b895, 0x00b8af, EGCB_LVT }, - {0x00b8b0, 0x00b8b0, EGCB_LV }, - {0x00b8b1, 0x00b8cb, EGCB_LVT }, - {0x00b8cc, 0x00b8cc, EGCB_LV }, - {0x00b8cd, 0x00b8e7, EGCB_LVT }, - {0x00b8e8, 0x00b8e8, EGCB_LV }, - {0x00b8e9, 0x00b903, EGCB_LVT }, - {0x00b904, 0x00b904, EGCB_LV }, - {0x00b905, 0x00b91f, EGCB_LVT }, - {0x00b920, 0x00b920, EGCB_LV }, - {0x00b921, 0x00b93b, EGCB_LVT }, - {0x00b93c, 0x00b93c, EGCB_LV }, - {0x00b93d, 0x00b957, EGCB_LVT }, - {0x00b958, 0x00b958, EGCB_LV }, - {0x00b959, 0x00b973, EGCB_LVT }, - {0x00b974, 0x00b974, EGCB_LV }, - {0x00b975, 0x00b98f, EGCB_LVT }, - {0x00b990, 0x00b990, EGCB_LV }, - {0x00b991, 0x00b9ab, EGCB_LVT }, - {0x00b9ac, 0x00b9ac, EGCB_LV }, - {0x00b9ad, 0x00b9c7, EGCB_LVT }, - {0x00b9c8, 0x00b9c8, EGCB_LV }, - {0x00b9c9, 0x00b9e3, EGCB_LVT }, - {0x00b9e4, 0x00b9e4, EGCB_LV }, - {0x00b9e5, 0x00b9ff, EGCB_LVT }, - {0x00ba00, 0x00ba00, EGCB_LV }, - {0x00ba01, 0x00ba1b, EGCB_LVT }, - {0x00ba1c, 0x00ba1c, EGCB_LV }, - {0x00ba1d, 0x00ba37, EGCB_LVT }, - {0x00ba38, 0x00ba38, EGCB_LV }, - {0x00ba39, 0x00ba53, EGCB_LVT }, - {0x00ba54, 0x00ba54, EGCB_LV }, - {0x00ba55, 0x00ba6f, EGCB_LVT }, - {0x00ba70, 0x00ba70, EGCB_LV }, - {0x00ba71, 0x00ba8b, EGCB_LVT }, - {0x00ba8c, 0x00ba8c, EGCB_LV }, - {0x00ba8d, 0x00baa7, EGCB_LVT }, - {0x00baa8, 0x00baa8, EGCB_LV }, - {0x00baa9, 0x00bac3, EGCB_LVT }, - {0x00bac4, 0x00bac4, EGCB_LV }, - {0x00bac5, 0x00badf, EGCB_LVT }, - {0x00bae0, 0x00bae0, EGCB_LV }, - {0x00bae1, 0x00bafb, EGCB_LVT }, - {0x00bafc, 0x00bafc, EGCB_LV }, - {0x00bafd, 0x00bb17, EGCB_LVT }, - {0x00bb18, 0x00bb18, EGCB_LV }, - {0x00bb19, 0x00bb33, EGCB_LVT }, - {0x00bb34, 0x00bb34, EGCB_LV }, - {0x00bb35, 0x00bb4f, EGCB_LVT }, - {0x00bb50, 0x00bb50, EGCB_LV }, - {0x00bb51, 0x00bb6b, EGCB_LVT }, - {0x00bb6c, 0x00bb6c, EGCB_LV }, - {0x00bb6d, 0x00bb87, EGCB_LVT }, - {0x00bb88, 0x00bb88, EGCB_LV }, - {0x00bb89, 0x00bba3, EGCB_LVT }, - {0x00bba4, 0x00bba4, EGCB_LV }, - {0x00bba5, 0x00bbbf, EGCB_LVT }, - {0x00bbc0, 0x00bbc0, EGCB_LV }, - {0x00bbc1, 0x00bbdb, EGCB_LVT }, - {0x00bbdc, 0x00bbdc, EGCB_LV }, - {0x00bbdd, 0x00bbf7, EGCB_LVT }, - {0x00bbf8, 0x00bbf8, EGCB_LV }, - {0x00bbf9, 0x00bc13, EGCB_LVT }, - {0x00bc14, 0x00bc14, EGCB_LV }, - {0x00bc15, 0x00bc2f, EGCB_LVT }, - {0x00bc30, 0x00bc30, EGCB_LV }, - {0x00bc31, 0x00bc4b, EGCB_LVT }, - {0x00bc4c, 0x00bc4c, EGCB_LV }, - {0x00bc4d, 0x00bc67, EGCB_LVT }, - {0x00bc68, 0x00bc68, EGCB_LV }, - {0x00bc69, 0x00bc83, EGCB_LVT }, - {0x00bc84, 0x00bc84, EGCB_LV }, - {0x00bc85, 0x00bc9f, EGCB_LVT }, - {0x00bca0, 0x00bca0, EGCB_LV }, - {0x00bca1, 0x00bcbb, EGCB_LVT }, - {0x00bcbc, 0x00bcbc, EGCB_LV }, - {0x00bcbd, 0x00bcd7, EGCB_LVT }, - {0x00bcd8, 0x00bcd8, EGCB_LV }, - {0x00bcd9, 0x00bcf3, EGCB_LVT }, - {0x00bcf4, 0x00bcf4, EGCB_LV }, - {0x00bcf5, 0x00bd0f, EGCB_LVT }, - {0x00bd10, 0x00bd10, EGCB_LV }, - {0x00bd11, 0x00bd2b, EGCB_LVT }, - {0x00bd2c, 0x00bd2c, EGCB_LV }, - {0x00bd2d, 0x00bd47, EGCB_LVT }, - {0x00bd48, 0x00bd48, EGCB_LV }, - {0x00bd49, 0x00bd63, EGCB_LVT }, - {0x00bd64, 0x00bd64, EGCB_LV }, - {0x00bd65, 0x00bd7f, EGCB_LVT }, - {0x00bd80, 0x00bd80, EGCB_LV }, - {0x00bd81, 0x00bd9b, EGCB_LVT }, - {0x00bd9c, 0x00bd9c, EGCB_LV }, - {0x00bd9d, 0x00bdb7, EGCB_LVT }, - {0x00bdb8, 0x00bdb8, EGCB_LV }, - {0x00bdb9, 0x00bdd3, EGCB_LVT }, - {0x00bdd4, 0x00bdd4, EGCB_LV }, - {0x00bdd5, 0x00bdef, EGCB_LVT }, - {0x00bdf0, 0x00bdf0, EGCB_LV }, - {0x00bdf1, 0x00be0b, EGCB_LVT }, - {0x00be0c, 0x00be0c, EGCB_LV }, - {0x00be0d, 0x00be27, EGCB_LVT }, - {0x00be28, 0x00be28, EGCB_LV }, - {0x00be29, 0x00be43, EGCB_LVT }, - {0x00be44, 0x00be44, EGCB_LV }, - {0x00be45, 0x00be5f, EGCB_LVT }, - {0x00be60, 0x00be60, EGCB_LV }, - {0x00be61, 0x00be7b, EGCB_LVT }, - {0x00be7c, 0x00be7c, EGCB_LV }, - {0x00be7d, 0x00be97, EGCB_LVT }, - {0x00be98, 0x00be98, EGCB_LV }, - {0x00be99, 0x00beb3, EGCB_LVT }, - {0x00beb4, 0x00beb4, EGCB_LV }, - {0x00beb5, 0x00becf, EGCB_LVT }, - {0x00bed0, 0x00bed0, EGCB_LV }, - {0x00bed1, 0x00beeb, EGCB_LVT }, - {0x00beec, 0x00beec, EGCB_LV }, - {0x00beed, 0x00bf07, EGCB_LVT }, - {0x00bf08, 0x00bf08, EGCB_LV }, - {0x00bf09, 0x00bf23, EGCB_LVT }, - {0x00bf24, 0x00bf24, EGCB_LV }, - {0x00bf25, 0x00bf3f, EGCB_LVT }, - {0x00bf40, 0x00bf40, EGCB_LV }, - {0x00bf41, 0x00bf5b, EGCB_LVT }, - {0x00bf5c, 0x00bf5c, EGCB_LV }, - {0x00bf5d, 0x00bf77, EGCB_LVT }, - {0x00bf78, 0x00bf78, EGCB_LV }, - {0x00bf79, 0x00bf93, EGCB_LVT }, - {0x00bf94, 0x00bf94, EGCB_LV }, - {0x00bf95, 0x00bfaf, EGCB_LVT }, - {0x00bfb0, 0x00bfb0, EGCB_LV }, - {0x00bfb1, 0x00bfcb, EGCB_LVT }, - {0x00bfcc, 0x00bfcc, EGCB_LV }, - {0x00bfcd, 0x00bfe7, EGCB_LVT }, - {0x00bfe8, 0x00bfe8, EGCB_LV }, - {0x00bfe9, 0x00c003, EGCB_LVT }, - {0x00c004, 0x00c004, EGCB_LV }, - {0x00c005, 0x00c01f, EGCB_LVT }, - {0x00c020, 0x00c020, EGCB_LV }, - {0x00c021, 0x00c03b, EGCB_LVT }, - {0x00c03c, 0x00c03c, EGCB_LV }, - {0x00c03d, 0x00c057, EGCB_LVT }, - {0x00c058, 0x00c058, EGCB_LV }, - {0x00c059, 0x00c073, EGCB_LVT }, - {0x00c074, 0x00c074, EGCB_LV }, - {0x00c075, 0x00c08f, EGCB_LVT }, - {0x00c090, 0x00c090, EGCB_LV }, - {0x00c091, 0x00c0ab, EGCB_LVT }, - {0x00c0ac, 0x00c0ac, EGCB_LV }, - {0x00c0ad, 0x00c0c7, EGCB_LVT }, - {0x00c0c8, 0x00c0c8, EGCB_LV }, - {0x00c0c9, 0x00c0e3, EGCB_LVT }, - {0x00c0e4, 0x00c0e4, EGCB_LV }, - {0x00c0e5, 0x00c0ff, EGCB_LVT }, - {0x00c100, 0x00c100, EGCB_LV }, - {0x00c101, 0x00c11b, EGCB_LVT }, - {0x00c11c, 0x00c11c, EGCB_LV }, - {0x00c11d, 0x00c137, EGCB_LVT }, - {0x00c138, 0x00c138, EGCB_LV }, - {0x00c139, 0x00c153, EGCB_LVT }, - {0x00c154, 0x00c154, EGCB_LV }, - {0x00c155, 0x00c16f, EGCB_LVT }, - {0x00c170, 0x00c170, EGCB_LV }, - {0x00c171, 0x00c18b, EGCB_LVT }, - {0x00c18c, 0x00c18c, EGCB_LV }, - {0x00c18d, 0x00c1a7, EGCB_LVT }, - {0x00c1a8, 0x00c1a8, EGCB_LV }, - {0x00c1a9, 0x00c1c3, EGCB_LVT }, - {0x00c1c4, 0x00c1c4, EGCB_LV }, - {0x00c1c5, 0x00c1df, EGCB_LVT }, - {0x00c1e0, 0x00c1e0, EGCB_LV }, - {0x00c1e1, 0x00c1fb, EGCB_LVT }, - {0x00c1fc, 0x00c1fc, EGCB_LV }, - {0x00c1fd, 0x00c217, EGCB_LVT }, - {0x00c218, 0x00c218, EGCB_LV }, - {0x00c219, 0x00c233, EGCB_LVT }, - {0x00c234, 0x00c234, EGCB_LV }, - {0x00c235, 0x00c24f, EGCB_LVT }, - {0x00c250, 0x00c250, EGCB_LV }, - {0x00c251, 0x00c26b, EGCB_LVT }, - {0x00c26c, 0x00c26c, EGCB_LV }, - {0x00c26d, 0x00c287, EGCB_LVT }, - {0x00c288, 0x00c288, EGCB_LV }, - {0x00c289, 0x00c2a3, EGCB_LVT }, - {0x00c2a4, 0x00c2a4, EGCB_LV }, - {0x00c2a5, 0x00c2bf, EGCB_LVT }, - {0x00c2c0, 0x00c2c0, EGCB_LV }, - {0x00c2c1, 0x00c2db, EGCB_LVT }, - {0x00c2dc, 0x00c2dc, EGCB_LV }, - {0x00c2dd, 0x00c2f7, EGCB_LVT }, - {0x00c2f8, 0x00c2f8, EGCB_LV }, - {0x00c2f9, 0x00c313, EGCB_LVT }, - {0x00c314, 0x00c314, EGCB_LV }, - {0x00c315, 0x00c32f, EGCB_LVT }, - {0x00c330, 0x00c330, EGCB_LV }, - {0x00c331, 0x00c34b, EGCB_LVT }, - {0x00c34c, 0x00c34c, EGCB_LV }, - {0x00c34d, 0x00c367, EGCB_LVT }, - {0x00c368, 0x00c368, EGCB_LV }, - {0x00c369, 0x00c383, EGCB_LVT }, - {0x00c384, 0x00c384, EGCB_LV }, - {0x00c385, 0x00c39f, EGCB_LVT }, - {0x00c3a0, 0x00c3a0, EGCB_LV }, - {0x00c3a1, 0x00c3bb, EGCB_LVT }, - {0x00c3bc, 0x00c3bc, EGCB_LV }, - {0x00c3bd, 0x00c3d7, EGCB_LVT }, - {0x00c3d8, 0x00c3d8, EGCB_LV }, - {0x00c3d9, 0x00c3f3, EGCB_LVT }, - {0x00c3f4, 0x00c3f4, EGCB_LV }, - {0x00c3f5, 0x00c40f, EGCB_LVT }, - {0x00c410, 0x00c410, EGCB_LV }, - {0x00c411, 0x00c42b, EGCB_LVT }, - {0x00c42c, 0x00c42c, EGCB_LV }, - {0x00c42d, 0x00c447, EGCB_LVT }, - {0x00c448, 0x00c448, EGCB_LV }, - {0x00c449, 0x00c463, EGCB_LVT }, - {0x00c464, 0x00c464, EGCB_LV }, - {0x00c465, 0x00c47f, EGCB_LVT }, - {0x00c480, 0x00c480, EGCB_LV }, - {0x00c481, 0x00c49b, EGCB_LVT }, - {0x00c49c, 0x00c49c, EGCB_LV }, - {0x00c49d, 0x00c4b7, EGCB_LVT }, - {0x00c4b8, 0x00c4b8, EGCB_LV }, - {0x00c4b9, 0x00c4d3, EGCB_LVT }, - {0x00c4d4, 0x00c4d4, EGCB_LV }, - {0x00c4d5, 0x00c4ef, EGCB_LVT }, - {0x00c4f0, 0x00c4f0, EGCB_LV }, - {0x00c4f1, 0x00c50b, EGCB_LVT }, - {0x00c50c, 0x00c50c, EGCB_LV }, - {0x00c50d, 0x00c527, EGCB_LVT }, - {0x00c528, 0x00c528, EGCB_LV }, - {0x00c529, 0x00c543, EGCB_LVT }, - {0x00c544, 0x00c544, EGCB_LV }, - {0x00c545, 0x00c55f, EGCB_LVT }, - {0x00c560, 0x00c560, EGCB_LV }, - {0x00c561, 0x00c57b, EGCB_LVT }, - {0x00c57c, 0x00c57c, EGCB_LV }, - {0x00c57d, 0x00c597, EGCB_LVT }, - {0x00c598, 0x00c598, EGCB_LV }, - {0x00c599, 0x00c5b3, EGCB_LVT }, - {0x00c5b4, 0x00c5b4, EGCB_LV }, - {0x00c5b5, 0x00c5cf, EGCB_LVT }, - {0x00c5d0, 0x00c5d0, EGCB_LV }, - {0x00c5d1, 0x00c5eb, EGCB_LVT }, - {0x00c5ec, 0x00c5ec, EGCB_LV }, - {0x00c5ed, 0x00c607, EGCB_LVT }, - {0x00c608, 0x00c608, EGCB_LV }, - {0x00c609, 0x00c623, EGCB_LVT }, - {0x00c624, 0x00c624, EGCB_LV }, - {0x00c625, 0x00c63f, EGCB_LVT }, - {0x00c640, 0x00c640, EGCB_LV }, - {0x00c641, 0x00c65b, EGCB_LVT }, - {0x00c65c, 0x00c65c, EGCB_LV }, - {0x00c65d, 0x00c677, EGCB_LVT }, - {0x00c678, 0x00c678, EGCB_LV }, - {0x00c679, 0x00c693, EGCB_LVT }, - {0x00c694, 0x00c694, EGCB_LV }, - {0x00c695, 0x00c6af, EGCB_LVT }, - {0x00c6b0, 0x00c6b0, EGCB_LV }, - {0x00c6b1, 0x00c6cb, EGCB_LVT }, - {0x00c6cc, 0x00c6cc, EGCB_LV }, - {0x00c6cd, 0x00c6e7, EGCB_LVT }, - {0x00c6e8, 0x00c6e8, EGCB_LV }, - {0x00c6e9, 0x00c703, EGCB_LVT }, - {0x00c704, 0x00c704, EGCB_LV }, - {0x00c705, 0x00c71f, EGCB_LVT }, - {0x00c720, 0x00c720, EGCB_LV }, - {0x00c721, 0x00c73b, EGCB_LVT }, - {0x00c73c, 0x00c73c, EGCB_LV }, - {0x00c73d, 0x00c757, EGCB_LVT }, - {0x00c758, 0x00c758, EGCB_LV }, - {0x00c759, 0x00c773, EGCB_LVT }, - {0x00c774, 0x00c774, EGCB_LV }, - {0x00c775, 0x00c78f, EGCB_LVT }, - {0x00c790, 0x00c790, EGCB_LV }, - {0x00c791, 0x00c7ab, EGCB_LVT }, - {0x00c7ac, 0x00c7ac, EGCB_LV }, - {0x00c7ad, 0x00c7c7, EGCB_LVT }, - {0x00c7c8, 0x00c7c8, EGCB_LV }, - {0x00c7c9, 0x00c7e3, EGCB_LVT }, - {0x00c7e4, 0x00c7e4, EGCB_LV }, - {0x00c7e5, 0x00c7ff, EGCB_LVT }, - {0x00c800, 0x00c800, EGCB_LV }, - {0x00c801, 0x00c81b, EGCB_LVT }, - {0x00c81c, 0x00c81c, EGCB_LV }, - {0x00c81d, 0x00c837, EGCB_LVT }, - {0x00c838, 0x00c838, EGCB_LV }, - {0x00c839, 0x00c853, EGCB_LVT }, - {0x00c854, 0x00c854, EGCB_LV }, - {0x00c855, 0x00c86f, EGCB_LVT }, - {0x00c870, 0x00c870, EGCB_LV }, - {0x00c871, 0x00c88b, EGCB_LVT }, - {0x00c88c, 0x00c88c, EGCB_LV }, - {0x00c88d, 0x00c8a7, EGCB_LVT }, - {0x00c8a8, 0x00c8a8, EGCB_LV }, - {0x00c8a9, 0x00c8c3, EGCB_LVT }, - {0x00c8c4, 0x00c8c4, EGCB_LV }, - {0x00c8c5, 0x00c8df, EGCB_LVT }, - {0x00c8e0, 0x00c8e0, EGCB_LV }, - {0x00c8e1, 0x00c8fb, EGCB_LVT }, - {0x00c8fc, 0x00c8fc, EGCB_LV }, - {0x00c8fd, 0x00c917, EGCB_LVT }, - {0x00c918, 0x00c918, EGCB_LV }, - {0x00c919, 0x00c933, EGCB_LVT }, - {0x00c934, 0x00c934, EGCB_LV }, - {0x00c935, 0x00c94f, EGCB_LVT }, - {0x00c950, 0x00c950, EGCB_LV }, - {0x00c951, 0x00c96b, EGCB_LVT }, - {0x00c96c, 0x00c96c, EGCB_LV }, - {0x00c96d, 0x00c987, EGCB_LVT }, - {0x00c988, 0x00c988, EGCB_LV }, - {0x00c989, 0x00c9a3, EGCB_LVT }, - {0x00c9a4, 0x00c9a4, EGCB_LV }, - {0x00c9a5, 0x00c9bf, EGCB_LVT }, - {0x00c9c0, 0x00c9c0, EGCB_LV }, - {0x00c9c1, 0x00c9db, EGCB_LVT }, - {0x00c9dc, 0x00c9dc, EGCB_LV }, - {0x00c9dd, 0x00c9f7, EGCB_LVT }, - {0x00c9f8, 0x00c9f8, EGCB_LV }, - {0x00c9f9, 0x00ca13, EGCB_LVT }, - {0x00ca14, 0x00ca14, EGCB_LV }, - {0x00ca15, 0x00ca2f, EGCB_LVT }, - {0x00ca30, 0x00ca30, EGCB_LV }, - {0x00ca31, 0x00ca4b, EGCB_LVT }, - {0x00ca4c, 0x00ca4c, EGCB_LV }, - {0x00ca4d, 0x00ca67, EGCB_LVT }, - {0x00ca68, 0x00ca68, EGCB_LV }, - {0x00ca69, 0x00ca83, EGCB_LVT }, - {0x00ca84, 0x00ca84, EGCB_LV }, - {0x00ca85, 0x00ca9f, EGCB_LVT }, - {0x00caa0, 0x00caa0, EGCB_LV }, - {0x00caa1, 0x00cabb, EGCB_LVT }, - {0x00cabc, 0x00cabc, EGCB_LV }, - {0x00cabd, 0x00cad7, EGCB_LVT }, - {0x00cad8, 0x00cad8, EGCB_LV }, - {0x00cad9, 0x00caf3, EGCB_LVT }, - {0x00caf4, 0x00caf4, EGCB_LV }, - {0x00caf5, 0x00cb0f, EGCB_LVT }, - {0x00cb10, 0x00cb10, EGCB_LV }, - {0x00cb11, 0x00cb2b, EGCB_LVT }, - {0x00cb2c, 0x00cb2c, EGCB_LV }, - {0x00cb2d, 0x00cb47, EGCB_LVT }, - {0x00cb48, 0x00cb48, EGCB_LV }, - {0x00cb49, 0x00cb63, EGCB_LVT }, - {0x00cb64, 0x00cb64, EGCB_LV }, - {0x00cb65, 0x00cb7f, EGCB_LVT }, - {0x00cb80, 0x00cb80, EGCB_LV }, - {0x00cb81, 0x00cb9b, EGCB_LVT }, - {0x00cb9c, 0x00cb9c, EGCB_LV }, - {0x00cb9d, 0x00cbb7, EGCB_LVT }, - {0x00cbb8, 0x00cbb8, EGCB_LV }, - {0x00cbb9, 0x00cbd3, EGCB_LVT }, - {0x00cbd4, 0x00cbd4, EGCB_LV }, - {0x00cbd5, 0x00cbef, EGCB_LVT }, - {0x00cbf0, 0x00cbf0, EGCB_LV }, - {0x00cbf1, 0x00cc0b, EGCB_LVT }, - {0x00cc0c, 0x00cc0c, EGCB_LV }, - {0x00cc0d, 0x00cc27, EGCB_LVT }, - {0x00cc28, 0x00cc28, EGCB_LV }, - {0x00cc29, 0x00cc43, EGCB_LVT }, - {0x00cc44, 0x00cc44, EGCB_LV }, - {0x00cc45, 0x00cc5f, EGCB_LVT }, - {0x00cc60, 0x00cc60, EGCB_LV }, - {0x00cc61, 0x00cc7b, EGCB_LVT }, - {0x00cc7c, 0x00cc7c, EGCB_LV }, - {0x00cc7d, 0x00cc97, EGCB_LVT }, - {0x00cc98, 0x00cc98, EGCB_LV }, - {0x00cc99, 0x00ccb3, EGCB_LVT }, - {0x00ccb4, 0x00ccb4, EGCB_LV }, - {0x00ccb5, 0x00cccf, EGCB_LVT }, - {0x00ccd0, 0x00ccd0, EGCB_LV }, - {0x00ccd1, 0x00cceb, EGCB_LVT }, - {0x00ccec, 0x00ccec, EGCB_LV }, - {0x00cced, 0x00cd07, EGCB_LVT }, - {0x00cd08, 0x00cd08, EGCB_LV }, - {0x00cd09, 0x00cd23, EGCB_LVT }, - {0x00cd24, 0x00cd24, EGCB_LV }, - {0x00cd25, 0x00cd3f, EGCB_LVT }, - {0x00cd40, 0x00cd40, EGCB_LV }, - {0x00cd41, 0x00cd5b, EGCB_LVT }, - {0x00cd5c, 0x00cd5c, EGCB_LV }, - {0x00cd5d, 0x00cd77, EGCB_LVT }, - {0x00cd78, 0x00cd78, EGCB_LV }, - {0x00cd79, 0x00cd93, EGCB_LVT }, - {0x00cd94, 0x00cd94, EGCB_LV }, - {0x00cd95, 0x00cdaf, EGCB_LVT }, - {0x00cdb0, 0x00cdb0, EGCB_LV }, - {0x00cdb1, 0x00cdcb, EGCB_LVT }, - {0x00cdcc, 0x00cdcc, EGCB_LV }, - {0x00cdcd, 0x00cde7, EGCB_LVT }, - {0x00cde8, 0x00cde8, EGCB_LV }, - {0x00cde9, 0x00ce03, EGCB_LVT }, - {0x00ce04, 0x00ce04, EGCB_LV }, - {0x00ce05, 0x00ce1f, EGCB_LVT }, - {0x00ce20, 0x00ce20, EGCB_LV }, - {0x00ce21, 0x00ce3b, EGCB_LVT }, - {0x00ce3c, 0x00ce3c, EGCB_LV }, - {0x00ce3d, 0x00ce57, EGCB_LVT }, - {0x00ce58, 0x00ce58, EGCB_LV }, - {0x00ce59, 0x00ce73, EGCB_LVT }, - {0x00ce74, 0x00ce74, EGCB_LV }, - {0x00ce75, 0x00ce8f, EGCB_LVT }, - {0x00ce90, 0x00ce90, EGCB_LV }, - {0x00ce91, 0x00ceab, EGCB_LVT }, - {0x00ceac, 0x00ceac, EGCB_LV }, - {0x00cead, 0x00cec7, EGCB_LVT }, - {0x00cec8, 0x00cec8, EGCB_LV }, - {0x00cec9, 0x00cee3, EGCB_LVT }, - {0x00cee4, 0x00cee4, EGCB_LV }, - {0x00cee5, 0x00ceff, EGCB_LVT }, - {0x00cf00, 0x00cf00, EGCB_LV }, - {0x00cf01, 0x00cf1b, EGCB_LVT }, - {0x00cf1c, 0x00cf1c, EGCB_LV }, - {0x00cf1d, 0x00cf37, EGCB_LVT }, - {0x00cf38, 0x00cf38, EGCB_LV }, - {0x00cf39, 0x00cf53, EGCB_LVT }, - {0x00cf54, 0x00cf54, EGCB_LV }, - {0x00cf55, 0x00cf6f, EGCB_LVT }, - {0x00cf70, 0x00cf70, EGCB_LV }, - {0x00cf71, 0x00cf8b, EGCB_LVT }, - {0x00cf8c, 0x00cf8c, EGCB_LV }, - {0x00cf8d, 0x00cfa7, EGCB_LVT }, - {0x00cfa8, 0x00cfa8, EGCB_LV }, - {0x00cfa9, 0x00cfc3, EGCB_LVT }, - {0x00cfc4, 0x00cfc4, EGCB_LV }, - {0x00cfc5, 0x00cfdf, EGCB_LVT }, - {0x00cfe0, 0x00cfe0, EGCB_LV }, - {0x00cfe1, 0x00cffb, EGCB_LVT }, - {0x00cffc, 0x00cffc, EGCB_LV }, - {0x00cffd, 0x00d017, EGCB_LVT }, - {0x00d018, 0x00d018, EGCB_LV }, - {0x00d019, 0x00d033, EGCB_LVT }, - {0x00d034, 0x00d034, EGCB_LV }, - {0x00d035, 0x00d04f, EGCB_LVT }, - {0x00d050, 0x00d050, EGCB_LV }, - {0x00d051, 0x00d06b, EGCB_LVT }, - {0x00d06c, 0x00d06c, EGCB_LV }, - {0x00d06d, 0x00d087, EGCB_LVT }, - {0x00d088, 0x00d088, EGCB_LV }, - {0x00d089, 0x00d0a3, EGCB_LVT }, - {0x00d0a4, 0x00d0a4, EGCB_LV }, - {0x00d0a5, 0x00d0bf, EGCB_LVT }, - {0x00d0c0, 0x00d0c0, EGCB_LV }, - {0x00d0c1, 0x00d0db, EGCB_LVT }, - {0x00d0dc, 0x00d0dc, EGCB_LV }, - {0x00d0dd, 0x00d0f7, EGCB_LVT }, - {0x00d0f8, 0x00d0f8, EGCB_LV }, - {0x00d0f9, 0x00d113, EGCB_LVT }, - {0x00d114, 0x00d114, EGCB_LV }, - {0x00d115, 0x00d12f, EGCB_LVT }, - {0x00d130, 0x00d130, EGCB_LV }, - {0x00d131, 0x00d14b, EGCB_LVT }, - {0x00d14c, 0x00d14c, EGCB_LV }, - {0x00d14d, 0x00d167, EGCB_LVT }, - {0x00d168, 0x00d168, EGCB_LV }, - {0x00d169, 0x00d183, EGCB_LVT }, - {0x00d184, 0x00d184, EGCB_LV }, - {0x00d185, 0x00d19f, EGCB_LVT }, - {0x00d1a0, 0x00d1a0, EGCB_LV }, - {0x00d1a1, 0x00d1bb, EGCB_LVT }, - {0x00d1bc, 0x00d1bc, EGCB_LV }, - {0x00d1bd, 0x00d1d7, EGCB_LVT }, - {0x00d1d8, 0x00d1d8, EGCB_LV }, - {0x00d1d9, 0x00d1f3, EGCB_LVT }, - {0x00d1f4, 0x00d1f4, EGCB_LV }, - {0x00d1f5, 0x00d20f, EGCB_LVT }, - {0x00d210, 0x00d210, EGCB_LV }, - {0x00d211, 0x00d22b, EGCB_LVT }, - {0x00d22c, 0x00d22c, EGCB_LV }, - {0x00d22d, 0x00d247, EGCB_LVT }, - {0x00d248, 0x00d248, EGCB_LV }, - {0x00d249, 0x00d263, EGCB_LVT }, - {0x00d264, 0x00d264, EGCB_LV }, - {0x00d265, 0x00d27f, EGCB_LVT }, - {0x00d280, 0x00d280, EGCB_LV }, - {0x00d281, 0x00d29b, EGCB_LVT }, - {0x00d29c, 0x00d29c, EGCB_LV }, - {0x00d29d, 0x00d2b7, EGCB_LVT }, - {0x00d2b8, 0x00d2b8, EGCB_LV }, - {0x00d2b9, 0x00d2d3, EGCB_LVT }, - {0x00d2d4, 0x00d2d4, EGCB_LV }, - {0x00d2d5, 0x00d2ef, EGCB_LVT }, - {0x00d2f0, 0x00d2f0, EGCB_LV }, - {0x00d2f1, 0x00d30b, EGCB_LVT }, - {0x00d30c, 0x00d30c, EGCB_LV }, - {0x00d30d, 0x00d327, EGCB_LVT }, - {0x00d328, 0x00d328, EGCB_LV }, - {0x00d329, 0x00d343, EGCB_LVT }, - {0x00d344, 0x00d344, EGCB_LV }, - {0x00d345, 0x00d35f, EGCB_LVT }, - {0x00d360, 0x00d360, EGCB_LV }, - {0x00d361, 0x00d37b, EGCB_LVT }, - {0x00d37c, 0x00d37c, EGCB_LV }, - {0x00d37d, 0x00d397, EGCB_LVT }, - {0x00d398, 0x00d398, EGCB_LV }, - {0x00d399, 0x00d3b3, EGCB_LVT }, - {0x00d3b4, 0x00d3b4, EGCB_LV }, - {0x00d3b5, 0x00d3cf, EGCB_LVT }, - {0x00d3d0, 0x00d3d0, EGCB_LV }, - {0x00d3d1, 0x00d3eb, EGCB_LVT }, - {0x00d3ec, 0x00d3ec, EGCB_LV }, - {0x00d3ed, 0x00d407, EGCB_LVT }, - {0x00d408, 0x00d408, EGCB_LV }, - {0x00d409, 0x00d423, EGCB_LVT }, - {0x00d424, 0x00d424, EGCB_LV }, - {0x00d425, 0x00d43f, EGCB_LVT }, - {0x00d440, 0x00d440, EGCB_LV }, - {0x00d441, 0x00d45b, EGCB_LVT }, - {0x00d45c, 0x00d45c, EGCB_LV }, - {0x00d45d, 0x00d477, EGCB_LVT }, - {0x00d478, 0x00d478, EGCB_LV }, - {0x00d479, 0x00d493, EGCB_LVT }, - {0x00d494, 0x00d494, EGCB_LV }, - {0x00d495, 0x00d4af, EGCB_LVT }, - {0x00d4b0, 0x00d4b0, EGCB_LV }, - {0x00d4b1, 0x00d4cb, EGCB_LVT }, - {0x00d4cc, 0x00d4cc, EGCB_LV }, - {0x00d4cd, 0x00d4e7, EGCB_LVT }, - {0x00d4e8, 0x00d4e8, EGCB_LV }, - {0x00d4e9, 0x00d503, EGCB_LVT }, - {0x00d504, 0x00d504, EGCB_LV }, - {0x00d505, 0x00d51f, EGCB_LVT }, - {0x00d520, 0x00d520, EGCB_LV }, - {0x00d521, 0x00d53b, EGCB_LVT }, - {0x00d53c, 0x00d53c, EGCB_LV }, - {0x00d53d, 0x00d557, EGCB_LVT }, - {0x00d558, 0x00d558, EGCB_LV }, - {0x00d559, 0x00d573, EGCB_LVT }, - {0x00d574, 0x00d574, EGCB_LV }, - {0x00d575, 0x00d58f, EGCB_LVT }, - {0x00d590, 0x00d590, EGCB_LV }, - {0x00d591, 0x00d5ab, EGCB_LVT }, - {0x00d5ac, 0x00d5ac, EGCB_LV }, - {0x00d5ad, 0x00d5c7, EGCB_LVT }, - {0x00d5c8, 0x00d5c8, EGCB_LV }, - {0x00d5c9, 0x00d5e3, EGCB_LVT }, - {0x00d5e4, 0x00d5e4, EGCB_LV }, - {0x00d5e5, 0x00d5ff, EGCB_LVT }, - {0x00d600, 0x00d600, EGCB_LV }, - {0x00d601, 0x00d61b, EGCB_LVT }, - {0x00d61c, 0x00d61c, EGCB_LV }, - {0x00d61d, 0x00d637, EGCB_LVT }, - {0x00d638, 0x00d638, EGCB_LV }, - {0x00d639, 0x00d653, EGCB_LVT }, - {0x00d654, 0x00d654, EGCB_LV }, - {0x00d655, 0x00d66f, EGCB_LVT }, - {0x00d670, 0x00d670, EGCB_LV }, - {0x00d671, 0x00d68b, EGCB_LVT }, - {0x00d68c, 0x00d68c, EGCB_LV }, - {0x00d68d, 0x00d6a7, EGCB_LVT }, - {0x00d6a8, 0x00d6a8, EGCB_LV }, - {0x00d6a9, 0x00d6c3, EGCB_LVT }, - {0x00d6c4, 0x00d6c4, EGCB_LV }, - {0x00d6c5, 0x00d6df, EGCB_LVT }, - {0x00d6e0, 0x00d6e0, EGCB_LV }, - {0x00d6e1, 0x00d6fb, EGCB_LVT }, - {0x00d6fc, 0x00d6fc, EGCB_LV }, - {0x00d6fd, 0x00d717, EGCB_LVT }, - {0x00d718, 0x00d718, EGCB_LV }, - {0x00d719, 0x00d733, EGCB_LVT }, - {0x00d734, 0x00d734, EGCB_LV }, - {0x00d735, 0x00d74f, EGCB_LVT }, - {0x00d750, 0x00d750, EGCB_LV }, - {0x00d751, 0x00d76b, EGCB_LVT }, - {0x00d76c, 0x00d76c, EGCB_LV }, - {0x00d76d, 0x00d787, EGCB_LVT }, - {0x00d788, 0x00d788, EGCB_LV }, - {0x00d789, 0x00d7a3, EGCB_LVT }, - {0x00d7b0, 0x00d7c6, EGCB_V }, - {0x00d7cb, 0x00d7fb, EGCB_T }, - {0x00fb1e, 0x00fb1e, EGCB_Extend }, - {0x00fe00, 0x00fe0f, EGCB_Extend }, - {0x00fe20, 0x00fe2f, EGCB_Extend }, - {0x00feff, 0x00feff, EGCB_Control }, - {0x00ff9e, 0x00ff9f, EGCB_Extend }, - {0x00fff0, 0x00fffb, EGCB_Control }, - {0x0101fd, 0x0101fd, EGCB_Extend }, - {0x0102e0, 0x0102e0, EGCB_Extend }, - {0x010376, 0x01037a, EGCB_Extend }, - {0x010a01, 0x010a03, EGCB_Extend }, - {0x010a05, 0x010a06, EGCB_Extend }, - {0x010a0c, 0x010a0f, EGCB_Extend }, - {0x010a38, 0x010a3a, EGCB_Extend }, - {0x010a3f, 0x010a3f, EGCB_Extend }, - {0x010ae5, 0x010ae6, EGCB_Extend }, - {0x010d24, 0x010d27, EGCB_Extend }, - {0x010f46, 0x010f50, EGCB_Extend }, - {0x011000, 0x011000, EGCB_SpacingMark }, - {0x011001, 0x011001, EGCB_Extend }, - {0x011002, 0x011002, EGCB_SpacingMark }, - {0x011038, 0x011046, EGCB_Extend }, - {0x01107f, 0x011081, EGCB_Extend }, - {0x011082, 0x011082, EGCB_SpacingMark }, - {0x0110b0, 0x0110b2, EGCB_SpacingMark }, - {0x0110b3, 0x0110b6, EGCB_Extend }, - {0x0110b7, 0x0110b8, EGCB_SpacingMark }, - {0x0110b9, 0x0110ba, EGCB_Extend }, - {0x0110bd, 0x0110bd, EGCB_Prepend }, - {0x0110cd, 0x0110cd, EGCB_Prepend }, - {0x011100, 0x011102, EGCB_Extend }, - {0x011127, 0x01112b, EGCB_Extend }, - {0x01112c, 0x01112c, EGCB_SpacingMark }, - {0x01112d, 0x011134, EGCB_Extend }, - {0x011145, 0x011146, EGCB_SpacingMark }, - {0x011173, 0x011173, EGCB_Extend }, - {0x011180, 0x011181, EGCB_Extend }, - {0x011182, 0x011182, EGCB_SpacingMark }, - {0x0111b3, 0x0111b5, EGCB_SpacingMark }, - {0x0111b6, 0x0111be, EGCB_Extend }, - {0x0111bf, 0x0111c0, EGCB_SpacingMark }, - {0x0111c2, 0x0111c3, EGCB_Prepend }, - {0x0111c9, 0x0111cc, EGCB_Extend }, - {0x01122c, 0x01122e, EGCB_SpacingMark }, - {0x01122f, 0x011231, EGCB_Extend }, - {0x011232, 0x011233, EGCB_SpacingMark }, - {0x011234, 0x011234, EGCB_Extend }, - {0x011235, 0x011235, EGCB_SpacingMark }, - {0x011236, 0x011237, EGCB_Extend }, - {0x01123e, 0x01123e, EGCB_Extend }, - {0x0112df, 0x0112df, EGCB_Extend }, - {0x0112e0, 0x0112e2, EGCB_SpacingMark }, - {0x0112e3, 0x0112ea, EGCB_Extend }, - {0x011300, 0x011301, EGCB_Extend }, - {0x011302, 0x011303, EGCB_SpacingMark }, - {0x01133b, 0x01133c, EGCB_Extend }, - {0x01133e, 0x01133e, EGCB_Extend }, - {0x01133f, 0x01133f, EGCB_SpacingMark }, - {0x011340, 0x011340, EGCB_Extend }, - {0x011341, 0x011344, EGCB_SpacingMark }, - {0x011347, 0x011348, EGCB_SpacingMark }, - {0x01134b, 0x01134d, EGCB_SpacingMark }, - {0x011357, 0x011357, EGCB_Extend }, - {0x011362, 0x011363, EGCB_SpacingMark }, - {0x011366, 0x01136c, EGCB_Extend }, - {0x011370, 0x011374, EGCB_Extend }, - {0x011435, 0x011437, EGCB_SpacingMark }, - {0x011438, 0x01143f, EGCB_Extend }, - {0x011440, 0x011441, EGCB_SpacingMark }, - {0x011442, 0x011444, EGCB_Extend }, - {0x011445, 0x011445, EGCB_SpacingMark }, - {0x011446, 0x011446, EGCB_Extend }, - {0x01145e, 0x01145e, EGCB_Extend }, - {0x0114b0, 0x0114b0, EGCB_Extend }, - {0x0114b1, 0x0114b2, EGCB_SpacingMark }, - {0x0114b3, 0x0114b8, EGCB_Extend }, - {0x0114b9, 0x0114b9, EGCB_SpacingMark }, - {0x0114ba, 0x0114ba, EGCB_Extend }, - {0x0114bb, 0x0114bc, EGCB_SpacingMark }, - {0x0114bd, 0x0114bd, EGCB_Extend }, - {0x0114be, 0x0114be, EGCB_SpacingMark }, - {0x0114bf, 0x0114c0, EGCB_Extend }, - {0x0114c1, 0x0114c1, EGCB_SpacingMark }, - {0x0114c2, 0x0114c3, EGCB_Extend }, - {0x0115af, 0x0115af, EGCB_Extend }, - {0x0115b0, 0x0115b1, EGCB_SpacingMark }, - {0x0115b2, 0x0115b5, EGCB_Extend }, - {0x0115b8, 0x0115bb, EGCB_SpacingMark }, - {0x0115bc, 0x0115bd, EGCB_Extend }, - {0x0115be, 0x0115be, EGCB_SpacingMark }, - {0x0115bf, 0x0115c0, EGCB_Extend }, - {0x0115dc, 0x0115dd, EGCB_Extend }, - {0x011630, 0x011632, EGCB_SpacingMark }, - {0x011633, 0x01163a, EGCB_Extend }, - {0x01163b, 0x01163c, EGCB_SpacingMark }, - {0x01163d, 0x01163d, EGCB_Extend }, - {0x01163e, 0x01163e, EGCB_SpacingMark }, - {0x01163f, 0x011640, EGCB_Extend }, - {0x0116ab, 0x0116ab, EGCB_Extend }, - {0x0116ac, 0x0116ac, EGCB_SpacingMark }, - {0x0116ad, 0x0116ad, EGCB_Extend }, - {0x0116ae, 0x0116af, EGCB_SpacingMark }, - {0x0116b0, 0x0116b5, EGCB_Extend }, - {0x0116b6, 0x0116b6, EGCB_SpacingMark }, - {0x0116b7, 0x0116b7, EGCB_Extend }, - {0x01171d, 0x01171f, EGCB_Extend }, - {0x011720, 0x011721, EGCB_SpacingMark }, - {0x011722, 0x011725, EGCB_Extend }, - {0x011726, 0x011726, EGCB_SpacingMark }, - {0x011727, 0x01172b, EGCB_Extend }, - {0x01182c, 0x01182e, EGCB_SpacingMark }, - {0x01182f, 0x011837, EGCB_Extend }, - {0x011838, 0x011838, EGCB_SpacingMark }, - {0x011839, 0x01183a, EGCB_Extend }, - {0x0119d1, 0x0119d3, EGCB_SpacingMark }, - {0x0119d4, 0x0119d7, EGCB_Extend }, - {0x0119da, 0x0119db, EGCB_Extend }, - {0x0119dc, 0x0119df, EGCB_SpacingMark }, - {0x0119e0, 0x0119e0, EGCB_Extend }, - {0x0119e4, 0x0119e4, EGCB_SpacingMark }, - {0x011a01, 0x011a0a, EGCB_Extend }, - {0x011a33, 0x011a38, EGCB_Extend }, - {0x011a39, 0x011a39, EGCB_SpacingMark }, - {0x011a3a, 0x011a3a, EGCB_Prepend }, - {0x011a3b, 0x011a3e, EGCB_Extend }, - {0x011a47, 0x011a47, EGCB_Extend }, - {0x011a51, 0x011a56, EGCB_Extend }, - {0x011a57, 0x011a58, EGCB_SpacingMark }, - {0x011a59, 0x011a5b, EGCB_Extend }, - {0x011a84, 0x011a89, EGCB_Prepend }, - {0x011a8a, 0x011a96, EGCB_Extend }, - {0x011a97, 0x011a97, EGCB_SpacingMark }, - {0x011a98, 0x011a99, EGCB_Extend }, - {0x011c2f, 0x011c2f, EGCB_SpacingMark }, - {0x011c30, 0x011c36, EGCB_Extend }, - {0x011c38, 0x011c3d, EGCB_Extend }, - {0x011c3e, 0x011c3e, EGCB_SpacingMark }, - {0x011c3f, 0x011c3f, EGCB_Extend }, - {0x011c92, 0x011ca7, EGCB_Extend }, - {0x011ca9, 0x011ca9, EGCB_SpacingMark }, - {0x011caa, 0x011cb0, EGCB_Extend }, - {0x011cb1, 0x011cb1, EGCB_SpacingMark }, - {0x011cb2, 0x011cb3, EGCB_Extend }, - {0x011cb4, 0x011cb4, EGCB_SpacingMark }, - {0x011cb5, 0x011cb6, EGCB_Extend }, - {0x011d31, 0x011d36, EGCB_Extend }, - {0x011d3a, 0x011d3a, EGCB_Extend }, - {0x011d3c, 0x011d3d, EGCB_Extend }, - {0x011d3f, 0x011d45, EGCB_Extend }, - {0x011d46, 0x011d46, EGCB_Prepend }, - {0x011d47, 0x011d47, EGCB_Extend }, - {0x011d8a, 0x011d8e, EGCB_SpacingMark }, - {0x011d90, 0x011d91, EGCB_Extend }, - {0x011d93, 0x011d94, EGCB_SpacingMark }, - {0x011d95, 0x011d95, EGCB_Extend }, - {0x011d96, 0x011d96, EGCB_SpacingMark }, - {0x011d97, 0x011d97, EGCB_Extend }, - {0x011ef3, 0x011ef4, EGCB_Extend }, - {0x011ef5, 0x011ef6, EGCB_SpacingMark }, - {0x013430, 0x013438, EGCB_Control }, - {0x016af0, 0x016af4, EGCB_Extend }, - {0x016b30, 0x016b36, EGCB_Extend }, - {0x016f4f, 0x016f4f, EGCB_Extend }, - {0x016f51, 0x016f87, EGCB_SpacingMark }, - {0x016f8f, 0x016f92, EGCB_Extend }, - {0x01bc9d, 0x01bc9e, EGCB_Extend }, - {0x01bca0, 0x01bca3, EGCB_Control }, - {0x01d165, 0x01d165, EGCB_Extend }, - {0x01d166, 0x01d166, EGCB_SpacingMark }, - {0x01d167, 0x01d169, EGCB_Extend }, - {0x01d16d, 0x01d16d, EGCB_SpacingMark }, - {0x01d16e, 0x01d172, EGCB_Extend }, - {0x01d173, 0x01d17a, EGCB_Control }, - {0x01d17b, 0x01d182, EGCB_Extend }, - {0x01d185, 0x01d18b, EGCB_Extend }, - {0x01d1aa, 0x01d1ad, EGCB_Extend }, - {0x01d242, 0x01d244, EGCB_Extend }, - {0x01da00, 0x01da36, EGCB_Extend }, - {0x01da3b, 0x01da6c, EGCB_Extend }, - {0x01da75, 0x01da75, EGCB_Extend }, - {0x01da84, 0x01da84, EGCB_Extend }, - {0x01da9b, 0x01da9f, EGCB_Extend }, - {0x01daa1, 0x01daaf, EGCB_Extend }, - {0x01e000, 0x01e006, EGCB_Extend }, - {0x01e008, 0x01e018, EGCB_Extend }, - {0x01e01b, 0x01e021, EGCB_Extend }, - {0x01e023, 0x01e024, EGCB_Extend }, - {0x01e026, 0x01e02a, EGCB_Extend }, - {0x01e130, 0x01e136, EGCB_Extend }, - {0x01e2ec, 0x01e2ef, EGCB_Extend }, - {0x01e8d0, 0x01e8d6, EGCB_Extend }, - {0x01e944, 0x01e94a, EGCB_Extend }, - {0x01f1e6, 0x01f1ff, EGCB_Regional_Indicator }, - {0x01f3fb, 0x01f3ff, EGCB_Extend }, - {0x0e0000, 0x0e001f, EGCB_Control }, - {0x0e0020, 0x0e007f, EGCB_Extend }, - {0x0e0080, 0x0e00ff, EGCB_Control }, - {0x0e0100, 0x0e01ef, EGCB_Extend }, - {0x0e01f0, 0x0e0fff, EGCB_Control } -}; diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold1_key.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold1_key.c deleted file mode 100644 index 0aa54ee172b2..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold1_key.c +++ /dev/null @@ -1,2995 +0,0 @@ -/* This file was converted by gperf_fold_key_conv.py - from gperf output file. */ -/* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold1_key unicode_fold1_key.gperf */ -/* Computed positions: -k'1-3' */ - - - -/* This gperf source file was generated by make_unicode_fold_data.py */ - -/*- - * Copyright (c) 2017-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -//#include -#include "regenc.h" - -#define TOTAL_KEYWORDS 1353 -#define MIN_WORD_LENGTH 3 -#define MAX_WORD_LENGTH 3 -#define MIN_HASH_VALUE 3 -#define MAX_HASH_VALUE 1791 -/* maximum key range = 1789, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -/*ARGSUSED*/ -static unsigned int -hash(OnigCodePoint codes[]) -{ - static const unsigned short asso_values[] = - { - 4, 2, 147, 16, 1, 13, 1228, 725, 1224, 638, - 1204, 95, 9, 82, 1403, 80, 8, 68, 1391, 6, - 1203, 602, 1200, 320, 151, 67, 1385, 61, 1384, 158, - 0, 11, 1252, 3, 733, 278, 23, 425, 660, 424, - 640, 20, 635, 105, 5, 29, 916, 34, 630, 0, - 906, 1378, 899, 1377, 470, 1363, 623, 902, 610, 230, - 1193, 1358, 1190, 779, 986, 1336, 890, 883, 456, 597, - 285, 158, 590, 477, 583, 42, 576, 1447, 447, 1440, - 440, 1353, 426, 1429, 400, 1417, 327, 1407, 567, 1389, - 386, 1207, 458, 724, 854, 979, 1016, 66, 232, 413, - 204, 1431, 226, 1317, 190, 1167, 379, 1319, 198, 1270, - 175, 209, 561, 362, 528, 1323, 257, 1099, 240, 1309, - 508, 1172, 484, 1306, 699, 865, 850, 488, 679, 755, - 420, 639, 1149, 105, 691, 789, 1125, 46, 809, 652, - 1293, 3, 1262, 166, 1426, 0, 1424, 1792, 1220, 460, - 706, 1, 367, 1792, 1341, 1792, 1151, 56, 1235, 1792, - 384, 345, 965, 40, 1168, 33, 218, 180, 1159, 20, - 1296, 276, 1243, 14, 1401, 777, 1142, 682, 1284, 129, - 1135, 610, 1181, 871, 1123, 858, 1042, 510, 842, 499, - 999, 346, 830, 0, 823, 1288, 1115, 768, 732, 1272, - 1101, 1098, 1082, 1270, 811, 177, 1078, 1074, 1061, 1058, - 1050, 789, 353, 1018, 548, 1006, 517, 988, 334, 765, - 166, 753, 138, 743, 100, 969, 87, 720, 49, 975, - 75, 965, 62, 411, 126, 955, 113, 1262, 317, 943, - 304, 679, 293, 1252, 714, 937, 275, 490, 263, 469, - 395, 1345, 931, 208, 921, 80, 542, 11, 246 - }; - return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+3] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)]; -} - -int -onigenc_unicode_fold1_key(OnigCodePoint codes[]) -{ - static const short int wordlist[] = - { - -1, -1, -1, - - 3429, - - 1906, - - 1867, - - 210, - - 171, - - 3414, - - 1927, - - 1690, - - 231, - - 1885, - - 1879, - - 189, - - 183, - - 2240, - - 1315, - - 1276, - - 165, - - 792, - - 2261, - - 1336, - - 1594, - - 1630, - - 1294, - - 1288, - - 1915, - - 2243, - - 219, - - 1618, - - 2237, - - 3417, - - 2981, - - 2903, - - 2297, - - 2990, - - 3423, - - 2282, - - 2948, - - 1324, - - 2939, - - 2927, - - 1606, - - 2984, - - 3507, - - 2906, - - 974, - - 273, - - 2900, - - 1600, - - 2648, - - 3558, - - 2189, - - 1228, - - 459, - - 2999, - - 80, - - 2885, - - 1795, - - 3738, - - 1513, - - 378, - - 1459, - - 2438, - - 3570, - - 2195, - - 1234, - - 465, - - 860, - - 92, - - 1041, - - 1807, - - 3750, - - 1525, - - 2714, - - 2549, - - 2441, - - 3564, - - 2192, - - 1231, - - 462, - - 866, - - 86, - - 2888, - - 1801, - - 3744, - - 1519, - - 159, - - 2561, - - 3552, - - 2186, - - 1225, - - 456, - - 2972, - - 863, - - 2882, - - 1789, - - 3732, - - 1507, - - 2966, - - 2942, - - 2555, - - 3546, - - 2183, - - 1222, - - 453, - - 857, - - 3411, - - 2879, - - 1783, - - 3726, - - 1501, - - 2936, - - 2543, - - 2930, - - 3582, - - 2201, - - 1240, - - 471, - - 854, - - 105, - - 1447, - - 1819, - - 3762, - - 1537, - - 3354, - - 2537, - - 2924, - - 3576, - - 2198, - - 1237, - - 468, - - 872, - - 99, - - 399, - - 1813, - - 3756, - - 1531, - - 1648, - - 2573, - - 3540, - - 2180, - - 1219, - - 2423, - -1, - - 869, - - 2876, - - 1777, - - 3720, - - 1495, - - 541, - - 502, - - 2567, - - 697, - - 1897, - - 559, - - 201, - - 851, - - 520, - - 514, - - 3495, - - 1864, - - 962, - - 267, - - 2531, - - 2276, - - 2636, - - 1306, - - 3534, - - 2177, - - 1216, - - 366, - - 2339, - -1, - - 2873, - - 1771, - - 3714, - - 1489, - - 2027, - - 1063, - - 324, - - 1192, - - 27, - - 2963, - - 3276, - - 848, - - 1726, - - 3669, - - 3141, - - 1612, - - 2978, - - 1378, - - 2525, - - 2018, - - 1054, - - 315, - - 830, - - 12, - - 2720, - -1, -1, - - 2024, - - 1060, - - 321, - - 2372, - - 4086, - - 1360, - - 2011, - - 1047, - - 309, - - 3633, - - 0, - - 2717, - -1, - - 1372, - - 153, - - 31, - - 2732, - - 2360, - - 1588, - - 1348, - - 2096, - - 1135, - - 387, - -1, - - 1381, - - 2792, - - 1609, - -1, - - 2015, - - 1050, - - 312, - - 3459, - - 6, - - 922, - - 2008, - - 1044, - - 306, - - 2600, - - 3885, - - 2366, - - 3342, - - 1354, - - 2039, - - 1075, - - 336, - - 2456, - - 52, - - 2735, - - 2234, - - 1273, - - 499, - - 3879, - - 168, - - 2390, - - 682, - - 1402, - - 1597, - -1, - - 718, - - 2036, - - 1072, - - 333, - - 2450, - - 46, - - 3618, - - 2219, - - 1258, - - 487, - -1, - - 141, - - 2384, - - 1855, - - 1396, - - 1573, - -1, - - 715, - - 3612, - - 2216, - - 1255, - - 483, - - 393, - - 135, - - 2897, - - 1849, - - 1624, - - 1567, - - 3492, - - 1966, - - 959, - - 3873, - -1, - - 2279, - - 2633, - - 887, - - 3600, - - 2210, - - 1249, - - 480, - - 2336, - - 123, - - 532, - - 1837, - - 3780, - - 1555, - -1, - - 3594, - - 2207, - - 1246, - - 477, - - 2996, - - 117, - - 881, - - 1831, - - 3774, - - 1549, - - 703, - -1, - - 3867, - - 3588, - - 2204, - - 1243, - - 474, - - 878, - - 111, - - 658, - - 1825, - - 3768, - - 1543, - - 3822, - - 1990, - - 1008, - - 288, - -1, - - 2273, - - 2681, - - 875, - - 2174, - - 1213, - -1, - - 643, - - 2348, - - 2870, - - 1765, - - 3708, - - 1483, - -1, -1, - - 652, - - 3267, - - 381, - - 3921, - - 2960, - - 845, - - 637, - - 1684, - - 2165, - - 1204, - - 3237, - - 661, - - 2519, - - 2861, - - 1747, - - 3690, - - 1465, - - 785, - - 3903, - - 2432, - - 3339, - - 37, - - 2090, - - 1114, - - 372, - - 3228, - - 3915, - - 2771, - - 640, - -1, - - 1387, - - 2501, - - 3891, - - 3234, - - 2021, - - 1057, - - 318, - - 3924, - - 18, - - 3222, - - 1126, - - 1996, - - 1020, - - 294, - - 2783, - - 2378, - - 2693, - - 1366, - - 3084, - - 3624, - - 2222, - - 1261, - - 2354, - - 3297, - - 3897, - - 1987, - - 1002, - - 285, - - 1579, - - 667, - - 2675, - - 3225, - - 3387, - - 3075, - - 4020, - - 3573, - - 2345, - - 3219, - - 3945, - - 4005, - - 96, - - 3081, - - 1810, - - 3753, - - 1528, - - 2057, - - 1093, - - 3069, - - 2492, - - 2357, - - 3528, - - 1984, - - 996, - - 282, - - 3996, - - 3939, - - 2669, - -1, - - 1438, - - 2564, - - 2291, - - 2285, - -1, - - 4008, - - 3522, - - 1981, - - 990, - - 279, - - 4014, - - 3072, - - 2663, - - 3516, - - 1978, - - 984, - - 276, - - 3066, - -1, - - 2657, - - 3008, - - 3002, - - 3486, - - 1963, - - 950, - - 1999, - - 1026, - - 297, - - 2627, - - 369, - - 2699, - -1, - - 3177, - - 3399, - - 2330, - - 3621, - - 3444, - - 1942, - - 906, - - 243, - - 144, - - 613, - - 2585, - - 3501, - - 1576, - - 968, - - 270, - - 3381, - - 2312, - - 2642, - - 3861, - - 2045, - - 1081, - - 342, - - 2468, - - 65, - - 3615, - - 348, - - 2483, - - 712, - -1, - - 138, - - 2402, - - 1852, - - 1414, - - 1570, - - 2417, - - 721, - - 1429, - - 3843, - - 3023, - - 727, - - 1678, - - 3375, - - 3201, - - 2042, - - 1078, - - 339, - - 2462, - - 59, - -1, - - 4002, - - 778, - - 1672, - - 2171, - - 1210, - - 2396, - - 3369, - - 1408, - - 2867, - - 1759, - - 3702, - - 1477, - - 768, - - 3363, - - 2033, - - 1069, - - 330, - - 709, - - 40, - - 622, - -1, - - 3930, - - 3333, - -1, - - 3405, - -1, - - 2513, - - 1390, - - 2231, - - 1270, - - 496, - - 3048, - - 162, - - 607, - - 2168, - - 1207, - - 1591, - -1, - - 3909, - - 2864, - - 1753, - - 3696, - - 1471, - - 3348, - -1, - - 3231, - - 634, - - 2030, - - 1066, - - 327, - - 3288, - - 34, - - 3207, - - 1993, - - 1014, - - 291, - -1, - - 2507, - - 2687, - - 601, - - 1384, - - 3510, - - 1975, - - 977, - - 2351, - -1, - - 3198, - - 2651, - - 3504, - - 1972, - - 971, - - 3120, - - 3888, - - 598, - - 2645, - - 3498, - - 1969, - - 965, - -1, - - 3981, - - 595, - - 2639, - - 3489, - - 3078, - - 954, - - 264, - - 3252, - - 2342, - - 2630, - - 3330, - - 3054, - - 625, - - 3195, - - 706, - - 2333, - - 3456, - - 1948, - - 919, - - 249, - - 2267, - -1, - - 2597, - - 1654, - - 574, - - 3045, - -1, - - 3192, - - 2324, - - 3450, - - 1945, - - 913, - - 246, - - 748, - - 3189, - - 2591, - - 3426, - - 1933, - - 2954, - - 237, - -1, - - 2318, - - 1924, - - 3174, - - 228, - - 3210, - - 4050, - - 1921, - - 354, - - 225, - - 1342, - - 3042, - -1, - - 2300, - - 3393, - - 1333, - - 2255, - - 3153, - - 2294, - - 1441, - - 1330, - - 363, - - 673, - - 3357, - - 3957, - - 3039, - - 3017, - - 1918, - - 3972, - - 222, - - 3351, - - 3014, - - 3035, - - 3855, - - 2918, - - 3249, - - 3011, - - 3345, - - 2288, - -1, - - 1327, - - 3020, - - 664, - - 3057, - - 3336, - - 3597, - - 2054, - - 1090, - - 3951, - - 2486, - - 120, - - 2894, - - 1834, - - 3777, - - 1552, - - 1642, - - 3005, - - 2420, - - 2063, - - 1432, - - 357, - - 4083, - - 730, - - 2744, - - 3849, - - 739, - - 2048, - - 1084, - - 3933, - - 2474, - - 71, - - 1450, - -1, - - 2087, - - 1111, - - 3243, - -1, - - 2408, - - 2768, - - 1420, - - 3606, - - 2213, - - 1252, - -1, -1, - - 129, - - 3555, - - 1843, - - 3786, - - 1561, - - 592, - - 77, - - 1029, - - 1792, - - 3735, - - 1510, - - 2702, - - 589, - - 2435, - - 2144, - - 1912, - - 3927, - - 216, - - 2249, - - 2840, - - 1705, - - 3648, - -1, - - 3240, - - 3543, - - 2546, - - 586, - - 450, - - 1321, - - 3204, - - 806, - - 1780, - - 3723, - - 1498, - - 3537, - -1, - - 2912, - - 447, - - 3186, - - 351, - - 2489, - - 1774, - - 3717, - - 1492, - - 2993, - - 3183, - - 3531, - -1, - - 2534, - - 444, - - 1435, - - 1180, - - 3180, - - 1768, - - 3711, - - 1486, - - 1702, - - 3645, - - 2528, - - 565, - - 3471, - - 3087, - - 934, - - 255, - - 556, - - 1636, - - 2612, - - 3051, - - 679, - - 553, - - 2522, - -1, - - 3159, - - 432, - - 2495, - - 733, - - 3032, - - 1744, - - 3687, - - 1462, - -1, - - 691, - - 2429, - - 3029, - - 1453, - - 3156, - - 3408, - -1, -1, - - 550, - - 3026, - - 2069, - - 3147, - - 2153, - - 2498, - - 421, - - 2750, - - 3138, - - 2849, - - 1723, - - 3666, - -1, - - 3135, - -1, -1, - - 2138, - - 1177, - - 414, - - 676, - - 826, - - 2834, - - 1693, - - 2135, - - 1174, - - 411, - - 3990, - - 3984, - - 2831, - - 1687, - - 1861, - - 685, - - 795, - - 3132, - -1, - - 2129, - - 1168, - - 408, - -1, - - 789, - - 2825, - - 1675, - -1, - - 2051, - - 1087, - - 3975, - - 2480, - - 2002, - - 1032, - - 300, - - 1858, - - 773, - - 2705, - - 405, - - 2414, - -1, - - 1426, - - 1666, - - 4077, - - 724, - - 345, - - 2477, - - 74, - -1, - - 3258, - - 3963, - - 402, - - 762, - -1, - - 2411, - - 1660, - - 1423, - - 4035, - - 547, - - 3801, - - 3483, - -1, - - 947, - - 261, - - 3273, - - 755, - - 2624, - - 3480, - - 1960, - - 944, - - 3876, - -1, - - 2327, - - 2621, - -1, -1, - - 3438, - - 1939, - - 899, - - 3453, - - 3870, - - 916, - - 2579, - - 3432, - - 1936, - - 2594, - - 240, - - 3093, - - 2306, - -1, - - 3327, - - 2321, - - 3864, - - 3420, - - 1930, - - 3798, - - 234, - - 1345, - - 3636, - - 2228, - - 1267, - - 493, - - 3117, - - 156, - - 577, - -1, - - 3978, - - 1339, - - 3630, - - 2225, - - 1264, - - 490, - -1, - - 150, - - 3609, - - 893, - - 3840, - - 1585, - -1, - - 132, - - 3591, - - 1846, - - 3789, - - 1564, - -1, - - 114, - - 2891, - - 1828, - - 3771, - - 1546, - -1, - - 884, - - 3579, - -1, - - 688, - -1, -1, - - 102, - - 3819, - - 1816, - - 3759, - - 1534, - - 3567, - -1, - - 1129, - -1, - - 3549, - - 89, - - 2786, - - 1804, - - 3747, - - 1522, - - 3561, - - 1786, - - 3729, - - 1504, - - 2570, - - 83, - - 1035, - - 1798, - - 3741, - - 1516, - - 2708, - - 3474, - - 1957, - - 937, - - 2558, - - 3264, - - 441, - - 2615, - - 2540, - -1, - - 1762, - - 3705, - - 1480, - -1, - - 2552, - - 2132, - - 1171, - - 628, - -1, - - 3324, - - 2828, - - 1681, - - 4080, - -1, - - 438, - -1, - - 3321, - - 2516, - - 1756, - - 3699, - - 1474, - - 782, - - 2005, - - 1038, - - 303, - - 4047, - - 435, - - 2711, - - 3315, - - 3969, - - 1750, - - 3693, - - 1468, - - 3099, - -1, - - 2510, - - 583, - -1, - - 4041, - -1, - - 3213, - -1, -1, - - 580, - - 3966, - - 4017, - -1, - - 2504, - - 2126, - - 1165, - - 3999, - - 3246, - - 571, - - 2822, - - 1669, - - 3993, - - 2162, - - 1201, - -1, - - 568, - -1, - - 2858, - - 1741, - - 3684, - - 765, - - 1198, - - 429, - - 2159, - -1, - - 562, - - 1738, - - 3681, - - 2855, - - 1735, - - 3678, - - 3987, - - 3171, - -1, - - 3060, - -1, - - 842, - - 1195, - - 425, - - 839, - - 2156, - -1, - - 1732, - - 3675, - - 2150, - - 2852, - - 1729, - - 3672, - - 3150, - - 2846, - - 1717, - - 3660, - - 836, - -1, -1, -1, - - 833, - -1, - - 3144, - -1, - - 820, - - 1186, - - 417, - - 2147, - - 2453, - - 49, - - 1714, - - 3657, - - 2843, - - 1711, - - 3654, - -1, - - 2387, - -1, - - 1399, - -1, - - 816, - - 2141, - -1, - - 813, - - 3882, - -1, - - 2837, - - 1699, - - 3642, - - 2123, - - 1162, - - 2066, - - 631, - - 360, - - 2819, - - 1663, - - 2747, - - 802, - -1, -1, -1, - - 2117, - - 1156, - - 3858, - - 1456, - - 758, - - 2813, - - 1651, - - 2111, - - 1150, - - 396, - - 3291, - - 2426, - - 2807, - - 1639, - - 2060, - - 1096, - - 745, - - 1120, - - 375, - - 2741, - - 3852, - - 2777, - -1, - - 736, - - 2099, - - 1138, - - 390, - - 1444, - -1, - - 2795, - - 1615, - - 3168, - - 3846, - - 2093, - - 1132, - - 384, - - 15, - - 2723, - - 2789, - - 1603, - - 2465, - - 62, - - 2738, - - 2375, - - 3318, - - 1363, - - 2120, - - 1159, - - 2399, - -1, - - 1411, - - 2816, - - 1657, - - 4062, - - 3468, - - 1954, - - 931, - - 3462, - - 1951, - - 925, - - 2609, - - 3216, - - 752, - - 2603, - - 3837, - - 1894, - -1, - - 198, - - 1891, - - 1876, - - 195, - - 180, - - 3834, - - 1023, - -1, - - 3831, - - 2270, - - 2696, - - 1303, - - 2264, - - 2258, - - 1300, - - 1285, - -1, -1, - - 2084, - - 1108, - - 3312, - - 3828, - - 1873, - - 2765, - - 177, - - 3825, - - 1870, - - 2957, - - 174, - - 3813, - - 2951, - - 2921, - - 3063, - - 2252, - - 1123, - - 1282, - -1, - - 2246, - - 2780, - - 1279, - -1, - - 2105, - - 1144, - -1, - - 670, - - 3810, - - 2801, - - 1627, - - 3807, - - 3603, - - 1909, - - 2915, - - 213, - -1, - - 126, - - 2909, - - 1840, - - 3783, - - 1558, - - 3585, - - 2075, - - 1099, - - 3795, - - 1318, - - 108, - - 2756, - - 1822, - - 3765, - - 1540, - - 1189, - - 3942, - - 1183, - - 24, - - 2729, - - 1720, - - 3663, - - 1708, - - 3651, - -1, - - 2987, - -1, - - 1375, - - 2114, - - 1153, - - 823, - - 3402, - - 810, - - 2810, - - 1645, - -1, - - 4074, - - 2072, - - 1696, - - 3639, - - 2102, - - 1141, - - 2753, - - 4071, - - 742, - - 2798, - - 1621, - - 3309, - - 798, - - 3261, - -1, -1, - - 4029, - - 2471, - - 68, - - 4044, - - 2459, - - 56, - - 646, - - 4023, - -1, - - 2405, - -1, - - 1417, - - 2393, - - 9, - - 1405, - - 21, - - 2726, - - 4011, - - 2447, - - 43, - - 2369, - - 3255, - - 1357, - - 3282, - - 1369, - -1, - - 2381, - - 3477, - - 1393, - - 940, - - 258, - - 3300, - - 3906, - - 2618, - - 1117, - - 3096, - - 3627, - - 3954, - - 2774, - - 529, - - 3294, - - 147, - - 526, - - 511, - - 3525, - - 1582, - - 993, - -1, - - 2444, - - 3465, - - 2666, - - 928, - - 252, - - 890, - - 3447, - - 2606, - - 909, - -1, -1, - - 3090, - - 2588, - - 3126, - - 3165, - - 508, - -1, - - 3162, - - 2315, - - 505, - - 3441, - - 3435, - - 902, - - 896, - -1, -1, - - 2582, - - 2576, - - 1903, - - 1900, - - 207, - - 204, - - 2309, - - 2303, - - 1017, - - 1888, - -1, - - 192, - - 2690, - - 4065, - -1, - - 1312, - - 1309, - - 544, - - 3270, - - 2108, - - 1147, - - 1882, - - 1297, - - 186, - - 2804, - - 1633, - - 1011, - - 700, - -1, -1, - - 2684, - - 2975, - - 2969, - - 3285, - - 1291, - - 655, - - 1005, - - 3816, - - 2945, - - 3804, - - 2678, - - 3306, - - 2081, - - 1105, - - 2078, - - 1102, - -1, - - 2762, - - 999, - - 2759, - - 2933, - - 3372, - - 2672, - - 3, - -1, - - 3792, - - 3114, - - 3519, - - 694, - - 987, - - 2363, - - 3918, - - 1351, - - 2660, - - 3513, - -1, - - 980, - -1, -1, -1, - - 2654, - - 3129, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - - 649, - -1, -1, - - 3396, - -1, -1, -1, -1, -1, -1, - - 3303, - -1, -1, - - 3960, - - 3105, - -1, - - 3948, - -1, -1, -1, -1, - - 3390, - -1, -1, - - 3900, - -1, - - 3912, - -1, -1, -1, - - 3936, - - 3384, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, - - 3378, - -1, - - 3102, - -1, -1, -1, -1, -1, -1, - -1, -1, - - 3366, - - 3279, - -1, -1, -1, -1, -1, - - 3360, - -1, -1, -1, - - 538, - - 535, - -1, -1, -1, - - 619, - -1, - - 523, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, - - 517, - -1, -1, -1, - - 616, - -1, -1, -1, -1, - - 3123, - -1, -1, -1, -1, - - 610, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, - - 604, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, - - 4059, - -1, -1, - - 4053, - -1, - - 3894, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, - - 3111, - -1, - - 3108, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, - - 4068, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, - - 4056, - -1, -1, -1, -1, - - 4038, - -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, - -1, - - 4032, - - 4026 - }; - - int key = hash(codes); - if (key <= MAX_HASH_VALUE) { - int index = wordlist[key]; - if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds1 + index, 1) == 0) { - return index; - } - } - - return -1; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold2_key.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold2_key.c deleted file mode 100644 index 44f8cb660071..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold2_key.c +++ /dev/null @@ -1,222 +0,0 @@ -/* This file was converted by gperf_fold_key_conv.py - from gperf output file. */ -/* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold2_key unicode_fold2_key.gperf */ -/* Computed positions: -k'3,6' */ - - - -/* This gperf source file was generated by make_unicode_fold_data.py */ - -/*- - * Copyright (c) 2017-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -//#include -#include "regenc.h" - -#define TOTAL_KEYWORDS 59 -#define MIN_WORD_LENGTH 6 -#define MAX_WORD_LENGTH 6 -#define MIN_HASH_VALUE 0 -#define MAX_HASH_VALUE 58 -/* maximum key range = 59, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -/*ARGSUSED*/ -static unsigned int -hash(OnigCodePoint codes[]) -{ - static const unsigned char asso_values[] = - { - 58, 57, 56, 55, 54, 53, 52, 16, 50, 59, - 15, 59, 25, 59, 59, 59, 59, 59, 59, 3, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 49, 48, 47, 46, 45, 44, 43, 42, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 21, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 2, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 40, 20, 39, 38, - 37, 14, 5, 36, 20, 7, 25, 34, 29, 32, - 16, 59, 31, 59, 59, 2, 1, 59, 25, 15, - 59, 14, 59, 59, 28, 59, 2, 59, 59, 59, - 11, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 24, 59, 22, 59, 59, 11, 59, 59, - 59, 59, 59, 7, 59, 0, 59, 59, 16, 59, - 1, 59, 59, 16, 59, 59, 59, 15, 59, 59, - 59, 6, 59, 59, 59, 59, 0, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59 - }; - return asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)]; -} - -int -onigenc_unicode_fold2_key(OnigCodePoint codes[]) -{ - static const short int wordlist[] = - { - - 101, - - 253, - - 76, - - 29, - - 24, - - 239, - - 96, - - 71, - - 92, - - 67, - - 4, - - 62, - - 8, - - 58, - - 234, - - 109, - - 164, - - 88, - - 84, - - 80, - - 214, - - 0, - - 54, - - 261, - - 50, - - 105, - - 121, - - 125, - - 257, - - 42, - - 38, - - 249, - - 46, - - 117, - - 12, - - 113, - - 244, - - 229, - - 224, - - 219, - - 209, - - 16, - - 204, - - 199, - - 194, - - 189, - - 184, - - 179, - - 174, - - 169, - - 20, - - 34, - - 159, - - 154, - - 149, - - 144, - - 139, - - 134, - - 129 - }; - - int key = hash(codes); - if (key <= MAX_HASH_VALUE) { - int index = wordlist[key]; - if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds2 + index, 2) == 0) - return index; - } - - return -1; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold3_key.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold3_key.c deleted file mode 100644 index b36500b135e6..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold3_key.c +++ /dev/null @@ -1,133 +0,0 @@ -/* This file was converted by gperf_fold_key_conv.py - from gperf output file. */ -/* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold3_key unicode_fold3_key.gperf */ -/* Computed positions: -k'3,6,9' */ - - - -/* This gperf source file was generated by make_unicode_fold_data.py */ - -/*- - * Copyright (c) 2017-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -//#include -#include "regenc.h" - -#define TOTAL_KEYWORDS 14 -#define MIN_WORD_LENGTH 9 -#define MAX_WORD_LENGTH 9 -#define MIN_HASH_VALUE 0 -#define MAX_HASH_VALUE 13 -/* maximum key range = 14, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -/*ARGSUSED*/ -static unsigned int -hash(OnigCodePoint codes[]) -{ - static const unsigned char asso_values[] = - { - 6, 3, 14, 14, 14, 14, 14, 14, 1, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 4, 14, 14, 5, 14, 14, 4, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 10, 14, 14, - 14, 14, 14, 9, 14, 1, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, - 14, 8, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14 - }; - return asso_values[(unsigned char)onig_codes_byte_at(codes, 8)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)]; -} - -int -onigenc_unicode_fold3_key(OnigCodePoint codes[]) -{ - static const short int wordlist[] = - { - - 62, - - 47, - - 31, - - 57, - - 41, - - 25, - - 52, - - 36, - - 20, - - 67, - - 15, - - 10, - - 5, - - 0 - }; - - int key = hash(codes); - if (key <= MAX_HASH_VALUE) { - int index = wordlist[key]; - if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds3 + index, 3) == 0) { - return index; - } - } - - return -1; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold_data.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold_data.c deleted file mode 100644 index 400975b523e5..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_fold_data.c +++ /dev/null @@ -1,1522 +0,0 @@ -/* This file was generated by make_unicode_fold_data.py. */ -#include "regenc.h" - -#define UNICODE_CASEFOLD_VERSION 12_1_0 - - -OnigCodePoint OnigUnicodeFolds1[] = { - /* 0*/ 0x0061, 1, 0x0041, /* LATIN CAPITAL LETTER A */ - /* 3*/ 0x0062, 1, 0x0042, /* LATIN CAPITAL LETTER B */ - /* 6*/ 0x0063, 1, 0x0043, /* LATIN CAPITAL LETTER C */ - /* 9*/ 0x0064, 1, 0x0044, /* LATIN CAPITAL LETTER D */ - /* 12*/ 0x0065, 1, 0x0045, /* LATIN CAPITAL LETTER E */ - /* 15*/ 0x0066, 1, 0x0046, /* LATIN CAPITAL LETTER F */ - /* 18*/ 0x0067, 1, 0x0047, /* LATIN CAPITAL LETTER G */ - /* 21*/ 0x0068, 1, 0x0048, /* LATIN CAPITAL LETTER H */ - /* 24*/ 0x006a, 1, 0x004a, /* LATIN CAPITAL LETTER J */ - /* 27*/ 0x006b, 2, 0x004b, 0x212a, /* LATIN CAPITAL LETTER K */ - /* 31*/ 0x006c, 1, 0x004c, /* LATIN CAPITAL LETTER L */ - /* 34*/ 0x006d, 1, 0x004d, /* LATIN CAPITAL LETTER M */ - /* 37*/ 0x006e, 1, 0x004e, /* LATIN CAPITAL LETTER N */ - /* 40*/ 0x006f, 1, 0x004f, /* LATIN CAPITAL LETTER O */ - /* 43*/ 0x0070, 1, 0x0050, /* LATIN CAPITAL LETTER P */ - /* 46*/ 0x0071, 1, 0x0051, /* LATIN CAPITAL LETTER Q */ - /* 49*/ 0x0072, 1, 0x0052, /* LATIN CAPITAL LETTER R */ - /* 52*/ 0x0073, 2, 0x0053, 0x017f, /* LATIN CAPITAL LETTER S */ - /* 56*/ 0x0074, 1, 0x0054, /* LATIN CAPITAL LETTER T */ - /* 59*/ 0x0075, 1, 0x0055, /* LATIN CAPITAL LETTER U */ - /* 62*/ 0x0076, 1, 0x0056, /* LATIN CAPITAL LETTER V */ - /* 65*/ 0x0077, 1, 0x0057, /* LATIN CAPITAL LETTER W */ - /* 68*/ 0x0078, 1, 0x0058, /* LATIN CAPITAL LETTER X */ - /* 71*/ 0x0079, 1, 0x0059, /* LATIN CAPITAL LETTER Y */ - /* 74*/ 0x007a, 1, 0x005a, /* LATIN CAPITAL LETTER Z */ - /* 77*/ 0x00e0, 1, 0x00c0, /* LATIN CAPITAL LETTER A WITH GRAVE */ - /* 80*/ 0x00e1, 1, 0x00c1, /* LATIN CAPITAL LETTER A WITH ACUTE */ - /* 83*/ 0x00e2, 1, 0x00c2, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /* 86*/ 0x00e3, 1, 0x00c3, /* LATIN CAPITAL LETTER A WITH TILDE */ - /* 89*/ 0x00e4, 1, 0x00c4, /* LATIN CAPITAL LETTER A WITH DIAER.. */ - /* 92*/ 0x00e5, 2, 0x00c5, 0x212b, /* LATIN CAPITAL LETTER A WITH RING .. */ - /* 96*/ 0x00e6, 1, 0x00c6, /* LATIN CAPITAL LETTER AE */ - /* 99*/ 0x00e7, 1, 0x00c7, /* LATIN CAPITAL LETTER C WITH CEDIL.. */ - /* 102*/ 0x00e8, 1, 0x00c8, /* LATIN CAPITAL LETTER E WITH GRAVE */ - /* 105*/ 0x00e9, 1, 0x00c9, /* LATIN CAPITAL LETTER E WITH ACUTE */ - /* 108*/ 0x00ea, 1, 0x00ca, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /* 111*/ 0x00eb, 1, 0x00cb, /* LATIN CAPITAL LETTER E WITH DIAER.. */ - /* 114*/ 0x00ec, 1, 0x00cc, /* LATIN CAPITAL LETTER I WITH GRAVE */ - /* 117*/ 0x00ed, 1, 0x00cd, /* LATIN CAPITAL LETTER I WITH ACUTE */ - /* 120*/ 0x00ee, 1, 0x00ce, /* LATIN CAPITAL LETTER I WITH CIRCU.. */ - /* 123*/ 0x00ef, 1, 0x00cf, /* LATIN CAPITAL LETTER I WITH DIAER.. */ - /* 126*/ 0x00f0, 1, 0x00d0, /* LATIN CAPITAL LETTER ETH */ - /* 129*/ 0x00f1, 1, 0x00d1, /* LATIN CAPITAL LETTER N WITH TILDE */ - /* 132*/ 0x00f2, 1, 0x00d2, /* LATIN CAPITAL LETTER O WITH GRAVE */ - /* 135*/ 0x00f3, 1, 0x00d3, /* LATIN CAPITAL LETTER O WITH ACUTE */ - /* 138*/ 0x00f4, 1, 0x00d4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /* 141*/ 0x00f5, 1, 0x00d5, /* LATIN CAPITAL LETTER O WITH TILDE */ - /* 144*/ 0x00f6, 1, 0x00d6, /* LATIN CAPITAL LETTER O WITH DIAER.. */ - /* 147*/ 0x00f8, 1, 0x00d8, /* LATIN CAPITAL LETTER O WITH STROKE */ - /* 150*/ 0x00f9, 1, 0x00d9, /* LATIN CAPITAL LETTER U WITH GRAVE */ - /* 153*/ 0x00fa, 1, 0x00da, /* LATIN CAPITAL LETTER U WITH ACUTE */ - /* 156*/ 0x00fb, 1, 0x00db, /* LATIN CAPITAL LETTER U WITH CIRCU.. */ - /* 159*/ 0x00fc, 1, 0x00dc, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 162*/ 0x00fd, 1, 0x00dd, /* LATIN CAPITAL LETTER Y WITH ACUTE */ - /* 165*/ 0x00fe, 1, 0x00de, /* LATIN CAPITAL LETTER THORN */ - /* 168*/ 0x00ff, 1, 0x0178, /* LATIN CAPITAL LETTER Y WITH DIAER.. */ - /* 171*/ 0x0101, 1, 0x0100, /* LATIN CAPITAL LETTER A WITH MACRON */ - /* 174*/ 0x0103, 1, 0x0102, /* LATIN CAPITAL LETTER A WITH BREVE */ - /* 177*/ 0x0105, 1, 0x0104, /* LATIN CAPITAL LETTER A WITH OGONEK */ - /* 180*/ 0x0107, 1, 0x0106, /* LATIN CAPITAL LETTER C WITH ACUTE */ - /* 183*/ 0x0109, 1, 0x0108, /* LATIN CAPITAL LETTER C WITH CIRCU.. */ - /* 186*/ 0x010b, 1, 0x010a, /* LATIN CAPITAL LETTER C WITH DOT A.. */ - /* 189*/ 0x010d, 1, 0x010c, /* LATIN CAPITAL LETTER C WITH CARON */ - /* 192*/ 0x010f, 1, 0x010e, /* LATIN CAPITAL LETTER D WITH CARON */ - /* 195*/ 0x0111, 1, 0x0110, /* LATIN CAPITAL LETTER D WITH STROKE */ - /* 198*/ 0x0113, 1, 0x0112, /* LATIN CAPITAL LETTER E WITH MACRON */ - /* 201*/ 0x0115, 1, 0x0114, /* LATIN CAPITAL LETTER E WITH BREVE */ - /* 204*/ 0x0117, 1, 0x0116, /* LATIN CAPITAL LETTER E WITH DOT A.. */ - /* 207*/ 0x0119, 1, 0x0118, /* LATIN CAPITAL LETTER E WITH OGONEK */ - /* 210*/ 0x011b, 1, 0x011a, /* LATIN CAPITAL LETTER E WITH CARON */ - /* 213*/ 0x011d, 1, 0x011c, /* LATIN CAPITAL LETTER G WITH CIRCU.. */ - /* 216*/ 0x011f, 1, 0x011e, /* LATIN CAPITAL LETTER G WITH BREVE */ - /* 219*/ 0x0121, 1, 0x0120, /* LATIN CAPITAL LETTER G WITH DOT A.. */ - /* 222*/ 0x0123, 1, 0x0122, /* LATIN CAPITAL LETTER G WITH CEDIL.. */ - /* 225*/ 0x0125, 1, 0x0124, /* LATIN CAPITAL LETTER H WITH CIRCU.. */ - /* 228*/ 0x0127, 1, 0x0126, /* LATIN CAPITAL LETTER H WITH STROKE */ - /* 231*/ 0x0129, 1, 0x0128, /* LATIN CAPITAL LETTER I WITH TILDE */ - /* 234*/ 0x012b, 1, 0x012a, /* LATIN CAPITAL LETTER I WITH MACRON */ - /* 237*/ 0x012d, 1, 0x012c, /* LATIN CAPITAL LETTER I WITH BREVE */ - /* 240*/ 0x012f, 1, 0x012e, /* LATIN CAPITAL LETTER I WITH OGONEK */ - /* 243*/ 0x0133, 1, 0x0132, /* LATIN CAPITAL LIGATURE IJ */ - /* 246*/ 0x0135, 1, 0x0134, /* LATIN CAPITAL LETTER J WITH CIRCU.. */ - /* 249*/ 0x0137, 1, 0x0136, /* LATIN CAPITAL LETTER K WITH CEDIL.. */ - /* 252*/ 0x013a, 1, 0x0139, /* LATIN CAPITAL LETTER L WITH ACUTE */ - /* 255*/ 0x013c, 1, 0x013b, /* LATIN CAPITAL LETTER L WITH CEDIL.. */ - /* 258*/ 0x013e, 1, 0x013d, /* LATIN CAPITAL LETTER L WITH CARON */ - /* 261*/ 0x0140, 1, 0x013f, /* LATIN CAPITAL LETTER L WITH MIDDL.. */ - /* 264*/ 0x0142, 1, 0x0141, /* LATIN CAPITAL LETTER L WITH STROKE */ - /* 267*/ 0x0144, 1, 0x0143, /* LATIN CAPITAL LETTER N WITH ACUTE */ - /* 270*/ 0x0146, 1, 0x0145, /* LATIN CAPITAL LETTER N WITH CEDIL.. */ - /* 273*/ 0x0148, 1, 0x0147, /* LATIN CAPITAL LETTER N WITH CARON */ - /* 276*/ 0x014b, 1, 0x014a, /* LATIN CAPITAL LETTER ENG */ - /* 279*/ 0x014d, 1, 0x014c, /* LATIN CAPITAL LETTER O WITH MACRON */ - /* 282*/ 0x014f, 1, 0x014e, /* LATIN CAPITAL LETTER O WITH BREVE */ - /* 285*/ 0x0151, 1, 0x0150, /* LATIN CAPITAL LETTER O WITH DOUBL.. */ - /* 288*/ 0x0153, 1, 0x0152, /* LATIN CAPITAL LIGATURE OE */ - /* 291*/ 0x0155, 1, 0x0154, /* LATIN CAPITAL LETTER R WITH ACUTE */ - /* 294*/ 0x0157, 1, 0x0156, /* LATIN CAPITAL LETTER R WITH CEDIL.. */ - /* 297*/ 0x0159, 1, 0x0158, /* LATIN CAPITAL LETTER R WITH CARON */ - /* 300*/ 0x015b, 1, 0x015a, /* LATIN CAPITAL LETTER S WITH ACUTE */ - /* 303*/ 0x015d, 1, 0x015c, /* LATIN CAPITAL LETTER S WITH CIRCU.. */ - /* 306*/ 0x015f, 1, 0x015e, /* LATIN CAPITAL LETTER S WITH CEDIL.. */ - /* 309*/ 0x0161, 1, 0x0160, /* LATIN CAPITAL LETTER S WITH CARON */ - /* 312*/ 0x0163, 1, 0x0162, /* LATIN CAPITAL LETTER T WITH CEDIL.. */ - /* 315*/ 0x0165, 1, 0x0164, /* LATIN CAPITAL LETTER T WITH CARON */ - /* 318*/ 0x0167, 1, 0x0166, /* LATIN CAPITAL LETTER T WITH STROKE */ - /* 321*/ 0x0169, 1, 0x0168, /* LATIN CAPITAL LETTER U WITH TILDE */ - /* 324*/ 0x016b, 1, 0x016a, /* LATIN CAPITAL LETTER U WITH MACRON */ - /* 327*/ 0x016d, 1, 0x016c, /* LATIN CAPITAL LETTER U WITH BREVE */ - /* 330*/ 0x016f, 1, 0x016e, /* LATIN CAPITAL LETTER U WITH RING .. */ - /* 333*/ 0x0171, 1, 0x0170, /* LATIN CAPITAL LETTER U WITH DOUBL.. */ - /* 336*/ 0x0173, 1, 0x0172, /* LATIN CAPITAL LETTER U WITH OGONEK */ - /* 339*/ 0x0175, 1, 0x0174, /* LATIN CAPITAL LETTER W WITH CIRCU.. */ - /* 342*/ 0x0177, 1, 0x0176, /* LATIN CAPITAL LETTER Y WITH CIRCU.. */ - /* 345*/ 0x017a, 1, 0x0179, /* LATIN CAPITAL LETTER Z WITH ACUTE */ - /* 348*/ 0x017c, 1, 0x017b, /* LATIN CAPITAL LETTER Z WITH DOT A.. */ - /* 351*/ 0x017e, 1, 0x017d, /* LATIN CAPITAL LETTER Z WITH CARON */ - /* 354*/ 0x0180, 1, 0x0243, /* LATIN CAPITAL LETTER B WITH STROKE */ - /* 357*/ 0x0183, 1, 0x0182, /* LATIN CAPITAL LETTER B WITH TOPBAR */ - /* 360*/ 0x0185, 1, 0x0184, /* LATIN CAPITAL LETTER TONE SIX */ - /* 363*/ 0x0188, 1, 0x0187, /* LATIN CAPITAL LETTER C WITH HOOK */ - /* 366*/ 0x018c, 1, 0x018b, /* LATIN CAPITAL LETTER D WITH TOPBAR */ - /* 369*/ 0x0192, 1, 0x0191, /* LATIN CAPITAL LETTER F WITH HOOK */ - /* 372*/ 0x0195, 1, 0x01f6, /* LATIN CAPITAL LETTER HWAIR */ - /* 375*/ 0x0199, 1, 0x0198, /* LATIN CAPITAL LETTER K WITH HOOK */ - /* 378*/ 0x019a, 1, 0x023d, /* LATIN CAPITAL LETTER L WITH BAR */ - /* 381*/ 0x019e, 1, 0x0220, /* LATIN CAPITAL LETTER N WITH LONG .. */ - /* 384*/ 0x01a1, 1, 0x01a0, /* LATIN CAPITAL LETTER O WITH HORN */ - /* 387*/ 0x01a3, 1, 0x01a2, /* LATIN CAPITAL LETTER OI */ - /* 390*/ 0x01a5, 1, 0x01a4, /* LATIN CAPITAL LETTER P WITH HOOK */ - /* 393*/ 0x01a8, 1, 0x01a7, /* LATIN CAPITAL LETTER TONE TWO */ - /* 396*/ 0x01ad, 1, 0x01ac, /* LATIN CAPITAL LETTER T WITH HOOK */ - /* 399*/ 0x01b0, 1, 0x01af, /* LATIN CAPITAL LETTER U WITH HORN */ - /* 402*/ 0x01b4, 1, 0x01b3, /* LATIN CAPITAL LETTER Y WITH HOOK */ - /* 405*/ 0x01b6, 1, 0x01b5, /* LATIN CAPITAL LETTER Z WITH STROKE */ - /* 408*/ 0x01b9, 1, 0x01b8, /* LATIN CAPITAL LETTER EZH REVERSED */ - /* 411*/ 0x01bd, 1, 0x01bc, /* LATIN CAPITAL LETTER TONE FIVE */ - /* 414*/ 0x01bf, 1, 0x01f7, /* LATIN CAPITAL LETTER WYNN */ - /* 417*/ 0x01c6, 2, 0x01c4, 0x01c5, /* LATIN CAPITAL LETTER DZ WITH CARON */ - /* 421*/ 0x01c9, 2, 0x01c7, 0x01c8, /* LATIN CAPITAL LETTER LJ */ - /* 425*/ 0x01cc, 2, 0x01ca, 0x01cb, /* LATIN CAPITAL LETTER NJ */ - /* 429*/ 0x01ce, 1, 0x01cd, /* LATIN CAPITAL LETTER A WITH CARON */ - /* 432*/ 0x01d0, 1, 0x01cf, /* LATIN CAPITAL LETTER I WITH CARON */ - /* 435*/ 0x01d2, 1, 0x01d1, /* LATIN CAPITAL LETTER O WITH CARON */ - /* 438*/ 0x01d4, 1, 0x01d3, /* LATIN CAPITAL LETTER U WITH CARON */ - /* 441*/ 0x01d6, 1, 0x01d5, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 444*/ 0x01d8, 1, 0x01d7, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 447*/ 0x01da, 1, 0x01d9, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 450*/ 0x01dc, 1, 0x01db, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /* 453*/ 0x01dd, 1, 0x018e, /* LATIN CAPITAL LETTER REVERSED E */ - /* 456*/ 0x01df, 1, 0x01de, /* LATIN CAPITAL LETTER A WITH DIAER.. */ - /* 459*/ 0x01e1, 1, 0x01e0, /* LATIN CAPITAL LETTER A WITH DOT A.. */ - /* 462*/ 0x01e3, 1, 0x01e2, /* LATIN CAPITAL LETTER AE WITH MACR.. */ - /* 465*/ 0x01e5, 1, 0x01e4, /* LATIN CAPITAL LETTER G WITH STROKE */ - /* 468*/ 0x01e7, 1, 0x01e6, /* LATIN CAPITAL LETTER G WITH CARON */ - /* 471*/ 0x01e9, 1, 0x01e8, /* LATIN CAPITAL LETTER K WITH CARON */ - /* 474*/ 0x01eb, 1, 0x01ea, /* LATIN CAPITAL LETTER O WITH OGONEK */ - /* 477*/ 0x01ed, 1, 0x01ec, /* LATIN CAPITAL LETTER O WITH OGONE.. */ - /* 480*/ 0x01ef, 1, 0x01ee, /* LATIN CAPITAL LETTER EZH WITH CAR.. */ - /* 483*/ 0x01f3, 2, 0x01f1, 0x01f2, /* LATIN CAPITAL LETTER DZ */ - /* 487*/ 0x01f5, 1, 0x01f4, /* LATIN CAPITAL LETTER G WITH ACUTE */ - /* 490*/ 0x01f9, 1, 0x01f8, /* LATIN CAPITAL LETTER N WITH GRAVE */ - /* 493*/ 0x01fb, 1, 0x01fa, /* LATIN CAPITAL LETTER A WITH RING .. */ - /* 496*/ 0x01fd, 1, 0x01fc, /* LATIN CAPITAL LETTER AE WITH ACUTE */ - /* 499*/ 0x01ff, 1, 0x01fe, /* LATIN CAPITAL LETTER O WITH STROK.. */ - /* 502*/ 0x0201, 1, 0x0200, /* LATIN CAPITAL LETTER A WITH DOUBL.. */ - /* 505*/ 0x0203, 1, 0x0202, /* LATIN CAPITAL LETTER A WITH INVER.. */ - /* 508*/ 0x0205, 1, 0x0204, /* LATIN CAPITAL LETTER E WITH DOUBL.. */ - /* 511*/ 0x0207, 1, 0x0206, /* LATIN CAPITAL LETTER E WITH INVER.. */ - /* 514*/ 0x0209, 1, 0x0208, /* LATIN CAPITAL LETTER I WITH DOUBL.. */ - /* 517*/ 0x020b, 1, 0x020a, /* LATIN CAPITAL LETTER I WITH INVER.. */ - /* 520*/ 0x020d, 1, 0x020c, /* LATIN CAPITAL LETTER O WITH DOUBL.. */ - /* 523*/ 0x020f, 1, 0x020e, /* LATIN CAPITAL LETTER O WITH INVER.. */ - /* 526*/ 0x0211, 1, 0x0210, /* LATIN CAPITAL LETTER R WITH DOUBL.. */ - /* 529*/ 0x0213, 1, 0x0212, /* LATIN CAPITAL LETTER R WITH INVER.. */ - /* 532*/ 0x0215, 1, 0x0214, /* LATIN CAPITAL LETTER U WITH DOUBL.. */ - /* 535*/ 0x0217, 1, 0x0216, /* LATIN CAPITAL LETTER U WITH INVER.. */ - /* 538*/ 0x0219, 1, 0x0218, /* LATIN CAPITAL LETTER S WITH COMMA.. */ - /* 541*/ 0x021b, 1, 0x021a, /* LATIN CAPITAL LETTER T WITH COMMA.. */ - /* 544*/ 0x021d, 1, 0x021c, /* LATIN CAPITAL LETTER YOGH */ - /* 547*/ 0x021f, 1, 0x021e, /* LATIN CAPITAL LETTER H WITH CARON */ - /* 550*/ 0x0223, 1, 0x0222, /* LATIN CAPITAL LETTER OU */ - /* 553*/ 0x0225, 1, 0x0224, /* LATIN CAPITAL LETTER Z WITH HOOK */ - /* 556*/ 0x0227, 1, 0x0226, /* LATIN CAPITAL LETTER A WITH DOT A.. */ - /* 559*/ 0x0229, 1, 0x0228, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ - /* 562*/ 0x022b, 1, 0x022a, /* LATIN CAPITAL LETTER O WITH DIAER.. */ - /* 565*/ 0x022d, 1, 0x022c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ - /* 568*/ 0x022f, 1, 0x022e, /* LATIN CAPITAL LETTER O WITH DOT A.. */ - /* 571*/ 0x0231, 1, 0x0230, /* LATIN CAPITAL LETTER O WITH DOT A.. */ - /* 574*/ 0x0233, 1, 0x0232, /* LATIN CAPITAL LETTER Y WITH MACRON */ - /* 577*/ 0x023c, 1, 0x023b, /* LATIN CAPITAL LETTER C WITH STROKE */ - /* 580*/ 0x023f, 1, 0x2c7e, /* LATIN CAPITAL LETTER S WITH SWASH.. */ - /* 583*/ 0x0240, 1, 0x2c7f, /* LATIN CAPITAL LETTER Z WITH SWASH.. */ - /* 586*/ 0x0242, 1, 0x0241, /* LATIN CAPITAL LETTER GLOTTAL STOP */ - /* 589*/ 0x0247, 1, 0x0246, /* LATIN CAPITAL LETTER E WITH STROKE */ - /* 592*/ 0x0249, 1, 0x0248, /* LATIN CAPITAL LETTER J WITH STROKE */ - /* 595*/ 0x024b, 1, 0x024a, /* LATIN CAPITAL LETTER SMALL Q WITH.. */ - /* 598*/ 0x024d, 1, 0x024c, /* LATIN CAPITAL LETTER R WITH STROKE */ - /* 601*/ 0x024f, 1, 0x024e, /* LATIN CAPITAL LETTER Y WITH STROKE */ - /* 604*/ 0x0250, 1, 0x2c6f, /* LATIN CAPITAL LETTER TURNED A */ - /* 607*/ 0x0251, 1, 0x2c6d, /* LATIN CAPITAL LETTER ALPHA */ - /* 610*/ 0x0252, 1, 0x2c70, /* LATIN CAPITAL LETTER TURNED ALPHA */ - /* 613*/ 0x0253, 1, 0x0181, /* LATIN CAPITAL LETTER B WITH HOOK */ - /* 616*/ 0x0254, 1, 0x0186, /* LATIN CAPITAL LETTER OPEN O */ - /* 619*/ 0x0256, 1, 0x0189, /* LATIN CAPITAL LETTER AFRICAN D */ - /* 622*/ 0x0257, 1, 0x018a, /* LATIN CAPITAL LETTER D WITH HOOK */ - /* 625*/ 0x0259, 1, 0x018f, /* LATIN CAPITAL LETTER SCHWA */ - /* 628*/ 0x025b, 1, 0x0190, /* LATIN CAPITAL LETTER OPEN E */ - /* 631*/ 0x025c, 1, 0xa7ab, /* LATIN CAPITAL LETTER REVERSED OPE.. */ - /* 634*/ 0x0260, 1, 0x0193, /* LATIN CAPITAL LETTER G WITH HOOK */ - /* 637*/ 0x0261, 1, 0xa7ac, /* LATIN CAPITAL LETTER SCRIPT G */ - /* 640*/ 0x0263, 1, 0x0194, /* LATIN CAPITAL LETTER GAMMA */ - /* 643*/ 0x0265, 1, 0xa78d, /* LATIN CAPITAL LETTER TURNED H */ - /* 646*/ 0x0266, 1, 0xa7aa, /* LATIN CAPITAL LETTER H WITH HOOK */ - /* 649*/ 0x0268, 1, 0x0197, /* LATIN CAPITAL LETTER I WITH STROKE */ - /* 652*/ 0x0269, 1, 0x0196, /* LATIN CAPITAL LETTER IOTA */ - /* 655*/ 0x026a, 1, 0xa7ae, /* LATIN CAPITAL LETTER SMALL CAPITA.. */ - /* 658*/ 0x026b, 1, 0x2c62, /* LATIN CAPITAL LETTER L WITH MIDDL.. */ - /* 661*/ 0x026c, 1, 0xa7ad, /* LATIN CAPITAL LETTER L WITH BELT */ - /* 664*/ 0x026f, 1, 0x019c, /* LATIN CAPITAL LETTER TURNED M */ - /* 667*/ 0x0271, 1, 0x2c6e, /* LATIN CAPITAL LETTER M WITH HOOK */ - /* 670*/ 0x0272, 1, 0x019d, /* LATIN CAPITAL LETTER N WITH LEFT .. */ - /* 673*/ 0x0275, 1, 0x019f, /* LATIN CAPITAL LETTER O WITH MIDDL.. */ - /* 676*/ 0x027d, 1, 0x2c64, /* LATIN CAPITAL LETTER R WITH TAIL */ - /* 679*/ 0x0280, 1, 0x01a6, /* LATIN LETTER YR */ - /* 682*/ 0x0282, 1, 0xa7c5, /* LATIN CAPITAL LETTER S WITH HOOK */ - /* 685*/ 0x0283, 1, 0x01a9, /* LATIN CAPITAL LETTER ESH */ - /* 688*/ 0x0287, 1, 0xa7b1, /* LATIN CAPITAL LETTER TURNED T */ - /* 691*/ 0x0288, 1, 0x01ae, /* LATIN CAPITAL LETTER T WITH RETRO.. */ - /* 694*/ 0x0289, 1, 0x0244, /* LATIN CAPITAL LETTER U BAR */ - /* 697*/ 0x028a, 1, 0x01b1, /* LATIN CAPITAL LETTER UPSILON */ - /* 700*/ 0x028b, 1, 0x01b2, /* LATIN CAPITAL LETTER V WITH HOOK */ - /* 703*/ 0x028c, 1, 0x0245, /* LATIN CAPITAL LETTER TURNED V */ - /* 706*/ 0x0292, 1, 0x01b7, /* LATIN CAPITAL LETTER EZH */ - /* 709*/ 0x029d, 1, 0xa7b2, /* LATIN CAPITAL LETTER J WITH CROSS.. */ - /* 712*/ 0x029e, 1, 0xa7b0, /* LATIN CAPITAL LETTER TURNED K */ - /* 715*/ 0x0371, 1, 0x0370, /* GREEK CAPITAL LETTER HETA */ - /* 718*/ 0x0373, 1, 0x0372, /* GREEK CAPITAL LETTER ARCHAIC SAMPI */ - /* 721*/ 0x0377, 1, 0x0376, /* GREEK CAPITAL LETTER PAMPHYLIAN D.. */ - /* 724*/ 0x037b, 1, 0x03fd, /* GREEK CAPITAL REVERSED LUNATE SIG.. */ - /* 727*/ 0x037c, 1, 0x03fe, /* GREEK CAPITAL DOTTED LUNATE SIGMA.. */ - /* 730*/ 0x037d, 1, 0x03ff, /* GREEK CAPITAL REVERSED DOTTED LUN.. */ - /* 733*/ 0x03ac, 1, 0x0386, /* GREEK CAPITAL LETTER ALPHA WITH T.. */ - /* 736*/ 0x03ad, 1, 0x0388, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /* 739*/ 0x03ae, 1, 0x0389, /* GREEK CAPITAL LETTER ETA WITH TON.. */ - /* 742*/ 0x03af, 1, 0x038a, /* GREEK CAPITAL LETTER IOTA WITH TO.. */ - /* 745*/ 0x03b1, 1, 0x0391, /* GREEK CAPITAL LETTER ALPHA */ - /* 748*/ 0x03b2, 2, 0x0392, 0x03d0, /* GREEK CAPITAL LETTER BETA */ - /* 752*/ 0x03b3, 1, 0x0393, /* GREEK CAPITAL LETTER GAMMA */ - /* 755*/ 0x03b4, 1, 0x0394, /* GREEK CAPITAL LETTER DELTA */ - /* 758*/ 0x03b5, 2, 0x0395, 0x03f5, /* GREEK CAPITAL LETTER EPSILON */ - /* 762*/ 0x03b6, 1, 0x0396, /* GREEK CAPITAL LETTER ZETA */ - /* 765*/ 0x03b7, 1, 0x0397, /* GREEK CAPITAL LETTER ETA */ - /* 768*/ 0x03b8, 3, 0x0398, 0x03d1, 0x03f4, /* GREEK CAPITAL LETTER THETA */ - /* 773*/ 0x03b9, 3, 0x0345, 0x0399, 0x1fbe, /* COMBINING GREEK YPOGEGRAMMENI */ - /* 778*/ 0x03ba, 2, 0x039a, 0x03f0, /* GREEK CAPITAL LETTER KAPPA */ - /* 782*/ 0x03bb, 1, 0x039b, /* GREEK CAPITAL LETTER LAMDA */ - /* 785*/ 0x03bc, 2, 0x00b5, 0x039c, /* MICRO SIGN */ - /* 789*/ 0x03bd, 1, 0x039d, /* GREEK CAPITAL LETTER NU */ - /* 792*/ 0x03be, 1, 0x039e, /* GREEK CAPITAL LETTER XI */ - /* 795*/ 0x03bf, 1, 0x039f, /* GREEK CAPITAL LETTER OMICRON */ - /* 798*/ 0x03c0, 2, 0x03a0, 0x03d6, /* GREEK CAPITAL LETTER PI */ - /* 802*/ 0x03c1, 2, 0x03a1, 0x03f1, /* GREEK CAPITAL LETTER RHO */ - /* 806*/ 0x03c3, 2, 0x03a3, 0x03c2, /* GREEK CAPITAL LETTER SIGMA */ - /* 810*/ 0x03c4, 1, 0x03a4, /* GREEK CAPITAL LETTER TAU */ - /* 813*/ 0x03c5, 1, 0x03a5, /* GREEK CAPITAL LETTER UPSILON */ - /* 816*/ 0x03c6, 2, 0x03a6, 0x03d5, /* GREEK CAPITAL LETTER PHI */ - /* 820*/ 0x03c7, 1, 0x03a7, /* GREEK CAPITAL LETTER CHI */ - /* 823*/ 0x03c8, 1, 0x03a8, /* GREEK CAPITAL LETTER PSI */ - /* 826*/ 0x03c9, 2, 0x03a9, 0x2126, /* GREEK CAPITAL LETTER OMEGA */ - /* 830*/ 0x03ca, 1, 0x03aa, /* GREEK CAPITAL LETTER IOTA WITH DI.. */ - /* 833*/ 0x03cb, 1, 0x03ab, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /* 836*/ 0x03cc, 1, 0x038c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /* 839*/ 0x03cd, 1, 0x038e, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /* 842*/ 0x03ce, 1, 0x038f, /* GREEK CAPITAL LETTER OMEGA WITH T.. */ - /* 845*/ 0x03d7, 1, 0x03cf, /* GREEK CAPITAL KAI SYMBOL */ - /* 848*/ 0x03d9, 1, 0x03d8, /* GREEK LETTER ARCHAIC KOPPA */ - /* 851*/ 0x03db, 1, 0x03da, /* GREEK LETTER STIGMA */ - /* 854*/ 0x03dd, 1, 0x03dc, /* GREEK LETTER DIGAMMA */ - /* 857*/ 0x03df, 1, 0x03de, /* GREEK LETTER KOPPA */ - /* 860*/ 0x03e1, 1, 0x03e0, /* GREEK LETTER SAMPI */ - /* 863*/ 0x03e3, 1, 0x03e2, /* COPTIC CAPITAL LETTER SHEI */ - /* 866*/ 0x03e5, 1, 0x03e4, /* COPTIC CAPITAL LETTER FEI */ - /* 869*/ 0x03e7, 1, 0x03e6, /* COPTIC CAPITAL LETTER KHEI */ - /* 872*/ 0x03e9, 1, 0x03e8, /* COPTIC CAPITAL LETTER HORI */ - /* 875*/ 0x03eb, 1, 0x03ea, /* COPTIC CAPITAL LETTER GANGIA */ - /* 878*/ 0x03ed, 1, 0x03ec, /* COPTIC CAPITAL LETTER SHIMA */ - /* 881*/ 0x03ef, 1, 0x03ee, /* COPTIC CAPITAL LETTER DEI */ - /* 884*/ 0x03f2, 1, 0x03f9, /* GREEK CAPITAL LUNATE SIGMA SYMBOL */ - /* 887*/ 0x03f3, 1, 0x037f, /* GREEK CAPITAL LETTER YOT */ - /* 890*/ 0x03f8, 1, 0x03f7, /* GREEK CAPITAL LETTER SHO */ - /* 893*/ 0x03fb, 1, 0x03fa, /* GREEK CAPITAL LETTER SAN */ - /* 896*/ 0x0430, 1, 0x0410, /* CYRILLIC CAPITAL LETTER A */ - /* 899*/ 0x0431, 1, 0x0411, /* CYRILLIC CAPITAL LETTER BE */ - /* 902*/ 0x0432, 2, 0x0412, 0x1c80, /* CYRILLIC CAPITAL LETTER VE */ - /* 906*/ 0x0433, 1, 0x0413, /* CYRILLIC CAPITAL LETTER GHE */ - /* 909*/ 0x0434, 2, 0x0414, 0x1c81, /* CYRILLIC CAPITAL LETTER DE */ - /* 913*/ 0x0435, 1, 0x0415, /* CYRILLIC CAPITAL LETTER IE */ - /* 916*/ 0x0436, 1, 0x0416, /* CYRILLIC CAPITAL LETTER ZHE */ - /* 919*/ 0x0437, 1, 0x0417, /* CYRILLIC CAPITAL LETTER ZE */ - /* 922*/ 0x0438, 1, 0x0418, /* CYRILLIC CAPITAL LETTER I */ - /* 925*/ 0x0439, 1, 0x0419, /* CYRILLIC CAPITAL LETTER SHORT I */ - /* 928*/ 0x043a, 1, 0x041a, /* CYRILLIC CAPITAL LETTER KA */ - /* 931*/ 0x043b, 1, 0x041b, /* CYRILLIC CAPITAL LETTER EL */ - /* 934*/ 0x043c, 1, 0x041c, /* CYRILLIC CAPITAL LETTER EM */ - /* 937*/ 0x043d, 1, 0x041d, /* CYRILLIC CAPITAL LETTER EN */ - /* 940*/ 0x043e, 2, 0x041e, 0x1c82, /* CYRILLIC CAPITAL LETTER O */ - /* 944*/ 0x043f, 1, 0x041f, /* CYRILLIC CAPITAL LETTER PE */ - /* 947*/ 0x0440, 1, 0x0420, /* CYRILLIC CAPITAL LETTER ER */ - /* 950*/ 0x0441, 2, 0x0421, 0x1c83, /* CYRILLIC CAPITAL LETTER ES */ - /* 954*/ 0x0442, 3, 0x0422, 0x1c84, 0x1c85, /* CYRILLIC CAPITAL LETTER TE */ - /* 959*/ 0x0443, 1, 0x0423, /* CYRILLIC CAPITAL LETTER U */ - /* 962*/ 0x0444, 1, 0x0424, /* CYRILLIC CAPITAL LETTER EF */ - /* 965*/ 0x0445, 1, 0x0425, /* CYRILLIC CAPITAL LETTER HA */ - /* 968*/ 0x0446, 1, 0x0426, /* CYRILLIC CAPITAL LETTER TSE */ - /* 971*/ 0x0447, 1, 0x0427, /* CYRILLIC CAPITAL LETTER CHE */ - /* 974*/ 0x0448, 1, 0x0428, /* CYRILLIC CAPITAL LETTER SHA */ - /* 977*/ 0x0449, 1, 0x0429, /* CYRILLIC CAPITAL LETTER SHCHA */ - /* 980*/ 0x044a, 2, 0x042a, 0x1c86, /* CYRILLIC CAPITAL LETTER HARD SIGN */ - /* 984*/ 0x044b, 1, 0x042b, /* CYRILLIC CAPITAL LETTER YERU */ - /* 987*/ 0x044c, 1, 0x042c, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ - /* 990*/ 0x044d, 1, 0x042d, /* CYRILLIC CAPITAL LETTER E */ - /* 993*/ 0x044e, 1, 0x042e, /* CYRILLIC CAPITAL LETTER YU */ - /* 996*/ 0x044f, 1, 0x042f, /* CYRILLIC CAPITAL LETTER YA */ - /* 999*/ 0x0450, 1, 0x0400, /* CYRILLIC CAPITAL LETTER IE WITH G.. */ - /*1002*/ 0x0451, 1, 0x0401, /* CYRILLIC CAPITAL LETTER IO */ - /*1005*/ 0x0452, 1, 0x0402, /* CYRILLIC CAPITAL LETTER DJE */ - /*1008*/ 0x0453, 1, 0x0403, /* CYRILLIC CAPITAL LETTER GJE */ - /*1011*/ 0x0454, 1, 0x0404, /* CYRILLIC CAPITAL LETTER UKRAINIAN.. */ - /*1014*/ 0x0455, 1, 0x0405, /* CYRILLIC CAPITAL LETTER DZE */ - /*1017*/ 0x0456, 1, 0x0406, /* CYRILLIC CAPITAL LETTER BYELORUSS.. */ - /*1020*/ 0x0457, 1, 0x0407, /* CYRILLIC CAPITAL LETTER YI */ - /*1023*/ 0x0458, 1, 0x0408, /* CYRILLIC CAPITAL LETTER JE */ - /*1026*/ 0x0459, 1, 0x0409, /* CYRILLIC CAPITAL LETTER LJE */ - /*1029*/ 0x045a, 1, 0x040a, /* CYRILLIC CAPITAL LETTER NJE */ - /*1032*/ 0x045b, 1, 0x040b, /* CYRILLIC CAPITAL LETTER TSHE */ - /*1035*/ 0x045c, 1, 0x040c, /* CYRILLIC CAPITAL LETTER KJE */ - /*1038*/ 0x045d, 1, 0x040d, /* CYRILLIC CAPITAL LETTER I WITH GR.. */ - /*1041*/ 0x045e, 1, 0x040e, /* CYRILLIC CAPITAL LETTER SHORT U */ - /*1044*/ 0x045f, 1, 0x040f, /* CYRILLIC CAPITAL LETTER DZHE */ - /*1047*/ 0x0461, 1, 0x0460, /* CYRILLIC CAPITAL LETTER OMEGA */ - /*1050*/ 0x0463, 2, 0x0462, 0x1c87, /* CYRILLIC CAPITAL LETTER YAT */ - /*1054*/ 0x0465, 1, 0x0464, /* CYRILLIC CAPITAL LETTER IOTIFIED E */ - /*1057*/ 0x0467, 1, 0x0466, /* CYRILLIC CAPITAL LETTER LITTLE YUS */ - /*1060*/ 0x0469, 1, 0x0468, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*1063*/ 0x046b, 1, 0x046a, /* CYRILLIC CAPITAL LETTER BIG YUS */ - /*1066*/ 0x046d, 1, 0x046c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*1069*/ 0x046f, 1, 0x046e, /* CYRILLIC CAPITAL LETTER KSI */ - /*1072*/ 0x0471, 1, 0x0470, /* CYRILLIC CAPITAL LETTER PSI */ - /*1075*/ 0x0473, 1, 0x0472, /* CYRILLIC CAPITAL LETTER FITA */ - /*1078*/ 0x0475, 1, 0x0474, /* CYRILLIC CAPITAL LETTER IZHITSA */ - /*1081*/ 0x0477, 1, 0x0476, /* CYRILLIC CAPITAL LETTER IZHITSA W.. */ - /*1084*/ 0x0479, 1, 0x0478, /* CYRILLIC CAPITAL LETTER UK */ - /*1087*/ 0x047b, 1, 0x047a, /* CYRILLIC CAPITAL LETTER ROUND OME.. */ - /*1090*/ 0x047d, 1, 0x047c, /* CYRILLIC CAPITAL LETTER OMEGA WIT.. */ - /*1093*/ 0x047f, 1, 0x047e, /* CYRILLIC CAPITAL LETTER OT */ - /*1096*/ 0x0481, 1, 0x0480, /* CYRILLIC CAPITAL LETTER KOPPA */ - /*1099*/ 0x048b, 1, 0x048a, /* CYRILLIC CAPITAL LETTER SHORT I W.. */ - /*1102*/ 0x048d, 1, 0x048c, /* CYRILLIC CAPITAL LETTER SEMISOFT .. */ - /*1105*/ 0x048f, 1, 0x048e, /* CYRILLIC CAPITAL LETTER ER WITH T.. */ - /*1108*/ 0x0491, 1, 0x0490, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1111*/ 0x0493, 1, 0x0492, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1114*/ 0x0495, 1, 0x0494, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1117*/ 0x0497, 1, 0x0496, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ - /*1120*/ 0x0499, 1, 0x0498, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ - /*1123*/ 0x049b, 1, 0x049a, /* CYRILLIC CAPITAL LETTER KA WITH D.. */ - /*1126*/ 0x049d, 1, 0x049c, /* CYRILLIC CAPITAL LETTER KA WITH V.. */ - /*1129*/ 0x049f, 1, 0x049e, /* CYRILLIC CAPITAL LETTER KA WITH S.. */ - /*1132*/ 0x04a1, 1, 0x04a0, /* CYRILLIC CAPITAL LETTER BASHKIR KA */ - /*1135*/ 0x04a3, 1, 0x04a2, /* CYRILLIC CAPITAL LETTER EN WITH D.. */ - /*1138*/ 0x04a5, 1, 0x04a4, /* CYRILLIC CAPITAL LIGATURE EN GHE */ - /*1141*/ 0x04a7, 1, 0x04a6, /* CYRILLIC CAPITAL LETTER PE WITH M.. */ - /*1144*/ 0x04a9, 1, 0x04a8, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1147*/ 0x04ab, 1, 0x04aa, /* CYRILLIC CAPITAL LETTER ES WITH D.. */ - /*1150*/ 0x04ad, 1, 0x04ac, /* CYRILLIC CAPITAL LETTER TE WITH D.. */ - /*1153*/ 0x04af, 1, 0x04ae, /* CYRILLIC CAPITAL LETTER STRAIGHT U */ - /*1156*/ 0x04b1, 1, 0x04b0, /* CYRILLIC CAPITAL LETTER STRAIGHT .. */ - /*1159*/ 0x04b3, 1, 0x04b2, /* CYRILLIC CAPITAL LETTER HA WITH D.. */ - /*1162*/ 0x04b5, 1, 0x04b4, /* CYRILLIC CAPITAL LIGATURE TE TSE */ - /*1165*/ 0x04b7, 1, 0x04b6, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ - /*1168*/ 0x04b9, 1, 0x04b8, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ - /*1171*/ 0x04bb, 1, 0x04ba, /* CYRILLIC CAPITAL LETTER SHHA */ - /*1174*/ 0x04bd, 1, 0x04bc, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1177*/ 0x04bf, 1, 0x04be, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1180*/ 0x04c2, 1, 0x04c1, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ - /*1183*/ 0x04c4, 1, 0x04c3, /* CYRILLIC CAPITAL LETTER KA WITH H.. */ - /*1186*/ 0x04c6, 1, 0x04c5, /* CYRILLIC CAPITAL LETTER EL WITH T.. */ - /*1189*/ 0x04c8, 1, 0x04c7, /* CYRILLIC CAPITAL LETTER EN WITH H.. */ - /*1192*/ 0x04ca, 1, 0x04c9, /* CYRILLIC CAPITAL LETTER EN WITH T.. */ - /*1195*/ 0x04cc, 1, 0x04cb, /* CYRILLIC CAPITAL LETTER KHAKASSIA.. */ - /*1198*/ 0x04ce, 1, 0x04cd, /* CYRILLIC CAPITAL LETTER EM WITH T.. */ - /*1201*/ 0x04cf, 1, 0x04c0, /* CYRILLIC LETTER PALOCHKA */ - /*1204*/ 0x04d1, 1, 0x04d0, /* CYRILLIC CAPITAL LETTER A WITH BR.. */ - /*1207*/ 0x04d3, 1, 0x04d2, /* CYRILLIC CAPITAL LETTER A WITH DI.. */ - /*1210*/ 0x04d5, 1, 0x04d4, /* CYRILLIC CAPITAL LIGATURE A IE */ - /*1213*/ 0x04d7, 1, 0x04d6, /* CYRILLIC CAPITAL LETTER IE WITH B.. */ - /*1216*/ 0x04d9, 1, 0x04d8, /* CYRILLIC CAPITAL LETTER SCHWA */ - /*1219*/ 0x04db, 1, 0x04da, /* CYRILLIC CAPITAL LETTER SCHWA WIT.. */ - /*1222*/ 0x04dd, 1, 0x04dc, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */ - /*1225*/ 0x04df, 1, 0x04de, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */ - /*1228*/ 0x04e1, 1, 0x04e0, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */ - /*1231*/ 0x04e3, 1, 0x04e2, /* CYRILLIC CAPITAL LETTER I WITH MA.. */ - /*1234*/ 0x04e5, 1, 0x04e4, /* CYRILLIC CAPITAL LETTER I WITH DI.. */ - /*1237*/ 0x04e7, 1, 0x04e6, /* CYRILLIC CAPITAL LETTER O WITH DI.. */ - /*1240*/ 0x04e9, 1, 0x04e8, /* CYRILLIC CAPITAL LETTER BARRED O */ - /*1243*/ 0x04eb, 1, 0x04ea, /* CYRILLIC CAPITAL LETTER BARRED O .. */ - /*1246*/ 0x04ed, 1, 0x04ec, /* CYRILLIC CAPITAL LETTER E WITH DI.. */ - /*1249*/ 0x04ef, 1, 0x04ee, /* CYRILLIC CAPITAL LETTER U WITH MA.. */ - /*1252*/ 0x04f1, 1, 0x04f0, /* CYRILLIC CAPITAL LETTER U WITH DI.. */ - /*1255*/ 0x04f3, 1, 0x04f2, /* CYRILLIC CAPITAL LETTER U WITH DO.. */ - /*1258*/ 0x04f5, 1, 0x04f4, /* CYRILLIC CAPITAL LETTER CHE WITH .. */ - /*1261*/ 0x04f7, 1, 0x04f6, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1264*/ 0x04f9, 1, 0x04f8, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ - /*1267*/ 0x04fb, 1, 0x04fa, /* CYRILLIC CAPITAL LETTER GHE WITH .. */ - /*1270*/ 0x04fd, 1, 0x04fc, /* CYRILLIC CAPITAL LETTER HA WITH H.. */ - /*1273*/ 0x04ff, 1, 0x04fe, /* CYRILLIC CAPITAL LETTER HA WITH S.. */ - /*1276*/ 0x0501, 1, 0x0500, /* CYRILLIC CAPITAL LETTER KOMI DE */ - /*1279*/ 0x0503, 1, 0x0502, /* CYRILLIC CAPITAL LETTER KOMI DJE */ - /*1282*/ 0x0505, 1, 0x0504, /* CYRILLIC CAPITAL LETTER KOMI ZJE */ - /*1285*/ 0x0507, 1, 0x0506, /* CYRILLIC CAPITAL LETTER KOMI DZJE */ - /*1288*/ 0x0509, 1, 0x0508, /* CYRILLIC CAPITAL LETTER KOMI LJE */ - /*1291*/ 0x050b, 1, 0x050a, /* CYRILLIC CAPITAL LETTER KOMI NJE */ - /*1294*/ 0x050d, 1, 0x050c, /* CYRILLIC CAPITAL LETTER KOMI SJE */ - /*1297*/ 0x050f, 1, 0x050e, /* CYRILLIC CAPITAL LETTER KOMI TJE */ - /*1300*/ 0x0511, 1, 0x0510, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*1303*/ 0x0513, 1, 0x0512, /* CYRILLIC CAPITAL LETTER EL WITH H.. */ - /*1306*/ 0x0515, 1, 0x0514, /* CYRILLIC CAPITAL LETTER LHA */ - /*1309*/ 0x0517, 1, 0x0516, /* CYRILLIC CAPITAL LETTER RHA */ - /*1312*/ 0x0519, 1, 0x0518, /* CYRILLIC CAPITAL LETTER YAE */ - /*1315*/ 0x051b, 1, 0x051a, /* CYRILLIC CAPITAL LETTER QA */ - /*1318*/ 0x051d, 1, 0x051c, /* CYRILLIC CAPITAL LETTER WE */ - /*1321*/ 0x051f, 1, 0x051e, /* CYRILLIC CAPITAL LETTER ALEUT KA */ - /*1324*/ 0x0521, 1, 0x0520, /* CYRILLIC CAPITAL LETTER EL WITH M.. */ - /*1327*/ 0x0523, 1, 0x0522, /* CYRILLIC CAPITAL LETTER EN WITH M.. */ - /*1330*/ 0x0525, 1, 0x0524, /* CYRILLIC CAPITAL LETTER PE WITH D.. */ - /*1333*/ 0x0527, 1, 0x0526, /* CYRILLIC CAPITAL LETTER SHHA WITH.. */ - /*1336*/ 0x0529, 1, 0x0528, /* CYRILLIC CAPITAL LETTER EN WITH L.. */ - /*1339*/ 0x052b, 1, 0x052a, /* CYRILLIC CAPITAL LETTER DZZHE */ - /*1342*/ 0x052d, 1, 0x052c, /* CYRILLIC CAPITAL LETTER DCHE */ - /*1345*/ 0x052f, 1, 0x052e, /* CYRILLIC CAPITAL LETTER EL WITH D.. */ - /*1348*/ 0x0561, 1, 0x0531, /* ARMENIAN CAPITAL LETTER AYB */ - /*1351*/ 0x0562, 1, 0x0532, /* ARMENIAN CAPITAL LETTER BEN */ - /*1354*/ 0x0563, 1, 0x0533, /* ARMENIAN CAPITAL LETTER GIM */ - /*1357*/ 0x0564, 1, 0x0534, /* ARMENIAN CAPITAL LETTER DA */ - /*1360*/ 0x0565, 1, 0x0535, /* ARMENIAN CAPITAL LETTER ECH */ - /*1363*/ 0x0566, 1, 0x0536, /* ARMENIAN CAPITAL LETTER ZA */ - /*1366*/ 0x0567, 1, 0x0537, /* ARMENIAN CAPITAL LETTER EH */ - /*1369*/ 0x0568, 1, 0x0538, /* ARMENIAN CAPITAL LETTER ET */ - /*1372*/ 0x0569, 1, 0x0539, /* ARMENIAN CAPITAL LETTER TO */ - /*1375*/ 0x056a, 1, 0x053a, /* ARMENIAN CAPITAL LETTER ZHE */ - /*1378*/ 0x056b, 1, 0x053b, /* ARMENIAN CAPITAL LETTER INI */ - /*1381*/ 0x056c, 1, 0x053c, /* ARMENIAN CAPITAL LETTER LIWN */ - /*1384*/ 0x056d, 1, 0x053d, /* ARMENIAN CAPITAL LETTER XEH */ - /*1387*/ 0x056e, 1, 0x053e, /* ARMENIAN CAPITAL LETTER CA */ - /*1390*/ 0x056f, 1, 0x053f, /* ARMENIAN CAPITAL LETTER KEN */ - /*1393*/ 0x0570, 1, 0x0540, /* ARMENIAN CAPITAL LETTER HO */ - /*1396*/ 0x0571, 1, 0x0541, /* ARMENIAN CAPITAL LETTER JA */ - /*1399*/ 0x0572, 1, 0x0542, /* ARMENIAN CAPITAL LETTER GHAD */ - /*1402*/ 0x0573, 1, 0x0543, /* ARMENIAN CAPITAL LETTER CHEH */ - /*1405*/ 0x0574, 1, 0x0544, /* ARMENIAN CAPITAL LETTER MEN */ - /*1408*/ 0x0575, 1, 0x0545, /* ARMENIAN CAPITAL LETTER YI */ - /*1411*/ 0x0576, 1, 0x0546, /* ARMENIAN CAPITAL LETTER NOW */ - /*1414*/ 0x0577, 1, 0x0547, /* ARMENIAN CAPITAL LETTER SHA */ - /*1417*/ 0x0578, 1, 0x0548, /* ARMENIAN CAPITAL LETTER VO */ - /*1420*/ 0x0579, 1, 0x0549, /* ARMENIAN CAPITAL LETTER CHA */ - /*1423*/ 0x057a, 1, 0x054a, /* ARMENIAN CAPITAL LETTER PEH */ - /*1426*/ 0x057b, 1, 0x054b, /* ARMENIAN CAPITAL LETTER JHEH */ - /*1429*/ 0x057c, 1, 0x054c, /* ARMENIAN CAPITAL LETTER RA */ - /*1432*/ 0x057d, 1, 0x054d, /* ARMENIAN CAPITAL LETTER SEH */ - /*1435*/ 0x057e, 1, 0x054e, /* ARMENIAN CAPITAL LETTER VEW */ - /*1438*/ 0x057f, 1, 0x054f, /* ARMENIAN CAPITAL LETTER TIWN */ - /*1441*/ 0x0580, 1, 0x0550, /* ARMENIAN CAPITAL LETTER REH */ - /*1444*/ 0x0581, 1, 0x0551, /* ARMENIAN CAPITAL LETTER CO */ - /*1447*/ 0x0582, 1, 0x0552, /* ARMENIAN CAPITAL LETTER YIWN */ - /*1450*/ 0x0583, 1, 0x0553, /* ARMENIAN CAPITAL LETTER PIWR */ - /*1453*/ 0x0584, 1, 0x0554, /* ARMENIAN CAPITAL LETTER KEH */ - /*1456*/ 0x0585, 1, 0x0555, /* ARMENIAN CAPITAL LETTER OH */ - /*1459*/ 0x0586, 1, 0x0556, /* ARMENIAN CAPITAL LETTER FEH */ - /*1462*/ 0x10d0, 1, 0x1c90, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1465*/ 0x10d1, 1, 0x1c91, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1468*/ 0x10d2, 1, 0x1c92, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1471*/ 0x10d3, 1, 0x1c93, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1474*/ 0x10d4, 1, 0x1c94, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1477*/ 0x10d5, 1, 0x1c95, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1480*/ 0x10d6, 1, 0x1c96, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1483*/ 0x10d7, 1, 0x1c97, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1486*/ 0x10d8, 1, 0x1c98, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1489*/ 0x10d9, 1, 0x1c99, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1492*/ 0x10da, 1, 0x1c9a, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1495*/ 0x10db, 1, 0x1c9b, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1498*/ 0x10dc, 1, 0x1c9c, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1501*/ 0x10dd, 1, 0x1c9d, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1504*/ 0x10de, 1, 0x1c9e, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1507*/ 0x10df, 1, 0x1c9f, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1510*/ 0x10e0, 1, 0x1ca0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1513*/ 0x10e1, 1, 0x1ca1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1516*/ 0x10e2, 1, 0x1ca2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1519*/ 0x10e3, 1, 0x1ca3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1522*/ 0x10e4, 1, 0x1ca4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1525*/ 0x10e5, 1, 0x1ca5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1528*/ 0x10e6, 1, 0x1ca6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1531*/ 0x10e7, 1, 0x1ca7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1534*/ 0x10e8, 1, 0x1ca8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1537*/ 0x10e9, 1, 0x1ca9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1540*/ 0x10ea, 1, 0x1caa, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1543*/ 0x10eb, 1, 0x1cab, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1546*/ 0x10ec, 1, 0x1cac, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1549*/ 0x10ed, 1, 0x1cad, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1552*/ 0x10ee, 1, 0x1cae, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1555*/ 0x10ef, 1, 0x1caf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1558*/ 0x10f0, 1, 0x1cb0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1561*/ 0x10f1, 1, 0x1cb1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1564*/ 0x10f2, 1, 0x1cb2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1567*/ 0x10f3, 1, 0x1cb3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1570*/ 0x10f4, 1, 0x1cb4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1573*/ 0x10f5, 1, 0x1cb5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1576*/ 0x10f6, 1, 0x1cb6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1579*/ 0x10f7, 1, 0x1cb7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1582*/ 0x10f8, 1, 0x1cb8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1585*/ 0x10f9, 1, 0x1cb9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1588*/ 0x10fa, 1, 0x1cba, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1591*/ 0x10fd, 1, 0x1cbd, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1594*/ 0x10fe, 1, 0x1cbe, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1597*/ 0x10ff, 1, 0x1cbf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */ - /*1600*/ 0x13a0, 1, 0xab70, /* CHEROKEE SMALL LETTER A */ - /*1603*/ 0x13a1, 1, 0xab71, /* CHEROKEE SMALL LETTER E */ - /*1606*/ 0x13a2, 1, 0xab72, /* CHEROKEE SMALL LETTER I */ - /*1609*/ 0x13a3, 1, 0xab73, /* CHEROKEE SMALL LETTER O */ - /*1612*/ 0x13a4, 1, 0xab74, /* CHEROKEE SMALL LETTER U */ - /*1615*/ 0x13a5, 1, 0xab75, /* CHEROKEE SMALL LETTER V */ - /*1618*/ 0x13a6, 1, 0xab76, /* CHEROKEE SMALL LETTER GA */ - /*1621*/ 0x13a7, 1, 0xab77, /* CHEROKEE SMALL LETTER KA */ - /*1624*/ 0x13a8, 1, 0xab78, /* CHEROKEE SMALL LETTER GE */ - /*1627*/ 0x13a9, 1, 0xab79, /* CHEROKEE SMALL LETTER GI */ - /*1630*/ 0x13aa, 1, 0xab7a, /* CHEROKEE SMALL LETTER GO */ - /*1633*/ 0x13ab, 1, 0xab7b, /* CHEROKEE SMALL LETTER GU */ - /*1636*/ 0x13ac, 1, 0xab7c, /* CHEROKEE SMALL LETTER GV */ - /*1639*/ 0x13ad, 1, 0xab7d, /* CHEROKEE SMALL LETTER HA */ - /*1642*/ 0x13ae, 1, 0xab7e, /* CHEROKEE SMALL LETTER HE */ - /*1645*/ 0x13af, 1, 0xab7f, /* CHEROKEE SMALL LETTER HI */ - /*1648*/ 0x13b0, 1, 0xab80, /* CHEROKEE SMALL LETTER HO */ - /*1651*/ 0x13b1, 1, 0xab81, /* CHEROKEE SMALL LETTER HU */ - /*1654*/ 0x13b2, 1, 0xab82, /* CHEROKEE SMALL LETTER HV */ - /*1657*/ 0x13b3, 1, 0xab83, /* CHEROKEE SMALL LETTER LA */ - /*1660*/ 0x13b4, 1, 0xab84, /* CHEROKEE SMALL LETTER LE */ - /*1663*/ 0x13b5, 1, 0xab85, /* CHEROKEE SMALL LETTER LI */ - /*1666*/ 0x13b6, 1, 0xab86, /* CHEROKEE SMALL LETTER LO */ - /*1669*/ 0x13b7, 1, 0xab87, /* CHEROKEE SMALL LETTER LU */ - /*1672*/ 0x13b8, 1, 0xab88, /* CHEROKEE SMALL LETTER LV */ - /*1675*/ 0x13b9, 1, 0xab89, /* CHEROKEE SMALL LETTER MA */ - /*1678*/ 0x13ba, 1, 0xab8a, /* CHEROKEE SMALL LETTER ME */ - /*1681*/ 0x13bb, 1, 0xab8b, /* CHEROKEE SMALL LETTER MI */ - /*1684*/ 0x13bc, 1, 0xab8c, /* CHEROKEE SMALL LETTER MO */ - /*1687*/ 0x13bd, 1, 0xab8d, /* CHEROKEE SMALL LETTER MU */ - /*1690*/ 0x13be, 1, 0xab8e, /* CHEROKEE SMALL LETTER NA */ - /*1693*/ 0x13bf, 1, 0xab8f, /* CHEROKEE SMALL LETTER HNA */ - /*1696*/ 0x13c0, 1, 0xab90, /* CHEROKEE SMALL LETTER NAH */ - /*1699*/ 0x13c1, 1, 0xab91, /* CHEROKEE SMALL LETTER NE */ - /*1702*/ 0x13c2, 1, 0xab92, /* CHEROKEE SMALL LETTER NI */ - /*1705*/ 0x13c3, 1, 0xab93, /* CHEROKEE SMALL LETTER NO */ - /*1708*/ 0x13c4, 1, 0xab94, /* CHEROKEE SMALL LETTER NU */ - /*1711*/ 0x13c5, 1, 0xab95, /* CHEROKEE SMALL LETTER NV */ - /*1714*/ 0x13c6, 1, 0xab96, /* CHEROKEE SMALL LETTER QUA */ - /*1717*/ 0x13c7, 1, 0xab97, /* CHEROKEE SMALL LETTER QUE */ - /*1720*/ 0x13c8, 1, 0xab98, /* CHEROKEE SMALL LETTER QUI */ - /*1723*/ 0x13c9, 1, 0xab99, /* CHEROKEE SMALL LETTER QUO */ - /*1726*/ 0x13ca, 1, 0xab9a, /* CHEROKEE SMALL LETTER QUU */ - /*1729*/ 0x13cb, 1, 0xab9b, /* CHEROKEE SMALL LETTER QUV */ - /*1732*/ 0x13cc, 1, 0xab9c, /* CHEROKEE SMALL LETTER SA */ - /*1735*/ 0x13cd, 1, 0xab9d, /* CHEROKEE SMALL LETTER S */ - /*1738*/ 0x13ce, 1, 0xab9e, /* CHEROKEE SMALL LETTER SE */ - /*1741*/ 0x13cf, 1, 0xab9f, /* CHEROKEE SMALL LETTER SI */ - /*1744*/ 0x13d0, 1, 0xaba0, /* CHEROKEE SMALL LETTER SO */ - /*1747*/ 0x13d1, 1, 0xaba1, /* CHEROKEE SMALL LETTER SU */ - /*1750*/ 0x13d2, 1, 0xaba2, /* CHEROKEE SMALL LETTER SV */ - /*1753*/ 0x13d3, 1, 0xaba3, /* CHEROKEE SMALL LETTER DA */ - /*1756*/ 0x13d4, 1, 0xaba4, /* CHEROKEE SMALL LETTER TA */ - /*1759*/ 0x13d5, 1, 0xaba5, /* CHEROKEE SMALL LETTER DE */ - /*1762*/ 0x13d6, 1, 0xaba6, /* CHEROKEE SMALL LETTER TE */ - /*1765*/ 0x13d7, 1, 0xaba7, /* CHEROKEE SMALL LETTER DI */ - /*1768*/ 0x13d8, 1, 0xaba8, /* CHEROKEE SMALL LETTER TI */ - /*1771*/ 0x13d9, 1, 0xaba9, /* CHEROKEE SMALL LETTER DO */ - /*1774*/ 0x13da, 1, 0xabaa, /* CHEROKEE SMALL LETTER DU */ - /*1777*/ 0x13db, 1, 0xabab, /* CHEROKEE SMALL LETTER DV */ - /*1780*/ 0x13dc, 1, 0xabac, /* CHEROKEE SMALL LETTER DLA */ - /*1783*/ 0x13dd, 1, 0xabad, /* CHEROKEE SMALL LETTER TLA */ - /*1786*/ 0x13de, 1, 0xabae, /* CHEROKEE SMALL LETTER TLE */ - /*1789*/ 0x13df, 1, 0xabaf, /* CHEROKEE SMALL LETTER TLI */ - /*1792*/ 0x13e0, 1, 0xabb0, /* CHEROKEE SMALL LETTER TLO */ - /*1795*/ 0x13e1, 1, 0xabb1, /* CHEROKEE SMALL LETTER TLU */ - /*1798*/ 0x13e2, 1, 0xabb2, /* CHEROKEE SMALL LETTER TLV */ - /*1801*/ 0x13e3, 1, 0xabb3, /* CHEROKEE SMALL LETTER TSA */ - /*1804*/ 0x13e4, 1, 0xabb4, /* CHEROKEE SMALL LETTER TSE */ - /*1807*/ 0x13e5, 1, 0xabb5, /* CHEROKEE SMALL LETTER TSI */ - /*1810*/ 0x13e6, 1, 0xabb6, /* CHEROKEE SMALL LETTER TSO */ - /*1813*/ 0x13e7, 1, 0xabb7, /* CHEROKEE SMALL LETTER TSU */ - /*1816*/ 0x13e8, 1, 0xabb8, /* CHEROKEE SMALL LETTER TSV */ - /*1819*/ 0x13e9, 1, 0xabb9, /* CHEROKEE SMALL LETTER WA */ - /*1822*/ 0x13ea, 1, 0xabba, /* CHEROKEE SMALL LETTER WE */ - /*1825*/ 0x13eb, 1, 0xabbb, /* CHEROKEE SMALL LETTER WI */ - /*1828*/ 0x13ec, 1, 0xabbc, /* CHEROKEE SMALL LETTER WO */ - /*1831*/ 0x13ed, 1, 0xabbd, /* CHEROKEE SMALL LETTER WU */ - /*1834*/ 0x13ee, 1, 0xabbe, /* CHEROKEE SMALL LETTER WV */ - /*1837*/ 0x13ef, 1, 0xabbf, /* CHEROKEE SMALL LETTER YA */ - /*1840*/ 0x13f0, 1, 0x13f8, /* CHEROKEE SMALL LETTER YE */ - /*1843*/ 0x13f1, 1, 0x13f9, /* CHEROKEE SMALL LETTER YI */ - /*1846*/ 0x13f2, 1, 0x13fa, /* CHEROKEE SMALL LETTER YO */ - /*1849*/ 0x13f3, 1, 0x13fb, /* CHEROKEE SMALL LETTER YU */ - /*1852*/ 0x13f4, 1, 0x13fc, /* CHEROKEE SMALL LETTER YV */ - /*1855*/ 0x13f5, 1, 0x13fd, /* CHEROKEE SMALL LETTER MV */ - /*1858*/ 0x1d79, 1, 0xa77d, /* LATIN CAPITAL LETTER INSULAR G */ - /*1861*/ 0x1d7d, 1, 0x2c63, /* LATIN CAPITAL LETTER P WITH STROKE */ - /*1864*/ 0x1d8e, 1, 0xa7c6, /* LATIN CAPITAL LETTER Z WITH PALAT.. */ - /*1867*/ 0x1e01, 1, 0x1e00, /* LATIN CAPITAL LETTER A WITH RING .. */ - /*1870*/ 0x1e03, 1, 0x1e02, /* LATIN CAPITAL LETTER B WITH DOT A.. */ - /*1873*/ 0x1e05, 1, 0x1e04, /* LATIN CAPITAL LETTER B WITH DOT B.. */ - /*1876*/ 0x1e07, 1, 0x1e06, /* LATIN CAPITAL LETTER B WITH LINE .. */ - /*1879*/ 0x1e09, 1, 0x1e08, /* LATIN CAPITAL LETTER C WITH CEDIL.. */ - /*1882*/ 0x1e0b, 1, 0x1e0a, /* LATIN CAPITAL LETTER D WITH DOT A.. */ - /*1885*/ 0x1e0d, 1, 0x1e0c, /* LATIN CAPITAL LETTER D WITH DOT B.. */ - /*1888*/ 0x1e0f, 1, 0x1e0e, /* LATIN CAPITAL LETTER D WITH LINE .. */ - /*1891*/ 0x1e11, 1, 0x1e10, /* LATIN CAPITAL LETTER D WITH CEDIL.. */ - /*1894*/ 0x1e13, 1, 0x1e12, /* LATIN CAPITAL LETTER D WITH CIRCU.. */ - /*1897*/ 0x1e15, 1, 0x1e14, /* LATIN CAPITAL LETTER E WITH MACRO.. */ - /*1900*/ 0x1e17, 1, 0x1e16, /* LATIN CAPITAL LETTER E WITH MACRO.. */ - /*1903*/ 0x1e19, 1, 0x1e18, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*1906*/ 0x1e1b, 1, 0x1e1a, /* LATIN CAPITAL LETTER E WITH TILDE.. */ - /*1909*/ 0x1e1d, 1, 0x1e1c, /* LATIN CAPITAL LETTER E WITH CEDIL.. */ - /*1912*/ 0x1e1f, 1, 0x1e1e, /* LATIN CAPITAL LETTER F WITH DOT A.. */ - /*1915*/ 0x1e21, 1, 0x1e20, /* LATIN CAPITAL LETTER G WITH MACRON */ - /*1918*/ 0x1e23, 1, 0x1e22, /* LATIN CAPITAL LETTER H WITH DOT A.. */ - /*1921*/ 0x1e25, 1, 0x1e24, /* LATIN CAPITAL LETTER H WITH DOT B.. */ - /*1924*/ 0x1e27, 1, 0x1e26, /* LATIN CAPITAL LETTER H WITH DIAER.. */ - /*1927*/ 0x1e29, 1, 0x1e28, /* LATIN CAPITAL LETTER H WITH CEDIL.. */ - /*1930*/ 0x1e2b, 1, 0x1e2a, /* LATIN CAPITAL LETTER H WITH BREVE.. */ - /*1933*/ 0x1e2d, 1, 0x1e2c, /* LATIN CAPITAL LETTER I WITH TILDE.. */ - /*1936*/ 0x1e2f, 1, 0x1e2e, /* LATIN CAPITAL LETTER I WITH DIAER.. */ - /*1939*/ 0x1e31, 1, 0x1e30, /* LATIN CAPITAL LETTER K WITH ACUTE */ - /*1942*/ 0x1e33, 1, 0x1e32, /* LATIN CAPITAL LETTER K WITH DOT B.. */ - /*1945*/ 0x1e35, 1, 0x1e34, /* LATIN CAPITAL LETTER K WITH LINE .. */ - /*1948*/ 0x1e37, 1, 0x1e36, /* LATIN CAPITAL LETTER L WITH DOT B.. */ - /*1951*/ 0x1e39, 1, 0x1e38, /* LATIN CAPITAL LETTER L WITH DOT B.. */ - /*1954*/ 0x1e3b, 1, 0x1e3a, /* LATIN CAPITAL LETTER L WITH LINE .. */ - /*1957*/ 0x1e3d, 1, 0x1e3c, /* LATIN CAPITAL LETTER L WITH CIRCU.. */ - /*1960*/ 0x1e3f, 1, 0x1e3e, /* LATIN CAPITAL LETTER M WITH ACUTE */ - /*1963*/ 0x1e41, 1, 0x1e40, /* LATIN CAPITAL LETTER M WITH DOT A.. */ - /*1966*/ 0x1e43, 1, 0x1e42, /* LATIN CAPITAL LETTER M WITH DOT B.. */ - /*1969*/ 0x1e45, 1, 0x1e44, /* LATIN CAPITAL LETTER N WITH DOT A.. */ - /*1972*/ 0x1e47, 1, 0x1e46, /* LATIN CAPITAL LETTER N WITH DOT B.. */ - /*1975*/ 0x1e49, 1, 0x1e48, /* LATIN CAPITAL LETTER N WITH LINE .. */ - /*1978*/ 0x1e4b, 1, 0x1e4a, /* LATIN CAPITAL LETTER N WITH CIRCU.. */ - /*1981*/ 0x1e4d, 1, 0x1e4c, /* LATIN CAPITAL LETTER O WITH TILDE.. */ - /*1984*/ 0x1e4f, 1, 0x1e4e, /* LATIN CAPITAL LETTER O WITH TILDE.. */ - /*1987*/ 0x1e51, 1, 0x1e50, /* LATIN CAPITAL LETTER O WITH MACRO.. */ - /*1990*/ 0x1e53, 1, 0x1e52, /* LATIN CAPITAL LETTER O WITH MACRO.. */ - /*1993*/ 0x1e55, 1, 0x1e54, /* LATIN CAPITAL LETTER P WITH ACUTE */ - /*1996*/ 0x1e57, 1, 0x1e56, /* LATIN CAPITAL LETTER P WITH DOT A.. */ - /*1999*/ 0x1e59, 1, 0x1e58, /* LATIN CAPITAL LETTER R WITH DOT A.. */ - /*2002*/ 0x1e5b, 1, 0x1e5a, /* LATIN CAPITAL LETTER R WITH DOT B.. */ - /*2005*/ 0x1e5d, 1, 0x1e5c, /* LATIN CAPITAL LETTER R WITH DOT B.. */ - /*2008*/ 0x1e5f, 1, 0x1e5e, /* LATIN CAPITAL LETTER R WITH LINE .. */ - /*2011*/ 0x1e61, 2, 0x1e60, 0x1e9b, /* LATIN CAPITAL LETTER S WITH DOT A.. */ - /*2015*/ 0x1e63, 1, 0x1e62, /* LATIN CAPITAL LETTER S WITH DOT B.. */ - /*2018*/ 0x1e65, 1, 0x1e64, /* LATIN CAPITAL LETTER S WITH ACUTE.. */ - /*2021*/ 0x1e67, 1, 0x1e66, /* LATIN CAPITAL LETTER S WITH CARON.. */ - /*2024*/ 0x1e69, 1, 0x1e68, /* LATIN CAPITAL LETTER S WITH DOT B.. */ - /*2027*/ 0x1e6b, 1, 0x1e6a, /* LATIN CAPITAL LETTER T WITH DOT A.. */ - /*2030*/ 0x1e6d, 1, 0x1e6c, /* LATIN CAPITAL LETTER T WITH DOT B.. */ - /*2033*/ 0x1e6f, 1, 0x1e6e, /* LATIN CAPITAL LETTER T WITH LINE .. */ - /*2036*/ 0x1e71, 1, 0x1e70, /* LATIN CAPITAL LETTER T WITH CIRCU.. */ - /*2039*/ 0x1e73, 1, 0x1e72, /* LATIN CAPITAL LETTER U WITH DIAER.. */ - /*2042*/ 0x1e75, 1, 0x1e74, /* LATIN CAPITAL LETTER U WITH TILDE.. */ - /*2045*/ 0x1e77, 1, 0x1e76, /* LATIN CAPITAL LETTER U WITH CIRCU.. */ - /*2048*/ 0x1e79, 1, 0x1e78, /* LATIN CAPITAL LETTER U WITH TILDE.. */ - /*2051*/ 0x1e7b, 1, 0x1e7a, /* LATIN CAPITAL LETTER U WITH MACRO.. */ - /*2054*/ 0x1e7d, 1, 0x1e7c, /* LATIN CAPITAL LETTER V WITH TILDE */ - /*2057*/ 0x1e7f, 1, 0x1e7e, /* LATIN CAPITAL LETTER V WITH DOT B.. */ - /*2060*/ 0x1e81, 1, 0x1e80, /* LATIN CAPITAL LETTER W WITH GRAVE */ - /*2063*/ 0x1e83, 1, 0x1e82, /* LATIN CAPITAL LETTER W WITH ACUTE */ - /*2066*/ 0x1e85, 1, 0x1e84, /* LATIN CAPITAL LETTER W WITH DIAER.. */ - /*2069*/ 0x1e87, 1, 0x1e86, /* LATIN CAPITAL LETTER W WITH DOT A.. */ - /*2072*/ 0x1e89, 1, 0x1e88, /* LATIN CAPITAL LETTER W WITH DOT B.. */ - /*2075*/ 0x1e8b, 1, 0x1e8a, /* LATIN CAPITAL LETTER X WITH DOT A.. */ - /*2078*/ 0x1e8d, 1, 0x1e8c, /* LATIN CAPITAL LETTER X WITH DIAER.. */ - /*2081*/ 0x1e8f, 1, 0x1e8e, /* LATIN CAPITAL LETTER Y WITH DOT A.. */ - /*2084*/ 0x1e91, 1, 0x1e90, /* LATIN CAPITAL LETTER Z WITH CIRCU.. */ - /*2087*/ 0x1e93, 1, 0x1e92, /* LATIN CAPITAL LETTER Z WITH DOT B.. */ - /*2090*/ 0x1e95, 1, 0x1e94, /* LATIN CAPITAL LETTER Z WITH LINE .. */ - /*2093*/ 0x1ea1, 1, 0x1ea0, /* LATIN CAPITAL LETTER A WITH DOT B.. */ - /*2096*/ 0x1ea3, 1, 0x1ea2, /* LATIN CAPITAL LETTER A WITH HOOK .. */ - /*2099*/ 0x1ea5, 1, 0x1ea4, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2102*/ 0x1ea7, 1, 0x1ea6, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2105*/ 0x1ea9, 1, 0x1ea8, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2108*/ 0x1eab, 1, 0x1eaa, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2111*/ 0x1ead, 1, 0x1eac, /* LATIN CAPITAL LETTER A WITH CIRCU.. */ - /*2114*/ 0x1eaf, 1, 0x1eae, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2117*/ 0x1eb1, 1, 0x1eb0, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2120*/ 0x1eb3, 1, 0x1eb2, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2123*/ 0x1eb5, 1, 0x1eb4, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2126*/ 0x1eb7, 1, 0x1eb6, /* LATIN CAPITAL LETTER A WITH BREVE.. */ - /*2129*/ 0x1eb9, 1, 0x1eb8, /* LATIN CAPITAL LETTER E WITH DOT B.. */ - /*2132*/ 0x1ebb, 1, 0x1eba, /* LATIN CAPITAL LETTER E WITH HOOK .. */ - /*2135*/ 0x1ebd, 1, 0x1ebc, /* LATIN CAPITAL LETTER E WITH TILDE */ - /*2138*/ 0x1ebf, 1, 0x1ebe, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2141*/ 0x1ec1, 1, 0x1ec0, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2144*/ 0x1ec3, 1, 0x1ec2, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2147*/ 0x1ec5, 1, 0x1ec4, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2150*/ 0x1ec7, 1, 0x1ec6, /* LATIN CAPITAL LETTER E WITH CIRCU.. */ - /*2153*/ 0x1ec9, 1, 0x1ec8, /* LATIN CAPITAL LETTER I WITH HOOK .. */ - /*2156*/ 0x1ecb, 1, 0x1eca, /* LATIN CAPITAL LETTER I WITH DOT B.. */ - /*2159*/ 0x1ecd, 1, 0x1ecc, /* LATIN CAPITAL LETTER O WITH DOT B.. */ - /*2162*/ 0x1ecf, 1, 0x1ece, /* LATIN CAPITAL LETTER O WITH HOOK .. */ - /*2165*/ 0x1ed1, 1, 0x1ed0, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2168*/ 0x1ed3, 1, 0x1ed2, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2171*/ 0x1ed5, 1, 0x1ed4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2174*/ 0x1ed7, 1, 0x1ed6, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2177*/ 0x1ed9, 1, 0x1ed8, /* LATIN CAPITAL LETTER O WITH CIRCU.. */ - /*2180*/ 0x1edb, 1, 0x1eda, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2183*/ 0x1edd, 1, 0x1edc, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2186*/ 0x1edf, 1, 0x1ede, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2189*/ 0x1ee1, 1, 0x1ee0, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2192*/ 0x1ee3, 1, 0x1ee2, /* LATIN CAPITAL LETTER O WITH HORN .. */ - /*2195*/ 0x1ee5, 1, 0x1ee4, /* LATIN CAPITAL LETTER U WITH DOT B.. */ - /*2198*/ 0x1ee7, 1, 0x1ee6, /* LATIN CAPITAL LETTER U WITH HOOK .. */ - /*2201*/ 0x1ee9, 1, 0x1ee8, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2204*/ 0x1eeb, 1, 0x1eea, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2207*/ 0x1eed, 1, 0x1eec, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2210*/ 0x1eef, 1, 0x1eee, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2213*/ 0x1ef1, 1, 0x1ef0, /* LATIN CAPITAL LETTER U WITH HORN .. */ - /*2216*/ 0x1ef3, 1, 0x1ef2, /* LATIN CAPITAL LETTER Y WITH GRAVE */ - /*2219*/ 0x1ef5, 1, 0x1ef4, /* LATIN CAPITAL LETTER Y WITH DOT B.. */ - /*2222*/ 0x1ef7, 1, 0x1ef6, /* LATIN CAPITAL LETTER Y WITH HOOK .. */ - /*2225*/ 0x1ef9, 1, 0x1ef8, /* LATIN CAPITAL LETTER Y WITH TILDE */ - /*2228*/ 0x1efb, 1, 0x1efa, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ - /*2231*/ 0x1efd, 1, 0x1efc, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */ - /*2234*/ 0x1eff, 1, 0x1efe, /* LATIN CAPITAL LETTER Y WITH LOOP */ - /*2237*/ 0x1f00, 1, 0x1f08, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2240*/ 0x1f01, 1, 0x1f09, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2243*/ 0x1f02, 1, 0x1f0a, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2246*/ 0x1f03, 1, 0x1f0b, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2249*/ 0x1f04, 1, 0x1f0c, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2252*/ 0x1f05, 1, 0x1f0d, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2255*/ 0x1f06, 1, 0x1f0e, /* GREEK CAPITAL LETTER ALPHA WITH P.. */ - /*2258*/ 0x1f07, 1, 0x1f0f, /* GREEK CAPITAL LETTER ALPHA WITH D.. */ - /*2261*/ 0x1f10, 1, 0x1f18, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2264*/ 0x1f11, 1, 0x1f19, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2267*/ 0x1f12, 1, 0x1f1a, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2270*/ 0x1f13, 1, 0x1f1b, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2273*/ 0x1f14, 1, 0x1f1c, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2276*/ 0x1f15, 1, 0x1f1d, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2279*/ 0x1f20, 1, 0x1f28, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2282*/ 0x1f21, 1, 0x1f29, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2285*/ 0x1f22, 1, 0x1f2a, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2288*/ 0x1f23, 1, 0x1f2b, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2291*/ 0x1f24, 1, 0x1f2c, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2294*/ 0x1f25, 1, 0x1f2d, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2297*/ 0x1f26, 1, 0x1f2e, /* GREEK CAPITAL LETTER ETA WITH PSI.. */ - /*2300*/ 0x1f27, 1, 0x1f2f, /* GREEK CAPITAL LETTER ETA WITH DAS.. */ - /*2303*/ 0x1f30, 1, 0x1f38, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2306*/ 0x1f31, 1, 0x1f39, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2309*/ 0x1f32, 1, 0x1f3a, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2312*/ 0x1f33, 1, 0x1f3b, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2315*/ 0x1f34, 1, 0x1f3c, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2318*/ 0x1f35, 1, 0x1f3d, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2321*/ 0x1f36, 1, 0x1f3e, /* GREEK CAPITAL LETTER IOTA WITH PS.. */ - /*2324*/ 0x1f37, 1, 0x1f3f, /* GREEK CAPITAL LETTER IOTA WITH DA.. */ - /*2327*/ 0x1f40, 1, 0x1f48, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2330*/ 0x1f41, 1, 0x1f49, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2333*/ 0x1f42, 1, 0x1f4a, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2336*/ 0x1f43, 1, 0x1f4b, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2339*/ 0x1f44, 1, 0x1f4c, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2342*/ 0x1f45, 1, 0x1f4d, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2345*/ 0x1f51, 1, 0x1f59, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2348*/ 0x1f53, 1, 0x1f5b, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2351*/ 0x1f55, 1, 0x1f5d, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2354*/ 0x1f57, 1, 0x1f5f, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2357*/ 0x1f60, 1, 0x1f68, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2360*/ 0x1f61, 1, 0x1f69, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2363*/ 0x1f62, 1, 0x1f6a, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2366*/ 0x1f63, 1, 0x1f6b, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2369*/ 0x1f64, 1, 0x1f6c, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2372*/ 0x1f65, 1, 0x1f6d, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2375*/ 0x1f66, 1, 0x1f6e, /* GREEK CAPITAL LETTER OMEGA WITH P.. */ - /*2378*/ 0x1f67, 1, 0x1f6f, /* GREEK CAPITAL LETTER OMEGA WITH D.. */ - /*2381*/ 0x1f70, 1, 0x1fba, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ - /*2384*/ 0x1f71, 1, 0x1fbb, /* GREEK CAPITAL LETTER ALPHA WITH O.. */ - /*2387*/ 0x1f72, 1, 0x1fc8, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2390*/ 0x1f73, 1, 0x1fc9, /* GREEK CAPITAL LETTER EPSILON WITH.. */ - /*2393*/ 0x1f74, 1, 0x1fca, /* GREEK CAPITAL LETTER ETA WITH VAR.. */ - /*2396*/ 0x1f75, 1, 0x1fcb, /* GREEK CAPITAL LETTER ETA WITH OXIA */ - /*2399*/ 0x1f76, 1, 0x1fda, /* GREEK CAPITAL LETTER IOTA WITH VA.. */ - /*2402*/ 0x1f77, 1, 0x1fdb, /* GREEK CAPITAL LETTER IOTA WITH OX.. */ - /*2405*/ 0x1f78, 1, 0x1ff8, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2408*/ 0x1f79, 1, 0x1ff9, /* GREEK CAPITAL LETTER OMICRON WITH.. */ - /*2411*/ 0x1f7a, 1, 0x1fea, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2414*/ 0x1f7b, 1, 0x1feb, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2417*/ 0x1f7c, 1, 0x1ffa, /* GREEK CAPITAL LETTER OMEGA WITH V.. */ - /*2420*/ 0x1f7d, 1, 0x1ffb, /* GREEK CAPITAL LETTER OMEGA WITH O.. */ - /*2423*/ 0x1fb0, 1, 0x1fb8, /* GREEK CAPITAL LETTER ALPHA WITH V.. */ - /*2426*/ 0x1fb1, 1, 0x1fb9, /* GREEK CAPITAL LETTER ALPHA WITH M.. */ - /*2429*/ 0x1fd0, 1, 0x1fd8, /* GREEK CAPITAL LETTER IOTA WITH VR.. */ - /*2432*/ 0x1fd1, 1, 0x1fd9, /* GREEK CAPITAL LETTER IOTA WITH MA.. */ - /*2435*/ 0x1fe0, 1, 0x1fe8, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2438*/ 0x1fe1, 1, 0x1fe9, /* GREEK CAPITAL LETTER UPSILON WITH.. */ - /*2441*/ 0x1fe5, 1, 0x1fec, /* GREEK CAPITAL LETTER RHO WITH DAS.. */ - /*2444*/ 0x214e, 1, 0x2132, /* TURNED CAPITAL F */ - /*2447*/ 0x2170, 1, 0x2160, /* ROMAN NUMERAL ONE */ - /*2450*/ 0x2171, 1, 0x2161, /* ROMAN NUMERAL TWO */ - /*2453*/ 0x2172, 1, 0x2162, /* ROMAN NUMERAL THREE */ - /*2456*/ 0x2173, 1, 0x2163, /* ROMAN NUMERAL FOUR */ - /*2459*/ 0x2174, 1, 0x2164, /* ROMAN NUMERAL FIVE */ - /*2462*/ 0x2175, 1, 0x2165, /* ROMAN NUMERAL SIX */ - /*2465*/ 0x2176, 1, 0x2166, /* ROMAN NUMERAL SEVEN */ - /*2468*/ 0x2177, 1, 0x2167, /* ROMAN NUMERAL EIGHT */ - /*2471*/ 0x2178, 1, 0x2168, /* ROMAN NUMERAL NINE */ - /*2474*/ 0x2179, 1, 0x2169, /* ROMAN NUMERAL TEN */ - /*2477*/ 0x217a, 1, 0x216a, /* ROMAN NUMERAL ELEVEN */ - /*2480*/ 0x217b, 1, 0x216b, /* ROMAN NUMERAL TWELVE */ - /*2483*/ 0x217c, 1, 0x216c, /* ROMAN NUMERAL FIFTY */ - /*2486*/ 0x217d, 1, 0x216d, /* ROMAN NUMERAL ONE HUNDRED */ - /*2489*/ 0x217e, 1, 0x216e, /* ROMAN NUMERAL FIVE HUNDRED */ - /*2492*/ 0x217f, 1, 0x216f, /* ROMAN NUMERAL ONE THOUSAND */ - /*2495*/ 0x2184, 1, 0x2183, /* ROMAN NUMERAL REVERSED ONE HUNDRED */ - /*2498*/ 0x24d0, 1, 0x24b6, /* CIRCLED LATIN CAPITAL LETTER A */ - /*2501*/ 0x24d1, 1, 0x24b7, /* CIRCLED LATIN CAPITAL LETTER B */ - /*2504*/ 0x24d2, 1, 0x24b8, /* CIRCLED LATIN CAPITAL LETTER C */ - /*2507*/ 0x24d3, 1, 0x24b9, /* CIRCLED LATIN CAPITAL LETTER D */ - /*2510*/ 0x24d4, 1, 0x24ba, /* CIRCLED LATIN CAPITAL LETTER E */ - /*2513*/ 0x24d5, 1, 0x24bb, /* CIRCLED LATIN CAPITAL LETTER F */ - /*2516*/ 0x24d6, 1, 0x24bc, /* CIRCLED LATIN CAPITAL LETTER G */ - /*2519*/ 0x24d7, 1, 0x24bd, /* CIRCLED LATIN CAPITAL LETTER H */ - /*2522*/ 0x24d8, 1, 0x24be, /* CIRCLED LATIN CAPITAL LETTER I */ - /*2525*/ 0x24d9, 1, 0x24bf, /* CIRCLED LATIN CAPITAL LETTER J */ - /*2528*/ 0x24da, 1, 0x24c0, /* CIRCLED LATIN CAPITAL LETTER K */ - /*2531*/ 0x24db, 1, 0x24c1, /* CIRCLED LATIN CAPITAL LETTER L */ - /*2534*/ 0x24dc, 1, 0x24c2, /* CIRCLED LATIN CAPITAL LETTER M */ - /*2537*/ 0x24dd, 1, 0x24c3, /* CIRCLED LATIN CAPITAL LETTER N */ - /*2540*/ 0x24de, 1, 0x24c4, /* CIRCLED LATIN CAPITAL LETTER O */ - /*2543*/ 0x24df, 1, 0x24c5, /* CIRCLED LATIN CAPITAL LETTER P */ - /*2546*/ 0x24e0, 1, 0x24c6, /* CIRCLED LATIN CAPITAL LETTER Q */ - /*2549*/ 0x24e1, 1, 0x24c7, /* CIRCLED LATIN CAPITAL LETTER R */ - /*2552*/ 0x24e2, 1, 0x24c8, /* CIRCLED LATIN CAPITAL LETTER S */ - /*2555*/ 0x24e3, 1, 0x24c9, /* CIRCLED LATIN CAPITAL LETTER T */ - /*2558*/ 0x24e4, 1, 0x24ca, /* CIRCLED LATIN CAPITAL LETTER U */ - /*2561*/ 0x24e5, 1, 0x24cb, /* CIRCLED LATIN CAPITAL LETTER V */ - /*2564*/ 0x24e6, 1, 0x24cc, /* CIRCLED LATIN CAPITAL LETTER W */ - /*2567*/ 0x24e7, 1, 0x24cd, /* CIRCLED LATIN CAPITAL LETTER X */ - /*2570*/ 0x24e8, 1, 0x24ce, /* CIRCLED LATIN CAPITAL LETTER Y */ - /*2573*/ 0x24e9, 1, 0x24cf, /* CIRCLED LATIN CAPITAL LETTER Z */ - /*2576*/ 0x2c30, 1, 0x2c00, /* GLAGOLITIC CAPITAL LETTER AZU */ - /*2579*/ 0x2c31, 1, 0x2c01, /* GLAGOLITIC CAPITAL LETTER BUKY */ - /*2582*/ 0x2c32, 1, 0x2c02, /* GLAGOLITIC CAPITAL LETTER VEDE */ - /*2585*/ 0x2c33, 1, 0x2c03, /* GLAGOLITIC CAPITAL LETTER GLAGOLI */ - /*2588*/ 0x2c34, 1, 0x2c04, /* GLAGOLITIC CAPITAL LETTER DOBRO */ - /*2591*/ 0x2c35, 1, 0x2c05, /* GLAGOLITIC CAPITAL LETTER YESTU */ - /*2594*/ 0x2c36, 1, 0x2c06, /* GLAGOLITIC CAPITAL LETTER ZHIVETE */ - /*2597*/ 0x2c37, 1, 0x2c07, /* GLAGOLITIC CAPITAL LETTER DZELO */ - /*2600*/ 0x2c38, 1, 0x2c08, /* GLAGOLITIC CAPITAL LETTER ZEMLJA */ - /*2603*/ 0x2c39, 1, 0x2c09, /* GLAGOLITIC CAPITAL LETTER IZHE */ - /*2606*/ 0x2c3a, 1, 0x2c0a, /* GLAGOLITIC CAPITAL LETTER INITIAL.. */ - /*2609*/ 0x2c3b, 1, 0x2c0b, /* GLAGOLITIC CAPITAL LETTER I */ - /*2612*/ 0x2c3c, 1, 0x2c0c, /* GLAGOLITIC CAPITAL LETTER DJERVI */ - /*2615*/ 0x2c3d, 1, 0x2c0d, /* GLAGOLITIC CAPITAL LETTER KAKO */ - /*2618*/ 0x2c3e, 1, 0x2c0e, /* GLAGOLITIC CAPITAL LETTER LJUDIJE */ - /*2621*/ 0x2c3f, 1, 0x2c0f, /* GLAGOLITIC CAPITAL LETTER MYSLITE */ - /*2624*/ 0x2c40, 1, 0x2c10, /* GLAGOLITIC CAPITAL LETTER NASHI */ - /*2627*/ 0x2c41, 1, 0x2c11, /* GLAGOLITIC CAPITAL LETTER ONU */ - /*2630*/ 0x2c42, 1, 0x2c12, /* GLAGOLITIC CAPITAL LETTER POKOJI */ - /*2633*/ 0x2c43, 1, 0x2c13, /* GLAGOLITIC CAPITAL LETTER RITSI */ - /*2636*/ 0x2c44, 1, 0x2c14, /* GLAGOLITIC CAPITAL LETTER SLOVO */ - /*2639*/ 0x2c45, 1, 0x2c15, /* GLAGOLITIC CAPITAL LETTER TVRIDO */ - /*2642*/ 0x2c46, 1, 0x2c16, /* GLAGOLITIC CAPITAL LETTER UKU */ - /*2645*/ 0x2c47, 1, 0x2c17, /* GLAGOLITIC CAPITAL LETTER FRITU */ - /*2648*/ 0x2c48, 1, 0x2c18, /* GLAGOLITIC CAPITAL LETTER HERU */ - /*2651*/ 0x2c49, 1, 0x2c19, /* GLAGOLITIC CAPITAL LETTER OTU */ - /*2654*/ 0x2c4a, 1, 0x2c1a, /* GLAGOLITIC CAPITAL LETTER PE */ - /*2657*/ 0x2c4b, 1, 0x2c1b, /* GLAGOLITIC CAPITAL LETTER SHTA */ - /*2660*/ 0x2c4c, 1, 0x2c1c, /* GLAGOLITIC CAPITAL LETTER TSI */ - /*2663*/ 0x2c4d, 1, 0x2c1d, /* GLAGOLITIC CAPITAL LETTER CHRIVI */ - /*2666*/ 0x2c4e, 1, 0x2c1e, /* GLAGOLITIC CAPITAL LETTER SHA */ - /*2669*/ 0x2c4f, 1, 0x2c1f, /* GLAGOLITIC CAPITAL LETTER YERU */ - /*2672*/ 0x2c50, 1, 0x2c20, /* GLAGOLITIC CAPITAL LETTER YERI */ - /*2675*/ 0x2c51, 1, 0x2c21, /* GLAGOLITIC CAPITAL LETTER YATI */ - /*2678*/ 0x2c52, 1, 0x2c22, /* GLAGOLITIC CAPITAL LETTER SPIDERY.. */ - /*2681*/ 0x2c53, 1, 0x2c23, /* GLAGOLITIC CAPITAL LETTER YU */ - /*2684*/ 0x2c54, 1, 0x2c24, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ - /*2687*/ 0x2c55, 1, 0x2c25, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */ - /*2690*/ 0x2c56, 1, 0x2c26, /* GLAGOLITIC CAPITAL LETTER YO */ - /*2693*/ 0x2c57, 1, 0x2c27, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ - /*2696*/ 0x2c58, 1, 0x2c28, /* GLAGOLITIC CAPITAL LETTER BIG YUS */ - /*2699*/ 0x2c59, 1, 0x2c29, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */ - /*2702*/ 0x2c5a, 1, 0x2c2a, /* GLAGOLITIC CAPITAL LETTER FITA */ - /*2705*/ 0x2c5b, 1, 0x2c2b, /* GLAGOLITIC CAPITAL LETTER IZHITSA */ - /*2708*/ 0x2c5c, 1, 0x2c2c, /* GLAGOLITIC CAPITAL LETTER SHTAPIC */ - /*2711*/ 0x2c5d, 1, 0x2c2d, /* GLAGOLITIC CAPITAL LETTER TROKUTA.. */ - /*2714*/ 0x2c5e, 1, 0x2c2e, /* GLAGOLITIC CAPITAL LETTER LATINAT.. */ - /*2717*/ 0x2c61, 1, 0x2c60, /* LATIN CAPITAL LETTER L WITH DOUBL.. */ - /*2720*/ 0x2c65, 1, 0x023a, /* LATIN CAPITAL LETTER A WITH STROKE */ - /*2723*/ 0x2c66, 1, 0x023e, /* LATIN CAPITAL LETTER T WITH DIAGO.. */ - /*2726*/ 0x2c68, 1, 0x2c67, /* LATIN CAPITAL LETTER H WITH DESCE.. */ - /*2729*/ 0x2c6a, 1, 0x2c69, /* LATIN CAPITAL LETTER K WITH DESCE.. */ - /*2732*/ 0x2c6c, 1, 0x2c6b, /* LATIN CAPITAL LETTER Z WITH DESCE.. */ - /*2735*/ 0x2c73, 1, 0x2c72, /* LATIN CAPITAL LETTER W WITH HOOK */ - /*2738*/ 0x2c76, 1, 0x2c75, /* LATIN CAPITAL LETTER HALF H */ - /*2741*/ 0x2c81, 1, 0x2c80, /* COPTIC CAPITAL LETTER ALFA */ - /*2744*/ 0x2c83, 1, 0x2c82, /* COPTIC CAPITAL LETTER VIDA */ - /*2747*/ 0x2c85, 1, 0x2c84, /* COPTIC CAPITAL LETTER GAMMA */ - /*2750*/ 0x2c87, 1, 0x2c86, /* COPTIC CAPITAL LETTER DALDA */ - /*2753*/ 0x2c89, 1, 0x2c88, /* COPTIC CAPITAL LETTER EIE */ - /*2756*/ 0x2c8b, 1, 0x2c8a, /* COPTIC CAPITAL LETTER SOU */ - /*2759*/ 0x2c8d, 1, 0x2c8c, /* COPTIC CAPITAL LETTER ZATA */ - /*2762*/ 0x2c8f, 1, 0x2c8e, /* COPTIC CAPITAL LETTER HATE */ - /*2765*/ 0x2c91, 1, 0x2c90, /* COPTIC CAPITAL LETTER THETHE */ - /*2768*/ 0x2c93, 1, 0x2c92, /* COPTIC CAPITAL LETTER IAUDA */ - /*2771*/ 0x2c95, 1, 0x2c94, /* COPTIC CAPITAL LETTER KAPA */ - /*2774*/ 0x2c97, 1, 0x2c96, /* COPTIC CAPITAL LETTER LAULA */ - /*2777*/ 0x2c99, 1, 0x2c98, /* COPTIC CAPITAL LETTER MI */ - /*2780*/ 0x2c9b, 1, 0x2c9a, /* COPTIC CAPITAL LETTER NI */ - /*2783*/ 0x2c9d, 1, 0x2c9c, /* COPTIC CAPITAL LETTER KSI */ - /*2786*/ 0x2c9f, 1, 0x2c9e, /* COPTIC CAPITAL LETTER O */ - /*2789*/ 0x2ca1, 1, 0x2ca0, /* COPTIC CAPITAL LETTER PI */ - /*2792*/ 0x2ca3, 1, 0x2ca2, /* COPTIC CAPITAL LETTER RO */ - /*2795*/ 0x2ca5, 1, 0x2ca4, /* COPTIC CAPITAL LETTER SIMA */ - /*2798*/ 0x2ca7, 1, 0x2ca6, /* COPTIC CAPITAL LETTER TAU */ - /*2801*/ 0x2ca9, 1, 0x2ca8, /* COPTIC CAPITAL LETTER UA */ - /*2804*/ 0x2cab, 1, 0x2caa, /* COPTIC CAPITAL LETTER FI */ - /*2807*/ 0x2cad, 1, 0x2cac, /* COPTIC CAPITAL LETTER KHI */ - /*2810*/ 0x2caf, 1, 0x2cae, /* COPTIC CAPITAL LETTER PSI */ - /*2813*/ 0x2cb1, 1, 0x2cb0, /* COPTIC CAPITAL LETTER OOU */ - /*2816*/ 0x2cb3, 1, 0x2cb2, /* COPTIC CAPITAL LETTER DIALECT-P A.. */ - /*2819*/ 0x2cb5, 1, 0x2cb4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2822*/ 0x2cb7, 1, 0x2cb6, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2825*/ 0x2cb9, 1, 0x2cb8, /* COPTIC CAPITAL LETTER DIALECT-P K.. */ - /*2828*/ 0x2cbb, 1, 0x2cba, /* COPTIC CAPITAL LETTER DIALECT-P NI */ - /*2831*/ 0x2cbd, 1, 0x2cbc, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2834*/ 0x2cbf, 1, 0x2cbe, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2837*/ 0x2cc1, 1, 0x2cc0, /* COPTIC CAPITAL LETTER SAMPI */ - /*2840*/ 0x2cc3, 1, 0x2cc2, /* COPTIC CAPITAL LETTER CROSSED SHEI */ - /*2843*/ 0x2cc5, 1, 0x2cc4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2846*/ 0x2cc7, 1, 0x2cc6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2849*/ 0x2cc9, 1, 0x2cc8, /* COPTIC CAPITAL LETTER AKHMIMIC KH.. */ - /*2852*/ 0x2ccb, 1, 0x2cca, /* COPTIC CAPITAL LETTER DIALECT-P H.. */ - /*2855*/ 0x2ccd, 1, 0x2ccc, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2858*/ 0x2ccf, 1, 0x2cce, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2861*/ 0x2cd1, 1, 0x2cd0, /* COPTIC CAPITAL LETTER L-SHAPED HA */ - /*2864*/ 0x2cd3, 1, 0x2cd2, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2867*/ 0x2cd5, 1, 0x2cd4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2870*/ 0x2cd7, 1, 0x2cd6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2873*/ 0x2cd9, 1, 0x2cd8, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2876*/ 0x2cdb, 1, 0x2cda, /* COPTIC CAPITAL LETTER OLD COPTIC .. */ - /*2879*/ 0x2cdd, 1, 0x2cdc, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2882*/ 0x2cdf, 1, 0x2cde, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2885*/ 0x2ce1, 1, 0x2ce0, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2888*/ 0x2ce3, 1, 0x2ce2, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */ - /*2891*/ 0x2cec, 1, 0x2ceb, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2894*/ 0x2cee, 1, 0x2ced, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */ - /*2897*/ 0x2cf3, 1, 0x2cf2, /* COPTIC CAPITAL LETTER BOHAIRIC KH.. */ - /*2900*/ 0x2d00, 1, 0x10a0, /* GEORGIAN CAPITAL LETTER AN */ - /*2903*/ 0x2d01, 1, 0x10a1, /* GEORGIAN CAPITAL LETTER BAN */ - /*2906*/ 0x2d02, 1, 0x10a2, /* GEORGIAN CAPITAL LETTER GAN */ - /*2909*/ 0x2d03, 1, 0x10a3, /* GEORGIAN CAPITAL LETTER DON */ - /*2912*/ 0x2d04, 1, 0x10a4, /* GEORGIAN CAPITAL LETTER EN */ - /*2915*/ 0x2d05, 1, 0x10a5, /* GEORGIAN CAPITAL LETTER VIN */ - /*2918*/ 0x2d06, 1, 0x10a6, /* GEORGIAN CAPITAL LETTER ZEN */ - /*2921*/ 0x2d07, 1, 0x10a7, /* GEORGIAN CAPITAL LETTER TAN */ - /*2924*/ 0x2d08, 1, 0x10a8, /* GEORGIAN CAPITAL LETTER IN */ - /*2927*/ 0x2d09, 1, 0x10a9, /* GEORGIAN CAPITAL LETTER KAN */ - /*2930*/ 0x2d0a, 1, 0x10aa, /* GEORGIAN CAPITAL LETTER LAS */ - /*2933*/ 0x2d0b, 1, 0x10ab, /* GEORGIAN CAPITAL LETTER MAN */ - /*2936*/ 0x2d0c, 1, 0x10ac, /* GEORGIAN CAPITAL LETTER NAR */ - /*2939*/ 0x2d0d, 1, 0x10ad, /* GEORGIAN CAPITAL LETTER ON */ - /*2942*/ 0x2d0e, 1, 0x10ae, /* GEORGIAN CAPITAL LETTER PAR */ - /*2945*/ 0x2d0f, 1, 0x10af, /* GEORGIAN CAPITAL LETTER ZHAR */ - /*2948*/ 0x2d10, 1, 0x10b0, /* GEORGIAN CAPITAL LETTER RAE */ - /*2951*/ 0x2d11, 1, 0x10b1, /* GEORGIAN CAPITAL LETTER SAN */ - /*2954*/ 0x2d12, 1, 0x10b2, /* GEORGIAN CAPITAL LETTER TAR */ - /*2957*/ 0x2d13, 1, 0x10b3, /* GEORGIAN CAPITAL LETTER UN */ - /*2960*/ 0x2d14, 1, 0x10b4, /* GEORGIAN CAPITAL LETTER PHAR */ - /*2963*/ 0x2d15, 1, 0x10b5, /* GEORGIAN CAPITAL LETTER KHAR */ - /*2966*/ 0x2d16, 1, 0x10b6, /* GEORGIAN CAPITAL LETTER GHAN */ - /*2969*/ 0x2d17, 1, 0x10b7, /* GEORGIAN CAPITAL LETTER QAR */ - /*2972*/ 0x2d18, 1, 0x10b8, /* GEORGIAN CAPITAL LETTER SHIN */ - /*2975*/ 0x2d19, 1, 0x10b9, /* GEORGIAN CAPITAL LETTER CHIN */ - /*2978*/ 0x2d1a, 1, 0x10ba, /* GEORGIAN CAPITAL LETTER CAN */ - /*2981*/ 0x2d1b, 1, 0x10bb, /* GEORGIAN CAPITAL LETTER JIL */ - /*2984*/ 0x2d1c, 1, 0x10bc, /* GEORGIAN CAPITAL LETTER CIL */ - /*2987*/ 0x2d1d, 1, 0x10bd, /* GEORGIAN CAPITAL LETTER CHAR */ - /*2990*/ 0x2d1e, 1, 0x10be, /* GEORGIAN CAPITAL LETTER XAN */ - /*2993*/ 0x2d1f, 1, 0x10bf, /* GEORGIAN CAPITAL LETTER JHAN */ - /*2996*/ 0x2d20, 1, 0x10c0, /* GEORGIAN CAPITAL LETTER HAE */ - /*2999*/ 0x2d21, 1, 0x10c1, /* GEORGIAN CAPITAL LETTER HE */ - /*3002*/ 0x2d22, 1, 0x10c2, /* GEORGIAN CAPITAL LETTER HIE */ - /*3005*/ 0x2d23, 1, 0x10c3, /* GEORGIAN CAPITAL LETTER WE */ - /*3008*/ 0x2d24, 1, 0x10c4, /* GEORGIAN CAPITAL LETTER HAR */ - /*3011*/ 0x2d25, 1, 0x10c5, /* GEORGIAN CAPITAL LETTER HOE */ - /*3014*/ 0x2d27, 1, 0x10c7, /* GEORGIAN CAPITAL LETTER YN */ - /*3017*/ 0x2d2d, 1, 0x10cd, /* GEORGIAN CAPITAL LETTER AEN */ - /*3020*/ 0xa641, 1, 0xa640, /* CYRILLIC CAPITAL LETTER ZEMLYA */ - /*3023*/ 0xa643, 1, 0xa642, /* CYRILLIC CAPITAL LETTER DZELO */ - /*3026*/ 0xa645, 1, 0xa644, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*3029*/ 0xa647, 1, 0xa646, /* CYRILLIC CAPITAL LETTER IOTA */ - /*3032*/ 0xa649, 1, 0xa648, /* CYRILLIC CAPITAL LETTER DJERV */ - /*3035*/ 0xa64b, 2, 0x1c88, 0xa64a, /* CYRILLIC SMALL LETTER UNBLENDED UK */ - /*3039*/ 0xa64d, 1, 0xa64c, /* CYRILLIC CAPITAL LETTER BROAD OME.. */ - /*3042*/ 0xa64f, 1, 0xa64e, /* CYRILLIC CAPITAL LETTER NEUTRAL Y.. */ - /*3045*/ 0xa651, 1, 0xa650, /* CYRILLIC CAPITAL LETTER YERU WITH.. */ - /*3048*/ 0xa653, 1, 0xa652, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*3051*/ 0xa655, 1, 0xa654, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*3054*/ 0xa657, 1, 0xa656, /* CYRILLIC CAPITAL LETTER IOTIFIED A */ - /*3057*/ 0xa659, 1, 0xa658, /* CYRILLIC CAPITAL LETTER CLOSED LI.. */ - /*3060*/ 0xa65b, 1, 0xa65a, /* CYRILLIC CAPITAL LETTER BLENDED Y.. */ - /*3063*/ 0xa65d, 1, 0xa65c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */ - /*3066*/ 0xa65f, 1, 0xa65e, /* CYRILLIC CAPITAL LETTER YN */ - /*3069*/ 0xa661, 1, 0xa660, /* CYRILLIC CAPITAL LETTER REVERSED .. */ - /*3072*/ 0xa663, 1, 0xa662, /* CYRILLIC CAPITAL LETTER SOFT DE */ - /*3075*/ 0xa665, 1, 0xa664, /* CYRILLIC CAPITAL LETTER SOFT EL */ - /*3078*/ 0xa667, 1, 0xa666, /* CYRILLIC CAPITAL LETTER SOFT EM */ - /*3081*/ 0xa669, 1, 0xa668, /* CYRILLIC CAPITAL LETTER MONOCULAR.. */ - /*3084*/ 0xa66b, 1, 0xa66a, /* CYRILLIC CAPITAL LETTER BINOCULAR.. */ - /*3087*/ 0xa66d, 1, 0xa66c, /* CYRILLIC CAPITAL LETTER DOUBLE MO.. */ - /*3090*/ 0xa681, 1, 0xa680, /* CYRILLIC CAPITAL LETTER DWE */ - /*3093*/ 0xa683, 1, 0xa682, /* CYRILLIC CAPITAL LETTER DZWE */ - /*3096*/ 0xa685, 1, 0xa684, /* CYRILLIC CAPITAL LETTER ZHWE */ - /*3099*/ 0xa687, 1, 0xa686, /* CYRILLIC CAPITAL LETTER CCHE */ - /*3102*/ 0xa689, 1, 0xa688, /* CYRILLIC CAPITAL LETTER DZZE */ - /*3105*/ 0xa68b, 1, 0xa68a, /* CYRILLIC CAPITAL LETTER TE WITH M.. */ - /*3108*/ 0xa68d, 1, 0xa68c, /* CYRILLIC CAPITAL LETTER TWE */ - /*3111*/ 0xa68f, 1, 0xa68e, /* CYRILLIC CAPITAL LETTER TSWE */ - /*3114*/ 0xa691, 1, 0xa690, /* CYRILLIC CAPITAL LETTER TSSE */ - /*3117*/ 0xa693, 1, 0xa692, /* CYRILLIC CAPITAL LETTER TCHE */ - /*3120*/ 0xa695, 1, 0xa694, /* CYRILLIC CAPITAL LETTER HWE */ - /*3123*/ 0xa697, 1, 0xa696, /* CYRILLIC CAPITAL LETTER SHWE */ - /*3126*/ 0xa699, 1, 0xa698, /* CYRILLIC CAPITAL LETTER DOUBLE O */ - /*3129*/ 0xa69b, 1, 0xa69a, /* CYRILLIC CAPITAL LETTER CROSSED O */ - /*3132*/ 0xa723, 1, 0xa722, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ - /*3135*/ 0xa725, 1, 0xa724, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */ - /*3138*/ 0xa727, 1, 0xa726, /* LATIN CAPITAL LETTER HENG */ - /*3141*/ 0xa729, 1, 0xa728, /* LATIN CAPITAL LETTER TZ */ - /*3144*/ 0xa72b, 1, 0xa72a, /* LATIN CAPITAL LETTER TRESILLO */ - /*3147*/ 0xa72d, 1, 0xa72c, /* LATIN CAPITAL LETTER CUATRILLO */ - /*3150*/ 0xa72f, 1, 0xa72e, /* LATIN CAPITAL LETTER CUATRILLO WI.. */ - /*3153*/ 0xa733, 1, 0xa732, /* LATIN CAPITAL LETTER AA */ - /*3156*/ 0xa735, 1, 0xa734, /* LATIN CAPITAL LETTER AO */ - /*3159*/ 0xa737, 1, 0xa736, /* LATIN CAPITAL LETTER AU */ - /*3162*/ 0xa739, 1, 0xa738, /* LATIN CAPITAL LETTER AV */ - /*3165*/ 0xa73b, 1, 0xa73a, /* LATIN CAPITAL LETTER AV WITH HORI.. */ - /*3168*/ 0xa73d, 1, 0xa73c, /* LATIN CAPITAL LETTER AY */ - /*3171*/ 0xa73f, 1, 0xa73e, /* LATIN CAPITAL LETTER REVERSED C W.. */ - /*3174*/ 0xa741, 1, 0xa740, /* LATIN CAPITAL LETTER K WITH STROKE */ - /*3177*/ 0xa743, 1, 0xa742, /* LATIN CAPITAL LETTER K WITH DIAGO.. */ - /*3180*/ 0xa745, 1, 0xa744, /* LATIN CAPITAL LETTER K WITH STROK.. */ - /*3183*/ 0xa747, 1, 0xa746, /* LATIN CAPITAL LETTER BROKEN L */ - /*3186*/ 0xa749, 1, 0xa748, /* LATIN CAPITAL LETTER L WITH HIGH .. */ - /*3189*/ 0xa74b, 1, 0xa74a, /* LATIN CAPITAL LETTER O WITH LONG .. */ - /*3192*/ 0xa74d, 1, 0xa74c, /* LATIN CAPITAL LETTER O WITH LOOP */ - /*3195*/ 0xa74f, 1, 0xa74e, /* LATIN CAPITAL LETTER OO */ - /*3198*/ 0xa751, 1, 0xa750, /* LATIN CAPITAL LETTER P WITH STROK.. */ - /*3201*/ 0xa753, 1, 0xa752, /* LATIN CAPITAL LETTER P WITH FLOUR.. */ - /*3204*/ 0xa755, 1, 0xa754, /* LATIN CAPITAL LETTER P WITH SQUIR.. */ - /*3207*/ 0xa757, 1, 0xa756, /* LATIN CAPITAL LETTER Q WITH STROK.. */ - /*3210*/ 0xa759, 1, 0xa758, /* LATIN CAPITAL LETTER Q WITH DIAGO.. */ - /*3213*/ 0xa75b, 1, 0xa75a, /* LATIN CAPITAL LETTER R ROTUNDA */ - /*3216*/ 0xa75d, 1, 0xa75c, /* LATIN CAPITAL LETTER RUM ROTUNDA */ - /*3219*/ 0xa75f, 1, 0xa75e, /* LATIN CAPITAL LETTER V WITH DIAGO.. */ - /*3222*/ 0xa761, 1, 0xa760, /* LATIN CAPITAL LETTER VY */ - /*3225*/ 0xa763, 1, 0xa762, /* LATIN CAPITAL LETTER VISIGOTHIC Z */ - /*3228*/ 0xa765, 1, 0xa764, /* LATIN CAPITAL LETTER THORN WITH S.. */ - /*3231*/ 0xa767, 1, 0xa766, /* LATIN CAPITAL LETTER THORN WITH S.. */ - /*3234*/ 0xa769, 1, 0xa768, /* LATIN CAPITAL LETTER VEND */ - /*3237*/ 0xa76b, 1, 0xa76a, /* LATIN CAPITAL LETTER ET */ - /*3240*/ 0xa76d, 1, 0xa76c, /* LATIN CAPITAL LETTER IS */ - /*3243*/ 0xa76f, 1, 0xa76e, /* LATIN CAPITAL LETTER CON */ - /*3246*/ 0xa77a, 1, 0xa779, /* LATIN CAPITAL LETTER INSULAR D */ - /*3249*/ 0xa77c, 1, 0xa77b, /* LATIN CAPITAL LETTER INSULAR F */ - /*3252*/ 0xa77f, 1, 0xa77e, /* LATIN CAPITAL LETTER TURNED INSUL.. */ - /*3255*/ 0xa781, 1, 0xa780, /* LATIN CAPITAL LETTER TURNED L */ - /*3258*/ 0xa783, 1, 0xa782, /* LATIN CAPITAL LETTER INSULAR R */ - /*3261*/ 0xa785, 1, 0xa784, /* LATIN CAPITAL LETTER INSULAR S */ - /*3264*/ 0xa787, 1, 0xa786, /* LATIN CAPITAL LETTER INSULAR T */ - /*3267*/ 0xa78c, 1, 0xa78b, /* LATIN CAPITAL LETTER SALTILLO */ - /*3270*/ 0xa791, 1, 0xa790, /* LATIN CAPITAL LETTER N WITH DESCE.. */ - /*3273*/ 0xa793, 1, 0xa792, /* LATIN CAPITAL LETTER C WITH BAR */ - /*3276*/ 0xa794, 1, 0xa7c4, /* LATIN CAPITAL LETTER C WITH PALAT.. */ - /*3279*/ 0xa797, 1, 0xa796, /* LATIN CAPITAL LETTER B WITH FLOUR.. */ - /*3282*/ 0xa799, 1, 0xa798, /* LATIN CAPITAL LETTER F WITH STROKE */ - /*3285*/ 0xa79b, 1, 0xa79a, /* LATIN CAPITAL LETTER VOLAPUK AE */ - /*3288*/ 0xa79d, 1, 0xa79c, /* LATIN CAPITAL LETTER VOLAPUK OE */ - /*3291*/ 0xa79f, 1, 0xa79e, /* LATIN CAPITAL LETTER VOLAPUK UE */ - /*3294*/ 0xa7a1, 1, 0xa7a0, /* LATIN CAPITAL LETTER G WITH OBLIQ.. */ - /*3297*/ 0xa7a3, 1, 0xa7a2, /* LATIN CAPITAL LETTER K WITH OBLIQ.. */ - /*3300*/ 0xa7a5, 1, 0xa7a4, /* LATIN CAPITAL LETTER N WITH OBLIQ.. */ - /*3303*/ 0xa7a7, 1, 0xa7a6, /* LATIN CAPITAL LETTER R WITH OBLIQ.. */ - /*3306*/ 0xa7a9, 1, 0xa7a8, /* LATIN CAPITAL LETTER S WITH OBLIQ.. */ - /*3309*/ 0xa7b5, 1, 0xa7b4, /* LATIN CAPITAL LETTER BETA */ - /*3312*/ 0xa7b7, 1, 0xa7b6, /* LATIN CAPITAL LETTER OMEGA */ - /*3315*/ 0xa7b9, 1, 0xa7b8, /* LATIN CAPITAL LETTER U WITH STROKE */ - /*3318*/ 0xa7bb, 1, 0xa7ba, /* LATIN CAPITAL LETTER GLOTTAL A */ - /*3321*/ 0xa7bd, 1, 0xa7bc, /* LATIN CAPITAL LETTER GLOTTAL I */ - /*3324*/ 0xa7bf, 1, 0xa7be, /* LATIN CAPITAL LETTER GLOTTAL U */ - /*3327*/ 0xa7c3, 1, 0xa7c2, /* LATIN CAPITAL LETTER ANGLICANA W */ - /*3330*/ 0xab53, 1, 0xa7b3, /* LATIN CAPITAL LETTER CHI */ - /*3333*/ 0xff41, 1, 0xff21, /* FULLWIDTH LATIN CAPITAL LETTER A */ - /*3336*/ 0xff42, 1, 0xff22, /* FULLWIDTH LATIN CAPITAL LETTER B */ - /*3339*/ 0xff43, 1, 0xff23, /* FULLWIDTH LATIN CAPITAL LETTER C */ - /*3342*/ 0xff44, 1, 0xff24, /* FULLWIDTH LATIN CAPITAL LETTER D */ - /*3345*/ 0xff45, 1, 0xff25, /* FULLWIDTH LATIN CAPITAL LETTER E */ - /*3348*/ 0xff46, 1, 0xff26, /* FULLWIDTH LATIN CAPITAL LETTER F */ - /*3351*/ 0xff47, 1, 0xff27, /* FULLWIDTH LATIN CAPITAL LETTER G */ - /*3354*/ 0xff48, 1, 0xff28, /* FULLWIDTH LATIN CAPITAL LETTER H */ - /*3357*/ 0xff49, 1, 0xff29, /* FULLWIDTH LATIN CAPITAL LETTER I */ - /*3360*/ 0xff4a, 1, 0xff2a, /* FULLWIDTH LATIN CAPITAL LETTER J */ - /*3363*/ 0xff4b, 1, 0xff2b, /* FULLWIDTH LATIN CAPITAL LETTER K */ - /*3366*/ 0xff4c, 1, 0xff2c, /* FULLWIDTH LATIN CAPITAL LETTER L */ - /*3369*/ 0xff4d, 1, 0xff2d, /* FULLWIDTH LATIN CAPITAL LETTER M */ - /*3372*/ 0xff4e, 1, 0xff2e, /* FULLWIDTH LATIN CAPITAL LETTER N */ - /*3375*/ 0xff4f, 1, 0xff2f, /* FULLWIDTH LATIN CAPITAL LETTER O */ - /*3378*/ 0xff50, 1, 0xff30, /* FULLWIDTH LATIN CAPITAL LETTER P */ - /*3381*/ 0xff51, 1, 0xff31, /* FULLWIDTH LATIN CAPITAL LETTER Q */ - /*3384*/ 0xff52, 1, 0xff32, /* FULLWIDTH LATIN CAPITAL LETTER R */ - /*3387*/ 0xff53, 1, 0xff33, /* FULLWIDTH LATIN CAPITAL LETTER S */ - /*3390*/ 0xff54, 1, 0xff34, /* FULLWIDTH LATIN CAPITAL LETTER T */ - /*3393*/ 0xff55, 1, 0xff35, /* FULLWIDTH LATIN CAPITAL LETTER U */ - /*3396*/ 0xff56, 1, 0xff36, /* FULLWIDTH LATIN CAPITAL LETTER V */ - /*3399*/ 0xff57, 1, 0xff37, /* FULLWIDTH LATIN CAPITAL LETTER W */ - /*3402*/ 0xff58, 1, 0xff38, /* FULLWIDTH LATIN CAPITAL LETTER X */ - /*3405*/ 0xff59, 1, 0xff39, /* FULLWIDTH LATIN CAPITAL LETTER Y */ - /*3408*/ 0xff5a, 1, 0xff3a, /* FULLWIDTH LATIN CAPITAL LETTER Z */ - /*3411*/ 0x010428, 1, 0x010400, /* DESERET CAPITAL LETTER LONG I */ - /*3414*/ 0x010429, 1, 0x010401, /* DESERET CAPITAL LETTER LONG E */ - /*3417*/ 0x01042a, 1, 0x010402, /* DESERET CAPITAL LETTER LONG A */ - /*3420*/ 0x01042b, 1, 0x010403, /* DESERET CAPITAL LETTER LONG AH */ - /*3423*/ 0x01042c, 1, 0x010404, /* DESERET CAPITAL LETTER LONG O */ - /*3426*/ 0x01042d, 1, 0x010405, /* DESERET CAPITAL LETTER LONG OO */ - /*3429*/ 0x01042e, 1, 0x010406, /* DESERET CAPITAL LETTER SHORT I */ - /*3432*/ 0x01042f, 1, 0x010407, /* DESERET CAPITAL LETTER SHORT E */ - /*3435*/ 0x010430, 1, 0x010408, /* DESERET CAPITAL LETTER SHORT A */ - /*3438*/ 0x010431, 1, 0x010409, /* DESERET CAPITAL LETTER SHORT AH */ - /*3441*/ 0x010432, 1, 0x01040a, /* DESERET CAPITAL LETTER SHORT O */ - /*3444*/ 0x010433, 1, 0x01040b, /* DESERET CAPITAL LETTER SHORT OO */ - /*3447*/ 0x010434, 1, 0x01040c, /* DESERET CAPITAL LETTER AY */ - /*3450*/ 0x010435, 1, 0x01040d, /* DESERET CAPITAL LETTER OW */ - /*3453*/ 0x010436, 1, 0x01040e, /* DESERET CAPITAL LETTER WU */ - /*3456*/ 0x010437, 1, 0x01040f, /* DESERET CAPITAL LETTER YEE */ - /*3459*/ 0x010438, 1, 0x010410, /* DESERET CAPITAL LETTER H */ - /*3462*/ 0x010439, 1, 0x010411, /* DESERET CAPITAL LETTER PEE */ - /*3465*/ 0x01043a, 1, 0x010412, /* DESERET CAPITAL LETTER BEE */ - /*3468*/ 0x01043b, 1, 0x010413, /* DESERET CAPITAL LETTER TEE */ - /*3471*/ 0x01043c, 1, 0x010414, /* DESERET CAPITAL LETTER DEE */ - /*3474*/ 0x01043d, 1, 0x010415, /* DESERET CAPITAL LETTER CHEE */ - /*3477*/ 0x01043e, 1, 0x010416, /* DESERET CAPITAL LETTER JEE */ - /*3480*/ 0x01043f, 1, 0x010417, /* DESERET CAPITAL LETTER KAY */ - /*3483*/ 0x010440, 1, 0x010418, /* DESERET CAPITAL LETTER GAY */ - /*3486*/ 0x010441, 1, 0x010419, /* DESERET CAPITAL LETTER EF */ - /*3489*/ 0x010442, 1, 0x01041a, /* DESERET CAPITAL LETTER VEE */ - /*3492*/ 0x010443, 1, 0x01041b, /* DESERET CAPITAL LETTER ETH */ - /*3495*/ 0x010444, 1, 0x01041c, /* DESERET CAPITAL LETTER THEE */ - /*3498*/ 0x010445, 1, 0x01041d, /* DESERET CAPITAL LETTER ES */ - /*3501*/ 0x010446, 1, 0x01041e, /* DESERET CAPITAL LETTER ZEE */ - /*3504*/ 0x010447, 1, 0x01041f, /* DESERET CAPITAL LETTER ESH */ - /*3507*/ 0x010448, 1, 0x010420, /* DESERET CAPITAL LETTER ZHEE */ - /*3510*/ 0x010449, 1, 0x010421, /* DESERET CAPITAL LETTER ER */ - /*3513*/ 0x01044a, 1, 0x010422, /* DESERET CAPITAL LETTER EL */ - /*3516*/ 0x01044b, 1, 0x010423, /* DESERET CAPITAL LETTER EM */ - /*3519*/ 0x01044c, 1, 0x010424, /* DESERET CAPITAL LETTER EN */ - /*3522*/ 0x01044d, 1, 0x010425, /* DESERET CAPITAL LETTER ENG */ - /*3525*/ 0x01044e, 1, 0x010426, /* DESERET CAPITAL LETTER OI */ - /*3528*/ 0x01044f, 1, 0x010427, /* DESERET CAPITAL LETTER EW */ - /*3531*/ 0x0104d8, 1, 0x0104b0, /* OSAGE CAPITAL LETTER A */ - /*3534*/ 0x0104d9, 1, 0x0104b1, /* OSAGE CAPITAL LETTER AI */ - /*3537*/ 0x0104da, 1, 0x0104b2, /* OSAGE CAPITAL LETTER AIN */ - /*3540*/ 0x0104db, 1, 0x0104b3, /* OSAGE CAPITAL LETTER AH */ - /*3543*/ 0x0104dc, 1, 0x0104b4, /* OSAGE CAPITAL LETTER BRA */ - /*3546*/ 0x0104dd, 1, 0x0104b5, /* OSAGE CAPITAL LETTER CHA */ - /*3549*/ 0x0104de, 1, 0x0104b6, /* OSAGE CAPITAL LETTER EHCHA */ - /*3552*/ 0x0104df, 1, 0x0104b7, /* OSAGE CAPITAL LETTER E */ - /*3555*/ 0x0104e0, 1, 0x0104b8, /* OSAGE CAPITAL LETTER EIN */ - /*3558*/ 0x0104e1, 1, 0x0104b9, /* OSAGE CAPITAL LETTER HA */ - /*3561*/ 0x0104e2, 1, 0x0104ba, /* OSAGE CAPITAL LETTER HYA */ - /*3564*/ 0x0104e3, 1, 0x0104bb, /* OSAGE CAPITAL LETTER I */ - /*3567*/ 0x0104e4, 1, 0x0104bc, /* OSAGE CAPITAL LETTER KA */ - /*3570*/ 0x0104e5, 1, 0x0104bd, /* OSAGE CAPITAL LETTER EHKA */ - /*3573*/ 0x0104e6, 1, 0x0104be, /* OSAGE CAPITAL LETTER KYA */ - /*3576*/ 0x0104e7, 1, 0x0104bf, /* OSAGE CAPITAL LETTER LA */ - /*3579*/ 0x0104e8, 1, 0x0104c0, /* OSAGE CAPITAL LETTER MA */ - /*3582*/ 0x0104e9, 1, 0x0104c1, /* OSAGE CAPITAL LETTER NA */ - /*3585*/ 0x0104ea, 1, 0x0104c2, /* OSAGE CAPITAL LETTER O */ - /*3588*/ 0x0104eb, 1, 0x0104c3, /* OSAGE CAPITAL LETTER OIN */ - /*3591*/ 0x0104ec, 1, 0x0104c4, /* OSAGE CAPITAL LETTER PA */ - /*3594*/ 0x0104ed, 1, 0x0104c5, /* OSAGE CAPITAL LETTER EHPA */ - /*3597*/ 0x0104ee, 1, 0x0104c6, /* OSAGE CAPITAL LETTER SA */ - /*3600*/ 0x0104ef, 1, 0x0104c7, /* OSAGE CAPITAL LETTER SHA */ - /*3603*/ 0x0104f0, 1, 0x0104c8, /* OSAGE CAPITAL LETTER TA */ - /*3606*/ 0x0104f1, 1, 0x0104c9, /* OSAGE CAPITAL LETTER EHTA */ - /*3609*/ 0x0104f2, 1, 0x0104ca, /* OSAGE CAPITAL LETTER TSA */ - /*3612*/ 0x0104f3, 1, 0x0104cb, /* OSAGE CAPITAL LETTER EHTSA */ - /*3615*/ 0x0104f4, 1, 0x0104cc, /* OSAGE CAPITAL LETTER TSHA */ - /*3618*/ 0x0104f5, 1, 0x0104cd, /* OSAGE CAPITAL LETTER DHA */ - /*3621*/ 0x0104f6, 1, 0x0104ce, /* OSAGE CAPITAL LETTER U */ - /*3624*/ 0x0104f7, 1, 0x0104cf, /* OSAGE CAPITAL LETTER WA */ - /*3627*/ 0x0104f8, 1, 0x0104d0, /* OSAGE CAPITAL LETTER KHA */ - /*3630*/ 0x0104f9, 1, 0x0104d1, /* OSAGE CAPITAL LETTER GHA */ - /*3633*/ 0x0104fa, 1, 0x0104d2, /* OSAGE CAPITAL LETTER ZA */ - /*3636*/ 0x0104fb, 1, 0x0104d3, /* OSAGE CAPITAL LETTER ZHA */ - /*3639*/ 0x010cc0, 1, 0x010c80, /* OLD HUNGARIAN CAPITAL LETTER A */ - /*3642*/ 0x010cc1, 1, 0x010c81, /* OLD HUNGARIAN CAPITAL LETTER AA */ - /*3645*/ 0x010cc2, 1, 0x010c82, /* OLD HUNGARIAN CAPITAL LETTER EB */ - /*3648*/ 0x010cc3, 1, 0x010c83, /* OLD HUNGARIAN CAPITAL LETTER AMB */ - /*3651*/ 0x010cc4, 1, 0x010c84, /* OLD HUNGARIAN CAPITAL LETTER EC */ - /*3654*/ 0x010cc5, 1, 0x010c85, /* OLD HUNGARIAN CAPITAL LETTER ENC */ - /*3657*/ 0x010cc6, 1, 0x010c86, /* OLD HUNGARIAN CAPITAL LETTER ECS */ - /*3660*/ 0x010cc7, 1, 0x010c87, /* OLD HUNGARIAN CAPITAL LETTER ED */ - /*3663*/ 0x010cc8, 1, 0x010c88, /* OLD HUNGARIAN CAPITAL LETTER AND */ - /*3666*/ 0x010cc9, 1, 0x010c89, /* OLD HUNGARIAN CAPITAL LETTER E */ - /*3669*/ 0x010cca, 1, 0x010c8a, /* OLD HUNGARIAN CAPITAL LETTER CLOS.. */ - /*3672*/ 0x010ccb, 1, 0x010c8b, /* OLD HUNGARIAN CAPITAL LETTER EE */ - /*3675*/ 0x010ccc, 1, 0x010c8c, /* OLD HUNGARIAN CAPITAL LETTER EF */ - /*3678*/ 0x010ccd, 1, 0x010c8d, /* OLD HUNGARIAN CAPITAL LETTER EG */ - /*3681*/ 0x010cce, 1, 0x010c8e, /* OLD HUNGARIAN CAPITAL LETTER EGY */ - /*3684*/ 0x010ccf, 1, 0x010c8f, /* OLD HUNGARIAN CAPITAL LETTER EH */ - /*3687*/ 0x010cd0, 1, 0x010c90, /* OLD HUNGARIAN CAPITAL LETTER I */ - /*3690*/ 0x010cd1, 1, 0x010c91, /* OLD HUNGARIAN CAPITAL LETTER II */ - /*3693*/ 0x010cd2, 1, 0x010c92, /* OLD HUNGARIAN CAPITAL LETTER EJ */ - /*3696*/ 0x010cd3, 1, 0x010c93, /* OLD HUNGARIAN CAPITAL LETTER EK */ - /*3699*/ 0x010cd4, 1, 0x010c94, /* OLD HUNGARIAN CAPITAL LETTER AK */ - /*3702*/ 0x010cd5, 1, 0x010c95, /* OLD HUNGARIAN CAPITAL LETTER UNK */ - /*3705*/ 0x010cd6, 1, 0x010c96, /* OLD HUNGARIAN CAPITAL LETTER EL */ - /*3708*/ 0x010cd7, 1, 0x010c97, /* OLD HUNGARIAN CAPITAL LETTER ELY */ - /*3711*/ 0x010cd8, 1, 0x010c98, /* OLD HUNGARIAN CAPITAL LETTER EM */ - /*3714*/ 0x010cd9, 1, 0x010c99, /* OLD HUNGARIAN CAPITAL LETTER EN */ - /*3717*/ 0x010cda, 1, 0x010c9a, /* OLD HUNGARIAN CAPITAL LETTER ENY */ - /*3720*/ 0x010cdb, 1, 0x010c9b, /* OLD HUNGARIAN CAPITAL LETTER O */ - /*3723*/ 0x010cdc, 1, 0x010c9c, /* OLD HUNGARIAN CAPITAL LETTER OO */ - /*3726*/ 0x010cdd, 1, 0x010c9d, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ - /*3729*/ 0x010cde, 1, 0x010c9e, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ - /*3732*/ 0x010cdf, 1, 0x010c9f, /* OLD HUNGARIAN CAPITAL LETTER OEE */ - /*3735*/ 0x010ce0, 1, 0x010ca0, /* OLD HUNGARIAN CAPITAL LETTER EP */ - /*3738*/ 0x010ce1, 1, 0x010ca1, /* OLD HUNGARIAN CAPITAL LETTER EMP */ - /*3741*/ 0x010ce2, 1, 0x010ca2, /* OLD HUNGARIAN CAPITAL LETTER ER */ - /*3744*/ 0x010ce3, 1, 0x010ca3, /* OLD HUNGARIAN CAPITAL LETTER SHOR.. */ - /*3747*/ 0x010ce4, 1, 0x010ca4, /* OLD HUNGARIAN CAPITAL LETTER ES */ - /*3750*/ 0x010ce5, 1, 0x010ca5, /* OLD HUNGARIAN CAPITAL LETTER ESZ */ - /*3753*/ 0x010ce6, 1, 0x010ca6, /* OLD HUNGARIAN CAPITAL LETTER ET */ - /*3756*/ 0x010ce7, 1, 0x010ca7, /* OLD HUNGARIAN CAPITAL LETTER ENT */ - /*3759*/ 0x010ce8, 1, 0x010ca8, /* OLD HUNGARIAN CAPITAL LETTER ETY */ - /*3762*/ 0x010ce9, 1, 0x010ca9, /* OLD HUNGARIAN CAPITAL LETTER ECH */ - /*3765*/ 0x010cea, 1, 0x010caa, /* OLD HUNGARIAN CAPITAL LETTER U */ - /*3768*/ 0x010ceb, 1, 0x010cab, /* OLD HUNGARIAN CAPITAL LETTER UU */ - /*3771*/ 0x010cec, 1, 0x010cac, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */ - /*3774*/ 0x010ced, 1, 0x010cad, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */ - /*3777*/ 0x010cee, 1, 0x010cae, /* OLD HUNGARIAN CAPITAL LETTER EV */ - /*3780*/ 0x010cef, 1, 0x010caf, /* OLD HUNGARIAN CAPITAL LETTER EZ */ - /*3783*/ 0x010cf0, 1, 0x010cb0, /* OLD HUNGARIAN CAPITAL LETTER EZS */ - /*3786*/ 0x010cf1, 1, 0x010cb1, /* OLD HUNGARIAN CAPITAL LETTER ENT-.. */ - /*3789*/ 0x010cf2, 1, 0x010cb2, /* OLD HUNGARIAN CAPITAL LETTER US */ - /*3792*/ 0x0118c0, 1, 0x0118a0, /* WARANG CITI CAPITAL LETTER NGAA */ - /*3795*/ 0x0118c1, 1, 0x0118a1, /* WARANG CITI CAPITAL LETTER A */ - /*3798*/ 0x0118c2, 1, 0x0118a2, /* WARANG CITI CAPITAL LETTER WI */ - /*3801*/ 0x0118c3, 1, 0x0118a3, /* WARANG CITI CAPITAL LETTER YU */ - /*3804*/ 0x0118c4, 1, 0x0118a4, /* WARANG CITI CAPITAL LETTER YA */ - /*3807*/ 0x0118c5, 1, 0x0118a5, /* WARANG CITI CAPITAL LETTER YO */ - /*3810*/ 0x0118c6, 1, 0x0118a6, /* WARANG CITI CAPITAL LETTER II */ - /*3813*/ 0x0118c7, 1, 0x0118a7, /* WARANG CITI CAPITAL LETTER UU */ - /*3816*/ 0x0118c8, 1, 0x0118a8, /* WARANG CITI CAPITAL LETTER E */ - /*3819*/ 0x0118c9, 1, 0x0118a9, /* WARANG CITI CAPITAL LETTER O */ - /*3822*/ 0x0118ca, 1, 0x0118aa, /* WARANG CITI CAPITAL LETTER ANG */ - /*3825*/ 0x0118cb, 1, 0x0118ab, /* WARANG CITI CAPITAL LETTER GA */ - /*3828*/ 0x0118cc, 1, 0x0118ac, /* WARANG CITI CAPITAL LETTER KO */ - /*3831*/ 0x0118cd, 1, 0x0118ad, /* WARANG CITI CAPITAL LETTER ENY */ - /*3834*/ 0x0118ce, 1, 0x0118ae, /* WARANG CITI CAPITAL LETTER YUJ */ - /*3837*/ 0x0118cf, 1, 0x0118af, /* WARANG CITI CAPITAL LETTER UC */ - /*3840*/ 0x0118d0, 1, 0x0118b0, /* WARANG CITI CAPITAL LETTER ENN */ - /*3843*/ 0x0118d1, 1, 0x0118b1, /* WARANG CITI CAPITAL LETTER ODD */ - /*3846*/ 0x0118d2, 1, 0x0118b2, /* WARANG CITI CAPITAL LETTER TTE */ - /*3849*/ 0x0118d3, 1, 0x0118b3, /* WARANG CITI CAPITAL LETTER NUNG */ - /*3852*/ 0x0118d4, 1, 0x0118b4, /* WARANG CITI CAPITAL LETTER DA */ - /*3855*/ 0x0118d5, 1, 0x0118b5, /* WARANG CITI CAPITAL LETTER AT */ - /*3858*/ 0x0118d6, 1, 0x0118b6, /* WARANG CITI CAPITAL LETTER AM */ - /*3861*/ 0x0118d7, 1, 0x0118b7, /* WARANG CITI CAPITAL LETTER BU */ - /*3864*/ 0x0118d8, 1, 0x0118b8, /* WARANG CITI CAPITAL LETTER PU */ - /*3867*/ 0x0118d9, 1, 0x0118b9, /* WARANG CITI CAPITAL LETTER HIYO */ - /*3870*/ 0x0118da, 1, 0x0118ba, /* WARANG CITI CAPITAL LETTER HOLO */ - /*3873*/ 0x0118db, 1, 0x0118bb, /* WARANG CITI CAPITAL LETTER HORR */ - /*3876*/ 0x0118dc, 1, 0x0118bc, /* WARANG CITI CAPITAL LETTER HAR */ - /*3879*/ 0x0118dd, 1, 0x0118bd, /* WARANG CITI CAPITAL LETTER SSUU */ - /*3882*/ 0x0118de, 1, 0x0118be, /* WARANG CITI CAPITAL LETTER SII */ - /*3885*/ 0x0118df, 1, 0x0118bf, /* WARANG CITI CAPITAL LETTER VIYO */ - /*3888*/ 0x016e60, 1, 0x016e40, /* MEDEFAIDRIN CAPITAL LETTER M */ - /*3891*/ 0x016e61, 1, 0x016e41, /* MEDEFAIDRIN CAPITAL LETTER S */ - /*3894*/ 0x016e62, 1, 0x016e42, /* MEDEFAIDRIN CAPITAL LETTER V */ - /*3897*/ 0x016e63, 1, 0x016e43, /* MEDEFAIDRIN CAPITAL LETTER W */ - /*3900*/ 0x016e64, 1, 0x016e44, /* MEDEFAIDRIN CAPITAL LETTER ATIU */ - /*3903*/ 0x016e65, 1, 0x016e45, /* MEDEFAIDRIN CAPITAL LETTER Z */ - /*3906*/ 0x016e66, 1, 0x016e46, /* MEDEFAIDRIN CAPITAL LETTER KP */ - /*3909*/ 0x016e67, 1, 0x016e47, /* MEDEFAIDRIN CAPITAL LETTER P */ - /*3912*/ 0x016e68, 1, 0x016e48, /* MEDEFAIDRIN CAPITAL LETTER T */ - /*3915*/ 0x016e69, 1, 0x016e49, /* MEDEFAIDRIN CAPITAL LETTER G */ - /*3918*/ 0x016e6a, 1, 0x016e4a, /* MEDEFAIDRIN CAPITAL LETTER F */ - /*3921*/ 0x016e6b, 1, 0x016e4b, /* MEDEFAIDRIN CAPITAL LETTER I */ - /*3924*/ 0x016e6c, 1, 0x016e4c, /* MEDEFAIDRIN CAPITAL LETTER K */ - /*3927*/ 0x016e6d, 1, 0x016e4d, /* MEDEFAIDRIN CAPITAL LETTER A */ - /*3930*/ 0x016e6e, 1, 0x016e4e, /* MEDEFAIDRIN CAPITAL LETTER J */ - /*3933*/ 0x016e6f, 1, 0x016e4f, /* MEDEFAIDRIN CAPITAL LETTER E */ - /*3936*/ 0x016e70, 1, 0x016e50, /* MEDEFAIDRIN CAPITAL LETTER B */ - /*3939*/ 0x016e71, 1, 0x016e51, /* MEDEFAIDRIN CAPITAL LETTER C */ - /*3942*/ 0x016e72, 1, 0x016e52, /* MEDEFAIDRIN CAPITAL LETTER U */ - /*3945*/ 0x016e73, 1, 0x016e53, /* MEDEFAIDRIN CAPITAL LETTER YU */ - /*3948*/ 0x016e74, 1, 0x016e54, /* MEDEFAIDRIN CAPITAL LETTER L */ - /*3951*/ 0x016e75, 1, 0x016e55, /* MEDEFAIDRIN CAPITAL LETTER Q */ - /*3954*/ 0x016e76, 1, 0x016e56, /* MEDEFAIDRIN CAPITAL LETTER HP */ - /*3957*/ 0x016e77, 1, 0x016e57, /* MEDEFAIDRIN CAPITAL LETTER NY */ - /*3960*/ 0x016e78, 1, 0x016e58, /* MEDEFAIDRIN CAPITAL LETTER X */ - /*3963*/ 0x016e79, 1, 0x016e59, /* MEDEFAIDRIN CAPITAL LETTER D */ - /*3966*/ 0x016e7a, 1, 0x016e5a, /* MEDEFAIDRIN CAPITAL LETTER OE */ - /*3969*/ 0x016e7b, 1, 0x016e5b, /* MEDEFAIDRIN CAPITAL LETTER N */ - /*3972*/ 0x016e7c, 1, 0x016e5c, /* MEDEFAIDRIN CAPITAL LETTER R */ - /*3975*/ 0x016e7d, 1, 0x016e5d, /* MEDEFAIDRIN CAPITAL LETTER O */ - /*3978*/ 0x016e7e, 1, 0x016e5e, /* MEDEFAIDRIN CAPITAL LETTER AI */ - /*3981*/ 0x016e7f, 1, 0x016e5f, /* MEDEFAIDRIN CAPITAL LETTER Y */ - /*3984*/ 0x01e922, 1, 0x01e900, /* ADLAM CAPITAL LETTER ALIF */ - /*3987*/ 0x01e923, 1, 0x01e901, /* ADLAM CAPITAL LETTER DAALI */ - /*3990*/ 0x01e924, 1, 0x01e902, /* ADLAM CAPITAL LETTER LAAM */ - /*3993*/ 0x01e925, 1, 0x01e903, /* ADLAM CAPITAL LETTER MIIM */ - /*3996*/ 0x01e926, 1, 0x01e904, /* ADLAM CAPITAL LETTER BA */ - /*3999*/ 0x01e927, 1, 0x01e905, /* ADLAM CAPITAL LETTER SINNYIIYHE */ - /*4002*/ 0x01e928, 1, 0x01e906, /* ADLAM CAPITAL LETTER PE */ - /*4005*/ 0x01e929, 1, 0x01e907, /* ADLAM CAPITAL LETTER BHE */ - /*4008*/ 0x01e92a, 1, 0x01e908, /* ADLAM CAPITAL LETTER RA */ - /*4011*/ 0x01e92b, 1, 0x01e909, /* ADLAM CAPITAL LETTER E */ - /*4014*/ 0x01e92c, 1, 0x01e90a, /* ADLAM CAPITAL LETTER FA */ - /*4017*/ 0x01e92d, 1, 0x01e90b, /* ADLAM CAPITAL LETTER I */ - /*4020*/ 0x01e92e, 1, 0x01e90c, /* ADLAM CAPITAL LETTER O */ - /*4023*/ 0x01e92f, 1, 0x01e90d, /* ADLAM CAPITAL LETTER DHA */ - /*4026*/ 0x01e930, 1, 0x01e90e, /* ADLAM CAPITAL LETTER YHE */ - /*4029*/ 0x01e931, 1, 0x01e90f, /* ADLAM CAPITAL LETTER WAW */ - /*4032*/ 0x01e932, 1, 0x01e910, /* ADLAM CAPITAL LETTER NUN */ - /*4035*/ 0x01e933, 1, 0x01e911, /* ADLAM CAPITAL LETTER KAF */ - /*4038*/ 0x01e934, 1, 0x01e912, /* ADLAM CAPITAL LETTER YA */ - /*4041*/ 0x01e935, 1, 0x01e913, /* ADLAM CAPITAL LETTER U */ - /*4044*/ 0x01e936, 1, 0x01e914, /* ADLAM CAPITAL LETTER JIIM */ - /*4047*/ 0x01e937, 1, 0x01e915, /* ADLAM CAPITAL LETTER CHI */ - /*4050*/ 0x01e938, 1, 0x01e916, /* ADLAM CAPITAL LETTER HA */ - /*4053*/ 0x01e939, 1, 0x01e917, /* ADLAM CAPITAL LETTER QAAF */ - /*4056*/ 0x01e93a, 1, 0x01e918, /* ADLAM CAPITAL LETTER GA */ - /*4059*/ 0x01e93b, 1, 0x01e919, /* ADLAM CAPITAL LETTER NYA */ - /*4062*/ 0x01e93c, 1, 0x01e91a, /* ADLAM CAPITAL LETTER TU */ - /*4065*/ 0x01e93d, 1, 0x01e91b, /* ADLAM CAPITAL LETTER NHA */ - /*4068*/ 0x01e93e, 1, 0x01e91c, /* ADLAM CAPITAL LETTER VA */ - /*4071*/ 0x01e93f, 1, 0x01e91d, /* ADLAM CAPITAL LETTER KHA */ - /*4074*/ 0x01e940, 1, 0x01e91e, /* ADLAM CAPITAL LETTER GBE */ - /*4077*/ 0x01e941, 1, 0x01e91f, /* ADLAM CAPITAL LETTER ZAL */ - /*4080*/ 0x01e942, 1, 0x01e920, /* ADLAM CAPITAL LETTER KPO */ - /*4083*/ 0x01e943, 1, 0x01e921, /* ADLAM CAPITAL LETTER SHA */ -#define FOLDS1_NORMAL_END_INDEX 4086 - /* ----- LOCALE ----- */ - /*4086*/ 0x0069, 1, 0x0049, /* LATIN CAPITAL LETTER I */ -#define FOLDS1_END_INDEX 4089 -}; - -OnigCodePoint OnigUnicodeFolds2[] = { - /* LATIN SMALL LETTER A WITH RIGHT HALF RING */ - /* 0*/ 0x0061, 0x02be, 1, 0x1e9a, - /* LATIN SMALL LIGATURE FF */ - /* 4*/ 0x0066, 0x0066, 1, 0xfb00, - /* LATIN SMALL LIGATURE FI */ - /* 8*/ 0x0066, 0x0069, 1, 0xfb01, - /* LATIN SMALL LIGATURE FL */ - /* 12*/ 0x0066, 0x006c, 1, 0xfb02, - /* LATIN SMALL LETTER H WITH LINE BELOW */ - /* 16*/ 0x0068, 0x0331, 1, 0x1e96, - /* LATIN SMALL LETTER J WITH CARON */ - /* 20*/ 0x006a, 0x030c, 1, 0x01f0, - /* LATIN SMALL LETTER SHARP S */ - /* 24*/ 0x0073, 0x0073, 2, 0x00df, 0x1e9e, - /* LATIN SMALL LIGATURE LONG S T */ - /* 29*/ 0x0073, 0x0074, 2, 0xfb05, 0xfb06, - /* LATIN SMALL LETTER T WITH DIAERESIS */ - /* 34*/ 0x0074, 0x0308, 1, 0x1e97, - /* LATIN SMALL LETTER W WITH RING ABOVE */ - /* 38*/ 0x0077, 0x030a, 1, 0x1e98, - /* LATIN SMALL LETTER Y WITH RING ABOVE */ - /* 42*/ 0x0079, 0x030a, 1, 0x1e99, - /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */ - /* 46*/ 0x02bc, 0x006e, 1, 0x0149, - /* GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI */ - /* 50*/ 0x03ac, 0x03b9, 1, 0x1fb4, - /* GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI */ - /* 54*/ 0x03ae, 0x03b9, 1, 0x1fc4, - /* GREEK SMALL LETTER ALPHA WITH PERISPOMENI */ - /* 58*/ 0x03b1, 0x0342, 1, 0x1fb6, - /* GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI */ - /* 62*/ 0x03b1, 0x03b9, 2, 0x1fb3, 0x1fbc, - /* GREEK SMALL LETTER ETA WITH PERISPOMENI */ - /* 67*/ 0x03b7, 0x0342, 1, 0x1fc6, - /* GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI */ - /* 71*/ 0x03b7, 0x03b9, 2, 0x1fc3, 0x1fcc, - /* GREEK SMALL LETTER IOTA WITH PERISPOMENI */ - /* 76*/ 0x03b9, 0x0342, 1, 0x1fd6, - /* GREEK SMALL LETTER RHO WITH PSILI */ - /* 80*/ 0x03c1, 0x0313, 1, 0x1fe4, - /* GREEK SMALL LETTER UPSILON WITH PSILI */ - /* 84*/ 0x03c5, 0x0313, 1, 0x1f50, - /* GREEK SMALL LETTER UPSILON WITH PERISPOMENI */ - /* 88*/ 0x03c5, 0x0342, 1, 0x1fe6, - /* GREEK SMALL LETTER OMEGA WITH PERISPOMENI */ - /* 92*/ 0x03c9, 0x0342, 1, 0x1ff6, - /* GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI */ - /* 96*/ 0x03c9, 0x03b9, 2, 0x1ff3, 0x1ffc, - /* GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI */ - /* 101*/ 0x03ce, 0x03b9, 1, 0x1ff4, - /* ARMENIAN SMALL LIGATURE ECH YIWN */ - /* 105*/ 0x0565, 0x0582, 1, 0x0587, - /* ARMENIAN SMALL LIGATURE MEN ECH */ - /* 109*/ 0x0574, 0x0565, 1, 0xfb14, - /* ARMENIAN SMALL LIGATURE MEN INI */ - /* 113*/ 0x0574, 0x056b, 1, 0xfb15, - /* ARMENIAN SMALL LIGATURE MEN XEH */ - /* 117*/ 0x0574, 0x056d, 1, 0xfb17, - /* ARMENIAN SMALL LIGATURE MEN NOW */ - /* 121*/ 0x0574, 0x0576, 1, 0xfb13, - /* ARMENIAN SMALL LIGATURE VEW NOW */ - /* 125*/ 0x057e, 0x0576, 1, 0xfb16, - /* GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */ - /* 129*/ 0x1f00, 0x03b9, 2, 0x1f80, 0x1f88, - /* GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */ - /* 134*/ 0x1f01, 0x03b9, 2, 0x1f81, 0x1f89, - /* GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ - /* 139*/ 0x1f02, 0x03b9, 2, 0x1f82, 0x1f8a, - /* GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ - /* 144*/ 0x1f03, 0x03b9, 2, 0x1f83, 0x1f8b, - /* GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ - /* 149*/ 0x1f04, 0x03b9, 2, 0x1f84, 0x1f8c, - /* GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ - /* 154*/ 0x1f05, 0x03b9, 2, 0x1f85, 0x1f8d, - /* GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ - /* 159*/ 0x1f06, 0x03b9, 2, 0x1f86, 0x1f8e, - /* GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ - /* 164*/ 0x1f07, 0x03b9, 2, 0x1f87, 0x1f8f, - /* GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */ - /* 169*/ 0x1f20, 0x03b9, 2, 0x1f90, 0x1f98, - /* GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */ - /* 174*/ 0x1f21, 0x03b9, 2, 0x1f91, 0x1f99, - /* GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ - /* 179*/ 0x1f22, 0x03b9, 2, 0x1f92, 0x1f9a, - /* GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ - /* 184*/ 0x1f23, 0x03b9, 2, 0x1f93, 0x1f9b, - /* GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ - /* 189*/ 0x1f24, 0x03b9, 2, 0x1f94, 0x1f9c, - /* GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ - /* 194*/ 0x1f25, 0x03b9, 2, 0x1f95, 0x1f9d, - /* GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ - /* 199*/ 0x1f26, 0x03b9, 2, 0x1f96, 0x1f9e, - /* GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ - /* 204*/ 0x1f27, 0x03b9, 2, 0x1f97, 0x1f9f, - /* GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI */ - /* 209*/ 0x1f60, 0x03b9, 2, 0x1fa0, 0x1fa8, - /* GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI */ - /* 214*/ 0x1f61, 0x03b9, 2, 0x1fa1, 0x1fa9, - /* GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */ - /* 219*/ 0x1f62, 0x03b9, 2, 0x1fa2, 0x1faa, - /* GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */ - /* 224*/ 0x1f63, 0x03b9, 2, 0x1fa3, 0x1fab, - /* GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */ - /* 229*/ 0x1f64, 0x03b9, 2, 0x1fa4, 0x1fac, - /* GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */ - /* 234*/ 0x1f65, 0x03b9, 2, 0x1fa5, 0x1fad, - /* GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */ - /* 239*/ 0x1f66, 0x03b9, 2, 0x1fa6, 0x1fae, - /* GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */ - /* 244*/ 0x1f67, 0x03b9, 2, 0x1fa7, 0x1faf, - /* GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */ - /* 249*/ 0x1f70, 0x03b9, 1, 0x1fb2, - /* GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */ - /* 253*/ 0x1f74, 0x03b9, 1, 0x1fc2, - /* GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */ - /* 257*/ 0x1f7c, 0x03b9, 1, 0x1ff2, -#define FOLDS2_NORMAL_END_INDEX 261 - /* ----- LOCALE ----- */ - /* LATIN CAPITAL LETTER I WITH DOT ABOVE */ - /* 261*/ 0x0069, 0x0307, 1, 0x0130, -#define FOLDS2_END_INDEX 265 -}; - -OnigCodePoint OnigUnicodeFolds3[] = { - /* LATIN SMALL LIGATURE FFI */ - /* 0*/ 0x0066, 0x0066, 0x0069, 1, 0xfb03, - /* LATIN SMALL LIGATURE FFL */ - /* 5*/ 0x0066, 0x0066, 0x006c, 1, 0xfb04, - /* GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */ - /* 10*/ 0x03b1, 0x0342, 0x03b9, 1, 0x1fb7, - /* GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */ - /* 15*/ 0x03b7, 0x0342, 0x03b9, 1, 0x1fc7, - /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA */ - /* 20*/ 0x03b9, 0x0308, 0x0300, 1, 0x1fd2, - /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ - /* 25*/ 0x03b9, 0x0308, 0x0301, 2, 0x0390, 0x1fd3, - /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI */ - /* 31*/ 0x03b9, 0x0308, 0x0342, 1, 0x1fd7, - /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA */ - /* 36*/ 0x03c5, 0x0308, 0x0300, 1, 0x1fe2, - /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ - /* 41*/ 0x03c5, 0x0308, 0x0301, 2, 0x03b0, 0x1fe3, - /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI */ - /* 47*/ 0x03c5, 0x0308, 0x0342, 1, 0x1fe7, - /* GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */ - /* 52*/ 0x03c5, 0x0313, 0x0300, 1, 0x1f52, - /* GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */ - /* 57*/ 0x03c5, 0x0313, 0x0301, 1, 0x1f54, - /* GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI */ - /* 62*/ 0x03c5, 0x0313, 0x0342, 1, 0x1f56, - /* GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */ - /* 67*/ 0x03c9, 0x0342, 0x03b9, 1, 0x1ff7, -#define FOLDS3_NORMAL_END_INDEX 72 - /* ----- LOCALE ----- */ -#define FOLDS3_END_INDEX 72 -}; diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data.c deleted file mode 100644 index b06997b83125..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data.c +++ /dev/null @@ -1,30388 +0,0 @@ -/* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: /usr/local/bin/gperf -T -C -c -t -j1 -L ANSI-C --ignore-case --pic -Q unicode_prop_name_pool -N unicode_lookup_property_name --output-file gperf1.tmp unicode_property_data.gperf */ -/* Computed positions: -k'1-3,5-6,12,16,$' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - - - -/* Generated by make_unicode_property_data.py. */ - - -/* PROPERTY: 'NEWLINE': POSIX [[:NEWLINE:]] */ -static const OnigCodePoint -CR_NEWLINE[] = { 1, -0x000a, 0x000a, -}; /* END of CR_NEWLINE */ - -/* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */ -static const OnigCodePoint -CR_Alpha[] = { 679, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0345, 0x0345, -0x0370, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x05b0, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0657, -0x0659, 0x065f, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06e1, 0x06e8, -0x06ed, 0x06ef, -0x06fa, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x073f, -0x074d, 0x07b1, -0x07ca, 0x07ea, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x0800, 0x0817, -0x081a, 0x082c, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d4, 0x08df, -0x08e3, 0x08e9, -0x08f0, 0x093b, -0x093d, 0x094c, -0x094e, 0x0950, -0x0955, 0x0963, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09cc, -0x09ce, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09f0, 0x09f1, -0x09fc, 0x09fc, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4c, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a70, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acc, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0af9, 0x0afc, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4c, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcc, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4c, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccc, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4c, -0x0d4e, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e46, -0x0e4d, 0x0e4d, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb9, -0x0ebb, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ecd, 0x0ecd, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f81, -0x0f88, 0x0f97, -0x0f99, 0x0fbc, -0x1000, 0x1036, -0x1038, 0x1038, -0x103b, 0x103f, -0x1050, 0x108f, -0x109a, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1713, -0x1720, 0x1733, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17b3, -0x17b6, 0x17c8, -0x17d7, 0x17d7, -0x17dc, 0x17dc, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x1938, -0x1950, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a61, 0x1a74, -0x1aa7, 0x1aa7, -0x1b00, 0x1b33, -0x1b35, 0x1b43, -0x1b45, 0x1b4b, -0x1b80, 0x1ba9, -0x1bac, 0x1baf, -0x1bba, 0x1be5, -0x1be7, 0x1bf1, -0x1c00, 0x1c36, -0x1c4d, 0x1c4f, -0x1c5a, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1de7, 0x1df4, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x2e2f, 0x2e2f, -0x3005, 0x3007, -0x3021, 0x3029, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa61f, -0xa62a, 0xa62b, -0xa640, 0xa66e, -0xa674, 0xa67b, -0xa67f, 0xa6ef, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa805, -0xa807, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c3, -0xa8c5, 0xa8c5, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa8ff, -0xa90a, 0xa92a, -0xa930, 0xa952, -0xa960, 0xa97c, -0xa980, 0xa9b2, -0xa9b4, 0xa9bf, -0xa9cf, 0xa9cf, -0xa9e0, 0xa9ef, -0xa9fa, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa60, 0xaa76, -0xaa7a, 0xaabe, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf5, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff21, 0xff3a, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11000, 0x11045, -0x11082, 0x110b8, -0x110d0, 0x110e8, -0x11100, 0x11132, -0x11144, 0x11146, -0x11150, 0x11172, -0x11176, 0x11176, -0x11180, 0x111bf, -0x111c1, 0x111c4, -0x111da, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11234, -0x11237, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112e8, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134c, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11400, 0x11441, -0x11443, 0x11445, -0x11447, 0x1144a, -0x1145f, 0x1145f, -0x11480, 0x114c1, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x11580, 0x115b5, -0x115b8, 0x115be, -0x115d8, 0x115dd, -0x11600, 0x1163e, -0x11640, 0x11640, -0x11644, 0x11644, -0x11680, 0x116b5, -0x116b8, 0x116b8, -0x11700, 0x1171a, -0x1171d, 0x1172a, -0x11800, 0x11838, -0x118a0, 0x118df, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119df, -0x119e1, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a32, -0x11a35, 0x11a3e, -0x11a50, 0x11a97, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c3e, -0x11c40, 0x11c40, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d41, -0x11d43, 0x11d43, -0x11d46, 0x11d47, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d96, -0x11d98, 0x11d98, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b40, 0x16b43, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9e, 0x1bc9e, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e800, 0x1e8c4, -0x1e900, 0x1e943, -0x1e947, 0x1e947, -0x1e94b, 0x1e94b, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Alpha */ - -/* PROPERTY: 'Blank': POSIX [[:Blank:]] */ -static const OnigCodePoint -CR_Blank[] = { 8, -0x0009, 0x0009, -0x0020, 0x0020, -0x00a0, 0x00a0, -0x1680, 0x1680, -0x2000, 0x200a, -0x202f, 0x202f, -0x205f, 0x205f, -0x3000, 0x3000, -}; /* END of CR_Blank */ - -/* PROPERTY: 'Cntrl': POSIX [[:Cntrl:]] */ -static const OnigCodePoint -CR_Cntrl[] = { 2, -0x0000, 0x001f, -0x007f, 0x009f, -}; /* END of CR_Cntrl */ - -/* PROPERTY: 'Digit': POSIX [[:Digit:]] */ -static const OnigCodePoint -CR_Digit[] = { 59, -0x0030, 0x0039, -0x0660, 0x0669, -0x06f0, 0x06f9, -0x07c0, 0x07c9, -0x0966, 0x096f, -0x09e6, 0x09ef, -0x0a66, 0x0a6f, -0x0ae6, 0x0aef, -0x0b66, 0x0b6f, -0x0be6, 0x0bef, -0x0c66, 0x0c6f, -0x0ce6, 0x0cef, -0x0d66, 0x0d6f, -0x0de6, 0x0def, -0x0e50, 0x0e59, -0x0ed0, 0x0ed9, -0x0f20, 0x0f29, -0x1040, 0x1049, -0x1090, 0x1099, -0x17e0, 0x17e9, -0x1810, 0x1819, -0x1946, 0x194f, -0x19d0, 0x19d9, -0x1a80, 0x1a89, -0x1a90, 0x1a99, -0x1b50, 0x1b59, -0x1bb0, 0x1bb9, -0x1c40, 0x1c49, -0x1c50, 0x1c59, -0xa620, 0xa629, -0xa8d0, 0xa8d9, -0xa900, 0xa909, -0xa9d0, 0xa9d9, -0xa9f0, 0xa9f9, -0xaa50, 0xaa59, -0xabf0, 0xabf9, -0xff10, 0xff19, -0x104a0, 0x104a9, -0x10d30, 0x10d39, -0x11066, 0x1106f, -0x110f0, 0x110f9, -0x11136, 0x1113f, -0x111d0, 0x111d9, -0x112f0, 0x112f9, -0x11450, 0x11459, -0x114d0, 0x114d9, -0x11650, 0x11659, -0x116c0, 0x116c9, -0x11730, 0x11739, -0x118e0, 0x118e9, -0x11c50, 0x11c59, -0x11d50, 0x11d59, -0x11da0, 0x11da9, -0x16a60, 0x16a69, -0x16b50, 0x16b59, -0x1d7ce, 0x1d7ff, -0x1e140, 0x1e149, -0x1e2f0, 0x1e2f9, -0x1e950, 0x1e959, -}; /* END of CR_Digit */ - -/* PROPERTY: 'Graph': POSIX [[:Graph:]] */ -static const OnigCodePoint -CR_Graph[] = { 671, -0x0021, 0x007e, -0x00a1, 0x0377, -0x037a, 0x037f, -0x0384, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x052f, -0x0531, 0x0556, -0x0559, 0x058a, -0x058d, 0x058f, -0x0591, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f4, -0x0600, 0x061c, -0x061e, 0x070d, -0x070f, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07fa, -0x07fd, 0x082d, -0x0830, 0x083e, -0x0840, 0x085b, -0x085e, 0x085e, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a76, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0af1, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b77, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bfa, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c77, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4f, -0x0d54, 0x0d63, -0x0d66, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df4, -0x0e01, 0x0e3a, -0x0e3f, 0x0e5b, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f97, -0x0f99, 0x0fbc, -0x0fbe, 0x0fcc, -0x0fce, 0x0fda, -0x1000, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x137c, -0x1380, 0x1399, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1400, 0x167f, -0x1681, 0x169c, -0x16a0, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1736, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17dd, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x1800, 0x180e, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1940, 0x1940, -0x1944, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x19de, 0x1a1b, -0x1a1e, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa0, 0x1aad, -0x1ab0, 0x1abe, -0x1b00, 0x1b4b, -0x1b50, 0x1b7c, -0x1b80, 0x1bf3, -0x1bfc, 0x1c37, -0x1c3b, 0x1c49, -0x1c4d, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cc7, -0x1cd0, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fc4, -0x1fc6, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fdd, 0x1fef, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffe, -0x200b, 0x2027, -0x202a, 0x202e, -0x2030, 0x205e, -0x2060, 0x2064, -0x2066, 0x2071, -0x2074, 0x208e, -0x2090, 0x209c, -0x20a0, 0x20bf, -0x20d0, 0x20f0, -0x2100, 0x218b, -0x2190, 0x2426, -0x2440, 0x244a, -0x2460, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2cf3, -0x2cf9, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d70, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2e4f, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3001, 0x303f, -0x3041, 0x3096, -0x3099, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x3190, 0x31ba, -0x31c0, 0x31e3, -0x31f0, 0x321e, -0x3220, 0x4db5, -0x4dc0, 0x9fef, -0xa000, 0xa48c, -0xa490, 0xa4c6, -0xa4d0, 0xa62b, -0xa640, 0xa6f7, -0xa700, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa82b, -0xa830, 0xa839, -0xa840, 0xa877, -0xa880, 0xa8c5, -0xa8ce, 0xa8d9, -0xa8e0, 0xa953, -0xa95f, 0xa97c, -0xa980, 0xa9cd, -0xa9cf, 0xa9d9, -0xa9de, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa5c, 0xaac2, -0xaadb, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab67, -0xab70, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xe000, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbc1, -0xfbd3, 0xfd3f, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfd, -0xfe00, 0xfe19, -0xfe20, 0xfe52, -0xfe54, 0xfe66, -0xfe68, 0xfe6b, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xfeff, 0xfeff, -0xff01, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfff9, 0xfffd, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10100, 0x10102, -0x10107, 0x10133, -0x10137, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102fb, -0x10300, 0x10323, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x1039f, 0x103c3, -0x103c8, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x1056f, 0x1056f, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10857, 0x1089e, -0x108a7, 0x108af, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x108fb, 0x1091b, -0x1091f, 0x10939, -0x1093f, 0x1093f, -0x10980, 0x109b7, -0x109bc, 0x109cf, -0x109d2, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a48, -0x10a50, 0x10a58, -0x10a60, 0x10a9f, -0x10ac0, 0x10ae6, -0x10aeb, 0x10af6, -0x10b00, 0x10b35, -0x10b39, 0x10b55, -0x10b58, 0x10b72, -0x10b78, 0x10b91, -0x10b99, 0x10b9c, -0x10ba9, 0x10baf, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10cfa, 0x10d27, -0x10d30, 0x10d39, -0x10e60, 0x10e7e, -0x10f00, 0x10f27, -0x10f30, 0x10f59, -0x10fe0, 0x10ff6, -0x11000, 0x1104d, -0x11052, 0x1106f, -0x1107f, 0x110c1, -0x110cd, 0x110cd, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x11146, -0x11150, 0x11176, -0x11180, 0x111cd, -0x111d0, 0x111df, -0x111e1, 0x111f4, -0x11200, 0x11211, -0x11213, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a9, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x11459, -0x1145b, 0x1145b, -0x1145d, 0x1145f, -0x11480, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115dd, -0x11600, 0x11644, -0x11650, 0x11659, -0x11660, 0x1166c, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x1173f, -0x11800, 0x1183b, -0x118a0, 0x118f2, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e4, -0x11a00, 0x11a47, -0x11a50, 0x11aa2, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c45, -0x11c50, 0x11c6c, -0x11c70, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef8, -0x11fc0, 0x11ff1, -0x11fff, 0x12399, -0x12400, 0x1246e, -0x12470, 0x12474, -0x12480, 0x12543, -0x13000, 0x1342e, -0x13430, 0x13438, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16a6e, 0x16a6f, -0x16ad0, 0x16aed, -0x16af0, 0x16af5, -0x16b00, 0x16b45, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e9a, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9c, 0x1bca3, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d1e8, -0x1d200, 0x1d245, -0x1d2e0, 0x1d2f3, -0x1d300, 0x1d356, -0x1d360, 0x1d378, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1da8b, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14f, -0x1e2c0, 0x1e2f9, -0x1e2ff, 0x1e2ff, -0x1e800, 0x1e8c4, -0x1e8c7, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1e95e, 0x1e95f, -0x1ec71, 0x1ecb4, -0x1ed01, 0x1ed3d, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f100, 0x1f10c, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -0xe0100, 0xe01ef, -0xf0000, 0xffffd, -0x100000, 0x10fffd, -}; /* END of CR_Graph */ - -/* PROPERTY: 'Lower': POSIX [[:Lower:]] */ -static const OnigCodePoint -CR_Lower[] = { 649, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00df, 0x00f6, -0x00f8, 0x00ff, -0x0101, 0x0101, -0x0103, 0x0103, -0x0105, 0x0105, -0x0107, 0x0107, -0x0109, 0x0109, -0x010b, 0x010b, -0x010d, 0x010d, -0x010f, 0x010f, -0x0111, 0x0111, -0x0113, 0x0113, -0x0115, 0x0115, -0x0117, 0x0117, -0x0119, 0x0119, -0x011b, 0x011b, -0x011d, 0x011d, -0x011f, 0x011f, -0x0121, 0x0121, -0x0123, 0x0123, -0x0125, 0x0125, -0x0127, 0x0127, -0x0129, 0x0129, -0x012b, 0x012b, -0x012d, 0x012d, -0x012f, 0x012f, -0x0131, 0x0131, -0x0133, 0x0133, -0x0135, 0x0135, -0x0137, 0x0138, -0x013a, 0x013a, -0x013c, 0x013c, -0x013e, 0x013e, -0x0140, 0x0140, -0x0142, 0x0142, -0x0144, 0x0144, -0x0146, 0x0146, -0x0148, 0x0149, -0x014b, 0x014b, -0x014d, 0x014d, -0x014f, 0x014f, -0x0151, 0x0151, -0x0153, 0x0153, -0x0155, 0x0155, -0x0157, 0x0157, -0x0159, 0x0159, -0x015b, 0x015b, -0x015d, 0x015d, -0x015f, 0x015f, -0x0161, 0x0161, -0x0163, 0x0163, -0x0165, 0x0165, -0x0167, 0x0167, -0x0169, 0x0169, -0x016b, 0x016b, -0x016d, 0x016d, -0x016f, 0x016f, -0x0171, 0x0171, -0x0173, 0x0173, -0x0175, 0x0175, -0x0177, 0x0177, -0x017a, 0x017a, -0x017c, 0x017c, -0x017e, 0x0180, -0x0183, 0x0183, -0x0185, 0x0185, -0x0188, 0x0188, -0x018c, 0x018d, -0x0192, 0x0192, -0x0195, 0x0195, -0x0199, 0x019b, -0x019e, 0x019e, -0x01a1, 0x01a1, -0x01a3, 0x01a3, -0x01a5, 0x01a5, -0x01a8, 0x01a8, -0x01aa, 0x01ab, -0x01ad, 0x01ad, -0x01b0, 0x01b0, -0x01b4, 0x01b4, -0x01b6, 0x01b6, -0x01b9, 0x01ba, -0x01bd, 0x01bf, -0x01c6, 0x01c6, -0x01c9, 0x01c9, -0x01cc, 0x01cc, -0x01ce, 0x01ce, -0x01d0, 0x01d0, -0x01d2, 0x01d2, -0x01d4, 0x01d4, -0x01d6, 0x01d6, -0x01d8, 0x01d8, -0x01da, 0x01da, -0x01dc, 0x01dd, -0x01df, 0x01df, -0x01e1, 0x01e1, -0x01e3, 0x01e3, -0x01e5, 0x01e5, -0x01e7, 0x01e7, -0x01e9, 0x01e9, -0x01eb, 0x01eb, -0x01ed, 0x01ed, -0x01ef, 0x01f0, -0x01f3, 0x01f3, -0x01f5, 0x01f5, -0x01f9, 0x01f9, -0x01fb, 0x01fb, -0x01fd, 0x01fd, -0x01ff, 0x01ff, -0x0201, 0x0201, -0x0203, 0x0203, -0x0205, 0x0205, -0x0207, 0x0207, -0x0209, 0x0209, -0x020b, 0x020b, -0x020d, 0x020d, -0x020f, 0x020f, -0x0211, 0x0211, -0x0213, 0x0213, -0x0215, 0x0215, -0x0217, 0x0217, -0x0219, 0x0219, -0x021b, 0x021b, -0x021d, 0x021d, -0x021f, 0x021f, -0x0221, 0x0221, -0x0223, 0x0223, -0x0225, 0x0225, -0x0227, 0x0227, -0x0229, 0x0229, -0x022b, 0x022b, -0x022d, 0x022d, -0x022f, 0x022f, -0x0231, 0x0231, -0x0233, 0x0239, -0x023c, 0x023c, -0x023f, 0x0240, -0x0242, 0x0242, -0x0247, 0x0247, -0x0249, 0x0249, -0x024b, 0x024b, -0x024d, 0x024d, -0x024f, 0x0293, -0x0295, 0x02b8, -0x02c0, 0x02c1, -0x02e0, 0x02e4, -0x0345, 0x0345, -0x0371, 0x0371, -0x0373, 0x0373, -0x0377, 0x0377, -0x037a, 0x037d, -0x0390, 0x0390, -0x03ac, 0x03ce, -0x03d0, 0x03d1, -0x03d5, 0x03d7, -0x03d9, 0x03d9, -0x03db, 0x03db, -0x03dd, 0x03dd, -0x03df, 0x03df, -0x03e1, 0x03e1, -0x03e3, 0x03e3, -0x03e5, 0x03e5, -0x03e7, 0x03e7, -0x03e9, 0x03e9, -0x03eb, 0x03eb, -0x03ed, 0x03ed, -0x03ef, 0x03f3, -0x03f5, 0x03f5, -0x03f8, 0x03f8, -0x03fb, 0x03fc, -0x0430, 0x045f, -0x0461, 0x0461, -0x0463, 0x0463, -0x0465, 0x0465, -0x0467, 0x0467, -0x0469, 0x0469, -0x046b, 0x046b, -0x046d, 0x046d, -0x046f, 0x046f, -0x0471, 0x0471, -0x0473, 0x0473, -0x0475, 0x0475, -0x0477, 0x0477, -0x0479, 0x0479, -0x047b, 0x047b, -0x047d, 0x047d, -0x047f, 0x047f, -0x0481, 0x0481, -0x048b, 0x048b, -0x048d, 0x048d, -0x048f, 0x048f, -0x0491, 0x0491, -0x0493, 0x0493, -0x0495, 0x0495, -0x0497, 0x0497, -0x0499, 0x0499, -0x049b, 0x049b, -0x049d, 0x049d, -0x049f, 0x049f, -0x04a1, 0x04a1, -0x04a3, 0x04a3, -0x04a5, 0x04a5, -0x04a7, 0x04a7, -0x04a9, 0x04a9, -0x04ab, 0x04ab, -0x04ad, 0x04ad, -0x04af, 0x04af, -0x04b1, 0x04b1, -0x04b3, 0x04b3, -0x04b5, 0x04b5, -0x04b7, 0x04b7, -0x04b9, 0x04b9, -0x04bb, 0x04bb, -0x04bd, 0x04bd, -0x04bf, 0x04bf, -0x04c2, 0x04c2, -0x04c4, 0x04c4, -0x04c6, 0x04c6, -0x04c8, 0x04c8, -0x04ca, 0x04ca, -0x04cc, 0x04cc, -0x04ce, 0x04cf, -0x04d1, 0x04d1, -0x04d3, 0x04d3, -0x04d5, 0x04d5, -0x04d7, 0x04d7, -0x04d9, 0x04d9, -0x04db, 0x04db, -0x04dd, 0x04dd, -0x04df, 0x04df, -0x04e1, 0x04e1, -0x04e3, 0x04e3, -0x04e5, 0x04e5, -0x04e7, 0x04e7, -0x04e9, 0x04e9, -0x04eb, 0x04eb, -0x04ed, 0x04ed, -0x04ef, 0x04ef, -0x04f1, 0x04f1, -0x04f3, 0x04f3, -0x04f5, 0x04f5, -0x04f7, 0x04f7, -0x04f9, 0x04f9, -0x04fb, 0x04fb, -0x04fd, 0x04fd, -0x04ff, 0x04ff, -0x0501, 0x0501, -0x0503, 0x0503, -0x0505, 0x0505, -0x0507, 0x0507, -0x0509, 0x0509, -0x050b, 0x050b, -0x050d, 0x050d, -0x050f, 0x050f, -0x0511, 0x0511, -0x0513, 0x0513, -0x0515, 0x0515, -0x0517, 0x0517, -0x0519, 0x0519, -0x051b, 0x051b, -0x051d, 0x051d, -0x051f, 0x051f, -0x0521, 0x0521, -0x0523, 0x0523, -0x0525, 0x0525, -0x0527, 0x0527, -0x0529, 0x0529, -0x052b, 0x052b, -0x052d, 0x052d, -0x052f, 0x052f, -0x0560, 0x0588, -0x10d0, 0x10fa, -0x10fd, 0x10ff, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1d00, 0x1dbf, -0x1e01, 0x1e01, -0x1e03, 0x1e03, -0x1e05, 0x1e05, -0x1e07, 0x1e07, -0x1e09, 0x1e09, -0x1e0b, 0x1e0b, -0x1e0d, 0x1e0d, -0x1e0f, 0x1e0f, -0x1e11, 0x1e11, -0x1e13, 0x1e13, -0x1e15, 0x1e15, -0x1e17, 0x1e17, -0x1e19, 0x1e19, -0x1e1b, 0x1e1b, -0x1e1d, 0x1e1d, -0x1e1f, 0x1e1f, -0x1e21, 0x1e21, -0x1e23, 0x1e23, -0x1e25, 0x1e25, -0x1e27, 0x1e27, -0x1e29, 0x1e29, -0x1e2b, 0x1e2b, -0x1e2d, 0x1e2d, -0x1e2f, 0x1e2f, -0x1e31, 0x1e31, -0x1e33, 0x1e33, -0x1e35, 0x1e35, -0x1e37, 0x1e37, -0x1e39, 0x1e39, -0x1e3b, 0x1e3b, -0x1e3d, 0x1e3d, -0x1e3f, 0x1e3f, -0x1e41, 0x1e41, -0x1e43, 0x1e43, -0x1e45, 0x1e45, -0x1e47, 0x1e47, -0x1e49, 0x1e49, -0x1e4b, 0x1e4b, -0x1e4d, 0x1e4d, -0x1e4f, 0x1e4f, -0x1e51, 0x1e51, -0x1e53, 0x1e53, -0x1e55, 0x1e55, -0x1e57, 0x1e57, -0x1e59, 0x1e59, -0x1e5b, 0x1e5b, -0x1e5d, 0x1e5d, -0x1e5f, 0x1e5f, -0x1e61, 0x1e61, -0x1e63, 0x1e63, -0x1e65, 0x1e65, -0x1e67, 0x1e67, -0x1e69, 0x1e69, -0x1e6b, 0x1e6b, -0x1e6d, 0x1e6d, -0x1e6f, 0x1e6f, -0x1e71, 0x1e71, -0x1e73, 0x1e73, -0x1e75, 0x1e75, -0x1e77, 0x1e77, -0x1e79, 0x1e79, -0x1e7b, 0x1e7b, -0x1e7d, 0x1e7d, -0x1e7f, 0x1e7f, -0x1e81, 0x1e81, -0x1e83, 0x1e83, -0x1e85, 0x1e85, -0x1e87, 0x1e87, -0x1e89, 0x1e89, -0x1e8b, 0x1e8b, -0x1e8d, 0x1e8d, -0x1e8f, 0x1e8f, -0x1e91, 0x1e91, -0x1e93, 0x1e93, -0x1e95, 0x1e9d, -0x1e9f, 0x1e9f, -0x1ea1, 0x1ea1, -0x1ea3, 0x1ea3, -0x1ea5, 0x1ea5, -0x1ea7, 0x1ea7, -0x1ea9, 0x1ea9, -0x1eab, 0x1eab, -0x1ead, 0x1ead, -0x1eaf, 0x1eaf, -0x1eb1, 0x1eb1, -0x1eb3, 0x1eb3, -0x1eb5, 0x1eb5, -0x1eb7, 0x1eb7, -0x1eb9, 0x1eb9, -0x1ebb, 0x1ebb, -0x1ebd, 0x1ebd, -0x1ebf, 0x1ebf, -0x1ec1, 0x1ec1, -0x1ec3, 0x1ec3, -0x1ec5, 0x1ec5, -0x1ec7, 0x1ec7, -0x1ec9, 0x1ec9, -0x1ecb, 0x1ecb, -0x1ecd, 0x1ecd, -0x1ecf, 0x1ecf, -0x1ed1, 0x1ed1, -0x1ed3, 0x1ed3, -0x1ed5, 0x1ed5, -0x1ed7, 0x1ed7, -0x1ed9, 0x1ed9, -0x1edb, 0x1edb, -0x1edd, 0x1edd, -0x1edf, 0x1edf, -0x1ee1, 0x1ee1, -0x1ee3, 0x1ee3, -0x1ee5, 0x1ee5, -0x1ee7, 0x1ee7, -0x1ee9, 0x1ee9, -0x1eeb, 0x1eeb, -0x1eed, 0x1eed, -0x1eef, 0x1eef, -0x1ef1, 0x1ef1, -0x1ef3, 0x1ef3, -0x1ef5, 0x1ef5, -0x1ef7, 0x1ef7, -0x1ef9, 0x1ef9, -0x1efb, 0x1efb, -0x1efd, 0x1efd, -0x1eff, 0x1f07, -0x1f10, 0x1f15, -0x1f20, 0x1f27, -0x1f30, 0x1f37, -0x1f40, 0x1f45, -0x1f50, 0x1f57, -0x1f60, 0x1f67, -0x1f70, 0x1f7d, -0x1f80, 0x1f87, -0x1f90, 0x1f97, -0x1fa0, 0x1fa7, -0x1fb0, 0x1fb4, -0x1fb6, 0x1fb7, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fc7, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fd7, -0x1fe0, 0x1fe7, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ff7, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x210a, 0x210a, -0x210e, 0x210f, -0x2113, 0x2113, -0x212f, 0x212f, -0x2134, 0x2134, -0x2139, 0x2139, -0x213c, 0x213d, -0x2146, 0x2149, -0x214e, 0x214e, -0x2170, 0x217f, -0x2184, 0x2184, -0x24d0, 0x24e9, -0x2c30, 0x2c5e, -0x2c61, 0x2c61, -0x2c65, 0x2c66, -0x2c68, 0x2c68, -0x2c6a, 0x2c6a, -0x2c6c, 0x2c6c, -0x2c71, 0x2c71, -0x2c73, 0x2c74, -0x2c76, 0x2c7d, -0x2c81, 0x2c81, -0x2c83, 0x2c83, -0x2c85, 0x2c85, -0x2c87, 0x2c87, -0x2c89, 0x2c89, -0x2c8b, 0x2c8b, -0x2c8d, 0x2c8d, -0x2c8f, 0x2c8f, -0x2c91, 0x2c91, -0x2c93, 0x2c93, -0x2c95, 0x2c95, -0x2c97, 0x2c97, -0x2c99, 0x2c99, -0x2c9b, 0x2c9b, -0x2c9d, 0x2c9d, -0x2c9f, 0x2c9f, -0x2ca1, 0x2ca1, -0x2ca3, 0x2ca3, -0x2ca5, 0x2ca5, -0x2ca7, 0x2ca7, -0x2ca9, 0x2ca9, -0x2cab, 0x2cab, -0x2cad, 0x2cad, -0x2caf, 0x2caf, -0x2cb1, 0x2cb1, -0x2cb3, 0x2cb3, -0x2cb5, 0x2cb5, -0x2cb7, 0x2cb7, -0x2cb9, 0x2cb9, -0x2cbb, 0x2cbb, -0x2cbd, 0x2cbd, -0x2cbf, 0x2cbf, -0x2cc1, 0x2cc1, -0x2cc3, 0x2cc3, -0x2cc5, 0x2cc5, -0x2cc7, 0x2cc7, -0x2cc9, 0x2cc9, -0x2ccb, 0x2ccb, -0x2ccd, 0x2ccd, -0x2ccf, 0x2ccf, -0x2cd1, 0x2cd1, -0x2cd3, 0x2cd3, -0x2cd5, 0x2cd5, -0x2cd7, 0x2cd7, -0x2cd9, 0x2cd9, -0x2cdb, 0x2cdb, -0x2cdd, 0x2cdd, -0x2cdf, 0x2cdf, -0x2ce1, 0x2ce1, -0x2ce3, 0x2ce4, -0x2cec, 0x2cec, -0x2cee, 0x2cee, -0x2cf3, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa641, 0xa641, -0xa643, 0xa643, -0xa645, 0xa645, -0xa647, 0xa647, -0xa649, 0xa649, -0xa64b, 0xa64b, -0xa64d, 0xa64d, -0xa64f, 0xa64f, -0xa651, 0xa651, -0xa653, 0xa653, -0xa655, 0xa655, -0xa657, 0xa657, -0xa659, 0xa659, -0xa65b, 0xa65b, -0xa65d, 0xa65d, -0xa65f, 0xa65f, -0xa661, 0xa661, -0xa663, 0xa663, -0xa665, 0xa665, -0xa667, 0xa667, -0xa669, 0xa669, -0xa66b, 0xa66b, -0xa66d, 0xa66d, -0xa681, 0xa681, -0xa683, 0xa683, -0xa685, 0xa685, -0xa687, 0xa687, -0xa689, 0xa689, -0xa68b, 0xa68b, -0xa68d, 0xa68d, -0xa68f, 0xa68f, -0xa691, 0xa691, -0xa693, 0xa693, -0xa695, 0xa695, -0xa697, 0xa697, -0xa699, 0xa699, -0xa69b, 0xa69d, -0xa723, 0xa723, -0xa725, 0xa725, -0xa727, 0xa727, -0xa729, 0xa729, -0xa72b, 0xa72b, -0xa72d, 0xa72d, -0xa72f, 0xa731, -0xa733, 0xa733, -0xa735, 0xa735, -0xa737, 0xa737, -0xa739, 0xa739, -0xa73b, 0xa73b, -0xa73d, 0xa73d, -0xa73f, 0xa73f, -0xa741, 0xa741, -0xa743, 0xa743, -0xa745, 0xa745, -0xa747, 0xa747, -0xa749, 0xa749, -0xa74b, 0xa74b, -0xa74d, 0xa74d, -0xa74f, 0xa74f, -0xa751, 0xa751, -0xa753, 0xa753, -0xa755, 0xa755, -0xa757, 0xa757, -0xa759, 0xa759, -0xa75b, 0xa75b, -0xa75d, 0xa75d, -0xa75f, 0xa75f, -0xa761, 0xa761, -0xa763, 0xa763, -0xa765, 0xa765, -0xa767, 0xa767, -0xa769, 0xa769, -0xa76b, 0xa76b, -0xa76d, 0xa76d, -0xa76f, 0xa778, -0xa77a, 0xa77a, -0xa77c, 0xa77c, -0xa77f, 0xa77f, -0xa781, 0xa781, -0xa783, 0xa783, -0xa785, 0xa785, -0xa787, 0xa787, -0xa78c, 0xa78c, -0xa78e, 0xa78e, -0xa791, 0xa791, -0xa793, 0xa795, -0xa797, 0xa797, -0xa799, 0xa799, -0xa79b, 0xa79b, -0xa79d, 0xa79d, -0xa79f, 0xa79f, -0xa7a1, 0xa7a1, -0xa7a3, 0xa7a3, -0xa7a5, 0xa7a5, -0xa7a7, 0xa7a7, -0xa7a9, 0xa7a9, -0xa7af, 0xa7af, -0xa7b5, 0xa7b5, -0xa7b7, 0xa7b7, -0xa7b9, 0xa7b9, -0xa7bb, 0xa7bb, -0xa7bd, 0xa7bd, -0xa7bf, 0xa7bf, -0xa7c3, 0xa7c3, -0xa7f8, 0xa7fa, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff41, 0xff5a, -0x10428, 0x1044f, -0x104d8, 0x104fb, -0x10cc0, 0x10cf2, -0x118c0, 0x118df, -0x16e60, 0x16e7f, -0x1d41a, 0x1d433, -0x1d44e, 0x1d454, -0x1d456, 0x1d467, -0x1d482, 0x1d49b, -0x1d4b6, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d4cf, -0x1d4ea, 0x1d503, -0x1d51e, 0x1d537, -0x1d552, 0x1d56b, -0x1d586, 0x1d59f, -0x1d5ba, 0x1d5d3, -0x1d5ee, 0x1d607, -0x1d622, 0x1d63b, -0x1d656, 0x1d66f, -0x1d68a, 0x1d6a5, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6e1, -0x1d6fc, 0x1d714, -0x1d716, 0x1d71b, -0x1d736, 0x1d74e, -0x1d750, 0x1d755, -0x1d770, 0x1d788, -0x1d78a, 0x1d78f, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7c9, -0x1d7cb, 0x1d7cb, -0x1e922, 0x1e943, -}; /* END of CR_Lower */ - -/* PROPERTY: 'Print': POSIX [[:Print:]] */ -static const OnigCodePoint -CR_Print[] = { 668, -0x0020, 0x007e, -0x00a0, 0x0377, -0x037a, 0x037f, -0x0384, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x052f, -0x0531, 0x0556, -0x0559, 0x058a, -0x058d, 0x058f, -0x0591, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f4, -0x0600, 0x061c, -0x061e, 0x070d, -0x070f, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07fa, -0x07fd, 0x082d, -0x0830, 0x083e, -0x0840, 0x085b, -0x085e, 0x085e, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a76, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0af1, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b77, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bfa, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c77, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4f, -0x0d54, 0x0d63, -0x0d66, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df4, -0x0e01, 0x0e3a, -0x0e3f, 0x0e5b, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f97, -0x0f99, 0x0fbc, -0x0fbe, 0x0fcc, -0x0fce, 0x0fda, -0x1000, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x137c, -0x1380, 0x1399, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1400, 0x169c, -0x16a0, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1736, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17dd, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x1800, 0x180e, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1940, 0x1940, -0x1944, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x19de, 0x1a1b, -0x1a1e, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa0, 0x1aad, -0x1ab0, 0x1abe, -0x1b00, 0x1b4b, -0x1b50, 0x1b7c, -0x1b80, 0x1bf3, -0x1bfc, 0x1c37, -0x1c3b, 0x1c49, -0x1c4d, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cc7, -0x1cd0, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fc4, -0x1fc6, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fdd, 0x1fef, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffe, -0x2000, 0x2027, -0x202a, 0x2064, -0x2066, 0x2071, -0x2074, 0x208e, -0x2090, 0x209c, -0x20a0, 0x20bf, -0x20d0, 0x20f0, -0x2100, 0x218b, -0x2190, 0x2426, -0x2440, 0x244a, -0x2460, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2cf3, -0x2cf9, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d70, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2e4f, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, -0x3041, 0x3096, -0x3099, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x3190, 0x31ba, -0x31c0, 0x31e3, -0x31f0, 0x321e, -0x3220, 0x4db5, -0x4dc0, 0x9fef, -0xa000, 0xa48c, -0xa490, 0xa4c6, -0xa4d0, 0xa62b, -0xa640, 0xa6f7, -0xa700, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa82b, -0xa830, 0xa839, -0xa840, 0xa877, -0xa880, 0xa8c5, -0xa8ce, 0xa8d9, -0xa8e0, 0xa953, -0xa95f, 0xa97c, -0xa980, 0xa9cd, -0xa9cf, 0xa9d9, -0xa9de, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa5c, 0xaac2, -0xaadb, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab67, -0xab70, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xe000, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbc1, -0xfbd3, 0xfd3f, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfd, -0xfe00, 0xfe19, -0xfe20, 0xfe52, -0xfe54, 0xfe66, -0xfe68, 0xfe6b, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xfeff, 0xfeff, -0xff01, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfff9, 0xfffd, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10100, 0x10102, -0x10107, 0x10133, -0x10137, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102fb, -0x10300, 0x10323, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x1039f, 0x103c3, -0x103c8, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x1056f, 0x1056f, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10857, 0x1089e, -0x108a7, 0x108af, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x108fb, 0x1091b, -0x1091f, 0x10939, -0x1093f, 0x1093f, -0x10980, 0x109b7, -0x109bc, 0x109cf, -0x109d2, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a48, -0x10a50, 0x10a58, -0x10a60, 0x10a9f, -0x10ac0, 0x10ae6, -0x10aeb, 0x10af6, -0x10b00, 0x10b35, -0x10b39, 0x10b55, -0x10b58, 0x10b72, -0x10b78, 0x10b91, -0x10b99, 0x10b9c, -0x10ba9, 0x10baf, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10cfa, 0x10d27, -0x10d30, 0x10d39, -0x10e60, 0x10e7e, -0x10f00, 0x10f27, -0x10f30, 0x10f59, -0x10fe0, 0x10ff6, -0x11000, 0x1104d, -0x11052, 0x1106f, -0x1107f, 0x110c1, -0x110cd, 0x110cd, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x11146, -0x11150, 0x11176, -0x11180, 0x111cd, -0x111d0, 0x111df, -0x111e1, 0x111f4, -0x11200, 0x11211, -0x11213, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a9, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x11459, -0x1145b, 0x1145b, -0x1145d, 0x1145f, -0x11480, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115dd, -0x11600, 0x11644, -0x11650, 0x11659, -0x11660, 0x1166c, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x1173f, -0x11800, 0x1183b, -0x118a0, 0x118f2, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e4, -0x11a00, 0x11a47, -0x11a50, 0x11aa2, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c45, -0x11c50, 0x11c6c, -0x11c70, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef8, -0x11fc0, 0x11ff1, -0x11fff, 0x12399, -0x12400, 0x1246e, -0x12470, 0x12474, -0x12480, 0x12543, -0x13000, 0x1342e, -0x13430, 0x13438, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16a6e, 0x16a6f, -0x16ad0, 0x16aed, -0x16af0, 0x16af5, -0x16b00, 0x16b45, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e9a, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9c, 0x1bca3, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d1e8, -0x1d200, 0x1d245, -0x1d2e0, 0x1d2f3, -0x1d300, 0x1d356, -0x1d360, 0x1d378, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1da8b, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14f, -0x1e2c0, 0x1e2f9, -0x1e2ff, 0x1e2ff, -0x1e800, 0x1e8c4, -0x1e8c7, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1e95e, 0x1e95f, -0x1ec71, 0x1ecb4, -0x1ed01, 0x1ed3d, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f100, 0x1f10c, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -0xe0100, 0xe01ef, -0xf0000, 0xffffd, -0x100000, 0x10fffd, -}; /* END of CR_Print */ - -/* PROPERTY: 'Punct': POSIX [[:Punct:]] */ -static const OnigCodePoint -CR_Punct[] = { 182, -0x0021, 0x0023, -0x0025, 0x002a, -0x002c, 0x002f, -0x003a, 0x003b, -0x003f, 0x0040, -0x005b, 0x005d, -0x005f, 0x005f, -0x007b, 0x007b, -0x007d, 0x007d, -0x00a1, 0x00a1, -0x00a7, 0x00a7, -0x00ab, 0x00ab, -0x00b6, 0x00b7, -0x00bb, 0x00bb, -0x00bf, 0x00bf, -0x037e, 0x037e, -0x0387, 0x0387, -0x055a, 0x055f, -0x0589, 0x058a, -0x05be, 0x05be, -0x05c0, 0x05c0, -0x05c3, 0x05c3, -0x05c6, 0x05c6, -0x05f3, 0x05f4, -0x0609, 0x060a, -0x060c, 0x060d, -0x061b, 0x061b, -0x061e, 0x061f, -0x066a, 0x066d, -0x06d4, 0x06d4, -0x0700, 0x070d, -0x07f7, 0x07f9, -0x0830, 0x083e, -0x085e, 0x085e, -0x0964, 0x0965, -0x0970, 0x0970, -0x09fd, 0x09fd, -0x0a76, 0x0a76, -0x0af0, 0x0af0, -0x0c77, 0x0c77, -0x0c84, 0x0c84, -0x0df4, 0x0df4, -0x0e4f, 0x0e4f, -0x0e5a, 0x0e5b, -0x0f04, 0x0f12, -0x0f14, 0x0f14, -0x0f3a, 0x0f3d, -0x0f85, 0x0f85, -0x0fd0, 0x0fd4, -0x0fd9, 0x0fda, -0x104a, 0x104f, -0x10fb, 0x10fb, -0x1360, 0x1368, -0x1400, 0x1400, -0x166e, 0x166e, -0x169b, 0x169c, -0x16eb, 0x16ed, -0x1735, 0x1736, -0x17d4, 0x17d6, -0x17d8, 0x17da, -0x1800, 0x180a, -0x1944, 0x1945, -0x1a1e, 0x1a1f, -0x1aa0, 0x1aa6, -0x1aa8, 0x1aad, -0x1b5a, 0x1b60, -0x1bfc, 0x1bff, -0x1c3b, 0x1c3f, -0x1c7e, 0x1c7f, -0x1cc0, 0x1cc7, -0x1cd3, 0x1cd3, -0x2010, 0x2027, -0x2030, 0x2043, -0x2045, 0x2051, -0x2053, 0x205e, -0x207d, 0x207e, -0x208d, 0x208e, -0x2308, 0x230b, -0x2329, 0x232a, -0x2768, 0x2775, -0x27c5, 0x27c6, -0x27e6, 0x27ef, -0x2983, 0x2998, -0x29d8, 0x29db, -0x29fc, 0x29fd, -0x2cf9, 0x2cfc, -0x2cfe, 0x2cff, -0x2d70, 0x2d70, -0x2e00, 0x2e2e, -0x2e30, 0x2e4f, -0x3001, 0x3003, -0x3008, 0x3011, -0x3014, 0x301f, -0x3030, 0x3030, -0x303d, 0x303d, -0x30a0, 0x30a0, -0x30fb, 0x30fb, -0xa4fe, 0xa4ff, -0xa60d, 0xa60f, -0xa673, 0xa673, -0xa67e, 0xa67e, -0xa6f2, 0xa6f7, -0xa874, 0xa877, -0xa8ce, 0xa8cf, -0xa8f8, 0xa8fa, -0xa8fc, 0xa8fc, -0xa92e, 0xa92f, -0xa95f, 0xa95f, -0xa9c1, 0xa9cd, -0xa9de, 0xa9df, -0xaa5c, 0xaa5f, -0xaade, 0xaadf, -0xaaf0, 0xaaf1, -0xabeb, 0xabeb, -0xfd3e, 0xfd3f, -0xfe10, 0xfe19, -0xfe30, 0xfe52, -0xfe54, 0xfe61, -0xfe63, 0xfe63, -0xfe68, 0xfe68, -0xfe6a, 0xfe6b, -0xff01, 0xff03, -0xff05, 0xff0a, -0xff0c, 0xff0f, -0xff1a, 0xff1b, -0xff1f, 0xff20, -0xff3b, 0xff3d, -0xff3f, 0xff3f, -0xff5b, 0xff5b, -0xff5d, 0xff5d, -0xff5f, 0xff65, -0x10100, 0x10102, -0x1039f, 0x1039f, -0x103d0, 0x103d0, -0x1056f, 0x1056f, -0x10857, 0x10857, -0x1091f, 0x1091f, -0x1093f, 0x1093f, -0x10a50, 0x10a58, -0x10a7f, 0x10a7f, -0x10af0, 0x10af6, -0x10b39, 0x10b3f, -0x10b99, 0x10b9c, -0x10f55, 0x10f59, -0x11047, 0x1104d, -0x110bb, 0x110bc, -0x110be, 0x110c1, -0x11140, 0x11143, -0x11174, 0x11175, -0x111c5, 0x111c8, -0x111cd, 0x111cd, -0x111db, 0x111db, -0x111dd, 0x111df, -0x11238, 0x1123d, -0x112a9, 0x112a9, -0x1144b, 0x1144f, -0x1145b, 0x1145b, -0x1145d, 0x1145d, -0x114c6, 0x114c6, -0x115c1, 0x115d7, -0x11641, 0x11643, -0x11660, 0x1166c, -0x1173c, 0x1173e, -0x1183b, 0x1183b, -0x119e2, 0x119e2, -0x11a3f, 0x11a46, -0x11a9a, 0x11a9c, -0x11a9e, 0x11aa2, -0x11c41, 0x11c45, -0x11c70, 0x11c71, -0x11ef7, 0x11ef8, -0x11fff, 0x11fff, -0x12470, 0x12474, -0x16a6e, 0x16a6f, -0x16af5, 0x16af5, -0x16b37, 0x16b3b, -0x16b44, 0x16b44, -0x16e97, 0x16e9a, -0x16fe2, 0x16fe2, -0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8b, -0x1e95e, 0x1e95f, -}; /* END of CR_Punct */ - -/* PROPERTY: 'Space': POSIX [[:Space:]] */ -static const OnigCodePoint -CR_Space[] = { 10, -0x0009, 0x000d, -0x0020, 0x0020, -0x0085, 0x0085, -0x00a0, 0x00a0, -0x1680, 0x1680, -0x2000, 0x200a, -0x2028, 0x2029, -0x202f, 0x202f, -0x205f, 0x205f, -0x3000, 0x3000, -}; /* END of CR_Space */ - -/* PROPERTY: 'Upper': POSIX [[:Upper:]] */ -static const OnigCodePoint -CR_Upper[] = { 641, -0x0041, 0x005a, -0x00c0, 0x00d6, -0x00d8, 0x00de, -0x0100, 0x0100, -0x0102, 0x0102, -0x0104, 0x0104, -0x0106, 0x0106, -0x0108, 0x0108, -0x010a, 0x010a, -0x010c, 0x010c, -0x010e, 0x010e, -0x0110, 0x0110, -0x0112, 0x0112, -0x0114, 0x0114, -0x0116, 0x0116, -0x0118, 0x0118, -0x011a, 0x011a, -0x011c, 0x011c, -0x011e, 0x011e, -0x0120, 0x0120, -0x0122, 0x0122, -0x0124, 0x0124, -0x0126, 0x0126, -0x0128, 0x0128, -0x012a, 0x012a, -0x012c, 0x012c, -0x012e, 0x012e, -0x0130, 0x0130, -0x0132, 0x0132, -0x0134, 0x0134, -0x0136, 0x0136, -0x0139, 0x0139, -0x013b, 0x013b, -0x013d, 0x013d, -0x013f, 0x013f, -0x0141, 0x0141, -0x0143, 0x0143, -0x0145, 0x0145, -0x0147, 0x0147, -0x014a, 0x014a, -0x014c, 0x014c, -0x014e, 0x014e, -0x0150, 0x0150, -0x0152, 0x0152, -0x0154, 0x0154, -0x0156, 0x0156, -0x0158, 0x0158, -0x015a, 0x015a, -0x015c, 0x015c, -0x015e, 0x015e, -0x0160, 0x0160, -0x0162, 0x0162, -0x0164, 0x0164, -0x0166, 0x0166, -0x0168, 0x0168, -0x016a, 0x016a, -0x016c, 0x016c, -0x016e, 0x016e, -0x0170, 0x0170, -0x0172, 0x0172, -0x0174, 0x0174, -0x0176, 0x0176, -0x0178, 0x0179, -0x017b, 0x017b, -0x017d, 0x017d, -0x0181, 0x0182, -0x0184, 0x0184, -0x0186, 0x0187, -0x0189, 0x018b, -0x018e, 0x0191, -0x0193, 0x0194, -0x0196, 0x0198, -0x019c, 0x019d, -0x019f, 0x01a0, -0x01a2, 0x01a2, -0x01a4, 0x01a4, -0x01a6, 0x01a7, -0x01a9, 0x01a9, -0x01ac, 0x01ac, -0x01ae, 0x01af, -0x01b1, 0x01b3, -0x01b5, 0x01b5, -0x01b7, 0x01b8, -0x01bc, 0x01bc, -0x01c4, 0x01c4, -0x01c7, 0x01c7, -0x01ca, 0x01ca, -0x01cd, 0x01cd, -0x01cf, 0x01cf, -0x01d1, 0x01d1, -0x01d3, 0x01d3, -0x01d5, 0x01d5, -0x01d7, 0x01d7, -0x01d9, 0x01d9, -0x01db, 0x01db, -0x01de, 0x01de, -0x01e0, 0x01e0, -0x01e2, 0x01e2, -0x01e4, 0x01e4, -0x01e6, 0x01e6, -0x01e8, 0x01e8, -0x01ea, 0x01ea, -0x01ec, 0x01ec, -0x01ee, 0x01ee, -0x01f1, 0x01f1, -0x01f4, 0x01f4, -0x01f6, 0x01f8, -0x01fa, 0x01fa, -0x01fc, 0x01fc, -0x01fe, 0x01fe, -0x0200, 0x0200, -0x0202, 0x0202, -0x0204, 0x0204, -0x0206, 0x0206, -0x0208, 0x0208, -0x020a, 0x020a, -0x020c, 0x020c, -0x020e, 0x020e, -0x0210, 0x0210, -0x0212, 0x0212, -0x0214, 0x0214, -0x0216, 0x0216, -0x0218, 0x0218, -0x021a, 0x021a, -0x021c, 0x021c, -0x021e, 0x021e, -0x0220, 0x0220, -0x0222, 0x0222, -0x0224, 0x0224, -0x0226, 0x0226, -0x0228, 0x0228, -0x022a, 0x022a, -0x022c, 0x022c, -0x022e, 0x022e, -0x0230, 0x0230, -0x0232, 0x0232, -0x023a, 0x023b, -0x023d, 0x023e, -0x0241, 0x0241, -0x0243, 0x0246, -0x0248, 0x0248, -0x024a, 0x024a, -0x024c, 0x024c, -0x024e, 0x024e, -0x0370, 0x0370, -0x0372, 0x0372, -0x0376, 0x0376, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x038f, -0x0391, 0x03a1, -0x03a3, 0x03ab, -0x03cf, 0x03cf, -0x03d2, 0x03d4, -0x03d8, 0x03d8, -0x03da, 0x03da, -0x03dc, 0x03dc, -0x03de, 0x03de, -0x03e0, 0x03e0, -0x03e2, 0x03e2, -0x03e4, 0x03e4, -0x03e6, 0x03e6, -0x03e8, 0x03e8, -0x03ea, 0x03ea, -0x03ec, 0x03ec, -0x03ee, 0x03ee, -0x03f4, 0x03f4, -0x03f7, 0x03f7, -0x03f9, 0x03fa, -0x03fd, 0x042f, -0x0460, 0x0460, -0x0462, 0x0462, -0x0464, 0x0464, -0x0466, 0x0466, -0x0468, 0x0468, -0x046a, 0x046a, -0x046c, 0x046c, -0x046e, 0x046e, -0x0470, 0x0470, -0x0472, 0x0472, -0x0474, 0x0474, -0x0476, 0x0476, -0x0478, 0x0478, -0x047a, 0x047a, -0x047c, 0x047c, -0x047e, 0x047e, -0x0480, 0x0480, -0x048a, 0x048a, -0x048c, 0x048c, -0x048e, 0x048e, -0x0490, 0x0490, -0x0492, 0x0492, -0x0494, 0x0494, -0x0496, 0x0496, -0x0498, 0x0498, -0x049a, 0x049a, -0x049c, 0x049c, -0x049e, 0x049e, -0x04a0, 0x04a0, -0x04a2, 0x04a2, -0x04a4, 0x04a4, -0x04a6, 0x04a6, -0x04a8, 0x04a8, -0x04aa, 0x04aa, -0x04ac, 0x04ac, -0x04ae, 0x04ae, -0x04b0, 0x04b0, -0x04b2, 0x04b2, -0x04b4, 0x04b4, -0x04b6, 0x04b6, -0x04b8, 0x04b8, -0x04ba, 0x04ba, -0x04bc, 0x04bc, -0x04be, 0x04be, -0x04c0, 0x04c1, -0x04c3, 0x04c3, -0x04c5, 0x04c5, -0x04c7, 0x04c7, -0x04c9, 0x04c9, -0x04cb, 0x04cb, -0x04cd, 0x04cd, -0x04d0, 0x04d0, -0x04d2, 0x04d2, -0x04d4, 0x04d4, -0x04d6, 0x04d6, -0x04d8, 0x04d8, -0x04da, 0x04da, -0x04dc, 0x04dc, -0x04de, 0x04de, -0x04e0, 0x04e0, -0x04e2, 0x04e2, -0x04e4, 0x04e4, -0x04e6, 0x04e6, -0x04e8, 0x04e8, -0x04ea, 0x04ea, -0x04ec, 0x04ec, -0x04ee, 0x04ee, -0x04f0, 0x04f0, -0x04f2, 0x04f2, -0x04f4, 0x04f4, -0x04f6, 0x04f6, -0x04f8, 0x04f8, -0x04fa, 0x04fa, -0x04fc, 0x04fc, -0x04fe, 0x04fe, -0x0500, 0x0500, -0x0502, 0x0502, -0x0504, 0x0504, -0x0506, 0x0506, -0x0508, 0x0508, -0x050a, 0x050a, -0x050c, 0x050c, -0x050e, 0x050e, -0x0510, 0x0510, -0x0512, 0x0512, -0x0514, 0x0514, -0x0516, 0x0516, -0x0518, 0x0518, -0x051a, 0x051a, -0x051c, 0x051c, -0x051e, 0x051e, -0x0520, 0x0520, -0x0522, 0x0522, -0x0524, 0x0524, -0x0526, 0x0526, -0x0528, 0x0528, -0x052a, 0x052a, -0x052c, 0x052c, -0x052e, 0x052e, -0x0531, 0x0556, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x13a0, 0x13f5, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1e00, 0x1e00, -0x1e02, 0x1e02, -0x1e04, 0x1e04, -0x1e06, 0x1e06, -0x1e08, 0x1e08, -0x1e0a, 0x1e0a, -0x1e0c, 0x1e0c, -0x1e0e, 0x1e0e, -0x1e10, 0x1e10, -0x1e12, 0x1e12, -0x1e14, 0x1e14, -0x1e16, 0x1e16, -0x1e18, 0x1e18, -0x1e1a, 0x1e1a, -0x1e1c, 0x1e1c, -0x1e1e, 0x1e1e, -0x1e20, 0x1e20, -0x1e22, 0x1e22, -0x1e24, 0x1e24, -0x1e26, 0x1e26, -0x1e28, 0x1e28, -0x1e2a, 0x1e2a, -0x1e2c, 0x1e2c, -0x1e2e, 0x1e2e, -0x1e30, 0x1e30, -0x1e32, 0x1e32, -0x1e34, 0x1e34, -0x1e36, 0x1e36, -0x1e38, 0x1e38, -0x1e3a, 0x1e3a, -0x1e3c, 0x1e3c, -0x1e3e, 0x1e3e, -0x1e40, 0x1e40, -0x1e42, 0x1e42, -0x1e44, 0x1e44, -0x1e46, 0x1e46, -0x1e48, 0x1e48, -0x1e4a, 0x1e4a, -0x1e4c, 0x1e4c, -0x1e4e, 0x1e4e, -0x1e50, 0x1e50, -0x1e52, 0x1e52, -0x1e54, 0x1e54, -0x1e56, 0x1e56, -0x1e58, 0x1e58, -0x1e5a, 0x1e5a, -0x1e5c, 0x1e5c, -0x1e5e, 0x1e5e, -0x1e60, 0x1e60, -0x1e62, 0x1e62, -0x1e64, 0x1e64, -0x1e66, 0x1e66, -0x1e68, 0x1e68, -0x1e6a, 0x1e6a, -0x1e6c, 0x1e6c, -0x1e6e, 0x1e6e, -0x1e70, 0x1e70, -0x1e72, 0x1e72, -0x1e74, 0x1e74, -0x1e76, 0x1e76, -0x1e78, 0x1e78, -0x1e7a, 0x1e7a, -0x1e7c, 0x1e7c, -0x1e7e, 0x1e7e, -0x1e80, 0x1e80, -0x1e82, 0x1e82, -0x1e84, 0x1e84, -0x1e86, 0x1e86, -0x1e88, 0x1e88, -0x1e8a, 0x1e8a, -0x1e8c, 0x1e8c, -0x1e8e, 0x1e8e, -0x1e90, 0x1e90, -0x1e92, 0x1e92, -0x1e94, 0x1e94, -0x1e9e, 0x1e9e, -0x1ea0, 0x1ea0, -0x1ea2, 0x1ea2, -0x1ea4, 0x1ea4, -0x1ea6, 0x1ea6, -0x1ea8, 0x1ea8, -0x1eaa, 0x1eaa, -0x1eac, 0x1eac, -0x1eae, 0x1eae, -0x1eb0, 0x1eb0, -0x1eb2, 0x1eb2, -0x1eb4, 0x1eb4, -0x1eb6, 0x1eb6, -0x1eb8, 0x1eb8, -0x1eba, 0x1eba, -0x1ebc, 0x1ebc, -0x1ebe, 0x1ebe, -0x1ec0, 0x1ec0, -0x1ec2, 0x1ec2, -0x1ec4, 0x1ec4, -0x1ec6, 0x1ec6, -0x1ec8, 0x1ec8, -0x1eca, 0x1eca, -0x1ecc, 0x1ecc, -0x1ece, 0x1ece, -0x1ed0, 0x1ed0, -0x1ed2, 0x1ed2, -0x1ed4, 0x1ed4, -0x1ed6, 0x1ed6, -0x1ed8, 0x1ed8, -0x1eda, 0x1eda, -0x1edc, 0x1edc, -0x1ede, 0x1ede, -0x1ee0, 0x1ee0, -0x1ee2, 0x1ee2, -0x1ee4, 0x1ee4, -0x1ee6, 0x1ee6, -0x1ee8, 0x1ee8, -0x1eea, 0x1eea, -0x1eec, 0x1eec, -0x1eee, 0x1eee, -0x1ef0, 0x1ef0, -0x1ef2, 0x1ef2, -0x1ef4, 0x1ef4, -0x1ef6, 0x1ef6, -0x1ef8, 0x1ef8, -0x1efa, 0x1efa, -0x1efc, 0x1efc, -0x1efe, 0x1efe, -0x1f08, 0x1f0f, -0x1f18, 0x1f1d, -0x1f28, 0x1f2f, -0x1f38, 0x1f3f, -0x1f48, 0x1f4d, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f5f, -0x1f68, 0x1f6f, -0x1fb8, 0x1fbb, -0x1fc8, 0x1fcb, -0x1fd8, 0x1fdb, -0x1fe8, 0x1fec, -0x1ff8, 0x1ffb, -0x2102, 0x2102, -0x2107, 0x2107, -0x210b, 0x210d, -0x2110, 0x2112, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x2130, 0x2133, -0x213e, 0x213f, -0x2145, 0x2145, -0x2160, 0x216f, -0x2183, 0x2183, -0x24b6, 0x24cf, -0x2c00, 0x2c2e, -0x2c60, 0x2c60, -0x2c62, 0x2c64, -0x2c67, 0x2c67, -0x2c69, 0x2c69, -0x2c6b, 0x2c6b, -0x2c6d, 0x2c70, -0x2c72, 0x2c72, -0x2c75, 0x2c75, -0x2c7e, 0x2c80, -0x2c82, 0x2c82, -0x2c84, 0x2c84, -0x2c86, 0x2c86, -0x2c88, 0x2c88, -0x2c8a, 0x2c8a, -0x2c8c, 0x2c8c, -0x2c8e, 0x2c8e, -0x2c90, 0x2c90, -0x2c92, 0x2c92, -0x2c94, 0x2c94, -0x2c96, 0x2c96, -0x2c98, 0x2c98, -0x2c9a, 0x2c9a, -0x2c9c, 0x2c9c, -0x2c9e, 0x2c9e, -0x2ca0, 0x2ca0, -0x2ca2, 0x2ca2, -0x2ca4, 0x2ca4, -0x2ca6, 0x2ca6, -0x2ca8, 0x2ca8, -0x2caa, 0x2caa, -0x2cac, 0x2cac, -0x2cae, 0x2cae, -0x2cb0, 0x2cb0, -0x2cb2, 0x2cb2, -0x2cb4, 0x2cb4, -0x2cb6, 0x2cb6, -0x2cb8, 0x2cb8, -0x2cba, 0x2cba, -0x2cbc, 0x2cbc, -0x2cbe, 0x2cbe, -0x2cc0, 0x2cc0, -0x2cc2, 0x2cc2, -0x2cc4, 0x2cc4, -0x2cc6, 0x2cc6, -0x2cc8, 0x2cc8, -0x2cca, 0x2cca, -0x2ccc, 0x2ccc, -0x2cce, 0x2cce, -0x2cd0, 0x2cd0, -0x2cd2, 0x2cd2, -0x2cd4, 0x2cd4, -0x2cd6, 0x2cd6, -0x2cd8, 0x2cd8, -0x2cda, 0x2cda, -0x2cdc, 0x2cdc, -0x2cde, 0x2cde, -0x2ce0, 0x2ce0, -0x2ce2, 0x2ce2, -0x2ceb, 0x2ceb, -0x2ced, 0x2ced, -0x2cf2, 0x2cf2, -0xa640, 0xa640, -0xa642, 0xa642, -0xa644, 0xa644, -0xa646, 0xa646, -0xa648, 0xa648, -0xa64a, 0xa64a, -0xa64c, 0xa64c, -0xa64e, 0xa64e, -0xa650, 0xa650, -0xa652, 0xa652, -0xa654, 0xa654, -0xa656, 0xa656, -0xa658, 0xa658, -0xa65a, 0xa65a, -0xa65c, 0xa65c, -0xa65e, 0xa65e, -0xa660, 0xa660, -0xa662, 0xa662, -0xa664, 0xa664, -0xa666, 0xa666, -0xa668, 0xa668, -0xa66a, 0xa66a, -0xa66c, 0xa66c, -0xa680, 0xa680, -0xa682, 0xa682, -0xa684, 0xa684, -0xa686, 0xa686, -0xa688, 0xa688, -0xa68a, 0xa68a, -0xa68c, 0xa68c, -0xa68e, 0xa68e, -0xa690, 0xa690, -0xa692, 0xa692, -0xa694, 0xa694, -0xa696, 0xa696, -0xa698, 0xa698, -0xa69a, 0xa69a, -0xa722, 0xa722, -0xa724, 0xa724, -0xa726, 0xa726, -0xa728, 0xa728, -0xa72a, 0xa72a, -0xa72c, 0xa72c, -0xa72e, 0xa72e, -0xa732, 0xa732, -0xa734, 0xa734, -0xa736, 0xa736, -0xa738, 0xa738, -0xa73a, 0xa73a, -0xa73c, 0xa73c, -0xa73e, 0xa73e, -0xa740, 0xa740, -0xa742, 0xa742, -0xa744, 0xa744, -0xa746, 0xa746, -0xa748, 0xa748, -0xa74a, 0xa74a, -0xa74c, 0xa74c, -0xa74e, 0xa74e, -0xa750, 0xa750, -0xa752, 0xa752, -0xa754, 0xa754, -0xa756, 0xa756, -0xa758, 0xa758, -0xa75a, 0xa75a, -0xa75c, 0xa75c, -0xa75e, 0xa75e, -0xa760, 0xa760, -0xa762, 0xa762, -0xa764, 0xa764, -0xa766, 0xa766, -0xa768, 0xa768, -0xa76a, 0xa76a, -0xa76c, 0xa76c, -0xa76e, 0xa76e, -0xa779, 0xa779, -0xa77b, 0xa77b, -0xa77d, 0xa77e, -0xa780, 0xa780, -0xa782, 0xa782, -0xa784, 0xa784, -0xa786, 0xa786, -0xa78b, 0xa78b, -0xa78d, 0xa78d, -0xa790, 0xa790, -0xa792, 0xa792, -0xa796, 0xa796, -0xa798, 0xa798, -0xa79a, 0xa79a, -0xa79c, 0xa79c, -0xa79e, 0xa79e, -0xa7a0, 0xa7a0, -0xa7a2, 0xa7a2, -0xa7a4, 0xa7a4, -0xa7a6, 0xa7a6, -0xa7a8, 0xa7a8, -0xa7aa, 0xa7ae, -0xa7b0, 0xa7b4, -0xa7b6, 0xa7b6, -0xa7b8, 0xa7b8, -0xa7ba, 0xa7ba, -0xa7bc, 0xa7bc, -0xa7be, 0xa7be, -0xa7c2, 0xa7c2, -0xa7c4, 0xa7c6, -0xff21, 0xff3a, -0x10400, 0x10427, -0x104b0, 0x104d3, -0x10c80, 0x10cb2, -0x118a0, 0x118bf, -0x16e40, 0x16e5f, -0x1d400, 0x1d419, -0x1d434, 0x1d44d, -0x1d468, 0x1d481, -0x1d49c, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b5, -0x1d4d0, 0x1d4e9, -0x1d504, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d538, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d56c, 0x1d585, -0x1d5a0, 0x1d5b9, -0x1d5d4, 0x1d5ed, -0x1d608, 0x1d621, -0x1d63c, 0x1d655, -0x1d670, 0x1d689, -0x1d6a8, 0x1d6c0, -0x1d6e2, 0x1d6fa, -0x1d71c, 0x1d734, -0x1d756, 0x1d76e, -0x1d790, 0x1d7a8, -0x1d7ca, 0x1d7ca, -0x1e900, 0x1e921, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -}; /* END of CR_Upper */ - -/* PROPERTY: 'XDigit': POSIX [[:XDigit:]] */ -static const OnigCodePoint -CR_XDigit[] = { 3, -0x0030, 0x0039, -0x0041, 0x0046, -0x0061, 0x0066, -}; /* END of CR_XDigit */ - -/* PROPERTY: 'Word': POSIX [[:Word:]] */ -static const OnigCodePoint -CR_Word[] = { 716, -0x0030, 0x0039, -0x0041, 0x005a, -0x005f, 0x005f, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0300, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x0483, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0669, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06df, 0x06e8, -0x06ea, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07f5, -0x07fa, 0x07fa, -0x07fd, 0x07fd, -0x0800, 0x082d, -0x0840, 0x085b, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x08e1, -0x08e3, 0x0963, -0x0966, 0x096f, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09f1, -0x09fc, 0x09fc, -0x09fe, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0aef, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b6f, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bef, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d66, 0x0d6f, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e4e, -0x0e50, 0x0e59, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f18, 0x0f19, -0x0f20, 0x0f29, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f3e, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f84, -0x0f86, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x1000, 0x1049, -0x1050, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x135f, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1734, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17d3, -0x17d7, 0x17d7, -0x17dc, 0x17dd, -0x17e0, 0x17e9, -0x180b, 0x180d, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1946, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19d9, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa7, 0x1aa7, -0x1ab0, 0x1abe, -0x1b00, 0x1b4b, -0x1b50, 0x1b59, -0x1b6b, 0x1b73, -0x1b80, 0x1bf3, -0x1c00, 0x1c37, -0x1c40, 0x1c49, -0x1c4d, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1cd0, 0x1cd2, -0x1cd4, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x203f, 0x2040, -0x2054, 0x2054, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x20d0, 0x20f0, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x2e2f, 0x2e2f, -0x3005, 0x3007, -0x3021, 0x302f, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x3099, 0x309a, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa62b, -0xa640, 0xa672, -0xa674, 0xa67d, -0xa67f, 0xa6f1, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c5, -0xa8d0, 0xa8d9, -0xa8e0, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa92d, -0xa930, 0xa953, -0xa960, 0xa97c, -0xa980, 0xa9c0, -0xa9cf, 0xa9d9, -0xa9e0, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa60, 0xaa76, -0xaa7a, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xabec, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe00, 0xfe0f, -0xfe20, 0xfe2f, -0xfe33, 0xfe34, -0xfe4d, 0xfe4f, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff10, 0xff19, -0xff21, 0xff3a, -0xff3f, 0xff3f, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x101fd, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102e0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae6, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10d30, 0x10d39, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f50, -0x10fe0, 0x10ff6, -0x11000, 0x11046, -0x11066, 0x1106f, -0x1107f, 0x110ba, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x1113f, -0x11144, 0x11146, -0x11150, 0x11173, -0x11176, 0x11176, -0x11180, 0x111c4, -0x111c9, 0x111cc, -0x111d0, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x1144a, -0x11450, 0x11459, -0x1145e, 0x1145f, -0x11480, 0x114c5, -0x114c7, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115c0, -0x115d8, 0x115dd, -0x11600, 0x11640, -0x11644, 0x11644, -0x11650, 0x11659, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x11739, -0x11800, 0x1183a, -0x118a0, 0x118e9, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a3e, -0x11a47, 0x11a47, -0x11a50, 0x11a99, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c40, -0x11c50, 0x11c59, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16ad0, 0x16aed, -0x16af0, 0x16af4, -0x16b00, 0x16b36, -0x16b40, 0x16b43, -0x16b50, 0x16b59, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9d, 0x1bc9e, -0x1d165, 0x1d169, -0x1d16d, 0x1d172, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2f9, -0x1e800, 0x1e8c4, -0x1e8d0, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0100, 0xe01ef, -}; /* END of CR_Word */ - -/* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */ -static const OnigCodePoint -CR_Alnum[] = { 715, -0x0030, 0x0039, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0345, 0x0345, -0x0370, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x05b0, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0657, -0x0659, 0x0669, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06e1, 0x06e8, -0x06ed, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x073f, -0x074d, 0x07b1, -0x07c0, 0x07ea, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x0800, 0x0817, -0x081a, 0x082c, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d4, 0x08df, -0x08e3, 0x08e9, -0x08f0, 0x093b, -0x093d, 0x094c, -0x094e, 0x0950, -0x0955, 0x0963, -0x0966, 0x096f, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09cc, -0x09ce, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09f1, -0x09fc, 0x09fc, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4c, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acc, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0aef, -0x0af9, 0x0afc, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4c, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b6f, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcc, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bef, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4c, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccc, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4c, -0x0d4e, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d66, 0x0d6f, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e46, -0x0e4d, 0x0e4d, -0x0e50, 0x0e59, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb9, -0x0ebb, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ecd, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f20, 0x0f29, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f81, -0x0f88, 0x0f97, -0x0f99, 0x0fbc, -0x1000, 0x1036, -0x1038, 0x1038, -0x103b, 0x1049, -0x1050, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1713, -0x1720, 0x1733, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17b3, -0x17b6, 0x17c8, -0x17d7, 0x17d7, -0x17dc, 0x17dc, -0x17e0, 0x17e9, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x1938, -0x1946, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19d9, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a61, 0x1a74, -0x1a80, 0x1a89, -0x1a90, 0x1a99, -0x1aa7, 0x1aa7, -0x1b00, 0x1b33, -0x1b35, 0x1b43, -0x1b45, 0x1b4b, -0x1b50, 0x1b59, -0x1b80, 0x1ba9, -0x1bac, 0x1be5, -0x1be7, 0x1bf1, -0x1c00, 0x1c36, -0x1c40, 0x1c49, -0x1c4d, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1de7, 0x1df4, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x2e2f, 0x2e2f, -0x3005, 0x3007, -0x3021, 0x3029, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa62b, -0xa640, 0xa66e, -0xa674, 0xa67b, -0xa67f, 0xa6ef, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa805, -0xa807, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c3, -0xa8c5, 0xa8c5, -0xa8d0, 0xa8d9, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa92a, -0xa930, 0xa952, -0xa960, 0xa97c, -0xa980, 0xa9b2, -0xa9b4, 0xa9bf, -0xa9cf, 0xa9d9, -0xa9e0, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa60, 0xaa76, -0xaa7a, 0xaabe, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf5, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff10, 0xff19, -0xff21, 0xff3a, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10d30, 0x10d39, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11000, 0x11045, -0x11066, 0x1106f, -0x11082, 0x110b8, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11132, -0x11136, 0x1113f, -0x11144, 0x11146, -0x11150, 0x11172, -0x11176, 0x11176, -0x11180, 0x111bf, -0x111c1, 0x111c4, -0x111d0, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11234, -0x11237, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112e8, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134c, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11400, 0x11441, -0x11443, 0x11445, -0x11447, 0x1144a, -0x11450, 0x11459, -0x1145f, 0x1145f, -0x11480, 0x114c1, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115be, -0x115d8, 0x115dd, -0x11600, 0x1163e, -0x11640, 0x11640, -0x11644, 0x11644, -0x11650, 0x11659, -0x11680, 0x116b5, -0x116b8, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172a, -0x11730, 0x11739, -0x11800, 0x11838, -0x118a0, 0x118e9, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119df, -0x119e1, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a32, -0x11a35, 0x11a3e, -0x11a50, 0x11a97, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c3e, -0x11c40, 0x11c40, -0x11c50, 0x11c59, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d41, -0x11d43, 0x11d43, -0x11d46, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d96, -0x11d98, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b40, 0x16b43, -0x16b50, 0x16b59, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9e, 0x1bc9e, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e2f0, 0x1e2f9, -0x1e800, 0x1e8c4, -0x1e900, 0x1e943, -0x1e947, 0x1e947, -0x1e94b, 0x1e94b, -0x1e950, 0x1e959, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Alnum */ - -/* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */ -static const OnigCodePoint -CR_ASCII[] = { 1, -0x0000, 0x007f, -}; /* END of CR_ASCII */ - - -/* PROPERTY: 'ASCII_Hex_Digit': Binary Property */ -#define CR_ASCII_Hex_Digit CR_XDigit - -/* PROPERTY: 'Adlam': Script */ -static const OnigCodePoint -CR_Adlam[] = { 3, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1e95e, 0x1e95f, -}; /* END of CR_Adlam */ - -/* PROPERTY: 'Ahom': Script */ -static const OnigCodePoint -CR_Ahom[] = { 3, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x1173f, -}; /* END of CR_Ahom */ - -/* PROPERTY: 'Alphabetic': Derived Property */ -#define CR_Alphabetic CR_Alpha - -/* PROPERTY: 'Anatolian_Hieroglyphs': Script */ -static const OnigCodePoint -CR_Anatolian_Hieroglyphs[] = { 1, -0x14400, 0x14646, -}; /* END of CR_Anatolian_Hieroglyphs */ - -/* PROPERTY: 'Any': - */ -static const OnigCodePoint -CR_Any[] = { 1, -0x0000, 0x10ffff, -}; /* END of CR_Any */ - -/* PROPERTY: 'Arabic': Script */ -static const OnigCodePoint -CR_Arabic[] = { 57, -0x0600, 0x0604, -0x0606, 0x060b, -0x060d, 0x061a, -0x061c, 0x061c, -0x061e, 0x061e, -0x0620, 0x063f, -0x0641, 0x064a, -0x0656, 0x066f, -0x0671, 0x06dc, -0x06de, 0x06ff, -0x0750, 0x077f, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x08e1, -0x08e3, 0x08ff, -0xfb50, 0xfbc1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfd, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0x10e60, 0x10e7e, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -}; /* END of CR_Arabic */ - -/* PROPERTY: 'Armenian': Script */ -static const OnigCodePoint -CR_Armenian[] = { 5, -0x0531, 0x0556, -0x0559, 0x0588, -0x058a, 0x058a, -0x058d, 0x058f, -0xfb13, 0xfb17, -}; /* END of CR_Armenian */ - -/* PROPERTY: 'Assigned': - */ -static const OnigCodePoint -CR_Assigned[] = { 666, -0x0000, 0x0377, -0x037a, 0x037f, -0x0384, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x052f, -0x0531, 0x0556, -0x0559, 0x058a, -0x058d, 0x058f, -0x0591, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f4, -0x0600, 0x061c, -0x061e, 0x070d, -0x070f, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07fa, -0x07fd, 0x082d, -0x0830, 0x083e, -0x0840, 0x085b, -0x085e, 0x085e, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a76, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0af1, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b77, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bfa, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c77, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4f, -0x0d54, 0x0d63, -0x0d66, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df4, -0x0e01, 0x0e3a, -0x0e3f, 0x0e5b, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f97, -0x0f99, 0x0fbc, -0x0fbe, 0x0fcc, -0x0fce, 0x0fda, -0x1000, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x137c, -0x1380, 0x1399, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1400, 0x169c, -0x16a0, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1736, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17dd, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x1800, 0x180e, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1940, 0x1940, -0x1944, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x19de, 0x1a1b, -0x1a1e, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa0, 0x1aad, -0x1ab0, 0x1abe, -0x1b00, 0x1b4b, -0x1b50, 0x1b7c, -0x1b80, 0x1bf3, -0x1bfc, 0x1c37, -0x1c3b, 0x1c49, -0x1c4d, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cc7, -0x1cd0, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fc4, -0x1fc6, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fdd, 0x1fef, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffe, -0x2000, 0x2064, -0x2066, 0x2071, -0x2074, 0x208e, -0x2090, 0x209c, -0x20a0, 0x20bf, -0x20d0, 0x20f0, -0x2100, 0x218b, -0x2190, 0x2426, -0x2440, 0x244a, -0x2460, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2cf3, -0x2cf9, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d70, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2e4f, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, -0x3041, 0x3096, -0x3099, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x3190, 0x31ba, -0x31c0, 0x31e3, -0x31f0, 0x321e, -0x3220, 0x4db5, -0x4dc0, 0x9fef, -0xa000, 0xa48c, -0xa490, 0xa4c6, -0xa4d0, 0xa62b, -0xa640, 0xa6f7, -0xa700, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa82b, -0xa830, 0xa839, -0xa840, 0xa877, -0xa880, 0xa8c5, -0xa8ce, 0xa8d9, -0xa8e0, 0xa953, -0xa95f, 0xa97c, -0xa980, 0xa9cd, -0xa9cf, 0xa9d9, -0xa9de, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa5c, 0xaac2, -0xaadb, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab67, -0xab70, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xd800, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbc1, -0xfbd3, 0xfd3f, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfd, -0xfe00, 0xfe19, -0xfe20, 0xfe52, -0xfe54, 0xfe66, -0xfe68, 0xfe6b, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xfeff, 0xfeff, -0xff01, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfff9, 0xfffd, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10100, 0x10102, -0x10107, 0x10133, -0x10137, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102fb, -0x10300, 0x10323, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x1039f, 0x103c3, -0x103c8, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x1056f, 0x1056f, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10857, 0x1089e, -0x108a7, 0x108af, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x108fb, 0x1091b, -0x1091f, 0x10939, -0x1093f, 0x1093f, -0x10980, 0x109b7, -0x109bc, 0x109cf, -0x109d2, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a48, -0x10a50, 0x10a58, -0x10a60, 0x10a9f, -0x10ac0, 0x10ae6, -0x10aeb, 0x10af6, -0x10b00, 0x10b35, -0x10b39, 0x10b55, -0x10b58, 0x10b72, -0x10b78, 0x10b91, -0x10b99, 0x10b9c, -0x10ba9, 0x10baf, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10cfa, 0x10d27, -0x10d30, 0x10d39, -0x10e60, 0x10e7e, -0x10f00, 0x10f27, -0x10f30, 0x10f59, -0x10fe0, 0x10ff6, -0x11000, 0x1104d, -0x11052, 0x1106f, -0x1107f, 0x110c1, -0x110cd, 0x110cd, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x11146, -0x11150, 0x11176, -0x11180, 0x111cd, -0x111d0, 0x111df, -0x111e1, 0x111f4, -0x11200, 0x11211, -0x11213, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a9, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x11459, -0x1145b, 0x1145b, -0x1145d, 0x1145f, -0x11480, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115dd, -0x11600, 0x11644, -0x11650, 0x11659, -0x11660, 0x1166c, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x1173f, -0x11800, 0x1183b, -0x118a0, 0x118f2, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e4, -0x11a00, 0x11a47, -0x11a50, 0x11aa2, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c45, -0x11c50, 0x11c6c, -0x11c70, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef8, -0x11fc0, 0x11ff1, -0x11fff, 0x12399, -0x12400, 0x1246e, -0x12470, 0x12474, -0x12480, 0x12543, -0x13000, 0x1342e, -0x13430, 0x13438, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16a6e, 0x16a6f, -0x16ad0, 0x16aed, -0x16af0, 0x16af5, -0x16b00, 0x16b45, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e9a, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9c, 0x1bca3, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d1e8, -0x1d200, 0x1d245, -0x1d2e0, 0x1d2f3, -0x1d300, 0x1d356, -0x1d360, 0x1d378, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1da8b, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14f, -0x1e2c0, 0x1e2f9, -0x1e2ff, 0x1e2ff, -0x1e800, 0x1e8c4, -0x1e8c7, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1e95e, 0x1e95f, -0x1ec71, 0x1ecb4, -0x1ed01, 0x1ed3d, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f100, 0x1f10c, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -0xe0100, 0xe01ef, -0xf0000, 0xffffd, -0x100000, 0x10fffd, -}; /* END of CR_Assigned */ - -/* PROPERTY: 'Avestan': Script */ -static const OnigCodePoint -CR_Avestan[] = { 2, -0x10b00, 0x10b35, -0x10b39, 0x10b3f, -}; /* END of CR_Avestan */ - -/* PROPERTY: 'Balinese': Script */ -static const OnigCodePoint -CR_Balinese[] = { 2, -0x1b00, 0x1b4b, -0x1b50, 0x1b7c, -}; /* END of CR_Balinese */ - -/* PROPERTY: 'Bamum': Script */ -static const OnigCodePoint -CR_Bamum[] = { 2, -0xa6a0, 0xa6f7, -0x16800, 0x16a38, -}; /* END of CR_Bamum */ - -/* PROPERTY: 'Bassa_Vah': Script */ -static const OnigCodePoint -CR_Bassa_Vah[] = { 2, -0x16ad0, 0x16aed, -0x16af0, 0x16af5, -}; /* END of CR_Bassa_Vah */ - -/* PROPERTY: 'Batak': Script */ -static const OnigCodePoint -CR_Batak[] = { 2, -0x1bc0, 0x1bf3, -0x1bfc, 0x1bff, -}; /* END of CR_Batak */ - -/* PROPERTY: 'Bengali': Script */ -static const OnigCodePoint -CR_Bengali[] = { 14, -0x0980, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09fe, -}; /* END of CR_Bengali */ - -/* PROPERTY: 'Bhaiksuki': Script */ -static const OnigCodePoint -CR_Bhaiksuki[] = { 4, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c45, -0x11c50, 0x11c6c, -}; /* END of CR_Bhaiksuki */ - -/* PROPERTY: 'Bidi_Control': Binary Property */ -static const OnigCodePoint -CR_Bidi_Control[] = { 4, -0x061c, 0x061c, -0x200e, 0x200f, -0x202a, 0x202e, -0x2066, 0x2069, -}; /* END of CR_Bidi_Control */ - -/* PROPERTY: 'Bopomofo': Script */ -static const OnigCodePoint -CR_Bopomofo[] = { 3, -0x02ea, 0x02eb, -0x3105, 0x312f, -0x31a0, 0x31ba, -}; /* END of CR_Bopomofo */ - -/* PROPERTY: 'Brahmi': Script */ -static const OnigCodePoint -CR_Brahmi[] = { 3, -0x11000, 0x1104d, -0x11052, 0x1106f, -0x1107f, 0x1107f, -}; /* END of CR_Brahmi */ - -/* PROPERTY: 'Braille': Script */ -static const OnigCodePoint -CR_Braille[] = { 1, -0x2800, 0x28ff, -}; /* END of CR_Braille */ - -/* PROPERTY: 'Buginese': Script */ -static const OnigCodePoint -CR_Buginese[] = { 2, -0x1a00, 0x1a1b, -0x1a1e, 0x1a1f, -}; /* END of CR_Buginese */ - -/* PROPERTY: 'Buhid': Script */ -static const OnigCodePoint -CR_Buhid[] = { 1, -0x1740, 0x1753, -}; /* END of CR_Buhid */ - -/* PROPERTY: 'C': Major Category */ -static const OnigCodePoint -CR_C[] = { 668, -0x0000, 0x001f, -0x007f, 0x009f, -0x00ad, 0x00ad, -0x0378, 0x0379, -0x0380, 0x0383, -0x038b, 0x038b, -0x038d, 0x038d, -0x03a2, 0x03a2, -0x0530, 0x0530, -0x0557, 0x0558, -0x058b, 0x058c, -0x0590, 0x0590, -0x05c8, 0x05cf, -0x05eb, 0x05ee, -0x05f5, 0x0605, -0x061c, 0x061d, -0x06dd, 0x06dd, -0x070e, 0x070f, -0x074b, 0x074c, -0x07b2, 0x07bf, -0x07fb, 0x07fc, -0x082e, 0x082f, -0x083f, 0x083f, -0x085c, 0x085d, -0x085f, 0x085f, -0x086b, 0x089f, -0x08b5, 0x08b5, -0x08be, 0x08d2, -0x08e2, 0x08e2, -0x0984, 0x0984, -0x098d, 0x098e, -0x0991, 0x0992, -0x09a9, 0x09a9, -0x09b1, 0x09b1, -0x09b3, 0x09b5, -0x09ba, 0x09bb, -0x09c5, 0x09c6, -0x09c9, 0x09ca, -0x09cf, 0x09d6, -0x09d8, 0x09db, -0x09de, 0x09de, -0x09e4, 0x09e5, -0x09ff, 0x0a00, -0x0a04, 0x0a04, -0x0a0b, 0x0a0e, -0x0a11, 0x0a12, -0x0a29, 0x0a29, -0x0a31, 0x0a31, -0x0a34, 0x0a34, -0x0a37, 0x0a37, -0x0a3a, 0x0a3b, -0x0a3d, 0x0a3d, -0x0a43, 0x0a46, -0x0a49, 0x0a4a, -0x0a4e, 0x0a50, -0x0a52, 0x0a58, -0x0a5d, 0x0a5d, -0x0a5f, 0x0a65, -0x0a77, 0x0a80, -0x0a84, 0x0a84, -0x0a8e, 0x0a8e, -0x0a92, 0x0a92, -0x0aa9, 0x0aa9, -0x0ab1, 0x0ab1, -0x0ab4, 0x0ab4, -0x0aba, 0x0abb, -0x0ac6, 0x0ac6, -0x0aca, 0x0aca, -0x0ace, 0x0acf, -0x0ad1, 0x0adf, -0x0ae4, 0x0ae5, -0x0af2, 0x0af8, -0x0b00, 0x0b00, -0x0b04, 0x0b04, -0x0b0d, 0x0b0e, -0x0b11, 0x0b12, -0x0b29, 0x0b29, -0x0b31, 0x0b31, -0x0b34, 0x0b34, -0x0b3a, 0x0b3b, -0x0b45, 0x0b46, -0x0b49, 0x0b4a, -0x0b4e, 0x0b55, -0x0b58, 0x0b5b, -0x0b5e, 0x0b5e, -0x0b64, 0x0b65, -0x0b78, 0x0b81, -0x0b84, 0x0b84, -0x0b8b, 0x0b8d, -0x0b91, 0x0b91, -0x0b96, 0x0b98, -0x0b9b, 0x0b9b, -0x0b9d, 0x0b9d, -0x0ba0, 0x0ba2, -0x0ba5, 0x0ba7, -0x0bab, 0x0bad, -0x0bba, 0x0bbd, -0x0bc3, 0x0bc5, -0x0bc9, 0x0bc9, -0x0bce, 0x0bcf, -0x0bd1, 0x0bd6, -0x0bd8, 0x0be5, -0x0bfb, 0x0bff, -0x0c0d, 0x0c0d, -0x0c11, 0x0c11, -0x0c29, 0x0c29, -0x0c3a, 0x0c3c, -0x0c45, 0x0c45, -0x0c49, 0x0c49, -0x0c4e, 0x0c54, -0x0c57, 0x0c57, -0x0c5b, 0x0c5f, -0x0c64, 0x0c65, -0x0c70, 0x0c76, -0x0c8d, 0x0c8d, -0x0c91, 0x0c91, -0x0ca9, 0x0ca9, -0x0cb4, 0x0cb4, -0x0cba, 0x0cbb, -0x0cc5, 0x0cc5, -0x0cc9, 0x0cc9, -0x0cce, 0x0cd4, -0x0cd7, 0x0cdd, -0x0cdf, 0x0cdf, -0x0ce4, 0x0ce5, -0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, -0x0d04, 0x0d04, -0x0d0d, 0x0d0d, -0x0d11, 0x0d11, -0x0d45, 0x0d45, -0x0d49, 0x0d49, -0x0d50, 0x0d53, -0x0d64, 0x0d65, -0x0d80, 0x0d81, -0x0d84, 0x0d84, -0x0d97, 0x0d99, -0x0db2, 0x0db2, -0x0dbc, 0x0dbc, -0x0dbe, 0x0dbf, -0x0dc7, 0x0dc9, -0x0dcb, 0x0dce, -0x0dd5, 0x0dd5, -0x0dd7, 0x0dd7, -0x0de0, 0x0de5, -0x0df0, 0x0df1, -0x0df5, 0x0e00, -0x0e3b, 0x0e3e, -0x0e5c, 0x0e80, -0x0e83, 0x0e83, -0x0e85, 0x0e85, -0x0e8b, 0x0e8b, -0x0ea4, 0x0ea4, -0x0ea6, 0x0ea6, -0x0ebe, 0x0ebf, -0x0ec5, 0x0ec5, -0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, -0x0eda, 0x0edb, -0x0ee0, 0x0eff, -0x0f48, 0x0f48, -0x0f6d, 0x0f70, -0x0f98, 0x0f98, -0x0fbd, 0x0fbd, -0x0fcd, 0x0fcd, -0x0fdb, 0x0fff, -0x10c6, 0x10c6, -0x10c8, 0x10cc, -0x10ce, 0x10cf, -0x1249, 0x1249, -0x124e, 0x124f, -0x1257, 0x1257, -0x1259, 0x1259, -0x125e, 0x125f, -0x1289, 0x1289, -0x128e, 0x128f, -0x12b1, 0x12b1, -0x12b6, 0x12b7, -0x12bf, 0x12bf, -0x12c1, 0x12c1, -0x12c6, 0x12c7, -0x12d7, 0x12d7, -0x1311, 0x1311, -0x1316, 0x1317, -0x135b, 0x135c, -0x137d, 0x137f, -0x139a, 0x139f, -0x13f6, 0x13f7, -0x13fe, 0x13ff, -0x169d, 0x169f, -0x16f9, 0x16ff, -0x170d, 0x170d, -0x1715, 0x171f, -0x1737, 0x173f, -0x1754, 0x175f, -0x176d, 0x176d, -0x1771, 0x1771, -0x1774, 0x177f, -0x17de, 0x17df, -0x17ea, 0x17ef, -0x17fa, 0x17ff, -0x180e, 0x180f, -0x181a, 0x181f, -0x1879, 0x187f, -0x18ab, 0x18af, -0x18f6, 0x18ff, -0x191f, 0x191f, -0x192c, 0x192f, -0x193c, 0x193f, -0x1941, 0x1943, -0x196e, 0x196f, -0x1975, 0x197f, -0x19ac, 0x19af, -0x19ca, 0x19cf, -0x19db, 0x19dd, -0x1a1c, 0x1a1d, -0x1a5f, 0x1a5f, -0x1a7d, 0x1a7e, -0x1a8a, 0x1a8f, -0x1a9a, 0x1a9f, -0x1aae, 0x1aaf, -0x1abf, 0x1aff, -0x1b4c, 0x1b4f, -0x1b7d, 0x1b7f, -0x1bf4, 0x1bfb, -0x1c38, 0x1c3a, -0x1c4a, 0x1c4c, -0x1c89, 0x1c8f, -0x1cbb, 0x1cbc, -0x1cc8, 0x1ccf, -0x1cfb, 0x1cff, -0x1dfa, 0x1dfa, -0x1f16, 0x1f17, -0x1f1e, 0x1f1f, -0x1f46, 0x1f47, -0x1f4e, 0x1f4f, -0x1f58, 0x1f58, -0x1f5a, 0x1f5a, -0x1f5c, 0x1f5c, -0x1f5e, 0x1f5e, -0x1f7e, 0x1f7f, -0x1fb5, 0x1fb5, -0x1fc5, 0x1fc5, -0x1fd4, 0x1fd5, -0x1fdc, 0x1fdc, -0x1ff0, 0x1ff1, -0x1ff5, 0x1ff5, -0x1fff, 0x1fff, -0x200b, 0x200f, -0x202a, 0x202e, -0x2060, 0x206f, -0x2072, 0x2073, -0x208f, 0x208f, -0x209d, 0x209f, -0x20c0, 0x20cf, -0x20f1, 0x20ff, -0x218c, 0x218f, -0x2427, 0x243f, -0x244b, 0x245f, -0x2b74, 0x2b75, -0x2b96, 0x2b97, -0x2c2f, 0x2c2f, -0x2c5f, 0x2c5f, -0x2cf4, 0x2cf8, -0x2d26, 0x2d26, -0x2d28, 0x2d2c, -0x2d2e, 0x2d2f, -0x2d68, 0x2d6e, -0x2d71, 0x2d7e, -0x2d97, 0x2d9f, -0x2da7, 0x2da7, -0x2daf, 0x2daf, -0x2db7, 0x2db7, -0x2dbf, 0x2dbf, -0x2dc7, 0x2dc7, -0x2dcf, 0x2dcf, -0x2dd7, 0x2dd7, -0x2ddf, 0x2ddf, -0x2e50, 0x2e7f, -0x2e9a, 0x2e9a, -0x2ef4, 0x2eff, -0x2fd6, 0x2fef, -0x2ffc, 0x2fff, -0x3040, 0x3040, -0x3097, 0x3098, -0x3100, 0x3104, -0x3130, 0x3130, -0x318f, 0x318f, -0x31bb, 0x31bf, -0x31e4, 0x31ef, -0x321f, 0x321f, -0x4db6, 0x4dbf, -0x9ff0, 0x9fff, -0xa48d, 0xa48f, -0xa4c7, 0xa4cf, -0xa62c, 0xa63f, -0xa6f8, 0xa6ff, -0xa7c0, 0xa7c1, -0xa7c7, 0xa7f6, -0xa82c, 0xa82f, -0xa83a, 0xa83f, -0xa878, 0xa87f, -0xa8c6, 0xa8cd, -0xa8da, 0xa8df, -0xa954, 0xa95e, -0xa97d, 0xa97f, -0xa9ce, 0xa9ce, -0xa9da, 0xa9dd, -0xa9ff, 0xa9ff, -0xaa37, 0xaa3f, -0xaa4e, 0xaa4f, -0xaa5a, 0xaa5b, -0xaac3, 0xaada, -0xaaf7, 0xab00, -0xab07, 0xab08, -0xab0f, 0xab10, -0xab17, 0xab1f, -0xab27, 0xab27, -0xab2f, 0xab2f, -0xab68, 0xab6f, -0xabee, 0xabef, -0xabfa, 0xabff, -0xd7a4, 0xd7af, -0xd7c7, 0xd7ca, -0xd7fc, 0xf8ff, -0xfa6e, 0xfa6f, -0xfada, 0xfaff, -0xfb07, 0xfb12, -0xfb18, 0xfb1c, -0xfb37, 0xfb37, -0xfb3d, 0xfb3d, -0xfb3f, 0xfb3f, -0xfb42, 0xfb42, -0xfb45, 0xfb45, -0xfbc2, 0xfbd2, -0xfd40, 0xfd4f, -0xfd90, 0xfd91, -0xfdc8, 0xfdef, -0xfdfe, 0xfdff, -0xfe1a, 0xfe1f, -0xfe53, 0xfe53, -0xfe67, 0xfe67, -0xfe6c, 0xfe6f, -0xfe75, 0xfe75, -0xfefd, 0xff00, -0xffbf, 0xffc1, -0xffc8, 0xffc9, -0xffd0, 0xffd1, -0xffd8, 0xffd9, -0xffdd, 0xffdf, -0xffe7, 0xffe7, -0xffef, 0xfffb, -0xfffe, 0xffff, -0x1000c, 0x1000c, -0x10027, 0x10027, -0x1003b, 0x1003b, -0x1003e, 0x1003e, -0x1004e, 0x1004f, -0x1005e, 0x1007f, -0x100fb, 0x100ff, -0x10103, 0x10106, -0x10134, 0x10136, -0x1018f, 0x1018f, -0x1019c, 0x1019f, -0x101a1, 0x101cf, -0x101fe, 0x1027f, -0x1029d, 0x1029f, -0x102d1, 0x102df, -0x102fc, 0x102ff, -0x10324, 0x1032c, -0x1034b, 0x1034f, -0x1037b, 0x1037f, -0x1039e, 0x1039e, -0x103c4, 0x103c7, -0x103d6, 0x103ff, -0x1049e, 0x1049f, -0x104aa, 0x104af, -0x104d4, 0x104d7, -0x104fc, 0x104ff, -0x10528, 0x1052f, -0x10564, 0x1056e, -0x10570, 0x105ff, -0x10737, 0x1073f, -0x10756, 0x1075f, -0x10768, 0x107ff, -0x10806, 0x10807, -0x10809, 0x10809, -0x10836, 0x10836, -0x10839, 0x1083b, -0x1083d, 0x1083e, -0x10856, 0x10856, -0x1089f, 0x108a6, -0x108b0, 0x108df, -0x108f3, 0x108f3, -0x108f6, 0x108fa, -0x1091c, 0x1091e, -0x1093a, 0x1093e, -0x10940, 0x1097f, -0x109b8, 0x109bb, -0x109d0, 0x109d1, -0x10a04, 0x10a04, -0x10a07, 0x10a0b, -0x10a14, 0x10a14, -0x10a18, 0x10a18, -0x10a36, 0x10a37, -0x10a3b, 0x10a3e, -0x10a49, 0x10a4f, -0x10a59, 0x10a5f, -0x10aa0, 0x10abf, -0x10ae7, 0x10aea, -0x10af7, 0x10aff, -0x10b36, 0x10b38, -0x10b56, 0x10b57, -0x10b73, 0x10b77, -0x10b92, 0x10b98, -0x10b9d, 0x10ba8, -0x10bb0, 0x10bff, -0x10c49, 0x10c7f, -0x10cb3, 0x10cbf, -0x10cf3, 0x10cf9, -0x10d28, 0x10d2f, -0x10d3a, 0x10e5f, -0x10e7f, 0x10eff, -0x10f28, 0x10f2f, -0x10f5a, 0x10fdf, -0x10ff7, 0x10fff, -0x1104e, 0x11051, -0x11070, 0x1107e, -0x110bd, 0x110bd, -0x110c2, 0x110cf, -0x110e9, 0x110ef, -0x110fa, 0x110ff, -0x11135, 0x11135, -0x11147, 0x1114f, -0x11177, 0x1117f, -0x111ce, 0x111cf, -0x111e0, 0x111e0, -0x111f5, 0x111ff, -0x11212, 0x11212, -0x1123f, 0x1127f, -0x11287, 0x11287, -0x11289, 0x11289, -0x1128e, 0x1128e, -0x1129e, 0x1129e, -0x112aa, 0x112af, -0x112eb, 0x112ef, -0x112fa, 0x112ff, -0x11304, 0x11304, -0x1130d, 0x1130e, -0x11311, 0x11312, -0x11329, 0x11329, -0x11331, 0x11331, -0x11334, 0x11334, -0x1133a, 0x1133a, -0x11345, 0x11346, -0x11349, 0x1134a, -0x1134e, 0x1134f, -0x11351, 0x11356, -0x11358, 0x1135c, -0x11364, 0x11365, -0x1136d, 0x1136f, -0x11375, 0x113ff, -0x1145a, 0x1145a, -0x1145c, 0x1145c, -0x11460, 0x1147f, -0x114c8, 0x114cf, -0x114da, 0x1157f, -0x115b6, 0x115b7, -0x115de, 0x115ff, -0x11645, 0x1164f, -0x1165a, 0x1165f, -0x1166d, 0x1167f, -0x116b9, 0x116bf, -0x116ca, 0x116ff, -0x1171b, 0x1171c, -0x1172c, 0x1172f, -0x11740, 0x117ff, -0x1183c, 0x1189f, -0x118f3, 0x118fe, -0x11900, 0x1199f, -0x119a8, 0x119a9, -0x119d8, 0x119d9, -0x119e5, 0x119ff, -0x11a48, 0x11a4f, -0x11aa3, 0x11abf, -0x11af9, 0x11bff, -0x11c09, 0x11c09, -0x11c37, 0x11c37, -0x11c46, 0x11c4f, -0x11c6d, 0x11c6f, -0x11c90, 0x11c91, -0x11ca8, 0x11ca8, -0x11cb7, 0x11cff, -0x11d07, 0x11d07, -0x11d0a, 0x11d0a, -0x11d37, 0x11d39, -0x11d3b, 0x11d3b, -0x11d3e, 0x11d3e, -0x11d48, 0x11d4f, -0x11d5a, 0x11d5f, -0x11d66, 0x11d66, -0x11d69, 0x11d69, -0x11d8f, 0x11d8f, -0x11d92, 0x11d92, -0x11d99, 0x11d9f, -0x11daa, 0x11edf, -0x11ef9, 0x11fbf, -0x11ff2, 0x11ffe, -0x1239a, 0x123ff, -0x1246f, 0x1246f, -0x12475, 0x1247f, -0x12544, 0x12fff, -0x1342f, 0x143ff, -0x14647, 0x167ff, -0x16a39, 0x16a3f, -0x16a5f, 0x16a5f, -0x16a6a, 0x16a6d, -0x16a70, 0x16acf, -0x16aee, 0x16aef, -0x16af6, 0x16aff, -0x16b46, 0x16b4f, -0x16b5a, 0x16b5a, -0x16b62, 0x16b62, -0x16b78, 0x16b7c, -0x16b90, 0x16e3f, -0x16e9b, 0x16eff, -0x16f4b, 0x16f4e, -0x16f88, 0x16f8e, -0x16fa0, 0x16fdf, -0x16fe4, 0x16fff, -0x187f8, 0x187ff, -0x18af3, 0x1afff, -0x1b11f, 0x1b14f, -0x1b153, 0x1b163, -0x1b168, 0x1b16f, -0x1b2fc, 0x1bbff, -0x1bc6b, 0x1bc6f, -0x1bc7d, 0x1bc7f, -0x1bc89, 0x1bc8f, -0x1bc9a, 0x1bc9b, -0x1bca0, 0x1cfff, -0x1d0f6, 0x1d0ff, -0x1d127, 0x1d128, -0x1d173, 0x1d17a, -0x1d1e9, 0x1d1ff, -0x1d246, 0x1d2df, -0x1d2f4, 0x1d2ff, -0x1d357, 0x1d35f, -0x1d379, 0x1d3ff, -0x1d455, 0x1d455, -0x1d49d, 0x1d49d, -0x1d4a0, 0x1d4a1, -0x1d4a3, 0x1d4a4, -0x1d4a7, 0x1d4a8, -0x1d4ad, 0x1d4ad, -0x1d4ba, 0x1d4ba, -0x1d4bc, 0x1d4bc, -0x1d4c4, 0x1d4c4, -0x1d506, 0x1d506, -0x1d50b, 0x1d50c, -0x1d515, 0x1d515, -0x1d51d, 0x1d51d, -0x1d53a, 0x1d53a, -0x1d53f, 0x1d53f, -0x1d545, 0x1d545, -0x1d547, 0x1d549, -0x1d551, 0x1d551, -0x1d6a6, 0x1d6a7, -0x1d7cc, 0x1d7cd, -0x1da8c, 0x1da9a, -0x1daa0, 0x1daa0, -0x1dab0, 0x1dfff, -0x1e007, 0x1e007, -0x1e019, 0x1e01a, -0x1e022, 0x1e022, -0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, -0x1e12d, 0x1e12f, -0x1e13e, 0x1e13f, -0x1e14a, 0x1e14d, -0x1e150, 0x1e2bf, -0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7ff, -0x1e8c5, 0x1e8c6, -0x1e8d7, 0x1e8ff, -0x1e94c, 0x1e94f, -0x1e95a, 0x1e95d, -0x1e960, 0x1ec70, -0x1ecb5, 0x1ed00, -0x1ed3e, 0x1edff, -0x1ee04, 0x1ee04, -0x1ee20, 0x1ee20, -0x1ee23, 0x1ee23, -0x1ee25, 0x1ee26, -0x1ee28, 0x1ee28, -0x1ee33, 0x1ee33, -0x1ee38, 0x1ee38, -0x1ee3a, 0x1ee3a, -0x1ee3c, 0x1ee41, -0x1ee43, 0x1ee46, -0x1ee48, 0x1ee48, -0x1ee4a, 0x1ee4a, -0x1ee4c, 0x1ee4c, -0x1ee50, 0x1ee50, -0x1ee53, 0x1ee53, -0x1ee55, 0x1ee56, -0x1ee58, 0x1ee58, -0x1ee5a, 0x1ee5a, -0x1ee5c, 0x1ee5c, -0x1ee5e, 0x1ee5e, -0x1ee60, 0x1ee60, -0x1ee63, 0x1ee63, -0x1ee65, 0x1ee66, -0x1ee6b, 0x1ee6b, -0x1ee73, 0x1ee73, -0x1ee78, 0x1ee78, -0x1ee7d, 0x1ee7d, -0x1ee7f, 0x1ee7f, -0x1ee8a, 0x1ee8a, -0x1ee9c, 0x1eea0, -0x1eea4, 0x1eea4, -0x1eeaa, 0x1eeaa, -0x1eebc, 0x1eeef, -0x1eef2, 0x1efff, -0x1f02c, 0x1f02f, -0x1f094, 0x1f09f, -0x1f0af, 0x1f0b0, -0x1f0c0, 0x1f0c0, -0x1f0d0, 0x1f0d0, -0x1f0f6, 0x1f0ff, -0x1f10d, 0x1f10f, -0x1f16d, 0x1f16f, -0x1f1ad, 0x1f1e5, -0x1f203, 0x1f20f, -0x1f23c, 0x1f23f, -0x1f249, 0x1f24f, -0x1f252, 0x1f25f, -0x1f266, 0x1f2ff, -0x1f6d6, 0x1f6df, -0x1f6ed, 0x1f6ef, -0x1f6fb, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, -0x1f7ec, 0x1f7ff, -0x1f80c, 0x1f80f, -0x1f848, 0x1f84f, -0x1f85a, 0x1f85f, -0x1f888, 0x1f88f, -0x1f8ae, 0x1f8ff, -0x1f90c, 0x1f90c, -0x1f972, 0x1f972, -0x1f977, 0x1f979, -0x1f9a3, 0x1f9a4, -0x1f9ab, 0x1f9ad, -0x1f9cb, 0x1f9cc, -0x1fa54, 0x1fa5f, -0x1fa6e, 0x1fa6f, -0x1fa74, 0x1fa77, -0x1fa7b, 0x1fa7f, -0x1fa83, 0x1fa8f, -0x1fa96, 0x1ffff, -0x2a6d7, 0x2a6ff, -0x2b735, 0x2b73f, -0x2b81e, 0x2b81f, -0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, -0x2fa1e, 0xe00ff, -0xe01f0, 0x10ffff, -}; /* END of CR_C */ - -/* PROPERTY: 'Canadian_Aboriginal': Script */ -static const OnigCodePoint -CR_Canadian_Aboriginal[] = { 2, -0x1400, 0x167f, -0x18b0, 0x18f5, -}; /* END of CR_Canadian_Aboriginal */ - -/* PROPERTY: 'Carian': Script */ -static const OnigCodePoint -CR_Carian[] = { 1, -0x102a0, 0x102d0, -}; /* END of CR_Carian */ - -/* PROPERTY: 'Case_Ignorable': Derived Property */ -static const OnigCodePoint -CR_Case_Ignorable[] = { 401, -0x0027, 0x0027, -0x002e, 0x002e, -0x003a, 0x003a, -0x005e, 0x005e, -0x0060, 0x0060, -0x00a8, 0x00a8, -0x00ad, 0x00ad, -0x00af, 0x00af, -0x00b4, 0x00b4, -0x00b7, 0x00b8, -0x02b0, 0x036f, -0x0374, 0x0375, -0x037a, 0x037a, -0x0384, 0x0385, -0x0387, 0x0387, -0x0483, 0x0489, -0x0559, 0x0559, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05f4, 0x05f4, -0x0600, 0x0605, -0x0610, 0x061a, -0x061c, 0x061c, -0x0640, 0x0640, -0x064b, 0x065f, -0x0670, 0x0670, -0x06d6, 0x06dd, -0x06df, 0x06e8, -0x06ea, 0x06ed, -0x070f, 0x070f, -0x0711, 0x0711, -0x0730, 0x074a, -0x07a6, 0x07b0, -0x07eb, 0x07f5, -0x07fa, 0x07fa, -0x07fd, 0x07fd, -0x0816, 0x082d, -0x0859, 0x085b, -0x08d3, 0x0902, -0x093a, 0x093a, -0x093c, 0x093c, -0x0941, 0x0948, -0x094d, 0x094d, -0x0951, 0x0957, -0x0962, 0x0963, -0x0971, 0x0971, -0x0981, 0x0981, -0x09bc, 0x09bc, -0x09c1, 0x09c4, -0x09cd, 0x09cd, -0x09e2, 0x09e3, -0x09fe, 0x09fe, -0x0a01, 0x0a02, -0x0a3c, 0x0a3c, -0x0a41, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a70, 0x0a71, -0x0a75, 0x0a75, -0x0a81, 0x0a82, -0x0abc, 0x0abc, -0x0ac1, 0x0ac5, -0x0ac7, 0x0ac8, -0x0acd, 0x0acd, -0x0ae2, 0x0ae3, -0x0afa, 0x0aff, -0x0b01, 0x0b01, -0x0b3c, 0x0b3c, -0x0b3f, 0x0b3f, -0x0b41, 0x0b44, -0x0b4d, 0x0b4d, -0x0b56, 0x0b56, -0x0b62, 0x0b63, -0x0b82, 0x0b82, -0x0bc0, 0x0bc0, -0x0bcd, 0x0bcd, -0x0c00, 0x0c00, -0x0c04, 0x0c04, -0x0c3e, 0x0c40, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c62, 0x0c63, -0x0c81, 0x0c81, -0x0cbc, 0x0cbc, -0x0cbf, 0x0cbf, -0x0cc6, 0x0cc6, -0x0ccc, 0x0ccd, -0x0ce2, 0x0ce3, -0x0d00, 0x0d01, -0x0d3b, 0x0d3c, -0x0d41, 0x0d44, -0x0d4d, 0x0d4d, -0x0d62, 0x0d63, -0x0dca, 0x0dca, -0x0dd2, 0x0dd4, -0x0dd6, 0x0dd6, -0x0e31, 0x0e31, -0x0e34, 0x0e3a, -0x0e46, 0x0e4e, -0x0eb1, 0x0eb1, -0x0eb4, 0x0ebc, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0f18, 0x0f19, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f71, 0x0f7e, -0x0f80, 0x0f84, -0x0f86, 0x0f87, -0x0f8d, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x102d, 0x1030, -0x1032, 0x1037, -0x1039, 0x103a, -0x103d, 0x103e, -0x1058, 0x1059, -0x105e, 0x1060, -0x1071, 0x1074, -0x1082, 0x1082, -0x1085, 0x1086, -0x108d, 0x108d, -0x109d, 0x109d, -0x10fc, 0x10fc, -0x135d, 0x135f, -0x1712, 0x1714, -0x1732, 0x1734, -0x1752, 0x1753, -0x1772, 0x1773, -0x17b4, 0x17b5, -0x17b7, 0x17bd, -0x17c6, 0x17c6, -0x17c9, 0x17d3, -0x17d7, 0x17d7, -0x17dd, 0x17dd, -0x180b, 0x180e, -0x1843, 0x1843, -0x1885, 0x1886, -0x18a9, 0x18a9, -0x1920, 0x1922, -0x1927, 0x1928, -0x1932, 0x1932, -0x1939, 0x193b, -0x1a17, 0x1a18, -0x1a1b, 0x1a1b, -0x1a56, 0x1a56, -0x1a58, 0x1a5e, -0x1a60, 0x1a60, -0x1a62, 0x1a62, -0x1a65, 0x1a6c, -0x1a73, 0x1a7c, -0x1a7f, 0x1a7f, -0x1aa7, 0x1aa7, -0x1ab0, 0x1abe, -0x1b00, 0x1b03, -0x1b34, 0x1b34, -0x1b36, 0x1b3a, -0x1b3c, 0x1b3c, -0x1b42, 0x1b42, -0x1b6b, 0x1b73, -0x1b80, 0x1b81, -0x1ba2, 0x1ba5, -0x1ba8, 0x1ba9, -0x1bab, 0x1bad, -0x1be6, 0x1be6, -0x1be8, 0x1be9, -0x1bed, 0x1bed, -0x1bef, 0x1bf1, -0x1c2c, 0x1c33, -0x1c36, 0x1c37, -0x1c78, 0x1c7d, -0x1cd0, 0x1cd2, -0x1cd4, 0x1ce0, -0x1ce2, 0x1ce8, -0x1ced, 0x1ced, -0x1cf4, 0x1cf4, -0x1cf8, 0x1cf9, -0x1d2c, 0x1d6a, -0x1d78, 0x1d78, -0x1d9b, 0x1df9, -0x1dfb, 0x1dff, -0x1fbd, 0x1fbd, -0x1fbf, 0x1fc1, -0x1fcd, 0x1fcf, -0x1fdd, 0x1fdf, -0x1fed, 0x1fef, -0x1ffd, 0x1ffe, -0x200b, 0x200f, -0x2018, 0x2019, -0x2024, 0x2024, -0x2027, 0x2027, -0x202a, 0x202e, -0x2060, 0x2064, -0x2066, 0x206f, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x20d0, 0x20f0, -0x2c7c, 0x2c7d, -0x2cef, 0x2cf1, -0x2d6f, 0x2d6f, -0x2d7f, 0x2d7f, -0x2de0, 0x2dff, -0x2e2f, 0x2e2f, -0x3005, 0x3005, -0x302a, 0x302d, -0x3031, 0x3035, -0x303b, 0x303b, -0x3099, 0x309e, -0x30fc, 0x30fe, -0xa015, 0xa015, -0xa4f8, 0xa4fd, -0xa60c, 0xa60c, -0xa66f, 0xa672, -0xa674, 0xa67d, -0xa67f, 0xa67f, -0xa69c, 0xa69f, -0xa6f0, 0xa6f1, -0xa700, 0xa721, -0xa770, 0xa770, -0xa788, 0xa78a, -0xa7f8, 0xa7f9, -0xa802, 0xa802, -0xa806, 0xa806, -0xa80b, 0xa80b, -0xa825, 0xa826, -0xa8c4, 0xa8c5, -0xa8e0, 0xa8f1, -0xa8ff, 0xa8ff, -0xa926, 0xa92d, -0xa947, 0xa951, -0xa980, 0xa982, -0xa9b3, 0xa9b3, -0xa9b6, 0xa9b9, -0xa9bc, 0xa9bd, -0xa9cf, 0xa9cf, -0xa9e5, 0xa9e6, -0xaa29, 0xaa2e, -0xaa31, 0xaa32, -0xaa35, 0xaa36, -0xaa43, 0xaa43, -0xaa4c, 0xaa4c, -0xaa70, 0xaa70, -0xaa7c, 0xaa7c, -0xaab0, 0xaab0, -0xaab2, 0xaab4, -0xaab7, 0xaab8, -0xaabe, 0xaabf, -0xaac1, 0xaac1, -0xaadd, 0xaadd, -0xaaec, 0xaaed, -0xaaf3, 0xaaf4, -0xaaf6, 0xaaf6, -0xab5b, 0xab5f, -0xabe5, 0xabe5, -0xabe8, 0xabe8, -0xabed, 0xabed, -0xfb1e, 0xfb1e, -0xfbb2, 0xfbc1, -0xfe00, 0xfe0f, -0xfe13, 0xfe13, -0xfe20, 0xfe2f, -0xfe52, 0xfe52, -0xfe55, 0xfe55, -0xfeff, 0xfeff, -0xff07, 0xff07, -0xff0e, 0xff0e, -0xff1a, 0xff1a, -0xff3e, 0xff3e, -0xff40, 0xff40, -0xff70, 0xff70, -0xff9e, 0xff9f, -0xffe3, 0xffe3, -0xfff9, 0xfffb, -0x101fd, 0x101fd, -0x102e0, 0x102e0, -0x10376, 0x1037a, -0x10a01, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a0f, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10ae5, 0x10ae6, -0x10d24, 0x10d27, -0x10f46, 0x10f50, -0x11001, 0x11001, -0x11038, 0x11046, -0x1107f, 0x11081, -0x110b3, 0x110b6, -0x110b9, 0x110ba, -0x110bd, 0x110bd, -0x110cd, 0x110cd, -0x11100, 0x11102, -0x11127, 0x1112b, -0x1112d, 0x11134, -0x11173, 0x11173, -0x11180, 0x11181, -0x111b6, 0x111be, -0x111c9, 0x111cc, -0x1122f, 0x11231, -0x11234, 0x11234, -0x11236, 0x11237, -0x1123e, 0x1123e, -0x112df, 0x112df, -0x112e3, 0x112ea, -0x11300, 0x11301, -0x1133b, 0x1133c, -0x11340, 0x11340, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11438, 0x1143f, -0x11442, 0x11444, -0x11446, 0x11446, -0x1145e, 0x1145e, -0x114b3, 0x114b8, -0x114ba, 0x114ba, -0x114bf, 0x114c0, -0x114c2, 0x114c3, -0x115b2, 0x115b5, -0x115bc, 0x115bd, -0x115bf, 0x115c0, -0x115dc, 0x115dd, -0x11633, 0x1163a, -0x1163d, 0x1163d, -0x1163f, 0x11640, -0x116ab, 0x116ab, -0x116ad, 0x116ad, -0x116b0, 0x116b5, -0x116b7, 0x116b7, -0x1171d, 0x1171f, -0x11722, 0x11725, -0x11727, 0x1172b, -0x1182f, 0x11837, -0x11839, 0x1183a, -0x119d4, 0x119d7, -0x119da, 0x119db, -0x119e0, 0x119e0, -0x11a01, 0x11a0a, -0x11a33, 0x11a38, -0x11a3b, 0x11a3e, -0x11a47, 0x11a47, -0x11a51, 0x11a56, -0x11a59, 0x11a5b, -0x11a8a, 0x11a96, -0x11a98, 0x11a99, -0x11c30, 0x11c36, -0x11c38, 0x11c3d, -0x11c3f, 0x11c3f, -0x11c92, 0x11ca7, -0x11caa, 0x11cb0, -0x11cb2, 0x11cb3, -0x11cb5, 0x11cb6, -0x11d31, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d45, -0x11d47, 0x11d47, -0x11d90, 0x11d91, -0x11d95, 0x11d95, -0x11d97, 0x11d97, -0x11ef3, 0x11ef4, -0x13430, 0x13438, -0x16af0, 0x16af4, -0x16b30, 0x16b36, -0x16b40, 0x16b43, -0x16f4f, 0x16f4f, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x1bc9d, 0x1bc9e, -0x1bca0, 0x1bca3, -0x1d167, 0x1d169, -0x1d173, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e130, 0x1e13d, -0x1e2ec, 0x1e2ef, -0x1e8d0, 0x1e8d6, -0x1e944, 0x1e94b, -0x1f3fb, 0x1f3ff, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -0xe0100, 0xe01ef, -}; /* END of CR_Case_Ignorable */ - -/* PROPERTY: 'Cased': Derived Property */ -static const OnigCodePoint -CR_Cased[] = { 140, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x01ba, -0x01bc, 0x01bf, -0x01c4, 0x0293, -0x0295, 0x02b8, -0x02c0, 0x02c1, -0x02e0, 0x02e4, -0x0345, 0x0345, -0x0370, 0x0373, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0560, 0x0588, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fd, 0x10ff, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1d00, 0x1dbf, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2134, -0x2139, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x217f, -0x2183, 0x2184, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa640, 0xa66d, -0xa680, 0xa69d, -0xa722, 0xa787, -0xa78b, 0xa78e, -0xa790, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f8, 0xa7fa, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff21, 0xff3a, -0xff41, 0xff5a, -0x10400, 0x1044f, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x118a0, 0x118df, -0x16e40, 0x16e7f, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1e900, 0x1e943, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -}; /* END of CR_Cased */ - -/* PROPERTY: 'Caucasian_Albanian': Script */ -static const OnigCodePoint -CR_Caucasian_Albanian[] = { 2, -0x10530, 0x10563, -0x1056f, 0x1056f, -}; /* END of CR_Caucasian_Albanian */ - -/* PROPERTY: 'Cc': General Category */ -#define CR_Cc CR_Cntrl - -/* PROPERTY: 'Cf': General Category */ -static const OnigCodePoint -CR_Cf[] = { 20, -0x00ad, 0x00ad, -0x0600, 0x0605, -0x061c, 0x061c, -0x06dd, 0x06dd, -0x070f, 0x070f, -0x08e2, 0x08e2, -0x180e, 0x180e, -0x200b, 0x200f, -0x202a, 0x202e, -0x2060, 0x2064, -0x2066, 0x206f, -0xfeff, 0xfeff, -0xfff9, 0xfffb, -0x110bd, 0x110bd, -0x110cd, 0x110cd, -0x13430, 0x13438, -0x1bca0, 0x1bca3, -0x1d173, 0x1d17a, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -}; /* END of CR_Cf */ - -/* PROPERTY: 'Chakma': Script */ -static const OnigCodePoint -CR_Chakma[] = { 2, -0x11100, 0x11134, -0x11136, 0x11146, -}; /* END of CR_Chakma */ - -/* PROPERTY: 'Cham': Script */ -static const OnigCodePoint -CR_Cham[] = { 4, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa5c, 0xaa5f, -}; /* END of CR_Cham */ - -/* PROPERTY: 'Changes_When_Casefolded': Derived Property */ -static const OnigCodePoint -CR_Changes_When_Casefolded[] = { 612, -0x0041, 0x005a, -0x00b5, 0x00b5, -0x00c0, 0x00d6, -0x00d8, 0x00df, -0x0100, 0x0100, -0x0102, 0x0102, -0x0104, 0x0104, -0x0106, 0x0106, -0x0108, 0x0108, -0x010a, 0x010a, -0x010c, 0x010c, -0x010e, 0x010e, -0x0110, 0x0110, -0x0112, 0x0112, -0x0114, 0x0114, -0x0116, 0x0116, -0x0118, 0x0118, -0x011a, 0x011a, -0x011c, 0x011c, -0x011e, 0x011e, -0x0120, 0x0120, -0x0122, 0x0122, -0x0124, 0x0124, -0x0126, 0x0126, -0x0128, 0x0128, -0x012a, 0x012a, -0x012c, 0x012c, -0x012e, 0x012e, -0x0130, 0x0130, -0x0132, 0x0132, -0x0134, 0x0134, -0x0136, 0x0136, -0x0139, 0x0139, -0x013b, 0x013b, -0x013d, 0x013d, -0x013f, 0x013f, -0x0141, 0x0141, -0x0143, 0x0143, -0x0145, 0x0145, -0x0147, 0x0147, -0x0149, 0x014a, -0x014c, 0x014c, -0x014e, 0x014e, -0x0150, 0x0150, -0x0152, 0x0152, -0x0154, 0x0154, -0x0156, 0x0156, -0x0158, 0x0158, -0x015a, 0x015a, -0x015c, 0x015c, -0x015e, 0x015e, -0x0160, 0x0160, -0x0162, 0x0162, -0x0164, 0x0164, -0x0166, 0x0166, -0x0168, 0x0168, -0x016a, 0x016a, -0x016c, 0x016c, -0x016e, 0x016e, -0x0170, 0x0170, -0x0172, 0x0172, -0x0174, 0x0174, -0x0176, 0x0176, -0x0178, 0x0179, -0x017b, 0x017b, -0x017d, 0x017d, -0x017f, 0x017f, -0x0181, 0x0182, -0x0184, 0x0184, -0x0186, 0x0187, -0x0189, 0x018b, -0x018e, 0x0191, -0x0193, 0x0194, -0x0196, 0x0198, -0x019c, 0x019d, -0x019f, 0x01a0, -0x01a2, 0x01a2, -0x01a4, 0x01a4, -0x01a6, 0x01a7, -0x01a9, 0x01a9, -0x01ac, 0x01ac, -0x01ae, 0x01af, -0x01b1, 0x01b3, -0x01b5, 0x01b5, -0x01b7, 0x01b8, -0x01bc, 0x01bc, -0x01c4, 0x01c5, -0x01c7, 0x01c8, -0x01ca, 0x01cb, -0x01cd, 0x01cd, -0x01cf, 0x01cf, -0x01d1, 0x01d1, -0x01d3, 0x01d3, -0x01d5, 0x01d5, -0x01d7, 0x01d7, -0x01d9, 0x01d9, -0x01db, 0x01db, -0x01de, 0x01de, -0x01e0, 0x01e0, -0x01e2, 0x01e2, -0x01e4, 0x01e4, -0x01e6, 0x01e6, -0x01e8, 0x01e8, -0x01ea, 0x01ea, -0x01ec, 0x01ec, -0x01ee, 0x01ee, -0x01f1, 0x01f2, -0x01f4, 0x01f4, -0x01f6, 0x01f8, -0x01fa, 0x01fa, -0x01fc, 0x01fc, -0x01fe, 0x01fe, -0x0200, 0x0200, -0x0202, 0x0202, -0x0204, 0x0204, -0x0206, 0x0206, -0x0208, 0x0208, -0x020a, 0x020a, -0x020c, 0x020c, -0x020e, 0x020e, -0x0210, 0x0210, -0x0212, 0x0212, -0x0214, 0x0214, -0x0216, 0x0216, -0x0218, 0x0218, -0x021a, 0x021a, -0x021c, 0x021c, -0x021e, 0x021e, -0x0220, 0x0220, -0x0222, 0x0222, -0x0224, 0x0224, -0x0226, 0x0226, -0x0228, 0x0228, -0x022a, 0x022a, -0x022c, 0x022c, -0x022e, 0x022e, -0x0230, 0x0230, -0x0232, 0x0232, -0x023a, 0x023b, -0x023d, 0x023e, -0x0241, 0x0241, -0x0243, 0x0246, -0x0248, 0x0248, -0x024a, 0x024a, -0x024c, 0x024c, -0x024e, 0x024e, -0x0345, 0x0345, -0x0370, 0x0370, -0x0372, 0x0372, -0x0376, 0x0376, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x038f, -0x0391, 0x03a1, -0x03a3, 0x03ab, -0x03c2, 0x03c2, -0x03cf, 0x03d1, -0x03d5, 0x03d6, -0x03d8, 0x03d8, -0x03da, 0x03da, -0x03dc, 0x03dc, -0x03de, 0x03de, -0x03e0, 0x03e0, -0x03e2, 0x03e2, -0x03e4, 0x03e4, -0x03e6, 0x03e6, -0x03e8, 0x03e8, -0x03ea, 0x03ea, -0x03ec, 0x03ec, -0x03ee, 0x03ee, -0x03f0, 0x03f1, -0x03f4, 0x03f5, -0x03f7, 0x03f7, -0x03f9, 0x03fa, -0x03fd, 0x042f, -0x0460, 0x0460, -0x0462, 0x0462, -0x0464, 0x0464, -0x0466, 0x0466, -0x0468, 0x0468, -0x046a, 0x046a, -0x046c, 0x046c, -0x046e, 0x046e, -0x0470, 0x0470, -0x0472, 0x0472, -0x0474, 0x0474, -0x0476, 0x0476, -0x0478, 0x0478, -0x047a, 0x047a, -0x047c, 0x047c, -0x047e, 0x047e, -0x0480, 0x0480, -0x048a, 0x048a, -0x048c, 0x048c, -0x048e, 0x048e, -0x0490, 0x0490, -0x0492, 0x0492, -0x0494, 0x0494, -0x0496, 0x0496, -0x0498, 0x0498, -0x049a, 0x049a, -0x049c, 0x049c, -0x049e, 0x049e, -0x04a0, 0x04a0, -0x04a2, 0x04a2, -0x04a4, 0x04a4, -0x04a6, 0x04a6, -0x04a8, 0x04a8, -0x04aa, 0x04aa, -0x04ac, 0x04ac, -0x04ae, 0x04ae, -0x04b0, 0x04b0, -0x04b2, 0x04b2, -0x04b4, 0x04b4, -0x04b6, 0x04b6, -0x04b8, 0x04b8, -0x04ba, 0x04ba, -0x04bc, 0x04bc, -0x04be, 0x04be, -0x04c0, 0x04c1, -0x04c3, 0x04c3, -0x04c5, 0x04c5, -0x04c7, 0x04c7, -0x04c9, 0x04c9, -0x04cb, 0x04cb, -0x04cd, 0x04cd, -0x04d0, 0x04d0, -0x04d2, 0x04d2, -0x04d4, 0x04d4, -0x04d6, 0x04d6, -0x04d8, 0x04d8, -0x04da, 0x04da, -0x04dc, 0x04dc, -0x04de, 0x04de, -0x04e0, 0x04e0, -0x04e2, 0x04e2, -0x04e4, 0x04e4, -0x04e6, 0x04e6, -0x04e8, 0x04e8, -0x04ea, 0x04ea, -0x04ec, 0x04ec, -0x04ee, 0x04ee, -0x04f0, 0x04f0, -0x04f2, 0x04f2, -0x04f4, 0x04f4, -0x04f6, 0x04f6, -0x04f8, 0x04f8, -0x04fa, 0x04fa, -0x04fc, 0x04fc, -0x04fe, 0x04fe, -0x0500, 0x0500, -0x0502, 0x0502, -0x0504, 0x0504, -0x0506, 0x0506, -0x0508, 0x0508, -0x050a, 0x050a, -0x050c, 0x050c, -0x050e, 0x050e, -0x0510, 0x0510, -0x0512, 0x0512, -0x0514, 0x0514, -0x0516, 0x0516, -0x0518, 0x0518, -0x051a, 0x051a, -0x051c, 0x051c, -0x051e, 0x051e, -0x0520, 0x0520, -0x0522, 0x0522, -0x0524, 0x0524, -0x0526, 0x0526, -0x0528, 0x0528, -0x052a, 0x052a, -0x052c, 0x052c, -0x052e, 0x052e, -0x0531, 0x0556, -0x0587, 0x0587, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1e00, 0x1e00, -0x1e02, 0x1e02, -0x1e04, 0x1e04, -0x1e06, 0x1e06, -0x1e08, 0x1e08, -0x1e0a, 0x1e0a, -0x1e0c, 0x1e0c, -0x1e0e, 0x1e0e, -0x1e10, 0x1e10, -0x1e12, 0x1e12, -0x1e14, 0x1e14, -0x1e16, 0x1e16, -0x1e18, 0x1e18, -0x1e1a, 0x1e1a, -0x1e1c, 0x1e1c, -0x1e1e, 0x1e1e, -0x1e20, 0x1e20, -0x1e22, 0x1e22, -0x1e24, 0x1e24, -0x1e26, 0x1e26, -0x1e28, 0x1e28, -0x1e2a, 0x1e2a, -0x1e2c, 0x1e2c, -0x1e2e, 0x1e2e, -0x1e30, 0x1e30, -0x1e32, 0x1e32, -0x1e34, 0x1e34, -0x1e36, 0x1e36, -0x1e38, 0x1e38, -0x1e3a, 0x1e3a, -0x1e3c, 0x1e3c, -0x1e3e, 0x1e3e, -0x1e40, 0x1e40, -0x1e42, 0x1e42, -0x1e44, 0x1e44, -0x1e46, 0x1e46, -0x1e48, 0x1e48, -0x1e4a, 0x1e4a, -0x1e4c, 0x1e4c, -0x1e4e, 0x1e4e, -0x1e50, 0x1e50, -0x1e52, 0x1e52, -0x1e54, 0x1e54, -0x1e56, 0x1e56, -0x1e58, 0x1e58, -0x1e5a, 0x1e5a, -0x1e5c, 0x1e5c, -0x1e5e, 0x1e5e, -0x1e60, 0x1e60, -0x1e62, 0x1e62, -0x1e64, 0x1e64, -0x1e66, 0x1e66, -0x1e68, 0x1e68, -0x1e6a, 0x1e6a, -0x1e6c, 0x1e6c, -0x1e6e, 0x1e6e, -0x1e70, 0x1e70, -0x1e72, 0x1e72, -0x1e74, 0x1e74, -0x1e76, 0x1e76, -0x1e78, 0x1e78, -0x1e7a, 0x1e7a, -0x1e7c, 0x1e7c, -0x1e7e, 0x1e7e, -0x1e80, 0x1e80, -0x1e82, 0x1e82, -0x1e84, 0x1e84, -0x1e86, 0x1e86, -0x1e88, 0x1e88, -0x1e8a, 0x1e8a, -0x1e8c, 0x1e8c, -0x1e8e, 0x1e8e, -0x1e90, 0x1e90, -0x1e92, 0x1e92, -0x1e94, 0x1e94, -0x1e9a, 0x1e9b, -0x1e9e, 0x1e9e, -0x1ea0, 0x1ea0, -0x1ea2, 0x1ea2, -0x1ea4, 0x1ea4, -0x1ea6, 0x1ea6, -0x1ea8, 0x1ea8, -0x1eaa, 0x1eaa, -0x1eac, 0x1eac, -0x1eae, 0x1eae, -0x1eb0, 0x1eb0, -0x1eb2, 0x1eb2, -0x1eb4, 0x1eb4, -0x1eb6, 0x1eb6, -0x1eb8, 0x1eb8, -0x1eba, 0x1eba, -0x1ebc, 0x1ebc, -0x1ebe, 0x1ebe, -0x1ec0, 0x1ec0, -0x1ec2, 0x1ec2, -0x1ec4, 0x1ec4, -0x1ec6, 0x1ec6, -0x1ec8, 0x1ec8, -0x1eca, 0x1eca, -0x1ecc, 0x1ecc, -0x1ece, 0x1ece, -0x1ed0, 0x1ed0, -0x1ed2, 0x1ed2, -0x1ed4, 0x1ed4, -0x1ed6, 0x1ed6, -0x1ed8, 0x1ed8, -0x1eda, 0x1eda, -0x1edc, 0x1edc, -0x1ede, 0x1ede, -0x1ee0, 0x1ee0, -0x1ee2, 0x1ee2, -0x1ee4, 0x1ee4, -0x1ee6, 0x1ee6, -0x1ee8, 0x1ee8, -0x1eea, 0x1eea, -0x1eec, 0x1eec, -0x1eee, 0x1eee, -0x1ef0, 0x1ef0, -0x1ef2, 0x1ef2, -0x1ef4, 0x1ef4, -0x1ef6, 0x1ef6, -0x1ef8, 0x1ef8, -0x1efa, 0x1efa, -0x1efc, 0x1efc, -0x1efe, 0x1efe, -0x1f08, 0x1f0f, -0x1f18, 0x1f1d, -0x1f28, 0x1f2f, -0x1f38, 0x1f3f, -0x1f48, 0x1f4d, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f5f, -0x1f68, 0x1f6f, -0x1f80, 0x1faf, -0x1fb2, 0x1fb4, -0x1fb7, 0x1fbc, -0x1fc2, 0x1fc4, -0x1fc7, 0x1fcc, -0x1fd8, 0x1fdb, -0x1fe8, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff7, 0x1ffc, -0x2126, 0x2126, -0x212a, 0x212b, -0x2132, 0x2132, -0x2160, 0x216f, -0x2183, 0x2183, -0x24b6, 0x24cf, -0x2c00, 0x2c2e, -0x2c60, 0x2c60, -0x2c62, 0x2c64, -0x2c67, 0x2c67, -0x2c69, 0x2c69, -0x2c6b, 0x2c6b, -0x2c6d, 0x2c70, -0x2c72, 0x2c72, -0x2c75, 0x2c75, -0x2c7e, 0x2c80, -0x2c82, 0x2c82, -0x2c84, 0x2c84, -0x2c86, 0x2c86, -0x2c88, 0x2c88, -0x2c8a, 0x2c8a, -0x2c8c, 0x2c8c, -0x2c8e, 0x2c8e, -0x2c90, 0x2c90, -0x2c92, 0x2c92, -0x2c94, 0x2c94, -0x2c96, 0x2c96, -0x2c98, 0x2c98, -0x2c9a, 0x2c9a, -0x2c9c, 0x2c9c, -0x2c9e, 0x2c9e, -0x2ca0, 0x2ca0, -0x2ca2, 0x2ca2, -0x2ca4, 0x2ca4, -0x2ca6, 0x2ca6, -0x2ca8, 0x2ca8, -0x2caa, 0x2caa, -0x2cac, 0x2cac, -0x2cae, 0x2cae, -0x2cb0, 0x2cb0, -0x2cb2, 0x2cb2, -0x2cb4, 0x2cb4, -0x2cb6, 0x2cb6, -0x2cb8, 0x2cb8, -0x2cba, 0x2cba, -0x2cbc, 0x2cbc, -0x2cbe, 0x2cbe, -0x2cc0, 0x2cc0, -0x2cc2, 0x2cc2, -0x2cc4, 0x2cc4, -0x2cc6, 0x2cc6, -0x2cc8, 0x2cc8, -0x2cca, 0x2cca, -0x2ccc, 0x2ccc, -0x2cce, 0x2cce, -0x2cd0, 0x2cd0, -0x2cd2, 0x2cd2, -0x2cd4, 0x2cd4, -0x2cd6, 0x2cd6, -0x2cd8, 0x2cd8, -0x2cda, 0x2cda, -0x2cdc, 0x2cdc, -0x2cde, 0x2cde, -0x2ce0, 0x2ce0, -0x2ce2, 0x2ce2, -0x2ceb, 0x2ceb, -0x2ced, 0x2ced, -0x2cf2, 0x2cf2, -0xa640, 0xa640, -0xa642, 0xa642, -0xa644, 0xa644, -0xa646, 0xa646, -0xa648, 0xa648, -0xa64a, 0xa64a, -0xa64c, 0xa64c, -0xa64e, 0xa64e, -0xa650, 0xa650, -0xa652, 0xa652, -0xa654, 0xa654, -0xa656, 0xa656, -0xa658, 0xa658, -0xa65a, 0xa65a, -0xa65c, 0xa65c, -0xa65e, 0xa65e, -0xa660, 0xa660, -0xa662, 0xa662, -0xa664, 0xa664, -0xa666, 0xa666, -0xa668, 0xa668, -0xa66a, 0xa66a, -0xa66c, 0xa66c, -0xa680, 0xa680, -0xa682, 0xa682, -0xa684, 0xa684, -0xa686, 0xa686, -0xa688, 0xa688, -0xa68a, 0xa68a, -0xa68c, 0xa68c, -0xa68e, 0xa68e, -0xa690, 0xa690, -0xa692, 0xa692, -0xa694, 0xa694, -0xa696, 0xa696, -0xa698, 0xa698, -0xa69a, 0xa69a, -0xa722, 0xa722, -0xa724, 0xa724, -0xa726, 0xa726, -0xa728, 0xa728, -0xa72a, 0xa72a, -0xa72c, 0xa72c, -0xa72e, 0xa72e, -0xa732, 0xa732, -0xa734, 0xa734, -0xa736, 0xa736, -0xa738, 0xa738, -0xa73a, 0xa73a, -0xa73c, 0xa73c, -0xa73e, 0xa73e, -0xa740, 0xa740, -0xa742, 0xa742, -0xa744, 0xa744, -0xa746, 0xa746, -0xa748, 0xa748, -0xa74a, 0xa74a, -0xa74c, 0xa74c, -0xa74e, 0xa74e, -0xa750, 0xa750, -0xa752, 0xa752, -0xa754, 0xa754, -0xa756, 0xa756, -0xa758, 0xa758, -0xa75a, 0xa75a, -0xa75c, 0xa75c, -0xa75e, 0xa75e, -0xa760, 0xa760, -0xa762, 0xa762, -0xa764, 0xa764, -0xa766, 0xa766, -0xa768, 0xa768, -0xa76a, 0xa76a, -0xa76c, 0xa76c, -0xa76e, 0xa76e, -0xa779, 0xa779, -0xa77b, 0xa77b, -0xa77d, 0xa77e, -0xa780, 0xa780, -0xa782, 0xa782, -0xa784, 0xa784, -0xa786, 0xa786, -0xa78b, 0xa78b, -0xa78d, 0xa78d, -0xa790, 0xa790, -0xa792, 0xa792, -0xa796, 0xa796, -0xa798, 0xa798, -0xa79a, 0xa79a, -0xa79c, 0xa79c, -0xa79e, 0xa79e, -0xa7a0, 0xa7a0, -0xa7a2, 0xa7a2, -0xa7a4, 0xa7a4, -0xa7a6, 0xa7a6, -0xa7a8, 0xa7a8, -0xa7aa, 0xa7ae, -0xa7b0, 0xa7b4, -0xa7b6, 0xa7b6, -0xa7b8, 0xa7b8, -0xa7ba, 0xa7ba, -0xa7bc, 0xa7bc, -0xa7be, 0xa7be, -0xa7c2, 0xa7c2, -0xa7c4, 0xa7c6, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff21, 0xff3a, -0x10400, 0x10427, -0x104b0, 0x104d3, -0x10c80, 0x10cb2, -0x118a0, 0x118bf, -0x16e40, 0x16e5f, -0x1e900, 0x1e921, -}; /* END of CR_Changes_When_Casefolded */ - -/* PROPERTY: 'Changes_When_Casemapped': Derived Property */ -static const OnigCodePoint -CR_Changes_When_Casemapped[] = { 123, -0x0041, 0x005a, -0x0061, 0x007a, -0x00b5, 0x00b5, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x0137, -0x0139, 0x018c, -0x018e, 0x019a, -0x019c, 0x01a9, -0x01ac, 0x01b9, -0x01bc, 0x01bd, -0x01bf, 0x01bf, -0x01c4, 0x0220, -0x0222, 0x0233, -0x023a, 0x0254, -0x0256, 0x0257, -0x0259, 0x0259, -0x025b, 0x025c, -0x0260, 0x0261, -0x0263, 0x0263, -0x0265, 0x0266, -0x0268, 0x026c, -0x026f, 0x026f, -0x0271, 0x0272, -0x0275, 0x0275, -0x027d, 0x027d, -0x0280, 0x0280, -0x0282, 0x0283, -0x0287, 0x028c, -0x0292, 0x0292, -0x029d, 0x029e, -0x0345, 0x0345, -0x0370, 0x0373, -0x0376, 0x0377, -0x037b, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03d1, -0x03d5, 0x03f5, -0x03f7, 0x03fb, -0x03fd, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0561, 0x0587, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fd, 0x10ff, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1d79, 0x1d79, -0x1d7d, 0x1d7d, -0x1d8e, 0x1d8e, -0x1e00, 0x1e9b, -0x1e9e, 0x1e9e, -0x1ea0, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2126, 0x2126, -0x212a, 0x212b, -0x2132, 0x2132, -0x214e, 0x214e, -0x2160, 0x217f, -0x2183, 0x2184, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2c70, -0x2c72, 0x2c73, -0x2c75, 0x2c76, -0x2c7e, 0x2ce3, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa640, 0xa66d, -0xa680, 0xa69b, -0xa722, 0xa72f, -0xa732, 0xa76f, -0xa779, 0xa787, -0xa78b, 0xa78d, -0xa790, 0xa794, -0xa796, 0xa7ae, -0xa7b0, 0xa7bf, -0xa7c2, 0xa7c6, -0xab53, 0xab53, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff21, 0xff3a, -0xff41, 0xff5a, -0x10400, 0x1044f, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x118a0, 0x118df, -0x16e40, 0x16e7f, -0x1e900, 0x1e943, -}; /* END of CR_Changes_When_Casemapped */ - -/* PROPERTY: 'Changes_When_Lowercased': Derived Property */ -static const OnigCodePoint -CR_Changes_When_Lowercased[] = { 599, -0x0041, 0x005a, -0x00c0, 0x00d6, -0x00d8, 0x00de, -0x0100, 0x0100, -0x0102, 0x0102, -0x0104, 0x0104, -0x0106, 0x0106, -0x0108, 0x0108, -0x010a, 0x010a, -0x010c, 0x010c, -0x010e, 0x010e, -0x0110, 0x0110, -0x0112, 0x0112, -0x0114, 0x0114, -0x0116, 0x0116, -0x0118, 0x0118, -0x011a, 0x011a, -0x011c, 0x011c, -0x011e, 0x011e, -0x0120, 0x0120, -0x0122, 0x0122, -0x0124, 0x0124, -0x0126, 0x0126, -0x0128, 0x0128, -0x012a, 0x012a, -0x012c, 0x012c, -0x012e, 0x012e, -0x0130, 0x0130, -0x0132, 0x0132, -0x0134, 0x0134, -0x0136, 0x0136, -0x0139, 0x0139, -0x013b, 0x013b, -0x013d, 0x013d, -0x013f, 0x013f, -0x0141, 0x0141, -0x0143, 0x0143, -0x0145, 0x0145, -0x0147, 0x0147, -0x014a, 0x014a, -0x014c, 0x014c, -0x014e, 0x014e, -0x0150, 0x0150, -0x0152, 0x0152, -0x0154, 0x0154, -0x0156, 0x0156, -0x0158, 0x0158, -0x015a, 0x015a, -0x015c, 0x015c, -0x015e, 0x015e, -0x0160, 0x0160, -0x0162, 0x0162, -0x0164, 0x0164, -0x0166, 0x0166, -0x0168, 0x0168, -0x016a, 0x016a, -0x016c, 0x016c, -0x016e, 0x016e, -0x0170, 0x0170, -0x0172, 0x0172, -0x0174, 0x0174, -0x0176, 0x0176, -0x0178, 0x0179, -0x017b, 0x017b, -0x017d, 0x017d, -0x0181, 0x0182, -0x0184, 0x0184, -0x0186, 0x0187, -0x0189, 0x018b, -0x018e, 0x0191, -0x0193, 0x0194, -0x0196, 0x0198, -0x019c, 0x019d, -0x019f, 0x01a0, -0x01a2, 0x01a2, -0x01a4, 0x01a4, -0x01a6, 0x01a7, -0x01a9, 0x01a9, -0x01ac, 0x01ac, -0x01ae, 0x01af, -0x01b1, 0x01b3, -0x01b5, 0x01b5, -0x01b7, 0x01b8, -0x01bc, 0x01bc, -0x01c4, 0x01c5, -0x01c7, 0x01c8, -0x01ca, 0x01cb, -0x01cd, 0x01cd, -0x01cf, 0x01cf, -0x01d1, 0x01d1, -0x01d3, 0x01d3, -0x01d5, 0x01d5, -0x01d7, 0x01d7, -0x01d9, 0x01d9, -0x01db, 0x01db, -0x01de, 0x01de, -0x01e0, 0x01e0, -0x01e2, 0x01e2, -0x01e4, 0x01e4, -0x01e6, 0x01e6, -0x01e8, 0x01e8, -0x01ea, 0x01ea, -0x01ec, 0x01ec, -0x01ee, 0x01ee, -0x01f1, 0x01f2, -0x01f4, 0x01f4, -0x01f6, 0x01f8, -0x01fa, 0x01fa, -0x01fc, 0x01fc, -0x01fe, 0x01fe, -0x0200, 0x0200, -0x0202, 0x0202, -0x0204, 0x0204, -0x0206, 0x0206, -0x0208, 0x0208, -0x020a, 0x020a, -0x020c, 0x020c, -0x020e, 0x020e, -0x0210, 0x0210, -0x0212, 0x0212, -0x0214, 0x0214, -0x0216, 0x0216, -0x0218, 0x0218, -0x021a, 0x021a, -0x021c, 0x021c, -0x021e, 0x021e, -0x0220, 0x0220, -0x0222, 0x0222, -0x0224, 0x0224, -0x0226, 0x0226, -0x0228, 0x0228, -0x022a, 0x022a, -0x022c, 0x022c, -0x022e, 0x022e, -0x0230, 0x0230, -0x0232, 0x0232, -0x023a, 0x023b, -0x023d, 0x023e, -0x0241, 0x0241, -0x0243, 0x0246, -0x0248, 0x0248, -0x024a, 0x024a, -0x024c, 0x024c, -0x024e, 0x024e, -0x0370, 0x0370, -0x0372, 0x0372, -0x0376, 0x0376, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x038f, -0x0391, 0x03a1, -0x03a3, 0x03ab, -0x03cf, 0x03cf, -0x03d8, 0x03d8, -0x03da, 0x03da, -0x03dc, 0x03dc, -0x03de, 0x03de, -0x03e0, 0x03e0, -0x03e2, 0x03e2, -0x03e4, 0x03e4, -0x03e6, 0x03e6, -0x03e8, 0x03e8, -0x03ea, 0x03ea, -0x03ec, 0x03ec, -0x03ee, 0x03ee, -0x03f4, 0x03f4, -0x03f7, 0x03f7, -0x03f9, 0x03fa, -0x03fd, 0x042f, -0x0460, 0x0460, -0x0462, 0x0462, -0x0464, 0x0464, -0x0466, 0x0466, -0x0468, 0x0468, -0x046a, 0x046a, -0x046c, 0x046c, -0x046e, 0x046e, -0x0470, 0x0470, -0x0472, 0x0472, -0x0474, 0x0474, -0x0476, 0x0476, -0x0478, 0x0478, -0x047a, 0x047a, -0x047c, 0x047c, -0x047e, 0x047e, -0x0480, 0x0480, -0x048a, 0x048a, -0x048c, 0x048c, -0x048e, 0x048e, -0x0490, 0x0490, -0x0492, 0x0492, -0x0494, 0x0494, -0x0496, 0x0496, -0x0498, 0x0498, -0x049a, 0x049a, -0x049c, 0x049c, -0x049e, 0x049e, -0x04a0, 0x04a0, -0x04a2, 0x04a2, -0x04a4, 0x04a4, -0x04a6, 0x04a6, -0x04a8, 0x04a8, -0x04aa, 0x04aa, -0x04ac, 0x04ac, -0x04ae, 0x04ae, -0x04b0, 0x04b0, -0x04b2, 0x04b2, -0x04b4, 0x04b4, -0x04b6, 0x04b6, -0x04b8, 0x04b8, -0x04ba, 0x04ba, -0x04bc, 0x04bc, -0x04be, 0x04be, -0x04c0, 0x04c1, -0x04c3, 0x04c3, -0x04c5, 0x04c5, -0x04c7, 0x04c7, -0x04c9, 0x04c9, -0x04cb, 0x04cb, -0x04cd, 0x04cd, -0x04d0, 0x04d0, -0x04d2, 0x04d2, -0x04d4, 0x04d4, -0x04d6, 0x04d6, -0x04d8, 0x04d8, -0x04da, 0x04da, -0x04dc, 0x04dc, -0x04de, 0x04de, -0x04e0, 0x04e0, -0x04e2, 0x04e2, -0x04e4, 0x04e4, -0x04e6, 0x04e6, -0x04e8, 0x04e8, -0x04ea, 0x04ea, -0x04ec, 0x04ec, -0x04ee, 0x04ee, -0x04f0, 0x04f0, -0x04f2, 0x04f2, -0x04f4, 0x04f4, -0x04f6, 0x04f6, -0x04f8, 0x04f8, -0x04fa, 0x04fa, -0x04fc, 0x04fc, -0x04fe, 0x04fe, -0x0500, 0x0500, -0x0502, 0x0502, -0x0504, 0x0504, -0x0506, 0x0506, -0x0508, 0x0508, -0x050a, 0x050a, -0x050c, 0x050c, -0x050e, 0x050e, -0x0510, 0x0510, -0x0512, 0x0512, -0x0514, 0x0514, -0x0516, 0x0516, -0x0518, 0x0518, -0x051a, 0x051a, -0x051c, 0x051c, -0x051e, 0x051e, -0x0520, 0x0520, -0x0522, 0x0522, -0x0524, 0x0524, -0x0526, 0x0526, -0x0528, 0x0528, -0x052a, 0x052a, -0x052c, 0x052c, -0x052e, 0x052e, -0x0531, 0x0556, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x13a0, 0x13f5, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1e00, 0x1e00, -0x1e02, 0x1e02, -0x1e04, 0x1e04, -0x1e06, 0x1e06, -0x1e08, 0x1e08, -0x1e0a, 0x1e0a, -0x1e0c, 0x1e0c, -0x1e0e, 0x1e0e, -0x1e10, 0x1e10, -0x1e12, 0x1e12, -0x1e14, 0x1e14, -0x1e16, 0x1e16, -0x1e18, 0x1e18, -0x1e1a, 0x1e1a, -0x1e1c, 0x1e1c, -0x1e1e, 0x1e1e, -0x1e20, 0x1e20, -0x1e22, 0x1e22, -0x1e24, 0x1e24, -0x1e26, 0x1e26, -0x1e28, 0x1e28, -0x1e2a, 0x1e2a, -0x1e2c, 0x1e2c, -0x1e2e, 0x1e2e, -0x1e30, 0x1e30, -0x1e32, 0x1e32, -0x1e34, 0x1e34, -0x1e36, 0x1e36, -0x1e38, 0x1e38, -0x1e3a, 0x1e3a, -0x1e3c, 0x1e3c, -0x1e3e, 0x1e3e, -0x1e40, 0x1e40, -0x1e42, 0x1e42, -0x1e44, 0x1e44, -0x1e46, 0x1e46, -0x1e48, 0x1e48, -0x1e4a, 0x1e4a, -0x1e4c, 0x1e4c, -0x1e4e, 0x1e4e, -0x1e50, 0x1e50, -0x1e52, 0x1e52, -0x1e54, 0x1e54, -0x1e56, 0x1e56, -0x1e58, 0x1e58, -0x1e5a, 0x1e5a, -0x1e5c, 0x1e5c, -0x1e5e, 0x1e5e, -0x1e60, 0x1e60, -0x1e62, 0x1e62, -0x1e64, 0x1e64, -0x1e66, 0x1e66, -0x1e68, 0x1e68, -0x1e6a, 0x1e6a, -0x1e6c, 0x1e6c, -0x1e6e, 0x1e6e, -0x1e70, 0x1e70, -0x1e72, 0x1e72, -0x1e74, 0x1e74, -0x1e76, 0x1e76, -0x1e78, 0x1e78, -0x1e7a, 0x1e7a, -0x1e7c, 0x1e7c, -0x1e7e, 0x1e7e, -0x1e80, 0x1e80, -0x1e82, 0x1e82, -0x1e84, 0x1e84, -0x1e86, 0x1e86, -0x1e88, 0x1e88, -0x1e8a, 0x1e8a, -0x1e8c, 0x1e8c, -0x1e8e, 0x1e8e, -0x1e90, 0x1e90, -0x1e92, 0x1e92, -0x1e94, 0x1e94, -0x1e9e, 0x1e9e, -0x1ea0, 0x1ea0, -0x1ea2, 0x1ea2, -0x1ea4, 0x1ea4, -0x1ea6, 0x1ea6, -0x1ea8, 0x1ea8, -0x1eaa, 0x1eaa, -0x1eac, 0x1eac, -0x1eae, 0x1eae, -0x1eb0, 0x1eb0, -0x1eb2, 0x1eb2, -0x1eb4, 0x1eb4, -0x1eb6, 0x1eb6, -0x1eb8, 0x1eb8, -0x1eba, 0x1eba, -0x1ebc, 0x1ebc, -0x1ebe, 0x1ebe, -0x1ec0, 0x1ec0, -0x1ec2, 0x1ec2, -0x1ec4, 0x1ec4, -0x1ec6, 0x1ec6, -0x1ec8, 0x1ec8, -0x1eca, 0x1eca, -0x1ecc, 0x1ecc, -0x1ece, 0x1ece, -0x1ed0, 0x1ed0, -0x1ed2, 0x1ed2, -0x1ed4, 0x1ed4, -0x1ed6, 0x1ed6, -0x1ed8, 0x1ed8, -0x1eda, 0x1eda, -0x1edc, 0x1edc, -0x1ede, 0x1ede, -0x1ee0, 0x1ee0, -0x1ee2, 0x1ee2, -0x1ee4, 0x1ee4, -0x1ee6, 0x1ee6, -0x1ee8, 0x1ee8, -0x1eea, 0x1eea, -0x1eec, 0x1eec, -0x1eee, 0x1eee, -0x1ef0, 0x1ef0, -0x1ef2, 0x1ef2, -0x1ef4, 0x1ef4, -0x1ef6, 0x1ef6, -0x1ef8, 0x1ef8, -0x1efa, 0x1efa, -0x1efc, 0x1efc, -0x1efe, 0x1efe, -0x1f08, 0x1f0f, -0x1f18, 0x1f1d, -0x1f28, 0x1f2f, -0x1f38, 0x1f3f, -0x1f48, 0x1f4d, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f5f, -0x1f68, 0x1f6f, -0x1f88, 0x1f8f, -0x1f98, 0x1f9f, -0x1fa8, 0x1faf, -0x1fb8, 0x1fbc, -0x1fc8, 0x1fcc, -0x1fd8, 0x1fdb, -0x1fe8, 0x1fec, -0x1ff8, 0x1ffc, -0x2126, 0x2126, -0x212a, 0x212b, -0x2132, 0x2132, -0x2160, 0x216f, -0x2183, 0x2183, -0x24b6, 0x24cf, -0x2c00, 0x2c2e, -0x2c60, 0x2c60, -0x2c62, 0x2c64, -0x2c67, 0x2c67, -0x2c69, 0x2c69, -0x2c6b, 0x2c6b, -0x2c6d, 0x2c70, -0x2c72, 0x2c72, -0x2c75, 0x2c75, -0x2c7e, 0x2c80, -0x2c82, 0x2c82, -0x2c84, 0x2c84, -0x2c86, 0x2c86, -0x2c88, 0x2c88, -0x2c8a, 0x2c8a, -0x2c8c, 0x2c8c, -0x2c8e, 0x2c8e, -0x2c90, 0x2c90, -0x2c92, 0x2c92, -0x2c94, 0x2c94, -0x2c96, 0x2c96, -0x2c98, 0x2c98, -0x2c9a, 0x2c9a, -0x2c9c, 0x2c9c, -0x2c9e, 0x2c9e, -0x2ca0, 0x2ca0, -0x2ca2, 0x2ca2, -0x2ca4, 0x2ca4, -0x2ca6, 0x2ca6, -0x2ca8, 0x2ca8, -0x2caa, 0x2caa, -0x2cac, 0x2cac, -0x2cae, 0x2cae, -0x2cb0, 0x2cb0, -0x2cb2, 0x2cb2, -0x2cb4, 0x2cb4, -0x2cb6, 0x2cb6, -0x2cb8, 0x2cb8, -0x2cba, 0x2cba, -0x2cbc, 0x2cbc, -0x2cbe, 0x2cbe, -0x2cc0, 0x2cc0, -0x2cc2, 0x2cc2, -0x2cc4, 0x2cc4, -0x2cc6, 0x2cc6, -0x2cc8, 0x2cc8, -0x2cca, 0x2cca, -0x2ccc, 0x2ccc, -0x2cce, 0x2cce, -0x2cd0, 0x2cd0, -0x2cd2, 0x2cd2, -0x2cd4, 0x2cd4, -0x2cd6, 0x2cd6, -0x2cd8, 0x2cd8, -0x2cda, 0x2cda, -0x2cdc, 0x2cdc, -0x2cde, 0x2cde, -0x2ce0, 0x2ce0, -0x2ce2, 0x2ce2, -0x2ceb, 0x2ceb, -0x2ced, 0x2ced, -0x2cf2, 0x2cf2, -0xa640, 0xa640, -0xa642, 0xa642, -0xa644, 0xa644, -0xa646, 0xa646, -0xa648, 0xa648, -0xa64a, 0xa64a, -0xa64c, 0xa64c, -0xa64e, 0xa64e, -0xa650, 0xa650, -0xa652, 0xa652, -0xa654, 0xa654, -0xa656, 0xa656, -0xa658, 0xa658, -0xa65a, 0xa65a, -0xa65c, 0xa65c, -0xa65e, 0xa65e, -0xa660, 0xa660, -0xa662, 0xa662, -0xa664, 0xa664, -0xa666, 0xa666, -0xa668, 0xa668, -0xa66a, 0xa66a, -0xa66c, 0xa66c, -0xa680, 0xa680, -0xa682, 0xa682, -0xa684, 0xa684, -0xa686, 0xa686, -0xa688, 0xa688, -0xa68a, 0xa68a, -0xa68c, 0xa68c, -0xa68e, 0xa68e, -0xa690, 0xa690, -0xa692, 0xa692, -0xa694, 0xa694, -0xa696, 0xa696, -0xa698, 0xa698, -0xa69a, 0xa69a, -0xa722, 0xa722, -0xa724, 0xa724, -0xa726, 0xa726, -0xa728, 0xa728, -0xa72a, 0xa72a, -0xa72c, 0xa72c, -0xa72e, 0xa72e, -0xa732, 0xa732, -0xa734, 0xa734, -0xa736, 0xa736, -0xa738, 0xa738, -0xa73a, 0xa73a, -0xa73c, 0xa73c, -0xa73e, 0xa73e, -0xa740, 0xa740, -0xa742, 0xa742, -0xa744, 0xa744, -0xa746, 0xa746, -0xa748, 0xa748, -0xa74a, 0xa74a, -0xa74c, 0xa74c, -0xa74e, 0xa74e, -0xa750, 0xa750, -0xa752, 0xa752, -0xa754, 0xa754, -0xa756, 0xa756, -0xa758, 0xa758, -0xa75a, 0xa75a, -0xa75c, 0xa75c, -0xa75e, 0xa75e, -0xa760, 0xa760, -0xa762, 0xa762, -0xa764, 0xa764, -0xa766, 0xa766, -0xa768, 0xa768, -0xa76a, 0xa76a, -0xa76c, 0xa76c, -0xa76e, 0xa76e, -0xa779, 0xa779, -0xa77b, 0xa77b, -0xa77d, 0xa77e, -0xa780, 0xa780, -0xa782, 0xa782, -0xa784, 0xa784, -0xa786, 0xa786, -0xa78b, 0xa78b, -0xa78d, 0xa78d, -0xa790, 0xa790, -0xa792, 0xa792, -0xa796, 0xa796, -0xa798, 0xa798, -0xa79a, 0xa79a, -0xa79c, 0xa79c, -0xa79e, 0xa79e, -0xa7a0, 0xa7a0, -0xa7a2, 0xa7a2, -0xa7a4, 0xa7a4, -0xa7a6, 0xa7a6, -0xa7a8, 0xa7a8, -0xa7aa, 0xa7ae, -0xa7b0, 0xa7b4, -0xa7b6, 0xa7b6, -0xa7b8, 0xa7b8, -0xa7ba, 0xa7ba, -0xa7bc, 0xa7bc, -0xa7be, 0xa7be, -0xa7c2, 0xa7c2, -0xa7c4, 0xa7c6, -0xff21, 0xff3a, -0x10400, 0x10427, -0x104b0, 0x104d3, -0x10c80, 0x10cb2, -0x118a0, 0x118bf, -0x16e40, 0x16e5f, -0x1e900, 0x1e921, -}; /* END of CR_Changes_When_Lowercased */ - -/* PROPERTY: 'Changes_When_Titlecased': Derived Property */ -static const OnigCodePoint -CR_Changes_When_Titlecased[] = { 615, -0x0061, 0x007a, -0x00b5, 0x00b5, -0x00df, 0x00f6, -0x00f8, 0x00ff, -0x0101, 0x0101, -0x0103, 0x0103, -0x0105, 0x0105, -0x0107, 0x0107, -0x0109, 0x0109, -0x010b, 0x010b, -0x010d, 0x010d, -0x010f, 0x010f, -0x0111, 0x0111, -0x0113, 0x0113, -0x0115, 0x0115, -0x0117, 0x0117, -0x0119, 0x0119, -0x011b, 0x011b, -0x011d, 0x011d, -0x011f, 0x011f, -0x0121, 0x0121, -0x0123, 0x0123, -0x0125, 0x0125, -0x0127, 0x0127, -0x0129, 0x0129, -0x012b, 0x012b, -0x012d, 0x012d, -0x012f, 0x012f, -0x0131, 0x0131, -0x0133, 0x0133, -0x0135, 0x0135, -0x0137, 0x0137, -0x013a, 0x013a, -0x013c, 0x013c, -0x013e, 0x013e, -0x0140, 0x0140, -0x0142, 0x0142, -0x0144, 0x0144, -0x0146, 0x0146, -0x0148, 0x0149, -0x014b, 0x014b, -0x014d, 0x014d, -0x014f, 0x014f, -0x0151, 0x0151, -0x0153, 0x0153, -0x0155, 0x0155, -0x0157, 0x0157, -0x0159, 0x0159, -0x015b, 0x015b, -0x015d, 0x015d, -0x015f, 0x015f, -0x0161, 0x0161, -0x0163, 0x0163, -0x0165, 0x0165, -0x0167, 0x0167, -0x0169, 0x0169, -0x016b, 0x016b, -0x016d, 0x016d, -0x016f, 0x016f, -0x0171, 0x0171, -0x0173, 0x0173, -0x0175, 0x0175, -0x0177, 0x0177, -0x017a, 0x017a, -0x017c, 0x017c, -0x017e, 0x0180, -0x0183, 0x0183, -0x0185, 0x0185, -0x0188, 0x0188, -0x018c, 0x018c, -0x0192, 0x0192, -0x0195, 0x0195, -0x0199, 0x019a, -0x019e, 0x019e, -0x01a1, 0x01a1, -0x01a3, 0x01a3, -0x01a5, 0x01a5, -0x01a8, 0x01a8, -0x01ad, 0x01ad, -0x01b0, 0x01b0, -0x01b4, 0x01b4, -0x01b6, 0x01b6, -0x01b9, 0x01b9, -0x01bd, 0x01bd, -0x01bf, 0x01bf, -0x01c4, 0x01c4, -0x01c6, 0x01c7, -0x01c9, 0x01ca, -0x01cc, 0x01cc, -0x01ce, 0x01ce, -0x01d0, 0x01d0, -0x01d2, 0x01d2, -0x01d4, 0x01d4, -0x01d6, 0x01d6, -0x01d8, 0x01d8, -0x01da, 0x01da, -0x01dc, 0x01dd, -0x01df, 0x01df, -0x01e1, 0x01e1, -0x01e3, 0x01e3, -0x01e5, 0x01e5, -0x01e7, 0x01e7, -0x01e9, 0x01e9, -0x01eb, 0x01eb, -0x01ed, 0x01ed, -0x01ef, 0x01f1, -0x01f3, 0x01f3, -0x01f5, 0x01f5, -0x01f9, 0x01f9, -0x01fb, 0x01fb, -0x01fd, 0x01fd, -0x01ff, 0x01ff, -0x0201, 0x0201, -0x0203, 0x0203, -0x0205, 0x0205, -0x0207, 0x0207, -0x0209, 0x0209, -0x020b, 0x020b, -0x020d, 0x020d, -0x020f, 0x020f, -0x0211, 0x0211, -0x0213, 0x0213, -0x0215, 0x0215, -0x0217, 0x0217, -0x0219, 0x0219, -0x021b, 0x021b, -0x021d, 0x021d, -0x021f, 0x021f, -0x0223, 0x0223, -0x0225, 0x0225, -0x0227, 0x0227, -0x0229, 0x0229, -0x022b, 0x022b, -0x022d, 0x022d, -0x022f, 0x022f, -0x0231, 0x0231, -0x0233, 0x0233, -0x023c, 0x023c, -0x023f, 0x0240, -0x0242, 0x0242, -0x0247, 0x0247, -0x0249, 0x0249, -0x024b, 0x024b, -0x024d, 0x024d, -0x024f, 0x0254, -0x0256, 0x0257, -0x0259, 0x0259, -0x025b, 0x025c, -0x0260, 0x0261, -0x0263, 0x0263, -0x0265, 0x0266, -0x0268, 0x026c, -0x026f, 0x026f, -0x0271, 0x0272, -0x0275, 0x0275, -0x027d, 0x027d, -0x0280, 0x0280, -0x0282, 0x0283, -0x0287, 0x028c, -0x0292, 0x0292, -0x029d, 0x029e, -0x0345, 0x0345, -0x0371, 0x0371, -0x0373, 0x0373, -0x0377, 0x0377, -0x037b, 0x037d, -0x0390, 0x0390, -0x03ac, 0x03ce, -0x03d0, 0x03d1, -0x03d5, 0x03d7, -0x03d9, 0x03d9, -0x03db, 0x03db, -0x03dd, 0x03dd, -0x03df, 0x03df, -0x03e1, 0x03e1, -0x03e3, 0x03e3, -0x03e5, 0x03e5, -0x03e7, 0x03e7, -0x03e9, 0x03e9, -0x03eb, 0x03eb, -0x03ed, 0x03ed, -0x03ef, 0x03f3, -0x03f5, 0x03f5, -0x03f8, 0x03f8, -0x03fb, 0x03fb, -0x0430, 0x045f, -0x0461, 0x0461, -0x0463, 0x0463, -0x0465, 0x0465, -0x0467, 0x0467, -0x0469, 0x0469, -0x046b, 0x046b, -0x046d, 0x046d, -0x046f, 0x046f, -0x0471, 0x0471, -0x0473, 0x0473, -0x0475, 0x0475, -0x0477, 0x0477, -0x0479, 0x0479, -0x047b, 0x047b, -0x047d, 0x047d, -0x047f, 0x047f, -0x0481, 0x0481, -0x048b, 0x048b, -0x048d, 0x048d, -0x048f, 0x048f, -0x0491, 0x0491, -0x0493, 0x0493, -0x0495, 0x0495, -0x0497, 0x0497, -0x0499, 0x0499, -0x049b, 0x049b, -0x049d, 0x049d, -0x049f, 0x049f, -0x04a1, 0x04a1, -0x04a3, 0x04a3, -0x04a5, 0x04a5, -0x04a7, 0x04a7, -0x04a9, 0x04a9, -0x04ab, 0x04ab, -0x04ad, 0x04ad, -0x04af, 0x04af, -0x04b1, 0x04b1, -0x04b3, 0x04b3, -0x04b5, 0x04b5, -0x04b7, 0x04b7, -0x04b9, 0x04b9, -0x04bb, 0x04bb, -0x04bd, 0x04bd, -0x04bf, 0x04bf, -0x04c2, 0x04c2, -0x04c4, 0x04c4, -0x04c6, 0x04c6, -0x04c8, 0x04c8, -0x04ca, 0x04ca, -0x04cc, 0x04cc, -0x04ce, 0x04cf, -0x04d1, 0x04d1, -0x04d3, 0x04d3, -0x04d5, 0x04d5, -0x04d7, 0x04d7, -0x04d9, 0x04d9, -0x04db, 0x04db, -0x04dd, 0x04dd, -0x04df, 0x04df, -0x04e1, 0x04e1, -0x04e3, 0x04e3, -0x04e5, 0x04e5, -0x04e7, 0x04e7, -0x04e9, 0x04e9, -0x04eb, 0x04eb, -0x04ed, 0x04ed, -0x04ef, 0x04ef, -0x04f1, 0x04f1, -0x04f3, 0x04f3, -0x04f5, 0x04f5, -0x04f7, 0x04f7, -0x04f9, 0x04f9, -0x04fb, 0x04fb, -0x04fd, 0x04fd, -0x04ff, 0x04ff, -0x0501, 0x0501, -0x0503, 0x0503, -0x0505, 0x0505, -0x0507, 0x0507, -0x0509, 0x0509, -0x050b, 0x050b, -0x050d, 0x050d, -0x050f, 0x050f, -0x0511, 0x0511, -0x0513, 0x0513, -0x0515, 0x0515, -0x0517, 0x0517, -0x0519, 0x0519, -0x051b, 0x051b, -0x051d, 0x051d, -0x051f, 0x051f, -0x0521, 0x0521, -0x0523, 0x0523, -0x0525, 0x0525, -0x0527, 0x0527, -0x0529, 0x0529, -0x052b, 0x052b, -0x052d, 0x052d, -0x052f, 0x052f, -0x0561, 0x0587, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1d79, 0x1d79, -0x1d7d, 0x1d7d, -0x1d8e, 0x1d8e, -0x1e01, 0x1e01, -0x1e03, 0x1e03, -0x1e05, 0x1e05, -0x1e07, 0x1e07, -0x1e09, 0x1e09, -0x1e0b, 0x1e0b, -0x1e0d, 0x1e0d, -0x1e0f, 0x1e0f, -0x1e11, 0x1e11, -0x1e13, 0x1e13, -0x1e15, 0x1e15, -0x1e17, 0x1e17, -0x1e19, 0x1e19, -0x1e1b, 0x1e1b, -0x1e1d, 0x1e1d, -0x1e1f, 0x1e1f, -0x1e21, 0x1e21, -0x1e23, 0x1e23, -0x1e25, 0x1e25, -0x1e27, 0x1e27, -0x1e29, 0x1e29, -0x1e2b, 0x1e2b, -0x1e2d, 0x1e2d, -0x1e2f, 0x1e2f, -0x1e31, 0x1e31, -0x1e33, 0x1e33, -0x1e35, 0x1e35, -0x1e37, 0x1e37, -0x1e39, 0x1e39, -0x1e3b, 0x1e3b, -0x1e3d, 0x1e3d, -0x1e3f, 0x1e3f, -0x1e41, 0x1e41, -0x1e43, 0x1e43, -0x1e45, 0x1e45, -0x1e47, 0x1e47, -0x1e49, 0x1e49, -0x1e4b, 0x1e4b, -0x1e4d, 0x1e4d, -0x1e4f, 0x1e4f, -0x1e51, 0x1e51, -0x1e53, 0x1e53, -0x1e55, 0x1e55, -0x1e57, 0x1e57, -0x1e59, 0x1e59, -0x1e5b, 0x1e5b, -0x1e5d, 0x1e5d, -0x1e5f, 0x1e5f, -0x1e61, 0x1e61, -0x1e63, 0x1e63, -0x1e65, 0x1e65, -0x1e67, 0x1e67, -0x1e69, 0x1e69, -0x1e6b, 0x1e6b, -0x1e6d, 0x1e6d, -0x1e6f, 0x1e6f, -0x1e71, 0x1e71, -0x1e73, 0x1e73, -0x1e75, 0x1e75, -0x1e77, 0x1e77, -0x1e79, 0x1e79, -0x1e7b, 0x1e7b, -0x1e7d, 0x1e7d, -0x1e7f, 0x1e7f, -0x1e81, 0x1e81, -0x1e83, 0x1e83, -0x1e85, 0x1e85, -0x1e87, 0x1e87, -0x1e89, 0x1e89, -0x1e8b, 0x1e8b, -0x1e8d, 0x1e8d, -0x1e8f, 0x1e8f, -0x1e91, 0x1e91, -0x1e93, 0x1e93, -0x1e95, 0x1e9b, -0x1ea1, 0x1ea1, -0x1ea3, 0x1ea3, -0x1ea5, 0x1ea5, -0x1ea7, 0x1ea7, -0x1ea9, 0x1ea9, -0x1eab, 0x1eab, -0x1ead, 0x1ead, -0x1eaf, 0x1eaf, -0x1eb1, 0x1eb1, -0x1eb3, 0x1eb3, -0x1eb5, 0x1eb5, -0x1eb7, 0x1eb7, -0x1eb9, 0x1eb9, -0x1ebb, 0x1ebb, -0x1ebd, 0x1ebd, -0x1ebf, 0x1ebf, -0x1ec1, 0x1ec1, -0x1ec3, 0x1ec3, -0x1ec5, 0x1ec5, -0x1ec7, 0x1ec7, -0x1ec9, 0x1ec9, -0x1ecb, 0x1ecb, -0x1ecd, 0x1ecd, -0x1ecf, 0x1ecf, -0x1ed1, 0x1ed1, -0x1ed3, 0x1ed3, -0x1ed5, 0x1ed5, -0x1ed7, 0x1ed7, -0x1ed9, 0x1ed9, -0x1edb, 0x1edb, -0x1edd, 0x1edd, -0x1edf, 0x1edf, -0x1ee1, 0x1ee1, -0x1ee3, 0x1ee3, -0x1ee5, 0x1ee5, -0x1ee7, 0x1ee7, -0x1ee9, 0x1ee9, -0x1eeb, 0x1eeb, -0x1eed, 0x1eed, -0x1eef, 0x1eef, -0x1ef1, 0x1ef1, -0x1ef3, 0x1ef3, -0x1ef5, 0x1ef5, -0x1ef7, 0x1ef7, -0x1ef9, 0x1ef9, -0x1efb, 0x1efb, -0x1efd, 0x1efd, -0x1eff, 0x1f07, -0x1f10, 0x1f15, -0x1f20, 0x1f27, -0x1f30, 0x1f37, -0x1f40, 0x1f45, -0x1f50, 0x1f57, -0x1f60, 0x1f67, -0x1f70, 0x1f7d, -0x1f80, 0x1f87, -0x1f90, 0x1f97, -0x1fa0, 0x1fa7, -0x1fb0, 0x1fb4, -0x1fb6, 0x1fb7, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fc7, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fd7, -0x1fe0, 0x1fe7, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ff7, -0x214e, 0x214e, -0x2170, 0x217f, -0x2184, 0x2184, -0x24d0, 0x24e9, -0x2c30, 0x2c5e, -0x2c61, 0x2c61, -0x2c65, 0x2c66, -0x2c68, 0x2c68, -0x2c6a, 0x2c6a, -0x2c6c, 0x2c6c, -0x2c73, 0x2c73, -0x2c76, 0x2c76, -0x2c81, 0x2c81, -0x2c83, 0x2c83, -0x2c85, 0x2c85, -0x2c87, 0x2c87, -0x2c89, 0x2c89, -0x2c8b, 0x2c8b, -0x2c8d, 0x2c8d, -0x2c8f, 0x2c8f, -0x2c91, 0x2c91, -0x2c93, 0x2c93, -0x2c95, 0x2c95, -0x2c97, 0x2c97, -0x2c99, 0x2c99, -0x2c9b, 0x2c9b, -0x2c9d, 0x2c9d, -0x2c9f, 0x2c9f, -0x2ca1, 0x2ca1, -0x2ca3, 0x2ca3, -0x2ca5, 0x2ca5, -0x2ca7, 0x2ca7, -0x2ca9, 0x2ca9, -0x2cab, 0x2cab, -0x2cad, 0x2cad, -0x2caf, 0x2caf, -0x2cb1, 0x2cb1, -0x2cb3, 0x2cb3, -0x2cb5, 0x2cb5, -0x2cb7, 0x2cb7, -0x2cb9, 0x2cb9, -0x2cbb, 0x2cbb, -0x2cbd, 0x2cbd, -0x2cbf, 0x2cbf, -0x2cc1, 0x2cc1, -0x2cc3, 0x2cc3, -0x2cc5, 0x2cc5, -0x2cc7, 0x2cc7, -0x2cc9, 0x2cc9, -0x2ccb, 0x2ccb, -0x2ccd, 0x2ccd, -0x2ccf, 0x2ccf, -0x2cd1, 0x2cd1, -0x2cd3, 0x2cd3, -0x2cd5, 0x2cd5, -0x2cd7, 0x2cd7, -0x2cd9, 0x2cd9, -0x2cdb, 0x2cdb, -0x2cdd, 0x2cdd, -0x2cdf, 0x2cdf, -0x2ce1, 0x2ce1, -0x2ce3, 0x2ce3, -0x2cec, 0x2cec, -0x2cee, 0x2cee, -0x2cf3, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa641, 0xa641, -0xa643, 0xa643, -0xa645, 0xa645, -0xa647, 0xa647, -0xa649, 0xa649, -0xa64b, 0xa64b, -0xa64d, 0xa64d, -0xa64f, 0xa64f, -0xa651, 0xa651, -0xa653, 0xa653, -0xa655, 0xa655, -0xa657, 0xa657, -0xa659, 0xa659, -0xa65b, 0xa65b, -0xa65d, 0xa65d, -0xa65f, 0xa65f, -0xa661, 0xa661, -0xa663, 0xa663, -0xa665, 0xa665, -0xa667, 0xa667, -0xa669, 0xa669, -0xa66b, 0xa66b, -0xa66d, 0xa66d, -0xa681, 0xa681, -0xa683, 0xa683, -0xa685, 0xa685, -0xa687, 0xa687, -0xa689, 0xa689, -0xa68b, 0xa68b, -0xa68d, 0xa68d, -0xa68f, 0xa68f, -0xa691, 0xa691, -0xa693, 0xa693, -0xa695, 0xa695, -0xa697, 0xa697, -0xa699, 0xa699, -0xa69b, 0xa69b, -0xa723, 0xa723, -0xa725, 0xa725, -0xa727, 0xa727, -0xa729, 0xa729, -0xa72b, 0xa72b, -0xa72d, 0xa72d, -0xa72f, 0xa72f, -0xa733, 0xa733, -0xa735, 0xa735, -0xa737, 0xa737, -0xa739, 0xa739, -0xa73b, 0xa73b, -0xa73d, 0xa73d, -0xa73f, 0xa73f, -0xa741, 0xa741, -0xa743, 0xa743, -0xa745, 0xa745, -0xa747, 0xa747, -0xa749, 0xa749, -0xa74b, 0xa74b, -0xa74d, 0xa74d, -0xa74f, 0xa74f, -0xa751, 0xa751, -0xa753, 0xa753, -0xa755, 0xa755, -0xa757, 0xa757, -0xa759, 0xa759, -0xa75b, 0xa75b, -0xa75d, 0xa75d, -0xa75f, 0xa75f, -0xa761, 0xa761, -0xa763, 0xa763, -0xa765, 0xa765, -0xa767, 0xa767, -0xa769, 0xa769, -0xa76b, 0xa76b, -0xa76d, 0xa76d, -0xa76f, 0xa76f, -0xa77a, 0xa77a, -0xa77c, 0xa77c, -0xa77f, 0xa77f, -0xa781, 0xa781, -0xa783, 0xa783, -0xa785, 0xa785, -0xa787, 0xa787, -0xa78c, 0xa78c, -0xa791, 0xa791, -0xa793, 0xa794, -0xa797, 0xa797, -0xa799, 0xa799, -0xa79b, 0xa79b, -0xa79d, 0xa79d, -0xa79f, 0xa79f, -0xa7a1, 0xa7a1, -0xa7a3, 0xa7a3, -0xa7a5, 0xa7a5, -0xa7a7, 0xa7a7, -0xa7a9, 0xa7a9, -0xa7b5, 0xa7b5, -0xa7b7, 0xa7b7, -0xa7b9, 0xa7b9, -0xa7bb, 0xa7bb, -0xa7bd, 0xa7bd, -0xa7bf, 0xa7bf, -0xa7c3, 0xa7c3, -0xab53, 0xab53, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff41, 0xff5a, -0x10428, 0x1044f, -0x104d8, 0x104fb, -0x10cc0, 0x10cf2, -0x118c0, 0x118df, -0x16e60, 0x16e7f, -0x1e922, 0x1e943, -}; /* END of CR_Changes_When_Titlecased */ - -/* PROPERTY: 'Changes_When_Uppercased': Derived Property */ -static const OnigCodePoint -CR_Changes_When_Uppercased[] = { 616, -0x0061, 0x007a, -0x00b5, 0x00b5, -0x00df, 0x00f6, -0x00f8, 0x00ff, -0x0101, 0x0101, -0x0103, 0x0103, -0x0105, 0x0105, -0x0107, 0x0107, -0x0109, 0x0109, -0x010b, 0x010b, -0x010d, 0x010d, -0x010f, 0x010f, -0x0111, 0x0111, -0x0113, 0x0113, -0x0115, 0x0115, -0x0117, 0x0117, -0x0119, 0x0119, -0x011b, 0x011b, -0x011d, 0x011d, -0x011f, 0x011f, -0x0121, 0x0121, -0x0123, 0x0123, -0x0125, 0x0125, -0x0127, 0x0127, -0x0129, 0x0129, -0x012b, 0x012b, -0x012d, 0x012d, -0x012f, 0x012f, -0x0131, 0x0131, -0x0133, 0x0133, -0x0135, 0x0135, -0x0137, 0x0137, -0x013a, 0x013a, -0x013c, 0x013c, -0x013e, 0x013e, -0x0140, 0x0140, -0x0142, 0x0142, -0x0144, 0x0144, -0x0146, 0x0146, -0x0148, 0x0149, -0x014b, 0x014b, -0x014d, 0x014d, -0x014f, 0x014f, -0x0151, 0x0151, -0x0153, 0x0153, -0x0155, 0x0155, -0x0157, 0x0157, -0x0159, 0x0159, -0x015b, 0x015b, -0x015d, 0x015d, -0x015f, 0x015f, -0x0161, 0x0161, -0x0163, 0x0163, -0x0165, 0x0165, -0x0167, 0x0167, -0x0169, 0x0169, -0x016b, 0x016b, -0x016d, 0x016d, -0x016f, 0x016f, -0x0171, 0x0171, -0x0173, 0x0173, -0x0175, 0x0175, -0x0177, 0x0177, -0x017a, 0x017a, -0x017c, 0x017c, -0x017e, 0x0180, -0x0183, 0x0183, -0x0185, 0x0185, -0x0188, 0x0188, -0x018c, 0x018c, -0x0192, 0x0192, -0x0195, 0x0195, -0x0199, 0x019a, -0x019e, 0x019e, -0x01a1, 0x01a1, -0x01a3, 0x01a3, -0x01a5, 0x01a5, -0x01a8, 0x01a8, -0x01ad, 0x01ad, -0x01b0, 0x01b0, -0x01b4, 0x01b4, -0x01b6, 0x01b6, -0x01b9, 0x01b9, -0x01bd, 0x01bd, -0x01bf, 0x01bf, -0x01c5, 0x01c6, -0x01c8, 0x01c9, -0x01cb, 0x01cc, -0x01ce, 0x01ce, -0x01d0, 0x01d0, -0x01d2, 0x01d2, -0x01d4, 0x01d4, -0x01d6, 0x01d6, -0x01d8, 0x01d8, -0x01da, 0x01da, -0x01dc, 0x01dd, -0x01df, 0x01df, -0x01e1, 0x01e1, -0x01e3, 0x01e3, -0x01e5, 0x01e5, -0x01e7, 0x01e7, -0x01e9, 0x01e9, -0x01eb, 0x01eb, -0x01ed, 0x01ed, -0x01ef, 0x01f0, -0x01f2, 0x01f3, -0x01f5, 0x01f5, -0x01f9, 0x01f9, -0x01fb, 0x01fb, -0x01fd, 0x01fd, -0x01ff, 0x01ff, -0x0201, 0x0201, -0x0203, 0x0203, -0x0205, 0x0205, -0x0207, 0x0207, -0x0209, 0x0209, -0x020b, 0x020b, -0x020d, 0x020d, -0x020f, 0x020f, -0x0211, 0x0211, -0x0213, 0x0213, -0x0215, 0x0215, -0x0217, 0x0217, -0x0219, 0x0219, -0x021b, 0x021b, -0x021d, 0x021d, -0x021f, 0x021f, -0x0223, 0x0223, -0x0225, 0x0225, -0x0227, 0x0227, -0x0229, 0x0229, -0x022b, 0x022b, -0x022d, 0x022d, -0x022f, 0x022f, -0x0231, 0x0231, -0x0233, 0x0233, -0x023c, 0x023c, -0x023f, 0x0240, -0x0242, 0x0242, -0x0247, 0x0247, -0x0249, 0x0249, -0x024b, 0x024b, -0x024d, 0x024d, -0x024f, 0x0254, -0x0256, 0x0257, -0x0259, 0x0259, -0x025b, 0x025c, -0x0260, 0x0261, -0x0263, 0x0263, -0x0265, 0x0266, -0x0268, 0x026c, -0x026f, 0x026f, -0x0271, 0x0272, -0x0275, 0x0275, -0x027d, 0x027d, -0x0280, 0x0280, -0x0282, 0x0283, -0x0287, 0x028c, -0x0292, 0x0292, -0x029d, 0x029e, -0x0345, 0x0345, -0x0371, 0x0371, -0x0373, 0x0373, -0x0377, 0x0377, -0x037b, 0x037d, -0x0390, 0x0390, -0x03ac, 0x03ce, -0x03d0, 0x03d1, -0x03d5, 0x03d7, -0x03d9, 0x03d9, -0x03db, 0x03db, -0x03dd, 0x03dd, -0x03df, 0x03df, -0x03e1, 0x03e1, -0x03e3, 0x03e3, -0x03e5, 0x03e5, -0x03e7, 0x03e7, -0x03e9, 0x03e9, -0x03eb, 0x03eb, -0x03ed, 0x03ed, -0x03ef, 0x03f3, -0x03f5, 0x03f5, -0x03f8, 0x03f8, -0x03fb, 0x03fb, -0x0430, 0x045f, -0x0461, 0x0461, -0x0463, 0x0463, -0x0465, 0x0465, -0x0467, 0x0467, -0x0469, 0x0469, -0x046b, 0x046b, -0x046d, 0x046d, -0x046f, 0x046f, -0x0471, 0x0471, -0x0473, 0x0473, -0x0475, 0x0475, -0x0477, 0x0477, -0x0479, 0x0479, -0x047b, 0x047b, -0x047d, 0x047d, -0x047f, 0x047f, -0x0481, 0x0481, -0x048b, 0x048b, -0x048d, 0x048d, -0x048f, 0x048f, -0x0491, 0x0491, -0x0493, 0x0493, -0x0495, 0x0495, -0x0497, 0x0497, -0x0499, 0x0499, -0x049b, 0x049b, -0x049d, 0x049d, -0x049f, 0x049f, -0x04a1, 0x04a1, -0x04a3, 0x04a3, -0x04a5, 0x04a5, -0x04a7, 0x04a7, -0x04a9, 0x04a9, -0x04ab, 0x04ab, -0x04ad, 0x04ad, -0x04af, 0x04af, -0x04b1, 0x04b1, -0x04b3, 0x04b3, -0x04b5, 0x04b5, -0x04b7, 0x04b7, -0x04b9, 0x04b9, -0x04bb, 0x04bb, -0x04bd, 0x04bd, -0x04bf, 0x04bf, -0x04c2, 0x04c2, -0x04c4, 0x04c4, -0x04c6, 0x04c6, -0x04c8, 0x04c8, -0x04ca, 0x04ca, -0x04cc, 0x04cc, -0x04ce, 0x04cf, -0x04d1, 0x04d1, -0x04d3, 0x04d3, -0x04d5, 0x04d5, -0x04d7, 0x04d7, -0x04d9, 0x04d9, -0x04db, 0x04db, -0x04dd, 0x04dd, -0x04df, 0x04df, -0x04e1, 0x04e1, -0x04e3, 0x04e3, -0x04e5, 0x04e5, -0x04e7, 0x04e7, -0x04e9, 0x04e9, -0x04eb, 0x04eb, -0x04ed, 0x04ed, -0x04ef, 0x04ef, -0x04f1, 0x04f1, -0x04f3, 0x04f3, -0x04f5, 0x04f5, -0x04f7, 0x04f7, -0x04f9, 0x04f9, -0x04fb, 0x04fb, -0x04fd, 0x04fd, -0x04ff, 0x04ff, -0x0501, 0x0501, -0x0503, 0x0503, -0x0505, 0x0505, -0x0507, 0x0507, -0x0509, 0x0509, -0x050b, 0x050b, -0x050d, 0x050d, -0x050f, 0x050f, -0x0511, 0x0511, -0x0513, 0x0513, -0x0515, 0x0515, -0x0517, 0x0517, -0x0519, 0x0519, -0x051b, 0x051b, -0x051d, 0x051d, -0x051f, 0x051f, -0x0521, 0x0521, -0x0523, 0x0523, -0x0525, 0x0525, -0x0527, 0x0527, -0x0529, 0x0529, -0x052b, 0x052b, -0x052d, 0x052d, -0x052f, 0x052f, -0x0561, 0x0587, -0x10d0, 0x10fa, -0x10fd, 0x10ff, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1d79, 0x1d79, -0x1d7d, 0x1d7d, -0x1d8e, 0x1d8e, -0x1e01, 0x1e01, -0x1e03, 0x1e03, -0x1e05, 0x1e05, -0x1e07, 0x1e07, -0x1e09, 0x1e09, -0x1e0b, 0x1e0b, -0x1e0d, 0x1e0d, -0x1e0f, 0x1e0f, -0x1e11, 0x1e11, -0x1e13, 0x1e13, -0x1e15, 0x1e15, -0x1e17, 0x1e17, -0x1e19, 0x1e19, -0x1e1b, 0x1e1b, -0x1e1d, 0x1e1d, -0x1e1f, 0x1e1f, -0x1e21, 0x1e21, -0x1e23, 0x1e23, -0x1e25, 0x1e25, -0x1e27, 0x1e27, -0x1e29, 0x1e29, -0x1e2b, 0x1e2b, -0x1e2d, 0x1e2d, -0x1e2f, 0x1e2f, -0x1e31, 0x1e31, -0x1e33, 0x1e33, -0x1e35, 0x1e35, -0x1e37, 0x1e37, -0x1e39, 0x1e39, -0x1e3b, 0x1e3b, -0x1e3d, 0x1e3d, -0x1e3f, 0x1e3f, -0x1e41, 0x1e41, -0x1e43, 0x1e43, -0x1e45, 0x1e45, -0x1e47, 0x1e47, -0x1e49, 0x1e49, -0x1e4b, 0x1e4b, -0x1e4d, 0x1e4d, -0x1e4f, 0x1e4f, -0x1e51, 0x1e51, -0x1e53, 0x1e53, -0x1e55, 0x1e55, -0x1e57, 0x1e57, -0x1e59, 0x1e59, -0x1e5b, 0x1e5b, -0x1e5d, 0x1e5d, -0x1e5f, 0x1e5f, -0x1e61, 0x1e61, -0x1e63, 0x1e63, -0x1e65, 0x1e65, -0x1e67, 0x1e67, -0x1e69, 0x1e69, -0x1e6b, 0x1e6b, -0x1e6d, 0x1e6d, -0x1e6f, 0x1e6f, -0x1e71, 0x1e71, -0x1e73, 0x1e73, -0x1e75, 0x1e75, -0x1e77, 0x1e77, -0x1e79, 0x1e79, -0x1e7b, 0x1e7b, -0x1e7d, 0x1e7d, -0x1e7f, 0x1e7f, -0x1e81, 0x1e81, -0x1e83, 0x1e83, -0x1e85, 0x1e85, -0x1e87, 0x1e87, -0x1e89, 0x1e89, -0x1e8b, 0x1e8b, -0x1e8d, 0x1e8d, -0x1e8f, 0x1e8f, -0x1e91, 0x1e91, -0x1e93, 0x1e93, -0x1e95, 0x1e9b, -0x1ea1, 0x1ea1, -0x1ea3, 0x1ea3, -0x1ea5, 0x1ea5, -0x1ea7, 0x1ea7, -0x1ea9, 0x1ea9, -0x1eab, 0x1eab, -0x1ead, 0x1ead, -0x1eaf, 0x1eaf, -0x1eb1, 0x1eb1, -0x1eb3, 0x1eb3, -0x1eb5, 0x1eb5, -0x1eb7, 0x1eb7, -0x1eb9, 0x1eb9, -0x1ebb, 0x1ebb, -0x1ebd, 0x1ebd, -0x1ebf, 0x1ebf, -0x1ec1, 0x1ec1, -0x1ec3, 0x1ec3, -0x1ec5, 0x1ec5, -0x1ec7, 0x1ec7, -0x1ec9, 0x1ec9, -0x1ecb, 0x1ecb, -0x1ecd, 0x1ecd, -0x1ecf, 0x1ecf, -0x1ed1, 0x1ed1, -0x1ed3, 0x1ed3, -0x1ed5, 0x1ed5, -0x1ed7, 0x1ed7, -0x1ed9, 0x1ed9, -0x1edb, 0x1edb, -0x1edd, 0x1edd, -0x1edf, 0x1edf, -0x1ee1, 0x1ee1, -0x1ee3, 0x1ee3, -0x1ee5, 0x1ee5, -0x1ee7, 0x1ee7, -0x1ee9, 0x1ee9, -0x1eeb, 0x1eeb, -0x1eed, 0x1eed, -0x1eef, 0x1eef, -0x1ef1, 0x1ef1, -0x1ef3, 0x1ef3, -0x1ef5, 0x1ef5, -0x1ef7, 0x1ef7, -0x1ef9, 0x1ef9, -0x1efb, 0x1efb, -0x1efd, 0x1efd, -0x1eff, 0x1f07, -0x1f10, 0x1f15, -0x1f20, 0x1f27, -0x1f30, 0x1f37, -0x1f40, 0x1f45, -0x1f50, 0x1f57, -0x1f60, 0x1f67, -0x1f70, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fb7, -0x1fbc, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fc7, -0x1fcc, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fd7, -0x1fe0, 0x1fe7, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ff7, -0x1ffc, 0x1ffc, -0x214e, 0x214e, -0x2170, 0x217f, -0x2184, 0x2184, -0x24d0, 0x24e9, -0x2c30, 0x2c5e, -0x2c61, 0x2c61, -0x2c65, 0x2c66, -0x2c68, 0x2c68, -0x2c6a, 0x2c6a, -0x2c6c, 0x2c6c, -0x2c73, 0x2c73, -0x2c76, 0x2c76, -0x2c81, 0x2c81, -0x2c83, 0x2c83, -0x2c85, 0x2c85, -0x2c87, 0x2c87, -0x2c89, 0x2c89, -0x2c8b, 0x2c8b, -0x2c8d, 0x2c8d, -0x2c8f, 0x2c8f, -0x2c91, 0x2c91, -0x2c93, 0x2c93, -0x2c95, 0x2c95, -0x2c97, 0x2c97, -0x2c99, 0x2c99, -0x2c9b, 0x2c9b, -0x2c9d, 0x2c9d, -0x2c9f, 0x2c9f, -0x2ca1, 0x2ca1, -0x2ca3, 0x2ca3, -0x2ca5, 0x2ca5, -0x2ca7, 0x2ca7, -0x2ca9, 0x2ca9, -0x2cab, 0x2cab, -0x2cad, 0x2cad, -0x2caf, 0x2caf, -0x2cb1, 0x2cb1, -0x2cb3, 0x2cb3, -0x2cb5, 0x2cb5, -0x2cb7, 0x2cb7, -0x2cb9, 0x2cb9, -0x2cbb, 0x2cbb, -0x2cbd, 0x2cbd, -0x2cbf, 0x2cbf, -0x2cc1, 0x2cc1, -0x2cc3, 0x2cc3, -0x2cc5, 0x2cc5, -0x2cc7, 0x2cc7, -0x2cc9, 0x2cc9, -0x2ccb, 0x2ccb, -0x2ccd, 0x2ccd, -0x2ccf, 0x2ccf, -0x2cd1, 0x2cd1, -0x2cd3, 0x2cd3, -0x2cd5, 0x2cd5, -0x2cd7, 0x2cd7, -0x2cd9, 0x2cd9, -0x2cdb, 0x2cdb, -0x2cdd, 0x2cdd, -0x2cdf, 0x2cdf, -0x2ce1, 0x2ce1, -0x2ce3, 0x2ce3, -0x2cec, 0x2cec, -0x2cee, 0x2cee, -0x2cf3, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa641, 0xa641, -0xa643, 0xa643, -0xa645, 0xa645, -0xa647, 0xa647, -0xa649, 0xa649, -0xa64b, 0xa64b, -0xa64d, 0xa64d, -0xa64f, 0xa64f, -0xa651, 0xa651, -0xa653, 0xa653, -0xa655, 0xa655, -0xa657, 0xa657, -0xa659, 0xa659, -0xa65b, 0xa65b, -0xa65d, 0xa65d, -0xa65f, 0xa65f, -0xa661, 0xa661, -0xa663, 0xa663, -0xa665, 0xa665, -0xa667, 0xa667, -0xa669, 0xa669, -0xa66b, 0xa66b, -0xa66d, 0xa66d, -0xa681, 0xa681, -0xa683, 0xa683, -0xa685, 0xa685, -0xa687, 0xa687, -0xa689, 0xa689, -0xa68b, 0xa68b, -0xa68d, 0xa68d, -0xa68f, 0xa68f, -0xa691, 0xa691, -0xa693, 0xa693, -0xa695, 0xa695, -0xa697, 0xa697, -0xa699, 0xa699, -0xa69b, 0xa69b, -0xa723, 0xa723, -0xa725, 0xa725, -0xa727, 0xa727, -0xa729, 0xa729, -0xa72b, 0xa72b, -0xa72d, 0xa72d, -0xa72f, 0xa72f, -0xa733, 0xa733, -0xa735, 0xa735, -0xa737, 0xa737, -0xa739, 0xa739, -0xa73b, 0xa73b, -0xa73d, 0xa73d, -0xa73f, 0xa73f, -0xa741, 0xa741, -0xa743, 0xa743, -0xa745, 0xa745, -0xa747, 0xa747, -0xa749, 0xa749, -0xa74b, 0xa74b, -0xa74d, 0xa74d, -0xa74f, 0xa74f, -0xa751, 0xa751, -0xa753, 0xa753, -0xa755, 0xa755, -0xa757, 0xa757, -0xa759, 0xa759, -0xa75b, 0xa75b, -0xa75d, 0xa75d, -0xa75f, 0xa75f, -0xa761, 0xa761, -0xa763, 0xa763, -0xa765, 0xa765, -0xa767, 0xa767, -0xa769, 0xa769, -0xa76b, 0xa76b, -0xa76d, 0xa76d, -0xa76f, 0xa76f, -0xa77a, 0xa77a, -0xa77c, 0xa77c, -0xa77f, 0xa77f, -0xa781, 0xa781, -0xa783, 0xa783, -0xa785, 0xa785, -0xa787, 0xa787, -0xa78c, 0xa78c, -0xa791, 0xa791, -0xa793, 0xa794, -0xa797, 0xa797, -0xa799, 0xa799, -0xa79b, 0xa79b, -0xa79d, 0xa79d, -0xa79f, 0xa79f, -0xa7a1, 0xa7a1, -0xa7a3, 0xa7a3, -0xa7a5, 0xa7a5, -0xa7a7, 0xa7a7, -0xa7a9, 0xa7a9, -0xa7b5, 0xa7b5, -0xa7b7, 0xa7b7, -0xa7b9, 0xa7b9, -0xa7bb, 0xa7bb, -0xa7bd, 0xa7bd, -0xa7bf, 0xa7bf, -0xa7c3, 0xa7c3, -0xab53, 0xab53, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff41, 0xff5a, -0x10428, 0x1044f, -0x104d8, 0x104fb, -0x10cc0, 0x10cf2, -0x118c0, 0x118df, -0x16e60, 0x16e7f, -0x1e922, 0x1e943, -}; /* END of CR_Changes_When_Uppercased */ - -/* PROPERTY: 'Cherokee': Script */ -static const OnigCodePoint -CR_Cherokee[] = { 3, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0xab70, 0xabbf, -}; /* END of CR_Cherokee */ - -/* PROPERTY: 'Cn': General Category */ -static const OnigCodePoint -CR_Cn[] = { 666, -0x0378, 0x0379, -0x0380, 0x0383, -0x038b, 0x038b, -0x038d, 0x038d, -0x03a2, 0x03a2, -0x0530, 0x0530, -0x0557, 0x0558, -0x058b, 0x058c, -0x0590, 0x0590, -0x05c8, 0x05cf, -0x05eb, 0x05ee, -0x05f5, 0x05ff, -0x061d, 0x061d, -0x070e, 0x070e, -0x074b, 0x074c, -0x07b2, 0x07bf, -0x07fb, 0x07fc, -0x082e, 0x082f, -0x083f, 0x083f, -0x085c, 0x085d, -0x085f, 0x085f, -0x086b, 0x089f, -0x08b5, 0x08b5, -0x08be, 0x08d2, -0x0984, 0x0984, -0x098d, 0x098e, -0x0991, 0x0992, -0x09a9, 0x09a9, -0x09b1, 0x09b1, -0x09b3, 0x09b5, -0x09ba, 0x09bb, -0x09c5, 0x09c6, -0x09c9, 0x09ca, -0x09cf, 0x09d6, -0x09d8, 0x09db, -0x09de, 0x09de, -0x09e4, 0x09e5, -0x09ff, 0x0a00, -0x0a04, 0x0a04, -0x0a0b, 0x0a0e, -0x0a11, 0x0a12, -0x0a29, 0x0a29, -0x0a31, 0x0a31, -0x0a34, 0x0a34, -0x0a37, 0x0a37, -0x0a3a, 0x0a3b, -0x0a3d, 0x0a3d, -0x0a43, 0x0a46, -0x0a49, 0x0a4a, -0x0a4e, 0x0a50, -0x0a52, 0x0a58, -0x0a5d, 0x0a5d, -0x0a5f, 0x0a65, -0x0a77, 0x0a80, -0x0a84, 0x0a84, -0x0a8e, 0x0a8e, -0x0a92, 0x0a92, -0x0aa9, 0x0aa9, -0x0ab1, 0x0ab1, -0x0ab4, 0x0ab4, -0x0aba, 0x0abb, -0x0ac6, 0x0ac6, -0x0aca, 0x0aca, -0x0ace, 0x0acf, -0x0ad1, 0x0adf, -0x0ae4, 0x0ae5, -0x0af2, 0x0af8, -0x0b00, 0x0b00, -0x0b04, 0x0b04, -0x0b0d, 0x0b0e, -0x0b11, 0x0b12, -0x0b29, 0x0b29, -0x0b31, 0x0b31, -0x0b34, 0x0b34, -0x0b3a, 0x0b3b, -0x0b45, 0x0b46, -0x0b49, 0x0b4a, -0x0b4e, 0x0b55, -0x0b58, 0x0b5b, -0x0b5e, 0x0b5e, -0x0b64, 0x0b65, -0x0b78, 0x0b81, -0x0b84, 0x0b84, -0x0b8b, 0x0b8d, -0x0b91, 0x0b91, -0x0b96, 0x0b98, -0x0b9b, 0x0b9b, -0x0b9d, 0x0b9d, -0x0ba0, 0x0ba2, -0x0ba5, 0x0ba7, -0x0bab, 0x0bad, -0x0bba, 0x0bbd, -0x0bc3, 0x0bc5, -0x0bc9, 0x0bc9, -0x0bce, 0x0bcf, -0x0bd1, 0x0bd6, -0x0bd8, 0x0be5, -0x0bfb, 0x0bff, -0x0c0d, 0x0c0d, -0x0c11, 0x0c11, -0x0c29, 0x0c29, -0x0c3a, 0x0c3c, -0x0c45, 0x0c45, -0x0c49, 0x0c49, -0x0c4e, 0x0c54, -0x0c57, 0x0c57, -0x0c5b, 0x0c5f, -0x0c64, 0x0c65, -0x0c70, 0x0c76, -0x0c8d, 0x0c8d, -0x0c91, 0x0c91, -0x0ca9, 0x0ca9, -0x0cb4, 0x0cb4, -0x0cba, 0x0cbb, -0x0cc5, 0x0cc5, -0x0cc9, 0x0cc9, -0x0cce, 0x0cd4, -0x0cd7, 0x0cdd, -0x0cdf, 0x0cdf, -0x0ce4, 0x0ce5, -0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, -0x0d04, 0x0d04, -0x0d0d, 0x0d0d, -0x0d11, 0x0d11, -0x0d45, 0x0d45, -0x0d49, 0x0d49, -0x0d50, 0x0d53, -0x0d64, 0x0d65, -0x0d80, 0x0d81, -0x0d84, 0x0d84, -0x0d97, 0x0d99, -0x0db2, 0x0db2, -0x0dbc, 0x0dbc, -0x0dbe, 0x0dbf, -0x0dc7, 0x0dc9, -0x0dcb, 0x0dce, -0x0dd5, 0x0dd5, -0x0dd7, 0x0dd7, -0x0de0, 0x0de5, -0x0df0, 0x0df1, -0x0df5, 0x0e00, -0x0e3b, 0x0e3e, -0x0e5c, 0x0e80, -0x0e83, 0x0e83, -0x0e85, 0x0e85, -0x0e8b, 0x0e8b, -0x0ea4, 0x0ea4, -0x0ea6, 0x0ea6, -0x0ebe, 0x0ebf, -0x0ec5, 0x0ec5, -0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, -0x0eda, 0x0edb, -0x0ee0, 0x0eff, -0x0f48, 0x0f48, -0x0f6d, 0x0f70, -0x0f98, 0x0f98, -0x0fbd, 0x0fbd, -0x0fcd, 0x0fcd, -0x0fdb, 0x0fff, -0x10c6, 0x10c6, -0x10c8, 0x10cc, -0x10ce, 0x10cf, -0x1249, 0x1249, -0x124e, 0x124f, -0x1257, 0x1257, -0x1259, 0x1259, -0x125e, 0x125f, -0x1289, 0x1289, -0x128e, 0x128f, -0x12b1, 0x12b1, -0x12b6, 0x12b7, -0x12bf, 0x12bf, -0x12c1, 0x12c1, -0x12c6, 0x12c7, -0x12d7, 0x12d7, -0x1311, 0x1311, -0x1316, 0x1317, -0x135b, 0x135c, -0x137d, 0x137f, -0x139a, 0x139f, -0x13f6, 0x13f7, -0x13fe, 0x13ff, -0x169d, 0x169f, -0x16f9, 0x16ff, -0x170d, 0x170d, -0x1715, 0x171f, -0x1737, 0x173f, -0x1754, 0x175f, -0x176d, 0x176d, -0x1771, 0x1771, -0x1774, 0x177f, -0x17de, 0x17df, -0x17ea, 0x17ef, -0x17fa, 0x17ff, -0x180f, 0x180f, -0x181a, 0x181f, -0x1879, 0x187f, -0x18ab, 0x18af, -0x18f6, 0x18ff, -0x191f, 0x191f, -0x192c, 0x192f, -0x193c, 0x193f, -0x1941, 0x1943, -0x196e, 0x196f, -0x1975, 0x197f, -0x19ac, 0x19af, -0x19ca, 0x19cf, -0x19db, 0x19dd, -0x1a1c, 0x1a1d, -0x1a5f, 0x1a5f, -0x1a7d, 0x1a7e, -0x1a8a, 0x1a8f, -0x1a9a, 0x1a9f, -0x1aae, 0x1aaf, -0x1abf, 0x1aff, -0x1b4c, 0x1b4f, -0x1b7d, 0x1b7f, -0x1bf4, 0x1bfb, -0x1c38, 0x1c3a, -0x1c4a, 0x1c4c, -0x1c89, 0x1c8f, -0x1cbb, 0x1cbc, -0x1cc8, 0x1ccf, -0x1cfb, 0x1cff, -0x1dfa, 0x1dfa, -0x1f16, 0x1f17, -0x1f1e, 0x1f1f, -0x1f46, 0x1f47, -0x1f4e, 0x1f4f, -0x1f58, 0x1f58, -0x1f5a, 0x1f5a, -0x1f5c, 0x1f5c, -0x1f5e, 0x1f5e, -0x1f7e, 0x1f7f, -0x1fb5, 0x1fb5, -0x1fc5, 0x1fc5, -0x1fd4, 0x1fd5, -0x1fdc, 0x1fdc, -0x1ff0, 0x1ff1, -0x1ff5, 0x1ff5, -0x1fff, 0x1fff, -0x2065, 0x2065, -0x2072, 0x2073, -0x208f, 0x208f, -0x209d, 0x209f, -0x20c0, 0x20cf, -0x20f1, 0x20ff, -0x218c, 0x218f, -0x2427, 0x243f, -0x244b, 0x245f, -0x2b74, 0x2b75, -0x2b96, 0x2b97, -0x2c2f, 0x2c2f, -0x2c5f, 0x2c5f, -0x2cf4, 0x2cf8, -0x2d26, 0x2d26, -0x2d28, 0x2d2c, -0x2d2e, 0x2d2f, -0x2d68, 0x2d6e, -0x2d71, 0x2d7e, -0x2d97, 0x2d9f, -0x2da7, 0x2da7, -0x2daf, 0x2daf, -0x2db7, 0x2db7, -0x2dbf, 0x2dbf, -0x2dc7, 0x2dc7, -0x2dcf, 0x2dcf, -0x2dd7, 0x2dd7, -0x2ddf, 0x2ddf, -0x2e50, 0x2e7f, -0x2e9a, 0x2e9a, -0x2ef4, 0x2eff, -0x2fd6, 0x2fef, -0x2ffc, 0x2fff, -0x3040, 0x3040, -0x3097, 0x3098, -0x3100, 0x3104, -0x3130, 0x3130, -0x318f, 0x318f, -0x31bb, 0x31bf, -0x31e4, 0x31ef, -0x321f, 0x321f, -0x4db6, 0x4dbf, -0x9ff0, 0x9fff, -0xa48d, 0xa48f, -0xa4c7, 0xa4cf, -0xa62c, 0xa63f, -0xa6f8, 0xa6ff, -0xa7c0, 0xa7c1, -0xa7c7, 0xa7f6, -0xa82c, 0xa82f, -0xa83a, 0xa83f, -0xa878, 0xa87f, -0xa8c6, 0xa8cd, -0xa8da, 0xa8df, -0xa954, 0xa95e, -0xa97d, 0xa97f, -0xa9ce, 0xa9ce, -0xa9da, 0xa9dd, -0xa9ff, 0xa9ff, -0xaa37, 0xaa3f, -0xaa4e, 0xaa4f, -0xaa5a, 0xaa5b, -0xaac3, 0xaada, -0xaaf7, 0xab00, -0xab07, 0xab08, -0xab0f, 0xab10, -0xab17, 0xab1f, -0xab27, 0xab27, -0xab2f, 0xab2f, -0xab68, 0xab6f, -0xabee, 0xabef, -0xabfa, 0xabff, -0xd7a4, 0xd7af, -0xd7c7, 0xd7ca, -0xd7fc, 0xd7ff, -0xfa6e, 0xfa6f, -0xfada, 0xfaff, -0xfb07, 0xfb12, -0xfb18, 0xfb1c, -0xfb37, 0xfb37, -0xfb3d, 0xfb3d, -0xfb3f, 0xfb3f, -0xfb42, 0xfb42, -0xfb45, 0xfb45, -0xfbc2, 0xfbd2, -0xfd40, 0xfd4f, -0xfd90, 0xfd91, -0xfdc8, 0xfdef, -0xfdfe, 0xfdff, -0xfe1a, 0xfe1f, -0xfe53, 0xfe53, -0xfe67, 0xfe67, -0xfe6c, 0xfe6f, -0xfe75, 0xfe75, -0xfefd, 0xfefe, -0xff00, 0xff00, -0xffbf, 0xffc1, -0xffc8, 0xffc9, -0xffd0, 0xffd1, -0xffd8, 0xffd9, -0xffdd, 0xffdf, -0xffe7, 0xffe7, -0xffef, 0xfff8, -0xfffe, 0xffff, -0x1000c, 0x1000c, -0x10027, 0x10027, -0x1003b, 0x1003b, -0x1003e, 0x1003e, -0x1004e, 0x1004f, -0x1005e, 0x1007f, -0x100fb, 0x100ff, -0x10103, 0x10106, -0x10134, 0x10136, -0x1018f, 0x1018f, -0x1019c, 0x1019f, -0x101a1, 0x101cf, -0x101fe, 0x1027f, -0x1029d, 0x1029f, -0x102d1, 0x102df, -0x102fc, 0x102ff, -0x10324, 0x1032c, -0x1034b, 0x1034f, -0x1037b, 0x1037f, -0x1039e, 0x1039e, -0x103c4, 0x103c7, -0x103d6, 0x103ff, -0x1049e, 0x1049f, -0x104aa, 0x104af, -0x104d4, 0x104d7, -0x104fc, 0x104ff, -0x10528, 0x1052f, -0x10564, 0x1056e, -0x10570, 0x105ff, -0x10737, 0x1073f, -0x10756, 0x1075f, -0x10768, 0x107ff, -0x10806, 0x10807, -0x10809, 0x10809, -0x10836, 0x10836, -0x10839, 0x1083b, -0x1083d, 0x1083e, -0x10856, 0x10856, -0x1089f, 0x108a6, -0x108b0, 0x108df, -0x108f3, 0x108f3, -0x108f6, 0x108fa, -0x1091c, 0x1091e, -0x1093a, 0x1093e, -0x10940, 0x1097f, -0x109b8, 0x109bb, -0x109d0, 0x109d1, -0x10a04, 0x10a04, -0x10a07, 0x10a0b, -0x10a14, 0x10a14, -0x10a18, 0x10a18, -0x10a36, 0x10a37, -0x10a3b, 0x10a3e, -0x10a49, 0x10a4f, -0x10a59, 0x10a5f, -0x10aa0, 0x10abf, -0x10ae7, 0x10aea, -0x10af7, 0x10aff, -0x10b36, 0x10b38, -0x10b56, 0x10b57, -0x10b73, 0x10b77, -0x10b92, 0x10b98, -0x10b9d, 0x10ba8, -0x10bb0, 0x10bff, -0x10c49, 0x10c7f, -0x10cb3, 0x10cbf, -0x10cf3, 0x10cf9, -0x10d28, 0x10d2f, -0x10d3a, 0x10e5f, -0x10e7f, 0x10eff, -0x10f28, 0x10f2f, -0x10f5a, 0x10fdf, -0x10ff7, 0x10fff, -0x1104e, 0x11051, -0x11070, 0x1107e, -0x110c2, 0x110cc, -0x110ce, 0x110cf, -0x110e9, 0x110ef, -0x110fa, 0x110ff, -0x11135, 0x11135, -0x11147, 0x1114f, -0x11177, 0x1117f, -0x111ce, 0x111cf, -0x111e0, 0x111e0, -0x111f5, 0x111ff, -0x11212, 0x11212, -0x1123f, 0x1127f, -0x11287, 0x11287, -0x11289, 0x11289, -0x1128e, 0x1128e, -0x1129e, 0x1129e, -0x112aa, 0x112af, -0x112eb, 0x112ef, -0x112fa, 0x112ff, -0x11304, 0x11304, -0x1130d, 0x1130e, -0x11311, 0x11312, -0x11329, 0x11329, -0x11331, 0x11331, -0x11334, 0x11334, -0x1133a, 0x1133a, -0x11345, 0x11346, -0x11349, 0x1134a, -0x1134e, 0x1134f, -0x11351, 0x11356, -0x11358, 0x1135c, -0x11364, 0x11365, -0x1136d, 0x1136f, -0x11375, 0x113ff, -0x1145a, 0x1145a, -0x1145c, 0x1145c, -0x11460, 0x1147f, -0x114c8, 0x114cf, -0x114da, 0x1157f, -0x115b6, 0x115b7, -0x115de, 0x115ff, -0x11645, 0x1164f, -0x1165a, 0x1165f, -0x1166d, 0x1167f, -0x116b9, 0x116bf, -0x116ca, 0x116ff, -0x1171b, 0x1171c, -0x1172c, 0x1172f, -0x11740, 0x117ff, -0x1183c, 0x1189f, -0x118f3, 0x118fe, -0x11900, 0x1199f, -0x119a8, 0x119a9, -0x119d8, 0x119d9, -0x119e5, 0x119ff, -0x11a48, 0x11a4f, -0x11aa3, 0x11abf, -0x11af9, 0x11bff, -0x11c09, 0x11c09, -0x11c37, 0x11c37, -0x11c46, 0x11c4f, -0x11c6d, 0x11c6f, -0x11c90, 0x11c91, -0x11ca8, 0x11ca8, -0x11cb7, 0x11cff, -0x11d07, 0x11d07, -0x11d0a, 0x11d0a, -0x11d37, 0x11d39, -0x11d3b, 0x11d3b, -0x11d3e, 0x11d3e, -0x11d48, 0x11d4f, -0x11d5a, 0x11d5f, -0x11d66, 0x11d66, -0x11d69, 0x11d69, -0x11d8f, 0x11d8f, -0x11d92, 0x11d92, -0x11d99, 0x11d9f, -0x11daa, 0x11edf, -0x11ef9, 0x11fbf, -0x11ff2, 0x11ffe, -0x1239a, 0x123ff, -0x1246f, 0x1246f, -0x12475, 0x1247f, -0x12544, 0x12fff, -0x1342f, 0x1342f, -0x13439, 0x143ff, -0x14647, 0x167ff, -0x16a39, 0x16a3f, -0x16a5f, 0x16a5f, -0x16a6a, 0x16a6d, -0x16a70, 0x16acf, -0x16aee, 0x16aef, -0x16af6, 0x16aff, -0x16b46, 0x16b4f, -0x16b5a, 0x16b5a, -0x16b62, 0x16b62, -0x16b78, 0x16b7c, -0x16b90, 0x16e3f, -0x16e9b, 0x16eff, -0x16f4b, 0x16f4e, -0x16f88, 0x16f8e, -0x16fa0, 0x16fdf, -0x16fe4, 0x16fff, -0x187f8, 0x187ff, -0x18af3, 0x1afff, -0x1b11f, 0x1b14f, -0x1b153, 0x1b163, -0x1b168, 0x1b16f, -0x1b2fc, 0x1bbff, -0x1bc6b, 0x1bc6f, -0x1bc7d, 0x1bc7f, -0x1bc89, 0x1bc8f, -0x1bc9a, 0x1bc9b, -0x1bca4, 0x1cfff, -0x1d0f6, 0x1d0ff, -0x1d127, 0x1d128, -0x1d1e9, 0x1d1ff, -0x1d246, 0x1d2df, -0x1d2f4, 0x1d2ff, -0x1d357, 0x1d35f, -0x1d379, 0x1d3ff, -0x1d455, 0x1d455, -0x1d49d, 0x1d49d, -0x1d4a0, 0x1d4a1, -0x1d4a3, 0x1d4a4, -0x1d4a7, 0x1d4a8, -0x1d4ad, 0x1d4ad, -0x1d4ba, 0x1d4ba, -0x1d4bc, 0x1d4bc, -0x1d4c4, 0x1d4c4, -0x1d506, 0x1d506, -0x1d50b, 0x1d50c, -0x1d515, 0x1d515, -0x1d51d, 0x1d51d, -0x1d53a, 0x1d53a, -0x1d53f, 0x1d53f, -0x1d545, 0x1d545, -0x1d547, 0x1d549, -0x1d551, 0x1d551, -0x1d6a6, 0x1d6a7, -0x1d7cc, 0x1d7cd, -0x1da8c, 0x1da9a, -0x1daa0, 0x1daa0, -0x1dab0, 0x1dfff, -0x1e007, 0x1e007, -0x1e019, 0x1e01a, -0x1e022, 0x1e022, -0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, -0x1e12d, 0x1e12f, -0x1e13e, 0x1e13f, -0x1e14a, 0x1e14d, -0x1e150, 0x1e2bf, -0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7ff, -0x1e8c5, 0x1e8c6, -0x1e8d7, 0x1e8ff, -0x1e94c, 0x1e94f, -0x1e95a, 0x1e95d, -0x1e960, 0x1ec70, -0x1ecb5, 0x1ed00, -0x1ed3e, 0x1edff, -0x1ee04, 0x1ee04, -0x1ee20, 0x1ee20, -0x1ee23, 0x1ee23, -0x1ee25, 0x1ee26, -0x1ee28, 0x1ee28, -0x1ee33, 0x1ee33, -0x1ee38, 0x1ee38, -0x1ee3a, 0x1ee3a, -0x1ee3c, 0x1ee41, -0x1ee43, 0x1ee46, -0x1ee48, 0x1ee48, -0x1ee4a, 0x1ee4a, -0x1ee4c, 0x1ee4c, -0x1ee50, 0x1ee50, -0x1ee53, 0x1ee53, -0x1ee55, 0x1ee56, -0x1ee58, 0x1ee58, -0x1ee5a, 0x1ee5a, -0x1ee5c, 0x1ee5c, -0x1ee5e, 0x1ee5e, -0x1ee60, 0x1ee60, -0x1ee63, 0x1ee63, -0x1ee65, 0x1ee66, -0x1ee6b, 0x1ee6b, -0x1ee73, 0x1ee73, -0x1ee78, 0x1ee78, -0x1ee7d, 0x1ee7d, -0x1ee7f, 0x1ee7f, -0x1ee8a, 0x1ee8a, -0x1ee9c, 0x1eea0, -0x1eea4, 0x1eea4, -0x1eeaa, 0x1eeaa, -0x1eebc, 0x1eeef, -0x1eef2, 0x1efff, -0x1f02c, 0x1f02f, -0x1f094, 0x1f09f, -0x1f0af, 0x1f0b0, -0x1f0c0, 0x1f0c0, -0x1f0d0, 0x1f0d0, -0x1f0f6, 0x1f0ff, -0x1f10d, 0x1f10f, -0x1f16d, 0x1f16f, -0x1f1ad, 0x1f1e5, -0x1f203, 0x1f20f, -0x1f23c, 0x1f23f, -0x1f249, 0x1f24f, -0x1f252, 0x1f25f, -0x1f266, 0x1f2ff, -0x1f6d6, 0x1f6df, -0x1f6ed, 0x1f6ef, -0x1f6fb, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, -0x1f7ec, 0x1f7ff, -0x1f80c, 0x1f80f, -0x1f848, 0x1f84f, -0x1f85a, 0x1f85f, -0x1f888, 0x1f88f, -0x1f8ae, 0x1f8ff, -0x1f90c, 0x1f90c, -0x1f972, 0x1f972, -0x1f977, 0x1f979, -0x1f9a3, 0x1f9a4, -0x1f9ab, 0x1f9ad, -0x1f9cb, 0x1f9cc, -0x1fa54, 0x1fa5f, -0x1fa6e, 0x1fa6f, -0x1fa74, 0x1fa77, -0x1fa7b, 0x1fa7f, -0x1fa83, 0x1fa8f, -0x1fa96, 0x1ffff, -0x2a6d7, 0x2a6ff, -0x2b735, 0x2b73f, -0x2b81e, 0x2b81f, -0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, -0x2fa1e, 0xe0000, -0xe0002, 0xe001f, -0xe0080, 0xe00ff, -0xe01f0, 0xeffff, -0xffffe, 0xfffff, -0x10fffe, 0x10ffff, -}; /* END of CR_Cn */ - -/* PROPERTY: 'Co': General Category */ -static const OnigCodePoint -CR_Co[] = { 3, -0xe000, 0xf8ff, -0xf0000, 0xffffd, -0x100000, 0x10fffd, -}; /* END of CR_Co */ - -/* PROPERTY: 'Common': Script */ -static const OnigCodePoint -CR_Common[] = { 172, -0x0000, 0x0040, -0x005b, 0x0060, -0x007b, 0x00a9, -0x00ab, 0x00b9, -0x00bb, 0x00bf, -0x00d7, 0x00d7, -0x00f7, 0x00f7, -0x02b9, 0x02df, -0x02e5, 0x02e9, -0x02ec, 0x02ff, -0x0374, 0x0374, -0x037e, 0x037e, -0x0385, 0x0385, -0x0387, 0x0387, -0x0589, 0x0589, -0x0605, 0x0605, -0x060c, 0x060c, -0x061b, 0x061b, -0x061f, 0x061f, -0x0640, 0x0640, -0x06dd, 0x06dd, -0x08e2, 0x08e2, -0x0964, 0x0965, -0x0e3f, 0x0e3f, -0x0fd5, 0x0fd8, -0x10fb, 0x10fb, -0x16eb, 0x16ed, -0x1735, 0x1736, -0x1802, 0x1803, -0x1805, 0x1805, -0x1cd3, 0x1cd3, -0x1ce1, 0x1ce1, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf7, -0x1cfa, 0x1cfa, -0x2000, 0x200b, -0x200e, 0x2064, -0x2066, 0x2070, -0x2074, 0x207e, -0x2080, 0x208e, -0x20a0, 0x20bf, -0x2100, 0x2125, -0x2127, 0x2129, -0x212c, 0x2131, -0x2133, 0x214d, -0x214f, 0x215f, -0x2189, 0x218b, -0x2190, 0x2426, -0x2440, 0x244a, -0x2460, 0x27ff, -0x2900, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2bff, -0x2e00, 0x2e4f, -0x2ff0, 0x2ffb, -0x3000, 0x3004, -0x3006, 0x3006, -0x3008, 0x3020, -0x3030, 0x3037, -0x303c, 0x303f, -0x309b, 0x309c, -0x30a0, 0x30a0, -0x30fb, 0x30fc, -0x3190, 0x319f, -0x31c0, 0x31e3, -0x3220, 0x325f, -0x327f, 0x32cf, -0x32ff, 0x32ff, -0x3358, 0x33ff, -0x4dc0, 0x4dff, -0xa700, 0xa721, -0xa788, 0xa78a, -0xa830, 0xa839, -0xa92e, 0xa92e, -0xa9cf, 0xa9cf, -0xab5b, 0xab5b, -0xfd3e, 0xfd3f, -0xfe10, 0xfe19, -0xfe30, 0xfe52, -0xfe54, 0xfe66, -0xfe68, 0xfe6b, -0xfeff, 0xfeff, -0xff01, 0xff20, -0xff3b, 0xff40, -0xff5b, 0xff65, -0xff70, 0xff70, -0xff9e, 0xff9f, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfff9, 0xfffd, -0x10100, 0x10102, -0x10107, 0x10133, -0x10137, 0x1013f, -0x10190, 0x1019b, -0x101d0, 0x101fc, -0x102e1, 0x102fb, -0x16fe2, 0x16fe3, -0x1bca0, 0x1bca3, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d166, -0x1d16a, 0x1d17a, -0x1d183, 0x1d184, -0x1d18c, 0x1d1a9, -0x1d1ae, 0x1d1e8, -0x1d2e0, 0x1d2f3, -0x1d300, 0x1d356, -0x1d360, 0x1d378, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1ec71, 0x1ecb4, -0x1ed01, 0x1ed3d, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f100, 0x1f10c, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f1ff, -0x1f201, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -}; /* END of CR_Common */ - -/* PROPERTY: 'Coptic': Script */ -static const OnigCodePoint -CR_Coptic[] = { 3, -0x03e2, 0x03ef, -0x2c80, 0x2cf3, -0x2cf9, 0x2cff, -}; /* END of CR_Coptic */ - -/* PROPERTY: 'Cs': General Category */ -static const OnigCodePoint -CR_Cs[] = { 1, -0xd800, 0xdfff, -}; /* END of CR_Cs */ - -/* PROPERTY: 'Cuneiform': Script */ -static const OnigCodePoint -CR_Cuneiform[] = { 4, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12470, 0x12474, -0x12480, 0x12543, -}; /* END of CR_Cuneiform */ - -/* PROPERTY: 'Cypriot': Script */ -static const OnigCodePoint -CR_Cypriot[] = { 6, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x1083f, -}; /* END of CR_Cypriot */ - -/* PROPERTY: 'Cyrillic': Script */ -static const OnigCodePoint -CR_Cyrillic[] = { 8, -0x0400, 0x0484, -0x0487, 0x052f, -0x1c80, 0x1c88, -0x1d2b, 0x1d2b, -0x1d78, 0x1d78, -0x2de0, 0x2dff, -0xa640, 0xa69f, -0xfe2e, 0xfe2f, -}; /* END of CR_Cyrillic */ - -/* PROPERTY: 'Dash': Binary Property */ -static const OnigCodePoint -CR_Dash[] = { 21, -0x002d, 0x002d, -0x058a, 0x058a, -0x05be, 0x05be, -0x1400, 0x1400, -0x1806, 0x1806, -0x2010, 0x2015, -0x2053, 0x2053, -0x207b, 0x207b, -0x208b, 0x208b, -0x2212, 0x2212, -0x2e17, 0x2e17, -0x2e1a, 0x2e1a, -0x2e3a, 0x2e3b, -0x2e40, 0x2e40, -0x301c, 0x301c, -0x3030, 0x3030, -0x30a0, 0x30a0, -0xfe31, 0xfe32, -0xfe58, 0xfe58, -0xfe63, 0xfe63, -0xff0d, 0xff0d, -}; /* END of CR_Dash */ - -/* PROPERTY: 'Default_Ignorable_Code_Point': Derived Property */ -static const OnigCodePoint -CR_Default_Ignorable_Code_Point[] = { 17, -0x00ad, 0x00ad, -0x034f, 0x034f, -0x061c, 0x061c, -0x115f, 0x1160, -0x17b4, 0x17b5, -0x180b, 0x180e, -0x200b, 0x200f, -0x202a, 0x202e, -0x2060, 0x206f, -0x3164, 0x3164, -0xfe00, 0xfe0f, -0xfeff, 0xfeff, -0xffa0, 0xffa0, -0xfff0, 0xfff8, -0x1bca0, 0x1bca3, -0x1d173, 0x1d17a, -0xe0000, 0xe0fff, -}; /* END of CR_Default_Ignorable_Code_Point */ - -/* PROPERTY: 'Deprecated': Binary Property */ -static const OnigCodePoint -CR_Deprecated[] = { 8, -0x0149, 0x0149, -0x0673, 0x0673, -0x0f77, 0x0f77, -0x0f79, 0x0f79, -0x17a3, 0x17a4, -0x206a, 0x206f, -0x2329, 0x232a, -0xe0001, 0xe0001, -}; /* END of CR_Deprecated */ - -/* PROPERTY: 'Deseret': Script */ -static const OnigCodePoint -CR_Deseret[] = { 1, -0x10400, 0x1044f, -}; /* END of CR_Deseret */ - -/* PROPERTY: 'Devanagari': Script */ -static const OnigCodePoint -CR_Devanagari[] = { 4, -0x0900, 0x0950, -0x0955, 0x0963, -0x0966, 0x097f, -0xa8e0, 0xa8ff, -}; /* END of CR_Devanagari */ - -/* PROPERTY: 'Diacritic': Binary Property */ -static const OnigCodePoint -CR_Diacritic[] = { 171, -0x005e, 0x005e, -0x0060, 0x0060, -0x00a8, 0x00a8, -0x00af, 0x00af, -0x00b4, 0x00b4, -0x00b7, 0x00b8, -0x02b0, 0x034e, -0x0350, 0x0357, -0x035d, 0x0362, -0x0374, 0x0375, -0x037a, 0x037a, -0x0384, 0x0385, -0x0483, 0x0487, -0x0559, 0x0559, -0x0591, 0x05a1, -0x05a3, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c4, -0x064b, 0x0652, -0x0657, 0x0658, -0x06df, 0x06e0, -0x06e5, 0x06e6, -0x06ea, 0x06ec, -0x0730, 0x074a, -0x07a6, 0x07b0, -0x07eb, 0x07f5, -0x0818, 0x0819, -0x08e3, 0x08fe, -0x093c, 0x093c, -0x094d, 0x094d, -0x0951, 0x0954, -0x0971, 0x0971, -0x09bc, 0x09bc, -0x09cd, 0x09cd, -0x0a3c, 0x0a3c, -0x0a4d, 0x0a4d, -0x0abc, 0x0abc, -0x0acd, 0x0acd, -0x0afd, 0x0aff, -0x0b3c, 0x0b3c, -0x0b4d, 0x0b4d, -0x0bcd, 0x0bcd, -0x0c4d, 0x0c4d, -0x0cbc, 0x0cbc, -0x0ccd, 0x0ccd, -0x0d3b, 0x0d3c, -0x0d4d, 0x0d4d, -0x0dca, 0x0dca, -0x0e47, 0x0e4c, -0x0e4e, 0x0e4e, -0x0eba, 0x0eba, -0x0ec8, 0x0ecc, -0x0f18, 0x0f19, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f3e, 0x0f3f, -0x0f82, 0x0f84, -0x0f86, 0x0f87, -0x0fc6, 0x0fc6, -0x1037, 0x1037, -0x1039, 0x103a, -0x1063, 0x1064, -0x1069, 0x106d, -0x1087, 0x108d, -0x108f, 0x108f, -0x109a, 0x109b, -0x135d, 0x135f, -0x17c9, 0x17d3, -0x17dd, 0x17dd, -0x1939, 0x193b, -0x1a75, 0x1a7c, -0x1a7f, 0x1a7f, -0x1ab0, 0x1abd, -0x1b34, 0x1b34, -0x1b44, 0x1b44, -0x1b6b, 0x1b73, -0x1baa, 0x1bab, -0x1c36, 0x1c37, -0x1c78, 0x1c7d, -0x1cd0, 0x1ce8, -0x1ced, 0x1ced, -0x1cf4, 0x1cf4, -0x1cf7, 0x1cf9, -0x1d2c, 0x1d6a, -0x1dc4, 0x1dcf, -0x1df5, 0x1df9, -0x1dfd, 0x1dff, -0x1fbd, 0x1fbd, -0x1fbf, 0x1fc1, -0x1fcd, 0x1fcf, -0x1fdd, 0x1fdf, -0x1fed, 0x1fef, -0x1ffd, 0x1ffe, -0x2cef, 0x2cf1, -0x2e2f, 0x2e2f, -0x302a, 0x302f, -0x3099, 0x309c, -0x30fc, 0x30fc, -0xa66f, 0xa66f, -0xa67c, 0xa67d, -0xa67f, 0xa67f, -0xa69c, 0xa69d, -0xa6f0, 0xa6f1, -0xa700, 0xa721, -0xa788, 0xa78a, -0xa7f8, 0xa7f9, -0xa8c4, 0xa8c4, -0xa8e0, 0xa8f1, -0xa92b, 0xa92e, -0xa953, 0xa953, -0xa9b3, 0xa9b3, -0xa9c0, 0xa9c0, -0xa9e5, 0xa9e5, -0xaa7b, 0xaa7d, -0xaabf, 0xaac2, -0xaaf6, 0xaaf6, -0xab5b, 0xab5f, -0xabec, 0xabed, -0xfb1e, 0xfb1e, -0xfe20, 0xfe2f, -0xff3e, 0xff3e, -0xff40, 0xff40, -0xff70, 0xff70, -0xff9e, 0xff9f, -0xffe3, 0xffe3, -0x102e0, 0x102e0, -0x10ae5, 0x10ae6, -0x10d22, 0x10d27, -0x10f46, 0x10f50, -0x110b9, 0x110ba, -0x11133, 0x11134, -0x11173, 0x11173, -0x111c0, 0x111c0, -0x111ca, 0x111cc, -0x11235, 0x11236, -0x112e9, 0x112ea, -0x1133c, 0x1133c, -0x1134d, 0x1134d, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11442, 0x11442, -0x11446, 0x11446, -0x114c2, 0x114c3, -0x115bf, 0x115c0, -0x1163f, 0x1163f, -0x116b6, 0x116b7, -0x1172b, 0x1172b, -0x11839, 0x1183a, -0x119e0, 0x119e0, -0x11a34, 0x11a34, -0x11a47, 0x11a47, -0x11a99, 0x11a99, -0x11c3f, 0x11c3f, -0x11d42, 0x11d42, -0x11d44, 0x11d45, -0x11d97, 0x11d97, -0x16af0, 0x16af4, -0x16b30, 0x16b36, -0x16f8f, 0x16f9f, -0x1d167, 0x1d169, -0x1d16d, 0x1d172, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1e130, 0x1e136, -0x1e2ec, 0x1e2ef, -0x1e8d0, 0x1e8d6, -0x1e944, 0x1e946, -0x1e948, 0x1e94a, -}; /* END of CR_Diacritic */ - -/* PROPERTY: 'Dogra': Script */ -static const OnigCodePoint -CR_Dogra[] = { 1, -0x11800, 0x1183b, -}; /* END of CR_Dogra */ - -/* PROPERTY: 'Duployan': Script */ -static const OnigCodePoint -CR_Duployan[] = { 5, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9c, 0x1bc9f, -}; /* END of CR_Duployan */ - -/* PROPERTY: 'Egyptian_Hieroglyphs': Script */ -static const OnigCodePoint -CR_Egyptian_Hieroglyphs[] = { 2, -0x13000, 0x1342e, -0x13430, 0x13438, -}; /* END of CR_Egyptian_Hieroglyphs */ - -/* PROPERTY: 'Elbasan': Script */ -static const OnigCodePoint -CR_Elbasan[] = { 1, -0x10500, 0x10527, -}; /* END of CR_Elbasan */ - -/* PROPERTY: 'Elymaic': Script */ -static const OnigCodePoint -CR_Elymaic[] = { 1, -0x10fe0, 0x10ff6, -}; /* END of CR_Elymaic */ - -/* PROPERTY: 'Emoji': Emoji Property */ -static const OnigCodePoint -CR_Emoji[] = { 151, -0x0023, 0x0023, -0x002a, 0x002a, -0x0030, 0x0039, -0x00a9, 0x00a9, -0x00ae, 0x00ae, -0x203c, 0x203c, -0x2049, 0x2049, -0x2122, 0x2122, -0x2139, 0x2139, -0x2194, 0x2199, -0x21a9, 0x21aa, -0x231a, 0x231b, -0x2328, 0x2328, -0x23cf, 0x23cf, -0x23e9, 0x23f3, -0x23f8, 0x23fa, -0x24c2, 0x24c2, -0x25aa, 0x25ab, -0x25b6, 0x25b6, -0x25c0, 0x25c0, -0x25fb, 0x25fe, -0x2600, 0x2604, -0x260e, 0x260e, -0x2611, 0x2611, -0x2614, 0x2615, -0x2618, 0x2618, -0x261d, 0x261d, -0x2620, 0x2620, -0x2622, 0x2623, -0x2626, 0x2626, -0x262a, 0x262a, -0x262e, 0x262f, -0x2638, 0x263a, -0x2640, 0x2640, -0x2642, 0x2642, -0x2648, 0x2653, -0x265f, 0x2660, -0x2663, 0x2663, -0x2665, 0x2666, -0x2668, 0x2668, -0x267b, 0x267b, -0x267e, 0x267f, -0x2692, 0x2697, -0x2699, 0x2699, -0x269b, 0x269c, -0x26a0, 0x26a1, -0x26aa, 0x26ab, -0x26b0, 0x26b1, -0x26bd, 0x26be, -0x26c4, 0x26c5, -0x26c8, 0x26c8, -0x26ce, 0x26cf, -0x26d1, 0x26d1, -0x26d3, 0x26d4, -0x26e9, 0x26ea, -0x26f0, 0x26f5, -0x26f7, 0x26fa, -0x26fd, 0x26fd, -0x2702, 0x2702, -0x2705, 0x2705, -0x2708, 0x270d, -0x270f, 0x270f, -0x2712, 0x2712, -0x2714, 0x2714, -0x2716, 0x2716, -0x271d, 0x271d, -0x2721, 0x2721, -0x2728, 0x2728, -0x2733, 0x2734, -0x2744, 0x2744, -0x2747, 0x2747, -0x274c, 0x274c, -0x274e, 0x274e, -0x2753, 0x2755, -0x2757, 0x2757, -0x2763, 0x2764, -0x2795, 0x2797, -0x27a1, 0x27a1, -0x27b0, 0x27b0, -0x27bf, 0x27bf, -0x2934, 0x2935, -0x2b05, 0x2b07, -0x2b1b, 0x2b1c, -0x2b50, 0x2b50, -0x2b55, 0x2b55, -0x3030, 0x3030, -0x303d, 0x303d, -0x3297, 0x3297, -0x3299, 0x3299, -0x1f004, 0x1f004, -0x1f0cf, 0x1f0cf, -0x1f170, 0x1f171, -0x1f17e, 0x1f17f, -0x1f18e, 0x1f18e, -0x1f191, 0x1f19a, -0x1f1e6, 0x1f1ff, -0x1f201, 0x1f202, -0x1f21a, 0x1f21a, -0x1f22f, 0x1f22f, -0x1f232, 0x1f23a, -0x1f250, 0x1f251, -0x1f300, 0x1f321, -0x1f324, 0x1f393, -0x1f396, 0x1f397, -0x1f399, 0x1f39b, -0x1f39e, 0x1f3f0, -0x1f3f3, 0x1f3f5, -0x1f3f7, 0x1f4fd, -0x1f4ff, 0x1f53d, -0x1f549, 0x1f54e, -0x1f550, 0x1f567, -0x1f56f, 0x1f570, -0x1f573, 0x1f57a, -0x1f587, 0x1f587, -0x1f58a, 0x1f58d, -0x1f590, 0x1f590, -0x1f595, 0x1f596, -0x1f5a4, 0x1f5a5, -0x1f5a8, 0x1f5a8, -0x1f5b1, 0x1f5b2, -0x1f5bc, 0x1f5bc, -0x1f5c2, 0x1f5c4, -0x1f5d1, 0x1f5d3, -0x1f5dc, 0x1f5de, -0x1f5e1, 0x1f5e1, -0x1f5e3, 0x1f5e3, -0x1f5e8, 0x1f5e8, -0x1f5ef, 0x1f5ef, -0x1f5f3, 0x1f5f3, -0x1f5fa, 0x1f64f, -0x1f680, 0x1f6c5, -0x1f6cb, 0x1f6d2, -0x1f6d5, 0x1f6d5, -0x1f6e0, 0x1f6e5, -0x1f6e9, 0x1f6e9, -0x1f6eb, 0x1f6ec, -0x1f6f0, 0x1f6f0, -0x1f6f3, 0x1f6fa, -0x1f7e0, 0x1f7eb, -0x1f90d, 0x1f93a, -0x1f93c, 0x1f945, -0x1f947, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1f9ff, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -}; /* END of CR_Emoji */ - -/* PROPERTY: 'Emoji_Component': Emoji Property */ -static const OnigCodePoint -CR_Emoji_Component[] = { 10, -0x0023, 0x0023, -0x002a, 0x002a, -0x0030, 0x0039, -0x200d, 0x200d, -0x20e3, 0x20e3, -0xfe0f, 0xfe0f, -0x1f1e6, 0x1f1ff, -0x1f3fb, 0x1f3ff, -0x1f9b0, 0x1f9b3, -0xe0020, 0xe007f, -}; /* END of CR_Emoji_Component */ - -/* PROPERTY: 'Emoji_Modifier': Emoji Property */ -static const OnigCodePoint -CR_Emoji_Modifier[] = { 1, -0x1f3fb, 0x1f3ff, -}; /* END of CR_Emoji_Modifier */ - -/* PROPERTY: 'Emoji_Modifier_Base': Emoji Property */ -static const OnigCodePoint -CR_Emoji_Modifier_Base[] = { 36, -0x261d, 0x261d, -0x26f9, 0x26f9, -0x270a, 0x270d, -0x1f385, 0x1f385, -0x1f3c2, 0x1f3c4, -0x1f3c7, 0x1f3c7, -0x1f3ca, 0x1f3cc, -0x1f442, 0x1f443, -0x1f446, 0x1f450, -0x1f466, 0x1f478, -0x1f47c, 0x1f47c, -0x1f481, 0x1f483, -0x1f485, 0x1f487, -0x1f48f, 0x1f48f, -0x1f491, 0x1f491, -0x1f4aa, 0x1f4aa, -0x1f574, 0x1f575, -0x1f57a, 0x1f57a, -0x1f590, 0x1f590, -0x1f595, 0x1f596, -0x1f645, 0x1f647, -0x1f64b, 0x1f64f, -0x1f6a3, 0x1f6a3, -0x1f6b4, 0x1f6b6, -0x1f6c0, 0x1f6c0, -0x1f6cc, 0x1f6cc, -0x1f90f, 0x1f90f, -0x1f918, 0x1f91f, -0x1f926, 0x1f926, -0x1f930, 0x1f939, -0x1f93c, 0x1f93e, -0x1f9b5, 0x1f9b6, -0x1f9b8, 0x1f9b9, -0x1f9bb, 0x1f9bb, -0x1f9cd, 0x1f9cf, -0x1f9d1, 0x1f9dd, -}; /* END of CR_Emoji_Modifier_Base */ - -/* PROPERTY: 'Emoji_Presentation': Emoji Property */ -static const OnigCodePoint -CR_Emoji_Presentation[] = { 81, -0x231a, 0x231b, -0x23e9, 0x23ec, -0x23f0, 0x23f0, -0x23f3, 0x23f3, -0x25fd, 0x25fe, -0x2614, 0x2615, -0x2648, 0x2653, -0x267f, 0x267f, -0x2693, 0x2693, -0x26a1, 0x26a1, -0x26aa, 0x26ab, -0x26bd, 0x26be, -0x26c4, 0x26c5, -0x26ce, 0x26ce, -0x26d4, 0x26d4, -0x26ea, 0x26ea, -0x26f2, 0x26f3, -0x26f5, 0x26f5, -0x26fa, 0x26fa, -0x26fd, 0x26fd, -0x2705, 0x2705, -0x270a, 0x270b, -0x2728, 0x2728, -0x274c, 0x274c, -0x274e, 0x274e, -0x2753, 0x2755, -0x2757, 0x2757, -0x2795, 0x2797, -0x27b0, 0x27b0, -0x27bf, 0x27bf, -0x2b1b, 0x2b1c, -0x2b50, 0x2b50, -0x2b55, 0x2b55, -0x1f004, 0x1f004, -0x1f0cf, 0x1f0cf, -0x1f18e, 0x1f18e, -0x1f191, 0x1f19a, -0x1f1e6, 0x1f1ff, -0x1f201, 0x1f201, -0x1f21a, 0x1f21a, -0x1f22f, 0x1f22f, -0x1f232, 0x1f236, -0x1f238, 0x1f23a, -0x1f250, 0x1f251, -0x1f300, 0x1f320, -0x1f32d, 0x1f335, -0x1f337, 0x1f37c, -0x1f37e, 0x1f393, -0x1f3a0, 0x1f3ca, -0x1f3cf, 0x1f3d3, -0x1f3e0, 0x1f3f0, -0x1f3f4, 0x1f3f4, -0x1f3f8, 0x1f43e, -0x1f440, 0x1f440, -0x1f442, 0x1f4fc, -0x1f4ff, 0x1f53d, -0x1f54b, 0x1f54e, -0x1f550, 0x1f567, -0x1f57a, 0x1f57a, -0x1f595, 0x1f596, -0x1f5a4, 0x1f5a4, -0x1f5fb, 0x1f64f, -0x1f680, 0x1f6c5, -0x1f6cc, 0x1f6cc, -0x1f6d0, 0x1f6d2, -0x1f6d5, 0x1f6d5, -0x1f6eb, 0x1f6ec, -0x1f6f4, 0x1f6fa, -0x1f7e0, 0x1f7eb, -0x1f90d, 0x1f93a, -0x1f93c, 0x1f945, -0x1f947, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1f9ff, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -}; /* END of CR_Emoji_Presentation */ - -/* PROPERTY: 'Ethiopic': Script */ -static const OnigCodePoint -CR_Ethiopic[] = { 32, -0x1200, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x137c, -0x1380, 0x1399, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -}; /* END of CR_Ethiopic */ - -/* PROPERTY: 'Extended_Pictographic': Emoji Property */ -static const OnigCodePoint -CR_Extended_Pictographic[] = { 77, -0x00a9, 0x00a9, -0x00ae, 0x00ae, -0x203c, 0x203c, -0x2049, 0x2049, -0x2122, 0x2122, -0x2139, 0x2139, -0x2194, 0x2199, -0x21a9, 0x21aa, -0x231a, 0x231b, -0x2328, 0x2328, -0x2388, 0x2388, -0x23cf, 0x23cf, -0x23e9, 0x23f3, -0x23f8, 0x23fa, -0x24c2, 0x24c2, -0x25aa, 0x25ab, -0x25b6, 0x25b6, -0x25c0, 0x25c0, -0x25fb, 0x25fe, -0x2600, 0x2605, -0x2607, 0x2612, -0x2614, 0x2685, -0x2690, 0x2705, -0x2708, 0x2712, -0x2714, 0x2714, -0x2716, 0x2716, -0x271d, 0x271d, -0x2721, 0x2721, -0x2728, 0x2728, -0x2733, 0x2734, -0x2744, 0x2744, -0x2747, 0x2747, -0x274c, 0x274c, -0x274e, 0x274e, -0x2753, 0x2755, -0x2757, 0x2757, -0x2763, 0x2767, -0x2795, 0x2797, -0x27a1, 0x27a1, -0x27b0, 0x27b0, -0x27bf, 0x27bf, -0x2934, 0x2935, -0x2b05, 0x2b07, -0x2b1b, 0x2b1c, -0x2b50, 0x2b50, -0x2b55, 0x2b55, -0x3030, 0x3030, -0x303d, 0x303d, -0x3297, 0x3297, -0x3299, 0x3299, -0x1f000, 0x1f0ff, -0x1f10d, 0x1f10f, -0x1f12f, 0x1f12f, -0x1f16c, 0x1f171, -0x1f17e, 0x1f17f, -0x1f18e, 0x1f18e, -0x1f191, 0x1f19a, -0x1f1ad, 0x1f1e5, -0x1f201, 0x1f20f, -0x1f21a, 0x1f21a, -0x1f22f, 0x1f22f, -0x1f232, 0x1f23a, -0x1f23c, 0x1f23f, -0x1f249, 0x1f3fa, -0x1f400, 0x1f53d, -0x1f546, 0x1f64f, -0x1f680, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d5, 0x1f7ff, -0x1f80c, 0x1f80f, -0x1f848, 0x1f84f, -0x1f85a, 0x1f85f, -0x1f888, 0x1f88f, -0x1f8ae, 0x1f8ff, -0x1f90c, 0x1f93a, -0x1f93c, 0x1f945, -0x1f947, 0x1fffd, -}; /* END of CR_Extended_Pictographic */ - -/* PROPERTY: 'Extender': Binary Property */ -static const OnigCodePoint -CR_Extender[] = { 31, -0x00b7, 0x00b7, -0x02d0, 0x02d1, -0x0640, 0x0640, -0x07fa, 0x07fa, -0x0e46, 0x0e46, -0x0ec6, 0x0ec6, -0x180a, 0x180a, -0x1843, 0x1843, -0x1aa7, 0x1aa7, -0x1c36, 0x1c36, -0x1c7b, 0x1c7b, -0x3005, 0x3005, -0x3031, 0x3035, -0x309d, 0x309e, -0x30fc, 0x30fe, -0xa015, 0xa015, -0xa60c, 0xa60c, -0xa9cf, 0xa9cf, -0xa9e6, 0xa9e6, -0xaa70, 0xaa70, -0xaadd, 0xaadd, -0xaaf3, 0xaaf4, -0xff70, 0xff70, -0x1135d, 0x1135d, -0x115c6, 0x115c8, -0x11a98, 0x11a98, -0x16b42, 0x16b43, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x1e13c, 0x1e13d, -0x1e944, 0x1e946, -}; /* END of CR_Extender */ - -/* PROPERTY: 'Georgian': Script */ -static const OnigCodePoint -CR_Georgian[] = { 10, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x10ff, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -}; /* END of CR_Georgian */ - -/* PROPERTY: 'Glagolitic': Script */ -static const OnigCodePoint -CR_Glagolitic[] = { 7, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -}; /* END of CR_Glagolitic */ - -/* PROPERTY: 'Gothic': Script */ -static const OnigCodePoint -CR_Gothic[] = { 1, -0x10330, 0x1034a, -}; /* END of CR_Gothic */ - -/* PROPERTY: 'Grantha': Script */ -static const OnigCodePoint -CR_Grantha[] = { 15, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133c, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -}; /* END of CR_Grantha */ - -/* PROPERTY: 'Grapheme_Base': Derived Property */ -static const OnigCodePoint -CR_Grapheme_Base[] = { 819, -0x0020, 0x007e, -0x00a0, 0x00ac, -0x00ae, 0x02ff, -0x0370, 0x0377, -0x037a, 0x037f, -0x0384, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x0482, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x058a, -0x058d, 0x058f, -0x05be, 0x05be, -0x05c0, 0x05c0, -0x05c3, 0x05c3, -0x05c6, 0x05c6, -0x05d0, 0x05ea, -0x05ef, 0x05f4, -0x0606, 0x060f, -0x061b, 0x061b, -0x061e, 0x064a, -0x0660, 0x066f, -0x0671, 0x06d5, -0x06de, 0x06de, -0x06e5, 0x06e6, -0x06e9, 0x06e9, -0x06ee, 0x070d, -0x0710, 0x0710, -0x0712, 0x072f, -0x074d, 0x07a5, -0x07b1, 0x07b1, -0x07c0, 0x07ea, -0x07f4, 0x07fa, -0x07fe, 0x0815, -0x081a, 0x081a, -0x0824, 0x0824, -0x0828, 0x0828, -0x0830, 0x083e, -0x0840, 0x0858, -0x085e, 0x085e, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x0903, 0x0939, -0x093b, 0x093b, -0x093d, 0x0940, -0x0949, 0x094c, -0x094e, 0x0950, -0x0958, 0x0961, -0x0964, 0x0980, -0x0982, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09bd, -0x09bf, 0x09c0, -0x09c7, 0x09c8, -0x09cb, 0x09cc, -0x09ce, 0x09ce, -0x09dc, 0x09dd, -0x09df, 0x09e1, -0x09e6, 0x09fd, -0x0a03, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3e, 0x0a40, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a6f, -0x0a72, 0x0a74, -0x0a76, 0x0a76, -0x0a83, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0ac0, -0x0ac9, 0x0ac9, -0x0acb, 0x0acc, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae1, -0x0ae6, 0x0af1, -0x0af9, 0x0af9, -0x0b02, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b3d, -0x0b40, 0x0b40, -0x0b47, 0x0b48, -0x0b4b, 0x0b4c, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b61, -0x0b66, 0x0b77, -0x0b83, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbf, 0x0bbf, -0x0bc1, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcc, -0x0bd0, 0x0bd0, -0x0be6, 0x0bfa, -0x0c01, 0x0c03, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c3d, -0x0c41, 0x0c44, -0x0c58, 0x0c5a, -0x0c60, 0x0c61, -0x0c66, 0x0c6f, -0x0c77, 0x0c80, -0x0c82, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cbe, -0x0cc0, 0x0cc1, -0x0cc3, 0x0cc4, -0x0cc7, 0x0cc8, -0x0cca, 0x0ccb, -0x0cde, 0x0cde, -0x0ce0, 0x0ce1, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d02, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d3d, -0x0d3f, 0x0d40, -0x0d46, 0x0d48, -0x0d4a, 0x0d4c, -0x0d4e, 0x0d4f, -0x0d54, 0x0d56, -0x0d58, 0x0d61, -0x0d66, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dd0, 0x0dd1, -0x0dd8, 0x0dde, -0x0de6, 0x0def, -0x0df2, 0x0df4, -0x0e01, 0x0e30, -0x0e32, 0x0e33, -0x0e3f, 0x0e46, -0x0e4f, 0x0e5b, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb0, -0x0eb2, 0x0eb3, -0x0ebd, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f17, -0x0f1a, 0x0f34, -0x0f36, 0x0f36, -0x0f38, 0x0f38, -0x0f3a, 0x0f47, -0x0f49, 0x0f6c, -0x0f7f, 0x0f7f, -0x0f85, 0x0f85, -0x0f88, 0x0f8c, -0x0fbe, 0x0fc5, -0x0fc7, 0x0fcc, -0x0fce, 0x0fda, -0x1000, 0x102c, -0x1031, 0x1031, -0x1038, 0x1038, -0x103b, 0x103c, -0x103f, 0x1057, -0x105a, 0x105d, -0x1061, 0x1070, -0x1075, 0x1081, -0x1083, 0x1084, -0x1087, 0x108c, -0x108e, 0x109c, -0x109e, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1360, 0x137c, -0x1380, 0x1399, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1400, 0x169c, -0x16a0, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1711, -0x1720, 0x1731, -0x1735, 0x1736, -0x1740, 0x1751, -0x1760, 0x176c, -0x176e, 0x1770, -0x1780, 0x17b3, -0x17b6, 0x17b6, -0x17be, 0x17c5, -0x17c7, 0x17c8, -0x17d4, 0x17dc, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x1800, 0x180a, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x1884, -0x1887, 0x18a8, -0x18aa, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1923, 0x1926, -0x1929, 0x192b, -0x1930, 0x1931, -0x1933, 0x1938, -0x1940, 0x1940, -0x1944, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x19de, 0x1a16, -0x1a19, 0x1a1a, -0x1a1e, 0x1a55, -0x1a57, 0x1a57, -0x1a61, 0x1a61, -0x1a63, 0x1a64, -0x1a6d, 0x1a72, -0x1a80, 0x1a89, -0x1a90, 0x1a99, -0x1aa0, 0x1aad, -0x1b04, 0x1b33, -0x1b3b, 0x1b3b, -0x1b3d, 0x1b41, -0x1b43, 0x1b4b, -0x1b50, 0x1b6a, -0x1b74, 0x1b7c, -0x1b82, 0x1ba1, -0x1ba6, 0x1ba7, -0x1baa, 0x1baa, -0x1bae, 0x1be5, -0x1be7, 0x1be7, -0x1bea, 0x1bec, -0x1bee, 0x1bee, -0x1bf2, 0x1bf3, -0x1bfc, 0x1c2b, -0x1c34, 0x1c35, -0x1c3b, 0x1c49, -0x1c4d, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cc7, -0x1cd3, 0x1cd3, -0x1ce1, 0x1ce1, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf7, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fc4, -0x1fc6, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fdd, 0x1fef, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffe, -0x2000, 0x200a, -0x2010, 0x2027, -0x202f, 0x205f, -0x2070, 0x2071, -0x2074, 0x208e, -0x2090, 0x209c, -0x20a0, 0x20bf, -0x2100, 0x218b, -0x2190, 0x2426, -0x2440, 0x244a, -0x2460, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2cee, -0x2cf2, 0x2cf3, -0x2cf9, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d70, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2e00, 0x2e4f, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x3029, -0x3030, 0x303f, -0x3041, 0x3096, -0x309b, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x3190, 0x31ba, -0x31c0, 0x31e3, -0x31f0, 0x321e, -0x3220, 0x4db5, -0x4dc0, 0x9fef, -0xa000, 0xa48c, -0xa490, 0xa4c6, -0xa4d0, 0xa62b, -0xa640, 0xa66e, -0xa673, 0xa673, -0xa67e, 0xa69d, -0xa6a0, 0xa6ef, -0xa6f2, 0xa6f7, -0xa700, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa801, -0xa803, 0xa805, -0xa807, 0xa80a, -0xa80c, 0xa824, -0xa827, 0xa82b, -0xa830, 0xa839, -0xa840, 0xa877, -0xa880, 0xa8c3, -0xa8ce, 0xa8d9, -0xa8f2, 0xa8fe, -0xa900, 0xa925, -0xa92e, 0xa946, -0xa952, 0xa953, -0xa95f, 0xa97c, -0xa983, 0xa9b2, -0xa9b4, 0xa9b5, -0xa9ba, 0xa9bb, -0xa9be, 0xa9cd, -0xa9cf, 0xa9d9, -0xa9de, 0xa9e4, -0xa9e6, 0xa9fe, -0xaa00, 0xaa28, -0xaa2f, 0xaa30, -0xaa33, 0xaa34, -0xaa40, 0xaa42, -0xaa44, 0xaa4b, -0xaa4d, 0xaa4d, -0xaa50, 0xaa59, -0xaa5c, 0xaa7b, -0xaa7d, 0xaaaf, -0xaab1, 0xaab1, -0xaab5, 0xaab6, -0xaab9, 0xaabd, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaaeb, -0xaaee, 0xaaf5, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab67, -0xab70, 0xabe4, -0xabe6, 0xabe7, -0xabe9, 0xabec, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb1d, -0xfb1f, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbc1, -0xfbd3, 0xfd3f, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfd, -0xfe10, 0xfe19, -0xfe30, 0xfe52, -0xfe54, 0xfe66, -0xfe68, 0xfe6b, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff01, 0xff9d, -0xffa0, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfffc, 0xfffd, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10100, 0x10102, -0x10107, 0x10133, -0x10137, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fc, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e1, 0x102fb, -0x10300, 0x10323, -0x1032d, 0x1034a, -0x10350, 0x10375, -0x10380, 0x1039d, -0x1039f, 0x103c3, -0x103c8, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x1056f, 0x1056f, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10857, 0x1089e, -0x108a7, 0x108af, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x108fb, 0x1091b, -0x1091f, 0x10939, -0x1093f, 0x1093f, -0x10980, 0x109b7, -0x109bc, 0x109cf, -0x109d2, 0x10a00, -0x10a10, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a40, 0x10a48, -0x10a50, 0x10a58, -0x10a60, 0x10a9f, -0x10ac0, 0x10ae4, -0x10aeb, 0x10af6, -0x10b00, 0x10b35, -0x10b39, 0x10b55, -0x10b58, 0x10b72, -0x10b78, 0x10b91, -0x10b99, 0x10b9c, -0x10ba9, 0x10baf, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10cfa, 0x10d23, -0x10d30, 0x10d39, -0x10e60, 0x10e7e, -0x10f00, 0x10f27, -0x10f30, 0x10f45, -0x10f51, 0x10f59, -0x10fe0, 0x10ff6, -0x11000, 0x11000, -0x11002, 0x11037, -0x11047, 0x1104d, -0x11052, 0x1106f, -0x11082, 0x110b2, -0x110b7, 0x110b8, -0x110bb, 0x110bc, -0x110be, 0x110c1, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11103, 0x11126, -0x1112c, 0x1112c, -0x11136, 0x11146, -0x11150, 0x11172, -0x11174, 0x11176, -0x11182, 0x111b5, -0x111bf, 0x111c8, -0x111cd, 0x111cd, -0x111d0, 0x111df, -0x111e1, 0x111f4, -0x11200, 0x11211, -0x11213, 0x1122e, -0x11232, 0x11233, -0x11235, 0x11235, -0x11238, 0x1123d, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a9, -0x112b0, 0x112de, -0x112e0, 0x112e2, -0x112f0, 0x112f9, -0x11302, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x1133d, -0x1133f, 0x1133f, -0x11341, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x1135d, 0x11363, -0x11400, 0x11437, -0x11440, 0x11441, -0x11445, 0x11445, -0x11447, 0x11459, -0x1145b, 0x1145b, -0x1145d, 0x1145d, -0x1145f, 0x1145f, -0x11480, 0x114af, -0x114b1, 0x114b2, -0x114b9, 0x114b9, -0x114bb, 0x114bc, -0x114be, 0x114be, -0x114c1, 0x114c1, -0x114c4, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115ae, -0x115b0, 0x115b1, -0x115b8, 0x115bb, -0x115be, 0x115be, -0x115c1, 0x115db, -0x11600, 0x11632, -0x1163b, 0x1163c, -0x1163e, 0x1163e, -0x11641, 0x11644, -0x11650, 0x11659, -0x11660, 0x1166c, -0x11680, 0x116aa, -0x116ac, 0x116ac, -0x116ae, 0x116af, -0x116b6, 0x116b6, -0x116b8, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x11720, 0x11721, -0x11726, 0x11726, -0x11730, 0x1173f, -0x11800, 0x1182e, -0x11838, 0x11838, -0x1183b, 0x1183b, -0x118a0, 0x118f2, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d3, -0x119dc, 0x119df, -0x119e1, 0x119e4, -0x11a00, 0x11a00, -0x11a0b, 0x11a32, -0x11a39, 0x11a3a, -0x11a3f, 0x11a46, -0x11a50, 0x11a50, -0x11a57, 0x11a58, -0x11a5c, 0x11a89, -0x11a97, 0x11a97, -0x11a9a, 0x11aa2, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c2f, -0x11c3e, 0x11c3e, -0x11c40, 0x11c45, -0x11c50, 0x11c6c, -0x11c70, 0x11c8f, -0x11ca9, 0x11ca9, -0x11cb1, 0x11cb1, -0x11cb4, 0x11cb4, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d30, -0x11d46, 0x11d46, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d93, 0x11d94, -0x11d96, 0x11d96, -0x11d98, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef2, -0x11ef5, 0x11ef8, -0x11fc0, 0x11ff1, -0x11fff, 0x12399, -0x12400, 0x1246e, -0x12470, 0x12474, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16a6e, 0x16a6f, -0x16ad0, 0x16aed, -0x16af5, 0x16af5, -0x16b00, 0x16b2f, -0x16b37, 0x16b45, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e9a, -0x16f00, 0x16f4a, -0x16f50, 0x16f87, -0x16f93, 0x16f9f, -0x16fe0, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9c, 0x1bc9c, -0x1bc9f, 0x1bc9f, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d164, -0x1d166, 0x1d166, -0x1d16a, 0x1d16d, -0x1d183, 0x1d184, -0x1d18c, 0x1d1a9, -0x1d1ae, 0x1d1e8, -0x1d200, 0x1d241, -0x1d245, 0x1d245, -0x1d2e0, 0x1d2f3, -0x1d300, 0x1d356, -0x1d360, 0x1d378, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1d9ff, -0x1da37, 0x1da3a, -0x1da6d, 0x1da74, -0x1da76, 0x1da83, -0x1da85, 0x1da8b, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14f, -0x1e2c0, 0x1e2eb, -0x1e2f0, 0x1e2f9, -0x1e2ff, 0x1e2ff, -0x1e800, 0x1e8c4, -0x1e8c7, 0x1e8cf, -0x1e900, 0x1e943, -0x1e94b, 0x1e94b, -0x1e950, 0x1e959, -0x1e95e, 0x1e95f, -0x1ec71, 0x1ecb4, -0x1ed01, 0x1ed3d, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f100, 0x1f10c, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Grapheme_Base */ - -/* PROPERTY: 'Grapheme_Extend': Derived Property */ -static const OnigCodePoint -CR_Grapheme_Extend[] = { 335, -0x0300, 0x036f, -0x0483, 0x0489, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x0610, 0x061a, -0x064b, 0x065f, -0x0670, 0x0670, -0x06d6, 0x06dc, -0x06df, 0x06e4, -0x06e7, 0x06e8, -0x06ea, 0x06ed, -0x0711, 0x0711, -0x0730, 0x074a, -0x07a6, 0x07b0, -0x07eb, 0x07f3, -0x07fd, 0x07fd, -0x0816, 0x0819, -0x081b, 0x0823, -0x0825, 0x0827, -0x0829, 0x082d, -0x0859, 0x085b, -0x08d3, 0x08e1, -0x08e3, 0x0902, -0x093a, 0x093a, -0x093c, 0x093c, -0x0941, 0x0948, -0x094d, 0x094d, -0x0951, 0x0957, -0x0962, 0x0963, -0x0981, 0x0981, -0x09bc, 0x09bc, -0x09be, 0x09be, -0x09c1, 0x09c4, -0x09cd, 0x09cd, -0x09d7, 0x09d7, -0x09e2, 0x09e3, -0x09fe, 0x09fe, -0x0a01, 0x0a02, -0x0a3c, 0x0a3c, -0x0a41, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a70, 0x0a71, -0x0a75, 0x0a75, -0x0a81, 0x0a82, -0x0abc, 0x0abc, -0x0ac1, 0x0ac5, -0x0ac7, 0x0ac8, -0x0acd, 0x0acd, -0x0ae2, 0x0ae3, -0x0afa, 0x0aff, -0x0b01, 0x0b01, -0x0b3c, 0x0b3c, -0x0b3e, 0x0b3f, -0x0b41, 0x0b44, -0x0b4d, 0x0b4d, -0x0b56, 0x0b57, -0x0b62, 0x0b63, -0x0b82, 0x0b82, -0x0bbe, 0x0bbe, -0x0bc0, 0x0bc0, -0x0bcd, 0x0bcd, -0x0bd7, 0x0bd7, -0x0c00, 0x0c00, -0x0c04, 0x0c04, -0x0c3e, 0x0c40, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c62, 0x0c63, -0x0c81, 0x0c81, -0x0cbc, 0x0cbc, -0x0cbf, 0x0cbf, -0x0cc2, 0x0cc2, -0x0cc6, 0x0cc6, -0x0ccc, 0x0ccd, -0x0cd5, 0x0cd6, -0x0ce2, 0x0ce3, -0x0d00, 0x0d01, -0x0d3b, 0x0d3c, -0x0d3e, 0x0d3e, -0x0d41, 0x0d44, -0x0d4d, 0x0d4d, -0x0d57, 0x0d57, -0x0d62, 0x0d63, -0x0dca, 0x0dca, -0x0dcf, 0x0dcf, -0x0dd2, 0x0dd4, -0x0dd6, 0x0dd6, -0x0ddf, 0x0ddf, -0x0e31, 0x0e31, -0x0e34, 0x0e3a, -0x0e47, 0x0e4e, -0x0eb1, 0x0eb1, -0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, -0x0f18, 0x0f19, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f71, 0x0f7e, -0x0f80, 0x0f84, -0x0f86, 0x0f87, -0x0f8d, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x102d, 0x1030, -0x1032, 0x1037, -0x1039, 0x103a, -0x103d, 0x103e, -0x1058, 0x1059, -0x105e, 0x1060, -0x1071, 0x1074, -0x1082, 0x1082, -0x1085, 0x1086, -0x108d, 0x108d, -0x109d, 0x109d, -0x135d, 0x135f, -0x1712, 0x1714, -0x1732, 0x1734, -0x1752, 0x1753, -0x1772, 0x1773, -0x17b4, 0x17b5, -0x17b7, 0x17bd, -0x17c6, 0x17c6, -0x17c9, 0x17d3, -0x17dd, 0x17dd, -0x180b, 0x180d, -0x1885, 0x1886, -0x18a9, 0x18a9, -0x1920, 0x1922, -0x1927, 0x1928, -0x1932, 0x1932, -0x1939, 0x193b, -0x1a17, 0x1a18, -0x1a1b, 0x1a1b, -0x1a56, 0x1a56, -0x1a58, 0x1a5e, -0x1a60, 0x1a60, -0x1a62, 0x1a62, -0x1a65, 0x1a6c, -0x1a73, 0x1a7c, -0x1a7f, 0x1a7f, -0x1ab0, 0x1abe, -0x1b00, 0x1b03, -0x1b34, 0x1b3a, -0x1b3c, 0x1b3c, -0x1b42, 0x1b42, -0x1b6b, 0x1b73, -0x1b80, 0x1b81, -0x1ba2, 0x1ba5, -0x1ba8, 0x1ba9, -0x1bab, 0x1bad, -0x1be6, 0x1be6, -0x1be8, 0x1be9, -0x1bed, 0x1bed, -0x1bef, 0x1bf1, -0x1c2c, 0x1c33, -0x1c36, 0x1c37, -0x1cd0, 0x1cd2, -0x1cd4, 0x1ce0, -0x1ce2, 0x1ce8, -0x1ced, 0x1ced, -0x1cf4, 0x1cf4, -0x1cf8, 0x1cf9, -0x1dc0, 0x1df9, -0x1dfb, 0x1dff, -0x200c, 0x200c, -0x20d0, 0x20f0, -0x2cef, 0x2cf1, -0x2d7f, 0x2d7f, -0x2de0, 0x2dff, -0x302a, 0x302f, -0x3099, 0x309a, -0xa66f, 0xa672, -0xa674, 0xa67d, -0xa69e, 0xa69f, -0xa6f0, 0xa6f1, -0xa802, 0xa802, -0xa806, 0xa806, -0xa80b, 0xa80b, -0xa825, 0xa826, -0xa8c4, 0xa8c5, -0xa8e0, 0xa8f1, -0xa8ff, 0xa8ff, -0xa926, 0xa92d, -0xa947, 0xa951, -0xa980, 0xa982, -0xa9b3, 0xa9b3, -0xa9b6, 0xa9b9, -0xa9bc, 0xa9bd, -0xa9e5, 0xa9e5, -0xaa29, 0xaa2e, -0xaa31, 0xaa32, -0xaa35, 0xaa36, -0xaa43, 0xaa43, -0xaa4c, 0xaa4c, -0xaa7c, 0xaa7c, -0xaab0, 0xaab0, -0xaab2, 0xaab4, -0xaab7, 0xaab8, -0xaabe, 0xaabf, -0xaac1, 0xaac1, -0xaaec, 0xaaed, -0xaaf6, 0xaaf6, -0xabe5, 0xabe5, -0xabe8, 0xabe8, -0xabed, 0xabed, -0xfb1e, 0xfb1e, -0xfe00, 0xfe0f, -0xfe20, 0xfe2f, -0xff9e, 0xff9f, -0x101fd, 0x101fd, -0x102e0, 0x102e0, -0x10376, 0x1037a, -0x10a01, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a0f, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10ae5, 0x10ae6, -0x10d24, 0x10d27, -0x10f46, 0x10f50, -0x11001, 0x11001, -0x11038, 0x11046, -0x1107f, 0x11081, -0x110b3, 0x110b6, -0x110b9, 0x110ba, -0x11100, 0x11102, -0x11127, 0x1112b, -0x1112d, 0x11134, -0x11173, 0x11173, -0x11180, 0x11181, -0x111b6, 0x111be, -0x111c9, 0x111cc, -0x1122f, 0x11231, -0x11234, 0x11234, -0x11236, 0x11237, -0x1123e, 0x1123e, -0x112df, 0x112df, -0x112e3, 0x112ea, -0x11300, 0x11301, -0x1133b, 0x1133c, -0x1133e, 0x1133e, -0x11340, 0x11340, -0x11357, 0x11357, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11438, 0x1143f, -0x11442, 0x11444, -0x11446, 0x11446, -0x1145e, 0x1145e, -0x114b0, 0x114b0, -0x114b3, 0x114b8, -0x114ba, 0x114ba, -0x114bd, 0x114bd, -0x114bf, 0x114c0, -0x114c2, 0x114c3, -0x115af, 0x115af, -0x115b2, 0x115b5, -0x115bc, 0x115bd, -0x115bf, 0x115c0, -0x115dc, 0x115dd, -0x11633, 0x1163a, -0x1163d, 0x1163d, -0x1163f, 0x11640, -0x116ab, 0x116ab, -0x116ad, 0x116ad, -0x116b0, 0x116b5, -0x116b7, 0x116b7, -0x1171d, 0x1171f, -0x11722, 0x11725, -0x11727, 0x1172b, -0x1182f, 0x11837, -0x11839, 0x1183a, -0x119d4, 0x119d7, -0x119da, 0x119db, -0x119e0, 0x119e0, -0x11a01, 0x11a0a, -0x11a33, 0x11a38, -0x11a3b, 0x11a3e, -0x11a47, 0x11a47, -0x11a51, 0x11a56, -0x11a59, 0x11a5b, -0x11a8a, 0x11a96, -0x11a98, 0x11a99, -0x11c30, 0x11c36, -0x11c38, 0x11c3d, -0x11c3f, 0x11c3f, -0x11c92, 0x11ca7, -0x11caa, 0x11cb0, -0x11cb2, 0x11cb3, -0x11cb5, 0x11cb6, -0x11d31, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d45, -0x11d47, 0x11d47, -0x11d90, 0x11d91, -0x11d95, 0x11d95, -0x11d97, 0x11d97, -0x11ef3, 0x11ef4, -0x16af0, 0x16af4, -0x16b30, 0x16b36, -0x16f4f, 0x16f4f, -0x16f8f, 0x16f92, -0x1bc9d, 0x1bc9e, -0x1d165, 0x1d165, -0x1d167, 0x1d169, -0x1d16e, 0x1d172, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e130, 0x1e136, -0x1e2ec, 0x1e2ef, -0x1e8d0, 0x1e8d6, -0x1e944, 0x1e94a, -0xe0020, 0xe007f, -0xe0100, 0xe01ef, -}; /* END of CR_Grapheme_Extend */ - -/* PROPERTY: 'Grapheme_Link': Derived Property */ -static const OnigCodePoint -CR_Grapheme_Link[] = { 52, -0x094d, 0x094d, -0x09cd, 0x09cd, -0x0a4d, 0x0a4d, -0x0acd, 0x0acd, -0x0b4d, 0x0b4d, -0x0bcd, 0x0bcd, -0x0c4d, 0x0c4d, -0x0ccd, 0x0ccd, -0x0d3b, 0x0d3c, -0x0d4d, 0x0d4d, -0x0dca, 0x0dca, -0x0e3a, 0x0e3a, -0x0eba, 0x0eba, -0x0f84, 0x0f84, -0x1039, 0x103a, -0x1714, 0x1714, -0x1734, 0x1734, -0x17d2, 0x17d2, -0x1a60, 0x1a60, -0x1b44, 0x1b44, -0x1baa, 0x1bab, -0x1bf2, 0x1bf3, -0x2d7f, 0x2d7f, -0xa806, 0xa806, -0xa8c4, 0xa8c4, -0xa953, 0xa953, -0xa9c0, 0xa9c0, -0xaaf6, 0xaaf6, -0xabed, 0xabed, -0x10a3f, 0x10a3f, -0x11046, 0x11046, -0x1107f, 0x1107f, -0x110b9, 0x110b9, -0x11133, 0x11134, -0x111c0, 0x111c0, -0x11235, 0x11235, -0x112ea, 0x112ea, -0x1134d, 0x1134d, -0x11442, 0x11442, -0x114c2, 0x114c2, -0x115bf, 0x115bf, -0x1163f, 0x1163f, -0x116b6, 0x116b6, -0x1172b, 0x1172b, -0x11839, 0x11839, -0x119e0, 0x119e0, -0x11a34, 0x11a34, -0x11a47, 0x11a47, -0x11a99, 0x11a99, -0x11c3f, 0x11c3f, -0x11d44, 0x11d45, -0x11d97, 0x11d97, -}; /* END of CR_Grapheme_Link */ - -/* PROPERTY: 'Greek': Script */ -static const OnigCodePoint -CR_Greek[] = { 36, -0x0370, 0x0373, -0x0375, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0384, 0x0384, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03e1, -0x03f0, 0x03ff, -0x1d26, 0x1d2a, -0x1d5d, 0x1d61, -0x1d66, 0x1d6a, -0x1dbf, 0x1dbf, -0x1f00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fc4, -0x1fc6, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fdd, 0x1fef, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffe, -0x2126, 0x2126, -0xab65, 0xab65, -0x10140, 0x1018e, -0x101a0, 0x101a0, -0x1d200, 0x1d245, -}; /* END of CR_Greek */ - -/* PROPERTY: 'Gujarati': Script */ -static const OnigCodePoint -CR_Gujarati[] = { 14, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0af1, -0x0af9, 0x0aff, -}; /* END of CR_Gujarati */ - -/* PROPERTY: 'Gunjala_Gondi': Script */ -static const OnigCodePoint -CR_Gunjala_Gondi[] = { 6, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -}; /* END of CR_Gunjala_Gondi */ - -/* PROPERTY: 'Gurmukhi': Script */ -static const OnigCodePoint -CR_Gurmukhi[] = { 16, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a76, -}; /* END of CR_Gurmukhi */ - -/* PROPERTY: 'Han': Script */ -static const OnigCodePoint -CR_Han[] = { 17, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x3005, 0x3005, -0x3007, 0x3007, -0x3021, 0x3029, -0x3038, 0x303b, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Han */ - -/* PROPERTY: 'Hangul': Script */ -static const OnigCodePoint -CR_Hangul[] = { 14, -0x1100, 0x11ff, -0x302e, 0x302f, -0x3131, 0x318e, -0x3200, 0x321e, -0x3260, 0x327e, -0xa960, 0xa97c, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xffa0, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -}; /* END of CR_Hangul */ - -/* PROPERTY: 'Hanifi_Rohingya': Script */ -static const OnigCodePoint -CR_Hanifi_Rohingya[] = { 2, -0x10d00, 0x10d27, -0x10d30, 0x10d39, -}; /* END of CR_Hanifi_Rohingya */ - -/* PROPERTY: 'Hanunoo': Script */ -static const OnigCodePoint -CR_Hanunoo[] = { 1, -0x1720, 0x1734, -}; /* END of CR_Hanunoo */ - -/* PROPERTY: 'Hatran': Script */ -static const OnigCodePoint -CR_Hatran[] = { 3, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x108fb, 0x108ff, -}; /* END of CR_Hatran */ - -/* PROPERTY: 'Hebrew': Script */ -static const OnigCodePoint -CR_Hebrew[] = { 9, -0x0591, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f4, -0xfb1d, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfb4f, -}; /* END of CR_Hebrew */ - -/* PROPERTY: 'Hex_Digit': Binary Property */ -static const OnigCodePoint -CR_Hex_Digit[] = { 6, -0x0030, 0x0039, -0x0041, 0x0046, -0x0061, 0x0066, -0xff10, 0xff19, -0xff21, 0xff26, -0xff41, 0xff46, -}; /* END of CR_Hex_Digit */ - -/* PROPERTY: 'Hiragana': Script */ -static const OnigCodePoint -CR_Hiragana[] = { 5, -0x3041, 0x3096, -0x309d, 0x309f, -0x1b001, 0x1b11e, -0x1b150, 0x1b152, -0x1f200, 0x1f200, -}; /* END of CR_Hiragana */ - -/* PROPERTY: 'Hyphen': Binary Property */ -static const OnigCodePoint -CR_Hyphen[] = { 10, -0x002d, 0x002d, -0x00ad, 0x00ad, -0x058a, 0x058a, -0x1806, 0x1806, -0x2010, 0x2011, -0x2e17, 0x2e17, -0x30fb, 0x30fb, -0xfe63, 0xfe63, -0xff0d, 0xff0d, -0xff65, 0xff65, -}; /* END of CR_Hyphen */ - -/* PROPERTY: 'IDS_Binary_Operator': Binary Property */ -static const OnigCodePoint -CR_IDS_Binary_Operator[] = { 2, -0x2ff0, 0x2ff1, -0x2ff4, 0x2ffb, -}; /* END of CR_IDS_Binary_Operator */ - -/* PROPERTY: 'IDS_Trinary_Operator': Binary Property */ -static const OnigCodePoint -CR_IDS_Trinary_Operator[] = { 1, -0x2ff2, 0x2ff3, -}; /* END of CR_IDS_Trinary_Operator */ - -/* PROPERTY: 'ID_Continue': Derived Property */ -static const OnigCodePoint -CR_ID_Continue[] = { 713, -0x0030, 0x0039, -0x0041, 0x005a, -0x005f, 0x005f, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00b7, 0x00b7, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0300, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x0483, 0x0487, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0669, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06df, 0x06e8, -0x06ea, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07f5, -0x07fa, 0x07fa, -0x07fd, 0x07fd, -0x0800, 0x082d, -0x0840, 0x085b, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x08e1, -0x08e3, 0x0963, -0x0966, 0x096f, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09f1, -0x09fc, 0x09fc, -0x09fe, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0aef, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b6f, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bef, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d66, 0x0d6f, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e4e, -0x0e50, 0x0e59, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f18, 0x0f19, -0x0f20, 0x0f29, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f3e, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f84, -0x0f86, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x1000, 0x1049, -0x1050, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x135f, -0x1369, 0x1371, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1734, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17d3, -0x17d7, 0x17d7, -0x17dc, 0x17dd, -0x17e0, 0x17e9, -0x180b, 0x180d, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1946, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa7, 0x1aa7, -0x1ab0, 0x1abd, -0x1b00, 0x1b4b, -0x1b50, 0x1b59, -0x1b6b, 0x1b73, -0x1b80, 0x1bf3, -0x1c00, 0x1c37, -0x1c40, 0x1c49, -0x1c4d, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1cd0, 0x1cd2, -0x1cd4, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x203f, 0x2040, -0x2054, 0x2054, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x20d0, 0x20dc, -0x20e1, 0x20e1, -0x20e5, 0x20f0, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2118, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x3005, 0x3007, -0x3021, 0x302f, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x3099, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa62b, -0xa640, 0xa66f, -0xa674, 0xa67d, -0xa67f, 0xa6f1, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c5, -0xa8d0, 0xa8d9, -0xa8e0, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa92d, -0xa930, 0xa953, -0xa960, 0xa97c, -0xa980, 0xa9c0, -0xa9cf, 0xa9d9, -0xa9e0, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa60, 0xaa76, -0xaa7a, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xabec, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe00, 0xfe0f, -0xfe20, 0xfe2f, -0xfe33, 0xfe34, -0xfe4d, 0xfe4f, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff10, 0xff19, -0xff21, 0xff3a, -0xff3f, 0xff3f, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x101fd, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102e0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae6, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10d30, 0x10d39, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f50, -0x10fe0, 0x10ff6, -0x11000, 0x11046, -0x11066, 0x1106f, -0x1107f, 0x110ba, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x1113f, -0x11144, 0x11146, -0x11150, 0x11173, -0x11176, 0x11176, -0x11180, 0x111c4, -0x111c9, 0x111cc, -0x111d0, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x1144a, -0x11450, 0x11459, -0x1145e, 0x1145f, -0x11480, 0x114c5, -0x114c7, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115c0, -0x115d8, 0x115dd, -0x11600, 0x11640, -0x11644, 0x11644, -0x11650, 0x11659, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x11739, -0x11800, 0x1183a, -0x118a0, 0x118e9, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a3e, -0x11a47, 0x11a47, -0x11a50, 0x11a99, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c40, -0x11c50, 0x11c59, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16ad0, 0x16aed, -0x16af0, 0x16af4, -0x16b00, 0x16b36, -0x16b40, 0x16b43, -0x16b50, 0x16b59, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9d, 0x1bc9e, -0x1d165, 0x1d169, -0x1d16d, 0x1d172, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2f9, -0x1e800, 0x1e8c4, -0x1e8d0, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0100, 0xe01ef, -}; /* END of CR_ID_Continue */ - -/* PROPERTY: 'ID_Start': Derived Property */ -static const OnigCodePoint -CR_ID_Start[] = { 609, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0370, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0620, 0x064a, -0x066e, 0x066f, -0x0671, 0x06d3, -0x06d5, 0x06d5, -0x06e5, 0x06e6, -0x06ee, 0x06ef, -0x06fa, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x0710, -0x0712, 0x072f, -0x074d, 0x07a5, -0x07b1, 0x07b1, -0x07ca, 0x07ea, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x0800, 0x0815, -0x081a, 0x081a, -0x0824, 0x0824, -0x0828, 0x0828, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x0904, 0x0939, -0x093d, 0x093d, -0x0950, 0x0950, -0x0958, 0x0961, -0x0971, 0x0980, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09bd, -0x09ce, 0x09ce, -0x09dc, 0x09dd, -0x09df, 0x09e1, -0x09f0, 0x09f1, -0x09fc, 0x09fc, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a72, 0x0a74, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0abd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae1, -0x0af9, 0x0af9, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b3d, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b61, -0x0b71, 0x0b71, -0x0b83, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bd0, 0x0bd0, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c3d, -0x0c58, 0x0c5a, -0x0c60, 0x0c61, -0x0c80, 0x0c80, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cbd, -0x0cde, 0x0cde, -0x0ce0, 0x0ce1, -0x0cf1, 0x0cf2, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d3d, -0x0d4e, 0x0d4e, -0x0d54, 0x0d56, -0x0d5f, 0x0d61, -0x0d7a, 0x0d7f, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0e01, 0x0e30, -0x0e32, 0x0e33, -0x0e40, 0x0e46, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb0, -0x0eb2, 0x0eb3, -0x0ebd, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f88, 0x0f8c, -0x1000, 0x102a, -0x103f, 0x103f, -0x1050, 0x1055, -0x105a, 0x105d, -0x1061, 0x1061, -0x1065, 0x1066, -0x106e, 0x1070, -0x1075, 0x1081, -0x108e, 0x108e, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1711, -0x1720, 0x1731, -0x1740, 0x1751, -0x1760, 0x176c, -0x176e, 0x1770, -0x1780, 0x17b3, -0x17d7, 0x17d7, -0x17dc, 0x17dc, -0x1820, 0x1878, -0x1880, 0x18a8, -0x18aa, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1950, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x1a00, 0x1a16, -0x1a20, 0x1a54, -0x1aa7, 0x1aa7, -0x1b05, 0x1b33, -0x1b45, 0x1b4b, -0x1b83, 0x1ba0, -0x1bae, 0x1baf, -0x1bba, 0x1be5, -0x1c00, 0x1c23, -0x1c4d, 0x1c4f, -0x1c5a, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2118, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x3005, 0x3007, -0x3021, 0x3029, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x309b, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa61f, -0xa62a, 0xa62b, -0xa640, 0xa66e, -0xa67f, 0xa69d, -0xa6a0, 0xa6ef, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa801, -0xa803, 0xa805, -0xa807, 0xa80a, -0xa80c, 0xa822, -0xa840, 0xa873, -0xa882, 0xa8b3, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa8fe, -0xa90a, 0xa925, -0xa930, 0xa946, -0xa960, 0xa97c, -0xa984, 0xa9b2, -0xa9cf, 0xa9cf, -0xa9e0, 0xa9e4, -0xa9e6, 0xa9ef, -0xa9fa, 0xa9fe, -0xaa00, 0xaa28, -0xaa40, 0xaa42, -0xaa44, 0xaa4b, -0xaa60, 0xaa76, -0xaa7a, 0xaa7a, -0xaa7e, 0xaaaf, -0xaab1, 0xaab1, -0xaab5, 0xaab6, -0xaab9, 0xaabd, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaea, -0xaaf2, 0xaaf4, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabe2, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb1d, -0xfb1f, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff21, 0xff3a, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x10375, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a00, -0x10a10, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d23, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11003, 0x11037, -0x11083, 0x110af, -0x110d0, 0x110e8, -0x11103, 0x11126, -0x11144, 0x11144, -0x11150, 0x11172, -0x11176, 0x11176, -0x11183, 0x111b2, -0x111c1, 0x111c4, -0x111da, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x1122b, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112de, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x1133d, -0x11350, 0x11350, -0x1135d, 0x11361, -0x11400, 0x11434, -0x11447, 0x1144a, -0x1145f, 0x1145f, -0x11480, 0x114af, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x11580, 0x115ae, -0x115d8, 0x115db, -0x11600, 0x1162f, -0x11644, 0x11644, -0x11680, 0x116aa, -0x116b8, 0x116b8, -0x11700, 0x1171a, -0x11800, 0x1182b, -0x118a0, 0x118df, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d0, -0x119e1, 0x119e1, -0x119e3, 0x119e3, -0x11a00, 0x11a00, -0x11a0b, 0x11a32, -0x11a3a, 0x11a3a, -0x11a50, 0x11a50, -0x11a5c, 0x11a89, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c2e, -0x11c40, 0x11c40, -0x11c72, 0x11c8f, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d30, -0x11d46, 0x11d46, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d89, -0x11d98, 0x11d98, -0x11ee0, 0x11ef2, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b40, 0x16b43, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f50, 0x16f50, -0x16f93, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e800, 0x1e8c4, -0x1e900, 0x1e943, -0x1e94b, 0x1e94b, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_ID_Start */ - -/* PROPERTY: 'Ideographic': Binary Property */ -static const OnigCodePoint -CR_Ideographic[] = { 16, -0x3006, 0x3007, -0x3021, 0x3029, -0x3038, 0x303a, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b170, 0x1b2fb, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Ideographic */ - -/* PROPERTY: 'Imperial_Aramaic': Script */ -static const OnigCodePoint -CR_Imperial_Aramaic[] = { 2, -0x10840, 0x10855, -0x10857, 0x1085f, -}; /* END of CR_Imperial_Aramaic */ - -/* PROPERTY: 'Inherited': Script */ -static const OnigCodePoint -CR_Inherited[] = { 28, -0x0300, 0x036f, -0x0485, 0x0486, -0x064b, 0x0655, -0x0670, 0x0670, -0x0951, 0x0954, -0x1ab0, 0x1abe, -0x1cd0, 0x1cd2, -0x1cd4, 0x1ce0, -0x1ce2, 0x1ce8, -0x1ced, 0x1ced, -0x1cf4, 0x1cf4, -0x1cf8, 0x1cf9, -0x1dc0, 0x1df9, -0x1dfb, 0x1dff, -0x200c, 0x200d, -0x20d0, 0x20f0, -0x302a, 0x302d, -0x3099, 0x309a, -0xfe00, 0xfe0f, -0xfe20, 0xfe2d, -0x101fd, 0x101fd, -0x102e0, 0x102e0, -0x1133b, 0x1133b, -0x1d167, 0x1d169, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0xe0100, 0xe01ef, -}; /* END of CR_Inherited */ - -/* PROPERTY: 'Inscriptional_Pahlavi': Script */ -static const OnigCodePoint -CR_Inscriptional_Pahlavi[] = { 2, -0x10b60, 0x10b72, -0x10b78, 0x10b7f, -}; /* END of CR_Inscriptional_Pahlavi */ - -/* PROPERTY: 'Inscriptional_Parthian': Script */ -static const OnigCodePoint -CR_Inscriptional_Parthian[] = { 2, -0x10b40, 0x10b55, -0x10b58, 0x10b5f, -}; /* END of CR_Inscriptional_Parthian */ - -/* PROPERTY: 'Javanese': Script */ -static const OnigCodePoint -CR_Javanese[] = { 3, -0xa980, 0xa9cd, -0xa9d0, 0xa9d9, -0xa9de, 0xa9df, -}; /* END of CR_Javanese */ - -/* PROPERTY: 'Join_Control': Binary Property */ -static const OnigCodePoint -CR_Join_Control[] = { 1, -0x200c, 0x200d, -}; /* END of CR_Join_Control */ - -/* PROPERTY: 'Kaithi': Script */ -static const OnigCodePoint -CR_Kaithi[] = { 2, -0x11080, 0x110c1, -0x110cd, 0x110cd, -}; /* END of CR_Kaithi */ - -/* PROPERTY: 'Kannada': Script */ -static const OnigCodePoint -CR_Kannada[] = { 13, -0x0c80, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -}; /* END of CR_Kannada */ - -/* PROPERTY: 'Katakana': Script */ -static const OnigCodePoint -CR_Katakana[] = { 9, -0x30a1, 0x30fa, -0x30fd, 0x30ff, -0x31f0, 0x31ff, -0x32d0, 0x32fe, -0x3300, 0x3357, -0xff66, 0xff6f, -0xff71, 0xff9d, -0x1b000, 0x1b000, -0x1b164, 0x1b167, -}; /* END of CR_Katakana */ - -/* PROPERTY: 'Kayah_Li': Script */ -static const OnigCodePoint -CR_Kayah_Li[] = { 2, -0xa900, 0xa92d, -0xa92f, 0xa92f, -}; /* END of CR_Kayah_Li */ - -/* PROPERTY: 'Kharoshthi': Script */ -static const OnigCodePoint -CR_Kharoshthi[] = { 8, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a48, -0x10a50, 0x10a58, -}; /* END of CR_Kharoshthi */ - -/* PROPERTY: 'Khmer': Script */ -static const OnigCodePoint -CR_Khmer[] = { 4, -0x1780, 0x17dd, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x19e0, 0x19ff, -}; /* END of CR_Khmer */ - -/* PROPERTY: 'Khojki': Script */ -static const OnigCodePoint -CR_Khojki[] = { 2, -0x11200, 0x11211, -0x11213, 0x1123e, -}; /* END of CR_Khojki */ - -/* PROPERTY: 'Khudawadi': Script */ -static const OnigCodePoint -CR_Khudawadi[] = { 2, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -}; /* END of CR_Khudawadi */ - -/* PROPERTY: 'L': Major Category */ -static const OnigCodePoint -CR_L[] = { 609, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0370, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0620, 0x064a, -0x066e, 0x066f, -0x0671, 0x06d3, -0x06d5, 0x06d5, -0x06e5, 0x06e6, -0x06ee, 0x06ef, -0x06fa, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x0710, -0x0712, 0x072f, -0x074d, 0x07a5, -0x07b1, 0x07b1, -0x07ca, 0x07ea, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x0800, 0x0815, -0x081a, 0x081a, -0x0824, 0x0824, -0x0828, 0x0828, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x0904, 0x0939, -0x093d, 0x093d, -0x0950, 0x0950, -0x0958, 0x0961, -0x0971, 0x0980, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09bd, -0x09ce, 0x09ce, -0x09dc, 0x09dd, -0x09df, 0x09e1, -0x09f0, 0x09f1, -0x09fc, 0x09fc, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a72, 0x0a74, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0abd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae1, -0x0af9, 0x0af9, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b3d, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b61, -0x0b71, 0x0b71, -0x0b83, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bd0, 0x0bd0, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c3d, -0x0c58, 0x0c5a, -0x0c60, 0x0c61, -0x0c80, 0x0c80, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cbd, -0x0cde, 0x0cde, -0x0ce0, 0x0ce1, -0x0cf1, 0x0cf2, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d3d, -0x0d4e, 0x0d4e, -0x0d54, 0x0d56, -0x0d5f, 0x0d61, -0x0d7a, 0x0d7f, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0e01, 0x0e30, -0x0e32, 0x0e33, -0x0e40, 0x0e46, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb0, -0x0eb2, 0x0eb3, -0x0ebd, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f88, 0x0f8c, -0x1000, 0x102a, -0x103f, 0x103f, -0x1050, 0x1055, -0x105a, 0x105d, -0x1061, 0x1061, -0x1065, 0x1066, -0x106e, 0x1070, -0x1075, 0x1081, -0x108e, 0x108e, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16f1, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1711, -0x1720, 0x1731, -0x1740, 0x1751, -0x1760, 0x176c, -0x176e, 0x1770, -0x1780, 0x17b3, -0x17d7, 0x17d7, -0x17dc, 0x17dc, -0x1820, 0x1878, -0x1880, 0x1884, -0x1887, 0x18a8, -0x18aa, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1950, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x1a00, 0x1a16, -0x1a20, 0x1a54, -0x1aa7, 0x1aa7, -0x1b05, 0x1b33, -0x1b45, 0x1b4b, -0x1b83, 0x1ba0, -0x1bae, 0x1baf, -0x1bba, 0x1be5, -0x1c00, 0x1c23, -0x1c4d, 0x1c4f, -0x1c5a, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2183, 0x2184, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2e2f, 0x2e2f, -0x3005, 0x3006, -0x3031, 0x3035, -0x303b, 0x303c, -0x3041, 0x3096, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa61f, -0xa62a, 0xa62b, -0xa640, 0xa66e, -0xa67f, 0xa69d, -0xa6a0, 0xa6e5, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa801, -0xa803, 0xa805, -0xa807, 0xa80a, -0xa80c, 0xa822, -0xa840, 0xa873, -0xa882, 0xa8b3, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa8fe, -0xa90a, 0xa925, -0xa930, 0xa946, -0xa960, 0xa97c, -0xa984, 0xa9b2, -0xa9cf, 0xa9cf, -0xa9e0, 0xa9e4, -0xa9e6, 0xa9ef, -0xa9fa, 0xa9fe, -0xaa00, 0xaa28, -0xaa40, 0xaa42, -0xaa44, 0xaa4b, -0xaa60, 0xaa76, -0xaa7a, 0xaa7a, -0xaa7e, 0xaaaf, -0xaab1, 0xaab1, -0xaab5, 0xaab6, -0xaab9, 0xaabd, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaea, -0xaaf2, 0xaaf4, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabe2, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb1d, -0xfb1f, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff21, 0xff3a, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x10340, -0x10342, 0x10349, -0x10350, 0x10375, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x10400, 0x1049d, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a00, -0x10a10, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d23, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11003, 0x11037, -0x11083, 0x110af, -0x110d0, 0x110e8, -0x11103, 0x11126, -0x11144, 0x11144, -0x11150, 0x11172, -0x11176, 0x11176, -0x11183, 0x111b2, -0x111c1, 0x111c4, -0x111da, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x1122b, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112de, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x1133d, -0x11350, 0x11350, -0x1135d, 0x11361, -0x11400, 0x11434, -0x11447, 0x1144a, -0x1145f, 0x1145f, -0x11480, 0x114af, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x11580, 0x115ae, -0x115d8, 0x115db, -0x11600, 0x1162f, -0x11644, 0x11644, -0x11680, 0x116aa, -0x116b8, 0x116b8, -0x11700, 0x1171a, -0x11800, 0x1182b, -0x118a0, 0x118df, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d0, -0x119e1, 0x119e1, -0x119e3, 0x119e3, -0x11a00, 0x11a00, -0x11a0b, 0x11a32, -0x11a3a, 0x11a3a, -0x11a50, 0x11a50, -0x11a5c, 0x11a89, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c2e, -0x11c40, 0x11c40, -0x11c72, 0x11c8f, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d30, -0x11d46, 0x11d46, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d89, -0x11d98, 0x11d98, -0x11ee0, 0x11ef2, -0x12000, 0x12399, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b40, 0x16b43, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f50, 0x16f50, -0x16f93, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e800, 0x1e8c4, -0x1e900, 0x1e943, -0x1e94b, 0x1e94b, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_L */ - -/* PROPERTY: 'LC': General Category */ -static const OnigCodePoint -CR_LC[] = { 131, -0x0041, 0x005a, -0x0061, 0x007a, -0x00b5, 0x00b5, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x01ba, -0x01bc, 0x01bf, -0x01c4, 0x0293, -0x0295, 0x02af, -0x0370, 0x0373, -0x0376, 0x0377, -0x037b, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0560, 0x0588, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fd, 0x10ff, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1d00, 0x1d2b, -0x1d6b, 0x1d77, -0x1d79, 0x1d9a, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2134, -0x2139, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2183, 0x2184, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2c7b, -0x2c7e, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa640, 0xa66d, -0xa680, 0xa69b, -0xa722, 0xa76f, -0xa771, 0xa787, -0xa78b, 0xa78e, -0xa790, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7fa, 0xa7fa, -0xab30, 0xab5a, -0xab60, 0xab67, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff21, 0xff3a, -0xff41, 0xff5a, -0x10400, 0x1044f, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x118a0, 0x118df, -0x16e40, 0x16e7f, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1e900, 0x1e943, -}; /* END of CR_LC */ - -/* PROPERTY: 'Lao': Script */ -static const OnigCodePoint -CR_Lao[] = { 11, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -}; /* END of CR_Lao */ - -/* PROPERTY: 'Latin': Script */ -static const OnigCodePoint -CR_Latin[] = { 32, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02b8, -0x02e0, 0x02e4, -0x1d00, 0x1d25, -0x1d2c, 0x1d5c, -0x1d62, 0x1d65, -0x1d6b, 0x1d77, -0x1d79, 0x1dbe, -0x1e00, 0x1eff, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x212a, 0x212b, -0x2132, 0x2132, -0x214e, 0x214e, -0x2160, 0x2188, -0x2c60, 0x2c7f, -0xa722, 0xa787, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa7ff, -0xab30, 0xab5a, -0xab5c, 0xab64, -0xab66, 0xab67, -0xfb00, 0xfb06, -0xff21, 0xff3a, -0xff41, 0xff5a, -}; /* END of CR_Latin */ - -/* PROPERTY: 'Lepcha': Script */ -static const OnigCodePoint -CR_Lepcha[] = { 3, -0x1c00, 0x1c37, -0x1c3b, 0x1c49, -0x1c4d, 0x1c4f, -}; /* END of CR_Lepcha */ - -/* PROPERTY: 'Limbu': Script */ -static const OnigCodePoint -CR_Limbu[] = { 5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1940, 0x1940, -0x1944, 0x194f, -}; /* END of CR_Limbu */ - -/* PROPERTY: 'Linear_A': Script */ -static const OnigCodePoint -CR_Linear_A[] = { 3, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -}; /* END of CR_Linear_A */ - -/* PROPERTY: 'Linear_B': Script */ -static const OnigCodePoint -CR_Linear_B[] = { 7, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -}; /* END of CR_Linear_B */ - -/* PROPERTY: 'Lisu': Script */ -static const OnigCodePoint -CR_Lisu[] = { 1, -0xa4d0, 0xa4ff, -}; /* END of CR_Lisu */ - -/* PROPERTY: 'Ll': General Category */ -static const OnigCodePoint -CR_Ll[] = { 642, -0x0061, 0x007a, -0x00b5, 0x00b5, -0x00df, 0x00f6, -0x00f8, 0x00ff, -0x0101, 0x0101, -0x0103, 0x0103, -0x0105, 0x0105, -0x0107, 0x0107, -0x0109, 0x0109, -0x010b, 0x010b, -0x010d, 0x010d, -0x010f, 0x010f, -0x0111, 0x0111, -0x0113, 0x0113, -0x0115, 0x0115, -0x0117, 0x0117, -0x0119, 0x0119, -0x011b, 0x011b, -0x011d, 0x011d, -0x011f, 0x011f, -0x0121, 0x0121, -0x0123, 0x0123, -0x0125, 0x0125, -0x0127, 0x0127, -0x0129, 0x0129, -0x012b, 0x012b, -0x012d, 0x012d, -0x012f, 0x012f, -0x0131, 0x0131, -0x0133, 0x0133, -0x0135, 0x0135, -0x0137, 0x0138, -0x013a, 0x013a, -0x013c, 0x013c, -0x013e, 0x013e, -0x0140, 0x0140, -0x0142, 0x0142, -0x0144, 0x0144, -0x0146, 0x0146, -0x0148, 0x0149, -0x014b, 0x014b, -0x014d, 0x014d, -0x014f, 0x014f, -0x0151, 0x0151, -0x0153, 0x0153, -0x0155, 0x0155, -0x0157, 0x0157, -0x0159, 0x0159, -0x015b, 0x015b, -0x015d, 0x015d, -0x015f, 0x015f, -0x0161, 0x0161, -0x0163, 0x0163, -0x0165, 0x0165, -0x0167, 0x0167, -0x0169, 0x0169, -0x016b, 0x016b, -0x016d, 0x016d, -0x016f, 0x016f, -0x0171, 0x0171, -0x0173, 0x0173, -0x0175, 0x0175, -0x0177, 0x0177, -0x017a, 0x017a, -0x017c, 0x017c, -0x017e, 0x0180, -0x0183, 0x0183, -0x0185, 0x0185, -0x0188, 0x0188, -0x018c, 0x018d, -0x0192, 0x0192, -0x0195, 0x0195, -0x0199, 0x019b, -0x019e, 0x019e, -0x01a1, 0x01a1, -0x01a3, 0x01a3, -0x01a5, 0x01a5, -0x01a8, 0x01a8, -0x01aa, 0x01ab, -0x01ad, 0x01ad, -0x01b0, 0x01b0, -0x01b4, 0x01b4, -0x01b6, 0x01b6, -0x01b9, 0x01ba, -0x01bd, 0x01bf, -0x01c6, 0x01c6, -0x01c9, 0x01c9, -0x01cc, 0x01cc, -0x01ce, 0x01ce, -0x01d0, 0x01d0, -0x01d2, 0x01d2, -0x01d4, 0x01d4, -0x01d6, 0x01d6, -0x01d8, 0x01d8, -0x01da, 0x01da, -0x01dc, 0x01dd, -0x01df, 0x01df, -0x01e1, 0x01e1, -0x01e3, 0x01e3, -0x01e5, 0x01e5, -0x01e7, 0x01e7, -0x01e9, 0x01e9, -0x01eb, 0x01eb, -0x01ed, 0x01ed, -0x01ef, 0x01f0, -0x01f3, 0x01f3, -0x01f5, 0x01f5, -0x01f9, 0x01f9, -0x01fb, 0x01fb, -0x01fd, 0x01fd, -0x01ff, 0x01ff, -0x0201, 0x0201, -0x0203, 0x0203, -0x0205, 0x0205, -0x0207, 0x0207, -0x0209, 0x0209, -0x020b, 0x020b, -0x020d, 0x020d, -0x020f, 0x020f, -0x0211, 0x0211, -0x0213, 0x0213, -0x0215, 0x0215, -0x0217, 0x0217, -0x0219, 0x0219, -0x021b, 0x021b, -0x021d, 0x021d, -0x021f, 0x021f, -0x0221, 0x0221, -0x0223, 0x0223, -0x0225, 0x0225, -0x0227, 0x0227, -0x0229, 0x0229, -0x022b, 0x022b, -0x022d, 0x022d, -0x022f, 0x022f, -0x0231, 0x0231, -0x0233, 0x0239, -0x023c, 0x023c, -0x023f, 0x0240, -0x0242, 0x0242, -0x0247, 0x0247, -0x0249, 0x0249, -0x024b, 0x024b, -0x024d, 0x024d, -0x024f, 0x0293, -0x0295, 0x02af, -0x0371, 0x0371, -0x0373, 0x0373, -0x0377, 0x0377, -0x037b, 0x037d, -0x0390, 0x0390, -0x03ac, 0x03ce, -0x03d0, 0x03d1, -0x03d5, 0x03d7, -0x03d9, 0x03d9, -0x03db, 0x03db, -0x03dd, 0x03dd, -0x03df, 0x03df, -0x03e1, 0x03e1, -0x03e3, 0x03e3, -0x03e5, 0x03e5, -0x03e7, 0x03e7, -0x03e9, 0x03e9, -0x03eb, 0x03eb, -0x03ed, 0x03ed, -0x03ef, 0x03f3, -0x03f5, 0x03f5, -0x03f8, 0x03f8, -0x03fb, 0x03fc, -0x0430, 0x045f, -0x0461, 0x0461, -0x0463, 0x0463, -0x0465, 0x0465, -0x0467, 0x0467, -0x0469, 0x0469, -0x046b, 0x046b, -0x046d, 0x046d, -0x046f, 0x046f, -0x0471, 0x0471, -0x0473, 0x0473, -0x0475, 0x0475, -0x0477, 0x0477, -0x0479, 0x0479, -0x047b, 0x047b, -0x047d, 0x047d, -0x047f, 0x047f, -0x0481, 0x0481, -0x048b, 0x048b, -0x048d, 0x048d, -0x048f, 0x048f, -0x0491, 0x0491, -0x0493, 0x0493, -0x0495, 0x0495, -0x0497, 0x0497, -0x0499, 0x0499, -0x049b, 0x049b, -0x049d, 0x049d, -0x049f, 0x049f, -0x04a1, 0x04a1, -0x04a3, 0x04a3, -0x04a5, 0x04a5, -0x04a7, 0x04a7, -0x04a9, 0x04a9, -0x04ab, 0x04ab, -0x04ad, 0x04ad, -0x04af, 0x04af, -0x04b1, 0x04b1, -0x04b3, 0x04b3, -0x04b5, 0x04b5, -0x04b7, 0x04b7, -0x04b9, 0x04b9, -0x04bb, 0x04bb, -0x04bd, 0x04bd, -0x04bf, 0x04bf, -0x04c2, 0x04c2, -0x04c4, 0x04c4, -0x04c6, 0x04c6, -0x04c8, 0x04c8, -0x04ca, 0x04ca, -0x04cc, 0x04cc, -0x04ce, 0x04cf, -0x04d1, 0x04d1, -0x04d3, 0x04d3, -0x04d5, 0x04d5, -0x04d7, 0x04d7, -0x04d9, 0x04d9, -0x04db, 0x04db, -0x04dd, 0x04dd, -0x04df, 0x04df, -0x04e1, 0x04e1, -0x04e3, 0x04e3, -0x04e5, 0x04e5, -0x04e7, 0x04e7, -0x04e9, 0x04e9, -0x04eb, 0x04eb, -0x04ed, 0x04ed, -0x04ef, 0x04ef, -0x04f1, 0x04f1, -0x04f3, 0x04f3, -0x04f5, 0x04f5, -0x04f7, 0x04f7, -0x04f9, 0x04f9, -0x04fb, 0x04fb, -0x04fd, 0x04fd, -0x04ff, 0x04ff, -0x0501, 0x0501, -0x0503, 0x0503, -0x0505, 0x0505, -0x0507, 0x0507, -0x0509, 0x0509, -0x050b, 0x050b, -0x050d, 0x050d, -0x050f, 0x050f, -0x0511, 0x0511, -0x0513, 0x0513, -0x0515, 0x0515, -0x0517, 0x0517, -0x0519, 0x0519, -0x051b, 0x051b, -0x051d, 0x051d, -0x051f, 0x051f, -0x0521, 0x0521, -0x0523, 0x0523, -0x0525, 0x0525, -0x0527, 0x0527, -0x0529, 0x0529, -0x052b, 0x052b, -0x052d, 0x052d, -0x052f, 0x052f, -0x0560, 0x0588, -0x10d0, 0x10fa, -0x10fd, 0x10ff, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1d00, 0x1d2b, -0x1d6b, 0x1d77, -0x1d79, 0x1d9a, -0x1e01, 0x1e01, -0x1e03, 0x1e03, -0x1e05, 0x1e05, -0x1e07, 0x1e07, -0x1e09, 0x1e09, -0x1e0b, 0x1e0b, -0x1e0d, 0x1e0d, -0x1e0f, 0x1e0f, -0x1e11, 0x1e11, -0x1e13, 0x1e13, -0x1e15, 0x1e15, -0x1e17, 0x1e17, -0x1e19, 0x1e19, -0x1e1b, 0x1e1b, -0x1e1d, 0x1e1d, -0x1e1f, 0x1e1f, -0x1e21, 0x1e21, -0x1e23, 0x1e23, -0x1e25, 0x1e25, -0x1e27, 0x1e27, -0x1e29, 0x1e29, -0x1e2b, 0x1e2b, -0x1e2d, 0x1e2d, -0x1e2f, 0x1e2f, -0x1e31, 0x1e31, -0x1e33, 0x1e33, -0x1e35, 0x1e35, -0x1e37, 0x1e37, -0x1e39, 0x1e39, -0x1e3b, 0x1e3b, -0x1e3d, 0x1e3d, -0x1e3f, 0x1e3f, -0x1e41, 0x1e41, -0x1e43, 0x1e43, -0x1e45, 0x1e45, -0x1e47, 0x1e47, -0x1e49, 0x1e49, -0x1e4b, 0x1e4b, -0x1e4d, 0x1e4d, -0x1e4f, 0x1e4f, -0x1e51, 0x1e51, -0x1e53, 0x1e53, -0x1e55, 0x1e55, -0x1e57, 0x1e57, -0x1e59, 0x1e59, -0x1e5b, 0x1e5b, -0x1e5d, 0x1e5d, -0x1e5f, 0x1e5f, -0x1e61, 0x1e61, -0x1e63, 0x1e63, -0x1e65, 0x1e65, -0x1e67, 0x1e67, -0x1e69, 0x1e69, -0x1e6b, 0x1e6b, -0x1e6d, 0x1e6d, -0x1e6f, 0x1e6f, -0x1e71, 0x1e71, -0x1e73, 0x1e73, -0x1e75, 0x1e75, -0x1e77, 0x1e77, -0x1e79, 0x1e79, -0x1e7b, 0x1e7b, -0x1e7d, 0x1e7d, -0x1e7f, 0x1e7f, -0x1e81, 0x1e81, -0x1e83, 0x1e83, -0x1e85, 0x1e85, -0x1e87, 0x1e87, -0x1e89, 0x1e89, -0x1e8b, 0x1e8b, -0x1e8d, 0x1e8d, -0x1e8f, 0x1e8f, -0x1e91, 0x1e91, -0x1e93, 0x1e93, -0x1e95, 0x1e9d, -0x1e9f, 0x1e9f, -0x1ea1, 0x1ea1, -0x1ea3, 0x1ea3, -0x1ea5, 0x1ea5, -0x1ea7, 0x1ea7, -0x1ea9, 0x1ea9, -0x1eab, 0x1eab, -0x1ead, 0x1ead, -0x1eaf, 0x1eaf, -0x1eb1, 0x1eb1, -0x1eb3, 0x1eb3, -0x1eb5, 0x1eb5, -0x1eb7, 0x1eb7, -0x1eb9, 0x1eb9, -0x1ebb, 0x1ebb, -0x1ebd, 0x1ebd, -0x1ebf, 0x1ebf, -0x1ec1, 0x1ec1, -0x1ec3, 0x1ec3, -0x1ec5, 0x1ec5, -0x1ec7, 0x1ec7, -0x1ec9, 0x1ec9, -0x1ecb, 0x1ecb, -0x1ecd, 0x1ecd, -0x1ecf, 0x1ecf, -0x1ed1, 0x1ed1, -0x1ed3, 0x1ed3, -0x1ed5, 0x1ed5, -0x1ed7, 0x1ed7, -0x1ed9, 0x1ed9, -0x1edb, 0x1edb, -0x1edd, 0x1edd, -0x1edf, 0x1edf, -0x1ee1, 0x1ee1, -0x1ee3, 0x1ee3, -0x1ee5, 0x1ee5, -0x1ee7, 0x1ee7, -0x1ee9, 0x1ee9, -0x1eeb, 0x1eeb, -0x1eed, 0x1eed, -0x1eef, 0x1eef, -0x1ef1, 0x1ef1, -0x1ef3, 0x1ef3, -0x1ef5, 0x1ef5, -0x1ef7, 0x1ef7, -0x1ef9, 0x1ef9, -0x1efb, 0x1efb, -0x1efd, 0x1efd, -0x1eff, 0x1f07, -0x1f10, 0x1f15, -0x1f20, 0x1f27, -0x1f30, 0x1f37, -0x1f40, 0x1f45, -0x1f50, 0x1f57, -0x1f60, 0x1f67, -0x1f70, 0x1f7d, -0x1f80, 0x1f87, -0x1f90, 0x1f97, -0x1fa0, 0x1fa7, -0x1fb0, 0x1fb4, -0x1fb6, 0x1fb7, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fc7, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fd7, -0x1fe0, 0x1fe7, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ff7, -0x210a, 0x210a, -0x210e, 0x210f, -0x2113, 0x2113, -0x212f, 0x212f, -0x2134, 0x2134, -0x2139, 0x2139, -0x213c, 0x213d, -0x2146, 0x2149, -0x214e, 0x214e, -0x2184, 0x2184, -0x2c30, 0x2c5e, -0x2c61, 0x2c61, -0x2c65, 0x2c66, -0x2c68, 0x2c68, -0x2c6a, 0x2c6a, -0x2c6c, 0x2c6c, -0x2c71, 0x2c71, -0x2c73, 0x2c74, -0x2c76, 0x2c7b, -0x2c81, 0x2c81, -0x2c83, 0x2c83, -0x2c85, 0x2c85, -0x2c87, 0x2c87, -0x2c89, 0x2c89, -0x2c8b, 0x2c8b, -0x2c8d, 0x2c8d, -0x2c8f, 0x2c8f, -0x2c91, 0x2c91, -0x2c93, 0x2c93, -0x2c95, 0x2c95, -0x2c97, 0x2c97, -0x2c99, 0x2c99, -0x2c9b, 0x2c9b, -0x2c9d, 0x2c9d, -0x2c9f, 0x2c9f, -0x2ca1, 0x2ca1, -0x2ca3, 0x2ca3, -0x2ca5, 0x2ca5, -0x2ca7, 0x2ca7, -0x2ca9, 0x2ca9, -0x2cab, 0x2cab, -0x2cad, 0x2cad, -0x2caf, 0x2caf, -0x2cb1, 0x2cb1, -0x2cb3, 0x2cb3, -0x2cb5, 0x2cb5, -0x2cb7, 0x2cb7, -0x2cb9, 0x2cb9, -0x2cbb, 0x2cbb, -0x2cbd, 0x2cbd, -0x2cbf, 0x2cbf, -0x2cc1, 0x2cc1, -0x2cc3, 0x2cc3, -0x2cc5, 0x2cc5, -0x2cc7, 0x2cc7, -0x2cc9, 0x2cc9, -0x2ccb, 0x2ccb, -0x2ccd, 0x2ccd, -0x2ccf, 0x2ccf, -0x2cd1, 0x2cd1, -0x2cd3, 0x2cd3, -0x2cd5, 0x2cd5, -0x2cd7, 0x2cd7, -0x2cd9, 0x2cd9, -0x2cdb, 0x2cdb, -0x2cdd, 0x2cdd, -0x2cdf, 0x2cdf, -0x2ce1, 0x2ce1, -0x2ce3, 0x2ce4, -0x2cec, 0x2cec, -0x2cee, 0x2cee, -0x2cf3, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa641, 0xa641, -0xa643, 0xa643, -0xa645, 0xa645, -0xa647, 0xa647, -0xa649, 0xa649, -0xa64b, 0xa64b, -0xa64d, 0xa64d, -0xa64f, 0xa64f, -0xa651, 0xa651, -0xa653, 0xa653, -0xa655, 0xa655, -0xa657, 0xa657, -0xa659, 0xa659, -0xa65b, 0xa65b, -0xa65d, 0xa65d, -0xa65f, 0xa65f, -0xa661, 0xa661, -0xa663, 0xa663, -0xa665, 0xa665, -0xa667, 0xa667, -0xa669, 0xa669, -0xa66b, 0xa66b, -0xa66d, 0xa66d, -0xa681, 0xa681, -0xa683, 0xa683, -0xa685, 0xa685, -0xa687, 0xa687, -0xa689, 0xa689, -0xa68b, 0xa68b, -0xa68d, 0xa68d, -0xa68f, 0xa68f, -0xa691, 0xa691, -0xa693, 0xa693, -0xa695, 0xa695, -0xa697, 0xa697, -0xa699, 0xa699, -0xa69b, 0xa69b, -0xa723, 0xa723, -0xa725, 0xa725, -0xa727, 0xa727, -0xa729, 0xa729, -0xa72b, 0xa72b, -0xa72d, 0xa72d, -0xa72f, 0xa731, -0xa733, 0xa733, -0xa735, 0xa735, -0xa737, 0xa737, -0xa739, 0xa739, -0xa73b, 0xa73b, -0xa73d, 0xa73d, -0xa73f, 0xa73f, -0xa741, 0xa741, -0xa743, 0xa743, -0xa745, 0xa745, -0xa747, 0xa747, -0xa749, 0xa749, -0xa74b, 0xa74b, -0xa74d, 0xa74d, -0xa74f, 0xa74f, -0xa751, 0xa751, -0xa753, 0xa753, -0xa755, 0xa755, -0xa757, 0xa757, -0xa759, 0xa759, -0xa75b, 0xa75b, -0xa75d, 0xa75d, -0xa75f, 0xa75f, -0xa761, 0xa761, -0xa763, 0xa763, -0xa765, 0xa765, -0xa767, 0xa767, -0xa769, 0xa769, -0xa76b, 0xa76b, -0xa76d, 0xa76d, -0xa76f, 0xa76f, -0xa771, 0xa778, -0xa77a, 0xa77a, -0xa77c, 0xa77c, -0xa77f, 0xa77f, -0xa781, 0xa781, -0xa783, 0xa783, -0xa785, 0xa785, -0xa787, 0xa787, -0xa78c, 0xa78c, -0xa78e, 0xa78e, -0xa791, 0xa791, -0xa793, 0xa795, -0xa797, 0xa797, -0xa799, 0xa799, -0xa79b, 0xa79b, -0xa79d, 0xa79d, -0xa79f, 0xa79f, -0xa7a1, 0xa7a1, -0xa7a3, 0xa7a3, -0xa7a5, 0xa7a5, -0xa7a7, 0xa7a7, -0xa7a9, 0xa7a9, -0xa7af, 0xa7af, -0xa7b5, 0xa7b5, -0xa7b7, 0xa7b7, -0xa7b9, 0xa7b9, -0xa7bb, 0xa7bb, -0xa7bd, 0xa7bd, -0xa7bf, 0xa7bf, -0xa7c3, 0xa7c3, -0xa7fa, 0xa7fa, -0xab30, 0xab5a, -0xab60, 0xab67, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff41, 0xff5a, -0x10428, 0x1044f, -0x104d8, 0x104fb, -0x10cc0, 0x10cf2, -0x118c0, 0x118df, -0x16e60, 0x16e7f, -0x1d41a, 0x1d433, -0x1d44e, 0x1d454, -0x1d456, 0x1d467, -0x1d482, 0x1d49b, -0x1d4b6, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d4cf, -0x1d4ea, 0x1d503, -0x1d51e, 0x1d537, -0x1d552, 0x1d56b, -0x1d586, 0x1d59f, -0x1d5ba, 0x1d5d3, -0x1d5ee, 0x1d607, -0x1d622, 0x1d63b, -0x1d656, 0x1d66f, -0x1d68a, 0x1d6a5, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6e1, -0x1d6fc, 0x1d714, -0x1d716, 0x1d71b, -0x1d736, 0x1d74e, -0x1d750, 0x1d755, -0x1d770, 0x1d788, -0x1d78a, 0x1d78f, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7c9, -0x1d7cb, 0x1d7cb, -0x1e922, 0x1e943, -}; /* END of CR_Ll */ - -/* PROPERTY: 'Lm': General Category */ -static const OnigCodePoint -CR_Lm[] = { 60, -0x02b0, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0374, 0x0374, -0x037a, 0x037a, -0x0559, 0x0559, -0x0640, 0x0640, -0x06e5, 0x06e6, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x081a, 0x081a, -0x0824, 0x0824, -0x0828, 0x0828, -0x0971, 0x0971, -0x0e46, 0x0e46, -0x0ec6, 0x0ec6, -0x10fc, 0x10fc, -0x17d7, 0x17d7, -0x1843, 0x1843, -0x1aa7, 0x1aa7, -0x1c78, 0x1c7d, -0x1d2c, 0x1d6a, -0x1d78, 0x1d78, -0x1d9b, 0x1dbf, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2c7c, 0x2c7d, -0x2d6f, 0x2d6f, -0x2e2f, 0x2e2f, -0x3005, 0x3005, -0x3031, 0x3035, -0x303b, 0x303b, -0x309d, 0x309e, -0x30fc, 0x30fe, -0xa015, 0xa015, -0xa4f8, 0xa4fd, -0xa60c, 0xa60c, -0xa67f, 0xa67f, -0xa69c, 0xa69d, -0xa717, 0xa71f, -0xa770, 0xa770, -0xa788, 0xa788, -0xa7f8, 0xa7f9, -0xa9cf, 0xa9cf, -0xa9e6, 0xa9e6, -0xaa70, 0xaa70, -0xaadd, 0xaadd, -0xaaf3, 0xaaf4, -0xab5c, 0xab5f, -0xff70, 0xff70, -0xff9e, 0xff9f, -0x16b40, 0x16b43, -0x16f93, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x1e137, 0x1e13d, -0x1e94b, 0x1e94b, -}; /* END of CR_Lm */ - -/* PROPERTY: 'Lo': General Category */ -static const OnigCodePoint -CR_Lo[] = { 476, -0x00aa, 0x00aa, -0x00ba, 0x00ba, -0x01bb, 0x01bb, -0x01c0, 0x01c3, -0x0294, 0x0294, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0620, 0x063f, -0x0641, 0x064a, -0x066e, 0x066f, -0x0671, 0x06d3, -0x06d5, 0x06d5, -0x06ee, 0x06ef, -0x06fa, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x0710, -0x0712, 0x072f, -0x074d, 0x07a5, -0x07b1, 0x07b1, -0x07ca, 0x07ea, -0x0800, 0x0815, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x0904, 0x0939, -0x093d, 0x093d, -0x0950, 0x0950, -0x0958, 0x0961, -0x0972, 0x0980, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09bd, -0x09ce, 0x09ce, -0x09dc, 0x09dd, -0x09df, 0x09e1, -0x09f0, 0x09f1, -0x09fc, 0x09fc, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a72, 0x0a74, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0abd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae1, -0x0af9, 0x0af9, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b3d, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b61, -0x0b71, 0x0b71, -0x0b83, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bd0, 0x0bd0, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c3d, -0x0c58, 0x0c5a, -0x0c60, 0x0c61, -0x0c80, 0x0c80, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cbd, -0x0cde, 0x0cde, -0x0ce0, 0x0ce1, -0x0cf1, 0x0cf2, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d3d, -0x0d4e, 0x0d4e, -0x0d54, 0x0d56, -0x0d5f, 0x0d61, -0x0d7a, 0x0d7f, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0e01, 0x0e30, -0x0e32, 0x0e33, -0x0e40, 0x0e45, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb0, -0x0eb2, 0x0eb3, -0x0ebd, 0x0ebd, -0x0ec0, 0x0ec4, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f88, 0x0f8c, -0x1000, 0x102a, -0x103f, 0x103f, -0x1050, 0x1055, -0x105a, 0x105d, -0x1061, 0x1061, -0x1065, 0x1066, -0x106e, 0x1070, -0x1075, 0x1081, -0x108e, 0x108e, -0x1100, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16f1, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1711, -0x1720, 0x1731, -0x1740, 0x1751, -0x1760, 0x176c, -0x176e, 0x1770, -0x1780, 0x17b3, -0x17dc, 0x17dc, -0x1820, 0x1842, -0x1844, 0x1878, -0x1880, 0x1884, -0x1887, 0x18a8, -0x18aa, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1950, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x1a00, 0x1a16, -0x1a20, 0x1a54, -0x1b05, 0x1b33, -0x1b45, 0x1b4b, -0x1b83, 0x1ba0, -0x1bae, 0x1baf, -0x1bba, 0x1be5, -0x1c00, 0x1c23, -0x1c4d, 0x1c4f, -0x1c5a, 0x1c77, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x2135, 0x2138, -0x2d30, 0x2d67, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x3006, 0x3006, -0x303c, 0x303c, -0x3041, 0x3096, -0x309f, 0x309f, -0x30a1, 0x30fa, -0x30ff, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa014, -0xa016, 0xa48c, -0xa4d0, 0xa4f7, -0xa500, 0xa60b, -0xa610, 0xa61f, -0xa62a, 0xa62b, -0xa66e, 0xa66e, -0xa6a0, 0xa6e5, -0xa78f, 0xa78f, -0xa7f7, 0xa7f7, -0xa7fb, 0xa801, -0xa803, 0xa805, -0xa807, 0xa80a, -0xa80c, 0xa822, -0xa840, 0xa873, -0xa882, 0xa8b3, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa8fe, -0xa90a, 0xa925, -0xa930, 0xa946, -0xa960, 0xa97c, -0xa984, 0xa9b2, -0xa9e0, 0xa9e4, -0xa9e7, 0xa9ef, -0xa9fa, 0xa9fe, -0xaa00, 0xaa28, -0xaa40, 0xaa42, -0xaa44, 0xaa4b, -0xaa60, 0xaa6f, -0xaa71, 0xaa76, -0xaa7a, 0xaa7a, -0xaa7e, 0xaaaf, -0xaab1, 0xaab1, -0xaab5, 0xaab6, -0xaab9, 0xaabd, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadc, -0xaae0, 0xaaea, -0xaaf2, 0xaaf2, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xabc0, 0xabe2, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb1d, 0xfb1d, -0xfb1f, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff66, 0xff6f, -0xff71, 0xff9d, -0xffa0, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x10340, -0x10342, 0x10349, -0x10350, 0x10375, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x10450, 0x1049d, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a00, -0x10a10, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10d00, 0x10d23, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11003, 0x11037, -0x11083, 0x110af, -0x110d0, 0x110e8, -0x11103, 0x11126, -0x11144, 0x11144, -0x11150, 0x11172, -0x11176, 0x11176, -0x11183, 0x111b2, -0x111c1, 0x111c4, -0x111da, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x1122b, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112de, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x1133d, -0x11350, 0x11350, -0x1135d, 0x11361, -0x11400, 0x11434, -0x11447, 0x1144a, -0x1145f, 0x1145f, -0x11480, 0x114af, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x11580, 0x115ae, -0x115d8, 0x115db, -0x11600, 0x1162f, -0x11644, 0x11644, -0x11680, 0x116aa, -0x116b8, 0x116b8, -0x11700, 0x1171a, -0x11800, 0x1182b, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d0, -0x119e1, 0x119e1, -0x119e3, 0x119e3, -0x11a00, 0x11a00, -0x11a0b, 0x11a32, -0x11a3a, 0x11a3a, -0x11a50, 0x11a50, -0x11a5c, 0x11a89, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c2e, -0x11c40, 0x11c40, -0x11c72, 0x11c8f, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d30, -0x11d46, 0x11d46, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d89, -0x11d98, 0x11d98, -0x11ee0, 0x11ef2, -0x12000, 0x12399, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16f00, 0x16f4a, -0x16f50, 0x16f50, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1e100, 0x1e12c, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e800, 0x1e8c4, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Lo */ - -/* PROPERTY: 'Logical_Order_Exception': Binary Property */ -static const OnigCodePoint -CR_Logical_Order_Exception[] = { 7, -0x0e40, 0x0e44, -0x0ec0, 0x0ec4, -0x19b5, 0x19b7, -0x19ba, 0x19ba, -0xaab5, 0xaab6, -0xaab9, 0xaab9, -0xaabb, 0xaabc, -}; /* END of CR_Logical_Order_Exception */ - -/* PROPERTY: 'Lowercase': Derived Property */ -#define CR_Lowercase CR_Lower - -/* PROPERTY: 'Lt': General Category */ -static const OnigCodePoint -CR_Lt[] = { 10, -0x01c5, 0x01c5, -0x01c8, 0x01c8, -0x01cb, 0x01cb, -0x01f2, 0x01f2, -0x1f88, 0x1f8f, -0x1f98, 0x1f9f, -0x1fa8, 0x1faf, -0x1fbc, 0x1fbc, -0x1fcc, 0x1fcc, -0x1ffc, 0x1ffc, -}; /* END of CR_Lt */ - -/* PROPERTY: 'Lu': General Category */ -static const OnigCodePoint -CR_Lu[] = { 636, -0x0041, 0x005a, -0x00c0, 0x00d6, -0x00d8, 0x00de, -0x0100, 0x0100, -0x0102, 0x0102, -0x0104, 0x0104, -0x0106, 0x0106, -0x0108, 0x0108, -0x010a, 0x010a, -0x010c, 0x010c, -0x010e, 0x010e, -0x0110, 0x0110, -0x0112, 0x0112, -0x0114, 0x0114, -0x0116, 0x0116, -0x0118, 0x0118, -0x011a, 0x011a, -0x011c, 0x011c, -0x011e, 0x011e, -0x0120, 0x0120, -0x0122, 0x0122, -0x0124, 0x0124, -0x0126, 0x0126, -0x0128, 0x0128, -0x012a, 0x012a, -0x012c, 0x012c, -0x012e, 0x012e, -0x0130, 0x0130, -0x0132, 0x0132, -0x0134, 0x0134, -0x0136, 0x0136, -0x0139, 0x0139, -0x013b, 0x013b, -0x013d, 0x013d, -0x013f, 0x013f, -0x0141, 0x0141, -0x0143, 0x0143, -0x0145, 0x0145, -0x0147, 0x0147, -0x014a, 0x014a, -0x014c, 0x014c, -0x014e, 0x014e, -0x0150, 0x0150, -0x0152, 0x0152, -0x0154, 0x0154, -0x0156, 0x0156, -0x0158, 0x0158, -0x015a, 0x015a, -0x015c, 0x015c, -0x015e, 0x015e, -0x0160, 0x0160, -0x0162, 0x0162, -0x0164, 0x0164, -0x0166, 0x0166, -0x0168, 0x0168, -0x016a, 0x016a, -0x016c, 0x016c, -0x016e, 0x016e, -0x0170, 0x0170, -0x0172, 0x0172, -0x0174, 0x0174, -0x0176, 0x0176, -0x0178, 0x0179, -0x017b, 0x017b, -0x017d, 0x017d, -0x0181, 0x0182, -0x0184, 0x0184, -0x0186, 0x0187, -0x0189, 0x018b, -0x018e, 0x0191, -0x0193, 0x0194, -0x0196, 0x0198, -0x019c, 0x019d, -0x019f, 0x01a0, -0x01a2, 0x01a2, -0x01a4, 0x01a4, -0x01a6, 0x01a7, -0x01a9, 0x01a9, -0x01ac, 0x01ac, -0x01ae, 0x01af, -0x01b1, 0x01b3, -0x01b5, 0x01b5, -0x01b7, 0x01b8, -0x01bc, 0x01bc, -0x01c4, 0x01c4, -0x01c7, 0x01c7, -0x01ca, 0x01ca, -0x01cd, 0x01cd, -0x01cf, 0x01cf, -0x01d1, 0x01d1, -0x01d3, 0x01d3, -0x01d5, 0x01d5, -0x01d7, 0x01d7, -0x01d9, 0x01d9, -0x01db, 0x01db, -0x01de, 0x01de, -0x01e0, 0x01e0, -0x01e2, 0x01e2, -0x01e4, 0x01e4, -0x01e6, 0x01e6, -0x01e8, 0x01e8, -0x01ea, 0x01ea, -0x01ec, 0x01ec, -0x01ee, 0x01ee, -0x01f1, 0x01f1, -0x01f4, 0x01f4, -0x01f6, 0x01f8, -0x01fa, 0x01fa, -0x01fc, 0x01fc, -0x01fe, 0x01fe, -0x0200, 0x0200, -0x0202, 0x0202, -0x0204, 0x0204, -0x0206, 0x0206, -0x0208, 0x0208, -0x020a, 0x020a, -0x020c, 0x020c, -0x020e, 0x020e, -0x0210, 0x0210, -0x0212, 0x0212, -0x0214, 0x0214, -0x0216, 0x0216, -0x0218, 0x0218, -0x021a, 0x021a, -0x021c, 0x021c, -0x021e, 0x021e, -0x0220, 0x0220, -0x0222, 0x0222, -0x0224, 0x0224, -0x0226, 0x0226, -0x0228, 0x0228, -0x022a, 0x022a, -0x022c, 0x022c, -0x022e, 0x022e, -0x0230, 0x0230, -0x0232, 0x0232, -0x023a, 0x023b, -0x023d, 0x023e, -0x0241, 0x0241, -0x0243, 0x0246, -0x0248, 0x0248, -0x024a, 0x024a, -0x024c, 0x024c, -0x024e, 0x024e, -0x0370, 0x0370, -0x0372, 0x0372, -0x0376, 0x0376, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x038f, -0x0391, 0x03a1, -0x03a3, 0x03ab, -0x03cf, 0x03cf, -0x03d2, 0x03d4, -0x03d8, 0x03d8, -0x03da, 0x03da, -0x03dc, 0x03dc, -0x03de, 0x03de, -0x03e0, 0x03e0, -0x03e2, 0x03e2, -0x03e4, 0x03e4, -0x03e6, 0x03e6, -0x03e8, 0x03e8, -0x03ea, 0x03ea, -0x03ec, 0x03ec, -0x03ee, 0x03ee, -0x03f4, 0x03f4, -0x03f7, 0x03f7, -0x03f9, 0x03fa, -0x03fd, 0x042f, -0x0460, 0x0460, -0x0462, 0x0462, -0x0464, 0x0464, -0x0466, 0x0466, -0x0468, 0x0468, -0x046a, 0x046a, -0x046c, 0x046c, -0x046e, 0x046e, -0x0470, 0x0470, -0x0472, 0x0472, -0x0474, 0x0474, -0x0476, 0x0476, -0x0478, 0x0478, -0x047a, 0x047a, -0x047c, 0x047c, -0x047e, 0x047e, -0x0480, 0x0480, -0x048a, 0x048a, -0x048c, 0x048c, -0x048e, 0x048e, -0x0490, 0x0490, -0x0492, 0x0492, -0x0494, 0x0494, -0x0496, 0x0496, -0x0498, 0x0498, -0x049a, 0x049a, -0x049c, 0x049c, -0x049e, 0x049e, -0x04a0, 0x04a0, -0x04a2, 0x04a2, -0x04a4, 0x04a4, -0x04a6, 0x04a6, -0x04a8, 0x04a8, -0x04aa, 0x04aa, -0x04ac, 0x04ac, -0x04ae, 0x04ae, -0x04b0, 0x04b0, -0x04b2, 0x04b2, -0x04b4, 0x04b4, -0x04b6, 0x04b6, -0x04b8, 0x04b8, -0x04ba, 0x04ba, -0x04bc, 0x04bc, -0x04be, 0x04be, -0x04c0, 0x04c1, -0x04c3, 0x04c3, -0x04c5, 0x04c5, -0x04c7, 0x04c7, -0x04c9, 0x04c9, -0x04cb, 0x04cb, -0x04cd, 0x04cd, -0x04d0, 0x04d0, -0x04d2, 0x04d2, -0x04d4, 0x04d4, -0x04d6, 0x04d6, -0x04d8, 0x04d8, -0x04da, 0x04da, -0x04dc, 0x04dc, -0x04de, 0x04de, -0x04e0, 0x04e0, -0x04e2, 0x04e2, -0x04e4, 0x04e4, -0x04e6, 0x04e6, -0x04e8, 0x04e8, -0x04ea, 0x04ea, -0x04ec, 0x04ec, -0x04ee, 0x04ee, -0x04f0, 0x04f0, -0x04f2, 0x04f2, -0x04f4, 0x04f4, -0x04f6, 0x04f6, -0x04f8, 0x04f8, -0x04fa, 0x04fa, -0x04fc, 0x04fc, -0x04fe, 0x04fe, -0x0500, 0x0500, -0x0502, 0x0502, -0x0504, 0x0504, -0x0506, 0x0506, -0x0508, 0x0508, -0x050a, 0x050a, -0x050c, 0x050c, -0x050e, 0x050e, -0x0510, 0x0510, -0x0512, 0x0512, -0x0514, 0x0514, -0x0516, 0x0516, -0x0518, 0x0518, -0x051a, 0x051a, -0x051c, 0x051c, -0x051e, 0x051e, -0x0520, 0x0520, -0x0522, 0x0522, -0x0524, 0x0524, -0x0526, 0x0526, -0x0528, 0x0528, -0x052a, 0x052a, -0x052c, 0x052c, -0x052e, 0x052e, -0x0531, 0x0556, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x13a0, 0x13f5, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1e00, 0x1e00, -0x1e02, 0x1e02, -0x1e04, 0x1e04, -0x1e06, 0x1e06, -0x1e08, 0x1e08, -0x1e0a, 0x1e0a, -0x1e0c, 0x1e0c, -0x1e0e, 0x1e0e, -0x1e10, 0x1e10, -0x1e12, 0x1e12, -0x1e14, 0x1e14, -0x1e16, 0x1e16, -0x1e18, 0x1e18, -0x1e1a, 0x1e1a, -0x1e1c, 0x1e1c, -0x1e1e, 0x1e1e, -0x1e20, 0x1e20, -0x1e22, 0x1e22, -0x1e24, 0x1e24, -0x1e26, 0x1e26, -0x1e28, 0x1e28, -0x1e2a, 0x1e2a, -0x1e2c, 0x1e2c, -0x1e2e, 0x1e2e, -0x1e30, 0x1e30, -0x1e32, 0x1e32, -0x1e34, 0x1e34, -0x1e36, 0x1e36, -0x1e38, 0x1e38, -0x1e3a, 0x1e3a, -0x1e3c, 0x1e3c, -0x1e3e, 0x1e3e, -0x1e40, 0x1e40, -0x1e42, 0x1e42, -0x1e44, 0x1e44, -0x1e46, 0x1e46, -0x1e48, 0x1e48, -0x1e4a, 0x1e4a, -0x1e4c, 0x1e4c, -0x1e4e, 0x1e4e, -0x1e50, 0x1e50, -0x1e52, 0x1e52, -0x1e54, 0x1e54, -0x1e56, 0x1e56, -0x1e58, 0x1e58, -0x1e5a, 0x1e5a, -0x1e5c, 0x1e5c, -0x1e5e, 0x1e5e, -0x1e60, 0x1e60, -0x1e62, 0x1e62, -0x1e64, 0x1e64, -0x1e66, 0x1e66, -0x1e68, 0x1e68, -0x1e6a, 0x1e6a, -0x1e6c, 0x1e6c, -0x1e6e, 0x1e6e, -0x1e70, 0x1e70, -0x1e72, 0x1e72, -0x1e74, 0x1e74, -0x1e76, 0x1e76, -0x1e78, 0x1e78, -0x1e7a, 0x1e7a, -0x1e7c, 0x1e7c, -0x1e7e, 0x1e7e, -0x1e80, 0x1e80, -0x1e82, 0x1e82, -0x1e84, 0x1e84, -0x1e86, 0x1e86, -0x1e88, 0x1e88, -0x1e8a, 0x1e8a, -0x1e8c, 0x1e8c, -0x1e8e, 0x1e8e, -0x1e90, 0x1e90, -0x1e92, 0x1e92, -0x1e94, 0x1e94, -0x1e9e, 0x1e9e, -0x1ea0, 0x1ea0, -0x1ea2, 0x1ea2, -0x1ea4, 0x1ea4, -0x1ea6, 0x1ea6, -0x1ea8, 0x1ea8, -0x1eaa, 0x1eaa, -0x1eac, 0x1eac, -0x1eae, 0x1eae, -0x1eb0, 0x1eb0, -0x1eb2, 0x1eb2, -0x1eb4, 0x1eb4, -0x1eb6, 0x1eb6, -0x1eb8, 0x1eb8, -0x1eba, 0x1eba, -0x1ebc, 0x1ebc, -0x1ebe, 0x1ebe, -0x1ec0, 0x1ec0, -0x1ec2, 0x1ec2, -0x1ec4, 0x1ec4, -0x1ec6, 0x1ec6, -0x1ec8, 0x1ec8, -0x1eca, 0x1eca, -0x1ecc, 0x1ecc, -0x1ece, 0x1ece, -0x1ed0, 0x1ed0, -0x1ed2, 0x1ed2, -0x1ed4, 0x1ed4, -0x1ed6, 0x1ed6, -0x1ed8, 0x1ed8, -0x1eda, 0x1eda, -0x1edc, 0x1edc, -0x1ede, 0x1ede, -0x1ee0, 0x1ee0, -0x1ee2, 0x1ee2, -0x1ee4, 0x1ee4, -0x1ee6, 0x1ee6, -0x1ee8, 0x1ee8, -0x1eea, 0x1eea, -0x1eec, 0x1eec, -0x1eee, 0x1eee, -0x1ef0, 0x1ef0, -0x1ef2, 0x1ef2, -0x1ef4, 0x1ef4, -0x1ef6, 0x1ef6, -0x1ef8, 0x1ef8, -0x1efa, 0x1efa, -0x1efc, 0x1efc, -0x1efe, 0x1efe, -0x1f08, 0x1f0f, -0x1f18, 0x1f1d, -0x1f28, 0x1f2f, -0x1f38, 0x1f3f, -0x1f48, 0x1f4d, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f5f, -0x1f68, 0x1f6f, -0x1fb8, 0x1fbb, -0x1fc8, 0x1fcb, -0x1fd8, 0x1fdb, -0x1fe8, 0x1fec, -0x1ff8, 0x1ffb, -0x2102, 0x2102, -0x2107, 0x2107, -0x210b, 0x210d, -0x2110, 0x2112, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x2130, 0x2133, -0x213e, 0x213f, -0x2145, 0x2145, -0x2183, 0x2183, -0x2c00, 0x2c2e, -0x2c60, 0x2c60, -0x2c62, 0x2c64, -0x2c67, 0x2c67, -0x2c69, 0x2c69, -0x2c6b, 0x2c6b, -0x2c6d, 0x2c70, -0x2c72, 0x2c72, -0x2c75, 0x2c75, -0x2c7e, 0x2c80, -0x2c82, 0x2c82, -0x2c84, 0x2c84, -0x2c86, 0x2c86, -0x2c88, 0x2c88, -0x2c8a, 0x2c8a, -0x2c8c, 0x2c8c, -0x2c8e, 0x2c8e, -0x2c90, 0x2c90, -0x2c92, 0x2c92, -0x2c94, 0x2c94, -0x2c96, 0x2c96, -0x2c98, 0x2c98, -0x2c9a, 0x2c9a, -0x2c9c, 0x2c9c, -0x2c9e, 0x2c9e, -0x2ca0, 0x2ca0, -0x2ca2, 0x2ca2, -0x2ca4, 0x2ca4, -0x2ca6, 0x2ca6, -0x2ca8, 0x2ca8, -0x2caa, 0x2caa, -0x2cac, 0x2cac, -0x2cae, 0x2cae, -0x2cb0, 0x2cb0, -0x2cb2, 0x2cb2, -0x2cb4, 0x2cb4, -0x2cb6, 0x2cb6, -0x2cb8, 0x2cb8, -0x2cba, 0x2cba, -0x2cbc, 0x2cbc, -0x2cbe, 0x2cbe, -0x2cc0, 0x2cc0, -0x2cc2, 0x2cc2, -0x2cc4, 0x2cc4, -0x2cc6, 0x2cc6, -0x2cc8, 0x2cc8, -0x2cca, 0x2cca, -0x2ccc, 0x2ccc, -0x2cce, 0x2cce, -0x2cd0, 0x2cd0, -0x2cd2, 0x2cd2, -0x2cd4, 0x2cd4, -0x2cd6, 0x2cd6, -0x2cd8, 0x2cd8, -0x2cda, 0x2cda, -0x2cdc, 0x2cdc, -0x2cde, 0x2cde, -0x2ce0, 0x2ce0, -0x2ce2, 0x2ce2, -0x2ceb, 0x2ceb, -0x2ced, 0x2ced, -0x2cf2, 0x2cf2, -0xa640, 0xa640, -0xa642, 0xa642, -0xa644, 0xa644, -0xa646, 0xa646, -0xa648, 0xa648, -0xa64a, 0xa64a, -0xa64c, 0xa64c, -0xa64e, 0xa64e, -0xa650, 0xa650, -0xa652, 0xa652, -0xa654, 0xa654, -0xa656, 0xa656, -0xa658, 0xa658, -0xa65a, 0xa65a, -0xa65c, 0xa65c, -0xa65e, 0xa65e, -0xa660, 0xa660, -0xa662, 0xa662, -0xa664, 0xa664, -0xa666, 0xa666, -0xa668, 0xa668, -0xa66a, 0xa66a, -0xa66c, 0xa66c, -0xa680, 0xa680, -0xa682, 0xa682, -0xa684, 0xa684, -0xa686, 0xa686, -0xa688, 0xa688, -0xa68a, 0xa68a, -0xa68c, 0xa68c, -0xa68e, 0xa68e, -0xa690, 0xa690, -0xa692, 0xa692, -0xa694, 0xa694, -0xa696, 0xa696, -0xa698, 0xa698, -0xa69a, 0xa69a, -0xa722, 0xa722, -0xa724, 0xa724, -0xa726, 0xa726, -0xa728, 0xa728, -0xa72a, 0xa72a, -0xa72c, 0xa72c, -0xa72e, 0xa72e, -0xa732, 0xa732, -0xa734, 0xa734, -0xa736, 0xa736, -0xa738, 0xa738, -0xa73a, 0xa73a, -0xa73c, 0xa73c, -0xa73e, 0xa73e, -0xa740, 0xa740, -0xa742, 0xa742, -0xa744, 0xa744, -0xa746, 0xa746, -0xa748, 0xa748, -0xa74a, 0xa74a, -0xa74c, 0xa74c, -0xa74e, 0xa74e, -0xa750, 0xa750, -0xa752, 0xa752, -0xa754, 0xa754, -0xa756, 0xa756, -0xa758, 0xa758, -0xa75a, 0xa75a, -0xa75c, 0xa75c, -0xa75e, 0xa75e, -0xa760, 0xa760, -0xa762, 0xa762, -0xa764, 0xa764, -0xa766, 0xa766, -0xa768, 0xa768, -0xa76a, 0xa76a, -0xa76c, 0xa76c, -0xa76e, 0xa76e, -0xa779, 0xa779, -0xa77b, 0xa77b, -0xa77d, 0xa77e, -0xa780, 0xa780, -0xa782, 0xa782, -0xa784, 0xa784, -0xa786, 0xa786, -0xa78b, 0xa78b, -0xa78d, 0xa78d, -0xa790, 0xa790, -0xa792, 0xa792, -0xa796, 0xa796, -0xa798, 0xa798, -0xa79a, 0xa79a, -0xa79c, 0xa79c, -0xa79e, 0xa79e, -0xa7a0, 0xa7a0, -0xa7a2, 0xa7a2, -0xa7a4, 0xa7a4, -0xa7a6, 0xa7a6, -0xa7a8, 0xa7a8, -0xa7aa, 0xa7ae, -0xa7b0, 0xa7b4, -0xa7b6, 0xa7b6, -0xa7b8, 0xa7b8, -0xa7ba, 0xa7ba, -0xa7bc, 0xa7bc, -0xa7be, 0xa7be, -0xa7c2, 0xa7c2, -0xa7c4, 0xa7c6, -0xff21, 0xff3a, -0x10400, 0x10427, -0x104b0, 0x104d3, -0x10c80, 0x10cb2, -0x118a0, 0x118bf, -0x16e40, 0x16e5f, -0x1d400, 0x1d419, -0x1d434, 0x1d44d, -0x1d468, 0x1d481, -0x1d49c, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b5, -0x1d4d0, 0x1d4e9, -0x1d504, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d538, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d56c, 0x1d585, -0x1d5a0, 0x1d5b9, -0x1d5d4, 0x1d5ed, -0x1d608, 0x1d621, -0x1d63c, 0x1d655, -0x1d670, 0x1d689, -0x1d6a8, 0x1d6c0, -0x1d6e2, 0x1d6fa, -0x1d71c, 0x1d734, -0x1d756, 0x1d76e, -0x1d790, 0x1d7a8, -0x1d7ca, 0x1d7ca, -0x1e900, 0x1e921, -}; /* END of CR_Lu */ - -/* PROPERTY: 'Lycian': Script */ -static const OnigCodePoint -CR_Lycian[] = { 1, -0x10280, 0x1029c, -}; /* END of CR_Lycian */ - -/* PROPERTY: 'Lydian': Script */ -static const OnigCodePoint -CR_Lydian[] = { 2, -0x10920, 0x10939, -0x1093f, 0x1093f, -}; /* END of CR_Lydian */ - -/* PROPERTY: 'M': Major Category */ -static const OnigCodePoint -CR_M[] = { 280, -0x0300, 0x036f, -0x0483, 0x0489, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x0610, 0x061a, -0x064b, 0x065f, -0x0670, 0x0670, -0x06d6, 0x06dc, -0x06df, 0x06e4, -0x06e7, 0x06e8, -0x06ea, 0x06ed, -0x0711, 0x0711, -0x0730, 0x074a, -0x07a6, 0x07b0, -0x07eb, 0x07f3, -0x07fd, 0x07fd, -0x0816, 0x0819, -0x081b, 0x0823, -0x0825, 0x0827, -0x0829, 0x082d, -0x0859, 0x085b, -0x08d3, 0x08e1, -0x08e3, 0x0903, -0x093a, 0x093c, -0x093e, 0x094f, -0x0951, 0x0957, -0x0962, 0x0963, -0x0981, 0x0983, -0x09bc, 0x09bc, -0x09be, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09cd, -0x09d7, 0x09d7, -0x09e2, 0x09e3, -0x09fe, 0x09fe, -0x0a01, 0x0a03, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a70, 0x0a71, -0x0a75, 0x0a75, -0x0a81, 0x0a83, -0x0abc, 0x0abc, -0x0abe, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ae2, 0x0ae3, -0x0afa, 0x0aff, -0x0b01, 0x0b03, -0x0b3c, 0x0b3c, -0x0b3e, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b62, 0x0b63, -0x0b82, 0x0b82, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd7, 0x0bd7, -0x0c00, 0x0c04, -0x0c3e, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c62, 0x0c63, -0x0c81, 0x0c83, -0x0cbc, 0x0cbc, -0x0cbe, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0ce2, 0x0ce3, -0x0d00, 0x0d03, -0x0d3b, 0x0d3c, -0x0d3e, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4d, -0x0d57, 0x0d57, -0x0d62, 0x0d63, -0x0d82, 0x0d83, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0df2, 0x0df3, -0x0e31, 0x0e31, -0x0e34, 0x0e3a, -0x0e47, 0x0e4e, -0x0eb1, 0x0eb1, -0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, -0x0f18, 0x0f19, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f3e, 0x0f3f, -0x0f71, 0x0f84, -0x0f86, 0x0f87, -0x0f8d, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x102b, 0x103e, -0x1056, 0x1059, -0x105e, 0x1060, -0x1062, 0x1064, -0x1067, 0x106d, -0x1071, 0x1074, -0x1082, 0x108d, -0x108f, 0x108f, -0x109a, 0x109d, -0x135d, 0x135f, -0x1712, 0x1714, -0x1732, 0x1734, -0x1752, 0x1753, -0x1772, 0x1773, -0x17b4, 0x17d3, -0x17dd, 0x17dd, -0x180b, 0x180d, -0x1885, 0x1886, -0x18a9, 0x18a9, -0x1920, 0x192b, -0x1930, 0x193b, -0x1a17, 0x1a1b, -0x1a55, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a7f, -0x1ab0, 0x1abe, -0x1b00, 0x1b04, -0x1b34, 0x1b44, -0x1b6b, 0x1b73, -0x1b80, 0x1b82, -0x1ba1, 0x1bad, -0x1be6, 0x1bf3, -0x1c24, 0x1c37, -0x1cd0, 0x1cd2, -0x1cd4, 0x1ce8, -0x1ced, 0x1ced, -0x1cf4, 0x1cf4, -0x1cf7, 0x1cf9, -0x1dc0, 0x1df9, -0x1dfb, 0x1dff, -0x20d0, 0x20f0, -0x2cef, 0x2cf1, -0x2d7f, 0x2d7f, -0x2de0, 0x2dff, -0x302a, 0x302f, -0x3099, 0x309a, -0xa66f, 0xa672, -0xa674, 0xa67d, -0xa69e, 0xa69f, -0xa6f0, 0xa6f1, -0xa802, 0xa802, -0xa806, 0xa806, -0xa80b, 0xa80b, -0xa823, 0xa827, -0xa880, 0xa881, -0xa8b4, 0xa8c5, -0xa8e0, 0xa8f1, -0xa8ff, 0xa8ff, -0xa926, 0xa92d, -0xa947, 0xa953, -0xa980, 0xa983, -0xa9b3, 0xa9c0, -0xa9e5, 0xa9e5, -0xaa29, 0xaa36, -0xaa43, 0xaa43, -0xaa4c, 0xaa4d, -0xaa7b, 0xaa7d, -0xaab0, 0xaab0, -0xaab2, 0xaab4, -0xaab7, 0xaab8, -0xaabe, 0xaabf, -0xaac1, 0xaac1, -0xaaeb, 0xaaef, -0xaaf5, 0xaaf6, -0xabe3, 0xabea, -0xabec, 0xabed, -0xfb1e, 0xfb1e, -0xfe00, 0xfe0f, -0xfe20, 0xfe2f, -0x101fd, 0x101fd, -0x102e0, 0x102e0, -0x10376, 0x1037a, -0x10a01, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a0f, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10ae5, 0x10ae6, -0x10d24, 0x10d27, -0x10f46, 0x10f50, -0x11000, 0x11002, -0x11038, 0x11046, -0x1107f, 0x11082, -0x110b0, 0x110ba, -0x11100, 0x11102, -0x11127, 0x11134, -0x11145, 0x11146, -0x11173, 0x11173, -0x11180, 0x11182, -0x111b3, 0x111c0, -0x111c9, 0x111cc, -0x1122c, 0x11237, -0x1123e, 0x1123e, -0x112df, 0x112ea, -0x11300, 0x11303, -0x1133b, 0x1133c, -0x1133e, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11357, 0x11357, -0x11362, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11435, 0x11446, -0x1145e, 0x1145e, -0x114b0, 0x114c3, -0x115af, 0x115b5, -0x115b8, 0x115c0, -0x115dc, 0x115dd, -0x11630, 0x11640, -0x116ab, 0x116b7, -0x1171d, 0x1172b, -0x1182c, 0x1183a, -0x119d1, 0x119d7, -0x119da, 0x119e0, -0x119e4, 0x119e4, -0x11a01, 0x11a0a, -0x11a33, 0x11a39, -0x11a3b, 0x11a3e, -0x11a47, 0x11a47, -0x11a51, 0x11a5b, -0x11a8a, 0x11a99, -0x11c2f, 0x11c36, -0x11c38, 0x11c3f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d31, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d45, -0x11d47, 0x11d47, -0x11d8a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d97, -0x11ef3, 0x11ef6, -0x16af0, 0x16af4, -0x16b30, 0x16b36, -0x16f4f, 0x16f4f, -0x16f51, 0x16f87, -0x16f8f, 0x16f92, -0x1bc9d, 0x1bc9e, -0x1d165, 0x1d169, -0x1d16d, 0x1d172, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e130, 0x1e136, -0x1e2ec, 0x1e2ef, -0x1e8d0, 0x1e8d6, -0x1e944, 0x1e94a, -0xe0100, 0xe01ef, -}; /* END of CR_M */ - -/* PROPERTY: 'Mahajani': Script */ -static const OnigCodePoint -CR_Mahajani[] = { 1, -0x11150, 0x11176, -}; /* END of CR_Mahajani */ - -/* PROPERTY: 'Makasar': Script */ -static const OnigCodePoint -CR_Makasar[] = { 1, -0x11ee0, 0x11ef8, -}; /* END of CR_Makasar */ - -/* PROPERTY: 'Malayalam': Script */ -static const OnigCodePoint -CR_Malayalam[] = { 8, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4f, -0x0d54, 0x0d63, -0x0d66, 0x0d7f, -}; /* END of CR_Malayalam */ - -/* PROPERTY: 'Mandaic': Script */ -static const OnigCodePoint -CR_Mandaic[] = { 2, -0x0840, 0x085b, -0x085e, 0x085e, -}; /* END of CR_Mandaic */ - -/* PROPERTY: 'Manichaean': Script */ -static const OnigCodePoint -CR_Manichaean[] = { 2, -0x10ac0, 0x10ae6, -0x10aeb, 0x10af6, -}; /* END of CR_Manichaean */ - -/* PROPERTY: 'Marchen': Script */ -static const OnigCodePoint -CR_Marchen[] = { 3, -0x11c70, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -}; /* END of CR_Marchen */ - -/* PROPERTY: 'Masaram_Gondi': Script */ -static const OnigCodePoint -CR_Masaram_Gondi[] = { 7, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -}; /* END of CR_Masaram_Gondi */ - -/* PROPERTY: 'Math': Derived Property */ -static const OnigCodePoint -CR_Math[] = { 138, -0x002b, 0x002b, -0x003c, 0x003e, -0x005e, 0x005e, -0x007c, 0x007c, -0x007e, 0x007e, -0x00ac, 0x00ac, -0x00b1, 0x00b1, -0x00d7, 0x00d7, -0x00f7, 0x00f7, -0x03d0, 0x03d2, -0x03d5, 0x03d5, -0x03f0, 0x03f1, -0x03f4, 0x03f6, -0x0606, 0x0608, -0x2016, 0x2016, -0x2032, 0x2034, -0x2040, 0x2040, -0x2044, 0x2044, -0x2052, 0x2052, -0x2061, 0x2064, -0x207a, 0x207e, -0x208a, 0x208e, -0x20d0, 0x20dc, -0x20e1, 0x20e1, -0x20e5, 0x20e6, -0x20eb, 0x20ef, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2118, 0x211d, -0x2124, 0x2124, -0x2128, 0x2129, -0x212c, 0x212d, -0x212f, 0x2131, -0x2133, 0x2138, -0x213c, 0x2149, -0x214b, 0x214b, -0x2190, 0x21a7, -0x21a9, 0x21ae, -0x21b0, 0x21b1, -0x21b6, 0x21b7, -0x21bc, 0x21db, -0x21dd, 0x21dd, -0x21e4, 0x21e5, -0x21f4, 0x22ff, -0x2308, 0x230b, -0x2320, 0x2321, -0x237c, 0x237c, -0x239b, 0x23b5, -0x23b7, 0x23b7, -0x23d0, 0x23d0, -0x23dc, 0x23e2, -0x25a0, 0x25a1, -0x25ae, 0x25b7, -0x25bc, 0x25c1, -0x25c6, 0x25c7, -0x25ca, 0x25cb, -0x25cf, 0x25d3, -0x25e2, 0x25e2, -0x25e4, 0x25e4, -0x25e7, 0x25ec, -0x25f8, 0x25ff, -0x2605, 0x2606, -0x2640, 0x2640, -0x2642, 0x2642, -0x2660, 0x2663, -0x266d, 0x266f, -0x27c0, 0x27ff, -0x2900, 0x2aff, -0x2b30, 0x2b44, -0x2b47, 0x2b4c, -0xfb29, 0xfb29, -0xfe61, 0xfe66, -0xfe68, 0xfe68, -0xff0b, 0xff0b, -0xff1c, 0xff1e, -0xff3c, 0xff3c, -0xff3e, 0xff3e, -0xff5c, 0xff5c, -0xff5e, 0xff5e, -0xffe2, 0xffe2, -0xffe9, 0xffec, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -}; /* END of CR_Math */ - -/* PROPERTY: 'Mc': General Category */ -static const OnigCodePoint -CR_Mc[] = { 168, -0x0903, 0x0903, -0x093b, 0x093b, -0x093e, 0x0940, -0x0949, 0x094c, -0x094e, 0x094f, -0x0982, 0x0983, -0x09be, 0x09c0, -0x09c7, 0x09c8, -0x09cb, 0x09cc, -0x09d7, 0x09d7, -0x0a03, 0x0a03, -0x0a3e, 0x0a40, -0x0a83, 0x0a83, -0x0abe, 0x0ac0, -0x0ac9, 0x0ac9, -0x0acb, 0x0acc, -0x0b02, 0x0b03, -0x0b3e, 0x0b3e, -0x0b40, 0x0b40, -0x0b47, 0x0b48, -0x0b4b, 0x0b4c, -0x0b57, 0x0b57, -0x0bbe, 0x0bbf, -0x0bc1, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcc, -0x0bd7, 0x0bd7, -0x0c01, 0x0c03, -0x0c41, 0x0c44, -0x0c82, 0x0c83, -0x0cbe, 0x0cbe, -0x0cc0, 0x0cc4, -0x0cc7, 0x0cc8, -0x0cca, 0x0ccb, -0x0cd5, 0x0cd6, -0x0d02, 0x0d03, -0x0d3e, 0x0d40, -0x0d46, 0x0d48, -0x0d4a, 0x0d4c, -0x0d57, 0x0d57, -0x0d82, 0x0d83, -0x0dcf, 0x0dd1, -0x0dd8, 0x0ddf, -0x0df2, 0x0df3, -0x0f3e, 0x0f3f, -0x0f7f, 0x0f7f, -0x102b, 0x102c, -0x1031, 0x1031, -0x1038, 0x1038, -0x103b, 0x103c, -0x1056, 0x1057, -0x1062, 0x1064, -0x1067, 0x106d, -0x1083, 0x1084, -0x1087, 0x108c, -0x108f, 0x108f, -0x109a, 0x109c, -0x17b6, 0x17b6, -0x17be, 0x17c5, -0x17c7, 0x17c8, -0x1923, 0x1926, -0x1929, 0x192b, -0x1930, 0x1931, -0x1933, 0x1938, -0x1a19, 0x1a1a, -0x1a55, 0x1a55, -0x1a57, 0x1a57, -0x1a61, 0x1a61, -0x1a63, 0x1a64, -0x1a6d, 0x1a72, -0x1b04, 0x1b04, -0x1b35, 0x1b35, -0x1b3b, 0x1b3b, -0x1b3d, 0x1b41, -0x1b43, 0x1b44, -0x1b82, 0x1b82, -0x1ba1, 0x1ba1, -0x1ba6, 0x1ba7, -0x1baa, 0x1baa, -0x1be7, 0x1be7, -0x1bea, 0x1bec, -0x1bee, 0x1bee, -0x1bf2, 0x1bf3, -0x1c24, 0x1c2b, -0x1c34, 0x1c35, -0x1ce1, 0x1ce1, -0x1cf7, 0x1cf7, -0x302e, 0x302f, -0xa823, 0xa824, -0xa827, 0xa827, -0xa880, 0xa881, -0xa8b4, 0xa8c3, -0xa952, 0xa953, -0xa983, 0xa983, -0xa9b4, 0xa9b5, -0xa9ba, 0xa9bb, -0xa9be, 0xa9c0, -0xaa2f, 0xaa30, -0xaa33, 0xaa34, -0xaa4d, 0xaa4d, -0xaa7b, 0xaa7b, -0xaa7d, 0xaa7d, -0xaaeb, 0xaaeb, -0xaaee, 0xaaef, -0xaaf5, 0xaaf5, -0xabe3, 0xabe4, -0xabe6, 0xabe7, -0xabe9, 0xabea, -0xabec, 0xabec, -0x11000, 0x11000, -0x11002, 0x11002, -0x11082, 0x11082, -0x110b0, 0x110b2, -0x110b7, 0x110b8, -0x1112c, 0x1112c, -0x11145, 0x11146, -0x11182, 0x11182, -0x111b3, 0x111b5, -0x111bf, 0x111c0, -0x1122c, 0x1122e, -0x11232, 0x11233, -0x11235, 0x11235, -0x112e0, 0x112e2, -0x11302, 0x11303, -0x1133e, 0x1133f, -0x11341, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11357, 0x11357, -0x11362, 0x11363, -0x11435, 0x11437, -0x11440, 0x11441, -0x11445, 0x11445, -0x114b0, 0x114b2, -0x114b9, 0x114b9, -0x114bb, 0x114be, -0x114c1, 0x114c1, -0x115af, 0x115b1, -0x115b8, 0x115bb, -0x115be, 0x115be, -0x11630, 0x11632, -0x1163b, 0x1163c, -0x1163e, 0x1163e, -0x116ac, 0x116ac, -0x116ae, 0x116af, -0x116b6, 0x116b6, -0x11720, 0x11721, -0x11726, 0x11726, -0x1182c, 0x1182e, -0x11838, 0x11838, -0x119d1, 0x119d3, -0x119dc, 0x119df, -0x119e4, 0x119e4, -0x11a39, 0x11a39, -0x11a57, 0x11a58, -0x11a97, 0x11a97, -0x11c2f, 0x11c2f, -0x11c3e, 0x11c3e, -0x11ca9, 0x11ca9, -0x11cb1, 0x11cb1, -0x11cb4, 0x11cb4, -0x11d8a, 0x11d8e, -0x11d93, 0x11d94, -0x11d96, 0x11d96, -0x11ef5, 0x11ef6, -0x16f51, 0x16f87, -0x1d165, 0x1d166, -0x1d16d, 0x1d172, -}; /* END of CR_Mc */ - -/* PROPERTY: 'Me': General Category */ -static const OnigCodePoint -CR_Me[] = { 5, -0x0488, 0x0489, -0x1abe, 0x1abe, -0x20dd, 0x20e0, -0x20e2, 0x20e4, -0xa670, 0xa672, -}; /* END of CR_Me */ - -/* PROPERTY: 'Medefaidrin': Script */ -static const OnigCodePoint -CR_Medefaidrin[] = { 1, -0x16e40, 0x16e9a, -}; /* END of CR_Medefaidrin */ - -/* PROPERTY: 'Meetei_Mayek': Script */ -static const OnigCodePoint -CR_Meetei_Mayek[] = { 3, -0xaae0, 0xaaf6, -0xabc0, 0xabed, -0xabf0, 0xabf9, -}; /* END of CR_Meetei_Mayek */ - -/* PROPERTY: 'Mende_Kikakui': Script */ -static const OnigCodePoint -CR_Mende_Kikakui[] = { 2, -0x1e800, 0x1e8c4, -0x1e8c7, 0x1e8d6, -}; /* END of CR_Mende_Kikakui */ - -/* PROPERTY: 'Meroitic_Cursive': Script */ -static const OnigCodePoint -CR_Meroitic_Cursive[] = { 3, -0x109a0, 0x109b7, -0x109bc, 0x109cf, -0x109d2, 0x109ff, -}; /* END of CR_Meroitic_Cursive */ - -/* PROPERTY: 'Meroitic_Hieroglyphs': Script */ -static const OnigCodePoint -CR_Meroitic_Hieroglyphs[] = { 1, -0x10980, 0x1099f, -}; /* END of CR_Meroitic_Hieroglyphs */ - -/* PROPERTY: 'Miao': Script */ -static const OnigCodePoint -CR_Miao[] = { 3, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -}; /* END of CR_Miao */ - -/* PROPERTY: 'Mn': General Category */ -static const OnigCodePoint -CR_Mn[] = { 318, -0x0300, 0x036f, -0x0483, 0x0487, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x0610, 0x061a, -0x064b, 0x065f, -0x0670, 0x0670, -0x06d6, 0x06dc, -0x06df, 0x06e4, -0x06e7, 0x06e8, -0x06ea, 0x06ed, -0x0711, 0x0711, -0x0730, 0x074a, -0x07a6, 0x07b0, -0x07eb, 0x07f3, -0x07fd, 0x07fd, -0x0816, 0x0819, -0x081b, 0x0823, -0x0825, 0x0827, -0x0829, 0x082d, -0x0859, 0x085b, -0x08d3, 0x08e1, -0x08e3, 0x0902, -0x093a, 0x093a, -0x093c, 0x093c, -0x0941, 0x0948, -0x094d, 0x094d, -0x0951, 0x0957, -0x0962, 0x0963, -0x0981, 0x0981, -0x09bc, 0x09bc, -0x09c1, 0x09c4, -0x09cd, 0x09cd, -0x09e2, 0x09e3, -0x09fe, 0x09fe, -0x0a01, 0x0a02, -0x0a3c, 0x0a3c, -0x0a41, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a70, 0x0a71, -0x0a75, 0x0a75, -0x0a81, 0x0a82, -0x0abc, 0x0abc, -0x0ac1, 0x0ac5, -0x0ac7, 0x0ac8, -0x0acd, 0x0acd, -0x0ae2, 0x0ae3, -0x0afa, 0x0aff, -0x0b01, 0x0b01, -0x0b3c, 0x0b3c, -0x0b3f, 0x0b3f, -0x0b41, 0x0b44, -0x0b4d, 0x0b4d, -0x0b56, 0x0b56, -0x0b62, 0x0b63, -0x0b82, 0x0b82, -0x0bc0, 0x0bc0, -0x0bcd, 0x0bcd, -0x0c00, 0x0c00, -0x0c04, 0x0c04, -0x0c3e, 0x0c40, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c62, 0x0c63, -0x0c81, 0x0c81, -0x0cbc, 0x0cbc, -0x0cbf, 0x0cbf, -0x0cc6, 0x0cc6, -0x0ccc, 0x0ccd, -0x0ce2, 0x0ce3, -0x0d00, 0x0d01, -0x0d3b, 0x0d3c, -0x0d41, 0x0d44, -0x0d4d, 0x0d4d, -0x0d62, 0x0d63, -0x0dca, 0x0dca, -0x0dd2, 0x0dd4, -0x0dd6, 0x0dd6, -0x0e31, 0x0e31, -0x0e34, 0x0e3a, -0x0e47, 0x0e4e, -0x0eb1, 0x0eb1, -0x0eb4, 0x0ebc, -0x0ec8, 0x0ecd, -0x0f18, 0x0f19, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f71, 0x0f7e, -0x0f80, 0x0f84, -0x0f86, 0x0f87, -0x0f8d, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x102d, 0x1030, -0x1032, 0x1037, -0x1039, 0x103a, -0x103d, 0x103e, -0x1058, 0x1059, -0x105e, 0x1060, -0x1071, 0x1074, -0x1082, 0x1082, -0x1085, 0x1086, -0x108d, 0x108d, -0x109d, 0x109d, -0x135d, 0x135f, -0x1712, 0x1714, -0x1732, 0x1734, -0x1752, 0x1753, -0x1772, 0x1773, -0x17b4, 0x17b5, -0x17b7, 0x17bd, -0x17c6, 0x17c6, -0x17c9, 0x17d3, -0x17dd, 0x17dd, -0x180b, 0x180d, -0x1885, 0x1886, -0x18a9, 0x18a9, -0x1920, 0x1922, -0x1927, 0x1928, -0x1932, 0x1932, -0x1939, 0x193b, -0x1a17, 0x1a18, -0x1a1b, 0x1a1b, -0x1a56, 0x1a56, -0x1a58, 0x1a5e, -0x1a60, 0x1a60, -0x1a62, 0x1a62, -0x1a65, 0x1a6c, -0x1a73, 0x1a7c, -0x1a7f, 0x1a7f, -0x1ab0, 0x1abd, -0x1b00, 0x1b03, -0x1b34, 0x1b34, -0x1b36, 0x1b3a, -0x1b3c, 0x1b3c, -0x1b42, 0x1b42, -0x1b6b, 0x1b73, -0x1b80, 0x1b81, -0x1ba2, 0x1ba5, -0x1ba8, 0x1ba9, -0x1bab, 0x1bad, -0x1be6, 0x1be6, -0x1be8, 0x1be9, -0x1bed, 0x1bed, -0x1bef, 0x1bf1, -0x1c2c, 0x1c33, -0x1c36, 0x1c37, -0x1cd0, 0x1cd2, -0x1cd4, 0x1ce0, -0x1ce2, 0x1ce8, -0x1ced, 0x1ced, -0x1cf4, 0x1cf4, -0x1cf8, 0x1cf9, -0x1dc0, 0x1df9, -0x1dfb, 0x1dff, -0x20d0, 0x20dc, -0x20e1, 0x20e1, -0x20e5, 0x20f0, -0x2cef, 0x2cf1, -0x2d7f, 0x2d7f, -0x2de0, 0x2dff, -0x302a, 0x302d, -0x3099, 0x309a, -0xa66f, 0xa66f, -0xa674, 0xa67d, -0xa69e, 0xa69f, -0xa6f0, 0xa6f1, -0xa802, 0xa802, -0xa806, 0xa806, -0xa80b, 0xa80b, -0xa825, 0xa826, -0xa8c4, 0xa8c5, -0xa8e0, 0xa8f1, -0xa8ff, 0xa8ff, -0xa926, 0xa92d, -0xa947, 0xa951, -0xa980, 0xa982, -0xa9b3, 0xa9b3, -0xa9b6, 0xa9b9, -0xa9bc, 0xa9bd, -0xa9e5, 0xa9e5, -0xaa29, 0xaa2e, -0xaa31, 0xaa32, -0xaa35, 0xaa36, -0xaa43, 0xaa43, -0xaa4c, 0xaa4c, -0xaa7c, 0xaa7c, -0xaab0, 0xaab0, -0xaab2, 0xaab4, -0xaab7, 0xaab8, -0xaabe, 0xaabf, -0xaac1, 0xaac1, -0xaaec, 0xaaed, -0xaaf6, 0xaaf6, -0xabe5, 0xabe5, -0xabe8, 0xabe8, -0xabed, 0xabed, -0xfb1e, 0xfb1e, -0xfe00, 0xfe0f, -0xfe20, 0xfe2f, -0x101fd, 0x101fd, -0x102e0, 0x102e0, -0x10376, 0x1037a, -0x10a01, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a0f, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10ae5, 0x10ae6, -0x10d24, 0x10d27, -0x10f46, 0x10f50, -0x11001, 0x11001, -0x11038, 0x11046, -0x1107f, 0x11081, -0x110b3, 0x110b6, -0x110b9, 0x110ba, -0x11100, 0x11102, -0x11127, 0x1112b, -0x1112d, 0x11134, -0x11173, 0x11173, -0x11180, 0x11181, -0x111b6, 0x111be, -0x111c9, 0x111cc, -0x1122f, 0x11231, -0x11234, 0x11234, -0x11236, 0x11237, -0x1123e, 0x1123e, -0x112df, 0x112df, -0x112e3, 0x112ea, -0x11300, 0x11301, -0x1133b, 0x1133c, -0x11340, 0x11340, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11438, 0x1143f, -0x11442, 0x11444, -0x11446, 0x11446, -0x1145e, 0x1145e, -0x114b3, 0x114b8, -0x114ba, 0x114ba, -0x114bf, 0x114c0, -0x114c2, 0x114c3, -0x115b2, 0x115b5, -0x115bc, 0x115bd, -0x115bf, 0x115c0, -0x115dc, 0x115dd, -0x11633, 0x1163a, -0x1163d, 0x1163d, -0x1163f, 0x11640, -0x116ab, 0x116ab, -0x116ad, 0x116ad, -0x116b0, 0x116b5, -0x116b7, 0x116b7, -0x1171d, 0x1171f, -0x11722, 0x11725, -0x11727, 0x1172b, -0x1182f, 0x11837, -0x11839, 0x1183a, -0x119d4, 0x119d7, -0x119da, 0x119db, -0x119e0, 0x119e0, -0x11a01, 0x11a0a, -0x11a33, 0x11a38, -0x11a3b, 0x11a3e, -0x11a47, 0x11a47, -0x11a51, 0x11a56, -0x11a59, 0x11a5b, -0x11a8a, 0x11a96, -0x11a98, 0x11a99, -0x11c30, 0x11c36, -0x11c38, 0x11c3d, -0x11c3f, 0x11c3f, -0x11c92, 0x11ca7, -0x11caa, 0x11cb0, -0x11cb2, 0x11cb3, -0x11cb5, 0x11cb6, -0x11d31, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d45, -0x11d47, 0x11d47, -0x11d90, 0x11d91, -0x11d95, 0x11d95, -0x11d97, 0x11d97, -0x11ef3, 0x11ef4, -0x16af0, 0x16af4, -0x16b30, 0x16b36, -0x16f4f, 0x16f4f, -0x16f8f, 0x16f92, -0x1bc9d, 0x1bc9e, -0x1d167, 0x1d169, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e130, 0x1e136, -0x1e2ec, 0x1e2ef, -0x1e8d0, 0x1e8d6, -0x1e944, 0x1e94a, -0xe0100, 0xe01ef, -}; /* END of CR_Mn */ - -/* PROPERTY: 'Modi': Script */ -static const OnigCodePoint -CR_Modi[] = { 2, -0x11600, 0x11644, -0x11650, 0x11659, -}; /* END of CR_Modi */ - -/* PROPERTY: 'Mongolian': Script */ -static const OnigCodePoint -CR_Mongolian[] = { 7, -0x1800, 0x1801, -0x1804, 0x1804, -0x1806, 0x180e, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x11660, 0x1166c, -}; /* END of CR_Mongolian */ - -/* PROPERTY: 'Mro': Script */ -static const OnigCodePoint -CR_Mro[] = { 3, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16a6e, 0x16a6f, -}; /* END of CR_Mro */ - -/* PROPERTY: 'Multani': Script */ -static const OnigCodePoint -CR_Multani[] = { 5, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a9, -}; /* END of CR_Multani */ - -/* PROPERTY: 'Myanmar': Script */ -static const OnigCodePoint -CR_Myanmar[] = { 3, -0x1000, 0x109f, -0xa9e0, 0xa9fe, -0xaa60, 0xaa7f, -}; /* END of CR_Myanmar */ - -/* PROPERTY: 'N': Major Category */ -static const OnigCodePoint -CR_N[] = { 130, -0x0030, 0x0039, -0x00b2, 0x00b3, -0x00b9, 0x00b9, -0x00bc, 0x00be, -0x0660, 0x0669, -0x06f0, 0x06f9, -0x07c0, 0x07c9, -0x0966, 0x096f, -0x09e6, 0x09ef, -0x09f4, 0x09f9, -0x0a66, 0x0a6f, -0x0ae6, 0x0aef, -0x0b66, 0x0b6f, -0x0b72, 0x0b77, -0x0be6, 0x0bf2, -0x0c66, 0x0c6f, -0x0c78, 0x0c7e, -0x0ce6, 0x0cef, -0x0d58, 0x0d5e, -0x0d66, 0x0d78, -0x0de6, 0x0def, -0x0e50, 0x0e59, -0x0ed0, 0x0ed9, -0x0f20, 0x0f33, -0x1040, 0x1049, -0x1090, 0x1099, -0x1369, 0x137c, -0x16ee, 0x16f0, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x1810, 0x1819, -0x1946, 0x194f, -0x19d0, 0x19da, -0x1a80, 0x1a89, -0x1a90, 0x1a99, -0x1b50, 0x1b59, -0x1bb0, 0x1bb9, -0x1c40, 0x1c49, -0x1c50, 0x1c59, -0x2070, 0x2070, -0x2074, 0x2079, -0x2080, 0x2089, -0x2150, 0x2182, -0x2185, 0x2189, -0x2460, 0x249b, -0x24ea, 0x24ff, -0x2776, 0x2793, -0x2cfd, 0x2cfd, -0x3007, 0x3007, -0x3021, 0x3029, -0x3038, 0x303a, -0x3192, 0x3195, -0x3220, 0x3229, -0x3248, 0x324f, -0x3251, 0x325f, -0x3280, 0x3289, -0x32b1, 0x32bf, -0xa620, 0xa629, -0xa6e6, 0xa6ef, -0xa830, 0xa835, -0xa8d0, 0xa8d9, -0xa900, 0xa909, -0xa9d0, 0xa9d9, -0xa9f0, 0xa9f9, -0xaa50, 0xaa59, -0xabf0, 0xabf9, -0xff10, 0xff19, -0x10107, 0x10133, -0x10140, 0x10178, -0x1018a, 0x1018b, -0x102e1, 0x102fb, -0x10320, 0x10323, -0x10341, 0x10341, -0x1034a, 0x1034a, -0x103d1, 0x103d5, -0x104a0, 0x104a9, -0x10858, 0x1085f, -0x10879, 0x1087f, -0x108a7, 0x108af, -0x108fb, 0x108ff, -0x10916, 0x1091b, -0x109bc, 0x109bd, -0x109c0, 0x109cf, -0x109d2, 0x109ff, -0x10a40, 0x10a48, -0x10a7d, 0x10a7e, -0x10a9d, 0x10a9f, -0x10aeb, 0x10aef, -0x10b58, 0x10b5f, -0x10b78, 0x10b7f, -0x10ba9, 0x10baf, -0x10cfa, 0x10cff, -0x10d30, 0x10d39, -0x10e60, 0x10e7e, -0x10f1d, 0x10f26, -0x10f51, 0x10f54, -0x11052, 0x1106f, -0x110f0, 0x110f9, -0x11136, 0x1113f, -0x111d0, 0x111d9, -0x111e1, 0x111f4, -0x112f0, 0x112f9, -0x11450, 0x11459, -0x114d0, 0x114d9, -0x11650, 0x11659, -0x116c0, 0x116c9, -0x11730, 0x1173b, -0x118e0, 0x118f2, -0x11c50, 0x11c6c, -0x11d50, 0x11d59, -0x11da0, 0x11da9, -0x11fc0, 0x11fd4, -0x12400, 0x1246e, -0x16a60, 0x16a69, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16e80, 0x16e96, -0x1d2e0, 0x1d2f3, -0x1d360, 0x1d378, -0x1d7ce, 0x1d7ff, -0x1e140, 0x1e149, -0x1e2f0, 0x1e2f9, -0x1e8c7, 0x1e8cf, -0x1e950, 0x1e959, -0x1ec71, 0x1ecab, -0x1ecad, 0x1ecaf, -0x1ecb1, 0x1ecb4, -0x1ed01, 0x1ed2d, -0x1ed2f, 0x1ed3d, -0x1f100, 0x1f10c, -}; /* END of CR_N */ - -/* PROPERTY: 'Nabataean': Script */ -static const OnigCodePoint -CR_Nabataean[] = { 2, -0x10880, 0x1089e, -0x108a7, 0x108af, -}; /* END of CR_Nabataean */ - -/* PROPERTY: 'Nandinagari': Script */ -static const OnigCodePoint -CR_Nandinagari[] = { 3, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e4, -}; /* END of CR_Nandinagari */ - -/* PROPERTY: 'Nd': General Category */ -#define CR_Nd CR_Digit - -/* PROPERTY: 'New_Tai_Lue': Script */ -static const OnigCodePoint -CR_New_Tai_Lue[] = { 4, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x19de, 0x19df, -}; /* END of CR_New_Tai_Lue */ - -/* PROPERTY: 'Newa': Script */ -static const OnigCodePoint -CR_Newa[] = { 3, -0x11400, 0x11459, -0x1145b, 0x1145b, -0x1145d, 0x1145f, -}; /* END of CR_Newa */ - -/* PROPERTY: 'Nko': Script */ -static const OnigCodePoint -CR_Nko[] = { 2, -0x07c0, 0x07fa, -0x07fd, 0x07ff, -}; /* END of CR_Nko */ - -/* PROPERTY: 'Nl': General Category */ -static const OnigCodePoint -CR_Nl[] = { 12, -0x16ee, 0x16f0, -0x2160, 0x2182, -0x2185, 0x2188, -0x3007, 0x3007, -0x3021, 0x3029, -0x3038, 0x303a, -0xa6e6, 0xa6ef, -0x10140, 0x10174, -0x10341, 0x10341, -0x1034a, 0x1034a, -0x103d1, 0x103d5, -0x12400, 0x1246e, -}; /* END of CR_Nl */ - -/* PROPERTY: 'No': General Category */ -static const OnigCodePoint -CR_No[] = { 70, -0x00b2, 0x00b3, -0x00b9, 0x00b9, -0x00bc, 0x00be, -0x09f4, 0x09f9, -0x0b72, 0x0b77, -0x0bf0, 0x0bf2, -0x0c78, 0x0c7e, -0x0d58, 0x0d5e, -0x0d70, 0x0d78, -0x0f2a, 0x0f33, -0x1369, 0x137c, -0x17f0, 0x17f9, -0x19da, 0x19da, -0x2070, 0x2070, -0x2074, 0x2079, -0x2080, 0x2089, -0x2150, 0x215f, -0x2189, 0x2189, -0x2460, 0x249b, -0x24ea, 0x24ff, -0x2776, 0x2793, -0x2cfd, 0x2cfd, -0x3192, 0x3195, -0x3220, 0x3229, -0x3248, 0x324f, -0x3251, 0x325f, -0x3280, 0x3289, -0x32b1, 0x32bf, -0xa830, 0xa835, -0x10107, 0x10133, -0x10175, 0x10178, -0x1018a, 0x1018b, -0x102e1, 0x102fb, -0x10320, 0x10323, -0x10858, 0x1085f, -0x10879, 0x1087f, -0x108a7, 0x108af, -0x108fb, 0x108ff, -0x10916, 0x1091b, -0x109bc, 0x109bd, -0x109c0, 0x109cf, -0x109d2, 0x109ff, -0x10a40, 0x10a48, -0x10a7d, 0x10a7e, -0x10a9d, 0x10a9f, -0x10aeb, 0x10aef, -0x10b58, 0x10b5f, -0x10b78, 0x10b7f, -0x10ba9, 0x10baf, -0x10cfa, 0x10cff, -0x10e60, 0x10e7e, -0x10f1d, 0x10f26, -0x10f51, 0x10f54, -0x11052, 0x11065, -0x111e1, 0x111f4, -0x1173a, 0x1173b, -0x118ea, 0x118f2, -0x11c5a, 0x11c6c, -0x11fc0, 0x11fd4, -0x16b5b, 0x16b61, -0x16e80, 0x16e96, -0x1d2e0, 0x1d2f3, -0x1d360, 0x1d378, -0x1e8c7, 0x1e8cf, -0x1ec71, 0x1ecab, -0x1ecad, 0x1ecaf, -0x1ecb1, 0x1ecb4, -0x1ed01, 0x1ed2d, -0x1ed2f, 0x1ed3d, -0x1f100, 0x1f10c, -}; /* END of CR_No */ - -/* PROPERTY: 'Noncharacter_Code_Point': Binary Property */ -static const OnigCodePoint -CR_Noncharacter_Code_Point[] = { 18, -0xfdd0, 0xfdef, -0xfffe, 0xffff, -0x1fffe, 0x1ffff, -0x2fffe, 0x2ffff, -0x3fffe, 0x3ffff, -0x4fffe, 0x4ffff, -0x5fffe, 0x5ffff, -0x6fffe, 0x6ffff, -0x7fffe, 0x7ffff, -0x8fffe, 0x8ffff, -0x9fffe, 0x9ffff, -0xafffe, 0xaffff, -0xbfffe, 0xbffff, -0xcfffe, 0xcffff, -0xdfffe, 0xdffff, -0xefffe, 0xeffff, -0xffffe, 0xfffff, -0x10fffe, 0x10ffff, -}; /* END of CR_Noncharacter_Code_Point */ - -/* PROPERTY: 'Nushu': Script */ -static const OnigCodePoint -CR_Nushu[] = { 2, -0x16fe1, 0x16fe1, -0x1b170, 0x1b2fb, -}; /* END of CR_Nushu */ - -/* PROPERTY: 'Nyiakeng_Puachue_Hmong': Script */ -static const OnigCodePoint -CR_Nyiakeng_Puachue_Hmong[] = { 4, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14f, -}; /* END of CR_Nyiakeng_Puachue_Hmong */ - -/* PROPERTY: 'Ogham': Script */ -static const OnigCodePoint -CR_Ogham[] = { 1, -0x1680, 0x169c, -}; /* END of CR_Ogham */ - -/* PROPERTY: 'Ol_Chiki': Script */ -static const OnigCodePoint -CR_Ol_Chiki[] = { 1, -0x1c50, 0x1c7f, -}; /* END of CR_Ol_Chiki */ - -/* PROPERTY: 'Old_Hungarian': Script */ -static const OnigCodePoint -CR_Old_Hungarian[] = { 3, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10cfa, 0x10cff, -}; /* END of CR_Old_Hungarian */ - -/* PROPERTY: 'Old_Italic': Script */ -static const OnigCodePoint -CR_Old_Italic[] = { 2, -0x10300, 0x10323, -0x1032d, 0x1032f, -}; /* END of CR_Old_Italic */ - -/* PROPERTY: 'Old_North_Arabian': Script */ -static const OnigCodePoint -CR_Old_North_Arabian[] = { 1, -0x10a80, 0x10a9f, -}; /* END of CR_Old_North_Arabian */ - -/* PROPERTY: 'Old_Permic': Script */ -static const OnigCodePoint -CR_Old_Permic[] = { 1, -0x10350, 0x1037a, -}; /* END of CR_Old_Permic */ - -/* PROPERTY: 'Old_Persian': Script */ -static const OnigCodePoint -CR_Old_Persian[] = { 2, -0x103a0, 0x103c3, -0x103c8, 0x103d5, -}; /* END of CR_Old_Persian */ - -/* PROPERTY: 'Old_Sogdian': Script */ -static const OnigCodePoint -CR_Old_Sogdian[] = { 1, -0x10f00, 0x10f27, -}; /* END of CR_Old_Sogdian */ - -/* PROPERTY: 'Old_South_Arabian': Script */ -static const OnigCodePoint -CR_Old_South_Arabian[] = { 1, -0x10a60, 0x10a7f, -}; /* END of CR_Old_South_Arabian */ - -/* PROPERTY: 'Old_Turkic': Script */ -static const OnigCodePoint -CR_Old_Turkic[] = { 1, -0x10c00, 0x10c48, -}; /* END of CR_Old_Turkic */ - -/* PROPERTY: 'Oriya': Script */ -static const OnigCodePoint -CR_Oriya[] = { 14, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b77, -}; /* END of CR_Oriya */ - -/* PROPERTY: 'Osage': Script */ -static const OnigCodePoint -CR_Osage[] = { 2, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -}; /* END of CR_Osage */ - -/* PROPERTY: 'Osmanya': Script */ -static const OnigCodePoint -CR_Osmanya[] = { 2, -0x10480, 0x1049d, -0x104a0, 0x104a9, -}; /* END of CR_Osmanya */ - -/* PROPERTY: 'Other_Alphabetic': Binary Property */ -static const OnigCodePoint -CR_Other_Alphabetic[] = { 221, -0x0345, 0x0345, -0x05b0, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x0610, 0x061a, -0x064b, 0x0657, -0x0659, 0x065f, -0x0670, 0x0670, -0x06d6, 0x06dc, -0x06e1, 0x06e4, -0x06e7, 0x06e8, -0x06ed, 0x06ed, -0x0711, 0x0711, -0x0730, 0x073f, -0x07a6, 0x07b0, -0x0816, 0x0817, -0x081b, 0x0823, -0x0825, 0x0827, -0x0829, 0x082c, -0x08d4, 0x08df, -0x08e3, 0x08e9, -0x08f0, 0x0903, -0x093a, 0x093b, -0x093e, 0x094c, -0x094e, 0x094f, -0x0955, 0x0957, -0x0962, 0x0963, -0x0981, 0x0983, -0x09be, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09cc, -0x09d7, 0x09d7, -0x09e2, 0x09e3, -0x0a01, 0x0a03, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4c, -0x0a51, 0x0a51, -0x0a70, 0x0a71, -0x0a75, 0x0a75, -0x0a81, 0x0a83, -0x0abe, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acc, -0x0ae2, 0x0ae3, -0x0afa, 0x0afc, -0x0b01, 0x0b03, -0x0b3e, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4c, -0x0b56, 0x0b57, -0x0b62, 0x0b63, -0x0b82, 0x0b82, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcc, -0x0bd7, 0x0bd7, -0x0c00, 0x0c03, -0x0c3e, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4c, -0x0c55, 0x0c56, -0x0c62, 0x0c63, -0x0c81, 0x0c83, -0x0cbe, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccc, -0x0cd5, 0x0cd6, -0x0ce2, 0x0ce3, -0x0d00, 0x0d03, -0x0d3e, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4c, -0x0d57, 0x0d57, -0x0d62, 0x0d63, -0x0d82, 0x0d83, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0df2, 0x0df3, -0x0e31, 0x0e31, -0x0e34, 0x0e3a, -0x0e4d, 0x0e4d, -0x0eb1, 0x0eb1, -0x0eb4, 0x0eb9, -0x0ebb, 0x0ebc, -0x0ecd, 0x0ecd, -0x0f71, 0x0f81, -0x0f8d, 0x0f97, -0x0f99, 0x0fbc, -0x102b, 0x1036, -0x1038, 0x1038, -0x103b, 0x103e, -0x1056, 0x1059, -0x105e, 0x1060, -0x1062, 0x1064, -0x1067, 0x106d, -0x1071, 0x1074, -0x1082, 0x108d, -0x108f, 0x108f, -0x109a, 0x109d, -0x1712, 0x1713, -0x1732, 0x1733, -0x1752, 0x1753, -0x1772, 0x1773, -0x17b6, 0x17c8, -0x1885, 0x1886, -0x18a9, 0x18a9, -0x1920, 0x192b, -0x1930, 0x1938, -0x1a17, 0x1a1b, -0x1a55, 0x1a5e, -0x1a61, 0x1a74, -0x1b00, 0x1b04, -0x1b35, 0x1b43, -0x1b80, 0x1b82, -0x1ba1, 0x1ba9, -0x1bac, 0x1bad, -0x1be7, 0x1bf1, -0x1c24, 0x1c36, -0x1de7, 0x1df4, -0x24b6, 0x24e9, -0x2de0, 0x2dff, -0xa674, 0xa67b, -0xa69e, 0xa69f, -0xa802, 0xa802, -0xa80b, 0xa80b, -0xa823, 0xa827, -0xa880, 0xa881, -0xa8b4, 0xa8c3, -0xa8c5, 0xa8c5, -0xa8ff, 0xa8ff, -0xa926, 0xa92a, -0xa947, 0xa952, -0xa980, 0xa983, -0xa9b4, 0xa9bf, -0xa9e5, 0xa9e5, -0xaa29, 0xaa36, -0xaa43, 0xaa43, -0xaa4c, 0xaa4d, -0xaa7b, 0xaa7d, -0xaab0, 0xaab0, -0xaab2, 0xaab4, -0xaab7, 0xaab8, -0xaabe, 0xaabe, -0xaaeb, 0xaaef, -0xaaf5, 0xaaf5, -0xabe3, 0xabea, -0xfb1e, 0xfb1e, -0x10376, 0x1037a, -0x10a01, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a0f, -0x10d24, 0x10d27, -0x11000, 0x11002, -0x11038, 0x11045, -0x11082, 0x11082, -0x110b0, 0x110b8, -0x11100, 0x11102, -0x11127, 0x11132, -0x11145, 0x11146, -0x11180, 0x11182, -0x111b3, 0x111bf, -0x1122c, 0x11234, -0x11237, 0x11237, -0x1123e, 0x1123e, -0x112df, 0x112e8, -0x11300, 0x11303, -0x1133e, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134c, -0x11357, 0x11357, -0x11362, 0x11363, -0x11435, 0x11441, -0x11443, 0x11445, -0x114b0, 0x114c1, -0x115af, 0x115b5, -0x115b8, 0x115be, -0x115dc, 0x115dd, -0x11630, 0x1163e, -0x11640, 0x11640, -0x116ab, 0x116b5, -0x1171d, 0x1172a, -0x1182c, 0x11838, -0x119d1, 0x119d7, -0x119da, 0x119df, -0x119e4, 0x119e4, -0x11a01, 0x11a0a, -0x11a35, 0x11a39, -0x11a3b, 0x11a3e, -0x11a51, 0x11a5b, -0x11a8a, 0x11a97, -0x11c2f, 0x11c36, -0x11c38, 0x11c3e, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d31, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d41, -0x11d43, 0x11d43, -0x11d47, 0x11d47, -0x11d8a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d96, -0x11ef3, 0x11ef6, -0x16f4f, 0x16f4f, -0x16f51, 0x16f87, -0x16f8f, 0x16f92, -0x1bc9e, 0x1bc9e, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e947, 0x1e947, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -}; /* END of CR_Other_Alphabetic */ - -/* PROPERTY: 'Other_Default_Ignorable_Code_Point': Binary Property */ -static const OnigCodePoint -CR_Other_Default_Ignorable_Code_Point[] = { 11, -0x034f, 0x034f, -0x115f, 0x1160, -0x17b4, 0x17b5, -0x2065, 0x2065, -0x3164, 0x3164, -0xffa0, 0xffa0, -0xfff0, 0xfff8, -0xe0000, 0xe0000, -0xe0002, 0xe001f, -0xe0080, 0xe00ff, -0xe01f0, 0xe0fff, -}; /* END of CR_Other_Default_Ignorable_Code_Point */ - -/* PROPERTY: 'Other_Grapheme_Extend': Binary Property */ -static const OnigCodePoint -CR_Other_Grapheme_Extend[] = { 24, -0x09be, 0x09be, -0x09d7, 0x09d7, -0x0b3e, 0x0b3e, -0x0b57, 0x0b57, -0x0bbe, 0x0bbe, -0x0bd7, 0x0bd7, -0x0cc2, 0x0cc2, -0x0cd5, 0x0cd6, -0x0d3e, 0x0d3e, -0x0d57, 0x0d57, -0x0dcf, 0x0dcf, -0x0ddf, 0x0ddf, -0x1b35, 0x1b35, -0x200c, 0x200c, -0x302e, 0x302f, -0xff9e, 0xff9f, -0x1133e, 0x1133e, -0x11357, 0x11357, -0x114b0, 0x114b0, -0x114bd, 0x114bd, -0x115af, 0x115af, -0x1d165, 0x1d165, -0x1d16e, 0x1d172, -0xe0020, 0xe007f, -}; /* END of CR_Other_Grapheme_Extend */ - -/* PROPERTY: 'Other_ID_Continue': Binary Property */ -static const OnigCodePoint -CR_Other_ID_Continue[] = { 4, -0x00b7, 0x00b7, -0x0387, 0x0387, -0x1369, 0x1371, -0x19da, 0x19da, -}; /* END of CR_Other_ID_Continue */ - -/* PROPERTY: 'Other_ID_Start': Binary Property */ -static const OnigCodePoint -CR_Other_ID_Start[] = { 4, -0x1885, 0x1886, -0x2118, 0x2118, -0x212e, 0x212e, -0x309b, 0x309c, -}; /* END of CR_Other_ID_Start */ - -/* PROPERTY: 'Other_Lowercase': Binary Property */ -static const OnigCodePoint -CR_Other_Lowercase[] = { 20, -0x00aa, 0x00aa, -0x00ba, 0x00ba, -0x02b0, 0x02b8, -0x02c0, 0x02c1, -0x02e0, 0x02e4, -0x0345, 0x0345, -0x037a, 0x037a, -0x1d2c, 0x1d6a, -0x1d78, 0x1d78, -0x1d9b, 0x1dbf, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2170, 0x217f, -0x24d0, 0x24e9, -0x2c7c, 0x2c7d, -0xa69c, 0xa69d, -0xa770, 0xa770, -0xa7f8, 0xa7f9, -0xab5c, 0xab5f, -}; /* END of CR_Other_Lowercase */ - -/* PROPERTY: 'Other_Math': Binary Property */ -static const OnigCodePoint -CR_Other_Math[] = { 134, -0x005e, 0x005e, -0x03d0, 0x03d2, -0x03d5, 0x03d5, -0x03f0, 0x03f1, -0x03f4, 0x03f5, -0x2016, 0x2016, -0x2032, 0x2034, -0x2040, 0x2040, -0x2061, 0x2064, -0x207d, 0x207e, -0x208d, 0x208e, -0x20d0, 0x20dc, -0x20e1, 0x20e1, -0x20e5, 0x20e6, -0x20eb, 0x20ef, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2128, 0x2129, -0x212c, 0x212d, -0x212f, 0x2131, -0x2133, 0x2138, -0x213c, 0x213f, -0x2145, 0x2149, -0x2195, 0x2199, -0x219c, 0x219f, -0x21a1, 0x21a2, -0x21a4, 0x21a5, -0x21a7, 0x21a7, -0x21a9, 0x21ad, -0x21b0, 0x21b1, -0x21b6, 0x21b7, -0x21bc, 0x21cd, -0x21d0, 0x21d1, -0x21d3, 0x21d3, -0x21d5, 0x21db, -0x21dd, 0x21dd, -0x21e4, 0x21e5, -0x2308, 0x230b, -0x23b4, 0x23b5, -0x23b7, 0x23b7, -0x23d0, 0x23d0, -0x23e2, 0x23e2, -0x25a0, 0x25a1, -0x25ae, 0x25b6, -0x25bc, 0x25c0, -0x25c6, 0x25c7, -0x25ca, 0x25cb, -0x25cf, 0x25d3, -0x25e2, 0x25e2, -0x25e4, 0x25e4, -0x25e7, 0x25ec, -0x2605, 0x2606, -0x2640, 0x2640, -0x2642, 0x2642, -0x2660, 0x2663, -0x266d, 0x266e, -0x27c5, 0x27c6, -0x27e6, 0x27ef, -0x2983, 0x2998, -0x29d8, 0x29db, -0x29fc, 0x29fd, -0xfe61, 0xfe61, -0xfe63, 0xfe63, -0xfe68, 0xfe68, -0xff3c, 0xff3c, -0xff3e, 0xff3e, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -}; /* END of CR_Other_Math */ - -/* PROPERTY: 'Other_Uppercase': Binary Property */ -static const OnigCodePoint -CR_Other_Uppercase[] = { 5, -0x2160, 0x216f, -0x24b6, 0x24cf, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -}; /* END of CR_Other_Uppercase */ - -/* PROPERTY: 'P': Major Category */ -#define CR_P CR_Punct - -/* PROPERTY: 'Pahawh_Hmong': Script */ -static const OnigCodePoint -CR_Pahawh_Hmong[] = { 5, -0x16b00, 0x16b45, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -}; /* END of CR_Pahawh_Hmong */ - -/* PROPERTY: 'Palmyrene': Script */ -static const OnigCodePoint -CR_Palmyrene[] = { 1, -0x10860, 0x1087f, -}; /* END of CR_Palmyrene */ - -/* PROPERTY: 'Pattern_Syntax': Binary Property */ -static const OnigCodePoint -CR_Pattern_Syntax[] = { 28, -0x0021, 0x002f, -0x003a, 0x0040, -0x005b, 0x005e, -0x0060, 0x0060, -0x007b, 0x007e, -0x00a1, 0x00a7, -0x00a9, 0x00a9, -0x00ab, 0x00ac, -0x00ae, 0x00ae, -0x00b0, 0x00b1, -0x00b6, 0x00b6, -0x00bb, 0x00bb, -0x00bf, 0x00bf, -0x00d7, 0x00d7, -0x00f7, 0x00f7, -0x2010, 0x2027, -0x2030, 0x203e, -0x2041, 0x2053, -0x2055, 0x205e, -0x2190, 0x245f, -0x2500, 0x2775, -0x2794, 0x2bff, -0x2e00, 0x2e7f, -0x3001, 0x3003, -0x3008, 0x3020, -0x3030, 0x3030, -0xfd3e, 0xfd3f, -0xfe45, 0xfe46, -}; /* END of CR_Pattern_Syntax */ - -/* PROPERTY: 'Pattern_White_Space': Binary Property */ -static const OnigCodePoint -CR_Pattern_White_Space[] = { 5, -0x0009, 0x000d, -0x0020, 0x0020, -0x0085, 0x0085, -0x200e, 0x200f, -0x2028, 0x2029, -}; /* END of CR_Pattern_White_Space */ - -/* PROPERTY: 'Pau_Cin_Hau': Script */ -static const OnigCodePoint -CR_Pau_Cin_Hau[] = { 1, -0x11ac0, 0x11af8, -}; /* END of CR_Pau_Cin_Hau */ - -/* PROPERTY: 'Pc': General Category */ -static const OnigCodePoint -CR_Pc[] = { 6, -0x005f, 0x005f, -0x203f, 0x2040, -0x2054, 0x2054, -0xfe33, 0xfe34, -0xfe4d, 0xfe4f, -0xff3f, 0xff3f, -}; /* END of CR_Pc */ - -/* PROPERTY: 'Pd': General Category */ -static const OnigCodePoint -CR_Pd[] = { 17, -0x002d, 0x002d, -0x058a, 0x058a, -0x05be, 0x05be, -0x1400, 0x1400, -0x1806, 0x1806, -0x2010, 0x2015, -0x2e17, 0x2e17, -0x2e1a, 0x2e1a, -0x2e3a, 0x2e3b, -0x2e40, 0x2e40, -0x301c, 0x301c, -0x3030, 0x3030, -0x30a0, 0x30a0, -0xfe31, 0xfe32, -0xfe58, 0xfe58, -0xfe63, 0xfe63, -0xff0d, 0xff0d, -}; /* END of CR_Pd */ - -/* PROPERTY: 'Pe': General Category */ -static const OnigCodePoint -CR_Pe[] = { 72, -0x0029, 0x0029, -0x005d, 0x005d, -0x007d, 0x007d, -0x0f3b, 0x0f3b, -0x0f3d, 0x0f3d, -0x169c, 0x169c, -0x2046, 0x2046, -0x207e, 0x207e, -0x208e, 0x208e, -0x2309, 0x2309, -0x230b, 0x230b, -0x232a, 0x232a, -0x2769, 0x2769, -0x276b, 0x276b, -0x276d, 0x276d, -0x276f, 0x276f, -0x2771, 0x2771, -0x2773, 0x2773, -0x2775, 0x2775, -0x27c6, 0x27c6, -0x27e7, 0x27e7, -0x27e9, 0x27e9, -0x27eb, 0x27eb, -0x27ed, 0x27ed, -0x27ef, 0x27ef, -0x2984, 0x2984, -0x2986, 0x2986, -0x2988, 0x2988, -0x298a, 0x298a, -0x298c, 0x298c, -0x298e, 0x298e, -0x2990, 0x2990, -0x2992, 0x2992, -0x2994, 0x2994, -0x2996, 0x2996, -0x2998, 0x2998, -0x29d9, 0x29d9, -0x29db, 0x29db, -0x29fd, 0x29fd, -0x2e23, 0x2e23, -0x2e25, 0x2e25, -0x2e27, 0x2e27, -0x2e29, 0x2e29, -0x3009, 0x3009, -0x300b, 0x300b, -0x300d, 0x300d, -0x300f, 0x300f, -0x3011, 0x3011, -0x3015, 0x3015, -0x3017, 0x3017, -0x3019, 0x3019, -0x301b, 0x301b, -0x301e, 0x301f, -0xfd3e, 0xfd3e, -0xfe18, 0xfe18, -0xfe36, 0xfe36, -0xfe38, 0xfe38, -0xfe3a, 0xfe3a, -0xfe3c, 0xfe3c, -0xfe3e, 0xfe3e, -0xfe40, 0xfe40, -0xfe42, 0xfe42, -0xfe44, 0xfe44, -0xfe48, 0xfe48, -0xfe5a, 0xfe5a, -0xfe5c, 0xfe5c, -0xfe5e, 0xfe5e, -0xff09, 0xff09, -0xff3d, 0xff3d, -0xff5d, 0xff5d, -0xff60, 0xff60, -0xff63, 0xff63, -}; /* END of CR_Pe */ - -/* PROPERTY: 'Pf': General Category */ -static const OnigCodePoint -CR_Pf[] = { 10, -0x00bb, 0x00bb, -0x2019, 0x2019, -0x201d, 0x201d, -0x203a, 0x203a, -0x2e03, 0x2e03, -0x2e05, 0x2e05, -0x2e0a, 0x2e0a, -0x2e0d, 0x2e0d, -0x2e1d, 0x2e1d, -0x2e21, 0x2e21, -}; /* END of CR_Pf */ - -/* PROPERTY: 'Phags_Pa': Script */ -static const OnigCodePoint -CR_Phags_Pa[] = { 1, -0xa840, 0xa877, -}; /* END of CR_Phags_Pa */ - -/* PROPERTY: 'Phoenician': Script */ -static const OnigCodePoint -CR_Phoenician[] = { 2, -0x10900, 0x1091b, -0x1091f, 0x1091f, -}; /* END of CR_Phoenician */ - -/* PROPERTY: 'Pi': General Category */ -static const OnigCodePoint -CR_Pi[] = { 11, -0x00ab, 0x00ab, -0x2018, 0x2018, -0x201b, 0x201c, -0x201f, 0x201f, -0x2039, 0x2039, -0x2e02, 0x2e02, -0x2e04, 0x2e04, -0x2e09, 0x2e09, -0x2e0c, 0x2e0c, -0x2e1c, 0x2e1c, -0x2e20, 0x2e20, -}; /* END of CR_Pi */ - -/* PROPERTY: 'Po': General Category */ -static const OnigCodePoint -CR_Po[] = { 179, -0x0021, 0x0023, -0x0025, 0x0027, -0x002a, 0x002a, -0x002c, 0x002c, -0x002e, 0x002f, -0x003a, 0x003b, -0x003f, 0x0040, -0x005c, 0x005c, -0x00a1, 0x00a1, -0x00a7, 0x00a7, -0x00b6, 0x00b7, -0x00bf, 0x00bf, -0x037e, 0x037e, -0x0387, 0x0387, -0x055a, 0x055f, -0x0589, 0x0589, -0x05c0, 0x05c0, -0x05c3, 0x05c3, -0x05c6, 0x05c6, -0x05f3, 0x05f4, -0x0609, 0x060a, -0x060c, 0x060d, -0x061b, 0x061b, -0x061e, 0x061f, -0x066a, 0x066d, -0x06d4, 0x06d4, -0x0700, 0x070d, -0x07f7, 0x07f9, -0x0830, 0x083e, -0x085e, 0x085e, -0x0964, 0x0965, -0x0970, 0x0970, -0x09fd, 0x09fd, -0x0a76, 0x0a76, -0x0af0, 0x0af0, -0x0c77, 0x0c77, -0x0c84, 0x0c84, -0x0df4, 0x0df4, -0x0e4f, 0x0e4f, -0x0e5a, 0x0e5b, -0x0f04, 0x0f12, -0x0f14, 0x0f14, -0x0f85, 0x0f85, -0x0fd0, 0x0fd4, -0x0fd9, 0x0fda, -0x104a, 0x104f, -0x10fb, 0x10fb, -0x1360, 0x1368, -0x166e, 0x166e, -0x16eb, 0x16ed, -0x1735, 0x1736, -0x17d4, 0x17d6, -0x17d8, 0x17da, -0x1800, 0x1805, -0x1807, 0x180a, -0x1944, 0x1945, -0x1a1e, 0x1a1f, -0x1aa0, 0x1aa6, -0x1aa8, 0x1aad, -0x1b5a, 0x1b60, -0x1bfc, 0x1bff, -0x1c3b, 0x1c3f, -0x1c7e, 0x1c7f, -0x1cc0, 0x1cc7, -0x1cd3, 0x1cd3, -0x2016, 0x2017, -0x2020, 0x2027, -0x2030, 0x2038, -0x203b, 0x203e, -0x2041, 0x2043, -0x2047, 0x2051, -0x2053, 0x2053, -0x2055, 0x205e, -0x2cf9, 0x2cfc, -0x2cfe, 0x2cff, -0x2d70, 0x2d70, -0x2e00, 0x2e01, -0x2e06, 0x2e08, -0x2e0b, 0x2e0b, -0x2e0e, 0x2e16, -0x2e18, 0x2e19, -0x2e1b, 0x2e1b, -0x2e1e, 0x2e1f, -0x2e2a, 0x2e2e, -0x2e30, 0x2e39, -0x2e3c, 0x2e3f, -0x2e41, 0x2e41, -0x2e43, 0x2e4f, -0x3001, 0x3003, -0x303d, 0x303d, -0x30fb, 0x30fb, -0xa4fe, 0xa4ff, -0xa60d, 0xa60f, -0xa673, 0xa673, -0xa67e, 0xa67e, -0xa6f2, 0xa6f7, -0xa874, 0xa877, -0xa8ce, 0xa8cf, -0xa8f8, 0xa8fa, -0xa8fc, 0xa8fc, -0xa92e, 0xa92f, -0xa95f, 0xa95f, -0xa9c1, 0xa9cd, -0xa9de, 0xa9df, -0xaa5c, 0xaa5f, -0xaade, 0xaadf, -0xaaf0, 0xaaf1, -0xabeb, 0xabeb, -0xfe10, 0xfe16, -0xfe19, 0xfe19, -0xfe30, 0xfe30, -0xfe45, 0xfe46, -0xfe49, 0xfe4c, -0xfe50, 0xfe52, -0xfe54, 0xfe57, -0xfe5f, 0xfe61, -0xfe68, 0xfe68, -0xfe6a, 0xfe6b, -0xff01, 0xff03, -0xff05, 0xff07, -0xff0a, 0xff0a, -0xff0c, 0xff0c, -0xff0e, 0xff0f, -0xff1a, 0xff1b, -0xff1f, 0xff20, -0xff3c, 0xff3c, -0xff61, 0xff61, -0xff64, 0xff65, -0x10100, 0x10102, -0x1039f, 0x1039f, -0x103d0, 0x103d0, -0x1056f, 0x1056f, -0x10857, 0x10857, -0x1091f, 0x1091f, -0x1093f, 0x1093f, -0x10a50, 0x10a58, -0x10a7f, 0x10a7f, -0x10af0, 0x10af6, -0x10b39, 0x10b3f, -0x10b99, 0x10b9c, -0x10f55, 0x10f59, -0x11047, 0x1104d, -0x110bb, 0x110bc, -0x110be, 0x110c1, -0x11140, 0x11143, -0x11174, 0x11175, -0x111c5, 0x111c8, -0x111cd, 0x111cd, -0x111db, 0x111db, -0x111dd, 0x111df, -0x11238, 0x1123d, -0x112a9, 0x112a9, -0x1144b, 0x1144f, -0x1145b, 0x1145b, -0x1145d, 0x1145d, -0x114c6, 0x114c6, -0x115c1, 0x115d7, -0x11641, 0x11643, -0x11660, 0x1166c, -0x1173c, 0x1173e, -0x1183b, 0x1183b, -0x119e2, 0x119e2, -0x11a3f, 0x11a46, -0x11a9a, 0x11a9c, -0x11a9e, 0x11aa2, -0x11c41, 0x11c45, -0x11c70, 0x11c71, -0x11ef7, 0x11ef8, -0x11fff, 0x11fff, -0x12470, 0x12474, -0x16a6e, 0x16a6f, -0x16af5, 0x16af5, -0x16b37, 0x16b3b, -0x16b44, 0x16b44, -0x16e97, 0x16e9a, -0x16fe2, 0x16fe2, -0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8b, -0x1e95e, 0x1e95f, -}; /* END of CR_Po */ - -/* PROPERTY: 'Prepended_Concatenation_Mark': Binary Property */ -static const OnigCodePoint -CR_Prepended_Concatenation_Mark[] = { 6, -0x0600, 0x0605, -0x06dd, 0x06dd, -0x070f, 0x070f, -0x08e2, 0x08e2, -0x110bd, 0x110bd, -0x110cd, 0x110cd, -}; /* END of CR_Prepended_Concatenation_Mark */ - -/* PROPERTY: 'Ps': General Category */ -static const OnigCodePoint -CR_Ps[] = { 75, -0x0028, 0x0028, -0x005b, 0x005b, -0x007b, 0x007b, -0x0f3a, 0x0f3a, -0x0f3c, 0x0f3c, -0x169b, 0x169b, -0x201a, 0x201a, -0x201e, 0x201e, -0x2045, 0x2045, -0x207d, 0x207d, -0x208d, 0x208d, -0x2308, 0x2308, -0x230a, 0x230a, -0x2329, 0x2329, -0x2768, 0x2768, -0x276a, 0x276a, -0x276c, 0x276c, -0x276e, 0x276e, -0x2770, 0x2770, -0x2772, 0x2772, -0x2774, 0x2774, -0x27c5, 0x27c5, -0x27e6, 0x27e6, -0x27e8, 0x27e8, -0x27ea, 0x27ea, -0x27ec, 0x27ec, -0x27ee, 0x27ee, -0x2983, 0x2983, -0x2985, 0x2985, -0x2987, 0x2987, -0x2989, 0x2989, -0x298b, 0x298b, -0x298d, 0x298d, -0x298f, 0x298f, -0x2991, 0x2991, -0x2993, 0x2993, -0x2995, 0x2995, -0x2997, 0x2997, -0x29d8, 0x29d8, -0x29da, 0x29da, -0x29fc, 0x29fc, -0x2e22, 0x2e22, -0x2e24, 0x2e24, -0x2e26, 0x2e26, -0x2e28, 0x2e28, -0x2e42, 0x2e42, -0x3008, 0x3008, -0x300a, 0x300a, -0x300c, 0x300c, -0x300e, 0x300e, -0x3010, 0x3010, -0x3014, 0x3014, -0x3016, 0x3016, -0x3018, 0x3018, -0x301a, 0x301a, -0x301d, 0x301d, -0xfd3f, 0xfd3f, -0xfe17, 0xfe17, -0xfe35, 0xfe35, -0xfe37, 0xfe37, -0xfe39, 0xfe39, -0xfe3b, 0xfe3b, -0xfe3d, 0xfe3d, -0xfe3f, 0xfe3f, -0xfe41, 0xfe41, -0xfe43, 0xfe43, -0xfe47, 0xfe47, -0xfe59, 0xfe59, -0xfe5b, 0xfe5b, -0xfe5d, 0xfe5d, -0xff08, 0xff08, -0xff3b, 0xff3b, -0xff5b, 0xff5b, -0xff5f, 0xff5f, -0xff62, 0xff62, -}; /* END of CR_Ps */ - -/* PROPERTY: 'Psalter_Pahlavi': Script */ -static const OnigCodePoint -CR_Psalter_Pahlavi[] = { 3, -0x10b80, 0x10b91, -0x10b99, 0x10b9c, -0x10ba9, 0x10baf, -}; /* END of CR_Psalter_Pahlavi */ - -/* PROPERTY: 'Quotation_Mark': Binary Property */ -static const OnigCodePoint -CR_Quotation_Mark[] = { 13, -0x0022, 0x0022, -0x0027, 0x0027, -0x00ab, 0x00ab, -0x00bb, 0x00bb, -0x2018, 0x201f, -0x2039, 0x203a, -0x2e42, 0x2e42, -0x300c, 0x300f, -0x301d, 0x301f, -0xfe41, 0xfe44, -0xff02, 0xff02, -0xff07, 0xff07, -0xff62, 0xff63, -}; /* END of CR_Quotation_Mark */ - -/* PROPERTY: 'Radical': Binary Property */ -static const OnigCodePoint -CR_Radical[] = { 3, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -}; /* END of CR_Radical */ - -/* PROPERTY: 'Regional_Indicator': Binary Property */ -static const OnigCodePoint -CR_Regional_Indicator[] = { 1, -0x1f1e6, 0x1f1ff, -}; /* END of CR_Regional_Indicator */ - -/* PROPERTY: 'Rejang': Script */ -static const OnigCodePoint -CR_Rejang[] = { 2, -0xa930, 0xa953, -0xa95f, 0xa95f, -}; /* END of CR_Rejang */ - -/* PROPERTY: 'Runic': Script */ -static const OnigCodePoint -CR_Runic[] = { 2, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -}; /* END of CR_Runic */ - -/* PROPERTY: 'S': Major Category */ -static const OnigCodePoint -CR_S[] = { 226, -0x0024, 0x0024, -0x002b, 0x002b, -0x003c, 0x003e, -0x005e, 0x005e, -0x0060, 0x0060, -0x007c, 0x007c, -0x007e, 0x007e, -0x00a2, 0x00a6, -0x00a8, 0x00a9, -0x00ac, 0x00ac, -0x00ae, 0x00b1, -0x00b4, 0x00b4, -0x00b8, 0x00b8, -0x00d7, 0x00d7, -0x00f7, 0x00f7, -0x02c2, 0x02c5, -0x02d2, 0x02df, -0x02e5, 0x02eb, -0x02ed, 0x02ed, -0x02ef, 0x02ff, -0x0375, 0x0375, -0x0384, 0x0385, -0x03f6, 0x03f6, -0x0482, 0x0482, -0x058d, 0x058f, -0x0606, 0x0608, -0x060b, 0x060b, -0x060e, 0x060f, -0x06de, 0x06de, -0x06e9, 0x06e9, -0x06fd, 0x06fe, -0x07f6, 0x07f6, -0x07fe, 0x07ff, -0x09f2, 0x09f3, -0x09fa, 0x09fb, -0x0af1, 0x0af1, -0x0b70, 0x0b70, -0x0bf3, 0x0bfa, -0x0c7f, 0x0c7f, -0x0d4f, 0x0d4f, -0x0d79, 0x0d79, -0x0e3f, 0x0e3f, -0x0f01, 0x0f03, -0x0f13, 0x0f13, -0x0f15, 0x0f17, -0x0f1a, 0x0f1f, -0x0f34, 0x0f34, -0x0f36, 0x0f36, -0x0f38, 0x0f38, -0x0fbe, 0x0fc5, -0x0fc7, 0x0fcc, -0x0fce, 0x0fcf, -0x0fd5, 0x0fd8, -0x109e, 0x109f, -0x1390, 0x1399, -0x166d, 0x166d, -0x17db, 0x17db, -0x1940, 0x1940, -0x19de, 0x19ff, -0x1b61, 0x1b6a, -0x1b74, 0x1b7c, -0x1fbd, 0x1fbd, -0x1fbf, 0x1fc1, -0x1fcd, 0x1fcf, -0x1fdd, 0x1fdf, -0x1fed, 0x1fef, -0x1ffd, 0x1ffe, -0x2044, 0x2044, -0x2052, 0x2052, -0x207a, 0x207c, -0x208a, 0x208c, -0x20a0, 0x20bf, -0x2100, 0x2101, -0x2103, 0x2106, -0x2108, 0x2109, -0x2114, 0x2114, -0x2116, 0x2118, -0x211e, 0x2123, -0x2125, 0x2125, -0x2127, 0x2127, -0x2129, 0x2129, -0x212e, 0x212e, -0x213a, 0x213b, -0x2140, 0x2144, -0x214a, 0x214d, -0x214f, 0x214f, -0x218a, 0x218b, -0x2190, 0x2307, -0x230c, 0x2328, -0x232b, 0x2426, -0x2440, 0x244a, -0x249c, 0x24e9, -0x2500, 0x2767, -0x2794, 0x27c4, -0x27c7, 0x27e5, -0x27f0, 0x2982, -0x2999, 0x29d7, -0x29dc, 0x29fb, -0x29fe, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2bff, -0x2ce5, 0x2cea, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3004, 0x3004, -0x3012, 0x3013, -0x3020, 0x3020, -0x3036, 0x3037, -0x303e, 0x303f, -0x309b, 0x309c, -0x3190, 0x3191, -0x3196, 0x319f, -0x31c0, 0x31e3, -0x3200, 0x321e, -0x322a, 0x3247, -0x3250, 0x3250, -0x3260, 0x327f, -0x328a, 0x32b0, -0x32c0, 0x33ff, -0x4dc0, 0x4dff, -0xa490, 0xa4c6, -0xa700, 0xa716, -0xa720, 0xa721, -0xa789, 0xa78a, -0xa828, 0xa82b, -0xa836, 0xa839, -0xaa77, 0xaa79, -0xab5b, 0xab5b, -0xfb29, 0xfb29, -0xfbb2, 0xfbc1, -0xfdfc, 0xfdfd, -0xfe62, 0xfe62, -0xfe64, 0xfe66, -0xfe69, 0xfe69, -0xff04, 0xff04, -0xff0b, 0xff0b, -0xff1c, 0xff1e, -0xff3e, 0xff3e, -0xff40, 0xff40, -0xff5c, 0xff5c, -0xff5e, 0xff5e, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfffc, 0xfffd, -0x10137, 0x1013f, -0x10179, 0x10189, -0x1018c, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fc, -0x10877, 0x10878, -0x10ac8, 0x10ac8, -0x1173f, 0x1173f, -0x11fd5, 0x11ff1, -0x16b3c, 0x16b3f, -0x16b45, 0x16b45, -0x1bc9c, 0x1bc9c, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d164, -0x1d16a, 0x1d16c, -0x1d183, 0x1d184, -0x1d18c, 0x1d1a9, -0x1d1ae, 0x1d1e8, -0x1d200, 0x1d241, -0x1d245, 0x1d245, -0x1d300, 0x1d356, -0x1d6c1, 0x1d6c1, -0x1d6db, 0x1d6db, -0x1d6fb, 0x1d6fb, -0x1d715, 0x1d715, -0x1d735, 0x1d735, -0x1d74f, 0x1d74f, -0x1d76f, 0x1d76f, -0x1d789, 0x1d789, -0x1d7a9, 0x1d7a9, -0x1d7c3, 0x1d7c3, -0x1d800, 0x1d9ff, -0x1da37, 0x1da3a, -0x1da6d, 0x1da74, -0x1da76, 0x1da83, -0x1da85, 0x1da86, -0x1e14f, 0x1e14f, -0x1e2ff, 0x1e2ff, -0x1ecac, 0x1ecac, -0x1ecb0, 0x1ecb0, -0x1ed2e, 0x1ed2e, -0x1eef0, 0x1eef1, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -}; /* END of CR_S */ - -/* PROPERTY: 'Samaritan': Script */ -static const OnigCodePoint -CR_Samaritan[] = { 2, -0x0800, 0x082d, -0x0830, 0x083e, -}; /* END of CR_Samaritan */ - -/* PROPERTY: 'Saurashtra': Script */ -static const OnigCodePoint -CR_Saurashtra[] = { 2, -0xa880, 0xa8c5, -0xa8ce, 0xa8d9, -}; /* END of CR_Saurashtra */ - -/* PROPERTY: 'Sc': General Category */ -static const OnigCodePoint -CR_Sc[] = { 21, -0x0024, 0x0024, -0x00a2, 0x00a5, -0x058f, 0x058f, -0x060b, 0x060b, -0x07fe, 0x07ff, -0x09f2, 0x09f3, -0x09fb, 0x09fb, -0x0af1, 0x0af1, -0x0bf9, 0x0bf9, -0x0e3f, 0x0e3f, -0x17db, 0x17db, -0x20a0, 0x20bf, -0xa838, 0xa838, -0xfdfc, 0xfdfc, -0xfe69, 0xfe69, -0xff04, 0xff04, -0xffe0, 0xffe1, -0xffe5, 0xffe6, -0x11fdd, 0x11fe0, -0x1e2ff, 0x1e2ff, -0x1ecb0, 0x1ecb0, -}; /* END of CR_Sc */ - -/* PROPERTY: 'Sentence_Terminal': Binary Property */ -static const OnigCodePoint -CR_Sentence_Terminal[] = { 74, -0x0021, 0x0021, -0x002e, 0x002e, -0x003f, 0x003f, -0x0589, 0x0589, -0x061e, 0x061f, -0x06d4, 0x06d4, -0x0700, 0x0702, -0x07f9, 0x07f9, -0x0837, 0x0837, -0x0839, 0x0839, -0x083d, 0x083e, -0x0964, 0x0965, -0x104a, 0x104b, -0x1362, 0x1362, -0x1367, 0x1368, -0x166e, 0x166e, -0x1735, 0x1736, -0x1803, 0x1803, -0x1809, 0x1809, -0x1944, 0x1945, -0x1aa8, 0x1aab, -0x1b5a, 0x1b5b, -0x1b5e, 0x1b5f, -0x1c3b, 0x1c3c, -0x1c7e, 0x1c7f, -0x203c, 0x203d, -0x2047, 0x2049, -0x2e2e, 0x2e2e, -0x2e3c, 0x2e3c, -0x3002, 0x3002, -0xa4ff, 0xa4ff, -0xa60e, 0xa60f, -0xa6f3, 0xa6f3, -0xa6f7, 0xa6f7, -0xa876, 0xa877, -0xa8ce, 0xa8cf, -0xa92f, 0xa92f, -0xa9c8, 0xa9c9, -0xaa5d, 0xaa5f, -0xaaf0, 0xaaf1, -0xabeb, 0xabeb, -0xfe52, 0xfe52, -0xfe56, 0xfe57, -0xff01, 0xff01, -0xff0e, 0xff0e, -0xff1f, 0xff1f, -0xff61, 0xff61, -0x10a56, 0x10a57, -0x10f55, 0x10f59, -0x11047, 0x11048, -0x110be, 0x110c1, -0x11141, 0x11143, -0x111c5, 0x111c6, -0x111cd, 0x111cd, -0x111de, 0x111df, -0x11238, 0x11239, -0x1123b, 0x1123c, -0x112a9, 0x112a9, -0x1144b, 0x1144c, -0x115c2, 0x115c3, -0x115c9, 0x115d7, -0x11641, 0x11642, -0x1173c, 0x1173e, -0x11a42, 0x11a43, -0x11a9b, 0x11a9c, -0x11c41, 0x11c42, -0x11ef7, 0x11ef8, -0x16a6e, 0x16a6f, -0x16af5, 0x16af5, -0x16b37, 0x16b38, -0x16b44, 0x16b44, -0x16e98, 0x16e98, -0x1bc9f, 0x1bc9f, -0x1da88, 0x1da88, -}; /* END of CR_Sentence_Terminal */ - -/* PROPERTY: 'Sharada': Script */ -static const OnigCodePoint -CR_Sharada[] = { 2, -0x11180, 0x111cd, -0x111d0, 0x111df, -}; /* END of CR_Sharada */ - -/* PROPERTY: 'Shavian': Script */ -static const OnigCodePoint -CR_Shavian[] = { 1, -0x10450, 0x1047f, -}; /* END of CR_Shavian */ - -/* PROPERTY: 'Siddham': Script */ -static const OnigCodePoint -CR_Siddham[] = { 2, -0x11580, 0x115b5, -0x115b8, 0x115dd, -}; /* END of CR_Siddham */ - -/* PROPERTY: 'SignWriting': Script */ -static const OnigCodePoint -CR_SignWriting[] = { 3, -0x1d800, 0x1da8b, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -}; /* END of CR_SignWriting */ - -/* PROPERTY: 'Sinhala': Script */ -static const OnigCodePoint -CR_Sinhala[] = { 13, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df4, -0x111e1, 0x111f4, -}; /* END of CR_Sinhala */ - -/* PROPERTY: 'Sk': General Category */ -static const OnigCodePoint -CR_Sk[] = { 29, -0x005e, 0x005e, -0x0060, 0x0060, -0x00a8, 0x00a8, -0x00af, 0x00af, -0x00b4, 0x00b4, -0x00b8, 0x00b8, -0x02c2, 0x02c5, -0x02d2, 0x02df, -0x02e5, 0x02eb, -0x02ed, 0x02ed, -0x02ef, 0x02ff, -0x0375, 0x0375, -0x0384, 0x0385, -0x1fbd, 0x1fbd, -0x1fbf, 0x1fc1, -0x1fcd, 0x1fcf, -0x1fdd, 0x1fdf, -0x1fed, 0x1fef, -0x1ffd, 0x1ffe, -0x309b, 0x309c, -0xa700, 0xa716, -0xa720, 0xa721, -0xa789, 0xa78a, -0xab5b, 0xab5b, -0xfbb2, 0xfbc1, -0xff3e, 0xff3e, -0xff40, 0xff40, -0xffe3, 0xffe3, -0x1f3fb, 0x1f3ff, -}; /* END of CR_Sk */ - -/* PROPERTY: 'Sm': General Category */ -static const OnigCodePoint -CR_Sm[] = { 64, -0x002b, 0x002b, -0x003c, 0x003e, -0x007c, 0x007c, -0x007e, 0x007e, -0x00ac, 0x00ac, -0x00b1, 0x00b1, -0x00d7, 0x00d7, -0x00f7, 0x00f7, -0x03f6, 0x03f6, -0x0606, 0x0608, -0x2044, 0x2044, -0x2052, 0x2052, -0x207a, 0x207c, -0x208a, 0x208c, -0x2118, 0x2118, -0x2140, 0x2144, -0x214b, 0x214b, -0x2190, 0x2194, -0x219a, 0x219b, -0x21a0, 0x21a0, -0x21a3, 0x21a3, -0x21a6, 0x21a6, -0x21ae, 0x21ae, -0x21ce, 0x21cf, -0x21d2, 0x21d2, -0x21d4, 0x21d4, -0x21f4, 0x22ff, -0x2320, 0x2321, -0x237c, 0x237c, -0x239b, 0x23b3, -0x23dc, 0x23e1, -0x25b7, 0x25b7, -0x25c1, 0x25c1, -0x25f8, 0x25ff, -0x266f, 0x266f, -0x27c0, 0x27c4, -0x27c7, 0x27e5, -0x27f0, 0x27ff, -0x2900, 0x2982, -0x2999, 0x29d7, -0x29dc, 0x29fb, -0x29fe, 0x2aff, -0x2b30, 0x2b44, -0x2b47, 0x2b4c, -0xfb29, 0xfb29, -0xfe62, 0xfe62, -0xfe64, 0xfe66, -0xff0b, 0xff0b, -0xff1c, 0xff1e, -0xff5c, 0xff5c, -0xff5e, 0xff5e, -0xffe2, 0xffe2, -0xffe9, 0xffec, -0x1d6c1, 0x1d6c1, -0x1d6db, 0x1d6db, -0x1d6fb, 0x1d6fb, -0x1d715, 0x1d715, -0x1d735, 0x1d735, -0x1d74f, 0x1d74f, -0x1d76f, 0x1d76f, -0x1d789, 0x1d789, -0x1d7a9, 0x1d7a9, -0x1d7c3, 0x1d7c3, -0x1eef0, 0x1eef1, -}; /* END of CR_Sm */ - -/* PROPERTY: 'So': General Category */ -static const OnigCodePoint -CR_So[] = { 180, -0x00a6, 0x00a6, -0x00a9, 0x00a9, -0x00ae, 0x00ae, -0x00b0, 0x00b0, -0x0482, 0x0482, -0x058d, 0x058e, -0x060e, 0x060f, -0x06de, 0x06de, -0x06e9, 0x06e9, -0x06fd, 0x06fe, -0x07f6, 0x07f6, -0x09fa, 0x09fa, -0x0b70, 0x0b70, -0x0bf3, 0x0bf8, -0x0bfa, 0x0bfa, -0x0c7f, 0x0c7f, -0x0d4f, 0x0d4f, -0x0d79, 0x0d79, -0x0f01, 0x0f03, -0x0f13, 0x0f13, -0x0f15, 0x0f17, -0x0f1a, 0x0f1f, -0x0f34, 0x0f34, -0x0f36, 0x0f36, -0x0f38, 0x0f38, -0x0fbe, 0x0fc5, -0x0fc7, 0x0fcc, -0x0fce, 0x0fcf, -0x0fd5, 0x0fd8, -0x109e, 0x109f, -0x1390, 0x1399, -0x166d, 0x166d, -0x1940, 0x1940, -0x19de, 0x19ff, -0x1b61, 0x1b6a, -0x1b74, 0x1b7c, -0x2100, 0x2101, -0x2103, 0x2106, -0x2108, 0x2109, -0x2114, 0x2114, -0x2116, 0x2117, -0x211e, 0x2123, -0x2125, 0x2125, -0x2127, 0x2127, -0x2129, 0x2129, -0x212e, 0x212e, -0x213a, 0x213b, -0x214a, 0x214a, -0x214c, 0x214d, -0x214f, 0x214f, -0x218a, 0x218b, -0x2195, 0x2199, -0x219c, 0x219f, -0x21a1, 0x21a2, -0x21a4, 0x21a5, -0x21a7, 0x21ad, -0x21af, 0x21cd, -0x21d0, 0x21d1, -0x21d3, 0x21d3, -0x21d5, 0x21f3, -0x2300, 0x2307, -0x230c, 0x231f, -0x2322, 0x2328, -0x232b, 0x237b, -0x237d, 0x239a, -0x23b4, 0x23db, -0x23e2, 0x2426, -0x2440, 0x244a, -0x249c, 0x24e9, -0x2500, 0x25b6, -0x25b8, 0x25c0, -0x25c2, 0x25f7, -0x2600, 0x266e, -0x2670, 0x2767, -0x2794, 0x27bf, -0x2800, 0x28ff, -0x2b00, 0x2b2f, -0x2b45, 0x2b46, -0x2b4d, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2bff, -0x2ce5, 0x2cea, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3004, 0x3004, -0x3012, 0x3013, -0x3020, 0x3020, -0x3036, 0x3037, -0x303e, 0x303f, -0x3190, 0x3191, -0x3196, 0x319f, -0x31c0, 0x31e3, -0x3200, 0x321e, -0x322a, 0x3247, -0x3250, 0x3250, -0x3260, 0x327f, -0x328a, 0x32b0, -0x32c0, 0x33ff, -0x4dc0, 0x4dff, -0xa490, 0xa4c6, -0xa828, 0xa82b, -0xa836, 0xa837, -0xa839, 0xa839, -0xaa77, 0xaa79, -0xfdfd, 0xfdfd, -0xffe4, 0xffe4, -0xffe8, 0xffe8, -0xffed, 0xffee, -0xfffc, 0xfffd, -0x10137, 0x1013f, -0x10179, 0x10189, -0x1018c, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fc, -0x10877, 0x10878, -0x10ac8, 0x10ac8, -0x1173f, 0x1173f, -0x11fd5, 0x11fdc, -0x11fe1, 0x11ff1, -0x16b3c, 0x16b3f, -0x16b45, 0x16b45, -0x1bc9c, 0x1bc9c, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d164, -0x1d16a, 0x1d16c, -0x1d183, 0x1d184, -0x1d18c, 0x1d1a9, -0x1d1ae, 0x1d1e8, -0x1d200, 0x1d241, -0x1d245, 0x1d245, -0x1d300, 0x1d356, -0x1d800, 0x1d9ff, -0x1da37, 0x1da3a, -0x1da6d, 0x1da74, -0x1da76, 0x1da83, -0x1da85, 0x1da86, -0x1e14f, 0x1e14f, -0x1ecac, 0x1ecac, -0x1ed2e, 0x1ed2e, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f3fa, -0x1f400, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -}; /* END of CR_So */ - -/* PROPERTY: 'Soft_Dotted': Binary Property */ -static const OnigCodePoint -CR_Soft_Dotted[] = { 31, -0x0069, 0x006a, -0x012f, 0x012f, -0x0249, 0x0249, -0x0268, 0x0268, -0x029d, 0x029d, -0x02b2, 0x02b2, -0x03f3, 0x03f3, -0x0456, 0x0456, -0x0458, 0x0458, -0x1d62, 0x1d62, -0x1d96, 0x1d96, -0x1da4, 0x1da4, -0x1da8, 0x1da8, -0x1e2d, 0x1e2d, -0x1ecb, 0x1ecb, -0x2071, 0x2071, -0x2148, 0x2149, -0x2c7c, 0x2c7c, -0x1d422, 0x1d423, -0x1d456, 0x1d457, -0x1d48a, 0x1d48b, -0x1d4be, 0x1d4bf, -0x1d4f2, 0x1d4f3, -0x1d526, 0x1d527, -0x1d55a, 0x1d55b, -0x1d58e, 0x1d58f, -0x1d5c2, 0x1d5c3, -0x1d5f6, 0x1d5f7, -0x1d62a, 0x1d62b, -0x1d65e, 0x1d65f, -0x1d692, 0x1d693, -}; /* END of CR_Soft_Dotted */ - -/* PROPERTY: 'Sogdian': Script */ -static const OnigCodePoint -CR_Sogdian[] = { 1, -0x10f30, 0x10f59, -}; /* END of CR_Sogdian */ - -/* PROPERTY: 'Sora_Sompeng': Script */ -static const OnigCodePoint -CR_Sora_Sompeng[] = { 2, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -}; /* END of CR_Sora_Sompeng */ - -/* PROPERTY: 'Soyombo': Script */ -static const OnigCodePoint -CR_Soyombo[] = { 1, -0x11a50, 0x11aa2, -}; /* END of CR_Soyombo */ - -/* PROPERTY: 'Sundanese': Script */ -static const OnigCodePoint -CR_Sundanese[] = { 2, -0x1b80, 0x1bbf, -0x1cc0, 0x1cc7, -}; /* END of CR_Sundanese */ - -/* PROPERTY: 'Syloti_Nagri': Script */ -static const OnigCodePoint -CR_Syloti_Nagri[] = { 1, -0xa800, 0xa82b, -}; /* END of CR_Syloti_Nagri */ - -/* PROPERTY: 'Syriac': Script */ -static const OnigCodePoint -CR_Syriac[] = { 4, -0x0700, 0x070d, -0x070f, 0x074a, -0x074d, 0x074f, -0x0860, 0x086a, -}; /* END of CR_Syriac */ - -/* PROPERTY: 'Tagalog': Script */ -static const OnigCodePoint -CR_Tagalog[] = { 2, -0x1700, 0x170c, -0x170e, 0x1714, -}; /* END of CR_Tagalog */ - -/* PROPERTY: 'Tagbanwa': Script */ -static const OnigCodePoint -CR_Tagbanwa[] = { 3, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -}; /* END of CR_Tagbanwa */ - -/* PROPERTY: 'Tai_Le': Script */ -static const OnigCodePoint -CR_Tai_Le[] = { 2, -0x1950, 0x196d, -0x1970, 0x1974, -}; /* END of CR_Tai_Le */ - -/* PROPERTY: 'Tai_Tham': Script */ -static const OnigCodePoint -CR_Tai_Tham[] = { 5, -0x1a20, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa0, 0x1aad, -}; /* END of CR_Tai_Tham */ - -/* PROPERTY: 'Tai_Viet': Script */ -static const OnigCodePoint -CR_Tai_Viet[] = { 2, -0xaa80, 0xaac2, -0xaadb, 0xaadf, -}; /* END of CR_Tai_Viet */ - -/* PROPERTY: 'Takri': Script */ -static const OnigCodePoint -CR_Takri[] = { 2, -0x11680, 0x116b8, -0x116c0, 0x116c9, -}; /* END of CR_Takri */ - -/* PROPERTY: 'Tamil': Script */ -static const OnigCodePoint -CR_Tamil[] = { 18, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bfa, -0x11fc0, 0x11ff1, -0x11fff, 0x11fff, -}; /* END of CR_Tamil */ - -/* PROPERTY: 'Tangut': Script */ -static const OnigCodePoint -CR_Tangut[] = { 3, -0x16fe0, 0x16fe0, -0x17000, 0x187f7, -0x18800, 0x18af2, -}; /* END of CR_Tangut */ - -/* PROPERTY: 'Telugu': Script */ -static const OnigCodePoint -CR_Telugu[] = { 12, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c77, 0x0c7f, -}; /* END of CR_Telugu */ - -/* PROPERTY: 'Terminal_Punctuation': Binary Property */ -static const OnigCodePoint -CR_Terminal_Punctuation[] = { 102, -0x0021, 0x0021, -0x002c, 0x002c, -0x002e, 0x002e, -0x003a, 0x003b, -0x003f, 0x003f, -0x037e, 0x037e, -0x0387, 0x0387, -0x0589, 0x0589, -0x05c3, 0x05c3, -0x060c, 0x060c, -0x061b, 0x061b, -0x061e, 0x061f, -0x06d4, 0x06d4, -0x0700, 0x070a, -0x070c, 0x070c, -0x07f8, 0x07f9, -0x0830, 0x083e, -0x085e, 0x085e, -0x0964, 0x0965, -0x0e5a, 0x0e5b, -0x0f08, 0x0f08, -0x0f0d, 0x0f12, -0x104a, 0x104b, -0x1361, 0x1368, -0x166e, 0x166e, -0x16eb, 0x16ed, -0x1735, 0x1736, -0x17d4, 0x17d6, -0x17da, 0x17da, -0x1802, 0x1805, -0x1808, 0x1809, -0x1944, 0x1945, -0x1aa8, 0x1aab, -0x1b5a, 0x1b5b, -0x1b5d, 0x1b5f, -0x1c3b, 0x1c3f, -0x1c7e, 0x1c7f, -0x203c, 0x203d, -0x2047, 0x2049, -0x2e2e, 0x2e2e, -0x2e3c, 0x2e3c, -0x2e41, 0x2e41, -0x2e4c, 0x2e4c, -0x2e4e, 0x2e4f, -0x3001, 0x3002, -0xa4fe, 0xa4ff, -0xa60d, 0xa60f, -0xa6f3, 0xa6f7, -0xa876, 0xa877, -0xa8ce, 0xa8cf, -0xa92f, 0xa92f, -0xa9c7, 0xa9c9, -0xaa5d, 0xaa5f, -0xaadf, 0xaadf, -0xaaf0, 0xaaf1, -0xabeb, 0xabeb, -0xfe50, 0xfe52, -0xfe54, 0xfe57, -0xff01, 0xff01, -0xff0c, 0xff0c, -0xff0e, 0xff0e, -0xff1a, 0xff1b, -0xff1f, 0xff1f, -0xff61, 0xff61, -0xff64, 0xff64, -0x1039f, 0x1039f, -0x103d0, 0x103d0, -0x10857, 0x10857, -0x1091f, 0x1091f, -0x10a56, 0x10a57, -0x10af0, 0x10af5, -0x10b3a, 0x10b3f, -0x10b99, 0x10b9c, -0x10f55, 0x10f59, -0x11047, 0x1104d, -0x110be, 0x110c1, -0x11141, 0x11143, -0x111c5, 0x111c6, -0x111cd, 0x111cd, -0x111de, 0x111df, -0x11238, 0x1123c, -0x112a9, 0x112a9, -0x1144b, 0x1144d, -0x1145b, 0x1145b, -0x115c2, 0x115c5, -0x115c9, 0x115d7, -0x11641, 0x11642, -0x1173c, 0x1173e, -0x11a42, 0x11a43, -0x11a9b, 0x11a9c, -0x11aa1, 0x11aa2, -0x11c41, 0x11c43, -0x11c71, 0x11c71, -0x11ef7, 0x11ef8, -0x12470, 0x12474, -0x16a6e, 0x16a6f, -0x16af5, 0x16af5, -0x16b37, 0x16b39, -0x16b44, 0x16b44, -0x16e97, 0x16e98, -0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8a, -}; /* END of CR_Terminal_Punctuation */ - -/* PROPERTY: 'Thaana': Script */ -static const OnigCodePoint -CR_Thaana[] = { 1, -0x0780, 0x07b1, -}; /* END of CR_Thaana */ - -/* PROPERTY: 'Thai': Script */ -static const OnigCodePoint -CR_Thai[] = { 2, -0x0e01, 0x0e3a, -0x0e40, 0x0e5b, -}; /* END of CR_Thai */ - -/* PROPERTY: 'Tibetan': Script */ -static const OnigCodePoint -CR_Tibetan[] = { 7, -0x0f00, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f97, -0x0f99, 0x0fbc, -0x0fbe, 0x0fcc, -0x0fce, 0x0fd4, -0x0fd9, 0x0fda, -}; /* END of CR_Tibetan */ - -/* PROPERTY: 'Tifinagh': Script */ -static const OnigCodePoint -CR_Tifinagh[] = { 3, -0x2d30, 0x2d67, -0x2d6f, 0x2d70, -0x2d7f, 0x2d7f, -}; /* END of CR_Tifinagh */ - -/* PROPERTY: 'Tirhuta': Script */ -static const OnigCodePoint -CR_Tirhuta[] = { 2, -0x11480, 0x114c7, -0x114d0, 0x114d9, -}; /* END of CR_Tirhuta */ - -/* PROPERTY: 'Ugaritic': Script */ -static const OnigCodePoint -CR_Ugaritic[] = { 2, -0x10380, 0x1039d, -0x1039f, 0x1039f, -}; /* END of CR_Ugaritic */ - -/* PROPERTY: 'Unified_Ideograph': Binary Property */ -static const OnigCodePoint -CR_Unified_Ideograph[] = { 14, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xfa0e, 0xfa0f, -0xfa11, 0xfa11, -0xfa13, 0xfa14, -0xfa1f, 0xfa1f, -0xfa21, 0xfa21, -0xfa23, 0xfa24, -0xfa27, 0xfa29, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -}; /* END of CR_Unified_Ideograph */ - -/* PROPERTY: 'Unknown': Script */ -static const OnigCodePoint -CR_Unknown[] = { 664, -0x0378, 0x0379, -0x0380, 0x0383, -0x038b, 0x038b, -0x038d, 0x038d, -0x03a2, 0x03a2, -0x0530, 0x0530, -0x0557, 0x0558, -0x058b, 0x058c, -0x0590, 0x0590, -0x05c8, 0x05cf, -0x05eb, 0x05ee, -0x05f5, 0x05ff, -0x061d, 0x061d, -0x070e, 0x070e, -0x074b, 0x074c, -0x07b2, 0x07bf, -0x07fb, 0x07fc, -0x082e, 0x082f, -0x083f, 0x083f, -0x085c, 0x085d, -0x085f, 0x085f, -0x086b, 0x089f, -0x08b5, 0x08b5, -0x08be, 0x08d2, -0x0984, 0x0984, -0x098d, 0x098e, -0x0991, 0x0992, -0x09a9, 0x09a9, -0x09b1, 0x09b1, -0x09b3, 0x09b5, -0x09ba, 0x09bb, -0x09c5, 0x09c6, -0x09c9, 0x09ca, -0x09cf, 0x09d6, -0x09d8, 0x09db, -0x09de, 0x09de, -0x09e4, 0x09e5, -0x09ff, 0x0a00, -0x0a04, 0x0a04, -0x0a0b, 0x0a0e, -0x0a11, 0x0a12, -0x0a29, 0x0a29, -0x0a31, 0x0a31, -0x0a34, 0x0a34, -0x0a37, 0x0a37, -0x0a3a, 0x0a3b, -0x0a3d, 0x0a3d, -0x0a43, 0x0a46, -0x0a49, 0x0a4a, -0x0a4e, 0x0a50, -0x0a52, 0x0a58, -0x0a5d, 0x0a5d, -0x0a5f, 0x0a65, -0x0a77, 0x0a80, -0x0a84, 0x0a84, -0x0a8e, 0x0a8e, -0x0a92, 0x0a92, -0x0aa9, 0x0aa9, -0x0ab1, 0x0ab1, -0x0ab4, 0x0ab4, -0x0aba, 0x0abb, -0x0ac6, 0x0ac6, -0x0aca, 0x0aca, -0x0ace, 0x0acf, -0x0ad1, 0x0adf, -0x0ae4, 0x0ae5, -0x0af2, 0x0af8, -0x0b00, 0x0b00, -0x0b04, 0x0b04, -0x0b0d, 0x0b0e, -0x0b11, 0x0b12, -0x0b29, 0x0b29, -0x0b31, 0x0b31, -0x0b34, 0x0b34, -0x0b3a, 0x0b3b, -0x0b45, 0x0b46, -0x0b49, 0x0b4a, -0x0b4e, 0x0b55, -0x0b58, 0x0b5b, -0x0b5e, 0x0b5e, -0x0b64, 0x0b65, -0x0b78, 0x0b81, -0x0b84, 0x0b84, -0x0b8b, 0x0b8d, -0x0b91, 0x0b91, -0x0b96, 0x0b98, -0x0b9b, 0x0b9b, -0x0b9d, 0x0b9d, -0x0ba0, 0x0ba2, -0x0ba5, 0x0ba7, -0x0bab, 0x0bad, -0x0bba, 0x0bbd, -0x0bc3, 0x0bc5, -0x0bc9, 0x0bc9, -0x0bce, 0x0bcf, -0x0bd1, 0x0bd6, -0x0bd8, 0x0be5, -0x0bfb, 0x0bff, -0x0c0d, 0x0c0d, -0x0c11, 0x0c11, -0x0c29, 0x0c29, -0x0c3a, 0x0c3c, -0x0c45, 0x0c45, -0x0c49, 0x0c49, -0x0c4e, 0x0c54, -0x0c57, 0x0c57, -0x0c5b, 0x0c5f, -0x0c64, 0x0c65, -0x0c70, 0x0c76, -0x0c8d, 0x0c8d, -0x0c91, 0x0c91, -0x0ca9, 0x0ca9, -0x0cb4, 0x0cb4, -0x0cba, 0x0cbb, -0x0cc5, 0x0cc5, -0x0cc9, 0x0cc9, -0x0cce, 0x0cd4, -0x0cd7, 0x0cdd, -0x0cdf, 0x0cdf, -0x0ce4, 0x0ce5, -0x0cf0, 0x0cf0, -0x0cf3, 0x0cff, -0x0d04, 0x0d04, -0x0d0d, 0x0d0d, -0x0d11, 0x0d11, -0x0d45, 0x0d45, -0x0d49, 0x0d49, -0x0d50, 0x0d53, -0x0d64, 0x0d65, -0x0d80, 0x0d81, -0x0d84, 0x0d84, -0x0d97, 0x0d99, -0x0db2, 0x0db2, -0x0dbc, 0x0dbc, -0x0dbe, 0x0dbf, -0x0dc7, 0x0dc9, -0x0dcb, 0x0dce, -0x0dd5, 0x0dd5, -0x0dd7, 0x0dd7, -0x0de0, 0x0de5, -0x0df0, 0x0df1, -0x0df5, 0x0e00, -0x0e3b, 0x0e3e, -0x0e5c, 0x0e80, -0x0e83, 0x0e83, -0x0e85, 0x0e85, -0x0e8b, 0x0e8b, -0x0ea4, 0x0ea4, -0x0ea6, 0x0ea6, -0x0ebe, 0x0ebf, -0x0ec5, 0x0ec5, -0x0ec7, 0x0ec7, -0x0ece, 0x0ecf, -0x0eda, 0x0edb, -0x0ee0, 0x0eff, -0x0f48, 0x0f48, -0x0f6d, 0x0f70, -0x0f98, 0x0f98, -0x0fbd, 0x0fbd, -0x0fcd, 0x0fcd, -0x0fdb, 0x0fff, -0x10c6, 0x10c6, -0x10c8, 0x10cc, -0x10ce, 0x10cf, -0x1249, 0x1249, -0x124e, 0x124f, -0x1257, 0x1257, -0x1259, 0x1259, -0x125e, 0x125f, -0x1289, 0x1289, -0x128e, 0x128f, -0x12b1, 0x12b1, -0x12b6, 0x12b7, -0x12bf, 0x12bf, -0x12c1, 0x12c1, -0x12c6, 0x12c7, -0x12d7, 0x12d7, -0x1311, 0x1311, -0x1316, 0x1317, -0x135b, 0x135c, -0x137d, 0x137f, -0x139a, 0x139f, -0x13f6, 0x13f7, -0x13fe, 0x13ff, -0x169d, 0x169f, -0x16f9, 0x16ff, -0x170d, 0x170d, -0x1715, 0x171f, -0x1737, 0x173f, -0x1754, 0x175f, -0x176d, 0x176d, -0x1771, 0x1771, -0x1774, 0x177f, -0x17de, 0x17df, -0x17ea, 0x17ef, -0x17fa, 0x17ff, -0x180f, 0x180f, -0x181a, 0x181f, -0x1879, 0x187f, -0x18ab, 0x18af, -0x18f6, 0x18ff, -0x191f, 0x191f, -0x192c, 0x192f, -0x193c, 0x193f, -0x1941, 0x1943, -0x196e, 0x196f, -0x1975, 0x197f, -0x19ac, 0x19af, -0x19ca, 0x19cf, -0x19db, 0x19dd, -0x1a1c, 0x1a1d, -0x1a5f, 0x1a5f, -0x1a7d, 0x1a7e, -0x1a8a, 0x1a8f, -0x1a9a, 0x1a9f, -0x1aae, 0x1aaf, -0x1abf, 0x1aff, -0x1b4c, 0x1b4f, -0x1b7d, 0x1b7f, -0x1bf4, 0x1bfb, -0x1c38, 0x1c3a, -0x1c4a, 0x1c4c, -0x1c89, 0x1c8f, -0x1cbb, 0x1cbc, -0x1cc8, 0x1ccf, -0x1cfb, 0x1cff, -0x1dfa, 0x1dfa, -0x1f16, 0x1f17, -0x1f1e, 0x1f1f, -0x1f46, 0x1f47, -0x1f4e, 0x1f4f, -0x1f58, 0x1f58, -0x1f5a, 0x1f5a, -0x1f5c, 0x1f5c, -0x1f5e, 0x1f5e, -0x1f7e, 0x1f7f, -0x1fb5, 0x1fb5, -0x1fc5, 0x1fc5, -0x1fd4, 0x1fd5, -0x1fdc, 0x1fdc, -0x1ff0, 0x1ff1, -0x1ff5, 0x1ff5, -0x1fff, 0x1fff, -0x2065, 0x2065, -0x2072, 0x2073, -0x208f, 0x208f, -0x209d, 0x209f, -0x20c0, 0x20cf, -0x20f1, 0x20ff, -0x218c, 0x218f, -0x2427, 0x243f, -0x244b, 0x245f, -0x2b74, 0x2b75, -0x2b96, 0x2b97, -0x2c2f, 0x2c2f, -0x2c5f, 0x2c5f, -0x2cf4, 0x2cf8, -0x2d26, 0x2d26, -0x2d28, 0x2d2c, -0x2d2e, 0x2d2f, -0x2d68, 0x2d6e, -0x2d71, 0x2d7e, -0x2d97, 0x2d9f, -0x2da7, 0x2da7, -0x2daf, 0x2daf, -0x2db7, 0x2db7, -0x2dbf, 0x2dbf, -0x2dc7, 0x2dc7, -0x2dcf, 0x2dcf, -0x2dd7, 0x2dd7, -0x2ddf, 0x2ddf, -0x2e50, 0x2e7f, -0x2e9a, 0x2e9a, -0x2ef4, 0x2eff, -0x2fd6, 0x2fef, -0x2ffc, 0x2fff, -0x3040, 0x3040, -0x3097, 0x3098, -0x3100, 0x3104, -0x3130, 0x3130, -0x318f, 0x318f, -0x31bb, 0x31bf, -0x31e4, 0x31ef, -0x321f, 0x321f, -0x4db6, 0x4dbf, -0x9ff0, 0x9fff, -0xa48d, 0xa48f, -0xa4c7, 0xa4cf, -0xa62c, 0xa63f, -0xa6f8, 0xa6ff, -0xa7c0, 0xa7c1, -0xa7c7, 0xa7f6, -0xa82c, 0xa82f, -0xa83a, 0xa83f, -0xa878, 0xa87f, -0xa8c6, 0xa8cd, -0xa8da, 0xa8df, -0xa954, 0xa95e, -0xa97d, 0xa97f, -0xa9ce, 0xa9ce, -0xa9da, 0xa9dd, -0xa9ff, 0xa9ff, -0xaa37, 0xaa3f, -0xaa4e, 0xaa4f, -0xaa5a, 0xaa5b, -0xaac3, 0xaada, -0xaaf7, 0xab00, -0xab07, 0xab08, -0xab0f, 0xab10, -0xab17, 0xab1f, -0xab27, 0xab27, -0xab2f, 0xab2f, -0xab68, 0xab6f, -0xabee, 0xabef, -0xabfa, 0xabff, -0xd7a4, 0xd7af, -0xd7c7, 0xd7ca, -0xd7fc, 0xf8ff, -0xfa6e, 0xfa6f, -0xfada, 0xfaff, -0xfb07, 0xfb12, -0xfb18, 0xfb1c, -0xfb37, 0xfb37, -0xfb3d, 0xfb3d, -0xfb3f, 0xfb3f, -0xfb42, 0xfb42, -0xfb45, 0xfb45, -0xfbc2, 0xfbd2, -0xfd40, 0xfd4f, -0xfd90, 0xfd91, -0xfdc8, 0xfdef, -0xfdfe, 0xfdff, -0xfe1a, 0xfe1f, -0xfe53, 0xfe53, -0xfe67, 0xfe67, -0xfe6c, 0xfe6f, -0xfe75, 0xfe75, -0xfefd, 0xfefe, -0xff00, 0xff00, -0xffbf, 0xffc1, -0xffc8, 0xffc9, -0xffd0, 0xffd1, -0xffd8, 0xffd9, -0xffdd, 0xffdf, -0xffe7, 0xffe7, -0xffef, 0xfff8, -0xfffe, 0xffff, -0x1000c, 0x1000c, -0x10027, 0x10027, -0x1003b, 0x1003b, -0x1003e, 0x1003e, -0x1004e, 0x1004f, -0x1005e, 0x1007f, -0x100fb, 0x100ff, -0x10103, 0x10106, -0x10134, 0x10136, -0x1018f, 0x1018f, -0x1019c, 0x1019f, -0x101a1, 0x101cf, -0x101fe, 0x1027f, -0x1029d, 0x1029f, -0x102d1, 0x102df, -0x102fc, 0x102ff, -0x10324, 0x1032c, -0x1034b, 0x1034f, -0x1037b, 0x1037f, -0x1039e, 0x1039e, -0x103c4, 0x103c7, -0x103d6, 0x103ff, -0x1049e, 0x1049f, -0x104aa, 0x104af, -0x104d4, 0x104d7, -0x104fc, 0x104ff, -0x10528, 0x1052f, -0x10564, 0x1056e, -0x10570, 0x105ff, -0x10737, 0x1073f, -0x10756, 0x1075f, -0x10768, 0x107ff, -0x10806, 0x10807, -0x10809, 0x10809, -0x10836, 0x10836, -0x10839, 0x1083b, -0x1083d, 0x1083e, -0x10856, 0x10856, -0x1089f, 0x108a6, -0x108b0, 0x108df, -0x108f3, 0x108f3, -0x108f6, 0x108fa, -0x1091c, 0x1091e, -0x1093a, 0x1093e, -0x10940, 0x1097f, -0x109b8, 0x109bb, -0x109d0, 0x109d1, -0x10a04, 0x10a04, -0x10a07, 0x10a0b, -0x10a14, 0x10a14, -0x10a18, 0x10a18, -0x10a36, 0x10a37, -0x10a3b, 0x10a3e, -0x10a49, 0x10a4f, -0x10a59, 0x10a5f, -0x10aa0, 0x10abf, -0x10ae7, 0x10aea, -0x10af7, 0x10aff, -0x10b36, 0x10b38, -0x10b56, 0x10b57, -0x10b73, 0x10b77, -0x10b92, 0x10b98, -0x10b9d, 0x10ba8, -0x10bb0, 0x10bff, -0x10c49, 0x10c7f, -0x10cb3, 0x10cbf, -0x10cf3, 0x10cf9, -0x10d28, 0x10d2f, -0x10d3a, 0x10e5f, -0x10e7f, 0x10eff, -0x10f28, 0x10f2f, -0x10f5a, 0x10fdf, -0x10ff7, 0x10fff, -0x1104e, 0x11051, -0x11070, 0x1107e, -0x110c2, 0x110cc, -0x110ce, 0x110cf, -0x110e9, 0x110ef, -0x110fa, 0x110ff, -0x11135, 0x11135, -0x11147, 0x1114f, -0x11177, 0x1117f, -0x111ce, 0x111cf, -0x111e0, 0x111e0, -0x111f5, 0x111ff, -0x11212, 0x11212, -0x1123f, 0x1127f, -0x11287, 0x11287, -0x11289, 0x11289, -0x1128e, 0x1128e, -0x1129e, 0x1129e, -0x112aa, 0x112af, -0x112eb, 0x112ef, -0x112fa, 0x112ff, -0x11304, 0x11304, -0x1130d, 0x1130e, -0x11311, 0x11312, -0x11329, 0x11329, -0x11331, 0x11331, -0x11334, 0x11334, -0x1133a, 0x1133a, -0x11345, 0x11346, -0x11349, 0x1134a, -0x1134e, 0x1134f, -0x11351, 0x11356, -0x11358, 0x1135c, -0x11364, 0x11365, -0x1136d, 0x1136f, -0x11375, 0x113ff, -0x1145a, 0x1145a, -0x1145c, 0x1145c, -0x11460, 0x1147f, -0x114c8, 0x114cf, -0x114da, 0x1157f, -0x115b6, 0x115b7, -0x115de, 0x115ff, -0x11645, 0x1164f, -0x1165a, 0x1165f, -0x1166d, 0x1167f, -0x116b9, 0x116bf, -0x116ca, 0x116ff, -0x1171b, 0x1171c, -0x1172c, 0x1172f, -0x11740, 0x117ff, -0x1183c, 0x1189f, -0x118f3, 0x118fe, -0x11900, 0x1199f, -0x119a8, 0x119a9, -0x119d8, 0x119d9, -0x119e5, 0x119ff, -0x11a48, 0x11a4f, -0x11aa3, 0x11abf, -0x11af9, 0x11bff, -0x11c09, 0x11c09, -0x11c37, 0x11c37, -0x11c46, 0x11c4f, -0x11c6d, 0x11c6f, -0x11c90, 0x11c91, -0x11ca8, 0x11ca8, -0x11cb7, 0x11cff, -0x11d07, 0x11d07, -0x11d0a, 0x11d0a, -0x11d37, 0x11d39, -0x11d3b, 0x11d3b, -0x11d3e, 0x11d3e, -0x11d48, 0x11d4f, -0x11d5a, 0x11d5f, -0x11d66, 0x11d66, -0x11d69, 0x11d69, -0x11d8f, 0x11d8f, -0x11d92, 0x11d92, -0x11d99, 0x11d9f, -0x11daa, 0x11edf, -0x11ef9, 0x11fbf, -0x11ff2, 0x11ffe, -0x1239a, 0x123ff, -0x1246f, 0x1246f, -0x12475, 0x1247f, -0x12544, 0x12fff, -0x1342f, 0x1342f, -0x13439, 0x143ff, -0x14647, 0x167ff, -0x16a39, 0x16a3f, -0x16a5f, 0x16a5f, -0x16a6a, 0x16a6d, -0x16a70, 0x16acf, -0x16aee, 0x16aef, -0x16af6, 0x16aff, -0x16b46, 0x16b4f, -0x16b5a, 0x16b5a, -0x16b62, 0x16b62, -0x16b78, 0x16b7c, -0x16b90, 0x16e3f, -0x16e9b, 0x16eff, -0x16f4b, 0x16f4e, -0x16f88, 0x16f8e, -0x16fa0, 0x16fdf, -0x16fe4, 0x16fff, -0x187f8, 0x187ff, -0x18af3, 0x1afff, -0x1b11f, 0x1b14f, -0x1b153, 0x1b163, -0x1b168, 0x1b16f, -0x1b2fc, 0x1bbff, -0x1bc6b, 0x1bc6f, -0x1bc7d, 0x1bc7f, -0x1bc89, 0x1bc8f, -0x1bc9a, 0x1bc9b, -0x1bca4, 0x1cfff, -0x1d0f6, 0x1d0ff, -0x1d127, 0x1d128, -0x1d1e9, 0x1d1ff, -0x1d246, 0x1d2df, -0x1d2f4, 0x1d2ff, -0x1d357, 0x1d35f, -0x1d379, 0x1d3ff, -0x1d455, 0x1d455, -0x1d49d, 0x1d49d, -0x1d4a0, 0x1d4a1, -0x1d4a3, 0x1d4a4, -0x1d4a7, 0x1d4a8, -0x1d4ad, 0x1d4ad, -0x1d4ba, 0x1d4ba, -0x1d4bc, 0x1d4bc, -0x1d4c4, 0x1d4c4, -0x1d506, 0x1d506, -0x1d50b, 0x1d50c, -0x1d515, 0x1d515, -0x1d51d, 0x1d51d, -0x1d53a, 0x1d53a, -0x1d53f, 0x1d53f, -0x1d545, 0x1d545, -0x1d547, 0x1d549, -0x1d551, 0x1d551, -0x1d6a6, 0x1d6a7, -0x1d7cc, 0x1d7cd, -0x1da8c, 0x1da9a, -0x1daa0, 0x1daa0, -0x1dab0, 0x1dfff, -0x1e007, 0x1e007, -0x1e019, 0x1e01a, -0x1e022, 0x1e022, -0x1e025, 0x1e025, -0x1e02b, 0x1e0ff, -0x1e12d, 0x1e12f, -0x1e13e, 0x1e13f, -0x1e14a, 0x1e14d, -0x1e150, 0x1e2bf, -0x1e2fa, 0x1e2fe, -0x1e300, 0x1e7ff, -0x1e8c5, 0x1e8c6, -0x1e8d7, 0x1e8ff, -0x1e94c, 0x1e94f, -0x1e95a, 0x1e95d, -0x1e960, 0x1ec70, -0x1ecb5, 0x1ed00, -0x1ed3e, 0x1edff, -0x1ee04, 0x1ee04, -0x1ee20, 0x1ee20, -0x1ee23, 0x1ee23, -0x1ee25, 0x1ee26, -0x1ee28, 0x1ee28, -0x1ee33, 0x1ee33, -0x1ee38, 0x1ee38, -0x1ee3a, 0x1ee3a, -0x1ee3c, 0x1ee41, -0x1ee43, 0x1ee46, -0x1ee48, 0x1ee48, -0x1ee4a, 0x1ee4a, -0x1ee4c, 0x1ee4c, -0x1ee50, 0x1ee50, -0x1ee53, 0x1ee53, -0x1ee55, 0x1ee56, -0x1ee58, 0x1ee58, -0x1ee5a, 0x1ee5a, -0x1ee5c, 0x1ee5c, -0x1ee5e, 0x1ee5e, -0x1ee60, 0x1ee60, -0x1ee63, 0x1ee63, -0x1ee65, 0x1ee66, -0x1ee6b, 0x1ee6b, -0x1ee73, 0x1ee73, -0x1ee78, 0x1ee78, -0x1ee7d, 0x1ee7d, -0x1ee7f, 0x1ee7f, -0x1ee8a, 0x1ee8a, -0x1ee9c, 0x1eea0, -0x1eea4, 0x1eea4, -0x1eeaa, 0x1eeaa, -0x1eebc, 0x1eeef, -0x1eef2, 0x1efff, -0x1f02c, 0x1f02f, -0x1f094, 0x1f09f, -0x1f0af, 0x1f0b0, -0x1f0c0, 0x1f0c0, -0x1f0d0, 0x1f0d0, -0x1f0f6, 0x1f0ff, -0x1f10d, 0x1f10f, -0x1f16d, 0x1f16f, -0x1f1ad, 0x1f1e5, -0x1f203, 0x1f20f, -0x1f23c, 0x1f23f, -0x1f249, 0x1f24f, -0x1f252, 0x1f25f, -0x1f266, 0x1f2ff, -0x1f6d6, 0x1f6df, -0x1f6ed, 0x1f6ef, -0x1f6fb, 0x1f6ff, -0x1f774, 0x1f77f, -0x1f7d9, 0x1f7df, -0x1f7ec, 0x1f7ff, -0x1f80c, 0x1f80f, -0x1f848, 0x1f84f, -0x1f85a, 0x1f85f, -0x1f888, 0x1f88f, -0x1f8ae, 0x1f8ff, -0x1f90c, 0x1f90c, -0x1f972, 0x1f972, -0x1f977, 0x1f979, -0x1f9a3, 0x1f9a4, -0x1f9ab, 0x1f9ad, -0x1f9cb, 0x1f9cc, -0x1fa54, 0x1fa5f, -0x1fa6e, 0x1fa6f, -0x1fa74, 0x1fa77, -0x1fa7b, 0x1fa7f, -0x1fa83, 0x1fa8f, -0x1fa96, 0x1ffff, -0x2a6d7, 0x2a6ff, -0x2b735, 0x2b73f, -0x2b81e, 0x2b81f, -0x2cea2, 0x2ceaf, -0x2ebe1, 0x2f7ff, -0x2fa1e, 0xe0000, -0xe0002, 0xe001f, -0xe0080, 0xe00ff, -0xe01f0, 0x10ffff, -}; /* END of CR_Unknown */ - -/* PROPERTY: 'Uppercase': Derived Property */ -#define CR_Uppercase CR_Upper - -/* PROPERTY: 'Vai': Script */ -static const OnigCodePoint -CR_Vai[] = { 1, -0xa500, 0xa62b, -}; /* END of CR_Vai */ - -/* PROPERTY: 'Variation_Selector': Binary Property */ -static const OnigCodePoint -CR_Variation_Selector[] = { 3, -0x180b, 0x180d, -0xfe00, 0xfe0f, -0xe0100, 0xe01ef, -}; /* END of CR_Variation_Selector */ - -/* PROPERTY: 'Wancho': Script */ -static const OnigCodePoint -CR_Wancho[] = { 2, -0x1e2c0, 0x1e2f9, -0x1e2ff, 0x1e2ff, -}; /* END of CR_Wancho */ - -/* PROPERTY: 'Warang_Citi': Script */ -static const OnigCodePoint -CR_Warang_Citi[] = { 2, -0x118a0, 0x118f2, -0x118ff, 0x118ff, -}; /* END of CR_Warang_Citi */ - -/* PROPERTY: 'White_Space': Binary Property */ -#define CR_White_Space CR_Space - -/* PROPERTY: 'XID_Continue': Derived Property */ -static const OnigCodePoint -CR_XID_Continue[] = { 720, -0x0030, 0x0039, -0x0041, 0x005a, -0x005f, 0x005f, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00b7, 0x00b7, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0300, 0x0374, -0x0376, 0x0377, -0x037b, 0x037d, -0x037f, 0x037f, -0x0386, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x0483, 0x0487, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0669, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06df, 0x06e8, -0x06ea, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07f5, -0x07fa, 0x07fa, -0x07fd, 0x07fd, -0x0800, 0x082d, -0x0840, 0x085b, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x08e1, -0x08e3, 0x0963, -0x0966, 0x096f, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09f1, -0x09fc, 0x09fc, -0x09fe, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0aef, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b6f, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bef, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d66, 0x0d6f, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e4e, -0x0e50, 0x0e59, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f18, 0x0f19, -0x0f20, 0x0f29, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f3e, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f84, -0x0f86, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x1000, 0x1049, -0x1050, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x135f, -0x1369, 0x1371, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1734, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17d3, -0x17d7, 0x17d7, -0x17dc, 0x17dd, -0x17e0, 0x17e9, -0x180b, 0x180d, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1946, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa7, 0x1aa7, -0x1ab0, 0x1abd, -0x1b00, 0x1b4b, -0x1b50, 0x1b59, -0x1b6b, 0x1b73, -0x1b80, 0x1bf3, -0x1c00, 0x1c37, -0x1c40, 0x1c49, -0x1c4d, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1cd0, 0x1cd2, -0x1cd4, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x203f, 0x2040, -0x2054, 0x2054, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x20d0, 0x20dc, -0x20e1, 0x20e1, -0x20e5, 0x20f0, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2118, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x3005, 0x3007, -0x3021, 0x302f, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x3099, 0x309a, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa62b, -0xa640, 0xa66f, -0xa674, 0xa67d, -0xa67f, 0xa6f1, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c5, -0xa8d0, 0xa8d9, -0xa8e0, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa92d, -0xa930, 0xa953, -0xa960, 0xa97c, -0xa980, 0xa9c0, -0xa9cf, 0xa9d9, -0xa9e0, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa60, 0xaa76, -0xaa7a, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xabec, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfc5d, -0xfc64, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdf9, -0xfe00, 0xfe0f, -0xfe20, 0xfe2f, -0xfe33, 0xfe34, -0xfe4d, 0xfe4f, -0xfe71, 0xfe71, -0xfe73, 0xfe73, -0xfe77, 0xfe77, -0xfe79, 0xfe79, -0xfe7b, 0xfe7b, -0xfe7d, 0xfe7d, -0xfe7f, 0xfefc, -0xff10, 0xff19, -0xff21, 0xff3a, -0xff3f, 0xff3f, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x101fd, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102e0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae6, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10d30, 0x10d39, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f50, -0x10fe0, 0x10ff6, -0x11000, 0x11046, -0x11066, 0x1106f, -0x1107f, 0x110ba, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x1113f, -0x11144, 0x11146, -0x11150, 0x11173, -0x11176, 0x11176, -0x11180, 0x111c4, -0x111c9, 0x111cc, -0x111d0, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x1144a, -0x11450, 0x11459, -0x1145e, 0x1145f, -0x11480, 0x114c5, -0x114c7, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115c0, -0x115d8, 0x115dd, -0x11600, 0x11640, -0x11644, 0x11644, -0x11650, 0x11659, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x11739, -0x11800, 0x1183a, -0x118a0, 0x118e9, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a3e, -0x11a47, 0x11a47, -0x11a50, 0x11a99, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c40, -0x11c50, 0x11c59, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16ad0, 0x16aed, -0x16af0, 0x16af4, -0x16b00, 0x16b36, -0x16b40, 0x16b43, -0x16b50, 0x16b59, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9d, 0x1bc9e, -0x1d165, 0x1d169, -0x1d16d, 0x1d172, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2f9, -0x1e800, 0x1e8c4, -0x1e8d0, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0100, 0xe01ef, -}; /* END of CR_XID_Continue */ - -/* PROPERTY: 'XID_Start': Derived Property */ -static const OnigCodePoint -CR_XID_Start[] = { 616, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0370, 0x0374, -0x0376, 0x0377, -0x037b, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0620, 0x064a, -0x066e, 0x066f, -0x0671, 0x06d3, -0x06d5, 0x06d5, -0x06e5, 0x06e6, -0x06ee, 0x06ef, -0x06fa, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x0710, -0x0712, 0x072f, -0x074d, 0x07a5, -0x07b1, 0x07b1, -0x07ca, 0x07ea, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x0800, 0x0815, -0x081a, 0x081a, -0x0824, 0x0824, -0x0828, 0x0828, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x0904, 0x0939, -0x093d, 0x093d, -0x0950, 0x0950, -0x0958, 0x0961, -0x0971, 0x0980, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09bd, -0x09ce, 0x09ce, -0x09dc, 0x09dd, -0x09df, 0x09e1, -0x09f0, 0x09f1, -0x09fc, 0x09fc, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a72, 0x0a74, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0abd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae1, -0x0af9, 0x0af9, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b3d, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b61, -0x0b71, 0x0b71, -0x0b83, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bd0, 0x0bd0, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c3d, -0x0c58, 0x0c5a, -0x0c60, 0x0c61, -0x0c80, 0x0c80, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cbd, -0x0cde, 0x0cde, -0x0ce0, 0x0ce1, -0x0cf1, 0x0cf2, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d3d, -0x0d4e, 0x0d4e, -0x0d54, 0x0d56, -0x0d5f, 0x0d61, -0x0d7a, 0x0d7f, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0e01, 0x0e30, -0x0e32, 0x0e32, -0x0e40, 0x0e46, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb0, -0x0eb2, 0x0eb2, -0x0ebd, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f88, 0x0f8c, -0x1000, 0x102a, -0x103f, 0x103f, -0x1050, 0x1055, -0x105a, 0x105d, -0x1061, 0x1061, -0x1065, 0x1066, -0x106e, 0x1070, -0x1075, 0x1081, -0x108e, 0x108e, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1711, -0x1720, 0x1731, -0x1740, 0x1751, -0x1760, 0x176c, -0x176e, 0x1770, -0x1780, 0x17b3, -0x17d7, 0x17d7, -0x17dc, 0x17dc, -0x1820, 0x1878, -0x1880, 0x18a8, -0x18aa, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1950, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x1a00, 0x1a16, -0x1a20, 0x1a54, -0x1aa7, 0x1aa7, -0x1b05, 0x1b33, -0x1b45, 0x1b4b, -0x1b83, 0x1ba0, -0x1bae, 0x1baf, -0x1bba, 0x1be5, -0x1c00, 0x1c23, -0x1c4d, 0x1c4f, -0x1c5a, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2118, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x3005, 0x3007, -0x3021, 0x3029, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa61f, -0xa62a, 0xa62b, -0xa640, 0xa66e, -0xa67f, 0xa69d, -0xa6a0, 0xa6ef, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa801, -0xa803, 0xa805, -0xa807, 0xa80a, -0xa80c, 0xa822, -0xa840, 0xa873, -0xa882, 0xa8b3, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa8fe, -0xa90a, 0xa925, -0xa930, 0xa946, -0xa960, 0xa97c, -0xa984, 0xa9b2, -0xa9cf, 0xa9cf, -0xa9e0, 0xa9e4, -0xa9e6, 0xa9ef, -0xa9fa, 0xa9fe, -0xaa00, 0xaa28, -0xaa40, 0xaa42, -0xaa44, 0xaa4b, -0xaa60, 0xaa76, -0xaa7a, 0xaa7a, -0xaa7e, 0xaaaf, -0xaab1, 0xaab1, -0xaab5, 0xaab6, -0xaab9, 0xaabd, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaea, -0xaaf2, 0xaaf4, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabe2, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb1d, -0xfb1f, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfc5d, -0xfc64, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdf9, -0xfe71, 0xfe71, -0xfe73, 0xfe73, -0xfe77, 0xfe77, -0xfe79, 0xfe79, -0xfe7b, 0xfe7b, -0xfe7d, 0xfe7d, -0xfe7f, 0xfefc, -0xff21, 0xff3a, -0xff41, 0xff5a, -0xff66, 0xff9d, -0xffa0, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x10375, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a00, -0x10a10, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d23, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11003, 0x11037, -0x11083, 0x110af, -0x110d0, 0x110e8, -0x11103, 0x11126, -0x11144, 0x11144, -0x11150, 0x11172, -0x11176, 0x11176, -0x11183, 0x111b2, -0x111c1, 0x111c4, -0x111da, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x1122b, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112de, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x1133d, -0x11350, 0x11350, -0x1135d, 0x11361, -0x11400, 0x11434, -0x11447, 0x1144a, -0x1145f, 0x1145f, -0x11480, 0x114af, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x11580, 0x115ae, -0x115d8, 0x115db, -0x11600, 0x1162f, -0x11644, 0x11644, -0x11680, 0x116aa, -0x116b8, 0x116b8, -0x11700, 0x1171a, -0x11800, 0x1182b, -0x118a0, 0x118df, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d0, -0x119e1, 0x119e1, -0x119e3, 0x119e3, -0x11a00, 0x11a00, -0x11a0b, 0x11a32, -0x11a3a, 0x11a3a, -0x11a50, 0x11a50, -0x11a5c, 0x11a89, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c2e, -0x11c40, 0x11c40, -0x11c72, 0x11c8f, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d30, -0x11d46, 0x11d46, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d89, -0x11d98, 0x11d98, -0x11ee0, 0x11ef2, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b40, 0x16b43, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f50, 0x16f50, -0x16f93, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e800, 0x1e8c4, -0x1e900, 0x1e943, -0x1e94b, 0x1e94b, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_XID_Start */ - -/* PROPERTY: 'Yi': Script */ -static const OnigCodePoint -CR_Yi[] = { 2, -0xa000, 0xa48c, -0xa490, 0xa4c6, -}; /* END of CR_Yi */ - -/* PROPERTY: 'Z': Major Category */ -static const OnigCodePoint -CR_Z[] = { 8, -0x0020, 0x0020, -0x00a0, 0x00a0, -0x1680, 0x1680, -0x2000, 0x200a, -0x2028, 0x2029, -0x202f, 0x202f, -0x205f, 0x205f, -0x3000, 0x3000, -}; /* END of CR_Z */ - -/* PROPERTY: 'Zanabazar_Square': Script */ -static const OnigCodePoint -CR_Zanabazar_Square[] = { 1, -0x11a00, 0x11a47, -}; /* END of CR_Zanabazar_Square */ - -/* PROPERTY: 'Zl': General Category */ -static const OnigCodePoint -CR_Zl[] = { 1, -0x2028, 0x2028, -}; /* END of CR_Zl */ - -/* PROPERTY: 'Zp': General Category */ -static const OnigCodePoint -CR_Zp[] = { 1, -0x2029, 0x2029, -}; /* END of CR_Zp */ - -/* PROPERTY: 'Zs': General Category */ -static const OnigCodePoint -CR_Zs[] = { 7, -0x0020, 0x0020, -0x00a0, 0x00a0, -0x1680, 0x1680, -0x2000, 0x200a, -0x202f, 0x202f, -0x205f, 0x205f, -0x3000, 0x3000, -}; /* END of CR_Zs */ - -/* PROPERTY: 'In_Basic_Latin': Block */ -#define CR_In_Basic_Latin CR_ASCII - -/* PROPERTY: 'In_Latin_1_Supplement': Block */ -static const OnigCodePoint -CR_In_Latin_1_Supplement[] = { 1, -0x0080, 0x00ff, -}; /* END of CR_In_Latin_1_Supplement */ - -/* PROPERTY: 'In_Latin_Extended_A': Block */ -static const OnigCodePoint -CR_In_Latin_Extended_A[] = { 1, -0x0100, 0x017f, -}; /* END of CR_In_Latin_Extended_A */ - -/* PROPERTY: 'In_Latin_Extended_B': Block */ -static const OnigCodePoint -CR_In_Latin_Extended_B[] = { 1, -0x0180, 0x024f, -}; /* END of CR_In_Latin_Extended_B */ - -/* PROPERTY: 'In_IPA_Extensions': Block */ -static const OnigCodePoint -CR_In_IPA_Extensions[] = { 1, -0x0250, 0x02af, -}; /* END of CR_In_IPA_Extensions */ - -/* PROPERTY: 'In_Spacing_Modifier_Letters': Block */ -static const OnigCodePoint -CR_In_Spacing_Modifier_Letters[] = { 1, -0x02b0, 0x02ff, -}; /* END of CR_In_Spacing_Modifier_Letters */ - -/* PROPERTY: 'In_Combining_Diacritical_Marks': Block */ -static const OnigCodePoint -CR_In_Combining_Diacritical_Marks[] = { 1, -0x0300, 0x036f, -}; /* END of CR_In_Combining_Diacritical_Marks */ - -/* PROPERTY: 'In_Greek_and_Coptic': Block */ -static const OnigCodePoint -CR_In_Greek_and_Coptic[] = { 1, -0x0370, 0x03ff, -}; /* END of CR_In_Greek_and_Coptic */ - -/* PROPERTY: 'In_Cyrillic': Block */ -static const OnigCodePoint -CR_In_Cyrillic[] = { 1, -0x0400, 0x04ff, -}; /* END of CR_In_Cyrillic */ - -/* PROPERTY: 'In_Cyrillic_Supplement': Block */ -static const OnigCodePoint -CR_In_Cyrillic_Supplement[] = { 1, -0x0500, 0x052f, -}; /* END of CR_In_Cyrillic_Supplement */ - -/* PROPERTY: 'In_Armenian': Block */ -static const OnigCodePoint -CR_In_Armenian[] = { 1, -0x0530, 0x058f, -}; /* END of CR_In_Armenian */ - -/* PROPERTY: 'In_Hebrew': Block */ -static const OnigCodePoint -CR_In_Hebrew[] = { 1, -0x0590, 0x05ff, -}; /* END of CR_In_Hebrew */ - -/* PROPERTY: 'In_Arabic': Block */ -static const OnigCodePoint -CR_In_Arabic[] = { 1, -0x0600, 0x06ff, -}; /* END of CR_In_Arabic */ - -/* PROPERTY: 'In_Syriac': Block */ -static const OnigCodePoint -CR_In_Syriac[] = { 1, -0x0700, 0x074f, -}; /* END of CR_In_Syriac */ - -/* PROPERTY: 'In_Arabic_Supplement': Block */ -static const OnigCodePoint -CR_In_Arabic_Supplement[] = { 1, -0x0750, 0x077f, -}; /* END of CR_In_Arabic_Supplement */ - -/* PROPERTY: 'In_Thaana': Block */ -static const OnigCodePoint -CR_In_Thaana[] = { 1, -0x0780, 0x07bf, -}; /* END of CR_In_Thaana */ - -/* PROPERTY: 'In_NKo': Block */ -static const OnigCodePoint -CR_In_NKo[] = { 1, -0x07c0, 0x07ff, -}; /* END of CR_In_NKo */ - -/* PROPERTY: 'In_Samaritan': Block */ -static const OnigCodePoint -CR_In_Samaritan[] = { 1, -0x0800, 0x083f, -}; /* END of CR_In_Samaritan */ - -/* PROPERTY: 'In_Mandaic': Block */ -static const OnigCodePoint -CR_In_Mandaic[] = { 1, -0x0840, 0x085f, -}; /* END of CR_In_Mandaic */ - -/* PROPERTY: 'In_Syriac_Supplement': Block */ -static const OnigCodePoint -CR_In_Syriac_Supplement[] = { 1, -0x0860, 0x086f, -}; /* END of CR_In_Syriac_Supplement */ - -/* PROPERTY: 'In_Arabic_Extended_A': Block */ -static const OnigCodePoint -CR_In_Arabic_Extended_A[] = { 1, -0x08a0, 0x08ff, -}; /* END of CR_In_Arabic_Extended_A */ - -/* PROPERTY: 'In_Devanagari': Block */ -static const OnigCodePoint -CR_In_Devanagari[] = { 1, -0x0900, 0x097f, -}; /* END of CR_In_Devanagari */ - -/* PROPERTY: 'In_Bengali': Block */ -static const OnigCodePoint -CR_In_Bengali[] = { 1, -0x0980, 0x09ff, -}; /* END of CR_In_Bengali */ - -/* PROPERTY: 'In_Gurmukhi': Block */ -static const OnigCodePoint -CR_In_Gurmukhi[] = { 1, -0x0a00, 0x0a7f, -}; /* END of CR_In_Gurmukhi */ - -/* PROPERTY: 'In_Gujarati': Block */ -static const OnigCodePoint -CR_In_Gujarati[] = { 1, -0x0a80, 0x0aff, -}; /* END of CR_In_Gujarati */ - -/* PROPERTY: 'In_Oriya': Block */ -static const OnigCodePoint -CR_In_Oriya[] = { 1, -0x0b00, 0x0b7f, -}; /* END of CR_In_Oriya */ - -/* PROPERTY: 'In_Tamil': Block */ -static const OnigCodePoint -CR_In_Tamil[] = { 1, -0x0b80, 0x0bff, -}; /* END of CR_In_Tamil */ - -/* PROPERTY: 'In_Telugu': Block */ -static const OnigCodePoint -CR_In_Telugu[] = { 1, -0x0c00, 0x0c7f, -}; /* END of CR_In_Telugu */ - -/* PROPERTY: 'In_Kannada': Block */ -static const OnigCodePoint -CR_In_Kannada[] = { 1, -0x0c80, 0x0cff, -}; /* END of CR_In_Kannada */ - -/* PROPERTY: 'In_Malayalam': Block */ -static const OnigCodePoint -CR_In_Malayalam[] = { 1, -0x0d00, 0x0d7f, -}; /* END of CR_In_Malayalam */ - -/* PROPERTY: 'In_Sinhala': Block */ -static const OnigCodePoint -CR_In_Sinhala[] = { 1, -0x0d80, 0x0dff, -}; /* END of CR_In_Sinhala */ - -/* PROPERTY: 'In_Thai': Block */ -static const OnigCodePoint -CR_In_Thai[] = { 1, -0x0e00, 0x0e7f, -}; /* END of CR_In_Thai */ - -/* PROPERTY: 'In_Lao': Block */ -static const OnigCodePoint -CR_In_Lao[] = { 1, -0x0e80, 0x0eff, -}; /* END of CR_In_Lao */ - -/* PROPERTY: 'In_Tibetan': Block */ -static const OnigCodePoint -CR_In_Tibetan[] = { 1, -0x0f00, 0x0fff, -}; /* END of CR_In_Tibetan */ - -/* PROPERTY: 'In_Myanmar': Block */ -static const OnigCodePoint -CR_In_Myanmar[] = { 1, -0x1000, 0x109f, -}; /* END of CR_In_Myanmar */ - -/* PROPERTY: 'In_Georgian': Block */ -static const OnigCodePoint -CR_In_Georgian[] = { 1, -0x10a0, 0x10ff, -}; /* END of CR_In_Georgian */ - -/* PROPERTY: 'In_Hangul_Jamo': Block */ -static const OnigCodePoint -CR_In_Hangul_Jamo[] = { 1, -0x1100, 0x11ff, -}; /* END of CR_In_Hangul_Jamo */ - -/* PROPERTY: 'In_Ethiopic': Block */ -static const OnigCodePoint -CR_In_Ethiopic[] = { 1, -0x1200, 0x137f, -}; /* END of CR_In_Ethiopic */ - -/* PROPERTY: 'In_Ethiopic_Supplement': Block */ -static const OnigCodePoint -CR_In_Ethiopic_Supplement[] = { 1, -0x1380, 0x139f, -}; /* END of CR_In_Ethiopic_Supplement */ - -/* PROPERTY: 'In_Cherokee': Block */ -static const OnigCodePoint -CR_In_Cherokee[] = { 1, -0x13a0, 0x13ff, -}; /* END of CR_In_Cherokee */ - -/* PROPERTY: 'In_Unified_Canadian_Aboriginal_Syllabics': Block */ -static const OnigCodePoint -CR_In_Unified_Canadian_Aboriginal_Syllabics[] = { 1, -0x1400, 0x167f, -}; /* END of CR_In_Unified_Canadian_Aboriginal_Syllabics */ - -/* PROPERTY: 'In_Ogham': Block */ -static const OnigCodePoint -CR_In_Ogham[] = { 1, -0x1680, 0x169f, -}; /* END of CR_In_Ogham */ - -/* PROPERTY: 'In_Runic': Block */ -static const OnigCodePoint -CR_In_Runic[] = { 1, -0x16a0, 0x16ff, -}; /* END of CR_In_Runic */ - -/* PROPERTY: 'In_Tagalog': Block */ -static const OnigCodePoint -CR_In_Tagalog[] = { 1, -0x1700, 0x171f, -}; /* END of CR_In_Tagalog */ - -/* PROPERTY: 'In_Hanunoo': Block */ -static const OnigCodePoint -CR_In_Hanunoo[] = { 1, -0x1720, 0x173f, -}; /* END of CR_In_Hanunoo */ - -/* PROPERTY: 'In_Buhid': Block */ -static const OnigCodePoint -CR_In_Buhid[] = { 1, -0x1740, 0x175f, -}; /* END of CR_In_Buhid */ - -/* PROPERTY: 'In_Tagbanwa': Block */ -static const OnigCodePoint -CR_In_Tagbanwa[] = { 1, -0x1760, 0x177f, -}; /* END of CR_In_Tagbanwa */ - -/* PROPERTY: 'In_Khmer': Block */ -static const OnigCodePoint -CR_In_Khmer[] = { 1, -0x1780, 0x17ff, -}; /* END of CR_In_Khmer */ - -/* PROPERTY: 'In_Mongolian': Block */ -static const OnigCodePoint -CR_In_Mongolian[] = { 1, -0x1800, 0x18af, -}; /* END of CR_In_Mongolian */ - -/* PROPERTY: 'In_Unified_Canadian_Aboriginal_Syllabics_Extended': Block */ -static const OnigCodePoint -CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended[] = { 1, -0x18b0, 0x18ff, -}; /* END of CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended */ - -/* PROPERTY: 'In_Limbu': Block */ -static const OnigCodePoint -CR_In_Limbu[] = { 1, -0x1900, 0x194f, -}; /* END of CR_In_Limbu */ - -/* PROPERTY: 'In_Tai_Le': Block */ -static const OnigCodePoint -CR_In_Tai_Le[] = { 1, -0x1950, 0x197f, -}; /* END of CR_In_Tai_Le */ - -/* PROPERTY: 'In_New_Tai_Lue': Block */ -static const OnigCodePoint -CR_In_New_Tai_Lue[] = { 1, -0x1980, 0x19df, -}; /* END of CR_In_New_Tai_Lue */ - -/* PROPERTY: 'In_Khmer_Symbols': Block */ -static const OnigCodePoint -CR_In_Khmer_Symbols[] = { 1, -0x19e0, 0x19ff, -}; /* END of CR_In_Khmer_Symbols */ - -/* PROPERTY: 'In_Buginese': Block */ -static const OnigCodePoint -CR_In_Buginese[] = { 1, -0x1a00, 0x1a1f, -}; /* END of CR_In_Buginese */ - -/* PROPERTY: 'In_Tai_Tham': Block */ -static const OnigCodePoint -CR_In_Tai_Tham[] = { 1, -0x1a20, 0x1aaf, -}; /* END of CR_In_Tai_Tham */ - -/* PROPERTY: 'In_Combining_Diacritical_Marks_Extended': Block */ -static const OnigCodePoint -CR_In_Combining_Diacritical_Marks_Extended[] = { 1, -0x1ab0, 0x1aff, -}; /* END of CR_In_Combining_Diacritical_Marks_Extended */ - -/* PROPERTY: 'In_Balinese': Block */ -static const OnigCodePoint -CR_In_Balinese[] = { 1, -0x1b00, 0x1b7f, -}; /* END of CR_In_Balinese */ - -/* PROPERTY: 'In_Sundanese': Block */ -static const OnigCodePoint -CR_In_Sundanese[] = { 1, -0x1b80, 0x1bbf, -}; /* END of CR_In_Sundanese */ - -/* PROPERTY: 'In_Batak': Block */ -static const OnigCodePoint -CR_In_Batak[] = { 1, -0x1bc0, 0x1bff, -}; /* END of CR_In_Batak */ - -/* PROPERTY: 'In_Lepcha': Block */ -static const OnigCodePoint -CR_In_Lepcha[] = { 1, -0x1c00, 0x1c4f, -}; /* END of CR_In_Lepcha */ - -/* PROPERTY: 'In_Ol_Chiki': Block */ -#define CR_In_Ol_Chiki CR_Ol_Chiki - -/* PROPERTY: 'In_Cyrillic_Extended_C': Block */ -static const OnigCodePoint -CR_In_Cyrillic_Extended_C[] = { 1, -0x1c80, 0x1c8f, -}; /* END of CR_In_Cyrillic_Extended_C */ - -/* PROPERTY: 'In_Georgian_Extended': Block */ -static const OnigCodePoint -CR_In_Georgian_Extended[] = { 1, -0x1c90, 0x1cbf, -}; /* END of CR_In_Georgian_Extended */ - -/* PROPERTY: 'In_Sundanese_Supplement': Block */ -static const OnigCodePoint -CR_In_Sundanese_Supplement[] = { 1, -0x1cc0, 0x1ccf, -}; /* END of CR_In_Sundanese_Supplement */ - -/* PROPERTY: 'In_Vedic_Extensions': Block */ -static const OnigCodePoint -CR_In_Vedic_Extensions[] = { 1, -0x1cd0, 0x1cff, -}; /* END of CR_In_Vedic_Extensions */ - -/* PROPERTY: 'In_Phonetic_Extensions': Block */ -static const OnigCodePoint -CR_In_Phonetic_Extensions[] = { 1, -0x1d00, 0x1d7f, -}; /* END of CR_In_Phonetic_Extensions */ - -/* PROPERTY: 'In_Phonetic_Extensions_Supplement': Block */ -static const OnigCodePoint -CR_In_Phonetic_Extensions_Supplement[] = { 1, -0x1d80, 0x1dbf, -}; /* END of CR_In_Phonetic_Extensions_Supplement */ - -/* PROPERTY: 'In_Combining_Diacritical_Marks_Supplement': Block */ -static const OnigCodePoint -CR_In_Combining_Diacritical_Marks_Supplement[] = { 1, -0x1dc0, 0x1dff, -}; /* END of CR_In_Combining_Diacritical_Marks_Supplement */ - -/* PROPERTY: 'In_Latin_Extended_Additional': Block */ -static const OnigCodePoint -CR_In_Latin_Extended_Additional[] = { 1, -0x1e00, 0x1eff, -}; /* END of CR_In_Latin_Extended_Additional */ - -/* PROPERTY: 'In_Greek_Extended': Block */ -static const OnigCodePoint -CR_In_Greek_Extended[] = { 1, -0x1f00, 0x1fff, -}; /* END of CR_In_Greek_Extended */ - -/* PROPERTY: 'In_General_Punctuation': Block */ -static const OnigCodePoint -CR_In_General_Punctuation[] = { 1, -0x2000, 0x206f, -}; /* END of CR_In_General_Punctuation */ - -/* PROPERTY: 'In_Superscripts_and_Subscripts': Block */ -static const OnigCodePoint -CR_In_Superscripts_and_Subscripts[] = { 1, -0x2070, 0x209f, -}; /* END of CR_In_Superscripts_and_Subscripts */ - -/* PROPERTY: 'In_Currency_Symbols': Block */ -static const OnigCodePoint -CR_In_Currency_Symbols[] = { 1, -0x20a0, 0x20cf, -}; /* END of CR_In_Currency_Symbols */ - -/* PROPERTY: 'In_Combining_Diacritical_Marks_for_Symbols': Block */ -static const OnigCodePoint -CR_In_Combining_Diacritical_Marks_for_Symbols[] = { 1, -0x20d0, 0x20ff, -}; /* END of CR_In_Combining_Diacritical_Marks_for_Symbols */ - -/* PROPERTY: 'In_Letterlike_Symbols': Block */ -static const OnigCodePoint -CR_In_Letterlike_Symbols[] = { 1, -0x2100, 0x214f, -}; /* END of CR_In_Letterlike_Symbols */ - -/* PROPERTY: 'In_Number_Forms': Block */ -static const OnigCodePoint -CR_In_Number_Forms[] = { 1, -0x2150, 0x218f, -}; /* END of CR_In_Number_Forms */ - -/* PROPERTY: 'In_Arrows': Block */ -static const OnigCodePoint -CR_In_Arrows[] = { 1, -0x2190, 0x21ff, -}; /* END of CR_In_Arrows */ - -/* PROPERTY: 'In_Mathematical_Operators': Block */ -static const OnigCodePoint -CR_In_Mathematical_Operators[] = { 1, -0x2200, 0x22ff, -}; /* END of CR_In_Mathematical_Operators */ - -/* PROPERTY: 'In_Miscellaneous_Technical': Block */ -static const OnigCodePoint -CR_In_Miscellaneous_Technical[] = { 1, -0x2300, 0x23ff, -}; /* END of CR_In_Miscellaneous_Technical */ - -/* PROPERTY: 'In_Control_Pictures': Block */ -static const OnigCodePoint -CR_In_Control_Pictures[] = { 1, -0x2400, 0x243f, -}; /* END of CR_In_Control_Pictures */ - -/* PROPERTY: 'In_Optical_Character_Recognition': Block */ -static const OnigCodePoint -CR_In_Optical_Character_Recognition[] = { 1, -0x2440, 0x245f, -}; /* END of CR_In_Optical_Character_Recognition */ - -/* PROPERTY: 'In_Enclosed_Alphanumerics': Block */ -static const OnigCodePoint -CR_In_Enclosed_Alphanumerics[] = { 1, -0x2460, 0x24ff, -}; /* END of CR_In_Enclosed_Alphanumerics */ - -/* PROPERTY: 'In_Box_Drawing': Block */ -static const OnigCodePoint -CR_In_Box_Drawing[] = { 1, -0x2500, 0x257f, -}; /* END of CR_In_Box_Drawing */ - -/* PROPERTY: 'In_Block_Elements': Block */ -static const OnigCodePoint -CR_In_Block_Elements[] = { 1, -0x2580, 0x259f, -}; /* END of CR_In_Block_Elements */ - -/* PROPERTY: 'In_Geometric_Shapes': Block */ -static const OnigCodePoint -CR_In_Geometric_Shapes[] = { 1, -0x25a0, 0x25ff, -}; /* END of CR_In_Geometric_Shapes */ - -/* PROPERTY: 'In_Miscellaneous_Symbols': Block */ -static const OnigCodePoint -CR_In_Miscellaneous_Symbols[] = { 1, -0x2600, 0x26ff, -}; /* END of CR_In_Miscellaneous_Symbols */ - -/* PROPERTY: 'In_Dingbats': Block */ -static const OnigCodePoint -CR_In_Dingbats[] = { 1, -0x2700, 0x27bf, -}; /* END of CR_In_Dingbats */ - -/* PROPERTY: 'In_Miscellaneous_Mathematical_Symbols_A': Block */ -static const OnigCodePoint -CR_In_Miscellaneous_Mathematical_Symbols_A[] = { 1, -0x27c0, 0x27ef, -}; /* END of CR_In_Miscellaneous_Mathematical_Symbols_A */ - -/* PROPERTY: 'In_Supplemental_Arrows_A': Block */ -static const OnigCodePoint -CR_In_Supplemental_Arrows_A[] = { 1, -0x27f0, 0x27ff, -}; /* END of CR_In_Supplemental_Arrows_A */ - -/* PROPERTY: 'In_Braille_Patterns': Block */ -#define CR_In_Braille_Patterns CR_Braille - -/* PROPERTY: 'In_Supplemental_Arrows_B': Block */ -static const OnigCodePoint -CR_In_Supplemental_Arrows_B[] = { 1, -0x2900, 0x297f, -}; /* END of CR_In_Supplemental_Arrows_B */ - -/* PROPERTY: 'In_Miscellaneous_Mathematical_Symbols_B': Block */ -static const OnigCodePoint -CR_In_Miscellaneous_Mathematical_Symbols_B[] = { 1, -0x2980, 0x29ff, -}; /* END of CR_In_Miscellaneous_Mathematical_Symbols_B */ - -/* PROPERTY: 'In_Supplemental_Mathematical_Operators': Block */ -static const OnigCodePoint -CR_In_Supplemental_Mathematical_Operators[] = { 1, -0x2a00, 0x2aff, -}; /* END of CR_In_Supplemental_Mathematical_Operators */ - -/* PROPERTY: 'In_Miscellaneous_Symbols_and_Arrows': Block */ -static const OnigCodePoint -CR_In_Miscellaneous_Symbols_and_Arrows[] = { 1, -0x2b00, 0x2bff, -}; /* END of CR_In_Miscellaneous_Symbols_and_Arrows */ - -/* PROPERTY: 'In_Glagolitic': Block */ -static const OnigCodePoint -CR_In_Glagolitic[] = { 1, -0x2c00, 0x2c5f, -}; /* END of CR_In_Glagolitic */ - -/* PROPERTY: 'In_Latin_Extended_C': Block */ -static const OnigCodePoint -CR_In_Latin_Extended_C[] = { 1, -0x2c60, 0x2c7f, -}; /* END of CR_In_Latin_Extended_C */ - -/* PROPERTY: 'In_Coptic': Block */ -static const OnigCodePoint -CR_In_Coptic[] = { 1, -0x2c80, 0x2cff, -}; /* END of CR_In_Coptic */ - -/* PROPERTY: 'In_Georgian_Supplement': Block */ -static const OnigCodePoint -CR_In_Georgian_Supplement[] = { 1, -0x2d00, 0x2d2f, -}; /* END of CR_In_Georgian_Supplement */ - -/* PROPERTY: 'In_Tifinagh': Block */ -static const OnigCodePoint -CR_In_Tifinagh[] = { 1, -0x2d30, 0x2d7f, -}; /* END of CR_In_Tifinagh */ - -/* PROPERTY: 'In_Ethiopic_Extended': Block */ -static const OnigCodePoint -CR_In_Ethiopic_Extended[] = { 1, -0x2d80, 0x2ddf, -}; /* END of CR_In_Ethiopic_Extended */ - -/* PROPERTY: 'In_Cyrillic_Extended_A': Block */ -static const OnigCodePoint -CR_In_Cyrillic_Extended_A[] = { 1, -0x2de0, 0x2dff, -}; /* END of CR_In_Cyrillic_Extended_A */ - -/* PROPERTY: 'In_Supplemental_Punctuation': Block */ -static const OnigCodePoint -CR_In_Supplemental_Punctuation[] = { 1, -0x2e00, 0x2e7f, -}; /* END of CR_In_Supplemental_Punctuation */ - -/* PROPERTY: 'In_CJK_Radicals_Supplement': Block */ -static const OnigCodePoint -CR_In_CJK_Radicals_Supplement[] = { 1, -0x2e80, 0x2eff, -}; /* END of CR_In_CJK_Radicals_Supplement */ - -/* PROPERTY: 'In_Kangxi_Radicals': Block */ -static const OnigCodePoint -CR_In_Kangxi_Radicals[] = { 1, -0x2f00, 0x2fdf, -}; /* END of CR_In_Kangxi_Radicals */ - -/* PROPERTY: 'In_Ideographic_Description_Characters': Block */ -static const OnigCodePoint -CR_In_Ideographic_Description_Characters[] = { 1, -0x2ff0, 0x2fff, -}; /* END of CR_In_Ideographic_Description_Characters */ - -/* PROPERTY: 'In_CJK_Symbols_and_Punctuation': Block */ -static const OnigCodePoint -CR_In_CJK_Symbols_and_Punctuation[] = { 1, -0x3000, 0x303f, -}; /* END of CR_In_CJK_Symbols_and_Punctuation */ - -/* PROPERTY: 'In_Hiragana': Block */ -static const OnigCodePoint -CR_In_Hiragana[] = { 1, -0x3040, 0x309f, -}; /* END of CR_In_Hiragana */ - -/* PROPERTY: 'In_Katakana': Block */ -static const OnigCodePoint -CR_In_Katakana[] = { 1, -0x30a0, 0x30ff, -}; /* END of CR_In_Katakana */ - -/* PROPERTY: 'In_Bopomofo': Block */ -static const OnigCodePoint -CR_In_Bopomofo[] = { 1, -0x3100, 0x312f, -}; /* END of CR_In_Bopomofo */ - -/* PROPERTY: 'In_Hangul_Compatibility_Jamo': Block */ -static const OnigCodePoint -CR_In_Hangul_Compatibility_Jamo[] = { 1, -0x3130, 0x318f, -}; /* END of CR_In_Hangul_Compatibility_Jamo */ - -/* PROPERTY: 'In_Kanbun': Block */ -static const OnigCodePoint -CR_In_Kanbun[] = { 1, -0x3190, 0x319f, -}; /* END of CR_In_Kanbun */ - -/* PROPERTY: 'In_Bopomofo_Extended': Block */ -static const OnigCodePoint -CR_In_Bopomofo_Extended[] = { 1, -0x31a0, 0x31bf, -}; /* END of CR_In_Bopomofo_Extended */ - -/* PROPERTY: 'In_CJK_Strokes': Block */ -static const OnigCodePoint -CR_In_CJK_Strokes[] = { 1, -0x31c0, 0x31ef, -}; /* END of CR_In_CJK_Strokes */ - -/* PROPERTY: 'In_Katakana_Phonetic_Extensions': Block */ -static const OnigCodePoint -CR_In_Katakana_Phonetic_Extensions[] = { 1, -0x31f0, 0x31ff, -}; /* END of CR_In_Katakana_Phonetic_Extensions */ - -/* PROPERTY: 'In_Enclosed_CJK_Letters_and_Months': Block */ -static const OnigCodePoint -CR_In_Enclosed_CJK_Letters_and_Months[] = { 1, -0x3200, 0x32ff, -}; /* END of CR_In_Enclosed_CJK_Letters_and_Months */ - -/* PROPERTY: 'In_CJK_Compatibility': Block */ -static const OnigCodePoint -CR_In_CJK_Compatibility[] = { 1, -0x3300, 0x33ff, -}; /* END of CR_In_CJK_Compatibility */ - -/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_A': Block */ -static const OnigCodePoint -CR_In_CJK_Unified_Ideographs_Extension_A[] = { 1, -0x3400, 0x4dbf, -}; /* END of CR_In_CJK_Unified_Ideographs_Extension_A */ - -/* PROPERTY: 'In_Yijing_Hexagram_Symbols': Block */ -static const OnigCodePoint -CR_In_Yijing_Hexagram_Symbols[] = { 1, -0x4dc0, 0x4dff, -}; /* END of CR_In_Yijing_Hexagram_Symbols */ - -/* PROPERTY: 'In_CJK_Unified_Ideographs': Block */ -static const OnigCodePoint -CR_In_CJK_Unified_Ideographs[] = { 1, -0x4e00, 0x9fff, -}; /* END of CR_In_CJK_Unified_Ideographs */ - -/* PROPERTY: 'In_Yi_Syllables': Block */ -static const OnigCodePoint -CR_In_Yi_Syllables[] = { 1, -0xa000, 0xa48f, -}; /* END of CR_In_Yi_Syllables */ - -/* PROPERTY: 'In_Yi_Radicals': Block */ -static const OnigCodePoint -CR_In_Yi_Radicals[] = { 1, -0xa490, 0xa4cf, -}; /* END of CR_In_Yi_Radicals */ - -/* PROPERTY: 'In_Lisu': Block */ -#define CR_In_Lisu CR_Lisu - -/* PROPERTY: 'In_Vai': Block */ -static const OnigCodePoint -CR_In_Vai[] = { 1, -0xa500, 0xa63f, -}; /* END of CR_In_Vai */ - -/* PROPERTY: 'In_Cyrillic_Extended_B': Block */ -static const OnigCodePoint -CR_In_Cyrillic_Extended_B[] = { 1, -0xa640, 0xa69f, -}; /* END of CR_In_Cyrillic_Extended_B */ - -/* PROPERTY: 'In_Bamum': Block */ -static const OnigCodePoint -CR_In_Bamum[] = { 1, -0xa6a0, 0xa6ff, -}; /* END of CR_In_Bamum */ - -/* PROPERTY: 'In_Modifier_Tone_Letters': Block */ -static const OnigCodePoint -CR_In_Modifier_Tone_Letters[] = { 1, -0xa700, 0xa71f, -}; /* END of CR_In_Modifier_Tone_Letters */ - -/* PROPERTY: 'In_Latin_Extended_D': Block */ -static const OnigCodePoint -CR_In_Latin_Extended_D[] = { 1, -0xa720, 0xa7ff, -}; /* END of CR_In_Latin_Extended_D */ - -/* PROPERTY: 'In_Syloti_Nagri': Block */ -static const OnigCodePoint -CR_In_Syloti_Nagri[] = { 1, -0xa800, 0xa82f, -}; /* END of CR_In_Syloti_Nagri */ - -/* PROPERTY: 'In_Common_Indic_Number_Forms': Block */ -static const OnigCodePoint -CR_In_Common_Indic_Number_Forms[] = { 1, -0xa830, 0xa83f, -}; /* END of CR_In_Common_Indic_Number_Forms */ - -/* PROPERTY: 'In_Phags_pa': Block */ -static const OnigCodePoint -CR_In_Phags_pa[] = { 1, -0xa840, 0xa87f, -}; /* END of CR_In_Phags_pa */ - -/* PROPERTY: 'In_Saurashtra': Block */ -static const OnigCodePoint -CR_In_Saurashtra[] = { 1, -0xa880, 0xa8df, -}; /* END of CR_In_Saurashtra */ - -/* PROPERTY: 'In_Devanagari_Extended': Block */ -static const OnigCodePoint -CR_In_Devanagari_Extended[] = { 1, -0xa8e0, 0xa8ff, -}; /* END of CR_In_Devanagari_Extended */ - -/* PROPERTY: 'In_Kayah_Li': Block */ -static const OnigCodePoint -CR_In_Kayah_Li[] = { 1, -0xa900, 0xa92f, -}; /* END of CR_In_Kayah_Li */ - -/* PROPERTY: 'In_Rejang': Block */ -static const OnigCodePoint -CR_In_Rejang[] = { 1, -0xa930, 0xa95f, -}; /* END of CR_In_Rejang */ - -/* PROPERTY: 'In_Hangul_Jamo_Extended_A': Block */ -static const OnigCodePoint -CR_In_Hangul_Jamo_Extended_A[] = { 1, -0xa960, 0xa97f, -}; /* END of CR_In_Hangul_Jamo_Extended_A */ - -/* PROPERTY: 'In_Javanese': Block */ -static const OnigCodePoint -CR_In_Javanese[] = { 1, -0xa980, 0xa9df, -}; /* END of CR_In_Javanese */ - -/* PROPERTY: 'In_Myanmar_Extended_B': Block */ -static const OnigCodePoint -CR_In_Myanmar_Extended_B[] = { 1, -0xa9e0, 0xa9ff, -}; /* END of CR_In_Myanmar_Extended_B */ - -/* PROPERTY: 'In_Cham': Block */ -static const OnigCodePoint -CR_In_Cham[] = { 1, -0xaa00, 0xaa5f, -}; /* END of CR_In_Cham */ - -/* PROPERTY: 'In_Myanmar_Extended_A': Block */ -static const OnigCodePoint -CR_In_Myanmar_Extended_A[] = { 1, -0xaa60, 0xaa7f, -}; /* END of CR_In_Myanmar_Extended_A */ - -/* PROPERTY: 'In_Tai_Viet': Block */ -static const OnigCodePoint -CR_In_Tai_Viet[] = { 1, -0xaa80, 0xaadf, -}; /* END of CR_In_Tai_Viet */ - -/* PROPERTY: 'In_Meetei_Mayek_Extensions': Block */ -static const OnigCodePoint -CR_In_Meetei_Mayek_Extensions[] = { 1, -0xaae0, 0xaaff, -}; /* END of CR_In_Meetei_Mayek_Extensions */ - -/* PROPERTY: 'In_Ethiopic_Extended_A': Block */ -static const OnigCodePoint -CR_In_Ethiopic_Extended_A[] = { 1, -0xab00, 0xab2f, -}; /* END of CR_In_Ethiopic_Extended_A */ - -/* PROPERTY: 'In_Latin_Extended_E': Block */ -static const OnigCodePoint -CR_In_Latin_Extended_E[] = { 1, -0xab30, 0xab6f, -}; /* END of CR_In_Latin_Extended_E */ - -/* PROPERTY: 'In_Cherokee_Supplement': Block */ -static const OnigCodePoint -CR_In_Cherokee_Supplement[] = { 1, -0xab70, 0xabbf, -}; /* END of CR_In_Cherokee_Supplement */ - -/* PROPERTY: 'In_Meetei_Mayek': Block */ -static const OnigCodePoint -CR_In_Meetei_Mayek[] = { 1, -0xabc0, 0xabff, -}; /* END of CR_In_Meetei_Mayek */ - -/* PROPERTY: 'In_Hangul_Syllables': Block */ -static const OnigCodePoint -CR_In_Hangul_Syllables[] = { 1, -0xac00, 0xd7af, -}; /* END of CR_In_Hangul_Syllables */ - -/* PROPERTY: 'In_Hangul_Jamo_Extended_B': Block */ -static const OnigCodePoint -CR_In_Hangul_Jamo_Extended_B[] = { 1, -0xd7b0, 0xd7ff, -}; /* END of CR_In_Hangul_Jamo_Extended_B */ - -/* PROPERTY: 'In_High_Surrogates': Block */ -static const OnigCodePoint -CR_In_High_Surrogates[] = { 1, -0xd800, 0xdb7f, -}; /* END of CR_In_High_Surrogates */ - -/* PROPERTY: 'In_High_Private_Use_Surrogates': Block */ -static const OnigCodePoint -CR_In_High_Private_Use_Surrogates[] = { 1, -0xdb80, 0xdbff, -}; /* END of CR_In_High_Private_Use_Surrogates */ - -/* PROPERTY: 'In_Low_Surrogates': Block */ -static const OnigCodePoint -CR_In_Low_Surrogates[] = { 1, -0xdc00, 0xdfff, -}; /* END of CR_In_Low_Surrogates */ - -/* PROPERTY: 'In_Private_Use_Area': Block */ -static const OnigCodePoint -CR_In_Private_Use_Area[] = { 1, -0xe000, 0xf8ff, -}; /* END of CR_In_Private_Use_Area */ - -/* PROPERTY: 'In_CJK_Compatibility_Ideographs': Block */ -static const OnigCodePoint -CR_In_CJK_Compatibility_Ideographs[] = { 1, -0xf900, 0xfaff, -}; /* END of CR_In_CJK_Compatibility_Ideographs */ - -/* PROPERTY: 'In_Alphabetic_Presentation_Forms': Block */ -static const OnigCodePoint -CR_In_Alphabetic_Presentation_Forms[] = { 1, -0xfb00, 0xfb4f, -}; /* END of CR_In_Alphabetic_Presentation_Forms */ - -/* PROPERTY: 'In_Arabic_Presentation_Forms_A': Block */ -static const OnigCodePoint -CR_In_Arabic_Presentation_Forms_A[] = { 1, -0xfb50, 0xfdff, -}; /* END of CR_In_Arabic_Presentation_Forms_A */ - -/* PROPERTY: 'In_Variation_Selectors': Block */ -static const OnigCodePoint -CR_In_Variation_Selectors[] = { 1, -0xfe00, 0xfe0f, -}; /* END of CR_In_Variation_Selectors */ - -/* PROPERTY: 'In_Vertical_Forms': Block */ -static const OnigCodePoint -CR_In_Vertical_Forms[] = { 1, -0xfe10, 0xfe1f, -}; /* END of CR_In_Vertical_Forms */ - -/* PROPERTY: 'In_Combining_Half_Marks': Block */ -static const OnigCodePoint -CR_In_Combining_Half_Marks[] = { 1, -0xfe20, 0xfe2f, -}; /* END of CR_In_Combining_Half_Marks */ - -/* PROPERTY: 'In_CJK_Compatibility_Forms': Block */ -static const OnigCodePoint -CR_In_CJK_Compatibility_Forms[] = { 1, -0xfe30, 0xfe4f, -}; /* END of CR_In_CJK_Compatibility_Forms */ - -/* PROPERTY: 'In_Small_Form_Variants': Block */ -static const OnigCodePoint -CR_In_Small_Form_Variants[] = { 1, -0xfe50, 0xfe6f, -}; /* END of CR_In_Small_Form_Variants */ - -/* PROPERTY: 'In_Arabic_Presentation_Forms_B': Block */ -static const OnigCodePoint -CR_In_Arabic_Presentation_Forms_B[] = { 1, -0xfe70, 0xfeff, -}; /* END of CR_In_Arabic_Presentation_Forms_B */ - -/* PROPERTY: 'In_Halfwidth_and_Fullwidth_Forms': Block */ -static const OnigCodePoint -CR_In_Halfwidth_and_Fullwidth_Forms[] = { 1, -0xff00, 0xffef, -}; /* END of CR_In_Halfwidth_and_Fullwidth_Forms */ - -/* PROPERTY: 'In_Specials': Block */ -static const OnigCodePoint -CR_In_Specials[] = { 1, -0xfff0, 0xffff, -}; /* END of CR_In_Specials */ - -/* PROPERTY: 'In_Linear_B_Syllabary': Block */ -static const OnigCodePoint -CR_In_Linear_B_Syllabary[] = { 1, -0x10000, 0x1007f, -}; /* END of CR_In_Linear_B_Syllabary */ - -/* PROPERTY: 'In_Linear_B_Ideograms': Block */ -static const OnigCodePoint -CR_In_Linear_B_Ideograms[] = { 1, -0x10080, 0x100ff, -}; /* END of CR_In_Linear_B_Ideograms */ - -/* PROPERTY: 'In_Aegean_Numbers': Block */ -static const OnigCodePoint -CR_In_Aegean_Numbers[] = { 1, -0x10100, 0x1013f, -}; /* END of CR_In_Aegean_Numbers */ - -/* PROPERTY: 'In_Ancient_Greek_Numbers': Block */ -static const OnigCodePoint -CR_In_Ancient_Greek_Numbers[] = { 1, -0x10140, 0x1018f, -}; /* END of CR_In_Ancient_Greek_Numbers */ - -/* PROPERTY: 'In_Ancient_Symbols': Block */ -static const OnigCodePoint -CR_In_Ancient_Symbols[] = { 1, -0x10190, 0x101cf, -}; /* END of CR_In_Ancient_Symbols */ - -/* PROPERTY: 'In_Phaistos_Disc': Block */ -static const OnigCodePoint -CR_In_Phaistos_Disc[] = { 1, -0x101d0, 0x101ff, -}; /* END of CR_In_Phaistos_Disc */ - -/* PROPERTY: 'In_Lycian': Block */ -static const OnigCodePoint -CR_In_Lycian[] = { 1, -0x10280, 0x1029f, -}; /* END of CR_In_Lycian */ - -/* PROPERTY: 'In_Carian': Block */ -static const OnigCodePoint -CR_In_Carian[] = { 1, -0x102a0, 0x102df, -}; /* END of CR_In_Carian */ - -/* PROPERTY: 'In_Coptic_Epact_Numbers': Block */ -static const OnigCodePoint -CR_In_Coptic_Epact_Numbers[] = { 1, -0x102e0, 0x102ff, -}; /* END of CR_In_Coptic_Epact_Numbers */ - -/* PROPERTY: 'In_Old_Italic': Block */ -static const OnigCodePoint -CR_In_Old_Italic[] = { 1, -0x10300, 0x1032f, -}; /* END of CR_In_Old_Italic */ - -/* PROPERTY: 'In_Gothic': Block */ -static const OnigCodePoint -CR_In_Gothic[] = { 1, -0x10330, 0x1034f, -}; /* END of CR_In_Gothic */ - -/* PROPERTY: 'In_Old_Permic': Block */ -static const OnigCodePoint -CR_In_Old_Permic[] = { 1, -0x10350, 0x1037f, -}; /* END of CR_In_Old_Permic */ - -/* PROPERTY: 'In_Ugaritic': Block */ -static const OnigCodePoint -CR_In_Ugaritic[] = { 1, -0x10380, 0x1039f, -}; /* END of CR_In_Ugaritic */ - -/* PROPERTY: 'In_Old_Persian': Block */ -static const OnigCodePoint -CR_In_Old_Persian[] = { 1, -0x103a0, 0x103df, -}; /* END of CR_In_Old_Persian */ - -/* PROPERTY: 'In_Deseret': Block */ -#define CR_In_Deseret CR_Deseret - -/* PROPERTY: 'In_Shavian': Block */ -#define CR_In_Shavian CR_Shavian - -/* PROPERTY: 'In_Osmanya': Block */ -static const OnigCodePoint -CR_In_Osmanya[] = { 1, -0x10480, 0x104af, -}; /* END of CR_In_Osmanya */ - -/* PROPERTY: 'In_Osage': Block */ -static const OnigCodePoint -CR_In_Osage[] = { 1, -0x104b0, 0x104ff, -}; /* END of CR_In_Osage */ - -/* PROPERTY: 'In_Elbasan': Block */ -static const OnigCodePoint -CR_In_Elbasan[] = { 1, -0x10500, 0x1052f, -}; /* END of CR_In_Elbasan */ - -/* PROPERTY: 'In_Caucasian_Albanian': Block */ -static const OnigCodePoint -CR_In_Caucasian_Albanian[] = { 1, -0x10530, 0x1056f, -}; /* END of CR_In_Caucasian_Albanian */ - -/* PROPERTY: 'In_Linear_A': Block */ -static const OnigCodePoint -CR_In_Linear_A[] = { 1, -0x10600, 0x1077f, -}; /* END of CR_In_Linear_A */ - -/* PROPERTY: 'In_Cypriot_Syllabary': Block */ -static const OnigCodePoint -CR_In_Cypriot_Syllabary[] = { 1, -0x10800, 0x1083f, -}; /* END of CR_In_Cypriot_Syllabary */ - -/* PROPERTY: 'In_Imperial_Aramaic': Block */ -static const OnigCodePoint -CR_In_Imperial_Aramaic[] = { 1, -0x10840, 0x1085f, -}; /* END of CR_In_Imperial_Aramaic */ - -/* PROPERTY: 'In_Palmyrene': Block */ -#define CR_In_Palmyrene CR_Palmyrene - -/* PROPERTY: 'In_Nabataean': Block */ -static const OnigCodePoint -CR_In_Nabataean[] = { 1, -0x10880, 0x108af, -}; /* END of CR_In_Nabataean */ - -/* PROPERTY: 'In_Hatran': Block */ -static const OnigCodePoint -CR_In_Hatran[] = { 1, -0x108e0, 0x108ff, -}; /* END of CR_In_Hatran */ - -/* PROPERTY: 'In_Phoenician': Block */ -static const OnigCodePoint -CR_In_Phoenician[] = { 1, -0x10900, 0x1091f, -}; /* END of CR_In_Phoenician */ - -/* PROPERTY: 'In_Lydian': Block */ -static const OnigCodePoint -CR_In_Lydian[] = { 1, -0x10920, 0x1093f, -}; /* END of CR_In_Lydian */ - -/* PROPERTY: 'In_Meroitic_Hieroglyphs': Block */ -#define CR_In_Meroitic_Hieroglyphs CR_Meroitic_Hieroglyphs - -/* PROPERTY: 'In_Meroitic_Cursive': Block */ -static const OnigCodePoint -CR_In_Meroitic_Cursive[] = { 1, -0x109a0, 0x109ff, -}; /* END of CR_In_Meroitic_Cursive */ - -/* PROPERTY: 'In_Kharoshthi': Block */ -static const OnigCodePoint -CR_In_Kharoshthi[] = { 1, -0x10a00, 0x10a5f, -}; /* END of CR_In_Kharoshthi */ - -/* PROPERTY: 'In_Old_South_Arabian': Block */ -#define CR_In_Old_South_Arabian CR_Old_South_Arabian - -/* PROPERTY: 'In_Old_North_Arabian': Block */ -#define CR_In_Old_North_Arabian CR_Old_North_Arabian - -/* PROPERTY: 'In_Manichaean': Block */ -static const OnigCodePoint -CR_In_Manichaean[] = { 1, -0x10ac0, 0x10aff, -}; /* END of CR_In_Manichaean */ - -/* PROPERTY: 'In_Avestan': Block */ -static const OnigCodePoint -CR_In_Avestan[] = { 1, -0x10b00, 0x10b3f, -}; /* END of CR_In_Avestan */ - -/* PROPERTY: 'In_Inscriptional_Parthian': Block */ -static const OnigCodePoint -CR_In_Inscriptional_Parthian[] = { 1, -0x10b40, 0x10b5f, -}; /* END of CR_In_Inscriptional_Parthian */ - -/* PROPERTY: 'In_Inscriptional_Pahlavi': Block */ -static const OnigCodePoint -CR_In_Inscriptional_Pahlavi[] = { 1, -0x10b60, 0x10b7f, -}; /* END of CR_In_Inscriptional_Pahlavi */ - -/* PROPERTY: 'In_Psalter_Pahlavi': Block */ -static const OnigCodePoint -CR_In_Psalter_Pahlavi[] = { 1, -0x10b80, 0x10baf, -}; /* END of CR_In_Psalter_Pahlavi */ - -/* PROPERTY: 'In_Old_Turkic': Block */ -static const OnigCodePoint -CR_In_Old_Turkic[] = { 1, -0x10c00, 0x10c4f, -}; /* END of CR_In_Old_Turkic */ - -/* PROPERTY: 'In_Old_Hungarian': Block */ -static const OnigCodePoint -CR_In_Old_Hungarian[] = { 1, -0x10c80, 0x10cff, -}; /* END of CR_In_Old_Hungarian */ - -/* PROPERTY: 'In_Hanifi_Rohingya': Block */ -static const OnigCodePoint -CR_In_Hanifi_Rohingya[] = { 1, -0x10d00, 0x10d3f, -}; /* END of CR_In_Hanifi_Rohingya */ - -/* PROPERTY: 'In_Rumi_Numeral_Symbols': Block */ -static const OnigCodePoint -CR_In_Rumi_Numeral_Symbols[] = { 1, -0x10e60, 0x10e7f, -}; /* END of CR_In_Rumi_Numeral_Symbols */ - -/* PROPERTY: 'In_Old_Sogdian': Block */ -static const OnigCodePoint -CR_In_Old_Sogdian[] = { 1, -0x10f00, 0x10f2f, -}; /* END of CR_In_Old_Sogdian */ - -/* PROPERTY: 'In_Sogdian': Block */ -static const OnigCodePoint -CR_In_Sogdian[] = { 1, -0x10f30, 0x10f6f, -}; /* END of CR_In_Sogdian */ - -/* PROPERTY: 'In_Elymaic': Block */ -static const OnigCodePoint -CR_In_Elymaic[] = { 1, -0x10fe0, 0x10fff, -}; /* END of CR_In_Elymaic */ - -/* PROPERTY: 'In_Brahmi': Block */ -static const OnigCodePoint -CR_In_Brahmi[] = { 1, -0x11000, 0x1107f, -}; /* END of CR_In_Brahmi */ - -/* PROPERTY: 'In_Kaithi': Block */ -static const OnigCodePoint -CR_In_Kaithi[] = { 1, -0x11080, 0x110cf, -}; /* END of CR_In_Kaithi */ - -/* PROPERTY: 'In_Sora_Sompeng': Block */ -static const OnigCodePoint -CR_In_Sora_Sompeng[] = { 1, -0x110d0, 0x110ff, -}; /* END of CR_In_Sora_Sompeng */ - -/* PROPERTY: 'In_Chakma': Block */ -static const OnigCodePoint -CR_In_Chakma[] = { 1, -0x11100, 0x1114f, -}; /* END of CR_In_Chakma */ - -/* PROPERTY: 'In_Mahajani': Block */ -static const OnigCodePoint -CR_In_Mahajani[] = { 1, -0x11150, 0x1117f, -}; /* END of CR_In_Mahajani */ - -/* PROPERTY: 'In_Sharada': Block */ -static const OnigCodePoint -CR_In_Sharada[] = { 1, -0x11180, 0x111df, -}; /* END of CR_In_Sharada */ - -/* PROPERTY: 'In_Sinhala_Archaic_Numbers': Block */ -static const OnigCodePoint -CR_In_Sinhala_Archaic_Numbers[] = { 1, -0x111e0, 0x111ff, -}; /* END of CR_In_Sinhala_Archaic_Numbers */ - -/* PROPERTY: 'In_Khojki': Block */ -static const OnigCodePoint -CR_In_Khojki[] = { 1, -0x11200, 0x1124f, -}; /* END of CR_In_Khojki */ - -/* PROPERTY: 'In_Multani': Block */ -static const OnigCodePoint -CR_In_Multani[] = { 1, -0x11280, 0x112af, -}; /* END of CR_In_Multani */ - -/* PROPERTY: 'In_Khudawadi': Block */ -static const OnigCodePoint -CR_In_Khudawadi[] = { 1, -0x112b0, 0x112ff, -}; /* END of CR_In_Khudawadi */ - -/* PROPERTY: 'In_Grantha': Block */ -static const OnigCodePoint -CR_In_Grantha[] = { 1, -0x11300, 0x1137f, -}; /* END of CR_In_Grantha */ - -/* PROPERTY: 'In_Newa': Block */ -static const OnigCodePoint -CR_In_Newa[] = { 1, -0x11400, 0x1147f, -}; /* END of CR_In_Newa */ - -/* PROPERTY: 'In_Tirhuta': Block */ -static const OnigCodePoint -CR_In_Tirhuta[] = { 1, -0x11480, 0x114df, -}; /* END of CR_In_Tirhuta */ - -/* PROPERTY: 'In_Siddham': Block */ -static const OnigCodePoint -CR_In_Siddham[] = { 1, -0x11580, 0x115ff, -}; /* END of CR_In_Siddham */ - -/* PROPERTY: 'In_Modi': Block */ -static const OnigCodePoint -CR_In_Modi[] = { 1, -0x11600, 0x1165f, -}; /* END of CR_In_Modi */ - -/* PROPERTY: 'In_Mongolian_Supplement': Block */ -static const OnigCodePoint -CR_In_Mongolian_Supplement[] = { 1, -0x11660, 0x1167f, -}; /* END of CR_In_Mongolian_Supplement */ - -/* PROPERTY: 'In_Takri': Block */ -static const OnigCodePoint -CR_In_Takri[] = { 1, -0x11680, 0x116cf, -}; /* END of CR_In_Takri */ - -/* PROPERTY: 'In_Ahom': Block */ -static const OnigCodePoint -CR_In_Ahom[] = { 1, -0x11700, 0x1173f, -}; /* END of CR_In_Ahom */ - -/* PROPERTY: 'In_Dogra': Block */ -static const OnigCodePoint -CR_In_Dogra[] = { 1, -0x11800, 0x1184f, -}; /* END of CR_In_Dogra */ - -/* PROPERTY: 'In_Warang_Citi': Block */ -static const OnigCodePoint -CR_In_Warang_Citi[] = { 1, -0x118a0, 0x118ff, -}; /* END of CR_In_Warang_Citi */ - -/* PROPERTY: 'In_Nandinagari': Block */ -static const OnigCodePoint -CR_In_Nandinagari[] = { 1, -0x119a0, 0x119ff, -}; /* END of CR_In_Nandinagari */ - -/* PROPERTY: 'In_Zanabazar_Square': Block */ -static const OnigCodePoint -CR_In_Zanabazar_Square[] = { 1, -0x11a00, 0x11a4f, -}; /* END of CR_In_Zanabazar_Square */ - -/* PROPERTY: 'In_Soyombo': Block */ -static const OnigCodePoint -CR_In_Soyombo[] = { 1, -0x11a50, 0x11aaf, -}; /* END of CR_In_Soyombo */ - -/* PROPERTY: 'In_Pau_Cin_Hau': Block */ -static const OnigCodePoint -CR_In_Pau_Cin_Hau[] = { 1, -0x11ac0, 0x11aff, -}; /* END of CR_In_Pau_Cin_Hau */ - -/* PROPERTY: 'In_Bhaiksuki': Block */ -static const OnigCodePoint -CR_In_Bhaiksuki[] = { 1, -0x11c00, 0x11c6f, -}; /* END of CR_In_Bhaiksuki */ - -/* PROPERTY: 'In_Marchen': Block */ -static const OnigCodePoint -CR_In_Marchen[] = { 1, -0x11c70, 0x11cbf, -}; /* END of CR_In_Marchen */ - -/* PROPERTY: 'In_Masaram_Gondi': Block */ -static const OnigCodePoint -CR_In_Masaram_Gondi[] = { 1, -0x11d00, 0x11d5f, -}; /* END of CR_In_Masaram_Gondi */ - -/* PROPERTY: 'In_Gunjala_Gondi': Block */ -static const OnigCodePoint -CR_In_Gunjala_Gondi[] = { 1, -0x11d60, 0x11daf, -}; /* END of CR_In_Gunjala_Gondi */ - -/* PROPERTY: 'In_Makasar': Block */ -static const OnigCodePoint -CR_In_Makasar[] = { 1, -0x11ee0, 0x11eff, -}; /* END of CR_In_Makasar */ - -/* PROPERTY: 'In_Tamil_Supplement': Block */ -static const OnigCodePoint -CR_In_Tamil_Supplement[] = { 1, -0x11fc0, 0x11fff, -}; /* END of CR_In_Tamil_Supplement */ - -/* PROPERTY: 'In_Cuneiform': Block */ -static const OnigCodePoint -CR_In_Cuneiform[] = { 1, -0x12000, 0x123ff, -}; /* END of CR_In_Cuneiform */ - -/* PROPERTY: 'In_Cuneiform_Numbers_and_Punctuation': Block */ -static const OnigCodePoint -CR_In_Cuneiform_Numbers_and_Punctuation[] = { 1, -0x12400, 0x1247f, -}; /* END of CR_In_Cuneiform_Numbers_and_Punctuation */ - -/* PROPERTY: 'In_Early_Dynastic_Cuneiform': Block */ -static const OnigCodePoint -CR_In_Early_Dynastic_Cuneiform[] = { 1, -0x12480, 0x1254f, -}; /* END of CR_In_Early_Dynastic_Cuneiform */ - -/* PROPERTY: 'In_Egyptian_Hieroglyphs': Block */ -static const OnigCodePoint -CR_In_Egyptian_Hieroglyphs[] = { 1, -0x13000, 0x1342f, -}; /* END of CR_In_Egyptian_Hieroglyphs */ - -/* PROPERTY: 'In_Egyptian_Hieroglyph_Format_Controls': Block */ -static const OnigCodePoint -CR_In_Egyptian_Hieroglyph_Format_Controls[] = { 1, -0x13430, 0x1343f, -}; /* END of CR_In_Egyptian_Hieroglyph_Format_Controls */ - -/* PROPERTY: 'In_Anatolian_Hieroglyphs': Block */ -static const OnigCodePoint -CR_In_Anatolian_Hieroglyphs[] = { 1, -0x14400, 0x1467f, -}; /* END of CR_In_Anatolian_Hieroglyphs */ - -/* PROPERTY: 'In_Bamum_Supplement': Block */ -static const OnigCodePoint -CR_In_Bamum_Supplement[] = { 1, -0x16800, 0x16a3f, -}; /* END of CR_In_Bamum_Supplement */ - -/* PROPERTY: 'In_Mro': Block */ -static const OnigCodePoint -CR_In_Mro[] = { 1, -0x16a40, 0x16a6f, -}; /* END of CR_In_Mro */ - -/* PROPERTY: 'In_Bassa_Vah': Block */ -static const OnigCodePoint -CR_In_Bassa_Vah[] = { 1, -0x16ad0, 0x16aff, -}; /* END of CR_In_Bassa_Vah */ - -/* PROPERTY: 'In_Pahawh_Hmong': Block */ -static const OnigCodePoint -CR_In_Pahawh_Hmong[] = { 1, -0x16b00, 0x16b8f, -}; /* END of CR_In_Pahawh_Hmong */ - -/* PROPERTY: 'In_Medefaidrin': Block */ -static const OnigCodePoint -CR_In_Medefaidrin[] = { 1, -0x16e40, 0x16e9f, -}; /* END of CR_In_Medefaidrin */ - -/* PROPERTY: 'In_Miao': Block */ -static const OnigCodePoint -CR_In_Miao[] = { 1, -0x16f00, 0x16f9f, -}; /* END of CR_In_Miao */ - -/* PROPERTY: 'In_Ideographic_Symbols_and_Punctuation': Block */ -static const OnigCodePoint -CR_In_Ideographic_Symbols_and_Punctuation[] = { 1, -0x16fe0, 0x16fff, -}; /* END of CR_In_Ideographic_Symbols_and_Punctuation */ - -/* PROPERTY: 'In_Tangut': Block */ -static const OnigCodePoint -CR_In_Tangut[] = { 1, -0x17000, 0x187ff, -}; /* END of CR_In_Tangut */ - -/* PROPERTY: 'In_Tangut_Components': Block */ -static const OnigCodePoint -CR_In_Tangut_Components[] = { 1, -0x18800, 0x18aff, -}; /* END of CR_In_Tangut_Components */ - -/* PROPERTY: 'In_Kana_Supplement': Block */ -static const OnigCodePoint -CR_In_Kana_Supplement[] = { 1, -0x1b000, 0x1b0ff, -}; /* END of CR_In_Kana_Supplement */ - -/* PROPERTY: 'In_Kana_Extended_A': Block */ -static const OnigCodePoint -CR_In_Kana_Extended_A[] = { 1, -0x1b100, 0x1b12f, -}; /* END of CR_In_Kana_Extended_A */ - -/* PROPERTY: 'In_Small_Kana_Extension': Block */ -static const OnigCodePoint -CR_In_Small_Kana_Extension[] = { 1, -0x1b130, 0x1b16f, -}; /* END of CR_In_Small_Kana_Extension */ - -/* PROPERTY: 'In_Nushu': Block */ -static const OnigCodePoint -CR_In_Nushu[] = { 1, -0x1b170, 0x1b2ff, -}; /* END of CR_In_Nushu */ - -/* PROPERTY: 'In_Duployan': Block */ -static const OnigCodePoint -CR_In_Duployan[] = { 1, -0x1bc00, 0x1bc9f, -}; /* END of CR_In_Duployan */ - -/* PROPERTY: 'In_Shorthand_Format_Controls': Block */ -static const OnigCodePoint -CR_In_Shorthand_Format_Controls[] = { 1, -0x1bca0, 0x1bcaf, -}; /* END of CR_In_Shorthand_Format_Controls */ - -/* PROPERTY: 'In_Byzantine_Musical_Symbols': Block */ -static const OnigCodePoint -CR_In_Byzantine_Musical_Symbols[] = { 1, -0x1d000, 0x1d0ff, -}; /* END of CR_In_Byzantine_Musical_Symbols */ - -/* PROPERTY: 'In_Musical_Symbols': Block */ -static const OnigCodePoint -CR_In_Musical_Symbols[] = { 1, -0x1d100, 0x1d1ff, -}; /* END of CR_In_Musical_Symbols */ - -/* PROPERTY: 'In_Ancient_Greek_Musical_Notation': Block */ -static const OnigCodePoint -CR_In_Ancient_Greek_Musical_Notation[] = { 1, -0x1d200, 0x1d24f, -}; /* END of CR_In_Ancient_Greek_Musical_Notation */ - -/* PROPERTY: 'In_Mayan_Numerals': Block */ -static const OnigCodePoint -CR_In_Mayan_Numerals[] = { 1, -0x1d2e0, 0x1d2ff, -}; /* END of CR_In_Mayan_Numerals */ - -/* PROPERTY: 'In_Tai_Xuan_Jing_Symbols': Block */ -static const OnigCodePoint -CR_In_Tai_Xuan_Jing_Symbols[] = { 1, -0x1d300, 0x1d35f, -}; /* END of CR_In_Tai_Xuan_Jing_Symbols */ - -/* PROPERTY: 'In_Counting_Rod_Numerals': Block */ -static const OnigCodePoint -CR_In_Counting_Rod_Numerals[] = { 1, -0x1d360, 0x1d37f, -}; /* END of CR_In_Counting_Rod_Numerals */ - -/* PROPERTY: 'In_Mathematical_Alphanumeric_Symbols': Block */ -static const OnigCodePoint -CR_In_Mathematical_Alphanumeric_Symbols[] = { 1, -0x1d400, 0x1d7ff, -}; /* END of CR_In_Mathematical_Alphanumeric_Symbols */ - -/* PROPERTY: 'In_Sutton_SignWriting': Block */ -static const OnigCodePoint -CR_In_Sutton_SignWriting[] = { 1, -0x1d800, 0x1daaf, -}; /* END of CR_In_Sutton_SignWriting */ - -/* PROPERTY: 'In_Glagolitic_Supplement': Block */ -static const OnigCodePoint -CR_In_Glagolitic_Supplement[] = { 1, -0x1e000, 0x1e02f, -}; /* END of CR_In_Glagolitic_Supplement */ - -/* PROPERTY: 'In_Nyiakeng_Puachue_Hmong': Block */ -static const OnigCodePoint -CR_In_Nyiakeng_Puachue_Hmong[] = { 1, -0x1e100, 0x1e14f, -}; /* END of CR_In_Nyiakeng_Puachue_Hmong */ - -/* PROPERTY: 'In_Wancho': Block */ -static const OnigCodePoint -CR_In_Wancho[] = { 1, -0x1e2c0, 0x1e2ff, -}; /* END of CR_In_Wancho */ - -/* PROPERTY: 'In_Mende_Kikakui': Block */ -static const OnigCodePoint -CR_In_Mende_Kikakui[] = { 1, -0x1e800, 0x1e8df, -}; /* END of CR_In_Mende_Kikakui */ - -/* PROPERTY: 'In_Adlam': Block */ -static const OnigCodePoint -CR_In_Adlam[] = { 1, -0x1e900, 0x1e95f, -}; /* END of CR_In_Adlam */ - -/* PROPERTY: 'In_Indic_Siyaq_Numbers': Block */ -static const OnigCodePoint -CR_In_Indic_Siyaq_Numbers[] = { 1, -0x1ec70, 0x1ecbf, -}; /* END of CR_In_Indic_Siyaq_Numbers */ - -/* PROPERTY: 'In_Ottoman_Siyaq_Numbers': Block */ -static const OnigCodePoint -CR_In_Ottoman_Siyaq_Numbers[] = { 1, -0x1ed00, 0x1ed4f, -}; /* END of CR_In_Ottoman_Siyaq_Numbers */ - -/* PROPERTY: 'In_Arabic_Mathematical_Alphabetic_Symbols': Block */ -static const OnigCodePoint -CR_In_Arabic_Mathematical_Alphabetic_Symbols[] = { 1, -0x1ee00, 0x1eeff, -}; /* END of CR_In_Arabic_Mathematical_Alphabetic_Symbols */ - -/* PROPERTY: 'In_Mahjong_Tiles': Block */ -static const OnigCodePoint -CR_In_Mahjong_Tiles[] = { 1, -0x1f000, 0x1f02f, -}; /* END of CR_In_Mahjong_Tiles */ - -/* PROPERTY: 'In_Domino_Tiles': Block */ -static const OnigCodePoint -CR_In_Domino_Tiles[] = { 1, -0x1f030, 0x1f09f, -}; /* END of CR_In_Domino_Tiles */ - -/* PROPERTY: 'In_Playing_Cards': Block */ -static const OnigCodePoint -CR_In_Playing_Cards[] = { 1, -0x1f0a0, 0x1f0ff, -}; /* END of CR_In_Playing_Cards */ - -/* PROPERTY: 'In_Enclosed_Alphanumeric_Supplement': Block */ -static const OnigCodePoint -CR_In_Enclosed_Alphanumeric_Supplement[] = { 1, -0x1f100, 0x1f1ff, -}; /* END of CR_In_Enclosed_Alphanumeric_Supplement */ - -/* PROPERTY: 'In_Enclosed_Ideographic_Supplement': Block */ -static const OnigCodePoint -CR_In_Enclosed_Ideographic_Supplement[] = { 1, -0x1f200, 0x1f2ff, -}; /* END of CR_In_Enclosed_Ideographic_Supplement */ - -/* PROPERTY: 'In_Miscellaneous_Symbols_and_Pictographs': Block */ -static const OnigCodePoint -CR_In_Miscellaneous_Symbols_and_Pictographs[] = { 1, -0x1f300, 0x1f5ff, -}; /* END of CR_In_Miscellaneous_Symbols_and_Pictographs */ - -/* PROPERTY: 'In_Emoticons': Block */ -static const OnigCodePoint -CR_In_Emoticons[] = { 1, -0x1f600, 0x1f64f, -}; /* END of CR_In_Emoticons */ - -/* PROPERTY: 'In_Ornamental_Dingbats': Block */ -static const OnigCodePoint -CR_In_Ornamental_Dingbats[] = { 1, -0x1f650, 0x1f67f, -}; /* END of CR_In_Ornamental_Dingbats */ - -/* PROPERTY: 'In_Transport_and_Map_Symbols': Block */ -static const OnigCodePoint -CR_In_Transport_and_Map_Symbols[] = { 1, -0x1f680, 0x1f6ff, -}; /* END of CR_In_Transport_and_Map_Symbols */ - -/* PROPERTY: 'In_Alchemical_Symbols': Block */ -static const OnigCodePoint -CR_In_Alchemical_Symbols[] = { 1, -0x1f700, 0x1f77f, -}; /* END of CR_In_Alchemical_Symbols */ - -/* PROPERTY: 'In_Geometric_Shapes_Extended': Block */ -static const OnigCodePoint -CR_In_Geometric_Shapes_Extended[] = { 1, -0x1f780, 0x1f7ff, -}; /* END of CR_In_Geometric_Shapes_Extended */ - -/* PROPERTY: 'In_Supplemental_Arrows_C': Block */ -static const OnigCodePoint -CR_In_Supplemental_Arrows_C[] = { 1, -0x1f800, 0x1f8ff, -}; /* END of CR_In_Supplemental_Arrows_C */ - -/* PROPERTY: 'In_Supplemental_Symbols_and_Pictographs': Block */ -static const OnigCodePoint -CR_In_Supplemental_Symbols_and_Pictographs[] = { 1, -0x1f900, 0x1f9ff, -}; /* END of CR_In_Supplemental_Symbols_and_Pictographs */ - -/* PROPERTY: 'In_Chess_Symbols': Block */ -static const OnigCodePoint -CR_In_Chess_Symbols[] = { 1, -0x1fa00, 0x1fa6f, -}; /* END of CR_In_Chess_Symbols */ - -/* PROPERTY: 'In_Symbols_and_Pictographs_Extended_A': Block */ -static const OnigCodePoint -CR_In_Symbols_and_Pictographs_Extended_A[] = { 1, -0x1fa70, 0x1faff, -}; /* END of CR_In_Symbols_and_Pictographs_Extended_A */ - -/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_B': Block */ -static const OnigCodePoint -CR_In_CJK_Unified_Ideographs_Extension_B[] = { 1, -0x20000, 0x2a6df, -}; /* END of CR_In_CJK_Unified_Ideographs_Extension_B */ - -/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_C': Block */ -static const OnigCodePoint -CR_In_CJK_Unified_Ideographs_Extension_C[] = { 1, -0x2a700, 0x2b73f, -}; /* END of CR_In_CJK_Unified_Ideographs_Extension_C */ - -/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_D': Block */ -static const OnigCodePoint -CR_In_CJK_Unified_Ideographs_Extension_D[] = { 1, -0x2b740, 0x2b81f, -}; /* END of CR_In_CJK_Unified_Ideographs_Extension_D */ - -/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_E': Block */ -static const OnigCodePoint -CR_In_CJK_Unified_Ideographs_Extension_E[] = { 1, -0x2b820, 0x2ceaf, -}; /* END of CR_In_CJK_Unified_Ideographs_Extension_E */ - -/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_F': Block */ -static const OnigCodePoint -CR_In_CJK_Unified_Ideographs_Extension_F[] = { 1, -0x2ceb0, 0x2ebef, -}; /* END of CR_In_CJK_Unified_Ideographs_Extension_F */ - -/* PROPERTY: 'In_CJK_Compatibility_Ideographs_Supplement': Block */ -static const OnigCodePoint -CR_In_CJK_Compatibility_Ideographs_Supplement[] = { 1, -0x2f800, 0x2fa1f, -}; /* END of CR_In_CJK_Compatibility_Ideographs_Supplement */ - -/* PROPERTY: 'In_Tags': Block */ -static const OnigCodePoint -CR_In_Tags[] = { 1, -0xe0000, 0xe007f, -}; /* END of CR_In_Tags */ - -/* PROPERTY: 'In_Variation_Selectors_Supplement': Block */ -static const OnigCodePoint -CR_In_Variation_Selectors_Supplement[] = { 1, -0xe0100, 0xe01ef, -}; /* END of CR_In_Variation_Selectors_Supplement */ - -/* PROPERTY: 'In_Supplementary_Private_Use_Area_A': Block */ -static const OnigCodePoint -CR_In_Supplementary_Private_Use_Area_A[] = { 1, -0xf0000, 0xfffff, -}; /* END of CR_In_Supplementary_Private_Use_Area_A */ - -/* PROPERTY: 'In_Supplementary_Private_Use_Area_B': Block */ -static const OnigCodePoint -CR_In_Supplementary_Private_Use_Area_B[] = { 1, -0x100000, 0x10ffff, -}; /* END of CR_In_Supplementary_Private_Use_Area_B */ - -/* PROPERTY: 'In_No_Block': Block */ -static const OnigCodePoint -CR_In_No_Block[] = { 53, -0x0870, 0x089f, -0x2fe0, 0x2fef, -0x10200, 0x1027f, -0x103e0, 0x103ff, -0x10570, 0x105ff, -0x10780, 0x107ff, -0x108b0, 0x108df, -0x10940, 0x1097f, -0x10aa0, 0x10abf, -0x10bb0, 0x10bff, -0x10c50, 0x10c7f, -0x10d40, 0x10e5f, -0x10e80, 0x10eff, -0x10f70, 0x10fdf, -0x11250, 0x1127f, -0x11380, 0x113ff, -0x114e0, 0x1157f, -0x116d0, 0x116ff, -0x11740, 0x117ff, -0x11850, 0x1189f, -0x11900, 0x1199f, -0x11ab0, 0x11abf, -0x11b00, 0x11bff, -0x11cc0, 0x11cff, -0x11db0, 0x11edf, -0x11f00, 0x11fbf, -0x12550, 0x12fff, -0x13440, 0x143ff, -0x14680, 0x167ff, -0x16a70, 0x16acf, -0x16b90, 0x16e3f, -0x16ea0, 0x16eff, -0x16fa0, 0x16fdf, -0x18b00, 0x1afff, -0x1b300, 0x1bbff, -0x1bcb0, 0x1cfff, -0x1d250, 0x1d2df, -0x1d380, 0x1d3ff, -0x1dab0, 0x1dfff, -0x1e030, 0x1e0ff, -0x1e150, 0x1e2bf, -0x1e300, 0x1e7ff, -0x1e8e0, 0x1e8ff, -0x1e960, 0x1ec6f, -0x1ecc0, 0x1ecff, -0x1ed50, 0x1edff, -0x1ef00, 0x1efff, -0x1fb00, 0x1ffff, -0x2a6e0, 0x2a6ff, -0x2ebf0, 0x2f7ff, -0x2fa20, 0xdffff, -0xe0080, 0xe00ff, -0xe01f0, 0xeffff, -}; /* END of CR_In_No_Block */ - -static const OnigCodePoint* -const CodeRanges[] = { - CR_NEWLINE, - CR_Alpha, - CR_Blank, - CR_Cntrl, - CR_Digit, - CR_Graph, - CR_Lower, - CR_Print, - CR_Punct, - CR_Space, - CR_Upper, - CR_XDigit, - CR_Word, - CR_Alnum, - CR_ASCII, - CR_ASCII_Hex_Digit, - CR_Adlam, - CR_Ahom, - CR_Alphabetic, - CR_Anatolian_Hieroglyphs, - CR_Any, - CR_Arabic, - CR_Armenian, - CR_Assigned, - CR_Avestan, - CR_Balinese, - CR_Bamum, - CR_Bassa_Vah, - CR_Batak, - CR_Bengali, - CR_Bhaiksuki, - CR_Bidi_Control, - CR_Bopomofo, - CR_Brahmi, - CR_Braille, - CR_Buginese, - CR_Buhid, - CR_C, - CR_Canadian_Aboriginal, - CR_Carian, - CR_Case_Ignorable, - CR_Cased, - CR_Caucasian_Albanian, - CR_Cc, - CR_Cf, - CR_Chakma, - CR_Cham, - CR_Changes_When_Casefolded, - CR_Changes_When_Casemapped, - CR_Changes_When_Lowercased, - CR_Changes_When_Titlecased, - CR_Changes_When_Uppercased, - CR_Cherokee, - CR_Cn, - CR_Co, - CR_Common, - CR_Coptic, - CR_Cs, - CR_Cuneiform, - CR_Cypriot, - CR_Cyrillic, - CR_Dash, - CR_Default_Ignorable_Code_Point, - CR_Deprecated, - CR_Deseret, - CR_Devanagari, - CR_Diacritic, - CR_Dogra, - CR_Duployan, - CR_Egyptian_Hieroglyphs, - CR_Elbasan, - CR_Elymaic, - CR_Emoji, - CR_Emoji_Component, - CR_Emoji_Modifier, - CR_Emoji_Modifier_Base, - CR_Emoji_Presentation, - CR_Ethiopic, - CR_Extended_Pictographic, - CR_Extender, - CR_Georgian, - CR_Glagolitic, - CR_Gothic, - CR_Grantha, - CR_Grapheme_Base, - CR_Grapheme_Extend, - CR_Grapheme_Link, - CR_Greek, - CR_Gujarati, - CR_Gunjala_Gondi, - CR_Gurmukhi, - CR_Han, - CR_Hangul, - CR_Hanifi_Rohingya, - CR_Hanunoo, - CR_Hatran, - CR_Hebrew, - CR_Hex_Digit, - CR_Hiragana, - CR_Hyphen, - CR_IDS_Binary_Operator, - CR_IDS_Trinary_Operator, - CR_ID_Continue, - CR_ID_Start, - CR_Ideographic, - CR_Imperial_Aramaic, - CR_Inherited, - CR_Inscriptional_Pahlavi, - CR_Inscriptional_Parthian, - CR_Javanese, - CR_Join_Control, - CR_Kaithi, - CR_Kannada, - CR_Katakana, - CR_Kayah_Li, - CR_Kharoshthi, - CR_Khmer, - CR_Khojki, - CR_Khudawadi, - CR_L, - CR_LC, - CR_Lao, - CR_Latin, - CR_Lepcha, - CR_Limbu, - CR_Linear_A, - CR_Linear_B, - CR_Lisu, - CR_Ll, - CR_Lm, - CR_Lo, - CR_Logical_Order_Exception, - CR_Lowercase, - CR_Lt, - CR_Lu, - CR_Lycian, - CR_Lydian, - CR_M, - CR_Mahajani, - CR_Makasar, - CR_Malayalam, - CR_Mandaic, - CR_Manichaean, - CR_Marchen, - CR_Masaram_Gondi, - CR_Math, - CR_Mc, - CR_Me, - CR_Medefaidrin, - CR_Meetei_Mayek, - CR_Mende_Kikakui, - CR_Meroitic_Cursive, - CR_Meroitic_Hieroglyphs, - CR_Miao, - CR_Mn, - CR_Modi, - CR_Mongolian, - CR_Mro, - CR_Multani, - CR_Myanmar, - CR_N, - CR_Nabataean, - CR_Nandinagari, - CR_Nd, - CR_New_Tai_Lue, - CR_Newa, - CR_Nko, - CR_Nl, - CR_No, - CR_Noncharacter_Code_Point, - CR_Nushu, - CR_Nyiakeng_Puachue_Hmong, - CR_Ogham, - CR_Ol_Chiki, - CR_Old_Hungarian, - CR_Old_Italic, - CR_Old_North_Arabian, - CR_Old_Permic, - CR_Old_Persian, - CR_Old_Sogdian, - CR_Old_South_Arabian, - CR_Old_Turkic, - CR_Oriya, - CR_Osage, - CR_Osmanya, - CR_Other_Alphabetic, - CR_Other_Default_Ignorable_Code_Point, - CR_Other_Grapheme_Extend, - CR_Other_ID_Continue, - CR_Other_ID_Start, - CR_Other_Lowercase, - CR_Other_Math, - CR_Other_Uppercase, - CR_P, - CR_Pahawh_Hmong, - CR_Palmyrene, - CR_Pattern_Syntax, - CR_Pattern_White_Space, - CR_Pau_Cin_Hau, - CR_Pc, - CR_Pd, - CR_Pe, - CR_Pf, - CR_Phags_Pa, - CR_Phoenician, - CR_Pi, - CR_Po, - CR_Prepended_Concatenation_Mark, - CR_Ps, - CR_Psalter_Pahlavi, - CR_Quotation_Mark, - CR_Radical, - CR_Regional_Indicator, - CR_Rejang, - CR_Runic, - CR_S, - CR_Samaritan, - CR_Saurashtra, - CR_Sc, - CR_Sentence_Terminal, - CR_Sharada, - CR_Shavian, - CR_Siddham, - CR_SignWriting, - CR_Sinhala, - CR_Sk, - CR_Sm, - CR_So, - CR_Soft_Dotted, - CR_Sogdian, - CR_Sora_Sompeng, - CR_Soyombo, - CR_Sundanese, - CR_Syloti_Nagri, - CR_Syriac, - CR_Tagalog, - CR_Tagbanwa, - CR_Tai_Le, - CR_Tai_Tham, - CR_Tai_Viet, - CR_Takri, - CR_Tamil, - CR_Tangut, - CR_Telugu, - CR_Terminal_Punctuation, - CR_Thaana, - CR_Thai, - CR_Tibetan, - CR_Tifinagh, - CR_Tirhuta, - CR_Ugaritic, - CR_Unified_Ideograph, - CR_Unknown, - CR_Uppercase, - CR_Vai, - CR_Variation_Selector, - CR_Wancho, - CR_Warang_Citi, - CR_White_Space, - CR_XID_Continue, - CR_XID_Start, - CR_Yi, - CR_Z, - CR_Zanabazar_Square, - CR_Zl, - CR_Zp, - CR_Zs, - CR_In_Basic_Latin, - CR_In_Latin_1_Supplement, - CR_In_Latin_Extended_A, - CR_In_Latin_Extended_B, - CR_In_IPA_Extensions, - CR_In_Spacing_Modifier_Letters, - CR_In_Combining_Diacritical_Marks, - CR_In_Greek_and_Coptic, - CR_In_Cyrillic, - CR_In_Cyrillic_Supplement, - CR_In_Armenian, - CR_In_Hebrew, - CR_In_Arabic, - CR_In_Syriac, - CR_In_Arabic_Supplement, - CR_In_Thaana, - CR_In_NKo, - CR_In_Samaritan, - CR_In_Mandaic, - CR_In_Syriac_Supplement, - CR_In_Arabic_Extended_A, - CR_In_Devanagari, - CR_In_Bengali, - CR_In_Gurmukhi, - CR_In_Gujarati, - CR_In_Oriya, - CR_In_Tamil, - CR_In_Telugu, - CR_In_Kannada, - CR_In_Malayalam, - CR_In_Sinhala, - CR_In_Thai, - CR_In_Lao, - CR_In_Tibetan, - CR_In_Myanmar, - CR_In_Georgian, - CR_In_Hangul_Jamo, - CR_In_Ethiopic, - CR_In_Ethiopic_Supplement, - CR_In_Cherokee, - CR_In_Unified_Canadian_Aboriginal_Syllabics, - CR_In_Ogham, - CR_In_Runic, - CR_In_Tagalog, - CR_In_Hanunoo, - CR_In_Buhid, - CR_In_Tagbanwa, - CR_In_Khmer, - CR_In_Mongolian, - CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended, - CR_In_Limbu, - CR_In_Tai_Le, - CR_In_New_Tai_Lue, - CR_In_Khmer_Symbols, - CR_In_Buginese, - CR_In_Tai_Tham, - CR_In_Combining_Diacritical_Marks_Extended, - CR_In_Balinese, - CR_In_Sundanese, - CR_In_Batak, - CR_In_Lepcha, - CR_In_Ol_Chiki, - CR_In_Cyrillic_Extended_C, - CR_In_Georgian_Extended, - CR_In_Sundanese_Supplement, - CR_In_Vedic_Extensions, - CR_In_Phonetic_Extensions, - CR_In_Phonetic_Extensions_Supplement, - CR_In_Combining_Diacritical_Marks_Supplement, - CR_In_Latin_Extended_Additional, - CR_In_Greek_Extended, - CR_In_General_Punctuation, - CR_In_Superscripts_and_Subscripts, - CR_In_Currency_Symbols, - CR_In_Combining_Diacritical_Marks_for_Symbols, - CR_In_Letterlike_Symbols, - CR_In_Number_Forms, - CR_In_Arrows, - CR_In_Mathematical_Operators, - CR_In_Miscellaneous_Technical, - CR_In_Control_Pictures, - CR_In_Optical_Character_Recognition, - CR_In_Enclosed_Alphanumerics, - CR_In_Box_Drawing, - CR_In_Block_Elements, - CR_In_Geometric_Shapes, - CR_In_Miscellaneous_Symbols, - CR_In_Dingbats, - CR_In_Miscellaneous_Mathematical_Symbols_A, - CR_In_Supplemental_Arrows_A, - CR_In_Braille_Patterns, - CR_In_Supplemental_Arrows_B, - CR_In_Miscellaneous_Mathematical_Symbols_B, - CR_In_Supplemental_Mathematical_Operators, - CR_In_Miscellaneous_Symbols_and_Arrows, - CR_In_Glagolitic, - CR_In_Latin_Extended_C, - CR_In_Coptic, - CR_In_Georgian_Supplement, - CR_In_Tifinagh, - CR_In_Ethiopic_Extended, - CR_In_Cyrillic_Extended_A, - CR_In_Supplemental_Punctuation, - CR_In_CJK_Radicals_Supplement, - CR_In_Kangxi_Radicals, - CR_In_Ideographic_Description_Characters, - CR_In_CJK_Symbols_and_Punctuation, - CR_In_Hiragana, - CR_In_Katakana, - CR_In_Bopomofo, - CR_In_Hangul_Compatibility_Jamo, - CR_In_Kanbun, - CR_In_Bopomofo_Extended, - CR_In_CJK_Strokes, - CR_In_Katakana_Phonetic_Extensions, - CR_In_Enclosed_CJK_Letters_and_Months, - CR_In_CJK_Compatibility, - CR_In_CJK_Unified_Ideographs_Extension_A, - CR_In_Yijing_Hexagram_Symbols, - CR_In_CJK_Unified_Ideographs, - CR_In_Yi_Syllables, - CR_In_Yi_Radicals, - CR_In_Lisu, - CR_In_Vai, - CR_In_Cyrillic_Extended_B, - CR_In_Bamum, - CR_In_Modifier_Tone_Letters, - CR_In_Latin_Extended_D, - CR_In_Syloti_Nagri, - CR_In_Common_Indic_Number_Forms, - CR_In_Phags_pa, - CR_In_Saurashtra, - CR_In_Devanagari_Extended, - CR_In_Kayah_Li, - CR_In_Rejang, - CR_In_Hangul_Jamo_Extended_A, - CR_In_Javanese, - CR_In_Myanmar_Extended_B, - CR_In_Cham, - CR_In_Myanmar_Extended_A, - CR_In_Tai_Viet, - CR_In_Meetei_Mayek_Extensions, - CR_In_Ethiopic_Extended_A, - CR_In_Latin_Extended_E, - CR_In_Cherokee_Supplement, - CR_In_Meetei_Mayek, - CR_In_Hangul_Syllables, - CR_In_Hangul_Jamo_Extended_B, - CR_In_High_Surrogates, - CR_In_High_Private_Use_Surrogates, - CR_In_Low_Surrogates, - CR_In_Private_Use_Area, - CR_In_CJK_Compatibility_Ideographs, - CR_In_Alphabetic_Presentation_Forms, - CR_In_Arabic_Presentation_Forms_A, - CR_In_Variation_Selectors, - CR_In_Vertical_Forms, - CR_In_Combining_Half_Marks, - CR_In_CJK_Compatibility_Forms, - CR_In_Small_Form_Variants, - CR_In_Arabic_Presentation_Forms_B, - CR_In_Halfwidth_and_Fullwidth_Forms, - CR_In_Specials, - CR_In_Linear_B_Syllabary, - CR_In_Linear_B_Ideograms, - CR_In_Aegean_Numbers, - CR_In_Ancient_Greek_Numbers, - CR_In_Ancient_Symbols, - CR_In_Phaistos_Disc, - CR_In_Lycian, - CR_In_Carian, - CR_In_Coptic_Epact_Numbers, - CR_In_Old_Italic, - CR_In_Gothic, - CR_In_Old_Permic, - CR_In_Ugaritic, - CR_In_Old_Persian, - CR_In_Deseret, - CR_In_Shavian, - CR_In_Osmanya, - CR_In_Osage, - CR_In_Elbasan, - CR_In_Caucasian_Albanian, - CR_In_Linear_A, - CR_In_Cypriot_Syllabary, - CR_In_Imperial_Aramaic, - CR_In_Palmyrene, - CR_In_Nabataean, - CR_In_Hatran, - CR_In_Phoenician, - CR_In_Lydian, - CR_In_Meroitic_Hieroglyphs, - CR_In_Meroitic_Cursive, - CR_In_Kharoshthi, - CR_In_Old_South_Arabian, - CR_In_Old_North_Arabian, - CR_In_Manichaean, - CR_In_Avestan, - CR_In_Inscriptional_Parthian, - CR_In_Inscriptional_Pahlavi, - CR_In_Psalter_Pahlavi, - CR_In_Old_Turkic, - CR_In_Old_Hungarian, - CR_In_Hanifi_Rohingya, - CR_In_Rumi_Numeral_Symbols, - CR_In_Old_Sogdian, - CR_In_Sogdian, - CR_In_Elymaic, - CR_In_Brahmi, - CR_In_Kaithi, - CR_In_Sora_Sompeng, - CR_In_Chakma, - CR_In_Mahajani, - CR_In_Sharada, - CR_In_Sinhala_Archaic_Numbers, - CR_In_Khojki, - CR_In_Multani, - CR_In_Khudawadi, - CR_In_Grantha, - CR_In_Newa, - CR_In_Tirhuta, - CR_In_Siddham, - CR_In_Modi, - CR_In_Mongolian_Supplement, - CR_In_Takri, - CR_In_Ahom, - CR_In_Dogra, - CR_In_Warang_Citi, - CR_In_Nandinagari, - CR_In_Zanabazar_Square, - CR_In_Soyombo, - CR_In_Pau_Cin_Hau, - CR_In_Bhaiksuki, - CR_In_Marchen, - CR_In_Masaram_Gondi, - CR_In_Gunjala_Gondi, - CR_In_Makasar, - CR_In_Tamil_Supplement, - CR_In_Cuneiform, - CR_In_Cuneiform_Numbers_and_Punctuation, - CR_In_Early_Dynastic_Cuneiform, - CR_In_Egyptian_Hieroglyphs, - CR_In_Egyptian_Hieroglyph_Format_Controls, - CR_In_Anatolian_Hieroglyphs, - CR_In_Bamum_Supplement, - CR_In_Mro, - CR_In_Bassa_Vah, - CR_In_Pahawh_Hmong, - CR_In_Medefaidrin, - CR_In_Miao, - CR_In_Ideographic_Symbols_and_Punctuation, - CR_In_Tangut, - CR_In_Tangut_Components, - CR_In_Kana_Supplement, - CR_In_Kana_Extended_A, - CR_In_Small_Kana_Extension, - CR_In_Nushu, - CR_In_Duployan, - CR_In_Shorthand_Format_Controls, - CR_In_Byzantine_Musical_Symbols, - CR_In_Musical_Symbols, - CR_In_Ancient_Greek_Musical_Notation, - CR_In_Mayan_Numerals, - CR_In_Tai_Xuan_Jing_Symbols, - CR_In_Counting_Rod_Numerals, - CR_In_Mathematical_Alphanumeric_Symbols, - CR_In_Sutton_SignWriting, - CR_In_Glagolitic_Supplement, - CR_In_Nyiakeng_Puachue_Hmong, - CR_In_Wancho, - CR_In_Mende_Kikakui, - CR_In_Adlam, - CR_In_Indic_Siyaq_Numbers, - CR_In_Ottoman_Siyaq_Numbers, - CR_In_Arabic_Mathematical_Alphabetic_Symbols, - CR_In_Mahjong_Tiles, - CR_In_Domino_Tiles, - CR_In_Playing_Cards, - CR_In_Enclosed_Alphanumeric_Supplement, - CR_In_Enclosed_Ideographic_Supplement, - CR_In_Miscellaneous_Symbols_and_Pictographs, - CR_In_Emoticons, - CR_In_Ornamental_Dingbats, - CR_In_Transport_and_Map_Symbols, - CR_In_Alchemical_Symbols, - CR_In_Geometric_Shapes_Extended, - CR_In_Supplemental_Arrows_C, - CR_In_Supplemental_Symbols_and_Pictographs, - CR_In_Chess_Symbols, - CR_In_Symbols_and_Pictographs_Extended_A, - CR_In_CJK_Unified_Ideographs_Extension_B, - CR_In_CJK_Unified_Ideographs_Extension_C, - CR_In_CJK_Unified_Ideographs_Extension_D, - CR_In_CJK_Unified_Ideographs_Extension_E, - CR_In_CJK_Unified_Ideographs_Extension_F, - CR_In_CJK_Compatibility_Ideographs_Supplement, - CR_In_Tags, - CR_In_Variation_Selectors_Supplement, - CR_In_Supplementary_Private_Use_Area_A, - CR_In_Supplementary_Private_Use_Area_B, - CR_In_No_Block, -}; - -#define pool_offset(s) offsetof(struct unicode_prop_name_pool_t, unicode_prop_name_pool_str##s) - - -#define TOTAL_KEYWORDS 801 -#define MIN_WORD_LENGTH 1 -#define MAX_WORD_LENGTH 44 -#define MIN_HASH_VALUE 10 -#define MAX_HASH_VALUE 5809 -/* maximum key range = 5800, duplicates = 0 */ - -#ifndef GPERF_DOWNCASE -#define GPERF_DOWNCASE 1 -static unsigned char gperf_downcase[256] = - { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 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, 197, 198, 199, 200, 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, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255 - }; -#endif - -#ifndef GPERF_CASE_STRNCMP -#define GPERF_CASE_STRNCMP 1 -static int -gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n) -{ - for (; n > 0;) - { - unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; - unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; - if (c1 != 0 && c1 == c2) - { - n--; - continue; - } - return (int)c1 - (int)c2; - } - return 0; -} -#endif - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -hash (register const char *str, register size_t len) -{ - static const unsigned short asso_values[] = - { - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 0, 1121, 136, 394, 19, - 417, 1048, 958, 7, 856, 8, 415, 103, 3, 16, - 1380, 1068, 56, 181, 326, 631, 1151, 930, 358, 1083, - 8, 0, 5, 5810, 5810, 5810, 5810, 0, 1121, 136, - 394, 19, 417, 1048, 958, 7, 856, 8, 415, 103, - 3, 16, 1380, 1068, 56, 181, 326, 631, 1151, 930, - 358, 1083, 8, 0, 5, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, - 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810 - }; - register unsigned int hval = (unsigned int )len; - - switch (hval) - { - default: - hval += asso_values[(unsigned char)str[15]]; - /*FALLTHROUGH*/ - case 15: - case 14: - case 13: - case 12: - hval += asso_values[(unsigned char)str[11]]; - /*FALLTHROUGH*/ - case 11: - case 10: - case 9: - case 8: - case 7: - case 6: - hval += asso_values[(unsigned char)str[5]]; - /*FALLTHROUGH*/ - case 5: - hval += asso_values[(unsigned char)str[4]]; - /*FALLTHROUGH*/ - case 4: - case 3: - hval += asso_values[(unsigned char)str[2]]; - /*FALLTHROUGH*/ - case 2: - hval += asso_values[(unsigned char)str[1]]; - /*FALLTHROUGH*/ - case 1: - hval += asso_values[(unsigned char)str[0]+2]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct unicode_prop_name_pool_t - { - char unicode_prop_name_pool_str10[sizeof("lana")]; - char unicode_prop_name_pool_str14[sizeof("z")]; - char unicode_prop_name_pool_str16[sizeof("yi")]; - char unicode_prop_name_pool_str17[sizeof("lina")]; - char unicode_prop_name_pool_str24[sizeof("mn")]; - char unicode_prop_name_pool_str25[sizeof("yiii")]; - char unicode_prop_name_pool_str27[sizeof("cn")]; - char unicode_prop_name_pool_str28[sizeof("maka")]; - char unicode_prop_name_pool_str30[sizeof("mani")]; - char unicode_prop_name_pool_str33[sizeof("zzzz")]; - char unicode_prop_name_pool_str34[sizeof("inkannada")]; - char unicode_prop_name_pool_str35[sizeof("ci")]; - char unicode_prop_name_pool_str37[sizeof("lo")]; - char unicode_prop_name_pool_str38[sizeof("lao")]; - char unicode_prop_name_pool_str39[sizeof("laoo")]; - char unicode_prop_name_pool_str43[sizeof("miao")]; - char unicode_prop_name_pool_str51[sizeof("innko")]; - char unicode_prop_name_pool_str53[sizeof("co")]; - char unicode_prop_name_pool_str56[sizeof("me")]; - char unicode_prop_name_pool_str60[sizeof("loe")]; - char unicode_prop_name_pool_str70[sizeof("gran")]; - char unicode_prop_name_pool_str72[sizeof("pi")]; - char unicode_prop_name_pool_str76[sizeof("lineara")]; - char unicode_prop_name_pool_str84[sizeof("mark")]; - char unicode_prop_name_pool_str86[sizeof("cari")]; - char unicode_prop_name_pool_str87[sizeof("carian")]; - char unicode_prop_name_pool_str90[sizeof("po")]; - char unicode_prop_name_pool_str91[sizeof("mendekikakui")]; - char unicode_prop_name_pool_str94[sizeof("grek")]; - char unicode_prop_name_pool_str96[sizeof("pe")]; - char unicode_prop_name_pool_str99[sizeof("meeteimayek")]; - char unicode_prop_name_pool_str101[sizeof("inkharoshthi")]; - char unicode_prop_name_pool_str102[sizeof("geor")]; - char unicode_prop_name_pool_str103[sizeof("greek")]; - char unicode_prop_name_pool_str107[sizeof("mro")]; - char unicode_prop_name_pool_str108[sizeof("mroo")]; - char unicode_prop_name_pool_str110[sizeof("kana")]; - char unicode_prop_name_pool_str111[sizeof("mero")]; - char unicode_prop_name_pool_str120[sizeof("m")]; - char unicode_prop_name_pool_str133[sizeof("gonm")]; - char unicode_prop_name_pool_str134[sizeof("cakm")]; - char unicode_prop_name_pool_str139[sizeof("inosmanya")]; - char unicode_prop_name_pool_str142[sizeof("inmanichaean")]; - char unicode_prop_name_pool_str146[sizeof("inarmenian")]; - char unicode_prop_name_pool_str151[sizeof("inmro")]; - char unicode_prop_name_pool_str152[sizeof("inmiao")]; - char unicode_prop_name_pool_str156[sizeof("c")]; - char unicode_prop_name_pool_str163[sizeof("inchakma")]; - char unicode_prop_name_pool_str166[sizeof("common")]; - char unicode_prop_name_pool_str169[sizeof("mandaic")]; - char unicode_prop_name_pool_str182[sizeof("inmyanmar")]; - char unicode_prop_name_pool_str187[sizeof("inmakasar")]; - char unicode_prop_name_pool_str192[sizeof("qaai")]; - char unicode_prop_name_pool_str200[sizeof("inideographicsymbolsandpunctuation")]; - char unicode_prop_name_pool_str204[sizeof("inkhmer")]; - char unicode_prop_name_pool_str207[sizeof("cans")]; - char unicode_prop_name_pool_str209[sizeof("prependedconcatenationmark")]; - char unicode_prop_name_pool_str211[sizeof("lm")]; - char unicode_prop_name_pool_str212[sizeof("marc")]; - char unicode_prop_name_pool_str219[sizeof("connectorpunctuation")]; - char unicode_prop_name_pool_str220[sizeof("inrunic")]; - char unicode_prop_name_pool_str221[sizeof("incarian")]; - char unicode_prop_name_pool_str223[sizeof("inavestan")]; - char unicode_prop_name_pool_str225[sizeof("combiningmark")]; - char unicode_prop_name_pool_str226[sizeof("incuneiformnumbersandpunctuation")]; - char unicode_prop_name_pool_str231[sizeof("merc")]; - char unicode_prop_name_pool_str238[sizeof("perm")]; - char unicode_prop_name_pool_str239[sizeof("inahom")]; - char unicode_prop_name_pool_str240[sizeof("inipaextensions")]; - char unicode_prop_name_pool_str251[sizeof("incherokee")]; - char unicode_prop_name_pool_str257[sizeof("insharada")]; - char unicode_prop_name_pool_str268[sizeof("makasar")]; - char unicode_prop_name_pool_str272[sizeof("inarrows")]; - char unicode_prop_name_pool_str277[sizeof("lc")]; - char unicode_prop_name_pool_str279[sizeof("masaramgondi")]; - char unicode_prop_name_pool_str283[sizeof("incuneiform")]; - char unicode_prop_name_pool_str290[sizeof("mc")]; - char unicode_prop_name_pool_str293[sizeof("cc")]; - char unicode_prop_name_pool_str295[sizeof("inzanabazarsquare")]; - char unicode_prop_name_pool_str298[sizeof("lineseparator")]; - char unicode_prop_name_pool_str302[sizeof("armn")]; - char unicode_prop_name_pool_str305[sizeof("qmark")]; - char unicode_prop_name_pool_str306[sizeof("armi")]; - char unicode_prop_name_pool_str309[sizeof("insamaritan")]; - char unicode_prop_name_pool_str316[sizeof("armenian")]; - char unicode_prop_name_pool_str318[sizeof("inmarchen")]; - char unicode_prop_name_pool_str319[sizeof("inmasaramgondi")]; - char unicode_prop_name_pool_str321[sizeof("qaac")]; - char unicode_prop_name_pool_str330[sizeof("pc")]; - char unicode_prop_name_pool_str335[sizeof("inscriptionalparthian")]; - char unicode_prop_name_pool_str336[sizeof("latn")]; - char unicode_prop_name_pool_str340[sizeof("latin")]; - char unicode_prop_name_pool_str342[sizeof("ri")]; - char unicode_prop_name_pool_str345[sizeof("inthaana")]; - char unicode_prop_name_pool_str352[sizeof("inkhmersymbols")]; - char unicode_prop_name_pool_str355[sizeof("inkatakana")]; - char unicode_prop_name_pool_str356[sizeof("incyrillic")]; - char unicode_prop_name_pool_str357[sizeof("inthai")]; - char unicode_prop_name_pool_str359[sizeof("incham")]; - char unicode_prop_name_pool_str367[sizeof("inkaithi")]; - char unicode_prop_name_pool_str369[sizeof("zs")]; - char unicode_prop_name_pool_str372[sizeof("mtei")]; - char unicode_prop_name_pool_str375[sizeof("vai")]; - char unicode_prop_name_pool_str376[sizeof("vaii")]; - char unicode_prop_name_pool_str379[sizeof("initialpunctuation")]; - char unicode_prop_name_pool_str383[sizeof("cs")]; - char unicode_prop_name_pool_str399[sizeof("insyriac")]; - char unicode_prop_name_pool_str401[sizeof("pcm")]; - char unicode_prop_name_pool_str415[sizeof("intakri")]; - char unicode_prop_name_pool_str417[sizeof("mand")]; - char unicode_prop_name_pool_str419[sizeof("l")]; - char unicode_prop_name_pool_str420[sizeof("ps")]; - char unicode_prop_name_pool_str427[sizeof("dia")]; - char unicode_prop_name_pool_str431[sizeof("inkanaextendeda")]; - char unicode_prop_name_pool_str433[sizeof("di")]; - char unicode_prop_name_pool_str436[sizeof("mend")]; - char unicode_prop_name_pool_str437[sizeof("modi")]; - char unicode_prop_name_pool_str441[sizeof("ideo")]; - char unicode_prop_name_pool_str445[sizeof("katakana")]; - char unicode_prop_name_pool_str449[sizeof("prti")]; - char unicode_prop_name_pool_str456[sizeof("inideographicdescriptioncharacters")]; - char unicode_prop_name_pool_str457[sizeof("inlineara")]; - char unicode_prop_name_pool_str458[sizeof("xidcontinue")]; - char unicode_prop_name_pool_str461[sizeof("brai")]; - char unicode_prop_name_pool_str463[sizeof("inlao")]; - char unicode_prop_name_pool_str472[sizeof("ascii")]; - char unicode_prop_name_pool_str474[sizeof("privateuse")]; - char unicode_prop_name_pool_str477[sizeof("arabic")]; - char unicode_prop_name_pool_str478[sizeof("mongolian")]; - char unicode_prop_name_pool_str480[sizeof("inmyanmarextendeda")]; - char unicode_prop_name_pool_str481[sizeof("inruminumeralsymbols")]; - char unicode_prop_name_pool_str485[sizeof("letter")]; - char unicode_prop_name_pool_str487[sizeof("innandinagari")]; - char unicode_prop_name_pool_str499[sizeof("inmeeteimayek")]; - char unicode_prop_name_pool_str500[sizeof("inoldnortharabian")]; - char unicode_prop_name_pool_str503[sizeof("grlink")]; - char unicode_prop_name_pool_str504[sizeof("knda")]; - char unicode_prop_name_pool_str507[sizeof("kannada")]; - char unicode_prop_name_pool_str509[sizeof("incjkcompatibilityforms")]; - char unicode_prop_name_pool_str514[sizeof("incjkcompatibilityideographs")]; - char unicode_prop_name_pool_str528[sizeof("inmodi")]; - char unicode_prop_name_pool_str529[sizeof("kali")]; - char unicode_prop_name_pool_str532[sizeof("control")]; - char unicode_prop_name_pool_str536[sizeof("inadlam")]; - char unicode_prop_name_pool_str538[sizeof("inspecials")]; - char unicode_prop_name_pool_str540[sizeof("inmendekikakui")]; - char unicode_prop_name_pool_str545[sizeof("intransportandmapsymbols")]; - char unicode_prop_name_pool_str547[sizeof("letternumber")]; - char unicode_prop_name_pool_str549[sizeof("xidc")]; - char unicode_prop_name_pool_str550[sizeof("inmedefaidrin")]; - char unicode_prop_name_pool_str558[sizeof("inchesssymbols")]; - char unicode_prop_name_pool_str564[sizeof("inemoticons")]; - char unicode_prop_name_pool_str573[sizeof("brahmi")]; - char unicode_prop_name_pool_str575[sizeof("inolditalic")]; - char unicode_prop_name_pool_str578[sizeof("palm")]; - char unicode_prop_name_pool_str580[sizeof("inlycian")]; - char unicode_prop_name_pool_str588[sizeof("inmiscellaneousmathematicalsymbolsa")]; - char unicode_prop_name_pool_str594[sizeof("xids")]; - char unicode_prop_name_pool_str603[sizeof("psalterpahlavi")]; - char unicode_prop_name_pool_str619[sizeof("insundanese")]; - char unicode_prop_name_pool_str620[sizeof("inoldsogdian")]; - char unicode_prop_name_pool_str632[sizeof("diacritic")]; - char unicode_prop_name_pool_str634[sizeof("gothic")]; - char unicode_prop_name_pool_str635[sizeof("inancientsymbols")]; - char unicode_prop_name_pool_str639[sizeof("meroiticcursive")]; - char unicode_prop_name_pool_str643[sizeof("inmalayalam")]; - char unicode_prop_name_pool_str648[sizeof("patternwhitespace")]; - char unicode_prop_name_pool_str649[sizeof("sk")]; - char unicode_prop_name_pool_str652[sizeof("insmallkanaextension")]; - char unicode_prop_name_pool_str656[sizeof("inmandaic")]; - char unicode_prop_name_pool_str657[sizeof("lt")]; - char unicode_prop_name_pool_str665[sizeof("so")]; - char unicode_prop_name_pool_str666[sizeof("inlinearbideograms")]; - char unicode_prop_name_pool_str668[sizeof("incommonindicnumberforms")]; - char unicode_prop_name_pool_str669[sizeof("incjkcompatibilityideographssupplement")]; - char unicode_prop_name_pool_str677[sizeof("idc")]; - char unicode_prop_name_pool_str678[sizeof("inoldsoutharabian")]; - char unicode_prop_name_pool_str699[sizeof("insylotinagri")]; - char unicode_prop_name_pool_str701[sizeof("idsbinaryoperator")]; - char unicode_prop_name_pool_str707[sizeof("sora")]; - char unicode_prop_name_pool_str708[sizeof("bamum")]; - char unicode_prop_name_pool_str709[sizeof("inkanasupplement")]; - char unicode_prop_name_pool_str710[sizeof("incjkstrokes")]; - char unicode_prop_name_pool_str715[sizeof("joinc")]; - char unicode_prop_name_pool_str718[sizeof("inopticalcharacterrecognition")]; - char unicode_prop_name_pool_str722[sizeof("vs")]; - char unicode_prop_name_pool_str728[sizeof("indominotiles")]; - char unicode_prop_name_pool_str732[sizeof("batk")]; - char unicode_prop_name_pool_str739[sizeof("grext")]; - char unicode_prop_name_pool_str741[sizeof("batak")]; - char unicode_prop_name_pool_str749[sizeof("patws")]; - char unicode_prop_name_pool_str752[sizeof("inmodifiertoneletters")]; - char unicode_prop_name_pool_str753[sizeof("ital")]; - char unicode_prop_name_pool_str760[sizeof("bass")]; - char unicode_prop_name_pool_str763[sizeof("decimalnumber")]; - char unicode_prop_name_pool_str765[sizeof("alnum")]; - char unicode_prop_name_pool_str767[sizeof("ids")]; - char unicode_prop_name_pool_str776[sizeof("print")]; - char unicode_prop_name_pool_str778[sizeof("inlatinextendeda")]; - char unicode_prop_name_pool_str782[sizeof("intaitham")]; - char unicode_prop_name_pool_str783[sizeof("inmusicalsymbols")]; - char unicode_prop_name_pool_str785[sizeof("intaile")]; - char unicode_prop_name_pool_str794[sizeof("samr")]; - char unicode_prop_name_pool_str809[sizeof("samaritan")]; - char unicode_prop_name_pool_str813[sizeof("s")]; - char unicode_prop_name_pool_str816[sizeof("inlatinextendede")]; - char unicode_prop_name_pool_str820[sizeof("bali")]; - char unicode_prop_name_pool_str826[sizeof("lisu")]; - char unicode_prop_name_pool_str827[sizeof("pauc")]; - char unicode_prop_name_pool_str828[sizeof("patternsyntax")]; - char unicode_prop_name_pool_str829[sizeof("incontrolpictures")]; - char unicode_prop_name_pool_str830[sizeof("blank")]; - char unicode_prop_name_pool_str834[sizeof("inmiscellaneoussymbols")]; - char unicode_prop_name_pool_str835[sizeof("ll")]; - char unicode_prop_name_pool_str836[sizeof("inancientgreekmusicalnotation")]; - char unicode_prop_name_pool_str837[sizeof("zl")]; - char unicode_prop_name_pool_str838[sizeof("inlydian")]; - char unicode_prop_name_pool_str839[sizeof("sm")]; - char unicode_prop_name_pool_str843[sizeof("inmiscellaneoussymbolsandarrows")]; - char unicode_prop_name_pool_str844[sizeof("inugaritic")]; - char unicode_prop_name_pool_str845[sizeof("bengali")]; - char unicode_prop_name_pool_str846[sizeof("pd")]; - char unicode_prop_name_pool_str848[sizeof("inmiscellaneoussymbolsandpictographs")]; - char unicode_prop_name_pool_str850[sizeof("medf")]; - char unicode_prop_name_pool_str855[sizeof("cf")]; - char unicode_prop_name_pool_str858[sizeof("balinese")]; - char unicode_prop_name_pool_str860[sizeof("medefaidrin")]; - char unicode_prop_name_pool_str865[sizeof("han")]; - char unicode_prop_name_pool_str869[sizeof("intamil")]; - char unicode_prop_name_pool_str870[sizeof("hani")]; - char unicode_prop_name_pool_str871[sizeof("inmultani")]; - char unicode_prop_name_pool_str879[sizeof("hano")]; - char unicode_prop_name_pool_str887[sizeof("inshorthandformatcontrols")]; - char unicode_prop_name_pool_str891[sizeof("insaurashtra")]; - char unicode_prop_name_pool_str892[sizeof("pf")]; - char unicode_prop_name_pool_str894[sizeof("inoldturkic")]; - char unicode_prop_name_pool_str896[sizeof("idcontinue")]; - char unicode_prop_name_pool_str901[sizeof("hanunoo")]; - char unicode_prop_name_pool_str905[sizeof("sc")]; - char unicode_prop_name_pool_str906[sizeof("inkhojki")]; - char unicode_prop_name_pool_str913[sizeof("idst")]; - char unicode_prop_name_pool_str915[sizeof("canadianaboriginal")]; - char unicode_prop_name_pool_str923[sizeof("hira")]; - char unicode_prop_name_pool_str925[sizeof("plrd")]; - char unicode_prop_name_pool_str939[sizeof("incaucasianalbanian")]; - char unicode_prop_name_pool_str940[sizeof("indeseret")]; - char unicode_prop_name_pool_str945[sizeof("inearlydynasticcuneiform")]; - char unicode_prop_name_pool_str946[sizeof("inspacingmodifierletters")]; - char unicode_prop_name_pool_str950[sizeof("innewa")]; - char unicode_prop_name_pool_str972[sizeof("idstart")]; - char unicode_prop_name_pool_str977[sizeof("zinh")]; - char unicode_prop_name_pool_str981[sizeof("incyrillicextendeda")]; - char unicode_prop_name_pool_str984[sizeof("dsrt")]; - char unicode_prop_name_pool_str993[sizeof("cased")]; - char unicode_prop_name_pool_str999[sizeof("glagolitic")]; - char unicode_prop_name_pool_str1002[sizeof("inhanifirohingya")]; - char unicode_prop_name_pool_str1006[sizeof("inancientgreeknumbers")]; - char unicode_prop_name_pool_str1008[sizeof("inmeeteimayekextensions")]; - char unicode_prop_name_pool_str1009[sizeof("intaixuanjingsymbols")]; - char unicode_prop_name_pool_str1016[sizeof("joincontrol")]; - char unicode_prop_name_pool_str1020[sizeof("runr")]; - char unicode_prop_name_pool_str1023[sizeof("inwarangciti")]; - char unicode_prop_name_pool_str1025[sizeof("deseret")]; - char unicode_prop_name_pool_str1035[sizeof("inhiragana")]; - char unicode_prop_name_pool_str1039[sizeof("sind")]; - char unicode_prop_name_pool_str1047[sizeof("cherokee")]; - char unicode_prop_name_pool_str1050[sizeof("inlatinextendedc")]; - char unicode_prop_name_pool_str1052[sizeof("adlm")]; - char unicode_prop_name_pool_str1053[sizeof("phoenician")]; - char unicode_prop_name_pool_str1056[sizeof("cher")]; - char unicode_prop_name_pool_str1059[sizeof("marchen")]; - char unicode_prop_name_pool_str1062[sizeof("inkhudawadi")]; - char unicode_prop_name_pool_str1063[sizeof("sinhala")]; - char unicode_prop_name_pool_str1066[sizeof("lower")]; - char unicode_prop_name_pool_str1068[sizeof("graphemelink")]; - char unicode_prop_name_pool_str1069[sizeof("xidstart")]; - char unicode_prop_name_pool_str1071[sizeof("ingrantha")]; - char unicode_prop_name_pool_str1072[sizeof("bidic")]; - char unicode_prop_name_pool_str1074[sizeof("xdigit")]; - char unicode_prop_name_pool_str1076[sizeof("casedletter")]; - char unicode_prop_name_pool_str1078[sizeof("gong")]; - char unicode_prop_name_pool_str1079[sizeof("multani")]; - char unicode_prop_name_pool_str1082[sizeof("gunjalagondi")]; - char unicode_prop_name_pool_str1084[sizeof("cham")]; - char unicode_prop_name_pool_str1086[sizeof("chakma")]; - char unicode_prop_name_pool_str1087[sizeof("mong")]; - char unicode_prop_name_pool_str1088[sizeof("kaithi")]; - char unicode_prop_name_pool_str1089[sizeof("inmahajani")]; - char unicode_prop_name_pool_str1090[sizeof("graphemebase")]; - char unicode_prop_name_pool_str1092[sizeof("insiddham")]; - char unicode_prop_name_pool_str1095[sizeof("inogham")]; - char unicode_prop_name_pool_str1101[sizeof("inosage")]; - char unicode_prop_name_pool_str1102[sizeof("incountingrodnumerals")]; - char unicode_prop_name_pool_str1104[sizeof("inwancho")]; - char unicode_prop_name_pool_str1105[sizeof("khojki")]; - char unicode_prop_name_pool_str1107[sizeof("ingeneralpunctuation")]; - char unicode_prop_name_pool_str1108[sizeof("georgian")]; - char unicode_prop_name_pool_str1117[sizeof("incyrillicextendedc")]; - char unicode_prop_name_pool_str1118[sizeof("inkayahli")]; - char unicode_prop_name_pool_str1121[sizeof("khar")]; - char unicode_prop_name_pool_str1124[sizeof("inoriya")]; - char unicode_prop_name_pool_str1126[sizeof("manichaean")]; - char unicode_prop_name_pool_str1132[sizeof("bamu")]; - char unicode_prop_name_pool_str1133[sizeof("zanb")]; - char unicode_prop_name_pool_str1136[sizeof("oriya")]; - char unicode_prop_name_pool_str1137[sizeof("inolchiki")]; - char unicode_prop_name_pool_str1138[sizeof("linb")]; - char unicode_prop_name_pool_str1141[sizeof("inethiopic")]; - char unicode_prop_name_pool_str1143[sizeof("wara")]; - char unicode_prop_name_pool_str1144[sizeof("ingeorgian")]; - char unicode_prop_name_pool_str1149[sizeof("innabataean")]; - char unicode_prop_name_pool_str1154[sizeof("inkanbun")]; - char unicode_prop_name_pool_str1156[sizeof("adlam")]; - char unicode_prop_name_pool_str1157[sizeof("inbhaiksuki")]; - char unicode_prop_name_pool_str1162[sizeof("insinhala")]; - char unicode_prop_name_pool_str1163[sizeof("inelbasan")]; - char unicode_prop_name_pool_str1169[sizeof("lowercase")]; - char unicode_prop_name_pool_str1178[sizeof("takri")]; - char unicode_prop_name_pool_str1179[sizeof("inmongolian")]; - char unicode_prop_name_pool_str1181[sizeof("invai")]; - char unicode_prop_name_pool_str1182[sizeof("xsux")]; - char unicode_prop_name_pool_str1183[sizeof("cntrl")]; - char unicode_prop_name_pool_str1186[sizeof("emoji")]; - char unicode_prop_name_pool_str1187[sizeof("sterm")]; - char unicode_prop_name_pool_str1189[sizeof("cuneiform")]; - char unicode_prop_name_pool_str1192[sizeof("cwcm")]; - char unicode_prop_name_pool_str1194[sizeof("hatran")]; - char unicode_prop_name_pool_str1197[sizeof("linearb")]; - char unicode_prop_name_pool_str1201[sizeof("taile")]; - char unicode_prop_name_pool_str1202[sizeof("inlatinextendedadditional")]; - char unicode_prop_name_pool_str1203[sizeof("inenclosedalphanumerics")]; - char unicode_prop_name_pool_str1205[sizeof("anatolianhieroglyphs")]; - char unicode_prop_name_pool_str1206[sizeof("incyrillicsupplement")]; - char unicode_prop_name_pool_str1208[sizeof("intamilsupplement")]; - char unicode_prop_name_pool_str1215[sizeof("inmiscellaneoustechnical")]; - char unicode_prop_name_pool_str1217[sizeof("ahom")]; - char unicode_prop_name_pool_str1218[sizeof("incherokeesupplement")]; - char unicode_prop_name_pool_str1219[sizeof("takr")]; - char unicode_prop_name_pool_str1224[sizeof("khmr")]; - char unicode_prop_name_pool_str1228[sizeof("incjkunifiedideographsextensiona")]; - char unicode_prop_name_pool_str1231[sizeof("quotationmark")]; - char unicode_prop_name_pool_str1233[sizeof("lyci")]; - char unicode_prop_name_pool_str1234[sizeof("lycian")]; - char unicode_prop_name_pool_str1235[sizeof("ingurmukhi")]; - char unicode_prop_name_pool_str1237[sizeof("runic")]; - char unicode_prop_name_pool_str1238[sizeof("limb")]; - char unicode_prop_name_pool_str1240[sizeof("inscriptionalpahlavi")]; - char unicode_prop_name_pool_str1242[sizeof("hatr")]; - char unicode_prop_name_pool_str1244[sizeof("variationselector")]; - char unicode_prop_name_pool_str1246[sizeof("modifierletter")]; - char unicode_prop_name_pool_str1247[sizeof("incjkunifiedideographsextensione")]; - char unicode_prop_name_pool_str1262[sizeof("mymr")]; - char unicode_prop_name_pool_str1265[sizeof("myanmar")]; - char unicode_prop_name_pool_str1267[sizeof("lu")]; - char unicode_prop_name_pool_str1275[sizeof("kharoshthi")]; - char unicode_prop_name_pool_str1276[sizeof("inarabic")]; - char unicode_prop_name_pool_str1278[sizeof("radical")]; - char unicode_prop_name_pool_str1281[sizeof("khmer")]; - char unicode_prop_name_pool_str1286[sizeof("inunifiedcanadianaboriginalsyllabics")]; - char unicode_prop_name_pool_str1292[sizeof("osage")]; - char unicode_prop_name_pool_str1296[sizeof("sundanese")]; - char unicode_prop_name_pool_str1300[sizeof("innewtailue")]; - char unicode_prop_name_pool_str1302[sizeof("logicalorderexception")]; - char unicode_prop_name_pool_str1304[sizeof("math")]; - char unicode_prop_name_pool_str1306[sizeof("braille")]; - char unicode_prop_name_pool_str1311[sizeof("goth")]; - char unicode_prop_name_pool_str1312[sizeof("insorasompeng")]; - char unicode_prop_name_pool_str1316[sizeof("insoyombo")]; - char unicode_prop_name_pool_str1317[sizeof("arab")]; - char unicode_prop_name_pool_str1322[sizeof("saur")]; - char unicode_prop_name_pool_str1329[sizeof("guru")]; - char unicode_prop_name_pool_str1333[sizeof("term")]; - char unicode_prop_name_pool_str1337[sizeof("paucinhau")]; - char unicode_prop_name_pool_str1338[sizeof("inbasiclatin")]; - char unicode_prop_name_pool_str1339[sizeof("inarabicpresentationformsa")]; - char unicode_prop_name_pool_str1347[sizeof("punct")]; - char unicode_prop_name_pool_str1348[sizeof("gurmukhi")]; - char unicode_prop_name_pool_str1354[sizeof("grantha")]; - char unicode_prop_name_pool_str1355[sizeof("inshavian")]; - char unicode_prop_name_pool_str1356[sizeof("osma")]; - char unicode_prop_name_pool_str1357[sizeof("inenclosedalphanumericsupplement")]; - char unicode_prop_name_pool_str1360[sizeof("intirhuta")]; - char unicode_prop_name_pool_str1361[sizeof("inelymaic")]; - char unicode_prop_name_pool_str1362[sizeof("inhatran")]; - char unicode_prop_name_pool_str1364[sizeof("incjkunifiedideographsextensionc")]; - char unicode_prop_name_pool_str1365[sizeof("emojimodifier")]; - char unicode_prop_name_pool_str1368[sizeof("uideo")]; - char unicode_prop_name_pool_str1373[sizeof("bidicontrol")]; - char unicode_prop_name_pool_str1379[sizeof("phnx")]; - char unicode_prop_name_pool_str1380[sizeof("limbu")]; - char unicode_prop_name_pool_str1384[sizeof("n")]; - char unicode_prop_name_pool_str1388[sizeof("inenclosedideographicsupplement")]; - char unicode_prop_name_pool_str1392[sizeof("mult")]; - char unicode_prop_name_pool_str1398[sizeof("kthi")]; - char unicode_prop_name_pool_str1399[sizeof("incjkunifiedideographs")]; - char unicode_prop_name_pool_str1401[sizeof("ingreekandcoptic")]; - char unicode_prop_name_pool_str1403[sizeof("inoldhungarian")]; - char unicode_prop_name_pool_str1406[sizeof("incjkcompatibility")]; - char unicode_prop_name_pool_str1409[sizeof("grbase")]; - char unicode_prop_name_pool_str1411[sizeof("nandinagari")]; - char unicode_prop_name_pool_str1412[sizeof("brah")]; - char unicode_prop_name_pool_str1414[sizeof("no")]; - char unicode_prop_name_pool_str1421[sizeof("sd")]; - char unicode_prop_name_pool_str1423[sizeof("nko")]; - char unicode_prop_name_pool_str1424[sizeof("nkoo")]; - char unicode_prop_name_pool_str1427[sizeof("xpeo")]; - char unicode_prop_name_pool_str1430[sizeof("sidd")]; - char unicode_prop_name_pool_str1435[sizeof("inherited")]; - char unicode_prop_name_pool_str1437[sizeof("p")]; - char unicode_prop_name_pool_str1440[sizeof("phli")]; - char unicode_prop_name_pool_str1443[sizeof("inmeroitichieroglyphs")]; - char unicode_prop_name_pool_str1444[sizeof("inphoenician")]; - char unicode_prop_name_pool_str1449[sizeof("inmayannumerals")]; - char unicode_prop_name_pool_str1453[sizeof("saurashtra")]; - char unicode_prop_name_pool_str1455[sizeof("inkangxiradicals")]; - char unicode_prop_name_pool_str1461[sizeof("enclosingmark")]; - char unicode_prop_name_pool_str1467[sizeof("graphemeextend")]; - char unicode_prop_name_pool_str1468[sizeof("beng")]; - char unicode_prop_name_pool_str1473[sizeof("inbatak")]; - char unicode_prop_name_pool_str1474[sizeof("glag")]; - char unicode_prop_name_pool_str1475[sizeof("ahex")]; - char unicode_prop_name_pool_str1477[sizeof("patsyn")]; - char unicode_prop_name_pool_str1479[sizeof("odi")]; - char unicode_prop_name_pool_str1486[sizeof("dogra")]; - char unicode_prop_name_pool_str1489[sizeof("intibetan")]; - char unicode_prop_name_pool_str1491[sizeof("lydi")]; - char unicode_prop_name_pool_str1492[sizeof("lydian")]; - char unicode_prop_name_pool_str1499[sizeof("inblockelements")]; - char unicode_prop_name_pool_str1506[sizeof("cwcf")]; - char unicode_prop_name_pool_str1507[sizeof("inunifiedcanadianaboriginalsyllabicsextended")]; - char unicode_prop_name_pool_str1508[sizeof("regionalindicator")]; - char unicode_prop_name_pool_str1509[sizeof("ingreekextended")]; - char unicode_prop_name_pool_str1513[sizeof("emojimodifierbase")]; - char unicode_prop_name_pool_str1514[sizeof("inanatolianhieroglyphs")]; - char unicode_prop_name_pool_str1516[sizeof("indogra")]; - char unicode_prop_name_pool_str1517[sizeof("taiviet")]; - char unicode_prop_name_pool_str1524[sizeof("inyiradicals")]; - char unicode_prop_name_pool_str1525[sizeof("unassigned")]; - char unicode_prop_name_pool_str1532[sizeof("insundanesesupplement")]; - char unicode_prop_name_pool_str1535[sizeof("innumberforms")]; - char unicode_prop_name_pool_str1538[sizeof("lowercaseletter")]; - char unicode_prop_name_pool_str1541[sizeof("dogr")]; - char unicode_prop_name_pool_str1542[sizeof("lepc")]; - char unicode_prop_name_pool_str1545[sizeof("bhks")]; - char unicode_prop_name_pool_str1553[sizeof("word")]; - char unicode_prop_name_pool_str1554[sizeof("gujr")]; - char unicode_prop_name_pool_str1555[sizeof("inphaistosdisc")]; - char unicode_prop_name_pool_str1557[sizeof("bhaiksuki")]; - char unicode_prop_name_pool_str1560[sizeof("dash")]; - char unicode_prop_name_pool_str1562[sizeof("inarabicextendeda")]; - char unicode_prop_name_pool_str1565[sizeof("gujarati")]; - char unicode_prop_name_pool_str1566[sizeof("inlatinextendedd")]; - char unicode_prop_name_pool_str1567[sizeof("innoblock")]; - char unicode_prop_name_pool_str1570[sizeof("java")]; - char unicode_prop_name_pool_str1576[sizeof("ingeometricshapes")]; - char unicode_prop_name_pool_str1577[sizeof("cyrl")]; - char unicode_prop_name_pool_str1582[sizeof("indevanagari")]; - char unicode_prop_name_pool_str1583[sizeof("inbalinese")]; - char unicode_prop_name_pool_str1585[sizeof("inbyzantinemusicalsymbols")]; - char unicode_prop_name_pool_str1589[sizeof("tale")]; - char unicode_prop_name_pool_str1591[sizeof("deva")]; - char unicode_prop_name_pool_str1594[sizeof("hex")]; - char unicode_prop_name_pool_str1601[sizeof("inmyanmarextendedb")]; - char unicode_prop_name_pool_str1603[sizeof("sinh")]; - char unicode_prop_name_pool_str1604[sizeof("cwt")]; - char unicode_prop_name_pool_str1606[sizeof("shavian")]; - char unicode_prop_name_pool_str1607[sizeof("devanagari")]; - char unicode_prop_name_pool_str1609[sizeof("oidc")]; - char unicode_prop_name_pool_str1615[sizeof("javanese")]; - char unicode_prop_name_pool_str1621[sizeof("mlym")]; - char unicode_prop_name_pool_str1622[sizeof("incjkunifiedideographsextensiond")]; - char unicode_prop_name_pool_str1624[sizeof("sentenceterminal")]; - char unicode_prop_name_pool_str1626[sizeof("malayalam")]; - char unicode_prop_name_pool_str1628[sizeof("inhanunoo")]; - char unicode_prop_name_pool_str1629[sizeof("insinhalaarchaicnumbers")]; - char unicode_prop_name_pool_str1631[sizeof("olck")]; - char unicode_prop_name_pool_str1633[sizeof("inimperialaramaic")]; - char unicode_prop_name_pool_str1636[sizeof("olower")]; - char unicode_prop_name_pool_str1638[sizeof("palmyrene")]; - char unicode_prop_name_pool_str1642[sizeof("avestan")]; - char unicode_prop_name_pool_str1645[sizeof("incjkunifiedideographsextensionf")]; - char unicode_prop_name_pool_str1646[sizeof("insogdian")]; - char unicode_prop_name_pool_str1647[sizeof("indingbats")]; - char unicode_prop_name_pool_str1648[sizeof("olchiki")]; - char unicode_prop_name_pool_str1654[sizeof("oids")]; - char unicode_prop_name_pool_str1661[sizeof("punctuation")]; - char unicode_prop_name_pool_str1663[sizeof("sund")]; - char unicode_prop_name_pool_str1666[sizeof("inbraillepatterns")]; - char unicode_prop_name_pool_str1669[sizeof("emojicomponent")]; - char unicode_prop_name_pool_str1672[sizeof("ideographic")]; - char unicode_prop_name_pool_str1673[sizeof("taml")]; - char unicode_prop_name_pool_str1688[sizeof("format")]; - char unicode_prop_name_pool_str1694[sizeof("inornamentaldingbats")]; - char unicode_prop_name_pool_str1700[sizeof("coptic")]; - char unicode_prop_name_pool_str1702[sizeof("caseignorable")]; - char unicode_prop_name_pool_str1708[sizeof("idsb")]; - char unicode_prop_name_pool_str1709[sizeof("inmiscellaneousmathematicalsymbolsb")]; - char unicode_prop_name_pool_str1712[sizeof("sogdian")]; - char unicode_prop_name_pool_str1715[sizeof("sogo")]; - char unicode_prop_name_pool_str1720[sizeof("terminalpunctuation")]; - char unicode_prop_name_pool_str1722[sizeof("intangut")]; - char unicode_prop_name_pool_str1729[sizeof("intifinagh")]; - char unicode_prop_name_pool_str1733[sizeof("inlowsurrogates")]; - char unicode_prop_name_pool_str1743[sizeof("invariationselectors")]; - char unicode_prop_name_pool_str1745[sizeof("copt")]; - char unicode_prop_name_pool_str1750[sizeof("soyo")]; - char unicode_prop_name_pool_str1753[sizeof("intags")]; - char unicode_prop_name_pool_str1756[sizeof("inverticalforms")]; - char unicode_prop_name_pool_str1757[sizeof("ininscriptionalparthian")]; - char unicode_prop_name_pool_str1760[sizeof("ininscriptionalpahlavi")]; - char unicode_prop_name_pool_str1763[sizeof("meroitichieroglyphs")]; - char unicode_prop_name_pool_str1764[sizeof("asciihexdigit")]; - char unicode_prop_name_pool_str1766[sizeof("inethiopicextendeda")]; - char unicode_prop_name_pool_str1767[sizeof("invedicextensions")]; - char unicode_prop_name_pool_str1781[sizeof("nand")]; - char unicode_prop_name_pool_str1782[sizeof("cwl")]; - char unicode_prop_name_pool_str1785[sizeof("cprt")]; - char unicode_prop_name_pool_str1791[sizeof("innushu")]; - char unicode_prop_name_pool_str1794[sizeof("zanabazarsquare")]; - char unicode_prop_name_pool_str1797[sizeof("ingeometricshapesextended")]; - char unicode_prop_name_pool_str1798[sizeof("avst")]; - char unicode_prop_name_pool_str1808[sizeof("imperialaramaic")]; - char unicode_prop_name_pool_str1810[sizeof("bopo")]; - char unicode_prop_name_pool_str1812[sizeof("sarb")]; - char unicode_prop_name_pool_str1819[sizeof("inoldpersian")]; - char unicode_prop_name_pool_str1830[sizeof("intaiviet")]; - char unicode_prop_name_pool_str1834[sizeof("mahj")]; - char unicode_prop_name_pool_str1838[sizeof("inkatakanaphoneticextensions")]; - char unicode_prop_name_pool_str1845[sizeof("mahajani")]; - char unicode_prop_name_pool_str1871[sizeof("closepunctuation")]; - char unicode_prop_name_pool_str1875[sizeof("inlisu")]; - char unicode_prop_name_pool_str1878[sizeof("softdotted")]; - char unicode_prop_name_pool_str1897[sizeof("unknown")]; - char unicode_prop_name_pool_str1898[sizeof("invariationselectorssupplement")]; - char unicode_prop_name_pool_str1910[sizeof("syrc")]; - char unicode_prop_name_pool_str1911[sizeof("hang")]; - char unicode_prop_name_pool_str1926[sizeof("incjksymbolsandpunctuation")]; - char unicode_prop_name_pool_str1932[sizeof("ingujarati")]; - char unicode_prop_name_pool_str1933[sizeof("bopomofo")]; - char unicode_prop_name_pool_str1936[sizeof("alpha")]; - char unicode_prop_name_pool_str1937[sizeof("khoj")]; - char unicode_prop_name_pool_str1939[sizeof("inpalmyrene")]; - char unicode_prop_name_pool_str1942[sizeof("ingunjalagondi")]; - char unicode_prop_name_pool_str1948[sizeof("inoldpermic")]; - char unicode_prop_name_pool_str1950[sizeof("inlepcha")]; - char unicode_prop_name_pool_str1951[sizeof("assigned")]; - char unicode_prop_name_pool_str1955[sizeof("incurrencysymbols")]; - char unicode_prop_name_pool_str1958[sizeof("insmallformvariants")]; - char unicode_prop_name_pool_str1959[sizeof("sorasompeng")]; - char unicode_prop_name_pool_str1964[sizeof("inlinearbsyllabary")]; - char unicode_prop_name_pool_str1965[sizeof("oldpersian")]; - char unicode_prop_name_pool_str1972[sizeof("caucasianalbanian")]; - char unicode_prop_name_pool_str1973[sizeof("inenclosedcjklettersandmonths")]; - char unicode_prop_name_pool_str1975[sizeof("hiragana")]; - char unicode_prop_name_pool_str1976[sizeof("inbamum")]; - char unicode_prop_name_pool_str1979[sizeof("inrejang")]; - char unicode_prop_name_pool_str1984[sizeof("graph")]; - char unicode_prop_name_pool_str1990[sizeof("sharada")]; - char unicode_prop_name_pool_str1991[sizeof("inethiopicsupplement")]; - char unicode_prop_name_pool_str1996[sizeof("indevanagariextended")]; - char unicode_prop_name_pool_str1997[sizeof("incoptic")]; - char unicode_prop_name_pool_str1998[sizeof("insyriacsupplement")]; - char unicode_prop_name_pool_str2004[sizeof("inmeroiticcursive")]; - char unicode_prop_name_pool_str2014[sizeof("hmng")]; - char unicode_prop_name_pool_str2022[sizeof("intelugu")]; - char unicode_prop_name_pool_str2029[sizeof("incombiningdiacriticalmarks")]; - char unicode_prop_name_pool_str2031[sizeof("mathsymbol")]; - char unicode_prop_name_pool_str2036[sizeof("titlecaseletter")]; - char unicode_prop_name_pool_str2038[sizeof("ugar")]; - char unicode_prop_name_pool_str2039[sizeof("incombiningdiacriticalmarksforsymbols")]; - char unicode_prop_name_pool_str2040[sizeof("spacingmark")]; - char unicode_prop_name_pool_str2043[sizeof("shrd")]; - char unicode_prop_name_pool_str2047[sizeof("injavanese")]; - char unicode_prop_name_pool_str2048[sizeof("syriac")]; - char unicode_prop_name_pool_str2054[sizeof("space")]; - char unicode_prop_name_pool_str2056[sizeof("hebr")]; - char unicode_prop_name_pool_str2061[sizeof("ext")]; - char unicode_prop_name_pool_str2064[sizeof("inhanguljamo")]; - char unicode_prop_name_pool_str2066[sizeof("phag")]; - char unicode_prop_name_pool_str2076[sizeof("inhanguljamoextendeda")]; - char unicode_prop_name_pool_str2082[sizeof("wancho")]; - char unicode_prop_name_pool_str2084[sizeof("bugi")]; - char unicode_prop_name_pool_str2089[sizeof("tamil")]; - char unicode_prop_name_pool_str2093[sizeof("sogd")]; - char unicode_prop_name_pool_str2094[sizeof("orkh")]; - char unicode_prop_name_pool_str2097[sizeof("oldpermic")]; - char unicode_prop_name_pool_str2100[sizeof("siddham")]; - char unicode_prop_name_pool_str2102[sizeof("incyrillicextendedb")]; - char unicode_prop_name_pool_str2105[sizeof("inbrahmi")]; - char unicode_prop_name_pool_str2108[sizeof("inmongoliansupplement")]; - char unicode_prop_name_pool_str2113[sizeof("thaa")]; - char unicode_prop_name_pool_str2118[sizeof("thaana")]; - char unicode_prop_name_pool_str2120[sizeof("thai")]; - char unicode_prop_name_pool_str2122[sizeof("buginese")]; - char unicode_prop_name_pool_str2127[sizeof("ingeorgiansupplement")]; - char unicode_prop_name_pool_str2129[sizeof("digit")]; - char unicode_prop_name_pool_str2132[sizeof("cyrillic")]; - char unicode_prop_name_pool_str2149[sizeof("sylo")]; - char unicode_prop_name_pool_str2150[sizeof("inphoneticextensions")]; - char unicode_prop_name_pool_str2151[sizeof("separator")]; - char unicode_prop_name_pool_str2159[sizeof("inethiopicextended")]; - char unicode_prop_name_pool_str2163[sizeof("inmathematicalalphanumericsymbols")]; - char unicode_prop_name_pool_str2168[sizeof("insymbolsandpictographsextendeda")]; - char unicode_prop_name_pool_str2170[sizeof("nd")]; - char unicode_prop_name_pool_str2176[sizeof("tirh")]; - char unicode_prop_name_pool_str2178[sizeof("tirhuta")]; - char unicode_prop_name_pool_str2184[sizeof("incombiningdiacriticalmarkssupplement")]; - char unicode_prop_name_pool_str2193[sizeof("extender")]; - char unicode_prop_name_pool_str2197[sizeof("wcho")]; - char unicode_prop_name_pool_str2199[sizeof("inbengali")]; - char unicode_prop_name_pool_str2201[sizeof("talu")]; - char unicode_prop_name_pool_str2206[sizeof("tang")]; - char unicode_prop_name_pool_str2207[sizeof("warangciti")]; - char unicode_prop_name_pool_str2210[sizeof("tagbanwa")]; - char unicode_prop_name_pool_str2211[sizeof("orya")]; - char unicode_prop_name_pool_str2212[sizeof("nl")]; - char unicode_prop_name_pool_str2213[sizeof("induployan")]; - char unicode_prop_name_pool_str2214[sizeof("cwu")]; - char unicode_prop_name_pool_str2216[sizeof("inbuginese")]; - char unicode_prop_name_pool_str2220[sizeof("telu")]; - char unicode_prop_name_pool_str2223[sizeof("ogam")]; - char unicode_prop_name_pool_str2226[sizeof("taitham")]; - char unicode_prop_name_pool_str2237[sizeof("rjng")]; - char unicode_prop_name_pool_str2240[sizeof("insuttonsignwriting")]; - char unicode_prop_name_pool_str2250[sizeof("incombiningdiacriticalmarksextended")]; - char unicode_prop_name_pool_str2251[sizeof("number")]; - char unicode_prop_name_pool_str2264[sizeof("inyijinghexagramsymbols")]; - char unicode_prop_name_pool_str2277[sizeof("whitespace")]; - char unicode_prop_name_pool_str2278[sizeof("currencysymbol")]; - char unicode_prop_name_pool_str2285[sizeof("inottomansiyaqnumbers")]; - char unicode_prop_name_pool_str2288[sizeof("inlimbu")]; - char unicode_prop_name_pool_str2293[sizeof("incopticepactnumbers")]; - char unicode_prop_name_pool_str2295[sizeof("ingeorgianextended")]; - char unicode_prop_name_pool_str2305[sizeof("inphoneticextensionssupplement")]; - char unicode_prop_name_pool_str2308[sizeof("any")]; - char unicode_prop_name_pool_str2320[sizeof("osge")]; - char unicode_prop_name_pool_str2325[sizeof("defaultignorablecodepoint")]; - char unicode_prop_name_pool_str2326[sizeof("hangul")]; - char unicode_prop_name_pool_str2333[sizeof("newa")]; - char unicode_prop_name_pool_str2343[sizeof("ethi")]; - char unicode_prop_name_pool_str2345[sizeof("hanifirohingya")]; - char unicode_prop_name_pool_str2346[sizeof("hmnp")]; - char unicode_prop_name_pool_str2348[sizeof("olditalic")]; - char unicode_prop_name_pool_str2349[sizeof("incjkunifiedideographsextensionb")]; - char unicode_prop_name_pool_str2352[sizeof("rohg")]; - char unicode_prop_name_pool_str2353[sizeof("innyiakengpuachuehmong")]; - char unicode_prop_name_pool_str2355[sizeof("incjkradicalssupplement")]; - char unicode_prop_name_pool_str2364[sizeof("newtailue")]; - char unicode_prop_name_pool_str2365[sizeof("newline")]; - char unicode_prop_name_pool_str2366[sizeof("lepcha")]; - char unicode_prop_name_pool_str2375[sizeof("deprecated")]; - char unicode_prop_name_pool_str2381[sizeof("buhd")]; - char unicode_prop_name_pool_str2391[sizeof("inglagolitic")]; - char unicode_prop_name_pool_str2395[sizeof("inaegeannumbers")]; - char unicode_prop_name_pool_str2400[sizeof("modifiersymbol")]; - char unicode_prop_name_pool_str2410[sizeof("surrogate")]; - char unicode_prop_name_pool_str2418[sizeof("inletterlikesymbols")]; - char unicode_prop_name_pool_str2426[sizeof("idstrinaryoperator")]; - char unicode_prop_name_pool_str2442[sizeof("intagalog")]; - char unicode_prop_name_pool_str2443[sizeof("tangut")]; - char unicode_prop_name_pool_str2445[sizeof("osmanya")]; - char unicode_prop_name_pool_str2447[sizeof("oalpha")]; - char unicode_prop_name_pool_str2448[sizeof("inphagspa")]; - char unicode_prop_name_pool_str2455[sizeof("ugaritic")]; - char unicode_prop_name_pool_str2456[sizeof("otheridcontinue")]; - char unicode_prop_name_pool_str2460[sizeof("inarabicpresentationformsb")]; - char unicode_prop_name_pool_str2462[sizeof("inbassavah")]; - char unicode_prop_name_pool_str2469[sizeof("other")]; - char unicode_prop_name_pool_str2478[sizeof("othernumber")]; - char unicode_prop_name_pool_str2480[sizeof("sylotinagri")]; - char unicode_prop_name_pool_str2487[sizeof("ingothic")]; - char unicode_prop_name_pool_str2498[sizeof("inbuhid")]; - char unicode_prop_name_pool_str2502[sizeof("inlatin1supplement")]; - char unicode_prop_name_pool_str2516[sizeof("intagbanwa")]; - char unicode_prop_name_pool_str2523[sizeof("shaw")]; - char unicode_prop_name_pool_str2529[sizeof("oldhungarian")]; - char unicode_prop_name_pool_str2538[sizeof("inmahjongtiles")]; - char unicode_prop_name_pool_str2542[sizeof("hung")]; - char unicode_prop_name_pool_str2544[sizeof("tifinagh")]; - char unicode_prop_name_pool_str2554[sizeof("inbopomofo")]; - char unicode_prop_name_pool_str2561[sizeof("narb")]; - char unicode_prop_name_pool_str2571[sizeof("inyisyllables")]; - char unicode_prop_name_pool_str2573[sizeof("kayahli")]; - char unicode_prop_name_pool_str2578[sizeof("otheralphabetic")]; - char unicode_prop_name_pool_str2582[sizeof("phagspa")]; - char unicode_prop_name_pool_str2584[sizeof("inprivateusearea")]; - char unicode_prop_name_pool_str2588[sizeof("elba")]; - char unicode_prop_name_pool_str2591[sizeof("nchar")]; - char unicode_prop_name_pool_str2607[sizeof("spaceseparator")]; - char unicode_prop_name_pool_str2609[sizeof("tibt")]; - char unicode_prop_name_pool_str2611[sizeof("extendedpictographic")]; - char unicode_prop_name_pool_str2615[sizeof("tibetan")]; - char unicode_prop_name_pool_str2616[sizeof("sgnw")]; - char unicode_prop_name_pool_str2622[sizeof("hexdigit")]; - char unicode_prop_name_pool_str2623[sizeof("tfng")]; - char unicode_prop_name_pool_str2627[sizeof("inbamumsupplement")]; - char unicode_prop_name_pool_str2632[sizeof("tavt")]; - char unicode_prop_name_pool_str2633[sizeof("incombininghalfmarks")]; - char unicode_prop_name_pool_str2634[sizeof("inarabicmathematicalalphabeticsymbols")]; - char unicode_prop_name_pool_str2638[sizeof("khudawadi")]; - char unicode_prop_name_pool_str2641[sizeof("inhalfwidthandfullwidthforms")]; - char unicode_prop_name_pool_str2652[sizeof("inhangulsyllables")]; - char unicode_prop_name_pool_str2653[sizeof("elym")]; - char unicode_prop_name_pool_str2669[sizeof("symbol")]; - char unicode_prop_name_pool_str2692[sizeof("bassavah")]; - char unicode_prop_name_pool_str2696[sizeof("elymaic")]; - char unicode_prop_name_pool_str2698[sizeof("changeswhencasemapped")]; - char unicode_prop_name_pool_str2709[sizeof("oldturkic")]; - char unicode_prop_name_pool_str2725[sizeof("inplayingcards")]; - char unicode_prop_name_pool_str2767[sizeof("zp")]; - char unicode_prop_name_pool_str2775[sizeof("elbasan")]; - char unicode_prop_name_pool_str2776[sizeof("buhid")]; - char unicode_prop_name_pool_str2779[sizeof("noncharactercodepoint")]; - char unicode_prop_name_pool_str2785[sizeof("finalpunctuation")]; - char unicode_prop_name_pool_str2794[sizeof("inpsalterpahlavi")]; - char unicode_prop_name_pool_str2800[sizeof("inpaucinhau")]; - char unicode_prop_name_pool_str2801[sizeof("nonspacingmark")]; - char unicode_prop_name_pool_str2804[sizeof("changeswhentitlecased")]; - char unicode_prop_name_pool_str2808[sizeof("inindicsiyaqnumbers")]; - char unicode_prop_name_pool_str2813[sizeof("phlp")]; - char unicode_prop_name_pool_str2824[sizeof("wspace")]; - char unicode_prop_name_pool_str2831[sizeof("nbat")]; - char unicode_prop_name_pool_str2836[sizeof("hluw")]; - char unicode_prop_name_pool_str2838[sizeof("cypriot")]; - char unicode_prop_name_pool_str2839[sizeof("nabataean")]; - char unicode_prop_name_pool_str2841[sizeof("inalchemicalsymbols")]; - char unicode_prop_name_pool_str2847[sizeof("dupl")]; - char unicode_prop_name_pool_str2856[sizeof("otherlowercase")]; - char unicode_prop_name_pool_str2875[sizeof("inarabicsupplement")]; - char unicode_prop_name_pool_str2876[sizeof("inalphabeticpresentationforms")]; - char unicode_prop_name_pool_str2890[sizeof("otherletter")]; - char unicode_prop_name_pool_str2916[sizeof("emojipresentation")]; - char unicode_prop_name_pool_str2930[sizeof("changeswhenlowercased")]; - char unicode_prop_name_pool_str2953[sizeof("dashpunctuation")]; - char unicode_prop_name_pool_str2954[sizeof("oldsogdian")]; - char unicode_prop_name_pool_str2970[sizeof("intangutcomponents")]; - char unicode_prop_name_pool_str2977[sizeof("soyombo")]; - char unicode_prop_name_pool_str2996[sizeof("paragraphseparator")]; - char unicode_prop_name_pool_str3012[sizeof("changeswhencasefolded")]; - char unicode_prop_name_pool_str3015[sizeof("othersymbol")]; - char unicode_prop_name_pool_str3020[sizeof("inlatinextendedb")]; - char unicode_prop_name_pool_str3072[sizeof("otheruppercase")]; - char unicode_prop_name_pool_str3079[sizeof("otheridstart")]; - char unicode_prop_name_pool_str3084[sizeof("inhebrew")]; - char unicode_prop_name_pool_str3088[sizeof("oldnortharabian")]; - char unicode_prop_name_pool_str3092[sizeof("omath")]; - char unicode_prop_name_pool_str3099[sizeof("incypriotsyllabary")]; - char unicode_prop_name_pool_str3118[sizeof("inmathematicaloperators")]; - char unicode_prop_name_pool_str3146[sizeof("changeswhenuppercased")]; - char unicode_prop_name_pool_str3154[sizeof("nshu")]; - char unicode_prop_name_pool_str3182[sizeof("insuperscriptsandsubscripts")]; - char unicode_prop_name_pool_str3188[sizeof("ogrext")]; - char unicode_prop_name_pool_str3197[sizeof("inhanguljamoextendedb")]; - char unicode_prop_name_pool_str3198[sizeof("alphabetic")]; - char unicode_prop_name_pool_str3199[sizeof("dep")]; - char unicode_prop_name_pool_str3216[sizeof("oupper")]; - char unicode_prop_name_pool_str3258[sizeof("zyyy")]; - char unicode_prop_name_pool_str3267[sizeof("aghb")]; - char unicode_prop_name_pool_str3285[sizeof("ogham")]; - char unicode_prop_name_pool_str3306[sizeof("rejang")]; - char unicode_prop_name_pool_str3324[sizeof("tagb")]; - char unicode_prop_name_pool_str3350[sizeof("hyphen")]; - char unicode_prop_name_pool_str3355[sizeof("insupplementalarrowsa")]; - char unicode_prop_name_pool_str3413[sizeof("inpahawhhmong")]; - char unicode_prop_name_pool_str3459[sizeof("nushu")]; - char unicode_prop_name_pool_str3478[sizeof("othermath")]; - char unicode_prop_name_pool_str3491[sizeof("insupplementalarrowsc")]; - char unicode_prop_name_pool_str3494[sizeof("insupplementalmathematicaloperators")]; - char unicode_prop_name_pool_str3500[sizeof("otherdefaultignorablecodepoint")]; - char unicode_prop_name_pool_str3527[sizeof("inhighprivateusesurrogates")]; - char unicode_prop_name_pool_str3538[sizeof("duployan")]; - char unicode_prop_name_pool_str3663[sizeof("oldsoutharabian")]; - char unicode_prop_name_pool_str3666[sizeof("tglg")]; - char unicode_prop_name_pool_str3685[sizeof("tagalog")]; - char unicode_prop_name_pool_str3692[sizeof("inbopomofoextended")]; - char unicode_prop_name_pool_str3731[sizeof("signwriting")]; - char unicode_prop_name_pool_str3750[sizeof("inegyptianhieroglyphs")]; - char unicode_prop_name_pool_str3763[sizeof("inegyptianhieroglyphformatcontrols")]; - char unicode_prop_name_pool_str3807[sizeof("upper")]; - char unicode_prop_name_pool_str3810[sizeof("otherpunctuation")]; - char unicode_prop_name_pool_str3872[sizeof("ethiopic")]; - char unicode_prop_name_pool_str3881[sizeof("hebrew")]; - char unicode_prop_name_pool_str3901[sizeof("telugu")]; - char unicode_prop_name_pool_str3910[sizeof("uppercase")]; - char unicode_prop_name_pool_str3937[sizeof("insupplementalpunctuation")]; - char unicode_prop_name_pool_str3946[sizeof("unifiedideograph")]; - char unicode_prop_name_pool_str3961[sizeof("pahawhhmong")]; - char unicode_prop_name_pool_str3971[sizeof("inglagoliticsupplement")]; - char unicode_prop_name_pool_str3992[sizeof("inboxdrawing")]; - char unicode_prop_name_pool_str4279[sizeof("uppercaseletter")]; - char unicode_prop_name_pool_str4298[sizeof("othergraphemeextend")]; - char unicode_prop_name_pool_str4401[sizeof("inhighsurrogates")]; - char unicode_prop_name_pool_str4476[sizeof("insupplementalarrowsb")]; - char unicode_prop_name_pool_str4562[sizeof("inhangulcompatibilityjamo")]; - char unicode_prop_name_pool_str4563[sizeof("egyp")]; - char unicode_prop_name_pool_str4577[sizeof("insupplementalsymbolsandpictographs")]; - char unicode_prop_name_pool_str4659[sizeof("nyiakengpuachuehmong")]; - char unicode_prop_name_pool_str4688[sizeof("insupplementaryprivateuseareaa")]; - char unicode_prop_name_pool_str4822[sizeof("openpunctuation")]; - char unicode_prop_name_pool_str4851[sizeof("egyptianhieroglyphs")]; - char unicode_prop_name_pool_str5809[sizeof("insupplementaryprivateuseareab")]; - }; -static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents = - { - "lana", - "z", - "yi", - "lina", - "mn", - "yiii", - "cn", - "maka", - "mani", - "zzzz", - "inkannada", - "ci", - "lo", - "lao", - "laoo", - "miao", - "innko", - "co", - "me", - "loe", - "gran", - "pi", - "lineara", - "mark", - "cari", - "carian", - "po", - "mendekikakui", - "grek", - "pe", - "meeteimayek", - "inkharoshthi", - "geor", - "greek", - "mro", - "mroo", - "kana", - "mero", - "m", - "gonm", - "cakm", - "inosmanya", - "inmanichaean", - "inarmenian", - "inmro", - "inmiao", - "c", - "inchakma", - "common", - "mandaic", - "inmyanmar", - "inmakasar", - "qaai", - "inideographicsymbolsandpunctuation", - "inkhmer", - "cans", - "prependedconcatenationmark", - "lm", - "marc", - "connectorpunctuation", - "inrunic", - "incarian", - "inavestan", - "combiningmark", - "incuneiformnumbersandpunctuation", - "merc", - "perm", - "inahom", - "inipaextensions", - "incherokee", - "insharada", - "makasar", - "inarrows", - "lc", - "masaramgondi", - "incuneiform", - "mc", - "cc", - "inzanabazarsquare", - "lineseparator", - "armn", - "qmark", - "armi", - "insamaritan", - "armenian", - "inmarchen", - "inmasaramgondi", - "qaac", - "pc", - "inscriptionalparthian", - "latn", - "latin", - "ri", - "inthaana", - "inkhmersymbols", - "inkatakana", - "incyrillic", - "inthai", - "incham", - "inkaithi", - "zs", - "mtei", - "vai", - "vaii", - "initialpunctuation", - "cs", - "insyriac", - "pcm", - "intakri", - "mand", - "l", - "ps", - "dia", - "inkanaextendeda", - "di", - "mend", - "modi", - "ideo", - "katakana", - "prti", - "inideographicdescriptioncharacters", - "inlineara", - "xidcontinue", - "brai", - "inlao", - "ascii", - "privateuse", - "arabic", - "mongolian", - "inmyanmarextendeda", - "inruminumeralsymbols", - "letter", - "innandinagari", - "inmeeteimayek", - "inoldnortharabian", - "grlink", - "knda", - "kannada", - "incjkcompatibilityforms", - "incjkcompatibilityideographs", - "inmodi", - "kali", - "control", - "inadlam", - "inspecials", - "inmendekikakui", - "intransportandmapsymbols", - "letternumber", - "xidc", - "inmedefaidrin", - "inchesssymbols", - "inemoticons", - "brahmi", - "inolditalic", - "palm", - "inlycian", - "inmiscellaneousmathematicalsymbolsa", - "xids", - "psalterpahlavi", - "insundanese", - "inoldsogdian", - "diacritic", - "gothic", - "inancientsymbols", - "meroiticcursive", - "inmalayalam", - "patternwhitespace", - "sk", - "insmallkanaextension", - "inmandaic", - "lt", - "so", - "inlinearbideograms", - "incommonindicnumberforms", - "incjkcompatibilityideographssupplement", - "idc", - "inoldsoutharabian", - "insylotinagri", - "idsbinaryoperator", - "sora", - "bamum", - "inkanasupplement", - "incjkstrokes", - "joinc", - "inopticalcharacterrecognition", - "vs", - "indominotiles", - "batk", - "grext", - "batak", - "patws", - "inmodifiertoneletters", - "ital", - "bass", - "decimalnumber", - "alnum", - "ids", - "print", - "inlatinextendeda", - "intaitham", - "inmusicalsymbols", - "intaile", - "samr", - "samaritan", - "s", - "inlatinextendede", - "bali", - "lisu", - "pauc", - "patternsyntax", - "incontrolpictures", - "blank", - "inmiscellaneoussymbols", - "ll", - "inancientgreekmusicalnotation", - "zl", - "inlydian", - "sm", - "inmiscellaneoussymbolsandarrows", - "inugaritic", - "bengali", - "pd", - "inmiscellaneoussymbolsandpictographs", - "medf", - "cf", - "balinese", - "medefaidrin", - "han", - "intamil", - "hani", - "inmultani", - "hano", - "inshorthandformatcontrols", - "insaurashtra", - "pf", - "inoldturkic", - "idcontinue", - "hanunoo", - "sc", - "inkhojki", - "idst", - "canadianaboriginal", - "hira", - "plrd", - "incaucasianalbanian", - "indeseret", - "inearlydynasticcuneiform", - "inspacingmodifierletters", - "innewa", - "idstart", - "zinh", - "incyrillicextendeda", - "dsrt", - "cased", - "glagolitic", - "inhanifirohingya", - "inancientgreeknumbers", - "inmeeteimayekextensions", - "intaixuanjingsymbols", - "joincontrol", - "runr", - "inwarangciti", - "deseret", - "inhiragana", - "sind", - "cherokee", - "inlatinextendedc", - "adlm", - "phoenician", - "cher", - "marchen", - "inkhudawadi", - "sinhala", - "lower", - "graphemelink", - "xidstart", - "ingrantha", - "bidic", - "xdigit", - "casedletter", - "gong", - "multani", - "gunjalagondi", - "cham", - "chakma", - "mong", - "kaithi", - "inmahajani", - "graphemebase", - "insiddham", - "inogham", - "inosage", - "incountingrodnumerals", - "inwancho", - "khojki", - "ingeneralpunctuation", - "georgian", - "incyrillicextendedc", - "inkayahli", - "khar", - "inoriya", - "manichaean", - "bamu", - "zanb", - "oriya", - "inolchiki", - "linb", - "inethiopic", - "wara", - "ingeorgian", - "innabataean", - "inkanbun", - "adlam", - "inbhaiksuki", - "insinhala", - "inelbasan", - "lowercase", - "takri", - "inmongolian", - "invai", - "xsux", - "cntrl", - "emoji", - "sterm", - "cuneiform", - "cwcm", - "hatran", - "linearb", - "taile", - "inlatinextendedadditional", - "inenclosedalphanumerics", - "anatolianhieroglyphs", - "incyrillicsupplement", - "intamilsupplement", - "inmiscellaneoustechnical", - "ahom", - "incherokeesupplement", - "takr", - "khmr", - "incjkunifiedideographsextensiona", - "quotationmark", - "lyci", - "lycian", - "ingurmukhi", - "runic", - "limb", - "inscriptionalpahlavi", - "hatr", - "variationselector", - "modifierletter", - "incjkunifiedideographsextensione", - "mymr", - "myanmar", - "lu", - "kharoshthi", - "inarabic", - "radical", - "khmer", - "inunifiedcanadianaboriginalsyllabics", - "osage", - "sundanese", - "innewtailue", - "logicalorderexception", - "math", - "braille", - "goth", - "insorasompeng", - "insoyombo", - "arab", - "saur", - "guru", - "term", - "paucinhau", - "inbasiclatin", - "inarabicpresentationformsa", - "punct", - "gurmukhi", - "grantha", - "inshavian", - "osma", - "inenclosedalphanumericsupplement", - "intirhuta", - "inelymaic", - "inhatran", - "incjkunifiedideographsextensionc", - "emojimodifier", - "uideo", - "bidicontrol", - "phnx", - "limbu", - "n", - "inenclosedideographicsupplement", - "mult", - "kthi", - "incjkunifiedideographs", - "ingreekandcoptic", - "inoldhungarian", - "incjkcompatibility", - "grbase", - "nandinagari", - "brah", - "no", - "sd", - "nko", - "nkoo", - "xpeo", - "sidd", - "inherited", - "p", - "phli", - "inmeroitichieroglyphs", - "inphoenician", - "inmayannumerals", - "saurashtra", - "inkangxiradicals", - "enclosingmark", - "graphemeextend", - "beng", - "inbatak", - "glag", - "ahex", - "patsyn", - "odi", - "dogra", - "intibetan", - "lydi", - "lydian", - "inblockelements", - "cwcf", - "inunifiedcanadianaboriginalsyllabicsextended", - "regionalindicator", - "ingreekextended", - "emojimodifierbase", - "inanatolianhieroglyphs", - "indogra", - "taiviet", - "inyiradicals", - "unassigned", - "insundanesesupplement", - "innumberforms", - "lowercaseletter", - "dogr", - "lepc", - "bhks", - "word", - "gujr", - "inphaistosdisc", - "bhaiksuki", - "dash", - "inarabicextendeda", - "gujarati", - "inlatinextendedd", - "innoblock", - "java", - "ingeometricshapes", - "cyrl", - "indevanagari", - "inbalinese", - "inbyzantinemusicalsymbols", - "tale", - "deva", - "hex", - "inmyanmarextendedb", - "sinh", - "cwt", - "shavian", - "devanagari", - "oidc", - "javanese", - "mlym", - "incjkunifiedideographsextensiond", - "sentenceterminal", - "malayalam", - "inhanunoo", - "insinhalaarchaicnumbers", - "olck", - "inimperialaramaic", - "olower", - "palmyrene", - "avestan", - "incjkunifiedideographsextensionf", - "insogdian", - "indingbats", - "olchiki", - "oids", - "punctuation", - "sund", - "inbraillepatterns", - "emojicomponent", - "ideographic", - "taml", - "format", - "inornamentaldingbats", - "coptic", - "caseignorable", - "idsb", - "inmiscellaneousmathematicalsymbolsb", - "sogdian", - "sogo", - "terminalpunctuation", - "intangut", - "intifinagh", - "inlowsurrogates", - "invariationselectors", - "copt", - "soyo", - "intags", - "inverticalforms", - "ininscriptionalparthian", - "ininscriptionalpahlavi", - "meroitichieroglyphs", - "asciihexdigit", - "inethiopicextendeda", - "invedicextensions", - "nand", - "cwl", - "cprt", - "innushu", - "zanabazarsquare", - "ingeometricshapesextended", - "avst", - "imperialaramaic", - "bopo", - "sarb", - "inoldpersian", - "intaiviet", - "mahj", - "inkatakanaphoneticextensions", - "mahajani", - "closepunctuation", - "inlisu", - "softdotted", - "unknown", - "invariationselectorssupplement", - "syrc", - "hang", - "incjksymbolsandpunctuation", - "ingujarati", - "bopomofo", - "alpha", - "khoj", - "inpalmyrene", - "ingunjalagondi", - "inoldpermic", - "inlepcha", - "assigned", - "incurrencysymbols", - "insmallformvariants", - "sorasompeng", - "inlinearbsyllabary", - "oldpersian", - "caucasianalbanian", - "inenclosedcjklettersandmonths", - "hiragana", - "inbamum", - "inrejang", - "graph", - "sharada", - "inethiopicsupplement", - "indevanagariextended", - "incoptic", - "insyriacsupplement", - "inmeroiticcursive", - "hmng", - "intelugu", - "incombiningdiacriticalmarks", - "mathsymbol", - "titlecaseletter", - "ugar", - "incombiningdiacriticalmarksforsymbols", - "spacingmark", - "shrd", - "injavanese", - "syriac", - "space", - "hebr", - "ext", - "inhanguljamo", - "phag", - "inhanguljamoextendeda", - "wancho", - "bugi", - "tamil", - "sogd", - "orkh", - "oldpermic", - "siddham", - "incyrillicextendedb", - "inbrahmi", - "inmongoliansupplement", - "thaa", - "thaana", - "thai", - "buginese", - "ingeorgiansupplement", - "digit", - "cyrillic", - "sylo", - "inphoneticextensions", - "separator", - "inethiopicextended", - "inmathematicalalphanumericsymbols", - "insymbolsandpictographsextendeda", - "nd", - "tirh", - "tirhuta", - "incombiningdiacriticalmarkssupplement", - "extender", - "wcho", - "inbengali", - "talu", - "tang", - "warangciti", - "tagbanwa", - "orya", - "nl", - "induployan", - "cwu", - "inbuginese", - "telu", - "ogam", - "taitham", - "rjng", - "insuttonsignwriting", - "incombiningdiacriticalmarksextended", - "number", - "inyijinghexagramsymbols", - "whitespace", - "currencysymbol", - "inottomansiyaqnumbers", - "inlimbu", - "incopticepactnumbers", - "ingeorgianextended", - "inphoneticextensionssupplement", - "any", - "osge", - "defaultignorablecodepoint", - "hangul", - "newa", - "ethi", - "hanifirohingya", - "hmnp", - "olditalic", - "incjkunifiedideographsextensionb", - "rohg", - "innyiakengpuachuehmong", - "incjkradicalssupplement", - "newtailue", - "newline", - "lepcha", - "deprecated", - "buhd", - "inglagolitic", - "inaegeannumbers", - "modifiersymbol", - "surrogate", - "inletterlikesymbols", - "idstrinaryoperator", - "intagalog", - "tangut", - "osmanya", - "oalpha", - "inphagspa", - "ugaritic", - "otheridcontinue", - "inarabicpresentationformsb", - "inbassavah", - "other", - "othernumber", - "sylotinagri", - "ingothic", - "inbuhid", - "inlatin1supplement", - "intagbanwa", - "shaw", - "oldhungarian", - "inmahjongtiles", - "hung", - "tifinagh", - "inbopomofo", - "narb", - "inyisyllables", - "kayahli", - "otheralphabetic", - "phagspa", - "inprivateusearea", - "elba", - "nchar", - "spaceseparator", - "tibt", - "extendedpictographic", - "tibetan", - "sgnw", - "hexdigit", - "tfng", - "inbamumsupplement", - "tavt", - "incombininghalfmarks", - "inarabicmathematicalalphabeticsymbols", - "khudawadi", - "inhalfwidthandfullwidthforms", - "inhangulsyllables", - "elym", - "symbol", - "bassavah", - "elymaic", - "changeswhencasemapped", - "oldturkic", - "inplayingcards", - "zp", - "elbasan", - "buhid", - "noncharactercodepoint", - "finalpunctuation", - "inpsalterpahlavi", - "inpaucinhau", - "nonspacingmark", - "changeswhentitlecased", - "inindicsiyaqnumbers", - "phlp", - "wspace", - "nbat", - "hluw", - "cypriot", - "nabataean", - "inalchemicalsymbols", - "dupl", - "otherlowercase", - "inarabicsupplement", - "inalphabeticpresentationforms", - "otherletter", - "emojipresentation", - "changeswhenlowercased", - "dashpunctuation", - "oldsogdian", - "intangutcomponents", - "soyombo", - "paragraphseparator", - "changeswhencasefolded", - "othersymbol", - "inlatinextendedb", - "otheruppercase", - "otheridstart", - "inhebrew", - "oldnortharabian", - "omath", - "incypriotsyllabary", - "inmathematicaloperators", - "changeswhenuppercased", - "nshu", - "insuperscriptsandsubscripts", - "ogrext", - "inhanguljamoextendedb", - "alphabetic", - "dep", - "oupper", - "zyyy", - "aghb", - "ogham", - "rejang", - "tagb", - "hyphen", - "insupplementalarrowsa", - "inpahawhhmong", - "nushu", - "othermath", - "insupplementalarrowsc", - "insupplementalmathematicaloperators", - "otherdefaultignorablecodepoint", - "inhighprivateusesurrogates", - "duployan", - "oldsoutharabian", - "tglg", - "tagalog", - "inbopomofoextended", - "signwriting", - "inegyptianhieroglyphs", - "inegyptianhieroglyphformatcontrols", - "upper", - "otherpunctuation", - "ethiopic", - "hebrew", - "telugu", - "uppercase", - "insupplementalpunctuation", - "unifiedideograph", - "pahawhhmong", - "inglagoliticsupplement", - "inboxdrawing", - "uppercaseletter", - "othergraphemeextend", - "inhighsurrogates", - "insupplementalarrowsb", - "inhangulcompatibilityjamo", - "egyp", - "insupplementalsymbolsandpictographs", - "nyiakengpuachuehmong", - "insupplementaryprivateuseareaa", - "openpunctuation", - "egyptianhieroglyphs", - "insupplementaryprivateuseareab" - }; -#define unicode_prop_name_pool ((const char *) &unicode_prop_name_pool_contents) -static const struct PoolPropertyNameCtype * -unicode_lookup_property_name (register const char *str, register size_t len) -{ - static const struct PoolPropertyNameCtype wordlist[] = - { - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(10), 238}, - {-1}, {-1}, {-1}, - - {pool_offset(14), 262}, - {-1}, - - {pool_offset(16), 261}, - - {pool_offset(17), 125}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(24), 154}, - - {pool_offset(25), 261}, - {-1}, - - {pool_offset(27), 53}, - - {pool_offset(28), 139}, - {-1}, - - {pool_offset(30), 142}, - {-1}, {-1}, - - {pool_offset(33), 252}, - - {pool_offset(34), 295}, - - {pool_offset(35), 40}, - {-1}, - - {pool_offset(37), 130}, - - {pool_offset(38), 121}, - - {pool_offset(39), 121}, - {-1}, {-1}, {-1}, - - {pool_offset(43), 153}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(51), 283}, - {-1}, - - {pool_offset(53), 54}, - {-1}, {-1}, - - {pool_offset(56), 147}, - {-1}, {-1}, {-1}, - - {pool_offset(60), 131}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(70), 83}, - {-1}, - - {pool_offset(72), 205}, - {-1}, {-1}, {-1}, - - {pool_offset(76), 125}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(84), 137}, - {-1}, - - {pool_offset(86), 39}, - - {pool_offset(87), 39}, - {-1}, {-1}, - - {pool_offset(90), 206}, - - {pool_offset(91), 150}, - {-1}, {-1}, - - {pool_offset(94), 87}, - {-1}, - - {pool_offset(96), 201}, - {-1}, {-1}, - - {pool_offset(99), 149}, - {-1}, - - {pool_offset(101), 460}, - - {pool_offset(102), 80}, - - {pool_offset(103), 87}, - {-1}, {-1}, {-1}, - - {pool_offset(107), 157}, - - {pool_offset(108), 157}, - {-1}, - - {pool_offset(110), 113}, - - {pool_offset(111), 152}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(120), 137}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(133), 144}, - - {pool_offset(134), 45}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(139), 446}, - {-1}, {-1}, - - {pool_offset(142), 463}, - {-1}, {-1}, {-1}, - - {pool_offset(146), 277}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(151), 512}, - - {pool_offset(152), 516}, - {-1}, {-1}, {-1}, - - {pool_offset(156), 37}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(163), 478}, - {-1}, {-1}, - - {pool_offset(166), 55}, - {-1}, {-1}, - - {pool_offset(169), 141}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(182), 301}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(187), 503}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(192), 106}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(200), 517}, - {-1}, {-1}, {-1}, - - {pool_offset(204), 314}, - {-1}, {-1}, - - {pool_offset(207), 38}, - {-1}, - - {pool_offset(209), 207}, - {-1}, - - {pool_offset(211), 129}, - - {pool_offset(212), 143}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(219), 199}, - - {pool_offset(220), 309}, - - {pool_offset(221), 437}, - {-1}, - - {pool_offset(223), 464}, - {-1}, - - {pool_offset(225), 137}, - - {pool_offset(226), 506}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(231), 151}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(238), 177}, - - {pool_offset(239), 492}, - - {pool_offset(240), 271}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(251), 306}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(257), 480}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(268), 139}, - {-1}, {-1}, {-1}, - - {pool_offset(272), 344}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(277), 120}, - {-1}, - - {pool_offset(279), 144}, - {-1}, {-1}, {-1}, - - {pool_offset(283), 505}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(290), 146}, - {-1}, {-1}, - - {pool_offset(293), 43}, - {-1}, - - {pool_offset(295), 496}, - {-1}, {-1}, - - {pool_offset(298), 264}, - {-1}, {-1}, {-1}, - - {pool_offset(302), 22}, - {-1}, {-1}, - - {pool_offset(305), 210}, - - {pool_offset(306), 105}, - {-1}, {-1}, - - {pool_offset(309), 284}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(316), 22}, - {-1}, - - {pool_offset(318), 500}, - - {pool_offset(319), 501}, - {-1}, - - {pool_offset(321), 56}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(330), 199}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(335), 108}, - - {pool_offset(336), 122}, - {-1}, {-1}, {-1}, - - {pool_offset(340), 122}, - {-1}, - - {pool_offset(342), 212}, - {-1}, {-1}, - - {pool_offset(345), 282}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(352), 320}, - {-1}, {-1}, - - {pool_offset(355), 375}, - - {pool_offset(356), 275}, - - {pool_offset(357), 298}, - {-1}, - - {pool_offset(359), 405}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(367), 476}, - {-1}, - - {pool_offset(369), 266}, - {-1}, {-1}, - - {pool_offset(372), 149}, - {-1}, {-1}, - - {pool_offset(375), 254}, - - {pool_offset(376), 254}, - {-1}, {-1}, - - {pool_offset(379), 205}, - {-1}, {-1}, {-1}, - - {pool_offset(383), 57}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(399), 280}, - {-1}, - - {pool_offset(401), 207}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(415), 491}, - {-1}, - - {pool_offset(417), 141}, - {-1}, - - {pool_offset(419), 119}, - - {pool_offset(420), 208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(427), 66}, - {-1}, {-1}, {-1}, - - {pool_offset(431), 521}, - {-1}, - - {pool_offset(433), 62}, - {-1}, {-1}, - - {pool_offset(436), 150}, - - {pool_offset(437), 155}, - {-1}, {-1}, {-1}, - - {pool_offset(441), 104}, - {-1}, {-1}, {-1}, - - {pool_offset(445), 113}, - {-1}, {-1}, {-1}, - - {pool_offset(449), 108}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(456), 372}, - - {pool_offset(457), 450}, - - {pool_offset(458), 259}, - {-1}, {-1}, - - {pool_offset(461), 34}, - {-1}, - - {pool_offset(463), 299}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(472), 14}, - {-1}, - - {pool_offset(474), 54}, - {-1}, {-1}, - - {pool_offset(477), 21}, - - {pool_offset(478), 156}, - {-1}, - - {pool_offset(480), 406}, - - {pool_offset(481), 471}, - {-1}, {-1}, {-1}, - - {pool_offset(485), 119}, - {-1}, - - {pool_offset(487), 495}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(499), 412}, - - {pool_offset(500), 462}, - {-1}, {-1}, - - {pool_offset(503), 86}, - - {pool_offset(504), 112}, - {-1}, {-1}, - - {pool_offset(507), 112}, - {-1}, - - {pool_offset(509), 425}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(514), 419}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(528), 489}, - - {pool_offset(529), 114}, - {-1}, {-1}, - - {pool_offset(532), 43}, - {-1}, {-1}, {-1}, - - {pool_offset(536), 538}, - {-1}, - - {pool_offset(538), 429}, - {-1}, - - {pool_offset(540), 537}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(545), 550}, - {-1}, - - {pool_offset(547), 167}, - {-1}, - - {pool_offset(549), 259}, - - {pool_offset(550), 515}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(558), 555}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(564), 548}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(573), 33}, - {-1}, - - {pool_offset(575), 439}, - {-1}, {-1}, - - {pool_offset(578), 195}, - {-1}, - - {pool_offset(580), 436}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(588), 355}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(594), 260}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(603), 209}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(619), 325}, - - {pool_offset(620), 472}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(632), 66}, - {-1}, - - {pool_offset(634), 82}, - - {pool_offset(635), 434}, - {-1}, {-1}, {-1}, - - {pool_offset(639), 151}, - {-1}, {-1}, {-1}, - - {pool_offset(643), 296}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(648), 197}, - - {pool_offset(649), 225}, - {-1}, {-1}, - - {pool_offset(652), 522}, - {-1}, {-1}, {-1}, - - {pool_offset(656), 285}, - - {pool_offset(657), 133}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(665), 227}, - - {pool_offset(666), 431}, - {-1}, - - {pool_offset(668), 396}, - - {pool_offset(669), 562}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(677), 102}, - - {pool_offset(678), 461}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(699), 395}, - {-1}, - - {pool_offset(701), 100}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(707), 230}, - - {pool_offset(708), 26}, - - {pool_offset(709), 520}, - - {pool_offset(710), 380}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(715), 110}, - {-1}, {-1}, - - {pool_offset(718), 348}, - {-1}, {-1}, {-1}, - - {pool_offset(722), 255}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(728), 543}, - {-1}, {-1}, {-1}, - - {pool_offset(732), 28}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(739), 85}, - {-1}, - - {pool_offset(741), 28}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(749), 197}, - {-1}, {-1}, - - {pool_offset(752), 393}, - - {pool_offset(753), 175}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(760), 27}, - {-1}, {-1}, - - {pool_offset(763), 163}, - {-1}, - - {pool_offset(765), 13}, - {-1}, - - {pool_offset(767), 103}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(776), 7}, - {-1}, - - {pool_offset(778), 269}, - {-1}, {-1}, {-1}, - - {pool_offset(782), 322}, - - {pool_offset(783), 527}, - {-1}, - - {pool_offset(785), 318}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(794), 216}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(809), 216}, - {-1}, {-1}, {-1}, - - {pool_offset(813), 215}, - {-1}, {-1}, - - {pool_offset(816), 410}, - {-1}, {-1}, {-1}, - - {pool_offset(820), 25}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(826), 127}, - - {pool_offset(827), 198}, - - {pool_offset(828), 196}, - - {pool_offset(829), 347}, - - {pool_offset(830), 2}, - {-1}, {-1}, {-1}, - - {pool_offset(834), 353}, - - {pool_offset(835), 128}, - - {pool_offset(836), 528}, - - {pool_offset(837), 264}, - - {pool_offset(838), 457}, - - {pool_offset(839), 226}, - {-1}, {-1}, {-1}, - - {pool_offset(843), 361}, - - {pool_offset(844), 442}, - - {pool_offset(845), 29}, - - {pool_offset(846), 200}, - {-1}, - - {pool_offset(848), 547}, - {-1}, - - {pool_offset(850), 148}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(855), 44}, - {-1}, {-1}, - - {pool_offset(858), 25}, - {-1}, - - {pool_offset(860), 148}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(865), 91}, - {-1}, {-1}, {-1}, - - {pool_offset(869), 293}, - - {pool_offset(870), 91}, - - {pool_offset(871), 483}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(879), 94}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(887), 525}, - {-1}, {-1}, {-1}, - - {pool_offset(891), 398}, - - {pool_offset(892), 202}, - {-1}, - - {pool_offset(894), 468}, - {-1}, - - {pool_offset(896), 102}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(901), 94}, - {-1}, {-1}, {-1}, - - {pool_offset(905), 218}, - - {pool_offset(906), 482}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(913), 101}, - {-1}, - - {pool_offset(915), 38}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(923), 98}, - {-1}, - - {pool_offset(925), 153}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(939), 449}, - - {pool_offset(940), 444}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(945), 507}, - - {pool_offset(946), 272}, - {-1}, {-1}, {-1}, - - {pool_offset(950), 486}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(972), 103}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(977), 106}, - {-1}, {-1}, {-1}, - - {pool_offset(981), 368}, - {-1}, {-1}, - - {pool_offset(984), 64}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(993), 41}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(999), 81}, - {-1}, {-1}, - - {pool_offset(1002), 470}, - {-1}, {-1}, {-1}, - - {pool_offset(1006), 433}, - {-1}, - - {pool_offset(1008), 408}, - - {pool_offset(1009), 530}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1016), 110}, - {-1}, {-1}, {-1}, - - {pool_offset(1020), 214}, - {-1}, {-1}, - - {pool_offset(1023), 494}, - {-1}, - - {pool_offset(1025), 64}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1035), 374}, - {-1}, {-1}, {-1}, - - {pool_offset(1039), 118}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1047), 52}, - {-1}, {-1}, - - {pool_offset(1050), 363}, - {-1}, - - {pool_offset(1052), 16}, - - {pool_offset(1053), 204}, - {-1}, {-1}, - - {pool_offset(1056), 52}, - {-1}, {-1}, - - {pool_offset(1059), 143}, - {-1}, {-1}, - - {pool_offset(1062), 484}, - - {pool_offset(1063), 224}, - {-1}, {-1}, - - {pool_offset(1066), 6}, - {-1}, - - {pool_offset(1068), 86}, - - {pool_offset(1069), 260}, - {-1}, - - {pool_offset(1071), 485}, - - {pool_offset(1072), 31}, - {-1}, - - {pool_offset(1074), 11}, - {-1}, - - {pool_offset(1076), 120}, - {-1}, - - {pool_offset(1078), 89}, - - {pool_offset(1079), 158}, - {-1}, {-1}, - - {pool_offset(1082), 89}, - {-1}, - - {pool_offset(1084), 46}, - {-1}, - - {pool_offset(1086), 45}, - - {pool_offset(1087), 156}, - - {pool_offset(1088), 111}, - - {pool_offset(1089), 479}, - - {pool_offset(1090), 84}, - {-1}, - - {pool_offset(1092), 488}, - {-1}, {-1}, - - {pool_offset(1095), 308}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1101), 447}, - - {pool_offset(1102), 531}, - {-1}, - - {pool_offset(1104), 536}, - - {pool_offset(1105), 117}, - {-1}, - - {pool_offset(1107), 338}, - - {pool_offset(1108), 80}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1117), 329}, - - {pool_offset(1118), 400}, - {-1}, {-1}, - - {pool_offset(1121), 115}, - {-1}, {-1}, - - {pool_offset(1124), 292}, - {-1}, - - {pool_offset(1126), 142}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1132), 26}, - - {pool_offset(1133), 263}, - {-1}, {-1}, - - {pool_offset(1136), 182}, - - {pool_offset(1137), 328}, - - {pool_offset(1138), 126}, - {-1}, {-1}, - - {pool_offset(1141), 304}, - {-1}, - - {pool_offset(1143), 257}, - - {pool_offset(1144), 302}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1149), 454}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1154), 378}, - {-1}, - - {pool_offset(1156), 16}, - - {pool_offset(1157), 499}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1162), 297}, - - {pool_offset(1163), 448}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1169), 132}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1178), 240}, - - {pool_offset(1179), 315}, - {-1}, - - {pool_offset(1181), 390}, - - {pool_offset(1182), 58}, - - {pool_offset(1183), 3}, - {-1}, {-1}, - - {pool_offset(1186), 72}, - - {pool_offset(1187), 219}, - {-1}, - - {pool_offset(1189), 58}, - {-1}, {-1}, - - {pool_offset(1192), 48}, - {-1}, - - {pool_offset(1194), 95}, - {-1}, {-1}, - - {pool_offset(1197), 126}, - {-1}, {-1}, {-1}, - - {pool_offset(1201), 237}, - - {pool_offset(1202), 336}, - - {pool_offset(1203), 349}, - {-1}, - - {pool_offset(1205), 19}, - - {pool_offset(1206), 276}, - {-1}, - - {pool_offset(1208), 504}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1215), 346}, - {-1}, - - {pool_offset(1217), 17}, - - {pool_offset(1218), 411}, - - {pool_offset(1219), 240}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1224), 116}, - {-1}, {-1}, {-1}, - - {pool_offset(1228), 384}, - {-1}, {-1}, - - {pool_offset(1231), 210}, - {-1}, - - {pool_offset(1233), 135}, - - {pool_offset(1234), 135}, - - {pool_offset(1235), 290}, - {-1}, - - {pool_offset(1237), 214}, - - {pool_offset(1238), 124}, - {-1}, - - {pool_offset(1240), 107}, - {-1}, - - {pool_offset(1242), 95}, - {-1}, - - {pool_offset(1244), 255}, - {-1}, - - {pool_offset(1246), 129}, - - {pool_offset(1247), 560}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1262), 159}, - {-1}, {-1}, - - {pool_offset(1265), 159}, - {-1}, - - {pool_offset(1267), 134}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1275), 115}, - - {pool_offset(1276), 279}, - {-1}, - - {pool_offset(1278), 211}, - {-1}, {-1}, - - {pool_offset(1281), 116}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1286), 307}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1292), 183}, - {-1}, {-1}, {-1}, - - {pool_offset(1296), 232}, - {-1}, {-1}, {-1}, - - {pool_offset(1300), 319}, - {-1}, - - {pool_offset(1302), 131}, - {-1}, - - {pool_offset(1304), 145}, - {-1}, - - {pool_offset(1306), 34}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1311), 82}, - - {pool_offset(1312), 477}, - {-1}, {-1}, {-1}, - - {pool_offset(1316), 497}, - - {pool_offset(1317), 21}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1322), 217}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1329), 90}, - {-1}, {-1}, {-1}, - - {pool_offset(1333), 244}, - {-1}, {-1}, {-1}, - - {pool_offset(1337), 198}, - - {pool_offset(1338), 267}, - - {pool_offset(1339), 421}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1347), 8}, - - {pool_offset(1348), 90}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1354), 83}, - - {pool_offset(1355), 445}, - - {pool_offset(1356), 184}, - - {pool_offset(1357), 545}, - {-1}, {-1}, - - {pool_offset(1360), 487}, - - {pool_offset(1361), 474}, - - {pool_offset(1362), 455}, - {-1}, - - {pool_offset(1364), 558}, - - {pool_offset(1365), 74}, - {-1}, {-1}, - - {pool_offset(1368), 251}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1373), 31}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1379), 204}, - - {pool_offset(1380), 124}, - {-1}, {-1}, {-1}, - - {pool_offset(1384), 160}, - {-1}, {-1}, {-1}, - - {pool_offset(1388), 546}, - {-1}, {-1}, {-1}, - - {pool_offset(1392), 158}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1398), 111}, - - {pool_offset(1399), 386}, - {-1}, - - {pool_offset(1401), 274}, - {-1}, - - {pool_offset(1403), 469}, - {-1}, {-1}, - - {pool_offset(1406), 383}, - {-1}, {-1}, - - {pool_offset(1409), 84}, - {-1}, - - {pool_offset(1411), 162}, - - {pool_offset(1412), 33}, - {-1}, - - {pool_offset(1414), 168}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1421), 228}, - {-1}, - - {pool_offset(1423), 166}, - - {pool_offset(1424), 166}, - {-1}, {-1}, - - {pool_offset(1427), 178}, - {-1}, {-1}, - - {pool_offset(1430), 222}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1435), 106}, - {-1}, - - {pool_offset(1437), 193}, - {-1}, {-1}, - - {pool_offset(1440), 107}, - {-1}, {-1}, - - {pool_offset(1443), 458}, - - {pool_offset(1444), 456}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1449), 529}, - {-1}, {-1}, {-1}, - - {pool_offset(1453), 217}, - {-1}, - - {pool_offset(1455), 371}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1461), 147}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1467), 85}, - - {pool_offset(1468), 29}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1473), 326}, - - {pool_offset(1474), 81}, - - {pool_offset(1475), 15}, - {-1}, - - {pool_offset(1477), 196}, - {-1}, - - {pool_offset(1479), 186}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1486), 67}, - {-1}, {-1}, - - {pool_offset(1489), 300}, - {-1}, - - {pool_offset(1491), 136}, - - {pool_offset(1492), 136}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1499), 351}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1506), 47}, - - {pool_offset(1507), 316}, - - {pool_offset(1508), 212}, - - {pool_offset(1509), 337}, - {-1}, {-1}, {-1}, - - {pool_offset(1513), 75}, - - {pool_offset(1514), 510}, - {-1}, - - {pool_offset(1516), 493}, - - {pool_offset(1517), 239}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1524), 388}, - - {pool_offset(1525), 53}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1532), 331}, - {-1}, {-1}, - - {pool_offset(1535), 343}, - {-1}, {-1}, - - {pool_offset(1538), 128}, - {-1}, {-1}, - - {pool_offset(1541), 67}, - - {pool_offset(1542), 123}, - {-1}, {-1}, - - {pool_offset(1545), 30}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1553), 12}, - - {pool_offset(1554), 88}, - - {pool_offset(1555), 435}, - {-1}, - - {pool_offset(1557), 30}, - {-1}, {-1}, - - {pool_offset(1560), 61}, - {-1}, - - {pool_offset(1562), 287}, - {-1}, {-1}, - - {pool_offset(1565), 88}, - - {pool_offset(1566), 394}, - - {pool_offset(1567), 567}, - {-1}, {-1}, - - {pool_offset(1570), 109}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1576), 352}, - - {pool_offset(1577), 60}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1582), 288}, - - {pool_offset(1583), 324}, - {-1}, - - {pool_offset(1585), 526}, - {-1}, {-1}, {-1}, - - {pool_offset(1589), 237}, - {-1}, - - {pool_offset(1591), 65}, - {-1}, {-1}, - - {pool_offset(1594), 97}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1601), 404}, - {-1}, - - {pool_offset(1603), 224}, - - {pool_offset(1604), 50}, - {-1}, - - {pool_offset(1606), 221}, - - {pool_offset(1607), 65}, - {-1}, - - {pool_offset(1609), 188}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1615), 109}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1621), 140}, - - {pool_offset(1622), 559}, - {-1}, - - {pool_offset(1624), 219}, - {-1}, - - {pool_offset(1626), 140}, - {-1}, - - {pool_offset(1628), 311}, - - {pool_offset(1629), 481}, - {-1}, - - {pool_offset(1631), 173}, - {-1}, - - {pool_offset(1633), 452}, - {-1}, {-1}, - - {pool_offset(1636), 190}, - {-1}, - - {pool_offset(1638), 195}, - {-1}, {-1}, {-1}, - - {pool_offset(1642), 24}, - {-1}, {-1}, - - {pool_offset(1645), 561}, - - {pool_offset(1646), 473}, - - {pool_offset(1647), 354}, - - {pool_offset(1648), 173}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1654), 189}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1661), 193}, - {-1}, - - {pool_offset(1663), 232}, - {-1}, {-1}, - - {pool_offset(1666), 357}, - {-1}, {-1}, - - {pool_offset(1669), 73}, - {-1}, {-1}, - - {pool_offset(1672), 104}, - - {pool_offset(1673), 241}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1688), 44}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1694), 549}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1700), 56}, - {-1}, - - {pool_offset(1702), 40}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1708), 100}, - - {pool_offset(1709), 359}, - {-1}, {-1}, - - {pool_offset(1712), 229}, - {-1}, {-1}, - - {pool_offset(1715), 179}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1720), 244}, - {-1}, - - {pool_offset(1722), 518}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1729), 366}, - {-1}, {-1}, {-1}, - - {pool_offset(1733), 417}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1743), 422}, - {-1}, - - {pool_offset(1745), 56}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1750), 231}, - {-1}, {-1}, - - {pool_offset(1753), 563}, - {-1}, {-1}, - - {pool_offset(1756), 423}, - - {pool_offset(1757), 465}, - {-1}, {-1}, - - {pool_offset(1760), 466}, - {-1}, {-1}, - - {pool_offset(1763), 152}, - - {pool_offset(1764), 15}, - {-1}, - - {pool_offset(1766), 409}, - - {pool_offset(1767), 332}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1781), 162}, - - {pool_offset(1782), 49}, - {-1}, {-1}, - - {pool_offset(1785), 59}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1791), 523}, - {-1}, {-1}, - - {pool_offset(1794), 263}, - {-1}, {-1}, - - {pool_offset(1797), 552}, - - {pool_offset(1798), 24}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1808), 105}, - {-1}, - - {pool_offset(1810), 32}, - {-1}, - - {pool_offset(1812), 180}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1819), 443}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(1830), 407}, - {-1}, {-1}, {-1}, - - {pool_offset(1834), 138}, - {-1}, {-1}, {-1}, - - {pool_offset(1838), 381}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1845), 138}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1871), 201}, - {-1}, {-1}, {-1}, - - {pool_offset(1875), 389}, - {-1}, {-1}, - - {pool_offset(1878), 228}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1897), 252}, - - {pool_offset(1898), 564}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(1910), 234}, - - {pool_offset(1911), 92}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1926), 373}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1932), 291}, - - {pool_offset(1933), 32}, - {-1}, {-1}, - - {pool_offset(1936), 1}, - - {pool_offset(1937), 117}, - {-1}, - - {pool_offset(1939), 453}, - {-1}, {-1}, - - {pool_offset(1942), 502}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1948), 441}, - {-1}, - - {pool_offset(1950), 327}, - - {pool_offset(1951), 23}, - {-1}, {-1}, {-1}, - - {pool_offset(1955), 340}, - {-1}, {-1}, - - {pool_offset(1958), 426}, - - {pool_offset(1959), 230}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1964), 430}, - - {pool_offset(1965), 178}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1972), 42}, - - {pool_offset(1973), 382}, - {-1}, - - {pool_offset(1975), 98}, - - {pool_offset(1976), 392}, - {-1}, {-1}, - - {pool_offset(1979), 401}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1984), 5}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1990), 220}, - - {pool_offset(1991), 305}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(1996), 399}, - - {pool_offset(1997), 364}, - - {pool_offset(1998), 286}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2004), 459}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2014), 194}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2022), 294}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2029), 273}, - {-1}, - - {pool_offset(2031), 226}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2036), 133}, - {-1}, - - {pool_offset(2038), 250}, - - {pool_offset(2039), 341}, - - {pool_offset(2040), 146}, - {-1}, {-1}, - - {pool_offset(2043), 220}, - {-1}, {-1}, {-1}, - - {pool_offset(2047), 403}, - - {pool_offset(2048), 234}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2054), 9}, - {-1}, - - {pool_offset(2056), 96}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2061), 79}, - {-1}, {-1}, - - {pool_offset(2064), 303}, - {-1}, - - {pool_offset(2066), 203}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2076), 402}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2082), 256}, - {-1}, - - {pool_offset(2084), 35}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2089), 241}, - {-1}, {-1}, {-1}, - - {pool_offset(2093), 229}, - - {pool_offset(2094), 181}, - {-1}, {-1}, - - {pool_offset(2097), 177}, - {-1}, {-1}, - - {pool_offset(2100), 222}, - {-1}, - - {pool_offset(2102), 391}, - {-1}, {-1}, - - {pool_offset(2105), 475}, - {-1}, {-1}, - - {pool_offset(2108), 490}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2113), 245}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2118), 245}, - {-1}, - - {pool_offset(2120), 246}, - {-1}, - - {pool_offset(2122), 35}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2127), 365}, - {-1}, - - {pool_offset(2129), 4}, - {-1}, {-1}, - - {pool_offset(2132), 60}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2149), 233}, - - {pool_offset(2150), 333}, - - {pool_offset(2151), 262}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2159), 367}, - {-1}, {-1}, {-1}, - - {pool_offset(2163), 532}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2168), 556}, - {-1}, - - {pool_offset(2170), 163}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2176), 249}, - {-1}, - - {pool_offset(2178), 249}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2184), 335}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2193), 79}, - {-1}, {-1}, {-1}, - - {pool_offset(2197), 256}, - {-1}, - - {pool_offset(2199), 289}, - {-1}, - - {pool_offset(2201), 164}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2206), 242}, - - {pool_offset(2207), 257}, - {-1}, {-1}, - - {pool_offset(2210), 236}, - - {pool_offset(2211), 182}, - - {pool_offset(2212), 167}, - - {pool_offset(2213), 524}, - - {pool_offset(2214), 51}, - {-1}, - - {pool_offset(2216), 321}, - {-1}, {-1}, {-1}, - - {pool_offset(2220), 243}, - {-1}, {-1}, - - {pool_offset(2223), 172}, - {-1}, {-1}, - - {pool_offset(2226), 238}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(2237), 213}, - {-1}, {-1}, - - {pool_offset(2240), 533}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2250), 323}, - - {pool_offset(2251), 160}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(2264), 385}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(2277), 258}, - - {pool_offset(2278), 218}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2285), 540}, - {-1}, {-1}, - - {pool_offset(2288), 317}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2293), 438}, - {-1}, - - {pool_offset(2295), 330}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2305), 334}, - {-1}, {-1}, - - {pool_offset(2308), 20}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(2320), 183}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2325), 62}, - - {pool_offset(2326), 92}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2333), 165}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2343), 77}, - {-1}, - - {pool_offset(2345), 93}, - - {pool_offset(2346), 171}, - {-1}, - - {pool_offset(2348), 175}, - - {pool_offset(2349), 557}, - {-1}, {-1}, - - {pool_offset(2352), 93}, - - {pool_offset(2353), 535}, - {-1}, - - {pool_offset(2355), 370}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2364), 164}, - - {pool_offset(2365), 0}, - - {pool_offset(2366), 123}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2375), 63}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2381), 36}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2391), 362}, - {-1}, {-1}, {-1}, - - {pool_offset(2395), 432}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2400), 225}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2410), 57}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2418), 342}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2426), 101}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2442), 310}, - - {pool_offset(2443), 242}, - {-1}, - - {pool_offset(2445), 184}, - {-1}, - - {pool_offset(2447), 185}, - - {pool_offset(2448), 397}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2455), 250}, - - {pool_offset(2456), 188}, - {-1}, {-1}, {-1}, - - {pool_offset(2460), 427}, - {-1}, - - {pool_offset(2462), 513}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2469), 37}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2478), 168}, - {-1}, - - {pool_offset(2480), 233}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2487), 440}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(2498), 312}, - {-1}, {-1}, {-1}, - - {pool_offset(2502), 268}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2516), 313}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2523), 221}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2529), 174}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2538), 542}, - {-1}, {-1}, {-1}, - - {pool_offset(2542), 174}, - {-1}, - - {pool_offset(2544), 248}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2554), 376}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2561), 176}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2571), 387}, - {-1}, - - {pool_offset(2573), 114}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2578), 185}, - {-1}, {-1}, {-1}, - - {pool_offset(2582), 203}, - {-1}, - - {pool_offset(2584), 418}, - {-1}, {-1}, {-1}, - - {pool_offset(2588), 70}, - {-1}, {-1}, - - {pool_offset(2591), 169}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2607), 266}, - {-1}, - - {pool_offset(2609), 247}, - {-1}, - - {pool_offset(2611), 78}, - {-1}, {-1}, {-1}, - - {pool_offset(2615), 247}, - - {pool_offset(2616), 223}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2622), 97}, - - {pool_offset(2623), 248}, - {-1}, {-1}, {-1}, - - {pool_offset(2627), 511}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2632), 239}, - - {pool_offset(2633), 424}, - - {pool_offset(2634), 541}, - {-1}, {-1}, {-1}, - - {pool_offset(2638), 118}, - {-1}, {-1}, - - {pool_offset(2641), 428}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(2652), 413}, - - {pool_offset(2653), 71}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2669), 215}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2692), 27}, - {-1}, {-1}, {-1}, - - {pool_offset(2696), 71}, - {-1}, - - {pool_offset(2698), 48}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(2709), 181}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2725), 544}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2767), 265}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2775), 70}, - - {pool_offset(2776), 36}, - {-1}, {-1}, - - {pool_offset(2779), 169}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2785), 202}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2794), 467}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2800), 498}, - - {pool_offset(2801), 154}, - {-1}, {-1}, - - {pool_offset(2804), 50}, - {-1}, {-1}, {-1}, - - {pool_offset(2808), 539}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2813), 209}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(2824), 258}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2831), 161}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2836), 19}, - {-1}, - - {pool_offset(2838), 59}, - - {pool_offset(2839), 161}, - {-1}, - - {pool_offset(2841), 551}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2847), 68}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2856), 190}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2875), 281}, - - {pool_offset(2876), 420}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2890), 130}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2916), 76}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2930), 49}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2953), 200}, - - {pool_offset(2954), 179}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2970), 519}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2977), 231}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(2996), 265}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3012), 47}, - {-1}, {-1}, - - {pool_offset(3015), 227}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3020), 270}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3072), 192}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3079), 189}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3084), 278}, - {-1}, {-1}, {-1}, - - {pool_offset(3088), 176}, - {-1}, {-1}, {-1}, - - {pool_offset(3092), 191}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3099), 451}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3118), 345}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3146), 51}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3154), 170}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3182), 339}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3188), 187}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3197), 414}, - - {pool_offset(3198), 18}, - - {pool_offset(3199), 63}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3216), 192}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3258), 55}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3267), 42}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3285), 172}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(3306), 213}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3324), 236}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3350), 99}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3355), 356}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3413), 514}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3459), 170}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3478), 191}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3491), 553}, - {-1}, {-1}, - - {pool_offset(3494), 360}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3500), 186}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3527), 416}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(3538), 68}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3663), 180}, - {-1}, {-1}, - - {pool_offset(3666), 235}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3685), 235}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3692), 379}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(3731), 223}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3750), 508}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(3763), 509}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3807), 10}, - {-1}, {-1}, - - {pool_offset(3810), 206}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3872), 77}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3881), 96}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(3901), 243}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3910), 253}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3937), 369}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3946), 251}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3961), 194}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(3971), 534}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(3992), 350}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4279), 134}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4298), 187}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(4401), 415}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, - - {pool_offset(4476), 358}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4562), 377}, - - {pool_offset(4563), 69}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4577), 554}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4659), 171}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(4688), 565}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(4822), 208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, - - {pool_offset(4851), 69}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, - - {pool_offset(5809), 566} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = wordlist[key].name; - if (o >= 0) - { - register const char *s = o + unicode_prop_name_pool; - - if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0') - return &wordlist[key]; - } - } - } - return 0; -} - - - -#define UNICODE_PROPERTY_VERSION 12_1_0 - -#define PROPERTY_NAME_MAX_SIZE 59 -#define CODE_RANGES_NUM 568 - -#define PROP_INDEX_NEWLINE 0 -#define PROP_INDEX_ALPHA 1 -#define PROP_INDEX_BLANK 2 -#define PROP_INDEX_CNTRL 3 -#define PROP_INDEX_DIGIT 4 -#define PROP_INDEX_GRAPH 5 -#define PROP_INDEX_LOWER 6 -#define PROP_INDEX_PRINT 7 -#define PROP_INDEX_PUNCT 8 -#define PROP_INDEX_SPACE 9 -#define PROP_INDEX_UPPER 10 -#define PROP_INDEX_XDIGIT 11 -#define PROP_INDEX_WORD 12 -#define PROP_INDEX_ALNUM 13 -#define PROP_INDEX_ASCII 14 -#define PROP_INDEX_ASCIIHEXDIGIT 15 -#define PROP_INDEX_AHEX 15 -#define PROP_INDEX_ADLM 16 -#define PROP_INDEX_ADLAM 16 -#define PROP_INDEX_AHOM 17 -#define PROP_INDEX_ALPHABETIC 18 -#define PROP_INDEX_ANATOLIANHIEROGLYPHS 19 -#define PROP_INDEX_HLUW 19 -#define PROP_INDEX_ANY 20 -#define PROP_INDEX_ARABIC 21 -#define PROP_INDEX_ARAB 21 -#define PROP_INDEX_ARMN 22 -#define PROP_INDEX_ARMENIAN 22 -#define PROP_INDEX_ASSIGNED 23 -#define PROP_INDEX_AVST 24 -#define PROP_INDEX_AVESTAN 24 -#define PROP_INDEX_BALINESE 25 -#define PROP_INDEX_BALI 25 -#define PROP_INDEX_BAMUM 26 -#define PROP_INDEX_BAMU 26 -#define PROP_INDEX_BASSAVAH 27 -#define PROP_INDEX_BASS 27 -#define PROP_INDEX_BATAK 28 -#define PROP_INDEX_BATK 28 -#define PROP_INDEX_BENG 29 -#define PROP_INDEX_BENGALI 29 -#define PROP_INDEX_BHKS 30 -#define PROP_INDEX_BHAIKSUKI 30 -#define PROP_INDEX_BIDICONTROL 31 -#define PROP_INDEX_BIDIC 31 -#define PROP_INDEX_BOPO 32 -#define PROP_INDEX_BOPOMOFO 32 -#define PROP_INDEX_BRAHMI 33 -#define PROP_INDEX_BRAH 33 -#define PROP_INDEX_BRAI 34 -#define PROP_INDEX_BRAILLE 34 -#define PROP_INDEX_BUGI 35 -#define PROP_INDEX_BUGINESE 35 -#define PROP_INDEX_BUHD 36 -#define PROP_INDEX_BUHID 36 -#define PROP_INDEX_C 37 -#define PROP_INDEX_OTHER 37 -#define PROP_INDEX_CANS 38 -#define PROP_INDEX_CANADIANABORIGINAL 38 -#define PROP_INDEX_CARI 39 -#define PROP_INDEX_CARIAN 39 -#define PROP_INDEX_CI 40 -#define PROP_INDEX_CASEIGNORABLE 40 -#define PROP_INDEX_CASED 41 -#define PROP_INDEX_AGHB 42 -#define PROP_INDEX_CAUCASIANALBANIAN 42 -#define PROP_INDEX_CONTROL 43 -#define PROP_INDEX_CC 43 -#define PROP_INDEX_CF 44 -#define PROP_INDEX_FORMAT 44 -#define PROP_INDEX_CHAKMA 45 -#define PROP_INDEX_CAKM 45 -#define PROP_INDEX_CHAM 46 -#define PROP_INDEX_CWCF 47 -#define PROP_INDEX_CHANGESWHENCASEFOLDED 47 -#define PROP_INDEX_CWCM 48 -#define PROP_INDEX_CHANGESWHENCASEMAPPED 48 -#define PROP_INDEX_CWL 49 -#define PROP_INDEX_CHANGESWHENLOWERCASED 49 -#define PROP_INDEX_CWT 50 -#define PROP_INDEX_CHANGESWHENTITLECASED 50 -#define PROP_INDEX_CWU 51 -#define PROP_INDEX_CHANGESWHENUPPERCASED 51 -#define PROP_INDEX_CHER 52 -#define PROP_INDEX_CHEROKEE 52 -#define PROP_INDEX_CN 53 -#define PROP_INDEX_UNASSIGNED 53 -#define PROP_INDEX_PRIVATEUSE 54 -#define PROP_INDEX_CO 54 -#define PROP_INDEX_ZYYY 55 -#define PROP_INDEX_COMMON 55 -#define PROP_INDEX_COPT 56 -#define PROP_INDEX_COPTIC 56 -#define PROP_INDEX_QAAC 56 -#define PROP_INDEX_CS 57 -#define PROP_INDEX_SURROGATE 57 -#define PROP_INDEX_XSUX 58 -#define PROP_INDEX_CUNEIFORM 58 -#define PROP_INDEX_CPRT 59 -#define PROP_INDEX_CYPRIOT 59 -#define PROP_INDEX_CYRILLIC 60 -#define PROP_INDEX_CYRL 60 -#define PROP_INDEX_DASH 61 -#define PROP_INDEX_DEFAULTIGNORABLECODEPOINT 62 -#define PROP_INDEX_DI 62 -#define PROP_INDEX_DEP 63 -#define PROP_INDEX_DEPRECATED 63 -#define PROP_INDEX_DSRT 64 -#define PROP_INDEX_DESERET 64 -#define PROP_INDEX_DEVA 65 -#define PROP_INDEX_DEVANAGARI 65 -#define PROP_INDEX_DIACRITIC 66 -#define PROP_INDEX_DIA 66 -#define PROP_INDEX_DOGRA 67 -#define PROP_INDEX_DOGR 67 -#define PROP_INDEX_DUPL 68 -#define PROP_INDEX_DUPLOYAN 68 -#define PROP_INDEX_EGYPTIANHIEROGLYPHS 69 -#define PROP_INDEX_EGYP 69 -#define PROP_INDEX_ELBA 70 -#define PROP_INDEX_ELBASAN 70 -#define PROP_INDEX_ELYM 71 -#define PROP_INDEX_ELYMAIC 71 -#define PROP_INDEX_EMOJI 72 -#define PROP_INDEX_EMOJICOMPONENT 73 -#define PROP_INDEX_EMOJIMODIFIER 74 -#define PROP_INDEX_EMOJIMODIFIERBASE 75 -#define PROP_INDEX_EMOJIPRESENTATION 76 -#define PROP_INDEX_ETHIOPIC 77 -#define PROP_INDEX_ETHI 77 -#define PROP_INDEX_EXTENDEDPICTOGRAPHIC 78 -#define PROP_INDEX_EXT 79 -#define PROP_INDEX_EXTENDER 79 -#define PROP_INDEX_GEORGIAN 80 -#define PROP_INDEX_GEOR 80 -#define PROP_INDEX_GLAG 81 -#define PROP_INDEX_GLAGOLITIC 81 -#define PROP_INDEX_GOTH 82 -#define PROP_INDEX_GOTHIC 82 -#define PROP_INDEX_GRAN 83 -#define PROP_INDEX_GRANTHA 83 -#define PROP_INDEX_GRBASE 84 -#define PROP_INDEX_GRAPHEMEBASE 84 -#define PROP_INDEX_GREXT 85 -#define PROP_INDEX_GRAPHEMEEXTEND 85 -#define PROP_INDEX_GRAPHEMELINK 86 -#define PROP_INDEX_GRLINK 86 -#define PROP_INDEX_GREEK 87 -#define PROP_INDEX_GREK 87 -#define PROP_INDEX_GUJARATI 88 -#define PROP_INDEX_GUJR 88 -#define PROP_INDEX_GUNJALAGONDI 89 -#define PROP_INDEX_GONG 89 -#define PROP_INDEX_GURU 90 -#define PROP_INDEX_GURMUKHI 90 -#define PROP_INDEX_HANI 91 -#define PROP_INDEX_HAN 91 -#define PROP_INDEX_HANG 92 -#define PROP_INDEX_HANGUL 92 -#define PROP_INDEX_HANIFIROHINGYA 93 -#define PROP_INDEX_ROHG 93 -#define PROP_INDEX_HANUNOO 94 -#define PROP_INDEX_HANO 94 -#define PROP_INDEX_HATR 95 -#define PROP_INDEX_HATRAN 95 -#define PROP_INDEX_HEBREW 96 -#define PROP_INDEX_HEBR 96 -#define PROP_INDEX_HEXDIGIT 97 -#define PROP_INDEX_HEX 97 -#define PROP_INDEX_HIRAGANA 98 -#define PROP_INDEX_HIRA 98 -#define PROP_INDEX_HYPHEN 99 -#define PROP_INDEX_IDSB 100 -#define PROP_INDEX_IDSBINARYOPERATOR 100 -#define PROP_INDEX_IDST 101 -#define PROP_INDEX_IDSTRINARYOPERATOR 101 -#define PROP_INDEX_IDCONTINUE 102 -#define PROP_INDEX_IDC 102 -#define PROP_INDEX_IDS 103 -#define PROP_INDEX_IDSTART 103 -#define PROP_INDEX_IDEO 104 -#define PROP_INDEX_IDEOGRAPHIC 104 -#define PROP_INDEX_ARMI 105 -#define PROP_INDEX_IMPERIALARAMAIC 105 -#define PROP_INDEX_ZINH 106 -#define PROP_INDEX_INHERITED 106 -#define PROP_INDEX_QAAI 106 -#define PROP_INDEX_PHLI 107 -#define PROP_INDEX_INSCRIPTIONALPAHLAVI 107 -#define PROP_INDEX_INSCRIPTIONALPARTHIAN 108 -#define PROP_INDEX_PRTI 108 -#define PROP_INDEX_JAVANESE 109 -#define PROP_INDEX_JAVA 109 -#define PROP_INDEX_JOINC 110 -#define PROP_INDEX_JOINCONTROL 110 -#define PROP_INDEX_KAITHI 111 -#define PROP_INDEX_KTHI 111 -#define PROP_INDEX_KNDA 112 -#define PROP_INDEX_KANNADA 112 -#define PROP_INDEX_KATAKANA 113 -#define PROP_INDEX_KANA 113 -#define PROP_INDEX_KAYAHLI 114 -#define PROP_INDEX_KALI 114 -#define PROP_INDEX_KHAROSHTHI 115 -#define PROP_INDEX_KHAR 115 -#define PROP_INDEX_KHMR 116 -#define PROP_INDEX_KHMER 116 -#define PROP_INDEX_KHOJ 117 -#define PROP_INDEX_KHOJKI 117 -#define PROP_INDEX_KHUDAWADI 118 -#define PROP_INDEX_SIND 118 -#define PROP_INDEX_L 119 -#define PROP_INDEX_LETTER 119 -#define PROP_INDEX_LC 120 -#define PROP_INDEX_CASEDLETTER 120 -#define PROP_INDEX_LAO 121 -#define PROP_INDEX_LAOO 121 -#define PROP_INDEX_LATN 122 -#define PROP_INDEX_LATIN 122 -#define PROP_INDEX_LEPC 123 -#define PROP_INDEX_LEPCHA 123 -#define PROP_INDEX_LIMBU 124 -#define PROP_INDEX_LIMB 124 -#define PROP_INDEX_LINA 125 -#define PROP_INDEX_LINEARA 125 -#define PROP_INDEX_LINB 126 -#define PROP_INDEX_LINEARB 126 -#define PROP_INDEX_LISU 127 -#define PROP_INDEX_LOWERCASELETTER 128 -#define PROP_INDEX_LL 128 -#define PROP_INDEX_LM 129 -#define PROP_INDEX_MODIFIERLETTER 129 -#define PROP_INDEX_LO 130 -#define PROP_INDEX_OTHERLETTER 130 -#define PROP_INDEX_LOGICALORDEREXCEPTION 131 -#define PROP_INDEX_LOE 131 -#define PROP_INDEX_LOWERCASE 132 -#define PROP_INDEX_LT 133 -#define PROP_INDEX_TITLECASELETTER 133 -#define PROP_INDEX_UPPERCASELETTER 134 -#define PROP_INDEX_LU 134 -#define PROP_INDEX_LYCI 135 -#define PROP_INDEX_LYCIAN 135 -#define PROP_INDEX_LYDI 136 -#define PROP_INDEX_LYDIAN 136 -#define PROP_INDEX_M 137 -#define PROP_INDEX_COMBININGMARK 137 -#define PROP_INDEX_MARK 137 -#define PROP_INDEX_MAHJ 138 -#define PROP_INDEX_MAHAJANI 138 -#define PROP_INDEX_MAKASAR 139 -#define PROP_INDEX_MAKA 139 -#define PROP_INDEX_MALAYALAM 140 -#define PROP_INDEX_MLYM 140 -#define PROP_INDEX_MAND 141 -#define PROP_INDEX_MANDAIC 141 -#define PROP_INDEX_MANI 142 -#define PROP_INDEX_MANICHAEAN 142 -#define PROP_INDEX_MARC 143 -#define PROP_INDEX_MARCHEN 143 -#define PROP_INDEX_MASARAMGONDI 144 -#define PROP_INDEX_GONM 144 -#define PROP_INDEX_MATH 145 -#define PROP_INDEX_MC 146 -#define PROP_INDEX_SPACINGMARK 146 -#define PROP_INDEX_ENCLOSINGMARK 147 -#define PROP_INDEX_ME 147 -#define PROP_INDEX_MEDEFAIDRIN 148 -#define PROP_INDEX_MEDF 148 -#define PROP_INDEX_MEETEIMAYEK 149 -#define PROP_INDEX_MTEI 149 -#define PROP_INDEX_MENDEKIKAKUI 150 -#define PROP_INDEX_MEND 150 -#define PROP_INDEX_MEROITICCURSIVE 151 -#define PROP_INDEX_MERC 151 -#define PROP_INDEX_MEROITICHIEROGLYPHS 152 -#define PROP_INDEX_MERO 152 -#define PROP_INDEX_PLRD 153 -#define PROP_INDEX_MIAO 153 -#define PROP_INDEX_MN 154 -#define PROP_INDEX_NONSPACINGMARK 154 -#define PROP_INDEX_MODI 155 -#define PROP_INDEX_MONGOLIAN 156 -#define PROP_INDEX_MONG 156 -#define PROP_INDEX_MRO 157 -#define PROP_INDEX_MROO 157 -#define PROP_INDEX_MULT 158 -#define PROP_INDEX_MULTANI 158 -#define PROP_INDEX_MYANMAR 159 -#define PROP_INDEX_MYMR 159 -#define PROP_INDEX_NUMBER 160 -#define PROP_INDEX_N 160 -#define PROP_INDEX_NABATAEAN 161 -#define PROP_INDEX_NBAT 161 -#define PROP_INDEX_NAND 162 -#define PROP_INDEX_NANDINAGARI 162 -#define PROP_INDEX_DECIMALNUMBER 163 -#define PROP_INDEX_ND 163 -#define PROP_INDEX_TALU 164 -#define PROP_INDEX_NEWTAILUE 164 -#define PROP_INDEX_NEWA 165 -#define PROP_INDEX_NKO 166 -#define PROP_INDEX_NKOO 166 -#define PROP_INDEX_LETTERNUMBER 167 -#define PROP_INDEX_NL 167 -#define PROP_INDEX_OTHERNUMBER 168 -#define PROP_INDEX_NO 168 -#define PROP_INDEX_NONCHARACTERCODEPOINT 169 -#define PROP_INDEX_NCHAR 169 -#define PROP_INDEX_NSHU 170 -#define PROP_INDEX_NUSHU 170 -#define PROP_INDEX_HMNP 171 -#define PROP_INDEX_NYIAKENGPUACHUEHMONG 171 -#define PROP_INDEX_OGHAM 172 -#define PROP_INDEX_OGAM 172 -#define PROP_INDEX_OLCK 173 -#define PROP_INDEX_OLCHIKI 173 -#define PROP_INDEX_HUNG 174 -#define PROP_INDEX_OLDHUNGARIAN 174 -#define PROP_INDEX_ITAL 175 -#define PROP_INDEX_OLDITALIC 175 -#define PROP_INDEX_NARB 176 -#define PROP_INDEX_OLDNORTHARABIAN 176 -#define PROP_INDEX_OLDPERMIC 177 -#define PROP_INDEX_PERM 177 -#define PROP_INDEX_OLDPERSIAN 178 -#define PROP_INDEX_XPEO 178 -#define PROP_INDEX_SOGO 179 -#define PROP_INDEX_OLDSOGDIAN 179 -#define PROP_INDEX_SARB 180 -#define PROP_INDEX_OLDSOUTHARABIAN 180 -#define PROP_INDEX_OLDTURKIC 181 -#define PROP_INDEX_ORKH 181 -#define PROP_INDEX_ORYA 182 -#define PROP_INDEX_ORIYA 182 -#define PROP_INDEX_OSAGE 183 -#define PROP_INDEX_OSGE 183 -#define PROP_INDEX_OSMANYA 184 -#define PROP_INDEX_OSMA 184 -#define PROP_INDEX_OTHERALPHABETIC 185 -#define PROP_INDEX_OALPHA 185 -#define PROP_INDEX_ODI 186 -#define PROP_INDEX_OTHERDEFAULTIGNORABLECODEPOINT 186 -#define PROP_INDEX_OGREXT 187 -#define PROP_INDEX_OTHERGRAPHEMEEXTEND 187 -#define PROP_INDEX_OIDC 188 -#define PROP_INDEX_OTHERIDCONTINUE 188 -#define PROP_INDEX_OTHERIDSTART 189 -#define PROP_INDEX_OIDS 189 -#define PROP_INDEX_OTHERLOWERCASE 190 -#define PROP_INDEX_OLOWER 190 -#define PROP_INDEX_OTHERMATH 191 -#define PROP_INDEX_OMATH 191 -#define PROP_INDEX_OTHERUPPERCASE 192 -#define PROP_INDEX_OUPPER 192 -#define PROP_INDEX_P 193 -#define PROP_INDEX_PUNCTUATION 193 -#define PROP_INDEX_PAHAWHHMONG 194 -#define PROP_INDEX_HMNG 194 -#define PROP_INDEX_PALMYRENE 195 -#define PROP_INDEX_PALM 195 -#define PROP_INDEX_PATTERNSYNTAX 196 -#define PROP_INDEX_PATSYN 196 -#define PROP_INDEX_PATWS 197 -#define PROP_INDEX_PATTERNWHITESPACE 197 -#define PROP_INDEX_PAUCINHAU 198 -#define PROP_INDEX_PAUC 198 -#define PROP_INDEX_CONNECTORPUNCTUATION 199 -#define PROP_INDEX_PC 199 -#define PROP_INDEX_DASHPUNCTUATION 200 -#define PROP_INDEX_PD 200 -#define PROP_INDEX_PE 201 -#define PROP_INDEX_CLOSEPUNCTUATION 201 -#define PROP_INDEX_FINALPUNCTUATION 202 -#define PROP_INDEX_PF 202 -#define PROP_INDEX_PHAG 203 -#define PROP_INDEX_PHAGSPA 203 -#define PROP_INDEX_PHOENICIAN 204 -#define PROP_INDEX_PHNX 204 -#define PROP_INDEX_PI 205 -#define PROP_INDEX_INITIALPUNCTUATION 205 -#define PROP_INDEX_OTHERPUNCTUATION 206 -#define PROP_INDEX_PO 206 -#define PROP_INDEX_PREPENDEDCONCATENATIONMARK 207 -#define PROP_INDEX_PCM 207 -#define PROP_INDEX_PS 208 -#define PROP_INDEX_OPENPUNCTUATION 208 -#define PROP_INDEX_PHLP 209 -#define PROP_INDEX_PSALTERPAHLAVI 209 -#define PROP_INDEX_QUOTATIONMARK 210 -#define PROP_INDEX_QMARK 210 -#define PROP_INDEX_RADICAL 211 -#define PROP_INDEX_RI 212 -#define PROP_INDEX_REGIONALINDICATOR 212 -#define PROP_INDEX_REJANG 213 -#define PROP_INDEX_RJNG 213 -#define PROP_INDEX_RUNIC 214 -#define PROP_INDEX_RUNR 214 -#define PROP_INDEX_S 215 -#define PROP_INDEX_SYMBOL 215 -#define PROP_INDEX_SAMARITAN 216 -#define PROP_INDEX_SAMR 216 -#define PROP_INDEX_SAURASHTRA 217 -#define PROP_INDEX_SAUR 217 -#define PROP_INDEX_SC 218 -#define PROP_INDEX_CURRENCYSYMBOL 218 -#define PROP_INDEX_SENTENCETERMINAL 219 -#define PROP_INDEX_STERM 219 -#define PROP_INDEX_SHARADA 220 -#define PROP_INDEX_SHRD 220 -#define PROP_INDEX_SHAVIAN 221 -#define PROP_INDEX_SHAW 221 -#define PROP_INDEX_SIDDHAM 222 -#define PROP_INDEX_SIDD 222 -#define PROP_INDEX_SIGNWRITING 223 -#define PROP_INDEX_SGNW 223 -#define PROP_INDEX_SINH 224 -#define PROP_INDEX_SINHALA 224 -#define PROP_INDEX_SK 225 -#define PROP_INDEX_MODIFIERSYMBOL 225 -#define PROP_INDEX_MATHSYMBOL 226 -#define PROP_INDEX_SM 226 -#define PROP_INDEX_SO 227 -#define PROP_INDEX_OTHERSYMBOL 227 -#define PROP_INDEX_SD 228 -#define PROP_INDEX_SOFTDOTTED 228 -#define PROP_INDEX_SOGD 229 -#define PROP_INDEX_SOGDIAN 229 -#define PROP_INDEX_SORASOMPENG 230 -#define PROP_INDEX_SORA 230 -#define PROP_INDEX_SOYO 231 -#define PROP_INDEX_SOYOMBO 231 -#define PROP_INDEX_SUND 232 -#define PROP_INDEX_SUNDANESE 232 -#define PROP_INDEX_SYLO 233 -#define PROP_INDEX_SYLOTINAGRI 233 -#define PROP_INDEX_SYRC 234 -#define PROP_INDEX_SYRIAC 234 -#define PROP_INDEX_TGLG 235 -#define PROP_INDEX_TAGALOG 235 -#define PROP_INDEX_TAGBANWA 236 -#define PROP_INDEX_TAGB 236 -#define PROP_INDEX_TAILE 237 -#define PROP_INDEX_TALE 237 -#define PROP_INDEX_TAITHAM 238 -#define PROP_INDEX_LANA 238 -#define PROP_INDEX_TAIVIET 239 -#define PROP_INDEX_TAVT 239 -#define PROP_INDEX_TAKRI 240 -#define PROP_INDEX_TAKR 240 -#define PROP_INDEX_TAMIL 241 -#define PROP_INDEX_TAML 241 -#define PROP_INDEX_TANG 242 -#define PROP_INDEX_TANGUT 242 -#define PROP_INDEX_TELUGU 243 -#define PROP_INDEX_TELU 243 -#define PROP_INDEX_TERM 244 -#define PROP_INDEX_TERMINALPUNCTUATION 244 -#define PROP_INDEX_THAA 245 -#define PROP_INDEX_THAANA 245 -#define PROP_INDEX_THAI 246 -#define PROP_INDEX_TIBT 247 -#define PROP_INDEX_TIBETAN 247 -#define PROP_INDEX_TFNG 248 -#define PROP_INDEX_TIFINAGH 248 -#define PROP_INDEX_TIRHUTA 249 -#define PROP_INDEX_TIRH 249 -#define PROP_INDEX_UGAR 250 -#define PROP_INDEX_UGARITIC 250 -#define PROP_INDEX_UNIFIEDIDEOGRAPH 251 -#define PROP_INDEX_UIDEO 251 -#define PROP_INDEX_ZZZZ 252 -#define PROP_INDEX_UNKNOWN 252 -#define PROP_INDEX_UPPERCASE 253 -#define PROP_INDEX_VAII 254 -#define PROP_INDEX_VAI 254 -#define PROP_INDEX_VARIATIONSELECTOR 255 -#define PROP_INDEX_VS 255 -#define PROP_INDEX_WCHO 256 -#define PROP_INDEX_WANCHO 256 -#define PROP_INDEX_WARANGCITI 257 -#define PROP_INDEX_WARA 257 -#define PROP_INDEX_WHITESPACE 258 -#define PROP_INDEX_WSPACE 258 -#define PROP_INDEX_XIDC 259 -#define PROP_INDEX_XIDCONTINUE 259 -#define PROP_INDEX_XIDS 260 -#define PROP_INDEX_XIDSTART 260 -#define PROP_INDEX_YI 261 -#define PROP_INDEX_YIII 261 -#define PROP_INDEX_SEPARATOR 262 -#define PROP_INDEX_Z 262 -#define PROP_INDEX_ZANABAZARSQUARE 263 -#define PROP_INDEX_ZANB 263 -#define PROP_INDEX_ZL 264 -#define PROP_INDEX_LINESEPARATOR 264 -#define PROP_INDEX_ZP 265 -#define PROP_INDEX_PARAGRAPHSEPARATOR 265 -#define PROP_INDEX_ZS 266 -#define PROP_INDEX_SPACESEPARATOR 266 -#define PROP_INDEX_INBASICLATIN 267 -#define PROP_INDEX_INLATIN1SUPPLEMENT 268 -#define PROP_INDEX_INLATINEXTENDEDA 269 -#define PROP_INDEX_INLATINEXTENDEDB 270 -#define PROP_INDEX_INIPAEXTENSIONS 271 -#define PROP_INDEX_INSPACINGMODIFIERLETTERS 272 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKS 273 -#define PROP_INDEX_INGREEKANDCOPTIC 274 -#define PROP_INDEX_INCYRILLIC 275 -#define PROP_INDEX_INCYRILLICSUPPLEMENT 276 -#define PROP_INDEX_INARMENIAN 277 -#define PROP_INDEX_INHEBREW 278 -#define PROP_INDEX_INARABIC 279 -#define PROP_INDEX_INSYRIAC 280 -#define PROP_INDEX_INARABICSUPPLEMENT 281 -#define PROP_INDEX_INTHAANA 282 -#define PROP_INDEX_INNKO 283 -#define PROP_INDEX_INSAMARITAN 284 -#define PROP_INDEX_INMANDAIC 285 -#define PROP_INDEX_INSYRIACSUPPLEMENT 286 -#define PROP_INDEX_INARABICEXTENDEDA 287 -#define PROP_INDEX_INDEVANAGARI 288 -#define PROP_INDEX_INBENGALI 289 -#define PROP_INDEX_INGURMUKHI 290 -#define PROP_INDEX_INGUJARATI 291 -#define PROP_INDEX_INORIYA 292 -#define PROP_INDEX_INTAMIL 293 -#define PROP_INDEX_INTELUGU 294 -#define PROP_INDEX_INKANNADA 295 -#define PROP_INDEX_INMALAYALAM 296 -#define PROP_INDEX_INSINHALA 297 -#define PROP_INDEX_INTHAI 298 -#define PROP_INDEX_INLAO 299 -#define PROP_INDEX_INTIBETAN 300 -#define PROP_INDEX_INMYANMAR 301 -#define PROP_INDEX_INGEORGIAN 302 -#define PROP_INDEX_INHANGULJAMO 303 -#define PROP_INDEX_INETHIOPIC 304 -#define PROP_INDEX_INETHIOPICSUPPLEMENT 305 -#define PROP_INDEX_INCHEROKEE 306 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICS 307 -#define PROP_INDEX_INOGHAM 308 -#define PROP_INDEX_INRUNIC 309 -#define PROP_INDEX_INTAGALOG 310 -#define PROP_INDEX_INHANUNOO 311 -#define PROP_INDEX_INBUHID 312 -#define PROP_INDEX_INTAGBANWA 313 -#define PROP_INDEX_INKHMER 314 -#define PROP_INDEX_INMONGOLIAN 315 -#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED 316 -#define PROP_INDEX_INLIMBU 317 -#define PROP_INDEX_INTAILE 318 -#define PROP_INDEX_INNEWTAILUE 319 -#define PROP_INDEX_INKHMERSYMBOLS 320 -#define PROP_INDEX_INBUGINESE 321 -#define PROP_INDEX_INTAITHAM 322 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSEXTENDED 323 -#define PROP_INDEX_INBALINESE 324 -#define PROP_INDEX_INSUNDANESE 325 -#define PROP_INDEX_INBATAK 326 -#define PROP_INDEX_INLEPCHA 327 -#define PROP_INDEX_INOLCHIKI 328 -#define PROP_INDEX_INCYRILLICEXTENDEDC 329 -#define PROP_INDEX_INGEORGIANEXTENDED 330 -#define PROP_INDEX_INSUNDANESESUPPLEMENT 331 -#define PROP_INDEX_INVEDICEXTENSIONS 332 -#define PROP_INDEX_INPHONETICEXTENSIONS 333 -#define PROP_INDEX_INPHONETICEXTENSIONSSUPPLEMENT 334 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSSUPPLEMENT 335 -#define PROP_INDEX_INLATINEXTENDEDADDITIONAL 336 -#define PROP_INDEX_INGREEKEXTENDED 337 -#define PROP_INDEX_INGENERALPUNCTUATION 338 -#define PROP_INDEX_INSUPERSCRIPTSANDSUBSCRIPTS 339 -#define PROP_INDEX_INCURRENCYSYMBOLS 340 -#define PROP_INDEX_INCOMBININGDIACRITICALMARKSFORSYMBOLS 341 -#define PROP_INDEX_INLETTERLIKESYMBOLS 342 -#define PROP_INDEX_INNUMBERFORMS 343 -#define PROP_INDEX_INARROWS 344 -#define PROP_INDEX_INMATHEMATICALOPERATORS 345 -#define PROP_INDEX_INMISCELLANEOUSTECHNICAL 346 -#define PROP_INDEX_INCONTROLPICTURES 347 -#define PROP_INDEX_INOPTICALCHARACTERRECOGNITION 348 -#define PROP_INDEX_INENCLOSEDALPHANUMERICS 349 -#define PROP_INDEX_INBOXDRAWING 350 -#define PROP_INDEX_INBLOCKELEMENTS 351 -#define PROP_INDEX_INGEOMETRICSHAPES 352 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLS 353 -#define PROP_INDEX_INDINGBATS 354 -#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSA 355 -#define PROP_INDEX_INSUPPLEMENTALARROWSA 356 -#define PROP_INDEX_INBRAILLEPATTERNS 357 -#define PROP_INDEX_INSUPPLEMENTALARROWSB 358 -#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSB 359 -#define PROP_INDEX_INSUPPLEMENTALMATHEMATICALOPERATORS 360 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDARROWS 361 -#define PROP_INDEX_INGLAGOLITIC 362 -#define PROP_INDEX_INLATINEXTENDEDC 363 -#define PROP_INDEX_INCOPTIC 364 -#define PROP_INDEX_INGEORGIANSUPPLEMENT 365 -#define PROP_INDEX_INTIFINAGH 366 -#define PROP_INDEX_INETHIOPICEXTENDED 367 -#define PROP_INDEX_INCYRILLICEXTENDEDA 368 -#define PROP_INDEX_INSUPPLEMENTALPUNCTUATION 369 -#define PROP_INDEX_INCJKRADICALSSUPPLEMENT 370 -#define PROP_INDEX_INKANGXIRADICALS 371 -#define PROP_INDEX_INIDEOGRAPHICDESCRIPTIONCHARACTERS 372 -#define PROP_INDEX_INCJKSYMBOLSANDPUNCTUATION 373 -#define PROP_INDEX_INHIRAGANA 374 -#define PROP_INDEX_INKATAKANA 375 -#define PROP_INDEX_INBOPOMOFO 376 -#define PROP_INDEX_INHANGULCOMPATIBILITYJAMO 377 -#define PROP_INDEX_INKANBUN 378 -#define PROP_INDEX_INBOPOMOFOEXTENDED 379 -#define PROP_INDEX_INCJKSTROKES 380 -#define PROP_INDEX_INKATAKANAPHONETICEXTENSIONS 381 -#define PROP_INDEX_INENCLOSEDCJKLETTERSANDMONTHS 382 -#define PROP_INDEX_INCJKCOMPATIBILITY 383 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA 384 -#define PROP_INDEX_INYIJINGHEXAGRAMSYMBOLS 385 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHS 386 -#define PROP_INDEX_INYISYLLABLES 387 -#define PROP_INDEX_INYIRADICALS 388 -#define PROP_INDEX_INLISU 389 -#define PROP_INDEX_INVAI 390 -#define PROP_INDEX_INCYRILLICEXTENDEDB 391 -#define PROP_INDEX_INBAMUM 392 -#define PROP_INDEX_INMODIFIERTONELETTERS 393 -#define PROP_INDEX_INLATINEXTENDEDD 394 -#define PROP_INDEX_INSYLOTINAGRI 395 -#define PROP_INDEX_INCOMMONINDICNUMBERFORMS 396 -#define PROP_INDEX_INPHAGSPA 397 -#define PROP_INDEX_INSAURASHTRA 398 -#define PROP_INDEX_INDEVANAGARIEXTENDED 399 -#define PROP_INDEX_INKAYAHLI 400 -#define PROP_INDEX_INREJANG 401 -#define PROP_INDEX_INHANGULJAMOEXTENDEDA 402 -#define PROP_INDEX_INJAVANESE 403 -#define PROP_INDEX_INMYANMAREXTENDEDB 404 -#define PROP_INDEX_INCHAM 405 -#define PROP_INDEX_INMYANMAREXTENDEDA 406 -#define PROP_INDEX_INTAIVIET 407 -#define PROP_INDEX_INMEETEIMAYEKEXTENSIONS 408 -#define PROP_INDEX_INETHIOPICEXTENDEDA 409 -#define PROP_INDEX_INLATINEXTENDEDE 410 -#define PROP_INDEX_INCHEROKEESUPPLEMENT 411 -#define PROP_INDEX_INMEETEIMAYEK 412 -#define PROP_INDEX_INHANGULSYLLABLES 413 -#define PROP_INDEX_INHANGULJAMOEXTENDEDB 414 -#define PROP_INDEX_INHIGHSURROGATES 415 -#define PROP_INDEX_INHIGHPRIVATEUSESURROGATES 416 -#define PROP_INDEX_INLOWSURROGATES 417 -#define PROP_INDEX_INPRIVATEUSEAREA 418 -#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHS 419 -#define PROP_INDEX_INALPHABETICPRESENTATIONFORMS 420 -#define PROP_INDEX_INARABICPRESENTATIONFORMSA 421 -#define PROP_INDEX_INVARIATIONSELECTORS 422 -#define PROP_INDEX_INVERTICALFORMS 423 -#define PROP_INDEX_INCOMBININGHALFMARKS 424 -#define PROP_INDEX_INCJKCOMPATIBILITYFORMS 425 -#define PROP_INDEX_INSMALLFORMVARIANTS 426 -#define PROP_INDEX_INARABICPRESENTATIONFORMSB 427 -#define PROP_INDEX_INHALFWIDTHANDFULLWIDTHFORMS 428 -#define PROP_INDEX_INSPECIALS 429 -#define PROP_INDEX_INLINEARBSYLLABARY 430 -#define PROP_INDEX_INLINEARBIDEOGRAMS 431 -#define PROP_INDEX_INAEGEANNUMBERS 432 -#define PROP_INDEX_INANCIENTGREEKNUMBERS 433 -#define PROP_INDEX_INANCIENTSYMBOLS 434 -#define PROP_INDEX_INPHAISTOSDISC 435 -#define PROP_INDEX_INLYCIAN 436 -#define PROP_INDEX_INCARIAN 437 -#define PROP_INDEX_INCOPTICEPACTNUMBERS 438 -#define PROP_INDEX_INOLDITALIC 439 -#define PROP_INDEX_INGOTHIC 440 -#define PROP_INDEX_INOLDPERMIC 441 -#define PROP_INDEX_INUGARITIC 442 -#define PROP_INDEX_INOLDPERSIAN 443 -#define PROP_INDEX_INDESERET 444 -#define PROP_INDEX_INSHAVIAN 445 -#define PROP_INDEX_INOSMANYA 446 -#define PROP_INDEX_INOSAGE 447 -#define PROP_INDEX_INELBASAN 448 -#define PROP_INDEX_INCAUCASIANALBANIAN 449 -#define PROP_INDEX_INLINEARA 450 -#define PROP_INDEX_INCYPRIOTSYLLABARY 451 -#define PROP_INDEX_INIMPERIALARAMAIC 452 -#define PROP_INDEX_INPALMYRENE 453 -#define PROP_INDEX_INNABATAEAN 454 -#define PROP_INDEX_INHATRAN 455 -#define PROP_INDEX_INPHOENICIAN 456 -#define PROP_INDEX_INLYDIAN 457 -#define PROP_INDEX_INMEROITICHIEROGLYPHS 458 -#define PROP_INDEX_INMEROITICCURSIVE 459 -#define PROP_INDEX_INKHAROSHTHI 460 -#define PROP_INDEX_INOLDSOUTHARABIAN 461 -#define PROP_INDEX_INOLDNORTHARABIAN 462 -#define PROP_INDEX_INMANICHAEAN 463 -#define PROP_INDEX_INAVESTAN 464 -#define PROP_INDEX_ININSCRIPTIONALPARTHIAN 465 -#define PROP_INDEX_ININSCRIPTIONALPAHLAVI 466 -#define PROP_INDEX_INPSALTERPAHLAVI 467 -#define PROP_INDEX_INOLDTURKIC 468 -#define PROP_INDEX_INOLDHUNGARIAN 469 -#define PROP_INDEX_INHANIFIROHINGYA 470 -#define PROP_INDEX_INRUMINUMERALSYMBOLS 471 -#define PROP_INDEX_INOLDSOGDIAN 472 -#define PROP_INDEX_INSOGDIAN 473 -#define PROP_INDEX_INELYMAIC 474 -#define PROP_INDEX_INBRAHMI 475 -#define PROP_INDEX_INKAITHI 476 -#define PROP_INDEX_INSORASOMPENG 477 -#define PROP_INDEX_INCHAKMA 478 -#define PROP_INDEX_INMAHAJANI 479 -#define PROP_INDEX_INSHARADA 480 -#define PROP_INDEX_INSINHALAARCHAICNUMBERS 481 -#define PROP_INDEX_INKHOJKI 482 -#define PROP_INDEX_INMULTANI 483 -#define PROP_INDEX_INKHUDAWADI 484 -#define PROP_INDEX_INGRANTHA 485 -#define PROP_INDEX_INNEWA 486 -#define PROP_INDEX_INTIRHUTA 487 -#define PROP_INDEX_INSIDDHAM 488 -#define PROP_INDEX_INMODI 489 -#define PROP_INDEX_INMONGOLIANSUPPLEMENT 490 -#define PROP_INDEX_INTAKRI 491 -#define PROP_INDEX_INAHOM 492 -#define PROP_INDEX_INDOGRA 493 -#define PROP_INDEX_INWARANGCITI 494 -#define PROP_INDEX_INNANDINAGARI 495 -#define PROP_INDEX_INZANABAZARSQUARE 496 -#define PROP_INDEX_INSOYOMBO 497 -#define PROP_INDEX_INPAUCINHAU 498 -#define PROP_INDEX_INBHAIKSUKI 499 -#define PROP_INDEX_INMARCHEN 500 -#define PROP_INDEX_INMASARAMGONDI 501 -#define PROP_INDEX_INGUNJALAGONDI 502 -#define PROP_INDEX_INMAKASAR 503 -#define PROP_INDEX_INTAMILSUPPLEMENT 504 -#define PROP_INDEX_INCUNEIFORM 505 -#define PROP_INDEX_INCUNEIFORMNUMBERSANDPUNCTUATION 506 -#define PROP_INDEX_INEARLYDYNASTICCUNEIFORM 507 -#define PROP_INDEX_INEGYPTIANHIEROGLYPHS 508 -#define PROP_INDEX_INEGYPTIANHIEROGLYPHFORMATCONTROLS 509 -#define PROP_INDEX_INANATOLIANHIEROGLYPHS 510 -#define PROP_INDEX_INBAMUMSUPPLEMENT 511 -#define PROP_INDEX_INMRO 512 -#define PROP_INDEX_INBASSAVAH 513 -#define PROP_INDEX_INPAHAWHHMONG 514 -#define PROP_INDEX_INMEDEFAIDRIN 515 -#define PROP_INDEX_INMIAO 516 -#define PROP_INDEX_INIDEOGRAPHICSYMBOLSANDPUNCTUATION 517 -#define PROP_INDEX_INTANGUT 518 -#define PROP_INDEX_INTANGUTCOMPONENTS 519 -#define PROP_INDEX_INKANASUPPLEMENT 520 -#define PROP_INDEX_INKANAEXTENDEDA 521 -#define PROP_INDEX_INSMALLKANAEXTENSION 522 -#define PROP_INDEX_INNUSHU 523 -#define PROP_INDEX_INDUPLOYAN 524 -#define PROP_INDEX_INSHORTHANDFORMATCONTROLS 525 -#define PROP_INDEX_INBYZANTINEMUSICALSYMBOLS 526 -#define PROP_INDEX_INMUSICALSYMBOLS 527 -#define PROP_INDEX_INANCIENTGREEKMUSICALNOTATION 528 -#define PROP_INDEX_INMAYANNUMERALS 529 -#define PROP_INDEX_INTAIXUANJINGSYMBOLS 530 -#define PROP_INDEX_INCOUNTINGRODNUMERALS 531 -#define PROP_INDEX_INMATHEMATICALALPHANUMERICSYMBOLS 532 -#define PROP_INDEX_INSUTTONSIGNWRITING 533 -#define PROP_INDEX_INGLAGOLITICSUPPLEMENT 534 -#define PROP_INDEX_INNYIAKENGPUACHUEHMONG 535 -#define PROP_INDEX_INWANCHO 536 -#define PROP_INDEX_INMENDEKIKAKUI 537 -#define PROP_INDEX_INADLAM 538 -#define PROP_INDEX_ININDICSIYAQNUMBERS 539 -#define PROP_INDEX_INOTTOMANSIYAQNUMBERS 540 -#define PROP_INDEX_INARABICMATHEMATICALALPHABETICSYMBOLS 541 -#define PROP_INDEX_INMAHJONGTILES 542 -#define PROP_INDEX_INDOMINOTILES 543 -#define PROP_INDEX_INPLAYINGCARDS 544 -#define PROP_INDEX_INENCLOSEDALPHANUMERICSUPPLEMENT 545 -#define PROP_INDEX_INENCLOSEDIDEOGRAPHICSUPPLEMENT 546 -#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS 547 -#define PROP_INDEX_INEMOTICONS 548 -#define PROP_INDEX_INORNAMENTALDINGBATS 549 -#define PROP_INDEX_INTRANSPORTANDMAPSYMBOLS 550 -#define PROP_INDEX_INALCHEMICALSYMBOLS 551 -#define PROP_INDEX_INGEOMETRICSHAPESEXTENDED 552 -#define PROP_INDEX_INSUPPLEMENTALARROWSC 553 -#define PROP_INDEX_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS 554 -#define PROP_INDEX_INCHESSSYMBOLS 555 -#define PROP_INDEX_INSYMBOLSANDPICTOGRAPHSEXTENDEDA 556 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB 557 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC 558 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND 559 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE 560 -#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF 561 -#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT 562 -#define PROP_INDEX_INTAGS 563 -#define PROP_INDEX_INVARIATIONSELECTORSSUPPLEMENT 564 -#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAA 565 -#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAB 566 -#define PROP_INDEX_INNOBLOCK 567 diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data_posix.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data_posix.c deleted file mode 100644 index 205b9c0159e8..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_property_data_posix.c +++ /dev/null @@ -1,5347 +0,0 @@ -/* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: /usr/local/bin/gperf -T -C -c -t -j1 -L ANSI-C --ignore-case --pic -Q unicode_prop_name_pool -N unicode_lookup_property_name --output-file gperf2.tmp unicode_property_data_posix.gperf */ -/* Computed positions: -k'1,3' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - - - -/* Generated by make_unicode_property_data.py. */ - - -/* PROPERTY: 'NEWLINE': POSIX [[:NEWLINE:]] */ -static const OnigCodePoint -CR_NEWLINE[] = { 1, -0x000a, 0x000a, -}; /* END of CR_NEWLINE */ - -/* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */ -static const OnigCodePoint -CR_Alpha[] = { 679, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0345, 0x0345, -0x0370, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x05b0, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0657, -0x0659, 0x065f, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06e1, 0x06e8, -0x06ed, 0x06ef, -0x06fa, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x073f, -0x074d, 0x07b1, -0x07ca, 0x07ea, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x0800, 0x0817, -0x081a, 0x082c, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d4, 0x08df, -0x08e3, 0x08e9, -0x08f0, 0x093b, -0x093d, 0x094c, -0x094e, 0x0950, -0x0955, 0x0963, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09cc, -0x09ce, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09f0, 0x09f1, -0x09fc, 0x09fc, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4c, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a70, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acc, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0af9, 0x0afc, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4c, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcc, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4c, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccc, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4c, -0x0d4e, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e46, -0x0e4d, 0x0e4d, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb9, -0x0ebb, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ecd, 0x0ecd, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f81, -0x0f88, 0x0f97, -0x0f99, 0x0fbc, -0x1000, 0x1036, -0x1038, 0x1038, -0x103b, 0x103f, -0x1050, 0x108f, -0x109a, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1713, -0x1720, 0x1733, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17b3, -0x17b6, 0x17c8, -0x17d7, 0x17d7, -0x17dc, 0x17dc, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x1938, -0x1950, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a61, 0x1a74, -0x1aa7, 0x1aa7, -0x1b00, 0x1b33, -0x1b35, 0x1b43, -0x1b45, 0x1b4b, -0x1b80, 0x1ba9, -0x1bac, 0x1baf, -0x1bba, 0x1be5, -0x1be7, 0x1bf1, -0x1c00, 0x1c36, -0x1c4d, 0x1c4f, -0x1c5a, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1de7, 0x1df4, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x2e2f, 0x2e2f, -0x3005, 0x3007, -0x3021, 0x3029, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa61f, -0xa62a, 0xa62b, -0xa640, 0xa66e, -0xa674, 0xa67b, -0xa67f, 0xa6ef, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa805, -0xa807, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c3, -0xa8c5, 0xa8c5, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa8ff, -0xa90a, 0xa92a, -0xa930, 0xa952, -0xa960, 0xa97c, -0xa980, 0xa9b2, -0xa9b4, 0xa9bf, -0xa9cf, 0xa9cf, -0xa9e0, 0xa9ef, -0xa9fa, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa60, 0xaa76, -0xaa7a, 0xaabe, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf5, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff21, 0xff3a, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11000, 0x11045, -0x11082, 0x110b8, -0x110d0, 0x110e8, -0x11100, 0x11132, -0x11144, 0x11146, -0x11150, 0x11172, -0x11176, 0x11176, -0x11180, 0x111bf, -0x111c1, 0x111c4, -0x111da, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11234, -0x11237, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112e8, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134c, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11400, 0x11441, -0x11443, 0x11445, -0x11447, 0x1144a, -0x1145f, 0x1145f, -0x11480, 0x114c1, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x11580, 0x115b5, -0x115b8, 0x115be, -0x115d8, 0x115dd, -0x11600, 0x1163e, -0x11640, 0x11640, -0x11644, 0x11644, -0x11680, 0x116b5, -0x116b8, 0x116b8, -0x11700, 0x1171a, -0x1171d, 0x1172a, -0x11800, 0x11838, -0x118a0, 0x118df, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119df, -0x119e1, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a32, -0x11a35, 0x11a3e, -0x11a50, 0x11a97, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c3e, -0x11c40, 0x11c40, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d41, -0x11d43, 0x11d43, -0x11d46, 0x11d47, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d96, -0x11d98, 0x11d98, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b40, 0x16b43, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9e, 0x1bc9e, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e800, 0x1e8c4, -0x1e900, 0x1e943, -0x1e947, 0x1e947, -0x1e94b, 0x1e94b, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Alpha */ - -/* PROPERTY: 'Blank': POSIX [[:Blank:]] */ -static const OnigCodePoint -CR_Blank[] = { 8, -0x0009, 0x0009, -0x0020, 0x0020, -0x00a0, 0x00a0, -0x1680, 0x1680, -0x2000, 0x200a, -0x202f, 0x202f, -0x205f, 0x205f, -0x3000, 0x3000, -}; /* END of CR_Blank */ - -/* PROPERTY: 'Cntrl': POSIX [[:Cntrl:]] */ -static const OnigCodePoint -CR_Cntrl[] = { 2, -0x0000, 0x001f, -0x007f, 0x009f, -}; /* END of CR_Cntrl */ - -/* PROPERTY: 'Digit': POSIX [[:Digit:]] */ -static const OnigCodePoint -CR_Digit[] = { 59, -0x0030, 0x0039, -0x0660, 0x0669, -0x06f0, 0x06f9, -0x07c0, 0x07c9, -0x0966, 0x096f, -0x09e6, 0x09ef, -0x0a66, 0x0a6f, -0x0ae6, 0x0aef, -0x0b66, 0x0b6f, -0x0be6, 0x0bef, -0x0c66, 0x0c6f, -0x0ce6, 0x0cef, -0x0d66, 0x0d6f, -0x0de6, 0x0def, -0x0e50, 0x0e59, -0x0ed0, 0x0ed9, -0x0f20, 0x0f29, -0x1040, 0x1049, -0x1090, 0x1099, -0x17e0, 0x17e9, -0x1810, 0x1819, -0x1946, 0x194f, -0x19d0, 0x19d9, -0x1a80, 0x1a89, -0x1a90, 0x1a99, -0x1b50, 0x1b59, -0x1bb0, 0x1bb9, -0x1c40, 0x1c49, -0x1c50, 0x1c59, -0xa620, 0xa629, -0xa8d0, 0xa8d9, -0xa900, 0xa909, -0xa9d0, 0xa9d9, -0xa9f0, 0xa9f9, -0xaa50, 0xaa59, -0xabf0, 0xabf9, -0xff10, 0xff19, -0x104a0, 0x104a9, -0x10d30, 0x10d39, -0x11066, 0x1106f, -0x110f0, 0x110f9, -0x11136, 0x1113f, -0x111d0, 0x111d9, -0x112f0, 0x112f9, -0x11450, 0x11459, -0x114d0, 0x114d9, -0x11650, 0x11659, -0x116c0, 0x116c9, -0x11730, 0x11739, -0x118e0, 0x118e9, -0x11c50, 0x11c59, -0x11d50, 0x11d59, -0x11da0, 0x11da9, -0x16a60, 0x16a69, -0x16b50, 0x16b59, -0x1d7ce, 0x1d7ff, -0x1e140, 0x1e149, -0x1e2f0, 0x1e2f9, -0x1e950, 0x1e959, -}; /* END of CR_Digit */ - -/* PROPERTY: 'Graph': POSIX [[:Graph:]] */ -static const OnigCodePoint -CR_Graph[] = { 671, -0x0021, 0x007e, -0x00a1, 0x0377, -0x037a, 0x037f, -0x0384, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x052f, -0x0531, 0x0556, -0x0559, 0x058a, -0x058d, 0x058f, -0x0591, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f4, -0x0600, 0x061c, -0x061e, 0x070d, -0x070f, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07fa, -0x07fd, 0x082d, -0x0830, 0x083e, -0x0840, 0x085b, -0x085e, 0x085e, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a76, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0af1, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b77, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bfa, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c77, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4f, -0x0d54, 0x0d63, -0x0d66, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df4, -0x0e01, 0x0e3a, -0x0e3f, 0x0e5b, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f97, -0x0f99, 0x0fbc, -0x0fbe, 0x0fcc, -0x0fce, 0x0fda, -0x1000, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x137c, -0x1380, 0x1399, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1400, 0x167f, -0x1681, 0x169c, -0x16a0, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1736, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17dd, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x1800, 0x180e, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1940, 0x1940, -0x1944, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x19de, 0x1a1b, -0x1a1e, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa0, 0x1aad, -0x1ab0, 0x1abe, -0x1b00, 0x1b4b, -0x1b50, 0x1b7c, -0x1b80, 0x1bf3, -0x1bfc, 0x1c37, -0x1c3b, 0x1c49, -0x1c4d, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cc7, -0x1cd0, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fc4, -0x1fc6, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fdd, 0x1fef, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffe, -0x200b, 0x2027, -0x202a, 0x202e, -0x2030, 0x205e, -0x2060, 0x2064, -0x2066, 0x2071, -0x2074, 0x208e, -0x2090, 0x209c, -0x20a0, 0x20bf, -0x20d0, 0x20f0, -0x2100, 0x218b, -0x2190, 0x2426, -0x2440, 0x244a, -0x2460, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2cf3, -0x2cf9, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d70, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2e4f, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3001, 0x303f, -0x3041, 0x3096, -0x3099, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x3190, 0x31ba, -0x31c0, 0x31e3, -0x31f0, 0x321e, -0x3220, 0x4db5, -0x4dc0, 0x9fef, -0xa000, 0xa48c, -0xa490, 0xa4c6, -0xa4d0, 0xa62b, -0xa640, 0xa6f7, -0xa700, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa82b, -0xa830, 0xa839, -0xa840, 0xa877, -0xa880, 0xa8c5, -0xa8ce, 0xa8d9, -0xa8e0, 0xa953, -0xa95f, 0xa97c, -0xa980, 0xa9cd, -0xa9cf, 0xa9d9, -0xa9de, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa5c, 0xaac2, -0xaadb, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab67, -0xab70, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xe000, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbc1, -0xfbd3, 0xfd3f, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfd, -0xfe00, 0xfe19, -0xfe20, 0xfe52, -0xfe54, 0xfe66, -0xfe68, 0xfe6b, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xfeff, 0xfeff, -0xff01, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfff9, 0xfffd, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10100, 0x10102, -0x10107, 0x10133, -0x10137, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102fb, -0x10300, 0x10323, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x1039f, 0x103c3, -0x103c8, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x1056f, 0x1056f, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10857, 0x1089e, -0x108a7, 0x108af, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x108fb, 0x1091b, -0x1091f, 0x10939, -0x1093f, 0x1093f, -0x10980, 0x109b7, -0x109bc, 0x109cf, -0x109d2, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a48, -0x10a50, 0x10a58, -0x10a60, 0x10a9f, -0x10ac0, 0x10ae6, -0x10aeb, 0x10af6, -0x10b00, 0x10b35, -0x10b39, 0x10b55, -0x10b58, 0x10b72, -0x10b78, 0x10b91, -0x10b99, 0x10b9c, -0x10ba9, 0x10baf, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10cfa, 0x10d27, -0x10d30, 0x10d39, -0x10e60, 0x10e7e, -0x10f00, 0x10f27, -0x10f30, 0x10f59, -0x10fe0, 0x10ff6, -0x11000, 0x1104d, -0x11052, 0x1106f, -0x1107f, 0x110c1, -0x110cd, 0x110cd, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x11146, -0x11150, 0x11176, -0x11180, 0x111cd, -0x111d0, 0x111df, -0x111e1, 0x111f4, -0x11200, 0x11211, -0x11213, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a9, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x11459, -0x1145b, 0x1145b, -0x1145d, 0x1145f, -0x11480, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115dd, -0x11600, 0x11644, -0x11650, 0x11659, -0x11660, 0x1166c, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x1173f, -0x11800, 0x1183b, -0x118a0, 0x118f2, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e4, -0x11a00, 0x11a47, -0x11a50, 0x11aa2, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c45, -0x11c50, 0x11c6c, -0x11c70, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef8, -0x11fc0, 0x11ff1, -0x11fff, 0x12399, -0x12400, 0x1246e, -0x12470, 0x12474, -0x12480, 0x12543, -0x13000, 0x1342e, -0x13430, 0x13438, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16a6e, 0x16a6f, -0x16ad0, 0x16aed, -0x16af0, 0x16af5, -0x16b00, 0x16b45, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e9a, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9c, 0x1bca3, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d1e8, -0x1d200, 0x1d245, -0x1d2e0, 0x1d2f3, -0x1d300, 0x1d356, -0x1d360, 0x1d378, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1da8b, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14f, -0x1e2c0, 0x1e2f9, -0x1e2ff, 0x1e2ff, -0x1e800, 0x1e8c4, -0x1e8c7, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1e95e, 0x1e95f, -0x1ec71, 0x1ecb4, -0x1ed01, 0x1ed3d, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f100, 0x1f10c, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -0xe0100, 0xe01ef, -0xf0000, 0xffffd, -0x100000, 0x10fffd, -}; /* END of CR_Graph */ - -/* PROPERTY: 'Lower': POSIX [[:Lower:]] */ -static const OnigCodePoint -CR_Lower[] = { 649, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00df, 0x00f6, -0x00f8, 0x00ff, -0x0101, 0x0101, -0x0103, 0x0103, -0x0105, 0x0105, -0x0107, 0x0107, -0x0109, 0x0109, -0x010b, 0x010b, -0x010d, 0x010d, -0x010f, 0x010f, -0x0111, 0x0111, -0x0113, 0x0113, -0x0115, 0x0115, -0x0117, 0x0117, -0x0119, 0x0119, -0x011b, 0x011b, -0x011d, 0x011d, -0x011f, 0x011f, -0x0121, 0x0121, -0x0123, 0x0123, -0x0125, 0x0125, -0x0127, 0x0127, -0x0129, 0x0129, -0x012b, 0x012b, -0x012d, 0x012d, -0x012f, 0x012f, -0x0131, 0x0131, -0x0133, 0x0133, -0x0135, 0x0135, -0x0137, 0x0138, -0x013a, 0x013a, -0x013c, 0x013c, -0x013e, 0x013e, -0x0140, 0x0140, -0x0142, 0x0142, -0x0144, 0x0144, -0x0146, 0x0146, -0x0148, 0x0149, -0x014b, 0x014b, -0x014d, 0x014d, -0x014f, 0x014f, -0x0151, 0x0151, -0x0153, 0x0153, -0x0155, 0x0155, -0x0157, 0x0157, -0x0159, 0x0159, -0x015b, 0x015b, -0x015d, 0x015d, -0x015f, 0x015f, -0x0161, 0x0161, -0x0163, 0x0163, -0x0165, 0x0165, -0x0167, 0x0167, -0x0169, 0x0169, -0x016b, 0x016b, -0x016d, 0x016d, -0x016f, 0x016f, -0x0171, 0x0171, -0x0173, 0x0173, -0x0175, 0x0175, -0x0177, 0x0177, -0x017a, 0x017a, -0x017c, 0x017c, -0x017e, 0x0180, -0x0183, 0x0183, -0x0185, 0x0185, -0x0188, 0x0188, -0x018c, 0x018d, -0x0192, 0x0192, -0x0195, 0x0195, -0x0199, 0x019b, -0x019e, 0x019e, -0x01a1, 0x01a1, -0x01a3, 0x01a3, -0x01a5, 0x01a5, -0x01a8, 0x01a8, -0x01aa, 0x01ab, -0x01ad, 0x01ad, -0x01b0, 0x01b0, -0x01b4, 0x01b4, -0x01b6, 0x01b6, -0x01b9, 0x01ba, -0x01bd, 0x01bf, -0x01c6, 0x01c6, -0x01c9, 0x01c9, -0x01cc, 0x01cc, -0x01ce, 0x01ce, -0x01d0, 0x01d0, -0x01d2, 0x01d2, -0x01d4, 0x01d4, -0x01d6, 0x01d6, -0x01d8, 0x01d8, -0x01da, 0x01da, -0x01dc, 0x01dd, -0x01df, 0x01df, -0x01e1, 0x01e1, -0x01e3, 0x01e3, -0x01e5, 0x01e5, -0x01e7, 0x01e7, -0x01e9, 0x01e9, -0x01eb, 0x01eb, -0x01ed, 0x01ed, -0x01ef, 0x01f0, -0x01f3, 0x01f3, -0x01f5, 0x01f5, -0x01f9, 0x01f9, -0x01fb, 0x01fb, -0x01fd, 0x01fd, -0x01ff, 0x01ff, -0x0201, 0x0201, -0x0203, 0x0203, -0x0205, 0x0205, -0x0207, 0x0207, -0x0209, 0x0209, -0x020b, 0x020b, -0x020d, 0x020d, -0x020f, 0x020f, -0x0211, 0x0211, -0x0213, 0x0213, -0x0215, 0x0215, -0x0217, 0x0217, -0x0219, 0x0219, -0x021b, 0x021b, -0x021d, 0x021d, -0x021f, 0x021f, -0x0221, 0x0221, -0x0223, 0x0223, -0x0225, 0x0225, -0x0227, 0x0227, -0x0229, 0x0229, -0x022b, 0x022b, -0x022d, 0x022d, -0x022f, 0x022f, -0x0231, 0x0231, -0x0233, 0x0239, -0x023c, 0x023c, -0x023f, 0x0240, -0x0242, 0x0242, -0x0247, 0x0247, -0x0249, 0x0249, -0x024b, 0x024b, -0x024d, 0x024d, -0x024f, 0x0293, -0x0295, 0x02b8, -0x02c0, 0x02c1, -0x02e0, 0x02e4, -0x0345, 0x0345, -0x0371, 0x0371, -0x0373, 0x0373, -0x0377, 0x0377, -0x037a, 0x037d, -0x0390, 0x0390, -0x03ac, 0x03ce, -0x03d0, 0x03d1, -0x03d5, 0x03d7, -0x03d9, 0x03d9, -0x03db, 0x03db, -0x03dd, 0x03dd, -0x03df, 0x03df, -0x03e1, 0x03e1, -0x03e3, 0x03e3, -0x03e5, 0x03e5, -0x03e7, 0x03e7, -0x03e9, 0x03e9, -0x03eb, 0x03eb, -0x03ed, 0x03ed, -0x03ef, 0x03f3, -0x03f5, 0x03f5, -0x03f8, 0x03f8, -0x03fb, 0x03fc, -0x0430, 0x045f, -0x0461, 0x0461, -0x0463, 0x0463, -0x0465, 0x0465, -0x0467, 0x0467, -0x0469, 0x0469, -0x046b, 0x046b, -0x046d, 0x046d, -0x046f, 0x046f, -0x0471, 0x0471, -0x0473, 0x0473, -0x0475, 0x0475, -0x0477, 0x0477, -0x0479, 0x0479, -0x047b, 0x047b, -0x047d, 0x047d, -0x047f, 0x047f, -0x0481, 0x0481, -0x048b, 0x048b, -0x048d, 0x048d, -0x048f, 0x048f, -0x0491, 0x0491, -0x0493, 0x0493, -0x0495, 0x0495, -0x0497, 0x0497, -0x0499, 0x0499, -0x049b, 0x049b, -0x049d, 0x049d, -0x049f, 0x049f, -0x04a1, 0x04a1, -0x04a3, 0x04a3, -0x04a5, 0x04a5, -0x04a7, 0x04a7, -0x04a9, 0x04a9, -0x04ab, 0x04ab, -0x04ad, 0x04ad, -0x04af, 0x04af, -0x04b1, 0x04b1, -0x04b3, 0x04b3, -0x04b5, 0x04b5, -0x04b7, 0x04b7, -0x04b9, 0x04b9, -0x04bb, 0x04bb, -0x04bd, 0x04bd, -0x04bf, 0x04bf, -0x04c2, 0x04c2, -0x04c4, 0x04c4, -0x04c6, 0x04c6, -0x04c8, 0x04c8, -0x04ca, 0x04ca, -0x04cc, 0x04cc, -0x04ce, 0x04cf, -0x04d1, 0x04d1, -0x04d3, 0x04d3, -0x04d5, 0x04d5, -0x04d7, 0x04d7, -0x04d9, 0x04d9, -0x04db, 0x04db, -0x04dd, 0x04dd, -0x04df, 0x04df, -0x04e1, 0x04e1, -0x04e3, 0x04e3, -0x04e5, 0x04e5, -0x04e7, 0x04e7, -0x04e9, 0x04e9, -0x04eb, 0x04eb, -0x04ed, 0x04ed, -0x04ef, 0x04ef, -0x04f1, 0x04f1, -0x04f3, 0x04f3, -0x04f5, 0x04f5, -0x04f7, 0x04f7, -0x04f9, 0x04f9, -0x04fb, 0x04fb, -0x04fd, 0x04fd, -0x04ff, 0x04ff, -0x0501, 0x0501, -0x0503, 0x0503, -0x0505, 0x0505, -0x0507, 0x0507, -0x0509, 0x0509, -0x050b, 0x050b, -0x050d, 0x050d, -0x050f, 0x050f, -0x0511, 0x0511, -0x0513, 0x0513, -0x0515, 0x0515, -0x0517, 0x0517, -0x0519, 0x0519, -0x051b, 0x051b, -0x051d, 0x051d, -0x051f, 0x051f, -0x0521, 0x0521, -0x0523, 0x0523, -0x0525, 0x0525, -0x0527, 0x0527, -0x0529, 0x0529, -0x052b, 0x052b, -0x052d, 0x052d, -0x052f, 0x052f, -0x0560, 0x0588, -0x10d0, 0x10fa, -0x10fd, 0x10ff, -0x13f8, 0x13fd, -0x1c80, 0x1c88, -0x1d00, 0x1dbf, -0x1e01, 0x1e01, -0x1e03, 0x1e03, -0x1e05, 0x1e05, -0x1e07, 0x1e07, -0x1e09, 0x1e09, -0x1e0b, 0x1e0b, -0x1e0d, 0x1e0d, -0x1e0f, 0x1e0f, -0x1e11, 0x1e11, -0x1e13, 0x1e13, -0x1e15, 0x1e15, -0x1e17, 0x1e17, -0x1e19, 0x1e19, -0x1e1b, 0x1e1b, -0x1e1d, 0x1e1d, -0x1e1f, 0x1e1f, -0x1e21, 0x1e21, -0x1e23, 0x1e23, -0x1e25, 0x1e25, -0x1e27, 0x1e27, -0x1e29, 0x1e29, -0x1e2b, 0x1e2b, -0x1e2d, 0x1e2d, -0x1e2f, 0x1e2f, -0x1e31, 0x1e31, -0x1e33, 0x1e33, -0x1e35, 0x1e35, -0x1e37, 0x1e37, -0x1e39, 0x1e39, -0x1e3b, 0x1e3b, -0x1e3d, 0x1e3d, -0x1e3f, 0x1e3f, -0x1e41, 0x1e41, -0x1e43, 0x1e43, -0x1e45, 0x1e45, -0x1e47, 0x1e47, -0x1e49, 0x1e49, -0x1e4b, 0x1e4b, -0x1e4d, 0x1e4d, -0x1e4f, 0x1e4f, -0x1e51, 0x1e51, -0x1e53, 0x1e53, -0x1e55, 0x1e55, -0x1e57, 0x1e57, -0x1e59, 0x1e59, -0x1e5b, 0x1e5b, -0x1e5d, 0x1e5d, -0x1e5f, 0x1e5f, -0x1e61, 0x1e61, -0x1e63, 0x1e63, -0x1e65, 0x1e65, -0x1e67, 0x1e67, -0x1e69, 0x1e69, -0x1e6b, 0x1e6b, -0x1e6d, 0x1e6d, -0x1e6f, 0x1e6f, -0x1e71, 0x1e71, -0x1e73, 0x1e73, -0x1e75, 0x1e75, -0x1e77, 0x1e77, -0x1e79, 0x1e79, -0x1e7b, 0x1e7b, -0x1e7d, 0x1e7d, -0x1e7f, 0x1e7f, -0x1e81, 0x1e81, -0x1e83, 0x1e83, -0x1e85, 0x1e85, -0x1e87, 0x1e87, -0x1e89, 0x1e89, -0x1e8b, 0x1e8b, -0x1e8d, 0x1e8d, -0x1e8f, 0x1e8f, -0x1e91, 0x1e91, -0x1e93, 0x1e93, -0x1e95, 0x1e9d, -0x1e9f, 0x1e9f, -0x1ea1, 0x1ea1, -0x1ea3, 0x1ea3, -0x1ea5, 0x1ea5, -0x1ea7, 0x1ea7, -0x1ea9, 0x1ea9, -0x1eab, 0x1eab, -0x1ead, 0x1ead, -0x1eaf, 0x1eaf, -0x1eb1, 0x1eb1, -0x1eb3, 0x1eb3, -0x1eb5, 0x1eb5, -0x1eb7, 0x1eb7, -0x1eb9, 0x1eb9, -0x1ebb, 0x1ebb, -0x1ebd, 0x1ebd, -0x1ebf, 0x1ebf, -0x1ec1, 0x1ec1, -0x1ec3, 0x1ec3, -0x1ec5, 0x1ec5, -0x1ec7, 0x1ec7, -0x1ec9, 0x1ec9, -0x1ecb, 0x1ecb, -0x1ecd, 0x1ecd, -0x1ecf, 0x1ecf, -0x1ed1, 0x1ed1, -0x1ed3, 0x1ed3, -0x1ed5, 0x1ed5, -0x1ed7, 0x1ed7, -0x1ed9, 0x1ed9, -0x1edb, 0x1edb, -0x1edd, 0x1edd, -0x1edf, 0x1edf, -0x1ee1, 0x1ee1, -0x1ee3, 0x1ee3, -0x1ee5, 0x1ee5, -0x1ee7, 0x1ee7, -0x1ee9, 0x1ee9, -0x1eeb, 0x1eeb, -0x1eed, 0x1eed, -0x1eef, 0x1eef, -0x1ef1, 0x1ef1, -0x1ef3, 0x1ef3, -0x1ef5, 0x1ef5, -0x1ef7, 0x1ef7, -0x1ef9, 0x1ef9, -0x1efb, 0x1efb, -0x1efd, 0x1efd, -0x1eff, 0x1f07, -0x1f10, 0x1f15, -0x1f20, 0x1f27, -0x1f30, 0x1f37, -0x1f40, 0x1f45, -0x1f50, 0x1f57, -0x1f60, 0x1f67, -0x1f70, 0x1f7d, -0x1f80, 0x1f87, -0x1f90, 0x1f97, -0x1fa0, 0x1fa7, -0x1fb0, 0x1fb4, -0x1fb6, 0x1fb7, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fc7, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fd7, -0x1fe0, 0x1fe7, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ff7, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x210a, 0x210a, -0x210e, 0x210f, -0x2113, 0x2113, -0x212f, 0x212f, -0x2134, 0x2134, -0x2139, 0x2139, -0x213c, 0x213d, -0x2146, 0x2149, -0x214e, 0x214e, -0x2170, 0x217f, -0x2184, 0x2184, -0x24d0, 0x24e9, -0x2c30, 0x2c5e, -0x2c61, 0x2c61, -0x2c65, 0x2c66, -0x2c68, 0x2c68, -0x2c6a, 0x2c6a, -0x2c6c, 0x2c6c, -0x2c71, 0x2c71, -0x2c73, 0x2c74, -0x2c76, 0x2c7d, -0x2c81, 0x2c81, -0x2c83, 0x2c83, -0x2c85, 0x2c85, -0x2c87, 0x2c87, -0x2c89, 0x2c89, -0x2c8b, 0x2c8b, -0x2c8d, 0x2c8d, -0x2c8f, 0x2c8f, -0x2c91, 0x2c91, -0x2c93, 0x2c93, -0x2c95, 0x2c95, -0x2c97, 0x2c97, -0x2c99, 0x2c99, -0x2c9b, 0x2c9b, -0x2c9d, 0x2c9d, -0x2c9f, 0x2c9f, -0x2ca1, 0x2ca1, -0x2ca3, 0x2ca3, -0x2ca5, 0x2ca5, -0x2ca7, 0x2ca7, -0x2ca9, 0x2ca9, -0x2cab, 0x2cab, -0x2cad, 0x2cad, -0x2caf, 0x2caf, -0x2cb1, 0x2cb1, -0x2cb3, 0x2cb3, -0x2cb5, 0x2cb5, -0x2cb7, 0x2cb7, -0x2cb9, 0x2cb9, -0x2cbb, 0x2cbb, -0x2cbd, 0x2cbd, -0x2cbf, 0x2cbf, -0x2cc1, 0x2cc1, -0x2cc3, 0x2cc3, -0x2cc5, 0x2cc5, -0x2cc7, 0x2cc7, -0x2cc9, 0x2cc9, -0x2ccb, 0x2ccb, -0x2ccd, 0x2ccd, -0x2ccf, 0x2ccf, -0x2cd1, 0x2cd1, -0x2cd3, 0x2cd3, -0x2cd5, 0x2cd5, -0x2cd7, 0x2cd7, -0x2cd9, 0x2cd9, -0x2cdb, 0x2cdb, -0x2cdd, 0x2cdd, -0x2cdf, 0x2cdf, -0x2ce1, 0x2ce1, -0x2ce3, 0x2ce4, -0x2cec, 0x2cec, -0x2cee, 0x2cee, -0x2cf3, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0xa641, 0xa641, -0xa643, 0xa643, -0xa645, 0xa645, -0xa647, 0xa647, -0xa649, 0xa649, -0xa64b, 0xa64b, -0xa64d, 0xa64d, -0xa64f, 0xa64f, -0xa651, 0xa651, -0xa653, 0xa653, -0xa655, 0xa655, -0xa657, 0xa657, -0xa659, 0xa659, -0xa65b, 0xa65b, -0xa65d, 0xa65d, -0xa65f, 0xa65f, -0xa661, 0xa661, -0xa663, 0xa663, -0xa665, 0xa665, -0xa667, 0xa667, -0xa669, 0xa669, -0xa66b, 0xa66b, -0xa66d, 0xa66d, -0xa681, 0xa681, -0xa683, 0xa683, -0xa685, 0xa685, -0xa687, 0xa687, -0xa689, 0xa689, -0xa68b, 0xa68b, -0xa68d, 0xa68d, -0xa68f, 0xa68f, -0xa691, 0xa691, -0xa693, 0xa693, -0xa695, 0xa695, -0xa697, 0xa697, -0xa699, 0xa699, -0xa69b, 0xa69d, -0xa723, 0xa723, -0xa725, 0xa725, -0xa727, 0xa727, -0xa729, 0xa729, -0xa72b, 0xa72b, -0xa72d, 0xa72d, -0xa72f, 0xa731, -0xa733, 0xa733, -0xa735, 0xa735, -0xa737, 0xa737, -0xa739, 0xa739, -0xa73b, 0xa73b, -0xa73d, 0xa73d, -0xa73f, 0xa73f, -0xa741, 0xa741, -0xa743, 0xa743, -0xa745, 0xa745, -0xa747, 0xa747, -0xa749, 0xa749, -0xa74b, 0xa74b, -0xa74d, 0xa74d, -0xa74f, 0xa74f, -0xa751, 0xa751, -0xa753, 0xa753, -0xa755, 0xa755, -0xa757, 0xa757, -0xa759, 0xa759, -0xa75b, 0xa75b, -0xa75d, 0xa75d, -0xa75f, 0xa75f, -0xa761, 0xa761, -0xa763, 0xa763, -0xa765, 0xa765, -0xa767, 0xa767, -0xa769, 0xa769, -0xa76b, 0xa76b, -0xa76d, 0xa76d, -0xa76f, 0xa778, -0xa77a, 0xa77a, -0xa77c, 0xa77c, -0xa77f, 0xa77f, -0xa781, 0xa781, -0xa783, 0xa783, -0xa785, 0xa785, -0xa787, 0xa787, -0xa78c, 0xa78c, -0xa78e, 0xa78e, -0xa791, 0xa791, -0xa793, 0xa795, -0xa797, 0xa797, -0xa799, 0xa799, -0xa79b, 0xa79b, -0xa79d, 0xa79d, -0xa79f, 0xa79f, -0xa7a1, 0xa7a1, -0xa7a3, 0xa7a3, -0xa7a5, 0xa7a5, -0xa7a7, 0xa7a7, -0xa7a9, 0xa7a9, -0xa7af, 0xa7af, -0xa7b5, 0xa7b5, -0xa7b7, 0xa7b7, -0xa7b9, 0xa7b9, -0xa7bb, 0xa7bb, -0xa7bd, 0xa7bd, -0xa7bf, 0xa7bf, -0xa7c3, 0xa7c3, -0xa7f8, 0xa7fa, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabbf, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xff41, 0xff5a, -0x10428, 0x1044f, -0x104d8, 0x104fb, -0x10cc0, 0x10cf2, -0x118c0, 0x118df, -0x16e60, 0x16e7f, -0x1d41a, 0x1d433, -0x1d44e, 0x1d454, -0x1d456, 0x1d467, -0x1d482, 0x1d49b, -0x1d4b6, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d4cf, -0x1d4ea, 0x1d503, -0x1d51e, 0x1d537, -0x1d552, 0x1d56b, -0x1d586, 0x1d59f, -0x1d5ba, 0x1d5d3, -0x1d5ee, 0x1d607, -0x1d622, 0x1d63b, -0x1d656, 0x1d66f, -0x1d68a, 0x1d6a5, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6e1, -0x1d6fc, 0x1d714, -0x1d716, 0x1d71b, -0x1d736, 0x1d74e, -0x1d750, 0x1d755, -0x1d770, 0x1d788, -0x1d78a, 0x1d78f, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7c9, -0x1d7cb, 0x1d7cb, -0x1e922, 0x1e943, -}; /* END of CR_Lower */ - -/* PROPERTY: 'Print': POSIX [[:Print:]] */ -static const OnigCodePoint -CR_Print[] = { 668, -0x0020, 0x007e, -0x00a0, 0x0377, -0x037a, 0x037f, -0x0384, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x052f, -0x0531, 0x0556, -0x0559, 0x058a, -0x058d, 0x058f, -0x0591, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f4, -0x0600, 0x061c, -0x061e, 0x070d, -0x070f, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07fa, -0x07fd, 0x082d, -0x0830, 0x083e, -0x0840, 0x085b, -0x085e, 0x085e, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a76, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0af1, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b77, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bfa, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c77, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4f, -0x0d54, 0x0d63, -0x0d66, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df4, -0x0e01, 0x0e3a, -0x0e3f, 0x0e5b, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f97, -0x0f99, 0x0fbc, -0x0fbe, 0x0fcc, -0x0fce, 0x0fda, -0x1000, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x137c, -0x1380, 0x1399, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1400, 0x169c, -0x16a0, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1736, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17dd, -0x17e0, 0x17e9, -0x17f0, 0x17f9, -0x1800, 0x180e, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1940, 0x1940, -0x1944, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19da, -0x19de, 0x1a1b, -0x1a1e, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa0, 0x1aad, -0x1ab0, 0x1abe, -0x1b00, 0x1b4b, -0x1b50, 0x1b7c, -0x1b80, 0x1bf3, -0x1bfc, 0x1c37, -0x1c3b, 0x1c49, -0x1c4d, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cc7, -0x1cd0, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fc4, -0x1fc6, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fdd, 0x1fef, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffe, -0x2000, 0x2027, -0x202a, 0x2064, -0x2066, 0x2071, -0x2074, 0x208e, -0x2090, 0x209c, -0x20a0, 0x20bf, -0x20d0, 0x20f0, -0x2100, 0x218b, -0x2190, 0x2426, -0x2440, 0x244a, -0x2460, 0x2b73, -0x2b76, 0x2b95, -0x2b98, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2cf3, -0x2cf9, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d70, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2e4f, -0x2e80, 0x2e99, -0x2e9b, 0x2ef3, -0x2f00, 0x2fd5, -0x2ff0, 0x2ffb, -0x3000, 0x303f, -0x3041, 0x3096, -0x3099, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x3190, 0x31ba, -0x31c0, 0x31e3, -0x31f0, 0x321e, -0x3220, 0x4db5, -0x4dc0, 0x9fef, -0xa000, 0xa48c, -0xa490, 0xa4c6, -0xa4d0, 0xa62b, -0xa640, 0xa6f7, -0xa700, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa82b, -0xa830, 0xa839, -0xa840, 0xa877, -0xa880, 0xa8c5, -0xa8ce, 0xa8d9, -0xa8e0, 0xa953, -0xa95f, 0xa97c, -0xa980, 0xa9cd, -0xa9cf, 0xa9d9, -0xa9de, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa5c, 0xaac2, -0xaadb, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab67, -0xab70, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xe000, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbc1, -0xfbd3, 0xfd3f, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfd, -0xfe00, 0xfe19, -0xfe20, 0xfe52, -0xfe54, 0xfe66, -0xfe68, 0xfe6b, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xfeff, 0xfeff, -0xff01, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0xffe0, 0xffe6, -0xffe8, 0xffee, -0xfff9, 0xfffd, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10100, 0x10102, -0x10107, 0x10133, -0x10137, 0x1018e, -0x10190, 0x1019b, -0x101a0, 0x101a0, -0x101d0, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102fb, -0x10300, 0x10323, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x1039f, 0x103c3, -0x103c8, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x1056f, 0x1056f, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10857, 0x1089e, -0x108a7, 0x108af, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x108fb, 0x1091b, -0x1091f, 0x10939, -0x1093f, 0x1093f, -0x10980, 0x109b7, -0x109bc, 0x109cf, -0x109d2, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a48, -0x10a50, 0x10a58, -0x10a60, 0x10a9f, -0x10ac0, 0x10ae6, -0x10aeb, 0x10af6, -0x10b00, 0x10b35, -0x10b39, 0x10b55, -0x10b58, 0x10b72, -0x10b78, 0x10b91, -0x10b99, 0x10b9c, -0x10ba9, 0x10baf, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10cfa, 0x10d27, -0x10d30, 0x10d39, -0x10e60, 0x10e7e, -0x10f00, 0x10f27, -0x10f30, 0x10f59, -0x10fe0, 0x10ff6, -0x11000, 0x1104d, -0x11052, 0x1106f, -0x1107f, 0x110c1, -0x110cd, 0x110cd, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x11146, -0x11150, 0x11176, -0x11180, 0x111cd, -0x111d0, 0x111df, -0x111e1, 0x111f4, -0x11200, 0x11211, -0x11213, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a9, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x11459, -0x1145b, 0x1145b, -0x1145d, 0x1145f, -0x11480, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115dd, -0x11600, 0x11644, -0x11650, 0x11659, -0x11660, 0x1166c, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x1173f, -0x11800, 0x1183b, -0x118a0, 0x118f2, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e4, -0x11a00, 0x11a47, -0x11a50, 0x11aa2, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c45, -0x11c50, 0x11c6c, -0x11c70, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef8, -0x11fc0, 0x11ff1, -0x11fff, 0x12399, -0x12400, 0x1246e, -0x12470, 0x12474, -0x12480, 0x12543, -0x13000, 0x1342e, -0x13430, 0x13438, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16a6e, 0x16a6f, -0x16ad0, 0x16aed, -0x16af0, 0x16af5, -0x16b00, 0x16b45, -0x16b50, 0x16b59, -0x16b5b, 0x16b61, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e9a, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9c, 0x1bca3, -0x1d000, 0x1d0f5, -0x1d100, 0x1d126, -0x1d129, 0x1d1e8, -0x1d200, 0x1d245, -0x1d2e0, 0x1d2f3, -0x1d300, 0x1d356, -0x1d360, 0x1d378, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d7cb, -0x1d7ce, 0x1da8b, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14f, -0x1e2c0, 0x1e2f9, -0x1e2ff, 0x1e2ff, -0x1e800, 0x1e8c4, -0x1e8c7, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1e95e, 0x1e95f, -0x1ec71, 0x1ecb4, -0x1ed01, 0x1ed3d, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1eef0, 0x1eef1, -0x1f000, 0x1f02b, -0x1f030, 0x1f093, -0x1f0a0, 0x1f0ae, -0x1f0b1, 0x1f0bf, -0x1f0c1, 0x1f0cf, -0x1f0d1, 0x1f0f5, -0x1f100, 0x1f10c, -0x1f110, 0x1f16c, -0x1f170, 0x1f1ac, -0x1f1e6, 0x1f202, -0x1f210, 0x1f23b, -0x1f240, 0x1f248, -0x1f250, 0x1f251, -0x1f260, 0x1f265, -0x1f300, 0x1f6d5, -0x1f6e0, 0x1f6ec, -0x1f6f0, 0x1f6fa, -0x1f700, 0x1f773, -0x1f780, 0x1f7d8, -0x1f7e0, 0x1f7eb, -0x1f800, 0x1f80b, -0x1f810, 0x1f847, -0x1f850, 0x1f859, -0x1f860, 0x1f887, -0x1f890, 0x1f8ad, -0x1f900, 0x1f90b, -0x1f90d, 0x1f971, -0x1f973, 0x1f976, -0x1f97a, 0x1f9a2, -0x1f9a5, 0x1f9aa, -0x1f9ae, 0x1f9ca, -0x1f9cd, 0x1fa53, -0x1fa60, 0x1fa6d, -0x1fa70, 0x1fa73, -0x1fa78, 0x1fa7a, -0x1fa80, 0x1fa82, -0x1fa90, 0x1fa95, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0001, 0xe0001, -0xe0020, 0xe007f, -0xe0100, 0xe01ef, -0xf0000, 0xffffd, -0x100000, 0x10fffd, -}; /* END of CR_Print */ - -/* PROPERTY: 'Punct': POSIX [[:Punct:]] */ -static const OnigCodePoint -CR_Punct[] = { 182, -0x0021, 0x0023, -0x0025, 0x002a, -0x002c, 0x002f, -0x003a, 0x003b, -0x003f, 0x0040, -0x005b, 0x005d, -0x005f, 0x005f, -0x007b, 0x007b, -0x007d, 0x007d, -0x00a1, 0x00a1, -0x00a7, 0x00a7, -0x00ab, 0x00ab, -0x00b6, 0x00b7, -0x00bb, 0x00bb, -0x00bf, 0x00bf, -0x037e, 0x037e, -0x0387, 0x0387, -0x055a, 0x055f, -0x0589, 0x058a, -0x05be, 0x05be, -0x05c0, 0x05c0, -0x05c3, 0x05c3, -0x05c6, 0x05c6, -0x05f3, 0x05f4, -0x0609, 0x060a, -0x060c, 0x060d, -0x061b, 0x061b, -0x061e, 0x061f, -0x066a, 0x066d, -0x06d4, 0x06d4, -0x0700, 0x070d, -0x07f7, 0x07f9, -0x0830, 0x083e, -0x085e, 0x085e, -0x0964, 0x0965, -0x0970, 0x0970, -0x09fd, 0x09fd, -0x0a76, 0x0a76, -0x0af0, 0x0af0, -0x0c77, 0x0c77, -0x0c84, 0x0c84, -0x0df4, 0x0df4, -0x0e4f, 0x0e4f, -0x0e5a, 0x0e5b, -0x0f04, 0x0f12, -0x0f14, 0x0f14, -0x0f3a, 0x0f3d, -0x0f85, 0x0f85, -0x0fd0, 0x0fd4, -0x0fd9, 0x0fda, -0x104a, 0x104f, -0x10fb, 0x10fb, -0x1360, 0x1368, -0x1400, 0x1400, -0x166e, 0x166e, -0x169b, 0x169c, -0x16eb, 0x16ed, -0x1735, 0x1736, -0x17d4, 0x17d6, -0x17d8, 0x17da, -0x1800, 0x180a, -0x1944, 0x1945, -0x1a1e, 0x1a1f, -0x1aa0, 0x1aa6, -0x1aa8, 0x1aad, -0x1b5a, 0x1b60, -0x1bfc, 0x1bff, -0x1c3b, 0x1c3f, -0x1c7e, 0x1c7f, -0x1cc0, 0x1cc7, -0x1cd3, 0x1cd3, -0x2010, 0x2027, -0x2030, 0x2043, -0x2045, 0x2051, -0x2053, 0x205e, -0x207d, 0x207e, -0x208d, 0x208e, -0x2308, 0x230b, -0x2329, 0x232a, -0x2768, 0x2775, -0x27c5, 0x27c6, -0x27e6, 0x27ef, -0x2983, 0x2998, -0x29d8, 0x29db, -0x29fc, 0x29fd, -0x2cf9, 0x2cfc, -0x2cfe, 0x2cff, -0x2d70, 0x2d70, -0x2e00, 0x2e2e, -0x2e30, 0x2e4f, -0x3001, 0x3003, -0x3008, 0x3011, -0x3014, 0x301f, -0x3030, 0x3030, -0x303d, 0x303d, -0x30a0, 0x30a0, -0x30fb, 0x30fb, -0xa4fe, 0xa4ff, -0xa60d, 0xa60f, -0xa673, 0xa673, -0xa67e, 0xa67e, -0xa6f2, 0xa6f7, -0xa874, 0xa877, -0xa8ce, 0xa8cf, -0xa8f8, 0xa8fa, -0xa8fc, 0xa8fc, -0xa92e, 0xa92f, -0xa95f, 0xa95f, -0xa9c1, 0xa9cd, -0xa9de, 0xa9df, -0xaa5c, 0xaa5f, -0xaade, 0xaadf, -0xaaf0, 0xaaf1, -0xabeb, 0xabeb, -0xfd3e, 0xfd3f, -0xfe10, 0xfe19, -0xfe30, 0xfe52, -0xfe54, 0xfe61, -0xfe63, 0xfe63, -0xfe68, 0xfe68, -0xfe6a, 0xfe6b, -0xff01, 0xff03, -0xff05, 0xff0a, -0xff0c, 0xff0f, -0xff1a, 0xff1b, -0xff1f, 0xff20, -0xff3b, 0xff3d, -0xff3f, 0xff3f, -0xff5b, 0xff5b, -0xff5d, 0xff5d, -0xff5f, 0xff65, -0x10100, 0x10102, -0x1039f, 0x1039f, -0x103d0, 0x103d0, -0x1056f, 0x1056f, -0x10857, 0x10857, -0x1091f, 0x1091f, -0x1093f, 0x1093f, -0x10a50, 0x10a58, -0x10a7f, 0x10a7f, -0x10af0, 0x10af6, -0x10b39, 0x10b3f, -0x10b99, 0x10b9c, -0x10f55, 0x10f59, -0x11047, 0x1104d, -0x110bb, 0x110bc, -0x110be, 0x110c1, -0x11140, 0x11143, -0x11174, 0x11175, -0x111c5, 0x111c8, -0x111cd, 0x111cd, -0x111db, 0x111db, -0x111dd, 0x111df, -0x11238, 0x1123d, -0x112a9, 0x112a9, -0x1144b, 0x1144f, -0x1145b, 0x1145b, -0x1145d, 0x1145d, -0x114c6, 0x114c6, -0x115c1, 0x115d7, -0x11641, 0x11643, -0x11660, 0x1166c, -0x1173c, 0x1173e, -0x1183b, 0x1183b, -0x119e2, 0x119e2, -0x11a3f, 0x11a46, -0x11a9a, 0x11a9c, -0x11a9e, 0x11aa2, -0x11c41, 0x11c45, -0x11c70, 0x11c71, -0x11ef7, 0x11ef8, -0x11fff, 0x11fff, -0x12470, 0x12474, -0x16a6e, 0x16a6f, -0x16af5, 0x16af5, -0x16b37, 0x16b3b, -0x16b44, 0x16b44, -0x16e97, 0x16e9a, -0x16fe2, 0x16fe2, -0x1bc9f, 0x1bc9f, -0x1da87, 0x1da8b, -0x1e95e, 0x1e95f, -}; /* END of CR_Punct */ - -/* PROPERTY: 'Space': POSIX [[:Space:]] */ -static const OnigCodePoint -CR_Space[] = { 10, -0x0009, 0x000d, -0x0020, 0x0020, -0x0085, 0x0085, -0x00a0, 0x00a0, -0x1680, 0x1680, -0x2000, 0x200a, -0x2028, 0x2029, -0x202f, 0x202f, -0x205f, 0x205f, -0x3000, 0x3000, -}; /* END of CR_Space */ - -/* PROPERTY: 'Upper': POSIX [[:Upper:]] */ -static const OnigCodePoint -CR_Upper[] = { 641, -0x0041, 0x005a, -0x00c0, 0x00d6, -0x00d8, 0x00de, -0x0100, 0x0100, -0x0102, 0x0102, -0x0104, 0x0104, -0x0106, 0x0106, -0x0108, 0x0108, -0x010a, 0x010a, -0x010c, 0x010c, -0x010e, 0x010e, -0x0110, 0x0110, -0x0112, 0x0112, -0x0114, 0x0114, -0x0116, 0x0116, -0x0118, 0x0118, -0x011a, 0x011a, -0x011c, 0x011c, -0x011e, 0x011e, -0x0120, 0x0120, -0x0122, 0x0122, -0x0124, 0x0124, -0x0126, 0x0126, -0x0128, 0x0128, -0x012a, 0x012a, -0x012c, 0x012c, -0x012e, 0x012e, -0x0130, 0x0130, -0x0132, 0x0132, -0x0134, 0x0134, -0x0136, 0x0136, -0x0139, 0x0139, -0x013b, 0x013b, -0x013d, 0x013d, -0x013f, 0x013f, -0x0141, 0x0141, -0x0143, 0x0143, -0x0145, 0x0145, -0x0147, 0x0147, -0x014a, 0x014a, -0x014c, 0x014c, -0x014e, 0x014e, -0x0150, 0x0150, -0x0152, 0x0152, -0x0154, 0x0154, -0x0156, 0x0156, -0x0158, 0x0158, -0x015a, 0x015a, -0x015c, 0x015c, -0x015e, 0x015e, -0x0160, 0x0160, -0x0162, 0x0162, -0x0164, 0x0164, -0x0166, 0x0166, -0x0168, 0x0168, -0x016a, 0x016a, -0x016c, 0x016c, -0x016e, 0x016e, -0x0170, 0x0170, -0x0172, 0x0172, -0x0174, 0x0174, -0x0176, 0x0176, -0x0178, 0x0179, -0x017b, 0x017b, -0x017d, 0x017d, -0x0181, 0x0182, -0x0184, 0x0184, -0x0186, 0x0187, -0x0189, 0x018b, -0x018e, 0x0191, -0x0193, 0x0194, -0x0196, 0x0198, -0x019c, 0x019d, -0x019f, 0x01a0, -0x01a2, 0x01a2, -0x01a4, 0x01a4, -0x01a6, 0x01a7, -0x01a9, 0x01a9, -0x01ac, 0x01ac, -0x01ae, 0x01af, -0x01b1, 0x01b3, -0x01b5, 0x01b5, -0x01b7, 0x01b8, -0x01bc, 0x01bc, -0x01c4, 0x01c4, -0x01c7, 0x01c7, -0x01ca, 0x01ca, -0x01cd, 0x01cd, -0x01cf, 0x01cf, -0x01d1, 0x01d1, -0x01d3, 0x01d3, -0x01d5, 0x01d5, -0x01d7, 0x01d7, -0x01d9, 0x01d9, -0x01db, 0x01db, -0x01de, 0x01de, -0x01e0, 0x01e0, -0x01e2, 0x01e2, -0x01e4, 0x01e4, -0x01e6, 0x01e6, -0x01e8, 0x01e8, -0x01ea, 0x01ea, -0x01ec, 0x01ec, -0x01ee, 0x01ee, -0x01f1, 0x01f1, -0x01f4, 0x01f4, -0x01f6, 0x01f8, -0x01fa, 0x01fa, -0x01fc, 0x01fc, -0x01fe, 0x01fe, -0x0200, 0x0200, -0x0202, 0x0202, -0x0204, 0x0204, -0x0206, 0x0206, -0x0208, 0x0208, -0x020a, 0x020a, -0x020c, 0x020c, -0x020e, 0x020e, -0x0210, 0x0210, -0x0212, 0x0212, -0x0214, 0x0214, -0x0216, 0x0216, -0x0218, 0x0218, -0x021a, 0x021a, -0x021c, 0x021c, -0x021e, 0x021e, -0x0220, 0x0220, -0x0222, 0x0222, -0x0224, 0x0224, -0x0226, 0x0226, -0x0228, 0x0228, -0x022a, 0x022a, -0x022c, 0x022c, -0x022e, 0x022e, -0x0230, 0x0230, -0x0232, 0x0232, -0x023a, 0x023b, -0x023d, 0x023e, -0x0241, 0x0241, -0x0243, 0x0246, -0x0248, 0x0248, -0x024a, 0x024a, -0x024c, 0x024c, -0x024e, 0x024e, -0x0370, 0x0370, -0x0372, 0x0372, -0x0376, 0x0376, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x038f, -0x0391, 0x03a1, -0x03a3, 0x03ab, -0x03cf, 0x03cf, -0x03d2, 0x03d4, -0x03d8, 0x03d8, -0x03da, 0x03da, -0x03dc, 0x03dc, -0x03de, 0x03de, -0x03e0, 0x03e0, -0x03e2, 0x03e2, -0x03e4, 0x03e4, -0x03e6, 0x03e6, -0x03e8, 0x03e8, -0x03ea, 0x03ea, -0x03ec, 0x03ec, -0x03ee, 0x03ee, -0x03f4, 0x03f4, -0x03f7, 0x03f7, -0x03f9, 0x03fa, -0x03fd, 0x042f, -0x0460, 0x0460, -0x0462, 0x0462, -0x0464, 0x0464, -0x0466, 0x0466, -0x0468, 0x0468, -0x046a, 0x046a, -0x046c, 0x046c, -0x046e, 0x046e, -0x0470, 0x0470, -0x0472, 0x0472, -0x0474, 0x0474, -0x0476, 0x0476, -0x0478, 0x0478, -0x047a, 0x047a, -0x047c, 0x047c, -0x047e, 0x047e, -0x0480, 0x0480, -0x048a, 0x048a, -0x048c, 0x048c, -0x048e, 0x048e, -0x0490, 0x0490, -0x0492, 0x0492, -0x0494, 0x0494, -0x0496, 0x0496, -0x0498, 0x0498, -0x049a, 0x049a, -0x049c, 0x049c, -0x049e, 0x049e, -0x04a0, 0x04a0, -0x04a2, 0x04a2, -0x04a4, 0x04a4, -0x04a6, 0x04a6, -0x04a8, 0x04a8, -0x04aa, 0x04aa, -0x04ac, 0x04ac, -0x04ae, 0x04ae, -0x04b0, 0x04b0, -0x04b2, 0x04b2, -0x04b4, 0x04b4, -0x04b6, 0x04b6, -0x04b8, 0x04b8, -0x04ba, 0x04ba, -0x04bc, 0x04bc, -0x04be, 0x04be, -0x04c0, 0x04c1, -0x04c3, 0x04c3, -0x04c5, 0x04c5, -0x04c7, 0x04c7, -0x04c9, 0x04c9, -0x04cb, 0x04cb, -0x04cd, 0x04cd, -0x04d0, 0x04d0, -0x04d2, 0x04d2, -0x04d4, 0x04d4, -0x04d6, 0x04d6, -0x04d8, 0x04d8, -0x04da, 0x04da, -0x04dc, 0x04dc, -0x04de, 0x04de, -0x04e0, 0x04e0, -0x04e2, 0x04e2, -0x04e4, 0x04e4, -0x04e6, 0x04e6, -0x04e8, 0x04e8, -0x04ea, 0x04ea, -0x04ec, 0x04ec, -0x04ee, 0x04ee, -0x04f0, 0x04f0, -0x04f2, 0x04f2, -0x04f4, 0x04f4, -0x04f6, 0x04f6, -0x04f8, 0x04f8, -0x04fa, 0x04fa, -0x04fc, 0x04fc, -0x04fe, 0x04fe, -0x0500, 0x0500, -0x0502, 0x0502, -0x0504, 0x0504, -0x0506, 0x0506, -0x0508, 0x0508, -0x050a, 0x050a, -0x050c, 0x050c, -0x050e, 0x050e, -0x0510, 0x0510, -0x0512, 0x0512, -0x0514, 0x0514, -0x0516, 0x0516, -0x0518, 0x0518, -0x051a, 0x051a, -0x051c, 0x051c, -0x051e, 0x051e, -0x0520, 0x0520, -0x0522, 0x0522, -0x0524, 0x0524, -0x0526, 0x0526, -0x0528, 0x0528, -0x052a, 0x052a, -0x052c, 0x052c, -0x052e, 0x052e, -0x0531, 0x0556, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x13a0, 0x13f5, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1e00, 0x1e00, -0x1e02, 0x1e02, -0x1e04, 0x1e04, -0x1e06, 0x1e06, -0x1e08, 0x1e08, -0x1e0a, 0x1e0a, -0x1e0c, 0x1e0c, -0x1e0e, 0x1e0e, -0x1e10, 0x1e10, -0x1e12, 0x1e12, -0x1e14, 0x1e14, -0x1e16, 0x1e16, -0x1e18, 0x1e18, -0x1e1a, 0x1e1a, -0x1e1c, 0x1e1c, -0x1e1e, 0x1e1e, -0x1e20, 0x1e20, -0x1e22, 0x1e22, -0x1e24, 0x1e24, -0x1e26, 0x1e26, -0x1e28, 0x1e28, -0x1e2a, 0x1e2a, -0x1e2c, 0x1e2c, -0x1e2e, 0x1e2e, -0x1e30, 0x1e30, -0x1e32, 0x1e32, -0x1e34, 0x1e34, -0x1e36, 0x1e36, -0x1e38, 0x1e38, -0x1e3a, 0x1e3a, -0x1e3c, 0x1e3c, -0x1e3e, 0x1e3e, -0x1e40, 0x1e40, -0x1e42, 0x1e42, -0x1e44, 0x1e44, -0x1e46, 0x1e46, -0x1e48, 0x1e48, -0x1e4a, 0x1e4a, -0x1e4c, 0x1e4c, -0x1e4e, 0x1e4e, -0x1e50, 0x1e50, -0x1e52, 0x1e52, -0x1e54, 0x1e54, -0x1e56, 0x1e56, -0x1e58, 0x1e58, -0x1e5a, 0x1e5a, -0x1e5c, 0x1e5c, -0x1e5e, 0x1e5e, -0x1e60, 0x1e60, -0x1e62, 0x1e62, -0x1e64, 0x1e64, -0x1e66, 0x1e66, -0x1e68, 0x1e68, -0x1e6a, 0x1e6a, -0x1e6c, 0x1e6c, -0x1e6e, 0x1e6e, -0x1e70, 0x1e70, -0x1e72, 0x1e72, -0x1e74, 0x1e74, -0x1e76, 0x1e76, -0x1e78, 0x1e78, -0x1e7a, 0x1e7a, -0x1e7c, 0x1e7c, -0x1e7e, 0x1e7e, -0x1e80, 0x1e80, -0x1e82, 0x1e82, -0x1e84, 0x1e84, -0x1e86, 0x1e86, -0x1e88, 0x1e88, -0x1e8a, 0x1e8a, -0x1e8c, 0x1e8c, -0x1e8e, 0x1e8e, -0x1e90, 0x1e90, -0x1e92, 0x1e92, -0x1e94, 0x1e94, -0x1e9e, 0x1e9e, -0x1ea0, 0x1ea0, -0x1ea2, 0x1ea2, -0x1ea4, 0x1ea4, -0x1ea6, 0x1ea6, -0x1ea8, 0x1ea8, -0x1eaa, 0x1eaa, -0x1eac, 0x1eac, -0x1eae, 0x1eae, -0x1eb0, 0x1eb0, -0x1eb2, 0x1eb2, -0x1eb4, 0x1eb4, -0x1eb6, 0x1eb6, -0x1eb8, 0x1eb8, -0x1eba, 0x1eba, -0x1ebc, 0x1ebc, -0x1ebe, 0x1ebe, -0x1ec0, 0x1ec0, -0x1ec2, 0x1ec2, -0x1ec4, 0x1ec4, -0x1ec6, 0x1ec6, -0x1ec8, 0x1ec8, -0x1eca, 0x1eca, -0x1ecc, 0x1ecc, -0x1ece, 0x1ece, -0x1ed0, 0x1ed0, -0x1ed2, 0x1ed2, -0x1ed4, 0x1ed4, -0x1ed6, 0x1ed6, -0x1ed8, 0x1ed8, -0x1eda, 0x1eda, -0x1edc, 0x1edc, -0x1ede, 0x1ede, -0x1ee0, 0x1ee0, -0x1ee2, 0x1ee2, -0x1ee4, 0x1ee4, -0x1ee6, 0x1ee6, -0x1ee8, 0x1ee8, -0x1eea, 0x1eea, -0x1eec, 0x1eec, -0x1eee, 0x1eee, -0x1ef0, 0x1ef0, -0x1ef2, 0x1ef2, -0x1ef4, 0x1ef4, -0x1ef6, 0x1ef6, -0x1ef8, 0x1ef8, -0x1efa, 0x1efa, -0x1efc, 0x1efc, -0x1efe, 0x1efe, -0x1f08, 0x1f0f, -0x1f18, 0x1f1d, -0x1f28, 0x1f2f, -0x1f38, 0x1f3f, -0x1f48, 0x1f4d, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f5f, -0x1f68, 0x1f6f, -0x1fb8, 0x1fbb, -0x1fc8, 0x1fcb, -0x1fd8, 0x1fdb, -0x1fe8, 0x1fec, -0x1ff8, 0x1ffb, -0x2102, 0x2102, -0x2107, 0x2107, -0x210b, 0x210d, -0x2110, 0x2112, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x2130, 0x2133, -0x213e, 0x213f, -0x2145, 0x2145, -0x2160, 0x216f, -0x2183, 0x2183, -0x24b6, 0x24cf, -0x2c00, 0x2c2e, -0x2c60, 0x2c60, -0x2c62, 0x2c64, -0x2c67, 0x2c67, -0x2c69, 0x2c69, -0x2c6b, 0x2c6b, -0x2c6d, 0x2c70, -0x2c72, 0x2c72, -0x2c75, 0x2c75, -0x2c7e, 0x2c80, -0x2c82, 0x2c82, -0x2c84, 0x2c84, -0x2c86, 0x2c86, -0x2c88, 0x2c88, -0x2c8a, 0x2c8a, -0x2c8c, 0x2c8c, -0x2c8e, 0x2c8e, -0x2c90, 0x2c90, -0x2c92, 0x2c92, -0x2c94, 0x2c94, -0x2c96, 0x2c96, -0x2c98, 0x2c98, -0x2c9a, 0x2c9a, -0x2c9c, 0x2c9c, -0x2c9e, 0x2c9e, -0x2ca0, 0x2ca0, -0x2ca2, 0x2ca2, -0x2ca4, 0x2ca4, -0x2ca6, 0x2ca6, -0x2ca8, 0x2ca8, -0x2caa, 0x2caa, -0x2cac, 0x2cac, -0x2cae, 0x2cae, -0x2cb0, 0x2cb0, -0x2cb2, 0x2cb2, -0x2cb4, 0x2cb4, -0x2cb6, 0x2cb6, -0x2cb8, 0x2cb8, -0x2cba, 0x2cba, -0x2cbc, 0x2cbc, -0x2cbe, 0x2cbe, -0x2cc0, 0x2cc0, -0x2cc2, 0x2cc2, -0x2cc4, 0x2cc4, -0x2cc6, 0x2cc6, -0x2cc8, 0x2cc8, -0x2cca, 0x2cca, -0x2ccc, 0x2ccc, -0x2cce, 0x2cce, -0x2cd0, 0x2cd0, -0x2cd2, 0x2cd2, -0x2cd4, 0x2cd4, -0x2cd6, 0x2cd6, -0x2cd8, 0x2cd8, -0x2cda, 0x2cda, -0x2cdc, 0x2cdc, -0x2cde, 0x2cde, -0x2ce0, 0x2ce0, -0x2ce2, 0x2ce2, -0x2ceb, 0x2ceb, -0x2ced, 0x2ced, -0x2cf2, 0x2cf2, -0xa640, 0xa640, -0xa642, 0xa642, -0xa644, 0xa644, -0xa646, 0xa646, -0xa648, 0xa648, -0xa64a, 0xa64a, -0xa64c, 0xa64c, -0xa64e, 0xa64e, -0xa650, 0xa650, -0xa652, 0xa652, -0xa654, 0xa654, -0xa656, 0xa656, -0xa658, 0xa658, -0xa65a, 0xa65a, -0xa65c, 0xa65c, -0xa65e, 0xa65e, -0xa660, 0xa660, -0xa662, 0xa662, -0xa664, 0xa664, -0xa666, 0xa666, -0xa668, 0xa668, -0xa66a, 0xa66a, -0xa66c, 0xa66c, -0xa680, 0xa680, -0xa682, 0xa682, -0xa684, 0xa684, -0xa686, 0xa686, -0xa688, 0xa688, -0xa68a, 0xa68a, -0xa68c, 0xa68c, -0xa68e, 0xa68e, -0xa690, 0xa690, -0xa692, 0xa692, -0xa694, 0xa694, -0xa696, 0xa696, -0xa698, 0xa698, -0xa69a, 0xa69a, -0xa722, 0xa722, -0xa724, 0xa724, -0xa726, 0xa726, -0xa728, 0xa728, -0xa72a, 0xa72a, -0xa72c, 0xa72c, -0xa72e, 0xa72e, -0xa732, 0xa732, -0xa734, 0xa734, -0xa736, 0xa736, -0xa738, 0xa738, -0xa73a, 0xa73a, -0xa73c, 0xa73c, -0xa73e, 0xa73e, -0xa740, 0xa740, -0xa742, 0xa742, -0xa744, 0xa744, -0xa746, 0xa746, -0xa748, 0xa748, -0xa74a, 0xa74a, -0xa74c, 0xa74c, -0xa74e, 0xa74e, -0xa750, 0xa750, -0xa752, 0xa752, -0xa754, 0xa754, -0xa756, 0xa756, -0xa758, 0xa758, -0xa75a, 0xa75a, -0xa75c, 0xa75c, -0xa75e, 0xa75e, -0xa760, 0xa760, -0xa762, 0xa762, -0xa764, 0xa764, -0xa766, 0xa766, -0xa768, 0xa768, -0xa76a, 0xa76a, -0xa76c, 0xa76c, -0xa76e, 0xa76e, -0xa779, 0xa779, -0xa77b, 0xa77b, -0xa77d, 0xa77e, -0xa780, 0xa780, -0xa782, 0xa782, -0xa784, 0xa784, -0xa786, 0xa786, -0xa78b, 0xa78b, -0xa78d, 0xa78d, -0xa790, 0xa790, -0xa792, 0xa792, -0xa796, 0xa796, -0xa798, 0xa798, -0xa79a, 0xa79a, -0xa79c, 0xa79c, -0xa79e, 0xa79e, -0xa7a0, 0xa7a0, -0xa7a2, 0xa7a2, -0xa7a4, 0xa7a4, -0xa7a6, 0xa7a6, -0xa7a8, 0xa7a8, -0xa7aa, 0xa7ae, -0xa7b0, 0xa7b4, -0xa7b6, 0xa7b6, -0xa7b8, 0xa7b8, -0xa7ba, 0xa7ba, -0xa7bc, 0xa7bc, -0xa7be, 0xa7be, -0xa7c2, 0xa7c2, -0xa7c4, 0xa7c6, -0xff21, 0xff3a, -0x10400, 0x10427, -0x104b0, 0x104d3, -0x10c80, 0x10cb2, -0x118a0, 0x118bf, -0x16e40, 0x16e5f, -0x1d400, 0x1d419, -0x1d434, 0x1d44d, -0x1d468, 0x1d481, -0x1d49c, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b5, -0x1d4d0, 0x1d4e9, -0x1d504, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d538, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d56c, 0x1d585, -0x1d5a0, 0x1d5b9, -0x1d5d4, 0x1d5ed, -0x1d608, 0x1d621, -0x1d63c, 0x1d655, -0x1d670, 0x1d689, -0x1d6a8, 0x1d6c0, -0x1d6e2, 0x1d6fa, -0x1d71c, 0x1d734, -0x1d756, 0x1d76e, -0x1d790, 0x1d7a8, -0x1d7ca, 0x1d7ca, -0x1e900, 0x1e921, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -}; /* END of CR_Upper */ - -/* PROPERTY: 'XDigit': POSIX [[:XDigit:]] */ -static const OnigCodePoint -CR_XDigit[] = { 3, -0x0030, 0x0039, -0x0041, 0x0046, -0x0061, 0x0066, -}; /* END of CR_XDigit */ - -/* PROPERTY: 'Word': POSIX [[:Word:]] */ -static const OnigCodePoint -CR_Word[] = { 716, -0x0030, 0x0039, -0x0041, 0x005a, -0x005f, 0x005f, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0300, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x0483, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x0591, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0669, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06df, 0x06e8, -0x06ea, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x074a, -0x074d, 0x07b1, -0x07c0, 0x07f5, -0x07fa, 0x07fa, -0x07fd, 0x07fd, -0x0800, 0x082d, -0x0840, 0x085b, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d3, 0x08e1, -0x08e3, 0x0963, -0x0966, 0x096f, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bc, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09f1, -0x09fc, 0x09fc, -0x09fe, 0x09fe, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3c, 0x0a3c, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4d, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abc, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acd, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0aef, -0x0af9, 0x0aff, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3c, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4d, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b6f, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcd, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bef, -0x0c00, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4d, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbc, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccd, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d66, 0x0d6f, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dca, 0x0dca, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e4e, -0x0e50, 0x0e59, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ec8, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f18, 0x0f19, -0x0f20, 0x0f29, -0x0f35, 0x0f35, -0x0f37, 0x0f37, -0x0f39, 0x0f39, -0x0f3e, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f84, -0x0f86, 0x0f97, -0x0f99, 0x0fbc, -0x0fc6, 0x0fc6, -0x1000, 0x1049, -0x1050, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x135d, 0x135f, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1714, -0x1720, 0x1734, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17d3, -0x17d7, 0x17d7, -0x17dc, 0x17dd, -0x17e0, 0x17e9, -0x180b, 0x180d, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x193b, -0x1946, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19d9, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a60, 0x1a7c, -0x1a7f, 0x1a89, -0x1a90, 0x1a99, -0x1aa7, 0x1aa7, -0x1ab0, 0x1abe, -0x1b00, 0x1b4b, -0x1b50, 0x1b59, -0x1b6b, 0x1b73, -0x1b80, 0x1bf3, -0x1c00, 0x1c37, -0x1c40, 0x1c49, -0x1c4d, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1cd0, 0x1cd2, -0x1cd4, 0x1cfa, -0x1d00, 0x1df9, -0x1dfb, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x203f, 0x2040, -0x2054, 0x2054, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x20d0, 0x20f0, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d7f, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x2e2f, 0x2e2f, -0x3005, 0x3007, -0x3021, 0x302f, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x3099, 0x309a, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa62b, -0xa640, 0xa672, -0xa674, 0xa67d, -0xa67f, 0xa6f1, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c5, -0xa8d0, 0xa8d9, -0xa8e0, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa92d, -0xa930, 0xa953, -0xa960, 0xa97c, -0xa980, 0xa9c0, -0xa9cf, 0xa9d9, -0xa9e0, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa60, 0xaa76, -0xaa7a, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf6, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xabec, 0xabed, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe00, 0xfe0f, -0xfe20, 0xfe2f, -0xfe33, 0xfe34, -0xfe4d, 0xfe4f, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff10, 0xff19, -0xff21, 0xff3a, -0xff3f, 0xff3f, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x101fd, 0x101fd, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x102e0, 0x102e0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a38, 0x10a3a, -0x10a3f, 0x10a3f, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae6, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10d30, 0x10d39, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f50, -0x10fe0, 0x10ff6, -0x11000, 0x11046, -0x11066, 0x1106f, -0x1107f, 0x110ba, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11134, -0x11136, 0x1113f, -0x11144, 0x11146, -0x11150, 0x11173, -0x11176, 0x11176, -0x11180, 0x111c4, -0x111c9, 0x111cc, -0x111d0, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112ea, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133b, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134d, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11366, 0x1136c, -0x11370, 0x11374, -0x11400, 0x1144a, -0x11450, 0x11459, -0x1145e, 0x1145f, -0x11480, 0x114c5, -0x114c7, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115c0, -0x115d8, 0x115dd, -0x11600, 0x11640, -0x11644, 0x11644, -0x11650, 0x11659, -0x11680, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172b, -0x11730, 0x11739, -0x11800, 0x1183a, -0x118a0, 0x118e9, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a3e, -0x11a47, 0x11a47, -0x11a50, 0x11a99, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c40, -0x11c50, 0x11c59, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16ad0, 0x16aed, -0x16af0, 0x16af4, -0x16b00, 0x16b36, -0x16b40, 0x16b43, -0x16b50, 0x16b59, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9d, 0x1bc9e, -0x1d165, 0x1d169, -0x1d16d, 0x1d172, -0x1d17b, 0x1d182, -0x1d185, 0x1d18b, -0x1d1aa, 0x1d1ad, -0x1d242, 0x1d244, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1da00, 0x1da36, -0x1da3b, 0x1da6c, -0x1da75, 0x1da75, -0x1da84, 0x1da84, -0x1da9b, 0x1da9f, -0x1daa1, 0x1daaf, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e130, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2f9, -0x1e800, 0x1e8c4, -0x1e8d0, 0x1e8d6, -0x1e900, 0x1e94b, -0x1e950, 0x1e959, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -0xe0100, 0xe01ef, -}; /* END of CR_Word */ - -/* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */ -static const OnigCodePoint -CR_Alnum[] = { 715, -0x0030, 0x0039, -0x0041, 0x005a, -0x0061, 0x007a, -0x00aa, 0x00aa, -0x00b5, 0x00b5, -0x00ba, 0x00ba, -0x00c0, 0x00d6, -0x00d8, 0x00f6, -0x00f8, 0x02c1, -0x02c6, 0x02d1, -0x02e0, 0x02e4, -0x02ec, 0x02ec, -0x02ee, 0x02ee, -0x0345, 0x0345, -0x0370, 0x0374, -0x0376, 0x0377, -0x037a, 0x037d, -0x037f, 0x037f, -0x0386, 0x0386, -0x0388, 0x038a, -0x038c, 0x038c, -0x038e, 0x03a1, -0x03a3, 0x03f5, -0x03f7, 0x0481, -0x048a, 0x052f, -0x0531, 0x0556, -0x0559, 0x0559, -0x0560, 0x0588, -0x05b0, 0x05bd, -0x05bf, 0x05bf, -0x05c1, 0x05c2, -0x05c4, 0x05c5, -0x05c7, 0x05c7, -0x05d0, 0x05ea, -0x05ef, 0x05f2, -0x0610, 0x061a, -0x0620, 0x0657, -0x0659, 0x0669, -0x066e, 0x06d3, -0x06d5, 0x06dc, -0x06e1, 0x06e8, -0x06ed, 0x06fc, -0x06ff, 0x06ff, -0x0710, 0x073f, -0x074d, 0x07b1, -0x07c0, 0x07ea, -0x07f4, 0x07f5, -0x07fa, 0x07fa, -0x0800, 0x0817, -0x081a, 0x082c, -0x0840, 0x0858, -0x0860, 0x086a, -0x08a0, 0x08b4, -0x08b6, 0x08bd, -0x08d4, 0x08df, -0x08e3, 0x08e9, -0x08f0, 0x093b, -0x093d, 0x094c, -0x094e, 0x0950, -0x0955, 0x0963, -0x0966, 0x096f, -0x0971, 0x0983, -0x0985, 0x098c, -0x098f, 0x0990, -0x0993, 0x09a8, -0x09aa, 0x09b0, -0x09b2, 0x09b2, -0x09b6, 0x09b9, -0x09bd, 0x09c4, -0x09c7, 0x09c8, -0x09cb, 0x09cc, -0x09ce, 0x09ce, -0x09d7, 0x09d7, -0x09dc, 0x09dd, -0x09df, 0x09e3, -0x09e6, 0x09f1, -0x09fc, 0x09fc, -0x0a01, 0x0a03, -0x0a05, 0x0a0a, -0x0a0f, 0x0a10, -0x0a13, 0x0a28, -0x0a2a, 0x0a30, -0x0a32, 0x0a33, -0x0a35, 0x0a36, -0x0a38, 0x0a39, -0x0a3e, 0x0a42, -0x0a47, 0x0a48, -0x0a4b, 0x0a4c, -0x0a51, 0x0a51, -0x0a59, 0x0a5c, -0x0a5e, 0x0a5e, -0x0a66, 0x0a75, -0x0a81, 0x0a83, -0x0a85, 0x0a8d, -0x0a8f, 0x0a91, -0x0a93, 0x0aa8, -0x0aaa, 0x0ab0, -0x0ab2, 0x0ab3, -0x0ab5, 0x0ab9, -0x0abd, 0x0ac5, -0x0ac7, 0x0ac9, -0x0acb, 0x0acc, -0x0ad0, 0x0ad0, -0x0ae0, 0x0ae3, -0x0ae6, 0x0aef, -0x0af9, 0x0afc, -0x0b01, 0x0b03, -0x0b05, 0x0b0c, -0x0b0f, 0x0b10, -0x0b13, 0x0b28, -0x0b2a, 0x0b30, -0x0b32, 0x0b33, -0x0b35, 0x0b39, -0x0b3d, 0x0b44, -0x0b47, 0x0b48, -0x0b4b, 0x0b4c, -0x0b56, 0x0b57, -0x0b5c, 0x0b5d, -0x0b5f, 0x0b63, -0x0b66, 0x0b6f, -0x0b71, 0x0b71, -0x0b82, 0x0b83, -0x0b85, 0x0b8a, -0x0b8e, 0x0b90, -0x0b92, 0x0b95, -0x0b99, 0x0b9a, -0x0b9c, 0x0b9c, -0x0b9e, 0x0b9f, -0x0ba3, 0x0ba4, -0x0ba8, 0x0baa, -0x0bae, 0x0bb9, -0x0bbe, 0x0bc2, -0x0bc6, 0x0bc8, -0x0bca, 0x0bcc, -0x0bd0, 0x0bd0, -0x0bd7, 0x0bd7, -0x0be6, 0x0bef, -0x0c00, 0x0c03, -0x0c05, 0x0c0c, -0x0c0e, 0x0c10, -0x0c12, 0x0c28, -0x0c2a, 0x0c39, -0x0c3d, 0x0c44, -0x0c46, 0x0c48, -0x0c4a, 0x0c4c, -0x0c55, 0x0c56, -0x0c58, 0x0c5a, -0x0c60, 0x0c63, -0x0c66, 0x0c6f, -0x0c80, 0x0c83, -0x0c85, 0x0c8c, -0x0c8e, 0x0c90, -0x0c92, 0x0ca8, -0x0caa, 0x0cb3, -0x0cb5, 0x0cb9, -0x0cbd, 0x0cc4, -0x0cc6, 0x0cc8, -0x0cca, 0x0ccc, -0x0cd5, 0x0cd6, -0x0cde, 0x0cde, -0x0ce0, 0x0ce3, -0x0ce6, 0x0cef, -0x0cf1, 0x0cf2, -0x0d00, 0x0d03, -0x0d05, 0x0d0c, -0x0d0e, 0x0d10, -0x0d12, 0x0d3a, -0x0d3d, 0x0d44, -0x0d46, 0x0d48, -0x0d4a, 0x0d4c, -0x0d4e, 0x0d4e, -0x0d54, 0x0d57, -0x0d5f, 0x0d63, -0x0d66, 0x0d6f, -0x0d7a, 0x0d7f, -0x0d82, 0x0d83, -0x0d85, 0x0d96, -0x0d9a, 0x0db1, -0x0db3, 0x0dbb, -0x0dbd, 0x0dbd, -0x0dc0, 0x0dc6, -0x0dcf, 0x0dd4, -0x0dd6, 0x0dd6, -0x0dd8, 0x0ddf, -0x0de6, 0x0def, -0x0df2, 0x0df3, -0x0e01, 0x0e3a, -0x0e40, 0x0e46, -0x0e4d, 0x0e4d, -0x0e50, 0x0e59, -0x0e81, 0x0e82, -0x0e84, 0x0e84, -0x0e86, 0x0e8a, -0x0e8c, 0x0ea3, -0x0ea5, 0x0ea5, -0x0ea7, 0x0eb9, -0x0ebb, 0x0ebd, -0x0ec0, 0x0ec4, -0x0ec6, 0x0ec6, -0x0ecd, 0x0ecd, -0x0ed0, 0x0ed9, -0x0edc, 0x0edf, -0x0f00, 0x0f00, -0x0f20, 0x0f29, -0x0f40, 0x0f47, -0x0f49, 0x0f6c, -0x0f71, 0x0f81, -0x0f88, 0x0f97, -0x0f99, 0x0fbc, -0x1000, 0x1036, -0x1038, 0x1038, -0x103b, 0x1049, -0x1050, 0x109d, -0x10a0, 0x10c5, -0x10c7, 0x10c7, -0x10cd, 0x10cd, -0x10d0, 0x10fa, -0x10fc, 0x1248, -0x124a, 0x124d, -0x1250, 0x1256, -0x1258, 0x1258, -0x125a, 0x125d, -0x1260, 0x1288, -0x128a, 0x128d, -0x1290, 0x12b0, -0x12b2, 0x12b5, -0x12b8, 0x12be, -0x12c0, 0x12c0, -0x12c2, 0x12c5, -0x12c8, 0x12d6, -0x12d8, 0x1310, -0x1312, 0x1315, -0x1318, 0x135a, -0x1380, 0x138f, -0x13a0, 0x13f5, -0x13f8, 0x13fd, -0x1401, 0x166c, -0x166f, 0x167f, -0x1681, 0x169a, -0x16a0, 0x16ea, -0x16ee, 0x16f8, -0x1700, 0x170c, -0x170e, 0x1713, -0x1720, 0x1733, -0x1740, 0x1753, -0x1760, 0x176c, -0x176e, 0x1770, -0x1772, 0x1773, -0x1780, 0x17b3, -0x17b6, 0x17c8, -0x17d7, 0x17d7, -0x17dc, 0x17dc, -0x17e0, 0x17e9, -0x1810, 0x1819, -0x1820, 0x1878, -0x1880, 0x18aa, -0x18b0, 0x18f5, -0x1900, 0x191e, -0x1920, 0x192b, -0x1930, 0x1938, -0x1946, 0x196d, -0x1970, 0x1974, -0x1980, 0x19ab, -0x19b0, 0x19c9, -0x19d0, 0x19d9, -0x1a00, 0x1a1b, -0x1a20, 0x1a5e, -0x1a61, 0x1a74, -0x1a80, 0x1a89, -0x1a90, 0x1a99, -0x1aa7, 0x1aa7, -0x1b00, 0x1b33, -0x1b35, 0x1b43, -0x1b45, 0x1b4b, -0x1b50, 0x1b59, -0x1b80, 0x1ba9, -0x1bac, 0x1be5, -0x1be7, 0x1bf1, -0x1c00, 0x1c36, -0x1c40, 0x1c49, -0x1c4d, 0x1c7d, -0x1c80, 0x1c88, -0x1c90, 0x1cba, -0x1cbd, 0x1cbf, -0x1ce9, 0x1cec, -0x1cee, 0x1cf3, -0x1cf5, 0x1cf6, -0x1cfa, 0x1cfa, -0x1d00, 0x1dbf, -0x1de7, 0x1df4, -0x1e00, 0x1f15, -0x1f18, 0x1f1d, -0x1f20, 0x1f45, -0x1f48, 0x1f4d, -0x1f50, 0x1f57, -0x1f59, 0x1f59, -0x1f5b, 0x1f5b, -0x1f5d, 0x1f5d, -0x1f5f, 0x1f7d, -0x1f80, 0x1fb4, -0x1fb6, 0x1fbc, -0x1fbe, 0x1fbe, -0x1fc2, 0x1fc4, -0x1fc6, 0x1fcc, -0x1fd0, 0x1fd3, -0x1fd6, 0x1fdb, -0x1fe0, 0x1fec, -0x1ff2, 0x1ff4, -0x1ff6, 0x1ffc, -0x2071, 0x2071, -0x207f, 0x207f, -0x2090, 0x209c, -0x2102, 0x2102, -0x2107, 0x2107, -0x210a, 0x2113, -0x2115, 0x2115, -0x2119, 0x211d, -0x2124, 0x2124, -0x2126, 0x2126, -0x2128, 0x2128, -0x212a, 0x212d, -0x212f, 0x2139, -0x213c, 0x213f, -0x2145, 0x2149, -0x214e, 0x214e, -0x2160, 0x2188, -0x24b6, 0x24e9, -0x2c00, 0x2c2e, -0x2c30, 0x2c5e, -0x2c60, 0x2ce4, -0x2ceb, 0x2cee, -0x2cf2, 0x2cf3, -0x2d00, 0x2d25, -0x2d27, 0x2d27, -0x2d2d, 0x2d2d, -0x2d30, 0x2d67, -0x2d6f, 0x2d6f, -0x2d80, 0x2d96, -0x2da0, 0x2da6, -0x2da8, 0x2dae, -0x2db0, 0x2db6, -0x2db8, 0x2dbe, -0x2dc0, 0x2dc6, -0x2dc8, 0x2dce, -0x2dd0, 0x2dd6, -0x2dd8, 0x2dde, -0x2de0, 0x2dff, -0x2e2f, 0x2e2f, -0x3005, 0x3007, -0x3021, 0x3029, -0x3031, 0x3035, -0x3038, 0x303c, -0x3041, 0x3096, -0x309d, 0x309f, -0x30a1, 0x30fa, -0x30fc, 0x30ff, -0x3105, 0x312f, -0x3131, 0x318e, -0x31a0, 0x31ba, -0x31f0, 0x31ff, -0x3400, 0x4db5, -0x4e00, 0x9fef, -0xa000, 0xa48c, -0xa4d0, 0xa4fd, -0xa500, 0xa60c, -0xa610, 0xa62b, -0xa640, 0xa66e, -0xa674, 0xa67b, -0xa67f, 0xa6ef, -0xa717, 0xa71f, -0xa722, 0xa788, -0xa78b, 0xa7bf, -0xa7c2, 0xa7c6, -0xa7f7, 0xa805, -0xa807, 0xa827, -0xa840, 0xa873, -0xa880, 0xa8c3, -0xa8c5, 0xa8c5, -0xa8d0, 0xa8d9, -0xa8f2, 0xa8f7, -0xa8fb, 0xa8fb, -0xa8fd, 0xa92a, -0xa930, 0xa952, -0xa960, 0xa97c, -0xa980, 0xa9b2, -0xa9b4, 0xa9bf, -0xa9cf, 0xa9d9, -0xa9e0, 0xa9fe, -0xaa00, 0xaa36, -0xaa40, 0xaa4d, -0xaa50, 0xaa59, -0xaa60, 0xaa76, -0xaa7a, 0xaabe, -0xaac0, 0xaac0, -0xaac2, 0xaac2, -0xaadb, 0xaadd, -0xaae0, 0xaaef, -0xaaf2, 0xaaf5, -0xab01, 0xab06, -0xab09, 0xab0e, -0xab11, 0xab16, -0xab20, 0xab26, -0xab28, 0xab2e, -0xab30, 0xab5a, -0xab5c, 0xab67, -0xab70, 0xabea, -0xabf0, 0xabf9, -0xac00, 0xd7a3, -0xd7b0, 0xd7c6, -0xd7cb, 0xd7fb, -0xf900, 0xfa6d, -0xfa70, 0xfad9, -0xfb00, 0xfb06, -0xfb13, 0xfb17, -0xfb1d, 0xfb28, -0xfb2a, 0xfb36, -0xfb38, 0xfb3c, -0xfb3e, 0xfb3e, -0xfb40, 0xfb41, -0xfb43, 0xfb44, -0xfb46, 0xfbb1, -0xfbd3, 0xfd3d, -0xfd50, 0xfd8f, -0xfd92, 0xfdc7, -0xfdf0, 0xfdfb, -0xfe70, 0xfe74, -0xfe76, 0xfefc, -0xff10, 0xff19, -0xff21, 0xff3a, -0xff41, 0xff5a, -0xff66, 0xffbe, -0xffc2, 0xffc7, -0xffca, 0xffcf, -0xffd2, 0xffd7, -0xffda, 0xffdc, -0x10000, 0x1000b, -0x1000d, 0x10026, -0x10028, 0x1003a, -0x1003c, 0x1003d, -0x1003f, 0x1004d, -0x10050, 0x1005d, -0x10080, 0x100fa, -0x10140, 0x10174, -0x10280, 0x1029c, -0x102a0, 0x102d0, -0x10300, 0x1031f, -0x1032d, 0x1034a, -0x10350, 0x1037a, -0x10380, 0x1039d, -0x103a0, 0x103c3, -0x103c8, 0x103cf, -0x103d1, 0x103d5, -0x10400, 0x1049d, -0x104a0, 0x104a9, -0x104b0, 0x104d3, -0x104d8, 0x104fb, -0x10500, 0x10527, -0x10530, 0x10563, -0x10600, 0x10736, -0x10740, 0x10755, -0x10760, 0x10767, -0x10800, 0x10805, -0x10808, 0x10808, -0x1080a, 0x10835, -0x10837, 0x10838, -0x1083c, 0x1083c, -0x1083f, 0x10855, -0x10860, 0x10876, -0x10880, 0x1089e, -0x108e0, 0x108f2, -0x108f4, 0x108f5, -0x10900, 0x10915, -0x10920, 0x10939, -0x10980, 0x109b7, -0x109be, 0x109bf, -0x10a00, 0x10a03, -0x10a05, 0x10a06, -0x10a0c, 0x10a13, -0x10a15, 0x10a17, -0x10a19, 0x10a35, -0x10a60, 0x10a7c, -0x10a80, 0x10a9c, -0x10ac0, 0x10ac7, -0x10ac9, 0x10ae4, -0x10b00, 0x10b35, -0x10b40, 0x10b55, -0x10b60, 0x10b72, -0x10b80, 0x10b91, -0x10c00, 0x10c48, -0x10c80, 0x10cb2, -0x10cc0, 0x10cf2, -0x10d00, 0x10d27, -0x10d30, 0x10d39, -0x10f00, 0x10f1c, -0x10f27, 0x10f27, -0x10f30, 0x10f45, -0x10fe0, 0x10ff6, -0x11000, 0x11045, -0x11066, 0x1106f, -0x11082, 0x110b8, -0x110d0, 0x110e8, -0x110f0, 0x110f9, -0x11100, 0x11132, -0x11136, 0x1113f, -0x11144, 0x11146, -0x11150, 0x11172, -0x11176, 0x11176, -0x11180, 0x111bf, -0x111c1, 0x111c4, -0x111d0, 0x111da, -0x111dc, 0x111dc, -0x11200, 0x11211, -0x11213, 0x11234, -0x11237, 0x11237, -0x1123e, 0x1123e, -0x11280, 0x11286, -0x11288, 0x11288, -0x1128a, 0x1128d, -0x1128f, 0x1129d, -0x1129f, 0x112a8, -0x112b0, 0x112e8, -0x112f0, 0x112f9, -0x11300, 0x11303, -0x11305, 0x1130c, -0x1130f, 0x11310, -0x11313, 0x11328, -0x1132a, 0x11330, -0x11332, 0x11333, -0x11335, 0x11339, -0x1133d, 0x11344, -0x11347, 0x11348, -0x1134b, 0x1134c, -0x11350, 0x11350, -0x11357, 0x11357, -0x1135d, 0x11363, -0x11400, 0x11441, -0x11443, 0x11445, -0x11447, 0x1144a, -0x11450, 0x11459, -0x1145f, 0x1145f, -0x11480, 0x114c1, -0x114c4, 0x114c5, -0x114c7, 0x114c7, -0x114d0, 0x114d9, -0x11580, 0x115b5, -0x115b8, 0x115be, -0x115d8, 0x115dd, -0x11600, 0x1163e, -0x11640, 0x11640, -0x11644, 0x11644, -0x11650, 0x11659, -0x11680, 0x116b5, -0x116b8, 0x116b8, -0x116c0, 0x116c9, -0x11700, 0x1171a, -0x1171d, 0x1172a, -0x11730, 0x11739, -0x11800, 0x11838, -0x118a0, 0x118e9, -0x118ff, 0x118ff, -0x119a0, 0x119a7, -0x119aa, 0x119d7, -0x119da, 0x119df, -0x119e1, 0x119e1, -0x119e3, 0x119e4, -0x11a00, 0x11a32, -0x11a35, 0x11a3e, -0x11a50, 0x11a97, -0x11a9d, 0x11a9d, -0x11ac0, 0x11af8, -0x11c00, 0x11c08, -0x11c0a, 0x11c36, -0x11c38, 0x11c3e, -0x11c40, 0x11c40, -0x11c50, 0x11c59, -0x11c72, 0x11c8f, -0x11c92, 0x11ca7, -0x11ca9, 0x11cb6, -0x11d00, 0x11d06, -0x11d08, 0x11d09, -0x11d0b, 0x11d36, -0x11d3a, 0x11d3a, -0x11d3c, 0x11d3d, -0x11d3f, 0x11d41, -0x11d43, 0x11d43, -0x11d46, 0x11d47, -0x11d50, 0x11d59, -0x11d60, 0x11d65, -0x11d67, 0x11d68, -0x11d6a, 0x11d8e, -0x11d90, 0x11d91, -0x11d93, 0x11d96, -0x11d98, 0x11d98, -0x11da0, 0x11da9, -0x11ee0, 0x11ef6, -0x12000, 0x12399, -0x12400, 0x1246e, -0x12480, 0x12543, -0x13000, 0x1342e, -0x14400, 0x14646, -0x16800, 0x16a38, -0x16a40, 0x16a5e, -0x16a60, 0x16a69, -0x16ad0, 0x16aed, -0x16b00, 0x16b2f, -0x16b40, 0x16b43, -0x16b50, 0x16b59, -0x16b63, 0x16b77, -0x16b7d, 0x16b8f, -0x16e40, 0x16e7f, -0x16f00, 0x16f4a, -0x16f4f, 0x16f87, -0x16f8f, 0x16f9f, -0x16fe0, 0x16fe1, -0x16fe3, 0x16fe3, -0x17000, 0x187f7, -0x18800, 0x18af2, -0x1b000, 0x1b11e, -0x1b150, 0x1b152, -0x1b164, 0x1b167, -0x1b170, 0x1b2fb, -0x1bc00, 0x1bc6a, -0x1bc70, 0x1bc7c, -0x1bc80, 0x1bc88, -0x1bc90, 0x1bc99, -0x1bc9e, 0x1bc9e, -0x1d400, 0x1d454, -0x1d456, 0x1d49c, -0x1d49e, 0x1d49f, -0x1d4a2, 0x1d4a2, -0x1d4a5, 0x1d4a6, -0x1d4a9, 0x1d4ac, -0x1d4ae, 0x1d4b9, -0x1d4bb, 0x1d4bb, -0x1d4bd, 0x1d4c3, -0x1d4c5, 0x1d505, -0x1d507, 0x1d50a, -0x1d50d, 0x1d514, -0x1d516, 0x1d51c, -0x1d51e, 0x1d539, -0x1d53b, 0x1d53e, -0x1d540, 0x1d544, -0x1d546, 0x1d546, -0x1d54a, 0x1d550, -0x1d552, 0x1d6a5, -0x1d6a8, 0x1d6c0, -0x1d6c2, 0x1d6da, -0x1d6dc, 0x1d6fa, -0x1d6fc, 0x1d714, -0x1d716, 0x1d734, -0x1d736, 0x1d74e, -0x1d750, 0x1d76e, -0x1d770, 0x1d788, -0x1d78a, 0x1d7a8, -0x1d7aa, 0x1d7c2, -0x1d7c4, 0x1d7cb, -0x1d7ce, 0x1d7ff, -0x1e000, 0x1e006, -0x1e008, 0x1e018, -0x1e01b, 0x1e021, -0x1e023, 0x1e024, -0x1e026, 0x1e02a, -0x1e100, 0x1e12c, -0x1e137, 0x1e13d, -0x1e140, 0x1e149, -0x1e14e, 0x1e14e, -0x1e2c0, 0x1e2eb, -0x1e2f0, 0x1e2f9, -0x1e800, 0x1e8c4, -0x1e900, 0x1e943, -0x1e947, 0x1e947, -0x1e94b, 0x1e94b, -0x1e950, 0x1e959, -0x1ee00, 0x1ee03, -0x1ee05, 0x1ee1f, -0x1ee21, 0x1ee22, -0x1ee24, 0x1ee24, -0x1ee27, 0x1ee27, -0x1ee29, 0x1ee32, -0x1ee34, 0x1ee37, -0x1ee39, 0x1ee39, -0x1ee3b, 0x1ee3b, -0x1ee42, 0x1ee42, -0x1ee47, 0x1ee47, -0x1ee49, 0x1ee49, -0x1ee4b, 0x1ee4b, -0x1ee4d, 0x1ee4f, -0x1ee51, 0x1ee52, -0x1ee54, 0x1ee54, -0x1ee57, 0x1ee57, -0x1ee59, 0x1ee59, -0x1ee5b, 0x1ee5b, -0x1ee5d, 0x1ee5d, -0x1ee5f, 0x1ee5f, -0x1ee61, 0x1ee62, -0x1ee64, 0x1ee64, -0x1ee67, 0x1ee6a, -0x1ee6c, 0x1ee72, -0x1ee74, 0x1ee77, -0x1ee79, 0x1ee7c, -0x1ee7e, 0x1ee7e, -0x1ee80, 0x1ee89, -0x1ee8b, 0x1ee9b, -0x1eea1, 0x1eea3, -0x1eea5, 0x1eea9, -0x1eeab, 0x1eebb, -0x1f130, 0x1f149, -0x1f150, 0x1f169, -0x1f170, 0x1f189, -0x20000, 0x2a6d6, -0x2a700, 0x2b734, -0x2b740, 0x2b81d, -0x2b820, 0x2cea1, -0x2ceb0, 0x2ebe0, -0x2f800, 0x2fa1d, -}; /* END of CR_Alnum */ - -/* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */ -static const OnigCodePoint -CR_ASCII[] = { 1, -0x0000, 0x007f, -}; /* END of CR_ASCII */ - - -static const OnigCodePoint* -const CodeRanges[] = { - CR_NEWLINE, - CR_Alpha, - CR_Blank, - CR_Cntrl, - CR_Digit, - CR_Graph, - CR_Lower, - CR_Print, - CR_Punct, - CR_Space, - CR_Upper, - CR_XDigit, - CR_Word, - CR_Alnum, - CR_ASCII, -}; - -#define pool_offset(s) offsetof(struct unicode_prop_name_pool_t, unicode_prop_name_pool_str##s) - - -#define TOTAL_KEYWORDS 15 -#define MIN_WORD_LENGTH 4 -#define MAX_WORD_LENGTH 7 -#define MIN_HASH_VALUE 5 -#define MAX_HASH_VALUE 19 -/* maximum key range = 15, duplicates = 0 */ - -#ifndef GPERF_DOWNCASE -#define GPERF_DOWNCASE 1 -static unsigned char gperf_downcase[256] = - { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 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, 197, 198, 199, 200, 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, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255 - }; -#endif - -#ifndef GPERF_CASE_STRNCMP -#define GPERF_CASE_STRNCMP 1 -static int -gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n) -{ - for (; n > 0;) - { - unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; - unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; - if (c1 != 0 && c1 == c2) - { - n--; - continue; - } - return (int)c1 - (int)c2; - } - return 0; -} -#endif - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -hash (register const char *str, register size_t len) -{ - static const unsigned char asso_values[] = - { - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 2, 12, 5, 3, 20, - 20, 10, 20, 0, 20, 20, 9, 20, 1, 20, - 0, 20, 9, 7, 3, 6, 20, 2, 3, 20, - 20, 20, 20, 20, 20, 20, 20, 2, 12, 5, - 3, 20, 20, 10, 20, 0, 20, 20, 9, 20, - 1, 20, 0, 20, 9, 7, 3, 6, 20, 2, - 3, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20 - }; - return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]]; -} - -struct unicode_prop_name_pool_t - { - char unicode_prop_name_pool_str5[sizeof("print")]; - char unicode_prop_name_pool_str6[sizeof("punct")]; - char unicode_prop_name_pool_str7[sizeof("alpha")]; - char unicode_prop_name_pool_str8[sizeof("alnum")]; - char unicode_prop_name_pool_str9[sizeof("xdigit")]; - char unicode_prop_name_pool_str10[sizeof("newline")]; - char unicode_prop_name_pool_str11[sizeof("upper")]; - char unicode_prop_name_pool_str12[sizeof("ascii")]; - char unicode_prop_name_pool_str13[sizeof("cntrl")]; - char unicode_prop_name_pool_str14[sizeof("space")]; - char unicode_prop_name_pool_str15[sizeof("word")]; - char unicode_prop_name_pool_str16[sizeof("lower")]; - char unicode_prop_name_pool_str17[sizeof("graph")]; - char unicode_prop_name_pool_str18[sizeof("digit")]; - char unicode_prop_name_pool_str19[sizeof("blank")]; - }; -static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents = - { - "print", - "punct", - "alpha", - "alnum", - "xdigit", - "newline", - "upper", - "ascii", - "cntrl", - "space", - "word", - "lower", - "graph", - "digit", - "blank" - }; -#define unicode_prop_name_pool ((const char *) &unicode_prop_name_pool_contents) -static const struct PoolPropertyNameCtype * -unicode_lookup_property_name (register const char *str, register size_t len) -{ - static const struct PoolPropertyNameCtype wordlist[] = - { - {-1}, {-1}, {-1}, {-1}, {-1}, - - {pool_offset(5), 7}, - - {pool_offset(6), 8}, - - {pool_offset(7), 1}, - - {pool_offset(8), 13}, - - {pool_offset(9), 11}, - - {pool_offset(10), 0}, - - {pool_offset(11), 10}, - - {pool_offset(12), 14}, - - {pool_offset(13), 3}, - - {pool_offset(14), 9}, - - {pool_offset(15), 12}, - - {pool_offset(16), 6}, - - {pool_offset(17), 5}, - - {pool_offset(18), 4}, - - {pool_offset(19), 2} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = wordlist[key].name; - if (o >= 0) - { - register const char *s = o + unicode_prop_name_pool; - - if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0') - return &wordlist[key]; - } - } - } - return 0; -} - - - -#define PROPERTY_NAME_MAX_SIZE 17 -#define CODE_RANGES_NUM 15 - -#define PROP_INDEX_NEWLINE 0 -#define PROP_INDEX_ALPHA 1 -#define PROP_INDEX_BLANK 2 -#define PROP_INDEX_CNTRL 3 -#define PROP_INDEX_DIGIT 4 -#define PROP_INDEX_GRAPH 5 -#define PROP_INDEX_LOWER 6 -#define PROP_INDEX_PRINT 7 -#define PROP_INDEX_PUNCT 8 -#define PROP_INDEX_SPACE 9 -#define PROP_INDEX_UPPER 10 -#define PROP_INDEX_XDIGIT 11 -#define PROP_INDEX_WORD 12 -#define PROP_INDEX_ALNUM 13 -#define PROP_INDEX_ASCII 14 diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_unfold_key.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_unfold_key.c deleted file mode 100644 index 1f03b21cfe54..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_unfold_key.c +++ /dev/null @@ -1,3299 +0,0 @@ -/* This file was converted by gperf_unfold_key_conv.py - from gperf output file. */ -/* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1,0 -N onigenc_unicode_unfold_key unicode_unfold_key.gperf */ -/* Computed positions: -k'1-3' */ - - - -/* This gperf source file was generated by make_unicode_fold_data.py */ - -/*- - * Copyright (c) 2017-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -//#include -#include "regenc.h" - -#define TOTAL_KEYWORDS 1487 -#define MIN_WORD_LENGTH 3 -#define MAX_WORD_LENGTH 3 -#define MIN_HASH_VALUE 10 -#define MAX_HASH_VALUE 1958 -/* maximum key range = 1949, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -/*ARGSUSED*/ -static unsigned int -hash(OnigCodePoint codes[]) -{ - static const unsigned short asso_values[] = - { - 9, 5, 2, 111, 176, 1, 110, 1959, 1959, 1959, - 1959, 1959, 1959, 13, 1959, 1959, 1959, 77, 1959, 1959, - 63, 1959, 1959, 1959, 1959, 86, 1959, 1959, 1959, 7, - 1959, 0, 3, 1959, 191, 624, 1536, 132, 1519, 613, - 1513, 607, 1602, 586, 1505, 4, 1497, 570, 1492, 554, - 1482, 907, 1601, 898, 1469, 595, 1468, 405, 1463, 546, - 1458, 538, 1453, 474, 1444, 890, 1596, 877, 1419, 725, - 1590, 698, 1588, 635, 1160, 682, 1021, 338, 1122, 671, - 812, 559, 819, 1580, 756, 1082, 744, 1438, 637, 1428, - 266, 1429, 1502, 1285, 1440, 1578, 467, 1419, 873, 490, - 1380, 779, 731, 1057, 1261, 1034, 1567, 762, 1389, 495, - 1510, 156, 648, 805, 1537, 862, 1523, 853, 1469, 845, - 1252, 796, 342, 1297, 801, 1287, 542, 1408, 477, 1400, - 237, 1109, 20, 1099, 548, 1067, 1, 1280, 326, 1043, - 767, 1030, 756, 938, 598, 254, 26, 1275, 165, 1270, - 149, 1575, 15, 1368, 133, 1202, 625, 403, 408, 373, - 296, 1397, 283, 519, 1381, 503, 1372, 18, 6, 415, - 1253, 769, 8, 484, 1358, 658, 1565, 464, 427, 244, - 1241, 360, 1233, 390, 1350, 219, 377, 206, 1223, 328, - 1211, 145, 1198, 454, 135, 73, 1020, 103, 1012, 63, - 995, 53, 748, 196, 573, 116, 684, 93, 983, 83, - 1004, 182, 735, 31, 713, 319, 977, 306, 706, 44, - 836, 293, 1187, 280, 1135, 268, 671, 976, 1350, 447, - 1182, 437, 964, 946, 351, 932, 1349, 923, 1090, 1194, - 1175, 827, 1299, 1165, 1410, 1155, 1522, 1557, 313, 1146, - 424, 1136, 233, 1130, 161, 1316, 93, 167, 134, 618, - 1959, 1118, 128, 1342, 1959, 1335, 124, 1331, 75, 1327, - 191, 1308, 45, 1545, 1959, 1534, 1, 230, 9, 643, - 5, 1564, 40, 1553, 65, 531, 55, 993, 25, 1476, - 2 - }; - return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+35] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)+1] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)]; -} - -const struct ByUnfoldKey * -onigenc_unicode_unfold_key(OnigCodePoint code) -{ - static const struct ByUnfoldKey wordlist[] = - { - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1040a, 3441, 1}, - {0xffffffff, -1, 0}, - - {0x01f1, 483, 1}, - - {0x1e0a, 1882, 1}, - - {0x040a, 1029, 1}, - - {0x010a, 186, 1}, - - {0x1f0a, 2243, 1}, - - {0x2c0a, 2606, 1}, - - {0x1f85, 154, 2}, - - {0x0189, 619, 1}, - - {0x1f89, 134, 2}, - - {0x1ff3, 96, 2}, - - {0x1c85, 954, 1}, - - {0xab85, 1663, 1}, - - {0x10c85, 3654, 1}, - - {0xab89, 1675, 1}, - - {0x10c89, 3666, 1}, - - {0x1e84, 2066, 1}, - - {0x2c75, 2738, 1}, - - {0x0184, 360, 1}, - - {0x1f84, 149, 2}, - - {0x2c84, 2747, 1}, - - {0xab75, 1615, 1}, - - {0xa784, 3261, 1}, - - {0x1c84, 954, 1}, - - {0xab84, 1660, 1}, - - {0x10c84, 3651, 1}, - - {0x104b2, 3537, 1}, - - {0x1f6f, 2378, 1}, - - {0x2c6f, 604, 1}, - - {0x1eb2, 2120, 1}, - - {0x04b2, 1159, 1}, - - {0x01b2, 700, 1}, - - {0x1fb2, 249, 2}, - - {0x2cb2, 2816, 1}, - - {0xa684, 3096, 1}, - - {0xa7b2, 709, 1}, - - {0x1cb2, 1564, 1}, - - {0xabb2, 1798, 1}, - - {0x10cb2, 3789, 1}, - - {0x104b8, 3555, 1}, - - {0x01f7, 414, 1}, - - {0x1ff7, 67, 3}, - - {0x1eb8, 2129, 1}, - - {0x04b8, 1168, 1}, - - {0x01b8, 408, 1}, - - {0x1fb8, 2423, 1}, - - {0x2cb8, 2825, 1}, - - {0x2ced, 2894, 1}, - - {0xa7b8, 3315, 1}, - - {0x1cb8, 1582, 1}, - - {0xabb8, 1816, 1}, - - {0x1ea6, 2102, 1}, - - {0x04a6, 1141, 1}, - - {0x01a6, 679, 1}, - - {0x1fa6, 239, 2}, - - {0x2ca6, 2798, 1}, - - {0x1ffb, 2420, 1}, - - {0xa7a6, 3303, 1}, - - {0x1ca6, 1528, 1}, - - {0xaba6, 1762, 1}, - - {0x10ca6, 3753, 1}, - - {0x1ea4, 2099, 1}, - - {0x04a4, 1138, 1}, - - {0x01a4, 390, 1}, - - {0x1fa4, 229, 2}, - - {0x2ca4, 2795, 1}, - - {0x1ff9, 2408, 1}, - - {0xa7a4, 3300, 1}, - - {0x1ca4, 1522, 1}, - - {0xaba4, 1756, 1}, - - {0x10ca4, 3747, 1}, - - {0x1ea0, 2093, 1}, - - {0x04a0, 1132, 1}, - - {0x01a0, 384, 1}, - - {0x1fa0, 209, 2}, - - {0x2ca0, 2789, 1}, - - {0x1fe9, 2438, 1}, - - {0xa7a0, 3294, 1}, - - {0x1ca0, 1510, 1}, - - {0xaba0, 1744, 1}, - - {0x10ca0, 3735, 1}, - - {0x1eae, 2114, 1}, - - {0x04ae, 1153, 1}, - - {0x01ae, 691, 1}, - - {0x1fae, 239, 2}, - - {0x2cae, 2810, 1}, - - {0x13fd, 1855, 1}, - - {0xa7ae, 655, 1}, - - {0x1cae, 1552, 1}, - - {0xabae, 1786, 1}, - - {0x10cae, 3777, 1}, - - {0x1eac, 2111, 1}, - - {0x04ac, 1150, 1}, - - {0x01ac, 396, 1}, - - {0x1fac, 229, 2}, - - {0x2cac, 2807, 1}, - - {0x00dd, 162, 1}, - - {0xa7ac, 637, 1}, - - {0x1cac, 1546, 1}, - - {0xabac, 1780, 1}, - - {0x10cac, 3771, 1}, - - {0x1ea2, 2096, 1}, - - {0x04a2, 1135, 1}, - - {0x01a2, 387, 1}, - - {0x1fa2, 219, 2}, - - {0x2ca2, 2792, 1}, - - {0x10b2, 2954, 1}, - - {0xa7a2, 3297, 1}, - - {0x1ca2, 1516, 1}, - - {0xaba2, 1750, 1}, - - {0x10ca2, 3741, 1}, - - {0x118b2, 3846, 1}, - - {0x050a, 1291, 1}, - - {0x020a, 517, 1}, - - {0x1eaa, 2108, 1}, - - {0x04aa, 1147, 1}, - - {0x13fb, 1849, 1}, - - {0x1faa, 219, 2}, - - {0x2caa, 2804, 1}, - - {0x10b8, 2972, 1}, - - {0xa7aa, 646, 1}, - - {0x1caa, 1540, 1}, - - {0xabaa, 1774, 1}, - - {0x10caa, 3765, 1}, - - {0x118b8, 3864, 1}, - - {0x1fe7, 47, 3}, - - {0x13f9, 1843, 1}, - - {0x10402, 3417, 1}, - - {0x10a6, 2918, 1}, - - {0x1fe3, 41, 3}, - - {0x1e02, 1870, 1}, - - {0x0402, 1005, 1}, - - {0x0102, 174, 1}, - - {0x118a6, 3810, 1}, - - {0x2c02, 2582, 1}, - - {0x019f, 673, 1}, - - {0x1f9f, 204, 2}, - - {0x00df, 24, 2}, - - {0x10a4, 2912, 1}, - - {0xab77, 1621, 1}, - - {0x1c9f, 1507, 1}, - - {0xab9f, 1741, 1}, - - {0x10c9f, 3732, 1}, - - {0x118a4, 3804, 1}, - - {0x049c, 1126, 1}, - - {0x019c, 664, 1}, - - {0x1f9c, 189, 2}, - - {0x2c9c, 2783, 1}, - - {0x10a0, 2900, 1}, - - {0xa79c, 3288, 1}, - - {0x1c9c, 1498, 1}, - - {0xab9c, 1732, 1}, - - {0x10c9c, 3723, 1}, - - {0x118a0, 3792, 1}, - - {0x1e4c, 1981, 1}, - - {0xab73, 1609, 1}, - - {0x014c, 279, 1}, - - {0x1f4c, 2339, 1}, - - {0x10ae, 2942, 1}, - - {0x004c, 31, 1}, - - {0xa74c, 3192, 1}, - - {0x01db, 450, 1}, - - {0x1fdb, 2402, 1}, - - {0x118ae, 3834, 1}, - - {0x00db, 156, 1}, - - {0x1ede, 2186, 1}, - - {0x04de, 1225, 1}, - - {0x01de, 456, 1}, - - {0x10ac, 2936, 1}, - - {0x2cde, 2882, 1}, - - {0x00de, 165, 1}, - - {0xab71, 1603, 1}, - - {0xa64c, 3039, 1}, - - {0x118ac, 3828, 1}, - - {0x24b8, 2504, 1}, - - {0x03f1, 802, 1}, - - {0x03ff, 730, 1}, - - {0x104b0, 3531, 1}, - - {0x10a2, 2906, 1}, - - {0x03f5, 758, 1}, - - {0x1eb0, 2117, 1}, - - {0x04b0, 1156, 1}, - - {0x0389, 739, 1}, - - {0x118a2, 3798, 1}, - - {0x2cb0, 2813, 1}, - {0xffffffff, -1, 0}, - - {0xa7b0, 712, 1}, - - {0x1cb0, 1558, 1}, - - {0xabb0, 1792, 1}, - - {0x10cb0, 3783, 1}, - - {0x2165, 2462, 1}, - - {0x10aa, 2930, 1}, - - {0x1feb, 2414, 1}, - - {0x2ceb, 2891, 1}, - - {0x1ea8, 2105, 1}, - - {0x04a8, 1144, 1}, - - {0x118aa, 3822, 1}, - - {0x1fa8, 209, 2}, - - {0x2ca8, 2801, 1}, - - {0x03fd, 724, 1}, - - {0xa7a8, 3306, 1}, - - {0x1ca8, 1534, 1}, - - {0xaba8, 1768, 1}, - - {0x10ca8, 3759, 1}, - - {0x1e98, 38, 2}, - - {0x0498, 1120, 1}, - - {0x0198, 375, 1}, - - {0x1f98, 169, 2}, - - {0x2c98, 2777, 1}, - - {0x2161, 2450, 1}, - - {0xa798, 3282, 1}, - - {0x1c98, 1486, 1}, - - {0xab98, 1720, 1}, - - {0x10c98, 3711, 1}, - - {0x03f7, 890, 1}, - - {0x216f, 2492, 1}, - {0xffffffff, -1, 0}, - - {0x1e96, 16, 2}, - - {0x0496, 1117, 1}, - - {0x0196, 652, 1}, - - {0x1f96, 199, 2}, - - {0x2c96, 2774, 1}, - - {0xa698, 3126, 1}, - - {0xa796, 3279, 1}, - - {0x1c96, 1480, 1}, - - {0xab96, 1714, 1}, - - {0x10c96, 3705, 1}, - - {0x03a6, 816, 1}, - - {0x1ef2, 2216, 1}, - - {0x04f2, 1255, 1}, - - {0x01f2, 483, 1}, - - {0x1ff2, 257, 2}, - - {0x2cf2, 2897, 1}, - - {0x01d9, 447, 1}, - - {0x1fd9, 2432, 1}, - - {0xa696, 3123, 1}, - - {0x00d9, 150, 1}, - - {0x03a4, 810, 1}, - - {0x1f5f, 2354, 1}, - - {0x03f9, 884, 1}, - - {0x0502, 1279, 1}, - - {0x0202, 505, 1}, - - {0x1e90, 2084, 1}, - - {0x0490, 1108, 1}, - - {0x0190, 628, 1}, - - {0x1f90, 169, 2}, - - {0x2c90, 2765, 1}, - - {0x03a0, 798, 1}, - - {0xa790, 3270, 1}, - - {0x1c90, 1462, 1}, - - {0xab90, 1696, 1}, - - {0x10c90, 3687, 1}, - - {0x1e6e, 2033, 1}, - - {0x046e, 1069, 1}, - - {0x016e, 330, 1}, - - {0x1f6e, 2375, 1}, - - {0x2c6e, 667, 1}, - - {0x10b0, 2948, 1}, - - {0xa76e, 3243, 1}, - {0xffffffff, -1, 0}, - - {0xa690, 3114, 1}, - {0xffffffff, -1, 0}, - - {0x118b0, 3840, 1}, - - {0x104be, 3573, 1}, - - {0x054c, 1429, 1}, - - {0x024c, 598, 1}, - - {0x1ebe, 2138, 1}, - - {0x04be, 1177, 1}, - {0xffffffff, -1, 0}, - - {0x1fbe, 773, 1}, - - {0x2cbe, 2834, 1}, - - {0x10a8, 2924, 1}, - - {0xa7be, 3324, 1}, - - {0x1cbe, 1594, 1}, - - {0xabbe, 1834, 1}, - - {0x104bc, 3567, 1}, - - {0x118a8, 3816, 1}, - {0xffffffff, -1, 0}, - - {0x1ebc, 2135, 1}, - - {0x04bc, 1174, 1}, - - {0x01bc, 411, 1}, - - {0x1fbc, 62, 2}, - - {0x2cbc, 2831, 1}, - - {0x017f, 52, 1}, - - {0xa7bc, 3321, 1}, - - {0x2c7f, 583, 1}, - - {0xabbc, 1828, 1}, - {0xffffffff, -1, 0}, - - {0x104ba, 3561, 1}, - - {0xab7f, 1645, 1}, - - {0x03aa, 830, 1}, - - {0x1eba, 2132, 1}, - - {0x04ba, 1171, 1}, - {0xffffffff, -1, 0}, - - {0x1fba, 2381, 1}, - - {0x2cba, 2828, 1}, - - {0x017d, 351, 1}, - - {0xa7ba, 3318, 1}, - - {0x1cba, 1588, 1}, - - {0xabba, 1822, 1}, - - {0xa77d, 1858, 1}, - - {0x104b6, 3549, 1}, - - {0xab7d, 1639, 1}, - {0xffffffff, -1, 0}, - - {0x1eb6, 2126, 1}, - - {0x04b6, 1165, 1}, - - {0x16e4c, 3924, 1}, - - {0x1fb6, 58, 2}, - - {0x2cb6, 2822, 1}, - - {0x039f, 795, 1}, - - {0xa7b6, 3312, 1}, - - {0x1cb6, 1576, 1}, - - {0xabb6, 1810, 1}, - - {0x01d5, 441, 1}, - - {0x104b4, 3543, 1}, - {0xffffffff, -1, 0}, - - {0x00d5, 141, 1}, - - {0x1eb4, 2123, 1}, - - {0x04b4, 1162, 1}, - - {0x039c, 785, 1}, - - {0x1fb4, 50, 2}, - - {0x2cb4, 2819, 1}, - {0xffffffff, -1, 0}, - - {0xa7b4, 3309, 1}, - - {0x1cb4, 1570, 1}, - - {0xabb4, 1804, 1}, - - {0x1e9a, 0, 2}, - - {0x049a, 1123, 1}, - - {0x2c67, 2726, 1}, - - {0x1f9a, 179, 2}, - - {0x2c9a, 2780, 1}, - {0xffffffff, -1, 0}, - - {0xa79a, 3285, 1}, - - {0x1c9a, 1492, 1}, - - {0xab9a, 1726, 1}, - - {0x10c9a, 3717, 1}, - - {0x1e2a, 1930, 1}, - - {0x042a, 980, 1}, - - {0x012a, 234, 1}, - - {0x1f2a, 2285, 1}, - - {0x2c2a, 2702, 1}, - - {0x03de, 857, 1}, - - {0xa72a, 3144, 1}, - - {0x10be, 2990, 1}, - - {0xa69a, 3129, 1}, - - {0x0057, 65, 1}, - - {0x104c7, 3600, 1}, - {0xffffffff, -1, 0}, - - {0x118be, 3882, 1}, - - {0x1e90a, 4014, 1}, - - {0x04c7, 1189, 1}, - - {0x01c7, 421, 1}, - - {0x1fc7, 15, 3}, - {0xffffffff, -1, 0}, - - {0x00c7, 99, 1}, - - {0x10bc, 2984, 1}, - - {0x03b0, 41, 3}, - - {0xff37, 3399, 1}, - - {0x1e92, 2087, 1}, - - {0x0492, 1111, 1}, - - {0x118bc, 3876, 1}, - - {0x1f92, 179, 2}, - - {0x2c92, 2768, 1}, - - {0xfb02, 12, 2}, - - {0xa792, 3273, 1}, - - {0x1c92, 1468, 1}, - - {0xab92, 1702, 1}, - - {0x10c92, 3693, 1}, - - {0x10ba, 2978, 1}, - {0xffffffff, -1, 0}, - - {0x03a8, 823, 1}, - - {0x1e7c, 2054, 1}, - - {0x047c, 1090, 1}, - - {0x118ba, 3870, 1}, - - {0x0537, 1366, 1}, - - {0x1e97, 34, 2}, - - {0xa692, 3117, 1}, - - {0x0197, 649, 1}, - - {0x1f97, 204, 2}, - - {0xab7c, 1636, 1}, - - {0x0398, 768, 1}, - - {0x10b6, 2966, 1}, - - {0x1c97, 1483, 1}, - - {0xab97, 1717, 1}, - - {0x10c97, 3708, 1}, - {0xffffffff, -1, 0}, - - {0x118b6, 3858, 1}, - - {0x16e5f, 3981, 1}, - - {0x1e94, 2090, 1}, - - {0x0494, 1114, 1}, - - {0x0194, 640, 1}, - - {0x1f94, 189, 2}, - - {0x2c94, 2771, 1}, - - {0x0396, 762, 1}, - - {0x10b4, 2960, 1}, - - {0x1c94, 1474, 1}, - - {0xab94, 1708, 1}, - - {0x10c94, 3699, 1}, - - {0x24be, 2522, 1}, - - {0x118b4, 3852, 1}, - - {0x10416, 3477, 1}, - - {0x1e7a, 2051, 1}, - - {0x047a, 1087, 1}, - - {0x1e16, 1900, 1}, - - {0x0416, 916, 1}, - - {0x0116, 204, 1}, - - {0xa694, 3120, 1}, - - {0x2c16, 2642, 1}, - - {0x017b, 348, 1}, - - {0xab7a, 1630, 1}, - - {0x24bc, 2516, 1}, - {0xffffffff, -1, 0}, - - {0xa77b, 3249, 1}, - - {0x1e86, 2069, 1}, - - {0xab7b, 1633, 1}, - - {0x0186, 616, 1}, - - {0x1f86, 159, 2}, - - {0x2c86, 2750, 1}, - - {0x0390, 25, 3}, - - {0xa786, 3264, 1}, - - {0x1c86, 980, 1}, - - {0xab86, 1666, 1}, - - {0x10c86, 3657, 1}, - - {0x24ba, 2510, 1}, - - {0x01d7, 444, 1}, - - {0x1fd7, 31, 3}, - - {0x10c7, 3014, 1}, - - {0x018f, 625, 1}, - - {0x1f8f, 164, 2}, - - {0xff2a, 3360, 1}, - {0xffffffff, -1, 0}, - - {0xa686, 3099, 1}, - - {0x104c4, 3591, 1}, - - {0xab8f, 1693, 1}, - - {0x10c8f, 3684, 1}, - - {0x1ec4, 2147, 1}, - - {0x24b6, 2498, 1}, - - {0x01c4, 417, 1}, - - {0x1fc4, 54, 2}, - - {0x2cc4, 2843, 1}, - - {0x00c4, 89, 1}, - - {0xa7c4, 3276, 1}, - - {0x104c2, 3585, 1}, - - {0x216e, 2489, 1}, - {0xffffffff, -1, 0}, - - {0x1ec2, 2144, 1}, - - {0x052a, 1339, 1}, - - {0x022a, 562, 1}, - - {0x1fc2, 253, 2}, - - {0x2cc2, 2840, 1}, - - {0x00c2, 83, 1}, - - {0xa7c2, 3327, 1}, - - {0x1e9e, 24, 2}, - - {0x049e, 1129, 1}, - {0xffffffff, -1, 0}, - - {0x1f9e, 199, 2}, - - {0x2c9e, 2786, 1}, - - {0x037f, 887, 1}, - - {0xa79e, 3291, 1}, - - {0x1c9e, 1504, 1}, - - {0xab9e, 1738, 1}, - - {0x10c9e, 3729, 1}, - - {0x1e8e, 2081, 1}, - - {0x048e, 1105, 1}, - - {0x018e, 453, 1}, - - {0x1f8e, 159, 2}, - - {0x2c8e, 2762, 1}, - - {0x013d, 258, 1}, - - {0x1f3d, 2318, 1}, - - {0x1041c, 3495, 1}, - - {0xab8e, 1690, 1}, - - {0x10c8e, 3681, 1}, - - {0x1e1c, 1909, 1}, - - {0x041c, 934, 1}, - - {0x011c, 213, 1}, - - {0x1f1c, 2273, 1}, - - {0x2c1c, 2660, 1}, - - {0x1e902, 3990, 1}, - - {0x1f5d, 2351, 1}, - {0xffffffff, -1, 0}, - - {0xa68e, 3111, 1}, - - {0x24c7, 2549, 1}, - - {0x1e8a, 2075, 1}, - - {0x048a, 1099, 1}, - - {0x018a, 622, 1}, - - {0x1f8a, 139, 2}, - - {0x2c8a, 2756, 1}, - - {0x03d5, 816, 1}, - - {0x1e40, 1963, 1}, - {0xffffffff, -1, 0}, - - {0xab8a, 1678, 1}, - - {0x10c8a, 3669, 1}, - - {0x16e57, 3957, 1}, - - {0x1e4a, 1978, 1}, - - {0xa740, 3174, 1}, - - {0x014a, 276, 1}, - - {0x1f4a, 2333, 1}, - {0xffffffff, -1, 0}, - - {0x004a, 24, 1}, - - {0xa74a, 3189, 1}, - - {0xa68a, 3105, 1}, - - {0x1e82, 2063, 1}, - - {0x039a, 778, 1}, - - {0x0182, 357, 1}, - - {0x1f82, 139, 2}, - - {0x2c82, 2744, 1}, - - {0xa640, 3020, 1}, - - {0xa782, 3258, 1}, - - {0x1c82, 940, 1}, - - {0xab82, 1654, 1}, - - {0x10c82, 3645, 1}, - - {0xa64a, 3035, 1}, - - {0x10c4, 3008, 1}, - - {0x0516, 1309, 1}, - - {0x0216, 535, 1}, - - {0x2167, 2468, 1}, - {0xffffffff, -1, 0}, - - {0x1e80, 2060, 1}, - - {0x0480, 1096, 1}, - - {0xa682, 3093, 1}, - - {0x1f80, 129, 2}, - - {0x2c80, 2741, 1}, - - {0x10c2, 3002, 1}, - - {0xa780, 3255, 1}, - - {0x1c80, 902, 1}, - - {0xab80, 1648, 1}, - - {0x10c80, 3639, 1}, - - {0x212a, 27, 1}, - {0xffffffff, -1, 0}, - - {0x1efa, 2228, 1}, - - {0x04fa, 1267, 1}, - - {0x01fa, 493, 1}, - - {0x1ffa, 2417, 1}, - - {0x1041a, 3489, 1}, - - {0x0392, 748, 1}, - - {0xa680, 3090, 1}, - - {0x1e1a, 1906, 1}, - - {0x041a, 928, 1}, - - {0x011a, 210, 1}, - - {0x1f1a, 2267, 1}, - - {0x2c1a, 2654, 1}, - - {0x10418, 3483, 1}, - {0xffffffff, -1, 0}, - - {0x1f5b, 2348, 1}, - - {0x1e18, 1903, 1}, - - {0x0418, 922, 1}, - - {0x0118, 207, 1}, - - {0x1f18, 2261, 1}, - - {0x2c18, 2648, 1}, - - {0x1040e, 3453, 1}, - - {0x2c63, 1861, 1}, - - {0x0397, 765, 1}, - - {0x1e0e, 1888, 1}, - - {0x040e, 1041, 1}, - - {0x010e, 192, 1}, - - {0x1f0e, 2255, 1}, - - {0x2c0e, 2618, 1}, - - {0x1e2e, 1936, 1}, - - {0x042e, 993, 1}, - - {0x012e, 240, 1}, - - {0x1f2e, 2297, 1}, - - {0x2c2e, 2714, 1}, - {0xffffffff, -1, 0}, - - {0xa72e, 3150, 1}, - - {0x0394, 755, 1}, - - {0x1040c, 3447, 1}, - {0xffffffff, -1, 0}, - - {0x24c4, 2540, 1}, - - {0x1e0c, 1885, 1}, - - {0x040c, 1035, 1}, - - {0x010c, 189, 1}, - - {0x1f0c, 2249, 1}, - - {0x2c0c, 2612, 1}, - - {0x01a9, 685, 1}, - - {0x1fa9, 214, 2}, - - {0x053d, 1384, 1}, - - {0x023d, 378, 1}, - - {0x24c2, 2534, 1}, - - {0x1ca9, 1537, 1}, - - {0xaba9, 1771, 1}, - - {0x10ca9, 3762, 1}, - - {0x10408, 3435, 1}, - - {0x051c, 1318, 1}, - - {0x021c, 544, 1}, - - {0x1e08, 1879, 1}, - - {0x0408, 1023, 1}, - - {0x0108, 183, 1}, - - {0x1f08, 2237, 1}, - - {0x2c08, 2600, 1}, - - {0x0386, 733, 1}, - - {0x10414, 3471, 1}, - {0xffffffff, -1, 0}, - - {0x13fa, 1846, 1}, - - {0x1e14, 1897, 1}, - - {0x0414, 909, 1}, - - {0x0114, 201, 1}, - {0xffffffff, -1, 0}, - - {0x2c14, 2636, 1}, - - {0x0540, 1393, 1}, - - {0x1f6d, 2372, 1}, - - {0x2c6d, 607, 1}, - - {0x038f, 842, 1}, - - {0x10406, 3429, 1}, - - {0x054a, 1423, 1}, - - {0x024a, 595, 1}, - - {0x1e06, 1876, 1}, - - {0x0406, 1017, 1}, - - {0x0106, 180, 1}, - - {0x10404, 3423, 1}, - - {0x2c06, 2594, 1}, - {0xffffffff, -1, 0}, - - {0x1e04, 1873, 1}, - - {0x0404, 1011, 1}, - - {0x0104, 177, 1}, - {0xffffffff, -1, 0}, - - {0x2c04, 2588, 1}, - - {0x1ee0, 2189, 1}, - - {0x04e0, 1228, 1}, - - {0x01e0, 459, 1}, - - {0x10400, 3411, 1}, - - {0x2ce0, 2885, 1}, - - {0x03c2, 806, 1}, - - {0x1e00, 1867, 1}, - - {0x0400, 999, 1}, - - {0x0100, 171, 1}, - - {0x0179, 345, 1}, - - {0x2c00, 2576, 1}, - - {0x16e5d, 3975, 1}, - - {0x039e, 792, 1}, - - {0xa779, 3246, 1}, - - {0x10426, 3525, 1}, - - {0xab79, 1627, 1}, - {0xffffffff, -1, 0}, - - {0x1e26, 1924, 1}, - - {0x0426, 968, 1}, - - {0x0126, 228, 1}, - - {0xfb16, 125, 2}, - - {0x2c26, 2690, 1}, - - {0x038e, 839, 1}, - - {0xa726, 3138, 1}, - - {0x16e40, 3888, 1}, - - {0x1ef4, 2219, 1}, - - {0x04f4, 1258, 1}, - - {0x01f4, 487, 1}, - - {0x1ff4, 101, 2}, - - {0x16e4a, 3918, 1}, - - {0x051a, 1315, 1}, - - {0x021a, 541, 1}, - - {0x10a9, 2927, 1}, - - {0x1f4d, 2342, 1}, - - {0xff2e, 3372, 1}, - - {0x004d, 34, 1}, - {0xffffffff, -1, 0}, - - {0x118a9, 3819, 1}, - - {0x0518, 1312, 1}, - - {0x0218, 538, 1}, - - {0x1e8c, 2078, 1}, - - {0x048c, 1102, 1}, - - {0x038a, 742, 1}, - - {0x1f8c, 149, 2}, - - {0x2c8c, 2759, 1}, - {0xffffffff, -1, 0}, - - {0x050e, 1297, 1}, - - {0x020e, 523, 1}, - - {0xab8c, 1684, 1}, - - {0x10c8c, 3675, 1}, - - {0x104bf, 3576, 1}, - - {0x052e, 1345, 1}, - - {0x022e, 568, 1}, - - {0x1e2c, 1933, 1}, - - {0x042c, 987, 1}, - - {0x012c, 237, 1}, - - {0x1f2c, 2291, 1}, - - {0x2c2c, 2708, 1}, - - {0xa68c, 3108, 1}, - - {0xa72c, 3147, 1}, - - {0x1cbf, 1597, 1}, - - {0xabbf, 1837, 1}, - - {0x050c, 1294, 1}, - - {0x020c, 520, 1}, - - {0x1e28, 1927, 1}, - - {0x0428, 974, 1}, - - {0x0128, 231, 1}, - - {0x1f28, 2279, 1}, - - {0x2c28, 2696, 1}, - - {0x1fab, 224, 2}, - - {0xa728, 3141, 1}, - {0xffffffff, -1, 0}, - - {0xa7ab, 631, 1}, - - {0x1cab, 1543, 1}, - - {0xabab, 1777, 1}, - - {0x10cab, 3768, 1}, - - {0x16e5b, 3969, 1}, - - {0x10424, 3519, 1}, - - {0x0508, 1288, 1}, - - {0x0208, 514, 1}, - - {0x1e24, 1921, 1}, - - {0x0424, 962, 1}, - - {0x0124, 225, 1}, - {0xffffffff, -1, 0}, - - {0x2c24, 2684, 1}, - - {0x104b7, 3552, 1}, - - {0xa724, 3135, 1}, - - {0x0514, 1306, 1}, - - {0x0214, 532, 1}, - - {0x03fa, 893, 1}, - - {0x01b7, 706, 1}, - - {0x1fb7, 10, 3}, - - {0x104b3, 3540, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1cb7, 1579, 1}, - - {0xabb7, 1813, 1}, - - {0x01b3, 402, 1}, - - {0x1fb3, 62, 2}, - - {0x0506, 1285, 1}, - - {0x0206, 511, 1}, - - {0xa7b3, 3330, 1}, - - {0x1cb3, 1567, 1}, - - {0xabb3, 1801, 1}, - - {0x10422, 3513, 1}, - - {0x0504, 1282, 1}, - - {0x0204, 508, 1}, - - {0x1e22, 1918, 1}, - - {0x0422, 954, 1}, - - {0x0122, 222, 1}, - - {0xff26, 3348, 1}, - - {0x2c22, 2678, 1}, - - {0xff35, 3393, 1}, - - {0xa722, 3132, 1}, - - {0x104b1, 3534, 1}, - - {0x0143, 267, 1}, - - {0x0500, 1276, 1}, - - {0x0200, 502, 1}, - - {0x0043, 6, 1}, - - {0x01b1, 697, 1}, - {0xffffffff, -1, 0}, - - {0x2163, 2456, 1}, - {0xffffffff, -1, 0}, - - {0xa7b1, 688, 1}, - - {0x1cb1, 1561, 1}, - - {0xabb1, 1795, 1}, - - {0x10cb1, 3786, 1}, - - {0x0526, 1333, 1}, - - {0x0226, 556, 1}, - - {0x0535, 1360, 1}, - - {0x10bf, 2993, 1}, - - {0x03a9, 826, 1}, - - {0x01a7, 393, 1}, - - {0x1fa7, 244, 2}, - - {0x1e916, 4050, 1}, - - {0x118bf, 3885, 1}, - {0xffffffff, -1, 0}, - - {0x1ca7, 1531, 1}, - - {0xaba7, 1765, 1}, - - {0x10ca7, 3756, 1}, - - {0x054d, 1432, 1}, - - {0x1f6b, 2366, 1}, - - {0x2c6b, 2732, 1}, - - {0x10ab, 2933, 1}, - - {0x1e48, 1975, 1}, - {0xffffffff, -1, 0}, - - {0xff2c, 3366, 1}, - - {0x1f48, 2327, 1}, - - {0x118ab, 3825, 1}, - - {0x0048, 21, 1}, - - {0xa748, 3186, 1}, - - {0x1e88, 2072, 1}, - - {0x1f69, 2360, 1}, - - {0x2c69, 2729, 1}, - - {0x1f88, 129, 2}, - - {0x2c88, 2753, 1}, - {0xffffffff, -1, 0}, - - {0xff28, 3354, 1}, - - {0x1c88, 3035, 1}, - - {0xab88, 1672, 1}, - - {0x10c88, 3663, 1}, - - {0x1e42, 1966, 1}, - - {0xa648, 3032, 1}, - - {0x052c, 1342, 1}, - - {0x022c, 565, 1}, - - {0x10b7, 2969, 1}, - - {0x0042, 3, 1}, - - {0xa742, 3177, 1}, - {0xffffffff, -1, 0}, - - {0xa688, 3102, 1}, - - {0x118b7, 3861, 1}, - - {0x216d, 2486, 1}, - - {0x10b3, 2957, 1}, - - {0xff24, 3342, 1}, - - {0x0528, 1336, 1}, - - {0x0228, 559, 1}, - - {0x03e0, 860, 1}, - - {0x118b3, 3849, 1}, - - {0x1e56, 1996, 1}, - - {0xa642, 3023, 1}, - - {0x0156, 294, 1}, - - {0x1f56, 62, 3}, - - {0x16e4d, 3927, 1}, - - {0x0056, 62, 1}, - - {0xa756, 3207, 1}, - - {0x24bf, 2525, 1}, - - {0x1f59, 2345, 1}, - - {0x1e4e, 1984, 1}, - - {0x0059, 71, 1}, - - {0x014e, 282, 1}, - - {0x0524, 1330, 1}, - - {0x0224, 553, 1}, - - {0x004e, 37, 1}, - - {0xa74e, 3195, 1}, - - {0x10b1, 2951, 1}, - - {0x042d, 990, 1}, - - {0xa656, 3054, 1}, - - {0x1f2d, 2294, 1}, - - {0x2c2d, 2711, 1}, - - {0x118b1, 3843, 1}, - - {0xff22, 3336, 1}, - - {0x03f4, 768, 1}, - - {0x042f, 996, 1}, - - {0x1e91c, 4068, 1}, - - {0x1f2f, 2300, 1}, - - {0xa64e, 3042, 1}, - - {0x104ce, 3621, 1}, - - {0x10a7, 2921, 1}, - - {0x2126, 826, 1}, - - {0x1ece, 2162, 1}, - - {0xfb14, 109, 2}, - {0xffffffff, -1, 0}, - - {0x118a7, 3813, 1}, - - {0x2cce, 2858, 1}, - - {0x00ce, 120, 1}, - - {0x104b9, 3558, 1}, - - {0x038c, 836, 1}, - - {0x0522, 1327, 1}, - - {0x0222, 550, 1}, - - {0xff33, 3387, 1}, - - {0x24b7, 2501, 1}, - - {0x1fb9, 2426, 1}, - - {0xfb06, 29, 2}, - - {0x0543, 1402, 1}, - - {0x0243, 354, 1}, - - {0x1cb9, 1585, 1}, - - {0xabb9, 1819, 1}, - - {0x1e54, 1993, 1}, - - {0xfb04, 5, 3}, - - {0x0154, 291, 1}, - - {0x1f54, 57, 3}, - - {0xff31, 3381, 1}, - - {0x0054, 56, 1}, - - {0xa754, 3204, 1}, - {0xffffffff, -1, 0}, - - {0x1e52, 1990, 1}, - - {0x0533, 1354, 1}, - - {0x0152, 288, 1}, - - {0x1f52, 52, 3}, - - {0xfb00, 4, 2}, - - {0x0052, 49, 1}, - - {0xa752, 3201, 1}, - - {0x03ab, 833, 1}, - {0xffffffff, -1, 0}, - - {0x1e50, 1987, 1}, - - {0xa654, 3051, 1}, - - {0x0150, 285, 1}, - - {0x1f50, 84, 2}, - - {0x0531, 1348, 1}, - - {0x0050, 43, 1}, - - {0xa750, 3198, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xa652, 3048, 1}, - - {0x0548, 1417, 1}, - - {0x0248, 592, 1}, - - {0x10420, 3507, 1}, - - {0x013f, 261, 1}, - - {0x1f3f, 2324, 1}, - - {0x1e20, 1915, 1}, - - {0x0420, 947, 1}, - - {0x0120, 219, 1}, - - {0xa650, 3045, 1}, - - {0x2c20, 2672, 1}, - {0xffffffff, -1, 0}, - - {0x16e43, 3897, 1}, - {0xffffffff, -1, 0}, - - {0x1e91a, 4062, 1}, - {0xffffffff, -1, 0}, - - {0x1041e, 3501, 1}, - {0xffffffff, -1, 0}, - - {0x0542, 1399, 1}, - - {0x1e1e, 1912, 1}, - - {0x041e, 940, 1}, - - {0x011e, 216, 1}, - - {0x1e918, 4056, 1}, - - {0x2c1e, 2666, 1}, - - {0x10412, 3465, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e12, 1894, 1}, - - {0x0412, 902, 1}, - - {0x0112, 198, 1}, - - {0x1e90e, 4026, 1}, - - {0x2c12, 2630, 1}, - {0xffffffff, -1, 0}, - - {0x10410, 3459, 1}, - - {0xff2d, 3369, 1}, - - {0x0556, 1459, 1}, - - {0x1e10, 1891, 1}, - - {0x0410, 896, 1}, - - {0x0110, 195, 1}, - {0xffffffff, -1, 0}, - - {0x2c10, 2624, 1}, - - {0xff2f, 3375, 1}, - - {0x10b9, 2975, 1}, - - {0x16e48, 3912, 1}, - - {0x054e, 1435, 1}, - - {0x024e, 601, 1}, - - {0x1e90c, 4020, 1}, - - {0x118b9, 3867, 1}, - {0xffffffff, -1, 0}, - - {0x104ca, 3609, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1eca, 2156, 1}, - - {0x03a7, 820, 1}, - - {0x01ca, 425, 1}, - - {0x1fca, 2393, 1}, - - {0x2cca, 2852, 1}, - - {0x00ca, 108, 1}, - - {0x104c8, 3603, 1}, - {0xffffffff, -1, 0}, - - {0x16e42, 3894, 1}, - - {0x1ec8, 2153, 1}, - - {0x1e908, 4008, 1}, - - {0x01c8, 421, 1}, - - {0x1fc8, 2387, 1}, - - {0x2cc8, 2849, 1}, - - {0x00c8, 102, 1}, - - {0x1e6c, 2030, 1}, - - {0x046c, 1066, 1}, - - {0x016c, 327, 1}, - - {0x1f6c, 2369, 1}, - - {0x1e914, 4044, 1}, - - {0x104c6, 3597, 1}, - - {0xa76c, 3240, 1}, - - {0x0388, 736, 1}, - - {0x1ec6, 2150, 1}, - - {0x216b, 2480, 1}, - - {0x16e56, 3954, 1}, - - {0x1fc6, 67, 2}, - - {0x2cc6, 2846, 1}, - - {0x00c6, 96, 1}, - - {0xa7c6, 1864, 1}, - - {0x16e59, 3963, 1}, - - {0x1e906, 4002, 1}, - - {0x0554, 1453, 1}, - - {0xa66c, 3087, 1}, - - {0x16e4e, 3930, 1}, - - {0x2169, 2474, 1}, - - {0x24ce, 2570, 1}, - - {0x1e904, 3996, 1}, - - {0x104c5, 3594, 1}, - {0xffffffff, -1, 0}, - - {0x0552, 1447, 1}, - {0xffffffff, -1, 0}, - - {0x04c5, 1186, 1}, - - {0x01c5, 417, 1}, - {0xffffffff, -1, 0}, - - {0x24b9, 2507, 1}, - - {0x00c5, 92, 1}, - - {0xa7c5, 682, 1}, - - {0x1e900, 3984, 1}, - - {0x0550, 1441, 1}, - - {0x104c0, 3579, 1}, - - {0x104b5, 3546, 1}, - {0xffffffff, -1, 0}, - - {0x1ec0, 2141, 1}, - - {0x04c0, 1201, 1}, - {0xffffffff, -1, 0}, - - {0x01b5, 405, 1}, - - {0x2cc0, 2837, 1}, - - {0x00c0, 77, 1}, - - {0x00b5, 785, 1}, - - {0x053f, 1390, 1}, - - {0x1cb5, 1573, 1}, - - {0xabb5, 1807, 1}, - - {0x1fad, 234, 2}, - - {0x0520, 1324, 1}, - - {0x0220, 381, 1}, - - {0xa7ad, 661, 1}, - - {0x1cad, 1549, 1}, - - {0xabad, 1783, 1}, - - {0x10cad, 3774, 1}, - - {0x1efc, 2231, 1}, - - {0x04fc, 1270, 1}, - - {0x01fc, 496, 1}, - - {0x1ffc, 96, 2}, - - {0x16e54, 3948, 1}, - - {0x1fa5, 234, 2}, - {0xffffffff, -1, 0}, - - {0x051e, 1321, 1}, - - {0x021e, 547, 1}, - - {0x1ca5, 1525, 1}, - - {0xaba5, 1759, 1}, - - {0x10ca5, 3750, 1}, - - {0x16e52, 3942, 1}, - - {0x01af, 399, 1}, - - {0x1faf, 244, 2}, - - {0x0512, 1303, 1}, - - {0x0212, 529, 1}, - {0xffffffff, -1, 0}, - - {0x1caf, 1555, 1}, - - {0xabaf, 1789, 1}, - - {0x10caf, 3780, 1}, - - {0x16e50, 3936, 1}, - - {0x1fa3, 224, 2}, - {0xffffffff, -1, 0}, - - {0x0510, 1300, 1}, - - {0x0210, 526, 1}, - - {0x1ca3, 1519, 1}, - - {0xaba3, 1753, 1}, - - {0x10ca3, 3744, 1}, - - {0x0429, 977, 1}, - - {0x1fa1, 214, 2}, - - {0x1f29, 2282, 1}, - - {0x2c29, 2699, 1}, - {0xffffffff, -1, 0}, - - {0x1ca1, 1513, 1}, - - {0xaba1, 1747, 1}, - - {0x10ca1, 3738, 1}, - - {0x1e6a, 2027, 1}, - - {0x046a, 1063, 1}, - - {0x016a, 324, 1}, - - {0x1f6a, 2363, 1}, - - {0x1e46, 1972, 1}, - {0xffffffff, -1, 0}, - - {0xa76a, 3237, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x0046, 15, 1}, - - {0xa746, 3183, 1}, - - {0x10c5, 3011, 1}, - {0xffffffff, -1, 0}, - - {0x1e68, 2024, 1}, - - {0x0468, 1060, 1}, - - {0x0168, 321, 1}, - - {0x1f68, 2357, 1}, - {0xffffffff, -1, 0}, - - {0xa66a, 3084, 1}, - - {0xa768, 3234, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xa646, 3029, 1}, - - {0x10c0, 2996, 1}, - - {0x10b5, 2963, 1}, - - {0x24ca, 2558, 1}, - - {0x13fc, 1852, 1}, - - {0x1e44, 1969, 1}, - {0xffffffff, -1, 0}, - - {0x118b5, 3855, 1}, - - {0x10ad, 2939, 1}, - - {0xa668, 3081, 1}, - - {0x0044, 9, 1}, - - {0xa744, 3180, 1}, - - {0x24c8, 2552, 1}, - - {0x118ad, 3831, 1}, - {0xffffffff, -1, 0}, - - {0x1e64, 2018, 1}, - - {0x0464, 1054, 1}, - - {0x0164, 315, 1}, - {0xffffffff, -1, 0}, - - {0x2c64, 676, 1}, - - {0x10a5, 2915, 1}, - - {0xa764, 3228, 1}, - {0xffffffff, -1, 0}, - - {0xa644, 3026, 1}, - {0xffffffff, -1, 0}, - - {0x118a5, 3807, 1}, - - {0x24c6, 2546, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x10af, 2945, 1}, - - {0x1e32, 1942, 1}, - {0xffffffff, -1, 0}, - - {0x0132, 243, 1}, - - {0xa664, 3075, 1}, - - {0x118af, 3837, 1}, - - {0x104cb, 3612, 1}, - - {0xa732, 3153, 1}, - - {0x10a3, 2909, 1}, - {0xffffffff, -1, 0}, - - {0x04cb, 1195, 1}, - - {0x01cb, 425, 1}, - - {0x1fcb, 2396, 1}, - - {0x118a3, 3801, 1}, - - {0x00cb, 111, 1}, - - {0x24c5, 2543, 1}, - - {0x10a1, 2903, 1}, - {0xffffffff, -1, 0}, - - {0x1e62, 2015, 1}, - - {0x0462, 1050, 1}, - - {0x0162, 312, 1}, - - {0x118a1, 3795, 1}, - - {0x2c62, 658, 1}, - {0xffffffff, -1, 0}, - - {0xa762, 3225, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x24c0, 2528, 1}, - - {0x1e60, 2011, 1}, - - {0x0460, 1047, 1}, - - {0x0160, 309, 1}, - {0xffffffff, -1, 0}, - - {0x2c60, 2717, 1}, - - {0xff29, 3357, 1}, - - {0xa760, 3222, 1}, - {0xffffffff, -1, 0}, - - {0xa662, 3072, 1}, - - {0x1ee2, 2192, 1}, - - {0x04e2, 1231, 1}, - - {0x01e2, 462, 1}, - - {0x1fe2, 36, 3}, - - {0x2ce2, 2888, 1}, - - {0x042b, 984, 1}, - {0xffffffff, -1, 0}, - - {0x1f2b, 2288, 1}, - - {0x2c2b, 2705, 1}, - - {0xa660, 3069, 1}, - {0xffffffff, -1, 0}, - - {0x216c, 2483, 1}, - - {0x1eda, 2180, 1}, - - {0x04da, 1219, 1}, - - {0x104bd, 3570, 1}, - - {0x1fda, 2399, 1}, - - {0x2cda, 2876, 1}, - - {0x00da, 153, 1}, - - {0x1ed8, 2177, 1}, - - {0x04d8, 1216, 1}, - {0xffffffff, -1, 0}, - - {0x1fd8, 2429, 1}, - - {0x2cd8, 2873, 1}, - - {0x00d8, 147, 1}, - - {0x1cbd, 1591, 1}, - - {0xabbd, 1831, 1}, - - {0x0546, 1411, 1}, - - {0x0246, 589, 1}, - - {0x1ed6, 2174, 1}, - - {0x04d6, 1213, 1}, - {0xffffffff, -1, 0}, - - {0x1fd6, 76, 2}, - - {0x2cd6, 2870, 1}, - - {0x00d6, 144, 1}, - - {0x104d2, 3633, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1ed2, 2168, 1}, - - {0x04d2, 1207, 1}, - - {0x10427, 3528, 1}, - - {0x1fd2, 20, 3}, - - {0x2cd2, 2864, 1}, - - {0x00d2, 132, 1}, - - {0x0427, 971, 1}, - - {0x104d0, 3627, 1}, - {0xffffffff, -1, 0}, - - {0x2c27, 2693, 1}, - - {0x1ed0, 2165, 1}, - - {0x04d0, 1204, 1}, - - {0x0544, 1405, 1}, - - {0x0244, 694, 1}, - - {0x2cd0, 2861, 1}, - - {0x00d0, 126, 1}, - - {0x03a5, 813, 1}, - - {0x104cd, 3618, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xff32, 3384, 1}, - - {0x04cd, 1198, 1}, - - {0x01cd, 429, 1}, - {0xffffffff, -1, 0}, - - {0x104c3, 3588, 1}, - - {0x00cd, 117, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x04c3, 1183, 1}, - - {0x104bb, 3564, 1}, - - {0x1fc3, 71, 2}, - - {0x16e46, 3906, 1}, - - {0x00c3, 86, 1}, - - {0x03a3, 806, 1}, - {0xffffffff, -1, 0}, - - {0x1fbb, 2384, 1}, - - {0x104cc, 3615, 1}, - - {0x0532, 1351, 1}, - - {0x0232, 574, 1}, - - {0x1ecc, 2159, 1}, - - {0xabbb, 1825, 1}, - - {0x03a1, 802, 1}, - - {0x1fcc, 71, 2}, - - {0x2ccc, 2855, 1}, - - {0x00cc, 114, 1}, - - {0x019d, 670, 1}, - - {0x1f9d, 194, 2}, - - {0x1e78, 2048, 1}, - - {0x0478, 1084, 1}, - - {0x0178, 168, 1}, - - {0x1c9d, 1501, 1}, - - {0xab9d, 1735, 1}, - - {0x10c9d, 3726, 1}, - {0xffffffff, -1, 0}, - - {0x16e44, 3900, 1}, - - {0xab78, 1624, 1}, - - {0x1e9b, 2011, 1}, - - {0x10bd, 2987, 1}, - {0xffffffff, -1, 0}, - - {0x1f9b, 184, 2}, - - {0xff2b, 3363, 1}, - {0xffffffff, -1, 0}, - - {0x118bd, 3879, 1}, - - {0x1c9b, 1495, 1}, - - {0xab9b, 1729, 1}, - - {0x10c9b, 3720, 1}, - - {0x216a, 2477, 1}, - - {0x24cb, 2561, 1}, - - {0x1e99, 42, 2}, - - {0x1e920, 4080, 1}, - {0xffffffff, -1, 0}, - - {0x1f99, 174, 2}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1c99, 1489, 1}, - - {0xab99, 1723, 1}, - - {0x10c99, 3714, 1}, - {0xffffffff, -1, 0}, - - {0x2168, 2471, 1}, - - {0x0193, 634, 1}, - - {0x1f93, 184, 2}, - - {0x1e91e, 4074, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1c93, 1471, 1}, - - {0xab93, 1705, 1}, - - {0x10c93, 3696, 1}, - - {0x0191, 369, 1}, - - {0x1f91, 174, 2}, - - {0x1e912, 4038, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1c91, 1465, 1}, - - {0xab91, 1699, 1}, - - {0x10c91, 3690, 1}, - {0xffffffff, -1, 0}, - - {0x10cd, 3017, 1}, - - {0xff27, 3351, 1}, - - {0x1e910, 4032, 1}, - - {0x0187, 363, 1}, - - {0x1f87, 164, 2}, - - {0x0055, 59, 1}, - - {0x2164, 2459, 1}, - - {0x10c3, 3005, 1}, - - {0x1c87, 1050, 1}, - - {0xab87, 1669, 1}, - - {0x10c87, 3660, 1}, - - {0x0145, 270, 1}, - - {0x10bb, 2981, 1}, - {0xffffffff, -1, 0}, - - {0x0045, 12, 1}, - - {0x24bd, 2519, 1}, - {0xffffffff, -1, 0}, - - {0x118bb, 3873, 1}, - - {0x1e72, 2039, 1}, - - {0x0472, 1075, 1}, - - {0x0172, 336, 1}, - - {0x2132, 2444, 1}, - - {0x2c72, 2735, 1}, - - {0x1e70, 2036, 1}, - - {0x0470, 1072, 1}, - - {0x0170, 333, 1}, - - {0xab72, 1606, 1}, - - {0x2c70, 610, 1}, - - {0x1e66, 2021, 1}, - - {0x0466, 1057, 1}, - - {0x0166, 318, 1}, - - {0xab70, 1600, 1}, - {0xffffffff, -1, 0}, - - {0x1e3a, 1954, 1}, - - {0xa766, 3231, 1}, - - {0x1e5a, 2002, 1}, - - {0x1f3a, 2309, 1}, - - {0x015a, 300, 1}, - - {0x2162, 2453, 1}, - - {0xa73a, 3165, 1}, - - {0x005a, 74, 1}, - - {0xa75a, 3213, 1}, - - {0x03e2, 863, 1}, - {0xffffffff, -1, 0}, - - {0x104cf, 3624, 1}, - - {0x1e58, 1999, 1}, - - {0xa666, 3078, 1}, - - {0x0158, 297, 1}, - - {0x2160, 2447, 1}, - - {0x01cf, 432, 1}, - - {0x0058, 68, 1}, - - {0xa758, 3210, 1}, - - {0x00cf, 123, 1}, - - {0xa65a, 3060, 1}, - - {0x03da, 851, 1}, - - {0x24cd, 2567, 1}, - - {0x1eec, 2207, 1}, - - {0x04ec, 1246, 1}, - - {0x01ec, 477, 1}, - - {0x1fec, 2441, 1}, - - {0x03d8, 848, 1}, - - {0x212b, 92, 1}, - - {0x24c3, 2537, 1}, - - {0xa658, 3057, 1}, - - {0x1edc, 2183, 1}, - - {0x04dc, 1222, 1}, - {0xffffffff, -1, 0}, - - {0x24bb, 2513, 1}, - - {0x2cdc, 2879, 1}, - - {0x00dc, 159, 1}, - - {0x03d6, 798, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x24cc, 2564, 1}, - - {0x1eea, 2204, 1}, - - {0x04ea, 1243, 1}, - - {0x01ea, 474, 1}, - - {0x1fea, 2411, 1}, - - {0x1ee8, 2201, 1}, - - {0x04e8, 1240, 1}, - - {0x01e8, 471, 1}, - - {0x1fe8, 2435, 1}, - - {0x1ee6, 2198, 1}, - - {0x04e6, 1237, 1}, - - {0x01e6, 468, 1}, - - {0x1fe6, 88, 2}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x03d0, 748, 1}, - - {0x1ee4, 2195, 1}, - - {0x04e4, 1234, 1}, - - {0x01e4, 465, 1}, - - {0x1fe4, 80, 2}, - - {0x104c9, 3606, 1}, - - {0x104c1, 3582, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x04c9, 1192, 1}, - - {0x04c1, 1180, 1}, - - {0x1fc9, 2390, 1}, - - {0x1f95, 194, 2}, - - {0x00c9, 105, 1}, - - {0x00c1, 80, 1}, - {0xffffffff, -1, 0}, - - {0x1c95, 1477, 1}, - - {0xab95, 1711, 1}, - - {0x10c95, 3702, 1}, - - {0x018b, 366, 1}, - - {0x1f8b, 144, 2}, - - {0x0555, 1456, 1}, - - {0x0587, 105, 2}, - - {0xa78b, 3267, 1}, - {0xffffffff, -1, 0}, - - {0xab8b, 1681, 1}, - - {0x10c8b, 3672, 1}, - - {0x1e76, 2045, 1}, - - {0x0476, 1081, 1}, - - {0x0176, 342, 1}, - - {0x0545, 1408, 1}, - - {0x0245, 703, 1}, - {0xffffffff, -1, 0}, - - {0x039d, 789, 1}, - - {0x1f83, 144, 2}, - - {0xab76, 1618, 1}, - {0xffffffff, -1, 0}, - - {0xff3a, 3408, 1}, - - {0x1c83, 950, 1}, - - {0xab83, 1657, 1}, - - {0x10c83, 3648, 1}, - - {0x0141, 264, 1}, - - {0x0181, 613, 1}, - - {0x1f81, 134, 2}, - - {0x0041, 0, 1}, - {0xffffffff, -1, 0}, - - {0x039b, 782, 1}, - - {0x1c81, 909, 1}, - - {0xab81, 1651, 1}, - - {0x10c81, 3642, 1}, - - {0x0149, 46, 2}, - - {0x1f49, 2330, 1}, - {0xffffffff, -1, 0}, - - {0x0049, 4086, 1}, - - {0x053a, 1375, 1}, - - {0x023a, 2720, 1}, - - {0x1e7e, 2057, 1}, - - {0x047e, 1093, 1}, - - {0x0399, 773, 1}, - - {0x1e5e, 2008, 1}, - - {0x2c7e, 580, 1}, - - {0x015e, 306, 1}, - - {0xa77e, 3252, 1}, - - {0x16e55, 3951, 1}, - - {0xab7e, 1642, 1}, - - {0xa75e, 3219, 1}, - - {0x104d1, 3630, 1}, - - {0x1e5c, 2005, 1}, - - {0x0393, 752, 1}, - - {0x015c, 303, 1}, - {0xffffffff, -1, 0}, - - {0x01d1, 435, 1}, - - {0x16e45, 3903, 1}, - - {0xa75c, 3216, 1}, - - {0x00d1, 129, 1}, - - {0x10421, 3510, 1}, - - {0x0391, 745, 1}, - - {0xa65e, 3066, 1}, - - {0x1e3e, 1960, 1}, - - {0x0421, 950, 1}, - {0xffffffff, -1, 0}, - - {0x1f3e, 2321, 1}, - - {0x2c21, 2675, 1}, - {0xffffffff, -1, 0}, - - {0xa73e, 3171, 1}, - - {0xa65c, 3063, 1}, - - {0x10c1, 2999, 1}, - - {0x1e36, 1948, 1}, - - {0x1e38, 1951, 1}, - - {0x0136, 249, 1}, - - {0x24cf, 2573, 1}, - - {0x1f38, 2303, 1}, - {0xffffffff, -1, 0}, - - {0xa736, 3159, 1}, - - {0xa738, 3162, 1}, - {0xffffffff, -1, 0}, - - {0x0345, 773, 1}, - - {0x1e34, 1945, 1}, - - {0x16e5a, 3966, 1}, - - {0x0134, 246, 1}, - - {0x1041d, 3498, 1}, - - {0x013b, 255, 1}, - - {0x1f3b, 2312, 1}, - - {0xa734, 3156, 1}, - - {0x041d, 937, 1}, - - {0x0372, 718, 1}, - - {0x1f1d, 2276, 1}, - - {0x2c1d, 2663, 1}, - - {0x16e58, 3960, 1}, - - {0x1041b, 3492, 1}, - - {0x0370, 715, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x041b, 931, 1}, - - {0x10419, 3486, 1}, - - {0x1f1b, 2270, 1}, - - {0x2c1b, 2657, 1}, - {0xffffffff, -1, 0}, - - {0x0419, 925, 1}, - - {0x10417, 3480, 1}, - - {0x1f19, 2264, 1}, - - {0x2c19, 2651, 1}, - {0xffffffff, -1, 0}, - - {0x0417, 919, 1}, - - {0x10415, 3474, 1}, - - {0x10413, 3468, 1}, - - {0x2c17, 2645, 1}, - {0xffffffff, -1, 0}, - - {0x0415, 913, 1}, - - {0x0413, 906, 1}, - - {0x2166, 2465, 1}, - - {0x2c15, 2639, 1}, - - {0x2c13, 2633, 1}, - - {0x0053, 52, 1}, - - {0x03cf, 845, 1}, - - {0x1efe, 2234, 1}, - - {0x04fe, 1273, 1}, - - {0x01fe, 499, 1}, - - {0x1040f, 3456, 1}, - {0xffffffff, -1, 0}, - - {0x24c9, 2555, 1}, - - {0x24c1, 2531, 1}, - - {0x040f, 1044, 1}, - - {0x03ec, 878, 1}, - - {0x1f0f, 2258, 1}, - - {0x2c0f, 2621, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1040d, 3450, 1}, - - {0x0541, 1396, 1}, - - {0x0241, 586, 1}, - - {0x03dc, 854, 1}, - - {0x040d, 1038, 1}, - - {0x1040b, 3444, 1}, - - {0x1f0d, 2252, 1}, - - {0x2c0d, 2615, 1}, - {0xffffffff, -1, 0}, - - {0x040b, 1032, 1}, - - {0x0549, 1420, 1}, - - {0x1f0b, 2246, 1}, - - {0x2c0b, 2609, 1}, - - {0x10409, 3438, 1}, - - {0x03ea, 875, 1}, - - {0x0139, 252, 1}, - - {0x1f39, 2306, 1}, - - {0x0409, 1026, 1}, - - {0x03e8, 872, 1}, - - {0x1f09, 2240, 1}, - - {0x2c09, 2603, 1}, - - {0x10405, 3426, 1}, - - {0x03e6, 869, 1}, - - {0xff21, 3333, 1}, - - {0x1f4b, 2336, 1}, - - {0x0405, 1014, 1}, - - {0x004b, 27, 1}, - - {0x10403, 3420, 1}, - - {0x2c05, 2591, 1}, - - {0x03e4, 866, 1}, - - {0x104d3, 3636, 1}, - - {0x0403, 1008, 1}, - - {0xff36, 3396, 1}, - - {0xff38, 3402, 1}, - - {0x2c03, 2585, 1}, - - {0x01d3, 438, 1}, - - {0x1fd3, 25, 3}, - - {0x0395, 758, 1}, - - {0x00d3, 135, 1}, - - {0x0051, 46, 1}, - - {0x053e, 1387, 1}, - - {0x023e, 2723, 1}, - - {0xff34, 3390, 1}, - - {0x16e41, 3891, 1}, - - {0x10401, 3414, 1}, - - {0x1ef0, 2213, 1}, - - {0x04f0, 1252, 1}, - - {0x01f0, 20, 2}, - - {0x0401, 1002, 1}, - - {0x0536, 1363, 1}, - - {0x0538, 1369, 1}, - - {0x2c01, 2579, 1}, - - {0x16e49, 3915, 1}, - - {0x004f, 40, 1}, - {0xffffffff, -1, 0}, - - {0x0376, 721, 1}, - - {0x1eee, 2210, 1}, - - {0x04ee, 1249, 1}, - - {0x01ee, 480, 1}, - - {0x0534, 1357, 1}, - {0xffffffff, -1, 0}, - - {0x053b, 1378, 1}, - - {0x023b, 577, 1}, - - {0x16e5e, 3978, 1}, - - {0x1ef8, 2225, 1}, - - {0x04f8, 1264, 1}, - - {0x01f8, 490, 1}, - - {0x1ff8, 2405, 1}, - - {0x1ed4, 2171, 1}, - - {0x04d4, 1210, 1}, - {0xffffffff, -1, 0}, - - {0x16e5c, 3972, 1}, - - {0x2cd4, 2867, 1}, - - {0x00d4, 138, 1}, - - {0x2183, 2495, 1}, - - {0x1ef6, 2222, 1}, - - {0x04f6, 1261, 1}, - - {0x01f6, 372, 1}, - - {0x1ff6, 92, 2}, - - {0x1f8d, 154, 2}, - - {0x0147, 273, 1}, - {0xffffffff, -1, 0}, - - {0xa78d, 643, 1}, - - {0x0047, 18, 1}, - - {0xab8d, 1687, 1}, - - {0x10c8d, 3678, 1}, - - {0x1e74, 2042, 1}, - - {0x0474, 1078, 1}, - - {0x0174, 339, 1}, - - {0x1e3c, 1957, 1}, - - {0x0553, 1450, 1}, - - {0x1e30, 1939, 1}, - - {0x1f3c, 2315, 1}, - - {0x0130, 261, 2}, - - {0xab74, 1612, 1}, - - {0xa73c, 3168, 1}, - - {0x10425, 3522, 1}, - - {0x03d1, 768, 1}, - - {0x10423, 3516, 1}, - {0xffffffff, -1, 0}, - - {0x0425, 965, 1}, - {0xffffffff, -1, 0}, - - {0x0423, 959, 1}, - - {0x2c25, 2687, 1}, - - {0x1041f, 3504, 1}, - - {0x2c23, 2681, 1}, - - {0xff39, 3405, 1}, - {0xffffffff, -1, 0}, - - {0x041f, 944, 1}, - - {0x10411, 3462, 1}, - - {0x10407, 3432, 1}, - - {0x2c1f, 2669, 1}, - {0xffffffff, -1, 0}, - - {0x0411, 899, 1}, - - {0x0407, 1020, 1}, - {0xffffffff, -1, 0}, - - {0x2c11, 2627, 1}, - - {0x2c07, 2597, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x0539, 1372, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x13f8, 1840, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x054b, 1426, 1}, - - {0x16e53, 3945, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, - - {0x0551, 1444, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x054f, 1438, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x03fe, 727, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x16e4b, 3921, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xff30, 3378, 1}, - {0xffffffff, -1, 0}, - - {0x16e51, 3939, 1}, - {0xffffffff, -1, 0}, - - {0x0547, 1414, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xff25, 3345, 1}, - {0xffffffff, -1, 0}, - - {0xff23, 3339, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x053c, 1381, 1}, - - {0x16e4f, 3933, 1}, - {0xffffffff, -1, 0}, - - {0x0230, 571, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xfb17, 117, 2}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xfb15, 113, 2}, - - {0xfb13, 121, 2}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x03f0, 778, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x16e47, 3909, 1}, - {0xffffffff, -1, 0}, - - {0x03ee, 881, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xfb05, 29, 2}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xfb03, 0, 3}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e921, 4083, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0xfb01, 8, 2}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, - - {0x1e91d, 4071, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e91b, 4065, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e919, 4059, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e917, 4053, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e915, 4047, 1}, - - {0x1e913, 4041, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e90f, 4029, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e90d, 4023, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e90b, 4017, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e909, 4011, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e905, 3999, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e903, 3993, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, - - {0x1e901, 3987, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e91f, 4077, 1}, - {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, - - {0x1e911, 4035, 1}, - - {0x1e907, 4005, 1} - }; - - int key = hash(&code); - if (key <= MAX_HASH_VALUE) { - OnigCodePoint gcode = wordlist[key].code; - if (code == gcode && wordlist[key].index >= 0) { - return &wordlist[key]; - } - } - return 0; -} diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_wb_data.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_wb_data.c deleted file mode 100644 index ed7537f4d6c4..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/unicode_wb_data.c +++ /dev/null @@ -1,1023 +0,0 @@ -/* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */ -/*- - * Copyright (c) 2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#define WORD_BREAK_PROPERTY_VERSION 12_1_0 - -/* -ALetter -CR -Double_Quote -Extend -ExtendNumLet -Format -Hebrew_Letter -Katakana -LF -MidLetter -MidNum -MidNumLet -Newline -Numeric -Regional_Indicator -Single_Quote -WSegSpace -ZWJ -*/ - -static int WB_RANGE_NUM = 970; -static WB_RANGE_TYPE WB_RANGES[] = { - {0x00000a, 0x00000a, WB_LF }, - {0x00000b, 0x00000c, WB_Newline }, - {0x00000d, 0x00000d, WB_CR }, - {0x000020, 0x000020, WB_WSegSpace }, - {0x000022, 0x000022, WB_Double_Quote }, - {0x000027, 0x000027, WB_Single_Quote }, - {0x00002c, 0x00002c, WB_MidNum }, - {0x00002e, 0x00002e, WB_MidNumLet }, - {0x000030, 0x000039, WB_Numeric }, - {0x00003a, 0x00003a, WB_MidLetter }, - {0x00003b, 0x00003b, WB_MidNum }, - {0x000041, 0x00005a, WB_ALetter }, - {0x00005f, 0x00005f, WB_ExtendNumLet }, - {0x000061, 0x00007a, WB_ALetter }, - {0x000085, 0x000085, WB_Newline }, - {0x0000aa, 0x0000aa, WB_ALetter }, - {0x0000ad, 0x0000ad, WB_Format }, - {0x0000b5, 0x0000b5, WB_ALetter }, - {0x0000b7, 0x0000b7, WB_MidLetter }, - {0x0000ba, 0x0000ba, WB_ALetter }, - {0x0000c0, 0x0000d6, WB_ALetter }, - {0x0000d8, 0x0000f6, WB_ALetter }, - {0x0000f8, 0x0002d7, WB_ALetter }, - {0x0002de, 0x0002e4, WB_ALetter }, - {0x0002ec, 0x0002ff, WB_ALetter }, - {0x000300, 0x00036f, WB_Extend }, - {0x000370, 0x000374, WB_ALetter }, - {0x000376, 0x000377, WB_ALetter }, - {0x00037a, 0x00037d, WB_ALetter }, - {0x00037e, 0x00037e, WB_MidNum }, - {0x00037f, 0x00037f, WB_ALetter }, - {0x000386, 0x000386, WB_ALetter }, - {0x000387, 0x000387, WB_MidLetter }, - {0x000388, 0x00038a, WB_ALetter }, - {0x00038c, 0x00038c, WB_ALetter }, - {0x00038e, 0x0003a1, WB_ALetter }, - {0x0003a3, 0x0003f5, WB_ALetter }, - {0x0003f7, 0x000481, WB_ALetter }, - {0x000483, 0x000489, WB_Extend }, - {0x00048a, 0x00052f, WB_ALetter }, - {0x000531, 0x000556, WB_ALetter }, - {0x000559, 0x000559, WB_ALetter }, - {0x00055b, 0x00055c, WB_ALetter }, - {0x00055e, 0x00055e, WB_ALetter }, - {0x000560, 0x000588, WB_ALetter }, - {0x000589, 0x000589, WB_MidNum }, - {0x000591, 0x0005bd, WB_Extend }, - {0x0005bf, 0x0005bf, WB_Extend }, - {0x0005c1, 0x0005c2, WB_Extend }, - {0x0005c4, 0x0005c5, WB_Extend }, - {0x0005c7, 0x0005c7, WB_Extend }, - {0x0005d0, 0x0005ea, WB_Hebrew_Letter }, - {0x0005ef, 0x0005f2, WB_Hebrew_Letter }, - {0x0005f3, 0x0005f3, WB_ALetter }, - {0x0005f4, 0x0005f4, WB_MidLetter }, - {0x000600, 0x000605, WB_Format }, - {0x00060c, 0x00060d, WB_MidNum }, - {0x000610, 0x00061a, WB_Extend }, - {0x00061c, 0x00061c, WB_Format }, - {0x000620, 0x00064a, WB_ALetter }, - {0x00064b, 0x00065f, WB_Extend }, - {0x000660, 0x000669, WB_Numeric }, - {0x00066b, 0x00066b, WB_Numeric }, - {0x00066c, 0x00066c, WB_MidNum }, - {0x00066e, 0x00066f, WB_ALetter }, - {0x000670, 0x000670, WB_Extend }, - {0x000671, 0x0006d3, WB_ALetter }, - {0x0006d5, 0x0006d5, WB_ALetter }, - {0x0006d6, 0x0006dc, WB_Extend }, - {0x0006dd, 0x0006dd, WB_Format }, - {0x0006df, 0x0006e4, WB_Extend }, - {0x0006e5, 0x0006e6, WB_ALetter }, - {0x0006e7, 0x0006e8, WB_Extend }, - {0x0006ea, 0x0006ed, WB_Extend }, - {0x0006ee, 0x0006ef, WB_ALetter }, - {0x0006f0, 0x0006f9, WB_Numeric }, - {0x0006fa, 0x0006fc, WB_ALetter }, - {0x0006ff, 0x0006ff, WB_ALetter }, - {0x00070f, 0x00070f, WB_Format }, - {0x000710, 0x000710, WB_ALetter }, - {0x000711, 0x000711, WB_Extend }, - {0x000712, 0x00072f, WB_ALetter }, - {0x000730, 0x00074a, WB_Extend }, - {0x00074d, 0x0007a5, WB_ALetter }, - {0x0007a6, 0x0007b0, WB_Extend }, - {0x0007b1, 0x0007b1, WB_ALetter }, - {0x0007c0, 0x0007c9, WB_Numeric }, - {0x0007ca, 0x0007ea, WB_ALetter }, - {0x0007eb, 0x0007f3, WB_Extend }, - {0x0007f4, 0x0007f5, WB_ALetter }, - {0x0007f8, 0x0007f8, WB_MidNum }, - {0x0007fa, 0x0007fa, WB_ALetter }, - {0x0007fd, 0x0007fd, WB_Extend }, - {0x000800, 0x000815, WB_ALetter }, - {0x000816, 0x000819, WB_Extend }, - {0x00081a, 0x00081a, WB_ALetter }, - {0x00081b, 0x000823, WB_Extend }, - {0x000824, 0x000824, WB_ALetter }, - {0x000825, 0x000827, WB_Extend }, - {0x000828, 0x000828, WB_ALetter }, - {0x000829, 0x00082d, WB_Extend }, - {0x000840, 0x000858, WB_ALetter }, - {0x000859, 0x00085b, WB_Extend }, - {0x000860, 0x00086a, WB_ALetter }, - {0x0008a0, 0x0008b4, WB_ALetter }, - {0x0008b6, 0x0008bd, WB_ALetter }, - {0x0008d3, 0x0008e1, WB_Extend }, - {0x0008e2, 0x0008e2, WB_Format }, - {0x0008e3, 0x000903, WB_Extend }, - {0x000904, 0x000939, WB_ALetter }, - {0x00093a, 0x00093c, WB_Extend }, - {0x00093d, 0x00093d, WB_ALetter }, - {0x00093e, 0x00094f, WB_Extend }, - {0x000950, 0x000950, WB_ALetter }, - {0x000951, 0x000957, WB_Extend }, - {0x000958, 0x000961, WB_ALetter }, - {0x000962, 0x000963, WB_Extend }, - {0x000966, 0x00096f, WB_Numeric }, - {0x000971, 0x000980, WB_ALetter }, - {0x000981, 0x000983, WB_Extend }, - {0x000985, 0x00098c, WB_ALetter }, - {0x00098f, 0x000990, WB_ALetter }, - {0x000993, 0x0009a8, WB_ALetter }, - {0x0009aa, 0x0009b0, WB_ALetter }, - {0x0009b2, 0x0009b2, WB_ALetter }, - {0x0009b6, 0x0009b9, WB_ALetter }, - {0x0009bc, 0x0009bc, WB_Extend }, - {0x0009bd, 0x0009bd, WB_ALetter }, - {0x0009be, 0x0009c4, WB_Extend }, - {0x0009c7, 0x0009c8, WB_Extend }, - {0x0009cb, 0x0009cd, WB_Extend }, - {0x0009ce, 0x0009ce, WB_ALetter }, - {0x0009d7, 0x0009d7, WB_Extend }, - {0x0009dc, 0x0009dd, WB_ALetter }, - {0x0009df, 0x0009e1, WB_ALetter }, - {0x0009e2, 0x0009e3, WB_Extend }, - {0x0009e6, 0x0009ef, WB_Numeric }, - {0x0009f0, 0x0009f1, WB_ALetter }, - {0x0009fc, 0x0009fc, WB_ALetter }, - {0x0009fe, 0x0009fe, WB_Extend }, - {0x000a01, 0x000a03, WB_Extend }, - {0x000a05, 0x000a0a, WB_ALetter }, - {0x000a0f, 0x000a10, WB_ALetter }, - {0x000a13, 0x000a28, WB_ALetter }, - {0x000a2a, 0x000a30, WB_ALetter }, - {0x000a32, 0x000a33, WB_ALetter }, - {0x000a35, 0x000a36, WB_ALetter }, - {0x000a38, 0x000a39, WB_ALetter }, - {0x000a3c, 0x000a3c, WB_Extend }, - {0x000a3e, 0x000a42, WB_Extend }, - {0x000a47, 0x000a48, WB_Extend }, - {0x000a4b, 0x000a4d, WB_Extend }, - {0x000a51, 0x000a51, WB_Extend }, - {0x000a59, 0x000a5c, WB_ALetter }, - {0x000a5e, 0x000a5e, WB_ALetter }, - {0x000a66, 0x000a6f, WB_Numeric }, - {0x000a70, 0x000a71, WB_Extend }, - {0x000a72, 0x000a74, WB_ALetter }, - {0x000a75, 0x000a75, WB_Extend }, - {0x000a81, 0x000a83, WB_Extend }, - {0x000a85, 0x000a8d, WB_ALetter }, - {0x000a8f, 0x000a91, WB_ALetter }, - {0x000a93, 0x000aa8, WB_ALetter }, - {0x000aaa, 0x000ab0, WB_ALetter }, - {0x000ab2, 0x000ab3, WB_ALetter }, - {0x000ab5, 0x000ab9, WB_ALetter }, - {0x000abc, 0x000abc, WB_Extend }, - {0x000abd, 0x000abd, WB_ALetter }, - {0x000abe, 0x000ac5, WB_Extend }, - {0x000ac7, 0x000ac9, WB_Extend }, - {0x000acb, 0x000acd, WB_Extend }, - {0x000ad0, 0x000ad0, WB_ALetter }, - {0x000ae0, 0x000ae1, WB_ALetter }, - {0x000ae2, 0x000ae3, WB_Extend }, - {0x000ae6, 0x000aef, WB_Numeric }, - {0x000af9, 0x000af9, WB_ALetter }, - {0x000afa, 0x000aff, WB_Extend }, - {0x000b01, 0x000b03, WB_Extend }, - {0x000b05, 0x000b0c, WB_ALetter }, - {0x000b0f, 0x000b10, WB_ALetter }, - {0x000b13, 0x000b28, WB_ALetter }, - {0x000b2a, 0x000b30, WB_ALetter }, - {0x000b32, 0x000b33, WB_ALetter }, - {0x000b35, 0x000b39, WB_ALetter }, - {0x000b3c, 0x000b3c, WB_Extend }, - {0x000b3d, 0x000b3d, WB_ALetter }, - {0x000b3e, 0x000b44, WB_Extend }, - {0x000b47, 0x000b48, WB_Extend }, - {0x000b4b, 0x000b4d, WB_Extend }, - {0x000b56, 0x000b57, WB_Extend }, - {0x000b5c, 0x000b5d, WB_ALetter }, - {0x000b5f, 0x000b61, WB_ALetter }, - {0x000b62, 0x000b63, WB_Extend }, - {0x000b66, 0x000b6f, WB_Numeric }, - {0x000b71, 0x000b71, WB_ALetter }, - {0x000b82, 0x000b82, WB_Extend }, - {0x000b83, 0x000b83, WB_ALetter }, - {0x000b85, 0x000b8a, WB_ALetter }, - {0x000b8e, 0x000b90, WB_ALetter }, - {0x000b92, 0x000b95, WB_ALetter }, - {0x000b99, 0x000b9a, WB_ALetter }, - {0x000b9c, 0x000b9c, WB_ALetter }, - {0x000b9e, 0x000b9f, WB_ALetter }, - {0x000ba3, 0x000ba4, WB_ALetter }, - {0x000ba8, 0x000baa, WB_ALetter }, - {0x000bae, 0x000bb9, WB_ALetter }, - {0x000bbe, 0x000bc2, WB_Extend }, - {0x000bc6, 0x000bc8, WB_Extend }, - {0x000bca, 0x000bcd, WB_Extend }, - {0x000bd0, 0x000bd0, WB_ALetter }, - {0x000bd7, 0x000bd7, WB_Extend }, - {0x000be6, 0x000bef, WB_Numeric }, - {0x000c00, 0x000c04, WB_Extend }, - {0x000c05, 0x000c0c, WB_ALetter }, - {0x000c0e, 0x000c10, WB_ALetter }, - {0x000c12, 0x000c28, WB_ALetter }, - {0x000c2a, 0x000c39, WB_ALetter }, - {0x000c3d, 0x000c3d, WB_ALetter }, - {0x000c3e, 0x000c44, WB_Extend }, - {0x000c46, 0x000c48, WB_Extend }, - {0x000c4a, 0x000c4d, WB_Extend }, - {0x000c55, 0x000c56, WB_Extend }, - {0x000c58, 0x000c5a, WB_ALetter }, - {0x000c60, 0x000c61, WB_ALetter }, - {0x000c62, 0x000c63, WB_Extend }, - {0x000c66, 0x000c6f, WB_Numeric }, - {0x000c80, 0x000c80, WB_ALetter }, - {0x000c81, 0x000c83, WB_Extend }, - {0x000c85, 0x000c8c, WB_ALetter }, - {0x000c8e, 0x000c90, WB_ALetter }, - {0x000c92, 0x000ca8, WB_ALetter }, - {0x000caa, 0x000cb3, WB_ALetter }, - {0x000cb5, 0x000cb9, WB_ALetter }, - {0x000cbc, 0x000cbc, WB_Extend }, - {0x000cbd, 0x000cbd, WB_ALetter }, - {0x000cbe, 0x000cc4, WB_Extend }, - {0x000cc6, 0x000cc8, WB_Extend }, - {0x000cca, 0x000ccd, WB_Extend }, - {0x000cd5, 0x000cd6, WB_Extend }, - {0x000cde, 0x000cde, WB_ALetter }, - {0x000ce0, 0x000ce1, WB_ALetter }, - {0x000ce2, 0x000ce3, WB_Extend }, - {0x000ce6, 0x000cef, WB_Numeric }, - {0x000cf1, 0x000cf2, WB_ALetter }, - {0x000d00, 0x000d03, WB_Extend }, - {0x000d05, 0x000d0c, WB_ALetter }, - {0x000d0e, 0x000d10, WB_ALetter }, - {0x000d12, 0x000d3a, WB_ALetter }, - {0x000d3b, 0x000d3c, WB_Extend }, - {0x000d3d, 0x000d3d, WB_ALetter }, - {0x000d3e, 0x000d44, WB_Extend }, - {0x000d46, 0x000d48, WB_Extend }, - {0x000d4a, 0x000d4d, WB_Extend }, - {0x000d4e, 0x000d4e, WB_ALetter }, - {0x000d54, 0x000d56, WB_ALetter }, - {0x000d57, 0x000d57, WB_Extend }, - {0x000d5f, 0x000d61, WB_ALetter }, - {0x000d62, 0x000d63, WB_Extend }, - {0x000d66, 0x000d6f, WB_Numeric }, - {0x000d7a, 0x000d7f, WB_ALetter }, - {0x000d82, 0x000d83, WB_Extend }, - {0x000d85, 0x000d96, WB_ALetter }, - {0x000d9a, 0x000db1, WB_ALetter }, - {0x000db3, 0x000dbb, WB_ALetter }, - {0x000dbd, 0x000dbd, WB_ALetter }, - {0x000dc0, 0x000dc6, WB_ALetter }, - {0x000dca, 0x000dca, WB_Extend }, - {0x000dcf, 0x000dd4, WB_Extend }, - {0x000dd6, 0x000dd6, WB_Extend }, - {0x000dd8, 0x000ddf, WB_Extend }, - {0x000de6, 0x000def, WB_Numeric }, - {0x000df2, 0x000df3, WB_Extend }, - {0x000e31, 0x000e31, WB_Extend }, - {0x000e34, 0x000e3a, WB_Extend }, - {0x000e47, 0x000e4e, WB_Extend }, - {0x000e50, 0x000e59, WB_Numeric }, - {0x000eb1, 0x000eb1, WB_Extend }, - {0x000eb4, 0x000ebc, WB_Extend }, - {0x000ec8, 0x000ecd, WB_Extend }, - {0x000ed0, 0x000ed9, WB_Numeric }, - {0x000f00, 0x000f00, WB_ALetter }, - {0x000f18, 0x000f19, WB_Extend }, - {0x000f20, 0x000f29, WB_Numeric }, - {0x000f35, 0x000f35, WB_Extend }, - {0x000f37, 0x000f37, WB_Extend }, - {0x000f39, 0x000f39, WB_Extend }, - {0x000f3e, 0x000f3f, WB_Extend }, - {0x000f40, 0x000f47, WB_ALetter }, - {0x000f49, 0x000f6c, WB_ALetter }, - {0x000f71, 0x000f84, WB_Extend }, - {0x000f86, 0x000f87, WB_Extend }, - {0x000f88, 0x000f8c, WB_ALetter }, - {0x000f8d, 0x000f97, WB_Extend }, - {0x000f99, 0x000fbc, WB_Extend }, - {0x000fc6, 0x000fc6, WB_Extend }, - {0x00102b, 0x00103e, WB_Extend }, - {0x001040, 0x001049, WB_Numeric }, - {0x001056, 0x001059, WB_Extend }, - {0x00105e, 0x001060, WB_Extend }, - {0x001062, 0x001064, WB_Extend }, - {0x001067, 0x00106d, WB_Extend }, - {0x001071, 0x001074, WB_Extend }, - {0x001082, 0x00108d, WB_Extend }, - {0x00108f, 0x00108f, WB_Extend }, - {0x001090, 0x001099, WB_Numeric }, - {0x00109a, 0x00109d, WB_Extend }, - {0x0010a0, 0x0010c5, WB_ALetter }, - {0x0010c7, 0x0010c7, WB_ALetter }, - {0x0010cd, 0x0010cd, WB_ALetter }, - {0x0010d0, 0x0010fa, WB_ALetter }, - {0x0010fc, 0x001248, WB_ALetter }, - {0x00124a, 0x00124d, WB_ALetter }, - {0x001250, 0x001256, WB_ALetter }, - {0x001258, 0x001258, WB_ALetter }, - {0x00125a, 0x00125d, WB_ALetter }, - {0x001260, 0x001288, WB_ALetter }, - {0x00128a, 0x00128d, WB_ALetter }, - {0x001290, 0x0012b0, WB_ALetter }, - {0x0012b2, 0x0012b5, WB_ALetter }, - {0x0012b8, 0x0012be, WB_ALetter }, - {0x0012c0, 0x0012c0, WB_ALetter }, - {0x0012c2, 0x0012c5, WB_ALetter }, - {0x0012c8, 0x0012d6, WB_ALetter }, - {0x0012d8, 0x001310, WB_ALetter }, - {0x001312, 0x001315, WB_ALetter }, - {0x001318, 0x00135a, WB_ALetter }, - {0x00135d, 0x00135f, WB_Extend }, - {0x001380, 0x00138f, WB_ALetter }, - {0x0013a0, 0x0013f5, WB_ALetter }, - {0x0013f8, 0x0013fd, WB_ALetter }, - {0x001401, 0x00166c, WB_ALetter }, - {0x00166f, 0x00167f, WB_ALetter }, - {0x001680, 0x001680, WB_WSegSpace }, - {0x001681, 0x00169a, WB_ALetter }, - {0x0016a0, 0x0016ea, WB_ALetter }, - {0x0016ee, 0x0016f8, WB_ALetter }, - {0x001700, 0x00170c, WB_ALetter }, - {0x00170e, 0x001711, WB_ALetter }, - {0x001712, 0x001714, WB_Extend }, - {0x001720, 0x001731, WB_ALetter }, - {0x001732, 0x001734, WB_Extend }, - {0x001740, 0x001751, WB_ALetter }, - {0x001752, 0x001753, WB_Extend }, - {0x001760, 0x00176c, WB_ALetter }, - {0x00176e, 0x001770, WB_ALetter }, - {0x001772, 0x001773, WB_Extend }, - {0x0017b4, 0x0017d3, WB_Extend }, - {0x0017dd, 0x0017dd, WB_Extend }, - {0x0017e0, 0x0017e9, WB_Numeric }, - {0x00180b, 0x00180d, WB_Extend }, - {0x00180e, 0x00180e, WB_Format }, - {0x001810, 0x001819, WB_Numeric }, - {0x001820, 0x001878, WB_ALetter }, - {0x001880, 0x001884, WB_ALetter }, - {0x001885, 0x001886, WB_Extend }, - {0x001887, 0x0018a8, WB_ALetter }, - {0x0018a9, 0x0018a9, WB_Extend }, - {0x0018aa, 0x0018aa, WB_ALetter }, - {0x0018b0, 0x0018f5, WB_ALetter }, - {0x001900, 0x00191e, WB_ALetter }, - {0x001920, 0x00192b, WB_Extend }, - {0x001930, 0x00193b, WB_Extend }, - {0x001946, 0x00194f, WB_Numeric }, - {0x0019d0, 0x0019d9, WB_Numeric }, - {0x001a00, 0x001a16, WB_ALetter }, - {0x001a17, 0x001a1b, WB_Extend }, - {0x001a55, 0x001a5e, WB_Extend }, - {0x001a60, 0x001a7c, WB_Extend }, - {0x001a7f, 0x001a7f, WB_Extend }, - {0x001a80, 0x001a89, WB_Numeric }, - {0x001a90, 0x001a99, WB_Numeric }, - {0x001ab0, 0x001abe, WB_Extend }, - {0x001b00, 0x001b04, WB_Extend }, - {0x001b05, 0x001b33, WB_ALetter }, - {0x001b34, 0x001b44, WB_Extend }, - {0x001b45, 0x001b4b, WB_ALetter }, - {0x001b50, 0x001b59, WB_Numeric }, - {0x001b6b, 0x001b73, WB_Extend }, - {0x001b80, 0x001b82, WB_Extend }, - {0x001b83, 0x001ba0, WB_ALetter }, - {0x001ba1, 0x001bad, WB_Extend }, - {0x001bae, 0x001baf, WB_ALetter }, - {0x001bb0, 0x001bb9, WB_Numeric }, - {0x001bba, 0x001be5, WB_ALetter }, - {0x001be6, 0x001bf3, WB_Extend }, - {0x001c00, 0x001c23, WB_ALetter }, - {0x001c24, 0x001c37, WB_Extend }, - {0x001c40, 0x001c49, WB_Numeric }, - {0x001c4d, 0x001c4f, WB_ALetter }, - {0x001c50, 0x001c59, WB_Numeric }, - {0x001c5a, 0x001c7d, WB_ALetter }, - {0x001c80, 0x001c88, WB_ALetter }, - {0x001c90, 0x001cba, WB_ALetter }, - {0x001cbd, 0x001cbf, WB_ALetter }, - {0x001cd0, 0x001cd2, WB_Extend }, - {0x001cd4, 0x001ce8, WB_Extend }, - {0x001ce9, 0x001cec, WB_ALetter }, - {0x001ced, 0x001ced, WB_Extend }, - {0x001cee, 0x001cf3, WB_ALetter }, - {0x001cf4, 0x001cf4, WB_Extend }, - {0x001cf5, 0x001cf6, WB_ALetter }, - {0x001cf7, 0x001cf9, WB_Extend }, - {0x001cfa, 0x001cfa, WB_ALetter }, - {0x001d00, 0x001dbf, WB_ALetter }, - {0x001dc0, 0x001df9, WB_Extend }, - {0x001dfb, 0x001dff, WB_Extend }, - {0x001e00, 0x001f15, WB_ALetter }, - {0x001f18, 0x001f1d, WB_ALetter }, - {0x001f20, 0x001f45, WB_ALetter }, - {0x001f48, 0x001f4d, WB_ALetter }, - {0x001f50, 0x001f57, WB_ALetter }, - {0x001f59, 0x001f59, WB_ALetter }, - {0x001f5b, 0x001f5b, WB_ALetter }, - {0x001f5d, 0x001f5d, WB_ALetter }, - {0x001f5f, 0x001f7d, WB_ALetter }, - {0x001f80, 0x001fb4, WB_ALetter }, - {0x001fb6, 0x001fbc, WB_ALetter }, - {0x001fbe, 0x001fbe, WB_ALetter }, - {0x001fc2, 0x001fc4, WB_ALetter }, - {0x001fc6, 0x001fcc, WB_ALetter }, - {0x001fd0, 0x001fd3, WB_ALetter }, - {0x001fd6, 0x001fdb, WB_ALetter }, - {0x001fe0, 0x001fec, WB_ALetter }, - {0x001ff2, 0x001ff4, WB_ALetter }, - {0x001ff6, 0x001ffc, WB_ALetter }, - {0x002000, 0x002006, WB_WSegSpace }, - {0x002008, 0x00200a, WB_WSegSpace }, - {0x00200c, 0x00200c, WB_Extend }, - {0x00200d, 0x00200d, WB_ZWJ }, - {0x00200e, 0x00200f, WB_Format }, - {0x002018, 0x002019, WB_MidNumLet }, - {0x002024, 0x002024, WB_MidNumLet }, - {0x002027, 0x002027, WB_MidLetter }, - {0x002028, 0x002029, WB_Newline }, - {0x00202a, 0x00202e, WB_Format }, - {0x00202f, 0x00202f, WB_ExtendNumLet }, - {0x00203f, 0x002040, WB_ExtendNumLet }, - {0x002044, 0x002044, WB_MidNum }, - {0x002054, 0x002054, WB_ExtendNumLet }, - {0x00205f, 0x00205f, WB_WSegSpace }, - {0x002060, 0x002064, WB_Format }, - {0x002066, 0x00206f, WB_Format }, - {0x002071, 0x002071, WB_ALetter }, - {0x00207f, 0x00207f, WB_ALetter }, - {0x002090, 0x00209c, WB_ALetter }, - {0x0020d0, 0x0020f0, WB_Extend }, - {0x002102, 0x002102, WB_ALetter }, - {0x002107, 0x002107, WB_ALetter }, - {0x00210a, 0x002113, WB_ALetter }, - {0x002115, 0x002115, WB_ALetter }, - {0x002119, 0x00211d, WB_ALetter }, - {0x002124, 0x002124, WB_ALetter }, - {0x002126, 0x002126, WB_ALetter }, - {0x002128, 0x002128, WB_ALetter }, - {0x00212a, 0x00212d, WB_ALetter }, - {0x00212f, 0x002139, WB_ALetter }, - {0x00213c, 0x00213f, WB_ALetter }, - {0x002145, 0x002149, WB_ALetter }, - {0x00214e, 0x00214e, WB_ALetter }, - {0x002160, 0x002188, WB_ALetter }, - {0x0024b6, 0x0024e9, WB_ALetter }, - {0x002c00, 0x002c2e, WB_ALetter }, - {0x002c30, 0x002c5e, WB_ALetter }, - {0x002c60, 0x002ce4, WB_ALetter }, - {0x002ceb, 0x002cee, WB_ALetter }, - {0x002cef, 0x002cf1, WB_Extend }, - {0x002cf2, 0x002cf3, WB_ALetter }, - {0x002d00, 0x002d25, WB_ALetter }, - {0x002d27, 0x002d27, WB_ALetter }, - {0x002d2d, 0x002d2d, WB_ALetter }, - {0x002d30, 0x002d67, WB_ALetter }, - {0x002d6f, 0x002d6f, WB_ALetter }, - {0x002d7f, 0x002d7f, WB_Extend }, - {0x002d80, 0x002d96, WB_ALetter }, - {0x002da0, 0x002da6, WB_ALetter }, - {0x002da8, 0x002dae, WB_ALetter }, - {0x002db0, 0x002db6, WB_ALetter }, - {0x002db8, 0x002dbe, WB_ALetter }, - {0x002dc0, 0x002dc6, WB_ALetter }, - {0x002dc8, 0x002dce, WB_ALetter }, - {0x002dd0, 0x002dd6, WB_ALetter }, - {0x002dd8, 0x002dde, WB_ALetter }, - {0x002de0, 0x002dff, WB_Extend }, - {0x002e2f, 0x002e2f, WB_ALetter }, - {0x003000, 0x003000, WB_WSegSpace }, - {0x003005, 0x003005, WB_ALetter }, - {0x00302a, 0x00302f, WB_Extend }, - {0x003031, 0x003035, WB_Katakana }, - {0x00303b, 0x00303c, WB_ALetter }, - {0x003099, 0x00309a, WB_Extend }, - {0x00309b, 0x00309c, WB_Katakana }, - {0x0030a0, 0x0030fa, WB_Katakana }, - {0x0030fc, 0x0030ff, WB_Katakana }, - {0x003105, 0x00312f, WB_ALetter }, - {0x003131, 0x00318e, WB_ALetter }, - {0x0031a0, 0x0031ba, WB_ALetter }, - {0x0031f0, 0x0031ff, WB_Katakana }, - {0x0032d0, 0x0032fe, WB_Katakana }, - {0x003300, 0x003357, WB_Katakana }, - {0x00a000, 0x00a48c, WB_ALetter }, - {0x00a4d0, 0x00a4fd, WB_ALetter }, - {0x00a500, 0x00a60c, WB_ALetter }, - {0x00a610, 0x00a61f, WB_ALetter }, - {0x00a620, 0x00a629, WB_Numeric }, - {0x00a62a, 0x00a62b, WB_ALetter }, - {0x00a640, 0x00a66e, WB_ALetter }, - {0x00a66f, 0x00a672, WB_Extend }, - {0x00a674, 0x00a67d, WB_Extend }, - {0x00a67f, 0x00a69d, WB_ALetter }, - {0x00a69e, 0x00a69f, WB_Extend }, - {0x00a6a0, 0x00a6ef, WB_ALetter }, - {0x00a6f0, 0x00a6f1, WB_Extend }, - {0x00a717, 0x00a7bf, WB_ALetter }, - {0x00a7c2, 0x00a7c6, WB_ALetter }, - {0x00a7f7, 0x00a801, WB_ALetter }, - {0x00a802, 0x00a802, WB_Extend }, - {0x00a803, 0x00a805, WB_ALetter }, - {0x00a806, 0x00a806, WB_Extend }, - {0x00a807, 0x00a80a, WB_ALetter }, - {0x00a80b, 0x00a80b, WB_Extend }, - {0x00a80c, 0x00a822, WB_ALetter }, - {0x00a823, 0x00a827, WB_Extend }, - {0x00a840, 0x00a873, WB_ALetter }, - {0x00a880, 0x00a881, WB_Extend }, - {0x00a882, 0x00a8b3, WB_ALetter }, - {0x00a8b4, 0x00a8c5, WB_Extend }, - {0x00a8d0, 0x00a8d9, WB_Numeric }, - {0x00a8e0, 0x00a8f1, WB_Extend }, - {0x00a8f2, 0x00a8f7, WB_ALetter }, - {0x00a8fb, 0x00a8fb, WB_ALetter }, - {0x00a8fd, 0x00a8fe, WB_ALetter }, - {0x00a8ff, 0x00a8ff, WB_Extend }, - {0x00a900, 0x00a909, WB_Numeric }, - {0x00a90a, 0x00a925, WB_ALetter }, - {0x00a926, 0x00a92d, WB_Extend }, - {0x00a930, 0x00a946, WB_ALetter }, - {0x00a947, 0x00a953, WB_Extend }, - {0x00a960, 0x00a97c, WB_ALetter }, - {0x00a980, 0x00a983, WB_Extend }, - {0x00a984, 0x00a9b2, WB_ALetter }, - {0x00a9b3, 0x00a9c0, WB_Extend }, - {0x00a9cf, 0x00a9cf, WB_ALetter }, - {0x00a9d0, 0x00a9d9, WB_Numeric }, - {0x00a9e5, 0x00a9e5, WB_Extend }, - {0x00a9f0, 0x00a9f9, WB_Numeric }, - {0x00aa00, 0x00aa28, WB_ALetter }, - {0x00aa29, 0x00aa36, WB_Extend }, - {0x00aa40, 0x00aa42, WB_ALetter }, - {0x00aa43, 0x00aa43, WB_Extend }, - {0x00aa44, 0x00aa4b, WB_ALetter }, - {0x00aa4c, 0x00aa4d, WB_Extend }, - {0x00aa50, 0x00aa59, WB_Numeric }, - {0x00aa7b, 0x00aa7d, WB_Extend }, - {0x00aab0, 0x00aab0, WB_Extend }, - {0x00aab2, 0x00aab4, WB_Extend }, - {0x00aab7, 0x00aab8, WB_Extend }, - {0x00aabe, 0x00aabf, WB_Extend }, - {0x00aac1, 0x00aac1, WB_Extend }, - {0x00aae0, 0x00aaea, WB_ALetter }, - {0x00aaeb, 0x00aaef, WB_Extend }, - {0x00aaf2, 0x00aaf4, WB_ALetter }, - {0x00aaf5, 0x00aaf6, WB_Extend }, - {0x00ab01, 0x00ab06, WB_ALetter }, - {0x00ab09, 0x00ab0e, WB_ALetter }, - {0x00ab11, 0x00ab16, WB_ALetter }, - {0x00ab20, 0x00ab26, WB_ALetter }, - {0x00ab28, 0x00ab2e, WB_ALetter }, - {0x00ab30, 0x00ab67, WB_ALetter }, - {0x00ab70, 0x00abe2, WB_ALetter }, - {0x00abe3, 0x00abea, WB_Extend }, - {0x00abec, 0x00abed, WB_Extend }, - {0x00abf0, 0x00abf9, WB_Numeric }, - {0x00ac00, 0x00d7a3, WB_ALetter }, - {0x00d7b0, 0x00d7c6, WB_ALetter }, - {0x00d7cb, 0x00d7fb, WB_ALetter }, - {0x00fb00, 0x00fb06, WB_ALetter }, - {0x00fb13, 0x00fb17, WB_ALetter }, - {0x00fb1d, 0x00fb1d, WB_Hebrew_Letter }, - {0x00fb1e, 0x00fb1e, WB_Extend }, - {0x00fb1f, 0x00fb28, WB_Hebrew_Letter }, - {0x00fb2a, 0x00fb36, WB_Hebrew_Letter }, - {0x00fb38, 0x00fb3c, WB_Hebrew_Letter }, - {0x00fb3e, 0x00fb3e, WB_Hebrew_Letter }, - {0x00fb40, 0x00fb41, WB_Hebrew_Letter }, - {0x00fb43, 0x00fb44, WB_Hebrew_Letter }, - {0x00fb46, 0x00fb4f, WB_Hebrew_Letter }, - {0x00fb50, 0x00fbb1, WB_ALetter }, - {0x00fbd3, 0x00fd3d, WB_ALetter }, - {0x00fd50, 0x00fd8f, WB_ALetter }, - {0x00fd92, 0x00fdc7, WB_ALetter }, - {0x00fdf0, 0x00fdfb, WB_ALetter }, - {0x00fe00, 0x00fe0f, WB_Extend }, - {0x00fe10, 0x00fe10, WB_MidNum }, - {0x00fe13, 0x00fe13, WB_MidLetter }, - {0x00fe14, 0x00fe14, WB_MidNum }, - {0x00fe20, 0x00fe2f, WB_Extend }, - {0x00fe33, 0x00fe34, WB_ExtendNumLet }, - {0x00fe4d, 0x00fe4f, WB_ExtendNumLet }, - {0x00fe50, 0x00fe50, WB_MidNum }, - {0x00fe52, 0x00fe52, WB_MidNumLet }, - {0x00fe54, 0x00fe54, WB_MidNum }, - {0x00fe55, 0x00fe55, WB_MidLetter }, - {0x00fe70, 0x00fe74, WB_ALetter }, - {0x00fe76, 0x00fefc, WB_ALetter }, - {0x00feff, 0x00feff, WB_Format }, - {0x00ff07, 0x00ff07, WB_MidNumLet }, - {0x00ff0c, 0x00ff0c, WB_MidNum }, - {0x00ff0e, 0x00ff0e, WB_MidNumLet }, - {0x00ff10, 0x00ff19, WB_Numeric }, - {0x00ff1a, 0x00ff1a, WB_MidLetter }, - {0x00ff1b, 0x00ff1b, WB_MidNum }, - {0x00ff21, 0x00ff3a, WB_ALetter }, - {0x00ff3f, 0x00ff3f, WB_ExtendNumLet }, - {0x00ff41, 0x00ff5a, WB_ALetter }, - {0x00ff66, 0x00ff9d, WB_Katakana }, - {0x00ff9e, 0x00ff9f, WB_Extend }, - {0x00ffa0, 0x00ffbe, WB_ALetter }, - {0x00ffc2, 0x00ffc7, WB_ALetter }, - {0x00ffca, 0x00ffcf, WB_ALetter }, - {0x00ffd2, 0x00ffd7, WB_ALetter }, - {0x00ffda, 0x00ffdc, WB_ALetter }, - {0x00fff9, 0x00fffb, WB_Format }, - {0x010000, 0x01000b, WB_ALetter }, - {0x01000d, 0x010026, WB_ALetter }, - {0x010028, 0x01003a, WB_ALetter }, - {0x01003c, 0x01003d, WB_ALetter }, - {0x01003f, 0x01004d, WB_ALetter }, - {0x010050, 0x01005d, WB_ALetter }, - {0x010080, 0x0100fa, WB_ALetter }, - {0x010140, 0x010174, WB_ALetter }, - {0x0101fd, 0x0101fd, WB_Extend }, - {0x010280, 0x01029c, WB_ALetter }, - {0x0102a0, 0x0102d0, WB_ALetter }, - {0x0102e0, 0x0102e0, WB_Extend }, - {0x010300, 0x01031f, WB_ALetter }, - {0x01032d, 0x01034a, WB_ALetter }, - {0x010350, 0x010375, WB_ALetter }, - {0x010376, 0x01037a, WB_Extend }, - {0x010380, 0x01039d, WB_ALetter }, - {0x0103a0, 0x0103c3, WB_ALetter }, - {0x0103c8, 0x0103cf, WB_ALetter }, - {0x0103d1, 0x0103d5, WB_ALetter }, - {0x010400, 0x01049d, WB_ALetter }, - {0x0104a0, 0x0104a9, WB_Numeric }, - {0x0104b0, 0x0104d3, WB_ALetter }, - {0x0104d8, 0x0104fb, WB_ALetter }, - {0x010500, 0x010527, WB_ALetter }, - {0x010530, 0x010563, WB_ALetter }, - {0x010600, 0x010736, WB_ALetter }, - {0x010740, 0x010755, WB_ALetter }, - {0x010760, 0x010767, WB_ALetter }, - {0x010800, 0x010805, WB_ALetter }, - {0x010808, 0x010808, WB_ALetter }, - {0x01080a, 0x010835, WB_ALetter }, - {0x010837, 0x010838, WB_ALetter }, - {0x01083c, 0x01083c, WB_ALetter }, - {0x01083f, 0x010855, WB_ALetter }, - {0x010860, 0x010876, WB_ALetter }, - {0x010880, 0x01089e, WB_ALetter }, - {0x0108e0, 0x0108f2, WB_ALetter }, - {0x0108f4, 0x0108f5, WB_ALetter }, - {0x010900, 0x010915, WB_ALetter }, - {0x010920, 0x010939, WB_ALetter }, - {0x010980, 0x0109b7, WB_ALetter }, - {0x0109be, 0x0109bf, WB_ALetter }, - {0x010a00, 0x010a00, WB_ALetter }, - {0x010a01, 0x010a03, WB_Extend }, - {0x010a05, 0x010a06, WB_Extend }, - {0x010a0c, 0x010a0f, WB_Extend }, - {0x010a10, 0x010a13, WB_ALetter }, - {0x010a15, 0x010a17, WB_ALetter }, - {0x010a19, 0x010a35, WB_ALetter }, - {0x010a38, 0x010a3a, WB_Extend }, - {0x010a3f, 0x010a3f, WB_Extend }, - {0x010a60, 0x010a7c, WB_ALetter }, - {0x010a80, 0x010a9c, WB_ALetter }, - {0x010ac0, 0x010ac7, WB_ALetter }, - {0x010ac9, 0x010ae4, WB_ALetter }, - {0x010ae5, 0x010ae6, WB_Extend }, - {0x010b00, 0x010b35, WB_ALetter }, - {0x010b40, 0x010b55, WB_ALetter }, - {0x010b60, 0x010b72, WB_ALetter }, - {0x010b80, 0x010b91, WB_ALetter }, - {0x010c00, 0x010c48, WB_ALetter }, - {0x010c80, 0x010cb2, WB_ALetter }, - {0x010cc0, 0x010cf2, WB_ALetter }, - {0x010d00, 0x010d23, WB_ALetter }, - {0x010d24, 0x010d27, WB_Extend }, - {0x010d30, 0x010d39, WB_Numeric }, - {0x010f00, 0x010f1c, WB_ALetter }, - {0x010f27, 0x010f27, WB_ALetter }, - {0x010f30, 0x010f45, WB_ALetter }, - {0x010f46, 0x010f50, WB_Extend }, - {0x010fe0, 0x010ff6, WB_ALetter }, - {0x011000, 0x011002, WB_Extend }, - {0x011003, 0x011037, WB_ALetter }, - {0x011038, 0x011046, WB_Extend }, - {0x011066, 0x01106f, WB_Numeric }, - {0x01107f, 0x011082, WB_Extend }, - {0x011083, 0x0110af, WB_ALetter }, - {0x0110b0, 0x0110ba, WB_Extend }, - {0x0110bd, 0x0110bd, WB_Format }, - {0x0110cd, 0x0110cd, WB_Format }, - {0x0110d0, 0x0110e8, WB_ALetter }, - {0x0110f0, 0x0110f9, WB_Numeric }, - {0x011100, 0x011102, WB_Extend }, - {0x011103, 0x011126, WB_ALetter }, - {0x011127, 0x011134, WB_Extend }, - {0x011136, 0x01113f, WB_Numeric }, - {0x011144, 0x011144, WB_ALetter }, - {0x011145, 0x011146, WB_Extend }, - {0x011150, 0x011172, WB_ALetter }, - {0x011173, 0x011173, WB_Extend }, - {0x011176, 0x011176, WB_ALetter }, - {0x011180, 0x011182, WB_Extend }, - {0x011183, 0x0111b2, WB_ALetter }, - {0x0111b3, 0x0111c0, WB_Extend }, - {0x0111c1, 0x0111c4, WB_ALetter }, - {0x0111c9, 0x0111cc, WB_Extend }, - {0x0111d0, 0x0111d9, WB_Numeric }, - {0x0111da, 0x0111da, WB_ALetter }, - {0x0111dc, 0x0111dc, WB_ALetter }, - {0x011200, 0x011211, WB_ALetter }, - {0x011213, 0x01122b, WB_ALetter }, - {0x01122c, 0x011237, WB_Extend }, - {0x01123e, 0x01123e, WB_Extend }, - {0x011280, 0x011286, WB_ALetter }, - {0x011288, 0x011288, WB_ALetter }, - {0x01128a, 0x01128d, WB_ALetter }, - {0x01128f, 0x01129d, WB_ALetter }, - {0x01129f, 0x0112a8, WB_ALetter }, - {0x0112b0, 0x0112de, WB_ALetter }, - {0x0112df, 0x0112ea, WB_Extend }, - {0x0112f0, 0x0112f9, WB_Numeric }, - {0x011300, 0x011303, WB_Extend }, - {0x011305, 0x01130c, WB_ALetter }, - {0x01130f, 0x011310, WB_ALetter }, - {0x011313, 0x011328, WB_ALetter }, - {0x01132a, 0x011330, WB_ALetter }, - {0x011332, 0x011333, WB_ALetter }, - {0x011335, 0x011339, WB_ALetter }, - {0x01133b, 0x01133c, WB_Extend }, - {0x01133d, 0x01133d, WB_ALetter }, - {0x01133e, 0x011344, WB_Extend }, - {0x011347, 0x011348, WB_Extend }, - {0x01134b, 0x01134d, WB_Extend }, - {0x011350, 0x011350, WB_ALetter }, - {0x011357, 0x011357, WB_Extend }, - {0x01135d, 0x011361, WB_ALetter }, - {0x011362, 0x011363, WB_Extend }, - {0x011366, 0x01136c, WB_Extend }, - {0x011370, 0x011374, WB_Extend }, - {0x011400, 0x011434, WB_ALetter }, - {0x011435, 0x011446, WB_Extend }, - {0x011447, 0x01144a, WB_ALetter }, - {0x011450, 0x011459, WB_Numeric }, - {0x01145e, 0x01145e, WB_Extend }, - {0x01145f, 0x01145f, WB_ALetter }, - {0x011480, 0x0114af, WB_ALetter }, - {0x0114b0, 0x0114c3, WB_Extend }, - {0x0114c4, 0x0114c5, WB_ALetter }, - {0x0114c7, 0x0114c7, WB_ALetter }, - {0x0114d0, 0x0114d9, WB_Numeric }, - {0x011580, 0x0115ae, WB_ALetter }, - {0x0115af, 0x0115b5, WB_Extend }, - {0x0115b8, 0x0115c0, WB_Extend }, - {0x0115d8, 0x0115db, WB_ALetter }, - {0x0115dc, 0x0115dd, WB_Extend }, - {0x011600, 0x01162f, WB_ALetter }, - {0x011630, 0x011640, WB_Extend }, - {0x011644, 0x011644, WB_ALetter }, - {0x011650, 0x011659, WB_Numeric }, - {0x011680, 0x0116aa, WB_ALetter }, - {0x0116ab, 0x0116b7, WB_Extend }, - {0x0116b8, 0x0116b8, WB_ALetter }, - {0x0116c0, 0x0116c9, WB_Numeric }, - {0x01171d, 0x01172b, WB_Extend }, - {0x011730, 0x011739, WB_Numeric }, - {0x011800, 0x01182b, WB_ALetter }, - {0x01182c, 0x01183a, WB_Extend }, - {0x0118a0, 0x0118df, WB_ALetter }, - {0x0118e0, 0x0118e9, WB_Numeric }, - {0x0118ff, 0x0118ff, WB_ALetter }, - {0x0119a0, 0x0119a7, WB_ALetter }, - {0x0119aa, 0x0119d0, WB_ALetter }, - {0x0119d1, 0x0119d7, WB_Extend }, - {0x0119da, 0x0119e0, WB_Extend }, - {0x0119e1, 0x0119e1, WB_ALetter }, - {0x0119e3, 0x0119e3, WB_ALetter }, - {0x0119e4, 0x0119e4, WB_Extend }, - {0x011a00, 0x011a00, WB_ALetter }, - {0x011a01, 0x011a0a, WB_Extend }, - {0x011a0b, 0x011a32, WB_ALetter }, - {0x011a33, 0x011a39, WB_Extend }, - {0x011a3a, 0x011a3a, WB_ALetter }, - {0x011a3b, 0x011a3e, WB_Extend }, - {0x011a47, 0x011a47, WB_Extend }, - {0x011a50, 0x011a50, WB_ALetter }, - {0x011a51, 0x011a5b, WB_Extend }, - {0x011a5c, 0x011a89, WB_ALetter }, - {0x011a8a, 0x011a99, WB_Extend }, - {0x011a9d, 0x011a9d, WB_ALetter }, - {0x011ac0, 0x011af8, WB_ALetter }, - {0x011c00, 0x011c08, WB_ALetter }, - {0x011c0a, 0x011c2e, WB_ALetter }, - {0x011c2f, 0x011c36, WB_Extend }, - {0x011c38, 0x011c3f, WB_Extend }, - {0x011c40, 0x011c40, WB_ALetter }, - {0x011c50, 0x011c59, WB_Numeric }, - {0x011c72, 0x011c8f, WB_ALetter }, - {0x011c92, 0x011ca7, WB_Extend }, - {0x011ca9, 0x011cb6, WB_Extend }, - {0x011d00, 0x011d06, WB_ALetter }, - {0x011d08, 0x011d09, WB_ALetter }, - {0x011d0b, 0x011d30, WB_ALetter }, - {0x011d31, 0x011d36, WB_Extend }, - {0x011d3a, 0x011d3a, WB_Extend }, - {0x011d3c, 0x011d3d, WB_Extend }, - {0x011d3f, 0x011d45, WB_Extend }, - {0x011d46, 0x011d46, WB_ALetter }, - {0x011d47, 0x011d47, WB_Extend }, - {0x011d50, 0x011d59, WB_Numeric }, - {0x011d60, 0x011d65, WB_ALetter }, - {0x011d67, 0x011d68, WB_ALetter }, - {0x011d6a, 0x011d89, WB_ALetter }, - {0x011d8a, 0x011d8e, WB_Extend }, - {0x011d90, 0x011d91, WB_Extend }, - {0x011d93, 0x011d97, WB_Extend }, - {0x011d98, 0x011d98, WB_ALetter }, - {0x011da0, 0x011da9, WB_Numeric }, - {0x011ee0, 0x011ef2, WB_ALetter }, - {0x011ef3, 0x011ef6, WB_Extend }, - {0x012000, 0x012399, WB_ALetter }, - {0x012400, 0x01246e, WB_ALetter }, - {0x012480, 0x012543, WB_ALetter }, - {0x013000, 0x01342e, WB_ALetter }, - {0x013430, 0x013438, WB_Format }, - {0x014400, 0x014646, WB_ALetter }, - {0x016800, 0x016a38, WB_ALetter }, - {0x016a40, 0x016a5e, WB_ALetter }, - {0x016a60, 0x016a69, WB_Numeric }, - {0x016ad0, 0x016aed, WB_ALetter }, - {0x016af0, 0x016af4, WB_Extend }, - {0x016b00, 0x016b2f, WB_ALetter }, - {0x016b30, 0x016b36, WB_Extend }, - {0x016b40, 0x016b43, WB_ALetter }, - {0x016b50, 0x016b59, WB_Numeric }, - {0x016b63, 0x016b77, WB_ALetter }, - {0x016b7d, 0x016b8f, WB_ALetter }, - {0x016e40, 0x016e7f, WB_ALetter }, - {0x016f00, 0x016f4a, WB_ALetter }, - {0x016f4f, 0x016f4f, WB_Extend }, - {0x016f50, 0x016f50, WB_ALetter }, - {0x016f51, 0x016f87, WB_Extend }, - {0x016f8f, 0x016f92, WB_Extend }, - {0x016f93, 0x016f9f, WB_ALetter }, - {0x016fe0, 0x016fe1, WB_ALetter }, - {0x016fe3, 0x016fe3, WB_ALetter }, - {0x01b000, 0x01b000, WB_Katakana }, - {0x01b164, 0x01b167, WB_Katakana }, - {0x01bc00, 0x01bc6a, WB_ALetter }, - {0x01bc70, 0x01bc7c, WB_ALetter }, - {0x01bc80, 0x01bc88, WB_ALetter }, - {0x01bc90, 0x01bc99, WB_ALetter }, - {0x01bc9d, 0x01bc9e, WB_Extend }, - {0x01bca0, 0x01bca3, WB_Format }, - {0x01d165, 0x01d169, WB_Extend }, - {0x01d16d, 0x01d172, WB_Extend }, - {0x01d173, 0x01d17a, WB_Format }, - {0x01d17b, 0x01d182, WB_Extend }, - {0x01d185, 0x01d18b, WB_Extend }, - {0x01d1aa, 0x01d1ad, WB_Extend }, - {0x01d242, 0x01d244, WB_Extend }, - {0x01d400, 0x01d454, WB_ALetter }, - {0x01d456, 0x01d49c, WB_ALetter }, - {0x01d49e, 0x01d49f, WB_ALetter }, - {0x01d4a2, 0x01d4a2, WB_ALetter }, - {0x01d4a5, 0x01d4a6, WB_ALetter }, - {0x01d4a9, 0x01d4ac, WB_ALetter }, - {0x01d4ae, 0x01d4b9, WB_ALetter }, - {0x01d4bb, 0x01d4bb, WB_ALetter }, - {0x01d4bd, 0x01d4c3, WB_ALetter }, - {0x01d4c5, 0x01d505, WB_ALetter }, - {0x01d507, 0x01d50a, WB_ALetter }, - {0x01d50d, 0x01d514, WB_ALetter }, - {0x01d516, 0x01d51c, WB_ALetter }, - {0x01d51e, 0x01d539, WB_ALetter }, - {0x01d53b, 0x01d53e, WB_ALetter }, - {0x01d540, 0x01d544, WB_ALetter }, - {0x01d546, 0x01d546, WB_ALetter }, - {0x01d54a, 0x01d550, WB_ALetter }, - {0x01d552, 0x01d6a5, WB_ALetter }, - {0x01d6a8, 0x01d6c0, WB_ALetter }, - {0x01d6c2, 0x01d6da, WB_ALetter }, - {0x01d6dc, 0x01d6fa, WB_ALetter }, - {0x01d6fc, 0x01d714, WB_ALetter }, - {0x01d716, 0x01d734, WB_ALetter }, - {0x01d736, 0x01d74e, WB_ALetter }, - {0x01d750, 0x01d76e, WB_ALetter }, - {0x01d770, 0x01d788, WB_ALetter }, - {0x01d78a, 0x01d7a8, WB_ALetter }, - {0x01d7aa, 0x01d7c2, WB_ALetter }, - {0x01d7c4, 0x01d7cb, WB_ALetter }, - {0x01d7ce, 0x01d7ff, WB_Numeric }, - {0x01da00, 0x01da36, WB_Extend }, - {0x01da3b, 0x01da6c, WB_Extend }, - {0x01da75, 0x01da75, WB_Extend }, - {0x01da84, 0x01da84, WB_Extend }, - {0x01da9b, 0x01da9f, WB_Extend }, - {0x01daa1, 0x01daaf, WB_Extend }, - {0x01e000, 0x01e006, WB_Extend }, - {0x01e008, 0x01e018, WB_Extend }, - {0x01e01b, 0x01e021, WB_Extend }, - {0x01e023, 0x01e024, WB_Extend }, - {0x01e026, 0x01e02a, WB_Extend }, - {0x01e100, 0x01e12c, WB_ALetter }, - {0x01e130, 0x01e136, WB_Extend }, - {0x01e137, 0x01e13d, WB_ALetter }, - {0x01e140, 0x01e149, WB_Numeric }, - {0x01e14e, 0x01e14e, WB_ALetter }, - {0x01e2c0, 0x01e2eb, WB_ALetter }, - {0x01e2ec, 0x01e2ef, WB_Extend }, - {0x01e2f0, 0x01e2f9, WB_Numeric }, - {0x01e800, 0x01e8c4, WB_ALetter }, - {0x01e8d0, 0x01e8d6, WB_Extend }, - {0x01e900, 0x01e943, WB_ALetter }, - {0x01e944, 0x01e94a, WB_Extend }, - {0x01e94b, 0x01e94b, WB_ALetter }, - {0x01e950, 0x01e959, WB_Numeric }, - {0x01ee00, 0x01ee03, WB_ALetter }, - {0x01ee05, 0x01ee1f, WB_ALetter }, - {0x01ee21, 0x01ee22, WB_ALetter }, - {0x01ee24, 0x01ee24, WB_ALetter }, - {0x01ee27, 0x01ee27, WB_ALetter }, - {0x01ee29, 0x01ee32, WB_ALetter }, - {0x01ee34, 0x01ee37, WB_ALetter }, - {0x01ee39, 0x01ee39, WB_ALetter }, - {0x01ee3b, 0x01ee3b, WB_ALetter }, - {0x01ee42, 0x01ee42, WB_ALetter }, - {0x01ee47, 0x01ee47, WB_ALetter }, - {0x01ee49, 0x01ee49, WB_ALetter }, - {0x01ee4b, 0x01ee4b, WB_ALetter }, - {0x01ee4d, 0x01ee4f, WB_ALetter }, - {0x01ee51, 0x01ee52, WB_ALetter }, - {0x01ee54, 0x01ee54, WB_ALetter }, - {0x01ee57, 0x01ee57, WB_ALetter }, - {0x01ee59, 0x01ee59, WB_ALetter }, - {0x01ee5b, 0x01ee5b, WB_ALetter }, - {0x01ee5d, 0x01ee5d, WB_ALetter }, - {0x01ee5f, 0x01ee5f, WB_ALetter }, - {0x01ee61, 0x01ee62, WB_ALetter }, - {0x01ee64, 0x01ee64, WB_ALetter }, - {0x01ee67, 0x01ee6a, WB_ALetter }, - {0x01ee6c, 0x01ee72, WB_ALetter }, - {0x01ee74, 0x01ee77, WB_ALetter }, - {0x01ee79, 0x01ee7c, WB_ALetter }, - {0x01ee7e, 0x01ee7e, WB_ALetter }, - {0x01ee80, 0x01ee89, WB_ALetter }, - {0x01ee8b, 0x01ee9b, WB_ALetter }, - {0x01eea1, 0x01eea3, WB_ALetter }, - {0x01eea5, 0x01eea9, WB_ALetter }, - {0x01eeab, 0x01eebb, WB_ALetter }, - {0x01f130, 0x01f149, WB_ALetter }, - {0x01f150, 0x01f169, WB_ALetter }, - {0x01f170, 0x01f189, WB_ALetter }, - {0x01f1e6, 0x01f1ff, WB_Regional_Indicator }, - {0x01f3fb, 0x01f3ff, WB_Extend }, - {0x0e0001, 0x0e0001, WB_Format }, - {0x0e0020, 0x0e007f, WB_Extend }, - {0x0e0100, 0x0e01ef, WB_Extend } -}; diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/utf16_le.c b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/utf16_le.c deleted file mode 100644 index 535713852f7d..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/utf16_le.c +++ /dev/null @@ -1,309 +0,0 @@ -/********************************************************************** - utf16_le.c - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "regint.h" /* for USE_CALLOUT */ - -static int -init(void) -{ -#ifdef USE_CALLOUT - - int id; - OnigEncoding enc; - char* name; - unsigned int args[4]; - OnigValue opts[4]; - - enc = ONIG_ENCODING_UTF16_LE; - - name = "F\000A\000I\000L\000\000\000"; BC0_P(name, fail); - name = "M\000I\000S\000M\000A\000T\000C\000H\000\000\000"; BC0_P(name, mismatch); - - name = "M\000A\000X\000\000\000"; - args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; - args[1] = ONIG_TYPE_CHAR; - opts[0].c = 'X'; - BC_B_O(name, max, 2, args, 1, opts); - - name = "E\000R\000R\000O\000R\000\000\000"; - args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT; - BC_P_O(name, error, 1, args, 1, opts); - - name = "C\000O\000U\000N\000T\000\000\000"; - args[0] = ONIG_TYPE_CHAR; opts[0].c = '>'; - BC_B_O(name, count, 1, args, 1, opts); - - name = "T\000O\000T\000A\000L\000_\000C\000O\000U\000N\000T\000\000\000"; - args[0] = ONIG_TYPE_CHAR; opts[0].c = '>'; - BC_B_O(name, total_count, 1, args, 1, opts); - - name = "C\000M\000P\000\000\000"; - args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; - args[1] = ONIG_TYPE_STRING; - args[2] = ONIG_TYPE_TAG | ONIG_TYPE_LONG; - BC_P(name, cmp, 3, args); - -#endif /* USE_CALLOUT */ - - return ONIG_NORMAL; -} - -static const int EncLen_UTF16[] = { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -}; - -static int -utf16le_code_to_mbclen(OnigCodePoint code) -{ - if (code > 0xffff) { - if (code > 0x10ffff) - return ONIGERR_INVALID_CODE_POINT_VALUE; - else - return 4; - } - else { - return 2; - } -} - -static int -utf16le_mbc_enc_len(const UChar* p) -{ - return EncLen_UTF16[*(p+1)]; -} - -static int -is_valid_mbc_string(const UChar* p, const UChar* end) -{ - const UChar* end1 = end - 1; - - while (p < end1) { - int len = utf16le_mbc_enc_len(p); - if (len == 4) { - if (p + 3 < end && ! UTF16_IS_SURROGATE_SECOND(*(p + 3))) - return FALSE; - } - else - if (UTF16_IS_SURROGATE_SECOND(*(p + 1))) - return FALSE; - - p += len; - } - - if (p != end) - return FALSE; - else - return TRUE; -} - -static int -utf16le_is_mbc_newline(const UChar* p, const UChar* end) -{ - if (p + 1 < end) { - if (*p == 0x0a && *(p+1) == 0x00) - return 1; -#ifdef USE_UNICODE_ALL_LINE_TERMINATORS - if (( -#ifndef USE_CRNL_AS_LINE_TERMINATOR - *p == 0x0d || -#endif - *p == 0x85) && *(p+1) == 0x00) - return 1; - - if (*(p+1) == 0x20 && (*p == 0x29 || *p == 0x28)) - return 1; -#endif - } - return 0; -} - -static OnigCodePoint -utf16le_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED) -{ - OnigCodePoint code; - UChar c0 = *p; - UChar c1 = *(p+1); - - if (UTF16_IS_SURROGATE_FIRST(c1)) { - code = ((((c1 - 0xd8) << 2) + ((c0 & 0xc0) >> 6) + 1) << 16) - + ((((c0 & 0x3f) << 2) + (p[3] - 0xdc)) << 8) - + p[2]; - } - else { - code = c1 * 256 + p[0]; - } - return code; -} - -static int -utf16le_code_to_mbc(OnigCodePoint code, UChar *buf) -{ - UChar* p = buf; - - if (code > 0xffff) { - unsigned int plane, high; - - plane = (code >> 16) - 1; - high = (code & 0xff00) >> 8; - - *p++ = ((plane & 0x03) << 6) + (high >> 2); - *p++ = (plane >> 2) + 0xd8; - *p++ = (UChar )(code & 0xff); - *p = (high & 0x03) + 0xdc; - return 4; - } - else { - *p++ = (UChar )(code & 0xff); - *p++ = (UChar )((code & 0xff00) >> 8); - return 2; - } -} - -static int -utf16le_mbc_case_fold(OnigCaseFoldType flag, - const UChar** pp, const UChar* end, UChar* fold) -{ - const UChar* p = *pp; - - if (ONIGENC_IS_ASCII_CODE(*p) && *(p+1) == 0) { -#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI - if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) { - if (*p == 0x49) { - *fold++ = 0x31; - *fold = 0x01; - (*pp) += 2; - return 2; - } - } -#endif - - *fold++ = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p); - *fold = 0; - *pp += 2; - return 2; - } - else - return onigenc_unicode_mbc_case_fold(ONIG_ENCODING_UTF16_LE, flag, pp, end, - fold); -} - -#if 0 -static int -utf16le_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, - const UChar* end) -{ - const UChar* p = *pp; - - (*pp) += EncLen_UTF16[*(p+1)]; - - if (*(p+1) == 0) { - int c, v; - - if (*p == 0xdf && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) { - return TRUE; - } - - c = *p; - v = ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(c, - (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER)); - if ((v | BIT_CTYPE_LOWER) != 0) { - /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */ - if (c >= 0xaa && c <= 0xba) - return FALSE; - else - return TRUE; - } - return (v != 0 ? TRUE : FALSE); - } - - return FALSE; -} -#endif - -static UChar* -utf16le_left_adjust_char_head(const UChar* start, const UChar* s) -{ - if (s <= start) return (UChar* )s; - - if ((s - start) % 2 == 1) { - s--; - } - - if (UTF16_IS_SURROGATE_SECOND(*(s+1)) && s > start + 1 && - UTF16_IS_SURROGATE_FIRST(*(s-1))) - s -= 2; - - return (UChar* )s; -} - -static int -utf16le_get_case_fold_codes_by_str(OnigCaseFoldType flag, - const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]) -{ - return onigenc_unicode_get_case_fold_codes_by_str(ONIG_ENCODING_UTF16_LE, - flag, p, end, items); -} - -OnigEncodingType OnigEncodingUTF16_LE = { - utf16le_mbc_enc_len, - "UTF-16LE", /* name */ - 4, /* max enc length */ - 2, /* min enc length */ - utf16le_is_mbc_newline, - utf16le_mbc_to_code, - utf16le_code_to_mbclen, - utf16le_code_to_mbc, - utf16le_mbc_case_fold, - onigenc_unicode_apply_all_case_fold, - utf16le_get_case_fold_codes_by_str, - onigenc_unicode_property_name_to_ctype, - onigenc_unicode_is_code_ctype, - onigenc_utf16_32_get_ctype_code_range, - utf16le_left_adjust_char_head, - onigenc_always_false_is_allowed_reverse_match, - init, - 0, /* is_initialized */ - is_valid_mbc_string, - ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_1, - 0, 0 -}; diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaIntrinsics.c b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c similarity index 91% rename from MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaIntrinsics.c rename to MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c index 05584a4b4f81..536c7e0f1b26 100644 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaIntrinsics.c +++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c @@ -3,6 +3,7 @@ Provide intrinsics within Oniguruma (C) Copyright 2015 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c new file mode 100644 index 000000000000..a2baa4dd0dd1 --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c @@ -0,0 +1,90 @@ +/** @file + + Module to rewrite stdlib references within Oniguruma + + (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2020, Intel Corporation. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ +#include "OnigurumaUefiPort.h" + +#define ONIGMEM_HEAD_SIGNATURE SIGNATURE_32('o','m','h','d') + +typedef struct { + UINT32 Signature; + UINTN Size; +} ONIGMEM_HEAD; + +#define ONIGMEM_OVERHEAD sizeof(ONIGMEM_HEAD) + +int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...) +{ + VA_LIST Marker; + int NumberOfPrinted; + + VA_START (Marker, fmt); + NumberOfPrinted = (int)AsciiVSPrint (str, sizeOfBuffer, fmt, Marker); + VA_END (Marker); + + return NumberOfPrinted; +} + +int OnigStrCmp (char* Str1, char* Str2) +{ + return (int)AsciiStrCmp (Str1, Str2); +} + +int strlen(const char* str) +{ + return strlen_s(str, MAX_STRING_SIZE); +} + +void * malloc (size_t size) +{ + ONIGMEM_HEAD *PoolHdr; + UINTN NewSize; + VOID *Data; + + NewSize = (UINTN)(size) + ONIGMEM_OVERHEAD; + + Data = AllocatePool (NewSize); + if (Data != NULL) { + PoolHdr = (ONIGMEM_HEAD *)Data; + PoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE; + PoolHdr->Size = size; + + return (VOID *)(PoolHdr + 1); + } + return NULL; +} + +void * realloc (void *ptr, size_t size) +{ + ONIGMEM_HEAD *OldPoolHdr; + ONIGMEM_HEAD *NewPoolHdr; + UINTN OldSize; + UINTN NewSize; + VOID *Data; + + NewSize = (UINTN)size + ONIGMEM_OVERHEAD; + Data = AllocatePool (NewSize); + if (Data != NULL) { + NewPoolHdr = (ONIGMEM_HEAD *)Data; + NewPoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE; + NewPoolHdr->Size = size; + if (ptr != NULL) { + OldPoolHdr = (ONIGMEM_HEAD *)ptr - 1; + ASSERT (OldPoolHdr->Signature == ONIGMEM_HEAD_SIGNATURE); + OldSize = OldPoolHdr->Size; + + CopyMem ((VOID *)(NewPoolHdr + 1), ptr, MIN (OldSize, size)); + FreePool ((VOID *)OldPoolHdr); + } + + return (VOID *)(NewPoolHdr + 1); + } + + return NULL; +} + diff --git a/.gitmodules b/.gitmodules index b30f5bf136bc..87fe46f7fa7b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "UnitTestFrameworkPkg/Library/CmockaLib/cmocka"] path = UnitTestFrameworkPkg/Library/CmockaLib/cmocka url = https://git.cryptomilk.org/projects/cmocka.git +[submodule "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma"] + path = MdeModulePkg/Universal/RegularExpressionDxe/oniguruma + url = https://github.com/kkos/oniguruma diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/AUTHORS b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/AUTHORS deleted file mode 100644 index 3005435d8fae..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/AUTHORS +++ /dev/null @@ -1 +0,0 @@ - (K.Kosako) diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/COPYING b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/COPYING deleted file mode 100644 index e17cee6be203..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/COPYING +++ /dev/null @@ -1,26 +0,0 @@ -Oniguruma LICENSE ------------------ - -Copyright (c) 2002-2018 K.Kosako -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/README b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/README deleted file mode 100644 index 4975466cedf2..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/README +++ /dev/null @@ -1,195 +0,0 @@ -README 2018/04/05 - -Oniguruma ---- (C) K.Kosako - -https://github.com/kkos/oniguruma - -FIXED Security Issues (in Oniguruma 6.3.0): - CVE-2017-9224, CVE-2017-9225, CVE-2017-9226 - CVE-2017-9227, CVE-2017-9228, CVE-2017-9229 - ---- -Oniguruma is a modern and flexible regular expressions library. It -encompasses features from different regular expression implementations -that traditionally exist in different languages. It comes close to -being a complete superset of all regular expression features found -in other regular expression implementations. - -Its features include: -* Character encoding can be specified per regular expression object. -* Several regular expression types are supported: - * POSIX - * Grep - * GNU Regex - * Perl - * Java - * Ruby - * Emacs - -Supported character encodings: - - ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, - EUC-JP, EUC-TW, EUC-KR, EUC-CN, - Shift_JIS, Big5, GB18030, KOI8-R, CP1251, - ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, - ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, - ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16 - -* GB18030: contributed by KUBO Takehiro -* CP1251: contributed by Byte ------------------------------------------------------------- - -License - - BSD license. - - -Install - - Case 1: Unix and Cygwin platform - - 1. autoreconf -vfi (* case: configure script is not found.) - - 2. ./configure - 3. make - 4. make install - - * uninstall - - make uninstall - - * configuration check - - onig-config --cflags - onig-config --libs - onig-config --prefix - onig-config --exec-prefix - - - - Case 2: Windows 64/32bit platform (Visual Studio) - - execute make_win64 or make_win32 - - src/onig_s.lib: static link library - src/onig.dll: dynamic link library - - * test (ASCII/Shift_JIS) - 1. cd src - 2. copy ..\windows\testc.c . - 3. nmake -f Makefile.windows ctest - - (I have checked by Visual Studio Community 2015) - - - -Regular Expressions - - See doc/RE (or doc/RE.ja for Japanese). - - -Usage - - Include oniguruma.h in your program. (Oniguruma API) - See doc/API for Oniguruma API. - - If you want to disable UChar type (== unsigned char) definition - in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then - include oniguruma.h. - - If you want to disable regex_t type definition in oniguruma.h, - define ONIG_ESCAPE_REGEX_T_COLLISION and then include oniguruma.h. - - Example of the compiling/linking command line in Unix or Cygwin, - (prefix == /usr/local case) - - cc sample.c -L/usr/local/lib -lonig - - - If you want to use static link library(onig_s.lib) in Win32, - add option -DONIG_EXTERN=extern to C compiler. - - - -Sample Programs - - sample/simple.c example of the minimum (Oniguruma API) - sample/names.c example of the named group callback. - sample/encode.c example of some encodings. - sample/listcap.c example of the capture history. - sample/posix.c POSIX API sample. - sample/sql.c example of the variable meta characters. - (SQL-like pattern matching) - sample/user_property.c example of user defined Unicode property. - -Test Programs - sample/syntax.c Perl, Java and ASIS syntax test. - sample/crnl.c --enable-crnl-as-line-terminator test - - -Source Files - - oniguruma.h Oniguruma API header file. (public) - onig-config.in configuration check program template. - - regenc.h character encodings framework header file. - regint.h internal definitions - regparse.h internal definitions for regparse.c and regcomp.c - regcomp.c compiling and optimization functions - regenc.c character encodings framework. - regerror.c error message function - regext.c extended API functions. (deluxe version API) - regexec.c search and match functions - regparse.c parsing functions. - regsyntax.c pattern syntax functions and built-in syntax definitions. - regtrav.c capture history tree data traverse functions. - regversion.c version info function. - st.h hash table functions header file - st.c hash table functions - - oniggnu.h GNU regex API header file. (public) - reggnu.c GNU regex API functions - - onigposix.h POSIX API header file. (public) - regposerr.c POSIX error message function. - regposix.c POSIX API functions. - - mktable.c character type table generator. - ascii.c ASCII encoding. - euc_jp.c EUC-JP encoding. - euc_tw.c EUC-TW encoding. - euc_kr.c EUC-KR, EUC-CN encoding. - sjis.c Shift_JIS encoding. - big5.c Big5 encoding. - gb18030.c GB18030 encoding. - koi8.c KOI8 encoding. - koi8_r.c KOI8-R encoding. - cp1251.c CP1251 encoding. - iso8859_1.c ISO-8859-1 encoding. (Latin-1) - iso8859_2.c ISO-8859-2 encoding. (Latin-2) - iso8859_3.c ISO-8859-3 encoding. (Latin-3) - iso8859_4.c ISO-8859-4 encoding. (Latin-4) - iso8859_5.c ISO-8859-5 encoding. (Cyrillic) - iso8859_6.c ISO-8859-6 encoding. (Arabic) - iso8859_7.c ISO-8859-7 encoding. (Greek) - iso8859_8.c ISO-8859-8 encoding. (Hebrew) - iso8859_9.c ISO-8859-9 encoding. (Latin-5 or Turkish) - iso8859_10.c ISO-8859-10 encoding. (Latin-6 or Nordic) - iso8859_11.c ISO-8859-11 encoding. (Thai) - iso8859_13.c ISO-8859-13 encoding. (Latin-7 or Baltic Rim) - iso8859_14.c ISO-8859-14 encoding. (Latin-8 or Celtic) - iso8859_15.c ISO-8859-15 encoding. (Latin-9 or West European with Euro) - iso8859_16.c ISO-8859-16 encoding. - (Latin-10 or South-Eastern European with Euro) - utf8.c UTF-8 encoding. - utf16_be.c UTF-16BE encoding. - utf16_le.c UTF-16LE encoding. - utf32_be.c UTF-32BE encoding. - utf32_le.c UTF-32LE encoding. - unicode.c common codes of Unicode encoding. - - win32/Makefile Makefile for Win32 (VC++) - win32/config.h config.h for Win32 - - -and I'm thankful to Akinori MUSHA. diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniggnu.h b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniggnu.h deleted file mode 100644 index 313e5915c3ea..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniggnu.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef ONIGGNU_H -#define ONIGGNU_H -/********************************************************************** - oniggnu.h - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2005 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "oniguruma.h" - -#ifdef __cplusplus -extern "C" { -#endif - -enum { - RE_MBCTYPE_ASCII = 0, - RE_MBCTYPE_EUC = 1, - RE_MBCTYPE_SJIS = 2, - RE_MBCTYPE_UTF8 = 3 -}; - -/* GNU regex options */ -#ifndef RE_NREGS -#define RE_NREGS ONIG_NREGION -#endif - -#define RE_OPTION_IGNORECASE ONIG_OPTION_IGNORECASE -#define RE_OPTION_EXTENDED ONIG_OPTION_EXTEND -#define RE_OPTION_MULTILINE ONIG_OPTION_MULTILINE -#define RE_OPTION_SINGLELINE ONIG_OPTION_SINGLELINE -#define RE_OPTION_LONGEST ONIG_OPTION_FIND_LONGEST -#define RE_OPTION_POSIXLINE (RE_OPTION_MULTILINE|RE_OPTION_SINGLELINE) -#define RE_OPTION_FIND_NOT_EMPTY ONIG_OPTION_FIND_NOT_EMPTY -#define RE_OPTION_NEGATE_SINGLELINE ONIG_OPTION_NEGATE_SINGLELINE -#define RE_OPTION_DONT_CAPTURE_GROUP ONIG_OPTION_DONT_CAPTURE_GROUP -#define RE_OPTION_CAPTURE_GROUP ONIG_OPTION_CAPTURE_GROUP - - -ONIG_EXTERN -void re_mbcinit P_((int)); -ONIG_EXTERN -int re_compile_pattern P_((const char*, int, struct re_pattern_buffer*, char* err_buf)); -ONIG_EXTERN -int re_recompile_pattern P_((const char*, int, struct re_pattern_buffer*, char* err_buf)); -ONIG_EXTERN -void re_free_pattern P_((struct re_pattern_buffer*)); -ONIG_EXTERN -int re_adjust_startpos P_((struct re_pattern_buffer*, const char*, int, int, int)); -ONIG_EXTERN -int re_search P_((struct re_pattern_buffer*, const char*, int, int, int, struct re_registers*)); -ONIG_EXTERN -int re_match P_((struct re_pattern_buffer*, const char *, int, int, struct re_registers*)); -ONIG_EXTERN -void re_set_casetable P_((const char*)); -ONIG_EXTERN -void re_free_registers P_((struct re_registers*)); -ONIG_EXTERN -int re_alloc_pattern P_((struct re_pattern_buffer**)); /* added */ - -#ifdef __cplusplus -} -#endif - -#endif /* ONIGGNU_H */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onigposix.h b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onigposix.h deleted file mode 100644 index 62266da76e75..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/onigposix.h +++ /dev/null @@ -1,172 +0,0 @@ -#ifndef ONIGPOSIX_H -#define ONIGPOSIX_H -/********************************************************************** - onigposix.h - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2018 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#include "OnigurumaUefiPort.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* options */ -#define REG_ICASE (1<<0) -#define REG_NEWLINE (1<<1) -#define REG_NOTBOL (1<<2) -#define REG_NOTEOL (1<<3) -#define REG_EXTENDED (1<<4) /* if not set, Basic Onigular Expression */ -#define REG_NOSUB (1<<5) - -/* POSIX error codes */ -#define REG_NOMATCH 1 -#define REG_BADPAT 2 -#define REG_ECOLLATE 3 -#define REG_ECTYPE 4 -#define REG_EESCAPE 5 -#define REG_ESUBREG 6 -#define REG_EBRACK 7 -#define REG_EPAREN 8 -#define REG_EBRACE 9 -#define REG_BADBR 10 -#define REG_ERANGE 11 -#define REG_ESPACE 12 -#define REG_BADRPT 13 - -/* extended error codes */ -#define REG_EONIG_INTERNAL 14 -#define REG_EONIG_BADWC 15 -#define REG_EONIG_BADARG 16 -/* #define REG_EONIG_THREAD 17 */ - -/* character encodings (for reg_set_encoding()) */ -#define REG_POSIX_ENCODING_ASCII 0 -#define REG_POSIX_ENCODING_EUC_JP 1 -#define REG_POSIX_ENCODING_SJIS 2 -#define REG_POSIX_ENCODING_UTF8 3 -#define REG_POSIX_ENCODING_UTF16_BE 4 -#define REG_POSIX_ENCODING_UTF16_LE 5 - - -typedef int regoff_t; - -typedef struct { - regoff_t rm_so; - regoff_t rm_eo; -} regmatch_t; - -/* POSIX regex_t */ -typedef struct { - void* onig; /* Oniguruma regex_t* */ - size_t re_nsub; - int comp_options; -} regex_t; - - -#ifndef P_ -#if defined(__STDC__) || defined(_WIN32) -# define P_(args) args -#else -# define P_(args) () -#endif -#endif - -#ifndef ONIG_EXTERN -#if defined(_WIN32) && !defined(__GNUC__) -#if defined(ONIGURUMA_EXPORT) -#define ONIG_EXTERN extern __declspec(dllexport) -#else -#define ONIG_EXTERN extern __declspec(dllimport) -#endif -#endif -#endif - -#ifndef ONIG_EXTERN -#define ONIG_EXTERN extern -#endif - -#ifndef ONIGURUMA_H -typedef unsigned int OnigOptionType; - -/* syntax */ -typedef struct { - unsigned int op; - unsigned int op2; - unsigned int behavior; - OnigOptionType options; /* default option */ -} OnigSyntaxType; - -ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic; -ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended; -ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs; -ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep; -ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex; -ONIG_EXTERN OnigSyntaxType OnigSyntaxJava; -ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl; -ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby; -ONIG_EXTERN OnigSyntaxType OnigSyntaxOniguruma; - -/* predefined syntaxes (see regsyntax.c) */ -#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic) -#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended) -#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs) -#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) -#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) -#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) -#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) -#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) -#define ONIG_SYNTAX_ONIGURUMA (&OnigSyntaxOniguruma) -/* default syntax */ -#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax - -ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; - -ONIG_EXTERN int onig_set_default_syntax P_((OnigSyntaxType* syntax)); -ONIG_EXTERN void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from)); -ONIG_EXTERN const char* onig_version P_((void)); -ONIG_EXTERN const char* onig_copyright P_((void)); -ONIG_EXTERN int onig_end P_((void)); - -#endif /* ONIGURUMA_H */ - - -ONIG_EXTERN int regcomp P_((regex_t* reg, const char* pat, int options)); -ONIG_EXTERN int regexec P_((regex_t* reg, const char* str, size_t nmatch, regmatch_t* matches, int options)); -ONIG_EXTERN void regfree P_((regex_t* reg)); -ONIG_EXTERN size_t regerror P_((int code, const regex_t* reg, char* buf, size_t size)); - -/* extended API */ -ONIG_EXTERN void reg_set_encoding P_((int enc)); -ONIG_EXTERN int reg_name_to_group_numbers P_((regex_t* reg, const unsigned char* name, const unsigned char* name_end, int** nums)); -ONIG_EXTERN int reg_foreach_name P_((regex_t* reg, int (*func)(const unsigned char*, const unsigned char*,int,int*,regex_t*,void*), void* arg)); -ONIG_EXTERN int reg_number_of_names P_((regex_t* reg)); - -#ifdef __cplusplus -} -#endif - -#endif /* ONIGPOSIX_H */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h deleted file mode 100644 index a2158e5cf971..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/oniguruma.h +++ /dev/null @@ -1,1014 +0,0 @@ -#ifndef ONIGURUMA_H -#define ONIGURUMA_H -/********************************************************************** - oniguruma.h - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "OnigurumaUefiPort.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ONIGURUMA -#define ONIGURUMA_VERSION_MAJOR 6 -#define ONIGURUMA_VERSION_MINOR 9 -#define ONIGURUMA_VERSION_TEENY 3 - -#define ONIGURUMA_VERSION_INT 60903 - -#ifndef P_ -#if defined(__STDC__) || defined(_WIN32) -# define P_(args) args -#else -# define P_(args) () -#endif -#endif - -#ifndef PV_ -# define PV_(args) args -#endif - -#ifndef ONIG_STATIC -#ifndef ONIG_EXTERN -#if defined(_WIN32) && !defined(__GNUC__) -#if defined(ONIGURUMA_EXPORT) -#define ONIG_EXTERN extern __declspec(dllexport) -#else -#define ONIG_EXTERN extern __declspec(dllimport) -#endif -#endif -#endif - -#ifndef ONIG_EXTERN -#define ONIG_EXTERN extern -#endif -#else -#define ONIG_EXTERN extern -#endif - -/* PART: character encoding */ - -#ifndef ONIG_ESCAPE_UCHAR_COLLISION -#define UChar OnigUChar -#endif - -typedef unsigned int OnigCodePoint; -typedef unsigned char OnigUChar; -typedef unsigned int OnigCtype; -typedef unsigned int OnigLen; - -#define ONIG_INFINITE_DISTANCE ~((OnigLen )0) - -typedef unsigned int OnigCaseFoldType; /* case fold flag */ - -ONIG_EXTERN OnigCaseFoldType OnigDefaultCaseFoldFlag; - -/* #define ONIGENC_CASE_FOLD_HIRAGANA_KATAKANA (1<<1) */ -/* #define ONIGENC_CASE_FOLD_KATAKANA_WIDTH (1<<2) */ -#define ONIGENC_CASE_FOLD_TURKISH_AZERI (1<<20) -#define INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR (1<<30) - -#define ONIGENC_CASE_FOLD_MIN INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR -#define ONIGENC_CASE_FOLD_DEFAULT OnigDefaultCaseFoldFlag - - -#define ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN 3 -#define ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM 13 -/* 13 => Unicode:0x1ffc */ - -/* code range */ -#define ONIGENC_CODE_RANGE_NUM(range) ((int )range[0]) -#define ONIGENC_CODE_RANGE_FROM(range,i) range[((i)*2) + 1] -#define ONIGENC_CODE_RANGE_TO(range,i) range[((i)*2) + 2] - -typedef struct { - int byte_len; /* argument(original) character(s) byte length */ - int code_len; /* number of code */ - OnigCodePoint code[ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN]; -} OnigCaseFoldCodeItem; - -typedef struct { - OnigCodePoint esc; - OnigCodePoint anychar; - OnigCodePoint anytime; - OnigCodePoint zero_or_one_time; - OnigCodePoint one_or_more_time; - OnigCodePoint anychar_anytime; -} OnigMetaCharTableType; - -typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg); - -typedef struct OnigEncodingTypeST { - int (*mbc_enc_len)(const OnigUChar* p); - const char* name; - int max_enc_len; - int min_enc_len; - int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end); - OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end); - int (*code_to_mbclen)(OnigCodePoint code); - int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf); - int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to); - int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg); - int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[]); - int (*property_name_to_ctype)(struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end); - int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype); - int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[]); - OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p); - int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end); - int (*init)(void); - int (*is_initialized)(void); - int (*is_valid_mbc_string)(const OnigUChar* s, const OnigUChar* end); - unsigned int flag; - OnigCodePoint sb_range; - int index; -} OnigEncodingType; - -typedef OnigEncodingType* OnigEncoding; - -ONIG_EXTERN OnigEncodingType OnigEncodingASCII; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_1; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_2; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_3; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_4; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_5; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_6; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_7; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_8; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_9; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_10; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_11; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_13; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_14; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_15; -ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_16; -ONIG_EXTERN OnigEncodingType OnigEncodingUTF8; -ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_BE; -ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_LE; -ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_BE; -ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_LE; -ONIG_EXTERN OnigEncodingType OnigEncodingEUC_JP; -ONIG_EXTERN OnigEncodingType OnigEncodingEUC_TW; -ONIG_EXTERN OnigEncodingType OnigEncodingEUC_KR; -ONIG_EXTERN OnigEncodingType OnigEncodingEUC_CN; -ONIG_EXTERN OnigEncodingType OnigEncodingSJIS; -ONIG_EXTERN OnigEncodingType OnigEncodingKOI8; -ONIG_EXTERN OnigEncodingType OnigEncodingKOI8_R; -ONIG_EXTERN OnigEncodingType OnigEncodingCP1251; -ONIG_EXTERN OnigEncodingType OnigEncodingBIG5; -ONIG_EXTERN OnigEncodingType OnigEncodingGB18030; - -#define ONIG_ENCODING_ASCII (&OnigEncodingASCII) -#define ONIG_ENCODING_ISO_8859_1 (&OnigEncodingISO_8859_1) -#define ONIG_ENCODING_ISO_8859_2 (&OnigEncodingISO_8859_2) -#define ONIG_ENCODING_ISO_8859_3 (&OnigEncodingISO_8859_3) -#define ONIG_ENCODING_ISO_8859_4 (&OnigEncodingISO_8859_4) -#define ONIG_ENCODING_ISO_8859_5 (&OnigEncodingISO_8859_5) -#define ONIG_ENCODING_ISO_8859_6 (&OnigEncodingISO_8859_6) -#define ONIG_ENCODING_ISO_8859_7 (&OnigEncodingISO_8859_7) -#define ONIG_ENCODING_ISO_8859_8 (&OnigEncodingISO_8859_8) -#define ONIG_ENCODING_ISO_8859_9 (&OnigEncodingISO_8859_9) -#define ONIG_ENCODING_ISO_8859_10 (&OnigEncodingISO_8859_10) -#define ONIG_ENCODING_ISO_8859_11 (&OnigEncodingISO_8859_11) -#define ONIG_ENCODING_ISO_8859_13 (&OnigEncodingISO_8859_13) -#define ONIG_ENCODING_ISO_8859_14 (&OnigEncodingISO_8859_14) -#define ONIG_ENCODING_ISO_8859_15 (&OnigEncodingISO_8859_15) -#define ONIG_ENCODING_ISO_8859_16 (&OnigEncodingISO_8859_16) -#define ONIG_ENCODING_UTF8 (&OnigEncodingUTF8) -#define ONIG_ENCODING_UTF16_BE (&OnigEncodingUTF16_BE) -#define ONIG_ENCODING_UTF16_LE (&OnigEncodingUTF16_LE) -#define ONIG_ENCODING_UTF32_BE (&OnigEncodingUTF32_BE) -#define ONIG_ENCODING_UTF32_LE (&OnigEncodingUTF32_LE) -#define ONIG_ENCODING_EUC_JP (&OnigEncodingEUC_JP) -#define ONIG_ENCODING_EUC_TW (&OnigEncodingEUC_TW) -#define ONIG_ENCODING_EUC_KR (&OnigEncodingEUC_KR) -#define ONIG_ENCODING_EUC_CN (&OnigEncodingEUC_CN) -#define ONIG_ENCODING_SJIS (&OnigEncodingSJIS) -#define ONIG_ENCODING_KOI8 (&OnigEncodingKOI8) -#define ONIG_ENCODING_KOI8_R (&OnigEncodingKOI8_R) -#define ONIG_ENCODING_CP1251 (&OnigEncodingCP1251) -#define ONIG_ENCODING_BIG5 (&OnigEncodingBIG5) -#define ONIG_ENCODING_GB18030 (&OnigEncodingGB18030) - -#define ONIG_ENCODING_UNDEF ((OnigEncoding )0) - - -/* work size */ -#define ONIGENC_CODE_TO_MBC_MAXLEN 7 -#define ONIGENC_MBC_CASE_FOLD_MAXLEN 18 -/* 18: 6(max-byte) * 3(case-fold chars) */ - -/* character types */ -typedef enum { - ONIGENC_CTYPE_NEWLINE = 0, - ONIGENC_CTYPE_ALPHA = 1, - ONIGENC_CTYPE_BLANK = 2, - ONIGENC_CTYPE_CNTRL = 3, - ONIGENC_CTYPE_DIGIT = 4, - ONIGENC_CTYPE_GRAPH = 5, - ONIGENC_CTYPE_LOWER = 6, - ONIGENC_CTYPE_PRINT = 7, - ONIGENC_CTYPE_PUNCT = 8, - ONIGENC_CTYPE_SPACE = 9, - ONIGENC_CTYPE_UPPER = 10, - ONIGENC_CTYPE_XDIGIT = 11, - ONIGENC_CTYPE_WORD = 12, - ONIGENC_CTYPE_ALNUM = 13, /* alpha || digit */ - ONIGENC_CTYPE_ASCII = 14 -} OnigEncCtype; - -#define ONIGENC_MAX_STD_CTYPE ONIGENC_CTYPE_ASCII - - -#define onig_enc_len(enc,p,end) ONIGENC_MBC_ENC_LEN(enc,p) - -#define ONIGENC_IS_UNDEF(enc) ((enc) == ONIG_ENCODING_UNDEF) -#define ONIGENC_IS_SINGLEBYTE(enc) (ONIGENC_MBC_MAXLEN(enc) == 1) -#define ONIGENC_IS_MBC_HEAD(enc,p) (ONIGENC_MBC_ENC_LEN(enc,p) != 1) -#define ONIGENC_IS_MBC_ASCII(p) (*(p) < 128) -#define ONIGENC_IS_CODE_ASCII(code) ((code) < 128) -#define ONIGENC_IS_MBC_WORD(enc,s,end) \ - ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end)) -#define ONIGENC_IS_MBC_WORD_ASCII(enc,s,end) onigenc_is_mbc_word_ascii(enc,s,end) - -#define ONIGENC_NAME(enc) ((enc)->name) - -#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) \ - (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf) -#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \ - (enc)->is_allowed_reverse_match(s,end) -#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s) \ - (enc)->left_adjust_char_head(start, s) -#define ONIGENC_IS_VALID_MBC_STRING(enc,s,end) \ - (enc)->is_valid_mbc_string(s,end) -#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) \ - (enc)->apply_all_case_fold(case_fold_flag,f,arg) -#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) \ - (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs) -#define ONIGENC_STEP_BACK(enc,start,s,n) \ - onigenc_step_back((enc),(start),(s),(n)) - -#define ONIGENC_MBC_ENC_LEN(enc,p) (enc)->mbc_enc_len(p) -#define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len) -#define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc) -#define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len) -#define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end)) -#define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end)) -#define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code) -#define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf) -#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) \ - (enc)->property_name_to_ctype(enc,p,end) - -#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype) - -#define ONIGENC_IS_CODE_NEWLINE(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE) -#define ONIGENC_IS_CODE_GRAPH(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH) -#define ONIGENC_IS_CODE_PRINT(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT) -#define ONIGENC_IS_CODE_ALNUM(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM) -#define ONIGENC_IS_CODE_ALPHA(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA) -#define ONIGENC_IS_CODE_LOWER(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER) -#define ONIGENC_IS_CODE_UPPER(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER) -#define ONIGENC_IS_CODE_CNTRL(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL) -#define ONIGENC_IS_CODE_PUNCT(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT) -#define ONIGENC_IS_CODE_SPACE(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE) -#define ONIGENC_IS_CODE_BLANK(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK) -#define ONIGENC_IS_CODE_DIGIT(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT) -#define ONIGENC_IS_CODE_XDIGIT(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT) -#define ONIGENC_IS_CODE_WORD(enc,code) \ - ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD) - -#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) \ - (enc)->get_ctype_code_range(ctype,sbout,ranges) - -ONIG_EXTERN -OnigUChar* onigenc_step_back P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, int n)); - - -/* encoding API */ -ONIG_EXTERN -int onigenc_init P_((void)); -ONIG_EXTERN -int onig_initialize_encoding P_((OnigEncoding enc)); -ONIG_EXTERN -int onigenc_set_default_encoding P_((OnigEncoding enc)); -ONIG_EXTERN -OnigEncoding onigenc_get_default_encoding P_((void)); -ONIG_EXTERN -void onigenc_set_default_caseconv_table P_((const OnigUChar* table)); -ONIG_EXTERN -OnigUChar* onigenc_get_right_adjust_char_head_with_prev P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar** prev)); -ONIG_EXTERN -OnigUChar* onigenc_get_prev_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s)); -ONIG_EXTERN -OnigUChar* onigenc_get_left_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s)); -ONIG_EXTERN -OnigUChar* onigenc_get_right_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s)); -ONIG_EXTERN -int onigenc_strlen P_((OnigEncoding enc, const OnigUChar* p, const OnigUChar* end)); -ONIG_EXTERN -int onigenc_strlen_null P_((OnigEncoding enc, const OnigUChar* p)); -ONIG_EXTERN -int onigenc_str_bytelen_null P_((OnigEncoding enc, const OnigUChar* p)); -ONIG_EXTERN -int onigenc_is_valid_mbc_string P_((OnigEncoding enc, const OnigUChar* s, const OnigUChar* end)); -ONIG_EXTERN -OnigUChar* onigenc_strdup P_((OnigEncoding enc, const OnigUChar* s, const OnigUChar* end)); - - -/* PART: regular expression */ - -/* config parameters */ -#define ONIG_NREGION 10 -#define ONIG_MAX_CAPTURE_NUM 2147483647 /* 2**31 - 1 */ -#define ONIG_MAX_BACKREF_NUM 1000 -#define ONIG_MAX_REPEAT_NUM 100000 -#define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000 -/* constants */ -#define ONIG_MAX_ERROR_MESSAGE_LEN 90 - -typedef unsigned int OnigOptionType; - -#define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE - -/* options */ -#define ONIG_OPTION_NONE 0U -/* options (compile time) */ -#define ONIG_OPTION_IGNORECASE 1U -#define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1) -#define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1) -#define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1) -#define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1) -#define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1) -#define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1) -#define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1) -#define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1) -/* options (search time) */ -#define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1) -#define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1) -#define ONIG_OPTION_POSIX_REGION (ONIG_OPTION_NOTEOL << 1) -#define ONIG_OPTION_CHECK_VALIDITY_OF_STRING (ONIG_OPTION_POSIX_REGION << 1) -/* #define ONIG_OPTION_CRLF_AS_LINE_SEPARATOR (ONIG_OPTION_CHECK_VALIDITY_OF_STRING << 1) */ -/* options (compile time) */ -#define ONIG_OPTION_WORD_IS_ASCII (ONIG_OPTION_CHECK_VALIDITY_OF_STRING << 4) -#define ONIG_OPTION_DIGIT_IS_ASCII (ONIG_OPTION_WORD_IS_ASCII << 1) -#define ONIG_OPTION_SPACE_IS_ASCII (ONIG_OPTION_DIGIT_IS_ASCII << 1) -#define ONIG_OPTION_POSIX_IS_ASCII (ONIG_OPTION_SPACE_IS_ASCII << 1) -#define ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER (ONIG_OPTION_POSIX_IS_ASCII << 1) -#define ONIG_OPTION_TEXT_SEGMENT_WORD (ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER << 1) - -#define ONIG_OPTION_MAXBIT ONIG_OPTION_TEXT_SEGMENT_WORD /* limit */ - -#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt)) -#define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt)) -#define ONIG_IS_OPTION_ON(options,option) ((options) & (option)) - -/* syntax */ -typedef struct { - unsigned int op; - unsigned int op2; - unsigned int behavior; - OnigOptionType options; /* default option */ - OnigMetaCharTableType meta_char_table; -} OnigSyntaxType; - -ONIG_EXTERN OnigSyntaxType OnigSyntaxASIS; -ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic; -ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended; -ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs; -ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep; -ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex; -ONIG_EXTERN OnigSyntaxType OnigSyntaxJava; -ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl; -ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl_NG; -ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby; -ONIG_EXTERN OnigSyntaxType OnigSyntaxOniguruma; - -/* predefined syntaxes (see regsyntax.c) */ -#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS) -#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic) -#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended) -#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs) -#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep) -#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex) -#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava) -#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl) -#define ONIG_SYNTAX_PERL_NG (&OnigSyntaxPerl_NG) -#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby) -#define ONIG_SYNTAX_ONIGURUMA (&OnigSyntaxOniguruma) - -/* default syntax */ -ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax; -#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax - -/* syntax (operators) */ -#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0) -#define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1) /* . */ -#define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2) /* * */ -#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3) -#define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4) /* + */ -#define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5) -#define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6) /* ? */ -#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7) -#define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8) /* {lower,upper} */ -#define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9) /* \{lower,upper\} */ -#define ONIG_SYN_OP_VBAR_ALT (1U<<10) /* | */ -#define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11) /* \| */ -#define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12) /* (...) */ -#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13) /* \(...\) */ -#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14) /* \A, \Z, \z */ -#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15) /* \G */ -#define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16) /* \num */ -#define ONIG_SYN_OP_BRACKET_CC (1U<<17) /* [...] */ -#define ONIG_SYN_OP_ESC_W_WORD (1U<<18) /* \w, \W */ -#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19) /* \<. \> */ -#define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20) /* \b, \B */ -#define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21) /* \s, \S */ -#define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22) /* \d, \D */ -#define ONIG_SYN_OP_LINE_ANCHOR (1U<<23) /* ^, $ */ -#define ONIG_SYN_OP_POSIX_BRACKET (1U<<24) /* [:xxxx:] */ -#define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25) /* ??,*?,+?,{n,m}? */ -#define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26) /* \n,\r,\t,\a ... */ -#define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27) /* \cx */ -#define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) /* \OOO */ -#define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) /* \xHH */ -#define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) /* \x{7HHHHHHH} */ -#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) /* \o{1OOOOOOOOOO} */ - -#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) /* \Q...\E */ -#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) /* (?...) */ -#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsx),(?-imsx) */ -#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imx), (?-imx) */ -#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) /* ?+,*+,++ */ -#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) /* {n,m}+ */ -#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) /* [...&&..[..]..] */ -#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7) /* (?...) */ -#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8) /* \k */ -#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9) /* \g, \g */ -#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10) /* (?@..),(?@..) */ -#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11) /* \C-x */ -#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12) /* \M-x */ -#define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13) /* \v as VTAB */ -#define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14) /* \uHHHH */ -#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15) /* \`, \' */ -#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16) /* \p{...}, \P{...} */ -#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) /* \p{^..}, \P{^..} */ -/* #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1U<<18) */ -#define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) /* \h, \H */ -#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) /* \ */ -#define ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE (1U<<21) /* (?(n)) (?(...)...|...) */ -#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<22) /* \K */ -#define ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE (1U<<23) /* \R \r\n else [\x0a-\x0d] */ -#define ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT (1U<<24) /* \N (?-m:.), \O (?m:.) */ -#define ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP (1U<<25) /* (?~...) */ -#define ONIG_SYN_OP2_ESC_X_Y_GRAPHEME_CLUSTER (1U<<26) /* obsoleted: use next */ -#define ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT (1U<<26) /* \X \y \Y */ -#define ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL (1U<<27) /* (?R), (?&name)... */ -#define ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS (1U<<28) /* (?{...}) (?{{...}}) */ -#define ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME (1U<<29) /* (*name) (*name{a,..}) */ -#define ONIG_SYN_OP2_OPTION_ONIGURUMA (1U<<30) /* (?imxWDSPy) */ - -/* syntax (behavior) */ -#define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31) /* not implemented */ -#define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS (1U<<0) /* ?, *, +, {n,m} */ -#define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS (1U<<1) /* error or ignore */ -#define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP (1U<<2) /* ...)... */ -#define ONIG_SYN_ALLOW_INVALID_INTERVAL (1U<<3) /* {??? */ -#define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV (1U<<4) /* {,n} => {0,n} */ -#define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5) /* /(\1)/,/\1()/ ..*/ -#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6) /* (?<=a|bc) */ -#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) /* see doc/RE */ -#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) /* (?)(?) */ -#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) /* a{n}?=(?:a{n})? */ - -/* syntax (behavior) in char class [...] */ -#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */ -#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) /* [..\w..] etc.. */ -#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22) -#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) /* [0-9-a]=[0-9\-a] */ -#define ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC (1U<<26) -/* syntax (behavior) warning */ -#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) /* [,-,] */ -#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) /* (?:a*)+ */ - -/* meta character specifiers (onig_set_meta_char()) */ -#define ONIG_META_CHAR_ESCAPE 0 -#define ONIG_META_CHAR_ANYCHAR 1 -#define ONIG_META_CHAR_ANYTIME 2 -#define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3 -#define ONIG_META_CHAR_ONE_OR_MORE_TIME 4 -#define ONIG_META_CHAR_ANYCHAR_ANYTIME 5 - -#define ONIG_INEFFECTIVE_META_CHAR 0 - -/* error codes */ -#define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000) -/* normal return */ -#define ONIG_NORMAL 0 -#define ONIG_MISMATCH -1 -#define ONIG_NO_SUPPORT_CONFIG -2 -#define ONIG_ABORT -3 - -/* internal error */ -#define ONIGERR_MEMORY -5 -#define ONIGERR_TYPE_BUG -6 -#define ONIGERR_PARSER_BUG -11 -#define ONIGERR_STACK_BUG -12 -#define ONIGERR_UNDEFINED_BYTECODE -13 -#define ONIGERR_UNEXPECTED_BYTECODE -14 -#define ONIGERR_MATCH_STACK_LIMIT_OVER -15 -#define ONIGERR_PARSE_DEPTH_LIMIT_OVER -16 -#define ONIGERR_RETRY_LIMIT_IN_MATCH_OVER -17 -#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED -21 -#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22 -#define ONIGERR_FAIL_TO_INITIALIZE -23 -/* general error */ -#define ONIGERR_INVALID_ARGUMENT -30 -/* syntax error */ -#define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100 -#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101 -#define ONIGERR_EMPTY_CHAR_CLASS -102 -#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103 -#define ONIGERR_END_PATTERN_AT_ESCAPE -104 -#define ONIGERR_END_PATTERN_AT_META -105 -#define ONIGERR_END_PATTERN_AT_CONTROL -106 -#define ONIGERR_META_CODE_SYNTAX -108 -#define ONIGERR_CONTROL_CODE_SYNTAX -109 -#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110 -#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111 -#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112 -#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113 -#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114 -#define ONIGERR_NESTED_REPEAT_OPERATOR -115 -#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116 -#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117 -#define ONIGERR_END_PATTERN_IN_GROUP -118 -#define ONIGERR_UNDEFINED_GROUP_OPTION -119 -#define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121 -#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122 -#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123 -/* values error (syntax error) */ -#define ONIGERR_TOO_BIG_NUMBER -200 -#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201 -#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202 -#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203 -#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204 -#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205 -#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206 -#define ONIGERR_TOO_BIG_BACKREF_NUMBER -207 -#define ONIGERR_INVALID_BACKREF -208 -#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209 -#define ONIGERR_TOO_MANY_CAPTURES -210 -#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212 -#define ONIGERR_EMPTY_GROUP_NAME -214 -#define ONIGERR_INVALID_GROUP_NAME -215 -#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216 -#define ONIGERR_UNDEFINED_NAME_REFERENCE -217 -#define ONIGERR_UNDEFINED_GROUP_REFERENCE -218 -#define ONIGERR_MULTIPLEX_DEFINED_NAME -219 -#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220 -#define ONIGERR_NEVER_ENDING_RECURSION -221 -#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222 -#define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223 -#define ONIGERR_INVALID_IF_ELSE_SYNTAX -224 -#define ONIGERR_INVALID_ABSENT_GROUP_PATTERN -225 -#define ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN -226 -#define ONIGERR_INVALID_CALLOUT_PATTERN -227 -#define ONIGERR_INVALID_CALLOUT_NAME -228 -#define ONIGERR_UNDEFINED_CALLOUT_NAME -229 -#define ONIGERR_INVALID_CALLOUT_BODY -230 -#define ONIGERR_INVALID_CALLOUT_TAG_NAME -231 -#define ONIGERR_INVALID_CALLOUT_ARG -232 -#define ONIGERR_INVALID_CODE_POINT_VALUE -400 -#define ONIGERR_INVALID_WIDE_CHAR_VALUE -400 -#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401 -#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402 -#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403 -#define ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS -404 -#define ONIGERR_TOO_LONG_PROPERTY_NAME -405 -#define ONIGERR_LIBRARY_IS_NOT_INITIALIZED -500 - -/* errors related to thread */ -/* #define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT -1001 */ - - -/* must be smaller than MEM_STATUS_BITS_NUM (unsigned int * 8) */ -#define ONIG_MAX_CAPTURE_HISTORY_GROUP 31 -#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \ - ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i]) - -typedef struct OnigCaptureTreeNodeStruct { - int group; /* group number */ - int beg; - int end; - int allocated; - int num_childs; - struct OnigCaptureTreeNodeStruct** childs; -} OnigCaptureTreeNode; - -/* match result region type */ -struct re_registers { - int allocated; - int num_regs; - int* beg; - int* end; - /* extended */ - OnigCaptureTreeNode* history_root; /* capture history tree root */ -}; - -/* capture tree traverse */ -#define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1 -#define ONIG_TRAVERSE_CALLBACK_AT_LAST 2 -#define ONIG_TRAVERSE_CALLBACK_AT_BOTH \ - ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST ) - - -#define ONIG_REGION_NOTPOS -1 - -typedef struct re_registers OnigRegion; - -typedef struct { - OnigEncoding enc; - OnigUChar* par; - OnigUChar* par_end; -} OnigErrorInfo; - -typedef struct { - int lower; - int upper; -} OnigRepeatRange; - -typedef void (*OnigWarnFunc) P_((const char* s)); -extern void onig_null_warn P_((const char* s)); -#define ONIG_NULL_WARN onig_null_warn - -#define ONIG_CHAR_TABLE_SIZE 256 - -struct re_pattern_buffer; -typedef struct re_pattern_buffer OnigRegexType; -typedef OnigRegexType* OnigRegex; - -#ifndef ONIG_ESCAPE_REGEX_T_COLLISION - typedef OnigRegexType regex_t; -#endif - - -typedef struct { - int num_of_elements; - OnigEncoding pattern_enc; - OnigEncoding target_enc; - OnigSyntaxType* syntax; - OnigOptionType option; - OnigCaseFoldType case_fold_flag; -} OnigCompileInfo; - - -/* types for callout */ -typedef enum { - ONIG_CALLOUT_IN_PROGRESS = 1, /* 1<<0 */ - ONIG_CALLOUT_IN_RETRACTION = 2 /* 1<<1 */ -} OnigCalloutIn; - -#define ONIG_CALLOUT_IN_BOTH (ONIG_CALLOUT_IN_PROGRESS | ONIG_CALLOUT_IN_RETRACTION) - -typedef enum { - ONIG_CALLOUT_OF_CONTENTS = 0, - ONIG_CALLOUT_OF_NAME = 1 -} OnigCalloutOf; - -typedef enum { - ONIG_CALLOUT_TYPE_SINGLE = 0, - ONIG_CALLOUT_TYPE_START_CALL = 1, - ONIG_CALLOUT_TYPE_BOTH_CALL = 2, - ONIG_CALLOUT_TYPE_START_MARK_END_CALL = 3, -} OnigCalloutType; - - -#define ONIG_NON_NAME_ID -1 -#define ONIG_NON_CALLOUT_NUM 0 - -#define ONIG_CALLOUT_MAX_ARGS_NUM 4 -#define ONIG_CALLOUT_DATA_SLOT_NUM 5 - -struct OnigCalloutArgsStruct; -typedef struct OnigCalloutArgsStruct OnigCalloutArgs; - -typedef int (*OnigCalloutFunc)(OnigCalloutArgs* args, void* user_data); - -/* callout function return values (less than -1: error code) */ -typedef enum { - ONIG_CALLOUT_FAIL = 1, - ONIG_CALLOUT_SUCCESS = 0 -} OnigCalloutResult; - -typedef enum { - ONIG_TYPE_VOID = 0, - ONIG_TYPE_LONG = 1<<0, - ONIG_TYPE_CHAR = 1<<1, - ONIG_TYPE_STRING = 1<<2, - ONIG_TYPE_POINTER = 1<<3, - ONIG_TYPE_TAG = 1<<4, -} OnigType; - -typedef union { - long l; - OnigCodePoint c; - struct { - OnigUChar* start; - OnigUChar* end; - } s; - void* p; - int tag; /* tag -> callout_num */ -} OnigValue; - - -struct OnigMatchParamStruct; -typedef struct OnigMatchParamStruct OnigMatchParam; - - -/* Oniguruma Native API */ - -ONIG_EXTERN -int onig_initialize P_((OnigEncoding encodings[], int number_of_encodings)); -/* onig_init(): deprecated function. Use onig_initialize(). */ -ONIG_EXTERN -int onig_init P_((void)); -ONIG_EXTERN -int EFIAPI onig_error_code_to_str PV_((OnigUChar* s, int err_code, ...)); -ONIG_EXTERN -int onig_is_error_code_needs_param PV_((int code)); -ONIG_EXTERN -void onig_set_warn_func P_((OnigWarnFunc f)); -ONIG_EXTERN -void onig_set_verb_warn_func P_((OnigWarnFunc f)); -ONIG_EXTERN -int onig_new P_((OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo)); -ONIG_EXTERN -int onig_reg_init P_((OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, OnigSyntaxType* syntax)); -int onig_new_without_alloc P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo)); -ONIG_EXTERN -int onig_new_deluxe P_((OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo)); -ONIG_EXTERN -void onig_free P_((OnigRegex)); -ONIG_EXTERN -void onig_free_body P_((OnigRegex)); -ONIG_EXTERN -int onig_scan(OnigRegex reg, const OnigUChar* str, const OnigUChar* end, OnigRegion* region, OnigOptionType option, int (*scan_callback)(int, int, OnigRegion*, void*), void* callback_arg); -ONIG_EXTERN -int onig_search P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option)); -ONIG_EXTERN -int onig_search_with_param P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option, OnigMatchParam* mp)); -ONIG_EXTERN -int onig_match P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option)); -ONIG_EXTERN -int onig_match_with_param P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option, OnigMatchParam* mp)); -ONIG_EXTERN -OnigRegion* onig_region_new P_((void)); -ONIG_EXTERN -void onig_region_init P_((OnigRegion* region)); -ONIG_EXTERN -void onig_region_free P_((OnigRegion* region, int free_self)); -ONIG_EXTERN -void onig_region_copy P_((OnigRegion* to, OnigRegion* from)); -ONIG_EXTERN -void onig_region_clear P_((OnigRegion* region)); -ONIG_EXTERN -int onig_region_resize P_((OnigRegion* region, int n)); -ONIG_EXTERN -int onig_region_set P_((OnigRegion* region, int at, int beg, int end)); -ONIG_EXTERN -int onig_name_to_group_numbers P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums)); -ONIG_EXTERN -int onig_name_to_backref_number P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region)); -ONIG_EXTERN -int onig_foreach_name P_((OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg)); -ONIG_EXTERN -int onig_number_of_names P_((OnigRegex reg)); -ONIG_EXTERN -int onig_number_of_captures P_((OnigRegex reg)); -ONIG_EXTERN -int onig_number_of_capture_histories P_((OnigRegex reg)); -ONIG_EXTERN -OnigCaptureTreeNode* onig_get_capture_tree P_((OnigRegion* region)); -ONIG_EXTERN -int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg)); -ONIG_EXTERN -int onig_noname_group_capture_is_active P_((OnigRegex reg)); -ONIG_EXTERN -OnigEncoding onig_get_encoding P_((OnigRegex reg)); -ONIG_EXTERN -OnigOptionType onig_get_options P_((OnigRegex reg)); -ONIG_EXTERN -OnigCaseFoldType onig_get_case_fold_flag P_((OnigRegex reg)); -ONIG_EXTERN -OnigSyntaxType* onig_get_syntax P_((OnigRegex reg)); -ONIG_EXTERN -int onig_set_default_syntax P_((OnigSyntaxType* syntax)); -ONIG_EXTERN -void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from)); -ONIG_EXTERN -unsigned int onig_get_syntax_op P_((OnigSyntaxType* syntax)); -ONIG_EXTERN -unsigned int onig_get_syntax_op2 P_((OnigSyntaxType* syntax)); -ONIG_EXTERN -unsigned int onig_get_syntax_behavior P_((OnigSyntaxType* syntax)); -ONIG_EXTERN -OnigOptionType onig_get_syntax_options P_((OnigSyntaxType* syntax)); -ONIG_EXTERN -void onig_set_syntax_op P_((OnigSyntaxType* syntax, unsigned int op)); -ONIG_EXTERN -void onig_set_syntax_op2 P_((OnigSyntaxType* syntax, unsigned int op2)); -ONIG_EXTERN -void onig_set_syntax_behavior P_((OnigSyntaxType* syntax, unsigned int behavior)); -ONIG_EXTERN -void onig_set_syntax_options P_((OnigSyntaxType* syntax, OnigOptionType options)); -ONIG_EXTERN -int onig_set_meta_char P_((OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code)); -ONIG_EXTERN -void onig_copy_encoding P_((OnigEncoding to, OnigEncoding from)); -ONIG_EXTERN -OnigCaseFoldType onig_get_default_case_fold_flag P_((void)); -ONIG_EXTERN -int onig_set_default_case_fold_flag P_((OnigCaseFoldType case_fold_flag)); -ONIG_EXTERN -unsigned int onig_get_match_stack_limit_size P_((void)); -ONIG_EXTERN -int onig_set_match_stack_limit_size P_((unsigned int size)); -ONIG_EXTERN -unsigned long onig_get_retry_limit_in_match P_((void)); -ONIG_EXTERN -int onig_set_retry_limit_in_match P_((unsigned long n)); -ONIG_EXTERN -unsigned int onig_get_parse_depth_limit P_((void)); -ONIG_EXTERN -int onig_set_capture_num_limit P_((int num)); -ONIG_EXTERN -int onig_set_parse_depth_limit P_((unsigned int depth)); -ONIG_EXTERN -int onig_unicode_define_user_property P_((const char* name, OnigCodePoint* ranges)); -ONIG_EXTERN -int onig_end P_((void)); -ONIG_EXTERN -const char* onig_version P_((void)); -ONIG_EXTERN -const char* onig_copyright P_((void)); - -/* for OnigMatchParam */ -ONIG_EXTERN -OnigMatchParam* onig_new_match_param P_((void)); -ONIG_EXTERN -void onig_free_match_param P_((OnigMatchParam* p)); -ONIG_EXTERN -void onig_free_match_param_content P_((OnigMatchParam* p)); -ONIG_EXTERN -int onig_initialize_match_param P_((OnigMatchParam* mp)); -ONIG_EXTERN -int onig_set_match_stack_limit_size_of_match_param P_((OnigMatchParam* param, unsigned int limit)); -ONIG_EXTERN -int onig_set_retry_limit_in_match_of_match_param P_((OnigMatchParam* param, unsigned long limit)); -ONIG_EXTERN -int onig_set_progress_callout_of_match_param P_((OnigMatchParam* param, OnigCalloutFunc f)); -ONIG_EXTERN -int onig_set_retraction_callout_of_match_param P_((OnigMatchParam* param, OnigCalloutFunc f)); -ONIG_EXTERN -int onig_set_callout_user_data_of_match_param P_((OnigMatchParam* param, void* user_data)); - -/* for callout functions */ -ONIG_EXTERN -OnigCalloutFunc onig_get_progress_callout P_((void)); -ONIG_EXTERN -int onig_set_progress_callout P_((OnigCalloutFunc f)); -ONIG_EXTERN -OnigCalloutFunc onig_get_retraction_callout P_((void)); -ONIG_EXTERN -int onig_set_retraction_callout P_((OnigCalloutFunc f)); -ONIG_EXTERN -int onig_set_callout_of_name P_((OnigEncoding enc, OnigCalloutType type, OnigUChar* name, OnigUChar* name_end, int callout_in, OnigCalloutFunc callout, OnigCalloutFunc end_callout, int arg_num, unsigned int arg_types[], int optional_arg_num, OnigValue opt_defaults[])); -ONIG_EXTERN -OnigUChar* onig_get_callout_name_by_name_id P_((int id)); -ONIG_EXTERN -int onig_get_callout_num_by_tag P_((OnigRegex reg, const OnigUChar* tag, const OnigUChar* tag_end)); -ONIG_EXTERN -int onig_get_callout_data_by_tag P_((OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType* type, OnigValue* val)); -ONIG_EXTERN -int onig_set_callout_data_by_tag P_((OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType type, OnigValue* val)); - -/* used in callout functions */ -ONIG_EXTERN -int onig_get_callout_num_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -OnigCalloutIn onig_get_callout_in_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -int onig_get_name_id_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -const OnigUChar* onig_get_contents_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -const OnigUChar* onig_get_contents_end_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -int onig_get_args_num_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -int onig_get_passed_args_num_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -int onig_get_arg_by_callout_args P_((OnigCalloutArgs* args, int index, OnigType* type, OnigValue* val)); -ONIG_EXTERN -const OnigUChar* onig_get_string_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -const OnigUChar* onig_get_string_end_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -const OnigUChar* onig_get_start_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -const OnigUChar* onig_get_right_range_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -const OnigUChar* onig_get_current_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -OnigRegex onig_get_regex_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -unsigned long onig_get_retry_counter_by_callout_args P_((OnigCalloutArgs* args)); -ONIG_EXTERN -int onig_callout_tag_is_exist_at_callout_num P_((OnigRegex reg, int callout_num)); -ONIG_EXTERN -const OnigUChar* onig_get_callout_tag_start P_((OnigRegex reg, int callout_num)); -ONIG_EXTERN -const OnigUChar* onig_get_callout_tag_end P_((OnigRegex reg, int callout_num)); -ONIG_EXTERN -int onig_get_callout_data_dont_clear_old P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)); -ONIG_EXTERN -int onig_get_callout_data_by_callout_args_self_dont_clear_old P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)); -ONIG_EXTERN -int onig_get_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val)); -ONIG_EXTERN -int onig_get_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType* type, OnigValue* val)); -ONIG_EXTERN -int onig_get_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val)); -ONIG_EXTERN -int onig_set_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType type, OnigValue* val)); -ONIG_EXTERN -int onig_set_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType type, OnigValue* val)); -ONIG_EXTERN -int onig_set_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType type, OnigValue* val)); -ONIG_EXTERN -int onig_get_capture_range_in_callout P_((OnigCalloutArgs* args, int mem_num, int* begin, int* end)); -ONIG_EXTERN -int onig_get_used_stack_size_in_callout P_((OnigCalloutArgs* args, int* used_num, int* used_bytes)); - -/* builtin callout functions */ -ONIG_EXTERN -int onig_builtin_fail P_((OnigCalloutArgs* args, void* user_data)); -ONIG_EXTERN -int onig_builtin_mismatch P_((OnigCalloutArgs* args, void* user_data)); -ONIG_EXTERN -int onig_builtin_error P_((OnigCalloutArgs* args, void* user_data)); -ONIG_EXTERN -int onig_builtin_count P_((OnigCalloutArgs* args, void* user_data)); -ONIG_EXTERN -int onig_builtin_total_count P_((OnigCalloutArgs* args, void* user_data)); -ONIG_EXTERN -int onig_builtin_max P_((OnigCalloutArgs* args, void* user_data)); -ONIG_EXTERN -int onig_builtin_cmp P_((OnigCalloutArgs* args, void* user_data)); - -ONIG_EXTERN -int onig_setup_builtin_monitors_by_ascii_encoded_name P_((void* fp)); - -#ifdef __cplusplus -} -#endif - -#endif /* ONIGURUMA_H */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.h b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.h deleted file mode 100644 index fc0e96bc6181..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regenc.h +++ /dev/null @@ -1,279 +0,0 @@ -#ifndef REGENC_H -#define REGENC_H -/********************************************************************** - regenc.h - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef ONIGURUMA_EXPORT -#define ONIGURUMA_EXPORT -#endif - -//#include "config.h" -//#include - -#ifdef ONIG_ESCAPE_UCHAR_COLLISION -#undef ONIG_ESCAPE_UCHAR_COLLISION -#endif - -#include "oniguruma.h" - -typedef struct { - OnigCodePoint from; - OnigCodePoint to; -} OnigPairCaseFoldCodes; - - -#ifndef NULL -#define NULL ((void* )0) -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef ARG_UNUSED -#if defined(__GNUC__) -# define ARG_UNUSED __attribute__ ((unused)) -#else -# define ARG_UNUSED -#endif -#endif - -#define ONIG_IS_NULL(p) (((void*)(p)) == (void*)0) -#define ONIG_IS_NOT_NULL(p) (((void*)(p)) != (void*)0) -#define ONIG_CHECK_NULL_RETURN(p) if (ONIG_IS_NULL(p)) return NULL -#define ONIG_CHECK_NULL_RETURN_VAL(p,val) if (ONIG_IS_NULL(p)) return (val) - -#define MAX_CODE_POINT (~((OnigCodePoint )0)) - -#define enclen(enc,p) ONIGENC_MBC_ENC_LEN(enc,p) - -/* character types bit flag */ -#define BIT_CTYPE_NEWLINE (1<< ONIGENC_CTYPE_NEWLINE) -#define BIT_CTYPE_ALPHA (1<< ONIGENC_CTYPE_ALPHA) -#define BIT_CTYPE_BLANK (1<< ONIGENC_CTYPE_BLANK) -#define BIT_CTYPE_CNTRL (1<< ONIGENC_CTYPE_CNTRL) -#define BIT_CTYPE_DIGIT (1<< ONIGENC_CTYPE_DIGIT) -#define BIT_CTYPE_GRAPH (1<< ONIGENC_CTYPE_GRAPH) -#define BIT_CTYPE_LOWER (1<< ONIGENC_CTYPE_LOWER) -#define BIT_CTYPE_PRINT (1<< ONIGENC_CTYPE_PRINT) -#define BIT_CTYPE_PUNCT (1<< ONIGENC_CTYPE_PUNCT) -#define BIT_CTYPE_SPACE (1<< ONIGENC_CTYPE_SPACE) -#define BIT_CTYPE_UPPER (1<< ONIGENC_CTYPE_UPPER) -#define BIT_CTYPE_XDIGIT (1<< ONIGENC_CTYPE_XDIGIT) -#define BIT_CTYPE_WORD (1<< ONIGENC_CTYPE_WORD) -#define BIT_CTYPE_ALNUM (1<< ONIGENC_CTYPE_ALNUM) -#define BIT_CTYPE_ASCII (1<< ONIGENC_CTYPE_ASCII) - -#define CTYPE_TO_BIT(ctype) (1<<(ctype)) -#define CTYPE_IS_WORD_GRAPH_PRINT(ctype) \ - ((ctype) == ONIGENC_CTYPE_WORD || (ctype) == ONIGENC_CTYPE_GRAPH ||\ - (ctype) == ONIGENC_CTYPE_PRINT) - - -typedef struct { - UChar *name; - int ctype; - short int len; -} PosixBracketEntryType; - -struct PropertyNameCtype { - char *name; - int ctype; -}; - -/* #define USE_CRNL_AS_LINE_TERMINATOR */ -#define USE_UNICODE_PROPERTIES -#define USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER -#define USE_UNICODE_WORD_BREAK -/* #define USE_UNICODE_CASE_FOLD_TURKISH_AZERI */ -/* #define USE_UNICODE_ALL_LINE_TERMINATORS */ /* see Unicode.org UTS #18 */ - - -#define ONIG_ENCODING_INIT_DEFAULT ONIG_ENCODING_ASCII - - -#define ENC_SKIP_OFFSET_1_OR_0 7 - -#define ENC_FLAG_ASCII_COMPATIBLE (1<<0) -#define ENC_FLAG_UNICODE (1<<1) -#define ENC_FLAG_SKIP_OFFSET_MASK (7<<2) -#define ENC_FLAG_SKIP_OFFSET_0 0 -#define ENC_FLAG_SKIP_OFFSET_1 (1<<2) -#define ENC_FLAG_SKIP_OFFSET_2 (2<<2) -#define ENC_FLAG_SKIP_OFFSET_3 (3<<2) -#define ENC_FLAG_SKIP_OFFSET_4 (4<<2) -#define ENC_FLAG_SKIP_OFFSET_1_OR_0 (ENC_SKIP_OFFSET_1_OR_0<<2) - -#define ENC_GET_SKIP_OFFSET(enc) \ - (((enc)->flag & ENC_FLAG_SKIP_OFFSET_MASK)>>2) - - -/* for encoding system implementation (internal) */ -extern int onigenc_end(void); -extern int onigenc_ascii_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg)); -extern int onigenc_ascii_get_case_fold_codes_by_str P_((OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])); -extern int onigenc_apply_all_case_fold_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg)); -extern int onigenc_get_case_fold_codes_by_str_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])); -extern int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[])); -extern int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end)); - - -/* methods for single byte encoding */ -extern int onigenc_ascii_mbc_case_fold P_((OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower)); -extern int onigenc_single_byte_mbc_enc_len P_((const UChar* p)); -extern OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end)); -extern int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code)); -extern int onigenc_single_byte_code_to_mbc P_((OnigCodePoint code, UChar *buf)); -extern UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s)); -extern int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end)); -extern int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end)); -extern int onigenc_always_true_is_valid_mbc_string P_((const UChar* s, const UChar* end)); -extern int onigenc_length_check_is_valid_mbc_string P_((OnigEncoding enc, const UChar* s, const UChar* end)); - -/* methods for multi byte encoding */ -extern OnigCodePoint onigenc_mbn_mbc_to_code P_((OnigEncoding enc, const UChar* p, const UChar* end)); -extern int onigenc_mbn_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower)); -extern int onigenc_mb2_code_to_mbclen P_((OnigCodePoint code)); -extern int onigenc_mb2_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf)); -extern int onigenc_minimum_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end)); -extern int onigenc_unicode_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end)); -extern int onigenc_is_mbc_word_ascii P_((OnigEncoding enc, UChar* s, const UChar* end)); -extern int onigenc_mb2_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype)); -extern int onigenc_mb4_code_to_mbclen P_((OnigCodePoint code)); -extern int onigenc_mb4_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf)); -extern int onigenc_mb4_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype)); -extern struct PropertyNameCtype* onigenc_euc_jp_lookup_property_name P_((register const char *str, register size_t len)); -extern struct PropertyNameCtype* onigenc_sjis_lookup_property_name P_((register const char *str, register size_t len)); - -/* in unicode.c */ -extern int onigenc_unicode_is_code_ctype P_((OnigCodePoint code, unsigned int ctype)); -extern int onigenc_utf16_32_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[])); -extern int onigenc_unicode_ctype_code_range P_((OnigCtype ctype, const OnigCodePoint* ranges[])); -extern int onigenc_unicode_get_case_fold_codes_by_str P_((OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])); -extern int onigenc_unicode_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** pp, const UChar* end, UChar* fold)); -extern int onigenc_unicode_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg)); - -extern int onigenc_egcb_is_break_position P_((OnigEncoding enc, UChar* p, UChar* prev, const UChar* start, const UChar* end)); - -#ifdef USE_UNICODE_WORD_BREAK -extern int onigenc_wb_is_break_position P_((OnigEncoding enc, UChar* p, UChar* prev, const UChar* start, const UChar* end)); -#endif - -#define UTF16_IS_SURROGATE_FIRST(c) (((c) & 0xfc) == 0xd8) -#define UTF16_IS_SURROGATE_SECOND(c) (((c) & 0xfc) == 0xdc) - -/* from unicode generated codes */ -#define FOLDS1_FOLD(i) (OnigUnicodeFolds1 + (i)) -#define FOLDS2_FOLD(i) (OnigUnicodeFolds2 + (i)) -#define FOLDS3_FOLD(i) (OnigUnicodeFolds3 + (i)) -#define FOLDS1_UNFOLDS_NUM(i) (OnigUnicodeFolds1[(i)+1]) -#define FOLDS2_UNFOLDS_NUM(i) (OnigUnicodeFolds2[(i)+2]) -#define FOLDS3_UNFOLDS_NUM(i) (OnigUnicodeFolds3[(i)+3]) -#define FOLDS1_UNFOLDS(i) (OnigUnicodeFolds1 + (i) + 2) -#define FOLDS2_UNFOLDS(i) (OnigUnicodeFolds2 + (i) + 3) -#define FOLDS3_UNFOLDS(i) (OnigUnicodeFolds3 + (i) + 4) -#define FOLDS1_NEXT_INDEX(i) ((i) + 2 + OnigUnicodeFolds1[(i)+1]) -#define FOLDS2_NEXT_INDEX(i) ((i) + 3 + OnigUnicodeFolds2[(i)+2]) -#define FOLDS3_NEXT_INDEX(i) ((i) + 4 + OnigUnicodeFolds3[(i)+3]) - -#define FOLDS_FOLD_ADDR_BUK(buk, addr) do {\ - if ((buk)->fold_len == 1)\ - addr = OnigUnicodeFolds1 + (buk)->index;\ - else if ((buk)->fold_len == 2)\ - addr = OnigUnicodeFolds2 + (buk)->index;\ - else if ((buk)->fold_len == 3)\ - addr = OnigUnicodeFolds3 + (buk)->index;\ - else\ - return ONIGERR_INVALID_CODE_POINT_VALUE;\ -} while (0) - -extern OnigCodePoint OnigUnicodeFolds1[]; -extern OnigCodePoint OnigUnicodeFolds2[]; -extern OnigCodePoint OnigUnicodeFolds3[]; - -struct ByUnfoldKey { - OnigCodePoint code; - short int index; - short int fold_len; -}; - -extern const struct ByUnfoldKey* onigenc_unicode_unfold_key(OnigCodePoint code); -extern int onigenc_unicode_fold1_key(OnigCodePoint code[]); -extern int onigenc_unicode_fold2_key(OnigCodePoint code[]); -extern int onigenc_unicode_fold3_key(OnigCodePoint code[]); - -extern int onig_codes_cmp(OnigCodePoint a[], OnigCodePoint b[], int n); -extern int onig_codes_byte_at(OnigCodePoint code[], int at); - - - -#define ONIGENC_ISO_8859_1_TO_LOWER_CASE(c) \ - OnigEncISO_8859_1_ToLowerCaseTable[c] -#define ONIGENC_ISO_8859_1_TO_UPPER_CASE(c) \ - OnigEncISO_8859_1_ToUpperCaseTable[c] - -extern const UChar OnigEncISO_8859_1_ToLowerCaseTable[]; -extern const UChar OnigEncISO_8859_1_ToUpperCaseTable[]; - -extern int -onigenc_with_ascii_strncmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n)); -extern UChar* -onigenc_step P_((OnigEncoding enc, const UChar* p, const UChar* end, int n)); - -/* defined in regexec.c, but used in enc/xxx.c */ -extern int onig_is_in_code_range P_((const UChar* p, OnigCodePoint code)); - -extern OnigEncoding OnigEncDefaultCharEncoding; -extern const UChar OnigEncAsciiToLowerCaseTable[]; -extern const UChar OnigEncAsciiToUpperCaseTable[]; -extern const unsigned short OnigEncAsciiCtypeTable[]; - - -#define ONIGENC_IS_ASCII_CODE(code) ((code) < 0x80) -#define ONIGENC_ASCII_CODE_TO_LOWER_CASE(c) OnigEncAsciiToLowerCaseTable[c] -#define ONIGENC_ASCII_CODE_TO_UPPER_CASE(c) OnigEncAsciiToUpperCaseTable[c] -#define ONIGENC_IS_ASCII_CODE_CTYPE(code,ctype) \ - ((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0) -#define ONIGENC_IS_ASCII_CODE_WORD(code) \ - ((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ONIGENC_CTYPE_WORD)) != 0) -#define ONIGENC_IS_ASCII_CODE_CASE_AMBIG(code) \ - (ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_UPPER) ||\ - ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_LOWER)) - -#define ONIGENC_IS_UNICODE_ENCODING(enc) \ - (((enc)->flag & ENC_FLAG_UNICODE) != 0) - -#define ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc) \ - (((enc)->flag & ENC_FLAG_ASCII_COMPATIBLE) != 0) - -#endif /* REGENC_H */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regint.h b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regint.h deleted file mode 100644 index 87704f2be895..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regint.h +++ /dev/null @@ -1,1117 +0,0 @@ -#ifndef REGINT_H -#define REGINT_H -/********************************************************************** - regint.h - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* for debug */ -/* #define ONIG_DEBUG_PARSE */ -/* #define ONIG_DEBUG_COMPILE */ -/* #define ONIG_DEBUG_SEARCH */ -/* #define ONIG_DEBUG_MATCH */ -/* #define ONIG_DONT_OPTIMIZE */ - -/* for byte-code statistical data. */ -/* #define ONIG_DEBUG_STATISTICS */ - -#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \ - defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) || \ - defined(ONIG_DEBUG_STATISTICS) -#ifndef ONIG_DEBUG -#define ONIG_DEBUG -#endif -#endif - -#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ - (defined(__ppc__) && defined(__APPLE__)) || \ - defined(__x86_64) || defined(__x86_64__) || \ - defined(__mc68020__) -#define PLATFORM_UNALIGNED_WORD_ACCESS -#endif - -#ifdef __GNUC__ -#define USE_GOTO_LABELS_AS_VALUES -#endif - -/* config */ -/* spec. config */ -#define USE_CALL -#define USE_CALLOUT -#define USE_BACKREF_WITH_LEVEL /* \k, \k */ -#define USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT /* /(?:()|())*\2/ */ -#define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE /* /\n$/ =~ "\n" */ -#define USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR -#define USE_RETRY_LIMIT_IN_MATCH -#ifdef USE_GOTO_LABELS_AS_VALUES -#define USE_THREADED_CODE -#define USE_DIRECT_THREADED_CODE -#endif - -/* internal config */ -#define USE_OP_PUSH_OR_JUMP_EXACT -#define USE_QUANT_PEEK_NEXT -#define USE_ST_LIBRARY - -#define USE_WORD_BEGIN_END /* "\<", "\>" */ -#define USE_CAPTURE_HISTORY -#define USE_VARIABLE_META_CHARS -#define USE_POSIX_API_REGION_OPTION -#define USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE - -#include "regenc.h" - -#define INIT_MATCH_STACK_SIZE 160 -#define DEFAULT_MATCH_STACK_LIMIT_SIZE 0 /* unlimited */ -#define DEFAULT_RETRY_LIMIT_IN_MATCH 10000000 -#define DEFAULT_PARSE_DEPTH_LIMIT 4096 - -/* */ -/* escape other system UChar definition */ -#ifdef ONIG_ESCAPE_UCHAR_COLLISION -#undef ONIG_ESCAPE_UCHAR_COLLISION -#endif - -#define xmalloc malloc -#define xrealloc realloc -#define xcalloc calloc -#define xfree free - -#define st_init_table onig_st_init_table -#define st_init_table_with_size onig_st_init_table_with_size -#define st_init_numtable onig_st_init_numtable -#define st_init_numtable_with_size onig_st_init_numtable_with_size -#define st_init_strtable onig_st_init_strtable -#define st_init_strtable_with_size onig_st_init_strtable_with_size -#define st_delete onig_st_delete -#define st_delete_safe onig_st_delete_safe -#define st_insert onig_st_insert -#define st_lookup onig_st_lookup -#define st_foreach onig_st_foreach -#define st_add_direct onig_st_add_direct -#define st_free_table onig_st_free_table -#define st_cleanup_safe onig_st_cleanup_safe -#define st_copy onig_st_copy -#define st_nothing_key_clone onig_st_nothing_key_clone -#define st_nothing_key_free onig_st_nothing_key_free -/* */ -#define onig_st_is_member st_is_member - -//#define xmemset memset -//#define xmemcpy memcpy -//#define xmemmove memmove - -#if defined(_WIN32) && !defined(__GNUC__) -#define xalloca _alloca -#define xvsnprintf(buf,size,fmt,args) _vsnprintf_s(buf,size,_TRUNCATE,fmt,args) -#define xsnprintf sprintf_s -#define xstrcat(dest,src,size) strcat_s(dest,size,src) -#else -#define xalloca alloca -#define xvsnprintf vsnprintf -#define xsnprintf snprintf -#define xstrcat(dest,src,size) strcat(dest,src) -#endif - -#if 0 -#include -#include -#include - -#ifdef HAVE_STDINT_H -#include -#endif - -#if defined(HAVE_ALLOCA_H) && !defined(__GNUC__) -#include -#endif - -#include - -#include -#ifdef HAVE_SYS_TYPES_H -#ifndef __BORLANDC__ -#include -#endif -#endif - -#ifdef HAVE_INTTYPES_H -#include -#endif - -#ifdef __BORLANDC__ -#include -#endif - -#ifdef ONIG_DEBUG -# include -#endif -#endif - -#ifdef _WIN32 -#if defined(_MSC_VER) && (_MSC_VER < 1300) -typedef int intptr_t; -typedef unsigned int uintptr_t; -#endif -#endif - -typedef INTN intptr_t; -typedef UINTN uintptr_t; - -#ifndef offsetof -#define offsetof OFFSET_OF -#endif - -#ifdef MIN -#undef MIN -#endif -#ifdef MAX -#undef MAX -#endif - -#define MIN(a,b) (((a)>(b))?(b):(a)) -#define MAX(a,b) (((a)<(b))?(b):(a)) - -#define IS_NULL(p) (((void*)(p)) == (void*)0) -#define IS_NOT_NULL(p) (((void*)(p)) != (void*)0) -#define CHECK_NULL_RETURN(p) if (IS_NULL(p)) return NULL -#define CHECK_NULL_RETURN_MEMERR(p) if (IS_NULL(p)) return ONIGERR_MEMORY -#define NULL_UCHARP ((UChar* )0) - -#define CHAR_MAP_SIZE 256 -#define INFINITE_LEN ONIG_INFINITE_DISTANCE - -#ifdef PLATFORM_UNALIGNED_WORD_ACCESS - -#define PLATFORM_GET_INC(val,p,type) do{\ - val = *(type* )p;\ - (p) += sizeof(type);\ -} while(0) - -#else - -#define PLATFORM_GET_INC(val,p,type) do{\ - xmemcpy(&val, (p), sizeof(type));\ - (p) += sizeof(type);\ -} while(0) - -/* sizeof(OnigCodePoint) */ -#ifdef SIZEOF_SIZE_T -# define WORD_ALIGNMENT_SIZE SIZEOF_SIZE_T -#else -# define WORD_ALIGNMENT_SIZE SIZEOF_LONG -#endif - -#define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\ - (pad_size) = WORD_ALIGNMENT_SIZE - ((uintptr_t )(addr) % WORD_ALIGNMENT_SIZE);\ - if ((pad_size) == WORD_ALIGNMENT_SIZE) (pad_size) = 0;\ -} while (0) - -#define ALIGNMENT_RIGHT(addr) do {\ - (addr) += (WORD_ALIGNMENT_SIZE - 1);\ - (addr) -= ((uintptr_t )(addr) % WORD_ALIGNMENT_SIZE);\ -} while (0) - -#endif /* PLATFORM_UNALIGNED_WORD_ACCESS */ - - -#ifdef USE_CALLOUT - -typedef struct { - int flag; - OnigCalloutOf of; - int in; - int name_id; - const UChar* tag_start; - const UChar* tag_end; - OnigCalloutType type; - OnigCalloutFunc start_func; - OnigCalloutFunc end_func; - union { - struct { - const UChar* start; - const UChar* end; - } content; - struct { - int num; - int passed_num; - OnigType types[ONIG_CALLOUT_MAX_ARGS_NUM]; - OnigValue vals[ONIG_CALLOUT_MAX_ARGS_NUM]; - } arg; - } u; -} CalloutListEntry; - -#endif - -/* stack pop level */ -enum StackPopLevel { - STACK_POP_LEVEL_FREE = 0, - STACK_POP_LEVEL_MEM_START = 1, - STACK_POP_LEVEL_ALL = 2 -}; - -/* optimize flags */ -enum OptimizeType { - OPTIMIZE_NONE = 0, - OPTIMIZE_STR, /* Slow Search */ - OPTIMIZE_STR_FAST, /* Sunday quick search / BMH */ - OPTIMIZE_STR_FAST_STEP_FORWARD, /* Sunday quick search / BMH */ - OPTIMIZE_STR_CASE_FOLD_FAST, /* Sunday quick search / BMH (ignore case) */ - OPTIMIZE_STR_CASE_FOLD, /* Slow Search (ignore case) */ - OPTIMIZE_MAP /* char map */ -}; - -/* bit status */ -typedef unsigned int MemStatusType; - -#define MEM_STATUS_BITS_NUM (sizeof(MemStatusType) * 8) -#define MEM_STATUS_CLEAR(stats) (stats) = 0 -#define MEM_STATUS_ON_ALL(stats) (stats) = ~((MemStatusType )0) -#define MEM_STATUS_AT(stats,n) \ - ((n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1)) -#define MEM_STATUS_AT0(stats,n) \ - ((n) > 0 && (n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1)) - -#define MEM_STATUS_ON(stats,n) do {\ - if ((n) < (int )MEM_STATUS_BITS_NUM) {\ - if ((n) != 0)\ - (stats) |= ((MemStatusType )1 << (n));\ - }\ - else\ - (stats) |= 1;\ -} while (0) - -#define MEM_STATUS_ON_SIMPLE(stats,n) do {\ - if ((n) < (int )MEM_STATUS_BITS_NUM)\ - (stats) |= ((MemStatusType )1 << (n));\ -} while (0) - - -#define INT_MAX_LIMIT ((1UL << (SIZEOF_INT * 8 - 1)) - 1) - -#define IS_CODE_WORD_ASCII(enc,code) \ - (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_WORD(enc,code)) -#define IS_CODE_DIGIT_ASCII(enc, code) \ - (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_DIGIT(enc,code)) -#define IS_CODE_XDIGIT_ASCII(enc, code) \ - (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_XDIGIT(enc,code)) - -#define DIGITVAL(code) ((code) - '0') -#define ODIGITVAL(code) DIGITVAL(code) -#define XDIGITVAL(enc,code) \ - (IS_CODE_DIGIT_ASCII(enc,code) ? DIGITVAL(code) \ - : (ONIGENC_IS_CODE_UPPER(enc,code) ? (code) - 'A' + 10 : (code) - 'a' + 10)) - -#define IS_SINGLELINE(option) ((option) & ONIG_OPTION_SINGLELINE) -#define IS_MULTILINE(option) ((option) & ONIG_OPTION_MULTILINE) -#define IS_IGNORECASE(option) ((option) & ONIG_OPTION_IGNORECASE) -#define IS_EXTEND(option) ((option) & ONIG_OPTION_EXTEND) -#define IS_FIND_LONGEST(option) ((option) & ONIG_OPTION_FIND_LONGEST) -#define IS_FIND_NOT_EMPTY(option) ((option) & ONIG_OPTION_FIND_NOT_EMPTY) -#define IS_FIND_CONDITION(option) ((option) & \ - (ONIG_OPTION_FIND_LONGEST | ONIG_OPTION_FIND_NOT_EMPTY)) -#define IS_NOTBOL(option) ((option) & ONIG_OPTION_NOTBOL) -#define IS_NOTEOL(option) ((option) & ONIG_OPTION_NOTEOL) -#define IS_POSIX_REGION(option) ((option) & ONIG_OPTION_POSIX_REGION) - -#define IS_WORD_ASCII(option) \ - ((option) & (ONIG_OPTION_WORD_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII)) -#define IS_DIGIT_ASCII(option) \ - ((option) & (ONIG_OPTION_DIGIT_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII)) -#define IS_SPACE_ASCII(option) \ - ((option) & (ONIG_OPTION_SPACE_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII)) -#define IS_POSIX_ASCII(option) ((option) & ONIG_OPTION_POSIX_IS_ASCII) - -#define IS_ASCII_MODE_CTYPE_OPTION(ctype, options) \ - ((ctype) >= 0 && \ - (((ctype) < ONIGENC_CTYPE_ASCII && IS_POSIX_ASCII(options)) ||\ - ((ctype) == ONIGENC_CTYPE_WORD && IS_WORD_ASCII(options)) ||\ - ((ctype) == ONIGENC_CTYPE_DIGIT && IS_DIGIT_ASCII(options)) ||\ - ((ctype) == ONIGENC_CTYPE_SPACE && IS_SPACE_ASCII(options)))) - -#define DISABLE_CASE_FOLD_MULTI_CHAR(case_fold_flag) \ - ((case_fold_flag) & ~INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) - -#define INFINITE_REPEAT -1 -#define IS_INFINITE_REPEAT(n) ((n) == INFINITE_REPEAT) - -/* bitset */ -#define BITS_PER_BYTE 8 -#define SINGLE_BYTE_SIZE (1 << BITS_PER_BYTE) -#define BITS_IN_ROOM (sizeof(Bits) * BITS_PER_BYTE) -#define BITSET_SIZE (SINGLE_BYTE_SIZE / BITS_IN_ROOM) - -#ifdef PLATFORM_UNALIGNED_WORD_ACCESS -typedef unsigned int Bits; -#else -typedef unsigned char Bits; -#endif -typedef Bits BitSet[BITSET_SIZE]; -typedef Bits* BitSetRef; - -#define SIZE_BITSET sizeof(BitSet) - -#define BITSET_CLEAR(bs) do {\ - int i;\ - for (i = 0; i < (int )BITSET_SIZE; i++) { (bs)[i] = 0; } \ -} while (0) - -#define BS_ROOM(bs,pos) (bs)[pos / BITS_IN_ROOM] -#define BS_BIT(pos) (1 << (pos % BITS_IN_ROOM)) - -#define BITSET_AT(bs, pos) (BS_ROOM(bs,pos) & BS_BIT(pos)) -#define BITSET_SET_BIT(bs, pos) BS_ROOM(bs,pos) |= BS_BIT(pos) -#define BITSET_CLEAR_BIT(bs, pos) BS_ROOM(bs,pos) &= ~(BS_BIT(pos)) -#define BITSET_INVERT_BIT(bs, pos) BS_ROOM(bs,pos) ^= BS_BIT(pos) - -/* bytes buffer */ -typedef struct _BBuf { - UChar* p; - unsigned int used; - unsigned int alloc; -} BBuf; - -#define BB_INIT(buf,size) bbuf_init((BBuf* )(buf), (size)) - -#define BB_SIZE_INC(buf,inc) do{\ - (buf)->alloc += (inc);\ - (buf)->p = (UChar* )xrealloc((buf)->p, (buf)->alloc);\ - if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\ -} while (0) - -#define BB_EXPAND(buf,low) do{\ - unsigned int OldSize_ = (buf)->alloc * sizeof((buf)->p[0]);\ - do { (buf)->alloc *= 2; } while ((buf)->alloc < (unsigned int )low);\ - (buf)->p = (UChar* )xrealloc((buf)->p, (buf)->alloc, OldSize_);\ - if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\ -} while (0) - -#define BB_ENSURE_SIZE(buf,size) do{\ - unsigned int new_alloc = (buf)->alloc;\ - while (new_alloc < (unsigned int )(size)) { new_alloc *= 2; }\ - if ((buf)->alloc != new_alloc) {\ - (buf)->p = (UChar* )xrealloc((buf)->p, new_alloc, (buf)->alloc);\ - if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\ - (buf)->alloc = new_alloc;\ - }\ -} while (0) - -#define BB_WRITE(buf,pos,bytes,n) do{\ - int used = (pos) + (n);\ - if ((buf)->alloc < (unsigned int )used) BB_EXPAND((buf),used);\ - xmemcpy((buf)->p + (pos), (bytes), (n));\ - if ((buf)->used < (unsigned int )used) (buf)->used = used;\ -} while (0) - -#define BB_WRITE1(buf,pos,byte) do{\ - int used = (pos) + 1;\ - if ((buf)->alloc < (unsigned int )used) BB_EXPAND((buf),used);\ - (buf)->p[(pos)] = (byte);\ - if ((buf)->used < (unsigned int )used) (buf)->used = used;\ -} while (0) - -#define BB_ADD(buf,bytes,n) BB_WRITE((buf),(buf)->used,(bytes),(n)) -#define BB_ADD1(buf,byte) BB_WRITE1((buf),(buf)->used,(byte)) -#define BB_GET_ADD_ADDRESS(buf) ((buf)->p + (buf)->used) -#define BB_GET_OFFSET_POS(buf) ((buf)->used) - -/* from < to */ -#define BB_MOVE_RIGHT(buf,from,to,n) do {\ - if ((unsigned int )((to)+(n)) > (buf)->alloc) BB_EXPAND((buf),(to) + (n));\ - xmemmove((buf)->p + (to), (buf)->p + (from), (n));\ - if ((unsigned int )((to)+(n)) > (buf)->used) (buf)->used = (to) + (n);\ -} while (0) - -/* from > to */ -#define BB_MOVE_LEFT(buf,from,to,n) do {\ - xmemmove((buf)->p + (to), (buf)->p + (from), (n));\ -} while (0) - -/* from > to */ -#define BB_MOVE_LEFT_REDUCE(buf,from,to) do {\ - xmemmove((buf)->p + (to), (buf)->p + (from), (buf)->used - (from));\ - (buf)->used -= (from - to);\ -} while (0) - -#define BB_INSERT(buf,pos,bytes,n) do {\ - if (pos >= (buf)->used) {\ - BB_WRITE(buf,pos,bytes,n);\ - }\ - else {\ - BB_MOVE_RIGHT((buf),(pos),(pos) + (n),((buf)->used - (pos)));\ - xmemcpy((buf)->p + (pos), (bytes), (n));\ - }\ -} while (0) - -#define BB_GET_BYTE(buf, pos) (buf)->p[(pos)] - - -/* has body */ -#define ANCR_PREC_READ (1<<0) -#define ANCR_PREC_READ_NOT (1<<1) -#define ANCR_LOOK_BEHIND (1<<2) -#define ANCR_LOOK_BEHIND_NOT (1<<3) -/* no body */ -#define ANCR_BEGIN_BUF (1<<4) -#define ANCR_BEGIN_LINE (1<<5) -#define ANCR_BEGIN_POSITION (1<<6) -#define ANCR_END_BUF (1<<7) -#define ANCR_SEMI_END_BUF (1<<8) -#define ANCR_END_LINE (1<<9) -#define ANCR_WORD_BOUNDARY (1<<10) -#define ANCR_NO_WORD_BOUNDARY (1<<11) -#define ANCR_WORD_BEGIN (1<<12) -#define ANCR_WORD_END (1<<13) -#define ANCR_ANYCHAR_INF (1<<14) -#define ANCR_ANYCHAR_INF_ML (1<<15) -#define ANCR_TEXT_SEGMENT_BOUNDARY (1<<16) -#define ANCR_NO_TEXT_SEGMENT_BOUNDARY (1<<17) - - -#define ANCHOR_HAS_BODY(a) ((a)->type < ANCR_BEGIN_BUF) - -#define IS_WORD_ANCHOR_TYPE(type) \ - ((type) == ANCR_WORD_BOUNDARY || (type) == ANCR_NO_WORD_BOUNDARY || \ - (type) == ANCR_WORD_BEGIN || (type) == ANCR_WORD_END) - -/* operation code */ -enum OpCode { - OP_FINISH = 0, /* matching process terminator (no more alternative) */ - OP_END = 1, /* pattern code terminator (success end) */ - - OP_EXACT1 = 2, /* single byte, N = 1 */ - OP_EXACT2, /* single byte, N = 2 */ - OP_EXACT3, /* single byte, N = 3 */ - OP_EXACT4, /* single byte, N = 4 */ - OP_EXACT5, /* single byte, N = 5 */ - OP_EXACTN, /* single byte */ - OP_EXACTMB2N1, /* mb-length = 2 N = 1 */ - OP_EXACTMB2N2, /* mb-length = 2 N = 2 */ - OP_EXACTMB2N3, /* mb-length = 2 N = 3 */ - OP_EXACTMB2N, /* mb-length = 2 */ - OP_EXACTMB3N, /* mb-length = 3 */ - OP_EXACTMBN, /* other length */ - - OP_EXACT1_IC, /* single byte, N = 1, ignore case */ - OP_EXACTN_IC, /* single byte, ignore case */ - - OP_CCLASS, - OP_CCLASS_MB, - OP_CCLASS_MIX, - OP_CCLASS_NOT, - OP_CCLASS_MB_NOT, - OP_CCLASS_MIX_NOT, - - OP_ANYCHAR, /* "." */ - OP_ANYCHAR_ML, /* "." multi-line */ - OP_ANYCHAR_STAR, /* ".*" */ - OP_ANYCHAR_ML_STAR, /* ".*" multi-line */ - OP_ANYCHAR_STAR_PEEK_NEXT, - OP_ANYCHAR_ML_STAR_PEEK_NEXT, - - OP_WORD, - OP_WORD_ASCII, - OP_NO_WORD, - OP_NO_WORD_ASCII, - OP_WORD_BOUNDARY, - OP_NO_WORD_BOUNDARY, - OP_WORD_BEGIN, - OP_WORD_END, - - OP_TEXT_SEGMENT_BOUNDARY, - - OP_BEGIN_BUF, - OP_END_BUF, - OP_BEGIN_LINE, - OP_END_LINE, - OP_SEMI_END_BUF, - OP_BEGIN_POSITION, - - OP_BACKREF1, - OP_BACKREF2, - OP_BACKREF_N, - OP_BACKREF_N_IC, - OP_BACKREF_MULTI, - OP_BACKREF_MULTI_IC, - OP_BACKREF_WITH_LEVEL, /* \k, \k */ - OP_BACKREF_WITH_LEVEL_IC, /* \k, \k */ - OP_BACKREF_CHECK, /* (?(n)), (?('name')) */ - OP_BACKREF_CHECK_WITH_LEVEL, /* (?(n-level)), (?('name-level')) */ - - OP_MEMORY_START, - OP_MEMORY_START_PUSH, /* push back-tracker to stack */ - OP_MEMORY_END_PUSH, /* push back-tracker to stack */ - OP_MEMORY_END_PUSH_REC, /* push back-tracker to stack */ - OP_MEMORY_END, - OP_MEMORY_END_REC, /* push marker to stack */ - - OP_FAIL, /* pop stack and move */ - OP_JUMP, - OP_PUSH, - OP_PUSH_SUPER, - OP_POP_OUT, -#ifdef USE_OP_PUSH_OR_JUMP_EXACT - OP_PUSH_OR_JUMP_EXACT1, /* if match exact then push, else jump. */ -#endif - OP_PUSH_IF_PEEK_NEXT, /* if match exact then push, else none. */ - OP_REPEAT, /* {n,m} */ - OP_REPEAT_NG, /* {n,m}? (non greedy) */ - OP_REPEAT_INC, - OP_REPEAT_INC_NG, /* non greedy */ - OP_REPEAT_INC_SG, /* search and get in stack */ - OP_REPEAT_INC_NG_SG, /* search and get in stack (non greedy) */ - OP_EMPTY_CHECK_START, /* null loop checker start */ - OP_EMPTY_CHECK_END, /* null loop checker end */ - OP_EMPTY_CHECK_END_MEMST, /* null loop checker end (with capture status) */ - OP_EMPTY_CHECK_END_MEMST_PUSH, /* with capture status and push check-end */ - - OP_PREC_READ_START, /* (?=...) start */ - OP_PREC_READ_END, /* (?=...) end */ - OP_PREC_READ_NOT_START, /* (?!...) start */ - OP_PREC_READ_NOT_END, /* (?!...) end */ - OP_ATOMIC_START, /* (?>...) start */ - OP_ATOMIC_END, /* (?>...) end */ - OP_LOOK_BEHIND, /* (?<=...) start (no needs end opcode) */ - OP_LOOK_BEHIND_NOT_START, /* (? */ - OP_RETURN, - OP_PUSH_SAVE_VAL, - OP_UPDATE_VAR, -#ifdef USE_CALLOUT - OP_CALLOUT_CONTENTS, /* (?{...}) (?{{...}}) */ - OP_CALLOUT_NAME, /* (*name) (*name[tag](args...)) */ -#endif -}; - -enum SaveType { - SAVE_KEEP = 0, /* SAVE S */ - SAVE_S = 1, - SAVE_RIGHT_RANGE = 2, -}; - -enum UpdateVarType { - UPDATE_VAR_KEEP_FROM_STACK_LAST = 0, - UPDATE_VAR_S_FROM_STACK = 1, - UPDATE_VAR_RIGHT_RANGE_FROM_STACK = 2, - UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK = 3, - UPDATE_VAR_RIGHT_RANGE_INIT = 4, -}; - -enum TextSegmentBoundaryType { - EXTENDED_GRAPHEME_CLUSTER_BOUNDARY = 0, - WORD_BOUNDARY = 1, -}; - -typedef int RelAddrType; -typedef int AbsAddrType; -typedef int LengthType; -typedef int RepeatNumType; -typedef int MemNumType; -typedef void* PointerType; -typedef int SaveType; -typedef int UpdateVarType; -typedef int ModeType; - -#define SIZE_OPCODE 1 -#define SIZE_RELADDR sizeof(RelAddrType) -#define SIZE_ABSADDR sizeof(AbsAddrType) -#define SIZE_LENGTH sizeof(LengthType) -#define SIZE_MEMNUM sizeof(MemNumType) -#define SIZE_REPEATNUM sizeof(RepeatNumType) -#define SIZE_OPTION sizeof(OnigOptionType) -#define SIZE_CODE_POINT sizeof(OnigCodePoint) -#define SIZE_POINTER sizeof(PointerType) -#define SIZE_SAVE_TYPE sizeof(SaveType) -#define SIZE_UPDATE_VAR_TYPE sizeof(UpdateVarType) -#define SIZE_MODE sizeof(ModeType) - -#define GET_RELADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, RelAddrType) -#define GET_ABSADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, AbsAddrType) -#define GET_LENGTH_INC(len,p) PLATFORM_GET_INC(len, p, LengthType) -#define GET_MEMNUM_INC(num,p) PLATFORM_GET_INC(num, p, MemNumType) -#define GET_REPEATNUM_INC(num,p) PLATFORM_GET_INC(num, p, RepeatNumType) -#define GET_OPTION_INC(option,p) PLATFORM_GET_INC(option, p, OnigOptionType) -#define GET_POINTER_INC(ptr,p) PLATFORM_GET_INC(ptr, p, PointerType) -#define GET_SAVE_TYPE_INC(type,p) PLATFORM_GET_INC(type, p, SaveType) -#define GET_UPDATE_VAR_TYPE_INC(type,p) PLATFORM_GET_INC(type, p, UpdateVarType) -#define GET_MODE_INC(mode,p) PLATFORM_GET_INC(mode, p, ModeType) - -/* code point's address must be aligned address. */ -#define GET_CODE_POINT(code,p) code = *((OnigCodePoint* )(p)) -#define GET_BYTE_INC(byte,p) do{\ - byte = *(p);\ - (p)++;\ -} while(0) - - -/* op-code + arg size */ -#if 0 -#define SIZE_OP_ANYCHAR_STAR SIZE_OPCODE -#define SIZE_OP_ANYCHAR_STAR_PEEK_NEXT (SIZE_OPCODE + 1) -#define SIZE_OP_JUMP (SIZE_OPCODE + SIZE_RELADDR) -#define SIZE_OP_PUSH (SIZE_OPCODE + SIZE_RELADDR) -#define SIZE_OP_PUSH_SUPER (SIZE_OPCODE + SIZE_RELADDR) -#define SIZE_OP_POP_OUT SIZE_OPCODE -#ifdef USE_OP_PUSH_OR_JUMP_EXACT -#define SIZE_OP_PUSH_OR_JUMP_EXACT1 (SIZE_OPCODE + SIZE_RELADDR + 1) -#endif -#define SIZE_OP_PUSH_IF_PEEK_NEXT (SIZE_OPCODE + SIZE_RELADDR + 1) -#define SIZE_OP_REPEAT_INC (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_REPEAT_INC_NG (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_WORD_BOUNDARY (SIZE_OPCODE + SIZE_MODE) -#define SIZE_OP_PREC_READ_START SIZE_OPCODE -#define SIZE_OP_PREC_READ_NOT_START (SIZE_OPCODE + SIZE_RELADDR) -#define SIZE_OP_PREC_READ_END SIZE_OPCODE -#define SIZE_OP_PREC_READ_NOT_END SIZE_OPCODE -#define SIZE_OP_FAIL SIZE_OPCODE -#define SIZE_OP_MEMORY_START (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_MEMORY_START_PUSH (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_MEMORY_END_PUSH (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_MEMORY_END_PUSH_REC (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_MEMORY_END (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_MEMORY_END_REC (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_ATOMIC_START SIZE_OPCODE -#define SIZE_OP_ATOMIC_END SIZE_OPCODE -#define SIZE_OP_EMPTY_CHECK_START (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_EMPTY_CHECK_END (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_LOOK_BEHIND (SIZE_OPCODE + SIZE_LENGTH) -#define SIZE_OP_LOOK_BEHIND_NOT_START (SIZE_OPCODE + SIZE_RELADDR + SIZE_LENGTH) -#define SIZE_OP_LOOK_BEHIND_NOT_END SIZE_OPCODE -#define SIZE_OP_CALL (SIZE_OPCODE + SIZE_ABSADDR) -#define SIZE_OP_RETURN SIZE_OPCODE -#define SIZE_OP_PUSH_SAVE_VAL (SIZE_OPCODE + SIZE_SAVE_TYPE + SIZE_MEMNUM) -#define SIZE_OP_UPDATE_VAR (SIZE_OPCODE + SIZE_UPDATE_VAR_TYPE + SIZE_MEMNUM) - -#ifdef USE_CALLOUT -#define SIZE_OP_CALLOUT_CONTENTS (SIZE_OPCODE + SIZE_MEMNUM) -#define SIZE_OP_CALLOUT_NAME (SIZE_OPCODE + SIZE_MEMNUM + SIZE_MEMNUM) -#endif - -#else /* if 0 */ - -/* for relative address increment to go next op. */ -#define SIZE_INC_OP 1 - -#define SIZE_OP_ANYCHAR_STAR 1 -#define SIZE_OP_ANYCHAR_STAR_PEEK_NEXT 1 -#define SIZE_OP_JUMP 1 -#define SIZE_OP_PUSH 1 -#define SIZE_OP_PUSH_SUPER 1 -#define SIZE_OP_POP_OUT 1 -#ifdef USE_OP_PUSH_OR_JUMP_EXACT -#define SIZE_OP_PUSH_OR_JUMP_EXACT1 1 -#endif -#define SIZE_OP_PUSH_IF_PEEK_NEXT 1 -#define SIZE_OP_REPEAT 1 -#define SIZE_OP_REPEAT_INC 1 -#define SIZE_OP_REPEAT_INC_NG 1 -#define SIZE_OP_WORD_BOUNDARY 1 -#define SIZE_OP_PREC_READ_START 1 -#define SIZE_OP_PREC_READ_NOT_START 1 -#define SIZE_OP_PREC_READ_END 1 -#define SIZE_OP_PREC_READ_NOT_END 1 -#define SIZE_OP_BACKREF 1 -#define SIZE_OP_FAIL 1 -#define SIZE_OP_MEMORY_START 1 -#define SIZE_OP_MEMORY_START_PUSH 1 -#define SIZE_OP_MEMORY_END_PUSH 1 -#define SIZE_OP_MEMORY_END_PUSH_REC 1 -#define SIZE_OP_MEMORY_END 1 -#define SIZE_OP_MEMORY_END_REC 1 -#define SIZE_OP_ATOMIC_START 1 -#define SIZE_OP_ATOMIC_END 1 -#define SIZE_OP_EMPTY_CHECK_START 1 -#define SIZE_OP_EMPTY_CHECK_END 1 -#define SIZE_OP_LOOK_BEHIND 1 -#define SIZE_OP_LOOK_BEHIND_NOT_START 1 -#define SIZE_OP_LOOK_BEHIND_NOT_END 1 -#define SIZE_OP_CALL 1 -#define SIZE_OP_RETURN 1 -#define SIZE_OP_PUSH_SAVE_VAL 1 -#define SIZE_OP_UPDATE_VAR 1 - -#ifdef USE_CALLOUT -#define SIZE_OP_CALLOUT_CONTENTS 1 -#define SIZE_OP_CALLOUT_NAME 1 -#endif -#endif /* if 0 */ - - -#define MC_ESC(syn) (syn)->meta_char_table.esc -#define MC_ANYCHAR(syn) (syn)->meta_char_table.anychar -#define MC_ANYTIME(syn) (syn)->meta_char_table.anytime -#define MC_ZERO_OR_ONE_TIME(syn) (syn)->meta_char_table.zero_or_one_time -#define MC_ONE_OR_MORE_TIME(syn) (syn)->meta_char_table.one_or_more_time -#define MC_ANYCHAR_ANYTIME(syn) (syn)->meta_char_table.anychar_anytime - -#define IS_MC_ESC_CODE(code, syn) \ - ((code) == MC_ESC(syn) && \ - !IS_SYNTAX_OP2((syn), ONIG_SYN_OP2_INEFFECTIVE_ESCAPE)) - - -#define SYN_POSIX_COMMON_OP \ - ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_POSIX_BRACKET | \ - ONIG_SYN_OP_DECIMAL_BACKREF | \ - ONIG_SYN_OP_BRACKET_CC | ONIG_SYN_OP_ASTERISK_ZERO_INF | \ - ONIG_SYN_OP_LINE_ANCHOR | \ - ONIG_SYN_OP_ESC_CONTROL_CHARS ) - -#define SYN_GNU_REGEX_OP \ - ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC | \ - ONIG_SYN_OP_POSIX_BRACKET | ONIG_SYN_OP_DECIMAL_BACKREF | \ - ONIG_SYN_OP_BRACE_INTERVAL | ONIG_SYN_OP_LPAREN_SUBEXP | \ - ONIG_SYN_OP_VBAR_ALT | \ - ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_PLUS_ONE_INF | \ - ONIG_SYN_OP_QMARK_ZERO_ONE | \ - ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR | ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR | \ - ONIG_SYN_OP_ESC_W_WORD | \ - ONIG_SYN_OP_ESC_B_WORD_BOUND | ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | \ - ONIG_SYN_OP_ESC_S_WHITE_SPACE | ONIG_SYN_OP_ESC_D_DIGIT | \ - ONIG_SYN_OP_LINE_ANCHOR ) - -#define SYN_GNU_REGEX_BV \ - ( ONIG_SYN_CONTEXT_INDEP_ANCHORS | ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS | \ - ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS | ONIG_SYN_ALLOW_INVALID_INTERVAL | \ - ONIG_SYN_BACKSLASH_ESCAPE_IN_CC | ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC ) - - -#define NCCLASS_FLAGS(cc) ((cc)->flags) -#define NCCLASS_FLAG_SET(cc,flag) (NCCLASS_FLAGS(cc) |= (flag)) -#define NCCLASS_FLAG_CLEAR(cc,flag) (NCCLASS_FLAGS(cc) &= ~(flag)) -#define IS_NCCLASS_FLAG_ON(cc,flag) ((NCCLASS_FLAGS(cc) & (flag)) != 0) - -/* cclass node */ -#define FLAG_NCCLASS_NOT (1<<0) -#define FLAG_NCCLASS_SHARE (1<<1) - -#define NCCLASS_SET_NOT(nd) NCCLASS_FLAG_SET(nd, FLAG_NCCLASS_NOT) -#define NCCLASS_CLEAR_NOT(nd) NCCLASS_FLAG_CLEAR(nd, FLAG_NCCLASS_NOT) -#define IS_NCCLASS_NOT(nd) IS_NCCLASS_FLAG_ON(nd, FLAG_NCCLASS_NOT) - - -typedef struct { -#ifdef USE_DIRECT_THREADED_CODE - const void* opaddr; -#else - enum OpCode opcode; -#endif - union { - struct { - UChar s[16]; /* Now used first 7 bytes only. */ - } exact; - struct { - UChar* s; - LengthType n; /* number of chars */ - } exact_n; /* EXACTN, EXACTN_IC, EXACTMB2N, EXACTMB3N */ - struct { - UChar* s; - LengthType n; /* number of chars */ - LengthType len; /* char byte length */ - } exact_len_n; /* EXACTMBN */ - struct { - BitSetRef bsp; - } cclass; - struct { - void* mb; - } cclass_mb; - struct { - void* mb; /* mb must be same position with cclass_mb for match_at(). */ - BitSetRef bsp; - } cclass_mix; - struct { - UChar c; - } anychar_star_peek_next; - struct { - ModeType mode; - } word_boundary; /* OP_WORD_BOUNDARY, OP_NO_WORD_BOUNDARY, OP_WORD_BEGIN, OP_WORD_END */ - struct { - enum TextSegmentBoundaryType type; - int not; - } text_segment_boundary; - struct { - union { - MemNumType n1; /* num == 1 */ - MemNumType* ns; /* num > 1 */ - }; - int num; - int nest_level; - } backref_general; /* BACKREF_MULTI, BACKREF_MULTI_IC, BACKREF_WITH_LEVEL, BACKREF_CHECK, BACKREF_CHECK_WITH_LEVEL, */ - struct { - MemNumType n1; - } backref_n; /* BACKREF_N, BACKREF_N_IC */ - struct { - MemNumType num; - } memory_start; /* MEMORY_START, MEMORY_START_PUSH */ - struct { - MemNumType num; - } memory_end; /* MEMORY_END, MEMORY_END_REC, MEMORY_END_PUSH, MEMORY_END_PUSH_REC */ - struct { - RelAddrType addr; - } jump; - struct { - RelAddrType addr; - } push; - struct { - RelAddrType addr; - UChar c; - } push_or_jump_exact1; - struct { - RelAddrType addr; - UChar c; - } push_if_peek_next; - struct { - MemNumType id; - RelAddrType addr; - } repeat; /* REPEAT, REPEAT_NG */ - struct { - MemNumType id; - } repeat_inc; /* REPEAT_INC, REPEAT_INC_SG, REPEAT_INC_NG, REPEAT_INC_NG_SG */ - struct { - MemNumType mem; - } empty_check_start; - struct { - MemNumType mem; - } empty_check_end; /* EMPTY_CHECK_END, EMPTY_CHECK_END_MEMST, EMPTY_CHECK_END_MEMST_PUSH */ - struct { - RelAddrType addr; - } prec_read_not_start; - struct { - LengthType len; - } look_behind; - struct { - LengthType len; - RelAddrType addr; - } look_behind_not_start; - struct { - AbsAddrType addr; - } call; - struct { - SaveType type; - MemNumType id; - } push_save_val; - struct { - UpdateVarType type; - MemNumType id; - } update_var; -#ifdef USE_CALLOUT - struct { - MemNumType num; - } callout_contents; - struct { - MemNumType num; - MemNumType id; - } callout_name; -#endif - }; -} Operation; - -typedef struct { - const UChar* pattern; - const UChar* pattern_end; -#ifdef USE_CALLOUT - void* tag_table; - int callout_num; - int callout_list_alloc; - CalloutListEntry* callout_list; /* index: callout num */ -#endif -} RegexExt; - -struct re_pattern_buffer { - /* common members of BBuf(bytes-buffer) */ - Operation* ops; -#ifdef USE_DIRECT_THREADED_CODE - enum OpCode* ocs; -#endif - Operation* ops_curr; - unsigned int ops_used; /* used space for ops */ - unsigned int ops_alloc; /* allocated space for ops */ - unsigned char* string_pool; - unsigned char* string_pool_end; - - int num_mem; /* used memory(...) num counted from 1 */ - int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */ - int num_null_check; /* OP_EMPTY_CHECK_START/END id counter */ - int num_call; /* number of subexp call */ - unsigned int capture_history; /* (?@...) flag (1-31) */ - unsigned int bt_mem_start; /* need backtrack flag */ - unsigned int bt_mem_end; /* need backtrack flag */ - int stack_pop_level; - int repeat_range_alloc; - OnigRepeatRange* repeat_range; - - OnigEncoding enc; - OnigOptionType options; - OnigSyntaxType* syntax; - OnigCaseFoldType case_fold_flag; - void* name_table; - - /* optimization info (string search, char-map and anchors) */ - int optimize; /* optimize flag */ - int threshold_len; /* search str-length for apply optimize */ - int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */ - OnigLen anchor_dmin; /* (SEMI_)END_BUF anchor distance */ - OnigLen anchor_dmax; /* (SEMI_)END_BUF anchor distance */ - int sub_anchor; /* start-anchor for exact or map */ - unsigned char *exact; - unsigned char *exact_end; - unsigned char map[CHAR_MAP_SIZE]; /* used as BMH skip or char-map */ - int map_offset; - OnigLen dmin; /* min-distance of exact or map */ - OnigLen dmax; /* max-distance of exact or map */ - RegexExt* extp; -}; - -#define COP(reg) ((reg)->ops_curr) -#define COP_CURR_OFFSET(reg) ((reg)->ops_used - 1) -#define COP_CURR_OFFSET_BYTES(reg, p) \ - ((int )((char* )(&((reg)->ops_curr->p)) - (char* )((reg)->ops))) - - -extern void onig_add_end_call(void (*func)(void)); - -#ifdef ONIG_DEBUG - -#ifdef ONIG_DEBUG_COMPILE -extern void onig_print_compiled_byte_code_list(FILE* f, regex_t* reg); -#endif - -#ifdef ONIG_DEBUG_STATISTICS -extern void onig_statistics_init P_((void)); -extern int onig_print_statistics P_((FILE* f)); -#endif -#endif - -extern void onig_warning(const char* s); -extern UChar* onig_error_code_to_format P_((int code)); -extern void EFIAPI onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, ...)); -extern int onig_compile P_((regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo)); -extern int onig_is_code_in_cc_len P_((int enclen, OnigCodePoint code, void* /* CClassNode* */ cc)); -extern RegexExt* onig_get_regex_ext(regex_t* reg); -extern int onig_ext_set_pattern(regex_t* reg, const UChar* pattern, const UChar* pattern_end); -extern int onig_positive_int_multiply(int x, int y); - -#ifdef USE_CALLOUT - -extern OnigCalloutType onig_get_callout_type_by_name_id(int name_id); -extern OnigCalloutFunc onig_get_callout_start_func_by_name_id(int id); -extern OnigCalloutFunc onig_get_callout_end_func_by_name_id(int id); -extern int onig_callout_tag_table_free(void* table); -extern void onig_free_reg_callout_list(int n, CalloutListEntry* list); -extern CalloutListEntry* onig_reg_callout_list_at(regex_t* reg, int num); -extern OnigCalloutFunc onig_get_callout_start_func(regex_t* reg, int callout_num); - -/* for definition of builtin callout */ -#define BC0_P(name, func) do {\ - int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ - id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ - (UChar* )(name), (UChar* )((name) + len),\ - ONIG_CALLOUT_IN_PROGRESS,\ - onig_builtin_ ## func, 0, 0, 0, 0, 0);\ - if (id < 0) return id;\ -} while(0) - -#define BC0_R(name, func) do {\ - int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ - id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ - (UChar* )(name), (UChar* )((name) + len),\ - ONIG_CALLOUT_IN_RETRACTION,\ - onig_builtin_ ## func, 0, 0, 0, 0, 0);\ - if (id < 0) return id;\ -} while(0) - -#define BC0_B(name, func) do {\ - int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ - id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ - (UChar* )(name), (UChar* )((name) + len),\ - ONIG_CALLOUT_IN_BOTH,\ - onig_builtin_ ## func, 0, 0, 0, 0, 0);\ - if (id < 0) return id;\ -} while(0) - -#define BC_P(name, func, na, ts) do {\ - int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ - id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ - (UChar* )(name), (UChar* )((name) + len),\ - ONIG_CALLOUT_IN_PROGRESS,\ - onig_builtin_ ## func, 0, (na), (ts), 0, 0); \ - if (id < 0) return id;\ -} while(0) - -#define BC_P_O(name, func, nts, ts, nopts, opts) do {\ - int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ - id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ - (UChar* )(name), (UChar* )((name) + len),\ - ONIG_CALLOUT_IN_PROGRESS,\ - onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\ - if (id < 0) return id;\ -} while(0) - -#define BC_B(name, func, na, ts) do {\ - int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ - id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ - (UChar* )(name), (UChar* )((name) + len),\ - ONIG_CALLOUT_IN_BOTH,\ - onig_builtin_ ## func, 0, (na), (ts), 0, 0);\ - if (id < 0) return id;\ -} while(0) - -#define BC_B_O(name, func, nts, ts, nopts, opts) do {\ - int len = onigenc_str_bytelen_null(enc, (UChar* )name);\ - id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\ - (UChar* )(name), (UChar* )((name) + len),\ - ONIG_CALLOUT_IN_BOTH,\ - onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\ - if (id < 0) return id;\ -} while(0) - -#endif /* USE_CALLOUT */ - - -/* strend hash */ -typedef void hash_table_type; - -#ifdef _WIN32 -# include -typedef ULONG_PTR hash_data_type; -#else -//typedef unsigned long hash_data_type; -#endif - -typedef UINTN hash_data_type; - -extern hash_table_type* onig_st_init_strend_table_with_size P_((int size)); -extern int onig_st_lookup_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type *value)); -extern int onig_st_insert_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type value)); - -typedef int (*ONIGENC_INIT_PROPERTY_LIST_FUNC_TYPE)(void); - -#endif /* REGINT_H */ -#include -#define INT_MAX MAX_INTN -#define LONG_MAX MAX_UINTN diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.h b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.h deleted file mode 100644 index 29e64341dfd7..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.h +++ /dev/null @@ -1,455 +0,0 @@ -#ifndef REGPARSE_H -#define REGPARSE_H -/********************************************************************** - regparse.h - Oniguruma (regular expression library) -**********************************************************************/ -/*- - * Copyright (c) 2002-2019 K.Kosako - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "regint.h" - -#define NODE_STRING_MARGIN 16 -#define NODE_STRING_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */ -#define NODE_BACKREFS_SIZE 6 - -/* node type */ -typedef enum { - NODE_STRING = 0, - NODE_CCLASS = 1, - NODE_CTYPE = 2, - NODE_BACKREF = 3, - NODE_QUANT = 4, - NODE_BAG = 5, - NODE_ANCHOR = 6, - NODE_LIST = 7, - NODE_ALT = 8, - NODE_CALL = 9, - NODE_GIMMICK = 10 -} NodeType; - -enum BagType { - BAG_MEMORY = 0, - BAG_OPTION = 1, - BAG_STOP_BACKTRACK = 2, - BAG_IF_ELSE = 3, -}; - -enum GimmickType { - GIMMICK_FAIL = 0, - GIMMICK_SAVE = 1, - GIMMICK_UPDATE_VAR = 2, -#ifdef USE_CALLOUT - GIMMICK_CALLOUT = 3, -#endif -}; - -enum BodyEmptyType { - BODY_IS_NOT_EMPTY = 0, - BODY_IS_EMPTY_POSSIBILITY = 1, - BODY_IS_EMPTY_POSSIBILITY_MEM = 2, - BODY_IS_EMPTY_POSSIBILITY_REC = 3 -}; - -typedef struct { - NodeType node_type; - int status; - - UChar* s; - UChar* end; - unsigned int flag; - int capacity; /* (allocated size - 1) or 0: use buf[] */ - UChar buf[NODE_STRING_BUF_SIZE]; -} StrNode; - -typedef struct { - NodeType node_type; - int status; - - unsigned int flags; - BitSet bs; - BBuf* mbuf; /* multi-byte info or NULL */ -} CClassNode; - -typedef struct { - NodeType node_type; - int status; - struct _Node* body; - - int lower; - int upper; - int greedy; - enum BodyEmptyType emptiness; - struct _Node* head_exact; - struct _Node* next_head_exact; - int is_refered; /* include called node. don't eliminate even if {0} */ -} QuantNode; - -typedef struct { - NodeType node_type; - int status; - struct _Node* body; - - enum BagType type; - union { - struct { - int regnum; - AbsAddrType called_addr; - int entry_count; - int called_state; - } m; - struct { - OnigOptionType options; - } o; - struct { - /* body is condition */ - struct _Node* Then; - struct _Node* Else; - } te; - }; - /* for multiple call reference */ - OnigLen min_len; /* min length (byte) */ - OnigLen max_len; /* max length (byte) */ - int char_len; /* character length */ - int opt_count; /* referenced count in optimize_nodes() */ -} BagNode; - -#ifdef USE_CALL - -typedef struct { - int offset; - struct _Node* target; -} UnsetAddr; - -typedef struct { - int num; - int alloc; - UnsetAddr* us; -} UnsetAddrList; - -typedef struct { - NodeType node_type; - int status; - struct _Node* body; /* to BagNode : BAG_MEMORY */ - - int by_number; - int group_num; - UChar* name; - UChar* name_end; - int entry_count; -} CallNode; - -#endif - -typedef struct { - NodeType node_type; - int status; - - int back_num; - int back_static[NODE_BACKREFS_SIZE]; - int* back_dynamic; - int nest_level; -} BackRefNode; - -typedef struct { - NodeType node_type; - int status; - struct _Node* body; - - int type; - int char_len; - int ascii_mode; -} AnchorNode; - -typedef struct { - NodeType node_type; - int status; - - struct _Node* car; - struct _Node* cdr; -} ConsAltNode; - -typedef struct { - NodeType node_type; - int status; - - int ctype; - int not; - OnigOptionType options; - int ascii_mode; -} CtypeNode; - -typedef struct { - NodeType node_type; - int status; - - enum GimmickType type; - int detail_type; - int num; - int id; -} GimmickNode; - -typedef struct _Node { - union { - struct { - NodeType node_type; - int status; - struct _Node* body; - } base; - - StrNode str; - CClassNode cclass; - QuantNode quant; - BagNode bag; - BackRefNode backref; - AnchorNode anchor; - ConsAltNode cons; - CtypeNode ctype; -#ifdef USE_CALL - CallNode call; -#endif - GimmickNode gimmick; - } u; -} Node; - -#define NULL_NODE ((Node* )0) - - -/* node type bit */ -#define NODE_TYPE2BIT(type) (1<<(type)) - -#define NODE_BIT_STRING NODE_TYPE2BIT(NODE_STRING) -#define NODE_BIT_CCLASS NODE_TYPE2BIT(NODE_CCLASS) -#define NODE_BIT_CTYPE NODE_TYPE2BIT(NODE_CTYPE) -#define NODE_BIT_BACKREF NODE_TYPE2BIT(NODE_BACKREF) -#define NODE_BIT_QUANT NODE_TYPE2BIT(NODE_QUANT) -#define NODE_BIT_BAG NODE_TYPE2BIT(NODE_BAG) -#define NODE_BIT_ANCHOR NODE_TYPE2BIT(NODE_ANCHOR) -#define NODE_BIT_LIST NODE_TYPE2BIT(NODE_LIST) -#define NODE_BIT_ALT NODE_TYPE2BIT(NODE_ALT) -#define NODE_BIT_CALL NODE_TYPE2BIT(NODE_CALL) -#define NODE_BIT_GIMMICK NODE_TYPE2BIT(NODE_GIMMICK) - -#define NODE_TYPE(node) ((node)->u.base.node_type) -#define NODE_SET_TYPE(node, ntype) (node)->u.base.node_type = (ntype) - -#define STR_(node) (&((node)->u.str)) -#define CCLASS_(node) (&((node)->u.cclass)) -#define CTYPE_(node) (&((node)->u.ctype)) -#define BACKREF_(node) (&((node)->u.backref)) -#define QUANT_(node) (&((node)->u.quant)) -#define BAG_(node) (&((node)->u.bag)) -#define ANCHOR_(node) (&((node)->u.anchor)) -#define CONS_(node) (&((node)->u.cons)) -#define CALL_(node) (&((node)->u.call)) -#define GIMMICK_(node) (&((node)->u.gimmick)) - -#define NODE_CAR(node) (CONS_(node)->car) -#define NODE_CDR(node) (CONS_(node)->cdr) - -#define CTYPE_ANYCHAR -1 -#define NODE_IS_ANYCHAR(node) \ - (NODE_TYPE(node) == NODE_CTYPE && CTYPE_(node)->ctype == CTYPE_ANYCHAR) - -#define CTYPE_OPTION(node, reg) \ - (NODE_IS_FIXED_OPTION(node) ? CTYPE_(node)->options : reg->options) - - -#define ANCR_ANYCHAR_INF_MASK (ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML) -#define ANCR_END_BUF_MASK (ANCR_END_BUF | ANCR_SEMI_END_BUF) - -#define NODE_STRING_RAW (1<<0) /* by backslashed number */ -#define NODE_STRING_AMBIG (1<<1) -#define NODE_STRING_GOOD_AMBIG (1<<2) -#define NODE_STRING_DONT_GET_OPT_INFO (1<<3) - -#define NODE_STRING_LEN(node) (int )((node)->u.str.end - (node)->u.str.s) -#define NODE_STRING_SET_RAW(node) (node)->u.str.flag |= NODE_STRING_RAW -#define NODE_STRING_CLEAR_RAW(node) (node)->u.str.flag &= ~NODE_STRING_RAW -#define NODE_STRING_SET_AMBIG(node) (node)->u.str.flag |= NODE_STRING_AMBIG -#define NODE_STRING_SET_GOOD_AMBIG(node) (node)->u.str.flag |= NODE_STRING_GOOD_AMBIG -#define NODE_STRING_SET_DONT_GET_OPT_INFO(node) \ - (node)->u.str.flag |= NODE_STRING_DONT_GET_OPT_INFO -#define NODE_STRING_IS_RAW(node) \ - (((node)->u.str.flag & NODE_STRING_RAW) != 0) -#define NODE_STRING_IS_AMBIG(node) \ - (((node)->u.str.flag & NODE_STRING_AMBIG) != 0) -#define NODE_STRING_IS_GOOD_AMBIG(node) \ - (((node)->u.str.flag & NODE_STRING_GOOD_AMBIG) != 0) -#define NODE_STRING_IS_DONT_GET_OPT_INFO(node) \ - (((node)->u.str.flag & NODE_STRING_DONT_GET_OPT_INFO) != 0) - -#define BACKREFS_P(br) \ - (IS_NOT_NULL((br)->back_dynamic) ? (br)->back_dynamic : (br)->back_static) - -/* node status bits */ -#define NODE_ST_MIN_FIXED (1<<0) -#define NODE_ST_MAX_FIXED (1<<1) -#define NODE_ST_CLEN_FIXED (1<<2) -#define NODE_ST_MARK1 (1<<3) -#define NODE_ST_MARK2 (1<<4) -#define NODE_ST_STRICT_REAL_REPEAT (1<<5) -#define NODE_ST_RECURSION (1<<6) -#define NODE_ST_CALLED (1<<7) -#define NODE_ST_ADDR_FIXED (1<<8) -#define NODE_ST_NAMED_GROUP (1<<9) -#define NODE_ST_IN_REAL_REPEAT (1<<10) /* STK_REPEAT is nested in stack. */ -#define NODE_ST_IN_ZERO_REPEAT (1<<11) /* (....){0} */ -#define NODE_ST_IN_MULTI_ENTRY (1<<12) -#define NODE_ST_NEST_LEVEL (1<<13) -#define NODE_ST_BY_NUMBER (1<<14) /* {n,m} */ -#define NODE_ST_BY_NAME (1<<15) /* backref by name */ -#define NODE_ST_BACKREF (1<<16) -#define NODE_ST_CHECKER (1<<17) -#define NODE_ST_FIXED_OPTION (1<<18) -#define NODE_ST_PROHIBIT_RECURSION (1<<19) -#define NODE_ST_SUPER (1<<20) - - -#define NODE_STATUS(node) (((Node* )node)->u.base.status) -#define NODE_STATUS_ADD(node,f) (NODE_STATUS(node) |= (NODE_ST_ ## f)) -#define NODE_STATUS_REMOVE(node,f) (NODE_STATUS(node) &= ~(NODE_ST_ ## f)) - -#define NODE_IS_BY_NUMBER(node) ((NODE_STATUS(node) & NODE_ST_BY_NUMBER) != 0) -#define NODE_IS_IN_REAL_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_REAL_REPEAT) != 0) -#define NODE_IS_CALLED(node) ((NODE_STATUS(node) & NODE_ST_CALLED) != 0) -#define NODE_IS_IN_MULTI_ENTRY(node) ((NODE_STATUS(node) & NODE_ST_IN_MULTI_ENTRY) != 0) -#define NODE_IS_RECURSION(node) ((NODE_STATUS(node) & NODE_ST_RECURSION) != 0) -#define NODE_IS_IN_ZERO_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_ZERO_REPEAT) != 0) -#define NODE_IS_NAMED_GROUP(node) ((NODE_STATUS(node) & NODE_ST_NAMED_GROUP) != 0) -#define NODE_IS_ADDR_FIXED(node) ((NODE_STATUS(node) & NODE_ST_ADDR_FIXED) != 0) -#define NODE_IS_CLEN_FIXED(node) ((NODE_STATUS(node) & NODE_ST_CLEN_FIXED) != 0) -#define NODE_IS_MIN_FIXED(node) ((NODE_STATUS(node) & NODE_ST_MIN_FIXED) != 0) -#define NODE_IS_MAX_FIXED(node) ((NODE_STATUS(node) & NODE_ST_MAX_FIXED) != 0) -#define NODE_IS_MARK1(node) ((NODE_STATUS(node) & NODE_ST_MARK1) != 0) -#define NODE_IS_MARK2(node) ((NODE_STATUS(node) & NODE_ST_MARK2) != 0) -#define NODE_IS_NEST_LEVEL(node) ((NODE_STATUS(node) & NODE_ST_NEST_LEVEL) != 0) -#define NODE_IS_BY_NAME(node) ((NODE_STATUS(node) & NODE_ST_BY_NAME) != 0) -#define NODE_IS_BACKREF(node) ((NODE_STATUS(node) & NODE_ST_BACKREF) != 0) -#define NODE_IS_CHECKER(node) ((NODE_STATUS(node) & NODE_ST_CHECKER) != 0) -#define NODE_IS_FIXED_OPTION(node) ((NODE_STATUS(node) & NODE_ST_FIXED_OPTION) != 0) -#define NODE_IS_SUPER(node) ((NODE_STATUS(node) & NODE_ST_SUPER) != 0) -#define NODE_IS_PROHIBIT_RECURSION(node) \ - ((NODE_STATUS(node) & NODE_ST_PROHIBIT_RECURSION) != 0) -#define NODE_IS_STRICT_REAL_REPEAT(node) \ - ((NODE_STATUS(node) & NODE_ST_STRICT_REAL_REPEAT) != 0) - -#define NODE_BODY(node) ((node)->u.base.body) -#define NODE_QUANT_BODY(node) ((node)->body) -#define NODE_BAG_BODY(node) ((node)->body) -#define NODE_CALL_BODY(node) ((node)->body) -#define NODE_ANCHOR_BODY(node) ((node)->body) - -#define SCANENV_MEMENV_SIZE 8 -#define SCANENV_MEMENV(senv) \ - (IS_NOT_NULL((senv)->mem_env_dynamic) ? \ - (senv)->mem_env_dynamic : (senv)->mem_env_static) - -typedef struct { - Node* node; -#if 0 - int in; - int recursion; -#endif -} MemEnv; - -typedef struct { - enum SaveType type; -} SaveItem; - -typedef struct { - OnigOptionType options; - OnigCaseFoldType case_fold_flag; - OnigEncoding enc; - OnigSyntaxType* syntax; - MemStatusType capture_history; - MemStatusType bt_mem_start; - MemStatusType bt_mem_end; - MemStatusType backrefed_mem; - UChar* pattern; - UChar* pattern_end; - UChar* error; - UChar* error_end; - regex_t* reg; /* for reg->names only */ - int num_call; -#ifdef USE_CALL - UnsetAddrList* unset_addr_list; - int has_call_zero; -#endif - int num_mem; - int num_named; - int mem_alloc; - MemEnv mem_env_static[SCANENV_MEMENV_SIZE]; - MemEnv* mem_env_dynamic; - unsigned int parse_depth; - - int keep_num; - int save_num; - int save_alloc_num; - SaveItem* saves; -} ScanEnv; - - -#define IS_SYNTAX_OP(syn, opm) (((syn)->op & (opm)) != 0) -#define IS_SYNTAX_OP2(syn, opm) (((syn)->op2 & (opm)) != 0) -#define IS_SYNTAX_BV(syn, bvm) (((syn)->behavior & (bvm)) != 0) - -typedef struct { - int new_val; -} GroupNumRemap; - -extern int onig_renumber_name_table P_((regex_t* reg, GroupNumRemap* map)); - -extern int onig_strncmp P_((const UChar* s1, const UChar* s2, int n)); -extern void onig_strcpy P_((UChar* dest, const UChar* src, const UChar* end)); -extern void onig_scan_env_set_error_string P_((ScanEnv* env, int ecode, UChar* arg, UChar* arg_end)); -extern int onig_scan_unsigned_number P_((UChar** src, const UChar* end, OnigEncoding enc)); -extern void onig_reduce_nested_quantifier P_((Node* pnode, Node* cnode)); -extern void onig_node_conv_to_str_node P_((Node* node, int raw)); -extern int onig_node_str_cat P_((Node* node, const UChar* s, const UChar* end)); -extern int onig_node_str_set P_((Node* node, const UChar* s, const UChar* end)); -extern void onig_node_free P_((Node* node)); -extern Node* onig_node_new_bag P_((enum BagType type)); -extern Node* onig_node_new_anchor P_((int type, int ascii_mode)); -extern Node* onig_node_new_str P_((const UChar* s, const UChar* end)); -extern Node* onig_node_new_list P_((Node* left, Node* right)); -extern Node* onig_node_list_add P_((Node* list, Node* x)); -extern Node* onig_node_new_alt P_((Node* left, Node* right)); -extern void onig_node_str_clear P_((Node* node)); -extern int onig_names_free P_((regex_t* reg)); -extern int onig_parse_tree P_((Node** root, const UChar* pattern, const UChar* end, regex_t* reg, ScanEnv* env)); -extern int onig_free_shared_cclass_table P_((void)); -extern int onig_is_code_in_cc P_((OnigEncoding enc, OnigCodePoint code, CClassNode* cc)); -extern OnigLen onig_get_tiny_min_len(Node* node, unsigned int inhibit_node_types, int* invalid_node); - -#ifdef USE_CALLOUT -extern int onig_global_callout_names_free(void); -#endif - -#ifdef ONIG_DEBUG -extern int onig_print_names(FILE*, regex_t*); -#endif - -#endif /* REGPARSE_H */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.h b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.h deleted file mode 100644 index c42f379058dd..000000000000 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/st.h +++ /dev/null @@ -1,69 +0,0 @@ -/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */ - -/* @(#) st.h 5.1 89/12/14 */ - -#ifndef ST_INCLUDED - -#define ST_INCLUDED - -#ifdef _WIN32 -# include -typedef ULONG_PTR st_data_t; -#else -// typedef unsigned long st_data_t; -#endif -#define ST_DATA_T_DEFINED -typedef UINTN st_data_t; - -typedef struct st_table st_table; - -struct st_hash_type { - int (*compare)(); - int (*hash)(); -}; - -struct st_table { - struct st_hash_type *type; - int num_bins; - int num_entries; - struct st_table_entry **bins; -}; - -#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0) - -enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK}; - -#ifndef _ -# define _(args) args -#endif -#ifndef ANYARGS -# ifdef __cplusplus -# define ANYARGS ... -# else -# define ANYARGS -# endif -#endif - -st_table *st_init_table _((struct st_hash_type *)); -st_table *st_init_table_with_size _((struct st_hash_type *, int)); -st_table *st_init_numtable _((void)); -st_table *st_init_numtable_with_size _((int)); -st_table *st_init_strtable _((void)); -st_table *st_init_strtable_with_size _((int)); -int st_delete _((st_table *, st_data_t *, st_data_t *)); -int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t)); -int st_insert _((st_table *, st_data_t, st_data_t)); -int st_lookup _((st_table *, st_data_t, st_data_t *)); -int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t)); -void st_add_direct _((st_table *, st_data_t, st_data_t)); -void st_free_table _((st_table *)); -void st_cleanup_safe _((st_table *, st_data_t)); -st_table *st_copy _((st_table *)); - -#define ST_NUMCMP ((int (*)()) 0) -#define ST_NUMHASH ((int (*)()) -2) - -#define st_numcmp ST_NUMCMP -#define st_numhash ST_NUMHASH - -#endif /* ST_INCLUDED */ diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaUefiPort.h b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h similarity index 62% rename from MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaUefiPort.h rename to MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h index 299f414fd624..fe8e7cac019d 100644 --- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/OnigurumaUefiPort.h +++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h @@ -3,6 +3,7 @@ Module to rewrite stdlib references within Oniguruma (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -15,14 +16,35 @@ #include #include -#undef _WIN32 + +#define ONIG_NO_STANDARD_C_HEADERS +#define ONIG_NO_PRINT #define P_(args) args -#define SIZEOF_LONG sizeof(long) -#define SIZEOF_INT sizeof(int) -typedef UINTN size_t; +#define INT_MAX 0x7FFFFFFF +#define LONG_MAX 0x7FFFFFFF +#define UINT_MAX 0xFFFFFFFF +#define ULONG_MAX 0xFFFFFFFF + + +#define SIZEOF_LONG 4 +#define SIZEOF_LONG_LONG 8 +typedef UINTN size_t; +typedef UINT32 uint32_t; +typedef INTN intptr_t; + +#ifndef offsetof +#define offsetof OFFSET_OF +#endif + +#ifdef MDE_CPU_IA32 +#define SIZEOF_VOIDP 4 +#endif + +#ifdef MDE_CPU_X64 +#define SIZEOF_VOIDP 8 +#endif -#define malloc(n) AllocatePool(n) #define calloc(n,s) AllocateZeroPool((n)*(s)) #define free(p) \ @@ -35,7 +57,6 @@ typedef UINTN size_t; } \ } while (FALSE) -#define realloc(OldPtr,NewSize,OldSize) ReallocatePool(OldSize,NewSize,OldPtr) #define xmemmove(Dest,Src,Length) CopyMem(Dest,Src,Length) #define xmemcpy(Dest,Src,Length) CopyMem(Dest,Src,Length) #define xmemset(Buffer,Value,Length) SetMem(Buffer,Length,Value) @@ -44,6 +65,7 @@ typedef UINTN size_t; #define va_list VA_LIST #define va_arg(a,b) VA_ARG(a,b) #define va_end(a) VA_END(a) +#define va_start VA_START #define FILE VOID #define stdout NULL @@ -51,12 +73,19 @@ typedef UINTN size_t; #define fputs(a,b) #define vsnprintf (int)AsciiVSPrint #define _vsnprintf vsnprintf +#define xsnprintf sprintf_s +#define xvsnprintf vsnprintf +#define alloca malloc #define setlocale(a,b) #define LC_ALL 0 +#define UCHAR_MAX 255 #define MAX_STRING_SIZE 0x1000 #define strlen_s(String,MaxSize) AsciiStrnLenS (String, MaxSize) +#define xstrncpy(Dest, Src, MaxSize) strcat_s(Dest,MaxSize,Src) +#define xstrcat(Dest,Src,MaxSize) strcat(Dest,Src,MaxSize) +#define strcat(Dest,Src,MaxSize) strcat_s(Dest,MaxSize,Src) #define strcat_s(Dest,MaxSize,Src) AsciiStrCatS (Dest, MaxSize, Src) #define strncpy_s(Dest,MaxSize,Src,Length) AsciiStrnCpyS (Dest, MaxSize, Src, Length) #define strcmp OnigStrCmp @@ -64,6 +93,9 @@ typedef UINTN size_t; int OnigStrCmp (char* Str1, char* Str2); int EFIAPI sprintf_s (char *str, size_t sizeOfBuffer, char const *fmt, ...); +int strlen(const char* str); +void* malloc(size_t size); +void* realloc(void *ptr, size_t size); #define exit(n) ASSERT(FALSE); diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h index 7354dec333a6..3f046af363ea 100644 --- a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h +++ b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h @@ -2,6 +2,7 @@ EFI_REGULAR_EXPRESSION_PROTOCOL Header File. (C) Copyright 2015 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent @@ -10,7 +11,7 @@ #ifndef __REGULAR_EXPRESSIONDXE_H__ #define __REGULAR_EXPRESSIONDXE_H__ -#include "Oniguruma/oniguruma.h" +#include "oniguruma/src/oniguruma.h" #include #include diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf index dd33205fcebe..dc904bbb7f98 100644 --- a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf +++ b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf @@ -1,7 +1,7 @@ ## @file # EFI_REGULAR_EXPRESSION_PROTOCOL Implementation # -# Copyright (c) 2018, Intel Corporation. All rights reserved.
+# Copyright (c) 2018-2020, Intel Corporation. All rights reserved.
# (C) Copyright 2015 Hewlett Packard Enterprise Development LP
# # SPDX-License-Identifier: BSD-2-Clause-Patent @@ -18,40 +18,49 @@ [Defines] [Sources] RegularExpressionDxe.c RegularExpressionDxe.h - Oniguruma/OnigurumaUefiPort.h - Oniguruma/OnigurumaUefiPort.c - Oniguruma/OnigurumaIntrinsics.c | MSFT + OnigurumaUefiPort.h + OnigurumaUefiPort.c + OnigurumaIntrinsics.c | MSFT + +# Wrapper header files start # + stdio.h + stdarg.h + stddef.h + stdlib.h + string.h + config.h +# Wrapper header files end # # Upstream Oniguruma code - Oniguruma/onig_init.c - Oniguruma/oniguruma.h - Oniguruma/regcomp.c - Oniguruma/regenc.c - Oniguruma/regenc.h - Oniguruma/regerror.c - Oniguruma/regexec.c - Oniguruma/oniggnu.h - Oniguruma/reggnu.c - Oniguruma/regint.h - Oniguruma/regparse.c - Oniguruma/regparse.h - Oniguruma/regposerr.c - Oniguruma/onigposix.h - Oniguruma/regposix.c - Oniguruma/regsyntax.c - Oniguruma/regtrav.c - Oniguruma/regversion.c - Oniguruma/st.c - Oniguruma/st.h + oniguruma/src/onig_init.c + oniguruma/src/oniguruma.h + oniguruma/src/regcomp.c + oniguruma/src/regenc.c + oniguruma/src/regenc.h + oniguruma/src/regerror.c + oniguruma/src/regexec.c + oniguruma/src/oniggnu.h + oniguruma/src/reggnu.c + oniguruma/src/regint.h + oniguruma/src/regparse.c + oniguruma/src/regparse.h + oniguruma/src/regposerr.c + oniguruma/src/onigposix.h + oniguruma/src/regposix.c + oniguruma/src/regsyntax.c + oniguruma/src/regtrav.c + oniguruma/src/regversion.c + oniguruma/src/st.c + oniguruma/src/st.h # Supported Character Encodings - Oniguruma/ascii.c - Oniguruma/unicode.c - Oniguruma/unicode_fold1_key.c - Oniguruma/unicode_fold2_key.c - Oniguruma/unicode_fold3_key.c - Oniguruma/unicode_unfold_key.c - Oniguruma/utf16_le.c + oniguruma/src/ascii.c + oniguruma/src/unicode.c + oniguruma/src/unicode_fold1_key.c + oniguruma/src/unicode_fold2_key.c + oniguruma/src/unicode_fold3_key.c + oniguruma/src/unicode_unfold_key.c + oniguruma/src/utf16_le.c [Packages] MdePkg/MdePkg.dec @@ -74,7 +83,7 @@ [Protocols] [BuildOptions] # Enable STDARG for variable arguments - *_*_*_CC_FLAGS = -DHAVE_STDARG_H + *_*_*_CC_FLAGS = -DHAVE_STDARG_H -U_WIN32 -DONIG_VARIADIC_FUNC_ATTR=EFIAPI # Override MSFT build option to remove /Oi and /GL MSFT:*_*_*_CC_FLAGS = /GL- diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/config.h b/MdeModulePkg/Universal/RegularExpressionDxe/config.h new file mode 100644 index 000000000000..820040066caa --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/config.h @@ -0,0 +1,9 @@ +/** @file + Include file to support building the third-party oniguruma. + +Copyright (c) 2020, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma b/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma new file mode 160000 index 000000000000..abfc8ff81df4 --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma @@ -0,0 +1 @@ +Subproject commit abfc8ff81df4067f309032467785e06975678f0d diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/stdarg.h b/MdeModulePkg/Universal/RegularExpressionDxe/stdarg.h new file mode 100644 index 000000000000..820040066caa --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/stdarg.h @@ -0,0 +1,9 @@ +/** @file + Include file to support building the third-party oniguruma. + +Copyright (c) 2020, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/stddef.h b/MdeModulePkg/Universal/RegularExpressionDxe/stddef.h new file mode 100644 index 000000000000..820040066caa --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/stddef.h @@ -0,0 +1,9 @@ +/** @file + Include file to support building the third-party oniguruma. + +Copyright (c) 2020, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/stdio.h b/MdeModulePkg/Universal/RegularExpressionDxe/stdio.h new file mode 100644 index 000000000000..820040066caa --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/stdio.h @@ -0,0 +1,9 @@ +/** @file + Include file to support building the third-party oniguruma. + +Copyright (c) 2020, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/stdlib.h b/MdeModulePkg/Universal/RegularExpressionDxe/stdlib.h new file mode 100644 index 000000000000..820040066caa --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/stdlib.h @@ -0,0 +1,9 @@ +/** @file + Include file to support building the third-party oniguruma. + +Copyright (c) 2020, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/string.h b/MdeModulePkg/Universal/RegularExpressionDxe/string.h new file mode 100644 index 000000000000..820040066caa --- /dev/null +++ b/MdeModulePkg/Universal/RegularExpressionDxe/string.h @@ -0,0 +1,9 @@ +/** @file + Include file to support building the third-party oniguruma. + +Copyright (c) 2020, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include -- 2.18.0.windows.1