1 /**********************************************************************
2 unicode.c - Oniguruma (regular expression library)
3 **********************************************************************/
5 * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 #define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \
33 ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)
35 #define ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(code,cbit) \
36 ((EncUNICODE_ISO_8859_1_CtypeTable[code] & (cbit)) != 0)
39 static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable
[256] = {
40 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
41 0x4008, 0x428c, 0x4289, 0x4288, 0x4288, 0x4288, 0x4008, 0x4008,
42 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
43 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
44 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
45 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
46 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,
47 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
48 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,
49 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,
50 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,
51 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,
52 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,
53 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,
54 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,
55 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,
56 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008,
57 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
58 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
59 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
60 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,
61 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0,
62 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,
63 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,
64 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
65 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
66 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,
67 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,
68 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
69 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
70 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,
71 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2
75 static const OnigCodePoint CR_NEWLINE
[] = {
80 /* 'Alpha': [[:Alpha:]] */
81 static const OnigCodePoint CR_Alpha
[] = {
503 /* 'Blank': [[:Blank:]] */
504 static const OnigCodePoint CR_Blank
[] = {
517 /* 'Cntrl': [[:Cntrl:]] */
518 static const OnigCodePoint CR_Cntrl
[] = {
541 /* 'Digit': [[:Digit:]] */
542 static const OnigCodePoint CR_Digit
[] = {
569 /* 'Graph': [[:Graph:]] */
570 static const OnigCodePoint CR_Graph
[] = {
998 /* 'Lower': [[:Lower:]] */
999 static const OnigCodePoint CR_Lower
[] = {
1483 /* 'Print': [[:Print:]] */
1484 static const OnigCodePoint CR_Print
[] = {
1911 /* 'Punct': [[:Punct:]] */
1912 static const OnigCodePoint CR_Punct
[] = {
2012 /* 'Space': [[:Space:]] */
2013 static const OnigCodePoint CR_Space
[] = {
2028 /* 'Upper': [[:Upper:]] */
2029 static const OnigCodePoint CR_Upper
[] = {
2509 /* 'XDigit': [[:XDigit:]] */
2510 static const OnigCodePoint CR_XDigit
[] = {
2517 /* 'Word': [[:Word:]] */
2518 static const OnigCodePoint CR_Word
[] = {
2986 /* 'Alnum': [[:Alnum:]] */
2987 static const OnigCodePoint CR_Alnum
[] = {
3427 /* 'ASCII': [[:ASCII:]] */
3428 static const OnigCodePoint CR_ASCII
[] = {
3433 #ifdef USE_UNICODE_PROPERTIES
3436 static const OnigCodePoint CR_Any
[] = {
3442 static const OnigCodePoint CR_Assigned
[] = {
3864 }; /* CR_Assigned */
3866 /* 'C': Major Category */
3867 static const OnigCodePoint CR_C
[] = {
4293 /* 'Cc': General Category */
4294 static const OnigCodePoint CR_Cc
[] = {
4300 /* 'Cf': General Category */
4301 static const OnigCodePoint CR_Cf
[] = {
4319 /* 'Cn': General Category */
4320 static const OnigCodePoint CR_Cn
[] = {
4744 /* 'Co': General Category */
4745 static const OnigCodePoint CR_Co
[] = {
4752 /* 'Cs': General Category */
4753 static const OnigCodePoint CR_Cs
[] = {
4758 /* 'L': Major Category */
4759 static const OnigCodePoint CR_L
[] = {
5110 /* 'Ll': General Category */
5111 static const OnigCodePoint CR_Ll
[] = {
5595 /* 'Lm': General Category */
5596 static const OnigCodePoint CR_Lm
[] = {
5626 /* 'Lo': General Category */
5627 static const OnigCodePoint CR_Lo
[] = {
5876 /* 'Lt': General Category */
5877 static const OnigCodePoint CR_Lt
[] = {
5891 /* 'Lu': General Category */
5892 static const OnigCodePoint CR_Lu
[] = {
6372 /* 'M': Major Category */
6373 static const OnigCodePoint CR_M
[] = {
6510 /* 'Mc': General Category */
6511 static const OnigCodePoint CR_Mc
[] = {
6578 /* 'Me': General Category */
6579 static const OnigCodePoint CR_Me
[] = {
6587 /* 'Mn': General Category */
6588 static const OnigCodePoint CR_Mn
[] = {
6716 /* 'N': Major Category */
6717 static const OnigCodePoint CR_N
[] = {
6774 /* 'Nd': General Category */
6775 static const OnigCodePoint CR_Nd
[] = {
6802 /* 'Nl': General Category */
6803 static const OnigCodePoint CR_Nl
[] = {
6815 /* 'No': General Category */
6816 static const OnigCodePoint CR_No
[] = {
6846 /* 'P': Major Category */
6847 static const OnigCodePoint CR_P
[] = {
6947 /* 'Pc': General Category */
6948 static const OnigCodePoint CR_Pc
[] = {
6958 /* 'Pd': General Category */
6959 static const OnigCodePoint CR_Pd
[] = {
6975 /* 'Pe': General Category */
6976 static const OnigCodePoint CR_Pe
[] = {
7045 /* 'Pf': General Category */
7046 static const OnigCodePoint CR_Pf
[] = {
7059 /* 'Pi': General Category */
7060 static const OnigCodePoint CR_Pi
[] = {
7074 /* 'Po': General Category */
7075 static const OnigCodePoint CR_Po
[] = {
7167 /* 'Ps': General Category */
7168 static const OnigCodePoint CR_Ps
[] = {
7239 /* 'S': Major Category */
7240 static const OnigCodePoint CR_S
[] = {
7406 /* 'Sc': General Category */
7407 static const OnigCodePoint CR_Sc
[] = {
7425 /* 'Sk': General Category */
7426 static const OnigCodePoint CR_Sk
[] = {
7453 /* 'Sm': General Category */
7454 static const OnigCodePoint CR_Sm
[] = {
7517 /* 'So': General Category */
7518 static const OnigCodePoint CR_So
[] = {
7642 /* 'Z': Major Category */
7643 static const OnigCodePoint CR_Z
[] = {
7656 /* 'Zl': General Category */
7657 static const OnigCodePoint CR_Zl
[] = {
7662 /* 'Zp': General Category */
7663 static const OnigCodePoint CR_Zp
[] = {
7668 /* 'Zs': General Category */
7669 static const OnigCodePoint CR_Zs
[] = {
7681 /* 'Arabic': Script */
7682 static const OnigCodePoint CR_Arabic
[] = {
7703 /* 'Armenian': Script */
7704 static const OnigCodePoint CR_Armenian
[] = {
7711 }; /* CR_Armenian */
7713 /* 'Bengali': Script */
7714 static const OnigCodePoint CR_Bengali
[] = {
7732 /* 'Bopomofo': Script */
7733 static const OnigCodePoint CR_Bopomofo
[] = {
7737 }; /* CR_Bopomofo */
7739 /* 'Braille': Script */
7740 static const OnigCodePoint CR_Braille
[] = {
7745 /* 'Buginese': Script */
7746 static const OnigCodePoint CR_Buginese
[] = {
7750 }; /* CR_Buginese */
7752 /* 'Buhid': Script */
7753 static const OnigCodePoint CR_Buhid
[] = {
7758 /* 'Canadian_Aboriginal': Script */
7759 static const OnigCodePoint CR_Canadian_Aboriginal
[] = {
7762 }; /* CR_Canadian_Aboriginal */
7764 /* 'Cherokee': Script */
7765 static const OnigCodePoint CR_Cherokee
[] = {
7768 }; /* CR_Cherokee */
7770 /* 'Common': Script */
7771 static const OnigCodePoint CR_Common
[] = {
7901 /* 'Coptic': Script */
7902 static const OnigCodePoint CR_Coptic
[] = {
7909 /* 'Cypriot': Script */
7910 static const OnigCodePoint CR_Cypriot
[] = {
7920 /* 'Cyrillic': Script */
7921 static const OnigCodePoint CR_Cyrillic
[] = {
7929 }; /* CR_Cyrillic */
7931 /* 'Deseret': Script */
7932 static const OnigCodePoint CR_Deseret
[] = {
7937 /* 'Devanagari': Script */
7938 static const OnigCodePoint CR_Devanagari
[] = {
7946 }; /* CR_Devanagari */
7948 /* 'Ethiopic': Script */
7949 static const OnigCodePoint CR_Ethiopic
[] = {
7978 }; /* CR_Ethiopic */
7980 /* 'Georgian': Script */
7981 static const OnigCodePoint CR_Georgian
[] = {
7987 }; /* CR_Georgian */
7989 /* 'Glagolitic': Script */
7990 static const OnigCodePoint CR_Glagolitic
[] = {
7994 }; /* CR_Glagolitic */
7996 /* 'Gothic': Script */
7997 static const OnigCodePoint CR_Gothic
[] = {
8002 /* 'Greek': Script */
8003 static const OnigCodePoint CR_Greek
[] = {
8038 /* 'Gujarati': Script */
8039 static const OnigCodePoint CR_Gujarati
[] = {
8055 }; /* CR_Gujarati */
8057 /* 'Gurmukhi': Script */
8058 static const OnigCodePoint CR_Gurmukhi
[] = {
8075 }; /* CR_Gurmukhi */
8078 static const OnigCodePoint CR_Han
[] = {
8096 /* 'Hangul': Script */
8097 static const OnigCodePoint CR_Hangul
[] = {
8113 /* 'Hanunoo': Script */
8114 static const OnigCodePoint CR_Hanunoo
[] = {
8119 /* 'Hebrew': Script */
8120 static const OnigCodePoint CR_Hebrew
[] = {
8134 /* 'Hiragana': Script */
8135 static const OnigCodePoint CR_Hiragana
[] = {
8139 }; /* CR_Hiragana */
8141 /* 'Inherited': Script */
8142 static const OnigCodePoint CR_Inherited
[] = {
8159 }; /* CR_Inherited */
8161 /* 'Kannada': Script */
8162 static const OnigCodePoint CR_Kannada
[] = {
8179 /* 'Katakana': Script */
8180 static const OnigCodePoint CR_Katakana
[] = {
8187 }; /* CR_Katakana */
8189 /* 'Kharoshthi': Script */
8190 static const OnigCodePoint CR_Kharoshthi
[] = {
8200 }; /* CR_Kharoshthi */
8202 /* 'Khmer': Script */
8203 static const OnigCodePoint CR_Khmer
[] = {
8212 static const OnigCodePoint CR_Lao
[] = {
8234 /* 'Latin': Script */
8235 static const OnigCodePoint CR_Latin
[] = {
8262 /* 'Limbu': Script */
8263 static const OnigCodePoint CR_Limbu
[] = {
8272 /* 'Linear_B': Script */
8273 static const OnigCodePoint CR_Linear_B
[] = {
8282 }; /* CR_Linear_B */
8284 /* 'Malayalam': Script */
8285 static const OnigCodePoint CR_Malayalam
[] = {
8298 }; /* CR_Malayalam */
8300 /* 'Mongolian': Script */
8301 static const OnigCodePoint CR_Mongolian
[] = {
8307 }; /* CR_Mongolian */
8309 /* 'Myanmar': Script */
8310 static const OnigCodePoint CR_Myanmar
[] = {
8320 /* 'New_Tai_Lue': Script */
8321 static const OnigCodePoint CR_New_Tai_Lue
[] = {
8327 }; /* CR_New_Tai_Lue */
8329 /* 'Ogham': Script */
8330 static const OnigCodePoint CR_Ogham
[] = {
8335 /* 'Old_Italic': Script */
8336 static const OnigCodePoint CR_Old_Italic
[] = {
8340 }; /* CR_Old_Italic */
8342 /* 'Old_Persian': Script */
8343 static const OnigCodePoint CR_Old_Persian
[] = {
8347 }; /* CR_Old_Persian */
8349 /* 'Oriya': Script */
8350 static const OnigCodePoint CR_Oriya
[] = {
8368 /* 'Osmanya': Script */
8369 static const OnigCodePoint CR_Osmanya
[] = {
8375 /* 'Runic': Script */
8376 static const OnigCodePoint CR_Runic
[] = {
8382 /* 'Shavian': Script */
8383 static const OnigCodePoint CR_Shavian
[] = {
8388 /* 'Sinhala': Script */
8389 static const OnigCodePoint CR_Sinhala
[] = {
8404 /* 'Syloti_Nagri': Script */
8405 static const OnigCodePoint CR_Syloti_Nagri
[] = {
8408 }; /* CR_Syloti_Nagri */
8410 /* 'Syriac': Script */
8411 static const OnigCodePoint CR_Syriac
[] = {
8418 /* 'Tagalog': Script */
8419 static const OnigCodePoint CR_Tagalog
[] = {
8425 /* 'Tagbanwa': Script */
8426 static const OnigCodePoint CR_Tagbanwa
[] = {
8431 }; /* CR_Tagbanwa */
8433 /* 'Tai_Le': Script */
8434 static const OnigCodePoint CR_Tai_Le
[] = {
8440 /* 'Tamil': Script */
8441 static const OnigCodePoint CR_Tamil
[] = {
8460 /* 'Telugu': Script */
8461 static const OnigCodePoint CR_Telugu
[] = {
8477 /* 'Thaana': Script */
8478 static const OnigCodePoint CR_Thaana
[] = {
8483 /* 'Thai': Script */
8484 static const OnigCodePoint CR_Thai
[] = {
8490 /* 'Tibetan': Script */
8491 static const OnigCodePoint CR_Tibetan
[] = {
8502 /* 'Tifinagh': Script */
8503 static const OnigCodePoint CR_Tifinagh
[] = {
8507 }; /* CR_Tifinagh */
8509 /* 'Ugaritic': Script */
8510 static const OnigCodePoint CR_Ugaritic
[] = {
8514 }; /* CR_Ugaritic */
8517 static const OnigCodePoint CR_Yi
[] = {
8524 #endif /* USE_UNICODE_PROPERTIES */
8529 OnigCodePoint code
[3];
8540 } CaseUnfold_11_Type
;
8544 OnigCodePoint code
[2];
8548 OnigCodePoint from
[2];
8550 } CaseUnfold_12_Type
;
8553 OnigCodePoint from
[3];
8555 } CaseUnfold_13_Type
;
8557 static const CaseFold_11_Type CaseFold
[] = {
8558 { 0x0041, {1, {0x0061}}},
8559 { 0x0042, {1, {0x0062}}},
8560 { 0x0043, {1, {0x0063}}},
8561 { 0x0044, {1, {0x0064}}},
8562 { 0x0045, {1, {0x0065}}},
8563 { 0x0046, {1, {0x0066}}},
8564 { 0x0047, {1, {0x0067}}},
8565 { 0x0048, {1, {0x0068}}},
8566 { 0x004a, {1, {0x006a}}},
8567 { 0x004b, {1, {0x006b}}},
8568 { 0x004c, {1, {0x006c}}},
8569 { 0x004d, {1, {0x006d}}},
8570 { 0x004e, {1, {0x006e}}},
8571 { 0x004f, {1, {0x006f}}},
8572 { 0x0050, {1, {0x0070}}},
8573 { 0x0051, {1, {0x0071}}},
8574 { 0x0052, {1, {0x0072}}},
8575 { 0x0053, {1, {0x0073}}},
8576 { 0x0054, {1, {0x0074}}},
8577 { 0x0055, {1, {0x0075}}},
8578 { 0x0056, {1, {0x0076}}},
8579 { 0x0057, {1, {0x0077}}},
8580 { 0x0058, {1, {0x0078}}},
8581 { 0x0059, {1, {0x0079}}},
8582 { 0x005a, {1, {0x007a}}},
8583 { 0x00b5, {1, {0x03bc}}},
8584 { 0x00c0, {1, {0x00e0}}},
8585 { 0x00c1, {1, {0x00e1}}},
8586 { 0x00c2, {1, {0x00e2}}},
8587 { 0x00c3, {1, {0x00e3}}},
8588 { 0x00c4, {1, {0x00e4}}},
8589 { 0x00c5, {1, {0x00e5}}},
8590 { 0x00c6, {1, {0x00e6}}},
8591 { 0x00c7, {1, {0x00e7}}},
8592 { 0x00c8, {1, {0x00e8}}},
8593 { 0x00c9, {1, {0x00e9}}},
8594 { 0x00ca, {1, {0x00ea}}},
8595 { 0x00cb, {1, {0x00eb}}},
8596 { 0x00cc, {1, {0x00ec}}},
8597 { 0x00cd, {1, {0x00ed}}},
8598 { 0x00ce, {1, {0x00ee}}},
8599 { 0x00cf, {1, {0x00ef}}},
8600 { 0x00d0, {1, {0x00f0}}},
8601 { 0x00d1, {1, {0x00f1}}},
8602 { 0x00d2, {1, {0x00f2}}},
8603 { 0x00d3, {1, {0x00f3}}},
8604 { 0x00d4, {1, {0x00f4}}},
8605 { 0x00d5, {1, {0x00f5}}},
8606 { 0x00d6, {1, {0x00f6}}},
8607 { 0x00d8, {1, {0x00f8}}},
8608 { 0x00d9, {1, {0x00f9}}},
8609 { 0x00da, {1, {0x00fa}}},
8610 { 0x00db, {1, {0x00fb}}},
8611 { 0x00dc, {1, {0x00fc}}},
8612 { 0x00dd, {1, {0x00fd}}},
8613 { 0x00de, {1, {0x00fe}}},
8614 { 0x00df, {2, {0x0073, 0x0073}}},
8615 { 0x0100, {1, {0x0101}}},
8616 { 0x0102, {1, {0x0103}}},
8617 { 0x0104, {1, {0x0105}}},
8618 { 0x0106, {1, {0x0107}}},
8619 { 0x0108, {1, {0x0109}}},
8620 { 0x010a, {1, {0x010b}}},
8621 { 0x010c, {1, {0x010d}}},
8622 { 0x010e, {1, {0x010f}}},
8623 { 0x0110, {1, {0x0111}}},
8624 { 0x0112, {1, {0x0113}}},
8625 { 0x0114, {1, {0x0115}}},
8626 { 0x0116, {1, {0x0117}}},
8627 { 0x0118, {1, {0x0119}}},
8628 { 0x011a, {1, {0x011b}}},
8629 { 0x011c, {1, {0x011d}}},
8630 { 0x011e, {1, {0x011f}}},
8631 { 0x0120, {1, {0x0121}}},
8632 { 0x0122, {1, {0x0123}}},
8633 { 0x0124, {1, {0x0125}}},
8634 { 0x0126, {1, {0x0127}}},
8635 { 0x0128, {1, {0x0129}}},
8636 { 0x012a, {1, {0x012b}}},
8637 { 0x012c, {1, {0x012d}}},
8638 { 0x012e, {1, {0x012f}}},
8639 { 0x0132, {1, {0x0133}}},
8640 { 0x0134, {1, {0x0135}}},
8641 { 0x0136, {1, {0x0137}}},
8642 { 0x0139, {1, {0x013a}}},
8643 { 0x013b, {1, {0x013c}}},
8644 { 0x013d, {1, {0x013e}}},
8645 { 0x013f, {1, {0x0140}}},
8646 { 0x0141, {1, {0x0142}}},
8647 { 0x0143, {1, {0x0144}}},
8648 { 0x0145, {1, {0x0146}}},
8649 { 0x0147, {1, {0x0148}}},
8650 { 0x0149, {2, {0x02bc, 0x006e}}},
8651 { 0x014a, {1, {0x014b}}},
8652 { 0x014c, {1, {0x014d}}},
8653 { 0x014e, {1, {0x014f}}},
8654 { 0x0150, {1, {0x0151}}},
8655 { 0x0152, {1, {0x0153}}},
8656 { 0x0154, {1, {0x0155}}},
8657 { 0x0156, {1, {0x0157}}},
8658 { 0x0158, {1, {0x0159}}},
8659 { 0x015a, {1, {0x015b}}},
8660 { 0x015c, {1, {0x015d}}},
8661 { 0x015e, {1, {0x015f}}},
8662 { 0x0160, {1, {0x0161}}},
8663 { 0x0162, {1, {0x0163}}},
8664 { 0x0164, {1, {0x0165}}},
8665 { 0x0166, {1, {0x0167}}},
8666 { 0x0168, {1, {0x0169}}},
8667 { 0x016a, {1, {0x016b}}},
8668 { 0x016c, {1, {0x016d}}},
8669 { 0x016e, {1, {0x016f}}},
8670 { 0x0170, {1, {0x0171}}},
8671 { 0x0172, {1, {0x0173}}},
8672 { 0x0174, {1, {0x0175}}},
8673 { 0x0176, {1, {0x0177}}},
8674 { 0x0178, {1, {0x00ff}}},
8675 { 0x0179, {1, {0x017a}}},
8676 { 0x017b, {1, {0x017c}}},
8677 { 0x017d, {1, {0x017e}}},
8678 { 0x017f, {1, {0x0073}}},
8679 { 0x0181, {1, {0x0253}}},
8680 { 0x0182, {1, {0x0183}}},
8681 { 0x0184, {1, {0x0185}}},
8682 { 0x0186, {1, {0x0254}}},
8683 { 0x0187, {1, {0x0188}}},
8684 { 0x0189, {1, {0x0256}}},
8685 { 0x018a, {1, {0x0257}}},
8686 { 0x018b, {1, {0x018c}}},
8687 { 0x018e, {1, {0x01dd}}},
8688 { 0x018f, {1, {0x0259}}},
8689 { 0x0190, {1, {0x025b}}},
8690 { 0x0191, {1, {0x0192}}},
8691 { 0x0193, {1, {0x0260}}},
8692 { 0x0194, {1, {0x0263}}},
8693 { 0x0196, {1, {0x0269}}},
8694 { 0x0197, {1, {0x0268}}},
8695 { 0x0198, {1, {0x0199}}},
8696 { 0x019c, {1, {0x026f}}},
8697 { 0x019d, {1, {0x0272}}},
8698 { 0x019f, {1, {0x0275}}},
8699 { 0x01a0, {1, {0x01a1}}},
8700 { 0x01a2, {1, {0x01a3}}},
8701 { 0x01a4, {1, {0x01a5}}},
8702 { 0x01a6, {1, {0x0280}}},
8703 { 0x01a7, {1, {0x01a8}}},
8704 { 0x01a9, {1, {0x0283}}},
8705 { 0x01ac, {1, {0x01ad}}},
8706 { 0x01ae, {1, {0x0288}}},
8707 { 0x01af, {1, {0x01b0}}},
8708 { 0x01b1, {1, {0x028a}}},
8709 { 0x01b2, {1, {0x028b}}},
8710 { 0x01b3, {1, {0x01b4}}},
8711 { 0x01b5, {1, {0x01b6}}},
8712 { 0x01b7, {1, {0x0292}}},
8713 { 0x01b8, {1, {0x01b9}}},
8714 { 0x01bc, {1, {0x01bd}}},
8715 { 0x01c4, {1, {0x01c6}}},
8716 { 0x01c5, {1, {0x01c6}}},
8717 { 0x01c7, {1, {0x01c9}}},
8718 { 0x01c8, {1, {0x01c9}}},
8719 { 0x01ca, {1, {0x01cc}}},
8720 { 0x01cb, {1, {0x01cc}}},
8721 { 0x01cd, {1, {0x01ce}}},
8722 { 0x01cf, {1, {0x01d0}}},
8723 { 0x01d1, {1, {0x01d2}}},
8724 { 0x01d3, {1, {0x01d4}}},
8725 { 0x01d5, {1, {0x01d6}}},
8726 { 0x01d7, {1, {0x01d8}}},
8727 { 0x01d9, {1, {0x01da}}},
8728 { 0x01db, {1, {0x01dc}}},
8729 { 0x01de, {1, {0x01df}}},
8730 { 0x01e0, {1, {0x01e1}}},
8731 { 0x01e2, {1, {0x01e3}}},
8732 { 0x01e4, {1, {0x01e5}}},
8733 { 0x01e6, {1, {0x01e7}}},
8734 { 0x01e8, {1, {0x01e9}}},
8735 { 0x01ea, {1, {0x01eb}}},
8736 { 0x01ec, {1, {0x01ed}}},
8737 { 0x01ee, {1, {0x01ef}}},
8738 { 0x01f0, {2, {0x006a, 0x030c}}},
8739 { 0x01f1, {1, {0x01f3}}},
8740 { 0x01f2, {1, {0x01f3}}},
8741 { 0x01f4, {1, {0x01f5}}},
8742 { 0x01f6, {1, {0x0195}}},
8743 { 0x01f7, {1, {0x01bf}}},
8744 { 0x01f8, {1, {0x01f9}}},
8745 { 0x01fa, {1, {0x01fb}}},
8746 { 0x01fc, {1, {0x01fd}}},
8747 { 0x01fe, {1, {0x01ff}}},
8748 { 0x0200, {1, {0x0201}}},
8749 { 0x0202, {1, {0x0203}}},
8750 { 0x0204, {1, {0x0205}}},
8751 { 0x0206, {1, {0x0207}}},
8752 { 0x0208, {1, {0x0209}}},
8753 { 0x020a, {1, {0x020b}}},
8754 { 0x020c, {1, {0x020d}}},
8755 { 0x020e, {1, {0x020f}}},
8756 { 0x0210, {1, {0x0211}}},
8757 { 0x0212, {1, {0x0213}}},
8758 { 0x0214, {1, {0x0215}}},
8759 { 0x0216, {1, {0x0217}}},
8760 { 0x0218, {1, {0x0219}}},
8761 { 0x021a, {1, {0x021b}}},
8762 { 0x021c, {1, {0x021d}}},
8763 { 0x021e, {1, {0x021f}}},
8764 { 0x0220, {1, {0x019e}}},
8765 { 0x0222, {1, {0x0223}}},
8766 { 0x0224, {1, {0x0225}}},
8767 { 0x0226, {1, {0x0227}}},
8768 { 0x0228, {1, {0x0229}}},
8769 { 0x022a, {1, {0x022b}}},
8770 { 0x022c, {1, {0x022d}}},
8771 { 0x022e, {1, {0x022f}}},
8772 { 0x0230, {1, {0x0231}}},
8773 { 0x0232, {1, {0x0233}}},
8774 { 0x023b, {1, {0x023c}}},
8775 { 0x023d, {1, {0x019a}}},
8776 { 0x0241, {1, {0x0294}}},
8777 { 0x0345, {1, {0x03b9}}},
8778 { 0x0386, {1, {0x03ac}}},
8779 { 0x0388, {1, {0x03ad}}},
8780 { 0x0389, {1, {0x03ae}}},
8781 { 0x038a, {1, {0x03af}}},
8782 { 0x038c, {1, {0x03cc}}},
8783 { 0x038e, {1, {0x03cd}}},
8784 { 0x038f, {1, {0x03ce}}},
8785 { 0x0390, {3, {0x03b9, 0x0308, 0x0301}}},
8786 { 0x0391, {1, {0x03b1}}},
8787 { 0x0392, {1, {0x03b2}}},
8788 { 0x0393, {1, {0x03b3}}},
8789 { 0x0394, {1, {0x03b4}}},
8790 { 0x0395, {1, {0x03b5}}},
8791 { 0x0396, {1, {0x03b6}}},
8792 { 0x0397, {1, {0x03b7}}},
8793 { 0x0398, {1, {0x03b8}}},
8794 { 0x0399, {1, {0x03b9}}},
8795 { 0x039a, {1, {0x03ba}}},
8796 { 0x039b, {1, {0x03bb}}},
8797 { 0x039c, {1, {0x03bc}}},
8798 { 0x039d, {1, {0x03bd}}},
8799 { 0x039e, {1, {0x03be}}},
8800 { 0x039f, {1, {0x03bf}}},
8801 { 0x03a0, {1, {0x03c0}}},
8802 { 0x03a1, {1, {0x03c1}}},
8803 { 0x03a3, {1, {0x03c3}}},
8804 { 0x03a4, {1, {0x03c4}}},
8805 { 0x03a5, {1, {0x03c5}}},
8806 { 0x03a6, {1, {0x03c6}}},
8807 { 0x03a7, {1, {0x03c7}}},
8808 { 0x03a8, {1, {0x03c8}}},
8809 { 0x03a9, {1, {0x03c9}}},
8810 { 0x03aa, {1, {0x03ca}}},
8811 { 0x03ab, {1, {0x03cb}}},
8812 { 0x03b0, {3, {0x03c5, 0x0308, 0x0301}}},
8813 { 0x03c2, {1, {0x03c3}}},
8814 { 0x03d0, {1, {0x03b2}}},
8815 { 0x03d1, {1, {0x03b8}}},
8816 { 0x03d5, {1, {0x03c6}}},
8817 { 0x03d6, {1, {0x03c0}}},
8818 { 0x03d8, {1, {0x03d9}}},
8819 { 0x03da, {1, {0x03db}}},
8820 { 0x03dc, {1, {0x03dd}}},
8821 { 0x03de, {1, {0x03df}}},
8822 { 0x03e0, {1, {0x03e1}}},
8823 { 0x03e2, {1, {0x03e3}}},
8824 { 0x03e4, {1, {0x03e5}}},
8825 { 0x03e6, {1, {0x03e7}}},
8826 { 0x03e8, {1, {0x03e9}}},
8827 { 0x03ea, {1, {0x03eb}}},
8828 { 0x03ec, {1, {0x03ed}}},
8829 { 0x03ee, {1, {0x03ef}}},
8830 { 0x03f0, {1, {0x03ba}}},
8831 { 0x03f1, {1, {0x03c1}}},
8832 { 0x03f4, {1, {0x03b8}}},
8833 { 0x03f5, {1, {0x03b5}}},
8834 { 0x03f7, {1, {0x03f8}}},
8835 { 0x03f9, {1, {0x03f2}}},
8836 { 0x03fa, {1, {0x03fb}}},
8837 { 0x0400, {1, {0x0450}}},
8838 { 0x0401, {1, {0x0451}}},
8839 { 0x0402, {1, {0x0452}}},
8840 { 0x0403, {1, {0x0453}}},
8841 { 0x0404, {1, {0x0454}}},
8842 { 0x0405, {1, {0x0455}}},
8843 { 0x0406, {1, {0x0456}}},
8844 { 0x0407, {1, {0x0457}}},
8845 { 0x0408, {1, {0x0458}}},
8846 { 0x0409, {1, {0x0459}}},
8847 { 0x040a, {1, {0x045a}}},
8848 { 0x040b, {1, {0x045b}}},
8849 { 0x040c, {1, {0x045c}}},
8850 { 0x040d, {1, {0x045d}}},
8851 { 0x040e, {1, {0x045e}}},
8852 { 0x040f, {1, {0x045f}}},
8853 { 0x0410, {1, {0x0430}}},
8854 { 0x0411, {1, {0x0431}}},
8855 { 0x0412, {1, {0x0432}}},
8856 { 0x0413, {1, {0x0433}}},
8857 { 0x0414, {1, {0x0434}}},
8858 { 0x0415, {1, {0x0435}}},
8859 { 0x0416, {1, {0x0436}}},
8860 { 0x0417, {1, {0x0437}}},
8861 { 0x0418, {1, {0x0438}}},
8862 { 0x0419, {1, {0x0439}}},
8863 { 0x041a, {1, {0x043a}}},
8864 { 0x041b, {1, {0x043b}}},
8865 { 0x041c, {1, {0x043c}}},
8866 { 0x041d, {1, {0x043d}}},
8867 { 0x041e, {1, {0x043e}}},
8868 { 0x041f, {1, {0x043f}}},
8869 { 0x0420, {1, {0x0440}}},
8870 { 0x0421, {1, {0x0441}}},
8871 { 0x0422, {1, {0x0442}}},
8872 { 0x0423, {1, {0x0443}}},
8873 { 0x0424, {1, {0x0444}}},
8874 { 0x0425, {1, {0x0445}}},
8875 { 0x0426, {1, {0x0446}}},
8876 { 0x0427, {1, {0x0447}}},
8877 { 0x0428, {1, {0x0448}}},
8878 { 0x0429, {1, {0x0449}}},
8879 { 0x042a, {1, {0x044a}}},
8880 { 0x042b, {1, {0x044b}}},
8881 { 0x042c, {1, {0x044c}}},
8882 { 0x042d, {1, {0x044d}}},
8883 { 0x042e, {1, {0x044e}}},
8884 { 0x042f, {1, {0x044f}}},
8885 { 0x0460, {1, {0x0461}}},
8886 { 0x0462, {1, {0x0463}}},
8887 { 0x0464, {1, {0x0465}}},
8888 { 0x0466, {1, {0x0467}}},
8889 { 0x0468, {1, {0x0469}}},
8890 { 0x046a, {1, {0x046b}}},
8891 { 0x046c, {1, {0x046d}}},
8892 { 0x046e, {1, {0x046f}}},
8893 { 0x0470, {1, {0x0471}}},
8894 { 0x0472, {1, {0x0473}}},
8895 { 0x0474, {1, {0x0475}}},
8896 { 0x0476, {1, {0x0477}}},
8897 { 0x0478, {1, {0x0479}}},
8898 { 0x047a, {1, {0x047b}}},
8899 { 0x047c, {1, {0x047d}}},
8900 { 0x047e, {1, {0x047f}}},
8901 { 0x0480, {1, {0x0481}}},
8902 { 0x048a, {1, {0x048b}}},
8903 { 0x048c, {1, {0x048d}}},
8904 { 0x048e, {1, {0x048f}}},
8905 { 0x0490, {1, {0x0491}}},
8906 { 0x0492, {1, {0x0493}}},
8907 { 0x0494, {1, {0x0495}}},
8908 { 0x0496, {1, {0x0497}}},
8909 { 0x0498, {1, {0x0499}}},
8910 { 0x049a, {1, {0x049b}}},
8911 { 0x049c, {1, {0x049d}}},
8912 { 0x049e, {1, {0x049f}}},
8913 { 0x04a0, {1, {0x04a1}}},
8914 { 0x04a2, {1, {0x04a3}}},
8915 { 0x04a4, {1, {0x04a5}}},
8916 { 0x04a6, {1, {0x04a7}}},
8917 { 0x04a8, {1, {0x04a9}}},
8918 { 0x04aa, {1, {0x04ab}}},
8919 { 0x04ac, {1, {0x04ad}}},
8920 { 0x04ae, {1, {0x04af}}},
8921 { 0x04b0, {1, {0x04b1}}},
8922 { 0x04b2, {1, {0x04b3}}},
8923 { 0x04b4, {1, {0x04b5}}},
8924 { 0x04b6, {1, {0x04b7}}},
8925 { 0x04b8, {1, {0x04b9}}},
8926 { 0x04ba, {1, {0x04bb}}},
8927 { 0x04bc, {1, {0x04bd}}},
8928 { 0x04be, {1, {0x04bf}}},
8929 { 0x04c1, {1, {0x04c2}}},
8930 { 0x04c3, {1, {0x04c4}}},
8931 { 0x04c5, {1, {0x04c6}}},
8932 { 0x04c7, {1, {0x04c8}}},
8933 { 0x04c9, {1, {0x04ca}}},
8934 { 0x04cb, {1, {0x04cc}}},
8935 { 0x04cd, {1, {0x04ce}}},
8936 { 0x04d0, {1, {0x04d1}}},
8937 { 0x04d2, {1, {0x04d3}}},
8938 { 0x04d4, {1, {0x04d5}}},
8939 { 0x04d6, {1, {0x04d7}}},
8940 { 0x04d8, {1, {0x04d9}}},
8941 { 0x04da, {1, {0x04db}}},
8942 { 0x04dc, {1, {0x04dd}}},
8943 { 0x04de, {1, {0x04df}}},
8944 { 0x04e0, {1, {0x04e1}}},
8945 { 0x04e2, {1, {0x04e3}}},
8946 { 0x04e4, {1, {0x04e5}}},
8947 { 0x04e6, {1, {0x04e7}}},
8948 { 0x04e8, {1, {0x04e9}}},
8949 { 0x04ea, {1, {0x04eb}}},
8950 { 0x04ec, {1, {0x04ed}}},
8951 { 0x04ee, {1, {0x04ef}}},
8952 { 0x04f0, {1, {0x04f1}}},
8953 { 0x04f2, {1, {0x04f3}}},
8954 { 0x04f4, {1, {0x04f5}}},
8955 { 0x04f6, {1, {0x04f7}}},
8956 { 0x04f8, {1, {0x04f9}}},
8957 { 0x0500, {1, {0x0501}}},
8958 { 0x0502, {1, {0x0503}}},
8959 { 0x0504, {1, {0x0505}}},
8960 { 0x0506, {1, {0x0507}}},
8961 { 0x0508, {1, {0x0509}}},
8962 { 0x050a, {1, {0x050b}}},
8963 { 0x050c, {1, {0x050d}}},
8964 { 0x050e, {1, {0x050f}}},
8965 { 0x0531, {1, {0x0561}}},
8966 { 0x0532, {1, {0x0562}}},
8967 { 0x0533, {1, {0x0563}}},
8968 { 0x0534, {1, {0x0564}}},
8969 { 0x0535, {1, {0x0565}}},
8970 { 0x0536, {1, {0x0566}}},
8971 { 0x0537, {1, {0x0567}}},
8972 { 0x0538, {1, {0x0568}}},
8973 { 0x0539, {1, {0x0569}}},
8974 { 0x053a, {1, {0x056a}}},
8975 { 0x053b, {1, {0x056b}}},
8976 { 0x053c, {1, {0x056c}}},
8977 { 0x053d, {1, {0x056d}}},
8978 { 0x053e, {1, {0x056e}}},
8979 { 0x053f, {1, {0x056f}}},
8980 { 0x0540, {1, {0x0570}}},
8981 { 0x0541, {1, {0x0571}}},
8982 { 0x0542, {1, {0x0572}}},
8983 { 0x0543, {1, {0x0573}}},
8984 { 0x0544, {1, {0x0574}}},
8985 { 0x0545, {1, {0x0575}}},
8986 { 0x0546, {1, {0x0576}}},
8987 { 0x0547, {1, {0x0577}}},
8988 { 0x0548, {1, {0x0578}}},
8989 { 0x0549, {1, {0x0579}}},
8990 { 0x054a, {1, {0x057a}}},
8991 { 0x054b, {1, {0x057b}}},
8992 { 0x054c, {1, {0x057c}}},
8993 { 0x054d, {1, {0x057d}}},
8994 { 0x054e, {1, {0x057e}}},
8995 { 0x054f, {1, {0x057f}}},
8996 { 0x0550, {1, {0x0580}}},
8997 { 0x0551, {1, {0x0581}}},
8998 { 0x0552, {1, {0x0582}}},
8999 { 0x0553, {1, {0x0583}}},
9000 { 0x0554, {1, {0x0584}}},
9001 { 0x0555, {1, {0x0585}}},
9002 { 0x0556, {1, {0x0586}}},
9003 { 0x0587, {2, {0x0565, 0x0582}}},
9004 { 0x10a0, {1, {0x2d00}}},
9005 { 0x10a1, {1, {0x2d01}}},
9006 { 0x10a2, {1, {0x2d02}}},
9007 { 0x10a3, {1, {0x2d03}}},
9008 { 0x10a4, {1, {0x2d04}}},
9009 { 0x10a5, {1, {0x2d05}}},
9010 { 0x10a6, {1, {0x2d06}}},
9011 { 0x10a7, {1, {0x2d07}}},
9012 { 0x10a8, {1, {0x2d08}}},
9013 { 0x10a9, {1, {0x2d09}}},
9014 { 0x10aa, {1, {0x2d0a}}},
9015 { 0x10ab, {1, {0x2d0b}}},
9016 { 0x10ac, {1, {0x2d0c}}},
9017 { 0x10ad, {1, {0x2d0d}}},
9018 { 0x10ae, {1, {0x2d0e}}},
9019 { 0x10af, {1, {0x2d0f}}},
9020 { 0x10b0, {1, {0x2d10}}},
9021 { 0x10b1, {1, {0x2d11}}},
9022 { 0x10b2, {1, {0x2d12}}},
9023 { 0x10b3, {1, {0x2d13}}},
9024 { 0x10b4, {1, {0x2d14}}},
9025 { 0x10b5, {1, {0x2d15}}},
9026 { 0x10b6, {1, {0x2d16}}},
9027 { 0x10b7, {1, {0x2d17}}},
9028 { 0x10b8, {1, {0x2d18}}},
9029 { 0x10b9, {1, {0x2d19}}},
9030 { 0x10ba, {1, {0x2d1a}}},
9031 { 0x10bb, {1, {0x2d1b}}},
9032 { 0x10bc, {1, {0x2d1c}}},
9033 { 0x10bd, {1, {0x2d1d}}},
9034 { 0x10be, {1, {0x2d1e}}},
9035 { 0x10bf, {1, {0x2d1f}}},
9036 { 0x10c0, {1, {0x2d20}}},
9037 { 0x10c1, {1, {0x2d21}}},
9038 { 0x10c2, {1, {0x2d22}}},
9039 { 0x10c3, {1, {0x2d23}}},
9040 { 0x10c4, {1, {0x2d24}}},
9041 { 0x10c5, {1, {0x2d25}}},
9042 { 0x1e00, {1, {0x1e01}}},
9043 { 0x1e02, {1, {0x1e03}}},
9044 { 0x1e04, {1, {0x1e05}}},
9045 { 0x1e06, {1, {0x1e07}}},
9046 { 0x1e08, {1, {0x1e09}}},
9047 { 0x1e0a, {1, {0x1e0b}}},
9048 { 0x1e0c, {1, {0x1e0d}}},
9049 { 0x1e0e, {1, {0x1e0f}}},
9050 { 0x1e10, {1, {0x1e11}}},
9051 { 0x1e12, {1, {0x1e13}}},
9052 { 0x1e14, {1, {0x1e15}}},
9053 { 0x1e16, {1, {0x1e17}}},
9054 { 0x1e18, {1, {0x1e19}}},
9055 { 0x1e1a, {1, {0x1e1b}}},
9056 { 0x1e1c, {1, {0x1e1d}}},
9057 { 0x1e1e, {1, {0x1e1f}}},
9058 { 0x1e20, {1, {0x1e21}}},
9059 { 0x1e22, {1, {0x1e23}}},
9060 { 0x1e24, {1, {0x1e25}}},
9061 { 0x1e26, {1, {0x1e27}}},
9062 { 0x1e28, {1, {0x1e29}}},
9063 { 0x1e2a, {1, {0x1e2b}}},
9064 { 0x1e2c, {1, {0x1e2d}}},
9065 { 0x1e2e, {1, {0x1e2f}}},
9066 { 0x1e30, {1, {0x1e31}}},
9067 { 0x1e32, {1, {0x1e33}}},
9068 { 0x1e34, {1, {0x1e35}}},
9069 { 0x1e36, {1, {0x1e37}}},
9070 { 0x1e38, {1, {0x1e39}}},
9071 { 0x1e3a, {1, {0x1e3b}}},
9072 { 0x1e3c, {1, {0x1e3d}}},
9073 { 0x1e3e, {1, {0x1e3f}}},
9074 { 0x1e40, {1, {0x1e41}}},
9075 { 0x1e42, {1, {0x1e43}}},
9076 { 0x1e44, {1, {0x1e45}}},
9077 { 0x1e46, {1, {0x1e47}}},
9078 { 0x1e48, {1, {0x1e49}}},
9079 { 0x1e4a, {1, {0x1e4b}}},
9080 { 0x1e4c, {1, {0x1e4d}}},
9081 { 0x1e4e, {1, {0x1e4f}}},
9082 { 0x1e50, {1, {0x1e51}}},
9083 { 0x1e52, {1, {0x1e53}}},
9084 { 0x1e54, {1, {0x1e55}}},
9085 { 0x1e56, {1, {0x1e57}}},
9086 { 0x1e58, {1, {0x1e59}}},
9087 { 0x1e5a, {1, {0x1e5b}}},
9088 { 0x1e5c, {1, {0x1e5d}}},
9089 { 0x1e5e, {1, {0x1e5f}}},
9090 { 0x1e60, {1, {0x1e61}}},
9091 { 0x1e62, {1, {0x1e63}}},
9092 { 0x1e64, {1, {0x1e65}}},
9093 { 0x1e66, {1, {0x1e67}}},
9094 { 0x1e68, {1, {0x1e69}}},
9095 { 0x1e6a, {1, {0x1e6b}}},
9096 { 0x1e6c, {1, {0x1e6d}}},
9097 { 0x1e6e, {1, {0x1e6f}}},
9098 { 0x1e70, {1, {0x1e71}}},
9099 { 0x1e72, {1, {0x1e73}}},
9100 { 0x1e74, {1, {0x1e75}}},
9101 { 0x1e76, {1, {0x1e77}}},
9102 { 0x1e78, {1, {0x1e79}}},
9103 { 0x1e7a, {1, {0x1e7b}}},
9104 { 0x1e7c, {1, {0x1e7d}}},
9105 { 0x1e7e, {1, {0x1e7f}}},
9106 { 0x1e80, {1, {0x1e81}}},
9107 { 0x1e82, {1, {0x1e83}}},
9108 { 0x1e84, {1, {0x1e85}}},
9109 { 0x1e86, {1, {0x1e87}}},
9110 { 0x1e88, {1, {0x1e89}}},
9111 { 0x1e8a, {1, {0x1e8b}}},
9112 { 0x1e8c, {1, {0x1e8d}}},
9113 { 0x1e8e, {1, {0x1e8f}}},
9114 { 0x1e90, {1, {0x1e91}}},
9115 { 0x1e92, {1, {0x1e93}}},
9116 { 0x1e94, {1, {0x1e95}}},
9117 { 0x1e96, {2, {0x0068, 0x0331}}},
9118 { 0x1e97, {2, {0x0074, 0x0308}}},
9119 { 0x1e98, {2, {0x0077, 0x030a}}},
9120 { 0x1e99, {2, {0x0079, 0x030a}}},
9121 { 0x1e9a, {2, {0x0061, 0x02be}}},
9122 { 0x1e9b, {1, {0x1e61}}},
9123 { 0x1ea0, {1, {0x1ea1}}},
9124 { 0x1ea2, {1, {0x1ea3}}},
9125 { 0x1ea4, {1, {0x1ea5}}},
9126 { 0x1ea6, {1, {0x1ea7}}},
9127 { 0x1ea8, {1, {0x1ea9}}},
9128 { 0x1eaa, {1, {0x1eab}}},
9129 { 0x1eac, {1, {0x1ead}}},
9130 { 0x1eae, {1, {0x1eaf}}},
9131 { 0x1eb0, {1, {0x1eb1}}},
9132 { 0x1eb2, {1, {0x1eb3}}},
9133 { 0x1eb4, {1, {0x1eb5}}},
9134 { 0x1eb6, {1, {0x1eb7}}},
9135 { 0x1eb8, {1, {0x1eb9}}},
9136 { 0x1eba, {1, {0x1ebb}}},
9137 { 0x1ebc, {1, {0x1ebd}}},
9138 { 0x1ebe, {1, {0x1ebf}}},
9139 { 0x1ec0, {1, {0x1ec1}}},
9140 { 0x1ec2, {1, {0x1ec3}}},
9141 { 0x1ec4, {1, {0x1ec5}}},
9142 { 0x1ec6, {1, {0x1ec7}}},
9143 { 0x1ec8, {1, {0x1ec9}}},
9144 { 0x1eca, {1, {0x1ecb}}},
9145 { 0x1ecc, {1, {0x1ecd}}},
9146 { 0x1ece, {1, {0x1ecf}}},
9147 { 0x1ed0, {1, {0x1ed1}}},
9148 { 0x1ed2, {1, {0x1ed3}}},
9149 { 0x1ed4, {1, {0x1ed5}}},
9150 { 0x1ed6, {1, {0x1ed7}}},
9151 { 0x1ed8, {1, {0x1ed9}}},
9152 { 0x1eda, {1, {0x1edb}}},
9153 { 0x1edc, {1, {0x1edd}}},
9154 { 0x1ede, {1, {0x1edf}}},
9155 { 0x1ee0, {1, {0x1ee1}}},
9156 { 0x1ee2, {1, {0x1ee3}}},
9157 { 0x1ee4, {1, {0x1ee5}}},
9158 { 0x1ee6, {1, {0x1ee7}}},
9159 { 0x1ee8, {1, {0x1ee9}}},
9160 { 0x1eea, {1, {0x1eeb}}},
9161 { 0x1eec, {1, {0x1eed}}},
9162 { 0x1eee, {1, {0x1eef}}},
9163 { 0x1ef0, {1, {0x1ef1}}},
9164 { 0x1ef2, {1, {0x1ef3}}},
9165 { 0x1ef4, {1, {0x1ef5}}},
9166 { 0x1ef6, {1, {0x1ef7}}},
9167 { 0x1ef8, {1, {0x1ef9}}},
9168 { 0x1f08, {1, {0x1f00}}},
9169 { 0x1f09, {1, {0x1f01}}},
9170 { 0x1f0a, {1, {0x1f02}}},
9171 { 0x1f0b, {1, {0x1f03}}},
9172 { 0x1f0c, {1, {0x1f04}}},
9173 { 0x1f0d, {1, {0x1f05}}},
9174 { 0x1f0e, {1, {0x1f06}}},
9175 { 0x1f0f, {1, {0x1f07}}},
9176 { 0x1f18, {1, {0x1f10}}},
9177 { 0x1f19, {1, {0x1f11}}},
9178 { 0x1f1a, {1, {0x1f12}}},
9179 { 0x1f1b, {1, {0x1f13}}},
9180 { 0x1f1c, {1, {0x1f14}}},
9181 { 0x1f1d, {1, {0x1f15}}},
9182 { 0x1f28, {1, {0x1f20}}},
9183 { 0x1f29, {1, {0x1f21}}},
9184 { 0x1f2a, {1, {0x1f22}}},
9185 { 0x1f2b, {1, {0x1f23}}},
9186 { 0x1f2c, {1, {0x1f24}}},
9187 { 0x1f2d, {1, {0x1f25}}},
9188 { 0x1f2e, {1, {0x1f26}}},
9189 { 0x1f2f, {1, {0x1f27}}},
9190 { 0x1f38, {1, {0x1f30}}},
9191 { 0x1f39, {1, {0x1f31}}},
9192 { 0x1f3a, {1, {0x1f32}}},
9193 { 0x1f3b, {1, {0x1f33}}},
9194 { 0x1f3c, {1, {0x1f34}}},
9195 { 0x1f3d, {1, {0x1f35}}},
9196 { 0x1f3e, {1, {0x1f36}}},
9197 { 0x1f3f, {1, {0x1f37}}},
9198 { 0x1f48, {1, {0x1f40}}},
9199 { 0x1f49, {1, {0x1f41}}},
9200 { 0x1f4a, {1, {0x1f42}}},
9201 { 0x1f4b, {1, {0x1f43}}},
9202 { 0x1f4c, {1, {0x1f44}}},
9203 { 0x1f4d, {1, {0x1f45}}},
9204 { 0x1f50, {2, {0x03c5, 0x0313}}},
9205 { 0x1f52, {3, {0x03c5, 0x0313, 0x0300}}},
9206 { 0x1f54, {3, {0x03c5, 0x0313, 0x0301}}},
9207 { 0x1f56, {3, {0x03c5, 0x0313, 0x0342}}},
9208 { 0x1f59, {1, {0x1f51}}},
9209 { 0x1f5b, {1, {0x1f53}}},
9210 { 0x1f5d, {1, {0x1f55}}},
9211 { 0x1f5f, {1, {0x1f57}}},
9212 { 0x1f68, {1, {0x1f60}}},
9213 { 0x1f69, {1, {0x1f61}}},
9214 { 0x1f6a, {1, {0x1f62}}},
9215 { 0x1f6b, {1, {0x1f63}}},
9216 { 0x1f6c, {1, {0x1f64}}},
9217 { 0x1f6d, {1, {0x1f65}}},
9218 { 0x1f6e, {1, {0x1f66}}},
9219 { 0x1f6f, {1, {0x1f67}}},
9220 { 0x1f80, {2, {0x1f00, 0x03b9}}},
9221 { 0x1f81, {2, {0x1f01, 0x03b9}}},
9222 { 0x1f82, {2, {0x1f02, 0x03b9}}},
9223 { 0x1f83, {2, {0x1f03, 0x03b9}}},
9224 { 0x1f84, {2, {0x1f04, 0x03b9}}},
9225 { 0x1f85, {2, {0x1f05, 0x03b9}}},
9226 { 0x1f86, {2, {0x1f06, 0x03b9}}},
9227 { 0x1f87, {2, {0x1f07, 0x03b9}}},
9228 { 0x1f88, {2, {0x1f00, 0x03b9}}},
9229 { 0x1f89, {2, {0x1f01, 0x03b9}}},
9230 { 0x1f8a, {2, {0x1f02, 0x03b9}}},
9231 { 0x1f8b, {2, {0x1f03, 0x03b9}}},
9232 { 0x1f8c, {2, {0x1f04, 0x03b9}}},
9233 { 0x1f8d, {2, {0x1f05, 0x03b9}}},
9234 { 0x1f8e, {2, {0x1f06, 0x03b9}}},
9235 { 0x1f8f, {2, {0x1f07, 0x03b9}}},
9236 { 0x1f90, {2, {0x1f20, 0x03b9}}},
9237 { 0x1f91, {2, {0x1f21, 0x03b9}}},
9238 { 0x1f92, {2, {0x1f22, 0x03b9}}},
9239 { 0x1f93, {2, {0x1f23, 0x03b9}}},
9240 { 0x1f94, {2, {0x1f24, 0x03b9}}},
9241 { 0x1f95, {2, {0x1f25, 0x03b9}}},
9242 { 0x1f96, {2, {0x1f26, 0x03b9}}},
9243 { 0x1f97, {2, {0x1f27, 0x03b9}}},
9244 { 0x1f98, {2, {0x1f20, 0x03b9}}},
9245 { 0x1f99, {2, {0x1f21, 0x03b9}}},
9246 { 0x1f9a, {2, {0x1f22, 0x03b9}}},
9247 { 0x1f9b, {2, {0x1f23, 0x03b9}}},
9248 { 0x1f9c, {2, {0x1f24, 0x03b9}}},
9249 { 0x1f9d, {2, {0x1f25, 0x03b9}}},
9250 { 0x1f9e, {2, {0x1f26, 0x03b9}}},
9251 { 0x1f9f, {2, {0x1f27, 0x03b9}}},
9252 { 0x1fa0, {2, {0x1f60, 0x03b9}}},
9253 { 0x1fa1, {2, {0x1f61, 0x03b9}}},
9254 { 0x1fa2, {2, {0x1f62, 0x03b9}}},
9255 { 0x1fa3, {2, {0x1f63, 0x03b9}}},
9256 { 0x1fa4, {2, {0x1f64, 0x03b9}}},
9257 { 0x1fa5, {2, {0x1f65, 0x03b9}}},
9258 { 0x1fa6, {2, {0x1f66, 0x03b9}}},
9259 { 0x1fa7, {2, {0x1f67, 0x03b9}}},
9260 { 0x1fa8, {2, {0x1f60, 0x03b9}}},
9261 { 0x1fa9, {2, {0x1f61, 0x03b9}}},
9262 { 0x1faa, {2, {0x1f62, 0x03b9}}},
9263 { 0x1fab, {2, {0x1f63, 0x03b9}}},
9264 { 0x1fac, {2, {0x1f64, 0x03b9}}},
9265 { 0x1fad, {2, {0x1f65, 0x03b9}}},
9266 { 0x1fae, {2, {0x1f66, 0x03b9}}},
9267 { 0x1faf, {2, {0x1f67, 0x03b9}}},
9268 { 0x1fb2, {2, {0x1f70, 0x03b9}}},
9269 { 0x1fb3, {2, {0x03b1, 0x03b9}}},
9270 { 0x1fb4, {2, {0x03ac, 0x03b9}}},
9271 { 0x1fb6, {2, {0x03b1, 0x0342}}},
9272 { 0x1fb7, {3, {0x03b1, 0x0342, 0x03b9}}},
9273 { 0x1fb8, {1, {0x1fb0}}},
9274 { 0x1fb9, {1, {0x1fb1}}},
9275 { 0x1fba, {1, {0x1f70}}},
9276 { 0x1fbb, {1, {0x1f71}}},
9277 { 0x1fbc, {2, {0x03b1, 0x03b9}}},
9278 { 0x1fbe, {1, {0x03b9}}},
9279 { 0x1fc2, {2, {0x1f74, 0x03b9}}},
9280 { 0x1fc3, {2, {0x03b7, 0x03b9}}},
9281 { 0x1fc4, {2, {0x03ae, 0x03b9}}},
9282 { 0x1fc6, {2, {0x03b7, 0x0342}}},
9283 { 0x1fc7, {3, {0x03b7, 0x0342, 0x03b9}}},
9284 { 0x1fc8, {1, {0x1f72}}},
9285 { 0x1fc9, {1, {0x1f73}}},
9286 { 0x1fca, {1, {0x1f74}}},
9287 { 0x1fcb, {1, {0x1f75}}},
9288 { 0x1fcc, {2, {0x03b7, 0x03b9}}},
9289 { 0x1fd2, {3, {0x03b9, 0x0308, 0x0300}}},
9290 { 0x1fd3, {3, {0x03b9, 0x0308, 0x0301}}},
9291 { 0x1fd6, {2, {0x03b9, 0x0342}}},
9292 { 0x1fd7, {3, {0x03b9, 0x0308, 0x0342}}},
9293 { 0x1fd8, {1, {0x1fd0}}},
9294 { 0x1fd9, {1, {0x1fd1}}},
9295 { 0x1fda, {1, {0x1f76}}},
9296 { 0x1fdb, {1, {0x1f77}}},
9297 { 0x1fe2, {3, {0x03c5, 0x0308, 0x0300}}},
9298 { 0x1fe3, {3, {0x03c5, 0x0308, 0x0301}}},
9299 { 0x1fe4, {2, {0x03c1, 0x0313}}},
9300 { 0x1fe6, {2, {0x03c5, 0x0342}}},
9301 { 0x1fe7, {3, {0x03c5, 0x0308, 0x0342}}},
9302 { 0x1fe8, {1, {0x1fe0}}},
9303 { 0x1fe9, {1, {0x1fe1}}},
9304 { 0x1fea, {1, {0x1f7a}}},
9305 { 0x1feb, {1, {0x1f7b}}},
9306 { 0x1fec, {1, {0x1fe5}}},
9307 { 0x1ff2, {2, {0x1f7c, 0x03b9}}},
9308 { 0x1ff3, {2, {0x03c9, 0x03b9}}},
9309 { 0x1ff4, {2, {0x03ce, 0x03b9}}},
9310 { 0x1ff6, {2, {0x03c9, 0x0342}}},
9311 { 0x1ff7, {3, {0x03c9, 0x0342, 0x03b9}}},
9312 { 0x1ff8, {1, {0x1f78}}},
9313 { 0x1ff9, {1, {0x1f79}}},
9314 { 0x1ffa, {1, {0x1f7c}}},
9315 { 0x1ffb, {1, {0x1f7d}}},
9316 { 0x1ffc, {2, {0x03c9, 0x03b9}}},
9317 { 0x2126, {1, {0x03c9}}},
9318 { 0x212a, {1, {0x006b}}},
9319 { 0x212b, {1, {0x00e5}}},
9320 { 0x2160, {1, {0x2170}}},
9321 { 0x2161, {1, {0x2171}}},
9322 { 0x2162, {1, {0x2172}}},
9323 { 0x2163, {1, {0x2173}}},
9324 { 0x2164, {1, {0x2174}}},
9325 { 0x2165, {1, {0x2175}}},
9326 { 0x2166, {1, {0x2176}}},
9327 { 0x2167, {1, {0x2177}}},
9328 { 0x2168, {1, {0x2178}}},
9329 { 0x2169, {1, {0x2179}}},
9330 { 0x216a, {1, {0x217a}}},
9331 { 0x216b, {1, {0x217b}}},
9332 { 0x216c, {1, {0x217c}}},
9333 { 0x216d, {1, {0x217d}}},
9334 { 0x216e, {1, {0x217e}}},
9335 { 0x216f, {1, {0x217f}}},
9336 { 0x24b6, {1, {0x24d0}}},
9337 { 0x24b7, {1, {0x24d1}}},
9338 { 0x24b8, {1, {0x24d2}}},
9339 { 0x24b9, {1, {0x24d3}}},
9340 { 0x24ba, {1, {0x24d4}}},
9341 { 0x24bb, {1, {0x24d5}}},
9342 { 0x24bc, {1, {0x24d6}}},
9343 { 0x24bd, {1, {0x24d7}}},
9344 { 0x24be, {1, {0x24d8}}},
9345 { 0x24bf, {1, {0x24d9}}},
9346 { 0x24c0, {1, {0x24da}}},
9347 { 0x24c1, {1, {0x24db}}},
9348 { 0x24c2, {1, {0x24dc}}},
9349 { 0x24c3, {1, {0x24dd}}},
9350 { 0x24c4, {1, {0x24de}}},
9351 { 0x24c5, {1, {0x24df}}},
9352 { 0x24c6, {1, {0x24e0}}},
9353 { 0x24c7, {1, {0x24e1}}},
9354 { 0x24c8, {1, {0x24e2}}},
9355 { 0x24c9, {1, {0x24e3}}},
9356 { 0x24ca, {1, {0x24e4}}},
9357 { 0x24cb, {1, {0x24e5}}},
9358 { 0x24cc, {1, {0x24e6}}},
9359 { 0x24cd, {1, {0x24e7}}},
9360 { 0x24ce, {1, {0x24e8}}},
9361 { 0x24cf, {1, {0x24e9}}},
9362 { 0x2c00, {1, {0x2c30}}},
9363 { 0x2c01, {1, {0x2c31}}},
9364 { 0x2c02, {1, {0x2c32}}},
9365 { 0x2c03, {1, {0x2c33}}},
9366 { 0x2c04, {1, {0x2c34}}},
9367 { 0x2c05, {1, {0x2c35}}},
9368 { 0x2c06, {1, {0x2c36}}},
9369 { 0x2c07, {1, {0x2c37}}},
9370 { 0x2c08, {1, {0x2c38}}},
9371 { 0x2c09, {1, {0x2c39}}},
9372 { 0x2c0a, {1, {0x2c3a}}},
9373 { 0x2c0b, {1, {0x2c3b}}},
9374 { 0x2c0c, {1, {0x2c3c}}},
9375 { 0x2c0d, {1, {0x2c3d}}},
9376 { 0x2c0e, {1, {0x2c3e}}},
9377 { 0x2c0f, {1, {0x2c3f}}},
9378 { 0x2c10, {1, {0x2c40}}},
9379 { 0x2c11, {1, {0x2c41}}},
9380 { 0x2c12, {1, {0x2c42}}},
9381 { 0x2c13, {1, {0x2c43}}},
9382 { 0x2c14, {1, {0x2c44}}},
9383 { 0x2c15, {1, {0x2c45}}},
9384 { 0x2c16, {1, {0x2c46}}},
9385 { 0x2c17, {1, {0x2c47}}},
9386 { 0x2c18, {1, {0x2c48}}},
9387 { 0x2c19, {1, {0x2c49}}},
9388 { 0x2c1a, {1, {0x2c4a}}},
9389 { 0x2c1b, {1, {0x2c4b}}},
9390 { 0x2c1c, {1, {0x2c4c}}},
9391 { 0x2c1d, {1, {0x2c4d}}},
9392 { 0x2c1e, {1, {0x2c4e}}},
9393 { 0x2c1f, {1, {0x2c4f}}},
9394 { 0x2c20, {1, {0x2c50}}},
9395 { 0x2c21, {1, {0x2c51}}},
9396 { 0x2c22, {1, {0x2c52}}},
9397 { 0x2c23, {1, {0x2c53}}},
9398 { 0x2c24, {1, {0x2c54}}},
9399 { 0x2c25, {1, {0x2c55}}},
9400 { 0x2c26, {1, {0x2c56}}},
9401 { 0x2c27, {1, {0x2c57}}},
9402 { 0x2c28, {1, {0x2c58}}},
9403 { 0x2c29, {1, {0x2c59}}},
9404 { 0x2c2a, {1, {0x2c5a}}},
9405 { 0x2c2b, {1, {0x2c5b}}},
9406 { 0x2c2c, {1, {0x2c5c}}},
9407 { 0x2c2d, {1, {0x2c5d}}},
9408 { 0x2c2e, {1, {0x2c5e}}},
9409 { 0x2c80, {1, {0x2c81}}},
9410 { 0x2c82, {1, {0x2c83}}},
9411 { 0x2c84, {1, {0x2c85}}},
9412 { 0x2c86, {1, {0x2c87}}},
9413 { 0x2c88, {1, {0x2c89}}},
9414 { 0x2c8a, {1, {0x2c8b}}},
9415 { 0x2c8c, {1, {0x2c8d}}},
9416 { 0x2c8e, {1, {0x2c8f}}},
9417 { 0x2c90, {1, {0x2c91}}},
9418 { 0x2c92, {1, {0x2c93}}},
9419 { 0x2c94, {1, {0x2c95}}},
9420 { 0x2c96, {1, {0x2c97}}},
9421 { 0x2c98, {1, {0x2c99}}},
9422 { 0x2c9a, {1, {0x2c9b}}},
9423 { 0x2c9c, {1, {0x2c9d}}},
9424 { 0x2c9e, {1, {0x2c9f}}},
9425 { 0x2ca0, {1, {0x2ca1}}},
9426 { 0x2ca2, {1, {0x2ca3}}},
9427 { 0x2ca4, {1, {0x2ca5}}},
9428 { 0x2ca6, {1, {0x2ca7}}},
9429 { 0x2ca8, {1, {0x2ca9}}},
9430 { 0x2caa, {1, {0x2cab}}},
9431 { 0x2cac, {1, {0x2cad}}},
9432 { 0x2cae, {1, {0x2caf}}},
9433 { 0x2cb0, {1, {0x2cb1}}},
9434 { 0x2cb2, {1, {0x2cb3}}},
9435 { 0x2cb4, {1, {0x2cb5}}},
9436 { 0x2cb6, {1, {0x2cb7}}},
9437 { 0x2cb8, {1, {0x2cb9}}},
9438 { 0x2cba, {1, {0x2cbb}}},
9439 { 0x2cbc, {1, {0x2cbd}}},
9440 { 0x2cbe, {1, {0x2cbf}}},
9441 { 0x2cc0, {1, {0x2cc1}}},
9442 { 0x2cc2, {1, {0x2cc3}}},
9443 { 0x2cc4, {1, {0x2cc5}}},
9444 { 0x2cc6, {1, {0x2cc7}}},
9445 { 0x2cc8, {1, {0x2cc9}}},
9446 { 0x2cca, {1, {0x2ccb}}},
9447 { 0x2ccc, {1, {0x2ccd}}},
9448 { 0x2cce, {1, {0x2ccf}}},
9449 { 0x2cd0, {1, {0x2cd1}}},
9450 { 0x2cd2, {1, {0x2cd3}}},
9451 { 0x2cd4, {1, {0x2cd5}}},
9452 { 0x2cd6, {1, {0x2cd7}}},
9453 { 0x2cd8, {1, {0x2cd9}}},
9454 { 0x2cda, {1, {0x2cdb}}},
9455 { 0x2cdc, {1, {0x2cdd}}},
9456 { 0x2cde, {1, {0x2cdf}}},
9457 { 0x2ce0, {1, {0x2ce1}}},
9458 { 0x2ce2, {1, {0x2ce3}}},
9459 { 0xfb00, {2, {0x0066, 0x0066}}},
9460 { 0xfb01, {2, {0x0066, 0x0069}}},
9461 { 0xfb02, {2, {0x0066, 0x006c}}},
9462 { 0xfb03, {3, {0x0066, 0x0066, 0x0069}}},
9463 { 0xfb04, {3, {0x0066, 0x0066, 0x006c}}},
9464 { 0xfb05, {2, {0x0073, 0x0074}}},
9465 { 0xfb06, {2, {0x0073, 0x0074}}},
9466 { 0xfb13, {2, {0x0574, 0x0576}}},
9467 { 0xfb14, {2, {0x0574, 0x0565}}},
9468 { 0xfb15, {2, {0x0574, 0x056b}}},
9469 { 0xfb16, {2, {0x057e, 0x0576}}},
9470 { 0xfb17, {2, {0x0574, 0x056d}}},
9471 { 0xff21, {1, {0xff41}}},
9472 { 0xff22, {1, {0xff42}}},
9473 { 0xff23, {1, {0xff43}}},
9474 { 0xff24, {1, {0xff44}}},
9475 { 0xff25, {1, {0xff45}}},
9476 { 0xff26, {1, {0xff46}}},
9477 { 0xff27, {1, {0xff47}}},
9478 { 0xff28, {1, {0xff48}}},
9479 { 0xff29, {1, {0xff49}}},
9480 { 0xff2a, {1, {0xff4a}}},
9481 { 0xff2b, {1, {0xff4b}}},
9482 { 0xff2c, {1, {0xff4c}}},
9483 { 0xff2d, {1, {0xff4d}}},
9484 { 0xff2e, {1, {0xff4e}}},
9485 { 0xff2f, {1, {0xff4f}}},
9486 { 0xff30, {1, {0xff50}}},
9487 { 0xff31, {1, {0xff51}}},
9488 { 0xff32, {1, {0xff52}}},
9489 { 0xff33, {1, {0xff53}}},
9490 { 0xff34, {1, {0xff54}}},
9491 { 0xff35, {1, {0xff55}}},
9492 { 0xff36, {1, {0xff56}}},
9493 { 0xff37, {1, {0xff57}}},
9494 { 0xff38, {1, {0xff58}}},
9495 { 0xff39, {1, {0xff59}}},
9496 { 0xff3a, {1, {0xff5a}}},
9497 { 0x10400, {1, {0x10428}}},
9498 { 0x10401, {1, {0x10429}}},
9499 { 0x10402, {1, {0x1042a}}},
9500 { 0x10403, {1, {0x1042b}}},
9501 { 0x10404, {1, {0x1042c}}},
9502 { 0x10405, {1, {0x1042d}}},
9503 { 0x10406, {1, {0x1042e}}},
9504 { 0x10407, {1, {0x1042f}}},
9505 { 0x10408, {1, {0x10430}}},
9506 { 0x10409, {1, {0x10431}}},
9507 { 0x1040a, {1, {0x10432}}},
9508 { 0x1040b, {1, {0x10433}}},
9509 { 0x1040c, {1, {0x10434}}},
9510 { 0x1040d, {1, {0x10435}}},
9511 { 0x1040e, {1, {0x10436}}},
9512 { 0x1040f, {1, {0x10437}}},
9513 { 0x10410, {1, {0x10438}}},
9514 { 0x10411, {1, {0x10439}}},
9515 { 0x10412, {1, {0x1043a}}},
9516 { 0x10413, {1, {0x1043b}}},
9517 { 0x10414, {1, {0x1043c}}},
9518 { 0x10415, {1, {0x1043d}}},
9519 { 0x10416, {1, {0x1043e}}},
9520 { 0x10417, {1, {0x1043f}}},
9521 { 0x10418, {1, {0x10440}}},
9522 { 0x10419, {1, {0x10441}}},
9523 { 0x1041a, {1, {0x10442}}},
9524 { 0x1041b, {1, {0x10443}}},
9525 { 0x1041c, {1, {0x10444}}},
9526 { 0x1041d, {1, {0x10445}}},
9527 { 0x1041e, {1, {0x10446}}},
9528 { 0x1041f, {1, {0x10447}}},
9529 { 0x10420, {1, {0x10448}}},
9530 { 0x10421, {1, {0x10449}}},
9531 { 0x10422, {1, {0x1044a}}},
9532 { 0x10423, {1, {0x1044b}}},
9533 { 0x10424, {1, {0x1044c}}},
9534 { 0x10425, {1, {0x1044d}}},
9535 { 0x10426, {1, {0x1044e}}},
9536 { 0x10427, {1, {0x1044f}}}
9539 static const CaseFold_11_Type CaseFold_Locale
[] = {
9540 { 0x0049, {1, {0x0069}}},
9541 { 0x0130, {2, {0x0069, 0x0307}}}
9544 static const CaseUnfold_11_Type CaseUnfold_11
[] = {
9545 { 0x0061, {1, {0x0041 }}},
9546 { 0x0062, {1, {0x0042 }}},
9547 { 0x0063, {1, {0x0043 }}},
9548 { 0x0064, {1, {0x0044 }}},
9549 { 0x0065, {1, {0x0045 }}},
9550 { 0x0066, {1, {0x0046 }}},
9551 { 0x0067, {1, {0x0047 }}},
9552 { 0x0068, {1, {0x0048 }}},
9553 { 0x006a, {1, {0x004a }}},
9554 { 0x006b, {2, {0x212a, 0x004b }}},
9555 { 0x006c, {1, {0x004c }}},
9556 { 0x006d, {1, {0x004d }}},
9557 { 0x006e, {1, {0x004e }}},
9558 { 0x006f, {1, {0x004f }}},
9559 { 0x0070, {1, {0x0050 }}},
9560 { 0x0071, {1, {0x0051 }}},
9561 { 0x0072, {1, {0x0052 }}},
9562 { 0x0073, {2, {0x0053, 0x017f }}},
9563 { 0x0074, {1, {0x0054 }}},
9564 { 0x0075, {1, {0x0055 }}},
9565 { 0x0076, {1, {0x0056 }}},
9566 { 0x0077, {1, {0x0057 }}},
9567 { 0x0078, {1, {0x0058 }}},
9568 { 0x0079, {1, {0x0059 }}},
9569 { 0x007a, {1, {0x005a }}},
9570 { 0x00e0, {1, {0x00c0 }}},
9571 { 0x00e1, {1, {0x00c1 }}},
9572 { 0x00e2, {1, {0x00c2 }}},
9573 { 0x00e3, {1, {0x00c3 }}},
9574 { 0x00e4, {1, {0x00c4 }}},
9575 { 0x00e5, {2, {0x212b, 0x00c5 }}},
9576 { 0x00e6, {1, {0x00c6 }}},
9577 { 0x00e7, {1, {0x00c7 }}},
9578 { 0x00e8, {1, {0x00c8 }}},
9579 { 0x00e9, {1, {0x00c9 }}},
9580 { 0x00ea, {1, {0x00ca }}},
9581 { 0x00eb, {1, {0x00cb }}},
9582 { 0x00ec, {1, {0x00cc }}},
9583 { 0x00ed, {1, {0x00cd }}},
9584 { 0x00ee, {1, {0x00ce }}},
9585 { 0x00ef, {1, {0x00cf }}},
9586 { 0x00f0, {1, {0x00d0 }}},
9587 { 0x00f1, {1, {0x00d1 }}},
9588 { 0x00f2, {1, {0x00d2 }}},
9589 { 0x00f3, {1, {0x00d3 }}},
9590 { 0x00f4, {1, {0x00d4 }}},
9591 { 0x00f5, {1, {0x00d5 }}},
9592 { 0x00f6, {1, {0x00d6 }}},
9593 { 0x00f8, {1, {0x00d8 }}},
9594 { 0x00f9, {1, {0x00d9 }}},
9595 { 0x00fa, {1, {0x00da }}},
9596 { 0x00fb, {1, {0x00db }}},
9597 { 0x00fc, {1, {0x00dc }}},
9598 { 0x00fd, {1, {0x00dd }}},
9599 { 0x00fe, {1, {0x00de }}},
9600 { 0x00ff, {1, {0x0178 }}},
9601 { 0x0101, {1, {0x0100 }}},
9602 { 0x0103, {1, {0x0102 }}},
9603 { 0x0105, {1, {0x0104 }}},
9604 { 0x0107, {1, {0x0106 }}},
9605 { 0x0109, {1, {0x0108 }}},
9606 { 0x010b, {1, {0x010a }}},
9607 { 0x010d, {1, {0x010c }}},
9608 { 0x010f, {1, {0x010e }}},
9609 { 0x0111, {1, {0x0110 }}},
9610 { 0x0113, {1, {0x0112 }}},
9611 { 0x0115, {1, {0x0114 }}},
9612 { 0x0117, {1, {0x0116 }}},
9613 { 0x0119, {1, {0x0118 }}},
9614 { 0x011b, {1, {0x011a }}},
9615 { 0x011d, {1, {0x011c }}},
9616 { 0x011f, {1, {0x011e }}},
9617 { 0x0121, {1, {0x0120 }}},
9618 { 0x0123, {1, {0x0122 }}},
9619 { 0x0125, {1, {0x0124 }}},
9620 { 0x0127, {1, {0x0126 }}},
9621 { 0x0129, {1, {0x0128 }}},
9622 { 0x012b, {1, {0x012a }}},
9623 { 0x012d, {1, {0x012c }}},
9624 { 0x012f, {1, {0x012e }}},
9625 { 0x0133, {1, {0x0132 }}},
9626 { 0x0135, {1, {0x0134 }}},
9627 { 0x0137, {1, {0x0136 }}},
9628 { 0x013a, {1, {0x0139 }}},
9629 { 0x013c, {1, {0x013b }}},
9630 { 0x013e, {1, {0x013d }}},
9631 { 0x0140, {1, {0x013f }}},
9632 { 0x0142, {1, {0x0141 }}},
9633 { 0x0144, {1, {0x0143 }}},
9634 { 0x0146, {1, {0x0145 }}},
9635 { 0x0148, {1, {0x0147 }}},
9636 { 0x014b, {1, {0x014a }}},
9637 { 0x014d, {1, {0x014c }}},
9638 { 0x014f, {1, {0x014e }}},
9639 { 0x0151, {1, {0x0150 }}},
9640 { 0x0153, {1, {0x0152 }}},
9641 { 0x0155, {1, {0x0154 }}},
9642 { 0x0157, {1, {0x0156 }}},
9643 { 0x0159, {1, {0x0158 }}},
9644 { 0x015b, {1, {0x015a }}},
9645 { 0x015d, {1, {0x015c }}},
9646 { 0x015f, {1, {0x015e }}},
9647 { 0x0161, {1, {0x0160 }}},
9648 { 0x0163, {1, {0x0162 }}},
9649 { 0x0165, {1, {0x0164 }}},
9650 { 0x0167, {1, {0x0166 }}},
9651 { 0x0169, {1, {0x0168 }}},
9652 { 0x016b, {1, {0x016a }}},
9653 { 0x016d, {1, {0x016c }}},
9654 { 0x016f, {1, {0x016e }}},
9655 { 0x0171, {1, {0x0170 }}},
9656 { 0x0173, {1, {0x0172 }}},
9657 { 0x0175, {1, {0x0174 }}},
9658 { 0x0177, {1, {0x0176 }}},
9659 { 0x017a, {1, {0x0179 }}},
9660 { 0x017c, {1, {0x017b }}},
9661 { 0x017e, {1, {0x017d }}},
9662 { 0x0183, {1, {0x0182 }}},
9663 { 0x0185, {1, {0x0184 }}},
9664 { 0x0188, {1, {0x0187 }}},
9665 { 0x018c, {1, {0x018b }}},
9666 { 0x0192, {1, {0x0191 }}},
9667 { 0x0195, {1, {0x01f6 }}},
9668 { 0x0199, {1, {0x0198 }}},
9669 { 0x019a, {1, {0x023d }}},
9670 { 0x019e, {1, {0x0220 }}},
9671 { 0x01a1, {1, {0x01a0 }}},
9672 { 0x01a3, {1, {0x01a2 }}},
9673 { 0x01a5, {1, {0x01a4 }}},
9674 { 0x01a8, {1, {0x01a7 }}},
9675 { 0x01ad, {1, {0x01ac }}},
9676 { 0x01b0, {1, {0x01af }}},
9677 { 0x01b4, {1, {0x01b3 }}},
9678 { 0x01b6, {1, {0x01b5 }}},
9679 { 0x01b9, {1, {0x01b8 }}},
9680 { 0x01bd, {1, {0x01bc }}},
9681 { 0x01bf, {1, {0x01f7 }}},
9682 { 0x01c6, {2, {0x01c4, 0x01c5 }}},
9683 { 0x01c9, {2, {0x01c7, 0x01c8 }}},
9684 { 0x01cc, {2, {0x01ca, 0x01cb }}},
9685 { 0x01ce, {1, {0x01cd }}},
9686 { 0x01d0, {1, {0x01cf }}},
9687 { 0x01d2, {1, {0x01d1 }}},
9688 { 0x01d4, {1, {0x01d3 }}},
9689 { 0x01d6, {1, {0x01d5 }}},
9690 { 0x01d8, {1, {0x01d7 }}},
9691 { 0x01da, {1, {0x01d9 }}},
9692 { 0x01dc, {1, {0x01db }}},
9693 { 0x01dd, {1, {0x018e }}},
9694 { 0x01df, {1, {0x01de }}},
9695 { 0x01e1, {1, {0x01e0 }}},
9696 { 0x01e3, {1, {0x01e2 }}},
9697 { 0x01e5, {1, {0x01e4 }}},
9698 { 0x01e7, {1, {0x01e6 }}},
9699 { 0x01e9, {1, {0x01e8 }}},
9700 { 0x01eb, {1, {0x01ea }}},
9701 { 0x01ed, {1, {0x01ec }}},
9702 { 0x01ef, {1, {0x01ee }}},
9703 { 0x01f3, {2, {0x01f1, 0x01f2 }}},
9704 { 0x01f5, {1, {0x01f4 }}},
9705 { 0x01f9, {1, {0x01f8 }}},
9706 { 0x01fb, {1, {0x01fa }}},
9707 { 0x01fd, {1, {0x01fc }}},
9708 { 0x01ff, {1, {0x01fe }}},
9709 { 0x0201, {1, {0x0200 }}},
9710 { 0x0203, {1, {0x0202 }}},
9711 { 0x0205, {1, {0x0204 }}},
9712 { 0x0207, {1, {0x0206 }}},
9713 { 0x0209, {1, {0x0208 }}},
9714 { 0x020b, {1, {0x020a }}},
9715 { 0x020d, {1, {0x020c }}},
9716 { 0x020f, {1, {0x020e }}},
9717 { 0x0211, {1, {0x0210 }}},
9718 { 0x0213, {1, {0x0212 }}},
9719 { 0x0215, {1, {0x0214 }}},
9720 { 0x0217, {1, {0x0216 }}},
9721 { 0x0219, {1, {0x0218 }}},
9722 { 0x021b, {1, {0x021a }}},
9723 { 0x021d, {1, {0x021c }}},
9724 { 0x021f, {1, {0x021e }}},
9725 { 0x0223, {1, {0x0222 }}},
9726 { 0x0225, {1, {0x0224 }}},
9727 { 0x0227, {1, {0x0226 }}},
9728 { 0x0229, {1, {0x0228 }}},
9729 { 0x022b, {1, {0x022a }}},
9730 { 0x022d, {1, {0x022c }}},
9731 { 0x022f, {1, {0x022e }}},
9732 { 0x0231, {1, {0x0230 }}},
9733 { 0x0233, {1, {0x0232 }}},
9734 { 0x023c, {1, {0x023b }}},
9735 { 0x0253, {1, {0x0181 }}},
9736 { 0x0254, {1, {0x0186 }}},
9737 { 0x0256, {1, {0x0189 }}},
9738 { 0x0257, {1, {0x018a }}},
9739 { 0x0259, {1, {0x018f }}},
9740 { 0x025b, {1, {0x0190 }}},
9741 { 0x0260, {1, {0x0193 }}},
9742 { 0x0263, {1, {0x0194 }}},
9743 { 0x0268, {1, {0x0197 }}},
9744 { 0x0269, {1, {0x0196 }}},
9745 { 0x026f, {1, {0x019c }}},
9746 { 0x0272, {1, {0x019d }}},
9747 { 0x0275, {1, {0x019f }}},
9748 { 0x0280, {1, {0x01a6 }}},
9749 { 0x0283, {1, {0x01a9 }}},
9750 { 0x0288, {1, {0x01ae }}},
9751 { 0x028a, {1, {0x01b1 }}},
9752 { 0x028b, {1, {0x01b2 }}},
9753 { 0x0292, {1, {0x01b7 }}},
9754 { 0x0294, {1, {0x0241 }}},
9755 { 0x03ac, {1, {0x0386 }}},
9756 { 0x03ad, {1, {0x0388 }}},
9757 { 0x03ae, {1, {0x0389 }}},
9758 { 0x03af, {1, {0x038a }}},
9759 { 0x03b1, {1, {0x0391 }}},
9760 { 0x03b2, {2, {0x0392, 0x03d0 }}},
9761 { 0x03b3, {1, {0x0393 }}},
9762 { 0x03b4, {1, {0x0394 }}},
9763 { 0x03b5, {2, {0x03f5, 0x0395 }}},
9764 { 0x03b6, {1, {0x0396 }}},
9765 { 0x03b7, {1, {0x0397 }}},
9766 { 0x03b8, {3, {0x03f4, 0x0398, 0x03d1 }}},
9767 { 0x03b9, {3, {0x1fbe, 0x0399, 0x0345 }}},
9768 { 0x03ba, {2, {0x03f0, 0x039a }}},
9769 { 0x03bb, {1, {0x039b }}},
9770 { 0x03bc, {2, {0x00b5, 0x039c }}},
9771 { 0x03bd, {1, {0x039d }}},
9772 { 0x03be, {1, {0x039e }}},
9773 { 0x03bf, {1, {0x039f }}},
9774 { 0x03c0, {2, {0x03a0, 0x03d6 }}},
9775 { 0x03c1, {2, {0x03f1, 0x03a1 }}},
9776 { 0x03c3, {2, {0x03a3, 0x03c2 }}},
9777 { 0x03c4, {1, {0x03a4 }}},
9778 { 0x03c5, {1, {0x03a5 }}},
9779 { 0x03c6, {2, {0x03a6, 0x03d5 }}},
9780 { 0x03c7, {1, {0x03a7 }}},
9781 { 0x03c8, {1, {0x03a8 }}},
9782 { 0x03c9, {2, {0x03a9, 0x2126 }}},
9783 { 0x03ca, {1, {0x03aa }}},
9784 { 0x03cb, {1, {0x03ab }}},
9785 { 0x03cc, {1, {0x038c }}},
9786 { 0x03cd, {1, {0x038e }}},
9787 { 0x03ce, {1, {0x038f }}},
9788 { 0x03d9, {1, {0x03d8 }}},
9789 { 0x03db, {1, {0x03da }}},
9790 { 0x03dd, {1, {0x03dc }}},
9791 { 0x03df, {1, {0x03de }}},
9792 { 0x03e1, {1, {0x03e0 }}},
9793 { 0x03e3, {1, {0x03e2 }}},
9794 { 0x03e5, {1, {0x03e4 }}},
9795 { 0x03e7, {1, {0x03e6 }}},
9796 { 0x03e9, {1, {0x03e8 }}},
9797 { 0x03eb, {1, {0x03ea }}},
9798 { 0x03ed, {1, {0x03ec }}},
9799 { 0x03ef, {1, {0x03ee }}},
9800 { 0x03f2, {1, {0x03f9 }}},
9801 { 0x03f8, {1, {0x03f7 }}},
9802 { 0x03fb, {1, {0x03fa }}},
9803 { 0x0430, {1, {0x0410 }}},
9804 { 0x0431, {1, {0x0411 }}},
9805 { 0x0432, {1, {0x0412 }}},
9806 { 0x0433, {1, {0x0413 }}},
9807 { 0x0434, {1, {0x0414 }}},
9808 { 0x0435, {1, {0x0415 }}},
9809 { 0x0436, {1, {0x0416 }}},
9810 { 0x0437, {1, {0x0417 }}},
9811 { 0x0438, {1, {0x0418 }}},
9812 { 0x0439, {1, {0x0419 }}},
9813 { 0x043a, {1, {0x041a }}},
9814 { 0x043b, {1, {0x041b }}},
9815 { 0x043c, {1, {0x041c }}},
9816 { 0x043d, {1, {0x041d }}},
9817 { 0x043e, {1, {0x041e }}},
9818 { 0x043f, {1, {0x041f }}},
9819 { 0x0440, {1, {0x0420 }}},
9820 { 0x0441, {1, {0x0421 }}},
9821 { 0x0442, {1, {0x0422 }}},
9822 { 0x0443, {1, {0x0423 }}},
9823 { 0x0444, {1, {0x0424 }}},
9824 { 0x0445, {1, {0x0425 }}},
9825 { 0x0446, {1, {0x0426 }}},
9826 { 0x0447, {1, {0x0427 }}},
9827 { 0x0448, {1, {0x0428 }}},
9828 { 0x0449, {1, {0x0429 }}},
9829 { 0x044a, {1, {0x042a }}},
9830 { 0x044b, {1, {0x042b }}},
9831 { 0x044c, {1, {0x042c }}},
9832 { 0x044d, {1, {0x042d }}},
9833 { 0x044e, {1, {0x042e }}},
9834 { 0x044f, {1, {0x042f }}},
9835 { 0x0450, {1, {0x0400 }}},
9836 { 0x0451, {1, {0x0401 }}},
9837 { 0x0452, {1, {0x0402 }}},
9838 { 0x0453, {1, {0x0403 }}},
9839 { 0x0454, {1, {0x0404 }}},
9840 { 0x0455, {1, {0x0405 }}},
9841 { 0x0456, {1, {0x0406 }}},
9842 { 0x0457, {1, {0x0407 }}},
9843 { 0x0458, {1, {0x0408 }}},
9844 { 0x0459, {1, {0x0409 }}},
9845 { 0x045a, {1, {0x040a }}},
9846 { 0x045b, {1, {0x040b }}},
9847 { 0x045c, {1, {0x040c }}},
9848 { 0x045d, {1, {0x040d }}},
9849 { 0x045e, {1, {0x040e }}},
9850 { 0x045f, {1, {0x040f }}},
9851 { 0x0461, {1, {0x0460 }}},
9852 { 0x0463, {1, {0x0462 }}},
9853 { 0x0465, {1, {0x0464 }}},
9854 { 0x0467, {1, {0x0466 }}},
9855 { 0x0469, {1, {0x0468 }}},
9856 { 0x046b, {1, {0x046a }}},
9857 { 0x046d, {1, {0x046c }}},
9858 { 0x046f, {1, {0x046e }}},
9859 { 0x0471, {1, {0x0470 }}},
9860 { 0x0473, {1, {0x0472 }}},
9861 { 0x0475, {1, {0x0474 }}},
9862 { 0x0477, {1, {0x0476 }}},
9863 { 0x0479, {1, {0x0478 }}},
9864 { 0x047b, {1, {0x047a }}},
9865 { 0x047d, {1, {0x047c }}},
9866 { 0x047f, {1, {0x047e }}},
9867 { 0x0481, {1, {0x0480 }}},
9868 { 0x048b, {1, {0x048a }}},
9869 { 0x048d, {1, {0x048c }}},
9870 { 0x048f, {1, {0x048e }}},
9871 { 0x0491, {1, {0x0490 }}},
9872 { 0x0493, {1, {0x0492 }}},
9873 { 0x0495, {1, {0x0494 }}},
9874 { 0x0497, {1, {0x0496 }}},
9875 { 0x0499, {1, {0x0498 }}},
9876 { 0x049b, {1, {0x049a }}},
9877 { 0x049d, {1, {0x049c }}},
9878 { 0x049f, {1, {0x049e }}},
9879 { 0x04a1, {1, {0x04a0 }}},
9880 { 0x04a3, {1, {0x04a2 }}},
9881 { 0x04a5, {1, {0x04a4 }}},
9882 { 0x04a7, {1, {0x04a6 }}},
9883 { 0x04a9, {1, {0x04a8 }}},
9884 { 0x04ab, {1, {0x04aa }}},
9885 { 0x04ad, {1, {0x04ac }}},
9886 { 0x04af, {1, {0x04ae }}},
9887 { 0x04b1, {1, {0x04b0 }}},
9888 { 0x04b3, {1, {0x04b2 }}},
9889 { 0x04b5, {1, {0x04b4 }}},
9890 { 0x04b7, {1, {0x04b6 }}},
9891 { 0x04b9, {1, {0x04b8 }}},
9892 { 0x04bb, {1, {0x04ba }}},
9893 { 0x04bd, {1, {0x04bc }}},
9894 { 0x04bf, {1, {0x04be }}},
9895 { 0x04c2, {1, {0x04c1 }}},
9896 { 0x04c4, {1, {0x04c3 }}},
9897 { 0x04c6, {1, {0x04c5 }}},
9898 { 0x04c8, {1, {0x04c7 }}},
9899 { 0x04ca, {1, {0x04c9 }}},
9900 { 0x04cc, {1, {0x04cb }}},
9901 { 0x04ce, {1, {0x04cd }}},
9902 { 0x04d1, {1, {0x04d0 }}},
9903 { 0x04d3, {1, {0x04d2 }}},
9904 { 0x04d5, {1, {0x04d4 }}},
9905 { 0x04d7, {1, {0x04d6 }}},
9906 { 0x04d9, {1, {0x04d8 }}},
9907 { 0x04db, {1, {0x04da }}},
9908 { 0x04dd, {1, {0x04dc }}},
9909 { 0x04df, {1, {0x04de }}},
9910 { 0x04e1, {1, {0x04e0 }}},
9911 { 0x04e3, {1, {0x04e2 }}},
9912 { 0x04e5, {1, {0x04e4 }}},
9913 { 0x04e7, {1, {0x04e6 }}},
9914 { 0x04e9, {1, {0x04e8 }}},
9915 { 0x04eb, {1, {0x04ea }}},
9916 { 0x04ed, {1, {0x04ec }}},
9917 { 0x04ef, {1, {0x04ee }}},
9918 { 0x04f1, {1, {0x04f0 }}},
9919 { 0x04f3, {1, {0x04f2 }}},
9920 { 0x04f5, {1, {0x04f4 }}},
9921 { 0x04f7, {1, {0x04f6 }}},
9922 { 0x04f9, {1, {0x04f8 }}},
9923 { 0x0501, {1, {0x0500 }}},
9924 { 0x0503, {1, {0x0502 }}},
9925 { 0x0505, {1, {0x0504 }}},
9926 { 0x0507, {1, {0x0506 }}},
9927 { 0x0509, {1, {0x0508 }}},
9928 { 0x050b, {1, {0x050a }}},
9929 { 0x050d, {1, {0x050c }}},
9930 { 0x050f, {1, {0x050e }}},
9931 { 0x0561, {1, {0x0531 }}},
9932 { 0x0562, {1, {0x0532 }}},
9933 { 0x0563, {1, {0x0533 }}},
9934 { 0x0564, {1, {0x0534 }}},
9935 { 0x0565, {1, {0x0535 }}},
9936 { 0x0566, {1, {0x0536 }}},
9937 { 0x0567, {1, {0x0537 }}},
9938 { 0x0568, {1, {0x0538 }}},
9939 { 0x0569, {1, {0x0539 }}},
9940 { 0x056a, {1, {0x053a }}},
9941 { 0x056b, {1, {0x053b }}},
9942 { 0x056c, {1, {0x053c }}},
9943 { 0x056d, {1, {0x053d }}},
9944 { 0x056e, {1, {0x053e }}},
9945 { 0x056f, {1, {0x053f }}},
9946 { 0x0570, {1, {0x0540 }}},
9947 { 0x0571, {1, {0x0541 }}},
9948 { 0x0572, {1, {0x0542 }}},
9949 { 0x0573, {1, {0x0543 }}},
9950 { 0x0574, {1, {0x0544 }}},
9951 { 0x0575, {1, {0x0545 }}},
9952 { 0x0576, {1, {0x0546 }}},
9953 { 0x0577, {1, {0x0547 }}},
9954 { 0x0578, {1, {0x0548 }}},
9955 { 0x0579, {1, {0x0549 }}},
9956 { 0x057a, {1, {0x054a }}},
9957 { 0x057b, {1, {0x054b }}},
9958 { 0x057c, {1, {0x054c }}},
9959 { 0x057d, {1, {0x054d }}},
9960 { 0x057e, {1, {0x054e }}},
9961 { 0x057f, {1, {0x054f }}},
9962 { 0x0580, {1, {0x0550 }}},
9963 { 0x0581, {1, {0x0551 }}},
9964 { 0x0582, {1, {0x0552 }}},
9965 { 0x0583, {1, {0x0553 }}},
9966 { 0x0584, {1, {0x0554 }}},
9967 { 0x0585, {1, {0x0555 }}},
9968 { 0x0586, {1, {0x0556 }}},
9969 { 0x1e01, {1, {0x1e00 }}},
9970 { 0x1e03, {1, {0x1e02 }}},
9971 { 0x1e05, {1, {0x1e04 }}},
9972 { 0x1e07, {1, {0x1e06 }}},
9973 { 0x1e09, {1, {0x1e08 }}},
9974 { 0x1e0b, {1, {0x1e0a }}},
9975 { 0x1e0d, {1, {0x1e0c }}},
9976 { 0x1e0f, {1, {0x1e0e }}},
9977 { 0x1e11, {1, {0x1e10 }}},
9978 { 0x1e13, {1, {0x1e12 }}},
9979 { 0x1e15, {1, {0x1e14 }}},
9980 { 0x1e17, {1, {0x1e16 }}},
9981 { 0x1e19, {1, {0x1e18 }}},
9982 { 0x1e1b, {1, {0x1e1a }}},
9983 { 0x1e1d, {1, {0x1e1c }}},
9984 { 0x1e1f, {1, {0x1e1e }}},
9985 { 0x1e21, {1, {0x1e20 }}},
9986 { 0x1e23, {1, {0x1e22 }}},
9987 { 0x1e25, {1, {0x1e24 }}},
9988 { 0x1e27, {1, {0x1e26 }}},
9989 { 0x1e29, {1, {0x1e28 }}},
9990 { 0x1e2b, {1, {0x1e2a }}},
9991 { 0x1e2d, {1, {0x1e2c }}},
9992 { 0x1e2f, {1, {0x1e2e }}},
9993 { 0x1e31, {1, {0x1e30 }}},
9994 { 0x1e33, {1, {0x1e32 }}},
9995 { 0x1e35, {1, {0x1e34 }}},
9996 { 0x1e37, {1, {0x1e36 }}},
9997 { 0x1e39, {1, {0x1e38 }}},
9998 { 0x1e3b, {1, {0x1e3a }}},
9999 { 0x1e3d, {1, {0x1e3c }}},
10000 { 0x1e3f, {1, {0x1e3e }}},
10001 { 0x1e41, {1, {0x1e40 }}},
10002 { 0x1e43, {1, {0x1e42 }}},
10003 { 0x1e45, {1, {0x1e44 }}},
10004 { 0x1e47, {1, {0x1e46 }}},
10005 { 0x1e49, {1, {0x1e48 }}},
10006 { 0x1e4b, {1, {0x1e4a }}},
10007 { 0x1e4d, {1, {0x1e4c }}},
10008 { 0x1e4f, {1, {0x1e4e }}},
10009 { 0x1e51, {1, {0x1e50 }}},
10010 { 0x1e53, {1, {0x1e52 }}},
10011 { 0x1e55, {1, {0x1e54 }}},
10012 { 0x1e57, {1, {0x1e56 }}},
10013 { 0x1e59, {1, {0x1e58 }}},
10014 { 0x1e5b, {1, {0x1e5a }}},
10015 { 0x1e5d, {1, {0x1e5c }}},
10016 { 0x1e5f, {1, {0x1e5e }}},
10017 { 0x1e61, {2, {0x1e9b, 0x1e60 }}},
10018 { 0x1e63, {1, {0x1e62 }}},
10019 { 0x1e65, {1, {0x1e64 }}},
10020 { 0x1e67, {1, {0x1e66 }}},
10021 { 0x1e69, {1, {0x1e68 }}},
10022 { 0x1e6b, {1, {0x1e6a }}},
10023 { 0x1e6d, {1, {0x1e6c }}},
10024 { 0x1e6f, {1, {0x1e6e }}},
10025 { 0x1e71, {1, {0x1e70 }}},
10026 { 0x1e73, {1, {0x1e72 }}},
10027 { 0x1e75, {1, {0x1e74 }}},
10028 { 0x1e77, {1, {0x1e76 }}},
10029 { 0x1e79, {1, {0x1e78 }}},
10030 { 0x1e7b, {1, {0x1e7a }}},
10031 { 0x1e7d, {1, {0x1e7c }}},
10032 { 0x1e7f, {1, {0x1e7e }}},
10033 { 0x1e81, {1, {0x1e80 }}},
10034 { 0x1e83, {1, {0x1e82 }}},
10035 { 0x1e85, {1, {0x1e84 }}},
10036 { 0x1e87, {1, {0x1e86 }}},
10037 { 0x1e89, {1, {0x1e88 }}},
10038 { 0x1e8b, {1, {0x1e8a }}},
10039 { 0x1e8d, {1, {0x1e8c }}},
10040 { 0x1e8f, {1, {0x1e8e }}},
10041 { 0x1e91, {1, {0x1e90 }}},
10042 { 0x1e93, {1, {0x1e92 }}},
10043 { 0x1e95, {1, {0x1e94 }}},
10044 { 0x1ea1, {1, {0x1ea0 }}},
10045 { 0x1ea3, {1, {0x1ea2 }}},
10046 { 0x1ea5, {1, {0x1ea4 }}},
10047 { 0x1ea7, {1, {0x1ea6 }}},
10048 { 0x1ea9, {1, {0x1ea8 }}},
10049 { 0x1eab, {1, {0x1eaa }}},
10050 { 0x1ead, {1, {0x1eac }}},
10051 { 0x1eaf, {1, {0x1eae }}},
10052 { 0x1eb1, {1, {0x1eb0 }}},
10053 { 0x1eb3, {1, {0x1eb2 }}},
10054 { 0x1eb5, {1, {0x1eb4 }}},
10055 { 0x1eb7, {1, {0x1eb6 }}},
10056 { 0x1eb9, {1, {0x1eb8 }}},
10057 { 0x1ebb, {1, {0x1eba }}},
10058 { 0x1ebd, {1, {0x1ebc }}},
10059 { 0x1ebf, {1, {0x1ebe }}},
10060 { 0x1ec1, {1, {0x1ec0 }}},
10061 { 0x1ec3, {1, {0x1ec2 }}},
10062 { 0x1ec5, {1, {0x1ec4 }}},
10063 { 0x1ec7, {1, {0x1ec6 }}},
10064 { 0x1ec9, {1, {0x1ec8 }}},
10065 { 0x1ecb, {1, {0x1eca }}},
10066 { 0x1ecd, {1, {0x1ecc }}},
10067 { 0x1ecf, {1, {0x1ece }}},
10068 { 0x1ed1, {1, {0x1ed0 }}},
10069 { 0x1ed3, {1, {0x1ed2 }}},
10070 { 0x1ed5, {1, {0x1ed4 }}},
10071 { 0x1ed7, {1, {0x1ed6 }}},
10072 { 0x1ed9, {1, {0x1ed8 }}},
10073 { 0x1edb, {1, {0x1eda }}},
10074 { 0x1edd, {1, {0x1edc }}},
10075 { 0x1edf, {1, {0x1ede }}},
10076 { 0x1ee1, {1, {0x1ee0 }}},
10077 { 0x1ee3, {1, {0x1ee2 }}},
10078 { 0x1ee5, {1, {0x1ee4 }}},
10079 { 0x1ee7, {1, {0x1ee6 }}},
10080 { 0x1ee9, {1, {0x1ee8 }}},
10081 { 0x1eeb, {1, {0x1eea }}},
10082 { 0x1eed, {1, {0x1eec }}},
10083 { 0x1eef, {1, {0x1eee }}},
10084 { 0x1ef1, {1, {0x1ef0 }}},
10085 { 0x1ef3, {1, {0x1ef2 }}},
10086 { 0x1ef5, {1, {0x1ef4 }}},
10087 { 0x1ef7, {1, {0x1ef6 }}},
10088 { 0x1ef9, {1, {0x1ef8 }}},
10089 { 0x1f00, {1, {0x1f08 }}},
10090 { 0x1f01, {1, {0x1f09 }}},
10091 { 0x1f02, {1, {0x1f0a }}},
10092 { 0x1f03, {1, {0x1f0b }}},
10093 { 0x1f04, {1, {0x1f0c }}},
10094 { 0x1f05, {1, {0x1f0d }}},
10095 { 0x1f06, {1, {0x1f0e }}},
10096 { 0x1f07, {1, {0x1f0f }}},
10097 { 0x1f10, {1, {0x1f18 }}},
10098 { 0x1f11, {1, {0x1f19 }}},
10099 { 0x1f12, {1, {0x1f1a }}},
10100 { 0x1f13, {1, {0x1f1b }}},
10101 { 0x1f14, {1, {0x1f1c }}},
10102 { 0x1f15, {1, {0x1f1d }}},
10103 { 0x1f20, {1, {0x1f28 }}},
10104 { 0x1f21, {1, {0x1f29 }}},
10105 { 0x1f22, {1, {0x1f2a }}},
10106 { 0x1f23, {1, {0x1f2b }}},
10107 { 0x1f24, {1, {0x1f2c }}},
10108 { 0x1f25, {1, {0x1f2d }}},
10109 { 0x1f26, {1, {0x1f2e }}},
10110 { 0x1f27, {1, {0x1f2f }}},
10111 { 0x1f30, {1, {0x1f38 }}},
10112 { 0x1f31, {1, {0x1f39 }}},
10113 { 0x1f32, {1, {0x1f3a }}},
10114 { 0x1f33, {1, {0x1f3b }}},
10115 { 0x1f34, {1, {0x1f3c }}},
10116 { 0x1f35, {1, {0x1f3d }}},
10117 { 0x1f36, {1, {0x1f3e }}},
10118 { 0x1f37, {1, {0x1f3f }}},
10119 { 0x1f40, {1, {0x1f48 }}},
10120 { 0x1f41, {1, {0x1f49 }}},
10121 { 0x1f42, {1, {0x1f4a }}},
10122 { 0x1f43, {1, {0x1f4b }}},
10123 { 0x1f44, {1, {0x1f4c }}},
10124 { 0x1f45, {1, {0x1f4d }}},
10125 { 0x1f51, {1, {0x1f59 }}},
10126 { 0x1f53, {1, {0x1f5b }}},
10127 { 0x1f55, {1, {0x1f5d }}},
10128 { 0x1f57, {1, {0x1f5f }}},
10129 { 0x1f60, {1, {0x1f68 }}},
10130 { 0x1f61, {1, {0x1f69 }}},
10131 { 0x1f62, {1, {0x1f6a }}},
10132 { 0x1f63, {1, {0x1f6b }}},
10133 { 0x1f64, {1, {0x1f6c }}},
10134 { 0x1f65, {1, {0x1f6d }}},
10135 { 0x1f66, {1, {0x1f6e }}},
10136 { 0x1f67, {1, {0x1f6f }}},
10137 { 0x1f70, {1, {0x1fba }}},
10138 { 0x1f71, {1, {0x1fbb }}},
10139 { 0x1f72, {1, {0x1fc8 }}},
10140 { 0x1f73, {1, {0x1fc9 }}},
10141 { 0x1f74, {1, {0x1fca }}},
10142 { 0x1f75, {1, {0x1fcb }}},
10143 { 0x1f76, {1, {0x1fda }}},
10144 { 0x1f77, {1, {0x1fdb }}},
10145 { 0x1f78, {1, {0x1ff8 }}},
10146 { 0x1f79, {1, {0x1ff9 }}},
10147 { 0x1f7a, {1, {0x1fea }}},
10148 { 0x1f7b, {1, {0x1feb }}},
10149 { 0x1f7c, {1, {0x1ffa }}},
10150 { 0x1f7d, {1, {0x1ffb }}},
10151 { 0x1fb0, {1, {0x1fb8 }}},
10152 { 0x1fb1, {1, {0x1fb9 }}},
10153 { 0x1fd0, {1, {0x1fd8 }}},
10154 { 0x1fd1, {1, {0x1fd9 }}},
10155 { 0x1fe0, {1, {0x1fe8 }}},
10156 { 0x1fe1, {1, {0x1fe9 }}},
10157 { 0x1fe5, {1, {0x1fec }}},
10158 { 0x2170, {1, {0x2160 }}},
10159 { 0x2171, {1, {0x2161 }}},
10160 { 0x2172, {1, {0x2162 }}},
10161 { 0x2173, {1, {0x2163 }}},
10162 { 0x2174, {1, {0x2164 }}},
10163 { 0x2175, {1, {0x2165 }}},
10164 { 0x2176, {1, {0x2166 }}},
10165 { 0x2177, {1, {0x2167 }}},
10166 { 0x2178, {1, {0x2168 }}},
10167 { 0x2179, {1, {0x2169 }}},
10168 { 0x217a, {1, {0x216a }}},
10169 { 0x217b, {1, {0x216b }}},
10170 { 0x217c, {1, {0x216c }}},
10171 { 0x217d, {1, {0x216d }}},
10172 { 0x217e, {1, {0x216e }}},
10173 { 0x217f, {1, {0x216f }}},
10174 { 0x24d0, {1, {0x24b6 }}},
10175 { 0x24d1, {1, {0x24b7 }}},
10176 { 0x24d2, {1, {0x24b8 }}},
10177 { 0x24d3, {1, {0x24b9 }}},
10178 { 0x24d4, {1, {0x24ba }}},
10179 { 0x24d5, {1, {0x24bb }}},
10180 { 0x24d6, {1, {0x24bc }}},
10181 { 0x24d7, {1, {0x24bd }}},
10182 { 0x24d8, {1, {0x24be }}},
10183 { 0x24d9, {1, {0x24bf }}},
10184 { 0x24da, {1, {0x24c0 }}},
10185 { 0x24db, {1, {0x24c1 }}},
10186 { 0x24dc, {1, {0x24c2 }}},
10187 { 0x24dd, {1, {0x24c3 }}},
10188 { 0x24de, {1, {0x24c4 }}},
10189 { 0x24df, {1, {0x24c5 }}},
10190 { 0x24e0, {1, {0x24c6 }}},
10191 { 0x24e1, {1, {0x24c7 }}},
10192 { 0x24e2, {1, {0x24c8 }}},
10193 { 0x24e3, {1, {0x24c9 }}},
10194 { 0x24e4, {1, {0x24ca }}},
10195 { 0x24e5, {1, {0x24cb }}},
10196 { 0x24e6, {1, {0x24cc }}},
10197 { 0x24e7, {1, {0x24cd }}},
10198 { 0x24e8, {1, {0x24ce }}},
10199 { 0x24e9, {1, {0x24cf }}},
10200 { 0x2c30, {1, {0x2c00 }}},
10201 { 0x2c31, {1, {0x2c01 }}},
10202 { 0x2c32, {1, {0x2c02 }}},
10203 { 0x2c33, {1, {0x2c03 }}},
10204 { 0x2c34, {1, {0x2c04 }}},
10205 { 0x2c35, {1, {0x2c05 }}},
10206 { 0x2c36, {1, {0x2c06 }}},
10207 { 0x2c37, {1, {0x2c07 }}},
10208 { 0x2c38, {1, {0x2c08 }}},
10209 { 0x2c39, {1, {0x2c09 }}},
10210 { 0x2c3a, {1, {0x2c0a }}},
10211 { 0x2c3b, {1, {0x2c0b }}},
10212 { 0x2c3c, {1, {0x2c0c }}},
10213 { 0x2c3d, {1, {0x2c0d }}},
10214 { 0x2c3e, {1, {0x2c0e }}},
10215 { 0x2c3f, {1, {0x2c0f }}},
10216 { 0x2c40, {1, {0x2c10 }}},
10217 { 0x2c41, {1, {0x2c11 }}},
10218 { 0x2c42, {1, {0x2c12 }}},
10219 { 0x2c43, {1, {0x2c13 }}},
10220 { 0x2c44, {1, {0x2c14 }}},
10221 { 0x2c45, {1, {0x2c15 }}},
10222 { 0x2c46, {1, {0x2c16 }}},
10223 { 0x2c47, {1, {0x2c17 }}},
10224 { 0x2c48, {1, {0x2c18 }}},
10225 { 0x2c49, {1, {0x2c19 }}},
10226 { 0x2c4a, {1, {0x2c1a }}},
10227 { 0x2c4b, {1, {0x2c1b }}},
10228 { 0x2c4c, {1, {0x2c1c }}},
10229 { 0x2c4d, {1, {0x2c1d }}},
10230 { 0x2c4e, {1, {0x2c1e }}},
10231 { 0x2c4f, {1, {0x2c1f }}},
10232 { 0x2c50, {1, {0x2c20 }}},
10233 { 0x2c51, {1, {0x2c21 }}},
10234 { 0x2c52, {1, {0x2c22 }}},
10235 { 0x2c53, {1, {0x2c23 }}},
10236 { 0x2c54, {1, {0x2c24 }}},
10237 { 0x2c55, {1, {0x2c25 }}},
10238 { 0x2c56, {1, {0x2c26 }}},
10239 { 0x2c57, {1, {0x2c27 }}},
10240 { 0x2c58, {1, {0x2c28 }}},
10241 { 0x2c59, {1, {0x2c29 }}},
10242 { 0x2c5a, {1, {0x2c2a }}},
10243 { 0x2c5b, {1, {0x2c2b }}},
10244 { 0x2c5c, {1, {0x2c2c }}},
10245 { 0x2c5d, {1, {0x2c2d }}},
10246 { 0x2c5e, {1, {0x2c2e }}},
10247 { 0x2c81, {1, {0x2c80 }}},
10248 { 0x2c83, {1, {0x2c82 }}},
10249 { 0x2c85, {1, {0x2c84 }}},
10250 { 0x2c87, {1, {0x2c86 }}},
10251 { 0x2c89, {1, {0x2c88 }}},
10252 { 0x2c8b, {1, {0x2c8a }}},
10253 { 0x2c8d, {1, {0x2c8c }}},
10254 { 0x2c8f, {1, {0x2c8e }}},
10255 { 0x2c91, {1, {0x2c90 }}},
10256 { 0x2c93, {1, {0x2c92 }}},
10257 { 0x2c95, {1, {0x2c94 }}},
10258 { 0x2c97, {1, {0x2c96 }}},
10259 { 0x2c99, {1, {0x2c98 }}},
10260 { 0x2c9b, {1, {0x2c9a }}},
10261 { 0x2c9d, {1, {0x2c9c }}},
10262 { 0x2c9f, {1, {0x2c9e }}},
10263 { 0x2ca1, {1, {0x2ca0 }}},
10264 { 0x2ca3, {1, {0x2ca2 }}},
10265 { 0x2ca5, {1, {0x2ca4 }}},
10266 { 0x2ca7, {1, {0x2ca6 }}},
10267 { 0x2ca9, {1, {0x2ca8 }}},
10268 { 0x2cab, {1, {0x2caa }}},
10269 { 0x2cad, {1, {0x2cac }}},
10270 { 0x2caf, {1, {0x2cae }}},
10271 { 0x2cb1, {1, {0x2cb0 }}},
10272 { 0x2cb3, {1, {0x2cb2 }}},
10273 { 0x2cb5, {1, {0x2cb4 }}},
10274 { 0x2cb7, {1, {0x2cb6 }}},
10275 { 0x2cb9, {1, {0x2cb8 }}},
10276 { 0x2cbb, {1, {0x2cba }}},
10277 { 0x2cbd, {1, {0x2cbc }}},
10278 { 0x2cbf, {1, {0x2cbe }}},
10279 { 0x2cc1, {1, {0x2cc0 }}},
10280 { 0x2cc3, {1, {0x2cc2 }}},
10281 { 0x2cc5, {1, {0x2cc4 }}},
10282 { 0x2cc7, {1, {0x2cc6 }}},
10283 { 0x2cc9, {1, {0x2cc8 }}},
10284 { 0x2ccb, {1, {0x2cca }}},
10285 { 0x2ccd, {1, {0x2ccc }}},
10286 { 0x2ccf, {1, {0x2cce }}},
10287 { 0x2cd1, {1, {0x2cd0 }}},
10288 { 0x2cd3, {1, {0x2cd2 }}},
10289 { 0x2cd5, {1, {0x2cd4 }}},
10290 { 0x2cd7, {1, {0x2cd6 }}},
10291 { 0x2cd9, {1, {0x2cd8 }}},
10292 { 0x2cdb, {1, {0x2cda }}},
10293 { 0x2cdd, {1, {0x2cdc }}},
10294 { 0x2cdf, {1, {0x2cde }}},
10295 { 0x2ce1, {1, {0x2ce0 }}},
10296 { 0x2ce3, {1, {0x2ce2 }}},
10297 { 0x2d00, {1, {0x10a0 }}},
10298 { 0x2d01, {1, {0x10a1 }}},
10299 { 0x2d02, {1, {0x10a2 }}},
10300 { 0x2d03, {1, {0x10a3 }}},
10301 { 0x2d04, {1, {0x10a4 }}},
10302 { 0x2d05, {1, {0x10a5 }}},
10303 { 0x2d06, {1, {0x10a6 }}},
10304 { 0x2d07, {1, {0x10a7 }}},
10305 { 0x2d08, {1, {0x10a8 }}},
10306 { 0x2d09, {1, {0x10a9 }}},
10307 { 0x2d0a, {1, {0x10aa }}},
10308 { 0x2d0b, {1, {0x10ab }}},
10309 { 0x2d0c, {1, {0x10ac }}},
10310 { 0x2d0d, {1, {0x10ad }}},
10311 { 0x2d0e, {1, {0x10ae }}},
10312 { 0x2d0f, {1, {0x10af }}},
10313 { 0x2d10, {1, {0x10b0 }}},
10314 { 0x2d11, {1, {0x10b1 }}},
10315 { 0x2d12, {1, {0x10b2 }}},
10316 { 0x2d13, {1, {0x10b3 }}},
10317 { 0x2d14, {1, {0x10b4 }}},
10318 { 0x2d15, {1, {0x10b5 }}},
10319 { 0x2d16, {1, {0x10b6 }}},
10320 { 0x2d17, {1, {0x10b7 }}},
10321 { 0x2d18, {1, {0x10b8 }}},
10322 { 0x2d19, {1, {0x10b9 }}},
10323 { 0x2d1a, {1, {0x10ba }}},
10324 { 0x2d1b, {1, {0x10bb }}},
10325 { 0x2d1c, {1, {0x10bc }}},
10326 { 0x2d1d, {1, {0x10bd }}},
10327 { 0x2d1e, {1, {0x10be }}},
10328 { 0x2d1f, {1, {0x10bf }}},
10329 { 0x2d20, {1, {0x10c0 }}},
10330 { 0x2d21, {1, {0x10c1 }}},
10331 { 0x2d22, {1, {0x10c2 }}},
10332 { 0x2d23, {1, {0x10c3 }}},
10333 { 0x2d24, {1, {0x10c4 }}},
10334 { 0x2d25, {1, {0x10c5 }}},
10335 { 0xff41, {1, {0xff21 }}},
10336 { 0xff42, {1, {0xff22 }}},
10337 { 0xff43, {1, {0xff23 }}},
10338 { 0xff44, {1, {0xff24 }}},
10339 { 0xff45, {1, {0xff25 }}},
10340 { 0xff46, {1, {0xff26 }}},
10341 { 0xff47, {1, {0xff27 }}},
10342 { 0xff48, {1, {0xff28 }}},
10343 { 0xff49, {1, {0xff29 }}},
10344 { 0xff4a, {1, {0xff2a }}},
10345 { 0xff4b, {1, {0xff2b }}},
10346 { 0xff4c, {1, {0xff2c }}},
10347 { 0xff4d, {1, {0xff2d }}},
10348 { 0xff4e, {1, {0xff2e }}},
10349 { 0xff4f, {1, {0xff2f }}},
10350 { 0xff50, {1, {0xff30 }}},
10351 { 0xff51, {1, {0xff31 }}},
10352 { 0xff52, {1, {0xff32 }}},
10353 { 0xff53, {1, {0xff33 }}},
10354 { 0xff54, {1, {0xff34 }}},
10355 { 0xff55, {1, {0xff35 }}},
10356 { 0xff56, {1, {0xff36 }}},
10357 { 0xff57, {1, {0xff37 }}},
10358 { 0xff58, {1, {0xff38 }}},
10359 { 0xff59, {1, {0xff39 }}},
10360 { 0xff5a, {1, {0xff3a }}},
10361 { 0x10428, {1, {0x10400 }}},
10362 { 0x10429, {1, {0x10401 }}},
10363 { 0x1042a, {1, {0x10402 }}},
10364 { 0x1042b, {1, {0x10403 }}},
10365 { 0x1042c, {1, {0x10404 }}},
10366 { 0x1042d, {1, {0x10405 }}},
10367 { 0x1042e, {1, {0x10406 }}},
10368 { 0x1042f, {1, {0x10407 }}},
10369 { 0x10430, {1, {0x10408 }}},
10370 { 0x10431, {1, {0x10409 }}},
10371 { 0x10432, {1, {0x1040a }}},
10372 { 0x10433, {1, {0x1040b }}},
10373 { 0x10434, {1, {0x1040c }}},
10374 { 0x10435, {1, {0x1040d }}},
10375 { 0x10436, {1, {0x1040e }}},
10376 { 0x10437, {1, {0x1040f }}},
10377 { 0x10438, {1, {0x10410 }}},
10378 { 0x10439, {1, {0x10411 }}},
10379 { 0x1043a, {1, {0x10412 }}},
10380 { 0x1043b, {1, {0x10413 }}},
10381 { 0x1043c, {1, {0x10414 }}},
10382 { 0x1043d, {1, {0x10415 }}},
10383 { 0x1043e, {1, {0x10416 }}},
10384 { 0x1043f, {1, {0x10417 }}},
10385 { 0x10440, {1, {0x10418 }}},
10386 { 0x10441, {1, {0x10419 }}},
10387 { 0x10442, {1, {0x1041a }}},
10388 { 0x10443, {1, {0x1041b }}},
10389 { 0x10444, {1, {0x1041c }}},
10390 { 0x10445, {1, {0x1041d }}},
10391 { 0x10446, {1, {0x1041e }}},
10392 { 0x10447, {1, {0x1041f }}},
10393 { 0x10448, {1, {0x10420 }}},
10394 { 0x10449, {1, {0x10421 }}},
10395 { 0x1044a, {1, {0x10422 }}},
10396 { 0x1044b, {1, {0x10423 }}},
10397 { 0x1044c, {1, {0x10424 }}},
10398 { 0x1044d, {1, {0x10425 }}},
10399 { 0x1044e, {1, {0x10426 }}},
10400 { 0x1044f, {1, {0x10427 }}}
10403 static const CaseUnfold_11_Type CaseUnfold_11_Locale
[] = {
10404 { 0x0069, {1, {0x0049 }}}
10407 static const CaseUnfold_12_Type CaseUnfold_12
[] = {
10408 { {0x0061, 0x02be}, {1, {0x1e9a }}},
10409 { {0x0066, 0x0066}, {1, {0xfb00 }}},
10410 { {0x0066, 0x0069}, {1, {0xfb01 }}},
10411 { {0x0066, 0x006c}, {1, {0xfb02 }}},
10412 { {0x0068, 0x0331}, {1, {0x1e96 }}},
10413 { {0x006a, 0x030c}, {1, {0x01f0 }}},
10414 { {0x0073, 0x0073}, {1, {0x00df }}},
10415 { {0x0073, 0x0074}, {2, {0xfb05, 0xfb06 }}},
10416 { {0x0074, 0x0308}, {1, {0x1e97 }}},
10417 { {0x0077, 0x030a}, {1, {0x1e98 }}},
10418 { {0x0079, 0x030a}, {1, {0x1e99 }}},
10419 { {0x02bc, 0x006e}, {1, {0x0149 }}},
10420 { {0x03ac, 0x03b9}, {1, {0x1fb4 }}},
10421 { {0x03ae, 0x03b9}, {1, {0x1fc4 }}},
10422 { {0x03b1, 0x0342}, {1, {0x1fb6 }}},
10423 { {0x03b1, 0x03b9}, {2, {0x1fb3, 0x1fbc }}},
10424 { {0x03b7, 0x0342}, {1, {0x1fc6 }}},
10425 { {0x03b7, 0x03b9}, {2, {0x1fc3, 0x1fcc }}},
10426 { {0x03b9, 0x0342}, {1, {0x1fd6 }}},
10427 { {0x03c1, 0x0313}, {1, {0x1fe4 }}},
10428 { {0x03c5, 0x0313}, {1, {0x1f50 }}},
10429 { {0x03c5, 0x0342}, {1, {0x1fe6 }}},
10430 { {0x03c9, 0x0342}, {1, {0x1ff6 }}},
10431 { {0x03c9, 0x03b9}, {2, {0x1ff3, 0x1ffc }}},
10432 { {0x03ce, 0x03b9}, {1, {0x1ff4 }}},
10433 { {0x0565, 0x0582}, {1, {0x0587 }}},
10434 { {0x0574, 0x0565}, {1, {0xfb14 }}},
10435 { {0x0574, 0x056b}, {1, {0xfb15 }}},
10436 { {0x0574, 0x056d}, {1, {0xfb17 }}},
10437 { {0x0574, 0x0576}, {1, {0xfb13 }}},
10438 { {0x057e, 0x0576}, {1, {0xfb16 }}},
10439 { {0x1f00, 0x03b9}, {2, {0x1f88, 0x1f80 }}},
10440 { {0x1f01, 0x03b9}, {2, {0x1f81, 0x1f89 }}},
10441 { {0x1f02, 0x03b9}, {2, {0x1f82, 0x1f8a }}},
10442 { {0x1f03, 0x03b9}, {2, {0x1f83, 0x1f8b }}},
10443 { {0x1f04, 0x03b9}, {2, {0x1f84, 0x1f8c }}},
10444 { {0x1f05, 0x03b9}, {2, {0x1f85, 0x1f8d }}},
10445 { {0x1f06, 0x03b9}, {2, {0x1f86, 0x1f8e }}},
10446 { {0x1f07, 0x03b9}, {2, {0x1f87, 0x1f8f }}},
10447 { {0x1f20, 0x03b9}, {2, {0x1f90, 0x1f98 }}},
10448 { {0x1f21, 0x03b9}, {2, {0x1f91, 0x1f99 }}},
10449 { {0x1f22, 0x03b9}, {2, {0x1f92, 0x1f9a }}},
10450 { {0x1f23, 0x03b9}, {2, {0x1f93, 0x1f9b }}},
10451 { {0x1f24, 0x03b9}, {2, {0x1f94, 0x1f9c }}},
10452 { {0x1f25, 0x03b9}, {2, {0x1f95, 0x1f9d }}},
10453 { {0x1f26, 0x03b9}, {2, {0x1f96, 0x1f9e }}},
10454 { {0x1f27, 0x03b9}, {2, {0x1f97, 0x1f9f }}},
10455 { {0x1f60, 0x03b9}, {2, {0x1fa0, 0x1fa8 }}},
10456 { {0x1f61, 0x03b9}, {2, {0x1fa1, 0x1fa9 }}},
10457 { {0x1f62, 0x03b9}, {2, {0x1fa2, 0x1faa }}},
10458 { {0x1f63, 0x03b9}, {2, {0x1fa3, 0x1fab }}},
10459 { {0x1f64, 0x03b9}, {2, {0x1fa4, 0x1fac }}},
10460 { {0x1f65, 0x03b9}, {2, {0x1fa5, 0x1fad }}},
10461 { {0x1f66, 0x03b9}, {2, {0x1fa6, 0x1fae }}},
10462 { {0x1f67, 0x03b9}, {2, {0x1fa7, 0x1faf }}},
10463 { {0x1f70, 0x03b9}, {1, {0x1fb2 }}},
10464 { {0x1f74, 0x03b9}, {1, {0x1fc2 }}},
10465 { {0x1f7c, 0x03b9}, {1, {0x1ff2 }}}
10468 static const CaseUnfold_12_Type CaseUnfold_12_Locale
[] = {
10469 { {0x0069, 0x0307}, {1, {0x0130 }}}
10472 static const CaseUnfold_13_Type CaseUnfold_13
[] = {
10473 { {0x0066, 0x0066, 0x0069}, {1, {0xfb03 }}},
10474 { {0x0066, 0x0066, 0x006c}, {1, {0xfb04 }}},
10475 { {0x03b1, 0x0342, 0x03b9}, {1, {0x1fb7 }}},
10476 { {0x03b7, 0x0342, 0x03b9}, {1, {0x1fc7 }}},
10477 { {0x03b9, 0x0308, 0x0300}, {1, {0x1fd2 }}},
10478 { {0x03b9, 0x0308, 0x0301}, {2, {0x0390, 0x1fd3 }}},
10479 { {0x03b9, 0x0308, 0x0342}, {1, {0x1fd7 }}},
10480 { {0x03c5, 0x0308, 0x0300}, {1, {0x1fe2 }}},
10481 { {0x03c5, 0x0308, 0x0301}, {2, {0x03b0, 0x1fe3 }}},
10482 { {0x03c5, 0x0308, 0x0342}, {1, {0x1fe7 }}},
10483 { {0x03c5, 0x0313, 0x0300}, {1, {0x1f52 }}},
10484 { {0x03c5, 0x0313, 0x0301}, {1, {0x1f54 }}},
10485 { {0x03c5, 0x0313, 0x0342}, {1, {0x1f56 }}},
10486 { {0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7 }}}
10490 static PosixBracketEntryType HashEntryData
[] = {
10491 { (UChar
* )"NEWLINE", 0, 7 },
10492 { (UChar
* )"Alpha", 1, 5 },
10493 { (UChar
* )"Blank", 2, 5 },
10494 { (UChar
* )"Cntrl", 3, 5 },
10495 { (UChar
* )"Digit", 4, 5 },
10496 { (UChar
* )"Graph", 5, 5 },
10497 { (UChar
* )"Lower", 6, 5 },
10498 { (UChar
* )"Print", 7, 5 },
10499 { (UChar
* )"Punct", 8, 5 },
10500 { (UChar
* )"Space", 9, 5 },
10501 { (UChar
* )"Upper", 10, 5 },
10502 { (UChar
* )"XDigit", 11, 6 },
10503 { (UChar
* )"Word", 12, 4 },
10504 { (UChar
* )"Alnum", 13, 5 },
10505 { (UChar
* )"ASCII", 14, 5 },
10507 #ifdef USE_UNICODE_PROPERTIES
10508 { (UChar
* )"Any", 15, 3 },
10509 { (UChar
* )"Assigned", 16, 8 },
10510 { (UChar
* )"C", 17, 1 },
10511 { (UChar
* )"Cc", 18, 2 },
10512 { (UChar
* )"Cf", 19, 2 },
10513 { (UChar
* )"Cn", 20, 2 },
10514 { (UChar
* )"Co", 21, 2 },
10515 { (UChar
* )"Cs", 22, 2 },
10516 { (UChar
* )"L", 23, 1 },
10517 { (UChar
* )"Ll", 24, 2 },
10518 { (UChar
* )"Lm", 25, 2 },
10519 { (UChar
* )"Lo", 26, 2 },
10520 { (UChar
* )"Lt", 27, 2 },
10521 { (UChar
* )"Lu", 28, 2 },
10522 { (UChar
* )"M", 29, 1 },
10523 { (UChar
* )"Mc", 30, 2 },
10524 { (UChar
* )"Me", 31, 2 },
10525 { (UChar
* )"Mn", 32, 2 },
10526 { (UChar
* )"N", 33, 1 },
10527 { (UChar
* )"Nd", 34, 2 },
10528 { (UChar
* )"Nl", 35, 2 },
10529 { (UChar
* )"No", 36, 2 },
10530 { (UChar
* )"P", 37, 1 },
10531 { (UChar
* )"Pc", 38, 2 },
10532 { (UChar
* )"Pd", 39, 2 },
10533 { (UChar
* )"Pe", 40, 2 },
10534 { (UChar
* )"Pf", 41, 2 },
10535 { (UChar
* )"Pi", 42, 2 },
10536 { (UChar
* )"Po", 43, 2 },
10537 { (UChar
* )"Ps", 44, 2 },
10538 { (UChar
* )"S", 45, 1 },
10539 { (UChar
* )"Sc", 46, 2 },
10540 { (UChar
* )"Sk", 47, 2 },
10541 { (UChar
* )"Sm", 48, 2 },
10542 { (UChar
* )"So", 49, 2 },
10543 { (UChar
* )"Z", 50, 1 },
10544 { (UChar
* )"Zl", 51, 2 },
10545 { (UChar
* )"Zp", 52, 2 },
10546 { (UChar
* )"Zs", 53, 2 },
10547 { (UChar
* )"Arabic", 54, 6 },
10548 { (UChar
* )"Armenian", 55, 8 },
10549 { (UChar
* )"Bengali", 56, 7 },
10550 { (UChar
* )"Bopomofo", 57, 8 },
10551 { (UChar
* )"Braille", 58, 7 },
10552 { (UChar
* )"Buginese", 59, 8 },
10553 { (UChar
* )"Buhid", 60, 5 },
10554 { (UChar
* )"Canadian_Aboriginal", 61, 19 },
10555 { (UChar
* )"Cherokee", 62, 8 },
10556 { (UChar
* )"Common", 63, 6 },
10557 { (UChar
* )"Coptic", 64, 6 },
10558 { (UChar
* )"Cypriot", 65, 7 },
10559 { (UChar
* )"Cyrillic", 66, 8 },
10560 { (UChar
* )"Deseret", 67, 7 },
10561 { (UChar
* )"Devanagari", 68, 10 },
10562 { (UChar
* )"Ethiopic", 69, 8 },
10563 { (UChar
* )"Georgian", 70, 8 },
10564 { (UChar
* )"Glagolitic", 71, 10 },
10565 { (UChar
* )"Gothic", 72, 6 },
10566 { (UChar
* )"Greek", 73, 5 },
10567 { (UChar
* )"Gujarati", 74, 8 },
10568 { (UChar
* )"Gurmukhi", 75, 8 },
10569 { (UChar
* )"Han", 76, 3 },
10570 { (UChar
* )"Hangul", 77, 6 },
10571 { (UChar
* )"Hanunoo", 78, 7 },
10572 { (UChar
* )"Hebrew", 79, 6 },
10573 { (UChar
* )"Hiragana", 80, 8 },
10574 { (UChar
* )"Inherited", 81, 9 },
10575 { (UChar
* )"Kannada", 82, 7 },
10576 { (UChar
* )"Katakana", 83, 8 },
10577 { (UChar
* )"Kharoshthi", 84, 10 },
10578 { (UChar
* )"Khmer", 85, 5 },
10579 { (UChar
* )"Lao", 86, 3 },
10580 { (UChar
* )"Latin", 87, 5 },
10581 { (UChar
* )"Limbu", 88, 5 },
10582 { (UChar
* )"Linear_B", 89, 8 },
10583 { (UChar
* )"Malayalam", 90, 9 },
10584 { (UChar
* )"Mongolian", 91, 9 },
10585 { (UChar
* )"Myanmar", 92, 7 },
10586 { (UChar
* )"New_Tai_Lue", 93, 11 },
10587 { (UChar
* )"Ogham", 94, 5 },
10588 { (UChar
* )"Old_Italic", 95, 10 },
10589 { (UChar
* )"Old_Persian", 96, 11 },
10590 { (UChar
* )"Oriya", 97, 5 },
10591 { (UChar
* )"Osmanya", 98, 7 },
10592 { (UChar
* )"Runic", 99, 5 },
10593 { (UChar
* )"Shavian", 100, 7 },
10594 { (UChar
* )"Sinhala", 101, 7 },
10595 { (UChar
* )"Syloti_Nagri", 102, 12 },
10596 { (UChar
* )"Syriac", 103, 6 },
10597 { (UChar
* )"Tagalog", 104, 7 },
10598 { (UChar
* )"Tagbanwa", 105, 8 },
10599 { (UChar
* )"Tai_Le", 106, 6 },
10600 { (UChar
* )"Tamil", 107, 5 },
10601 { (UChar
* )"Telugu", 108, 6 },
10602 { (UChar
* )"Thaana", 109, 6 },
10603 { (UChar
* )"Thai", 110, 4 },
10604 { (UChar
* )"Tibetan", 111, 7 },
10605 { (UChar
* )"Tifinagh", 112, 8 },
10606 { (UChar
* )"Ugaritic", 113, 8 },
10607 { (UChar
* )"Yi", 114, 2 },
10608 #endif /* USE_UNICODE_PROPERTIES */
10609 { (UChar
* )NULL
, -1, 0 }
10612 #ifdef USE_UNICODE_PROPERTIES
10613 #define CODE_RANGES_NUM 115
10615 #define CODE_RANGES_NUM 15
10618 static const OnigCodePoint
* CodeRanges
[CODE_RANGES_NUM
];
10619 static int CodeRangeTableInited
= 0;
10621 static void init_code_range_array(void) {
10622 THREAD_ATOMIC_START
;
10624 CodeRanges
[0] = CR_NEWLINE
;
10625 CodeRanges
[1] = CR_Alpha
;
10626 CodeRanges
[2] = CR_Blank
;
10627 CodeRanges
[3] = CR_Cntrl
;
10628 CodeRanges
[4] = CR_Digit
;
10629 CodeRanges
[5] = CR_Graph
;
10630 CodeRanges
[6] = CR_Lower
;
10631 CodeRanges
[7] = CR_Print
;
10632 CodeRanges
[8] = CR_Punct
;
10633 CodeRanges
[9] = CR_Space
;
10634 CodeRanges
[10] = CR_Upper
;
10635 CodeRanges
[11] = CR_XDigit
;
10636 CodeRanges
[12] = CR_Word
;
10637 CodeRanges
[13] = CR_Alnum
;
10638 CodeRanges
[14] = CR_ASCII
;
10640 #ifdef USE_UNICODE_PROPERTIES
10641 CodeRanges
[15] = CR_Any
;
10642 CodeRanges
[16] = CR_Assigned
;
10643 CodeRanges
[17] = CR_C
;
10644 CodeRanges
[18] = CR_Cc
;
10645 CodeRanges
[19] = CR_Cf
;
10646 CodeRanges
[20] = CR_Cn
;
10647 CodeRanges
[21] = CR_Co
;
10648 CodeRanges
[22] = CR_Cs
;
10649 CodeRanges
[23] = CR_L
;
10650 CodeRanges
[24] = CR_Ll
;
10651 CodeRanges
[25] = CR_Lm
;
10652 CodeRanges
[26] = CR_Lo
;
10653 CodeRanges
[27] = CR_Lt
;
10654 CodeRanges
[28] = CR_Lu
;
10655 CodeRanges
[29] = CR_M
;
10656 CodeRanges
[30] = CR_Mc
;
10657 CodeRanges
[31] = CR_Me
;
10658 CodeRanges
[32] = CR_Mn
;
10659 CodeRanges
[33] = CR_N
;
10660 CodeRanges
[34] = CR_Nd
;
10661 CodeRanges
[35] = CR_Nl
;
10662 CodeRanges
[36] = CR_No
;
10663 CodeRanges
[37] = CR_P
;
10664 CodeRanges
[38] = CR_Pc
;
10665 CodeRanges
[39] = CR_Pd
;
10666 CodeRanges
[40] = CR_Pe
;
10667 CodeRanges
[41] = CR_Pf
;
10668 CodeRanges
[42] = CR_Pi
;
10669 CodeRanges
[43] = CR_Po
;
10670 CodeRanges
[44] = CR_Ps
;
10671 CodeRanges
[45] = CR_S
;
10672 CodeRanges
[46] = CR_Sc
;
10673 CodeRanges
[47] = CR_Sk
;
10674 CodeRanges
[48] = CR_Sm
;
10675 CodeRanges
[49] = CR_So
;
10676 CodeRanges
[50] = CR_Z
;
10677 CodeRanges
[51] = CR_Zl
;
10678 CodeRanges
[52] = CR_Zp
;
10679 CodeRanges
[53] = CR_Zs
;
10680 CodeRanges
[54] = CR_Arabic
;
10681 CodeRanges
[55] = CR_Armenian
;
10682 CodeRanges
[56] = CR_Bengali
;
10683 CodeRanges
[57] = CR_Bopomofo
;
10684 CodeRanges
[58] = CR_Braille
;
10685 CodeRanges
[59] = CR_Buginese
;
10686 CodeRanges
[60] = CR_Buhid
;
10687 CodeRanges
[61] = CR_Canadian_Aboriginal
;
10688 CodeRanges
[62] = CR_Cherokee
;
10689 CodeRanges
[63] = CR_Common
;
10690 CodeRanges
[64] = CR_Coptic
;
10691 CodeRanges
[65] = CR_Cypriot
;
10692 CodeRanges
[66] = CR_Cyrillic
;
10693 CodeRanges
[67] = CR_Deseret
;
10694 CodeRanges
[68] = CR_Devanagari
;
10695 CodeRanges
[69] = CR_Ethiopic
;
10696 CodeRanges
[70] = CR_Georgian
;
10697 CodeRanges
[71] = CR_Glagolitic
;
10698 CodeRanges
[72] = CR_Gothic
;
10699 CodeRanges
[73] = CR_Greek
;
10700 CodeRanges
[74] = CR_Gujarati
;
10701 CodeRanges
[75] = CR_Gurmukhi
;
10702 CodeRanges
[76] = CR_Han
;
10703 CodeRanges
[77] = CR_Hangul
;
10704 CodeRanges
[78] = CR_Hanunoo
;
10705 CodeRanges
[79] = CR_Hebrew
;
10706 CodeRanges
[80] = CR_Hiragana
;
10707 CodeRanges
[81] = CR_Inherited
;
10708 CodeRanges
[82] = CR_Kannada
;
10709 CodeRanges
[83] = CR_Katakana
;
10710 CodeRanges
[84] = CR_Kharoshthi
;
10711 CodeRanges
[85] = CR_Khmer
;
10712 CodeRanges
[86] = CR_Lao
;
10713 CodeRanges
[87] = CR_Latin
;
10714 CodeRanges
[88] = CR_Limbu
;
10715 CodeRanges
[89] = CR_Linear_B
;
10716 CodeRanges
[90] = CR_Malayalam
;
10717 CodeRanges
[91] = CR_Mongolian
;
10718 CodeRanges
[92] = CR_Myanmar
;
10719 CodeRanges
[93] = CR_New_Tai_Lue
;
10720 CodeRanges
[94] = CR_Ogham
;
10721 CodeRanges
[95] = CR_Old_Italic
;
10722 CodeRanges
[96] = CR_Old_Persian
;
10723 CodeRanges
[97] = CR_Oriya
;
10724 CodeRanges
[98] = CR_Osmanya
;
10725 CodeRanges
[99] = CR_Runic
;
10726 CodeRanges
[100] = CR_Shavian
;
10727 CodeRanges
[101] = CR_Sinhala
;
10728 CodeRanges
[102] = CR_Syloti_Nagri
;
10729 CodeRanges
[103] = CR_Syriac
;
10730 CodeRanges
[104] = CR_Tagalog
;
10731 CodeRanges
[105] = CR_Tagbanwa
;
10732 CodeRanges
[106] = CR_Tai_Le
;
10733 CodeRanges
[107] = CR_Tamil
;
10734 CodeRanges
[108] = CR_Telugu
;
10735 CodeRanges
[109] = CR_Thaana
;
10736 CodeRanges
[110] = CR_Thai
;
10737 CodeRanges
[111] = CR_Tibetan
;
10738 CodeRanges
[112] = CR_Tifinagh
;
10739 CodeRanges
[113] = CR_Ugaritic
;
10740 CodeRanges
[114] = CR_Yi
;
10741 #endif /* USE_UNICODE_PROPERTIES */
10743 CodeRangeTableInited
= 1;
10748 onigenc_unicode_is_code_ctype(OnigCodePoint code
, unsigned int ctype
, OnigEncoding enc ARG_UNUSED
)
10751 #ifdef USE_UNICODE_PROPERTIES
10752 ctype
<= ONIGENC_MAX_STD_CTYPE
&&
10755 return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code
, ctype
);
10758 if (ctype
>= CODE_RANGES_NUM
) {
10759 return ONIGERR_TYPE_BUG
;
10762 if (CodeRangeTableInited
== 0) init_code_range_array();
10764 return onig_is_in_code_range((UChar
* )CodeRanges
[ctype
], code
);
10769 onigenc_unicode_ctype_code_range(int ctype
, const OnigCodePoint
* ranges
[])
10771 if (ctype
>= CODE_RANGES_NUM
) {
10772 return ONIGERR_TYPE_BUG
;
10775 if (CodeRangeTableInited
== 0) init_code_range_array();
10777 *ranges
= CodeRanges
[ctype
];
10783 onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype
, OnigCodePoint
* sb_out
,
10784 const OnigCodePoint
* ranges
[],
10785 struct OnigEncodingTypeST
* enc ARG_UNUSED
)
10788 return onigenc_unicode_ctype_code_range(ctype
, ranges
);
10791 #include "ruby/st.h"
10793 #define PROPERTY_NAME_MAX_SIZE 20
10795 static st_table
* NameCtypeTable
;
10796 static int NameTableInited
= 0;
10798 static int init_name_ctype_table(void)
10800 PosixBracketEntryType
*pb
;
10802 THREAD_ATOMIC_START
;
10804 NameCtypeTable
= onig_st_init_strend_table_with_size(100);
10805 if (ONIG_IS_NULL(NameCtypeTable
)) return ONIGERR_MEMORY
;
10807 for (pb
= HashEntryData
; ONIG_IS_NOT_NULL(pb
->name
); pb
++) {
10808 onig_st_insert_strend(NameCtypeTable
, pb
->name
, pb
->name
+ pb
->len
,
10809 (st_data_t
)pb
->ctype
);
10812 NameTableInited
= 1;
10818 onigenc_unicode_property_name_to_ctype(OnigEncoding enc
, UChar
* name
, UChar
* end
)
10822 UChar buf
[PROPERTY_NAME_MAX_SIZE
];
10824 OnigCodePoint code
;
10829 code
= ONIGENC_MBC_TO_CODE(enc
, p
, end
);
10831 return ONIGERR_INVALID_CHAR_PROPERTY_NAME
;
10833 buf
[len
++] = (UChar
)code
;
10834 if (len
>= PROPERTY_NAME_MAX_SIZE
)
10835 return ONIGERR_INVALID_CHAR_PROPERTY_NAME
;
10837 p
+= enclen(enc
, p
, end
);
10842 if (NameTableInited
== 0) init_name_ctype_table();
10844 if (onig_st_lookup_strend(NameCtypeTable
, buf
, buf
+ len
,
10846 return ONIGERR_INVALID_CHAR_PROPERTY_NAME
;
10854 code2_cmp(OnigCodePoint
* x
, OnigCodePoint
* y
)
10856 if (x
[0] == y
[0] && x
[1] == y
[1]) return 0;
10861 code2_hash(OnigCodePoint
* x
)
10863 return (int )(x
[0] + x
[1]);
10866 static const struct st_hash_type type_code2_hash
= {
10872 code3_cmp(OnigCodePoint
* x
, OnigCodePoint
* y
)
10874 if (x
[0] == y
[0] && x
[1] == y
[1] && x
[2] == y
[2]) return 0;
10879 code3_hash(OnigCodePoint
* x
)
10881 return (int )(x
[0] + x
[1] + x
[2]);
10884 static const struct st_hash_type type_code3_hash
= {
10890 static st_table
* FoldTable
; /* fold-1, fold-2, fold-3 */
10891 static st_table
* Unfold1Table
;
10892 static st_table
* Unfold2Table
;
10893 static st_table
* Unfold3Table
;
10894 static int CaseFoldInited
= 0;
10896 static int init_case_fold_table(void)
10898 const CaseFold_11_Type
*p
;
10899 const CaseUnfold_11_Type
*p1
;
10900 const CaseUnfold_12_Type
*p2
;
10901 const CaseUnfold_13_Type
*p3
;
10904 THREAD_ATOMIC_START
;
10906 FoldTable
= st_init_numtable_with_size(1200);
10907 if (ONIG_IS_NULL(FoldTable
)) return ONIGERR_MEMORY
;
10908 for (i
= 0; i
< (int )(sizeof(CaseFold
)/sizeof(CaseFold_11_Type
)); i
++) {
10910 st_add_direct(FoldTable
, (st_data_t
)p
->from
, (st_data_t
)&(p
->to
));
10912 for (i
= 0; i
< (int )(sizeof(CaseFold_Locale
)/sizeof(CaseFold_11_Type
));
10914 p
= &CaseFold_Locale
[i
];
10915 st_add_direct(FoldTable
, (st_data_t
)p
->from
, (st_data_t
)&(p
->to
));
10918 Unfold1Table
= st_init_numtable_with_size(1000);
10919 if (ONIG_IS_NULL(Unfold1Table
)) return ONIGERR_MEMORY
;
10921 for (i
= 0; i
< (int )(sizeof(CaseUnfold_11
)/sizeof(CaseUnfold_11_Type
));
10923 p1
= &CaseUnfold_11
[i
];
10924 st_add_direct(Unfold1Table
, (st_data_t
)p1
->from
, (st_data_t
)&(p1
->to
));
10927 i
< (int )(sizeof(CaseUnfold_11_Locale
)/sizeof(CaseUnfold_11_Type
));
10929 p1
= &CaseUnfold_11_Locale
[i
];
10930 st_add_direct(Unfold1Table
, (st_data_t
)p1
->from
, (st_data_t
)&(p1
->to
));
10933 Unfold2Table
= st_init_table_with_size(&type_code2_hash
, 200);
10934 if (ONIG_IS_NULL(Unfold2Table
)) return ONIGERR_MEMORY
;
10936 for (i
= 0; i
< (int )(sizeof(CaseUnfold_12
)/sizeof(CaseUnfold_12_Type
));
10938 p2
= &CaseUnfold_12
[i
];
10939 st_add_direct(Unfold2Table
, (st_data_t
)p2
->from
, (st_data_t
)(&p2
->to
));
10942 i
< (int )(sizeof(CaseUnfold_12_Locale
)/sizeof(CaseUnfold_12_Type
));
10944 p2
= &CaseUnfold_12_Locale
[i
];
10945 st_add_direct(Unfold2Table
, (st_data_t
)p2
->from
, (st_data_t
)(&p2
->to
));
10948 Unfold3Table
= st_init_table_with_size(&type_code3_hash
, 30);
10949 if (ONIG_IS_NULL(Unfold3Table
)) return ONIGERR_MEMORY
;
10951 for (i
= 0; i
< (int )(sizeof(CaseUnfold_13
)/sizeof(CaseUnfold_13_Type
));
10953 p3
= &CaseUnfold_13
[i
];
10954 st_add_direct(Unfold3Table
, (st_data_t
)p3
->from
, (st_data_t
)(&p3
->to
));
10957 CaseFoldInited
= 1;
10963 onigenc_unicode_mbc_case_fold(OnigEncoding enc
,
10964 OnigCaseFoldType flag ARG_UNUSED
, const UChar
** pp
, const UChar
* end
,
10967 CodePointList3
*to
;
10968 OnigCodePoint code
;
10970 const UChar
*p
= *pp
;
10972 if (CaseFoldInited
== 0) init_case_fold_table();
10974 code
= ONIGENC_MBC_TO_CODE(enc
, p
, end
);
10975 len
= enclen(enc
, p
, end
);
10978 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
10979 if ((flag
& ONIGENC_CASE_FOLD_TURKISH_AZERI
) != 0) {
10980 if (code
== 0x0049) {
10981 return ONIGENC_CODE_TO_MBC(enc
, 0x0131, fold
);
10983 else if (code
== 0x0130) {
10984 return ONIGENC_CODE_TO_MBC(enc
, 0x0069, fold
);
10989 if (onig_st_lookup(FoldTable
, (st_data_t
)code
, (void* )&to
) != 0) {
10991 return ONIGENC_CODE_TO_MBC(enc
, to
->code
[0], fold
);
10994 /* NO NEEDS TO CHECK */
10995 else if ((flag
& INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR
) != 0) {
11000 for (i
= 0; i
< to
->n
; i
++) {
11001 len
= ONIGENC_CODE_TO_MBC(enc
, to
->code
[i
], fold
);
11009 for (i
= 0; i
< len
; i
++) {
11016 onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag
,
11017 OnigApplyAllCaseFoldFunc f
, void* arg
,
11018 OnigEncoding enc ARG_UNUSED
)
11020 const CaseUnfold_11_Type
* p11
;
11021 OnigCodePoint code
;
11024 /* if (CaseFoldInited == 0) init_case_fold_table(); */
11026 for (i
= 0; i
< (int )(sizeof(CaseUnfold_11
)/sizeof(CaseUnfold_11_Type
));
11028 p11
= &CaseUnfold_11
[i
];
11029 for (j
= 0; j
< p11
->to
.n
; j
++) {
11031 r
= (*f
)(p11
->to
.code
[j
], &code
, 1, arg
);
11032 if (r
!= 0) return r
;
11034 code
= p11
->to
.code
[j
];
11035 r
= (*f
)(p11
->from
, &code
, 1, arg
);
11036 if (r
!= 0) return r
;
11038 for (k
= 0; k
< j
; k
++) {
11039 r
= (*f
)(p11
->to
.code
[j
], (OnigCodePoint
* )(&p11
->to
.code
[k
]), 1, arg
);
11040 if (r
!= 0) return r
;
11042 r
= (*f
)(p11
->to
.code
[k
], (OnigCodePoint
* )(&p11
->to
.code
[j
]), 1, arg
);
11043 if (r
!= 0) return r
;
11048 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11049 if ((flag
& ONIGENC_CASE_FOLD_TURKISH_AZERI
) != 0) {
11051 r
= (*f
)(0x0049, &code
, 1, arg
);
11052 if (r
!= 0) return r
;
11054 r
= (*f
)(0x0131, &code
, 1, arg
);
11055 if (r
!= 0) return r
;
11058 r
= (*f
)(0x0069, &code
, 1, arg
);
11059 if (r
!= 0) return r
;
11061 r
= (*f
)(0x0130, &code
, 1, arg
);
11062 if (r
!= 0) return r
;
11067 i
< (int )(sizeof(CaseUnfold_11_Locale
)/sizeof(CaseUnfold_11_Type
));
11069 p11
= &CaseUnfold_11_Locale
[i
];
11070 for (j
= 0; j
< p11
->to
.n
; j
++) {
11072 r
= (*f
)(p11
->to
.code
[j
], &code
, 1, arg
);
11073 if (r
!= 0) return r
;
11075 code
= p11
->to
.code
[j
];
11076 r
= (*f
)(p11
->from
, &code
, 1, arg
);
11077 if (r
!= 0) return r
;
11079 for (k
= 0; k
< j
; k
++) {
11080 r
= (*f
)(p11
->to
.code
[j
], (OnigCodePoint
* )(&p11
->to
.code
[k
]),
11082 if (r
!= 0) return r
;
11084 r
= (*f
)(p11
->to
.code
[k
], (OnigCodePoint
* )(&p11
->to
.code
[j
]),
11086 if (r
!= 0) return r
;
11090 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11094 if ((flag
& INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR
) != 0) {
11095 for (i
= 0; i
< (int )(sizeof(CaseUnfold_12
)/sizeof(CaseUnfold_12_Type
));
11097 for (j
= 0; j
< CaseUnfold_12
[i
].to
.n
; j
++) {
11098 r
= (*f
)(CaseUnfold_12
[i
].to
.code
[j
],
11099 (OnigCodePoint
* )CaseUnfold_12
[i
].from
, 2, arg
);
11100 if (r
!= 0) return r
;
11102 for (k
= 0; k
< CaseUnfold_12
[i
].to
.n
; k
++) {
11103 if (k
== j
) continue;
11105 r
= (*f
)(CaseUnfold_12
[i
].to
.code
[j
],
11106 (OnigCodePoint
* )(&CaseUnfold_12
[i
].to
.code
[k
]), 1, arg
);
11107 if (r
!= 0) return r
;
11112 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11113 if ((flag
& ONIGENC_CASE_FOLD_TURKISH_AZERI
) == 0) {
11116 i
< (int )(sizeof(CaseUnfold_12_Locale
)/sizeof(CaseUnfold_12_Type
));
11118 for (j
= 0; j
< CaseUnfold_12_Locale
[i
].to
.n
; j
++) {
11119 r
= (*f
)(CaseUnfold_12_Locale
[i
].to
.code
[j
],
11120 (OnigCodePoint
* )CaseUnfold_12_Locale
[i
].from
, 2, arg
);
11121 if (r
!= 0) return r
;
11123 for (k
= 0; k
< CaseUnfold_12_Locale
[i
].to
.n
; k
++) {
11124 if (k
== j
) continue;
11126 r
= (*f
)(CaseUnfold_12_Locale
[i
].to
.code
[j
],
11127 (OnigCodePoint
* )(&CaseUnfold_12_Locale
[i
].to
.code
[k
]),
11129 if (r
!= 0) return r
;
11133 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11137 for (i
= 0; i
< (int )(sizeof(CaseUnfold_13
)/sizeof(CaseUnfold_13_Type
));
11139 for (j
= 0; j
< CaseUnfold_13
[i
].to
.n
; j
++) {
11140 r
= (*f
)(CaseUnfold_13
[i
].to
.code
[j
],
11141 (OnigCodePoint
* )CaseUnfold_13
[i
].from
, 3, arg
);
11142 if (r
!= 0) return r
;
11144 for (k
= 0; k
< CaseUnfold_13
[i
].to
.n
; k
++) {
11145 if (k
== j
) continue;
11147 r
= (*f
)(CaseUnfold_13
[i
].to
.code
[j
],
11148 (OnigCodePoint
* )(&CaseUnfold_13
[i
].to
.code
[k
]), 1, arg
);
11149 if (r
!= 0) return r
;
11159 onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc
,
11160 OnigCaseFoldType flag
, const OnigUChar
* p
, const OnigUChar
* end
,
11161 OnigCaseFoldCodeItem items
[])
11163 int n
, i
, j
, k
, len
;
11164 OnigCodePoint code
, codes
[3];
11165 CodePointList3
*to
, *z3
;
11166 CodePointList2
*z2
;
11168 if (CaseFoldInited
== 0) init_case_fold_table();
11172 code
= ONIGENC_MBC_TO_CODE(enc
, p
, end
);
11173 len
= enclen(enc
, p
, end
);
11175 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11176 if ((flag
& ONIGENC_CASE_FOLD_TURKISH_AZERI
) != 0) {
11177 if (code
== 0x0049) {
11178 items
[0].byte_len
= len
;
11179 items
[0].code_len
= 1;
11180 items
[0].code
[0] = 0x0131;
11183 else if (code
== 0x0130) {
11184 items
[0].byte_len
= len
;
11185 items
[0].code_len
= 1;
11186 items
[0].code
[0] = 0x0069;
11189 else if (code
== 0x0131) {
11190 items
[0].byte_len
= len
;
11191 items
[0].code_len
= 1;
11192 items
[0].code
[0] = 0x0049;
11195 else if (code
== 0x0069) {
11196 items
[0].byte_len
= len
;
11197 items
[0].code_len
= 1;
11198 items
[0].code
[0] = 0x0130;
11204 if (onig_st_lookup(FoldTable
, (st_data_t
)code
, (void* )&to
) != 0) {
11206 OnigCodePoint orig_code
= code
;
11208 items
[0].byte_len
= len
;
11209 items
[0].code_len
= 1;
11210 items
[0].code
[0] = to
->code
[0];
11213 code
= to
->code
[0];
11214 if (onig_st_lookup(Unfold1Table
, (st_data_t
)code
, (void* )&to
) != 0) {
11215 for (i
= 0; i
< to
->n
; i
++) {
11216 if (to
->code
[i
] != orig_code
) {
11217 items
[n
].byte_len
= len
;
11218 items
[n
].code_len
= 1;
11219 items
[n
].code
[0] = to
->code
[i
];
11225 else if ((flag
& INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR
) != 0) {
11226 OnigCodePoint cs
[3][4];
11229 for (fn
= 0; fn
< to
->n
; fn
++) {
11230 cs
[fn
][0] = to
->code
[fn
];
11231 if (onig_st_lookup(Unfold1Table
, (st_data_t
)cs
[fn
][0],
11232 (void* )&z3
) != 0) {
11233 for (i
= 0; i
< z3
->n
; i
++) {
11234 cs
[fn
][i
+1] = z3
->code
[i
];
11236 ncs
[fn
] = z3
->n
+ 1;
11243 for (i
= 0; i
< ncs
[0]; i
++) {
11244 for (j
= 0; j
< ncs
[1]; j
++) {
11245 items
[n
].byte_len
= len
;
11246 items
[n
].code_len
= 2;
11247 items
[n
].code
[0] = cs
[0][i
];
11248 items
[n
].code
[1] = cs
[1][j
];
11253 if (onig_st_lookup(Unfold2Table
, (st_data_t
)to
->code
,
11254 (void* )&z2
) != 0) {
11255 for (i
= 0; i
< z2
->n
; i
++) {
11256 if (z2
->code
[i
] == code
) continue;
11258 items
[n
].byte_len
= len
;
11259 items
[n
].code_len
= 1;
11260 items
[n
].code
[0] = z2
->code
[i
];
11266 for (i
= 0; i
< ncs
[0]; i
++) {
11267 for (j
= 0; j
< ncs
[1]; j
++) {
11268 for (k
= 0; k
< ncs
[2]; k
++) {
11269 items
[n
].byte_len
= len
;
11270 items
[n
].code_len
= 3;
11271 items
[n
].code
[0] = cs
[0][i
];
11272 items
[n
].code
[1] = cs
[1][j
];
11273 items
[n
].code
[2] = cs
[2][k
];
11279 if (onig_st_lookup(Unfold3Table
, (st_data_t
)to
->code
,
11280 (void* )&z2
) != 0) {
11281 for (i
= 0; i
< z2
->n
; i
++) {
11282 if (z2
->code
[i
] == code
) continue;
11284 items
[n
].byte_len
= len
;
11285 items
[n
].code_len
= 1;
11286 items
[n
].code
[0] = z2
->code
[i
];
11292 /* multi char folded code is not head of another folded multi char */
11293 flag
= 0; /* DISABLE_CASE_FOLD_MULTI_CHAR(flag); */
11297 if (onig_st_lookup(Unfold1Table
, (st_data_t
)code
, (void* )&to
) != 0) {
11298 for (i
= 0; i
< to
->n
; i
++) {
11299 items
[n
].byte_len
= len
;
11300 items
[n
].code_len
= 1;
11301 items
[n
].code
[0] = to
->code
[i
];
11308 if ((flag
& INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR
) != 0) {
11314 code
= ONIGENC_MBC_TO_CODE(enc
, p
, end
);
11315 if (onig_st_lookup(FoldTable
, (st_data_t
)code
, (void* )&to
) != 0
11317 codes
[1] = to
->code
[0];
11322 clen
= enclen(enc
, p
, end
);
11324 if (onig_st_lookup(Unfold2Table
, (st_data_t
)codes
, (void* )&z2
) != 0) {
11325 for (i
= 0; i
< z2
->n
; i
++) {
11326 items
[n
].byte_len
= len
;
11327 items
[n
].code_len
= 1;
11328 items
[n
].code
[0] = z2
->code
[i
];
11335 code
= ONIGENC_MBC_TO_CODE(enc
, p
, end
);
11336 if (onig_st_lookup(FoldTable
, (st_data_t
)code
, (void* )&to
) != 0
11338 codes
[2] = to
->code
[0];
11343 clen
= enclen(enc
, p
, end
);
11345 if (onig_st_lookup(Unfold3Table
, (st_data_t
)codes
,
11346 (void* )&z2
) != 0) {
11347 for (i
= 0; i
< z2
->n
; i
++) {
11348 items
[n
].byte_len
= len
;
11349 items
[n
].code_len
= 1;
11350 items
[n
].code
[0] = z2
->code
[i
];